summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Android.bp94
-rw-r--r--ApiDocs.bp1
-rw-r--r--StubLibraries.bp106
-rw-r--r--apct-tests/perftests/blobstore/Android.bp28
-rw-r--r--apct-tests/perftests/blobstore/AndroidManifest.xml (renamed from media/tests/MediaRouteProvider/AndroidManifest.xml)19
-rw-r--r--apct-tests/perftests/blobstore/AndroidTest.xml28
-rw-r--r--apct-tests/perftests/blobstore/src/com/android/perftests/blob/AtraceUtils.java120
-rw-r--r--apct-tests/perftests/blobstore/src/com/android/perftests/blob/BlobStorePerfTests.java146
-rw-r--r--apex/Android.bp41
-rw-r--r--apex/blobstore/TEST_MAPPING8
-rw-r--r--apex/blobstore/framework/java/android/app/blob/BlobHandle.java67
-rw-r--r--apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java43
-rw-r--r--apex/blobstore/service/java/com/android/server/blob/BlobStoreConfig.java17
-rw-r--r--apex/blobstore/service/java/com/android/server/blob/BlobStoreIdleJobService.java70
-rw-r--r--apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerInternal.java28
-rw-r--r--apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java642
-rw-r--r--apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerShellCommand.java111
-rw-r--r--apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java94
-rw-r--r--apex/jobscheduler/framework/java/android/app/job/JobInfo.java2
-rw-r--r--apex/media/framework/Android.bp65
-rw-r--r--apex/media/framework/java/android/media/MediaParser.java6
-rw-r--r--apex/media/framework/updatable-media-proguard.flags2
-rw-r--r--apex/permission/framework/Android.bp59
-rw-r--r--apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsPersistence.java3
-rw-r--r--apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsState.java3
-rw-r--r--apex/permission/service/java/com/android/role/persistence/RolesPersistence.java3
-rw-r--r--apex/permission/service/java/com/android/role/persistence/RolesState.java3
-rw-r--r--apex/sdkextensions/framework/Android.bp58
-rw-r--r--apex/sdkextensions/testing/Android.bp2
-rw-r--r--apex/statsd/Android.bp35
-rw-r--r--apex/statsd/aidl/android/os/IStatsCompanionService.aidl7
-rw-r--r--apex/statsd/aidl/android/os/IStatsd.aidl6
-rw-r--r--apex/statsd/framework/Android.bp78
-rw-r--r--apex/statsd/framework/java/android/app/StatsManager.java6
-rw-r--r--apex/statsd/framework/java/android/os/StatsDimensionsValue.java (renamed from core/java/android/os/StatsDimensionsValue.java)3
-rw-r--r--apex/statsd/framework/java/android/util/StatsLog.java (renamed from core/java/android/util/StatsLog.java)52
-rw-r--r--apex/statsd/jni/android_util_StatsLog.cpp (renamed from core/jni/android_util_StatsLog.cpp)29
-rw-r--r--apex/statsd/service/java/com/android/server/stats/StatsCompanion.java14
-rw-r--r--apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java21
-rw-r--r--apex/statsd/service/java/com/android/server/stats/StatsManagerService.java13
-rw-r--r--apex/statsd/tests/libstatspull/jni/stats_pull_helper.cpp27
-rw-r--r--apex/statsd/tests/libstatspull/src/com/android/internal/os/statsd/libstats/LibStatsPullTests.java1
-rw-r--r--api/current.txt141
-rw-r--r--api/module-app-current.txt21
-rw-r--r--api/module-app-removed.txt1
-rw-r--r--api/module-lib-current.txt147
-rwxr-xr-xapi/system-current.txt191
-rw-r--r--api/system-lint-baseline.txt6
-rw-r--r--api/test-current.txt131
-rw-r--r--cmds/bootanimation/BootAnimation.cpp17
-rw-r--r--cmds/incident/Android.bp2
-rw-r--r--cmds/incident_helper/Android.bp2
-rw-r--r--cmds/incidentd/Android.bp8
-rw-r--r--cmds/statsd/Android.bp28
-rw-r--r--cmds/statsd/android.frameworks.stats@1.0-service.xml11
-rw-r--r--cmds/statsd/benchmark/log_event_benchmark.cpp14
-rw-r--r--cmds/statsd/src/HashableDimensionKey.cpp2
-rw-r--r--cmds/statsd/src/StatsLogProcessor.cpp129
-rw-r--r--cmds/statsd/src/StatsLogProcessor.h8
-rw-r--r--cmds/statsd/src/StatsService.cpp237
-rw-r--r--cmds/statsd/src/StatsService.h73
-rw-r--r--cmds/statsd/src/anomaly/AlarmMonitor.h2
-rw-r--r--cmds/statsd/src/anomaly/AnomalyTracker.h2
-rw-r--r--cmds/statsd/src/anomaly/subscriber_util.cpp4
-rw-r--r--cmds/statsd/src/atom_field_options.proto69
-rw-r--r--cmds/statsd/src/atoms.proto238
-rw-r--r--cmds/statsd/src/condition/CombinationConditionTracker.cpp5
-rw-r--r--cmds/statsd/src/condition/ConditionTracker.h2
-rw-r--r--cmds/statsd/src/condition/ConditionWizard.cpp3
-rw-r--r--cmds/statsd/src/condition/SimpleConditionTracker.cpp4
-rw-r--r--cmds/statsd/src/condition/StateConditionTracker.cpp2
-rw-r--r--cmds/statsd/src/condition/condition_util.cpp8
-rw-r--r--cmds/statsd/src/config/ConfigListener.h2
-rw-r--r--cmds/statsd/src/config/ConfigManager.cpp4
-rw-r--r--cmds/statsd/src/config/ConfigManager.h2
-rw-r--r--cmds/statsd/src/experiment_ids.proto29
-rw-r--r--cmds/statsd/src/external/GpuStatsPuller.cpp163
-rw-r--r--cmds/statsd/src/external/GpuStatsPuller.h42
-rw-r--r--cmds/statsd/src/external/Perfetto.cpp4
-rw-r--r--cmds/statsd/src/external/PullDataReceiver.h2
-rw-r--r--cmds/statsd/src/external/ResourceHealthManagerPuller.cpp123
-rw-r--r--cmds/statsd/src/external/ResourceHealthManagerPuller.h39
-rw-r--r--cmds/statsd/src/external/StatsCallbackPuller.cpp2
-rw-r--r--cmds/statsd/src/external/StatsCallbackPuller.h1
-rw-r--r--cmds/statsd/src/external/StatsPullerManager.cpp45
-rw-r--r--cmds/statsd/src/external/StatsPullerManager.h2
-rw-r--r--cmds/statsd/src/guardrail/StatsdStats.cpp1
-rw-r--r--cmds/statsd/src/logd/LogEvent.cpp95
-rw-r--r--cmds/statsd/src/logd/LogEvent.h50
-rw-r--r--cmds/statsd/src/logd/LogEventQueue.h2
-rw-r--r--cmds/statsd/src/main.cpp14
-rw-r--r--cmds/statsd/src/matchers/CombinationLogMatchingTracker.cpp2
-rw-r--r--cmds/statsd/src/matchers/CombinationLogMatchingTracker.h3
-rw-r--r--cmds/statsd/src/matchers/EventMatcherWizard.cpp3
-rw-r--r--cmds/statsd/src/matchers/SimpleLogMatchingTracker.cpp2
-rw-r--r--cmds/statsd/src/matchers/SimpleLogMatchingTracker.h3
-rw-r--r--cmds/statsd/src/matchers/matcher_util.cpp1
-rw-r--r--cmds/statsd/src/matchers/matcher_util.h5
-rw-r--r--cmds/statsd/src/metrics/GaugeMetricProducer.cpp11
-rw-r--r--cmds/statsd/src/metrics/MetricProducer.cpp1
-rw-r--r--cmds/statsd/src/metrics/MetricProducer.h1
-rw-r--r--cmds/statsd/src/metrics/MetricsManager.cpp4
-rw-r--r--cmds/statsd/src/metrics/ValueMetricProducer.cpp16
-rw-r--r--cmds/statsd/src/metrics/ValueMetricProducer.h2
-rw-r--r--cmds/statsd/src/metrics/duration_helper/OringDurationTracker.h1
-rw-r--r--cmds/statsd/src/metrics/metrics_manager_util.cpp1
-rw-r--r--cmds/statsd/src/metrics/metrics_manager_util.h1
-rw-r--r--cmds/statsd/src/packages/PackageInfoListener.h1
-rw-r--r--cmds/statsd/src/packages/UidMap.cpp4
-rw-r--r--cmds/statsd/src/packages/UidMap.h2
-rw-r--r--cmds/statsd/src/shell/ShellSubscriber.cpp1
-rw-r--r--cmds/statsd/src/shell/ShellSubscriber.h1
-rwxr-xr-xcmds/statsd/src/socket/StatsSocketListener.cpp6
-rw-r--r--cmds/statsd/src/state/StateManager.h1
-rw-r--r--cmds/statsd/src/state/StateTracker.cpp80
-rw-r--r--cmds/statsd/src/state/StateTracker.h2
-rw-r--r--cmds/statsd/src/stats_log_util.cpp21
-rw-r--r--cmds/statsd/src/stats_log_util.h3
-rw-r--r--cmds/statsd/src/statscompanion_util.h6
-rw-r--r--cmds/statsd/src/storage/StorageManager.cpp2
-rw-r--r--cmds/statsd/src/subscriber/IncidentdReporter.cpp28
-rw-r--r--cmds/statsd/src/subscriber/SubscriberReporter.cpp1
-rw-r--r--cmds/statsd/tests/LogEvent_test.cpp153
-rw-r--r--cmds/statsd/tests/e2e/GaugeMetric_e2e_pull_test.cpp39
-rw-r--r--cmds/statsd/tests/e2e/PartialBucket_e2e_test.cpp17
-rw-r--r--cmds/statsd/tests/e2e/ValueMetric_pull_e2e_test.cpp15
-rw-r--r--cmds/statsd/tests/external/GpuStatsPuller_test.cpp185
-rw-r--r--cmds/statsd/tests/external/StatsCallbackPuller_test.cpp16
-rw-r--r--cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp39
-rw-r--r--cmds/statsd/tests/state/StateTracker_test.cpp103
-rw-r--r--cmds/statsd/tests/statsd_test_util.cpp36
-rw-r--r--cmds/statsd/tests/statsd_test_util.h19
-rw-r--r--config/boot-image-profile.txt31173
-rw-r--r--config/preloaded-classes834
-rw-r--r--core/java/android/accessibilityservice/AccessibilityGestureEvent.java47
-rw-r--r--core/java/android/accessibilityservice/AccessibilityService.java162
-rw-r--r--core/java/android/accessibilityservice/GestureDescription.java7
-rw-r--r--core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl4
-rw-r--r--core/java/android/annotation/SystemApi.java36
-rw-r--r--core/java/android/app/Activity.java13
-rw-r--r--core/java/android/app/ActivityManager.java2
-rw-r--r--core/java/android/app/ActivityManagerInternal.java2
-rw-r--r--core/java/android/app/ActivityTaskManager.java30
-rw-r--r--core/java/android/app/ActivityThread.java25
-rw-r--r--core/java/android/app/AppCompatCallbacks.java9
-rw-r--r--core/java/android/app/AppOpsManager.java168
-rw-r--r--core/java/android/app/AppOpsManagerInternal.java13
-rw-r--r--core/java/android/app/ApplicationPackageManager.java64
-rw-r--r--core/java/android/app/ContextImpl.java38
-rw-r--r--core/java/android/app/IActivityTaskManager.aidl13
-rw-r--r--core/java/android/app/INotificationManager.aidl2
-rw-r--r--core/java/android/app/ITaskOrganizerController.aidl62
-rw-r--r--core/java/android/app/IUiAutomationConnection.aidl1
-rw-r--r--core/java/android/app/NotificationChannel.java41
-rw-r--r--core/java/android/app/NotificationManager.java173
-rw-r--r--core/java/android/app/PropertyInvalidatedCache.java34
-rw-r--r--core/java/android/app/SystemServiceRegistry.java12
-rw-r--r--core/java/android/app/TaskEmbedder.java11
-rw-r--r--core/java/android/app/TaskInfo.java29
-rw-r--r--core/java/android/app/UiAutomation.java36
-rw-r--r--core/java/android/app/UiAutomationConnection.java22
-rw-r--r--core/java/android/app/WindowContext.java6
-rw-r--r--core/java/android/app/admin/DevicePolicyEventLogger.java7
-rw-r--r--core/java/android/app/admin/DevicePolicyKeyguardService.java14
-rw-r--r--core/java/android/app/admin/DevicePolicyManager.java87
-rw-r--r--core/java/android/app/admin/IDevicePolicyManager.aidl3
-rw-r--r--core/java/android/app/admin/IKeyguardCallback.aidl4
-rw-r--r--core/java/android/app/compat/CompatChanges.java108
-rw-r--r--core/java/android/app/prediction/AppPredictionContext.java10
-rw-r--r--core/java/android/app/timedetector/ITimeDetectorService.aidl4
-rw-r--r--core/java/android/app/timedetector/ManualTimeSuggestion.java22
-rw-r--r--core/java/android/app/timedetector/NetworkTimeSuggestion.java22
-rw-r--r--core/java/android/app/timedetector/TelephonyTimeSuggestion.aidl (renamed from core/java/android/app/timedetector/PhoneTimeSuggestion.aidl)2
-rw-r--r--core/java/android/app/timedetector/TelephonyTimeSuggestion.java (renamed from core/java/android/app/timedetector/PhoneTimeSuggestion.java)127
-rw-r--r--core/java/android/app/timedetector/TimeDetector.java12
-rw-r--r--core/java/android/app/timedetector/TimeDetectorImpl.java6
-rw-r--r--core/java/android/app/timezonedetector/ITimeZoneDetectorService.aidl4
-rw-r--r--core/java/android/app/timezonedetector/ManualTimeZoneSuggestion.java18
-rw-r--r--core/java/android/app/timezonedetector/TelephonyTimeZoneSuggestion.aidl (renamed from core/java/android/app/timezonedetector/PhoneTimeZoneSuggestion.aidl)2
-rw-r--r--core/java/android/app/timezonedetector/TelephonyTimeZoneSuggestion.java (renamed from core/java/android/app/timezonedetector/PhoneTimeZoneSuggestion.java)186
-rw-r--r--core/java/android/app/timezonedetector/TimeZoneDetector.java7
-rw-r--r--core/java/android/app/timezonedetector/TimeZoneDetectorImpl.java6
-rw-r--r--core/java/android/bluetooth/BluetoothAdapter.java135
-rw-r--r--core/java/android/bluetooth/BluetoothDevice.java6
-rw-r--r--core/java/android/bluetooth/BluetoothHidDevice.java2
-rw-r--r--core/java/android/content/Context.java19
-rw-r--r--core/java/android/content/ContextWrapper.java4
-rw-r--r--core/java/android/content/Intent.java10
-rw-r--r--core/java/android/content/integrity/AppIntegrityManager.java21
-rw-r--r--core/java/android/content/integrity/AtomicFormula.java24
-rw-r--r--core/java/android/content/integrity/IAppIntegrityManager.aidl1
-rw-r--r--core/java/android/content/integrity/IntegrityFormula.java2
-rw-r--r--core/java/android/content/integrity/Rule.java2
-rw-r--r--core/java/android/content/integrity/RuleSet.java2
-rw-r--r--core/java/android/content/om/OverlayManager.java10
-rw-r--r--core/java/android/content/pm/CrossProfileApps.java2
-rw-r--r--core/java/android/content/pm/ILauncherApps.aidl11
-rw-r--r--core/java/android/content/pm/IPackageManager.aidl4
-rw-r--r--core/java/android/content/pm/IShortcutChangeCallback.aidl37
-rw-r--r--core/java/android/content/pm/IShortcutService.aidl6
-rw-r--r--core/java/android/content/pm/LauncherApps.java176
-rw-r--r--core/java/android/content/pm/PackageInstaller.java26
-rw-r--r--core/java/android/content/pm/PackageManager.java49
-rw-r--r--core/java/android/content/pm/PackageParser.java9
-rw-r--r--core/java/android/content/pm/PermissionInfo.java15
-rw-r--r--core/java/android/content/pm/ShortcutServiceInternal.java5
-rw-r--r--core/java/android/content/pm/TEST_MAPPING10
-rw-r--r--core/java/android/content/pm/parsing/ApkLiteParseUtils.java4
-rw-r--r--core/java/android/content/pm/parsing/ApkParseUtils.java5
-rw-r--r--core/java/android/content/pm/parsing/ComponentParseUtils.java12
-rw-r--r--core/java/android/hardware/biometrics/BiometricManager.java17
-rw-r--r--core/java/android/hardware/biometrics/BiometricNativeHandleUtils.java79
-rw-r--r--core/java/android/hardware/biometrics/IBiometricNativeHandle.aidl26
-rw-r--r--core/java/android/hardware/camera2/CameraManager.java1
-rw-r--r--core/java/android/hardware/camera2/impl/CameraDeviceImpl.java16
-rw-r--r--core/java/android/hardware/camera2/impl/CameraOfflineSessionImpl.java39
-rw-r--r--core/java/android/hardware/display/AmbientDisplayConfiguration.java5
-rw-r--r--core/java/android/hardware/face/FaceManager.java86
-rw-r--r--core/java/android/hardware/face/IFaceService.aidl5
-rw-r--r--core/java/android/hardware/fingerprint/FingerprintManager.java84
-rw-r--r--core/java/android/hardware/fingerprint/IFingerprintService.aidl8
-rw-r--r--core/java/android/hardware/soundtrigger/ConversionUtil.java11
-rw-r--r--core/java/android/hardware/soundtrigger/SoundTrigger.java52
-rw-r--r--core/java/android/inputmethodservice/InputMethodService.java40
-rw-r--r--core/java/android/inputmethodservice/SoftInputWindow.java13
-rw-r--r--core/java/android/net/ConnectivityDiagnosticsManager.java49
-rw-r--r--core/java/android/net/ConnectivityManager.java22
-rw-r--r--core/java/android/net/IConnectivityManager.aidl24
-rw-r--r--core/java/android/net/NetworkAgent.java50
-rw-r--r--core/java/android/net/NetworkCapabilities.java165
-rw-r--r--core/java/android/net/NetworkRequest.java26
-rw-r--r--core/java/android/net/NetworkScore.aidl19
-rw-r--r--core/java/android/net/NetworkScore.java468
-rw-r--r--core/java/android/net/NetworkSpecifier.java17
-rw-r--r--core/java/android/net/VpnManager.java86
-rw-r--r--core/java/android/net/VpnService.java2
-rw-r--r--core/java/android/os/Binder.java12
-rw-r--r--core/java/android/os/BinderProxy.java4
-rwxr-xr-xcore/java/android/os/Build.java7
-rw-r--r--core/java/android/os/Environment.java17
-rw-r--r--core/java/android/os/IBinder.java12
-rw-r--r--core/java/android/os/Process.java6
-rw-r--r--core/java/android/os/RecoverySystem.java4
-rw-r--r--core/java/android/os/TimestampedValue.java3
-rw-r--r--core/java/android/os/UpdateEngine.java19
-rw-r--r--core/java/android/os/UserManager.java25
-rw-r--r--core/java/android/os/VibrationAttributes.java12
-rw-r--r--core/java/android/os/WorkSource.java2
-rw-r--r--core/java/android/os/incremental/IIncrementalService.aidl (renamed from core/java/android/os/incremental/IIncrementalManagerNative.aidl)2
-rw-r--r--core/java/android/os/incremental/IncrementalFileStorages.java292
-rw-r--r--core/java/android/os/incremental/IncrementalManager.java174
-rw-r--r--core/java/android/os/incremental/IncrementalStorage.java23
-rw-r--r--core/java/android/os/storage/StorageManager.java115
-rw-r--r--core/java/android/permission/PermissionManager.java10
-rw-r--r--core/java/android/provider/ContactsContract.java20
-rw-r--r--core/java/android/provider/DeviceConfig.java8
-rw-r--r--core/java/android/provider/DocumentsContract.java4
-rw-r--r--core/java/android/provider/Settings.java6
-rw-r--r--core/java/android/provider/Telephony.java1
-rw-r--r--core/java/android/service/autofill/Dataset.java25
-rw-r--r--core/java/android/service/autofill/augmented/AugmentedAutofillService.java93
-rw-r--r--core/java/android/service/autofill/augmented/FillCallback.java6
-rw-r--r--core/java/android/service/autofill/augmented/FillController.java9
-rw-r--r--core/java/android/service/autofill/augmented/FillRequest.java4
-rw-r--r--core/java/android/service/autofill/augmented/FillResponse.java56
-rw-r--r--core/java/android/service/autofill/augmented/FillWindow.java41
-rw-r--r--core/java/android/service/autofill/augmented/IFillCallback.aidl3
-rw-r--r--core/java/android/service/chooser/ChooserTarget.java5
-rw-r--r--core/java/android/service/chooser/ChooserTargetService.java6
-rw-r--r--core/java/android/service/contentcapture/ContentCaptureService.java4
-rw-r--r--core/java/android/service/notification/StatusBarNotification.java29
-rw-r--r--core/java/android/service/notification/ZenModeConfig.java83
-rw-r--r--core/java/android/service/notification/ZenPolicy.java124
-rw-r--r--core/java/android/service/textclassifier/TextClassifierService.java69
-rw-r--r--core/java/android/service/voice/AlwaysOnHotwordDetector.java20
-rw-r--r--core/java/android/telephony/CellBroadcastIntents.java1
-rw-r--r--core/java/android/telephony/PhoneStateListener.java4
-rw-r--r--core/java/android/timezone/CountryTimeZones.java92
-rw-r--r--core/java/android/timezone/TelephonyLookup.java2
-rw-r--r--core/java/android/timezone/TelephonyNetwork.java2
-rw-r--r--core/java/android/timezone/TelephonyNetworkFinder.java2
-rw-r--r--core/java/android/timezone/TimeZoneFinder.java2
-rw-r--r--core/java/android/timezone/TzDataSetVersion.java11
-rw-r--r--core/java/android/timezone/ZoneInfoDb.java2
-rw-r--r--core/java/android/util/FeatureFlagUtils.java8
-rw-r--r--core/java/android/util/RotationUtils.java72
-rw-r--r--core/java/android/util/TimeUtils.java8
-rw-r--r--core/java/android/view/Display.java21
-rw-r--r--core/java/android/view/GestureDetector.java19
-rw-r--r--core/java/android/view/ITaskOrganizer.aidl18
-rw-r--r--core/java/android/view/IWindowManager.aidl4
-rw-r--r--core/java/android/view/IWindowSession.aidl8
-rw-r--r--core/java/android/view/ImeFocusController.java8
-rw-r--r--core/java/android/view/ImeInsetsSourceConsumer.java31
-rw-r--r--core/java/android/view/InsetsAnimationControlImpl.java8
-rw-r--r--core/java/android/view/InsetsController.java101
-rw-r--r--core/java/android/view/InsetsSource.java13
-rw-r--r--core/java/android/view/InsetsSourceConsumer.java56
-rw-r--r--core/java/android/view/InsetsState.java17
-rw-r--r--core/java/android/view/SurfaceControl.java161
-rw-r--r--core/java/android/view/SurfaceControlViewHost.aidl19
-rw-r--r--core/java/android/view/SurfaceControlViewHost.java2
-rw-r--r--core/java/android/view/SurfaceView.java3
-rw-r--r--core/java/android/view/View.java40
-rw-r--r--core/java/android/view/ViewConfiguration.java9
-rw-r--r--core/java/android/view/ViewGroup.java12
-rw-r--r--core/java/android/view/ViewRootImpl.java29
-rw-r--r--core/java/android/view/Window.java48
-rw-r--r--core/java/android/view/WindowContainerTransaction.java11
-rw-r--r--core/java/android/view/WindowInsetsAnimationCallback.java12
-rw-r--r--core/java/android/view/WindowInsetsAnimationControlListener.java2
-rw-r--r--core/java/android/view/WindowInsetsAnimationController.java3
-rw-r--r--core/java/android/view/WindowInsetsController.java56
-rw-r--r--core/java/android/view/WindowManager.java6
-rw-r--r--core/java/android/view/WindowlessWindowManager.java43
-rw-r--r--core/java/android/view/accessibility/AccessibilityInteractionClient.java26
-rw-r--r--core/java/android/view/accessibility/AccessibilityNodeInfo.java23
-rw-r--r--core/java/android/view/autofill/AutofillPopupWindow.java11
-rw-r--r--core/java/android/view/inputmethod/InputMethodManager.java5
-rw-r--r--core/java/android/view/textclassifier/ConversationActions.java25
-rw-r--r--core/java/android/view/textclassifier/SelectionEvent.java34
-rw-r--r--core/java/android/view/textclassifier/SystemTextClassifier.java25
-rw-r--r--core/java/android/view/textclassifier/TextClassification.java24
-rw-r--r--core/java/android/view/textclassifier/TextClassificationConstants.java23
-rw-r--r--core/java/android/view/textclassifier/TextClassificationContext.java23
-rw-r--r--core/java/android/view/textclassifier/TextClassificationManager.java37
-rw-r--r--core/java/android/view/textclassifier/TextClassifier.java10
-rw-r--r--core/java/android/view/textclassifier/TextClassifierImpl.java4
-rw-r--r--core/java/android/view/textclassifier/TextLanguage.java24
-rw-r--r--core/java/android/view/textclassifier/TextLinks.java24
-rw-r--r--core/java/android/view/textclassifier/TextSelection.java24
-rw-r--r--core/java/android/widget/AbsListView.java26
-rw-r--r--core/java/android/widget/Editor.java10
-rw-r--r--core/java/android/widget/ListView.java4
-rw-r--r--core/java/android/widget/Magnifier.java60
-rw-r--r--core/java/android/widget/TextView.java31
-rw-r--r--core/java/android/widget/Toast.java81
-rw-r--r--core/java/com/android/ims/internal/uce/common/CapInfo.java36
-rw-r--r--core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java86
-rw-r--r--core/java/com/android/internal/app/BlockedAppActivity.java86
-rw-r--r--core/java/com/android/internal/app/ChooserActivity.java4
-rw-r--r--core/java/com/android/internal/app/ResolverActivity.java8
-rw-r--r--core/java/com/android/internal/compat/ChangeReporter.java56
-rw-r--r--core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java7
-rw-r--r--core/java/com/android/internal/logging/InstanceId.java47
-rw-r--r--core/java/com/android/internal/logging/InstanceIdSequence.java18
-rw-r--r--core/java/com/android/internal/logging/MetricsLogger.java6
-rw-r--r--core/java/com/android/internal/logging/UiEventLoggerImpl.java8
-rw-r--r--core/java/com/android/internal/net/VpnConfig.java1
-rw-r--r--core/java/com/android/internal/os/BatteryStatsImpl.java73
-rw-r--r--core/java/com/android/internal/os/RuntimeInit.java7
-rw-r--r--core/java/com/android/internal/os/StatsdHiddenApiUsageLogger.java15
-rw-r--r--core/java/com/android/internal/os/logging/MetricsLoggerWrapper.java38
-rw-r--r--core/java/com/android/internal/policy/PhoneWindow.java29
-rw-r--r--core/java/com/android/internal/util/LocationPermissionChecker.java85
-rw-r--r--core/java/com/android/internal/util/ObjectUtils.java8
-rw-r--r--core/java/com/android/internal/util/Preconditions.java60
-rw-r--r--core/java/com/android/internal/view/FloatingActionMode.java4
-rw-r--r--core/java/com/android/internal/view/menu/MenuPopupHelper.java11
-rw-r--r--core/java/com/android/internal/widget/ILockSettings.aidl2
-rw-r--r--core/java/com/android/internal/widget/LockPatternUtils.java33
-rw-r--r--core/java/com/android/server/BootReceiver.java40
-rw-r--r--core/jni/Android.bp17
-rw-r--r--core/jni/AndroidRuntime.cpp156
-rw-r--r--core/jni/LayoutlibLoader.cpp107
-rw-r--r--core/jni/android/graphics/Graphics.cpp4
-rw-r--r--core/jni/android_os_storage_StorageManager.cpp77
-rw-r--r--core/jni/android_util_Binder.cpp57
-rw-r--r--core/jni/android_view_RenderNode.cpp6
-rw-r--r--core/jni/android_view_SurfaceControl.cpp121
-rw-r--r--core/jni/android_view_ThreadedRenderer.cpp8
-rw-r--r--core/jni/com_android_internal_os_Zygote.cpp1
-rw-r--r--core/jni/fd_utils.cpp1
-rw-r--r--core/proto/android/app/settings_enums.proto12
-rw-r--r--core/proto/android/os/incident.proto6
-rw-r--r--core/proto/android/server/activitymanagerservice.proto86
-rw-r--r--core/proto/android/server/connectivity/data_stall_event.proto6
-rw-r--r--core/proto/android/server/notificationhistory.proto2
-rw-r--r--core/proto/android/server/vibratorservice.proto66
-rw-r--r--core/proto/android/server/windowmanagerservice.proto117
-rw-r--r--core/proto/android/service/sensor_service.proto246
-rw-r--r--core/proto/android/stats/devicepolicy/device_policy_enums.proto2
-rw-r--r--core/res/AndroidManifest.xml54
-rw-r--r--core/res/res/drawable-hdpi/sym_app_on_sd_unavailable_icon.pngbin3342 -> 0 bytes
-rw-r--r--core/res/res/drawable-ldpi/sym_app_on_sd_unavailable_icon.pngbin1077 -> 0 bytes
-rw-r--r--core/res/res/drawable-mdpi/sym_app_on_sd_unavailable_icon.pngbin5433 -> 0 bytes
-rw-r--r--core/res/res/drawable-xhdpi/sym_app_on_sd_unavailable_icon.pngbin4125 -> 0 bytes
-rw-r--r--core/res/res/drawable/ic_open_in_new.xml26
-rw-r--r--core/res/res/drawable/media_seamless_background.xml2
-rw-r--r--core/res/res/drawable/sym_app_on_sd_unavailable_icon.xml47
-rw-r--r--core/res/res/layout/accessibility_button_chooser_item.xml1
-rw-r--r--core/res/res/mipmap-hdpi/sym_app_on_sd_unavailable_icon.pngbin3342 -> 0 bytes
-rw-r--r--core/res/res/mipmap-ldpi/sym_app_on_sd_unavailable_icon.pngbin1077 -> 0 bytes
-rw-r--r--core/res/res/mipmap-mdpi/sym_app_on_sd_unavailable_icon.pngbin5433 -> 0 bytes
-rw-r--r--core/res/res/values-af/strings.xml21
-rw-r--r--core/res/res/values-am/strings.xml21
-rw-r--r--core/res/res/values-ar/strings.xml23
-rw-r--r--core/res/res/values-as/strings.xml21
-rw-r--r--core/res/res/values-az/strings.xml21
-rw-r--r--core/res/res/values-b+sr+Latn/strings.xml21
-rw-r--r--core/res/res/values-be/strings.xml21
-rw-r--r--core/res/res/values-bg/strings.xml21
-rw-r--r--core/res/res/values-bn/strings.xml21
-rw-r--r--core/res/res/values-bs/strings.xml23
-rw-r--r--core/res/res/values-ca/strings.xml23
-rw-r--r--core/res/res/values-cs/strings.xml21
-rw-r--r--core/res/res/values-da/strings.xml21
-rw-r--r--core/res/res/values-de/strings.xml21
-rw-r--r--core/res/res/values-el/strings.xml21
-rw-r--r--core/res/res/values-en-rAU/strings.xml21
-rw-r--r--core/res/res/values-en-rCA/strings.xml21
-rw-r--r--core/res/res/values-en-rGB/strings.xml21
-rw-r--r--core/res/res/values-en-rIN/strings.xml21
-rw-r--r--core/res/res/values-en-rXC/strings.xml21
-rw-r--r--core/res/res/values-es-rUS/strings.xml21
-rw-r--r--core/res/res/values-es/strings.xml21
-rw-r--r--core/res/res/values-et/strings.xml21
-rw-r--r--core/res/res/values-eu/strings.xml21
-rw-r--r--core/res/res/values-fa/strings.xml21
-rw-r--r--core/res/res/values-fi/strings.xml21
-rw-r--r--core/res/res/values-fr-rCA/strings.xml21
-rw-r--r--core/res/res/values-fr/strings.xml21
-rw-r--r--core/res/res/values-gl/strings.xml21
-rw-r--r--core/res/res/values-gu/strings.xml21
-rw-r--r--core/res/res/values-hi/strings.xml21
-rw-r--r--core/res/res/values-hr/strings.xml21
-rw-r--r--core/res/res/values-hu/strings.xml21
-rw-r--r--core/res/res/values-hy/strings.xml21
-rw-r--r--core/res/res/values-in/strings.xml21
-rw-r--r--core/res/res/values-is/strings.xml21
-rw-r--r--core/res/res/values-it/strings.xml21
-rw-r--r--core/res/res/values-iw/strings.xml21
-rw-r--r--core/res/res/values-ja/strings.xml21
-rw-r--r--core/res/res/values-ka/strings.xml21
-rw-r--r--core/res/res/values-kk/strings.xml21
-rw-r--r--core/res/res/values-km/strings.xml21
-rw-r--r--core/res/res/values-kn/strings.xml21
-rw-r--r--core/res/res/values-ko/strings.xml21
-rw-r--r--core/res/res/values-ky/strings.xml21
-rw-r--r--core/res/res/values-lo/strings.xml21
-rw-r--r--core/res/res/values-lt/strings.xml21
-rw-r--r--core/res/res/values-lv/strings.xml21
-rw-r--r--core/res/res/values-mcc334/config.xml23
-rw-r--r--core/res/res/values-mcc732/config.xml23
-rw-r--r--core/res/res/values-mcc740/config.xml23
-rw-r--r--core/res/res/values-mk/strings.xml21
-rw-r--r--core/res/res/values-ml/strings.xml21
-rw-r--r--core/res/res/values-mn/strings.xml21
-rw-r--r--core/res/res/values-mr/strings.xml21
-rw-r--r--core/res/res/values-ms/strings.xml21
-rw-r--r--core/res/res/values-my/strings.xml21
-rw-r--r--core/res/res/values-nb/strings.xml21
-rw-r--r--core/res/res/values-ne/strings.xml21
-rw-r--r--core/res/res/values-nl/strings.xml21
-rw-r--r--core/res/res/values-or/strings.xml27
-rw-r--r--core/res/res/values-pa/strings.xml27
-rw-r--r--core/res/res/values-pl/strings.xml27
-rw-r--r--core/res/res/values-pt-rBR/strings.xml23
-rw-r--r--core/res/res/values-pt-rPT/strings.xml21
-rw-r--r--core/res/res/values-pt/strings.xml23
-rw-r--r--core/res/res/values-ro/strings.xml21
-rw-r--r--core/res/res/values-ru/strings.xml21
-rw-r--r--core/res/res/values-si/strings.xml21
-rw-r--r--core/res/res/values-sk/strings.xml21
-rw-r--r--core/res/res/values-sl/strings.xml21
-rw-r--r--core/res/res/values-sq/strings.xml21
-rw-r--r--core/res/res/values-sr/strings.xml21
-rw-r--r--core/res/res/values-sv/strings.xml21
-rw-r--r--core/res/res/values-sw/strings.xml21
-rw-r--r--core/res/res/values-ta/strings.xml21
-rw-r--r--core/res/res/values-te/strings.xml21
-rw-r--r--core/res/res/values-th/strings.xml21
-rw-r--r--core/res/res/values-tl/strings.xml21
-rw-r--r--core/res/res/values-tr/strings.xml21
-rw-r--r--core/res/res/values-uk/strings.xml21
-rw-r--r--core/res/res/values-ur/strings.xml21
-rw-r--r--core/res/res/values-uz/strings.xml21
-rw-r--r--core/res/res/values-vi/strings.xml21
-rw-r--r--core/res/res/values-zh-rCN/strings.xml21
-rw-r--r--core/res/res/values-zh-rHK/strings.xml21
-rw-r--r--core/res/res/values-zh-rTW/strings.xml21
-rw-r--r--core/res/res/values-zu/strings.xml21
-rw-r--r--core/res/res/values/attrs_manifest.xml10
-rw-r--r--core/res/res/values/config.xml45
-rw-r--r--core/res/res/values/dimens.xml6
-rw-r--r--core/res/res/values/ids.xml3
-rw-r--r--core/res/res/values/public.xml1
-rw-r--r--core/res/res/values/strings.xml7
-rw-r--r--core/res/res/values/symbols.xml16
-rw-r--r--core/res/res/values/vendor_cross_profile_apps.xml24
-rw-r--r--core/res/res/xml/default_zen_mode_config.xml5
-rw-r--r--core/res/res/xml/sms_short_codes.xml14
-rw-r--r--core/tests/PlatformCompatFramework/src/com/android/internal/compat/ChangeReporterTest.java20
-rw-r--r--core/tests/coretests/Android.bp1
-rw-r--r--core/tests/coretests/AndroidManifest.xml8
-rw-r--r--core/tests/coretests/BstatsTestApp/src/com/android/coretests/apps/bstatstestapp/TestService.java9
-rw-r--r--core/tests/coretests/src/android/app/activity/ActivityManagerTest.java142
-rw-r--r--core/tests/coretests/src/android/app/activity/ActivityThreadTest.java6
-rw-r--r--core/tests/coretests/src/android/app/compat/CompatChangesTest.java81
-rw-r--r--core/tests/coretests/src/android/app/timedetector/TelephonyTimeSuggestionTest.java (renamed from core/tests/coretests/src/android/app/timedetector/PhoneTimeSuggestionTest.java)37
-rw-r--r--core/tests/coretests/src/android/app/timezonedetector/PhoneTimeZoneSuggestionTest.java155
-rw-r--r--core/tests/coretests/src/android/app/timezonedetector/TelephonyTimeZoneSuggestionTest.java162
-rw-r--r--core/tests/coretests/src/android/content/ContextTest.java1
-rw-r--r--core/tests/coretests/src/android/content/integrity/AtomicFormulaTest.java8
-rw-r--r--core/tests/coretests/src/android/content/integrity/IntegrityFormulaTest.java12
-rw-r--r--core/tests/coretests/src/android/os/BinderProxyService.java35
-rw-r--r--core/tests/coretests/src/android/os/BinderProxyTest.java43
-rw-r--r--core/tests/coretests/src/android/os/BinderTest.java14
-rw-r--r--core/tests/coretests/src/android/os/BuildTest.java2
-rw-r--r--core/tests/coretests/src/android/os/PowerManagerTest.java3
-rw-r--r--core/tests/coretests/src/android/provider/DeviceConfigTest.java18
-rw-r--r--core/tests/coretests/src/android/util/GridScenario.java2
-rw-r--r--core/tests/coretests/src/android/util/ListScenario.java2
-rw-r--r--core/tests/coretests/src/android/util/ScrollViewScenario.java2
-rw-r--r--core/tests/coretests/src/android/view/BigCache.java7
-rw-r--r--core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java7
-rw-r--r--core/tests/coretests/src/android/view/InsetsControllerTest.java97
-rw-r--r--core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java44
-rw-r--r--core/tests/coretests/src/android/view/InsetsStateTest.java11
-rw-r--r--core/tests/coretests/src/android/view/ScaleGestureDetectorTest.java23
-rw-r--r--core/tests/coretests/src/android/view/accessibility/AccessibilityServiceConnectionImpl.java7
-rw-r--r--core/tests/coretests/src/android/view/inputmethod/InputMethodManagerTest.java8
-rw-r--r--core/tests/coretests/src/android/view/menu/ContextMenuTest.java13
-rw-r--r--core/tests/coretests/src/android/view/textclassifier/TextClassificationManagerTest.java5
-rw-r--r--core/tests/coretests/src/android/view/textclassifier/TextClassifierTest.java18
-rw-r--r--core/tests/coretests/src/android/widget/focus/ListOfInternalSelectionViews.java5
-rw-r--r--core/tests/coretests/src/android/widget/gridview/touch/GridTouchVerticalSpacingStackFromBottomTest.java5
-rw-r--r--core/tests/coretests/src/android/widget/listview/AdjacentListsWithAdjacentISVsInside.java3
-rw-r--r--core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java42
-rw-r--r--core/tests/coretests/src/com/android/internal/app/ChooserWrapperActivity.java13
-rw-r--r--core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java63
-rw-r--r--core/tests/coretests/src/com/android/internal/os/BatteryStatsHelperTest.java27
-rw-r--r--core/tests/coretests/src/com/android/internal/policy/DecorContextTest.java4
-rw-r--r--core/tests/utiltests/src/com/android/internal/util/LocationPermissionCheckerTest.java39
-rw-r--r--data/etc/car/com.android.car.secondaryhome.xml24
-rw-r--r--data/etc/com.android.settings.xml3
-rw-r--r--data/etc/framework-sysconfig.xml24
-rw-r--r--data/etc/platform.xml5
-rw-r--r--data/etc/privapp-permissions-platform.xml12
-rw-r--r--data/etc/services.core.protolog.json75
-rw-r--r--graphics/java/android/graphics/HardwareRenderer.java5
-rw-r--r--graphics/java/android/graphics/Outline.java38
-rw-r--r--graphics/java/android/graphics/RenderNode.java6
-rw-r--r--graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java2
-rw-r--r--graphics/java/android/graphics/drawable/GradientDrawable.java2
-rw-r--r--graphics/java/android/graphics/drawable/shapes/RoundRectShape.java2
-rw-r--r--identity/java/android/security/identity/CredstoreIdentityCredentialStore.java4
-rw-r--r--libs/hwui/HardwareBitmapUploader.cpp21
-rw-r--r--libs/hwui/Outline.h6
-rw-r--r--libs/hwui/pipeline/skia/ATraceMemoryDump.cpp11
-rw-r--r--libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp6
-rw-r--r--libs/hwui/pipeline/skia/SkiaOpenGLPipeline.h2
-rw-r--r--libs/hwui/pipeline/skia/SkiaPipeline.cpp10
-rw-r--r--libs/hwui/pipeline/skia/SkiaPipeline.h4
-rw-r--r--libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp5
-rw-r--r--libs/hwui/pipeline/skia/SkiaVulkanPipeline.h2
-rw-r--r--libs/hwui/renderthread/CanvasContext.cpp63
-rw-r--r--libs/hwui/renderthread/CanvasContext.h3
-rw-r--r--libs/hwui/renderthread/IRenderPipeline.h4
-rw-r--r--libs/hwui/renderthread/ReliableSurface.cpp265
-rw-r--r--libs/hwui/renderthread/ReliableSurface.h66
-rw-r--r--libs/hwui/tests/common/TestContext.cpp74
-rw-r--r--libs/hwui/tests/common/TestContext.h11
-rw-r--r--libs/hwui/tests/macrobench/TestSceneRunner.cpp8
-rw-r--r--libs/hwui/tests/unit/SkiaPipelineTests.cpp2
-rw-r--r--libs/incident/Android.bp69
-rw-r--r--libs/incident/include/incident/incident_report.h192
-rw-r--r--libs/incident/include_priv/android/os/IncidentReportArgs.h (renamed from libs/incident/include/android/os/IncidentReportArgs.h)10
-rw-r--r--libs/incident/libincident.map.txt15
-rw-r--r--libs/incident/src/incident_report.cpp83
-rw-r--r--libs/incident/tests/IncidentReportArgs_test.cpp (renamed from cmds/statsd/tests/external/IncidentReportArgs_test.cpp)2
-rw-r--r--libs/incident/tests/IncidentReportRequest_test.cpp65
-rw-r--r--libs/incident/tests/c_api_compile_test.c11
-rw-r--r--location/java/android/location/Location.java18
-rw-r--r--location/java/android/location/LocationManager.java141
-rw-r--r--location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java4
-rw-r--r--media/java/android/media/AudioAttributes.java5
-rw-r--r--media/java/android/media/AudioManager.java29
-rw-r--r--media/java/android/media/AudioRecordingConfiguration.java11
-rw-r--r--media/java/android/media/IAudioService.aidl4
-rw-r--r--media/java/android/media/IMediaRoute2Provider.aidl3
-rw-r--r--media/java/android/media/IMediaRouterService.aidl3
-rw-r--r--media/java/android/media/MediaRoute2Info.java32
-rw-r--r--media/java/android/media/MediaRoute2ProviderInfo.java17
-rw-r--r--media/java/android/media/MediaRoute2ProviderService.java48
-rw-r--r--media/java/android/media/MediaRouter2.java80
-rw-r--r--media/java/android/media/MediaRouter2Manager.java31
-rw-r--r--media/java/android/media/RouteDiscoveryPreference.java3
-rw-r--r--media/java/android/media/audiopolicy/AudioVolumeGroupChangeHandler.java4
-rw-r--r--media/java/android/media/session/MediaSessionManager.java1
-rw-r--r--media/java/android/media/soundtrigger/SoundTriggerDetector.java11
-rw-r--r--media/java/android/media/soundtrigger/SoundTriggerManager.java37
-rw-r--r--media/java/android/media/tv/TvContract.java74
-rw-r--r--media/java/android/media/tv/TvInputManager.java2
-rw-r--r--media/java/android/media/tv/tuner/Tuner.java12
-rw-r--r--media/java/android/media/tv/tuner/frontend/Atsc3FrontendSettings.java4
-rw-r--r--media/java/android/media/tv/tuner/frontend/DvbcFrontendSettings.java10
-rwxr-xr-xmedia/java/android/mtp/MtpDatabase.java48
-rw-r--r--media/jni/android_media_MediaCodec.cpp32
-rw-r--r--media/jni/android_media_tv_Tuner.cpp234
-rw-r--r--media/jni/android_media_tv_Tuner.h15
-rw-r--r--media/jni/android_mtp_MtpDatabase.cpp10
-rw-r--r--media/tests/MediaFrameworkTest/AndroidManifest.xml5
-rw-r--r--media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/AudioTestHarnessTemplateRunner.java51
-rw-r--r--media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/helpers/CameraTestUtils.java9
-rw-r--r--media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/template/AudioTestHarnessTemplateAndroidTest.java127
-rw-r--r--media/tests/MediaRouteProvider/Android.bp18
-rw-r--r--media/tests/MediaRouteProvider/res/values/strings.xml5
-rw-r--r--media/tests/MediaRouter/AndroidManifest.xml8
-rw-r--r--media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRoute2InfoTest.java363
-rw-r--r--media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2Test.java780
-rw-r--r--media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouterManagerTest.java85
-rw-r--r--media/tests/MediaRouter/src/com/android/mediaroutertest/RouteDiscoveryPreferenceTest.java87
-rw-r--r--media/tests/MediaRouter/src/com/android/mediaroutertest/RoutingSessionInfoTest.java526
-rw-r--r--media/tests/MediaRouter/src/com/android/mediaroutertest/SampleMediaRoute2ProviderService.java (renamed from media/tests/MediaRouteProvider/src/com/android/mediarouteprovider/example/SampleMediaRoute2ProviderService.java)17
-rw-r--r--native/android/libandroid.map.txt2
-rw-r--r--native/android/surface_control.cpp2
-rw-r--r--packages/CarSystemUI/res/values/config.xml3
-rw-r--r--packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java8
-rw-r--r--packages/CarSystemUI/src/com/android/systemui/car/CarNotificationEntryManager.java62
-rw-r--r--packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java24
-rw-r--r--packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java24
-rw-r--r--packages/CarrierDefaultApp/res/values-ky/strings.xml2
-rw-r--r--packages/DynamicSystemInstallationService/res/values/strings.xml3
-rw-r--r--packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java19
-rw-r--r--packages/DynamicSystemInstallationService/src/com/android/dynsystem/InstallationAsyncTask.java30
-rw-r--r--packages/DynamicSystemInstallationService/src/com/android/dynsystem/KeyRevocationList.java148
-rw-r--r--packages/DynamicSystemInstallationService/tests/Android.bp15
-rw-r--r--packages/DynamicSystemInstallationService/tests/AndroidManifest.xml29
-rw-r--r--packages/DynamicSystemInstallationService/tests/res/values/strings.xml19
-rw-r--r--packages/DynamicSystemInstallationService/tests/src/com/android/dynsystem/KeyRevocationListTest.java132
-rw-r--r--packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java10
-rw-r--r--packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeApp.java21
-rw-r--r--packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeBackgroundService.java23
-rw-r--r--packages/SettingsLib/Android.bp1
-rw-r--r--packages/SettingsLib/res/values-af/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-am/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ar/arrays.xml2
-rw-r--r--packages/SettingsLib/res/values-ar/strings.xml11
-rw-r--r--packages/SettingsLib/res/values-as/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-az/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-b+sr+Latn/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-be/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-bg/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-bn/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-bs/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ca/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-cs/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-da/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-de/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-el/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-en-rAU/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-en-rCA/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-en-rGB/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-en-rIN/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-en-rXC/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-es-rUS/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-es/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-et/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-eu/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-fa/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-fi/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-fr-rCA/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-fr/strings.xml5
-rw-r--r--packages/SettingsLib/res/values-gl/strings.xml5
-rw-r--r--packages/SettingsLib/res/values-gu/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-hi/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-hr/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-hu/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-hy/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-in/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-is/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-it/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-iw/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ja/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ka/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-kk/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-km/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-kn/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ko/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ky/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-lo/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-lt/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-lv/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-mk/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ml/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-mn/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-mr/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ms/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-my/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-nb/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ne/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-nl/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-or/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-pa/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-pl/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-pt-rBR/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-pt-rPT/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-pt/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ro/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ru/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-si/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-sk/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-sl/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-sq/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-sr/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-sv/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-sw/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ta/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-te/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-th/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-tl/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-tr/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-uk/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-ur/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-uz/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-vi/strings.xml5
-rw-r--r--packages/SettingsLib/res/values-zh-rCN/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-zh-rHK/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-zh-rTW/strings.xml3
-rw-r--r--packages/SettingsLib/res/values-zu/strings.xml3
-rw-r--r--packages/SettingsLib/res/values/config.xml24
-rw-r--r--packages/SettingsLib/res/values/strings.xml8
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/Utils.java68
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java11
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java46
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpSinkProfile.java35
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java10
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java44
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java46
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/HfpClientProfile.java34
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/HidDeviceProfile.java29
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/HidProfile.java36
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfile.java23
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java4
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/MapClientProfile.java35
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/MapProfile.java36
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/OppProfile.java18
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/PanProfile.java47
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapClientProfile.java37
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapServerProfile.java33
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/SapProfile.java35
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java2
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java147
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXml.java48
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/media/BluetoothMediaManager.java8
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java43
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java46
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java29
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java53
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java17
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java24
-rw-r--r--packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java8
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java45
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpSinkProfileTest.java16
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HfpClientProfileTest.java16
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HidDeviceProfileTest.java12
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/MapClientProfileTest.java16
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/PbapClientProfileTest.java16
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/SapProfileTest.java16
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXmlTest.java35
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/BluetoothMediaManagerTest.java6
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaDeviceTest.java47
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaManagerTest.java23
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java34
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java164
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java3
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java15
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java36
-rw-r--r--packages/SettingsProvider/test/src/com/android/providers/settings/SettingsBackupAgentTest.java86
-rw-r--r--packages/SettingsProvider/test/src/com/android/providers/settings/SettingsProviderTest.java122
-rw-r--r--packages/Shell/AndroidManifest.xml15
-rw-r--r--packages/SystemUI/AndroidManifest.xml7
-rw-r--r--packages/SystemUI/docs/plugin_hooks.md5
-rw-r--r--packages/SystemUI/plugin/src/com/android/systemui/plugins/HomeControlsPlugin.java41
-rw-r--r--packages/SystemUI/plugin/src/com/android/systemui/plugins/NPVPlugin.java52
-rw-r--r--packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java24
-rw-r--r--packages/SystemUI/proguard.flags1
-rw-r--r--packages/SystemUI/res-keyguard/layout/controls_management.xml34
-rw-r--r--packages/SystemUI/res-keyguard/values/config.xml6
-rw-r--r--packages/SystemUI/res/color/control_background.xml (renamed from packages/SystemUI/res/color/lock_background.xml)0
-rw-r--r--packages/SystemUI/res/color/control_foreground.xml (renamed from packages/SystemUI/res/color/unknown_foreground.xml)0
-rw-r--r--packages/SystemUI/res/color/thermo_cool_background.xml6
-rw-r--r--packages/SystemUI/res/color/thermo_cool_foreground.xml6
-rw-r--r--packages/SystemUI/res/color/thermo_heat_background.xml6
-rw-r--r--packages/SystemUI/res/color/thermo_heat_foreground.xml (renamed from packages/SystemUI/res/color/lock_foreground.xml)2
-rw-r--r--packages/SystemUI/res/drawable/auth_dialog_enterprise.xml25
-rw-r--r--packages/SystemUI/res/drawable/control_no_favorites_background.xml2
-rw-r--r--packages/SystemUI/res/drawable/ic_device_unknown_gm2_24px.xml9
-rw-r--r--packages/SystemUI/res/drawable/ic_touch.xml26
-rw-r--r--packages/SystemUI/res/drawable/notif_dungeon_bg_gradient.xml25
-rw-r--r--packages/SystemUI/res/drawable/qs_media_background.xml26
-rw-r--r--packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml67
-rw-r--r--packages/SystemUI/res/layout/app_item.xml70
-rw-r--r--packages/SystemUI/res/layout/auth_credential_password_view.xml31
-rw-r--r--packages/SystemUI/res/layout/auth_credential_pattern_view.xml69
-rw-r--r--packages/SystemUI/res/layout/control_item.xml72
-rw-r--r--packages/SystemUI/res/layout/controls_app_item.xml87
-rw-r--r--packages/SystemUI/res/layout/controls_base_item.xml32
-rw-r--r--packages/SystemUI/res/layout/controls_no_favorites.xml2
-rw-r--r--packages/SystemUI/res/layout/controls_row.xml2
-rw-r--r--packages/SystemUI/res/layout/controls_with_favorites.xml19
-rw-r--r--packages/SystemUI/res/layout/foreground_service_dungeon.xml61
-rw-r--r--packages/SystemUI/res/layout/foreground_service_dungeon_row.xml43
-rw-r--r--packages/SystemUI/res/layout/global_actions_grid_v2.xml4
-rw-r--r--packages/SystemUI/res/layout/home_controls.xml12
-rw-r--r--packages/SystemUI/res/layout/media_carousel.xml2
-rw-r--r--packages/SystemUI/res/layout/qqs_media_panel.xml28
-rw-r--r--packages/SystemUI/res/layout/qs_footer_impl.xml5
-rw-r--r--packages/SystemUI/res/layout/qs_media_panel.xml144
-rw-r--r--packages/SystemUI/res/layout/screen_record_dialog.xml142
-rw-r--r--packages/SystemUI/res/layout/status_bar.xml26
-rw-r--r--packages/SystemUI/res/layout/status_bar_expanded.xml3
-rw-r--r--packages/SystemUI/res/values-af/strings.xml1
-rw-r--r--packages/SystemUI/res/values-am/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ar/strings.xml2
-rw-r--r--packages/SystemUI/res/values-as/strings.xml2
-rw-r--r--packages/SystemUI/res/values-az/strings.xml2
-rw-r--r--packages/SystemUI/res/values-b+sr+Latn/strings.xml1
-rw-r--r--packages/SystemUI/res/values-be/strings.xml2
-rw-r--r--packages/SystemUI/res/values-bg/strings.xml1
-rw-r--r--packages/SystemUI/res/values-bn/strings.xml2
-rw-r--r--packages/SystemUI/res/values-bs/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ca/strings.xml1
-rw-r--r--packages/SystemUI/res/values-cs/strings.xml1
-rw-r--r--packages/SystemUI/res/values-da/strings.xml1
-rw-r--r--packages/SystemUI/res/values-de/strings.xml2
-rw-r--r--packages/SystemUI/res/values-el/strings.xml1
-rw-r--r--packages/SystemUI/res/values-en-rAU/strings.xml1
-rw-r--r--packages/SystemUI/res/values-en-rCA/strings.xml1
-rw-r--r--packages/SystemUI/res/values-en-rGB/strings.xml1
-rw-r--r--packages/SystemUI/res/values-en-rIN/strings.xml1
-rw-r--r--packages/SystemUI/res/values-en-rXC/strings.xml1
-rw-r--r--packages/SystemUI/res/values-es-rUS/strings.xml1
-rw-r--r--packages/SystemUI/res/values-es/strings.xml1
-rw-r--r--packages/SystemUI/res/values-et/strings.xml2
-rw-r--r--packages/SystemUI/res/values-eu/strings.xml1
-rw-r--r--packages/SystemUI/res/values-fa/strings.xml2
-rw-r--r--packages/SystemUI/res/values-fi/strings.xml1
-rw-r--r--packages/SystemUI/res/values-fr-rCA/strings.xml2
-rw-r--r--packages/SystemUI/res/values-fr/strings.xml2
-rw-r--r--packages/SystemUI/res/values-gl/strings.xml2
-rw-r--r--packages/SystemUI/res/values-gu/strings.xml2
-rw-r--r--packages/SystemUI/res/values-hi/strings.xml6
-rw-r--r--packages/SystemUI/res/values-hr/strings.xml1
-rw-r--r--packages/SystemUI/res/values-hu/strings.xml1
-rw-r--r--packages/SystemUI/res/values-hy/strings.xml1
-rw-r--r--packages/SystemUI/res/values-in/strings.xml1
-rw-r--r--packages/SystemUI/res/values-is/strings.xml1
-rw-r--r--packages/SystemUI/res/values-it/strings.xml1
-rw-r--r--packages/SystemUI/res/values-iw/strings.xml2
-rw-r--r--packages/SystemUI/res/values-ja/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ka/strings.xml2
-rw-r--r--packages/SystemUI/res/values-kk/strings.xml2
-rw-r--r--packages/SystemUI/res/values-km/strings.xml1
-rw-r--r--packages/SystemUI/res/values-kn/strings.xml2
-rw-r--r--packages/SystemUI/res/values-ko/strings.xml2
-rw-r--r--packages/SystemUI/res/values-ky/strings.xml2
-rw-r--r--packages/SystemUI/res/values-lo/strings.xml1
-rw-r--r--packages/SystemUI/res/values-lt/strings.xml1
-rw-r--r--packages/SystemUI/res/values-lv/strings.xml2
-rw-r--r--packages/SystemUI/res/values-mk/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ml/strings.xml2
-rw-r--r--packages/SystemUI/res/values-mn/strings.xml1
-rw-r--r--packages/SystemUI/res/values-mr/strings.xml2
-rw-r--r--packages/SystemUI/res/values-ms/strings.xml2
-rw-r--r--packages/SystemUI/res/values-my/strings.xml2
-rw-r--r--packages/SystemUI/res/values-nb/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ne/strings.xml2
-rw-r--r--packages/SystemUI/res/values-nl/strings.xml1
-rw-r--r--packages/SystemUI/res/values-or/strings.xml2
-rw-r--r--packages/SystemUI/res/values-pa/strings.xml2
-rw-r--r--packages/SystemUI/res/values-pl/strings.xml3
-rw-r--r--packages/SystemUI/res/values-pt-rBR/strings.xml1
-rw-r--r--packages/SystemUI/res/values-pt-rPT/strings.xml1
-rw-r--r--packages/SystemUI/res/values-pt/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ro/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ru/strings.xml2
-rw-r--r--packages/SystemUI/res/values-si/strings.xml1
-rw-r--r--packages/SystemUI/res/values-sk/strings.xml1
-rw-r--r--packages/SystemUI/res/values-sl/strings.xml1
-rw-r--r--packages/SystemUI/res/values-sq/strings.xml2
-rw-r--r--packages/SystemUI/res/values-sr/strings.xml1
-rw-r--r--packages/SystemUI/res/values-sv/strings.xml1
-rw-r--r--packages/SystemUI/res/values-sw/strings.xml3
-rw-r--r--packages/SystemUI/res/values-ta/strings.xml2
-rw-r--r--packages/SystemUI/res/values-te/strings.xml6
-rw-r--r--packages/SystemUI/res/values-television/config.xml3
-rw-r--r--packages/SystemUI/res/values-th/strings.xml1
-rw-r--r--packages/SystemUI/res/values-tl/strings.xml1
-rw-r--r--packages/SystemUI/res/values-tr/strings.xml1
-rw-r--r--packages/SystemUI/res/values-uk/strings.xml1
-rw-r--r--packages/SystemUI/res/values-ur/strings.xml1
-rw-r--r--packages/SystemUI/res/values-uz/strings.xml7
-rw-r--r--packages/SystemUI/res/values-vi/strings.xml2
-rw-r--r--packages/SystemUI/res/values-zh-rCN/strings.xml2
-rw-r--r--packages/SystemUI/res/values-zh-rHK/strings.xml1
-rw-r--r--packages/SystemUI/res/values-zh-rTW/strings.xml1
-rw-r--r--packages/SystemUI/res/values-zu/strings.xml1
-rw-r--r--packages/SystemUI/res/values/config.xml4
-rw-r--r--packages/SystemUI/res/values/dimens.xml37
-rw-r--r--packages/SystemUI/res/values/strings.xml61
-rw-r--r--packages/SystemUI/res/values/styles.xml65
-rw-r--r--packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/IconLoader.java197
-rw-r--r--packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/TaskKeyCache.java101
-rw-r--r--packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/TaskKeyLruCache.java100
-rw-r--r--packages/SystemUI/shared/src/com/android/systemui/shared/tracing/FrameProtoTracer.java38
-rw-r--r--packages/SystemUI/src/com/android/keyguard/AdminSecondaryLockScreenController.java14
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java9
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java27
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java121
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/DejankUtils.java44
-rw-r--r--packages/SystemUI/src/com/android/systemui/ForegroundServiceNotificationListener.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java14
-rw-r--r--packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/bubbles/BubbleTouchHandler.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/bubbles/animation/ExpandedAnimationController.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/ControlStatus.kt6
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/ControlsServiceInfo.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/UserAwareController.kt25
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingController.kt3
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt67
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/controller/ControlsController.kt4
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt176
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt20
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManager.kt77
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/management/AppAdapter.kt29
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt58
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/management/ControlsFavoritingActivity.kt45
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingController.kt5
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt61
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt50
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/ui/Behavior.kt21
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt339
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiController.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt64
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/ui/RenderInfo.kt125
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/ui/TemperatureControlBehavior.kt56
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/ui/ToggleBehavior.kt66
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/ui/ToggleRangeBehavior.kt183
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/ui/UnknownBehavior.kt25
-rw-r--r--packages/SystemUI/src/com/android/systemui/dagger/DefaultComponentBinder.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/dagger/SystemUIRootComponent.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeLog.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt8
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeSuppressedHandler.java124
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java27
-rw-r--r--packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java18
-rw-r--r--packages/SystemUI/src/com/android/systemui/log/Event.java84
-rw-r--r--packages/SystemUI/src/com/android/systemui/log/RichEvent.java123
-rw-r--r--packages/SystemUI/src/com/android/systemui/log/SysuiLog.java180
-rw-r--r--packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java60
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/DoubleLineTileLayout.kt2
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSCarrier.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroupController.java23
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSColorController.kt140
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSMediaPlayer.java86
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSPanel.java38
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QuickQSMediaPlayer.java72
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/TileLayout.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java48
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java58
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java43
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/ControlsTile.java203
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/FlashlightTile.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/LocationTile.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/TriangleShape.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/screenrecord/RecordingService.java47
-rw-r--r--packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordDialog.java124
-rw-r--r--packages/SystemUI/src/com/android/systemui/screenshot/SaveImageInBackgroundTask.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/InflationTask.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java16
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoveInterceptor.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/BypassHeadsUpNotifier.kt5
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/ForegroundServiceDismissalFeatureController.kt49
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationAlertingManager.java14
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryListener.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java117
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManagerLogger.kt100
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListDumper.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java283
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifInflaterImpl.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifPipeline.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationEntry.java133
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManager.kt7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HideLocallyDismissedNotifsCoordinator.java41
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/NotifCoordinators.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java16
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorLogger.kt45
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotificationRowBinderImpl.java48
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/CommonNotifCollection.java37
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionListener.java31
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt29
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java64
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsController.kt50
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsControllerImpl.kt160
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsControllerStub.kt76
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotifEvent.java212
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotifLog.java115
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHubNotificationListener.kt3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/BindRequester.java76
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/BindStage.java104
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/DungeonRow.kt43
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java118
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ForegroundServiceDungeonView.kt38
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipeline.java207
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineInitializer.java47
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifRemoteViewCacheImpl.java18
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java19
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinder.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindParams.java165
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStage.java118
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ForegroundServiceSectionController.kt171
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java49
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NPVPluginManager.kt102
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java45
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java144
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowController.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarTransitions.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java54
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java112
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java23
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java37
-rw-r--r--packages/SystemUI/src/com/android/systemui/tracing/sysui_trace.proto26
-rw-r--r--packages/SystemUI/src/com/android/systemui/tracing/sysui_trace_file.proto49
-rw-r--r--packages/SystemUI/src/com/android/systemui/tuner/DemoModeFragment.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/tv/TvSystemUIBinder.java28
-rw-r--r--packages/SystemUI/src/com/android/systemui/tv/TvSystemUIFactory.java35
-rw-r--r--packages/SystemUI/src/com/android/systemui/tv/TvSystemUIRootComponent.java58
-rw-r--r--packages/SystemUI/src/com/android/systemui/util/FloatingContentCoordinator.kt320
-rw-r--r--packages/SystemUI/src/com/android/systemui/util/Utils.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/wm/DisplayLayout.java106
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/AdminSecondaryLockScreenControllerTest.java29
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/ExpandHelperTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.java24
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java57
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsBindingControllerImplTest.kt55
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsControllerImplTest.kt143
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManagerTest.kt10
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsListingControllerImplTest.kt33
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/doze/DozeConfigurationUtil.java1
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java103
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuppressedHandlerTest.java77
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/log/RichEventTest.java69
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/log/SysuiLogTest.java111
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/qs/QSSecurityFooterTest.java18
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/shared/recents/model/TaskKeyLruCacheTest.java140
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/AboveShelfObserverTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationEntryManagerTest.java42
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationFilterTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/TestableNotificationEntryManager.kt14
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java304
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManagerTest.kt8
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java11
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineTest.java158
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotifRemoteViewCacheImplTest.java22
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationBlockingHelperManagerTest.java1
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java36
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java8
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java1
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java (renamed from packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java)71
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/RowContentBindStageTest.java269
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationCustomViewWrapperTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationMediaTemplateViewWrapperTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationViewWrapperTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainerTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManagerTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java36
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java62
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupTestHelper.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationActivityStarterTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java8
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java32
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputViewTest.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/util/FloatingContentCoordinatorTest.kt218
-rw-r--r--packages/Tethering/common/TetheringLib/jarjar-rules.txt1
-rw-r--r--packages/Tethering/common/TetheringLib/src/android/net/TetheringManager.java216
-rw-r--r--packages/Tethering/res/values/config.xml1
-rw-r--r--packages/Tethering/src/com/android/server/connectivity/tethering/Tethering.java15
-rw-r--r--packages/Tethering/src/com/android/server/connectivity/tethering/TetheringService.java2
-rw-r--r--packages/VpnDialogs/AndroidManifest.xml7
-rw-r--r--packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java13
-rw-r--r--packages/VpnDialogs/src/com/android/vpndialogs/PlatformVpnConfirmDialog.java29
-rw-r--r--packages/WallpaperCropper/src/com/android/photos/views/TiledImageRenderer.java5
-rw-r--r--packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java20
-rw-r--r--packages/overlays/Android.mk3
-rw-r--r--packages/overlays/DisplayCutoutEmulationHoleOverlay/Android.mk14
-rw-r--r--packages/overlays/DisplayCutoutEmulationHoleOverlay/AndroidManifest.xml26
-rw-r--r--packages/overlays/DisplayCutoutEmulationHoleOverlay/res/values-land/config.xml22
-rw-r--r--packages/overlays/DisplayCutoutEmulationHoleOverlay/res/values/config.xml61
-rw-r--r--packages/overlays/DisplayCutoutEmulationHoleOverlay/res/values/strings.xml22
-rw-r--r--packages/overlays/DisplayCutoutEmulationWaterfallOverlay/Android.mk14
-rw-r--r--packages/overlays/DisplayCutoutEmulationWaterfallOverlay/AndroidManifest.xml26
-rw-r--r--packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-land/config.xml22
-rw-r--r--packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values/config.xml35
-rw-r--r--packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values/strings.xml21
-rw-r--r--packages/overlays/IconShapePebbleOverlay/Android.mk29
-rw-r--r--packages/overlays/IconShapePebbleOverlay/AndroidManifest.xml29
-rw-r--r--packages/overlays/IconShapePebbleOverlay/res/values/config.xml30
-rw-r--r--packages/overlays/IconShapePebbleOverlay/res/values/strings.xml23
-rw-r--r--services/Android.bp2
-rw-r--r--services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java76
-rw-r--r--services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java17
-rw-r--r--services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java2
-rw-r--r--services/accessibility/java/com/android/server/accessibility/gestures/EventDispatcher.java6
-rw-r--r--services/accessibility/java/com/android/server/accessibility/gestures/GestureManifold.java50
-rw-r--r--services/accessibility/java/com/android/server/accessibility/gestures/GestureUtils.java11
-rw-r--r--services/accessibility/java/com/android/server/accessibility/gestures/MultiFingerSwipe.java514
-rw-r--r--services/accessibility/java/com/android/server/accessibility/gestures/SecondFingerMultiTap.java7
-rw-r--r--services/accessibility/java/com/android/server/accessibility/gestures/Swipe.java52
-rw-r--r--services/appprediction/java/com/android/server/appprediction/AppPredictionPerUserService.java125
-rw-r--r--services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java4
-rw-r--r--services/art-profile24172
-rw-r--r--services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java88
-rw-r--r--services/autofill/java/com/android/server/autofill/RemoteAugmentedAutofillService.java45
-rw-r--r--services/autofill/java/com/android/server/autofill/RemoteInlineSuggestionRenderService.java11
-rw-r--r--services/autofill/java/com/android/server/autofill/Session.java18
-rw-r--r--services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java (renamed from services/autofill/java/com/android/server/autofill/InlineSuggestionFactory.java)89
-rw-r--r--services/autofill/java/com/android/server/autofill/ui/InlineSuggestionRoot.java82
-rw-r--r--services/autofill/java/com/android/server/autofill/ui/InlineSuggestionUi.java16
-rw-r--r--services/autofill/java/com/android/server/autofill/ui/SaveUi.java16
-rw-r--r--services/backup/backuplib/java/com/android/server/backup/transport/TransportClient.java5
-rw-r--r--services/backup/java/com/android/server/backup/UserBackupManagerFilePersistedSettings.java20
-rw-r--r--services/contentcapture/java/com/android/server/contentcapture/ContentCaptureMetricsLogger.java17
-rw-r--r--services/contentcapture/java/com/android/server/contentcapture/ContentCapturePerUserService.java12
-rw-r--r--services/contentcapture/java/com/android/server/contentcapture/RemoteContentCaptureService.java18
-rw-r--r--services/core/Android.bp4
-rw-r--r--services/core/java/android/app/usage/UsageStatsManagerInternal.java7
-rw-r--r--services/core/java/android/content/pm/PackageManagerInternal.java2
-rw-r--r--services/core/java/com/android/server/AlarmManagerService.java88
-rw-r--r--services/core/java/com/android/server/BatteryService.java33
-rw-r--r--services/core/java/com/android/server/BluetoothManagerService.java11
-rw-r--r--services/core/java/com/android/server/ConnectivityService.java1051
-rw-r--r--services/core/java/com/android/server/LocationManagerService.java69
-rw-r--r--services/core/java/com/android/server/NetworkManagementService.java10
-rw-r--r--services/core/java/com/android/server/RescueParty.java8
-rw-r--r--services/core/java/com/android/server/ServiceWatcher.java60
-rw-r--r--services/core/java/com/android/server/StorageManagerService.java51
-rw-r--r--services/core/java/com/android/server/SystemService.java5
-rw-r--r--services/core/java/com/android/server/TelephonyRegistry.java37
-rw-r--r--services/core/java/com/android/server/VibratorService.java160
-rw-r--r--services/core/java/com/android/server/Watchdog.java5
-rw-r--r--services/core/java/com/android/server/adb/AdbDebuggingManager.java6
-rw-r--r--services/core/java/com/android/server/am/ActiveServices.java37
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerConstants.java31
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerDebugConfig.java2
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java180
-rw-r--r--services/core/java/com/android/server/am/AppExitInfoTracker.java9
-rw-r--r--services/core/java/com/android/server/am/BatteryExternalStatsWorker.java7
-rw-r--r--services/core/java/com/android/server/am/BatteryStatsService.java120
-rw-r--r--services/core/java/com/android/server/am/BroadcastQueue.java7
-rw-r--r--services/core/java/com/android/server/am/CachedAppOptimizer.java14
-rw-r--r--services/core/java/com/android/server/am/OomAdjuster.java41
-rw-r--r--services/core/java/com/android/server/am/ProcessList.java158
-rw-r--r--services/core/java/com/android/server/am/ProcessRecord.java45
-rw-r--r--services/core/java/com/android/server/am/TEST_MAPPING8
-rw-r--r--services/core/java/com/android/server/am/UserController.java10
-rw-r--r--services/core/java/com/android/server/appop/AppOpsService.java335
-rw-r--r--services/core/java/com/android/server/attention/AttentionManagerService.java11
-rw-r--r--services/core/java/com/android/server/audio/AudioService.java104
-rw-r--r--services/core/java/com/android/server/audio/PlaybackActivityMonitor.java82
-rw-r--r--services/core/java/com/android/server/audio/RotationHelper.java1
-rw-r--r--services/core/java/com/android/server/backup/SystemBackupAgent.java1
-rw-r--r--services/core/java/com/android/server/biometrics/AuthService.java58
-rw-r--r--services/core/java/com/android/server/biometrics/AuthenticationClient.java22
-rw-r--r--services/core/java/com/android/server/biometrics/BiometricService.java198
-rw-r--r--services/core/java/com/android/server/biometrics/BiometricServiceBase.java16
-rw-r--r--services/core/java/com/android/server/biometrics/EnrollClient.java21
-rw-r--r--services/core/java/com/android/server/biometrics/Utils.java32
-rw-r--r--services/core/java/com/android/server/biometrics/face/FaceService.java42
-rw-r--r--services/core/java/com/android/server/biometrics/fingerprint/FingerprintAuthenticator.java2
-rw-r--r--services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java54
-rw-r--r--services/core/java/com/android/server/camera/CameraServiceProxy.java19
-rw-r--r--services/core/java/com/android/server/compat/CompatConfig.java10
-rw-r--r--services/core/java/com/android/server/compat/PlatformCompat.java33
-rw-r--r--services/core/java/com/android/server/compat/PlatformCompatNative.java5
-rw-r--r--services/core/java/com/android/server/connectivity/LingerMonitor.java29
-rw-r--r--services/core/java/com/android/server/connectivity/NetdEventListenerService.java4
-rw-r--r--services/core/java/com/android/server/connectivity/NetworkAgentInfo.java2
-rw-r--r--services/core/java/com/android/server/connectivity/Vpn.java378
-rw-r--r--services/core/java/com/android/server/content/SyncManager.java59
-rw-r--r--services/core/java/com/android/server/display/DisplayAdapter.java18
-rw-r--r--services/core/java/com/android/server/display/DisplayModeDirector.java7
-rw-r--r--services/core/java/com/android/server/display/LocalDisplayAdapter.java237
-rw-r--r--services/core/java/com/android/server/display/OverlayDisplayWindow.java3
-rw-r--r--services/core/java/com/android/server/incremental/IncrementalManagerService.java12
-rw-r--r--services/core/java/com/android/server/incremental/IncrementalManagerShellCommand.java49
-rw-r--r--services/core/java/com/android/server/input/InputManagerService.java33
-rw-r--r--services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java127
-rw-r--r--services/core/java/com/android/server/integrity/IntegrityFileManager.java20
-rw-r--r--services/core/java/com/android/server/integrity/model/IntegrityCheckResult.java9
-rw-r--r--services/core/java/com/android/server/integrity/serializer/RuleBinarySerializer.java8
-rw-r--r--services/core/java/com/android/server/location/AbstractLocationProvider.java19
-rw-r--r--services/core/java/com/android/server/location/GnssLocationProvider.java10
-rw-r--r--services/core/java/com/android/server/location/LocationFudger.java15
-rw-r--r--services/core/java/com/android/server/location/LocationProviderProxy.java28
-rw-r--r--services/core/java/com/android/server/location/MockProvider.java15
-rw-r--r--services/core/java/com/android/server/location/MockableLocationProvider.java23
-rw-r--r--services/core/java/com/android/server/location/PassiveProvider.java27
-rw-r--r--services/core/java/com/android/server/locksettings/LockSettingsService.java69
-rw-r--r--services/core/java/com/android/server/locksettings/LockSettingsShellCommand.java21
-rw-r--r--services/core/java/com/android/server/locksettings/ManagedProfilePasswordCache.java191
-rw-r--r--services/core/java/com/android/server/locksettings/RebootEscrowData.java44
-rw-r--r--services/core/java/com/android/server/locksettings/RebootEscrowKey.java67
-rw-r--r--services/core/java/com/android/server/locksettings/RebootEscrowManager.java84
-rw-r--r--services/core/java/com/android/server/media/BluetoothRouteProvider.java1
-rw-r--r--services/core/java/com/android/server/media/MediaKeyDispatcher.java39
-rw-r--r--services/core/java/com/android/server/media/MediaRoute2Provider.java5
-rw-r--r--services/core/java/com/android/server/media/MediaRoute2ProviderProxy.java33
-rw-r--r--services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java86
-rw-r--r--services/core/java/com/android/server/media/MediaRouterService.java13
-rw-r--r--services/core/java/com/android/server/media/MediaSession2Record.java30
-rw-r--r--services/core/java/com/android/server/media/MediaSessionRecord.java30
-rw-r--r--services/core/java/com/android/server/media/MediaSessionRecordImpl.java19
-rw-r--r--services/core/java/com/android/server/media/MediaSessionService.java73
-rw-r--r--services/core/java/com/android/server/media/MediaSessionStack.java9
-rw-r--r--services/core/java/com/android/server/media/SessionPolicyProvider.java63
-rw-r--r--services/core/java/com/android/server/media/SystemMediaRoute2Provider.java12
-rw-r--r--services/core/java/com/android/server/net/LockdownVpnTracker.java4
-rw-r--r--services/core/java/com/android/server/notification/BadgeExtractor.java4
-rw-r--r--services/core/java/com/android/server/notification/BubbleExtractor.java2
-rw-r--r--services/core/java/com/android/server/notification/NotificationChannelExtractor.java8
-rw-r--r--services/core/java/com/android/server/notification/NotificationComparator.java8
-rwxr-xr-xservices/core/java/com/android/server/notification/NotificationManagerService.java448
-rw-r--r--services/core/java/com/android/server/notification/NotificationRecord.java68
-rw-r--r--services/core/java/com/android/server/notification/NotificationRecordLogger.java20
-rw-r--r--services/core/java/com/android/server/notification/NotificationRecordLoggerImpl.java20
-rw-r--r--services/core/java/com/android/server/notification/NotificationUsageStats.java18
-rw-r--r--services/core/java/com/android/server/notification/PreferencesHelper.java3
-rw-r--r--services/core/java/com/android/server/notification/SnoozeHelper.java16
-rw-r--r--services/core/java/com/android/server/notification/ValidateNotificationPeople.java4
-rw-r--r--services/core/java/com/android/server/notification/ZenModeFiltering.java71
-rw-r--r--services/core/java/com/android/server/notification/ZenModeHelper.java14
-rw-r--r--services/core/java/com/android/server/pm/ApexManager.java36
-rw-r--r--services/core/java/com/android/server/pm/AppsFilter.java38
-rw-r--r--services/core/java/com/android/server/pm/BackgroundDexOptService.java4
-rw-r--r--services/core/java/com/android/server/pm/DataLoaderManagerService.java3
-rw-r--r--services/core/java/com/android/server/pm/Installer.java16
-rw-r--r--services/core/java/com/android/server/pm/LauncherAppsService.java25
-rw-r--r--services/core/java/com/android/server/pm/PackageInstallerService.java7
-rw-r--r--services/core/java/com/android/server/pm/PackageInstallerSession.java176
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java295
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerServiceUtils.java18
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerShellCommand.java3
-rw-r--r--services/core/java/com/android/server/pm/PackageSettingBase.java5
-rw-r--r--services/core/java/com/android/server/pm/Settings.java32
-rw-r--r--services/core/java/com/android/server/pm/ShortcutService.java75
-rw-r--r--services/core/java/com/android/server/pm/UserManagerService.java4
-rw-r--r--services/core/java/com/android/server/pm/permission/BasePermission.java4
-rw-r--r--services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java9
-rw-r--r--services/core/java/com/android/server/pm/permission/PermissionManagerService.java19
-rw-r--r--services/core/java/com/android/server/policy/LegacyGlobalActions.java2
-rw-r--r--services/core/java/com/android/server/policy/PermissionPolicyService.java23
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java29
-rw-r--r--services/core/java/com/android/server/power/AttentionDetector.java5
-rw-r--r--services/core/java/com/android/server/power/Notifier.java36
-rw-r--r--services/core/java/com/android/server/rollback/Rollback.java96
-rw-r--r--services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java91
-rw-r--r--services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java185
-rw-r--r--services/core/java/com/android/server/rollback/RollbackStore.java15
-rw-r--r--services/core/java/com/android/server/rollback/WatchdogRollbackLogger.java229
-rw-r--r--services/core/java/com/android/server/security/KeyAttestationApplicationIdProviderService.java14
-rw-r--r--services/core/java/com/android/server/signedconfig/GlobalSettingsConfigApplicator.java13
-rw-r--r--services/core/java/com/android/server/signedconfig/SignatureVerifier.java18
-rw-r--r--services/core/java/com/android/server/signedconfig/SignedConfigEvent.java10
-rw-r--r--services/core/java/com/android/server/signedconfig/SignedConfigService.java7
-rw-r--r--services/core/java/com/android/server/stats/pull/StatsPullAtomService.java118
-rw-r--r--services/core/java/com/android/server/storage/DeviceStorageMonitorService.java10
-rw-r--r--services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java455
-rw-r--r--services/core/java/com/android/server/timedetector/TimeDetectorService.java22
-rw-r--r--services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java8
-rw-r--r--services/core/java/com/android/server/timedetector/TimeDetectorStrategyImpl.java162
-rw-r--r--services/core/java/com/android/server/timezone/RulesManagerService.java2
-rw-r--r--services/core/java/com/android/server/timezonedetector/TimeZoneDetectorCallbackImpl.java4
-rw-r--r--services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java34
-rw-r--r--services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategy.java496
-rw-r--r--services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategyImpl.java522
-rwxr-xr-xservices/core/java/com/android/server/tv/TvInputManagerService.java56
-rw-r--r--services/core/java/com/android/server/wm/AccessibilityController.java17
-rw-r--r--services/core/java/com/android/server/wm/ActivityMetricsLogger.java2
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java98
-rw-r--r--services/core/java/com/android/server/wm/ActivityServiceConnectionsHolder.java59
-rw-r--r--services/core/java/com/android/server/wm/ActivityStack.java197
-rw-r--r--services/core/java/com/android/server/wm/ActivityStackSupervisor.java1
-rw-r--r--services/core/java/com/android/server/wm/ActivityStartController.java20
-rw-r--r--services/core/java/com/android/server/wm/ActivityStartInterceptor.java23
-rw-r--r--services/core/java/com/android/server/wm/ActivityStarter.java1
-rw-r--r--services/core/java/com/android/server/wm/ActivityTaskManagerService.java167
-rw-r--r--services/core/java/com/android/server/wm/AnimationAdapter.java4
-rw-r--r--services/core/java/com/android/server/wm/AppTransitionController.java11
-rw-r--r--services/core/java/com/android/server/wm/BLASTSyncEngine.java122
-rw-r--r--services/core/java/com/android/server/wm/Dimmer.java11
-rw-r--r--services/core/java/com/android/server/wm/DisplayArea.java265
-rw-r--r--services/core/java/com/android/server/wm/DisplayAreaPolicy.java123
-rw-r--r--services/core/java/com/android/server/wm/DisplayContent.java331
-rw-r--r--services/core/java/com/android/server/wm/DisplayPolicy.java158
-rw-r--r--services/core/java/com/android/server/wm/DisplayRotation.java4
-rw-r--r--services/core/java/com/android/server/wm/EmbeddedWindowController.java42
-rw-r--r--services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java69
-rw-r--r--services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java2
-rw-r--r--services/core/java/com/android/server/wm/InsetsControlTarget.java7
-rw-r--r--services/core/java/com/android/server/wm/InsetsPolicy.java173
-rw-r--r--services/core/java/com/android/server/wm/InsetsSourceProvider.java25
-rw-r--r--services/core/java/com/android/server/wm/InsetsStateController.java27
-rw-r--r--services/core/java/com/android/server/wm/KeyguardController.java10
-rw-r--r--services/core/java/com/android/server/wm/LocalAnimationAdapter.java5
-rw-r--r--services/core/java/com/android/server/wm/LockTaskController.java21
-rw-r--r--services/core/java/com/android/server/wm/ProtoLogGroup.java2
-rw-r--r--services/core/java/com/android/server/wm/RecentsAnimation.java11
-rw-r--r--services/core/java/com/android/server/wm/RecentsAnimationController.java17
-rw-r--r--services/core/java/com/android/server/wm/RemoteAnimationController.java20
-rw-r--r--services/core/java/com/android/server/wm/RootWindowContainer.java69
-rw-r--r--services/core/java/com/android/server/wm/ScreenRotationAnimation.java23
-rw-r--r--services/core/java/com/android/server/wm/Session.java25
-rw-r--r--services/core/java/com/android/server/wm/SurfaceAnimator.java117
-rw-r--r--services/core/java/com/android/server/wm/Task.java97
-rw-r--r--services/core/java/com/android/server/wm/TaskOrganizerController.java475
-rw-r--r--services/core/java/com/android/server/wm/TaskSnapshotSurface.java14
-rw-r--r--services/core/java/com/android/server/wm/TaskTile.java225
-rw-r--r--services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java15
-rw-r--r--services/core/java/com/android/server/wm/WindowContainer.java72
-rw-r--r--services/core/java/com/android/server/wm/WindowContainerThumbnail.java13
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerInternal.java10
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java171
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java257
-rw-r--r--services/core/java/com/android/server/wm/utils/DisplayRotationUtil.java2
-rw-r--r--services/core/java/com/android/server/wm/utils/WmDisplayCutout.java87
-rw-r--r--services/core/jni/Android.bp5
-rw-r--r--services/core/jni/com_android_server_GraphicsStatsService.cpp72
-rw-r--r--services/core/jni/com_android_server_SystemServer.cpp66
-rw-r--r--services/core/jni/com_android_server_incremental_IncrementalManagerService.cpp5
-rw-r--r--services/core/jni/com_android_server_input_InputManagerService.cpp19
-rw-r--r--services/core/jni/com_android_server_location_GnssLocationProvider.cpp10
-rw-r--r--services/core/jni/com_android_server_stats_pull_StatsPullAtomService.cpp73
-rw-r--r--services/core/jni/onload.cpp2
-rw-r--r--services/core/jni/stats/OWNERS9
-rw-r--r--services/core/jni/stats/PowerStatsPuller.cpp (renamed from cmds/statsd/src/external/PowerStatsPuller.cpp)125
-rw-r--r--services/core/jni/stats/PowerStatsPuller.h (renamed from cmds/statsd/src/external/PowerStatsPuller.h)19
-rw-r--r--services/core/jni/stats/SubsystemSleepStatePuller.cpp (renamed from cmds/statsd/src/external/SubsystemSleepStatePuller.cpp)225
-rw-r--r--services/core/jni/stats/SubsystemSleepStatePuller.h (renamed from cmds/statsd/src/external/SubsystemSleepStatePuller.h)20
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java85
-rw-r--r--services/incremental/BinderIncrementalService.cpp27
-rw-r--r--services/incremental/BinderIncrementalService.h4
-rw-r--r--services/incremental/IncrementalService.cpp122
-rw-r--r--services/incremental/IncrementalService.h13
-rw-r--r--services/incremental/ServiceWrappers.h2
-rw-r--r--services/incremental/include/incremental_service.h1
-rw-r--r--services/incremental/test/IncrementalServiceTest.cpp55
-rw-r--r--services/java/com/android/server/SystemServer.java52
-rw-r--r--services/people/java/com/android/server/people/SessionInfo.java10
-rw-r--r--services/people/java/com/android/server/people/data/CallLogQueryHelper.java121
-rw-r--r--services/people/java/com/android/server/people/data/ConversationStore.java18
-rw-r--r--services/people/java/com/android/server/people/data/DataManager.java251
-rw-r--r--services/people/java/com/android/server/people/data/Event.java77
-rw-r--r--services/people/java/com/android/server/people/data/MmsQueryHelper.java151
-rw-r--r--services/people/java/com/android/server/people/data/PackageData.java33
-rw-r--r--services/people/java/com/android/server/people/data/SmsQueryHelper.java119
-rw-r--r--services/people/java/com/android/server/people/data/UsageStatsQueryHelper.java158
-rw-r--r--services/people/java/com/android/server/people/data/UserData.java49
-rw-r--r--services/people/java/com/android/server/people/data/Utils.java49
-rw-r--r--services/people/java/com/android/server/people/prediction/AppTargetPredictor.java128
-rw-r--r--services/people/java/com/android/server/people/prediction/ConversationPredictor.java142
-rw-r--r--services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java139
-rw-r--r--services/tests/mockingservicestests/Android.bp1
-rw-r--r--services/tests/mockingservicestests/AndroidManifest.xml2
-rw-r--r--services/tests/mockingservicestests/assets/AppOpsUpgradeTest/appops-unversioned.xml (renamed from services/tests/servicestests/assets/AppOpsUpgradeTest/appops-unversioned.xml)0
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/AlarmManagerServiceTest.java48
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java118
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java3
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/appop/AppOpsUpgradeTest.java (renamed from services/tests/servicestests/src/com/android/server/appop/AppOpsUpgradeTest.java)28
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/blob/BlobStoreManagerServiceTest.java342
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/display/LocalDisplayAdapterTest.java170
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/testables/StaticMockFixtureRule.java6
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/testables/StaticMockFixtureRuleTest.java78
-rw-r--r--services/tests/servicestests/Android.bp1
-rw-r--r--services/tests/servicestests/AndroidManifest.xml4
-rw-r--r--services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java20
-rw-r--r--services/tests/servicestests/src/com/android/server/accessibility/gestures/TouchExplorerTest.java38
-rw-r--r--services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java36
-rw-r--r--services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java62
-rw-r--r--services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java220
-rw-r--r--services/tests/servicestests/src/com/android/server/integrity/AppIntegrityManagerServiceImplTest.java92
-rw-r--r--services/tests/servicestests/src/com/android/server/integrity/model/IntegrityCheckResultTest.java10
-rw-r--r--services/tests/servicestests/src/com/android/server/integrity/serializer/RuleBinarySerializerTest.java10
-rw-r--r--services/tests/servicestests/src/com/android/server/location/MockableLocationProviderTest.java213
-rw-r--r--services/tests/servicestests/src/com/android/server/location/test/FakeProvider.java45
-rw-r--r--services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTestable.java6
-rw-r--r--services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowDataTest.java22
-rw-r--r--services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java38
-rw-r--r--services/tests/servicestests/src/com/android/server/people/PeopleServiceTest.java2
-rw-r--r--services/tests/servicestests/src/com/android/server/people/data/CallLogQueryHelperTest.java169
-rw-r--r--services/tests/servicestests/src/com/android/server/people/data/ConversationStoreTest.java45
-rw-r--r--services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java191
-rw-r--r--services/tests/servicestests/src/com/android/server/people/data/MmsQueryHelperTest.java174
-rw-r--r--services/tests/servicestests/src/com/android/server/people/data/PackageDataTest.java10
-rw-r--r--services/tests/servicestests/src/com/android/server/people/data/SmsQueryHelperTest.java151
-rw-r--r--services/tests/servicestests/src/com/android/server/people/data/UsageStatsQueryHelperTest.java295
-rw-r--r--services/tests/servicestests/src/com/android/server/people/prediction/ShareTargetPredictorTest.java137
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java31
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/PackageInstallerSessionTest.java2
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java45
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java14
-rw-r--r--services/tests/servicestests/src/com/android/server/rollback/RollbackStoreTest.java10
-rw-r--r--services/tests/servicestests/src/com/android/server/rollback/RollbackUnitTest.java41
-rw-r--r--services/tests/servicestests/src/com/android/server/rollback/WatchdogRollbackLoggerTest.java118
-rw-r--r--services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java111
-rw-r--r--services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorStrategyImplTest.java328
-rw-r--r--services/tests/servicestests/src/com/android/server/timezonedetector/TestHandler.java76
-rw-r--r--services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorServiceTest.java233
-rw-r--r--services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyImplTest.java (renamed from services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyTest.java)364
-rw-r--r--services/tests/uiservicestests/AndroidManifest.xml2
-rw-r--r--services/tests/uiservicestests/src/com/android/internal/logging/InstanceIdSequenceFake.java (renamed from core/java/com/android/internal/logging/testing/InstanceIdSequenceFake.java)21
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java7
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelExtractorTest.java2
-rwxr-xr-xservices/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java665
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordLoggerFake.java4
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java6
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/RankingHelperTest.java2
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/RoleObserverTest.java14
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java76
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java7
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/ZenModeFilteringTest.java165
-rw-r--r--services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java41
-rw-r--r--services/tests/wmtests/AndroidManifest.xml1
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/ActivityStartInterceptorTest.java23
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/ActivityTaskManagerServiceTests.java48
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/AnimatingActivityRegistryTest.java13
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/AppWindowTokenAnimationTests.java22
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/DimmerTests.java17
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/DisplayAreaTest.java128
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java12
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/DisplayPolicyLayoutTests.java52
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java6
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java33
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java43
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java9
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java6
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/RemoteAnimationControllerTest.java49
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/SurfaceAnimatorTest.java74
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java338
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java14
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java60
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java27
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/testing/Assert.java48
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/testing/AssertTest.java85
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/utils/WmDisplayCutoutTest.java184
-rw-r--r--services/usage/java/com/android/server/usage/TEST_MAPPING8
-rw-r--r--services/usage/java/com/android/server/usage/UsageStatsService.java52
-rw-r--r--services/usage/java/com/android/server/usage/UserUsageStatsService.java6
-rw-r--r--services/usb/java/com/android/server/usb/UsbHostManager.java17
-rw-r--r--services/usb/java/com/android/server/usb/UsbPortManager.java17
-rw-r--r--telephony/java/android/service/carrier/CarrierIdentifier.java2
-rw-r--r--telephony/java/android/telephony/AnomalyReporter.java3
-rw-r--r--telephony/java/android/telephony/BarringInfo.java78
-rw-r--r--telephony/java/android/telephony/CbGeoUtils.java3
-rw-r--r--telephony/java/android/telephony/CellInfoCdma.java4
-rw-r--r--telephony/java/android/telephony/CellInfoGsm.java4
-rw-r--r--telephony/java/android/telephony/CellInfoLte.java4
-rw-r--r--telephony/java/android/telephony/CellInfoTdscdma.java4
-rw-r--r--telephony/java/android/telephony/CellInfoWcdma.java1
-rw-r--r--telephony/java/android/telephony/CellSignalStrengthCdma.java1
-rw-r--r--telephony/java/android/telephony/CellSignalStrengthGsm.java4
-rw-r--r--telephony/java/android/telephony/CellSignalStrengthLte.java4
-rw-r--r--telephony/java/android/telephony/CellSignalStrengthNr.java4
-rw-r--r--telephony/java/android/telephony/CellSignalStrengthTdscdma.java4
-rw-r--r--telephony/java/android/telephony/CellSignalStrengthWcdma.java4
-rw-r--r--telephony/java/android/telephony/NetworkScan.java3
-rw-r--r--telephony/java/android/telephony/NetworkService.java3
-rw-r--r--telephony/java/android/telephony/NetworkServiceCallback.java4
-rw-r--r--telephony/java/android/telephony/PhoneNumberUtils.java3
-rw-r--r--telephony/java/android/telephony/PreciseDataConnectionState.java11
-rw-r--r--telephony/java/android/telephony/ServiceState.java17
-rw-r--r--telephony/java/android/telephony/SmsCbMessage.java1
-rw-r--r--telephony/java/android/telephony/SmsMessage.java4
-rw-r--r--telephony/java/android/telephony/SubscriptionInfo.java3
-rw-r--r--telephony/java/android/telephony/SubscriptionManager.java24
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java62
-rw-r--r--telephony/java/android/telephony/TelephonyScanManager.java3
-rw-r--r--telephony/java/android/telephony/UiccAccessRule.java3
-rw-r--r--telephony/java/android/telephony/VoLteServiceState.java4
-rw-r--r--telephony/java/android/telephony/data/DataService.java2
-rw-r--r--telephony/java/android/telephony/data/DataServiceCallback.java3
-rw-r--r--telephony/java/android/telephony/data/QualifiedNetworksService.java2
-rw-r--r--telephony/java/android/telephony/emergency/EmergencyNumber.java1
-rw-r--r--telephony/java/android/telephony/ims/ImsConferenceState.java2
-rw-r--r--telephony/java/android/telephony/ims/ImsExternalCallState.java1
-rw-r--r--telephony/java/android/telephony/ims/ImsSsData.java1
-rw-r--r--telephony/java/com/android/ims/ImsConfig.java2
-rw-r--r--telephony/java/com/android/internal/telephony/ITelephony.aidl8
-rw-r--r--telephony/java/com/android/internal/telephony/RILConstants.java5
-rw-r--r--telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java2
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/SmsMessage.java2
-rw-r--r--telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java2
-rw-r--r--telephony/java/com/android/internal/telephony/gsm/SmsMessage.java2
-rw-r--r--telephony/java/com/android/internal/telephony/uicc/IccUtils.java2
-rw-r--r--test-mock/src/android/test/mock/MockContext.java2
-rw-r--r--test-mock/src/android/test/mock/MockPackageManager.java8
-rw-r--r--test-runner/src/android/test/TouchUtils.java3
-rw-r--r--tests/BlobStoreTestUtils/Android.bp20
-rw-r--r--tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java227
-rw-r--r--tests/GamePerformance/src/android/gameperformance/BaseTest.java5
-rw-r--r--tests/GamePerformance/src/android/gameperformance/CustomControlView.java17
-rw-r--r--tests/HwAccelerationTest/src/com/android/test/hwui/TextureViewActivity.java2
-rw-r--r--tests/MirrorSurfaceTest/src/com/google/android/test/mirrorsurface/MirrorSurfaceActivity.java25
-rw-r--r--tests/PlatformCompatGating/Android.bp8
-rw-r--r--tests/PlatformCompatGating/AndroidManifest.xml2
-rw-r--r--tests/PlatformCompatGating/AndroidTest.xml1
-rw-r--r--tests/PlatformCompatGating/src/com/android/tests/gating/PlatformCompatGatingTest.java13
-rw-r--r--tests/PlatformCompatGating/src/com/android/tests/gating/PlatformCompatPermissionsTest.java319
-rw-r--r--tests/PlatformCompatGating/test-rules/Android.bp2
-rw-r--r--tests/PlatformCompatGating/test-rules/src/android/compat/testing/PlatformCompatChangeRule.java9
-rw-r--r--tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java180
-rw-r--r--tests/SurfaceComposition/src/android/surfacecomposition/SurfaceCompositionMeasuringActivity.java4
-rw-r--r--tests/TaskOrganizerTest/AndroidManifest.xml6
-rw-r--r--tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java91
-rw-r--r--tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java61
-rw-r--r--tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskView.java73
-rw-r--r--tests/net/TEST_MAPPING7
-rw-r--r--tests/net/common/java/android/net/NetworkCapabilitiesTest.java16
-rw-r--r--tests/net/common/java/android/net/NetworkScoreTest.kt90
-rw-r--r--tests/net/deflake/Android.bp3
-rw-r--r--tests/net/integration/util/com/android/server/NetworkAgentWrapper.java7
-rw-r--r--tests/net/java/android/net/ConnectivityDiagnosticsManagerTest.java74
-rw-r--r--tests/net/java/android/net/ConnectivityManagerTest.java12
-rw-r--r--tests/net/java/android/net/VpnManagerTest.java75
-rw-r--r--tests/net/java/com/android/server/ConnectivityServiceTest.java367
-rw-r--r--tests/net/java/com/android/server/connectivity/LingerMonitorTest.java3
-rw-r--r--tests/net/java/com/android/server/connectivity/VpnTest.java252
-rw-r--r--tools/aapt2/link/ManifestFixer.cpp6
-rw-r--r--tools/hiddenapi/Android.bp30
-rwxr-xr-xtools/hiddenapi/merge_csv.py13
-rw-r--r--tools/stats_log_api_gen/Android.bp2
-rw-r--r--tools/stats_log_api_gen/Collation.cpp46
-rw-r--r--tools/stats_log_api_gen/Collation.h3
-rw-r--r--tools/stats_log_api_gen/atoms_info_writer.cpp28
-rw-r--r--tools/stats_log_api_gen/java_writer_q.cpp112
-rw-r--r--tools/stats_log_api_gen/java_writer_q.h8
-rw-r--r--tools/stats_log_api_gen/main.cpp27
-rw-r--r--tools/stats_log_api_gen/native_writer.cpp71
-rw-r--r--tools/stats_log_api_gen/test.proto35
-rw-r--r--tools/streaming_proto/cpp/main.cpp14
-rw-r--r--wifi/Android.bp1
-rw-r--r--wifi/java/android/net/wifi/IScoreChangeCallback.aidl4
-rw-r--r--wifi/java/android/net/wifi/WifiConfiguration.java173
-rw-r--r--wifi/java/android/net/wifi/WifiEnterpriseConfig.java4
-rw-r--r--wifi/java/android/net/wifi/WifiFrameworkInitializer.java17
-rw-r--r--wifi/java/android/net/wifi/WifiInfo.java5
-rw-r--r--wifi/java/android/net/wifi/WifiManager.java44
-rw-r--r--wifi/java/android/net/wifi/WifiNetworkAgentSpecifier.java56
-rw-r--r--wifi/java/android/net/wifi/WifiNetworkSpecifier.java71
-rw-r--r--wifi/java/android/net/wifi/WifiNetworkSuggestion.java18
-rw-r--r--wifi/java/android/net/wifi/WifiScanner.java42
-rw-r--r--wifi/java/android/net/wifi/aware/WifiAwareAgentNetworkSpecifier.java6
-rw-r--r--wifi/java/android/net/wifi/aware/WifiAwareManager.java7
-rw-r--r--wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java35
-rw-r--r--wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java39
-rw-r--r--wifi/java/android/net/wifi/p2p/WifiP2pConfig.java12
-rw-r--r--wifi/java/android/net/wifi/p2p/WifiP2pGroup.java18
-rw-r--r--wifi/java/android/net/wifi/p2p/WifiP2pManager.java2
-rw-r--r--wifi/java/android/net/wifi/wificond/NativeScanResult.java29
-rw-r--r--wifi/java/android/net/wifi/wificond/NativeWifiClient.java3
-rw-r--r--wifi/java/android/net/wifi/wificond/PnoSettings.java15
-rw-r--r--wifi/java/android/net/wifi/wificond/RadioChainInfo.java4
-rw-r--r--wifi/java/android/net/wifi/wificond/WifiCondManager.java120
-rw-r--r--wifi/java/com/android/server/wifi/BaseWifiService.java641
-rw-r--r--wifi/tests/src/android/net/wifi/WifiConfigurationTest.java14
-rw-r--r--wifi/tests/src/android/net/wifi/WifiManagerTest.java4
-rw-r--r--wifi/tests/src/android/net/wifi/WifiNetworkAgentSpecifierTest.java94
-rw-r--r--wifi/tests/src/android/net/wifi/WifiNetworkSpecifierTest.java63
-rw-r--r--wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java16
-rw-r--r--wifi/tests/src/android/net/wifi/aware/WifiAwareAgentNetworkSpecifierTest.java13
-rw-r--r--wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java2
-rw-r--r--wifi/tests/src/android/net/wifi/hotspot2/PasspointConfigurationTest.java53
-rw-r--r--wifi/tests/src/android/net/wifi/wificond/NativeScanResultTest.java3
-rw-r--r--wifi/tests/src/android/net/wifi/wificond/WifiCondManagerTest.java41
1612 files changed, 86086 insertions, 34211 deletions
diff --git a/Android.bp b/Android.bp
index ffb4d3a6ff73..12bc90680dd5 100644
--- a/Android.bp
+++ b/Android.bp
@@ -401,8 +401,8 @@ java_defaults {
"app-compat-annotations",
"ext",
"unsupportedappusage",
- "updatable_media_stubs",
- "framework_mediaprovider_stubs",
+ "framework-media-stubs-systemapi",
+ "framework-mediaprovider-stubs-systemapi",
"framework-tethering",
"framework-telephony-stubs",
],
@@ -469,7 +469,7 @@ java_library {
"framework-appsearch-stubs",
"framework-sdkextensions-stubs-systemapi",
"framework-statsd", // TODO(b/146167933): Use framework-statsd-stubs
- "framework-permission-stubs",
+ "framework-permission-stubs-systemapi",
"framework-wifi-stubs",
"ike-stubs",
],
@@ -491,14 +491,11 @@ java_library {
apex_available: ["//apex_available:platform"],
visibility: [
"//frameworks/base",
- // TODO(b/144149403) remove the below lines
+ // TODO(b/147128803) remove the below lines
"//frameworks/base/apex/appsearch/framework",
"//frameworks/base/apex/blobstore/framework",
"//frameworks/base/apex/jobscheduler/framework",
- "//frameworks/base/apex/permission/framework",
"//frameworks/base/apex/statsd/service",
- "//frameworks/base/telephony",
- "//frameworks/opt/net/wifi/service",
],
}
@@ -517,10 +514,10 @@ java_library {
installable: false, // this lib is a build-only library
static_libs: [
"framework-minus-apex",
- "updatable_media_stubs",
- "framework_mediaprovider_stubs",
"framework-appsearch", // TODO(b/146218515): should be framework-appsearch-stubs
- "framework-permission-stubs",
+ "framework-media-stubs-systemapi",
+ "framework-mediaprovider-stubs-systemapi",
+ "framework-permission-stubs-systemapi",
"framework-sdkextensions-stubs-systemapi",
// TODO(b/146167933): Use framework-statsd-stubs instead.
"framework-statsd",
@@ -551,17 +548,25 @@ java_library {
java_library {
name: "framework-annotation-proc",
- srcs: [":framework-all-sources"],
+ srcs: [
+ ":framework-all-sources",
+ "core/java/**/*.logtags",
+ ],
+ sdk_version: "core_platform",
libs: [
"app-compat-annotations",
+ "ext",
+ "icing-java-proto-lite",
"unsupportedappusage",
],
+
installable: false,
plugins: [
"unsupportedappusage-annotation-processor",
"compat-changeid-annotation-processor",
],
static_libs: [
+ "framework-internal-utils",
"exoplayer2-extractor",
"android.hardware.wifi-V1.0-java-constants",
]
@@ -648,6 +653,33 @@ gensrcs {
output_extension: "srcjar",
}
+gensrcs {
+ name: "framework-cppstream-protos",
+ depfile: true,
+
+ tools: [
+ "aprotoc",
+ "protoc-gen-cppstream",
+ ],
+
+ cmd: "mkdir -p $(genDir) " +
+ "&& $(location aprotoc) " +
+ " --plugin=$(location protoc-gen-cppstream) " +
+ " --dependency_out=$(depfile) " +
+ " --cppstream_out=$(genDir) " +
+ " -Iexternal/protobuf/src " +
+ " -I . " +
+ " $(in)",
+
+ srcs: [
+ ":ipconnectivity-proto-src",
+ "core/proto/**/*.proto",
+ "libs/incident/**/*.proto",
+ ],
+
+ output_extension: "proto.h",
+}
+
filegroup {
name: "framework-annotations",
srcs: [
@@ -734,6 +766,7 @@ filegroup {
"core/java/android/annotation/RequiresPermission.java",
"core/java/android/annotation/SystemApi.java",
"core/java/android/annotation/TestApi.java",
+ "core/java/com/android/internal/annotations/GuardedBy.java",
],
}
// Build ext.jar
@@ -936,7 +969,7 @@ filegroup {
name: "incremental_manager_aidl",
srcs: [
"core/java/android/os/incremental/IIncrementalManager.aidl",
- "core/java/android/os/incremental/IIncrementalManagerNative.aidl",
+ "core/java/android/os/incremental/IIncrementalService.aidl",
"core/java/android/os/incremental/IncrementalNewFileParams.aidl",
"core/java/android/os/incremental/IncrementalSignature.aidl",
],
@@ -1004,43 +1037,6 @@ aidl_interface {
},
}
-gensrcs {
- name: "gen-platform-proto-constants",
- depfile: true,
-
- tools: [
- "aprotoc",
- "protoc-gen-cppstream",
- ],
-
- srcs: [
- "core/proto/android/os/backtrace.proto",
- "core/proto/android/os/batterytype.proto",
- "core/proto/android/os/cpufreq.proto",
- "core/proto/android/os/cpuinfo.proto",
- "core/proto/android/os/data.proto",
- "core/proto/android/os/kernelwake.proto",
- "core/proto/android/os/pagetypeinfo.proto",
- "core/proto/android/os/procrank.proto",
- "core/proto/android/os/ps.proto",
- "core/proto/android/os/system_properties.proto",
- "core/proto/android/util/event_log_tags.proto",
- "core/proto/android/util/log.proto",
- ],
-
- // Append protoc-gen-cppstream tool's PATH otherwise aprotoc can't find the plugin tool
- cmd: "mkdir -p $(genDir) " +
- "&& $(location aprotoc) " +
- " --plugin=$(location protoc-gen-cppstream) " +
- " --dependency_out=$(depfile) " +
- " --cppstream_out=$(genDir) " +
- " -Iexternal/protobuf/src " +
- " -I . " +
- " $(in)",
-
- output_extension: "proto.h",
-}
-
subdirs = [
"cmds/*",
diff --git a/ApiDocs.bp b/ApiDocs.bp
index c40004cf8e5c..04ddc50a94c4 100644
--- a/ApiDocs.bp
+++ b/ApiDocs.bp
@@ -176,6 +176,7 @@ droiddoc {
hdf: [
"android.whichdoc offline",
],
+ compat_config: ":global-compat-config",
proofread_file: "offline-sdk-docs-proofrerad.txt",
args: framework_docs_only_args + " -offlinemode -title \"Android SDK\"",
static_doc_index_redirect: "docs/docs-preview-index.html",
diff --git a/StubLibraries.bp b/StubLibraries.bp
index 6927f4449054..d4db7373504b 100644
--- a/StubLibraries.bp
+++ b/StubLibraries.bp
@@ -113,6 +113,16 @@ droidstubs {
jdiff_enabled: true,
}
+priv_apps = " " +
+ "--show-annotation android.annotation.SystemApi\\(" +
+ "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
+ "\\) "
+
+module_libs = " " +
+ " --show-annotation android.annotation.SystemApi\\(" +
+ "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES" +
+ "\\) "
+
droidstubs {
name: "system-api-stubs-docs",
defaults: ["metalava-api-stubs-default"],
@@ -124,10 +134,7 @@ droidstubs {
arg_files: [
"core/res/AndroidManifest.xml",
],
- args: metalava_framework_docs_args +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS," +
- "process=android.annotation.SystemApi.Process.ALL\\)",
+ args: metalava_framework_docs_args + priv_apps,
check_api: {
current: {
api_file: "api/system-current.txt",
@@ -175,49 +182,17 @@ droidstubs {
// @SystemApi(client=MODULE_APPS) and @SystemApi(client=MODULE_LIBRARIES)
/////////////////////////////////////////////////////////////////////
-// TODO(b/146727827) remove the *-api modules when we can teach metalava
+// TODO(b/146727827) remove the *-api module when we can teach metalava
// about the relationship among the API surfaces. Currently, these modules are only to generate
// the API signature files and ensure that the APIs evolve in a backwards compatible manner.
// They however are NOT used for building the API stub.
-droidstubs {
- name: "module-app-api",
- defaults: ["metalava-api-stubs-default"],
- libs: ["framework-all"],
- arg_files: ["core/res/AndroidManifest.xml"],
- args: metalava_framework_docs_args +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.MODULE_APPS," +
- "process=android.annotation.SystemApi.Process.ALL\\)",
- check_api: {
- current: {
- api_file: "api/module-app-current.txt",
- removed_api_file: "api/module-app-removed.txt",
- },
- // TODO(b/147559833) enable the compatibility check against the last release API
- // and the API lint
- //last_released: {
- // api_file: ":last-released-module-app-api",
- // removed_api_file: "api/module-app-removed.txt",
- // baseline_file: ":module-app-api-incompatibilities-with-last-released"
- //},
- //api_lint: {
- // enabled: true,
- // new_since: ":last-released-module-app-api",
- // baseline_file: "api/module-app-lint-baseline.txt",
- //},
- },
- //jdiff_enabled: true,
-}
droidstubs {
name: "module-lib-api",
defaults: ["metalava-api-stubs-default"],
libs: ["framework-all"],
arg_files: ["core/res/AndroidManifest.xml"],
- args: metalava_framework_docs_args +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES," +
- "process=android.annotation.SystemApi.Process.ALL\\)",
+ args: metalava_framework_docs_args + module_libs,
check_api: {
current: {
api_file: "api/module-lib-current.txt",
@@ -239,39 +214,17 @@ droidstubs {
//jdiff_enabled: true,
}
-// The following two droidstubs modules generate source files for the API stub libraries for
-// modules. Note that they not only include their own APIs but also other APIs that have
-// narrower scope. For example, module-lib-api-stubs-docs includes all @SystemApis not just
-// the ones with 'client=MODULE_LIBRARIES'.
-droidstubs {
- name: "module-app-api-stubs-docs",
- defaults: ["metalava-api-stubs-default"],
- libs: ["framework-all"],
- arg_files: ["core/res/AndroidManifest.xml"],
- args: metalava_framework_docs_args +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS," +
- "process=android.annotation.SystemApi.Process.ALL\\)" +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.MODULE_APPS," +
- "process=android.annotation.SystemApi.Process.ALL\\)",
-}
+
+// The following droidstub module generates source files for the API stub library for
+// modules. Note that it not only includes its own APIs but also other APIs that have
+// narrower scope (all @SystemApis, not just the ones with 'client=MODULE_LIBRARIES').
droidstubs {
name: "module-lib-api-stubs-docs",
defaults: ["metalava-api-stubs-default"],
libs: ["framework-all"],
arg_files: ["core/res/AndroidManifest.xml"],
- args: metalava_framework_docs_args +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS," +
- "process=android.annotation.SystemApi.Process.ALL\\)" +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.MODULE_APPS," +
- "process=android.annotation.SystemApi.Process.ALL\\)" +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES," +
- "process=android.annotation.SystemApi.Process.ALL\\)",
+ args: metalava_framework_docs_args + priv_apps + module_libs,
}
/////////////////////////////////////////////////////////////////////
@@ -340,22 +293,7 @@ java_library_static {
}
java_library_static {
- name: "framework_module_app_stubs_current",
- srcs: [
- ":module-app-api-stubs-docs",
- ],
- libs: [
- "stub-annotations",
- "framework-all",
- ],
- static_libs: [
- "private-stub-annotations-jar",
- ],
- defaults: ["framework-stubs-default"],
-}
-
-java_library_static {
- name: "framework_module_lib_stubs_current",
+ name: "android_module_lib_stubs_current",
srcs: [
":module-lib-api-stubs-docs",
],
@@ -401,7 +339,7 @@ droidstubs {
merge_annotations_dirs: [
"metalava-manual",
],
- args: " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS,process=android.annotation.SystemApi.Process.ALL\\)",
+ args: priv_apps,
}
java_library_static {
@@ -427,7 +365,7 @@ droidstubs {
removed_dex_api_filename: "removed-dex.txt",
args: metalava_framework_docs_args +
" --show-unannotated " +
- " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS,process=android.annotation.SystemApi.Process.ALL\\) " +
+ priv_apps +
" --show-annotation android.annotation.TestApi ",
}
@@ -446,7 +384,7 @@ droidstubs {
" --hide ReferencesHidden " +
" --hide UnhiddenSystemApi " +
" --show-unannotated " +
- " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.PRIVILEGED_APPS,process=android.annotation.SystemApi.Process.ALL\\) " +
+ priv_apps +
" --show-annotation android.annotation.TestApi ",
}
diff --git a/apct-tests/perftests/blobstore/Android.bp b/apct-tests/perftests/blobstore/Android.bp
new file mode 100644
index 000000000000..be5072ce3d9d
--- /dev/null
+++ b/apct-tests/perftests/blobstore/Android.bp
@@ -0,0 +1,28 @@
+// Copyright (C) 2020 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+android_test {
+ name: "BlobStorePerfTests",
+ srcs: ["src/**/*.java"],
+ static_libs: [
+ "BlobStoreTestUtils",
+ "androidx.test.rules",
+ "androidx.annotation_annotation",
+ "apct-perftests-utils",
+ "ub-uiautomator",
+ ],
+ platform_apis: true,
+ test_suites: ["device-tests"],
+ certificate: "platform",
+} \ No newline at end of file
diff --git a/media/tests/MediaRouteProvider/AndroidManifest.xml b/apct-tests/perftests/blobstore/AndroidManifest.xml
index 489a6214ecbd..21d0726927af 100644
--- a/media/tests/MediaRouteProvider/AndroidManifest.xml
+++ b/apct-tests/perftests/blobstore/AndroidManifest.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2019 The Android Open Source Project
+<!-- Copyright (C) 2020 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -15,16 +15,13 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.mediarouteprovider.example">
+ package="com.android.perftests.blob">
- <application android:label="@string/app_name">
+ <application>
<uses-library android:name="android.test.runner" />
- <service android:name=".SampleMediaRoute2ProviderService"
- android:label="@string/app_name"
- android:exported="true">
- <intent-filter>
- <action android:name="android.media.MediaRoute2ProviderService" />
- </intent-filter>
- </service>
</application>
-</manifest>
+
+ <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
+ android:targetPackage="com.android.perftests.blob"/>
+
+</manifest> \ No newline at end of file
diff --git a/apct-tests/perftests/blobstore/AndroidTest.xml b/apct-tests/perftests/blobstore/AndroidTest.xml
new file mode 100644
index 000000000000..19456c6d81d7
--- /dev/null
+++ b/apct-tests/perftests/blobstore/AndroidTest.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<configuration description="Runs BlobStorePerfTests metric instrumentation.">
+ <option name="test-suite-tag" value="apct" />
+ <option name="test-suite-tag" value="apct-metric-instrumentation" />
+ <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
+ <option name="cleanup-apks" value="true" />
+ <option name="test-file-name" value="BlobStorePerfTests.apk" />
+ </target_preparer>
+
+ <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
+ <option name="package" value="com.android.perftests.blob" />
+ <option name="hidden-api-checks" value="false"/>
+ </test>
+</configuration> \ No newline at end of file
diff --git a/apct-tests/perftests/blobstore/src/com/android/perftests/blob/AtraceUtils.java b/apct-tests/perftests/blobstore/src/com/android/perftests/blob/AtraceUtils.java
new file mode 100644
index 000000000000..0208dab33746
--- /dev/null
+++ b/apct-tests/perftests/blobstore/src/com/android/perftests/blob/AtraceUtils.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.perftests.blob;
+
+import android.app.Instrumentation;
+import android.app.UiAutomation;
+import android.os.ParcelFileDescriptor;
+import android.perftests.utils.TraceMarkParser;
+import android.perftests.utils.TraceMarkParser.TraceMarkSlice;
+import android.support.test.uiautomator.UiDevice;
+import android.util.Log;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.List;
+import java.util.function.BiConsumer;
+
+// Copy of com.android.frameworks.perftests.am.util.AtraceUtils. TODO: avoid this duplication.
+public class AtraceUtils {
+ private static final String TAG = "AtraceUtils";
+ private static final boolean VERBOSE = true;
+
+ private static final String ATRACE_START = "atrace --async_start -b %d -c %s";
+ private static final String ATRACE_DUMP = "atrace --async_dump";
+ private static final String ATRACE_STOP = "atrace --async_stop";
+ private static final int DEFAULT_ATRACE_BUF_SIZE = 1024;
+
+ private UiAutomation mAutomation;
+ private static AtraceUtils sUtils = null;
+ private boolean mStarted = false;
+
+ private AtraceUtils(Instrumentation instrumentation) {
+ mAutomation = instrumentation.getUiAutomation();
+ }
+
+ public static AtraceUtils getInstance(Instrumentation instrumentation) {
+ if (sUtils == null) {
+ sUtils = new AtraceUtils(instrumentation);
+ }
+ return sUtils;
+ }
+
+ /**
+ * @param categories The list of the categories to trace, separated with space.
+ */
+ public void startTrace(String categories) {
+ synchronized (this) {
+ if (mStarted) {
+ throw new IllegalStateException("atrace already started");
+ }
+ runShellCommand(String.format(
+ ATRACE_START, DEFAULT_ATRACE_BUF_SIZE, categories));
+ mStarted = true;
+ }
+ }
+
+ public void stopTrace() {
+ synchronized (this) {
+ mStarted = false;
+ runShellCommand(ATRACE_STOP);
+ }
+ }
+
+ private String runShellCommand(String cmd) {
+ try {
+ return UiDevice.getInstance(
+ InstrumentationRegistry.getInstrumentation()).executeShellCommand(cmd);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * @param parser The function that can accept the buffer of atrace dump and parse it.
+ * @param handler The parse result handler
+ */
+ public void performDump(TraceMarkParser parser,
+ BiConsumer<String, List<TraceMarkSlice>> handler) {
+ parser.reset();
+ try {
+ if (VERBOSE) {
+ Log.i(TAG, "Collecting atrace dump...");
+ }
+ writeDataToBuf(mAutomation.executeShellCommand(ATRACE_DUMP), parser);
+ } catch (IOException e) {
+ Log.e(TAG, "Error in reading dump", e);
+ }
+ parser.forAllSlices(handler);
+ }
+
+ // The given file descriptor here will be closed by this function
+ private void writeDataToBuf(ParcelFileDescriptor pfDescriptor,
+ TraceMarkParser parser) throws IOException {
+ InputStream inputStream = new ParcelFileDescriptor.AutoCloseInputStream(pfDescriptor);
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
+ String line;
+ while ((line = reader.readLine()) != null) {
+ parser.visit(line);
+ }
+ }
+ }
+}
diff --git a/apct-tests/perftests/blobstore/src/com/android/perftests/blob/BlobStorePerfTests.java b/apct-tests/perftests/blobstore/src/com/android/perftests/blob/BlobStorePerfTests.java
new file mode 100644
index 000000000000..8e0ea9888e4c
--- /dev/null
+++ b/apct-tests/perftests/blobstore/src/com/android/perftests/blob/BlobStorePerfTests.java
@@ -0,0 +1,146 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.perftests.blob;
+
+import android.app.blob.BlobStoreManager;
+import android.content.Context;
+import android.perftests.utils.ManualBenchmarkState;
+import android.perftests.utils.PerfManualStatusReporter;
+import android.perftests.utils.TraceMarkParser;
+import android.perftests.utils.TraceMarkParser.TraceMarkSlice;
+import android.support.test.uiautomator.UiDevice;
+
+import androidx.test.filters.LargeTest;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import com.android.utils.blob.DummyBlobData;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
+
+@LargeTest
+@RunWith(Parameterized.class)
+public class BlobStorePerfTests {
+ // From frameworks/native/cmds/atrace/atrace.cpp
+ private static final String ATRACE_CATEGORY_SYSTEM_SERVER = "ss";
+ // From f/b/apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java
+ private static final String ATRACE_COMPUTE_DIGEST_PREFIX = "computeBlobDigest-";
+
+ private Context mContext;
+ private BlobStoreManager mBlobStoreManager;
+ private AtraceUtils mAtraceUtils;
+ private ManualBenchmarkState mState;
+
+ @Rule
+ public PerfManualStatusReporter mPerfManualStatusReporter = new PerfManualStatusReporter();
+
+ @Parameterized.Parameter(0)
+ public int fileSizeInMb;
+
+ @Parameterized.Parameters(name = "{0}MB")
+ public static Collection<Object[]> getParameters() {
+ return Arrays.asList(new Object[][] {
+ { 25 },
+ { 50 },
+ { 100 },
+ { 200 },
+ });
+ }
+
+ @Before
+ public void setUp() {
+ mContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ mBlobStoreManager = (BlobStoreManager) mContext.getSystemService(
+ Context.BLOB_STORE_SERVICE);
+ mAtraceUtils = AtraceUtils.getInstance(InstrumentationRegistry.getInstrumentation());
+ mState = mPerfManualStatusReporter.getBenchmarkState();
+ }
+
+ @After
+ public void tearDown() {
+ // TODO: Add a blob_store shell command to trigger idle maintenance to avoid hardcoding
+ // job id like this.
+ // From BlobStoreConfig.IDLE_JOB_ID = 191934935.
+ runShellCommand("cmd jobscheduler run -f android 191934935");
+ }
+
+ @Test
+ public void testComputeDigest() throws Exception {
+ mAtraceUtils.startTrace(ATRACE_CATEGORY_SYSTEM_SERVER);
+ try {
+ final List<Long> durations = new ArrayList<>();
+ final DummyBlobData blobData = prepareDataBlob(fileSizeInMb);
+ final TraceMarkParser parser = new TraceMarkParser(
+ line -> line.name.startsWith(ATRACE_COMPUTE_DIGEST_PREFIX));
+ while (mState.keepRunning(durations)) {
+ commitBlob(blobData);
+
+ durations.clear();
+ collectDigestDurationsFromTrace(parser, durations);
+ // TODO: get and delete blobId before next iteration.
+ }
+ } finally {
+ mAtraceUtils.stopTrace();
+ }
+ }
+
+ private void collectDigestDurationsFromTrace(TraceMarkParser parser, List<Long> durations) {
+ mAtraceUtils.performDump(parser, (key, slices) -> {
+ for (TraceMarkSlice slice : slices) {
+ durations.add(TimeUnit.MICROSECONDS.toNanos(slice.getDurationInMicroseconds()));
+ }
+ });
+ }
+
+ private DummyBlobData prepareDataBlob(int fileSizeInMb) throws Exception {
+ final DummyBlobData blobData = new DummyBlobData(mContext,
+ fileSizeInMb * 1024 * 1024 /* bytes */);
+ blobData.prepare();
+ return blobData;
+ }
+
+ private void commitBlob(DummyBlobData blobData) throws Exception {
+ final long sessionId = mBlobStoreManager.createSession(blobData.getBlobHandle());
+ try (BlobStoreManager.Session session = mBlobStoreManager.openSession(sessionId)) {
+ blobData.writeToSession(session);
+ final CompletableFuture<Integer> callback = new CompletableFuture<>();
+ session.commit(mContext.getMainExecutor(), callback::complete);
+ // Ignore commit callback result.
+ callback.get();
+ }
+ }
+
+ private String runShellCommand(String cmd) {
+ try {
+ return UiDevice.getInstance(
+ InstrumentationRegistry.getInstrumentation()).executeShellCommand(cmd);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/apex/Android.bp b/apex/Android.bp
index abebfa39fada..362cf95b3832 100644
--- a/apex/Android.bp
+++ b/apex/Android.bp
@@ -29,6 +29,16 @@ mainline_stubs_args =
// TODO: remove this server classes are cleaned up.
mainline_stubs_args += "--hide-package com.android.server "
+priv_apps = " " +
+ "--show-annotation android.annotation.SystemApi\\(" +
+ "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS," +
+ "\\) "
+
+module_libs = " " +
+ " --show-annotation android.annotation.SystemApi\\(" +
+ "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES," +
+ "\\) "
+
stubs_defaults {
name: "framework-module-stubs-defaults-publicapi",
args: mainline_stubs_args,
@@ -37,36 +47,23 @@ stubs_defaults {
stubs_defaults {
name: "framework-module-stubs-defaults-systemapi",
- args: mainline_stubs_args +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS," +
- "process=android.annotation.SystemApi.Process.ALL\\) ",
+ args: mainline_stubs_args + priv_apps,
installable: false,
}
+// The defaults for module_libs comes in two parts - defaults for API checks
+// and defaults for stub generation. This is because we want the API txt
+// files to *only* include the module_libs_api, but the stubs to include
+// module_libs_api as well as priv_apps.
+
stubs_defaults {
- name: "framework-module-stubs-defaults-module_apps_api",
- args: mainline_stubs_args +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS," +
- "process=android.annotation.SystemApi.Process.ALL\\) " +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.MODULE_APPS," +
- "process=android.annotation.SystemApi.Process.ALL\\) ",
+ name: "framework-module-api-defaults-module_libs_api",
+ args: mainline_stubs_args + module_libs,
installable: false,
}
stubs_defaults {
name: "framework-module-stubs-defaults-module_libs_api",
- args: mainline_stubs_args +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS," +
- "process=android.annotation.SystemApi.Process.ALL\\) " +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.MODULE_APPS," +
- "process=android.annotation.SystemApi.Process.ALL\\) " +
- " --show-annotation android.annotation.SystemApi\\(" +
- "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES," +
- "process=android.annotation.SystemApi.Process.ALL\\) ",
+ args: mainline_stubs_args + module_libs + priv_apps,
installable: false,
}
diff --git a/apex/blobstore/TEST_MAPPING b/apex/blobstore/TEST_MAPPING
index 4dc0c49380c8..25a15371ae47 100644
--- a/apex/blobstore/TEST_MAPPING
+++ b/apex/blobstore/TEST_MAPPING
@@ -2,6 +2,14 @@
"presubmit": [
{
"name": "CtsBlobStoreTestCases"
+ },
+ {
+ "name": "FrameworksMockingServicesTests",
+ "options": [
+ {
+ "include-filter": "com.android.server.blob"
+ }
+ ]
}
]
} \ No newline at end of file
diff --git a/apex/blobstore/framework/java/android/app/blob/BlobHandle.java b/apex/blobstore/framework/java/android/app/blob/BlobHandle.java
index f7e6a987ded3..d339afac5c77 100644
--- a/apex/blobstore/framework/java/android/app/blob/BlobHandle.java
+++ b/apex/blobstore/framework/java/android/app/blob/BlobHandle.java
@@ -45,6 +45,10 @@ import java.util.Objects;
public final class BlobHandle implements Parcelable {
private static final String ALGO_SHA_256 = "SHA-256";
+ private static final String[] SUPPORTED_ALGOS = {
+ ALGO_SHA_256
+ };
+
private static final int LIMIT_BLOB_TAG_LENGTH = 128; // characters
/**
@@ -104,14 +108,9 @@ public final class BlobHandle implements Parcelable {
public static @NonNull BlobHandle create(@NonNull String algorithm, @NonNull byte[] digest,
@NonNull CharSequence label, @CurrentTimeMillisLong long expiryTimeMillis,
@NonNull String tag) {
- Preconditions.checkNotNull(algorithm, "algorithm must not be null");
- Preconditions.checkNotNull(digest, "digest must not be null");
- Preconditions.checkNotNull(label, "label must not be null");
- Preconditions.checkArgumentNonnegative(expiryTimeMillis,
- "expiryTimeMillis must not be negative");
- Preconditions.checkNotNull(tag, "tag must not be null");
- Preconditions.checkArgument(tag.length() <= LIMIT_BLOB_TAG_LENGTH, "tag too long");
- return new BlobHandle(algorithm, digest, label, expiryTimeMillis, tag);
+ final BlobHandle handle = new BlobHandle(algorithm, digest, label, expiryTimeMillis, tag);
+ handle.assertIsValid();
+ return handle;
}
/**
@@ -215,12 +214,52 @@ public final class BlobHandle implements Parcelable {
}
/** @hide */
- public void dump(IndentingPrintWriter fout) {
- fout.println("algo: " + algorithm);
- fout.println("digest: " + Base64.encodeToString(digest, Base64.NO_WRAP));
- fout.println("label: " + label);
- fout.println("expiryMs: " + expiryTimeMillis);
- fout.println("tag: " + tag);
+ public void dump(IndentingPrintWriter fout, boolean dumpFull) {
+ if (dumpFull) {
+ fout.println("algo: " + algorithm);
+ fout.println("digest: " + (dumpFull ? encodeDigest() : safeDigest()));
+ fout.println("label: " + label);
+ fout.println("expiryMs: " + expiryTimeMillis);
+ fout.println("tag: " + tag);
+ } else {
+ fout.println(toString());
+ }
+ }
+
+ /** @hide */
+ public void assertIsValid() {
+ Preconditions.checkArgumentIsSupported(SUPPORTED_ALGOS, algorithm);
+ Preconditions.checkByteArrayNotEmpty(digest, "digest");
+ Preconditions.checkStringNotEmpty(label, "label must not be null");
+ Preconditions.checkArgumentNonnegative(expiryTimeMillis,
+ "expiryTimeMillis must not be negative");
+ Preconditions.checkStringNotEmpty(tag, "tag must not be null");
+ Preconditions.checkArgument(tag.length() <= LIMIT_BLOB_TAG_LENGTH, "tag too long");
+ }
+
+ @Override
+ public String toString() {
+ return "BlobHandle {"
+ + "algo:" + algorithm + ","
+ + "digest:" + safeDigest() + ","
+ + "label:" + label + ","
+ + "expiryMs:" + expiryTimeMillis + ","
+ + "tag:" + tag
+ + "}";
+ }
+
+ private String safeDigest() {
+ final String digestStr = encodeDigest();
+ return digestStr.substring(0, 2) + ".." + digestStr.substring(digestStr.length() - 2);
+ }
+
+ private String encodeDigest() {
+ return Base64.encodeToString(digest, Base64.NO_WRAP);
+ }
+
+ /** @hide */
+ public boolean isExpired() {
+ return expiryTimeMillis != 0 && expiryTimeMillis < System.currentTimeMillis();
}
public static final @NonNull Creator<BlobHandle> CREATOR = new Creator<BlobHandle>() {
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java b/apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java
index e9838d6b9712..c12e0ec8aec9 100644
--- a/apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java
@@ -48,6 +48,7 @@ import android.util.SparseArray;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.XmlUtils;
+import com.android.server.blob.BlobStoreManagerService.DumpArgs;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -63,9 +64,9 @@ class BlobMetadata {
private final Context mContext;
- public final long blobId;
- public final BlobHandle blobHandle;
- public final int userId;
+ private final long mBlobId;
+ private final BlobHandle mBlobHandle;
+ private final int mUserId;
@GuardedBy("mMetadataLock")
private final ArraySet<Committer> mCommitters = new ArraySet<>();
@@ -89,9 +90,21 @@ class BlobMetadata {
BlobMetadata(Context context, long blobId, BlobHandle blobHandle, int userId) {
mContext = context;
- this.blobId = blobId;
- this.blobHandle = blobHandle;
- this.userId = userId;
+ this.mBlobId = blobId;
+ this.mBlobHandle = blobHandle;
+ this.mUserId = userId;
+ }
+
+ long getBlobId() {
+ return mBlobId;
+ }
+
+ BlobHandle getBlobHandle() {
+ return mBlobHandle;
+ }
+
+ int getUserId() {
+ return mUserId;
}
void addCommitter(@NonNull Committer committer) {
@@ -156,6 +169,12 @@ class BlobMetadata {
}
}
+ boolean hasLeases() {
+ synchronized (mMetadataLock) {
+ return !mLeasees.isEmpty();
+ }
+ }
+
boolean isAccessAllowedForCaller(String callingPackage, int callingUid) {
// TODO: verify blob is still valid (expiryTime is not elapsed)
synchronized (mMetadataLock) {
@@ -189,7 +208,7 @@ class BlobMetadata {
File getBlobFile() {
if (mBlobFile == null) {
- mBlobFile = BlobStoreConfig.getBlobFile(blobId);
+ mBlobFile = BlobStoreConfig.getBlobFile(mBlobId);
}
return mBlobFile;
}
@@ -234,10 +253,10 @@ class BlobMetadata {
return revocableFd.getRevocableFileDescriptor();
}
- void dump(IndentingPrintWriter fout) {
+ void dump(IndentingPrintWriter fout, DumpArgs dumpArgs) {
fout.println("blobHandle:");
fout.increaseIndent();
- blobHandle.dump(fout);
+ mBlobHandle.dump(fout, dumpArgs.shouldDumpFull());
fout.decreaseIndent();
fout.println("Committers:");
@@ -267,11 +286,11 @@ class BlobMetadata {
void writeToXml(XmlSerializer out) throws IOException {
synchronized (mMetadataLock) {
- XmlUtils.writeLongAttribute(out, ATTR_ID, blobId);
- XmlUtils.writeIntAttribute(out, ATTR_USER_ID, userId);
+ XmlUtils.writeLongAttribute(out, ATTR_ID, mBlobId);
+ XmlUtils.writeIntAttribute(out, ATTR_USER_ID, mUserId);
out.startTag(null, TAG_BLOB_HANDLE);
- blobHandle.writeToXml(out);
+ mBlobHandle.writeToXml(out);
out.endTag(null, TAG_BLOB_HANDLE);
for (int i = 0, count = mCommitters.size(); i < count; ++i) {
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreConfig.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreConfig.java
index eb414b0f11a6..ba2e559afdab 100644
--- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreConfig.java
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreConfig.java
@@ -18,12 +18,15 @@ package com.android.server.blob;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.os.Environment;
+import android.util.Log;
import android.util.Slog;
import java.io.File;
+import java.util.concurrent.TimeUnit;
class BlobStoreConfig {
public static final String TAG = "BlobStore";
+ public static final boolean LOGV = Log.isLoggable(TAG, Log.VERBOSE);
public static final int CURRENT_XML_VERSION = 1;
@@ -32,6 +35,20 @@ class BlobStoreConfig {
private static final String SESSIONS_INDEX_FILE_NAME = "sessions_index.xml";
private static final String BLOBS_INDEX_FILE_NAME = "blobs_index.xml";
+ /**
+ * Job Id for idle maintenance job ({@link BlobStoreIdleJobService}).
+ */
+ public static final int IDLE_JOB_ID = 0xB70B1D7; // 191934935L
+ /**
+ * Max time period (in millis) between each idle maintenance job run.
+ */
+ public static final long IDLE_JOB_PERIOD_MILLIS = TimeUnit.DAYS.toMillis(1);
+
+ /**
+ * Timeout in millis after which sessions with no updates will be deleted.
+ */
+ public static final long SESSION_EXPIRY_TIMEOUT_MILLIS = TimeUnit.DAYS.toMillis(7);
+
@Nullable
public static File prepareBlobFile(long sessionId) {
final File blobsDir = prepareBlobsDir();
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreIdleJobService.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreIdleJobService.java
new file mode 100644
index 000000000000..460e776b9ff6
--- /dev/null
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreIdleJobService.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.blob;
+
+import static com.android.server.blob.BlobStoreConfig.IDLE_JOB_ID;
+import static com.android.server.blob.BlobStoreConfig.IDLE_JOB_PERIOD_MILLIS;
+import static com.android.server.blob.BlobStoreConfig.LOGV;
+import static com.android.server.blob.BlobStoreConfig.TAG;
+
+import android.app.job.JobInfo;
+import android.app.job.JobParameters;
+import android.app.job.JobScheduler;
+import android.app.job.JobService;
+import android.content.ComponentName;
+import android.content.Context;
+import android.os.AsyncTask;
+import android.util.Slog;
+
+import com.android.server.LocalServices;
+
+/**
+ * Maintenance job to clean up stale sessions and blobs.
+ */
+public class BlobStoreIdleJobService extends JobService {
+ @Override
+ public boolean onStartJob(final JobParameters params) {
+ AsyncTask.execute(() -> {
+ final BlobStoreManagerInternal blobStoreManagerInternal = LocalServices.getService(
+ BlobStoreManagerInternal.class);
+ blobStoreManagerInternal.onIdleMaintenance();
+ jobFinished(params, false);
+ });
+ return false;
+ }
+
+ @Override
+ public boolean onStopJob(final JobParameters params) {
+ Slog.d(TAG, "Idle maintenance job is stopped; id=" + params.getJobId()
+ + ", reason=" + JobParameters.getReasonCodeDescription(params.getStopReason()));
+ return false;
+ }
+
+ static void schedule(Context context) {
+ final JobScheduler jobScheduler = (JobScheduler) context.getSystemService(
+ Context.JOB_SCHEDULER_SERVICE);
+ final JobInfo job = new JobInfo.Builder(IDLE_JOB_ID,
+ new ComponentName(context, BlobStoreIdleJobService.class))
+ .setRequiresDeviceIdle(true)
+ .setRequiresCharging(true)
+ .setPeriodic(IDLE_JOB_PERIOD_MILLIS)
+ .build();
+ jobScheduler.schedule(job);
+ if (LOGV) {
+ Slog.v(TAG, "Scheduling the idle maintenance job");
+ }
+ }
+}
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerInternal.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerInternal.java
new file mode 100644
index 000000000000..5358245f517f
--- /dev/null
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerInternal.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.blob;
+
+/**
+ * BlobStoreManager local system service interface.
+ *
+ * Only for use within the system server.
+ */
+public abstract class BlobStoreManagerInternal {
+ /**
+ * Triggered from idle maintenance job to cleanup stale blobs and sessions.
+ */
+ public abstract void onIdleMaintenance();
+}
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
index fcc30e30dfaa..0ba34cab6560 100644
--- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
@@ -28,6 +28,8 @@ import static android.content.pm.PackageManager.MATCH_UNINSTALLED_PACKAGES;
import static android.os.UserHandle.USER_NULL;
import static com.android.server.blob.BlobStoreConfig.CURRENT_XML_VERSION;
+import static com.android.server.blob.BlobStoreConfig.LOGV;
+import static com.android.server.blob.BlobStoreConfig.SESSION_EXPIRY_TIMEOUT_MILLIS;
import static com.android.server.blob.BlobStoreConfig.TAG;
import static com.android.server.blob.BlobStoreSession.STATE_ABANDONED;
import static com.android.server.blob.BlobStoreSession.STATE_COMMITTED;
@@ -40,6 +42,7 @@ import android.annotation.IdRes;
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.UserIdInt;
import android.app.blob.BlobHandle;
import android.app.blob.IBlobStoreManager;
import android.app.blob.IBlobStoreSession;
@@ -49,6 +52,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManagerInternal;
+import android.content.res.ResourceId;
import android.os.Binder;
import android.os.Handler;
import android.os.HandlerThread;
@@ -59,6 +63,7 @@ import android.os.SystemClock;
import android.os.UserHandle;
import android.os.UserManagerInternal;
import android.util.ArrayMap;
+import android.util.ArraySet;
import android.util.AtomicFile;
import android.util.ExceptionUtils;
import android.util.LongSparseArray;
@@ -67,6 +72,8 @@ import android.util.SparseArray;
import android.util.Xml;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.CollectionUtils;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.IndentingPrintWriter;
@@ -90,7 +97,10 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
+import java.util.Objects;
+import java.util.Set;
/**
* Service responsible for maintaining and facilitating access to data blobs published by apps.
@@ -110,27 +120,47 @@ public class BlobStoreManagerService extends SystemService {
@GuardedBy("mBlobsLock")
private final SparseArray<ArrayMap<BlobHandle, BlobMetadata>> mBlobsMap = new SparseArray<>();
+ // Contains all ids that are currently in use.
+ @GuardedBy("mBlobsLock")
+ private final ArraySet<Long> mKnownBlobIds = new ArraySet<>();
+
private final Context mContext;
private final Handler mHandler;
+ private final Injector mInjector;
private final SessionStateChangeListener mSessionStateChangeListener =
new SessionStateChangeListener();
private PackageManagerInternal mPackageManagerInternal;
+ private final Runnable mSaveBlobsInfoRunnable = this::writeBlobsInfo;
+ private final Runnable mSaveSessionsRunnable = this::writeBlobSessions;
+
public BlobStoreManagerService(Context context) {
+ this(context, new Injector());
+ }
+
+ @VisibleForTesting
+ BlobStoreManagerService(Context context, Injector injector) {
super(context);
+
mContext = context;
+ mInjector = injector;
+ mHandler = mInjector.initializeMessageHandler();
+ }
+ private static Handler initializeMessageHandler() {
final HandlerThread handlerThread = new ServiceThread(TAG,
Process.THREAD_PRIORITY_BACKGROUND, true /* allowIo */);
handlerThread.start();
- mHandler = new Handler(handlerThread.getLooper());
- Watchdog.getInstance().addThread(mHandler);
+ final Handler handler = new Handler(handlerThread.getLooper());
+ Watchdog.getInstance().addThread(handler);
+ return handler;
}
@Override
public void onStart() {
publishBinderService(Context.BLOB_STORE_SERVICE, new Stub());
+ LocalServices.addService(BlobStoreManagerInternal.class, new LocalService());
mPackageManagerInternal = LocalServices.getService(PackageManagerInternal.class);
registerReceivers();
@@ -144,6 +174,8 @@ public class BlobStoreManagerService extends SystemService {
readBlobSessionsLocked(allPackages);
readBlobsInfoLocked(allPackages);
}
+ } else if (phase == PHASE_BOOT_COMPLETED) {
+ BlobStoreIdleJobService.schedule(mContext);
}
}
@@ -181,6 +213,54 @@ public class BlobStoreManagerService extends SystemService {
return userBlobs;
}
+ @VisibleForTesting
+ void addUserSessionsForTest(LongSparseArray<BlobStoreSession> userSessions, int userId) {
+ synchronized (mBlobsLock) {
+ mSessions.put(userId, userSessions);
+ }
+ }
+
+ @VisibleForTesting
+ void addUserBlobsForTest(ArrayMap<BlobHandle, BlobMetadata> userBlobs, int userId) {
+ synchronized (mBlobsLock) {
+ mBlobsMap.put(userId, userBlobs);
+ }
+ }
+
+ @VisibleForTesting
+ void addKnownIdsForTest(long... knownIds) {
+ synchronized (mBlobsLock) {
+ for (long id : knownIds) {
+ mKnownBlobIds.add(id);
+ }
+ }
+ }
+
+ @VisibleForTesting
+ Set<Long> getKnownIdsForTest() {
+ synchronized (mBlobsLock) {
+ return mKnownBlobIds;
+ }
+ }
+
+ @GuardedBy("mBlobsLock")
+ private void addSessionForUserLocked(BlobStoreSession session, int userId) {
+ getUserSessionsLocked(userId).put(session.getSessionId(), session);
+ mKnownBlobIds.add(session.getSessionId());
+ }
+
+ @GuardedBy("mBlobsLock")
+ private void addBlobForUserLocked(BlobMetadata blobMetadata, int userId) {
+ addBlobForUserLocked(blobMetadata, getUserBlobsLocked(userId));
+ }
+
+ @GuardedBy("mBlobsLock")
+ private void addBlobForUserLocked(BlobMetadata blobMetadata,
+ ArrayMap<BlobHandle, BlobMetadata> userBlobs) {
+ userBlobs.put(blobMetadata.getBlobHandle(), blobMetadata);
+ mKnownBlobIds.add(blobMetadata.getBlobId());
+ }
+
private long createSessionInternal(BlobHandle blobHandle,
int callingUid, String callingPackage) {
synchronized (mBlobsLock) {
@@ -189,7 +269,11 @@ public class BlobStoreManagerService extends SystemService {
final BlobStoreSession session = new BlobStoreSession(mContext,
sessionId, blobHandle, callingUid, callingPackage,
mSessionStateChangeListener);
- getUserSessionsLocked(UserHandle.getUserId(callingUid)).put(sessionId, session);
+ addSessionForUserLocked(session, UserHandle.getUserId(callingUid));
+ if (LOGV) {
+ Slog.v(TAG, "Created session for " + blobHandle
+ + "; callingUid=" + callingUid + ", callingPackage=" + callingPackage);
+ }
writeBlobSessionsAsync();
return sessionId;
}
@@ -217,7 +301,10 @@ public class BlobStoreManagerService extends SystemService {
callingUid, callingPackage);
session.open();
session.abandon();
-
+ if (LOGV) {
+ Slog.v(TAG, "Deleted session with id " + sessionId
+ + "; callingUid=" + callingUid + ", callingPackage=" + callingPackage);
+ }
writeBlobSessionsAsync();
}
}
@@ -252,6 +339,10 @@ public class BlobStoreManagerService extends SystemService {
}
blobMetadata.addLeasee(callingPackage, callingUid,
descriptionResId, leaseExpiryTimeMillis);
+ if (LOGV) {
+ Slog.v(TAG, "Acquired lease on " + blobHandle
+ + "; callingUid=" + callingUid + ", callingPackage=" + callingPackage);
+ }
writeBlobsInfoAsync();
}
}
@@ -267,6 +358,10 @@ public class BlobStoreManagerService extends SystemService {
+ "; callingUid=" + callingUid + ", callingPackage=" + callingPackage);
}
blobMetadata.removeLeasee(callingPackage, callingUid);
+ if (LOGV) {
+ Slog.v(TAG, "Released lease on " + blobHandle
+ + "; callingUid=" + callingUid + ", callingPackage=" + callingPackage);
+ }
writeBlobsInfoAsync();
}
}
@@ -293,23 +388,27 @@ public class BlobStoreManagerService extends SystemService {
case STATE_ABANDONED:
case STATE_VERIFIED_INVALID:
session.getSessionFile().delete();
- getUserSessionsLocked(UserHandle.getUserId(session.ownerUid))
- .remove(session.sessionId);
+ getUserSessionsLocked(UserHandle.getUserId(session.getOwnerUid()))
+ .remove(session.getSessionId());
+ mKnownBlobIds.remove(session.getSessionId());
+ if (LOGV) {
+ Slog.v(TAG, "Session is invalid; deleted " + session);
+ }
break;
case STATE_COMMITTED:
session.verifyBlobData();
break;
case STATE_VERIFIED_VALID:
- final int userId = UserHandle.getUserId(session.ownerUid);
+ final int userId = UserHandle.getUserId(session.getOwnerUid());
final ArrayMap<BlobHandle, BlobMetadata> userBlobs = getUserBlobsLocked(userId);
- BlobMetadata blob = userBlobs.get(session.blobHandle);
+ BlobMetadata blob = userBlobs.get(session.getBlobHandle());
if (blob == null) {
blob = new BlobMetadata(mContext,
- session.sessionId, session.blobHandle, userId);
- userBlobs.put(session.blobHandle, blob);
+ session.getSessionId(), session.getBlobHandle(), userId);
+ addBlobForUserLocked(blob, userBlobs);
}
- final Committer newCommitter = new Committer(session.ownerPackageName,
- session.ownerUid, session.getBlobAccessMode());
+ final Committer newCommitter = new Committer(session.getOwnerPackageName(),
+ session.getOwnerUid(), session.getBlobAccessMode());
final Committer existingCommitter = blob.getExistingCommitter(newCommitter);
blob.addCommitter(newCommitter);
try {
@@ -319,8 +418,11 @@ public class BlobStoreManagerService extends SystemService {
blob.addCommitter(existingCommitter);
session.sendCommitCallbackResult(COMMIT_RESULT_ERROR);
}
- getUserSessionsLocked(UserHandle.getUserId(session.ownerUid))
- .remove(session.sessionId);
+ getUserSessionsLocked(UserHandle.getUserId(session.getOwnerUid()))
+ .remove(session.getSessionId());
+ if (LOGV) {
+ Slog.v(TAG, "Successfully committed session " + session);
+ }
break;
default:
Slog.wtf(TAG, "Invalid session state: "
@@ -363,6 +465,9 @@ public class BlobStoreManagerService extends SystemService {
out.endTag(null, TAG_SESSIONS);
out.endDocument();
sessionsIndexFile.finishWrite(fos);
+ if (LOGV) {
+ Slog.v(TAG, "Finished persisting sessions data");
+ }
} catch (Exception e) {
sessionsIndexFile.failWrite(fos);
Slog.wtf(TAG, "Error writing sessions data", e);
@@ -399,19 +504,22 @@ public class BlobStoreManagerService extends SystemService {
continue;
}
final SparseArray<String> userPackages = allPackages.get(
- UserHandle.getUserId(session.ownerUid));
+ UserHandle.getUserId(session.getOwnerUid()));
if (userPackages != null
- && session.ownerPackageName.equals(
- userPackages.get(session.ownerUid))) {
- getUserSessionsLocked(UserHandle.getUserId(session.ownerUid)).put(
- session.sessionId, session);
+ && session.getOwnerPackageName().equals(
+ userPackages.get(session.getOwnerUid()))) {
+ addSessionForUserLocked(session,
+ UserHandle.getUserId(session.getOwnerUid()));
} else {
// Unknown package or the session data does not belong to this package.
session.getSessionFile().delete();
}
- mCurrentMaxSessionId = Math.max(mCurrentMaxSessionId, session.sessionId);
+ mCurrentMaxSessionId = Math.max(mCurrentMaxSessionId, session.getSessionId());
}
}
+ if (LOGV) {
+ Slog.v(TAG, "Finished reading sessions data");
+ }
} catch (Exception e) {
Slog.wtf(TAG, "Error reading sessions data", e);
}
@@ -445,6 +553,9 @@ public class BlobStoreManagerService extends SystemService {
out.endTag(null, TAG_BLOBS);
out.endDocument();
blobsIndexFile.finishWrite(fos);
+ if (LOGV) {
+ Slog.v(TAG, "Finished persisting blobs data");
+ }
} catch (Exception e) {
blobsIndexFile.failWrite(fos);
Slog.wtf(TAG, "Error writing blobs data", e);
@@ -476,18 +587,21 @@ public class BlobStoreManagerService extends SystemService {
if (TAG_BLOB.equals(in.getName())) {
final BlobMetadata blobMetadata = BlobMetadata.createFromXml(mContext, in);
- final SparseArray<String> userPackages = allPackages.get(blobMetadata.userId);
+ final SparseArray<String> userPackages = allPackages.get(
+ blobMetadata.getUserId());
if (userPackages == null) {
blobMetadata.getBlobFile().delete();
} else {
- getUserBlobsLocked(blobMetadata.userId).put(
- blobMetadata.blobHandle, blobMetadata);
+ addBlobForUserLocked(blobMetadata, blobMetadata.getUserId());
blobMetadata.removeInvalidCommitters(userPackages);
blobMetadata.removeInvalidLeasees(userPackages);
}
- mCurrentMaxSessionId = Math.max(mCurrentMaxSessionId, blobMetadata.blobId);
+ mCurrentMaxSessionId = Math.max(mCurrentMaxSessionId, blobMetadata.getBlobId());
}
}
+ if (LOGV) {
+ Slog.v(TAG, "Finished reading blobs data");
+ }
} catch (Exception e) {
Slog.wtf(TAG, "Error reading blobs data", e);
}
@@ -504,9 +618,9 @@ public class BlobStoreManagerService extends SystemService {
}
private void writeBlobsInfoAsync() {
- mHandler.post(PooledLambda.obtainRunnable(
- BlobStoreManagerService::writeBlobsInfo,
- BlobStoreManagerService.this).recycleOnUse());
+ if (!mHandler.hasCallbacks(mSaveBlobsInfoRunnable)) {
+ mHandler.post(mSaveBlobsInfoRunnable);
+ }
}
private void writeBlobSessions() {
@@ -520,9 +634,9 @@ public class BlobStoreManagerService extends SystemService {
}
private void writeBlobSessionsAsync() {
- mHandler.post(PooledLambda.obtainRunnable(
- BlobStoreManagerService::writeBlobSessions,
- BlobStoreManagerService.this).recycleOnUse());
+ if (!mHandler.hasCallbacks(mSaveSessionsRunnable)) {
+ mHandler.post(mSaveSessionsRunnable);
+ }
}
private int getPackageUid(String packageName, int userId) {
@@ -568,7 +682,8 @@ public class BlobStoreManagerService extends SystemService {
return new AtomicFile(file, "blobs_index" /* commitLogTag */);
}
- private void handlePackageRemoved(String packageName, int uid) {
+ @VisibleForTesting
+ void handlePackageRemoved(String packageName, int uid) {
synchronized (mBlobsLock) {
// Clean up any pending sessions
final LongSparseArray<BlobStoreSession> userSessions =
@@ -576,25 +691,41 @@ public class BlobStoreManagerService extends SystemService {
final ArrayList<Integer> indicesToRemove = new ArrayList<>();
for (int i = 0, count = userSessions.size(); i < count; ++i) {
final BlobStoreSession session = userSessions.valueAt(i);
- if (session.ownerUid == uid
- && session.ownerPackageName.equals(packageName)) {
+ if (session.getOwnerUid() == uid
+ && session.getOwnerPackageName().equals(packageName)) {
session.getSessionFile().delete();
+ mKnownBlobIds.remove(session.getSessionId());
indicesToRemove.add(i);
}
}
for (int i = 0, count = indicesToRemove.size(); i < count; ++i) {
- userSessions.removeAt(i);
+ userSessions.removeAt(indicesToRemove.get(i));
}
+ writeBlobSessionsAsync();
// Remove the package from the committer and leasee list
final ArrayMap<BlobHandle, BlobMetadata> userBlobs =
getUserBlobsLocked(UserHandle.getUserId(uid));
+ indicesToRemove.clear();
for (int i = 0, count = userBlobs.size(); i < count; ++i) {
final BlobMetadata blobMetadata = userBlobs.valueAt(i);
blobMetadata.removeCommitter(packageName, uid);
blobMetadata.removeLeasee(packageName, uid);
+ // Delete the blob if it doesn't have any active leases.
+ if (!blobMetadata.hasLeases()) {
+ blobMetadata.getBlobFile().delete();
+ mKnownBlobIds.remove(blobMetadata.getBlobId());
+ indicesToRemove.add(i);
+ }
+ }
+ for (int i = 0, count = indicesToRemove.size(); i < count; ++i) {
+ userBlobs.removeAt(indicesToRemove.get(i));
+ }
+ writeBlobsInfoAsync();
+ if (LOGV) {
+ Slog.v(TAG, "Removed blobs data associated with pkg="
+ + packageName + ", uid=" + uid);
}
- // TODO: clean-up blobs which doesn't have any active leases.
}
}
@@ -606,6 +737,7 @@ public class BlobStoreManagerService extends SystemService {
for (int i = 0, count = userSessions.size(); i < count; ++i) {
final BlobStoreSession session = userSessions.valueAt(i);
session.getSessionFile().delete();
+ mKnownBlobIds.remove(session.getSessionId());
}
}
@@ -615,14 +747,187 @@ public class BlobStoreManagerService extends SystemService {
for (int i = 0, count = userBlobs.size(); i < count; ++i) {
final BlobMetadata blobMetadata = userBlobs.valueAt(i);
blobMetadata.getBlobFile().delete();
+ mKnownBlobIds.remove(blobMetadata.getBlobId());
+ }
+ }
+ if (LOGV) {
+ Slog.v(TAG, "Removed blobs data in user " + userId);
+ }
+ }
+ }
+
+ @GuardedBy("mBlobsLock")
+ @VisibleForTesting
+ void handleIdleMaintenanceLocked() {
+ // Cleanup any left over data on disk that is not part of index.
+ final ArrayList<Long> deletedBlobIds = new ArrayList<>();
+ final ArrayList<File> filesToDelete = new ArrayList<>();
+ final File blobsDir = BlobStoreConfig.getBlobsDir();
+ if (blobsDir.exists()) {
+ for (File file : blobsDir.listFiles()) {
+ try {
+ final long id = Long.parseLong(file.getName());
+ if (mKnownBlobIds.indexOf(id) < 0) {
+ filesToDelete.add(file);
+ deletedBlobIds.add(id);
+ }
+ } catch (NumberFormatException e) {
+ Slog.wtf(TAG, "Error parsing the file name: " + file, e);
+ filesToDelete.add(file);
+ }
+ }
+ for (int i = 0, count = filesToDelete.size(); i < count; ++i) {
+ filesToDelete.get(i).delete();
+ }
+ }
+
+ // Cleanup any stale blobs.
+ for (int i = 0, userCount = mBlobsMap.size(); i < userCount; ++i) {
+ final ArrayMap<BlobHandle, BlobMetadata> userBlobs = mBlobsMap.valueAt(i);
+ userBlobs.entrySet().removeIf(entry -> {
+ final BlobHandle blobHandle = entry.getKey();
+ final BlobMetadata blobMetadata = entry.getValue();
+ boolean shouldRemove = false;
+
+ // Cleanup expired data blobs.
+ if (blobHandle.isExpired()) {
+ shouldRemove = true;
+ }
+
+ // Cleanup blobs with no active leases.
+ // TODO: Exclude blobs which were just committed.
+ if (!blobMetadata.hasLeases()) {
+ shouldRemove = true;
+ }
+
+ if (shouldRemove) {
+ blobMetadata.getBlobFile().delete();
+ mKnownBlobIds.remove(blobMetadata.getBlobId());
+ deletedBlobIds.add(blobMetadata.getBlobId());
+ }
+ return shouldRemove;
+ });
+ }
+ writeBlobsInfoAsync();
+
+ // Cleanup any stale sessions.
+ final ArrayList<Integer> indicesToRemove = new ArrayList<>();
+ for (int i = 0, userCount = mSessions.size(); i < userCount; ++i) {
+ final LongSparseArray<BlobStoreSession> userSessions = mSessions.valueAt(i);
+ indicesToRemove.clear();
+ for (int j = 0, sessionsCount = userSessions.size(); j < sessionsCount; ++j) {
+ final BlobStoreSession blobStoreSession = userSessions.valueAt(j);
+ boolean shouldRemove = false;
+
+ // Cleanup sessions which haven't been modified in a while.
+ if (blobStoreSession.getSessionFile().lastModified()
+ < System.currentTimeMillis() - SESSION_EXPIRY_TIMEOUT_MILLIS) {
+ shouldRemove = true;
+ }
+
+ // Cleanup sessions with already expired data.
+ if (blobStoreSession.getBlobHandle().isExpired()) {
+ shouldRemove = true;
}
+
+ if (shouldRemove) {
+ blobStoreSession.getSessionFile().delete();
+ mKnownBlobIds.remove(blobStoreSession.getSessionId());
+ indicesToRemove.add(j);
+ deletedBlobIds.add(blobStoreSession.getSessionId());
+ }
+ }
+ for (int j = 0; j < indicesToRemove.size(); ++j) {
+ userSessions.removeAt(indicesToRemove.get(j));
}
}
+ if (LOGV) {
+ Slog.v(TAG, "Completed idle maintenance; deleted "
+ + Arrays.toString(deletedBlobIds.toArray()));
+ }
+ writeBlobSessionsAsync();
+ }
+
+ void runClearAllSessions(@UserIdInt int userId) {
+ synchronized (mBlobsLock) {
+ if (userId == UserHandle.USER_ALL) {
+ mSessions.clear();
+ } else {
+ mSessions.remove(userId);
+ }
+ writeBlobSessionsAsync();
+ }
+ }
+
+ void runClearAllBlobs(@UserIdInt int userId) {
+ synchronized (mBlobsLock) {
+ if (userId == UserHandle.USER_ALL) {
+ mBlobsMap.clear();
+ } else {
+ mBlobsMap.remove(userId);
+ }
+ writeBlobsInfoAsync();
+ }
+ }
+
+ @GuardedBy("mBlobsLock")
+ private void dumpSessionsLocked(IndentingPrintWriter fout, DumpArgs dumpArgs) {
+ for (int i = 0, userCount = mSessions.size(); i < userCount; ++i) {
+ final int userId = mSessions.keyAt(i);
+ if (!dumpArgs.shouldDumpUser(userId)) {
+ continue;
+ }
+ final LongSparseArray<BlobStoreSession> userSessions = mSessions.valueAt(i);
+ fout.println("List of sessions in user #"
+ + userId + " (" + userSessions.size() + "):");
+ fout.increaseIndent();
+ for (int j = 0, sessionsCount = userSessions.size(); j < sessionsCount; ++j) {
+ final long sessionId = userSessions.keyAt(j);
+ final BlobStoreSession session = userSessions.valueAt(j);
+ if (!dumpArgs.shouldDumpSession(session.getOwnerPackageName(),
+ session.getOwnerUid(), session.getSessionId())) {
+ continue;
+ }
+ fout.println("Session #" + sessionId);
+ fout.increaseIndent();
+ session.dump(fout, dumpArgs);
+ fout.decreaseIndent();
+ }
+ fout.decreaseIndent();
+ }
+ }
+
+ @GuardedBy("mBlobsLock")
+ private void dumpBlobsLocked(IndentingPrintWriter fout, DumpArgs dumpArgs) {
+ for (int i = 0, userCount = mBlobsMap.size(); i < userCount; ++i) {
+ final int userId = mBlobsMap.keyAt(i);
+ if (!dumpArgs.shouldDumpUser(userId)) {
+ continue;
+ }
+ final ArrayMap<BlobHandle, BlobMetadata> userBlobs = mBlobsMap.valueAt(i);
+ fout.println("List of blobs in user #"
+ + userId + " (" + userBlobs.size() + "):");
+ fout.increaseIndent();
+ for (int j = 0, blobsCount = userBlobs.size(); j < blobsCount; ++j) {
+ final BlobMetadata blobMetadata = userBlobs.valueAt(j);
+ if (!dumpArgs.shouldDumpBlob(blobMetadata.getBlobId())) {
+ continue;
+ }
+ fout.println("Blob #" + blobMetadata.getBlobId());
+ fout.increaseIndent();
+ blobMetadata.dump(fout, dumpArgs);
+ fout.decreaseIndent();
+ }
+ fout.decreaseIndent();
+ }
}
private class PackageChangedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
+ if (LOGV) {
+ Slog.v(TAG, "Received " + intent);
+ }
switch (intent.getAction()) {
case Intent.ACTION_PACKAGE_FULLY_REMOVED:
case Intent.ACTION_PACKAGE_DATA_CLEARED:
@@ -658,10 +963,9 @@ public class BlobStoreManagerService extends SystemService {
@IntRange(from = 1)
public long createSession(@NonNull BlobHandle blobHandle,
@NonNull String packageName) {
- Preconditions.checkNotNull(blobHandle, "blobHandle must not be null");
- Preconditions.checkNotNull(packageName, "packageName must not be null");
- // TODO: verify blobHandle.algorithm is sha-256
- // TODO: assert blobHandle is valid.
+ Objects.requireNonNull(blobHandle, "blobHandle must not be null");
+ blobHandle.assertIsValid();
+ Objects.requireNonNull(packageName, "packageName must not be null");
final int callingUid = Binder.getCallingUid();
verifyCallingPackage(callingUid, packageName);
@@ -682,7 +986,7 @@ public class BlobStoreManagerService extends SystemService {
@NonNull String packageName) {
Preconditions.checkArgumentPositive(sessionId,
"sessionId must be positive: " + sessionId);
- Preconditions.checkNotNull(packageName, "packageName must not be null");
+ Objects.requireNonNull(packageName, "packageName must not be null");
final int callingUid = Binder.getCallingUid();
verifyCallingPackage(callingUid, packageName);
@@ -695,7 +999,7 @@ public class BlobStoreManagerService extends SystemService {
@NonNull String packageName) {
Preconditions.checkArgumentPositive(sessionId,
"sessionId must be positive: " + sessionId);
- Preconditions.checkNotNull(packageName, "packageName must not be null");
+ Objects.requireNonNull(packageName, "packageName must not be null");
final int callingUid = Binder.getCallingUid();
verifyCallingPackage(callingUid, packageName);
@@ -706,8 +1010,9 @@ public class BlobStoreManagerService extends SystemService {
@Override
public ParcelFileDescriptor openBlob(@NonNull BlobHandle blobHandle,
@NonNull String packageName) {
- Preconditions.checkNotNull(blobHandle, "blobHandle must not be null");
- Preconditions.checkNotNull(packageName, "packageName must not be null");
+ Objects.requireNonNull(blobHandle, "blobHandle must not be null");
+ blobHandle.assertIsValid();
+ Objects.requireNonNull(packageName, "packageName must not be null");
final int callingUid = Binder.getCallingUid();
verifyCallingPackage(callingUid, packageName);
@@ -727,24 +1032,27 @@ public class BlobStoreManagerService extends SystemService {
@Override
public void acquireLease(@NonNull BlobHandle blobHandle, @IdRes int descriptionResId,
- @CurrentTimeSecondsLong long leaseTimeoutSecs, @NonNull String packageName) {
- Preconditions.checkNotNull(blobHandle, "blobHandle must not be null");
- Preconditions.checkNotNull(packageName, "packageName must not be null");
- Preconditions.checkArgumentPositive(descriptionResId,
- "descriptionResId must be positive; value=" + descriptionResId);
+ @CurrentTimeSecondsLong long leaseExpiryTimeMillis, @NonNull String packageName) {
+ Objects.requireNonNull(blobHandle, "blobHandle must not be null");
+ blobHandle.assertIsValid();
+ Preconditions.checkArgument(ResourceId.isValid(descriptionResId),
+ "descriptionResId is not valid");
+ Preconditions.checkArgumentNonnegative(leaseExpiryTimeMillis,
+ "leaseExpiryTimeMillis must not be negative");
+ Objects.requireNonNull(packageName, "packageName must not be null");
final int callingUid = Binder.getCallingUid();
verifyCallingPackage(callingUid, packageName);
- acquireLeaseInternal(blobHandle, descriptionResId, leaseTimeoutSecs,
+ acquireLeaseInternal(blobHandle, descriptionResId, leaseExpiryTimeMillis,
callingUid, packageName);
}
@Override
public void releaseLease(@NonNull BlobHandle blobHandle, @NonNull String packageName) {
- Preconditions.checkNotNull(blobHandle, "blobHandle must not be null");
- Preconditions.checkNotNull(packageName, "packageName must not be null");
-
+ Objects.requireNonNull(blobHandle, "blobHandle must not be null");
+ blobHandle.assertIsValid();
+ Objects.requireNonNull(packageName, "packageName must not be null");
final int callingUid = Binder.getCallingUid();
verifyCallingPackage(callingUid, packageName);
@@ -754,7 +1062,7 @@ public class BlobStoreManagerService extends SystemService {
@Override
public void waitForIdle(@NonNull RemoteCallback remoteCallback) {
- Preconditions.checkNotNull(remoteCallback, "remoteCallback must not be null");
+ Objects.requireNonNull(remoteCallback, "remoteCallback must not be null");
mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DUMP,
"Caller is not allowed to call this; caller=" + Binder.getCallingUid());
@@ -766,47 +1074,213 @@ public class BlobStoreManagerService extends SystemService {
public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter writer,
@Nullable String[] args) {
// TODO: add proto-based version of this.
- if (!DumpUtils.checkDumpPermission(mContext, TAG, writer)) return;
+ if (!DumpUtils.checkDumpAndUsageStatsPermission(mContext, TAG, writer)) return;
+
+ final DumpArgs dumpArgs = DumpArgs.parse(args);
final IndentingPrintWriter fout = new IndentingPrintWriter(writer, " ");
+ if (dumpArgs.shouldDumpHelp()) {
+ writer.println("dumpsys blob_store [options]:");
+ fout.increaseIndent();
+ dumpArgs.dumpArgsUsage(fout);
+ fout.decreaseIndent();
+ return;
+ }
+
synchronized (mBlobsLock) {
fout.println("mCurrentMaxSessionId: " + mCurrentMaxSessionId);
fout.println();
- for (int i = 0, userCount = mSessions.size(); i < userCount; ++i) {
- final int userId = mSessions.keyAt(i);
- final LongSparseArray<BlobStoreSession> userSessions = mSessions.valueAt(i);
- fout.println("List of sessions in user #"
- + userId + " (" + userSessions.size() + "):");
- fout.increaseIndent();
- for (int j = 0, sessionsCount = userSessions.size(); j < sessionsCount; ++j) {
- final long sessionId = userSessions.keyAt(j);
- final BlobStoreSession session = userSessions.valueAt(j);
- fout.println("Session #" + sessionId);
- fout.increaseIndent();
- session.dump(fout);
- fout.decreaseIndent();
- }
- fout.decreaseIndent();
+
+ if (dumpArgs.shouldDumpSessions()) {
+ dumpSessionsLocked(fout, dumpArgs);
+ fout.println();
+ }
+ if (dumpArgs.shouldDumpBlobs()) {
+ dumpBlobsLocked(fout, dumpArgs);
+ fout.println();
}
+ }
+ }
+
+ @Override
+ public int handleShellCommand(@NonNull ParcelFileDescriptor in,
+ @NonNull ParcelFileDescriptor out, @NonNull ParcelFileDescriptor err,
+ @NonNull String[] args) {
+ return (new BlobStoreManagerShellCommand(BlobStoreManagerService.this)).exec(this,
+ in.getFileDescriptor(), out.getFileDescriptor(), err.getFileDescriptor(), args);
+ }
+ }
+
+ static final class DumpArgs {
+ private boolean mDumpFull;
+ private final ArrayList<String> mDumpPackages = new ArrayList<>();
+ private final ArrayList<Integer> mDumpUids = new ArrayList<>();
+ private final ArrayList<Integer> mDumpUserIds = new ArrayList<>();
+ private final ArrayList<Long> mDumpBlobIds = new ArrayList<>();
+ private boolean mDumpOnlySelectedSections;
+ private boolean mDumpSessions;
+ private boolean mDumpBlobs;
+ private boolean mDumpHelp;
+
+ public boolean shouldDumpSession(String packageName, int uid, long blobId) {
+ if (!CollectionUtils.isEmpty(mDumpPackages)
+ && mDumpPackages.indexOf(packageName) < 0) {
+ return false;
+ }
+ if (!CollectionUtils.isEmpty(mDumpUids)
+ && mDumpUids.indexOf(uid) < 0) {
+ return false;
+ }
+ if (!CollectionUtils.isEmpty(mDumpBlobIds)
+ && mDumpBlobIds.indexOf(blobId) < 0) {
+ return false;
+ }
+ return true;
+ }
- fout.print("\n\n");
-
- for (int i = 0, userCount = mBlobsMap.size(); i < userCount; ++i) {
- final int userId = mBlobsMap.keyAt(i);
- final ArrayMap<BlobHandle, BlobMetadata> userBlobs = mBlobsMap.valueAt(i);
- fout.println("List of blobs in user #"
- + userId + " (" + userBlobs.size() + "):");
- fout.increaseIndent();
- for (int j = 0, blobsCount = userBlobs.size(); j < blobsCount; ++j) {
- final BlobMetadata blobMetadata = userBlobs.valueAt(j);
- fout.println("Blob #" + blobMetadata.blobId);
- fout.increaseIndent();
- blobMetadata.dump(fout);
- fout.decreaseIndent();
+ public boolean shouldDumpSessions() {
+ if (!mDumpOnlySelectedSections) {
+ return true;
+ }
+ return mDumpSessions;
+ }
+
+ public boolean shouldDumpBlobs() {
+ if (!mDumpOnlySelectedSections) {
+ return true;
+ }
+ return mDumpBlobs;
+ }
+
+ public boolean shouldDumpBlob(long blobId) {
+ return CollectionUtils.isEmpty(mDumpBlobIds)
+ || mDumpBlobIds.indexOf(blobId) >= 0;
+ }
+
+ public boolean shouldDumpFull() {
+ return mDumpFull;
+ }
+
+ public boolean shouldDumpUser(int userId) {
+ return CollectionUtils.isEmpty(mDumpUserIds)
+ || mDumpUserIds.indexOf(userId) >= 0;
+ }
+
+ public boolean shouldDumpHelp() {
+ return mDumpHelp;
+ }
+
+ private DumpArgs() {}
+
+ public static DumpArgs parse(String[] args) {
+ final DumpArgs dumpArgs = new DumpArgs();
+ if (args == null) {
+ return dumpArgs;
+ }
+
+ for (int i = 0; i < args.length; ++i) {
+ final String opt = args[i];
+ if ("--full".equals(opt) || "-f".equals(opt)) {
+ final int callingUid = Binder.getCallingUid();
+ if (callingUid == Process.SHELL_UID || callingUid == Process.ROOT_UID) {
+ dumpArgs.mDumpFull = true;
}
- fout.decreaseIndent();
+ } else if ("--sessions".equals(opt)) {
+ dumpArgs.mDumpOnlySelectedSections = true;
+ dumpArgs.mDumpSessions = true;
+ } else if ("--blobs".equals(opt)) {
+ dumpArgs.mDumpOnlySelectedSections = true;
+ dumpArgs.mDumpBlobs = true;
+ } else if ("--package".equals(opt) || "-p".equals(opt)) {
+ dumpArgs.mDumpPackages.add(getStringArgRequired(args, ++i, "packageName"));
+ } else if ("--uid".equals(opt) || "-u".equals(opt)) {
+ dumpArgs.mDumpUids.add(getIntArgRequired(args, ++i, "uid"));
+ } else if ("--user".equals(opt)) {
+ dumpArgs.mDumpUserIds.add(getIntArgRequired(args, ++i, "userId"));
+ } else if ("--blob".equals(opt) || "-b".equals(opt)) {
+ dumpArgs.mDumpBlobIds.add(getLongArgRequired(args, ++i, "blobId"));
+ } else if ("--help".equals(opt) || "-h".equals(opt)) {
+ dumpArgs.mDumpHelp = true;
+ } else {
+ // Everything else is assumed to be blob ids.
+ dumpArgs.mDumpBlobIds.add(getLongArgRequired(args, i, "blobId"));
}
}
+ return dumpArgs;
+ }
+
+ private static String getStringArgRequired(String[] args, int index, String argName) {
+ if (index >= args.length) {
+ throw new IllegalArgumentException("Missing " + argName);
+ }
+ return args[index];
+ }
+
+ private static int getIntArgRequired(String[] args, int index, String argName) {
+ if (index >= args.length) {
+ throw new IllegalArgumentException("Missing " + argName);
+ }
+ final int value;
+ try {
+ value = Integer.parseInt(args[index]);
+ } catch (NumberFormatException e) {
+ throw new IllegalArgumentException("Invalid " + argName + ": " + args[index]);
+ }
+ return value;
+ }
+
+ private static long getLongArgRequired(String[] args, int index, String argName) {
+ if (index >= args.length) {
+ throw new IllegalArgumentException("Missing " + argName);
+ }
+ final long value;
+ try {
+ value = Long.parseLong(args[index]);
+ } catch (NumberFormatException e) {
+ throw new IllegalArgumentException("Invalid " + argName + ": " + args[index]);
+ }
+ return value;
+ }
+
+ private void dumpArgsUsage(IndentingPrintWriter pw) {
+ pw.println("--help | -h");
+ printWithIndent(pw, "Dump this help text");
+ pw.println("--sessions");
+ printWithIndent(pw, "Dump only the sessions info");
+ pw.println("--blobs");
+ printWithIndent(pw, "Dump only the committed blobs info");
+ pw.println("--package | -p [package-name]");
+ printWithIndent(pw, "Dump blobs info associated with the given package");
+ pw.println("--uid | -u [uid]");
+ printWithIndent(pw, "Dump blobs info associated with the given uid");
+ pw.println("--user [user-id]");
+ printWithIndent(pw, "Dump blobs info in the given user");
+ pw.println("--blob | -b [session-id | blob-id]");
+ printWithIndent(pw, "Dump blob info corresponding to the given ID");
+ pw.println("--full | -f");
+ printWithIndent(pw, "Dump full unredacted blobs data");
+ }
+
+ private void printWithIndent(IndentingPrintWriter pw, String str) {
+ pw.increaseIndent();
+ pw.println(str);
+ pw.decreaseIndent();
+ }
+ }
+
+ private class LocalService extends BlobStoreManagerInternal {
+ @Override
+ public void onIdleMaintenance() {
+ synchronized (mBlobsLock) {
+ handleIdleMaintenanceLocked();
+ }
+ }
+ }
+
+ @VisibleForTesting
+ static class Injector {
+ public Handler initializeMessageHandler() {
+ return BlobStoreManagerService.initializeMessageHandler();
}
}
} \ No newline at end of file
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerShellCommand.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerShellCommand.java
new file mode 100644
index 000000000000..3ac30f8fff6c
--- /dev/null
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerShellCommand.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.blob;
+
+import android.os.ShellCommand;
+import android.os.UserHandle;
+
+import java.io.PrintWriter;
+
+class BlobStoreManagerShellCommand extends ShellCommand {
+
+ private final BlobStoreManagerService mService;
+
+ BlobStoreManagerShellCommand(BlobStoreManagerService blobStoreManagerService) {
+ mService = blobStoreManagerService;
+ }
+
+ @Override
+ public int onCommand(String cmd) {
+ if (cmd == null) {
+ return handleDefaultCommands(null);
+ }
+ final PrintWriter pw = getOutPrintWriter();
+ switch (cmd) {
+ case "clear-all-sessions":
+ return runClearAllSessions(pw);
+ case "clear-all-blobs":
+ return runClearAllBlobs(pw);
+ default:
+ return handleDefaultCommands(cmd);
+ }
+ }
+
+ private int runClearAllSessions(PrintWriter pw) {
+ final ParsedArgs args = new ParsedArgs();
+ args.userId = UserHandle.USER_ALL;
+
+ if (parseOptions(pw, args) < 0) {
+ return -1;
+ }
+
+ mService.runClearAllSessions(args.userId);
+ return 0;
+ }
+
+ private int runClearAllBlobs(PrintWriter pw) {
+ final ParsedArgs args = new ParsedArgs();
+ args.userId = UserHandle.USER_ALL;
+
+ if (parseOptions(pw, args) < 0) {
+ return -1;
+ }
+
+ mService.runClearAllBlobs(args.userId);
+ return 0;
+ }
+
+ @Override
+ public void onHelp() {
+ final PrintWriter pw = getOutPrintWriter();
+ pw.println("BlobStore service (blob_store) commands:");
+ pw.println("help");
+ pw.println(" Print this help text.");
+ pw.println();
+ pw.println("clear-all-sessions [-u | --user USER_ID]");
+ pw.println(" Remove all sessions.");
+ pw.println(" Options:");
+ pw.println(" -u or --user: specify which user's sessions to be removed;");
+ pw.println(" If not specified, sessions in all users are removed.");
+ pw.println();
+ pw.println("clear-all-blobs [-u | --user USER_ID]");
+ pw.println(" Remove all blobs.");
+ pw.println(" Options:");
+ pw.println(" -u or --user: specify which user's blobs to be removed;");
+ pw.println(" If not specified, blobs in all users are removed.");
+ pw.println();
+ }
+
+ private int parseOptions(PrintWriter pw, ParsedArgs args) {
+ String opt;
+ while ((opt = getNextOption()) != null) {
+ switch (opt) {
+ case "-u":
+ case "--user":
+ args.userId = Integer.parseInt(getNextArgRequired());
+ break;
+ default:
+ pw.println("Error: unknown option '" + opt + "'");
+ return -1;
+ }
+ }
+ return 0;
+ }
+
+ private static class ParsedArgs {
+ public int userId;
+ }
+}
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java
index 7d1c16653383..bd35b86babd8 100644
--- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreSession.java
@@ -21,11 +21,13 @@ import static android.app.blob.XmlTags.ATTR_PACKAGE;
import static android.app.blob.XmlTags.ATTR_UID;
import static android.app.blob.XmlTags.TAG_ACCESS_MODE;
import static android.app.blob.XmlTags.TAG_BLOB_HANDLE;
+import static android.os.Trace.TRACE_TAG_SYSTEM_SERVER;
import static android.system.OsConstants.O_CREAT;
import static android.system.OsConstants.O_RDONLY;
import static android.system.OsConstants.O_RDWR;
import static android.system.OsConstants.SEEK_SET;
+import static com.android.server.blob.BlobStoreConfig.LOGV;
import static com.android.server.blob.BlobStoreConfig.TAG;
import android.annotation.BytesLong;
@@ -40,6 +42,7 @@ import android.os.FileUtils;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.os.RevocableFileDescriptor;
+import android.os.Trace;
import android.os.storage.StorageManager;
import android.system.ErrnoException;
import android.system.Os;
@@ -47,9 +50,11 @@ import android.util.ExceptionUtils;
import android.util.Slog;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.Preconditions;
import com.android.internal.util.XmlUtils;
+import com.android.server.blob.BlobStoreManagerService.DumpArgs;
import com.android.server.blob.BlobStoreManagerService.SessionStateChangeListener;
import org.xmlpull.v1.XmlPullParser;
@@ -62,9 +67,11 @@ import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Objects;
/** TODO: add doc */
-public class BlobStoreSession extends IBlobStoreSession.Stub {
+@VisibleForTesting
+class BlobStoreSession extends IBlobStoreSession.Stub {
static final int STATE_OPENED = 1;
static final int STATE_CLOSED = 0;
@@ -78,10 +85,10 @@ public class BlobStoreSession extends IBlobStoreSession.Stub {
private final Context mContext;
private final SessionStateChangeListener mListener;
- public final BlobHandle blobHandle;
- public final long sessionId;
- public final int ownerUid;
- public final String ownerPackageName;
+ private final BlobHandle mBlobHandle;
+ private final long mSessionId;
+ private final int mOwnerUid;
+ private final String mOwnerPackageName;
// Do not access this directly, instead use getSessionFile().
private File mSessionFile;
@@ -101,15 +108,31 @@ public class BlobStoreSession extends IBlobStoreSession.Stub {
BlobStoreSession(Context context, long sessionId, BlobHandle blobHandle,
int ownerUid, String ownerPackageName, SessionStateChangeListener listener) {
this.mContext = context;
- this.blobHandle = blobHandle;
- this.sessionId = sessionId;
- this.ownerUid = ownerUid;
- this.ownerPackageName = ownerPackageName;
+ this.mBlobHandle = blobHandle;
+ this.mSessionId = sessionId;
+ this.mOwnerUid = ownerUid;
+ this.mOwnerPackageName = ownerPackageName;
this.mListener = listener;
}
+ public BlobHandle getBlobHandle() {
+ return mBlobHandle;
+ }
+
+ public long getSessionId() {
+ return mSessionId;
+ }
+
+ public int getOwnerUid() {
+ return mOwnerUid;
+ }
+
+ public String getOwnerPackageName() {
+ return mOwnerPackageName;
+ }
+
boolean hasAccess(int callingUid, String callingPackageName) {
- return ownerUid == callingUid && ownerPackageName.equals(callingPackageName);
+ return mOwnerUid == callingUid && mOwnerPackageName.equals(callingPackageName);
}
void open() {
@@ -155,6 +178,8 @@ public class BlobStoreSession extends IBlobStoreSession.Stub {
@NonNull
public ParcelFileDescriptor openWrite(@BytesLong long offsetBytes,
@BytesLong long lengthBytes) {
+ Preconditions.checkArgumentNonnegative(offsetBytes, "offsetBytes must not be negative");
+
assertCallerIsOwner();
synchronized (mSessionLock) {
if (mState != STATE_OPENED) {
@@ -242,7 +267,7 @@ public class BlobStoreSession extends IBlobStoreSession.Stub {
public void allowPackageAccess(@NonNull String packageName,
@NonNull byte[] certificate) {
assertCallerIsOwner();
- Preconditions.checkNotNull(packageName, "packageName must not be null");
+ Objects.requireNonNull(packageName, "packageName must not be null");
synchronized (mSessionLock) {
if (mState != STATE_OPENED) {
throw new IllegalStateException("Not allowed to change access type in state: "
@@ -280,7 +305,9 @@ public class BlobStoreSession extends IBlobStoreSession.Stub {
public boolean isPackageAccessAllowed(@NonNull String packageName,
@NonNull byte[] certificate) {
assertCallerIsOwner();
- Preconditions.checkNotNull(packageName, "packageName must not be null");
+ Objects.requireNonNull(packageName, "packageName must not be null");
+ Preconditions.checkByteArrayNotEmpty(certificate, "certificate");
+
synchronized (mSessionLock) {
if (mState != STATE_OPENED) {
throw new IllegalStateException("Not allowed to get access type in state: "
@@ -357,15 +384,22 @@ public class BlobStoreSession extends IBlobStoreSession.Stub {
void verifyBlobData() {
byte[] actualDigest = null;
try {
- actualDigest = FileUtils.digest(getSessionFile(), blobHandle.algorithm);
+ Trace.traceBegin(TRACE_TAG_SYSTEM_SERVER,
+ "computeBlobDigest-i" + mSessionId + "-l" + getSessionFile().length());
+ actualDigest = FileUtils.digest(getSessionFile(), mBlobHandle.algorithm);
} catch (IOException | NoSuchAlgorithmException e) {
Slog.e(TAG, "Error computing the digest", e);
+ } finally {
+ Trace.traceEnd(TRACE_TAG_SYSTEM_SERVER);
}
synchronized (mSessionLock) {
- if (actualDigest != null && Arrays.equals(actualDigest, blobHandle.digest)) {
+ if (actualDigest != null && Arrays.equals(actualDigest, mBlobHandle.digest)) {
mState = STATE_VERIFIED_VALID;
// Commit callback will be sent once the data is persisted.
} else {
+ if (LOGV) {
+ Slog.v(TAG, "Digest of the data didn't match the given BlobHandle.digest");
+ }
mState = STATE_VERIFIED_INVALID;
sendCommitCallbackResult(COMMIT_RESULT_ERROR);
}
@@ -401,7 +435,7 @@ public class BlobStoreSession extends IBlobStoreSession.Stub {
@Nullable
File getSessionFile() {
if (mSessionFile == null) {
- mSessionFile = BlobStoreConfig.prepareBlobFile(sessionId);
+ mSessionFile = BlobStoreConfig.prepareBlobFile(mSessionId);
}
return mSessionFile;
}
@@ -423,22 +457,32 @@ public class BlobStoreSession extends IBlobStoreSession.Stub {
}
}
+ @Override
+ public String toString() {
+ return "BlobStoreSession {"
+ + "id:" + mSessionId
+ + ",handle:" + mBlobHandle
+ + ",uid:" + mOwnerUid
+ + ",pkg:" + mOwnerPackageName
+ + "}";
+ }
+
private void assertCallerIsOwner() {
final int callingUid = Binder.getCallingUid();
- if (callingUid != ownerUid) {
- throw new SecurityException(ownerUid + " is not the session owner");
+ if (callingUid != mOwnerUid) {
+ throw new SecurityException(mOwnerUid + " is not the session owner");
}
}
- void dump(IndentingPrintWriter fout) {
+ void dump(IndentingPrintWriter fout, DumpArgs dumpArgs) {
synchronized (mSessionLock) {
fout.println("state: " + stateToString(mState));
- fout.println("ownerUid: " + ownerUid);
- fout.println("ownerPkg: " + ownerPackageName);
+ fout.println("ownerUid: " + mOwnerUid);
+ fout.println("ownerPkg: " + mOwnerPackageName);
fout.println("blobHandle:");
fout.increaseIndent();
- blobHandle.dump(fout);
+ mBlobHandle.dump(fout, dumpArgs.shouldDumpFull());
fout.decreaseIndent();
fout.println("accessMode:");
@@ -452,12 +496,12 @@ public class BlobStoreSession extends IBlobStoreSession.Stub {
void writeToXml(@NonNull XmlSerializer out) throws IOException {
synchronized (mSessionLock) {
- XmlUtils.writeLongAttribute(out, ATTR_ID, sessionId);
- XmlUtils.writeStringAttribute(out, ATTR_PACKAGE, ownerPackageName);
- XmlUtils.writeIntAttribute(out, ATTR_UID, ownerUid);
+ XmlUtils.writeLongAttribute(out, ATTR_ID, mSessionId);
+ XmlUtils.writeStringAttribute(out, ATTR_PACKAGE, mOwnerPackageName);
+ XmlUtils.writeIntAttribute(out, ATTR_UID, mOwnerUid);
out.startTag(null, TAG_BLOB_HANDLE);
- blobHandle.writeToXml(out);
+ mBlobHandle.writeToXml(out);
out.endTag(null, TAG_BLOB_HANDLE);
out.startTag(null, TAG_ACCESS_MODE);
diff --git a/apex/jobscheduler/framework/java/android/app/job/JobInfo.java b/apex/jobscheduler/framework/java/android/app/job/JobInfo.java
index 0bb07caf0b00..088cadba89ab 100644
--- a/apex/jobscheduler/framework/java/android/app/job/JobInfo.java
+++ b/apex/jobscheduler/framework/java/android/app/job/JobInfo.java
@@ -1287,7 +1287,7 @@ public class JobInfo implements Parcelable {
* {@link #setPeriodic(long)} or {@link #setPersisted(boolean)}. To continually monitor
* for content changes, you need to schedule a new JobInfo observing the same URIs
* before you finish execution of the JobService handling the most recent changes.
- * Following this pattern will ensure you do not lost any content changes: while your
+ * Following this pattern will ensure you do not lose any content changes: while your
* job is running, the system will continue monitoring for content changes, and propagate
* any it sees over to the next job you schedule.</p>
*
diff --git a/apex/media/framework/Android.bp b/apex/media/framework/Android.bp
index 2266d049d70a..23ae8afc1694 100644
--- a/apex/media/framework/Android.bp
+++ b/apex/media/framework/Android.bp
@@ -38,6 +38,12 @@ java_library {
"android.media",
],
+ optimize: {
+ enabled: true,
+ shrink: true,
+ proguard_flags_files: ["updatable-media-proguard.flags"],
+ },
+
installable: true,
// TODO: build against stable API surface. Use core_platform for now to avoid
@@ -99,13 +105,10 @@ filegroup {
path: "java"
}
-droidstubs {
- name: "updatable-media-stubs",
- srcs: [
- ":updatable-media-srcs",
- ":framework-media-annotation-srcs",
- ],
- defaults: [ "framework-module-stubs-defaults-systemapi" ],
+stubs_defaults {
+ name: "framework-media-stubs-srcs-defaults",
+ srcs: [ ":updatable-media-srcs" ],
+ libs: [ "framework_media_annotation" ],
aidl: {
// TODO(b/135922046) remove this
include_dirs: ["frameworks/base/core/java"],
@@ -113,9 +116,53 @@ droidstubs {
sdk_version: "system_current",
}
+droidstubs {
+ name: "framework-media-stubs-srcs-publicapi",
+ defaults: [
+ "framework-media-stubs-srcs-defaults",
+ "framework-module-stubs-defaults-publicapi",
+ ],
+}
+
+droidstubs {
+ name: "framework-media-stubs-srcs-systemapi",
+ defaults: [
+ "framework-media-stubs-srcs-defaults",
+ "framework-module-stubs-defaults-systemapi",
+ ],
+}
+
+droidstubs {
+ name: "framework-media-api-module_libs_api",
+ defaults: [
+ "framework-media-stubs-srcs-defaults",
+ "framework-module-api-defaults-module_libs_api",
+ ],
+}
+
+droidstubs {
+ name: "framework-media-stubs-srcs-module_libs_api",
+ defaults: [
+ "framework-media-stubs-srcs-defaults",
+ "framework-module-stubs-defaults-module_libs_api",
+ ],
+}
+
+java_library {
+ name: "framework-media-stubs-publicapi",
+ srcs: [":framework-media-stubs-srcs-publicapi"],
+ sdk_version: "current",
+}
+
+java_library {
+ name: "framework-media-stubs-systemapi",
+ srcs: [":framework-media-stubs-srcs-systemapi"],
+ sdk_version: "system_current",
+}
+
java_library {
- name: "updatable_media_stubs",
- srcs: [":updatable-media-stubs"],
+ name: "framework-media-stubs-module_libs_api",
+ srcs: [":framework-media-stubs-srcs-module_libs_api"],
sdk_version: "system_current",
}
diff --git a/apex/media/framework/java/android/media/MediaParser.java b/apex/media/framework/java/android/media/MediaParser.java
index d59270c6a51b..96110e1541f8 100644
--- a/apex/media/framework/java/android/media/MediaParser.java
+++ b/apex/media/framework/java/android/media/MediaParser.java
@@ -15,6 +15,7 @@
*/
package android.media;
+import android.annotation.CheckResult;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.net.Uri;
@@ -32,6 +33,7 @@ import com.google.android.exoplayer2.extractor.PositionHolder;
import com.google.android.exoplayer2.extractor.SeekMap.SeekPoints;
import com.google.android.exoplayer2.extractor.TrackOutput;
import com.google.android.exoplayer2.extractor.amr.AmrExtractor;
+import com.google.android.exoplayer2.extractor.flac.FlacExtractor;
import com.google.android.exoplayer2.extractor.flv.FlvExtractor;
import com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor;
import com.google.android.exoplayer2.extractor.mp3.Mp3Extractor;
@@ -382,6 +384,7 @@ public final class MediaParser {
* parse the input.
*/
@NonNull
+ @CheckResult
private static UnrecognizedInputFormatException createForExtractors(
@NonNull String... extractorNames) {
StringBuilder builder = new StringBuilder();
@@ -536,7 +539,7 @@ public final class MediaParser {
}
}
if (mExtractor == null) {
- UnrecognizedInputFormatException.createForExtractors(mExtractorNamesPool);
+ throw UnrecognizedInputFormatException.createForExtractors(mExtractorNamesPool);
}
return true;
}
@@ -912,6 +915,7 @@ public final class MediaParser {
extractorFactoriesByName.put("exo.Ac4Extractor", Ac4Extractor::new);
extractorFactoriesByName.put("exo.AdtsExtractor", AdtsExtractor::new);
extractorFactoriesByName.put("exo.AmrExtractor", AmrExtractor::new);
+ extractorFactoriesByName.put("exo.FlacExtractor", FlacExtractor::new);
extractorFactoriesByName.put("exo.FlvExtractor", FlvExtractor::new);
extractorFactoriesByName.put("exo.FragmentedMp4Extractor", FragmentedMp4Extractor::new);
extractorFactoriesByName.put("exo.MatroskaExtractor", MatroskaExtractor::new);
diff --git a/apex/media/framework/updatable-media-proguard.flags b/apex/media/framework/updatable-media-proguard.flags
new file mode 100644
index 000000000000..4e7d8422bf44
--- /dev/null
+++ b/apex/media/framework/updatable-media-proguard.flags
@@ -0,0 +1,2 @@
+# Keep all symbols in android.media.
+-keep class android.media.* {*;}
diff --git a/apex/permission/framework/Android.bp b/apex/permission/framework/Android.bp
index 09571a1cd111..126fa00a31f0 100644
--- a/apex/permission/framework/Android.bp
+++ b/apex/permission/framework/Android.bp
@@ -44,23 +44,66 @@ java_library {
],
}
+stubs_defaults {
+ name: "framework-permission-stubs-defaults",
+ srcs: [ ":framework-permission-sources" ],
+ libs: [ "framework-annotations-lib" ],
+ sdk_version: "system_current",
+}
+
droidstubs {
- name: "framework-permission-stubs-sources",
- srcs: [
- ":framework-annotations",
- ":framework-permission-sources",
+ name: "framework-permission-stubs-srcs-publicapi",
+ sdk_version: "system_current",
+ defaults: [
+ "framework-module-stubs-defaults-publicapi",
+ "framework-permission-stubs-defaults",
],
+}
+
+droidstubs {
+ name: "framework-permission-stubs-srcs-systemapi",
sdk_version: "system_current",
defaults: [
"framework-module-stubs-defaults-systemapi",
+ "framework-permission-stubs-defaults",
],
}
-java_library {
- name: "framework-permission-stubs",
- srcs: [
- ":framework-permission-stubs-sources",
+droidstubs {
+ name: "framework-permission-api-module_libs_api",
+ sdk_version: "system_current",
+ defaults: [
+ "framework-module-api-defaults-module_libs_api",
+ "framework-permission-stubs-defaults",
+ ],
+}
+
+droidstubs {
+ name: "framework-permission-stubs-srcs-module_libs_api",
+ sdk_version: "system_current",
+ defaults: [
+ "framework-module-stubs-defaults-module_libs_api",
+ "framework-permission-stubs-defaults",
],
+}
+
+java_library {
+ name: "framework-permission-stubs-publicapi",
+ srcs: [ ":framework-permission-stubs-srcs-publicapi" ],
+ sdk_version: "system_current",
+ installable: false,
+}
+
+java_library {
+ name: "framework-permission-stubs-systemapi",
+ srcs: [ ":framework-permission-stubs-srcs-systemapi" ],
+ sdk_version: "system_current",
+ installable: false,
+}
+
+java_library {
+ name: "framework-permission-stubs-module_libs_api",
+ srcs: [ ":framework-permission-stubs-srcs-module_libs_api" ],
sdk_version: "system_current",
installable: false,
}
diff --git a/apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsPersistence.java b/apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsPersistence.java
index 5f2d94441965..6c7f82a11908 100644
--- a/apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsPersistence.java
+++ b/apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsPersistence.java
@@ -19,6 +19,7 @@ package com.android.permission.persistence;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
+import android.annotation.SystemApi.Client;
import android.os.UserHandle;
/**
@@ -27,7 +28,7 @@ import android.os.UserHandle;
* TODO(b/147914847): Remove @hide when it becomes the default.
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES, process = SystemApi.Process.SYSTEM_SERVER)
+@SystemApi(client = Client.SYSTEM_SERVER)
public interface RuntimePermissionsPersistence {
/**
diff --git a/apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsState.java b/apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsState.java
index 2a939e51b98e..cd2750a0bee5 100644
--- a/apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsState.java
+++ b/apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsState.java
@@ -19,6 +19,7 @@ package com.android.permission.persistence;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
+import android.annotation.SystemApi.Client;
import java.util.List;
import java.util.Map;
@@ -29,7 +30,7 @@ import java.util.Map;
* TODO(b/147914847): Remove @hide when it becomes the default.
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES, process = SystemApi.Process.SYSTEM_SERVER)
+@SystemApi(client = Client.SYSTEM_SERVER)
public final class RuntimePermissionsState {
/**
diff --git a/apex/permission/service/java/com/android/role/persistence/RolesPersistence.java b/apex/permission/service/java/com/android/role/persistence/RolesPersistence.java
index 63c8eedd6285..2908a3872df9 100644
--- a/apex/permission/service/java/com/android/role/persistence/RolesPersistence.java
+++ b/apex/permission/service/java/com/android/role/persistence/RolesPersistence.java
@@ -19,6 +19,7 @@ package com.android.role.persistence;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
+import android.annotation.SystemApi.Client;
import android.os.UserHandle;
/**
@@ -27,7 +28,7 @@ import android.os.UserHandle;
* TODO(b/147914847): Remove @hide when it becomes the default.
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES, process = SystemApi.Process.SYSTEM_SERVER)
+@SystemApi(client = Client.SYSTEM_SERVER)
public interface RolesPersistence {
/**
diff --git a/apex/permission/service/java/com/android/role/persistence/RolesState.java b/apex/permission/service/java/com/android/role/persistence/RolesState.java
index bff980e2e126..7da9d11f172f 100644
--- a/apex/permission/service/java/com/android/role/persistence/RolesState.java
+++ b/apex/permission/service/java/com/android/role/persistence/RolesState.java
@@ -19,6 +19,7 @@ package com.android.role.persistence;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
+import android.annotation.SystemApi.Client;
import java.util.Map;
import java.util.Set;
@@ -29,7 +30,7 @@ import java.util.Set;
* TODO(b/147914847): Remove @hide when it becomes the default.
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES, process = SystemApi.Process.SYSTEM_SERVER)
+@SystemApi(client = Client.SYSTEM_SERVER)
public final class RolesState {
/**
diff --git a/apex/sdkextensions/framework/Android.bp b/apex/sdkextensions/framework/Android.bp
index 245a96b99148..86f4ab7c1128 100644
--- a/apex/sdkextensions/framework/Android.bp
+++ b/apex/sdkextensions/framework/Android.bp
@@ -44,34 +44,68 @@ java_library {
],
}
+stubs_defaults {
+ name: "framework-sdkextensions-stubs-defaults",
+ srcs: [ ":framework-sdkextensions-sources" ],
+ libs: [ "framework-annotations-lib" ],
+ sdk_version: "system_current",
+}
+
droidstubs {
- name: "framework-sdkextensions-droidstubs-publicapi",
+ name: "framework-sdkextensions-stubs-srcs-publicapi",
defaults: [
- "framework-sdkextensions-stubs-defaults",
"framework-module-stubs-defaults-publicapi",
+ "framework-sdkextensions-stubs-defaults",
]
}
droidstubs {
- name: "framework-sdkextensions-droidstubs-systemapi",
+ name: "framework-sdkextensions-stubs-srcs-systemapi",
defaults: [
- "framework-sdkextensions-stubs-defaults",
"framework-module-stubs-defaults-systemapi",
+ "framework-sdkextensions-stubs-defaults",
]
}
-stubs_defaults {
- name: "framework-sdkextensions-stubs-defaults",
- srcs: [
- ":framework-sdkextensions-sources",
- ":framework-annotations",
- ],
- sdk_version: "system_current",
+droidstubs {
+ name: "framework-sdkextensions-api-module_libs_api",
+ defaults: [
+ "framework-module-api-defaults-module_libs_api",
+ "framework-sdkextensions-stubs-defaults",
+ ]
+}
+
+droidstubs {
+ name: "framework-sdkextensions-stubs-srcs-module_libs_api",
+ defaults: [
+ "framework-module-stubs-defaults-module_libs_api",
+ "framework-sdkextensions-stubs-defaults",
+ ]
+}
+
+java_library {
+ name: "framework-sdkextensions-stubs-publicapi",
+ srcs: [":framework-sdkextensions-stubs-srcs-publicapi"],
+ sdk_version: "current",
+ visibility: [
+ "//frameworks/base", // Framework
+ "//frameworks/base/apex/sdkextensions", // sdkextensions SDK
+ ]
}
java_library {
name: "framework-sdkextensions-stubs-systemapi",
- srcs: [":framework-sdkextensions-droidstubs-systemapi"],
+ srcs: [":framework-sdkextensions-stubs-srcs-systemapi"],
+ sdk_version: "system_current",
+ visibility: [
+ "//frameworks/base", // Framework
+ "//frameworks/base/apex/sdkextensions", // sdkextensions SDK
+ ]
+}
+
+java_library {
+ name: "framework-sdkextensions-stubs-module_libs_api",
+ srcs: [":framework-sdkextensions-stubs-srcs-module_libs_api"],
sdk_version: "system_current",
visibility: [
"//frameworks/base", // Framework
diff --git a/apex/sdkextensions/testing/Android.bp b/apex/sdkextensions/testing/Android.bp
index e6451cc29bc2..f2f5b321fafe 100644
--- a/apex/sdkextensions/testing/Android.bp
+++ b/apex/sdkextensions/testing/Android.bp
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-apex {
+apex_test {
name: "test_com.android.sdkext",
visibility: [ "//system/apex/tests" ],
defaults: ["com.android.sdkext-defaults"],
diff --git a/apex/statsd/Android.bp b/apex/statsd/Android.bp
index 09ca1d257460..1f9f18cd051a 100644
--- a/apex/statsd/Android.bp
+++ b/apex/statsd/Android.bp
@@ -19,8 +19,9 @@ apex {
}
apex_defaults {
- // libc.so and libcutils.so are included in the apex
- // native_shared_libs: ["libc", "libcutils"],
+ native_shared_libs: [
+ "libstats_jni",
+ ],
// binaries: ["vold"],
java_libs: [
"framework-statsd",
@@ -44,3 +45,33 @@ android_app_certificate {
// com.android.os.statsd.pk8 (the private key)
certificate: "com.android.os.statsd",
}
+
+
+// JNI library for StatsLog.write
+cc_library_shared {
+ name: "libstats_jni",
+ srcs: ["jni/**/*.cpp"],
+ shared_libs: [
+ "libnativehelper", // Has stable abi - should not be copied into apex.
+ "liblog", // Has a stable abi - should not be copied into apex.
+ ],
+ static_libs: [
+ //TODO: make shared - need libstatssocket to also live in the apex.
+ "libstatssocket",
+ "libcutils", // TODO: remove - needed by libstatssocket
+ ],
+ //TODO: is libc++_static correct?
+ stl: "libc++_static",
+ cflags: [
+ "-Wall",
+ "-Werror",
+ "-Wextra",
+ "-Wno-unused-parameter",
+ ],
+ apex_available: [
+ "com.android.os.statsd",
+ "test_com.android.os.statsd",
+ //TODO (b/148620413): remove platform.
+ "//apex_available:platform",
+ ],
+} \ No newline at end of file
diff --git a/apex/statsd/aidl/android/os/IStatsCompanionService.aidl b/apex/statsd/aidl/android/os/IStatsCompanionService.aidl
index bdd1da7bf3d3..b94928f09ae0 100644
--- a/apex/statsd/aidl/android/os/IStatsCompanionService.aidl
+++ b/apex/statsd/aidl/android/os/IStatsCompanionService.aidl
@@ -61,4 +61,11 @@ interface IStatsCompanionService {
/** Tells StatsCompaionService to grab the uid map snapshot and send it to statsd. */
oneway void triggerUidSnapshot();
+
+ /**
+ * Ask StatsCompanionService if the given permission is allowed for a particular process
+ * and user ID. statsd is incapable of doing this check itself because checkCallingPermission
+ * is not currently supported by libbinder_ndk.
+ */
+ boolean checkPermission(String permission, int pid, int uid);
}
diff --git a/apex/statsd/aidl/android/os/IStatsd.aidl b/apex/statsd/aidl/android/os/IStatsd.aidl
index a2564212366f..253b2c17423d 100644
--- a/apex/statsd/aidl/android/os/IStatsd.aidl
+++ b/apex/statsd/aidl/android/os/IStatsd.aidl
@@ -222,12 +222,6 @@ interface IStatsd {
const int FLAG_REQUIRE_LOW_LATENCY_MONITOR = 0x04;
/**
- * Logs an event for binary push for module updates.
- */
- oneway void sendBinaryPushStateChangedAtom(in String trainName, in long trainVersionCode,
- in int options, in int state, in long[] experimentId);
-
- /**
* Logs an event for watchdog rollbacks.
*/
oneway void sendWatchdogRollbackOccurredAtom(in int rollbackType, in String packageName,
diff --git a/apex/statsd/framework/Android.bp b/apex/statsd/framework/Android.bp
index f66f0340edab..d85ae69b799f 100644
--- a/apex/statsd/framework/Android.bp
+++ b/apex/statsd/framework/Android.bp
@@ -30,13 +30,13 @@ java_library {
],
permitted_packages: [
"android.app",
+ "android.os",
"android.util",
],
libs: [
"framework-annotations-lib",
- // TODO(b/146230220): Use framework-system-stubs instead.
- //"android_system_stubs_current",
- //"framework_module_lib_stubs_current",
+ // TODO(b/146230220): Use android_module_lib_stubs_current instead.
+ //"android_module_lib_stubs_current",
"framework-all",
],
hostdex: true, // for hiddenapi check
@@ -44,6 +44,7 @@ java_library {
"//frameworks/base/apex/statsd:__subpackages__",
//TODO(b/146167933) remove this when framework is built with framework-statsd-stubs
"//frameworks/base",
+ "//frameworks/opt/net/wifi/service",
],
apex_available: [
"com.android.os.statsd",
@@ -51,31 +52,70 @@ java_library {
],
}
+stubs_defaults {
+ name: "framework-statsd-stubs-srcs-defaults",
+ srcs: [ ":framework-statsd-sources" ],
+ libs: [
+ // TODO(b/148218250): Change to android_system_stubs_current
+ "framework-all",
+ "framework-annotations-lib",
+ ],
+ sdk_version: "core_platform",
+}
+
droidstubs {
- name: "framework-statsd-stubs-docs",
+ name: "framework-statsd-stubs-srcs-publicapi",
defaults: [
- "framework-module-stubs-defaults-systemapi"
+ "framework-module-stubs-defaults-systemapi",
+ "framework-statsd-stubs-srcs-defaults",
],
- srcs: [
- ":framework-annotations",
- ":framework-statsd-sources",
+}
+
+droidstubs {
+ name: "framework-statsd-stubs-srcs-systemapi",
+ defaults: [
+ "framework-module-stubs-defaults-systemapi",
+ "framework-statsd-stubs-srcs-defaults",
],
- libs: [
- // TODO(b/148218250): Change to android_system_stubs_current
- "framework-all",
+}
+
+droidstubs {
+ name: "framework-statsd-api-module_libs_api",
+ defaults: [
+ "framework-module-api-defaults-module_libs_api",
+ "framework-statsd-stubs-srcs-defaults",
+ ],
+}
+
+droidstubs {
+ name: "framework-statsd-stubs-srcs-module_libs_api",
+ defaults: [
+ "framework-module-stubs-defaults-module_libs_api",
+ "framework-statsd-stubs-srcs-defaults",
],
+}
+
+java_library {
+ name: "framework-statsd-stubs-publicapi",
+ srcs: [ ":framework-statsd-stubs-srcs-publicapi" ],
+ // TODO(b/148218250): Change to current
+ libs: [ "framework-all" ],
sdk_version: "core_platform",
}
// TODO(b/146167933): Use these stubs in frameworks/base/Android.bp
java_library {
- name: "framework-statsd-stubs",
- srcs: [
- ":framework-statsd-stubs-docs",
- ],
- libs: [
- // TODO(b/148218250): Change to android_system_stubs_current
- "framework-all",
- ],
+ name: "framework-statsd-stubs-systemapi",
+ srcs: [ ":framework-statsd-stubs-srcs-systemapi" ],
+ // TODO(b/148218250): Change to system_current
+ libs: [ "framework-all" ],
+ sdk_version: "core_platform",
+}
+
+java_library {
+ name: "framework-statsd-stubs-module_libs_api",
+ srcs: [ ":framework-statsd-stubs-srcs-systemapi" ],
+ // TODO(b/148218250): Change to system_current
+ libs: [ "framework-all" ],
sdk_version: "core_platform",
}
diff --git a/apex/statsd/framework/java/android/app/StatsManager.java b/apex/statsd/framework/java/android/app/StatsManager.java
index a1de330c300a..411482b88326 100644
--- a/apex/statsd/framework/java/android/app/StatsManager.java
+++ b/apex/statsd/framework/java/android/app/StatsManager.java
@@ -476,7 +476,7 @@ public final class StatsManager {
/**
* Registers a callback for an atom when that atom is to be pulled. The stats service will
* invoke pullData in the callback when the stats service determines that this atom needs to be
- * pulled.
+ * pulled. This method should not be called by third-party apps.
*
* @param atomTag The tag of the atom for this puller callback.
* @param metadata Optional metadata specifying the timeout, cool down time, and
@@ -485,6 +485,7 @@ public final class StatsManager {
* @param executor The executor in which to run the callback.
*
*/
+ @RequiresPermission(android.Manifest.permission.REGISTER_STATS_PULL_ATOM)
public void registerPullAtomCallback(int atomTag, @Nullable PullAtomMetadata metadata,
@NonNull @CallbackExecutor Executor executor,
@NonNull StatsPullAtomCallback callback) {
@@ -510,11 +511,12 @@ public final class StatsManager {
/**
* Unregisters a callback for an atom when that atom is to be pulled. Note that any ongoing
- * pulls will still occur.
+ * pulls will still occur. This method should not be called by third-party apps.
*
* @param atomTag The tag of the atom of which to unregister
*
*/
+ @RequiresPermission(android.Manifest.permission.REGISTER_STATS_PULL_ATOM)
public void unregisterPullAtomCallback(int atomTag) {
synchronized (sLock) {
try {
diff --git a/core/java/android/os/StatsDimensionsValue.java b/apex/statsd/framework/java/android/os/StatsDimensionsValue.java
index da13ea13d5fa..886130fc5f14 100644
--- a/core/java/android/os/StatsDimensionsValue.java
+++ b/apex/statsd/framework/java/android/os/StatsDimensionsValue.java
@@ -264,7 +264,8 @@ public final class StatsDimensionsValue implements Parcelable {
/**
* Parcelable Creator for StatsDimensionsValue.
*/
- public static final @android.annotation.NonNull Parcelable.Creator<StatsDimensionsValue> CREATOR = new
+ public static final @android.annotation.NonNull
+ Parcelable.Creator<StatsDimensionsValue> CREATOR = new
Parcelable.Creator<StatsDimensionsValue>() {
public StatsDimensionsValue createFromParcel(Parcel in) {
return new StatsDimensionsValue(in);
diff --git a/core/java/android/util/StatsLog.java b/apex/statsd/framework/java/android/util/StatsLog.java
index 8635340397b4..791073794b0e 100644
--- a/core/java/android/util/StatsLog.java
+++ b/apex/statsd/framework/java/android/util/StatsLog.java
@@ -27,14 +27,18 @@ import android.content.Context;
import android.os.IStatsd;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.util.proto.ProtoOutputStream;
+
+import com.android.internal.util.FrameworkStatsLog;
/**
* StatsLog provides an API for developers to send events to statsd. The events can be used to
* define custom metrics inside statsd.
*/
-public final class StatsLog extends StatsLogInternal {
+public final class StatsLog {
private static final String TAG = "StatsLog";
private static final boolean DEBUG = false;
+ private static final int EXPERIMENT_IDS_FIELD_ID = 1;
private static IStatsd sService;
@@ -60,7 +64,7 @@ public final class StatsLog extends StatsLogInternal {
return false;
}
service.sendAppBreadcrumbAtom(label,
- StatsLog.APP_BREADCRUMB_REPORTED__STATE__START);
+ FrameworkStatsLog.APP_BREADCRUMB_REPORTED__STATE__START);
return true;
} catch (RemoteException e) {
sService = null;
@@ -88,7 +92,8 @@ public final class StatsLog extends StatsLogInternal {
}
return false;
}
- service.sendAppBreadcrumbAtom(label, StatsLog.APP_BREADCRUMB_REPORTED__STATE__STOP);
+ service.sendAppBreadcrumbAtom(
+ label, FrameworkStatsLog.APP_BREADCRUMB_REPORTED__STATE__STOP);
return true;
} catch (RemoteException e) {
sService = null;
@@ -117,7 +122,7 @@ public final class StatsLog extends StatsLogInternal {
return false;
}
service.sendAppBreadcrumbAtom(
- label, StatsLog.APP_BREADCRUMB_REPORTED__STATE__UNSPECIFIED);
+ label, FrameworkStatsLog.APP_BREADCRUMB_REPORTED__STATE__UNSPECIFIED);
return true;
} catch (RemoteException e) {
sService = null;
@@ -149,28 +154,25 @@ public final class StatsLog extends StatsLogInternal {
public static boolean logBinaryPushStateChanged(@NonNull String trainName,
long trainVersionCode, int options, int state,
@NonNull long[] experimentIds) {
- synchronized (sLogLock) {
- try {
- IStatsd service = getIStatsdLocked();
- if (service == null) {
- if (DEBUG) {
- Slog.d(TAG, "Failed to find statsd when logging event");
- }
- return false;
- }
- service.sendBinaryPushStateChangedAtom(
- trainName, trainVersionCode, options, state, experimentIds);
- return true;
- } catch (RemoteException e) {
- sService = null;
- if (DEBUG) {
- Slog.d(TAG,
- "Failed to connect to StatsCompanionService when logging "
- + "BinaryPushStateChanged");
- }
- return false;
- }
+ ProtoOutputStream proto = new ProtoOutputStream();
+ for (long id : experimentIds) {
+ proto.write(
+ ProtoOutputStream.FIELD_TYPE_INT64
+ | ProtoOutputStream.FIELD_COUNT_REPEATED
+ | EXPERIMENT_IDS_FIELD_ID,
+ id);
}
+ FrameworkStatsLog.write(FrameworkStatsLog.BINARY_PUSH_STATE_CHANGED,
+ trainName,
+ trainVersionCode,
+ (options & IStatsd.FLAG_REQUIRE_STAGING) > 0,
+ (options & IStatsd.FLAG_ROLLBACK_ENABLED) > 0,
+ (options & IStatsd.FLAG_REQUIRE_LOW_LATENCY_MONITOR) > 0,
+ state,
+ proto.getBytes(),
+ 0,
+ 0);
+ return true;
}
/**
diff --git a/core/jni/android_util_StatsLog.cpp b/apex/statsd/jni/android_util_StatsLog.cpp
index 9225fc2839d0..9d410eb1f836 100644
--- a/core/jni/android_util_StatsLog.cpp
+++ b/apex/statsd/jni/android_util_StatsLog.cpp
@@ -17,12 +17,9 @@
#define LOG_NAMESPACE "StatsLog.tag."
#define LOG_TAG "StatsLog_println"
-#include <assert.h>
-
#include "jni.h"
+#include <log/log.h>
#include <nativehelper/JNIHelp.h>
-#include "utils/misc.h"
-#include "core_jni_helpers.h"
#include "stats_buffer_writer.h"
namespace android {
@@ -57,7 +54,27 @@ static const JNINativeMethod gMethods[] = {
int register_android_util_StatsLog(JNIEnv* env)
{
- return RegisterMethodsOrDie(env, "android/util/StatsLog", gMethods, NELEM(gMethods));
+ return jniRegisterNativeMethods(env, "android/util/StatsLog", gMethods, NELEM(gMethods));
}
-
}; // namespace android
+
+/*
+ * JNI Initialization
+ */
+jint JNI_OnLoad(JavaVM* jvm, void* reserved) {
+ JNIEnv* e;
+ int status;
+
+ ALOGV("statsd : loading JNI\n");
+ // Check JNI version
+ if (jvm->GetEnv((void**)&e, JNI_VERSION_1_4)) {
+ ALOGE("JNI version mismatch error");
+ return JNI_ERR;
+ }
+ status = android::register_android_util_StatsLog(e);
+ if (status < 0) {
+ ALOGE("jni statsd registration failure, status: %d", status);
+ return JNI_ERR;
+ }
+ return JNI_VERSION_1_4;
+}
diff --git a/apex/statsd/service/java/com/android/server/stats/StatsCompanion.java b/apex/statsd/service/java/com/android/server/stats/StatsCompanion.java
index 4383b503bfe7..4495dc9de71e 100644
--- a/apex/statsd/service/java/com/android/server/stats/StatsCompanion.java
+++ b/apex/statsd/service/java/com/android/server/stats/StatsCompanion.java
@@ -38,11 +38,15 @@ public class StatsCompanion {
private static final String TAG = "StatsCompanion";
private static final boolean DEBUG = false;
- static void enforceStatsCompanionPermission(Context context) {
+ private static final int AID_STATSD = 1066;
+
+ static void enforceStatsdCallingUid() {
if (Binder.getCallingPid() == Process.myPid()) {
return;
}
- context.enforceCallingPermission(android.Manifest.permission.STATSCOMPANION, null);
+ if (Binder.getCallingUid() != AID_STATSD) {
+ throw new SecurityException("Not allowed to access StatsCompanion");
+ }
}
/**
@@ -114,7 +118,7 @@ public class StatsCompanion {
@Override
public void sendDataBroadcast(long lastReportTimeNs) {
- enforceStatsCompanionPermission(mContext);
+ enforceStatsdCallingUid();
Intent intent = new Intent();
intent.putExtra(EXTRA_LAST_REPORT_TIME, lastReportTimeNs);
try {
@@ -126,7 +130,7 @@ public class StatsCompanion {
@Override
public void sendActiveConfigsChangedBroadcast(long[] configIds) {
- enforceStatsCompanionPermission(mContext);
+ enforceStatsdCallingUid();
Intent intent = new Intent();
intent.putExtra(StatsManager.EXTRA_STATS_ACTIVE_CONFIG_KEYS, configIds);
try {
@@ -142,7 +146,7 @@ public class StatsCompanion {
@Override
public void sendSubscriberBroadcast(long configUid, long configId, long subscriptionId,
long subscriptionRuleId, String[] cookies, StatsDimensionsValue dimensionsValue) {
- enforceStatsCompanionPermission(mContext);
+ enforceStatsdCallingUid();
Intent intent =
new Intent()
.putExtra(StatsManager.EXTRA_STATS_CONFIG_UID, configUid)
diff --git a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
index 1e92826ee8a0..a735cb8f14af 100644
--- a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
+++ b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
@@ -398,7 +398,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
@Override // Binder call
public void setAnomalyAlarm(long timestampMs) {
- StatsCompanion.enforceStatsCompanionPermission(mContext);
+ StatsCompanion.enforceStatsdCallingUid();
if (DEBUG) Slog.d(TAG, "Setting anomaly alarm for " + timestampMs);
final long callingToken = Binder.clearCallingIdentity();
try {
@@ -414,7 +414,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
@Override // Binder call
public void cancelAnomalyAlarm() {
- StatsCompanion.enforceStatsCompanionPermission(mContext);
+ StatsCompanion.enforceStatsdCallingUid();
if (DEBUG) Slog.d(TAG, "Cancelling anomaly alarm");
final long callingToken = Binder.clearCallingIdentity();
try {
@@ -426,7 +426,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
@Override // Binder call
public void setAlarmForSubscriberTriggering(long timestampMs) {
- StatsCompanion.enforceStatsCompanionPermission(mContext);
+ StatsCompanion.enforceStatsdCallingUid();
if (DEBUG) {
Slog.d(TAG,
"Setting periodic alarm in about " + (timestampMs
@@ -445,7 +445,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
@Override // Binder call
public void cancelAlarmForSubscriberTriggering() {
- StatsCompanion.enforceStatsCompanionPermission(mContext);
+ StatsCompanion.enforceStatsdCallingUid();
if (DEBUG) {
Slog.d(TAG, "Cancelling periodic alarm");
}
@@ -459,7 +459,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
@Override // Binder call
public void setPullingAlarm(long nextPullTimeMs) {
- StatsCompanion.enforceStatsCompanionPermission(mContext);
+ StatsCompanion.enforceStatsdCallingUid();
if (DEBUG) {
Slog.d(TAG, "Setting pulling alarm in about "
+ (nextPullTimeMs - SystemClock.elapsedRealtime()));
@@ -477,7 +477,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
@Override // Binder call
public void cancelPullingAlarm() {
- StatsCompanion.enforceStatsCompanionPermission(mContext);
+ StatsCompanion.enforceStatsdCallingUid();
if (DEBUG) {
Slog.d(TAG, "Cancelling pulling alarm");
}
@@ -491,7 +491,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
@Override // Binder call
public void statsdReady() {
- StatsCompanion.enforceStatsCompanionPermission(mContext);
+ StatsCompanion.enforceStatsdCallingUid();
if (DEBUG) {
Slog.d(TAG, "learned that statsdReady");
}
@@ -503,7 +503,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
@Override
public void triggerUidSnapshot() {
- StatsCompanion.enforceStatsCompanionPermission(mContext);
+ StatsCompanion.enforceStatsdCallingUid();
synchronized (sStatsdLock) {
final long token = Binder.clearCallingIdentity();
try {
@@ -516,6 +516,11 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
}
}
+ @Override // Binder call
+ public boolean checkPermission(String permission, int pid, int uid) {
+ StatsCompanion.enforceStatsdCallingUid();
+ return mContext.checkPermission(permission, pid, uid) == PackageManager.PERMISSION_GRANTED;
+ }
// Statsd related code
diff --git a/apex/statsd/service/java/com/android/server/stats/StatsManagerService.java b/apex/statsd/service/java/com/android/server/stats/StatsManagerService.java
index 04d8b006f51d..c1dc584b89b4 100644
--- a/apex/statsd/service/java/com/android/server/stats/StatsManagerService.java
+++ b/apex/statsd/service/java/com/android/server/stats/StatsManagerService.java
@@ -171,8 +171,8 @@ public class StatsManagerService extends IStatsManagerService.Stub {
@Override
public void registerPullAtomCallback(int atomTag, long coolDownNs, long timeoutNs,
int[] additiveFields, IPullAtomCallback pullerCallback) {
+ enforceRegisterStatsPullAtomPermission();
int callingUid = Binder.getCallingUid();
- final long token = Binder.clearCallingIdentity();
PullerKey key = new PullerKey(callingUid, atomTag);
PullerValue val = new PullerValue(coolDownNs, timeoutNs, additiveFields, pullerCallback);
@@ -187,6 +187,7 @@ public class StatsManagerService extends IStatsManagerService.Stub {
return;
}
+ final long token = Binder.clearCallingIdentity();
try {
statsd.registerPullAtomCallback(
callingUid, atomTag, coolDownNs, timeoutNs, additiveFields, pullerCallback);
@@ -199,8 +200,8 @@ public class StatsManagerService extends IStatsManagerService.Stub {
@Override
public void unregisterPullAtomCallback(int atomTag) {
+ enforceRegisterStatsPullAtomPermission();
int callingUid = Binder.getCallingUid();
- final long token = Binder.clearCallingIdentity();
PullerKey key = new PullerKey(callingUid, atomTag);
// Always remove the puller from StatsManagerService even if statsd is down. When statsd
@@ -214,6 +215,7 @@ public class StatsManagerService extends IStatsManagerService.Stub {
return;
}
+ final long token = Binder.clearCallingIdentity();
try {
statsd.unregisterPullAtomCallback(callingUid, atomTag);
} catch (RemoteException e) {
@@ -502,6 +504,13 @@ public class StatsManagerService extends IStatsManagerService.Stub {
}
}
+ private void enforceRegisterStatsPullAtomPermission() {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.REGISTER_STATS_PULL_ATOM,
+ "Need REGISTER_STATS_PULL_ATOM permission.");
+ }
+
+
/**
* Clients should call this if blocking until statsd to be ready is desired
*
diff --git a/apex/statsd/tests/libstatspull/jni/stats_pull_helper.cpp b/apex/statsd/tests/libstatspull/jni/stats_pull_helper.cpp
index e4ab823f345a..22daa8eb6b3e 100644
--- a/apex/statsd/tests/libstatspull/jni/stats_pull_helper.cpp
+++ b/apex/statsd/tests/libstatspull/jni/stats_pull_helper.cpp
@@ -46,15 +46,15 @@ static void init() {
}
}
-static status_pull_atom_return_t pullAtomCallback(int32_t atomTag, pulled_stats_event_list* data,
- void* /*cookie*/) {
+static AStatsManager_PullAtomCallbackReturn pullAtomCallback(int32_t atomTag, AStatsEventList* data,
+ void* /*cookie*/) {
sNumPulls++;
sleep_for(std::chrono::milliseconds(sLatencyMillis));
for (int i = 0; i < sAtomsPerPull; i++) {
- stats_event* event = add_stats_event_to_pull_data(data);
- stats_event_set_atom_id(event, atomTag);
- stats_event_write_int64(event, (int64_t) sNumPulls);
- stats_event_build(event);
+ AStatsEvent* event = AStatsEventList_addStatsEvent(data);
+ AStatsEvent_setAtomId(event, atomTag);
+ AStatsEvent_writeInt64(event, (int64_t) sNumPulls);
+ AStatsEvent_build(event);
}
return sPullReturnVal;
}
@@ -71,11 +71,12 @@ Java_com_android_internal_os_statsd_libstats_LibStatsPullTests_registerStatsPull
sLatencyMillis = latencyMillis;
sAtomsPerPull = atomsPerPull;
sNumPulls = 0;
- pull_atom_metadata metadata = {.cool_down_ns = coolDownNs,
- .timeout_ns = timeoutNs,
- .additive_fields = nullptr,
- .additive_fields_size = 0};
- register_stats_pull_atom_callback(sAtomTag, &pullAtomCallback, &metadata, nullptr);
+ AStatsManager_PullAtomMetadata* metadata = AStatsManager_PullAtomMetadata_obtain();
+ AStatsManager_PullAtomMetadata_setCoolDownNs(metadata, coolDownNs);
+ AStatsManager_PullAtomMetadata_setTimeoutNs(metadata, timeoutNs);
+
+ AStatsManager_registerPullAtomCallback(sAtomTag, &pullAtomCallback, metadata, nullptr);
+ AStatsManager_PullAtomMetadata_release(metadata);
}
extern "C"
@@ -83,6 +84,6 @@ JNIEXPORT void JNICALL
Java_com_android_internal_os_statsd_libstats_LibStatsPullTests_unregisterStatsPuller(
JNIEnv* /*env*/, jobject /* this */, jint /*atomTag*/)
{
- unregister_stats_pull_atom_callback(sAtomTag);
+ AStatsManager_unregisterPullAtomCallback(sAtomTag);
}
-} // namespace \ No newline at end of file
+} // namespace
diff --git a/apex/statsd/tests/libstatspull/src/com/android/internal/os/statsd/libstats/LibStatsPullTests.java b/apex/statsd/tests/libstatspull/src/com/android/internal/os/statsd/libstats/LibStatsPullTests.java
index dbd636d2e95c..e119b4c47604 100644
--- a/apex/statsd/tests/libstatspull/src/com/android/internal/os/statsd/libstats/LibStatsPullTests.java
+++ b/apex/statsd/tests/libstatspull/src/com/android/internal/os/statsd/libstats/LibStatsPullTests.java
@@ -71,7 +71,6 @@ public class LibStatsPullTests {
*/
@Before
public void setup() {
-// Debug.waitForDebugger();
mContext = InstrumentationRegistry.getTargetContext();
assertThat(InstrumentationRegistry.getInstrumentation()).isNotNull();
sPullReturnValue = StatsManager.PULL_SUCCESS;
diff --git a/api/current.txt b/api/current.txt
index 4533e37aba84..a5a51d66375d 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -29,7 +29,7 @@ package android {
field public static final String BIND_CARRIER_MESSAGING_CLIENT_SERVICE = "android.permission.BIND_CARRIER_MESSAGING_CLIENT_SERVICE";
field @Deprecated public static final String BIND_CARRIER_MESSAGING_SERVICE = "android.permission.BIND_CARRIER_MESSAGING_SERVICE";
field public static final String BIND_CARRIER_SERVICES = "android.permission.BIND_CARRIER_SERVICES";
- field public static final String BIND_CHOOSER_TARGET_SERVICE = "android.permission.BIND_CHOOSER_TARGET_SERVICE";
+ field @Deprecated public static final String BIND_CHOOSER_TARGET_SERVICE = "android.permission.BIND_CHOOSER_TARGET_SERVICE";
field public static final String BIND_CONDITION_PROVIDER_SERVICE = "android.permission.BIND_CONDITION_PROVIDER_SERVICE";
field public static final String BIND_DEVICE_ADMIN = "android.permission.BIND_DEVICE_ADMIN";
field public static final String BIND_DREAM_SERVICE = "android.permission.BIND_DREAM_SERVICE";
@@ -1876,6 +1876,7 @@ package android {
ctor public R.id();
field public static final int accessibilityActionContextClick = 16908348; // 0x102003c
field public static final int accessibilityActionHideTooltip = 16908357; // 0x1020045
+ field public static final int accessibilityActionImeEnter = 16908372; // 0x1020054
field public static final int accessibilityActionMoveWindow = 16908354; // 0x1020042
field public static final int accessibilityActionPageDown = 16908359; // 0x1020047
field public static final int accessibilityActionPageLeft = 16908360; // 0x1020048
@@ -2872,13 +2873,28 @@ package android.accessibilityservice {
method public void onSystemActionsChanged();
method public final boolean performGlobalAction(int);
method public final void setServiceInfo(android.accessibilityservice.AccessibilityServiceInfo);
- method public boolean takeScreenshot(int, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.graphics.Bitmap>);
+ method public boolean takeScreenshot(int, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.accessibilityservice.AccessibilityService.ScreenshotResult>);
field public static final int GESTURE_2_FINGER_DOUBLE_TAP = 20; // 0x14
field public static final int GESTURE_2_FINGER_SINGLE_TAP = 19; // 0x13
+ field public static final int GESTURE_2_FINGER_SWIPE_DOWN = 26; // 0x1a
+ field public static final int GESTURE_2_FINGER_SWIPE_LEFT = 27; // 0x1b
+ field public static final int GESTURE_2_FINGER_SWIPE_RIGHT = 28; // 0x1c
+ field public static final int GESTURE_2_FINGER_SWIPE_UP = 25; // 0x19
field public static final int GESTURE_2_FINGER_TRIPLE_TAP = 21; // 0x15
field public static final int GESTURE_3_FINGER_DOUBLE_TAP = 23; // 0x17
field public static final int GESTURE_3_FINGER_SINGLE_TAP = 22; // 0x16
+ field public static final int GESTURE_3_FINGER_SWIPE_DOWN = 30; // 0x1e
+ field public static final int GESTURE_3_FINGER_SWIPE_LEFT = 31; // 0x1f
+ field public static final int GESTURE_3_FINGER_SWIPE_RIGHT = 32; // 0x20
+ field public static final int GESTURE_3_FINGER_SWIPE_UP = 29; // 0x1d
field public static final int GESTURE_3_FINGER_TRIPLE_TAP = 24; // 0x18
+ field public static final int GESTURE_4_FINGER_DOUBLE_TAP = 38; // 0x26
+ field public static final int GESTURE_4_FINGER_SINGLE_TAP = 37; // 0x25
+ field public static final int GESTURE_4_FINGER_SWIPE_DOWN = 34; // 0x22
+ field public static final int GESTURE_4_FINGER_SWIPE_LEFT = 35; // 0x23
+ field public static final int GESTURE_4_FINGER_SWIPE_RIGHT = 36; // 0x24
+ field public static final int GESTURE_4_FINGER_SWIPE_UP = 33; // 0x21
+ field public static final int GESTURE_4_FINGER_TRIPLE_TAP = 39; // 0x27
field public static final int GESTURE_DOUBLE_TAP = 17; // 0x11
field public static final int GESTURE_DOUBLE_TAP_AND_HOLD = 18; // 0x12
field public static final int GESTURE_SWIPE_DOWN = 2; // 0x2
@@ -2936,6 +2952,12 @@ package android.accessibilityservice {
method public void onMagnificationChanged(@NonNull android.accessibilityservice.AccessibilityService.MagnificationController, @NonNull android.graphics.Region, float, float, float);
}
+ public static final class AccessibilityService.ScreenshotResult {
+ method @Nullable public android.graphics.ColorSpace getColorSpace();
+ method @NonNull public android.hardware.HardwareBuffer getHardwareBuffer();
+ method public long getTimestamp();
+ }
+
public static final class AccessibilityService.SoftKeyboardController {
method public void addOnShowModeChangedListener(@NonNull android.accessibilityservice.AccessibilityService.SoftKeyboardController.OnShowModeChangedListener);
method public void addOnShowModeChangedListener(@NonNull android.accessibilityservice.AccessibilityService.SoftKeyboardController.OnShowModeChangedListener, @Nullable android.os.Handler);
@@ -3841,7 +3863,7 @@ package android.app {
method public void onPerformDirectAction(@NonNull String, @NonNull android.os.Bundle, @NonNull android.os.CancellationSignal, @NonNull java.util.function.Consumer<android.os.Bundle>);
method public void onPictureInPictureModeChanged(boolean, android.content.res.Configuration);
method @Deprecated public void onPictureInPictureModeChanged(boolean);
- method public void onPictureInPictureRequested();
+ method public boolean onPictureInPictureRequested();
method @CallSuper protected void onPostCreate(@Nullable android.os.Bundle);
method public void onPostCreate(@Nullable android.os.Bundle, @Nullable android.os.PersistableBundle);
method @CallSuper protected void onPostResume();
@@ -5910,6 +5932,7 @@ package android.app {
method public long[] getVibrationPattern();
method public boolean hasUserSetImportance();
method public boolean hasUserSetSound();
+ method public boolean isImportantConversation();
method public void setAllowBubbles(boolean);
method public void setBypassDnd(boolean);
method public void setConversationId(@Nullable String, @Nullable String);
@@ -6022,14 +6045,19 @@ package android.app {
public static class NotificationManager.Policy implements android.os.Parcelable {
ctor public NotificationManager.Policy(int, int, int);
ctor public NotificationManager.Policy(int, int, int, int);
+ ctor public NotificationManager.Policy(int, int, int, int, int);
method public int describeContents();
method public static String priorityCategoriesToString(int);
method public static String prioritySendersToString(int);
method public static String suppressedEffectsToString(int);
method public void writeToParcel(android.os.Parcel, int);
+ field public static final int CONVERSATION_SENDERS_ANYONE = 1; // 0x1
+ field public static final int CONVERSATION_SENDERS_IMPORTANT = 2; // 0x2
+ field public static final int CONVERSATION_SENDERS_NONE = 3; // 0x3
field @NonNull public static final android.os.Parcelable.Creator<android.app.NotificationManager.Policy> CREATOR;
field public static final int PRIORITY_CATEGORY_ALARMS = 32; // 0x20
field public static final int PRIORITY_CATEGORY_CALLS = 8; // 0x8
+ field public static final int PRIORITY_CATEGORY_CONVERSATIONS = 256; // 0x100
field public static final int PRIORITY_CATEGORY_EVENTS = 2; // 0x2
field public static final int PRIORITY_CATEGORY_MEDIA = 64; // 0x40
field public static final int PRIORITY_CATEGORY_MESSAGES = 4; // 0x4
@@ -6050,6 +6078,7 @@ package android.app {
field public static final int SUPPRESSED_EFFECT_STATUS_BAR = 32; // 0x20
field public final int priorityCallSenders;
field public final int priorityCategories;
+ field public final int priorityConversationSenders;
field public final int priorityMessageSenders;
field public final int suppressedVisualEffects;
}
@@ -6787,7 +6816,7 @@ package android.app.admin {
ctor public DevicePolicyKeyguardService();
method @Nullable public void dismiss();
method @Nullable public final android.os.IBinder onBind(@Nullable android.content.Intent);
- method @Nullable public android.view.SurfaceControl onSurfaceReady(@Nullable android.os.IBinder);
+ method @Nullable public android.view.SurfaceControlViewHost.SurfacePackage onSurfaceReady(@Nullable android.os.IBinder);
}
public class DevicePolicyManager {
@@ -7131,6 +7160,7 @@ package android.app.admin {
field public static final int KEYGUARD_DISABLE_UNREDACTED_NOTIFICATIONS = 8; // 0x8
field public static final int KEYGUARD_DISABLE_WIDGETS_ALL = 1; // 0x1
field public static final int LEAVE_ALL_SYSTEM_APPS_ENABLED = 16; // 0x10
+ field public static final int LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK = 64; // 0x40
field public static final int LOCK_TASK_FEATURE_GLOBAL_ACTIONS = 16; // 0x10
field public static final int LOCK_TASK_FEATURE_HOME = 4; // 0x4
field public static final int LOCK_TASK_FEATURE_KEYGUARD = 32; // 0x20
@@ -8631,7 +8661,7 @@ package android.bluetooth {
field public static final String ACTION_ACL_CONNECTED = "android.bluetooth.device.action.ACL_CONNECTED";
field public static final String ACTION_ACL_DISCONNECTED = "android.bluetooth.device.action.ACL_DISCONNECTED";
field public static final String ACTION_ACL_DISCONNECT_REQUESTED = "android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED";
- field public static final String ACTION_ALIAS_CHANGED = "android.bluetooth.action.ALIAS_CHANGED";
+ field public static final String ACTION_ALIAS_CHANGED = "android.bluetooth.device.action.ALIAS_CHANGED";
field public static final String ACTION_BOND_STATE_CHANGED = "android.bluetooth.device.action.BOND_STATE_CHANGED";
field public static final String ACTION_CLASS_CHANGED = "android.bluetooth.device.action.CLASS_CHANGED";
field public static final String ACTION_FOUND = "android.bluetooth.device.action.FOUND";
@@ -9990,7 +10020,7 @@ package android.content {
method public abstract android.content.Context createDisplayContext(@NonNull android.view.Display);
method @NonNull public android.content.Context createFeatureContext(@Nullable String);
method public abstract android.content.Context createPackageContext(String, int) throws android.content.pm.PackageManager.NameNotFoundException;
- method @NonNull public android.content.Context createWindowContext(int);
+ method @NonNull public android.content.Context createWindowContext(int, @Nullable android.os.Bundle);
method public abstract String[] databaseList();
method public abstract boolean deleteDatabase(String);
method public abstract boolean deleteFile(String);
@@ -14852,10 +14882,11 @@ package android.graphics {
method public void offset(int, int);
method public void set(@NonNull android.graphics.Outline);
method public void setAlpha(@FloatRange(from=0.0, to=1.0) float);
- method public void setConvexPath(@NonNull android.graphics.Path);
+ method @Deprecated public void setConvexPath(@NonNull android.graphics.Path);
method public void setEmpty();
method public void setOval(int, int, int, int);
method public void setOval(@NonNull android.graphics.Rect);
+ method public void setPath(@NonNull android.graphics.Path);
method public void setRect(int, int, int, int);
method public void setRect(@NonNull android.graphics.Rect);
method public void setRoundRect(int, int, int, int, float);
@@ -26729,6 +26760,7 @@ package android.media {
method public int getVolume();
method public int getVolumeHandling();
method public int getVolumeMax();
+ method public boolean isSystemRoute();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field public static final int CONNECTION_STATE_CONNECTED = 2; // 0x2
field public static final int CONNECTION_STATE_CONNECTING = 1; // 0x1
@@ -26780,7 +26812,6 @@ package android.media {
method public abstract void onSelectRoute(@NonNull String, @NonNull String);
method public abstract void onSetVolume(@NonNull String, int);
method public abstract void onTransferToRoute(@NonNull String, @NonNull String);
- method public abstract void onUpdateVolume(@NonNull String, int);
field public static final long REQUEST_ID_UNKNOWN = 0L; // 0x0L
field public static final String SERVICE_INTERFACE = "android.media.MediaRoute2ProviderService";
}
@@ -28753,6 +28784,7 @@ package android.media.tv {
field public static final String COLUMN_DESCRIPTION = "description";
field public static final String COLUMN_DISPLAY_NAME = "display_name";
field public static final String COLUMN_DISPLAY_NUMBER = "display_number";
+ field public static final String COLUMN_GLOBAL_CONTENT_ID = "global_content_id";
field public static final String COLUMN_INPUT_ID = "input_id";
field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
@@ -28778,6 +28810,7 @@ package android.media.tv {
field public static final String SERVICE_TYPE_AUDIO_VIDEO = "SERVICE_TYPE_AUDIO_VIDEO";
field public static final String SERVICE_TYPE_OTHER = "SERVICE_TYPE_OTHER";
field public static final String TYPE_1SEG = "TYPE_1SEG";
+ field public static final String TYPE_ATSC3_T = "TYPE_ATSC3_T";
field public static final String TYPE_ATSC_C = "TYPE_ATSC_C";
field public static final String TYPE_ATSC_M_H = "TYPE_ATSC_M_H";
field public static final String TYPE_ATSC_T = "TYPE_ATSC_T";
@@ -28871,6 +28904,7 @@ package android.media.tv {
field public static final String COLUMN_SEASON_TITLE = "season_title";
field public static final String COLUMN_SERIES_ID = "series_id";
field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
+ field public static final String COLUMN_SPLIT_ID = "split_id";
field public static final String COLUMN_STARTING_PRICE = "starting_price";
field public static final String COLUMN_THUMBNAIL_ASPECT_RATIO = "poster_thumbnail_aspect_ratio";
field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
@@ -28918,6 +28952,8 @@ package android.media.tv {
field public static final String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
field @Deprecated public static final String COLUMN_EPISODE_NUMBER = "episode_number";
field public static final String COLUMN_EPISODE_TITLE = "episode_title";
+ field public static final String COLUMN_EVENT_ID = "event_id";
+ field public static final String COLUMN_GLOBAL_CONTENT_ID = "global_content_id";
field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
field public static final String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
@@ -28934,6 +28970,7 @@ package android.media.tv {
field public static final String COLUMN_SEASON_TITLE = "season_title";
field public static final String COLUMN_SERIES_ID = "series_id";
field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
+ field public static final String COLUMN_SPLIT_ID = "split_id";
field public static final String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
field public static final String COLUMN_TITLE = "title";
@@ -28999,6 +29036,7 @@ package android.media.tv {
field public static final String COLUMN_SEASON_TITLE = "season_title";
field public static final String COLUMN_SERIES_ID = "series_id";
field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
+ field public static final String COLUMN_SPLIT_ID = "split_id";
field public static final String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
field public static final String COLUMN_TITLE = "title";
@@ -29059,6 +29097,7 @@ package android.media.tv {
field public static final String COLUMN_SEASON_TITLE = "season_title";
field public static final String COLUMN_SERIES_ID = "series_id";
field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
+ field public static final String COLUMN_SPLIT_ID = "split_id";
field public static final String COLUMN_STARTING_PRICE = "starting_price";
field public static final String COLUMN_THUMBNAIL_ASPECT_RATIO = "poster_thumbnail_aspect_ratio";
field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
@@ -30100,7 +30139,7 @@ package android.net {
method @NonNull public android.net.NetworkCapabilities setLinkDownstreamBandwidthKbps(int);
method @NonNull public android.net.NetworkCapabilities setLinkUpstreamBandwidthKbps(int);
method @NonNull public android.net.NetworkCapabilities setNetworkSpecifier(@NonNull android.net.NetworkSpecifier);
- method public void setOwnerUid(int);
+ method @NonNull public android.net.NetworkCapabilities setOwnerUid(int);
method @NonNull public android.net.NetworkCapabilities setSignalStrength(int);
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkCapabilities> CREATOR;
@@ -31129,11 +31168,6 @@ package android.net.wifi {
field @Deprecated public static final String[] strings;
}
- @Deprecated public static class WifiConfiguration.SuiteBCipher {
- field @Deprecated public static final int ECDHE_ECDSA = 0; // 0x0
- field @Deprecated public static final int ECDHE_RSA = 1; // 0x1
- }
-
public class WifiEnterpriseConfig implements android.os.Parcelable {
ctor public WifiEnterpriseConfig();
ctor public WifiEnterpriseConfig(android.net.wifi.WifiEnterpriseConfig);
@@ -31288,7 +31322,7 @@ package android.net.wifi {
field public static final String ACTION_PICK_WIFI_NETWORK = "android.net.wifi.PICK_WIFI_NETWORK";
field public static final String ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE = "android.net.wifi.action.REQUEST_SCAN_ALWAYS_AVAILABLE";
field public static final String ACTION_WIFI_NETWORK_SUGGESTION_POST_CONNECTION = "android.net.wifi.action.WIFI_NETWORK_SUGGESTION_POST_CONNECTION";
- field public static final String ACTION_WIFI_SCAN_AVAILABLE = "android.net.wifi.action.WIFI_SCAN_AVAILABLE";
+ field public static final String ACTION_WIFI_SCAN_AVAILABILITY_CHANGED = "android.net.wifi.action.WIFI_SCAN_AVAILABILITY_CHANGED";
field @Deprecated public static final int ERROR_AUTHENTICATING = 1; // 0x1
field @Deprecated public static final String EXTRA_BSSID = "bssid";
field public static final String EXTRA_NETWORK_INFO = "networkInfo";
@@ -31421,7 +31455,7 @@ package android.net.wifi {
method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setIsAppInteractionRequired(boolean);
method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setIsEnhancedOpen(boolean);
method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setIsHiddenSsid(boolean);
- method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setIsInitialAutoJoinEnabled(boolean);
+ method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setIsInitialAutojoinEnabled(boolean);
method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setIsMetered(boolean);
method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setIsUserInteractionRequired(boolean);
method @NonNull public android.net.wifi.WifiNetworkSuggestion.Builder setPasspointConfig(@NonNull android.net.wifi.hotspot2.PasspointConfiguration);
@@ -31616,6 +31650,7 @@ package android.net.wifi.hotspot2 {
method public android.net.wifi.hotspot2.pps.Credential getCredential();
method public android.net.wifi.hotspot2.pps.HomeSp getHomeSp();
method public long getSubscriptionExpirationTimeInMillis();
+ method @NonNull public String getUniqueId() throws java.lang.IllegalStateException;
method public boolean isOsuProvisioned();
method public void setCredential(android.net.wifi.hotspot2.pps.Credential);
method public void setHomeSp(android.net.wifi.hotspot2.pps.HomeSp);
@@ -31796,8 +31831,8 @@ package android.net.wifi.p2p {
method public boolean isGroupOwner();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.p2p.WifiP2pGroup> CREATOR;
- field public static final int PERSISTENT_NET_ID = -2; // 0xfffffffe
- field public static final int TEMPORARY_NET_ID = -1; // 0xffffffff
+ field public static final int NETWORK_ID_PERSISTENT = -2; // 0xfffffffe
+ field public static final int NETWORK_ID_TEMPORARY = -1; // 0xffffffff
}
public class WifiP2pInfo implements android.os.Parcelable {
@@ -35665,6 +35700,7 @@ package android.os {
field public static final String INCREMENTAL;
field public static final int PREVIEW_SDK_INT;
field public static final String RELEASE;
+ field @NonNull public static final String RELEASE_OR_CODENAME;
field @Deprecated public static final String SDK;
field public static final int SDK_INT;
field public static final String SECURITY_PATCH;
@@ -36944,7 +36980,7 @@ package android.os {
ctor public VibrationAttributes.Builder();
ctor public VibrationAttributes.Builder(@Nullable android.os.VibrationAttributes);
method @NonNull public android.os.VibrationAttributes build();
- method @NonNull public android.os.VibrationAttributes.Builder replaceFlags(int);
+ method @NonNull public android.os.VibrationAttributes.Builder setFlags(int, int);
method @NonNull public android.os.VibrationAttributes.Builder setUsage(int);
}
@@ -39559,7 +39595,7 @@ package android.provider {
protected static interface ContactsContract.RawContactsColumns {
field public static final String ACCOUNT_TYPE_AND_DATA_SET = "account_type_and_data_set";
field public static final String AGGREGATION_MODE = "aggregation_mode";
- field @Deprecated public static final String BACKUP_ID = "backup_id";
+ field public static final String BACKUP_ID = "backup_id";
field public static final String CONTACT_ID = "contact_id";
field public static final String DATA_SET = "data_set";
field public static final String DELETED = "deleted";
@@ -43169,25 +43205,25 @@ package android.service.carrier {
package android.service.chooser {
- public final class ChooserTarget implements android.os.Parcelable {
- ctor public ChooserTarget(CharSequence, android.graphics.drawable.Icon, float, android.content.ComponentName, @Nullable android.os.Bundle);
- method public int describeContents();
- method public android.content.ComponentName getComponentName();
- method public android.graphics.drawable.Icon getIcon();
- method public android.os.Bundle getIntentExtras();
- method public float getScore();
- method public CharSequence getTitle();
- method public void writeToParcel(android.os.Parcel, int);
- field @NonNull public static final android.os.Parcelable.Creator<android.service.chooser.ChooserTarget> CREATOR;
+ @Deprecated public final class ChooserTarget implements android.os.Parcelable {
+ ctor @Deprecated public ChooserTarget(CharSequence, android.graphics.drawable.Icon, float, android.content.ComponentName, @Nullable android.os.Bundle);
+ method @Deprecated public int describeContents();
+ method @Deprecated public android.content.ComponentName getComponentName();
+ method @Deprecated public android.graphics.drawable.Icon getIcon();
+ method @Deprecated public android.os.Bundle getIntentExtras();
+ method @Deprecated public float getScore();
+ method @Deprecated public CharSequence getTitle();
+ method @Deprecated public void writeToParcel(android.os.Parcel, int);
+ field @Deprecated @NonNull public static final android.os.Parcelable.Creator<android.service.chooser.ChooserTarget> CREATOR;
}
- public abstract class ChooserTargetService extends android.app.Service {
- ctor public ChooserTargetService();
- method public android.os.IBinder onBind(android.content.Intent);
- method public abstract java.util.List<android.service.chooser.ChooserTarget> onGetChooserTargets(android.content.ComponentName, android.content.IntentFilter);
- field public static final String BIND_PERMISSION = "android.permission.BIND_CHOOSER_TARGET_SERVICE";
- field public static final String META_DATA_NAME = "android.service.chooser.chooser_target_service";
- field public static final String SERVICE_INTERFACE = "android.service.chooser.ChooserTargetService";
+ @Deprecated public abstract class ChooserTargetService extends android.app.Service {
+ ctor @Deprecated public ChooserTargetService();
+ method @Deprecated public android.os.IBinder onBind(android.content.Intent);
+ method @Deprecated public abstract java.util.List<android.service.chooser.ChooserTarget> onGetChooserTargets(android.content.ComponentName, android.content.IntentFilter);
+ field @Deprecated public static final String BIND_PERMISSION = "android.permission.BIND_CHOOSER_TARGET_SERVICE";
+ field @Deprecated public static final String META_DATA_NAME = "android.service.chooser.chooser_target_service";
+ field @Deprecated public static final String SERVICE_INTERFACE = "android.service.chooser.ChooserTargetService";
}
}
@@ -43769,12 +43805,14 @@ package android.service.notification {
method public int getPriorityCallSenders();
method public int getPriorityCategoryAlarms();
method public int getPriorityCategoryCalls();
+ method public int getPriorityCategoryConversations();
method public int getPriorityCategoryEvents();
method public int getPriorityCategoryMedia();
method public int getPriorityCategoryMessages();
method public int getPriorityCategoryReminders();
method public int getPriorityCategoryRepeatCallers();
method public int getPriorityCategorySystem();
+ method public int getPriorityConversationSenders();
method public int getPriorityMessageSenders();
method public int getVisualEffectAmbient();
method public int getVisualEffectBadge();
@@ -43784,6 +43822,10 @@ package android.service.notification {
method public int getVisualEffectPeek();
method public int getVisualEffectStatusBar();
method public void writeToParcel(android.os.Parcel, int);
+ field public static final int CONVERSATION_SENDERS_ANYONE = 1; // 0x1
+ field public static final int CONVERSATION_SENDERS_IMPORTANT = 2; // 0x2
+ field public static final int CONVERSATION_SENDERS_NONE = 3; // 0x3
+ field public static final int CONVERSATION_SENDERS_UNSET = 0; // 0x0
field @NonNull public static final android.os.Parcelable.Creator<android.service.notification.ZenPolicy> CREATOR;
field public static final int PEOPLE_TYPE_ANYONE = 1; // 0x1
field public static final int PEOPLE_TYPE_CONTACTS = 2; // 0x2
@@ -43800,6 +43842,7 @@ package android.service.notification {
method @NonNull public android.service.notification.ZenPolicy.Builder allowAlarms(boolean);
method @NonNull public android.service.notification.ZenPolicy.Builder allowAllSounds();
method @NonNull public android.service.notification.ZenPolicy.Builder allowCalls(int);
+ method @NonNull public android.service.notification.ZenPolicy.Builder allowConversations(int);
method @NonNull public android.service.notification.ZenPolicy.Builder allowEvents(boolean);
method @NonNull public android.service.notification.ZenPolicy.Builder allowMedia(boolean);
method @NonNull public android.service.notification.ZenPolicy.Builder allowMessages(int);
@@ -44032,8 +44075,8 @@ package android.service.voice {
}
public static final class AlwaysOnHotwordDetector.ModelParamRange {
- method public int end();
- method public int start();
+ method public int getEnd();
+ method public int getStart();
}
public class VoiceInteractionService extends android.app.Service {
@@ -46381,7 +46424,6 @@ package android.telephony {
public final class BarringInfo implements android.os.Parcelable {
method public int describeContents();
method @NonNull public android.telephony.BarringInfo.BarringServiceInfo getBarringServiceInfo(int);
- method public boolean isServiceBarred(int);
method public void writeToParcel(@NonNull android.os.Parcel, int);
field public static final int BARRING_SERVICE_TYPE_CS_FALLBACK = 5; // 0x5
field public static final int BARRING_SERVICE_TYPE_CS_SERVICE = 0; // 0x0
@@ -47291,6 +47333,7 @@ package android.telephony {
public final class PreciseDataConnectionState implements android.os.Parcelable {
method public int describeContents();
+ method @Nullable public android.telephony.data.ApnSetting getApnSetting();
method public int getLastCauseCode();
method @Nullable public android.net.LinkProperties getLinkProperties();
method public int getNetworkType();
@@ -51776,7 +51819,7 @@ package android.view {
method public int getFlags();
method public android.view.Display.HdrCapabilities getHdrCapabilities();
method @Deprecated public int getHeight();
- method public void getMetrics(android.util.DisplayMetrics);
+ method @Deprecated public void getMetrics(android.util.DisplayMetrics);
method public android.view.Display.Mode getMode();
method public String getName();
method @Deprecated public int getOrientation();
@@ -51785,10 +51828,10 @@ package android.view {
method public long getPresentationDeadlineNanos();
method public void getRealMetrics(android.util.DisplayMetrics);
method public void getRealSize(android.graphics.Point);
- method public void getRectSize(android.graphics.Rect);
+ method @Deprecated public void getRectSize(android.graphics.Rect);
method public float getRefreshRate();
method public int getRotation();
- method public void getSize(android.graphics.Point);
+ method @Deprecated public void getSize(android.graphics.Point);
method public int getState();
method public android.view.Display.Mode[] getSupportedModes();
method @Deprecated public float[] getSupportedRefreshRates();
@@ -54811,7 +54854,6 @@ package android.view {
method public final void removeOnFrameMetricsAvailableListener(android.view.Window.OnFrameMetricsAvailableListener);
method public boolean requestFeature(int);
method @NonNull public final <T extends android.view.View> T requireViewById(@IdRes int);
- method public void resetOnContentApplyWindowInsetsListener();
method public abstract void restoreHierarchyState(android.os.Bundle);
method public abstract android.os.Bundle saveHierarchyState();
method public void setAllowEnterTransitionOverlap(boolean);
@@ -54829,6 +54871,7 @@ package android.view {
method public abstract void setContentView(android.view.View);
method public abstract void setContentView(android.view.View, android.view.ViewGroup.LayoutParams);
method public abstract void setDecorCaptionShade(int);
+ method public void setDecorFitsSystemWindows(boolean);
method protected void setDefaultWindowFormat(int);
method public void setDimAmount(float);
method public void setElevation(float);
@@ -54850,7 +54893,6 @@ package android.view {
method public abstract void setNavigationBarColor(@ColorInt int);
method public void setNavigationBarContrastEnforced(boolean);
method public void setNavigationBarDividerColor(@ColorInt int);
- method public void setOnContentApplyWindowInsetsListener(@Nullable android.view.Window.OnContentApplyWindowInsetsListener);
method public void setPreferMinimalPostProcessing(boolean);
method public void setReenterTransition(android.transition.Transition);
method public abstract void setResizingCaptionDrawable(android.graphics.drawable.Drawable);
@@ -54945,10 +54987,6 @@ package android.view {
method @Nullable public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback, int);
}
- public static interface Window.OnContentApplyWindowInsetsListener {
- method @NonNull public android.util.Pair<android.graphics.Insets,android.view.WindowInsets> onContentApplyWindowInsets(@NonNull android.view.WindowInsets);
- }
-
public static interface Window.OnFrameMetricsAvailableListener {
method public void onFrameMetricsAvailable(android.view.Window, android.view.FrameMetrics, int);
}
@@ -55099,16 +55137,13 @@ package android.view {
}
public interface WindowInsetsController {
- method public default void controlInputMethodAnimation(long, @Nullable android.view.animation.Interpolator, @NonNull android.view.WindowInsetsAnimationControlListener);
method public void controlWindowInsetsAnimation(int, long, @Nullable android.view.animation.Interpolator, @NonNull android.view.WindowInsetsAnimationControlListener);
method public int getSystemBarsAppearance();
method public int getSystemBarsBehavior();
method public void hide(int);
- method public default void hideInputMethod();
method public void setSystemBarsAppearance(int, int);
method public void setSystemBarsBehavior(int);
method public void show(int);
- method public default void showInputMethod();
field public static final int APPEARANCE_LIGHT_NAVIGATION_BARS = 16; // 0x10
field public static final int APPEARANCE_LIGHT_STATUS_BARS = 8; // 0x8
field public static final int BEHAVIOR_SHOW_BARS_BY_SWIPE = 1; // 0x1
@@ -55622,6 +55657,7 @@ package android.view.accessibility {
field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_EXPAND;
field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_FOCUS;
field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_HIDE_TOOLTIP;
+ field @NonNull public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_IME_ENTER;
field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_LONG_CLICK;
field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_MOVE_WINDOW;
field public static final android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction ACTION_NEXT_AT_MOVEMENT_GRANULARITY;
@@ -60798,6 +60834,7 @@ package android.widget {
method public void setTypeface(@Nullable android.graphics.Typeface, int);
method public void setTypeface(@Nullable android.graphics.Typeface);
method public void setWidth(int);
+ field public static final int ACCESSIBILITY_ACTION_IME_ENTER = 16908372; // 0x1020054
field public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // 0x0
field public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; // 0x1
}
diff --git a/api/module-app-current.txt b/api/module-app-current.txt
deleted file mode 100644
index dadbd79e0e8d..000000000000
--- a/api/module-app-current.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-// Signature format: 2.0
-package android.app {
-
- public final class NotificationChannel implements android.os.Parcelable {
- method public void setBlockableSystem(boolean);
- }
-
-}
-
-package android.provider {
-
- public final class DocumentsContract {
- method @NonNull public static android.net.Uri buildDocumentUriAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
- }
-
- public static final class Settings.Global extends android.provider.Settings.NameValueTable {
- field public static final String COMMON_CRITERIA_MODE = "common_criteria_mode";
- }
-
-}
-
diff --git a/api/module-app-removed.txt b/api/module-app-removed.txt
deleted file mode 100644
index d802177e249b..000000000000
--- a/api/module-app-removed.txt
+++ /dev/null
@@ -1 +0,0 @@
-// Signature format: 2.0
diff --git a/api/module-lib-current.txt b/api/module-lib-current.txt
index 1a2cb74a5aad..90531b16a516 100644
--- a/api/module-lib-current.txt
+++ b/api/module-lib-current.txt
@@ -1,151 +1,4 @@
// Signature format: 2.0
-package android.app.timedetector {
-
- public final class PhoneTimeSuggestion implements android.os.Parcelable {
- method public void addDebugInfo(@NonNull String);
- method public void addDebugInfo(@NonNull java.util.List<java.lang.String>);
- method public int describeContents();
- method @NonNull public java.util.List<java.lang.String> getDebugInfo();
- method public int getPhoneId();
- method @Nullable public android.os.TimestampedValue<java.lang.Long> getUtcTime();
- method public void writeToParcel(@NonNull android.os.Parcel, int);
- field @NonNull public static final android.os.Parcelable.Creator<android.app.timedetector.PhoneTimeSuggestion> CREATOR;
- }
-
- public static final class PhoneTimeSuggestion.Builder {
- ctor public PhoneTimeSuggestion.Builder(int);
- method @NonNull public android.app.timedetector.PhoneTimeSuggestion.Builder addDebugInfo(@NonNull String);
- method @NonNull public android.app.timedetector.PhoneTimeSuggestion build();
- method @NonNull public android.app.timedetector.PhoneTimeSuggestion.Builder setUtcTime(@Nullable android.os.TimestampedValue<java.lang.Long>);
- }
-
- public interface TimeDetector {
- method @RequiresPermission("android.permission.SUGGEST_PHONE_TIME_AND_ZONE") public void suggestPhoneTime(@NonNull android.app.timedetector.PhoneTimeSuggestion);
- }
-
-}
-
-package android.app.timezonedetector {
-
- public final class PhoneTimeZoneSuggestion implements android.os.Parcelable {
- method public void addDebugInfo(@NonNull String);
- method public void addDebugInfo(@NonNull java.util.List<java.lang.String>);
- method @NonNull public static android.app.timezonedetector.PhoneTimeZoneSuggestion createEmptySuggestion(int, @NonNull String);
- method public int describeContents();
- method @NonNull public java.util.List<java.lang.String> getDebugInfo();
- method public int getMatchType();
- method public int getPhoneId();
- method public int getQuality();
- method @Nullable public String getZoneId();
- method public void writeToParcel(@NonNull android.os.Parcel, int);
- field @NonNull public static final android.os.Parcelable.Creator<android.app.timezonedetector.PhoneTimeZoneSuggestion> CREATOR;
- field public static final int MATCH_TYPE_EMULATOR_ZONE_ID = 4; // 0x4
- field public static final int MATCH_TYPE_NA = 0; // 0x0
- field public static final int MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET = 3; // 0x3
- field public static final int MATCH_TYPE_NETWORK_COUNTRY_ONLY = 2; // 0x2
- field public static final int MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY = 5; // 0x5
- field public static final int QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS = 3; // 0x3
- field public static final int QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET = 2; // 0x2
- field public static final int QUALITY_NA = 0; // 0x0
- field public static final int QUALITY_SINGLE_ZONE = 1; // 0x1
- }
-
- public static final class PhoneTimeZoneSuggestion.Builder {
- ctor public PhoneTimeZoneSuggestion.Builder(int);
- method @NonNull public android.app.timezonedetector.PhoneTimeZoneSuggestion.Builder addDebugInfo(@NonNull String);
- method @NonNull public android.app.timezonedetector.PhoneTimeZoneSuggestion build();
- method @NonNull public android.app.timezonedetector.PhoneTimeZoneSuggestion.Builder setMatchType(int);
- method @NonNull public android.app.timezonedetector.PhoneTimeZoneSuggestion.Builder setQuality(int);
- method @NonNull public android.app.timezonedetector.PhoneTimeZoneSuggestion.Builder setZoneId(@Nullable String);
- }
-
- public interface TimeZoneDetector {
- method @RequiresPermission("android.permission.SUGGEST_PHONE_TIME_AND_ZONE") public void suggestPhoneTimeZone(@NonNull android.app.timezonedetector.PhoneTimeZoneSuggestion);
- }
-
-}
-
-package android.os {
-
- public final class TimestampedValue<T> implements android.os.Parcelable {
- ctor public TimestampedValue(long, @Nullable T);
- method public int describeContents();
- method public long getReferenceTimeMillis();
- method @Nullable public T getValue();
- method public static long referenceTimeDifference(@NonNull android.os.TimestampedValue<?>, @NonNull android.os.TimestampedValue<?>);
- method public void writeToParcel(@NonNull android.os.Parcel, int);
- field @NonNull public static final android.os.Parcelable.Creator<android.os.TimestampedValue<?>> CREATOR;
- }
-
-}
-
-package android.timezone {
-
- public final class CountryTimeZones {
- method @Nullable public android.icu.util.TimeZone getDefaultTimeZone();
- method @Nullable public String getDefaultTimeZoneId();
- method @NonNull public java.util.List<android.timezone.CountryTimeZones.TimeZoneMapping> getEffectiveTimeZoneMappingsAt(long);
- method public boolean hasUtcZone(long);
- method public boolean isDefaultTimeZoneBoosted();
- method public boolean isForCountryCode(@NonNull String);
- method @Nullable public android.timezone.CountryTimeZones.OffsetResult lookupByOffsetWithBias(int, @Nullable Boolean, @Nullable Integer, long, @Nullable android.icu.util.TimeZone);
- }
-
- public static final class CountryTimeZones.OffsetResult {
- ctor public CountryTimeZones.OffsetResult(@NonNull android.icu.util.TimeZone, boolean);
- method @NonNull public android.icu.util.TimeZone getTimeZone();
- method public boolean isOnlyMatch();
- }
-
- public static final class CountryTimeZones.TimeZoneMapping {
- method @Nullable public android.icu.util.TimeZone getTimeZone();
- method @NonNull public String getTimeZoneId();
- }
-
- public final class TelephonyLookup {
- method @NonNull public static android.timezone.TelephonyLookup getInstance();
- method @Nullable public android.timezone.TelephonyNetworkFinder getTelephonyNetworkFinder();
- }
-
- public final class TelephonyNetwork {
- method @NonNull public String getCountryIsoCode();
- method @NonNull public String getMcc();
- method @NonNull public String getMnc();
- }
-
- public final class TelephonyNetworkFinder {
- method @Nullable public android.timezone.TelephonyNetwork findNetworkByMccMnc(@NonNull String, @NonNull String);
- }
-
- public final class TimeZoneFinder {
- method @Nullable public String getIanaVersion();
- method @NonNull public static android.timezone.TimeZoneFinder getInstance();
- method @Nullable public android.timezone.CountryTimeZones lookupCountryTimeZones(@NonNull String);
- }
-
- public final class TzDataSetVersion {
- method public static int currentFormatMajorVersion();
- method public static int currentFormatMinorVersion();
- method public int getFormatMajorVersion();
- method public int getFormatMinorVersion();
- method public int getRevision();
- method @NonNull public String getRulesVersion();
- method public static boolean isCompatibleWithThisDevice(android.timezone.TzDataSetVersion);
- method @NonNull public static android.timezone.TzDataSetVersion read() throws java.io.IOException, android.timezone.TzDataSetVersion.TzDataSetException;
- }
-
- public static final class TzDataSetVersion.TzDataSetException extends java.lang.Exception {
- ctor public TzDataSetVersion.TzDataSetException(String);
- ctor public TzDataSetVersion.TzDataSetException(String, Throwable);
- }
-
- public final class ZoneInfoDb {
- method @NonNull public static android.timezone.ZoneInfoDb getInstance();
- method @NonNull public String getVersion();
- }
-
-}
-
package android.util {
public final class Log {
diff --git a/api/system-current.txt b/api/system-current.txt
index b99ddb313ce0..a2de8fd11f9e 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -188,6 +188,7 @@ package android {
field public static final String REGISTER_CALL_PROVIDER = "android.permission.REGISTER_CALL_PROVIDER";
field public static final String REGISTER_CONNECTION_MANAGER = "android.permission.REGISTER_CONNECTION_MANAGER";
field public static final String REGISTER_SIM_SUBSCRIPTION = "android.permission.REGISTER_SIM_SUBSCRIPTION";
+ field public static final String REGISTER_STATS_PULL_ATOM = "android.permission.REGISTER_STATS_PULL_ATOM";
field public static final String REMOTE_DISPLAY_PROVIDER = "android.permission.REMOTE_DISPLAY_PROVIDER";
field public static final String REMOVE_DRM_CERTIFICATES = "android.permission.REMOVE_DRM_CERTIFICATES";
field public static final String REMOVE_TASKS = "android.permission.REMOVE_TASKS";
@@ -218,11 +219,9 @@ package android {
field public static final String STOP_APP_SWITCHES = "android.permission.STOP_APP_SWITCHES";
field public static final String SUBSTITUTE_NOTIFICATION_APP_NAME = "android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME";
field public static final String SUBSTITUTE_SHARE_TARGET_APP_NAME_AND_ICON = "android.permission.SUBSTITUTE_SHARE_TARGET_APP_NAME_AND_ICON";
- field public static final String SUGGEST_PHONE_TIME_AND_ZONE = "android.permission.SUGGEST_PHONE_TIME_AND_ZONE";
field public static final String SUSPEND_APPS = "android.permission.SUSPEND_APPS";
field public static final String SYSTEM_CAMERA = "android.permission.SYSTEM_CAMERA";
field public static final String TETHER_PRIVILEGED = "android.permission.TETHER_PRIVILEGED";
- field public static final String TUNER_RESOURCE_ACCESS = "android.permission.TUNER_RESOURCE_ACCESS";
field public static final String TV_INPUT_HARDWARE = "android.permission.TV_INPUT_HARDWARE";
field public static final String TV_VIRTUAL_REMOTE_CONTROLLER = "android.permission.TV_VIRTUAL_REMOTE_CONTROLLER";
field public static final String UNLIMITED_SHORTCUTS_API_CALLS = "android.permission.UNLIMITED_SHORTCUTS_API_CALLS";
@@ -665,6 +664,7 @@ package android.app {
method public int getUserLockedFields();
method public boolean isDeleted();
method public void populateFromXml(org.xmlpull.v1.XmlPullParser);
+ method public void setBlockableSystem(boolean);
method public org.json.JSONObject toJson() throws org.json.JSONException;
method public void writeXml(org.xmlpull.v1.XmlSerializer) throws java.io.IOException;
field public static final int USER_LOCKED_SOUND = 32; // 0x20
@@ -693,7 +693,7 @@ package android.app {
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public long[] getRegisteredExperimentIds() throws android.app.StatsManager.StatsUnavailableException;
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getReports(long) throws android.app.StatsManager.StatsUnavailableException;
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public byte[] getStatsMetadata() throws android.app.StatsManager.StatsUnavailableException;
- method public void registerPullAtomCallback(int, @Nullable android.app.StatsManager.PullAtomMetadata, @NonNull java.util.concurrent.Executor, @NonNull android.app.StatsManager.StatsPullAtomCallback);
+ method @RequiresPermission(android.Manifest.permission.REGISTER_STATS_PULL_ATOM) public void registerPullAtomCallback(int, @Nullable android.app.StatsManager.PullAtomMetadata, @NonNull java.util.concurrent.Executor, @NonNull android.app.StatsManager.StatsPullAtomCallback);
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void removeConfig(long) throws android.app.StatsManager.StatsUnavailableException;
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean removeConfiguration(long);
method @NonNull @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public long[] setActiveConfigsChangedOperation(@Nullable android.app.PendingIntent) throws android.app.StatsManager.StatsUnavailableException;
@@ -701,7 +701,7 @@ package android.app {
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean setBroadcastSubscriber(long, long, android.app.PendingIntent);
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public boolean setDataFetchOperation(long, android.app.PendingIntent);
method @RequiresPermission(allOf={android.Manifest.permission.DUMP, android.Manifest.permission.PACKAGE_USAGE_STATS}) public void setFetchReportsOperation(android.app.PendingIntent, long) throws android.app.StatsManager.StatsUnavailableException;
- method public void unregisterPullAtomCallback(int);
+ method @RequiresPermission(android.Manifest.permission.REGISTER_STATS_PULL_ATOM) public void unregisterPullAtomCallback(int);
field public static final String ACTION_STATSD_STARTED = "android.app.action.STATSD_STARTED";
field public static final String EXTRA_STATS_ACTIVE_CONFIG_KEYS = "android.app.extra.STATS_ACTIVE_CONFIG_KEYS";
field public static final String EXTRA_STATS_BROADCAST_SUBSCRIBER_COOKIES = "android.app.extra.STATS_BROADCAST_SUBSCRIBER_COOKIES";
@@ -1152,6 +1152,16 @@ package android.app.backup {
}
+package android.app.compat {
+
+ public final class CompatChanges {
+ method public static boolean isChangeEnabled(long);
+ method public static boolean isChangeEnabled(long, @NonNull String, @NonNull android.os.UserHandle);
+ method public static boolean isChangeEnabled(long, int);
+ }
+
+}
+
package android.app.contentsuggestions {
public final class ClassificationsRequest implements android.os.Parcelable {
@@ -1473,19 +1483,20 @@ package android.bluetooth {
public final class BluetoothAdapter {
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean addOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
- method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean connectAllEnabledProfiles(@NonNull android.bluetooth.BluetoothDevice);
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean connectAllEnabledProfiles(@NonNull android.bluetooth.BluetoothDevice);
method public boolean disableBLE();
- method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean disconnectAllEnabledProfiles(@NonNull android.bluetooth.BluetoothDevice);
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean disconnectAllEnabledProfiles(@NonNull android.bluetooth.BluetoothDevice);
method public boolean enableBLE();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean enableNoAutoConnect();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean factoryReset();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public long getDiscoveryEndMillis();
method public boolean isBleScanAlwaysAvailable();
method public boolean isLeEnabled();
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeActiveDevice(int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
- method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setActiveDevice(@Nullable android.bluetooth.BluetoothDevice, int);
- method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean setScanMode(int, int);
- method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean setScanMode(int);
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setActiveDevice(@NonNull android.bluetooth.BluetoothDevice, int);
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setScanMode(int, long);
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setScanMode(int);
field public static final String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED";
field public static final String ACTION_REQUEST_BLE_SCAN_ALWAYS_AVAILABLE = "android.bluetooth.adapter.action.REQUEST_BLE_SCAN_ALWAYS_AVAILABLE";
field public static final int ACTIVE_DEVICE_ALL = 2; // 0x2
@@ -1556,7 +1567,7 @@ package android.bluetooth {
method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isEncrypted();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isInSilenceMode();
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean removeBond();
- method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean setAlias(@NonNull String);
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setAlias(@NonNull String);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMessageAccessPermission(int);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMetadata(int, @NonNull byte[]);
method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setPhonebookAccessPermission(int);
@@ -1604,7 +1615,7 @@ package android.bluetooth {
}
public final class BluetoothHidDevice implements android.bluetooth.BluetoothProfile {
- method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
+ method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setConnectionPolicy(@NonNull android.bluetooth.BluetoothDevice, int);
}
public final class BluetoothHidHost implements android.bluetooth.BluetoothProfile {
@@ -2098,6 +2109,10 @@ package android.content.pm {
field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.LauncherApps.AppUsageLimit> CREATOR;
}
+ public static class LauncherApps.ShortcutQuery {
+ method @NonNull public android.content.pm.LauncherApps.ShortcutQuery setLocusIds(@Nullable java.util.List<android.content.LocusId>);
+ }
+
public class PackageInstaller {
method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setPermissionsResult(int, boolean);
field public static final int DATA_LOADER_TYPE_INCREMENTAL = 2; // 0x2
@@ -2201,6 +2216,8 @@ package android.content.pm {
field public static final String FEATURE_TELEPHONY_CARRIERLOCK = "android.hardware.telephony.carrierlock";
field public static final int FLAGS_PERMISSION_RESERVED_PERMISSIONCONTROLLER = -268435456; // 0xf0000000
field public static final int FLAG_PERMISSION_APPLY_RESTRICTION = 16384; // 0x4000
+ field public static final int FLAG_PERMISSION_DONT_AUTO_REVOKE = 131072; // 0x20000
+ field public static final int FLAG_PERMISSION_DONT_AUTO_REVOKE_USER_SET = 262144; // 0x40000
field public static final int FLAG_PERMISSION_GRANTED_BY_DEFAULT = 32; // 0x20
field public static final int FLAG_PERMISSION_GRANTED_BY_ROLE = 32768; // 0x8000
field public static final int FLAG_PERMISSION_ONE_TIME = 65536; // 0x10000
@@ -2284,7 +2301,7 @@ package android.content.pm {
method public void onPermissionsChanged(int);
}
- @IntDef(prefix={"FLAG_PERMISSION_"}, value={android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET, android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_POLICY_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE, android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_APPLY_RESTRICTION, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_ROLE, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKED_COMPAT, android.content.pm.PackageManager.FLAG_PERMISSION_ONE_TIME}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PackageManager.PermissionFlags {
+ @IntDef(prefix={"FLAG_PERMISSION_"}, value={android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET, android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_POLICY_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE, android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_APPLY_RESTRICTION, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_ROLE, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKED_COMPAT, android.content.pm.PackageManager.FLAG_PERMISSION_ONE_TIME, android.content.pm.PackageManager.FLAG_PERMISSION_DONT_AUTO_REVOKE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PackageManager.PermissionFlags {
}
public class PermissionGroupInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
@@ -2302,6 +2319,7 @@ package android.content.pm {
field public static final int PROTECTION_FLAG_DOCUMENTER = 262144; // 0x40000
field public static final int PROTECTION_FLAG_INCIDENT_REPORT_APPROVER = 1048576; // 0x100000
field public static final int PROTECTION_FLAG_OEM = 16384; // 0x4000
+ field public static final int PROTECTION_FLAG_RETAIL_DEMO = 16777216; // 0x1000000
field public static final int PROTECTION_FLAG_SYSTEM_TEXT_CLASSIFIER = 65536; // 0x10000
field public static final int PROTECTION_FLAG_TELEPHONY = 4194304; // 0x400000
field public static final int PROTECTION_FLAG_WELLBEING = 131072; // 0x20000
@@ -2451,8 +2469,8 @@ package android.hardware {
package android.hardware.biometrics {
public static interface BiometricManager.Authenticators {
- field public static final int BIOMETRIC_CONVENIENCE = 4095; // 0xfff
- field public static final int EMPTY_SET = 0; // 0x0
+ field @RequiresPermission(android.Manifest.permission.WRITE_DEVICE_CONFIG) public static final int BIOMETRIC_CONVENIENCE = 4095; // 0xfff
+ field @RequiresPermission(android.Manifest.permission.WRITE_DEVICE_CONFIG) public static final int EMPTY_SET = 0; // 0x0
}
}
@@ -3677,17 +3695,17 @@ package android.hardware.soundtrigger {
}
public static final class SoundTrigger.ModelParamRange implements android.os.Parcelable {
+ method public int getEnd();
+ method public int getStart();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.hardware.soundtrigger.SoundTrigger.ModelParamRange> CREATOR;
- field public final int end;
- field public final int start;
}
public static final class SoundTrigger.ModuleProperties implements android.os.Parcelable {
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final int CAPABILITY_ECHO_CANCELLATION = 1; // 0x1
- field public static final int CAPABILITY_NOISE_SUPPRESSION = 2; // 0x2
+ field public static final int AUDIO_CAPABILITY_ECHO_CANCELLATION = 1; // 0x1
+ field public static final int AUDIO_CAPABILITY_NOISE_SUPPRESSION = 2; // 0x2
field @NonNull public static final android.os.Parcelable.Creator<android.hardware.soundtrigger.SoundTrigger.ModuleProperties> CREATOR;
field public final int audioCapabilities;
field @NonNull public final String description;
@@ -4104,7 +4122,6 @@ package android.location {
public class Location implements android.os.Parcelable {
method public boolean isComplete();
method public void makeComplete();
- method public void setExtraLocation(@Nullable String, @Nullable android.location.Location);
method public void setIsFromMockProvider(boolean);
field public static final String EXTRA_NO_GPS_LOCATION = "noGPSLocation";
}
@@ -4317,7 +4334,7 @@ package android.media {
}
public final class AudioRecordingConfiguration implements android.os.Parcelable {
- method public int getClientUid();
+ method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int getClientUid();
}
public class HwAudioSource {
@@ -4685,7 +4702,6 @@ package android.media.tv {
method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void addBlockedRating(@NonNull android.media.tv.TvContentRating);
method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public boolean captureFrame(String, android.view.Surface, android.media.tv.TvStreamConfig);
method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public java.util.List<android.media.tv.TvStreamConfig> getAvailableTvStreamConfigList(String);
- method @RequiresPermission(android.Manifest.permission.TUNER_RESOURCE_ACCESS) public int getClientPid(@NonNull String);
method @NonNull @RequiresPermission("android.permission.DVB_DEVICE") public java.util.List<android.media.tv.DvbDeviceInfo> getDvbDeviceList();
method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public java.util.List<android.media.tv.TvInputHardwareInfo> getHardwareList();
method @RequiresPermission(android.Manifest.permission.READ_CONTENT_RATING_SYSTEMS) public java.util.List<android.media.tv.TvContentRatingSystemInfo> getTvContentRatingSystemList();
@@ -4697,7 +4713,6 @@ package android.media.tv {
method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public void releaseTvInputHardware(int, android.media.tv.TvInputManager.Hardware);
method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void removeBlockedRating(@NonNull android.media.tv.TvContentRating);
method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void setParentalControlsEnabled(boolean);
- field public static final int UNKNOWN_CLIENT_PID = -1; // 0xffffffff
}
public static final class TvInputManager.Hardware {
@@ -5377,7 +5392,7 @@ package android.media.tv.tuner.frontend {
public static class Atsc3FrontendSettings.Builder extends android.media.tv.tuner.frontend.FrontendSettings.Builder<android.media.tv.tuner.frontend.Atsc3FrontendSettings.Builder> {
method @NonNull public android.media.tv.tuner.frontend.Atsc3FrontendSettings build();
method @NonNull public android.media.tv.tuner.frontend.Atsc3FrontendSettings.Builder setBandwidth(int);
- method @NonNull public android.media.tv.tuner.frontend.Atsc3FrontendSettings.Builder setDemodOutputFormat(byte);
+ method @NonNull public android.media.tv.tuner.frontend.Atsc3FrontendSettings.Builder setDemodOutputFormat(int);
method @NonNull public android.media.tv.tuner.frontend.Atsc3FrontendSettings.Builder setPlpSettings(@NonNull android.media.tv.tuner.frontend.Atsc3PlpSettings[]);
}
@@ -5431,7 +5446,7 @@ package android.media.tv.tuner.frontend {
public class DvbcFrontendSettings extends android.media.tv.tuner.frontend.FrontendSettings {
method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public static android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder builder(@NonNull android.content.Context);
- method public byte getAnnex();
+ method public int getAnnex();
method public long getFec();
method public int getModulation();
method public int getOuterFec();
@@ -5459,7 +5474,7 @@ package android.media.tv.tuner.frontend {
public static class DvbcFrontendSettings.Builder extends android.media.tv.tuner.frontend.FrontendSettings.Builder<android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder> {
method @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings build();
- method @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder setAnnex(byte);
+ method @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder setAnnex(int);
method @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder setFec(long);
method @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder setModulation(int);
method @NonNull public android.media.tv.tuner.frontend.DvbcFrontendSettings.Builder setOuterFec(int);
@@ -6233,7 +6248,7 @@ package android.net {
}
public abstract class NetworkAgent {
- ctor public NetworkAgent(@NonNull android.content.Context, @NonNull android.os.Looper, @NonNull String, @NonNull android.net.NetworkCapabilities, @NonNull android.net.LinkProperties, int, @NonNull android.net.NetworkAgentConfig, @Nullable android.net.NetworkProvider);
+ ctor public NetworkAgent(@NonNull android.content.Context, @NonNull android.os.Looper, @NonNull String, @NonNull android.net.NetworkCapabilities, @NonNull android.net.LinkProperties, @NonNull android.net.NetworkScore, @NonNull android.net.NetworkAgentConfig, @Nullable android.net.NetworkProvider);
method @Nullable public android.net.Network getNetwork();
method public void onAddKeepalivePacketFilter(int, @NonNull android.net.KeepalivePacketData);
method public void onAutomaticReconnectDisabled();
@@ -6248,7 +6263,7 @@ package android.net {
method @NonNull public android.net.Network register();
method public void sendLinkProperties(@NonNull android.net.LinkProperties);
method public void sendNetworkCapabilities(@NonNull android.net.NetworkCapabilities);
- method public void sendNetworkScore(int);
+ method public void sendNetworkScore(@NonNull android.net.NetworkScore);
method public void sendSocketKeepaliveEvent(int, int);
method public void setConnected();
method @Deprecated public void setLegacyExtraInfo(@Nullable String);
@@ -6292,7 +6307,9 @@ package android.net {
method @Nullable public String getSSID();
method @NonNull public int[] getTransportTypes();
method public boolean satisfiedByNetworkCapabilities(@Nullable android.net.NetworkCapabilities);
- method public void setAdministratorUids(@NonNull java.util.List<java.lang.Integer>);
+ method @NonNull public android.net.NetworkCapabilities setAdministratorUids(@NonNull java.util.List<java.lang.Integer>);
+ method @NonNull public android.net.NetworkCapabilities setRequestorPackageName(@NonNull String);
+ method @NonNull public android.net.NetworkCapabilities setRequestorUid(int);
method @NonNull public android.net.NetworkCapabilities setSSID(@Nullable String);
method @NonNull public android.net.NetworkCapabilities setTransportInfo(@NonNull android.net.TransportInfo);
field public static final int NET_CAPABILITY_OEM_PAID = 22; // 0x16
@@ -6344,6 +6361,8 @@ package android.net {
}
public class NetworkRequest implements android.os.Parcelable {
+ method @Nullable public String getRequestorPackageName();
+ method public int getRequestorUid();
method public boolean satisfiedBy(@Nullable android.net.NetworkCapabilities);
}
@@ -6351,6 +6370,55 @@ package android.net {
method @NonNull @RequiresPermission(android.Manifest.permission.NETWORK_SIGNAL_STRENGTH_WAKEUP) public android.net.NetworkRequest.Builder setSignalStrength(int);
}
+ public final class NetworkScore implements android.os.Parcelable {
+ method public int describeContents();
+ method @NonNull public android.net.NetworkScore.Metrics getEndToEndMetrics();
+ method @NonNull public android.net.NetworkScore.Metrics getLinkLayerMetrics();
+ method public int getRange();
+ method @IntRange(from=android.net.NetworkScore.UNKNOWN_SIGNAL_STRENGTH, to=android.net.NetworkScore.MAX_SIGNAL_STRENGTH) public int getSignalStrength();
+ method public boolean hasPolicy(int);
+ method public boolean isExiting();
+ method @NonNull public android.net.NetworkScore withExiting(boolean);
+ method @NonNull public android.net.NetworkScore withSignalStrength(@IntRange(from=android.net.NetworkScore.UNKNOWN_SIGNAL_STRENGTH) int);
+ method public void writeToParcel(@NonNull android.os.Parcel, int);
+ field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkScore> CREATOR;
+ field public static final int MAX_SIGNAL_STRENGTH = 1000; // 0x3e8
+ field public static final int MIN_SIGNAL_STRENGTH = 0; // 0x0
+ field public static final int POLICY_DEFAULT_SUBSCRIPTION = 8; // 0x8
+ field public static final int POLICY_IGNORE_ON_WIFI = 4; // 0x4
+ field public static final int POLICY_LOCKDOWN_VPN = 1; // 0x1
+ field public static final int POLICY_VPN = 2; // 0x2
+ field public static final int RANGE_CLOSE = 1; // 0x1
+ field public static final int RANGE_LONG = 4; // 0x4
+ field public static final int RANGE_MEDIUM = 3; // 0x3
+ field public static final int RANGE_SHORT = 2; // 0x2
+ field public static final int RANGE_UNKNOWN = 0; // 0x0
+ field public static final int UNKNOWN_SIGNAL_STRENGTH = -1; // 0xffffffff
+ }
+
+ public static class NetworkScore.Builder {
+ ctor public NetworkScore.Builder();
+ method @NonNull public android.net.NetworkScore.Builder addPolicy(int);
+ method @NonNull public android.net.NetworkScore build();
+ method @NonNull public android.net.NetworkScore.Builder clearPolicy(int);
+ method @NonNull public android.net.NetworkScore.Builder setEndToEndMetrics(@NonNull android.net.NetworkScore.Metrics);
+ method @NonNull public android.net.NetworkScore.Builder setExiting(boolean);
+ method @NonNull public android.net.NetworkScore.Builder setLegacyScore(int);
+ method @NonNull public android.net.NetworkScore.Builder setLinkLayerMetrics(@NonNull android.net.NetworkScore.Metrics);
+ method @NonNull public android.net.NetworkScore.Builder setRange(int);
+ method @NonNull public android.net.NetworkScore.Builder setSignalStrength(@IntRange(from=android.net.NetworkScore.UNKNOWN_SIGNAL_STRENGTH, to=android.net.NetworkScore.MAX_SIGNAL_STRENGTH) int);
+ }
+
+ public static class NetworkScore.Metrics {
+ ctor public NetworkScore.Metrics(@IntRange(from=android.net.NetworkScore.Metrics.LATENCY_UNKNOWN) int, @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) int, @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) int);
+ field public static final int BANDWIDTH_UNKNOWN = -1; // 0xffffffff
+ field @NonNull public static final android.net.NetworkScore.Metrics EMPTY;
+ field public static final int LATENCY_UNKNOWN = -1; // 0xffffffff
+ field @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) public final int downlinkBandwidthKBps;
+ field @IntRange(from=android.net.NetworkScore.Metrics.LATENCY_UNKNOWN) public final int latencyMs;
+ field @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) public final int uplinkBandwidthKBps;
+ }
+
public class NetworkScoreManager {
method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, android.Manifest.permission.REQUEST_NETWORK_SCORES}) public boolean clearScores() throws java.lang.SecurityException;
method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, android.Manifest.permission.REQUEST_NETWORK_SCORES}) public void disableScoring() throws java.lang.SecurityException;
@@ -6379,7 +6447,6 @@ package android.net {
}
public abstract class NetworkSpecifier {
- method public void assertValidFromUid(int);
method @Nullable public android.net.NetworkSpecifier redact();
method public abstract boolean satisfiedBy(@Nullable android.net.NetworkSpecifier);
}
@@ -7460,30 +7527,25 @@ package android.net.wifi {
@Deprecated public class WifiConfiguration implements android.os.Parcelable {
method @Deprecated public int getAuthType();
- method @Deprecated @NonNull public android.net.IpConfiguration.IpAssignment getIpAssignment();
method @Deprecated @NonNull public android.net.IpConfiguration getIpConfiguration();
method @Deprecated @NonNull public android.net.wifi.WifiConfiguration.NetworkSelectionStatus getNetworkSelectionStatus();
method @Deprecated @NonNull public String getPrintableSsid();
- method @Deprecated @NonNull public android.net.IpConfiguration.ProxySettings getProxySettings();
- method @Deprecated @Nullable public android.net.StaticIpConfiguration getStaticIpConfiguration();
+ method @Deprecated public int getRecentFailureReason();
method @Deprecated public boolean hasNoInternetAccess();
method @Deprecated public boolean isEphemeral();
method @Deprecated public static boolean isMetered(@Nullable android.net.wifi.WifiConfiguration, @Nullable android.net.wifi.WifiInfo);
method @Deprecated public boolean isNoInternetAccessExpected();
method @Deprecated public void setIpConfiguration(@Nullable android.net.IpConfiguration);
method @Deprecated public void setNetworkSelectionStatus(@NonNull android.net.wifi.WifiConfiguration.NetworkSelectionStatus);
- method @Deprecated public void setProxy(@NonNull android.net.IpConfiguration.ProxySettings, @NonNull android.net.ProxyInfo);
- field @Deprecated public static final int AP_BAND_2GHZ = 0; // 0x0
- field @Deprecated public static final int AP_BAND_5GHZ = 1; // 0x1
- field @Deprecated public static final int AP_BAND_ANY = -1; // 0xffffffff
field @Deprecated public static final int INVALID_NETWORK_ID = -1; // 0xffffffff
field @Deprecated public static final int METERED_OVERRIDE_METERED = 1; // 0x1
field @Deprecated public static final int METERED_OVERRIDE_NONE = 0; // 0x0
field @Deprecated public static final int METERED_OVERRIDE_NOT_METERED = 2; // 0x2
field @Deprecated public static final int RANDOMIZATION_NONE = 0; // 0x0
field @Deprecated public static final int RANDOMIZATION_PERSISTENT = 1; // 0x1
+ field @Deprecated public static final int RECENT_FAILURE_AP_UNABLE_TO_HANDLE_NEW_STA = 17; // 0x11
+ field @Deprecated public static final int RECENT_FAILURE_NONE = 0; // 0x0
field @Deprecated public boolean allowAutojoin;
- field @Deprecated public int apBand;
field @Deprecated public int carrierId;
field @Deprecated public String creatorName;
field @Deprecated public int creatorUid;
@@ -7497,7 +7559,6 @@ package android.net.wifi {
field @Deprecated public int numAssociation;
field @Deprecated public int numScorerOverride;
field @Deprecated public int numScorerOverrideAndSwitchedNetwork;
- field @Deprecated @NonNull public final android.net.wifi.WifiConfiguration.RecentFailure recentFailure;
field @Deprecated public boolean requirePMF;
field @Deprecated @Nullable public String saePasswordId;
field @Deprecated public boolean shared;
@@ -7513,13 +7574,12 @@ package android.net.wifi {
@Deprecated public static class WifiConfiguration.NetworkSelectionStatus {
method @Deprecated public int getDisableReasonCounter(int);
method @Deprecated public long getDisableTime();
- method @Deprecated public boolean getHasEverConnected();
+ method @Deprecated public static int getMaxNetworkSelectionDisableReason();
method @Deprecated @Nullable public static String getNetworkDisableReasonString(int);
method @Deprecated public int getNetworkSelectionDisableReason();
method @Deprecated public int getNetworkSelectionStatus();
method @Deprecated @NonNull public String getNetworkStatusString();
- method @Deprecated public boolean isNetworkEnabled();
- method @Deprecated public boolean isNetworkPermanentlyDisabled();
+ method @Deprecated public boolean hasEverConnected();
field @Deprecated public static final int DISABLED_ASSOCIATION_REJECTION = 1; // 0x1
field @Deprecated public static final int DISABLED_AUTHENTICATION_FAILURE = 2; // 0x2
field @Deprecated public static final int DISABLED_AUTHENTICATION_NO_CREDENTIALS = 5; // 0x5
@@ -7527,10 +7587,9 @@ package android.net.wifi {
field @Deprecated public static final int DISABLED_BY_WIFI_MANAGER = 7; // 0x7
field @Deprecated public static final int DISABLED_BY_WRONG_PASSWORD = 8; // 0x8
field @Deprecated public static final int DISABLED_DHCP_FAILURE = 3; // 0x3
+ field @Deprecated public static final int DISABLED_NONE = 0; // 0x0
field @Deprecated public static final int DISABLED_NO_INTERNET_PERMANENT = 6; // 0x6
field @Deprecated public static final int DISABLED_NO_INTERNET_TEMPORARY = 4; // 0x4
- field @Deprecated public static final int NETWORK_SELECTION_DISABLED_MAX = 10; // 0xa
- field @Deprecated public static final int NETWORK_SELECTION_ENABLE = 0; // 0x0
field @Deprecated public static final int NETWORK_SELECTION_ENABLED = 0; // 0x0
field @Deprecated public static final int NETWORK_SELECTION_PERMANENTLY_DISABLED = 2; // 0x2
field @Deprecated public static final int NETWORK_SELECTION_TEMPORARY_DISABLED = 1; // 0x1
@@ -7543,12 +7602,6 @@ package android.net.wifi {
method @Deprecated @NonNull public android.net.wifi.WifiConfiguration.NetworkSelectionStatus.Builder setNetworkSelectionStatus(int);
}
- @Deprecated public static class WifiConfiguration.RecentFailure {
- method @Deprecated public int getAssociationStatus();
- field @Deprecated public static final int NONE = 0; // 0x0
- field @Deprecated public static final int STATUS_AP_UNABLE_TO_HANDLE_NEW_STA = 17; // 0x11
- }
-
public class WifiEnterpriseConfig implements android.os.Parcelable {
method @Nullable public String[] getCaCertificateAliases();
method @NonNull public String getCaPath();
@@ -7733,7 +7786,7 @@ package android.net.wifi {
}
public static interface WifiManager.ScoreChangeCallback {
- method public void onStatusChange(int, boolean);
+ method public void onScoreChange(int, @NonNull android.net.NetworkScore);
method public void onTriggerUpdateOfWifiUsabilityStats(int);
}
@@ -8006,7 +8059,7 @@ package android.net.wifi.hotspot2 {
public final class PasspointConfiguration implements android.os.Parcelable {
method public int getMeteredOverride();
- method public boolean isAutoJoinEnabled();
+ method public boolean isAutojoinEnabled();
method public boolean isMacRandomizationEnabled();
}
@@ -8157,9 +8210,10 @@ package android.net.wifi.wificond {
}
public final class NativeScanResult implements android.os.Parcelable {
+ ctor public NativeScanResult();
method public int describeContents();
method @NonNull public byte[] getBssid();
- method @NonNull public java.util.BitSet getCapabilities();
+ method @NonNull public int getCapabilities();
method public int getFrequencyMhz();
method @NonNull public byte[] getInformationElements();
method @NonNull public java.util.List<android.net.wifi.wificond.RadioChainInfo> getRadioChainInfos();
@@ -8172,6 +8226,7 @@ package android.net.wifi.wificond {
}
public final class NativeWifiClient implements android.os.Parcelable {
+ ctor public NativeWifiClient(@NonNull byte[]);
method public int describeContents();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.wificond.NativeWifiClient> CREATOR;
@@ -8194,12 +8249,12 @@ package android.net.wifi.wificond {
public final class PnoSettings implements android.os.Parcelable {
ctor public PnoSettings();
method public int describeContents();
- method public int getIntervalMillis();
+ method public long getIntervalMillis();
method public int getMin2gRssiDbm();
method public int getMin5gRssiDbm();
method public int getMin6gRssiDbm();
method @NonNull public java.util.List<android.net.wifi.wificond.PnoNetwork> getPnoNetworks();
- method public void setIntervalMillis(int);
+ method public void setIntervalMillis(long);
method public void setMin2gRssiDbm(int);
method public void setMin5gRssiDbm(int);
method public void setMin6gRssiDbm(int);
@@ -8209,6 +8264,7 @@ package android.net.wifi.wificond {
}
public final class RadioChainInfo implements android.os.Parcelable {
+ ctor public RadioChainInfo(int, int);
method public int describeContents();
method public int getChainId();
method public int getLevelDbm();
@@ -8219,14 +8275,14 @@ package android.net.wifi.wificond {
public class WifiCondManager {
method public void abortScan(@NonNull String);
method public void enableVerboseLogging(boolean);
- method @NonNull public int[] getChannelsMhzForBand(int);
+ method @NonNull public java.util.List<java.lang.Integer> getChannelsMhzForBand(int);
method @Nullable public android.net.wifi.wificond.DeviceWiphyCapabilities getDeviceWiphyCapabilities(@NonNull String);
method @NonNull public java.util.List<android.net.wifi.wificond.NativeScanResult> getScanResults(@NonNull String, int);
method @Nullable public android.net.wifi.wificond.WifiCondManager.TxPacketCounters getTxPacketCounters(@NonNull String);
- method public boolean initialize(@NonNull Runnable);
method @Nullable public static android.net.wifi.wificond.WifiCondManager.OemSecurityType parseOemSecurityTypeElement(int, int, @NonNull byte[]);
method public boolean registerApCallback(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.wificond.WifiCondManager.SoftApCallback);
method public void sendMgmtFrame(@NonNull String, @NonNull byte[], int, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.wificond.WifiCondManager.SendMgmtFrameCallback);
+ method public void setOnServiceDeadCallback(@NonNull Runnable);
method public boolean setupInterfaceForClientMode(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.wificond.WifiCondManager.ScanEventCallback, @NonNull android.net.wifi.wificond.WifiCondManager.ScanEventCallback);
method public boolean setupInterfaceForSoftApMode(@NonNull String);
method @Nullable public android.net.wifi.wificond.WifiCondManager.SignalPollResult signalPoll(@NonNull String);
@@ -8864,13 +8920,13 @@ package android.os {
public class UpdateEngine {
ctor public UpdateEngine();
- method @NonNull public android.os.UpdateEngine.AllocateSpaceResult allocateSpace(@NonNull String, @NonNull String[]);
+ method @NonNull @WorkerThread public android.os.UpdateEngine.AllocateSpaceResult allocateSpace(@NonNull String, @NonNull String[]);
method public void applyPayload(String, long, long, String[]);
method public void applyPayload(@NonNull android.content.res.AssetFileDescriptor, @NonNull String[]);
method public boolean bind(android.os.UpdateEngineCallback, android.os.Handler);
method public boolean bind(android.os.UpdateEngineCallback);
method public void cancel();
- method public int cleanupAppliedPayload();
+ method @WorkerThread public int cleanupAppliedPayload();
method public void resetStatus();
method public void resume();
method public void suspend();
@@ -8879,8 +8935,8 @@ package android.os {
}
public static final class UpdateEngine.AllocateSpaceResult {
- method public int errorCode();
- method public long freeSpaceRequired();
+ method public int getErrorCode();
+ method public long getFreeSpaceRequired();
}
public static final class UpdateEngine.ErrorCodeConstants {
@@ -8961,7 +9017,6 @@ package android.os {
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isSameProfileGroup(@NonNull android.os.UserHandle, @NonNull android.os.UserHandle);
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.GET_ACCOUNTS_PRIVILEGED}) public boolean isUserNameSet();
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isUserOfType(@NonNull String);
- method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isUserOfType(@NonNull android.os.UserHandle, @NonNull String);
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS}, conditional=true) public boolean isUserUnlockingOrUnlocked(@NonNull android.os.UserHandle);
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.CREATE_USERS}) public boolean removeUser(@NonNull android.os.UserHandle);
method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public void setUserIcon(@NonNull android.graphics.Bitmap) throws android.os.UserManager.UserOperationException;
@@ -9125,7 +9180,12 @@ package android.os.storage {
method @WorkerThread public void allocateBytes(java.io.FileDescriptor, long, @RequiresPermission int) throws java.io.IOException;
method @WorkerThread public long getAllocatableBytes(@NonNull java.util.UUID, @RequiresPermission int) throws java.io.IOException;
method public static boolean hasIsolatedStorage();
+ method public void updateExternalStorageFileQuotaType(@NonNull java.io.File, int) throws java.io.IOException;
field @RequiresPermission(android.Manifest.permission.ALLOCATE_AGGRESSIVE) public static final int FLAG_ALLOCATE_AGGRESSIVE = 1; // 0x1
+ field public static final int QUOTA_TYPE_MEDIA_AUDIO = 2; // 0x2
+ field public static final int QUOTA_TYPE_MEDIA_IMAGE = 1; // 0x1
+ field public static final int QUOTA_TYPE_MEDIA_NONE = 0; // 0x0
+ field public static final int QUOTA_TYPE_MEDIA_VIDEO = 3; // 0x3
}
public final class StorageVolume implements android.os.Parcelable {
@@ -9173,7 +9233,7 @@ package android.permission {
}
public final class PermissionManager {
- method @IntRange(from=0) @RequiresPermission(android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY) public int getRuntimePermissionsVersion();
+ method @IntRange(from=0) @RequiresPermission(anyOf={android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY, "android.permission.UPGRADE_RUNTIME_PERMISSIONS"}) public int getRuntimePermissionsVersion();
method @NonNull public java.util.List<android.permission.PermissionManager.SplitPermissionInfo> getSplitPermissions();
method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledCarrierApps(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledImsServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
@@ -9181,7 +9241,7 @@ package android.permission {
method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToLuiApp(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void revokeDefaultPermissionsFromDisabledTelephonyDataServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void revokeDefaultPermissionsFromLuiApps(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
- method @RequiresPermission(android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY) public void setRuntimePermissionsVersion(@IntRange(from=0) int);
+ method @RequiresPermission(anyOf={android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY, "android.permission.UPGRADE_RUNTIME_PERMISSIONS"}) public void setRuntimePermissionsVersion(@IntRange(from=0) int);
method @RequiresPermission(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) public void startOneTimePermissionSession(@NonNull String, long, int, int);
method @RequiresPermission(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) public void stopOneTimePermissionSession(@NonNull String);
}
@@ -9411,6 +9471,7 @@ package android.provider {
}
public final class DocumentsContract {
+ method @NonNull public static android.net.Uri buildDocumentUriAsUser(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
method public static boolean isManageMode(@NonNull android.net.Uri);
method @NonNull public static android.net.Uri setManageMode(@NonNull android.net.Uri);
field public static final String ACTION_DOCUMENT_ROOT_SETTINGS = "android.provider.action.DOCUMENT_ROOT_SETTINGS";
@@ -9571,6 +9632,7 @@ package android.provider {
field public static final String AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES = "autofill_compat_mode_allowed_packages";
field public static final String CARRIER_APP_NAMES = "carrier_app_names";
field public static final String CARRIER_APP_WHITELIST = "carrier_app_whitelist";
+ field public static final String COMMON_CRITERIA_MODE = "common_criteria_mode";
field public static final String DEFAULT_SM_DP_PLUS = "default_sm_dp_plus";
field public static final String DEVICE_DEMO_MODE = "device_demo_mode";
field public static final String DEVICE_PROVISIONING_MOBILE_DATA_ENABLED = "device_provisioning_mobile_data";
@@ -10063,6 +10125,7 @@ package android.service.autofill.augmented {
ctor public AugmentedAutofillService();
method protected final void dump(java.io.FileDescriptor, java.io.PrintWriter, String[]);
method protected void dump(@NonNull java.io.PrintWriter, @NonNull String[]);
+ method @Nullable public final android.service.autofill.FillEventHistory getFillEventHistory();
method public void onConnected();
method public void onDisconnected();
method public void onFillRequest(@NonNull android.service.autofill.augmented.FillRequest, @NonNull android.os.CancellationSignal, @NonNull android.service.autofill.augmented.FillController, @NonNull android.service.autofill.augmented.FillCallback);
@@ -10092,6 +10155,7 @@ package android.service.autofill.augmented {
public static final class FillResponse.Builder {
ctor public FillResponse.Builder();
method @NonNull public android.service.autofill.augmented.FillResponse build();
+ method @NonNull public android.service.autofill.augmented.FillResponse.Builder setClientState(@Nullable android.os.Bundle);
method @NonNull public android.service.autofill.augmented.FillResponse.Builder setFillWindow(@Nullable android.service.autofill.augmented.FillWindow);
method @NonNull public android.service.autofill.augmented.FillResponse.Builder setInlineSuggestions(@Nullable java.util.List<android.service.autofill.Dataset>);
}
@@ -12359,7 +12423,6 @@ package android.telephony {
field public static final int CDMA_SUBSCRIPTION_RUIM_SIM = 0; // 0x0
field public static final int CDMA_SUBSCRIPTION_UNKNOWN = -1; // 0xffffffff
field public static final int CHANGE_ICC_LOCK_SUCCESS = 2147483647; // 0x7fffffff
- field public static final int DEFAULT_PREFERRED_NETWORK_MODE = 0; // 0x0
field public static final String EXTRA_ANOMALY_DESCRIPTION = "android.telephony.extra.ANOMALY_DESCRIPTION";
field public static final String EXTRA_ANOMALY_ID = "android.telephony.extra.ANOMALY_ID";
field @Deprecated public static final String EXTRA_APN_PROTOCOL = "apnProto";
diff --git a/api/system-lint-baseline.txt b/api/system-lint-baseline.txt
index 2f1889cea4eb..0caee6bebbda 100644
--- a/api/system-lint-baseline.txt
+++ b/api/system-lint-baseline.txt
@@ -64,10 +64,6 @@ GenericException: android.service.autofill.augmented.FillWindow#finalize():
-HeavyBitSet: android.net.wifi.wificond.NativeScanResult#getCapabilities():
-
-
-
IntentBuilderName: android.content.Context#registerReceiverForAllUsers(android.content.BroadcastReceiver, android.content.IntentFilter, String, android.os.Handler):
Methods creating an Intent should be named `create<Foo>Intent()`, was `registerReceiverForAllUsers`
@@ -200,8 +196,6 @@ MutableBareField: android.net.IpConfiguration#staticIpConfiguration:
MutableBareField: android.net.wifi.WifiConfiguration#allowAutojoin:
-MutableBareField: android.net.wifi.WifiConfiguration#apBand:
-
MutableBareField: android.net.wifi.WifiConfiguration#carrierId:
MutableBareField: android.net.wifi.WifiConfiguration#fromWifiNetworkSpecifier:
diff --git a/api/test-current.txt b/api/test-current.txt
index e0b5b34fd65f..e1f83822609d 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -118,8 +118,8 @@ package android.app {
method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void resizePinnedStack(int, android.graphics.Rect, boolean);
method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void resizeTask(int, android.graphics.Rect);
method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void setDisplayToSingleTaskInstance(int);
- method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void setTaskWindowingMode(int, int, boolean) throws java.lang.SecurityException;
- method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void setTaskWindowingModeSplitScreenPrimary(int, int, boolean, boolean, android.graphics.Rect, boolean) throws java.lang.SecurityException;
+ method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public boolean setTaskWindowingMode(int, int, boolean) throws java.lang.SecurityException;
+ method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public boolean setTaskWindowingModeSplitScreenPrimary(int, int, boolean, boolean, android.graphics.Rect, boolean) throws java.lang.SecurityException;
method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void startSystemLockTaskMode(int);
method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS) public void stopSystemLockTaskMode();
method public static boolean supportsMultiWindow(android.content.Context);
@@ -183,6 +183,9 @@ package android.app {
field public static final int HISTORICAL_MODE_DISABLED = 0; // 0x0
field public static final int HISTORICAL_MODE_ENABLED_ACTIVE = 1; // 0x1
field public static final int HISTORICAL_MODE_ENABLED_PASSIVE = 2; // 0x2
+ field public static final String KEY_BG_STATE_SETTLE_TIME = "bg_state_settle_time";
+ field public static final String KEY_FG_SERVICE_STATE_SETTLE_TIME = "fg_service_state_settle_time";
+ field public static final String KEY_TOP_STATE_SETTLE_TIME = "top_state_settle_time";
field public static final String OPSTR_ACCEPT_HANDOVER = "android:accept_handover";
field public static final String OPSTR_ACCESS_NOTIFICATIONS = "android:access_notifications";
field public static final String OPSTR_ACTIVATE_VPN = "android:activate_vpn";
@@ -416,6 +419,7 @@ package android.app {
method public void setFgServiceShown(boolean);
method public void setImportanceLockedByCriticalDeviceFunction(boolean);
method public void setImportanceLockedByOEM(boolean);
+ method public void setImportantConversation(boolean);
method public void setOriginalImportance(int);
}
@@ -767,6 +771,7 @@ package android.content {
method public void setAutofillOptions(@Nullable android.content.AutofillOptions);
method public void setContentCaptureOptions(@Nullable android.content.ContentCaptureOptions);
method @RequiresPermission("android.permission.INTERACT_ACROSS_USERS") public void startActivityAsUser(@NonNull @RequiresPermission android.content.Intent, @NonNull android.os.UserHandle);
+ field public static final String APP_INTEGRITY_SERVICE = "app_integrity";
field public static final String BUGREPORT_SERVICE = "bugreport";
field public static final String CONTENT_CAPTURE_MANAGER_SERVICE = "content_capture";
field public static final String DEVICE_IDLE_CONTROLLER = "deviceidle";
@@ -792,6 +797,60 @@ package android.content {
}
+package android.content.integrity {
+
+ public class AppIntegrityManager {
+ method @NonNull public android.content.integrity.RuleSet getCurrentRuleSet();
+ method @NonNull public String getCurrentRuleSetProvider();
+ method @NonNull public String getCurrentRuleSetVersion();
+ method public void updateRuleSet(@NonNull android.content.integrity.RuleSet, @NonNull android.content.IntentSender);
+ field public static final String EXTRA_STATUS = "android.content.integrity.extra.STATUS";
+ field public static final int STATUS_FAILURE = 1; // 0x1
+ field public static final int STATUS_SUCCESS = 0; // 0x0
+ }
+
+ public abstract class IntegrityFormula {
+ method @NonNull public static android.content.integrity.IntegrityFormula all(@NonNull android.content.integrity.IntegrityFormula...);
+ method @NonNull public static android.content.integrity.IntegrityFormula any(@NonNull android.content.integrity.IntegrityFormula...);
+ method @NonNull public android.content.integrity.IntegrityFormula equalTo(@NonNull String);
+ method @NonNull public android.content.integrity.IntegrityFormula equalTo(boolean);
+ method @NonNull public android.content.integrity.IntegrityFormula equalTo(long);
+ method @NonNull public android.content.integrity.IntegrityFormula greaterThan(long);
+ method @NonNull public android.content.integrity.IntegrityFormula greaterThanOrEquals(long);
+ method @NonNull public static android.content.integrity.IntegrityFormula not(@NonNull android.content.integrity.IntegrityFormula);
+ field @NonNull public static final android.content.integrity.IntegrityFormula APP_CERTIFICATE;
+ field @NonNull public static final android.content.integrity.IntegrityFormula INSTALLER_CERTIFICATE;
+ field @NonNull public static final android.content.integrity.IntegrityFormula INSTALLER_NAME;
+ field @NonNull public static final android.content.integrity.IntegrityFormula PACKAGE_NAME;
+ field @NonNull public static final android.content.integrity.IntegrityFormula PRE_INSTALLED;
+ field @NonNull public static final android.content.integrity.IntegrityFormula VERSION_CODE;
+ }
+
+ public final class Rule implements android.os.Parcelable {
+ ctor public Rule(@NonNull android.content.integrity.IntegrityFormula, int);
+ method public int describeContents();
+ method public int getEffect();
+ method @NonNull public android.content.integrity.IntegrityFormula getFormula();
+ method public void writeToParcel(@NonNull android.os.Parcel, int);
+ field @NonNull public static final android.os.Parcelable.Creator<android.content.integrity.Rule> CREATOR;
+ field public static final int DENY = 0; // 0x0
+ field public static final int FORCE_ALLOW = 1; // 0x1
+ }
+
+ public class RuleSet {
+ method @NonNull public java.util.List<android.content.integrity.Rule> getRules();
+ method @NonNull public String getVersion();
+ }
+
+ public static class RuleSet.Builder {
+ ctor public RuleSet.Builder();
+ method @NonNull public android.content.integrity.RuleSet.Builder addRules(@NonNull java.util.List<android.content.integrity.Rule>);
+ method @NonNull public android.content.integrity.RuleSet build();
+ method @NonNull public android.content.integrity.RuleSet.Builder setVersion(@NonNull String);
+ }
+
+}
+
package android.content.pm {
public class ActivityInfo extends android.content.pm.ComponentInfo implements android.os.Parcelable {
@@ -830,6 +889,7 @@ package android.content.pm {
method public abstract boolean arePermissionsIndividuallyControlled();
method @Nullable public String getContentCaptureServicePackageName();
method @Nullable @RequiresPermission("android.permission.INTERACT_ACROSS_USERS_FULL") public abstract String getDefaultBrowserPackageNameAsUser(int);
+ method @Nullable public String getDefaultTextClassifierPackageName();
method @Nullable public String getIncidentReportApproverPackageName();
method public abstract int getInstallReason(@NonNull String, @NonNull android.os.UserHandle);
method @NonNull public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplicationsAsUser(int, int);
@@ -839,6 +899,7 @@ package android.content.pm {
method @RequiresPermission(anyOf={"android.permission.GRANT_RUNTIME_PERMISSIONS", "android.permission.REVOKE_RUNTIME_PERMISSIONS", "android.permission.GET_RUNTIME_PERMISSIONS"}) public abstract int getPermissionFlags(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
method @NonNull public abstract String getServicesSystemSharedLibraryPackageName();
method @NonNull public abstract String getSharedSystemSharedLibraryPackageName();
+ method @Nullable public String getSystemTextClassifierPackageName();
method @Nullable public String[] getTelephonyPackageNames();
method @Nullable public String getWellbeingPackageName();
method @RequiresPermission("android.permission.GRANT_RUNTIME_PERMISSIONS") public abstract void grantRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
@@ -878,6 +939,7 @@ package android.content.pm {
field public static final int PROTECTION_FLAG_DOCUMENTER = 262144; // 0x40000
field public static final int PROTECTION_FLAG_INCIDENT_REPORT_APPROVER = 1048576; // 0x100000
field public static final int PROTECTION_FLAG_OEM = 16384; // 0x4000
+ field public static final int PROTECTION_FLAG_RETAIL_DEMO = 16777216; // 0x1000000
field public static final int PROTECTION_FLAG_SYSTEM_TEXT_CLASSIFIER = 65536; // 0x10000
field public static final int PROTECTION_FLAG_TELEPHONY = 4194304; // 0x400000
field public static final int PROTECTION_FLAG_VENDOR_PRIVILEGED = 32768; // 0x8000
@@ -1271,7 +1333,6 @@ package android.location {
public class Location implements android.os.Parcelable {
method public void makeComplete();
- method public void setExtraLocation(@Nullable String, @Nullable android.location.Location);
field public static final String EXTRA_NO_GPS_LOCATION = "noGPSLocation";
}
@@ -1387,6 +1448,10 @@ package android.media {
method public int getMaxMacroBlocks();
}
+ public final class MediaRoute2Info implements android.os.Parcelable {
+ method @NonNull public String getOriginalId();
+ }
+
public final class PlaybackParams implements android.os.Parcelable {
method public int getAudioStretchMode();
method public android.media.PlaybackParams setAudioStretchMode(int);
@@ -1688,6 +1753,55 @@ package android.net {
field public static final int TRANSPORT_TEST = 7; // 0x7
}
+ public final class NetworkScore implements android.os.Parcelable {
+ method public int describeContents();
+ method @NonNull public android.net.NetworkScore.Metrics getEndToEndMetrics();
+ method @NonNull public android.net.NetworkScore.Metrics getLinkLayerMetrics();
+ method public int getRange();
+ method @IntRange(from=android.net.NetworkScore.UNKNOWN_SIGNAL_STRENGTH, to=android.net.NetworkScore.MAX_SIGNAL_STRENGTH) public int getSignalStrength();
+ method public boolean hasPolicy(int);
+ method public boolean isExiting();
+ method @NonNull public android.net.NetworkScore withExiting(boolean);
+ method @NonNull public android.net.NetworkScore withSignalStrength(@IntRange(from=android.net.NetworkScore.UNKNOWN_SIGNAL_STRENGTH) int);
+ method public void writeToParcel(@NonNull android.os.Parcel, int);
+ field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkScore> CREATOR;
+ field public static final int MAX_SIGNAL_STRENGTH = 1000; // 0x3e8
+ field public static final int MIN_SIGNAL_STRENGTH = 0; // 0x0
+ field public static final int POLICY_DEFAULT_SUBSCRIPTION = 8; // 0x8
+ field public static final int POLICY_IGNORE_ON_WIFI = 4; // 0x4
+ field public static final int POLICY_LOCKDOWN_VPN = 1; // 0x1
+ field public static final int POLICY_VPN = 2; // 0x2
+ field public static final int RANGE_CLOSE = 1; // 0x1
+ field public static final int RANGE_LONG = 4; // 0x4
+ field public static final int RANGE_MEDIUM = 3; // 0x3
+ field public static final int RANGE_SHORT = 2; // 0x2
+ field public static final int RANGE_UNKNOWN = 0; // 0x0
+ field public static final int UNKNOWN_SIGNAL_STRENGTH = -1; // 0xffffffff
+ }
+
+ public static class NetworkScore.Builder {
+ ctor public NetworkScore.Builder();
+ method @NonNull public android.net.NetworkScore.Builder addPolicy(int);
+ method @NonNull public android.net.NetworkScore build();
+ method @NonNull public android.net.NetworkScore.Builder clearPolicy(int);
+ method @NonNull public android.net.NetworkScore.Builder setEndToEndMetrics(@NonNull android.net.NetworkScore.Metrics);
+ method @NonNull public android.net.NetworkScore.Builder setExiting(boolean);
+ method @NonNull public android.net.NetworkScore.Builder setLegacyScore(int);
+ method @NonNull public android.net.NetworkScore.Builder setLinkLayerMetrics(@NonNull android.net.NetworkScore.Metrics);
+ method @NonNull public android.net.NetworkScore.Builder setRange(int);
+ method @NonNull public android.net.NetworkScore.Builder setSignalStrength(@IntRange(from=android.net.NetworkScore.UNKNOWN_SIGNAL_STRENGTH, to=android.net.NetworkScore.MAX_SIGNAL_STRENGTH) int);
+ }
+
+ public static class NetworkScore.Metrics {
+ ctor public NetworkScore.Metrics(@IntRange(from=android.net.NetworkScore.Metrics.LATENCY_UNKNOWN) int, @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) int, @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) int);
+ field public static final int BANDWIDTH_UNKNOWN = -1; // 0xffffffff
+ field @NonNull public static final android.net.NetworkScore.Metrics EMPTY;
+ field public static final int LATENCY_UNKNOWN = -1; // 0xffffffff
+ field @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) public final int downlinkBandwidthKBps;
+ field @IntRange(from=android.net.NetworkScore.Metrics.LATENCY_UNKNOWN) public final int latencyMs;
+ field @IntRange(from=android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN) public final int uplinkBandwidthKBps;
+ }
+
public class NetworkStack {
field public static final String PERMISSION_MAINLINE_NETWORK_STACK = "android.permission.MAINLINE_NETWORK_STACK";
}
@@ -2661,9 +2775,9 @@ package android.permission {
}
public final class PermissionManager {
- method @IntRange(from=0) @RequiresPermission("android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY") public int getRuntimePermissionsVersion();
+ method @IntRange(from=0) @RequiresPermission(anyOf={"android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY", "android.permission.UPGRADE_RUNTIME_PERMISSIONS"}) public int getRuntimePermissionsVersion();
method @NonNull public java.util.List<android.permission.PermissionManager.SplitPermissionInfo> getSplitPermissions();
- method @RequiresPermission("android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY") public void setRuntimePermissionsVersion(@IntRange(from=0) int);
+ method @RequiresPermission(anyOf={"android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY", "android.permission.UPGRADE_RUNTIME_PERMISSIONS"}) public void setRuntimePermissionsVersion(@IntRange(from=0) int);
}
public static final class PermissionManager.SplitPermissionInfo {
@@ -3052,6 +3166,7 @@ package android.service.autofill.augmented {
ctor public AugmentedAutofillService();
method protected final void dump(java.io.FileDescriptor, java.io.PrintWriter, String[]);
method protected void dump(@NonNull java.io.PrintWriter, @NonNull String[]);
+ method @Nullable public final android.service.autofill.FillEventHistory getFillEventHistory();
method public void onConnected();
method public void onDisconnected();
method public void onFillRequest(@NonNull android.service.autofill.augmented.FillRequest, @NonNull android.os.CancellationSignal, @NonNull android.service.autofill.augmented.FillController, @NonNull android.service.autofill.augmented.FillCallback);
@@ -3081,6 +3196,7 @@ package android.service.autofill.augmented {
public static final class FillResponse.Builder {
ctor public FillResponse.Builder();
method @NonNull public android.service.autofill.augmented.FillResponse build();
+ method @NonNull public android.service.autofill.augmented.FillResponse.Builder setClientState(@Nullable android.os.Bundle);
method @NonNull public android.service.autofill.augmented.FillResponse.Builder setFillWindow(@Nullable android.service.autofill.augmented.FillWindow);
method @NonNull public android.service.autofill.augmented.FillResponse.Builder setInlineSuggestions(@Nullable java.util.List<android.service.autofill.Dataset>);
}
@@ -4870,6 +4986,11 @@ package android.view {
method public abstract String asyncImpl() default "";
}
+ public class SurfaceControlViewHost {
+ method public void addView(@NonNull android.view.View, android.view.WindowManager.LayoutParams);
+ method public void relayout(android.view.WindowManager.LayoutParams);
+ }
+
@UiThread public class View implements android.view.accessibility.AccessibilityEventSource android.graphics.drawable.Drawable.Callback android.view.KeyEvent.Callback {
method public android.view.View getTooltipView();
method public boolean isAutofilled();
diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp
index 520366f518ab..a1278f358380 100644
--- a/cmds/bootanimation/BootAnimation.cpp
+++ b/cmds/bootanimation/BootAnimation.cpp
@@ -42,10 +42,10 @@
#include <android-base/properties.h>
+#include <ui/DisplayConfig.h>
#include <ui/PixelFormat.h>
#include <ui/Rect.h>
#include <ui/Region.h>
-#include <ui/DisplayInfo.h>
#include <gui/ISurfaceComposer.h>
#include <gui/Surface.h>
@@ -283,16 +283,19 @@ status_t BootAnimation::readyToRun() {
mDisplayToken = SurfaceComposerClient::getInternalDisplayToken();
if (mDisplayToken == nullptr)
- return -1;
+ return NAME_NOT_FOUND;
- DisplayInfo dinfo;
- status_t status = SurfaceComposerClient::getDisplayInfo(mDisplayToken, &dinfo);
- if (status)
- return -1;
+ DisplayConfig displayConfig;
+ const status_t error =
+ SurfaceComposerClient::getActiveDisplayConfig(mDisplayToken, &displayConfig);
+ if (error != NO_ERROR)
+ return error;
+
+ const ui::Size& resolution = displayConfig.resolution;
// create the native surface
sp<SurfaceControl> control = session()->createSurface(String8("BootAnimation"),
- dinfo.w, dinfo.h, PIXEL_FORMAT_RGB_565);
+ resolution.getWidth(), resolution.getHeight(), PIXEL_FORMAT_RGB_565);
SurfaceComposerClient::Transaction t;
diff --git a/cmds/incident/Android.bp b/cmds/incident/Android.bp
index 9e9dac14c802..94855aa0311f 100644
--- a/cmds/incident/Android.bp
+++ b/cmds/incident/Android.bp
@@ -26,7 +26,7 @@ cc_binary {
"libcutils",
"liblog",
"libutils",
- "libincident",
+ "libincidentpriv",
],
static_libs: [
diff --git a/cmds/incident_helper/Android.bp b/cmds/incident_helper/Android.bp
index 64f4c667820d..f07743ec2ee6 100644
--- a/cmds/incident_helper/Android.bp
+++ b/cmds/incident_helper/Android.bp
@@ -44,7 +44,7 @@ cc_defaults {
"src/ih_util.cpp",
],
- generated_headers: ["gen-platform-proto-constants"],
+ generated_headers: ["framework-cppstream-protos"],
shared_libs: [
"libbase",
diff --git a/cmds/incidentd/Android.bp b/cmds/incidentd/Android.bp
index 25e0328b4f38..c47526abad53 100644
--- a/cmds/incidentd/Android.bp
+++ b/cmds/incidentd/Android.bp
@@ -43,7 +43,7 @@ cc_binary {
],
local_include_dirs: ["src"],
- generated_headers: ["gen-platform-proto-constants"],
+ generated_headers: ["framework-cppstream-protos"],
proto: {
type: "lite",
@@ -54,7 +54,7 @@ cc_binary {
"libbinder",
"libdebuggerd_client",
"libdumputils",
- "libincident",
+ "libincidentpriv",
"liblog",
"libprotoutil",
"libservices",
@@ -98,7 +98,7 @@ cc_test {
],
local_include_dirs: ["src"],
- generated_headers: ["gen-platform-proto-constants"],
+ generated_headers: ["framework-cppstream-protos"],
srcs: [
"tests/**/*.cpp",
@@ -128,7 +128,7 @@ cc_test {
"libbinder",
"libdebuggerd_client",
"libdumputils",
- "libincident",
+ "libincidentpriv",
"liblog",
"libprotobuf-cpp-full",
"libprotoutil",
diff --git a/cmds/statsd/Android.bp b/cmds/statsd/Android.bp
index ac24a553b555..7e069a6b4372 100644
--- a/cmds/statsd/Android.bp
+++ b/cmds/statsd/Android.bp
@@ -64,16 +64,13 @@ cc_defaults {
"src/config/ConfigKey.cpp",
"src/config/ConfigListener.cpp",
"src/config/ConfigManager.cpp",
- "src/external/GpuStatsPuller.cpp",
+ "src/experiment_ids.proto",
"src/external/Perfetto.cpp",
- "src/external/PowerStatsPuller.cpp",
"src/external/PullResultReceiver.cpp",
"src/external/puller_util.cpp",
- "src/external/ResourceHealthManagerPuller.cpp",
"src/external/StatsCallbackPuller.cpp",
"src/external/StatsPuller.cpp",
"src/external/StatsPullerManager.cpp",
- "src/external/SubsystemSleepStatePuller.cpp",
"src/external/TrainInfoPuller.cpp",
"src/FieldValue.cpp",
"src/guardrail/StatsdStats.cpp",
@@ -113,7 +110,7 @@ cc_defaults {
],
cflags: [
- // "-DNEW_ENCODING_SCHEME",
+ "-DNEW_ENCODING_SCHEME",
],
local_include_dirs: [
@@ -121,28 +118,19 @@ cc_defaults {
],
static_libs: [
- "android.frameworks.stats@1.0",
- "android.hardware.power.stats@1.0",
- "android.hardware.power@1.0",
- "android.hardware.power@1.1",
"libbase",
"libcutils",
- "libhealthhalutils",
- "liblog",
- "libplatformprotos",
"libprotoutil",
"libstatslog",
- "libstatssocket",
+ "libstatsmetadata",
"libsysutils",
],
shared_libs: [
- "android.hardware.health@2.0",
"libbinder",
- "libgraphicsenv",
- "libhidlbase",
"libincident",
+ "liblog",
"libservices",
- "libstatsmetadata",
+ "libstatssocket",
"libutils",
],
}
@@ -169,7 +157,7 @@ genrule {
],
}
-cc_library_shared {
+cc_library_static {
name: "libstatsmetadata",
host_supported: true,
generated_sources: [
@@ -232,8 +220,6 @@ cc_binary {
shared_libs: ["libgtest_prod"],
- vintf_fragments: ["android.frameworks.stats@1.0-service.xml"],
-
init_rc: ["statsd.rc"],
}
@@ -286,8 +272,6 @@ cc_test {
"tests/e2e/PartialBucket_e2e_test.cpp",
"tests/e2e/ValueMetric_pull_e2e_test.cpp",
"tests/e2e/WakelockDuration_e2e_test.cpp",
- "tests/external/GpuStatsPuller_test.cpp",
- "tests/external/IncidentReportArgs_test.cpp",
"tests/external/puller_util_test.cpp",
"tests/external/StatsCallbackPuller_test.cpp",
"tests/external/StatsPuller_test.cpp",
diff --git a/cmds/statsd/android.frameworks.stats@1.0-service.xml b/cmds/statsd/android.frameworks.stats@1.0-service.xml
deleted file mode 100644
index bb02f66a28b1..000000000000
--- a/cmds/statsd/android.frameworks.stats@1.0-service.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<manifest version="1.0" type="framework">
- <hal>
- <name>android.frameworks.stats</name>
- <transport>hwbinder</transport>
- <version>1.0</version>
- <interface>
- <name>IStats</name>
- <instance>default</instance>
- </interface>
- </hal>
-</manifest>
diff --git a/cmds/statsd/benchmark/log_event_benchmark.cpp b/cmds/statsd/benchmark/log_event_benchmark.cpp
index bdfdb2e00ac0..8b687438ca27 100644
--- a/cmds/statsd/benchmark/log_event_benchmark.cpp
+++ b/cmds/statsd/benchmark/log_event_benchmark.cpp
@@ -23,14 +23,14 @@ namespace os {
namespace statsd {
static size_t createAndParseStatsEvent(uint8_t* msg) {
- struct stats_event* event = stats_event_obtain();
- stats_event_set_atom_id(event, 100);
- stats_event_write_int32(event, 2);
- stats_event_write_float(event, 2.0);
- stats_event_build(event);
+ AStatsEvent* event = AStatsEvent_obtain();
+ AStatsEvent_setAtomId(event, 100);
+ AStatsEvent_writeInt32(event, 2);
+ AStatsEvent_writeFloat(event, 2.0);
+ AStatsEvent_build(event);
size_t size;
- uint8_t* buf = stats_event_get_buffer(event, &size);
+ uint8_t* buf = AStatsEvent_getBuffer(event, &size);
memcpy(msg, buf, size);
return size;
}
@@ -39,7 +39,7 @@ static void BM_LogEventCreation(benchmark::State& state) {
uint8_t msg[LOGGER_ENTRY_MAX_PAYLOAD];
size_t size = createAndParseStatsEvent(msg);
while (state.KeepRunning()) {
- benchmark::DoNotOptimize(LogEvent(msg, size, /*uid=*/ 1000));
+ benchmark::DoNotOptimize(LogEvent(msg, size, /*uid=*/ 1000, /*pid=*/ 1001));
}
}
BENCHMARK(BM_LogEventCreation);
diff --git a/cmds/statsd/src/HashableDimensionKey.cpp b/cmds/statsd/src/HashableDimensionKey.cpp
index 109785f649e4..5b75b97a0764 100644
--- a/cmds/statsd/src/HashableDimensionKey.cpp
+++ b/cmds/statsd/src/HashableDimensionKey.cpp
@@ -16,8 +16,6 @@
#define DEBUG false // STOPSHIP if true
#include "Log.h"
-#include <mutex>
-
#include "HashableDimensionKey.h"
#include "FieldValue.h"
diff --git a/cmds/statsd/src/StatsLogProcessor.cpp b/cmds/statsd/src/StatsLogProcessor.cpp
index 34818145a922..bde15a5cdaae 100644
--- a/cmds/statsd/src/StatsLogProcessor.cpp
+++ b/cmds/statsd/src/StatsLogProcessor.cpp
@@ -20,17 +20,17 @@
#include "StatsLogProcessor.h"
#include <android-base/file.h>
-#include <dirent.h>
+#include <cutils/multiuser.h>
#include <frameworks/base/cmds/statsd/src/active_config_list.pb.h>
-#include <log/log_event_list.h>
-#include <utils/Errors.h>
-#include <utils/SystemClock.h>
+#include <frameworks/base/cmds/statsd/src/experiment_ids.pb.h>
#include "android-base/stringprintf.h"
#include "atoms_info.h"
#include "external/StatsPullerManager.h"
#include "guardrail/StatsdStats.h"
+#include "logd/LogEvent.h"
#include "metrics/CountMetricProducer.h"
+#include "StatsService.h"
#include "state/StateManager.h"
#include "stats_log_util.h"
#include "stats_util.h"
@@ -47,8 +47,6 @@ using android::util::FIELD_TYPE_INT64;
using android::util::FIELD_TYPE_MESSAGE;
using android::util::FIELD_TYPE_STRING;
using android::util::ProtoOutputStream;
-using std::make_unique;
-using std::unique_ptr;
using std::vector;
namespace android {
@@ -74,6 +72,10 @@ const int FIELD_ID_STRINGS = 9;
// for ActiveConfigList
const int FIELD_ID_ACTIVE_CONFIG_LIST_CONFIG = 1;
+// for permissions checks
+constexpr const char* kPermissionDump = "android.permission.DUMP";
+constexpr const char* kPermissionUsage = "android.permission.PACKAGE_USAGE_STATS";
+
#define NS_PER_HOUR 3600 * NS_PER_SEC
#define STATS_ACTIVE_METRIC_DIR "/data/misc/stats-active-metric"
@@ -187,6 +189,115 @@ void StatsLogProcessor::onIsolatedUidChangedEventLocked(const LogEvent& event) {
}
}
+void StatsLogProcessor::onBinaryPushStateChangedEventLocked(LogEvent* event) {
+ pid_t pid = event->GetPid();
+ uid_t uid = event->GetUid();
+ if (!checkPermissionForIds(kPermissionDump, pid, uid) ||
+ !checkPermissionForIds(kPermissionUsage, pid, uid)) {
+ return;
+ }
+ status_t err = NO_ERROR, err2 = NO_ERROR, err3 = NO_ERROR, err4 = NO_ERROR;
+ string trainName = string(event->GetString(1 /*train name field id*/, &err));
+ int64_t trainVersionCode = event->GetLong(2 /*train version field id*/, &err2);
+ int32_t state = int32_t(event->GetLong(6 /*state field id*/, &err3));
+#ifdef NEW_ENCODING_SCHEME
+ std::vector<uint8_t> trainExperimentIdBytes =
+ event->GetStorage(7 /*experiment ids field id*/, &err4);
+#else
+ string trainExperimentIdString = event->GetString(7 /*experiment ids field id*/, &err4);
+#endif
+ if (err != NO_ERROR || err2 != NO_ERROR || err3 != NO_ERROR || err4 != NO_ERROR) {
+ ALOGE("Failed to parse fields in binary push state changed log event");
+ return;
+ }
+ ExperimentIds trainExperimentIds;
+#ifdef NEW_ENCODING_SCHEME
+ if (!trainExperimentIds.ParseFromArray(trainExperimentIdBytes.data(),
+ trainExperimentIdBytes.size())) {
+#else
+ if (!trainExperimentIds.ParseFromString(trainExperimentIdString)) {
+#endif
+ ALOGE("Failed to parse experimentids in binary push state changed.");
+ return;
+ }
+ vector<int64_t> experimentIdVector = {trainExperimentIds.experiment_id().begin(),
+ trainExperimentIds.experiment_id().end()};
+ // Update the train info on disk and get any data the logevent is missing.
+ getAndUpdateTrainInfoOnDisk(
+ state, &trainVersionCode, &trainName, &experimentIdVector);
+
+ std::vector<uint8_t> trainExperimentIdProto;
+ writeExperimentIdsToProto(experimentIdVector, &trainExperimentIdProto);
+ int32_t userId = multiuser_get_user_id(uid);
+
+ event->updateValue(1 /*train name field id*/, trainName, STRING);
+ event->updateValue(2 /*train version field id*/, trainVersionCode, LONG);
+#ifdef NEW_ENCODING_SCHEME
+ event->updateValue(7 /*experiment ids field id*/, trainExperimentIdProto, STORAGE);
+#else
+ event->updateValue(7 /*experiment ids field id*/, trainExperimentIdProto, STRING);
+#endif
+ event->updateValue(8 /*user id field id*/, userId, INT);
+}
+
+void StatsLogProcessor::getAndUpdateTrainInfoOnDisk(int32_t state,
+ int64_t* trainVersionCode,
+ string* trainName,
+ std::vector<int64_t>* experimentIds) {
+ bool readTrainInfoSuccess = false;
+ InstallTrainInfo trainInfoOnDisk;
+ readTrainInfoSuccess = StorageManager::readTrainInfo(trainInfoOnDisk);
+
+ bool resetExperimentIds = false;
+ if (readTrainInfoSuccess) {
+ // Keep the old train version if we received an empty version.
+ if (*trainVersionCode == -1) {
+ *trainVersionCode = trainInfoOnDisk.trainVersionCode;
+ } else if (*trainVersionCode != trainInfoOnDisk.trainVersionCode) {
+ // Reset experiment ids if we receive a new non-empty train version.
+ resetExperimentIds = true;
+ }
+
+ // Keep the old train name if we received an empty train name.
+ if (trainName->size() == 0) {
+ *trainName = trainInfoOnDisk.trainName;
+ } else if (*trainName != trainInfoOnDisk.trainName) {
+ // Reset experiment ids if we received a new valid train name.
+ resetExperimentIds = true;
+ }
+
+ // Reset if we received a different experiment id.
+ if (!experimentIds->empty() &&
+ (trainInfoOnDisk.experimentIds.empty() ||
+ experimentIds->at(0) != trainInfoOnDisk.experimentIds[0])) {
+ resetExperimentIds = true;
+ }
+ }
+
+ // Find the right experiment IDs
+ if (!resetExperimentIds && readTrainInfoSuccess) {
+ *experimentIds = trainInfoOnDisk.experimentIds;
+ }
+
+ if (!experimentIds->empty()) {
+ int64_t firstId = experimentIds->at(0);
+ switch (state) {
+ case android::util::BINARY_PUSH_STATE_CHANGED__STATE__INSTALL_SUCCESS:
+ experimentIds->push_back(firstId + 1);
+ break;
+ case android::util::BINARY_PUSH_STATE_CHANGED__STATE__INSTALLER_ROLLBACK_INITIATED:
+ experimentIds->push_back(firstId + 2);
+ break;
+ case android::util::BINARY_PUSH_STATE_CHANGED__STATE__INSTALLER_ROLLBACK_SUCCESS:
+ experimentIds->push_back(firstId + 3);
+ break;
+ }
+ }
+
+ StorageManager::writeTrainInfo(*trainVersionCode, *trainName, state, *experimentIds);
+}
+
+
void StatsLogProcessor::resetConfigs() {
std::lock_guard<std::mutex> lock(mMetricsMutex);
resetConfigsLocked(getElapsedRealtimeNs());
@@ -207,6 +318,12 @@ void StatsLogProcessor::OnLogEvent(LogEvent* event) {
void StatsLogProcessor::OnLogEvent(LogEvent* event, int64_t elapsedRealtimeNs) {
std::lock_guard<std::mutex> lock(mMetricsMutex);
+ // Hard-coded logic to update train info on disk and fill in any information
+ // this log event may be missing.
+ if (event->GetTagId() == android::util::BINARY_PUSH_STATE_CHANGED) {
+ onBinaryPushStateChangedEventLocked(event);
+ }
+
#ifdef VERY_VERBOSE_PRINTING
if (mPrintAllLogs) {
ALOGI("%s", event->ToString().c_str());
diff --git a/cmds/statsd/src/StatsLogProcessor.h b/cmds/statsd/src/StatsLogProcessor.h
index c569bc1e33f7..c49f2e0ec68d 100644
--- a/cmds/statsd/src/StatsLogProcessor.h
+++ b/cmds/statsd/src/StatsLogProcessor.h
@@ -196,6 +196,14 @@ private:
// Handler over the isolated uid change event.
void onIsolatedUidChangedEventLocked(const LogEvent& event);
+ // Handler over the binary push state changed event.
+ void onBinaryPushStateChangedEventLocked(LogEvent* event);
+
+ // Updates train info on disk based on binary push state changed info and
+ // write disk info into parameters.
+ void getAndUpdateTrainInfoOnDisk(int32_t state, int64_t* trainVersionCode,
+ string* trainName, std::vector<int64_t>* experimentIds);
+
// Reset all configs.
void resetConfigsLocked(const int64_t timestampNs);
// Reset the specified configs.
diff --git a/cmds/statsd/src/StatsService.cpp b/cmds/statsd/src/StatsService.cpp
index c1a8d69191d2..a06e59c8e409 100644
--- a/cmds/statsd/src/StatsService.cpp
+++ b/cmds/statsd/src/StatsService.cpp
@@ -27,13 +27,10 @@
#include "subscriber/SubscriberReporter.h"
#include <android-base/file.h>
-#include <android-base/stringprintf.h>
#include <android-base/strings.h>
#include <binder/IPCThreadState.h>
-#include <binder/IServiceManager.h>
#include <binder/PermissionController.h>
#include <cutils/multiuser.h>
-#include <dirent.h>
#include <frameworks/base/cmds/statsd/src/statsd_config.pb.h>
#include <frameworks/base/cmds/statsd/src/uid_data.pb.h>
#include <private/android_filesystem_config.h>
@@ -42,17 +39,13 @@
#include <stdlib.h>
#include <sys/system_properties.h>
#include <unistd.h>
-#include <utils/Looper.h>
#include <utils/String16.h>
-#include <chrono>
using namespace android;
using android::base::StringPrintf;
using android::util::FIELD_COUNT_REPEATED;
-using android::util::FIELD_TYPE_INT64;
using android::util::FIELD_TYPE_MESSAGE;
-using android::util::ProtoReader;
namespace android {
namespace os {
@@ -77,6 +70,12 @@ static binder::Status exception(uint32_t code, const std::string& msg) {
return binder::Status::fromExceptionCode(code, String8(msg.c_str()));
}
+static bool checkPermission(const char* permission) {
+ pid_t pid = IPCThreadState::self()->getCallingPid();
+ uid_t uid = IPCThreadState::self()->getCallingUid();
+ return checkPermissionForIds(permission, pid, uid);
+}
+
binder::Status checkUid(uid_t expectedUid) {
uid_t uid = IPCThreadState::self()->getCallingUid();
if (uid == expectedUid || uid == AID_ROOT) {
@@ -97,11 +96,11 @@ binder::Status checkDumpAndUsageStats(const String16& packageName) {
}
// Caller must be granted these permissions
- if (!checkCallingPermission(String16(kPermissionDump))) {
+ if (!checkPermission(kPermissionDump)) {
return exception(binder::Status::EX_SECURITY,
StringPrintf("UID %d / PID %d lacks permission %s", uid, pid, kPermissionDump));
}
- if (!checkCallingPermission(String16(kPermissionUsage))) {
+ if (!checkPermission(kPermissionUsage)) {
return exception(binder::Status::EX_SECURITY,
StringPrintf("UID %d / PID %d lacks permission %s", uid, pid, kPermissionUsage));
}
@@ -285,7 +284,7 @@ status_t StatsService::onTransact(uint32_t code, const Parcel& data, Parcel* rep
* TODO: Come up with a more robust method of enacting <serviceutils/PriorityDumper.h>.
*/
status_t StatsService::dump(int fd, const Vector<String16>& args) {
- if (!checkCallingPermission(String16(kPermissionDump))) {
+ if (!checkPermission(kPermissionDump)) {
return PERMISSION_DENIED;
}
int lastArg = args.size() - 1;
@@ -858,18 +857,8 @@ status_t StatsService::cmd_log_binary_push(int out, const Vector<String8>& args)
dprintf(out, "Incorrect number of argument supplied\n");
return UNKNOWN_ERROR;
}
- android::String16 trainName = android::String16(args[1].c_str());
+ string trainName = string(args[1].c_str());
int64_t trainVersion = strtoll(args[2].c_str(), nullptr, 10);
- int options = 0;
- if (args[3] == "1") {
- options = options | IStatsd::FLAG_REQUIRE_STAGING;
- }
- if (args[4] == "1") {
- options = options | IStatsd::FLAG_ROLLBACK_ENABLED;
- }
- if (args[5] == "1") {
- options = options | IStatsd::FLAG_REQUIRE_LOW_LATENCY_MONITOR;
- }
int32_t state = atoi(args[6].c_str());
vector<int64_t> experimentIds;
if (argCount == 8) {
@@ -880,7 +869,10 @@ status_t StatsService::cmd_log_binary_push(int out, const Vector<String8>& args)
}
}
dprintf(out, "Logging BinaryPushStateChanged\n");
- sendBinaryPushStateChangedAtom(trainName, trainVersion, options, state, experimentIds);
+ vector<uint8_t> experimentIdBytes;
+ writeExperimentIdsToProto(experimentIds, &experimentIdBytes);
+ LogEvent event(trainName, trainVersion, args[3], args[4], args[5], state, experimentIdBytes, 0);
+ mProcessor->OnLogEvent(&event);
return NO_ERROR;
}
@@ -914,7 +906,7 @@ status_t StatsService::cmd_clear_puller_cache(int out) {
IPCThreadState* ipc = IPCThreadState::self();
VLOG("StatsService::cmd_clear_puller_cache with Pid %i, Uid %i",
ipc->getCallingPid(), ipc->getCallingUid());
- if (checkCallingPermission(String16(kPermissionDump))) {
+ if (checkPermission(kPermissionDump)) {
int cleared = mPullerManager->ForceClearPullerCache();
dprintf(out, "Puller removed %d cached data!\n", cleared);
return NO_ERROR;
@@ -927,7 +919,7 @@ status_t StatsService::cmd_print_logs(int out, const Vector<String8>& args) {
IPCThreadState* ipc = IPCThreadState::self();
VLOG("StatsService::cmd_print_logs with Pid %i, Uid %i", ipc->getCallingPid(),
ipc->getCallingUid());
- if (checkCallingPermission(String16(kPermissionDump))) {
+ if (checkPermission(kPermissionDump)) {
bool enabled = true;
if (args.size() >= 2) {
enabled = atoi(args[1].c_str()) != 0;
@@ -1301,101 +1293,6 @@ Status StatsService::unregisterNativePullAtomCallback(int32_t atomTag) {
return Status::ok();
}
-Status StatsService::sendBinaryPushStateChangedAtom(const android::String16& trainNameIn,
- const int64_t trainVersionCodeIn,
- const int options,
- const int32_t state,
- const std::vector<int64_t>& experimentIdsIn) {
- // Note: We skip the usage stats op check here since we do not have a package name.
- // This is ok since we are overloading the usage_stats permission.
- // This method only sends data, it does not receive it.
- pid_t pid = IPCThreadState::self()->getCallingPid();
- uid_t uid = IPCThreadState::self()->getCallingUid();
- // Root, system, and shell always have access
- if (uid != AID_ROOT && uid != AID_SYSTEM && uid != AID_SHELL) {
- // Caller must be granted these permissions
- if (!checkCallingPermission(String16(kPermissionDump))) {
- return exception(binder::Status::EX_SECURITY,
- StringPrintf("UID %d / PID %d lacks permission %s", uid, pid,
- kPermissionDump));
- }
- if (!checkCallingPermission(String16(kPermissionUsage))) {
- return exception(binder::Status::EX_SECURITY,
- StringPrintf("UID %d / PID %d lacks permission %s", uid, pid,
- kPermissionUsage));
- }
- }
-
- bool readTrainInfoSuccess = false;
- InstallTrainInfo trainInfoOnDisk;
- readTrainInfoSuccess = StorageManager::readTrainInfo(trainInfoOnDisk);
-
- bool resetExperimentIds = false;
- int64_t trainVersionCode = trainVersionCodeIn;
- std::string trainNameUtf8 = std::string(String8(trainNameIn).string());
- if (readTrainInfoSuccess) {
- // Keep the old train version if we received an empty version.
- if (trainVersionCodeIn == -1) {
- trainVersionCode = trainInfoOnDisk.trainVersionCode;
- } else if (trainVersionCodeIn != trainInfoOnDisk.trainVersionCode) {
- // Reset experiment ids if we receive a new non-empty train version.
- resetExperimentIds = true;
- }
-
- // Keep the old train name if we received an empty train name.
- if (trainNameUtf8.size() == 0) {
- trainNameUtf8 = trainInfoOnDisk.trainName;
- } else if (trainNameUtf8 != trainInfoOnDisk.trainName) {
- // Reset experiment ids if we received a new valid train name.
- resetExperimentIds = true;
- }
-
- // Reset if we received a different experiment id.
- if (!experimentIdsIn.empty() &&
- (trainInfoOnDisk.experimentIds.empty() ||
- experimentIdsIn[0] != trainInfoOnDisk.experimentIds[0])) {
- resetExperimentIds = true;
- }
- }
-
- // Find the right experiment IDs
- std::vector<int64_t> experimentIds;
- if (resetExperimentIds || !readTrainInfoSuccess) {
- experimentIds = experimentIdsIn;
- } else {
- experimentIds = trainInfoOnDisk.experimentIds;
- }
-
- if (!experimentIds.empty()) {
- int64_t firstId = experimentIds[0];
- switch (state) {
- case android::util::BINARY_PUSH_STATE_CHANGED__STATE__INSTALL_SUCCESS:
- experimentIds.push_back(firstId + 1);
- break;
- case android::util::BINARY_PUSH_STATE_CHANGED__STATE__INSTALLER_ROLLBACK_INITIATED:
- experimentIds.push_back(firstId + 2);
- break;
- case android::util::BINARY_PUSH_STATE_CHANGED__STATE__INSTALLER_ROLLBACK_SUCCESS:
- experimentIds.push_back(firstId + 3);
- break;
- }
- }
-
- // Flatten the experiment IDs to proto
- vector<uint8_t> experimentIdsProtoBuffer;
- writeExperimentIdsToProto(experimentIds, &experimentIdsProtoBuffer);
- StorageManager::writeTrainInfo(trainVersionCode, trainNameUtf8, state, experimentIds);
-
- userid_t userId = multiuser_get_user_id(uid);
- bool requiresStaging = options & IStatsd::FLAG_REQUIRE_STAGING;
- bool rollbackEnabled = options & IStatsd::FLAG_ROLLBACK_ENABLED;
- bool requiresLowLatencyMonitor = options & IStatsd::FLAG_REQUIRE_LOW_LATENCY_MONITOR;
- LogEvent event(trainNameUtf8, trainVersionCode, requiresStaging, rollbackEnabled,
- requiresLowLatencyMonitor, state, experimentIdsProtoBuffer, userId);
- mProcessor->OnLogEvent(&event);
- return Status::ok();
-}
-
Status StatsService::sendWatchdogRollbackOccurredAtom(const int32_t rollbackTypeIn,
const android::String16& packageNameIn,
const int64_t packageVersionCodeIn,
@@ -1410,12 +1307,12 @@ Status StatsService::sendWatchdogRollbackOccurredAtom(const int32_t rollbackType
// Root, system, and shell always have access
if (uid != AID_ROOT && uid != AID_SYSTEM && uid != AID_SHELL) {
// Caller must be granted these permissions
- if (!checkCallingPermission(String16(kPermissionDump))) {
+ if (!checkPermission(kPermissionDump)) {
return exception(binder::Status::EX_SECURITY,
StringPrintf("UID %d / PID %d lacks permission %s", uid, pid,
kPermissionDump));
}
- if (!checkCallingPermission(String16(kPermissionUsage))) {
+ if (!checkPermission(kPermissionUsage)) {
return exception(binder::Status::EX_SECURITY,
StringPrintf("UID %d / PID %d lacks permission %s", uid, pid,
kPermissionUsage));
@@ -1457,7 +1354,6 @@ Status StatsService::sendWatchdogRollbackOccurredAtom(const int32_t rollbackType
return Status::ok();
}
-
Status StatsService::getRegisteredExperimentIds(std::vector<int64_t>* experimentIdsOut) {
ENFORCE_UID(AID_SYSTEM);
// TODO: add verifier permission
@@ -1475,103 +1371,6 @@ Status StatsService::getRegisteredExperimentIds(std::vector<int64_t>* experiment
return Status::ok();
}
-hardware::Return<void> StatsService::reportSpeakerImpedance(
- const SpeakerImpedance& speakerImpedance) {
- android::util::stats_write(android::util::SPEAKER_IMPEDANCE_REPORTED,
- speakerImpedance.speakerLocation, speakerImpedance.milliOhms);
-
- return hardware::Void();
-}
-
-hardware::Return<void> StatsService::reportHardwareFailed(const HardwareFailed& hardwareFailed) {
- android::util::stats_write(android::util::HARDWARE_FAILED, int32_t(hardwareFailed.hardwareType),
- hardwareFailed.hardwareLocation, int32_t(hardwareFailed.errorCode));
-
- return hardware::Void();
-}
-
-hardware::Return<void> StatsService::reportPhysicalDropDetected(
- const PhysicalDropDetected& physicalDropDetected) {
- android::util::stats_write(android::util::PHYSICAL_DROP_DETECTED,
- int32_t(physicalDropDetected.confidencePctg), physicalDropDetected.accelPeak,
- physicalDropDetected.freefallDuration);
-
- return hardware::Void();
-}
-
-hardware::Return<void> StatsService::reportChargeCycles(const ChargeCycles& chargeCycles) {
- std::vector<int32_t> buckets = chargeCycles.cycleBucket;
- int initialSize = buckets.size();
- for (int i = 0; i < 10 - initialSize; i++) {
- buckets.push_back(-1); // Push -1 for buckets that do not exist.
- }
- android::util::stats_write(android::util::CHARGE_CYCLES_REPORTED, buckets[0], buckets[1],
- buckets[2], buckets[3], buckets[4], buckets[5], buckets[6], buckets[7], buckets[8],
- buckets[9]);
-
- return hardware::Void();
-}
-
-hardware::Return<void> StatsService::reportBatteryHealthSnapshot(
- const BatteryHealthSnapshotArgs& batteryHealthSnapshotArgs) {
- android::util::stats_write(android::util::BATTERY_HEALTH_SNAPSHOT,
- int32_t(batteryHealthSnapshotArgs.type), batteryHealthSnapshotArgs.temperatureDeciC,
- batteryHealthSnapshotArgs.voltageMicroV, batteryHealthSnapshotArgs.currentMicroA,
- batteryHealthSnapshotArgs.openCircuitVoltageMicroV,
- batteryHealthSnapshotArgs.resistanceMicroOhm, batteryHealthSnapshotArgs.levelPercent);
-
- return hardware::Void();
-}
-
-hardware::Return<void> StatsService::reportSlowIo(const SlowIo& slowIo) {
- android::util::stats_write(android::util::SLOW_IO, int32_t(slowIo.operation), slowIo.count);
-
- return hardware::Void();
-}
-
-hardware::Return<void> StatsService::reportBatteryCausedShutdown(
- const BatteryCausedShutdown& batteryCausedShutdown) {
- android::util::stats_write(android::util::BATTERY_CAUSED_SHUTDOWN,
- batteryCausedShutdown.voltageMicroV);
-
- return hardware::Void();
-}
-
-hardware::Return<void> StatsService::reportUsbPortOverheatEvent(
- const UsbPortOverheatEvent& usbPortOverheatEvent) {
- android::util::stats_write(android::util::USB_PORT_OVERHEAT_EVENT_REPORTED,
- usbPortOverheatEvent.plugTemperatureDeciC, usbPortOverheatEvent.maxTemperatureDeciC,
- usbPortOverheatEvent.timeToOverheat, usbPortOverheatEvent.timeToHysteresis,
- usbPortOverheatEvent.timeToInactive);
-
- return hardware::Void();
-}
-
-hardware::Return<void> StatsService::reportSpeechDspStat(
- const SpeechDspStat& speechDspStat) {
- android::util::stats_write(android::util::SPEECH_DSP_STAT_REPORTED,
- speechDspStat.totalUptimeMillis, speechDspStat.totalDowntimeMillis,
- speechDspStat.totalCrashCount, speechDspStat.totalRecoverCount);
-
- return hardware::Void();
-}
-
-hardware::Return<void> StatsService::reportVendorAtom(const VendorAtom& vendorAtom) {
- std::string reverseDomainName = (std::string) vendorAtom.reverseDomainName;
- if (vendorAtom.atomId < 100000 || vendorAtom.atomId >= 200000) {
- ALOGE("Atom ID %ld is not a valid vendor atom ID", (long) vendorAtom.atomId);
- return hardware::Void();
- }
- if (reverseDomainName.length() > 50) {
- ALOGE("Vendor atom reverse domain name %s is too long.", reverseDomainName.c_str());
- return hardware::Void();
- }
- LogEvent event(getWallClockSec() * NS_PER_SEC, getElapsedRealtimeNs(), vendorAtom);
- mProcessor->OnLogEvent(&event);
-
- return hardware::Void();
-}
-
void StatsService::binderDied(const wp <IBinder>& who) {
ALOGW("statscompanion service died");
StatsdStats::getInstance().noteSystemServerRestart(getWallClockSec());
diff --git a/cmds/statsd/src/StatsService.h b/cmds/statsd/src/StatsService.h
index f2079d9f278f..82a5a5305df4 100644
--- a/cmds/statsd/src/StatsService.h
+++ b/cmds/statsd/src/StatsService.h
@@ -27,8 +27,6 @@
#include "shell/ShellSubscriber.h"
#include "statscompanion_util.h"
-#include <android/frameworks/stats/1.0/IStats.h>
-#include <android/frameworks/stats/1.0/types.h>
#include <android/os/BnStatsd.h>
#include <android/os/IPendingIntentRef.h>
#include <android/os/IStatsCompanionService.h>
@@ -37,13 +35,10 @@
#include <binder/ParcelFileDescriptor.h>
#include <utils/Looper.h>
-#include <deque>
#include <mutex>
using namespace android;
-using namespace android::base;
using namespace android::binder;
-using namespace android::frameworks::stats::V1_0;
using namespace android::os;
using namespace std;
@@ -51,10 +46,7 @@ namespace android {
namespace os {
namespace statsd {
-using android::hardware::Return;
-
class StatsService : public BnStatsd,
- public IStats,
public IBinder::DeathRecipient {
public:
StatsService(const sp<Looper>& handlerLooper, std::shared_ptr<LogEventQueue> queue);
@@ -195,16 +187,6 @@ public:
virtual Status unregisterNativePullAtomCallback(int32_t atomTag) override;
/**
- * Binder call to log BinaryPushStateChanged atom.
- */
- virtual Status sendBinaryPushStateChangedAtom(
- const android::String16& trainNameIn,
- const int64_t trainVersionCodeIn,
- const int options,
- const int32_t state,
- const std::vector<int64_t>& experimentIdsIn) override;
-
- /**
* Binder call to log WatchdogRollbackOccurred atom.
*/
virtual Status sendWatchdogRollbackOccurredAtom(
@@ -219,61 +201,6 @@ public:
*/
virtual Status getRegisteredExperimentIds(std::vector<int64_t>* expIdsOut);
- /**
- * Binder call to get SpeakerImpedance atom.
- */
- virtual Return<void> reportSpeakerImpedance(const SpeakerImpedance& speakerImpedance) override;
-
- /**
- * Binder call to get HardwareFailed atom.
- */
- virtual Return<void> reportHardwareFailed(const HardwareFailed& hardwareFailed) override;
-
- /**
- * Binder call to get PhysicalDropDetected atom.
- */
- virtual Return<void> reportPhysicalDropDetected(
- const PhysicalDropDetected& physicalDropDetected) override;
-
- /**
- * Binder call to get ChargeCyclesReported atom.
- */
- virtual Return<void> reportChargeCycles(const ChargeCycles& chargeCycles) override;
-
- /**
- * Binder call to get BatteryHealthSnapshot atom.
- */
- virtual Return<void> reportBatteryHealthSnapshot(
- const BatteryHealthSnapshotArgs& batteryHealthSnapshotArgs) override;
-
- /**
- * Binder call to get SlowIo atom.
- */
- virtual Return<void> reportSlowIo(const SlowIo& slowIo) override;
-
- /**
- * Binder call to get BatteryCausedShutdown atom.
- */
- virtual Return<void> reportBatteryCausedShutdown(
- const BatteryCausedShutdown& batteryCausedShutdown) override;
-
- /**
- * Binder call to get UsbPortOverheatEvent atom.
- */
- virtual Return<void> reportUsbPortOverheatEvent(
- const UsbPortOverheatEvent& usbPortOverheatEvent) override;
-
- /**
- * Binder call to get Speech DSP state atom.
- */
- virtual Return<void> reportSpeechDspStat(
- const SpeechDspStat& speechDspStat) override;
-
- /**
- * Binder call to get vendor atom.
- */
- virtual Return<void> reportVendorAtom(const VendorAtom& vendorAtom) override;
-
/** IBinder::DeathRecipient */
virtual void binderDied(const wp<IBinder>& who) override;
diff --git a/cmds/statsd/src/anomaly/AlarmMonitor.h b/cmds/statsd/src/anomaly/AlarmMonitor.h
index bca858e67f13..219695ef5e43 100644
--- a/cmds/statsd/src/anomaly/AlarmMonitor.h
+++ b/cmds/statsd/src/anomaly/AlarmMonitor.h
@@ -21,8 +21,6 @@
#include <android/os/IStatsCompanionService.h>
#include <utils/RefBase.h>
-#include <queue>
-#include <set>
#include <unordered_set>
#include <vector>
diff --git a/cmds/statsd/src/anomaly/AnomalyTracker.h b/cmds/statsd/src/anomaly/AnomalyTracker.h
index e9414735b82b..794ee988ef55 100644
--- a/cmds/statsd/src/anomaly/AnomalyTracker.h
+++ b/cmds/statsd/src/anomaly/AnomalyTracker.h
@@ -16,8 +16,6 @@
#pragma once
-#include <memory> // unique_ptr
-
#include <stdlib.h>
#include <gtest/gtest_prod.h>
diff --git a/cmds/statsd/src/anomaly/subscriber_util.cpp b/cmds/statsd/src/anomaly/subscriber_util.cpp
index 4c30c4cb223c..5a4a41d01de6 100644
--- a/cmds/statsd/src/anomaly/subscriber_util.cpp
+++ b/cmds/statsd/src/anomaly/subscriber_util.cpp
@@ -17,10 +17,6 @@
#define DEBUG false // STOPSHIP if true
#include "Log.h"
-#include <android/os/IIncidentManager.h>
-#include <android/os/IncidentReportArgs.h>
-#include <binder/IServiceManager.h>
-
#include "external/Perfetto.h"
#include "subscriber/IncidentdReporter.h"
#include "subscriber/SubscriberReporter.h"
diff --git a/cmds/statsd/src/atom_field_options.proto b/cmds/statsd/src/atom_field_options.proto
index 946c55087005..9c875ba7502d 100644
--- a/cmds/statsd/src/atom_field_options.proto
+++ b/cmds/statsd/src/atom_field_options.proto
@@ -24,46 +24,75 @@ option java_outer_classname = "AtomFieldOptions";
import "google/protobuf/descriptor.proto";
enum StateField {
- // Default value for fields that are not primary or exclusive state.
+ // Default value for fields that are not a primary or exclusive state field.
STATE_FIELD_UNSET = 0;
// Fields that represent the key that the state belongs to.
- PRIMARY = 1;
+ // Used on simple proto fields. Do not use on attribution chains.
+ PRIMARY_FIELD = 1;
// The field that represents the state. It's an exclusive state.
- EXCLUSIVE = 2;
-
+ EXCLUSIVE_STATE = 2;
+ // Used on an attribution chain field to indicate that the first uid is the
+ // primary field.
PRIMARY_FIELD_FIRST_UID = 3;
}
-// Used to annotate an atom that reprsents a state change. A state change atom must have exactly ONE
-// exclusive state field, and any number of primary key fields.
-// For example,
-// message UidProcessStateChanged {
-// optional int32 uid = 1 [(state_field_option).option = PRIMARY];
-// optional android.app.ProcessStateEnum state = 2 [(state_field_option).option = EXCLUSIVE];
+// Used to annotate an atom that represents a state change. A state change atom must have exactly
+// ONE exclusive state field, and any number of primary key fields. For example, message
+// UidProcessStateChanged {
+// optional int32 uid = 1 [(state_field_option).option = PRIMARY_FIELD];
+// optional android.app.ProcessStateEnum state = 2 [(state_field_option).option =
+// EXCLUSIVE_STATE];
// }
-// Each of this UidProcessStateChanged atom represents a state change for a specific uid.
+// Each UidProcessStateChanged atom event represents a state change for a specific uid.
// A new state automatically overrides the previous state.
//
-// If the atom has 2 or more primary fields, it means the combination of the primary fields are
-// the primary key.
+// If the atom has 2 or more primary fields, it means the combination of the
+// primary fields are the primary key.
// For example:
// message ThreadStateChanged {
-// optional int32 pid = 1 [(state_field_option).option = PRIMARY];
-// optional int32 tid = 2 [(state_field_option).option = PRIMARY];
-// optional int32 state = 3 [(state_field_option).option = EXCLUSIVE];
+// optional int32 pid = 1 [(state_field_option).option = PRIMARY_FIELD];
+// optional int32 tid = 2 [(state_field_option).option = PRIMARY_FIELD];
+// optional int32 state = 3 [(state_field_option).option = EXCLUSIVE_STATE];
// }
//
// Sometimes, there is no primary key field, when the state is GLOBAL.
// For example,
-//
// message ScreenStateChanged {
-// optional android.view.DisplayStateEnum state = 1 [(state_field_option).option = EXCLUSIVE];
+// optional android.view.DisplayStateEnum state = 1 [(state_field_option).option =
+// EXCLUSIVE_STATE];
// }
//
-// Only fields of primary types can be annotated. AttributionNode cannot be primary keys (and they
-// usually are not).
+// For state atoms with attribution chain, sometimes the primary key is the first uid in the chain.
+// For example:
+// message AudioStateChanged {
+// repeated AttributionNode attribution_node = 1
+// [(stateFieldOption).option = PRIMARY_KEY_FIRST_UID];
+//
+// enum State {
+// OFF = 0;
+// ON = 1;
+// // RESET indicates all audio stopped. Used when it (re)starts (e.g. after it crashes).
+// RESET = 2;
+// }
+// optional State state = 2 [(stateFieldOption).option = EXCLUSIVE_STATE];
+// }
message StateAtomFieldOption {
optional StateField option = 1 [default = STATE_FIELD_UNSET];
+
+ // Note: We cannot annotate directly on the enums because many enums are imported from other
+ // proto files in the platform. proto-lite cc library does not support annotations unfortunately
+
+ // Knowing the default state value allows state trackers to remove entries that become the
+ // default state. If there is no default value specified, the default value is unknown, and all
+ // states will be tracked in memory.
+ optional int32 default_state_value = 2;
+
+ // A reset state signals all states go to default value. For example, BLE reset means all active
+ // BLE scans are to be turned off.
+ optional int32 reset_state_value = 3;
+
+ // If the state change needs to count nesting.
+ optional bool nested = 4 [default = true];
}
// Used to generate StatsLog.write APIs.
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index 0906b359e9b9..71afc32686f1 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -202,7 +202,8 @@ message Atom {
DocsUIStartupMsReported docs_ui_startup_ms = 111 [(module) = "docsui"];
DocsUIUserActionReported docs_ui_user_action_reported = 112 [(module) = "docsui"];
WifiEnabledStateChanged wifi_enabled_state_changed = 113 [(module) = "framework"];
- WifiRunningStateChanged wifi_running_state_changed = 114 [(module) = "framework"];
+ WifiRunningStateChanged wifi_running_state_changed = 114
+ [(module) = "framework", deprecated = true];
AppCompacted app_compacted = 115 [(module) = "framework"];
NetworkDnsEventReported network_dns_event_reported = 116 [(module) = "resolv"];
DocsUIPickerLaunchedFromReported docs_ui_picker_launched_from_reported =
@@ -226,14 +227,14 @@ message Atom {
GnssNfwNotificationReported gnss_nfw_notification_reported = 131 [(module) = "framework"];
GnssConfigurationReported gnss_configuration_reported = 132 [(module) = "framework"];
UsbPortOverheatEvent usb_port_overheat_event_reported = 133;
- NfcErrorOccurred nfc_error_occurred = 134;
- NfcStateChanged nfc_state_changed = 135;
- NfcBeamOccurred nfc_beam_occurred = 136;
- NfcCardemulationOccurred nfc_cardemulation_occurred = 137;
- NfcTagOccurred nfc_tag_occurred = 138;
- NfcHceTransactionOccurred nfc_hce_transaction_occurred = 139;
- SeStateChanged se_state_changed = 140;
- SeOmapiReported se_omapi_reported = 141;
+ NfcErrorOccurred nfc_error_occurred = 134 [(module) = "nfc"];
+ NfcStateChanged nfc_state_changed = 135 [(module) = "nfc"];
+ NfcBeamOccurred nfc_beam_occurred = 136 [(module) = "nfc"];
+ NfcCardemulationOccurred nfc_cardemulation_occurred = 137 [(module) = "nfc"];
+ NfcTagOccurred nfc_tag_occurred = 138 [(module) = "nfc"];
+ NfcHceTransactionOccurred nfc_hce_transaction_occurred = 139 [(module) = "nfc"];
+ SeStateChanged se_state_changed = 140 [(module) = "secure_element"];
+ SeOmapiReported se_omapi_reported = 141 [(module) = "secure_element"];
BroadcastDispatchLatencyReported broadcast_dispatch_latency_reported =
142 [(module) = "framework"];
AttentionManagerServiceResultReported attention_manager_service_result_reported =
@@ -378,15 +379,19 @@ message Atom {
BootTimeEventUtcTime boot_time_event_utc_time_reported = 241;
BootTimeEventErrorCode boot_time_event_error_code_reported = 242 [(module) = "framework"];
UserspaceRebootReported userspace_reboot_reported = 243;
- NotificationReported notification_reported = 244;
+ NotificationReported notification_reported = 244 [(module) = "framework"];
NotificationPanelReported notification_panel_reported = 245;
NotificationChannelModified notification_panel_modified = 246;
- IntegrityCheckResultReported integrity_check_result_reported = 247;
- IntegrityRulesPushed integrity_rules_pushed = 248;
+ IntegrityCheckResultReported integrity_check_result_reported = 247 [(module) = "framework"];
+ IntegrityRulesPushed integrity_rules_pushed = 248 [(module) = "framework"];
CellBroadcastMessageReported cb_message_reported =
249 [(module) = "cellbroadcast"];
CellBroadcastMessageError cb_message_error =
250 [(module) = "cellbroadcast"];
+ WifiHealthStatReported wifi_health_stat_reported = 251 [(module) = "wifi"];
+ WifiFailureStatReported wifi_failure_stat_reported = 252 [(module) = "wifi"];
+ WifiConnectionResultReported wifi_connection_result_reported = 253 [(module) = "wifi"];
+ SdkExtensionStatus sdk_extension_status = 354;
}
// Pulled events will start at field 10000.
@@ -411,8 +416,8 @@ message Atom {
CpuActiveTime cpu_active_time = 10016 [(module) = "framework"];
CpuClusterTime cpu_cluster_time = 10017 [(module) = "framework"];
DiskSpace disk_space = 10018 [deprecated=true];
- RemainingBatteryCapacity remaining_battery_capacity = 10019;
- FullBatteryCapacity full_battery_capacity = 10020;
+ RemainingBatteryCapacity remaining_battery_capacity = 10019 [(module) = "framework"];
+ FullBatteryCapacity full_battery_capacity = 10020 [(module) = "framework"];
Temperature temperature = 10021 [(module) = "framework"];
BinderCalls binder_calls = 10022 [(module) = "framework"];
BinderCallsExceptions binder_calls_exceptions = 10023 [(module) = "framework"];
@@ -422,7 +427,7 @@ message Atom {
AppSize app_size = 10027 [(module) = "framework"];
CategorySize category_size = 10028 [(module) = "framework"];
ProcStats proc_stats = 10029 [(module) = "framework"];
- BatteryVoltage battery_voltage = 10030;
+ BatteryVoltage battery_voltage = 10030 [(module) = "framework"];
NumFingerprintsEnrolled num_fingerprints_enrolled = 10031 [(module) = "framework"];
DiskIo disk_io = 10032 [(module) = "framework"];
PowerProfile power_profile = 10033 [(module) = "framework"];
@@ -436,9 +441,9 @@ message Atom {
DeviceCalculatedPowerBlameOther device_calculated_power_blame_other =
10041 [(module) = "framework"];
ProcessMemoryHighWaterMark process_memory_high_water_mark = 10042 [(module) = "framework"];
- BatteryLevel battery_level = 10043;
+ BatteryLevel battery_level = 10043 [(module) = "framework"];
BuildInformation build_information = 10044 [(module) = "framework"];
- BatteryCycleCount battery_cycle_count = 10045;
+ BatteryCycleCount battery_cycle_count = 10045 [(module) = "framework"];
DebugElapsedClock debug_elapsed_clock = 10046 [(module) = "framework"];
DebugFailingElapsedClock debug_failing_elapsed_clock = 10047 [(module) = "framework"];
NumFacesEnrolled num_faces_enrolled = 10048 [(module) = "framework"];
@@ -463,7 +468,7 @@ message Atom {
DangerousPermissionStateSampled dangerous_permission_state_sampled =
10067 [(module) = "framework"];
GraphicsStats graphics_stats = 10068;
- RuntimeAppOpsAccess runtime_app_ops_access = 10069;
+ RuntimeAppOpAccess runtime_app_op_access = 10069 [(module) = "framework"];
IonHeapSize ion_heap_size = 10070 [(module) = "framework"];
}
@@ -560,7 +565,8 @@ message ThermalThrottlingStateChanged {
*/
message ScreenStateChanged {
// New screen state, from frameworks/base/core/proto/android/view/enums.proto.
- optional android.view.DisplayStateEnum state = 1 [(state_field_option).option = EXCLUSIVE];
+ optional android.view.DisplayStateEnum state = 1
+ [(state_field_option).option = EXCLUSIVE_STATE, (state_field_option).nested = false];
}
/**
@@ -571,10 +577,11 @@ message ScreenStateChanged {
* frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
*/
message UidProcessStateChanged {
- optional int32 uid = 1 [(state_field_option).option = PRIMARY, (is_uid) = true];
+ optional int32 uid = 1 [(state_field_option).option = PRIMARY_FIELD, (is_uid) = true];
// The state, from frameworks/base/core/proto/android/app/enums.proto.
- optional android.app.ProcessStateEnum state = 2 [(state_field_option).option = EXCLUSIVE];
+ optional android.app.ProcessStateEnum state = 2
+ [(state_field_option).option = EXCLUSIVE_STATE, (state_field_option).nested = false];
}
/**
@@ -606,7 +613,7 @@ message ActivityManagerSleepStateChanged {
ASLEEP = 1;
AWAKE = 2;
}
- optional State state = 1 [(state_field_option).option = EXCLUSIVE];
+ optional State state = 1 [(state_field_option).option = EXCLUSIVE_STATE];
}
/**
@@ -625,7 +632,7 @@ message MemoryFactorStateChanged {
CRITICAL = 4; // critical memory.
}
- optional State factor = 1 [(state_field_option).option = EXCLUSIVE];
+ optional State factor = 1 [(state_field_option).option = EXCLUSIVE_STATE];
}
/**
@@ -658,6 +665,81 @@ message CachedKillReported {
}
/**
+ * Logs the change in wifi health.
+ *
+ * Logged from:
+ * frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiDataStall.java
+ */
+message WifiHealthStatReported {
+ // duration this stat is obtained over in milliseconds
+ optional int32 duration_millis = 1;
+ // whether wifi is classified as sufficient for the user's data traffic, determined
+ // by whether the calculated throughput exceeds the average demand within |duration_millis|
+ optional bool is_sufficient = 2;
+ // whether the calculated throughput is exceeds the minimum required for typical usage
+ optional bool is_throughput_good = 3;
+ // whether cellular data is available
+ optional bool is_cell_data_available = 4;
+ // the WLAN channel the connected network is on (ie. 2412)
+ optional int32 frequency = 5;
+}
+
+/**
+ * Logged when wifi detects a significant change in connection failure rate.
+ *
+ * Logged from: frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiHealthMonitor.java
+ *
+ */
+message WifiFailureStatReported {
+ enum AbnormalityType {
+ UNKNOWN = 0;
+ SIGNIFICANT_INCREASE = 1;
+ SIGNIFICANT_DECREASE = 2;
+ SIMPLY_HIGH = 3;
+ }
+ enum FailureType {
+ FAILURE_UNKNOWN = 0;
+ FAILURE_CONNECTION = 1;
+ FAILURE_ASSOCIATION_REJECTION = 2;
+ FAILURE_ASSOCIATION_TIMEOUT = 3;
+ FAILURE_AUTHENTICATION = 4;
+ FAILURE_NON_LOCAL_DISCONNECTION = 5;
+ FAILURE_SHORT_CONNECTION_DUE_TO_NON_LOCAL_DISCONNECTION = 6;
+ }
+ // Reason for uploading this stat
+ optional AbnormalityType abnormality_type = 1;
+ // The particular type of failure
+ optional FailureType failure_type = 2;
+ // How many times we have encountered this combination of AbnormalityType and FailureType
+ optional int32 failure_count = 3;
+}
+
+/**
+ * Logs whether a wifi connection is successful and reasons for failure if it isn't.
+ *
+ * Logged from:
+ * frameworks/opt/net/wifi/service/java/com/android/server/wifi/ClientModeImpl.java
+ */
+message WifiConnectionResultReported {
+ enum FailureCode {
+ FAILURE_UNKNOWN = 0;
+ FAILURE_ASSOCIATION_TIMEOUT = 1;
+ FAILURE_ASSOCIATION_REJECTION = 2;
+ FAILURE_AUTHENTICATION_GENERAL = 3;
+ FAILURE_AUTHENTICATION_EAP = 4;
+ FAILURE_DHCP = 5;
+ FAILURE_NETWORK_DISCONNECTION = 6;
+ FAILURE_ROAM_TIMEOUT = 7;
+ }
+ // true represents a successful connection
+ optional bool connection_result = 1;
+ // reason for the connection failure
+ optional FailureCode failure_code = 2;
+ // scan rssi before the connection attempt
+ optional int32 rssi = 3;
+}
+
+/**
* Logs when memory stats of a process is reported.
*
* Logged from:
@@ -712,7 +794,8 @@ message ProcessLifeCycleStateChanged {
* packages/apps/Bluetooth/src/com/android/bluetooth/gatt/AppScanStats.java
*/
message BleScanStateChanged {
- repeated AttributionNode attribution_node = 1;
+ repeated AttributionNode attribution_node = 1
+ [(state_field_option).option = PRIMARY_FIELD_FIRST_UID];
enum State {
OFF = 0;
@@ -720,14 +803,19 @@ message BleScanStateChanged {
// RESET indicates all ble stopped. Used when it (re)starts (e.g. after it crashes).
RESET = 2;
}
- optional State state = 2;
+ optional State state = 2 [
+ (state_field_option).option = EXCLUSIVE_STATE,
+ (state_field_option).default_state_value = 0 /* State.OFF */,
+ (state_field_option).reset_state_value = 2 /* State.RESET */,
+ (state_field_option).nested = true
+ ];
// Does the scan have a filter.
- optional bool is_filtered = 3;
+ optional bool is_filtered = 3 [(state_field_option).option = PRIMARY_FIELD];
// Whether the scan is a CALLBACK_TYPE_FIRST_MATCH scan. Called 'background' scan internally.
- optional bool is_first_match = 4;
+ optional bool is_first_match = 4 [(state_field_option).option = PRIMARY_FIELD];
// Whether the scan set to piggy-back off the results of other scans (SCAN_MODE_OPPORTUNISTIC).
- optional bool is_opportunistic = 5;
+ optional bool is_opportunistic = 5 [(state_field_option).option = PRIMARY_FIELD];
}
/**
@@ -951,11 +1039,11 @@ message WakelockStateChanged {
// The type (level) of the wakelock; e.g. a partial wakelock or a full wakelock.
// From frameworks/base/core/proto/android/os/enums.proto.
- optional android.os.WakeLockLevelEnum type = 2 [(state_field_option).option = PRIMARY];
+ optional android.os.WakeLockLevelEnum type = 2 [(state_field_option).option = PRIMARY_FIELD];
;
// The wakelock tag (Called tag in the Java API, sometimes name elsewhere).
- optional string tag = 3 [(state_field_option).option = PRIMARY];
+ optional string tag = 3 [(state_field_option).option = PRIMARY_FIELD];
enum State {
RELEASE = 0;
@@ -963,7 +1051,11 @@ message WakelockStateChanged {
CHANGE_RELEASE = 2;
CHANGE_ACQUIRE = 3;
}
- optional State state = 4 [(state_field_option).option = EXCLUSIVE];
+ optional State state = 4 [
+ (state_field_option).option = EXCLUSIVE_STATE,
+ (state_field_option).default_state_value = 0,
+ (state_field_option).nested = true
+ ];
}
/**
@@ -1168,6 +1260,8 @@ message WifiEnabledStateChanged {
}
/**
+ * This atom is deprecated starting in R.
+ *
* Logs when an app causes Wifi to run. In this context, 'to run' means to use Wifi Client Mode.
* TODO: Include support for Hotspot, perhaps by using an extra field to denote 'mode'.
* Note that Wifi Scanning is monitored separately in WifiScanStateChanged.
@@ -3147,9 +3241,9 @@ message PictureInPictureStateChanged {
* services/core/java/com/android/server/wm/Session.java
*/
message OverlayStateChanged {
- optional int32 uid = 1 [(state_field_option).option = PRIMARY, (is_uid) = true];
+ optional int32 uid = 1 [(state_field_option).option = PRIMARY_FIELD, (is_uid) = true];
- optional string package_name = 2 [(state_field_option).option = PRIMARY];
+ optional string package_name = 2 [(state_field_option).option = PRIMARY_FIELD];
optional bool using_alert_window = 3;
@@ -3157,7 +3251,11 @@ message OverlayStateChanged {
ENTERED = 1;
EXITED = 2;
}
- optional State state = 4 [(state_field_option).option = EXCLUSIVE];
+ optional State state = 4 [
+ (state_field_option).option = EXCLUSIVE_STATE,
+ (state_field_option).nested = false,
+ (state_field_option).default_state_value = 2
+ ];
}
/*
@@ -3323,7 +3421,7 @@ message LmkKillOccurred {
*/
message AppDied {
// timestamp(elapsedRealtime) of record creation
- optional uint64 timestamp_millis = 1 [(state_field_option).option = EXCLUSIVE];
+ optional uint64 timestamp_millis = 1 [(state_field_option).option = EXCLUSIVE_STATE];
}
/**
@@ -3612,6 +3710,7 @@ message FlagFlipUpdateOccurred {
/**
* Potential experiment ids that goes with a train install.
+ * Should be kept in sync with experiment_ids.proto.
*/
message TrainExperimentIds {
repeated int64 experiment_id = 1;
@@ -3843,7 +3942,7 @@ message PrivacyIndicatorsInteracted {
DIALOG_LINE_ITEM = 5;
}
- optional Type type = 1 [(state_field_option).option = EXCLUSIVE];
+ optional Type type = 1 [(state_field_option).option = EXCLUSIVE_STATE];
// Used if the type is LINE_ITEM
optional string package_name = 2;
@@ -4153,6 +4252,9 @@ message BootTimeEventDuration {
// Time since last factory reset.
// Logged from bootstat.
FACTORY_RESET_TIME_SINCE_RESET = 18;
+ // Init's total time spent for completing the 1st stage.
+ // Logged from bootstat.
+ ANDROID_INIT_STAGE_1 = 19;
}
// Type of the event.
@@ -4180,19 +4282,19 @@ message BootTimeEventElapsedTime {
// BOOT_COMPLETE for device with no encryption.
BOOT_COMPLETE_NO_ENCRYPTION = 4;
// Adjusted BOOT_COMPLETE for encrypted device extracting decryption time.
- BOOT_COMPLETE_POST_DESCRYPT = 5;
+ BOOT_COMPLETE_POST_DECRYPT = 5;
// BOOT_COMPLETE after factory reset.
FACTORY_RESET_BOOT_COMPLETE = 6;
// BOOT_COMPLETE_NO_ENCRYPTION after factory reset.
FACTORY_RESET_BOOT_COMPLETE_NO_ENCRYPTION = 7;
- // BOOT_COMPLETE_POST_DESCRYPT after factory reset.
- FACTORY_RESET_BOOT_COMPLETE_POST_DESCRYPT = 8;
+ // BOOT_COMPLETE_POST_DECRYPT after factory reset.
+ FACTORY_RESET_BOOT_COMPLETE_POST_DECRYPT = 8;
// BOOT_COMPLETE after OTA.
OTA_BOOT_COMPLETE = 9;
// BOOT_COMPLETE_NO_ENCRYPTION after OTA.
OTA_BOOT_COMPLETE_NO_ENCRYPTION = 10;
- // BOOT_COMPLETE_POST_DESCRYPT after OTA.
- OTA_BOOT_COMPLETE_POST_DESCRYPT = 11;
+ // BOOT_COMPLETE_POST_DECRYPT after OTA.
+ OTA_BOOT_COMPLETE_POST_DECRYPT = 11;
// Time when the system starts sending LOCKED_BOOT_COMPLETED broadcast.
// Logged from f/b/services/.../UserController.java
FRAMEWORK_LOCKED_BOOT_COMPLETED = 12;
@@ -6385,6 +6487,8 @@ message PermissionGrantRequestResultReported {
USER_DENIED_WITH_PREJUDICE_IN_SETTINGS = 14;
// permission was automatically revoked after one-time permission expired
AUTO_ONE_TIME_PERMISSION_REVOKED = 15;
+ // permission was automatically revoked for unused app
+ AUTO_UNUSED_APP_PERMISSION_REVOKED = 16;
}
// The result of the permission grant
optional Result result = 6;
@@ -7462,6 +7566,28 @@ message AppPermissionFragmentActionReported {
// The result of the permission grant
optional bool permission_granted = 6;
+
+ // State of Permission Flags after grant as per android.content.pm.PermissionFlags
+ optional int32 permission_flags = 7;
+
+ enum Button {
+ UNDEFINED = 0;
+ // Allow button
+ ALLOW = 1;
+ // Deny button
+ DENY = 2;
+ // Ask every time button
+ ASK_EVERY_TIME = 3;
+ // Allow all the time button
+ ALLOW_ALWAYS = 4;
+ // Allow only while using the app button
+ ALLOW_FOREGROUND = 5;
+ // Same is Deny button but shown in while in use dialog
+ DENY_FOREGROUND = 6;
+ }
+
+ // Button pressed in the dialog
+ optional Button button_pressed = 8;
}
/**
@@ -8054,15 +8180,15 @@ message GraphicsStats {
/**
* Message related to dangerous (runtime) app ops access
*/
-message RuntimeAppOpsAccess {
+message RuntimeAppOpAccess {
// Uid of the package accessing app op
optional int32 uid = 1 [(is_uid) = true];
// Name of the package accessing app op
optional string package_name = 2;
- // operation id; maps to the OP_* constants in AppOpsManager.java
- optional int32 op_id = 3;
+ // operation string id per OPSTR_ constants in AppOpsManager.java
+ optional string op = 3;
// feature id; provided by developer when accessing related API, limited at 50 chars by API.
// Features must be provided through manifest using <feature> tag available in R and above.
@@ -8212,3 +8338,27 @@ message CellBroadcastMessageError {
// Exception message (or log message) associated with the error (max 1000 chars)
optional string exception_message = 2;
}
+
+/**
+ * Logs when the SDK Extensions test app has polled the current version.
+ * This is atom ID 354.
+ *
+ * Logged from:
+ * vendor/google_testing/integration/packages/apps/SdkExtensionsTestApp/
+ */
+message SdkExtensionStatus {
+ enum ApiCallStatus {
+ CALL_NOT_ATTEMPTED = 0;
+ CALL_SUCCESSFUL = 1;
+ CALL_FAILED = 2;
+ }
+
+ optional ApiCallStatus result = 1;
+
+ // The R extension version, i.e. android.os.ext.SdkExtension.getExtensionVersion(R).
+ optional int32 r_extension_version = 2;
+
+ // A number identifying which particular symbol's call failed, if any. 0 means no missing symbol.
+ // "Failed" here can mean a symbol that wasn't meant to be visible was, or the other way around.
+ optional int32 failed_call_symbol = 3;
+}
diff --git a/cmds/statsd/src/condition/CombinationConditionTracker.cpp b/cmds/statsd/src/condition/CombinationConditionTracker.cpp
index 69aae3d1e31c..2d7f912dac84 100644
--- a/cmds/statsd/src/condition/CombinationConditionTracker.cpp
+++ b/cmds/statsd/src/condition/CombinationConditionTracker.cpp
@@ -18,15 +18,10 @@
#include "Log.h"
#include "CombinationConditionTracker.h"
-#include <log/logprint.h>
-
namespace android {
namespace os {
namespace statsd {
-using std::map;
-using std::string;
-using std::unique_ptr;
using std::unordered_map;
using std::vector;
diff --git a/cmds/statsd/src/condition/ConditionTracker.h b/cmds/statsd/src/condition/ConditionTracker.h
index e94ea6586f05..26de88860ab4 100644
--- a/cmds/statsd/src/condition/ConditionTracker.h
+++ b/cmds/statsd/src/condition/ConditionTracker.h
@@ -21,10 +21,8 @@
#include "matchers/LogMatchingTracker.h"
#include "matchers/matcher_util.h"
-#include <log/logprint.h>
#include <utils/RefBase.h>
-#include <unordered_set>
#include <unordered_map>
namespace android {
diff --git a/cmds/statsd/src/condition/ConditionWizard.cpp b/cmds/statsd/src/condition/ConditionWizard.cpp
index 4f44a69ba980..c542032b48ea 100644
--- a/cmds/statsd/src/condition/ConditionWizard.cpp
+++ b/cmds/statsd/src/condition/ConditionWizard.cpp
@@ -14,14 +14,11 @@
* limitations under the License.
*/
#include "ConditionWizard.h"
-#include <unordered_set>
namespace android {
namespace os {
namespace statsd {
-using std::map;
-using std::string;
using std::vector;
ConditionState ConditionWizard::query(const int index, const ConditionKey& parameters,
diff --git a/cmds/statsd/src/condition/SimpleConditionTracker.cpp b/cmds/statsd/src/condition/SimpleConditionTracker.cpp
index 0c92149f4c96..61760f3e29b2 100644
--- a/cmds/statsd/src/condition/SimpleConditionTracker.cpp
+++ b/cmds/statsd/src/condition/SimpleConditionTracker.cpp
@@ -24,11 +24,7 @@ namespace android {
namespace os {
namespace statsd {
-using std::map;
-using std::string;
-using std::unique_ptr;
using std::unordered_map;
-using std::vector;
SimpleConditionTracker::SimpleConditionTracker(
const ConfigKey& key, const int64_t& id, const int index,
diff --git a/cmds/statsd/src/condition/StateConditionTracker.cpp b/cmds/statsd/src/condition/StateConditionTracker.cpp
index 7f3eeddba831..d19a1761ac00 100644
--- a/cmds/statsd/src/condition/StateConditionTracker.cpp
+++ b/cmds/statsd/src/condition/StateConditionTracker.cpp
@@ -23,8 +23,6 @@ namespace android {
namespace os {
namespace statsd {
-using std::string;
-using std::unordered_set;
using std::vector;
StateConditionTracker::StateConditionTracker(const ConfigKey& key, const int64_t& id, const int index,
diff --git a/cmds/statsd/src/condition/condition_util.cpp b/cmds/statsd/src/condition/condition_util.cpp
index 35e03e45c785..60b8c53e91e1 100644
--- a/cmds/statsd/src/condition/condition_util.cpp
+++ b/cmds/statsd/src/condition/condition_util.cpp
@@ -18,11 +18,6 @@
#include "condition_util.h"
-#include <log/event_tag_map.h>
-#include <log/log_event_list.h>
-#include <log/logprint.h>
-#include <utils/Errors.h>
-#include <unordered_map>
#include "../matchers/matcher_util.h"
#include "ConditionTracker.h"
#include "frameworks/base/cmds/statsd/src/statsd_config.pb.h"
@@ -32,9 +27,6 @@ namespace android {
namespace os {
namespace statsd {
-using std::set;
-using std::string;
-using std::unordered_map;
using std::vector;
diff --git a/cmds/statsd/src/config/ConfigListener.h b/cmds/statsd/src/config/ConfigListener.h
index 54e77701b7dc..dcd5e52feefd 100644
--- a/cmds/statsd/src/config/ConfigListener.h
+++ b/cmds/statsd/src/config/ConfigListener.h
@@ -19,14 +19,12 @@
#include "config/ConfigKey.h"
#include <utils/RefBase.h>
-#include <string>
namespace android {
namespace os {
namespace statsd {
using android::RefBase;
-using std::string;
/**
* Callback for different subsystems inside statsd to implement to find out
diff --git a/cmds/statsd/src/config/ConfigManager.cpp b/cmds/statsd/src/config/ConfigManager.cpp
index 972adf7d4d05..986955bc5f39 100644
--- a/cmds/statsd/src/config/ConfigManager.cpp
+++ b/cmds/statsd/src/config/ConfigManager.cpp
@@ -25,8 +25,6 @@
#include "stats_util.h"
#include "stats_log_util.h"
-#include <android-base/file.h>
-#include <dirent.h>
#include <stdio.h>
#include <vector>
#include "android-base/stringprintf.h"
@@ -35,9 +33,7 @@ namespace android {
namespace os {
namespace statsd {
-using std::map;
using std::pair;
-using std::set;
using std::string;
using std::vector;
diff --git a/cmds/statsd/src/config/ConfigManager.h b/cmds/statsd/src/config/ConfigManager.h
index 88e864a2520b..2095173e8959 100644
--- a/cmds/statsd/src/config/ConfigManager.h
+++ b/cmds/statsd/src/config/ConfigManager.h
@@ -20,9 +20,7 @@
#include "config/ConfigListener.h"
#include <android/os/IPendingIntentRef.h>
-#include <map>
#include <mutex>
-#include <set>
#include <string>
#include <stdio.h>
diff --git a/cmds/statsd/src/experiment_ids.proto b/cmds/statsd/src/experiment_ids.proto
new file mode 100644
index 000000000000..c2036314cf58
--- /dev/null
+++ b/cmds/statsd/src/experiment_ids.proto
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+package android.os.statsd;
+
+option java_package = "com.android.internal.os";
+option java_outer_classname = "ExperimentIdsProto";
+
+// StatsLogProcessor uses the proto to parse experiment ids from
+// BinaryPushStateChanged atoms. This needs to be in sync with
+// TrainExperimentIds in atoms.proto.
+message ExperimentIds {
+ repeated int64 experiment_id = 1;
+}
diff --git a/cmds/statsd/src/external/GpuStatsPuller.cpp b/cmds/statsd/src/external/GpuStatsPuller.cpp
deleted file mode 100644
index 3229ba82fe3c..000000000000
--- a/cmds/statsd/src/external/GpuStatsPuller.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "GpuStatsPuller.h"
-
-#include <binder/IServiceManager.h>
-#include <graphicsenv/GpuStatsInfo.h>
-#include <graphicsenv/IGpuService.h>
-
-#include "logd/LogEvent.h"
-
-#include "stats_log_util.h"
-#include "statslog.h"
-
-namespace android {
-namespace os {
-namespace statsd {
-
-using android::util::ProtoReader;
-
-GpuStatsPuller::GpuStatsPuller(const int tagId) : StatsPuller(tagId) {
-}
-
-static sp<IGpuService> getGpuService() {
- const sp<IBinder> binder = defaultServiceManager()->checkService(String16("gpu"));
- if (!binder) {
- ALOGE("Failed to get gpu service");
- return nullptr;
- }
-
- return interface_cast<IGpuService>(binder);
-}
-
-static bool pullGpuStatsGlobalInfo(const sp<IGpuService>& gpuService,
- std::vector<std::shared_ptr<LogEvent>>* data) {
- std::vector<GpuStatsGlobalInfo> stats;
- status_t status = gpuService->getGpuStatsGlobalInfo(&stats);
- if (status != OK) {
- return false;
- }
-
- data->clear();
- data->reserve(stats.size());
- for (const auto& info : stats) {
- std::shared_ptr<LogEvent> event = make_shared<LogEvent>(
- android::util::GPU_STATS_GLOBAL_INFO, getWallClockNs(), getElapsedRealtimeNs());
- if (!event->write(info.driverPackageName)) return false;
- if (!event->write(info.driverVersionName)) return false;
- if (!event->write((int64_t)info.driverVersionCode)) return false;
- if (!event->write(info.driverBuildTime)) return false;
- if (!event->write((int64_t)info.glLoadingCount)) return false;
- if (!event->write((int64_t)info.glLoadingFailureCount)) return false;
- if (!event->write((int64_t)info.vkLoadingCount)) return false;
- if (!event->write((int64_t)info.vkLoadingFailureCount)) return false;
- if (!event->write(info.vulkanVersion)) return false;
- if (!event->write(info.cpuVulkanVersion)) return false;
- if (!event->write(info.glesVersion)) return false;
- if (!event->write((int64_t)info.angleLoadingCount)) return false;
- if (!event->write((int64_t)info.angleLoadingFailureCount)) return false;
- event->init();
- data->emplace_back(event);
- }
-
- return true;
-}
-
-static bool pullGpuStatsAppInfo(const sp<IGpuService>& gpuService,
- std::vector<std::shared_ptr<LogEvent>>* data) {
- std::vector<GpuStatsAppInfo> stats;
- status_t status = gpuService->getGpuStatsAppInfo(&stats);
- if (status != OK) {
- return false;
- }
-
- data->clear();
- data->reserve(stats.size());
- for (const auto& info : stats) {
- std::shared_ptr<LogEvent> event = make_shared<LogEvent>(
- android::util::GPU_STATS_APP_INFO, getWallClockNs(), getElapsedRealtimeNs());
- if (!event->write(info.appPackageName)) return false;
- if (!event->write((int64_t)info.driverVersionCode)) return false;
- if (!event->writeBytes(int64VectorToProtoByteString(info.glDriverLoadingTime))) {
- return false;
- }
- if (!event->writeBytes(int64VectorToProtoByteString(info.vkDriverLoadingTime))) {
- return false;
- }
- if (!event->writeBytes(int64VectorToProtoByteString(info.angleDriverLoadingTime))) {
- return false;
- }
- if (!event->write(info.cpuVulkanInUse)) return false;
- if (!event->write(info.falsePrerotation)) return false;
- if (!event->write(info.gles1InUse)) return false;
- event->init();
- data->emplace_back(event);
- }
-
- return true;
-}
-
-bool GpuStatsPuller::PullInternal(std::vector<std::shared_ptr<LogEvent>>* data) {
- const sp<IGpuService> gpuService = getGpuService();
- if (!gpuService) {
- return false;
- }
-
- switch (mTagId) {
- case android::util::GPU_STATS_GLOBAL_INFO:
- return pullGpuStatsGlobalInfo(gpuService, data);
- case android::util::GPU_STATS_APP_INFO:
- return pullGpuStatsAppInfo(gpuService, data);
- default:
- break;
- }
-
- return false;
-}
-
-static std::string protoOutputStreamToByteString(ProtoOutputStream& proto) {
- if (!proto.size()) return "";
-
- std::string byteString;
- sp<ProtoReader> reader = proto.data();
- while (reader->readBuffer() != nullptr) {
- const size_t toRead = reader->currentToRead();
- byteString.append((char*)reader->readBuffer(), toRead);
- reader->move(toRead);
- }
-
- if (byteString.size() != proto.size()) return "";
-
- return byteString;
-}
-
-std::string int64VectorToProtoByteString(const std::vector<int64_t>& value) {
- if (value.empty()) return "";
-
- ProtoOutputStream proto;
- for (const auto& ele : value) {
- proto.write(android::util::FIELD_TYPE_INT64 | android::util::FIELD_COUNT_REPEATED |
- 1 /* field id */,
- (long long)ele);
- }
-
- return protoOutputStreamToByteString(proto);
-}
-
-} // namespace statsd
-} // namespace os
-} // namespace android
diff --git a/cmds/statsd/src/external/GpuStatsPuller.h b/cmds/statsd/src/external/GpuStatsPuller.h
deleted file mode 100644
index 2da199c51e0f..000000000000
--- a/cmds/statsd/src/external/GpuStatsPuller.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include "StatsPuller.h"
-
-namespace android {
-namespace os {
-namespace statsd {
-
-/**
- * Pull GpuStats from GpuService.
- */
-class GpuStatsPuller : public StatsPuller {
-public:
- explicit GpuStatsPuller(const int tagId);
- bool PullInternal(std::vector<std::shared_ptr<LogEvent>>* data) override;
-};
-
-// convert a int64_t vector into a byte string for proto message like:
-// message RepeatedInt64Wrapper {
-// repeated int64 value = 1;
-// }
-std::string int64VectorToProtoByteString(const std::vector<int64_t>& value);
-
-} // namespace statsd
-} // namespace os
-} // namespace android
diff --git a/cmds/statsd/src/external/Perfetto.cpp b/cmds/statsd/src/external/Perfetto.cpp
index 0c4c3301e61e..85b660efc956 100644
--- a/cmds/statsd/src/external/Perfetto.cpp
+++ b/cmds/statsd/src/external/Perfetto.cpp
@@ -21,12 +21,8 @@
#include "frameworks/base/cmds/statsd/src/statsd_config.pb.h" // Alert
#include <android-base/unique_fd.h>
-#include <errno.h>
-#include <fcntl.h>
#include <inttypes.h>
-#include <sys/types.h>
#include <sys/wait.h>
-#include <unistd.h>
#include <string>
diff --git a/cmds/statsd/src/external/PullDataReceiver.h b/cmds/statsd/src/external/PullDataReceiver.h
index d2193f41b80a..dd5c0cfa04c1 100644
--- a/cmds/statsd/src/external/PullDataReceiver.h
+++ b/cmds/statsd/src/external/PullDataReceiver.h
@@ -15,8 +15,6 @@
*/
#pragma once
-#include <utils/String16.h>
-#include <unordered_map>
#include <utils/RefBase.h>
#include "StatsPuller.h"
#include "logd/LogEvent.h"
diff --git a/cmds/statsd/src/external/ResourceHealthManagerPuller.cpp b/cmds/statsd/src/external/ResourceHealthManagerPuller.cpp
deleted file mode 100644
index 75b63f4b5f9e..000000000000
--- a/cmds/statsd/src/external/ResourceHealthManagerPuller.cpp
+++ /dev/null
@@ -1,123 +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.
- */
-
-#define DEBUG false // STOPSHIP if true
-#include "Log.h"
-
-#include <android/hardware/health/2.0/IHealth.h>
-#include <healthhalutils/HealthHalUtils.h>
-#include "external/ResourceHealthManagerPuller.h"
-#include "external/StatsPuller.h"
-
-#include "ResourceHealthManagerPuller.h"
-#include "logd/LogEvent.h"
-#include "stats_log_util.h"
-#include "statslog.h"
-
-using android::hardware::hidl_vec;
-using android::hardware::Return;
-using android::hardware::Void;
-using android::hardware::health::V2_0::get_health_service;
-using android::hardware::health::V2_0::HealthInfo;
-using android::hardware::health::V2_0::IHealth;
-using android::hardware::health::V2_0::Result;
-
-using std::make_shared;
-using std::shared_ptr;
-
-namespace android {
-namespace os {
-namespace statsd {
-
-sp<android::hardware::health::V2_0::IHealth> gHealthHal = nullptr;
-
-bool getHealthHal() {
- if (gHealthHal == nullptr) {
- gHealthHal = get_health_service();
- }
- return gHealthHal != nullptr;
-}
-
-ResourceHealthManagerPuller::ResourceHealthManagerPuller(int tagId) : StatsPuller(tagId) {
-}
-
-// TODO(b/110565992): add other health atoms (eg. Temperature).
-bool ResourceHealthManagerPuller::PullInternal(vector<shared_ptr<LogEvent>>* data) {
- if (!getHealthHal()) {
- ALOGE("Health Hal not loaded");
- return false;
- }
-
- int64_t wallClockTimestampNs = getWallClockNs();
- int64_t elapsedTimestampNs = getElapsedRealtimeNs();
-
- data->clear();
- bool result_success = true;
-
- // Get the data from the Health HAL (hardware/interfaces/health/1.0/types.hal).
- Return<void> ret = gHealthHal->getHealthInfo([&](Result r, HealthInfo v) {
- if (r != Result::SUCCESS) {
- result_success = false;
- return;
- }
- if (mTagId == android::util::REMAINING_BATTERY_CAPACITY) {
- auto ptr = make_shared<LogEvent>(android::util::REMAINING_BATTERY_CAPACITY,
- wallClockTimestampNs, elapsedTimestampNs);
- ptr->write(v.legacy.batteryChargeCounter);
- ptr->init();
- data->push_back(ptr);
- } else if (mTagId == android::util::FULL_BATTERY_CAPACITY) {
- auto ptr = make_shared<LogEvent>(android::util::FULL_BATTERY_CAPACITY,
- wallClockTimestampNs, elapsedTimestampNs);
- ptr->write(v.legacy.batteryFullCharge);
- ptr->init();
- data->push_back(ptr);
- } else if (mTagId == android::util::BATTERY_VOLTAGE) {
- auto ptr = make_shared<LogEvent>(android::util::BATTERY_VOLTAGE, wallClockTimestampNs,
- elapsedTimestampNs);
- ptr->write(v.legacy.batteryVoltage);
- ptr->init();
- data->push_back(ptr);
- } else if (mTagId == android::util::BATTERY_LEVEL) {
- auto ptr = make_shared<LogEvent>(android::util::BATTERY_LEVEL, wallClockTimestampNs,
- elapsedTimestampNs);
- ptr->write(v.legacy.batteryLevel);
- ptr->init();
- data->push_back(ptr);
- } else if (mTagId == android::util::BATTERY_CYCLE_COUNT) {
- auto ptr = make_shared<LogEvent>(android::util::BATTERY_CYCLE_COUNT,
- wallClockTimestampNs, elapsedTimestampNs);
- ptr->write(v.legacy.batteryCycleCount);
- ptr->init();
- data->push_back(ptr);
- } else {
- ALOGE("Unsupported tag in ResourceHealthManagerPuller: %d", mTagId);
- }
- });
- if (!result_success || !ret.isOk()) {
- ALOGE("getHealthHal() failed: health HAL service not available. Description: %s",
- ret.description().c_str());
- if (!ret.isOk() && ret.isDeadObject()) {
- gHealthHal = nullptr;
- }
- return false;
- }
- return true;
-}
-
-} // namespace statsd
-} // namespace os
-} // namespace android
diff --git a/cmds/statsd/src/external/ResourceHealthManagerPuller.h b/cmds/statsd/src/external/ResourceHealthManagerPuller.h
deleted file mode 100644
index f650fccc447e..000000000000
--- a/cmds/statsd/src/external/ResourceHealthManagerPuller.h
+++ /dev/null
@@ -1,39 +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.
- */
-
-#pragma once
-
-#include <utils/String16.h>
-#include "StatsPuller.h"
-
-namespace android {
-namespace os {
-namespace statsd {
-
-/**
- * Reads Ihealth.hal
- */
-class ResourceHealthManagerPuller : public StatsPuller {
-public:
- explicit ResourceHealthManagerPuller(int tagId);
-
-private:
- bool PullInternal(vector<std::shared_ptr<LogEvent>>* data) override;
-};
-
-} // namespace statsd
-} // namespace os
-} // namespace android
diff --git a/cmds/statsd/src/external/StatsCallbackPuller.cpp b/cmds/statsd/src/external/StatsCallbackPuller.cpp
index 6257771b5b0d..1a11f0e37311 100644
--- a/cmds/statsd/src/external/StatsCallbackPuller.cpp
+++ b/cmds/statsd/src/external/StatsCallbackPuller.cpp
@@ -68,7 +68,7 @@ bool StatsCallbackPuller::PullInternal(vector<shared_ptr<LogEvent>>* data) {
for (const StatsEventParcel& parcel: output) {
shared_ptr<LogEvent> event = make_shared<LogEvent>(
const_cast<uint8_t*>(parcel.buffer.data()), parcel.buffer.size(),
- /*uid=*/-1, /*useNewSchema=*/true);
+ /*uid=*/-1, /*pid=*/-1, /*useNewSchema=*/true);
sharedData->push_back(event);
}
*pullSuccess = success;
diff --git a/cmds/statsd/src/external/StatsCallbackPuller.h b/cmds/statsd/src/external/StatsCallbackPuller.h
index ac88524a72ee..fe6af19e3901 100644
--- a/cmds/statsd/src/external/StatsCallbackPuller.h
+++ b/cmds/statsd/src/external/StatsCallbackPuller.h
@@ -17,7 +17,6 @@
#pragma once
#include <android/os/IPullAtomCallback.h>
-#include <utils/String16.h>
#include "StatsPuller.h"
diff --git a/cmds/statsd/src/external/StatsPullerManager.cpp b/cmds/statsd/src/external/StatsPullerManager.cpp
index 85d1e38d6052..3ceff7529440 100644
--- a/cmds/statsd/src/external/StatsPullerManager.cpp
+++ b/cmds/statsd/src/external/StatsPullerManager.cpp
@@ -32,20 +32,12 @@
#include "../logd/LogEvent.h"
#include "../stats_log_util.h"
#include "../statscompanion_util.h"
-#include "GpuStatsPuller.h"
-#include "PowerStatsPuller.h"
-#include "ResourceHealthManagerPuller.h"
#include "StatsCallbackPuller.h"
-#include "SubsystemSleepStatePuller.h"
#include "TrainInfoPuller.h"
#include "statslog.h"
-using std::make_shared;
-using std::map;
using std::shared_ptr;
-using std::string;
using std::vector;
-using std::list;
namespace android {
namespace os {
@@ -56,43 +48,8 @@ const int64_t NO_ALARM_UPDATE = INT64_MAX;
StatsPullerManager::StatsPullerManager()
: kAllPullAtomInfo({
- // subsystem_sleep_state
- {{.atomTag = android::util::SUBSYSTEM_SLEEP_STATE}, new SubsystemSleepStatePuller()},
-
- // on_device_power_measurement
- {{.atomTag = android::util::ON_DEVICE_POWER_MEASUREMENT}, new PowerStatsPuller()},
-
- // remaining_battery_capacity
- {{.atomTag = android::util::REMAINING_BATTERY_CAPACITY},
- new ResourceHealthManagerPuller(android::util::REMAINING_BATTERY_CAPACITY)},
-
- // full_battery_capacity
- {{.atomTag = android::util::FULL_BATTERY_CAPACITY},
- new ResourceHealthManagerPuller(android::util::FULL_BATTERY_CAPACITY)},
-
- // battery_voltage
- {{.atomTag = android::util::BATTERY_VOLTAGE},
- new ResourceHealthManagerPuller(android::util::BATTERY_VOLTAGE)},
-
- // battery_level
- {{.atomTag = android::util::BATTERY_LEVEL},
- new ResourceHealthManagerPuller(android::util::BATTERY_LEVEL)},
-
- // battery_cycle_count
- {{.atomTag = android::util::BATTERY_CYCLE_COUNT},
- new ResourceHealthManagerPuller(android::util::BATTERY_CYCLE_COUNT)},
-
// TrainInfo.
{{.atomTag = android::util::TRAIN_INFO}, new TrainInfoPuller()},
-
- // GpuStatsGlobalInfo
- {{.atomTag = android::util::GPU_STATS_GLOBAL_INFO},
- new GpuStatsPuller(android::util::GPU_STATS_GLOBAL_INFO)},
-
- // GpuStatsAppInfo
- {{.atomTag = android::util::GPU_STATS_APP_INFO},
- new GpuStatsPuller(android::util::GPU_STATS_APP_INFO)},
-
}),
mNextPullTimeNs(NO_ALARM_UPDATE) {
}
@@ -113,7 +70,7 @@ bool StatsPullerManager::PullLocked(int tagId, vector<shared_ptr<LogEvent>>* dat
}
return ret;
} else {
- VLOG("Unknown tagId %d", tagId);
+ ALOGW("StatsPullerManager: Unknown tagId %d", tagId);
return false; // Return early since we don't know what to pull.
}
}
diff --git a/cmds/statsd/src/external/StatsPullerManager.h b/cmds/statsd/src/external/StatsPullerManager.h
index f5d6057c2aec..aef16dcf2147 100644
--- a/cmds/statsd/src/external/StatsPullerManager.h
+++ b/cmds/statsd/src/external/StatsPullerManager.h
@@ -23,8 +23,6 @@
#include <utils/threads.h>
#include <list>
-#include <string>
-#include <unordered_map>
#include <vector>
#include "PullDataReceiver.h"
diff --git a/cmds/statsd/src/guardrail/StatsdStats.cpp b/cmds/statsd/src/guardrail/StatsdStats.cpp
index a836bd14c012..3054b6d2204b 100644
--- a/cmds/statsd/src/guardrail/StatsdStats.cpp
+++ b/cmds/statsd/src/guardrail/StatsdStats.cpp
@@ -36,7 +36,6 @@ using android::util::FIELD_TYPE_MESSAGE;
using android::util::FIELD_TYPE_STRING;
using android::util::ProtoOutputStream;
using std::lock_guard;
-using std::map;
using std::shared_ptr;
using std::string;
using std::vector;
diff --git a/cmds/statsd/src/logd/LogEvent.cpp b/cmds/statsd/src/logd/LogEvent.cpp
index 3827b9e21b70..103eb0c78bd5 100644
--- a/cmds/statsd/src/logd/LogEvent.cpp
+++ b/cmds/statsd/src/logd/LogEvent.cpp
@@ -35,13 +35,42 @@ using android::util::ProtoOutputStream;
using std::string;
using std::vector;
+// stats_event.h socket types. Keep in sync.
+/* ERRORS */
+#define ERROR_NO_TIMESTAMP 0x1
+#define ERROR_NO_ATOM_ID 0x2
+#define ERROR_OVERFLOW 0x4
+#define ERROR_ATTRIBUTION_CHAIN_TOO_LONG 0x8
+#define ERROR_TOO_MANY_KEY_VALUE_PAIRS 0x10
+#define ERROR_ANNOTATION_DOES_NOT_FOLLOW_FIELD 0x20
+#define ERROR_INVALID_ANNOTATION_ID 0x40
+#define ERROR_ANNOTATION_ID_TOO_LARGE 0x80
+#define ERROR_TOO_MANY_ANNOTATIONS 0x100
+#define ERROR_TOO_MANY_FIELDS 0x200
+#define ERROR_INVALID_VALUE_TYPE 0x400
+#define ERROR_STRING_NOT_NULL_TERMINATED 0x800
+
+/* TYPE IDS */
+#define INT32_TYPE 0x00
+#define INT64_TYPE 0x01
+#define STRING_TYPE 0x02
+#define LIST_TYPE 0x03
+#define FLOAT_TYPE 0x04
+#define BOOL_TYPE 0x05
+#define BYTE_ARRAY_TYPE 0x06
+#define OBJECT_TYPE 0x07
+#define KEY_VALUE_PAIRS_TYPE 0x08
+#define ATTRIBUTION_CHAIN_TYPE 0x09
+#define ERROR_TYPE 0x0F
+
// Msg is expected to begin at the start of the serialized atom -- it should not
// include the android_log_header_t or the StatsEventTag.
-LogEvent::LogEvent(uint8_t* msg, uint32_t len, uint32_t uid)
+LogEvent::LogEvent(uint8_t* msg, uint32_t len, int32_t uid, int32_t pid)
: mBuf(msg),
mRemainingLen(len),
mLogdTimestampNs(time(nullptr)),
- mLogUid(uid)
+ mLogUid(uid),
+ mLogPid(pid)
{
#ifdef NEW_ENCODING_SCHEME
initNew();
@@ -52,8 +81,13 @@ LogEvent::LogEvent(uint8_t* msg, uint32_t len, uint32_t uid)
#endif
}
-LogEvent::LogEvent(uint8_t* msg, uint32_t len, uint32_t uid, bool useNewSchema)
- : mBuf(msg), mRemainingLen(len), mLogdTimestampNs(time(nullptr)), mLogUid(uid) {
+LogEvent::LogEvent(uint8_t* msg, uint32_t len, int32_t uid, int32_t pid, bool useNewSchema)
+ : mBuf(msg),
+ mRemainingLen(len),
+ mLogdTimestampNs(time(nullptr)),
+ mLogUid(uid),
+ mLogPid(pid)
+{
if (useNewSchema) {
initNew();
} else {
@@ -66,6 +100,7 @@ LogEvent::LogEvent(uint8_t* msg, uint32_t len, uint32_t uid, bool useNewSchema)
LogEvent::LogEvent(const LogEvent& event) {
mTagId = event.mTagId;
mLogUid = event.mLogUid;
+ mLogPid = event.mLogPid;
mElapsedTimestampNs = event.mElapsedTimestampNs;
mLogdTimestampNs = event.mLogdTimestampNs;
mValues = event.mValues;
@@ -146,6 +181,7 @@ LogEvent::LogEvent(const string& trainName, int64_t trainVersionCode, bool requi
mElapsedTimestampNs = getElapsedRealtimeNs();
mTagId = android::util::BINARY_PUSH_STATE_CHANGED;
mLogUid = android::IPCThreadState::self()->getCallingUid();
+ mLogPid = android::IPCThreadState::self()->getCallingPid();
mValues.push_back(FieldValue(Field(mTagId, getSimpleField(1)), Value(trainName)));
mValues.push_back(FieldValue(Field(mTagId, getSimpleField(2)), Value(trainVersionCode)));
@@ -159,37 +195,6 @@ LogEvent::LogEvent(const string& trainName, int64_t trainVersionCode, bool requi
}
LogEvent::LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs,
- const VendorAtom& vendorAtom) {
- mLogdTimestampNs = wallClockTimestampNs;
- mElapsedTimestampNs = elapsedTimestampNs;
- mTagId = vendorAtom.atomId;
- mLogUid = AID_STATSD;
-
- mValues.push_back(
- FieldValue(Field(mTagId, getSimpleField(1)), Value(vendorAtom.reverseDomainName)));
- for (int i = 0; i < (int)vendorAtom.values.size(); i++) {
- switch (vendorAtom.values[i].getDiscriminator()) {
- case VendorAtom::Value::hidl_discriminator::intValue:
- mValues.push_back(FieldValue(Field(mTagId, getSimpleField(i + 2)),
- Value(vendorAtom.values[i].intValue())));
- break;
- case VendorAtom::Value::hidl_discriminator::longValue:
- mValues.push_back(FieldValue(Field(mTagId, getSimpleField(i + 2)),
- Value(vendorAtom.values[i].longValue())));
- break;
- case VendorAtom::Value::hidl_discriminator::floatValue:
- mValues.push_back(FieldValue(Field(mTagId, getSimpleField(i + 2)),
- Value(vendorAtom.values[i].floatValue())));
- break;
- case VendorAtom::Value::hidl_discriminator::stringValue:
- mValues.push_back(FieldValue(Field(mTagId, getSimpleField(i + 2)),
- Value(vendorAtom.values[i].stringValue())));
- break;
- }
- }
-}
-
-LogEvent::LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs,
const InstallTrainInfo& trainInfo) {
mLogdTimestampNs = wallClockTimestampNs;
mElapsedTimestampNs = elapsedTimestampNs;
@@ -801,6 +806,26 @@ float LogEvent::GetFloat(size_t key, status_t* err) const {
return 0.0;
}
+std::vector<uint8_t> LogEvent::GetStorage(size_t key, status_t* err) const {
+ int field = getSimpleField(key);
+ for (const auto& value : mValues) {
+ if (value.mField.getField() == field) {
+ if (value.mValue.getType() == STORAGE) {
+ return value.mValue.storage_value;
+ } else {
+ *err = BAD_TYPE;
+ return vector<uint8_t>();
+ }
+ }
+ if ((size_t)value.mField.getPosAtDepth(0) > key) {
+ break;
+ }
+ }
+
+ *err = BAD_INDEX;
+ return vector<uint8_t>();
+}
+
string LogEvent::ToString() const {
string result;
result += StringPrintf("{ uid(%d) %lld %lld (%d)", mLogUid, (long long)mLogdTimestampNs,
diff --git a/cmds/statsd/src/logd/LogEvent.h b/cmds/statsd/src/logd/LogEvent.h
index 463a1b68f885..5509c093a6f6 100644
--- a/cmds/statsd/src/logd/LogEvent.h
+++ b/cmds/statsd/src/logd/LogEvent.h
@@ -18,19 +18,14 @@
#include "FieldValue.h"
-#include <android/frameworks/stats/1.0/types.h>
#include <android/util/ProtoOutputStream.h>
-#include <log/log_read.h>
#include <private/android_logger.h>
#include <stats_event_list.h>
#include <stats_event.h>
-#include <utils/Errors.h>
#include <string>
#include <vector>
-using namespace android::frameworks::stats::V1_0;
-
namespace android {
namespace os {
namespace statsd {
@@ -71,12 +66,12 @@ public:
/**
* Read a LogEvent from the socket
*/
- explicit LogEvent(uint8_t* msg, uint32_t len, uint32_t uid);
+ explicit LogEvent(uint8_t* msg, uint32_t len, int32_t uid, int32_t pid);
/**
* Temp constructor to use for pulled atoms until we flip the socket schema.
*/
- explicit LogEvent(uint8_t* msg, uint32_t len, uint32_t uid, bool useNewSchema);
+ explicit LogEvent(uint8_t* msg, uint32_t len, int32_t uid, int32_t pid, bool useNewSchema);
/**
* Constructs a LogEvent with synthetic data for testing. Must call init() before reading.
@@ -105,9 +100,6 @@ public:
const std::vector<uint8_t>& experimentIds, int32_t userId);
explicit LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs,
- const VendorAtom& vendorAtom);
-
- explicit LogEvent(int64_t wallClockTimestampNs, int64_t elapsedTimestampNs,
const InstallTrainInfo& installTrainInfo);
~LogEvent();
@@ -123,9 +115,17 @@ public:
*/
inline int GetTagId() const { return mTagId; }
- inline uint32_t GetUid() const {
- return mLogUid;
- }
+ /**
+ * Get the uid of the logging client.
+ * Returns -1 if the uid is unknown/has not been set.
+ */
+ inline int32_t GetUid() const { return mLogUid; }
+
+ /**
+ * Get the pid of the logging client.
+ * Returns -1 if the pid is unknown/has not been set.
+ */
+ inline int32_t GetPid() const { return mLogPid; }
/**
* Get the nth value, starting at 1.
@@ -138,6 +138,7 @@ public:
const char* GetString(size_t key, status_t* err) const;
bool GetBool(size_t key, status_t* err) const;
float GetFloat(size_t key, status_t* err) const;
+ std::vector<uint8_t> GetStorage(size_t key, status_t* err) const;
/**
* Write test data to the LogEvent. This can only be used when the LogEvent is constructed
@@ -208,6 +209,22 @@ public:
return LogEvent(*this);
}
+ template <class T>
+ status_t updateValue(size_t key, T& value, Type type) {
+ int field = getSimpleField(key);
+ for (auto& fieldValue : mValues) {
+ if (fieldValue.mField.getField() == field) {
+ if (fieldValue.mValue.getType() == type) {
+ fieldValue.mValue = Value(value);
+ return OK;
+ } else {
+ return BAD_TYPE;
+ }
+ }
+ }
+ return BAD_INDEX;
+ }
+
private:
/**
* Only use this if copy is absolutely needed.
@@ -305,9 +322,14 @@ private:
// The elapsed timestamp set by statsd log writer.
int64_t mElapsedTimestampNs;
+ // The atom tag of the event.
int mTagId;
- uint32_t mLogUid;
+ // The uid of the logging client (defaults to -1).
+ int32_t mLogUid = -1;
+
+ // The pid of the logging client (defaults to -1).
+ int32_t mLogPid = -1;
};
void writeExperimentIdsToProto(const std::vector<int64_t>& experimentIds, std::vector<uint8_t>* protoOut);
diff --git a/cmds/statsd/src/logd/LogEventQueue.h b/cmds/statsd/src/logd/LogEventQueue.h
index b4fd63f119e6..9dda3d24c571 100644
--- a/cmds/statsd/src/logd/LogEventQueue.h
+++ b/cmds/statsd/src/logd/LogEventQueue.h
@@ -19,10 +19,8 @@
#include "LogEvent.h"
#include <condition_variable>
-#include <memory>
#include <mutex>
#include <queue>
-#include <thread>
namespace android {
namespace os {
diff --git a/cmds/statsd/src/main.cpp b/cmds/statsd/src/main.cpp
index 7d446a9a1ed6..140ef4e9cea9 100644
--- a/cmds/statsd/src/main.cpp
+++ b/cmds/statsd/src/main.cpp
@@ -20,16 +20,10 @@
#include "StatsService.h"
#include "socket/StatsSocketListener.h"
-#include <binder/IInterface.h>
#include <binder/IPCThreadState.h>
#include <binder/IServiceManager.h>
#include <binder/ProcessState.h>
-#include <binder/Status.h>
-#include <hidl/HidlTransportSupport.h>
#include <utils/Looper.h>
-#include <utils/StrongPointer.h>
-
-#include <memory>
#include <stdio.h>
#include <sys/stat.h>
@@ -80,8 +74,6 @@ int main(int /*argc*/, char** /*argv*/) {
ps->giveThreadPoolName();
IPCThreadState::self()->disableBackgroundScheduling(true);
- ::android::hardware::configureRpcThreadpool(4 /*threads*/, false /*willJoin*/);
-
std::shared_ptr<LogEventQueue> eventQueue =
std::make_shared<LogEventQueue>(2000 /*buffer limit. Buffer is NOT pre-allocated*/);
@@ -94,12 +86,6 @@ int main(int /*argc*/, char** /*argv*/) {
return -1;
}
- auto ret = gStatsService->registerAsService();
- if (ret != ::android::OK) {
- ALOGE("Failed to add service as HIDL service");
- return 1; // or handle error
- }
-
registerSigHandler();
gStatsService->sayHiToStatsCompanion();
diff --git a/cmds/statsd/src/matchers/CombinationLogMatchingTracker.cpp b/cmds/statsd/src/matchers/CombinationLogMatchingTracker.cpp
index 15c067ee936d..b94a9572113e 100644
--- a/cmds/statsd/src/matchers/CombinationLogMatchingTracker.cpp
+++ b/cmds/statsd/src/matchers/CombinationLogMatchingTracker.cpp
@@ -24,8 +24,6 @@ namespace os {
namespace statsd {
using std::set;
-using std::string;
-using std::unique_ptr;
using std::unordered_map;
using std::vector;
diff --git a/cmds/statsd/src/matchers/CombinationLogMatchingTracker.h b/cmds/statsd/src/matchers/CombinationLogMatchingTracker.h
index 2a3f08da7b96..55bc46059fc1 100644
--- a/cmds/statsd/src/matchers/CombinationLogMatchingTracker.h
+++ b/cmds/statsd/src/matchers/CombinationLogMatchingTracker.h
@@ -16,9 +16,6 @@
#ifndef COMBINATION_LOG_MATCHING_TRACKER_H
#define COMBINATION_LOG_MATCHING_TRACKER_H
-#include <log/log_read.h>
-#include <log/logprint.h>
-#include <set>
#include <unordered_map>
#include <vector>
#include "LogMatchingTracker.h"
diff --git a/cmds/statsd/src/matchers/EventMatcherWizard.cpp b/cmds/statsd/src/matchers/EventMatcherWizard.cpp
index 8418e9833509..025c9a87b16b 100644
--- a/cmds/statsd/src/matchers/EventMatcherWizard.cpp
+++ b/cmds/statsd/src/matchers/EventMatcherWizard.cpp
@@ -14,14 +14,11 @@
* limitations under the License.
*/
#include "EventMatcherWizard.h"
-#include <unordered_set>
namespace android {
namespace os {
namespace statsd {
-using std::map;
-using std::string;
using std::vector;
MatchingState EventMatcherWizard::matchLogEvent(const LogEvent& event, int matcher_index) {
diff --git a/cmds/statsd/src/matchers/SimpleLogMatchingTracker.cpp b/cmds/statsd/src/matchers/SimpleLogMatchingTracker.cpp
index 31b3db524e80..082daf5a1916 100644
--- a/cmds/statsd/src/matchers/SimpleLogMatchingTracker.cpp
+++ b/cmds/statsd/src/matchers/SimpleLogMatchingTracker.cpp
@@ -23,8 +23,6 @@ namespace android {
namespace os {
namespace statsd {
-using std::string;
-using std::unique_ptr;
using std::unordered_map;
using std::vector;
diff --git a/cmds/statsd/src/matchers/SimpleLogMatchingTracker.h b/cmds/statsd/src/matchers/SimpleLogMatchingTracker.h
index 28b339caa466..a0f6a888bd44 100644
--- a/cmds/statsd/src/matchers/SimpleLogMatchingTracker.h
+++ b/cmds/statsd/src/matchers/SimpleLogMatchingTracker.h
@@ -17,9 +17,6 @@
#ifndef SIMPLE_LOG_MATCHING_TRACKER_H
#define SIMPLE_LOG_MATCHING_TRACKER_H
-#include <log/log_read.h>
-#include <log/logprint.h>
-#include <set>
#include <unordered_map>
#include <vector>
#include "LogMatchingTracker.h"
diff --git a/cmds/statsd/src/matchers/matcher_util.cpp b/cmds/statsd/src/matchers/matcher_util.cpp
index 476fae37899d..1f8bbd7f528c 100644
--- a/cmds/statsd/src/matchers/matcher_util.cpp
+++ b/cmds/statsd/src/matchers/matcher_util.cpp
@@ -23,7 +23,6 @@
using std::set;
using std::string;
-using std::unordered_map;
using std::vector;
namespace android {
diff --git a/cmds/statsd/src/matchers/matcher_util.h b/cmds/statsd/src/matchers/matcher_util.h
index 15b4a9799a93..1ab3e87b5fed 100644
--- a/cmds/statsd/src/matchers/matcher_util.h
+++ b/cmds/statsd/src/matchers/matcher_util.h
@@ -18,11 +18,6 @@
#include "logd/LogEvent.h"
-#include <log/log_read.h>
-#include <log/logprint.h>
-#include <set>
-#include <string>
-#include <unordered_map>
#include <vector>
#include "frameworks/base/cmds/statsd/src/statsd_config.pb.h"
#include "packages/UidMap.h"
diff --git a/cmds/statsd/src/metrics/GaugeMetricProducer.cpp b/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
index 4ab6fd48f1db..5c606bc98235 100644
--- a/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
+++ b/cmds/statsd/src/metrics/GaugeMetricProducer.cpp
@@ -21,8 +21,6 @@
#include "GaugeMetricProducer.h"
#include "../stats_log_util.h"
-#include <cutils/log.h>
-
using android::util::FIELD_COUNT_REPEATED;
using android::util::FIELD_TYPE_BOOL;
using android::util::FIELD_TYPE_FLOAT;
@@ -549,14 +547,11 @@ void GaugeMetricProducer::flushIfNeededLocked(const int64_t& eventTimeNs) {
void GaugeMetricProducer::flushCurrentBucketLocked(const int64_t& eventTimeNs,
const int64_t& nextBucketStartTimeNs) {
int64_t fullBucketEndTimeNs = getCurrentBucketEndTimeNs();
+ int64_t bucketEndTime = eventTimeNs < fullBucketEndTimeNs ? eventTimeNs : fullBucketEndTimeNs;
GaugeBucket info;
info.mBucketStartNs = mCurrentBucketStartTimeNs;
- if (eventTimeNs < fullBucketEndTimeNs) {
- info.mBucketEndNs = eventTimeNs;
- } else {
- info.mBucketEndNs = fullBucketEndTimeNs;
- }
+ info.mBucketEndNs = bucketEndTime;
// Add bucket to mPastBuckets if bucket is large enough.
// Otherwise, drop the bucket data and add bucket metadata to mSkippedBuckets.
@@ -571,7 +566,7 @@ void GaugeMetricProducer::flushCurrentBucketLocked(const int64_t& eventTimeNs,
}
} else {
mCurrentSkippedBucket.bucketStartTimeNs = mCurrentBucketStartTimeNs;
- mCurrentSkippedBucket.bucketEndTimeNs = eventTimeNs;
+ mCurrentSkippedBucket.bucketEndTimeNs = bucketEndTime;
if (!maxDropEventsReached()) {
mCurrentSkippedBucket.dropEvents.emplace_back(
buildDropEvent(eventTimeNs, BucketDropReason::BUCKET_TOO_SMALL));
diff --git a/cmds/statsd/src/metrics/MetricProducer.cpp b/cmds/statsd/src/metrics/MetricProducer.cpp
index 5c29cb3c27fe..be754e29b5bd 100644
--- a/cmds/statsd/src/metrics/MetricProducer.cpp
+++ b/cmds/statsd/src/metrics/MetricProducer.cpp
@@ -33,7 +33,6 @@ namespace android {
namespace os {
namespace statsd {
-using std::map;
// for ActiveMetric
const int FIELD_ID_ACTIVE_METRIC_ID = 1;
diff --git a/cmds/statsd/src/metrics/MetricProducer.h b/cmds/statsd/src/metrics/MetricProducer.h
index 99f0c64bd47c..d721514ed1f0 100644
--- a/cmds/statsd/src/metrics/MetricProducer.h
+++ b/cmds/statsd/src/metrics/MetricProducer.h
@@ -18,7 +18,6 @@
#define METRIC_PRODUCER_H
#include <frameworks/base/cmds/statsd/src/active_config_list.pb.h>
-#include <log/logprint.h>
#include <utils/RefBase.h>
#include <unordered_map>
diff --git a/cmds/statsd/src/metrics/MetricsManager.cpp b/cmds/statsd/src/metrics/MetricsManager.cpp
index 088f607ecfce..536700f3bfe7 100644
--- a/cmds/statsd/src/metrics/MetricsManager.cpp
+++ b/cmds/statsd/src/metrics/MetricsManager.cpp
@@ -18,9 +18,7 @@
#include "MetricsManager.h"
-#include <log/logprint.h>
#include <private/android_filesystem_config.h>
-#include <utils/SystemClock.h>
#include "CountMetricProducer.h"
#include "atoms_info.h"
@@ -42,10 +40,8 @@ using android::util::FIELD_TYPE_MESSAGE;
using android::util::FIELD_TYPE_STRING;
using android::util::ProtoOutputStream;
-using std::make_unique;
using std::set;
using std::string;
-using std::unordered_map;
using std::vector;
namespace android {
diff --git a/cmds/statsd/src/metrics/ValueMetricProducer.cpp b/cmds/statsd/src/metrics/ValueMetricProducer.cpp
index d2db6e9c9ead..dc9b41303894 100644
--- a/cmds/statsd/src/metrics/ValueMetricProducer.cpp
+++ b/cmds/statsd/src/metrics/ValueMetricProducer.cpp
@@ -21,7 +21,6 @@
#include "../guardrail/StatsdStats.h"
#include "../stats_log_util.h"
-#include <cutils/log.h>
#include <limits.h>
#include <stdlib.h>
@@ -33,12 +32,8 @@ using android::util::FIELD_TYPE_INT64;
using android::util::FIELD_TYPE_MESSAGE;
using android::util::FIELD_TYPE_STRING;
using android::util::ProtoOutputStream;
-using std::list;
-using std::make_pair;
-using std::make_shared;
using std::map;
using std::shared_ptr;
-using std::unique_ptr;
using std::unordered_map;
namespace android {
@@ -384,9 +379,6 @@ void ValueMetricProducer::invalidateCurrentBucketWithoutResetBase(const int64_t
if (!mCurrentBucketIsInvalid) {
// Only report to StatsdStats once per invalid bucket.
StatsdStats::getInstance().noteInvalidatedBucket(mMetricId);
-
- mCurrentSkippedBucket.bucketStartTimeNs = mCurrentBucketStartTimeNs;
- mCurrentSkippedBucket.bucketEndTimeNs = getCurrentBucketEndTimeNs();
}
if (!maxDropEventsReached()) {
@@ -960,12 +952,6 @@ void ValueMetricProducer::flushCurrentBucketLocked(const int64_t& eventTimeNs,
int64_t conditionTrueDuration = mConditionTimer.newBucketStart(bucketEndTime);
bool isBucketLargeEnough = bucketEndTime - mCurrentBucketStartTimeNs >= mMinBucketSizeNs;
if (!isBucketLargeEnough) {
- // If the bucket is valid, this is the only drop reason and we need to
- // set the skipped bucket start and end times.
- if (!mCurrentBucketIsInvalid) {
- mCurrentSkippedBucket.bucketStartTimeNs = mCurrentBucketStartTimeNs;
- mCurrentSkippedBucket.bucketEndTimeNs = bucketEndTime;
- }
if (!maxDropEventsReached()) {
mCurrentSkippedBucket.dropEvents.emplace_back(
buildDropEvent(eventTimeNs, BucketDropReason::BUCKET_TOO_SMALL));
@@ -983,6 +969,8 @@ void ValueMetricProducer::flushCurrentBucketLocked(const int64_t& eventTimeNs,
}
}
} else {
+ mCurrentSkippedBucket.bucketStartTimeNs = mCurrentBucketStartTimeNs;
+ mCurrentSkippedBucket.bucketEndTimeNs = bucketEndTime;
mSkippedBuckets.emplace_back(mCurrentSkippedBucket);
}
diff --git a/cmds/statsd/src/metrics/ValueMetricProducer.h b/cmds/statsd/src/metrics/ValueMetricProducer.h
index 19fb6942928f..50317b341843 100644
--- a/cmds/statsd/src/metrics/ValueMetricProducer.h
+++ b/cmds/statsd/src/metrics/ValueMetricProducer.h
@@ -17,8 +17,6 @@
#pragma once
#include <gtest/gtest_prod.h>
-#include <utils/threads.h>
-#include <list>
#include "anomaly/AnomalyTracker.h"
#include "condition/ConditionTimer.h"
#include "condition/ConditionTracker.h"
diff --git a/cmds/statsd/src/metrics/duration_helper/OringDurationTracker.h b/cmds/statsd/src/metrics/duration_helper/OringDurationTracker.h
index c3aad668aa78..f44e3275b83d 100644
--- a/cmds/statsd/src/metrics/duration_helper/OringDurationTracker.h
+++ b/cmds/statsd/src/metrics/duration_helper/OringDurationTracker.h
@@ -19,7 +19,6 @@
#include "DurationTracker.h"
-#include <set>
namespace android {
namespace os {
namespace statsd {
diff --git a/cmds/statsd/src/metrics/metrics_manager_util.cpp b/cmds/statsd/src/metrics/metrics_manager_util.cpp
index 17f62b056426..40a313a14eab 100644
--- a/cmds/statsd/src/metrics/metrics_manager_util.cpp
+++ b/cmds/statsd/src/metrics/metrics_manager_util.cpp
@@ -40,7 +40,6 @@
#include "stats_util.h"
using std::set;
-using std::string;
using std::unordered_map;
using std::vector;
diff --git a/cmds/statsd/src/metrics/metrics_manager_util.h b/cmds/statsd/src/metrics/metrics_manager_util.h
index 95b2ab81fa53..5ebb232694a4 100644
--- a/cmds/statsd/src/metrics/metrics_manager_util.h
+++ b/cmds/statsd/src/metrics/metrics_manager_util.h
@@ -16,7 +16,6 @@
#pragma once
-#include <memory>
#include <set>
#include <unordered_map>
#include <vector>
diff --git a/cmds/statsd/src/packages/PackageInfoListener.h b/cmds/statsd/src/packages/PackageInfoListener.h
index fcdbe69dbbd1..6c50a8c41770 100644
--- a/cmds/statsd/src/packages/PackageInfoListener.h
+++ b/cmds/statsd/src/packages/PackageInfoListener.h
@@ -17,7 +17,6 @@
#ifndef STATSD_PACKAGE_INFO_LISTENER_H
#define STATSD_PACKAGE_INFO_LISTENER_H
-#include <utils/RefBase.h>
#include <string>
namespace android {
diff --git a/cmds/statsd/src/packages/UidMap.cpp b/cmds/statsd/src/packages/UidMap.cpp
index 7e63bbff2d0a..ab0e86e24b02 100644
--- a/cmds/statsd/src/packages/UidMap.cpp
+++ b/cmds/statsd/src/packages/UidMap.cpp
@@ -21,10 +21,6 @@
#include "guardrail/StatsdStats.h"
#include "packages/UidMap.h"
-#include <android/os/IStatsCompanionService.h>
-#include <binder/IServiceManager.h>
-#include <utils/Errors.h>
-
#include <inttypes.h>
using namespace android;
diff --git a/cmds/statsd/src/packages/UidMap.h b/cmds/statsd/src/packages/UidMap.h
index 2d3f6ee9c2e8..bfac6e3431b0 100644
--- a/cmds/statsd/src/packages/UidMap.h
+++ b/cmds/statsd/src/packages/UidMap.h
@@ -21,10 +21,8 @@
#include "packages/PackageInfoListener.h"
#include "stats_util.h"
-#include <binder/IResultReceiver.h>
#include <binder/IShellCallback.h>
#include <gtest/gtest_prod.h>
-#include <log/logprint.h>
#include <stdio.h>
#include <utils/RefBase.h>
#include <list>
diff --git a/cmds/statsd/src/shell/ShellSubscriber.cpp b/cmds/statsd/src/shell/ShellSubscriber.cpp
index f7e32d4aed26..d6a04336bc46 100644
--- a/cmds/statsd/src/shell/ShellSubscriber.cpp
+++ b/cmds/statsd/src/shell/ShellSubscriber.cpp
@@ -18,7 +18,6 @@
#include "ShellSubscriber.h"
-#include <android-base/file.h>
#include "matchers/matcher_util.h"
#include "stats_log_util.h"
diff --git a/cmds/statsd/src/shell/ShellSubscriber.h b/cmds/statsd/src/shell/ShellSubscriber.h
index 8e54a8b00091..86d85901083a 100644
--- a/cmds/statsd/src/shell/ShellSubscriber.h
+++ b/cmds/statsd/src/shell/ShellSubscriber.h
@@ -22,7 +22,6 @@
#include <binder/IResultReceiver.h>
#include <condition_variable>
#include <mutex>
-#include <string>
#include <thread>
#include "external/StatsPullerManager.h"
#include "frameworks/base/cmds/statsd/src/shell/shell_config.pb.h"
diff --git a/cmds/statsd/src/socket/StatsSocketListener.cpp b/cmds/statsd/src/socket/StatsSocketListener.cpp
index 4308a1107039..8f0f480cb862 100755
--- a/cmds/statsd/src/socket/StatsSocketListener.cpp
+++ b/cmds/statsd/src/socket/StatsSocketListener.cpp
@@ -27,9 +27,6 @@
#include <unistd.h>
#include <cutils/sockets.h>
-#include <private/android_filesystem_config.h>
-#include <private/android_logger.h>
-#include <unordered_map>
#include "StatsSocketListener.h"
#include "guardrail/StatsdStats.h"
@@ -126,9 +123,10 @@ bool StatsSocketListener::onDataAvailable(SocketClient* cli) {
uint8_t* msg = ptr + sizeof(uint32_t);
uint32_t len = n - sizeof(uint32_t);
uint32_t uid = cred->uid;
+ uint32_t pid = cred->pid;
int64_t oldestTimestamp;
- if (!mQueue->push(std::make_unique<LogEvent>(msg, len, uid), &oldestTimestamp)) {
+ if (!mQueue->push(std::make_unique<LogEvent>(msg, len, uid, pid), &oldestTimestamp)) {
StatsdStats::getInstance().noteEventQueueOverflow(oldestTimestamp);
}
diff --git a/cmds/statsd/src/state/StateManager.h b/cmds/statsd/src/state/StateManager.h
index 8bc24612be90..8b3a4218238c 100644
--- a/cmds/statsd/src/state/StateManager.h
+++ b/cmds/statsd/src/state/StateManager.h
@@ -15,7 +15,6 @@
*/
#pragma once
-#include <gtest/gtest_prod.h>
#include <inttypes.h>
#include <utils/RefBase.h>
diff --git a/cmds/statsd/src/state/StateTracker.cpp b/cmds/statsd/src/state/StateTracker.cpp
index 3ad21e0c96ae..ab861275073c 100644
--- a/cmds/statsd/src/state/StateTracker.cpp
+++ b/cmds/statsd/src/state/StateTracker.cpp
@@ -26,7 +26,9 @@ namespace os {
namespace statsd {
StateTracker::StateTracker(const int32_t atomId, const util::StateAtomFieldOptions& stateAtomInfo)
- : mAtomId(atomId), mStateField(getSimpleMatcher(atomId, stateAtomInfo.exclusiveField)) {
+ : mAtomId(atomId),
+ mStateField(getSimpleMatcher(atomId, stateAtomInfo.exclusiveField)),
+ mNested(stateAtomInfo.nested) {
// create matcher for each primary field
for (const auto& primaryField : stateAtomInfo.primaryFields) {
if (primaryField == util::FIRST_UID_IN_CHAIN) {
@@ -38,7 +40,13 @@ StateTracker::StateTracker(const int32_t atomId, const util::StateAtomFieldOptio
}
}
- // TODO(tsaichristine): b/142108433 set default state, reset state, and nesting
+ if (stateAtomInfo.defaultState != util::UNSET_VALUE) {
+ mDefaultState = stateAtomInfo.defaultState;
+ }
+
+ if (stateAtomInfo.resetState != util::UNSET_VALUE) {
+ mResetState = stateAtomInfo.resetState;
+ }
}
void StateTracker::onLogEvent(const LogEvent& event) {
@@ -60,7 +68,6 @@ void StateTracker::onLogEvent(const LogEvent& event) {
// Parse event for state value.
FieldValue stateValue;
- int32_t state;
if (!filterValues(mStateField, event.getValues(), &stateValue) ||
stateValue.mValue.getType() != INT) {
ALOGE("StateTracker error extracting state from log event. Type: %d",
@@ -68,11 +75,12 @@ void StateTracker::onLogEvent(const LogEvent& event) {
handlePartialReset(eventTimeNs, primaryKey);
return;
}
- state = stateValue.mValue.int_value;
+ int32_t state = stateValue.mValue.int_value;
if (state == mResetState) {
VLOG("StateTracker Reset state: %s", stateValue.mValue.toString().c_str());
handleReset(eventTimeNs);
+ return;
}
// Track and update state.
@@ -113,15 +121,17 @@ bool StateTracker::getStateValue(const HashableDimensionKey& queryKey, FieldValu
return true;
}
} else if (queryKey.getValues().size() > mPrimaryFields.size()) {
- ALOGE("StateTracker query key size > primary key size is illegal");
+ ALOGE("StateTracker query key size %zu > primary key size %zu is illegal",
+ queryKey.getValues().size(), mPrimaryFields.size());
} else {
- ALOGE("StateTracker query key size < primary key size is not supported");
+ ALOGE("StateTracker query key size %zu < primary key size %zu is not supported",
+ queryKey.getValues().size(), mPrimaryFields.size());
}
- // Set the state value to unknown if:
+ // Set the state value to default state if:
// - query key size is incorrect
// - query key is not found in state map
- output->mValue = StateTracker::kStateUnknown;
+ output->mValue = mDefaultState;
return false;
}
@@ -164,18 +174,52 @@ void StateTracker::updateState(const HashableDimensionKey& primaryKey, const int
*oldState = mDefaultState;
}
- // update state map
- if (eventState == mDefaultState) {
- // remove (key, state) pair if state returns to default state
- VLOG("\t StateTracker changed to default state")
- mStateMap.erase(primaryKey);
- } else {
- mStateMap[primaryKey].state = eventState;
- mStateMap[primaryKey].count = 1;
+ // Update state map for non-nested counting case.
+ // Every state event triggers a state overwrite.
+ if (!mNested) {
+ if (eventState == mDefaultState) {
+ // remove (key, state) pair if state returns to default state
+ VLOG("\t StateTracker changed to default state")
+ mStateMap.erase(primaryKey);
+ } else {
+ mStateMap[primaryKey].state = eventState;
+ mStateMap[primaryKey].count = 1;
+ }
+ *newState = eventState;
+ return;
}
- *newState = eventState;
- // TODO(tsaichristine): support atoms with nested counting
+ // Update state map for nested counting case.
+ //
+ // Nested counting is only allowed for binary state events such as ON/OFF or
+ // ACQUIRE/RELEASE. For example, WakelockStateChanged might have the state
+ // events: ON, ON, OFF. The state will still be ON until we see the same
+ // number of OFF events as ON events.
+ //
+ // In atoms.proto, a state atom with nested counting enabled
+ // must only have 2 states and one of the states must be the default state.
+ it = mStateMap.find(primaryKey);
+ if (it != mStateMap.end()) {
+ *newState = it->second.state;
+ if (eventState == it->second.state) {
+ it->second.count++;
+ } else if (eventState == mDefaultState) {
+ if ((--it->second.count) == 0) {
+ mStateMap.erase(primaryKey);
+ *newState = mDefaultState;
+ }
+ } else {
+ ALOGE("StateTracker Nest counting state has a third state instead of the binary state "
+ "limit.");
+ return;
+ }
+ } else {
+ if (eventState != mDefaultState) {
+ mStateMap[primaryKey].state = eventState;
+ mStateMap[primaryKey].count = 1;
+ }
+ *newState = eventState;
+ }
}
} // namespace statsd
diff --git a/cmds/statsd/src/state/StateTracker.h b/cmds/statsd/src/state/StateTracker.h
index 70f16274c7f6..aeca2a53bfdc 100644
--- a/cmds/statsd/src/state/StateTracker.h
+++ b/cmds/statsd/src/state/StateTracker.h
@@ -74,6 +74,8 @@ private:
int32_t mResetState = kStateUnknown;
+ const bool mNested;
+
// Maps primary key to state value info
std::unordered_map<HashableDimensionKey, StateValueInfo> mStateMap;
diff --git a/cmds/statsd/src/stats_log_util.cpp b/cmds/statsd/src/stats_log_util.cpp
index 76c193679eef..73f640e130a8 100644
--- a/cmds/statsd/src/stats_log_util.cpp
+++ b/cmds/statsd/src/stats_log_util.cpp
@@ -17,14 +17,12 @@
#include "hash.h"
#include "stats_log_util.h"
-#include <logd/LogEvent.h>
#include <private/android_filesystem_config.h>
-#include <utils/Log.h>
#include <set>
-#include <stack>
-#include <utils/Log.h>
#include <utils/SystemClock.h>
+#include "statscompanion_util.h"
+
using android::util::AtomsInfo;
using android::util::FIELD_COUNT_REPEATED;
using android::util::FIELD_TYPE_BOOL;
@@ -588,6 +586,21 @@ int64_t MillisToNano(const int64_t millis) {
return millis * 1000000;
}
+bool checkPermissionForIds(const char* permission, pid_t pid, uid_t uid) {
+ sp<IStatsCompanionService> scs = getStatsCompanionService();
+ if (scs == nullptr) {
+ return false;
+ }
+
+ bool success;
+ binder::Status status = scs->checkPermission(String16(permission), pid, uid, &success);
+ if (!status.isOk()) {
+ return false;
+ }
+
+ return success;
+}
+
} // namespace statsd
} // namespace os
} // namespace android
diff --git a/cmds/statsd/src/stats_log_util.h b/cmds/statsd/src/stats_log_util.h
index 5fdf6e260247..aec09561b7c6 100644
--- a/cmds/statsd/src/stats_log_util.h
+++ b/cmds/statsd/src/stats_log_util.h
@@ -95,6 +95,9 @@ bool parseProtoOutputStream(util::ProtoOutputStream& protoOutput, T* message) {
// Returns the truncated timestamp to the nearest 5 minutes if needed.
int64_t truncateTimestampIfNecessary(int atomId, int64_t timestampNs);
+// Checks permission for given pid and uid.
+bool checkPermissionForIds(const char* permission, pid_t pid, uid_t uid);
+
inline bool isVendorPulledAtom(int atomId) {
return atomId >= StatsdStats::kVendorPulledAtomStartTag && atomId < StatsdStats::kMaxAtomTag;
}
diff --git a/cmds/statsd/src/statscompanion_util.h b/cmds/statsd/src/statscompanion_util.h
index ff702f23f6d1..dc4f28361214 100644
--- a/cmds/statsd/src/statscompanion_util.h
+++ b/cmds/statsd/src/statscompanion_util.h
@@ -18,12 +18,6 @@
#include "StatsLogProcessor.h"
-using namespace android;
-using namespace android::base;
-using namespace android::binder;
-using namespace android::os;
-using namespace std;
-
namespace android {
namespace os {
namespace statsd {
diff --git a/cmds/statsd/src/storage/StorageManager.cpp b/cmds/statsd/src/storage/StorageManager.cpp
index 9b48a02c7f78..507297c6c401 100644
--- a/cmds/statsd/src/storage/StorageManager.cpp
+++ b/cmds/statsd/src/storage/StorageManager.cpp
@@ -23,10 +23,8 @@
#include "stats_log_util.h"
#include <android-base/file.h>
-#include <dirent.h>
#include <private/android_filesystem_config.h>
#include <fstream>
-#include <iostream>
namespace android {
namespace os {
diff --git a/cmds/statsd/src/subscriber/IncidentdReporter.cpp b/cmds/statsd/src/subscriber/IncidentdReporter.cpp
index f1320c2f746d..30c90b1e1f71 100644
--- a/cmds/statsd/src/subscriber/IncidentdReporter.cpp
+++ b/cmds/statsd/src/subscriber/IncidentdReporter.cpp
@@ -21,11 +21,8 @@
#include "packages/UidMap.h"
#include "stats_log_util.h"
-#include <android/os/IIncidentManager.h>
-#include <android/os/IncidentReportArgs.h>
#include <android/util/ProtoOutputStream.h>
-#include <binder/IBinder.h>
-#include <binder/IServiceManager.h>
+#include <incident/incident_report.h>
#include <vector>
@@ -133,7 +130,7 @@ bool GenerateIncidentReport(const IncidentdDetails& config, int64_t rule_id, int
return false;
}
- IncidentReportArgs incidentReport;
+ android::os::IncidentReportRequest incidentReport;
vector<uint8_t> protoData;
getProtoData(rule_id, metricId, dimensionKey, metricValue, configKey,
@@ -147,30 +144,21 @@ bool GenerateIncidentReport(const IncidentdDetails& config, int64_t rule_id, int
uint8_t dest;
switch (config.dest()) {
case IncidentdDetails_Destination_AUTOMATIC:
- dest = android::os::PRIVACY_POLICY_AUTOMATIC;
+ dest = INCIDENT_REPORT_PRIVACY_POLICY_AUTOMATIC;
break;
case IncidentdDetails_Destination_EXPLICIT:
- dest = android::os::PRIVACY_POLICY_EXPLICIT;
+ dest = INCIDENT_REPORT_PRIVACY_POLICY_EXPLICIT;
break;
default:
- dest = android::os::PRIVACY_POLICY_AUTOMATIC;
+ dest = INCIDENT_REPORT_PRIVACY_POLICY_AUTOMATIC;
}
incidentReport.setPrivacyPolicy(dest);
- incidentReport.setReceiverPkg(config.receiver_pkg());
+ incidentReport.setReceiverPackage(config.receiver_pkg());
- incidentReport.setReceiverCls(config.receiver_cls());
+ incidentReport.setReceiverClass(config.receiver_cls());
- sp<IIncidentManager> service = interface_cast<IIncidentManager>(
- defaultServiceManager()->getService(android::String16("incident")));
- if (service == nullptr) {
- ALOGW("Failed to fetch incident service.");
- return false;
- }
- VLOG("Calling incidentd %p", service.get());
- binder::Status s = service->reportIncident(incidentReport);
- VLOG("Report incident status: %s", s.toString8().string());
- return s.isOk();
+ return incidentReport.takeReport() == NO_ERROR;
}
} // namespace statsd
diff --git a/cmds/statsd/src/subscriber/SubscriberReporter.cpp b/cmds/statsd/src/subscriber/SubscriberReporter.cpp
index a37cad14fcbc..160b57e27c6c 100644
--- a/cmds/statsd/src/subscriber/SubscriberReporter.cpp
+++ b/cmds/statsd/src/subscriber/SubscriberReporter.cpp
@@ -20,7 +20,6 @@
#include "SubscriberReporter.h"
using std::lock_guard;
-using std::unordered_map;
namespace android {
namespace os {
diff --git a/cmds/statsd/tests/LogEvent_test.cpp b/cmds/statsd/tests/LogEvent_test.cpp
index 1cf9fb681d61..f624e12c9623 100644
--- a/cmds/statsd/tests/LogEvent_test.cpp
+++ b/cmds/statsd/tests/LogEvent_test.cpp
@@ -46,20 +46,22 @@ Field getField(int32_t tag, const vector<int32_t>& pos, int32_t depth, const vec
}
TEST(LogEventTest, TestPrimitiveParsing) {
- struct stats_event* event = stats_event_obtain();
- stats_event_set_atom_id(event, 100);
- stats_event_write_int32(event, 10);
- stats_event_write_int64(event, 0x123456789);
- stats_event_write_float(event, 2.0);
- stats_event_write_bool(event, true);
- stats_event_build(event);
+ AStatsEvent* event = AStatsEvent_obtain();
+ AStatsEvent_setAtomId(event, 100);
+ AStatsEvent_writeInt32(event, 10);
+ AStatsEvent_writeInt64(event, 0x123456789);
+ AStatsEvent_writeFloat(event, 2.0);
+ AStatsEvent_writeBool(event, true);
+ AStatsEvent_build(event);
size_t size;
- uint8_t* buf = stats_event_get_buffer(event, &size);
+ uint8_t* buf = AStatsEvent_getBuffer(event, &size);
- LogEvent logEvent(buf, size, /*uid=*/ 1000);
+ LogEvent logEvent(buf, size, /*uid=*/ 1000, /*pid=*/ 1001);
EXPECT_TRUE(logEvent.isValid());
EXPECT_EQ(100, logEvent.GetTagId());
+ EXPECT_EQ(1000, logEvent.GetUid());
+ EXPECT_EQ(1001, logEvent.GetPid());
const vector<FieldValue>& values = logEvent.getValues();
EXPECT_EQ(4, values.size());
@@ -88,24 +90,26 @@ TEST(LogEventTest, TestPrimitiveParsing) {
EXPECT_EQ(Type::INT, boolItem.mValue.getType()); // FieldValue does not support boolean type
EXPECT_EQ(1, boolItem.mValue.int_value);
- stats_event_release(event);
+ AStatsEvent_release(event);
}
TEST(LogEventTest, TestStringAndByteArrayParsing) {
- struct stats_event* event = stats_event_obtain();
- stats_event_set_atom_id(event, 100);
+ AStatsEvent* event = AStatsEvent_obtain();
+ AStatsEvent_setAtomId(event, 100);
string str = "test";
- stats_event_write_string8(event, str.c_str());
- stats_event_write_byte_array(event, (uint8_t*)str.c_str(), str.length());
- stats_event_build(event);
+ AStatsEvent_writeString(event, str.c_str());
+ AStatsEvent_writeByteArray(event, (uint8_t*)str.c_str(), str.length());
+ AStatsEvent_build(event);
size_t size;
- uint8_t* buf = stats_event_get_buffer(event, &size);
+ uint8_t* buf = AStatsEvent_getBuffer(event, &size);
- LogEvent logEvent(buf, size, /*uid=*/ 1000);
+ LogEvent logEvent(buf, size, /*uid=*/ 1000, /*pid=*/ 1001);
EXPECT_TRUE(logEvent.isValid());
EXPECT_EQ(100, logEvent.GetTagId());
+ EXPECT_EQ(1000, logEvent.GetUid());
+ EXPECT_EQ(1001, logEvent.GetPid());
const vector<FieldValue>& values = logEvent.getValues();
EXPECT_EQ(2, values.size());
@@ -123,22 +127,24 @@ TEST(LogEventTest, TestStringAndByteArrayParsing) {
vector<uint8_t> expectedValue = {'t', 'e', 's', 't'};
EXPECT_EQ(expectedValue, storageItem.mValue.storage_value);
- stats_event_release(event);
+ AStatsEvent_release(event);
}
TEST(LogEventTest, TestEmptyString) {
- struct stats_event* event = stats_event_obtain();
- stats_event_set_atom_id(event, 100);
+ AStatsEvent* event = AStatsEvent_obtain();
+ AStatsEvent_setAtomId(event, 100);
string empty = "";
- stats_event_write_string8(event, empty.c_str());
- stats_event_build(event);
+ AStatsEvent_writeString(event, empty.c_str());
+ AStatsEvent_build(event);
size_t size;
- uint8_t* buf = stats_event_get_buffer(event, &size);
+ uint8_t* buf = AStatsEvent_getBuffer(event, &size);
- LogEvent logEvent(buf, size, /*uid=*/ 1000);
+ LogEvent logEvent(buf, size, /*uid=*/ 1000, /*pid=*/ 1001);
EXPECT_TRUE(logEvent.isValid());
EXPECT_EQ(100, logEvent.GetTagId());
+ EXPECT_EQ(1000, logEvent.GetUid());
+ EXPECT_EQ(1001, logEvent.GetPid());
const vector<FieldValue>& values = logEvent.getValues();
EXPECT_EQ(1, values.size());
@@ -149,22 +155,24 @@ TEST(LogEventTest, TestEmptyString) {
EXPECT_EQ(Type::STRING, item.mValue.getType());
EXPECT_EQ(empty, item.mValue.str_value);
- stats_event_release(event);
+ AStatsEvent_release(event);
}
TEST(LogEventTest, TestByteArrayWithNullCharacter) {
- struct stats_event* event = stats_event_obtain();
- stats_event_set_atom_id(event, 100);
+ AStatsEvent* event = AStatsEvent_obtain();
+ AStatsEvent_setAtomId(event, 100);
uint8_t message[] = {'\t', 'e', '\0', 's', 't'};
- stats_event_write_byte_array(event, message, 5);
- stats_event_build(event);
+ AStatsEvent_writeByteArray(event, message, 5);
+ AStatsEvent_build(event);
size_t size;
- uint8_t* buf = stats_event_get_buffer(event, &size);
+ uint8_t* buf = AStatsEvent_getBuffer(event, &size);
- LogEvent logEvent(buf, size, /*uid=*/ 1000);
+ LogEvent logEvent(buf, size, /*uid=*/ 1000, /*pid=*/ 1001);
EXPECT_TRUE(logEvent.isValid());
EXPECT_EQ(100, logEvent.GetTagId());
+ EXPECT_EQ(1000, logEvent.GetUid());
+ EXPECT_EQ(1001, logEvent.GetPid());
const vector<FieldValue>& values = logEvent.getValues();
EXPECT_EQ(1, values.size());
@@ -176,77 +184,12 @@ TEST(LogEventTest, TestByteArrayWithNullCharacter) {
vector<uint8_t> expectedValue(message, message + 5);
EXPECT_EQ(expectedValue, item.mValue.storage_value);
- stats_event_release(event);
-}
-
-TEST(LogEventTest, TestKeyValuePairs) {
- struct stats_event* event = stats_event_obtain();
- stats_event_set_atom_id(event, 100);
-
- struct key_value_pair pairs[4];
- pairs[0] = {.key = 0, .valueType = INT32_TYPE, .int32Value = 1};
- pairs[1] = {.key = 1, .valueType = INT64_TYPE, .int64Value = 0x123456789};
- pairs[2] = {.key = 2, .valueType = FLOAT_TYPE, .floatValue = 2.0};
- string str = "test";
- pairs[3] = {.key = 3, .valueType = STRING_TYPE, .stringValue = str.c_str()};
-
- stats_event_write_key_value_pairs(event, pairs, 4);
- stats_event_build(event);
-
- size_t size;
- uint8_t* buf = stats_event_get_buffer(event, &size);
-
- LogEvent logEvent(buf, size, /*uid=*/ 1000);
- EXPECT_TRUE(logEvent.isValid());
- EXPECT_EQ(100, logEvent.GetTagId());
-
- const vector<FieldValue>& values = logEvent.getValues();
- EXPECT_EQ(8, values.size()); // 2 FieldValues per key-value pair
-
- // Check the keys first
- for (int i = 0; i < values.size() / 2; i++) {
- const FieldValue& item = values[2 * i];
- int32_t depth1Pos = i + 1;
- bool depth1Last = i == (values.size() / 2 - 1);
- Field expectedField = getField(100, {1, depth1Pos, 1}, 2, {true, depth1Last, false});
-
- EXPECT_EQ(expectedField, item.mField);
- EXPECT_EQ(Type::INT, item.mValue.getType());
- EXPECT_EQ(i, item.mValue.int_value);
- }
-
- // Check the values now
- // Note: pos[2] = index of type in KeyValuePair in atoms.proto
- const FieldValue& int32Item = values[1];
- Field expectedField = getField(100, {1, 1, 2}, 2, {true, false, true});
- EXPECT_EQ(expectedField, int32Item.mField);
- EXPECT_EQ(Type::INT, int32Item.mValue.getType());
- EXPECT_EQ(1, int32Item.mValue.int_value);
-
- const FieldValue& int64Item = values[3];
- expectedField = getField(100, {1, 2, 3}, 2, {true, false, true});
- EXPECT_EQ(expectedField, int64Item.mField);
- EXPECT_EQ(Type::LONG, int64Item.mValue.getType());
- EXPECT_EQ(0x123456789, int64Item.mValue.long_value);
-
- const FieldValue& floatItem = values[5];
- expectedField = getField(100, {1, 3, 5}, 2, {true, false, true});
- EXPECT_EQ(expectedField, floatItem.mField);
- EXPECT_EQ(Type::FLOAT, floatItem.mValue.getType());
- EXPECT_EQ(2.0, floatItem.mValue.float_value);
-
- const FieldValue& stringItem = values[7];
- expectedField = getField(100, {1, 4, 4}, 2, {true, true, true});
- EXPECT_EQ(expectedField, stringItem.mField);
- EXPECT_EQ(Type::STRING, stringItem.mValue.getType());
- EXPECT_EQ(str, stringItem.mValue.str_value);
-
- stats_event_release(event);
+ AStatsEvent_release(event);
}
TEST(LogEventTest, TestAttributionChain) {
- struct stats_event* event = stats_event_obtain();
- stats_event_set_atom_id(event, 100);
+ AStatsEvent* event = AStatsEvent_obtain();
+ AStatsEvent_setAtomId(event, 100);
string tag1 = "tag1";
string tag2 = "tag2";
@@ -254,15 +197,17 @@ TEST(LogEventTest, TestAttributionChain) {
uint32_t uids[] = {1001, 1002};
const char* tags[] = {tag1.c_str(), tag2.c_str()};
- stats_event_write_attribution_chain(event, uids, tags, 2);
- stats_event_build(event);
+ AStatsEvent_writeAttributionChain(event, uids, tags, 2);
+ AStatsEvent_build(event);
size_t size;
- uint8_t* buf = stats_event_get_buffer(event, &size);
+ uint8_t* buf = AStatsEvent_getBuffer(event, &size);
- LogEvent logEvent(buf, size, /*uid=*/ 1000);
+ LogEvent logEvent(buf, size, /*uid=*/ 1000, /*pid=*/ 1001);
EXPECT_TRUE(logEvent.isValid());
EXPECT_EQ(100, logEvent.GetTagId());
+ EXPECT_EQ(1000, logEvent.GetUid());
+ EXPECT_EQ(1001, logEvent.GetPid());
const vector<FieldValue>& values = logEvent.getValues();
EXPECT_EQ(4, values.size()); // 2 per attribution node
@@ -293,7 +238,7 @@ TEST(LogEventTest, TestAttributionChain) {
EXPECT_EQ(Type::STRING, tag2Item.mValue.getType());
EXPECT_EQ(tag2, tag2Item.mValue.str_value);
- stats_event_release(event);
+ AStatsEvent_release(event);
}
#else // NEW_ENCODING_SCHEME
diff --git a/cmds/statsd/tests/e2e/GaugeMetric_e2e_pull_test.cpp b/cmds/statsd/tests/e2e/GaugeMetric_e2e_pull_test.cpp
index c7ba9be3ca5a..5e60abaf7792 100644
--- a/cmds/statsd/tests/e2e/GaugeMetric_e2e_pull_test.cpp
+++ b/cmds/statsd/tests/e2e/GaugeMetric_e2e_pull_test.cpp
@@ -14,12 +14,12 @@
#include <gtest/gtest.h>
+#include <vector>
+
#include "src/StatsLogProcessor.h"
#include "src/stats_log_util.h"
#include "tests/statsd_test_util.h"
-#include <vector>
-
namespace android {
namespace os {
namespace statsd {
@@ -29,12 +29,13 @@ namespace statsd {
namespace {
const int64_t metricId = 123456;
+const int32_t ATOM_TAG = android::util::SUBSYSTEM_SLEEP_STATE;
StatsdConfig CreateStatsdConfig(const GaugeMetric::SamplingType sampling_type,
bool useCondition = true) {
StatsdConfig config;
config.add_allowed_log_source("AID_ROOT"); // LogEvent defaults to UID of root.
- auto atomMatcher = CreateSimpleAtomMatcher("TestMatcher", android::util::SUBSYSTEM_SLEEP_STATE);
+ auto atomMatcher = CreateSimpleAtomMatcher("TestMatcher", ATOM_TAG);
*config.add_atom_matcher() = atomMatcher;
*config.add_atom_matcher() = CreateScreenTurnedOnAtomMatcher();
*config.add_atom_matcher() = CreateScreenTurnedOffAtomMatcher();
@@ -51,7 +52,7 @@ StatsdConfig CreateStatsdConfig(const GaugeMetric::SamplingType sampling_type,
gaugeMetric->set_sampling_type(sampling_type);
gaugeMetric->mutable_gauge_fields_filter()->set_include_all(true);
*gaugeMetric->mutable_dimensions_in_what() =
- CreateDimensions(android::util::SUBSYSTEM_SLEEP_STATE, {1 /* subsystem name */});
+ CreateDimensions(ATOM_TAG, {1 /* subsystem name */});
gaugeMetric->set_bucket(FIVE_MINUTES);
gaugeMetric->set_max_pull_delay_sec(INT_MAX);
config.set_hash_strings_in_metric_report(false);
@@ -69,8 +70,8 @@ TEST(GaugeMetricE2eTest, TestRandomSamplePulledEvents) {
TimeUnitToBucketSizeInMillis(config.gauge_metric(0).bucket()) * 1000000;
ConfigKey cfgKey;
- auto processor = CreateStatsLogProcessor(
- baseTimeNs, configAddedTimeNs, config, cfgKey);
+ auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
+ new FakeSubsystemSleepCallback(), ATOM_TAG);
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
processor->mPullerManager->ForceClearPullerCache();
@@ -144,7 +145,7 @@ TEST(GaugeMetricE2eTest, TestRandomSamplePulledEvents) {
EXPECT_GT((int)gaugeMetrics.data_size(), 1);
auto data = gaugeMetrics.data(0);
- EXPECT_EQ(android::util::SUBSYSTEM_SLEEP_STATE, data.dimensions_in_what().field());
+ EXPECT_EQ(ATOM_TAG, data.dimensions_in_what().field());
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
EXPECT_EQ(1 /* subsystem name field */,
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
@@ -214,8 +215,8 @@ TEST(GaugeMetricE2eTest, TestConditionChangeToTrueSamplePulledEvents) {
TimeUnitToBucketSizeInMillis(config.gauge_metric(0).bucket()) * 1000000;
ConfigKey cfgKey;
- auto processor = CreateStatsLogProcessor(
- baseTimeNs, configAddedTimeNs, config, cfgKey);
+ auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
+ new FakeSubsystemSleepCallback(), ATOM_TAG);
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
processor->mPullerManager->ForceClearPullerCache();
@@ -267,7 +268,7 @@ TEST(GaugeMetricE2eTest, TestConditionChangeToTrueSamplePulledEvents) {
EXPECT_GT((int)gaugeMetrics.data_size(), 1);
auto data = gaugeMetrics.data(0);
- EXPECT_EQ(android::util::SUBSYSTEM_SLEEP_STATE, data.dimensions_in_what().field());
+ EXPECT_EQ(ATOM_TAG, data.dimensions_in_what().field());
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
EXPECT_EQ(1 /* subsystem name field */,
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
@@ -315,8 +316,8 @@ TEST(GaugeMetricE2eTest, TestRandomSamplePulledEvent_LateAlarm) {
TimeUnitToBucketSizeInMillis(config.gauge_metric(0).bucket()) * 1000000;
ConfigKey cfgKey;
- auto processor = CreateStatsLogProcessor(
- baseTimeNs, configAddedTimeNs, config, cfgKey);
+ auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
+ new FakeSubsystemSleepCallback, ATOM_TAG);
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
processor->mPullerManager->ForceClearPullerCache();
@@ -371,7 +372,7 @@ TEST(GaugeMetricE2eTest, TestRandomSamplePulledEvent_LateAlarm) {
EXPECT_GT((int)gaugeMetrics.data_size(), 1);
auto data = gaugeMetrics.data(0);
- EXPECT_EQ(android::util::SUBSYSTEM_SLEEP_STATE, data.dimensions_in_what().field());
+ EXPECT_EQ(ATOM_TAG, data.dimensions_in_what().field());
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
EXPECT_EQ(1 /* subsystem name field */,
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
@@ -424,8 +425,8 @@ TEST(GaugeMetricE2eTest, TestRandomSamplePulledEventsWithActivation) {
event_activation->set_ttl_seconds(ttlNs / 1000000000);
ConfigKey cfgKey;
- auto processor = CreateStatsLogProcessor(
- baseTimeNs, configAddedTimeNs, config, cfgKey);
+ auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
+ new FakeSubsystemSleepCallback(), ATOM_TAG);
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
processor->mPullerManager->ForceClearPullerCache();
@@ -493,7 +494,7 @@ TEST(GaugeMetricE2eTest, TestRandomSamplePulledEventsWithActivation) {
EXPECT_GT((int)gaugeMetrics.data_size(), 0);
auto data = gaugeMetrics.data(0);
- EXPECT_EQ(android::util::SUBSYSTEM_SLEEP_STATE, data.dimensions_in_what().field());
+ EXPECT_EQ(ATOM_TAG, data.dimensions_in_what().field());
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
EXPECT_EQ(1 /* subsystem name field */,
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
@@ -542,8 +543,8 @@ TEST(GaugeMetricE2eTest, TestRandomSamplePulledEventsNoCondition) {
TimeUnitToBucketSizeInMillis(config.gauge_metric(0).bucket()) * 1000000;
ConfigKey cfgKey;
- auto processor = CreateStatsLogProcessor(
- baseTimeNs, configAddedTimeNs, config, cfgKey);
+ auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
+ new FakeSubsystemSleepCallback(), ATOM_TAG);
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
processor->mPullerManager->ForceClearPullerCache();
@@ -586,7 +587,7 @@ TEST(GaugeMetricE2eTest, TestRandomSamplePulledEventsNoCondition) {
EXPECT_GT((int)gaugeMetrics.data_size(), 0);
auto data = gaugeMetrics.data(0);
- EXPECT_EQ(android::util::SUBSYSTEM_SLEEP_STATE, data.dimensions_in_what().field());
+ EXPECT_EQ(ATOM_TAG, data.dimensions_in_what().field());
EXPECT_EQ(1, data.dimensions_in_what().value_tuple().dimensions_value_size());
EXPECT_EQ(1 /* subsystem name field */,
data.dimensions_in_what().value_tuple().dimensions_value(0).field());
diff --git a/cmds/statsd/tests/e2e/PartialBucket_e2e_test.cpp b/cmds/statsd/tests/e2e/PartialBucket_e2e_test.cpp
index 16b51d99535b..9d58867f09db 100644
--- a/cmds/statsd/tests/e2e/PartialBucket_e2e_test.cpp
+++ b/cmds/statsd/tests/e2e/PartialBucket_e2e_test.cpp
@@ -12,22 +12,24 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+#include <android/os/BnPullAtomCallback.h>
+#include <android/os/IPullAtomResultReceiver.h>
+#include <binder/IPCThreadState.h>
#include <gtest/gtest.h>
-#include <binder/IPCThreadState.h>
+#include <vector>
+
#include "src/StatsLogProcessor.h"
#include "src/StatsService.h"
#include "src/stats_log_util.h"
#include "tests/statsd_test_util.h"
-#include <vector>
-
namespace android {
namespace os {
namespace statsd {
#ifdef __ANDROID__
-
+namespace {
const string kApp1 = "app1.sharing.1";
const int kConfigKey = 789130123; // Randomly chosen to avoid collisions with existing configs.
const int kCallingUid = 0; // Randomly chosen
@@ -109,6 +111,7 @@ StatsdConfig MakeGaugeMetricConfig(int64_t minTime) {
gaugeMetric->set_min_bucket_size_nanos(minTime);
return config;
}
+} // anonymous namespace
TEST(PartialBucketE2eTest, TestCountMetricWithoutSplit) {
StatsService service(nullptr, nullptr);
@@ -202,6 +205,9 @@ TEST(PartialBucketE2eTest, TestCountMetricSplitOnRemoval) {
TEST(PartialBucketE2eTest, TestValueMetricWithoutMinPartialBucket) {
StatsService service(nullptr, nullptr);
+ service.mPullerManager->RegisterPullAtomCallback(
+ /*uid=*/0, android::util::SUBSYSTEM_SLEEP_STATE, NS_PER_SEC, NS_PER_SEC * 10, {},
+ new FakeSubsystemSleepCallback());
// Partial buckets don't occur when app is first installed.
service.mUidMap->updateApp(1, String16(kApp1.c_str()), 1, 1, String16("v1"), String16(""));
SendConfig(service, MakeValueMetricConfig(0));
@@ -220,6 +226,9 @@ TEST(PartialBucketE2eTest, TestValueMetricWithoutMinPartialBucket) {
TEST(PartialBucketE2eTest, TestValueMetricWithMinPartialBucket) {
StatsService service(nullptr, nullptr);
+ service.mPullerManager->RegisterPullAtomCallback(
+ /*uid=*/0, android::util::SUBSYSTEM_SLEEP_STATE, NS_PER_SEC, NS_PER_SEC * 10, {},
+ new FakeSubsystemSleepCallback());
// Partial buckets don't occur when app is first installed.
service.mUidMap->updateApp(1, String16(kApp1.c_str()), 1, 1, String16("v1"), String16(""));
SendConfig(service, MakeValueMetricConfig(60 * NS_PER_SEC /* One minute */));
diff --git a/cmds/statsd/tests/e2e/ValueMetric_pull_e2e_test.cpp b/cmds/statsd/tests/e2e/ValueMetric_pull_e2e_test.cpp
index e8d2ec514cad..a140af876474 100644
--- a/cmds/statsd/tests/e2e/ValueMetric_pull_e2e_test.cpp
+++ b/cmds/statsd/tests/e2e/ValueMetric_pull_e2e_test.cpp
@@ -69,8 +69,9 @@ TEST(ValueMetricE2eTest, TestPulledEvents) {
TimeUnitToBucketSizeInMillis(config.value_metric(0).bucket()) * 1000000;
ConfigKey cfgKey;
- auto processor = CreateStatsLogProcessor(
- baseTimeNs, configAddedTimeNs, config, cfgKey);
+ auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
+ new FakeSubsystemSleepCallback(),
+ android::util::SUBSYSTEM_SLEEP_STATE);
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
processor->mPullerManager->ForceClearPullerCache();
@@ -173,8 +174,9 @@ TEST(ValueMetricE2eTest, TestPulledEvents_LateAlarm) {
TimeUnitToBucketSizeInMillis(config.value_metric(0).bucket()) * 1000000;
ConfigKey cfgKey;
- auto processor = CreateStatsLogProcessor(
- baseTimeNs, configAddedTimeNs, config, cfgKey);
+ auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
+ new FakeSubsystemSleepCallback(),
+ android::util::SUBSYSTEM_SLEEP_STATE);
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
processor->mPullerManager->ForceClearPullerCache();
@@ -285,8 +287,9 @@ TEST(ValueMetricE2eTest, TestPulledEvents_WithActivation) {
event_activation->set_ttl_seconds(ttlNs / 1000000000);
ConfigKey cfgKey;
- auto processor = CreateStatsLogProcessor(
- baseTimeNs, configAddedTimeNs, config, cfgKey);
+ auto processor = CreateStatsLogProcessor(baseTimeNs, configAddedTimeNs, config, cfgKey,
+ new FakeSubsystemSleepCallback(),
+ android::util::SUBSYSTEM_SLEEP_STATE);
EXPECT_EQ(processor->mMetricsManagers.size(), 1u);
EXPECT_TRUE(processor->mMetricsManagers.begin()->second->isConfigValid());
processor->mPullerManager->ForceClearPullerCache();
diff --git a/cmds/statsd/tests/external/GpuStatsPuller_test.cpp b/cmds/statsd/tests/external/GpuStatsPuller_test.cpp
deleted file mode 100644
index ae92705aff4c..000000000000
--- a/cmds/statsd/tests/external/GpuStatsPuller_test.cpp
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#undef LOG_TAG
-#define LOG_TAG "GpuStatsPuller_test"
-
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
-
-#include <graphicsenv/GpuStatsInfo.h>
-#include <log/log.h>
-
-#include "src/external/GpuStatsPuller.h"
-#include "statslog.h"
-
-#ifdef __ANDROID__
-
-namespace android {
-namespace os {
-namespace statsd {
-
-// clang-format off
-static const std::string DRIVER_PACKAGE_NAME = "TEST_DRIVER";
-static const std::string DRIVER_VERSION_NAME = "TEST_DRIVER_VERSION";
-static const std::string APP_PACKAGE_NAME = "TEST_APP";
-static const int64_t TIMESTAMP_WALLCLOCK = 111;
-static const int64_t TIMESTAMP_ELAPSED = 222;
-static const int64_t DRIVER_VERSION_CODE = 333;
-static const int64_t DRIVER_BUILD_TIME = 444;
-static const int64_t GL_LOADING_COUNT = 3;
-static const int64_t GL_LOADING_FAILURE_COUNT = 1;
-static const int64_t VK_LOADING_COUNT = 4;
-static const int64_t VK_LOADING_FAILURE_COUNT = 0;
-static const int64_t ANGLE_LOADING_COUNT = 2;
-static const int64_t ANGLE_LOADING_FAILURE_COUNT = 1;
-static const int64_t GL_DRIVER_LOADING_TIME_0 = 555;
-static const int64_t GL_DRIVER_LOADING_TIME_1 = 666;
-static const int64_t VK_DRIVER_LOADING_TIME_0 = 777;
-static const int64_t VK_DRIVER_LOADING_TIME_1 = 888;
-static const int64_t VK_DRIVER_LOADING_TIME_2 = 999;
-static const int64_t ANGLE_DRIVER_LOADING_TIME_0 = 1010;
-static const int64_t ANGLE_DRIVER_LOADING_TIME_1 = 1111;
-static const int32_t VULKAN_VERSION = 1;
-static const int32_t CPU_VULKAN_VERSION = 2;
-static const int32_t GLES_VERSION = 3;
-static const bool CPU_VULKAN_IN_USE = true;
-static const bool FALSE_PREROTATION = true;
-static const bool GLES_1_IN_USE = true;
-static const size_t NUMBER_OF_VALUES_GLOBAL = 13;
-static const size_t NUMBER_OF_VALUES_APP = 8;
-// clang-format on
-
-class MockGpuStatsPuller : public GpuStatsPuller {
-public:
- MockGpuStatsPuller(const int tagId, vector<std::shared_ptr<LogEvent>>* data)
- : GpuStatsPuller(tagId), mData(data){};
-
-private:
- bool PullInternal(vector<std::shared_ptr<LogEvent>>* data) override {
- *data = *mData;
- return true;
- }
-
- vector<std::shared_ptr<LogEvent>>* mData;
-};
-
-class GpuStatsPuller_test : public ::testing::Test {
-public:
- GpuStatsPuller_test() {
- const ::testing::TestInfo* const test_info =
- ::testing::UnitTest::GetInstance()->current_test_info();
- ALOGD("**** Setting up for %s.%s\n", test_info->test_case_name(), test_info->name());
- }
-
- ~GpuStatsPuller_test() {
- const ::testing::TestInfo* const test_info =
- ::testing::UnitTest::GetInstance()->current_test_info();
- ALOGD("**** Tearing down after %s.%s\n", test_info->test_case_name(), test_info->name());
- }
-};
-
-TEST_F(GpuStatsPuller_test, PullGpuStatsGlobalInfo) {
- vector<std::shared_ptr<LogEvent>> inData, outData;
- std::shared_ptr<LogEvent> event = make_shared<LogEvent>(android::util::GPU_STATS_GLOBAL_INFO,
- TIMESTAMP_WALLCLOCK, TIMESTAMP_ELAPSED);
- EXPECT_TRUE(event->write(DRIVER_PACKAGE_NAME));
- EXPECT_TRUE(event->write(DRIVER_VERSION_NAME));
- EXPECT_TRUE(event->write(DRIVER_VERSION_CODE));
- EXPECT_TRUE(event->write(DRIVER_BUILD_TIME));
- EXPECT_TRUE(event->write(GL_LOADING_COUNT));
- EXPECT_TRUE(event->write(GL_LOADING_FAILURE_COUNT));
- EXPECT_TRUE(event->write(VK_LOADING_COUNT));
- EXPECT_TRUE(event->write(VK_LOADING_FAILURE_COUNT));
- EXPECT_TRUE(event->write(VULKAN_VERSION));
- EXPECT_TRUE(event->write(CPU_VULKAN_VERSION));
- EXPECT_TRUE(event->write(GLES_VERSION));
- EXPECT_TRUE(event->write(ANGLE_LOADING_COUNT));
- EXPECT_TRUE(event->write(ANGLE_LOADING_FAILURE_COUNT));
- event->init();
- inData.emplace_back(event);
- MockGpuStatsPuller mockPuller(android::util::GPU_STATS_GLOBAL_INFO, &inData);
- mockPuller.ForceClearCache();
- mockPuller.Pull(&outData);
-
- ASSERT_EQ(1, outData.size());
- EXPECT_EQ(android::util::GPU_STATS_GLOBAL_INFO, outData[0]->GetTagId());
- ASSERT_EQ(NUMBER_OF_VALUES_GLOBAL, outData[0]->size());
- EXPECT_EQ(DRIVER_PACKAGE_NAME, outData[0]->getValues()[0].mValue.str_value);
- EXPECT_EQ(DRIVER_VERSION_NAME, outData[0]->getValues()[1].mValue.str_value);
- EXPECT_EQ(DRIVER_VERSION_CODE, outData[0]->getValues()[2].mValue.long_value);
- EXPECT_EQ(DRIVER_BUILD_TIME, outData[0]->getValues()[3].mValue.long_value);
- EXPECT_EQ(GL_LOADING_COUNT, outData[0]->getValues()[4].mValue.long_value);
- EXPECT_EQ(GL_LOADING_FAILURE_COUNT, outData[0]->getValues()[5].mValue.long_value);
- EXPECT_EQ(VK_LOADING_COUNT, outData[0]->getValues()[6].mValue.long_value);
- EXPECT_EQ(VK_LOADING_FAILURE_COUNT, outData[0]->getValues()[7].mValue.long_value);
- EXPECT_EQ(VULKAN_VERSION, outData[0]->getValues()[8].mValue.int_value);
- EXPECT_EQ(CPU_VULKAN_VERSION, outData[0]->getValues()[9].mValue.int_value);
- EXPECT_EQ(GLES_VERSION, outData[0]->getValues()[10].mValue.int_value);
- EXPECT_EQ(ANGLE_LOADING_COUNT, outData[0]->getValues()[11].mValue.long_value);
- EXPECT_EQ(ANGLE_LOADING_FAILURE_COUNT, outData[0]->getValues()[12].mValue.long_value);
-}
-
-TEST_F(GpuStatsPuller_test, PullGpuStatsAppInfo) {
- vector<std::shared_ptr<LogEvent>> inData, outData;
- std::shared_ptr<LogEvent> event = make_shared<LogEvent>(android::util::GPU_STATS_APP_INFO,
- TIMESTAMP_WALLCLOCK, TIMESTAMP_ELAPSED);
- EXPECT_TRUE(event->write(APP_PACKAGE_NAME));
- EXPECT_TRUE(event->write(DRIVER_VERSION_CODE));
- std::vector<int64_t> glDriverLoadingTime;
- glDriverLoadingTime.emplace_back(GL_DRIVER_LOADING_TIME_0);
- glDriverLoadingTime.emplace_back(GL_DRIVER_LOADING_TIME_1);
- std::vector<int64_t> vkDriverLoadingTime;
- vkDriverLoadingTime.emplace_back(VK_DRIVER_LOADING_TIME_0);
- vkDriverLoadingTime.emplace_back(VK_DRIVER_LOADING_TIME_1);
- vkDriverLoadingTime.emplace_back(VK_DRIVER_LOADING_TIME_2);
- std::vector<int64_t> angleDriverLoadingTime;
- angleDriverLoadingTime.emplace_back(ANGLE_DRIVER_LOADING_TIME_0);
- angleDriverLoadingTime.emplace_back(ANGLE_DRIVER_LOADING_TIME_1);
- EXPECT_TRUE(event->write(int64VectorToProtoByteString(glDriverLoadingTime)));
- EXPECT_TRUE(event->write(int64VectorToProtoByteString(vkDriverLoadingTime)));
- EXPECT_TRUE(event->write(int64VectorToProtoByteString(angleDriverLoadingTime)));
- EXPECT_TRUE(event->write(CPU_VULKAN_IN_USE));
- EXPECT_TRUE(event->write(FALSE_PREROTATION));
- EXPECT_TRUE(event->write(GLES_1_IN_USE));
- event->init();
- inData.emplace_back(event);
- MockGpuStatsPuller mockPuller(android::util::GPU_STATS_APP_INFO, &inData);
- mockPuller.ForceClearCache();
- mockPuller.Pull(&outData);
-
- ASSERT_EQ(1, outData.size());
- EXPECT_EQ(android::util::GPU_STATS_APP_INFO, outData[0]->GetTagId());
- ASSERT_EQ(NUMBER_OF_VALUES_APP, outData[0]->size());
- EXPECT_EQ(APP_PACKAGE_NAME, outData[0]->getValues()[0].mValue.str_value);
- EXPECT_EQ(DRIVER_VERSION_CODE, outData[0]->getValues()[1].mValue.long_value);
- EXPECT_EQ(int64VectorToProtoByteString(glDriverLoadingTime),
- outData[0]->getValues()[2].mValue.str_value);
- EXPECT_EQ(int64VectorToProtoByteString(vkDriverLoadingTime),
- outData[0]->getValues()[3].mValue.str_value);
- EXPECT_EQ(int64VectorToProtoByteString(angleDriverLoadingTime),
- outData[0]->getValues()[4].mValue.str_value);
- EXPECT_EQ(CPU_VULKAN_IN_USE, outData[0]->getValues()[5].mValue.int_value);
- EXPECT_EQ(FALSE_PREROTATION, outData[0]->getValues()[6].mValue.int_value);
- EXPECT_EQ(GLES_1_IN_USE, outData[0]->getValues()[7].mValue.int_value);
-}
-
-} // namespace statsd
-} // namespace os
-} // namespace android
-#else
-GTEST_LOG_(INFO) << "This test does nothing.\n";
-#endif
diff --git a/cmds/statsd/tests/external/StatsCallbackPuller_test.cpp b/cmds/statsd/tests/external/StatsCallbackPuller_test.cpp
index 2576cf5b1339..a011692ee625 100644
--- a/cmds/statsd/tests/external/StatsCallbackPuller_test.cpp
+++ b/cmds/statsd/tests/external/StatsCallbackPuller_test.cpp
@@ -50,11 +50,11 @@ int64_t pullTimeoutNs;
int64_t pullCoolDownNs;
std::thread pullThread;
-stats_event* createSimpleEvent(int64_t value) {
- stats_event* event = stats_event_obtain();
- stats_event_set_atom_id(event, pullTagId);
- stats_event_write_int64(event, value);
- stats_event_build(event);
+AStatsEvent* createSimpleEvent(int64_t value) {
+ AStatsEvent* event = AStatsEvent_obtain();
+ AStatsEvent_setAtomId(event, pullTagId);
+ AStatsEvent_writeInt64(event, value);
+ AStatsEvent_build(event);
return event;
}
@@ -62,16 +62,16 @@ void executePull(const sp<IPullAtomResultReceiver>& resultReceiver) {
// Convert stats_events into StatsEventParcels.
std::vector<android::util::StatsEventParcel> parcels;
for (int i = 0; i < values.size(); i++) {
- stats_event* event = createSimpleEvent(values[i]);
+ AStatsEvent* event = createSimpleEvent(values[i]);
size_t size;
- uint8_t* buffer = stats_event_get_buffer(event, &size);
+ uint8_t* buffer = AStatsEvent_getBuffer(event, &size);
android::util::StatsEventParcel p;
// vector.assign() creates a copy, but this is inevitable unless
// stats_event.h/c uses a vector as opposed to a buffer.
p.buffer.assign(buffer, buffer + size);
parcels.push_back(std::move(p));
- stats_event_release(event);
+ AStatsEvent_release(event);
}
sleep_for(std::chrono::nanoseconds(pullDelayNs));
diff --git a/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp b/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp
index 92e8241d9ec2..f6245ac8ea9a 100644
--- a/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp
+++ b/cmds/statsd/tests/metrics/ValueMetricProducer_test.cpp
@@ -3333,7 +3333,7 @@ TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenDumpReportRequeste
EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
report.value_metrics().skipped(0).start_bucket_elapsed_millis());
- EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
+ EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 40),
report.value_metrics().skipped(0).end_bucket_elapsed_millis());
EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
@@ -3393,7 +3393,7 @@ TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenConditionEventWron
EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
report.value_metrics().skipped(0).start_bucket_elapsed_millis());
- EXPECT_EQ(NanoToMillis(bucket3StartTimeNs),
+ EXPECT_EQ(NanoToMillis(bucket2StartTimeNs + 100),
report.value_metrics().skipped(0).end_bucket_elapsed_millis());
EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
@@ -3470,7 +3470,7 @@ TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenAccumulateEventWro
EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
report.value_metrics().skipped(0).start_bucket_elapsed_millis());
- EXPECT_EQ(NanoToMillis(bucket3StartTimeNs),
+ EXPECT_EQ(NanoToMillis(bucket2StartTimeNs + 100),
report.value_metrics().skipped(0).end_bucket_elapsed_millis());
EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
@@ -3519,7 +3519,8 @@ TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenConditionUnknown)
// Check dump report.
ProtoOutputStream output;
std::set<string> strSet;
- valueProducer->onDumpReport(bucketStartTimeNs + 100, true /* include recent buckets */, true,
+ int64_t dumpReportTimeNs = bucketStartTimeNs + 10000;
+ valueProducer->onDumpReport(dumpReportTimeNs, true /* include recent buckets */, true,
NO_TIME_CONSTRAINTS /* dumpLatency */, &strSet, &output);
StatsLogReport report = outputStreamToProto(&output);
@@ -3529,13 +3530,13 @@ TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenConditionUnknown)
EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
report.value_metrics().skipped(0).start_bucket_elapsed_millis());
- EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
+ EXPECT_EQ(NanoToMillis(dumpReportTimeNs),
report.value_metrics().skipped(0).end_bucket_elapsed_millis());
EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
EXPECT_EQ(BucketDropReason::CONDITION_UNKNOWN, dropEvent.drop_reason());
- EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 100), dropEvent.drop_time_millis());
+ EXPECT_EQ(NanoToMillis(dumpReportTimeNs), dropEvent.drop_time_millis());
}
/*
@@ -3569,7 +3570,8 @@ TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenPullFailed) {
// Check dump report.
ProtoOutputStream output;
std::set<string> strSet;
- valueProducer->onDumpReport(bucketStartTimeNs + 100, true /* include recent buckets */, true,
+ int64_t dumpReportTimeNs = bucketStartTimeNs + 10000;
+ valueProducer->onDumpReport(dumpReportTimeNs, true /* include recent buckets */, true,
NO_TIME_CONSTRAINTS /* dumpLatency */, &strSet, &output);
StatsLogReport report = outputStreamToProto(&output);
@@ -3579,13 +3581,13 @@ TEST(ValueMetricProducerTest_BucketDrop, TestInvalidBucketWhenPullFailed) {
EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
report.value_metrics().skipped(0).start_bucket_elapsed_millis());
- EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
+ EXPECT_EQ(NanoToMillis(dumpReportTimeNs),
report.value_metrics().skipped(0).end_bucket_elapsed_millis());
EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
EXPECT_EQ(BucketDropReason::PULL_FAILED, dropEvent.drop_reason());
- EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 100), dropEvent.drop_time_millis());
+ EXPECT_EQ(NanoToMillis(dumpReportTimeNs), dropEvent.drop_time_millis());
}
/*
@@ -3691,8 +3693,9 @@ TEST(ValueMetricProducerTest_BucketDrop, TestBucketDropWhenBucketTooSmall) {
// Check dump report.
ProtoOutputStream output;
std::set<string> strSet;
- valueProducer->onDumpReport(bucketStartTimeNs + 9000000, true /* include recent buckets */,
- true, NO_TIME_CONSTRAINTS /* dumpLatency */, &strSet, &output);
+ int64_t dumpReportTimeNs = bucketStartTimeNs + 9000000;
+ valueProducer->onDumpReport(dumpReportTimeNs, true /* include recent buckets */, true,
+ NO_TIME_CONSTRAINTS /* dumpLatency */, &strSet, &output);
StatsLogReport report = outputStreamToProto(&output);
EXPECT_TRUE(report.has_value_metrics());
@@ -3701,13 +3704,13 @@ TEST(ValueMetricProducerTest_BucketDrop, TestBucketDropWhenBucketTooSmall) {
EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
report.value_metrics().skipped(0).start_bucket_elapsed_millis());
- EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 9000000),
+ EXPECT_EQ(NanoToMillis(dumpReportTimeNs),
report.value_metrics().skipped(0).end_bucket_elapsed_millis());
EXPECT_EQ(1, report.value_metrics().skipped(0).drop_event_size());
auto dropEvent = report.value_metrics().skipped(0).drop_event(0);
EXPECT_EQ(BucketDropReason::BUCKET_TOO_SMALL, dropEvent.drop_reason());
- EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 9000000), dropEvent.drop_time_millis());
+ EXPECT_EQ(NanoToMillis(dumpReportTimeNs), dropEvent.drop_time_millis());
}
/*
@@ -3739,7 +3742,8 @@ TEST(ValueMetricProducerTest_BucketDrop, TestMultipleBucketDropEvents) {
// Check dump report.
ProtoOutputStream output;
std::set<string> strSet;
- valueProducer->onDumpReport(bucketStartTimeNs + 1000, true /* include recent buckets */, true,
+ int64_t dumpReportTimeNs = bucketStartTimeNs + 1000;
+ valueProducer->onDumpReport(dumpReportTimeNs, true /* include recent buckets */, true,
FAST /* dumpLatency */, &strSet, &output);
StatsLogReport report = outputStreamToProto(&output);
@@ -3749,7 +3753,7 @@ TEST(ValueMetricProducerTest_BucketDrop, TestMultipleBucketDropEvents) {
EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
report.value_metrics().skipped(0).start_bucket_elapsed_millis());
- EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
+ EXPECT_EQ(NanoToMillis(dumpReportTimeNs),
report.value_metrics().skipped(0).end_bucket_elapsed_millis());
EXPECT_EQ(2, report.value_metrics().skipped(0).drop_event_size());
@@ -3759,7 +3763,7 @@ TEST(ValueMetricProducerTest_BucketDrop, TestMultipleBucketDropEvents) {
dropEvent = report.value_metrics().skipped(0).drop_event(1);
EXPECT_EQ(BucketDropReason::DUMP_REPORT_REQUESTED, dropEvent.drop_reason());
- EXPECT_EQ(NanoToMillis(bucketStartTimeNs + 1000), dropEvent.drop_time_millis());
+ EXPECT_EQ(NanoToMillis(dumpReportTimeNs), dropEvent.drop_time_millis());
}
/*
@@ -3826,6 +3830,7 @@ TEST(ValueMetricProducerTest_BucketDrop, TestMaxBucketDropEvents) {
// Check dump report.
ProtoOutputStream output;
std::set<string> strSet;
+ int64_t dumpReportTimeNs = bucketStartTimeNs + 1000;
// Because we already have 10 dump events in the current bucket,
// this case should not be added to the list of dump events.
valueProducer->onDumpReport(bucketStartTimeNs + 1000, true /* include recent buckets */, true,
@@ -3838,7 +3843,7 @@ TEST(ValueMetricProducerTest_BucketDrop, TestMaxBucketDropEvents) {
EXPECT_EQ(NanoToMillis(bucketStartTimeNs),
report.value_metrics().skipped(0).start_bucket_elapsed_millis());
- EXPECT_EQ(NanoToMillis(bucket2StartTimeNs),
+ EXPECT_EQ(NanoToMillis(dumpReportTimeNs),
report.value_metrics().skipped(0).end_bucket_elapsed_millis());
EXPECT_EQ(10, report.value_metrics().skipped(0).drop_event_size());
diff --git a/cmds/statsd/tests/state/StateTracker_test.cpp b/cmds/statsd/tests/state/StateTracker_test.cpp
index 84aaa54bc5bf..b0acd5ad7452 100644
--- a/cmds/statsd/tests/state/StateTracker_test.cpp
+++ b/cmds/statsd/tests/state/StateTracker_test.cpp
@@ -127,6 +127,23 @@ std::shared_ptr<LogEvent> buildOverlayEventBadStateType(int uid, const std::stri
event->init();
return event;
}
+
+std::shared_ptr<LogEvent> buildBleScanEvent(int uid, bool acquire, bool reset) {
+ std::vector<AttributionNodeInternal> chain;
+ chain.push_back(AttributionNodeInternal());
+ AttributionNodeInternal& attr = chain.back();
+ attr.set_uid(uid);
+
+ std::shared_ptr<LogEvent> event =
+ std::make_shared<LogEvent>(android::util::BLE_SCAN_STATE_CHANGED, 1000);
+ event->write(chain);
+ event->write(reset ? 2 : acquire ? 1 : 0); // PARTIAL_WAKE_LOCK
+ event->write(0); // filtered
+ event->write(0); // first match
+ event->write(0); // opportunistic
+ event->init();
+ return event;
+}
// END: build event functions.
// START: get primary key functions
@@ -277,6 +294,80 @@ TEST(StateTrackerTest, TestUnregisterListener) {
}
/**
+ * Test a binary state atom with nested counting.
+ *
+ * To go from an "ON" state to an "OFF" state with nested counting, we must see
+ * an equal number of "OFF" events as "ON" events.
+ * For example, ACQUIRE, ACQUIRE, RELEASE will still be in the ACQUIRE state.
+ * ACQUIRE, ACQUIRE, RELEASE, RELEASE will be in the RELEASE state.
+ */
+TEST(StateTrackerTest, TestStateChangeNested) {
+ sp<TestStateListener> listener = new TestStateListener();
+ StateManager mgr;
+ mgr.registerListener(android::util::WAKELOCK_STATE_CHANGED, listener);
+
+ std::shared_ptr<LogEvent> event1 =
+ buildPartialWakelockEvent(1000 /* uid */, "tag", true /*acquire*/);
+ mgr.onLogEvent(*event1);
+ EXPECT_EQ(1, listener->updates.size());
+ EXPECT_EQ(1000, listener->updates[0].mKey.getValues()[0].mValue.int_value);
+ EXPECT_EQ(1, listener->updates[0].mState);
+ listener->updates.clear();
+
+ std::shared_ptr<LogEvent> event2 =
+ buildPartialWakelockEvent(1000 /* uid */, "tag", true /*acquire*/);
+ mgr.onLogEvent(*event2);
+ EXPECT_EQ(0, listener->updates.size());
+
+ std::shared_ptr<LogEvent> event3 =
+ buildPartialWakelockEvent(1000 /* uid */, "tag", false /*release*/);
+ mgr.onLogEvent(*event3);
+ EXPECT_EQ(0, listener->updates.size());
+
+ std::shared_ptr<LogEvent> event4 =
+ buildPartialWakelockEvent(1000 /* uid */, "tag", false /*release*/);
+ mgr.onLogEvent(*event4);
+ EXPECT_EQ(1, listener->updates.size());
+ EXPECT_EQ(1000, listener->updates[0].mKey.getValues()[0].mValue.int_value);
+ EXPECT_EQ(0, listener->updates[0].mState);
+}
+
+/**
+ * Test a state atom with a reset state.
+ *
+ * If the reset state value is seen, every state in the map is set to the default
+ * state and every listener is notified.
+ */
+TEST(StateTrackerTest, TestStateChangeReset) {
+ sp<TestStateListener> listener = new TestStateListener();
+ StateManager mgr;
+ mgr.registerListener(android::util::BLE_SCAN_STATE_CHANGED, listener);
+
+ std::shared_ptr<LogEvent> event1 =
+ buildBleScanEvent(1000 /* uid */, true /*acquire*/, false /*reset*/);
+ mgr.onLogEvent(*event1);
+ EXPECT_EQ(1, listener->updates.size());
+ EXPECT_EQ(1000, listener->updates[0].mKey.getValues()[0].mValue.int_value);
+ EXPECT_EQ(BleScanStateChanged::ON, listener->updates[0].mState);
+ listener->updates.clear();
+
+ std::shared_ptr<LogEvent> event2 =
+ buildBleScanEvent(2000 /* uid */, true /*acquire*/, false /*reset*/);
+ mgr.onLogEvent(*event2);
+ EXPECT_EQ(1, listener->updates.size());
+ EXPECT_EQ(2000, listener->updates[0].mKey.getValues()[0].mValue.int_value);
+ EXPECT_EQ(BleScanStateChanged::ON, listener->updates[0].mState);
+ listener->updates.clear();
+
+ std::shared_ptr<LogEvent> event3 =
+ buildBleScanEvent(2000 /* uid */, false /*acquire*/, true /*reset*/);
+ mgr.onLogEvent(*event3);
+ EXPECT_EQ(2, listener->updates.size());
+ EXPECT_EQ(BleScanStateChanged::OFF, listener->updates[0].mState);
+ EXPECT_EQ(BleScanStateChanged::OFF, listener->updates[1].mState);
+}
+
+/**
* Test StateManager's onLogEvent and StateListener's onStateChanged correctly
* updates listener for states without primary keys.
*/
@@ -334,7 +425,7 @@ TEST(StateTrackerTest, TestStateChangePrimaryFieldAttrChain) {
// Log event.
std::shared_ptr<LogEvent> event =
- buildPartialWakelockEvent(1001 /* uid */, "tag1", false /* acquire */);
+ buildPartialWakelockEvent(1001 /* uid */, "tag1", true /* acquire */);
mgr.onLogEvent(*event);
EXPECT_EQ(1, mgr.getStateTrackersCount());
@@ -346,23 +437,25 @@ TEST(StateTrackerTest, TestStateChangePrimaryFieldAttrChain) {
EXPECT_EQ(1001, listener1->updates[0].mKey.getValues()[0].mValue.int_value);
EXPECT_EQ(1, listener1->updates[0].mKey.getValues()[1].mValue.int_value);
EXPECT_EQ("tag1", listener1->updates[0].mKey.getValues()[2].mValue.str_value);
- EXPECT_EQ(WakelockStateChanged::RELEASE, listener1->updates[0].mState);
+ EXPECT_EQ(WakelockStateChanged::ACQUIRE, listener1->updates[0].mState);
// Check StateTracker was updated by querying for state.
HashableDimensionKey queryKey;
getPartialWakelockKey(1001 /* uid */, "tag1", &queryKey);
- EXPECT_EQ(WakelockStateChanged::RELEASE,
+ EXPECT_EQ(WakelockStateChanged::ACQUIRE,
getStateInt(mgr, android::util::WAKELOCK_STATE_CHANGED, queryKey));
// No state stored for this query key.
HashableDimensionKey queryKey2;
getPartialWakelockKey(1002 /* uid */, "tag1", &queryKey2);
- EXPECT_EQ(-1, getStateInt(mgr, android::util::WAKELOCK_STATE_CHANGED, queryKey2));
+ EXPECT_EQ(WakelockStateChanged::RELEASE,
+ getStateInt(mgr, android::util::WAKELOCK_STATE_CHANGED, queryKey2));
// Partial query fails.
HashableDimensionKey queryKey3;
getPartialWakelockKey(1001 /* uid */, &queryKey3);
- EXPECT_EQ(-1, getStateInt(mgr, android::util::WAKELOCK_STATE_CHANGED, queryKey3));
+ EXPECT_EQ(WakelockStateChanged::RELEASE,
+ getStateInt(mgr, android::util::WAKELOCK_STATE_CHANGED, queryKey3));
}
/**
diff --git a/cmds/statsd/tests/statsd_test_util.cpp b/cmds/statsd/tests/statsd_test_util.cpp
index e0aecceac4e3..db09ee9311ba 100644
--- a/cmds/statsd/tests/statsd_test_util.cpp
+++ b/cmds/statsd/tests/statsd_test_util.cpp
@@ -580,9 +580,15 @@ std::unique_ptr<LogEvent> CreateUidProcessStateChangedEvent(
}
sp<StatsLogProcessor> CreateStatsLogProcessor(const int64_t timeBaseNs, const int64_t currentTimeNs,
- const StatsdConfig& config, const ConfigKey& key) {
+ const StatsdConfig& config, const ConfigKey& key,
+ const sp<IPullAtomCallback>& puller,
+ const int32_t atomTag) {
sp<UidMap> uidMap = new UidMap();
sp<StatsPullerManager> pullerManager = new StatsPullerManager();
+ if (puller != nullptr) {
+ pullerManager->RegisterPullAtomCallback(/*uid=*/0, atomTag, NS_PER_SEC, NS_PER_SEC * 10, {},
+ puller);
+ }
sp<AlarmMonitor> anomalyAlarmMonitor =
new AlarmMonitor(1, [](const sp<IStatsCompanionService>&, int64_t){},
[](const sp<IStatsCompanionService>&){});
@@ -942,6 +948,34 @@ void backfillStartEndTimestamp(ConfigMetricsReportList *config_report_list) {
}
}
+binder::Status FakeSubsystemSleepCallback::onPullAtom(
+ int atomTag, const sp<IPullAtomResultReceiver>& resultReceiver) {
+ // Convert stats_events into StatsEventParcels.
+ std::vector<android::util::StatsEventParcel> parcels;
+ for (int i = 1; i < 3; i++) {
+ AStatsEvent* event = AStatsEvent_obtain();
+ AStatsEvent_setAtomId(event, atomTag);
+ std::string subsystemName = "subsystem_name_";
+ subsystemName = subsystemName + std::to_string(i);
+ AStatsEvent_writeString(event, subsystemName.c_str());
+ AStatsEvent_writeString(event, "subsystem_subname foo");
+ AStatsEvent_writeInt64(event, /*count= */ i);
+ AStatsEvent_writeInt64(event, /*time_millis= */ i * 100);
+ AStatsEvent_build(event);
+ size_t size;
+ uint8_t* buffer = AStatsEvent_getBuffer(event, &size);
+
+ android::util::StatsEventParcel p;
+ // vector.assign() creates a copy, but this is inevitable unless
+ // stats_event.h/c uses a vector as opposed to a buffer.
+ p.buffer.assign(buffer, buffer + size);
+ parcels.push_back(std::move(p));
+ AStatsEvent_write(event);
+ }
+ resultReceiver->pullFinished(atomTag, /*success=*/true, parcels);
+ return binder::Status::ok();
+}
+
} // namespace statsd
} // namespace os
} // namespace android
diff --git a/cmds/statsd/tests/statsd_test_util.h b/cmds/statsd/tests/statsd_test_util.h
index 9bdfeebe561f..576a4916d60b 100644
--- a/cmds/statsd/tests/statsd_test_util.h
+++ b/cmds/statsd/tests/statsd_test_util.h
@@ -14,12 +14,16 @@
#pragma once
+#include <android/os/BnPullAtomCallback.h>
+#include <android/os/IPullAtomCallback.h>
+#include <android/os/IPullAtomResultReceiver.h>
#include <gtest/gtest.h>
+
#include "frameworks/base/cmds/statsd/src/stats_log.pb.h"
#include "frameworks/base/cmds/statsd/src/statsd_config.pb.h"
#include "src/StatsLogProcessor.h"
-#include "src/logd/LogEvent.h"
#include "src/hash.h"
+#include "src/logd/LogEvent.h"
#include "src/stats_log_util.h"
#include "statslog.h"
@@ -224,9 +228,10 @@ std::unique_ptr<LogEvent> CreateUidProcessStateChangedEvent(
AttributionNodeInternal CreateAttribution(const int& uid, const string& tag);
// Create a statsd log event processor upon the start time in seconds, config and key.
-sp<StatsLogProcessor> CreateStatsLogProcessor(const int64_t timeBaseNs,
- const int64_t currentTimeNs,
- const StatsdConfig& config, const ConfigKey& key);
+sp<StatsLogProcessor> CreateStatsLogProcessor(const int64_t timeBaseNs, const int64_t currentTimeNs,
+ const StatsdConfig& config, const ConfigKey& key,
+ const sp<IPullAtomCallback>& puller = nullptr,
+ const int32_t atomTag = 0 /*for puller only*/);
// Util function to sort the log events by timestamp.
void sortLogEventsByTimestamp(std::vector<std::unique_ptr<LogEvent>> *events);
@@ -278,6 +283,12 @@ bool backfillDimensionPath(const DimensionsValue& path,
const google::protobuf::RepeatedPtrField<DimensionsValue>& leafValues,
DimensionsValue* dimension);
+class FakeSubsystemSleepCallback : public BnPullAtomCallback {
+public:
+ binder::Status onPullAtom(int atomTag,
+ const sp<IPullAtomResultReceiver>& resultReceiver) override;
+};
+
template <typename T>
void backfillDimensionPath(const DimensionsValue& whatPath,
const DimensionsValue& conditionPath,
diff --git a/config/boot-image-profile.txt b/config/boot-image-profile.txt
index 6c5d120644eb..89821215e9f0 100644
--- a/config/boot-image-profile.txt
+++ b/config/boot-image-profile.txt
@@ -13,6 +13,25 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+HSPLandroid/accessibilityservice/AccessibilityServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/accessibilityservice/AccessibilityServiceInfo;
+HSPLandroid/accessibilityservice/AccessibilityServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/accessibilityservice/AccessibilityServiceInfo;-><init>(Landroid/content/pm/ResolveInfo;Landroid/content/Context;)V
+PLandroid/accessibilityservice/AccessibilityServiceInfo;->equals(Ljava/lang/Object;)Z
+PLandroid/accessibilityservice/AccessibilityServiceInfo;->getCapabilities()I
+PLandroid/accessibilityservice/AccessibilityServiceInfo;->getComponentName()Landroid/content/ComponentName;
+HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->getId()Ljava/lang/String;
+PLandroid/accessibilityservice/AccessibilityServiceInfo;->getResolveInfo()Landroid/content/pm/ResolveInfo;
+HSPLandroid/accessibilityservice/AccessibilityServiceInfo;->initFromParcel(Landroid/os/Parcel;)V
+PLandroid/accessibilityservice/AccessibilityServiceInfo;->isDirectBootAware()Z
+PLandroid/accessibilityservice/AccessibilityServiceInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/accounts/AbstractAccountAuthenticator$Transport;-><init>(Landroid/accounts/AbstractAccountAuthenticator;)V
+HSPLandroid/accounts/AbstractAccountAuthenticator$Transport;-><init>(Landroid/accounts/AbstractAccountAuthenticator;Landroid/accounts/AbstractAccountAuthenticator$1;)V
+HSPLandroid/accounts/AbstractAccountAuthenticator$Transport;->getAuthToken(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+HPLandroid/accounts/AbstractAccountAuthenticator$Transport;->hasFeatures(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;[Ljava/lang/String;)V
+HSPLandroid/accounts/AbstractAccountAuthenticator;-><init>(Landroid/content/Context;)V
+HSPLandroid/accounts/AbstractAccountAuthenticator;->access$000(Landroid/accounts/AbstractAccountAuthenticator;)V
+HSPLandroid/accounts/AbstractAccountAuthenticator;->checkBinderPermission()V
+HSPLandroid/accounts/AbstractAccountAuthenticator;->getIBinder()Landroid/os/IBinder;
HSPLandroid/accounts/Account$1;->createFromParcel(Landroid/os/Parcel;)Landroid/accounts/Account;
HSPLandroid/accounts/Account$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/accounts/Account$1;->newArray(I)[Landroid/accounts/Account;
@@ -21,124 +40,267 @@ HSPLandroid/accounts/Account;-><init>(Landroid/os/Parcel;)V
HSPLandroid/accounts/Account;-><init>(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/accounts/Account;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/accounts/Account;->equals(Ljava/lang/Object;)Z
+HPLandroid/accounts/Account;->getAccessId()Ljava/lang/String;
HSPLandroid/accounts/Account;->hashCode()I
HSPLandroid/accounts/Account;->toString()Ljava/lang/String;
HSPLandroid/accounts/Account;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/accounts/AccountAndUser;-><init>(Landroid/accounts/Account;I)V
+HSPLandroid/accounts/AccountAndUser;->equals(Ljava/lang/Object;)Z
+HSPLandroid/accounts/AccountAndUser;->hashCode()I
+PLandroid/accounts/AccountAndUser;->toString()Ljava/lang/String;
+HSPLandroid/accounts/AccountAuthenticatorResponse$1;-><init>()V
+HSPLandroid/accounts/AccountAuthenticatorResponse;-><clinit>()V
+HSPLandroid/accounts/AccountAuthenticatorResponse;-><init>(Landroid/accounts/IAccountAuthenticatorResponse;)V
HSPLandroid/accounts/AccountManager$10;->doWork()V
+HPLandroid/accounts/AccountManager$17;->run()V
+HPLandroid/accounts/AccountManager$18;-><init>(Landroid/accounts/AccountManager;Landroid/accounts/OnAccountsUpdateListener;[Landroid/accounts/Account;)V
HSPLandroid/accounts/AccountManager$18;->run()V
-PLandroid/accounts/AccountManager$20;-><init>(Landroid/accounts/AccountManager;)V
+HSPLandroid/accounts/AccountManager$20;-><init>(Landroid/accounts/AccountManager;)V
+HSPLandroid/accounts/AccountManager$2;->bundleToResult(Landroid/os/Bundle;)Ljava/lang/Boolean;
+HSPLandroid/accounts/AccountManager$2;->bundleToResult(Landroid/os/Bundle;)Ljava/lang/Object;
+HSPLandroid/accounts/AccountManager$2;->doWork()V
HSPLandroid/accounts/AccountManager$3;->bundleToResult(Landroid/os/Bundle;)Ljava/lang/Object;
HSPLandroid/accounts/AccountManager$3;->bundleToResult(Landroid/os/Bundle;)[Landroid/accounts/Account;
HSPLandroid/accounts/AccountManager$3;->doWork()V
HSPLandroid/accounts/AccountManager$AmsTask$1;-><init>(Landroid/accounts/AccountManager;)V
HSPLandroid/accounts/AccountManager$AmsTask$Response;-><init>(Landroid/accounts/AccountManager$AmsTask;Landroid/accounts/AccountManager$1;)V
+HPLandroid/accounts/AccountManager$AmsTask$Response;->onError(ILjava/lang/String;)V
HSPLandroid/accounts/AccountManager$AmsTask$Response;->onResult(Landroid/os/Bundle;)V
+HPLandroid/accounts/AccountManager$AmsTask;->access$800(Landroid/accounts/AccountManager$AmsTask;Ljava/lang/Throwable;)V
HSPLandroid/accounts/AccountManager$AmsTask;->done()V
HSPLandroid/accounts/AccountManager$AmsTask;->getResult()Landroid/os/Bundle;
HSPLandroid/accounts/AccountManager$AmsTask;->getResult()Ljava/lang/Object;
+HSPLandroid/accounts/AccountManager$AmsTask;->getResult(JLjava/util/concurrent/TimeUnit;)Landroid/os/Bundle;
+HSPLandroid/accounts/AccountManager$AmsTask;->getResult(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
HSPLandroid/accounts/AccountManager$AmsTask;->internalGetResult(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Landroid/os/Bundle;
HSPLandroid/accounts/AccountManager$AmsTask;->set(Landroid/os/Bundle;)V
HSPLandroid/accounts/AccountManager$AmsTask;->start()Landroid/accounts/AccountManagerFuture;
HSPLandroid/accounts/AccountManager$BaseFutureTask$Response;->onResult(Landroid/os/Bundle;)V
+HSPLandroid/accounts/AccountManager$BaseFutureTask;->postRunnableToHandler(Ljava/lang/Runnable;)V
HSPLandroid/accounts/AccountManager$BaseFutureTask;->startTask()V
+HSPLandroid/accounts/AccountManager$Future2Task$1;->run()V
HSPLandroid/accounts/AccountManager$Future2Task;->done()V
HSPLandroid/accounts/AccountManager$Future2Task;->getResult()Ljava/lang/Object;
+PLandroid/accounts/AccountManager$Future2Task;->getResult(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
HSPLandroid/accounts/AccountManager$Future2Task;->internalGetResult(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Ljava/lang/Object;
HSPLandroid/accounts/AccountManager;-><init>(Landroid/content/Context;Landroid/accounts/IAccountManager;)V
HSPLandroid/accounts/AccountManager;->access$000(Landroid/accounts/AccountManager;)Landroid/accounts/IAccountManager;
HSPLandroid/accounts/AccountManager;->access$100(Landroid/accounts/AccountManager;)Landroid/content/Context;
+HPLandroid/accounts/AccountManager;->access$200(Landroid/accounts/AccountManager;)Ljava/util/HashMap;
+HPLandroid/accounts/AccountManager;->access$300(Landroid/accounts/AccountManager;)Ljava/util/HashMap;
+HPLandroid/accounts/AccountManager;->access$700(Landroid/accounts/AccountManager;ILjava/lang/String;)Ljava/lang/Exception;
HSPLandroid/accounts/AccountManager;->addOnAccountsUpdatedListener(Landroid/accounts/OnAccountsUpdateListener;Landroid/os/Handler;Z)V
HSPLandroid/accounts/AccountManager;->addOnAccountsUpdatedListener(Landroid/accounts/OnAccountsUpdateListener;Landroid/os/Handler;Z[Ljava/lang/String;)V
HSPLandroid/accounts/AccountManager;->blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;
+HPLandroid/accounts/AccountManager;->convertErrorToException(ILjava/lang/String;)Ljava/lang/Exception;
HSPLandroid/accounts/AccountManager;->ensureNotOnMainThread()V
HSPLandroid/accounts/AccountManager;->get(Landroid/content/Context;)Landroid/accounts/AccountManager;
HSPLandroid/accounts/AccountManager;->getAccounts()[Landroid/accounts/Account;
+HSPLandroid/accounts/AccountManager;->getAccountsAsUser(I)[Landroid/accounts/Account;
HSPLandroid/accounts/AccountManager;->getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;
HSPLandroid/accounts/AccountManager;->getAccountsByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
HSPLandroid/accounts/AccountManager;->getAccountsByTypeAsUser(Ljava/lang/String;Landroid/os/UserHandle;)[Landroid/accounts/Account;
+HSPLandroid/accounts/AccountManager;->getAccountsByTypeForPackage(Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
HSPLandroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
HSPLandroid/accounts/AccountManager;->getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
+HSPLandroid/accounts/AccountManager;->getAuthenticatorTypes()[Landroid/accounts/AuthenticatorDescription;
+PLandroid/accounts/AccountManager;->getPassword(Landroid/accounts/Account;)Ljava/lang/String;
+HSPLandroid/accounts/AccountManager;->getPreviousName(Landroid/accounts/Account;)Ljava/lang/String;
+HPLandroid/accounts/AccountManager;->getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/accounts/AccountManager;->hasAccountAccess(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/UserHandle;)Z
+HSPLandroid/accounts/AccountManager;->hasFeatures(Landroid/accounts/Account;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;
+HSPLandroid/accounts/AccountManager;->invalidateAuthToken(Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/accounts/AccountManager;->peekAuthToken(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/accounts/AccountManager;->postToHandler(Landroid/os/Handler;Landroid/accounts/OnAccountsUpdateListener;[Landroid/accounts/Account;)V
+PLandroid/accounts/AccountManager;->setAuthToken(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/accounts/AccountManager;->setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/accounts/AccountManagerInternal;-><init>()V
+HSPLandroid/accounts/AuthenticatorDescription$1;->createFromParcel(Landroid/os/Parcel;)Landroid/accounts/AuthenticatorDescription;
+HSPLandroid/accounts/AuthenticatorDescription$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/accounts/AuthenticatorDescription$1;->newArray(I)[Landroid/accounts/AuthenticatorDescription;
+HSPLandroid/accounts/AuthenticatorDescription$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/accounts/AuthenticatorDescription;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/accounts/AuthenticatorDescription;-><init>(Ljava/lang/String;)V
+HSPLandroid/accounts/AuthenticatorDescription;-><init>(Ljava/lang/String;Ljava/lang/String;IIIIZ)V
+HSPLandroid/accounts/AuthenticatorDescription;->equals(Ljava/lang/Object;)Z
+HSPLandroid/accounts/AuthenticatorDescription;->hashCode()I
+HSPLandroid/accounts/AuthenticatorDescription;->newKey(Ljava/lang/String;)Landroid/accounts/AuthenticatorDescription;
+PLandroid/accounts/AuthenticatorDescription;->toString()Ljava/lang/String;
+HPLandroid/accounts/AuthenticatorDescription;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/accounts/IAccountAuthenticator$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/accounts/IAccountAuthenticator$Stub$Proxy;->getAuthToken(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+HPLandroid/accounts/IAccountAuthenticator$Stub$Proxy;->hasFeatures(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;[Ljava/lang/String;)V
+HSPLandroid/accounts/IAccountAuthenticator$Stub;-><init>()V
+HSPLandroid/accounts/IAccountAuthenticator$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/accounts/IAccountAuthenticator$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountAuthenticator;
+HSPLandroid/accounts/IAccountAuthenticator$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/accounts/IAccountAuthenticatorResponse$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/accounts/IAccountAuthenticatorResponse$Stub$Proxy;->onResult(Landroid/os/Bundle;)V
+HPLandroid/accounts/IAccountAuthenticatorResponse$Stub;-><init>()V
+HPLandroid/accounts/IAccountAuthenticatorResponse$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/accounts/IAccountAuthenticatorResponse$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountAuthenticatorResponse;
+PLandroid/accounts/IAccountAuthenticatorResponse$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/accounts/IAccountAuthenticatorResponse$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAccounts(Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAccountsAsUser(Ljava/lang/String;ILjava/lang/String;)[Landroid/accounts/Account;
HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAccountsByFeatures(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAccountsByTypeForPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAuthToken(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;ZZLandroid/os/Bundle;)V
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getAuthenticatorTypes(I)[Landroid/accounts/AuthenticatorDescription;
+PLandroid/accounts/IAccountManager$Stub$Proxy;->getPassword(Landroid/accounts/Account;)Ljava/lang/String;
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->getPreviousName(Landroid/accounts/Account;)Ljava/lang/String;
+HPLandroid/accounts/IAccountManager$Stub$Proxy;->getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->hasFeatures(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;[Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/accounts/IAccountManager$Stub$Proxy;->invalidateAuthToken(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/accounts/IAccountManager$Stub$Proxy;->onAccountAccessed(Ljava/lang/String;)V
+PLandroid/accounts/IAccountManager$Stub$Proxy;->peekAuthToken(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/accounts/IAccountManager$Stub$Proxy;->registerAccountListener([Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/accounts/IAccountManager$Stub$Proxy;->setAuthToken(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/accounts/IAccountManager$Stub$Proxy;->setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/accounts/IAccountManager$Stub;-><init>()V
+HSPLandroid/accounts/IAccountManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountManager;
+PLandroid/accounts/IAccountManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/accounts/IAccountManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/accounts/IAccountManagerResponse$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/accounts/IAccountManagerResponse$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/accounts/IAccountManagerResponse$Stub$Proxy;->onError(ILjava/lang/String;)V
+HPLandroid/accounts/IAccountManagerResponse$Stub$Proxy;->onResult(Landroid/os/Bundle;)V
HSPLandroid/accounts/IAccountManagerResponse$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/accounts/IAccountManagerResponse$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountManagerResponse;
HSPLandroid/accounts/IAccountManagerResponse$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/animation/AnimationHandler$1;-><init>(Landroid/animation/AnimationHandler;)V
HSPLandroid/animation/AnimationHandler$1;->doFrame(J)V
+PLandroid/animation/AnimationHandler$MyFrameCallbackProvider;-><init>(Landroid/animation/AnimationHandler;)V
+PLandroid/animation/AnimationHandler$MyFrameCallbackProvider;-><init>(Landroid/animation/AnimationHandler;Landroid/animation/AnimationHandler$1;)V
HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->getFrameTime()J
HSPLandroid/animation/AnimationHandler$MyFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V
HSPLandroid/animation/AnimationHandler;-><init>()V
+PLandroid/animation/AnimationHandler;->access$000(Landroid/animation/AnimationHandler;)Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;
+PLandroid/animation/AnimationHandler;->access$100(Landroid/animation/AnimationHandler;J)V
+PLandroid/animation/AnimationHandler;->access$200(Landroid/animation/AnimationHandler;)Ljava/util/ArrayList;
HSPLandroid/animation/AnimationHandler;->addAnimationFrameCallback(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)V
HSPLandroid/animation/AnimationHandler;->autoCancelBasedOn(Landroid/animation/ObjectAnimator;)V
HSPLandroid/animation/AnimationHandler;->cleanUpList()V
HSPLandroid/animation/AnimationHandler;->doAnimationFrame(J)V
HSPLandroid/animation/AnimationHandler;->getAnimationCount()I
+PLandroid/animation/AnimationHandler;->getCallbackSize()I
+HPLandroid/animation/AnimationHandler;->getInstance()Landroid/animation/AnimationHandler;
+PLandroid/animation/AnimationHandler;->getProvider()Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;
+PLandroid/animation/AnimationHandler;->isCallbackDue(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)Z
HSPLandroid/animation/AnimationHandler;->removeCallback(Landroid/animation/AnimationHandler$AnimationFrameCallback;)V
+HSPLandroid/animation/AnimationHandler;->setProvider(Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;)V
+HPLandroid/animation/Animator$AnimatorConstantState;->getChangingConfigurations()I
HSPLandroid/animation/Animator$AnimatorConstantState;->newInstance()Landroid/animation/Animator;
HSPLandroid/animation/Animator$AnimatorConstantState;->newInstance()Ljava/lang/Object;
HSPLandroid/animation/Animator$AnimatorListener;->onAnimationEnd(Landroid/animation/Animator;Z)V
HSPLandroid/animation/Animator$AnimatorListener;->onAnimationStart(Landroid/animation/Animator;Z)V
HSPLandroid/animation/Animator;-><init>()V
HSPLandroid/animation/Animator;->addListener(Landroid/animation/Animator$AnimatorListener;)V
+HPLandroid/animation/Animator;->addPauseListener(Landroid/animation/Animator$AnimatorPauseListener;)V
HSPLandroid/animation/Animator;->appendChangingConfigurations(I)V
HSPLandroid/animation/Animator;->clone()Landroid/animation/Animator;
HSPLandroid/animation/Animator;->createConstantState()Landroid/content/res/ConstantState;
HSPLandroid/animation/Animator;->getChangingConfigurations()I
+HSPLandroid/animation/Animator;->getListeners()Ljava/util/ArrayList;
+PLandroid/animation/Animator;->pause()V
+HPLandroid/animation/Animator;->removeAllListeners()V
HSPLandroid/animation/Animator;->removeListener(Landroid/animation/Animator$AnimatorListener;)V
+PLandroid/animation/Animator;->resume()V
+HPLandroid/animation/Animator;->setAllowRunningAsynchronously(Z)V
+HPLandroid/animation/AnimatorInflater$PathDataEvaluator;->evaluate(FLandroid/util/PathParser$PathData;Landroid/util/PathParser$PathData;)Landroid/util/PathParser$PathData;
+HPLandroid/animation/AnimatorInflater$PathDataEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroid/animation/AnimatorInflater;->createAnimatorFromXml(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/animation/AnimatorSet;IF)Landroid/animation/Animator;
HSPLandroid/animation/AnimatorInflater;->createStateListAnimatorFromXml(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/animation/StateListAnimator;
HSPLandroid/animation/AnimatorInflater;->getChangingConfigs(Landroid/content/res/Resources;I)I
HSPLandroid/animation/AnimatorInflater;->getPVH(Landroid/content/res/TypedArray;IIILjava/lang/String;)Landroid/animation/PropertyValuesHolder;
+HSPLandroid/animation/AnimatorInflater;->inferValueTypeFromValues(Landroid/content/res/TypedArray;II)I
+HSPLandroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/Context;I)Landroid/animation/Animator;
HSPLandroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;IF)Landroid/animation/Animator;
HSPLandroid/animation/AnimatorInflater;->loadAnimator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;Landroid/animation/ValueAnimator;F)Landroid/animation/ValueAnimator;
HSPLandroid/animation/AnimatorInflater;->loadStateListAnimator(Landroid/content/Context;I)Landroid/animation/StateListAnimator;
HSPLandroid/animation/AnimatorInflater;->parseAnimatorFromTypeArray(Landroid/animation/ValueAnimator;Landroid/content/res/TypedArray;Landroid/content/res/TypedArray;F)V
HSPLandroid/animation/AnimatorInflater;->setupObjectAnimator(Landroid/animation/ValueAnimator;Landroid/content/res/TypedArray;IF)V
HSPLandroid/animation/AnimatorListenerAdapter;-><init>()V
+HSPLandroid/animation/AnimatorListenerAdapter;->onAnimationCancel(Landroid/animation/Animator;)V
+HSPLandroid/animation/AnimatorListenerAdapter;->onAnimationEnd(Landroid/animation/Animator;)V
HSPLandroid/animation/AnimatorListenerAdapter;->onAnimationStart(Landroid/animation/Animator;)V
+HSPLandroid/animation/AnimatorSet$1;->onAnimationEnd(Landroid/animation/Animator;)V
HSPLandroid/animation/AnimatorSet$2;->onAnimationEnd(Landroid/animation/Animator;)V
HSPLandroid/animation/AnimatorSet$3;->compare(Landroid/animation/AnimatorSet$AnimationEvent;Landroid/animation/AnimatorSet$AnimationEvent;)I
HSPLandroid/animation/AnimatorSet$3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HPLandroid/animation/AnimatorSet$AnimationEvent;-><init>(Landroid/animation/AnimatorSet$Node;I)V
HSPLandroid/animation/AnimatorSet$AnimationEvent;->getTime()J
+HPLandroid/animation/AnimatorSet$Builder;->after(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;
+HSPLandroid/animation/AnimatorSet$Builder;->before(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;
HSPLandroid/animation/AnimatorSet$Builder;->with(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;
HSPLandroid/animation/AnimatorSet$Node;->addChild(Landroid/animation/AnimatorSet$Node;)V
HSPLandroid/animation/AnimatorSet$Node;->addParent(Landroid/animation/AnimatorSet$Node;)V
HSPLandroid/animation/AnimatorSet$Node;->addParents(Ljava/util/ArrayList;)V
HSPLandroid/animation/AnimatorSet$Node;->addSibling(Landroid/animation/AnimatorSet$Node;)V
HSPLandroid/animation/AnimatorSet$Node;->clone()Landroid/animation/AnimatorSet$Node;
+HPLandroid/animation/AnimatorSet$SeekState;->getPlayTime()J
HSPLandroid/animation/AnimatorSet$SeekState;->getPlayTimeNormalized()J
HSPLandroid/animation/AnimatorSet$SeekState;->isActive()Z
HSPLandroid/animation/AnimatorSet$SeekState;->reset()V
+HPLandroid/animation/AnimatorSet$SeekState;->setPlayTime(JZ)V
+HPLandroid/animation/AnimatorSet$SeekState;->updateSeekDirection(Z)V
HSPLandroid/animation/AnimatorSet;-><init>()V
+HPLandroid/animation/AnimatorSet;->cancel()V
HSPLandroid/animation/AnimatorSet;->clone()Landroid/animation/Animator;
HSPLandroid/animation/AnimatorSet;->clone()Landroid/animation/AnimatorSet;
HSPLandroid/animation/AnimatorSet;->createDependencyGraph()V
HSPLandroid/animation/AnimatorSet;->doAnimationFrame(J)Z
+HSPLandroid/animation/AnimatorSet;->end()V
HSPLandroid/animation/AnimatorSet;->endAnimation()V
HSPLandroid/animation/AnimatorSet;->findLatestEventIdForTime(J)I
HSPLandroid/animation/AnimatorSet;->findSiblings(Landroid/animation/AnimatorSet$Node;Ljava/util/ArrayList;)V
HSPLandroid/animation/AnimatorSet;->getChangingConfigurations()I
HSPLandroid/animation/AnimatorSet;->getChildAnimations()Ljava/util/ArrayList;
+HPLandroid/animation/AnimatorSet;->getDuration()J
+HPLandroid/animation/AnimatorSet;->getInterpolator()Landroid/animation/TimeInterpolator;
+HPLandroid/animation/AnimatorSet;->getNodeForAnimation(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Node;
+HPLandroid/animation/AnimatorSet;->getStartDelay()J
+HPLandroid/animation/AnimatorSet;->getTotalDuration()J
HSPLandroid/animation/AnimatorSet;->handleAnimationEvents(IIJ)V
HSPLandroid/animation/AnimatorSet;->initAnimation()V
HSPLandroid/animation/AnimatorSet;->isEmptySet(Landroid/animation/AnimatorSet;)Z
HSPLandroid/animation/AnimatorSet;->isInitialized()Z
+HSPLandroid/animation/AnimatorSet;->isRunning()Z
+HSPLandroid/animation/AnimatorSet;->isStarted()Z
HSPLandroid/animation/AnimatorSet;->play(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;
+HPLandroid/animation/AnimatorSet;->playSequentially(Ljava/util/List;)V
+HSPLandroid/animation/AnimatorSet;->playSequentially([Landroid/animation/Animator;)V
+HPLandroid/animation/AnimatorSet;->playTogether(Ljava/util/Collection;)V
+HSPLandroid/animation/AnimatorSet;->playTogether([Landroid/animation/Animator;)V
+HPLandroid/animation/AnimatorSet;->pulseAnimationFrame(J)Z
+HPLandroid/animation/AnimatorSet;->setCurrentPlayTime(J)V
+HPLandroid/animation/AnimatorSet;->setDuration(J)Landroid/animation/Animator;
+HSPLandroid/animation/AnimatorSet;->setDuration(J)Landroid/animation/AnimatorSet;
+HSPLandroid/animation/AnimatorSet;->setInterpolator(Landroid/animation/TimeInterpolator;)V
+HPLandroid/animation/AnimatorSet;->setStartDelay(J)V
HSPLandroid/animation/AnimatorSet;->setTarget(Ljava/lang/Object;)V
+HSPLandroid/animation/AnimatorSet;->shouldPlayTogether()Z
+HPLandroid/animation/AnimatorSet;->skipToEndValue(Z)V
HSPLandroid/animation/AnimatorSet;->sortAnimationEvents()V
HSPLandroid/animation/AnimatorSet;->start()V
HSPLandroid/animation/AnimatorSet;->start(ZZ)V
HSPLandroid/animation/AnimatorSet;->startAnimation()V
+HPLandroid/animation/AnimatorSet;->startWithoutPulsing(Z)V
HSPLandroid/animation/AnimatorSet;->updateAnimatorsDuration()V
HSPLandroid/animation/AnimatorSet;->updatePlayTime(Landroid/animation/AnimatorSet$Node;Ljava/util/ArrayList;)V
+HPLandroid/animation/ArgbEvaluator;-><init>()V
+HPLandroid/animation/ArgbEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/animation/ArgbEvaluator;->getInstance()Landroid/animation/ArgbEvaluator;
+HPLandroid/animation/FloatEvaluator;-><init>()V
HSPLandroid/animation/FloatKeyframeSet;-><init>([Landroid/animation/Keyframe$FloatKeyframe;)V
HSPLandroid/animation/FloatKeyframeSet;->clone()Landroid/animation/FloatKeyframeSet;
HSPLandroid/animation/FloatKeyframeSet;->clone()Landroid/animation/Keyframes;
HSPLandroid/animation/FloatKeyframeSet;->getFloatValue(F)F
+HSPLandroid/animation/FloatKeyframeSet;->getValue(F)Ljava/lang/Object;
HSPLandroid/animation/IntKeyframeSet;->clone()Landroid/animation/IntKeyframeSet;
HSPLandroid/animation/IntKeyframeSet;->clone()Landroid/animation/Keyframes;
+HSPLandroid/animation/IntKeyframeSet;->getIntValue(F)I
HSPLandroid/animation/Keyframe$FloatKeyframe;-><init>(FF)V
HSPLandroid/animation/Keyframe$FloatKeyframe;->clone()Landroid/animation/Keyframe$FloatKeyframe;
HSPLandroid/animation/Keyframe$FloatKeyframe;->clone()Landroid/animation/Keyframe;
@@ -146,67 +308,168 @@ HSPLandroid/animation/Keyframe$FloatKeyframe;->getFloatValue()F
HSPLandroid/animation/Keyframe$FloatKeyframe;->setValue(Ljava/lang/Object;)V
HSPLandroid/animation/Keyframe$IntKeyframe;->clone()Landroid/animation/Keyframe$IntKeyframe;
HSPLandroid/animation/Keyframe$IntKeyframe;->clone()Landroid/animation/Keyframe;
+HSPLandroid/animation/Keyframe$IntKeyframe;->getIntValue()I
+HSPLandroid/animation/Keyframe$IntKeyframe;->getValue()Ljava/lang/Object;
+HSPLandroid/animation/Keyframe$IntKeyframe;->setValue(Ljava/lang/Object;)V
+PLandroid/animation/Keyframe$ObjectKeyframe;-><init>(FLjava/lang/Object;)V
+HSPLandroid/animation/Keyframe$ObjectKeyframe;->clone()Landroid/animation/Keyframe$ObjectKeyframe;
+HSPLandroid/animation/Keyframe$ObjectKeyframe;->clone()Landroid/animation/Keyframe;
+HPLandroid/animation/Keyframe$ObjectKeyframe;->getValue()Ljava/lang/Object;
+HPLandroid/animation/Keyframe$ObjectKeyframe;->setValue(Ljava/lang/Object;)V
HSPLandroid/animation/Keyframe;-><init>()V
HSPLandroid/animation/Keyframe;->getFraction()F
HSPLandroid/animation/Keyframe;->getInterpolator()Landroid/animation/TimeInterpolator;
HSPLandroid/animation/Keyframe;->hasValue()Z
HSPLandroid/animation/Keyframe;->ofFloat(FF)Landroid/animation/Keyframe;
+PLandroid/animation/Keyframe;->ofObject(FLjava/lang/Object;)Landroid/animation/Keyframe;
HSPLandroid/animation/Keyframe;->setValueWasSetOnStart(Z)V
HSPLandroid/animation/Keyframe;->valueWasSetOnStart()Z
HSPLandroid/animation/KeyframeSet;-><init>([Landroid/animation/Keyframe;)V
+HSPLandroid/animation/KeyframeSet;->clone()Landroid/animation/KeyframeSet;
+HSPLandroid/animation/KeyframeSet;->clone()Landroid/animation/Keyframes;
HSPLandroid/animation/KeyframeSet;->getKeyframes()Ljava/util/List;
+HPLandroid/animation/KeyframeSet;->getValue(F)Ljava/lang/Object;
HSPLandroid/animation/KeyframeSet;->ofFloat([F)Landroid/animation/KeyframeSet;
HSPLandroid/animation/KeyframeSet;->ofInt([I)Landroid/animation/KeyframeSet;
+HSPLandroid/animation/KeyframeSet;->ofObject([Ljava/lang/Object;)Landroid/animation/KeyframeSet;
+HPLandroid/animation/KeyframeSet;->ofPath(Landroid/graphics/Path;)Landroid/animation/PathKeyframes;
+HSPLandroid/animation/KeyframeSet;->setEvaluator(Landroid/animation/TypeEvaluator;)V
+HSPLandroid/animation/LayoutTransition$1;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/animation/LayoutTransition$2;->onLayoutChange(Landroid/view/View;IIIIIIII)V
+HPLandroid/animation/LayoutTransition$3;->onAnimationCancel(Landroid/animation/Animator;)V
+HSPLandroid/animation/LayoutTransition$3;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/animation/LayoutTransition$3;->onAnimationStart(Landroid/animation/Animator;)V
+HPLandroid/animation/LayoutTransition$4;->onAnimationEnd(Landroid/animation/Animator;)V
+HPLandroid/animation/LayoutTransition$5;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/animation/LayoutTransition$CleanupCallback;->cleanup()V
+HSPLandroid/animation/LayoutTransition$CleanupCallback;->onPreDraw()Z
HSPLandroid/animation/LayoutTransition;-><init>()V
+HPLandroid/animation/LayoutTransition;->access$1500(Landroid/animation/LayoutTransition;)Ljava/util/HashMap;
HSPLandroid/animation/LayoutTransition;->addChild(Landroid/view/ViewGroup;Landroid/view/View;)V
HSPLandroid/animation/LayoutTransition;->addChild(Landroid/view/ViewGroup;Landroid/view/View;Z)V
HSPLandroid/animation/LayoutTransition;->addTransitionListener(Landroid/animation/LayoutTransition$TransitionListener;)V
HSPLandroid/animation/LayoutTransition;->cancel()V
HSPLandroid/animation/LayoutTransition;->cancel(I)V
HSPLandroid/animation/LayoutTransition;->disableTransitionType(I)V
+HSPLandroid/animation/LayoutTransition;->enableTransitionType(I)V
+HPLandroid/animation/LayoutTransition;->hideChild(Landroid/view/ViewGroup;Landroid/view/View;I)V
+HSPLandroid/animation/LayoutTransition;->isChangingLayout()Z
+HSPLandroid/animation/LayoutTransition;->isRunning()Z
+HSPLandroid/animation/LayoutTransition;->layoutChange(Landroid/view/ViewGroup;)V
+HSPLandroid/animation/LayoutTransition;->removeChild(Landroid/view/ViewGroup;Landroid/view/View;)V
+HSPLandroid/animation/LayoutTransition;->removeChild(Landroid/view/ViewGroup;Landroid/view/View;Z)V
HSPLandroid/animation/LayoutTransition;->removeTransitionListener(Landroid/animation/LayoutTransition$TransitionListener;)V
+HPLandroid/animation/LayoutTransition;->runAppearingTransition(Landroid/view/ViewGroup;Landroid/view/View;)V
+HSPLandroid/animation/LayoutTransition;->runChangeTransition(Landroid/view/ViewGroup;Landroid/view/View;I)V
+HPLandroid/animation/LayoutTransition;->runDisappearingTransition(Landroid/view/ViewGroup;Landroid/view/View;)V
+HPLandroid/animation/LayoutTransition;->setAnimateParentHierarchy(Z)V
+HPLandroid/animation/LayoutTransition;->setAnimator(ILandroid/animation/Animator;)V
+HPLandroid/animation/LayoutTransition;->setDuration(J)V
+HSPLandroid/animation/LayoutTransition;->setInterpolator(ILandroid/animation/TimeInterpolator;)V
+HSPLandroid/animation/LayoutTransition;->setStartDelay(IJ)V
+HSPLandroid/animation/LayoutTransition;->setupChangeAnimation(Landroid/view/ViewGroup;ILandroid/animation/Animator;JLandroid/view/View;)V
+HSPLandroid/animation/LayoutTransition;->showChild(Landroid/view/ViewGroup;Landroid/view/View;I)V
+HSPLandroid/animation/LayoutTransition;->startChangingAnimations()V
HSPLandroid/animation/ObjectAnimator;-><init>()V
+HSPLandroid/animation/ObjectAnimator;-><init>(Ljava/lang/Object;Landroid/util/Property;)V
HSPLandroid/animation/ObjectAnimator;->animateValue(F)V
HSPLandroid/animation/ObjectAnimator;->clone()Landroid/animation/Animator;
+HSPLandroid/animation/ObjectAnimator;->getNameForTrace()Ljava/lang/String;
+HSPLandroid/animation/ObjectAnimator;->getPropertyName()Ljava/lang/String;
HSPLandroid/animation/ObjectAnimator;->getTarget()Ljava/lang/Object;
+HPLandroid/animation/ObjectAnimator;->hasSameTargetAndProperties(Landroid/animation/Animator;)Z
HSPLandroid/animation/ObjectAnimator;->initAnimation()V
HSPLandroid/animation/ObjectAnimator;->isInitialized()Z
HSPLandroid/animation/ObjectAnimator;->ofFloat(Ljava/lang/Object;Landroid/util/Property;[F)Landroid/animation/ObjectAnimator;
HSPLandroid/animation/ObjectAnimator;->ofFloat(Ljava/lang/Object;Ljava/lang/String;[F)Landroid/animation/ObjectAnimator;
-HSPLandroid/animation/ObjectAnimator;->ofInt(Ljava/lang/Object;Ljava/lang/String;[I)Landroid/animation/ObjectAnimator;
+HPLandroid/animation/ObjectAnimator;->ofInt(Ljava/lang/Object;Landroid/util/Property;[I)Landroid/animation/ObjectAnimator;
+HPLandroid/animation/ObjectAnimator;->ofInt(Ljava/lang/Object;Ljava/lang/String;[I)Landroid/animation/ObjectAnimator;
+HPLandroid/animation/ObjectAnimator;->ofObject(Ljava/lang/Object;Landroid/util/Property;Landroid/animation/TypeConverter;Landroid/graphics/Path;)Landroid/animation/ObjectAnimator;
+HPLandroid/animation/ObjectAnimator;->ofObject(Ljava/lang/Object;Landroid/util/Property;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ObjectAnimator;
+HSPLandroid/animation/ObjectAnimator;->ofPropertyValuesHolder(Ljava/lang/Object;[Landroid/animation/PropertyValuesHolder;)Landroid/animation/ObjectAnimator;
+HPLandroid/animation/ObjectAnimator;->setAutoCancel(Z)V
+HSPLandroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/Animator;
HSPLandroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/ObjectAnimator;
HSPLandroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/ValueAnimator;
HSPLandroid/animation/ObjectAnimator;->setFloatValues([F)V
-HSPLandroid/animation/ObjectAnimator;->setIntValues([I)V
+HPLandroid/animation/ObjectAnimator;->setIntValues([I)V
+HPLandroid/animation/ObjectAnimator;->setObjectValues([Ljava/lang/Object;)V
HSPLandroid/animation/ObjectAnimator;->setProperty(Landroid/util/Property;)V
HSPLandroid/animation/ObjectAnimator;->setTarget(Ljava/lang/Object;)V
+HSPLandroid/animation/ObjectAnimator;->setupEndValues()V
+HSPLandroid/animation/ObjectAnimator;->setupStartValues()V
+HPLandroid/animation/ObjectAnimator;->shouldAutoCancel(Landroid/animation/AnimationHandler$AnimationFrameCallback;)Z
HSPLandroid/animation/ObjectAnimator;->start()V
+HPLandroid/animation/PathKeyframes$1;->getFloatValue(F)F
+HPLandroid/animation/PathKeyframes$2;->getFloatValue(F)F
+HSPLandroid/animation/PathKeyframes$SimpleKeyframes;->clone()Landroid/animation/Keyframes;
+HPLandroid/animation/PathKeyframes$SimpleKeyframes;->getKeyframes()Ljava/util/ArrayList;
+HPLandroid/animation/PathKeyframes$SimpleKeyframes;->getKeyframes()Ljava/util/List;
+HPLandroid/animation/PathKeyframes;-><init>(Landroid/graphics/Path;)V
+HSPLandroid/animation/PathKeyframes;-><init>(Landroid/graphics/Path;F)V
+HPLandroid/animation/PathKeyframes;->access$000()Ljava/util/ArrayList;
+HPLandroid/animation/PathKeyframes;->getKeyframes()Ljava/util/ArrayList;
+HPLandroid/animation/PathKeyframes;->getKeyframes()Ljava/util/List;
+HPLandroid/animation/PathKeyframes;->getValue(F)Ljava/lang/Object;
+HPLandroid/animation/PathKeyframes;->interpolateInRange(FII)Landroid/graphics/PointF;
+HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;-><init>(Landroid/util/Property;[F)V
+PLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;-><init>(Ljava/lang/String;[F)V
HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->calculateValue(F)V
HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;
HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder;
+HPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object;
HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V
HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setFloatValues([F)V
+HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setProperty(Landroid/util/Property;)V
HSPLandroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V
+HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->calculateValue(F)V
HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;
HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder;
+HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object;
+HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V
+HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setIntValues([I)V
+HSPLandroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V
HSPLandroid/animation/PropertyValuesHolder$PropertyValues;-><init>()V
-HSPLandroid/animation/PropertyValuesHolder;-><init>(Ljava/lang/String;)V
+HSPLandroid/animation/PropertyValuesHolder;-><init>(Landroid/util/Property;)V
+HSPLandroid/animation/PropertyValuesHolder;-><init>(Landroid/util/Property;Landroid/animation/PropertyValuesHolder$1;)V
+PLandroid/animation/PropertyValuesHolder;-><init>(Ljava/lang/String;)V
HSPLandroid/animation/PropertyValuesHolder;-><init>(Ljava/lang/String;Landroid/animation/PropertyValuesHolder$1;)V
+HPLandroid/animation/PropertyValuesHolder;->calculateValue(F)V
HSPLandroid/animation/PropertyValuesHolder;->clone()Landroid/animation/PropertyValuesHolder;
HSPLandroid/animation/PropertyValuesHolder;->convertBack(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/animation/PropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object;
HSPLandroid/animation/PropertyValuesHolder;->getMethodName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/animation/PropertyValuesHolder;->getPropertyFunction(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
HSPLandroid/animation/PropertyValuesHolder;->getPropertyName()Ljava/lang/String;
+HSPLandroid/animation/PropertyValuesHolder;->getPropertyValues(Landroid/animation/PropertyValuesHolder$PropertyValues;)V
+HSPLandroid/animation/PropertyValuesHolder;->getValueType()Ljava/lang/Class;
HSPLandroid/animation/PropertyValuesHolder;->init()V
+HSPLandroid/animation/PropertyValuesHolder;->ofFloat(Landroid/util/Property;[F)Landroid/animation/PropertyValuesHolder;
+HSPLandroid/animation/PropertyValuesHolder;->ofFloat(Ljava/lang/String;[F)Landroid/animation/PropertyValuesHolder;
+HSPLandroid/animation/PropertyValuesHolder;->ofKeyframes(Ljava/lang/String;Landroid/animation/Keyframes;)Landroid/animation/PropertyValuesHolder;
+HPLandroid/animation/PropertyValuesHolder;->ofObject(Landroid/util/Property;Landroid/animation/TypeConverter;Landroid/graphics/Path;)Landroid/animation/PropertyValuesHolder;
+PLandroid/animation/PropertyValuesHolder;->ofObject(Ljava/lang/String;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/PropertyValuesHolder;
+HPLandroid/animation/PropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V
+HPLandroid/animation/PropertyValuesHolder;->setConverter(Landroid/animation/TypeConverter;)V
+PLandroid/animation/PropertyValuesHolder;->setEvaluator(Landroid/animation/TypeEvaluator;)V
HSPLandroid/animation/PropertyValuesHolder;->setFloatValues([F)V
+PLandroid/animation/PropertyValuesHolder;->setObjectValues([Ljava/lang/Object;)V
+HSPLandroid/animation/PropertyValuesHolder;->setProperty(Landroid/util/Property;)V
HSPLandroid/animation/PropertyValuesHolder;->setPropertyName(Ljava/lang/String;)V
+HSPLandroid/animation/PropertyValuesHolder;->setupEndValue(Ljava/lang/Object;)V
HSPLandroid/animation/PropertyValuesHolder;->setupSetterAndGetter(Ljava/lang/Object;)V
HSPLandroid/animation/PropertyValuesHolder;->setupSetterOrGetter(Ljava/lang/Class;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/reflect/Method;
+HSPLandroid/animation/PropertyValuesHolder;->setupStartValue(Ljava/lang/Object;)V
+HSPLandroid/animation/PropertyValuesHolder;->setupValue(Ljava/lang/Object;Landroid/animation/Keyframe;)V
+HSPLandroid/animation/RectEvaluator;-><init>(Landroid/graphics/Rect;)V
HSPLandroid/animation/StateListAnimator$1;->onAnimationEnd(Landroid/animation/Animator;)V
+HPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->getChangingConfigurations()I
HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->newInstance()Landroid/animation/StateListAnimator;
HSPLandroid/animation/StateListAnimator$StateListAnimatorConstantState;->newInstance()Ljava/lang/Object;
+HSPLandroid/animation/StateListAnimator;-><init>()V
HSPLandroid/animation/StateListAnimator;->addState([ILandroid/animation/Animator;)V
HSPLandroid/animation/StateListAnimator;->appendChangingConfigurations(I)V
+HSPLandroid/animation/StateListAnimator;->clearTarget()V
HSPLandroid/animation/StateListAnimator;->clone()Landroid/animation/StateListAnimator;
HSPLandroid/animation/StateListAnimator;->createConstantState()Landroid/content/res/ConstantState;
HSPLandroid/animation/StateListAnimator;->getChangingConfigurations()I
@@ -215,132 +478,529 @@ HSPLandroid/animation/StateListAnimator;->jumpToCurrentState()V
HSPLandroid/animation/StateListAnimator;->setChangingConfigurations(I)V
HSPLandroid/animation/StateListAnimator;->setState([I)V
HSPLandroid/animation/StateListAnimator;->setTarget(Landroid/view/View;)V
+HSPLandroid/animation/TimeAnimator;-><init>()V
+HPLandroid/animation/TimeAnimator;->animateBasedOnTime(J)Z
+HPLandroid/animation/TimeAnimator;->initAnimation()V
+HPLandroid/animation/TimeAnimator;->setCurrentPlayTime(J)V
+HSPLandroid/animation/TimeAnimator;->setTimeListener(Landroid/animation/TimeAnimator$TimeListener;)V
+HPLandroid/animation/TimeAnimator;->start()V
HSPLandroid/animation/ValueAnimator;-><init>()V
+PLandroid/animation/ValueAnimator;->addAnimationCallback(J)V
HSPLandroid/animation/ValueAnimator;->addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V
HSPLandroid/animation/ValueAnimator;->animateBasedOnTime(J)Z
HSPLandroid/animation/ValueAnimator;->animateValue(F)V
+HSPLandroid/animation/ValueAnimator;->areAnimatorsEnabled()Z
HSPLandroid/animation/ValueAnimator;->cancel()V
+HPLandroid/animation/ValueAnimator;->clampFraction(F)F
HSPLandroid/animation/ValueAnimator;->clone()Landroid/animation/Animator;
HSPLandroid/animation/ValueAnimator;->clone()Landroid/animation/ValueAnimator;
HSPLandroid/animation/ValueAnimator;->doAnimationFrame(J)Z
HSPLandroid/animation/ValueAnimator;->end()V
HSPLandroid/animation/ValueAnimator;->endAnimation()V
+HSPLandroid/animation/ValueAnimator;->getAnimatedFraction()F
HSPLandroid/animation/ValueAnimator;->getAnimatedValue()Ljava/lang/Object;
HSPLandroid/animation/ValueAnimator;->getAnimationHandler()Landroid/animation/AnimationHandler;
HSPLandroid/animation/ValueAnimator;->getCurrentAnimationsCount()I
+HPLandroid/animation/ValueAnimator;->getCurrentIteration(F)I
+HPLandroid/animation/ValueAnimator;->getCurrentIterationFraction(FZ)F
+HPLandroid/animation/ValueAnimator;->getCurrentPlayTime()J
HSPLandroid/animation/ValueAnimator;->getDuration()J
HSPLandroid/animation/ValueAnimator;->getDurationScale()F
+HSPLandroid/animation/ValueAnimator;->getInterpolator()Landroid/animation/TimeInterpolator;
+HSPLandroid/animation/ValueAnimator;->getNameForTrace()Ljava/lang/String;
+HSPLandroid/animation/ValueAnimator;->getRepeatCount()I
+HSPLandroid/animation/ValueAnimator;->getRepeatMode()I
+PLandroid/animation/ValueAnimator;->getScaledDuration()J
HSPLandroid/animation/ValueAnimator;->getStartDelay()J
HSPLandroid/animation/ValueAnimator;->getTotalDuration()J
+HSPLandroid/animation/ValueAnimator;->getValues()[Landroid/animation/PropertyValuesHolder;
HSPLandroid/animation/ValueAnimator;->initAnimation()V
HSPLandroid/animation/ValueAnimator;->isInitialized()Z
+PLandroid/animation/ValueAnimator;->isPulsingInternal()Z
HSPLandroid/animation/ValueAnimator;->isRunning()Z
HSPLandroid/animation/ValueAnimator;->isStarted()Z
HSPLandroid/animation/ValueAnimator;->notifyStartListeners()V
+HPLandroid/animation/ValueAnimator;->ofArgb([I)Landroid/animation/ValueAnimator;
HSPLandroid/animation/ValueAnimator;->ofFloat([F)Landroid/animation/ValueAnimator;
HSPLandroid/animation/ValueAnimator;->ofInt([I)Landroid/animation/ValueAnimator;
+PLandroid/animation/ValueAnimator;->overrideDurationScale(F)V
+PLandroid/animation/ValueAnimator;->pause()V
HSPLandroid/animation/ValueAnimator;->pulseAnimationFrame(J)Z
+PLandroid/animation/ValueAnimator;->removeAnimationCallback()V
+PLandroid/animation/ValueAnimator;->resolveDurationScale()F
+PLandroid/animation/ValueAnimator;->resume()V
HSPLandroid/animation/ValueAnimator;->setAllowRunningAsynchronously(Z)V
HSPLandroid/animation/ValueAnimator;->setCurrentFraction(F)V
HSPLandroid/animation/ValueAnimator;->setCurrentPlayTime(J)V
+HSPLandroid/animation/ValueAnimator;->setDuration(J)Landroid/animation/Animator;
HSPLandroid/animation/ValueAnimator;->setDuration(J)Landroid/animation/ValueAnimator;
HSPLandroid/animation/ValueAnimator;->setDurationScale(F)V
+PLandroid/animation/ValueAnimator;->setEvaluator(Landroid/animation/TypeEvaluator;)V
HSPLandroid/animation/ValueAnimator;->setFloatValues([F)V
HSPLandroid/animation/ValueAnimator;->setIntValues([I)V
HSPLandroid/animation/ValueAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V
+PLandroid/animation/ValueAnimator;->setObjectValues([Ljava/lang/Object;)V
HSPLandroid/animation/ValueAnimator;->setRepeatCount(I)V
+HSPLandroid/animation/ValueAnimator;->setRepeatMode(I)V
HSPLandroid/animation/ValueAnimator;->setStartDelay(J)V
HSPLandroid/animation/ValueAnimator;->setValues([Landroid/animation/PropertyValuesHolder;)V
HSPLandroid/animation/ValueAnimator;->shouldPlayBackward(IZ)Z
+HPLandroid/animation/ValueAnimator;->skipToEndValue(Z)V
HSPLandroid/animation/ValueAnimator;->start()V
HSPLandroid/animation/ValueAnimator;->start(Z)V
HSPLandroid/animation/ValueAnimator;->startAnimation()V
HSPLandroid/animation/ValueAnimator;->startWithoutPulsing(Z)V
+HSPLandroid/apex/ApexInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/apex/ApexInfo;
+HSPLandroid/apex/ApexInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/apex/ApexInfo$1;->newArray(I)[Landroid/apex/ApexInfo;
+HSPLandroid/apex/ApexInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/apex/ApexInfo;-><init>()V
+HSPLandroid/apex/ApexInfo;->readFromParcel(Landroid/os/Parcel;)V
+PLandroid/apex/ApexSessionInfo$1;-><init>()V
+PLandroid/apex/ApexSessionInfo$1;->newArray(I)[Landroid/apex/ApexSessionInfo;
+PLandroid/apex/ApexSessionInfo$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/apex/ApexSessionInfo;-><clinit>()V
+HSPLandroid/apex/IApexService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/apex/IApexService$Stub$Proxy;->getActivePackages()[Landroid/apex/ApexInfo;
+HSPLandroid/apex/IApexService$Stub$Proxy;->getAllPackages()[Landroid/apex/ApexInfo;
+PLandroid/apex/IApexService$Stub$Proxy;->getSessions()[Landroid/apex/ApexSessionInfo;
+HSPLandroid/apex/IApexService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/apex/IApexService;
+HSPLandroid/app/-$$Lambda$ActivityThread$A4ykhsPb8qV3ffTqpQDklHSMDJ0;->run()V
+HSPLandroid/app/-$$Lambda$ActivityThread$ActivityClientRecord$HOrG1qglSjSUHSjKBn2rXtX0gGg;->onConfigurationChanged(Landroid/content/res/Configuration;I)V
HSPLandroid/app/-$$Lambda$ActivityThread$ApplicationThread$tUGFX7CUhzB4Pg5wFd5yeqOnu38;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
HSPLandroid/app/-$$Lambda$ActivityThread$Wg40iAoNYFxps_KmrqtgptTB054;-><init>(Landroid/app/ActivityThread;)V
HSPLandroid/app/-$$Lambda$ActivityThread$Wg40iAoNYFxps_KmrqtgptTB054;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+PLandroid/app/-$$Lambda$AppOpsManager$4Zbi7CSLEt0nvOmfJBVYtJkauTQ;-><init>(Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V
+PLandroid/app/-$$Lambda$AppOpsManager$4Zbi7CSLEt0nvOmfJBVYtJkauTQ;->onResult(Landroid/os/Bundle;)V
+PLandroid/app/-$$Lambda$AppOpsManager$HistoricalOp$DkVcBvqB32SMHlxw0sWQPh3GL1A;-><init>(Landroid/app/AppOpsManager$HistoricalOp;)V
+HPLandroid/app/-$$Lambda$AppOpsManager$HistoricalOp$DkVcBvqB32SMHlxw0sWQPh3GL1A;->get()Ljava/lang/Object;
+PLandroid/app/-$$Lambda$AppOpsManager$HistoricalOp$HUOLFYs8TiaQIOXcrq6JzjxA6gs;-><init>(Landroid/app/AppOpsManager$HistoricalOp;)V
+HPLandroid/app/-$$Lambda$AppOpsManager$HistoricalOp$HUOLFYs8TiaQIOXcrq6JzjxA6gs;->get()Ljava/lang/Object;
+PLandroid/app/-$$Lambda$AppOpsManager$HistoricalOp$Vs6pDL0wjOBTquwNnreWVbPQrn4;-><init>(Landroid/app/AppOpsManager$HistoricalOp;)V
+HPLandroid/app/-$$Lambda$AppOpsManager$HistoricalOp$Vs6pDL0wjOBTquwNnreWVbPQrn4;->get()Ljava/lang/Object;
+HSPLandroid/app/-$$Lambda$AppOpsManager$OpEntry$VkVF13kpgTRuS3y_5H442ukf4lY;-><init>(I)V
+HSPLandroid/app/-$$Lambda$AppOpsManager$OpEntry$VkVF13kpgTRuS3y_5H442ukf4lY;->applyAsLong(Ljava/lang/Object;)J
+HSPLandroid/app/-$$Lambda$AppOpsManager$OpEntry$kdehJT0Vyrquji7c4qSeRkpnvBU;-><init>(III)V
+HSPLandroid/app/-$$Lambda$AppOpsManager$OpEntry$kdehJT0Vyrquji7c4qSeRkpnvBU;->applyAsLong(Ljava/lang/Object;)J
+HSPLandroid/app/-$$Lambda$AppOpsManager$OpEntry$oJrIzD9nj7b4wauCj0IMv_3cbRQ;-><init>(I)V
+HSPLandroid/app/-$$Lambda$AppOpsManager$OpEntry$oJrIzD9nj7b4wauCj0IMv_3cbRQ;->applyAsLong(Ljava/lang/Object;)J
+HSPLandroid/app/-$$Lambda$AppOpsManager$OpEntry$xDz1BLkc0ULiTpH5T24o2mMAUP0;-><init>(I)V
+HSPLandroid/app/-$$Lambda$AppOpsManager$OpEntry$xDz1BLkc0ULiTpH5T24o2mMAUP0;->applyAsLong(Ljava/lang/Object;)J
+PLandroid/app/-$$Lambda$AppOpsManager$frSyqmhVUmNbhMckfMS3PSwTMlw;-><init>(Ljava/util/function/Consumer;Landroid/app/AppOpsManager$HistoricalOps;)V
+PLandroid/app/-$$Lambda$AppOpsManager$frSyqmhVUmNbhMckfMS3PSwTMlw;->run()V
HSPLandroid/app/-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA;-><init>(Landroid/app/LoadedApk$ReceiverDispatcher$Args;)V
HSPLandroid/app/-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA;->run()V
+PLandroid/app/-$$Lambda$Notification$hOCsSZH8tWalFSbIzQ9x9IcPa9M;-><init>(Landroid/app/Notification;Landroid/os/Parcel;)V
HSPLandroid/app/-$$Lambda$Notification$hOCsSZH8tWalFSbIzQ9x9IcPa9M;->onMarshaled(Landroid/app/PendingIntent;Landroid/os/Parcel;I)V
HSPLandroid/app/-$$Lambda$ResourcesManager$QJ7UiVk_XS90KuXAsIjIEym1DnM;->test(Ljava/lang/Object;)Z
HSPLandroid/app/-$$Lambda$SharedPreferencesImpl$EditorImpl$3CAjkhzA131V3V-sLfP2uy0FWZ0;->run()V
+PLandroid/app/ActionBar$LayoutParams;-><init>(II)V
+HPLandroid/app/ActionBar;-><init>()V
+HPLandroid/app/ActionBar;->onDestroy()V
+HPLandroid/app/Activity$1;->isTaskRoot()Z
+HSPLandroid/app/Activity$1;->updateNavigationBarColor(I)V
+HSPLandroid/app/Activity$1;->updateStatusBarColor(I)V
+HSPLandroid/app/Activity$HostCallbacks;->onAttachFragment(Landroid/app/Fragment;)V
+HPLandroid/app/Activity$HostCallbacks;->onFindViewById(I)Landroid/view/View;
+HSPLandroid/app/Activity$HostCallbacks;->onGetLayoutInflater()Landroid/view/LayoutInflater;
+HPLandroid/app/Activity$HostCallbacks;->onGetWindowAnimations()I
+HPLandroid/app/Activity$HostCallbacks;->onHasView()Z
+HPLandroid/app/Activity$HostCallbacks;->onHasWindowAnimations()Z
+HSPLandroid/app/Activity$HostCallbacks;->onUseFragmentManagerInflaterFactory()Z
HSPLandroid/app/Activity;-><init>()V
+HPLandroid/app/Activity;->access$000(Landroid/app/Activity;)Landroid/os/IBinder;
+HSPLandroid/app/Activity;->access$100(Landroid/app/Activity;)Landroid/app/ActivityManager$TaskDescription;
+HSPLandroid/app/Activity;->attach(Landroid/content/Context;Landroid/app/ActivityThread;Landroid/app/Instrumentation;Landroid/os/IBinder;ILandroid/app/Application;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/CharSequence;Landroid/app/Activity;Ljava/lang/String;Landroid/app/Activity$NonConfigurationInstances;Landroid/content/res/Configuration;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;Landroid/view/Window;Landroid/view/ViewRootImpl$ActivityConfigCallback;Landroid/os/IBinder;)V
+HSPLandroid/app/Activity;->attachBaseContext(Landroid/content/Context;)V
+HPLandroid/app/Activity;->autofillClientGetActivityToken()Landroid/os/IBinder;
+HSPLandroid/app/Activity;->autofillClientGetComponentName()Landroid/content/ComponentName;
+HPLandroid/app/Activity;->autofillClientIsFillUiShowing()Z
+HSPLandroid/app/Activity;->autofillClientRequestHideFillUi()Z
+HPLandroid/app/Activity;->autofillClientResetableStateAvailable()V
+HPLandroid/app/Activity;->autofillClientRunOnUiThread(Ljava/lang/Runnable;)V
+HSPLandroid/app/Activity;->collectActivityLifecycleCallbacks()[Ljava/lang/Object;
+HPLandroid/app/Activity;->deviceSupportsPictureInPictureMode()Z
+HPLandroid/app/Activity;->dispatchActivityResult(Ljava/lang/String;IILandroid/content/Intent;Ljava/lang/String;)V
+HSPLandroid/app/Activity;->dispatchEnterAnimationComplete()V
+HPLandroid/app/Activity;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
+HSPLandroid/app/Activity;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
+HPLandroid/app/Activity;->ensureSearchManager()V
+HSPLandroid/app/Activity;->findViewById(I)Landroid/view/View;
+HSPLandroid/app/Activity;->finish()V
+HSPLandroid/app/Activity;->finish(I)V
+HPLandroid/app/Activity;->finishAfterTransition()V
+HPLandroid/app/Activity;->getActionBar()Landroid/app/ActionBar;
+HSPLandroid/app/Activity;->getActivityOptions()Landroid/app/ActivityOptions;
+HSPLandroid/app/Activity;->getActivityToken()Landroid/os/IBinder;
+HSPLandroid/app/Activity;->getApplication()Landroid/app/Application;
+HSPLandroid/app/Activity;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient;
+HSPLandroid/app/Activity;->getCallingActivity()Landroid/content/ComponentName;
+HSPLandroid/app/Activity;->getCallingPackage()Ljava/lang/String;
+HSPLandroid/app/Activity;->getComponentName()Landroid/content/ComponentName;
+HSPLandroid/app/Activity;->getContentCaptureTypeAsString(I)Ljava/lang/String;
+HPLandroid/app/Activity;->getCurrentFocus()Landroid/view/View;
+HSPLandroid/app/Activity;->getFragmentManager()Landroid/app/FragmentManager;
+HSPLandroid/app/Activity;->getIntent()Landroid/content/Intent;
+HSPLandroid/app/Activity;->getLastNonConfigurationInstance()Ljava/lang/Object;
+HSPLandroid/app/Activity;->getLayoutInflater()Landroid/view/LayoutInflater;
+HPLandroid/app/Activity;->getLoaderManager()Landroid/app/LoaderManager;
+HSPLandroid/app/Activity;->getLocalClassName()Ljava/lang/String;
+HPLandroid/app/Activity;->getMenuInflater()Landroid/view/MenuInflater;
+HSPLandroid/app/Activity;->getNextAutofillId()I
+HSPLandroid/app/Activity;->getParent()Landroid/app/Activity;
+HSPLandroid/app/Activity;->getRequestedOrientation()I
+HSPLandroid/app/Activity;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
+HSPLandroid/app/Activity;->getTaskId()I
+HSPLandroid/app/Activity;->getTitle()Ljava/lang/CharSequence;
+HSPLandroid/app/Activity;->getWindow()Landroid/view/Window;
+HSPLandroid/app/Activity;->getWindowManager()Landroid/view/WindowManager;
+HSPLandroid/app/Activity;->hasWindowFocus()Z
+HSPLandroid/app/Activity;->initWindowDecorActionBar()V
+HSPLandroid/app/Activity;->isChangingConfigurations()Z
+HSPLandroid/app/Activity;->isDestroyed()Z
+HPLandroid/app/Activity;->isDisablingEnterExitEventForAutofill()Z
+HSPLandroid/app/Activity;->isFinishing()Z
+HSPLandroid/app/Activity;->isInMultiWindowMode()Z
+HPLandroid/app/Activity;->isTaskRoot()Z
+HSPLandroid/app/Activity;->makeVisible()V
+HSPLandroid/app/Activity;->notifyContentCaptureManagerIfNeeded(I)V
+HPLandroid/app/Activity;->onActivityResult(IILandroid/content/Intent;)V
+HSPLandroid/app/Activity;->onApplyThemeResource(Landroid/content/res/Resources$Theme;IZ)V
+HSPLandroid/app/Activity;->onAttachFragment(Landroid/app/Fragment;)V
+HSPLandroid/app/Activity;->onAttachedToWindow()V
+HPLandroid/app/Activity;->onBackPressed()V
+HPLandroid/app/Activity;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLandroid/app/Activity;->onContentChanged()V
+HSPLandroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
+HSPLandroid/app/Activity;->onCreateDescription()Ljava/lang/CharSequence;
+HSPLandroid/app/Activity;->onCreateOptionsMenu(Landroid/view/Menu;)Z
+HSPLandroid/app/Activity;->onCreatePanelMenu(ILandroid/view/Menu;)Z
+HPLandroid/app/Activity;->onCreatePanelView(I)Landroid/view/View;
+HSPLandroid/app/Activity;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
+HSPLandroid/app/Activity;->onCreateView(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
+HSPLandroid/app/Activity;->onDestroy()V
+HSPLandroid/app/Activity;->onDetachedFromWindow()V
+HSPLandroid/app/Activity;->onEnterAnimationComplete()V
+HPLandroid/app/Activity;->onKeyDown(ILandroid/view/KeyEvent;)Z
+HPLandroid/app/Activity;->onKeyUp(ILandroid/view/KeyEvent;)Z
+HPLandroid/app/Activity;->onMenuItemSelected(ILandroid/view/MenuItem;)Z
+HPLandroid/app/Activity;->onNewIntent(Landroid/content/Intent;)V
+HSPLandroid/app/Activity;->onPause()V
+HSPLandroid/app/Activity;->onPostCreate(Landroid/os/Bundle;)V
+HSPLandroid/app/Activity;->onPostResume()V
+HSPLandroid/app/Activity;->onPrepareOptionsMenu(Landroid/view/Menu;)Z
+HSPLandroid/app/Activity;->onPreparePanel(ILandroid/view/View;Landroid/view/Menu;)Z
+HPLandroid/app/Activity;->onProvideAssistContent(Landroid/app/assist/AssistContent;)V
+HPLandroid/app/Activity;->onProvideAssistData(Landroid/os/Bundle;)V
+HSPLandroid/app/Activity;->onProvideReferrer()Landroid/net/Uri;
+HPLandroid/app/Activity;->onRestart()V
+HSPLandroid/app/Activity;->onRestoreInstanceState(Landroid/os/Bundle;)V
+HSPLandroid/app/Activity;->onResume()V
+HSPLandroid/app/Activity;->onSaveInstanceState(Landroid/os/Bundle;)V
+HSPLandroid/app/Activity;->onStart()V
+HSPLandroid/app/Activity;->onStateNotSaved()V
+HSPLandroid/app/Activity;->onStop()V
+HSPLandroid/app/Activity;->onTitleChanged(Ljava/lang/CharSequence;I)V
+HSPLandroid/app/Activity;->onTopResumedActivityChanged(Z)V
+HSPLandroid/app/Activity;->onTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/app/Activity;->onTrimMemory(I)V
+HSPLandroid/app/Activity;->onUserInteraction()V
+HSPLandroid/app/Activity;->onUserLeaveHint()V
+HSPLandroid/app/Activity;->onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V
+HSPLandroid/app/Activity;->onWindowFocusChanged(Z)V
+HSPLandroid/app/Activity;->overridePendingTransition(II)V
+HSPLandroid/app/Activity;->performCreate(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V
+HSPLandroid/app/Activity;->performDestroy()V
+HSPLandroid/app/Activity;->performPause()V
+HSPLandroid/app/Activity;->performRestart(ZLjava/lang/String;)V
+HSPLandroid/app/Activity;->performResume(ZLjava/lang/String;)V
+HSPLandroid/app/Activity;->performStart(Ljava/lang/String;)V
+HSPLandroid/app/Activity;->performStop(ZLjava/lang/String;)V
+HSPLandroid/app/Activity;->performTopResumedActivityChanged(ZLjava/lang/String;)V
+HSPLandroid/app/Activity;->registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V
+HSPLandroid/app/Activity;->registerRemoteAnimations(Landroid/view/RemoteAnimationDefinition;)V
+HSPLandroid/app/Activity;->requestWindowFeature(I)Z
+HSPLandroid/app/Activity;->restoreManagedDialogs(Landroid/os/Bundle;)V
+HPLandroid/app/Activity;->runOnUiThread(Ljava/lang/Runnable;)V
+HSPLandroid/app/Activity;->saveManagedDialogs(Landroid/os/Bundle;)V
+HSPLandroid/app/Activity;->setContentView(I)V
+HSPLandroid/app/Activity;->setContentView(Landroid/view/View;)V
+HSPLandroid/app/Activity;->setDefaultKeyMode(I)V
+HPLandroid/app/Activity;->setDisablePreviewScreenshots(Z)V
+HSPLandroid/app/Activity;->setIntent(Landroid/content/Intent;)V
+HPLandroid/app/Activity;->setPictureInPictureParams(Landroid/app/PictureInPictureParams;)V
+HSPLandroid/app/Activity;->setRequestedOrientation(I)V
+HPLandroid/app/Activity;->setResult(I)V
+HSPLandroid/app/Activity;->setTaskDescription(Landroid/app/ActivityManager$TaskDescription;)V
+HSPLandroid/app/Activity;->setTheme(I)V
+HPLandroid/app/Activity;->setTitle(I)V
+HSPLandroid/app/Activity;->setTitle(Ljava/lang/CharSequence;)V
+HSPLandroid/app/Activity;->startActivity(Landroid/content/Intent;)V
+HSPLandroid/app/Activity;->startActivity(Landroid/content/Intent;Landroid/os/Bundle;)V
+HSPLandroid/app/Activity;->startActivityForResult(Landroid/content/Intent;I)V
+HSPLandroid/app/Activity;->startActivityForResult(Landroid/content/Intent;ILandroid/os/Bundle;)V
HSPLandroid/app/ActivityManager$1;->create()Landroid/app/IActivityManager;
HSPLandroid/app/ActivityManager$1;->create()Ljava/lang/Object;
HSPLandroid/app/ActivityManager$MemoryInfo;-><init>()V
HSPLandroid/app/ActivityManager$MemoryInfo;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/app/ActivityManager$MemoryInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/ActivityManager$ProcessErrorStateInfo$1;-><init>()V
+PLandroid/app/ActivityManager$ProcessErrorStateInfo;-><clinit>()V
+PLandroid/app/ActivityManager$ProcessErrorStateInfo;-><init>()V
+HSPLandroid/app/ActivityManager$RecentTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RecentTaskInfo;
+HSPLandroid/app/ActivityManager$RecentTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/ActivityManager$RecentTaskInfo;-><init>()V
+HPLandroid/app/ActivityManager$RecentTaskInfo;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLandroid/app/ActivityManager$RecentTaskInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/ActivityManager$RunningAppProcessInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RunningAppProcessInfo;
HSPLandroid/app/ActivityManager$RunningAppProcessInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/app/ActivityManager$RunningAppProcessInfo;-><init>()V
+PLandroid/app/ActivityManager$RunningAppProcessInfo;-><init>(Ljava/lang/String;I[Ljava/lang/String;)V
HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->importanceToProcState(I)I
HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->procStateToImportance(I)I
HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->procStateToImportanceForClient(ILandroid/content/Context;)I
HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->procStateToImportanceForTargetSdk(II)I
HSPLandroid/app/ActivityManager$RunningAppProcessInfo;->readFromParcel(Landroid/os/Parcel;)V
-PLandroid/app/ActivityManager$RunningServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RunningServiceInfo;
-PLandroid/app/ActivityManager$RunningServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-PLandroid/app/ActivityManager$RunningServiceInfo;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/app/ActivityManager$RunningAppProcessInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/ActivityManager$RunningServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RunningServiceInfo;
+HSPLandroid/app/ActivityManager$RunningServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/ActivityManager$RunningServiceInfo;-><init>()V
+HSPLandroid/app/ActivityManager$RunningServiceInfo;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/app/ActivityManager$RunningServiceInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/ActivityManager$RunningTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$RunningTaskInfo;
+HSPLandroid/app/ActivityManager$RunningTaskInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/ActivityManager$RunningTaskInfo;-><init>()V
+HPLandroid/app/ActivityManager$RunningTaskInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/app/ActivityManager$StackInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$StackInfo;
+HPLandroid/app/ActivityManager$StackInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/ActivityManager$StackInfo;-><init>()V
+HPLandroid/app/ActivityManager$StackInfo;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/app/ActivityManager$StackInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/ActivityManager$TaskDescription$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$TaskDescription;
HSPLandroid/app/ActivityManager$TaskDescription$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/app/ActivityManager$TaskDescription;-><init>()V
+PLandroid/app/ActivityManager$TaskDescription;-><init>(Landroid/app/ActivityManager$TaskDescription;)V
+PLandroid/app/ActivityManager$TaskDescription;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/ActivityManager$TaskDescription;-><init>(Landroid/os/Parcel;Landroid/app/ActivityManager$1;)V
+PLandroid/app/ActivityManager$TaskDescription;-><init>(Ljava/lang/String;Landroid/graphics/Bitmap;ILjava/lang/String;IIIIZZIII)V
+HPLandroid/app/ActivityManager$TaskDescription;->copyFrom(Landroid/app/ActivityManager$TaskDescription;)V
+PLandroid/app/ActivityManager$TaskDescription;->getBackgroundColor()I
+PLandroid/app/ActivityManager$TaskDescription;->getEnsureNavigationBarContrastWhenTransparent()Z
+PLandroid/app/ActivityManager$TaskDescription;->getEnsureStatusBarContrastWhenTransparent()Z
+PLandroid/app/ActivityManager$TaskDescription;->getIcon()Landroid/graphics/Bitmap;
+PLandroid/app/ActivityManager$TaskDescription;->getIconFilename()Ljava/lang/String;
+PLandroid/app/ActivityManager$TaskDescription;->getIconResource()I
+PLandroid/app/ActivityManager$TaskDescription;->getInMemoryIcon()Landroid/graphics/Bitmap;
+PLandroid/app/ActivityManager$TaskDescription;->getLabel()Ljava/lang/String;
+PLandroid/app/ActivityManager$TaskDescription;->getMinHeight()I
+PLandroid/app/ActivityManager$TaskDescription;->getMinWidth()I
+PLandroid/app/ActivityManager$TaskDescription;->getNavigationBarColor()I
+HSPLandroid/app/ActivityManager$TaskDescription;->getPrimaryColor()I
+PLandroid/app/ActivityManager$TaskDescription;->getResizeMode()I
+PLandroid/app/ActivityManager$TaskDescription;->getStatusBarColor()I
+PLandroid/app/ActivityManager$TaskDescription;->loadTaskDescriptionIcon(Ljava/lang/String;I)Landroid/graphics/Bitmap;
HSPLandroid/app/ActivityManager$TaskDescription;->readFromParcel(Landroid/os/Parcel;)V
-PLandroid/app/ActivityManager$UidObserver;->onUidGone(IZ)V
+PLandroid/app/ActivityManager$TaskDescription;->restoreFromXml(Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/app/ActivityManager$TaskDescription;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/app/ActivityManager$TaskDescription;->setBackgroundColor(I)V
+HSPLandroid/app/ActivityManager$TaskDescription;->setEnsureNavigationBarContrastWhenTransparent(Z)V
+HSPLandroid/app/ActivityManager$TaskDescription;->setEnsureStatusBarContrastWhenTransparent(Z)V
+PLandroid/app/ActivityManager$TaskDescription;->setIcon(I)V
+PLandroid/app/ActivityManager$TaskDescription;->setIconFilename(Ljava/lang/String;)V
+PLandroid/app/ActivityManager$TaskDescription;->setLabel(Ljava/lang/String;)V
+PLandroid/app/ActivityManager$TaskDescription;->setMinHeight(I)V
+PLandroid/app/ActivityManager$TaskDescription;->setMinWidth(I)V
+HSPLandroid/app/ActivityManager$TaskDescription;->setNavigationBarColor(I)V
+HSPLandroid/app/ActivityManager$TaskDescription;->setPrimaryColor(I)V
+PLandroid/app/ActivityManager$TaskDescription;->setResizeMode(I)V
+HSPLandroid/app/ActivityManager$TaskDescription;->setStatusBarColor(I)V
+HSPLandroid/app/ActivityManager$TaskDescription;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/ActivityManager$TaskSnapshot$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ActivityManager$TaskSnapshot;
+HSPLandroid/app/ActivityManager$TaskSnapshot$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/ActivityManager$TaskSnapshot;-><init>(JLandroid/content/ComponentName;Landroid/graphics/GraphicBuffer;Landroid/graphics/ColorSpace;ILandroid/graphics/Rect;ZFZIIZ)V
+HSPLandroid/app/ActivityManager$TaskSnapshot;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/ActivityManager$TaskSnapshot;-><init>(Landroid/os/Parcel;Landroid/app/ActivityManager$1;)V
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getColorSpace()Landroid/graphics/ColorSpace;
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getContentInsets()Landroid/graphics/Rect;
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getId()J
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getOrientation()I
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getScale()F
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getSnapshot()Landroid/graphics/GraphicBuffer;
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getSystemUiVisibility()I
+PLandroid/app/ActivityManager$TaskSnapshot;->getTopActivityComponent()Landroid/content/ComponentName;
+HSPLandroid/app/ActivityManager$TaskSnapshot;->getWindowingMode()I
+HSPLandroid/app/ActivityManager$TaskSnapshot;->isRealSnapshot()Z
+HSPLandroid/app/ActivityManager$TaskSnapshot;->isReducedResolution()Z
+HSPLandroid/app/ActivityManager$TaskSnapshot;->isTranslucent()Z
+PLandroid/app/ActivityManager$TaskSnapshot;->toString()Ljava/lang/String;
+PLandroid/app/ActivityManager$TaskSnapshot;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/ActivityManager$UidObserver;-><init>(Landroid/app/ActivityManager$OnUidImportanceListener;Landroid/content/Context;)V
+HSPLandroid/app/ActivityManager$UidObserver;->onUidGone(IZ)V
HSPLandroid/app/ActivityManager$UidObserver;->onUidStateChanged(IIJI)V
HSPLandroid/app/ActivityManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
HSPLandroid/app/ActivityManager;->addOnUidImportanceListener(Landroid/app/ActivityManager$OnUidImportanceListener;I)V
+HSPLandroid/app/ActivityManager;->broadcastStickyIntent(Landroid/content/Intent;I)V
+HSPLandroid/app/ActivityManager;->broadcastStickyIntent(Landroid/content/Intent;II)V
+HSPLandroid/app/ActivityManager;->checkComponentPermission(Ljava/lang/String;IIZ)I
+HSPLandroid/app/ActivityManager;->checkUidPermission(Ljava/lang/String;I)I
+HSPLandroid/app/ActivityManager;->getAppTasks()Ljava/util/List;
HSPLandroid/app/ActivityManager;->getCurrentUser()I
HSPLandroid/app/ActivityManager;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo;
HSPLandroid/app/ActivityManager;->getLargeMemoryClass()I
+HSPLandroid/app/ActivityManager;->getLauncherLargeIconSize()I
+HSPLandroid/app/ActivityManager;->getLauncherLargeIconSizeInner(Landroid/content/Context;)I
+HPLandroid/app/ActivityManager;->getLockTaskModeState()I
HSPLandroid/app/ActivityManager;->getMemoryClass()I
HSPLandroid/app/ActivityManager;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V
HSPLandroid/app/ActivityManager;->getMyMemoryState(Landroid/app/ActivityManager$RunningAppProcessInfo;)V
+HSPLandroid/app/ActivityManager;->getPackageImportance(Ljava/lang/String;)I
HSPLandroid/app/ActivityManager;->getProcessMemoryInfo([I)[Landroid/os/Debug$MemoryInfo;
HSPLandroid/app/ActivityManager;->getRunningAppProcesses()Ljava/util/List;
HSPLandroid/app/ActivityManager;->getRunningServices(I)Ljava/util/List;
+HSPLandroid/app/ActivityManager;->getRunningTasks(I)Ljava/util/List;
HSPLandroid/app/ActivityManager;->getService()Landroid/app/IActivityManager;
+PLandroid/app/ActivityManager;->getUidImportance(I)I
+HSPLandroid/app/ActivityManager;->handleIncomingUser(IIIZZLjava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/ActivityManager;->isForegroundService(I)Z
+HSPLandroid/app/ActivityManager;->isHighEndGfx()Z
HSPLandroid/app/ActivityManager;->isLowRamDevice()Z
HSPLandroid/app/ActivityManager;->isLowRamDeviceStatic()Z
+HSPLandroid/app/ActivityManager;->isProcStateBackground(I)Z
HSPLandroid/app/ActivityManager;->isRunningInTestHarness()Z
+HSPLandroid/app/ActivityManager;->isSmallBatteryDevice()Z
+PLandroid/app/ActivityManager;->isStartResultFatalError(I)Z
+PLandroid/app/ActivityManager;->isStartResultSuccessful(I)Z
HSPLandroid/app/ActivityManager;->isUserAMonkey()Z
+HSPLandroid/app/ActivityManager;->isUserRunning(I)Z
+HPLandroid/app/ActivityManager;->noteAlarmFinish(Landroid/app/PendingIntent;Landroid/os/WorkSource;ILjava/lang/String;)V
+HPLandroid/app/ActivityManager;->noteAlarmStart(Landroid/app/PendingIntent;Landroid/os/WorkSource;ILjava/lang/String;)V
+HPLandroid/app/ActivityManager;->noteWakeupAlarm(Landroid/app/PendingIntent;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/ActivityManager;->processStateAmToProto(I)I
+PLandroid/app/ActivityManager;->staticGetLargeMemoryClass()I
HSPLandroid/app/ActivityManager;->staticGetMemoryClass()I
+HSPLandroid/app/ActivityManagerInternal;-><init>()V
+HSPLandroid/app/ActivityOptions;-><init>()V
+PLandroid/app/ActivityOptions;-><init>(Landroid/os/Bundle;)V
+PLandroid/app/ActivityOptions;->abort()V
+PLandroid/app/ActivityOptions;->abort(Landroid/app/ActivityOptions;)V
+PLandroid/app/ActivityOptions;->canTaskOverlayResume()Z
+PLandroid/app/ActivityOptions;->disallowEnterPictureInPictureWhileLaunching()Z
+PLandroid/app/ActivityOptions;->freezeRecentTasksReordering()Z
+HPLandroid/app/ActivityOptions;->fromBundle(Landroid/os/Bundle;)Landroid/app/ActivityOptions;
+PLandroid/app/ActivityOptions;->getAnimationType()I
+PLandroid/app/ActivityOptions;->getAvoidMoveToFront()Z
+PLandroid/app/ActivityOptions;->getCallerDisplayId()I
+PLandroid/app/ActivityOptions;->getCustomEnterResId()I
+PLandroid/app/ActivityOptions;->getCustomExitResId()I
+PLandroid/app/ActivityOptions;->getHeight()I
+PLandroid/app/ActivityOptions;->getLaunchActivityType()I
+PLandroid/app/ActivityOptions;->getLaunchBounds()Landroid/graphics/Rect;
+PLandroid/app/ActivityOptions;->getLaunchDisplayId()I
+PLandroid/app/ActivityOptions;->getLaunchTaskBehind()Z
+PLandroid/app/ActivityOptions;->getLaunchTaskId()I
+PLandroid/app/ActivityOptions;->getLaunchWindowingMode()I
+PLandroid/app/ActivityOptions;->getLockTaskMode()Z
+PLandroid/app/ActivityOptions;->getOnAnimationStartListener()Landroid/os/IRemoteCallback;
+PLandroid/app/ActivityOptions;->getPackageName()Ljava/lang/String;
+PLandroid/app/ActivityOptions;->getPendingIntentLaunchFlags()I
+PLandroid/app/ActivityOptions;->getRemoteAnimationAdapter()Landroid/view/RemoteAnimationAdapter;
+PLandroid/app/ActivityOptions;->getRotationAnimationHint()I
+PLandroid/app/ActivityOptions;->getStartX()I
+PLandroid/app/ActivityOptions;->getStartY()I
+PLandroid/app/ActivityOptions;->getTaskOverlay()Z
+PLandroid/app/ActivityOptions;->getUsageTimeReport()Landroid/app/PendingIntent;
+PLandroid/app/ActivityOptions;->getWidth()I
+HSPLandroid/app/ActivityOptions;->makeBasic()Landroid/app/ActivityOptions;
+HPLandroid/app/ActivityOptions;->makeCustomAnimation(Landroid/content/Context;II)Landroid/app/ActivityOptions;
+HPLandroid/app/ActivityOptions;->makeCustomAnimation(Landroid/content/Context;IILandroid/os/Handler;Landroid/app/ActivityOptions$OnAnimationStartedListener;)Landroid/app/ActivityOptions;
+HPLandroid/app/ActivityOptions;->makeRemoteAnimation(Landroid/view/RemoteAnimationAdapter;)Landroid/app/ActivityOptions;
+PLandroid/app/ActivityOptions;->popAppVerificationBundle()Landroid/os/Bundle;
+PLandroid/app/ActivityOptions;->setAvoidMoveToFront()V
+HPLandroid/app/ActivityOptions;->setDisallowEnterPictureInPictureWhileLaunching(Z)V
+HPLandroid/app/ActivityOptions;->setFreezeRecentTasksReordering()V
+PLandroid/app/ActivityOptions;->setLaunchActivityType(I)V
+PLandroid/app/ActivityOptions;->setLaunchDisplayId(I)Landroid/app/ActivityOptions;
+PLandroid/app/ActivityOptions;->setLaunchTaskId(I)V
+PLandroid/app/ActivityOptions;->setLaunchWindowingMode(I)V
+HPLandroid/app/ActivityOptions;->setOnAnimationStartedListener(Landroid/os/Handler;Landroid/app/ActivityOptions$OnAnimationStartedListener;)V
+PLandroid/app/ActivityOptions;->setRemoteAnimationAdapter(Landroid/view/RemoteAnimationAdapter;)V
+HPLandroid/app/ActivityOptions;->setTaskOverlay(ZZ)V
+PLandroid/app/ActivityOptions;->toBundle()Landroid/os/Bundle;
+PLandroid/app/ActivityOptions;->toString()Ljava/lang/String;
HSPLandroid/app/ActivityTaskManager$1;->create()Landroid/app/IActivityTaskManager;
HSPLandroid/app/ActivityTaskManager$1;->create()Ljava/lang/Object;
+HSPLandroid/app/ActivityTaskManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLandroid/app/ActivityTaskManager;->getDefaultAppRecentsLimitStatic()I
+PLandroid/app/ActivityTaskManager;->getMaxAppRecentsLimitStatic()I
+HSPLandroid/app/ActivityTaskManager;->getMaxRecentTasksStatic()I
HSPLandroid/app/ActivityTaskManager;->getService()Landroid/app/IActivityTaskManager;
+HSPLandroid/app/ActivityTaskManager;->supportsMultiWindow(Landroid/content/Context;)Z
+HSPLandroid/app/ActivityTaskManager;->supportsSplitScreenMultiWindow(Landroid/content/Context;)Z
HSPLandroid/app/ActivityThread$1;-><init>(Landroid/app/ActivityThread;)V
HSPLandroid/app/ActivityThread$1;->run()V
+HSPLandroid/app/ActivityThread$ActivityClientRecord;-><init>(Landroid/os/IBinder;Landroid/content/Intent;ILandroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/util/List;Ljava/util/List;ZLandroid/app/ProfilerInfo;Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
+HPLandroid/app/ActivityThread$ActivityClientRecord;->access$4102(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/res/Configuration;)Landroid/content/res/Configuration;
+HPLandroid/app/ActivityThread$ActivityClientRecord;->getLifecycleState()I
+HSPLandroid/app/ActivityThread$ActivityClientRecord;->init()V
+HSPLandroid/app/ActivityThread$ActivityClientRecord;->isPersistable()Z
+HSPLandroid/app/ActivityThread$ActivityClientRecord;->setState(I)V
HSPLandroid/app/ActivityThread$AndroidOs;-><init>(Llibcore/io/Os;)V
HSPLandroid/app/ActivityThread$AndroidOs;->access(Ljava/lang/String;I)Z
HSPLandroid/app/ActivityThread$AndroidOs;->install()V
HSPLandroid/app/ActivityThread$AndroidOs;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor;
HSPLandroid/app/ActivityThread$AndroidOs;->remove(Ljava/lang/String;)V
+HSPLandroid/app/ActivityThread$AndroidOs;->rename(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/app/ActivityThread$AndroidOs;->stat(Ljava/lang/String;)Landroid/system/StructStat;
HSPLandroid/app/ActivityThread$AppBindData;-><init>()V
+PLandroid/app/ActivityThread$ApplicationThread$1;-><init>(Landroid/app/ActivityThread$ApplicationThread;Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
+PLandroid/app/ActivityThread$ApplicationThread$1;->run()V
HSPLandroid/app/ActivityThread$ApplicationThread;-><init>(Landroid/app/ActivityThread;)V
HSPLandroid/app/ActivityThread$ApplicationThread;-><init>(Landroid/app/ActivityThread;Landroid/app/ActivityThread$1;)V
+PLandroid/app/ActivityThread$ApplicationThread;->access$500(Landroid/app/ActivityThread$ApplicationThread;Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;Z)V
HSPLandroid/app/ActivityThread$ApplicationThread;->bindApplication(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List;Landroid/content/ComponentName;Landroid/app/ProfilerInfo;Landroid/os/Bundle;Landroid/app/IInstrumentationWatcher;Landroid/app/IUiAutomationConnection;IZZZZLandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/util/Map;Landroid/os/Bundle;Ljava/lang/String;Landroid/content/AutofillOptions;Landroid/content/ContentCaptureOptions;[J)V
HSPLandroid/app/ActivityThread$ApplicationThread;->clearDnsCache()V
HSPLandroid/app/ActivityThread$ApplicationThread;->dispatchPackageBroadcast(I[Ljava/lang/String;)V
+PLandroid/app/ActivityThread$ApplicationThread;->dumpDatabaseInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;Z)V
+PLandroid/app/ActivityThread$ApplicationThread;->dumpDbInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
+PLandroid/app/ActivityThread$ApplicationThread;->dumpGfxInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
+PLandroid/app/ActivityThread$ApplicationThread;->dumpMemInfo(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZZ[Ljava/lang/String;)V
+PLandroid/app/ActivityThread$ApplicationThread;->dumpMemInfo(Landroid/util/proto/ProtoOutputStream;Landroid/os/Debug$MemoryInfo;ZZZZ)V
+PLandroid/app/ActivityThread$ApplicationThread;->dumpMemInfo(Ljava/io/PrintWriter;Landroid/os/Debug$MemoryInfo;ZZZZZ)V
+PLandroid/app/ActivityThread$ApplicationThread;->dumpMemInfoProto(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZ[Ljava/lang/String;)V
+PLandroid/app/ActivityThread$ApplicationThread;->dumpProvider(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
+PLandroid/app/ActivityThread$ApplicationThread;->dumpService(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
+PLandroid/app/ActivityThread$ApplicationThread;->lambda$scheduleTrimMemory$0(Ljava/lang/Object;I)V
+HPLandroid/app/ActivityThread$ApplicationThread;->requestAssistContextExtras(Landroid/os/IBinder;Landroid/os/IBinder;III)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleApplicationInfoChanged(Landroid/content/pm/ApplicationInfo;)V
HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleBindService(Landroid/os/IBinder;Landroid/content/Intent;ZI)V
HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleCreateBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;II)V
HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleCreateService(Landroid/os/IBinder;Landroid/content/pm/ServiceInfo;Landroid/content/res/CompatibilityInfo;I)V
HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleDestroyBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;I)V
-PLandroid/app/ActivityThread$ApplicationThread;->scheduleInstallProvider(Landroid/content/pm/ProviderInfo;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleEnterAnimationComplete(Landroid/os/IBinder;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleInstallProvider(Landroid/content/pm/ProviderInfo;)V
+PLandroid/app/ActivityThread$ApplicationThread;->scheduleLowMemory()V
HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleReceiver(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/content/res/CompatibilityInfo;ILjava/lang/String;Landroid/os/Bundle;ZII)V
HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleRegisteredReceiver(Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZII)V
HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleServiceArgs(Landroid/os/IBinder;Landroid/content/pm/ParceledListSlice;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleSleeping(Landroid/os/IBinder;Z)V
HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleStopService(Landroid/os/IBinder;)V
HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleTrimMemory(I)V
HSPLandroid/app/ActivityThread$ApplicationThread;->scheduleUnbindService(Landroid/os/IBinder;Landroid/content/Intent;)V
HSPLandroid/app/ActivityThread$ApplicationThread;->setCoreSettings(Landroid/os/Bundle;)V
+HSPLandroid/app/ActivityThread$ApplicationThread;->setNetworkBlockSeq(J)V
HSPLandroid/app/ActivityThread$ApplicationThread;->setProcessState(I)V
HSPLandroid/app/ActivityThread$BindServiceData;-><init>()V
HSPLandroid/app/ActivityThread$ContextCleanupInfo;-><init>()V
+PLandroid/app/ActivityThread$CreateBackupAgentData;-><init>()V
HSPLandroid/app/ActivityThread$CreateServiceData;-><init>()V
+HSPLandroid/app/ActivityThread$CreateServiceData;->toString()Ljava/lang/String;
+PLandroid/app/ActivityThread$DumpComponentInfo;-><init>()V
HSPLandroid/app/ActivityThread$GcIdler;-><init>(Landroid/app/ActivityThread;)V
-HSPLandroid/app/ActivityThread$GcIdler;->queueIdle()Z
+PLandroid/app/ActivityThread$GcIdler;->queueIdle()Z
HSPLandroid/app/ActivityThread$H;-><init>(Landroid/app/ActivityThread;)V
HSPLandroid/app/ActivityThread$H;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/app/ActivityThread$Idler;->queueIdle()Z
HSPLandroid/app/ActivityThread$Profiler;-><init>()V
HSPLandroid/app/ActivityThread$ProviderClientRecord;-><init>(Landroid/app/ActivityThread;[Ljava/lang/String;Landroid/content/IContentProvider;Landroid/content/ContentProvider;Landroid/app/ContentProviderHolder;)V
HSPLandroid/app/ActivityThread$ProviderKey;-><init>(Ljava/lang/String;I)V
@@ -351,37 +1011,62 @@ HSPLandroid/app/ActivityThread$PurgeIdler;-><init>(Landroid/app/ActivityThread;)
HSPLandroid/app/ActivityThread$PurgeIdler;->queueIdle()Z
HSPLandroid/app/ActivityThread$ReceiverData;-><init>(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZLandroid/os/IBinder;I)V
HSPLandroid/app/ActivityThread$ServiceArgsData;-><init>()V
+HSPLandroid/app/ActivityThread$ServiceArgsData;->toString()Ljava/lang/String;
HSPLandroid/app/ActivityThread;-><init>()V
+PLandroid/app/ActivityThread;->access$100(Landroid/app/ActivityThread;ILjava/lang/Object;I)V
+PLandroid/app/ActivityThread;->access$1100(Landroid/app/ActivityThread;I)V
HSPLandroid/app/ActivityThread;->access$1300(Landroid/app/ActivityThread;Landroid/app/ActivityThread$AppBindData;)V
HSPLandroid/app/ActivityThread;->access$1400(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ReceiverData;)V
HSPLandroid/app/ActivityThread;->access$1500(Landroid/app/ActivityThread;Landroid/app/ActivityThread$CreateServiceData;)V
HSPLandroid/app/ActivityThread;->access$1600(Landroid/app/ActivityThread;Landroid/app/ActivityThread$BindServiceData;)V
HSPLandroid/app/ActivityThread;->access$1700(Landroid/app/ActivityThread;Landroid/app/ActivityThread$BindServiceData;)V
HSPLandroid/app/ActivityThread;->access$1800(Landroid/app/ActivityThread;Landroid/app/ActivityThread$ServiceArgsData;)V
-HSPLandroid/app/ActivityThread;->access$2100(Landroid/app/ActivityThread;Landroid/app/ActivityThread$CreateBackupAgentData;)V
-HSPLandroid/app/ActivityThread;->access$2200(Landroid/app/ActivityThread;Landroid/app/ActivityThread$CreateBackupAgentData;)V
+HSLandroid/app/ActivityThread;->access$1900(Landroid/app/ActivityThread;Landroid/os/IBinder;)V
+PLandroid/app/ActivityThread;->access$200(Landroid/app/ActivityThread;ILjava/lang/Object;IIZ)V
+PLandroid/app/ActivityThread;->access$2400(Landroid/app/ActivityThread;Landroid/app/ActivityThread$DumpComponentInfo;)V
+HSPLandroid/app/ActivityThread;->access$2500(Landroid/app/ActivityThread;Landroid/os/IBinder;Z)V
HSPLandroid/app/ActivityThread;->access$2600(Landroid/app/ActivityThread;Landroid/os/Bundle;)V
+HSPLandroid/app/ActivityThread;->access$2800(Landroid/app/ActivityThread;Landroid/os/IBinder;)V
HSPLandroid/app/ActivityThread;->access$3300(Landroid/app/ActivityThread;)Landroid/app/servertransaction/TransactionExecutor;
HSPLandroid/app/ActivityThread;->access$3600(Landroid/app/ActivityThread;)V
+PLandroid/app/ActivityThread;->access$400(Landroid/app/ActivityThread;Ljava/io/FileDescriptor;)V
HSPLandroid/app/ActivityThread;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider;
HSPLandroid/app/ActivityThread;->acquireProvider(Landroid/content/Context;Ljava/lang/String;IZ)Landroid/content/IContentProvider;
HSPLandroid/app/ActivityThread;->applyCompatConfiguration(I)Landroid/content/res/Configuration;
+HSPLandroid/app/ActivityThread;->applyConfigurationToResources(Landroid/content/res/Configuration;)V
+HSPLandroid/app/ActivityThread;->applyPendingProcessState()V
HSPLandroid/app/ActivityThread;->attach(ZJ)V
+HSPLandroid/app/ActivityThread;->callActivityOnSaveInstanceState(Landroid/app/ActivityThread$ActivityClientRecord;)V
+HSPLandroid/app/ActivityThread;->callActivityOnStop(Landroid/app/ActivityThread$ActivityClientRecord;ZLjava/lang/String;)V
+HSPLandroid/app/ActivityThread;->checkAndBlockForNetworkAccess()V
+HSPLandroid/app/ActivityThread;->cleanUpPendingRemoveWindows(Landroid/app/ActivityThread$ActivityClientRecord;Z)V
HSPLandroid/app/ActivityThread;->collectComponentCallbacks(ZLandroid/content/res/Configuration;)Ljava/util/ArrayList;
HSPLandroid/app/ActivityThread;->completeRemoveProvider(Landroid/app/ActivityThread$ProviderRefCount;)V
+HSPLandroid/app/ActivityThread;->countLaunchingActivities(I)V
+HSPLandroid/app/ActivityThread;->createBaseContextForActivity(Landroid/app/ActivityThread$ActivityClientRecord;)Landroid/app/ContextImpl;
HSPLandroid/app/ActivityThread;->createNewConfigAndUpdateIfNotNull(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Landroid/content/res/Configuration;
HSPLandroid/app/ActivityThread;->currentActivityThread()Landroid/app/ActivityThread;
HSPLandroid/app/ActivityThread;->currentApplication()Landroid/app/Application;
HSPLandroid/app/ActivityThread;->currentOpPackageName()Ljava/lang/String;
HSPLandroid/app/ActivityThread;->currentPackageName()Ljava/lang/String;
HSPLandroid/app/ActivityThread;->currentProcessName()Ljava/lang/String;
+HPLandroid/app/ActivityThread;->deliverNewIntents(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;)V
+HPLandroid/app/ActivityThread;->deliverResults(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/util/List;Ljava/lang/String;)V
+PLandroid/app/ActivityThread;->doGcIfNeeded()V
+PLandroid/app/ActivityThread;->doGcIfNeeded(Ljava/lang/String;)V
+HPLandroid/app/ActivityThread;->dumpMemInfoTable(Landroid/util/proto/ProtoOutputStream;Landroid/os/Debug$MemoryInfo;ZZJJJJJJ)V
+PLandroid/app/ActivityThread;->dumpMemInfoTable(Ljava/io/PrintWriter;Landroid/os/Debug$MemoryInfo;ZZZZILjava/lang/String;JJJJJJ)V
+HPLandroid/app/ActivityThread;->dumpMemoryInfo(Landroid/util/proto/ProtoOutputStream;JLjava/lang/String;IIIIIIZIII)V
HSPLandroid/app/ActivityThread;->freeTextLayoutCachesIfNeeded(I)V
+HSPLandroid/app/ActivityThread;->getActivitiesToBeDestroyed()Ljava/util/Map;
HSPLandroid/app/ActivityThread;->getActivityClient(Landroid/os/IBinder;)Landroid/app/ActivityThread$ActivityClientRecord;
HSPLandroid/app/ActivityThread;->getApplication()Landroid/app/Application;
HSPLandroid/app/ActivityThread;->getApplicationThread()Landroid/app/ActivityThread$ApplicationThread;
+PLandroid/app/ActivityThread;->getBackupAgentsForUser(I)Landroid/util/ArrayMap;
HSPLandroid/app/ActivityThread;->getExecutor()Ljava/util/concurrent/Executor;
HSPLandroid/app/ActivityThread;->getGetProviderLock(Ljava/lang/String;I)Ljava/lang/Object;
HSPLandroid/app/ActivityThread;->getHandler()Landroid/os/Handler;
+HSPLandroid/app/ActivityThread;->getInstrumentation()Landroid/app/Instrumentation;
HSPLandroid/app/ActivityThread;->getIntCoreSetting(Ljava/lang/String;I)I
HSPLandroid/app/ActivityThread;->getIntentBeingBroadcast()Landroid/content/Intent;
HSPLandroid/app/ActivityThread;->getLooper()Landroid/os/Looper;
@@ -394,182 +1079,571 @@ HSPLandroid/app/ActivityThread;->getPermissionManager()Landroid/permission/IPerm
HSPLandroid/app/ActivityThread;->getSystemContext()Landroid/app/ContextImpl;
HSPLandroid/app/ActivityThread;->getSystemUiContext()Landroid/app/ContextImpl;
HSPLandroid/app/ActivityThread;->getTopLevelResources(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/app/LoadedApk;)Landroid/content/res/Resources;
+HSPLandroid/app/ActivityThread;->handleActivityConfigurationChanged(Landroid/os/IBinder;Landroid/content/res/Configuration;I)V
+PLandroid/app/ActivityThread;->handleApplicationInfoChanged(Landroid/content/pm/ApplicationInfo;)V
HSPLandroid/app/ActivityThread;->handleBindApplication(Landroid/app/ActivityThread$AppBindData;)V
HSPLandroid/app/ActivityThread;->handleBindService(Landroid/app/ActivityThread$BindServiceData;)V
HSPLandroid/app/ActivityThread;->handleConfigurationChanged(Landroid/content/res/Configuration;)V
HSPLandroid/app/ActivityThread;->handleConfigurationChanged(Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)V
HSPLandroid/app/ActivityThread;->handleCreateBackupAgent(Landroid/app/ActivityThread$CreateBackupAgentData;)V
HSPLandroid/app/ActivityThread;->handleCreateService(Landroid/app/ActivityThread$CreateServiceData;)V
+HSPLandroid/app/ActivityThread;->handleDestroyActivity(Landroid/os/IBinder;ZIZLjava/lang/String;)V
HSPLandroid/app/ActivityThread;->handleDestroyBackupAgent(Landroid/app/ActivityThread$CreateBackupAgentData;)V
HSPLandroid/app/ActivityThread;->handleDispatchPackageBroadcast(I[Ljava/lang/String;)V
-PLandroid/app/ActivityThread;->handleInstallProvider(Landroid/content/pm/ProviderInfo;)V
+PLandroid/app/ActivityThread;->handleDumpProvider(Landroid/app/ActivityThread$DumpComponentInfo;)V
+PLandroid/app/ActivityThread;->handleDumpService(Landroid/app/ActivityThread$DumpComponentInfo;)V
+HSPLandroid/app/ActivityThread;->handleEnterAnimationComplete(Landroid/os/IBinder;)V
+HSPLandroid/app/ActivityThread;->handleInstallProvider(Landroid/content/pm/ProviderInfo;)V
+HSPLandroid/app/ActivityThread;->handleLaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;Landroid/content/Intent;)Landroid/app/Activity;
+PLandroid/app/ActivityThread;->handleLowMemory()V
+HPLandroid/app/ActivityThread;->handleNewIntent(Landroid/os/IBinder;Ljava/util/List;)V
+HSPLandroid/app/ActivityThread;->handlePauseActivity(Landroid/os/IBinder;ZZILandroid/app/servertransaction/PendingTransactionActions;Ljava/lang/String;)V
HSPLandroid/app/ActivityThread;->handleReceiver(Landroid/app/ActivityThread$ReceiverData;)V
+HPLandroid/app/ActivityThread;->handleRequestAssistContextExtras(Landroid/app/ActivityThread$RequestAssistContextExtras;)V
+HSPLandroid/app/ActivityThread;->handleResumeActivity(Landroid/os/IBinder;ZZLjava/lang/String;)V
+HPLandroid/app/ActivityThread;->handleSendResult(Landroid/os/IBinder;Ljava/util/List;Ljava/lang/String;)V
HSPLandroid/app/ActivityThread;->handleServiceArgs(Landroid/app/ActivityThread$ServiceArgsData;)V
HSPLandroid/app/ActivityThread;->handleSetCoreSettings(Landroid/os/Bundle;)V
+HSPLandroid/app/ActivityThread;->handleSleeping(Landroid/os/IBinder;Z)V
+HSPLandroid/app/ActivityThread;->handleStartActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/ActivityThread;->handleStopActivity(Landroid/os/IBinder;ZILandroid/app/servertransaction/PendingTransactionActions;ZLjava/lang/String;)V
HSPLandroid/app/ActivityThread;->handleStopService(Landroid/os/IBinder;)V
+HSPLandroid/app/ActivityThread;->handleTopResumedActivityChanged(Landroid/os/IBinder;ZLjava/lang/String;)V
HSPLandroid/app/ActivityThread;->handleTrimMemory(I)V
HSPLandroid/app/ActivityThread;->handleUnbindService(Landroid/app/ActivityThread$BindServiceData;)V
+HPLandroid/app/ActivityThread;->handleUnstableProviderDied(Landroid/os/IBinder;Z)V
+HPLandroid/app/ActivityThread;->handleUnstableProviderDiedLocked(Landroid/os/IBinder;Z)V
+HSPLandroid/app/ActivityThread;->handleWindowVisibility(Landroid/os/IBinder;Z)V
HSPLandroid/app/ActivityThread;->incProviderRefLocked(Landroid/app/ActivityThread$ProviderRefCount;Z)V
+HSPLandroid/app/ActivityThread;->initializeMainlineModules()V
HSPLandroid/app/ActivityThread;->installContentProviders(Landroid/content/Context;Ljava/util/List;)V
HSPLandroid/app/ActivityThread;->installProvider(Landroid/content/Context;Landroid/app/ContentProviderHolder;Landroid/content/pm/ProviderInfo;ZZZ)Landroid/app/ContentProviderHolder;
HSPLandroid/app/ActivityThread;->installProviderAuthoritiesLocked(Landroid/content/IContentProvider;Landroid/content/ContentProvider;Landroid/app/ContentProviderHolder;)Landroid/app/ActivityThread$ProviderClientRecord;
+HSPLandroid/app/ActivityThread;->installSystemApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)V
+HSPLandroid/app/ActivityThread;->installSystemProviders(Ljava/util/List;)V
HSPLandroid/app/ActivityThread;->isLoadedApkResourceDirsUpToDate(Landroid/app/LoadedApk;Landroid/content/pm/ApplicationInfo;)Z
HSPLandroid/app/ActivityThread;->isSystem()Z
+HSPLandroid/app/ActivityThread;->lambda$A4ykhsPb8qV3ffTqpQDklHSMDJ0(Landroid/app/ActivityThread;)V
HSPLandroid/app/ActivityThread;->lambda$attach$1$ActivityThread(Landroid/content/res/Configuration;)V
HSPLandroid/app/ActivityThread;->main([Ljava/lang/String;)V
HSPLandroid/app/ActivityThread;->onCoreSettingsChange()V
HSPLandroid/app/ActivityThread;->peekPackageInfo(Ljava/lang/String;Z)Landroid/app/LoadedApk;
+HSPLandroid/app/ActivityThread;->performActivityConfigurationChanged(Landroid/app/Activity;Landroid/content/res/Configuration;Landroid/content/res/Configuration;IZ)Landroid/content/res/Configuration;
HSPLandroid/app/ActivityThread;->performConfigurationChanged(Landroid/content/ComponentCallbacks2;Landroid/content/res/Configuration;)V
+HSPLandroid/app/ActivityThread;->performConfigurationChangedForActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/res/Configuration;IZ)Landroid/content/res/Configuration;
+HSPLandroid/app/ActivityThread;->performDestroyActivity(Landroid/os/IBinder;ZIZLjava/lang/String;)Landroid/app/ActivityThread$ActivityClientRecord;
+HSPLandroid/app/ActivityThread;->performLaunchActivity(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/content/Intent;)Landroid/app/Activity;
+HSPLandroid/app/ActivityThread;->performPauseActivity(Landroid/app/ActivityThread$ActivityClientRecord;ZLjava/lang/String;Landroid/app/servertransaction/PendingTransactionActions;)Landroid/os/Bundle;
+HSPLandroid/app/ActivityThread;->performPauseActivityIfNeeded(Landroid/app/ActivityThread$ActivityClientRecord;Ljava/lang/String;)V
+HPLandroid/app/ActivityThread;->performRestartActivity(Landroid/os/IBinder;Z)V
+HSPLandroid/app/ActivityThread;->performResumeActivity(Landroid/os/IBinder;ZLjava/lang/String;)Landroid/app/ActivityThread$ActivityClientRecord;
+HSPLandroid/app/ActivityThread;->performStopActivityInner(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions$StopInfo;ZZZLjava/lang/String;)V
+PLandroid/app/ActivityThread;->printRow(Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/Object;)V
HSPLandroid/app/ActivityThread;->purgePendingResources()V
+PLandroid/app/ActivityThread;->relaunchAllActivities(Z)V
HSPLandroid/app/ActivityThread;->releaseProvider(Landroid/content/IContentProvider;Z)Z
+HSPLandroid/app/ActivityThread;->reportSizeConfigurations(Landroid/app/ActivityThread$ActivityClientRecord;)V
+HSPLandroid/app/ActivityThread;->reportStop(Landroid/app/servertransaction/PendingTransactionActions;)V
HSPLandroid/app/ActivityThread;->scheduleContextCleanup(Landroid/app/ContextImpl;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/app/ActivityThread;->scheduleGcIdler()V
HSPLandroid/app/ActivityThread;->schedulePurgeIdler()V
HSPLandroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;)V
+PLandroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;I)V
HSPLandroid/app/ActivityThread;->sendMessage(ILjava/lang/Object;IIZ)V
HSPLandroid/app/ActivityThread;->setupGraphicsSupport(Landroid/content/Context;)V
+HSPLandroid/app/ActivityThread;->systemMain()Landroid/app/ActivityThread;
HSPLandroid/app/ActivityThread;->unscheduleGcIdler()V
HSPLandroid/app/ActivityThread;->updateDebugViewAttributeState()Z
HSPLandroid/app/ActivityThread;->updateDefaultDensity()V
HSPLandroid/app/ActivityThread;->updateLocaleListFromAppContext(Landroid/content/Context;Landroid/os/LocaleList;)V
+HPLandroid/app/ActivityThread;->updatePendingActivityConfiguration(Landroid/os/IBinder;Landroid/content/res/Configuration;)V
HSPLandroid/app/ActivityThread;->updatePendingConfiguration(Landroid/content/res/Configuration;)V
HSPLandroid/app/ActivityThread;->updateProcessState(IZ)V
+HSPLandroid/app/ActivityThread;->updateVisibility(Landroid/app/ActivityThread$ActivityClientRecord;Z)V
HSPLandroid/app/ActivityThread;->updateVmProcessState(I)V
+HSPLandroid/app/ActivityTransitionState;->enterReady(Landroid/app/Activity;)V
+HSPLandroid/app/ActivityTransitionState;->onResume(Landroid/app/Activity;)V
+HSPLandroid/app/ActivityTransitionState;->onStop()V
+HSPLandroid/app/ActivityTransitionState;->readState(Landroid/os/Bundle;)V
+HSPLandroid/app/ActivityTransitionState;->saveState(Landroid/os/Bundle;)V
+HSPLandroid/app/ActivityTransitionState;->setEnterActivityOptions(Landroid/app/Activity;Landroid/app/ActivityOptions;)V
+HPLandroid/app/ActivityTransitionState;->startExitBackTransition(Landroid/app/Activity;)Z
+HPLandroid/app/ActivityTransitionState;->startExitOutTransition(Landroid/app/Activity;Landroid/os/Bundle;)V
+PLandroid/app/AlarmManager$AlarmClockInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AlarmManager$AlarmClockInfo;
+PLandroid/app/AlarmManager$AlarmClockInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/AlarmManager$AlarmClockInfo;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/AlarmManager$AlarmClockInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/AlarmManager$ListenerWrapper;-><init>(Landroid/app/AlarmManager;Landroid/app/AlarmManager$OnAlarmListener;)V
HSPLandroid/app/AlarmManager$ListenerWrapper;->cancel()V
-PLandroid/app/AlarmManager$ListenerWrapper;->doAlarm(Landroid/app/IAlarmCompleteListener;)V
-PLandroid/app/AlarmManager$ListenerWrapper;->run()V
+HPLandroid/app/AlarmManager$ListenerWrapper;->doAlarm(Landroid/app/IAlarmCompleteListener;)V
+HPLandroid/app/AlarmManager$ListenerWrapper;->run()V
HSPLandroid/app/AlarmManager$ListenerWrapper;->setHandler(Landroid/os/Handler;)V
HSPLandroid/app/AlarmManager;-><init>(Landroid/app/IAlarmManager;Landroid/content/Context;)V
-HSPLandroid/app/AlarmManager;->access$000(Landroid/app/AlarmManager;)Landroid/app/IAlarmManager;
-HSPLandroid/app/AlarmManager;->access$100()Landroid/util/ArrayMap;
+PLandroid/app/AlarmManager;->access$000(Landroid/app/AlarmManager;)Landroid/app/IAlarmManager;
+PLandroid/app/AlarmManager;->access$100()Landroid/util/ArrayMap;
HSPLandroid/app/AlarmManager;->cancel(Landroid/app/AlarmManager$OnAlarmListener;)V
HSPLandroid/app/AlarmManager;->cancel(Landroid/app/PendingIntent;)V
+HSPLandroid/app/AlarmManager;->getNextAlarmClock()Landroid/app/AlarmManager$AlarmClockInfo;
HSPLandroid/app/AlarmManager;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo;
+PLandroid/app/AlarmManager;->getNextWakeFromIdleTime()J
HSPLandroid/app/AlarmManager;->legacyExactLength()J
+HSPLandroid/app/AlarmManager;->set(IJJJLandroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;Landroid/os/WorkSource;)V
+HSPLandroid/app/AlarmManager;->set(IJJJLandroid/app/PendingIntent;Landroid/os/WorkSource;)V
+PLandroid/app/AlarmManager;->set(IJJJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;Landroid/os/WorkSource;)V
HSPLandroid/app/AlarmManager;->set(IJLandroid/app/PendingIntent;)V
HSPLandroid/app/AlarmManager;->set(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
+HPLandroid/app/AlarmManager;->setAndAllowWhileIdle(IJLandroid/app/PendingIntent;)V
HSPLandroid/app/AlarmManager;->setExact(IJLandroid/app/PendingIntent;)V
-PLandroid/app/AlarmManager;->setExact(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
+HSPLandroid/app/AlarmManager;->setExact(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
HSPLandroid/app/AlarmManager;->setExactAndAllowWhileIdle(IJLandroid/app/PendingIntent;)V
+PLandroid/app/AlarmManager;->setIdleUntil(IJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
HSPLandroid/app/AlarmManager;->setImpl(IJJJILandroid/app/PendingIntent;Landroid/app/AlarmManager$OnAlarmListener;Ljava/lang/String;Landroid/os/Handler;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
HSPLandroid/app/AlarmManager;->setInexactRepeating(IJJLandroid/app/PendingIntent;)V
HSPLandroid/app/AlarmManager;->setRepeating(IJJLandroid/app/PendingIntent;)V
+PLandroid/app/AlarmManager;->setWindow(IJJLandroid/app/PendingIntent;)V
+PLandroid/app/AlarmManager;->setWindow(IJJLjava/lang/String;Landroid/app/AlarmManager$OnAlarmListener;Landroid/os/Handler;)V
HSPLandroid/app/AppCompatCallbacks;-><init>([J)V
HSPLandroid/app/AppCompatCallbacks;->install([J)V
HSPLandroid/app/AppCompatCallbacks;->isChangeEnabled(J)Z
HSPLandroid/app/AppCompatCallbacks;->reportChange(JI)V
HSPLandroid/app/AppComponentFactory;-><init>()V
+HSPLandroid/app/AppComponentFactory;->instantiateActivity(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/app/Activity;
HSPLandroid/app/AppComponentFactory;->instantiateApplication(Ljava/lang/ClassLoader;Ljava/lang/String;)Landroid/app/Application;
HSPLandroid/app/AppComponentFactory;->instantiateClassLoader(Ljava/lang/ClassLoader;Landroid/content/pm/ApplicationInfo;)Ljava/lang/ClassLoader;
HSPLandroid/app/AppComponentFactory;->instantiateProvider(Ljava/lang/ClassLoader;Ljava/lang/String;)Landroid/content/ContentProvider;
HSPLandroid/app/AppComponentFactory;->instantiateReceiver(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/content/BroadcastReceiver;
HSPLandroid/app/AppComponentFactory;->instantiateService(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/app/Service;
HSPLandroid/app/AppGlobals;->getInitialApplication()Landroid/app/Application;
+HSPLandroid/app/AppGlobals;->getIntCoreSetting(Ljava/lang/String;I)I
HSPLandroid/app/AppGlobals;->getPackageManager()Landroid/content/pm/IPackageManager;
+HSPLandroid/app/AppGlobals;->getPermissionManager()Landroid/permission/IPermissionManager;
+HSPLandroid/app/AppOpsManager$1;-><init>(Landroid/app/AppOpsManager;Landroid/app/AppOpsManager$OnOpChangedListener;)V
+HPLandroid/app/AppOpsManager$1;->opChanged(IILjava/lang/String;)V
HSPLandroid/app/AppOpsManager$2;-><init>(Landroid/app/AppOpsManager;Ljava/util/concurrent/Executor;Landroid/app/AppOpsManager$OnOpActiveChangedListener;)V
+HPLandroid/app/AppOpsManager$2;->lambda$opActiveChanged$0(Landroid/app/AppOpsManager$OnOpActiveChangedListener;IILjava/lang/String;Z)V
+HPLandroid/app/AppOpsManager$2;->opActiveChanged(IILjava/lang/String;Z)V
+HPLandroid/app/AppOpsManager$3;->opNoted(IILjava/lang/String;I)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;-><init>(I)V
+HPLandroid/app/AppOpsManager$HistoricalOp;-><init>(Landroid/app/AppOpsManager$HistoricalOp;)V
+PLandroid/app/AppOpsManager$HistoricalOp;-><init>(Landroid/app/AppOpsManager$HistoricalOp;Landroid/app/AppOpsManager$1;)V
+PLandroid/app/AppOpsManager$HistoricalOp;->access$3300(Landroid/app/AppOpsManager$HistoricalOp;D)Landroid/app/AppOpsManager$HistoricalOp;
+PLandroid/app/AppOpsManager$HistoricalOp;->access$3400(Landroid/app/AppOpsManager$HistoricalOp;Landroid/app/AppOpsManager$HistoricalOp;)V
+HPLandroid/app/AppOpsManager$HistoricalOp;->access$3500(Landroid/app/AppOpsManager$HistoricalOp;D)V
+PLandroid/app/AppOpsManager$HistoricalOp;->access$3600(Landroid/app/AppOpsManager$HistoricalOp;)Z
+HSPLandroid/app/AppOpsManager$HistoricalOp;->access$3700(Landroid/app/AppOpsManager$HistoricalOp;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;->access$3800(Landroid/app/AppOpsManager$HistoricalOp;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;->access$3900(Landroid/app/AppOpsManager$HistoricalOp;IIJ)V
+HPLandroid/app/AppOpsManager$HistoricalOp;->filter(D)V
+PLandroid/app/AppOpsManager$HistoricalOp;->getBackgroundAccessCount(I)J
+PLandroid/app/AppOpsManager$HistoricalOp;->getBackgroundAccessDuration(I)J
+PLandroid/app/AppOpsManager$HistoricalOp;->getBackgroundRejectCount(I)J
+PLandroid/app/AppOpsManager$HistoricalOp;->getForegroundAccessCount(I)J
+PLandroid/app/AppOpsManager$HistoricalOp;->getForegroundAccessDuration(I)J
+PLandroid/app/AppOpsManager$HistoricalOp;->getForegroundRejectCount(I)J
+PLandroid/app/AppOpsManager$HistoricalOp;->getOpCode()I
+PLandroid/app/AppOpsManager$HistoricalOp;->getOpName()Ljava/lang/String;
+HSPLandroid/app/AppOpsManager$HistoricalOp;->getOrCreateAccessCount()Landroid/util/LongSparseLongArray;
+HSPLandroid/app/AppOpsManager$HistoricalOp;->getOrCreateAccessDuration()Landroid/util/LongSparseLongArray;
+HSPLandroid/app/AppOpsManager$HistoricalOp;->getOrCreateRejectCount()Landroid/util/LongSparseLongArray;
+PLandroid/app/AppOpsManager$HistoricalOp;->hasData(Landroid/util/LongSparseLongArray;)Z
+HSPLandroid/app/AppOpsManager$HistoricalOp;->increaseAccessCount(IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;->increaseAccessDuration(IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;->increaseCount(Landroid/util/LongSparseLongArray;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOp;->increaseRejectCount(IIJ)V
+PLandroid/app/AppOpsManager$HistoricalOp;->isEmpty()Z
+PLandroid/app/AppOpsManager$HistoricalOp;->lambda$DkVcBvqB32SMHlxw0sWQPh3GL1A(Landroid/app/AppOpsManager$HistoricalOp;)Landroid/util/LongSparseLongArray;
+PLandroid/app/AppOpsManager$HistoricalOp;->lambda$HUOLFYs8TiaQIOXcrq6JzjxA6gs(Landroid/app/AppOpsManager$HistoricalOp;)Landroid/util/LongSparseLongArray;
+PLandroid/app/AppOpsManager$HistoricalOp;->lambda$Vs6pDL0wjOBTquwNnreWVbPQrn4(Landroid/app/AppOpsManager$HistoricalOp;)Landroid/util/LongSparseLongArray;
+PLandroid/app/AppOpsManager$HistoricalOp;->merge(Landroid/app/AppOpsManager$HistoricalOp;)V
+HPLandroid/app/AppOpsManager$HistoricalOp;->merge(Ljava/util/function/Supplier;Landroid/util/LongSparseLongArray;)V
+HPLandroid/app/AppOpsManager$HistoricalOp;->scale(Landroid/util/LongSparseLongArray;D)V
+PLandroid/app/AppOpsManager$HistoricalOp;->splice(D)Landroid/app/AppOpsManager$HistoricalOp;
+HPLandroid/app/AppOpsManager$HistoricalOp;->splice(Landroid/util/LongSparseLongArray;Ljava/util/function/Supplier;D)V
+HSPLandroid/app/AppOpsManager$HistoricalOps;-><init>(JJ)V
+HPLandroid/app/AppOpsManager$HistoricalOps;-><init>(Landroid/app/AppOpsManager$HistoricalOps;)V
+HPLandroid/app/AppOpsManager$HistoricalOps;->filter(ILjava/lang/String;[Ljava/lang/String;JJ)V
+PLandroid/app/AppOpsManager$HistoricalOps;->getBeginTimeMillis()J
+PLandroid/app/AppOpsManager$HistoricalOps;->getDurationMillis()J
+PLandroid/app/AppOpsManager$HistoricalOps;->getEndTimeMillis()J
+HSPLandroid/app/AppOpsManager$HistoricalOps;->getOrCreateHistoricalUidOps(I)Landroid/app/AppOpsManager$HistoricalUidOps;
+PLandroid/app/AppOpsManager$HistoricalOps;->getUidCount()I
+PLandroid/app/AppOpsManager$HistoricalOps;->getUidOps(I)Landroid/app/AppOpsManager$HistoricalUidOps;
+HPLandroid/app/AppOpsManager$HistoricalOps;->getUidOpsAt(I)Landroid/app/AppOpsManager$HistoricalUidOps;
+HSPLandroid/app/AppOpsManager$HistoricalOps;->increaseAccessCount(IILjava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOps;->increaseAccessDuration(IILjava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalOps;->increaseRejectCount(IILjava/lang/String;IIJ)V
+HPLandroid/app/AppOpsManager$HistoricalOps;->isEmpty()Z
+HPLandroid/app/AppOpsManager$HistoricalOps;->merge(Landroid/app/AppOpsManager$HistoricalOps;)V
+PLandroid/app/AppOpsManager$HistoricalOps;->round(D)D
+HSPLandroid/app/AppOpsManager$HistoricalOps;->setEndTime(J)V
+PLandroid/app/AppOpsManager$HistoricalOps;->splice(DZ)Landroid/app/AppOpsManager$HistoricalOps;
+HPLandroid/app/AppOpsManager$HistoricalOpsRequest$Builder;-><init>(JJ)V
+PLandroid/app/AppOpsManager$HistoricalOpsRequest$Builder;->build()Landroid/app/AppOpsManager$HistoricalOpsRequest;
+PLandroid/app/AppOpsManager$HistoricalOpsRequest$Builder;->setFlags(I)Landroid/app/AppOpsManager$HistoricalOpsRequest$Builder;
+PLandroid/app/AppOpsManager$HistoricalOpsRequest$Builder;->setOpNames(Ljava/util/List;)Landroid/app/AppOpsManager$HistoricalOpsRequest$Builder;
+PLandroid/app/AppOpsManager$HistoricalOpsRequest$Builder;->setPackageName(Ljava/lang/String;)Landroid/app/AppOpsManager$HistoricalOpsRequest$Builder;
+PLandroid/app/AppOpsManager$HistoricalOpsRequest$Builder;->setUid(I)Landroid/app/AppOpsManager$HistoricalOpsRequest$Builder;
+PLandroid/app/AppOpsManager$HistoricalOpsRequest;-><init>(ILjava/lang/String;Ljava/util/List;JJI)V
+PLandroid/app/AppOpsManager$HistoricalOpsRequest;-><init>(ILjava/lang/String;Ljava/util/List;JJILandroid/app/AppOpsManager$1;)V
+PLandroid/app/AppOpsManager$HistoricalOpsRequest;->access$4500(Landroid/app/AppOpsManager$HistoricalOpsRequest;)I
+PLandroid/app/AppOpsManager$HistoricalOpsRequest;->access$4600(Landroid/app/AppOpsManager$HistoricalOpsRequest;)Ljava/lang/String;
+PLandroid/app/AppOpsManager$HistoricalOpsRequest;->access$4700(Landroid/app/AppOpsManager$HistoricalOpsRequest;)Ljava/util/List;
+PLandroid/app/AppOpsManager$HistoricalOpsRequest;->access$4800(Landroid/app/AppOpsManager$HistoricalOpsRequest;)J
+PLandroid/app/AppOpsManager$HistoricalOpsRequest;->access$4900(Landroid/app/AppOpsManager$HistoricalOpsRequest;)J
+PLandroid/app/AppOpsManager$HistoricalOpsRequest;->access$5000(Landroid/app/AppOpsManager$HistoricalOpsRequest;)I
+HPLandroid/app/AppOpsManager$HistoricalPackageOps;-><init>(Landroid/app/AppOpsManager$HistoricalPackageOps;)V
+PLandroid/app/AppOpsManager$HistoricalPackageOps;-><init>(Landroid/app/AppOpsManager$HistoricalPackageOps;Landroid/app/AppOpsManager$1;)V
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;-><init>(Ljava/lang/String;)V
+PLandroid/app/AppOpsManager$HistoricalPackageOps;->access$2300(Landroid/app/AppOpsManager$HistoricalPackageOps;D)Landroid/app/AppOpsManager$HistoricalPackageOps;
+PLandroid/app/AppOpsManager$HistoricalPackageOps;->access$2400(Landroid/app/AppOpsManager$HistoricalPackageOps;Landroid/app/AppOpsManager$HistoricalPackageOps;)V
+PLandroid/app/AppOpsManager$HistoricalPackageOps;->access$2500(Landroid/app/AppOpsManager$HistoricalPackageOps;[Ljava/lang/String;D)V
+PLandroid/app/AppOpsManager$HistoricalPackageOps;->access$2600(Landroid/app/AppOpsManager$HistoricalPackageOps;)Z
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->access$2700(Landroid/app/AppOpsManager$HistoricalPackageOps;IIIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->access$2800(Landroid/app/AppOpsManager$HistoricalPackageOps;IIIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->access$2900(Landroid/app/AppOpsManager$HistoricalPackageOps;IIIJ)V
+HPLandroid/app/AppOpsManager$HistoricalPackageOps;->filter([Ljava/lang/String;D)V
+PLandroid/app/AppOpsManager$HistoricalPackageOps;->getOp(Ljava/lang/String;)Landroid/app/AppOpsManager$HistoricalOp;
+HPLandroid/app/AppOpsManager$HistoricalPackageOps;->getOpAt(I)Landroid/app/AppOpsManager$HistoricalOp;
+HPLandroid/app/AppOpsManager$HistoricalPackageOps;->getOpCount()I
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->getOrCreateHistoricalOp(I)Landroid/app/AppOpsManager$HistoricalOp;
+PLandroid/app/AppOpsManager$HistoricalPackageOps;->getPackageName()Ljava/lang/String;
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->increaseAccessCount(IIIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->increaseAccessDuration(IIIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalPackageOps;->increaseRejectCount(IIIJ)V
+PLandroid/app/AppOpsManager$HistoricalPackageOps;->isEmpty()Z
+HPLandroid/app/AppOpsManager$HistoricalPackageOps;->merge(Landroid/app/AppOpsManager$HistoricalPackageOps;)V
+PLandroid/app/AppOpsManager$HistoricalPackageOps;->splice(D)Landroid/app/AppOpsManager$HistoricalPackageOps;
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;-><init>(I)V
+HPLandroid/app/AppOpsManager$HistoricalUidOps;-><init>(Landroid/app/AppOpsManager$HistoricalUidOps;)V
+PLandroid/app/AppOpsManager$HistoricalUidOps;-><init>(Landroid/app/AppOpsManager$HistoricalUidOps;Landroid/app/AppOpsManager$1;)V
+PLandroid/app/AppOpsManager$HistoricalUidOps;->access$1200(Landroid/app/AppOpsManager$HistoricalUidOps;D)Landroid/app/AppOpsManager$HistoricalUidOps;
+PLandroid/app/AppOpsManager$HistoricalUidOps;->access$1300(Landroid/app/AppOpsManager$HistoricalUidOps;Landroid/app/AppOpsManager$HistoricalUidOps;)V
+PLandroid/app/AppOpsManager$HistoricalUidOps;->access$1400(Landroid/app/AppOpsManager$HistoricalUidOps;Ljava/lang/String;[Ljava/lang/String;D)V
+PLandroid/app/AppOpsManager$HistoricalUidOps;->access$1500(Landroid/app/AppOpsManager$HistoricalUidOps;)Z
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->access$1600(Landroid/app/AppOpsManager$HistoricalUidOps;ILjava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->access$1700(Landroid/app/AppOpsManager$HistoricalUidOps;ILjava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->access$1800(Landroid/app/AppOpsManager$HistoricalUidOps;ILjava/lang/String;IIJ)V
+HPLandroid/app/AppOpsManager$HistoricalUidOps;->filter(Ljava/lang/String;[Ljava/lang/String;D)V
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->getOrCreateHistoricalPackageOps(Ljava/lang/String;)Landroid/app/AppOpsManager$HistoricalPackageOps;
+HPLandroid/app/AppOpsManager$HistoricalUidOps;->getPackageCount()I
+PLandroid/app/AppOpsManager$HistoricalUidOps;->getPackageOps(Ljava/lang/String;)Landroid/app/AppOpsManager$HistoricalPackageOps;
+HPLandroid/app/AppOpsManager$HistoricalUidOps;->getPackageOpsAt(I)Landroid/app/AppOpsManager$HistoricalPackageOps;
+PLandroid/app/AppOpsManager$HistoricalUidOps;->getUid()I
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->increaseAccessCount(ILjava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->increaseAccessDuration(ILjava/lang/String;IIJ)V
+HSPLandroid/app/AppOpsManager$HistoricalUidOps;->increaseRejectCount(ILjava/lang/String;IIJ)V
+PLandroid/app/AppOpsManager$HistoricalUidOps;->isEmpty()Z
+HPLandroid/app/AppOpsManager$HistoricalUidOps;->merge(Landroid/app/AppOpsManager$HistoricalUidOps;)V
+PLandroid/app/AppOpsManager$HistoricalUidOps;->splice(D)Landroid/app/AppOpsManager$HistoricalUidOps;
+HSPLandroid/app/AppOpsManager$OnOpChangedInternalListener;-><init>()V
+PLandroid/app/AppOpsManager$OnOpChangedInternalListener;->onOpChanged(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/AppOpsManager$OpEntry$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AppOpsManager$OpEntry;
+HSPLandroid/app/AppOpsManager$OpEntry$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/app/AppOpsManager$OpEntry;-><init>(II[Landroid/util/Pair;)V
+HSPLandroid/app/AppOpsManager$OpEntry;->access$200(Landroid/app/AppOpsManager$OpEntry;)I
+HSPLandroid/app/AppOpsManager$OpEntry;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AppOpsManager$OpEntry;
+HSPLandroid/app/AppOpsManager$OpEntry;->getDuration()J
+PLandroid/app/AppOpsManager$OpEntry;->getFeatures()Ljava/util/Map;
+HSPLandroid/app/AppOpsManager$OpEntry;->getLastAccessBackgroundTime(I)J
+HSPLandroid/app/AppOpsManager$OpEntry;->getLastAccessTime(I)J
+HSPLandroid/app/AppOpsManager$OpEntry;->getLastDuration(III)J
+HSPLandroid/app/AppOpsManager$OpEntry;->getLastRejectTime(I)J
+HSPLandroid/app/AppOpsManager$OpEntry;->getMaxOfFeatures(Ljava/util/function/ToLongFunction;)J
+PLandroid/app/AppOpsManager$OpEntry;->getMode()I
HSPLandroid/app/AppOpsManager$OpEntry;->getOp()I
+HSPLandroid/app/AppOpsManager$OpEntry;->getRejectTime()J
+HSPLandroid/app/AppOpsManager$OpEntry;->getTime()J
+HPLandroid/app/AppOpsManager$OpEntry;->isRunning()Z
+HSPLandroid/app/AppOpsManager$OpEntry;->lambda$getLastAccessBackgroundTime$2(ILandroid/app/AppOpsManager$OpFeatureEntry;)J
+HSPLandroid/app/AppOpsManager$OpEntry;->lambda$getLastAccessTime$0(ILandroid/app/AppOpsManager$OpFeatureEntry;)J
+HSPLandroid/app/AppOpsManager$OpEntry;->lambda$getLastDuration$10(IIILandroid/app/AppOpsManager$OpFeatureEntry;)J
+HSPLandroid/app/AppOpsManager$OpEntry;->lambda$getLastRejectTime$4(ILandroid/app/AppOpsManager$OpFeatureEntry;)J
+HPLandroid/app/AppOpsManager$OpEntry;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/AppOpsManager$OpFeatureEntry$Builder;-><init>(ZLandroid/util/LongSparseLongArray;Landroid/util/LongSparseLongArray;Landroid/util/LongSparseLongArray;Landroid/util/LongSparseLongArray;Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;)V
HSPLandroid/app/AppOpsManager$OpFeatureEntry$Builder;->build()Landroid/app/AppOpsManager$OpFeatureEntry;
HSPLandroid/app/AppOpsManager$OpFeatureEntry$Builder;->setParent(Landroid/app/AppOpsManager$OpEntry;)Landroid/app/AppOpsManager$OpFeatureEntry$Builder;
HSPLandroid/app/AppOpsManager$OpFeatureEntry;-><init>(Landroid/app/AppOpsManager$OpEntry;ZLandroid/util/LongSparseLongArray;Landroid/util/LongSparseLongArray;Landroid/util/LongSparseLongArray;Landroid/util/LongSparseLongArray;Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;)V
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->access$700(Landroid/app/AppOpsManager$OpFeatureEntry;)Z
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->collectKeys()Landroid/util/LongSparseArray;
+HSPLandroid/app/AppOpsManager$OpFeatureEntry;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AppOpsManager$OpFeatureEntry$Builder;
+HSPLandroid/app/AppOpsManager$OpFeatureEntry;->getLastAccessBackgroundTime(I)J
+HSPLandroid/app/AppOpsManager$OpFeatureEntry;->getLastAccessTime(I)J
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->getLastAccessTime(III)J
+HSPLandroid/app/AppOpsManager$OpFeatureEntry;->getLastDuration(III)J
+HSPLandroid/app/AppOpsManager$OpFeatureEntry;->getLastRejectTime(I)J
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->getLastRejectTime(III)J
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->getProxyFeatureId(II)Ljava/lang/String;
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->getProxyPackageName(II)Ljava/lang/String;
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->getProxyUid(II)I
+HPLandroid/app/AppOpsManager$OpFeatureEntry;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/AppOpsManager$PackageOps$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AppOpsManager$PackageOps;
+HSPLandroid/app/AppOpsManager$PackageOps$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/AppOpsManager$PackageOps;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/AppOpsManager$PackageOps;-><init>(Ljava/lang/String;ILjava/util/List;)V
HSPLandroid/app/AppOpsManager$PackageOps;->getOps()Ljava/util/List;
+HSPLandroid/app/AppOpsManager$PackageOps;->getPackageName()Ljava/lang/String;
+HSPLandroid/app/AppOpsManager$PackageOps;->getUid()I
+HPLandroid/app/AppOpsManager$PackageOps;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/AppOpsManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IAppOpsService;)V
+HPLandroid/app/AppOpsManager;->access$000(Landroid/util/LongSparseLongArray;Landroid/util/LongSparseArray;)Landroid/util/LongSparseArray;
+HSPLandroid/app/AppOpsManager;->access$100(Landroid/util/LongSparseLongArray;III)J
+HSPLandroid/app/AppOpsManager;->access$300(Landroid/util/LongSparseLongArray;III)J
+HPLandroid/app/AppOpsManager;->access$400(Landroid/util/LongSparseLongArray;III)J
+HPLandroid/app/AppOpsManager;->access$500(Landroid/util/LongSparseArray;III)Ljava/lang/String;
+HSPLandroid/app/AppOpsManager;->access$600()[Ljava/lang/String;
+PLandroid/app/AppOpsManager;->checkAudioOpNoThrow(IIILjava/lang/String;)I
HSPLandroid/app/AppOpsManager;->checkOp(IILjava/lang/String;)I
HSPLandroid/app/AppOpsManager;->checkOpNoThrow(IILjava/lang/String;)I
HSPLandroid/app/AppOpsManager;->checkOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I
HSPLandroid/app/AppOpsManager;->checkPackage(ILjava/lang/String;)V
+HPLandroid/app/AppOpsManager;->collectKeys(Landroid/util/LongSparseLongArray;Landroid/util/LongSparseArray;)Landroid/util/LongSparseArray;
+HSPLandroid/app/AppOpsManager;->extractFlagsFromKey(J)I
+HSPLandroid/app/AppOpsManager;->extractUidStateFromKey(J)I
+HPLandroid/app/AppOpsManager;->findFirstNonNegativeForFlagsInStates(Landroid/util/LongSparseLongArray;III)J
+HPLandroid/app/AppOpsManager;->findFirstNonNullForFlagsInStates(Landroid/util/LongSparseArray;III)Ljava/lang/String;
+HSPLandroid/app/AppOpsManager;->finishOp(IILjava/lang/String;)V
+HSPLandroid/app/AppOpsManager;->finishOp(IILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/AppOpsManager;->finishOp(Ljava/lang/String;ILjava/lang/String;)V
+HPLandroid/app/AppOpsManager;->flagsToString(I)Ljava/lang/String;
+HPLandroid/app/AppOpsManager;->getFlagName(I)Ljava/lang/String;
HSPLandroid/app/AppOpsManager;->getFormattedStackTrace()Ljava/lang/String;
+PLandroid/app/AppOpsManager;->getHistoricalOps(Landroid/app/AppOpsManager$HistoricalOpsRequest;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V
+HSPLandroid/app/AppOpsManager;->getOpsForPackage(ILjava/lang/String;[I)Ljava/util/List;
HSPLandroid/app/AppOpsManager;->getPackagesForOps([I)Ljava/util/List;
+HSPLandroid/app/AppOpsManager;->getPackagesForOps([Ljava/lang/String;)Ljava/util/List;
+HSPLandroid/app/AppOpsManager;->getToken(Lcom/android/internal/app/IAppOpsService;)Landroid/os/IBinder;
+HPLandroid/app/AppOpsManager;->getUidStateName(I)Ljava/lang/String;
HSPLandroid/app/AppOpsManager;->isCollectingNotedAppOps()Z
+PLandroid/app/AppOpsManager;->isOperationActive(IILjava/lang/String;)Z
+HPLandroid/app/AppOpsManager;->keyToString(J)Ljava/lang/String;
+PLandroid/app/AppOpsManager;->lambda$getHistoricalOps$0(Ljava/util/function/Consumer;Landroid/app/AppOpsManager$HistoricalOps;)V
+PLandroid/app/AppOpsManager;->lambda$getHistoricalOps$1(Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;Landroid/os/Bundle;)V
+HSPLandroid/app/AppOpsManager;->makeKey(II)J
HSPLandroid/app/AppOpsManager;->markAppOpNoted(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/AppOpsManager;->maxForFlagsInStates(Landroid/util/LongSparseLongArray;III)J
+HPLandroid/app/AppOpsManager;->modeToName(I)Ljava/lang/String;
+HSPLandroid/app/AppOpsManager;->noteOp(IILjava/lang/String;)I
HSPLandroid/app/AppOpsManager;->noteOp(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+PLandroid/app/AppOpsManager;->noteOp(Ljava/lang/String;ILjava/lang/String;)I
HSPLandroid/app/AppOpsManager;->noteOp(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+PLandroid/app/AppOpsManager;->noteOpNoThrow(IILjava/lang/String;)I
HSPLandroid/app/AppOpsManager;->noteOpNoThrow(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
-PLandroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I
-HPLandroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->noteOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
HSPLandroid/app/AppOpsManager;->noteProxyOp(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)I
HSPLandroid/app/AppOpsManager;->noteProxyOpNoThrow(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->noteProxyOpNoThrow(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->noteProxyOpNoThrow(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->opToDefaultMode(I)I
+HPLandroid/app/AppOpsManager;->opToName(I)Ljava/lang/String;
+HSPLandroid/app/AppOpsManager;->opToPermission(I)Ljava/lang/String;
+HSPLandroid/app/AppOpsManager;->opToPublicName(I)Ljava/lang/String;
+PLandroid/app/AppOpsManager;->opToRestriction(I)Ljava/lang/String;
+HSPLandroid/app/AppOpsManager;->opToSwitch(I)I
HSPLandroid/app/AppOpsManager;->pauseNotedAppOpsCollection()Landroid/app/AppOpsManager$PausedNotedAppOpsCollection;
HSPLandroid/app/AppOpsManager;->permissionToOp(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/app/AppOpsManager;->permissionToOpCode(Ljava/lang/String;)I
HSPLandroid/app/AppOpsManager;->prefixParcelWithAppOpsIfNeeded(Landroid/os/Parcel;)V
+HSPLandroid/app/AppOpsManager;->resolveFirstUnrestrictedUidState(I)I
+HSPLandroid/app/AppOpsManager;->resolveLastRestrictedUidState(I)I
+HSPLandroid/app/AppOpsManager;->setMode(Ljava/lang/String;ILjava/lang/String;I)V
+HSPLandroid/app/AppOpsManager;->setRestriction(III[Ljava/lang/String;)V
+HSPLandroid/app/AppOpsManager;->setUidMode(III)V
+PLandroid/app/AppOpsManager;->setUidMode(Ljava/lang/String;II)V
+HSPLandroid/app/AppOpsManager;->startOpNoThrow(IILjava/lang/String;)I
+PLandroid/app/AppOpsManager;->startOpNoThrow(IILjava/lang/String;Z)I
+HSPLandroid/app/AppOpsManager;->startOpNoThrow(IILjava/lang/String;ZLjava/lang/String;Ljava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->startOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->startOpNoThrow(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
HSPLandroid/app/AppOpsManager;->startWatchingActive([Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/app/AppOpsManager$OnOpActiveChangedListener;)V
+HSPLandroid/app/AppOpsManager;->startWatchingMode(ILjava/lang/String;ILandroid/app/AppOpsManager$OnOpChangedListener;)V
+HSPLandroid/app/AppOpsManager;->startWatchingMode(ILjava/lang/String;Landroid/app/AppOpsManager$OnOpChangedListener;)V
+HSPLandroid/app/AppOpsManager;->startWatchingMode(Ljava/lang/String;Ljava/lang/String;ILandroid/app/AppOpsManager$OnOpChangedListener;)V
+HSPLandroid/app/AppOpsManager;->startWatchingMode(Ljava/lang/String;Ljava/lang/String;Landroid/app/AppOpsManager$OnOpChangedListener;)V
+HSPLandroid/app/AppOpsManager;->stopWatchingMode(Landroid/app/AppOpsManager$OnOpChangedListener;)V
HSPLandroid/app/AppOpsManager;->strOpToOp(Ljava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->sumForFlagsInStates(Landroid/util/LongSparseLongArray;III)J
+HSPLandroid/app/AppOpsManager;->unsafeCheckOp(Ljava/lang/String;ILjava/lang/String;)I
HSPLandroid/app/AppOpsManager;->unsafeCheckOpNoThrow(Ljava/lang/String;ILjava/lang/String;)I
+HSPLandroid/app/AppOpsManager;->unsafeCheckOpRaw(Ljava/lang/String;ILjava/lang/String;)I
+PLandroid/app/AppOpsManager;->unsafeCheckOpRawNoThrow(Ljava/lang/String;ILjava/lang/String;)I
+HSPLandroid/app/AppOpsManagerInternal;-><init>()V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostCreated(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostDestroyed(Landroid/app/Activity;)V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostPaused(Landroid/app/Activity;)V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostResumed(Landroid/app/Activity;)V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostStarted(Landroid/app/Activity;)V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPostStopped(Landroid/app/Activity;)V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPreCreated(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPreDestroyed(Landroid/app/Activity;)V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPrePaused(Landroid/app/Activity;)V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPreResumed(Landroid/app/Activity;)V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPreSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPreStarted(Landroid/app/Activity;)V
+HSPLandroid/app/Application$ActivityLifecycleCallbacks;->onActivityPreStopped(Landroid/app/Activity;)V
HSPLandroid/app/Application;-><init>()V
HSPLandroid/app/Application;->attach(Landroid/content/Context;)V
+HSPLandroid/app/Application;->collectActivityLifecycleCallbacks()[Ljava/lang/Object;
HSPLandroid/app/Application;->collectComponentCallbacks()[Ljava/lang/Object;
+HSPLandroid/app/Application;->dispatchActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Application;->dispatchActivityDestroyed(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivityPaused(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivityPostCreated(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Application;->dispatchActivityPostDestroyed(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivityPostPaused(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivityPostResumed(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivityPostSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Application;->dispatchActivityPostStarted(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivityPostStopped(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivityPreCreated(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Application;->dispatchActivityPreDestroyed(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivityPrePaused(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivityPreResumed(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivityPreSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Application;->dispatchActivityPreStarted(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivityPreStopped(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivityResumed(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivitySaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Application;->dispatchActivityStarted(Landroid/app/Activity;)V
+HSPLandroid/app/Application;->dispatchActivityStopped(Landroid/app/Activity;)V
+HPLandroid/app/Application;->dispatchOnProvideAssistData(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Application;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient;
HSPLandroid/app/Application;->getProcessName()Ljava/lang/String;
HSPLandroid/app/Application;->onConfigurationChanged(Landroid/content/res/Configuration;)V
HSPLandroid/app/Application;->onCreate()V
+PLandroid/app/Application;->onLowMemory()V
HSPLandroid/app/Application;->onTrimMemory(I)V
HSPLandroid/app/Application;->registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V
HSPLandroid/app/Application;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V
HSPLandroid/app/Application;->unregisterActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V
-HSPLandroid/app/Application;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V
+HPLandroid/app/Application;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V
+HSPLandroid/app/ApplicationErrorReport$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ApplicationErrorReport;
+HSPLandroid/app/ApplicationErrorReport$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/ApplicationErrorReport$CrashInfo;-><init>()V
+HSPLandroid/app/ApplicationErrorReport$CrashInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/app/ApplicationErrorReport$CrashInfo;-><init>(Ljava/lang/Throwable;)V
HSPLandroid/app/ApplicationErrorReport$CrashInfo;->sanitizeString(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/app/ApplicationErrorReport$CrashInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/ApplicationErrorReport$ParcelableCrashInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;
+PLandroid/app/ApplicationErrorReport$ParcelableCrashInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;-><init>(Ljava/lang/Throwable;)V
+HSPLandroid/app/ApplicationErrorReport;-><init>()V
+HSPLandroid/app/ApplicationErrorReport;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/ApplicationErrorReport;->getErrorReportReceiver(Landroid/content/Context;Ljava/lang/String;I)Landroid/content/ComponentName;
+PLandroid/app/ApplicationErrorReport;->getErrorReportReceiver(Landroid/content/pm/PackageManager;Ljava/lang/String;Ljava/lang/String;)Landroid/content/ComponentName;
+HSPLandroid/app/ApplicationErrorReport;->readFromParcel(Landroid/os/Parcel;)V
+PLandroid/app/ApplicationErrorReport;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/ApplicationLoaders$CachedClassLoader;-><init>()V
HSPLandroid/app/ApplicationLoaders$CachedClassLoader;-><init>(Landroid/app/ApplicationLoaders$1;)V
HSPLandroid/app/ApplicationLoaders;->addNative(Ljava/lang/ClassLoader;Ljava/util/Collection;)V
HSPLandroid/app/ApplicationLoaders;->createAndCacheNonBootclasspathSystemClassLoader(Landroid/content/pm/SharedLibraryInfo;)V
HSPLandroid/app/ApplicationLoaders;->createAndCacheNonBootclasspathSystemClassLoaders([Landroid/content/pm/SharedLibraryInfo;)V
HSPLandroid/app/ApplicationLoaders;->getCachedNonBootclasspathSystemLib(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
+HSPLandroid/app/ApplicationLoaders;->getClassLoader(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/ClassLoader;
HSPLandroid/app/ApplicationLoaders;->getClassLoader(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
HSPLandroid/app/ApplicationLoaders;->getClassLoaderWithSharedLibraries(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
HSPLandroid/app/ApplicationLoaders;->getDefault()Landroid/app/ApplicationLoaders;
HSPLandroid/app/ApplicationLoaders;->getSharedLibraryClassLoaderWithSharedLibraries(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
HSPLandroid/app/ApplicationLoaders;->sharedLibrariesEquals(Ljava/util/List;Ljava/util/List;)Z
+HSPLandroid/app/ApplicationPackageManager$OnPermissionsChangeListenerDelegate;-><init>(Landroid/app/ApplicationPackageManager;Landroid/content/pm/PackageManager$OnPermissionsChangedListener;Landroid/os/Looper;)V
+PLandroid/app/ApplicationPackageManager$OnPermissionsChangeListenerDelegate;->handleMessage(Landroid/os/Message;)Z
+PLandroid/app/ApplicationPackageManager$OnPermissionsChangeListenerDelegate;->onPermissionsChanged(I)V
+HSPLandroid/app/ApplicationPackageManager$ResourceName;-><init>(Ljava/lang/String;I)V
HSPLandroid/app/ApplicationPackageManager$ResourceName;->equals(Ljava/lang/Object;)Z
HSPLandroid/app/ApplicationPackageManager$ResourceName;->hashCode()I
HSPLandroid/app/ApplicationPackageManager;-><init>(Landroid/app/ContextImpl;Landroid/content/pm/IPackageManager;Landroid/permission/IPermissionManager;)V
+HSPLandroid/app/ApplicationPackageManager;->addOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V
+HSPLandroid/app/ApplicationPackageManager;->addPermissionAsync(Landroid/content/pm/PermissionInfo;)Z
+HPLandroid/app/ApplicationPackageManager;->canonicalToCurrentPackageNames([Ljava/lang/String;)[Ljava/lang/String;
HSPLandroid/app/ApplicationPackageManager;->checkPermission(Ljava/lang/String;Ljava/lang/String;)I
+PLandroid/app/ApplicationPackageManager;->checkSignatures(II)I
HSPLandroid/app/ApplicationPackageManager;->checkSignatures(Ljava/lang/String;Ljava/lang/String;)I
HSPLandroid/app/ApplicationPackageManager;->configurationChanged()V
+HPLandroid/app/ApplicationPackageManager;->freeStorageAndNotify(Ljava/lang/String;JLandroid/content/pm/IPackageDataObserver;)V
HSPLandroid/app/ApplicationPackageManager;->getActivityInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;
+HSPLandroid/app/ApplicationPackageManager;->getAllPermissionGroups(I)Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->getApplicationEnabledSetting(Ljava/lang/String;)I
+HSPLandroid/app/ApplicationPackageManager;->getApplicationIcon(Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
HSPLandroid/app/ApplicationPackageManager;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
HSPLandroid/app/ApplicationPackageManager;->getApplicationInfoAsUser(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
HSPLandroid/app/ApplicationPackageManager;->getApplicationLabel(Landroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;
+HPLandroid/app/ApplicationPackageManager;->getArtManager()Landroid/content/pm/dex/ArtManager;
+HSPLandroid/app/ApplicationPackageManager;->getAttentionServicePackageName()Ljava/lang/String;
+HSPLandroid/app/ApplicationPackageManager;->getBadgedDrawable(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/Rect;Z)Landroid/graphics/drawable/Drawable;
HSPLandroid/app/ApplicationPackageManager;->getCachedIcon(Landroid/app/ApplicationPackageManager$ResourceName;)Landroid/graphics/drawable/Drawable;
HSPLandroid/app/ApplicationPackageManager;->getCachedString(Landroid/app/ApplicationPackageManager$ResourceName;)Ljava/lang/CharSequence;
+HSPLandroid/app/ApplicationPackageManager;->getChangedPackages(I)Landroid/content/pm/ChangedPackages;
HSPLandroid/app/ApplicationPackageManager;->getComponentEnabledSetting(Landroid/content/ComponentName;)I
+PLandroid/app/ApplicationPackageManager;->getContentCaptureServicePackageName()Ljava/lang/String;
+HSPLandroid/app/ApplicationPackageManager;->getDeclaredSharedLibraries(Ljava/lang/String;I)Ljava/util/List;
+PLandroid/app/ApplicationPackageManager;->getDefaultActivityIcon()Landroid/graphics/drawable/Drawable;
HSPLandroid/app/ApplicationPackageManager;->getDrawable(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
+HPLandroid/app/ApplicationPackageManager;->getDrawableForDensity(II)Landroid/graphics/drawable/Drawable;
+PLandroid/app/ApplicationPackageManager;->getHomeActivities(Ljava/util/List;)Landroid/content/ComponentName;
HSPLandroid/app/ApplicationPackageManager;->getInstalledApplications(I)Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->getInstalledApplicationsAsUser(II)Ljava/util/List;
+HSPLandroid/app/ApplicationPackageManager;->getInstalledModules(I)Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->getInstalledPackages(I)Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->getInstalledPackagesAsUser(II)Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/app/ApplicationPackageManager;->getInstantAppResolverSettingsComponent()Landroid/content/ComponentName;
+HSPLandroid/app/ApplicationPackageManager;->getInstantApps()Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->getLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;
+HSPLandroid/app/ApplicationPackageManager;->getModuleInfo(Ljava/lang/String;I)Landroid/content/pm/ModuleInfo;
HSPLandroid/app/ApplicationPackageManager;->getNameForUid(I)Ljava/lang/String;
HSPLandroid/app/ApplicationPackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
HSPLandroid/app/ApplicationPackageManager;->getPackageInfoAsUser(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
HSPLandroid/app/ApplicationPackageManager;->getPackageInstaller()Landroid/content/pm/PackageInstaller;
HSPLandroid/app/ApplicationPackageManager;->getPackageUid(Ljava/lang/String;I)I
+HSPLandroid/app/ApplicationPackageManager;->getPackageUidAsUser(Ljava/lang/String;I)I
HSPLandroid/app/ApplicationPackageManager;->getPackageUidAsUser(Ljava/lang/String;II)I
HSPLandroid/app/ApplicationPackageManager;->getPackagesForUid(I)[Ljava/lang/String;
+HSPLandroid/app/ApplicationPackageManager;->getPackagesHoldingPermissions([Ljava/lang/String;I)Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->getPermissionControllerPackageName()Ljava/lang/String;
HSPLandroid/app/ApplicationPackageManager;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)I
+HSPLandroid/app/ApplicationPackageManager;->getPermissionGroupInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionGroupInfo;
HSPLandroid/app/ApplicationPackageManager;->getPermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
+PLandroid/app/ApplicationPackageManager;->getPrimaryStorageCurrentVolume()Landroid/os/storage/VolumeInfo;
+HPLandroid/app/ApplicationPackageManager;->getProfileIconForDensity(Landroid/os/UserHandle;II)Landroid/graphics/drawable/Drawable;
HSPLandroid/app/ApplicationPackageManager;->getProviderInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ProviderInfo;
HSPLandroid/app/ApplicationPackageManager;->getReceiverInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;
HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/Resources;
HSPLandroid/app/ApplicationPackageManager;->getResourcesForApplication(Ljava/lang/String;)Landroid/content/res/Resources;
+PLandroid/app/ApplicationPackageManager;->getResourcesForApplicationAsUser(Ljava/lang/String;I)Landroid/content/res/Resources;
HSPLandroid/app/ApplicationPackageManager;->getServiceInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;
-HSPLandroid/app/ApplicationPackageManager;->getSystemTextClassifierPackages()[Ljava/lang/String;
+PLandroid/app/ApplicationPackageManager;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String;
+HPLandroid/app/ApplicationPackageManager;->getSetupWizardPackageName()Ljava/lang/String;
+HPLandroid/app/ApplicationPackageManager;->getSharedLibraries(I)Ljava/util/List;
+HPLandroid/app/ApplicationPackageManager;->getSharedLibrariesAsUser(II)Ljava/util/List;
+HPLandroid/app/ApplicationPackageManager;->getSharedSystemSharedLibraryPackageName()Ljava/lang/String;
+HSPLandroid/app/ApplicationPackageManager;->getSystemAvailableFeatures()[Landroid/content/pm/FeatureInfo;
+PLandroid/app/ApplicationPackageManager;->getSystemCaptionsServicePackageName()Ljava/lang/String;
+HSPLandroid/app/ApplicationPackageManager;->getSystemSharedLibraryNames()[Ljava/lang/String;
+PLandroid/app/ApplicationPackageManager;->getSystemTextClassifierPackageName()Ljava/lang/String;
+HPLandroid/app/ApplicationPackageManager;->getSystemTextClassifierPackages()[Ljava/lang/String;
HSPLandroid/app/ApplicationPackageManager;->getText(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;
+HSPLandroid/app/ApplicationPackageManager;->getUnsuspendablePackages([Ljava/lang/String;)[Ljava/lang/String;
+HPLandroid/app/ApplicationPackageManager;->getUserBadgeColor(Landroid/os/UserHandle;)I
+HPLandroid/app/ApplicationPackageManager;->getUserBadgeForDensityNoBackground(Landroid/os/UserHandle;I)Landroid/graphics/drawable/Drawable;
HSPLandroid/app/ApplicationPackageManager;->getUserBadgedIcon(Landroid/graphics/drawable/Drawable;Landroid/os/UserHandle;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/app/ApplicationPackageManager;->getUserBadgedLabel(Ljava/lang/CharSequence;Landroid/os/UserHandle;)Ljava/lang/CharSequence;
HSPLandroid/app/ApplicationPackageManager;->getUserId()I
HSPLandroid/app/ApplicationPackageManager;->getUserManager()Landroid/os/UserManager;
+HSPLandroid/app/ApplicationPackageManager;->getWhitelistedRestrictedPermissions(Ljava/lang/String;I)Ljava/util/Set;
HSPLandroid/app/ApplicationPackageManager;->getXml(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/content/res/XmlResourceParser;
+PLandroid/app/ApplicationPackageManager;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)V
HSPLandroid/app/ApplicationPackageManager;->handlePackageBroadcast(I[Ljava/lang/String;Z)V
HSPLandroid/app/ApplicationPackageManager;->hasSystemFeature(Ljava/lang/String;)Z
HSPLandroid/app/ApplicationPackageManager;->hasSystemFeature(Ljava/lang/String;I)Z
+HSPLandroid/app/ApplicationPackageManager;->hasUserBadge(I)Z
+PLandroid/app/ApplicationPackageManager;->isDeviceUpgrading()Z
HSPLandroid/app/ApplicationPackageManager;->isInstantApp()Z
HSPLandroid/app/ApplicationPackageManager;->isInstantApp(Ljava/lang/String;)Z
+HSPLandroid/app/ApplicationPackageManager;->isPackageSuspended(Ljava/lang/String;)Z
+HSPLandroid/app/ApplicationPackageManager;->isPackageSuspendedForUser(Ljava/lang/String;I)Z
+HSPLandroid/app/ApplicationPackageManager;->isPermissionRevokedByPolicy(Ljava/lang/String;Ljava/lang/String;)Z
HSPLandroid/app/ApplicationPackageManager;->isSafeMode()Z
HSPLandroid/app/ApplicationPackageManager;->loadItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
HSPLandroid/app/ApplicationPackageManager;->loadUnbadgedItemIcon(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;
@@ -579,22 +1653,71 @@ HSPLandroid/app/ApplicationPackageManager;->putCachedIcon(Landroid/app/Applicati
HSPLandroid/app/ApplicationPackageManager;->putCachedString(Landroid/app/ApplicationPackageManager$ResourceName;Ljava/lang/CharSequence;)V
HSPLandroid/app/ApplicationPackageManager;->queryBroadcastReceivers(Landroid/content/Intent;I)Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->queryBroadcastReceiversAsUser(Landroid/content/Intent;II)Ljava/util/List;
+HSPLandroid/app/ApplicationPackageManager;->queryContentProviders(Ljava/lang/String;IILjava/lang/String;)Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->queryIntentActivitiesAsUser(Landroid/content/Intent;II)Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->queryIntentContentProviders(Landroid/content/Intent;I)Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->queryIntentContentProvidersAsUser(Landroid/content/Intent;II)Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->queryIntentServices(Landroid/content/Intent;I)Ljava/util/List;
HSPLandroid/app/ApplicationPackageManager;->queryIntentServicesAsUser(Landroid/content/Intent;II)Ljava/util/List;
+HSPLandroid/app/ApplicationPackageManager;->queryPermissionsByGroup(Ljava/lang/String;I)Ljava/util/List;
+HSPLandroid/app/ApplicationPackageManager;->removeOnPermissionsChangeListener(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;)V
+HSPLandroid/app/ApplicationPackageManager;->replacePreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;)V
+HPLandroid/app/ApplicationPackageManager;->replacePreferredActivityAsUser(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
HSPLandroid/app/ApplicationPackageManager;->resolveActivity(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;
HSPLandroid/app/ApplicationPackageManager;->resolveActivityAsUser(Landroid/content/Intent;II)Landroid/content/pm/ResolveInfo;
HSPLandroid/app/ApplicationPackageManager;->resolveContentProvider(Ljava/lang/String;I)Landroid/content/pm/ProviderInfo;
HSPLandroid/app/ApplicationPackageManager;->resolveContentProviderAsUser(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
HSPLandroid/app/ApplicationPackageManager;->resolveService(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;
HSPLandroid/app/ApplicationPackageManager;->resolveServiceAsUser(Landroid/content/Intent;II)Landroid/content/pm/ResolveInfo;
+HPLandroid/app/ApplicationPackageManager;->setApplicationCategoryHint(Ljava/lang/String;I)V
HSPLandroid/app/ApplicationPackageManager;->setComponentEnabledSetting(Landroid/content/ComponentName;II)V
+HSPLandroid/app/ApplicationPackageManager;->updateFlagsForApplication(II)I
HSPLandroid/app/ApplicationPackageManager;->updateFlagsForComponent(IILandroid/content/Intent;)I
HSPLandroid/app/ApplicationPackageManager;->updateFlagsForPackage(II)I
+HSPLandroid/app/ApplicationPackageManager;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;IILandroid/os/UserHandle;)V
+PLandroid/app/ApplicationPackageManager;->verifyIntentFilter(IILjava/util/List;)V
+HPLandroid/app/ApplicationPackageManager;->verifyPendingInstall(II)V
+PLandroid/app/AsyncNotedAppOp$1;-><init>()V
+PLandroid/app/AsyncNotedAppOp;-><clinit>()V
+HPLandroid/app/AsyncNotedAppOp;-><init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
+HSPLandroid/app/AutomaticZenRule$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/AutomaticZenRule;
+HSPLandroid/app/AutomaticZenRule$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/AutomaticZenRule;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/AutomaticZenRule;-><init>(Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;Landroid/net/Uri;Landroid/service/notification/ZenPolicy;IZ)V
+HSPLandroid/app/AutomaticZenRule;-><init>(Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;Landroid/net/Uri;Landroid/service/notification/ZenPolicy;IZJ)V
+HSPLandroid/app/AutomaticZenRule;-><init>(Ljava/lang/String;Landroid/content/ComponentName;Landroid/net/Uri;IZ)V
+PLandroid/app/AutomaticZenRule;->getConditionId()Landroid/net/Uri;
+PLandroid/app/AutomaticZenRule;->getInterruptionFilter()I
+PLandroid/app/AutomaticZenRule;->getName()Ljava/lang/String;
+HSPLandroid/app/AutomaticZenRule;->getOwner()Landroid/content/ComponentName;
+PLandroid/app/AutomaticZenRule;->getZenPolicy()Landroid/service/notification/ZenPolicy;
+PLandroid/app/AutomaticZenRule;->isEnabled()Z
+PLandroid/app/AutomaticZenRule;->isModified()Z
+HSPLandroid/app/AutomaticZenRule;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/BackStackRecord;->add(Landroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;
+HSPLandroid/app/BackStackRecord;->bumpBackStackNesting(I)V
+HSPLandroid/app/BackStackRecord;->commit()I
+HPLandroid/app/BackStackRecord;->commitAllowingStateLoss()I
+HSPLandroid/app/BackStackRecord;->commitInternal(Z)I
+HSPLandroid/app/BackStackRecord;->doAddOp(ILandroid/app/Fragment;Ljava/lang/String;I)V
+HSPLandroid/app/BackStackRecord;->executeOps()V
+HSPLandroid/app/BackStackRecord;->expandOps(Ljava/util/ArrayList;Landroid/app/Fragment;)Landroid/app/Fragment;
+HSPLandroid/app/BackStackRecord;->generateOps(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
+HPLandroid/app/BackStackRecord;->interactsWith(I)Z
+HPLandroid/app/BackStackRecord;->replace(ILandroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;
+HPLandroid/app/BackStackRecord;->setTransition(I)Landroid/app/FragmentTransaction;
+HSPLandroid/app/BroadcastOptions;-><init>()V
+PLandroid/app/BroadcastOptions;-><init>(Landroid/os/Bundle;)V
+PLandroid/app/BroadcastOptions;->allowsBackgroundActivityStarts()Z
+PLandroid/app/BroadcastOptions;->getMaxManifestReceiverApiLevel()I
+PLandroid/app/BroadcastOptions;->getMinManifestReceiverApiLevel()I
+PLandroid/app/BroadcastOptions;->getTemporaryAppWhitelistDuration()J
+PLandroid/app/BroadcastOptions;->isDontSendToRestrictedApps()Z
HSPLandroid/app/BroadcastOptions;->makeBasic()Landroid/app/BroadcastOptions;
+HSPLandroid/app/BroadcastOptions;->setBackgroundActivityStartsAllowed(Z)V
+HSPLandroid/app/BroadcastOptions;->setMaxManifestReceiverApiLevel(I)V
+HSPLandroid/app/BroadcastOptions;->setTemporaryAppWhitelistDuration(J)V
HSPLandroid/app/BroadcastOptions;->toBundle()Landroid/os/Bundle;
HSPLandroid/app/ClientTransactionHandler;-><init>()V
HSPLandroid/app/ClientTransactionHandler;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
@@ -611,40 +1734,57 @@ HSPLandroid/app/ContextImpl$ApplicationContentResolver;->acquireUnstableProvider
HSPLandroid/app/ContextImpl$ApplicationContentResolver;->releaseProvider(Landroid/content/IContentProvider;)Z
HSPLandroid/app/ContextImpl$ApplicationContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
HSPLandroid/app/ContextImpl$ApplicationContentResolver;->resolveUserIdFromAuthority(Ljava/lang/String;)I
+HPLandroid/app/ContextImpl$ApplicationContentResolver;->unstableProviderDied(Landroid/content/IContentProvider;)V
HSPLandroid/app/ContextImpl;-><init>(Landroid/app/ContextImpl;Landroid/app/ActivityThread;Landroid/app/LoadedApk;Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;Landroid/os/UserHandle;ILjava/lang/ClassLoader;Ljava/lang/String;)V
+HSPLandroid/app/ContextImpl;->bindIsolatedService(Landroid/content/Intent;ILjava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z
HSPLandroid/app/ContextImpl;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
+HSPLandroid/app/ContextImpl;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handler;Landroid/os/UserHandle;)Z
HSPLandroid/app/ContextImpl;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/UserHandle;)Z
HSPLandroid/app/ContextImpl;->bindServiceCommon(Landroid/content/Intent;Landroid/content/ServiceConnection;ILjava/lang/String;Landroid/os/Handler;Ljava/util/concurrent/Executor;Landroid/os/UserHandle;)Z
HSPLandroid/app/ContextImpl;->canLoadUnsafeResources()Z
HSPLandroid/app/ContextImpl;->checkCallingOrSelfPermission(Ljava/lang/String;)I
HSPLandroid/app/ContextImpl;->checkCallingPermission(Ljava/lang/String;)I
+HPLandroid/app/ContextImpl;->checkCallingUriPermission(Landroid/net/Uri;I)I
HSPLandroid/app/ContextImpl;->checkMode(I)V
HSPLandroid/app/ContextImpl;->checkPermission(Ljava/lang/String;II)I
HSPLandroid/app/ContextImpl;->checkPermission(Ljava/lang/String;IILandroid/os/IBinder;)I
HSPLandroid/app/ContextImpl;->checkSelfPermission(Ljava/lang/String;)I
-PLandroid/app/ContextImpl;->checkUriPermission(Landroid/net/Uri;III)I
+HSPLandroid/app/ContextImpl;->checkUriPermission(Landroid/net/Uri;III)I
+HSPLandroid/app/ContextImpl;->checkUriPermission(Landroid/net/Uri;IIILandroid/os/IBinder;)I
+HSPLandroid/app/ContextImpl;->createActivityContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;Landroid/content/pm/ActivityInfo;Landroid/os/IBinder;ILandroid/content/res/Configuration;)Landroid/app/ContextImpl;
HSPLandroid/app/ContextImpl;->createAppContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;)Landroid/app/ContextImpl;
HSPLandroid/app/ContextImpl;->createAppContext(Landroid/app/ActivityThread;Landroid/app/LoadedApk;Ljava/lang/String;)Landroid/app/ContextImpl;
HSPLandroid/app/ContextImpl;->createApplicationContext(Landroid/content/pm/ApplicationInfo;I)Landroid/content/Context;
HSPLandroid/app/ContextImpl;->createConfigurationContext(Landroid/content/res/Configuration;)Landroid/content/Context;
+HSPLandroid/app/ContextImpl;->createContextAsUser(Landroid/os/UserHandle;I)Landroid/content/Context;
+HSPLandroid/app/ContextImpl;->createCredentialProtectedStorageContext()Landroid/content/Context;
HSPLandroid/app/ContextImpl;->createDeviceProtectedStorageContext()Landroid/content/Context;
+HSPLandroid/app/ContextImpl;->createDisplayContext(Landroid/view/Display;)Landroid/content/Context;
+HSPLandroid/app/ContextImpl;->createFeatureContext(Ljava/lang/String;)Landroid/content/Context;
HSPLandroid/app/ContextImpl;->createPackageContext(Ljava/lang/String;I)Landroid/content/Context;
HSPLandroid/app/ContextImpl;->createPackageContextAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/Context;
HSPLandroid/app/ContextImpl;->createResources(Landroid/os/IBinder;Landroid/app/LoadedApk;Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources;
HSPLandroid/app/ContextImpl;->createSystemContext(Landroid/app/ActivityThread;)Landroid/app/ContextImpl;
HSPLandroid/app/ContextImpl;->createSystemUiContext(Landroid/app/ContextImpl;)Landroid/app/ContextImpl;
HSPLandroid/app/ContextImpl;->createSystemUiContext(Landroid/app/ContextImpl;I)Landroid/app/ContextImpl;
+HSPLandroid/app/ContextImpl;->databaseList()[Ljava/lang/String;
HSPLandroid/app/ContextImpl;->deleteDatabase(Ljava/lang/String;)Z
+HSPLandroid/app/ContextImpl;->deleteFile(Ljava/lang/String;)Z
+PLandroid/app/ContextImpl;->deleteSharedPreferences(Ljava/lang/String;)Z
HSPLandroid/app/ContextImpl;->enforce(Ljava/lang/String;IZILjava/lang/String;)V
HSPLandroid/app/ContextImpl;->enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/ContextImpl;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/ContextImpl;->enforcePermission(Ljava/lang/String;IILjava/lang/String;)V
HSPLandroid/app/ContextImpl;->ensureExternalDirsExistOrFilter([Ljava/io/File;)[Ljava/io/File;
HSPLandroid/app/ContextImpl;->ensurePrivateCacheDirExists(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
HSPLandroid/app/ContextImpl;->ensurePrivateDirExists(Ljava/io/File;)Ljava/io/File;
HSPLandroid/app/ContextImpl;->ensurePrivateDirExists(Ljava/io/File;IILjava/lang/String;)Ljava/io/File;
+HSPLandroid/app/ContextImpl;->fileList()[Ljava/lang/String;
HSPLandroid/app/ContextImpl;->getActivityToken()Landroid/os/IBinder;
HSPLandroid/app/ContextImpl;->getApplicationContext()Landroid/content/Context;
HSPLandroid/app/ContextImpl;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
HSPLandroid/app/ContextImpl;->getAssets()Landroid/content/res/AssetManager;
+HSPLandroid/app/ContextImpl;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient;
HSPLandroid/app/ContextImpl;->getAutofillOptions()Landroid/content/AutofillOptions;
HSPLandroid/app/ContextImpl;->getBasePackageName()Ljava/lang/String;
HSPLandroid/app/ContextImpl;->getCacheDir()Ljava/io/File;
@@ -664,18 +1804,24 @@ HSPLandroid/app/ContextImpl;->getExternalCacheDir()Ljava/io/File;
HSPLandroid/app/ContextImpl;->getExternalCacheDirs()[Ljava/io/File;
HSPLandroid/app/ContextImpl;->getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;
HSPLandroid/app/ContextImpl;->getExternalFilesDirs(Ljava/lang/String;)[Ljava/io/File;
+HSPLandroid/app/ContextImpl;->getExternalMediaDirs()[Ljava/io/File;
HSPLandroid/app/ContextImpl;->getFeatureId()Ljava/lang/String;
HSPLandroid/app/ContextImpl;->getFileStreamPath(Ljava/lang/String;)Ljava/io/File;
HSPLandroid/app/ContextImpl;->getFilesDir()Ljava/io/File;
+HPLandroid/app/ContextImpl;->getIApplicationThread()Landroid/app/IApplicationThread;
HSPLandroid/app/ContextImpl;->getImpl(Landroid/content/Context;)Landroid/app/ContextImpl;
HSPLandroid/app/ContextImpl;->getMainExecutor()Ljava/util/concurrent/Executor;
HSPLandroid/app/ContextImpl;->getMainLooper()Landroid/os/Looper;
+HSPLandroid/app/ContextImpl;->getMainThreadHandler()Landroid/os/Handler;
HSPLandroid/app/ContextImpl;->getNoBackupFilesDir()Ljava/io/File;
HSPLandroid/app/ContextImpl;->getOpPackageName()Ljava/lang/String;
HSPLandroid/app/ContextImpl;->getOuterContext()Landroid/content/Context;
+HSPLandroid/app/ContextImpl;->getPackageCodePath()Ljava/lang/String;
HSPLandroid/app/ContextImpl;->getPackageManager()Landroid/content/pm/PackageManager;
HSPLandroid/app/ContextImpl;->getPackageName()Ljava/lang/String;
+HSPLandroid/app/ContextImpl;->getPackageResourcePath()Ljava/lang/String;
HSPLandroid/app/ContextImpl;->getPreferencesDir()Ljava/io/File;
+HPLandroid/app/ContextImpl;->getPreloadsFileCache()Ljava/io/File;
HSPLandroid/app/ContextImpl;->getReceiverRestrictedContext()Landroid/content/Context;
HSPLandroid/app/ContextImpl;->getResources()Landroid/content/res/Resources;
HSPLandroid/app/ContextImpl;->getSharedPreferences(Ljava/io/File;I)Landroid/content/SharedPreferences;
@@ -685,33 +1831,56 @@ HSPLandroid/app/ContextImpl;->getSharedPreferencesPath(Ljava/lang/String;)Ljava/
HSPLandroid/app/ContextImpl;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
HSPLandroid/app/ContextImpl;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;
HSPLandroid/app/ContextImpl;->getTheme()Landroid/content/res/Resources$Theme;
+PLandroid/app/ContextImpl;->getThemeResId()I
HSPLandroid/app/ContextImpl;->getUser()Landroid/os/UserHandle;
HSPLandroid/app/ContextImpl;->getUserId()I
+HSPLandroid/app/ContextImpl;->grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V
HSPLandroid/app/ContextImpl;->initializeTheme()V
+HSPLandroid/app/ContextImpl;->installSystemApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)V
HSPLandroid/app/ContextImpl;->isCredentialProtectedStorage()Z
HSPLandroid/app/ContextImpl;->isDeviceProtectedStorage()Z
HSPLandroid/app/ContextImpl;->isRestricted()Z
HSPLandroid/app/ContextImpl;->makeFilename(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
HSPLandroid/app/ContextImpl;->openFileInput(Ljava/lang/String;)Ljava/io/FileInputStream;
HSPLandroid/app/ContextImpl;->openFileOutput(Ljava/lang/String;I)Ljava/io/FileOutputStream;
+PLandroid/app/ContextImpl;->openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;
+PLandroid/app/ContextImpl;->openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;
+HSLandroid/app/ContextImpl;->performFinalCleanup(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/app/ContextImpl;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
HSPLandroid/app/ContextImpl;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
HSPLandroid/app/ContextImpl;->registerReceiverAsUser(Landroid/content/BroadcastReceiver;Landroid/os/UserHandle;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
+HSPLandroid/app/ContextImpl;->registerReceiverForAllUsers(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
HSPLandroid/app/ContextImpl;->registerReceiverInternal(Landroid/content/BroadcastReceiver;ILandroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;Landroid/content/Context;I)Landroid/content/Intent;
HSPLandroid/app/ContextImpl;->resolveUserId(Landroid/net/Uri;)I
+HSPLandroid/app/ContextImpl;->revokeUriPermission(Landroid/net/Uri;I)V
HSPLandroid/app/ContextImpl;->scheduleFinalCleanup(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/app/ContextImpl;->sendBroadcast(Landroid/content/Intent;)V
HSPLandroid/app/ContextImpl;->sendBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
+HSPLandroid/app/ContextImpl;->sendBroadcast(Landroid/content/Intent;Ljava/lang/String;Landroid/os/Bundle;)V
HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;)V
HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;I)V
+HSPLandroid/app/ContextImpl;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;Landroid/os/Bundle;)V
+PLandroid/app/ContextImpl;->sendBroadcastAsUserMultiplePermissions(Landroid/content/Intent;Landroid/os/UserHandle;[Ljava/lang/String;)V
+HPLandroid/app/ContextImpl;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
+HSPLandroid/app/ContextImpl;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;ILandroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;Landroid/os/Bundle;)V
+HSPLandroid/app/ContextImpl;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+HPLandroid/app/ContextImpl;->sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;ILandroid/os/Bundle;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+HPLandroid/app/ContextImpl;->sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/app/ContextImpl;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
+PLandroid/app/ContextImpl;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Landroid/os/Bundle;)V
+HSPLandroid/app/ContextImpl;->setAutofillClient(Landroid/view/autofill/AutofillManager$AutofillClient;)V
HSPLandroid/app/ContextImpl;->setAutofillOptions(Landroid/content/AutofillOptions;)V
HSPLandroid/app/ContextImpl;->setContentCaptureOptions(Landroid/content/ContentCaptureOptions;)V
HSPLandroid/app/ContextImpl;->setFilePermissionsFromMode(Ljava/lang/String;II)V
HSPLandroid/app/ContextImpl;->setOuterContext(Landroid/content/Context;)V
HSPLandroid/app/ContextImpl;->setResources(Landroid/content/res/Resources;)V
HSPLandroid/app/ContextImpl;->setTheme(I)V
+PLandroid/app/ContextImpl;->startActivityAsUser(Landroid/content/Intent;Landroid/os/Bundle;Landroid/os/UserHandle;)V
+PLandroid/app/ContextImpl;->startActivityAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
+HSPLandroid/app/ContextImpl;->startForegroundService(Landroid/content/Intent;)Landroid/content/ComponentName;
HSPLandroid/app/ContextImpl;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;
+HSPLandroid/app/ContextImpl;->startServiceAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/ComponentName;
HSPLandroid/app/ContextImpl;->startServiceCommon(Landroid/content/Intent;ZLandroid/os/UserHandle;)Landroid/content/ComponentName;
HSPLandroid/app/ContextImpl;->stopService(Landroid/content/Intent;)Z
HSPLandroid/app/ContextImpl;->stopServiceCommon(Landroid/content/Intent;Landroid/os/UserHandle;)Z
@@ -727,118 +1896,663 @@ HSPLandroid/app/DexLoadReporter;->registerAppDataDir(Ljava/lang/String;Ljava/lan
HSPLandroid/app/DexLoadReporter;->registerSecondaryDexForProfiling(Ljava/lang/String;[Ljava/lang/String;)V
HSPLandroid/app/DexLoadReporter;->registerSecondaryDexForProfiling([Ljava/lang/String;)V
HSPLandroid/app/DexLoadReporter;->report(Ljava/util/List;Ljava/util/List;)V
+HPLandroid/app/Dialog$ListenersHandler;->handleMessage(Landroid/os/Message;)V
HSPLandroid/app/Dialog;-><init>(Landroid/content/Context;I)V
HSPLandroid/app/Dialog;-><init>(Landroid/content/Context;IZ)V
+HPLandroid/app/Dialog;->cancel()V
+HPLandroid/app/Dialog;->dismiss()V
+HPLandroid/app/Dialog;->dismissDialog()V
+HPLandroid/app/Dialog;->dispatchOnCreate(Landroid/os/Bundle;)V
+HPLandroid/app/Dialog;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
+HPLandroid/app/Dialog;->findViewById(I)Landroid/view/View;
+HPLandroid/app/Dialog;->getContext()Landroid/content/Context;
+HPLandroid/app/Dialog;->getLayoutInflater()Landroid/view/LayoutInflater;
HSPLandroid/app/Dialog;->getWindow()Landroid/view/Window;
+HPLandroid/app/Dialog;->hide()V
+HPLandroid/app/Dialog;->onAttachedToWindow()V
+HSPLandroid/app/Dialog;->onContentChanged()V
+HPLandroid/app/Dialog;->onCreate(Landroid/os/Bundle;)V
+HPLandroid/app/Dialog;->onDetachedFromWindow()V
+HPLandroid/app/Dialog;->onStart()V
+HPLandroid/app/Dialog;->onStop()V
+HPLandroid/app/Dialog;->onTouchEvent(Landroid/view/MotionEvent;)Z
HSPLandroid/app/Dialog;->onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V
+HPLandroid/app/Dialog;->onWindowFocusChanged(Z)V
+HPLandroid/app/Dialog;->setCanceledOnTouchOutside(Z)V
+HPLandroid/app/Dialog;->setContentView(I)V
+HSPLandroid/app/Dialog;->setContentView(Landroid/view/View;)V
+HPLandroid/app/Dialog;->setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)V
+HPLandroid/app/Dialog;->setOnDismissListener(Landroid/content/DialogInterface$OnDismissListener;)V
+HPLandroid/app/Dialog;->setOnShowListener(Landroid/content/DialogInterface$OnShowListener;)V
+HPLandroid/app/Dialog;->setTitle(I)V
+HPLandroid/app/Dialog;->setTitle(Ljava/lang/CharSequence;)V
+HPLandroid/app/Dialog;->show()V
+HPLandroid/app/DownloadManager$CursorTranslator;->getInt(I)I
+HPLandroid/app/DownloadManager$CursorTranslator;->getLong(I)J
+HPLandroid/app/DownloadManager$CursorTranslator;->translateStatus(I)I
+PLandroid/app/DownloadManager$Query;-><init>()V
+HPLandroid/app/DownloadManager$Query;->joinStrings(Ljava/lang/String;Ljava/lang/Iterable;)Ljava/lang/String;
+HPLandroid/app/DownloadManager$Query;->runQuery(Landroid/content/ContentResolver;[Ljava/lang/String;Landroid/net/Uri;)Landroid/database/Cursor;
+HPLandroid/app/DownloadManager$Query;->setFilterById([J)Landroid/app/DownloadManager$Query;
+PLandroid/app/DownloadManager$Query;->setFilterByStatus(I)Landroid/app/DownloadManager$Query;
+HPLandroid/app/DownloadManager$Query;->statusClause(Ljava/lang/String;I)Ljava/lang/String;
HSPLandroid/app/DownloadManager;-><init>(Landroid/content/Context;)V
+HPLandroid/app/DownloadManager;->enqueue(Landroid/app/DownloadManager$Request;)J
+HPLandroid/app/DownloadManager;->getDownloadUri(J)Landroid/net/Uri;
+HSPLandroid/app/DownloadManager;->getMaxBytesOverMobile(Landroid/content/Context;)Ljava/lang/Long;
+HSPLandroid/app/DownloadManager;->getRecommendedMaxBytesOverMobile(Landroid/content/Context;)Ljava/lang/Long;
+HPLandroid/app/DownloadManager;->getWhereArgsForIds([J)[Ljava/lang/String;
+HPLandroid/app/DownloadManager;->getWhereArgsForIds([J[Ljava/lang/String;)[Ljava/lang/String;
+HPLandroid/app/DownloadManager;->getWhereClauseForIds([J)Ljava/lang/String;
+HPLandroid/app/DownloadManager;->markRowDeleted([J)I
+HPLandroid/app/DownloadManager;->openDownloadedFile(J)Landroid/os/ParcelFileDescriptor;
+PLandroid/app/DownloadManager;->query(Landroid/app/DownloadManager$Query;)Landroid/database/Cursor;
+PLandroid/app/DownloadManager;->query(Landroid/app/DownloadManager$Query;[Ljava/lang/String;)Landroid/database/Cursor;
+HPLandroid/app/DownloadManager;->remove([J)I
+HSPLandroid/app/DownloadManager;->setAccessAllDownloads(Z)V
+HSPLandroid/app/DownloadManager;->setAccessFilename(Z)V
+HPLandroid/app/EventLogTags;->writeWmOnActivityResultCalled(ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/EventLogTags;->writeWmOnCreateCalled(ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/EventLogTags;->writeWmOnDestroyCalled(ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/EventLogTags;->writeWmOnPausedCalled(ILjava/lang/String;Ljava/lang/String;)V
+HPLandroid/app/EventLogTags;->writeWmOnRestartCalled(ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/EventLogTags;->writeWmOnResumeCalled(ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/EventLogTags;->writeWmOnStartCalled(ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/EventLogTags;->writeWmOnStopCalled(ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/EventLogTags;->writeWmOnTopResumedGainedCalled(ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/EventLogTags;->writeWmOnTopResumedLostCalled(ILjava/lang/String;Ljava/lang/String;)V
+HPLandroid/app/Fragment$AnimationInfo;-><init>()V
+HPLandroid/app/Fragment$AnimationInfo;->access$000(Landroid/app/Fragment$AnimationInfo;)Ljava/lang/Boolean;
+HPLandroid/app/Fragment$AnimationInfo;->access$002(Landroid/app/Fragment$AnimationInfo;Ljava/lang/Boolean;)Ljava/lang/Boolean;
+HPLandroid/app/Fragment$AnimationInfo;->access$100(Landroid/app/Fragment$AnimationInfo;)Ljava/lang/Boolean;
+HPLandroid/app/Fragment$AnimationInfo;->access$102(Landroid/app/Fragment$AnimationInfo;Ljava/lang/Boolean;)Ljava/lang/Boolean;
+HPLandroid/app/Fragment$AnimationInfo;->access$302(Landroid/app/Fragment$AnimationInfo;Landroid/transition/Transition;)Landroid/transition/Transition;
+HPLandroid/app/Fragment$AnimationInfo;->access$400(Landroid/app/Fragment$AnimationInfo;)Landroid/transition/Transition;
+HPLandroid/app/Fragment$AnimationInfo;->access$402(Landroid/app/Fragment$AnimationInfo;Landroid/transition/Transition;)Landroid/transition/Transition;
+HPLandroid/app/Fragment$AnimationInfo;->access$500(Landroid/app/Fragment$AnimationInfo;)Landroid/transition/Transition;
+HPLandroid/app/Fragment$AnimationInfo;->access$502(Landroid/app/Fragment$AnimationInfo;Landroid/transition/Transition;)Landroid/transition/Transition;
+HPLandroid/app/Fragment$AnimationInfo;->access$600(Landroid/app/Fragment$AnimationInfo;)Landroid/transition/Transition;
+HPLandroid/app/Fragment$AnimationInfo;->access$602(Landroid/app/Fragment$AnimationInfo;Landroid/transition/Transition;)Landroid/transition/Transition;
+HPLandroid/app/Fragment$AnimationInfo;->access$700(Landroid/app/Fragment$AnimationInfo;)Landroid/transition/Transition;
+HPLandroid/app/Fragment$AnimationInfo;->access$702(Landroid/app/Fragment$AnimationInfo;Landroid/transition/Transition;)Landroid/transition/Transition;
+HSPLandroid/app/Fragment;-><init>()V
+HPLandroid/app/Fragment;->access$800()Landroid/transition/Transition;
+HPLandroid/app/Fragment;->ensureAnimationInfo()Landroid/app/Fragment$AnimationInfo;
+HSPLandroid/app/Fragment;->equals(Ljava/lang/Object;)Z
+HSPLandroid/app/Fragment;->getActivity()Landroid/app/Activity;
+HSPLandroid/app/Fragment;->getAnimatingAway()Landroid/animation/Animator;
+HPLandroid/app/Fragment;->getArguments()Landroid/os/Bundle;
+HSPLandroid/app/Fragment;->getChildFragmentManager()Landroid/app/FragmentManager;
+HSPLandroid/app/Fragment;->getContext()Landroid/content/Context;
+HPLandroid/app/Fragment;->getEnterTransition()Landroid/transition/Transition;
+HPLandroid/app/Fragment;->getExitTransition()Landroid/transition/Transition;
+HPLandroid/app/Fragment;->getLoaderManager()Landroid/app/LoaderManager;
+HSPLandroid/app/Fragment;->getNextAnim()I
+HSPLandroid/app/Fragment;->getNextTransition()I
+HSPLandroid/app/Fragment;->getNextTransitionStyle()I
+HPLandroid/app/Fragment;->getReenterTransition()Landroid/transition/Transition;
+HPLandroid/app/Fragment;->getResources()Landroid/content/res/Resources;
+HPLandroid/app/Fragment;->getReturnTransition()Landroid/transition/Transition;
+HPLandroid/app/Fragment;->getSharedElementEnterTransition()Landroid/transition/Transition;
+HPLandroid/app/Fragment;->getSharedElementReturnTransition()Landroid/transition/Transition;
+HPLandroid/app/Fragment;->getView()Landroid/view/View;
+HPLandroid/app/Fragment;->hashCode()I
+HSPLandroid/app/Fragment;->initState()V
+HPLandroid/app/Fragment;->instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment;
+HSPLandroid/app/Fragment;->instantiateChildFragmentManager()V
+HPLandroid/app/Fragment;->isAdded()Z
+HPLandroid/app/Fragment;->isPostponed()Z
+HPLandroid/app/Fragment;->isResumed()Z
+HPLandroid/app/Fragment;->loadTransition(Landroid/content/Context;Landroid/content/res/TypedArray;Landroid/transition/Transition;Landroid/transition/Transition;I)Landroid/transition/Transition;
+HSPLandroid/app/Fragment;->noteStateNotSaved()V
+HSPLandroid/app/Fragment;->onActivityCreated(Landroid/os/Bundle;)V
+HSPLandroid/app/Fragment;->onAttach(Landroid/app/Activity;)V
+HSPLandroid/app/Fragment;->onAttach(Landroid/content/Context;)V
+HPLandroid/app/Fragment;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLandroid/app/Fragment;->onCreate(Landroid/os/Bundle;)V
+HPLandroid/app/Fragment;->onCreateAnimator(IZI)Landroid/animation/Animator;
+HSPLandroid/app/Fragment;->onCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View;
+HSPLandroid/app/Fragment;->onDestroy()V
+HSPLandroid/app/Fragment;->onDestroyView()V
+HSPLandroid/app/Fragment;->onDetach()V
+HSPLandroid/app/Fragment;->onGetLayoutInflater(Landroid/os/Bundle;)Landroid/view/LayoutInflater;
+HPLandroid/app/Fragment;->onInflate(Landroid/app/Activity;Landroid/util/AttributeSet;Landroid/os/Bundle;)V
+HPLandroid/app/Fragment;->onInflate(Landroid/content/Context;Landroid/util/AttributeSet;Landroid/os/Bundle;)V
+HPLandroid/app/Fragment;->onInflate(Landroid/util/AttributeSet;Landroid/os/Bundle;)V
+HSPLandroid/app/Fragment;->onPause()V
+HSPLandroid/app/Fragment;->onResume()V
+HSPLandroid/app/Fragment;->onSaveInstanceState(Landroid/os/Bundle;)V
+HSPLandroid/app/Fragment;->onStart()V
+HSPLandroid/app/Fragment;->onStop()V
+HPLandroid/app/Fragment;->onTrimMemory(I)V
+HPLandroid/app/Fragment;->onViewCreated(Landroid/view/View;Landroid/os/Bundle;)V
+HPLandroid/app/Fragment;->onViewStateRestored(Landroid/os/Bundle;)V
+HSPLandroid/app/Fragment;->performActivityCreated(Landroid/os/Bundle;)V
+HPLandroid/app/Fragment;->performConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLandroid/app/Fragment;->performCreate(Landroid/os/Bundle;)V
+HSPLandroid/app/Fragment;->performCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)Z
+HSPLandroid/app/Fragment;->performCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View;
+HSPLandroid/app/Fragment;->performDestroy()V
+HSPLandroid/app/Fragment;->performDestroyView()V
+HSPLandroid/app/Fragment;->performDetach()V
+HSPLandroid/app/Fragment;->performGetLayoutInflater(Landroid/os/Bundle;)Landroid/view/LayoutInflater;
+HSPLandroid/app/Fragment;->performPause()V
+HSPLandroid/app/Fragment;->performPrepareOptionsMenu(Landroid/view/Menu;)Z
+HSPLandroid/app/Fragment;->performResume()V
+HSPLandroid/app/Fragment;->performSaveInstanceState(Landroid/os/Bundle;)V
+HSPLandroid/app/Fragment;->performStart()V
+HSPLandroid/app/Fragment;->performStop()V
+HPLandroid/app/Fragment;->performTrimMemory(I)V
+HSPLandroid/app/Fragment;->restoreChildFragmentState(Landroid/os/Bundle;Z)V
+HPLandroid/app/Fragment;->restoreViewState(Landroid/os/Bundle;)V
+HPLandroid/app/Fragment;->setAllowEnterTransitionOverlap(Z)V
+HPLandroid/app/Fragment;->setAllowReturnTransitionOverlap(Z)V
+HPLandroid/app/Fragment;->setArguments(Landroid/os/Bundle;)V
+HPLandroid/app/Fragment;->setEnterTransition(Landroid/transition/Transition;)V
+HPLandroid/app/Fragment;->setExitTransition(Landroid/transition/Transition;)V
+HSPLandroid/app/Fragment;->setIndex(ILandroid/app/Fragment;)V
+HSPLandroid/app/Fragment;->setNextAnim(I)V
+HSPLandroid/app/Fragment;->setNextTransition(II)V
+HPLandroid/app/Fragment;->setReenterTransition(Landroid/transition/Transition;)V
+HSPLandroid/app/Fragment;->setRetainInstance(Z)V
+HPLandroid/app/Fragment;->setReturnTransition(Landroid/transition/Transition;)V
+HPLandroid/app/Fragment;->setSharedElementEnterTransition(Landroid/transition/Transition;)V
+HPLandroid/app/Fragment;->setSharedElementReturnTransition(Landroid/transition/Transition;)V
+HPLandroid/app/Fragment;->shouldChangeTransition(Landroid/transition/Transition;Landroid/transition/Transition;)Z
+HPLandroid/app/FragmentContainer;->instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment;
HSPLandroid/app/FragmentController;->attachHost(Landroid/app/Fragment;)V
-HSPLandroid/app/FragmentController;->createController(Landroid/app/FragmentHostCallback;)Landroid/app/FragmentController;
+HSPLandroid/app/FragmentController;->dispatchActivityCreated()V
+HPLandroid/app/FragmentController;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V
HSPLandroid/app/FragmentController;->dispatchCreate()V
+HSPLandroid/app/FragmentController;->dispatchCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)Z
+HSPLandroid/app/FragmentController;->dispatchDestroy()V
+HSPLandroid/app/FragmentController;->dispatchPause()V
+HSPLandroid/app/FragmentController;->dispatchPrepareOptionsMenu(Landroid/view/Menu;)Z
HSPLandroid/app/FragmentController;->dispatchResume()V
HSPLandroid/app/FragmentController;->dispatchStart()V
+HSPLandroid/app/FragmentController;->dispatchStop()V
+HSPLandroid/app/FragmentController;->dispatchTrimMemory(I)V
+HSPLandroid/app/FragmentController;->doLoaderDestroy()V
+HSPLandroid/app/FragmentController;->doLoaderStart()V
+HSPLandroid/app/FragmentController;->doLoaderStop(Z)V
+HSPLandroid/app/FragmentController;->execPendingActions()Z
+HSPLandroid/app/FragmentController;->getFragmentManager()Landroid/app/FragmentManager;
+HPLandroid/app/FragmentController;->getLoaderManager()Landroid/app/LoaderManager;
+HSPLandroid/app/FragmentController;->noteStateNotSaved()V
+HPLandroid/app/FragmentController;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
+HSPLandroid/app/FragmentController;->reportLoaderStart()V
+HSPLandroid/app/FragmentController;->restoreAllState(Landroid/os/Parcelable;Landroid/app/FragmentManagerNonConfig;)V
+HSPLandroid/app/FragmentController;->saveAllState()Landroid/os/Parcelable;
+HSPLandroid/app/FragmentHostCallback;->doLoaderDestroy()V
+HSPLandroid/app/FragmentHostCallback;->doLoaderStart()V
+HSPLandroid/app/FragmentHostCallback;->doLoaderStop(Z)V
+HSPLandroid/app/FragmentHostCallback;->getActivity()Landroid/app/Activity;
HSPLandroid/app/FragmentHostCallback;->getContext()Landroid/content/Context;
+HSPLandroid/app/FragmentHostCallback;->getFragmentManagerImpl()Landroid/app/FragmentManagerImpl;
HSPLandroid/app/FragmentHostCallback;->getHandler()Landroid/os/Handler;
+HSPLandroid/app/FragmentHostCallback;->getLoaderManager(Ljava/lang/String;ZZ)Landroid/app/LoaderManagerImpl;
+HPLandroid/app/FragmentHostCallback;->getLoaderManagerImpl()Landroid/app/LoaderManagerImpl;
+HPLandroid/app/FragmentHostCallback;->getRetainLoaders()Z
+HSPLandroid/app/FragmentHostCallback;->inactivateFragment(Ljava/lang/String;)V
+HSPLandroid/app/FragmentHostCallback;->reportLoaderStart()V
+HPLandroid/app/FragmentManagerImpl$AnimateOnHWLayerIfNeededListener;->onAnimationEnd(Landroid/animation/Animator;)V
+HPLandroid/app/FragmentManagerImpl$AnimateOnHWLayerIfNeededListener;->onAnimationStart(Landroid/animation/Animator;)V
HSPLandroid/app/FragmentManagerImpl;-><init>()V
+HSPLandroid/app/FragmentManagerImpl;->addAddedFragments(Landroid/util/ArraySet;)V
+HSPLandroid/app/FragmentManagerImpl;->addFragment(Landroid/app/Fragment;Z)V
+HSPLandroid/app/FragmentManagerImpl;->beginTransaction()Landroid/app/FragmentTransaction;
HSPLandroid/app/FragmentManagerImpl;->burpActive()V
+HSPLandroid/app/FragmentManagerImpl;->checkStateLoss()V
+HSPLandroid/app/FragmentManagerImpl;->dispatchCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)Z
HSPLandroid/app/FragmentManagerImpl;->dispatchMoveToState(I)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentActivityCreated(Landroid/app/Fragment;Landroid/os/Bundle;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentAttached(Landroid/app/Fragment;Landroid/content/Context;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentCreated(Landroid/app/Fragment;Landroid/os/Bundle;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentDestroyed(Landroid/app/Fragment;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentDetached(Landroid/app/Fragment;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentPaused(Landroid/app/Fragment;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentPreAttached(Landroid/app/Fragment;Landroid/content/Context;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentPreCreated(Landroid/app/Fragment;Landroid/os/Bundle;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentResumed(Landroid/app/Fragment;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentSaveInstanceState(Landroid/app/Fragment;Landroid/os/Bundle;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentStarted(Landroid/app/Fragment;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentStopped(Landroid/app/Fragment;Z)V
+HPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentViewCreated(Landroid/app/Fragment;Landroid/view/View;Landroid/os/Bundle;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchOnFragmentViewDestroyed(Landroid/app/Fragment;Z)V
+HSPLandroid/app/FragmentManagerImpl;->dispatchPrepareOptionsMenu(Landroid/view/Menu;)Z
HSPLandroid/app/FragmentManagerImpl;->doPendingDeferredStart()V
+HSPLandroid/app/FragmentManagerImpl;->endAnimatingAwayFragments()V
+HSPLandroid/app/FragmentManagerImpl;->enqueueAction(Landroid/app/FragmentManagerImpl$OpGenerator;Z)V
HSPLandroid/app/FragmentManagerImpl;->ensureExecReady(Z)V
+HSPLandroid/app/FragmentManagerImpl;->ensureInflatedFragmentView(Landroid/app/Fragment;)V
HSPLandroid/app/FragmentManagerImpl;->execPendingActions()Z
+HSPLandroid/app/FragmentManagerImpl;->executeOps(Ljava/util/ArrayList;Ljava/util/ArrayList;II)V
+HSPLandroid/app/FragmentManagerImpl;->executeOpsTogether(Ljava/util/ArrayList;Ljava/util/ArrayList;II)V
+HSPLandroid/app/FragmentManagerImpl;->executePendingTransactions()Z
HSPLandroid/app/FragmentManagerImpl;->executePostponedTransaction(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+HPLandroid/app/FragmentManagerImpl;->findFragmentById(I)Landroid/app/Fragment;
+HSPLandroid/app/FragmentManagerImpl;->findFragmentByTag(Ljava/lang/String;)Landroid/app/Fragment;
+HPLandroid/app/FragmentManagerImpl;->findFragmentUnder(Landroid/app/Fragment;)Landroid/app/Fragment;
HSPLandroid/app/FragmentManagerImpl;->generateOpsForPendingActions(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
+HPLandroid/app/FragmentManagerImpl;->isStateSaved()Z
+HPLandroid/app/FragmentManagerImpl;->loadAnimator(Landroid/app/Fragment;IZI)Landroid/animation/Animator;
+HSPLandroid/app/FragmentManagerImpl;->makeActive(Landroid/app/Fragment;)V
+HSPLandroid/app/FragmentManagerImpl;->makeInactive(Landroid/app/Fragment;)V
+HPLandroid/app/FragmentManagerImpl;->modifiesAlpha(Landroid/animation/Animator;)Z
+HSPLandroid/app/FragmentManagerImpl;->moveFragmentToExpectedState(Landroid/app/Fragment;)V
HSPLandroid/app/FragmentManagerImpl;->moveToState(IZ)V
+HSPLandroid/app/FragmentManagerImpl;->moveToState(Landroid/app/Fragment;IIIZ)V
+HPLandroid/app/FragmentManagerImpl;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
+HPLandroid/app/FragmentManagerImpl;->performPendingDeferredStart(Landroid/app/Fragment;)V
+HPLandroid/app/FragmentManagerImpl;->popBackStackImmediate()Z
+HPLandroid/app/FragmentManagerImpl;->popBackStackImmediate(Ljava/lang/String;II)Z
+HPLandroid/app/FragmentManagerImpl;->popBackStackState(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/lang/String;II)Z
+HSPLandroid/app/FragmentManagerImpl;->postponePostponableTransactions(Ljava/util/ArrayList;Ljava/util/ArrayList;IILandroid/util/ArraySet;)I
+HSPLandroid/app/FragmentManagerImpl;->removeRedundantOperationsAndExecute(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+HSPLandroid/app/FragmentManagerImpl;->restoreAllState(Landroid/os/Parcelable;Landroid/app/FragmentManagerNonConfig;)V
+HSPLandroid/app/FragmentManagerImpl;->saveAllState()Landroid/os/Parcelable;
+HSPLandroid/app/FragmentManagerImpl;->saveFragmentBasicState(Landroid/app/Fragment;)Landroid/os/Bundle;
+HPLandroid/app/FragmentManagerImpl;->saveFragmentViewState(Landroid/app/Fragment;)V
+HSPLandroid/app/FragmentManagerImpl;->saveNonConfig()V
+HSPLandroid/app/FragmentManagerImpl;->scheduleCommit()V
+HPLandroid/app/FragmentManagerImpl;->shouldRunOnHWLayer(Landroid/view/View;Landroid/animation/Animator;)Z
+HPLandroid/app/FragmentManagerImpl;->startPendingDeferredFragments()V
+HPLandroid/app/FragmentManagerImpl;->transitToStyleIndex(IZ)I
+HSPLandroid/app/FragmentManagerState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/FragmentState;-><init>(Landroid/app/Fragment;)V
+HSPLandroid/app/FragmentState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/FragmentTransition;->addToFirstInLastOut(Landroid/app/BackStackRecord;Landroid/app/BackStackRecord$Op;Landroid/util/SparseArray;ZZ)V
+HPLandroid/app/FragmentTransition;->calculateNameOverrides(ILjava/util/ArrayList;Ljava/util/ArrayList;II)Landroid/util/ArrayMap;
+HPLandroid/app/FragmentTransition;->cloneTransition(Landroid/transition/Transition;)Landroid/transition/Transition;
+HPLandroid/app/FragmentTransition;->configureSharedElementsReordered(Landroid/view/ViewGroup;Landroid/view/View;Landroid/util/ArrayMap;Landroid/app/FragmentTransition$FragmentContainerTransition;Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/transition/Transition;Landroid/transition/Transition;)Landroid/transition/TransitionSet;
+HPLandroid/app/FragmentTransition;->configureTransitionsReordered(Landroid/app/FragmentManagerImpl;ILandroid/app/FragmentTransition$FragmentContainerTransition;Landroid/view/View;Landroid/util/ArrayMap;)V
+HSPLandroid/app/FragmentTransition;->startTransitions(Landroid/app/FragmentManagerImpl;Ljava/util/ArrayList;Ljava/util/ArrayList;IIZ)V
HSPLandroid/app/IActivityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->addPackageDependency(Ljava/lang/String;)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->attachApplication(Landroid/app/IApplicationThread;J)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->backupAgentCreated(Ljava/lang/String;Landroid/os/IBinder;I)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->bindIsolatedService(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;ILjava/lang/String;Ljava/lang/String;I)I
HSPLandroid/app/IActivityManager$Stub$Proxy;->broadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
+HSPLandroid/app/IActivityManager$Stub$Proxy;->cancelIntentSender(Landroid/content/IIntentSender;)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->checkPermission(Ljava/lang/String;II)I
HSPLandroid/app/IActivityManager$Stub$Proxy;->checkPermissionWithToken(Ljava/lang/String;IILandroid/os/IBinder;)I
HSPLandroid/app/IActivityManager$Stub$Proxy;->checkUriPermission(Landroid/net/Uri;IIIILandroid/os/IBinder;)I
+HPLandroid/app/IActivityManager$Stub$Proxy;->closeSystemDialogs(Ljava/lang/String;)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->finishReceiver(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/Bundle;ZI)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->getContentProvider(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;IZ)Landroid/app/ContentProviderHolder;
HSPLandroid/app/IActivityManager$Stub$Proxy;->getCurrentUser()Landroid/content/pm/UserInfo;
+HPLandroid/app/IActivityManager$Stub$Proxy;->getIntentForIntentSender(Landroid/content/IIntentSender;)Landroid/content/Intent;
HSPLandroid/app/IActivityManager$Stub$Proxy;->getIntentSender(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender;
HSPLandroid/app/IActivityManager$Stub$Proxy;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->getMyMemoryState(Landroid/app/ActivityManager$RunningAppProcessInfo;)V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->getPackageForIntentSender(Landroid/content/IIntentSender;)Ljava/lang/String;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->getPackageProcessState(Ljava/lang/String;Ljava/lang/String;)I
HSPLandroid/app/IActivityManager$Stub$Proxy;->getProcessMemoryInfo([I)[Landroid/os/Debug$MemoryInfo;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->getProviderMimeType(Landroid/net/Uri;I)Ljava/lang/String;
HSPLandroid/app/IActivityManager$Stub$Proxy;->getRunningAppProcesses()Ljava/util/List;
HSPLandroid/app/IActivityManager$Stub$Proxy;->getServices(II)Ljava/util/List;
+HPLandroid/app/IActivityManager$Stub$Proxy;->getTasks(I)Ljava/util/List;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->getUidForIntentSender(Landroid/content/IIntentSender;)I
+HSPLandroid/app/IActivityManager$Stub$Proxy;->grantUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->handleApplicationStrictModeViolation(Landroid/os/IBinder;ILandroid/os/StrictMode$ViolationInfo;)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->handleApplicationWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;)Z
+HSPLandroid/app/IActivityManager$Stub$Proxy;->isIntentSenderAnActivity(Landroid/content/IIntentSender;)Z
HSPLandroid/app/IActivityManager$Stub$Proxy;->isUserAMonkey()Z
+HPLandroid/app/IActivityManager$Stub$Proxy;->isUserRunning(II)Z
HSPLandroid/app/IActivityManager$Stub$Proxy;->publishContentProviders(Landroid/app/IApplicationThread;Ljava/util/List;)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->publishService(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/IBinder;)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->refContentProvider(Landroid/os/IBinder;II)Z
+HPLandroid/app/IActivityManager$Stub$Proxy;->registerIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->registerReceiver(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
+HSPLandroid/app/IActivityManager$Stub$Proxy;->registerUidObserver(Landroid/app/IUidObserver;IILjava/lang/String;)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->removeContentProvider(Landroid/os/IBinder;Z)V
+HPLandroid/app/IActivityManager$Stub$Proxy;->resumeAppSwitches()V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->revokeUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->sendIntentSender(Landroid/content/IIntentSender;Landroid/os/IBinder;ILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)I
HSPLandroid/app/IActivityManager$Stub$Proxy;->serviceDoneExecuting(Landroid/os/IBinder;III)V
+HPLandroid/app/IActivityManager$Stub$Proxy;->setHasTopUi(Z)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->setRenderThread(I)V
+HSPLandroid/app/IActivityManager$Stub$Proxy;->setServiceForeground(Landroid/content/ComponentName;Landroid/os/IBinder;ILandroid/app/Notification;II)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;I)Landroid/content/ComponentName;
HSPLandroid/app/IActivityManager$Stub$Proxy;->stopService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;I)I
HSPLandroid/app/IActivityManager$Stub$Proxy;->stopServiceToken(Landroid/content/ComponentName;Landroid/os/IBinder;I)Z
+HSPLandroid/app/IActivityManager$Stub$Proxy;->unbindFinished(Landroid/os/IBinder;Landroid/content/Intent;Z)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->unbindService(Landroid/app/IServiceConnection;)Z
+HPLandroid/app/IActivityManager$Stub$Proxy;->unregisterIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
HSPLandroid/app/IActivityManager$Stub$Proxy;->unregisterReceiver(Landroid/content/IIntentReceiver;)V
+PLandroid/app/IActivityManager$Stub$Proxy;->unstableProviderDied(Landroid/os/IBinder;)V
+HPLandroid/app/IActivityManager$Stub$Proxy;->waitForNetworkStateUpdate(J)V
+HSPLandroid/app/IActivityManager$Stub;-><init>()V
HSPLandroid/app/IActivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityManager;
+PLandroid/app/IActivityManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/app/IActivityManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activityDestroyed(Landroid/os/IBinder;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activityIdle(Landroid/os/IBinder;Landroid/content/res/Configuration;Z)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activityPaused(Landroid/os/IBinder;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activityResumed(Landroid/os/IBinder;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activitySlept(Landroid/os/IBinder;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activityStopped(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->activityTopResumedStateLost()V
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->cancelRecentsAnimation(Z)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getActivityOptions(Landroid/os/IBinder;)Landroid/os/Bundle;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getAppTasks(Ljava/lang/String;)Ljava/util/List;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getCallingPackage(Landroid/os/IBinder;)Ljava/lang/String;
HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo;
-PLandroid/app/IAlarmCompleteListener$Stub$Proxy;->alarmComplete(Landroid/os/IBinder;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getDisplayId(Landroid/os/IBinder;)I
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getFilteredTasks(III)Ljava/util/List;
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->getFocusedStackInfo()Landroid/app/ActivityManager$StackInfo;
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->getLastResumedActivityUserId()I
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->getLockTaskModeState()I
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getRecentTasks(III)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getRequestedOrientation(Landroid/os/IBinder;)I
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->getStackInfo(II)Landroid/app/ActivityManager$StackInfo;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getTaskForActivity(Landroid/os/IBinder;Z)I
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getTaskSnapshot(IZ)Landroid/app/ActivityManager$TaskSnapshot;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->getTasks(I)Ljava/util/List;
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->invalidateHomeTaskSnapshot(Landroid/os/IBinder;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->isInMultiWindowMode(Landroid/os/IBinder;)Z
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->keyguardGoingAway(I)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;II)V
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->registerRemoteAnimationForNextActivityStart(Ljava/lang/String;Landroid/view/RemoteAnimationAdapter;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->registerRemoteAnimations(Landroid/os/IBinder;Landroid/view/RemoteAnimationDefinition;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->removeTask(I)Z
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->reportAssistContextExtras(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;Landroid/net/Uri;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->reportSizeConfigurations(Landroid/os/IBinder;[I[I[I)V
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->setDisablePreviewScreenshots(Landroid/os/IBinder;Z)V
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->setLockScreenShown(ZZ)V
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->setPictureInPictureParams(Landroid/os/IBinder;Landroid/app/PictureInPictureParams;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->setRequestedOrientation(Landroid/os/IBinder;I)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->setTaskDescription(Landroid/os/IBinder;Landroid/app/ActivityManager$TaskDescription;)V
+HSPLandroid/app/IActivityTaskManager$Stub$Proxy;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)I
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->startActivityFromRecents(ILandroid/os/Bundle;)I
+HPLandroid/app/IActivityTaskManager$Stub$Proxy;->startRecentsActivity(Landroid/content/Intent;Landroid/app/IAssistDataReceiver;Landroid/view/IRecentsAnimationRunner;)V
+HSPLandroid/app/IActivityTaskManager$Stub;-><init>()V
+HSPLandroid/app/IActivityTaskManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityTaskManager;
+PLandroid/app/IActivityTaskManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/app/IActivityTaskManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/app/IAlarmCompleteListener$Stub$Proxy;->alarmComplete(Landroid/os/IBinder;)V
+HSPLandroid/app/IAlarmCompleteListener$Stub;-><init>()V
+PLandroid/app/IAlarmCompleteListener$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/IAlarmCompleteListener$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/app/IAlarmCompleteListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IAlarmListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IAlarmListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/app/IAlarmListener$Stub$Proxy;->doAlarm(Landroid/app/IAlarmCompleteListener;)V
HSPLandroid/app/IAlarmListener$Stub;-><init>()V
HSPLandroid/app/IAlarmListener$Stub;->asBinder()Landroid/os/IBinder;
-PLandroid/app/IAlarmListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IAlarmListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAlarmListener;
+HPLandroid/app/IAlarmListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/app/IAlarmManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IAlarmManager$Stub$Proxy;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo;
HSPLandroid/app/IAlarmManager$Stub$Proxy;->remove(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
HSPLandroid/app/IAlarmManager$Stub$Proxy;->set(Ljava/lang/String;IJJJILandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
+HSPLandroid/app/IAlarmManager$Stub;-><init>()V
HSPLandroid/app/IAlarmManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAlarmManager;
+PLandroid/app/IAlarmManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/app/IAlarmManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/IAppTask$Stub;-><init>()V
+PLandroid/app/IAppTask$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IApplicationThread$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->bindApplication(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List;Landroid/content/ComponentName;Landroid/app/ProfilerInfo;Landroid/os/Bundle;Landroid/app/IInstrumentationWatcher;Landroid/app/IUiAutomationConnection;IZZZZLandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/util/Map;Landroid/os/Bundle;Ljava/lang/String;Landroid/content/AutofillOptions;Landroid/content/ContentCaptureOptions;[J)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->clearDnsCache()V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->dispatchPackageBroadcast(I[Ljava/lang/String;)V
+PLandroid/app/IApplicationThread$Stub$Proxy;->dumpActivity(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->dumpDbInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->dumpGfxInfo(Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->dumpMemInfo(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZZ[Ljava/lang/String;)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->dumpMemInfoProto(Landroid/os/ParcelFileDescriptor;Landroid/os/Debug$MemoryInfo;ZZZZ[Ljava/lang/String;)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->dumpProvider(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
+PLandroid/app/IApplicationThread$Stub$Proxy;->dumpService(Landroid/os/ParcelFileDescriptor;Landroid/os/IBinder;[Ljava/lang/String;)V
+PLandroid/app/IApplicationThread$Stub$Proxy;->requestAssistContextExtras(Landroid/os/IBinder;Landroid/os/IBinder;III)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->runIsolatedEntryPoint(Ljava/lang/String;[Ljava/lang/String;)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleBindService(Landroid/os/IBinder;Landroid/content/Intent;ZI)V
+PLandroid/app/IApplicationThread$Stub$Proxy;->scheduleCreateBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;II)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleCreateService(Landroid/os/IBinder;Landroid/content/pm/ServiceInfo;Landroid/content/res/CompatibilityInfo;I)V
+PLandroid/app/IApplicationThread$Stub$Proxy;->scheduleDestroyBackupAgent(Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;I)V
+PLandroid/app/IApplicationThread$Stub$Proxy;->scheduleEnterAnimationComplete(Landroid/os/IBinder;)V
+PLandroid/app/IApplicationThread$Stub$Proxy;->scheduleInstallProvider(Landroid/content/pm/ProviderInfo;)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleReceiver(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Landroid/content/res/CompatibilityInfo;ILjava/lang/String;Landroid/os/Bundle;ZII)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleRegisteredReceiver(Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZII)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleServiceArgs(Landroid/os/IBinder;Landroid/content/pm/ParceledListSlice;)V
+PLandroid/app/IApplicationThread$Stub$Proxy;->scheduleSleeping(Landroid/os/IBinder;Z)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleStopService(Landroid/os/IBinder;)V
+PLandroid/app/IApplicationThread$Stub$Proxy;->scheduleSuicide()V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
+PLandroid/app/IApplicationThread$Stub$Proxy;->scheduleTrimMemory(I)V
+HPLandroid/app/IApplicationThread$Stub$Proxy;->scheduleUnbindService(Landroid/os/IBinder;Landroid/content/Intent;)V
+PLandroid/app/IApplicationThread$Stub$Proxy;->setNetworkBlockSeq(J)V
+HSPLandroid/app/IApplicationThread$Stub$Proxy;->setProcessState(I)V
+PLandroid/app/IApplicationThread$Stub$Proxy;->unstableProviderDied(Landroid/os/IBinder;)V
HSPLandroid/app/IApplicationThread$Stub;-><init>()V
HSPLandroid/app/IApplicationThread$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IApplicationThread$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IApplicationThread;
HSPLandroid/app/IApplicationThread$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/IAssistDataReceiver$Stub;-><init>()V
+PLandroid/app/IAssistDataReceiver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAssistDataReceiver;
+PLandroid/app/IBackupAgent$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/IBackupAgent$Stub$Proxy;->doBackup(Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;JLandroid/app/backup/IBackupCallback;I)V
+PLandroid/app/IBackupAgent$Stub$Proxy;->doFullBackup(Landroid/os/ParcelFileDescriptor;JILandroid/app/backup/IBackupManager;I)V
+PLandroid/app/IBackupAgent$Stub$Proxy;->doMeasureFullBackup(JILandroid/app/backup/IBackupManager;I)V
+PLandroid/app/IBackupAgent$Stub$Proxy;->doQuotaExceeded(JJLandroid/app/backup/IBackupCallback;)V
+PLandroid/app/IBackupAgent$Stub;-><init>()V
+PLandroid/app/IBackupAgent$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/app/IBackupAgent$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IBackupAgent;
HSPLandroid/app/IBackupAgent$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/IInstantAppResolver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/IInstantAppResolver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/IInstantAppResolver$Stub$Proxy;->getInstantAppResolveInfoList(Landroid/content/Intent;[IILjava/lang/String;ILandroid/os/IRemoteCallback;)V
+PLandroid/app/IInstantAppResolver$Stub;-><init>()V
+PLandroid/app/IInstantAppResolver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IInstantAppResolver;
+HPLandroid/app/IInstantAppResolver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/app/IInstrumentationWatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IInstrumentationWatcher;
HSPLandroid/app/INotificationManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/app/INotificationManager$Stub$Proxy;->applyEnqueuedAdjustmentFromAssistant(Landroid/service/notification/INotificationListener;Landroid/service/notification/Adjustment;)V
HSPLandroid/app/INotificationManager$Stub$Proxy;->areNotificationsEnabled(Ljava/lang/String;)Z
+HSPLandroid/app/INotificationManager$Stub$Proxy;->cancelAllNotifications(Ljava/lang/String;I)V
HSPLandroid/app/INotificationManager$Stub$Proxy;->cancelNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
HSPLandroid/app/INotificationManager$Stub$Proxy;->createNotificationChannelGroups(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
HSPLandroid/app/INotificationManager$Stub$Proxy;->createNotificationChannels(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
HSPLandroid/app/INotificationManager$Stub$Proxy;->deleteNotificationChannel(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/app/INotificationManager$Stub$Proxy;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;I)V
+HPLandroid/app/INotificationManager$Stub$Proxy;->enqueueTextToast(Ljava/lang/String;Landroid/app/ITransientNotification;II)V
+HPLandroid/app/INotificationManager$Stub$Proxy;->finishToken(Ljava/lang/String;Landroid/app/ITransientNotification;)V
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getAllowedNotificationAssistant()Landroid/content/ComponentName;
HSPLandroid/app/INotificationManager$Stub$Proxy;->getAppActiveNotifications(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getAppsBypassingDndCount(I)I
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getAutomaticZenRule(Ljava/lang/String;)Landroid/app/AutomaticZenRule;
+HPLandroid/app/INotificationManager$Stub$Proxy;->getConsolidatedNotificationPolicy()Landroid/app/NotificationManager$Policy;
HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannelGroup;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationChannelGroups(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationChannels(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getNotificationPolicy(Ljava/lang/String;)Landroid/app/NotificationManager$Policy;
+HPLandroid/app/INotificationManager$Stub$Proxy;->getPrivateNotificationsAllowed()Z
HSPLandroid/app/INotificationManager$Stub$Proxy;->getZenMode()I
+HPLandroid/app/INotificationManager$Stub$Proxy;->getZenModeConfig()Landroid/service/notification/ZenModeConfig;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->getZenRules()Ljava/util/List;
+HSPLandroid/app/INotificationManager$Stub$Proxy;->isNotificationPolicyAccessGranted(Ljava/lang/String;)Z
+HSPLandroid/app/INotificationManager$Stub$Proxy;->notifyConditions(Ljava/lang/String;Landroid/service/notification/IConditionProvider;[Landroid/service/notification/Condition;)V
+HSPLandroid/app/INotificationManager$Stub$Proxy;->requestBindListener(Landroid/content/ComponentName;)V
+HSPLandroid/app/INotificationManager$Stub$Proxy;->requestBindProvider(Landroid/content/ComponentName;)V
+HSPLandroid/app/INotificationManager$Stub$Proxy;->requestUnbindProvider(Landroid/service/notification/IConditionProvider;)V
+HPLandroid/app/INotificationManager$Stub$Proxy;->setNotificationsShownFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;)V
+HPLandroid/app/INotificationManager$Stub$Proxy;->setPrivateNotificationsAllowed(Z)V
+HPLandroid/app/INotificationManager$Stub$Proxy;->setZenMode(ILandroid/net/Uri;Ljava/lang/String;)V
+HSPLandroid/app/INotificationManager$Stub$Proxy;->updateAutomaticZenRule(Ljava/lang/String;Landroid/app/AutomaticZenRule;)Z
+HSPLandroid/app/INotificationManager$Stub;-><init>()V
HSPLandroid/app/INotificationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/INotificationManager;
+PLandroid/app/INotificationManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/app/INotificationManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/IProcessObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/IProcessObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/app/IProcessObserver$Stub$Proxy;->onForegroundActivitiesChanged(IIZ)V
+PLandroid/app/IProcessObserver$Stub$Proxy;->onForegroundServicesChanged(III)V
+HPLandroid/app/IProcessObserver$Stub$Proxy;->onProcessDied(II)V
+HSPLandroid/app/IProcessObserver$Stub;-><init>()V
+HSPLandroid/app/IProcessObserver$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/app/IProcessObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IProcessObserver;
+HPLandroid/app/IProcessObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/IRequestFinishCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/IRequestFinishCallback$Stub$Proxy;->requestFinish()V
+PLandroid/app/IRequestFinishCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IRequestFinishCallback;
+HSPLandroid/app/ISearchManager$Stub;-><init>()V
+HSPLandroid/app/ISearchManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/ISearchManager;
+PLandroid/app/ISearchManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/IServiceConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/app/IServiceConnection$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/IServiceConnection$Stub$Proxy;->connected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
HSPLandroid/app/IServiceConnection$Stub;-><init>()V
HSPLandroid/app/IServiceConnection$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/IServiceConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IServiceConnection;
HSPLandroid/app/IServiceConnection$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/ITaskStackListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/ITaskStackListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/app/ITaskStackListener$Stub$Proxy;->onActivityPinned(Ljava/lang/String;III)V
+PLandroid/app/ITaskStackListener$Stub$Proxy;->onActivityRequestedOrientationChanged(II)V
+PLandroid/app/ITaskStackListener$Stub$Proxy;->onActivityUnpinned()V
+PLandroid/app/ITaskStackListener$Stub$Proxy;->onPinnedStackAnimationEnded()V
+PLandroid/app/ITaskStackListener$Stub$Proxy;->onPinnedStackAnimationStarted()V
+PLandroid/app/ITaskStackListener$Stub$Proxy;->onRecentTaskListFrozenChanged(Z)V
+HPLandroid/app/ITaskStackListener$Stub$Proxy;->onRecentTaskListUpdated()V
+PLandroid/app/ITaskStackListener$Stub$Proxy;->onSizeCompatModeActivityChanged(ILandroid/os/IBinder;)V
+PLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskCreated(ILandroid/content/ComponentName;)V
+HPLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskDescriptionChanged(Landroid/app/ActivityManager$RunningTaskInfo;)V
+HPLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskDisplayChanged(II)V
+PLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskMovedToFront(Landroid/app/ActivityManager$RunningTaskInfo;)V
+PLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskRemovalStarted(Landroid/app/ActivityManager$RunningTaskInfo;)V
+PLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskRemoved(I)V
+PLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskSnapshotChanged(ILandroid/app/ActivityManager$TaskSnapshot;)V
+PLandroid/app/ITaskStackListener$Stub$Proxy;->onTaskStackChanged()V
HSPLandroid/app/ITaskStackListener$Stub;-><init>()V
+HSPLandroid/app/ITaskStackListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/ITaskStackListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/ITaskStackListener;
+HSPLandroid/app/ITaskStackListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/ITransientNotification$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/ITransientNotification$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/app/ITransientNotification$Stub$Proxy;->hide()V
+PLandroid/app/ITransientNotification$Stub$Proxy;->show(Landroid/os/IBinder;)V
+PLandroid/app/ITransientNotification$Stub;-><init>()V
+PLandroid/app/ITransientNotification$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/app/ITransientNotification$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/ITransientNotification;
+HPLandroid/app/ITransientNotification$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/app/IUiAutomationConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiAutomationConnection;
HSPLandroid/app/IUiModeManager$Stub$Proxy;->getCurrentModeType()I
+HSPLandroid/app/IUiModeManager$Stub$Proxy;->getNightMode()I
+HSPLandroid/app/IUiModeManager$Stub;-><init>()V
HSPLandroid/app/IUiModeManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiModeManager;
+PLandroid/app/IUiModeManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/app/IUiModeManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IUidObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IUidObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IUidObserver$Stub$Proxy;->onUidActive(I)V
+HSPLandroid/app/IUidObserver$Stub$Proxy;->onUidGone(IZ)V
+HSPLandroid/app/IUidObserver$Stub$Proxy;->onUidIdle(IZ)V
+HPLandroid/app/IUidObserver$Stub$Proxy;->onUidStateChanged(IIJI)V
+HSPLandroid/app/IUidObserver$Stub;-><init>()V
HSPLandroid/app/IUidObserver$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IUidObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUidObserver;
+HSPLandroid/app/IUidObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/app/IUriGrantsManager$Stub$Proxy;->getUriPermissions(Ljava/lang/String;ZZ)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/app/IUriGrantsManager$Stub;-><init>()V
+HSPLandroid/app/IUriGrantsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUriGrantsManager;
+PLandroid/app/IUriGrantsManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IUserSwitchObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/IUserSwitchObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/app/IUserSwitchObserver$Stub$Proxy;->onForegroundProfileSwitch(I)V
+PLandroid/app/IUserSwitchObserver$Stub$Proxy;->onLockedBootComplete(I)V
+HSPLandroid/app/IUserSwitchObserver$Stub;-><init>()V
+HSPLandroid/app/IUserSwitchObserver$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IUserSwitchObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUserSwitchObserver;
+HPLandroid/app/IUserSwitchObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getHeightHint(I)I
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperColors(III)Landroid/app/WallpaperColors;
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperInfo(I)Landroid/app/WallpaperInfo;
+HPLandroid/app/IWallpaperManager$Stub$Proxy;->getWallpaperWithFeature(Ljava/lang/String;Ljava/lang/String;Landroid/app/IWallpaperManagerCallback;ILandroid/os/Bundle;I)Landroid/os/ParcelFileDescriptor;
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;->getWidthHint(I)I
+HPLandroid/app/IWallpaperManager$Stub$Proxy;->isSetWallpaperAllowed(Ljava/lang/String;)Z
+HPLandroid/app/IWallpaperManager$Stub$Proxy;->isWallpaperSupported(Ljava/lang/String;)Z
+HSPLandroid/app/IWallpaperManager$Stub$Proxy;->registerWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;II)V
+HPLandroid/app/IWallpaperManager$Stub$Proxy;->setInAmbientMode(ZJ)V
+HSPLandroid/app/IWallpaperManager$Stub;-><init>()V
+HSPLandroid/app/IWallpaperManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IWallpaperManager;
+PLandroid/app/IWallpaperManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/app/IWallpaperManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/IWallpaperManagerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/IWallpaperManagerCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/app/IWallpaperManagerCallback$Stub$Proxy;->onWallpaperColorsChanged(Landroid/app/WallpaperColors;II)V
+PLandroid/app/IWallpaperManagerCallback$Stub;-><init>()V
+HSPLandroid/app/IWallpaperManagerCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/IWallpaperManagerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IWallpaperManagerCallback;
+PLandroid/app/InstantAppResolverService$1;-><init>(Landroid/app/InstantAppResolverService;)V
+HPLandroid/app/InstantAppResolverService$1;->getInstantAppResolveInfoList(Landroid/content/Intent;[IILjava/lang/String;ILandroid/os/IRemoteCallback;)V
+PLandroid/app/InstantAppResolverService$InstantAppResolutionCallback;-><init>(ILandroid/os/IRemoteCallback;)V
+HPLandroid/app/InstantAppResolverService$InstantAppResolutionCallback;->onInstantAppResolveInfo(Ljava/util/List;)V
+PLandroid/app/InstantAppResolverService$ServiceHandler;-><init>(Landroid/app/InstantAppResolverService;Landroid/os/Looper;)V
+HPLandroid/app/InstantAppResolverService$ServiceHandler;->handleMessage(Landroid/os/Message;)V
+PLandroid/app/InstantAppResolverService;-><clinit>()V
+PLandroid/app/InstantAppResolverService;-><init>()V
+PLandroid/app/InstantAppResolverService;->access$000()Z
+PLandroid/app/InstantAppResolverService;->attachBaseContext(Landroid/content/Context;)V
+PLandroid/app/InstantAppResolverService;->getLooper()Landroid/os/Looper;
+PLandroid/app/InstantAppResolverService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+PLandroid/app/InstantAppResolverService;->onGetInstantAppResolveInfo(Landroid/content/Intent;[ILandroid/os/UserHandle;Ljava/lang/String;Landroid/app/InstantAppResolverService$InstantAppResolutionCallback;)V
+PLandroid/app/InstantAppResolverService;->onGetInstantAppResolveInfo(Landroid/content/Intent;[ILjava/lang/String;Landroid/app/InstantAppResolverService$InstantAppResolutionCallback;)V
HSPLandroid/app/Instrumentation;-><init>()V
HSPLandroid/app/Instrumentation;->basicInit(Landroid/app/ActivityThread;)V
+HSPLandroid/app/Instrumentation;->callActivityOnCreate(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Instrumentation;->callActivityOnDestroy(Landroid/app/Activity;)V
+HPLandroid/app/Instrumentation;->callActivityOnNewIntent(Landroid/app/Activity;Landroid/content/Intent;)V
+HPLandroid/app/Instrumentation;->callActivityOnNewIntent(Landroid/app/Activity;Lcom/android/internal/content/ReferrerIntent;)V
+HSPLandroid/app/Instrumentation;->callActivityOnPause(Landroid/app/Activity;)V
+HSPLandroid/app/Instrumentation;->callActivityOnPostCreate(Landroid/app/Activity;Landroid/os/Bundle;)V
+HPLandroid/app/Instrumentation;->callActivityOnRestart(Landroid/app/Activity;)V
+HSPLandroid/app/Instrumentation;->callActivityOnRestoreInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Instrumentation;->callActivityOnResume(Landroid/app/Activity;)V
+HSPLandroid/app/Instrumentation;->callActivityOnSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V
+HSPLandroid/app/Instrumentation;->callActivityOnStart(Landroid/app/Activity;)V
+HSPLandroid/app/Instrumentation;->callActivityOnStop(Landroid/app/Activity;)V
+HSPLandroid/app/Instrumentation;->callActivityOnUserLeaving(Landroid/app/Activity;)V
HSPLandroid/app/Instrumentation;->callApplicationOnCreate(Landroid/app/Application;)V
+HSPLandroid/app/Instrumentation;->checkStartActivityResult(ILjava/lang/Object;)V
+HSPLandroid/app/Instrumentation;->execStartActivity(Landroid/content/Context;Landroid/os/IBinder;Landroid/os/IBinder;Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/Instrumentation$ActivityResult;
HSPLandroid/app/Instrumentation;->getFactory(Ljava/lang/String;)Landroid/app/AppComponentFactory;
+HSPLandroid/app/Instrumentation;->newActivity(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/app/Activity;
HSPLandroid/app/Instrumentation;->newApplication(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Context;)Landroid/app/Application;
HSPLandroid/app/Instrumentation;->onCreate(Landroid/os/Bundle;)V
+HSPLandroid/app/Instrumentation;->onEnterAnimationComplete()V
+HSPLandroid/app/Instrumentation;->postPerformCreate(Landroid/app/Activity;)V
+HSPLandroid/app/Instrumentation;->prePerformCreate(Landroid/app/Activity;)V
HSPLandroid/app/IntentReceiverLeaked;-><init>(Ljava/lang/String;)V
+HSPLandroid/app/IntentService$ServiceHandler;->handleMessage(Landroid/os/Message;)V
HSPLandroid/app/IntentService;-><init>(Ljava/lang/String;)V
HSPLandroid/app/IntentService;->onCreate()V
HSPLandroid/app/IntentService;->onDestroy()V
+HSPLandroid/app/IntentService;->onStart(Landroid/content/Intent;I)V
+HSPLandroid/app/IntentService;->onStartCommand(Landroid/content/Intent;II)I
+HPLandroid/app/IntentService;->setIntentRedelivery(Z)V
HSPLandroid/app/JobSchedulerImpl;-><init>(Landroid/app/job/IJobScheduler;)V
HSPLandroid/app/JobSchedulerImpl;->cancel(I)V
+HSPLandroid/app/JobSchedulerImpl;->cancelAll()V
HSPLandroid/app/JobSchedulerImpl;->enqueue(Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;)I
HSPLandroid/app/JobSchedulerImpl;->getAllPendingJobs()Ljava/util/List;
HSPLandroid/app/JobSchedulerImpl;->getPendingJob(I)Landroid/app/job/JobInfo;
HSPLandroid/app/JobSchedulerImpl;->schedule(Landroid/app/job/JobInfo;)I
HSPLandroid/app/JobSchedulerImpl;->scheduleAsPackage(Landroid/app/job/JobInfo;Ljava/lang/String;ILjava/lang/String;)I
HSPLandroid/app/KeyguardManager;-><init>(Landroid/content/Context;)V
+HPLandroid/app/KeyguardManager;->getPrivateNotificationsAllowed()Z
+HSPLandroid/app/KeyguardManager;->inKeyguardRestrictedInputMode()Z
+HSPLandroid/app/KeyguardManager;->isDeviceLocked()Z
HSPLandroid/app/KeyguardManager;->isDeviceLocked(I)Z
HSPLandroid/app/KeyguardManager;->isDeviceSecure()Z
HSPLandroid/app/KeyguardManager;->isDeviceSecure(I)Z
HSPLandroid/app/KeyguardManager;->isKeyguardLocked()Z
HSPLandroid/app/KeyguardManager;->isKeyguardSecure()Z
+HPLandroid/app/KeyguardManager;->setPrivateNotificationsAllowed(Z)V
HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args;-><init>(Landroid/app/LoadedApk$ReceiverDispatcher;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args;->getRunnable()Ljava/lang/Runnable;
HSPLandroid/app/LoadedApk$ReceiverDispatcher$Args;->lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args()V
@@ -857,6 +2571,7 @@ HSPLandroid/app/LoadedApk$ServiceDispatcher$InnerConnection;->connected(Landroid
HSPLandroid/app/LoadedApk$ServiceDispatcher$RunConnection;-><init>(Landroid/app/LoadedApk$ServiceDispatcher;Landroid/content/ComponentName;Landroid/os/IBinder;IZ)V
HSPLandroid/app/LoadedApk$ServiceDispatcher$RunConnection;->run()V
HSPLandroid/app/LoadedApk$ServiceDispatcher;-><init>(Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;I)V
+HSPLandroid/app/LoadedApk$ServiceDispatcher;-><init>(Landroid/content/ServiceConnection;Landroid/content/Context;Ljava/util/concurrent/Executor;I)V
HSPLandroid/app/LoadedApk$ServiceDispatcher;->connected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
PLandroid/app/LoadedApk$ServiceDispatcher;->death(Landroid/content/ComponentName;Landroid/os/IBinder;)V
HSPLandroid/app/LoadedApk$ServiceDispatcher;->doConnected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
@@ -899,42 +2614,185 @@ HSPLandroid/app/LoadedApk;->getServiceDispatcherCommon(Landroid/content/ServiceC
HSPLandroid/app/LoadedApk;->getSplitClassLoader(Ljava/lang/String;)Ljava/lang/ClassLoader;
HSPLandroid/app/LoadedApk;->getSplitPaths(Ljava/lang/String;)[Ljava/lang/String;
HSPLandroid/app/LoadedApk;->initializeJavaContextClassLoader()V
+HSPLandroid/app/LoadedApk;->installSystemApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/ClassLoader;)V
HSPLandroid/app/LoadedApk;->isSecurityViolation()Z
HSPLandroid/app/LoadedApk;->makeApplication(ZLandroid/app/Instrumentation;)Landroid/app/Application;
HSPLandroid/app/LoadedApk;->makePaths(Landroid/app/ActivityThread;ZLandroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;)V
HSPLandroid/app/LoadedApk;->removeContextRegistrations(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/app/LoadedApk;->rewriteRValues(Ljava/lang/ClassLoader;Ljava/lang/String;I)V
HSPLandroid/app/LoadedApk;->setApplicationInfo(Landroid/content/pm/ApplicationInfo;)V
HSPLandroid/app/LoadedApk;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V
HSPLandroid/app/LoadedApk;->setupJitProfileSupport()V
-PLandroid/app/Notification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Notification;
-PLandroid/app/Notification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-PLandroid/app/Notification$Action$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Notification$Action;
-PLandroid/app/Notification$Action$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-PLandroid/app/Notification$Action$1;->newArray(I)[Landroid/app/Notification$Action;
-PLandroid/app/Notification$Action$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/app/LoadedApk;->updateApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
+HPLandroid/app/LoaderManagerImpl$LoaderInfo;-><init>(Landroid/app/LoaderManagerImpl;ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)V
+HPLandroid/app/LoaderManagerImpl$LoaderInfo;->callOnLoadFinished(Landroid/content/Loader;Ljava/lang/Object;)V
+HPLandroid/app/LoaderManagerImpl$LoaderInfo;->onLoadCanceled(Landroid/content/Loader;)V
+HPLandroid/app/LoaderManagerImpl$LoaderInfo;->onLoadComplete(Landroid/content/Loader;Ljava/lang/Object;)V
+HPLandroid/app/LoaderManagerImpl$LoaderInfo;->reportStart()V
+HPLandroid/app/LoaderManagerImpl$LoaderInfo;->start()V
+HPLandroid/app/LoaderManagerImpl$LoaderInfo;->stop()V
+HPLandroid/app/LoaderManagerImpl;->access$000(Landroid/app/LoaderManagerImpl;)Landroid/app/FragmentHostCallback;
+HPLandroid/app/LoaderManagerImpl;->createAndInstallLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/app/LoaderManagerImpl$LoaderInfo;
+HPLandroid/app/LoaderManagerImpl;->createLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/app/LoaderManagerImpl$LoaderInfo;
+HPLandroid/app/LoaderManagerImpl;->destroyLoader(I)V
+HPLandroid/app/LoaderManagerImpl;->doReportStart()V
+HPLandroid/app/LoaderManagerImpl;->doStart()V
+HPLandroid/app/LoaderManagerImpl;->doStop()V
+HPLandroid/app/LoaderManagerImpl;->finishRetain()V
+HPLandroid/app/LoaderManagerImpl;->getLoader(I)Landroid/content/Loader;
+HPLandroid/app/LoaderManagerImpl;->hasRunningLoaders()Z
+HPLandroid/app/LoaderManagerImpl;->initLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/content/Loader;
+HPLandroid/app/LoaderManagerImpl;->installLoader(Landroid/app/LoaderManagerImpl$LoaderInfo;)V
+HPLandroid/app/LoaderManagerImpl;->restartLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/content/Loader;
+HPLandroid/app/Notification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Notification;
+HPLandroid/app/Notification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/Notification$Action$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Notification$Action;
+HPLandroid/app/Notification$Action$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/Notification$Action$1;->newArray(I)[Landroid/app/Notification$Action;
+HPLandroid/app/Notification$Action$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/app/Notification$Action$Builder;-><init>(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)V
+HSPLandroid/app/Notification$Action$Builder;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V
+PLandroid/app/Notification$Action$Builder;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZI)V
+HSPLandroid/app/Notification$Action$Builder;->addExtras(Landroid/os/Bundle;)Landroid/app/Notification$Action$Builder;
+HSPLandroid/app/Notification$Action$Builder;->addRemoteInput(Landroid/app/RemoteInput;)Landroid/app/Notification$Action$Builder;
+HSPLandroid/app/Notification$Action$Builder;->build()Landroid/app/Notification$Action;
+PLandroid/app/Notification$Action$Builder;->checkContextualActionNullFields()V
+HSPLandroid/app/Notification$Action$Builder;->setAllowGeneratedReplies(Z)Landroid/app/Notification$Action$Builder;
+HSPLandroid/app/Notification$Action$Builder;->setContextual(Z)Landroid/app/Notification$Action$Builder;
+HSPLandroid/app/Notification$Action$Builder;->setSemanticAction(I)Landroid/app/Notification$Action$Builder;
+HSPLandroid/app/Notification$Action;-><init>(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)V
HSPLandroid/app/Notification$Action;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZIZ)V
-PLandroid/app/Notification$Action;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/Notification$Action;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;Landroid/os/Bundle;[Landroid/app/RemoteInput;ZIZLandroid/app/Notification$1;)V
+HPLandroid/app/Notification$Action;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/Notification$Action;-><init>(Landroid/os/Parcel;Landroid/app/Notification$1;)V
+HPLandroid/app/Notification$Action;->clone()Landroid/app/Notification$Action;
+HPLandroid/app/Notification$Action;->getAllowGeneratedReplies()Z
HSPLandroid/app/Notification$Action;->getIcon()Landroid/graphics/drawable/Icon;
+HPLandroid/app/Notification$Action;->getRemoteInputs()[Landroid/app/RemoteInput;
+HPLandroid/app/Notification$Action;->getSemanticAction()I
+HPLandroid/app/Notification$Action;->isContextual()Z
HSPLandroid/app/Notification$Action;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/Notification$BigPictureStyle;-><init>()V
+HSPLandroid/app/Notification$BigPictureStyle;-><init>(Landroid/app/Notification$Builder;)V
+HSPLandroid/app/Notification$BigPictureStyle;->addExtras(Landroid/os/Bundle;)V
+PLandroid/app/Notification$BigPictureStyle;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
+HSPLandroid/app/Notification$BigPictureStyle;->bigPicture(Landroid/graphics/Bitmap;)Landroid/app/Notification$BigPictureStyle;
+HPLandroid/app/Notification$BigPictureStyle;->hasSummaryInHeader()Z
+HPLandroid/app/Notification$BigPictureStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$BigPictureStyle;->purgeResources()V
+HSPLandroid/app/Notification$BigPictureStyle;->reduceImageSizes(Landroid/content/Context;)V
+HPLandroid/app/Notification$BigPictureStyle;->restoreFromExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$BigPictureStyle;->setBigContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$BigPictureStyle;
+HSPLandroid/app/Notification$BigPictureStyle;->setSummaryText(Ljava/lang/CharSequence;)Landroid/app/Notification$BigPictureStyle;
HSPLandroid/app/Notification$BigTextStyle;-><init>()V
+HSPLandroid/app/Notification$BigTextStyle;-><init>(Landroid/app/Notification$Builder;)V
HSPLandroid/app/Notification$BigTextStyle;->addExtras(Landroid/os/Bundle;)V
+PLandroid/app/Notification$BigTextStyle;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
HSPLandroid/app/Notification$BigTextStyle;->bigText(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle;
-PLandroid/app/Notification$BigTextStyle;->restoreFromExtras(Landroid/os/Bundle;)V
+PLandroid/app/Notification$BigTextStyle;->getBigText()Ljava/lang/CharSequence;
+HPLandroid/app/Notification$BigTextStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$BigTextStyle;->makeContentView(Z)Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$BigTextStyle;->makeHeadsUpContentView(Z)Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$BigTextStyle;->restoreFromExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$BigTextStyle;->setBigContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle;
+HSPLandroid/app/Notification$BigTextStyle;->setSummaryText(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle;
+HPLandroid/app/Notification$BubbleMetadata;-><init>(Landroid/app/PendingIntent;Landroid/app/PendingIntent;Landroid/graphics/drawable/Icon;II)V
+HPLandroid/app/Notification$BubbleMetadata;-><init>(Landroid/app/PendingIntent;Landroid/app/PendingIntent;Landroid/graphics/drawable/Icon;IILandroid/app/Notification$1;)V
+HPLandroid/app/Notification$BubbleMetadata;->setFlags(I)V
+HSPLandroid/app/Notification$Builder;-><init>(Landroid/content/Context;)V
HSPLandroid/app/Notification$Builder;-><init>(Landroid/content/Context;Landroid/app/Notification;)V
HSPLandroid/app/Notification$Builder;-><init>(Landroid/content/Context;Ljava/lang/String;)V
+HPLandroid/app/Notification$Builder;->access$2300(Landroid/app/Notification$Builder;ILandroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$Builder;->access$2400(Landroid/app/Notification$Builder;)I
+HPLandroid/app/Notification$Builder;->access$2500(Landroid/app/Notification$Builder;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HPLandroid/app/Notification$Builder;->access$2600(Landroid/app/Notification$Builder;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HPLandroid/app/Notification$Builder;->access$2700(Landroid/app/Notification$Builder;Landroid/widget/RemoteViews;ILandroid/app/Notification$StandardTemplateParams;)V
+HPLandroid/app/Notification$Builder;->access$2800(Landroid/app/Notification$Builder;)Ljava/util/ArrayList;
+HPLandroid/app/Notification$Builder;->access$2802(Landroid/app/Notification$Builder;Ljava/util/ArrayList;)Ljava/util/ArrayList;
+HPLandroid/app/Notification$Builder;->access$2900(Landroid/app/Notification$Builder;)Ljava/util/ArrayList;
+HPLandroid/app/Notification$Builder;->access$2902(Landroid/app/Notification$Builder;Ljava/util/ArrayList;)Ljava/util/ArrayList;
+PLandroid/app/Notification$Builder;->access$300(Landroid/app/Notification$Builder;)Landroid/app/Notification;
+HPLandroid/app/Notification$Builder;->access$3100(Landroid/app/Notification$Builder;)I
+HSPLandroid/app/Notification$Builder;->access$3400(Landroid/app/Notification$Builder;)Landroid/content/Context;
+HPLandroid/app/Notification$Builder;->access$3700(Landroid/app/Notification$Builder;)I
+HPLandroid/app/Notification$Builder;->access$3800(Landroid/app/Notification$Builder;Landroid/app/Notification$StandardTemplateParams;)Z
+HPLandroid/app/Notification$Builder;->access$3900(Landroid/app/Notification$Builder;)I
+HPLandroid/app/Notification$Builder;->access$4000(Landroid/app/Notification$Builder;)Z
+HPLandroid/app/Notification$Builder;->access$4100(Landroid/app/Notification$Builder;ILandroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+HSPLandroid/app/Notification$Builder;->addAction(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;
+HSPLandroid/app/Notification$Builder;->addAction(Landroid/app/Notification$Action;)Landroid/app/Notification$Builder;
+HSPLandroid/app/Notification$Builder;->addExtras(Landroid/os/Bundle;)Landroid/app/Notification$Builder;
+HPLandroid/app/Notification$Builder;->addPerson(Landroid/app/Person;)Landroid/app/Notification$Builder;
+HPLandroid/app/Notification$Builder;->addPerson(Ljava/lang/String;)Landroid/app/Notification$Builder;
+HPLandroid/app/Notification$Builder;->applyStandardTemplate(ILandroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$Builder;->applyStandardTemplateWithActions(ILandroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$Builder;->bindExpandButton(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HPLandroid/app/Notification$Builder;->bindHeaderChronometerAndTime(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HPLandroid/app/Notification$Builder;->bindHeaderText(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HPLandroid/app/Notification$Builder;->bindHeaderTextSecondary(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HPLandroid/app/Notification$Builder;->bindLargeIcon(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)Z
+HPLandroid/app/Notification$Builder;->bindLargeIconAndReply(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)V
+HPLandroid/app/Notification$Builder;->bindNotificationHeader(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HPLandroid/app/Notification$Builder;->bindProfileBadge(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HPLandroid/app/Notification$Builder;->bindReplyIcon(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)Z
+HPLandroid/app/Notification$Builder;->bindSmallIcon(Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
HSPLandroid/app/Notification$Builder;->build()Landroid/app/Notification;
HSPLandroid/app/Notification$Builder;->buildUnstyled()Landroid/app/Notification;
+HPLandroid/app/Notification$Builder;->calculateMarginEnd(ZZ)I
+HPLandroid/app/Notification$Builder;->createBigContentView()Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$Builder;->createContentView()Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$Builder;->createContentView(Z)Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$Builder;->createHeadsUpContentView(Z)Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$Builder;->createSummaryText()Ljava/lang/CharSequence;
+HPLandroid/app/Notification$Builder;->ensureColorSpanContrast(Ljava/lang/CharSequence;I[Landroid/content/res/ColorStateList;)Ljava/lang/CharSequence;
+HPLandroid/app/Notification$Builder;->ensureColors(Landroid/app/Notification$StandardTemplateParams;)V
+PLandroid/app/Notification$Builder;->extend(Landroid/app/Notification$Extender;)Landroid/app/Notification$Builder;
+HPLandroid/app/Notification$Builder;->findReplyAction()Landroid/app/Notification$Action;
+HPLandroid/app/Notification$Builder;->generateActionButton(Landroid/app/Notification$Action;ZLandroid/app/Notification$StandardTemplateParams;)Landroid/widget/RemoteViews;
+PLandroid/app/Notification$Builder;->getAllExtras()Landroid/os/Bundle;
+HPLandroid/app/Notification$Builder;->getBigBaseLayoutResource()I
+HPLandroid/app/Notification$Builder;->getBigPictureLayoutResource()I
+HPLandroid/app/Notification$Builder;->getBigTextLayoutResource()I
+PLandroid/app/Notification$Builder;->getExtras()Landroid/os/Bundle;
+HPLandroid/app/Notification$Builder;->getHeadsUpStatusBarText(Z)Ljava/lang/CharSequence;
+HPLandroid/app/Notification$Builder;->getInboxLayoutResource()I
+HPLandroid/app/Notification$Builder;->getMessagingLayoutResource()I
+HPLandroid/app/Notification$Builder;->getPrimaryTextColor(Landroid/app/Notification$StandardTemplateParams;)I
+HPLandroid/app/Notification$Builder;->getProfileBadge()Landroid/graphics/Bitmap;
+HPLandroid/app/Notification$Builder;->getProfileBadgeDrawable()Landroid/graphics/drawable/Drawable;
+HPLandroid/app/Notification$Builder;->getSecondaryTextColor(Landroid/app/Notification$StandardTemplateParams;)I
+HPLandroid/app/Notification$Builder;->getStyle()Landroid/app/Notification$Style;
+HPLandroid/app/Notification$Builder;->handleProgressBar(Landroid/widget/RemoteViews;Landroid/os/Bundle;Landroid/app/Notification$StandardTemplateParams;)Z
+HPLandroid/app/Notification$Builder;->hasValidRemoteInput(Landroid/app/Notification$Action;)Z
+HPLandroid/app/Notification$Builder;->isColorized(Landroid/app/Notification$StandardTemplateParams;)Z
+HPLandroid/app/Notification$Builder;->loadHeaderAppName()Ljava/lang/String;
+HPLandroid/app/Notification$Builder;->makeHeaderExpanded(Landroid/widget/RemoteViews;)V
+HPLandroid/app/Notification$Builder;->makeLowPriorityContentView(Z)Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$Builder;->makeNotificationHeader()Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$Builder;->makeNotificationHeader(Landroid/app/Notification$StandardTemplateParams;)Landroid/widget/RemoteViews;
HSPLandroid/app/Notification$Builder;->maybeCloneStrippedForDelivery(Landroid/app/Notification;ZLandroid/content/Context;)Landroid/app/Notification;
-PLandroid/app/Notification$Builder;->recoverBuilder(Landroid/content/Context;Landroid/app/Notification;)Landroid/app/Notification$Builder;
+HPLandroid/app/Notification$Builder;->processLargeLegacyIcon(Landroid/graphics/drawable/Icon;Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HPLandroid/app/Notification$Builder;->processSmallIconColor(Landroid/graphics/drawable/Icon;Landroid/widget/RemoteViews;Landroid/app/Notification$StandardTemplateParams;)V
+HPLandroid/app/Notification$Builder;->processTextSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HPLandroid/app/Notification$Builder;->recoverBuilder(Landroid/content/Context;Landroid/app/Notification;)Landroid/app/Notification$Builder;
+HPLandroid/app/Notification$Builder;->resetNotificationHeader(Landroid/widget/RemoteViews;)V
+HPLandroid/app/Notification$Builder;->resetStandardTemplate(Landroid/widget/RemoteViews;)V
+HPLandroid/app/Notification$Builder;->resetStandardTemplateWithActions(Landroid/widget/RemoteViews;)V
+HPLandroid/app/Notification$Builder;->resolveContrastColor(Landroid/app/Notification$StandardTemplateParams;)I
+HPLandroid/app/Notification$Builder;->resolveNeutralColor()I
+HSPLandroid/app/Notification$Builder;->sanitizeColor()V
HSPLandroid/app/Notification$Builder;->setAllowSystemGeneratedContextualActions(Z)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setAutoCancel(Z)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setBadgeIconType(I)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setBubbleMetadata(Landroid/app/Notification$BubbleMetadata;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setCategory(Ljava/lang/String;)Landroid/app/Notification$Builder;
+PLandroid/app/Notification$Builder;->setChannelId(Ljava/lang/String;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setColor(I)Landroid/app/Notification$Builder;
+HPLandroid/app/Notification$Builder;->setColorPalette(II)V
HSPLandroid/app/Notification$Builder;->setContent(Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setContentInfo(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setContentIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;
+HPLandroid/app/Notification$Builder;->setContentMinHeight(Landroid/widget/RemoteViews;Z)V
HSPLandroid/app/Notification$Builder;->setContentText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setCustomContentView(Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder;
@@ -956,6 +2814,7 @@ HSPLandroid/app/Notification$Builder;->setOnlyAlertOnce(Z)Landroid/app/Notificat
HSPLandroid/app/Notification$Builder;->setPriority(I)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setProgress(IIZ)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setPublicVersion(Landroid/app/Notification;)Landroid/app/Notification$Builder;
+HPLandroid/app/Notification$Builder;->setRebuildStyledRemoteViews(Z)V
HSPLandroid/app/Notification$Builder;->setRemoteInputHistory([Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setShortcutId(Ljava/lang/String;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setShowWhen(Z)Landroid/app/Notification$Builder;
@@ -964,9 +2823,11 @@ HSPLandroid/app/Notification$Builder;->setSmallIcon(II)Landroid/app/Notification
HSPLandroid/app/Notification$Builder;->setSmallIcon(Landroid/graphics/drawable/Icon;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setSortKey(Ljava/lang/String;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setSound(Landroid/net/Uri;)Landroid/app/Notification$Builder;
+HSPLandroid/app/Notification$Builder;->setSound(Landroid/net/Uri;I)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setSound(Landroid/net/Uri;Landroid/media/AudioAttributes;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setStyle(Landroid/app/Notification$Style;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setSubText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
+HPLandroid/app/Notification$Builder;->setTextViewColorSecondary(Landroid/widget/RemoteViews;ILandroid/app/Notification$StandardTemplateParams;)V
HSPLandroid/app/Notification$Builder;->setTicker(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setTicker(Ljava/lang/CharSequence;Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setTimeoutAfter(J)Landroid/app/Notification$Builder;
@@ -974,93 +2835,436 @@ HSPLandroid/app/Notification$Builder;->setUsesChronometer(Z)Landroid/app/Notific
HSPLandroid/app/Notification$Builder;->setVibrate([J)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setVisibility(I)Landroid/app/Notification$Builder;
HSPLandroid/app/Notification$Builder;->setWhen(J)Landroid/app/Notification$Builder;
+HPLandroid/app/Notification$Builder;->shouldTintActionButtons()Z
+HPLandroid/app/Notification$Builder;->textColorsNeedInversion()Z
+PLandroid/app/Notification$Builder;->usesStandardHeader()Z
+HPLandroid/app/Notification$BuilderRemoteViews;->shouldUseStaticFilter()Z
+PLandroid/app/Notification$InboxStyle;-><init>()V
+HSPLandroid/app/Notification$InboxStyle;-><init>(Landroid/app/Notification$Builder;)V
+HSPLandroid/app/Notification$InboxStyle;->addExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$InboxStyle;->addLine(Ljava/lang/CharSequence;)Landroid/app/Notification$InboxStyle;
+HPLandroid/app/Notification$InboxStyle;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
+HPLandroid/app/Notification$InboxStyle;->getLines()Ljava/util/ArrayList;
+HPLandroid/app/Notification$InboxStyle;->handleInboxImageMargin(Landroid/widget/RemoteViews;IZI)V
+HPLandroid/app/Notification$InboxStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+PLandroid/app/Notification$InboxStyle;->restoreFromExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$InboxStyle;->setBigContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$InboxStyle;
+HSPLandroid/app/Notification$InboxStyle;->setSummaryText(Ljava/lang/CharSequence;)Landroid/app/Notification$InboxStyle;
+PLandroid/app/Notification$MediaStyle;-><init>()V
+HPLandroid/app/Notification$MediaStyle;->addExtras(Landroid/os/Bundle;)V
+PLandroid/app/Notification$MediaStyle;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
+HPLandroid/app/Notification$MediaStyle;->bindMediaActionButton(Landroid/widget/RemoteViews;ILandroid/app/Notification$Action;Landroid/app/Notification$StandardTemplateParams;)V
+HPLandroid/app/Notification$MediaStyle;->buildStyled(Landroid/app/Notification;)Landroid/app/Notification;
+HPLandroid/app/Notification$MediaStyle;->getActionColor(Landroid/app/Notification$StandardTemplateParams;)I
+HPLandroid/app/Notification$MediaStyle;->handleImage(Landroid/widget/RemoteViews;)V
+HPLandroid/app/Notification$MediaStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$MediaStyle;->makeContentView(Z)Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$MediaStyle;->makeMediaBigContentView()Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$MediaStyle;->makeMediaContentView()Landroid/widget/RemoteViews;
+PLandroid/app/Notification$MediaStyle;->restoreFromExtras(Landroid/os/Bundle;)V
+HPLandroid/app/Notification$MediaStyle;->setMediaSession(Landroid/media/session/MediaSession$Token;)Landroid/app/Notification$MediaStyle;
+HPLandroid/app/Notification$MediaStyle;->setShowActionsInCompactView([I)Landroid/app/Notification$MediaStyle;
+HSPLandroid/app/Notification$MessagingStyle$Message;-><init>(Ljava/lang/CharSequence;JLandroid/app/Person;)V
+HSPLandroid/app/Notification$MessagingStyle$Message;-><init>(Ljava/lang/CharSequence;JLandroid/app/Person;Z)V
+HSPLandroid/app/Notification$MessagingStyle$Message;->access$3500(Landroid/app/Notification$MessagingStyle$Message;)Ljava/lang/CharSequence;
+HSPLandroid/app/Notification$MessagingStyle$Message;->access$3600(Landroid/app/Notification$MessagingStyle$Message;)Landroid/app/Person;
+HSPLandroid/app/Notification$MessagingStyle$Message;->getBundleArrayForMessages(Ljava/util/List;)[Landroid/os/Bundle;
+HPLandroid/app/Notification$MessagingStyle$Message;->getDataMimeType()Ljava/lang/String;
+PLandroid/app/Notification$MessagingStyle$Message;->getDataUri()Landroid/net/Uri;
+PLandroid/app/Notification$MessagingStyle$Message;->getExtras()Landroid/os/Bundle;
+HPLandroid/app/Notification$MessagingStyle$Message;->getMessageFromBundle(Landroid/os/Bundle;)Landroid/app/Notification$MessagingStyle$Message;
+HPLandroid/app/Notification$MessagingStyle$Message;->getMessagesFromBundleArray([Landroid/os/Parcelable;)Ljava/util/List;
+HPLandroid/app/Notification$MessagingStyle$Message;->getSender()Ljava/lang/CharSequence;
+PLandroid/app/Notification$MessagingStyle$Message;->getSenderPerson()Landroid/app/Person;
+PLandroid/app/Notification$MessagingStyle$Message;->getText()Ljava/lang/CharSequence;
+HPLandroid/app/Notification$MessagingStyle$Message;->getTimestamp()J
+HPLandroid/app/Notification$MessagingStyle$Message;->isRemoteInputHistory()Z
+PLandroid/app/Notification$MessagingStyle$Message;->setData(Ljava/lang/String;Landroid/net/Uri;)Landroid/app/Notification$MessagingStyle$Message;
+HSPLandroid/app/Notification$MessagingStyle$Message;->toBundle()Landroid/os/Bundle;
+PLandroid/app/Notification$MessagingStyle;-><init>()V
+HSPLandroid/app/Notification$MessagingStyle;-><init>(Landroid/app/Person;)V
+HSPLandroid/app/Notification$MessagingStyle;->addExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$MessagingStyle;->addMessage(Landroid/app/Notification$MessagingStyle$Message;)Landroid/app/Notification$MessagingStyle;
+PLandroid/app/Notification$MessagingStyle;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
+HSPLandroid/app/Notification$MessagingStyle;->findLatestIncomingMessage()Landroid/app/Notification$MessagingStyle$Message;
+HSPLandroid/app/Notification$MessagingStyle;->findLatestIncomingMessage(Ljava/util/List;)Landroid/app/Notification$MessagingStyle$Message;
+HSPLandroid/app/Notification$MessagingStyle;->fixTitleAndTextExtras(Landroid/os/Bundle;)V
+HPLandroid/app/Notification$MessagingStyle;->getHeadsUpStatusBarText()Ljava/lang/CharSequence;
+PLandroid/app/Notification$MessagingStyle;->getMessages()Ljava/util/List;
+HPLandroid/app/Notification$MessagingStyle;->hasOnlyWhiteSpaceSenders()Z
+HPLandroid/app/Notification$MessagingStyle;->isWhiteSpace(Ljava/lang/CharSequence;)Z
+HPLandroid/app/Notification$MessagingStyle;->makeBigContentView()Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$MessagingStyle;->makeContentView(Z)Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$MessagingStyle;->makeHeadsUpContentView(Z)Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$MessagingStyle;->makeMessagingView(ZZ)Landroid/widget/RemoteViews;
+PLandroid/app/Notification$MessagingStyle;->restoreFromExtras(Landroid/os/Bundle;)V
+HSPLandroid/app/Notification$MessagingStyle;->setConversationTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$MessagingStyle;
+HSPLandroid/app/Notification$MessagingStyle;->setGroupConversation(Z)Landroid/app/Notification$MessagingStyle;
+HSPLandroid/app/Notification$MessagingStyle;->validate(Landroid/content/Context;)V
+HSPLandroid/app/Notification$StandardTemplateParams;-><init>()V
+HSPLandroid/app/Notification$StandardTemplateParams;-><init>(Landroid/app/Notification$1;)V
+HPLandroid/app/Notification$StandardTemplateParams;->fillTextsFrom(Landroid/app/Notification$Builder;)Landroid/app/Notification$StandardTemplateParams;
+HPLandroid/app/Notification$StandardTemplateParams;->hasProgress(Z)Landroid/app/Notification$StandardTemplateParams;
+HPLandroid/app/Notification$StandardTemplateParams;->headerTextSecondary(Ljava/lang/CharSequence;)Landroid/app/Notification$StandardTemplateParams;
+HPLandroid/app/Notification$StandardTemplateParams;->hideLargeIcon(Z)Landroid/app/Notification$StandardTemplateParams;
+HPLandroid/app/Notification$StandardTemplateParams;->hideReplyIcon(Z)Landroid/app/Notification$StandardTemplateParams;
+HPLandroid/app/Notification$StandardTemplateParams;->reset()Landroid/app/Notification$StandardTemplateParams;
+HPLandroid/app/Notification$StandardTemplateParams;->setMaxRemoteInputHistory(I)Landroid/app/Notification$StandardTemplateParams;
+HPLandroid/app/Notification$StandardTemplateParams;->text(Ljava/lang/CharSequence;)Landroid/app/Notification$StandardTemplateParams;
+HPLandroid/app/Notification$StandardTemplateParams;->title(Ljava/lang/CharSequence;)Landroid/app/Notification$StandardTemplateParams;
+HSPLandroid/app/Notification$Style;-><init>()V
+HPLandroid/app/Notification$Style;->access$3300(Landroid/app/Notification$Style;)Ljava/lang/CharSequence;
HSPLandroid/app/Notification$Style;->addExtras(Landroid/os/Bundle;)V
+HPLandroid/app/Notification$Style;->build()Landroid/app/Notification;
HSPLandroid/app/Notification$Style;->buildStyled(Landroid/app/Notification;)Landroid/app/Notification;
+HPLandroid/app/Notification$Style;->checkBuilder()V
+HPLandroid/app/Notification$Style;->getHeadsUpStatusBarText()Ljava/lang/CharSequence;
+HPLandroid/app/Notification$Style;->getStandardView(ILandroid/app/Notification$StandardTemplateParams;Landroid/app/Notification$TemplateBindResult;)Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$Style;->hasSummaryInHeader()Z
+HSPLandroid/app/Notification$Style;->internalSetBigContentTitle(Ljava/lang/CharSequence;)V
+HSPLandroid/app/Notification$Style;->internalSetSummaryText(Ljava/lang/CharSequence;)V
+HPLandroid/app/Notification$Style;->makeContentView(Z)Landroid/widget/RemoteViews;
+HPLandroid/app/Notification$Style;->makeHeadsUpContentView(Z)Landroid/widget/RemoteViews;
HSPLandroid/app/Notification$Style;->purgeResources()V
HSPLandroid/app/Notification$Style;->reduceImageSizes(Landroid/content/Context;)V
+HPLandroid/app/Notification$Style;->restoreFromExtras(Landroid/os/Bundle;)V
HSPLandroid/app/Notification$Style;->setBuilder(Landroid/app/Notification$Builder;)V
HSPLandroid/app/Notification$Style;->validate(Landroid/content/Context;)V
+HPLandroid/app/Notification$TemplateBindResult;-><init>()V
+HPLandroid/app/Notification$TemplateBindResult;-><init>(Landroid/app/Notification$1;)V
+HPLandroid/app/Notification$TemplateBindResult;->getIconMarginEnd()I
+HPLandroid/app/Notification$TemplateBindResult;->isRightIconContainerVisible()Z
+HPLandroid/app/Notification$TemplateBindResult;->setIconMarginEnd(I)V
+HPLandroid/app/Notification$TemplateBindResult;->setRightIconContainerVisible(Z)V
+PLandroid/app/Notification$TvExtender;-><init>()V
+PLandroid/app/Notification$TvExtender;->extend(Landroid/app/Notification$Builder;)Landroid/app/Notification$Builder;
+PLandroid/app/Notification$TvExtender;->setChannelId(Ljava/lang/String;)Landroid/app/Notification$TvExtender;
HSPLandroid/app/Notification;-><init>()V
-HSPLandroid/app/Notification;-><init>(Landroid/os/Parcel;)V
+HPLandroid/app/Notification;-><init>(Landroid/os/Parcel;)V
HSPLandroid/app/Notification;->access$1002(Landroid/app/Notification;Landroid/app/Notification$BubbleMetadata;)Landroid/app/Notification$BubbleMetadata;
+PLandroid/app/Notification;->access$1102(Landroid/app/Notification;J)J
+HPLandroid/app/Notification;->access$1300(Landroid/app/Notification;)Landroid/graphics/drawable/Icon;
+PLandroid/app/Notification;->access$1302(Landroid/app/Notification;Landroid/graphics/drawable/Icon;)Landroid/graphics/drawable/Icon;
+PLandroid/app/Notification;->access$1402(Landroid/app/Notification;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/app/Notification;->access$1600(Landroid/app/Notification;)Z
+HPLandroid/app/Notification;->access$1800(Landroid/app/Notification;)Z
+PLandroid/app/Notification;->access$2002(Landroid/app/Notification;J)J
HSPLandroid/app/Notification;->access$2202(Landroid/app/Notification;Z)Z
-HPLandroid/app/Notification;->cloneInto(Landroid/app/Notification;Z)V
+HSPLandroid/app/Notification;->access$502(Landroid/app/Notification;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/app/Notification;->access$902(Landroid/app/Notification;I)I
+PLandroid/app/Notification;->addFieldsFromContext(Landroid/content/Context;Landroid/app/Notification;)V
+PLandroid/app/Notification;->addFieldsFromContext(Landroid/content/pm/ApplicationInfo;Landroid/app/Notification;)V
+PLandroid/app/Notification;->areActionsVisiblyDifferent(Landroid/app/Notification;Landroid/app/Notification;)Z
+PLandroid/app/Notification;->areRemoteViewsChanged(Landroid/app/Notification$Builder;Landroid/app/Notification$Builder;)Z
+PLandroid/app/Notification;->areRemoteViewsChanged(Landroid/widget/RemoteViews;Landroid/widget/RemoteViews;)Z
+PLandroid/app/Notification;->areStyledNotificationsVisiblyDifferent(Landroid/app/Notification$Builder;Landroid/app/Notification$Builder;)Z
+HPLandroid/app/Notification;->clone()Landroid/app/Notification;
+HSPLandroid/app/Notification;->cloneInto(Landroid/app/Notification;Z)V
+PLandroid/app/Notification;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLandroid/app/Notification;->findRemoteInputActionPair(Z)Landroid/util/Pair;
+PLandroid/app/Notification;->fixDuplicateExtra(Landroid/os/Parcelable;Ljava/lang/String;)V
+PLandroid/app/Notification;->fixDuplicateExtras()V
+HPLandroid/app/Notification;->getAllowSystemGeneratedContextualActions()Z
+PLandroid/app/Notification;->getBubbleMetadata()Landroid/app/Notification$BubbleMetadata;
HPLandroid/app/Notification;->getChannelId()Ljava/lang/String;
-HSPLandroid/app/Notification;->getGroup()Ljava/lang/String;
-PLandroid/app/Notification;->getLargeIcon()Landroid/graphics/drawable/Icon;
+HPLandroid/app/Notification;->getContextualActions()Ljava/util/List;
+HPLandroid/app/Notification;->getGroup()Ljava/lang/String;
+PLandroid/app/Notification;->getGroupAlertBehavior()I
+HPLandroid/app/Notification;->getLargeIcon()Landroid/graphics/drawable/Icon;
HSPLandroid/app/Notification;->getNotificationStyle()Ljava/lang/Class;
HSPLandroid/app/Notification;->getNotificationStyleClass(Ljava/lang/String;)Ljava/lang/Class;
+HPLandroid/app/Notification;->getShortcutId()Ljava/lang/String;
HSPLandroid/app/Notification;->getSmallIcon()Landroid/graphics/drawable/Icon;
-HSPLandroid/app/Notification;->getSortKey()Ljava/lang/String;
+HPLandroid/app/Notification;->getSortKey()Ljava/lang/String;
+PLandroid/app/Notification;->getTimeoutAfter()J
+HPLandroid/app/Notification;->hasCompletedProgress()Z
+HPLandroid/app/Notification;->hasMediaSession()Z
+HPLandroid/app/Notification;->isColorized()Z
+HPLandroid/app/Notification;->isColorizedMedia()Z
+HPLandroid/app/Notification;->isForegroundService()Z
+PLandroid/app/Notification;->isGroupChild()Z
+HPLandroid/app/Notification;->isGroupSummary()Z
+HPLandroid/app/Notification;->isMediaNotification()Z
HSPLandroid/app/Notification;->lambda$writeToParcel$0$Notification(Landroid/os/Parcel;Landroid/app/PendingIntent;Landroid/os/Parcel;I)V
-HSPLandroid/app/Notification;->readFromParcelImpl(Landroid/os/Parcel;)V
+HPLandroid/app/Notification;->lightenPayload()V
+HPLandroid/app/Notification;->readFromParcelImpl(Landroid/os/Parcel;)V
HSPLandroid/app/Notification;->reduceImageSizes(Landroid/content/Context;)V
HSPLandroid/app/Notification;->reduceImageSizesForRemoteView(Landroid/widget/RemoteViews;Landroid/content/Context;Z)V
HSPLandroid/app/Notification;->removeTextSizeSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
HSPLandroid/app/Notification;->safeCharSequence(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
HSPLandroid/app/Notification;->setSmallIcon(Landroid/graphics/drawable/Icon;)V
+HPLandroid/app/Notification;->showsChronometer()Z
+HPLandroid/app/Notification;->showsTime()Z
+PLandroid/app/Notification;->suppressAlertingDueToGrouping()Z
+HPLandroid/app/Notification;->toString()Ljava/lang/String;
+HPLandroid/app/Notification;->visibilityToString(I)Ljava/lang/String;
+HPLandroid/app/Notification;->visitUris(Ljava/util/function/Consumer;)V
HSPLandroid/app/Notification;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/Notification;->writeToParcelImpl(Landroid/os/Parcel;I)V
HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/NotificationChannel;
HSPLandroid/app/NotificationChannel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/app/NotificationChannel;-><init>(Landroid/os/Parcel;)V
HSPLandroid/app/NotificationChannel;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;I)V
+HSPLandroid/app/NotificationChannel;->canBubble()Z
+HSPLandroid/app/NotificationChannel;->canBypassDnd()Z
+HSPLandroid/app/NotificationChannel;->canShowBadge()Z
+HPLandroid/app/NotificationChannel;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+HPLandroid/app/NotificationChannel;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HSPLandroid/app/NotificationChannel;->enableLights(Z)V
HSPLandroid/app/NotificationChannel;->enableVibration(Z)V
+HSPLandroid/app/NotificationChannel;->equals(Ljava/lang/Object;)Z
HSPLandroid/app/NotificationChannel;->getAudioAttributes()Landroid/media/AudioAttributes;
+HSPLandroid/app/NotificationChannel;->getDescription()Ljava/lang/String;
+HSPLandroid/app/NotificationChannel;->getGroup()Ljava/lang/String;
HSPLandroid/app/NotificationChannel;->getId()Ljava/lang/String;
HSPLandroid/app/NotificationChannel;->getImportance()I
+HSPLandroid/app/NotificationChannel;->getLightColor()I
+HSPLandroid/app/NotificationChannel;->getLockscreenVisibility()I
+HSPLandroid/app/NotificationChannel;->getName()Ljava/lang/CharSequence;
+HSPLandroid/app/NotificationChannel;->getOriginalImportance()I
+HSPLandroid/app/NotificationChannel;->getSound()Landroid/net/Uri;
HSPLandroid/app/NotificationChannel;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/app/NotificationChannel;->getUserLockedFields()I
+HSPLandroid/app/NotificationChannel;->getVibrationPattern()[J
+PLandroid/app/NotificationChannel;->hasUserSetImportance()Z
+HSPLandroid/app/NotificationChannel;->hashCode()I
+HSPLandroid/app/NotificationChannel;->isBlockableSystem()Z
+HSPLandroid/app/NotificationChannel;->isDeleted()Z
+HSPLandroid/app/NotificationChannel;->isFgServiceShown()Z
+HSPLandroid/app/NotificationChannel;->lockFields(I)V
+HSPLandroid/app/NotificationChannel;->longArrayToString([J)Ljava/lang/String;
+PLandroid/app/NotificationChannel;->populateFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLandroid/app/NotificationChannel;->populateFromXml(Lorg/xmlpull/v1/XmlPullParser;ZLandroid/content/Context;)V
+HSPLandroid/app/NotificationChannel;->safeAudioAttributes(Lorg/xmlpull/v1/XmlPullParser;)Landroid/media/AudioAttributes;
+HSPLandroid/app/NotificationChannel;->safeBool(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
+HSPLandroid/app/NotificationChannel;->safeInt(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
+HSPLandroid/app/NotificationChannel;->safeLongArray(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[J)[J
+HSPLandroid/app/NotificationChannel;->safeUri(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/app/NotificationChannel;->setAllowBubbles(Z)V
HSPLandroid/app/NotificationChannel;->setBlockableSystem(Z)V
+HSPLandroid/app/NotificationChannel;->setBypassDnd(Z)V
+HSPLandroid/app/NotificationChannel;->setDeleted(Z)V
HSPLandroid/app/NotificationChannel;->setDescription(Ljava/lang/String;)V
+HSPLandroid/app/NotificationChannel;->setFgServiceShown(Z)V
HSPLandroid/app/NotificationChannel;->setGroup(Ljava/lang/String;)V
+PLandroid/app/NotificationChannel;->setImportance(I)V
+HSPLandroid/app/NotificationChannel;->setImportanceLockedByCriticalDeviceFunction(Z)V
+HSPLandroid/app/NotificationChannel;->setImportanceLockedByOEM(Z)V
+HSPLandroid/app/NotificationChannel;->setLightColor(I)V
+HSPLandroid/app/NotificationChannel;->setLockscreenVisibility(I)V
+PLandroid/app/NotificationChannel;->setName(Ljava/lang/CharSequence;)V
+HSPLandroid/app/NotificationChannel;->setOriginalImportance(I)V
HSPLandroid/app/NotificationChannel;->setShowBadge(Z)V
HSPLandroid/app/NotificationChannel;->setSound(Landroid/net/Uri;Landroid/media/AudioAttributes;)V
+HSPLandroid/app/NotificationChannel;->setVibrationPattern([J)V
+HSPLandroid/app/NotificationChannel;->shouldShowLights()Z
+HSPLandroid/app/NotificationChannel;->shouldVibrate()Z
+PLandroid/app/NotificationChannel;->toJson()Lorg/json/JSONObject;
+HPLandroid/app/NotificationChannel;->toString()Ljava/lang/String;
+HSPLandroid/app/NotificationChannel;->tryParseInt(Ljava/lang/String;I)I
HSPLandroid/app/NotificationChannel;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/NotificationChannel;->writeXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/app/NotificationChannel;->writeXml(Lorg/xmlpull/v1/XmlSerializer;ZLandroid/content/Context;)V
HSPLandroid/app/NotificationChannelGroup$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/NotificationChannelGroup;
HSPLandroid/app/NotificationChannelGroup$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/app/NotificationChannelGroup;-><init>(Landroid/os/Parcel;)V
HSPLandroid/app/NotificationChannelGroup;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;)V
+HPLandroid/app/NotificationChannelGroup;->addChannel(Landroid/app/NotificationChannel;)V
+HPLandroid/app/NotificationChannelGroup;->clone()Landroid/app/NotificationChannelGroup;
+HPLandroid/app/NotificationChannelGroup;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/app/NotificationChannelGroup;->equals(Ljava/lang/Object;)Z
+HSPLandroid/app/NotificationChannelGroup;->getChannels()Ljava/util/List;
+HSPLandroid/app/NotificationChannelGroup;->getDescription()Ljava/lang/String;
HSPLandroid/app/NotificationChannelGroup;->getId()Ljava/lang/String;
+HSPLandroid/app/NotificationChannelGroup;->getName()Ljava/lang/CharSequence;
+HSPLandroid/app/NotificationChannelGroup;->getTrimmedString(Ljava/lang/String;)Ljava/lang/String;
+PLandroid/app/NotificationChannelGroup;->getUserLockedFields()I
+HSPLandroid/app/NotificationChannelGroup;->hashCode()I
HSPLandroid/app/NotificationChannelGroup;->isBlocked()Z
+PLandroid/app/NotificationChannelGroup;->lockFields(I)V
+HSPLandroid/app/NotificationChannelGroup;->populateFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLandroid/app/NotificationChannelGroup;->safeBool(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
+HSPLandroid/app/NotificationChannelGroup;->setBlocked(Z)V
+PLandroid/app/NotificationChannelGroup;->setChannels(Ljava/util/List;)V
+HSPLandroid/app/NotificationChannelGroup;->setDescription(Ljava/lang/String;)V
+PLandroid/app/NotificationChannelGroup;->toJson()Lorg/json/JSONObject;
+HPLandroid/app/NotificationChannelGroup;->toString()Ljava/lang/String;
+PLandroid/app/NotificationChannelGroup;->unlockFields(I)V
HSPLandroid/app/NotificationChannelGroup;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/NotificationChannelGroup;->writeXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HPLandroid/app/NotificationHistory$HistoricalNotification$Builder;-><init>()V
+HPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->build()Landroid/app/NotificationHistory$HistoricalNotification;
+HPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setChannelId(Ljava/lang/String;)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setChannelName(Ljava/lang/String;)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setIcon(Landroid/graphics/drawable/Icon;)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setPackage(Ljava/lang/String;)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setPostedTimeMs(J)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setText(Ljava/lang/String;)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setTitle(Ljava/lang/String;)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HPLandroid/app/NotificationHistory$HistoricalNotification$Builder;->setUid(I)Landroid/app/NotificationHistory$HistoricalNotification$Builder;
+HPLandroid/app/NotificationHistory$HistoricalNotification;-><init>()V
+PLandroid/app/NotificationHistory$HistoricalNotification;-><init>(Landroid/app/NotificationHistory$1;)V
+PLandroid/app/NotificationHistory$HistoricalNotification;->access$102(Landroid/app/NotificationHistory$HistoricalNotification;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/app/NotificationHistory$HistoricalNotification;->access$202(Landroid/app/NotificationHistory$HistoricalNotification;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/app/NotificationHistory$HistoricalNotification;->access$302(Landroid/app/NotificationHistory$HistoricalNotification;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/app/NotificationHistory$HistoricalNotification;->access$402(Landroid/app/NotificationHistory$HistoricalNotification;I)I
+PLandroid/app/NotificationHistory$HistoricalNotification;->access$502(Landroid/app/NotificationHistory$HistoricalNotification;I)I
+PLandroid/app/NotificationHistory$HistoricalNotification;->access$602(Landroid/app/NotificationHistory$HistoricalNotification;J)J
+PLandroid/app/NotificationHistory$HistoricalNotification;->access$702(Landroid/app/NotificationHistory$HistoricalNotification;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/app/NotificationHistory$HistoricalNotification;->access$802(Landroid/app/NotificationHistory$HistoricalNotification;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/app/NotificationHistory$HistoricalNotification;->access$902(Landroid/app/NotificationHistory$HistoricalNotification;Landroid/graphics/drawable/Icon;)Landroid/graphics/drawable/Icon;
+PLandroid/app/NotificationHistory$HistoricalNotification;->getUserId()I
+HSPLandroid/app/NotificationManager$Policy$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/NotificationManager$Policy;
+HSPLandroid/app/NotificationManager$Policy$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/NotificationManager$Policy;-><init>(IIIII)V
+HSPLandroid/app/NotificationManager$Policy;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/NotificationManager$Policy;->allowAlarms()Z
+HSPLandroid/app/NotificationManager$Policy;->allowCalls()Z
+PLandroid/app/NotificationManager$Policy;->allowCallsFrom()I
+PLandroid/app/NotificationManager$Policy;->allowEvents()Z
+HSPLandroid/app/NotificationManager$Policy;->allowMedia()Z
+PLandroid/app/NotificationManager$Policy;->allowMessages()Z
+HSPLandroid/app/NotificationManager$Policy;->allowRepeatCallers()Z
+HSPLandroid/app/NotificationManager$Policy;->allowSystem()Z
+HSPLandroid/app/NotificationManager$Policy;->areAllVisualEffectsSuppressed(I)Z
+PLandroid/app/NotificationManager$Policy;->bitwiseToProtoEnum(Landroid/util/proto/ProtoOutputStream;JI)V
+HSPLandroid/app/NotificationManager$Policy;->copy()Landroid/app/NotificationManager$Policy;
+PLandroid/app/NotificationManager$Policy;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/app/NotificationManager$Policy;->effectToString(I)Ljava/lang/String;
+HSPLandroid/app/NotificationManager$Policy;->equals(Ljava/lang/Object;)Z
+HSPLandroid/app/NotificationManager$Policy;->hashCode()I
+HSPLandroid/app/NotificationManager$Policy;->priorityCategoriesToString(I)Ljava/lang/String;
+HSPLandroid/app/NotificationManager$Policy;->priorityCategoryToString(I)Ljava/lang/String;
+HSPLandroid/app/NotificationManager$Policy;->prioritySendersToString(I)Ljava/lang/String;
+HSPLandroid/app/NotificationManager$Policy;->suppressedEffectsToString(I)Ljava/lang/String;
+HSPLandroid/app/NotificationManager$Policy;->suppressedVisualEffectsEqual(II)Z
+HSPLandroid/app/NotificationManager$Policy;->toString()Ljava/lang/String;
+HSPLandroid/app/NotificationManager$Policy;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/NotificationManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
HSPLandroid/app/NotificationManager;->areNotificationsEnabled()Z
HSPLandroid/app/NotificationManager;->cancel(I)V
HSPLandroid/app/NotificationManager;->cancel(Ljava/lang/String;I)V
+HSPLandroid/app/NotificationManager;->cancelAll()V
HSPLandroid/app/NotificationManager;->cancelAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)V
HSPLandroid/app/NotificationManager;->createNotificationChannel(Landroid/app/NotificationChannel;)V
HSPLandroid/app/NotificationManager;->createNotificationChannelGroup(Landroid/app/NotificationChannelGroup;)V
HSPLandroid/app/NotificationManager;->createNotificationChannelGroups(Ljava/util/List;)V
HSPLandroid/app/NotificationManager;->createNotificationChannels(Ljava/util/List;)V
HSPLandroid/app/NotificationManager;->deleteNotificationChannel(Ljava/lang/String;)V
+PLandroid/app/NotificationManager;->fixLegacySmallIcon(Landroid/app/Notification;Ljava/lang/String;)V
HSPLandroid/app/NotificationManager;->fixNotification(Landroid/app/Notification;)Landroid/app/Notification;
+PLandroid/app/NotificationManager;->from(Landroid/content/Context;)Landroid/app/NotificationManager;
HSPLandroid/app/NotificationManager;->getActiveNotifications()[Landroid/service/notification/StatusBarNotification;
+HSPLandroid/app/NotificationManager;->getAutomaticZenRule(Ljava/lang/String;)Landroid/app/AutomaticZenRule;
+HSPLandroid/app/NotificationManager;->getAutomaticZenRules()Ljava/util/Map;
+HSPLandroid/app/NotificationManager;->getConsolidatedNotificationPolicy()Landroid/app/NotificationManager$Policy;
+HSPLandroid/app/NotificationManager;->getCurrentInterruptionFilter()I
HSPLandroid/app/NotificationManager;->getNotificationChannel(Ljava/lang/String;)Landroid/app/NotificationChannel;
+HSPLandroid/app/NotificationManager;->getNotificationChannelGroup(Ljava/lang/String;)Landroid/app/NotificationChannelGroup;
+HSPLandroid/app/NotificationManager;->getNotificationChannelGroups()Ljava/util/List;
HSPLandroid/app/NotificationManager;->getNotificationChannels()Ljava/util/List;
+HSPLandroid/app/NotificationManager;->getNotificationPolicy()Landroid/app/NotificationManager$Policy;
HSPLandroid/app/NotificationManager;->getService()Landroid/app/INotificationManager;
+HSPLandroid/app/NotificationManager;->getZenMode()I
+HPLandroid/app/NotificationManager;->getZenModeConfig()Landroid/service/notification/ZenModeConfig;
+HSPLandroid/app/NotificationManager;->isNotificationPolicyAccessGranted()Z
+HSPLandroid/app/NotificationManager;->notify(ILandroid/app/Notification;)V
HSPLandroid/app/NotificationManager;->notify(Ljava/lang/String;ILandroid/app/Notification;)V
HSPLandroid/app/NotificationManager;->notifyAsUser(Ljava/lang/String;ILandroid/app/Notification;Landroid/os/UserHandle;)V
+HPLandroid/app/NotificationManager;->setZenMode(ILandroid/net/Uri;Ljava/lang/String;)V
+PLandroid/app/NotificationManager;->silenceNotificationSound()V
+HSPLandroid/app/NotificationManager;->updateAutomaticZenRule(Ljava/lang/String;Landroid/app/AutomaticZenRule;)Z
+PLandroid/app/NotificationManager;->zenModeFromInterruptionFilter(II)I
+HSPLandroid/app/NotificationManager;->zenModeToInterruptionFilter(I)I
HSPLandroid/app/PendingIntent$2;->createFromParcel(Landroid/os/Parcel;)Landroid/app/PendingIntent;
HSPLandroid/app/PendingIntent$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/PendingIntent$CanceledException;-><init>()V
+HSPLandroid/app/PendingIntent$FinishedDispatcher;-><init>(Landroid/app/PendingIntent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)V
+HPLandroid/app/PendingIntent$FinishedDispatcher;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
+HPLandroid/app/PendingIntent$FinishedDispatcher;->run()V
HSPLandroid/app/PendingIntent;-><init>(Landroid/content/IIntentSender;)V
-HSPLandroid/app/PendingIntent;-><init>(Landroid/os/IBinder;Ljava/lang/Object;)V
+PLandroid/app/PendingIntent;-><init>(Landroid/os/IBinder;Ljava/lang/Object;)V
HSPLandroid/app/PendingIntent;->buildServicePendingIntent(Landroid/content/Context;ILandroid/content/Intent;II)Landroid/app/PendingIntent;
+HSPLandroid/app/PendingIntent;->cancel()V
+HSPLandroid/app/PendingIntent;->describeContents()I
+HPLandroid/app/PendingIntent;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HSPLandroid/app/PendingIntent;->equals(Ljava/lang/Object;)Z
+HSPLandroid/app/PendingIntent;->getActivities(Landroid/content/Context;I[Landroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/PendingIntent;
HSPLandroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
HSPLandroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/Bundle;)Landroid/app/PendingIntent;
+HSPLandroid/app/PendingIntent;->getActivityAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/PendingIntent;
HSPLandroid/app/PendingIntent;->getBroadcast(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
HSPLandroid/app/PendingIntent;->getBroadcastAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/UserHandle;)Landroid/app/PendingIntent;
-PLandroid/app/PendingIntent;->getCreatorPackage()Ljava/lang/String;
+HSPLandroid/app/PendingIntent;->getCreatorPackage()Ljava/lang/String;
HSPLandroid/app/PendingIntent;->getCreatorUid()I
+HPLandroid/app/PendingIntent;->getCreatorUserHandle()Landroid/os/UserHandle;
+PLandroid/app/PendingIntent;->getIntent()Landroid/content/Intent;
+HPLandroid/app/PendingIntent;->getIntentSender()Landroid/content/IntentSender;
HSPLandroid/app/PendingIntent;->getService(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
+HSPLandroid/app/PendingIntent;->getTag(Ljava/lang/String;)Ljava/lang/String;
+PLandroid/app/PendingIntent;->getTarget()Landroid/content/IIntentSender;
+HSPLandroid/app/PendingIntent;->getTargetPackage()Ljava/lang/String;
HSPLandroid/app/PendingIntent;->hashCode()I
+HSPLandroid/app/PendingIntent;->isActivity()Z
+HPLandroid/app/PendingIntent;->isBroadcast()Z
+HPLandroid/app/PendingIntent;->isForegroundService()Z
+PLandroid/app/PendingIntent;->readPendingIntentOrNullFromParcel(Landroid/os/Parcel;)Landroid/app/PendingIntent;
+HPLandroid/app/PendingIntent;->registerCancelListener(Landroid/app/PendingIntent$CancelListener;)V
HSPLandroid/app/PendingIntent;->send()V
+HSPLandroid/app/PendingIntent;->send(Landroid/content/Context;ILandroid/content/Intent;)V
+HPLandroid/app/PendingIntent;->send(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;Ljava/lang/String;)V
+HSPLandroid/app/PendingIntent;->send(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;Ljava/lang/String;Landroid/os/Bundle;)V
HSPLandroid/app/PendingIntent;->sendAndReturnResult(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;Ljava/lang/String;Landroid/os/Bundle;)I
+PLandroid/app/PendingIntent;->setOnMarshaledListener(Landroid/app/PendingIntent$OnMarshaledListener;)V
+HSPLandroid/app/PendingIntent;->toString()Ljava/lang/String;
+HPLandroid/app/PendingIntent;->unregisterCancelListener(Landroid/app/PendingIntent$CancelListener;)V
+HSPLandroid/app/PendingIntent;->writePendingIntentOrNullToParcel(Landroid/app/PendingIntent;Landroid/os/Parcel;)V
HSPLandroid/app/PendingIntent;->writeToParcel(Landroid/os/Parcel;I)V
HPLandroid/app/Person$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/Person;
HPLandroid/app/Person$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/Person$Builder;-><init>()V
+HPLandroid/app/Person$Builder;-><init>(Landroid/app/Person;)V
+HPLandroid/app/Person$Builder;-><init>(Landroid/app/Person;Landroid/app/Person$1;)V
+HSPLandroid/app/Person$Builder;->build()Landroid/app/Person;
+HSPLandroid/app/Person$Builder;->setBot(Z)Landroid/app/Person$Builder;
+HSPLandroid/app/Person$Builder;->setIcon(Landroid/graphics/drawable/Icon;)Landroid/app/Person$Builder;
+HSPLandroid/app/Person$Builder;->setImportant(Z)Landroid/app/Person$Builder;
+HSPLandroid/app/Person$Builder;->setKey(Ljava/lang/String;)Landroid/app/Person$Builder;
+HSPLandroid/app/Person$Builder;->setName(Ljava/lang/CharSequence;)Landroid/app/Person$Builder;
+HSPLandroid/app/Person$Builder;->setUri(Ljava/lang/String;)Landroid/app/Person$Builder;
+HSPLandroid/app/Person;-><init>(Landroid/app/Person$Builder;)V
HPLandroid/app/Person;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/Person;-><init>(Landroid/os/Parcel;Landroid/app/Person$1;)V
+HPLandroid/app/Person;->access$1000(Landroid/app/Person;)Ljava/lang/String;
+HPLandroid/app/Person;->access$1100(Landroid/app/Person;)Z
+HPLandroid/app/Person;->access$1200(Landroid/app/Person;)Z
+HPLandroid/app/Person;->access$700(Landroid/app/Person;)Ljava/lang/CharSequence;
+HPLandroid/app/Person;->access$800(Landroid/app/Person;)Landroid/graphics/drawable/Icon;
+HPLandroid/app/Person;->access$900(Landroid/app/Person;)Ljava/lang/String;
+HPLandroid/app/Person;->equals(Ljava/lang/Object;)Z
+HPLandroid/app/Person;->getIcon()Landroid/graphics/drawable/Icon;
+PLandroid/app/Person;->getKey()Ljava/lang/String;
+HSPLandroid/app/Person;->getName()Ljava/lang/CharSequence;
+PLandroid/app/Person;->hashCode()I
+HPLandroid/app/Person;->toBuilder()Landroid/app/Person$Builder;
+HSPLandroid/app/Person;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/app/PictureInPictureParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/PictureInPictureParams;
+HPLandroid/app/PictureInPictureParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/PictureInPictureParams$Builder;-><init>()V
+PLandroid/app/PictureInPictureParams$Builder;->build()Landroid/app/PictureInPictureParams;
+HPLandroid/app/PictureInPictureParams$Builder;->setActions(Ljava/util/List;)Landroid/app/PictureInPictureParams$Builder;
+HPLandroid/app/PictureInPictureParams$Builder;->setAspectRatio(Landroid/util/Rational;)Landroid/app/PictureInPictureParams$Builder;
+HPLandroid/app/PictureInPictureParams;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/PictureInPictureParams;-><init>(Landroid/util/Rational;Ljava/util/List;Landroid/graphics/Rect;)V
+HPLandroid/app/PictureInPictureParams;->copyOnlySet(Landroid/app/PictureInPictureParams;)V
+PLandroid/app/PictureInPictureParams;->hasSetActions()Z
+PLandroid/app/PictureInPictureParams;->hasSetAspectRatio()Z
+PLandroid/app/PictureInPictureParams;->hasSourceBoundsHint()Z
+HPLandroid/app/PictureInPictureParams;->truncateActions(I)V
+HPLandroid/app/PictureInPictureParams;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/ProcessMemoryState$1;-><init>()V
+PLandroid/app/ProcessMemoryState;-><clinit>()V
+HPLandroid/app/ProcessMemoryState;-><init>(IILjava/lang/String;I)V
HSPLandroid/app/QueuedWork$QueuedWorkHandler;-><init>(Landroid/os/Looper;)V
HSPLandroid/app/QueuedWork$QueuedWorkHandler;->handleMessage(Landroid/os/Message;)V
HSPLandroid/app/QueuedWork;->access$000()V
@@ -1074,20 +3278,57 @@ HSPLandroid/app/QueuedWork;->waitToFinish()V
HSPLandroid/app/ReceiverRestrictedContext;-><init>(Landroid/content/Context;)V
HSPLandroid/app/ReceiverRestrictedContext;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
HSPLandroid/app/ReceiverRestrictedContext;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
+PLandroid/app/RemoteAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/RemoteAction;
+PLandroid/app/RemoteAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/RemoteAction;-><init>(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V
+HPLandroid/app/RemoteAction;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/RemoteAction;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HPLandroid/app/RemoteAction;->getActionIntent()Landroid/app/PendingIntent;
+HPLandroid/app/RemoteAction;->getContentDescription()Ljava/lang/CharSequence;
+HPLandroid/app/RemoteAction;->getIcon()Landroid/graphics/drawable/Icon;
+HPLandroid/app/RemoteAction;->getTitle()Ljava/lang/CharSequence;
+HPLandroid/app/RemoteAction;->isEnabled()Z
+HPLandroid/app/RemoteAction;->shouldShowIcon()Z
+HSPLandroid/app/RemoteAction;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/RemoteInput$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/RemoteInput;
+PLandroid/app/RemoteInput$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/RemoteInput$1;->newArray(I)[Landroid/app/RemoteInput;
+PLandroid/app/RemoteInput$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/app/RemoteInput$Builder;-><init>(Ljava/lang/String;)V
+HSPLandroid/app/RemoteInput$Builder;->addExtras(Landroid/os/Bundle;)Landroid/app/RemoteInput$Builder;
+HSPLandroid/app/RemoteInput$Builder;->build()Landroid/app/RemoteInput;
+HSPLandroid/app/RemoteInput$Builder;->setAllowFreeFormInput(Z)Landroid/app/RemoteInput$Builder;
+HSPLandroid/app/RemoteInput$Builder;->setChoices([Ljava/lang/CharSequence;)Landroid/app/RemoteInput$Builder;
+HSPLandroid/app/RemoteInput$Builder;->setFlag(IZ)V
+HSPLandroid/app/RemoteInput$Builder;->setLabel(Ljava/lang/CharSequence;)Landroid/app/RemoteInput$Builder;
+PLandroid/app/RemoteInput;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/RemoteInput;-><init>(Landroid/os/Parcel;Landroid/app/RemoteInput$1;)V
+HSPLandroid/app/RemoteInput;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/CharSequence;IILandroid/os/Bundle;Landroid/util/ArraySet;)V
+HSPLandroid/app/RemoteInput;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/CharSequence;IILandroid/os/Bundle;Landroid/util/ArraySet;Landroid/app/RemoteInput$1;)V
+HSPLandroid/app/RemoteInput;->getAllowFreeFormInput()Z
+HSPLandroid/app/RemoteInput;->getChoices()[Ljava/lang/CharSequence;
+HSPLandroid/app/RemoteInput;->getEditChoicesBeforeSending()I
+HSPLandroid/app/RemoteInput;->isDataOnly()Z
+HSPLandroid/app/RemoteInput;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/ResourcesManager$ApkKey;-><init>(Ljava/lang/String;ZZ)V
HSPLandroid/app/ResourcesManager$ApkKey;->equals(Ljava/lang/Object;)Z
HSPLandroid/app/ResourcesManager$ApkKey;->hashCode()I
HSPLandroid/app/ResourcesManager;-><init>()V
+HSPLandroid/app/ResourcesManager;->appendLibAssetsForMainAssetPath(Ljava/lang/String;[Ljava/lang/String;)V
HSPLandroid/app/ResourcesManager;->applyCompatConfigurationLocked(ILandroid/content/res/Configuration;)Z
HSPLandroid/app/ResourcesManager;->applyConfigurationToResourcesLocked(Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)Z
HSPLandroid/app/ResourcesManager;->applyConfigurationToResourcesLocked(Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/ResourcesKey;Landroid/content/res/ResourcesImpl;)V
HSPLandroid/app/ResourcesManager;->applyNewResourceDirsLocked(Landroid/content/pm/ApplicationInfo;[Ljava/lang/String;)V
HSPLandroid/app/ResourcesManager;->cleanupReferences(Landroid/os/IBinder;)V
HSPLandroid/app/ResourcesManager;->createAssetManager(Landroid/content/res/ResourcesKey;)Landroid/content/res/AssetManager;
+HSPLandroid/app/ResourcesManager;->createBaseActivityResources(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
HSPLandroid/app/ResourcesManager;->createResources(Landroid/os/IBinder;Landroid/content/res/ResourcesKey;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
+HSPLandroid/app/ResourcesManager;->createResourcesForActivityLocked(Landroid/os/IBinder;Ljava/lang/ClassLoader;Landroid/content/res/ResourcesImpl;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources;
HSPLandroid/app/ResourcesManager;->createResourcesImpl(Landroid/content/res/ResourcesKey;)Landroid/content/res/ResourcesImpl;
HSPLandroid/app/ResourcesManager;->createResourcesLocked(Ljava/lang/ClassLoader;Landroid/content/res/ResourcesImpl;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Resources;
+HPLandroid/app/ResourcesManager;->findKeyForResourceImplLocked(Landroid/content/res/ResourcesImpl;)Landroid/content/res/ResourcesKey;
HSPLandroid/app/ResourcesManager;->findOrCreateResourcesImplForKeyLocked(Landroid/content/res/ResourcesKey;)Landroid/content/res/ResourcesImpl;
+HSPLandroid/app/ResourcesManager;->findResourcesForActivityLocked(Landroid/os/IBinder;Landroid/content/res/ResourcesKey;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
HSPLandroid/app/ResourcesManager;->findResourcesImplForKeyLocked(Landroid/content/res/ResourcesKey;)Landroid/content/res/ResourcesImpl;
HSPLandroid/app/ResourcesManager;->generateConfig(Landroid/content/res/ResourcesKey;Landroid/util/DisplayMetrics;)Landroid/content/res/Configuration;
HSPLandroid/app/ResourcesManager;->getAdjustedDisplay(ILandroid/content/res/Resources;)Landroid/view/Display;
@@ -1096,28 +3337,67 @@ HSPLandroid/app/ResourcesManager;->getConfiguration()Landroid/content/res/Config
HSPLandroid/app/ResourcesManager;->getDisplayMetrics()Landroid/util/DisplayMetrics;
HSPLandroid/app/ResourcesManager;->getDisplayMetrics(ILandroid/view/DisplayAdjustments;)Landroid/util/DisplayMetrics;
HSPLandroid/app/ResourcesManager;->getInstance()Landroid/app/ResourcesManager;
+HSPLandroid/app/ResourcesManager;->getOrCreateActivityResourcesStructLocked(Landroid/os/IBinder;)Landroid/app/ResourcesManager$ActivityResources;
HSPLandroid/app/ResourcesManager;->getResources(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;)Landroid/content/res/Resources;
+HSPLandroid/app/ResourcesManager;->isSameResourcesOverrideConfig(Landroid/os/IBinder;Landroid/content/res/Configuration;)Z
+HSPLandroid/app/ResourcesManager;->lambda$static$0(Ljava/lang/ref/WeakReference;)Z
HSPLandroid/app/ResourcesManager;->loadApkAssets(Ljava/lang/String;ZZ)Landroid/content/res/ApkAssets;
HSPLandroid/app/ResourcesManager;->overlayPathToIdmapPath(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/app/ResourcesManager;->rebaseActivityOverrideConfig(Landroid/content/res/Resources;Landroid/content/res/Configuration;Landroid/content/res/Configuration;I)Landroid/content/res/ResourcesKey;
+HSPLandroid/app/ResourcesManager;->rebaseKeyForActivity(Landroid/os/IBinder;Landroid/content/res/ResourcesKey;)V
HSPLandroid/app/ResourcesManager;->redirectResourcesToNewImplLocked(Landroid/util/ArrayMap;)V
+HSPLandroid/app/ResourcesManager;->updateResourcesForActivity(Landroid/os/IBinder;Landroid/content/res/Configuration;IZ)V
+HPLandroid/app/ResultInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ResultInfo;
+HPLandroid/app/ResultInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/ResultInfo;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/ResultInfo;-><init>(Ljava/lang/String;IILandroid/content/Intent;)V
+PLandroid/app/ResultInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/SearchManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HPLandroid/app/SearchManager;->getSearchableInfo(Landroid/content/ComponentName;)Landroid/app/SearchableInfo;
+HPLandroid/app/SearchManager;->stopSearch()V
+HPLandroid/app/SearchableInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/SearchableInfo;
+HPLandroid/app/SearchableInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/SearchableInfo;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;Landroid/content/ComponentName;)V
+HPLandroid/app/SearchableInfo;-><init>(Landroid/os/Parcel;)V
+HPLandroid/app/SearchableInfo;->createActivityContext(Landroid/content/Context;Landroid/content/ComponentName;)Landroid/content/Context;
+HPLandroid/app/SearchableInfo;->getActivityMetaData(Landroid/content/Context;Landroid/content/pm/ActivityInfo;I)Landroid/app/SearchableInfo;
+HPLandroid/app/SearchableInfo;->getActivityMetaData(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;Landroid/content/ComponentName;)Landroid/app/SearchableInfo;
+HPLandroid/app/SearchableInfo;->getImeOptions()I
+HPLandroid/app/SearchableInfo;->getInputType()I
+PLandroid/app/SearchableInfo;->getSearchActivity()Landroid/content/ComponentName;
+HPLandroid/app/SearchableInfo;->getSuggestAuthority()Ljava/lang/String;
+HPLandroid/app/SearchableInfo;->getSuggestThreshold()I
+HPLandroid/app/SearchableInfo;->getVoiceSearchEnabled()Z
+HPLandroid/app/SearchableInfo;->getVoiceSearchLaunchRecognizer()Z
+HPLandroid/app/SearchableInfo;->getVoiceSearchLaunchWebSearch()Z
+PLandroid/app/SearchableInfo;->shouldIncludeInGlobalSearch()Z
+PLandroid/app/SearchableInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/Service;-><init>()V
HSPLandroid/app/Service;->attach(Landroid/content/Context;Landroid/app/ActivityThread;Ljava/lang/String;Landroid/os/IBinder;Landroid/app/Application;Ljava/lang/Object;)V
HSPLandroid/app/Service;->detachAndCleanUp()V
+PLandroid/app/Service;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
HSPLandroid/app/Service;->getApplication()Landroid/app/Application;
HSPLandroid/app/Service;->getClassName()Ljava/lang/String;
HSPLandroid/app/Service;->onConfigurationChanged(Landroid/content/res/Configuration;)V
HSPLandroid/app/Service;->onCreate()V
HSPLandroid/app/Service;->onDestroy()V
+PLandroid/app/Service;->onLowMemory()V
HSPLandroid/app/Service;->onStart(Landroid/content/Intent;I)V
HSPLandroid/app/Service;->onStartCommand(Landroid/content/Intent;II)I
-PLandroid/app/Service;->onTrimMemory(I)V
+HSPLandroid/app/Service;->onTrimMemory(I)V
HSPLandroid/app/Service;->onUnbind(Landroid/content/Intent;)Z
+HSPLandroid/app/Service;->startForeground(ILandroid/app/Notification;)V
+HSPLandroid/app/Service;->stopForeground(I)V
+HSPLandroid/app/Service;->stopForeground(Z)V
HSPLandroid/app/Service;->stopSelf()V
HSPLandroid/app/Service;->stopSelf(I)V
+HSPLandroid/app/Service;->stopSelfResult(I)Z
HSPLandroid/app/ServiceConnectionLeaked;-><init>(Ljava/lang/String;)V
HSPLandroid/app/ServiceStartArgs$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/ServiceStartArgs;
HSPLandroid/app/ServiceStartArgs$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/app/ServiceStartArgs;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/ServiceStartArgs;-><init>(ZIILandroid/content/Intent;)V
+HSPLandroid/app/ServiceStartArgs;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/SharedPreferencesImpl$1;-><init>(Landroid/app/SharedPreferencesImpl;Ljava/lang/String;)V
HSPLandroid/app/SharedPreferencesImpl$1;->run()V
HSPLandroid/app/SharedPreferencesImpl$2;-><init>(Landroid/app/SharedPreferencesImpl;Landroid/app/SharedPreferencesImpl$MemoryCommitResult;ZLjava/lang/Runnable;)V
@@ -1150,6 +3430,7 @@ HSPLandroid/app/SharedPreferencesImpl;->access$300(Landroid/app/SharedPreference
HSPLandroid/app/SharedPreferencesImpl;->access$308(Landroid/app/SharedPreferencesImpl;)I
HSPLandroid/app/SharedPreferencesImpl;->access$310(Landroid/app/SharedPreferencesImpl;)I
HSPLandroid/app/SharedPreferencesImpl;->access$400(Landroid/app/SharedPreferencesImpl;)Ljava/util/Map;
+HSPLandroid/app/SharedPreferencesImpl;->access$402(Landroid/app/SharedPreferencesImpl;Ljava/util/Map;)Ljava/util/Map;
HSPLandroid/app/SharedPreferencesImpl;->access$500(Landroid/app/SharedPreferencesImpl;)Ljava/util/WeakHashMap;
HSPLandroid/app/SharedPreferencesImpl;->access$600(Landroid/app/SharedPreferencesImpl;)J
HSPLandroid/app/SharedPreferencesImpl;->access$608(Landroid/app/SharedPreferencesImpl;)J
@@ -1175,18 +3456,45 @@ HSPLandroid/app/SharedPreferencesImpl;->startLoadFromDisk()V
HSPLandroid/app/SharedPreferencesImpl;->startReloadIfChangedUnexpectedly()V
HSPLandroid/app/SharedPreferencesImpl;->unregisterOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V
HSPLandroid/app/SharedPreferencesImpl;->writeToFile(Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Z)V
+PLandroid/app/StatsManager$StatsdDeathRecipient;-><init>(Landroid/app/StatsManager;)V
+PLandroid/app/StatsManager$StatsdDeathRecipient;-><init>(Landroid/app/StatsManager;Landroid/app/StatsManager$1;)V
+PLandroid/app/StatsManager;->addConfig(J[B)V
+PLandroid/app/StatsManager;->getIStatsdLocked()Landroid/os/IStatsd;
+PLandroid/app/StatsManager;->getRegisteredExperimentIds()[J
+PLandroid/app/StatsManager;->getReports(J)[B
+PLandroid/app/StatsManager;->getStatsMetadata()[B
+PLandroid/app/StatsManager;->setActiveConfigsChangedOperation(Landroid/app/PendingIntent;)[J
+PLandroid/app/StatsManager;->setFetchReportsOperation(Landroid/app/PendingIntent;J)V
HSPLandroid/app/StatusBarManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/app/SystemServiceRegistry$101;->createService(Landroid/app/ContextImpl;)Landroid/app/role/RoleManager;
+HPLandroid/app/StatusBarManager;->disable(I)V
+HPLandroid/app/StatusBarManager;->getService()Lcom/android/internal/statusbar/IStatusBarService;
+PLandroid/app/StatusBarManager;->windowStateToString(I)Ljava/lang/String;
+HSPLandroid/app/SynchronousUserSwitchObserver;-><init>()V
+HSPLandroid/app/SystemServiceRegistry$101;->createService(Landroid/app/ContextImpl;)Landroid/permission/PermissionManager;
HSPLandroid/app/SystemServiceRegistry$101;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$106;->createService()Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$108;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$109;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$102;->createService(Landroid/app/ContextImpl;)Landroid/permission/PermissionControllerManager;
+HSPLandroid/app/SystemServiceRegistry$102;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$103;->createService(Landroid/app/ContextImpl;)Landroid/app/role/RoleManager;
+HSPLandroid/app/SystemServiceRegistry$103;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+PLandroid/app/SystemServiceRegistry$105;->createService(Landroid/app/ContextImpl;)Landroid/content/rollback/RollbackManager;
+PLandroid/app/SystemServiceRegistry$105;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$107;->createService(Landroid/app/ContextImpl;)Landroid/os/BatteryStatsManager;
+HSPLandroid/app/SystemServiceRegistry$107;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$109;->createService()Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$10;->createService(Landroid/app/ContextImpl;)Landroid/bluetooth/BluetoothManager;
+HSPLandroid/app/SystemServiceRegistry$10;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$111;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$112;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$12;->createService(Landroid/app/ContextImpl;)Landroid/view/textclassifier/TextClassificationManager;
HSPLandroid/app/SystemServiceRegistry$12;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$13;->createService(Landroid/app/ContextImpl;)Landroid/content/ClipboardManager;
HSPLandroid/app/SystemServiceRegistry$13;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$14;->createService(Landroid/content/Context;)Landroid/net/ConnectivityManager;
HSPLandroid/app/SystemServiceRegistry$14;->createService(Landroid/content/Context;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$15;->createService()Landroid/os/IBinder;
+HSPLandroid/app/SystemServiceRegistry$15;->createService()Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$18;->createService()Landroid/location/CountryDetector;
+HSPLandroid/app/SystemServiceRegistry$18;->createService()Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$19;->createService(Landroid/app/ContextImpl;)Landroid/app/admin/DevicePolicyManager;
HSPLandroid/app/SystemServiceRegistry$19;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$1;->createService(Landroid/app/ContextImpl;)Landroid/view/accessibility/AccessibilityManager;
@@ -1195,6 +3503,10 @@ HSPLandroid/app/SystemServiceRegistry$20;->createService(Landroid/app/ContextImp
HSPLandroid/app/SystemServiceRegistry$20;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$21;->createService(Landroid/app/ContextImpl;)Landroid/os/BatteryManager;
HSPLandroid/app/SystemServiceRegistry$21;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$22;->createService(Landroid/app/ContextImpl;)Landroid/nfc/NfcManager;
+HSPLandroid/app/SystemServiceRegistry$22;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Landroid/os/DropBoxManager;
+HSPLandroid/app/SystemServiceRegistry$23;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$24;->createService()Landroid/hardware/input/InputManager;
HSPLandroid/app/SystemServiceRegistry$24;->createService()Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$25;->createService(Landroid/app/ContextImpl;)Landroid/hardware/display/DisplayManager;
@@ -1219,16 +3531,22 @@ HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImp
HSPLandroid/app/SystemServiceRegistry$33;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Landroid/os/PowerManager;
HSPLandroid/app/SystemServiceRegistry$35;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$37;->createService(Landroid/app/ContextImpl;)Landroid/app/SearchManager;
+HSPLandroid/app/SystemServiceRegistry$37;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$38;->createService(Landroid/app/ContextImpl;)Landroid/hardware/SensorManager;
HSPLandroid/app/SystemServiceRegistry$38;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$3;->createService(Landroid/app/ContextImpl;)Landroid/accounts/AccountManager;
HSPLandroid/app/SystemServiceRegistry$3;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+PLandroid/app/SystemServiceRegistry$40;->createService(Landroid/app/ContextImpl;)Landroid/app/StatsManager;
+PLandroid/app/SystemServiceRegistry$40;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$41;->createService(Landroid/app/ContextImpl;)Landroid/app/StatusBarManager;
HSPLandroid/app/SystemServiceRegistry$41;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Landroid/os/storage/StorageManager;
HSPLandroid/app/SystemServiceRegistry$42;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$43;->createService(Landroid/app/ContextImpl;)Landroid/app/usage/StorageStatsManager;
HSPLandroid/app/SystemServiceRegistry$43;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$44;->createService(Landroid/app/ContextImpl;)Landroid/os/SystemUpdateManager;
+HSPLandroid/app/SystemServiceRegistry$44;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Landroid/telephony/TelephonyRegistryManager;
HSPLandroid/app/SystemServiceRegistry$45;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$46;->createService(Landroid/app/ContextImpl;)Landroid/telecom/TelecomManager;
@@ -1241,66 +3559,180 @@ HSPLandroid/app/SystemServiceRegistry$4;->createService(Landroid/app/ContextImpl
HSPLandroid/app/SystemServiceRegistry$4;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$51;->createService(Landroid/app/ContextImpl;)Landroid/os/Vibrator;
HSPLandroid/app/SystemServiceRegistry$51;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$55;->createService(Landroid/app/ContextImpl;)Landroid/view/WindowManager;
+HSPLandroid/app/SystemServiceRegistry$52;->createService(Landroid/app/ContextImpl;)Landroid/app/WallpaperManager;
+HSPLandroid/app/SystemServiceRegistry$52;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$55;->createService(Landroid/app/ContextImpl;)Landroid/net/wifi/WifiCondManager;
HSPLandroid/app/SystemServiceRegistry$55;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$56;->createService(Landroid/app/ContextImpl;)Landroid/os/UserManager;
+HSPLandroid/app/SystemServiceRegistry$56;->createService(Landroid/app/ContextImpl;)Landroid/view/WindowManager;
HSPLandroid/app/SystemServiceRegistry$56;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Landroid/app/AppOpsManager;
+HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Landroid/os/UserManager;
HSPLandroid/app/SystemServiceRegistry$57;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$64;->createService(Landroid/app/ContextImpl;)Landroid/media/session/MediaSessionManager;
-HSPLandroid/app/SystemServiceRegistry$64;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$66;->createService(Landroid/app/ContextImpl;)Landroid/hardware/fingerprint/FingerprintManager;
-HSPLandroid/app/SystemServiceRegistry$66;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$71;->createService(Landroid/app/ContextImpl;)Landroid/net/NetworkScoreManager;
-HSPLandroid/app/SystemServiceRegistry$71;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$72;->createService(Landroid/app/ContextImpl;)Landroid/app/usage/UsageStatsManager;
+HSPLandroid/app/SystemServiceRegistry$58;->createService(Landroid/app/ContextImpl;)Landroid/app/AppOpsManager;
+HSPLandroid/app/SystemServiceRegistry$58;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$59;->createService(Landroid/app/ContextImpl;)Landroid/hardware/camera2/CameraManager;
+HSPLandroid/app/SystemServiceRegistry$59;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$5;->createService(Landroid/app/ContextImpl;)Landroid/app/ActivityTaskManager;
+HSPLandroid/app/SystemServiceRegistry$5;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$60;->createService(Landroid/app/ContextImpl;)Landroid/content/pm/LauncherApps;
+HSPLandroid/app/SystemServiceRegistry$60;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$61;->createService(Landroid/app/ContextImpl;)Landroid/content/RestrictionsManager;
+HSPLandroid/app/SystemServiceRegistry$61;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$62;->createService(Landroid/app/ContextImpl;)Landroid/print/PrintManager;
+HSPLandroid/app/SystemServiceRegistry$62;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$65;->createService(Landroid/app/ContextImpl;)Landroid/media/session/MediaSessionManager;
+HSPLandroid/app/SystemServiceRegistry$65;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$66;->createService()Landroid/app/trust/TrustManager;
+HSPLandroid/app/SystemServiceRegistry$66;->createService()Ljava/lang/Object;
+HPLandroid/app/SystemServiceRegistry$67;->createService(Landroid/app/ContextImpl;)Landroid/hardware/fingerprint/FingerprintManager;
+HPLandroid/app/SystemServiceRegistry$67;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$68;->createService(Landroid/app/ContextImpl;)Landroid/hardware/face/FaceManager;
+HSPLandroid/app/SystemServiceRegistry$68;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+PLandroid/app/SystemServiceRegistry$70;->createService(Landroid/app/ContextImpl;)Landroid/hardware/biometrics/BiometricManager;
+PLandroid/app/SystemServiceRegistry$70;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$72;->createService(Landroid/app/ContextImpl;)Landroid/net/NetworkScoreManager;
HSPLandroid/app/SystemServiceRegistry$72;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$73;->createService(Landroid/app/ContextImpl;)Landroid/app/usage/NetworkStatsManager;
+HSPLandroid/app/SystemServiceRegistry$73;->createService(Landroid/app/ContextImpl;)Landroid/app/usage/UsageStatsManager;
HSPLandroid/app/SystemServiceRegistry$73;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$77;->createService(Landroid/app/ContextImpl;)Landroid/appwidget/AppWidgetManager;
-HSPLandroid/app/SystemServiceRegistry$77;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$74;->createService(Landroid/app/ContextImpl;)Landroid/app/usage/NetworkStatsManager;
+HSPLandroid/app/SystemServiceRegistry$74;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$75;->createService()Landroid/service/persistentdata/PersistentDataBlockManager;
+HSPLandroid/app/SystemServiceRegistry$75;->createService()Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$76;->createService()Landroid/service/oemlock/OemLockManager;
+HSPLandroid/app/SystemServiceRegistry$76;->createService()Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$78;->createService(Landroid/app/ContextImpl;)Landroid/appwidget/AppWidgetManager;
+HSPLandroid/app/SystemServiceRegistry$78;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$7;->createService(Landroid/app/ContextImpl;)Landroid/app/AlarmManager;
HSPLandroid/app/SystemServiceRegistry$7;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$82;->createService(Landroid/app/ContextImpl;)Landroid/content/pm/ShortcutManager;
-HSPLandroid/app/SystemServiceRegistry$82;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$86;->createService(Landroid/app/ContextImpl;)Landroid/hardware/location/ContextHubManager;
-HSPLandroid/app/SystemServiceRegistry$86;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$89;->createService(Landroid/app/ContextImpl;)Landroid/view/autofill/AutofillManager;
-HSPLandroid/app/SystemServiceRegistry$89;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HPLandroid/app/SystemServiceRegistry$81;->createService(Landroid/app/ContextImpl;)Landroid/os/HardwarePropertiesManager;
+HPLandroid/app/SystemServiceRegistry$81;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$83;->createService(Landroid/app/ContextImpl;)Landroid/content/pm/ShortcutManager;
+HSPLandroid/app/SystemServiceRegistry$83;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HPLandroid/app/SystemServiceRegistry$86;->createService(Landroid/app/ContextImpl;)Landroid/os/health/SystemHealthManager;
+HPLandroid/app/SystemServiceRegistry$86;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$87;->createService(Landroid/app/ContextImpl;)Landroid/hardware/location/ContextHubManager;
+HSPLandroid/app/SystemServiceRegistry$87;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$88;->createService(Landroid/app/ContextImpl;)Landroid/os/IncidentManager;
+HSPLandroid/app/SystemServiceRegistry$88;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$8;->createService(Landroid/app/ContextImpl;)Landroid/media/AudioManager;
HSPLandroid/app/SystemServiceRegistry$8;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
-HSPLandroid/app/SystemServiceRegistry$96;->createService(Landroid/app/ContextImpl;)Landroid/app/slice/SliceManager;
+HSPLandroid/app/SystemServiceRegistry$90;->createService(Landroid/app/ContextImpl;)Landroid/view/autofill/AutofillManager;
+HSPLandroid/app/SystemServiceRegistry$90;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$91;->createService(Landroid/app/ContextImpl;)Landroid/view/contentcapture/ContentCaptureManager;
+HSPLandroid/app/SystemServiceRegistry$91;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HPLandroid/app/SystemServiceRegistry$92;->createService(Landroid/app/ContextImpl;)Landroid/app/prediction/AppPredictionManager;
+HPLandroid/app/SystemServiceRegistry$92;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$96;->createService(Landroid/app/ContextImpl;)Landroid/content/pm/CrossProfileApps;
HSPLandroid/app/SystemServiceRegistry$96;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$97;->createService(Landroid/app/ContextImpl;)Landroid/app/slice/SliceManager;
+HSPLandroid/app/SystemServiceRegistry$97;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$98;->createService(Landroid/app/ContextImpl;)Landroid/app/timedetector/TimeDetector;
+HSPLandroid/app/SystemServiceRegistry$98;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry$99;->createService(Landroid/app/ContextImpl;)Landroid/app/timezonedetector/TimeZoneDetector;
+HSPLandroid/app/SystemServiceRegistry$99;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$9;->createService(Landroid/app/ContextImpl;)Landroid/media/MediaRouter;
HSPLandroid/app/SystemServiceRegistry$9;->createService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$CachedServiceFetcher;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$StaticApplicationContextServiceFetcher;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry$StaticServiceFetcher;->getService(Landroid/app/ContextImpl;)Ljava/lang/Object;
HSPLandroid/app/SystemServiceRegistry;->createServiceCache()[Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry;->getSystemService(Landroid/app/ContextImpl;Ljava/lang/String;)Ljava/lang/Object;
+HSPLandroid/app/SystemServiceRegistry;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;
+HPLandroid/app/TaskInfo;-><init>()V
HSPLandroid/app/TaskInfo;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/app/TaskInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/TaskStackListener;-><init>()V
+PLandroid/app/TaskStackListener;->onActivityPinned(Ljava/lang/String;III)V
+PLandroid/app/TaskStackListener;->onActivityRequestedOrientationChanged(II)V
+PLandroid/app/TaskStackListener;->onActivityUnpinned()V
+PLandroid/app/TaskStackListener;->onPinnedStackAnimationEnded()V
+PLandroid/app/TaskStackListener;->onPinnedStackAnimationStarted()V
+PLandroid/app/TaskStackListener;->onRecentTaskListFrozenChanged(Z)V
+PLandroid/app/TaskStackListener;->onRecentTaskListUpdated()V
+HPLandroid/app/TaskStackListener;->onSizeCompatModeActivityChanged(ILandroid/os/IBinder;)V
+PLandroid/app/TaskStackListener;->onTaskCreated(ILandroid/content/ComponentName;)V
+PLandroid/app/TaskStackListener;->onTaskDescriptionChanged(ILandroid/app/ActivityManager$TaskDescription;)V
+PLandroid/app/TaskStackListener;->onTaskDescriptionChanged(Landroid/app/ActivityManager$RunningTaskInfo;)V
+HPLandroid/app/TaskStackListener;->onTaskDisplayChanged(II)V
+PLandroid/app/TaskStackListener;->onTaskMovedToFront(I)V
+PLandroid/app/TaskStackListener;->onTaskMovedToFront(Landroid/app/ActivityManager$RunningTaskInfo;)V
PLandroid/app/TaskStackListener;->onTaskRemovalStarted(I)V
PLandroid/app/TaskStackListener;->onTaskRemovalStarted(Landroid/app/ActivityManager$RunningTaskInfo;)V
+PLandroid/app/TaskStackListener;->onTaskRemoved(I)V
+PLandroid/app/TaskStackListener;->onTaskSnapshotChanged(ILandroid/app/ActivityManager$TaskSnapshot;)V
HSPLandroid/app/UiModeManager;-><init>(Landroid/content/Context;)V
HSPLandroid/app/UiModeManager;->getCurrentModeType()I
+HSPLandroid/app/UiModeManager;->getNightMode()I
HSPLandroid/app/UriGrantsManager$1;->create()Landroid/app/IUriGrantsManager;
HSPLandroid/app/UriGrantsManager$1;->create()Ljava/lang/Object;
HSPLandroid/app/UriGrantsManager;->getService()Landroid/app/IUriGrantsManager;
+HSPLandroid/app/UserSwitchObserver;-><init>()V
+PLandroid/app/UserSwitchObserver;->onForegroundProfileSwitch(I)V
+PLandroid/app/UserSwitchObserver;->onLockedBootComplete(I)V
+HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/WallpaperColors;
+HSPLandroid/app/WallpaperColors$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/WallpaperColors;-><init>(Landroid/graphics/Color;Landroid/graphics/Color;Landroid/graphics/Color;I)V
+HSPLandroid/app/WallpaperColors;-><init>(Landroid/os/Parcel;)V
HSPLandroid/app/WallpaperColors;->getColorHints()I
HSPLandroid/app/WallpaperColors;->getMainColors()Ljava/util/List;
+HSPLandroid/app/WallpaperColors;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/WallpaperManager$Globals;-><init>(Landroid/app/IWallpaperManager;Landroid/os/Looper;)V
+PLandroid/app/WallpaperManager$Globals;->access$200(Landroid/app/WallpaperManager$Globals;)Landroid/app/IWallpaperManager;
+HSPLandroid/app/WallpaperManager$Globals;->addOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;Landroid/os/Handler;II)V
+HSPLandroid/app/WallpaperManager$Globals;->forgetLoadedWallpaper()V
+HPLandroid/app/WallpaperManager$Globals;->getCurrentWallpaperLocked(Landroid/content/Context;IZ)Landroid/graphics/Bitmap;
+HSPLandroid/app/WallpaperManager$Globals;->getWallpaperColors(III)Landroid/app/WallpaperColors;
+HPLandroid/app/WallpaperManager$Globals;->peekWallpaperBitmap(Landroid/content/Context;ZIIZ)Landroid/graphics/Bitmap;
+HSPLandroid/app/WallpaperManager;-><init>(Landroid/app/IWallpaperManager;Landroid/content/Context;Landroid/os/Handler;)V
+HSPLandroid/app/WallpaperManager;->addOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;Landroid/os/Handler;)V
+HSPLandroid/app/WallpaperManager;->addOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;Landroid/os/Handler;I)V
+HPLandroid/app/WallpaperManager;->forgetLoadedWallpaper()V
+HPLandroid/app/WallpaperManager;->getBitmap()Landroid/graphics/Bitmap;
+HPLandroid/app/WallpaperManager;->getBitmap(Z)Landroid/graphics/Bitmap;
+HPLandroid/app/WallpaperManager;->getBitmapAsUser(IZ)Landroid/graphics/Bitmap;
+HSPLandroid/app/WallpaperManager;->getDefaultWallpaperComponent(Landroid/content/Context;)Landroid/content/ComponentName;
+HSPLandroid/app/WallpaperManager;->getDesiredMinimumHeight()I
+HSPLandroid/app/WallpaperManager;->getDesiredMinimumWidth()I
+HSPLandroid/app/WallpaperManager;->getInstance(Landroid/content/Context;)Landroid/app/WallpaperManager;
+HSPLandroid/app/WallpaperManager;->getWallpaperColors(I)Landroid/app/WallpaperColors;
+HSPLandroid/app/WallpaperManager;->getWallpaperColors(II)Landroid/app/WallpaperColors;
+PLandroid/app/WallpaperManager;->getWallpaperFile(II)Landroid/os/ParcelFileDescriptor;
+PLandroid/app/WallpaperManager;->getWallpaperIdForUser(II)I
+HSPLandroid/app/WallpaperManager;->getWallpaperInfo()Landroid/app/WallpaperInfo;
+HSPLandroid/app/WallpaperManager;->getWallpaperInfo(I)Landroid/app/WallpaperInfo;
+HSPLandroid/app/WallpaperManager;->initGlobals(Landroid/app/IWallpaperManager;Landroid/os/Looper;)V
+HPLandroid/app/WallpaperManager;->isSetWallpaperAllowed()Z
+PLandroid/app/WallpaperManager;->isWallpaperBackupEligible(I)Z
+HPLandroid/app/WallpaperManager;->sendWallpaperCommand(Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;)V
+HSPLandroid/app/WallpaperManager;->setWallpaperOffsetSteps(FF)V
+HSPLandroid/app/WallpaperManager;->setWallpaperOffsets(Landroid/os/IBinder;FF)V
HSPLandroid/app/WindowConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/WindowConfiguration;
HSPLandroid/app/WindowConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/app/WindowConfiguration;-><init>()V
HSPLandroid/app/WindowConfiguration;-><init>(Landroid/os/Parcel;)V
HSPLandroid/app/WindowConfiguration;-><init>(Landroid/os/Parcel;Landroid/app/WindowConfiguration$1;)V
+HSPLandroid/app/WindowConfiguration;->activityTypeToString(I)Ljava/lang/String;
+HSPLandroid/app/WindowConfiguration;->alwaysOnTopToString(I)Ljava/lang/String;
+HSPLandroid/app/WindowConfiguration;->canReceiveKeys()Z
+PLandroid/app/WindowConfiguration;->canResizeTask()Z
HSPLandroid/app/WindowConfiguration;->compareTo(Landroid/app/WindowConfiguration;)I
HSPLandroid/app/WindowConfiguration;->diff(Landroid/app/WindowConfiguration;Z)J
+HPLandroid/app/WindowConfiguration;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/app/WindowConfiguration;->equals(Ljava/lang/Object;)Z
HSPLandroid/app/WindowConfiguration;->getActivityType()I
HSPLandroid/app/WindowConfiguration;->getAppBounds()Landroid/graphics/Rect;
+HSPLandroid/app/WindowConfiguration;->getBounds()Landroid/graphics/Rect;
+PLandroid/app/WindowConfiguration;->getDisplayWindowingMode()I
+HSPLandroid/app/WindowConfiguration;->getRotation()I
HSPLandroid/app/WindowConfiguration;->getWindowingMode()I
+PLandroid/app/WindowConfiguration;->hasMovementAnimations()Z
+HSPLandroid/app/WindowConfiguration;->hasWindowDecorCaption()Z
HSPLandroid/app/WindowConfiguration;->hasWindowShadow()Z
-HSPLandroid/app/WindowConfiguration;->isFloating(I)Z
+HSPLandroid/app/WindowConfiguration;->isAlwaysOnTop()Z
+PLandroid/app/WindowConfiguration;->isFloating(I)Z
+PLandroid/app/WindowConfiguration;->isSplitScreenWindowingMode(I)Z
+PLandroid/app/WindowConfiguration;->persistTaskBounds()Z
HSPLandroid/app/WindowConfiguration;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/app/WindowConfiguration;->readFromProto(Landroid/util/proto/ProtoInputStream;J)V
HSPLandroid/app/WindowConfiguration;->setActivityType(I)V
HSPLandroid/app/WindowConfiguration;->setAlwaysOnTop(I)V
HSPLandroid/app/WindowConfiguration;->setAppBounds(IIII)V
@@ -1311,59 +3743,610 @@ HSPLandroid/app/WindowConfiguration;->setRotation(I)V
HSPLandroid/app/WindowConfiguration;->setTo(Landroid/app/WindowConfiguration;)V
HSPLandroid/app/WindowConfiguration;->setToDefaults()V
HSPLandroid/app/WindowConfiguration;->setWindowingMode(I)V
+PLandroid/app/WindowConfiguration;->supportSplitScreenWindowingMode()Z
+PLandroid/app/WindowConfiguration;->supportSplitScreenWindowingMode(I)Z
HSPLandroid/app/WindowConfiguration;->tasksAreFloating()Z
+HSPLandroid/app/WindowConfiguration;->toString()Ljava/lang/String;
HSPLandroid/app/WindowConfiguration;->unset()V
HSPLandroid/app/WindowConfiguration;->updateFrom(Landroid/app/WindowConfiguration;)I
+HPLandroid/app/WindowConfiguration;->useWindowFrameForBackdrop()Z
+HSPLandroid/app/WindowConfiguration;->windowingModeToString(I)Ljava/lang/String;
+PLandroid/app/WindowConfiguration;->windowsAreScaleable()Z
HSPLandroid/app/WindowConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/admin/DeviceAdminInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ActivityInfo;)V
+HSPLandroid/app/admin/DeviceAdminInfo;->getActivityInfo()Landroid/content/pm/ActivityInfo;
+HSPLandroid/app/admin/DeviceAdminInfo;->getComponent()Landroid/content/ComponentName;
+HSPLandroid/app/admin/DeviceAdminInfo;->getPackageName()Ljava/lang/String;
+PLandroid/app/admin/DeviceAdminInfo;->getUsedPolicies()Ljava/util/ArrayList;
+HSPLandroid/app/admin/DeviceAdminInfo;->readPoliciesFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
+PLandroid/app/admin/DeviceAdminInfo;->usesPolicy(I)Z
+HPLandroid/app/admin/DeviceAdminInfo;->writePoliciesToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/app/admin/DevicePolicyCache;-><init>()V
+PLandroid/app/admin/DevicePolicyCache;->getInstance()Landroid/app/admin/DevicePolicyCache;
+HPLandroid/app/admin/DevicePolicyEventLogger;-><init>(I)V
+PLandroid/app/admin/DevicePolicyEventLogger;->createEvent(I)Landroid/app/admin/DevicePolicyEventLogger;
+HPLandroid/app/admin/DevicePolicyEventLogger;->setAdmin(Landroid/content/ComponentName;)Landroid/app/admin/DevicePolicyEventLogger;
+PLandroid/app/admin/DevicePolicyEventLogger;->setAdmin(Ljava/lang/String;)Landroid/app/admin/DevicePolicyEventLogger;
+PLandroid/app/admin/DevicePolicyEventLogger;->setBoolean(Z)Landroid/app/admin/DevicePolicyEventLogger;
+PLandroid/app/admin/DevicePolicyEventLogger;->setInt(I)Landroid/app/admin/DevicePolicyEventLogger;
+PLandroid/app/admin/DevicePolicyEventLogger;->setStrings([Ljava/lang/String;)Landroid/app/admin/DevicePolicyEventLogger;
+PLandroid/app/admin/DevicePolicyEventLogger;->stringArrayValueToBytes([Ljava/lang/String;)[B
+PLandroid/app/admin/DevicePolicyEventLogger;->write()V
HSPLandroid/app/admin/DevicePolicyManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;)V
HSPLandroid/app/admin/DevicePolicyManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;Z)V
+HPLandroid/app/admin/DevicePolicyManager;->addCrossProfileIntentFilter(Landroid/content/ComponentName;Landroid/content/IntentFilter;I)V
+HPLandroid/app/admin/DevicePolicyManager;->addCrossProfileWidgetProvider(Landroid/content/ComponentName;Ljava/lang/String;)Z
+HPLandroid/app/admin/DevicePolicyManager;->addUserRestriction(Landroid/content/ComponentName;Ljava/lang/String;)V
+PLandroid/app/admin/DevicePolicyManager;->checkDeviceIdentifierAccess(Ljava/lang/String;II)Z
+HPLandroid/app/admin/DevicePolicyManager;->clearCrossProfileIntentFilters(Landroid/content/ComponentName;)V
+HPLandroid/app/admin/DevicePolicyManager;->clearUserRestriction(Landroid/content/ComponentName;Ljava/lang/String;)V
+HSPLandroid/app/admin/DevicePolicyManager;->generateKeyPair(Landroid/content/ComponentName;Ljava/lang/String;Landroid/security/keystore/KeyGenParameterSpec;I)Landroid/security/AttestedKeyPair;
+HPLandroid/app/admin/DevicePolicyManager;->getAccountTypesWithManagementDisabled()[Ljava/lang/String;
+HPLandroid/app/admin/DevicePolicyManager;->getAccountTypesWithManagementDisabledAsUser(I)[Ljava/lang/String;
+HSPLandroid/app/admin/DevicePolicyManager;->getActiveAdmins()Ljava/util/List;
+HSPLandroid/app/admin/DevicePolicyManager;->getActiveAdminsAsUser(I)Ljava/util/List;
+HPLandroid/app/admin/DevicePolicyManager;->getAlwaysOnVpnPackage(Landroid/content/ComponentName;)Ljava/lang/String;
+HPLandroid/app/admin/DevicePolicyManager;->getApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;)Landroid/os/Bundle;
+HPLandroid/app/admin/DevicePolicyManager;->getBindDeviceAdminTargetUsers(Landroid/content/ComponentName;)Ljava/util/List;
+HSPLandroid/app/admin/DevicePolicyManager;->getBluetoothContactSharingDisabled(Landroid/os/UserHandle;)Z
+HPLandroid/app/admin/DevicePolicyManager;->getCameraDisabled(Landroid/content/ComponentName;I)Z
+HSPLandroid/app/admin/DevicePolicyManager;->getCrossProfileCallerIdDisabled(Landroid/os/UserHandle;)Z
+HSPLandroid/app/admin/DevicePolicyManager;->getCrossProfileContactsSearchDisabled(Landroid/os/UserHandle;)Z
+HPLandroid/app/admin/DevicePolicyManager;->getCrossProfileWidgetProviders(Landroid/content/ComponentName;)Ljava/util/List;
+HPLandroid/app/admin/DevicePolicyManager;->getCurrentFailedPasswordAttempts()I
+HPLandroid/app/admin/DevicePolicyManager;->getCurrentFailedPasswordAttempts(I)I
+HPLandroid/app/admin/DevicePolicyManager;->getDelegatedScopes(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;
HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwner()Ljava/lang/String;
HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwnerComponentInner(Z)Landroid/content/ComponentName;
HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwnerComponentOnAnyUser()Landroid/content/ComponentName;
HSPLandroid/app/admin/DevicePolicyManager;->getDeviceOwnerComponentOnCallingUser()Landroid/content/ComponentName;
+HPLandroid/app/admin/DevicePolicyManager;->getDeviceOwnerOrganizationName()Ljava/lang/CharSequence;
+HPLandroid/app/admin/DevicePolicyManager;->getDeviceOwnerUser()Landroid/os/UserHandle;
+HSPLandroid/app/admin/DevicePolicyManager;->getGuestUserDisabled(Landroid/content/ComponentName;)Z
+HPLandroid/app/admin/DevicePolicyManager;->getInstalledCaCerts(Landroid/content/ComponentName;)Ljava/util/List;
+HSPLandroid/app/admin/DevicePolicyManager;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;)I
HSPLandroid/app/admin/DevicePolicyManager;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;I)I
+HPLandroid/app/admin/DevicePolicyManager;->getMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;I)I
+HPLandroid/app/admin/DevicePolicyManager;->getMaximumTimeToLock(Landroid/content/ComponentName;I)J
+HPLandroid/app/admin/DevicePolicyManager;->getOrganizationNameForUser(I)Ljava/lang/CharSequence;
+HPLandroid/app/admin/DevicePolicyManager;->getParentProfileInstance(Landroid/content/ComponentName;)Landroid/app/admin/DevicePolicyManager;
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordExpirationTimeout(Landroid/content/ComponentName;)J
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMaximumLength(I)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumLength(Landroid/content/ComponentName;)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumLength(Landroid/content/ComponentName;I)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumLetters(Landroid/content/ComponentName;)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumLetters(Landroid/content/ComponentName;I)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumLowerCase(Landroid/content/ComponentName;)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumLowerCase(Landroid/content/ComponentName;I)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumNonLetter(Landroid/content/ComponentName;)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumNonLetter(Landroid/content/ComponentName;I)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumNumeric(Landroid/content/ComponentName;)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumNumeric(Landroid/content/ComponentName;I)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumSymbols(Landroid/content/ComponentName;)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumSymbols(Landroid/content/ComponentName;I)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumUpperCase(Landroid/content/ComponentName;)I
+HPLandroid/app/admin/DevicePolicyManager;->getPasswordMinimumUpperCase(Landroid/content/ComponentName;I)I
+HSPLandroid/app/admin/DevicePolicyManager;->getPasswordQuality(Landroid/content/ComponentName;)I
+HSPLandroid/app/admin/DevicePolicyManager;->getPasswordQuality(Landroid/content/ComponentName;I)I
+HPLandroid/app/admin/DevicePolicyManager;->getPermissionGrantState(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)I
HSPLandroid/app/admin/DevicePolicyManager;->getProfileOwner()Landroid/content/ComponentName;
HSPLandroid/app/admin/DevicePolicyManager;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;
+PLandroid/app/admin/DevicePolicyManager;->getProfileOwnerAsUser(Landroid/os/UserHandle;)Landroid/content/ComponentName;
+PLandroid/app/admin/DevicePolicyManager;->getRequiredStrongAuthTimeout(Landroid/content/ComponentName;I)J
HSPLandroid/app/admin/DevicePolicyManager;->getStorageEncryptionStatus()I
HSPLandroid/app/admin/DevicePolicyManager;->getStorageEncryptionStatus(I)I
+HSPLandroid/app/admin/DevicePolicyManager;->getSystemUpdatePolicy()Landroid/app/admin/SystemUpdatePolicy;
+HPLandroid/app/admin/DevicePolicyManager;->hasGrantedPolicy(Landroid/content/ComponentName;I)Z
+HPLandroid/app/admin/DevicePolicyManager;->isActivePasswordSufficient()Z
HSPLandroid/app/admin/DevicePolicyManager;->isAdminActive(Landroid/content/ComponentName;)Z
HSPLandroid/app/admin/DevicePolicyManager;->isAdminActiveAsUser(Landroid/content/ComponentName;I)Z
+HSPLandroid/app/admin/DevicePolicyManager;->isDeviceIdAttestationSupported()Z
+HSPLandroid/app/admin/DevicePolicyManager;->isDeviceManaged()Z
HSPLandroid/app/admin/DevicePolicyManager;->isDeviceOwnerApp(Ljava/lang/String;)Z
+HSPLandroid/app/admin/DevicePolicyManager;->isDeviceOwnerAppOnAnyUserInner(Ljava/lang/String;Z)Z
HSPLandroid/app/admin/DevicePolicyManager;->isDeviceOwnerAppOnCallingUser(Ljava/lang/String;)Z
+HSPLandroid/app/admin/DevicePolicyManager;->isLockTaskPermitted(Ljava/lang/String;)Z
+HPLandroid/app/admin/DevicePolicyManager;->isLogoutEnabled()Z
+HPLandroid/app/admin/DevicePolicyManager;->isManagedProfile(Landroid/content/ComponentName;)Z
+HPLandroid/app/admin/DevicePolicyManager;->isNetworkLoggingEnabled(Landroid/content/ComponentName;)Z
+HPLandroid/app/admin/DevicePolicyManager;->isNotificationListenerServicePermitted(Ljava/lang/String;I)Z
+HPLandroid/app/admin/DevicePolicyManager;->isPackageSuspended(Landroid/content/ComponentName;Ljava/lang/String;)Z
HSPLandroid/app/admin/DevicePolicyManager;->isProfileOwnerApp(Ljava/lang/String;)Z
+HSPLandroid/app/admin/DevicePolicyManager;->isSeparateProfileChallengeAllowed(I)Z
+HPLandroid/app/admin/DevicePolicyManager;->isUninstallBlocked(Landroid/content/ComponentName;Ljava/lang/String;)Z
+HPLandroid/app/admin/DevicePolicyManager;->isUsingUnifiedPassword(Landroid/content/ComponentName;)Z
HSPLandroid/app/admin/DevicePolicyManager;->myUserId()I
+HPLandroid/app/admin/DevicePolicyManager;->reportFailedBiometricAttempt(I)V
+HPLandroid/app/admin/DevicePolicyManager;->reportFailedPasswordAttempt(I)V
+HPLandroid/app/admin/DevicePolicyManager;->reportKeyguardDismissed(I)V
+HPLandroid/app/admin/DevicePolicyManager;->reportKeyguardSecured(I)V
+HPLandroid/app/admin/DevicePolicyManager;->reportSuccessfulBiometricAttempt(I)V
+HPLandroid/app/admin/DevicePolicyManager;->reportSuccessfulPasswordAttempt(I)V
+HPLandroid/app/admin/DevicePolicyManager;->setApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;Landroid/os/Bundle;)V
+HPLandroid/app/admin/DevicePolicyManager;->setAutoTimeRequired(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/DevicePolicyManager;->setBackupServiceEnabled(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/DevicePolicyManager;->setBluetoothContactSharingDisabled(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/DevicePolicyManager;->setCameraDisabled(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/DevicePolicyManager;->setCrossProfileCallerIdDisabled(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/DevicePolicyManager;->setCrossProfileContactsSearchDisabled(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/DevicePolicyManager;->setKeyguardDisabledFeatures(Landroid/content/ComponentName;I)V
+HPLandroid/app/admin/DevicePolicyManager;->setLongSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+HPLandroid/app/admin/DevicePolicyManager;->setMasterVolumeMuted(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/DevicePolicyManager;->setMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;I)V
+HPLandroid/app/admin/DevicePolicyManager;->setMaximumTimeToLock(Landroid/content/ComponentName;J)V
+HPLandroid/app/admin/DevicePolicyManager;->setPasswordExpirationTimeout(Landroid/content/ComponentName;J)V
+HPLandroid/app/admin/DevicePolicyManager;->setPasswordHistoryLength(Landroid/content/ComponentName;I)V
+HPLandroid/app/admin/DevicePolicyManager;->setPasswordMinimumLength(Landroid/content/ComponentName;I)V
+HPLandroid/app/admin/DevicePolicyManager;->setPasswordMinimumLetters(Landroid/content/ComponentName;I)V
+HPLandroid/app/admin/DevicePolicyManager;->setPasswordMinimumLowerCase(Landroid/content/ComponentName;I)V
+HPLandroid/app/admin/DevicePolicyManager;->setPasswordMinimumNonLetter(Landroid/content/ComponentName;I)V
+HPLandroid/app/admin/DevicePolicyManager;->setPasswordMinimumNumeric(Landroid/content/ComponentName;I)V
+HPLandroid/app/admin/DevicePolicyManager;->setPasswordMinimumSymbols(Landroid/content/ComponentName;I)V
+HPLandroid/app/admin/DevicePolicyManager;->setPasswordMinimumUpperCase(Landroid/content/ComponentName;I)V
+HPLandroid/app/admin/DevicePolicyManager;->setPasswordQuality(Landroid/content/ComponentName;I)V
+HPLandroid/app/admin/DevicePolicyManager;->setPermissionPolicy(Landroid/content/ComponentName;I)V
+HPLandroid/app/admin/DevicePolicyManager;->setPermittedAccessibilityServices(Landroid/content/ComponentName;Ljava/util/List;)Z
+HPLandroid/app/admin/DevicePolicyManager;->setPermittedInputMethods(Landroid/content/ComponentName;Ljava/util/List;)Z
+HPLandroid/app/admin/DevicePolicyManager;->setRequiredStrongAuthTimeout(Landroid/content/ComponentName;J)V
+HPLandroid/app/admin/DevicePolicyManager;->setScreenCaptureDisabled(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/DevicePolicyManager;->setShortSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+HPLandroid/app/admin/DevicePolicyManager;->setStorageEncryption(Landroid/content/ComponentName;Z)I
+HPLandroid/app/admin/DevicePolicyManager;->setUninstallBlocked(Landroid/content/ComponentName;Ljava/lang/String;Z)V
HSPLandroid/app/admin/DevicePolicyManager;->throwIfParentInstance(Ljava/lang/String;)V
+HSPLandroid/app/admin/DevicePolicyManagerInternal;-><init>()V
+HSPLandroid/app/admin/DeviceStateCache;-><init>()V
+PLandroid/app/admin/IDeviceAdminService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/app/admin/IDeviceAdminService$Stub;-><init>()V
+HPLandroid/app/admin/IDeviceAdminService$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/app/admin/IDeviceAdminService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/admin/IDeviceAdminService;
HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->addCrossProfileIntentFilter(Landroid/content/ComponentName;Landroid/content/IntentFilter;I)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->addCrossProfileWidgetProvider(Landroid/content/ComponentName;Ljava/lang/String;)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->checkDeviceIdentifierAccess(Ljava/lang/String;II)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->clearCrossProfileIntentFilters(Landroid/content/ComponentName;)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->enforceCanManageCaCerts(Landroid/content/ComponentName;Ljava/lang/String;)V
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->generateKeyPair(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/security/keystore/ParcelableKeyGenParameterSpec;ILandroid/security/keymaster/KeymasterCertificateChain;)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getAccountTypesWithManagementDisabledAsUser(I)[Ljava/lang/String;
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getActiveAdmins(I)Ljava/util/List;
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getAlwaysOnVpnPackage(Landroid/content/ComponentName;)Ljava/lang/String;
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getBindDeviceAdminTargetUsers(Landroid/content/ComponentName;)Ljava/util/List;
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getBluetoothContactSharingDisabledForUser(I)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCameraDisabled(Landroid/content/ComponentName;IZ)Z
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCrossProfileCallerIdDisabledForUser(I)Z
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCrossProfileContactsSearchDisabledForUser(I)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCrossProfileWidgetProviders(Landroid/content/ComponentName;)Ljava/util/List;
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getCurrentFailedPasswordAttempts(IZ)I
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDelegatedScopes(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;
HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName;
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getDeviceOwnerOrganizationName()Ljava/lang/CharSequence;
HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)I
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;IZ)I
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getMaximumTimeToLock(Landroid/content/ComponentName;IZ)J
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getOrganizationNameForUser(I)Ljava/lang/CharSequence;
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordExpirationTimeout(Landroid/content/ComponentName;IZ)J
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumLength(Landroid/content/ComponentName;IZ)I
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumLetters(Landroid/content/ComponentName;IZ)I
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumLowerCase(Landroid/content/ComponentName;IZ)I
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumNonLetter(Landroid/content/ComponentName;IZ)I
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumNumeric(Landroid/content/ComponentName;IZ)I
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumSymbols(Landroid/content/ComponentName;IZ)I
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordMinimumUpperCase(Landroid/content/ComponentName;IZ)I
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPasswordQuality(Landroid/content/ComponentName;IZ)I
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getPermissionGrantState(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getProfileOwner(I)Landroid/content/ComponentName;
HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;
HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getStorageEncryptionStatus(Ljava/lang/String;I)I
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->getSystemUpdatePolicy()Landroid/app/admin/SystemUpdatePolicy;
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->hasDeviceOwner()Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->hasGrantedPolicy(Landroid/content/ComponentName;II)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isActivePasswordSufficient(IZ)Z
HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isAdminActive(Landroid/content/ComponentName;I)Z
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isLockTaskPermitted(Ljava/lang/String;)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isLogoutEnabled()Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isManagedProfile(Landroid/content/ComponentName;)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isNetworkLoggingEnabled(Landroid/content/ComponentName;Ljava/lang/String;)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isPackageSuspended(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isSeparateProfileChallengeAllowed(I)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isUninstallBlocked(Landroid/content/ComponentName;Ljava/lang/String;)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->isUsingUnifiedPassword(Landroid/content/ComponentName;)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportFailedBiometricAttempt(I)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportFailedPasswordAttempt(I)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportKeyguardDismissed(I)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportKeyguardSecured(I)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportSuccessfulBiometricAttempt(I)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->reportSuccessfulPasswordAttempt(I)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setAutoTimeRequired(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setBackupServiceEnabled(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setBluetoothContactSharingDisabled(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setCameraDisabled(Landroid/content/ComponentName;ZZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setCrossProfileCallerIdDisabled(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setCrossProfileContactsSearchDisabled(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setLongSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setMasterVolumeMuted(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;IZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setMaximumTimeToLock(Landroid/content/ComponentName;JZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordExpirationTimeout(Landroid/content/ComponentName;JZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordHistoryLength(Landroid/content/ComponentName;IZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumLength(Landroid/content/ComponentName;IZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumLetters(Landroid/content/ComponentName;IZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumLowerCase(Landroid/content/ComponentName;IZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumNonLetter(Landroid/content/ComponentName;IZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumNumeric(Landroid/content/ComponentName;IZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumSymbols(Landroid/content/ComponentName;IZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordMinimumUpperCase(Landroid/content/ComponentName;IZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPasswordQuality(Landroid/content/ComponentName;IZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPermissionPolicy(Landroid/content/ComponentName;Ljava/lang/String;I)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPermittedAccessibilityServices(Landroid/content/ComponentName;Ljava/util/List;)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setPermittedInputMethods(Landroid/content/ComponentName;Ljava/util/List;)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setRequiredStrongAuthTimeout(Landroid/content/ComponentName;JZ)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setScreenCaptureDisabled(Landroid/content/ComponentName;Z)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setShortSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setStorageEncryption(Landroid/content/ComponentName;Z)I
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setUninstallBlocked(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Z)V
+HPLandroid/app/admin/IDevicePolicyManager$Stub$Proxy;->setUserRestriction(Landroid/content/ComponentName;Ljava/lang/String;Z)V
+HSPLandroid/app/admin/IDevicePolicyManager$Stub;-><init>()V
HSPLandroid/app/admin/IDevicePolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/admin/IDevicePolicyManager;
+PLandroid/app/admin/IDevicePolicyManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/app/admin/IDevicePolicyManager$Stub;->onTransact$generateKeyPair$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+HPLandroid/app/admin/IDevicePolicyManager$Stub;->onTransact$getPermissionGrantState$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
+HSPLandroid/app/admin/IDevicePolicyManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket$1;-><init>(Ljava/lang/String;II)V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket$2;-><init>(Ljava/lang/String;II)V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket$3;-><init>(Ljava/lang/String;II)V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket$4;-><init>(Ljava/lang/String;II)V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket$4;->allowsCredType(I)Z
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket;-><clinit>()V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket;-><init>(Ljava/lang/String;II)V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket;-><init>(Ljava/lang/String;IILandroid/app/admin/PasswordMetrics$1;)V
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket;->forComplexity(I)Landroid/app/admin/PasswordMetrics$ComplexityBucket;
+PLandroid/app/admin/PasswordMetrics$ComplexityBucket;->values()[Landroid/app/admin/PasswordMetrics$ComplexityBucket;
+HPLandroid/app/admin/PasswordMetrics;-><init>(I)V
+PLandroid/app/admin/PasswordMetrics;-><init>(IIIIIIIIII)V
+PLandroid/app/admin/PasswordMetrics;->categoryChar(C)I
+PLandroid/app/admin/PasswordMetrics;->computeForCredential(Lcom/android/internal/widget/LockscreenCredential;)Landroid/app/admin/PasswordMetrics;
+PLandroid/app/admin/PasswordMetrics;->computeForPassword([B)Landroid/app/admin/PasswordMetrics;
+PLandroid/app/admin/PasswordMetrics;->maxDiffCategory(I)I
+PLandroid/app/admin/PasswordMetrics;->maxLengthSequence([B)I
+PLandroid/app/admin/PasswordMetrics;->maxWith(Landroid/app/admin/PasswordMetrics;)V
+HPLandroid/app/admin/PasswordMetrics;->merge(Ljava/util/List;)Landroid/app/admin/PasswordMetrics;
+PLandroid/app/admin/PasswordMetrics;->validatePasswordMetrics(Landroid/app/admin/PasswordMetrics;IZLandroid/app/admin/PasswordMetrics;)Ljava/util/List;
+HSPLandroid/app/admin/PasswordPolicy;-><init>()V
+PLandroid/app/admin/PasswordPolicy;->getMinMetrics()Landroid/app/admin/PasswordMetrics;
+PLandroid/app/admin/SystemUpdateInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/admin/SystemUpdateInfo;
+PLandroid/app/admin/SystemUpdateInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/admin/SystemUpdateInfo;-><init>(JI)V
+PLandroid/app/admin/SystemUpdateInfo;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/admin/SystemUpdateInfo;-><init>(Landroid/os/Parcel;Landroid/app/admin/SystemUpdateInfo$1;)V
+PLandroid/app/admin/SystemUpdateInfo;->equals(Ljava/lang/Object;)Z
+HSPLandroid/app/admin/SystemUpdateInfo;->readFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/app/admin/SystemUpdateInfo;
+PLandroid/app/admin/SystemUpdateInfo;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;)V
+HSPLandroid/app/appsearch/IAppSearchManager$Stub;-><init>()V
+PLandroid/app/appsearch/IAppSearchManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/assist/AssistContent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/assist/AssistContent;
+PLandroid/app/assist/AssistContent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/assist/AssistContent;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/assist/AssistContent;->getClipData()Landroid/content/ClipData;
+PLandroid/app/assist/AssistContent;->getIntent()Landroid/content/Intent;
+HPLandroid/app/assist/AssistContent;->setDefaultIntent(Landroid/content/Intent;)V
+PLandroid/app/assist/AssistContent;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/assist/AssistContent;->writeToParcelInternal(Landroid/os/Parcel;I)V
+PLandroid/app/assist/AssistStructure$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/assist/AssistStructure;
+PLandroid/app/assist/AssistStructure$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/assist/AssistStructure$AutofillOverlay;-><init>()V
+PLandroid/app/assist/AssistStructure$HtmlInfoNode$1;-><init>()V
+PLandroid/app/assist/AssistStructure$HtmlInfoNode$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/assist/AssistStructure$HtmlInfoNode;
+PLandroid/app/assist/AssistStructure$HtmlInfoNode$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/assist/AssistStructure$HtmlInfoNode;-><clinit>()V
+PLandroid/app/assist/AssistStructure$HtmlInfoNode;-><init>(Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;)V
+PLandroid/app/assist/AssistStructure$HtmlInfoNode;-><init>(Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;Landroid/app/assist/AssistStructure$1;)V
+PLandroid/app/assist/AssistStructure$HtmlInfoNode;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;-><init>(Ljava/lang/String;)V
+PLandroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;->access$1000(Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;)Ljava/util/ArrayList;
+PLandroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;->access$800(Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;)Ljava/lang/String;
+PLandroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;->access$900(Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;)Ljava/util/ArrayList;
+HPLandroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;->addAttribute(Ljava/lang/String;Ljava/lang/String;)Landroid/view/ViewStructure$HtmlInfo$Builder;
+PLandroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;->build()Landroid/app/assist/AssistStructure$HtmlInfoNode;
+PLandroid/app/assist/AssistStructure$ParcelTransferReader;-><init>(Landroid/app/assist/AssistStructure;Landroid/os/IBinder;)V
+PLandroid/app/assist/AssistStructure$ParcelTransferReader;->fetchData()V
+PLandroid/app/assist/AssistStructure$ParcelTransferReader;->go()V
+PLandroid/app/assist/AssistStructure$ParcelTransferReader;->readParcel(II)Landroid/os/Parcel;
+PLandroid/app/assist/AssistStructure$ParcelTransferWriter;-><init>(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)V
+PLandroid/app/assist/AssistStructure$ParcelTransferWriter;->pushViewStackEntry(Landroid/app/assist/AssistStructure$ViewNode;I)V
+PLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeNextEntryToParcel(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;Landroid/os/PooledStringWriter;)Z
+PLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeToParcel(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)V
+PLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeToParcelInner(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)Z
+PLandroid/app/assist/AssistStructure$ParcelTransferWriter;->writeView(Landroid/app/assist/AssistStructure$ViewNode;Landroid/os/Parcel;Landroid/os/PooledStringWriter;I)V
+PLandroid/app/assist/AssistStructure$SendChannel;-><init>(Landroid/app/assist/AssistStructure;)V
+PLandroid/app/assist/AssistStructure$SendChannel;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/app/assist/AssistStructure$ViewNode;-><init>()V
+PLandroid/app/assist/AssistStructure$ViewNode;-><init>(Landroid/app/assist/AssistStructure$ParcelTransferReader;I)V
+PLandroid/app/assist/AssistStructure$ViewNode;->getAlpha()F
+PLandroid/app/assist/AssistStructure$ViewNode;->getAutofillHints()[Ljava/lang/String;
+PLandroid/app/assist/AssistStructure$ViewNode;->getAutofillId()Landroid/view/autofill/AutofillId;
+PLandroid/app/assist/AssistStructure$ViewNode;->getAutofillOptions()[Ljava/lang/CharSequence;
+PLandroid/app/assist/AssistStructure$ViewNode;->getAutofillType()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getAutofillValue()Landroid/view/autofill/AutofillValue;
+PLandroid/app/assist/AssistStructure$ViewNode;->getChildAt(I)Landroid/app/assist/AssistStructure$ViewNode;
+PLandroid/app/assist/AssistStructure$ViewNode;->getChildCount()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getClassName()Ljava/lang/String;
+PLandroid/app/assist/AssistStructure$ViewNode;->getContentDescription()Ljava/lang/CharSequence;
+PLandroid/app/assist/AssistStructure$ViewNode;->getElevation()F
+PLandroid/app/assist/AssistStructure$ViewNode;->getExtras()Landroid/os/Bundle;
+PLandroid/app/assist/AssistStructure$ViewNode;->getHeight()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getHint()Ljava/lang/String;
+PLandroid/app/assist/AssistStructure$ViewNode;->getHintIdEntry()Ljava/lang/String;
+PLandroid/app/assist/AssistStructure$ViewNode;->getHtmlInfo()Landroid/view/ViewStructure$HtmlInfo;
+PLandroid/app/assist/AssistStructure$ViewNode;->getId()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getIdEntry()Ljava/lang/String;
+PLandroid/app/assist/AssistStructure$ViewNode;->getIdPackage()Ljava/lang/String;
+PLandroid/app/assist/AssistStructure$ViewNode;->getIdType()Ljava/lang/String;
+PLandroid/app/assist/AssistStructure$ViewNode;->getImportantForAutofill()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getInputType()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getLeft()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getLocaleList()Landroid/os/LocaleList;
+HPLandroid/app/assist/AssistStructure$ViewNode;->getMaxTextLength()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getScrollX()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getScrollY()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getText()Ljava/lang/CharSequence;
+PLandroid/app/assist/AssistStructure$ViewNode;->getTextBackgroundColor()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getTextColor()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getTextIdEntry()Ljava/lang/String;
+PLandroid/app/assist/AssistStructure$ViewNode;->getTextSelectionEnd()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getTextSelectionStart()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getTextSize()F
+PLandroid/app/assist/AssistStructure$ViewNode;->getTextStyle()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getTop()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getTransformation()Landroid/graphics/Matrix;
+HPLandroid/app/assist/AssistStructure$ViewNode;->getVisibility()I
+PLandroid/app/assist/AssistStructure$ViewNode;->getWebDomain()Ljava/lang/String;
+PLandroid/app/assist/AssistStructure$ViewNode;->getWidth()I
+PLandroid/app/assist/AssistStructure$ViewNode;->isAssistBlocked()Z
+HPLandroid/app/assist/AssistStructure$ViewNode;->isClickable()Z
+HPLandroid/app/assist/AssistStructure$ViewNode;->isFocused()Z
+PLandroid/app/assist/AssistStructure$ViewNode;->isSanitized()Z
+PLandroid/app/assist/AssistStructure$ViewNode;->setAutofillOverlay(Landroid/app/assist/AssistStructure$AutofillOverlay;)V
+PLandroid/app/assist/AssistStructure$ViewNode;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;Z[F)I
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->getChildCount()I
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->getNodeText()Landroid/app/assist/AssistStructure$ViewNodeText;
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->getTempRect()Landroid/graphics/Rect;
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->newChild(I)Landroid/view/ViewStructure;
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillHints([Ljava/lang/String;)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillId(Landroid/view/autofill/AutofillId;)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillType(I)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setAutofillValue(Landroid/view/autofill/AutofillValue;)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setChildCount(I)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setClassName(Ljava/lang/String;)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setClickable(Z)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setContentDescription(Ljava/lang/CharSequence;)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setDataIsSensitive(Z)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setDimens(IIIIII)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setElevation(F)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setEnabled(Z)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setFocusable(Z)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setFocused(Z)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setHint(Ljava/lang/CharSequence;)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setHintIdEntry(Ljava/lang/String;)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setId(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setImportantForAutofill(I)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setInputType(I)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setLongClickable(Z)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setMaxTextEms(I)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setMaxTextLength(I)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setMinTextEms(I)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setOpaque(Z)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setSelected(Z)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setText(Ljava/lang/CharSequence;)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setText(Ljava/lang/CharSequence;II)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setTextStyle(FIII)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setTransformation(Landroid/graphics/Matrix;)V
+HPLandroid/app/assist/AssistStructure$ViewNodeBuilder;->setVisibility(I)V
+HPLandroid/app/assist/AssistStructure$ViewNodeText;-><init>()V
+PLandroid/app/assist/AssistStructure$ViewNodeText;-><init>(Landroid/os/Parcel;Z)V
+PLandroid/app/assist/AssistStructure$ViewNodeText;->isSimple()Z
+PLandroid/app/assist/AssistStructure$ViewNodeText;->writeToParcel(Landroid/os/Parcel;ZZ)V
+PLandroid/app/assist/AssistStructure$ViewStackEntry;-><init>()V
+PLandroid/app/assist/AssistStructure$WindowNode;-><init>(Landroid/app/assist/AssistStructure$ParcelTransferReader;)V
+HPLandroid/app/assist/AssistStructure$WindowNode;-><init>(Landroid/app/assist/AssistStructure;Landroid/view/ViewRootImpl;ZI)V
+HPLandroid/app/assist/AssistStructure$WindowNode;->getDisplayId()I
+PLandroid/app/assist/AssistStructure$WindowNode;->getHeight()I
+PLandroid/app/assist/AssistStructure$WindowNode;->getLeft()I
+PLandroid/app/assist/AssistStructure$WindowNode;->getRootViewNode()Landroid/app/assist/AssistStructure$ViewNode;
+PLandroid/app/assist/AssistStructure$WindowNode;->getTitle()Ljava/lang/CharSequence;
+PLandroid/app/assist/AssistStructure$WindowNode;->getTop()I
+PLandroid/app/assist/AssistStructure$WindowNode;->getWidth()I
+HPLandroid/app/assist/AssistStructure$WindowNode;->resolveViewAutofillFlags(Landroid/content/Context;I)I
+PLandroid/app/assist/AssistStructure$WindowNode;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;[F)V
+HPLandroid/app/assist/AssistStructure;-><init>(Landroid/app/Activity;ZI)V
+PLandroid/app/assist/AssistStructure;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/assist/AssistStructure;->access$000(Landroid/app/assist/AssistStructure;)Z
+PLandroid/app/assist/AssistStructure;->access$100(Landroid/app/assist/AssistStructure;)I
+PLandroid/app/assist/AssistStructure;->access$102(Landroid/app/assist/AssistStructure;I)I
+PLandroid/app/assist/AssistStructure;->access$200(Landroid/app/assist/AssistStructure;)I
+PLandroid/app/assist/AssistStructure;->access$202(Landroid/app/assist/AssistStructure;I)I
+PLandroid/app/assist/AssistStructure;->access$300(Landroid/app/assist/AssistStructure;)J
+PLandroid/app/assist/AssistStructure;->access$302(Landroid/app/assist/AssistStructure;J)J
+PLandroid/app/assist/AssistStructure;->access$400(Landroid/app/assist/AssistStructure;)J
+PLandroid/app/assist/AssistStructure;->access$402(Landroid/app/assist/AssistStructure;J)J
+PLandroid/app/assist/AssistStructure;->access$500(Landroid/app/assist/AssistStructure;)Ljava/util/ArrayList;
+HPLandroid/app/assist/AssistStructure;->access$700(Landroid/app/assist/AssistStructure;)Landroid/graphics/Rect;
+HPLandroid/app/assist/AssistStructure;->clearSendChannel()V
+HPLandroid/app/assist/AssistStructure;->dump(Ljava/lang/String;Landroid/app/assist/AssistStructure$ViewNode;Z)V
+PLandroid/app/assist/AssistStructure;->dump(Z)V
+PLandroid/app/assist/AssistStructure;->ensureData()V
+PLandroid/app/assist/AssistStructure;->ensureDataForAutofill()V
+HPLandroid/app/assist/AssistStructure;->getActivityComponent()Landroid/content/ComponentName;
+PLandroid/app/assist/AssistStructure;->getFlags()I
+PLandroid/app/assist/AssistStructure;->getWindowNodeAt(I)Landroid/app/assist/AssistStructure$WindowNode;
+PLandroid/app/assist/AssistStructure;->getWindowNodeCount()I
+PLandroid/app/assist/AssistStructure;->sanitizeForParceling(Z)V
+PLandroid/app/assist/AssistStructure;->setActivityComponent(Landroid/content/ComponentName;)V
+PLandroid/app/assist/AssistStructure;->setHomeActivity(Z)V
+PLandroid/app/assist/AssistStructure;->setTaskId(I)V
+PLandroid/app/assist/AssistStructure;->waitForReady()Z
+PLandroid/app/assist/AssistStructure;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/backup/BackupAgent$BackupServiceBinder;-><init>(Landroid/app/backup/BackupAgent;)V
+PLandroid/app/backup/BackupAgent$BackupServiceBinder;-><init>(Landroid/app/backup/BackupAgent;Landroid/app/backup/BackupAgent$1;)V
HSPLandroid/app/backup/BackupAgent$BackupServiceBinder;->doBackup(Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;JLandroid/app/backup/IBackupCallback;I)V
+PLandroid/app/backup/BackupAgent$BackupServiceBinder;->doFullBackup(Landroid/os/ParcelFileDescriptor;JILandroid/app/backup/IBackupManager;I)V
+PLandroid/app/backup/BackupAgent$BackupServiceBinder;->doMeasureFullBackup(JILandroid/app/backup/IBackupManager;I)V
+PLandroid/app/backup/BackupAgent$SharedPrefsSynchronizer;-><init>(Landroid/app/backup/BackupAgent;)V
HSPLandroid/app/backup/BackupAgent$SharedPrefsSynchronizer;->run()V
+HSPLandroid/app/backup/BackupAgent;-><init>()V
+PLandroid/app/backup/BackupAgent;->access$100(Landroid/app/backup/BackupAgent;)V
+PLandroid/app/backup/BackupAgent;->access$200(Landroid/app/backup/BackupAgent;)I
HSPLandroid/app/backup/BackupAgent;->attach(Landroid/content/Context;)V
+PLandroid/app/backup/BackupAgent;->fullBackupFile(Ljava/io/File;Landroid/app/backup/FullBackupDataOutput;)V
+PLandroid/app/backup/BackupAgent;->getBackupUserId()I
HSPLandroid/app/backup/BackupAgent;->getHandler()Landroid/os/Handler;
+PLandroid/app/backup/BackupAgent;->onBind()Landroid/os/IBinder;
+HSPLandroid/app/backup/BackupAgent;->onCreate()V
HSPLandroid/app/backup/BackupAgent;->onCreate(Landroid/os/UserHandle;)V
HSPLandroid/app/backup/BackupAgent;->onDestroy()V
HSPLandroid/app/backup/BackupAgent;->waitForSharedPrefs()V
HSPLandroid/app/backup/BackupAgentHelper;-><init>()V
HSPLandroid/app/backup/BackupAgentHelper;->addHelper(Ljava/lang/String;Landroid/app/backup/BackupHelper;)V
HSPLandroid/app/backup/BackupAgentHelper;->onBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
+PLandroid/app/backup/BackupDataInput$EntityHeader;-><init>()V
+PLandroid/app/backup/BackupDataInput$EntityHeader;-><init>(Landroid/app/backup/BackupDataInput$1;)V
+PLandroid/app/backup/BackupDataInput;-><init>(Ljava/io/FileDescriptor;)V
+PLandroid/app/backup/BackupDataInput;->finalize()V
+HPLandroid/app/backup/BackupDataInput;->getDataSize()I
+PLandroid/app/backup/BackupDataInput;->getKey()Ljava/lang/String;
+HPLandroid/app/backup/BackupDataInput;->readEntityData([BII)I
+PLandroid/app/backup/BackupDataInput;->readNextHeader()Z
+PLandroid/app/backup/BackupDataInput;->skipEntityData()V
HSPLandroid/app/backup/BackupDataOutput;-><init>(Ljava/io/FileDescriptor;JI)V
HSPLandroid/app/backup/BackupDataOutput;->finalize()V
+HPLandroid/app/backup/BackupDataOutput;->getTransportFlags()I
HSPLandroid/app/backup/BackupDataOutput;->setKeyPrefix(Ljava/lang/String;)V
+HSPLandroid/app/backup/BackupDataOutput;->writeEntityData([BI)I
+HSPLandroid/app/backup/BackupDataOutput;->writeEntityHeader(Ljava/lang/String;I)I
+PLandroid/app/backup/BackupHelperDispatcher$Header;-><init>()V
+PLandroid/app/backup/BackupHelperDispatcher$Header;-><init>(Landroid/app/backup/BackupHelperDispatcher$1;)V
+PLandroid/app/backup/BackupHelperDispatcher;-><init>()V
HSPLandroid/app/backup/BackupHelperDispatcher;->addHelper(Ljava/lang/String;Landroid/app/backup/BackupHelper;)V
HSPLandroid/app/backup/BackupHelperDispatcher;->doOneBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupHelperDispatcher$Header;Landroid/app/backup/BackupHelper;)V
HSPLandroid/app/backup/BackupHelperDispatcher;->performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
+PLandroid/app/backup/BackupManager$BackupManagerMonitorWrapper;-><init>(Landroid/app/backup/BackupManager;Landroid/app/backup/BackupManagerMonitor;)V
+HPLandroid/app/backup/BackupManager$BackupObserverWrapper$1;-><init>(Landroid/app/backup/BackupManager$BackupObserverWrapper;Landroid/os/Looper;Landroid/app/backup/BackupManager;)V
+HPLandroid/app/backup/BackupManager$BackupObserverWrapper$1;->handleMessage(Landroid/os/Message;)V
+HPLandroid/app/backup/BackupManager$BackupObserverWrapper;-><init>(Landroid/app/backup/BackupManager;Landroid/content/Context;Landroid/app/backup/BackupObserver;)V
+PLandroid/app/backup/BackupManager$BackupObserverWrapper;->backupFinished(I)V
+PLandroid/app/backup/BackupManager$BackupObserverWrapper;->onResult(Ljava/lang/String;I)V
HSPLandroid/app/backup/BackupManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/backup/BackupManager;->checkServiceBinder()V
HSPLandroid/app/backup/BackupManager;->dataChanged()V
HSPLandroid/app/backup/BackupManager;->dataChanged(Ljava/lang/String;)V
+HSPLandroid/app/backup/BackupManager;->getCurrentTransport()Ljava/lang/String;
+HPLandroid/app/backup/BackupManager;->isAppEligibleForBackup(Ljava/lang/String;)Z
+PLandroid/app/backup/BackupManager;->isBackupEnabled()Z
+HSPLandroid/app/backup/BackupManager;->isBackupServiceActive(Landroid/os/UserHandle;)Z
+HPLandroid/app/backup/BackupManager;->listAllTransports()[Ljava/lang/String;
+HPLandroid/app/backup/BackupManager;->requestBackup([Ljava/lang/String;Landroid/app/backup/BackupObserver;Landroid/app/backup/BackupManagerMonitor;I)I
+HSPLandroid/app/backup/BackupManager;->requestRestore(Landroid/app/backup/RestoreObserver;)I
+HSPLandroid/app/backup/BackupManager;->requestRestore(Landroid/app/backup/RestoreObserver;Landroid/app/backup/BackupManagerMonitor;)I
+PLandroid/app/backup/BackupManager;->updateTransportAttributes(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V
+PLandroid/app/backup/BackupManager;->updateTransportAttributes(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;)V
+PLandroid/app/backup/BackupManagerMonitor;-><init>()V
+PLandroid/app/backup/BackupObserver;-><init>()V
+PLandroid/app/backup/BackupProgress$1;-><init>()V
+PLandroid/app/backup/BackupProgress;-><clinit>()V
+HPLandroid/app/backup/BackupProgress;-><init>(JJ)V
+PLandroid/app/backup/BackupProgress;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/backup/BackupTransport$TransportImpl;->cancelFullBackup()V
+PLandroid/app/backup/BackupTransport$TransportImpl;->checkFullBackupSize(J)I
+PLandroid/app/backup/BackupTransport$TransportImpl;->configurationIntent()Landroid/content/Intent;
+PLandroid/app/backup/BackupTransport$TransportImpl;->currentDestinationString()Ljava/lang/String;
+PLandroid/app/backup/BackupTransport$TransportImpl;->dataManagementIntent()Landroid/content/Intent;
+PLandroid/app/backup/BackupTransport$TransportImpl;->dataManagementIntentLabel()Ljava/lang/CharSequence;
+HPLandroid/app/backup/BackupTransport$TransportImpl;->finishBackup()I
+HPLandroid/app/backup/BackupTransport$TransportImpl;->getBackupQuota(Ljava/lang/String;Z)J
+PLandroid/app/backup/BackupTransport$TransportImpl;->getCurrentRestoreSet()J
+HPLandroid/app/backup/BackupTransport$TransportImpl;->getTransportFlags()I
+PLandroid/app/backup/BackupTransport$TransportImpl;->initializeDevice()I
+HPLandroid/app/backup/BackupTransport$TransportImpl;->isAppEligibleForBackup(Landroid/content/pm/PackageInfo;Z)Z
+PLandroid/app/backup/BackupTransport$TransportImpl;->name()Ljava/lang/String;
+HPLandroid/app/backup/BackupTransport$TransportImpl;->performBackup(Landroid/content/pm/PackageInfo;Landroid/os/ParcelFileDescriptor;I)I
+HPLandroid/app/backup/BackupTransport$TransportImpl;->performFullBackup(Landroid/content/pm/PackageInfo;Landroid/os/ParcelFileDescriptor;I)I
+PLandroid/app/backup/BackupTransport$TransportImpl;->requestBackupTime()J
+PLandroid/app/backup/BackupTransport$TransportImpl;->requestFullBackupTime()J
+HPLandroid/app/backup/BackupTransport$TransportImpl;->sendBackupData(I)I
+PLandroid/app/backup/BackupTransport$TransportImpl;->transportDirName()Ljava/lang/String;
+HSPLandroid/app/backup/BackupTransport;-><init>()V
+PLandroid/app/backup/BackupTransport;->configurationIntent()Landroid/content/Intent;
+PLandroid/app/backup/BackupTransport;->dataManagementIntent()Landroid/content/Intent;
+PLandroid/app/backup/BackupTransport;->dataManagementIntentLabel()Ljava/lang/CharSequence;
+HSPLandroid/app/backup/BackupTransport;->getBinder()Landroid/os/IBinder;
+PLandroid/app/backup/BackupTransport;->isAppEligibleForBackup(Landroid/content/pm/PackageInfo;Z)Z
+PLandroid/app/backup/BlobBackupHelper;-><init>(I[Ljava/lang/String;)V
+PLandroid/app/backup/BlobBackupHelper;->checksum([B)J
+PLandroid/app/backup/BlobBackupHelper;->deflate([B)[B
+PLandroid/app/backup/BlobBackupHelper;->performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
+PLandroid/app/backup/BlobBackupHelper;->readOldState(Landroid/os/ParcelFileDescriptor;)Landroid/util/ArrayMap;
+PLandroid/app/backup/BlobBackupHelper;->writeBackupState(Landroid/util/ArrayMap;Landroid/os/ParcelFileDescriptor;)V
+HSPLandroid/app/backup/FileBackupHelper;-><init>(Landroid/content/Context;[Ljava/lang/String;)V
+HSPLandroid/app/backup/FileBackupHelper;->performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
+HSPLandroid/app/backup/FileBackupHelperBase;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/backup/FileBackupHelperBase;->finalize()V
+HSPLandroid/app/backup/FileBackupHelperBase;->performBackup_checked(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;[Ljava/lang/String;)V
+PLandroid/app/backup/FullBackupDataOutput;-><init>(JI)V
+PLandroid/app/backup/FullBackupDataOutput;-><init>(Landroid/os/ParcelFileDescriptor;JI)V
+PLandroid/app/backup/FullBackupDataOutput;->addSize(J)V
+PLandroid/app/backup/FullBackupDataOutput;->getSize()J
HSPLandroid/app/backup/IBackupCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/app/backup/IBackupCallback$Stub$Proxy;->operationComplete(J)V
+PLandroid/app/backup/IBackupCallback$Stub;-><init>()V
+PLandroid/app/backup/IBackupCallback$Stub;->asBinder()Landroid/os/IBinder;
HSPLandroid/app/backup/IBackupCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupCallback;
+PLandroid/app/backup/IBackupCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->dataChanged(Ljava/lang/String;)V
+HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->getCurrentTransport()Ljava/lang/String;
+HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->getDataManagementIntent(Ljava/lang/String;)Landroid/content/Intent;
+HPLandroid/app/backup/IBackupManager$Stub$Proxy;->isAppEligibleForBackupForUser(ILjava/lang/String;)Z
+PLandroid/app/backup/IBackupManager$Stub$Proxy;->isBackupEnabled()Z
+HSPLandroid/app/backup/IBackupManager$Stub$Proxy;->isBackupServiceActive(I)Z
+HPLandroid/app/backup/IBackupManager$Stub$Proxy;->listAllTransports()[Ljava/lang/String;
+HPLandroid/app/backup/IBackupManager$Stub$Proxy;->opCompleteForUser(IIJ)V
+HPLandroid/app/backup/IBackupManager$Stub$Proxy;->requestBackup([Ljava/lang/String;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;I)I
+PLandroid/app/backup/IBackupManager$Stub$Proxy;->updateTransportAttributesForUser(ILandroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/CharSequence;)V
+HSPLandroid/app/backup/IBackupManager$Stub;-><init>()V
+PLandroid/app/backup/IBackupManager$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/backup/IBackupManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupManager;
+PLandroid/app/backup/IBackupManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/app/backup/IBackupManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/app/backup/IBackupManagerMonitor$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/app/backup/IBackupManagerMonitor$Stub$Proxy;->onEvent(Landroid/os/Bundle;)V
+HPLandroid/app/backup/IBackupManagerMonitor$Stub;-><init>()V
+PLandroid/app/backup/IBackupManagerMonitor$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/backup/IBackupManagerMonitor$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupManagerMonitor;
+HPLandroid/app/backup/IBackupManagerMonitor$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/app/backup/IBackupObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/app/backup/IBackupObserver$Stub$Proxy;->backupFinished(I)V
+HPLandroid/app/backup/IBackupObserver$Stub$Proxy;->onResult(Ljava/lang/String;I)V
+HPLandroid/app/backup/IBackupObserver$Stub$Proxy;->onUpdate(Ljava/lang/String;Landroid/app/backup/BackupProgress;)V
+HPLandroid/app/backup/IBackupObserver$Stub;-><init>()V
+PLandroid/app/backup/IBackupObserver$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/backup/IBackupObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupObserver;
+HPLandroid/app/backup/IBackupObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/backup/RestoreDescription$1;-><init>()V
+PLandroid/app/backup/RestoreDescription$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/backup/RestoreDescription;
+PLandroid/app/backup/RestoreDescription$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/backup/RestoreDescription;-><clinit>()V
+PLandroid/app/backup/RestoreDescription;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/backup/RestoreDescription;-><init>(Landroid/os/Parcel;Landroid/app/backup/RestoreDescription$1;)V
+PLandroid/app/backup/RestoreDescription;-><init>(Ljava/lang/String;I)V
+PLandroid/app/backup/RestoreDescription;->access$100(Landroid/app/backup/RestoreDescription;)Ljava/lang/String;
+PLandroid/app/backup/RestoreDescription;->getPackageName()Ljava/lang/String;
+HSPLandroid/app/backup/SharedPreferencesBackupHelper;-><init>(Landroid/content/Context;[Ljava/lang/String;)V
+HSPLandroid/app/backup/SharedPreferencesBackupHelper;->performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
+HSPLandroid/app/blob/IBlobStoreManager$Stub;-><init>()V
+PLandroid/app/blob/IBlobStoreManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/contentsuggestions/IContentSuggestionsManager$Stub;-><init>()V
+PLandroid/app/contentsuggestions/IContentSuggestionsManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/job/-$$Lambda$FpGlzN9oJcl8o5soW-gU-DyTvXM;->createService(Landroid/content/Context;)Ljava/lang/Object;
HSPLandroid/app/job/-$$Lambda$JobSchedulerFrameworkInitializer$PtYe8PQc1PVJQXRnpm3iSxcWTR0;->createService(Landroid/content/Context;Landroid/os/IBinder;)Ljava/lang/Object;
HSPLandroid/app/job/-$$Lambda$JobSchedulerFrameworkInitializer$RHUxgww0pZFMmfQWKgaRAx0YFqA;->createService(Landroid/os/IBinder;)Ljava/lang/Object;
HSPLandroid/app/job/IJobCallback$Stub$Proxy;->acknowledgeStartMessage(IZ)V
@@ -1371,16 +4354,28 @@ HSPLandroid/app/job/IJobCallback$Stub$Proxy;->acknowledgeStopMessage(IZ)V
HSPLandroid/app/job/IJobCallback$Stub$Proxy;->completeWork(II)Z
HSPLandroid/app/job/IJobCallback$Stub$Proxy;->dequeueWork(I)Landroid/app/job/JobWorkItem;
HSPLandroid/app/job/IJobCallback$Stub$Proxy;->jobFinished(IZ)V
+PLandroid/app/job/IJobCallback$Stub;-><init>()V
+PLandroid/app/job/IJobCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobCallback;
+PLandroid/app/job/IJobCallback$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/app/job/IJobCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/app/job/IJobScheduler$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->cancel(I)V
+HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->cancelAll()V
HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->enqueue(Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;)I
HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->getAllPendingJobs()Landroid/content/pm/ParceledListSlice;
HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->getPendingJob(I)Landroid/app/job/JobInfo;
HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->schedule(Landroid/app/job/JobInfo;)I
HSPLandroid/app/job/IJobScheduler$Stub$Proxy;->scheduleAsPackage(Landroid/app/job/JobInfo;Ljava/lang/String;ILjava/lang/String;)I
+HSPLandroid/app/job/IJobScheduler$Stub;-><init>()V
HSPLandroid/app/job/IJobScheduler$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobScheduler;
+PLandroid/app/job/IJobScheduler$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/app/job/IJobScheduler$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/job/IJobService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/app/job/IJobService$Stub$Proxy;->startJob(Landroid/app/job/JobParameters;)V
+PLandroid/app/job/IJobService$Stub$Proxy;->stopJob(Landroid/app/job/JobParameters;)V
HSPLandroid/app/job/IJobService$Stub;-><init>()V
HSPLandroid/app/job/IJobService$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/job/IJobService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobService;
HSPLandroid/app/job/IJobService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/app/job/JobInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobInfo;
HSPLandroid/app/job/JobInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
@@ -1415,48 +4410,101 @@ HSPLandroid/app/job/JobInfo$Builder;->build()Landroid/app/job/JobInfo;
HSPLandroid/app/job/JobInfo$Builder;->setBackoffCriteria(JI)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setExtras(Landroid/os/PersistableBundle;)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setFlags(I)Landroid/app/job/JobInfo$Builder;
+HSPLandroid/app/job/JobInfo$Builder;->setImportantWhileForeground(Z)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setMinimumLatency(J)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setOverrideDeadline(J)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setPeriodic(J)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setPeriodic(JJ)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setPersisted(Z)Landroid/app/job/JobInfo$Builder;
+PLandroid/app/job/JobInfo$Builder;->setPrefetch(Z)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setPriority(I)Landroid/app/job/JobInfo$Builder;
+HSPLandroid/app/job/JobInfo$Builder;->setRequiredNetwork(Landroid/net/NetworkRequest;)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setRequiredNetworkType(I)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setRequiresBatteryNotLow(Z)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setRequiresCharging(Z)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setRequiresDeviceIdle(Z)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setRequiresStorageNotLow(Z)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$Builder;->setTransientExtras(Landroid/os/Bundle;)Landroid/app/job/JobInfo$Builder;
+HSPLandroid/app/job/JobInfo$Builder;->setTriggerContentMaxDelay(J)Landroid/app/job/JobInfo$Builder;
+HSPLandroid/app/job/JobInfo$Builder;->setTriggerContentUpdateDelay(J)Landroid/app/job/JobInfo$Builder;
HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobInfo$TriggerContentUri;
HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->newArray(I)[Landroid/app/job/JobInfo$TriggerContentUri;
HSPLandroid/app/job/JobInfo$TriggerContentUri$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/app/job/JobInfo$TriggerContentUri;-><init>(Landroid/net/Uri;I)V
+PLandroid/app/job/JobInfo$TriggerContentUri;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/job/JobInfo$TriggerContentUri;-><init>(Landroid/os/Parcel;Landroid/app/job/JobInfo$1;)V
+PLandroid/app/job/JobInfo$TriggerContentUri;->equals(Ljava/lang/Object;)Z
+PLandroid/app/job/JobInfo$TriggerContentUri;->getFlags()I
+PLandroid/app/job/JobInfo$TriggerContentUri;->getUri()Landroid/net/Uri;
+PLandroid/app/job/JobInfo$TriggerContentUri;->hashCode()I
HSPLandroid/app/job/JobInfo;-><init>(Landroid/app/job/JobInfo$Builder;)V
HSPLandroid/app/job/JobInfo;-><init>(Landroid/app/job/JobInfo$Builder;Landroid/app/job/JobInfo$1;)V
HSPLandroid/app/job/JobInfo;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/job/JobInfo;-><init>(Landroid/os/Parcel;Landroid/app/job/JobInfo$1;)V
+PLandroid/app/job/JobInfo;->equals(Ljava/lang/Object;)Z
+HPLandroid/app/job/JobInfo;->getBackoffPolicy()I
+HSPLandroid/app/job/JobInfo;->getClipData()Landroid/content/ClipData;
+PLandroid/app/job/JobInfo;->getClipGrantFlags()I
+HSPLandroid/app/job/JobInfo;->getConstraintFlags()I
+HSPLandroid/app/job/JobInfo;->getEstimatedNetworkDownloadBytes()J
+HSPLandroid/app/job/JobInfo;->getEstimatedNetworkUploadBytes()J
HSPLandroid/app/job/JobInfo;->getExtras()Landroid/os/PersistableBundle;
+HSPLandroid/app/job/JobInfo;->getFlags()I
+HSPLandroid/app/job/JobInfo;->getFlexMillis()J
HSPLandroid/app/job/JobInfo;->getId()I
+HPLandroid/app/job/JobInfo;->getInitialBackoffMillis()J
+HSPLandroid/app/job/JobInfo;->getIntervalMillis()J
HSPLandroid/app/job/JobInfo;->getMaxExecutionDelayMillis()J
+HSPLandroid/app/job/JobInfo;->getMinBackoffMillis()J
+HSPLandroid/app/job/JobInfo;->getMinFlexMillis()J
HSPLandroid/app/job/JobInfo;->getMinLatencyMillis()J
+HSPLandroid/app/job/JobInfo;->getMinPeriodMillis()J
HSPLandroid/app/job/JobInfo;->getNetworkType()I
+HPLandroid/app/job/JobInfo;->getPriority()I
+HSPLandroid/app/job/JobInfo;->getRequiredNetwork()Landroid/net/NetworkRequest;
HSPLandroid/app/job/JobInfo;->getService()Landroid/content/ComponentName;
-HPLandroid/app/job/JobInfo;->isPersisted()Z
+PLandroid/app/job/JobInfo;->getTransientExtras()Landroid/os/Bundle;
+PLandroid/app/job/JobInfo;->getTriggerContentMaxDelay()J
+PLandroid/app/job/JobInfo;->getTriggerContentUpdateDelay()J
+HSPLandroid/app/job/JobInfo;->getTriggerContentUris()[Landroid/app/job/JobInfo$TriggerContentUri;
+HSPLandroid/app/job/JobInfo;->hasEarlyConstraint()Z
+HSPLandroid/app/job/JobInfo;->hasLateConstraint()Z
+HSPLandroid/app/job/JobInfo;->isExemptedFromAppStandby()Z
+HSPLandroid/app/job/JobInfo;->isPeriodic()Z
+HSPLandroid/app/job/JobInfo;->isPersisted()Z
+PLandroid/app/job/JobInfo;->isPrefetch()Z
+PLandroid/app/job/JobInfo;->isRequireBatteryNotLow()Z
HSPLandroid/app/job/JobInfo;->isRequireCharging()Z
HSPLandroid/app/job/JobInfo;->isRequireDeviceIdle()Z
+PLandroid/app/job/JobInfo;->isRequireStorageNotLow()Z
+PLandroid/app/job/JobInfo;->kindofEqualsBundle(Landroid/os/BaseBundle;Landroid/os/BaseBundle;)Z
HSPLandroid/app/job/JobInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/job/JobParameters$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/job/JobParameters;
HSPLandroid/app/job/JobParameters$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/job/JobParameters;-><init>(Landroid/os/IBinder;ILandroid/os/PersistableBundle;Landroid/os/Bundle;Landroid/content/ClipData;IZ[Landroid/net/Uri;[Ljava/lang/String;Landroid/net/Network;)V
HSPLandroid/app/job/JobParameters;-><init>(Landroid/os/Parcel;)V
HSPLandroid/app/job/JobParameters;->completeWork(Landroid/app/job/JobWorkItem;)V
HSPLandroid/app/job/JobParameters;->dequeueWork()Landroid/app/job/JobWorkItem;
HSPLandroid/app/job/JobParameters;->getCallback()Landroid/app/job/IJobCallback;
+HSPLandroid/app/job/JobParameters;->getDebugStopReason()Ljava/lang/String;
HSPLandroid/app/job/JobParameters;->getExtras()Landroid/os/PersistableBundle;
HSPLandroid/app/job/JobParameters;->getJobId()I
+HPLandroid/app/job/JobParameters;->getJobStopReasonCodes()[I
HSPLandroid/app/job/JobParameters;->getNetwork()Landroid/net/Network;
+PLandroid/app/job/JobParameters;->getReasonCodeDescription(I)Ljava/lang/String;
+PLandroid/app/job/JobParameters;->getReasonName(I)Ljava/lang/String;
+HPLandroid/app/job/JobParameters;->getStopReason()I
+HSPLandroid/app/job/JobParameters;->getTransientExtras()Landroid/os/Bundle;
+HSPLandroid/app/job/JobParameters;->getTriggeredContentAuthorities()[Ljava/lang/String;
+HSPLandroid/app/job/JobParameters;->getTriggeredContentUris()[Landroid/net/Uri;
+HSPLandroid/app/job/JobParameters;->isOverrideDeadlineExpired()Z
+PLandroid/app/job/JobParameters;->setStopReason(ILjava/lang/String;)V
+HSPLandroid/app/job/JobParameters;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/job/JobScheduler;-><init>()V
HSPLandroid/app/job/JobSchedulerFrameworkInitializer;->lambda$registerServiceWrappers$0(Landroid/os/IBinder;)Landroid/app/job/JobScheduler;
HSPLandroid/app/job/JobSchedulerFrameworkInitializer;->lambda$registerServiceWrappers$1(Landroid/content/Context;Landroid/os/IBinder;)Landroid/os/DeviceIdleManager;
+PLandroid/app/job/JobService$1;-><init>(Landroid/app/job/JobService;Landroid/app/Service;)V
HSPLandroid/app/job/JobService$1;->onStartJob(Landroid/app/job/JobParameters;)Z
HSPLandroid/app/job/JobService$1;->onStopJob(Landroid/app/job/JobParameters;)Z
HSPLandroid/app/job/JobService;-><init>()V
@@ -1476,151 +4524,1017 @@ HSPLandroid/app/job/JobWorkItem$1;->createFromParcel(Landroid/os/Parcel;)Landroi
HSPLandroid/app/job/JobWorkItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/app/job/JobWorkItem;-><init>(Landroid/content/Intent;)V
HSPLandroid/app/job/JobWorkItem;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/job/JobWorkItem;->bumpDeliveryCount()V
+PLandroid/app/job/JobWorkItem;->getDeliveryCount()I
+PLandroid/app/job/JobWorkItem;->getGrants()Ljava/lang/Object;
HSPLandroid/app/job/JobWorkItem;->getIntent()Landroid/content/Intent;
+PLandroid/app/job/JobWorkItem;->getWorkId()I
+PLandroid/app/job/JobWorkItem;->setWorkId(I)V
+HPLandroid/app/job/JobWorkItem;->toString()Ljava/lang/String;
HSPLandroid/app/job/JobWorkItem;->writeToParcel(Landroid/os/Parcel;I)V
-HSPLandroid/app/prediction/AppTarget;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/prediction/AppPredictionContext$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppPredictionContext;
+PLandroid/app/prediction/AppPredictionContext$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/prediction/AppPredictionContext;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/prediction/AppPredictionContext;-><init>(Landroid/os/Parcel;Landroid/app/prediction/AppPredictionContext$1;)V
+HPLandroid/app/prediction/AppPredictionContext;-><init>(Ljava/lang/String;ILjava/lang/String;Landroid/os/Bundle;)V
+HPLandroid/app/prediction/AppPredictionContext;-><init>(Ljava/lang/String;ILjava/lang/String;Landroid/os/Bundle;Landroid/app/prediction/AppPredictionContext$1;)V
+HPLandroid/app/prediction/AppPredictionContext;->getExtras()Landroid/os/Bundle;
+HPLandroid/app/prediction/AppPredictionContext;->getPredictedTargetCount()I
+HPLandroid/app/prediction/AppPredictionContext;->getUiSurface()Ljava/lang/String;
+PLandroid/app/prediction/AppPredictionContext;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/app/prediction/AppPredictionManager;-><init>(Landroid/content/Context;)V
+HPLandroid/app/prediction/AppPredictionManager;->createAppPredictionSession(Landroid/app/prediction/AppPredictionContext;)Landroid/app/prediction/AppPredictor;
+PLandroid/app/prediction/AppPredictionSessionId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppPredictionSessionId;
+PLandroid/app/prediction/AppPredictionSessionId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/prediction/AppPredictionSessionId;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/prediction/AppPredictionSessionId;-><init>(Landroid/os/Parcel;Landroid/app/prediction/AppPredictionSessionId$1;)V
+HPLandroid/app/prediction/AppPredictionSessionId;-><init>(Ljava/lang/String;)V
+HPLandroid/app/prediction/AppPredictionSessionId;->equals(Ljava/lang/Object;)Z
+HPLandroid/app/prediction/AppPredictionSessionId;->hashCode()I
+PLandroid/app/prediction/AppPredictionSessionId;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/app/prediction/AppPredictor;-><init>(Landroid/content/Context;Landroid/app/prediction/AppPredictionContext;)V
+HPLandroid/app/prediction/AppPredictor;->notifyAppTargetEvent(Landroid/app/prediction/AppTargetEvent;)V
+HPLandroid/app/prediction/AppPredictor;->registerPredictionUpdates(Ljava/util/concurrent/Executor;Landroid/app/prediction/AppPredictor$Callback;)V
+HPLandroid/app/prediction/AppPredictor;->requestPredictionUpdate()V
+PLandroid/app/prediction/AppTarget$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppTarget;
+PLandroid/app/prediction/AppTarget$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/prediction/AppTarget$Builder;-><init>(Landroid/app/prediction/AppTargetId;Ljava/lang/String;Landroid/os/UserHandle;)V
+HPLandroid/app/prediction/AppTarget$Builder;->build()Landroid/app/prediction/AppTarget;
+PLandroid/app/prediction/AppTarget$Builder;->setClassName(Ljava/lang/String;)Landroid/app/prediction/AppTarget$Builder;
+HPLandroid/app/prediction/AppTarget;-><init>(Landroid/app/prediction/AppTargetId;Ljava/lang/String;Landroid/os/UserHandle;Landroid/content/pm/ShortcutInfo;Ljava/lang/String;I)V
+HPLandroid/app/prediction/AppTarget;-><init>(Landroid/app/prediction/AppTargetId;Ljava/lang/String;Landroid/os/UserHandle;Landroid/content/pm/ShortcutInfo;Ljava/lang/String;ILandroid/app/prediction/AppTarget$1;)V
+PLandroid/app/prediction/AppTarget;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/prediction/AppTarget;-><init>(Landroid/os/Parcel;Landroid/app/prediction/AppTarget$1;)V
+HPLandroid/app/prediction/AppTarget;->getClassName()Ljava/lang/String;
+HPLandroid/app/prediction/AppTarget;->getPackageName()Ljava/lang/String;
+HPLandroid/app/prediction/AppTarget;->getShortcutInfo()Landroid/content/pm/ShortcutInfo;
+HPLandroid/app/prediction/AppTarget;->getUser()Landroid/os/UserHandle;
+PLandroid/app/prediction/AppTarget;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/prediction/AppTargetEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppTargetEvent;
+PLandroid/app/prediction/AppTargetEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/prediction/AppTargetEvent;-><init>(Landroid/app/prediction/AppTarget;Ljava/lang/String;I)V
+HPLandroid/app/prediction/AppTargetEvent;-><init>(Landroid/app/prediction/AppTarget;Ljava/lang/String;ILandroid/app/prediction/AppTargetEvent$1;)V
+PLandroid/app/prediction/AppTargetEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/prediction/AppTargetEvent;-><init>(Landroid/os/Parcel;Landroid/app/prediction/AppTargetEvent$1;)V
+HPLandroid/app/prediction/AppTargetEvent;->getLaunchLocation()Ljava/lang/String;
+HPLandroid/app/prediction/AppTargetEvent;->getTarget()Landroid/app/prediction/AppTarget;
+PLandroid/app/prediction/AppTargetEvent;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/prediction/AppTargetId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/prediction/AppTargetId;
+PLandroid/app/prediction/AppTargetId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/prediction/AppTargetId;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/prediction/AppTargetId;-><init>(Landroid/os/Parcel;Landroid/app/prediction/AppTargetId$1;)V
+HPLandroid/app/prediction/AppTargetId;-><init>(Ljava/lang/String;)V
+PLandroid/app/prediction/AppTargetId;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/prediction/IPredictionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/prediction/IPredictionCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/app/prediction/IPredictionCallback$Stub$Proxy;->onResult(Landroid/content/pm/ParceledListSlice;)V
+HPLandroid/app/prediction/IPredictionCallback$Stub;-><init>()V
+HPLandroid/app/prediction/IPredictionCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/app/prediction/IPredictionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/prediction/IPredictionCallback;
+HPLandroid/app/prediction/IPredictionCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/app/prediction/IPredictionManager$Stub$Proxy;->createPredictionSession(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;)V
+HPLandroid/app/prediction/IPredictionManager$Stub$Proxy;->notifyAppTargetEvent(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
+HPLandroid/app/prediction/IPredictionManager$Stub$Proxy;->registerPredictionUpdates(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
+HPLandroid/app/prediction/IPredictionManager$Stub$Proxy;->requestPredictionUpdate(Landroid/app/prediction/AppPredictionSessionId;)V
+HSPLandroid/app/prediction/IPredictionManager$Stub;-><init>()V
+HPLandroid/app/prediction/IPredictionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/prediction/IPredictionManager;
+PLandroid/app/prediction/IPredictionManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/role/-$$Lambda$9DeAxmM9lUVr3-FTSefyo-BW8DY;-><init>(Lcom/android/internal/infra/AndroidFuture;)V
+PLandroid/app/role/-$$Lambda$9DeAxmM9lUVr3-FTSefyo-BW8DY;->onResult(Landroid/os/Bundle;)V
+PLandroid/app/role/-$$Lambda$RoleControllerManager$Jsb4ev7pHUqel8_lglNSRLiUzpg;->run(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/app/role/-$$Lambda$RoleControllerManager$hbh627Rh8mtJykW3vb1FWR34mIQ;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/String;Ljava/util/function/Consumer;)V
+PLandroid/app/role/-$$Lambda$RoleControllerManager$hbh627Rh8mtJykW3vb1FWR34mIQ;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLandroid/app/role/-$$Lambda$RoleControllerManager$mCMKfoPdye0sMu6efs963HCR1Xk;-><init>(Ljava/lang/Throwable;Ljava/lang/String;Ljava/util/function/Consumer;Landroid/os/Bundle;)V
+PLandroid/app/role/-$$Lambda$RoleControllerManager$mCMKfoPdye0sMu6efs963HCR1Xk;->run()V
+PLandroid/app/role/-$$Lambda$Z0BwIRmLFQVA4XrF_I5nxvuecWE;-><clinit>()V
+PLandroid/app/role/-$$Lambda$Z0BwIRmLFQVA4XrF_I5nxvuecWE;-><init>()V
+PLandroid/app/role/-$$Lambda$Z0BwIRmLFQVA4XrF_I5nxvuecWE;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/app/role/-$$Lambda$o94o2jK_ei-IVw-3oY_QJ49zpAA;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLandroid/app/role/IOnRoleHoldersChangedListener$Stub;-><init>()V
+HSPLandroid/app/role/IOnRoleHoldersChangedListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/app/role/IRoleController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/role/IRoleController$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/app/role/IRoleController$Stub$Proxy;->grantDefaultRoles(Landroid/os/RemoteCallback;)V
+HSPLandroid/app/role/IRoleController$Stub;-><init>()V
+PLandroid/app/role/IRoleController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/role/IRoleController;
+HSPLandroid/app/role/IRoleController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/app/role/IRoleManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/app/role/IRoleManager$Stub$Proxy;->getDefaultSmsPackage(I)Ljava/lang/String;
+HSPLandroid/app/role/IRoleManager$Stub$Proxy;->getRoleHoldersAsUser(Ljava/lang/String;I)Ljava/util/List;
+HSPLandroid/app/role/IRoleManager$Stub$Proxy;->isRoleAvailable(Ljava/lang/String;)Z
+HSPLandroid/app/role/IRoleManager$Stub$Proxy;->setRoleNamesFromController(Ljava/util/List;)V
+HSPLandroid/app/role/IRoleManager$Stub;-><init>()V
HSPLandroid/app/role/IRoleManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/role/IRoleManager;
+PLandroid/app/role/IRoleManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/app/role/IRoleManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/role/RoleControllerManager$1;-><init>(Landroid/app/role/RoleControllerManager;Landroid/content/Context;Landroid/content/Intent;IILjava/util/function/Function;Landroid/os/Handler;)V
+PLandroid/app/role/RoleControllerManager$1;->getJobHandler()Landroid/os/Handler;
+PLandroid/app/role/RoleControllerManager;-><init>(Landroid/content/ComponentName;Landroid/os/Handler;Landroid/content/Context;)V
+PLandroid/app/role/RoleControllerManager;->createWithInitializedRemoteServiceComponentName(Landroid/os/Handler;Landroid/content/Context;)Landroid/app/role/RoleControllerManager;
+HSPLandroid/app/role/RoleControllerManager;->getRemoteServiceComponentName(Landroid/content/Context;)Landroid/content/ComponentName;
+PLandroid/app/role/RoleControllerManager;->grantDefaultRoles(Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V
+HSPLandroid/app/role/RoleControllerManager;->initializeRemoteServiceComponentName(Landroid/content/Context;)V
+PLandroid/app/role/RoleControllerManager;->lambda$grantDefaultRoles$0(Landroid/app/role/IRoleController;)Ljava/util/concurrent/CompletableFuture;
+PLandroid/app/role/RoleControllerManager;->lambda$propagateCallback$7(Ljava/lang/Throwable;Ljava/lang/String;Ljava/util/function/Consumer;Landroid/os/Bundle;)V
+PLandroid/app/role/RoleControllerManager;->lambda$propagateCallback$8(Ljava/util/concurrent/Executor;Ljava/lang/String;Ljava/util/function/Consumer;Landroid/os/Bundle;Ljava/lang/Throwable;)V
+PLandroid/app/role/RoleControllerManager;->propagateCallback(Lcom/android/internal/infra/AndroidFuture;Ljava/lang/String;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V
+HSPLandroid/app/role/RoleManager$OnRoleHoldersChangedListenerDelegate;-><init>(Ljava/util/concurrent/Executor;Landroid/app/role/OnRoleHoldersChangedListener;)V
+PLandroid/app/role/RoleManager$OnRoleHoldersChangedListenerDelegate;->onRoleHoldersChanged(Ljava/lang/String;I)V
HSPLandroid/app/role/RoleManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/app/role/RoleManager;->addOnRoleHoldersChangedListenerAsUser(Ljava/util/concurrent/Executor;Landroid/app/role/OnRoleHoldersChangedListener;Landroid/os/UserHandle;)V
HSPLandroid/app/role/RoleManager;->getDefaultSmsPackage(I)Ljava/lang/String;
+HSPLandroid/app/role/RoleManager;->getRoleHolders(Ljava/lang/String;)Ljava/util/List;
+HSPLandroid/app/role/RoleManager;->getRoleHoldersAsUser(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List;
+HSPLandroid/app/role/RoleManager;->isRoleAvailable(Ljava/lang/String;)Z
+HSPLandroid/app/role/RoleManager;->setRoleNamesFromController(Ljava/util/List;)V
+HPLandroid/app/servertransaction/ActivityConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ActivityConfigurationChangeItem;
+HPLandroid/app/servertransaction/ActivityConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/servertransaction/ActivityConfigurationChangeItem;-><init>()V
+HPLandroid/app/servertransaction/ActivityConfigurationChangeItem;-><init>(Landroid/os/Parcel;)V
+HPLandroid/app/servertransaction/ActivityConfigurationChangeItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ActivityConfigurationChangeItem$1;)V
+HPLandroid/app/servertransaction/ActivityConfigurationChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+PLandroid/app/servertransaction/ActivityConfigurationChangeItem;->obtain(Landroid/content/res/Configuration;)Landroid/app/servertransaction/ActivityConfigurationChangeItem;
+HPLandroid/app/servertransaction/ActivityConfigurationChangeItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
+PLandroid/app/servertransaction/ActivityConfigurationChangeItem;->recycle()V
+PLandroid/app/servertransaction/ActivityConfigurationChangeItem;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/servertransaction/ActivityLifecycleItem;-><init>()V
+PLandroid/app/servertransaction/ActivityLifecycleItem;->recycle()V
+HPLandroid/app/servertransaction/ActivityResultItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ActivityResultItem;
+HPLandroid/app/servertransaction/ActivityResultItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/servertransaction/ActivityResultItem;-><init>()V
+HPLandroid/app/servertransaction/ActivityResultItem;-><init>(Landroid/os/Parcel;)V
+HPLandroid/app/servertransaction/ActivityResultItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ActivityResultItem$1;)V
+HPLandroid/app/servertransaction/ActivityResultItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+PLandroid/app/servertransaction/ActivityResultItem;->obtain(Ljava/util/List;)Landroid/app/servertransaction/ActivityResultItem;
+PLandroid/app/servertransaction/ActivityResultItem;->recycle()V
+PLandroid/app/servertransaction/ActivityResultItem;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/servertransaction/BaseClientRequest;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/BaseClientRequest;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
HSPLandroid/app/servertransaction/ClientTransaction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ClientTransaction;
HSPLandroid/app/servertransaction/ClientTransaction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/servertransaction/ClientTransaction;-><init>()V
HSPLandroid/app/servertransaction/ClientTransaction;-><init>(Landroid/os/Parcel;)V
HSPLandroid/app/servertransaction/ClientTransaction;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ClientTransaction$1;)V
+HSPLandroid/app/servertransaction/ClientTransaction;->addCallback(Landroid/app/servertransaction/ClientTransactionItem;)V
HSPLandroid/app/servertransaction/ClientTransaction;->getActivityToken()Landroid/os/IBinder;
HSPLandroid/app/servertransaction/ClientTransaction;->getCallbacks()Ljava/util/List;
+HSPLandroid/app/servertransaction/ClientTransaction;->getClient()Landroid/app/IApplicationThread;
HSPLandroid/app/servertransaction/ClientTransaction;->getLifecycleStateRequest()Landroid/app/servertransaction/ActivityLifecycleItem;
+HSPLandroid/app/servertransaction/ClientTransaction;->obtain(Landroid/app/IApplicationThread;Landroid/os/IBinder;)Landroid/app/servertransaction/ClientTransaction;
HSPLandroid/app/servertransaction/ClientTransaction;->preExecute(Landroid/app/ClientTransactionHandler;)V
+HPLandroid/app/servertransaction/ClientTransaction;->recycle()V
+HSPLandroid/app/servertransaction/ClientTransaction;->schedule()V
+PLandroid/app/servertransaction/ClientTransaction;->setLifecycleStateRequest(Landroid/app/servertransaction/ActivityLifecycleItem;)V
+HPLandroid/app/servertransaction/ClientTransaction;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/servertransaction/ClientTransactionItem;-><init>()V
HSPLandroid/app/servertransaction/ClientTransactionItem;->getPostExecutionState()I
HSPLandroid/app/servertransaction/ConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ConfigurationChangeItem;
HSPLandroid/app/servertransaction/ConfigurationChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/servertransaction/ConfigurationChangeItem;-><init>()V
HSPLandroid/app/servertransaction/ConfigurationChangeItem;-><init>(Landroid/os/Parcel;)V
HSPLandroid/app/servertransaction/ConfigurationChangeItem;-><init>(Landroid/os/Parcel;Landroid/app/servertransaction/ConfigurationChangeItem$1;)V
HSPLandroid/app/servertransaction/ConfigurationChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/ConfigurationChangeItem;->obtain(Landroid/content/res/Configuration;)Landroid/app/servertransaction/ConfigurationChangeItem;
HSPLandroid/app/servertransaction/ConfigurationChangeItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
+HPLandroid/app/servertransaction/ConfigurationChangeItem;->recycle()V
+HPLandroid/app/servertransaction/ConfigurationChangeItem;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/servertransaction/DestroyActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/DestroyActivityItem;
+HSPLandroid/app/servertransaction/DestroyActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/servertransaction/DestroyActivityItem;-><init>()V
+HSPLandroid/app/servertransaction/DestroyActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/DestroyActivityItem;->getTargetState()I
+PLandroid/app/servertransaction/DestroyActivityItem;->obtain(ZI)Landroid/app/servertransaction/DestroyActivityItem;
+HSPLandroid/app/servertransaction/DestroyActivityItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
+PLandroid/app/servertransaction/DestroyActivityItem;->recycle()V
+PLandroid/app/servertransaction/DestroyActivityItem;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/servertransaction/LaunchActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/LaunchActivityItem;
+HSPLandroid/app/servertransaction/LaunchActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/servertransaction/LaunchActivityItem;-><init>()V
+HSPLandroid/app/servertransaction/LaunchActivityItem;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/app/servertransaction/LaunchActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+PLandroid/app/servertransaction/LaunchActivityItem;->obtain(Landroid/content/Intent;ILandroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;ILandroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/util/List;Ljava/util/List;ZLandroid/app/ProfilerInfo;Landroid/os/IBinder;)Landroid/app/servertransaction/LaunchActivityItem;
+HSPLandroid/app/servertransaction/LaunchActivityItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/LaunchActivityItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
+PLandroid/app/servertransaction/LaunchActivityItem;->recycle()V
+HSPLandroid/app/servertransaction/LaunchActivityItem;->setValues(Landroid/app/servertransaction/LaunchActivityItem;Landroid/content/Intent;ILandroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;ILandroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/util/List;Ljava/util/List;ZLandroid/app/ProfilerInfo;Landroid/os/IBinder;)V
+PLandroid/app/servertransaction/LaunchActivityItem;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/servertransaction/MultiWindowModeChangeItem$1;-><init>()V
+PLandroid/app/servertransaction/MultiWindowModeChangeItem;-><clinit>()V
+PLandroid/app/servertransaction/MultiWindowModeChangeItem;-><init>()V
+PLandroid/app/servertransaction/MultiWindowModeChangeItem;->obtain(ZLandroid/content/res/Configuration;)Landroid/app/servertransaction/MultiWindowModeChangeItem;
+PLandroid/app/servertransaction/MultiWindowModeChangeItem;->recycle()V
+PLandroid/app/servertransaction/MultiWindowModeChangeItem;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/app/servertransaction/NewIntentItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/NewIntentItem;
+HPLandroid/app/servertransaction/NewIntentItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/servertransaction/NewIntentItem;-><init>()V
+HPLandroid/app/servertransaction/NewIntentItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HPLandroid/app/servertransaction/NewIntentItem;->getPostExecutionState()I
+PLandroid/app/servertransaction/NewIntentItem;->obtain(Ljava/util/List;Z)Landroid/app/servertransaction/NewIntentItem;
+PLandroid/app/servertransaction/NewIntentItem;->recycle()V
+PLandroid/app/servertransaction/NewIntentItem;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/servertransaction/ObjectPool;->obtain(Ljava/lang/Class;)Landroid/app/servertransaction/ObjectPoolItem;
+HPLandroid/app/servertransaction/ObjectPool;->recycle(Landroid/app/servertransaction/ObjectPoolItem;)V
+HSPLandroid/app/servertransaction/PauseActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/PauseActivityItem;
+HSPLandroid/app/servertransaction/PauseActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/servertransaction/PauseActivityItem;-><init>()V
+HSPLandroid/app/servertransaction/PauseActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/PauseActivityItem;->getTargetState()I
+PLandroid/app/servertransaction/PauseActivityItem;->obtain(ZZIZ)Landroid/app/servertransaction/PauseActivityItem;
+HSPLandroid/app/servertransaction/PauseActivityItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+PLandroid/app/servertransaction/PauseActivityItem;->recycle()V
+PLandroid/app/servertransaction/PauseActivityItem;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->run()V
+HSPLandroid/app/servertransaction/PendingTransactionActions$StopInfo;->setDescription(Ljava/lang/CharSequence;)V
HSPLandroid/app/servertransaction/PendingTransactionActions;-><init>()V
HSPLandroid/app/servertransaction/PendingTransactionActions;->clear()V
+HSPLandroid/app/servertransaction/PendingTransactionActions;->getOldState()Landroid/os/Bundle;
+HSPLandroid/app/servertransaction/PendingTransactionActions;->getStopInfo()Landroid/app/servertransaction/PendingTransactionActions$StopInfo;
+HSPLandroid/app/servertransaction/PendingTransactionActions;->setCallOnPostCreate(Z)V
+HSPLandroid/app/servertransaction/PendingTransactionActions;->setOldState(Landroid/os/Bundle;)V
+HSPLandroid/app/servertransaction/PendingTransactionActions;->setRestoreInstanceState(Z)V
+HSPLandroid/app/servertransaction/PendingTransactionActions;->setStopInfo(Landroid/app/servertransaction/PendingTransactionActions$StopInfo;)V
+HSPLandroid/app/servertransaction/PendingTransactionActions;->shouldCallOnPostCreate()Z
+HSPLandroid/app/servertransaction/PendingTransactionActions;->shouldRestoreInstanceState()Z
+PLandroid/app/servertransaction/PipModeChangeItem$1;-><init>()V
+PLandroid/app/servertransaction/PipModeChangeItem;-><clinit>()V
+PLandroid/app/servertransaction/PipModeChangeItem;-><init>()V
+PLandroid/app/servertransaction/PipModeChangeItem;->obtain(ZLandroid/content/res/Configuration;)Landroid/app/servertransaction/PipModeChangeItem;
+PLandroid/app/servertransaction/PipModeChangeItem;->recycle()V
+PLandroid/app/servertransaction/PipModeChangeItem;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/servertransaction/ResumeActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/ResumeActivityItem;
+HSPLandroid/app/servertransaction/ResumeActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/servertransaction/ResumeActivityItem;-><init>()V
+HSPLandroid/app/servertransaction/ResumeActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/ResumeActivityItem;->getTargetState()I
+PLandroid/app/servertransaction/ResumeActivityItem;->obtain(IZ)Landroid/app/servertransaction/ResumeActivityItem;
+PLandroid/app/servertransaction/ResumeActivityItem;->obtain(Z)Landroid/app/servertransaction/ResumeActivityItem;
+HSPLandroid/app/servertransaction/ResumeActivityItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/ResumeActivityItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
+PLandroid/app/servertransaction/ResumeActivityItem;->recycle()V
+PLandroid/app/servertransaction/ResumeActivityItem;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/servertransaction/StopActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/StopActivityItem;
+HSPLandroid/app/servertransaction/StopActivityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/servertransaction/StopActivityItem;-><init>()V
+HSPLandroid/app/servertransaction/StopActivityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+HSPLandroid/app/servertransaction/StopActivityItem;->getTargetState()I
+PLandroid/app/servertransaction/StopActivityItem;->obtain(ZI)Landroid/app/servertransaction/StopActivityItem;
+HSPLandroid/app/servertransaction/StopActivityItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+PLandroid/app/servertransaction/StopActivityItem;->recycle()V
+PLandroid/app/servertransaction/StopActivityItem;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/servertransaction/TopResumedActivityChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/TopResumedActivityChangeItem;
+HSPLandroid/app/servertransaction/TopResumedActivityChangeItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/servertransaction/TopResumedActivityChangeItem;-><init>()V
+HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+PLandroid/app/servertransaction/TopResumedActivityChangeItem;->obtain(Z)Landroid/app/servertransaction/TopResumedActivityChangeItem;
+HSPLandroid/app/servertransaction/TopResumedActivityChangeItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+PLandroid/app/servertransaction/TopResumedActivityChangeItem;->recycle()V
+PLandroid/app/servertransaction/TopResumedActivityChangeItem;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/servertransaction/TransactionExecutor;-><init>(Landroid/app/ClientTransactionHandler;)V
+HPLandroid/app/servertransaction/TransactionExecutor;->cycleToPath(Landroid/app/ActivityThread$ActivityClientRecord;ILandroid/app/servertransaction/ClientTransaction;)V
+HPLandroid/app/servertransaction/TransactionExecutor;->cycleToPath(Landroid/app/ActivityThread$ActivityClientRecord;IZLandroid/app/servertransaction/ClientTransaction;)V
HSPLandroid/app/servertransaction/TransactionExecutor;->execute(Landroid/app/servertransaction/ClientTransaction;)V
HSPLandroid/app/servertransaction/TransactionExecutor;->executeCallbacks(Landroid/app/servertransaction/ClientTransaction;)V
HSPLandroid/app/servertransaction/TransactionExecutor;->executeLifecycleState(Landroid/app/servertransaction/ClientTransaction;)V
+HSPLandroid/app/servertransaction/TransactionExecutor;->performLifecycleSequence(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/util/IntArray;Landroid/app/servertransaction/ClientTransaction;)V
HSPLandroid/app/servertransaction/TransactionExecutorHelper;-><init>()V
+HPLandroid/app/servertransaction/TransactionExecutorHelper;->getClosestOfStates(Landroid/app/ActivityThread$ActivityClientRecord;[I)I
HSPLandroid/app/servertransaction/TransactionExecutorHelper;->getClosestPreExecutionState(Landroid/app/ActivityThread$ActivityClientRecord;I)I
+HSPLandroid/app/servertransaction/TransactionExecutorHelper;->getLifecyclePath(IIZ)Landroid/util/IntArray;
HSPLandroid/app/servertransaction/TransactionExecutorHelper;->lastCallbackRequestingState(Landroid/app/servertransaction/ClientTransaction;)I
+HPLandroid/app/servertransaction/TransactionExecutorHelper;->pathInvolvesDestruction(Landroid/util/IntArray;)Z
+HSPLandroid/app/servertransaction/WindowVisibilityItem$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/servertransaction/WindowVisibilityItem;
+HSPLandroid/app/servertransaction/WindowVisibilityItem$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/servertransaction/WindowVisibilityItem;-><init>()V
+HSPLandroid/app/servertransaction/WindowVisibilityItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
+PLandroid/app/servertransaction/WindowVisibilityItem;->obtain(Z)Landroid/app/servertransaction/WindowVisibilityItem;
+PLandroid/app/servertransaction/WindowVisibilityItem;->recycle()V
+PLandroid/app/servertransaction/WindowVisibilityItem;->writeToParcel(Landroid/os/Parcel;I)V
+HSLandroid/app/slice/-$$Lambda$SliceProvider$bIgM5f4PsMvz_YYWEeFTjvTqevw;-><init>(Landroid/app/slice/SliceProvider;)V
+HSLandroid/app/slice/ISliceManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->checkSlicePermission(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;II[Ljava/lang/String;)I
+HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->getPinnedSlices(Ljava/lang/String;)[Landroid/net/Uri;
+HPLandroid/app/slice/ISliceManager$Stub$Proxy;->getPinnedSpecs(Landroid/net/Uri;Ljava/lang/String;)[Landroid/app/slice/SliceSpec;
+HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->grantSlicePermission(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
+HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->pinSlice(Ljava/lang/String;Landroid/net/Uri;[Landroid/app/slice/SliceSpec;Landroid/os/IBinder;)V
+HSPLandroid/app/slice/ISliceManager$Stub$Proxy;->unpinSlice(Ljava/lang/String;Landroid/net/Uri;Landroid/os/IBinder;)V
+HSPLandroid/app/slice/ISliceManager$Stub;-><init>()V
HSPLandroid/app/slice/ISliceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/slice/ISliceManager;
+PLandroid/app/slice/ISliceManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/app/slice/ISliceManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/slice/Slice$Builder;-><init>(Landroid/net/Uri;Landroid/app/slice/SliceSpec;)V
+HSPLandroid/app/slice/Slice$Builder;->addAction(Landroid/app/PendingIntent;Landroid/app/slice/Slice;Ljava/lang/String;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->addHints(Ljava/util/List;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->addIcon(Landroid/graphics/drawable/Icon;Ljava/lang/String;Ljava/util/List;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->addInt(ILjava/lang/String;Ljava/util/List;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->addLong(JLjava/lang/String;Ljava/util/List;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->addSubSlice(Landroid/app/slice/Slice;Ljava/lang/String;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->addText(Ljava/lang/CharSequence;Ljava/lang/String;Ljava/util/List;)Landroid/app/slice/Slice$Builder;
+HSPLandroid/app/slice/Slice$Builder;->build()Landroid/app/slice/Slice;
+HSPLandroid/app/slice/Slice;->getHints()Ljava/util/List;
+HSPLandroid/app/slice/Slice;->getItems()Ljava/util/List;
+HSPLandroid/app/slice/Slice;->getSpec()Landroid/app/slice/SliceSpec;
+HSPLandroid/app/slice/Slice;->getUri()Landroid/net/Uri;
+HSPLandroid/app/slice/SliceItem;->getAction()Landroid/app/PendingIntent;
+HSPLandroid/app/slice/SliceItem;->getFormat()Ljava/lang/String;
+HSPLandroid/app/slice/SliceItem;->getHints()Ljava/util/List;
+HSPLandroid/app/slice/SliceItem;->getIcon()Landroid/graphics/drawable/Icon;
+HSPLandroid/app/slice/SliceItem;->getInt()I
+HSPLandroid/app/slice/SliceItem;->getLong()J
+HSPLandroid/app/slice/SliceItem;->getSlice()Landroid/app/slice/Slice;
+HSPLandroid/app/slice/SliceItem;->getSubType()Ljava/lang/String;
+HSPLandroid/app/slice/SliceItem;->getText()Ljava/lang/CharSequence;
HSPLandroid/app/slice/SliceManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLandroid/app/slice/SliceManager;->bindSlice(Landroid/net/Uri;Ljava/util/Set;)Landroid/app/slice/Slice;
+HSPLandroid/app/slice/SliceManager;->checkSlicePermission(Landroid/net/Uri;II)I
+HSPLandroid/app/slice/SliceManager;->enforceSlicePermission(Landroid/net/Uri;Ljava/lang/String;II[Ljava/lang/String;)V
+HSPLandroid/app/slice/SliceManager;->getPinnedSlices()Ljava/util/List;
+HPLandroid/app/slice/SliceManager;->getPinnedSpecs(Landroid/net/Uri;)Ljava/util/Set;
+HSPLandroid/app/slice/SliceManager;->grantSlicePermission(Ljava/lang/String;Landroid/net/Uri;)V
+HSPLandroid/app/slice/SliceManager;->pinSlice(Landroid/net/Uri;Ljava/util/Set;)V
+HSPLandroid/app/slice/SliceManager;->unpinSlice(Landroid/net/Uri;)V
HSPLandroid/app/slice/SliceProvider;-><init>([Ljava/lang/String;)V
HSPLandroid/app/slice/SliceProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
-HSPLandroid/app/slice/SliceSpec$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/slice/SliceSpec;
-HSPLandroid/app/slice/SliceSpec$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/slice/SliceProvider;->call(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
+HSPLandroid/app/slice/SliceProvider;->handleBindSlice(Landroid/net/Uri;Ljava/util/List;Ljava/lang/String;II)Landroid/app/slice/Slice;
+HSPLandroid/app/slice/SliceProvider;->handlePinSlice(Landroid/net/Uri;)V
+HSPLandroid/app/slice/SliceProvider;->handleUnpinSlice(Landroid/net/Uri;)V
+HSPLandroid/app/slice/SliceProvider;->onBindSliceStrict(Landroid/net/Uri;Ljava/util/List;)Landroid/app/slice/Slice;
+PLandroid/app/slice/SliceSpec$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/slice/SliceSpec;
+PLandroid/app/slice/SliceSpec$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/slice/SliceSpec$1;->newArray(I)[Landroid/app/slice/SliceSpec;
+PLandroid/app/slice/SliceSpec$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/app/slice/SliceSpec;-><init>(Landroid/os/Parcel;)V
HSPLandroid/app/slice/SliceSpec;-><init>(Ljava/lang/String;I)V
HSPLandroid/app/slice/SliceSpec;->getRevision()I
HSPLandroid/app/slice/SliceSpec;->getType()Ljava/lang/String;
-HSPLandroid/app/slice/SliceSpec;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/slice/SliceSpec;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/app/timedetector/ITimeDetectorService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/app/timedetector/ITimeDetectorService$Stub;-><init>()V
+HSPLandroid/app/timedetector/ITimeDetectorService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/timedetector/ITimeDetectorService;
+PLandroid/app/timedetector/ITimeDetectorService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/timedetector/TimeDetector;-><init>()V
+HSPLandroid/app/timezonedetector/ITimeZoneDetectorService$Stub;-><init>()V
+HSPLandroid/app/timezonedetector/ITimeZoneDetectorService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/timezonedetector/ITimeZoneDetectorService;
+PLandroid/app/timezonedetector/ITimeZoneDetectorService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$1;-><init>()V
+PLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;
+PLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;-><init>(I)V
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->access$100(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;)I
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->access$200(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;)Ljava/lang/String;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->access$300(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;)I
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->access$400(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;)I
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->access$500(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;)Ljava/util/List;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->build()Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->setMatchType(I)Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->setQuality(I)Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->setZoneId(Ljava/lang/String;)Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;->validate()V
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;-><clinit>()V
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;-><init>(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;)V
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;-><init>(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$Builder;Landroid/app/timezonedetector/PhoneTimeZoneSuggestion$1;)V
+PLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;->access$000(Landroid/os/Parcel;)Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;
+PLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;->addDebugInfo(Ljava/util/List;)V
+PLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;->createFromParcel(Landroid/os/Parcel;)Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;
+PLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;->getMatchType()I
+PLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;->getPhoneId()I
+PLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;->getQuality()I
+PLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;->getZoneId()Ljava/lang/String;
+HSPLandroid/app/timezonedetector/PhoneTimeZoneSuggestion;->toString()Ljava/lang/String;
+HSPLandroid/app/timezonedetector/TimeZoneDetector;-><init>()V
+HSPLandroid/app/timezonedetector/TimeZoneDetector;->suggestPhoneTimeZone(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)V
+HSPLandroid/app/trust/IStrongAuthTracker$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/trust/IStrongAuthTracker$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/app/trust/IStrongAuthTracker$Stub$Proxy;->onStrongAuthRequiredChanged(II)V
+HSPLandroid/app/trust/IStrongAuthTracker$Stub;-><init>()V
+PLandroid/app/trust/IStrongAuthTracker$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/app/trust/IStrongAuthTracker$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/trust/IStrongAuthTracker;
+HPLandroid/app/trust/IStrongAuthTracker$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/trust/ITrustListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/trust/ITrustListener$Stub$Proxy;->onTrustChanged(ZII)V
+PLandroid/app/trust/ITrustListener$Stub$Proxy;->onTrustManagedChanged(ZI)V
+HSPLandroid/app/trust/ITrustListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/trust/ITrustListener;
+HPLandroid/app/trust/ITrustListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/app/trust/ITrustManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/app/trust/ITrustManager$Stub$Proxy;->clearAllBiometricRecognized(Landroid/hardware/biometrics/BiometricSourceType;)V
HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->isDeviceLocked(I)Z
+HSPLandroid/app/trust/ITrustManager$Stub$Proxy;->isDeviceSecure(I)Z
+HPLandroid/app/trust/ITrustManager$Stub$Proxy;->isTrustUsuallyManaged(I)Z
+HPLandroid/app/trust/ITrustManager$Stub$Proxy;->reportKeyguardShowingChanged()V
+HPLandroid/app/trust/ITrustManager$Stub$Proxy;->reportUnlockAttempt(ZI)V
+HPLandroid/app/trust/ITrustManager$Stub$Proxy;->unlockedByBiometricForUser(ILandroid/hardware/biometrics/BiometricSourceType;)V
+HSPLandroid/app/trust/ITrustManager$Stub;-><init>()V
HSPLandroid/app/trust/ITrustManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/trust/ITrustManager;
+PLandroid/app/trust/ITrustManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/app/trust/ITrustManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/app/trust/TrustManager$1;->onTrustChanged(ZII)V
+HPLandroid/app/trust/TrustManager$1;->onTrustManagedChanged(ZI)V
+HSPLandroid/app/trust/TrustManager$2;-><init>(Landroid/app/trust/TrustManager;Landroid/os/Looper;)V
+HPLandroid/app/trust/TrustManager$2;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/app/trust/TrustManager;-><init>(Landroid/os/IBinder;)V
+HPLandroid/app/trust/TrustManager;->access$000(Landroid/app/trust/TrustManager;)Landroid/os/Handler;
+HPLandroid/app/trust/TrustManager;->clearAllBiometricRecognized(Landroid/hardware/biometrics/BiometricSourceType;)V
+HPLandroid/app/trust/TrustManager;->isTrustUsuallyManaged(I)Z
+HPLandroid/app/trust/TrustManager;->reportKeyguardShowingChanged()V
+HPLandroid/app/trust/TrustManager;->reportUnlockAttempt(ZI)V
+HPLandroid/app/trust/TrustManager;->unlockedByBiometricForUser(ILandroid/hardware/biometrics/BiometricSourceType;)V
+HSPLandroid/app/usage/AppStandbyInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/AppStandbyInfo;
+HSPLandroid/app/usage/AppStandbyInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/app/usage/AppStandbyInfo;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/usage/AppStandbyInfo;-><init>(Landroid/os/Parcel;Landroid/app/usage/AppStandbyInfo$1;)V
+HSPLandroid/app/usage/AppStandbyInfo;-><init>(Ljava/lang/String;I)V
+HSPLandroid/app/usage/AppStandbyInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/usage/CacheQuotaHint$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/CacheQuotaHint;
+PLandroid/app/usage/CacheQuotaHint$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/app/usage/CacheQuotaHint$Builder;-><init>()V
+HSPLandroid/app/usage/CacheQuotaHint$Builder;->access$000(Landroid/app/usage/CacheQuotaHint$Builder;)Ljava/lang/String;
+HSPLandroid/app/usage/CacheQuotaHint$Builder;->access$100(Landroid/app/usage/CacheQuotaHint$Builder;)I
+HSPLandroid/app/usage/CacheQuotaHint$Builder;->access$200(Landroid/app/usage/CacheQuotaHint$Builder;)Landroid/app/usage/UsageStats;
+HSPLandroid/app/usage/CacheQuotaHint$Builder;->access$300(Landroid/app/usage/CacheQuotaHint$Builder;)J
+HSPLandroid/app/usage/CacheQuotaHint$Builder;->build()Landroid/app/usage/CacheQuotaHint;
+HSPLandroid/app/usage/CacheQuotaHint$Builder;->setQuota(J)Landroid/app/usage/CacheQuotaHint$Builder;
+HSPLandroid/app/usage/CacheQuotaHint$Builder;->setUid(I)Landroid/app/usage/CacheQuotaHint$Builder;
+PLandroid/app/usage/CacheQuotaHint$Builder;->setUsageStats(Landroid/app/usage/UsageStats;)Landroid/app/usage/CacheQuotaHint$Builder;
+HSPLandroid/app/usage/CacheQuotaHint$Builder;->setVolumeUuid(Ljava/lang/String;)Landroid/app/usage/CacheQuotaHint$Builder;
+HSPLandroid/app/usage/CacheQuotaHint;-><init>(Landroid/app/usage/CacheQuotaHint$Builder;)V
+HSPLandroid/app/usage/CacheQuotaHint;->getQuota()J
+HSPLandroid/app/usage/CacheQuotaHint;->getUid()I
+HSPLandroid/app/usage/CacheQuotaHint;->getVolumeUuid()Ljava/lang/String;
+PLandroid/app/usage/CacheQuotaHint;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/usage/ConfigurationStats;-><init>()V
+PLandroid/app/usage/EventList;-><init>()V
+PLandroid/app/usage/EventList;->clear()V
+HPLandroid/app/usage/EventList;->firstIndexOnOrAfter(J)I
+HPLandroid/app/usage/EventList;->get(I)Landroid/app/usage/UsageEvents$Event;
+HPLandroid/app/usage/EventList;->insert(Landroid/app/usage/UsageEvents$Event;)V
+PLandroid/app/usage/EventList;->remove(I)Landroid/app/usage/UsageEvents$Event;
+HPLandroid/app/usage/EventList;->size()I
+PLandroid/app/usage/ExternalStorageStats$1;-><init>()V
+PLandroid/app/usage/ExternalStorageStats;-><clinit>()V
+PLandroid/app/usage/ExternalStorageStats;-><init>()V
+PLandroid/app/usage/ExternalStorageStats;->getAudioBytes()J
+PLandroid/app/usage/ExternalStorageStats;->getImageBytes()J
+PLandroid/app/usage/ExternalStorageStats;->getTotalBytes()J
+PLandroid/app/usage/ExternalStorageStats;->getVideoBytes()J
+PLandroid/app/usage/ICacheQuotaService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/app/usage/ICacheQuotaService$Stub$Proxy;->computeCacheQuotaHints(Landroid/os/RemoteCallback;Ljava/util/List;)V
+PLandroid/app/usage/ICacheQuotaService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/ICacheQuotaService;
+HSPLandroid/app/usage/IStorageStatsManager$Stub$Proxy;->getFreeBytes(Ljava/lang/String;Ljava/lang/String;)J
+HSPLandroid/app/usage/IStorageStatsManager$Stub$Proxy;->getTotalBytes(Ljava/lang/String;Ljava/lang/String;)J
+HPLandroid/app/usage/IStorageStatsManager$Stub$Proxy;->queryStatsForPackage(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
+HSPLandroid/app/usage/IStorageStatsManager$Stub;-><init>()V
+PLandroid/app/usage/IStorageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IStorageStatsManager;
+PLandroid/app/usage/IStorageStatsManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/app/usage/IStorageStatsManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->getAppStandbyBucket(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->getAppStandbyBuckets(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->getUsageSource()I
+HPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->isAppInactive(Ljava/lang/String;I)Z
HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryEvents(JJLjava/lang/String;)Landroid/app/usage/UsageEvents;
-HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryUsageStats(IJJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+PLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->queryUsageStats(IJJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/app/usage/IUsageStatsManager$Stub$Proxy;->setAppStandbyBuckets(Landroid/content/pm/ParceledListSlice;I)V
+HSPLandroid/app/usage/IUsageStatsManager$Stub;-><init>()V
HSPLandroid/app/usage/IUsageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IUsageStatsManager;
+PLandroid/app/usage/IUsageStatsManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/app/usage/IUsageStatsManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/app/usage/NetworkStats$Bucket;-><init>()V
+PLandroid/app/usage/NetworkStats$Bucket;->access$000(I)I
+PLandroid/app/usage/NetworkStats$Bucket;->access$102(Landroid/app/usage/NetworkStats$Bucket;I)I
+PLandroid/app/usage/NetworkStats$Bucket;->access$1102(Landroid/app/usage/NetworkStats$Bucket;I)I
+PLandroid/app/usage/NetworkStats$Bucket;->access$1302(Landroid/app/usage/NetworkStats$Bucket;J)J
+PLandroid/app/usage/NetworkStats$Bucket;->access$1402(Landroid/app/usage/NetworkStats$Bucket;J)J
+PLandroid/app/usage/NetworkStats$Bucket;->access$1502(Landroid/app/usage/NetworkStats$Bucket;J)J
+PLandroid/app/usage/NetworkStats$Bucket;->access$1602(Landroid/app/usage/NetworkStats$Bucket;J)J
+PLandroid/app/usage/NetworkStats$Bucket;->access$1702(Landroid/app/usage/NetworkStats$Bucket;J)J
+PLandroid/app/usage/NetworkStats$Bucket;->access$1802(Landroid/app/usage/NetworkStats$Bucket;J)J
+PLandroid/app/usage/NetworkStats$Bucket;->access$200(I)I
+PLandroid/app/usage/NetworkStats$Bucket;->access$302(Landroid/app/usage/NetworkStats$Bucket;I)I
+PLandroid/app/usage/NetworkStats$Bucket;->access$400(I)I
+PLandroid/app/usage/NetworkStats$Bucket;->access$502(Landroid/app/usage/NetworkStats$Bucket;I)I
+PLandroid/app/usage/NetworkStats$Bucket;->access$702(Landroid/app/usage/NetworkStats$Bucket;I)I
+PLandroid/app/usage/NetworkStats$Bucket;->access$902(Landroid/app/usage/NetworkStats$Bucket;I)I
+PLandroid/app/usage/NetworkStats$Bucket;->convertSet(I)I
+PLandroid/app/usage/NetworkStats$Bucket;->convertTag(I)I
+PLandroid/app/usage/NetworkStats$Bucket;->convertUid(I)I
+PLandroid/app/usage/NetworkStats$Bucket;->getEndTimeStamp()J
+PLandroid/app/usage/NetworkStats$Bucket;->getRxBytes()J
+PLandroid/app/usage/NetworkStats$Bucket;->getRxPackets()J
+PLandroid/app/usage/NetworkStats$Bucket;->getStartTimeStamp()J
+PLandroid/app/usage/NetworkStats$Bucket;->getTxBytes()J
+PLandroid/app/usage/NetworkStats$Bucket;->getTxPackets()J
+HPLandroid/app/usage/NetworkStats;-><init>(Landroid/content/Context;Landroid/net/NetworkTemplate;IJJLandroid/net/INetworkStatsService;)V
+HPLandroid/app/usage/NetworkStats;->close()V
+HPLandroid/app/usage/NetworkStats;->finalize()V
+HPLandroid/app/usage/NetworkStats;->getNextBucket(Landroid/app/usage/NetworkStats$Bucket;)Z
+HPLandroid/app/usage/NetworkStats;->getNextHistoryBucket(Landroid/app/usage/NetworkStats$Bucket;)Z
+PLandroid/app/usage/NetworkStats;->getUid()I
+HPLandroid/app/usage/NetworkStats;->hasNextUid()Z
+HPLandroid/app/usage/NetworkStats;->isUidEnumeration()Z
+PLandroid/app/usage/NetworkStats;->setSingleUidTagState(III)V
+HPLandroid/app/usage/NetworkStats;->startHistoryEnumeration(III)V
HSPLandroid/app/usage/NetworkStatsManager;-><init>(Landroid/content/Context;)V
HSPLandroid/app/usage/NetworkStatsManager;-><init>(Landroid/content/Context;Landroid/net/INetworkStatsService;)V
+HPLandroid/app/usage/NetworkStatsManager;->createTemplate(ILjava/lang/String;)Landroid/net/NetworkTemplate;
+HPLandroid/app/usage/NetworkStatsManager;->queryDetailsForUidTag(ILjava/lang/String;JJII)Landroid/app/usage/NetworkStats;
+HPLandroid/app/usage/NetworkStatsManager;->queryDetailsForUidTagState(ILjava/lang/String;JJIII)Landroid/app/usage/NetworkStats;
+HPLandroid/app/usage/NetworkStatsManager;->queryDetailsForUidTagState(Landroid/net/NetworkTemplate;JJIII)Landroid/app/usage/NetworkStats;
+HPLandroid/app/usage/NetworkStatsManager;->querySummary(ILjava/lang/String;JJ)Landroid/app/usage/NetworkStats;
+HPLandroid/app/usage/NetworkStatsManager;->querySummary(Landroid/net/NetworkTemplate;JJ)Landroid/app/usage/NetworkStats;
HSPLandroid/app/usage/NetworkStatsManager;->setPollOnOpen(Z)V
+HPLandroid/app/usage/StorageStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/StorageStats;
+HPLandroid/app/usage/StorageStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/usage/StorageStats;->getAppBytes()J
+HPLandroid/app/usage/StorageStats;->getCacheBytes()J
+HPLandroid/app/usage/StorageStats;->getDataBytes()J
+PLandroid/app/usage/StorageStats;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/app/usage/StorageStatsManager;-><init>(Landroid/content/Context;Landroid/app/usage/IStorageStatsManager;)V
+PLandroid/app/usage/StorageStatsManager;->getCacheBytes(Ljava/lang/String;)J
+PLandroid/app/usage/StorageStatsManager;->getCacheBytes(Ljava/util/UUID;)J
+PLandroid/app/usage/StorageStatsManager;->getCacheQuotaBytes(Ljava/lang/String;I)J
+HSPLandroid/app/usage/StorageStatsManager;->getFreeBytes(Ljava/util/UUID;)J
+HSPLandroid/app/usage/StorageStatsManager;->getTotalBytes(Ljava/util/UUID;)J
+PLandroid/app/usage/StorageStatsManager;->isQuotaSupported(Ljava/lang/String;)Z
+PLandroid/app/usage/StorageStatsManager;->isQuotaSupported(Ljava/util/UUID;)Z
+PLandroid/app/usage/StorageStatsManager;->queryExternalStatsForUser(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/ExternalStorageStats;
+PLandroid/app/usage/StorageStatsManager;->queryExternalStatsForUser(Ljava/util/UUID;Landroid/os/UserHandle;)Landroid/app/usage/ExternalStorageStats;
+PLandroid/app/usage/StorageStatsManager;->queryStatsForPackage(Ljava/util/UUID;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/StorageStats;
+PLandroid/app/usage/StorageStatsManager;->queryStatsForUid(Ljava/lang/String;I)Landroid/app/usage/StorageStats;
+PLandroid/app/usage/StorageStatsManager;->queryStatsForUid(Ljava/util/UUID;I)Landroid/app/usage/StorageStats;
+PLandroid/app/usage/TimeSparseArray;-><init>()V
+PLandroid/app/usage/TimeSparseArray;->closestIndexOnOrAfter(J)I
+PLandroid/app/usage/TimeSparseArray;->closestIndexOnOrBefore(J)I
+PLandroid/app/usage/TimeSparseArray;->put(JLjava/lang/Object;)V
HSPLandroid/app/usage/UsageEvents$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/UsageEvents;
HSPLandroid/app/usage/UsageEvents$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/app/usage/UsageEvents$Event;-><init>()V
+HSPLandroid/app/usage/UsageEvents$Event;-><init>(IJ)V
+PLandroid/app/usage/UsageEvents$Event;-><init>(Landroid/app/usage/UsageEvents$Event;)V
+PLandroid/app/usage/UsageEvents$Event;->getClassName()Ljava/lang/String;
+PLandroid/app/usage/UsageEvents$Event;->getConfiguration()Landroid/content/res/Configuration;
HSPLandroid/app/usage/UsageEvents$Event;->getEventType()I
+HSPLandroid/app/usage/UsageEvents$Event;->getInstanceId()I
+PLandroid/app/usage/UsageEvents$Event;->getObfuscatedIfInstantApp()Landroid/app/usage/UsageEvents$Event;
HSPLandroid/app/usage/UsageEvents$Event;->getPackageName()Ljava/lang/String;
+HPLandroid/app/usage/UsageEvents$Event;->getTaskRootPackageName()Ljava/lang/String;
HSPLandroid/app/usage/UsageEvents$Event;->getTimeStamp()J
+PLandroid/app/usage/UsageEvents$Event;->isInstantApp()Z
HSPLandroid/app/usage/UsageEvents;-><init>(Landroid/os/Parcel;)V
+PLandroid/app/usage/UsageEvents;-><init>(Ljava/util/List;[Ljava/lang/String;Z)V
+HPLandroid/app/usage/UsageEvents;->findStringIndex(Ljava/lang/String;)I
HSPLandroid/app/usage/UsageEvents;->getNextEvent(Landroid/app/usage/UsageEvents$Event;)Z
HSPLandroid/app/usage/UsageEvents;->hasNextEvent()Z
HSPLandroid/app/usage/UsageEvents;->readEventFromParcel(Landroid/os/Parcel;Landroid/app/usage/UsageEvents$Event;)V
-HSPLandroid/app/usage/UsageStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/UsageStats;
-HSPLandroid/app/usage/UsageStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/app/usage/UsageStats$1;->readBundleToEventMap(Landroid/os/Bundle;Landroid/util/ArrayMap;)V
-HSPLandroid/app/usage/UsageStats;-><init>()V
-HSPLandroid/app/usage/UsageStats;->getTotalTimeInForeground()J
+HPLandroid/app/usage/UsageEvents;->writeEventToParcel(Landroid/app/usage/UsageEvents$Event;Landroid/os/Parcel;I)V
+HPLandroid/app/usage/UsageEvents;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/app/usage/UsageStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/app/usage/UsageStats;
+HPLandroid/app/usage/UsageStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/app/usage/UsageStats$1;->readBundleToEventMap(Landroid/os/Bundle;Landroid/util/ArrayMap;)V
+PLandroid/app/usage/UsageStats$1;->readSparseIntArray(Landroid/os/Parcel;Landroid/util/SparseIntArray;)V
+HPLandroid/app/usage/UsageStats;-><init>()V
+HPLandroid/app/usage/UsageStats;-><init>(Landroid/app/usage/UsageStats;)V
+HPLandroid/app/usage/UsageStats;->add(Landroid/app/usage/UsageStats;)V
+PLandroid/app/usage/UsageStats;->anyForegroundServiceStarted()Z
+HPLandroid/app/usage/UsageStats;->eventMapToBundle(Landroid/util/ArrayMap;)Landroid/os/Bundle;
+HPLandroid/app/usage/UsageStats;->getFirstTimeStamp()J
+HPLandroid/app/usage/UsageStats;->getLastTimeStamp()J
+HPLandroid/app/usage/UsageStats;->getLastTimeUsed()J
+HPLandroid/app/usage/UsageStats;->getPackageName()Ljava/lang/String;
+PLandroid/app/usage/UsageStats;->getTotalTimeInForeground()J
+PLandroid/app/usage/UsageStats;->hasVisibleActivity()Z
+PLandroid/app/usage/UsageStats;->incrementServiceTimeUsed(J)V
+PLandroid/app/usage/UsageStats;->incrementTimeUsed(J)V
+PLandroid/app/usage/UsageStats;->incrementTimeVisible(J)V
+HPLandroid/app/usage/UsageStats;->mergeEventMap(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
+HPLandroid/app/usage/UsageStats;->mergeEventMap(Landroid/util/SparseIntArray;Landroid/util/SparseIntArray;)V
+HPLandroid/app/usage/UsageStats;->update(Ljava/lang/String;JII)V
+HPLandroid/app/usage/UsageStats;->updateActivity(Ljava/lang/String;JII)V
+PLandroid/app/usage/UsageStats;->updateForegroundService(Ljava/lang/String;JI)V
+PLandroid/app/usage/UsageStats;->writeSparseIntArray(Landroid/os/Parcel;Landroid/util/SparseIntArray;)V
+HPLandroid/app/usage/UsageStats;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/app/usage/UsageStatsManager;-><init>(Landroid/content/Context;Landroid/app/usage/IUsageStatsManager;)V
+HSPLandroid/app/usage/UsageStatsManager;->getAppStandbyBucket()I
+HPLandroid/app/usage/UsageStatsManager;->getAppStandbyBucket(Ljava/lang/String;)I
+HSPLandroid/app/usage/UsageStatsManager;->getAppStandbyBuckets()Ljava/util/Map;
+HSPLandroid/app/usage/UsageStatsManager;->getUsageSource()I
+HPLandroid/app/usage/UsageStatsManager;->isAppInactive(Ljava/lang/String;)Z
+HPLandroid/app/usage/UsageStatsManager;->queryAndAggregateUsageStats(JJ)Ljava/util/Map;
HSPLandroid/app/usage/UsageStatsManager;->queryEvents(JJ)Landroid/app/usage/UsageEvents;
-HSPLandroid/app/usage/UsageStatsManager;->queryUsageStats(IJJ)Ljava/util/List;
+PLandroid/app/usage/UsageStatsManager;->queryUsageStats(IJJ)Ljava/util/List;
+HPLandroid/app/usage/UsageStatsManager;->reasonToString(I)Ljava/lang/String;
+HSPLandroid/app/usage/UsageStatsManager;->setAppStandbyBuckets(Ljava/util/Map;)V
+PLandroid/app/usage/UsageStatsManager;->usageSourceToString(I)Ljava/lang/String;
+HPLandroid/app/usage/UsageStatsManager;->whitelistAppTemporarily(Ljava/lang/String;JLandroid/os/UserHandle;)V
HSPLandroid/appwidget/AppWidgetManager;-><init>(Landroid/content/Context;Lcom/android/internal/appwidget/IAppWidgetService;)V
HSPLandroid/appwidget/AppWidgetManager;->getAppWidgetIds(Landroid/content/ComponentName;)[I
+HSPLandroid/appwidget/AppWidgetManager;->getInstalledProvidersForProfile(ILandroid/os/UserHandle;Ljava/lang/String;)Ljava/util/List;
+HSPLandroid/appwidget/AppWidgetManager;->getInstalledProvidersForProfile(Landroid/os/UserHandle;)Ljava/util/List;
HSPLandroid/appwidget/AppWidgetManager;->getInstance(Landroid/content/Context;)Landroid/appwidget/AppWidgetManager;
-HSPLandroid/bluetooth/BluetoothA2dp$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothA2dp;
-HSPLandroid/bluetooth/BluetoothA2dp$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/appwidget/AppWidgetManager;->isBoundWidgetPackage(Ljava/lang/String;I)Z
+HSPLandroid/appwidget/AppWidgetManager;->updateAppWidget(Landroid/content/ComponentName;Landroid/widget/RemoteViews;)V
+HSPLandroid/appwidget/AppWidgetManagerInternal;-><init>()V
+HSPLandroid/appwidget/AppWidgetProvider;-><init>()V
+HSPLandroid/appwidget/AppWidgetProvider;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLandroid/appwidget/AppWidgetProviderInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/appwidget/AppWidgetProviderInfo;
+HSPLandroid/appwidget/AppWidgetProviderInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/appwidget/AppWidgetProviderInfo;-><init>()V
+HSPLandroid/appwidget/AppWidgetProviderInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/appwidget/AppWidgetProviderInfo;->getProfile()Landroid/os/UserHandle;
+HSPLandroid/appwidget/AppWidgetProviderInfo;->loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/String;
+HSPLandroid/appwidget/AppWidgetProviderInfo;->updateDimensions(Landroid/util/DisplayMetrics;)V
+HSPLandroid/appwidget/AppWidgetProviderInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/attention/AttentionManagerInternal$AttentionCallbackInternal;-><init>()V
+HSPLandroid/attention/AttentionManagerInternal;-><init>()V
+PLandroid/bluetooth/-$$Lambda$BluetoothAdapter$2$INSd_aND-SGWhhPZUtIqya_Uxw4;-><init>(Landroid/bluetooth/BluetoothAdapter$2;)V
+HSPLandroid/bluetooth/BluetoothA2dp$1;-><init>(Landroid/bluetooth/BluetoothA2dp;Landroid/bluetooth/BluetoothProfile;ILjava/lang/String;Ljava/lang/String;)V
+PLandroid/bluetooth/BluetoothA2dp$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothA2dp;
+PLandroid/bluetooth/BluetoothA2dp$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
HSPLandroid/bluetooth/BluetoothA2dp;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
-HSPLandroid/bluetooth/BluetoothA2dp;->getConnectedDevices()Ljava/util/List;
+HPLandroid/bluetooth/BluetoothA2dp;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
+PLandroid/bluetooth/BluetoothA2dp;->getCodecStatus(Landroid/bluetooth/BluetoothDevice;)Landroid/bluetooth/BluetoothCodecStatus;
+PLandroid/bluetooth/BluetoothA2dp;->getConnectedDevices()Ljava/util/List;
+PLandroid/bluetooth/BluetoothA2dp;->getService()Landroid/bluetooth/IBluetoothA2dp;
+PLandroid/bluetooth/BluetoothA2dp;->isEnabled()Z
+PLandroid/bluetooth/BluetoothA2dp;->setAvrcpAbsoluteVolume(I)V
+PLandroid/bluetooth/BluetoothActivityEnergyInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/BluetoothActivityEnergyInfo;
+PLandroid/bluetooth/BluetoothActivityEnergyInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/bluetooth/BluetoothActivityEnergyInfo;-><init>(Landroid/os/Parcel;)V
+PLandroid/bluetooth/BluetoothActivityEnergyInfo;->getBluetoothStackState()I
+PLandroid/bluetooth/BluetoothActivityEnergyInfo;->getControllerEnergyUsed()J
+PLandroid/bluetooth/BluetoothActivityEnergyInfo;->getControllerIdleTimeMillis()J
+PLandroid/bluetooth/BluetoothActivityEnergyInfo;->getControllerRxTimeMillis()J
+PLandroid/bluetooth/BluetoothActivityEnergyInfo;->getControllerTxTimeMillis()J
+PLandroid/bluetooth/BluetoothActivityEnergyInfo;->getTimeStamp()J
+PLandroid/bluetooth/BluetoothActivityEnergyInfo;->getUidTraffic()[Landroid/bluetooth/UidTraffic;
HSPLandroid/bluetooth/BluetoothAdapter$2;-><init>(Landroid/bluetooth/BluetoothAdapter;)V
+PLandroid/bluetooth/BluetoothAdapter$2;->onBluetoothServiceDown()V
+HSPLandroid/bluetooth/BluetoothAdapter$2;->onBluetoothServiceUp(Landroid/bluetooth/IBluetooth;)V
HSPLandroid/bluetooth/BluetoothAdapter;-><init>(Landroid/bluetooth/IBluetoothManager;)V
-HPLandroid/bluetooth/BluetoothAdapter;->checkBluetoothAddress(Ljava/lang/String;)Z
+PLandroid/bluetooth/BluetoothAdapter;->access$000()Ljava/util/Map;
+PLandroid/bluetooth/BluetoothAdapter;->access$100(Landroid/bluetooth/BluetoothAdapter;)Ljava/util/concurrent/locks/ReentrantReadWriteLock;
+PLandroid/bluetooth/BluetoothAdapter;->access$200(Landroid/bluetooth/BluetoothAdapter;)Landroid/bluetooth/IBluetooth;
+PLandroid/bluetooth/BluetoothAdapter;->access$202(Landroid/bluetooth/BluetoothAdapter;Landroid/bluetooth/IBluetooth;)Landroid/bluetooth/IBluetooth;
+PLandroid/bluetooth/BluetoothAdapter;->access$300(Landroid/bluetooth/BluetoothAdapter;)Ljava/util/ArrayList;
+PLandroid/bluetooth/BluetoothAdapter;->access$400(Landroid/bluetooth/BluetoothAdapter;)Ljava/util/Map;
+PLandroid/bluetooth/BluetoothAdapter;->access$500()Landroid/bluetooth/le/BluetoothLeAdvertiser;
+PLandroid/bluetooth/BluetoothAdapter;->access$600()Landroid/bluetooth/le/BluetoothLeScanner;
+HSPLandroid/bluetooth/BluetoothAdapter;->checkBluetoothAddress(Ljava/lang/String;)Z
+HPLandroid/bluetooth/BluetoothAdapter;->disable()Z
+HPLandroid/bluetooth/BluetoothAdapter;->disableBLE()Z
+HPLandroid/bluetooth/BluetoothAdapter;->enable()Z
+HPLandroid/bluetooth/BluetoothAdapter;->enableBLE()Z
+PLandroid/bluetooth/BluetoothAdapter;->getBluetoothLeScanner()Landroid/bluetooth/le/BluetoothLeScanner;
HSPLandroid/bluetooth/BluetoothAdapter;->getBluetoothManager()Landroid/bluetooth/IBluetoothManager;
HSPLandroid/bluetooth/BluetoothAdapter;->getBluetoothService(Landroid/bluetooth/IBluetoothManagerCallback;)Landroid/bluetooth/IBluetooth;
HSPLandroid/bluetooth/BluetoothAdapter;->getBondedDevices()Ljava/util/Set;
+HPLandroid/bluetooth/BluetoothAdapter;->getConnectionState()I
HSPLandroid/bluetooth/BluetoothAdapter;->getDefaultAdapter()Landroid/bluetooth/BluetoothAdapter;
+HSPLandroid/bluetooth/BluetoothAdapter;->getLeState()I
+HSPLandroid/bluetooth/BluetoothAdapter;->getName()Ljava/lang/String;
+HSPLandroid/bluetooth/BluetoothAdapter;->getProfileConnectionState(I)I
HSPLandroid/bluetooth/BluetoothAdapter;->getProfileProxy(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;I)Z
+HSPLandroid/bluetooth/BluetoothAdapter;->getRemoteDevice(Ljava/lang/String;)Landroid/bluetooth/BluetoothDevice;
HSPLandroid/bluetooth/BluetoothAdapter;->getState()I
+HSPLandroid/bluetooth/BluetoothAdapter;->getSupportedProfiles()Ljava/util/List;
+HPLandroid/bluetooth/BluetoothAdapter;->getUuids()[Landroid/os/ParcelUuid;
+HSPLandroid/bluetooth/BluetoothAdapter;->isBleScanAlwaysAvailable()Z
HSPLandroid/bluetooth/BluetoothAdapter;->isEnabled()Z
HSPLandroid/bluetooth/BluetoothAdapter;->isHearingAidProfileSupported()Z
+PLandroid/bluetooth/BluetoothAdapter;->isLeEnabled()Z
+HSPLandroid/bluetooth/BluetoothAdapter;->isOffloadedFilteringSupported()Z
HSPLandroid/bluetooth/BluetoothAdapter;->nameForState(I)Ljava/lang/String;
-HSPLandroid/bluetooth/BluetoothAdapter;->toDeviceSet([Landroid/bluetooth/BluetoothDevice;)Ljava/util/Set;
-HSPLandroid/bluetooth/BluetoothDevice$2;->newArray(I)[Landroid/bluetooth/BluetoothDevice;
-HSPLandroid/bluetooth/BluetoothDevice$2;->newArray(I)[Ljava/lang/Object;
-PLandroid/bluetooth/BluetoothDevice;-><init>(Ljava/lang/String;)V
-PLandroid/bluetooth/BluetoothDevice;->getService()Landroid/bluetooth/IBluetooth;
+PLandroid/bluetooth/BluetoothAdapter;->requestControllerActivityEnergyInfo(Landroid/os/ResultReceiver;)V
+HSPLandroid/bluetooth/BluetoothAdapter;->setContext(Landroid/content/Context;)V
+HPLandroid/bluetooth/BluetoothAdapter;->toDeviceSet([Landroid/bluetooth/BluetoothDevice;)Ljava/util/Set;
+HPLandroid/bluetooth/BluetoothClass$1;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/BluetoothClass;
+HPLandroid/bluetooth/BluetoothClass$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothClass;-><init>(I)V
+HSPLandroid/bluetooth/BluetoothClass;->toString()Ljava/lang/String;
+HSPLandroid/bluetooth/BluetoothClass;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/bluetooth/BluetoothCodecConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/BluetoothCodecConfig;
+PLandroid/bluetooth/BluetoothCodecConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/bluetooth/BluetoothCodecConfig$1;->newArray(I)[Landroid/bluetooth/BluetoothCodecConfig;
+PLandroid/bluetooth/BluetoothCodecConfig$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/bluetooth/BluetoothCodecConfig;-><init>(IIIIIJJJJ)V
+PLandroid/bluetooth/BluetoothCodecStatus$1;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/BluetoothCodecStatus;
+PLandroid/bluetooth/BluetoothCodecStatus$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/bluetooth/BluetoothCodecStatus;-><init>(Landroid/bluetooth/BluetoothCodecConfig;[Landroid/bluetooth/BluetoothCodecConfig;[Landroid/bluetooth/BluetoothCodecConfig;)V
+PLandroid/bluetooth/BluetoothDevice$1;->onBluetoothServiceDown()V
+PLandroid/bluetooth/BluetoothDevice$1;->onBluetoothServiceUp(Landroid/bluetooth/IBluetooth;)V
+PLandroid/bluetooth/BluetoothDevice$2;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/BluetoothDevice;
+PLandroid/bluetooth/BluetoothDevice$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/bluetooth/BluetoothDevice$2;->newArray(I)[Landroid/bluetooth/BluetoothDevice;
+HPLandroid/bluetooth/BluetoothDevice$2;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothDevice;-><init>(Ljava/lang/String;)V
+PLandroid/bluetooth/BluetoothDevice;->access$000()Landroid/bluetooth/IBluetooth;
+PLandroid/bluetooth/BluetoothDevice;->access$002(Landroid/bluetooth/IBluetooth;)Landroid/bluetooth/IBluetooth;
+HSPLandroid/bluetooth/BluetoothDevice;->equals(Ljava/lang/Object;)Z
+HSPLandroid/bluetooth/BluetoothDevice;->getAddress()Ljava/lang/String;
+HPLandroid/bluetooth/BluetoothDevice;->getAlias()Ljava/lang/String;
+PLandroid/bluetooth/BluetoothDevice;->getBluetoothClass()Landroid/bluetooth/BluetoothClass;
+HPLandroid/bluetooth/BluetoothDevice;->getBondState()I
+PLandroid/bluetooth/BluetoothDevice;->getName()Ljava/lang/String;
+HPLandroid/bluetooth/BluetoothDevice;->getPhonebookAccessPermission()I
+HSPLandroid/bluetooth/BluetoothDevice;->getService()Landroid/bluetooth/IBluetooth;
+HPLandroid/bluetooth/BluetoothDevice;->getUuids()[Landroid/os/ParcelUuid;
+HPLandroid/bluetooth/BluetoothDevice;->hashCode()I
+HSPLandroid/bluetooth/BluetoothDevice;->toString()Ljava/lang/String;
+HSPLandroid/bluetooth/BluetoothDevice;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/bluetooth/BluetoothGattCallback;-><init>()V
HSPLandroid/bluetooth/BluetoothHeadset$1;-><init>(Landroid/bluetooth/BluetoothHeadset;)V
HSPLandroid/bluetooth/BluetoothHeadset$1;->onBluetoothStateChange(Z)V
HSPLandroid/bluetooth/BluetoothHeadset$2;-><init>(Landroid/bluetooth/BluetoothHeadset;)V
HSPLandroid/bluetooth/BluetoothHeadset$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLandroid/bluetooth/BluetoothHeadset$2;->onServiceDisconnected(Landroid/content/ComponentName;)V
HSPLandroid/bluetooth/BluetoothHeadset$3;-><init>(Landroid/bluetooth/BluetoothHeadset;Landroid/os/Looper;)V
HSPLandroid/bluetooth/BluetoothHeadset$3;->handleMessage(Landroid/os/Message;)V
HSPLandroid/bluetooth/BluetoothHeadset;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+PLandroid/bluetooth/BluetoothHeadset;->access$000(Landroid/bluetooth/BluetoothHeadset;)V
HSPLandroid/bluetooth/BluetoothHeadset;->access$100(Landroid/bluetooth/BluetoothHeadset;)Z
HSPLandroid/bluetooth/BluetoothHeadset;->access$202(Landroid/bluetooth/BluetoothHeadset;Landroid/bluetooth/IBluetoothHeadset;)Landroid/bluetooth/IBluetoothHeadset;
HSPLandroid/bluetooth/BluetoothHeadset;->access$300(Landroid/bluetooth/BluetoothHeadset;)Landroid/os/Handler;
HSPLandroid/bluetooth/BluetoothHeadset;->access$400(Landroid/bluetooth/BluetoothHeadset;)Landroid/bluetooth/BluetoothProfile$ServiceListener;
+PLandroid/bluetooth/BluetoothHeadset;->clccResponse(IIIIZLjava/lang/String;I)V
HSPLandroid/bluetooth/BluetoothHeadset;->doBind()Z
-HSPLandroid/bluetooth/BluetoothHearingAid$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHearingAid;
-HSPLandroid/bluetooth/BluetoothHearingAid$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
+PLandroid/bluetooth/BluetoothHeadset;->doUnbind()V
+PLandroid/bluetooth/BluetoothHeadset;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
+PLandroid/bluetooth/BluetoothHeadset;->getAudioState(Landroid/bluetooth/BluetoothDevice;)I
+HPLandroid/bluetooth/BluetoothHeadset;->getConnectedDevices()Ljava/util/List;
+PLandroid/bluetooth/BluetoothHeadset;->isDisabled()Z
+PLandroid/bluetooth/BluetoothHeadset;->isEnabled()Z
+PLandroid/bluetooth/BluetoothHeadset;->phoneStateChanged(IIILjava/lang/String;ILjava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothHearingAid$1;-><init>(Landroid/bluetooth/BluetoothHearingAid;Landroid/bluetooth/BluetoothProfile;ILjava/lang/String;Ljava/lang/String;)V
+PLandroid/bluetooth/BluetoothHearingAid$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHearingAid;
+PLandroid/bluetooth/BluetoothHearingAid$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
HSPLandroid/bluetooth/BluetoothHearingAid;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
-HSPLandroid/bluetooth/BluetoothHearingAid;->getConnectedDevices()Ljava/util/List;
-HSPLandroid/bluetooth/BluetoothProfileConnector$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-HSPLandroid/bluetooth/BluetoothProfileConnector;->access$200(Landroid/bluetooth/BluetoothProfileConnector;Ljava/lang/String;)V
-HSPLandroid/bluetooth/BluetoothProfileConnector;->access$302(Landroid/bluetooth/BluetoothProfileConnector;Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/bluetooth/BluetoothProfileConnector;->access$400(Landroid/bluetooth/BluetoothProfileConnector;)Landroid/bluetooth/BluetoothProfile$ServiceListener;
-HSPLandroid/bluetooth/BluetoothProfileConnector;->access$500(Landroid/bluetooth/BluetoothProfileConnector;)I
-HSPLandroid/bluetooth/BluetoothProfileConnector;->access$600(Landroid/bluetooth/BluetoothProfileConnector;)Landroid/bluetooth/BluetoothProfile;
+PLandroid/bluetooth/BluetoothHearingAid;->getActiveDevices()Ljava/util/List;
+PLandroid/bluetooth/BluetoothHearingAid;->getConnectedDevices()Ljava/util/List;
+HPLandroid/bluetooth/BluetoothHearingAid;->getHiSyncId(Landroid/bluetooth/BluetoothDevice;)J
+PLandroid/bluetooth/BluetoothHearingAid;->getService()Landroid/bluetooth/IBluetoothHearingAid;
+PLandroid/bluetooth/BluetoothHearingAid;->isEnabled()Z
+HPLandroid/bluetooth/BluetoothHidDevice$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHidDevice;
+HPLandroid/bluetooth/BluetoothHidDevice$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothHidDevice;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HPLandroid/bluetooth/BluetoothHidDevice;->getConnectedDevices()Ljava/util/List;
+HPLandroid/bluetooth/BluetoothHidDevice;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HPLandroid/bluetooth/BluetoothHidHost$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHidHost;
+HPLandroid/bluetooth/BluetoothHidHost$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothHidHost;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HPLandroid/bluetooth/BluetoothHidHost;->getConnectedDevices()Ljava/util/List;
+HSPLandroid/bluetooth/BluetoothManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/bluetooth/BluetoothManager;->getAdapter()Landroid/bluetooth/BluetoothAdapter;
+HPLandroid/bluetooth/BluetoothMap$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothMap;
+HPLandroid/bluetooth/BluetoothMap$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothMap;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HPLandroid/bluetooth/BluetoothMap;->getConnectedDevices()Ljava/util/List;
+HPLandroid/bluetooth/BluetoothMap;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HPLandroid/bluetooth/BluetoothPan$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothPan;
+HPLandroid/bluetooth/BluetoothPan$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothPan;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HPLandroid/bluetooth/BluetoothPbap$1;->onBluetoothStateChange(Z)V
+HPLandroid/bluetooth/BluetoothPbap$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+HPLandroid/bluetooth/BluetoothPbap$2;->onServiceDisconnected(Landroid/content/ComponentName;)V
+HSPLandroid/bluetooth/BluetoothPbap;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothPbap$ServiceListener;)V
+HPLandroid/bluetooth/BluetoothPbap;->access$000(Ljava/lang/String;)V
+HPLandroid/bluetooth/BluetoothPbap;->access$100(Landroid/bluetooth/BluetoothPbap;)V
+HPLandroid/bluetooth/BluetoothPbap;->access$300(Landroid/bluetooth/BluetoothPbap;)Landroid/bluetooth/BluetoothPbap$ServiceListener;
+HSPLandroid/bluetooth/BluetoothPbap;->doBind()Z
+HPLandroid/bluetooth/BluetoothPbap;->doUnbind()V
+HPLandroid/bluetooth/BluetoothPbap;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HPLandroid/bluetooth/BluetoothPbap;->isConnected(Landroid/bluetooth/BluetoothDevice;)Z
+HPLandroid/bluetooth/BluetoothPbap;->log(Ljava/lang/String;)V
+HSPLandroid/bluetooth/BluetoothProfileConnector$1;-><init>(Landroid/bluetooth/BluetoothProfileConnector;)V
+PLandroid/bluetooth/BluetoothProfileConnector$1;->onBluetoothStateChange(Z)V
+HSPLandroid/bluetooth/BluetoothProfileConnector$2;-><init>(Landroid/bluetooth/BluetoothProfileConnector;)V
+PLandroid/bluetooth/BluetoothProfileConnector$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLandroid/bluetooth/BluetoothProfileConnector$2;->onServiceDisconnected(Landroid/content/ComponentName;)V
+HSPLandroid/bluetooth/BluetoothProfileConnector;-><init>(Landroid/bluetooth/BluetoothProfile;ILjava/lang/String;Ljava/lang/String;)V
+PLandroid/bluetooth/BluetoothProfileConnector;->access$000(Landroid/bluetooth/BluetoothProfileConnector;)Z
+PLandroid/bluetooth/BluetoothProfileConnector;->access$100(Landroid/bluetooth/BluetoothProfileConnector;)V
+PLandroid/bluetooth/BluetoothProfileConnector;->access$200(Landroid/bluetooth/BluetoothProfileConnector;Ljava/lang/String;)V
+PLandroid/bluetooth/BluetoothProfileConnector;->access$302(Landroid/bluetooth/BluetoothProfileConnector;Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/bluetooth/BluetoothProfileConnector;->access$400(Landroid/bluetooth/BluetoothProfileConnector;)Landroid/bluetooth/BluetoothProfile$ServiceListener;
+PLandroid/bluetooth/BluetoothProfileConnector;->access$500(Landroid/bluetooth/BluetoothProfileConnector;)I
+PLandroid/bluetooth/BluetoothProfileConnector;->access$600(Landroid/bluetooth/BluetoothProfileConnector;)Landroid/bluetooth/BluetoothProfile;
HSPLandroid/bluetooth/BluetoothProfileConnector;->connect(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
HSPLandroid/bluetooth/BluetoothProfileConnector;->doBind()Z
-HSPLandroid/bluetooth/BluetoothProfileConnector;->getService()Ljava/lang/Object;
+PLandroid/bluetooth/BluetoothProfileConnector;->doUnbind()V
+PLandroid/bluetooth/BluetoothProfileConnector;->getService()Ljava/lang/Object;
HSPLandroid/bluetooth/BluetoothProfileConnector;->logDebug(Ljava/lang/String;)V
+HPLandroid/bluetooth/BluetoothSap$1;->getServiceInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothSap;
+HPLandroid/bluetooth/BluetoothSap$1;->getServiceInterface(Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/bluetooth/BluetoothSap;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
+HPLandroid/bluetooth/BluetoothSap;->getConnectedDevices()Ljava/util/List;
+HPLandroid/bluetooth/BluetoothUuid;->containsAnyUuid([Landroid/os/ParcelUuid;[Landroid/os/ParcelUuid;)Z
+HPLandroid/bluetooth/BluetoothUuid;->is16BitUuid(Landroid/os/ParcelUuid;)Z
+PLandroid/bluetooth/BluetoothUuid;->parseUuidFrom([B)Landroid/os/ParcelUuid;
+HPLandroid/bluetooth/BluetoothUuid;->uuidToBytes(Landroid/os/ParcelUuid;)[B
HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getBondedDevices()[Landroid/bluetooth/BluetoothDevice;
+PLandroid/bluetooth/IBluetooth$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/bluetooth/IBluetooth$Stub$Proxy;->disable()Z
+PLandroid/bluetooth/IBluetooth$Stub$Proxy;->enable(Z)Z
+HPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getAdapterConnectionState()I
+HPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getBondState(Landroid/bluetooth/BluetoothDevice;)I
+HPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getBondedDevices()[Landroid/bluetooth/BluetoothDevice;
+PLandroid/bluetooth/IBluetooth$Stub$Proxy;->getName()Ljava/lang/String;
+HPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getPhonebookAccessPermission(Landroid/bluetooth/BluetoothDevice;)I
+HPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteAlias(Landroid/bluetooth/BluetoothDevice;)Ljava/lang/String;
+PLandroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteClass(Landroid/bluetooth/BluetoothDevice;)I
+PLandroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteName(Landroid/bluetooth/BluetoothDevice;)Ljava/lang/String;
+HPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getRemoteUuids(Landroid/bluetooth/BluetoothDevice;)[Landroid/os/ParcelUuid;
HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getState()I
-HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->isEnabled()Z
+HSPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getSupportedProfiles()J
+HPLandroid/bluetooth/IBluetooth$Stub$Proxy;->getUuids()[Landroid/os/ParcelUuid;
+HPLandroid/bluetooth/IBluetooth$Stub$Proxy;->isOffloadedFilteringSupported()Z
+PLandroid/bluetooth/IBluetooth$Stub$Proxy;->onBrEdrDown()V
+PLandroid/bluetooth/IBluetooth$Stub$Proxy;->onLeServiceUp()V
+PLandroid/bluetooth/IBluetooth$Stub$Proxy;->registerCallback(Landroid/bluetooth/IBluetoothCallback;)V
+PLandroid/bluetooth/IBluetooth$Stub$Proxy;->requestActivityInfo(Landroid/os/ResultReceiver;)V
+PLandroid/bluetooth/IBluetooth$Stub$Proxy;->unregisterCallback(Landroid/bluetooth/IBluetoothCallback;)V
+HSPLandroid/bluetooth/IBluetooth$Stub;-><init>()V
HSPLandroid/bluetooth/IBluetooth$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetooth;
+HSPLandroid/bluetooth/IBluetooth$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/bluetooth/IBluetoothA2dp$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
+PLandroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getCodecStatus(Landroid/bluetooth/BluetoothDevice;)Landroid/bluetooth/BluetoothCodecStatus;
+PLandroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+PLandroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->setAvrcpAbsoluteVolume(I)V
+PLandroid/bluetooth/IBluetoothA2dp$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothA2dp;
+HSPLandroid/bluetooth/IBluetoothCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/bluetooth/IBluetoothCallback$Stub$Proxy;->onBluetoothStateChange(II)V
+HSPLandroid/bluetooth/IBluetoothCallback$Stub;-><init>()V
+PLandroid/bluetooth/IBluetoothCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/bluetooth/IBluetoothCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothCallback;
+PLandroid/bluetooth/IBluetoothCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/bluetooth/IBluetoothGatt$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/bluetooth/IBluetoothGatt$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/bluetooth/IBluetoothGatt$Stub$Proxy;->registerScanner(Landroid/bluetooth/le/IScannerCallback;Landroid/os/WorkSource;)V
+HPLandroid/bluetooth/IBluetoothGatt$Stub$Proxy;->startScan(ILandroid/bluetooth/le/ScanSettings;Ljava/util/List;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/bluetooth/IBluetoothGatt$Stub$Proxy;->stopScan(I)V
+PLandroid/bluetooth/IBluetoothGatt$Stub$Proxy;->unregAll()V
+HPLandroid/bluetooth/IBluetoothGatt$Stub$Proxy;->unregisterScanner(I)V
+HSPLandroid/bluetooth/IBluetoothGatt$Stub;-><init>()V
+PLandroid/bluetooth/IBluetoothGatt$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothGatt;
+HSPLandroid/bluetooth/IBluetoothGatt$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/bluetooth/IBluetoothHeadset$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->clccResponse(IIIIZLjava/lang/String;I)V
+PLandroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
+PLandroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getAudioState(Landroid/bluetooth/BluetoothDevice;)I
+HPLandroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+PLandroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->phoneStateChanged(IIILjava/lang/String;ILjava/lang/String;)V
HSPLandroid/bluetooth/IBluetoothHeadset$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHeadset;
-HSPLandroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/bluetooth/IBluetoothHearingAid$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHearingAid;
+PLandroid/bluetooth/IBluetoothHeadsetPhone$Stub;-><init>()V
+PLandroid/bluetooth/IBluetoothHeadsetPhone$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getActiveDevices()Ljava/util/List;
+PLandroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+HPLandroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->getHiSyncId(Landroid/bluetooth/BluetoothDevice;)J
+PLandroid/bluetooth/IBluetoothHearingAid$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHearingAid;
+HPLandroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+HPLandroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HPLandroid/bluetooth/IBluetoothHidDevice$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHidDevice;
+HPLandroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+HPLandroid/bluetooth/IBluetoothHidHost$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHidHost;
HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->bindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)Z
+HPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->disable(Ljava/lang/String;Z)Z
+PLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->enable(Ljava/lang/String;)Z
+HPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->getBluetoothGatt()Landroid/bluetooth/IBluetoothGatt;
+HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->getName()Ljava/lang/String;
+HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->getSystemConfigEnabledProfilesForPackage(Ljava/lang/String;)Ljava/util/List;
+HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->isBleScanAlwaysAvailable()Z
+HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->isHearingAidProfileSupported()Z
HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->registerAdapter(Landroid/bluetooth/IBluetoothManagerCallback;)Landroid/bluetooth/IBluetooth;
HSPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->registerStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
+HPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->unbindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)V
+HPLandroid/bluetooth/IBluetoothManager$Stub$Proxy;->updateBleAppCount(Landroid/os/IBinder;ZLjava/lang/String;)I
+HSPLandroid/bluetooth/IBluetoothManager$Stub;-><init>()V
HSPLandroid/bluetooth/IBluetoothManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothManager;
+PLandroid/bluetooth/IBluetoothManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/bluetooth/IBluetoothManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;->onBluetoothServiceDown()V
+PLandroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;->onBluetoothServiceUp(Landroid/bluetooth/IBluetooth;)V
HSPLandroid/bluetooth/IBluetoothManagerCallback$Stub;-><init>()V
HSPLandroid/bluetooth/IBluetoothManagerCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/bluetooth/IBluetoothManagerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothManagerCallback;
+HSPLandroid/bluetooth/IBluetoothManagerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/bluetooth/IBluetoothMap$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+HPLandroid/bluetooth/IBluetoothMap$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+HPLandroid/bluetooth/IBluetoothMap$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothMap;
+HPLandroid/bluetooth/IBluetoothPan$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothPan;
+HPLandroid/bluetooth/IBluetoothPbap$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
+PLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub$Proxy;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub$Proxy;->onServiceDisconnected(Landroid/content/ComponentName;)V
HSPLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub;-><init>()V
HSPLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothProfileServiceConnection;
HSPLandroid/bluetooth/IBluetoothProfileServiceConnection$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/bluetooth/IBluetoothSap$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
+HPLandroid/bluetooth/IBluetoothSap$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothSap;
+HSPLandroid/bluetooth/IBluetoothSocketManager$Stub;-><init>()V
+PLandroid/bluetooth/IBluetoothStateChangeCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/bluetooth/IBluetoothStateChangeCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/bluetooth/IBluetoothStateChangeCallback$Stub$Proxy;->onBluetoothStateChange(Z)V
HSPLandroid/bluetooth/IBluetoothStateChangeCallback$Stub;-><init>()V
HSPLandroid/bluetooth/IBluetoothStateChangeCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/bluetooth/IBluetoothStateChangeCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothStateChangeCallback;
+HSPLandroid/bluetooth/IBluetoothStateChangeCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/bluetooth/UidTraffic$1;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/UidTraffic;
+PLandroid/bluetooth/UidTraffic$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/bluetooth/UidTraffic$1;->newArray(I)[Landroid/bluetooth/UidTraffic;
+PLandroid/bluetooth/UidTraffic$1;->newArray(I)[Ljava/lang/Object;
+HPLandroid/bluetooth/UidTraffic;-><init>(Landroid/os/Parcel;)V
+PLandroid/bluetooth/UidTraffic;->getRxBytes()J
+PLandroid/bluetooth/UidTraffic;->getTxBytes()J
+PLandroid/bluetooth/UidTraffic;->getUid()I
+PLandroid/bluetooth/le/BluetoothLeScanner;-><init>(Landroid/bluetooth/IBluetoothManager;Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/bluetooth/le/BluetoothLeScanner;->access$100(Landroid/bluetooth/le/BluetoothLeScanner;)Ljava/util/Map;
+HPLandroid/bluetooth/le/BluetoothLeScanner;->access$200(Landroid/bluetooth/le/BluetoothLeScanner;)Ljava/lang/String;
+HPLandroid/bluetooth/le/BluetoothLeScanner;->access$300(Landroid/bluetooth/le/BluetoothLeScanner;)Ljava/lang/String;
+HPLandroid/bluetooth/le/BluetoothLeScanner;->isHardwareResourcesAvailableForScan(Landroid/bluetooth/le/ScanSettings;)Z
+HPLandroid/bluetooth/le/BluetoothLeScanner;->isSettingsAndFilterComboAllowed(Landroid/bluetooth/le/ScanSettings;Ljava/util/List;)Z
+HPLandroid/bluetooth/le/BluetoothLeScanner;->isSettingsConfigAllowedForScan(Landroid/bluetooth/le/ScanSettings;)Z
+HPLandroid/bluetooth/le/BluetoothLeScanner;->startScan(Ljava/util/List;Landroid/bluetooth/le/ScanSettings;Landroid/bluetooth/le/ScanCallback;)V
+HPLandroid/bluetooth/le/BluetoothLeScanner;->startScan(Ljava/util/List;Landroid/bluetooth/le/ScanSettings;Landroid/os/WorkSource;Landroid/bluetooth/le/ScanCallback;Landroid/app/PendingIntent;Ljava/util/List;)I
+HPLandroid/bluetooth/le/BluetoothLeScanner;->startScanFromSource(Ljava/util/List;Landroid/bluetooth/le/ScanSettings;Landroid/os/WorkSource;Landroid/bluetooth/le/ScanCallback;)V
+HPLandroid/bluetooth/le/BluetoothLeScanner;->stopScan(Landroid/bluetooth/le/ScanCallback;)V
+HSPLandroid/bluetooth/le/IScannerCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/bluetooth/le/IScannerCallback$Stub$Proxy;->onScanResult(Landroid/bluetooth/le/ScanResult;)V
+HSPLandroid/bluetooth/le/IScannerCallback$Stub$Proxy;->onScannerRegistered(II)V
+HPLandroid/bluetooth/le/IScannerCallback$Stub;-><init>()V
+HPLandroid/bluetooth/le/IScannerCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/bluetooth/le/IScannerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/bluetooth/le/ScanCallback;-><init>()V
+HSPLandroid/bluetooth/le/ScanFilter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/le/ScanFilter;
+HSPLandroid/bluetooth/le/ScanFilter$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/bluetooth/le/ScanFilter$Builder;-><init>()V
+HSPLandroid/bluetooth/le/ScanFilter$Builder;->build()Landroid/bluetooth/le/ScanFilter;
+PLandroid/bluetooth/le/ScanFilter$Builder;->setServiceData(Landroid/os/ParcelUuid;[B[B)Landroid/bluetooth/le/ScanFilter$Builder;
+HSPLandroid/bluetooth/le/ScanFilter$Builder;->setServiceUuid(Landroid/os/ParcelUuid;)Landroid/bluetooth/le/ScanFilter$Builder;
+HSPLandroid/bluetooth/le/ScanFilter;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;[B[BI[B[B)V
+HSPLandroid/bluetooth/le/ScanFilter;->getDeviceAddress()Ljava/lang/String;
+HSPLandroid/bluetooth/le/ScanFilter;->getDeviceName()Ljava/lang/String;
+HSPLandroid/bluetooth/le/ScanFilter;->getManufacturerData()[B
+HSPLandroid/bluetooth/le/ScanFilter;->getManufacturerDataMask()[B
+HSPLandroid/bluetooth/le/ScanFilter;->getManufacturerId()I
+HSPLandroid/bluetooth/le/ScanFilter;->getServiceData()[B
+HSPLandroid/bluetooth/le/ScanFilter;->getServiceDataMask()[B
+HSPLandroid/bluetooth/le/ScanFilter;->getServiceDataUuid()Landroid/os/ParcelUuid;
+HSPLandroid/bluetooth/le/ScanFilter;->getServiceSolicitationUuid()Landroid/os/ParcelUuid;
+HSPLandroid/bluetooth/le/ScanFilter;->getServiceSolicitationUuidMask()Landroid/os/ParcelUuid;
+HSPLandroid/bluetooth/le/ScanFilter;->getServiceUuid()Landroid/os/ParcelUuid;
+HSPLandroid/bluetooth/le/ScanFilter;->getServiceUuidMask()Landroid/os/ParcelUuid;
+HPLandroid/bluetooth/le/ScanFilter;->matches(Landroid/bluetooth/le/ScanResult;)Z
+HPLandroid/bluetooth/le/ScanFilter;->matchesPartialData([B[B[B)Z
+HPLandroid/bluetooth/le/ScanFilter;->matchesServiceUuids(Landroid/os/ParcelUuid;Landroid/os/ParcelUuid;Ljava/util/List;)Z
+HPLandroid/bluetooth/le/ScanFilter;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/bluetooth/le/ScanRecord;->getBytes()[B
+HPLandroid/bluetooth/le/ScanRecord;->getServiceData(Landroid/os/ParcelUuid;)[B
+HPLandroid/bluetooth/le/ScanRecord;->getTxPowerLevel()I
+PLandroid/bluetooth/le/ScanRecord;->parseFromBytes([B)Landroid/bluetooth/le/ScanRecord;
+HPLandroid/bluetooth/le/ScanResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/le/ScanResult;
+HPLandroid/bluetooth/le/ScanResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/bluetooth/le/ScanResult;-><init>(Landroid/bluetooth/BluetoothDevice;IIIIIIILandroid/bluetooth/le/ScanRecord;J)V
+HPLandroid/bluetooth/le/ScanResult;->getDevice()Landroid/bluetooth/BluetoothDevice;
+HPLandroid/bluetooth/le/ScanResult;->getRssi()I
+HPLandroid/bluetooth/le/ScanResult;->getScanRecord()Landroid/bluetooth/le/ScanRecord;
+HPLandroid/bluetooth/le/ScanResult;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/bluetooth/le/ScanResult;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/bluetooth/le/ScanSettings$1;->createFromParcel(Landroid/os/Parcel;)Landroid/bluetooth/le/ScanSettings;
+HSPLandroid/bluetooth/le/ScanSettings$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/bluetooth/le/ScanSettings$Builder;-><init>()V
+HSPLandroid/bluetooth/le/ScanSettings$Builder;->build()Landroid/bluetooth/le/ScanSettings;
+PLandroid/bluetooth/le/ScanSettings$Builder;->setCallbackType(I)Landroid/bluetooth/le/ScanSettings$Builder;
+HPLandroid/bluetooth/le/ScanSettings$Builder;->setMatchMode(I)Landroid/bluetooth/le/ScanSettings$Builder;
+PLandroid/bluetooth/le/ScanSettings$Builder;->setNumOfMatches(I)Landroid/bluetooth/le/ScanSettings$Builder;
+PLandroid/bluetooth/le/ScanSettings$Builder;->setReportDelay(J)Landroid/bluetooth/le/ScanSettings$Builder;
+HSPLandroid/bluetooth/le/ScanSettings$Builder;->setScanMode(I)Landroid/bluetooth/le/ScanSettings$Builder;
+HPLandroid/bluetooth/le/ScanSettings$Builder;->setScanResultType(I)Landroid/bluetooth/le/ScanSettings$Builder;
+HPLandroid/bluetooth/le/ScanSettings;-><init>(IIIJIIZI)V
+HSPLandroid/bluetooth/le/ScanSettings;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/bluetooth/le/ScanSettings;->getCallbackType()I
+HPLandroid/bluetooth/le/ScanSettings;->getLegacy()Z
+HPLandroid/bluetooth/le/ScanSettings;->getMatchMode()I
+HPLandroid/bluetooth/le/ScanSettings;->getNumOfMatches()I
+HSPLandroid/bluetooth/le/ScanSettings;->getReportDelayMillis()J
+HSPLandroid/bluetooth/le/ScanSettings;->getScanMode()I
+HPLandroid/bluetooth/le/ScanSettings;->getScanResultType()I
+HPLandroid/bluetooth/le/ScanSettings;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/companion/ICompanionDeviceManager$Stub;-><init>()V
+PLandroid/companion/ICompanionDeviceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/companion/ICompanionDeviceManager;
+PLandroid/companion/ICompanionDeviceManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/compat/Compatibility$Callbacks;-><init>()V
+HPLandroid/compat/Compatibility;->isChangeEnabled(J)Z
HSPLandroid/compat/Compatibility;->setCallbacks(Landroid/compat/Compatibility$Callbacks;)V
+HSLandroid/content/-$$Lambda$AbstractThreadedSyncAdapter$ISyncAdapterImpl$L6ZtOCe8gjKwJj0908ytPlrD8Rc;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;-><init>(Landroid/content/AbstractThreadedSyncAdapter;)V
+HSLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;-><init>(Landroid/content/AbstractThreadedSyncAdapter;Landroid/content/AbstractThreadedSyncAdapter$1;)V
HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->cancelSync(Landroid/content/ISyncContext;)V
+HSLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->lambda$onUnsyncableAccount$0(Ljava/lang/Object;Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
+HSLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->onUnsyncableAccount(Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
HSPLandroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->startSync(Landroid/content/ISyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;)V
HSPLandroid/content/AbstractThreadedSyncAdapter$SyncThread;->access$800(Landroid/content/AbstractThreadedSyncAdapter$SyncThread;)Landroid/content/SyncContext;
HSPLandroid/content/AbstractThreadedSyncAdapter$SyncThread;->run()V
@@ -1628,58 +5542,137 @@ HSPLandroid/content/AbstractThreadedSyncAdapter;-><init>(Landroid/content/Contex
HSPLandroid/content/AbstractThreadedSyncAdapter;-><init>(Landroid/content/Context;ZZ)V
HSPLandroid/content/AbstractThreadedSyncAdapter;->access$100()Z
HSPLandroid/content/AbstractThreadedSyncAdapter;->access$1100(Landroid/content/AbstractThreadedSyncAdapter;)Z
+HSLandroid/content/AbstractThreadedSyncAdapter;->access$1200(Landroid/content/AbstractThreadedSyncAdapter;Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
HSPLandroid/content/AbstractThreadedSyncAdapter;->access$200(Landroid/content/AbstractThreadedSyncAdapter;Landroid/accounts/Account;)Landroid/accounts/Account;
HSPLandroid/content/AbstractThreadedSyncAdapter;->access$300(Landroid/content/AbstractThreadedSyncAdapter;)Ljava/lang/Object;
HSPLandroid/content/AbstractThreadedSyncAdapter;->access$400(Landroid/content/AbstractThreadedSyncAdapter;)Ljava/util/HashMap;
HSPLandroid/content/AbstractThreadedSyncAdapter;->getContext()Landroid/content/Context;
HSPLandroid/content/AbstractThreadedSyncAdapter;->getSyncAdapterBinder()Landroid/os/IBinder;
-PLandroid/content/AbstractThreadedSyncAdapter;->onSyncCanceled()V
+HSLandroid/content/AbstractThreadedSyncAdapter;->handleOnUnsyncableAccount(Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
+HSPLandroid/content/AbstractThreadedSyncAdapter;->onSyncCanceled()V
+HSPLandroid/content/AbstractThreadedSyncAdapter;->onSyncCanceled(Ljava/lang/Thread;)V
+HSLandroid/content/AbstractThreadedSyncAdapter;->onUnsyncableAccount()Z
+PLandroid/content/AsyncQueryHandler$WorkerArgs;-><init>()V
+PLandroid/content/AsyncQueryHandler$WorkerHandler;-><init>(Landroid/content/AsyncQueryHandler;Landroid/os/Looper;)V
+HSPLandroid/content/AsyncQueryHandler$WorkerHandler;->handleMessage(Landroid/os/Message;)V
HSPLandroid/content/AsyncQueryHandler;-><init>(Landroid/content/ContentResolver;)V
HSPLandroid/content/AsyncQueryHandler;->createHandler(Landroid/os/Looper;)Landroid/os/Handler;
+HSPLandroid/content/AsyncQueryHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/content/AsyncQueryHandler;->startQuery(ILjava/lang/Object;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/content/AsyncTaskLoader$LoadTask;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/content/AsyncTaskLoader$LoadTask;->doInBackground([Ljava/lang/Void;)Ljava/lang/Object;
+HPLandroid/content/AsyncTaskLoader$LoadTask;->onCancelled(Ljava/lang/Object;)V
+HPLandroid/content/AsyncTaskLoader$LoadTask;->onPostExecute(Ljava/lang/Object;)V
+HPLandroid/content/AsyncTaskLoader;-><init>(Landroid/content/Context;)V
+HPLandroid/content/AsyncTaskLoader;-><init>(Landroid/content/Context;Ljava/util/concurrent/Executor;)V
+HPLandroid/content/AsyncTaskLoader;->cancelLoadInBackground()V
+HPLandroid/content/AsyncTaskLoader;->dispatchOnCancelled(Landroid/content/AsyncTaskLoader$LoadTask;Ljava/lang/Object;)V
+HPLandroid/content/AsyncTaskLoader;->dispatchOnLoadComplete(Landroid/content/AsyncTaskLoader$LoadTask;Ljava/lang/Object;)V
+HPLandroid/content/AsyncTaskLoader;->executePendingTask()V
+HPLandroid/content/AsyncTaskLoader;->isLoadInBackgroundCanceled()Z
+HPLandroid/content/AsyncTaskLoader;->onCancelLoad()Z
+HPLandroid/content/AsyncTaskLoader;->onForceLoad()V
+HPLandroid/content/AsyncTaskLoader;->onLoadInBackground()Ljava/lang/Object;
HSPLandroid/content/AutofillOptions$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/AutofillOptions;
HSPLandroid/content/AutofillOptions$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/AutofillOptions;-><init>(IZ)V
+HSPLandroid/content/AutofillOptions;->isAugmentedAutofillEnabled(Landroid/content/Context;)Z
+HPLandroid/content/AutofillOptions;->isAutofillDisabledLocked(Landroid/content/ComponentName;)Z
+HSPLandroid/content/AutofillOptions;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/BroadcastReceiver$PendingResult$1;->run()V
HSPLandroid/content/BroadcastReceiver$PendingResult;-><init>(ILjava/lang/String;Landroid/os/Bundle;IZZLandroid/os/IBinder;II)V
+HSPLandroid/content/BroadcastReceiver$PendingResult;->checkSynchronousHint()V
HSPLandroid/content/BroadcastReceiver$PendingResult;->finish()V
+PLandroid/content/BroadcastReceiver$PendingResult;->getSendingUserId()I
HSPLandroid/content/BroadcastReceiver$PendingResult;->sendFinished(Landroid/app/IActivityManager;)V
HSPLandroid/content/BroadcastReceiver$PendingResult;->setExtrasClassLoader(Ljava/lang/ClassLoader;)V
+HSPLandroid/content/BroadcastReceiver$PendingResult;->setResultCode(I)V
HSPLandroid/content/BroadcastReceiver;-><init>()V
+HSPLandroid/content/BroadcastReceiver;->abortBroadcast()V
+HSPLandroid/content/BroadcastReceiver;->checkSynchronousHint()V
HSPLandroid/content/BroadcastReceiver;->getDebugUnregister()Z
HSPLandroid/content/BroadcastReceiver;->getPendingResult()Landroid/content/BroadcastReceiver$PendingResult;
-PLandroid/content/BroadcastReceiver;->getSendingUserId()I
+HSPLandroid/content/BroadcastReceiver;->getResultCode()I
+HSPLandroid/content/BroadcastReceiver;->getResultExtras(Z)Landroid/os/Bundle;
+HPLandroid/content/BroadcastReceiver;->getSendingUserId()I
HSPLandroid/content/BroadcastReceiver;->goAsync()Landroid/content/BroadcastReceiver$PendingResult;
HSPLandroid/content/BroadcastReceiver;->isInitialStickyBroadcast()Z
HSPLandroid/content/BroadcastReceiver;->isOrderedBroadcast()Z
HSPLandroid/content/BroadcastReceiver;->setPendingResult(Landroid/content/BroadcastReceiver$PendingResult;)V
+HSPLandroid/content/BroadcastReceiver;->setResultCode(I)V
+HPLandroid/content/BroadcastReceiver;->setResultExtras(Landroid/os/Bundle;)V
+PLandroid/content/ClipData$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ClipData;
+PLandroid/content/ClipData$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/content/ClipData$Item;-><init>(Ljava/lang/CharSequence;Ljava/lang/String;Landroid/content/Intent;Landroid/net/Uri;)V
+PLandroid/content/ClipData$Item;->getIntent()Landroid/content/Intent;
+HPLandroid/content/ClipData$Item;->getText()Ljava/lang/CharSequence;
+PLandroid/content/ClipData$Item;->getUri()Landroid/net/Uri;
+PLandroid/content/ClipData;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/ClipData;->fixUrisLight(I)V
+PLandroid/content/ClipData;->getDescription()Landroid/content/ClipDescription;
+PLandroid/content/ClipData;->getItemAt(I)Landroid/content/ClipData$Item;
+PLandroid/content/ClipData;->getItemCount()I
+PLandroid/content/ClipData;->readHtmlTextFromParcel(Landroid/os/Parcel;)Ljava/lang/String;
+PLandroid/content/ClipData;->writeHtmlTextToParcel(Ljava/lang/String;Landroid/os/Parcel;I)V
+PLandroid/content/ClipData;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/ClipDescription;-><init>(Landroid/os/Parcel;)V
+HPLandroid/content/ClipDescription;->getTimestamp()J
+PLandroid/content/ClipDescription;->setTimestamp(J)V
+PLandroid/content/ClipDescription;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/content/ClipboardManager$1;->dispatchPrimaryClipChanged()V
+HPLandroid/content/ClipboardManager$1;->lambda$dispatchPrimaryClipChanged$0$ClipboardManager$1()V
HSPLandroid/content/ClipboardManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HPLandroid/content/ClipboardManager;->access$000(Landroid/content/ClipboardManager;)Landroid/os/Handler;
+HSPLandroid/content/ClipboardManager;->addPrimaryClipChangedListener(Landroid/content/ClipboardManager$OnPrimaryClipChangedListener;)V
+HPLandroid/content/ClipboardManager;->getPrimaryClip()Landroid/content/ClipData;
+HSPLandroid/content/ClipboardManager;->hasPrimaryClip()Z
+HPLandroid/content/ClipboardManager;->removePrimaryClipChangedListener(Landroid/content/ClipboardManager$OnPrimaryClipChangedListener;)V
+HPLandroid/content/ClipboardManager;->reportPrimaryClipChanged()V
HSPLandroid/content/ComponentName$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ComponentName;
HSPLandroid/content/ComponentName$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/ComponentName$1;->newArray(I)[Landroid/content/ComponentName;
+HSPLandroid/content/ComponentName$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
HSPLandroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/String;)V
HSPLandroid/content/ComponentName;-><init>(Landroid/os/Parcel;)V
HSPLandroid/content/ComponentName;-><init>(Ljava/lang/String;Landroid/os/Parcel;)V
HSPLandroid/content/ComponentName;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/ComponentName;->appendShortClassName(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/content/ComponentName;->appendShortString(Ljava/lang/StringBuilder;)V
+HSPLandroid/content/ComponentName;->appendShortString(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/ComponentName;->compareTo(Landroid/content/ComponentName;)I
+HPLandroid/content/ComponentName;->compareTo(Ljava/lang/Object;)I
+HSPLandroid/content/ComponentName;->createRelative(Landroid/content/Context;Ljava/lang/String;)Landroid/content/ComponentName;
HSPLandroid/content/ComponentName;->createRelative(Ljava/lang/String;Ljava/lang/String;)Landroid/content/ComponentName;
+HPLandroid/content/ComponentName;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HSPLandroid/content/ComponentName;->equals(Ljava/lang/Object;)Z
HSPLandroid/content/ComponentName;->flattenToShortString()Ljava/lang/String;
+PLandroid/content/ComponentName;->flattenToShortString(Landroid/content/ComponentName;)Ljava/lang/String;
HSPLandroid/content/ComponentName;->flattenToString()Ljava/lang/String;
HSPLandroid/content/ComponentName;->getClassName()Ljava/lang/String;
HSPLandroid/content/ComponentName;->getPackageName()Ljava/lang/String;
HSPLandroid/content/ComponentName;->getShortClassName()Ljava/lang/String;
HSPLandroid/content/ComponentName;->hashCode()I
+HPLandroid/content/ComponentName;->printShortClassName(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/content/ComponentName;->readFromParcel(Landroid/os/Parcel;)Landroid/content/ComponentName;
+HSPLandroid/content/ComponentName;->toShortString()Ljava/lang/String;
HSPLandroid/content/ComponentName;->toString()Ljava/lang/String;
HSPLandroid/content/ComponentName;->unflattenFromString(Ljava/lang/String;)Landroid/content/ComponentName;
+HSPLandroid/content/ComponentName;->writeToParcel(Landroid/content/ComponentName;Landroid/os/Parcel;)V
HSPLandroid/content/ComponentName;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/ContentCaptureOptions$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ContentCaptureOptions;
HSPLandroid/content/ContentCaptureOptions$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/ContentCaptureOptions;-><init>(I)V
HSPLandroid/content/ContentCaptureOptions;-><init>(IIIIILandroid/util/ArraySet;)V
HSPLandroid/content/ContentCaptureOptions;-><init>(ZIIIIILandroid/util/ArraySet;)V
+HPLandroid/content/ContentCaptureOptions;->isWhitelisted(Landroid/content/Context;)Z
+PLandroid/content/ContentCaptureOptions;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/ContentProvider$Transport;-><init>(Landroid/content/ContentProvider;)V
HSPLandroid/content/ContentProvider$Transport;->access$300(Landroid/content/ContentProvider$Transport;Ljava/lang/String;Ljava/lang/String;I)I
HSPLandroid/content/ContentProvider$Transport;->applyBatch(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
+HSPLandroid/content/ContentProvider$Transport;->bulkInsert(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;[Landroid/content/ContentValues;)I
HSPLandroid/content/ContentProvider$Transport;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
+HSPLandroid/content/ContentProvider$Transport;->canonicalize(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)Landroid/net/Uri;
HSPLandroid/content/ContentProvider$Transport;->createCancellationSignal()Landroid/os/ICancellationSignal;
HSPLandroid/content/ContentProvider$Transport;->delete(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;)I
HSPLandroid/content/ContentProvider$Transport;->enforceFilePermission(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/IBinder;)V
@@ -1690,6 +5683,7 @@ HSPLandroid/content/ContentProvider$Transport;->getProviderName()Ljava/lang/Stri
HSPLandroid/content/ContentProvider$Transport;->getType(Landroid/net/Uri;)Ljava/lang/String;
HSPLandroid/content/ContentProvider$Transport;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;
HSPLandroid/content/ContentProvider$Transport;->noteProxyOp(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLandroid/content/ContentProvider$Transport;->openAssetFile(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;
HSPLandroid/content/ContentProvider$Transport;->openTypedAssetFile(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;
HSPLandroid/content/ContentProvider$Transport;->query(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;
HSPLandroid/content/ContentProvider$Transport;->update(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I
@@ -1698,17 +5692,23 @@ HSPLandroid/content/ContentProvider;->access$000(Landroid/content/ContentProvide
HSPLandroid/content/ContentProvider;->access$100(Landroid/content/ContentProvider;Landroid/util/Pair;)Landroid/util/Pair;
HSPLandroid/content/ContentProvider;->access$200(Landroid/content/ContentProvider;Ljava/lang/String;)V
HSPLandroid/content/ContentProvider;->applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
+HSPLandroid/content/ContentProvider;->applyBatch(Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
HSPLandroid/content/ContentProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
HSPLandroid/content/ContentProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;Z)V
HSPLandroid/content/ContentProvider;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
+HSPLandroid/content/ContentProvider;->canonicalize(Landroid/net/Uri;)Landroid/net/Uri;
HSPLandroid/content/ContentProvider;->checkPermissionAndAppOp(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)I
HSPLandroid/content/ContentProvider;->checkUser(IILandroid/content/Context;)Z
+HSPLandroid/content/ContentProvider;->clearCallingIdentity()Landroid/content/ContentProvider$CallingIdentity;
HSPLandroid/content/ContentProvider;->coerceToLocalContentProvider(Landroid/content/IContentProvider;)Landroid/content/ContentProvider;
HSPLandroid/content/ContentProvider;->delete(Landroid/net/Uri;Landroid/os/Bundle;)I
+PLandroid/content/ContentProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
HSPLandroid/content/ContentProvider;->enforceReadPermissionInner(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)I
HSPLandroid/content/ContentProvider;->enforceWritePermissionInner(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/IBinder;)I
HSPLandroid/content/ContentProvider;->getAuthorityWithoutUserId(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/ContentProvider;->getCallingFeatureId()Ljava/lang/String;
HSPLandroid/content/ContentProvider;->getCallingPackage()Ljava/lang/String;
+HSPLandroid/content/ContentProvider;->getCallingPackageUnchecked()Ljava/lang/String;
HSPLandroid/content/ContentProvider;->getContext()Landroid/content/Context;
HSPLandroid/content/ContentProvider;->getIContentProvider()Landroid/content/IContentProvider;
HSPLandroid/content/ContentProvider;->getPathPermissions()[Landroid/content/pm/PathPermission;
@@ -1719,17 +5719,21 @@ HSPLandroid/content/ContentProvider;->getUserIdFromUri(Landroid/net/Uri;)I
HSPLandroid/content/ContentProvider;->getUserIdFromUri(Landroid/net/Uri;I)I
HSPLandroid/content/ContentProvider;->getWritePermission()Ljava/lang/String;
HSPLandroid/content/ContentProvider;->insert(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;
+HSPLandroid/content/ContentProvider;->isTemporary()Z
HSPLandroid/content/ContentProvider;->matchesOurAuthorities(Ljava/lang/String;)Z
HSPLandroid/content/ContentProvider;->maybeAddUserId(Landroid/net/Uri;I)Landroid/net/Uri;
HSPLandroid/content/ContentProvider;->maybeGetUriWithoutUserId(Landroid/net/Uri;)Landroid/net/Uri;
HSPLandroid/content/ContentProvider;->onCallingPackageChanged()V
HSPLandroid/content/ContentProvider;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+PLandroid/content/ContentProvider;->onLowMemory()V
HSPLandroid/content/ContentProvider;->onTrimMemory(I)V
HSPLandroid/content/ContentProvider;->openAssetFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
+HSPLandroid/content/ContentProvider;->openAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;
HSPLandroid/content/ContentProvider;->openTypedAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;
HSPLandroid/content/ContentProvider;->openTypedAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;
HSPLandroid/content/ContentProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
HSPLandroid/content/ContentProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
+HSPLandroid/content/ContentProvider;->restoreCallingIdentity(Landroid/content/ContentProvider$CallingIdentity;)V
HSPLandroid/content/ContentProvider;->setAppOps(II)V
HSPLandroid/content/ContentProvider;->setAuthorities(Ljava/lang/String;)V
HSPLandroid/content/ContentProvider;->setCallingPackage(Landroid/util/Pair;)Landroid/util/Pair;
@@ -1738,48 +5742,63 @@ HSPLandroid/content/ContentProvider;->setReadPermission(Ljava/lang/String;)V
HSPLandroid/content/ContentProvider;->setTransportLoggingEnabled(Z)V
HSPLandroid/content/ContentProvider;->setWritePermission(Ljava/lang/String;)V
HSPLandroid/content/ContentProvider;->update(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I
+HSPLandroid/content/ContentProvider;->uriHasUserId(Landroid/net/Uri;)Z
HSPLandroid/content/ContentProvider;->validateIncomingAuthority(Ljava/lang/String;)V
HSPLandroid/content/ContentProvider;->validateIncomingUri(Landroid/net/Uri;)Landroid/net/Uri;
HSPLandroid/content/ContentProviderClient$CursorWrapperInner;->close()V
HSPLandroid/content/ContentProviderClient$CursorWrapperInner;->finalize()V
+PLandroid/content/ContentProviderClient$NotRespondingRunnable;-><init>(Landroid/content/ContentProviderClient;)V
+PLandroid/content/ContentProviderClient$NotRespondingRunnable;-><init>(Landroid/content/ContentProviderClient;Landroid/content/ContentProviderClient$1;)V
HSPLandroid/content/ContentProviderClient;-><init>(Landroid/content/ContentResolver;Landroid/content/IContentProvider;Ljava/lang/String;Z)V
-PLandroid/content/ContentProviderClient;->afterRemote()V
+HSPLandroid/content/ContentProviderClient;->afterRemote()V
PLandroid/content/ContentProviderClient;->applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
PLandroid/content/ContentProviderClient;->applyBatch(Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
-PLandroid/content/ContentProviderClient;->beforeRemote()V
+HSPLandroid/content/ContentProviderClient;->beforeRemote()V
HSPLandroid/content/ContentProviderClient;->call(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
HSPLandroid/content/ContentProviderClient;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
HSPLandroid/content/ContentProviderClient;->close()V
HSPLandroid/content/ContentProviderClient;->closeInternal()Z
+PLandroid/content/ContentProviderClient;->delete(Landroid/net/Uri;Landroid/os/Bundle;)I
+PLandroid/content/ContentProviderClient;->delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I
HSPLandroid/content/ContentProviderClient;->finalize()V
+HSPLandroid/content/ContentProviderClient;->getLocalContentProvider()Landroid/content/ContentProvider;
+HPLandroid/content/ContentProviderClient;->insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;
+HPLandroid/content/ContentProviderClient;->insert(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;
HSPLandroid/content/ContentProviderClient;->query(Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
HSPLandroid/content/ContentProviderClient;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
HSPLandroid/content/ContentProviderClient;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
HSPLandroid/content/ContentProviderClient;->release()Z
HSPLandroid/content/ContentProviderClient;->setDetectNotResponding(J)V
+HSPLandroid/content/ContentProviderClient;->update(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I
+HSPLandroid/content/ContentProviderClient;->update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
HSPLandroid/content/ContentProviderNative;-><init>()V
HSPLandroid/content/ContentProviderNative;->asBinder()Landroid/os/IBinder;
HSPLandroid/content/ContentProviderNative;->asInterface(Landroid/os/IBinder;)Landroid/content/IContentProvider;
HSPLandroid/content/ContentProviderNative;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/content/ContentProviderOperation$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ContentProviderOperation;
HSPLandroid/content/ContentProviderOperation$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-PLandroid/content/ContentProviderOperation$BackReference$1;-><init>()V
-PLandroid/content/ContentProviderOperation$BackReference;-><clinit>()V
+HPLandroid/content/ContentProviderOperation$BackReference;-><clinit>()V
+HPLandroid/content/ContentProviderOperation$BackReference;-><init>(ILjava/lang/String;)V
+HPLandroid/content/ContentProviderOperation$BackReference;-><init>(ILjava/lang/String;Landroid/content/ContentProviderOperation$1;)V
+HPLandroid/content/ContentProviderOperation$BackReference;-><init>(Landroid/os/Parcel;)V
+HPLandroid/content/ContentProviderOperation$BackReference;->resolve([Landroid/content/ContentProviderResult;I)Ljava/lang/Object;
+HPLandroid/content/ContentProviderOperation$BackReference;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/ContentProviderOperation$Builder;-><init>(ILandroid/net/Uri;)V
HSPLandroid/content/ContentProviderOperation$Builder;-><init>(ILandroid/net/Uri;Landroid/content/ContentProviderOperation$1;)V
HSPLandroid/content/ContentProviderOperation$Builder;-><init>(ILandroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)V
-PLandroid/content/ContentProviderOperation$Builder;->assertSelectionAllowed()V
+HSPLandroid/content/ContentProviderOperation$Builder;->assertSelectionAllowed()V
HSPLandroid/content/ContentProviderOperation$Builder;->assertValuesAllowed()V
HSPLandroid/content/ContentProviderOperation$Builder;->build()Landroid/content/ContentProviderOperation;
-HPLandroid/content/ContentProviderOperation$Builder;->ensureSelectionArgs()V
-HPLandroid/content/ContentProviderOperation$Builder;->ensureValues()V
-HPLandroid/content/ContentProviderOperation$Builder;->setSelectionArg(ILjava/lang/Object;)V
-HPLandroid/content/ContentProviderOperation$Builder;->setValue(Ljava/lang/String;Ljava/lang/Object;)V
+PLandroid/content/ContentProviderOperation$Builder;->ensureSelectionArgs()V
+HSPLandroid/content/ContentProviderOperation$Builder;->ensureValues()V
+PLandroid/content/ContentProviderOperation$Builder;->setSelectionArg(ILjava/lang/Object;)V
+HSPLandroid/content/ContentProviderOperation$Builder;->setValue(Ljava/lang/String;Ljava/lang/Object;)V
HSPLandroid/content/ContentProviderOperation$Builder;->withExpectedCount(I)Landroid/content/ContentProviderOperation$Builder;
-HPLandroid/content/ContentProviderOperation$Builder;->withSelection(Ljava/lang/String;[Ljava/lang/String;)Landroid/content/ContentProviderOperation$Builder;
-HSPLandroid/content/ContentProviderOperation$Builder;->withValue(Ljava/lang/String;Ljava/lang/Object;)Landroid/content/ContentProviderOperation$Builder;
-HPLandroid/content/ContentProviderOperation$Builder;->withValues(Landroid/content/ContentValues;)Landroid/content/ContentProviderOperation$Builder;
-PLandroid/content/ContentProviderOperation$Builder;->withYieldAllowed(Z)Landroid/content/ContentProviderOperation$Builder;
+HSPLandroid/content/ContentProviderOperation$Builder;->withSelection(Ljava/lang/String;[Ljava/lang/String;)Landroid/content/ContentProviderOperation$Builder;
+PLandroid/content/ContentProviderOperation$Builder;->withValue(Ljava/lang/String;Ljava/lang/Object;)Landroid/content/ContentProviderOperation$Builder;
+HPLandroid/content/ContentProviderOperation$Builder;->withValueBackReference(Ljava/lang/String;I)Landroid/content/ContentProviderOperation$Builder;
+HSPLandroid/content/ContentProviderOperation$Builder;->withValues(Landroid/content/ContentValues;)Landroid/content/ContentProviderOperation$Builder;
+HSPLandroid/content/ContentProviderOperation$Builder;->withYieldAllowed(Z)Landroid/content/ContentProviderOperation$Builder;
HSPLandroid/content/ContentProviderOperation;-><init>(Landroid/content/ContentProviderOperation$Builder;)V
HSPLandroid/content/ContentProviderOperation;-><init>(Landroid/os/Parcel;)V
HSPLandroid/content/ContentProviderOperation;-><init>(Landroid/os/Parcel;Landroid/content/ContentProviderOperation$1;)V
@@ -1788,41 +5807,65 @@ HSPLandroid/content/ContentProviderOperation;->applyInternal(Landroid/content/Co
HSPLandroid/content/ContentProviderOperation;->getUri()Landroid/net/Uri;
HSPLandroid/content/ContentProviderOperation;->isReadOperation()Z
HSPLandroid/content/ContentProviderOperation;->isWriteOperation()Z
-PLandroid/content/ContentProviderOperation;->isYieldAllowed()Z
-HPLandroid/content/ContentProviderOperation;->newAssertQuery(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;
+HSPLandroid/content/ContentProviderOperation;->isYieldAllowed()Z
+PLandroid/content/ContentProviderOperation;->newAssertQuery(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;
+PLandroid/content/ContentProviderOperation;->newDelete(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;
PLandroid/content/ContentProviderOperation;->newInsert(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;
HSPLandroid/content/ContentProviderOperation;->newUpdate(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;
HSPLandroid/content/ContentProviderOperation;->resolveExtrasBackReferences([Landroid/content/ContentProviderResult;I)Landroid/os/Bundle;
HSPLandroid/content/ContentProviderOperation;->resolveSelectionArgsBackReferences([Landroid/content/ContentProviderResult;I)[Ljava/lang/String;
HSPLandroid/content/ContentProviderOperation;->resolveValueBackReferences([Landroid/content/ContentProviderResult;I)Landroid/content/ContentValues;
+HPLandroid/content/ContentProviderOperation;->toString()Ljava/lang/String;
+PLandroid/content/ContentProviderOperation;->typeToString(I)Ljava/lang/String;
+HPLandroid/content/ContentProviderOperation;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/ContentProviderProxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/content/ContentProviderProxy;->applyBatch(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
HSPLandroid/content/ContentProviderProxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/content/ContentProviderProxy;->bulkInsert(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;[Landroid/content/ContentValues;)I
HSPLandroid/content/ContentProviderProxy;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
+PLandroid/content/ContentProviderProxy;->canonicalize(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)Landroid/net/Uri;
HSPLandroid/content/ContentProviderProxy;->createCancellationSignal()Landroid/os/ICancellationSignal;
HSPLandroid/content/ContentProviderProxy;->delete(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;)I
+HSPLandroid/content/ContentProviderProxy;->getType(Landroid/net/Uri;)Ljava/lang/String;
HSPLandroid/content/ContentProviderProxy;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;
HSPLandroid/content/ContentProviderProxy;->openTypedAssetFile(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/content/res/AssetFileDescriptor;
HSPLandroid/content/ContentProviderProxy;->query(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ICancellationSignal;)Landroid/database/Cursor;
+HSPLandroid/content/ContentProviderProxy;->update(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I
+HPLandroid/content/ContentProviderResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ContentProviderResult;
+HPLandroid/content/ContentProviderResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/content/ContentProviderResult$1;->newArray(I)[Landroid/content/ContentProviderResult;
+PLandroid/content/ContentProviderResult$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/content/ContentProviderResult;-><init>(I)V
PLandroid/content/ContentProviderResult;-><init>(Landroid/net/Uri;)V
HSPLandroid/content/ContentProviderResult;-><init>(Landroid/net/Uri;Ljava/lang/Integer;Landroid/os/Bundle;Ljava/lang/Exception;)V
+HPLandroid/content/ContentProviderResult;-><init>(Landroid/os/Parcel;)V
HSPLandroid/content/ContentProviderResult;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/ContentResolver$1;-><init>(Landroid/content/Context;Landroid/content/ContentInterface;)V
+HSPLandroid/content/ContentResolver$2;-><init>(Landroid/content/SyncStatusObserver;)V
+PLandroid/content/ContentResolver$2;->onStatusChanged(I)V
HSPLandroid/content/ContentResolver$CursorWrapperInner;-><init>(Landroid/content/ContentResolver;Landroid/database/Cursor;Landroid/content/IContentProvider;)V
HSPLandroid/content/ContentResolver$CursorWrapperInner;->close()V
HSPLandroid/content/ContentResolver$CursorWrapperInner;->finalize()V
+HSPLandroid/content/ContentResolver$OpenResourceIdResult;-><init>(Landroid/content/ContentResolver;)V
HSPLandroid/content/ContentResolver$ParcelFileDescriptorInner;->releaseResources()V
HSPLandroid/content/ContentResolver;-><init>(Landroid/content/Context;)V
HSPLandroid/content/ContentResolver;-><init>(Landroid/content/Context;Landroid/content/ContentInterface;)V
HSPLandroid/content/ContentResolver;->acquireContentProviderClient(Landroid/net/Uri;)Landroid/content/ContentProviderClient;
HSPLandroid/content/ContentResolver;->acquireContentProviderClient(Ljava/lang/String;)Landroid/content/ContentProviderClient;
+HSPLandroid/content/ContentResolver;->acquireExistingProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
HSPLandroid/content/ContentResolver;->acquireProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
HSPLandroid/content/ContentResolver;->acquireProvider(Ljava/lang/String;)Landroid/content/IContentProvider;
HSPLandroid/content/ContentResolver;->acquireUnstableContentProviderClient(Landroid/net/Uri;)Landroid/content/ContentProviderClient;
+PLandroid/content/ContentResolver;->acquireUnstableContentProviderClient(Ljava/lang/String;)Landroid/content/ContentProviderClient;
HSPLandroid/content/ContentResolver;->acquireUnstableProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
HSPLandroid/content/ContentResolver;->addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V
+HSPLandroid/content/ContentResolver;->addStatusChangeListener(ILandroid/content/SyncStatusObserver;)Ljava/lang/Object;
HSPLandroid/content/ContentResolver;->applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
+HSPLandroid/content/ContentResolver;->bulkInsert(Landroid/net/Uri;[Landroid/content/ContentValues;)I
HSPLandroid/content/ContentResolver;->call(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
HSPLandroid/content/ContentResolver;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
+HSPLandroid/content/ContentResolver;->cancelSync(Landroid/accounts/Account;Ljava/lang/String;)V
+HPLandroid/content/ContentResolver;->canonicalize(Landroid/net/Uri;)Landroid/net/Uri;
HSPLandroid/content/ContentResolver;->createSqlQueryBundle(Ljava/lang/String;[Ljava/lang/String;)Landroid/os/Bundle;
HSPLandroid/content/ContentResolver;->createSqlQueryBundle(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
HSPLandroid/content/ContentResolver;->delete(Landroid/net/Uri;Landroid/os/Bundle;)I
@@ -1830,59 +5873,91 @@ HSPLandroid/content/ContentResolver;->delete(Landroid/net/Uri;Ljava/lang/String;
HSPLandroid/content/ContentResolver;->getContentService()Landroid/content/IContentService;
HSPLandroid/content/ContentResolver;->getFeatureId()Ljava/lang/String;
HSPLandroid/content/ContentResolver;->getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I
+PLandroid/content/ContentResolver;->getIsSyncableAsUser(Landroid/accounts/Account;Ljava/lang/String;I)I
HSPLandroid/content/ContentResolver;->getMasterSyncAutomatically()Z
+PLandroid/content/ContentResolver;->getMasterSyncAutomaticallyAsUser(I)Z
HSPLandroid/content/ContentResolver;->getOutgoingPersistedUriPermissions()Ljava/util/List;
HSPLandroid/content/ContentResolver;->getPackageName()Ljava/lang/String;
+HSPLandroid/content/ContentResolver;->getPeriodicSyncs(Landroid/accounts/Account;Ljava/lang/String;)Ljava/util/List;
+HSPLandroid/content/ContentResolver;->getPersistedUriPermissions()Ljava/util/List;
+HSPLandroid/content/ContentResolver;->getResourceId(Landroid/net/Uri;)Landroid/content/ContentResolver$OpenResourceIdResult;
+HSPLandroid/content/ContentResolver;->getSyncAdapterPackagesForAuthorityAsUser(Ljava/lang/String;I)[Ljava/lang/String;
+HSPLandroid/content/ContentResolver;->getSyncAdapterTypes()[Landroid/content/SyncAdapterType;
+PLandroid/content/ContentResolver;->getSyncAdapterTypesAsUser(I)[Landroid/content/SyncAdapterType;
HSPLandroid/content/ContentResolver;->getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)Z
+PLandroid/content/ContentResolver;->getSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;I)Z
HSPLandroid/content/ContentResolver;->getType(Landroid/net/Uri;)Ljava/lang/String;
HSPLandroid/content/ContentResolver;->getUserId()I
HSPLandroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;
HSPLandroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)Landroid/net/Uri;
HSPLandroid/content/ContentResolver;->invalidPeriodicExtras(Landroid/os/Bundle;)Z
+HPLandroid/content/ContentResolver;->isSyncPending(Landroid/accounts/Account;Ljava/lang/String;)Z
+HPLandroid/content/ContentResolver;->isSyncPendingAsUser(Landroid/accounts/Account;Ljava/lang/String;I)Z
HSPLandroid/content/ContentResolver;->maybeLogQueryToEventLog(JLandroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;)V
HSPLandroid/content/ContentResolver;->maybeLogUpdateToEventLog(JLandroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;)V
HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;I)V
HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;II)V
HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;Z)V
+HSPLandroid/content/ContentResolver;->notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;ZI)V
HSPLandroid/content/ContentResolver;->notifyChange([Landroid/net/Uri;Landroid/database/ContentObserver;II)V
HSPLandroid/content/ContentResolver;->openAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;
HSPLandroid/content/ContentResolver;->openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
HSPLandroid/content/ContentResolver;->openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;
+HPLandroid/content/ContentResolver;->openInputStream(Landroid/net/Uri;)Ljava/io/InputStream;
HSPLandroid/content/ContentResolver;->openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/content/res/AssetFileDescriptor;
HSPLandroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
HSPLandroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
HSPLandroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
HSPLandroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V
HSPLandroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V
-PLandroid/content/ContentResolver;->removePeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/content/ContentResolver;->removePeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
HSPLandroid/content/ContentResolver;->requestSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+PLandroid/content/ContentResolver;->requestSync(Landroid/content/SyncRequest;)V
HSPLandroid/content/ContentResolver;->requestSyncAsUser(Landroid/accounts/Account;Ljava/lang/String;ILandroid/os/Bundle;)V
+HSPLandroid/content/ContentResolver;->resolveUserId(Landroid/net/Uri;)I
+HSPLandroid/content/ContentResolver;->setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V
HSPLandroid/content/ContentResolver;->setSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;Z)V
HSPLandroid/content/ContentResolver;->setSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;ZI)V
+PLandroid/content/ContentResolver;->syncErrorToString(I)Ljava/lang/String;
HSPLandroid/content/ContentResolver;->unregisterContentObserver(Landroid/database/ContentObserver;)V
HSPLandroid/content/ContentResolver;->update(Landroid/net/Uri;Landroid/content/ContentValues;Landroid/os/Bundle;)I
HSPLandroid/content/ContentResolver;->update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
HSPLandroid/content/ContentResolver;->validateSyncExtrasBundle(Landroid/os/Bundle;)V
-PLandroid/content/ContentUris;->parseId(Landroid/net/Uri;)J
+HSPLandroid/content/ContentResolver;->wrap(Landroid/content/ContentInterface;)Landroid/content/ContentResolver;
+HSPLandroid/content/ContentResolver;->wrap(Landroid/content/ContentProvider;)Landroid/content/ContentResolver;
+HSPLandroid/content/ContentUris;->appendId(Landroid/net/Uri$Builder;J)Landroid/net/Uri$Builder;
+HSPLandroid/content/ContentUris;->parseId(Landroid/net/Uri;)J
HSPLandroid/content/ContentUris;->withAppendedId(Landroid/net/Uri;J)Landroid/net/Uri;
HSPLandroid/content/ContentValues$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/ContentValues;
HSPLandroid/content/ContentValues$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/ContentValues$1;->newArray(I)[Landroid/content/ContentValues;
+HSPLandroid/content/ContentValues$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/content/ContentValues;-><init>()V
HSPLandroid/content/ContentValues;-><init>(I)V
HSPLandroid/content/ContentValues;-><init>(Landroid/content/ContentValues;)V
+PLandroid/content/ContentValues;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/ContentValues;-><init>(Landroid/os/Parcel;Landroid/content/ContentValues$1;)V
HSPLandroid/content/ContentValues;->clear()V
HSPLandroid/content/ContentValues;->containsKey(Ljava/lang/String;)Z
+HSPLandroid/content/ContentValues;->equals(Ljava/lang/Object;)Z
HSPLandroid/content/ContentValues;->get(Ljava/lang/String;)Ljava/lang/Object;
HSPLandroid/content/ContentValues;->getAsBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
+HSPLandroid/content/ContentValues;->getAsByteArray(Ljava/lang/String;)[B
+HPLandroid/content/ContentValues;->getAsDouble(Ljava/lang/String;)Ljava/lang/Double;
+HPLandroid/content/ContentValues;->getAsFloat(Ljava/lang/String;)Ljava/lang/Float;
HSPLandroid/content/ContentValues;->getAsInteger(Ljava/lang/String;)Ljava/lang/Integer;
HSPLandroid/content/ContentValues;->getAsLong(Ljava/lang/String;)Ljava/lang/Long;
HSPLandroid/content/ContentValues;->getAsString(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/content/ContentValues;->getValues()Landroid/util/ArrayMap;
+HPLandroid/content/ContentValues;->hashCode()I
HSPLandroid/content/ContentValues;->isEmpty()Z
-HSPLandroid/content/ContentValues;->isSupportedValue(Ljava/lang/Object;)Z
+HPLandroid/content/ContentValues;->isSupportedValue(Ljava/lang/Object;)Z
HSPLandroid/content/ContentValues;->keySet()Ljava/util/Set;
HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Boolean;)V
+HPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Byte;)V
+HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Double;)V
+HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Float;)V
HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Integer;)V
HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/Long;)V
HSPLandroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V
@@ -1892,53 +5967,81 @@ HSPLandroid/content/ContentValues;->putNull(Ljava/lang/String;)V
HSPLandroid/content/ContentValues;->putObject(Ljava/lang/String;Ljava/lang/Object;)V
HSPLandroid/content/ContentValues;->remove(Ljava/lang/String;)V
HSPLandroid/content/ContentValues;->size()I
+HSPLandroid/content/ContentValues;->toString()Ljava/lang/String;
HSPLandroid/content/ContentValues;->valueSet()Ljava/util/Set;
HSPLandroid/content/ContentValues;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/Context;-><init>()V
+HSPLandroid/content/Context;->assertRuntimeOverlayThemable()V
HSPLandroid/content/Context;->getColor(I)I
+HSPLandroid/content/Context;->getColorStateList(I)Landroid/content/res/ColorStateList;
HSPLandroid/content/Context;->getDrawable(I)Landroid/graphics/drawable/Drawable;
+HPLandroid/content/Context;->getNextAutofillId()I
+HSPLandroid/content/Context;->getSharedPrefsFile(Ljava/lang/String;)Ljava/io/File;
HSPLandroid/content/Context;->getString(I)Ljava/lang/String;
HSPLandroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String;
HSPLandroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;
HSPLandroid/content/Context;->getText(I)Ljava/lang/CharSequence;
+PLandroid/content/Context;->isAutofillCompatibilityEnabled()Z
HSPLandroid/content/Context;->obtainStyledAttributes(I[I)Landroid/content/res/TypedArray;
HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
HSPLandroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;
HSPLandroid/content/Context;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;
+HSPLandroid/content/Context;->registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V
+HPLandroid/content/Context;->unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V
HSPLandroid/content/ContextWrapper;-><init>(Landroid/content/Context;)V
HSPLandroid/content/ContextWrapper;->attachBaseContext(Landroid/content/Context;)V
+HSPLandroid/content/ContextWrapper;->bindIsolatedService(Landroid/content/Intent;ILjava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/ServiceConnection;)Z
HSPLandroid/content/ContextWrapper;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
+PLandroid/content/ContextWrapper;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handler;Landroid/os/UserHandle;)Z
HSPLandroid/content/ContextWrapper;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/UserHandle;)Z
HSPLandroid/content/ContextWrapper;->canLoadUnsafeResources()Z
HSPLandroid/content/ContextWrapper;->checkCallingOrSelfPermission(Ljava/lang/String;)I
HSPLandroid/content/ContextWrapper;->checkCallingPermission(Ljava/lang/String;)I
+HPLandroid/content/ContextWrapper;->checkCallingUriPermission(Landroid/net/Uri;I)I
HSPLandroid/content/ContextWrapper;->checkPermission(Ljava/lang/String;II)I
HSPLandroid/content/ContextWrapper;->checkPermission(Ljava/lang/String;IILandroid/os/IBinder;)I
HSPLandroid/content/ContextWrapper;->checkSelfPermission(Ljava/lang/String;)I
+HSPLandroid/content/ContextWrapper;->checkUriPermission(Landroid/net/Uri;III)I
+HSPLandroid/content/ContextWrapper;->checkUriPermission(Landroid/net/Uri;IIILandroid/os/IBinder;)I
HSPLandroid/content/ContextWrapper;->createApplicationContext(Landroid/content/pm/ApplicationInfo;I)Landroid/content/Context;
HSPLandroid/content/ContextWrapper;->createConfigurationContext(Landroid/content/res/Configuration;)Landroid/content/Context;
+HSPLandroid/content/ContextWrapper;->createContextAsUser(Landroid/os/UserHandle;I)Landroid/content/Context;
+HSPLandroid/content/ContextWrapper;->createCredentialProtectedStorageContext()Landroid/content/Context;
HSPLandroid/content/ContextWrapper;->createDeviceProtectedStorageContext()Landroid/content/Context;
+HSPLandroid/content/ContextWrapper;->createDisplayContext(Landroid/view/Display;)Landroid/content/Context;
+HSPLandroid/content/ContextWrapper;->createFeatureContext(Ljava/lang/String;)Landroid/content/Context;
HSPLandroid/content/ContextWrapper;->createPackageContext(Ljava/lang/String;I)Landroid/content/Context;
HSPLandroid/content/ContextWrapper;->createPackageContextAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/Context;
+HSPLandroid/content/ContextWrapper;->databaseList()[Ljava/lang/String;
HSPLandroid/content/ContextWrapper;->deleteDatabase(Ljava/lang/String;)Z
+HSPLandroid/content/ContextWrapper;->deleteFile(Ljava/lang/String;)Z
+PLandroid/content/ContextWrapper;->deleteSharedPreferences(Ljava/lang/String;)Z
HSPLandroid/content/ContextWrapper;->enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/content/ContextWrapper;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/ContextWrapper;->enforcePermission(Ljava/lang/String;IILjava/lang/String;)V
+HSPLandroid/content/ContextWrapper;->fileList()[Ljava/lang/String;
HSPLandroid/content/ContextWrapper;->getApplicationContext()Landroid/content/Context;
HSPLandroid/content/ContextWrapper;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
HSPLandroid/content/ContextWrapper;->getAssets()Landroid/content/res/AssetManager;
+HSPLandroid/content/ContextWrapper;->getAutofillClient()Landroid/view/autofill/AutofillManager$AutofillClient;
HSPLandroid/content/ContextWrapper;->getAutofillOptions()Landroid/content/AutofillOptions;
HSPLandroid/content/ContextWrapper;->getBaseContext()Landroid/content/Context;
HSPLandroid/content/ContextWrapper;->getBasePackageName()Ljava/lang/String;
HSPLandroid/content/ContextWrapper;->getCacheDir()Ljava/io/File;
HSPLandroid/content/ContextWrapper;->getClassLoader()Ljava/lang/ClassLoader;
+HSPLandroid/content/ContextWrapper;->getCodeCacheDir()Ljava/io/File;
HSPLandroid/content/ContextWrapper;->getContentCaptureOptions()Landroid/content/ContentCaptureOptions;
HSPLandroid/content/ContextWrapper;->getContentResolver()Landroid/content/ContentResolver;
HSPLandroid/content/ContextWrapper;->getDataDir()Ljava/io/File;
HSPLandroid/content/ContextWrapper;->getDatabasePath(Ljava/lang/String;)Ljava/io/File;
HSPLandroid/content/ContextWrapper;->getDir(Ljava/lang/String;I)Ljava/io/File;
+HSPLandroid/content/ContextWrapper;->getDisplay()Landroid/view/Display;
HSPLandroid/content/ContextWrapper;->getDisplayId()I
HSPLandroid/content/ContextWrapper;->getExternalCacheDir()Ljava/io/File;
+HSPLandroid/content/ContextWrapper;->getExternalCacheDirs()[Ljava/io/File;
HSPLandroid/content/ContextWrapper;->getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;
HSPLandroid/content/ContextWrapper;->getExternalFilesDirs(Ljava/lang/String;)[Ljava/io/File;
+HSPLandroid/content/ContextWrapper;->getExternalMediaDirs()[Ljava/io/File;
HSPLandroid/content/ContextWrapper;->getFeatureId()Ljava/lang/String;
HSPLandroid/content/ContextWrapper;->getFileStreamPath(Ljava/lang/String;)Ljava/io/File;
HSPLandroid/content/ContextWrapper;->getFilesDir()Ljava/io/File;
@@ -1947,55 +6050,150 @@ HSPLandroid/content/ContextWrapper;->getMainLooper()Landroid/os/Looper;
HSPLandroid/content/ContextWrapper;->getNextAutofillId()I
HSPLandroid/content/ContextWrapper;->getNoBackupFilesDir()Ljava/io/File;
HSPLandroid/content/ContextWrapper;->getOpPackageName()Ljava/lang/String;
+HSPLandroid/content/ContextWrapper;->getPackageCodePath()Ljava/lang/String;
HSPLandroid/content/ContextWrapper;->getPackageManager()Landroid/content/pm/PackageManager;
HSPLandroid/content/ContextWrapper;->getPackageName()Ljava/lang/String;
+HSPLandroid/content/ContextWrapper;->getPackageResourcePath()Ljava/lang/String;
+HPLandroid/content/ContextWrapper;->getPreloadsFileCache()Ljava/io/File;
HSPLandroid/content/ContextWrapper;->getResources()Landroid/content/res/Resources;
HSPLandroid/content/ContextWrapper;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
+HSPLandroid/content/ContextWrapper;->getSharedPreferencesPath(Ljava/lang/String;)Ljava/io/File;
HSPLandroid/content/ContextWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
HSPLandroid/content/ContextWrapper;->getSystemServiceName(Ljava/lang/Class;)Ljava/lang/String;
HSPLandroid/content/ContextWrapper;->getTheme()Landroid/content/res/Resources$Theme;
+HPLandroid/content/ContextWrapper;->getThemeResId()I
HSPLandroid/content/ContextWrapper;->getUser()Landroid/os/UserHandle;
HSPLandroid/content/ContextWrapper;->getUserId()I
+HSPLandroid/content/ContextWrapper;->grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V
HSPLandroid/content/ContextWrapper;->isDeviceProtectedStorage()Z
HSPLandroid/content/ContextWrapper;->isRestricted()Z
HSPLandroid/content/ContextWrapper;->openFileInput(Ljava/lang/String;)Ljava/io/FileInputStream;
HSPLandroid/content/ContextWrapper;->openFileOutput(Ljava/lang/String;I)Ljava/io/FileOutputStream;
+PLandroid/content/ContextWrapper;->openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;
HSPLandroid/content/ContextWrapper;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
HSPLandroid/content/ContextWrapper;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
HSPLandroid/content/ContextWrapper;->registerReceiverAsUser(Landroid/content/BroadcastReceiver;Landroid/os/UserHandle;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
+HSPLandroid/content/ContextWrapper;->registerReceiverForAllUsers(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
+HSPLandroid/content/ContextWrapper;->revokeUriPermission(Landroid/net/Uri;I)V
HSPLandroid/content/ContextWrapper;->sendBroadcast(Landroid/content/Intent;)V
HSPLandroid/content/ContextWrapper;->sendBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
+HSPLandroid/content/ContextWrapper;->sendBroadcast(Landroid/content/Intent;Ljava/lang/String;Landroid/os/Bundle;)V
HSPLandroid/content/ContextWrapper;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
HSPLandroid/content/ContextWrapper;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;)V
+HSPLandroid/content/ContextWrapper;->sendBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;Landroid/os/Bundle;)V
+PLandroid/content/ContextWrapper;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
+HSPLandroid/content/ContextWrapper;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+HPLandroid/content/ContextWrapper;->sendOrderedBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/content/ContextWrapper;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
+HSPLandroid/content/ContextWrapper;->setAutofillClient(Landroid/view/autofill/AutofillManager$AutofillClient;)V
HSPLandroid/content/ContextWrapper;->setAutofillOptions(Landroid/content/AutofillOptions;)V
HSPLandroid/content/ContextWrapper;->setContentCaptureOptions(Landroid/content/ContentCaptureOptions;)V
+HPLandroid/content/ContextWrapper;->startActivityAsUser(Landroid/content/Intent;Landroid/os/Bundle;Landroid/os/UserHandle;)V
+HSPLandroid/content/ContextWrapper;->startForegroundService(Landroid/content/Intent;)Landroid/content/ComponentName;
HSPLandroid/content/ContextWrapper;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;
HSPLandroid/content/ContextWrapper;->stopService(Landroid/content/Intent;)Z
HSPLandroid/content/ContextWrapper;->unbindService(Landroid/content/ServiceConnection;)V
HSPLandroid/content/ContextWrapper;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
+HPLandroid/content/ContextWrapper;->updateDisplay(I)V
+HPLandroid/content/CursorLoader;-><init>(Landroid/content/Context;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/content/CursorLoader;->cancelLoadInBackground()V
+HPLandroid/content/CursorLoader;->deliverResult(Landroid/database/Cursor;)V
+HPLandroid/content/CursorLoader;->deliverResult(Ljava/lang/Object;)V
+HPLandroid/content/CursorLoader;->getUri()Landroid/net/Uri;
+HPLandroid/content/CursorLoader;->loadInBackground()Landroid/database/Cursor;
+HPLandroid/content/CursorLoader;->loadInBackground()Ljava/lang/Object;
+HPLandroid/content/CursorLoader;->onCanceled(Landroid/database/Cursor;)V
+HPLandroid/content/CursorLoader;->onCanceled(Ljava/lang/Object;)V
+HPLandroid/content/CursorLoader;->onStartLoading()V
+HSPLandroid/content/IClipboard$Stub$Proxy;->addPrimaryClipChangedListener(Landroid/content/IOnPrimaryClipChangedListener;Ljava/lang/String;I)V
+HPLandroid/content/IClipboard$Stub$Proxy;->getPrimaryClip(Ljava/lang/String;I)Landroid/content/ClipData;
+HSPLandroid/content/IClipboard$Stub$Proxy;->hasPrimaryClip(Ljava/lang/String;I)Z
+HPLandroid/content/IClipboard$Stub$Proxy;->removePrimaryClipChangedListener(Landroid/content/IOnPrimaryClipChangedListener;Ljava/lang/String;I)V
+HSPLandroid/content/IClipboard$Stub;-><init>()V
+PLandroid/content/IClipboard$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/content/IClipboard$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/content/IContentService$Stub$Proxy;->addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V
+HSPLandroid/content/IContentService$Stub$Proxy;->addStatusChangeListener(ILandroid/content/ISyncStatusObserver;)V
+HSPLandroid/content/IContentService$Stub$Proxy;->cancelSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)V
HSPLandroid/content/IContentService$Stub$Proxy;->getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I
HSPLandroid/content/IContentService$Stub$Proxy;->getMasterSyncAutomatically()Z
+HSPLandroid/content/IContentService$Stub$Proxy;->getPeriodicSyncs(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Ljava/util/List;
HSPLandroid/content/IContentService$Stub$Proxy;->getSyncAdapterTypes()[Landroid/content/SyncAdapterType;
HSPLandroid/content/IContentService$Stub$Proxy;->getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)Z
+HPLandroid/content/IContentService$Stub$Proxy;->isSyncPendingAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;I)Z
HSPLandroid/content/IContentService$Stub$Proxy;->notifyChange([Landroid/net/Uri;Landroid/database/IContentObserver;ZIIILjava/lang/String;)V
HSPLandroid/content/IContentService$Stub$Proxy;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/IContentObserver;II)V
-PLandroid/content/IContentService$Stub$Proxy;->removePeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/content/IContentService$Stub$Proxy;->removePeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/content/IContentService$Stub$Proxy;->setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V
HSPLandroid/content/IContentService$Stub$Proxy;->setSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;ZI)V
+PLandroid/content/IContentService$Stub$Proxy;->sync(Landroid/content/SyncRequest;Ljava/lang/String;)V
HSPLandroid/content/IContentService$Stub$Proxy;->syncAsUser(Landroid/content/SyncRequest;ILjava/lang/String;)V
HSPLandroid/content/IContentService$Stub$Proxy;->unregisterContentObserver(Landroid/database/IContentObserver;)V
+HSPLandroid/content/IContentService$Stub;-><init>()V
+HSPLandroid/content/IContentService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IContentService;
+PLandroid/content/IContentService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/content/IContentService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/IIntentReceiver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/content/IIntentReceiver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/content/IIntentReceiver$Stub$Proxy;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
HSPLandroid/content/IIntentReceiver$Stub;-><init>()V
HSPLandroid/content/IIntentReceiver$Stub;->asBinder()Landroid/os/IBinder;
HSPLandroid/content/IIntentReceiver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IIntentReceiver;
-HSPLandroid/content/IIntentSender$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/content/IIntentReceiver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSLandroid/content/IIntentSender$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/content/IIntentSender$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/content/IIntentSender$Stub$Proxy;->send(ILandroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/content/IIntentSender$Stub;-><init>()V
+HSPLandroid/content/IIntentSender$Stub;->asBinder()Landroid/os/IBinder;
HSPLandroid/content/IIntentSender$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IIntentSender;
+PLandroid/content/IOnPrimaryClipChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/content/IOnPrimaryClipChangedListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/content/IOnPrimaryClipChangedListener$Stub$Proxy;->dispatchPrimaryClipChanged()V
+HSPLandroid/content/IOnPrimaryClipChangedListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/content/IOnPrimaryClipChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IOnPrimaryClipChangedListener;
+HPLandroid/content/IOnPrimaryClipChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/IRestrictionsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/content/IRestrictionsManager$Stub$Proxy;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
+HSPLandroid/content/IRestrictionsManager$Stub;-><init>()V
+HSPLandroid/content/IRestrictionsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IRestrictionsManager;
+PLandroid/content/IRestrictionsManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/content/IRestrictionsManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/ISyncAdapter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/content/ISyncAdapter$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/content/ISyncAdapter$Stub$Proxy;->cancelSync(Landroid/content/ISyncContext;)V
+PLandroid/content/ISyncAdapter$Stub$Proxy;->onUnsyncableAccount(Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
+PLandroid/content/ISyncAdapter$Stub$Proxy;->startSync(Landroid/content/ISyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;)V
+HSLandroid/content/ISyncAdapter$Stub;-><init>()V
HSPLandroid/content/ISyncAdapter$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/content/ISyncAdapter$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncAdapter;
HSPLandroid/content/ISyncAdapter$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSLandroid/content/ISyncAdapterUnsyncableAccountCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSLandroid/content/ISyncAdapterUnsyncableAccountCallback$Stub$Proxy;->onUnsyncableAccountDone(Z)V
+PLandroid/content/ISyncAdapterUnsyncableAccountCallback$Stub;-><init>()V
+PLandroid/content/ISyncAdapterUnsyncableAccountCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSLandroid/content/ISyncAdapterUnsyncableAccountCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncAdapterUnsyncableAccountCallback;
+PLandroid/content/ISyncAdapterUnsyncableAccountCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/content/ISyncContext$Stub$Proxy;->asBinder()Landroid/os/IBinder;
HSPLandroid/content/ISyncContext$Stub$Proxy;->onFinished(Landroid/content/SyncResult;)V
+PLandroid/content/ISyncContext$Stub;-><init>()V
+PLandroid/content/ISyncContext$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/content/ISyncContext$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/content/ISyncContext$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/ISyncStatusObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/content/ISyncStatusObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/content/ISyncStatusObserver$Stub$Proxy;->onStatusChanged(I)V
+HSPLandroid/content/ISyncStatusObserver$Stub;-><init>()V
+HSPLandroid/content/ISyncStatusObserver$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/content/ISyncStatusObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncStatusObserver;
+PLandroid/content/ISyncStatusObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/content/Intent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/Intent;
HSPLandroid/content/Intent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/Intent$1;->newArray(I)[Landroid/content/Intent;
+HSPLandroid/content/Intent$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/content/Intent$FilterComparison;-><init>(Landroid/content/Intent;)V
+HSPLandroid/content/Intent$FilterComparison;->equals(Ljava/lang/Object;)Z
+HSPLandroid/content/Intent$FilterComparison;->getIntent()Landroid/content/Intent;
+HSPLandroid/content/Intent$FilterComparison;->hashCode()I
HSPLandroid/content/Intent;-><init>()V
HSPLandroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
HSPLandroid/content/Intent;-><init>(Landroid/content/Intent;)V
@@ -2006,45 +6204,103 @@ HSPLandroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V
HSPLandroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;Landroid/content/Context;Ljava/lang/Class;)V
HSPLandroid/content/Intent;->addCategory(Ljava/lang/String;)Landroid/content/Intent;
HSPLandroid/content/Intent;->addFlags(I)Landroid/content/Intent;
+HSPLandroid/content/Intent;->canStripForHistory()Z
+HSPLandroid/content/Intent;->clone()Ljava/lang/Object;
+HSPLandroid/content/Intent;->cloneFilter()Landroid/content/Intent;
+HSPLandroid/content/Intent;->createChooser(Landroid/content/Intent;Ljava/lang/CharSequence;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->createChooser(Landroid/content/Intent;Ljava/lang/CharSequence;Landroid/content/IntentSender;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->describeContents()I
+HSPLandroid/content/Intent;->dockStateToString(I)Ljava/lang/String;
+HPLandroid/content/Intent;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
+PLandroid/content/Intent;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLandroid/content/Intent;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JZZZZ)V
+HPLandroid/content/Intent;->dumpDebugWithoutFieldId(Landroid/util/proto/ProtoOutputStream;ZZZZ)V
+HPLandroid/content/Intent;->fillIn(Landroid/content/Intent;I)I
+HSPLandroid/content/Intent;->filterEquals(Landroid/content/Intent;)Z
+HSPLandroid/content/Intent;->filterHashCode()I
HSPLandroid/content/Intent;->getAction()Ljava/lang/String;
HSPLandroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z
+HSPLandroid/content/Intent;->getBundleExtra(Ljava/lang/String;)Landroid/os/Bundle;
HSPLandroid/content/Intent;->getByteArrayExtra(Ljava/lang/String;)[B
HSPLandroid/content/Intent;->getCategories()Ljava/util/Set;
HSPLandroid/content/Intent;->getClipData()Landroid/content/ClipData;
HSPLandroid/content/Intent;->getComponent()Landroid/content/ComponentName;
+PLandroid/content/Intent;->getContentUserHint()I
HSPLandroid/content/Intent;->getData()Landroid/net/Uri;
+PLandroid/content/Intent;->getDataString()Ljava/lang/String;
HSPLandroid/content/Intent;->getExtras()Landroid/os/Bundle;
HSPLandroid/content/Intent;->getFlags()I
+HSPLandroid/content/Intent;->getIntArrayExtra(Ljava/lang/String;)[I
HSPLandroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
+HPLandroid/content/Intent;->getIntegerArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;
+PLandroid/content/Intent;->getLaunchToken()Ljava/lang/String;
HSPLandroid/content/Intent;->getLongExtra(Ljava/lang/String;J)J
HSPLandroid/content/Intent;->getPackage()Ljava/lang/String;
+HSPLandroid/content/Intent;->getParcelableArrayExtra(Ljava/lang/String;)[Landroid/os/Parcelable;
+HSPLandroid/content/Intent;->getParcelableArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;
HSPLandroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable;
HSPLandroid/content/Intent;->getScheme()Ljava/lang/String;
+HSPLandroid/content/Intent;->getSelector()Landroid/content/Intent;
HSPLandroid/content/Intent;->getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;
+PLandroid/content/Intent;->getSourceBounds()Landroid/graphics/Rect;
+HSPLandroid/content/Intent;->getStringArrayExtra(Ljava/lang/String;)[Ljava/lang/String;
HSPLandroid/content/Intent;->getStringArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;
HSPLandroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/content/Intent;->getType()Ljava/lang/String;
+PLandroid/content/Intent;->hasCategory(Ljava/lang/String;)Z
HSPLandroid/content/Intent;->hasExtra(Ljava/lang/String;)Z
+HSPLandroid/content/Intent;->hasFileDescriptors()Z
+HSPLandroid/content/Intent;->hasPackageEquivalentComponent()Z
+HSPLandroid/content/Intent;->hasWebURI()Z
+PLandroid/content/Intent;->isAccessUriMode(I)Z
+PLandroid/content/Intent;->isDocument()Z
+HSPLandroid/content/Intent;->isExcludingStopped()Z
+HSPLandroid/content/Intent;->isWebIntent()Z
+HSPLandroid/content/Intent;->makeMainActivity(Landroid/content/ComponentName;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->makeMainSelectorActivity(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
+PLandroid/content/Intent;->makeRestartActivityTask(Landroid/content/ComponentName;)Landroid/content/Intent;
+HPLandroid/content/Intent;->maybeStripForHistory()Landroid/content/Intent;
HSPLandroid/content/Intent;->migrateExtraStreamToClipData()Z
+HSPLandroid/content/Intent;->normalizeMimeType(Ljava/lang/String;)Ljava/lang/String;
+PLandroid/content/Intent;->parseCommandArgs(Landroid/os/ShellCommand;Landroid/content/Intent$CommandOptionHandler;)Landroid/content/Intent;
+PLandroid/content/Intent;->parseIntent(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/content/Intent;
HSPLandroid/content/Intent;->parseUri(Ljava/lang/String;I)Landroid/content/Intent;
HSPLandroid/content/Intent;->prepareToEnterProcess()V
HSPLandroid/content/Intent;->prepareToLeaveProcess(Landroid/content/Context;)V
HSPLandroid/content/Intent;->prepareToLeaveProcess(Z)V
+HPLandroid/content/Intent;->putCharSequenceArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;
+HPLandroid/content/Intent;->putExtra(Ljava/lang/String;B)Landroid/content/Intent;
HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent;
HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/Intent;
HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/CharSequence;)Landroid/content/Intent;
HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;
HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[B)Landroid/content/Intent;
+HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[I)Landroid/content/Intent;
HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[J)Landroid/content/Intent;
+HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[Landroid/os/Parcelable;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->putExtra(Ljava/lang/String;[Ljava/lang/String;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->putExtras(Landroid/content/Intent;)Landroid/content/Intent;
HSPLandroid/content/Intent;->putExtras(Landroid/os/Bundle;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->putIntegerArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->putParcelableArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;
HSPLandroid/content/Intent;->putStringArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;
HSPLandroid/content/Intent;->readFromParcel(Landroid/os/Parcel;)V
+PLandroid/content/Intent;->removeCategory(Ljava/lang/String;)V
+HSPLandroid/content/Intent;->removeExtra(Ljava/lang/String;)V
+PLandroid/content/Intent;->removeFlags(I)V
+HPLandroid/content/Intent;->replaceExtras(Landroid/content/Intent;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->replaceExtras(Landroid/os/Bundle;)Landroid/content/Intent;
HSPLandroid/content/Intent;->resolveActivity(Landroid/content/pm/PackageManager;)Landroid/content/ComponentName;
+HSPLandroid/content/Intent;->resolveActivityInfo(Landroid/content/pm/PackageManager;I)Landroid/content/pm/ActivityInfo;
HSPLandroid/content/Intent;->resolveSystemService(Landroid/content/pm/PackageManager;I)Landroid/content/ComponentName;
HSPLandroid/content/Intent;->resolveType(Landroid/content/ContentResolver;)Ljava/lang/String;
HSPLandroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
+PLandroid/content/Intent;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/content/Intent;
+PLandroid/content/Intent;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
HSPLandroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
HSPLandroid/content/Intent;->setAllowFds(Z)V
HSPLandroid/content/Intent;->setClass(Landroid/content/Context;Ljava/lang/Class;)Landroid/content/Intent;
@@ -2056,9 +6312,15 @@ HSPLandroid/content/Intent;->setDataAndType(Landroid/net/Uri;Ljava/lang/String;)
HSPLandroid/content/Intent;->setDefusable(Z)V
HSPLandroid/content/Intent;->setExtrasClassLoader(Ljava/lang/ClassLoader;)V
HSPLandroid/content/Intent;->setFlags(I)Landroid/content/Intent;
+PLandroid/content/Intent;->setIdentifier(Ljava/lang/String;)Landroid/content/Intent;
+PLandroid/content/Intent;->setLaunchToken(Ljava/lang/String;)V
HSPLandroid/content/Intent;->setPackage(Ljava/lang/String;)Landroid/content/Intent;
+HSPLandroid/content/Intent;->setSelector(Landroid/content/Intent;)V
+PLandroid/content/Intent;->setSourceBounds(Landroid/graphics/Rect;)V
HSPLandroid/content/Intent;->setType(Ljava/lang/String;)Landroid/content/Intent;
+PLandroid/content/Intent;->toInsecureString()Ljava/lang/String;
HSPLandroid/content/Intent;->toShortString(Ljava/lang/StringBuilder;ZZZZ)V
+HSPLandroid/content/Intent;->toShortString(ZZZZ)Ljava/lang/String;
HSPLandroid/content/Intent;->toString()Ljava/lang/String;
HSPLandroid/content/Intent;->toUri(I)Ljava/lang/String;
HSPLandroid/content/Intent;->toUriFragment(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
@@ -2066,200 +6328,901 @@ HSPLandroid/content/Intent;->toUriInner(Ljava/lang/StringBuilder;Ljava/lang/Stri
HSPLandroid/content/Intent;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/IntentFilter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/IntentFilter;
HSPLandroid/content/IntentFilter$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/IntentFilter$AuthorityEntry;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/IntentFilter$AuthorityEntry;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/content/IntentFilter$AuthorityEntry;->access$000(Landroid/content/IntentFilter$AuthorityEntry;)Ljava/lang/String;
+PLandroid/content/IntentFilter$AuthorityEntry;->access$100(Landroid/content/IntentFilter$AuthorityEntry;)I
+PLandroid/content/IntentFilter$AuthorityEntry;->access$200(Landroid/content/IntentFilter$AuthorityEntry;)Z
+PLandroid/content/IntentFilter$AuthorityEntry;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/content/IntentFilter$AuthorityEntry;->equals(Ljava/lang/Object;)Z
+HSPLandroid/content/IntentFilter$AuthorityEntry;->getHost()Ljava/lang/String;
+HSPLandroid/content/IntentFilter$AuthorityEntry;->getPort()I
+HSPLandroid/content/IntentFilter$AuthorityEntry;->match(Landroid/content/IntentFilter$AuthorityEntry;)Z
+HPLandroid/content/IntentFilter$AuthorityEntry;->match(Landroid/net/Uri;)I
+HSPLandroid/content/IntentFilter$AuthorityEntry;->writeToParcel(Landroid/os/Parcel;)V
HSPLandroid/content/IntentFilter;-><init>()V
+HSPLandroid/content/IntentFilter;-><init>(Landroid/content/IntentFilter;)V
HSPLandroid/content/IntentFilter;-><init>(Landroid/os/Parcel;)V
HSPLandroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
+HSPLandroid/content/IntentFilter;->actionsIterator()Ljava/util/Iterator;
HSPLandroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
HSPLandroid/content/IntentFilter;->addCategory(Ljava/lang/String;)V
+HSPLandroid/content/IntentFilter;->addDataAuthority(Landroid/content/IntentFilter$AuthorityEntry;)V
+HSPLandroid/content/IntentFilter;->addDataAuthority(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/IntentFilter;->addDataPath(Landroid/os/PatternMatcher;)V
HSPLandroid/content/IntentFilter;->addDataPath(Ljava/lang/String;I)V
HSPLandroid/content/IntentFilter;->addDataScheme(Ljava/lang/String;)V
HSPLandroid/content/IntentFilter;->addDataSchemeSpecificPart(Landroid/os/PatternMatcher;)V
HSPLandroid/content/IntentFilter;->addDataSchemeSpecificPart(Ljava/lang/String;I)V
HSPLandroid/content/IntentFilter;->addDataType(Ljava/lang/String;)V
+HSPLandroid/content/IntentFilter;->authoritiesIterator()Ljava/util/Iterator;
+HSPLandroid/content/IntentFilter;->categoriesIterator()Ljava/util/Iterator;
HSPLandroid/content/IntentFilter;->countActions()I
+HSPLandroid/content/IntentFilter;->countCategories()I
+HSPLandroid/content/IntentFilter;->countDataAuthorities()I
+HSPLandroid/content/IntentFilter;->countDataPaths()I
+HSPLandroid/content/IntentFilter;->countDataSchemeSpecificParts()I
+HSPLandroid/content/IntentFilter;->countDataSchemes()I
+HSPLandroid/content/IntentFilter;->countDataTypes()I
+HSPLandroid/content/IntentFilter;->debugCheck()Z
+PLandroid/content/IntentFilter;->dump(Landroid/util/Printer;Ljava/lang/String;)V
+HPLandroid/content/IntentFilter;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/content/IntentFilter;->findMimeType(Ljava/lang/String;)Z
HSPLandroid/content/IntentFilter;->getAction(I)Ljava/lang/String;
HSPLandroid/content/IntentFilter;->getAutoVerify()Z
+HSPLandroid/content/IntentFilter;->getCategory(I)Ljava/lang/String;
+HSPLandroid/content/IntentFilter;->getDataAuthority(I)Landroid/content/IntentFilter$AuthorityEntry;
+HSPLandroid/content/IntentFilter;->getDataPath(I)Landroid/os/PatternMatcher;
+HSPLandroid/content/IntentFilter;->getDataScheme(I)Ljava/lang/String;
+HSPLandroid/content/IntentFilter;->getDataType(I)Ljava/lang/String;
+HPLandroid/content/IntentFilter;->getHostsList()Ljava/util/ArrayList;
+HSPLandroid/content/IntentFilter;->getOrder()I
HSPLandroid/content/IntentFilter;->getPriority()I
+HSPLandroid/content/IntentFilter;->handleAllWebDataURI()Z
+HSPLandroid/content/IntentFilter;->handlesWebUris(Z)Z
HSPLandroid/content/IntentFilter;->hasAction(Ljava/lang/String;)Z
HSPLandroid/content/IntentFilter;->hasCategory(Ljava/lang/String;)Z
+HSPLandroid/content/IntentFilter;->hasDataAuthority(Landroid/content/IntentFilter$AuthorityEntry;)Z
+HSPLandroid/content/IntentFilter;->hasDataPath(Landroid/os/PatternMatcher;)Z
+HPLandroid/content/IntentFilter;->hasDataPath(Ljava/lang/String;)Z
+HSPLandroid/content/IntentFilter;->hasDataScheme(Ljava/lang/String;)Z
+PLandroid/content/IntentFilter;->hasDataSchemeSpecificPart(Landroid/os/PatternMatcher;)Z
+HPLandroid/content/IntentFilter;->hasDataSchemeSpecificPart(Ljava/lang/String;)Z
+HSPLandroid/content/IntentFilter;->hasExactDataType(Ljava/lang/String;)Z
+HSPLandroid/content/IntentFilter;->isImplicitlyVisibleToInstantApp()Z
+HSPLandroid/content/IntentFilter;->isVisibleToInstantApp()Z
+HSPLandroid/content/IntentFilter;->match(Landroid/content/ContentResolver;Landroid/content/Intent;ZLjava/lang/String;)I
HSPLandroid/content/IntentFilter;->match(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/util/Set;Ljava/lang/String;)I
+HSPLandroid/content/IntentFilter;->matchAction(Ljava/lang/String;)Z
HSPLandroid/content/IntentFilter;->matchCategories(Ljava/util/Set;)Ljava/lang/String;
HSPLandroid/content/IntentFilter;->matchData(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)I
+HPLandroid/content/IntentFilter;->matchDataAuthority(Landroid/net/Uri;)I
+PLandroid/content/IntentFilter;->needsVerification()Z
+HSPLandroid/content/IntentFilter;->readFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLandroid/content/IntentFilter;->schemesIterator()Ljava/util/Iterator;
+HSPLandroid/content/IntentFilter;->setAutoVerify(Z)V
+HSPLandroid/content/IntentFilter;->setOrder(I)V
HSPLandroid/content/IntentFilter;->setPriority(I)V
+PLandroid/content/IntentFilter;->setVerified(Z)V
HSPLandroid/content/IntentFilter;->setVisibilityToInstantApp(I)V
+HSPLandroid/content/IntentFilter;->typesIterator()Ljava/util/Iterator;
HSPLandroid/content/IntentFilter;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/IntentFilter;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+PLandroid/content/IntentSender$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/IntentSender;
+PLandroid/content/IntentSender$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/content/IntentSender;-><init>(Landroid/content/IIntentSender;Landroid/os/IBinder;)V
+PLandroid/content/IntentSender;-><init>(Landroid/os/IBinder;)V
+PLandroid/content/IntentSender;->sendIntent(Landroid/content/Context;ILandroid/content/Intent;Landroid/content/IntentSender$OnFinished;Landroid/os/Handler;)V
+PLandroid/content/IntentSender;->sendIntent(Landroid/content/Context;ILandroid/content/Intent;Landroid/content/IntentSender$OnFinished;Landroid/os/Handler;Ljava/lang/String;)V
+HPLandroid/content/IntentSender;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/content/Loader$ForceLoadContentObserver;-><init>(Landroid/content/Loader;)V
+HPLandroid/content/Loader$ForceLoadContentObserver;->onChange(Z)V
+HPLandroid/content/Loader;-><init>(Landroid/content/Context;)V
+HPLandroid/content/Loader;->abandon()V
+HPLandroid/content/Loader;->cancelLoad()Z
+HPLandroid/content/Loader;->commitContentChanged()V
+HPLandroid/content/Loader;->deliverCancellation()V
+HPLandroid/content/Loader;->deliverResult(Ljava/lang/Object;)V
+HPLandroid/content/Loader;->forceLoad()V
+HPLandroid/content/Loader;->getContext()Landroid/content/Context;
+HPLandroid/content/Loader;->getId()I
+HPLandroid/content/Loader;->isAbandoned()Z
+HPLandroid/content/Loader;->isReset()Z
+HPLandroid/content/Loader;->isStarted()Z
+HPLandroid/content/Loader;->onAbandon()V
+HPLandroid/content/Loader;->onContentChanged()V
+HPLandroid/content/Loader;->onForceLoad()V
+HPLandroid/content/Loader;->registerListener(ILandroid/content/Loader$OnLoadCompleteListener;)V
+HPLandroid/content/Loader;->registerOnLoadCanceledListener(Landroid/content/Loader$OnLoadCanceledListener;)V
+HPLandroid/content/Loader;->rollbackContentChanged()V
+HPLandroid/content/Loader;->startLoading()V
+HPLandroid/content/Loader;->stopLoading()V
+HPLandroid/content/Loader;->takeContentChanged()Z
+HPLandroid/content/Loader;->unregisterListener(Landroid/content/Loader$OnLoadCompleteListener;)V
+HPLandroid/content/Loader;->unregisterOnLoadCanceledListener(Landroid/content/Loader$OnLoadCanceledListener;)V
+HSPLandroid/content/MutableContextWrapper;-><init>(Landroid/content/Context;)V
+HSPLandroid/content/MutableContextWrapper;->setBaseContext(Landroid/content/Context;)V
HSPLandroid/content/PeriodicSync$1;-><init>()V
+PLandroid/content/PeriodicSync$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/PeriodicSync;
+PLandroid/content/PeriodicSync$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/PeriodicSync;-><clinit>()V
+PLandroid/content/PeriodicSync;-><init>(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;JJ)V
+PLandroid/content/PeriodicSync;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/PeriodicSync;-><init>(Landroid/os/Parcel;Landroid/content/PeriodicSync$1;)V
+PLandroid/content/PeriodicSync;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/PermissionChecker;->checkPermissionCommon(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)I
+PLandroid/content/PermissionChecker;->checkPermissionForPreflight(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;)I
+HSPLandroid/content/RestrictionsManager;-><init>(Landroid/content/Context;Landroid/content/IRestrictionsManager;)V
+HSPLandroid/content/RestrictionsManager;->getApplicationRestrictions()Landroid/os/Bundle;
+HPLandroid/content/RestrictionsManager;->getManifestRestrictions(Ljava/lang/String;)Ljava/util/List;
+HPLandroid/content/RestrictionsManager;->loadManifestRestrictions(Ljava/lang/String;Landroid/content/res/XmlResourceParser;)Ljava/util/List;
+HPLandroid/content/RestrictionsManager;->loadRestriction(Landroid/content/Context;Landroid/content/res/TypedArray;Landroid/content/res/XmlResourceParser;)Landroid/content/RestrictionEntry;
+HPLandroid/content/RestrictionsManager;->loadRestrictionElement(Landroid/content/Context;Landroid/content/res/XmlResourceParser;)Landroid/content/RestrictionEntry;
HSPLandroid/content/SearchRecentSuggestionsProvider$DatabaseHelper;-><init>(Landroid/content/Context;I)V
HSPLandroid/content/SearchRecentSuggestionsProvider;-><init>()V
HSPLandroid/content/SearchRecentSuggestionsProvider;->onCreate()Z
HSPLandroid/content/SearchRecentSuggestionsProvider;->setupSuggestions(Ljava/lang/String;I)V
+PLandroid/content/ServiceConnection;->onBindingDied(Landroid/content/ComponentName;)V
+PLandroid/content/ServiceConnection;->onNullBinding(Landroid/content/ComponentName;)V
HSPLandroid/content/SyncAdapterType$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/SyncAdapterType;
HSPLandroid/content/SyncAdapterType$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/SyncAdapterType$1;->newArray(I)[Landroid/content/SyncAdapterType;
HSPLandroid/content/SyncAdapterType$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/content/SyncAdapterType;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/SyncAdapterType;-><init>(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/content/SyncAdapterType;-><init>(Ljava/lang/String;Ljava/lang/String;ZZZZLjava/lang/String;Ljava/lang/String;)V
+PLandroid/content/SyncAdapterType;->allowParallelSyncs()Z
+HPLandroid/content/SyncAdapterType;->equals(Ljava/lang/Object;)Z
+HSPLandroid/content/SyncAdapterType;->hashCode()I
+PLandroid/content/SyncAdapterType;->isAlwaysSyncable()Z
+PLandroid/content/SyncAdapterType;->isUserVisible()Z
+HSPLandroid/content/SyncAdapterType;->newKey(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SyncAdapterType;
+PLandroid/content/SyncAdapterType;->supportsUploading()Z
+HPLandroid/content/SyncAdapterType;->toString()Ljava/lang/String;
+HPLandroid/content/SyncAdapterType;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/SyncAdaptersCache$MySerializer;->createFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/content/SyncAdapterType;
+HSPLandroid/content/SyncAdaptersCache$MySerializer;->createFromXml(Lorg/xmlpull/v1/XmlPullParser;)Ljava/lang/Object;
+HSPLandroid/content/SyncAdaptersCache;-><init>(Landroid/content/Context;)V
+HSPLandroid/content/SyncAdaptersCache;->getSyncAdapterPackagesForAuthority(Ljava/lang/String;I)[Ljava/lang/String;
+PLandroid/content/SyncAdaptersCache;->onServicesChangedLocked(I)V
+HSPLandroid/content/SyncAdaptersCache;->parseServiceAttributes(Landroid/content/res/Resources;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/content/SyncAdapterType;
+HSPLandroid/content/SyncAdaptersCache;->parseServiceAttributes(Landroid/content/res/Resources;Ljava/lang/String;Landroid/util/AttributeSet;)Ljava/lang/Object;
HSPLandroid/content/SyncContext;->getSyncContextBinder()Landroid/os/IBinder;
HSPLandroid/content/SyncContext;->onFinished(Landroid/content/SyncResult;)V
+PLandroid/content/SyncInfo$1;-><init>()V
+PLandroid/content/SyncInfo;-><clinit>()V
+HPLandroid/content/SyncInfo;-><init>(ILandroid/accounts/Account;Ljava/lang/String;J)V
+PLandroid/content/SyncRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/SyncRequest;
+PLandroid/content/SyncRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/content/SyncRequest$Builder;-><init>()V
HSPLandroid/content/SyncRequest$Builder;->build()Landroid/content/SyncRequest;
+PLandroid/content/SyncRequest$Builder;->setDisallowMetered(Z)Landroid/content/SyncRequest$Builder;
HSPLandroid/content/SyncRequest$Builder;->setExtras(Landroid/os/Bundle;)Landroid/content/SyncRequest$Builder;
+PLandroid/content/SyncRequest$Builder;->setRequiresCharging(Z)Landroid/content/SyncRequest$Builder;
HSPLandroid/content/SyncRequest$Builder;->setSyncAdapter(Landroid/accounts/Account;Ljava/lang/String;)Landroid/content/SyncRequest$Builder;
HSPLandroid/content/SyncRequest$Builder;->syncOnce()Landroid/content/SyncRequest$Builder;
HSPLandroid/content/SyncRequest;-><init>(Landroid/content/SyncRequest$Builder;)V
+PLandroid/content/SyncRequest;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/SyncRequest;-><init>(Landroid/os/Parcel;Landroid/content/SyncRequest$1;)V
+PLandroid/content/SyncRequest;->getAccount()Landroid/accounts/Account;
+PLandroid/content/SyncRequest;->getBundle()Landroid/os/Bundle;
+PLandroid/content/SyncRequest;->getProvider()Ljava/lang/String;
+PLandroid/content/SyncRequest;->getSyncFlexTime()J
+PLandroid/content/SyncRequest;->getSyncRunTime()J
+PLandroid/content/SyncRequest;->isPeriodic()Z
HSPLandroid/content/SyncRequest;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/SyncResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/SyncResult;
+PLandroid/content/SyncResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/content/SyncResult;-><init>()V
+PLandroid/content/SyncResult;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/SyncResult;-><init>(Landroid/os/Parcel;Landroid/content/SyncResult$1;)V
HSPLandroid/content/SyncResult;->clear()V
HSPLandroid/content/SyncResult;->hasError()Z
HSPLandroid/content/SyncResult;->hasHardError()Z
+HSPLandroid/content/SyncResult;->hasSoftError()Z
+PLandroid/content/SyncResult;->madeSomeProgress()Z
+PLandroid/content/SyncResult;->toString()Ljava/lang/String;
HSPLandroid/content/SyncResult;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/SyncStats;-><init>(Landroid/os/Parcel;)V
HSPLandroid/content/SyncStats;->clear()V
-PLandroid/content/SyncStats;->toString()Ljava/lang/String;
+HSPLandroid/content/SyncStats;->toString()Ljava/lang/String;
HSPLandroid/content/SyncStats;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/SyncStatusInfo$Stats;-><init>()V
+PLandroid/content/SyncStatusInfo$Stats;->clear()V
+PLandroid/content/SyncStatusInfo$Stats;->copyTo(Landroid/content/SyncStatusInfo$Stats;)V
+HSPLandroid/content/SyncStatusInfo;-><init>(I)V
+PLandroid/content/SyncStatusInfo;-><init>(Landroid/content/SyncStatusInfo;)V
+PLandroid/content/SyncStatusInfo;->addEvent(Ljava/lang/String;)V
+PLandroid/content/SyncStatusInfo;->areSameDates(JJ)Z
+PLandroid/content/SyncStatusInfo;->copy([J[J)V
+PLandroid/content/SyncStatusInfo;->copyFrom(Landroid/content/SyncStatusInfo;)V
+HPLandroid/content/SyncStatusInfo;->getEvent(I)Ljava/lang/String;
+HPLandroid/content/SyncStatusInfo;->getEventCount()I
+HPLandroid/content/SyncStatusInfo;->getEventTime(I)J
+PLandroid/content/SyncStatusInfo;->getPeriodicSyncTimesSize()I
+PLandroid/content/SyncStatusInfo;->maybeResetTodayStats(ZZ)V
+HSPLandroid/content/SyncStatusInfo;->populateLastEventsInformation(Ljava/util/ArrayList;)V
+PLandroid/content/SyncStatusInfo;->setLastFailure(IJLjava/lang/String;)V
+PLandroid/content/SyncStatusInfo;->setLastSuccess(IJ)V
+HPLandroid/content/UndoManager$UndoState;->addOperation(Landroid/content/UndoOperation;)V
+HPLandroid/content/UndoManager$UndoState;->destroy()V
+HPLandroid/content/UndoManager$UndoState;->getLastOperation(Ljava/lang/Class;Landroid/content/UndoOwner;)Landroid/content/UndoOperation;
+HPLandroid/content/UndoManager$UndoState;->writeToParcel(Landroid/os/Parcel;)V
+HPLandroid/content/UndoManager;->addOperation(Landroid/content/UndoOperation;I)V
+HPLandroid/content/UndoManager;->beginUpdate(Ljava/lang/CharSequence;)V
+HPLandroid/content/UndoManager;->endUpdate()V
HSPLandroid/content/UndoManager;->forgetRedos([Landroid/content/UndoOwner;I)I
HSPLandroid/content/UndoManager;->forgetUndos([Landroid/content/UndoOwner;I)I
+HPLandroid/content/UndoManager;->getLastOperation(Ljava/lang/Class;Landroid/content/UndoOwner;I)Landroid/content/UndoOperation;
HSPLandroid/content/UndoManager;->getOwner(Ljava/lang/String;Ljava/lang/Object;)Landroid/content/UndoOwner;
+HPLandroid/content/UndoManager;->getTopUndo([Landroid/content/UndoOwner;)Landroid/content/UndoManager$UndoState;
+HPLandroid/content/UndoManager;->isInUndo()Z
+HPLandroid/content/UndoManager;->matchOwners(Landroid/content/UndoManager$UndoState;[Landroid/content/UndoOwner;)Z
+HPLandroid/content/UndoManager;->pushWorkingState()V
+HPLandroid/content/UndoManager;->removeOwner(Landroid/content/UndoOwner;)V
+HSPLandroid/content/UndoManager;->restoreInstanceState(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
+HSPLandroid/content/UndoManager;->saveInstanceState(Landroid/os/Parcel;)V
+HPLandroid/content/UndoManager;->saveOwner(Landroid/content/UndoOwner;Landroid/os/Parcel;)V
+HPLandroid/content/UndoOperation;->getOwner()Landroid/content/UndoOwner;
+HPLandroid/content/UndoOperation;->hasData()Z
+HPLandroid/content/UndoOperation;->matchOwner(Landroid/content/UndoOwner;)Z
HSPLandroid/content/UriMatcher;-><init>(I)V
HSPLandroid/content/UriMatcher;-><init>(ILjava/lang/String;)V
HSPLandroid/content/UriMatcher;->addURI(Ljava/lang/String;Ljava/lang/String;I)V
HSPLandroid/content/UriMatcher;->createChild(Ljava/lang/String;)Landroid/content/UriMatcher;
HSPLandroid/content/UriMatcher;->match(Landroid/net/Uri;)I
+PLandroid/content/UriPermission$1;-><init>()V
+PLandroid/content/UriPermission;-><clinit>()V
+PLandroid/content/UriPermission;-><init>(Landroid/net/Uri;IJ)V
+PLandroid/content/UriPermission;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/om/IOverlayManager$Stub$Proxy;->getOverlayInfosForTarget(Ljava/lang/String;I)Ljava/util/List;
+HSPLandroid/content/om/IOverlayManager$Stub;-><init>()V
HSPLandroid/content/om/IOverlayManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/om/IOverlayManager;
+HPLandroid/content/om/IOverlayManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/om/OverlayInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/om/OverlayInfo;
+HSPLandroid/content/om/OverlayInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/om/OverlayInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/om/OverlayInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIZ)V
HSPLandroid/content/om/OverlayInfo;->ensureValidState()V
+HSPLandroid/content/om/OverlayInfo;->isEnabled()Z
+PLandroid/content/om/OverlayInfo;->stateToString(I)Ljava/lang/String;
+HPLandroid/content/om/OverlayInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/pm/-$$Lambda$B12dZLpdwpXn89QSesmkaZjD72Q;-><clinit>()V
+PLandroid/content/pm/-$$Lambda$B12dZLpdwpXn89QSesmkaZjD72Q;-><init>()V
+PLandroid/content/pm/-$$Lambda$B12dZLpdwpXn89QSesmkaZjD72Q;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLandroid/content/pm/-$$Lambda$T1UQAuePWRRmVQ1KzTyMAktZUPM;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLandroid/content/pm/-$$Lambda$ciir_QAmv6RwJro4I58t77dPnxU;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLandroid/content/pm/-$$Lambda$hUJwdX9IqTlLwBds2BUGqVf-FM8;-><clinit>()V
+HSPLandroid/content/pm/-$$Lambda$hUJwdX9IqTlLwBds2BUGqVf-FM8;-><init>()V
+HSPLandroid/content/pm/-$$Lambda$hUJwdX9IqTlLwBds2BUGqVf-FM8;->get()Ljava/lang/Object;
PLandroid/content/pm/-$$Lambda$n3uXeb1v-YRmq_BWTfosEqUUr9g;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLandroid/content/pm/-$$Lambda$zO9HBUVgPeroyDQPLJE-MNMvSqc;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
HSPLandroid/content/pm/ActivityInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ActivityInfo;
HSPLandroid/content/pm/ActivityInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/pm/ActivityInfo$1;->newArray(I)[Landroid/content/pm/ActivityInfo;
HSPLandroid/content/pm/ActivityInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/content/pm/ActivityInfo$WindowLayout;-><init>(IFIFIII)V
HSPLandroid/content/pm/ActivityInfo$WindowLayout;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/ActivityInfo;-><init>()V
+PLandroid/content/pm/ActivityInfo;-><init>(Landroid/content/pm/ActivityInfo;)V
HSPLandroid/content/pm/ActivityInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/content/pm/ActivityInfo;->activityInfoConfigNativeToJava(I)I
+PLandroid/content/pm/ActivityInfo;->dump(Landroid/util/Printer;Ljava/lang/String;I)V
+PLandroid/content/pm/ActivityInfo;->getRealConfigChanged()I
+HSPLandroid/content/pm/ActivityInfo;->getThemeResource()I
+PLandroid/content/pm/ActivityInfo;->hasFixedAspectRatio()Z
+PLandroid/content/pm/ActivityInfo;->isFixedOrientation()Z
+PLandroid/content/pm/ActivityInfo;->isFixedOrientationLandscape()Z
+PLandroid/content/pm/ActivityInfo;->isFixedOrientationLandscape(I)Z
+PLandroid/content/pm/ActivityInfo;->isFixedOrientationPortrait()Z
+PLandroid/content/pm/ActivityInfo;->isFixedOrientationPortrait(I)Z
+PLandroid/content/pm/ActivityInfo;->isPreserveOrientationMode(I)Z
+PLandroid/content/pm/ActivityInfo;->isResizeableMode(I)Z
+PLandroid/content/pm/ActivityInfo;->isTranslucentOrFloating(Landroid/content/res/TypedArray;)Z
+PLandroid/content/pm/ActivityInfo;->resizeModeToString(I)Ljava/lang/String;
+HSPLandroid/content/pm/ActivityInfo;->screenOrientationToString(I)Ljava/lang/String;
+PLandroid/content/pm/ActivityInfo;->supportsPictureInPicture()Z
+HSPLandroid/content/pm/ActivityInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/pm/ActivityPresentationInfo;-><init>(IILandroid/content/ComponentName;)V
HSPLandroid/content/pm/ApplicationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ApplicationInfo;
HSPLandroid/content/pm/ApplicationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/pm/ApplicationInfo;-><init>()V
HSPLandroid/content/pm/ApplicationInfo;-><init>(Landroid/content/pm/ApplicationInfo;)V
HSPLandroid/content/pm/ApplicationInfo;-><init>(Landroid/os/Parcel;)V
+HPLandroid/content/pm/ApplicationInfo;->dump(Landroid/util/Printer;Ljava/lang/String;I)V
HSPLandroid/content/pm/ApplicationInfo;->getAllApkPaths()[Ljava/lang/String;
HSPLandroid/content/pm/ApplicationInfo;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
HSPLandroid/content/pm/ApplicationInfo;->getBaseCodePath()Ljava/lang/String;
+HSPLandroid/content/pm/ApplicationInfo;->getBaseResourcePath()Ljava/lang/String;
HSPLandroid/content/pm/ApplicationInfo;->getCodePath()Ljava/lang/String;
+HSPLandroid/content/pm/ApplicationInfo;->getHiddenApiEnforcementPolicy()I
+PLandroid/content/pm/ApplicationInfo;->getSplitCodePaths()[Ljava/lang/String;
+HSPLandroid/content/pm/ApplicationInfo;->hasRequestedLegacyExternalStorage()Z
HSPLandroid/content/pm/ApplicationInfo;->hasRtlSupport()Z
HSPLandroid/content/pm/ApplicationInfo;->initForUser(I)V
+HSPLandroid/content/pm/ApplicationInfo;->isAllowedToUseHiddenApis()Z
+PLandroid/content/pm/ApplicationInfo;->isAudioPlaybackCaptureAllowed()Z
+PLandroid/content/pm/ApplicationInfo;->isDirectBootAware()Z
+HSPLandroid/content/pm/ApplicationInfo;->isEmbeddedDexUsed()Z
+PLandroid/content/pm/ApplicationInfo;->isEncryptionAware()Z
HSPLandroid/content/pm/ApplicationInfo;->isInstantApp()Z
+HSPLandroid/content/pm/ApplicationInfo;->isOem()Z
+HSPLandroid/content/pm/ApplicationInfo;->isPackageWhitelistedForHiddenApis()Z
+HSPLandroid/content/pm/ApplicationInfo;->isPrivilegedApp()Z
HSPLandroid/content/pm/ApplicationInfo;->isProduct()Z
HSPLandroid/content/pm/ApplicationInfo;->isProfileableByShell()Z
+HSPLandroid/content/pm/ApplicationInfo;->isSignedWithPlatformKey()Z
+HSPLandroid/content/pm/ApplicationInfo;->isStaticSharedLibrary()Z
HSPLandroid/content/pm/ApplicationInfo;->isSystemApp()Z
HSPLandroid/content/pm/ApplicationInfo;->isUpdatedSystemApp()Z
+HSPLandroid/content/pm/ApplicationInfo;->isValidHiddenApiEnforcementPolicy(I)Z
HSPLandroid/content/pm/ApplicationInfo;->isVendor()Z
+HSPLandroid/content/pm/ApplicationInfo;->isVirtualPreload()Z
+HPLandroid/content/pm/ApplicationInfo;->loadDefaultIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/content/pm/ApplicationInfo;->maybeUpdateHiddenApiEnforcementPolicy(I)V
HSPLandroid/content/pm/ApplicationInfo;->requestsIsolatedSplitLoading()Z
+HSPLandroid/content/pm/ApplicationInfo;->setBaseCodePath(Ljava/lang/String;)V
+HSPLandroid/content/pm/ApplicationInfo;->setBaseResourcePath(Ljava/lang/String;)V
+HSPLandroid/content/pm/ApplicationInfo;->setCodePath(Ljava/lang/String;)V
+HSPLandroid/content/pm/ApplicationInfo;->setHiddenApiEnforcementPolicy(I)V
+HSPLandroid/content/pm/ApplicationInfo;->setResourcePath(Ljava/lang/String;)V
+HSPLandroid/content/pm/ApplicationInfo;->setSplitCodePaths([Ljava/lang/String;)V
+HSPLandroid/content/pm/ApplicationInfo;->setSplitResourcePaths([Ljava/lang/String;)V
HSPLandroid/content/pm/ApplicationInfo;->setVersionCode(J)V
+HPLandroid/content/pm/ApplicationInfo;->toString()Ljava/lang/String;
HSPLandroid/content/pm/ApplicationInfo;->usesCompatibilityMode()Z
+HSPLandroid/content/pm/ApplicationInfo;->usesNonSdkApi()Z
HSPLandroid/content/pm/ApplicationInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;-><init>(Landroid/content/IntentFilter;Landroid/content/pm/InstantAppResolveInfo;Ljava/lang/String;Landroid/os/Bundle;)V
+PLandroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;->toString()Ljava/lang/String;
+PLandroid/content/pm/AuxiliaryResolveInfo;-><init>(Ljava/lang/String;ZLandroid/content/Intent;Ljava/util/List;)V
+PLandroid/content/pm/BaseParceledListSlice$1;-><init>(Landroid/content/pm/BaseParceledListSlice;ILjava/lang/Class;I)V
+HPLandroid/content/pm/BaseParceledListSlice$1;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/content/pm/BaseParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
+HSPLandroid/content/pm/BaseParceledListSlice;-><init>(Ljava/util/List;)V
+PLandroid/content/pm/BaseParceledListSlice;->access$000()Z
+PLandroid/content/pm/BaseParceledListSlice;->access$200(Landroid/content/pm/BaseParceledListSlice;)Ljava/util/List;
+PLandroid/content/pm/BaseParceledListSlice;->access$300(Ljava/lang/Class;Ljava/lang/Class;)V
+HSPLandroid/content/pm/BaseParceledListSlice;->getList()Ljava/util/List;
HSPLandroid/content/pm/BaseParceledListSlice;->readCreator(Landroid/os/Parcelable$Creator;Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object;
+HSPLandroid/content/pm/BaseParceledListSlice;->setInlineCountLimit(I)V
HSPLandroid/content/pm/BaseParceledListSlice;->verifySameType(Ljava/lang/Class;Ljava/lang/Class;)V
HSPLandroid/content/pm/BaseParceledListSlice;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/ChangedPackages$1;-><init>()V
+HSPLandroid/content/pm/ChangedPackages$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ChangedPackages;
+HSPLandroid/content/pm/ChangedPackages$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/ChangedPackages;-><clinit>()V
+PLandroid/content/pm/ChangedPackages;-><init>(ILjava/util/List;)V
+HSPLandroid/content/pm/ChangedPackages;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/ChangedPackages;->getPackageNames()Ljava/util/List;
+HSPLandroid/content/pm/ChangedPackages;->getSequenceNumber()I
+PLandroid/content/pm/ChangedPackages;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/pm/ComponentInfo;-><init>()V
+HPLandroid/content/pm/ComponentInfo;-><init>(Landroid/content/pm/ComponentInfo;)V
HSPLandroid/content/pm/ComponentInfo;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/pm/ComponentInfo;->dumpBack(Landroid/util/Printer;Ljava/lang/String;I)V
+HPLandroid/content/pm/ComponentInfo;->dumpFront(Landroid/util/Printer;Ljava/lang/String;)V
HSPLandroid/content/pm/ComponentInfo;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
HSPLandroid/content/pm/ComponentInfo;->getComponentName()Landroid/content/ComponentName;
HSPLandroid/content/pm/ComponentInfo;->getIconResource()I
+PLandroid/content/pm/ComponentInfo;->getLogoResource()I
HSPLandroid/content/pm/ComponentInfo;->isEnabled()Z
HSPLandroid/content/pm/ComponentInfo;->loadUnsafeLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
HSPLandroid/content/pm/ComponentInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/pm/ConfigurationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ConfigurationInfo;
HSPLandroid/content/pm/ConfigurationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/ConfigurationInfo;-><init>()V
HSPLandroid/content/pm/ConfigurationInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/ConfigurationInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ConfigurationInfo$1;)V
+HSPLandroid/content/pm/ConfigurationInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/CrossProfileApps;-><init>(Landroid/content/Context;Landroid/content/pm/ICrossProfileApps;)V
+HSPLandroid/content/pm/FallbackCategoryProvider;->getFallbackCategory(Ljava/lang/String;)I
+HSPLandroid/content/pm/FallbackCategoryProvider;->loadFallbacks()V
+HSPLandroid/content/pm/FeatureInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/FeatureInfo;
+HSPLandroid/content/pm/FeatureInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/FeatureInfo;-><init>()V
+HPLandroid/content/pm/FeatureInfo;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLandroid/content/pm/FeatureInfo;->getGlEsVersion()Ljava/lang/String;
+HSPLandroid/content/pm/FeatureInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/ICrossProfileApps$Stub;-><init>()V
+HSPLandroid/content/pm/ICrossProfileApps$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/ICrossProfileApps;
+PLandroid/content/pm/ICrossProfileApps$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/pm/IDataLoaderManager$Stub;-><init>()V
+PLandroid/content/pm/IDataLoaderManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->addOnAppsChangedListener(Ljava/lang/String;Landroid/content/pm/IOnAppsChangedListener;)V
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->getAllSessions(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+HPLandroid/content/pm/ILauncherApps$Stub$Proxy;->getAppUsageLimit(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/LauncherApps$AppUsageLimit;
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->getApplicationInfo(Ljava/lang/String;Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo;
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->getLauncherActivities(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->getShortcutConfigActivities(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+HPLandroid/content/pm/ILauncherApps$Stub$Proxy;->getShortcutIconFd(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->getShortcuts(Ljava/lang/String;JLjava/lang/String;Ljava/util/List;Landroid/content/ComponentName;ILandroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->hasShortcutHostPermission(Ljava/lang/String;)Z
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->isActivityEnabled(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Z
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->isPackageEnabled(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Z
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->registerPackageInstallerCallback(Ljava/lang/String;Landroid/content/pm/IPackageInstallerCallback;)V
+HSPLandroid/content/pm/ILauncherApps$Stub$Proxy;->resolveActivity(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Landroid/content/pm/ActivityInfo;
+HPLandroid/content/pm/ILauncherApps$Stub$Proxy;->shouldHideFromSuggestions(Ljava/lang/String;Landroid/os/UserHandle;)Z
+HPLandroid/content/pm/ILauncherApps$Stub$Proxy;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V
+HSPLandroid/content/pm/ILauncherApps$Stub;-><init>()V
+HSPLandroid/content/pm/ILauncherApps$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/ILauncherApps;
+PLandroid/content/pm/ILauncherApps$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/content/pm/ILauncherApps$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/pm/IOnAppsChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onPackageAdded(Landroid/os/UserHandle;Ljava/lang/String;)V
+PLandroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onPackageChanged(Landroid/os/UserHandle;Ljava/lang/String;)V
+PLandroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onPackagesUnsuspended(Landroid/os/UserHandle;[Ljava/lang/String;)V
+PLandroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onShortcutChanged(Landroid/os/UserHandle;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
+HSPLandroid/content/pm/IOnAppsChangedListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/content/pm/IOnAppsChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IOnAppsChangedListener;
+HPLandroid/content/pm/IOnAppsChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/pm/IOtaDexopt$Stub;-><init>()V
+PLandroid/content/pm/IOtaDexopt$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/content/pm/IOtaDexopt$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/pm/IPackageDataObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/content/pm/IPackageDataObserver$Stub$Proxy;->onRemoveCompleted(Ljava/lang/String;Z)V
+HPLandroid/content/pm/IPackageDataObserver$Stub;-><init>()V
+HPLandroid/content/pm/IPackageDataObserver$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/content/pm/IPackageDataObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageDataObserver;
+HPLandroid/content/pm/IPackageDataObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/pm/IPackageInstallObserver2$Stub;-><init>()V
+HPLandroid/content/pm/IPackageInstaller$Stub$Proxy;->abandonSession(I)V
+HPLandroid/content/pm/IPackageInstaller$Stub$Proxy;->createSession(Landroid/content/pm/PackageInstaller$SessionParams;Ljava/lang/String;I)I
+HPLandroid/content/pm/IPackageInstaller$Stub$Proxy;->getAllSessions(I)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/IPackageInstaller$Stub$Proxy;->getMySessions(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+HPLandroid/content/pm/IPackageInstaller$Stub$Proxy;->getSessionInfo(I)Landroid/content/pm/PackageInstaller$SessionInfo;
+HSPLandroid/content/pm/IPackageInstaller$Stub$Proxy;->getStagedSessions()Landroid/content/pm/ParceledListSlice;
+HPLandroid/content/pm/IPackageInstaller$Stub$Proxy;->openSession(I)Landroid/content/pm/IPackageInstallerSession;
+PLandroid/content/pm/IPackageInstaller$Stub$Proxy;->registerCallback(Landroid/content/pm/IPackageInstallerCallback;I)V
+HSPLandroid/content/pm/IPackageInstaller$Stub;-><init>()V
+PLandroid/content/pm/IPackageInstaller$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/content/pm/IPackageInstaller$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/pm/IPackageInstallerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionActiveChanged(IZ)V
+HPLandroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionBadgingChanged(I)V
+PLandroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionCreated(I)V
+PLandroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionFinished(IZ)V
+PLandroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionProgressChanged(IF)V
+HSPLandroid/content/pm/IPackageInstallerCallback$Stub;-><init>()V
HSPLandroid/content/pm/IPackageInstallerCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/content/pm/IPackageInstallerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageInstallerCallback;
+HPLandroid/content/pm/IPackageInstallerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/content/pm/IPackageInstallerSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/content/pm/IPackageInstallerSession$Stub$Proxy;->close()V
+HPLandroid/content/pm/IPackageInstallerSession$Stub$Proxy;->commit(Landroid/content/IntentSender;Z)V
+HPLandroid/content/pm/IPackageInstallerSession$Stub$Proxy;->getNames()[Ljava/lang/String;
+HPLandroid/content/pm/IPackageInstallerSession$Stub$Proxy;->isMultiPackage()Z
+HPLandroid/content/pm/IPackageInstallerSession$Stub$Proxy;->openWrite(Ljava/lang/String;JJ)Landroid/os/ParcelFileDescriptor;
+HPLandroid/content/pm/IPackageInstallerSession$Stub$Proxy;->setClientProgress(F)V
+PLandroid/content/pm/IPackageInstallerSession$Stub;-><init>()V
+PLandroid/content/pm/IPackageInstallerSession$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/content/pm/IPackageInstallerSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageInstallerSession;
+PLandroid/content/pm/IPackageInstallerSession$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/content/pm/IPackageManager$Stub$Proxy;->canonicalToCurrentPackageNames([Ljava/lang/String;)[Ljava/lang/String;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->checkSignatures(Ljava/lang/String;Ljava/lang/String;)I
+PLandroid/content/pm/IPackageManager$Stub$Proxy;->checkUidSignatures(II)I
+HPLandroid/content/pm/IPackageManager$Stub$Proxy;->freeStorageAndNotify(Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getActivityInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationEnabledSetting(Ljava/lang/String;I)I
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getApplicationInfo(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
+HPLandroid/content/pm/IPackageManager$Stub$Proxy;->getArtManager()Landroid/content/pm/dex/IArtManager;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getAttentionServicePackageName()Ljava/lang/String;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getChangedPackages(II)Landroid/content/pm/ChangedPackages;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getDeclaredSharedLibraries(Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getHomeActivities(Ljava/util/List;)Landroid/content/ComponentName;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledApplications(II)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledModules(I)Ljava/util/List;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstalledPackages(II)Landroid/content/pm/ParceledListSlice;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstantAppResolverSettingsComponent()Landroid/content/ComponentName;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getInstantApps(I)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getModuleInfo(Ljava/lang/String;I)Landroid/content/pm/ModuleInfo;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getNameForUid(I)Ljava/lang/String;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInfo(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageInstaller()Landroid/content/pm/IPackageInstaller;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackageUid(Ljava/lang/String;II)I
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackagesForUid(I)[Ljava/lang/String;
+HPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPackagesHoldingPermissions([Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getPermissionControllerPackageName()Ljava/lang/String;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getProviderInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ProviderInfo;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getReceiverInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getServiceInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ServiceInfo;
+HPLandroid/content/pm/IPackageManager$Stub$Proxy;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String;
+HPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSharedLibraries(Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+HPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSharedSystemSharedLibraryPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSystemAvailableFeatures()Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSystemSharedLibraryNames()[Ljava/lang/String;
+HPLandroid/content/pm/IPackageManager$Stub$Proxy;->getSystemTextClassifierPackages()[Ljava/lang/String;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->getUnsuspendablePackagesForUser([Ljava/lang/String;I)[Ljava/lang/String;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->hasSystemFeature(Ljava/lang/String;I)Z
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->isInstantApp(Ljava/lang/String;I)Z
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->isPackageSuspendedForUser(Ljava/lang/String;I)Z
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->isSafeMode()Z
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->notifyDexLoad(Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->notifyPackageUse(Ljava/lang/String;I)V
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->notifyPackagesReplacedReceived([Ljava/lang/String;)V
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryContentProviders(Ljava/lang/String;IILjava/lang/String;)Landroid/content/pm/ParceledListSlice;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentContentProviders(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentReceivers(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->queryIntentServices(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->replacePreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->resolveContentProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->resolveService(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
+HPLandroid/content/pm/IPackageManager$Stub$Proxy;->setApplicationCategoryHint(Ljava/lang/String;ILjava/lang/String;)V
HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->setComponentEnabledSetting(Landroid/content/ComponentName;III)V
+HSPLandroid/content/pm/IPackageManager$Stub$Proxy;->setSystemAppHiddenUntilInstalled(Ljava/lang/String;Z)V
+PLandroid/content/pm/IPackageManager$Stub$Proxy;->verifyIntentFilter(IILjava/util/List;)V
+HPLandroid/content/pm/IPackageManager$Stub$Proxy;->verifyPendingInstall(II)V
+HSPLandroid/content/pm/IPackageManager$Stub;-><init>()V
HSPLandroid/content/pm/IPackageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManager;
+PLandroid/content/pm/IPackageManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/content/pm/IPackageManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/content/pm/IPackageManagerNative$Stub;-><init>()V
+HSPLandroid/content/pm/IPackageManagerNative$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/pm/IPackageMoveObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/content/pm/IPackageMoveObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/content/pm/IPackageMoveObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageMoveObserver;
+HSPLandroid/content/pm/IPackageStatsObserver$Stub;-><init>()V
+HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->disableShortcuts(Ljava/lang/String;Ljava/util/List;Ljava/lang/CharSequence;II)V
+HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->enableShortcuts(Ljava/lang/String;Ljava/util/List;I)V
+HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->getDynamicShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+HPLandroid/content/pm/IShortcutService$Stub$Proxy;->getManifestShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+HPLandroid/content/pm/IShortcutService$Stub$Proxy;->getMaxShortcutCountPerActivity(Ljava/lang/String;I)I
+HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->getPinnedShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->setDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
+HSPLandroid/content/pm/IShortcutService$Stub$Proxy;->updateShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
+HSPLandroid/content/pm/IShortcutService$Stub;-><init>()V
HSPLandroid/content/pm/IShortcutService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IShortcutService;
+PLandroid/content/pm/IShortcutService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/pm/InstantAppIntentFilter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/InstantAppIntentFilter;
+PLandroid/content/pm/InstantAppIntentFilter$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/content/pm/InstantAppIntentFilter;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/pm/InstantAppIntentFilter;-><init>(Ljava/lang/String;Ljava/util/List;)V
+PLandroid/content/pm/InstantAppIntentFilter;->getFilters()Ljava/util/List;
+PLandroid/content/pm/InstantAppIntentFilter;->getSplitName()Ljava/lang/String;
+PLandroid/content/pm/InstantAppIntentFilter;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/pm/InstantAppRequest;-><init>(Landroid/content/pm/AuxiliaryResolveInfo;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;Z)V
+PLandroid/content/pm/InstantAppResolveInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/InstantAppResolveInfo;
+PLandroid/content/pm/InstantAppResolveInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest$1;-><init>()V
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;-><clinit>()V
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;-><init>(Ljava/lang/String;)V
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;-><init>(Ljava/lang/String;I)V
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;-><init>([[B[I)V
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->access$000(Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;)[[B
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->generateDigest(Ljava/lang/String;I)[[B
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->getDigestBytes()[[B
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->getDigestPrefix()[I
+HPLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->getDigestPrefixSecure()[I
+PLandroid/content/pm/InstantAppResolveInfo$InstantAppDigest;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/pm/InstantAppResolveInfo;-><init>(Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;Ljava/lang/String;Ljava/util/List;I)V
+PLandroid/content/pm/InstantAppResolveInfo;-><init>(Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;Ljava/lang/String;Ljava/util/List;JLandroid/os/Bundle;)V
+PLandroid/content/pm/InstantAppResolveInfo;-><init>(Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;Ljava/lang/String;Ljava/util/List;JLandroid/os/Bundle;Z)V
+PLandroid/content/pm/InstantAppResolveInfo;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/pm/InstantAppResolveInfo;->getDigestBytes()[B
+PLandroid/content/pm/InstantAppResolveInfo;->getExtras()Landroid/os/Bundle;
+PLandroid/content/pm/InstantAppResolveInfo;->getIntentFilters()Ljava/util/List;
+PLandroid/content/pm/InstantAppResolveInfo;->getLongVersionCode()J
+PLandroid/content/pm/InstantAppResolveInfo;->getPackageName()Ljava/lang/String;
+PLandroid/content/pm/InstantAppResolveInfo;->shouldLetInstallerDecide()Z
+PLandroid/content/pm/InstantAppResolveInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/IntentFilterVerificationInfo;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V
+HPLandroid/content/pm/IntentFilterVerificationInfo;->getDomainsString()Ljava/lang/String;
+HSPLandroid/content/pm/IntentFilterVerificationInfo;->getIntFromXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
+HSPLandroid/content/pm/IntentFilterVerificationInfo;->getPackageName()Ljava/lang/String;
+PLandroid/content/pm/IntentFilterVerificationInfo;->getStatus()I
+PLandroid/content/pm/IntentFilterVerificationInfo;->getStatusString()Ljava/lang/String;
+PLandroid/content/pm/IntentFilterVerificationInfo;->getStatusStringFromValue(J)Ljava/lang/String;
+HSPLandroid/content/pm/IntentFilterVerificationInfo;->getStringFromXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/IntentFilterVerificationInfo;->readFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLandroid/content/pm/IntentFilterVerificationInfo;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/content/pm/LauncherActivityInfo;-><init>(Landroid/content/Context;)V
+HSPLandroid/content/pm/LauncherActivityInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ActivityInfo;Landroid/os/UserHandle;)V
+HSPLandroid/content/pm/LauncherActivityInfo;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
+HSPLandroid/content/pm/LauncherActivityInfo;->getComponentName()Landroid/content/ComponentName;
+HPLandroid/content/pm/LauncherActivityInfo;->getIcon(I)Landroid/graphics/drawable/Drawable;
+HSPLandroid/content/pm/LauncherActivityInfo;->getLabel()Ljava/lang/CharSequence;
+HSPLandroid/content/pm/LauncherActivityInfo;->getUser()Landroid/os/UserHandle;
+HPLandroid/content/pm/LauncherApps$1;->onPackageChanged(Landroid/os/UserHandle;Ljava/lang/String;)V
+HPLandroid/content/pm/LauncherApps$1;->onShortcutChanged(Landroid/os/UserHandle;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
+HSPLandroid/content/pm/LauncherApps$Callback;-><init>()V
+HPLandroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo;-><init>()V
+PLandroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo;-><init>(Landroid/content/pm/LauncherApps$1;)V
+HPLandroid/content/pm/LauncherApps$CallbackMessageHandler;->handleMessage(Landroid/os/Message;)V
+HPLandroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnPackageChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
+HPLandroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnShortcutChanged(Ljava/lang/String;Landroid/os/UserHandle;Ljava/util/List;)V
+HSPLandroid/content/pm/LauncherApps$ShortcutQuery;-><init>()V
+HPLandroid/content/pm/LauncherApps$ShortcutQuery;->setActivity(Landroid/content/ComponentName;)Landroid/content/pm/LauncherApps$ShortcutQuery;
+HPLandroid/content/pm/LauncherApps$ShortcutQuery;->setPackage(Ljava/lang/String;)Landroid/content/pm/LauncherApps$ShortcutQuery;
+HSPLandroid/content/pm/LauncherApps$ShortcutQuery;->setQueryFlags(I)Landroid/content/pm/LauncherApps$ShortcutQuery;
+HPLandroid/content/pm/LauncherApps$ShortcutQuery;->setShortcutIds(Ljava/util/List;)Landroid/content/pm/LauncherApps$ShortcutQuery;
+HSPLandroid/content/pm/LauncherApps;-><init>(Landroid/content/Context;)V
+HSPLandroid/content/pm/LauncherApps;-><init>(Landroid/content/Context;Landroid/content/pm/ILauncherApps;)V
+HSPLandroid/content/pm/LauncherApps;->convertToActivityList(Landroid/content/pm/ParceledListSlice;Landroid/os/UserHandle;)Ljava/util/List;
+HSPLandroid/content/pm/LauncherApps;->findCallbackLocked(Landroid/content/pm/LauncherApps$Callback;)I
+HSPLandroid/content/pm/LauncherApps;->getActivityList(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List;
+HSPLandroid/content/pm/LauncherApps;->getAllPackageInstallerSessions()Ljava/util/List;
+HPLandroid/content/pm/LauncherApps;->getAppUsageLimit(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/LauncherApps$AppUsageLimit;
+HSPLandroid/content/pm/LauncherApps;->getApplicationInfo(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo;
+HSPLandroid/content/pm/LauncherApps;->getShortcutConfigActivityList(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List;
+HSPLandroid/content/pm/LauncherApps;->getShortcutIconDrawable(Landroid/content/pm/ShortcutInfo;I)Landroid/graphics/drawable/Drawable;
+HPLandroid/content/pm/LauncherApps;->getShortcutIconFd(Landroid/content/pm/ShortcutInfo;)Landroid/os/ParcelFileDescriptor;
+HPLandroid/content/pm/LauncherApps;->getShortcutIconFd(Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
+HSPLandroid/content/pm/LauncherApps;->getShortcuts(Landroid/content/pm/LauncherApps$ShortcutQuery;Landroid/os/UserHandle;)Ljava/util/List;
+HSPLandroid/content/pm/LauncherApps;->hasShortcutHostPermission()Z
+HSPLandroid/content/pm/LauncherApps;->isActivityEnabled(Landroid/content/ComponentName;Landroid/os/UserHandle;)Z
+HSPLandroid/content/pm/LauncherApps;->isPackageEnabled(Ljava/lang/String;Landroid/os/UserHandle;)Z
+HSPLandroid/content/pm/LauncherApps;->loadDrawableResourceFromPackage(Ljava/lang/String;ILandroid/os/UserHandle;I)Landroid/graphics/drawable/Drawable;
+HSPLandroid/content/pm/LauncherApps;->logErrorForInvalidProfileAccess(Landroid/os/UserHandle;)V
+HSPLandroid/content/pm/LauncherApps;->maybeUpdateDisabledMessage(Ljava/util/List;)Ljava/util/List;
+HSPLandroid/content/pm/LauncherApps;->registerCallback(Landroid/content/pm/LauncherApps$Callback;)V
+HSPLandroid/content/pm/LauncherApps;->registerCallback(Landroid/content/pm/LauncherApps$Callback;Landroid/os/Handler;)V
+HSPLandroid/content/pm/LauncherApps;->registerPackageInstallerSessionCallback(Ljava/util/concurrent/Executor;Landroid/content/pm/PackageInstaller$SessionCallback;)V
+HSPLandroid/content/pm/LauncherApps;->resolveActivity(Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/pm/LauncherActivityInfo;
+HPLandroid/content/pm/LauncherApps;->shouldHideFromSuggestions(Ljava/lang/String;Landroid/os/UserHandle;)Z
+HPLandroid/content/pm/LauncherApps;->startMainActivity(Landroid/content/ComponentName;Landroid/os/UserHandle;Landroid/graphics/Rect;Landroid/os/Bundle;)V
+HSPLandroid/content/pm/ModuleInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ModuleInfo;
+HSPLandroid/content/pm/ModuleInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/ModuleInfo;-><init>()V
+HSPLandroid/content/pm/ModuleInfo;->getPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/ModuleInfo;->isHidden()Z
+HSPLandroid/content/pm/ModuleInfo;->setHidden(Z)Landroid/content/pm/ModuleInfo;
+HSPLandroid/content/pm/ModuleInfo;->setName(Ljava/lang/CharSequence;)Landroid/content/pm/ModuleInfo;
+HSPLandroid/content/pm/ModuleInfo;->setPackageName(Ljava/lang/String;)Landroid/content/pm/ModuleInfo;
+HPLandroid/content/pm/ModuleInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/pm/PackageInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageInfo;
HSPLandroid/content/pm/PackageInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/pm/PackageInfo;-><init>()V
HSPLandroid/content/pm/PackageInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/content/pm/PackageInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/PackageInfo$1;)V
+HSPLandroid/content/pm/PackageInfo;->composeLongVersionCode(II)J
HSPLandroid/content/pm/PackageInfo;->getLongVersionCode()J
+PLandroid/content/pm/PackageInfo;->isOverlayPackage()Z
+HSPLandroid/content/pm/PackageInfo;->isStaticOverlayPackage()Z
HSPLandroid/content/pm/PackageInfo;->propagateApplicationInfo(Landroid/content/pm/ApplicationInfo;[Landroid/content/pm/ComponentInfo;)V
+HSPLandroid/content/pm/PackageInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/pm/PackageInfoLite$1;-><init>()V
+PLandroid/content/pm/PackageInfoLite;-><clinit>()V
+PLandroid/content/pm/PackageInfoLite;-><init>()V
+PLandroid/content/pm/PackageInfoLite;->getLongVersionCode()J
+HPLandroid/content/pm/PackageInstaller$Session;-><init>(Landroid/content/pm/IPackageInstallerSession;)V
+HPLandroid/content/pm/PackageInstaller$Session;->close()V
+HPLandroid/content/pm/PackageInstaller$Session;->commit(Landroid/content/IntentSender;)V
+HPLandroid/content/pm/PackageInstaller$Session;->fsync(Ljava/io/OutputStream;)V
+HPLandroid/content/pm/PackageInstaller$Session;->getNames()[Ljava/lang/String;
+HPLandroid/content/pm/PackageInstaller$Session;->isMultiPackage()Z
+HPLandroid/content/pm/PackageInstaller$Session;->openWrite(Ljava/lang/String;JJ)Ljava/io/OutputStream;
+HPLandroid/content/pm/PackageInstaller$Session;->setStagingProgress(F)V
HSPLandroid/content/pm/PackageInstaller$SessionCallback;-><init>()V
+HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;-><init>(Landroid/content/pm/PackageInstaller$SessionCallback;Ljava/util/concurrent/Executor;)V
PLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionActiveChanged(IZ)V
+PLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionBadgingChanged(I)V
+PLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionCreated(I)V
PLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionFinished(IZ)V
-HSPLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionProgressChanged(IF)V
-HSPLandroid/content/pm/PackageInstaller$SessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageInstaller$SessionInfo;
-HSPLandroid/content/pm/PackageInstaller$SessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/content/pm/PackageInstaller$SessionInfo;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/PackageInstaller$SessionInfo;->getAppPackageName()Ljava/lang/String;
+PLandroid/content/pm/PackageInstaller$SessionCallbackDelegate;->onSessionProgressChanged(IF)V
+PLandroid/content/pm/PackageInstaller$SessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageInstaller$SessionInfo;
+PLandroid/content/pm/PackageInstaller$SessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/content/pm/PackageInstaller$SessionInfo;-><init>()V
+HPLandroid/content/pm/PackageInstaller$SessionInfo;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/pm/PackageInstaller$SessionInfo;->describeContents()I
+HPLandroid/content/pm/PackageInstaller$SessionInfo;->getAppIcon()Landroid/graphics/Bitmap;
+HPLandroid/content/pm/PackageInstaller$SessionInfo;->getAppLabel()Ljava/lang/CharSequence;
+PLandroid/content/pm/PackageInstaller$SessionInfo;->getAppPackageName()Ljava/lang/String;
+HPLandroid/content/pm/PackageInstaller$SessionInfo;->getInstallReason()I
+PLandroid/content/pm/PackageInstaller$SessionInfo;->getInstallerPackageName()Ljava/lang/String;
+HPLandroid/content/pm/PackageInstaller$SessionInfo;->getProgress()F
+HPLandroid/content/pm/PackageInstaller$SessionInfo;->getSessionId()I
+HPLandroid/content/pm/PackageInstaller$SessionInfo;->getUser()Landroid/os/UserHandle;
+PLandroid/content/pm/PackageInstaller$SessionInfo;->isStaged()Z
+PLandroid/content/pm/PackageInstaller$SessionInfo;->setStagedSessionErrorCode(ILjava/lang/String;)V
+PLandroid/content/pm/PackageInstaller$SessionInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/pm/PackageInstaller$SessionParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageInstaller$SessionParams;
+PLandroid/content/pm/PackageInstaller$SessionParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/content/pm/PackageInstaller$SessionParams;-><init>(I)V
+PLandroid/content/pm/PackageInstaller$SessionParams;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/pm/PackageInstaller$SessionParams;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+HPLandroid/content/pm/PackageInstaller$SessionParams;->setAppLabel(Ljava/lang/CharSequence;)V
+HPLandroid/content/pm/PackageInstaller$SessionParams;->setAppPackageName(Ljava/lang/String;)V
+HPLandroid/content/pm/PackageInstaller$SessionParams;->setInstallAsInstantApp(Z)V
+HPLandroid/content/pm/PackageInstaller$SessionParams;->setInstallLocation(I)V
+HPLandroid/content/pm/PackageInstaller$SessionParams;->setInstallReason(I)V
+HPLandroid/content/pm/PackageInstaller$SessionParams;->setSize(J)V
+HPLandroid/content/pm/PackageInstaller$SessionParams;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/PackageInstaller;-><init>(Landroid/content/pm/IPackageInstaller;Ljava/lang/String;I)V
+HPLandroid/content/pm/PackageInstaller;->abandonSession(I)V
+HPLandroid/content/pm/PackageInstaller;->createSession(Landroid/content/pm/PackageInstaller$SessionParams;)I
+HPLandroid/content/pm/PackageInstaller;->getAllSessions()Ljava/util/List;
+HSPLandroid/content/pm/PackageInstaller;->getMySessions()Ljava/util/List;
+PLandroid/content/pm/PackageInstaller;->getSessionInfo(I)Landroid/content/pm/PackageInstaller$SessionInfo;
+HSPLandroid/content/pm/PackageInstaller;->getStagedSessions()Ljava/util/List;
+HPLandroid/content/pm/PackageInstaller;->openSession(I)Landroid/content/pm/PackageInstaller$Session;
+PLandroid/content/pm/PackageInstaller;->registerSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;)V
+HSPLandroid/content/pm/PackageInstaller;->registerSessionCallback(Landroid/content/pm/PackageInstaller$SessionCallback;Landroid/os/Handler;)V
+HSPLandroid/content/pm/PackageItemInfo;-><init>()V
HSPLandroid/content/pm/PackageItemInfo;-><init>(Landroid/content/pm/PackageItemInfo;)V
HSPLandroid/content/pm/PackageItemInfo;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/pm/PackageItemInfo;->dumpBack(Landroid/util/Printer;Ljava/lang/String;)V
+HPLandroid/content/pm/PackageItemInfo;->dumpFront(Landroid/util/Printer;Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageItemInfo;->forceSafeLabels()V
+HSPLandroid/content/pm/PackageItemInfo;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
HSPLandroid/content/pm/PackageItemInfo;->loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
HSPLandroid/content/pm/PackageItemInfo;->loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
+HSPLandroid/content/pm/PackageItemInfo;->loadSafeLabel(Landroid/content/pm/PackageManager;FI)Ljava/lang/CharSequence;
+HPLandroid/content/pm/PackageItemInfo;->loadUnbadgedIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
HSPLandroid/content/pm/PackageItemInfo;->loadUnsafeLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
HSPLandroid/content/pm/PackageItemInfo;->loadXmlMetaData(Landroid/content/pm/PackageManager;Ljava/lang/String;)Landroid/content/res/XmlResourceParser;
HSPLandroid/content/pm/PackageItemInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/PackageManager$NameNotFoundException;-><init>(Ljava/lang/String;)V
HSPLandroid/content/pm/PackageManager;-><init>()V
+HPLandroid/content/pm/PackageManager;->freeStorageAndNotify(JLandroid/content/pm/IPackageDataObserver;)V
HSPLandroid/content/pm/PackageManager;->getApplicationInfoAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo;
+HSPLandroid/content/pm/PackageManager;->getPackageArchiveInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
+PLandroid/content/pm/PackageManager;->installStatusToPublicStatus(I)I
+PLandroid/content/pm/PackageManager;->installStatusToString(I)Ljava/lang/String;
+PLandroid/content/pm/PackageManager;->installStatusToString(ILjava/lang/String;)Ljava/lang/String;
+HPLandroid/content/pm/PackageManager;->permissionFlagToString(I)Ljava/lang/String;
+PLandroid/content/pm/PackageManager;->queryBroadcastReceiversAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List;
HSPLandroid/content/pm/PackageManager;->queryIntentServicesAsUser(Landroid/content/Intent;ILandroid/os/UserHandle;)Ljava/util/List;
+HSPLandroid/content/pm/PackageManager;->replacePreferredActivity(Landroid/content/IntentFilter;ILjava/util/List;Landroid/content/ComponentName;)V
+HSPLandroid/content/pm/PackageParser$Activity;-><init>(Landroid/content/pm/PackageParser$Package;Ljava/lang/String;Landroid/content/pm/ActivityInfo;)V
+HSPLandroid/content/pm/PackageParser$Activity;-><init>(Landroid/content/pm/PackageParser$ParseComponentArgs;Landroid/content/pm/ActivityInfo;)V
+HSPLandroid/content/pm/PackageParser$Activity;->access$200(Landroid/content/pm/PackageParser$Activity;F)V
+HSPLandroid/content/pm/PackageParser$Activity;->access$300(Landroid/content/pm/PackageParser$Activity;F)V
+HSPLandroid/content/pm/PackageParser$Activity;->access$400(Landroid/content/pm/PackageParser$Activity;)Z
+HSPLandroid/content/pm/PackageParser$Activity;->access$500(Landroid/content/pm/PackageParser$Activity;)Z
+HSPLandroid/content/pm/PackageParser$Activity;->hasMaxAspectRatio()Z
+HSPLandroid/content/pm/PackageParser$Activity;->hasMinAspectRatio()Z
+HSPLandroid/content/pm/PackageParser$Activity;->setMaxAspectRatio(F)V
+HSPLandroid/content/pm/PackageParser$Activity;->setMinAspectRatio(F)V
+HSPLandroid/content/pm/PackageParser$Activity;->setPackageName(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$ActivityIntentInfo;-><init>(Landroid/content/pm/PackageParser$Activity;)V
HSPLandroid/content/pm/PackageParser$ApkLite;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;ZIIIILjava/util/List;Landroid/content/pm/PackageParser$SigningDetails;ZZZZZZZII)V
+PLandroid/content/pm/PackageParser$ApkLite;->getLongVersionCode()J
+HSPLandroid/content/pm/PackageParser$CachedComponentArgs;-><init>()V
+HSPLandroid/content/pm/PackageParser$CachedComponentArgs;-><init>(Landroid/content/pm/PackageParser$1;)V
+HSPLandroid/content/pm/PackageParser$CallbackImpl;->hasFeature(Ljava/lang/String;)Z
+HSPLandroid/content/pm/PackageParser$Component;-><init>(Landroid/content/pm/PackageParser$Package;Ljava/util/ArrayList;Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$Component;-><init>(Landroid/content/pm/PackageParser$ParseComponentArgs;Landroid/content/pm/ComponentInfo;)V
+HSPLandroid/content/pm/PackageParser$Component;-><init>(Landroid/content/pm/PackageParser$ParsePackageItemArgs;Landroid/content/pm/PackageItemInfo;)V
+HSPLandroid/content/pm/PackageParser$Component;->setPackageName(Ljava/lang/String;)V
HSPLandroid/content/pm/PackageParser$Package;-><init>(Ljava/lang/String;)V
HSPLandroid/content/pm/PackageParser$Package;->getLongVersionCode()J
HSPLandroid/content/pm/PackageParser$Package;->isMatch(I)Z
HSPLandroid/content/pm/PackageParser$Package;->setApplicationVolumeUuid(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$Package;->setBaseCodePath(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$Package;->setCodePath(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$Package;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)V
+HSPLandroid/content/pm/PackageParser$Package;->setUse32bitAbi(Z)V
+HSPLandroid/content/pm/PackageParser$Package;->setVolumeUuid(Ljava/lang/String;)V
HSPLandroid/content/pm/PackageParser$PackageLite;-><init>(Ljava/lang/String;Landroid/content/pm/PackageParser$ApkLite;[Ljava/lang/String;[Z[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[I)V
+PLandroid/content/pm/PackageParser$PackageLite;->getAllCodePaths()Ljava/util/List;
+HSPLandroid/content/pm/PackageParser$PackageParserException;-><init>(ILjava/lang/String;)V
+HSPLandroid/content/pm/PackageParser$ParseComponentArgs;-><init>(Landroid/content/pm/PackageParser$Package;[Ljava/lang/String;IIIIII[Ljava/lang/String;III)V
HSPLandroid/content/pm/PackageParser$SigningDetails$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PackageParser$SigningDetails;
HSPLandroid/content/pm/PackageParser$SigningDetails$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/PackageParser$SigningDetails$Builder;-><init>()V
+HSPLandroid/content/pm/PackageParser$SigningDetails$Builder;->build()Landroid/content/pm/PackageParser$SigningDetails;
+HSPLandroid/content/pm/PackageParser$SigningDetails$Builder;->checkInvariants()V
+HSPLandroid/content/pm/PackageParser$SigningDetails$Builder;->setSignatureSchemeVersion(I)Landroid/content/pm/PackageParser$SigningDetails$Builder;
+HSPLandroid/content/pm/PackageParser$SigningDetails$Builder;->setSignatures([Landroid/content/pm/Signature;)Landroid/content/pm/PackageParser$SigningDetails$Builder;
+HSPLandroid/content/pm/PackageParser$SigningDetails;-><init>(Landroid/content/pm/PackageParser$SigningDetails;)V
HSPLandroid/content/pm/PackageParser$SigningDetails;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/PackageParser$SigningDetails;-><init>([Landroid/content/pm/Signature;I)V
+HSPLandroid/content/pm/PackageParser$SigningDetails;-><init>([Landroid/content/pm/Signature;ILandroid/util/ArraySet;[Landroid/content/pm/Signature;)V
+HSPLandroid/content/pm/PackageParser$SigningDetails;-><init>([Landroid/content/pm/Signature;I[Landroid/content/pm/Signature;)V
+HSPLandroid/content/pm/PackageParser$SigningDetails;->checkCapability(Landroid/content/pm/PackageParser$SigningDetails;I)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasAncestor(Landroid/content/pm/PackageParser$SigningDetails;)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasAncestorOrSelf(Landroid/content/pm/PackageParser$SigningDetails;)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasCertificate(Landroid/content/pm/Signature;)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasCertificateInternal(Landroid/content/pm/Signature;I)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasPastSigningCertificates()Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasSha256Certificate([B)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasSha256CertificateInternal([BI)Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->hasSignatures()Z
+HSPLandroid/content/pm/PackageParser$SigningDetails;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/PackageParser$SplitNameComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/content/pm/PackageParser$SplitNameComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/content/pm/PackageParser;-><init>()V
+HSPLandroid/content/pm/PackageParser;->buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParser;->buildCompoundName(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParser;->buildProcessName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;I[Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParser;->buildTaskAffinityName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParser;->cacheResult(Ljava/io/File;ILandroid/content/pm/parsing/ParsedPackage;)V
HSPLandroid/content/pm/PackageParser;->checkUseInstalledOrHidden(ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;)Z
+HSPLandroid/content/pm/PackageParser;->collectCertificates(Landroid/content/pm/PackageParser$Package;Ljava/io/File;Z)V
+HSPLandroid/content/pm/PackageParser;->collectCertificates(Landroid/content/pm/PackageParser$Package;Z)V
+HSPLandroid/content/pm/PackageParser;->collectCertificatesInternal(Landroid/content/pm/PackageParser$Package;Z)V
+HSPLandroid/content/pm/PackageParser;->computeMinSdkVersion(ILjava/lang/String;I[Ljava/lang/String;[Ljava/lang/String;)I
+HSPLandroid/content/pm/PackageParser;->computeTargetSdkVersion(ILjava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)I
HSPLandroid/content/pm/PackageParser;->copyNeeded(ILandroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageUserState;Landroid/os/Bundle;I)Z
+HSPLandroid/content/pm/PackageParser;->fromCacheEntry([B)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/PackageParser;->fromCacheEntryStatic([B)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/PackageParser;->generateAppDetailsHiddenActivity(Landroid/content/pm/PackageParser$Package;I[Ljava/lang/String;Z)Landroid/content/pm/PackageParser$Activity;
+PLandroid/content/pm/PackageParser;->generateApplicationInfo(Landroid/content/pm/ApplicationInfo;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ApplicationInfo;
HSPLandroid/content/pm/PackageParser;->generateApplicationInfo(Landroid/content/pm/PackageParser$Package;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ApplicationInfo;
+HSPLandroid/content/pm/PackageParser;->generatePackageInfo(Landroid/content/pm/PackageParser$Package;Landroid/apex/ApexInfo;I)Landroid/content/pm/PackageInfo;
HSPLandroid/content/pm/PackageParser;->generatePackageInfo(Landroid/content/pm/PackageParser$Package;Landroid/apex/ApexInfo;[IIJJLjava/util/Set;Landroid/content/pm/PackageUserState;I)Landroid/content/pm/PackageInfo;
HSPLandroid/content/pm/PackageParser;->generatePackageInfo(Landroid/content/pm/PackageParser$Package;[IIJJLjava/util/Set;Landroid/content/pm/PackageUserState;I)Landroid/content/pm/PackageInfo;
+HSPLandroid/content/pm/PackageParser;->getActivityConfigChanges(II)I
+HSPLandroid/content/pm/PackageParser;->getCacheKey(Ljava/io/File;I)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParser;->getCachedResult(Ljava/io/File;I)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/PackageParser;->hasDomainURLs(Landroid/content/pm/PackageParser$Package;)Z
+HSPLandroid/content/pm/PackageParser;->isApkFile(Ljava/io/File;)Z
+PLandroid/content/pm/PackageParser;->isApkPath(Ljava/lang/String;)Z
+HSPLandroid/content/pm/PackageParser;->isAvailable(Landroid/content/pm/PackageUserState;)Z
+HSPLandroid/content/pm/PackageParser;->isCacheUpToDate(Ljava/io/File;Ljava/io/File;)Z
+HSPLandroid/content/pm/PackageParser;->matchTargetCode([Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/content/pm/PackageParser;->parseActivity(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;Landroid/content/pm/PackageParser$CachedComponentArgs;ZZ)Landroid/content/pm/PackageParser$Activity;
+HSPLandroid/content/pm/PackageParser;->parseApkLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$ApkLite;
HSPLandroid/content/pm/PackageParser;->parseApkLite(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/PackageParser$ApkLite;
HSPLandroid/content/pm/PackageParser;->parseApkLiteInner(Ljava/io/File;Ljava/io/FileDescriptor;Ljava/lang/String;I)Landroid/content/pm/PackageParser$ApkLite;
HSPLandroid/content/pm/PackageParser;->parseBaseApk(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Package;
HSPLandroid/content/pm/PackageParser;->parseBaseApk(Ljava/io/File;Landroid/content/res/AssetManager;I)Landroid/content/pm/PackageParser$Package;
HSPLandroid/content/pm/PackageParser;->parseBaseApkCommon(Landroid/content/pm/PackageParser$Package;Ljava/util/Set;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Landroid/content/pm/PackageParser$Package;
+HSPLandroid/content/pm/PackageParser;->parseBaseApplication(Landroid/content/pm/PackageParser$Package;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Z
+PLandroid/content/pm/PackageParser;->parseClusterPackageLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$PackageLite;
+HSPLandroid/content/pm/PackageParser;->parseIntent(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZZLandroid/content/pm/PackageParser$IntentInfo;[Ljava/lang/String;)Z
+HSPLandroid/content/pm/PackageParser;->parseMetaData(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/os/Bundle;[Ljava/lang/String;)Landroid/os/Bundle;
HSPLandroid/content/pm/PackageParser;->parseMonolithicPackage(Ljava/io/File;I)Landroid/content/pm/PackageParser$Package;
HSPLandroid/content/pm/PackageParser;->parseMonolithicPackageLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$PackageLite;
+HSPLandroid/content/pm/PackageParser;->parsePackage(Ljava/io/File;IZ)Landroid/content/pm/PackageParser$Package;
+HSPLandroid/content/pm/PackageParser;->parsePackageItemInfo(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageItemInfo;[Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;ZIIIIII)Z
+PLandroid/content/pm/PackageParser;->parsePackageLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$PackageLite;
HSPLandroid/content/pm/PackageParser;->parsePackageSplitNames(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/util/Pair;
+HSPLandroid/content/pm/PackageParser;->parseParsedPackage(Ljava/io/File;IZ)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/PackageParser;->parsePublicKey(Ljava/lang/String;)Ljava/security/PublicKey;
+HSPLandroid/content/pm/PackageParser;->readConfigUseRoundIcon(Landroid/content/res/Resources;)V
+HSPLandroid/content/pm/PackageParser;->setCacheDir(Ljava/io/File;)V
+HSPLandroid/content/pm/PackageParser;->setCallback(Landroid/content/pm/PackageParser$Callback;)V
+HSPLandroid/content/pm/PackageParser;->setCompatibilityModeEnabled(Z)V
+HSPLandroid/content/pm/PackageParser;->setDisplayMetrics(Landroid/util/DisplayMetrics;)V
+HSPLandroid/content/pm/PackageParser;->setMaxAspectRatio(Landroid/content/pm/PackageParser$Package;)V
+HSPLandroid/content/pm/PackageParser;->setMinAspectRatio(Landroid/content/pm/PackageParser$Package;)V
+HSPLandroid/content/pm/PackageParser;->setOnlyCoreApps(Z)V
+HSPLandroid/content/pm/PackageParser;->setSeparateProcesses([Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageParser;->toCacheEntry(Landroid/content/pm/parsing/ParsedPackage;)[B
+HSPLandroid/content/pm/PackageParser;->toCacheEntryStatic(Landroid/content/pm/parsing/ParsedPackage;)[B
+HSPLandroid/content/pm/PackageParser;->toSigningKeys([Landroid/content/pm/Signature;)Landroid/util/ArraySet;
HSPLandroid/content/pm/PackageParser;->updateApplicationInfo(Landroid/content/pm/ApplicationInfo;ILandroid/content/pm/PackageUserState;)V
HSPLandroid/content/pm/PackageParser;->validateName(Ljava/lang/String;ZZ)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParserCacheHelper$ReadHelper;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/PackageParserCacheHelper$ReadHelper;->readString(Landroid/os/Parcel;)Ljava/lang/String;
+HSPLandroid/content/pm/PackageParserCacheHelper$ReadHelper;->startAndInstall()V
+HSPLandroid/content/pm/PackageParserCacheHelper$WriteHelper;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/PackageParserCacheHelper$WriteHelper;->finishAndUninstall()V
+HSPLandroid/content/pm/PackageParserCacheHelper$WriteHelper;->writeString(Landroid/os/Parcel;Ljava/lang/String;)V
+PLandroid/content/pm/PackageStats;-><init>(Landroid/content/pm/PackageStats;)V
+HPLandroid/content/pm/PackageStats;-><init>(Ljava/lang/String;)V
+HSPLandroid/content/pm/PackageUserState;-><init>()V
+HSPLandroid/content/pm/PackageUserState;->equals(Ljava/lang/Object;)Z
HSPLandroid/content/pm/PackageUserState;->isAvailable(I)Z
+PLandroid/content/pm/PackageUserState;->isEnabled(Landroid/content/pm/ComponentInfo;I)Z
+HSPLandroid/content/pm/PackageUserState;->isEnabled(ZZLjava/lang/String;I)Z
+HSPLandroid/content/pm/PackageUserState;->isMatch(Landroid/content/pm/ComponentInfo;I)Z
+HSPLandroid/content/pm/PackageUserState;->isMatch(ZZLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;I)Z
+HSPLandroid/content/pm/PackageUserState;->isMatch(ZZZZLjava/lang/String;I)Z
+HSPLandroid/content/pm/PackageUserState;->reportIfDebug(ZI)Z
HSPLandroid/content/pm/ParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ParceledListSlice;
HSPLandroid/content/pm/ParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/content/pm/ParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/content/pm/ParceledListSlice;
+HPLandroid/content/pm/ParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object;
HSPLandroid/content/pm/ParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
HSPLandroid/content/pm/ParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;Landroid/content/pm/ParceledListSlice$1;)V
HSPLandroid/content/pm/ParceledListSlice;-><init>(Ljava/util/List;)V
+HSPLandroid/content/pm/ParceledListSlice;->emptyList()Landroid/content/pm/ParceledListSlice;
HSPLandroid/content/pm/ParceledListSlice;->getList()Ljava/util/List;
HSPLandroid/content/pm/ParceledListSlice;->readParcelableCreator(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/os/Parcelable$Creator;
+HSPLandroid/content/pm/ParceledListSlice;->setInlineCountLimit(I)V
HSPLandroid/content/pm/ParceledListSlice;->writeElement(Landroid/os/Parcelable;Landroid/os/Parcel;I)V
HSPLandroid/content/pm/ParceledListSlice;->writeElement(Ljava/lang/Object;Landroid/os/Parcel;I)V
HSPLandroid/content/pm/ParceledListSlice;->writeParcelableCreator(Landroid/os/Parcelable;Landroid/os/Parcel;)V
@@ -2270,93 +7233,1004 @@ HSPLandroid/content/pm/PathPermission$1;->createFromParcel(Landroid/os/Parcel;)L
HSPLandroid/content/pm/PathPermission$1;->newArray(I)[Landroid/content/pm/PathPermission;
HSPLandroid/content/pm/PathPermission$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/content/pm/PathPermission;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/PathPermission;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
HSPLandroid/content/pm/PathPermission;->getReadPermission()Ljava/lang/String;
HSPLandroid/content/pm/PathPermission;->getWritePermission()Ljava/lang/String;
HSPLandroid/content/pm/PathPermission;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/PermissionGroupInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PermissionGroupInfo;
+HSPLandroid/content/pm/PermissionGroupInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/content/pm/PermissionGroupInfo;-><init>(III)V
+HSPLandroid/content/pm/PermissionGroupInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/PermissionGroupInfo;->loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
+HPLandroid/content/pm/PermissionGroupInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/pm/PermissionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/PermissionInfo;
HSPLandroid/content/pm/PermissionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/pm/PermissionInfo$1;->newArray(I)[Landroid/content/pm/PermissionInfo;
HSPLandroid/content/pm/PermissionInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/content/pm/PermissionInfo;-><init>()V
HSPLandroid/content/pm/PermissionInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/PermissionInfo;-><init>(Ljava/lang/String;)V
+HSPLandroid/content/pm/PermissionInfo;->fixProtectionLevel(I)I
+HSPLandroid/content/pm/PermissionInfo;->getProtection()I
+HSPLandroid/content/pm/PermissionInfo;->isHardRestricted()Z
+PLandroid/content/pm/PermissionInfo;->isRestricted()Z
+HSPLandroid/content/pm/PermissionInfo;->isRuntime()Z
+HSPLandroid/content/pm/PermissionInfo;->isSoftRestricted()Z
+HSPLandroid/content/pm/PermissionInfo;->loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
+HPLandroid/content/pm/PermissionInfo;->protectionToString(I)Ljava/lang/String;
+HSPLandroid/content/pm/PermissionInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/pm/ProviderInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ProviderInfo;
HSPLandroid/content/pm/ProviderInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/pm/ProviderInfo$1;->newArray(I)[Landroid/content/pm/ProviderInfo;
HSPLandroid/content/pm/ProviderInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/content/pm/ProviderInfo;-><init>()V
HSPLandroid/content/pm/ProviderInfo;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/pm/ProviderInfo;->toString()Ljava/lang/String;
HSPLandroid/content/pm/ProviderInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/RegisteredServicesCache$1;-><init>(Landroid/content/pm/RegisteredServicesCache;)V
+PLandroid/content/pm/RegisteredServicesCache$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLandroid/content/pm/RegisteredServicesCache$2;-><init>(Landroid/content/pm/RegisteredServicesCache;)V
+HSPLandroid/content/pm/RegisteredServicesCache$3;-><init>(Landroid/content/pm/RegisteredServicesCache;)V
+HSPLandroid/content/pm/RegisteredServicesCache$ServiceInfo;-><init>(Ljava/lang/Object;Landroid/content/pm/ComponentInfo;Landroid/content/ComponentName;)V
+HPLandroid/content/pm/RegisteredServicesCache$ServiceInfo;->toString()Ljava/lang/String;
+HSPLandroid/content/pm/RegisteredServicesCache$UserServices;-><init>()V
+HSPLandroid/content/pm/RegisteredServicesCache$UserServices;-><init>(Landroid/content/pm/RegisteredServicesCache$1;)V
+HSPLandroid/content/pm/RegisteredServicesCache;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/XmlSerializerAndParser;)V
+PLandroid/content/pm/RegisteredServicesCache;->access$100(Landroid/content/pm/RegisteredServicesCache;Landroid/content/Intent;I)V
+HSPLandroid/content/pm/RegisteredServicesCache;->containsType(Ljava/util/ArrayList;Ljava/lang/Object;)Z
+HSPLandroid/content/pm/RegisteredServicesCache;->createFileForUser(I)Landroid/util/AtomicFile;
+PLandroid/content/pm/RegisteredServicesCache;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;I)V
+HSPLandroid/content/pm/RegisteredServicesCache;->findOrCreateUserLocked(I)Landroid/content/pm/RegisteredServicesCache$UserServices;
+HSPLandroid/content/pm/RegisteredServicesCache;->findOrCreateUserLocked(IZ)Landroid/content/pm/RegisteredServicesCache$UserServices;
+HSPLandroid/content/pm/RegisteredServicesCache;->generateServicesMap([II)V
+HSPLandroid/content/pm/RegisteredServicesCache;->getAllServices(I)Ljava/util/Collection;
+HPLandroid/content/pm/RegisteredServicesCache;->getBindInstantServiceAllowed(I)Z
+HSPLandroid/content/pm/RegisteredServicesCache;->getDataDirectory()Ljava/io/File;
+HPLandroid/content/pm/RegisteredServicesCache;->getServiceInfo(Ljava/lang/Object;I)Landroid/content/pm/RegisteredServicesCache$ServiceInfo;
+HSPLandroid/content/pm/RegisteredServicesCache;->getUser(I)Landroid/content/pm/UserInfo;
+HSPLandroid/content/pm/RegisteredServicesCache;->getUserSystemDirectory(I)Ljava/io/File;
+PLandroid/content/pm/RegisteredServicesCache;->handlePackageEvent(Landroid/content/Intent;I)V
+HSPLandroid/content/pm/RegisteredServicesCache;->invalidateCache(I)V
+HSPLandroid/content/pm/RegisteredServicesCache;->migrateIfNecessaryLocked()V
+HSPLandroid/content/pm/RegisteredServicesCache;->onServicesChangedLocked(I)V
+HSPLandroid/content/pm/RegisteredServicesCache;->parseServiceInfo(Landroid/content/pm/ResolveInfo;)Landroid/content/pm/RegisteredServicesCache$ServiceInfo;
+HSPLandroid/content/pm/RegisteredServicesCache;->queryIntentServices(I)Ljava/util/List;
+HSPLandroid/content/pm/RegisteredServicesCache;->readPersistentServicesLocked(Ljava/io/InputStream;)V
+HSPLandroid/content/pm/RegisteredServicesCache;->setListener(Landroid/content/pm/RegisteredServicesCacheListener;Landroid/os/Handler;)V
+HPLandroid/content/pm/RegisteredServicesCache;->updateServices(I)V
HSPLandroid/content/pm/ResolveInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ResolveInfo;
HSPLandroid/content/pm/ResolveInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/ResolveInfo;-><init>()V
+PLandroid/content/pm/ResolveInfo;-><init>(Landroid/content/pm/ResolveInfo;)V
HSPLandroid/content/pm/ResolveInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/content/pm/ResolveInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ResolveInfo$1;)V
+PLandroid/content/pm/ResolveInfo;->dump(Landroid/util/Printer;Ljava/lang/String;)V
+HPLandroid/content/pm/ResolveInfo;->dump(Landroid/util/Printer;Ljava/lang/String;I)V
HSPLandroid/content/pm/ResolveInfo;->getComponentInfo()Landroid/content/pm/ComponentInfo;
+HSPLandroid/content/pm/ResolveInfo;->loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
HSPLandroid/content/pm/ResolveInfo;->loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
+HSPLandroid/content/pm/ResolveInfo;->toString()Ljava/lang/String;
+HSPLandroid/content/pm/ResolveInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/SELinuxUtil;->assignSeinfoUser(Landroid/content/pm/PackageUserState;)Ljava/lang/String;
HSPLandroid/content/pm/ServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ServiceInfo;
HSPLandroid/content/pm/ServiceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/pm/ServiceInfo$1;->newArray(I)[Landroid/content/pm/ServiceInfo;
HSPLandroid/content/pm/ServiceInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/content/pm/ServiceInfo;-><init>()V
+HPLandroid/content/pm/ServiceInfo;-><init>(Landroid/content/pm/ServiceInfo;)V
+PLandroid/content/pm/ServiceInfo;->dump(Landroid/util/Printer;Ljava/lang/String;)V
+PLandroid/content/pm/ServiceInfo;->dump(Landroid/util/Printer;Ljava/lang/String;I)V
+PLandroid/content/pm/ServiceInfo;->getForegroundServiceType()I
+PLandroid/content/pm/ServiceInfo;->toString()Ljava/lang/String;
+HSPLandroid/content/pm/ServiceInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/pm/SharedLibraryInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/SharedLibraryInfo;
HSPLandroid/content/pm/SharedLibraryInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/pm/SharedLibraryInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/content/pm/SharedLibraryInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/SharedLibraryInfo$1;)V
HSPLandroid/content/pm/SharedLibraryInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;JILandroid/content/pm/VersionedPackage;Ljava/util/List;Ljava/util/List;)V
HSPLandroid/content/pm/SharedLibraryInfo;->addDependency(Landroid/content/pm/SharedLibraryInfo;)V
+HSPLandroid/content/pm/SharedLibraryInfo;->clearDependencies()V
+HSPLandroid/content/pm/SharedLibraryInfo;->createForDynamic(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Landroid/content/pm/SharedLibraryInfo;
+HSPLandroid/content/pm/SharedLibraryInfo;->createForStatic(Landroid/content/pm/parsing/AndroidPackage;)Landroid/content/pm/SharedLibraryInfo;
HSPLandroid/content/pm/SharedLibraryInfo;->getAllCodePaths()Ljava/util/List;
+HSPLandroid/content/pm/SharedLibraryInfo;->getDeclaringPackage()Landroid/content/pm/VersionedPackage;
HSPLandroid/content/pm/SharedLibraryInfo;->getDependencies()Ljava/util/List;
+HSPLandroid/content/pm/SharedLibraryInfo;->getLongVersion()J
+HSPLandroid/content/pm/SharedLibraryInfo;->getName()Ljava/lang/String;
+HSPLandroid/content/pm/SharedLibraryInfo;->getPackageName()Ljava/lang/String;
HSPLandroid/content/pm/SharedLibraryInfo;->getPath()Ljava/lang/String;
+HSPLandroid/content/pm/SharedLibraryInfo;->getType()I
+HPLandroid/content/pm/SharedLibraryInfo;->getVersion()I
+HPLandroid/content/pm/SharedLibraryInfo;->isStatic()Z
HSPLandroid/content/pm/SharedLibraryInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/pm/ShortcutInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/ShortcutInfo;
HSPLandroid/content/pm/ShortcutInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/pm/ShortcutInfo$Builder;-><init>(Landroid/content/Context;Ljava/lang/String;)V
HSPLandroid/content/pm/ShortcutInfo$Builder;->build()Landroid/content/pm/ShortcutInfo;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->setActivity(Landroid/content/ComponentName;)Landroid/content/pm/ShortcutInfo$Builder;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->setDisabledMessage(Ljava/lang/CharSequence;)Landroid/content/pm/ShortcutInfo$Builder;
HSPLandroid/content/pm/ShortcutInfo$Builder;->setIcon(Landroid/graphics/drawable/Icon;)Landroid/content/pm/ShortcutInfo$Builder;
HSPLandroid/content/pm/ShortcutInfo$Builder;->setIntent(Landroid/content/Intent;)Landroid/content/pm/ShortcutInfo$Builder;
HSPLandroid/content/pm/ShortcutInfo$Builder;->setIntents([Landroid/content/Intent;)Landroid/content/pm/ShortcutInfo$Builder;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->setLongLabel(Ljava/lang/CharSequence;)Landroid/content/pm/ShortcutInfo$Builder;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->setLongLived(Z)Landroid/content/pm/ShortcutInfo$Builder;
+HSPLandroid/content/pm/ShortcutInfo$Builder;->setRank(I)Landroid/content/pm/ShortcutInfo$Builder;
HSPLandroid/content/pm/ShortcutInfo$Builder;->setShortLabel(Ljava/lang/CharSequence;)Landroid/content/pm/ShortcutInfo$Builder;
+PLandroid/content/pm/ShortcutInfo;-><init>(ILjava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;ILjava/lang/String;Ljava/lang/CharSequence;ILjava/lang/String;Ljava/lang/CharSequence;ILjava/lang/String;Ljava/util/Set;[Landroid/content/Intent;ILandroid/os/PersistableBundle;JIILjava/lang/String;Ljava/lang/String;I[Landroid/app/Person;Landroid/content/LocusId;)V
HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/content/pm/ShortcutInfo$Builder;)V
+HPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/content/pm/ShortcutInfo;I)V
HSPLandroid/content/pm/ShortcutInfo;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/pm/ShortcutInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/ShortcutInfo$1;)V
+PLandroid/content/pm/ShortcutInfo;->addFlags(I)V
+HPLandroid/content/pm/ShortcutInfo;->addIndentOrComma(Ljava/lang/StringBuilder;Ljava/lang/String;)V
+PLandroid/content/pm/ShortcutInfo;->clearFlags(I)V
+PLandroid/content/pm/ShortcutInfo;->clone(I)Landroid/content/pm/ShortcutInfo;
HSPLandroid/content/pm/ShortcutInfo;->cloneCategories(Ljava/util/Set;)Landroid/util/ArraySet;
+PLandroid/content/pm/ShortcutInfo;->cloneIntents([Landroid/content/Intent;)[Landroid/content/Intent;
+PLandroid/content/pm/ShortcutInfo;->clonePersistableBundle([Landroid/os/PersistableBundle;)[Landroid/os/PersistableBundle;
HSPLandroid/content/pm/ShortcutInfo;->clonePersons([Landroid/app/Person;)[Landroid/app/Person;
+PLandroid/content/pm/ShortcutInfo;->copyNonNullFieldsFrom(Landroid/content/pm/ShortcutInfo;)V
+PLandroid/content/pm/ShortcutInfo;->enforceMandatoryFields(Z)V
+PLandroid/content/pm/ShortcutInfo;->ensureUpdatableWith(Landroid/content/pm/ShortcutInfo;Z)V
HSPLandroid/content/pm/ShortcutInfo;->fixUpIntentExtras()V
+HSPLandroid/content/pm/ShortcutInfo;->getActivity()Landroid/content/ComponentName;
+PLandroid/content/pm/ShortcutInfo;->getBitmapPath()Ljava/lang/String;
+PLandroid/content/pm/ShortcutInfo;->getCategories()Ljava/util/Set;
+PLandroid/content/pm/ShortcutInfo;->getDisabledMessage()Ljava/lang/CharSequence;
+PLandroid/content/pm/ShortcutInfo;->getDisabledMessageResName()Ljava/lang/String;
+PLandroid/content/pm/ShortcutInfo;->getDisabledMessageResourceId()I
+PLandroid/content/pm/ShortcutInfo;->getDisabledReason()I
+PLandroid/content/pm/ShortcutInfo;->getDisabledReasonDebugString(I)Ljava/lang/String;
+HSPLandroid/content/pm/ShortcutInfo;->getDisabledReasonForRestoreIssue(Landroid/content/Context;I)Ljava/lang/String;
+PLandroid/content/pm/ShortcutInfo;->getExtras()Landroid/os/PersistableBundle;
+PLandroid/content/pm/ShortcutInfo;->getFlags()I
+PLandroid/content/pm/ShortcutInfo;->getIconResName()Ljava/lang/String;
+HSPLandroid/content/pm/ShortcutInfo;->getIconResourceId()I
HSPLandroid/content/pm/ShortcutInfo;->getId()Ljava/lang/String;
+PLandroid/content/pm/ShortcutInfo;->getImplicitRank()I
+PLandroid/content/pm/ShortcutInfo;->getIntentPersistableExtrases()[Landroid/os/PersistableBundle;
+PLandroid/content/pm/ShortcutInfo;->getIntentsNoExtras()[Landroid/content/Intent;
+PLandroid/content/pm/ShortcutInfo;->getLastChangedTimestamp()J
+PLandroid/content/pm/ShortcutInfo;->getLocusId()Landroid/content/LocusId;
+HSPLandroid/content/pm/ShortcutInfo;->getPackage()Ljava/lang/String;
+PLandroid/content/pm/ShortcutInfo;->getPersons()[Landroid/app/Person;
+PLandroid/content/pm/ShortcutInfo;->getRank()I
+HPLandroid/content/pm/ShortcutInfo;->getResourceEntryName(Ljava/lang/String;)Ljava/lang/String;
+PLandroid/content/pm/ShortcutInfo;->getResourcePackageName(Ljava/lang/String;)Ljava/lang/String;
+PLandroid/content/pm/ShortcutInfo;->getResourceString(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;
+HPLandroid/content/pm/ShortcutInfo;->getResourceTypeAndEntryName(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/content/pm/ShortcutInfo;->getShortLabel()Ljava/lang/CharSequence;
+PLandroid/content/pm/ShortcutInfo;->getText()Ljava/lang/CharSequence;
+PLandroid/content/pm/ShortcutInfo;->getTextResId()I
+PLandroid/content/pm/ShortcutInfo;->getTextResName()Ljava/lang/String;
+PLandroid/content/pm/ShortcutInfo;->getTitle()Ljava/lang/CharSequence;
+PLandroid/content/pm/ShortcutInfo;->getTitleResId()I
+PLandroid/content/pm/ShortcutInfo;->getTitleResName()Ljava/lang/String;
+HSPLandroid/content/pm/ShortcutInfo;->getUserHandle()Landroid/os/UserHandle;
+PLandroid/content/pm/ShortcutInfo;->getUserId()I
+HPLandroid/content/pm/ShortcutInfo;->hasAdaptiveBitmap()Z
+PLandroid/content/pm/ShortcutInfo;->hasAnyResources()Z
+HSPLandroid/content/pm/ShortcutInfo;->hasFlags(I)Z
+HSPLandroid/content/pm/ShortcutInfo;->hasIconFile()Z
+HSPLandroid/content/pm/ShortcutInfo;->hasIconResource()Z
+PLandroid/content/pm/ShortcutInfo;->hasKeyFieldsOnly()Z
+PLandroid/content/pm/ShortcutInfo;->hasStringResourcesResolved()Z
+PLandroid/content/pm/ShortcutInfo;->isAlive()Z
+HSPLandroid/content/pm/ShortcutInfo;->isDeclaredInManifest()Z
+PLandroid/content/pm/ShortcutInfo;->isDisabledForRestoreIssue(I)Z
+HSPLandroid/content/pm/ShortcutInfo;->isDynamic()Z
+PLandroid/content/pm/ShortcutInfo;->isDynamicVisible()Z
+HSPLandroid/content/pm/ShortcutInfo;->isEnabled()Z
+PLandroid/content/pm/ShortcutInfo;->isFloating()Z
+PLandroid/content/pm/ShortcutInfo;->isIconPendingSave()Z
+PLandroid/content/pm/ShortcutInfo;->isImmutable()Z
+PLandroid/content/pm/ShortcutInfo;->isLongLived()Z
+PLandroid/content/pm/ShortcutInfo;->isManifestShortcut()Z
+PLandroid/content/pm/ShortcutInfo;->isOriginallyFromManifest()Z
+HPLandroid/content/pm/ShortcutInfo;->isPinned()Z
+PLandroid/content/pm/ShortcutInfo;->isRankChanged()Z
+PLandroid/content/pm/ShortcutInfo;->isReturnedByServer()Z
+PLandroid/content/pm/ShortcutInfo;->isVisibleToPublisher()Z
+PLandroid/content/pm/ShortcutInfo;->lookUpResourceId(Landroid/content/res/Resources;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+PLandroid/content/pm/ShortcutInfo;->lookUpResourceName(Landroid/content/res/Resources;IZLjava/lang/String;)Ljava/lang/String;
+PLandroid/content/pm/ShortcutInfo;->lookupAndFillInResourceIds(Landroid/content/res/Resources;)V
+PLandroid/content/pm/ShortcutInfo;->lookupAndFillInResourceNames(Landroid/content/res/Resources;)V
+PLandroid/content/pm/ShortcutInfo;->resolveResourceStrings(Landroid/content/res/Resources;)V
+PLandroid/content/pm/ShortcutInfo;->setBitmapPath(Ljava/lang/String;)V
+PLandroid/content/pm/ShortcutInfo;->setCategories(Ljava/util/Set;)V
+PLandroid/content/pm/ShortcutInfo;->setIconResName(Ljava/lang/String;)V
+PLandroid/content/pm/ShortcutInfo;->setIconResourceId(I)V
+PLandroid/content/pm/ShortcutInfo;->setIntentExtras(Landroid/content/Intent;Landroid/os/PersistableBundle;)Landroid/content/Intent;
+PLandroid/content/pm/ShortcutInfo;->setIntents([Landroid/content/Intent;)V
+PLandroid/content/pm/ShortcutInfo;->setReturnedByServer()V
+PLandroid/content/pm/ShortcutInfo;->setTimestamp(J)V
+HPLandroid/content/pm/ShortcutInfo;->toStringInner(ZZLjava/lang/String;)Ljava/lang/String;
HSPLandroid/content/pm/ShortcutInfo;->validateIcon(Landroid/graphics/drawable/Icon;)Landroid/graphics/drawable/Icon;
HSPLandroid/content/pm/ShortcutInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/pm/ShortcutManager$ShareShortcutInfo$1;-><init>()V
+PLandroid/content/pm/ShortcutManager$ShareShortcutInfo;-><clinit>()V
+PLandroid/content/pm/ShortcutManager$ShareShortcutInfo;-><init>(Landroid/content/pm/ShortcutInfo;Landroid/content/ComponentName;)V
+PLandroid/content/pm/ShortcutManager$ShareShortcutInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/pm/ShortcutManager;-><init>(Landroid/content/Context;Landroid/content/pm/IShortcutService;)V
+HSPLandroid/content/pm/ShortcutManager;->disableShortcuts(Ljava/util/List;)V
+HSPLandroid/content/pm/ShortcutManager;->disableShortcuts(Ljava/util/List;Ljava/lang/CharSequence;)V
+HSPLandroid/content/pm/ShortcutManager;->enableShortcuts(Ljava/util/List;)V
+HSPLandroid/content/pm/ShortcutManager;->getDynamicShortcuts()Ljava/util/List;
+HPLandroid/content/pm/ShortcutManager;->getManifestShortcuts()Ljava/util/List;
+HPLandroid/content/pm/ShortcutManager;->getMaxShortcutCountPerActivity()I
+HSPLandroid/content/pm/ShortcutManager;->getPinnedShortcuts()Ljava/util/List;
HSPLandroid/content/pm/ShortcutManager;->injectMyUserId()I
HSPLandroid/content/pm/ShortcutManager;->setDynamicShortcuts(Ljava/util/List;)Z
+HSPLandroid/content/pm/ShortcutManager;->updateShortcuts(Ljava/util/List;)Z
+HSPLandroid/content/pm/ShortcutServiceInternal;-><init>()V
HSPLandroid/content/pm/Signature$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/Signature;
HSPLandroid/content/pm/Signature$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/pm/Signature$1;->newArray(I)[Landroid/content/pm/Signature;
HSPLandroid/content/pm/Signature$1;->newArray(I)[Ljava/lang/Object;
-HSPLandroid/content/pm/Signature;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/content/pm/Signature;-><init>(Landroid/os/Parcel;Landroid/content/pm/Signature$1;)V
+HSLandroid/content/pm/Signature;-><init>(Landroid/os/Parcel;)V
+HSLandroid/content/pm/Signature;-><init>(Landroid/os/Parcel;Landroid/content/pm/Signature$1;)V
+HSPLandroid/content/pm/Signature;-><init>(Ljava/lang/String;)V
HSPLandroid/content/pm/Signature;-><init>([B)V
+HSPLandroid/content/pm/Signature;-><init>([Ljava/security/cert/Certificate;)V
+HSPLandroid/content/pm/Signature;->areExactMatch([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)Z
HSPLandroid/content/pm/Signature;->equals(Ljava/lang/Object;)Z
+HSPLandroid/content/pm/Signature;->getPublicKey()Ljava/security/PublicKey;
HSPLandroid/content/pm/Signature;->hashCode()I
+HSPLandroid/content/pm/Signature;->parseHexDigit(I)I
HSPLandroid/content/pm/Signature;->toByteArray()[B
+HSPLandroid/content/pm/Signature;->toChars()[C
+HSPLandroid/content/pm/Signature;->toChars([C[I)[C
+HSPLandroid/content/pm/Signature;->toCharsString()Ljava/lang/String;
+HPLandroid/content/pm/Signature;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/pm/SigningInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/SigningInfo;
HSPLandroid/content/pm/SigningInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/SigningInfo;-><init>(Landroid/content/pm/PackageParser$SigningDetails;)V
HSPLandroid/content/pm/SigningInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/content/pm/SigningInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/SigningInfo$1;)V
+HSPLandroid/content/pm/SigningInfo;->getSigningCertificateHistory()[Landroid/content/pm/Signature;
+HSPLandroid/content/pm/SigningInfo;->hasMultipleSigners()Z
+HSPLandroid/content/pm/SigningInfo;->hasPastSigningCertificates()Z
+PLandroid/content/pm/SigningInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/content/pm/StringParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/StringParceledListSlice;
+PLandroid/content/pm/StringParceledListSlice$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/content/pm/StringParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
+PLandroid/content/pm/StringParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;Landroid/content/pm/StringParceledListSlice$1;)V
+PLandroid/content/pm/StringParceledListSlice;->getList()Ljava/util/List;
HSPLandroid/content/pm/UserInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/UserInfo;
HSPLandroid/content/pm/UserInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/UserInfo;-><init>(ILjava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
+PLandroid/content/pm/UserInfo;-><init>(Landroid/content/pm/UserInfo;)V
HSPLandroid/content/pm/UserInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/content/pm/UserInfo;-><init>(Landroid/os/Parcel;Landroid/content/pm/UserInfo$1;)V
+HPLandroid/content/pm/UserInfo;->flagsToString(I)Ljava/lang/String;
HSPLandroid/content/pm/UserInfo;->getUserHandle()Landroid/os/UserHandle;
HSPLandroid/content/pm/UserInfo;->isAdmin()Z
+PLandroid/content/pm/UserInfo;->isDemo()Z
+HSPLandroid/content/pm/UserInfo;->isEnabled()Z
HSPLandroid/content/pm/UserInfo;->isEphemeral()Z
+HSPLandroid/content/pm/UserInfo;->isFull()Z
HSPLandroid/content/pm/UserInfo;->isGuest()Z
+PLandroid/content/pm/UserInfo;->isInitialized()Z
HSPLandroid/content/pm/UserInfo;->isManagedProfile()Z
+HSPLandroid/content/pm/UserInfo;->isPrimary()Z
HSPLandroid/content/pm/UserInfo;->isProfile()Z
+PLandroid/content/pm/UserInfo;->isQuietModeEnabled()Z
HSPLandroid/content/pm/UserInfo;->isRestricted()Z
+PLandroid/content/pm/UserInfo;->isSystemOnly()Z
+PLandroid/content/pm/UserInfo;->isSystemOnly(I)Z
HSPLandroid/content/pm/UserInfo;->supportsSwitchTo()Z
HSPLandroid/content/pm/UserInfo;->supportsSwitchToByUser()Z
+PLandroid/content/pm/UserInfo;->toString()Ljava/lang/String;
+HSPLandroid/content/pm/UserInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/pm/VersionedPackage$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/VersionedPackage;
HSPLandroid/content/pm/VersionedPackage$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/pm/VersionedPackage;-><init>(Landroid/os/Parcel;)V
HSPLandroid/content/pm/VersionedPackage;-><init>(Landroid/os/Parcel;Landroid/content/pm/VersionedPackage$1;)V
+HSPLandroid/content/pm/VersionedPackage;-><init>(Ljava/lang/String;J)V
+HSPLandroid/content/pm/VersionedPackage;->getLongVersionCode()J
+HSPLandroid/content/pm/VersionedPackage;->getPackageName()Ljava/lang/String;
HSPLandroid/content/pm/VersionedPackage;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/content/pm/dex/ArtManager;-><init>(Landroid/content/Context;Landroid/content/pm/dex/IArtManager;)V
HSPLandroid/content/pm/dex/ArtManager;->getCurrentProfilePath(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
HSPLandroid/content/pm/dex/ArtManager;->getProfileName(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/content/pm/dex/ArtManager;->isRuntimeProfilingEnabled(I)Z
+HPLandroid/content/pm/dex/ArtManager;->snapshotRuntimeProfile(ILjava/lang/String;Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/content/pm/dex/ArtManager$SnapshotRuntimeProfileCallback;)V
+HSPLandroid/content/pm/dex/ArtManagerInternal;-><init>()V
+PLandroid/content/pm/dex/DexMetadataHelper;->buildDexMetadataPathForApk(Ljava/lang/String;)Ljava/lang/String;
+PLandroid/content/pm/dex/DexMetadataHelper;->buildDexMetadataPathForFile(Ljava/io/File;)Ljava/lang/String;
+PLandroid/content/pm/dex/DexMetadataHelper;->buildPackageApkToDexMetadataMap(Ljava/util/List;)Ljava/util/Map;
+PLandroid/content/pm/dex/DexMetadataHelper;->findDexMetadataForFile(Ljava/io/File;)Ljava/io/File;
+PLandroid/content/pm/dex/DexMetadataHelper;->getPackageDexMetadata(Landroid/content/pm/PackageParser$PackageLite;)Ljava/util/Map;
+PLandroid/content/pm/dex/DexMetadataHelper;->getPackageDexMetadata(Landroid/content/pm/parsing/AndroidPackage;)Ljava/util/Map;
+PLandroid/content/pm/dex/DexMetadataHelper;->getPackageDexMetadataSize(Landroid/content/pm/PackageParser$PackageLite;)J
+PLandroid/content/pm/dex/DexMetadataHelper;->validateDexMetadataFile(Ljava/lang/String;)V
+PLandroid/content/pm/dex/DexMetadataHelper;->validatePackageDexMetadata(Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLandroid/content/pm/dex/IArtManager$Stub;-><init>()V
+PLandroid/content/pm/dex/IArtManager$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/content/pm/dex/IArtManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/dex/IArtManager;
+PLandroid/content/pm/dex/IArtManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy;->onError(I)V
+PLandroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy;->onSuccess(Landroid/os/ParcelFileDescriptor;)V
+HPLandroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub;-><init>()V
+HPLandroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;
+HPLandroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/content/pm/dex/PackageOptimizationInfo;-><init>(II)V
+PLandroid/content/pm/dex/PackageOptimizationInfo;->createWithNoInfo()Landroid/content/pm/dex/PackageOptimizationInfo;
+PLandroid/content/pm/dex/PackageOptimizationInfo;->getCompilationFilter()I
+PLandroid/content/pm/dex/PackageOptimizationInfo;->getCompilationReason()I
+HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseApkLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$ApkLite;
+HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseApkLite(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/PackageParser$ApkLite;
+HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseApkLiteInner(Ljava/io/File;Ljava/io/FileDescriptor;Ljava/lang/String;I)Landroid/content/pm/PackageParser$ApkLite;
+HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseClusterPackageLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$PackageLite;
+HSPLandroid/content/pm/parsing/ApkLiteParseUtils;->parseMonolithicPackageLite(Ljava/io/File;I)Landroid/content/pm/PackageParser$PackageLite;
+HSPLandroid/content/pm/parsing/ApkParseUtils$ParseResult;-><init>()V
+HSPLandroid/content/pm/parsing/ApkParseUtils$ParseResult;->error(ILjava/lang/String;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils$ParseResult;->getErrorMessage()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ApkParseUtils$ParseResult;->getParseError()I
+HSPLandroid/content/pm/parsing/ApkParseUtils$ParseResult;->getResultAndNull()Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/ApkParseUtils$ParseResult;->isSuccess()Z
+HSPLandroid/content/pm/parsing/ApkParseUtils$ParseResult;->reset()Landroid/content/pm/parsing/ApkParseUtils$ParseInput;
+HSPLandroid/content/pm/parsing/ApkParseUtils$ParseResult;->success(Landroid/content/pm/parsing/ParsingPackage;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->buildClassName(Ljava/lang/String;Ljava/lang/CharSequence;)Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->checkOverlayRequiredSystemProperty(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/content/pm/parsing/ApkParseUtils;->collectCertificates(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->collectCertificates(Ljava/lang/String;ZZLandroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/PackageParser$SigningDetails;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->convertNewPermissions(Landroid/content/pm/parsing/ParsingPackage;)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->convertSplitPermissions(Landroid/content/pm/parsing/ParsingPackage;)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->generateAppDetailsHiddenActivity(Landroid/content/pm/parsing/ParsingPackage;[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->hasDomainURLs(Landroid/content/pm/parsing/ParsingPackage;)Z
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseAdditionalCertificates(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)[Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseBaseApk(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Landroid/util/DisplayMetrics;Ljava/io/File;Landroid/content/res/AssetManager;I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseBaseApk(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Ljava/lang/String;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseBaseApkTags(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/TypedArray;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseBaseApplication(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseClusterPackage(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Landroid/util/DisplayMetrics;ZLjava/io/File;I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseFeatureInfo(Landroid/content/res/Resources;Landroid/util/AttributeSet;)Landroid/content/pm/FeatureInfo;
+PLandroid/content/pm/parsing/ApkParseUtils;->parseInstrumentation(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseManifestAttributes(Landroid/content/res/TypedArray;Landroid/content/pm/parsing/ParsingPackage;I)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseMetaData(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/os/Bundle;[Ljava/lang/String;)Landroid/os/Bundle;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseMonolithicPackage(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Landroid/util/DisplayMetrics;ZLjava/io/File;I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseOriginalPackage(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Z
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseOverlay(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parsePackage(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/PackageParser$Callback;Landroid/util/DisplayMetrics;ZLjava/io/File;I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parsePackageItemInfo(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Ljava/lang/String;Landroid/content/res/TypedArray;ZIIIIII)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parsePermission(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parsePermissionGroup(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+PLandroid/content/pm/parsing/ApkParseUtils;->parsePermissionTree(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseProtectedBroadcast(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Z
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseQueries(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseRestrictUpdateHash(ILandroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Z
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseSharedUser(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/TypedArray;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseSplitApk(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/util/DisplayMetrics;[Ljava/lang/String;Landroid/content/pm/parsing/ParsingPackage;ILandroid/content/res/AssetManager;I)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseSplitApk(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;II[Ljava/lang/String;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseSplitApplication(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;[Ljava/lang/String;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;II[Ljava/lang/String;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseSupportScreens(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Z
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseUnknownTag(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseUsesFeature(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Z
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseUsesPermission(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Landroid/content/pm/PackageParser$Callback;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseUsesSdk(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->parseUsesStaticLibrary(Landroid/content/pm/parsing/ApkParseUtils$ParseInput;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/content/pm/parsing/ApkParseUtils$ParseResult;
+HSPLandroid/content/pm/parsing/ApkParseUtils;->setMaxAspectRatio(Landroid/content/pm/parsing/ParsingPackage;)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->setMinAspectRatio(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/pm/PackageParser$Callback;)V
+HSPLandroid/content/pm/parsing/ApkParseUtils;->validateName(Ljava/lang/String;ZZ)Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->addIntent(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->hasMaxAspectRatio()Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->hasMinAspectRatio()Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->setMaxAspectRatio(IF)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->setMinAspectRatio(IF)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->setPackageName(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->getComponentName()Landroid/content/ComponentName;
+HPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->getMetaData()Landroid/os/Bundle;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->getName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->getPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->getSplitName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->isDirectBootAware()Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->isEnabled()Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->setEnabled(Z)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->setPackageName(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->setPackageNameInternal(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->setSplitName(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation;-><clinit>()V
+PLandroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation;-><init>(Landroid/os/Parcel;)V
+PLandroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation;->setTargetPackage(Ljava/lang/String;)V
+PLandroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation;->setTargetProcesses(Ljava/lang/String;)V
+PLandroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;->addRawDataType(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;->createIntentsList(Landroid/os/Parcel;)Ljava/util/ArrayList;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;->getClassName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;->getPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;->writeIntentInfoToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;->writeIntentsList(Ljava/util/List;Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;->getPermission()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;->getProcessName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;->setPermission(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;->setProcessName(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedMainComponent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;-><init>(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->getGroup()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->getProtection()I
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->getProtectionFlags()I
+PLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->isAppOp()Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->isRuntime()Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->setGroup(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->setName(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->getAuthority()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->getIntents()Ljava/util/List;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->getReadPermission()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->getWritePermission()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->isSyncable()Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->setAuthority(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->setReadPermission(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->setWritePermission(Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedService$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedService$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedService$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedService;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedService;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedService;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedService;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo$1;-><init>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;-><clinit>()V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->getActivityResizeMode(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/TypedArray;I)I
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->isImplicitlyExposedIntent(Landroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;)Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseActivity([Ljava/lang/String;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;ZZ)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseActivityAlias(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseAllMetaData(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;Ljava/lang/String;Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;[Ljava/lang/String;)Z
+PLandroid/content/pm/parsing/ComponentParseUtils;->parseInstrumentation(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseIntentInfo(Landroid/content/pm/parsing/ComponentParseUtils$ParsedIntentInfo;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZZ[Ljava/lang/String;)Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseLayout(Landroid/content/res/Resources;Landroid/util/AttributeSet;)Landroid/content/pm/ActivityInfo$WindowLayout;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parsePermission(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parsePermissionGroup(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;
+PLandroid/content/pm/parsing/ComponentParseUtils;->parsePermissionTree(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseProvider([Ljava/lang/String;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseProviderTags(Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;ZLandroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;[Ljava/lang/String;)Z
+HSPLandroid/content/pm/parsing/ComponentParseUtils;->parseService([Ljava/lang/String;Landroid/content/pm/parsing/ParsingPackage;Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;I[Ljava/lang/String;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;
+HSPLandroid/content/pm/parsing/PackageImpl$1;-><init>()V
+HSPLandroid/content/pm/parsing/PackageImpl;-><clinit>()V
+HSPLandroid/content/pm/parsing/PackageImpl;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/pm/parsing/PackageImpl;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;Z)V
+HSPLandroid/content/pm/parsing/PackageImpl;->addActivity(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;)Landroid/content/pm/parsing/ParsingPackage;
+PLandroid/content/pm/parsing/PackageImpl;->addAdoptPermission(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+PLandroid/content/pm/parsing/PackageImpl;->addAdoptPermission(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addConfigPreference(Landroid/content/pm/ConfigurationInfo;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addConfigPreference(Landroid/content/pm/ConfigurationInfo;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addImplicitPermission(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addImplicitPermission(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+PLandroid/content/pm/parsing/PackageImpl;->addInstrumentation(Landroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation;)Landroid/content/pm/parsing/PackageImpl;
+PLandroid/content/pm/parsing/PackageImpl;->addInstrumentation(Landroid/content/pm/parsing/ComponentParseUtils$ParsedInstrumentation;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addLibraryName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addLibraryName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addOriginalPackage(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addOriginalPackage(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addPermission(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addPermission(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addPermissionGroup(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addPermissionGroup(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addProtectedBroadcast(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addProtectedBroadcast(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addProvider(Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addQueriesPackage(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addQueriesPackage(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addReceiver(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addReqFeature(Landroid/content/pm/FeatureInfo;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addReqFeature(Landroid/content/pm/FeatureInfo;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addRequestedPermission(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addRequestedPermission(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addService(Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesLibrary(ILjava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesLibrary(ILjava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesOptionalLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesOptionalLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesStaticLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesStaticLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesStaticLibraryCertDigests([Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesStaticLibraryCertDigests([Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesStaticLibraryVersion(J)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->addUsesStaticLibraryVersion(J)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->asSplit([Ljava/lang/String;[Ljava/lang/String;[ILandroid/util/SparseArray;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->asSplit([Ljava/lang/String;[Ljava/lang/String;[ILandroid/util/SparseArray;)Landroid/content/pm/parsing/ParsingPackage;
+PLandroid/content/pm/parsing/PackageImpl;->canHaveOatDir()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->cantSaveState()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->capPermissionPriorities()Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->clearAdoptPermissions()Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->clearOriginalPackages()Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->clearProtectedBroadcasts()Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->forParsing(Ljava/lang/String;Ljava/lang/String;Landroid/content/res/TypedArray;Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->getActivities()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAdoptPermissions()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAllCodePaths()Ljava/util/List;
+HPLandroid/content/pm/parsing/PackageImpl;->getAllCodePathsExcludingResourceOnly()Ljava/util/List;
+PLandroid/content/pm/parsing/PackageImpl;->getAppInfoClassLoaderName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAppInfoCodePath()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAppInfoPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAppInfoProcessName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAppInfoResourcePath()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getAppMetaData()Landroid/os/Bundle;
+HSPLandroid/content/pm/parsing/PackageImpl;->getApplicationInfoVolumeUuid()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getBaseCodePath()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getBaseRevisionCode()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getCodePath()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getCompileSdkVersion()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getCompileSdkVersionCodeName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getCpuAbiOverride()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getDataDir()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getFlags()I
+PLandroid/content/pm/parsing/PackageImpl;->getHiddenApiEnforcementPolicy()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getImplicitPermissions()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getInstallLocation()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getInstrumentations()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getKeySetMapping()Ljava/util/Map;
+HPLandroid/content/pm/parsing/PackageImpl;->getLatestForegroundPackageUseTimeInMills()J
+HPLandroid/content/pm/parsing/PackageImpl;->getLatestPackageUseTimeInMills()J
+HSPLandroid/content/pm/parsing/PackageImpl;->getLibraryNames()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getLongVersionCode()J
+HSPLandroid/content/pm/parsing/PackageImpl;->getManifestPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getMaxAspectRatio()F
+HSPLandroid/content/pm/parsing/PackageImpl;->getMinAspectRatio()F
+PLandroid/content/pm/parsing/PackageImpl;->getMinSdkVersion()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getNativeLibraryDir()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getNativeLibraryRootDir()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getOriginalPackages()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getOverlayCategory()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getOverlayPriority()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getOverlayTarget()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getOverlayTargetName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getPackageName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getPermission()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getPermissionGroups()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getPermissions()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getPreferredOrder()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getPrimaryCpuAbi()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getPrivateFlags()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getProcessName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getProtectedBroadcasts()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getProviders()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getQueriesIntents()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getQueriesPackages()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getRealPackage()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getReceivers()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getRequestedPermissions()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getRequiredAccountType()Ljava/lang/String;
+PLandroid/content/pm/parsing/PackageImpl;->getRestrictUpdateHash()[B
+HSPLandroid/content/pm/parsing/PackageImpl;->getRestrictedAccountType()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSeInfo()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSeInfoUser()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSecondaryCpuAbi()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getServices()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSharedUserId()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSharedUserLabel()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getSigningDetails()Landroid/content/pm/PackageParser$SigningDetails;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSplitCodePaths()[Ljava/lang/String;
+PLandroid/content/pm/parsing/PackageImpl;->getSplitDependencies()Landroid/util/SparseArray;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSplitFlags()[I
+HSPLandroid/content/pm/parsing/PackageImpl;->getSplitNames()[Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getSplitRevisionCodes()[I
+HSPLandroid/content/pm/parsing/PackageImpl;->getStaticSharedLibName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getStaticSharedLibVersion()J
+HSPLandroid/content/pm/parsing/PackageImpl;->getTargetSdkVersion()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getTaskAffinity()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUiOptions()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getUid()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getUpgradeKeySets()Ljava/util/Set;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUsesLibraries()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUsesLibraryFiles()[Ljava/lang/String;
+PLandroid/content/pm/parsing/PackageImpl;->getUsesLibraryInfos()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUsesOptionalLibraries()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUsesStaticLibraries()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUsesStaticLibrariesCertDigests()[[Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getUsesStaticLibrariesVersions()[J
+HSPLandroid/content/pm/parsing/PackageImpl;->getVersionCode()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getVersionCodeMajor()I
+HSPLandroid/content/pm/parsing/PackageImpl;->getVersionName()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->getVolumeUuid()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->hasComponentClassName(Ljava/lang/String;)Z
+HSPLandroid/content/pm/parsing/PackageImpl;->hideAsFinal()Landroid/content/pm/parsing/AndroidPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->hideAsParsed()Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->initForUser(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->initForUser(I)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->internStringArrayList(Ljava/util/List;)V
+HPLandroid/content/pm/parsing/PackageImpl;->isAllowedToUseHiddenApis()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isBaseHardwareAccelerated()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isCoreApp()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isDirectBootAware()Z
+PLandroid/content/pm/parsing/PackageImpl;->isEmbeddedDexUsed()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isEnabled()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isEncryptionAware()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isExternal()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isForceQueryable()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isHiddenUntilInstalled()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isInstantApp()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isLibrary()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isMatch(I)Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isOverlayIsStatic()Z
+HPLandroid/content/pm/parsing/PackageImpl;->isPackageWhitelistedForHiddenApis()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isPrivileged()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isProduct()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isProfileableByShell()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isRequiredForAllUsers()Z
+PLandroid/content/pm/parsing/PackageImpl;->isSignedWithPlatformKey()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isStaticSharedLibrary()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isStub()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isSystem()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isSystemApp()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isSystemExt()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isUpdatedSystemApp()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isUse32BitAbi()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->isVendor()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->makeListAllCodePaths()Ljava/util/List;
+HSPLandroid/content/pm/parsing/PackageImpl;->markNotActivitiesAsNotExportedIfSingleUser()Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->mutate()Landroid/content/pm/parsing/AndroidPackageWrite;
+PLandroid/content/pm/parsing/PackageImpl;->removePermission(I)Landroid/content/pm/parsing/PackageImpl;
+PLandroid/content/pm/parsing/PackageImpl;->removePermission(I)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->removeUsesLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->removeUsesOptionalLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->removeUsesOptionalLibrary(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+PLandroid/content/pm/parsing/PackageImpl;->requestsIsolatedSplitLoading()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->setActivitiesResizeModeResizeable(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setActivitiesResizeModeResizeable(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setActivitiesResizeModeResizeableViaSdkVersion(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setActivitiesResizeModeResizeableViaSdkVersion(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllComponentsDirectBootAware(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllComponentsDirectBootAware(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowAudioPlaybackCapture(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowAudioPlaybackCapture(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowBackup(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowBackup(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowClearUserData(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowClearUserData(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowClearUserDataOnFailedRestore(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowClearUserDataOnFailedRestore(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowTaskReparenting(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAllowTaskReparenting(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAnyDensity(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAnyDensity(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAppComponentFactory(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAppComponentFactory(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAppMetaData(Landroid/os/Bundle;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setAppMetaData(Landroid/os/Bundle;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoBaseResourcePath(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoBaseResourcePath(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoCodePath(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoCodePath(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoResourcePath(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoResourcePath(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoSplitResourcePaths([Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationInfoSplitResourcePaths([Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationVolumeUuid(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationVolumeUuid(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setApplicationVolumeUuid(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBackupAgentName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBackupAgentName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBackupInForeground(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBackupInForeground(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBanner(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBanner(I)Landroid/content/pm/parsing/ParsingPackage;
+PLandroid/content/pm/parsing/PackageImpl;->setBaseCodePath(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+PLandroid/content/pm/parsing/PackageImpl;->setBaseCodePath(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBaseHardwareAccelerated(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setBaseHardwareAccelerated(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCantSaveState(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCantSaveState(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCategory(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCategory(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setClassLoaderName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setClassLoaderName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setClassName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setClassName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCodePath(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+PLandroid/content/pm/parsing/PackageImpl;->setCodePath(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCodePath(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCompatibleWidthLimitDp(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCompatibleWidthLimitDp(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCompileSdkVersionCodename(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCoreApp(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCoreApp(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCpuAbiOverride(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setCpuAbiOverride(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDebuggable(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDebuggable(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDefaultToDeviceProtectedStorage(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDefaultToDeviceProtectedStorage(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDefaultToDeviceProtectedStorage(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDescriptionRes(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDescriptionRes(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDirectBootAware(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDirectBootAware(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setDirectBootAware(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setEnabled(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setEnabled(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setExternalStorage(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setExternalStorage(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setExtractNativeLibs(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setExtractNativeLibs(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setFactoryTest(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setForceQueryable(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setForceQueryable(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setFullBackupContent(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setFullBackupContent(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setFullBackupOnly(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setFullBackupOnly(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHasCode(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHasCode(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHasDomainUrls(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHasDomainUrls(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHasFragileUserData(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHasFragileUserData(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHiddenUntilInstalled(Z)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setHiddenUntilInstalled(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIcon(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIcon(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIconRes(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIconRes(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setInstallLocation(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setInstallLocation(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsGame(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsGame(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsOverlay(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsOverlay(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsStub(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsStub(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsolatedSplitLoading(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setIsolatedSplitLoading(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setKillAfterRestore(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setKillAfterRestore(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLabelRes(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLabelRes(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLargeHeap(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLargeHeap(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLargestWidthLimitDp(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLargestWidthLimitDp(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLastPackageUsageTimeInMills(IJ)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLastPackageUsageTimeInMills(IJ)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLogo(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setLogo(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setManageSpaceActivityName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setManageSpaceActivityName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMaxAspectRatio(F)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMaxAspectRatio(F)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMinAspectRatio(F)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMinAspectRatio(F)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMinSdkVersion(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMinSdkVersion(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMultiArch(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setMultiArch(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNativeLibraryDir(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNativeLibraryDir(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNativeLibraryRootDir(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNativeLibraryRootDir(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNativeLibraryRootRequiresIsa(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNativeLibraryRootRequiresIsa(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNetworkSecurityConfigRes(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNetworkSecurityConfigRes(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNonLocalizedLabel(Ljava/lang/CharSequence;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setNonLocalizedLabel(Ljava/lang/CharSequence;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOdm(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOem(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayCategory(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayCategory(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayIsStatic(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayIsStatic(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayPriority(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayPriority(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayTarget(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayTarget(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayTargetName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setOverlayTargetName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPackageName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPackageName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPackageSettingCallback(Landroid/content/pm/parsing/ParsedPackage$PackageSettingCallback;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPackageSettingCallback(Landroid/content/pm/parsing/ParsedPackage$PackageSettingCallback;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPartiallyDirectBootAware(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPartiallyDirectBootAware(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPermission(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPermission(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPersistent(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPersistent(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPersistent(Z)Landroid/content/pm/parsing/ParsingPackage;
+PLandroid/content/pm/parsing/PackageImpl;->setPrimaryCpuAbi(Ljava/lang/String;)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPrimaryCpuAbi(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPrimaryCpuAbi(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setPrivileged(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setProcessName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setProcessName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setProcessName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setProduct(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRealPackage(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRealPackage(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRealPackage(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequestLegacyExternalStorage(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequestLegacyExternalStorage(Z)Landroid/content/pm/parsing/ParsingPackage;
+PLandroid/content/pm/parsing/PackageImpl;->setRequiredAccountType(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+PLandroid/content/pm/parsing/PackageImpl;->setRequiredAccountType(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequiredForAllUsers(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequiredForAllUsers(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequiresSmallestWidthDp(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRequiresSmallestWidthDp(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setResizeable(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setResizeable(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRestoreAnyVersion(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRestoreAnyVersion(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRestrictUpdateHash([B)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRestrictUpdateHash([B)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRestrictedAccountType(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRestrictedAccountType(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRoundIconRes(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setRoundIconRes(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSeInfo(Ljava/lang/String;)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSeInfo(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSeInfo(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSeInfoUser(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSeInfoUser(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSecondaryCpuAbi(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSecondaryCpuAbi(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSecondaryNativeLibraryDir(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSecondaryNativeLibraryDir(Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSharedUserId(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSharedUserId(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSharedUserLabel(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSharedUserLabel(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSignedWithPlatformKey(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSigningDetails(Landroid/content/pm/PackageParser$SigningDetails;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSplitClassLoaderName(ILjava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSplitClassLoaderName(ILjava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+PLandroid/content/pm/parsing/PackageImpl;->setSplitCodePaths([Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+PLandroid/content/pm/parsing/PackageImpl;->setSplitCodePaths([Ljava/lang/String;)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSplitHasCode(IZ)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSplitHasCode(IZ)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setStaticSharedLibName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setStaticSharedLibName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setStaticSharedLibVersion(J)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setStaticSharedLibVersion(J)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setStaticSharedLibrary(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setStaticSharedLibrary(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsLargeScreens(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsLargeScreens(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsNormalScreens(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsNormalScreens(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsRtl(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsRtl(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsSmallScreens(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsSmallScreens(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsXLargeScreens(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSupportsXLargeScreens(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSystem(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSystem(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSystemExt(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setSystemExt(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTargetSandboxVersion(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTargetSandboxVersion(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTargetSdkVersion(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTargetSdkVersion(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTaskAffinity(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTaskAffinity(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTestOnly(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTestOnly(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTheme(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setTheme(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUiOptions(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUiOptions(I)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUid(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUid(I)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUpdatedSystemApp(Z)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUpdatedSystemApp(Z)Landroid/content/pm/parsing/PackageImpl;
+PLandroid/content/pm/parsing/PackageImpl;->setUpdatedSystemApp(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUse32BitAbi(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUse32BitAbi(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUseEmbeddedDex(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUseEmbeddedDex(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesCleartextTraffic(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesCleartextTraffic(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesLibraryFiles([Ljava/lang/String;)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesLibraryFiles([Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesLibraryInfos(Ljava/util/List;)Landroid/content/pm/parsing/AndroidPackageWrite;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesLibraryInfos(Ljava/util/List;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesNonSdkApi(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setUsesNonSdkApi(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVendor(Z)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVersionCode(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVersionCode(I)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVersionCodeMajor(I)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVersionCodeMajor(I)Landroid/content/pm/parsing/ParsedPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVersionName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVisibleToInstantApps(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVisibleToInstantApps(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVmSafeMode(Z)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVmSafeMode(Z)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVolumeUuid(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setVolumeUuid(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->setZygotePreloadName(Ljava/lang/String;)Landroid/content/pm/parsing/PackageImpl;
+HSPLandroid/content/pm/parsing/PackageImpl;->setZygotePreloadName(Ljava/lang/String;)Landroid/content/pm/parsing/ParsingPackage;
+HSPLandroid/content/pm/parsing/PackageImpl;->toAppInfoWithoutState()Landroid/content/pm/ApplicationInfo;
+HPLandroid/content/pm/parsing/PackageImpl;->toString()Ljava/lang/String;
+HSPLandroid/content/pm/parsing/PackageImpl;->updateFlags()V
+HSPLandroid/content/pm/parsing/PackageImpl;->usesCompatibilityMode()Z
+PLandroid/content/pm/parsing/PackageImpl;->usesNonSdkApi()Z
+HSPLandroid/content/pm/parsing/PackageImpl;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->assignSharedFieldsForComponentInfo(Landroid/content/pm/ComponentInfo;Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;)V
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->assignSharedFieldsForPackageItemInfo(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;)V
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->checkUseInstalledOrHidden(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/PackageUserState;I)Z
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generate(Landroid/content/pm/parsing/AndroidPackage;[IIJJLjava/util/Set;Landroid/content/pm/PackageUserState;I)Landroid/content/pm/PackageInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateActivityInfo(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ActivityInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateActivityInfo(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;I)Landroid/content/pm/ActivityInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateApplicationInfo(Landroid/content/pm/parsing/AndroidPackage;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ApplicationInfo;
+HPLandroid/content/pm/parsing/PackageInfoUtils;->generatePermissionGroupInfo(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermissionGroup;I)Landroid/content/pm/PermissionGroupInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generatePermissionInfo(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;I)Landroid/content/pm/PermissionInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateProviderInfo(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ProviderInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateProviderInfo(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;I)Landroid/content/pm/ProviderInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateServiceInfo(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;ILandroid/content/pm/PackageUserState;I)Landroid/content/pm/ServiceInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->generateServiceInfo(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;ILandroid/content/pm/PackageUserState;Landroid/content/pm/ApplicationInfo;I)Landroid/content/pm/ServiceInfo;
+HSPLandroid/content/pm/parsing/PackageInfoUtils;->updateApplicationInfo(Landroid/content/pm/ApplicationInfo;ILandroid/content/pm/PackageUserState;)V
+HSPLandroid/content/pm/parsing/library/AndroidHidlUpdater;->updatePackage(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLandroid/content/pm/parsing/library/OrgApacheHttpLegacyUpdater;->apkTargetsApiLevelLessThanOrEqualToOMR1(Landroid/content/pm/parsing/AndroidPackage;)Z
+HSPLandroid/content/pm/parsing/library/OrgApacheHttpLegacyUpdater;->updatePackage(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLandroid/content/pm/parsing/library/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;->updatePackage(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLandroid/content/pm/parsing/library/PackageBackwardCompatibility;->modifySharedLibraries(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLandroid/content/pm/parsing/library/PackageBackwardCompatibility;->updatePackage(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLandroid/content/pm/parsing/library/PackageSharedLibraryUpdater;->isLibraryPresent(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)Z
+HSPLandroid/content/pm/parsing/library/PackageSharedLibraryUpdater;->prefixImplicitDependency(Landroid/content/pm/parsing/ParsedPackage;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/library/PackageSharedLibraryUpdater;->prefixRequiredLibrary(Landroid/content/pm/parsing/ParsedPackage;Ljava/lang/String;)V
+HSPLandroid/content/pm/parsing/library/PackageSharedLibraryUpdater;->removeLibrary(Landroid/content/pm/parsing/ParsedPackage;Ljava/lang/String;)V
HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable$1;-><init>()V
HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/pm/permission/SplitPermissionInfoParcelable;
HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
@@ -2366,9 +8240,13 @@ HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getNewPermissi
HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getSplitPermission()Ljava/lang/String;
HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->getTargetSdk()I
HSPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->onConstructed()V
+HPLandroid/content/pm/permission/SplitPermissionInfoParcelable;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/content/pm/split/DefaultSplitAssetLoader;-><init>(Landroid/content/pm/PackageParser$PackageLite;I)V
HSPLandroid/content/pm/split/DefaultSplitAssetLoader;->close()V
HSPLandroid/content/pm/split/DefaultSplitAssetLoader;->getBaseAssetManager()Landroid/content/res/AssetManager;
+HSPLandroid/content/pm/split/DefaultSplitAssetLoader;->getSplitAssetManager(I)Landroid/content/res/AssetManager;
HSPLandroid/content/pm/split/DefaultSplitAssetLoader;->loadApkAssets(Ljava/lang/String;I)Landroid/content/res/ApkAssets;
+HPLandroid/content/res/-$$Lambda$Resources$4msWUw7LKsgLexLZjIfWa4oguq4;->test(Ljava/lang/Object;)Z
HSPLandroid/content/res/-$$Lambda$ResourcesImpl$99dm2ENnzo9b0SIUjUj2Kl3pi90;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
HSPLandroid/content/res/-$$Lambda$ResourcesImpl$h3PTRX185BeQl8SVC2_w9arp5Og;->get()Ljava/lang/Object;
HSPLandroid/content/res/ApkAssets;-><init>(Ljava/lang/String;ZZZZZ)V
@@ -2378,6 +8256,7 @@ HSPLandroid/content/res/ApkAssets;->getAssetPath()Ljava/lang/String;
HSPLandroid/content/res/ApkAssets;->getStringFromPool(I)Ljava/lang/CharSequence;
HSPLandroid/content/res/ApkAssets;->isForLoader()Z
HSPLandroid/content/res/ApkAssets;->isUpToDate()Z
+HSPLandroid/content/res/ApkAssets;->loadFromPath(Ljava/lang/String;)Landroid/content/res/ApkAssets;
HSPLandroid/content/res/ApkAssets;->loadFromPath(Ljava/lang/String;Z)Landroid/content/res/ApkAssets;
HSPLandroid/content/res/ApkAssets;->loadFromPath(Ljava/lang/String;ZZ)Landroid/content/res/ApkAssets;
HSPLandroid/content/res/ApkAssets;->loadOverlayFromPath(Ljava/lang/String;Z)Landroid/content/res/ApkAssets;
@@ -2385,11 +8264,13 @@ HSPLandroid/content/res/ApkAssets;->openXml(Ljava/lang/String;)Landroid/content/
HSPLandroid/content/res/AssetFileDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/res/AssetFileDescriptor;
HSPLandroid/content/res/AssetFileDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/res/AssetFileDescriptor;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/content/res/AssetFileDescriptor;-><init>(Landroid/os/ParcelFileDescriptor;JJ)V
HSPLandroid/content/res/AssetFileDescriptor;-><init>(Landroid/os/ParcelFileDescriptor;JJLandroid/os/Bundle;)V
HSPLandroid/content/res/AssetFileDescriptor;->close()V
HSPLandroid/content/res/AssetFileDescriptor;->createInputStream()Ljava/io/FileInputStream;
HSPLandroid/content/res/AssetFileDescriptor;->getDeclaredLength()J
HSPLandroid/content/res/AssetFileDescriptor;->getExtras()Landroid/os/Bundle;
+HSPLandroid/content/res/AssetFileDescriptor;->getFileDescriptor()Ljava/io/FileDescriptor;
HSPLandroid/content/res/AssetFileDescriptor;->getLength()J
HSPLandroid/content/res/AssetFileDescriptor;->getParcelFileDescriptor()Landroid/os/ParcelFileDescriptor;
HSPLandroid/content/res/AssetFileDescriptor;->getStartOffset()J
@@ -2401,8 +8282,13 @@ HSPLandroid/content/res/AssetManager$AssetInputStream;->close()V
HSPLandroid/content/res/AssetManager$AssetInputStream;->ensureOpen()V
HSPLandroid/content/res/AssetManager$AssetInputStream;->finalize()V
HSPLandroid/content/res/AssetManager$AssetInputStream;->getNativeAsset()J
+HSPLandroid/content/res/AssetManager$AssetInputStream;->mark(I)V
+HSPLandroid/content/res/AssetManager$AssetInputStream;->markSupported()Z
+HSPLandroid/content/res/AssetManager$AssetInputStream;->read()I
HSPLandroid/content/res/AssetManager$AssetInputStream;->read([B)I
HSPLandroid/content/res/AssetManager$AssetInputStream;->read([BII)I
+HSPLandroid/content/res/AssetManager$AssetInputStream;->reset()V
+HSPLandroid/content/res/AssetManager$AssetInputStream;->skip(J)J
HSPLandroid/content/res/AssetManager$Builder;-><init>()V
HSPLandroid/content/res/AssetManager$Builder;->addApkAssets(Landroid/content/res/ApkAssets;)Landroid/content/res/AssetManager$Builder;
HSPLandroid/content/res/AssetManager$Builder;->build()Landroid/content/res/AssetManager;
@@ -2415,7 +8301,9 @@ HSPLandroid/content/res/AssetManager;->access$1100(Landroid/content/res/AssetMan
HSPLandroid/content/res/AssetManager;->access$200(Landroid/content/res/AssetManager;)J
HSPLandroid/content/res/AssetManager;->access$300(J[Landroid/content/res/ApkAssets;Z)V
HSPLandroid/content/res/AssetManager;->access$500(J)J
+HSPLandroid/content/res/AssetManager;->access$600(J)I
HSPLandroid/content/res/AssetManager;->access$700(J[BII)I
+HSPLandroid/content/res/AssetManager;->access$800(JJI)J
HSPLandroid/content/res/AssetManager;->access$900(J)J
HSPLandroid/content/res/AssetManager;->addAssetPathInternal(Ljava/lang/String;ZZ)I
HSPLandroid/content/res/AssetManager;->applyStyle(JIILandroid/content/res/XmlBlock$Parser;[IJJ)V
@@ -2430,10 +8318,11 @@ HSPLandroid/content/res/AssetManager;->finalize()V
HSPLandroid/content/res/AssetManager;->findCookieForPath(Ljava/lang/String;)I
HSPLandroid/content/res/AssetManager;->getApkAssets()[Landroid/content/res/ApkAssets;
HSPLandroid/content/res/AssetManager;->getAssignedPackageIdentifiers(ZZ)Landroid/util/SparseArray;
+HSPLandroid/content/res/AssetManager;->getLocales()[Ljava/lang/String;
HSPLandroid/content/res/AssetManager;->getPooledStringForCookie(II)Ljava/lang/CharSequence;
HSPLandroid/content/res/AssetManager;->getResourceArray(I[I)I
HSPLandroid/content/res/AssetManager;->getResourceArraySize(I)I
-HPLandroid/content/res/AssetManager;->getResourceBagText(II)Ljava/lang/CharSequence;
+HSPLandroid/content/res/AssetManager;->getResourceBagText(II)Ljava/lang/CharSequence;
HSPLandroid/content/res/AssetManager;->getResourceEntryName(I)Ljava/lang/String;
HSPLandroid/content/res/AssetManager;->getResourceIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
HSPLandroid/content/res/AssetManager;->getResourceIntArray(I)[I
@@ -2441,8 +8330,10 @@ HSPLandroid/content/res/AssetManager;->getResourceName(I)Ljava/lang/String;
HSPLandroid/content/res/AssetManager;->getResourcePackageName(I)Ljava/lang/String;
HSPLandroid/content/res/AssetManager;->getResourceStringArray(I)[Ljava/lang/String;
HSPLandroid/content/res/AssetManager;->getResourceText(I)Ljava/lang/CharSequence;
+HSPLandroid/content/res/AssetManager;->getResourceTextArray(I)[Ljava/lang/CharSequence;
HSPLandroid/content/res/AssetManager;->getResourceTypeName(I)Ljava/lang/String;
HSPLandroid/content/res/AssetManager;->getResourceValue(IILandroid/util/TypedValue;Z)Z
+HSPLandroid/content/res/AssetManager;->getSizeConfigurations()[Landroid/content/res/Configuration;
HSPLandroid/content/res/AssetManager;->getSystem()Landroid/content/res/AssetManager;
HSPLandroid/content/res/AssetManager;->getThemeValue(JILandroid/util/TypedValue;Z)Z
HSPLandroid/content/res/AssetManager;->incRefsLocked(J)V
@@ -2450,7 +8341,10 @@ HSPLandroid/content/res/AssetManager;->isUpToDate()Z
HSPLandroid/content/res/AssetManager;->list(Ljava/lang/String;)[Ljava/lang/String;
HSPLandroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
HSPLandroid/content/res/AssetManager;->open(Ljava/lang/String;I)Ljava/io/InputStream;
+HSPLandroid/content/res/AssetManager;->openFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
HSPLandroid/content/res/AssetManager;->openNonAsset(ILjava/lang/String;I)Ljava/io/InputStream;
+HSPLandroid/content/res/AssetManager;->openNonAssetFd(ILjava/lang/String;)Landroid/content/res/AssetFileDescriptor;
+HSPLandroid/content/res/AssetManager;->openNonAssetFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
HSPLandroid/content/res/AssetManager;->openXmlBlockAsset(ILjava/lang/String;)Landroid/content/res/XmlBlock;
HSPLandroid/content/res/AssetManager;->openXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser;
HSPLandroid/content/res/AssetManager;->releaseTheme(J)V
@@ -2463,8 +8357,9 @@ HSPLandroid/content/res/AssetManager;->setConfiguration(IILjava/lang/String;IIII
HSPLandroid/content/res/AssetManager;->setThemeTo(JLandroid/content/res/AssetManager;J)V
HSPLandroid/content/res/AssetManager;->xmlBlockGone(I)V
HPLandroid/content/res/ColorStateList$1;->createFromParcel(Landroid/os/Parcel;)Landroid/content/res/ColorStateList;
-PLandroid/content/res/ColorStateList$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/content/res/ColorStateList$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/content/res/ColorStateList$ColorStateListFactory;-><init>(Landroid/content/res/ColorStateList;)V
+HPLandroid/content/res/ColorStateList$ColorStateListFactory;->getChangingConfigurations()I
HSPLandroid/content/res/ColorStateList$ColorStateListFactory;->newInstance()Landroid/content/res/ColorStateList;
HSPLandroid/content/res/ColorStateList$ColorStateListFactory;->newInstance()Ljava/lang/Object;
HSPLandroid/content/res/ColorStateList$ColorStateListFactory;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
@@ -2484,19 +8379,27 @@ HSPLandroid/content/res/ColorStateList;->isStateful()Z
HSPLandroid/content/res/ColorStateList;->modulateColorAlpha(IF)I
HSPLandroid/content/res/ColorStateList;->obtainForTheme(Landroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
HSPLandroid/content/res/ColorStateList;->onColorsChanged()V
+HPLandroid/content/res/ColorStateList;->toString()Ljava/lang/String;
HSPLandroid/content/res/ColorStateList;->valueOf(I)Landroid/content/res/ColorStateList;
+HSPLandroid/content/res/ColorStateList;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/res/CompatibilityInfo$2;->createFromParcel(Landroid/os/Parcel;)Landroid/content/res/CompatibilityInfo;
HSPLandroid/content/res/CompatibilityInfo$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/content/res/CompatibilityInfo;-><init>(Landroid/content/pm/ApplicationInfo;IIZ)V
HSPLandroid/content/res/CompatibilityInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/content/res/CompatibilityInfo;-><init>(Landroid/os/Parcel;Landroid/content/res/CompatibilityInfo$1;)V
+PLandroid/content/res/CompatibilityInfo;->alwaysSupportsScreen()Z
HSPLandroid/content/res/CompatibilityInfo;->applyToConfiguration(ILandroid/content/res/Configuration;)V
HSPLandroid/content/res/CompatibilityInfo;->applyToDisplayMetrics(Landroid/util/DisplayMetrics;)V
+HSPLandroid/content/res/CompatibilityInfo;->computeCompatibleScaling(Landroid/util/DisplayMetrics;Landroid/util/DisplayMetrics;)F
HSPLandroid/content/res/CompatibilityInfo;->equals(Ljava/lang/Object;)Z
HSPLandroid/content/res/CompatibilityInfo;->getTranslator()Landroid/content/res/CompatibilityInfo$Translator;
HSPLandroid/content/res/CompatibilityInfo;->hashCode()I
HSPLandroid/content/res/CompatibilityInfo;->isScalingRequired()Z
HSPLandroid/content/res/CompatibilityInfo;->needsCompatResources()Z
+PLandroid/content/res/CompatibilityInfo;->neverSupportsScreen()Z
HSPLandroid/content/res/CompatibilityInfo;->supportsScreen()Z
+HPLandroid/content/res/CompatibilityInfo;->toString()Ljava/lang/String;
+HSPLandroid/content/res/CompatibilityInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/content/res/ComplexColor;-><init>()V
HSPLandroid/content/res/ComplexColor;->getChangingConfigurations()I
HSPLandroid/content/res/ComplexColor;->setBaseChangingConfigurations(I)V
@@ -2510,21 +8413,35 @@ HSPLandroid/content/res/Configuration;->compareTo(Landroid/content/res/Configura
HSPLandroid/content/res/Configuration;->diff(Landroid/content/res/Configuration;)I
HSPLandroid/content/res/Configuration;->diff(Landroid/content/res/Configuration;ZZ)I
HSPLandroid/content/res/Configuration;->diffPublicOnly(Landroid/content/res/Configuration;)I
+PLandroid/content/res/Configuration;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLandroid/content/res/Configuration;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JZ)V
+HPLandroid/content/res/Configuration;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JZZ)V
HSPLandroid/content/res/Configuration;->equals(Landroid/content/res/Configuration;)Z
HSPLandroid/content/res/Configuration;->equals(Ljava/lang/Object;)Z
HSPLandroid/content/res/Configuration;->fixUpLocaleList()V
+HSPLandroid/content/res/Configuration;->generateDelta(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)Landroid/content/res/Configuration;
HSPLandroid/content/res/Configuration;->getLayoutDirection()I
HSPLandroid/content/res/Configuration;->getLocales()Landroid/os/LocaleList;
HSPLandroid/content/res/Configuration;->getScreenLayoutNoDirection(I)I
HSPLandroid/content/res/Configuration;->hashCode()I
HSPLandroid/content/res/Configuration;->isLayoutSizeAtLeast(I)Z
HSPLandroid/content/res/Configuration;->isOtherSeqNewer(Landroid/content/res/Configuration;)Z
+PLandroid/content/res/Configuration;->isScreenRound()Z
+HSPLandroid/content/res/Configuration;->isScreenWideColorGamut()Z
+PLandroid/content/res/Configuration;->localesToResourceQualifier(Landroid/os/LocaleList;)Ljava/lang/String;
HSPLandroid/content/res/Configuration;->needNewResources(II)Z
HSPLandroid/content/res/Configuration;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/content/res/Configuration;->readFromProto(Landroid/util/proto/ProtoInputStream;J)V
+HSPLandroid/content/res/Configuration;->reduceScreenLayout(III)I
+HSPLandroid/content/res/Configuration;->resetScreenLayout(I)I
+PLandroid/content/res/Configuration;->resourceQualifierString(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;)Ljava/lang/String;
HSPLandroid/content/res/Configuration;->setLayoutDirection(Ljava/util/Locale;)V
+HSPLandroid/content/res/Configuration;->setLocale(Ljava/util/Locale;)V
HSPLandroid/content/res/Configuration;->setLocales(Landroid/os/LocaleList;)V
HSPLandroid/content/res/Configuration;->setTo(Landroid/content/res/Configuration;)V
HSPLandroid/content/res/Configuration;->setToDefaults()V
+HSPLandroid/content/res/Configuration;->toString()Ljava/lang/String;
+PLandroid/content/res/Configuration;->uiModeToString(I)Ljava/lang/String;
HSPLandroid/content/res/Configuration;->unset()V
HSPLandroid/content/res/Configuration;->updateFrom(Landroid/content/res/Configuration;)I
HSPLandroid/content/res/Configuration;->writeToParcel(Landroid/os/Parcel;I)V
@@ -2534,23 +8451,46 @@ HSPLandroid/content/res/ConfigurationBoundResourceCache;->getInstance(JLandroid/
HSPLandroid/content/res/ConfigurationBoundResourceCache;->onConfigurationChange(I)V
HSPLandroid/content/res/ConfigurationBoundResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;)V
HSPLandroid/content/res/ConfigurationBoundResourceCache;->put(JLandroid/content/res/Resources$Theme;Ljava/lang/Object;Z)V
+HPLandroid/content/res/ConfigurationBoundResourceCache;->shouldInvalidateEntry(Landroid/content/res/ConstantState;I)Z
+HPLandroid/content/res/ConfigurationBoundResourceCache;->shouldInvalidateEntry(Ljava/lang/Object;I)Z
HSPLandroid/content/res/ConstantState;-><init>()V
HSPLandroid/content/res/ConstantState;->newInstance(Landroid/content/res/Resources;)Ljava/lang/Object;
HSPLandroid/content/res/ConstantState;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Ljava/lang/Object;
HSPLandroid/content/res/DrawableCache;-><init>()V
HSPLandroid/content/res/DrawableCache;->getInstance(JLandroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
+HPLandroid/content/res/DrawableCache;->shouldInvalidateEntry(Landroid/graphics/drawable/Drawable$ConstantState;I)Z
+HPLandroid/content/res/DrawableCache;->shouldInvalidateEntry(Ljava/lang/Object;I)Z
+HSPLandroid/content/res/FontResourcesParser$FontFileResourceEntry;-><init>(Ljava/lang/String;IILjava/lang/String;I)V
HSPLandroid/content/res/FontResourcesParser;->parse(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry;
HSPLandroid/content/res/FontResourcesParser;->readFamilies(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry;
HSPLandroid/content/res/FontResourcesParser;->readFamily(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry;
+HSPLandroid/content/res/FontResourcesParser;->readFont(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FontFileResourceEntry;
+HPLandroid/content/res/GradientColor$GradientColorFactory;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/content/res/GradientColor;
+HPLandroid/content/res/GradientColor$GradientColorFactory;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Ljava/lang/Object;
+PLandroid/content/res/GradientColor;-><init>()V
+PLandroid/content/res/GradientColor;->canApplyTheme()Z
+PLandroid/content/res/GradientColor;->createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/content/res/GradientColor;
+PLandroid/content/res/GradientColor;->getConstantState()Landroid/content/res/ConstantState;
+PLandroid/content/res/GradientColor;->getDefaultColor()I
+PLandroid/content/res/GradientColor;->getShader()Landroid/graphics/Shader;
+PLandroid/content/res/GradientColor;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HPLandroid/content/res/GradientColor;->obtainForTheme(Landroid/content/res/Resources$Theme;)Landroid/content/res/GradientColor;
+PLandroid/content/res/GradientColor;->onColorsChange()V
+PLandroid/content/res/GradientColor;->updateRootElementState(Landroid/content/res/TypedArray;)V
+HPLandroid/content/res/ResourceId;->isValid(I)Z
+PLandroid/content/res/Resources$NotFoundException;-><init>(Ljava/lang/String;)V
HSPLandroid/content/res/Resources$Theme;-><init>(Landroid/content/res/Resources;)V
HSPLandroid/content/res/Resources$Theme;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$1;)V
HSPLandroid/content/res/Resources$Theme;->applyStyle(IZ)V
HSPLandroid/content/res/Resources$Theme;->getChangingConfigurations()I
+PLandroid/content/res/Resources$Theme;->getKey()Landroid/content/res/Resources$ThemeKey;
HSPLandroid/content/res/Resources$Theme;->getResources()Landroid/content/res/Resources;
HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes(I[I)Landroid/content/res/TypedArray;
HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;
HSPLandroid/content/res/Resources$Theme;->obtainStyledAttributes([I)Landroid/content/res/TypedArray;
+HSPLandroid/content/res/Resources$Theme;->rebase()V
HSPLandroid/content/res/Resources$Theme;->resolveAttribute(ILandroid/util/TypedValue;Z)Z
+PLandroid/content/res/Resources$Theme;->resolveAttributes([I[I)Landroid/content/res/TypedArray;
HSPLandroid/content/res/Resources$Theme;->setImpl(Landroid/content/res/ResourcesImpl$ThemeImpl;)V
HSPLandroid/content/res/Resources$Theme;->setTo(Landroid/content/res/Resources$Theme;)V
HSPLandroid/content/res/Resources$ThemeKey;-><init>()V
@@ -2569,8 +8509,10 @@ HSPLandroid/content/res/Resources;->getAnimatorCache()Landroid/content/res/Confi
HSPLandroid/content/res/Resources;->getAssets()Landroid/content/res/AssetManager;
HSPLandroid/content/res/Resources;->getAttributeSetSourceResId(Landroid/util/AttributeSet;)I
HSPLandroid/content/res/Resources;->getBoolean(I)Z
+HSPLandroid/content/res/Resources;->getClassLoader()Ljava/lang/ClassLoader;
HSPLandroid/content/res/Resources;->getColor(I)I
HSPLandroid/content/res/Resources;->getColor(ILandroid/content/res/Resources$Theme;)I
+HPLandroid/content/res/Resources;->getColorStateList(I)Landroid/content/res/ColorStateList;
HSPLandroid/content/res/Resources;->getColorStateList(ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
HSPLandroid/content/res/Resources;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo;
HSPLandroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration;
@@ -2581,9 +8523,11 @@ HSPLandroid/content/res/Resources;->getDisplayAdjustments()Landroid/view/Display
HSPLandroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
HSPLandroid/content/res/Resources;->getDrawable(I)Landroid/graphics/drawable/Drawable;
HSPLandroid/content/res/Resources;->getDrawable(ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/content/res/Resources;->getDrawableForDensity(II)Landroid/graphics/drawable/Drawable;
HSPLandroid/content/res/Resources;->getDrawableForDensity(IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
HSPLandroid/content/res/Resources;->getDrawableInflater()Landroid/graphics/drawable/DrawableInflater;
HSPLandroid/content/res/Resources;->getFloat(I)F
+HSPLandroid/content/res/Resources;->getFont(I)Landroid/graphics/Typeface;
HSPLandroid/content/res/Resources;->getFont(Landroid/util/TypedValue;I)Landroid/graphics/Typeface;
HSPLandroid/content/res/Resources;->getFraction(III)F
HSPLandroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
@@ -2591,18 +8535,24 @@ HSPLandroid/content/res/Resources;->getImpl()Landroid/content/res/ResourcesImpl;
HSPLandroid/content/res/Resources;->getIntArray(I)[I
HSPLandroid/content/res/Resources;->getInteger(I)I
HSPLandroid/content/res/Resources;->getLayout(I)Landroid/content/res/XmlResourceParser;
-HPLandroid/content/res/Resources;->getQuantityText(II)Ljava/lang/CharSequence;
+HPLandroid/content/res/Resources;->getQuantityString(II)Ljava/lang/String;
+HSPLandroid/content/res/Resources;->getQuantityString(II[Ljava/lang/Object;)Ljava/lang/String;
+HSPLandroid/content/res/Resources;->getQuantityText(II)Ljava/lang/CharSequence;
HSPLandroid/content/res/Resources;->getResourceEntryName(I)Ljava/lang/String;
HSPLandroid/content/res/Resources;->getResourceName(I)Ljava/lang/String;
HSPLandroid/content/res/Resources;->getResourcePackageName(I)Ljava/lang/String;
HSPLandroid/content/res/Resources;->getResourceTypeName(I)Ljava/lang/String;
+HSPLandroid/content/res/Resources;->getSizeConfigurations()[Landroid/content/res/Configuration;
HSPLandroid/content/res/Resources;->getStateListAnimatorCache()Landroid/content/res/ConfigurationBoundResourceCache;
HSPLandroid/content/res/Resources;->getString(I)Ljava/lang/String;
HSPLandroid/content/res/Resources;->getString(I[Ljava/lang/Object;)Ljava/lang/String;
HSPLandroid/content/res/Resources;->getStringArray(I)[Ljava/lang/String;
HSPLandroid/content/res/Resources;->getSystem()Landroid/content/res/Resources;
HSPLandroid/content/res/Resources;->getText(I)Ljava/lang/CharSequence;
+PLandroid/content/res/Resources;->getText(ILjava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLandroid/content/res/Resources;->getTextArray(I)[Ljava/lang/CharSequence;
HSPLandroid/content/res/Resources;->getValue(ILandroid/util/TypedValue;Z)V
+HSPLandroid/content/res/Resources;->getValueForDensity(IILandroid/util/TypedValue;Z)V
HSPLandroid/content/res/Resources;->getXml(I)Landroid/content/res/XmlResourceParser;
HSPLandroid/content/res/Resources;->loadColorStateList(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
HSPLandroid/content/res/Resources;->loadComplexColor(Landroid/util/TypedValue;ILandroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor;
@@ -2616,6 +8566,9 @@ HSPLandroid/content/res/Resources;->obtainTempTypedValue()Landroid/util/TypedVal
HSPLandroid/content/res/Resources;->obtainTypedArray(I)Landroid/content/res/TypedArray;
HSPLandroid/content/res/Resources;->openRawResource(I)Ljava/io/InputStream;
HSPLandroid/content/res/Resources;->openRawResource(ILandroid/util/TypedValue;)Ljava/io/InputStream;
+HSPLandroid/content/res/Resources;->openRawResourceFd(I)Landroid/content/res/AssetFileDescriptor;
+HSPLandroid/content/res/Resources;->parseBundleExtra(Ljava/lang/String;Landroid/util/AttributeSet;Landroid/os/Bundle;)V
+HSPLandroid/content/res/Resources;->preloadFonts(I)V
HSPLandroid/content/res/Resources;->releaseTempTypedValue(Landroid/util/TypedValue;)V
HSPLandroid/content/res/Resources;->selectDefaultTheme(II)I
HSPLandroid/content/res/Resources;->selectSystemTheme(IIIIII)I
@@ -2630,17 +8583,19 @@ HSPLandroid/content/res/ResourcesImpl$LookupStack;->contains(I)Z
HSPLandroid/content/res/ResourcesImpl$LookupStack;->pop()V
HSPLandroid/content/res/ResourcesImpl$LookupStack;->push(I)V
HSPLandroid/content/res/ResourcesImpl$ThemeImpl;-><init>(Landroid/content/res/ResourcesImpl;)V
+PLandroid/content/res/ResourcesImpl$ThemeImpl;->access$000(Landroid/content/res/ResourcesImpl$ThemeImpl;)Landroid/content/res/Resources$ThemeKey;
HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->applyStyle(IZ)V
HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->finalize()V
HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->getChangingConfigurations()I
HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->getKey()Landroid/content/res/Resources$ThemeKey;
HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->obtainStyledAttributes(Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;
+HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->rebase()V
HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->resolveAttribute(ILandroid/util/TypedValue;Z)Z
HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->resolveAttributes(Landroid/content/res/Resources$Theme;[I[I)Landroid/content/res/TypedArray;
HSPLandroid/content/res/ResourcesImpl$ThemeImpl;->setTo(Landroid/content/res/ResourcesImpl$ThemeImpl;)V
HSPLandroid/content/res/ResourcesImpl;-><init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;Landroid/view/DisplayAdjustments;)V
HSPLandroid/content/res/ResourcesImpl;->adjustLanguageTag(Ljava/lang/String;)Ljava/lang/String;
-HPLandroid/content/res/ResourcesImpl;->attrForQuantityCode(Ljava/lang/String;)I
+HSPLandroid/content/res/ResourcesImpl;->attrForQuantityCode(Ljava/lang/String;)I
HSPLandroid/content/res/ResourcesImpl;->cacheDrawable(Landroid/util/TypedValue;ZLandroid/content/res/DrawableCache;Landroid/content/res/Resources$Theme;ZJLandroid/graphics/drawable/Drawable;)V
HSPLandroid/content/res/ResourcesImpl;->calcConfigChanges(Landroid/content/res/Configuration;)I
HSPLandroid/content/res/ResourcesImpl;->decodeImageDrawable(Landroid/content/res/AssetManager$AssetInputStream;Landroid/content/res/Resources;Landroid/util/TypedValue;)Landroid/graphics/drawable/Drawable;
@@ -2648,18 +8603,20 @@ HSPLandroid/content/res/ResourcesImpl;->finishPreloading()V
HSPLandroid/content/res/ResourcesImpl;->flushLayoutCache()V
HSPLandroid/content/res/ResourcesImpl;->getAnimatorCache()Landroid/content/res/ConfigurationBoundResourceCache;
HSPLandroid/content/res/ResourcesImpl;->getAssets()Landroid/content/res/AssetManager;
+HPLandroid/content/res/ResourcesImpl;->getAttributeSetSourceResId(Landroid/util/AttributeSet;)I
HSPLandroid/content/res/ResourcesImpl;->getColorStateListFromInt(Landroid/util/TypedValue;J)Landroid/content/res/ColorStateList;
HSPLandroid/content/res/ResourcesImpl;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo;
HSPLandroid/content/res/ResourcesImpl;->getConfiguration()Landroid/content/res/Configuration;
HSPLandroid/content/res/ResourcesImpl;->getDisplayAdjustments()Landroid/view/DisplayAdjustments;
HSPLandroid/content/res/ResourcesImpl;->getDisplayMetrics()Landroid/util/DisplayMetrics;
HSPLandroid/content/res/ResourcesImpl;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
-HPLandroid/content/res/ResourcesImpl;->getPluralRule()Landroid/icu/text/PluralRules;
-HPLandroid/content/res/ResourcesImpl;->getQuantityText(II)Ljava/lang/CharSequence;
+HSPLandroid/content/res/ResourcesImpl;->getPluralRule()Landroid/icu/text/PluralRules;
+HSPLandroid/content/res/ResourcesImpl;->getQuantityText(II)Ljava/lang/CharSequence;
HSPLandroid/content/res/ResourcesImpl;->getResourceEntryName(I)Ljava/lang/String;
HSPLandroid/content/res/ResourcesImpl;->getResourceName(I)Ljava/lang/String;
HSPLandroid/content/res/ResourcesImpl;->getResourcePackageName(I)Ljava/lang/String;
HSPLandroid/content/res/ResourcesImpl;->getResourceTypeName(I)Ljava/lang/String;
+HSPLandroid/content/res/ResourcesImpl;->getSizeConfigurations()[Landroid/content/res/Configuration;
HSPLandroid/content/res/ResourcesImpl;->getStateListAnimatorCache()Landroid/content/res/ConfigurationBoundResourceCache;
HSPLandroid/content/res/ResourcesImpl;->getValue(ILandroid/util/TypedValue;Z)V
HSPLandroid/content/res/ResourcesImpl;->getValueForDensity(IILandroid/util/TypedValue;Z)V
@@ -2675,7 +8632,9 @@ HSPLandroid/content/res/ResourcesImpl;->loadFont(Landroid/content/res/Resources;
HSPLandroid/content/res/ResourcesImpl;->loadXmlDrawable(Landroid/content/res/Resources;Landroid/util/TypedValue;IILjava/lang/String;)Landroid/graphics/drawable/Drawable;
HSPLandroid/content/res/ResourcesImpl;->loadXmlResourceParser(Ljava/lang/String;IILjava/lang/String;)Landroid/content/res/XmlResourceParser;
HSPLandroid/content/res/ResourcesImpl;->newThemeImpl()Landroid/content/res/ResourcesImpl$ThemeImpl;
+HSPLandroid/content/res/ResourcesImpl;->newThemeImpl(Landroid/content/res/Resources$ThemeKey;)Landroid/content/res/ResourcesImpl$ThemeImpl;
HSPLandroid/content/res/ResourcesImpl;->openRawResource(ILandroid/util/TypedValue;)Ljava/io/InputStream;
+HSPLandroid/content/res/ResourcesImpl;->openRawResourceFd(ILandroid/util/TypedValue;)Landroid/content/res/AssetFileDescriptor;
HSPLandroid/content/res/ResourcesImpl;->startPreloading()V
HSPLandroid/content/res/ResourcesImpl;->updateConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;)V
HSPLandroid/content/res/ResourcesImpl;->verifyPreloadConfig(IIILjava/lang/String;)Z
@@ -2684,6 +8643,7 @@ HSPLandroid/content/res/ResourcesKey;->equals(Ljava/lang/Object;)Z
HSPLandroid/content/res/ResourcesKey;->hasOverrideConfiguration()Z
HSPLandroid/content/res/ResourcesKey;->hashCode()I
HSPLandroid/content/res/StringBlock;-><init>(JZ)V
+HPLandroid/content/res/StringBlock;->applyStyles(Ljava/lang/String;[ILandroid/content/res/StringBlock$StyleIDs;)Ljava/lang/CharSequence;
HSPLandroid/content/res/StringBlock;->close()V
HSPLandroid/content/res/StringBlock;->finalize()V
HSPLandroid/content/res/StringBlock;->get(I)Ljava/lang/CharSequence;
@@ -2716,12 +8676,16 @@ HSPLandroid/content/res/TypedArray;->getIndex(I)I
HSPLandroid/content/res/TypedArray;->getIndexCount()I
HSPLandroid/content/res/TypedArray;->getInt(II)I
HSPLandroid/content/res/TypedArray;->getInteger(II)I
+PLandroid/content/res/TypedArray;->getLayoutDimension(II)I
HSPLandroid/content/res/TypedArray;->getLayoutDimension(ILjava/lang/String;)I
HSPLandroid/content/res/TypedArray;->getNonConfigurationString(II)Ljava/lang/String;
+HSPLandroid/content/res/TypedArray;->getNonResourceString(I)Ljava/lang/String;
HSPLandroid/content/res/TypedArray;->getPositionDescription()Ljava/lang/String;
HSPLandroid/content/res/TypedArray;->getResourceId(II)I
+HSPLandroid/content/res/TypedArray;->getResources()Landroid/content/res/Resources;
HSPLandroid/content/res/TypedArray;->getString(I)Ljava/lang/String;
HSPLandroid/content/res/TypedArray;->getText(I)Ljava/lang/CharSequence;
+HSPLandroid/content/res/TypedArray;->getTextArray(I)[Ljava/lang/CharSequence;
HSPLandroid/content/res/TypedArray;->getType(I)I
HSPLandroid/content/res/TypedArray;->getValue(ILandroid/util/TypedValue;)Z
HSPLandroid/content/res/TypedArray;->getValueAt(ILandroid/util/TypedValue;)Z
@@ -2739,6 +8703,7 @@ HSPLandroid/content/res/XmlBlock$Parser;->finalize()V
HSPLandroid/content/res/XmlBlock$Parser;->getAttributeBooleanValue(IZ)Z
HSPLandroid/content/res/XmlBlock$Parser;->getAttributeBooleanValue(Ljava/lang/String;Ljava/lang/String;Z)Z
HSPLandroid/content/res/XmlBlock$Parser;->getAttributeCount()I
+HPLandroid/content/res/XmlBlock$Parser;->getAttributeFloatValue(Ljava/lang/String;Ljava/lang/String;F)F
HSPLandroid/content/res/XmlBlock$Parser;->getAttributeIntValue(II)I
HSPLandroid/content/res/XmlBlock$Parser;->getAttributeIntValue(Ljava/lang/String;Ljava/lang/String;I)I
HSPLandroid/content/res/XmlBlock$Parser;->getAttributeName(I)Ljava/lang/String;
@@ -2749,20 +8714,28 @@ HSPLandroid/content/res/XmlBlock$Parser;->getAttributeValue(I)Ljava/lang/String;
HSPLandroid/content/res/XmlBlock$Parser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/content/res/XmlBlock$Parser;->getDepth()I
HSPLandroid/content/res/XmlBlock$Parser;->getEventType()I
+HPLandroid/content/res/XmlBlock$Parser;->getIdAttributeResourceValue(I)I
+HSPLandroid/content/res/XmlBlock$Parser;->getLineNumber()I
HSPLandroid/content/res/XmlBlock$Parser;->getName()Ljava/lang/String;
HSPLandroid/content/res/XmlBlock$Parser;->getPooledString(I)Ljava/lang/CharSequence;
+HSPLandroid/content/res/XmlBlock$Parser;->getPositionDescription()Ljava/lang/String;
+HPLandroid/content/res/XmlBlock$Parser;->getSourceResId()I
HSPLandroid/content/res/XmlBlock$Parser;->getText()Ljava/lang/String;
HSPLandroid/content/res/XmlBlock$Parser;->isEmptyElementTag()Z
HSPLandroid/content/res/XmlBlock$Parser;->next()I
+HSPLandroid/content/res/XmlBlock$Parser;->nextTag()I
HSPLandroid/content/res/XmlBlock$Parser;->nextText()Ljava/lang/String;
HSPLandroid/content/res/XmlBlock$Parser;->require(ILjava/lang/String;Ljava/lang/String;)V
HSPLandroid/content/res/XmlBlock;-><init>(Landroid/content/res/AssetManager;J)V
HSPLandroid/content/res/XmlBlock;->access$008(Landroid/content/res/XmlBlock;)I
+HPLandroid/content/res/XmlBlock;->access$100(J)I
HSPLandroid/content/res/XmlBlock;->access$1000(JI)I
HSPLandroid/content/res/XmlBlock;->access$1100(JLjava/lang/String;Ljava/lang/String;)I
HSPLandroid/content/res/XmlBlock;->access$1200(JI)I
HSPLandroid/content/res/XmlBlock;->access$1600(J)V
HSPLandroid/content/res/XmlBlock;->access$1700(Landroid/content/res/XmlBlock;)V
+HSPLandroid/content/res/XmlBlock;->access$200(J)I
+HSPLandroid/content/res/XmlBlock;->access$300(J)I
HSPLandroid/content/res/XmlBlock;->access$600(JI)I
HSPLandroid/content/res/XmlBlock;->access$700(J)I
HSPLandroid/content/res/XmlBlock;->access$800(JI)I
@@ -2770,15 +8743,16 @@ HSPLandroid/content/res/XmlBlock;->access$900(JI)I
HSPLandroid/content/res/XmlBlock;->close()V
HSPLandroid/content/res/XmlBlock;->decOpenCountLocked()V
HSPLandroid/content/res/XmlBlock;->finalize()V
+HSPLandroid/content/res/XmlBlock;->newParser()Landroid/content/res/XmlResourceParser;
HSPLandroid/content/res/XmlBlock;->newParser(I)Landroid/content/res/XmlResourceParser;
-HSPLandroid/content/type/-$$Lambda$DefaultMimeMapFactory$3biOnZOOEGRoeaFehYke-eZnpCg;-><init>(Ljava/lang/Class;)V
-HSPLandroid/content/type/-$$Lambda$DefaultMimeMapFactory$3biOnZOOEGRoeaFehYke-eZnpCg;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-HSPLandroid/content/type/DefaultMimeMapFactory;->create()Llibcore/content/type/MimeMap;
-HSPLandroid/content/type/DefaultMimeMapFactory;->create(Ljava/util/function/Function;)Llibcore/content/type/MimeMap;
-HSPLandroid/content/type/DefaultMimeMapFactory;->lambda$create$0(Ljava/lang/Class;Ljava/lang/String;)Ljava/io/InputStream;
-HSPLandroid/content/type/DefaultMimeMapFactory;->parseTypes(Llibcore/content/type/MimeMap$Builder;Ljava/util/function/Function;Ljava/lang/String;)V
+HSPLandroid/content/rollback/IRollbackManager$Stub;-><init>()V
+PLandroid/content/rollback/IRollbackManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/rollback/IRollbackManager;
+PLandroid/content/rollback/IRollbackManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/content/rollback/IRollbackManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/content/rollback/RollbackManager;-><init>(Landroid/content/Context;Landroid/content/rollback/IRollbackManager;)V
+PLandroid/content/rollback/RollbackManager;->getAvailableRollbacks()Ljava/util/List;
HSPLandroid/database/AbstractCursor$SelfContentObserver;-><init>(Landroid/database/AbstractCursor;)V
-PLandroid/database/AbstractCursor$SelfContentObserver;->onChange(Z)V
+HSPLandroid/database/AbstractCursor$SelfContentObserver;->onChange(Z)V
HSPLandroid/database/AbstractCursor;-><init>()V
HSPLandroid/database/AbstractCursor;->checkPosition()V
HSPLandroid/database/AbstractCursor;->close()V
@@ -2788,19 +8762,27 @@ HSPLandroid/database/AbstractCursor;->getColumnCount()I
HSPLandroid/database/AbstractCursor;->getColumnIndex(Ljava/lang/String;)I
HSPLandroid/database/AbstractCursor;->getColumnIndexOrThrow(Ljava/lang/String;)I
HSPLandroid/database/AbstractCursor;->getColumnName(I)Ljava/lang/String;
+HSPLandroid/database/AbstractCursor;->getExtras()Landroid/os/Bundle;
HSPLandroid/database/AbstractCursor;->getPosition()I
HSPLandroid/database/AbstractCursor;->getWantsAllOnMoveCalls()Z
HSPLandroid/database/AbstractCursor;->getWindow()Landroid/database/CursorWindow;
HSPLandroid/database/AbstractCursor;->isAfterLast()Z
+HSPLandroid/database/AbstractCursor;->isBeforeFirst()Z
HSPLandroid/database/AbstractCursor;->isClosed()Z
+HPLandroid/database/AbstractCursor;->isFirst()Z
HSPLandroid/database/AbstractCursor;->isLast()Z
+HPLandroid/database/AbstractCursor;->move(I)Z
HSPLandroid/database/AbstractCursor;->moveToFirst()Z
+HSPLandroid/database/AbstractCursor;->moveToLast()Z
HSPLandroid/database/AbstractCursor;->moveToNext()Z
HSPLandroid/database/AbstractCursor;->moveToPosition(I)Z
-PLandroid/database/AbstractCursor;->onChange(Z)V
+HPLandroid/database/AbstractCursor;->moveToPrevious()Z
+HSPLandroid/database/AbstractCursor;->onChange(Z)V
HSPLandroid/database/AbstractCursor;->onDeactivateOrClose()V
HSPLandroid/database/AbstractCursor;->onMove(II)Z
HSPLandroid/database/AbstractCursor;->registerContentObserver(Landroid/database/ContentObserver;)V
+PLandroid/database/AbstractCursor;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
+HSPLandroid/database/AbstractCursor;->setExtras(Landroid/os/Bundle;)V
HSPLandroid/database/AbstractCursor;->setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
HSPLandroid/database/AbstractCursor;->setNotificationUris(Landroid/content/ContentResolver;Ljava/util/List;)V
HSPLandroid/database/AbstractCursor;->setNotificationUris(Landroid/content/ContentResolver;Ljava/util/List;IZ)V
@@ -2809,22 +8791,30 @@ HSPLandroid/database/AbstractWindowedCursor;-><init>()V
HSPLandroid/database/AbstractWindowedCursor;->checkPosition()V
HSPLandroid/database/AbstractWindowedCursor;->clearOrCreateWindow(Ljava/lang/String;)V
HSPLandroid/database/AbstractWindowedCursor;->closeWindow()V
+HSPLandroid/database/AbstractWindowedCursor;->copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
HSPLandroid/database/AbstractWindowedCursor;->getBlob(I)[B
HSPLandroid/database/AbstractWindowedCursor;->getDouble(I)D
+HSPLandroid/database/AbstractWindowedCursor;->getFloat(I)F
HSPLandroid/database/AbstractWindowedCursor;->getInt(I)I
HSPLandroid/database/AbstractWindowedCursor;->getLong(I)J
+HSPLandroid/database/AbstractWindowedCursor;->getShort(I)S
HSPLandroid/database/AbstractWindowedCursor;->getString(I)Ljava/lang/String;
HSPLandroid/database/AbstractWindowedCursor;->getType(I)I
HSPLandroid/database/AbstractWindowedCursor;->getWindow()Landroid/database/CursorWindow;
+HPLandroid/database/AbstractWindowedCursor;->hasWindow()Z
HSPLandroid/database/AbstractWindowedCursor;->isNull(I)Z
HSPLandroid/database/AbstractWindowedCursor;->onDeactivateOrClose()V
HSPLandroid/database/AbstractWindowedCursor;->setWindow(Landroid/database/CursorWindow;)V
HSPLandroid/database/BulkCursorDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Landroid/database/BulkCursorDescriptor;
HSPLandroid/database/BulkCursorDescriptor$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/database/BulkCursorDescriptor;-><init>()V
HSPLandroid/database/BulkCursorDescriptor;->readFromParcel(Landroid/os/Parcel;)V
HSPLandroid/database/BulkCursorDescriptor;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/database/BulkCursorNative;-><init>()V
HSPLandroid/database/BulkCursorNative;->asBinder()Landroid/os/IBinder;
+HSPLandroid/database/BulkCursorNative;->asInterface(Landroid/os/IBinder;)Landroid/database/IBulkCursor;
HSPLandroid/database/BulkCursorNative;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/database/BulkCursorProxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/database/BulkCursorProxy;->asBinder()Landroid/os/IBinder;
HSPLandroid/database/BulkCursorProxy;->close()V
HSPLandroid/database/BulkCursorProxy;->getWindow(I)Landroid/database/CursorWindow;
@@ -2835,25 +8825,29 @@ HSPLandroid/database/BulkCursorToCursorAdaptor;->getCount()I
HSPLandroid/database/BulkCursorToCursorAdaptor;->getObserver()Landroid/database/IContentObserver;
HSPLandroid/database/BulkCursorToCursorAdaptor;->initialize(Landroid/database/BulkCursorDescriptor;)V
HSPLandroid/database/BulkCursorToCursorAdaptor;->onMove(II)Z
+HSPLandroid/database/BulkCursorToCursorAdaptor;->throwIfCursorIsClosed()V
HSPLandroid/database/CharArrayBuffer;-><init>(I)V
HSPLandroid/database/ContentObservable;-><init>()V
-PLandroid/database/ContentObservable;->dispatchChange(ZLandroid/net/Uri;)V
+HSPLandroid/database/ContentObservable;->dispatchChange(ZLandroid/net/Uri;)V
HSPLandroid/database/ContentObservable;->registerObserver(Landroid/database/ContentObserver;)V
-HSPLandroid/database/ContentObserver$NotificationRunnable;-><init>(Landroid/database/ContentObserver;ZLandroid/net/Uri;I)V
+PLandroid/database/ContentObserver$NotificationRunnable;-><init>(Landroid/database/ContentObserver;ZLandroid/net/Uri;I)V
HSPLandroid/database/ContentObserver$NotificationRunnable;->run()V
+HSPLandroid/database/ContentObserver$Transport;-><init>(Landroid/database/ContentObserver;)V
HSPLandroid/database/ContentObserver$Transport;->onChange(ZLandroid/net/Uri;I)V
HSPLandroid/database/ContentObserver$Transport;->releaseContentObserver()V
HSPLandroid/database/ContentObserver;-><init>(Landroid/os/Handler;)V
-HSPLandroid/database/ContentObserver;->access$000(Landroid/database/ContentObserver;ZLandroid/net/Uri;I)V
-HSPLandroid/database/ContentObserver;->dispatchChange(ZLandroid/net/Uri;I)V
+PLandroid/database/ContentObserver;->access$000(Landroid/database/ContentObserver;ZLandroid/net/Uri;I)V
+HPLandroid/database/ContentObserver;->dispatchChange(ZLandroid/net/Uri;)V
+PLandroid/database/ContentObserver;->dispatchChange(ZLandroid/net/Uri;I)V
HSPLandroid/database/ContentObserver;->getContentObserver()Landroid/database/IContentObserver;
PLandroid/database/ContentObserver;->onChange(Z)V
HSPLandroid/database/ContentObserver;->onChange(ZLandroid/net/Uri;)V
HSPLandroid/database/ContentObserver;->onChange(ZLandroid/net/Uri;I)V
HSPLandroid/database/ContentObserver;->releaseContentObserver()Landroid/database/IContentObserver;
HSPLandroid/database/CrossProcessCursorWrapper;-><init>(Landroid/database/Cursor;)V
+HSPLandroid/database/CrossProcessCursorWrapper;->getWindow()Landroid/database/CursorWindow;
HSPLandroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;-><init>(Landroid/database/IContentObserver;Landroid/os/IBinder$DeathRecipient;)V
-PLandroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;->onChange(ZLandroid/net/Uri;)V
+HSPLandroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;->onChange(ZLandroid/net/Uri;)V
HSPLandroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;->unlinkToDeath(Landroid/os/IBinder$DeathRecipient;)Z
HSPLandroid/database/CursorToBulkCursorAdaptor;-><init>(Landroid/database/Cursor;Landroid/database/IContentObserver;Ljava/lang/String;)V
PLandroid/database/CursorToBulkCursorAdaptor;->binderDied()V
@@ -2870,22 +8864,31 @@ HSPLandroid/database/CursorWindow$1;->createFromParcel(Landroid/os/Parcel;)Ljava
HSPLandroid/database/CursorWindow$1;->newArray(I)[Landroid/database/CursorWindow;
HSPLandroid/database/CursorWindow$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/database/CursorWindow;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/database/CursorWindow;-><init>(Landroid/os/Parcel;Landroid/database/CursorWindow$1;)V
HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;)V
HSPLandroid/database/CursorWindow;-><init>(Ljava/lang/String;J)V
+PLandroid/database/CursorWindow;-><init>(Z)V
HSPLandroid/database/CursorWindow;->allocRow()Z
HSPLandroid/database/CursorWindow;->clear()V
+HSPLandroid/database/CursorWindow;->copyStringToBuffer(IILandroid/database/CharArrayBuffer;)V
HSPLandroid/database/CursorWindow;->dispose()V
HSPLandroid/database/CursorWindow;->finalize()V
HSPLandroid/database/CursorWindow;->getBlob(II)[B
HSPLandroid/database/CursorWindow;->getCursorWindowSize()I
HSPLandroid/database/CursorWindow;->getDouble(II)D
+HSPLandroid/database/CursorWindow;->getFloat(II)F
HSPLandroid/database/CursorWindow;->getInt(II)I
HSPLandroid/database/CursorWindow;->getLong(II)J
HSPLandroid/database/CursorWindow;->getNumRows()I
+HSPLandroid/database/CursorWindow;->getShort(II)S
HSPLandroid/database/CursorWindow;->getStartPosition()I
HSPLandroid/database/CursorWindow;->getString(II)Ljava/lang/String;
HSPLandroid/database/CursorWindow;->getType(II)I
+HSPLandroid/database/CursorWindow;->isNull(II)Z
+HSLandroid/database/CursorWindow;->newFromParcel(Landroid/os/Parcel;)Landroid/database/CursorWindow;
HSPLandroid/database/CursorWindow;->onAllReferencesReleased()V
+HSPLandroid/database/CursorWindow;->putBlob([BII)Z
+PLandroid/database/CursorWindow;->putDouble(DII)Z
HSPLandroid/database/CursorWindow;->putLong(JII)Z
HSPLandroid/database/CursorWindow;->putNull(II)Z
HSPLandroid/database/CursorWindow;->putString(Ljava/lang/String;II)Z
@@ -2896,65 +8899,121 @@ HSPLandroid/database/CursorWindow;->setStartPosition(I)V
HSPLandroid/database/CursorWindow;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/database/CursorWrapper;-><init>(Landroid/database/Cursor;)V
HSPLandroid/database/CursorWrapper;->close()V
+HSPLandroid/database/CursorWrapper;->copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V
HSPLandroid/database/CursorWrapper;->getBlob(I)[B
+HSPLandroid/database/CursorWrapper;->getColumnCount()I
HSPLandroid/database/CursorWrapper;->getColumnIndex(Ljava/lang/String;)I
HSPLandroid/database/CursorWrapper;->getColumnIndexOrThrow(Ljava/lang/String;)I
+HPLandroid/database/CursorWrapper;->getColumnName(I)Ljava/lang/String;
+HSPLandroid/database/CursorWrapper;->getColumnNames()[Ljava/lang/String;
HSPLandroid/database/CursorWrapper;->getCount()I
+HSPLandroid/database/CursorWrapper;->getDouble(I)D
HSPLandroid/database/CursorWrapper;->getExtras()Landroid/os/Bundle;
+HSPLandroid/database/CursorWrapper;->getFloat(I)F
HSPLandroid/database/CursorWrapper;->getInt(I)I
HSPLandroid/database/CursorWrapper;->getLong(I)J
+HSPLandroid/database/CursorWrapper;->getPosition()I
HSPLandroid/database/CursorWrapper;->getString(I)Ljava/lang/String;
HSPLandroid/database/CursorWrapper;->getType(I)I
+HSPLandroid/database/CursorWrapper;->getWantsAllOnMoveCalls()Z
HSPLandroid/database/CursorWrapper;->getWrappedCursor()Landroid/database/Cursor;
HSPLandroid/database/CursorWrapper;->isAfterLast()Z
+PLandroid/database/CursorWrapper;->isClosed()Z
+HPLandroid/database/CursorWrapper;->isFirst()Z
HSPLandroid/database/CursorWrapper;->isLast()Z
HSPLandroid/database/CursorWrapper;->isNull(I)Z
HSPLandroid/database/CursorWrapper;->moveToFirst()Z
+HSPLandroid/database/CursorWrapper;->moveToLast()Z
HSPLandroid/database/CursorWrapper;->moveToNext()Z
HSPLandroid/database/CursorWrapper;->moveToPosition(I)Z
+HPLandroid/database/CursorWrapper;->moveToPrevious()Z
HSPLandroid/database/CursorWrapper;->registerContentObserver(Landroid/database/ContentObserver;)V
+HPLandroid/database/CursorWrapper;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
+HSPLandroid/database/CursorWrapper;->setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V
+HSPLandroid/database/CursorWrapper;->unregisterContentObserver(Landroid/database/ContentObserver;)V
HSPLandroid/database/DataSetObservable;-><init>()V
HSPLandroid/database/DataSetObservable;->notifyChanged()V
HSPLandroid/database/DataSetObservable;->notifyInvalidated()V
+HSPLandroid/database/DataSetObserver;-><init>()V
HSPLandroid/database/DatabaseUtils;->appendEscapedSQLString(Ljava/lang/StringBuilder;Ljava/lang/String;)V
+HSPLandroid/database/DatabaseUtils;->appendSelectionArgs([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
+HSPLandroid/database/DatabaseUtils;->appendValueToSql(Ljava/lang/StringBuilder;Ljava/lang/Object;)V
HSPLandroid/database/DatabaseUtils;->bindObjectToProgram(Landroid/database/sqlite/SQLiteProgram;ILjava/lang/Object;)V
+HSPLandroid/database/DatabaseUtils;->concatenateWhere(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/database/DatabaseUtils;->cursorFillWindow(Landroid/database/Cursor;ILandroid/database/CursorWindow;)V
+HSPLandroid/database/DatabaseUtils;->cursorIntToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V
+HSPLandroid/database/DatabaseUtils;->cursorLongToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V
+HSPLandroid/database/DatabaseUtils;->cursorRowToContentValues(Landroid/database/Cursor;Landroid/content/ContentValues;)V
+HSPLandroid/database/DatabaseUtils;->cursorStringToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V
+HSPLandroid/database/DatabaseUtils;->dumpCurrentRow(Landroid/database/Cursor;Ljava/lang/StringBuilder;)V
+HSPLandroid/database/DatabaseUtils;->dumpCursor(Landroid/database/Cursor;Ljava/lang/StringBuilder;)V
+HSPLandroid/database/DatabaseUtils;->dumpCursorToString(Landroid/database/Cursor;)Ljava/lang/String;
HSPLandroid/database/DatabaseUtils;->getSqlStatementType(Ljava/lang/String;)I
HSPLandroid/database/DatabaseUtils;->getTypeOfObject(Ljava/lang/Object;)I
HSPLandroid/database/DatabaseUtils;->longForQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)J
HSPLandroid/database/DatabaseUtils;->longForQuery(Landroid/database/sqlite/SQLiteStatement;[Ljava/lang/String;)J
-PLandroid/database/DatabaseUtils;->queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)J
-PLandroid/database/DatabaseUtils;->queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)J
+HSPLandroid/database/DatabaseUtils;->queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)J
+HSPLandroid/database/DatabaseUtils;->queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)J
HSPLandroid/database/DatabaseUtils;->readExceptionFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/database/DatabaseUtils;->readExceptionFromParcel(Landroid/os/Parcel;Ljava/lang/String;I)V
HSPLandroid/database/DatabaseUtils;->readExceptionWithFileNotFoundExceptionFromParcel(Landroid/os/Parcel;)V
+PLandroid/database/DatabaseUtils;->readExceptionWithOperationApplicationExceptionFromParcel(Landroid/os/Parcel;)V
HSPLandroid/database/DatabaseUtils;->sqlEscapeString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/database/DatabaseUtils;->stringForQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/database/DatabaseUtils;->writeExceptionToParcel(Landroid/os/Parcel;Ljava/lang/Exception;)V
HSPLandroid/database/DefaultDatabaseErrorHandler;-><init>()V
+HSPLandroid/database/IContentObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/database/IContentObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-PLandroid/database/IContentObserver$Stub$Proxy;->onChange(ZLandroid/net/Uri;I)V
+HSPLandroid/database/IContentObserver$Stub$Proxy;->onChange(ZLandroid/net/Uri;I)V
+HSPLandroid/database/IContentObserver$Stub;-><init>()V
HSPLandroid/database/IContentObserver$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/database/IContentObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/database/IContentObserver;
HSPLandroid/database/IContentObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/database/MatrixCursor$RowBuilder;-><init>(Landroid/database/MatrixCursor;I)V
HSPLandroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
-HSPLandroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/String;Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
+HPLandroid/database/MatrixCursor$RowBuilder;->add(Ljava/lang/String;Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;
HSPLandroid/database/MatrixCursor;-><init>([Ljava/lang/String;)V
HSPLandroid/database/MatrixCursor;-><init>([Ljava/lang/String;I)V
-HSPLandroid/database/MatrixCursor;->access$000(Landroid/database/MatrixCursor;)I
+PLandroid/database/MatrixCursor;->access$000(Landroid/database/MatrixCursor;)I
HSPLandroid/database/MatrixCursor;->access$100(Landroid/database/MatrixCursor;)[Ljava/lang/Object;
-HSPLandroid/database/MatrixCursor;->access$200(Landroid/database/MatrixCursor;)[Ljava/lang/String;
+HPLandroid/database/MatrixCursor;->access$200(Landroid/database/MatrixCursor;)[Ljava/lang/String;
+HPLandroid/database/MatrixCursor;->addRow(Ljava/lang/Iterable;)V
+HPLandroid/database/MatrixCursor;->addRow(Ljava/util/ArrayList;I)V
HSPLandroid/database/MatrixCursor;->addRow([Ljava/lang/Object;)V
+HSPLandroid/database/MatrixCursor;->ensureCapacity(I)V
HSPLandroid/database/MatrixCursor;->get(I)Ljava/lang/Object;
+HSPLandroid/database/MatrixCursor;->getBlob(I)[B
HSPLandroid/database/MatrixCursor;->getColumnNames()[Ljava/lang/String;
HSPLandroid/database/MatrixCursor;->getCount()I
+HSPLandroid/database/MatrixCursor;->getDouble(I)D
HSPLandroid/database/MatrixCursor;->getInt(I)I
HSPLandroid/database/MatrixCursor;->getLong(I)J
HSPLandroid/database/MatrixCursor;->getString(I)Ljava/lang/String;
HSPLandroid/database/MatrixCursor;->getType(I)I
HSPLandroid/database/MatrixCursor;->newRow()Landroid/database/MatrixCursor$RowBuilder;
+HPLandroid/database/MergeCursor$1;-><init>(Landroid/database/MergeCursor;)V
+HPLandroid/database/MergeCursor$1;->onInvalidated()V
+HPLandroid/database/MergeCursor;-><init>([Landroid/database/Cursor;)V
+HPLandroid/database/MergeCursor;->close()V
+HPLandroid/database/MergeCursor;->getBlob(I)[B
+HPLandroid/database/MergeCursor;->getColumnNames()[Ljava/lang/String;
+HPLandroid/database/MergeCursor;->getCount()I
+HPLandroid/database/MergeCursor;->getInt(I)I
+HPLandroid/database/MergeCursor;->getLong(I)J
+HPLandroid/database/MergeCursor;->getString(I)Ljava/lang/String;
+HPLandroid/database/MergeCursor;->onMove(II)Z
HSPLandroid/database/Observable;-><init>()V
HSPLandroid/database/Observable;->registerObserver(Ljava/lang/Object;)V
HSPLandroid/database/Observable;->unregisterAll()V
HSPLandroid/database/Observable;->unregisterObserver(Ljava/lang/Object;)V
+HSPLandroid/database/SQLException;-><init>()V
+HSPLandroid/database/SQLException;-><init>(Ljava/lang/String;)V
HSPLandroid/database/sqlite/-$$Lambda$RBWjWVyGrOTsQrLCYzJ_G8Uk25Q;-><init>(Landroid/database/sqlite/SQLiteDatabase;)V
HSPLandroid/database/sqlite/-$$Lambda$RBWjWVyGrOTsQrLCYzJ_G8Uk25Q;->get()Ljava/lang/Object;
+PLandroid/database/sqlite/-$$Lambda$SQLiteDatabase$1FsSJH2q7x3eeDFXCAu9l4piDsE;-><clinit>()V
+PLandroid/database/sqlite/-$$Lambda$SQLiteDatabase$1FsSJH2q7x3eeDFXCAu9l4piDsE;-><init>()V
+PLandroid/database/sqlite/-$$Lambda$SQLiteDatabase$1FsSJH2q7x3eeDFXCAu9l4piDsE;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/database/sqlite/DatabaseObjectNotClosedException;-><init>()V
HSPLandroid/database/sqlite/SQLiteClosable;-><init>()V
HSPLandroid/database/sqlite/SQLiteClosable;->acquireReference()V
HSPLandroid/database/sqlite/SQLiteClosable;->close()V
@@ -2963,10 +9022,14 @@ HSPLandroid/database/sqlite/SQLiteCompatibilityWalFlags;->getTruncateSize()J
HSPLandroid/database/sqlite/SQLiteCompatibilityWalFlags;->init(Ljava/lang/String;)V
HSPLandroid/database/sqlite/SQLiteCompatibilityWalFlags;->initIfNeeded()V
HSPLandroid/database/sqlite/SQLiteCompatibilityWalFlags;->isLegacyCompatibilityWalEnabled()Z
+HSPLandroid/database/sqlite/SQLiteCompatibilityWalFlags;->reset()V
HSPLandroid/database/sqlite/SQLiteConnection$Operation;-><init>()V
HSPLandroid/database/sqlite/SQLiteConnection$Operation;-><init>(Landroid/database/sqlite/SQLiteConnection$1;)V
+HPLandroid/database/sqlite/SQLiteConnection$Operation;->describe(Ljava/lang/StringBuilder;Z)V
+PLandroid/database/sqlite/SQLiteConnection$Operation;->getStatus()Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;)V
HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I
+HPLandroid/database/sqlite/SQLiteConnection$OperationLog;->dump(Landroid/util/Printer;)V
HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->endOperation(I)V
HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
HSPLandroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLogLocked(I)Z
@@ -2982,6 +9045,7 @@ HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemov
HSPLandroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemoved(ZLjava/lang/String;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
HSPLandroid/database/sqlite/SQLiteConnection;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)V
HSPLandroid/database/sqlite/SQLiteConnection;->access$100(Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
+PLandroid/database/sqlite/SQLiteConnection;->access$200(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
HSPLandroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
HSPLandroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V
@@ -2989,8 +9053,11 @@ HSPLandroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/s
HSPLandroid/database/sqlite/SQLiteConnection;->canonicalizeSyncMode(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteConnection;->checkDatabaseWiped()V
HSPLandroid/database/sqlite/SQLiteConnection;->close()V
+PLandroid/database/sqlite/SQLiteConnection;->collectDbStats(Ljava/util/ArrayList;)V
HSPLandroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
HSPLandroid/database/sqlite/SQLiteConnection;->dispose(Z)V
+PLandroid/database/sqlite/SQLiteConnection;->dump(Landroid/util/Printer;Z)V
+PLandroid/database/sqlite/SQLiteConnection;->dumpUnsafe(Landroid/util/Printer;Z)V
HSPLandroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
HSPLandroid/database/sqlite/SQLiteConnection;->executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)I
HSPLandroid/database/sqlite/SQLiteConnection;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZLandroid/os/CancellationSignal;)I
@@ -3000,6 +9067,7 @@ HSPLandroid/database/sqlite/SQLiteConnection;->executeForString(Ljava/lang/Strin
HSPLandroid/database/sqlite/SQLiteConnection;->finalize()V
HSPLandroid/database/sqlite/SQLiteConnection;->finalizePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
HSPLandroid/database/sqlite/SQLiteConnection;->getConnectionId()I
+PLandroid/database/sqlite/SQLiteConnection;->getMainDbStatsUnsafe(IJJ)Landroid/database/sqlite/SQLiteDebug$DbStats;
HSPLandroid/database/sqlite/SQLiteConnection;->isCacheable(I)Z
HSPLandroid/database/sqlite/SQLiteConnection;->isPrimaryConnection()Z
HSPLandroid/database/sqlite/SQLiteConnection;->maybeTruncateWalFile()V
@@ -3020,6 +9088,8 @@ HSPLandroid/database/sqlite/SQLiteConnection;->setPageSize()V
HSPLandroid/database/sqlite/SQLiteConnection;->setSyncMode(Ljava/lang/String;)V
HSPLandroid/database/sqlite/SQLiteConnection;->setWalModeFromConfiguration()V
HSPLandroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
+PLandroid/database/sqlite/SQLiteConnection;->trimSqlForDisplay(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>()V
HSPLandroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>(Landroid/database/sqlite/SQLiteConnectionPool$1;)V
HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/os/Looper;J)V
HSPLandroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionAcquired(Landroid/database/sqlite/SQLiteConnection;)V
@@ -3031,14 +9101,26 @@ PLandroid/database/sqlite/SQLiteConnectionPool;->access$000(Landroid/database/sq
PLandroid/database/sqlite/SQLiteConnectionPool;->access$300(Landroid/database/sqlite/SQLiteConnectionPool;)Landroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;
PLandroid/database/sqlite/SQLiteConnectionPool;->access$400(Landroid/database/sqlite/SQLiteConnectionPool;I)Z
HSPLandroid/database/sqlite/SQLiteConnectionPool;->acquireConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection;
-PLandroid/database/sqlite/SQLiteConnectionPool;->closeAvailableConnectionLocked(I)Z
+HSPLandroid/database/sqlite/SQLiteConnectionPool;->close()V
+HPLandroid/database/sqlite/SQLiteConnectionPool;->closeAvailableConnectionLocked(I)Z
+HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeAvailableConnectionsAndLogExceptionsLocked()V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeAvailableNonPrimaryConnectionsAndLogExceptions()V
+HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeAvailableNonPrimaryConnectionsAndLogExceptionsLocked()V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->closeConnectionAndLogExceptionsLocked(Landroid/database/sqlite/SQLiteConnection;)V
+HSLandroid/database/sqlite/SQLiteConnectionPool;->closeExcessConnectionsAndLogExceptionsLocked()V
+PLandroid/database/sqlite/SQLiteConnectionPool;->collectDbStats(Ljava/util/ArrayList;)V
+HSPLandroid/database/sqlite/SQLiteConnectionPool;->disableIdleConnectionHandler()V
+HSLandroid/database/sqlite/SQLiteConnectionPool;->discardAcquiredConnectionsLocked()V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->dispose(Z)V
+PLandroid/database/sqlite/SQLiteConnectionPool;->dump(Landroid/util/Printer;ZLandroid/util/ArraySet;)V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->finalize()V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->finishAcquireConnectionLocked(Landroid/database/sqlite/SQLiteConnection;I)V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->getPath()Ljava/lang/String;
+HSPLandroid/database/sqlite/SQLiteConnectionPool;->getPriority(I)I
+HPLandroid/database/sqlite/SQLiteConnectionPool;->isSessionBlockingImportantConnectionWaitersLocked(ZI)Z
HSPLandroid/database/sqlite/SQLiteConnectionPool;->markAcquiredConnectionsLocked(Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;)V
+HSPLandroid/database/sqlite/SQLiteConnectionPool;->obtainConnectionWaiterLocked(Ljava/lang/Thread;JIZLjava/lang/String;I)Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;
+HPLandroid/database/sqlite/SQLiteConnectionPool;->onConnectionLeaked()V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->onStatementExecuted(J)V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->open()V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->open(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)Landroid/database/sqlite/SQLiteConnectionPool;
@@ -3046,14 +9128,17 @@ HSPLandroid/database/sqlite/SQLiteConnectionPool;->openConnectionLocked(Landroid
HSPLandroid/database/sqlite/SQLiteConnectionPool;->reconfigure(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->reconfigureAllConnectionsLocked()V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->recycleConnectionLocked(Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;)Z
+HPLandroid/database/sqlite/SQLiteConnectionPool;->recycleConnectionWaiterLocked(Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;)V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->releaseConnection(Landroid/database/sqlite/SQLiteConnection;)V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->setMaxConnectionPoolSizeLocked()V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->setupIdleConnectionHandler(Landroid/os/Looper;J)V
+HPLandroid/database/sqlite/SQLiteConnectionPool;->shouldYieldConnection(Landroid/database/sqlite/SQLiteConnection;I)Z
HSPLandroid/database/sqlite/SQLiteConnectionPool;->throwIfClosedLocked()V
HSPLandroid/database/sqlite/SQLiteConnectionPool;->tryAcquireNonPrimaryConnectionLocked(Ljava/lang/String;I)Landroid/database/sqlite/SQLiteConnection;
HSPLandroid/database/sqlite/SQLiteConnectionPool;->tryAcquirePrimaryConnectionLocked(I)Landroid/database/sqlite/SQLiteConnection;
HSPLandroid/database/sqlite/SQLiteConnectionPool;->waitForConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection;
HSPLandroid/database/sqlite/SQLiteConnectionPool;->wakeConnectionWaitersLocked()V
+HSPLandroid/database/sqlite/SQLiteConstraintException;-><init>(Ljava/lang/String;)V
HSPLandroid/database/sqlite/SQLiteCursor;-><init>(Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V
HSPLandroid/database/sqlite/SQLiteCursor;->close()V
HSPLandroid/database/sqlite/SQLiteCursor;->fillWindow(I)V
@@ -3063,6 +9148,8 @@ HSPLandroid/database/sqlite/SQLiteCursor;->getColumnNames()[Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteCursor;->getCount()I
HSPLandroid/database/sqlite/SQLiteCursor;->getDatabase()Landroid/database/sqlite/SQLiteDatabase;
HSPLandroid/database/sqlite/SQLiteCursor;->onMove(II)Z
+PLandroid/database/sqlite/SQLiteCursor;->setWindow(Landroid/database/CursorWindow;)V
+HSLandroid/database/sqlite/SQLiteDatabase$1;-><init>(Ljava/lang/String;)V
HSPLandroid/database/sqlite/SQLiteDatabase$1;->accept(Ljava/io/File;)Z
HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;-><init>()V
HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;-><init>(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)V
@@ -3084,17 +9171,24 @@ HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->access$400(Landroid/data
HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->access$500(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)J
HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->access$600(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->access$700(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Ljava/lang/String;
+HSPLandroid/database/sqlite/SQLiteDatabase$OpenParams;->toBuilder()Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;
HSPLandroid/database/sqlite/SQLiteDatabase;-><init>(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;IIJLjava/lang/String;Ljava/lang/String;)V
HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction()V
HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransaction(Landroid/database/sqlite/SQLiteTransactionListener;Z)V
HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransactionNonExclusive()V
HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransactionWithListener(Landroid/database/sqlite/SQLiteTransactionListener;)V
+HSPLandroid/database/sqlite/SQLiteDatabase;->beginTransactionWithListenerNonExclusive(Landroid/database/sqlite/SQLiteTransactionListener;)V
+PLandroid/database/sqlite/SQLiteDatabase;->collectDbStats(Ljava/util/ArrayList;)V
HSPLandroid/database/sqlite/SQLiteDatabase;->compileStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteStatement;
HSPLandroid/database/sqlite/SQLiteDatabase;->createSession()Landroid/database/sqlite/SQLiteSession;
HSPLandroid/database/sqlite/SQLiteDatabase;->delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I
+HSLandroid/database/sqlite/SQLiteDatabase;->deleteDatabase(Ljava/io/File;)Z
HSPLandroid/database/sqlite/SQLiteDatabase;->deleteDatabase(Ljava/io/File;Z)Z
HSPLandroid/database/sqlite/SQLiteDatabase;->disableWriteAheadLogging()V
HSPLandroid/database/sqlite/SQLiteDatabase;->dispose(Z)V
+PLandroid/database/sqlite/SQLiteDatabase;->dump(Landroid/util/Printer;ZZLandroid/util/ArraySet;)V
+PLandroid/database/sqlite/SQLiteDatabase;->dumpAll(Landroid/util/Printer;ZZ)V
+PLandroid/database/sqlite/SQLiteDatabase;->dumpDatabaseDirectory(Landroid/util/Printer;Ljava/io/File;Z)V
HSPLandroid/database/sqlite/SQLiteDatabase;->enableWriteAheadLogging()Z
HSPLandroid/database/sqlite/SQLiteDatabase;->endTransaction()V
HSPLandroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;)V
@@ -3102,7 +9196,14 @@ HSPLandroid/database/sqlite/SQLiteDatabase;->execSQL(Ljava/lang/String;[Ljava/la
HSPLandroid/database/sqlite/SQLiteDatabase;->executeSql(Ljava/lang/String;[Ljava/lang/Object;)I
HSPLandroid/database/sqlite/SQLiteDatabase;->finalize()V
HSPLandroid/database/sqlite/SQLiteDatabase;->findEditTable(Ljava/lang/String;)Ljava/lang/String;
+PLandroid/database/sqlite/SQLiteDatabase;->getActiveDatabases()Ljava/util/ArrayList;
+HSPLandroid/database/sqlite/SQLiteDatabase;->getAttachedDbs()Ljava/util/List;
+PLandroid/database/sqlite/SQLiteDatabase;->getDbStats()Ljava/util/ArrayList;
+PLandroid/database/sqlite/SQLiteDatabase;->getFileTimestamps(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/database/sqlite/SQLiteDatabase;->getMaximumSize()J
+HSPLandroid/database/sqlite/SQLiteDatabase;->getPageSize()J
HSPLandroid/database/sqlite/SQLiteDatabase;->getPath()Ljava/lang/String;
+HSPLandroid/database/sqlite/SQLiteDatabase;->getSyncedTables()Ljava/util/Map;
HSPLandroid/database/sqlite/SQLiteDatabase;->getThreadDefaultConnectionFlags(Z)I
HSPLandroid/database/sqlite/SQLiteDatabase;->getThreadSession()Landroid/database/sqlite/SQLiteSession;
HSPLandroid/database/sqlite/SQLiteDatabase;->getVersion()I
@@ -3110,45 +9211,71 @@ HSPLandroid/database/sqlite/SQLiteDatabase;->inTransaction()Z
HSPLandroid/database/sqlite/SQLiteDatabase;->insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
HSPLandroid/database/sqlite/SQLiteDatabase;->insertOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
HSPLandroid/database/sqlite/SQLiteDatabase;->insertWithOnConflict(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;I)J
+HSPLandroid/database/sqlite/SQLiteDatabase;->isDatabaseIntegrityOk()Z
+HSPLandroid/database/sqlite/SQLiteDatabase;->isDbLockedByCurrentThread()Z
+HPLandroid/database/sqlite/SQLiteDatabase;->isDbLockedByOtherThreads()Z
HSPLandroid/database/sqlite/SQLiteDatabase;->isMainThread()Z
HSPLandroid/database/sqlite/SQLiteDatabase;->isOpen()Z
HSPLandroid/database/sqlite/SQLiteDatabase;->isReadOnly()Z
HSPLandroid/database/sqlite/SQLiteDatabase;->isReadOnlyLocked()Z
HSPLandroid/database/sqlite/SQLiteDatabase;->isWriteAheadLoggingEnabled()Z
+HPLandroid/database/sqlite/SQLiteDatabase;->lambda$dumpDatabaseDirectory$0(Ljava/io/File;Ljava/io/File;)I
+HSPLandroid/database/sqlite/SQLiteDatabase;->markTableSyncable(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/database/sqlite/SQLiteDatabase;->onAllReferencesReleased()V
HSPLandroid/database/sqlite/SQLiteDatabase;->open()V
HSPLandroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/io/File;Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Landroid/database/sqlite/SQLiteDatabase;
+HSPLandroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;
HSPLandroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ILandroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;
HSPLandroid/database/sqlite/SQLiteDatabase;->openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$OpenParams;)Landroid/database/sqlite/SQLiteDatabase;
HSPLandroid/database/sqlite/SQLiteDatabase;->openInner()V
+HSPLandroid/database/sqlite/SQLiteDatabase;->openOrCreateDatabase(Ljava/io/File;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;
+HSPLandroid/database/sqlite/SQLiteDatabase;->openOrCreateDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;
HSPLandroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
HSPLandroid/database/sqlite/SQLiteDatabase;->query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
HSPLandroid/database/sqlite/SQLiteDatabase;->query(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
+HSPLandroid/database/sqlite/SQLiteDatabase;->query(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
HSPLandroid/database/sqlite/SQLiteDatabase;->queryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
HSPLandroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;
+HSPLandroid/database/sqlite/SQLiteDatabase;->rawQuery(Ljava/lang/String;[Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
HSPLandroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
+HSPLandroid/database/sqlite/SQLiteDatabase;->releaseMemory()I
HSPLandroid/database/sqlite/SQLiteDatabase;->replace(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
HSPLandroid/database/sqlite/SQLiteDatabase;->replaceOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J
HSPLandroid/database/sqlite/SQLiteDatabase;->setForeignKeyConstraintsEnabled(Z)V
+HSPLandroid/database/sqlite/SQLiteDatabase;->setMaxSqlCacheSize(I)V
+HSPLandroid/database/sqlite/SQLiteDatabase;->setMaximumSize(J)J
+HSPLandroid/database/sqlite/SQLiteDatabase;->setPageSize(J)V
HSPLandroid/database/sqlite/SQLiteDatabase;->setTransactionSuccessful()V
HSPLandroid/database/sqlite/SQLiteDatabase;->setVersion(I)V
HSPLandroid/database/sqlite/SQLiteDatabase;->throwIfNotOpenLocked()V
+HSPLandroid/database/sqlite/SQLiteDatabase;->toString()Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteDatabase;->update(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
HSPLandroid/database/sqlite/SQLiteDatabase;->updateWithOnConflict(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;I)I
HSPLandroid/database/sqlite/SQLiteDatabase;->validateSql(Ljava/lang/String;Landroid/os/CancellationSignal;)V
+HPLandroid/database/sqlite/SQLiteDatabase;->yieldIfContendedHelper(ZJ)Z
+HPLandroid/database/sqlite/SQLiteDatabase;->yieldIfContendedSafely(J)Z
HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;-><init>(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;-><init>(Ljava/lang/String;I)V
HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z
HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isLegacyCompatibilityWalEnabled()Z
+PLandroid/database/sqlite/SQLiteDatabaseConfiguration;->isLookasideConfigSet()Z
HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->stripPathForLogs(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteDatabaseConfiguration;->updateParametersFrom(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
+PLandroid/database/sqlite/SQLiteDatabaseLockedException;-><init>(Ljava/lang/String;)V
+PLandroid/database/sqlite/SQLiteDebug$DbStats;-><init>(Ljava/lang/String;JJIIII)V
HSPLandroid/database/sqlite/SQLiteDebug$NoPreloadHolder;-><clinit>()V
HSPLandroid/database/sqlite/SQLiteDebug$NoPreloadHolder;->access$000()Ljava/lang/String;
+PLandroid/database/sqlite/SQLiteDebug$PagerStats;-><init>()V
+PLandroid/database/sqlite/SQLiteDebug;->dump(Landroid/util/Printer;[Ljava/lang/String;Z)V
+PLandroid/database/sqlite/SQLiteDebug;->getDatabaseInfo()Landroid/database/sqlite/SQLiteDebug$PagerStats;
HSPLandroid/database/sqlite/SQLiteDebug;->shouldLogSlowQuery(J)Z
HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)V
HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;->cursorClosed()V
HSPLandroid/database/sqlite/SQLiteDirectCursorDriver;->query(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;[Ljava/lang/String;)Landroid/database/Cursor;
+HSPLandroid/database/sqlite/SQLiteDoneException;-><init>()V
+HSPLandroid/database/sqlite/SQLiteException;-><init>()V
+HSPLandroid/database/sqlite/SQLiteException;-><init>(Ljava/lang/String;)V
HSPLandroid/database/sqlite/SQLiteGlobal;->checkDbWipe()Z
HSPLandroid/database/sqlite/SQLiteGlobal;->getDefaultJournalMode()Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteGlobal;->getDefaultPageSize()I
@@ -3159,6 +9286,7 @@ HSPLandroid/database/sqlite/SQLiteGlobal;->getWALConnectionPoolSize()I
HSPLandroid/database/sqlite/SQLiteGlobal;->getWALSyncMode()Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteGlobal;->getWALTruncateSize()J
HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;IILandroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;)V
+HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$OpenParams;)V
HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V
HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;IILandroid/database/DatabaseErrorHandler;)V
HSPLandroid/database/sqlite/SQLiteOpenHelper;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ILandroid/database/DatabaseErrorHandler;)V
@@ -3171,12 +9299,14 @@ HSPLandroid/database/sqlite/SQLiteOpenHelper;->onConfigure(Landroid/database/sql
HSPLandroid/database/sqlite/SQLiteOpenHelper;->onOpen(Landroid/database/sqlite/SQLiteDatabase;)V
HSPLandroid/database/sqlite/SQLiteOpenHelper;->setFilePermissionsForDb(Ljava/lang/String;)V
HSPLandroid/database/sqlite/SQLiteOpenHelper;->setIdleConnectionTimeout(J)V
+HSPLandroid/database/sqlite/SQLiteOpenHelper;->setOpenParams(Landroid/database/sqlite/SQLiteDatabase$OpenParams;)V
HSPLandroid/database/sqlite/SQLiteOpenHelper;->setOpenParamsBuilder(Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;)V
HSPLandroid/database/sqlite/SQLiteOpenHelper;->setWriteAheadLoggingEnabled(Z)V
HSPLandroid/database/sqlite/SQLiteProgram;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
HSPLandroid/database/sqlite/SQLiteProgram;->bind(ILjava/lang/Object;)V
HSPLandroid/database/sqlite/SQLiteProgram;->bindAllArgsAsStrings([Ljava/lang/String;)V
HSPLandroid/database/sqlite/SQLiteProgram;->bindBlob(I[B)V
+HPLandroid/database/sqlite/SQLiteProgram;->bindDouble(ID)V
HSPLandroid/database/sqlite/SQLiteProgram;->bindLong(IJ)V
HSPLandroid/database/sqlite/SQLiteProgram;->bindNull(I)V
HSPLandroid/database/sqlite/SQLiteProgram;->bindString(ILjava/lang/String;)V
@@ -3194,23 +9324,44 @@ HSPLandroid/database/sqlite/SQLiteQueryBuilder;-><init>()V
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendClause(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendColumns(Ljava/lang/StringBuilder;[Ljava/lang/String;)V
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendWhere(Ljava/lang/CharSequence;)V
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendWhereEscapeString(Ljava/lang/String;)V
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->appendWhereStandalone(Ljava/lang/CharSequence;)V
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->buildDelete(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->buildQuery([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->buildQueryString(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/database/sqlite/SQLiteQueryBuilder;->buildUnionQuery([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->buildUpdate(Landroid/content/ContentValues;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->computeProjection([Ljava/lang/String;)[Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->computeSingleProjection(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->computeSingleProjectionOrThrow(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->computeWhere(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->delete(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)I
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->enforceStrictColumns(Landroid/content/ContentValues;)V
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->enforceStrictGrammar(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->enforceStrictGrammarOrderBy(Ljava/lang/String;)V
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->enforceStrictGrammarWhereHaving(Ljava/lang/String;)V
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->getProjectionMap()Ljava/util/Map;
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->getTables()Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrict()Z
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrictColumns()Z
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isStrictGrammar()Z
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->isTableOrColumn(Ljava/lang/String;)Z
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->lambda$8Xdbi4e9qj6B20afMr13v8eErCU(Landroid/database/sqlite/SQLiteQueryBuilder;Ljava/lang/String;)V
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->lambda$RN4X37kr4P69Zco8q57M-c-6Pcc(Landroid/database/sqlite/SQLiteQueryBuilder;Ljava/lang/String;)V
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->maybeWithOperator(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setDistinct(Z)V
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setProjectionAggregationAllowed(Z)V
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setProjectionGreylist(Ljava/util/List;)V
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setProjectionMap(Ljava/util/Map;)V
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setStrict(Z)V
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->setTables(Ljava/lang/String;)V
+HSPLandroid/database/sqlite/SQLiteQueryBuilder;->update(Landroid/database/sqlite/SQLiteDatabase;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
HSPLandroid/database/sqlite/SQLiteQueryBuilder;->wrap(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/database/sqlite/SQLiteSession$Transaction;-><init>()V
+HSPLandroid/database/sqlite/SQLiteSession$Transaction;-><init>(Landroid/database/sqlite/SQLiteSession$1;)V
HSPLandroid/database/sqlite/SQLiteSession;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;)V
HSPLandroid/database/sqlite/SQLiteSession;->acquireConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)V
HSPLandroid/database/sqlite/SQLiteSession;->beginTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroid/os/CancellationSignal;)V
@@ -3222,112 +9373,285 @@ HSPLandroid/database/sqlite/SQLiteSession;->executeForChangedRowCount(Ljava/lang
HSPLandroid/database/sqlite/SQLiteSession;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZILandroid/os/CancellationSignal;)I
HSPLandroid/database/sqlite/SQLiteSession;->executeForLastInsertedRowId(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)J
HSPLandroid/database/sqlite/SQLiteSession;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)J
+HSPLandroid/database/sqlite/SQLiteSession;->executeForString(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteSession;->executeSpecial(Ljava/lang/String;[Ljava/lang/Object;ILandroid/os/CancellationSignal;)Z
+HSPLandroid/database/sqlite/SQLiteSession;->hasConnection()Z
+HPLandroid/database/sqlite/SQLiteSession;->hasNestedTransaction()Z
+HSPLandroid/database/sqlite/SQLiteSession;->obtainTransaction(ILandroid/database/sqlite/SQLiteTransactionListener;)Landroid/database/sqlite/SQLiteSession$Transaction;
HSPLandroid/database/sqlite/SQLiteSession;->prepare(Ljava/lang/String;ILandroid/os/CancellationSignal;Landroid/database/sqlite/SQLiteStatementInfo;)V
+HSPLandroid/database/sqlite/SQLiteSession;->recycleTransaction(Landroid/database/sqlite/SQLiteSession$Transaction;)V
HSPLandroid/database/sqlite/SQLiteSession;->releaseConnection()V
HSPLandroid/database/sqlite/SQLiteSession;->setTransactionSuccessful()V
+HPLandroid/database/sqlite/SQLiteSession;->throwIfNestedTransaction()V
HSPLandroid/database/sqlite/SQLiteSession;->throwIfNoTransaction()V
HSPLandroid/database/sqlite/SQLiteSession;->throwIfTransactionMarkedSuccessful()V
+HPLandroid/database/sqlite/SQLiteSession;->yieldTransaction(JZLandroid/os/CancellationSignal;)Z
+HPLandroid/database/sqlite/SQLiteSession;->yieldTransactionUnchecked(JLandroid/os/CancellationSignal;)Z
HSPLandroid/database/sqlite/SQLiteStatement;-><init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/Object;)V
HSPLandroid/database/sqlite/SQLiteStatement;->execute()V
HSPLandroid/database/sqlite/SQLiteStatement;->executeInsert()J
HSPLandroid/database/sqlite/SQLiteStatement;->executeUpdateDelete()I
HSPLandroid/database/sqlite/SQLiteStatement;->simpleQueryForLong()J
+HSPLandroid/database/sqlite/SQLiteStatement;->simpleQueryForString()Ljava/lang/String;
HSPLandroid/database/sqlite/SQLiteStatementInfo;-><init>()V
-HSPLandroid/ddm/DdmHandleAppName;->sendAPNM(Ljava/lang/String;I)V
+HPLandroid/database/sqlite/SqliteWrapper;->query(Landroid/content/Context;Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
+HSPLandroid/ddm/DdmHandleAppName$Names;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/ddm/DdmHandleAppName$Names;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/ddm/DdmHandleAppName$1;)V
+HSPLandroid/ddm/DdmHandleAppName;->sendAPNM(Ljava/lang/String;Ljava/lang/String;I)V
HSPLandroid/ddm/DdmHandleAppName;->setAppName(Ljava/lang/String;I)V
+HSPLandroid/ddm/DdmHandleAppName;->setAppName(Ljava/lang/String;Ljava/lang/String;I)V
+HSPLandroid/debug/AdbManagerInternal;-><init>()V
+HSPLandroid/debug/IAdbManager$Stub;-><init>()V
+HSPLandroid/debug/IAdbManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/debug/IAdbManager;
+PLandroid/debug/IAdbManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/debug/IAdbTransport$Stub;-><init>()V
+HSPLandroid/debug/IAdbTransport$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/graphics/-$$Lambda$ColorSpace$Rgb$8EkhO2jIf14tuA3BvrmYJMa7YXM;-><init>(Landroid/graphics/ColorSpace$Rgb;)V
+PLandroid/graphics/-$$Lambda$ColorSpace$Rgb$CqKld6797g7__JnuY0NeFz5q4_E;-><init>(D)V
+PLandroid/graphics/-$$Lambda$ColorSpace$Rgb$ZvS77aTfobOSa2o9MTqYMph4Rcg;-><init>(D)V
HSPLandroid/graphics/BaseCanvas;-><init>()V
+HSPLandroid/graphics/BaseCanvas;->drawArc(FFFFFFZLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseCanvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V
HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
HSPLandroid/graphics/BaseCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+HPLandroid/graphics/BaseCanvas;->drawColor(ILandroid/graphics/BlendMode;)V
+PLandroid/graphics/BaseCanvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
+HPLandroid/graphics/BaseCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V
+HPLandroid/graphics/BaseCanvas;->drawPaint(Landroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseCanvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
+PLandroid/graphics/BaseCanvas;->drawRect(FFFFLandroid/graphics/Paint;)V
+PLandroid/graphics/BaseCanvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V
+PLandroid/graphics/BaseCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+HPLandroid/graphics/BaseCanvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V
+PLandroid/graphics/BaseCanvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseCanvas;->drawText([CIIFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V
HSPLandroid/graphics/BaseCanvas;->throwIfCannotDraw(Landroid/graphics/Bitmap;)V
HSPLandroid/graphics/BaseCanvas;->throwIfHasHwBitmapInSwMode(Landroid/graphics/Paint;)V
HSPLandroid/graphics/BaseCanvas;->throwIfHasHwBitmapInSwMode(Landroid/graphics/Shader;)V
+HSPLandroid/graphics/BaseCanvas;->throwIfHwBitmapInSwMode(Landroid/graphics/Bitmap;)V
+PLandroid/graphics/BaseRecordingCanvas;-><init>(J)V
+HPLandroid/graphics/BaseRecordingCanvas;->drawARGB(IIII)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V
+HPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V
HSPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
+HPLandroid/graphics/BaseRecordingCanvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawCircle(FFFLandroid/graphics/Paint;)V
+HPLandroid/graphics/BaseRecordingCanvas;->drawColor(I)V
+HPLandroid/graphics/BaseRecordingCanvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawLine(FFFFLandroid/graphics/Paint;)V
+HPLandroid/graphics/BaseRecordingCanvas;->drawOval(FFFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+HPLandroid/graphics/BaseRecordingCanvas;->drawPaint(Landroid/graphics/Paint;)V
+HPLandroid/graphics/BaseRecordingCanvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
+HPLandroid/graphics/BaseRecordingCanvas;->drawPicture(Landroid/graphics/Picture;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(FFFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V
HSPLandroid/graphics/BaseRecordingCanvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+PLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V
HSPLandroid/graphics/BaseRecordingCanvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V
HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V
HSPLandroid/graphics/BaseRecordingCanvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V
+HSPLandroid/graphics/BaseRecordingCanvas;->drawTextRun([CIIIIFFZLandroid/graphics/Paint;)V
HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Bitmap;
HSPLandroid/graphics/Bitmap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/graphics/Bitmap$CompressFormat;->valueOf(Ljava/lang/String;)Landroid/graphics/Bitmap$CompressFormat;
+HSPLandroid/graphics/Bitmap$CompressFormat;->values()[Landroid/graphics/Bitmap$CompressFormat;
HSPLandroid/graphics/Bitmap$Config;->nativeToConfig(I)Landroid/graphics/Bitmap$Config;
HSPLandroid/graphics/Bitmap$Config;->values()[Landroid/graphics/Bitmap$Config;
HSPLandroid/graphics/Bitmap;-><init>(JIIIZ[BLandroid/graphics/NinePatch$InsetStruct;Z)V
+PLandroid/graphics/Bitmap;->access$000(Landroid/os/Parcel;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/Bitmap;->checkPixelAccess(II)V
+HSPLandroid/graphics/Bitmap;->checkPixelsAccess(IIIIII[I)V
HSPLandroid/graphics/Bitmap;->checkRecycled(Ljava/lang/String;)V
HSPLandroid/graphics/Bitmap;->checkWidthHeight(II)V
HSPLandroid/graphics/Bitmap;->checkXYSign(II)V
HSPLandroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
-HSPLandroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
+PLandroid/graphics/Bitmap;->copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
+HPLandroid/graphics/Bitmap;->copyPixelsToBuffer(Ljava/nio/Buffer;)V
+HSPLandroid/graphics/Bitmap;->createAshmemBitmap()Landroid/graphics/Bitmap;
HSPLandroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
HSPLandroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap;
HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;
+HPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Picture;)Landroid/graphics/Bitmap;
+HPLandroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Picture;IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
+HPLandroid/graphics/Bitmap;->createBitmap(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;
HSPLandroid/graphics/Bitmap;->createBitmap(Landroid/util/DisplayMetrics;IILandroid/graphics/Bitmap$Config;ZLandroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;
+PLandroid/graphics/Bitmap;->createGraphicBufferHandle()Landroid/graphics/GraphicBuffer;
HSPLandroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
-HSPLandroid/graphics/Bitmap;->eraseColor(I)V
+HPLandroid/graphics/Bitmap;->eraseColor(I)V
+HSPLandroid/graphics/Bitmap;->extractAlpha(Landroid/graphics/Paint;[I)Landroid/graphics/Bitmap;
HSPLandroid/graphics/Bitmap;->getAllocationByteCount()I
+HSPLandroid/graphics/Bitmap;->getByteCount()I
HSPLandroid/graphics/Bitmap;->getColorSpace()Landroid/graphics/ColorSpace;
HSPLandroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
HSPLandroid/graphics/Bitmap;->getDefaultDensity()I
HSPLandroid/graphics/Bitmap;->getHeight()I
+HSPLandroid/graphics/Bitmap;->getNativeInstance()J
HSPLandroid/graphics/Bitmap;->getNinePatchChunk()[B
+PLandroid/graphics/Bitmap;->getNinePatchInsets()Landroid/graphics/NinePatch$InsetStruct;
+PLandroid/graphics/Bitmap;->getOpticalInsets(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/Bitmap;->getPixel(II)I
+HSPLandroid/graphics/Bitmap;->getPixels([IIIIIII)V
+HSPLandroid/graphics/Bitmap;->getRowBytes()I
HSPLandroid/graphics/Bitmap;->getScaledHeight(I)I
HSPLandroid/graphics/Bitmap;->getScaledWidth(I)I
HSPLandroid/graphics/Bitmap;->getWidth()I
HSPLandroid/graphics/Bitmap;->hasAlpha()Z
+PLandroid/graphics/Bitmap;->hasMipMap()Z
HSPLandroid/graphics/Bitmap;->isMutable()Z
+HSPLandroid/graphics/Bitmap;->isPremultiplied()Z
+HSPLandroid/graphics/Bitmap;->isRecycled()Z
+HSPLandroid/graphics/Bitmap;->noteHardwareBitmapSlowCall()V
+HSPLandroid/graphics/Bitmap;->prepareToDraw()V
+HSPLandroid/graphics/Bitmap;->reconfigure(IILandroid/graphics/Bitmap$Config;)V
+HSPLandroid/graphics/Bitmap;->recycle()V
+HSPLandroid/graphics/Bitmap;->reinit(IIZ)V
HSPLandroid/graphics/Bitmap;->scaleFromDensity(III)I
HSPLandroid/graphics/Bitmap;->setDensity(I)V
HSPLandroid/graphics/Bitmap;->setHasAlpha(Z)V
+PLandroid/graphics/Bitmap;->setHasMipMap(Z)V
HSPLandroid/graphics/Bitmap;->setPremultiplied(Z)V
+HSPLandroid/graphics/Bitmap;->wrapHardwareBuffer(Landroid/graphics/GraphicBuffer;Landroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/Bitmap;->wrapHardwareBuffer(Landroid/hardware/HardwareBuffer;Landroid/graphics/ColorSpace;)Landroid/graphics/Bitmap;
HSPLandroid/graphics/Bitmap;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/graphics/BitmapFactory$Options;-><init>()V
-HSPLandroid/graphics/BitmapFactory$Options;->nativeColorSpace(Landroid/graphics/BitmapFactory$Options;)J
-HSPLandroid/graphics/BitmapFactory$Options;->nativeInBitmap(Landroid/graphics/BitmapFactory$Options;)J
+PLandroid/graphics/BitmapFactory$Options;->nativeColorSpace(Landroid/graphics/BitmapFactory$Options;)J
+PLandroid/graphics/BitmapFactory$Options;->nativeInBitmap(Landroid/graphics/BitmapFactory$Options;)J
HSPLandroid/graphics/BitmapFactory$Options;->validate(Landroid/graphics/BitmapFactory$Options;)V
HSPLandroid/graphics/BitmapFactory;->decodeByteArray([BII)Landroid/graphics/Bitmap;
HSPLandroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+HPLandroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;)Landroid/graphics/Bitmap;
+PLandroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+HPLandroid/graphics/BitmapFactory;->decodeFileDescriptor(Ljava/io/FileDescriptor;)Landroid/graphics/Bitmap;
HSPLandroid/graphics/BitmapFactory;->decodeFileDescriptor(Ljava/io/FileDescriptor;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/BitmapFactory;->decodeResourceStream(Landroid/content/res/Resources;Landroid/util/TypedValue;Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+PLandroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap;
HSPLandroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+PLandroid/graphics/BitmapFactory;->decodeStreamInternal(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
HSPLandroid/graphics/BitmapFactory;->setDensityFromOptions(Landroid/graphics/Bitmap;Landroid/graphics/BitmapFactory$Options;)V
+HPLandroid/graphics/BitmapRegionDecoder;-><init>(J)V
+HPLandroid/graphics/BitmapRegionDecoder;->checkRecycled(Ljava/lang/String;)V
+HPLandroid/graphics/BitmapRegionDecoder;->decodeRegion(Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
+HPLandroid/graphics/BitmapRegionDecoder;->finalize()V
+HPLandroid/graphics/BitmapRegionDecoder;->getHeight()I
+HPLandroid/graphics/BitmapRegionDecoder;->getWidth()I
+HPLandroid/graphics/BitmapRegionDecoder;->newInstance(Ljava/io/InputStream;Z)Landroid/graphics/BitmapRegionDecoder;
+HPLandroid/graphics/BitmapRegionDecoder;->recycle()V
+HSPLandroid/graphics/BitmapShader;-><init>(Landroid/graphics/Bitmap;II)V
+HSPLandroid/graphics/BitmapShader;-><init>(Landroid/graphics/Bitmap;Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V
+HSPLandroid/graphics/BitmapShader;->createNativeInstance(J)J
HSPLandroid/graphics/BlendMode;->blendModeToPorterDuffMode(Landroid/graphics/BlendMode;)Landroid/graphics/PorterDuff$Mode;
HSPLandroid/graphics/BlendMode;->fromValue(I)Landroid/graphics/BlendMode;
HSPLandroid/graphics/BlendMode;->getXfermode()Landroid/graphics/Xfermode;
+HSPLandroid/graphics/BlendMode;->toValue(Landroid/graphics/BlendMode;)I
HSPLandroid/graphics/BlendModeColorFilter;-><init>(ILandroid/graphics/BlendMode;)V
HSPLandroid/graphics/BlendModeColorFilter;->createNativeInstance()J
+HSPLandroid/graphics/BlendModeColorFilter;->getColor()I
+HSPLandroid/graphics/BlendModeColorFilter;->getMode()Landroid/graphics/BlendMode;
+HSPLandroid/graphics/BlurMaskFilter;-><init>(FLandroid/graphics/BlurMaskFilter$Blur;)V
HSPLandroid/graphics/Canvas;-><init>()V
HSPLandroid/graphics/Canvas;-><init>(J)V
HSPLandroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
+HPLandroid/graphics/Canvas;->clipOutPath(Landroid/graphics/Path;)Z
+HSPLandroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;)Z
+HSPLandroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;Landroid/graphics/Region$Op;)Z
HSPLandroid/graphics/Canvas;->clipRect(FFFF)Z
HSPLandroid/graphics/Canvas;->clipRect(IIII)Z
HSPLandroid/graphics/Canvas;->clipRect(Landroid/graphics/Rect;)Z
+HSPLandroid/graphics/Canvas;->clipRect(Landroid/graphics/Rect;Landroid/graphics/Region$Op;)Z
HSPLandroid/graphics/Canvas;->concat(Landroid/graphics/Matrix;)V
+HPLandroid/graphics/Canvas;->drawARGB(IIII)V
+HSPLandroid/graphics/Canvas;->drawArc(FFFFFFZLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V
HSPLandroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V
HSPLandroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
HSPLandroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V
HSPLandroid/graphics/Canvas;->drawCircle(FFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawColor(I)V
+HPLandroid/graphics/Canvas;->drawColor(ILandroid/graphics/BlendMode;)V
+HSPLandroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
+HPLandroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawOval(FFFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+HPLandroid/graphics/Canvas;->drawPaint(Landroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V
+HPLandroid/graphics/Canvas;->drawPicture(Landroid/graphics/Picture;)V
+HPLandroid/graphics/Canvas;->drawPicture(Landroid/graphics/Picture;Landroid/graphics/RectF;)V
HSPLandroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V
HSPLandroid/graphics/Canvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawRoundRect(FFFFFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawText([CIIFFLandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->drawTextRun(Ljava/lang/CharSequence;IIIIFFZLandroid/graphics/Paint;)V
+PLandroid/graphics/Canvas;->freeCaches()V
+PLandroid/graphics/Canvas;->freeTextLayoutCaches()V
HSPLandroid/graphics/Canvas;->getClipBounds(Landroid/graphics/Rect;)Z
+HPLandroid/graphics/Canvas;->getDensity()I
HSPLandroid/graphics/Canvas;->getHeight()I
+HPLandroid/graphics/Canvas;->getMatrix(Landroid/graphics/Matrix;)V
HSPLandroid/graphics/Canvas;->getNativeCanvasWrapper()J
HSPLandroid/graphics/Canvas;->getSaveCount()I
HSPLandroid/graphics/Canvas;->getWidth()I
HSPLandroid/graphics/Canvas;->insertInorderBarrier()V
HSPLandroid/graphics/Canvas;->insertReorderBarrier()V
HSPLandroid/graphics/Canvas;->isHardwareAccelerated()Z
+PLandroid/graphics/Canvas;->isOpaque()Z
+HSPLandroid/graphics/Canvas;->isRecordingFor(Ljava/lang/Object;)Z
HSPLandroid/graphics/Canvas;->quickReject(FFFFLandroid/graphics/Canvas$EdgeType;)Z
HSPLandroid/graphics/Canvas;->restore()V
HSPLandroid/graphics/Canvas;->restoreToCount(I)V
+HPLandroid/graphics/Canvas;->restoreUnclippedLayer(ILandroid/graphics/Paint;)V
+HSPLandroid/graphics/Canvas;->rotate(F)V
+HSPLandroid/graphics/Canvas;->rotate(FFF)V
HSPLandroid/graphics/Canvas;->save()I
HSPLandroid/graphics/Canvas;->save(I)I
+HPLandroid/graphics/Canvas;->saveLayer(FFFFLandroid/graphics/Paint;I)I
+HPLandroid/graphics/Canvas;->saveLayer(Landroid/graphics/RectF;Landroid/graphics/Paint;)I
+HPLandroid/graphics/Canvas;->saveLayer(Landroid/graphics/RectF;Landroid/graphics/Paint;I)I
+HSPLandroid/graphics/Canvas;->saveLayerAlpha(FFFFI)I
+HSPLandroid/graphics/Canvas;->saveLayerAlpha(FFFFII)I
+HPLandroid/graphics/Canvas;->saveUnclippedLayer(IIII)I
+HSPLandroid/graphics/Canvas;->scale(FF)V
+HPLandroid/graphics/Canvas;->scale(FFFF)V
HSPLandroid/graphics/Canvas;->setBitmap(Landroid/graphics/Bitmap;)V
+PLandroid/graphics/Canvas;->setCompatibilityVersion(I)V
+PLandroid/graphics/Canvas;->setDensity(I)V
+HSPLandroid/graphics/Canvas;->setDrawFilter(Landroid/graphics/DrawFilter;)V
+HSPLandroid/graphics/Canvas;->setMatrix(Landroid/graphics/Matrix;)V
+PLandroid/graphics/Canvas;->setScreenDensity(I)V
HSPLandroid/graphics/Canvas;->translate(FF)V
+HPLandroid/graphics/CanvasProperty;-><init>(J)V
+HPLandroid/graphics/CanvasProperty;->createFloat(F)Landroid/graphics/CanvasProperty;
+HPLandroid/graphics/CanvasProperty;->createPaint(Landroid/graphics/Paint;)Landroid/graphics/CanvasProperty;
+HPLandroid/graphics/CanvasProperty;->getNativeContainer()J
+HPLandroid/graphics/Color;-><init>(FFFF)V
+HSPLandroid/graphics/Color;-><init>(FFFFLandroid/graphics/ColorSpace;)V
+HPLandroid/graphics/Color;->HSVToColor([F)I
+HPLandroid/graphics/Color;->RGBToHSV(III[F)V
HSPLandroid/graphics/Color;->alpha(I)I
HSPLandroid/graphics/Color;->alpha(J)F
+HPLandroid/graphics/Color;->argb(FFFF)I
HSPLandroid/graphics/Color;->argb(IIII)I
HSPLandroid/graphics/Color;->blue(I)I
HSPLandroid/graphics/Color;->blue(J)F
+HPLandroid/graphics/Color;->colorSpace(J)Landroid/graphics/ColorSpace;
+HSPLandroid/graphics/Color;->colorToHSV(I[F)V
+HSPLandroid/graphics/Color;->getHtmlColor(Ljava/lang/String;)I
HSPLandroid/graphics/Color;->green(I)I
HSPLandroid/graphics/Color;->green(J)F
HSPLandroid/graphics/Color;->pack(FFFFLandroid/graphics/ColorSpace;)J
@@ -3335,38 +9659,155 @@ HSPLandroid/graphics/Color;->pack(I)J
HSPLandroid/graphics/Color;->parseColor(Ljava/lang/String;)I
HSPLandroid/graphics/Color;->red(I)I
HSPLandroid/graphics/Color;->red(J)F
+HSPLandroid/graphics/Color;->rgb(III)I
+HPLandroid/graphics/Color;->saturate(F)F
HSPLandroid/graphics/Color;->toArgb()I
HSPLandroid/graphics/Color;->toArgb(J)I
+HPLandroid/graphics/Color;->valueOf(FFFF)Landroid/graphics/Color;
HSPLandroid/graphics/Color;->valueOf(I)Landroid/graphics/Color;
HSPLandroid/graphics/ColorFilter;-><init>()V
+HPLandroid/graphics/ColorFilter;->discardNativeInstance()V
HSPLandroid/graphics/ColorFilter;->getNativeInstance()J
+HSPLandroid/graphics/ColorMatrix;-><init>()V
+HPLandroid/graphics/ColorMatrix;-><init>([F)V
+HSPLandroid/graphics/ColorMatrix;->reset()V
+HPLandroid/graphics/ColorMatrix;->set([F)V
+HSPLandroid/graphics/ColorMatrix;->setSaturation(F)V
+HPLandroid/graphics/ColorMatrix;->setScale(FFFF)V
+HSPLandroid/graphics/ColorMatrixColorFilter;-><init>(Landroid/graphics/ColorMatrix;)V
+HPLandroid/graphics/ColorMatrixColorFilter;-><init>([F)V
+HPLandroid/graphics/ColorMatrixColorFilter;->createNativeInstance()J
+HPLandroid/graphics/ColorMatrixColorFilter;->setColorMatrixArray([F)V
HSPLandroid/graphics/ColorSpace$Named;->values()[Landroid/graphics/ColorSpace$Named;
+PLandroid/graphics/ColorSpace$Rgb$TransferParameters;-><init>(DDDDD)V
+HSPLandroid/graphics/ColorSpace$Rgb$TransferParameters;-><init>(DDDDDDD)V
+HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Landroid/graphics/ColorSpace$Rgb;[F[F)V
+HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Landroid/graphics/ColorSpace$Rgb;[F[FLandroid/graphics/ColorSpace$1;)V
+HPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[FLandroid/graphics/ColorSpace$Rgb$TransferParameters;)V
+PLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[FD)V
+PLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[FDFFI)V
+HPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[FLandroid/graphics/ColorSpace$Rgb$TransferParameters;I)V
+HSPLandroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[F[FLjava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;FFLandroid/graphics/ColorSpace$Rgb$TransferParameters;I)V
+HSPLandroid/graphics/ColorSpace$Rgb;->access$000(Landroid/graphics/ColorSpace$Rgb;)[F
+HSPLandroid/graphics/ColorSpace$Rgb;->access$100(Landroid/graphics/ColorSpace$Rgb;)[F
+HSPLandroid/graphics/ColorSpace$Rgb;->access$300(Landroid/graphics/ColorSpace$Rgb;)Landroid/graphics/ColorSpace$Rgb$TransferParameters;
+HSPLandroid/graphics/ColorSpace$Rgb;->area([F)F
+HPLandroid/graphics/ColorSpace$Rgb;->computePrimaries([F)[F
+HPLandroid/graphics/ColorSpace$Rgb;->computeWhitePoint([F)[F
+PLandroid/graphics/ColorSpace$Rgb;->computeXYZMatrix([F[F)[F
+HSPLandroid/graphics/ColorSpace$Rgb;->contains([F[F)Z
+PLandroid/graphics/ColorSpace$Rgb;->cross(FFFF)F
+PLandroid/graphics/ColorSpace$Rgb;->getInverseTransform()[F
HSPLandroid/graphics/ColorSpace$Rgb;->getNativeInstance()J
+HSPLandroid/graphics/ColorSpace$Rgb;->getTransferParameters()Landroid/graphics/ColorSpace$Rgb$TransferParameters;
+PLandroid/graphics/ColorSpace$Rgb;->getTransform()[F
+HSPLandroid/graphics/ColorSpace$Rgb;->getWhitePoint()[F
HSPLandroid/graphics/ColorSpace$Rgb;->isSrgb()Z
+HSPLandroid/graphics/ColorSpace$Rgb;->isSrgb([F[FLjava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;FFI)Z
+HSPLandroid/graphics/ColorSpace$Rgb;->isWideGamut()Z
+HSPLandroid/graphics/ColorSpace$Rgb;->isWideGamut([FFF)Z
+HSPLandroid/graphics/ColorSpace$Rgb;->xyPrimaries([F)[F
+HSPLandroid/graphics/ColorSpace$Rgb;->xyWhitePoint([F)[F
+HSPLandroid/graphics/ColorSpace;-><init>(Ljava/lang/String;Landroid/graphics/ColorSpace$Model;I)V
+HSPLandroid/graphics/ColorSpace;-><init>(Ljava/lang/String;Landroid/graphics/ColorSpace$Model;ILandroid/graphics/ColorSpace$1;)V
+HSPLandroid/graphics/ColorSpace;->access$1200([F)[F
+HSPLandroid/graphics/ColorSpace;->access$1300([F[F)[F
+HPLandroid/graphics/ColorSpace;->access$1500([F[F)[F
+PLandroid/graphics/ColorSpace;->access$1600()[F
+PLandroid/graphics/ColorSpace;->access$1700([F[F)Z
+PLandroid/graphics/ColorSpace;->access$1800()[F
+HSPLandroid/graphics/ColorSpace;->adapt(Landroid/graphics/ColorSpace;[F)Landroid/graphics/ColorSpace;
+HSPLandroid/graphics/ColorSpace;->adapt(Landroid/graphics/ColorSpace;[FLandroid/graphics/ColorSpace$Adaptation;)Landroid/graphics/ColorSpace;
+PLandroid/graphics/ColorSpace;->adaptToIlluminantD50([F[F)[F
+HPLandroid/graphics/ColorSpace;->cctToXyz(I)[F
+HPLandroid/graphics/ColorSpace;->chromaticAdaptation(Landroid/graphics/ColorSpace$Adaptation;[F[F)[F
+HSPLandroid/graphics/ColorSpace;->chromaticAdaptation([F[F[F)[F
+HSPLandroid/graphics/ColorSpace;->compare(Landroid/graphics/ColorSpace$Rgb$TransferParameters;Landroid/graphics/ColorSpace$Rgb$TransferParameters;)Z
+HSPLandroid/graphics/ColorSpace;->compare([F[F)Z
HSPLandroid/graphics/ColorSpace;->get(I)Landroid/graphics/ColorSpace;
HSPLandroid/graphics/ColorSpace;->get(Landroid/graphics/ColorSpace$Named;)Landroid/graphics/ColorSpace;
+HSPLandroid/graphics/ColorSpace;->getId()I
+HSPLandroid/graphics/ColorSpace;->getModel()Landroid/graphics/ColorSpace$Model;
+HSPLandroid/graphics/ColorSpace;->getName()Ljava/lang/String;
+HSPLandroid/graphics/ColorSpace;->inverse3x3([F)[F
+HSPLandroid/graphics/ColorSpace;->match([FLandroid/graphics/ColorSpace$Rgb$TransferParameters;)Landroid/graphics/ColorSpace;
+HSPLandroid/graphics/ColorSpace;->mul3x3([F[F)[F
+HSPLandroid/graphics/ColorSpace;->mul3x3Diag([F[F)[F
+HSPLandroid/graphics/ColorSpace;->mul3x3Float3([F[F)[F
+PLandroid/graphics/ColorSpace;->toString()Ljava/lang/String;
+HSPLandroid/graphics/ColorSpace;->xyYToXyz([F)[F
+HSPLandroid/graphics/CornerPathEffect;-><init>(F)V
+HSPLandroid/graphics/DrawFilter;-><init>()V
+PLandroid/graphics/DrawFilter;->finalize()V
+HSPLandroid/graphics/FontFamily;-><init>()V
+HSPLandroid/graphics/FontFamily;->addFontFromAssetManager(Landroid/content/res/AssetManager;Ljava/lang/String;IZIII[Landroid/graphics/fonts/FontVariationAxis;)Z
+HSPLandroid/graphics/FontFamily;->addFontFromBuffer(Ljava/nio/ByteBuffer;I[Landroid/graphics/fonts/FontVariationAxis;II)Z
+HSPLandroid/graphics/FontFamily;->freeze()Z
HSPLandroid/graphics/FrameInfo;-><init>()V
HSPLandroid/graphics/FrameInfo;->addFlags(J)V
HSPLandroid/graphics/FrameInfo;->markAnimationsStart()V
+PLandroid/graphics/FrameInfo;->markDrawStart()V
HSPLandroid/graphics/FrameInfo;->markInputHandlingStart()V
HSPLandroid/graphics/FrameInfo;->markPerformTraversalsStart()V
HSPLandroid/graphics/FrameInfo;->setVsync(JJ)V
+HSPLandroid/graphics/GraphicBuffer$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/GraphicBuffer;
+HSPLandroid/graphics/GraphicBuffer$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/graphics/GraphicBuffer;-><init>(IIIIJ)V
+HSPLandroid/graphics/GraphicBuffer;-><init>(IIIIJLandroid/graphics/GraphicBuffer$1;)V
+HSPLandroid/graphics/GraphicBuffer;->access$000(Landroid/os/Parcel;)J
+PLandroid/graphics/GraphicBuffer;->createFromExisting(IIIIJ)Landroid/graphics/GraphicBuffer;
+HPLandroid/graphics/GraphicBuffer;->destroy()V
HSPLandroid/graphics/GraphicBuffer;->finalize()V
+PLandroid/graphics/GraphicBuffer;->getFormat()I
+PLandroid/graphics/GraphicBuffer;->getHeight()I
+PLandroid/graphics/GraphicBuffer;->getWidth()I
+PLandroid/graphics/GraphicBuffer;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/graphics/HardwareRenderer$DestroyContextRunnable;-><init>(J)V
+HSPLandroid/graphics/HardwareRenderer$DestroyContextRunnable;->run()V
+PLandroid/graphics/HardwareRenderer$FrameRenderRequest;-><init>(Landroid/graphics/HardwareRenderer;)V
+PLandroid/graphics/HardwareRenderer$FrameRenderRequest;-><init>(Landroid/graphics/HardwareRenderer;Landroid/graphics/HardwareRenderer$1;)V
+PLandroid/graphics/HardwareRenderer$ProcessInitializer$1;->onRotateGraphicsStatsBuffer()V
HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->init(J)V
HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initGraphicsStats()V
HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->initSched(J)V
HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->requestBuffer()V
HSPLandroid/graphics/HardwareRenderer$ProcessInitializer;->setPackageName(Ljava/lang/String;)V
HSPLandroid/graphics/HardwareRenderer;-><init>()V
+PLandroid/graphics/HardwareRenderer;->access$300(J)V
+PLandroid/graphics/HardwareRenderer;->access$500(J)I
HSPLandroid/graphics/HardwareRenderer;->allocateBuffers()V
+PLandroid/graphics/HardwareRenderer;->clearContent()V
+HPLandroid/graphics/HardwareRenderer;->copyLayerInto(Landroid/view/TextureLayer;Landroid/graphics/Bitmap;)Z
+HPLandroid/graphics/HardwareRenderer;->createHardwareBitmap(Landroid/graphics/RenderNode;II)Landroid/graphics/Bitmap;
+HPLandroid/graphics/HardwareRenderer;->createTextureLayer()Landroid/view/TextureLayer;
+PLandroid/graphics/HardwareRenderer;->destroy()V
+HPLandroid/graphics/HardwareRenderer;->detachSurfaceTexture(J)V
+PLandroid/graphics/HardwareRenderer;->isWideGamut()Z
+PLandroid/graphics/HardwareRenderer;->loadSystemProperties()Z
+PLandroid/graphics/HardwareRenderer;->notifyFramePending()V
+HPLandroid/graphics/HardwareRenderer;->onLayerDestroyed(Landroid/view/TextureLayer;)V
HSPLandroid/graphics/HardwareRenderer;->pause()Z
+HPLandroid/graphics/HardwareRenderer;->pushLayerUpdate(Landroid/view/TextureLayer;)V
+HSPLandroid/graphics/HardwareRenderer;->registerVectorDrawableAnimator(Landroid/view/NativeVectorDrawableAnimator;)V
+HPLandroid/graphics/HardwareRenderer;->removeFrameMetricsObserver(Landroid/view/FrameMetricsObserver;)V
+HSPLandroid/graphics/HardwareRenderer;->setContextPriority(I)V
HSPLandroid/graphics/HardwareRenderer;->setDebuggingEnabled(Z)V
HSPLandroid/graphics/HardwareRenderer;->setFPSDivisor(I)V
+PLandroid/graphics/HardwareRenderer;->setForceDark(Z)Z
+PLandroid/graphics/HardwareRenderer;->setFrameCompleteCallback(Landroid/graphics/HardwareRenderer$FrameCompleteCallback;)V
HSPLandroid/graphics/HardwareRenderer;->setHighContrastText(Z)V
+PLandroid/graphics/HardwareRenderer;->setLightSourceAlpha(FF)V
+PLandroid/graphics/HardwareRenderer;->setLightSourceGeometry(FFFF)V
+PLandroid/graphics/HardwareRenderer;->setName(Ljava/lang/String;)V
+PLandroid/graphics/HardwareRenderer;->setOpaque(Z)V
HSPLandroid/graphics/HardwareRenderer;->setPackageName(Ljava/lang/String;)V
+PLandroid/graphics/HardwareRenderer;->setStopped(Z)V
+PLandroid/graphics/HardwareRenderer;->setSurface(Landroid/view/Surface;)V
HSPLandroid/graphics/HardwareRenderer;->setSurface(Landroid/view/Surface;Z)V
+PLandroid/graphics/HardwareRenderer;->setWideGamut(Z)V
HSPLandroid/graphics/HardwareRenderer;->setupDiskCache(Ljava/io/File;)V
+PLandroid/graphics/HardwareRenderer;->syncAndDrawFrame(Landroid/graphics/FrameInfo;)I
+PLandroid/graphics/HardwareRenderer;->trimMemory(I)V
HSPLandroid/graphics/HardwareRenderer;->validateAlpha(FLjava/lang/String;)V
HSPLandroid/graphics/HardwareRenderer;->validateFinite(FLjava/lang/String;)V
HSPLandroid/graphics/HardwareRenderer;->validatePositive(FLjava/lang/String;)V
@@ -3377,10 +9818,15 @@ HSPLandroid/graphics/ImageDecoder$AssetInputStreamSource;->getResources()Landroi
HSPLandroid/graphics/ImageDecoder$ImageInfo;-><init>(Landroid/graphics/ImageDecoder;)V
HSPLandroid/graphics/ImageDecoder$ImageInfo;-><init>(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$1;)V
HSPLandroid/graphics/ImageDecoder$ImageInfo;->access$1302(Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder;)Landroid/graphics/ImageDecoder;
+PLandroid/graphics/ImageDecoder$InputStreamSource;-><init>(Landroid/content/res/Resources;Ljava/io/InputStream;I)V
+HSPLandroid/graphics/ImageDecoder$InputStreamSource;->createImageDecoder(Z)Landroid/graphics/ImageDecoder;
+HSPLandroid/graphics/ImageDecoder$InputStreamSource;->getDensity()I
+HSPLandroid/graphics/ImageDecoder$InputStreamSource;->getResources()Landroid/content/res/Resources;
HSPLandroid/graphics/ImageDecoder$Source;-><init>()V
HSPLandroid/graphics/ImageDecoder$Source;-><init>(Landroid/graphics/ImageDecoder$1;)V
HSPLandroid/graphics/ImageDecoder$Source;->computeDstDensity()I
HSPLandroid/graphics/ImageDecoder;-><init>(JIIZZ)V
+HSPLandroid/graphics/ImageDecoder;->access$300(Ljava/io/InputStream;ZZLandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
HSPLandroid/graphics/ImageDecoder;->access$500(Landroid/content/res/AssetManager$AssetInputStream;ZLandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
HSPLandroid/graphics/ImageDecoder;->access$700(Landroid/graphics/ImageDecoder;)I
HSPLandroid/graphics/ImageDecoder;->access$800(Landroid/graphics/ImageDecoder;)I
@@ -3391,6 +9837,10 @@ HSPLandroid/graphics/ImageDecoder;->checkSubset(IILandroid/graphics/Rect;)V
HSPLandroid/graphics/ImageDecoder;->close()V
HSPLandroid/graphics/ImageDecoder;->computeDensity(Landroid/graphics/ImageDecoder$Source;)I
HSPLandroid/graphics/ImageDecoder;->createFromAsset(Landroid/content/res/AssetManager$AssetInputStream;ZLandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
+HSPLandroid/graphics/ImageDecoder;->createFromStream(Ljava/io/InputStream;ZZLandroid/graphics/ImageDecoder$Source;)Landroid/graphics/ImageDecoder;
+HSPLandroid/graphics/ImageDecoder;->createSource(Landroid/content/res/Resources;Ljava/io/InputStream;I)Landroid/graphics/ImageDecoder$Source;
+HSPLandroid/graphics/ImageDecoder;->decodeBitmap(Landroid/graphics/ImageDecoder$Source;Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;)Landroid/graphics/Bitmap;
+HSPLandroid/graphics/ImageDecoder;->decodeBitmapImpl(Landroid/graphics/ImageDecoder$Source;Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;)Landroid/graphics/Bitmap;
HSPLandroid/graphics/ImageDecoder;->decodeBitmapInternal()Landroid/graphics/Bitmap;
HSPLandroid/graphics/ImageDecoder;->decodeDrawable(Landroid/graphics/ImageDecoder$Source;Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;)Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/ImageDecoder;->decodeDrawableImpl(Landroid/graphics/ImageDecoder$Source;Landroid/graphics/ImageDecoder$OnHeaderDecodedListener;)Landroid/graphics/drawable/Drawable;
@@ -3398,53 +9848,145 @@ HSPLandroid/graphics/ImageDecoder;->finalize()V
HSPLandroid/graphics/ImageDecoder;->getColorSpacePtr()J
HSPLandroid/graphics/ImageDecoder;->requestedResize()Z
HSPLandroid/graphics/ImageDecoder;->setAllocator(I)V
+PLandroid/graphics/ImageDecoder;->setOutPaddingRect(Landroid/graphics/Rect;)V
HSPLandroid/graphics/ImageDecoder;->setTargetSize(II)V
HSPLandroid/graphics/Insets;-><init>(IIII)V
HSPLandroid/graphics/Insets;->equals(Ljava/lang/Object;)Z
HSPLandroid/graphics/Insets;->max(Landroid/graphics/Insets;Landroid/graphics/Insets;)Landroid/graphics/Insets;
HSPLandroid/graphics/Insets;->of(IIII)Landroid/graphics/Insets;
-PLandroid/graphics/LeakyTypefaceStorage;->readTypefaceFromParcel(Landroid/os/Parcel;)Landroid/graphics/Typeface;
+PLandroid/graphics/Insets;->of(Landroid/graphics/Rect;)Landroid/graphics/Insets;
+HPLandroid/graphics/Insets;->toRect()Landroid/graphics/Rect;
+HSPLandroid/graphics/Interpolator;->finalize()V
+HSPLandroid/graphics/Interpolator;->setKeyFrame(II[F)V
+HSPLandroid/graphics/Interpolator;->setKeyFrame(II[F[F)V
+HSPLandroid/graphics/Interpolator;->timeToValues(I[F)Landroid/graphics/Interpolator$Result;
+HSPLandroid/graphics/Interpolator;->timeToValues([F)Landroid/graphics/Interpolator$Result;
+HPLandroid/graphics/LeakyTypefaceStorage;->readTypefaceFromParcel(Landroid/os/Parcel;)Landroid/graphics/Typeface;
+HSPLandroid/graphics/LeakyTypefaceStorage;->writeTypefaceToParcel(Landroid/graphics/Typeface;Landroid/os/Parcel;)V
+HSPLandroid/graphics/LinearGradient;-><init>(FFFFIILandroid/graphics/Shader$TileMode;)V
HSPLandroid/graphics/LinearGradient;-><init>(FFFF[I[FLandroid/graphics/Shader$TileMode;)V
+HSPLandroid/graphics/LinearGradient;-><init>(FFFF[J[FLandroid/graphics/Shader$TileMode;)V
HSPLandroid/graphics/LinearGradient;-><init>(FFFF[J[FLandroid/graphics/Shader$TileMode;Landroid/graphics/ColorSpace;)V
+HSPLandroid/graphics/LinearGradient;->createNativeInstance(J)J
+HSPLandroid/graphics/MaskFilter;->finalize()V
HSPLandroid/graphics/Matrix;-><init>()V
+HPLandroid/graphics/Matrix;-><init>(Landroid/graphics/Matrix;)V
+HPLandroid/graphics/Matrix;->checkPointArrays([FI[FII)V
+HSPLandroid/graphics/Matrix;->equals(Ljava/lang/Object;)Z
+HPLandroid/graphics/Matrix;->getValues([F)V
+HSPLandroid/graphics/Matrix;->invert(Landroid/graphics/Matrix;)Z
HSPLandroid/graphics/Matrix;->isIdentity()Z
+HSPLandroid/graphics/Matrix;->mapPoints([F)V
+HSPLandroid/graphics/Matrix;->mapPoints([FI[FII)V
+HSPLandroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;)Z
HSPLandroid/graphics/Matrix;->mapRect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z
+HSPLandroid/graphics/Matrix;->ni()J
+PLandroid/graphics/Matrix;->postConcat(Landroid/graphics/Matrix;)Z
+HPLandroid/graphics/Matrix;->postRotate(F)Z
+HSPLandroid/graphics/Matrix;->postRotate(FFF)Z
+HSPLandroid/graphics/Matrix;->postScale(FF)Z
+HSPLandroid/graphics/Matrix;->postScale(FFFF)Z
HSPLandroid/graphics/Matrix;->postTranslate(FF)Z
+HSPLandroid/graphics/Matrix;->preConcat(Landroid/graphics/Matrix;)Z
+HPLandroid/graphics/Matrix;->preRotate(F)Z
+HSPLandroid/graphics/Matrix;->preTranslate(FF)Z
+PLandroid/graphics/Matrix;->printShortString(Ljava/io/PrintWriter;)V
HSPLandroid/graphics/Matrix;->rectStaysRect()Z
HSPLandroid/graphics/Matrix;->reset()V
+HSPLandroid/graphics/Matrix;->set(Landroid/graphics/Matrix;)V
HSPLandroid/graphics/Matrix;->setRectToRect(Landroid/graphics/RectF;Landroid/graphics/RectF;Landroid/graphics/Matrix$ScaleToFit;)Z
+PLandroid/graphics/Matrix;->setRotate(F)V
+PLandroid/graphics/Matrix;->setRotate(FFF)V
HSPLandroid/graphics/Matrix;->setScale(FF)V
+HSPLandroid/graphics/Matrix;->setScale(FFFF)V
HSPLandroid/graphics/Matrix;->setTranslate(FF)V
+HPLandroid/graphics/Matrix;->setValues([F)V
HSPLandroid/graphics/NinePatch$InsetStruct;-><init>(IIIIIIIIFIF)V
HSPLandroid/graphics/NinePatch$InsetStruct;->scaleInsets(IIIIF)Landroid/graphics/Rect;
+PLandroid/graphics/NinePatch;-><init>(Landroid/graphics/Bitmap;[B)V
+PLandroid/graphics/NinePatch;-><init>(Landroid/graphics/Bitmap;[BLjava/lang/String;)V
+HPLandroid/graphics/NinePatch;->draw(Landroid/graphics/Canvas;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
+PLandroid/graphics/NinePatch;->finalize()V
HSPLandroid/graphics/NinePatch;->getBitmap()Landroid/graphics/Bitmap;
HSPLandroid/graphics/NinePatch;->getDensity()I
HSPLandroid/graphics/NinePatch;->getHeight()I
HSPLandroid/graphics/NinePatch;->getWidth()I
+PLandroid/graphics/NinePatch;->hasAlpha()Z
+PLandroid/graphics/Outline;-><init>()V
+PLandroid/graphics/Outline;->isEmpty()Z
+PLandroid/graphics/Outline;->setAlpha(F)V
HSPLandroid/graphics/Outline;->setConvexPath(Landroid/graphics/Path;)V
+PLandroid/graphics/Outline;->setEmpty()V
+HSPLandroid/graphics/Outline;->setOval(IIII)V
+HSPLandroid/graphics/Outline;->setOval(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/Outline;->setRect(IIII)V
+HSPLandroid/graphics/Outline;->setRect(Landroid/graphics/Rect;)V
+PLandroid/graphics/Outline;->setRoundRect(IIIIF)V
HSPLandroid/graphics/Outline;->setRoundRect(Landroid/graphics/Rect;F)V
+HPLandroid/graphics/Paint$FontMetrics;-><init>()V
+PLandroid/graphics/Paint$FontMetricsInt;-><init>()V
HSPLandroid/graphics/Paint;-><init>()V
HSPLandroid/graphics/Paint;-><init>(I)V
+HSPLandroid/graphics/Paint;-><init>(Landroid/graphics/Paint;)V
+HSPLandroid/graphics/Paint;->ascent()F
+HSPLandroid/graphics/Paint;->clearShadowLayer()V
+HSPLandroid/graphics/Paint;->descent()F
HSPLandroid/graphics/Paint;->getAlpha()I
HSPLandroid/graphics/Paint;->getColor()I
HSPLandroid/graphics/Paint;->getColorFilter()Landroid/graphics/ColorFilter;
HSPLandroid/graphics/Paint;->getEndHyphenEdit()I
HSPLandroid/graphics/Paint;->getFlags()I
+HSPLandroid/graphics/Paint;->getFontFeatureSettings()Ljava/lang/String;
+HSPLandroid/graphics/Paint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics;
+HSPLandroid/graphics/Paint;->getFontMetrics(Landroid/graphics/Paint$FontMetrics;)F
+HSPLandroid/graphics/Paint;->getFontMetricsInt()Landroid/graphics/Paint$FontMetricsInt;
HSPLandroid/graphics/Paint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I
+HSPLandroid/graphics/Paint;->getFontVariationSettings()Ljava/lang/String;
+HSPLandroid/graphics/Paint;->getHinting()I
HSPLandroid/graphics/Paint;->getLetterSpacing()F
+HSPLandroid/graphics/Paint;->getMaskFilter()Landroid/graphics/MaskFilter;
HSPLandroid/graphics/Paint;->getNativeInstance()J
HSPLandroid/graphics/Paint;->getRunAdvance(Ljava/lang/CharSequence;IIIIZI)F
HSPLandroid/graphics/Paint;->getRunAdvance([CIIIIZI)F
HSPLandroid/graphics/Paint;->getShader()Landroid/graphics/Shader;
+HSPLandroid/graphics/Paint;->getShadowLayerColor()I
+HSPLandroid/graphics/Paint;->getShadowLayerDx()F
+HSPLandroid/graphics/Paint;->getShadowLayerDy()F
+HSPLandroid/graphics/Paint;->getShadowLayerRadius()F
HSPLandroid/graphics/Paint;->getStartHyphenEdit()I
+HSPLandroid/graphics/Paint;->getStrokeCap()Landroid/graphics/Paint$Cap;
+HSPLandroid/graphics/Paint;->getStrokeJoin()Landroid/graphics/Paint$Join;
+HSPLandroid/graphics/Paint;->getStrokeMiter()F
+HSPLandroid/graphics/Paint;->getStrokeWidth()F
+HSPLandroid/graphics/Paint;->getStyle()Landroid/graphics/Paint$Style;
+HSPLandroid/graphics/Paint;->getTextAlign()Landroid/graphics/Paint$Align;
+HSPLandroid/graphics/Paint;->getTextBounds(Ljava/lang/CharSequence;IILandroid/graphics/Rect;)V
+HSPLandroid/graphics/Paint;->getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V
+HSPLandroid/graphics/Paint;->getTextBounds([CIILandroid/graphics/Rect;)V
HSPLandroid/graphics/Paint;->getTextLocale()Ljava/util/Locale;
HSPLandroid/graphics/Paint;->getTextLocales()Landroid/os/LocaleList;
HSPLandroid/graphics/Paint;->getTextRunAdvances([CIIIIZ[FI)F
+HPLandroid/graphics/Paint;->getTextRunCursor(Ljava/lang/CharSequence;IIZII)I
+HPLandroid/graphics/Paint;->getTextRunCursor(Ljava/lang/String;IIZII)I
+HSPLandroid/graphics/Paint;->getTextScaleX()F
HSPLandroid/graphics/Paint;->getTextSize()F
+HSPLandroid/graphics/Paint;->getTextSkewX()F
HSPLandroid/graphics/Paint;->getTypeface()Landroid/graphics/Typeface;
+HSPLandroid/graphics/Paint;->getUnderlinePosition()F
+HSPLandroid/graphics/Paint;->getWordSpacing()F
+HSPLandroid/graphics/Paint;->getXfermode()Landroid/graphics/Xfermode;
+HSPLandroid/graphics/Paint;->hasGlyph(Ljava/lang/String;)Z
+PLandroid/graphics/Paint;->isAntiAlias()Z
+PLandroid/graphics/Paint;->isDither()Z
+HSPLandroid/graphics/Paint;->isElegantTextHeight()Z
+PLandroid/graphics/Paint;->isFilterBitmap()Z
+HSPLandroid/graphics/Paint;->measureText(Ljava/lang/CharSequence;II)F
HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;)F
HSPLandroid/graphics/Paint;->measureText(Ljava/lang/String;II)F
+HSPLandroid/graphics/Paint;->measureText([CII)F
+HPLandroid/graphics/Paint;->reset()V
HSPLandroid/graphics/Paint;->set(Landroid/graphics/Paint;)V
+HPLandroid/graphics/Paint;->setARGB(IIII)V
HSPLandroid/graphics/Paint;->setAlpha(I)V
HSPLandroid/graphics/Paint;->setAntiAlias(Z)V
HSPLandroid/graphics/Paint;->setBlendMode(Landroid/graphics/BlendMode;)V
@@ -3453,105 +9995,352 @@ HSPLandroid/graphics/Paint;->setColor(I)V
HSPLandroid/graphics/Paint;->setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter;
HSPLandroid/graphics/Paint;->setCompatibilityScaling(F)V
HSPLandroid/graphics/Paint;->setDither(Z)V
+HPLandroid/graphics/Paint;->setElegantTextHeight(Z)V
HSPLandroid/graphics/Paint;->setEndHyphenEdit(I)V
HSPLandroid/graphics/Paint;->setFakeBoldText(Z)V
HSPLandroid/graphics/Paint;->setFilterBitmap(Z)V
HSPLandroid/graphics/Paint;->setFlags(I)V
+HSPLandroid/graphics/Paint;->setLetterSpacing(F)V
+HSPLandroid/graphics/Paint;->setMaskFilter(Landroid/graphics/MaskFilter;)Landroid/graphics/MaskFilter;
+HSPLandroid/graphics/Paint;->setPathEffect(Landroid/graphics/PathEffect;)Landroid/graphics/PathEffect;
HSPLandroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
+HSPLandroid/graphics/Paint;->setShadowLayer(FFFI)V
+HSPLandroid/graphics/Paint;->setShadowLayer(FFFJ)V
HSPLandroid/graphics/Paint;->setStartHyphenEdit(I)V
HSPLandroid/graphics/Paint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V
+HSPLandroid/graphics/Paint;->setStrokeJoin(Landroid/graphics/Paint$Join;)V
HSPLandroid/graphics/Paint;->setStrokeWidth(F)V
HSPLandroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V
+HPLandroid/graphics/Paint;->setSubpixelText(Z)V
HSPLandroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V
HSPLandroid/graphics/Paint;->setTextLocales(Landroid/os/LocaleList;)V
HSPLandroid/graphics/Paint;->setTextScaleX(F)V
HSPLandroid/graphics/Paint;->setTextSize(F)V
HSPLandroid/graphics/Paint;->setTextSkewX(F)V
HSPLandroid/graphics/Paint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;
+HSPLandroid/graphics/Paint;->setUnderlineText(Z)V
HSPLandroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;
HSPLandroid/graphics/Paint;->syncTextLocalesWithMinikin()V
+HSPLandroid/graphics/PaintFlagsDrawFilter;-><init>(II)V
+HSPLandroid/graphics/Path$Op;-><clinit>()V
+HSPLandroid/graphics/Path$Op;-><init>(Ljava/lang/String;I)V
HSPLandroid/graphics/Path;-><init>()V
HSPLandroid/graphics/Path;-><init>(Landroid/graphics/Path;)V
+HSPLandroid/graphics/Path;->addCircle(FFFLandroid/graphics/Path$Direction;)V
+HSPLandroid/graphics/Path;->addOval(FFFFLandroid/graphics/Path$Direction;)V
+HSPLandroid/graphics/Path;->addOval(Landroid/graphics/RectF;Landroid/graphics/Path$Direction;)V
+HPLandroid/graphics/Path;->addPath(Landroid/graphics/Path;)V
+HPLandroid/graphics/Path;->addRect(FFFFLandroid/graphics/Path$Direction;)V
+HPLandroid/graphics/Path;->addRect(Landroid/graphics/RectF;Landroid/graphics/Path$Direction;)V
+HSPLandroid/graphics/Path;->addRoundRect(FFFFFFLandroid/graphics/Path$Direction;)V
HSPLandroid/graphics/Path;->addRoundRect(FFFF[FLandroid/graphics/Path$Direction;)V
+HSPLandroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;[FLandroid/graphics/Path$Direction;)V
HSPLandroid/graphics/Path;->approximate(F)[F
+HPLandroid/graphics/Path;->arcTo(FFFFFFZ)V
+HPLandroid/graphics/Path;->arcTo(Landroid/graphics/RectF;FFZ)V
+HSPLandroid/graphics/Path;->close()V
+HPLandroid/graphics/Path;->computeBounds(Landroid/graphics/RectF;Z)V
HSPLandroid/graphics/Path;->cubicTo(FFFFFF)V
+HPLandroid/graphics/Path;->detectSimplePath(FFFFLandroid/graphics/Path$Direction;)V
HSPLandroid/graphics/Path;->getFillType()Landroid/graphics/Path$FillType;
+HSPLandroid/graphics/Path;->isConvex()Z
HSPLandroid/graphics/Path;->isEmpty()Z
+HSPLandroid/graphics/Path;->lineTo(FF)V
HSPLandroid/graphics/Path;->moveTo(FF)V
+HPLandroid/graphics/Path;->mutateNI()J
+HPLandroid/graphics/Path;->offset(FF)V
+HSPLandroid/graphics/Path;->op(Landroid/graphics/Path;Landroid/graphics/Path$Op;)Z
+HSPLandroid/graphics/Path;->op(Landroid/graphics/Path;Landroid/graphics/Path;Landroid/graphics/Path$Op;)Z
+HPLandroid/graphics/Path;->quadTo(FFFF)V
+HSPLandroid/graphics/Path;->rLineTo(FF)V
HSPLandroid/graphics/Path;->reset()V
-HSPLandroid/graphics/Path;->set(Landroid/graphics/Path;)V
+HSPLandroid/graphics/Path;->rewind()V
+HPLandroid/graphics/Path;->set(Landroid/graphics/Path;)V
HSPLandroid/graphics/Path;->setFillType(Landroid/graphics/Path$FillType;)V
+HSPLandroid/graphics/Path;->transform(Landroid/graphics/Matrix;)V
+HSPLandroid/graphics/Path;->transform(Landroid/graphics/Matrix;Landroid/graphics/Path;)V
+HSPLandroid/graphics/PathMeasure;-><init>()V
+HSPLandroid/graphics/PathMeasure;-><init>(Landroid/graphics/Path;Z)V
+HSPLandroid/graphics/PathMeasure;->finalize()V
+HSPLandroid/graphics/PathMeasure;->getLength()F
+HSPLandroid/graphics/PathMeasure;->getPosTan(F[F[F)Z
+HPLandroid/graphics/PathMeasure;->getSegment(FFLandroid/graphics/Path;Z)Z
+HSPLandroid/graphics/PathMeasure;->setPath(Landroid/graphics/Path;Z)V
+HPLandroid/graphics/Picture;-><init>()V
+HPLandroid/graphics/Picture;-><init>(J)V
+HPLandroid/graphics/Picture;->beginRecording(II)Landroid/graphics/Canvas;
+HPLandroid/graphics/Picture;->close()V
+HPLandroid/graphics/Picture;->draw(Landroid/graphics/Canvas;)V
+HPLandroid/graphics/Picture;->endRecording()V
+HPLandroid/graphics/Picture;->finalize()V
+HPLandroid/graphics/Picture;->getHeight()I
+HPLandroid/graphics/Picture;->getWidth()I
+HPLandroid/graphics/Picture;->requiresHardwareAcceleration()Z
+HPLandroid/graphics/Picture;->verifyValid()V
+PLandroid/graphics/PixelFormat;->formatHasAlpha(I)Z
+PLandroid/graphics/PixelFormat;->formatToString(I)Ljava/lang/String;
HSPLandroid/graphics/Point$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Point;
HSPLandroid/graphics/Point$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/graphics/Point;-><init>()V
HSPLandroid/graphics/Point;-><init>(II)V
+HSPLandroid/graphics/Point;-><init>(Landroid/graphics/Point;)V
+PLandroid/graphics/Point;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+PLandroid/graphics/Point;->equals(II)Z
HSPLandroid/graphics/Point;->equals(Ljava/lang/Object;)Z
+HSPLandroid/graphics/Point;->offset(II)V
+HSPLandroid/graphics/Point;->set(II)V
+HPLandroid/graphics/Point;->toString()Ljava/lang/String;
+PLandroid/graphics/Point;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/graphics/PointF;-><init>()V
+HSPLandroid/graphics/PointF;-><init>(FF)V
+HSPLandroid/graphics/PointF;->length(FF)F
+HPLandroid/graphics/PointF;->set(FF)V
+HPLandroid/graphics/PointF;->set(Landroid/graphics/PointF;)V
HSPLandroid/graphics/PorterDuffColorFilter;-><init>(ILandroid/graphics/PorterDuff$Mode;)V
HSPLandroid/graphics/PorterDuffColorFilter;->createNativeInstance()J
+HSPLandroid/graphics/PorterDuffColorFilter;->equals(Ljava/lang/Object;)Z
HSPLandroid/graphics/PorterDuffColorFilter;->getColor()I
+HSPLandroid/graphics/PorterDuffColorFilter;->getMode()Landroid/graphics/PorterDuff$Mode;
HSPLandroid/graphics/PorterDuffXfermode;-><init>(Landroid/graphics/PorterDuff$Mode;)V
+PLandroid/graphics/RadialGradient;-><init>(FFF[I[FLandroid/graphics/Shader$TileMode;)V
+PLandroid/graphics/RadialGradient;-><init>(FFF[J[FLandroid/graphics/Shader$TileMode;Landroid/graphics/ColorSpace;)V
+PLandroid/graphics/RadialGradient;->createNativeInstance(J)J
+PLandroid/graphics/RecordingCanvas;-><init>(Landroid/graphics/RenderNode;II)V
HSPLandroid/graphics/RecordingCanvas;->disableZ()V
+HPLandroid/graphics/RecordingCanvas;->drawCircle(Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;)V
HSPLandroid/graphics/RecordingCanvas;->drawRenderNode(Landroid/graphics/RenderNode;)V
+HPLandroid/graphics/RecordingCanvas;->drawRoundRect(Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;)V
+HPLandroid/graphics/RecordingCanvas;->drawTextureLayer(Landroid/view/TextureLayer;)V
+HPLandroid/graphics/RecordingCanvas;->drawWebViewFunctor(I)V
HSPLandroid/graphics/RecordingCanvas;->enableZ()V
+HSPLandroid/graphics/RecordingCanvas;->finishRecording()J
+HSPLandroid/graphics/RecordingCanvas;->getHeight()I
+HSPLandroid/graphics/RecordingCanvas;->getWidth()I
HSPLandroid/graphics/RecordingCanvas;->isHardwareAccelerated()Z
HSPLandroid/graphics/RecordingCanvas;->isRecordingFor(Ljava/lang/Object;)Z
HSPLandroid/graphics/RecordingCanvas;->obtain(Landroid/graphics/RenderNode;II)Landroid/graphics/RecordingCanvas;
+HSPLandroid/graphics/RecordingCanvas;->recycle()V
HSPLandroid/graphics/RecordingCanvas;->throwIfCannotDraw(Landroid/graphics/Bitmap;)V
HSPLandroid/graphics/Rect$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Rect;
HSPLandroid/graphics/Rect$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/graphics/Rect$UnflattenHelper;-><clinit>()V
HSPLandroid/graphics/Rect;-><init>()V
HSPLandroid/graphics/Rect;-><init>(IIII)V
HSPLandroid/graphics/Rect;-><init>(Landroid/graphics/Rect;)V
HSPLandroid/graphics/Rect;->centerX()I
HSPLandroid/graphics/Rect;->centerY()I
+HSPLandroid/graphics/Rect;->contains(II)Z
+HSPLandroid/graphics/Rect;->contains(Landroid/graphics/Rect;)Z
+HPLandroid/graphics/Rect;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HSPLandroid/graphics/Rect;->equals(Ljava/lang/Object;)Z
HSPLandroid/graphics/Rect;->exactCenterX()F
HSPLandroid/graphics/Rect;->exactCenterY()F
+HPLandroid/graphics/Rect;->flattenToString()Ljava/lang/String;
HSPLandroid/graphics/Rect;->height()I
+HSPLandroid/graphics/Rect;->inset(II)V
+PLandroid/graphics/Rect;->inset(IIII)V
+HSPLandroid/graphics/Rect;->inset(Landroid/graphics/Insets;)V
+PLandroid/graphics/Rect;->inset(Landroid/graphics/Rect;)V
HSPLandroid/graphics/Rect;->intersect(IIII)Z
+PLandroid/graphics/Rect;->intersect(Landroid/graphics/Rect;)Z
+HPLandroid/graphics/Rect;->intersectUnchecked(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/Rect;->intersects(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
HSPLandroid/graphics/Rect;->isEmpty()Z
HSPLandroid/graphics/Rect;->offset(II)V
HSPLandroid/graphics/Rect;->offsetTo(II)V
+HSPLandroid/graphics/Rect;->printShortString(Ljava/io/PrintWriter;)V
HSPLandroid/graphics/Rect;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/graphics/Rect;->readFromProto(Landroid/util/proto/ProtoInputStream;J)V
HSPLandroid/graphics/Rect;->scale(F)V
HSPLandroid/graphics/Rect;->set(IIII)V
HSPLandroid/graphics/Rect;->set(Landroid/graphics/Rect;)V
HSPLandroid/graphics/Rect;->setEmpty()V
HSPLandroid/graphics/Rect;->setIntersect(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
+HSPLandroid/graphics/Rect;->toShortString()Ljava/lang/String;
+HSPLandroid/graphics/Rect;->toShortString(Ljava/lang/StringBuilder;)Ljava/lang/String;
+HSPLandroid/graphics/Rect;->toString()Ljava/lang/String;
+HSPLandroid/graphics/Rect;->unflattenFromString(Ljava/lang/String;)Landroid/graphics/Rect;
HSPLandroid/graphics/Rect;->union(IIII)V
+HPLandroid/graphics/Rect;->union(Landroid/graphics/Rect;)V
HSPLandroid/graphics/Rect;->width()I
HSPLandroid/graphics/Rect;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/graphics/RectF;-><init>()V
HSPLandroid/graphics/RectF;-><init>(FFFF)V
-HSPLandroid/graphics/RectF;-><init>(Landroid/graphics/Rect;)V
+PLandroid/graphics/RectF;-><init>(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/RectF;-><init>(Landroid/graphics/RectF;)V
+HSPLandroid/graphics/RectF;->centerX()F
+HSPLandroid/graphics/RectF;->centerY()F
+HPLandroid/graphics/RectF;->contains(FF)Z
+HSPLandroid/graphics/RectF;->equals(Ljava/lang/Object;)Z
+HSPLandroid/graphics/RectF;->height()F
+HSPLandroid/graphics/RectF;->inset(FF)V
+HSPLandroid/graphics/RectF;->intersect(FFFF)Z
+PLandroid/graphics/RectF;->isEmpty()Z
+HSPLandroid/graphics/RectF;->offset(FF)V
+HSPLandroid/graphics/RectF;->offsetTo(FF)V
+HPLandroid/graphics/RectF;->roundOut(Landroid/graphics/Rect;)V
HSPLandroid/graphics/RectF;->set(FFFF)V
HSPLandroid/graphics/RectF;->set(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/RectF;->set(Landroid/graphics/RectF;)V
HSPLandroid/graphics/RectF;->setEmpty()V
+HSPLandroid/graphics/RectF;->union(FFFF)V
+HSPLandroid/graphics/RectF;->union(Landroid/graphics/RectF;)V
HSPLandroid/graphics/RectF;->width()F
+HSPLandroid/graphics/Region$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/Region;
+HSPLandroid/graphics/Region$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/graphics/Region;-><init>()V
+HSPLandroid/graphics/Region;-><init>(IIII)V
HSPLandroid/graphics/Region;-><init>(J)V
+HPLandroid/graphics/Region;-><init>(Landroid/graphics/Rect;)V
+PLandroid/graphics/Region;->access$000(Landroid/os/Parcel;)J
+HPLandroid/graphics/Region;->equals(Ljava/lang/Object;)Z
HSPLandroid/graphics/Region;->finalize()V
+HSPLandroid/graphics/Region;->getBounds()Landroid/graphics/Rect;
+PLandroid/graphics/Region;->ni()J
+PLandroid/graphics/Region;->obtain()Landroid/graphics/Region;
+HPLandroid/graphics/Region;->obtain(Landroid/graphics/Region;)Landroid/graphics/Region;
+HPLandroid/graphics/Region;->op(IIIILandroid/graphics/Region$Op;)Z
+HPLandroid/graphics/Region;->op(Landroid/graphics/Rect;Landroid/graphics/Region$Op;)Z
+HSPLandroid/graphics/Region;->op(Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z
+HSPLandroid/graphics/Region;->op(Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z
+HPLandroid/graphics/Region;->recycle()V
+HPLandroid/graphics/Region;->scale(F)V
+HPLandroid/graphics/Region;->set(IIII)Z
+HPLandroid/graphics/Region;->set(Landroid/graphics/Rect;)Z
HSPLandroid/graphics/Region;->set(Landroid/graphics/Region;)Z
HSPLandroid/graphics/Region;->setEmpty()V
+HSPLandroid/graphics/Region;->setPath(Landroid/graphics/Path;Landroid/graphics/Region;)Z
+HSPLandroid/graphics/Region;->toString()Ljava/lang/String;
+HPLandroid/graphics/Region;->translate(II)V
+PLandroid/graphics/Region;->union(Landroid/graphics/Rect;)Z
+HPLandroid/graphics/Region;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/graphics/RegionIterator;-><init>(Landroid/graphics/Region;)V
+HSPLandroid/graphics/RegionIterator;->finalize()V
+HSPLandroid/graphics/RegionIterator;->next(Landroid/graphics/Rect;)Z
+HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;->positionChanged(JIIII)V
+HSPLandroid/graphics/RenderNode$CompositePositionUpdateListener;->positionLost(J)V
+PLandroid/graphics/RenderNode;-><init>(J)V
+HPLandroid/graphics/RenderNode;-><init>(Ljava/lang/String;Landroid/graphics/RenderNode$AnimationHost;)V
+HSPLandroid/graphics/RenderNode;->addAnimator(Landroid/view/RenderNodeAnimator;)V
+PLandroid/graphics/RenderNode;->adopt(J)Landroid/graphics/RenderNode;
+PLandroid/graphics/RenderNode;->beginRecording(II)Landroid/graphics/RecordingCanvas;
HSPLandroid/graphics/RenderNode;->create(Ljava/lang/String;Landroid/graphics/RenderNode$AnimationHost;)Landroid/graphics/RenderNode;
+PLandroid/graphics/RenderNode;->discardDisplayList()V
+PLandroid/graphics/RenderNode;->endRecording()V
+PLandroid/graphics/RenderNode;->getClipToOutline()Z
+PLandroid/graphics/RenderNode;->getElevation()F
+PLandroid/graphics/RenderNode;->getMatrix(Landroid/graphics/Matrix;)V
+PLandroid/graphics/RenderNode;->getRotationX()F
+PLandroid/graphics/RenderNode;->getRotationY()F
+PLandroid/graphics/RenderNode;->getRotationZ()F
+PLandroid/graphics/RenderNode;->getScaleX()F
+PLandroid/graphics/RenderNode;->getScaleY()F
+PLandroid/graphics/RenderNode;->getTranslationX()F
+PLandroid/graphics/RenderNode;->getTranslationY()F
+PLandroid/graphics/RenderNode;->getTranslationZ()F
HSPLandroid/graphics/RenderNode;->hasDisplayList()Z
+PLandroid/graphics/RenderNode;->hasIdentityMatrix()Z
+HSPLandroid/graphics/RenderNode;->setAlpha(F)Z
+HSPLandroid/graphics/RenderNode;->setAnimationMatrix(Landroid/graphics/Matrix;)Z
+PLandroid/graphics/RenderNode;->setClipToBounds(Z)Z
+PLandroid/graphics/RenderNode;->setClipToOutline(Z)Z
+PLandroid/graphics/RenderNode;->setElevation(F)Z
+HSPLandroid/graphics/RenderNode;->setForceDarkAllowed(Z)Z
+PLandroid/graphics/RenderNode;->setHasOverlappingRendering(Z)Z
+PLandroid/graphics/RenderNode;->setLeftTopRightBottom(IIII)Z
HSPLandroid/graphics/RenderNode;->setOutline(Landroid/graphics/Outline;)Z
+PLandroid/graphics/RenderNode;->setProjectBackwards(Z)Z
+PLandroid/graphics/RenderNode;->setProjectionReceiver(Z)Z
+PLandroid/graphics/RenderNode;->setTranslationX(F)Z
+PLandroid/graphics/RenderNode;->setTranslationY(F)Z
+PLandroid/graphics/RenderNode;->setUsageHint(I)V
+HSPLandroid/graphics/Shader;-><init>(Landroid/graphics/ColorSpace;)V
HSPLandroid/graphics/Shader;->colorSpace()Landroid/graphics/ColorSpace;
HSPLandroid/graphics/Shader;->convertColors([I)[J
+HSPLandroid/graphics/Shader;->detectColorSpace([J)Landroid/graphics/ColorSpace;
HSPLandroid/graphics/Shader;->getNativeInstance()J
+HSPLandroid/graphics/Shader;->setLocalMatrix(Landroid/graphics/Matrix;)V
HSPLandroid/graphics/Shader;->verifyNativeInstance()V
+HPLandroid/graphics/SurfaceTexture$1;-><init>(Landroid/graphics/SurfaceTexture;Landroid/os/Looper;Landroid/os/Handler$Callback;ZLandroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V
+HPLandroid/graphics/SurfaceTexture$1;->handleMessage(Landroid/os/Message;)V
+PLandroid/graphics/SurfaceTexture;-><init>(I)V
+PLandroid/graphics/SurfaceTexture;-><init>(IZ)V
+HPLandroid/graphics/SurfaceTexture;-><init>(Z)V
+PLandroid/graphics/SurfaceTexture;->finalize()V
+PLandroid/graphics/SurfaceTexture;->getTransformMatrix([F)V
+PLandroid/graphics/SurfaceTexture;->isSingleBuffered()Z
+HPLandroid/graphics/SurfaceTexture;->postEventFromNative(Ljava/lang/ref/WeakReference;)V
+PLandroid/graphics/SurfaceTexture;->release()V
+HPLandroid/graphics/SurfaceTexture;->setDefaultBufferSize(II)V
+HPLandroid/graphics/SurfaceTexture;->setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V
+HPLandroid/graphics/SurfaceTexture;->setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;Landroid/os/Handler;)V
+PLandroid/graphics/SurfaceTexture;->updateTexImage()V
+HSPLandroid/graphics/SweepGradient;-><init>(FF[J[FLandroid/graphics/ColorSpace;)V
+HSPLandroid/graphics/SweepGradient;->createNativeInstance(J)J
HSPLandroid/graphics/TemporaryBuffer;->obtain(I)[C
HSPLandroid/graphics/TemporaryBuffer;->recycle([C)V
+HSPLandroid/graphics/Typeface$Builder;-><init>(Landroid/content/res/AssetManager;Ljava/lang/String;)V
+HSPLandroid/graphics/Typeface$Builder;-><init>(Landroid/content/res/AssetManager;Ljava/lang/String;ZI)V
+HSPLandroid/graphics/Typeface$Builder;->build()Landroid/graphics/Typeface;
HSPLandroid/graphics/Typeface$Builder;->createAssetUid(Landroid/content/res/AssetManager;Ljava/lang/String;I[Landroid/graphics/fonts/FontVariationAxis;IILjava/lang/String;)Ljava/lang/String;
HSPLandroid/graphics/Typeface$CustomFallbackBuilder;-><init>(Landroid/graphics/fonts/FontFamily;)V
HSPLandroid/graphics/Typeface$CustomFallbackBuilder;->build()Landroid/graphics/Typeface;
+HSPLandroid/graphics/Typeface$CustomFallbackBuilder;->setStyle(Landroid/graphics/fonts/FontStyle;)Landroid/graphics/Typeface$CustomFallbackBuilder;
HSPLandroid/graphics/Typeface;-><init>(J)V
HSPLandroid/graphics/Typeface;->create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;
HSPLandroid/graphics/Typeface;->create(Ljava/lang/String;I)Landroid/graphics/Typeface;
+HSPLandroid/graphics/Typeface;->createFromAsset(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;
+HSPLandroid/graphics/Typeface;->createFromFamiliesWithDefault([Landroid/graphics/FontFamily;Ljava/lang/String;II)Landroid/graphics/Typeface;
HSPLandroid/graphics/Typeface;->createFromResources(Landroid/content/res/FontResourcesParser$FamilyResourceEntry;Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;
+HSPLandroid/graphics/Typeface;->createWeightStyle(Landroid/graphics/Typeface;IZ)Landroid/graphics/Typeface;
+HSPLandroid/graphics/Typeface;->equals(Ljava/lang/Object;)Z
HSPLandroid/graphics/Typeface;->findFromCache(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;
+HSPLandroid/graphics/Typeface;->getStyle()I
HSPLandroid/graphics/Typeface;->getSystemDefaultTypeface(Ljava/lang/String;)Landroid/graphics/Typeface;
+HSPLandroid/graphics/drawable/-$$Lambda$AnimatedVectorDrawable$VectorDrawableAnimatorRT$PzjgSeyQweoFjbEZJP80UteZqm8;->run()V
+HSPLandroid/graphics/drawable/-$$Lambda$BitmapDrawable$LMqt8JvxZ4giSOIRAtlCKDg39Jw;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
+PLandroid/graphics/drawable/-$$Lambda$NinePatchDrawable$yQvfm7FAkslD5wdGFysjgwt8cLE;-><init>(Landroid/graphics/Rect;)V
+PLandroid/graphics/drawable/-$$Lambda$NinePatchDrawable$yQvfm7FAkslD5wdGFysjgwt8cLE;->onHeaderDecoded(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
+PLandroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;-><init>(I)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;-><init>(Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;Landroid/graphics/drawable/AdaptiveIconDrawable;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;->canApplyTheme()Z
+PLandroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;->setDensity(I)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;-><init>(Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;Landroid/graphics/drawable/AdaptiveIconDrawable;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->canApplyTheme()Z
+PLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->canConstantState()Z
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->invalidateCache()V
+HPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->isStateful()Z
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->newDrawable()Landroid/graphics/drawable/Drawable;
+PLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
+PLandroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->setDensity(I)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;-><init>(Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;-><init>(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
+PLandroid/graphics/drawable/AdaptiveIconDrawable;->addLayer(ILandroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->canApplyTheme()Z
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->createConstantState(Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getBackground()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getExtraInsetFraction()F
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getForeground()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getIconMask()Landroid/graphics/Path;
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getIntrinsicHeight()I
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->getIntrinsicWidth()I
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->inflateLayers(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->invalidateSelf()V
+HPLandroid/graphics/drawable/AdaptiveIconDrawable;->isStateful()Z
+HPLandroid/graphics/drawable/AdaptiveIconDrawable;->jumpToCurrentState()V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->mutate()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HPLandroid/graphics/drawable/AdaptiveIconDrawable;->onStateChange([I)Z
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->updateLayerBounds(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->updateLayerFromTypedArray(Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/AdaptiveIconDrawable;->updateMaskBoundsInternal(Landroid/graphics/Rect;)V
HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;-><init>(Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;Landroid/graphics/drawable/AnimatedStateListDrawable;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->addStateSet([ILandroid/graphics/drawable/Drawable;I)I
HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->addTransition(IILandroid/graphics/drawable/Drawable;Z)I
@@ -3559,67 +10348,204 @@ HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;-
HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->generateTransitionKey(II)J
HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->getKeyframeIdAt(I)I
HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->indexOfKeyframe([I)I
+HPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->indexOfTransition(II)I
+HPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->isTransitionReversed(II)Z
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->mutate()V
HSPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
+HPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->transitionHasReversibleFlag(II)Z
+HPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;-><init>(Landroid/graphics/drawable/AnimationDrawable;ZZ)V
+HPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;->start()V
+HPLandroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;->stop()V
+HPLandroid/graphics/drawable/AnimatedStateListDrawable$Transition;-><init>()V
+HPLandroid/graphics/drawable/AnimatedStateListDrawable$Transition;-><init>(Landroid/graphics/drawable/AnimatedStateListDrawable$1;)V
HSPLandroid/graphics/drawable/AnimatedStateListDrawable;-><init>()V
HSPLandroid/graphics/drawable/AnimatedStateListDrawable;-><init>(Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/AnimatedStateListDrawable;-><init>(Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;Landroid/content/res/Resources;Landroid/graphics/drawable/AnimatedStateListDrawable$1;)V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->clearMutated()V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->cloneConstantState()Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->init()V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->isStateful()Z
HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->jumpToCurrentState()V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->mutate()Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->onStateChange([I)Z
HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->parseItem(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)I
HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->parseTransition(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)I
HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->selectTransition(I)Z
HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
+HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->setVisible(ZZ)Z
HSPLandroid/graphics/drawable/AnimatedStateListDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable$1;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable;)V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable$1;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$2;->onAnimationEnd(Landroid/animation/Animator;)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$2;->onAnimationStart(Landroid/animation/Animator;)V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;-><init>(IFLjava/lang/String;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/animation/Animator;
HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;Landroid/graphics/drawable/Drawable$Callback;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->addPendingAnimator(IFLjava/lang/String;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->addTargetAnimator(Ljava/lang/String;Landroid/animation/Animator;)V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->canApplyTheme()Z
HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->inflatePendingAnimators(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->newDrawable()Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->prepareLocalAnimator(I)Landroid/animation/Animator;
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->prepareLocalAnimators(Landroid/animation/AnimatorSet;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->callOnFinished(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;I)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createNativeChildAnimator(JJLandroid/animation/ObjectAnimator;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimator(Landroid/animation/ObjectAnimator;J)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForFullPath(Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VFullPath;J)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForGroup([Landroid/animation/PropertyValuesHolder;Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VGroup;J)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->createRTAnimatorForRootGroup([Landroid/animation/PropertyValuesHolder;Landroid/animation/ObjectAnimator;Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;J)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->end()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->getAnimatorNativePtr()J
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->handlePendingAction(I)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->init(Landroid/animation/AnimatorSet;)V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->isInfinite()Z
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->isRunning()Z
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->isStarted()Z
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->onDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->parseAnimatorSet(Landroid/animation/AnimatorSet;J)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->pause()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->recordLastSeenTarget(Landroid/graphics/RecordingCanvas;)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->reset()V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->setListener(Landroid/animation/Animator$AnimatorListener;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->start()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->startAnimation()V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->transferPendingActions(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->init(Landroid/animation/AnimatorSet;)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->invalidateOwningView()V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->isInfinite()Z
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->onDraw(Landroid/graphics/Canvas;)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->setListener(Landroid/animation/Animator$AnimatorListener;)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->start()V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable;-><init>()V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;Landroid/content/res/Resources;Landroid/graphics/drawable/AnimatedVectorDrawable$1;)V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$400()Z
+HPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$700(Landroid/graphics/drawable/AnimatedVectorDrawable;)Ljava/util/ArrayList;
HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->access$800()J
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->canApplyTheme()Z
+HPLandroid/graphics/drawable/AnimatedVectorDrawable;->clearAnimationCallbacks()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->clearMutated()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->containsSameValueType(Landroid/animation/PropertyValuesHolder;Landroid/util/Property;)Z
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->draw(Landroid/graphics/Canvas;)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable;->fallbackOntoUI()V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable;->forceAnimationOnUI()V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getChangingConfigurations()I
HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getIntrinsicHeight()I
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getIntrinsicWidth()I
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->getOpacity()I
HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->isRunning()Z
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->isStateful()Z
HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->mutate()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable;->onStateChange([I)Z
+HPLandroid/graphics/drawable/AnimatedVectorDrawable;->registerAnimationCallback(Landroid/graphics/drawable/Animatable2$AnimationCallback;)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable;->removeAnimatorSetListener()V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable;->reset()V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
+HPLandroid/graphics/drawable/AnimatedVectorDrawable;->setHotspot(FF)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->setVisible(ZZ)Z
HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->shouldIgnoreInvalidAnimation()Z
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->start()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->stop()V
+HSPLandroid/graphics/drawable/AnimatedVectorDrawable;->updateAnimatorProperty(Landroid/animation/Animator;Ljava/lang/String;Landroid/graphics/drawable/VectorDrawable;Z)V
+HPLandroid/graphics/drawable/AnimationDrawable$AnimationState;-><init>(Landroid/graphics/drawable/AnimationDrawable$AnimationState;Landroid/graphics/drawable/AnimationDrawable;Landroid/content/res/Resources;)V
+HPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->access$002(Landroid/graphics/drawable/AnimationDrawable$AnimationState;Z)Z
+HPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->addFrame(Landroid/graphics/drawable/Drawable;I)V
+HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->growArray(II)V
+HSPLandroid/graphics/drawable/AnimationDrawable$AnimationState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
+HPLandroid/graphics/drawable/AnimationDrawable;-><init>()V
+HPLandroid/graphics/drawable/AnimationDrawable;-><init>(Landroid/graphics/drawable/AnimationDrawable$AnimationState;Landroid/content/res/Resources;)V
+HPLandroid/graphics/drawable/AnimationDrawable;->addFrame(Landroid/graphics/drawable/Drawable;I)V
+HPLandroid/graphics/drawable/AnimationDrawable;->clearMutated()V
+HSPLandroid/graphics/drawable/AnimationDrawable;->cloneConstantState()Landroid/graphics/drawable/AnimationDrawable$AnimationState;
+HSPLandroid/graphics/drawable/AnimationDrawable;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
+HPLandroid/graphics/drawable/AnimationDrawable;->getDuration(I)I
+HPLandroid/graphics/drawable/AnimationDrawable;->getNumberOfFrames()I
+HSPLandroid/graphics/drawable/AnimationDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/AnimationDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HPLandroid/graphics/drawable/AnimationDrawable;->isRunning()Z
+HSPLandroid/graphics/drawable/AnimationDrawable;->mutate()Landroid/graphics/drawable/Drawable;
+HPLandroid/graphics/drawable/AnimationDrawable;->nextFrame(Z)V
+HPLandroid/graphics/drawable/AnimationDrawable;->run()V
+HSPLandroid/graphics/drawable/AnimationDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
+HSPLandroid/graphics/drawable/AnimationDrawable;->setFrame(IZZ)V
+HPLandroid/graphics/drawable/AnimationDrawable;->setOneShot(Z)V
+HSPLandroid/graphics/drawable/AnimationDrawable;->setVisible(ZZ)Z
+HPLandroid/graphics/drawable/AnimationDrawable;->start()V
+HPLandroid/graphics/drawable/AnimationDrawable;->stop()V
+HSPLandroid/graphics/drawable/AnimationDrawable;->unscheduleSelf(Ljava/lang/Runnable;)V
HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;-><init>(Landroid/graphics/Bitmap;)V
HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;-><init>(Landroid/graphics/drawable/BitmapDrawable$BitmapState;)V
HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;->canApplyTheme()Z
HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;->newDrawable()Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/BitmapDrawable$BitmapState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/BitmapDrawable;-><init>()V
HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V
+HPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/Bitmap;)V
+HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/drawable/BitmapDrawable$BitmapState;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/drawable/BitmapDrawable$BitmapState;Landroid/content/res/Resources;Landroid/graphics/drawable/BitmapDrawable$1;)V
+PLandroid/graphics/drawable/BitmapDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/BitmapDrawable;->canApplyTheme()Z
+PLandroid/graphics/drawable/BitmapDrawable;->clearMutated()V
HSPLandroid/graphics/drawable/BitmapDrawable;->computeBitmapSize()V
HSPLandroid/graphics/drawable/BitmapDrawable;->draw(Landroid/graphics/Canvas;)V
+HPLandroid/graphics/drawable/BitmapDrawable;->getAlpha()I
+HSPLandroid/graphics/drawable/BitmapDrawable;->getBitmap()Landroid/graphics/Bitmap;
HSPLandroid/graphics/drawable/BitmapDrawable;->getChangingConfigurations()I
-HSPLandroid/graphics/drawable/BitmapDrawable;->getColorFilter()Landroid/graphics/ColorFilter;
+HPLandroid/graphics/drawable/BitmapDrawable;->getColorFilter()Landroid/graphics/ColorFilter;
HSPLandroid/graphics/drawable/BitmapDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
HSPLandroid/graphics/drawable/BitmapDrawable;->getIntrinsicHeight()I
HSPLandroid/graphics/drawable/BitmapDrawable;->getIntrinsicWidth()I
HSPLandroid/graphics/drawable/BitmapDrawable;->getOpacity()I
+HSPLandroid/graphics/drawable/BitmapDrawable;->getOutline(Landroid/graphics/Outline;)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->getPaint()Landroid/graphics/Paint;
+HSPLandroid/graphics/drawable/BitmapDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/BitmapDrawable;->init(Landroid/graphics/drawable/BitmapDrawable$BitmapState;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->isAutoMirrored()Z
HSPLandroid/graphics/drawable/BitmapDrawable;->isStateful()Z
+PLandroid/graphics/drawable/BitmapDrawable;->lambda$updateStateFromTypedArray$2(Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
HSPLandroid/graphics/drawable/BitmapDrawable;->mutate()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/BitmapDrawable;->needMirroring()Z
HSPLandroid/graphics/drawable/BitmapDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->onStateChange([I)Z
+HSPLandroid/graphics/drawable/BitmapDrawable;->setAlpha(I)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->setAutoMirrored(Z)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->setBitmap(Landroid/graphics/Bitmap;)V
HSPLandroid/graphics/drawable/BitmapDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->setDither(Z)V
HSPLandroid/graphics/drawable/BitmapDrawable;->setGravity(I)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->setMipMap(Z)V
HSPLandroid/graphics/drawable/BitmapDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V
HSPLandroid/graphics/drawable/BitmapDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
HSPLandroid/graphics/drawable/BitmapDrawable;->updateDstRectAndInsetsIfDirty()V
HSPLandroid/graphics/drawable/BitmapDrawable;->updateLocalState(Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;I)V
+HSPLandroid/graphics/drawable/BitmapDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/ClipDrawable$ClipState;-><init>(Landroid/graphics/drawable/ClipDrawable$ClipState;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/ClipDrawable$ClipState;->access$002(Landroid/graphics/drawable/ClipDrawable$ClipState;[I)[I
+HSPLandroid/graphics/drawable/ClipDrawable$ClipState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/ClipDrawable;-><init>(Landroid/graphics/drawable/ClipDrawable$ClipState;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/ClipDrawable;-><init>(Landroid/graphics/drawable/ClipDrawable$ClipState;Landroid/content/res/Resources;Landroid/graphics/drawable/ClipDrawable$1;)V
+HSPLandroid/graphics/drawable/ClipDrawable;-><init>(Landroid/graphics/drawable/Drawable;II)V
+HPLandroid/graphics/drawable/ClipDrawable;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/graphics/drawable/ClipDrawable;->getOpacity()I
+HSPLandroid/graphics/drawable/ClipDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HPLandroid/graphics/drawable/ClipDrawable;->onLevelChange(I)Z
+HSPLandroid/graphics/drawable/ClipDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/ClipDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/ColorDrawable$ColorState;-><init>()V
HSPLandroid/graphics/drawable/ColorDrawable$ColorState;-><init>(Landroid/graphics/drawable/ColorDrawable$ColorState;)V
HSPLandroid/graphics/drawable/ColorDrawable$ColorState;->canApplyTheme()Z
@@ -3631,30 +10557,49 @@ HSPLandroid/graphics/drawable/ColorDrawable;-><init>(I)V
HSPLandroid/graphics/drawable/ColorDrawable;-><init>(Landroid/graphics/drawable/ColorDrawable$ColorState;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/ColorDrawable;-><init>(Landroid/graphics/drawable/ColorDrawable$ColorState;Landroid/content/res/Resources;Landroid/graphics/drawable/ColorDrawable$1;)V
HSPLandroid/graphics/drawable/ColorDrawable;->canApplyTheme()Z
+HSPLandroid/graphics/drawable/ColorDrawable;->clearMutated()V
HSPLandroid/graphics/drawable/ColorDrawable;->draw(Landroid/graphics/Canvas;)V
HSPLandroid/graphics/drawable/ColorDrawable;->getAlpha()I
HSPLandroid/graphics/drawable/ColorDrawable;->getChangingConfigurations()I
HSPLandroid/graphics/drawable/ColorDrawable;->getColor()I
+HSPLandroid/graphics/drawable/ColorDrawable;->getColorFilter()Landroid/graphics/ColorFilter;
HSPLandroid/graphics/drawable/ColorDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
HSPLandroid/graphics/drawable/ColorDrawable;->getOpacity()I
HSPLandroid/graphics/drawable/ColorDrawable;->getOutline(Landroid/graphics/Outline;)V
HSPLandroid/graphics/drawable/ColorDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/ColorDrawable;->isStateful()Z
HSPLandroid/graphics/drawable/ColorDrawable;->mutate()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/ColorDrawable;->onStateChange([I)Z
+HSPLandroid/graphics/drawable/ColorDrawable;->setAlpha(I)V
HSPLandroid/graphics/drawable/ColorDrawable;->setColor(I)V
+HSPLandroid/graphics/drawable/ColorDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
+HSPLandroid/graphics/drawable/ColorDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
HSPLandroid/graphics/drawable/ColorDrawable;->updateLocalState(Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/ColorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+HPLandroid/graphics/drawable/ColorStateListDrawable$ColorStateListDrawableState;->getChangingConfigurations()I
+HPLandroid/graphics/drawable/ColorStateListDrawable$ColorStateListDrawableState;->isStateful()Z
+HPLandroid/graphics/drawable/ColorStateListDrawable;->draw(Landroid/graphics/Canvas;)V
+HPLandroid/graphics/drawable/ColorStateListDrawable;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/graphics/drawable/ColorStateListDrawable;->isStateful()Z
+HPLandroid/graphics/drawable/ColorStateListDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HPLandroid/graphics/drawable/ColorStateListDrawable;->onStateChange([I)Z
HSPLandroid/graphics/drawable/Drawable$ConstantState;-><init>()V
HSPLandroid/graphics/drawable/Drawable$ConstantState;->canApplyTheme()Z
HSPLandroid/graphics/drawable/Drawable$ConstantState;->newDrawable(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/Drawable;-><init>()V
+PLandroid/graphics/drawable/Drawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/Drawable;->canApplyTheme()Z
+HPLandroid/graphics/drawable/Drawable;->clearColorFilter()V
+HSPLandroid/graphics/drawable/Drawable;->clearMutated()V
+HSPLandroid/graphics/drawable/Drawable;->copyBounds(Landroid/graphics/Rect;)V
HSPLandroid/graphics/drawable/Drawable;->createFromXmlForDensity(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/Drawable;->createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/Drawable;->createFromXmlInnerForDensity(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/Drawable;->getBounds()Landroid/graphics/Rect;
HSPLandroid/graphics/drawable/Drawable;->getCallback()Landroid/graphics/drawable/Drawable$Callback;
HSPLandroid/graphics/drawable/Drawable;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/Drawable;->getColorFilter()Landroid/graphics/ColorFilter;
+HSPLandroid/graphics/drawable/Drawable;->getCurrent()Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/Drawable;->getDirtyBounds()Landroid/graphics/Rect;
HSPLandroid/graphics/drawable/Drawable;->getIntrinsicHeight()I
HSPLandroid/graphics/drawable/Drawable;->getIntrinsicWidth()I
@@ -3662,8 +10607,10 @@ HSPLandroid/graphics/drawable/Drawable;->getLayoutDirection()I
HSPLandroid/graphics/drawable/Drawable;->getLevel()I
HSPLandroid/graphics/drawable/Drawable;->getMinimumHeight()I
HSPLandroid/graphics/drawable/Drawable;->getMinimumWidth()I
+HSPLandroid/graphics/drawable/Drawable;->getOutline(Landroid/graphics/Outline;)V
HSPLandroid/graphics/drawable/Drawable;->getPadding(Landroid/graphics/Rect;)Z
HSPLandroid/graphics/drawable/Drawable;->getState()[I
+HPLandroid/graphics/drawable/Drawable;->hasFocusStateSpecified()Z
HSPLandroid/graphics/drawable/Drawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/Drawable;->inflateWithAttributes(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/TypedArray;I)V
HSPLandroid/graphics/drawable/Drawable;->invalidateSelf()V
@@ -3674,9 +10621,15 @@ HSPLandroid/graphics/drawable/Drawable;->jumpToCurrentState()V
HSPLandroid/graphics/drawable/Drawable;->mutate()Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/Drawable;->obtainAttributes(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
HSPLandroid/graphics/drawable/Drawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HPLandroid/graphics/drawable/Drawable;->onLayoutDirectionChanged(I)Z
+HSPLandroid/graphics/drawable/Drawable;->onLevelChange(I)Z
+HSPLandroid/graphics/drawable/Drawable;->onStateChange([I)Z
+HSPLandroid/graphics/drawable/Drawable;->parseBlendMode(ILandroid/graphics/BlendMode;)Landroid/graphics/BlendMode;
HSPLandroid/graphics/drawable/Drawable;->resolveDensity(Landroid/content/res/Resources;I)I
+HSPLandroid/graphics/drawable/Drawable;->resolveOpacity(II)I
HSPLandroid/graphics/drawable/Drawable;->scaleFromDensity(FII)F
HSPLandroid/graphics/drawable/Drawable;->scaleFromDensity(IIIZ)I
+HSPLandroid/graphics/drawable/Drawable;->scheduleSelf(Ljava/lang/Runnable;J)V
HSPLandroid/graphics/drawable/Drawable;->setAutoMirrored(Z)V
HSPLandroid/graphics/drawable/Drawable;->setBounds(IIII)V
HSPLandroid/graphics/drawable/Drawable;->setBounds(Landroid/graphics/Rect;)V
@@ -3684,17 +10637,22 @@ HSPLandroid/graphics/drawable/Drawable;->setCallback(Landroid/graphics/drawable/
HSPLandroid/graphics/drawable/Drawable;->setChangingConfigurations(I)V
HSPLandroid/graphics/drawable/Drawable;->setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V
HSPLandroid/graphics/drawable/Drawable;->setDither(Z)V
+HSPLandroid/graphics/drawable/Drawable;->setHotspot(FF)V
HSPLandroid/graphics/drawable/Drawable;->setLayoutDirection(I)Z
HSPLandroid/graphics/drawable/Drawable;->setLevel(I)Z
HSPLandroid/graphics/drawable/Drawable;->setSrcDensityOverride(I)V
HSPLandroid/graphics/drawable/Drawable;->setState([I)Z
HSPLandroid/graphics/drawable/Drawable;->setTint(I)V
+HSPLandroid/graphics/drawable/Drawable;->setTintMode(Landroid/graphics/PorterDuff$Mode;)V
HSPLandroid/graphics/drawable/Drawable;->setVisible(ZZ)Z
+HPLandroid/graphics/drawable/Drawable;->setXfermode(Landroid/graphics/Xfermode;)V
+HPLandroid/graphics/drawable/Drawable;->unscheduleSelf(Ljava/lang/Runnable;)V
HSPLandroid/graphics/drawable/Drawable;->updateBlendModeFilter(Landroid/graphics/BlendModeColorFilter;Landroid/content/res/ColorStateList;Landroid/graphics/BlendMode;)Landroid/graphics/BlendModeColorFilter;
HSPLandroid/graphics/drawable/Drawable;->updateTintFilter(Landroid/graphics/PorterDuffColorFilter;Landroid/content/res/ColorStateList;Landroid/graphics/PorterDuff$Mode;)Landroid/graphics/PorterDuffColorFilter;
HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;-><init>()V
HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;-><init>(Landroid/graphics/drawable/DrawableContainer$1;)V
HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V
HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->unwrap()Landroid/graphics/drawable/Drawable$Callback;
HSPLandroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->wrap(Landroid/graphics/drawable/Drawable$Callback;)Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;-><init>(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;Landroid/graphics/drawable/DrawableContainer;Landroid/content/res/Resources;)V
@@ -3702,37 +10660,64 @@ HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->addChil
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->applyTheme(Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->canApplyTheme()Z
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->canConstantState()Z
+HPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->computeConstantSize()V
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->createAllFutures()V
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getCapacity()I
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getChangingConfigurations()I
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getChild(I)Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getChildCount()I
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getConstantPadding()Landroid/graphics/Rect;
+HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->getOpacity()I
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->invalidateCache()V
+HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->isStateful()Z
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->prepareDrawable(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->setConstantSize(Z)V
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->setEnterFadeDuration(I)V
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->setExitFadeDuration(I)V
+HPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->setLayoutDirection(II)Z
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->setVariablePadding(Z)V
HSPLandroid/graphics/drawable/DrawableContainer$DrawableContainerState;->updateDensity(Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/DrawableContainer;-><init>()V
+HSPLandroid/graphics/drawable/DrawableContainer;->animate(Z)V
+HPLandroid/graphics/drawable/DrawableContainer;->applyTheme(Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/DrawableContainer;->canApplyTheme()Z
+HSPLandroid/graphics/drawable/DrawableContainer;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
+HSPLandroid/graphics/drawable/DrawableContainer;->draw(Landroid/graphics/Canvas;)V
+HPLandroid/graphics/drawable/DrawableContainer;->getAlpha()I
HSPLandroid/graphics/drawable/DrawableContainer;->getChangingConfigurations()I
HSPLandroid/graphics/drawable/DrawableContainer;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
HSPLandroid/graphics/drawable/DrawableContainer;->getCurrent()Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/DrawableContainer;->getCurrentIndex()I
+HSPLandroid/graphics/drawable/DrawableContainer;->getIntrinsicHeight()I
+HSPLandroid/graphics/drawable/DrawableContainer;->getIntrinsicWidth()I
+HSPLandroid/graphics/drawable/DrawableContainer;->getMinimumHeight()I
+HSPLandroid/graphics/drawable/DrawableContainer;->getMinimumWidth()I
+HSPLandroid/graphics/drawable/DrawableContainer;->getOpacity()I
+HSPLandroid/graphics/drawable/DrawableContainer;->getOpticalInsets()Landroid/graphics/Insets;
+HSPLandroid/graphics/drawable/DrawableContainer;->getOutline(Landroid/graphics/Outline;)V
HSPLandroid/graphics/drawable/DrawableContainer;->getPadding(Landroid/graphics/Rect;)Z
HSPLandroid/graphics/drawable/DrawableContainer;->initializeDrawableForDisplay(Landroid/graphics/drawable/Drawable;)V
HSPLandroid/graphics/drawable/DrawableContainer;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
HSPLandroid/graphics/drawable/DrawableContainer;->isAutoMirrored()Z
+HSPLandroid/graphics/drawable/DrawableContainer;->isStateful()Z
HSPLandroid/graphics/drawable/DrawableContainer;->jumpToCurrentState()V
HSPLandroid/graphics/drawable/DrawableContainer;->needsMirroring()Z
+HSPLandroid/graphics/drawable/DrawableContainer;->onBoundsChange(Landroid/graphics/Rect;)V
+HPLandroid/graphics/drawable/DrawableContainer;->onLayoutDirectionChanged(I)Z
+HSPLandroid/graphics/drawable/DrawableContainer;->onLevelChange(I)Z
HSPLandroid/graphics/drawable/DrawableContainer;->onStateChange([I)Z
HSPLandroid/graphics/drawable/DrawableContainer;->selectDrawable(I)Z
+HSPLandroid/graphics/drawable/DrawableContainer;->setAlpha(I)V
HSPLandroid/graphics/drawable/DrawableContainer;->setAutoMirrored(Z)V
+HPLandroid/graphics/drawable/DrawableContainer;->setColorFilter(Landroid/graphics/ColorFilter;)V
HSPLandroid/graphics/drawable/DrawableContainer;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
+HPLandroid/graphics/drawable/DrawableContainer;->setCurrentIndex(I)V
HSPLandroid/graphics/drawable/DrawableContainer;->setDither(Z)V
+HPLandroid/graphics/drawable/DrawableContainer;->setHotspot(FF)V
+HSPLandroid/graphics/drawable/DrawableContainer;->setTintBlendMode(Landroid/graphics/BlendMode;)V
+HSPLandroid/graphics/drawable/DrawableContainer;->setTintList(Landroid/content/res/ColorStateList;)V
HSPLandroid/graphics/drawable/DrawableContainer;->setVisible(ZZ)Z
+HPLandroid/graphics/drawable/DrawableContainer;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V
HSPLandroid/graphics/drawable/DrawableContainer;->updateDensity(Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/DrawableInflater;-><init>(Landroid/content/res/Resources;Ljava/lang/ClassLoader;)V
HSPLandroid/graphics/drawable/DrawableInflater;->inflateFromClass(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;
@@ -3746,9 +10731,14 @@ HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->getChanging
HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->newDrawable()Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->onDensityChanged(II)V
HSPLandroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->setDensity(I)V
+HSPLandroid/graphics/drawable/DrawableWrapper;-><init>(Landroid/graphics/drawable/Drawable;)V
HSPLandroid/graphics/drawable/DrawableWrapper;-><init>(Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/DrawableWrapper;->applyTheme(Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/DrawableWrapper;->canApplyTheme()Z
+HSPLandroid/graphics/drawable/DrawableWrapper;->clearMutated()V
+HSPLandroid/graphics/drawable/DrawableWrapper;->draw(Landroid/graphics/Canvas;)V
HSPLandroid/graphics/drawable/DrawableWrapper;->getChangingConfigurations()I
+HPLandroid/graphics/drawable/DrawableWrapper;->getColorFilter()Landroid/graphics/ColorFilter;
HSPLandroid/graphics/drawable/DrawableWrapper;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
HSPLandroid/graphics/drawable/DrawableWrapper;->getDrawable()Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/DrawableWrapper;->getIntrinsicHeight()I
@@ -3760,8 +10750,16 @@ HSPLandroid/graphics/drawable/DrawableWrapper;->invalidateDrawable(Landroid/grap
HSPLandroid/graphics/drawable/DrawableWrapper;->isStateful()Z
HSPLandroid/graphics/drawable/DrawableWrapper;->jumpToCurrentState()V
HSPLandroid/graphics/drawable/DrawableWrapper;->mutate()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/DrawableWrapper;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
+HSPLandroid/graphics/drawable/DrawableWrapper;->onBoundsChange(Landroid/graphics/Rect;)V
+HPLandroid/graphics/drawable/DrawableWrapper;->onLayoutDirectionChanged(I)Z
+HSPLandroid/graphics/drawable/DrawableWrapper;->onLevelChange(I)Z
HSPLandroid/graphics/drawable/DrawableWrapper;->onStateChange([I)Z
+HPLandroid/graphics/drawable/DrawableWrapper;->setAlpha(I)V
+HPLandroid/graphics/drawable/DrawableWrapper;->setColorFilter(Landroid/graphics/ColorFilter;)V
HSPLandroid/graphics/drawable/DrawableWrapper;->setDrawable(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/graphics/drawable/DrawableWrapper;->setHotspot(FF)V
+HSPLandroid/graphics/drawable/DrawableWrapper;->setTintList(Landroid/content/res/ColorStateList;)V
HSPLandroid/graphics/drawable/DrawableWrapper;->setVisible(ZZ)Z
HSPLandroid/graphics/drawable/DrawableWrapper;->updateLocalState(Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/DrawableWrapper;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
@@ -3783,10 +10781,16 @@ HSPLandroid/graphics/drawable/GradientDrawable$GradientState;->setSolidColors(La
HSPLandroid/graphics/drawable/GradientDrawable;-><init>()V
HSPLandroid/graphics/drawable/GradientDrawable;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/GradientDrawable;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;Landroid/graphics/drawable/GradientDrawable$1;)V
+HSPLandroid/graphics/drawable/GradientDrawable;-><init>(Landroid/graphics/drawable/GradientDrawable$Orientation;[I)V
+HSPLandroid/graphics/drawable/GradientDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/GradientDrawable;->applyThemeChildElements(Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/GradientDrawable;->buildRing(Landroid/graphics/drawable/GradientDrawable$GradientState;)Landroid/graphics/Path;
HSPLandroid/graphics/drawable/GradientDrawable;->canApplyTheme()Z
+HSPLandroid/graphics/drawable/GradientDrawable;->clearMutated()V
HSPLandroid/graphics/drawable/GradientDrawable;->draw(Landroid/graphics/Canvas;)V
HSPLandroid/graphics/drawable/GradientDrawable;->ensureValidRect()Z
HSPLandroid/graphics/drawable/GradientDrawable;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/GradientDrawable;->getColorFilter()Landroid/graphics/ColorFilter;
HSPLandroid/graphics/drawable/GradientDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
HSPLandroid/graphics/drawable/GradientDrawable;->getFloatOrFraction(Landroid/content/res/TypedArray;IF)F
HSPLandroid/graphics/drawable/GradientDrawable;->getIntrinsicHeight()I
@@ -3799,35 +10803,70 @@ HSPLandroid/graphics/drawable/GradientDrawable;->inflateChildElements(Landroid/c
HSPLandroid/graphics/drawable/GradientDrawable;->isOpaque(I)Z
HSPLandroid/graphics/drawable/GradientDrawable;->isOpaqueForState()Z
HSPLandroid/graphics/drawable/GradientDrawable;->isStateful()Z
+PLandroid/graphics/drawable/GradientDrawable;->modulateAlpha(I)I
HSPLandroid/graphics/drawable/GradientDrawable;->mutate()Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/GradientDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/GradientDrawable;->onLevelChange(I)Z
+HSPLandroid/graphics/drawable/GradientDrawable;->onStateChange([I)Z
HSPLandroid/graphics/drawable/GradientDrawable;->setAlpha(I)V
+HPLandroid/graphics/drawable/GradientDrawable;->setAntiAlias(Z)V
+HSPLandroid/graphics/drawable/GradientDrawable;->setColor(I)V
HSPLandroid/graphics/drawable/GradientDrawable;->setColor(Landroid/content/res/ColorStateList;)V
+HSPLandroid/graphics/drawable/GradientDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
+HPLandroid/graphics/drawable/GradientDrawable;->setColors([I)V
+HPLandroid/graphics/drawable/GradientDrawable;->setColors([I[F)V
HSPLandroid/graphics/drawable/GradientDrawable;->setCornerRadii([F)V
HSPLandroid/graphics/drawable/GradientDrawable;->setCornerRadius(F)V
HSPLandroid/graphics/drawable/GradientDrawable;->setDither(Z)V
+HSPLandroid/graphics/drawable/GradientDrawable;->setGradientType(I)V
+HPLandroid/graphics/drawable/GradientDrawable;->setOrientation(Landroid/graphics/drawable/GradientDrawable$Orientation;)V
+HSPLandroid/graphics/drawable/GradientDrawable;->setShape(I)V
+HPLandroid/graphics/drawable/GradientDrawable;->setStroke(II)V
+HPLandroid/graphics/drawable/GradientDrawable;->setStroke(IIFF)V
+HSPLandroid/graphics/drawable/GradientDrawable;->setStroke(ILandroid/content/res/ColorStateList;)V
+HSPLandroid/graphics/drawable/GradientDrawable;->setStroke(ILandroid/content/res/ColorStateList;FF)V
+HSPLandroid/graphics/drawable/GradientDrawable;->setStrokeInternal(IIFF)V
+HPLandroid/graphics/drawable/GradientDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V
HSPLandroid/graphics/drawable/GradientDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
+HPLandroid/graphics/drawable/GradientDrawable;->setXfermode(Landroid/graphics/Xfermode;)V
HSPLandroid/graphics/drawable/GradientDrawable;->updateDrawableCorners(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableGradient(Landroid/content/res/Resources;Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawablePadding(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableSize(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableSolid(Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/GradientDrawable;->updateGradientDrawableStroke(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/GradientDrawable;->updateLocalState(Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/GradientDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
-HSPLandroid/graphics/drawable/Icon$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/drawable/Icon;
-HSPLandroid/graphics/drawable/Icon$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/graphics/drawable/Icon$1;->createFromParcel(Landroid/os/Parcel;)Landroid/graphics/drawable/Icon;
+HPLandroid/graphics/drawable/Icon$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/graphics/drawable/Icon;-><init>(I)V
-HSPLandroid/graphics/drawable/Icon;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/graphics/drawable/Icon;-><init>(Landroid/os/Parcel;Landroid/graphics/drawable/Icon$1;)V
+HPLandroid/graphics/drawable/Icon;-><init>(Landroid/os/Parcel;)V
+PLandroid/graphics/drawable/Icon;-><init>(Landroid/os/Parcel;Landroid/graphics/drawable/Icon$1;)V
+PLandroid/graphics/drawable/Icon;->createFromStream(Ljava/io/InputStream;)Landroid/graphics/drawable/Icon;
+HSPLandroid/graphics/drawable/Icon;->createWithAdaptiveBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/drawable/Icon;
HSPLandroid/graphics/drawable/Icon;->createWithBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/drawable/Icon;
HSPLandroid/graphics/drawable/Icon;->createWithResource(Landroid/content/Context;I)Landroid/graphics/drawable/Icon;
HSPLandroid/graphics/drawable/Icon;->createWithResource(Ljava/lang/String;I)Landroid/graphics/drawable/Icon;
HSPLandroid/graphics/drawable/Icon;->getBitmap()Landroid/graphics/Bitmap;
HSPLandroid/graphics/drawable/Icon;->getResId()I
HSPLandroid/graphics/drawable/Icon;->getResPackage()Ljava/lang/String;
+HPLandroid/graphics/drawable/Icon;->getResources()Landroid/content/res/Resources;
HSPLandroid/graphics/drawable/Icon;->getType()I
+PLandroid/graphics/drawable/Icon;->hasTint()Z
+HPLandroid/graphics/drawable/Icon;->loadDrawable(Landroid/content/Context;)Landroid/graphics/drawable/Drawable;
+HPLandroid/graphics/drawable/Icon;->loadDrawableAsUser(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
+HPLandroid/graphics/drawable/Icon;->loadDrawableAsync(Landroid/content/Context;Landroid/graphics/drawable/Icon$OnDrawableLoadedListener;Landroid/os/Handler;)V
+HPLandroid/graphics/drawable/Icon;->loadDrawableInner(Landroid/content/Context;)Landroid/graphics/drawable/Drawable;
+HPLandroid/graphics/drawable/Icon;->sameAs(Landroid/graphics/drawable/Icon;)Z
+PLandroid/graphics/drawable/Icon;->scaleDownIfNecessary(II)V
+HSPLandroid/graphics/drawable/Icon;->scaleDownIfNecessary(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
HSPLandroid/graphics/drawable/Icon;->setBitmap(Landroid/graphics/Bitmap;)V
+HPLandroid/graphics/drawable/Icon;->setTint(I)Landroid/graphics/drawable/Icon;
+HPLandroid/graphics/drawable/Icon;->setTintMode(Landroid/graphics/PorterDuff$Mode;)Landroid/graphics/drawable/Icon;
+HPLandroid/graphics/drawable/Icon;->toString()Ljava/lang/String;
+PLandroid/graphics/drawable/Icon;->typeToString(I)Ljava/lang/String;
HSPLandroid/graphics/drawable/Icon;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/graphics/drawable/Icon;->writeToStream(Ljava/io/OutputStream;)V
HSPLandroid/graphics/drawable/InsetDrawable$InsetState;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->access$002(Landroid/graphics/drawable/InsetDrawable$InsetState;[I)[I
HSPLandroid/graphics/drawable/InsetDrawable$InsetState;->applyDensityScaling(II)V
@@ -3838,19 +10877,29 @@ HSPLandroid/graphics/drawable/InsetDrawable$InsetValue;-><init>(FI)V
HSPLandroid/graphics/drawable/InsetDrawable$InsetValue;->getDimension(I)I
HSPLandroid/graphics/drawable/InsetDrawable$InsetValue;->scaleFromDensity(II)V
HSPLandroid/graphics/drawable/InsetDrawable;-><init>()V
+HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/Drawable;I)V
+HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/Drawable;IIII)V
HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/InsetDrawable;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;Landroid/graphics/drawable/InsetDrawable$1;)V
+HSPLandroid/graphics/drawable/InsetDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/InsetDrawable;->getInset(Landroid/content/res/TypedArray;ILandroid/graphics/drawable/InsetDrawable$InsetValue;)Landroid/graphics/drawable/InsetDrawable$InsetValue;
HSPLandroid/graphics/drawable/InsetDrawable;->getInsets(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/InsetDrawable;->getIntrinsicHeight()I
+HSPLandroid/graphics/drawable/InsetDrawable;->getIntrinsicWidth()I
+HSPLandroid/graphics/drawable/InsetDrawable;->getOpacity()I
+HSPLandroid/graphics/drawable/InsetDrawable;->getOutline(Landroid/graphics/Outline;)V
HSPLandroid/graphics/drawable/InsetDrawable;->getPadding(Landroid/graphics/Rect;)Z
HSPLandroid/graphics/drawable/InsetDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/InsetDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
+HSPLandroid/graphics/drawable/InsetDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
HSPLandroid/graphics/drawable/InsetDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/InsetDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(I)V
HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->canApplyTheme()Z
+PLandroid/graphics/drawable/LayerDrawable$ChildDrawable;->setDensity(I)V
HSPLandroid/graphics/drawable/LayerDrawable$LayerState;-><init>(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V
+PLandroid/graphics/drawable/LayerDrawable$LayerState;->access$000(Landroid/graphics/drawable/LayerDrawable$LayerState;)[I
HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->access$002(Landroid/graphics/drawable/LayerDrawable$LayerState;[I)[I
HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->access$200(Landroid/graphics/drawable/LayerDrawable$LayerState;)I
HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->access$202(Landroid/graphics/drawable/LayerDrawable$LayerState;I)I
@@ -3861,6 +10910,7 @@ HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->getChangingConfiguratio
HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->getOpacity()I
HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->invalidateCache()V
HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->isStateful()Z
+HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->newDrawable()Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->onDensityChanged(II)V
HSPLandroid/graphics/drawable/LayerDrawable$LayerState;->setDensity(I)V
@@ -3868,6 +10918,7 @@ HSPLandroid/graphics/drawable/LayerDrawable;-><init>()V
HSPLandroid/graphics/drawable/LayerDrawable;-><init>(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/LayerDrawable;-><init>([Landroid/graphics/drawable/Drawable;)V
HSPLandroid/graphics/drawable/LayerDrawable;-><init>([Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/LayerDrawable$LayerState;)V
+HSPLandroid/graphics/drawable/LayerDrawable;->addLayer(Landroid/graphics/drawable/Drawable;[IIIIII)Landroid/graphics/drawable/LayerDrawable$ChildDrawable;
HSPLandroid/graphics/drawable/LayerDrawable;->addLayer(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;)I
HSPLandroid/graphics/drawable/LayerDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/LayerDrawable;->canApplyTheme()Z
@@ -3875,37 +10926,88 @@ HSPLandroid/graphics/drawable/LayerDrawable;->clearMutated()V
HSPLandroid/graphics/drawable/LayerDrawable;->computeNestedPadding(Landroid/graphics/Rect;)V
HSPLandroid/graphics/drawable/LayerDrawable;->computeStackedPadding(Landroid/graphics/Rect;)V
HSPLandroid/graphics/drawable/LayerDrawable;->createConstantState(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/LayerDrawable$LayerState;
+HSPLandroid/graphics/drawable/LayerDrawable;->draw(Landroid/graphics/Canvas;)V
HSPLandroid/graphics/drawable/LayerDrawable;->ensurePadding()V
HSPLandroid/graphics/drawable/LayerDrawable;->findDrawableByLayerId(I)Landroid/graphics/drawable/Drawable;
+HPLandroid/graphics/drawable/LayerDrawable;->findIndexByLayerId(I)I
HSPLandroid/graphics/drawable/LayerDrawable;->getChangingConfigurations()I
HSPLandroid/graphics/drawable/LayerDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
+HSPLandroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/LayerDrawable;->getIntrinsicHeight()I
HSPLandroid/graphics/drawable/LayerDrawable;->getIntrinsicWidth()I
HSPLandroid/graphics/drawable/LayerDrawable;->getNumberOfLayers()I
HSPLandroid/graphics/drawable/LayerDrawable;->getOpacity()I
+HSPLandroid/graphics/drawable/LayerDrawable;->getOutline(Landroid/graphics/Outline;)V
HSPLandroid/graphics/drawable/LayerDrawable;->getPadding(Landroid/graphics/Rect;)Z
HSPLandroid/graphics/drawable/LayerDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/LayerDrawable;->inflateLayers(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/LayerDrawable;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/graphics/drawable/LayerDrawable;->isAutoMirrored()Z
+HSPLandroid/graphics/drawable/LayerDrawable;->isProjected()Z
HSPLandroid/graphics/drawable/LayerDrawable;->isStateful()Z
HSPLandroid/graphics/drawable/LayerDrawable;->jumpToCurrentState()V
HSPLandroid/graphics/drawable/LayerDrawable;->mutate()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/LayerDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HPLandroid/graphics/drawable/LayerDrawable;->onLayoutDirectionChanged(I)Z
HSPLandroid/graphics/drawable/LayerDrawable;->onStateChange([I)Z
HSPLandroid/graphics/drawable/LayerDrawable;->refreshChildPadding(ILandroid/graphics/drawable/LayerDrawable$ChildDrawable;)Z
HSPLandroid/graphics/drawable/LayerDrawable;->refreshPadding()V
HSPLandroid/graphics/drawable/LayerDrawable;->resolveGravity(IIIII)I
+PLandroid/graphics/drawable/LayerDrawable;->resumeChildInvalidation()V
+HSPLandroid/graphics/drawable/LayerDrawable;->setAlpha(I)V
+HSPLandroid/graphics/drawable/LayerDrawable;->setAutoMirrored(Z)V
+HSPLandroid/graphics/drawable/LayerDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
+HPLandroid/graphics/drawable/LayerDrawable;->setDither(Z)V
+HSPLandroid/graphics/drawable/LayerDrawable;->setDrawable(ILandroid/graphics/drawable/Drawable;)V
+HPLandroid/graphics/drawable/LayerDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z
+HSPLandroid/graphics/drawable/LayerDrawable;->setHotspot(FF)V
+HPLandroid/graphics/drawable/LayerDrawable;->setId(II)V
+HSPLandroid/graphics/drawable/LayerDrawable;->setLayerInset(IIIII)V
HSPLandroid/graphics/drawable/LayerDrawable;->setPaddingMode(I)V
+HSPLandroid/graphics/drawable/LayerDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
HSPLandroid/graphics/drawable/LayerDrawable;->setVisible(ZZ)Z
+PLandroid/graphics/drawable/LayerDrawable;->suspendChildInvalidation()V
HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBounds(Landroid/graphics/Rect;)V
HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V
HSPLandroid/graphics/drawable/LayerDrawable;->updateLayerFromTypedArray(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/LayerDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+PLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>()V
HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZ)V
+HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;)V
+PLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;->canApplyTheme()Z
+PLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;->newDrawable()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/NinePatchDrawable$NinePatchState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
+PLandroid/graphics/drawable/NinePatchDrawable;-><init>(Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;Landroid/content/res/Resources;)V
+PLandroid/graphics/drawable/NinePatchDrawable;-><init>(Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;Landroid/content/res/Resources;Landroid/graphics/drawable/NinePatchDrawable$1;)V
+PLandroid/graphics/drawable/NinePatchDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/NinePatchDrawable;->canApplyTheme()Z
+PLandroid/graphics/drawable/NinePatchDrawable;->clearMutated()V
HSPLandroid/graphics/drawable/NinePatchDrawable;->computeBitmapSize()V
+HPLandroid/graphics/drawable/NinePatchDrawable;->draw(Landroid/graphics/Canvas;)V
+HPLandroid/graphics/drawable/NinePatchDrawable;->getAlpha()I
HSPLandroid/graphics/drawable/NinePatchDrawable;->getChangingConfigurations()I
HSPLandroid/graphics/drawable/NinePatchDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
+PLandroid/graphics/drawable/NinePatchDrawable;->getIntrinsicHeight()I
+PLandroid/graphics/drawable/NinePatchDrawable;->getIntrinsicWidth()I
+HSPLandroid/graphics/drawable/NinePatchDrawable;->getOpacity()I
+HPLandroid/graphics/drawable/NinePatchDrawable;->getOpticalInsets()Landroid/graphics/Insets;
+PLandroid/graphics/drawable/NinePatchDrawable;->getOutline(Landroid/graphics/Outline;)V
+HSPLandroid/graphics/drawable/NinePatchDrawable;->getPadding(Landroid/graphics/Rect;)Z
+HSPLandroid/graphics/drawable/NinePatchDrawable;->getPaint()Landroid/graphics/Paint;
+PLandroid/graphics/drawable/NinePatchDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HPLandroid/graphics/drawable/NinePatchDrawable;->isAutoMirrored()Z
+PLandroid/graphics/drawable/NinePatchDrawable;->isStateful()Z
+PLandroid/graphics/drawable/NinePatchDrawable;->lambda$updateStateFromTypedArray$0(Landroid/graphics/Rect;Landroid/graphics/ImageDecoder;Landroid/graphics/ImageDecoder$ImageInfo;Landroid/graphics/ImageDecoder$Source;)V
+HSPLandroid/graphics/drawable/NinePatchDrawable;->mutate()Landroid/graphics/drawable/Drawable;
+HPLandroid/graphics/drawable/NinePatchDrawable;->onStateChange([I)Z
+HSPLandroid/graphics/drawable/NinePatchDrawable;->setAlpha(I)V
+HPLandroid/graphics/drawable/NinePatchDrawable;->setAutoMirrored(Z)V
+HPLandroid/graphics/drawable/NinePatchDrawable;->setDither(Z)V
HSPLandroid/graphics/drawable/NinePatchDrawable;->updateLocalState(Landroid/content/res/Resources;)V
+PLandroid/graphics/drawable/NinePatchDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+HPLandroid/graphics/drawable/RippleComponent;->getTargetRadius(Landroid/graphics/Rect;)F
+HPLandroid/graphics/drawable/RippleComponent;->onBoundsChange()V
HSPLandroid/graphics/drawable/RippleDrawable$RippleState;-><init>(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/RippleDrawable;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->applyDensityScaling(II)V
HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->canApplyTheme()Z
@@ -3913,6 +11015,7 @@ HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->getChangingConfigurat
HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/RippleDrawable$RippleState;->onDensityChanged(II)V
HSPLandroid/graphics/drawable/RippleDrawable;-><init>()V
+HSPLandroid/graphics/drawable/RippleDrawable;-><init>(Landroid/content/res/ColorStateList;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
HSPLandroid/graphics/drawable/RippleDrawable;-><init>(Landroid/graphics/drawable/RippleDrawable$RippleState;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/RippleDrawable;-><init>(Landroid/graphics/drawable/RippleDrawable$RippleState;Landroid/content/res/Resources;Landroid/graphics/drawable/RippleDrawable$1;)V
HSPLandroid/graphics/drawable/RippleDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
@@ -3923,8 +11026,10 @@ HSPLandroid/graphics/drawable/RippleDrawable;->draw(Landroid/graphics/Canvas;)V
HSPLandroid/graphics/drawable/RippleDrawable;->drawBackgroundAndRipples(Landroid/graphics/Canvas;)V
HSPLandroid/graphics/drawable/RippleDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
HSPLandroid/graphics/drawable/RippleDrawable;->getDirtyBounds()Landroid/graphics/Rect;
+HSPLandroid/graphics/drawable/RippleDrawable;->getMaskType()I
HSPLandroid/graphics/drawable/RippleDrawable;->getOpacity()I
HSPLandroid/graphics/drawable/RippleDrawable;->getOutline(Landroid/graphics/Outline;)V
+HSPLandroid/graphics/drawable/RippleDrawable;->getRipplePaint()Landroid/graphics/Paint;
HSPLandroid/graphics/drawable/RippleDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/RippleDrawable;->invalidateSelf()V
HSPLandroid/graphics/drawable/RippleDrawable;->invalidateSelf(Z)V
@@ -3937,75 +11042,182 @@ HSPLandroid/graphics/drawable/RippleDrawable;->onStateChange([I)Z
HSPLandroid/graphics/drawable/RippleDrawable;->pruneRipples()V
HSPLandroid/graphics/drawable/RippleDrawable;->setBackgroundActive(ZZZ)V
HSPLandroid/graphics/drawable/RippleDrawable;->setColor(Landroid/content/res/ColorStateList;)V
+HPLandroid/graphics/drawable/RippleDrawable;->setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z
+HPLandroid/graphics/drawable/RippleDrawable;->setForceSoftware(Z)V
+HSPLandroid/graphics/drawable/RippleDrawable;->setHotspot(FF)V
+HSPLandroid/graphics/drawable/RippleDrawable;->setHotspotBounds(IIII)V
HSPLandroid/graphics/drawable/RippleDrawable;->setPaddingMode(I)V
+PLandroid/graphics/drawable/RippleDrawable;->setRippleActive(Z)V
HSPLandroid/graphics/drawable/RippleDrawable;->setVisible(ZZ)Z
+HSPLandroid/graphics/drawable/RippleDrawable;->tryRippleEnter()V
+HSPLandroid/graphics/drawable/RippleDrawable;->tryRippleExit()V
HSPLandroid/graphics/drawable/RippleDrawable;->updateLocalState()V
+HSPLandroid/graphics/drawable/RippleDrawable;->updateMaskShaderIfNeeded()V
HSPLandroid/graphics/drawable/RippleDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/RippleDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/RippleForeground$1;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/graphics/drawable/RippleForeground$2;->get(Landroid/graphics/drawable/RippleForeground;)Ljava/lang/Float;
+HSPLandroid/graphics/drawable/RippleForeground$2;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/graphics/drawable/RippleForeground$2;->setValue(Landroid/graphics/drawable/RippleForeground;F)V
+HSPLandroid/graphics/drawable/RippleForeground$2;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/graphics/drawable/RippleForeground$3;->get(Landroid/graphics/drawable/RippleForeground;)Ljava/lang/Float;
+HSPLandroid/graphics/drawable/RippleForeground$3;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/graphics/drawable/RippleForeground$3;->setValue(Landroid/graphics/drawable/RippleForeground;F)V
+HSPLandroid/graphics/drawable/RippleForeground$3;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/graphics/drawable/RippleForeground$4;->get(Landroid/graphics/drawable/RippleForeground;)Ljava/lang/Float;
+HSPLandroid/graphics/drawable/RippleForeground$4;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/graphics/drawable/RippleForeground$4;->setValue(Landroid/graphics/drawable/RippleForeground;F)V
+HSPLandroid/graphics/drawable/RippleForeground$4;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/graphics/drawable/RippleForeground;-><init>(Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/Rect;FFZ)V
+HSPLandroid/graphics/drawable/RippleForeground;->clampStartingPosition()V
+HSPLandroid/graphics/drawable/RippleForeground;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+HPLandroid/graphics/drawable/RippleForeground;->drawSoftware(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/drawable/RippleForeground;->end()V
+HPLandroid/graphics/drawable/RippleForeground;->getBounds(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/RippleForeground;->hasFinishedExit()Z
+HSPLandroid/graphics/drawable/RippleForeground;->move(FF)V
+HSPLandroid/graphics/drawable/RippleForeground;->onTargetRadiusChanged(F)V
+HSPLandroid/graphics/drawable/RippleForeground;->pruneHwFinished()V
+HSPLandroid/graphics/drawable/RippleForeground;->pruneSwFinished()V
+HSPLandroid/graphics/drawable/RippleForeground;->startHardwareEnter()V
+HSPLandroid/graphics/drawable/RippleForeground;->startHardwareExit()V
+HSPLandroid/graphics/drawable/RippleForeground;->startPending(Landroid/graphics/RecordingCanvas;)V
+HSPLandroid/graphics/drawable/RippleForeground;->startSoftwareEnter()V
+HSPLandroid/graphics/drawable/RippleForeground;->startSoftwareExit()V
+HSPLandroid/graphics/drawable/RippleForeground;->switchToUiThreadAnimation()V
HSPLandroid/graphics/drawable/RotateDrawable$RotateState;-><init>(Landroid/graphics/drawable/RotateDrawable$RotateState;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/RotateDrawable$RotateState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/RotateDrawable;->draw(Landroid/graphics/Canvas;)V
HSPLandroid/graphics/drawable/RotateDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/RotateDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
+HSPLandroid/graphics/drawable/RotateDrawable;->onLevelChange(I)Z
HSPLandroid/graphics/drawable/RotateDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/RotateDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/ScaleDrawable$ScaleState;-><init>(Landroid/graphics/drawable/ScaleDrawable$ScaleState;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/ScaleDrawable$ScaleState;->access$002(Landroid/graphics/drawable/ScaleDrawable$ScaleState;[I)[I
+HSPLandroid/graphics/drawable/ScaleDrawable$ScaleState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/ScaleDrawable;-><init>()V
HSPLandroid/graphics/drawable/ScaleDrawable;-><init>(Landroid/graphics/drawable/ScaleDrawable$ScaleState;Landroid/content/res/Resources;)V
+HSPLandroid/graphics/drawable/ScaleDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/ScaleDrawable;->draw(Landroid/graphics/Canvas;)V
HSPLandroid/graphics/drawable/ScaleDrawable;->getPercent(Landroid/content/res/TypedArray;IF)F
HSPLandroid/graphics/drawable/ScaleDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/ScaleDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
+HSPLandroid/graphics/drawable/ScaleDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/ScaleDrawable;->onLevelChange(I)Z
HSPLandroid/graphics/drawable/ScaleDrawable;->updateLocalState()V
HSPLandroid/graphics/drawable/ScaleDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/ScaleDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/ShapeDrawable;-><init>()V
HSPLandroid/graphics/drawable/ShapeDrawable;-><init>(Landroid/graphics/drawable/shapes/Shape;)V
+HSPLandroid/graphics/drawable/ShapeDrawable;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/graphics/drawable/ShapeDrawable;->getAlpha()I
+HSPLandroid/graphics/drawable/ShapeDrawable;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/ShapeDrawable;->getIntrinsicHeight()I
+HSPLandroid/graphics/drawable/ShapeDrawable;->getIntrinsicWidth()I
HSPLandroid/graphics/drawable/ShapeDrawable;->getOpacity()I
+HSPLandroid/graphics/drawable/ShapeDrawable;->getOutline(Landroid/graphics/Outline;)V
HSPLandroid/graphics/drawable/ShapeDrawable;->getPadding(Landroid/graphics/Rect;)Z
HSPLandroid/graphics/drawable/ShapeDrawable;->getPaint()Landroid/graphics/Paint;
HSPLandroid/graphics/drawable/ShapeDrawable;->isStateful()Z
+HPLandroid/graphics/drawable/ShapeDrawable;->mutate()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/ShapeDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HSPLandroid/graphics/drawable/ShapeDrawable;->onDraw(Landroid/graphics/drawable/shapes/Shape;Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/drawable/ShapeDrawable;->setAlpha(I)V
+HSPLandroid/graphics/drawable/ShapeDrawable;->setShape(Landroid/graphics/drawable/shapes/Shape;)V
+HPLandroid/graphics/drawable/ShapeDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
+HSPLandroid/graphics/drawable/ShapeDrawable;->updateShape()V
HSPLandroid/graphics/drawable/StateListDrawable$StateListState;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;Landroid/graphics/drawable/StateListDrawable;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->addStateSet([ILandroid/graphics/drawable/Drawable;)I
HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->canApplyTheme()Z
HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->indexOfStateSet([I)I
+HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->mutate()V
HSPLandroid/graphics/drawable/StateListDrawable$StateListState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/StateListDrawable;-><init>()V
HSPLandroid/graphics/drawable/StateListDrawable;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;)V
HSPLandroid/graphics/drawable/StateListDrawable;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/StateListDrawable;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;Landroid/content/res/Resources;Landroid/graphics/drawable/StateListDrawable$1;)V
+HPLandroid/graphics/drawable/StateListDrawable;->addState([ILandroid/graphics/drawable/Drawable;)V
+HSPLandroid/graphics/drawable/StateListDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/StateListDrawable;->clearMutated()V
+HSPLandroid/graphics/drawable/StateListDrawable;->cloneConstantState()Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;
+HSPLandroid/graphics/drawable/StateListDrawable;->cloneConstantState()Landroid/graphics/drawable/StateListDrawable$StateListState;
HSPLandroid/graphics/drawable/StateListDrawable;->extractStateSet(Landroid/util/AttributeSet;)[I
HSPLandroid/graphics/drawable/StateListDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/StateListDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/graphics/drawable/StateListDrawable;->isStateful()Z
+HSPLandroid/graphics/drawable/StateListDrawable;->mutate()Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/StateListDrawable;->onStateChange([I)Z
HSPLandroid/graphics/drawable/StateListDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
HSPLandroid/graphics/drawable/StateListDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/TransitionDrawable$TransitionState;->getChangingConfigurations()I
+HSPLandroid/graphics/drawable/TransitionDrawable;-><init>([Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/graphics/drawable/TransitionDrawable;->createConstantState(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/content/res/Resources;)Landroid/graphics/drawable/LayerDrawable$LayerState;
+HSPLandroid/graphics/drawable/TransitionDrawable;->draw(Landroid/graphics/Canvas;)V
+HPLandroid/graphics/drawable/TransitionDrawable;->resetTransition()V
+HSPLandroid/graphics/drawable/TransitionDrawable;->setCrossFadeEnabled(Z)V
+HSPLandroid/graphics/drawable/TransitionDrawable;->startTransition(I)V
+HPLandroid/graphics/drawable/VectorDrawable$VClipPath;->canApplyTheme()Z
+HPLandroid/graphics/drawable/VectorDrawable$VClipPath;->getNativePtr()J
+HPLandroid/graphics/drawable/VectorDrawable$VClipPath;->getNativeSize()I
+HPLandroid/graphics/drawable/VectorDrawable$VClipPath;->isStateful()Z
+HPLandroid/graphics/drawable/VectorDrawable$VClipPath;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;-><init>()V
HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;-><init>(Landroid/graphics/drawable/VectorDrawable$VFullPath;)V
+HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->applyTheme(Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->canApplyTheme()Z
HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->canComplexColorApplyTheme(Landroid/content/res/ComplexColor;)Z
HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getNativePtr()J
HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getNativeSize()I
+HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getProperty(Ljava/lang/String;)Landroid/util/Property;
+HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->getPropertyIndex(Ljava/lang/String;)I
HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->inflate(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->isStateful()Z
HSPLandroid/graphics/drawable/VectorDrawable$VFullPath;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup$2;->setValue(Landroid/graphics/drawable/VectorDrawable$VGroup;F)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup$2;->setValue(Ljava/lang/Object;F)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup$3;->setValue(Landroid/graphics/drawable/VectorDrawable$VGroup;F)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup$3;->setValue(Ljava/lang/Object;F)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup$4;->setValue(Landroid/graphics/drawable/VectorDrawable$VGroup;F)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup$4;->setValue(Ljava/lang/Object;F)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup$5;->setValue(Landroid/graphics/drawable/VectorDrawable$VGroup;F)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup$5;->setValue(Ljava/lang/Object;F)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup$8;->setValue(Landroid/graphics/drawable/VectorDrawable$VGroup;F)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup$8;->setValue(Ljava/lang/Object;F)V
HSPLandroid/graphics/drawable/VectorDrawable$VGroup;-><init>()V
HSPLandroid/graphics/drawable/VectorDrawable$VGroup;-><init>(Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/util/ArrayMap;)V
HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->access$100(Landroid/graphics/drawable/VectorDrawable$VGroup;)I
HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->access$200(Landroid/graphics/drawable/VectorDrawable$VGroup;)J
HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->addChild(Landroid/graphics/drawable/VectorDrawable$VObject;)V
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->applyTheme(Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->canApplyTheme()Z
HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->getGroupName()Ljava/lang/String;
HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->getNativePtr()J
HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->getNativeSize()I
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->getProperty(Ljava/lang/String;)Landroid/util/Property;
HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->inflate(Landroid/content/res/Resources;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->isStateful()Z
+HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->onStateChange([I)Z
+HPLandroid/graphics/drawable/VectorDrawable$VGroup;->setRotation(F)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup;->setScaleX(F)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup;->setScaleY(F)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup;->setTranslateX(F)V
+HPLandroid/graphics/drawable/VectorDrawable$VGroup;->setTranslateY(F)V
HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->setTree(Lcom/android/internal/util/VirtualRefBasePtr;)V
HSPLandroid/graphics/drawable/VectorDrawable$VGroup;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
HSPLandroid/graphics/drawable/VectorDrawable$VObject;-><init>()V
+HPLandroid/graphics/drawable/VectorDrawable$VObject;->isTreeValid()Z
HSPLandroid/graphics/drawable/VectorDrawable$VObject;->setTree(Lcom/android/internal/util/VirtualRefBasePtr;)V
+HPLandroid/graphics/drawable/VectorDrawable$VPath$1;->set(Landroid/graphics/drawable/VectorDrawable$VPath;Landroid/util/PathParser$PathData;)V
+HPLandroid/graphics/drawable/VectorDrawable$VPath$1;->set(Ljava/lang/Object;Ljava/lang/Object;)V
HSPLandroid/graphics/drawable/VectorDrawable$VPath;-><init>()V
HSPLandroid/graphics/drawable/VectorDrawable$VPath;-><init>(Landroid/graphics/drawable/VectorDrawable$VPath;)V
HSPLandroid/graphics/drawable/VectorDrawable$VPath;->getPathName()Ljava/lang/String;
+HPLandroid/graphics/drawable/VectorDrawable$VPath;->setPathData(Landroid/util/PathParser$PathData;)V
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;-><init>(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;)V
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->access$000(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;Landroid/graphics/drawable/VectorDrawable$VGroup;)V
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->applyDensityScaling(II)V
+HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->applyTheme(Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->canApplyTheme()Z
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->canReuseCache()Z
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->createNativeTree(Landroid/graphics/drawable/VectorDrawable$VGroup;)V
@@ -4014,9 +11226,11 @@ HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->finalize()V
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getAlpha()F
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getChangingConfigurations()I
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getNativeRenderer()J
+HPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->getProperty(Ljava/lang/String;)Landroid/util/Property;
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->isStateful()Z
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->newDrawable()Landroid/graphics/drawable/Drawable;
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->onStateChange([I)Z
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->onTreeConstructionFinished()V
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setAlpha(F)Z
HSPLandroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setDensity(I)Z
@@ -4031,6 +11245,7 @@ HSPLandroid/graphics/drawable/VectorDrawable;->access$1800(JJ)V
HSPLandroid/graphics/drawable/VectorDrawable;->access$1900(J[FI)Z
HSPLandroid/graphics/drawable/VectorDrawable;->access$2000(JLjava/lang/String;)V
HSPLandroid/graphics/drawable/VectorDrawable;->access$2100(JFFFFFFF)V
+HPLandroid/graphics/drawable/VectorDrawable;->access$2300(JF)V
HSPLandroid/graphics/drawable/VectorDrawable;->access$300(J)J
HSPLandroid/graphics/drawable/VectorDrawable;->access$3900(JLjava/lang/String;I)V
HSPLandroid/graphics/drawable/VectorDrawable;->access$400(JJ)J
@@ -4050,33 +11265,80 @@ HSPLandroid/graphics/drawable/VectorDrawable;->computeVectorSize()V
HSPLandroid/graphics/drawable/VectorDrawable;->draw(Landroid/graphics/Canvas;)V
HSPLandroid/graphics/drawable/VectorDrawable;->getAlpha()I
HSPLandroid/graphics/drawable/VectorDrawable;->getChangingConfigurations()I
+HPLandroid/graphics/drawable/VectorDrawable;->getColorFilter()Landroid/graphics/ColorFilter;
HSPLandroid/graphics/drawable/VectorDrawable;->getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;
HSPLandroid/graphics/drawable/VectorDrawable;->getIntrinsicHeight()I
HSPLandroid/graphics/drawable/VectorDrawable;->getIntrinsicWidth()I
+HSPLandroid/graphics/drawable/VectorDrawable;->getNativeTree()J
HSPLandroid/graphics/drawable/VectorDrawable;->getOpacity()I
+HSPLandroid/graphics/drawable/VectorDrawable;->getOpticalInsets()Landroid/graphics/Insets;
HSPLandroid/graphics/drawable/VectorDrawable;->getPixelSize()F
+HSPLandroid/graphics/drawable/VectorDrawable;->getTargetByName(Ljava/lang/String;)Ljava/lang/Object;
HSPLandroid/graphics/drawable/VectorDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/VectorDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLandroid/graphics/drawable/VectorDrawable;->isAutoMirrored()Z
HSPLandroid/graphics/drawable/VectorDrawable;->isStateful()Z
HSPLandroid/graphics/drawable/VectorDrawable;->mutate()Landroid/graphics/drawable/Drawable;
+HSPLandroid/graphics/drawable/VectorDrawable;->onStateChange([I)Z
HSPLandroid/graphics/drawable/VectorDrawable;->setAllowCaching(Z)V
+HSPLandroid/graphics/drawable/VectorDrawable;->setAlpha(I)V
HSPLandroid/graphics/drawable/VectorDrawable;->setAutoMirrored(Z)V
+HSPLandroid/graphics/drawable/VectorDrawable;->setColorFilter(Landroid/graphics/ColorFilter;)V
+HSPLandroid/graphics/drawable/VectorDrawable;->setTintBlendMode(Landroid/graphics/BlendMode;)V
HSPLandroid/graphics/drawable/VectorDrawable;->setTintList(Landroid/content/res/ColorStateList;)V
HSPLandroid/graphics/drawable/VectorDrawable;->updateColorFilters(Landroid/graphics/BlendMode;Landroid/content/res/ColorStateList;)V
HSPLandroid/graphics/drawable/VectorDrawable;->updateLocalState(Landroid/content/res/Resources;)V
HSPLandroid/graphics/drawable/VectorDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
+HSPLandroid/graphics/drawable/shapes/OvalShape;-><init>()V
+HSPLandroid/graphics/drawable/shapes/OvalShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+HSPLandroid/graphics/drawable/shapes/OvalShape;->getOutline(Landroid/graphics/Outline;)V
+HPLandroid/graphics/drawable/shapes/PathShape;-><init>(Landroid/graphics/Path;FF)V
+HPLandroid/graphics/drawable/shapes/PathShape;->clone()Landroid/graphics/drawable/shapes/PathShape;
+HPLandroid/graphics/drawable/shapes/PathShape;->clone()Landroid/graphics/drawable/shapes/Shape;
+HPLandroid/graphics/drawable/shapes/PathShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+HPLandroid/graphics/drawable/shapes/PathShape;->onResize(FF)V
+HSPLandroid/graphics/drawable/shapes/RectShape;->onResize(FF)V
+HPLandroid/graphics/drawable/shapes/RectShape;->rect()Landroid/graphics/RectF;
+HSPLandroid/graphics/drawable/shapes/RoundRectShape;-><init>([FLandroid/graphics/RectF;[F)V
+HPLandroid/graphics/drawable/shapes/RoundRectShape;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
+HPLandroid/graphics/drawable/shapes/RoundRectShape;->getOutline(Landroid/graphics/Outline;)V
+HSPLandroid/graphics/drawable/shapes/RoundRectShape;->onResize(FF)V
+HPLandroid/graphics/drawable/shapes/Shape;->resize(FF)V
+HSPLandroid/graphics/fonts/Font$Builder;-><init>(Landroid/content/res/AssetManager;Ljava/lang/String;ZI)V
+HSPLandroid/graphics/fonts/Font$Builder;-><init>(Landroid/content/res/Resources;I)V
+HSPLandroid/graphics/fonts/Font$Builder;-><init>(Landroid/os/ParcelFileDescriptor;)V
+HSPLandroid/graphics/fonts/Font$Builder;-><init>(Landroid/os/ParcelFileDescriptor;JJ)V
HSPLandroid/graphics/fonts/Font$Builder;-><init>(Ljava/nio/ByteBuffer;)V
HSPLandroid/graphics/fonts/Font$Builder;->build()Landroid/graphics/fonts/Font;
+HSPLandroid/graphics/fonts/Font$Builder;->setSlant(I)Landroid/graphics/fonts/Font$Builder;
+HSPLandroid/graphics/fonts/Font$Builder;->setTtcIndex(I)Landroid/graphics/fonts/Font$Builder;
HSPLandroid/graphics/fonts/Font$Builder;->setWeight(I)Landroid/graphics/fonts/Font$Builder;
HSPLandroid/graphics/fonts/Font;-><init>(JLjava/nio/ByteBuffer;Ljava/io/File;Landroid/graphics/fonts/FontStyle;I[Landroid/graphics/fonts/FontVariationAxis;Ljava/lang/String;)V
HSPLandroid/graphics/fonts/FontFamily$Builder;-><init>(Landroid/graphics/fonts/Font;)V
+HSPLandroid/graphics/fonts/FontFamily$Builder;->addFont(Landroid/graphics/fonts/Font;)Landroid/graphics/fonts/FontFamily$Builder;
+HSPLandroid/graphics/fonts/FontFamily$Builder;->build()Landroid/graphics/fonts/FontFamily;
HSPLandroid/graphics/fonts/FontFamily$Builder;->build(Ljava/lang/String;IZ)Landroid/graphics/fonts/FontFamily;
+HSPLandroid/graphics/fonts/FontFileUtil;->analyzeStyle(Ljava/nio/ByteBuffer;I[Landroid/graphics/fonts/FontVariationAxis;)I
+HSPLandroid/graphics/fonts/FontFileUtil;->pack(IZ)I
HSPLandroid/graphics/fonts/FontStyle;-><init>(II)V
HSPLandroid/graphics/fonts/FontVariationAxis;->fromFontVariationSettings(Ljava/lang/String;)[Landroid/graphics/fonts/FontVariationAxis;
HSPLandroid/graphics/text/LineBreaker$Builder;-><init>()V
HSPLandroid/graphics/text/LineBreaker$Builder;->build()Landroid/graphics/text/LineBreaker;
+PLandroid/graphics/text/LineBreaker$Builder;->setBreakStrategy(I)Landroid/graphics/text/LineBreaker$Builder;
+PLandroid/graphics/text/LineBreaker$Builder;->setHyphenationFrequency(I)Landroid/graphics/text/LineBreaker$Builder;
+PLandroid/graphics/text/LineBreaker$Builder;->setIndents([I)Landroid/graphics/text/LineBreaker$Builder;
+PLandroid/graphics/text/LineBreaker$Builder;->setJustificationMode(I)Landroid/graphics/text/LineBreaker$Builder;
HSPLandroid/graphics/text/LineBreaker$ParagraphConstraints;-><init>()V
+PLandroid/graphics/text/LineBreaker$ParagraphConstraints;->access$1000(Landroid/graphics/text/LineBreaker$ParagraphConstraints;)F
+PLandroid/graphics/text/LineBreaker$ParagraphConstraints;->access$1100(Landroid/graphics/text/LineBreaker$ParagraphConstraints;)[F
+PLandroid/graphics/text/LineBreaker$ParagraphConstraints;->access$1200(Landroid/graphics/text/LineBreaker$ParagraphConstraints;)F
+PLandroid/graphics/text/LineBreaker$ParagraphConstraints;->access$800(Landroid/graphics/text/LineBreaker$ParagraphConstraints;)F
+PLandroid/graphics/text/LineBreaker$ParagraphConstraints;->access$900(Landroid/graphics/text/LineBreaker$ParagraphConstraints;)I
+PLandroid/graphics/text/LineBreaker$ParagraphConstraints;->setIndent(FI)V
+PLandroid/graphics/text/LineBreaker$ParagraphConstraints;->setTabStops([FF)V
+PLandroid/graphics/text/LineBreaker$ParagraphConstraints;->setWidth(F)V
+PLandroid/graphics/text/LineBreaker$Result;-><init>(J)V
+PLandroid/graphics/text/LineBreaker$Result;-><init>(JLandroid/graphics/text/LineBreaker$1;)V
HSPLandroid/graphics/text/LineBreaker$Result;->getEndLineHyphenEdit(I)I
HSPLandroid/graphics/text/LineBreaker$Result;->getLineAscent(I)F
HSPLandroid/graphics/text/LineBreaker$Result;->getLineBreakOffset(I)I
@@ -4085,44 +11347,389 @@ HSPLandroid/graphics/text/LineBreaker$Result;->getLineDescent(I)F
HSPLandroid/graphics/text/LineBreaker$Result;->getLineWidth(I)F
HSPLandroid/graphics/text/LineBreaker$Result;->getStartLineHyphenEdit(I)I
HSPLandroid/graphics/text/LineBreaker$Result;->hasLineTab(I)Z
+PLandroid/graphics/text/LineBreaker;-><init>(III[I)V
+PLandroid/graphics/text/LineBreaker;-><init>(III[ILandroid/graphics/text/LineBreaker$1;)V
+PLandroid/graphics/text/LineBreaker;->access$200(J)I
+PLandroid/graphics/text/LineBreaker;->access$300(JI)I
+PLandroid/graphics/text/LineBreaker;->access$400(JI)F
+PLandroid/graphics/text/LineBreaker;->access$500(JI)F
+PLandroid/graphics/text/LineBreaker;->access$600(JI)F
+PLandroid/graphics/text/LineBreaker;->access$700(JI)I
HSPLandroid/graphics/text/LineBreaker;->computeLineBreaks(Landroid/graphics/text/MeasuredText;Landroid/graphics/text/LineBreaker$ParagraphConstraints;I)Landroid/graphics/text/LineBreaker$Result;
+PLandroid/graphics/text/MeasuredText$Builder;-><init>([C)V
+HPLandroid/graphics/text/MeasuredText$Builder;->appendReplacementRun(Landroid/graphics/Paint;IF)Landroid/graphics/text/MeasuredText$Builder;
HSPLandroid/graphics/text/MeasuredText$Builder;->appendStyleRun(Landroid/graphics/Paint;IZ)Landroid/graphics/text/MeasuredText$Builder;
HSPLandroid/graphics/text/MeasuredText$Builder;->build()Landroid/graphics/text/MeasuredText;
+PLandroid/graphics/text/MeasuredText$Builder;->ensureNativePtrNoReuse()V
+PLandroid/graphics/text/MeasuredText$Builder;->setComputeHyphenation(Z)Landroid/graphics/text/MeasuredText$Builder;
+PLandroid/graphics/text/MeasuredText$Builder;->setComputeLayout(Z)Landroid/graphics/text/MeasuredText$Builder;
+PLandroid/graphics/text/MeasuredText;-><init>(J[CZZ)V
+PLandroid/graphics/text/MeasuredText;-><init>(J[CZZLandroid/graphics/text/MeasuredText$1;)V
+HPLandroid/graphics/text/MeasuredText;->getCharWidthAt(I)F
HSPLandroid/graphics/text/MeasuredText;->getChars()[C
HSPLandroid/graphics/text/MeasuredText;->getNativePtr()J
-HSPLandroid/hardware/ICameraService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HSPLandroid/hardware/ICameraService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICameraService;
+PLandroid/gsi/IGsiService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/gsi/IGsiService$Stub$Proxy;->isGsiRunning()Z
+PLandroid/gsi/IGsiService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/gsi/IGsiService;
+PLandroid/gsi/IGsid$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/gsi/IGsid$Stub$Proxy;->getClient()Landroid/gsi/IGsiService;
+PLandroid/gsi/IGsid$Stub;->asInterface(Landroid/os/IBinder;)Landroid/gsi/IGsid;
+HSPLandroid/hardware/Camera$CameraInfo;-><init>()V
+HSPLandroid/hardware/Camera;->getCameraInfo(ILandroid/hardware/Camera$CameraInfo;)V
+HSPLandroid/hardware/CameraStatus$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/CameraStatus;
+HSPLandroid/hardware/CameraStatus$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/CameraStatus$1;->newArray(I)[Landroid/hardware/CameraStatus;
+HSPLandroid/hardware/CameraStatus$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/GeomagneticField$LegendreTable;-><init>(IF)V
+PLandroid/hardware/GeomagneticField;-><init>(FFFJ)V
+PLandroid/hardware/GeomagneticField;->computeGeocentricCoordinates(FFF)V
+PLandroid/hardware/GeomagneticField;->getDeclination()F
+HPLandroid/hardware/GeomagneticField;->getFieldStrength()F
+HPLandroid/hardware/GeomagneticField;->getHorizontalStrength()F
+HPLandroid/hardware/GeomagneticField;->getInclination()F
+PLandroid/hardware/GeomagneticField;->getX()F
+PLandroid/hardware/GeomagneticField;->getY()F
+PLandroid/hardware/GeomagneticField;->getZ()F
+HSPLandroid/hardware/HardwareBuffer;-><init>(J)V
+HSPLandroid/hardware/HardwareBuffer;->close()V
+HSPLandroid/hardware/HardwareBuffer;->createFromGraphicBuffer(Landroid/graphics/GraphicBuffer;)Landroid/hardware/HardwareBuffer;
+HSPLandroid/hardware/HardwareBuffer;->finalize()V
+PLandroid/hardware/HardwareBuffer;->getFormat()I
+PLandroid/hardware/HardwareBuffer;->getUsage()J
+HSPLandroid/hardware/HardwareBuffer;->isClosed()Z
+PLandroid/hardware/ICameraService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/ICameraService$Stub$Proxy;->addListener(Landroid/hardware/ICameraServiceListener;)[Landroid/hardware/CameraStatus;
+HSPLandroid/hardware/ICameraService$Stub$Proxy;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/impl/CameraMetadataNative;
+HSPLandroid/hardware/ICameraService$Stub$Proxy;->isHiddenPhysicalCamera(Ljava/lang/String;)Z
+PLandroid/hardware/ICameraService$Stub$Proxy;->notifySystemEvent(I[I)V
+HSPLandroid/hardware/ICameraService$Stub$Proxy;->supportsCameraApi(Ljava/lang/String;I)Z
+PLandroid/hardware/ICameraService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICameraService;
+HSPLandroid/hardware/ICameraServiceListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/ICameraServiceProxy$Stub;-><init>()V
+PLandroid/hardware/ICameraServiceProxy$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/hardware/ICameraServiceProxy$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/IConsumerIrService$Stub;-><init>()V
+PLandroid/hardware/IConsumerIrService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/ISensorPrivacyListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/ISensorPrivacyListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/ISensorPrivacyListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ISensorPrivacyListener;
+HSPLandroid/hardware/ISensorPrivacyManager$Stub;-><init>()V
+HSPLandroid/hardware/ISensorPrivacyManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/ISerialManager$Stub;-><init>()V
+PLandroid/hardware/ISerialManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/Sensor;-><init>()V
+HSPLandroid/hardware/Sensor;->getFifoMaxEventCount()I
+PLandroid/hardware/Sensor;->getFifoReservedEventCount()I
+HSPLandroid/hardware/Sensor;->getHandle()I
+HSPLandroid/hardware/Sensor;->getMaxLengthValuesArray(Landroid/hardware/Sensor;I)I
HSPLandroid/hardware/Sensor;->getMaximumRange()F
+HSPLandroid/hardware/Sensor;->getName()Ljava/lang/String;
+PLandroid/hardware/Sensor;->getPower()F
+HSPLandroid/hardware/Sensor;->getReportingMode()I
+PLandroid/hardware/Sensor;->getResolution()F
+HSPLandroid/hardware/Sensor;->getStringType()Ljava/lang/String;
HSPLandroid/hardware/Sensor;->getType()I
+HSPLandroid/hardware/Sensor;->getVendor()Ljava/lang/String;
+PLandroid/hardware/Sensor;->getVersion()I
+HSPLandroid/hardware/Sensor;->isWakeUpSensor()Z
HSPLandroid/hardware/Sensor;->setType(I)Z
HSPLandroid/hardware/Sensor;->setUuid(JJ)V
+HSPLandroid/hardware/Sensor;->toString()Ljava/lang/String;
+PLandroid/hardware/SensorAdditionalInfo;-><init>(Landroid/hardware/Sensor;II[I[F)V
+PLandroid/hardware/SensorAdditionalInfo;->createLocalGeomagneticField(FFF)Landroid/hardware/SensorAdditionalInfo;
+HSPLandroid/hardware/SensorEvent;-><init>(I)V
+HSPLandroid/hardware/SensorManager;-><init>()V
+PLandroid/hardware/SensorManager;->cancelTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z
HSPLandroid/hardware/SensorManager;->getDefaultSensor(I)Landroid/hardware/Sensor;
+HSPLandroid/hardware/SensorManager;->getDefaultSensor(IZ)Landroid/hardware/Sensor;
+HSPLandroid/hardware/SensorManager;->getDelay(I)I
HSPLandroid/hardware/SensorManager;->getSensorList(I)Ljava/util/List;
HSPLandroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;I)Z
+HSPLandroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;IILandroid/os/Handler;)Z
HSPLandroid/hardware/SensorManager;->registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;ILandroid/os/Handler;)Z
+PLandroid/hardware/SensorManager;->requestTriggerSensor(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z
+PLandroid/hardware/SensorManager;->setOperationParameter(Landroid/hardware/SensorAdditionalInfo;)Z
HSPLandroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;)V
+HPLandroid/hardware/SensorManager;->unregisterListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V
HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;-><init>(Landroid/os/Looper;Landroid/hardware/SystemSensorManager;ILjava/lang/String;)V
HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->addSensor(Landroid/hardware/Sensor;II)Z
-PLandroid/hardware/SystemSensorManager$BaseEventQueue;->finalize()V
-PLandroid/hardware/SystemSensorManager$BaseEventQueue;->removeAllSensors()Z
+PLandroid/hardware/SystemSensorManager$BaseEventQueue;->disableSensor(Landroid/hardware/Sensor;)I
+PLandroid/hardware/SystemSensorManager$BaseEventQueue;->dispose()V
+PLandroid/hardware/SystemSensorManager$BaseEventQueue;->dispose(Z)V
+HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->enableSensor(Landroid/hardware/Sensor;II)I
+HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->finalize()V
+PLandroid/hardware/SystemSensorManager$BaseEventQueue;->hasSensors()Z
+HSPLandroid/hardware/SystemSensorManager$BaseEventQueue;->removeAllSensors()Z
+PLandroid/hardware/SystemSensorManager$BaseEventQueue;->removeSensor(Landroid/hardware/Sensor;Z)Z
+HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;-><init>(Landroid/hardware/SensorEventListener;Landroid/os/Looper;Landroid/hardware/SystemSensorManager;Ljava/lang/String;)V
HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->addSensorEvent(Landroid/hardware/Sensor;)V
+HPLandroid/hardware/SystemSensorManager$SensorEventQueue;->dispatchAdditionalInfoEvent(III[F[I)V
HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->dispatchSensorEvent(I[FIJ)V
-PLandroid/hardware/SystemSensorManager$SensorEventQueue;->removeSensorEvent(Landroid/hardware/Sensor;)V
+HSPLandroid/hardware/SystemSensorManager$SensorEventQueue;->removeSensorEvent(Landroid/hardware/Sensor;)V
+PLandroid/hardware/SystemSensorManager$TriggerEventQueue;-><init>(Landroid/hardware/TriggerEventListener;Landroid/os/Looper;Landroid/hardware/SystemSensorManager;Ljava/lang/String;)V
+PLandroid/hardware/SystemSensorManager$TriggerEventQueue;->addSensorEvent(Landroid/hardware/Sensor;)V
+PLandroid/hardware/SystemSensorManager$TriggerEventQueue;->dispatchSensorEvent(I[FIJ)V
+PLandroid/hardware/SystemSensorManager$TriggerEventQueue;->removeSensorEvent(Landroid/hardware/Sensor;)V
HSPLandroid/hardware/SystemSensorManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+HSPLandroid/hardware/SystemSensorManager;->access$200(Landroid/hardware/SystemSensorManager;)J
+HSPLandroid/hardware/SystemSensorManager;->access$300(Landroid/hardware/SystemSensorManager;)Landroid/content/Context;
+HSPLandroid/hardware/SystemSensorManager;->access$400(Landroid/hardware/SystemSensorManager;)Ljava/util/HashMap;
+HSPLandroid/hardware/SystemSensorManager;->access$500(Landroid/hardware/SystemSensorManager;)I
+PLandroid/hardware/SystemSensorManager;->cancelTriggerSensorImpl(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;Z)Z
HSPLandroid/hardware/SystemSensorManager;->getFullSensorList()Ljava/util/List;
HSPLandroid/hardware/SystemSensorManager;->registerListenerImpl(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;ILandroid/os/Handler;II)Z
+PLandroid/hardware/SystemSensorManager;->requestTriggerSensorImpl(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;)Z
+PLandroid/hardware/SystemSensorManager;->setOperationParameterImpl(Landroid/hardware/SensorAdditionalInfo;)Z
HSPLandroid/hardware/SystemSensorManager;->unregisterListenerImpl(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V
-PLandroid/hardware/TriggerEventListener;-><init>()V
+PLandroid/hardware/TriggerEvent;-><init>(I)V
+HSPLandroid/hardware/TriggerEventListener;-><init>()V
+HSPLandroid/hardware/biometrics/BiometricAuthenticator$Identifier;-><init>(Ljava/lang/CharSequence;IJ)V
+HSPLandroid/hardware/biometrics/BiometricAuthenticator$Identifier;->getBiometricId()I
+HSPLandroid/hardware/biometrics/BiometricAuthenticator$Identifier;->getDeviceId()J
+HSPLandroid/hardware/biometrics/BiometricAuthenticator$Identifier;->getName()Ljava/lang/CharSequence;
+PLandroid/hardware/biometrics/BiometricManager;-><init>(Landroid/content/Context;Landroid/hardware/biometrics/IAuthService;)V
+PLandroid/hardware/biometrics/BiometricManager;->canAuthenticate()I
+PLandroid/hardware/biometrics/BiometricManager;->canAuthenticate(I)I
+PLandroid/hardware/biometrics/BiometricManager;->canAuthenticate(II)I
+PLandroid/hardware/biometrics/BiometricManager;->hasBiometrics(Landroid/content/Context;)Z
+PLandroid/hardware/biometrics/BiometricManager;->hasEnrolledBiometrics(I)Z
+PLandroid/hardware/biometrics/BiometricManager;->resetLockout([B)V
+PLandroid/hardware/biometrics/BiometricManager;->setActiveUser(I)V
+PLandroid/hardware/biometrics/BiometricSourceType$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/biometrics/BiometricSourceType;
+PLandroid/hardware/biometrics/BiometricSourceType$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/biometrics/BiometricSourceType;->valueOf(Ljava/lang/String;)Landroid/hardware/biometrics/BiometricSourceType;
+PLandroid/hardware/biometrics/BiometricSourceType;->values()[Landroid/hardware/biometrics/BiometricSourceType;
+HSPLandroid/hardware/biometrics/BiometricSourceType;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/hardware/biometrics/IAuthService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/hardware/biometrics/IAuthService$Stub$Proxy;->canAuthenticate(Ljava/lang/String;II)I
+HSPLandroid/hardware/biometrics/IAuthService$Stub;-><init>()V
+PLandroid/hardware/biometrics/IAuthService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/biometrics/IAuthService;
+PLandroid/hardware/biometrics/IAuthService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/hardware/biometrics/IAuthService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/biometrics/IBiometricAuthenticator$Stub;-><init>()V
+HSPLandroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub$Proxy;->onChanged(Landroid/hardware/biometrics/BiometricSourceType;ZI)V
+HSPLandroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;
+HSPLandroid/hardware/biometrics/IBiometricService$Stub;-><init>()V
+HSPLandroid/hardware/biometrics/IBiometricService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/biometrics/IBiometricService;
+PLandroid/hardware/biometrics/IBiometricService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub$Proxy;->onLockoutReset(JLandroid/os/IRemoteCallback;)V
+HSPLandroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;
+HPLandroid/hardware/biometrics/IBiometricServiceLockoutResetCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/biometrics/IBiometricServiceReceiverInternal$Stub;-><init>()V
+HSPLandroid/hardware/camera2/-$$Lambda$CameraManager$CameraManagerGlobal$CONvadOBAEkcHSpx8j61v67qRGM;-><init>(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/lang/String;I)V
+HSPLandroid/hardware/camera2/-$$Lambda$CameraManager$CameraManagerGlobal$CONvadOBAEkcHSpx8j61v67qRGM;->run()V
+HSPLandroid/hardware/camera2/CameraCharacteristics$Key;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
+HSPLandroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/CameraCharacteristics;->getPhysicalCameraIds()Ljava/util/Set;
+HPLandroid/hardware/camera2/CameraManager$AvailabilityCallback;->onCameraAccessPrioritiesChanged()V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal$1;->compare(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;-><clinit>()V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;-><init>()V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->connectCameraServiceLocked()V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->extractCameraIdListLocked()[Ljava/lang/String;
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraIdList()[Ljava/lang/String;
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->getCameraService()Landroid/hardware/ICameraService;
+HPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->isAvailable(I)Z
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->lambda$postSingleTorchUpdate$0(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/lang/String;I)V
+HPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->lambda$postSingleTorchUpdate$1(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/lang/String;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onCameraAccessPrioritiesChanged()V
+HPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onStatusChanged(ILjava/lang/String;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onStatusChangedLocked(ILjava/lang/String;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChanged(ILjava/lang/String;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->onTorchStatusChangedLocked(ILjava/lang/String;)V
+HPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleAccessPriorityChangeUpdate(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleTorchUpdate(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/util/concurrent/Executor;Ljava/lang/String;I)V
+HPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->postSingleUpdate(Landroid/hardware/camera2/CameraManager$AvailabilityCallback;Ljava/util/concurrent/Executor;Ljava/lang/String;I)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->registerTorchCallback(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/util/concurrent/Executor;)V
+HSPLandroid/hardware/camera2/CameraManager$CameraManagerGlobal;->updateTorchCallbackLocked(Landroid/hardware/camera2/CameraManager$TorchCallback;Ljava/util/concurrent/Executor;)V
+HSPLandroid/hardware/camera2/CameraManager$TorchCallback;-><init>()V
+HSPLandroid/hardware/camera2/CameraManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/hardware/camera2/CameraManager;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;
+HSPLandroid/hardware/camera2/CameraManager;->getCameraIdList()[Ljava/lang/String;
+HSPLandroid/hardware/camera2/CameraManager;->getDisplaySize()Landroid/util/Size;
+HSPLandroid/hardware/camera2/CameraManager;->isHiddenPhysicalCamera(Ljava/lang/String;)Z
+HSPLandroid/hardware/camera2/CameraManager;->registerTorchCallback(Landroid/hardware/camera2/CameraManager$TorchCallback;Landroid/os/Handler;)V
+HSPLandroid/hardware/camera2/CameraManager;->supportsCameraApiLocked(Ljava/lang/String;I)Z
+HSPLandroid/hardware/camera2/CaptureRequest$Key;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
+HSPLandroid/hardware/camera2/CaptureResult$Key;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
+HSPLandroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor;->execute(Ljava/lang/Runnable;)V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/camera2/impl/CameraMetadataNative;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative$Key;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative$Key;->hashCode()I
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;-><init>()V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->finalize()V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->get(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->getBase(Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->readValues(I)[B
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setCameraId(I)V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setDisplaySize(Landroid/util/Size;)V
+HSPLandroid/hardware/camera2/impl/CameraMetadataNative;->setupGlobalVendorTagDescriptor()V
+HSPLandroid/hardware/camera2/marshal/MarshalHelpers;->checkNativeType(I)I
+HSPLandroid/hardware/camera2/marshal/MarshalHelpers;->getPrimitiveTypeSize(I)I
+HSPLandroid/hardware/camera2/marshal/MarshalHelpers;->wrapClassIfPrimitive(Ljava/lang/Class;)Ljava/lang/Class;
+HSPLandroid/hardware/camera2/marshal/MarshalRegistry$MarshalToken;->equals(Ljava/lang/Object;)Z
+HSPLandroid/hardware/camera2/marshal/MarshalRegistry$MarshalToken;->hashCode()I
+HSPLandroid/hardware/camera2/marshal/MarshalRegistry;->getMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;
+HSPLandroid/hardware/camera2/marshal/Marshaler;-><init>(Landroid/hardware/camera2/marshal/MarshalQueryable;Landroid/hardware/camera2/utils/TypeReference;I)V
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableArray$MarshalerArray;-><init>(Landroid/hardware/camera2/marshal/impl/MarshalQueryableArray;Landroid/hardware/camera2/utils/TypeReference;I)V
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableArray$MarshalerArray;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableArray;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableArray;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean$MarshalerBoolean;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Boolean;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean$MarshalerBoolean;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableBoolean;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableEnum;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$MarshalerNativeByteToInteger;->getNativeSize()I
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$MarshalerNativeByteToInteger;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Integer;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger$MarshalerNativeByteToInteger;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableNativeByteToInteger;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive$MarshalerPrimitive;-><init>(Landroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive;Landroid/hardware/camera2/utils/TypeReference;I)V
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive$MarshalerPrimitive;->getNativeSize()I
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive$MarshalerPrimitive;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive$MarshalerPrimitive;->unmarshalObject(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryablePrimitive;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableRect;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableSize$MarshalerSize;-><init>(Landroid/hardware/camera2/marshal/impl/MarshalQueryableSize;Landroid/hardware/camera2/utils/TypeReference;I)V
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableSize$MarshalerSize;->unmarshal(Ljava/nio/ByteBuffer;)Landroid/util/Size;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableSize$MarshalerSize;->unmarshal(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableSize;->createMarshaler(Landroid/hardware/camera2/utils/TypeReference;I)Landroid/hardware/camera2/marshal/Marshaler;
+HSPLandroid/hardware/camera2/marshal/impl/MarshalQueryableSize;->isTypeMappingSupported(Landroid/hardware/camera2/utils/TypeReference;I)Z
+HSPLandroid/hardware/camera2/utils/ArrayUtils;->contains([II)Z
+PLandroid/hardware/camera2/utils/ArrayUtils;->contains([Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLandroid/hardware/camera2/utils/ArrayUtils;->getArrayIndex([II)I
+PLandroid/hardware/camera2/utils/ArrayUtils;->getArrayIndex([Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/hardware/camera2/utils/TypeReference$SpecializedBaseTypeReference;-><init>(Ljava/lang/reflect/Type;)V
+HSPLandroid/hardware/camera2/utils/TypeReference;-><init>(Ljava/lang/reflect/Type;)V
+HSPLandroid/hardware/camera2/utils/TypeReference;-><init>(Ljava/lang/reflect/Type;Landroid/hardware/camera2/utils/TypeReference$1;)V
+HSPLandroid/hardware/camera2/utils/TypeReference;->containsTypeVariable(Ljava/lang/reflect/Type;)Z
+HSPLandroid/hardware/camera2/utils/TypeReference;->createSpecializedTypeReference(Ljava/lang/reflect/Type;)Landroid/hardware/camera2/utils/TypeReference;
+HSPLandroid/hardware/camera2/utils/TypeReference;->equals(Ljava/lang/Object;)Z
+HSPLandroid/hardware/camera2/utils/TypeReference;->getComponentType()Landroid/hardware/camera2/utils/TypeReference;
+HSPLandroid/hardware/camera2/utils/TypeReference;->getComponentType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
+HSPLandroid/hardware/camera2/utils/TypeReference;->getRawType()Ljava/lang/Class;
+HSPLandroid/hardware/camera2/utils/TypeReference;->getRawType(Ljava/lang/reflect/Type;)Ljava/lang/Class;
+HSPLandroid/hardware/camera2/utils/TypeReference;->getType()Ljava/lang/reflect/Type;
+HSPLandroid/hardware/camera2/utils/TypeReference;->hashCode()I
+HSPLandroid/hardware/contexthub/V1_0/ContextHub;-><init>()V
+HSPLandroid/hardware/contexthub/V1_0/ContextHub;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/contexthub/V1_0/ContextHub;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+PLandroid/hardware/contexthub/V1_0/ContextHubMsg;-><init>()V
+HPLandroid/hardware/contexthub/V1_0/ContextHubMsg;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+PLandroid/hardware/contexthub/V1_0/ContextHubMsg;->readFromParcel(Landroid/os/HwParcel;)V
+HPLandroid/hardware/contexthub/V1_0/ContextHubMsg;->writeEmbeddedToBlob(Landroid/os/HwBlob;J)V
+PLandroid/hardware/contexthub/V1_0/ContextHubMsg;->writeToParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/contexthub/V1_0/HubAppInfo;-><init>()V
+HSPLandroid/hardware/contexthub/V1_0/HubAppInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/contexthub/V1_0/HubAppInfo;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+HSPLandroid/hardware/contexthub/V1_0/IContexthub$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HSPLandroid/hardware/contexthub/V1_0/IContexthub$Proxy;->getHubs()Ljava/util/ArrayList;
+HSPLandroid/hardware/contexthub/V1_0/IContexthub$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/contexthub/V1_0/IContexthub$Proxy;->queryApps(I)I
+HSPLandroid/hardware/contexthub/V1_0/IContexthub$Proxy;->registerCallback(ILandroid/hardware/contexthub/V1_0/IContexthubCallback;)I
+PLandroid/hardware/contexthub/V1_0/IContexthub$Proxy;->sendMessageToHub(ILandroid/hardware/contexthub/V1_0/ContextHubMsg;)I
+HSPLandroid/hardware/contexthub/V1_0/IContexthub;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/contexthub/V1_0/IContexthub;
+HSPLandroid/hardware/contexthub/V1_0/IContexthub;->getService(Ljava/lang/String;Z)Landroid/hardware/contexthub/V1_0/IContexthub;
+HSPLandroid/hardware/contexthub/V1_0/IContexthub;->getService(Z)Landroid/hardware/contexthub/V1_0/IContexthub;
+HSPLandroid/hardware/contexthub/V1_0/IContexthubCallback$Stub;-><init>()V
+HSPLandroid/hardware/contexthub/V1_0/IContexthubCallback$Stub;->asBinder()Landroid/os/IHwBinder;
+HSPLandroid/hardware/contexthub/V1_0/IContexthubCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
+HPLandroid/hardware/display/-$$Lambda$NightDisplayListener$sOK1HmSbMnFLzc4SdDD1WpVWJiI;->run()V
+PLandroid/hardware/display/AmbientBrightnessDayStats;-><init>(Ljava/time/LocalDate;[F)V
+HSPLandroid/hardware/display/AmbientBrightnessDayStats;-><init>(Ljava/time/LocalDate;[F[F)V
+HSPLandroid/hardware/display/AmbientBrightnessDayStats;->checkSorted([F)V
+HSPLandroid/hardware/display/AmbientBrightnessDayStats;->getBucketIndex(F)I
+HSPLandroid/hardware/display/AmbientBrightnessDayStats;->getLocalDate()Ljava/time/LocalDate;
+HSPLandroid/hardware/display/AmbientBrightnessDayStats;->log(FF)V
+PLandroid/hardware/display/AmbientBrightnessDayStats;->toString()Ljava/lang/String;
+PLandroid/hardware/display/AmbientBrightnessDayStats;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/hardware/display/AmbientDisplayConfiguration;-><init>(Landroid/content/Context;)V
HSPLandroid/hardware/display/AmbientDisplayConfiguration;->accessibilityInversionEnabled(I)Z
HSPLandroid/hardware/display/AmbientDisplayConfiguration;->alwaysOnAvailable()Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->alwaysOnAvailableForUser(I)Z
HSPLandroid/hardware/display/AmbientDisplayConfiguration;->alwaysOnEnabled(I)Z
HSPLandroid/hardware/display/AmbientDisplayConfiguration;->ambientDisplayAvailable()Z
HSPLandroid/hardware/display/AmbientDisplayConfiguration;->ambientDisplayComponent()Ljava/lang/String;
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->boolSetting(Ljava/lang/String;II)Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->boolSettingDefaultOn(Ljava/lang/String;I)Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->doubleTapSensorAvailable()Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->doubleTapSensorType()Ljava/lang/String;
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->dozePickupSensorAvailable()Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->enabled(I)Z
+HPLandroid/hardware/display/AmbientDisplayConfiguration;->getWakeLockScreenDebounce()J
+HPLandroid/hardware/display/AmbientDisplayConfiguration;->longPressSensorType()Ljava/lang/String;
HSPLandroid/hardware/display/AmbientDisplayConfiguration;->pulseOnNotificationAvailable()Z
-PLandroid/hardware/display/AmbientDisplayConfiguration;->pulseOnNotificationEnabled(I)Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->pulseOnNotificationEnabled(I)Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->tapSensorAvailable()Z
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->tapSensorType()Ljava/lang/String;
+HSPLandroid/hardware/display/AmbientDisplayConfiguration;->wakeScreenGestureAvailable()Z
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;-><init>()V
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->build()Landroid/hardware/display/BrightnessChangeEvent;
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->setBatteryLevel(F)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->setBrightness(F)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->setColorTemperature(I)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->setIsDefaultBrightnessConfig(Z)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->setLastBrightness(F)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->setLuxTimestamps([J)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->setLuxValues([F)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->setNightMode(Z)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->setPackageName(Ljava/lang/String;)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->setPowerBrightnessFactor(F)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->setTimeStamp(J)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->setUserBrightnessPoint(Z)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+HSPLandroid/hardware/display/BrightnessChangeEvent$Builder;->setUserId(I)Landroid/hardware/display/BrightnessChangeEvent$Builder;
+HSPLandroid/hardware/display/BrightnessChangeEvent;-><init>(FJLjava/lang/String;I[F[JFFZIFZZ[JJ)V
+HSPLandroid/hardware/display/BrightnessChangeEvent;-><init>(FJLjava/lang/String;I[F[JFFZIFZZ[JJLandroid/hardware/display/BrightnessChangeEvent$1;)V
+PLandroid/hardware/display/BrightnessChangeEvent;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/hardware/display/BrightnessConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/display/BrightnessConfiguration;
+PLandroid/hardware/display/BrightnessConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/display/BrightnessConfiguration$Builder;-><init>([F[F)V
+HSPLandroid/hardware/display/BrightnessConfiguration$Builder;->build()Landroid/hardware/display/BrightnessConfiguration;
+HSPLandroid/hardware/display/BrightnessConfiguration$Builder;->checkMonotonic([FZLjava/lang/String;)V
+HSPLandroid/hardware/display/BrightnessConfiguration$Builder;->setDescription(Ljava/lang/String;)Landroid/hardware/display/BrightnessConfiguration$Builder;
+HSPLandroid/hardware/display/BrightnessConfiguration$Builder;->setShouldCollectColorSamples(Z)Landroid/hardware/display/BrightnessConfiguration$Builder;
+HSPLandroid/hardware/display/BrightnessConfiguration;-><init>([F[FLjava/util/Map;Ljava/util/Map;Ljava/lang/String;Z)V
+HSPLandroid/hardware/display/BrightnessConfiguration;-><init>([F[FLjava/util/Map;Ljava/util/Map;Ljava/lang/String;ZLandroid/hardware/display/BrightnessConfiguration$1;)V
+HSPLandroid/hardware/display/BrightnessConfiguration;->equals(Ljava/lang/Object;)Z
+PLandroid/hardware/display/BrightnessConfiguration;->getCorrectionByCategory(I)Landroid/hardware/display/BrightnessCorrection;
+PLandroid/hardware/display/BrightnessConfiguration;->getCorrectionByPackageName(Ljava/lang/String;)Landroid/hardware/display/BrightnessCorrection;
+HSPLandroid/hardware/display/BrightnessConfiguration;->getCurve()Landroid/util/Pair;
+HSPLandroid/hardware/display/BrightnessConfiguration;->loadFloatFromXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)F
+HSPLandroid/hardware/display/BrightnessConfiguration;->loadFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/hardware/display/BrightnessConfiguration;
+HSPLandroid/hardware/display/BrightnessConfiguration;->shouldCollectColorSamples()Z
+PLandroid/hardware/display/BrightnessConfiguration;->toString()Ljava/lang/String;
HSPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->getInstance()Landroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;
+HPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->getNightDisplayAutoMode()I
+HPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->getNightDisplayAutoModeRaw()I
+HPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->getNightDisplayCustomEndTime()Landroid/hardware/display/Time;
+HPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->getNightDisplayCustomStartTime()Landroid/hardware/display/Time;
+HSPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->isDeviceColorManaged()Z
+HSPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->isNightDisplayActivated()Z
+HSPLandroid/hardware/display/ColorDisplayManager$ColorDisplayManagerInternal;->setSaturationLevel(I)Z
+HSPLandroid/hardware/display/ColorDisplayManager;->areAccessibilityTransformsEnabled(Landroid/content/Context;)Z
+PLandroid/hardware/display/ColorDisplayManager;->getMaximumColorTemperature(Landroid/content/Context;)I
+PLandroid/hardware/display/ColorDisplayManager;->getMinimumColorTemperature(Landroid/content/Context;)I
+HPLandroid/hardware/display/ColorDisplayManager;->getNightDisplayAutoMode()I
+HPLandroid/hardware/display/ColorDisplayManager;->getNightDisplayAutoModeRaw()I
+HPLandroid/hardware/display/ColorDisplayManager;->getNightDisplayCustomEndTime()Ljava/time/LocalTime;
+HPLandroid/hardware/display/ColorDisplayManager;->getNightDisplayCustomStartTime()Ljava/time/LocalTime;
+HSPLandroid/hardware/display/ColorDisplayManager;->isDeviceColorManaged()Z
+HSPLandroid/hardware/display/ColorDisplayManager;->isDisplayWhiteBalanceAvailable(Landroid/content/Context;)Z
+HSPLandroid/hardware/display/ColorDisplayManager;->isNightDisplayActivated()Z
HSPLandroid/hardware/display/ColorDisplayManager;->isNightDisplayAvailable(Landroid/content/Context;)Z
+HSPLandroid/hardware/display/ColorDisplayManager;->setSaturationLevel(I)Z
+HSPLandroid/hardware/display/Curve;-><init>([F[F)V
+PLandroid/hardware/display/Curve;->toString()Ljava/lang/String;
HSPLandroid/hardware/display/DisplayManager;-><init>(Landroid/content/Context;)V
HSPLandroid/hardware/display/DisplayManager;->addAllDisplaysLocked(Ljava/util/ArrayList;[I)V
HSPLandroid/hardware/display/DisplayManager;->addPresentationDisplaysLocked(Ljava/util/ArrayList;[II)V
@@ -4130,10 +11737,14 @@ HSPLandroid/hardware/display/DisplayManager;->getDisplay(I)Landroid/view/Display
HSPLandroid/hardware/display/DisplayManager;->getDisplays()[Landroid/view/Display;
HSPLandroid/hardware/display/DisplayManager;->getDisplays(Ljava/lang/String;)[Landroid/view/Display;
HSPLandroid/hardware/display/DisplayManager;->getOrCreateDisplayLocked(IZ)Landroid/view/Display;
+HSPLandroid/hardware/display/DisplayManager;->getStableDisplaySize()Landroid/graphics/Point;
+HSPLandroid/hardware/display/DisplayManager;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
HSPLandroid/hardware/display/DisplayManager;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;)V
+PLandroid/hardware/display/DisplayManager;->unregisterDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;)V
HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;-><init>(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Looper;)V
+PLandroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;->clearEvents()V
HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;->handleMessage(Landroid/os/Message;)V
-PLandroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;->sendDisplayEvent(II)V
+HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;->sendDisplayEvent(II)V
HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;-><init>(Landroid/hardware/display/DisplayManagerGlobal;)V
HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;-><init>(Landroid/hardware/display/DisplayManagerGlobal;Landroid/hardware/display/DisplayManagerGlobal$1;)V
HSPLandroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;->onDisplayEvent(II)V
@@ -4146,251 +11757,2719 @@ HSPLandroid/hardware/display/DisplayManagerGlobal;->getDisplayIds()[I
HSPLandroid/hardware/display/DisplayManagerGlobal;->getDisplayInfo(I)Landroid/view/DisplayInfo;
HSPLandroid/hardware/display/DisplayManagerGlobal;->getInstance()Landroid/hardware/display/DisplayManagerGlobal;
HSPLandroid/hardware/display/DisplayManagerGlobal;->getLooperForHandler(Landroid/os/Handler;)Landroid/os/Looper;
+HSPLandroid/hardware/display/DisplayManagerGlobal;->getRealDisplay(I)Landroid/view/Display;
+HSPLandroid/hardware/display/DisplayManagerGlobal;->getStableDisplaySize()Landroid/graphics/Point;
HSPLandroid/hardware/display/DisplayManagerGlobal;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
HSPLandroid/hardware/display/DisplayManagerGlobal;->handleDisplayEvent(II)V
HSPLandroid/hardware/display/DisplayManagerGlobal;->registerCallbackIfNeededLocked()V
HSPLandroid/hardware/display/DisplayManagerGlobal;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;)V
+HPLandroid/hardware/display/DisplayManagerGlobal;->setTemporaryBrightness(I)V
HSPLandroid/hardware/display/DisplayManagerGlobal;->unregisterDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;)V
+HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;-><init>()V
+HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;-><init>(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)V
+HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->copyFrom(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)V
+HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->equals(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)Z
+HSPLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->floatEquals(FF)Z
+PLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->isBrightOrDim()Z
+PLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->policyToString(I)Ljava/lang/String;
+PLandroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->toString()Ljava/lang/String;
+HSPLandroid/hardware/display/DisplayManagerInternal;-><init>()V
+HSPLandroid/hardware/display/DisplayViewport;-><init>()V
+HSPLandroid/hardware/display/DisplayViewport;->copyFrom(Landroid/hardware/display/DisplayViewport;)V
+HSPLandroid/hardware/display/DisplayViewport;->equals(Ljava/lang/Object;)Z
+HSPLandroid/hardware/display/DisplayViewport;->makeCopy()Landroid/hardware/display/DisplayViewport;
+PLandroid/hardware/display/DisplayViewport;->toString()Ljava/lang/String;
+PLandroid/hardware/display/DisplayViewport;->typeToString(I)Ljava/lang/String;
+HPLandroid/hardware/display/IColorDisplayManager$Stub$Proxy;->getNightDisplayAutoMode()I
+HPLandroid/hardware/display/IColorDisplayManager$Stub$Proxy;->getNightDisplayAutoModeRaw()I
+HPLandroid/hardware/display/IColorDisplayManager$Stub$Proxy;->getNightDisplayCustomEndTime()Landroid/hardware/display/Time;
+HPLandroid/hardware/display/IColorDisplayManager$Stub$Proxy;->getNightDisplayCustomStartTime()Landroid/hardware/display/Time;
+HSPLandroid/hardware/display/IColorDisplayManager$Stub$Proxy;->isDeviceColorManaged()Z
+HSPLandroid/hardware/display/IColorDisplayManager$Stub$Proxy;->isNightDisplayActivated()Z
+HSPLandroid/hardware/display/IColorDisplayManager$Stub$Proxy;->setSaturationLevel(I)Z
+HSPLandroid/hardware/display/IColorDisplayManager$Stub;-><init>()V
+PLandroid/hardware/display/IColorDisplayManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/hardware/display/IColorDisplayManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getDisplayIds()[I
HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getDisplayInfo(I)Landroid/view/DisplayInfo;
HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getPreferredWideGamutColorSpaceId()I
+HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getStableDisplaySize()Landroid/graphics/Point;
HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
HSPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->registerCallback(Landroid/hardware/display/IDisplayManagerCallback;)V
+HPLandroid/hardware/display/IDisplayManager$Stub$Proxy;->setTemporaryBrightness(I)V
+HSPLandroid/hardware/display/IDisplayManager$Stub;-><init>()V
HSPLandroid/hardware/display/IDisplayManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/display/IDisplayManager;
+PLandroid/hardware/display/IDisplayManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/hardware/display/IDisplayManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/display/IDisplayManagerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/display/IDisplayManagerCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/hardware/display/IDisplayManagerCallback$Stub$Proxy;->onDisplayEvent(II)V
HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;-><init>()V
HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/display/IDisplayManagerCallback;
HSPLandroid/hardware/display/IDisplayManagerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/hardware/display/NightDisplayListener;->lambda$setCallback$0$NightDisplayListener(Landroid/hardware/display/NightDisplayListener$Callback;)V
+HPLandroid/hardware/display/NightDisplayListener;->setCallback(Landroid/hardware/display/NightDisplayListener$Callback;)V
+HPLandroid/hardware/display/NightDisplayListener;->setCallbackInternal(Landroid/hardware/display/NightDisplayListener$Callback;)V
+HPLandroid/hardware/display/Time$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/display/Time;
+HPLandroid/hardware/display/Time$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/hardware/display/Time;-><init>(Landroid/os/Parcel;)V
+PLandroid/hardware/display/Time;-><init>(Ljava/time/LocalTime;)V
+PLandroid/hardware/display/Time;->getLocalTime()Ljava/time/LocalTime;
+PLandroid/hardware/display/Time;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/hardware/display/WifiDisplay$1;->newArray(I)[Landroid/hardware/display/WifiDisplay;
HSPLandroid/hardware/display/WifiDisplay$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/hardware/display/WifiDisplaySessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/display/WifiDisplaySessionInfo;
HSPLandroid/hardware/display/WifiDisplaySessionInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/display/WifiDisplaySessionInfo;-><init>()V
+HSPLandroid/hardware/display/WifiDisplaySessionInfo;-><init>(ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/hardware/display/WifiDisplaySessionInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/hardware/display/WifiDisplayStatus$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/display/WifiDisplayStatus;
HSPLandroid/hardware/display/WifiDisplayStatus$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/display/WifiDisplayStatus;-><init>()V
HSPLandroid/hardware/display/WifiDisplayStatus;-><init>(IIILandroid/hardware/display/WifiDisplay;[Landroid/hardware/display/WifiDisplay;Landroid/hardware/display/WifiDisplaySessionInfo;)V
-HSPLandroid/hardware/fingerprint/FingerprintManager;-><init>(Landroid/content/Context;Landroid/hardware/fingerprint/IFingerprintService;)V
-HSPLandroid/hardware/fingerprint/FingerprintManager;->isHardwareDetected()Z
-HSPLandroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->isHardwareDetected(Ljava/lang/String;)Z
-HSPLandroid/hardware/fingerprint/IFingerprintService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/fingerprint/IFingerprintService;
+HSPLandroid/hardware/display/WifiDisplayStatus;->getActiveDisplay()Landroid/hardware/display/WifiDisplay;
+HSPLandroid/hardware/display/WifiDisplayStatus;->getFeatureState()I
+PLandroid/hardware/display/WifiDisplayStatus;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/face/Face$1;-><init>()V
+HSPLandroid/hardware/face/Face;-><clinit>()V
+HSPLandroid/hardware/face/Face;-><init>(Ljava/lang/CharSequence;IJ)V
+PLandroid/hardware/face/Face;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/face/FaceManager$1;-><init>(Landroid/hardware/face/FaceManager;)V
+HSPLandroid/hardware/face/FaceManager$MyHandler;-><init>(Landroid/hardware/face/FaceManager;Landroid/content/Context;)V
+HSPLandroid/hardware/face/FaceManager$MyHandler;-><init>(Landroid/hardware/face/FaceManager;Landroid/content/Context;Landroid/hardware/face/FaceManager$1;)V
+HSPLandroid/hardware/face/FaceManager;-><init>(Landroid/content/Context;Landroid/hardware/face/IFaceService;)V
+HPLandroid/hardware/face/FaceManager;->access$000(Landroid/hardware/face/FaceManager;)Landroid/os/Handler;
+HPLandroid/hardware/face/FaceManager;->access$1000(Landroid/hardware/face/FaceManager;JII)V
+HPLandroid/hardware/face/FaceManager;->access$500(Landroid/hardware/face/FaceManager;Landroid/hardware/biometrics/CryptoObject;)V
+HPLandroid/hardware/face/FaceManager;->access$700(Landroid/hardware/face/FaceManager;JII)V
+HPLandroid/hardware/face/FaceManager;->access$800(Landroid/hardware/face/FaceManager;Landroid/hardware/face/Face;I)V
+HPLandroid/hardware/face/FaceManager;->authenticate(Landroid/hardware/biometrics/CryptoObject;Landroid/os/CancellationSignal;ILandroid/hardware/face/FaceManager$AuthenticationCallback;Landroid/os/Handler;I)V
+HPLandroid/hardware/face/FaceManager;->cancelAuthentication(Landroid/hardware/biometrics/CryptoObject;)V
+PLandroid/hardware/face/FaceManager;->generateChallenge()J
+HPLandroid/hardware/face/FaceManager;->getAcquiredString(Landroid/content/Context;II)Ljava/lang/String;
+HPLandroid/hardware/face/FaceManager;->getAuthenticatorId()J
+PLandroid/hardware/face/FaceManager;->getEnrolledFaces(I)Ljava/util/List;
+HPLandroid/hardware/face/FaceManager;->getErrorString(Landroid/content/Context;II)Ljava/lang/String;
+HSPLandroid/hardware/face/FaceManager;->hasEnrolledTemplates(I)Z
+HSPLandroid/hardware/face/FaceManager;->isHardwareDetected()Z
+PLandroid/hardware/face/FaceManager;->revokeChallenge()I
+HPLandroid/hardware/face/FaceManager;->sendAcquiredResult(JII)V
+HPLandroid/hardware/face/FaceManager;->sendAuthenticatedSucceeded(Landroid/hardware/face/Face;I)V
+HPLandroid/hardware/face/FaceManager;->sendErrorResult(JII)V
+HPLandroid/hardware/face/FaceManager;->useHandler(Landroid/os/Handler;)V
+HSPLandroid/hardware/face/IFaceService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/face/IFaceService$Stub$Proxy;->hasEnrolledFaces(ILjava/lang/String;)Z
+HSPLandroid/hardware/face/IFaceService$Stub$Proxy;->isHardwareDetected(Ljava/lang/String;)Z
+HSPLandroid/hardware/face/IFaceService$Stub;-><init>()V
+HSPLandroid/hardware/face/IFaceService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/face/IFaceService;
+PLandroid/hardware/face/IFaceService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/hardware/face/IFaceService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/hardware/face/IFaceServiceReceiver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/hardware/face/IFaceServiceReceiver$Stub$Proxy;->onAcquired(JII)V
+PLandroid/hardware/face/IFaceServiceReceiver$Stub$Proxy;->onAuthenticationFailed(J)V
+HPLandroid/hardware/face/IFaceServiceReceiver$Stub$Proxy;->onAuthenticationSucceeded(JLandroid/hardware/face/Face;I)V
+HPLandroid/hardware/face/IFaceServiceReceiver$Stub$Proxy;->onError(JII)V
+HSPLandroid/hardware/face/IFaceServiceReceiver$Stub;-><init>()V
+HPLandroid/hardware/face/IFaceServiceReceiver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/face/IFaceServiceReceiver;
+PLandroid/hardware/input/IInputDevicesChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/hardware/input/IInputDevicesChangedListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/hardware/input/IInputDevicesChangedListener$Stub$Proxy;->onInputDevicesChanged([I)V
+HSPLandroid/hardware/input/IInputDevicesChangedListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/hardware/input/IInputDevicesChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/input/IInputDevicesChangedListener;
+PLandroid/hardware/input/IInputDevicesChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->getInputDevice(I)Landroid/view/InputDevice;
+HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->getInputDeviceIds()[I
+HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->hasKeys(II[I[Z)Z
+HPLandroid/hardware/input/IInputManager$Stub$Proxy;->injectInputEvent(Landroid/view/InputEvent;I)Z
+HPLandroid/hardware/input/IInputManager$Stub$Proxy;->monitorGestureInput(Ljava/lang/String;I)Landroid/view/InputMonitor;
+HSPLandroid/hardware/input/IInputManager$Stub$Proxy;->registerInputDevicesChangedListener(Landroid/hardware/input/IInputDevicesChangedListener;)V
+HSPLandroid/hardware/input/IInputManager$Stub;-><init>()V
+HSPLandroid/hardware/input/IInputManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/input/IInputManager;
+PLandroid/hardware/input/IInputManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/hardware/input/IInputManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/hardware/input/InputDeviceIdentifier;-><init>(Ljava/lang/String;II)V
+PLandroid/hardware/input/InputDeviceIdentifier;->getDescriptor()Ljava/lang/String;
+PLandroid/hardware/input/InputDeviceIdentifier;->getProductId()I
+PLandroid/hardware/input/InputDeviceIdentifier;->getVendorId()I
+HPLandroid/hardware/input/InputManager$InputDeviceListenerDelegate;->handleMessage(Landroid/os/Message;)V
+PLandroid/hardware/input/InputManager$InputDevicesChangedListener;->onInputDevicesChanged([I)V
+HSPLandroid/hardware/input/InputManager;-><init>(Landroid/hardware/input/IInputManager;)V
+HSPLandroid/hardware/input/InputManager;->deviceHasKeys(I[I)[Z
+HSPLandroid/hardware/input/InputManager;->deviceHasKeys([I)[Z
+HSPLandroid/hardware/input/InputManager;->findInputDeviceListenerLocked(Landroid/hardware/input/InputManager$InputDeviceListener;)I
+HSPLandroid/hardware/input/InputManager;->getInputDevice(I)Landroid/view/InputDevice;
+HSPLandroid/hardware/input/InputManager;->getInputDeviceIds()[I
HSPLandroid/hardware/input/InputManager;->getInstance()Landroid/hardware/input/InputManager;
+HPLandroid/hardware/input/InputManager;->injectInputEvent(Landroid/view/InputEvent;I)Z
+HSPLandroid/hardware/input/InputManager;->isMicMuted()I
+HPLandroid/hardware/input/InputManager;->monitorGestureInput(Ljava/lang/String;I)Landroid/view/InputMonitor;
+PLandroid/hardware/input/InputManager;->onInputDevicesChanged([I)V
+HSPLandroid/hardware/input/InputManager;->populateInputDevicesLocked()V
+HSPLandroid/hardware/input/InputManager;->registerInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V
+PLandroid/hardware/input/InputManager;->setPointerIconType(I)V
+HSPLandroid/hardware/input/InputManager;->unregisterInputDeviceListener(Landroid/hardware/input/InputManager$InputDeviceListener;)V
+HSPLandroid/hardware/input/InputManagerInternal;-><init>()V
+PLandroid/hardware/input/KeyboardLayout;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/os/LocaleList;II)V
+PLandroid/hardware/input/KeyboardLayout;->getDescriptor()Ljava/lang/String;
+HSPLandroid/hardware/input/TouchCalibration;->getAffineTransform()[F
+HSPLandroid/hardware/location/-$$Lambda$ContextHubManager$3$U9x_HK_GdADIEQ3mS5mDWMNWMu8;-><init>(Landroid/hardware/location/ContextHubClientCallback;Landroid/hardware/location/ContextHubClient;Landroid/hardware/location/NanoAppMessage;)V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubManager$3$U9x_HK_GdADIEQ3mS5mDWMNWMu8;->run()V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubManager$4$sylEfC1Rx_cxuQRnKuthZXmV8KI;-><init>(Landroid/hardware/location/ContextHubManager$4;IILandroid/hardware/location/ContextHubMessage;)V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubManager$4$sylEfC1Rx_cxuQRnKuthZXmV8KI;->run()V
+PLandroid/hardware/location/-$$Lambda$ContextHubTransaction$7a5H6DrY_dOy9M3qnYHhlmDHRNQ;-><init>(Landroid/hardware/location/ContextHubTransaction;)V
+PLandroid/hardware/location/-$$Lambda$ContextHubTransaction$7a5H6DrY_dOy9M3qnYHhlmDHRNQ;->run()V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubTransaction$RNVGnle3xCUm9u68syzn6-2znnU;-><init>(Landroid/hardware/location/ContextHubTransaction;)V
+HSPLandroid/hardware/location/-$$Lambda$ContextHubTransaction$RNVGnle3xCUm9u68syzn6-2znnU;->run()V
+HSPLandroid/hardware/location/ActivityRecognitionHardware;->isSupported()Z
+HSPLandroid/hardware/location/ContextHubClient;-><init>(Landroid/hardware/location/ContextHubInfo;Z)V
+PLandroid/hardware/location/ContextHubClient;->close()V
+PLandroid/hardware/location/ContextHubClient;->finalize()V
+PLandroid/hardware/location/ContextHubClient;->getAttachedHub()Landroid/hardware/location/ContextHubInfo;
+HSPLandroid/hardware/location/ContextHubClient;->sendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;)I
+HPLandroid/hardware/location/ContextHubClient;->setClientProxy(Landroid/hardware/location/IContextHubClient;)V
+HSPLandroid/hardware/location/ContextHubClientCallback;-><init>()V
HSPLandroid/hardware/location/ContextHubInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/ContextHubInfo;
HSPLandroid/hardware/location/ContextHubInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/location/ContextHubInfo;-><init>(Landroid/hardware/contexthub/V1_0/ContextHub;)V
HSPLandroid/hardware/location/ContextHubInfo;-><init>(Landroid/os/Parcel;)V
+HSLandroid/hardware/location/ContextHubInfo;-><init>(Landroid/os/Parcel;Landroid/hardware/location/ContextHubInfo$1;)V
+HPLandroid/hardware/location/ContextHubInfo;->describeContents()I
HSPLandroid/hardware/location/ContextHubInfo;->getId()I
-HPLandroid/hardware/location/ContextHubManager$4;->onMessageReceipt(IILandroid/hardware/location/ContextHubMessage;)V
+HSPLandroid/hardware/location/ContextHubInfo;->getMaxPacketLengthBytes()I
+HPLandroid/hardware/location/ContextHubInfo;->toString()Ljava/lang/String;
+PLandroid/hardware/location/ContextHubInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/location/ContextHubManager$2;->onQueryResponse(ILjava/util/List;)V
+HSPLandroid/hardware/location/ContextHubManager$3;->lambda$onMessageFromNanoApp$0(Landroid/hardware/location/ContextHubClientCallback;Landroid/hardware/location/ContextHubClient;Landroid/hardware/location/NanoAppMessage;)V
+HSPLandroid/hardware/location/ContextHubManager$3;->onMessageFromNanoApp(Landroid/hardware/location/NanoAppMessage;)V
+HSLandroid/hardware/location/ContextHubManager$4;-><init>(Landroid/hardware/location/ContextHubManager;)V
+HSPLandroid/hardware/location/ContextHubManager$4;->lambda$onMessageReceipt$0$ContextHubManager$4(IILandroid/hardware/location/ContextHubMessage;)V
+HSPLandroid/hardware/location/ContextHubManager$4;->onMessageReceipt(IILandroid/hardware/location/ContextHubMessage;)V
+HSPLandroid/hardware/location/ContextHubManager$Callback;-><init>()V
HSPLandroid/hardware/location/ContextHubManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-PLandroid/hardware/location/ContextHubManager;->access$000(Landroid/hardware/location/ContextHubManager;)Landroid/hardware/location/ContextHubManager$Callback;
-PLandroid/hardware/location/ContextHubManager;->access$200(Landroid/hardware/location/ContextHubManager;)Landroid/hardware/location/ContextHubManager$ICallback;
+HSPLandroid/hardware/location/ContextHubManager;->access$000(Landroid/hardware/location/ContextHubManager;)Landroid/hardware/location/ContextHubManager$Callback;
+HSPLandroid/hardware/location/ContextHubManager;->access$100(Landroid/hardware/location/ContextHubManager;)Landroid/os/Handler;
+HSPLandroid/hardware/location/ContextHubManager;->access$200(Landroid/hardware/location/ContextHubManager;)Landroid/hardware/location/ContextHubManager$ICallback;
+HSPLandroid/hardware/location/ContextHubManager;->access$300(Landroid/hardware/location/ContextHubManager;IILandroid/hardware/location/ContextHubMessage;)V
+HPLandroid/hardware/location/ContextHubManager;->createClient(Landroid/hardware/location/ContextHubInfo;Landroid/app/PendingIntent;J)Landroid/hardware/location/ContextHubClient;
+PLandroid/hardware/location/ContextHubManager;->createClient(Landroid/hardware/location/ContextHubInfo;Landroid/hardware/location/ContextHubClientCallback;)Landroid/hardware/location/ContextHubClient;
+HSPLandroid/hardware/location/ContextHubManager;->createClient(Landroid/hardware/location/ContextHubInfo;Landroid/hardware/location/ContextHubClientCallback;Ljava/util/concurrent/Executor;)Landroid/hardware/location/ContextHubClient;
+HSPLandroid/hardware/location/ContextHubManager;->findNanoAppOnHub(ILandroid/hardware/location/NanoAppFilter;)[I
+HSPLandroid/hardware/location/ContextHubManager;->getContextHubHandles()[I
+HSPLandroid/hardware/location/ContextHubManager;->getContextHubInfo(I)Landroid/hardware/location/ContextHubInfo;
HSPLandroid/hardware/location/ContextHubManager;->getContextHubs()Ljava/util/List;
-PLandroid/hardware/location/ContextHubMessage$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/ContextHubMessage;
-PLandroid/hardware/location/ContextHubMessage$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/location/ContextHubManager;->getNanoAppInstanceInfo(I)Landroid/hardware/location/NanoAppInstanceInfo;
+HSPLandroid/hardware/location/ContextHubManager;->invokeOnMessageReceiptCallback(IILandroid/hardware/location/ContextHubMessage;)V
+HSPLandroid/hardware/location/ContextHubManager;->queryNanoApps(Landroid/hardware/location/ContextHubInfo;)Landroid/hardware/location/ContextHubTransaction;
+HSPLandroid/hardware/location/ContextHubManager;->registerCallback(Landroid/hardware/location/ContextHubManager$Callback;Landroid/os/Handler;)I
+HSPLandroid/hardware/location/ContextHubManager;->sendMessage(IILandroid/hardware/location/ContextHubMessage;)I
+HSPLandroid/hardware/location/ContextHubMessage$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/ContextHubMessage;
+HSPLandroid/hardware/location/ContextHubMessage$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/location/ContextHubMessage;-><init>(II[B)V
+PLandroid/hardware/location/ContextHubMessage;-><init>(Landroid/os/Parcel;)V
+PLandroid/hardware/location/ContextHubMessage;-><init>(Landroid/os/Parcel;Landroid/hardware/location/ContextHubMessage$1;)V
+HSPLandroid/hardware/location/ContextHubMessage;->getData()[B
+HSPLandroid/hardware/location/ContextHubMessage;->getMsgType()I
+HPLandroid/hardware/location/ContextHubMessage;->getVersion()I
+HSPLandroid/hardware/location/ContextHubMessage;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/location/ContextHubTransaction$Response;-><init>(ILjava/lang/Object;)V
+HSPLandroid/hardware/location/ContextHubTransaction$Response;->getContents()Ljava/lang/Object;
+HSPLandroid/hardware/location/ContextHubTransaction$Response;->getResult()I
+PLandroid/hardware/location/ContextHubTransaction;->lambda$setOnCompleteListener$0$ContextHubTransaction()V
+HSPLandroid/hardware/location/ContextHubTransaction;->lambda$setResponse$1$ContextHubTransaction()V
+HSPLandroid/hardware/location/ContextHubTransaction;->setOnCompleteListener(Landroid/hardware/location/ContextHubTransaction$OnCompleteListener;Ljava/util/concurrent/Executor;)V
+HSPLandroid/hardware/location/ContextHubTransaction;->setResponse(Landroid/hardware/location/ContextHubTransaction$Response;)V
+HPLandroid/hardware/location/ContextHubTransaction;->waitForResponse(JLjava/util/concurrent/TimeUnit;)Landroid/hardware/location/ContextHubTransaction$Response;
+HSPLandroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;-><init>(Landroid/hardware/location/GeofenceHardware;Landroid/hardware/location/GeofenceHardwareMonitorCallback;)V
+HSPLandroid/hardware/location/GeofenceHardware;-><init>(Landroid/hardware/location/IGeofenceHardware;)V
+HSPLandroid/hardware/location/GeofenceHardware;->getMonitorCallbackWrapper(Landroid/hardware/location/GeofenceHardwareMonitorCallback;)Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;
+HSPLandroid/hardware/location/GeofenceHardware;->getMonitoringTypes()[I
+HSPLandroid/hardware/location/GeofenceHardware;->getStatusOfMonitoringType(I)I
+HSPLandroid/hardware/location/GeofenceHardware;->registerForMonitorStateChangeCallback(ILandroid/hardware/location/GeofenceHardwareMonitorCallback;)Z
+HSPLandroid/hardware/location/GeofenceHardwareCallback;-><init>()V
+PLandroid/hardware/location/GeofenceHardwareImpl$1;-><init>(Landroid/hardware/location/GeofenceHardwareImpl;)V
+PLandroid/hardware/location/GeofenceHardwareImpl$1;->handleMessage(Landroid/os/Message;)V
+PLandroid/hardware/location/GeofenceHardwareImpl$2;-><init>(Landroid/hardware/location/GeofenceHardwareImpl;)V
+PLandroid/hardware/location/GeofenceHardwareImpl$2;->handleMessage(Landroid/os/Message;)V
+PLandroid/hardware/location/GeofenceHardwareImpl$3;-><init>(Landroid/hardware/location/GeofenceHardwareImpl;)V
+PLandroid/hardware/location/GeofenceHardwareImpl$3;->handleMessage(Landroid/os/Message;)V
+PLandroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;-><init>(Landroid/hardware/location/GeofenceHardwareImpl;IIJLandroid/location/Location;II)V
+PLandroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;->access$1000(Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;)I
+PLandroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;->access$600(Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;)I
+PLandroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;->access$700(Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;)I
+PLandroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;->access$800(Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;)Landroid/location/Location;
+PLandroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;->access$900(Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;)J
+PLandroid/hardware/location/GeofenceHardwareImpl$Reaper;-><init>(Landroid/hardware/location/GeofenceHardwareImpl;Landroid/hardware/location/IGeofenceHardwareCallback;I)V
+PLandroid/hardware/location/GeofenceHardwareImpl$Reaper;-><init>(Landroid/hardware/location/GeofenceHardwareImpl;Landroid/hardware/location/IGeofenceHardwareMonitorCallback;I)V
+PLandroid/hardware/location/GeofenceHardwareImpl$Reaper;->access$300(Landroid/hardware/location/GeofenceHardwareImpl$Reaper;)Landroid/hardware/location/IGeofenceHardwareCallback;
+PLandroid/hardware/location/GeofenceHardwareImpl$Reaper;->access$400(Landroid/hardware/location/GeofenceHardwareImpl$Reaper;)Z
+PLandroid/hardware/location/GeofenceHardwareImpl$Reaper;->binderDied()V
+PLandroid/hardware/location/GeofenceHardwareImpl$Reaper;->binderEquals(Landroid/os/IInterface;Landroid/os/IInterface;)Z
+PLandroid/hardware/location/GeofenceHardwareImpl$Reaper;->equals(Ljava/lang/Object;)Z
+PLandroid/hardware/location/GeofenceHardwareImpl$Reaper;->unlinkToDeath()Z
+PLandroid/hardware/location/GeofenceHardwareImpl;-><clinit>()V
+PLandroid/hardware/location/GeofenceHardwareImpl;-><init>(Landroid/content/Context;)V
+PLandroid/hardware/location/GeofenceHardwareImpl;->access$000(Landroid/hardware/location/GeofenceHardwareImpl;)Landroid/util/SparseArray;
+PLandroid/hardware/location/GeofenceHardwareImpl;->access$100(Landroid/hardware/location/GeofenceHardwareImpl;)V
+PLandroid/hardware/location/GeofenceHardwareImpl;->access$1100(Landroid/hardware/location/GeofenceHardwareImpl;)[Ljava/util/ArrayList;
+PLandroid/hardware/location/GeofenceHardwareImpl;->access$1300(Landroid/hardware/location/GeofenceHardwareImpl;)Landroid/os/Handler;
+PLandroid/hardware/location/GeofenceHardwareImpl;->access$1400(Landroid/hardware/location/GeofenceHardwareImpl;)Landroid/os/Handler;
+PLandroid/hardware/location/GeofenceHardwareImpl;->access$200(Landroid/hardware/location/GeofenceHardwareImpl;)Ljava/util/ArrayList;
+PLandroid/hardware/location/GeofenceHardwareImpl;->access$500()Z
+PLandroid/hardware/location/GeofenceHardwareImpl;->acquireWakeLock()V
+PLandroid/hardware/location/GeofenceHardwareImpl;->addCircularFence(ILandroid/hardware/location/GeofenceHardwareRequestParcelable;Landroid/hardware/location/IGeofenceHardwareCallback;)Z
+PLandroid/hardware/location/GeofenceHardwareImpl;->getAllowedResolutionLevel(II)I
+PLandroid/hardware/location/GeofenceHardwareImpl;->getInstance(Landroid/content/Context;)Landroid/hardware/location/GeofenceHardwareImpl;
+PLandroid/hardware/location/GeofenceHardwareImpl;->getMonitoringResolutionLevel(I)I
+PLandroid/hardware/location/GeofenceHardwareImpl;->getMonitoringTypes()[I
+PLandroid/hardware/location/GeofenceHardwareImpl;->getStatusOfMonitoringType(I)I
+PLandroid/hardware/location/GeofenceHardwareImpl;->registerForMonitorStateChangeCallback(ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
+PLandroid/hardware/location/GeofenceHardwareImpl;->releaseWakeLock()V
+PLandroid/hardware/location/GeofenceHardwareImpl;->removeGeofence(II)Z
+PLandroid/hardware/location/GeofenceHardwareImpl;->reportGeofenceAddStatus(II)V
+PLandroid/hardware/location/GeofenceHardwareImpl;->reportGeofenceMonitorStatus(IILandroid/location/Location;I)V
+PLandroid/hardware/location/GeofenceHardwareImpl;->reportGeofenceOperationStatus(III)V
+PLandroid/hardware/location/GeofenceHardwareImpl;->reportGeofenceRemoveStatus(II)V
+PLandroid/hardware/location/GeofenceHardwareImpl;->reportGeofenceTransition(ILandroid/location/Location;IJII)V
+PLandroid/hardware/location/GeofenceHardwareImpl;->setGpsHardwareGeofence(Landroid/location/IGpsGeofenceHardware;)V
+PLandroid/hardware/location/GeofenceHardwareImpl;->setMonitorAvailability(II)V
+PLandroid/hardware/location/GeofenceHardwareImpl;->updateGpsHardwareAvailability()V
+HSPLandroid/hardware/location/GeofenceHardwareMonitorCallback;-><init>()V
+HPLandroid/hardware/location/GeofenceHardwareMonitorEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/GeofenceHardwareMonitorEvent;
+HPLandroid/hardware/location/GeofenceHardwareMonitorEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/location/GeofenceHardwareMonitorEvent;-><init>(IIILandroid/location/Location;)V
+HPLandroid/hardware/location/GeofenceHardwareMonitorEvent;->getLocation()Landroid/location/Location;
+HPLandroid/hardware/location/GeofenceHardwareMonitorEvent;->getMonitoringStatus()I
+PLandroid/hardware/location/GeofenceHardwareMonitorEvent;->getMonitoringType()I
+PLandroid/hardware/location/GeofenceHardwareMonitorEvent;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/hardware/location/GeofenceHardwareRequest;-><init>()V
+PLandroid/hardware/location/GeofenceHardwareRequest;->createCircularGeofence(DDD)Landroid/hardware/location/GeofenceHardwareRequest;
+PLandroid/hardware/location/GeofenceHardwareRequest;->getLastTransition()I
+PLandroid/hardware/location/GeofenceHardwareRequest;->getLatitude()D
+PLandroid/hardware/location/GeofenceHardwareRequest;->getLongitude()D
+PLandroid/hardware/location/GeofenceHardwareRequest;->getMonitorTransitions()I
+PLandroid/hardware/location/GeofenceHardwareRequest;->getNotificationResponsiveness()I
+PLandroid/hardware/location/GeofenceHardwareRequest;->getRadius()D
+HPLandroid/hardware/location/GeofenceHardwareRequest;->getSourceTechnologies()I
+HPLandroid/hardware/location/GeofenceHardwareRequest;->getType()I
+PLandroid/hardware/location/GeofenceHardwareRequest;->getUnknownTimer()I
+PLandroid/hardware/location/GeofenceHardwareRequest;->setCircularGeofence(DDD)V
+PLandroid/hardware/location/GeofenceHardwareRequest;->setLastTransition(I)V
+PLandroid/hardware/location/GeofenceHardwareRequest;->setMonitorTransitions(I)V
+PLandroid/hardware/location/GeofenceHardwareRequest;->setNotificationResponsiveness(I)V
+PLandroid/hardware/location/GeofenceHardwareRequest;->setSourceTechnologies(I)V
+PLandroid/hardware/location/GeofenceHardwareRequest;->setUnknownTimer(I)V
+PLandroid/hardware/location/GeofenceHardwareRequestParcelable$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/GeofenceHardwareRequestParcelable;
+PLandroid/hardware/location/GeofenceHardwareRequestParcelable$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/location/GeofenceHardwareRequestParcelable;-><init>(ILandroid/hardware/location/GeofenceHardwareRequest;)V
+PLandroid/hardware/location/GeofenceHardwareRequestParcelable;->getId()I
+PLandroid/hardware/location/GeofenceHardwareRequestParcelable;->getLastTransition()I
+PLandroid/hardware/location/GeofenceHardwareRequestParcelable;->getLatitude()D
+PLandroid/hardware/location/GeofenceHardwareRequestParcelable;->getLongitude()D
+PLandroid/hardware/location/GeofenceHardwareRequestParcelable;->getMonitorTransitions()I
+PLandroid/hardware/location/GeofenceHardwareRequestParcelable;->getNotificationResponsiveness()I
+PLandroid/hardware/location/GeofenceHardwareRequestParcelable;->getRadius()D
+HPLandroid/hardware/location/GeofenceHardwareRequestParcelable;->getSourceTechnologies()I
+HPLandroid/hardware/location/GeofenceHardwareRequestParcelable;->getType()I
+PLandroid/hardware/location/GeofenceHardwareRequestParcelable;->getUnknownTimer()I
+HPLandroid/hardware/location/GeofenceHardwareRequestParcelable;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/hardware/location/GeofenceHardwareService$1;-><init>(Landroid/hardware/location/GeofenceHardwareService;)V
+PLandroid/hardware/location/GeofenceHardwareService$1;->addCircularFence(ILandroid/hardware/location/GeofenceHardwareRequestParcelable;Landroid/hardware/location/IGeofenceHardwareCallback;)Z
+PLandroid/hardware/location/GeofenceHardwareService$1;->getMonitoringTypes()[I
+PLandroid/hardware/location/GeofenceHardwareService$1;->getStatusOfMonitoringType(I)I
+PLandroid/hardware/location/GeofenceHardwareService$1;->registerForMonitorStateChangeCallback(ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
+PLandroid/hardware/location/GeofenceHardwareService$1;->removeGeofence(II)Z
+PLandroid/hardware/location/GeofenceHardwareService$1;->setGpsGeofenceHardware(Landroid/location/IGpsGeofenceHardware;)V
+PLandroid/hardware/location/GeofenceHardwareService;-><init>()V
+PLandroid/hardware/location/GeofenceHardwareService;->access$000(Landroid/hardware/location/GeofenceHardwareService;)Landroid/hardware/location/GeofenceHardwareImpl;
+PLandroid/hardware/location/GeofenceHardwareService;->access$100(Landroid/hardware/location/GeofenceHardwareService;)Landroid/content/Context;
+PLandroid/hardware/location/GeofenceHardwareService;->access$200(Landroid/hardware/location/GeofenceHardwareService;III)V
+PLandroid/hardware/location/GeofenceHardwareService;->checkPermission(III)V
+PLandroid/hardware/location/GeofenceHardwareService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+PLandroid/hardware/location/GeofenceHardwareService;->onCreate()V
+HSPLandroid/hardware/location/IActivityRecognitionHardware$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IActivityRecognitionHardware;
+PLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;->onAvailabilityChanged(ZLandroid/hardware/location/IActivityRecognitionHardware;)V
+HSPLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub;-><init>()V
+PLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IActivityRecognitionHardwareClient;
+HSPLandroid/hardware/location/IActivityRecognitionHardwareClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/hardware/location/IContextHubCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/hardware/location/IContextHubCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/hardware/location/IContextHubCallback$Stub$Proxy;->onMessageReceipt(IILandroid/hardware/location/ContextHubMessage;)V
+HSLandroid/hardware/location/IContextHubCallback$Stub;-><init>()V
HSPLandroid/hardware/location/IContextHubCallback$Stub;->asBinder()Landroid/os/IBinder;
-PLandroid/hardware/location/IContextHubCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/hardware/location/IContextHubCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubCallback;
+HSPLandroid/hardware/location/IContextHubCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/hardware/location/IContextHubClient$Stub$Proxy;->close()V
+HSPLandroid/hardware/location/IContextHubClient$Stub$Proxy;->sendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;)I
+HSPLandroid/hardware/location/IContextHubClient$Stub;-><init>()V
+PLandroid/hardware/location/IContextHubClient$Stub;->asBinder()Landroid/os/IBinder;
HSPLandroid/hardware/location/IContextHubClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubClient;
+PLandroid/hardware/location/IContextHubClient$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/hardware/location/IContextHubClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/hardware/location/IContextHubClientCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/hardware/location/IContextHubClientCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/hardware/location/IContextHubClientCallback$Stub$Proxy;->onMessageFromNanoApp(Landroid/hardware/location/NanoAppMessage;)V
+HSPLandroid/hardware/location/IContextHubClientCallback$Stub;-><init>()V
HSPLandroid/hardware/location/IContextHubClientCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/hardware/location/IContextHubClientCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubClientCallback;
+HSPLandroid/hardware/location/IContextHubClientCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSLandroid/hardware/location/IContextHubService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->createClient(ILandroid/hardware/location/IContextHubClientCallback;)Landroid/hardware/location/IContextHubClient;
+HPLandroid/hardware/location/IContextHubService$Stub$Proxy;->createPendingIntentClient(ILandroid/app/PendingIntent;J)Landroid/hardware/location/IContextHubClient;
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->findNanoAppOnHub(ILandroid/hardware/location/NanoAppFilter;)[I
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->getContextHubHandles()[I
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->getContextHubInfo(I)Landroid/hardware/location/ContextHubInfo;
HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->getContextHubs()Ljava/util/List;
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->getNanoAppInstanceInfo(I)Landroid/hardware/location/NanoAppInstanceInfo;
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->queryNanoApps(ILandroid/hardware/location/IContextHubTransactionCallback;)V
HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->registerCallback(Landroid/hardware/location/IContextHubCallback;)I
+HSPLandroid/hardware/location/IContextHubService$Stub$Proxy;->sendMessage(IILandroid/hardware/location/ContextHubMessage;)I
+HSPLandroid/hardware/location/IContextHubService$Stub;-><init>()V
+HSLandroid/hardware/location/IContextHubService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubService;
+PLandroid/hardware/location/IContextHubService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/hardware/location/IContextHubService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/hardware/location/IContextHubTransactionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/hardware/location/IContextHubTransactionCallback$Stub$Proxy;->onQueryResponse(ILjava/util/List;)V
+HSPLandroid/hardware/location/IContextHubTransactionCallback$Stub;-><init>()V
+HSPLandroid/hardware/location/IContextHubTransactionCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/hardware/location/IContextHubTransactionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubTransactionCallback;
+HSPLandroid/hardware/location/IContextHubTransactionCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/hardware/location/IGeofenceHardware$Stub$Proxy;->addCircularFence(ILandroid/hardware/location/GeofenceHardwareRequestParcelable;Landroid/hardware/location/IGeofenceHardwareCallback;)Z
+HSPLandroid/hardware/location/IGeofenceHardware$Stub$Proxy;->getMonitoringTypes()[I
+HSPLandroid/hardware/location/IGeofenceHardware$Stub$Proxy;->getStatusOfMonitoringType(I)I
+HSPLandroid/hardware/location/IGeofenceHardware$Stub$Proxy;->registerForMonitorStateChangeCallback(ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
+HPLandroid/hardware/location/IGeofenceHardware$Stub$Proxy;->removeGeofence(II)Z
+PLandroid/hardware/location/IGeofenceHardware$Stub;-><init>()V
+PLandroid/hardware/location/IGeofenceHardware$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/location/IGeofenceHardware$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IGeofenceHardware;
+PLandroid/hardware/location/IGeofenceHardware$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;->onGeofenceAdd(II)V
+PLandroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;->onGeofenceRemove(II)V
+PLandroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;->onGeofenceTransition(IILandroid/location/Location;JI)V
+HPLandroid/hardware/location/IGeofenceHardwareCallback$Stub;-><init>()V
+HPLandroid/hardware/location/IGeofenceHardwareCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/hardware/location/IGeofenceHardwareCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub$Proxy;->onMonitoringSystemChange(Landroid/hardware/location/GeofenceHardwareMonitorEvent;)V
+HSPLandroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub;-><init>()V
+HSPLandroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IGeofenceHardwareMonitorCallback;
+HPLandroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/hardware/location/MemoryRegion$1;->newArray(I)[Landroid/hardware/location/MemoryRegion;
HSPLandroid/hardware/location/MemoryRegion$1;->newArray(I)[Ljava/lang/Object;
-PLandroid/hardware/location/NanoAppMessage$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/NanoAppMessage;
-PLandroid/hardware/location/NanoAppMessage$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-PLandroid/hardware/location/NanoAppMessage;-><init>(Landroid/os/Parcel;)V
-PLandroid/hardware/location/NanoAppMessage;->getMessageType()I
+PLandroid/hardware/location/NanoAppFilter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/NanoAppFilter;
+PLandroid/hardware/location/NanoAppFilter$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/location/NanoAppFilter;-><init>(JIIJ)V
+PLandroid/hardware/location/NanoAppFilter;-><init>(Landroid/os/Parcel;)V
+PLandroid/hardware/location/NanoAppFilter;-><init>(Landroid/os/Parcel;Landroid/hardware/location/NanoAppFilter$1;)V
+PLandroid/hardware/location/NanoAppFilter;->testMatch(Landroid/hardware/location/NanoAppInstanceInfo;)Z
+PLandroid/hardware/location/NanoAppFilter;->versionsMatch(III)Z
+HSPLandroid/hardware/location/NanoAppFilter;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/location/NanoAppInstanceInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/NanoAppInstanceInfo;
+HSPLandroid/hardware/location/NanoAppInstanceInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/location/NanoAppInstanceInfo;-><init>(IJII)V
+HSPLandroid/hardware/location/NanoAppInstanceInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/hardware/location/NanoAppInstanceInfo;->getAppId()J
+HSPLandroid/hardware/location/NanoAppInstanceInfo;->getAppVersion()I
+HSPLandroid/hardware/location/NanoAppInstanceInfo;->getContexthubId()I
+PLandroid/hardware/location/NanoAppInstanceInfo;->getHandle()I
+PLandroid/hardware/location/NanoAppInstanceInfo;->toString()Ljava/lang/String;
+PLandroid/hardware/location/NanoAppInstanceInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/location/NanoAppMessage$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/NanoAppMessage;
+HSPLandroid/hardware/location/NanoAppMessage$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/location/NanoAppMessage;-><init>(JI[BZ)V
+HSPLandroid/hardware/location/NanoAppMessage;-><init>(Landroid/os/Parcel;)V
+PLandroid/hardware/location/NanoAppMessage;-><init>(Landroid/os/Parcel;Landroid/hardware/location/NanoAppMessage$1;)V
+PLandroid/hardware/location/NanoAppMessage;->createMessageFromNanoApp(JI[BZ)Landroid/hardware/location/NanoAppMessage;
+HSPLandroid/hardware/location/NanoAppMessage;->createMessageToNanoApp(JI[B)Landroid/hardware/location/NanoAppMessage;
+HPLandroid/hardware/location/NanoAppMessage;->describeContents()I
+PLandroid/hardware/location/NanoAppMessage;->getMessageBody()[B
+HSPLandroid/hardware/location/NanoAppMessage;->getMessageType()I
PLandroid/hardware/location/NanoAppMessage;->getNanoAppId()J
+PLandroid/hardware/location/NanoAppMessage;->isBroadcastMessage()Z
+HPLandroid/hardware/location/NanoAppMessage;->toString()Ljava/lang/String;
+HSPLandroid/hardware/location/NanoAppMessage;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/location/NanoAppState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/location/NanoAppState;
+HSPLandroid/hardware/location/NanoAppState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/location/NanoAppState;-><init>(JIZ)V
+HSPLandroid/hardware/location/NanoAppState;->getNanoAppId()J
+PLandroid/hardware/location/NanoAppState;->getNanoAppVersion()J
+PLandroid/hardware/location/NanoAppState;->isEnabled()Z
+PLandroid/hardware/location/NanoAppState;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/hardware/radio/V1_0/ActivityStatsInfo;-><init>()V
+HPLandroid/hardware/radio/V1_0/ActivityStatsInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HPLandroid/hardware/radio/V1_0/ActivityStatsInfo;->readFromParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/radio/V1_0/CardStatus;-><init>()V
+HSPLandroid/hardware/radio/V1_0/CardStatus;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_0/CdmaSignalStrength;-><init>()V
+HSPLandroid/hardware/radio/V1_0/CdmaSignalStrength;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_0/CellIdentityGsm;-><init>()V
+HPLandroid/hardware/radio/V1_0/CellIdentityGsm;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HPLandroid/hardware/radio/V1_0/CellIdentityGsm;->toString()Ljava/lang/String;
+HPLandroid/hardware/radio/V1_0/CellIdentityLte;-><init>()V
+HPLandroid/hardware/radio/V1_0/CellIdentityLte;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HPLandroid/hardware/radio/V1_0/CellIdentityLte;->toString()Ljava/lang/String;
+HSPLandroid/hardware/radio/V1_0/CellIdentityWcdma;-><init>()V
+HSPLandroid/hardware/radio/V1_0/CellIdentityWcdma;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_0/CellIdentityWcdma;->toString()Ljava/lang/String;
+HSPLandroid/hardware/radio/V1_0/CellInfoType;->toString(I)Ljava/lang/String;
+HSPLandroid/hardware/radio/V1_0/EvdoSignalStrength;-><init>()V
+HSPLandroid/hardware/radio/V1_0/EvdoSignalStrength;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_0/GsmSignalStrength;-><init>()V
+HSPLandroid/hardware/radio/V1_0/GsmSignalStrength;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_0/HardwareConfig;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+HSPLandroid/hardware/radio/V1_0/LteSignalStrength;-><init>()V
+HSPLandroid/hardware/radio/V1_0/LteSignalStrength;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_0/RadioCapability;-><init>()V
+HSPLandroid/hardware/radio/V1_0/RadioCapability;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_0/RadioCapability;->readFromParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/radio/V1_0/RadioResponseInfo;-><init>()V
+HSPLandroid/hardware/radio/V1_0/RadioResponseInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_0/RadioResponseInfo;->readFromParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/radio/V1_0/RegState;->toString(I)Ljava/lang/String;
+HSPLandroid/hardware/radio/V1_0/WcdmaSignalStrength;-><init>()V
+HSPLandroid/hardware/radio/V1_0/WcdmaSignalStrength;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_2/Call;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+HSPLandroid/hardware/radio/V1_2/CardStatus;-><init>()V
+HSPLandroid/hardware/radio/V1_2/CardStatus;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_2/CellIdentity;-><init>()V
+HSPLandroid/hardware/radio/V1_2/CellIdentity;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_2/CellIdentity;->toString()Ljava/lang/String;
+HSPLandroid/hardware/radio/V1_2/CellIdentityGsm;-><init>()V
+HPLandroid/hardware/radio/V1_2/CellIdentityGsm;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HPLandroid/hardware/radio/V1_2/CellIdentityGsm;->toString()Ljava/lang/String;
+HPLandroid/hardware/radio/V1_2/CellIdentityLte;-><init>()V
+HPLandroid/hardware/radio/V1_2/CellIdentityLte;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HPLandroid/hardware/radio/V1_2/CellIdentityLte;->toString()Ljava/lang/String;
+HSPLandroid/hardware/radio/V1_2/CellIdentityOperatorNames;-><init>()V
+HSPLandroid/hardware/radio/V1_2/CellIdentityOperatorNames;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_2/CellIdentityOperatorNames;->toString()Ljava/lang/String;
+HSPLandroid/hardware/radio/V1_2/CellIdentityWcdma;-><init>()V
+HSPLandroid/hardware/radio/V1_2/CellIdentityWcdma;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_2/CellIdentityWcdma;->toString()Ljava/lang/String;
+HSPLandroid/hardware/radio/V1_2/CellInfoGsm;-><init>()V
+HPLandroid/hardware/radio/V1_2/CellInfoGsm;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HPLandroid/hardware/radio/V1_2/CellInfoLte;-><init>()V
+HPLandroid/hardware/radio/V1_2/CellInfoLte;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_2/CellInfoWcdma;-><init>()V
+HSPLandroid/hardware/radio/V1_2/CellInfoWcdma;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_2/DataRegStateResult;-><init>()V
+HSPLandroid/hardware/radio/V1_2/DataRegStateResult;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_2/DataRegStateResult;->toString()Ljava/lang/String;
+HSPLandroid/hardware/radio/V1_2/PhysicalChannelConfig;-><init>()V
+HSPLandroid/hardware/radio/V1_2/PhysicalChannelConfig;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_2/TdscdmaSignalStrength;-><init>()V
+HSPLandroid/hardware/radio/V1_2/TdscdmaSignalStrength;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_2/VoiceRegStateResult;-><init>()V
+HSPLandroid/hardware/radio/V1_2/VoiceRegStateResult;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_2/VoiceRegStateResult;->readFromParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/radio/V1_2/VoiceRegStateResult;->toString()Ljava/lang/String;
+HSPLandroid/hardware/radio/V1_2/WcdmaSignalStrength;-><init>()V
+HSPLandroid/hardware/radio/V1_2/WcdmaSignalStrength;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_4/CardStatus;-><init>()V
+HSPLandroid/hardware/radio/V1_4/CardStatus;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_4/CardStatus;->readFromParcel(Landroid/os/HwParcel;)V
+HPLandroid/hardware/radio/V1_4/CarrierRestrictionsWithPriority;-><init>()V
+HPLandroid/hardware/radio/V1_4/CarrierRestrictionsWithPriority;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HPLandroid/hardware/radio/V1_4/CarrierRestrictionsWithPriority;->readFromParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/radio/V1_4/CellInfo;-><init>()V
+HSPLandroid/hardware/radio/V1_4/CellInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_4/CellInfo;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+HSPLandroid/hardware/radio/V1_4/DataRegStateResult$VopsInfo;-><init>()V
+HSPLandroid/hardware/radio/V1_4/DataRegStateResult$VopsInfo;->getDiscriminator()B
+HSPLandroid/hardware/radio/V1_4/DataRegStateResult$VopsInfo;->noinit()Landroid/internal/hidl/safe_union/V1_0/Monostate;
+HSPLandroid/hardware/radio/V1_4/DataRegStateResult$VopsInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_4/DataRegStateResult$VopsInfo;->toString()Ljava/lang/String;
+HSPLandroid/hardware/radio/V1_4/DataRegStateResult;-><init>()V
+HSPLandroid/hardware/radio/V1_4/DataRegStateResult;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_4/DataRegStateResult;->readFromParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/radio/V1_4/DataRegStateResult;->toString()Ljava/lang/String;
+HSPLandroid/hardware/radio/V1_4/EmergencyNumber;-><init>()V
+HSPLandroid/hardware/radio/V1_4/EmergencyNumber;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_4/EmergencyNumber;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+HSPLandroid/hardware/radio/V1_4/IRadio;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/radio/V1_4/IRadio;
+HSPLandroid/hardware/radio/V1_4/IRadio;->getService(Ljava/lang/String;Z)Landroid/hardware/radio/V1_4/IRadio;
+HSPLandroid/hardware/radio/V1_4/IRadioIndication$Stub;-><init>()V
+HSPLandroid/hardware/radio/V1_4/IRadioIndication$Stub;->asBinder()Landroid/os/IHwBinder;
+HSPLandroid/hardware/radio/V1_4/IRadioIndication$Stub;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/radio/V1_4/IRadioIndication$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
+HSPLandroid/hardware/radio/V1_4/IRadioResponse$Stub;-><init>()V
+HSPLandroid/hardware/radio/V1_4/IRadioResponse$Stub;->asBinder()Landroid/os/IHwBinder;
+HSPLandroid/hardware/radio/V1_4/IRadioResponse$Stub;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/radio/V1_4/IRadioResponse$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
+HSPLandroid/hardware/radio/V1_4/NrIndicators;-><init>()V
+HSPLandroid/hardware/radio/V1_4/NrIndicators;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_4/NrIndicators;->toString()Ljava/lang/String;
+HSPLandroid/hardware/radio/V1_4/PhysicalChannelConfig;-><init>()V
+HSPLandroid/hardware/radio/V1_4/PhysicalChannelConfig;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_4/PhysicalChannelConfig;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+HSPLandroid/hardware/radio/V1_4/SignalStrength;-><init>()V
+HSPLandroid/hardware/radio/V1_4/SignalStrength;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/radio/V1_4/SignalStrength;->readFromParcel(Landroid/os/HwParcel;)V
+PLandroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;->onKeyphraseDetected(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;)V
+HSPLandroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;-><init>()V
+HPLandroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/soundtrigger/IRecognitionStatusCallback;
+HPLandroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;
+HPLandroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel$1;->newArray(I)[Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;
+PLandroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;-><init>(II)V
+HPLandroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;->access$600(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;
+HPLandroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;
+PLandroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/hardware/soundtrigger/SoundTrigger$Keyphrase;-><init>(IILjava/lang/String;Ljava/lang/String;[I)V
+PLandroid/hardware/soundtrigger/SoundTrigger$Keyphrase;->equals(Ljava/lang/Object;)Z
+HPLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;
+HPLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;-><init>(IIZIIIZLandroid/media/AudioFormat;[B[Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;)V
+HPLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;->access$800(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;
+HPLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;->fromParcelForKeyphrase(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;
+PLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
+PLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra$1;->newArray(I)[Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
+PLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;-><init>(III[Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;)V
+PLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;->access$700(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
+PLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
+PLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;-><init>(Ljava/util/UUID;Ljava/util/UUID;[B[Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;)V
+PLandroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;->equals(Ljava/lang/Object;)Z
+HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
+HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIIIZIZIZ)V
+HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->access$000(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
+HSPLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
+PLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->toString()Ljava/lang/String;
+PLandroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;
+PLandroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;-><init>(ZZ[Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;[B)V
+PLandroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;->access$500(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;
+PLandroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;
+HPLandroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;-><init>(IIZIIIZLandroid/media/AudioFormat;[B)V
+PLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;-><init>(Ljava/util/UUID;Ljava/util/UUID;I[B)V
+HPLandroid/hardware/soundtrigger/SoundTrigger$SoundModel;->equals(Ljava/lang/Object;)Z
+PLandroid/hardware/soundtrigger/SoundTrigger;->attachModule(ILandroid/hardware/soundtrigger/SoundTrigger$StatusListener;Landroid/os/Handler;)Landroid/hardware/soundtrigger/SoundTriggerModule;
+HSPLandroid/hardware/soundtrigger/SoundTrigger;->getCurrentOpPackageName()Ljava/lang/String;
+HSPLandroid/hardware/soundtrigger/SoundTrigger;->listModules(Ljava/util/ArrayList;)I
+PLandroid/hardware/soundtrigger/SoundTriggerModule$NativeEventHandlerDelegate$1;-><init>(Landroid/hardware/soundtrigger/SoundTriggerModule$NativeEventHandlerDelegate;Landroid/os/Looper;Landroid/hardware/soundtrigger/SoundTriggerModule;Landroid/hardware/soundtrigger/SoundTrigger$StatusListener;)V
+PLandroid/hardware/soundtrigger/SoundTriggerModule$NativeEventHandlerDelegate$1;->handleMessage(Landroid/os/Message;)V
+PLandroid/hardware/soundtrigger/SoundTriggerModule$NativeEventHandlerDelegate;-><init>(Landroid/hardware/soundtrigger/SoundTriggerModule;Landroid/hardware/soundtrigger/SoundTrigger$StatusListener;Landroid/os/Handler;)V
+PLandroid/hardware/soundtrigger/SoundTriggerModule$NativeEventHandlerDelegate;->handler()Landroid/os/Handler;
+PLandroid/hardware/soundtrigger/SoundTriggerModule;-><init>(ILandroid/hardware/soundtrigger/SoundTrigger$StatusListener;Landroid/os/Handler;)V
+PLandroid/hardware/soundtrigger/SoundTriggerModule;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+HSPLandroid/hardware/thermal/V1_0/ThermalStatus;-><init>()V
+HSPLandroid/hardware/thermal/V1_0/ThermalStatus;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/thermal/V1_0/ThermalStatus;->readFromParcel(Landroid/os/HwParcel;)V
+HPLandroid/hardware/thermal/V2_0/CoolingDevice;-><init>()V
+HPLandroid/hardware/thermal/V2_0/CoolingDevice;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HPLandroid/hardware/thermal/V2_0/CoolingDevice;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+HSPLandroid/hardware/thermal/V2_0/IThermal$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HPLandroid/hardware/thermal/V2_0/IThermal$Proxy;->getCurrentCoolingDevices(ZILandroid/hardware/thermal/V2_0/IThermal$getCurrentCoolingDevicesCallback;)V
+HSPLandroid/hardware/thermal/V2_0/IThermal$Proxy;->getCurrentTemperatures(ZILandroid/hardware/thermal/V2_0/IThermal$getCurrentTemperaturesCallback;)V
+HSPLandroid/hardware/thermal/V2_0/IThermal$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/thermal/V2_0/IThermal$Proxy;->linkToDeath(Landroid/os/IHwBinder$DeathRecipient;J)Z
+HSPLandroid/hardware/thermal/V2_0/IThermal$Proxy;->registerThermalChangedCallback(Landroid/hardware/thermal/V2_0/IThermalChangedCallback;ZI)Landroid/hardware/thermal/V1_0/ThermalStatus;
+HSPLandroid/hardware/thermal/V2_0/IThermal;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/thermal/V2_0/IThermal;
+HSPLandroid/hardware/thermal/V2_0/IThermal;->getService()Landroid/hardware/thermal/V2_0/IThermal;
+HSPLandroid/hardware/thermal/V2_0/IThermal;->getService(Ljava/lang/String;)Landroid/hardware/thermal/V2_0/IThermal;
+HSPLandroid/hardware/thermal/V2_0/IThermalChangedCallback$Stub;-><init>()V
+HSPLandroid/hardware/thermal/V2_0/IThermalChangedCallback$Stub;->asBinder()Landroid/os/IHwBinder;
+PLandroid/hardware/thermal/V2_0/IThermalChangedCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
+HSPLandroid/hardware/thermal/V2_0/Temperature;-><init>()V
+HSPLandroid/hardware/thermal/V2_0/Temperature;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+PLandroid/hardware/thermal/V2_0/Temperature;->readFromParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/thermal/V2_0/Temperature;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+PLandroid/hardware/usb/AccessoryFilter;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/hardware/usb/AccessoryFilter;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+PLandroid/hardware/usb/AccessoryFilter;->read(Lorg/xmlpull/v1/XmlPullParser;)Landroid/hardware/usb/AccessoryFilter;
+PLandroid/hardware/usb/DeviceFilter;-><clinit>()V
+PLandroid/hardware/usb/DeviceFilter;-><init>(IIIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/hardware/usb/DeviceFilter;-><init>(Landroid/hardware/usb/UsbDevice;)V
+PLandroid/hardware/usb/DeviceFilter;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+PLandroid/hardware/usb/DeviceFilter;->hashCode()I
+PLandroid/hardware/usb/DeviceFilter;->matches(III)Z
+PLandroid/hardware/usb/DeviceFilter;->matches(Landroid/hardware/usb/UsbDevice;)Z
+HPLandroid/hardware/usb/DeviceFilter;->read(Lorg/xmlpull/v1/XmlPullParser;)Landroid/hardware/usb/DeviceFilter;
HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getCurrentAccessory()Landroid/hardware/usb/UsbAccessory;
+HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getCurrentFunctions()J
+HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getDeviceList(Landroid/os/Bundle;)V
+HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getPortStatus(Ljava/lang/String;)Landroid/hardware/usb/UsbPortStatus;
+HSPLandroid/hardware/usb/IUsbManager$Stub$Proxy;->getPorts()Ljava/util/List;
+HSPLandroid/hardware/usb/IUsbManager$Stub;-><init>()V
HSPLandroid/hardware/usb/IUsbManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/usb/IUsbManager;
+PLandroid/hardware/usb/IUsbManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/hardware/usb/IUsbManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/hardware/usb/IUsbSerialReader$Stub;-><init>()V
+PLandroid/hardware/usb/IUsbSerialReader$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/hardware/usb/ParcelableUsbPort$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/usb/ParcelableUsbPort;
+HSPLandroid/hardware/usb/ParcelableUsbPort$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/hardware/usb/ParcelableUsbPort;-><init>(Ljava/lang/String;IIZZ)V
+HSPLandroid/hardware/usb/ParcelableUsbPort;-><init>(Ljava/lang/String;IIZZLandroid/hardware/usb/ParcelableUsbPort$1;)V
+HSPLandroid/hardware/usb/ParcelableUsbPort;->describeContents()I
HSPLandroid/hardware/usb/ParcelableUsbPort;->getUsbPort(Landroid/hardware/usb/UsbManager;)Landroid/hardware/usb/UsbPort;
+HSPLandroid/hardware/usb/ParcelableUsbPort;->of(Landroid/hardware/usb/UsbPort;)Landroid/hardware/usb/ParcelableUsbPort;
+PLandroid/hardware/usb/ParcelableUsbPort;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/hardware/usb/UsbConfiguration$1;-><init>()V
+PLandroid/hardware/usb/UsbConfiguration;-><clinit>()V
+PLandroid/hardware/usb/UsbConfiguration;-><init>(ILjava/lang/String;II)V
+PLandroid/hardware/usb/UsbConfiguration;->getInterfaceCount()I
+PLandroid/hardware/usb/UsbConfiguration;->setInterfaces([Landroid/os/Parcelable;)V
+PLandroid/hardware/usb/UsbConfiguration;->toString()Ljava/lang/String;
+PLandroid/hardware/usb/UsbConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/hardware/usb/UsbDevice$Builder;-><init>(Ljava/lang/String;IIIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Landroid/hardware/usb/UsbConfiguration;Ljava/lang/String;ZZZZZ)V
+PLandroid/hardware/usb/UsbDevice$Builder;->build(Landroid/hardware/usb/IUsbSerialReader;)Landroid/hardware/usb/UsbDevice;
+PLandroid/hardware/usb/UsbDevice;-><init>(Ljava/lang/String;IIIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Landroid/hardware/usb/UsbConfiguration;Landroid/hardware/usb/IUsbSerialReader;ZZZZZ)V
+PLandroid/hardware/usb/UsbDevice;-><init>(Ljava/lang/String;IIIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Landroid/hardware/usb/UsbConfiguration;Landroid/hardware/usb/IUsbSerialReader;ZZZZZLandroid/hardware/usb/UsbDevice$1;)V
+PLandroid/hardware/usb/UsbDevice;->describeContents()I
+PLandroid/hardware/usb/UsbDevice;->getConfiguration(I)Landroid/hardware/usb/UsbConfiguration;
+PLandroid/hardware/usb/UsbDevice;->getConfigurationCount()I
+PLandroid/hardware/usb/UsbDevice;->getDeviceClass()I
+PLandroid/hardware/usb/UsbDevice;->getDeviceId()I
+PLandroid/hardware/usb/UsbDevice;->getDeviceId(Ljava/lang/String;)I
+PLandroid/hardware/usb/UsbDevice;->getDeviceProtocol()I
+PLandroid/hardware/usb/UsbDevice;->getDeviceSubclass()I
+PLandroid/hardware/usb/UsbDevice;->getInterfaceCount()I
+PLandroid/hardware/usb/UsbDevice;->getInterfaceList()[Landroid/hardware/usb/UsbInterface;
+PLandroid/hardware/usb/UsbDevice;->getManufacturerName()Ljava/lang/String;
+PLandroid/hardware/usb/UsbDevice;->getProductId()I
+PLandroid/hardware/usb/UsbDevice;->getProductName()Ljava/lang/String;
+PLandroid/hardware/usb/UsbDevice;->getSerialNumber()Ljava/lang/String;
+PLandroid/hardware/usb/UsbDevice;->getVendorId()I
+PLandroid/hardware/usb/UsbDevice;->toString()Ljava/lang/String;
+HPLandroid/hardware/usb/UsbDevice;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/hardware/usb/UsbManager;-><init>(Landroid/content/Context;Landroid/hardware/usb/IUsbManager;)V
+PLandroid/hardware/usb/UsbManager;->getAccessoryList()[Landroid/hardware/usb/UsbAccessory;
+HSPLandroid/hardware/usb/UsbManager;->getCurrentFunctions()J
+HSPLandroid/hardware/usb/UsbManager;->getDeviceList()Ljava/util/HashMap;
+HSPLandroid/hardware/usb/UsbManager;->getPortStatus(Landroid/hardware/usb/UsbPort;)Landroid/hardware/usb/UsbPortStatus;
+HSPLandroid/hardware/usb/UsbManager;->getPorts()Ljava/util/List;
+HSPLandroid/hardware/usb/UsbManager;->usbFunctionsFromString(Ljava/lang/String;)J
+PLandroid/hardware/usb/UsbManager;->usbFunctionsToString(J)Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPort;-><init>(Landroid/hardware/usb/UsbManager;Ljava/lang/String;IIZZ)V
+HSPLandroid/hardware/usb/UsbPort;->checkRoles(II)V
+HSPLandroid/hardware/usb/UsbPort;->combineRolesAsBit(II)I
+PLandroid/hardware/usb/UsbPort;->contaminantPresenceStatusToString(I)Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPort;->dataRoleToString(I)Ljava/lang/String;
HSPLandroid/hardware/usb/UsbPort;->getId()Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPort;->getStatus()Landroid/hardware/usb/UsbPortStatus;
+HSPLandroid/hardware/usb/UsbPort;->getSupportedContaminantProtectionModes()I
+HSPLandroid/hardware/usb/UsbPort;->getSupportedModes()I
+PLandroid/hardware/usb/UsbPort;->isModeSupported(I)Z
+HSPLandroid/hardware/usb/UsbPort;->modeToString(I)Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPort;->powerRoleToString(I)Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPort;->roleCombinationsToString(I)Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPort;->supportsEnableContaminantPresenceDetection()Z
+HSPLandroid/hardware/usb/UsbPort;->supportsEnableContaminantPresenceProtection()Z
+HSPLandroid/hardware/usb/UsbPort;->toString()Ljava/lang/String;
+HSPLandroid/hardware/usb/UsbPortStatus$1;->createFromParcel(Landroid/os/Parcel;)Landroid/hardware/usb/UsbPortStatus;
+HSPLandroid/hardware/usb/UsbPortStatus$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/hardware/usb/UsbPortStatus;-><init>(IIIIII)V
+HSPLandroid/hardware/usb/UsbPortStatus;->describeContents()I
+HSPLandroid/hardware/usb/UsbPortStatus;->getContaminantDetectionStatus()I
+HSPLandroid/hardware/usb/UsbPortStatus;->getContaminantProtectionStatus()I
+PLandroid/hardware/usb/UsbPortStatus;->getCurrentDataRole()I
+PLandroid/hardware/usb/UsbPortStatus;->getCurrentMode()I
+PLandroid/hardware/usb/UsbPortStatus;->getCurrentPowerRole()I
+PLandroid/hardware/usb/UsbPortStatus;->getSupportedRoleCombinations()I
HSPLandroid/hardware/usb/UsbPortStatus;->isConnected()Z
-PLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$OaIkiu4R0h4pgFbCDDlNkbmPaps;-><init>(Landroid/location/LocationManager$LocationListenerTransport;Ljava/util/concurrent/Executor;Landroid/location/Location;)V
-PLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$OaIkiu4R0h4pgFbCDDlNkbmPaps;->run()V
+PLandroid/hardware/usb/UsbPortStatus;->isRoleCombinationSupported(II)Z
+HSPLandroid/hardware/usb/UsbPortStatus;->toString()Ljava/lang/String;
+PLandroid/hardware/usb/UsbPortStatus;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget$Proxy;->getCurrentUsbFunctions(Landroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback;)V
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget$Proxy;->linkToDeath(Landroid/os/IHwBinder$DeathRecipient;J)Z
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/usb/gadget/V1_0/IUsbGadget;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget;->getService()Landroid/hardware/usb/gadget/V1_0/IUsbGadget;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget;->getService(Ljava/lang/String;)Landroid/hardware/usb/gadget/V1_0/IUsbGadget;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget;->getService(Ljava/lang/String;Z)Landroid/hardware/usb/gadget/V1_0/IUsbGadget;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadget;->getService(Z)Landroid/hardware/usb/gadget/V1_0/IUsbGadget;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback$Stub;-><init>()V
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback$Stub;->asBinder()Landroid/os/IHwBinder;
+HSPLandroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
+HPLandroid/inputmethodservice/-$$Lambda$InputMethodService$8T9TmAUIN7vW9eU6kTg8309_d4E;->onComputeInternalInsets(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
+HSPLandroid/inputmethodservice/-$$Lambda$InputMethodService$DHO7VgzZzl-Gpo6FN3F8arQtA4A;-><clinit>()V
+HSPLandroid/inputmethodservice/-$$Lambda$InputMethodService$DHO7VgzZzl-Gpo6FN3F8arQtA4A;-><init>()V
+HPLandroid/inputmethodservice/-$$Lambda$InputMethodService$DHO7VgzZzl-Gpo6FN3F8arQtA4A;->onApplyWindowInsets(Landroid/view/View;Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
+HPLandroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl;-><init>(Landroid/inputmethodservice/AbstractInputMethodService;)V
+HSPLandroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl;->createSession(Landroid/view/inputmethod/InputMethod$SessionCallback;)V
+HSPLandroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl;->setSessionEnabled(Landroid/view/inputmethod/InputMethodSession;Z)V
+HPLandroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;->dispatchKeyEvent(ILandroid/view/KeyEvent;Landroid/view/inputmethod/InputMethodSession$EventCallback;)V
+HPLandroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;->isEnabled()Z
+HSPLandroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;->setEnabled(Z)V
+HSPLandroid/inputmethodservice/AbstractInputMethodService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HPLandroid/inputmethodservice/IInputMethodSessionWrapper$ImeInputEventReceiver;->finishedEvent(IZ)V
+HPLandroid/inputmethodservice/IInputMethodSessionWrapper$ImeInputEventReceiver;->onInputEvent(Landroid/view/InputEvent;)V
+HPLandroid/inputmethodservice/IInputMethodSessionWrapper;->displayCompletions([Landroid/view/inputmethod/CompletionInfo;)V
+HPLandroid/inputmethodservice/IInputMethodSessionWrapper;->executeMessage(Landroid/os/Message;)V
+HPLandroid/inputmethodservice/IInputMethodSessionWrapper;->finishSession()V
+HSPLandroid/inputmethodservice/IInputMethodSessionWrapper;->getInternalInputMethodSession()Landroid/view/inputmethod/InputMethodSession;
+HPLandroid/inputmethodservice/IInputMethodSessionWrapper;->updateSelection(IIIIII)V
+HPLandroid/inputmethodservice/IInputMethodSessionWrapper;->viewClicked(Z)V
+HSPLandroid/inputmethodservice/IInputMethodWrapper$InputMethodSessionCallbackWrapper;->sessionCreated(Landroid/view/inputmethod/InputMethodSession;)V
+HSPLandroid/inputmethodservice/IInputMethodWrapper;-><init>(Landroid/inputmethodservice/AbstractInputMethodService;Landroid/view/inputmethod/InputMethod;)V
+HSPLandroid/inputmethodservice/IInputMethodWrapper;->bindInput(Landroid/view/inputmethod/InputBinding;)V
+HSPLandroid/inputmethodservice/IInputMethodWrapper;->createSession(Landroid/view/InputChannel;Lcom/android/internal/view/IInputSessionCallback;)V
+HSPLandroid/inputmethodservice/IInputMethodWrapper;->executeMessage(Landroid/os/Message;)V
+HPLandroid/inputmethodservice/IInputMethodWrapper;->hideSoftInput(ILandroid/os/ResultReceiver;)V
+HSPLandroid/inputmethodservice/IInputMethodWrapper;->initializeInternal(Landroid/os/IBinder;ILcom/android/internal/inputmethod/IInputMethodPrivilegedOperations;)V
+HSPLandroid/inputmethodservice/IInputMethodWrapper;->setSessionEnabled(Lcom/android/internal/view/IInputMethodSession;Z)V
+HPLandroid/inputmethodservice/IInputMethodWrapper;->showSoftInput(ILandroid/os/ResultReceiver;)V
+HSPLandroid/inputmethodservice/IInputMethodWrapper;->startInput(Landroid/os/IBinder;Lcom/android/internal/view/IInputContext;ILandroid/view/inputmethod/EditorInfo;ZZ)V
+HPLandroid/inputmethodservice/IInputMethodWrapper;->unbindInput()V
+HSPLandroid/inputmethodservice/InputMethodService$InputMethodImpl;-><init>(Landroid/inputmethodservice/InputMethodService;)V
+HSPLandroid/inputmethodservice/InputMethodService$InputMethodImpl;->attachToken(Landroid/os/IBinder;)V
+HSPLandroid/inputmethodservice/InputMethodService$InputMethodImpl;->bindInput(Landroid/view/inputmethod/InputBinding;)V
+HSPLandroid/inputmethodservice/InputMethodService$InputMethodImpl;->dispatchStartInputWithToken(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;ZLandroid/os/IBinder;Z)V
+HPLandroid/inputmethodservice/InputMethodService$InputMethodImpl;->hideSoftInput(ILandroid/os/ResultReceiver;)V
+HSPLandroid/inputmethodservice/InputMethodService$InputMethodImpl;->initializeInternal(Landroid/os/IBinder;ILcom/android/internal/inputmethod/IInputMethodPrivilegedOperations;)V
+HPLandroid/inputmethodservice/InputMethodService$InputMethodImpl;->restartInput(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V
+HPLandroid/inputmethodservice/InputMethodService$InputMethodImpl;->showSoftInput(ILandroid/os/ResultReceiver;)V
+HSPLandroid/inputmethodservice/InputMethodService$InputMethodImpl;->startInput(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V
+HPLandroid/inputmethodservice/InputMethodService$InputMethodImpl;->unbindInput()V
+HSPLandroid/inputmethodservice/InputMethodService$InputMethodImpl;->updateInputMethodDisplay(I)V
+HPLandroid/inputmethodservice/InputMethodService$InputMethodSessionImpl;->displayCompletions([Landroid/view/inputmethod/CompletionInfo;)V
+HPLandroid/inputmethodservice/InputMethodService$InputMethodSessionImpl;->updateSelection(IIIIII)V
+HPLandroid/inputmethodservice/InputMethodService$InputMethodSessionImpl;->viewClicked(Z)V
+HSPLandroid/inputmethodservice/InputMethodService$SettingsObserver;->shouldShowImeWithHardKeyboard()Z
+HPLandroid/inputmethodservice/InputMethodService$SettingsObserver;->unregister()V
+HSPLandroid/inputmethodservice/InputMethodService;-><init>()V
+HPLandroid/inputmethodservice/InputMethodService;->access$000(Landroid/inputmethodservice/InputMethodService;)Lcom/android/internal/inputmethod/InputMethodPrivilegedOperations;
+HPLandroid/inputmethodservice/InputMethodService;->access$100(Landroid/inputmethodservice/InputMethodService;)V
+HPLandroid/inputmethodservice/InputMethodService;->access$200(Landroid/inputmethodservice/InputMethodService;Z)V
+HPLandroid/inputmethodservice/InputMethodService;->access$300(Landroid/inputmethodservice/InputMethodService;II)V
+HPLandroid/inputmethodservice/InputMethodService;->access$500(Landroid/inputmethodservice/InputMethodService;)V
+HPLandroid/inputmethodservice/InputMethodService;->access$600(Landroid/inputmethodservice/InputMethodService;IZ)Z
+HPLandroid/inputmethodservice/InputMethodService;->access$700(Landroid/inputmethodservice/InputMethodService;)I
+HPLandroid/inputmethodservice/InputMethodService;->applyVisibilityInInsetsConsumerIfNecessary(Z)V
+HPLandroid/inputmethodservice/InputMethodService;->dispatchOnShowInputRequested(IZ)Z
+HSPLandroid/inputmethodservice/InputMethodService;->doFinishInput()V
+HPLandroid/inputmethodservice/InputMethodService;->doHideWindow()V
+HPLandroid/inputmethodservice/InputMethodService;->doMovementKey(ILandroid/view/KeyEvent;I)Z
+HSPLandroid/inputmethodservice/InputMethodService;->doStartInput(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;Z)V
+HSPLandroid/inputmethodservice/InputMethodService;->getCandidatesHiddenVisibility()I
+HSPLandroid/inputmethodservice/InputMethodService;->getCurrentInputBinding()Landroid/view/inputmethod/InputBinding;
+HSPLandroid/inputmethodservice/InputMethodService;->getCurrentInputConnection()Landroid/view/inputmethod/InputConnection;
+HSPLandroid/inputmethodservice/InputMethodService;->getCurrentInputEditorInfo()Landroid/view/inputmethod/EditorInfo;
+HPLandroid/inputmethodservice/InputMethodService;->getExtractEditTextIfVisible()Landroid/inputmethodservice/ExtractEditText;
+HPLandroid/inputmethodservice/InputMethodService;->getWindow()Landroid/app/Dialog;
+HPLandroid/inputmethodservice/InputMethodService;->handleBack(Z)Z
+HPLandroid/inputmethodservice/InputMethodService;->hideStatusIcon()V
+HPLandroid/inputmethodservice/InputMethodService;->hideWindow()V
+HSPLandroid/inputmethodservice/InputMethodService;->initViews()V
+HSPLandroid/inputmethodservice/InputMethodService;->initialize()V
+HSPLandroid/inputmethodservice/InputMethodService;->isExtractViewShown()Z
+HPLandroid/inputmethodservice/InputMethodService;->isFullscreenMode()Z
+HPLandroid/inputmethodservice/InputMethodService;->isInputViewShown()Z
+HPLandroid/inputmethodservice/InputMethodService;->isVisibilityAppliedUsingInsetsConsumer()Z
+HPLandroid/inputmethodservice/InputMethodService;->lambda$new$0$InputMethodService(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
+HPLandroid/inputmethodservice/InputMethodService;->lambda$onCreate$2(Landroid/view/View;Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
+HPLandroid/inputmethodservice/InputMethodService;->mapToImeWindowStatus()I
+HPLandroid/inputmethodservice/InputMethodService;->notifyUserActionIfNecessary()V
+HSPLandroid/inputmethodservice/InputMethodService;->onBindInput()V
+HPLandroid/inputmethodservice/InputMethodService;->onComputeInsets(Landroid/inputmethodservice/InputMethodService$Insets;)V
+HPLandroid/inputmethodservice/InputMethodService;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HPLandroid/inputmethodservice/InputMethodService;->onConfigureWindow(Landroid/view/Window;ZZ)V
+HSPLandroid/inputmethodservice/InputMethodService;->onCreate()V
+HSPLandroid/inputmethodservice/InputMethodService;->onCreateInputMethodSessionInterface()Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;
+HPLandroid/inputmethodservice/InputMethodService;->onDestroy()V
+HPLandroid/inputmethodservice/InputMethodService;->onDisplayCompletions([Landroid/view/inputmethod/CompletionInfo;)V
+HPLandroid/inputmethodservice/InputMethodService;->onEvaluateFullscreenMode()Z
+HSPLandroid/inputmethodservice/InputMethodService;->onEvaluateInputViewShown()Z
+HSPLandroid/inputmethodservice/InputMethodService;->onInitializeInterface()V
+HPLandroid/inputmethodservice/InputMethodService;->onKeyDown(ILandroid/view/KeyEvent;)Z
+HPLandroid/inputmethodservice/InputMethodService;->onKeyUp(ILandroid/view/KeyEvent;)Z
+HPLandroid/inputmethodservice/InputMethodService;->onShowInputRequested(IZ)Z
+HSPLandroid/inputmethodservice/InputMethodService;->onStartInput(Landroid/view/inputmethod/EditorInfo;Z)V
+HPLandroid/inputmethodservice/InputMethodService;->onStartInputView(Landroid/view/inputmethod/EditorInfo;Z)V
+HPLandroid/inputmethodservice/InputMethodService;->onUnbindInput()V
+HPLandroid/inputmethodservice/InputMethodService;->onUpdateSelection(IIIIII)V
+HPLandroid/inputmethodservice/InputMethodService;->onViewClicked(Z)V
+HPLandroid/inputmethodservice/InputMethodService;->onWindowHidden()V
+HPLandroid/inputmethodservice/InputMethodService;->onWindowShown()V
+HPLandroid/inputmethodservice/InputMethodService;->prepareWindow(Z)Z
+HPLandroid/inputmethodservice/InputMethodService;->reportFullscreenMode()V
+HPLandroid/inputmethodservice/InputMethodService;->requestHideSelf(I)V
+HPLandroid/inputmethodservice/InputMethodService;->resetStateForNewConfiguration()V
+HPLandroid/inputmethodservice/InputMethodService;->setBackDisposition(I)V
+HPLandroid/inputmethodservice/InputMethodService;->setImeWindowStatus(II)V
+HSPLandroid/inputmethodservice/InputMethodService;->setInputView(Landroid/view/View;)V
+HPLandroid/inputmethodservice/InputMethodService;->showWindow(Z)V
+HPLandroid/inputmethodservice/InputMethodService;->startExtractingText(Z)V
+HPLandroid/inputmethodservice/InputMethodService;->startViews(Z)V
+HPLandroid/inputmethodservice/InputMethodService;->updateCandidatesVisibility(Z)V
+HPLandroid/inputmethodservice/InputMethodService;->updateExtractFrameVisibility()V
+HPLandroid/inputmethodservice/InputMethodService;->updateFullscreenMode()V
+HPLandroid/inputmethodservice/InputMethodService;->updateInputViewShown()V
+HSPLandroid/inputmethodservice/SoftInputWindow;-><init>(Landroid/content/Context;Ljava/lang/String;ILandroid/inputmethodservice/SoftInputWindow$Callback;Landroid/view/KeyEvent$Callback;Landroid/view/KeyEvent$DispatcherState;IIZ)V
+HPLandroid/inputmethodservice/SoftInputWindow;->dismissForDestroyIfNecessary()V
+HPLandroid/inputmethodservice/SoftInputWindow;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/inputmethodservice/SoftInputWindow;->initDockWindow()V
+HSPLandroid/inputmethodservice/SoftInputWindow;->setToken(Landroid/os/IBinder;)V
+HPLandroid/inputmethodservice/SoftInputWindow;->show()V
+HPLandroid/inputmethodservice/SoftInputWindow;->updateWindowState(I)V
+PLandroid/location/-$$Lambda$-z-Hjl12STdAybauR3BT-ftvWd0;-><clinit>()V
+PLandroid/location/-$$Lambda$-z-Hjl12STdAybauR3BT-ftvWd0;-><init>()V
+PLandroid/location/-$$Lambda$-z-Hjl12STdAybauR3BT-ftvWd0;->accept(Ljava/lang/Object;)V
+HPLandroid/location/-$$Lambda$AbstractListenerManager$Registration$TnkXgyOd99JHl00GzK6Oay_sYms;-><init>(Landroid/location/AbstractListenerManager$Registration;Ljava/util/function/Consumer;)V
+HPLandroid/location/-$$Lambda$AbstractListenerManager$Registration$TnkXgyOd99JHl00GzK6Oay_sYms;->run()V
+HPLandroid/location/-$$Lambda$GpsStatus$RTSonBp9m0T0NWA3SCfYgWf1mTo;-><init>(Landroid/location/GpsStatus;)V
+HPLandroid/location/-$$Lambda$GpsStatus$RTSonBp9m0T0NWA3SCfYgWf1mTo;->iterator()Ljava/util/Iterator;
+HPLandroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$4EPi22o4xuVnpNhFHnDvebH4TG8;-><init>(Landroid/location/GnssStatus;)V
+HPLandroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$4EPi22o4xuVnpNhFHnDvebH4TG8;->accept(Ljava/lang/Object;)V
+PLandroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$7Fi5XkeF81eL_OKPS2GJMvyc3-8;-><init>(I)V
+PLandroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$7Fi5XkeF81eL_OKPS2GJMvyc3-8;->accept(Ljava/lang/Object;)V
+HPLandroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$gYcH61KCtV_OcJJszI1TfvnrJHY;-><init>(Ljava/lang/String;J)V
+HPLandroid/location/-$$Lambda$LocationManager$GnssStatusListenerManager$GnssStatusListener$gYcH61KCtV_OcJJszI1TfvnrJHY;->accept(Ljava/lang/Object;)V
+HPLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$OaIkiu4R0h4pgFbCDDlNkbmPaps;-><init>(Landroid/location/LocationManager$LocationListenerTransport;Ljava/util/concurrent/Executor;Landroid/location/Location;)V
+HPLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$OaIkiu4R0h4pgFbCDDlNkbmPaps;->run()V
+PLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$vDJFuk-DvyNgQEXUO2Jkf2ZFeE8;-><init>(Landroid/location/LocationManager$LocationListenerTransport;Ljava/util/concurrent/Executor;Ljava/lang/String;)V
+PLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$vDJFuk-DvyNgQEXUO2Jkf2ZFeE8;->run()V
+PLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$vtBApnyHdgybRqRKlCt1NFEyfeQ;-><init>(Landroid/location/LocationManager$LocationListenerTransport;Ljava/util/concurrent/Executor;)V
+PLandroid/location/-$$Lambda$LocationManager$LocationListenerTransport$vtBApnyHdgybRqRKlCt1NFEyfeQ;->run()V
+PLandroid/location/-$$Lambda$UmbtQF279SH5h72Ftfcj_s96jsY;-><clinit>()V
+PLandroid/location/-$$Lambda$UmbtQF279SH5h72Ftfcj_s96jsY;-><init>()V
+PLandroid/location/-$$Lambda$UmbtQF279SH5h72Ftfcj_s96jsY;->accept(Ljava/lang/Object;)V
+HSPLandroid/location/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;-><clinit>()V
+HSPLandroid/location/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;-><init>()V
+HPLandroid/location/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;->execute(Ljava/lang/Runnable;)V
+HSPLandroid/location/AbstractListenerManager$Registration;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Object;)V
+HSPLandroid/location/AbstractListenerManager$Registration;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Object;Landroid/location/AbstractListenerManager$1;)V
+HSPLandroid/location/AbstractListenerManager$Registration;->access$100(Landroid/location/AbstractListenerManager$Registration;)V
+PLandroid/location/AbstractListenerManager$Registration;->access$200(Landroid/location/AbstractListenerManager$Registration;Ljava/util/function/Consumer;)V
+PLandroid/location/AbstractListenerManager$Registration;->execute(Ljava/util/function/Consumer;)V
+HPLandroid/location/AbstractListenerManager$Registration;->lambda$execute$0$AbstractListenerManager$Registration(Ljava/util/function/Consumer;)V
+HSPLandroid/location/AbstractListenerManager$Registration;->unregister()V
HSPLandroid/location/AbstractListenerManager;-><init>()V
-PLandroid/location/ILocationListener$Stub;-><init>()V
-PLandroid/location/ILocationListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/location/AbstractListenerManager;->addInternal(Ljava/lang/Object;Landroid/location/AbstractListenerManager$Registration;)Z
+HSPLandroid/location/AbstractListenerManager;->addInternal(Ljava/lang/Object;Landroid/os/Handler;)Z
+HSPLandroid/location/AbstractListenerManager;->addInternal(Ljava/lang/Object;Ljava/util/concurrent/Executor;)Z
+HSPLandroid/location/AbstractListenerManager;->addListener(Ljava/lang/Object;Landroid/os/Handler;)Z
+HPLandroid/location/AbstractListenerManager;->addListener(Ljava/lang/Object;Ljava/util/concurrent/Executor;)Z
+HPLandroid/location/AbstractListenerManager;->convertKey(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/location/AbstractListenerManager;->execute(Ljava/util/function/Consumer;)V
+HSPLandroid/location/AbstractListenerManager;->removeListener(Ljava/lang/Object;)V
+HSPLandroid/location/Country$1;->createFromParcel(Landroid/os/Parcel;)Landroid/location/Country;
+HSPLandroid/location/Country$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/location/Country;-><init>(Landroid/location/Country;)V
+PLandroid/location/Country;-><init>(Ljava/lang/String;I)V
+HSPLandroid/location/Country;-><init>(Ljava/lang/String;IJ)V
+HSPLandroid/location/Country;-><init>(Ljava/lang/String;IJLandroid/location/Country$1;)V
+PLandroid/location/Country;->equals(Ljava/lang/Object;)Z
+PLandroid/location/Country;->getCountryIso()Ljava/lang/String;
+PLandroid/location/Country;->getSource()I
+PLandroid/location/Country;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/location/CountryDetector$ListenerTransport;-><init>(Landroid/location/CountryListener;Landroid/os/Looper;)V
+HSPLandroid/location/CountryDetector;-><init>(Landroid/location/ICountryDetector;)V
+HSPLandroid/location/CountryDetector;->addCountryListener(Landroid/location/CountryListener;Landroid/os/Looper;)V
+HSPLandroid/location/CountryDetector;->detectCountry()Landroid/location/Country;
+PLandroid/location/FusedBatchOptions$SourceTechnologies;-><clinit>()V
+HPLandroid/location/GnssClock$1;->createFromParcel(Landroid/os/Parcel;)Landroid/location/GnssClock;
+HPLandroid/location/GnssClock$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/location/GnssClock;-><init>()V
+HPLandroid/location/GnssClock;->access$002(Landroid/location/GnssClock;I)I
+HPLandroid/location/GnssClock;->access$1002(Landroid/location/GnssClock;J)J
+HPLandroid/location/GnssClock;->access$102(Landroid/location/GnssClock;I)I
+HPLandroid/location/GnssClock;->access$1102(Landroid/location/GnssClock;D)D
+HPLandroid/location/GnssClock;->access$202(Landroid/location/GnssClock;J)J
+HPLandroid/location/GnssClock;->access$302(Landroid/location/GnssClock;D)D
+HPLandroid/location/GnssClock;->access$402(Landroid/location/GnssClock;J)J
+HPLandroid/location/GnssClock;->access$502(Landroid/location/GnssClock;D)D
+HPLandroid/location/GnssClock;->access$602(Landroid/location/GnssClock;D)D
+HPLandroid/location/GnssClock;->access$702(Landroid/location/GnssClock;D)D
+HPLandroid/location/GnssClock;->access$802(Landroid/location/GnssClock;D)D
+HPLandroid/location/GnssClock;->access$902(Landroid/location/GnssClock;I)I
+HPLandroid/location/GnssClock;->getBiasNanos()D
+HPLandroid/location/GnssClock;->getBiasUncertaintyNanos()D
+HPLandroid/location/GnssClock;->getDriftNanosPerSecond()D
+HPLandroid/location/GnssClock;->getDriftUncertaintyNanosPerSecond()D
+HPLandroid/location/GnssClock;->getFullBiasNanos()J
+HPLandroid/location/GnssClock;->getHardwareClockDiscontinuityCount()I
+HPLandroid/location/GnssClock;->getTimeNanos()J
+HPLandroid/location/GnssClock;->hasBiasNanos()Z
+HPLandroid/location/GnssClock;->hasBiasUncertaintyNanos()Z
+HPLandroid/location/GnssClock;->hasDriftNanosPerSecond()Z
+HPLandroid/location/GnssClock;->hasDriftUncertaintyNanosPerSecond()Z
+HPLandroid/location/GnssClock;->hasFullBiasNanos()Z
+HPLandroid/location/GnssClock;->hasLeapSecond()Z
+HPLandroid/location/GnssClock;->hasTimeUncertaintyNanos()Z
+PLandroid/location/GnssClock;->initialize()V
+HPLandroid/location/GnssClock;->isFlagSet(I)Z
+PLandroid/location/GnssClock;->resetBiasNanos()V
+PLandroid/location/GnssClock;->resetBiasUncertaintyNanos()V
+PLandroid/location/GnssClock;->resetDriftNanosPerSecond()V
+PLandroid/location/GnssClock;->resetDriftUncertaintyNanosPerSecond()V
+PLandroid/location/GnssClock;->resetElapsedRealtimeNanos()V
+PLandroid/location/GnssClock;->resetElapsedRealtimeUncertaintyNanos()V
+PLandroid/location/GnssClock;->resetFlag(I)V
+PLandroid/location/GnssClock;->resetFullBiasNanos()V
+PLandroid/location/GnssClock;->resetLeapSecond()V
+PLandroid/location/GnssClock;->resetTimeUncertaintyNanos()V
+HPLandroid/location/GnssClock;->setBiasNanos(D)V
+HPLandroid/location/GnssClock;->setBiasUncertaintyNanos(D)V
+PLandroid/location/GnssClock;->setDriftNanosPerSecond(D)V
+PLandroid/location/GnssClock;->setDriftUncertaintyNanosPerSecond(D)V
+PLandroid/location/GnssClock;->setFlag(I)V
+HPLandroid/location/GnssClock;->setFullBiasNanos(J)V
+PLandroid/location/GnssClock;->setHardwareClockDiscontinuityCount(I)V
+PLandroid/location/GnssClock;->setTimeNanos(J)V
+PLandroid/location/GnssClock;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/location/GnssMeasurement$1;->createFromParcel(Landroid/os/Parcel;)Landroid/location/GnssMeasurement;
+HPLandroid/location/GnssMeasurement$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/location/GnssMeasurement;-><init>()V
+HPLandroid/location/GnssMeasurement;->access$002(Landroid/location/GnssMeasurement;I)I
+HPLandroid/location/GnssMeasurement;->access$1002(Landroid/location/GnssMeasurement;I)I
+HPLandroid/location/GnssMeasurement;->access$102(Landroid/location/GnssMeasurement;I)I
+HPLandroid/location/GnssMeasurement;->access$1102(Landroid/location/GnssMeasurement;D)D
+HPLandroid/location/GnssMeasurement;->access$1202(Landroid/location/GnssMeasurement;D)D
+HPLandroid/location/GnssMeasurement;->access$1302(Landroid/location/GnssMeasurement;F)F
+HPLandroid/location/GnssMeasurement;->access$1402(Landroid/location/GnssMeasurement;J)J
+HPLandroid/location/GnssMeasurement;->access$1502(Landroid/location/GnssMeasurement;D)D
+HPLandroid/location/GnssMeasurement;->access$1602(Landroid/location/GnssMeasurement;D)D
+HPLandroid/location/GnssMeasurement;->access$1702(Landroid/location/GnssMeasurement;I)I
+HPLandroid/location/GnssMeasurement;->access$1802(Landroid/location/GnssMeasurement;D)D
+HPLandroid/location/GnssMeasurement;->access$1902(Landroid/location/GnssMeasurement;D)D
+HPLandroid/location/GnssMeasurement;->access$2002(Landroid/location/GnssMeasurement;Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/location/GnssMeasurement;->access$202(Landroid/location/GnssMeasurement;I)I
+HPLandroid/location/GnssMeasurement;->access$2102(Landroid/location/GnssMeasurement;D)D
+HPLandroid/location/GnssMeasurement;->access$302(Landroid/location/GnssMeasurement;D)D
+HPLandroid/location/GnssMeasurement;->access$402(Landroid/location/GnssMeasurement;I)I
+HPLandroid/location/GnssMeasurement;->access$502(Landroid/location/GnssMeasurement;J)J
+HPLandroid/location/GnssMeasurement;->access$602(Landroid/location/GnssMeasurement;J)J
+HPLandroid/location/GnssMeasurement;->access$702(Landroid/location/GnssMeasurement;D)D
+HPLandroid/location/GnssMeasurement;->access$802(Landroid/location/GnssMeasurement;D)D
+HPLandroid/location/GnssMeasurement;->access$902(Landroid/location/GnssMeasurement;D)D
+HPLandroid/location/GnssMeasurement;->getAccumulatedDeltaRangeMeters()D
+HPLandroid/location/GnssMeasurement;->getAccumulatedDeltaRangeState()I
+HPLandroid/location/GnssMeasurement;->getAccumulatedDeltaRangeUncertaintyMeters()D
+HPLandroid/location/GnssMeasurement;->getCarrierFrequencyHz()F
+HPLandroid/location/GnssMeasurement;->getCn0DbHz()D
+HPLandroid/location/GnssMeasurement;->getConstellationType()I
+HPLandroid/location/GnssMeasurement;->getMultipathIndicator()I
+HPLandroid/location/GnssMeasurement;->getPseudorangeRateMetersPerSecond()D
+HPLandroid/location/GnssMeasurement;->getPseudorangeRateUncertaintyMetersPerSecond()D
+HPLandroid/location/GnssMeasurement;->getReceivedSvTimeNanos()J
+HPLandroid/location/GnssMeasurement;->getReceivedSvTimeUncertaintyNanos()J
+HPLandroid/location/GnssMeasurement;->getState()I
+HPLandroid/location/GnssMeasurement;->getSvid()I
+HPLandroid/location/GnssMeasurement;->getTimeOffsetNanos()D
+HPLandroid/location/GnssMeasurement;->hasCarrierCycles()Z
+HPLandroid/location/GnssMeasurement;->hasCarrierFrequencyHz()Z
+HPLandroid/location/GnssMeasurement;->hasCarrierPhase()Z
+HPLandroid/location/GnssMeasurement;->hasCarrierPhaseUncertainty()Z
+HPLandroid/location/GnssMeasurement;->hasSnrInDb()Z
+HPLandroid/location/GnssMeasurement;->initialize()V
+HPLandroid/location/GnssMeasurement;->isFlagSet(I)Z
+PLandroid/location/GnssMeasurement;->resetAutomaticGainControlLevel()V
+PLandroid/location/GnssMeasurement;->resetBasebandCn0DbHz()V
+PLandroid/location/GnssMeasurement;->resetCarrierCycles()V
+PLandroid/location/GnssMeasurement;->resetCarrierFrequencyHz()V
+PLandroid/location/GnssMeasurement;->resetCarrierPhase()V
+PLandroid/location/GnssMeasurement;->resetCarrierPhaseUncertainty()V
+PLandroid/location/GnssMeasurement;->resetCodeType()V
+PLandroid/location/GnssMeasurement;->resetFlag(I)V
+PLandroid/location/GnssMeasurement;->resetSnrInDb()V
+HPLandroid/location/GnssMeasurement;->setAccumulatedDeltaRangeMeters(D)V
+HPLandroid/location/GnssMeasurement;->setAccumulatedDeltaRangeState(I)V
+HPLandroid/location/GnssMeasurement;->setAccumulatedDeltaRangeUncertaintyMeters(D)V
+HPLandroid/location/GnssMeasurement;->setAutomaticGainControlLevelInDb(D)V
+HPLandroid/location/GnssMeasurement;->setCarrierFrequencyHz(F)V
+HPLandroid/location/GnssMeasurement;->setCn0DbHz(D)V
+HPLandroid/location/GnssMeasurement;->setCodeType(Ljava/lang/String;)V
+HPLandroid/location/GnssMeasurement;->setConstellationType(I)V
+PLandroid/location/GnssMeasurement;->setFlag(I)V
+HPLandroid/location/GnssMeasurement;->setMultipathIndicator(I)V
+HPLandroid/location/GnssMeasurement;->setPseudorangeRateMetersPerSecond(D)V
+HPLandroid/location/GnssMeasurement;->setPseudorangeRateUncertaintyMetersPerSecond(D)V
+HPLandroid/location/GnssMeasurement;->setReceivedSvTimeNanos(J)V
+HPLandroid/location/GnssMeasurement;->setReceivedSvTimeUncertaintyNanos(J)V
+HPLandroid/location/GnssMeasurement;->setState(I)V
+HPLandroid/location/GnssMeasurement;->setSvid(I)V
+HPLandroid/location/GnssMeasurement;->setTimeOffsetNanos(D)V
+HPLandroid/location/GnssMeasurement;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/location/GnssMeasurementsEvent$1;-><init>()V
+HPLandroid/location/GnssMeasurementsEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/location/GnssMeasurementsEvent;
+HPLandroid/location/GnssMeasurementsEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/location/GnssMeasurementsEvent;-><clinit>()V
+PLandroid/location/GnssMeasurementsEvent;-><init>(Landroid/location/GnssClock;[Landroid/location/GnssMeasurement;)V
+HPLandroid/location/GnssMeasurementsEvent;->getClock()Landroid/location/GnssClock;
+HPLandroid/location/GnssMeasurementsEvent;->getMeasurements()Ljava/util/Collection;
+HPLandroid/location/GnssMeasurementsEvent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/location/GnssNavigationMessage$1;-><init>()V
+HSPLandroid/location/GnssNavigationMessage;-><clinit>()V
+HSPLandroid/location/GnssReflectingPlane$1;-><init>()V
+HSPLandroid/location/GnssReflectingPlane;-><clinit>()V
+HSPLandroid/location/GnssSingleSatCorrection$1;-><init>()V
+HSPLandroid/location/GnssSingleSatCorrection;-><clinit>()V
+HSPLandroid/location/GnssStatus$Callback;-><init>()V
+PLandroid/location/GnssStatus$Callback;->onFirstFix(I)V
+PLandroid/location/GnssStatus$Callback;->onStarted()V
+PLandroid/location/GnssStatus$Callback;->onStopped()V
+HPLandroid/location/GnssStatus;-><init>(I[I[F[F[F[F[F)V
+PLandroid/location/GnssStatus;->constellationTypeToString(I)Ljava/lang/String;
+PLandroid/location/GnssStatus;->getAzimuthDegrees(I)F
+PLandroid/location/GnssStatus;->getCarrierFrequencyHz(I)F
+HPLandroid/location/GnssStatus;->getCn0DbHz(I)F
+HPLandroid/location/GnssStatus;->getConstellationType(I)I
+PLandroid/location/GnssStatus;->getElevationDegrees(I)F
+HPLandroid/location/GnssStatus;->getSatelliteCount()I
+PLandroid/location/GnssStatus;->getSvid(I)I
+PLandroid/location/GnssStatus;->hasAlmanacData(I)Z
+PLandroid/location/GnssStatus;->hasCarrierFrequencyHz(I)Z
+PLandroid/location/GnssStatus;->hasEphemerisData(I)Z
+HPLandroid/location/GnssStatus;->usedInFix(I)Z
+HPLandroid/location/GnssStatus;->wrap(I[I[F[F[F[F[F)Landroid/location/GnssStatus;
+HPLandroid/location/GpsSatellite;-><init>(I)V
+PLandroid/location/GpsSatellite;->getPrn()I
+PLandroid/location/GpsSatellite;->getSnr()F
+PLandroid/location/GpsSatellite;->usedInFix()Z
+HPLandroid/location/GpsStatus$SatelliteIterator;-><init>(Landroid/location/GpsStatus;)V
+HPLandroid/location/GpsStatus$SatelliteIterator;->hasNext()Z
+HPLandroid/location/GpsStatus$SatelliteIterator;->next()Landroid/location/GpsSatellite;
+HPLandroid/location/GpsStatus$SatelliteIterator;->next()Ljava/lang/Object;
+HPLandroid/location/GpsStatus;-><init>()V
+HPLandroid/location/GpsStatus;->access$000(Landroid/location/GpsStatus;)Landroid/util/SparseArray;
+HPLandroid/location/GpsStatus;->create(Landroid/location/GnssStatus;I)Landroid/location/GpsStatus;
+PLandroid/location/GpsStatus;->getSatellites()Ljava/lang/Iterable;
+HPLandroid/location/GpsStatus;->lambda$new$0$GpsStatus()Ljava/util/Iterator;
+HPLandroid/location/GpsStatus;->setStatus(Landroid/location/GnssStatus;I)V
+HSPLandroid/location/ICountryDetector$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/location/ICountryDetector$Stub$Proxy;->addCountryListener(Landroid/location/ICountryListener;)V
+HSPLandroid/location/ICountryDetector$Stub$Proxy;->detectCountry()Landroid/location/Country;
+HSPLandroid/location/ICountryDetector$Stub;-><init>()V
+HSPLandroid/location/ICountryDetector$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ICountryDetector;
+PLandroid/location/ICountryDetector$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/location/ICountryListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/location/ICountryListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/location/ICountryListener$Stub;-><init>()V
+HSPLandroid/location/ICountryListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/location/ICountryListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ICountryListener;
+HSPLandroid/location/IGeocodeProvider$Stub;-><init>()V
+PLandroid/location/IGeofenceProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/location/IGeofenceProvider$Stub$Proxy;->setGeofenceHardware(Landroid/hardware/location/IGeofenceHardware;)V
+HSPLandroid/location/IGeofenceProvider$Stub;-><init>()V
+PLandroid/location/IGeofenceProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/IGeofenceProvider;
+HSPLandroid/location/IGeofenceProvider$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/location/IGnssMeasurementsListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/location/IGnssMeasurementsListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/location/IGnssMeasurementsListener$Stub$Proxy;->onGnssMeasurementsReceived(Landroid/location/GnssMeasurementsEvent;)V
+PLandroid/location/IGnssMeasurementsListener$Stub$Proxy;->onStatusChanged(I)V
+HPLandroid/location/IGnssMeasurementsListener$Stub;-><init>()V
+HPLandroid/location/IGnssMeasurementsListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/location/IGnssMeasurementsListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/IGnssMeasurementsListener;
+HPLandroid/location/IGnssMeasurementsListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/location/IGnssStatusListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/location/IGnssStatusListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/location/IGnssStatusListener$Stub$Proxy;->onFirstFix(I)V
+HPLandroid/location/IGnssStatusListener$Stub$Proxy;->onGnssStarted()V
+HPLandroid/location/IGnssStatusListener$Stub$Proxy;->onGnssStopped()V
+HPLandroid/location/IGnssStatusListener$Stub$Proxy;->onNmeaReceived(JLjava/lang/String;)V
+HPLandroid/location/IGnssStatusListener$Stub$Proxy;->onSvStatusChanged(I[I[F[F[F[F[F)V
+HSPLandroid/location/IGnssStatusListener$Stub;-><init>()V
+HSPLandroid/location/IGnssStatusListener$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/location/IGnssStatusListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/IGnssStatusListener;
+HPLandroid/location/IGnssStatusListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/location/IGpsGeofenceHardware$Stub;-><init>()V
+PLandroid/location/ILocationListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/location/ILocationListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/location/ILocationListener$Stub$Proxy;->onLocationChanged(Landroid/location/Location;)V
+PLandroid/location/ILocationListener$Stub$Proxy;->onProviderDisabled(Ljava/lang/String;)V
+PLandroid/location/ILocationListener$Stub$Proxy;->onProviderEnabled(Ljava/lang/String;)V
+PLandroid/location/ILocationListener$Stub$Proxy;->onRemoved()V
+HSPLandroid/location/ILocationListener$Stub;-><init>()V
+HSPLandroid/location/ILocationListener$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/location/ILocationListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ILocationListener;
+PLandroid/location/ILocationListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/location/ILocationManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/location/ILocationManager$Stub$Proxy;->addGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/location/ILocationManager$Stub$Proxy;->getAllProviders()Ljava/util/List;
+HSPLandroid/location/ILocationManager$Stub$Proxy;->getExtraLocationControllerPackage()Ljava/lang/String;
+HSPLandroid/location/ILocationManager$Stub$Proxy;->getLastLocation(Landroid/location/LocationRequest;Ljava/lang/String;Ljava/lang/String;)Landroid/location/Location;
+HSPLandroid/location/ILocationManager$Stub$Proxy;->getProviderProperties(Ljava/lang/String;)Lcom/android/internal/location/ProviderProperties;
+HSPLandroid/location/ILocationManager$Stub$Proxy;->getProviders(Landroid/location/Criteria;Z)Ljava/util/List;
+HSPLandroid/location/ILocationManager$Stub$Proxy;->isExtraLocationControllerPackageEnabled()Z
HSPLandroid/location/ILocationManager$Stub$Proxy;->isLocationEnabledForUser(I)Z
+HSPLandroid/location/ILocationManager$Stub$Proxy;->isProviderEnabledForUser(Ljava/lang/String;I)Z
+HSPLandroid/location/ILocationManager$Stub$Proxy;->isProviderPackage(Ljava/lang/String;)Z
+PLandroid/location/ILocationManager$Stub$Proxy;->locationCallbackFinished(Landroid/location/ILocationListener;)V
+HSPLandroid/location/ILocationManager$Stub$Proxy;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;Ljava/lang/String;Ljava/lang/String;)Z
+HPLandroid/location/ILocationManager$Stub$Proxy;->removeGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;)V
+HSPLandroid/location/ILocationManager$Stub$Proxy;->removeUpdates(Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;)V
+HSPLandroid/location/ILocationManager$Stub$Proxy;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/location/ILocationManager$Stub$Proxy;->setExtraLocationControllerPackage(Ljava/lang/String;)V
+PLandroid/location/ILocationManager$Stub$Proxy;->setExtraLocationControllerPackageEnabled(Z)V
+HSPLandroid/location/ILocationManager$Stub$Proxy;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
+HSPLandroid/location/ILocationManager$Stub;-><init>()V
HSPLandroid/location/ILocationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ILocationManager;
+PLandroid/location/ILocationManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/location/ILocationManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/location/INetInitiatedListener$Stub;-><init>()V
+PLandroid/location/Location$1;->initialValue()Landroid/location/Location$BearingDistanceCache;
+PLandroid/location/Location$1;->initialValue()Ljava/lang/Object;
HSPLandroid/location/Location$2;->createFromParcel(Landroid/os/Parcel;)Landroid/location/Location;
HSPLandroid/location/Location$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-PLandroid/location/Location;-><init>(Landroid/location/Location;)V
+PLandroid/location/Location$BearingDistanceCache;-><init>()V
+PLandroid/location/Location$BearingDistanceCache;-><init>(Landroid/location/Location$1;)V
+PLandroid/location/Location$BearingDistanceCache;->access$100(Landroid/location/Location$BearingDistanceCache;)F
+PLandroid/location/Location$BearingDistanceCache;->access$102(Landroid/location/Location$BearingDistanceCache;F)F
+PLandroid/location/Location$BearingDistanceCache;->access$202(Landroid/location/Location$BearingDistanceCache;F)F
+PLandroid/location/Location$BearingDistanceCache;->access$302(Landroid/location/Location$BearingDistanceCache;F)F
+PLandroid/location/Location$BearingDistanceCache;->access$400(Landroid/location/Location$BearingDistanceCache;)D
+PLandroid/location/Location$BearingDistanceCache;->access$402(Landroid/location/Location$BearingDistanceCache;D)D
+PLandroid/location/Location$BearingDistanceCache;->access$502(Landroid/location/Location$BearingDistanceCache;D)D
+PLandroid/location/Location$BearingDistanceCache;->access$602(Landroid/location/Location$BearingDistanceCache;D)D
+PLandroid/location/Location$BearingDistanceCache;->access$702(Landroid/location/Location$BearingDistanceCache;D)D
+HSPLandroid/location/Location;-><init>(Landroid/location/Location;)V
HSPLandroid/location/Location;-><init>(Ljava/lang/String;)V
-PLandroid/location/Location;->getAccuracy()F
-PLandroid/location/Location;->getLatitude()D
-PLandroid/location/Location;->getLongitude()D
-PLandroid/location/Location;->getProvider()Ljava/lang/String;
-PLandroid/location/Location;->hasAccuracy()Z
-PLandroid/location/Location;->set(Landroid/location/Location;)V
+PLandroid/location/Location;->access$1002(Landroid/location/Location;D)D
+PLandroid/location/Location;->access$1102(Landroid/location/Location;I)I
+PLandroid/location/Location;->access$1202(Landroid/location/Location;D)D
+PLandroid/location/Location;->access$1302(Landroid/location/Location;D)D
+PLandroid/location/Location;->access$1402(Landroid/location/Location;D)D
+PLandroid/location/Location;->access$1502(Landroid/location/Location;F)F
+PLandroid/location/Location;->access$1602(Landroid/location/Location;F)F
+PLandroid/location/Location;->access$1702(Landroid/location/Location;F)F
+PLandroid/location/Location;->access$1802(Landroid/location/Location;F)F
+PLandroid/location/Location;->access$1902(Landroid/location/Location;F)F
+PLandroid/location/Location;->access$2002(Landroid/location/Location;F)F
+PLandroid/location/Location;->access$2102(Landroid/location/Location;Landroid/os/Bundle;)Landroid/os/Bundle;
+PLandroid/location/Location;->access$802(Landroid/location/Location;J)J
+PLandroid/location/Location;->access$902(Landroid/location/Location;J)J
+HPLandroid/location/Location;->computeDistanceAndBearing(DDDDLandroid/location/Location$BearingDistanceCache;)V
+HPLandroid/location/Location;->distanceBetween(DDDD[F)V
+PLandroid/location/Location;->distanceTo(Landroid/location/Location;)F
+HSPLandroid/location/Location;->getAccuracy()F
+HSPLandroid/location/Location;->getAltitude()D
+HSPLandroid/location/Location;->getBearing()F
+PLandroid/location/Location;->getBearingAccuracyDegrees()F
+HSPLandroid/location/Location;->getElapsedRealtimeNanos()J
+HPLandroid/location/Location;->getExtraLocation(Ljava/lang/String;)Landroid/location/Location;
+HSPLandroid/location/Location;->getExtras()Landroid/os/Bundle;
+HSPLandroid/location/Location;->getLatitude()D
+HSPLandroid/location/Location;->getLongitude()D
+HSPLandroid/location/Location;->getProvider()Ljava/lang/String;
+HSPLandroid/location/Location;->getSpeed()F
+HSPLandroid/location/Location;->getSpeedAccuracyMetersPerSecond()F
+HSPLandroid/location/Location;->getTime()J
+HSPLandroid/location/Location;->getVerticalAccuracyMeters()F
+HSPLandroid/location/Location;->hasAccuracy()Z
+HSPLandroid/location/Location;->hasAltitude()Z
+HSPLandroid/location/Location;->hasBearing()Z
+HSPLandroid/location/Location;->hasBearingAccuracy()Z
+HSPLandroid/location/Location;->hasElapsedRealtimeUncertaintyNanos()Z
+HSPLandroid/location/Location;->hasSpeed()Z
+HSPLandroid/location/Location;->hasSpeedAccuracy()Z
+HSPLandroid/location/Location;->hasVerticalAccuracy()Z
+PLandroid/location/Location;->isComplete()Z
+HSPLandroid/location/Location;->isFromMockProvider()Z
+PLandroid/location/Location;->removeBearing()V
+HSPLandroid/location/Location;->set(Landroid/location/Location;)V
+HSPLandroid/location/Location;->setAccuracy(F)V
+HSPLandroid/location/Location;->setAltitude(D)V
+HSPLandroid/location/Location;->setBearing(F)V
+PLandroid/location/Location;->setBearingAccuracyDegrees(F)V
+HSPLandroid/location/Location;->setElapsedRealtimeNanos(J)V
+HPLandroid/location/Location;->setElapsedRealtimeUncertaintyNanos(D)V
+PLandroid/location/Location;->setExtraLocation(Ljava/lang/String;Landroid/location/Location;)V
+HSPLandroid/location/Location;->setExtras(Landroid/os/Bundle;)V
+HSPLandroid/location/Location;->setLatitude(D)V
+HSPLandroid/location/Location;->setLongitude(D)V
+PLandroid/location/Location;->setProvider(Ljava/lang/String;)V
+HSPLandroid/location/Location;->setSpeed(F)V
+HSPLandroid/location/Location;->setSpeedAccuracyMetersPerSecond(F)V
+HSPLandroid/location/Location;->setTime(J)V
+HSPLandroid/location/Location;->setVerticalAccuracyMeters(F)V
+HSPLandroid/location/Location;->toString()Ljava/lang/String;
+HPLandroid/location/Location;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/location/LocationManager$BatchedLocationCallbackManager;-><init>(Landroid/location/LocationManager;)V
HSPLandroid/location/LocationManager$BatchedLocationCallbackManager;-><init>(Landroid/location/LocationManager;Landroid/location/LocationManager$1;)V
HSPLandroid/location/LocationManager$GnssMeasurementsListenerManager;-><init>(Landroid/location/LocationManager;)V
HSPLandroid/location/LocationManager$GnssMeasurementsListenerManager;-><init>(Landroid/location/LocationManager;Landroid/location/LocationManager$1;)V
+HPLandroid/location/LocationManager$GnssMeasurementsListenerManager;->registerService()Z
+HPLandroid/location/LocationManager$GnssMeasurementsListenerManager;->unregisterService()V
HSPLandroid/location/LocationManager$GnssNavigationMessageListenerManager;-><init>(Landroid/location/LocationManager;)V
HSPLandroid/location/LocationManager$GnssNavigationMessageListenerManager;-><init>(Landroid/location/LocationManager;Landroid/location/LocationManager$1;)V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$1;-><init>(Landroid/location/LocationManager$GnssStatusListenerManager;Ljava/lang/Object;)V
+PLandroid/location/LocationManager$GnssStatusListenerManager$1;->onFirstFix(I)V
+HPLandroid/location/LocationManager$GnssStatusListenerManager$1;->onSatelliteStatusChanged(Landroid/location/GnssStatus;)V
+PLandroid/location/LocationManager$GnssStatusListenerManager$1;->onStarted()V
+PLandroid/location/LocationManager$GnssStatusListenerManager$1;->onStopped()V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;-><init>(Landroid/location/LocationManager$GnssStatusListenerManager;)V
+HSPLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;-><init>(Landroid/location/LocationManager$GnssStatusListenerManager;Landroid/location/LocationManager$1;)V
+PLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->lambda$onFirstFix$0(ILandroid/location/GnssStatus$Callback;)V
+PLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->lambda$onNmeaReceived$2(Ljava/lang/String;JLandroid/location/GnssStatus$Callback;)V
+PLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->lambda$onSvStatusChanged$1(Landroid/location/GnssStatus;Landroid/location/GnssStatus$Callback;)V
+PLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->onFirstFix(I)V
+PLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->onGnssStarted()V
+PLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->onGnssStopped()V
+HPLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->onNmeaReceived(JLjava/lang/String;)V
+PLandroid/location/LocationManager$GnssStatusListenerManager$GnssStatusListener;->onSvStatusChanged(I[I[F[F[F[F[F)V
HSPLandroid/location/LocationManager$GnssStatusListenerManager;-><init>(Landroid/location/LocationManager;)V
HSPLandroid/location/LocationManager$GnssStatusListenerManager;-><init>(Landroid/location/LocationManager;Landroid/location/LocationManager$1;)V
-PLandroid/location/LocationManager$LocationListenerTransport;-><init>(Landroid/location/LocationManager;Landroid/location/LocationListener;)V
-PLandroid/location/LocationManager$LocationListenerTransport;-><init>(Landroid/location/LocationManager;Landroid/location/LocationListener;Landroid/location/LocationManager$1;)V
-PLandroid/location/LocationManager$LocationListenerTransport;->lambda$onLocationChanged$0$LocationManager$LocationListenerTransport(Ljava/util/concurrent/Executor;Landroid/location/Location;)V
-PLandroid/location/LocationManager$LocationListenerTransport;->locationCallbackFinished()V
-PLandroid/location/LocationManager$LocationListenerTransport;->onLocationChanged(Landroid/location/Location;)V
-PLandroid/location/LocationManager$LocationListenerTransport;->register(Ljava/util/concurrent/Executor;)V
+PLandroid/location/LocationManager$GnssStatusListenerManager;->access$1102(Landroid/location/LocationManager$GnssStatusListenerManager;I)I
+HPLandroid/location/LocationManager$GnssStatusListenerManager;->access$1202(Landroid/location/LocationManager$GnssStatusListenerManager;Landroid/location/GnssStatus;)Landroid/location/GnssStatus;
+HSPLandroid/location/LocationManager$GnssStatusListenerManager;->addListener(Landroid/location/GpsStatus$Listener;Ljava/util/concurrent/Executor;)Z
+HSPLandroid/location/LocationManager$GnssStatusListenerManager;->convertKey(Ljava/lang/Object;)Landroid/location/GnssStatus$Callback;
+HSPLandroid/location/LocationManager$GnssStatusListenerManager;->convertKey(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/location/LocationManager$GnssStatusListenerManager;->getGnssStatus()Landroid/location/GnssStatus;
+PLandroid/location/LocationManager$GnssStatusListenerManager;->getTtff()I
+HSPLandroid/location/LocationManager$GnssStatusListenerManager;->registerService()Z
+HSPLandroid/location/LocationManager$GnssStatusListenerManager;->unregisterService()V
+HSPLandroid/location/LocationManager$LocationListenerTransport;-><init>(Landroid/location/LocationManager;Landroid/location/LocationListener;)V
+HSPLandroid/location/LocationManager$LocationListenerTransport;-><init>(Landroid/location/LocationManager;Landroid/location/LocationListener;Landroid/location/LocationManager$1;)V
+HPLandroid/location/LocationManager$LocationListenerTransport;->lambda$onLocationChanged$0$LocationManager$LocationListenerTransport(Ljava/util/concurrent/Executor;Landroid/location/Location;)V
+PLandroid/location/LocationManager$LocationListenerTransport;->lambda$onProviderDisabled$2$LocationManager$LocationListenerTransport(Ljava/util/concurrent/Executor;Ljava/lang/String;)V
+HPLandroid/location/LocationManager$LocationListenerTransport;->lambda$onProviderEnabled$1$LocationManager$LocationListenerTransport(Ljava/util/concurrent/Executor;Ljava/lang/String;)V
+PLandroid/location/LocationManager$LocationListenerTransport;->lambda$onRemoved$3$LocationManager$LocationListenerTransport(Ljava/util/concurrent/Executor;)V
+HPLandroid/location/LocationManager$LocationListenerTransport;->locationCallbackFinished()V
+HPLandroid/location/LocationManager$LocationListenerTransport;->onLocationChanged(Landroid/location/Location;)V
+PLandroid/location/LocationManager$LocationListenerTransport;->onProviderDisabled(Ljava/lang/String;)V
+HPLandroid/location/LocationManager$LocationListenerTransport;->onProviderEnabled(Ljava/lang/String;)V
+PLandroid/location/LocationManager$LocationListenerTransport;->onRemoved()V
+HSPLandroid/location/LocationManager$LocationListenerTransport;->register(Ljava/util/concurrent/Executor;)V
+HSPLandroid/location/LocationManager$LocationListenerTransport;->unregister()V
HSPLandroid/location/LocationManager;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
-PLandroid/location/LocationManager;->access$600(Landroid/location/LocationManager;)Landroid/location/ILocationManager;
-PLandroid/location/LocationManager;->getListenerIdentifier(Ljava/lang/Object;)Ljava/lang/String;
+HSPLandroid/location/LocationManager;->access$1000(Landroid/location/LocationManager;)Landroid/content/Context;
+HSPLandroid/location/LocationManager;->access$600(Landroid/location/LocationManager;)Landroid/location/ILocationManager;
+HSPLandroid/location/LocationManager;->addGpsStatusListener(Landroid/location/GpsStatus$Listener;)Z
+HSPLandroid/location/LocationManager;->getAllProviders()Ljava/util/List;
+HSPLandroid/location/LocationManager;->getExtraLocationControllerPackage()Ljava/lang/String;
+HPLandroid/location/LocationManager;->getGpsStatus(Landroid/location/GpsStatus;)Landroid/location/GpsStatus;
+HSPLandroid/location/LocationManager;->getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;
+HSPLandroid/location/LocationManager;->getListenerIdentifier(Ljava/lang/Object;)Ljava/lang/String;
+HSPLandroid/location/LocationManager;->getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;
+HSPLandroid/location/LocationManager;->getProviders(Z)Ljava/util/List;
+HSPLandroid/location/LocationManager;->isExtraLocationControllerPackageEnabled()Z
+HSPLandroid/location/LocationManager;->isLocationEnabled()Z
HSPLandroid/location/LocationManager;->isLocationEnabledForUser(Landroid/os/UserHandle;)Z
-PLandroid/location/LocationManager;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/LocationListener;Landroid/os/Looper;)V
-PLandroid/location/LocationManager;->requestLocationUpdates(Landroid/location/LocationRequest;Ljava/util/concurrent/Executor;Landroid/location/LocationListener;)V
+HSPLandroid/location/LocationManager;->isProviderEnabled(Ljava/lang/String;)Z
+HSPLandroid/location/LocationManager;->isProviderEnabledForUser(Ljava/lang/String;Landroid/os/UserHandle;)Z
+HSPLandroid/location/LocationManager;->isProviderPackage(Ljava/lang/String;)Z
+HPLandroid/location/LocationManager;->registerGnssMeasurementsCallback(Landroid/location/GnssMeasurementsEvent$Callback;)Z
+HPLandroid/location/LocationManager;->registerGnssMeasurementsCallback(Ljava/util/concurrent/Executor;Landroid/location/GnssMeasurementsEvent$Callback;)Z
+HSPLandroid/location/LocationManager;->registerGnssStatusCallback(Landroid/location/GnssStatus$Callback;Landroid/os/Handler;)Z
+HSPLandroid/location/LocationManager;->removeGpsStatusListener(Landroid/location/GpsStatus$Listener;)V
+HSPLandroid/location/LocationManager;->removeUpdates(Landroid/location/LocationListener;)V
+HSPLandroid/location/LocationManager;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/LocationListener;Landroid/os/Looper;)V
+HSPLandroid/location/LocationManager;->requestLocationUpdates(Landroid/location/LocationRequest;Ljava/util/concurrent/Executor;Landroid/location/LocationListener;)V
+HSPLandroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V
+PLandroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V
+HSPLandroid/location/LocationManager;->setExtraLocationControllerPackage(Ljava/lang/String;)V
+PLandroid/location/LocationManager;->setExtraLocationControllerPackageEnabled(Z)V
+HPLandroid/location/LocationManager;->unregisterGnssMeasurementsCallback(Landroid/location/GnssMeasurementsEvent$Callback;)V
+HSPLandroid/location/LocationManager;->unregisterGnssStatusCallback(Landroid/location/GnssStatus$Callback;)V
+PLandroid/location/LocationProvider;-><init>(Ljava/lang/String;Lcom/android/internal/location/ProviderProperties;)V
+HSPLandroid/location/LocationRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/location/LocationRequest;-><init>()V
+HSPLandroid/location/LocationRequest;-><init>(Landroid/location/LocationRequest;)V
+HSPLandroid/location/LocationRequest;->checkDisplacement(F)V
+HSPLandroid/location/LocationRequest;->checkProvider(Ljava/lang/String;)V
HSPLandroid/location/LocationRequest;->checkQuality(I)V
+HSPLandroid/location/LocationRequest;->create()Landroid/location/LocationRequest;
HSPLandroid/location/LocationRequest;->createFromDeprecatedProvider(Ljava/lang/String;JFZ)Landroid/location/LocationRequest;
+PLandroid/location/LocationRequest;->decrementNumUpdates()V
+HSPLandroid/location/LocationRequest;->getExpirationRealtimeMs(J)J
+HSPLandroid/location/LocationRequest;->getExpireIn()J
+HSPLandroid/location/LocationRequest;->getFastestInterval()J
+HSPLandroid/location/LocationRequest;->getHideFromAppOps()Z
+HSPLandroid/location/LocationRequest;->getInterval()J
+HSPLandroid/location/LocationRequest;->getNumUpdates()I
+HSPLandroid/location/LocationRequest;->getProvider()Ljava/lang/String;
+HSPLandroid/location/LocationRequest;->getQuality()I
+HSPLandroid/location/LocationRequest;->getSmallestDisplacement()F
+HSPLandroid/location/LocationRequest;->getWorkSource()Landroid/os/WorkSource;
+HSPLandroid/location/LocationRequest;->isLocationSettingsIgnored()Z
+HSPLandroid/location/LocationRequest;->isLowPowerMode()Z
+PLandroid/location/LocationRequest;->qualityToString(I)Ljava/lang/String;
+PLandroid/location/LocationRequest;->setExpireAt(J)Landroid/location/LocationRequest;
+PLandroid/location/LocationRequest;->setExpireIn(J)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setFastestInterval(J)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setHideFromAppOps(Z)V
+HSPLandroid/location/LocationRequest;->setInterval(J)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setLocationSettingsIgnored(Z)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setLowPowerMode(Z)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setNumUpdates(I)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setProvider(Ljava/lang/String;)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setQuality(I)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setSmallestDisplacement(F)Landroid/location/LocationRequest;
+HSPLandroid/location/LocationRequest;->setWorkSource(Landroid/os/WorkSource;)V
+PLandroid/location/LocationRequest;->toString()Ljava/lang/String;
HSPLandroid/location/LocationRequest;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/media/-$$Lambda$MediaCodecInfo$VideoCapabilities$DpgwEn-gVFZT9EtP3qcxpiA2G0M;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLandroid/media/AudioAttributes$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioAttributes;
HSPLandroid/media/AudioAttributes$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/media/AudioAttributes$Builder;-><init>()V
-HPLandroid/media/AudioAttributes$Builder;-><init>(Landroid/media/AudioAttributes;)V
+HSPLandroid/media/AudioAttributes$Builder;-><init>(Landroid/media/AudioAttributes;)V
+HSPLandroid/media/AudioAttributes$Builder;->addTag(Ljava/lang/String;)Landroid/media/AudioAttributes$Builder;
HSPLandroid/media/AudioAttributes$Builder;->build()Landroid/media/AudioAttributes;
+HPLandroid/media/AudioAttributes$Builder;->replaceFlags(I)Landroid/media/AudioAttributes$Builder;
+PLandroid/media/AudioAttributes$Builder;->setAllowedCapturePolicy(I)Landroid/media/AudioAttributes$Builder;
+HSPLandroid/media/AudioAttributes$Builder;->setCapturePreset(I)Landroid/media/AudioAttributes$Builder;
HSPLandroid/media/AudioAttributes$Builder;->setContentType(I)Landroid/media/AudioAttributes$Builder;
+HSPLandroid/media/AudioAttributes$Builder;->setFlags(I)Landroid/media/AudioAttributes$Builder;
+HSPLandroid/media/AudioAttributes$Builder;->setInternalCapturePreset(I)Landroid/media/AudioAttributes$Builder;
+HSPLandroid/media/AudioAttributes$Builder;->setInternalLegacyStreamType(I)Landroid/media/AudioAttributes$Builder;
+HSPLandroid/media/AudioAttributes$Builder;->setLegacyStreamType(I)Landroid/media/AudioAttributes$Builder;
HSPLandroid/media/AudioAttributes$Builder;->setUsage(I)Landroid/media/AudioAttributes$Builder;
HSPLandroid/media/AudioAttributes;-><init>()V
HSPLandroid/media/AudioAttributes;-><init>(Landroid/media/AudioAttributes$1;)V
HSPLandroid/media/AudioAttributes;-><init>(Landroid/os/Parcel;)V
HSPLandroid/media/AudioAttributes;-><init>(Landroid/os/Parcel;Landroid/media/AudioAttributes$1;)V
+PLandroid/media/AudioAttributes;->access$000(Landroid/media/AudioAttributes;)I
HSPLandroid/media/AudioAttributes;->access$002(Landroid/media/AudioAttributes;I)I
+PLandroid/media/AudioAttributes;->access$100(Landroid/media/AudioAttributes;)I
HSPLandroid/media/AudioAttributes;->access$102(Landroid/media/AudioAttributes;I)I
+PLandroid/media/AudioAttributes;->access$200(Landroid/media/AudioAttributes;)Ljava/util/HashSet;
HSPLandroid/media/AudioAttributes;->access$202(Landroid/media/AudioAttributes;Ljava/util/HashSet;)Ljava/util/HashSet;
+HSPLandroid/media/AudioAttributes;->access$400(Landroid/media/AudioAttributes;)I
HSPLandroid/media/AudioAttributes;->access$402(Landroid/media/AudioAttributes;I)I
HSPLandroid/media/AudioAttributes;->access$502(Landroid/media/AudioAttributes;I)I
HSPLandroid/media/AudioAttributes;->access$576(Landroid/media/AudioAttributes;I)I
HSPLandroid/media/AudioAttributes;->access$602(Landroid/media/AudioAttributes;Ljava/lang/String;)Ljava/lang/String;
-PLandroid/media/AudioAttributes;->getUsage()I
+PLandroid/media/AudioAttributes;->access$700(Landroid/media/AudioAttributes;)Landroid/os/Bundle;
+PLandroid/media/AudioAttributes;->areHapticChannelsMuted()Z
+HSPLandroid/media/AudioAttributes;->capturePolicyToFlags(II)I
+HPLandroid/media/AudioAttributes;->contentTypeToString()Ljava/lang/String;
+HPLandroid/media/AudioAttributes;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLandroid/media/AudioAttributes;->equals(Ljava/lang/Object;)Z
+PLandroid/media/AudioAttributes;->getAllFlags()I
+HSPLandroid/media/AudioAttributes;->getAllowedCapturePolicy()I
+HSPLandroid/media/AudioAttributes;->getContentType()I
+HSPLandroid/media/AudioAttributes;->getFlags()I
+PLandroid/media/AudioAttributes;->getTags()Ljava/util/Set;
+HSPLandroid/media/AudioAttributes;->getUsage()I
+HPLandroid/media/AudioAttributes;->getVolumeControlStream()I
+HSPLandroid/media/AudioAttributes;->hashCode()I
+PLandroid/media/AudioAttributes;->toLegacyStreamType(Landroid/media/AudioAttributes;)I
+HPLandroid/media/AudioAttributes;->toString()Ljava/lang/String;
+PLandroid/media/AudioAttributes;->toVolumeStreamType(ZLandroid/media/AudioAttributes;)I
+PLandroid/media/AudioAttributes;->usageToString()Ljava/lang/String;
+PLandroid/media/AudioAttributes;->usageToString(I)Ljava/lang/String;
HSPLandroid/media/AudioAttributes;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/media/AudioDeviceCallback;-><init>()V
+PLandroid/media/AudioDeviceInfo;-><init>(Landroid/media/AudioDevicePort;)V
+PLandroid/media/AudioDeviceInfo;->convertInternalDeviceToDeviceType(I)I
+HSPLandroid/media/AudioDeviceInfo;->getProductName()Ljava/lang/CharSequence;
+HSPLandroid/media/AudioDeviceInfo;->getType()I
+HPLandroid/media/AudioDeviceInfo;->isSink()Z
+HSPLandroid/media/AudioDevicePort;-><init>(Landroid/media/AudioHandle;Ljava/lang/String;[I[I[I[I[Landroid/media/AudioGain;ILjava/lang/String;)V
+HSPLandroid/media/AudioDevicePort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioDevicePortConfig;
+HSPLandroid/media/AudioDevicePort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioPortConfig;
+HSPLandroid/media/AudioDevicePort;->type()I
+HSPLandroid/media/AudioDevicePortConfig;-><init>(Landroid/media/AudioDevicePort;IIILandroid/media/AudioGainConfig;)V
+PLandroid/media/AudioFocusInfo;-><init>(Landroid/media/AudioAttributes;ILjava/lang/String;Ljava/lang/String;IIII)V
+HSPLandroid/media/AudioFocusRequest$Builder;-><init>(I)V
+HSPLandroid/media/AudioFocusRequest$Builder;->build()Landroid/media/AudioFocusRequest;
+HSPLandroid/media/AudioFocusRequest$Builder;->setAudioAttributes(Landroid/media/AudioAttributes;)Landroid/media/AudioFocusRequest$Builder;
+HSPLandroid/media/AudioFocusRequest$Builder;->setFocusGain(I)Landroid/media/AudioFocusRequest$Builder;
+HSPLandroid/media/AudioFocusRequest;->access$000()Landroid/media/AudioAttributes;
+HPLandroid/media/AudioFocusRequest;->getAudioAttributes()Landroid/media/AudioAttributes;
+HPLandroid/media/AudioFocusRequest;->getOnAudioFocusChangeListener()Landroid/media/AudioManager$OnAudioFocusChangeListener;
+HSPLandroid/media/AudioFocusRequest;->isValidFocusGain(I)Z
+HPLandroid/media/AudioFormat$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioFormat;
+HPLandroid/media/AudioFormat$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/AudioFormat$Builder;-><init>()V
+HSPLandroid/media/AudioFormat$Builder;-><init>(Landroid/media/AudioFormat;)V
+HSPLandroid/media/AudioFormat$Builder;->build()Landroid/media/AudioFormat;
+HSPLandroid/media/AudioFormat$Builder;->setChannelMask(I)Landroid/media/AudioFormat$Builder;
+HSPLandroid/media/AudioFormat$Builder;->setEncoding(I)Landroid/media/AudioFormat$Builder;
+HSPLandroid/media/AudioFormat$Builder;->setSampleRate(I)Landroid/media/AudioFormat$Builder;
+PLandroid/media/AudioFormat;-><init>(IIII)V
+HSPLandroid/media/AudioFormat;-><init>(IIIII)V
+PLandroid/media/AudioFormat;-><init>(IIIIILandroid/media/AudioFormat$1;)V
+HPLandroid/media/AudioFormat;-><init>(Landroid/os/Parcel;)V
+HPLandroid/media/AudioFormat;-><init>(Landroid/os/Parcel;Landroid/media/AudioFormat$1;)V
+HSPLandroid/media/AudioFormat;->access$000(Landroid/media/AudioFormat;)I
+HSPLandroid/media/AudioFormat;->access$100(Landroid/media/AudioFormat;)I
+HSPLandroid/media/AudioFormat;->access$200(Landroid/media/AudioFormat;)I
+HSPLandroid/media/AudioFormat;->access$300(Landroid/media/AudioFormat;)I
+HSPLandroid/media/AudioFormat;->access$400(Landroid/media/AudioFormat;)I
+HSPLandroid/media/AudioFormat;->channelCountFromOutChannelMask(I)I
+HSPLandroid/media/AudioFormat;->getBytesPerSample(I)I
+HSPLandroid/media/AudioFormat;->getChannelCount()I
+PLandroid/media/AudioFormat;->getChannelIndexMask()I
+HSPLandroid/media/AudioFormat;->getChannelMask()I
+HSPLandroid/media/AudioFormat;->getEncoding()I
+HPLandroid/media/AudioFormat;->getPropertySetMask()I
+HSPLandroid/media/AudioFormat;->getSampleRate()I
+PLandroid/media/AudioFormat;->hashCode()I
+HSPLandroid/media/AudioFormat;->inChannelMaskFromOutChannelMask(I)I
+HPLandroid/media/AudioFormat;->isEncodingLinearFrames(I)Z
+HSPLandroid/media/AudioFormat;->isEncodingLinearPcm(I)Z
+HSPLandroid/media/AudioFormat;->isPublicEncoding(I)Z
+HPLandroid/media/AudioFormat;->isValidEncoding(I)Z
+PLandroid/media/AudioFormat;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/media/AudioHandle;-><init>(I)V
+HSPLandroid/media/AudioHandle;->equals(Ljava/lang/Object;)Z
+HSPLandroid/media/AudioHandle;->id()I
HSPLandroid/media/AudioManager$1;-><init>(Landroid/media/AudioManager;)V
+HPLandroid/media/AudioManager$1;->dispatchAudioFocusChange(ILjava/lang/String;)V
HSPLandroid/media/AudioManager$2;-><init>(Landroid/media/AudioManager;)V
-HSPLandroid/media/AudioManager$2;->dispatchPlaybackConfigChange(Ljava/util/List;Z)V
+HPLandroid/media/AudioManager$2;->dispatchPlaybackConfigChange(Ljava/util/List;Z)V
HSPLandroid/media/AudioManager$3;-><init>(Landroid/media/AudioManager;)V
+HPLandroid/media/AudioManager$3;->dispatchRecordingConfigChange(Ljava/util/List;)V
HSPLandroid/media/AudioManager$4;-><init>(Landroid/media/AudioManager;)V
HSPLandroid/media/AudioManager$AudioPlaybackCallback;-><init>()V
+HPLandroid/media/AudioManager$AudioPlaybackCallback;->onPlaybackConfigChanged(Ljava/util/List;)V
HSPLandroid/media/AudioManager$AudioPlaybackCallbackInfo;-><init>(Landroid/media/AudioManager$AudioPlaybackCallback;Landroid/os/Handler;)V
-HSPLandroid/media/AudioManager$PlaybackConfigChangeCallbackData;-><init>(Landroid/media/AudioManager$AudioPlaybackCallback;Ljava/util/List;)V
+HSPLandroid/media/AudioManager$AudioRecordingCallback;-><init>()V
+PLandroid/media/AudioManager$NativeEventHandlerDelegate$1;-><init>(Landroid/media/AudioManager$NativeEventHandlerDelegate;Landroid/os/Looper;Landroid/media/AudioManager;Landroid/media/AudioDeviceCallback;)V
+HSPLandroid/media/AudioManager$NativeEventHandlerDelegate$1;->handleMessage(Landroid/os/Message;)V
+PLandroid/media/AudioManager$NativeEventHandlerDelegate;-><init>(Landroid/media/AudioManager;Landroid/media/AudioDeviceCallback;Landroid/os/Handler;)V
+PLandroid/media/AudioManager$NativeEventHandlerDelegate;->getHandler()Landroid/os/Handler;
+PLandroid/media/AudioManager$OnAmPortUpdateListener;-><init>(Landroid/media/AudioManager;)V
+PLandroid/media/AudioManager$OnAmPortUpdateListener;-><init>(Landroid/media/AudioManager;Landroid/media/AudioManager$1;)V
+HSPLandroid/media/AudioManager$OnAmPortUpdateListener;->onAudioPatchListUpdate([Landroid/media/AudioPatch;)V
+HSPLandroid/media/AudioManager$OnAmPortUpdateListener;->onAudioPortListUpdate([Landroid/media/AudioPort;)V
+PLandroid/media/AudioManager$PlaybackConfigChangeCallbackData;-><init>(Landroid/media/AudioManager$AudioPlaybackCallback;Ljava/util/List;)V
HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate$1;-><init>(Landroid/media/AudioManager$ServiceEventHandlerDelegate;Landroid/os/Looper;Landroid/media/AudioManager;)V
-HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate$1;->handleMessage(Landroid/os/Message;)V
+HPLandroid/media/AudioManager$ServiceEventHandlerDelegate$1;->handleMessage(Landroid/os/Message;)V
HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate;-><init>(Landroid/media/AudioManager;Landroid/os/Handler;)V
HSPLandroid/media/AudioManager$ServiceEventHandlerDelegate;->getHandler()Landroid/os/Handler;
HSPLandroid/media/AudioManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/media/AudioManager;->access$500(Landroid/media/AudioManager;)Ljava/lang/Object;
-HSPLandroid/media/AudioManager;->access$600(Landroid/media/AudioManager;)Ljava/util/List;
+HPLandroid/media/AudioManager;->abandonAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;)I
+HPLandroid/media/AudioManager;->abandonAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;)I
+HPLandroid/media/AudioManager;->abandonAudioFocusRequest(Landroid/media/AudioFocusRequest;)I
+HPLandroid/media/AudioManager;->access$000(Landroid/media/AudioManager;Ljava/lang/String;)Landroid/media/AudioManager$FocusRequestInfo;
+PLandroid/media/AudioManager;->access$1000(Landroid/media/AudioManager;)Landroid/util/ArrayMap;
+PLandroid/media/AudioManager;->access$1100(Landroid/media/AudioManager;Landroid/os/Handler;)V
+PLandroid/media/AudioManager;->access$500(Landroid/media/AudioManager;)Ljava/lang/Object;
+PLandroid/media/AudioManager;->access$600(Landroid/media/AudioManager;)Ljava/util/List;
+HPLandroid/media/AudioManager;->access$700(Landroid/media/AudioManager;)Ljava/lang/Object;
+HPLandroid/media/AudioManager;->access$800(Landroid/media/AudioManager;)Ljava/util/List;
+PLandroid/media/AudioManager;->adjustToString(I)Ljava/lang/String;
+HSPLandroid/media/AudioManager;->broadcastDeviceListChange_sync(Landroid/os/Handler;)V
+HSPLandroid/media/AudioManager;->calcListDeltas(Ljava/util/ArrayList;Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
+PLandroid/media/AudioManager;->checkFlags(Landroid/media/AudioDevicePort;I)Z
+PLandroid/media/AudioManager;->checkTypes(Landroid/media/AudioDevicePort;)Z
+HPLandroid/media/AudioManager;->filterDevicePorts(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+HPLandroid/media/AudioManager;->findFocusRequestInfo(Ljava/lang/String;)Landroid/media/AudioManager$FocusRequestInfo;
+HPLandroid/media/AudioManager;->forceVolumeControlStream(I)V
+HSPLandroid/media/AudioManager;->getActivePlaybackConfigurations()Ljava/util/List;
+HPLandroid/media/AudioManager;->getActiveRecordingConfigurations()Ljava/util/List;
HSPLandroid/media/AudioManager;->getContext()Landroid/content/Context;
+HSPLandroid/media/AudioManager;->getDevices(I)[Landroid/media/AudioDeviceInfo;
+HPLandroid/media/AudioManager;->getDevicesForStream(I)I
+PLandroid/media/AudioManager;->getDevicesStatic(I)[Landroid/media/AudioDeviceInfo;
+PLandroid/media/AudioManager;->getFocusRampTimeMs(ILandroid/media/AudioAttributes;)I
+HPLandroid/media/AudioManager;->getIdForAudioFocusListener(Landroid/media/AudioManager$OnAudioFocusChangeListener;)Ljava/lang/String;
+HPLandroid/media/AudioManager;->getLastAudibleStreamVolume(I)I
+HSPLandroid/media/AudioManager;->getMode()I
+HPLandroid/media/AudioManager;->getProperty(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/media/AudioManager;->getRingerMode()I
HSPLandroid/media/AudioManager;->getRingerModeInternal()I
+PLandroid/media/AudioManager;->getRingtonePlayer()Landroid/media/IRingtonePlayer;
HSPLandroid/media/AudioManager;->getService()Landroid/media/IAudioService;
HSPLandroid/media/AudioManager;->getStreamMaxVolume(I)I
+HSPLandroid/media/AudioManager;->getStreamMinVolume(I)I
+HSPLandroid/media/AudioManager;->getStreamMinVolumeInt(I)I
HSPLandroid/media/AudioManager;->getStreamVolume(I)I
+HPLandroid/media/AudioManager;->getUiSoundsStreamType()I
HSPLandroid/media/AudioManager;->hasPlaybackCallback_sync(Landroid/media/AudioManager$AudioPlaybackCallback;)Z
+HSPLandroid/media/AudioManager;->hasRecordCallback_sync(Landroid/media/AudioManager$AudioRecordingCallback;)Z
+HSPLandroid/media/AudioManager;->infoListFromPortList(Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
+PLandroid/media/AudioManager;->isAudioFocusExclusive()Z
+HPLandroid/media/AudioManager;->isAudioServerRunning()Z
+HPLandroid/media/AudioManager;->isBluetoothA2dpOn()Z
+HSPLandroid/media/AudioManager;->isBluetoothScoOn()Z
+PLandroid/media/AudioManager;->isHapticPlaybackSupported()Z
+PLandroid/media/AudioManager;->isInputDevice(I)Z
+HSPLandroid/media/AudioManager;->isMusicActive()Z
+HSPLandroid/media/AudioManager;->isPublicStreamType(I)Z
+HSPLandroid/media/AudioManager;->isSpeakerphoneOn()Z
+HPLandroid/media/AudioManager;->isStreamMute(I)Z
HSPLandroid/media/AudioManager;->isVolumeFixed()Z
+HSPLandroid/media/AudioManager;->isWiredHeadsetOn()Z
+PLandroid/media/AudioManager;->listAudioDevicePorts(Ljava/util/ArrayList;)I
+HPLandroid/media/AudioManager;->notifyVolumeControllerVisible(Landroid/media/IVolumeController;Z)V
+HSPLandroid/media/AudioManager;->playSoundEffect(I)V
+HPLandroid/media/AudioManager;->playSoundEffect(II)V
+HPLandroid/media/AudioManager;->preDispatchKeyEvent(Landroid/view/KeyEvent;I)V
+HPLandroid/media/AudioManager;->querySoundEffectsEnabled(I)Z
+HSPLandroid/media/AudioManager;->registerAudioDeviceCallback(Landroid/media/AudioDeviceCallback;Landroid/os/Handler;)V
+HPLandroid/media/AudioManager;->registerAudioFocusRequest(Landroid/media/AudioFocusRequest;)V
HSPLandroid/media/AudioManager;->registerAudioPlaybackCallback(Landroid/media/AudioManager$AudioPlaybackCallback;Landroid/os/Handler;)V
+HSPLandroid/media/AudioManager;->registerAudioPolicy(Landroid/media/audiopolicy/AudioPolicy;)I
+HSPLandroid/media/AudioManager;->registerAudioPolicyStatic(Landroid/media/audiopolicy/AudioPolicy;)I
+HSPLandroid/media/AudioManager;->registerAudioPortUpdateListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
+HSPLandroid/media/AudioManager;->registerAudioRecordingCallback(Landroid/media/AudioManager$AudioRecordingCallback;Landroid/os/Handler;)V
+HPLandroid/media/AudioManager;->removePlaybackCallback_sync(Landroid/media/AudioManager$AudioPlaybackCallback;)Z
+HPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioFocusRequest;)I
+HPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioFocusRequest;Landroid/media/audiopolicy/AudioPolicy;)I
+HPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;II)I
+HPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;II)I
+HPLandroid/media/AudioManager;->requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;IILandroid/media/audiopolicy/AudioPolicy;)I
+PLandroid/media/AudioManager;->resetAudioPortGeneration()I
+HSPLandroid/media/AudioManager;->setAllowedCapturePolicy(I)V
HSPLandroid/media/AudioManager;->setContext(Landroid/content/Context;)V
+HSPLandroid/media/AudioManager;->setParameters(Ljava/lang/String;)V
+HPLandroid/media/AudioManager;->setRingerModeInternal(I)V
+PLandroid/media/AudioManager;->setStreamVolume(III)V
+HPLandroid/media/AudioManager;->unregisterAudioFocusRequest(Landroid/media/AudioManager$OnAudioFocusChangeListener;)V
+HPLandroid/media/AudioManager;->unregisterAudioPlaybackCallback(Landroid/media/AudioManager$AudioPlaybackCallback;)V
+HPLandroid/media/AudioManager;->unregisterAudioPolicyAsync(Landroid/media/audiopolicy/AudioPolicy;)V
+HPLandroid/media/AudioManager;->unregisterAudioPolicyAsyncStatic(Landroid/media/audiopolicy/AudioPolicy;)V
+HSPLandroid/media/AudioManager;->updateAudioPortCache(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I
+HSPLandroid/media/AudioManager;->updatePortConfig(Landroid/media/AudioPortConfig;Ljava/util/ArrayList;)Landroid/media/AudioPortConfig;
+HSPLandroid/media/AudioManagerInternal;-><init>()V
+HSPLandroid/media/AudioMixPort;-><init>(Landroid/media/AudioHandle;IILjava/lang/String;[I[I[I[I[Landroid/media/AudioGain;)V
+HSPLandroid/media/AudioMixPort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioMixPortConfig;
+HSPLandroid/media/AudioMixPort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioPortConfig;
+HSPLandroid/media/AudioMixPortConfig;-><init>(Landroid/media/AudioMixPort;IIILandroid/media/AudioGainConfig;)V
+HSPLandroid/media/AudioPatch;-><init>(Landroid/media/AudioHandle;[Landroid/media/AudioPortConfig;[Landroid/media/AudioPortConfig;)V
+HSPLandroid/media/AudioPatch;->sinks()[Landroid/media/AudioPortConfig;
+HSPLandroid/media/AudioPatch;->sources()[Landroid/media/AudioPortConfig;
+HSPLandroid/media/AudioPlaybackConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioPlaybackConfiguration;
+HSPLandroid/media/AudioPlaybackConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/AudioPlaybackConfiguration$IPlayerShell;-><init>(Landroid/media/AudioPlaybackConfiguration;Landroid/media/IPlayer;)V
+PLandroid/media/AudioPlaybackConfiguration$IPlayerShell;->binderDied()V
+PLandroid/media/AudioPlaybackConfiguration$IPlayerShell;->getIPlayer()Landroid/media/IPlayer;
+HSPLandroid/media/AudioPlaybackConfiguration$IPlayerShell;->monitorDeath()V
+PLandroid/media/AudioPlaybackConfiguration$IPlayerShell;->release()V
+PLandroid/media/AudioPlaybackConfiguration;-><init>(I)V
+HSPLandroid/media/AudioPlaybackConfiguration;-><init>(Landroid/media/PlayerBase$PlayerIdCard;III)V
+HSPLandroid/media/AudioPlaybackConfiguration;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/media/AudioPlaybackConfiguration;-><init>(Landroid/os/Parcel;Landroid/media/AudioPlaybackConfiguration$1;)V
+PLandroid/media/AudioPlaybackConfiguration;->access$300(Landroid/media/AudioPlaybackConfiguration;)V
+PLandroid/media/AudioPlaybackConfiguration;->anonymizedCopy(Landroid/media/AudioPlaybackConfiguration;)Landroid/media/AudioPlaybackConfiguration;
+HSPLandroid/media/AudioPlaybackConfiguration;->getAudioAttributes()Landroid/media/AudioAttributes;
+HSPLandroid/media/AudioPlaybackConfiguration;->getClientPid()I
+HSPLandroid/media/AudioPlaybackConfiguration;->getClientUid()I
+HSPLandroid/media/AudioPlaybackConfiguration;->getPlayerInterfaceId()I
+HSPLandroid/media/AudioPlaybackConfiguration;->getPlayerState()I
+HSPLandroid/media/AudioPlaybackConfiguration;->getPlayerType()I
+PLandroid/media/AudioPlaybackConfiguration;->handleStateEvent(I)Z
+HSPLandroid/media/AudioPlaybackConfiguration;->init()V
+PLandroid/media/AudioPlaybackConfiguration;->isActive()Z
+PLandroid/media/AudioPlaybackConfiguration;->playerDied()V
+PLandroid/media/AudioPlaybackConfiguration;->toLogFriendlyPlayerState(I)Ljava/lang/String;
+PLandroid/media/AudioPlaybackConfiguration;->toLogFriendlyPlayerType(I)Ljava/lang/String;
+PLandroid/media/AudioPlaybackConfiguration;->toLogFriendlyString(Landroid/media/AudioPlaybackConfiguration;)Ljava/lang/String;
+HPLandroid/media/AudioPlaybackConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/media/AudioPort;-><init>(Landroid/media/AudioHandle;ILjava/lang/String;[I[I[I[I[Landroid/media/AudioGain;)V
+HSPLandroid/media/AudioPort;->handle()Landroid/media/AudioHandle;
+HSPLandroid/media/AudioPort;->id()I
+HSPLandroid/media/AudioPort;->name()Ljava/lang/String;
+HSPLandroid/media/AudioPort;->role()I
+HSPLandroid/media/AudioPortConfig;-><init>(Landroid/media/AudioPort;IIILandroid/media/AudioGainConfig;)V
+HSPLandroid/media/AudioPortConfig;->channelMask()I
+HSPLandroid/media/AudioPortConfig;->format()I
+HSPLandroid/media/AudioPortConfig;->gain()Landroid/media/AudioGainConfig;
+HSPLandroid/media/AudioPortConfig;->port()Landroid/media/AudioPort;
+HSPLandroid/media/AudioPortConfig;->samplingRate()I
+PLandroid/media/AudioPortEventHandler$1;-><init>(Landroid/media/AudioPortEventHandler;Landroid/os/Looper;)V
+HSPLandroid/media/AudioPortEventHandler$1;->handleMessage(Landroid/os/Message;)V
+PLandroid/media/AudioPortEventHandler;->access$000(Landroid/media/AudioPortEventHandler;)Ljava/lang/Object;
+PLandroid/media/AudioPortEventHandler;->access$100(Landroid/media/AudioPortEventHandler;)Ljava/util/ArrayList;
+PLandroid/media/AudioPortEventHandler;->handler()Landroid/os/Handler;
+HSPLandroid/media/AudioPortEventHandler;->init()V
+PLandroid/media/AudioPortEventHandler;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+HSPLandroid/media/AudioPortEventHandler;->registerListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
+HSPLandroid/media/AudioRecord;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)V
+HSPLandroid/media/AudioRecord;->audioBuffSizeCheck(I)V
+HSPLandroid/media/AudioRecord;->audioParamCheck(III)V
+HPLandroid/media/AudioRecord;->finalize()V
+HSPLandroid/media/AudioRecord;->getChannelMaskFromLegacyConfig(IZ)I
+HSPLandroid/media/AudioRecord;->getMinBufferSize(III)I
+HSPLandroid/media/AudioRecord;->getRecordingState()I
+HPLandroid/media/AudioRecord;->getState()I
+HSPLandroid/media/AudioRecord;->handleFullVolumeRec(Z)V
+HPLandroid/media/AudioRecord;->read(Ljava/nio/ByteBuffer;I)I
+HPLandroid/media/AudioRecord;->read(Ljava/nio/ByteBuffer;II)I
+HPLandroid/media/AudioRecord;->read([BII)I
+HSPLandroid/media/AudioRecord;->read([BIII)I
+HPLandroid/media/AudioRecord;->release()V
+HSPLandroid/media/AudioRecord;->startRecording()V
+HPLandroid/media/AudioRecord;->stop()V
+PLandroid/media/AudioRecordingConfiguration$1;-><init>()V
+HPLandroid/media/AudioRecordingConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioRecordingConfiguration;
+HPLandroid/media/AudioRecordingConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/media/AudioRecordingConfiguration;-><clinit>()V
+PLandroid/media/AudioRecordingConfiguration;-><init>(IIILandroid/media/AudioFormat;Landroid/media/AudioFormat;ILjava/lang/String;IZI[Landroid/media/audiofx/AudioEffect$Descriptor;[Landroid/media/audiofx/AudioEffect$Descriptor;)V
+HPLandroid/media/AudioRecordingConfiguration;-><init>(Landroid/os/Parcel;)V
+HPLandroid/media/AudioRecordingConfiguration;-><init>(Landroid/os/Parcel;Landroid/media/AudioRecordingConfiguration$1;)V
+PLandroid/media/AudioRecordingConfiguration;->anonymizedCopy(Landroid/media/AudioRecordingConfiguration;)Landroid/media/AudioRecordingConfiguration;
+PLandroid/media/AudioRecordingConfiguration;->equals(Ljava/lang/Object;)Z
+PLandroid/media/AudioRecordingConfiguration;->getClientAudioSessionId()I
+PLandroid/media/AudioRecordingConfiguration;->getClientAudioSource()I
+PLandroid/media/AudioRecordingConfiguration;->getClientPackageName()Ljava/lang/String;
+PLandroid/media/AudioRecordingConfiguration;->getClientUid()I
+PLandroid/media/AudioRecordingConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/media/AudioRoutesInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/AudioRoutesInfo;
HSPLandroid/media/AudioRoutesInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/AudioRoutesInfo;-><init>()V
+HSPLandroid/media/AudioRoutesInfo;-><init>(Landroid/media/AudioRoutesInfo;)V
+PLandroid/media/AudioRoutesInfo;->toString()Ljava/lang/String;
+PLandroid/media/AudioRoutesInfo;->typeToString(I)Ljava/lang/String;
+PLandroid/media/AudioRoutesInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/media/AudioSystem;->errorCallbackFromNative(I)V
+PLandroid/media/AudioSystem;->forceUseConfigToString(I)Ljava/lang/String;
+PLandroid/media/AudioSystem;->forceUseUsageToString(I)Ljava/lang/String;
+PLandroid/media/AudioSystem;->getDeviceName(I)Ljava/lang/String;
+HSPLandroid/media/AudioSystem;->getNumStreamTypes()I
+HSPLandroid/media/AudioSystem;->getOutputDeviceName(I)Ljava/lang/String;
+HSPLandroid/media/AudioSystem;->getPlatformType(Landroid/content/Context;)I
+HSPLandroid/media/AudioSystem;->getValueForVibrateSetting(III)I
HSPLandroid/media/AudioSystem;->isSingleVolume(Landroid/content/Context;)Z
+PLandroid/media/AudioSystem;->recordingCallbackFromNative(IIIIIIZ[I[Landroid/media/audiofx/AudioEffect$Descriptor;[Landroid/media/audiofx/AudioEffect$Descriptor;I)V
+PLandroid/media/AudioSystem;->setDynamicPolicyCallback(Landroid/media/AudioSystem$DynamicPolicyCallback;)V
+HSPLandroid/media/AudioSystem;->setErrorCallback(Landroid/media/AudioSystem$ErrorCallback;)V
+HSPLandroid/media/AudioSystem;->setRecordingCallback(Landroid/media/AudioSystem$AudioRecordingCallback;)V
+HSPLandroid/media/AudioSystem;->setStreamVolumeIndexAS(III)I
+PLandroid/media/AudioSystem;->streamToString(I)Ljava/lang/String;
+HPLandroid/media/AudioTimestamp;-><init>()V
+HPLandroid/media/AudioTrack;-><init>(IIIIII)V
+HPLandroid/media/AudioTrack;-><init>(IIIIIII)V
+HPLandroid/media/AudioTrack;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;III)V
+HPLandroid/media/AudioTrack;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;IIIZ)V
+HPLandroid/media/AudioTrack;->audioBuffSizeCheck(I)V
+HPLandroid/media/AudioTrack;->audioParamCheck(IIIII)V
+HPLandroid/media/AudioTrack;->blockUntilOffloadDrain(I)Z
+HPLandroid/media/AudioTrack;->clampGainOrLevel(F)F
+HPLandroid/media/AudioTrack;->createVolumeShaper(Landroid/media/VolumeShaper$Configuration;)Landroid/media/VolumeShaper;
+HPLandroid/media/AudioTrack;->endStreamEventHandling()V
+HPLandroid/media/AudioTrack;->finalize()V
+HPLandroid/media/AudioTrack;->flush()V
+HPLandroid/media/AudioTrack;->getAudioSessionId()I
+HPLandroid/media/AudioTrack;->getLatency()I
+HSPLandroid/media/AudioTrack;->getMinBufferSize(III)I
+HPLandroid/media/AudioTrack;->getNativeOutputSampleRate(I)I
+HPLandroid/media/AudioTrack;->getPlayState()I
+HPLandroid/media/AudioTrack;->getPlaybackHeadPosition()I
+HPLandroid/media/AudioTrack;->getSampleRate()I
+HPLandroid/media/AudioTrack;->getState()I
+HPLandroid/media/AudioTrack;->getTimestamp(Landroid/media/AudioTimestamp;)Z
+HPLandroid/media/AudioTrack;->pause()V
+HPLandroid/media/AudioTrack;->play()V
+HPLandroid/media/AudioTrack;->playerApplyVolumeShaper(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)I
+HPLandroid/media/AudioTrack;->playerSetVolume(ZFF)V
+HPLandroid/media/AudioTrack;->release()V
+HPLandroid/media/AudioTrack;->setStereoVolume(FF)I
+HPLandroid/media/AudioTrack;->setVolume(F)I
+HPLandroid/media/AudioTrack;->shouldEnablePowerSaving(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;II)Z
+HPLandroid/media/AudioTrack;->startImpl()V
+HPLandroid/media/AudioTrack;->stop()V
+HPLandroid/media/AudioTrack;->write(Ljava/nio/ByteBuffer;II)I
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;-><init>(Ljava/io/InputStream;)V
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;-><init>([B)V
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->access$1000(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)I
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->access$900(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)I
+HPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->available()I
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->peek()I
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->read()I
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->readByte()B
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->readFully([B)V
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->readInt()I
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->readShort()S
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedInt()J
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedShort()I
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->setByteOrder(Ljava/nio/ByteOrder;)V
+HSPLandroid/media/ExifInterface$ByteOrderedDataInputStream;->skipBytes(I)I
+HSPLandroid/media/ExifInterface$ExifAttribute;-><init>(IIJ[B)V
+HSPLandroid/media/ExifInterface$ExifAttribute;-><init>(IIJ[BLandroid/media/ExifInterface$1;)V
+HSPLandroid/media/ExifInterface$ExifAttribute;-><init>(II[B)V
+HSPLandroid/media/ExifInterface$ExifAttribute;->createString(Ljava/lang/String;)Landroid/media/ExifInterface$ExifAttribute;
+HSPLandroid/media/ExifInterface$ExifAttribute;->createULong(JLjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+HSPLandroid/media/ExifInterface$ExifAttribute;->createULong([JLjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+HSPLandroid/media/ExifInterface$ExifAttribute;->createUShort([ILjava/nio/ByteOrder;)Landroid/media/ExifInterface$ExifAttribute;
+HSPLandroid/media/ExifInterface$ExifAttribute;->getIntValue(Ljava/nio/ByteOrder;)I
+HSPLandroid/media/ExifInterface$ExifAttribute;->getStringValue(Ljava/nio/ByteOrder;)Ljava/lang/String;
+HSPLandroid/media/ExifInterface$ExifAttribute;->getValue(Ljava/nio/ByteOrder;)Ljava/lang/Object;
+HSPLandroid/media/ExifInterface$ExifAttribute;->size()I
+HSPLandroid/media/ExifInterface;-><init>(Ljava/io/InputStream;)V
+HSPLandroid/media/ExifInterface;-><init>(Ljava/io/InputStream;Z)V
+HSPLandroid/media/ExifInterface;-><init>(Ljava/lang/String;)V
+HSPLandroid/media/ExifInterface;->access$000()[I
+HSPLandroid/media/ExifInterface;->access$100()Ljava/nio/charset/Charset;
+HSPLandroid/media/ExifInterface;->addDefaultValuesForCompatibility()V
+HSPLandroid/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/media/ExifInterface;->getAttributeInt(Ljava/lang/String;I)I
+HSPLandroid/media/ExifInterface;->getExifAttribute(Ljava/lang/String;)Landroid/media/ExifInterface$ExifAttribute;
+HSPLandroid/media/ExifInterface;->getJpegAttributes(Landroid/media/ExifInterface$ByteOrderedDataInputStream;II)V
+HSPLandroid/media/ExifInterface;->getMimeType(Ljava/io/BufferedInputStream;)I
+HSPLandroid/media/ExifInterface;->getPngAttributes(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)V
+HPLandroid/media/ExifInterface;->getRawAttributes(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)V
+HSPLandroid/media/ExifInterface;->getThumbnail()[B
+HSPLandroid/media/ExifInterface;->guessDataFormat(Ljava/lang/String;)Landroid/util/Pair;
+HSPLandroid/media/ExifInterface;->handleThumbnailFromJfif(Landroid/media/ExifInterface$ByteOrderedDataInputStream;Ljava/util/HashMap;)V
+HSPLandroid/media/ExifInterface;->initForFilename(Ljava/lang/String;)V
+HSPLandroid/media/ExifInterface;->isHeifFormat([B)Z
+HSPLandroid/media/ExifInterface;->isOrfFormat([B)Z
+HSPLandroid/media/ExifInterface;->isRw2Format([B)Z
+HSPLandroid/media/ExifInterface;->isSeekableFD(Ljava/io/FileDescriptor;)Z
+HPLandroid/media/ExifInterface;->isWebpFormat([B)Z
+HSPLandroid/media/ExifInterface;->loadAttributes(Ljava/io/InputStream;)V
+HSPLandroid/media/ExifInterface;->parseTiffHeaders(Landroid/media/ExifInterface$ByteOrderedDataInputStream;I)V
+HSPLandroid/media/ExifInterface;->readByteOrder(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)Ljava/nio/ByteOrder;
+HSPLandroid/media/ExifInterface;->readImageFileDirectory(Landroid/media/ExifInterface$ByteOrderedDataInputStream;I)V
+HSPLandroid/media/ExifInterface;->removeAttribute(Ljava/lang/String;)V
+HSPLandroid/media/ExifInterface;->saveAttributes()V
+HSPLandroid/media/ExifInterface;->saveJpegAttributes(Ljava/io/InputStream;Ljava/io/OutputStream;)V
+HSPLandroid/media/ExifInterface;->setAttribute(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/media/ExifInterface;->setThumbnailData(Landroid/media/ExifInterface$ByteOrderedDataInputStream;)V
+HSPLandroid/media/ExifInterface;->writeExifSegment(Landroid/media/ExifInterface$ByteOrderedDataOutputStream;)I
+PLandroid/media/IAudioFocusDispatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/IAudioFocusDispatcher$Stub$Proxy;->dispatchAudioFocusChange(ILjava/lang/String;)V
HSPLandroid/media/IAudioFocusDispatcher$Stub;-><init>()V
+HPLandroid/media/IAudioFocusDispatcher$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/media/IAudioFocusDispatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioFocusDispatcher;
+HPLandroid/media/IAudioFocusDispatcher$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/IAudioRoutesObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/IAudioRoutesObserver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/media/IAudioRoutesObserver$Stub$Proxy;->dispatchAudioRoutesChanged(Landroid/media/AudioRoutesInfo;)V
+HSPLandroid/media/IAudioRoutesObserver$Stub;-><init>()V
HSPLandroid/media/IAudioRoutesObserver$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/media/IAudioRoutesObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioRoutesObserver;
+HPLandroid/media/IAudioRoutesObserver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/IAudioServerStateDispatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/IAudioServerStateDispatcher$Stub$Proxy;->asBinder()Landroid/os/IBinder;
HSPLandroid/media/IAudioServerStateDispatcher$Stub;-><init>()V
-HSPLandroid/media/IAudioService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/IAudioServerStateDispatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioServerStateDispatcher;
+HPLandroid/media/IAudioService$Stub$Proxy;->abandonAudioFocus(Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Landroid/media/AudioAttributes;Ljava/lang/String;)I
+HSPLandroid/media/IAudioService$Stub$Proxy;->forceRemoteSubmixFullVolume(ZLandroid/os/IBinder;)V
+HPLandroid/media/IAudioService$Stub$Proxy;->forceVolumeControlStream(ILandroid/os/IBinder;)V
+HSPLandroid/media/IAudioService$Stub$Proxy;->getActivePlaybackConfigurations()Ljava/util/List;
+HPLandroid/media/IAudioService$Stub$Proxy;->getActiveRecordingConfigurations()Ljava/util/List;
+HPLandroid/media/IAudioService$Stub$Proxy;->getLastAudibleStreamVolume(I)I
+HSPLandroid/media/IAudioService$Stub$Proxy;->getMode()I
+HSPLandroid/media/IAudioService$Stub$Proxy;->getRingerModeExternal()I
+HSPLandroid/media/IAudioService$Stub$Proxy;->getRingerModeInternal()I
HSPLandroid/media/IAudioService$Stub$Proxy;->getStreamMaxVolume(I)I
+HSPLandroid/media/IAudioService$Stub$Proxy;->getStreamMinVolume(I)I
HSPLandroid/media/IAudioService$Stub$Proxy;->getStreamVolume(I)I
+HPLandroid/media/IAudioService$Stub$Proxy;->getUiSoundsStreamType()I
+HPLandroid/media/IAudioService$Stub$Proxy;->isAudioServerRunning()Z
+HPLandroid/media/IAudioService$Stub$Proxy;->isBluetoothA2dpOn()Z
+HSPLandroid/media/IAudioService$Stub$Proxy;->isBluetoothScoOn()Z
+HSPLandroid/media/IAudioService$Stub$Proxy;->isCameraSoundForced()Z
+HSPLandroid/media/IAudioService$Stub$Proxy;->isSpeakerphoneOn()Z
+HPLandroid/media/IAudioService$Stub$Proxy;->isStreamMute(I)Z
+HPLandroid/media/IAudioService$Stub$Proxy;->notifyVolumeControllerVisible(Landroid/media/IVolumeController;Z)V
+HPLandroid/media/IAudioService$Stub$Proxy;->playSoundEffect(I)V
+HPLandroid/media/IAudioService$Stub$Proxy;->playerAttributes(ILandroid/media/AudioAttributes;)V
+PLandroid/media/IAudioService$Stub$Proxy;->playerEvent(II)V
+HSPLandroid/media/IAudioService$Stub$Proxy;->registerAudioPolicy(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;ZZZZLandroid/media/projection/IMediaProjection;)Ljava/lang/String;
+HSPLandroid/media/IAudioService$Stub$Proxy;->registerPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
+HSPLandroid/media/IAudioService$Stub$Proxy;->registerRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V
+HSPLandroid/media/IAudioService$Stub$Proxy;->releasePlayer(I)V
+HPLandroid/media/IAudioService$Stub$Proxy;->requestAudioFocus(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;ILandroid/media/audiopolicy/IAudioPolicyCallback;I)I
+HPLandroid/media/IAudioService$Stub$Proxy;->setRingerModeInternal(ILjava/lang/String;)V
+PLandroid/media/IAudioService$Stub$Proxy;->setStreamVolume(IIILjava/lang/String;)V
HSPLandroid/media/IAudioService$Stub$Proxy;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo;
+HSPLandroid/media/IAudioService$Stub$Proxy;->trackPlayer(Landroid/media/PlayerBase$PlayerIdCard;)I
+HPLandroid/media/IAudioService$Stub$Proxy;->unregisterAudioPolicyAsync(Landroid/media/audiopolicy/IAudioPolicyCallback;)V
+HPLandroid/media/IAudioService$Stub$Proxy;->unregisterPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
+HSPLandroid/media/IAudioService$Stub;-><init>()V
HSPLandroid/media/IAudioService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioService;
+PLandroid/media/IAudioService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/media/IAudioService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/media/IMediaResourceMonitor$Stub;-><init>()V
+PLandroid/media/IMediaResourceMonitor$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/media/IMediaResourceMonitor$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/IMediaRouterClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/IMediaRouterClient$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/media/IMediaRouterClient$Stub$Proxy;->onRestoreRoute()V
+PLandroid/media/IMediaRouterClient$Stub$Proxy;->onStateChanged()V
+HSPLandroid/media/IMediaRouterClient$Stub;-><init>()V
HSPLandroid/media/IMediaRouterClient$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/media/IMediaRouterClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaRouterClient;
+PLandroid/media/IMediaRouterClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/media/IMediaRouterService$Stub$Proxy;->getState(Landroid/media/IMediaRouterClient;)Landroid/media/MediaRouterClientState;
HSPLandroid/media/IMediaRouterService$Stub$Proxy;->isPlaybackActive(Landroid/media/IMediaRouterClient;)Z
HSPLandroid/media/IMediaRouterService$Stub$Proxy;->registerClientAsUser(Landroid/media/IMediaRouterClient;Ljava/lang/String;I)V
+HSPLandroid/media/IMediaRouterService$Stub$Proxy;->registerClientGroupId(Landroid/media/IMediaRouterClient;Ljava/lang/String;)V
HSPLandroid/media/IMediaRouterService$Stub$Proxy;->setDiscoveryRequest(Landroid/media/IMediaRouterClient;IZ)V
HSPLandroid/media/IMediaRouterService$Stub$Proxy;->setSelectedRoute(Landroid/media/IMediaRouterClient;Ljava/lang/String;Z)V
+HSPLandroid/media/IMediaRouterService$Stub;-><init>()V
+HSPLandroid/media/IMediaRouterService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaRouterService;
+PLandroid/media/IMediaRouterService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/media/IMediaRouterService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/IPlaybackConfigDispatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/IPlaybackConfigDispatcher$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/media/IPlaybackConfigDispatcher$Stub$Proxy;->dispatchPlaybackConfigChange(Ljava/util/List;Z)V
HSPLandroid/media/IPlaybackConfigDispatcher$Stub;-><init>()V
HSPLandroid/media/IPlaybackConfigDispatcher$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/media/IPlaybackConfigDispatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IPlaybackConfigDispatcher;
+HPLandroid/media/IPlaybackConfigDispatcher$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/media/IPlayer$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/IPlayer$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/IPlayer$Stub;-><init>()V
HSPLandroid/media/IPlayer$Stub;->asBinder()Landroid/os/IBinder;
-PLandroid/media/IPlayer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IPlayer;
+HSPLandroid/media/IPlayer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IPlayer;
+PLandroid/media/IRecordingConfigDispatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/IRecordingConfigDispatcher$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/media/IRecordingConfigDispatcher$Stub$Proxy;->dispatchRecordingConfigChange(Ljava/util/List;)V
HSPLandroid/media/IRecordingConfigDispatcher$Stub;-><init>()V
+HSPLandroid/media/IRecordingConfigDispatcher$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/media/IRecordingConfigDispatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IRecordingConfigDispatcher;
+HPLandroid/media/IRecordingConfigDispatcher$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/IRemoteVolumeController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/IRemoteVolumeController$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/media/IRemoteVolumeController$Stub$Proxy;->updateRemoteController(Landroid/media/session/MediaSession$Token;)V
+HSPLandroid/media/IRemoteVolumeController$Stub;-><init>()V
+PLandroid/media/IRemoteVolumeController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IRemoteVolumeController;
+HPLandroid/media/IRemoteVolumeController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/media/IRemoteVolumeObserver$Stub;-><init>()V
+PLandroid/media/IRingtonePlayer$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/IRingtonePlayer$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/media/IRingtonePlayer$Stub$Proxy;->stopAsync()V
+PLandroid/media/IRingtonePlayer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IRingtonePlayer;
+HPLandroid/media/IRingtonePlayer$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/IVolumeController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/IVolumeController$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/media/IVolumeController$Stub$Proxy;->setLayoutDirection(I)V
+PLandroid/media/IVolumeController$Stub$Proxy;->volumeChanged(II)V
+HPLandroid/media/IVolumeController$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/media/IVolumeController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IVolumeController;
+HPLandroid/media/IVolumeController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/media/MediaCodec$BufferInfo;-><init>()V
+HPLandroid/media/MediaCodec$BufferInfo;->set(IIJI)V
+HPLandroid/media/MediaCodec$BufferMap$CodecBuffer;-><init>()V
+HPLandroid/media/MediaCodec$BufferMap$CodecBuffer;-><init>(Landroid/media/MediaCodec$1;)V
+HPLandroid/media/MediaCodec$BufferMap$CodecBuffer;->free()V
+HPLandroid/media/MediaCodec$BufferMap$CodecBuffer;->setByteBuffer(Ljava/nio/ByteBuffer;)V
+HPLandroid/media/MediaCodec$BufferMap;->clear()V
+HPLandroid/media/MediaCodec$BufferMap;->put(ILjava/nio/ByteBuffer;)V
+HSPLandroid/media/MediaCodec$BufferMap;->remove(I)V
+HSPLandroid/media/MediaCodec$CryptoInfo$Pattern;-><init>(II)V
+HSPLandroid/media/MediaCodec$CryptoInfo$Pattern;->set(II)V
+HSPLandroid/media/MediaCodec$CryptoInfo;-><init>()V
+HPLandroid/media/MediaCodec$CryptoInfo;->set(I[I[I[B[BI)V
+HPLandroid/media/MediaCodec$CryptoInfo;->setPattern(Landroid/media/MediaCodec$CryptoInfo$Pattern;)V
+HSPLandroid/media/MediaCodec;-><init>(Ljava/lang/String;ZZ)V
+HSPLandroid/media/MediaCodec;->cacheBuffers(Z)V
+HSPLandroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V
+HSPLandroid/media/MediaCodec;->configure(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;Landroid/os/IHwBinder;I)V
+HSPLandroid/media/MediaCodec;->createByCodecName(Ljava/lang/String;)Landroid/media/MediaCodec;
+HSPLandroid/media/MediaCodec;->dequeueInputBuffer(J)I
+HSPLandroid/media/MediaCodec;->dequeueOutputBuffer(Landroid/media/MediaCodec$BufferInfo;J)I
+HPLandroid/media/MediaCodec;->finalize()V
+HPLandroid/media/MediaCodec;->flush()V
+HPLandroid/media/MediaCodec;->freeAllTrackedBuffers()V
+HPLandroid/media/MediaCodec;->getInputBuffer(I)Ljava/nio/ByteBuffer;
+HSPLandroid/media/MediaCodec;->getInputBuffers()[Ljava/nio/ByteBuffer;
+HPLandroid/media/MediaCodec;->getOutputBuffer(I)Ljava/nio/ByteBuffer;
+HSPLandroid/media/MediaCodec;->getOutputBuffers()[Ljava/nio/ByteBuffer;
+HSPLandroid/media/MediaCodec;->getOutputFormat()Landroid/media/MediaFormat;
+HPLandroid/media/MediaCodec;->invalidateByteBuffer([Ljava/nio/ByteBuffer;I)V
+HPLandroid/media/MediaCodec;->invalidateByteBuffers([Ljava/nio/ByteBuffer;)V
+HSPLandroid/media/MediaCodec;->lockAndGetContext()J
+HSPLandroid/media/MediaCodec;->queueInputBuffer(IIIJI)V
+HPLandroid/media/MediaCodec;->queueSecureInputBuffer(IILandroid/media/MediaCodec$CryptoInfo;JI)V
+HPLandroid/media/MediaCodec;->release()V
+HPLandroid/media/MediaCodec;->releaseOutputBuffer(IJ)V
+HPLandroid/media/MediaCodec;->releaseOutputBuffer(IZ)V
+HSPLandroid/media/MediaCodec;->setAndUnlockContext(J)V
+HPLandroid/media/MediaCodec;->setOutputSurface(Landroid/view/Surface;)V
+HSPLandroid/media/MediaCodec;->start()V
+HPLandroid/media/MediaCodec;->stop()V
+HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->applyLevelLimits()V
+HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->applyLimits(ILandroid/util/Range;)V
+HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->createDiscreteSampleRates()V
+HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->getDefaultFormat(Landroid/media/MediaFormat;)V
+HPLandroid/media/MediaCodecInfo$AudioCapabilities;->getMaxInputChannelCount()I
+HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->initWithPlatformLimits()V
+HPLandroid/media/MediaCodecInfo$AudioCapabilities;->isSampleRateSupported(I)Z
+HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->limitSampleRates([I)V
+HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->limitSampleRates([Landroid/util/Range;)V
+HSPLandroid/media/MediaCodecInfo$AudioCapabilities;->parseFromInfo(Landroid/media/MediaFormat;)V
+HPLandroid/media/MediaCodecInfo$AudioCapabilities;->supports(Ljava/lang/Integer;Ljava/lang/Integer;)Z
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;-><init>()V
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;-><init>([Landroid/media/MediaCodecInfo$CodecProfileLevel;[IZLandroid/media/MediaFormat;Landroid/media/MediaFormat;)V
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;-><init>([Landroid/media/MediaCodecInfo$CodecProfileLevel;[IZLjava/util/Map;Ljava/util/Map;)V
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->checkFeature(Ljava/lang/String;I)Z
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->dup()Landroid/media/MediaCodecInfo$CodecCapabilities;
+HPLandroid/media/MediaCodecInfo$CodecCapabilities;->getAudioCapabilities()Landroid/media/MediaCodecInfo$AudioCapabilities;
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->getMimeType()Ljava/lang/String;
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->getValidFeatures()[Landroid/media/MediaCodecInfo$Feature;
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->getVideoCapabilities()Landroid/media/MediaCodecInfo$VideoCapabilities;
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->isEncoder()Z
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->isFeatureRequired(Ljava/lang/String;)Z
+HSPLandroid/media/MediaCodecInfo$CodecCapabilities;->isFeatureSupported(Ljava/lang/String;)Z
+HSPLandroid/media/MediaCodecInfo$EncoderCapabilities;->applyLevelLimits()V
+HSPLandroid/media/MediaCodecInfo$EncoderCapabilities;->getDefaultFormat(Landroid/media/MediaFormat;)V
+HSPLandroid/media/MediaCodecInfo$EncoderCapabilities;->parseFromInfo(Landroid/media/MediaFormat;)V
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;-><init>(IIIILandroid/util/Size;)V
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;-><init>(Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;Landroid/util/Size;)V
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;->covers(Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;)Z
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;->getCommonBlockSize(Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;)Landroid/util/Size;
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->applyAlignment(II)V
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->applyBlockLimits(IILandroid/util/Range;Landroid/util/Range;Landroid/util/Range;)V
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->applyLevelLimits()V
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->applyMacroBlockLimits(IIIIIJIIII)V
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->applyMacroBlockLimits(IIIJIIII)V
+HPLandroid/media/MediaCodecInfo$VideoCapabilities;->areSizeAndRateSupported(IID)Z
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->estimateFrameRatesFor(II)Landroid/util/Range;
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->findClosestSize(II)Landroid/util/Size;
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->getAchievableFrameRatesFor(II)Landroid/util/Range;
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->getBlockCount(II)I
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->getMeasuredFrameRates(Ljava/util/Map;)Ljava/util/Map;
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->getPerformancePoints(Ljava/util/Map;)Ljava/util/List;
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->initWithPlatformLimits()V
+HPLandroid/media/MediaCodecInfo$VideoCapabilities;->isSizeSupported(II)Z
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->lambda$getPerformancePoints$0(Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;Landroid/media/MediaCodecInfo$VideoCapabilities$PerformancePoint;)I
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->parseFromInfo(Landroid/media/MediaFormat;)V
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->parseWidthHeightRanges(Ljava/lang/Object;)Landroid/util/Pair;
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->supports(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Number;)Z
+HSPLandroid/media/MediaCodecInfo$VideoCapabilities;->updateLimits()V
+HSPLandroid/media/MediaCodecInfo;-><init>(Ljava/lang/String;Ljava/lang/String;I[Landroid/media/MediaCodecInfo$CodecCapabilities;)V
+HSPLandroid/media/MediaCodecInfo;->checkPowerOfTwo(ILjava/lang/String;)I
+HSPLandroid/media/MediaCodecInfo;->getCapabilitiesForType(Ljava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities;
+HSPLandroid/media/MediaCodecInfo;->getName()Ljava/lang/String;
+HSPLandroid/media/MediaCodecInfo;->getSupportedTypes()[Ljava/lang/String;
+HSPLandroid/media/MediaCodecInfo;->isEncoder()Z
+HSPLandroid/media/MediaCodecInfo;->isHardwareAccelerated()Z
+HSPLandroid/media/MediaCodecInfo;->isSoftwareOnly()Z
+HSPLandroid/media/MediaCodecInfo;->isVendor()Z
+HSPLandroid/media/MediaCodecInfo;->makeRegular()Landroid/media/MediaCodecInfo;
+HSPLandroid/media/MediaCodecList;-><init>(I)V
+HPLandroid/media/MediaCodecList;->getCodecCount()I
+HPLandroid/media/MediaCodecList;->getCodecInfoAt(I)Landroid/media/MediaCodecInfo;
+HSPLandroid/media/MediaCodecList;->getCodecInfos()[Landroid/media/MediaCodecInfo;
+HSPLandroid/media/MediaCodecList;->getGlobalSettings()Ljava/util/Map;
+HSPLandroid/media/MediaCodecList;->getNewCodecInfoAt(I)Landroid/media/MediaCodecInfo;
+HSPLandroid/media/MediaCodecList;->initCodecList()V
+HSPLandroid/media/MediaCrypto;-><init>(Ljava/util/UUID;[B)V
+HPLandroid/media/MediaCrypto;->finalize()V
+HSPLandroid/media/MediaCrypto;->getByteArrayFromUUID(Ljava/util/UUID;)[B
+HSPLandroid/media/MediaDescription;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/graphics/Bitmap;Landroid/net/Uri;Landroid/os/Bundle;Landroid/net/Uri;)V
+HSPLandroid/media/MediaDescription;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/graphics/Bitmap;Landroid/net/Uri;Landroid/os/Bundle;Landroid/net/Uri;Landroid/media/MediaDescription$1;)V
+HSPLandroid/media/MediaDescription;->toString()Ljava/lang/String;
+HSPLandroid/media/MediaDrm$KeyRequest;->getData()[B
+HPLandroid/media/MediaDrm$KeyStatus;-><init>([BI)V
+HPLandroid/media/MediaDrm$MediaDrmStateException;-><init>(ILjava/lang/String;)V
+HSPLandroid/media/MediaDrm;-><init>(Ljava/util/UUID;)V
+HSPLandroid/media/MediaDrm;->access$100(Landroid/media/MediaDrm;[BLjava/lang/String;)V
+HSPLandroid/media/MediaDrm;->access$200(Landroid/media/MediaDrm;[BLjava/lang/String;)V
+HSPLandroid/media/MediaDrm;->access$300(Landroid/media/MediaDrm;[B[B[B[B)[B
+HSPLandroid/media/MediaDrm;->access$400(Landroid/media/MediaDrm;[B[B[B[B)[B
+HSPLandroid/media/MediaDrm;->access$500(Landroid/media/MediaDrm;[B[B[B)[B
+HSPLandroid/media/MediaDrm;->access$600(Landroid/media/MediaDrm;[B[B[B[B)Z
+HSPLandroid/media/MediaDrm;->close()V
+HSPLandroid/media/MediaDrm;->createHandler()Landroid/os/Handler;
+HSPLandroid/media/MediaDrm;->createOnEventListener(Landroid/media/MediaDrm$OnEventListener;)Ljava/util/function/Consumer;
+HSPLandroid/media/MediaDrm;->finalize()V
+HSPLandroid/media/MediaDrm;->getByteArrayFromUUID(Ljava/util/UUID;)[B
+HSPLandroid/media/MediaDrm;->getCryptoSession([BLjava/lang/String;Ljava/lang/String;)Landroid/media/MediaDrm$CryptoSession;
+HSPLandroid/media/MediaDrm;->getMaxSecurityLevel()I
+HSPLandroid/media/MediaDrm;->isCryptoSchemeSupported(Ljava/util/UUID;)Z
+HSPLandroid/media/MediaDrm;->lambda$IvEWhXQgSYABwC6_1bdnhTJ4V2I(Landroid/media/MediaDrm;Landroid/media/MediaDrm$OnEventListener;)Ljava/util/function/Consumer;
+HSPLandroid/media/MediaDrm;->openSession()[B
+HSPLandroid/media/MediaDrm;->postEventFromNative(Ljava/lang/Object;III[B[BJLjava/util/List;Z)V
+HSPLandroid/media/MediaDrm;->release()V
+HSPLandroid/media/MediaDrm;->setGenericListener(ILjava/util/concurrent/Executor;Ljava/lang/Object;Ljava/util/function/Function;)V
+HSPLandroid/media/MediaDrm;->setListenerWithHandler(ILandroid/os/Handler;Ljava/lang/Object;Ljava/util/function/Function;)V
+HSPLandroid/media/MediaDrm;->setOnEventListener(Landroid/media/MediaDrm$OnEventListener;)V
+HSPLandroid/media/MediaDrm;->setOnEventListener(Landroid/media/MediaDrm$OnEventListener;Landroid/os/Handler;)V
+HSPLandroid/media/MediaFormat;-><init>()V
+HSPLandroid/media/MediaFormat;-><init>(Ljava/util/Map;)V
+HPLandroid/media/MediaFormat;->containsKey(Ljava/lang/String;)Z
+PLandroid/media/MediaFormat;->createSubtitleFormat(Ljava/lang/String;Ljava/lang/String;)Landroid/media/MediaFormat;
+HSPLandroid/media/MediaFormat;->getInteger(Ljava/lang/String;)I
+HSPLandroid/media/MediaFormat;->getString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/media/MediaFormat;->setByteBuffer(Ljava/lang/String;Ljava/nio/ByteBuffer;)V
+HPLandroid/media/MediaFormat;->setFloat(Ljava/lang/String;F)V
+HSPLandroid/media/MediaFormat;->setInteger(Ljava/lang/String;I)V
+HSPLandroid/media/MediaFormat;->setLong(Ljava/lang/String;J)V
+HSPLandroid/media/MediaFormat;->setString(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/media/MediaMetadata$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaMetadata;
+HSPLandroid/media/MediaMetadata$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/media/MediaMetadata$Builder;-><init>()V
+HSPLandroid/media/MediaMetadata$Builder;-><init>(Landroid/media/MediaMetadata;)V
+HSPLandroid/media/MediaMetadata$Builder;-><init>(Landroid/media/MediaMetadata;I)V
+HSPLandroid/media/MediaMetadata$Builder;->build()Landroid/media/MediaMetadata;
+HPLandroid/media/MediaMetadata$Builder;->putBitmap(Ljava/lang/String;Landroid/graphics/Bitmap;)Landroid/media/MediaMetadata$Builder;
+HPLandroid/media/MediaMetadata$Builder;->putText(Ljava/lang/String;Ljava/lang/CharSequence;)Landroid/media/MediaMetadata$Builder;
+PLandroid/media/MediaMetadata;-><init>(Landroid/os/Parcel;)V
+PLandroid/media/MediaMetadata;-><init>(Landroid/os/Parcel;Landroid/media/MediaMetadata$1;)V
+HPLandroid/media/MediaMetadata;->access$200()Landroid/util/ArrayMap;
+HSPLandroid/media/MediaMetadata;->containsKey(Ljava/lang/String;)Z
+HSPLandroid/media/MediaMetadata;->getBitmap(Ljava/lang/String;)Landroid/graphics/Bitmap;
+HSPLandroid/media/MediaMetadata;->getDescription()Landroid/media/MediaDescription;
+HSPLandroid/media/MediaMetadata;->getLong(Ljava/lang/String;)J
+HSPLandroid/media/MediaMetadata;->getString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/media/MediaMetadata;->getText(Ljava/lang/String;)Ljava/lang/CharSequence;
+HSPLandroid/media/MediaMetadata;->size()I
+HSPLandroid/media/MediaMetadata;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/media/MediaMetadataRetriever;-><init>()V
+HSPLandroid/media/MediaMetadataRetriever;->finalize()V
+PLandroid/media/MediaPlayer$2$1;-><init>(Landroid/media/MediaPlayer$2;)V
+PLandroid/media/MediaPlayer$2$1;->getSubtitleLooper()Landroid/os/Looper;
+PLandroid/media/MediaPlayer$2$1;->setSubtitleWidget(Landroid/media/SubtitleTrack$RenderingWidget;)V
+PLandroid/media/MediaPlayer$2;-><init>(Landroid/media/MediaPlayer;Landroid/media/MediaPlayer$TimeProvider;Landroid/os/HandlerThread;)V
+PLandroid/media/MediaPlayer$2;->run()V
+PLandroid/media/MediaPlayer$3;-><init>(Landroid/media/MediaPlayer;)V
+PLandroid/media/MediaPlayer$7;-><init>(Landroid/media/MediaPlayer;)V
+PLandroid/media/MediaPlayer$EventHandler;-><init>(Landroid/media/MediaPlayer;Landroid/media/MediaPlayer;Landroid/os/Looper;)V
+PLandroid/media/MediaPlayer$EventHandler;->handleMessage(Landroid/os/Message;)V
+PLandroid/media/MediaPlayer$TimeProvider$EventHandler;-><init>(Landroid/media/MediaPlayer$TimeProvider;Landroid/os/Looper;)V
+HPLandroid/media/MediaPlayer$TimeProvider$EventHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/media/MediaPlayer$TimeProvider;-><init>(Landroid/media/MediaPlayer;)V
+PLandroid/media/MediaPlayer$TimeProvider;->access$200(Landroid/media/MediaPlayer$TimeProvider;)Landroid/os/Handler;
+HSPLandroid/media/MediaPlayer$TimeProvider;->close()V
+HSPLandroid/media/MediaPlayer$TimeProvider;->finalize()V
+HSPLandroid/media/MediaPlayer$TimeProvider;->getCurrentTimeUs(ZZ)J
+HPLandroid/media/MediaPlayer$TimeProvider;->notifySeek()V
+HPLandroid/media/MediaPlayer$TimeProvider;->onPaused(Z)V
+HPLandroid/media/MediaPlayer$TimeProvider;->scheduleNotification(IJ)V
+PLandroid/media/MediaPlayer$TrackInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaPlayer$TrackInfo;
+PLandroid/media/MediaPlayer$TrackInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/media/MediaPlayer$TrackInfo$1;->newArray(I)[Landroid/media/MediaPlayer$TrackInfo;
+PLandroid/media/MediaPlayer$TrackInfo$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/media/MediaPlayer$TrackInfo;-><init>(Landroid/os/Parcel;)V
+PLandroid/media/MediaPlayer$TrackInfo;->getTrackType()I
+HSPLandroid/media/MediaPlayer;-><init>()V
+PLandroid/media/MediaPlayer;->access$100(Landroid/media/MediaPlayer;)Landroid/media/SubtitleController;
+PLandroid/media/MediaPlayer;->access$1000(Landroid/media/MediaPlayer;)Landroid/media/MediaPlayer$OnPreparedListener;
+PLandroid/media/MediaPlayer;->access$102(Landroid/media/MediaPlayer;Landroid/media/SubtitleController;)Landroid/media/SubtitleController;
+PLandroid/media/MediaPlayer;->access$800(Landroid/media/MediaPlayer;)J
+PLandroid/media/MediaPlayer;->access$900(Landroid/media/MediaPlayer;)V
+HSPLandroid/media/MediaPlayer;->attemptDataSource(Landroid/content/ContentResolver;Landroid/net/Uri;)Z
+HSPLandroid/media/MediaPlayer;->cleanDrmObj()V
+HSPLandroid/media/MediaPlayer;->finalize()V
+PLandroid/media/MediaPlayer;->getInbandTrackInfo()[Landroid/media/MediaPlayer$TrackInfo;
+PLandroid/media/MediaPlayer;->getMediaTimeProvider()Landroid/media/MediaTimeProvider;
+PLandroid/media/MediaPlayer;->invoke(Landroid/os/Parcel;Landroid/os/Parcel;)V
+PLandroid/media/MediaPlayer;->playerSetVolume(ZFF)V
+PLandroid/media/MediaPlayer;->populateInbandTracks()V
+PLandroid/media/MediaPlayer;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
+PLandroid/media/MediaPlayer;->prepare()V
+HSPLandroid/media/MediaPlayer;->release()V
+HSPLandroid/media/MediaPlayer;->reset()V
+HSPLandroid/media/MediaPlayer;->resetDrmState()V
+PLandroid/media/MediaPlayer;->scanInternalSubtitleTracks()V
+PLandroid/media/MediaPlayer;->setAudioAttributes(Landroid/media/AudioAttributes;)V
+HSPLandroid/media/MediaPlayer;->setDataSource(Landroid/content/Context;Landroid/net/Uri;)V
+HSPLandroid/media/MediaPlayer;->setDataSource(Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map;Ljava/util/List;)V
+HSPLandroid/media/MediaPlayer;->setDataSource(Landroid/content/res/AssetFileDescriptor;)V
+PLandroid/media/MediaPlayer;->setDataSource(Ljava/io/FileDescriptor;)V
+HSPLandroid/media/MediaPlayer;->setDataSource(Ljava/io/FileDescriptor;JJ)V
+PLandroid/media/MediaPlayer;->setDataSource(Ljava/lang/String;)V
+PLandroid/media/MediaPlayer;->setDataSource(Ljava/lang/String;Ljava/util/Map;Ljava/util/List;)V
+PLandroid/media/MediaPlayer;->setDataSource(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljava/util/List;)V
+PLandroid/media/MediaPlayer;->setOnCompletionListener(Landroid/media/MediaPlayer$OnCompletionListener;)V
+HPLandroid/media/MediaPlayer;->setOnErrorListener(Landroid/media/MediaPlayer$OnErrorListener;)V
+HPLandroid/media/MediaPlayer;->setOnPreparedListener(Landroid/media/MediaPlayer$OnPreparedListener;)V
+PLandroid/media/MediaPlayer;->setSubtitleAnchor()V
+PLandroid/media/MediaPlayer;->setVolume(F)V
+PLandroid/media/MediaPlayer;->setVolume(FF)V
+HPLandroid/media/MediaPlayer;->start()V
+HSPLandroid/media/MediaPlayer;->stayAwake(Z)V
+HPLandroid/media/MediaPlayer;->stop()V
+PLandroid/media/MediaPlayer;->updateSurfaceScreenOn()V
+HPLandroid/media/MediaRecorder;->getAudioSourceMax()I
+PLandroid/media/MediaRecorder;->isSystemOnlyAudioSource(I)Z
+PLandroid/media/MediaRecorder;->toLogFriendlyAudioSource(I)Ljava/lang/String;
HSPLandroid/media/MediaRouter$Callback;-><init>()V
+HSPLandroid/media/MediaRouter$CallbackInfo;-><init>(Landroid/media/MediaRouter$Callback;IILandroid/media/MediaRouter;)V
+HSPLandroid/media/MediaRouter$CallbackInfo;->filterRouteEvent(I)Z
+HSPLandroid/media/MediaRouter$CallbackInfo;->filterRouteEvent(Landroid/media/MediaRouter$RouteInfo;)Z
+HSPLandroid/media/MediaRouter$RouteCategory;-><init>(IIZ)V
HSPLandroid/media/MediaRouter$RouteCategory;->getName()Ljava/lang/CharSequence;
HSPLandroid/media/MediaRouter$RouteCategory;->getName(Landroid/content/res/Resources;)Ljava/lang/CharSequence;
HSPLandroid/media/MediaRouter$RouteCategory;->isGroupable()Z
HSPLandroid/media/MediaRouter$RouteCategory;->toString()Ljava/lang/String;
+HSPLandroid/media/MediaRouter$RouteInfo$1;-><init>(Landroid/media/MediaRouter$RouteInfo;)V
HSPLandroid/media/MediaRouter$RouteInfo;-><init>(Landroid/media/MediaRouter$RouteCategory;)V
HSPLandroid/media/MediaRouter$RouteInfo;->choosePresentationDisplay()Landroid/view/Display;
HSPLandroid/media/MediaRouter$RouteInfo;->getCategory()Landroid/media/MediaRouter$RouteCategory;
HSPLandroid/media/MediaRouter$RouteInfo;->getDescription()Ljava/lang/CharSequence;
+HSPLandroid/media/MediaRouter$RouteInfo;->getDeviceType()I
HSPLandroid/media/MediaRouter$RouteInfo;->getName()Ljava/lang/CharSequence;
+HSPLandroid/media/MediaRouter$RouteInfo;->getName(Landroid/content/Context;)Ljava/lang/CharSequence;
HSPLandroid/media/MediaRouter$RouteInfo;->getName(Landroid/content/res/Resources;)Ljava/lang/CharSequence;
+HSPLandroid/media/MediaRouter$RouteInfo;->getPlaybackStream()I
+HSPLandroid/media/MediaRouter$RouteInfo;->getPlaybackType()I
+HSPLandroid/media/MediaRouter$RouteInfo;->getPresentationDisplay()Landroid/view/Display;
HSPLandroid/media/MediaRouter$RouteInfo;->getStatus()Ljava/lang/CharSequence;
HSPLandroid/media/MediaRouter$RouteInfo;->getSupportedTypes()I
+HSPLandroid/media/MediaRouter$RouteInfo;->getTag()Ljava/lang/Object;
+HSPLandroid/media/MediaRouter$RouteInfo;->getVolume()I
+HSPLandroid/media/MediaRouter$RouteInfo;->getVolumeHandling()I
+HSPLandroid/media/MediaRouter$RouteInfo;->getVolumeMax()I
+HSPLandroid/media/MediaRouter$RouteInfo;->isConnecting()Z
+HSPLandroid/media/MediaRouter$RouteInfo;->isEnabled()Z
HSPLandroid/media/MediaRouter$RouteInfo;->isSelected()Z
HSPLandroid/media/MediaRouter$RouteInfo;->matchesTypes(I)Z
HSPLandroid/media/MediaRouter$RouteInfo;->resolveStatusCode()Z
+HSPLandroid/media/MediaRouter$RouteInfo;->routeUpdated()V
+PLandroid/media/MediaRouter$RouteInfo;->select()V
+HSPLandroid/media/MediaRouter$RouteInfo;->setTag(Ljava/lang/Object;)V
HSPLandroid/media/MediaRouter$RouteInfo;->toString()Ljava/lang/String;
HSPLandroid/media/MediaRouter$RouteInfo;->updatePresentationDisplay()Z
HSPLandroid/media/MediaRouter$SimpleCallback;-><init>()V
+PLandroid/media/MediaRouter$Static$1$1;-><init>(Landroid/media/MediaRouter$Static$1;Landroid/media/AudioRoutesInfo;)V
+PLandroid/media/MediaRouter$Static$1$1;->run()V
+HSPLandroid/media/MediaRouter$Static$1;-><init>(Landroid/media/MediaRouter$Static;)V
+PLandroid/media/MediaRouter$Static$1;->dispatchAudioRoutesChanged(Landroid/media/AudioRoutesInfo;)V
+PLandroid/media/MediaRouter$Static$Client$1;-><init>(Landroid/media/MediaRouter$Static$Client;)V
+PLandroid/media/MediaRouter$Static$Client$1;->run()V
+PLandroid/media/MediaRouter$Static$Client$2;->run()V
+HSPLandroid/media/MediaRouter$Static$Client;-><init>(Landroid/media/MediaRouter$Static;)V
+PLandroid/media/MediaRouter$Static$Client;->onRestoreRoute()V
+PLandroid/media/MediaRouter$Static$Client;->onStateChanged()V
HSPLandroid/media/MediaRouter$Static;-><init>(Landroid/content/Context;)V
HSPLandroid/media/MediaRouter$Static;->getAllPresentationDisplays()[Landroid/view/Display;
HSPLandroid/media/MediaRouter$Static;->isBluetoothA2dpOn()Z
HSPLandroid/media/MediaRouter$Static;->isPlaybackActive()Z
-PLandroid/media/MediaRouter$Static;->onDisplayChanged(I)V
+HSPLandroid/media/MediaRouter$Static;->onDisplayChanged(I)V
HSPLandroid/media/MediaRouter$Static;->publishClientDiscoveryRequest()V
HSPLandroid/media/MediaRouter$Static;->publishClientSelectedRoute(Z)V
HSPLandroid/media/MediaRouter$Static;->rebindAsUser(I)V
+HSPLandroid/media/MediaRouter$Static;->setRouterGroupId(Ljava/lang/String;)V
HSPLandroid/media/MediaRouter$Static;->setSelectedRoute(Landroid/media/MediaRouter$RouteInfo;Z)V
HSPLandroid/media/MediaRouter$Static;->startMonitoringRoutes(Landroid/content/Context;)V
HSPLandroid/media/MediaRouter$Static;->updateAudioRoutes(Landroid/media/AudioRoutesInfo;)V
HSPLandroid/media/MediaRouter$Static;->updateClientState()V
HSPLandroid/media/MediaRouter$Static;->updateDiscoveryRequest()V
-PLandroid/media/MediaRouter$Static;->updatePresentationDisplays(I)V
-HSPLandroid/media/MediaRouter$VolumeChangeReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLandroid/media/MediaRouter$Static;->updatePresentationDisplays(I)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;-><init>(Landroid/media/MediaRouter$RouteCategory;)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->configureSessionVolume()V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setDescription(Ljava/lang/CharSequence;)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setName(Ljava/lang/CharSequence;)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setPlaybackStream(I)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setPlaybackType(I)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setVolume(I)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setVolumeCallback(Landroid/media/MediaRouter$VolumeCallback;)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setVolumeHandling(I)V
+HSPLandroid/media/MediaRouter$UserRouteInfo;->setVolumeMax(I)V
+HSPLandroid/media/MediaRouter$VolumeCallback;-><init>()V
+HSPLandroid/media/MediaRouter$VolumeCallbackInfo;-><init>(Landroid/media/MediaRouter$VolumeCallback;Landroid/media/MediaRouter$RouteInfo;)V
+HSPLandroid/media/MediaRouter$VolumeChangeReceiver;-><init>()V
+PLandroid/media/MediaRouter$VolumeChangeReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLandroid/media/MediaRouter$WifiDisplayStatusChangedReceiver;-><init>()V
HSPLandroid/media/MediaRouter;-><init>(Landroid/content/Context;)V
+HSPLandroid/media/MediaRouter;->access$100()Z
HSPLandroid/media/MediaRouter;->addCallback(ILandroid/media/MediaRouter$Callback;I)V
HSPLandroid/media/MediaRouter;->addRouteStatic(Landroid/media/MediaRouter$RouteInfo;)V
+HSPLandroid/media/MediaRouter;->addUserRoute(Landroid/media/MediaRouter$UserRouteInfo;)V
+HSPLandroid/media/MediaRouter;->createRouteCategory(Ljava/lang/CharSequence;Z)Landroid/media/MediaRouter$RouteCategory;
+HSPLandroid/media/MediaRouter;->createUserRoute(Landroid/media/MediaRouter$RouteCategory;)Landroid/media/MediaRouter$UserRouteInfo;
HSPLandroid/media/MediaRouter;->dispatchRouteAdded(Landroid/media/MediaRouter$RouteInfo;)V
+HSPLandroid/media/MediaRouter;->dispatchRouteChanged(Landroid/media/MediaRouter$RouteInfo;)V
+HSPLandroid/media/MediaRouter;->dispatchRouteChanged(Landroid/media/MediaRouter$RouteInfo;I)V
+PLandroid/media/MediaRouter;->dispatchRouteRemoved(Landroid/media/MediaRouter$RouteInfo;)V
HSPLandroid/media/MediaRouter;->dispatchRouteSelected(ILandroid/media/MediaRouter$RouteInfo;)V
+PLandroid/media/MediaRouter;->dispatchRouteUnselected(ILandroid/media/MediaRouter$RouteInfo;)V
+HSPLandroid/media/MediaRouter;->dispatchRouteVolumeChanged(Landroid/media/MediaRouter$RouteInfo;)V
+HSPLandroid/media/MediaRouter;->findCallbackInfo(Landroid/media/MediaRouter$Callback;)I
+HSPLandroid/media/MediaRouter;->getDefaultRoute()Landroid/media/MediaRouter$RouteInfo;
+HSPLandroid/media/MediaRouter;->getRouteAt(I)Landroid/media/MediaRouter$RouteInfo;
+HSPLandroid/media/MediaRouter;->getRouteCount()I
+HSPLandroid/media/MediaRouter;->getSelectedRoute(I)Landroid/media/MediaRouter$RouteInfo;
+HSPLandroid/media/MediaRouter;->removeCallback(Landroid/media/MediaRouter$Callback;)V
+PLandroid/media/MediaRouter;->removeRouteStatic(Landroid/media/MediaRouter$RouteInfo;)V
+HPLandroid/media/MediaRouter;->removeUserRoute(Landroid/media/MediaRouter$UserRouteInfo;)V
HSPLandroid/media/MediaRouter;->selectDefaultRouteStatic()V
+HSPLandroid/media/MediaRouter;->selectRoute(ILandroid/media/MediaRouter$RouteInfo;)V
HSPLandroid/media/MediaRouter;->selectRouteStatic(ILandroid/media/MediaRouter$RouteInfo;Z)V
+HSPLandroid/media/MediaRouter;->setRouterGroupId(Ljava/lang/String;)V
+PLandroid/media/MediaRouter;->systemVolumeChanged(I)V
HSPLandroid/media/MediaRouter;->typesToString(I)Ljava/lang/String;
+HSPLandroid/media/MediaRouter;->updateRoute(Landroid/media/MediaRouter$RouteInfo;)V
HSPLandroid/media/MediaRouter;->updateWifiDisplayStatus(Landroid/hardware/display/WifiDisplayStatus;)V
+HSPLandroid/media/MediaRouterClientState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/MediaRouterClientState;
+HSPLandroid/media/MediaRouterClientState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/media/MediaRouterClientState;->toString()Ljava/lang/String;
+HSPLandroid/media/PlayerBase$IPlayerWrapper;-><init>(Landroid/media/PlayerBase;)V
+PLandroid/media/PlayerBase$PlayerIdCard$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/PlayerBase$PlayerIdCard;
+PLandroid/media/PlayerBase$PlayerIdCard$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/PlayerBase$PlayerIdCard;-><init>(ILandroid/media/AudioAttributes;Landroid/media/IPlayer;)V
+PLandroid/media/PlayerBase$PlayerIdCard;-><init>(Landroid/os/Parcel;)V
+PLandroid/media/PlayerBase$PlayerIdCard;-><init>(Landroid/os/Parcel;Landroid/media/PlayerBase$1;)V
+HSPLandroid/media/PlayerBase$PlayerIdCard;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/media/PlayerBase;-><init>(Landroid/media/AudioAttributes;I)V
+HPLandroid/media/PlayerBase;->basePause()V
HSPLandroid/media/PlayerBase;->baseRegisterPlayer()V
+HSPLandroid/media/PlayerBase;->baseRelease()V
+PLandroid/media/PlayerBase;->baseSetVolume(FF)V
+PLandroid/media/PlayerBase;->baseStart()V
+PLandroid/media/PlayerBase;->baseStop()V
+PLandroid/media/PlayerBase;->baseUpdateAudioAttributes(Landroid/media/AudioAttributes;)V
+HSPLandroid/media/PlayerBase;->deprecateStreamTypeForPlayback(ILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/media/PlayerBase;->getService()Landroid/media/IAudioService;
+PLandroid/media/PlayerBase;->getStartDelayMs()I
+PLandroid/media/PlayerBase;->isRestricted_sync()Z
+PLandroid/media/PlayerBase;->updateAppOpsPlayAudio_sync(Z)V
+PLandroid/media/PlayerBase;->updatePlayerVolume()V
+PLandroid/media/PlayerBase;->updateState(I)V
+PLandroid/media/Ringtone$MyOnCompletionListener;-><init>(Landroid/media/Ringtone;)V
+PLandroid/media/Ringtone;-><init>(Landroid/content/Context;Z)V
+PLandroid/media/Ringtone;->applyPlaybackProperties_sync()V
+PLandroid/media/Ringtone;->destroyLocalPlayer()V
+PLandroid/media/Ringtone;->finalize()V
+PLandroid/media/Ringtone;->play()V
+PLandroid/media/Ringtone;->setAudioAttributes(Landroid/media/AudioAttributes;)V
+PLandroid/media/Ringtone;->setStreamType(I)V
+PLandroid/media/Ringtone;->setUri(Landroid/net/Uri;Landroid/media/VolumeShaper$Configuration;)V
+HPLandroid/media/RingtoneManager;-><init>(Landroid/content/Context;)V
+HPLandroid/media/RingtoneManager;-><init>(Landroid/content/Context;Z)V
+HPLandroid/media/RingtoneManager;->constructBooleanTrueWhereClause(Ljava/util/List;)Ljava/lang/String;
+HSPLandroid/media/RingtoneManager;->ensureDefaultRingtones(Landroid/content/Context;)V
+HPLandroid/media/RingtoneManager;->getActualDefaultRingtoneUri(Landroid/content/Context;I)Landroid/net/Uri;
+HPLandroid/media/RingtoneManager;->getCursor()Landroid/database/Cursor;
+HSPLandroid/media/RingtoneManager;->getDefaultRingtoneSetting(I)Ljava/lang/String;
+HPLandroid/media/RingtoneManager;->getDefaultUri(I)Landroid/net/Uri;
+HPLandroid/media/RingtoneManager;->getInternalRingtones()Landroid/database/Cursor;
+HPLandroid/media/RingtoneManager;->getMediaRingtones()Landroid/database/Cursor;
+HPLandroid/media/RingtoneManager;->getMediaRingtones(Landroid/content/Context;)Landroid/database/Cursor;
+PLandroid/media/RingtoneManager;->getRingtone(Landroid/content/Context;Landroid/net/Uri;)Landroid/media/Ringtone;
+PLandroid/media/RingtoneManager;->getRingtone(Landroid/content/Context;Landroid/net/Uri;I)Landroid/media/Ringtone;
+PLandroid/media/RingtoneManager;->getRingtone(Landroid/content/Context;Landroid/net/Uri;ILandroid/media/VolumeShaper$Configuration;)Landroid/media/Ringtone;
+HPLandroid/media/RingtoneManager;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
+HPLandroid/media/RingtoneManager;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/content/Context;)Landroid/database/Cursor;
+HPLandroid/media/RingtoneManager;->setFilterColumnsList(I)V
+HPLandroid/media/RingtoneManager;->setType(I)V
HSPLandroid/media/SoundPool$Builder;-><init>()V
HSPLandroid/media/SoundPool$Builder;->build()Landroid/media/SoundPool;
HSPLandroid/media/SoundPool$Builder;->setAudioAttributes(Landroid/media/AudioAttributes;)Landroid/media/SoundPool$Builder;
HSPLandroid/media/SoundPool$Builder;->setMaxStreams(I)Landroid/media/SoundPool$Builder;
+HSPLandroid/media/SoundPool$EventHandler;-><init>(Landroid/media/SoundPool;Landroid/os/Looper;)V
+HSPLandroid/media/SoundPool$EventHandler;->handleMessage(Landroid/os/Message;)V
HSPLandroid/media/SoundPool;-><init>(ILandroid/media/AudioAttributes;)V
+HSPLandroid/media/SoundPool;-><init>(ILandroid/media/AudioAttributes;Landroid/media/SoundPool$1;)V
+HSPLandroid/media/SoundPool;->access$000()Z
+HSPLandroid/media/SoundPool;->access$100(Landroid/media/SoundPool;)Ljava/lang/Object;
+HSPLandroid/media/SoundPool;->access$200(Landroid/media/SoundPool;)Landroid/media/SoundPool$OnLoadCompleteListener;
+HSPLandroid/media/SoundPool;->load(Ljava/lang/String;I)I
HSPLandroid/media/SoundPool;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
-HSPLandroid/media/session/ICallback$Stub;-><init>()V
+HSPLandroid/media/SoundPool;->setOnLoadCompleteListener(Landroid/media/SoundPool$OnLoadCompleteListener;)V
+PLandroid/media/SubtitleController$1;-><init>(Landroid/media/SubtitleController;)V
+PLandroid/media/SubtitleController$1;->handleMessage(Landroid/os/Message;)Z
+PLandroid/media/SubtitleController$2;-><init>(Landroid/media/SubtitleController;)V
+PLandroid/media/SubtitleController;-><init>(Landroid/content/Context;Landroid/media/MediaTimeProvider;Landroid/media/SubtitleController$Listener;)V
+PLandroid/media/SubtitleController;->access$100(Landroid/media/SubtitleController;)V
+PLandroid/media/SubtitleController;->access$200(Landroid/media/SubtitleController;Landroid/media/SubtitleTrack;)V
+PLandroid/media/SubtitleController;->access$300(Landroid/media/SubtitleController;)V
+PLandroid/media/SubtitleController;->checkAnchorLooper()V
+PLandroid/media/SubtitleController;->doHide()V
+PLandroid/media/SubtitleController;->doSelectDefaultTrack()V
+PLandroid/media/SubtitleController;->doSelectTrack(Landroid/media/SubtitleTrack;)V
+PLandroid/media/SubtitleController;->finalize()V
+PLandroid/media/SubtitleController;->getDefaultTrack()Landroid/media/SubtitleTrack;
+PLandroid/media/SubtitleController;->getRenderingWidget()Landroid/media/SubtitleTrack$RenderingWidget;
+PLandroid/media/SubtitleController;->hide()V
+PLandroid/media/SubtitleController;->processOnAnchor(Landroid/os/Message;)V
+PLandroid/media/SubtitleController;->reset()V
+PLandroid/media/SubtitleController;->selectDefaultTrack()V
+PLandroid/media/SubtitleController;->selectTrack(Landroid/media/SubtitleTrack;)Z
+PLandroid/media/SubtitleController;->setAnchor(Landroid/media/SubtitleController$Anchor;)V
+HSPLandroid/media/ThumbnailUtils;->extractThumbnail(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
+HSPLandroid/media/ThumbnailUtils;->extractThumbnail(Landroid/graphics/Bitmap;III)Landroid/graphics/Bitmap;
+HSPLandroid/media/ThumbnailUtils;->transform(Landroid/graphics/Matrix;Landroid/graphics/Bitmap;III)Landroid/graphics/Bitmap;
+HSPLandroid/media/ToneGenerator;-><init>(II)V
+HSPLandroid/media/Utils$1;->compare(Landroid/util/Range;Landroid/util/Range;)I
+HSPLandroid/media/Utils$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HPLandroid/media/Utils$2;-><init>()V
+HSPLandroid/media/Utils$2;->compare(Landroid/util/Range;Landroid/util/Range;)I
+HSPLandroid/media/Utils$2;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/media/Utils;->alignRange(Landroid/util/Range;I)Landroid/util/Range;
+HPLandroid/media/Utils;->binarySearchDistinctRanges([Landroid/util/Range;Ljava/lang/Comparable;)I
+HSPLandroid/media/Utils;->divUp(II)I
+HSPLandroid/media/Utils;->divUp(JJ)J
+HSPLandroid/media/Utils;->factorRange(Landroid/util/Range;I)Landroid/util/Range;
+HSPLandroid/media/Utils;->factorRange(Landroid/util/Range;J)Landroid/util/Range;
+HPLandroid/media/Utils;->intRangeFor(D)Landroid/util/Range;
+HSPLandroid/media/Utils;->intersectSortedDistinctRanges([Landroid/util/Range;[Landroid/util/Range;)[Landroid/util/Range;
+HPLandroid/media/Utils;->longRangeFor(D)Landroid/util/Range;
+HSPLandroid/media/Utils;->parseIntRange(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
+HSPLandroid/media/Utils;->parseIntSafely(Ljava/lang/Object;I)I
+HSPLandroid/media/Utils;->parseLongRange(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
+HSPLandroid/media/Utils;->parseRationalRange(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
+HSPLandroid/media/Utils;->parseSize(Ljava/lang/Object;Landroid/util/Size;)Landroid/util/Size;
+HSPLandroid/media/Utils;->parseSizeRange(Ljava/lang/Object;)Landroid/util/Pair;
+PLandroid/media/VolumePolicy$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/VolumePolicy;
+PLandroid/media/VolumePolicy$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/media/VolumePolicy;-><init>(ZZZI)V
+PLandroid/media/VolumePolicy;->equals(Ljava/lang/Object;)Z
+PLandroid/media/VolumePolicy;->toString()Ljava/lang/String;
+HSPLandroid/media/VolumeShaper$Configuration$Builder;-><init>()V
+HSPLandroid/media/VolumeShaper$Configuration$Builder;->build()Landroid/media/VolumeShaper$Configuration;
+HSPLandroid/media/VolumeShaper$Configuration$Builder;->setCurve([F[F)Landroid/media/VolumeShaper$Configuration$Builder;
+HSPLandroid/media/VolumeShaper$Configuration$Builder;->setDuration(J)Landroid/media/VolumeShaper$Configuration$Builder;
+HSPLandroid/media/VolumeShaper$Configuration$Builder;->setId(I)Landroid/media/VolumeShaper$Configuration$Builder;
+HPLandroid/media/VolumeShaper$Configuration$Builder;->setInterpolatorType(I)Landroid/media/VolumeShaper$Configuration$Builder;
+HSPLandroid/media/VolumeShaper$Configuration$Builder;->setOptionFlags(I)Landroid/media/VolumeShaper$Configuration$Builder;
+HSPLandroid/media/VolumeShaper$Configuration;-><init>(I)V
+HSPLandroid/media/VolumeShaper$Configuration;-><init>(IIIDI[F[F)V
+HSPLandroid/media/VolumeShaper$Configuration;-><init>(IIIDI[F[FLandroid/media/VolumeShaper$1;)V
+HSPLandroid/media/VolumeShaper$Configuration;->access$100([F[FZZ)V
+HSPLandroid/media/VolumeShaper$Configuration;->checkCurveForErrors([F[FZ)Ljava/lang/String;
+HSPLandroid/media/VolumeShaper$Configuration;->checkCurveForErrorsAndThrowException([F[FZZ)V
+HPLandroid/media/VolumeShaper$Operation$Builder;-><init>()V
+HSPLandroid/media/VolumeShaper$Operation$Builder;-><init>(Landroid/media/VolumeShaper$Operation;)V
+HSPLandroid/media/VolumeShaper$Operation$Builder;->build()Landroid/media/VolumeShaper$Operation;
+HSPLandroid/media/VolumeShaper$Operation$Builder;->createIfNeeded()Landroid/media/VolumeShaper$Operation$Builder;
+HPLandroid/media/VolumeShaper$Operation$Builder;->defer()Landroid/media/VolumeShaper$Operation$Builder;
+HSPLandroid/media/VolumeShaper$Operation$Builder;->setXOffset(F)Landroid/media/VolumeShaper$Operation$Builder;
+HPLandroid/media/VolumeShaper$Operation$Builder;->terminate()Landroid/media/VolumeShaper$Operation$Builder;
+HSPLandroid/media/VolumeShaper$Operation;-><init>(IIF)V
+HSPLandroid/media/VolumeShaper$Operation;-><init>(IIFLandroid/media/VolumeShaper$1;)V
+HSPLandroid/media/VolumeShaper$Operation;->access$500(Landroid/media/VolumeShaper$Operation;)I
+HSPLandroid/media/VolumeShaper$Operation;->access$600(Landroid/media/VolumeShaper$Operation;)I
+HSPLandroid/media/VolumeShaper$Operation;->access$700(Landroid/media/VolumeShaper$Operation;)F
+HPLandroid/media/audiofx/AudioEffect$Descriptor;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/media/audiopolicy/AudioMix$Builder;-><init>()V
+HSPLandroid/media/audiopolicy/AudioMix$Builder;->build()Landroid/media/audiopolicy/AudioMix;
+PLandroid/media/audiopolicy/AudioMix$Builder;->setCallbackFlags(I)Landroid/media/audiopolicy/AudioMix$Builder;
+PLandroid/media/audiopolicy/AudioMix$Builder;->setDevice(ILjava/lang/String;)Landroid/media/audiopolicy/AudioMix$Builder;
+HSPLandroid/media/audiopolicy/AudioMix$Builder;->setFormat(Landroid/media/AudioFormat;)Landroid/media/audiopolicy/AudioMix$Builder;
+PLandroid/media/audiopolicy/AudioMix$Builder;->setMixingRule(Landroid/media/audiopolicy/AudioMixingRule;)Landroid/media/audiopolicy/AudioMix$Builder;
+HSPLandroid/media/audiopolicy/AudioMix$Builder;->setRouteFlags(I)Landroid/media/audiopolicy/AudioMix$Builder;
+HSPLandroid/media/audiopolicy/AudioMix;-><init>(Landroid/media/audiopolicy/AudioMixingRule;Landroid/media/AudioFormat;IIILjava/lang/String;)V
+HSPLandroid/media/audiopolicy/AudioMix;-><init>(Landroid/media/audiopolicy/AudioMixingRule;Landroid/media/AudioFormat;IIILjava/lang/String;Landroid/media/audiopolicy/AudioMix$1;)V
+HSPLandroid/media/audiopolicy/AudioMix;->canBeUsedForPrivilegedCapture(Landroid/media/AudioFormat;)Ljava/lang/String;
+HSPLandroid/media/audiopolicy/AudioMix;->equals(Ljava/lang/Object;)Z
+HSPLandroid/media/audiopolicy/AudioMix;->getFormat()Landroid/media/AudioFormat;
+HSPLandroid/media/audiopolicy/AudioMix;->getMixType()I
+HSPLandroid/media/audiopolicy/AudioMix;->getRegistration()Ljava/lang/String;
+HSPLandroid/media/audiopolicy/AudioMix;->getRouteFlags()I
+HSPLandroid/media/audiopolicy/AudioMix;->getRule()Landroid/media/audiopolicy/AudioMixingRule;
+PLandroid/media/audiopolicy/AudioMix;->hashCode()I
+HSPLandroid/media/audiopolicy/AudioMix;->setRegistration(Ljava/lang/String;)V
+HSPLandroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;-><init>(Landroid/media/AudioAttributes;I)V
+HSPLandroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;-><init>(Ljava/lang/Integer;I)V
+PLandroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;->hashCode()I
+HSPLandroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;->writeToParcel(Landroid/os/Parcel;)V
+HSPLandroid/media/audiopolicy/AudioMixingRule$Builder;-><init>()V
+PLandroid/media/audiopolicy/AudioMixingRule$Builder;->addRuleFromParcel(Landroid/os/Parcel;)Landroid/media/audiopolicy/AudioMixingRule$Builder;
+HSPLandroid/media/audiopolicy/AudioMixingRule$Builder;->addRuleInternal(Landroid/media/AudioAttributes;Ljava/lang/Integer;I)Landroid/media/audiopolicy/AudioMixingRule$Builder;
+HSPLandroid/media/audiopolicy/AudioMixingRule$Builder;->allowPrivilegedPlaybackCapture(Z)Landroid/media/audiopolicy/AudioMixingRule$Builder;
+HSPLandroid/media/audiopolicy/AudioMixingRule$Builder;->build()Landroid/media/audiopolicy/AudioMixingRule;
+HSPLandroid/media/audiopolicy/AudioMixingRule;-><init>(ILjava/util/ArrayList;Z)V
+HSPLandroid/media/audiopolicy/AudioMixingRule;-><init>(ILjava/util/ArrayList;ZLandroid/media/audiopolicy/AudioMixingRule$1;)V
+HSPLandroid/media/audiopolicy/AudioMixingRule;->access$000(I)Z
+HSPLandroid/media/audiopolicy/AudioMixingRule;->access$100(I)Z
+HSPLandroid/media/audiopolicy/AudioMixingRule;->access$200(I)Z
+HSPLandroid/media/audiopolicy/AudioMixingRule;->access$300(I)Z
+HSPLandroid/media/audiopolicy/AudioMixingRule;->access$400(I)Z
+HSPLandroid/media/audiopolicy/AudioMixingRule;->allowPrivilegedPlaybackCapture()Z
+HSPLandroid/media/audiopolicy/AudioMixingRule;->getCriteria()Ljava/util/ArrayList;
+HSPLandroid/media/audiopolicy/AudioMixingRule;->getTargetMixType()I
+PLandroid/media/audiopolicy/AudioMixingRule;->hashCode()I
+HSPLandroid/media/audiopolicy/AudioMixingRule;->isAudioAttributeRule(I)Z
+HSPLandroid/media/audiopolicy/AudioMixingRule;->isPlayerRule(I)Z
+HSPLandroid/media/audiopolicy/AudioMixingRule;->isValidAttributesSystemApiRule(I)Z
+HSPLandroid/media/audiopolicy/AudioMixingRule;->isValidRule(I)Z
+HSPLandroid/media/audiopolicy/AudioMixingRule;->isValidSystemApiRule(I)Z
+HSPLandroid/media/audiopolicy/AudioPolicy;-><init>(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/content/Context;Landroid/os/Looper;Landroid/media/audiopolicy/AudioPolicy$AudioPolicyFocusListener;Landroid/media/audiopolicy/AudioPolicy$AudioPolicyStatusListener;ZZLandroid/media/audiopolicy/AudioPolicy$AudioPolicyVolumeCallback;Landroid/media/projection/MediaProjection;)V
+HSPLandroid/media/audiopolicy/AudioPolicy;-><init>(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/content/Context;Landroid/os/Looper;Landroid/media/audiopolicy/AudioPolicy$AudioPolicyFocusListener;Landroid/media/audiopolicy/AudioPolicy$AudioPolicyStatusListener;ZZLandroid/media/audiopolicy/AudioPolicy$AudioPolicyVolumeCallback;Landroid/media/projection/MediaProjection;Landroid/media/audiopolicy/AudioPolicy$1;)V
+HSPLandroid/media/audiopolicy/AudioPolicy;->access$300(Landroid/media/audiopolicy/AudioPolicy;)V
+HSPLandroid/media/audiopolicy/AudioPolicy;->addressForTag(Landroid/media/audiopolicy/AudioMix;)Ljava/lang/String;
+HSPLandroid/media/audiopolicy/AudioPolicy;->cb()Landroid/media/audiopolicy/IAudioPolicyCallback;
+HSPLandroid/media/audiopolicy/AudioPolicy;->checkCallingOrSelfPermission(Ljava/lang/String;)I
+HSPLandroid/media/audiopolicy/AudioPolicy;->checkMixReadyToUse(Landroid/media/audiopolicy/AudioMix;Z)V
+HSPLandroid/media/audiopolicy/AudioPolicy;->createAudioRecordSink(Landroid/media/audiopolicy/AudioMix;)Landroid/media/AudioRecord;
+HSPLandroid/media/audiopolicy/AudioPolicy;->getConfig()Landroid/media/audiopolicy/AudioPolicyConfig;
+HSPLandroid/media/audiopolicy/AudioPolicy;->getMediaProjection()Landroid/media/projection/MediaProjection;
+HSPLandroid/media/audiopolicy/AudioPolicy;->hasFocusListener()Z
+HSPLandroid/media/audiopolicy/AudioPolicy;->isFocusPolicy()Z
+HSPLandroid/media/audiopolicy/AudioPolicy;->isLoopbackRenderPolicy()Z
+HSPLandroid/media/audiopolicy/AudioPolicy;->isTestFocusPolicy()Z
+HSPLandroid/media/audiopolicy/AudioPolicy;->isVolumeController()Z
+HSPLandroid/media/audiopolicy/AudioPolicy;->lambda$isLoopbackRenderPolicy$0(Landroid/media/audiopolicy/AudioMix;)Z
+HSPLandroid/media/audiopolicy/AudioPolicy;->onPolicyStatusChange()V
+HSPLandroid/media/audiopolicy/AudioPolicy;->policyReadyToUse()Z
+HSPLandroid/media/audiopolicy/AudioPolicy;->sendMsg(I)V
+HSPLandroid/media/audiopolicy/AudioPolicy;->setRegistration(Ljava/lang/String;)V
+PLandroid/media/audiopolicy/AudioPolicyConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/audiopolicy/AudioPolicyConfig;
+PLandroid/media/audiopolicy/AudioPolicyConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/media/audiopolicy/AudioPolicyConfig;-><init>(Landroid/media/audiopolicy/AudioPolicyConfig;)V
+PLandroid/media/audiopolicy/AudioPolicyConfig;-><init>(Landroid/os/Parcel;)V
+PLandroid/media/audiopolicy/AudioPolicyConfig;-><init>(Landroid/os/Parcel;Landroid/media/audiopolicy/AudioPolicyConfig$1;)V
+HSPLandroid/media/audiopolicy/AudioPolicyConfig;-><init>(Ljava/util/ArrayList;)V
+PLandroid/media/audiopolicy/AudioPolicyConfig;->getMixes()Ljava/util/ArrayList;
+PLandroid/media/audiopolicy/AudioPolicyConfig;->getRegistration()Ljava/lang/String;
+PLandroid/media/audiopolicy/AudioPolicyConfig;->hashCode()I
+HSPLandroid/media/audiopolicy/AudioPolicyConfig;->mixTypeId(I)Ljava/lang/String;
+HSPLandroid/media/audiopolicy/AudioPolicyConfig;->setMixRegistration(Landroid/media/audiopolicy/AudioMix;)V
+HSPLandroid/media/audiopolicy/AudioPolicyConfig;->setRegistration(Ljava/lang/String;)V
+HSPLandroid/media/audiopolicy/AudioPolicyConfig;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;-><init>(II[Landroid/media/AudioAttributes;)V
+HSPLandroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;->getAudioAttributes()Landroid/media/AudioAttributes;
+PLandroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;->getStreamType()I
+HPLandroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;->supportsAttributes(Landroid/media/AudioAttributes;)Z
+HSPLandroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;->supportsStreamType(I)Z
+HSPLandroid/media/audiopolicy/AudioProductStrategy;-><init>(Ljava/lang/String;I[Landroid/media/audiopolicy/AudioProductStrategy$AudioAttributesGroup;)V
+HPLandroid/media/audiopolicy/AudioProductStrategy;->access$100(Landroid/media/AudioAttributes;Landroid/media/AudioAttributes;)Z
+HPLandroid/media/audiopolicy/AudioProductStrategy;->attributesMatches(Landroid/media/AudioAttributes;Landroid/media/AudioAttributes;)Z
+HSPLandroid/media/audiopolicy/AudioProductStrategy;->getAudioAttributesForLegacyStreamType(I)Landroid/media/AudioAttributes;
+HSPLandroid/media/audiopolicy/AudioProductStrategy;->getAudioAttributesForStrategyWithLegacyStreamType(I)Landroid/media/AudioAttributes;
+HSPLandroid/media/audiopolicy/AudioProductStrategy;->getAudioProductStrategies()Ljava/util/List;
+PLandroid/media/audiopolicy/AudioProductStrategy;->getLegacyStreamTypeForAudioAttributes(Landroid/media/AudioAttributes;)I
+HPLandroid/media/audiopolicy/AudioProductStrategy;->getLegacyStreamTypeForStrategyWithAudioAttributes(Landroid/media/AudioAttributes;)I
+HSPLandroid/media/audiopolicy/AudioProductStrategy;->initializeAudioProductStrategies()Ljava/util/List;
+HPLandroid/media/audiopolicy/AudioProductStrategy;->supportsAudioAttributes(Landroid/media/AudioAttributes;)Z
+PLandroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy;->notifyUnregistration()V
+HSPLandroid/media/audiopolicy/IAudioPolicyCallback$Stub;-><init>()V
+HSPLandroid/media/audiopolicy/IAudioPolicyCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/media/audiopolicy/IAudioPolicyCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/audiopolicy/IAudioPolicyCallback;
+HPLandroid/media/audiopolicy/IAudioPolicyCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/media/browse/MediaBrowserUtils;->areSameOptions(Landroid/os/Bundle;Landroid/os/Bundle;)Z
+HSPLandroid/media/midi/IMidiManager$Stub;-><init>()V
+PLandroid/media/midi/IMidiManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/projection/IMediaProjection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/projection/IMediaProjection;
+HSPLandroid/media/projection/IMediaProjectionManager$Stub;-><init>()V
+PLandroid/media/projection/IMediaProjectionManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/projection/IMediaProjectionWatcherCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/projection/IMediaProjectionWatcherCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/media/projection/IMediaProjectionWatcherCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/projection/IMediaProjectionWatcherCallback;
+PLandroid/media/session/IActiveSessionsListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/session/IActiveSessionsListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/media/session/IActiveSessionsListener$Stub$Proxy;->onActiveSessionsChanged(Ljava/util/List;)V
+HPLandroid/media/session/IActiveSessionsListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/media/session/IActiveSessionsListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/IActiveSessionsListener;
+HPLandroid/media/session/IActiveSessionsListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/session/ICallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/session/ICallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/media/session/ICallback$Stub$Proxy;->onAddressedPlayerChangedToMediaButtonReceiver(Landroid/content/ComponentName;)V
+PLandroid/media/session/ICallback$Stub$Proxy;->onAddressedPlayerChangedToMediaSession(Landroid/media/session/MediaSession$Token;)V
+PLandroid/media/session/ICallback$Stub;-><init>()V
+PLandroid/media/session/ICallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ICallback;
+HSPLandroid/media/session/ISession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/media/session/ISession$Stub$Proxy;->destroySession()V
+HSPLandroid/media/session/ISession$Stub$Proxy;->getController()Landroid/media/session/ISessionController;
+HSPLandroid/media/session/ISession$Stub$Proxy;->setActive(Z)V
+HPLandroid/media/session/ISession$Stub$Proxy;->setExtras(Landroid/os/Bundle;)V
+HSPLandroid/media/session/ISession$Stub$Proxy;->setFlags(I)V
+HSPLandroid/media/session/ISession$Stub$Proxy;->setLaunchPendingIntent(Landroid/app/PendingIntent;)V
+HSPLandroid/media/session/ISession$Stub$Proxy;->setMediaButtonReceiver(Landroid/app/PendingIntent;)V
+HSPLandroid/media/session/ISession$Stub$Proxy;->setMetadata(Landroid/media/MediaMetadata;JLjava/lang/String;)V
+HSPLandroid/media/session/ISession$Stub$Proxy;->setPlaybackState(Landroid/media/session/PlaybackState;)V
+HSPLandroid/media/session/ISession$Stub$Proxy;->setPlaybackToLocal(Landroid/media/AudioAttributes;)V
+HSPLandroid/media/session/ISession$Stub$Proxy;->setRatingType(I)V
+PLandroid/media/session/ISession$Stub;-><init>()V
+PLandroid/media/session/ISession$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/session/ISession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISession;
+PLandroid/media/session/ISession$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/media/session/ISession$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/session/ISessionCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/media/session/ISessionCallback$Stub;-><init>()V
HSPLandroid/media/session/ISessionCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/session/ISessionController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/media/session/ISessionController$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/media/session/ISessionController$Stub$Proxy;->getMetadata()Landroid/media/MediaMetadata;
+HPLandroid/media/session/ISessionController$Stub$Proxy;->getPackageName()Ljava/lang/String;
+HPLandroid/media/session/ISessionController$Stub$Proxy;->getPlaybackState()Landroid/media/session/PlaybackState;
+HPLandroid/media/session/ISessionController$Stub$Proxy;->getVolumeAttributes()Landroid/media/session/MediaController$PlaybackInfo;
+HPLandroid/media/session/ISessionController$Stub$Proxy;->registerCallback(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
+HPLandroid/media/session/ISessionController$Stub$Proxy;->unregisterCallback(Landroid/media/session/ISessionControllerCallback;)V
+PLandroid/media/session/ISessionController$Stub;-><init>()V
+PLandroid/media/session/ISessionController$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/media/session/ISessionController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionController;
+PLandroid/media/session/ISessionController$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/media/session/ISessionController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/media/session/ISessionControllerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->onExtrasChanged(Landroid/os/Bundle;)V
+PLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->onMetadataChanged(Landroid/media/MediaMetadata;)V
+PLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V
+PLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->onQueueChanged(Landroid/content/pm/ParceledListSlice;)V
+PLandroid/media/session/ISessionControllerCallback$Stub$Proxy;->onSessionDestroyed()V
+PLandroid/media/session/ISessionControllerCallback$Stub;-><init>()V
+HPLandroid/media/session/ISessionControllerCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/media/session/ISessionControllerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionControllerCallback;
+HPLandroid/media/session/ISessionControllerCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/media/session/ISessionManager$Stub$Proxy;->addSessionsListener(Landroid/media/session/IActiveSessionsListener;Landroid/content/ComponentName;I)V
+HSPLandroid/media/session/ISessionManager$Stub$Proxy;->createSession(Ljava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;I)Landroid/media/session/ISession;
+HPLandroid/media/session/ISessionManager$Stub$Proxy;->dispatchVolumeKeyEvent(Ljava/lang/String;Ljava/lang/String;ZLandroid/view/KeyEvent;IZ)V
HSPLandroid/media/session/ISessionManager$Stub$Proxy;->getSessions(Landroid/content/ComponentName;I)Ljava/util/List;
-HSPLandroid/media/session/ISessionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionManager;
+HSPLandroid/media/session/ISessionManager$Stub;-><init>()V
+PLandroid/media/session/ISessionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionManager;
+HPLandroid/media/session/ISessionManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/media/session/MediaController$Callback;-><init>()V
+HPLandroid/media/session/MediaController$Callback;->onExtrasChanged(Landroid/os/Bundle;)V
+HPLandroid/media/session/MediaController$Callback;->onMetadataChanged(Landroid/media/MediaMetadata;)V
+HPLandroid/media/session/MediaController$Callback;->onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V
+PLandroid/media/session/MediaController$CallbackStub;-><init>(Landroid/media/session/MediaController;)V
+HPLandroid/media/session/MediaController$CallbackStub;->onExtrasChanged(Landroid/os/Bundle;)V
+HPLandroid/media/session/MediaController$CallbackStub;->onMetadataChanged(Landroid/media/MediaMetadata;)V
+HPLandroid/media/session/MediaController$CallbackStub;->onPlaybackStateChanged(Landroid/media/session/PlaybackState;)V
+HPLandroid/media/session/MediaController$CallbackStub;->onQueueChanged(Landroid/content/pm/ParceledListSlice;)V
+HPLandroid/media/session/MediaController$CallbackStub;->onSessionDestroyed()V
+HPLandroid/media/session/MediaController$MessageHandler;->handleMessage(Landroid/os/Message;)V
+HPLandroid/media/session/MediaController$PlaybackInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaController$PlaybackInfo;
+HPLandroid/media/session/MediaController$PlaybackInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/media/session/MediaController$PlaybackInfo;-><init>(Landroid/os/Parcel;)V
+HPLandroid/media/session/MediaController$PlaybackInfo;->getPlaybackType()I
+PLandroid/media/session/MediaController$PlaybackInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/media/session/MediaController$TransportControls;-><init>(Landroid/media/session/MediaController;)V
+PLandroid/media/session/MediaController$TransportControls;-><init>(Landroid/media/session/MediaController;Landroid/media/session/MediaController$1;)V
HSPLandroid/media/session/MediaController;-><init>(Landroid/content/Context;Landroid/media/session/MediaSession$Token;)V
+HPLandroid/media/session/MediaController;->access$600(Landroid/media/session/MediaController;ILjava/lang/Object;Landroid/os/Bundle;)V
+HPLandroid/media/session/MediaController;->addCallbackLocked(Landroid/media/session/MediaController$Callback;Landroid/os/Handler;)V
+HPLandroid/media/session/MediaController;->controlsSameSession(Landroid/media/session/MediaController;)Z
+HPLandroid/media/session/MediaController;->getHandlerForCallbackLocked(Landroid/media/session/MediaController$Callback;)Landroid/media/session/MediaController$MessageHandler;
+HPLandroid/media/session/MediaController;->getMetadata()Landroid/media/MediaMetadata;
+HPLandroid/media/session/MediaController;->getPackageName()Ljava/lang/String;
+HPLandroid/media/session/MediaController;->getPlaybackInfo()Landroid/media/session/MediaController$PlaybackInfo;
+HPLandroid/media/session/MediaController;->getPlaybackState()Landroid/media/session/PlaybackState;
+HPLandroid/media/session/MediaController;->getSessionBinder()Landroid/media/session/ISessionController;
+HPLandroid/media/session/MediaController;->getSessionToken()Landroid/media/session/MediaSession$Token;
+HPLandroid/media/session/MediaController;->postMessage(ILjava/lang/Object;Landroid/os/Bundle;)V
+HPLandroid/media/session/MediaController;->registerCallback(Landroid/media/session/MediaController$Callback;)V
+HPLandroid/media/session/MediaController;->registerCallback(Landroid/media/session/MediaController$Callback;Landroid/os/Handler;)V
+HPLandroid/media/session/MediaController;->removeCallbackLocked(Landroid/media/session/MediaController$Callback;)Z
+HPLandroid/media/session/MediaController;->unregisterCallback(Landroid/media/session/MediaController$Callback;)V
+HSPLandroid/media/session/MediaSession$Callback;-><init>()V
+PLandroid/media/session/MediaSession$Callback;->access$102(Landroid/media/session/MediaSession$Callback;Landroid/media/session/MediaSession;)Landroid/media/session/MediaSession;
+PLandroid/media/session/MediaSession$Callback;->access$502(Landroid/media/session/MediaSession$Callback;Landroid/media/session/MediaSession$CallbackMessageHandler;)Landroid/media/session/MediaSession$CallbackMessageHandler;
+PLandroid/media/session/MediaSession$CallbackMessageHandler;-><init>(Landroid/media/session/MediaSession;Landroid/os/Looper;Landroid/media/session/MediaSession$Callback;)V
+PLandroid/media/session/MediaSession$CallbackStub;-><init>(Landroid/media/session/MediaSession;)V
+PLandroid/media/session/MediaSession$Token$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/MediaSession$Token;
+PLandroid/media/session/MediaSession$Token$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/media/session/MediaSession$Token;-><init>(Landroid/media/session/ISessionController;)V
+PLandroid/media/session/MediaSession$Token;-><init>(Landroid/os/Parcel;)V
+HPLandroid/media/session/MediaSession$Token;->equals(Ljava/lang/Object;)Z
+PLandroid/media/session/MediaSession$Token;->getBinder()Landroid/media/session/ISessionController;
+HPLandroid/media/session/MediaSession$Token;->hashCode()I
+HSPLandroid/media/session/MediaSession$Token;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/media/session/MediaSession;-><init>(Landroid/content/Context;Ljava/lang/String;)V
HSPLandroid/media/session/MediaSession;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)V
+HPLandroid/media/session/MediaSession;->getController()Landroid/media/session/MediaController;
+HSPLandroid/media/session/MediaSession;->getSessionToken()Landroid/media/session/MediaSession$Token;
HSPLandroid/media/session/MediaSession;->hasCustomParcelable(Landroid/os/Bundle;)Z
+HPLandroid/media/session/MediaSession;->release()V
+HSPLandroid/media/session/MediaSession;->setActive(Z)V
+PLandroid/media/session/MediaSession;->setCallback(Landroid/media/session/MediaSession$Callback;)V
HSPLandroid/media/session/MediaSession;->setCallback(Landroid/media/session/MediaSession$Callback;Landroid/os/Handler;)V
+HPLandroid/media/session/MediaSession;->setExtras(Landroid/os/Bundle;)V
HSPLandroid/media/session/MediaSession;->setFlags(I)V
-HSPLandroid/media/session/MediaSessionManager$CallbackStub;-><init>(Landroid/media/session/MediaSessionManager;)V
-HSPLandroid/media/session/MediaSessionManager$CallbackStub;-><init>(Landroid/media/session/MediaSessionManager;Landroid/media/session/MediaSessionManager$1;)V
+HSPLandroid/media/session/MediaSession;->setMediaButtonReceiver(Landroid/app/PendingIntent;)V
+HSPLandroid/media/session/MediaSession;->setMetadata(Landroid/media/MediaMetadata;)V
+HSPLandroid/media/session/MediaSession;->setPlaybackState(Landroid/media/session/PlaybackState;)V
+HSPLandroid/media/session/MediaSession;->setPlaybackToLocal(Landroid/media/AudioAttributes;)V
+HSPLandroid/media/session/MediaSession;->setRatingType(I)V
+HSPLandroid/media/session/MediaSession;->setSessionActivity(Landroid/app/PendingIntent;)V
+PLandroid/media/session/MediaSessionLegacyHelper;-><clinit>()V
+PLandroid/media/session/MediaSessionLegacyHelper;-><init>(Landroid/content/Context;)V
+PLandroid/media/session/MediaSessionLegacyHelper;->getHelper(Landroid/content/Context;)Landroid/media/session/MediaSessionLegacyHelper;
+PLandroid/media/session/MediaSessionLegacyHelper;->sendVolumeKeyEvent(Landroid/view/KeyEvent;IZ)V
+PLandroid/media/session/MediaSessionManager$CallbackStub;-><init>(Landroid/media/session/MediaSessionManager;)V
+PLandroid/media/session/MediaSessionManager$CallbackStub;-><init>(Landroid/media/session/MediaSessionManager;Landroid/media/session/MediaSessionManager$1;)V
+HPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper$1$1;->run()V
+HPLandroid/media/session/MediaSessionManager$SessionsChangedWrapper$1;->onActiveSessionsChanged(Ljava/util/List;)V
HSPLandroid/media/session/MediaSessionManager;-><init>(Landroid/content/Context;)V
+HPLandroid/media/session/MediaSessionManager;->addOnActiveSessionsChangedListener(Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Landroid/content/ComponentName;ILandroid/os/Handler;)V
HSPLandroid/media/session/MediaSessionManager;->createSession(Landroid/media/session/MediaSession$CallbackStub;Ljava/lang/String;Landroid/os/Bundle;)Landroid/media/session/ISession;
+PLandroid/media/session/MediaSessionManager;->dispatchVolumeKeyEvent(Landroid/view/KeyEvent;IZ)V
+HPLandroid/media/session/MediaSessionManager;->dispatchVolumeKeyEventAsSystemService(Landroid/view/KeyEvent;I)V
+PLandroid/media/session/MediaSessionManager;->dispatchVolumeKeyEventInternal(ZLandroid/view/KeyEvent;IZ)V
HSPLandroid/media/session/MediaSessionManager;->getActiveSessions(Landroid/content/ComponentName;)Ljava/util/List;
HSPLandroid/media/session/MediaSessionManager;->getActiveSessionsForUser(Landroid/content/ComponentName;I)Ljava/util/List;
+PLandroid/media/session/PlaybackState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/PlaybackState;
+PLandroid/media/session/PlaybackState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/media/session/PlaybackState$Builder;-><init>()V
+HPLandroid/media/session/PlaybackState$Builder;-><init>(Landroid/media/session/PlaybackState;)V
+HSPLandroid/media/session/PlaybackState$Builder;->build()Landroid/media/session/PlaybackState;
+HPLandroid/media/session/PlaybackState$Builder;->setActions(J)Landroid/media/session/PlaybackState$Builder;
+HPLandroid/media/session/PlaybackState$Builder;->setActiveQueueItemId(J)Landroid/media/session/PlaybackState$Builder;
+HPLandroid/media/session/PlaybackState$Builder;->setBufferedPosition(J)Landroid/media/session/PlaybackState$Builder;
+HPLandroid/media/session/PlaybackState$Builder;->setErrorMessage(Ljava/lang/CharSequence;)Landroid/media/session/PlaybackState$Builder;
+HPLandroid/media/session/PlaybackState$Builder;->setExtras(Landroid/os/Bundle;)Landroid/media/session/PlaybackState$Builder;
+HPLandroid/media/session/PlaybackState$Builder;->setState(IJF)Landroid/media/session/PlaybackState$Builder;
+HPLandroid/media/session/PlaybackState$Builder;->setState(IJFJ)Landroid/media/session/PlaybackState$Builder;
+PLandroid/media/session/PlaybackState$CustomAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/media/session/PlaybackState$CustomAction;
+PLandroid/media/session/PlaybackState$CustomAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/media/session/PlaybackState$CustomAction;-><init>(Landroid/os/Parcel;)V
+PLandroid/media/session/PlaybackState$CustomAction;-><init>(Landroid/os/Parcel;Landroid/media/session/PlaybackState$1;)V
+HSPLandroid/media/session/PlaybackState;-><init>(IJJFJJLjava/util/List;JLjava/lang/CharSequence;Landroid/os/Bundle;)V
+PLandroid/media/session/PlaybackState;-><init>(IJJFJJLjava/util/List;JLjava/lang/CharSequence;Landroid/os/Bundle;Landroid/media/session/PlaybackState$1;)V
+PLandroid/media/session/PlaybackState;-><init>(Landroid/os/Parcel;)V
+PLandroid/media/session/PlaybackState;-><init>(Landroid/os/Parcel;Landroid/media/session/PlaybackState$1;)V
+PLandroid/media/session/PlaybackState;->access$1000(Landroid/media/session/PlaybackState;)J
+PLandroid/media/session/PlaybackState;->access$1100(Landroid/media/session/PlaybackState;)J
+PLandroid/media/session/PlaybackState;->access$1200(Landroid/media/session/PlaybackState;)Landroid/os/Bundle;
+PLandroid/media/session/PlaybackState;->access$300(Landroid/media/session/PlaybackState;)I
+PLandroid/media/session/PlaybackState;->access$400(Landroid/media/session/PlaybackState;)J
+PLandroid/media/session/PlaybackState;->access$500(Landroid/media/session/PlaybackState;)J
+PLandroid/media/session/PlaybackState;->access$600(Landroid/media/session/PlaybackState;)F
+PLandroid/media/session/PlaybackState;->access$700(Landroid/media/session/PlaybackState;)J
+PLandroid/media/session/PlaybackState;->access$800(Landroid/media/session/PlaybackState;)Ljava/util/List;
+PLandroid/media/session/PlaybackState;->access$900(Landroid/media/session/PlaybackState;)Ljava/lang/CharSequence;
+HPLandroid/media/session/PlaybackState;->getState()I
+PLandroid/media/session/PlaybackState;->toString()Ljava/lang/String;
+HSPLandroid/media/session/PlaybackState;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/metrics/LogMaker;-><init>(I)V
-HPLandroid/metrics/LogMaker;->addTaggedData(ILjava/lang/Object;)Landroid/metrics/LogMaker;
+PLandroid/metrics/LogMaker;-><init>([Ljava/lang/Object;)V
+HSPLandroid/metrics/LogMaker;->addTaggedData(ILjava/lang/Object;)Landroid/metrics/LogMaker;
+PLandroid/metrics/LogMaker;->clearTaggedData(I)Landroid/metrics/LogMaker;
+HPLandroid/metrics/LogMaker;->deserialize([Ljava/lang/Object;)V
+PLandroid/metrics/LogMaker;->getCategory()I
+PLandroid/metrics/LogMaker;->getCounterBucket()J
+PLandroid/metrics/LogMaker;->getCounterName()Ljava/lang/String;
+PLandroid/metrics/LogMaker;->getCounterValue()I
HSPLandroid/metrics/LogMaker;->getEntries()Landroid/util/SparseArray;
-PLandroid/metrics/LogMaker;->getType()I
-HPLandroid/metrics/LogMaker;->isValidValue(Ljava/lang/Object;)Z
+PLandroid/metrics/LogMaker;->getPackageName()Ljava/lang/String;
+PLandroid/metrics/LogMaker;->getSubtype()I
+PLandroid/metrics/LogMaker;->getTaggedData(I)Ljava/lang/Object;
+HPLandroid/metrics/LogMaker;->getTimestamp()J
+HSPLandroid/metrics/LogMaker;->getType()I
+PLandroid/metrics/LogMaker;->isLongCounterBucket()Z
+HSPLandroid/metrics/LogMaker;->isValidValue(Ljava/lang/Object;)Z
HSPLandroid/metrics/LogMaker;->serialize()[Ljava/lang/Object;
HSPLandroid/metrics/LogMaker;->setCategory(I)Landroid/metrics/LogMaker;
+PLandroid/metrics/LogMaker;->setComponentName(Landroid/content/ComponentName;)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->setCounterBucket(I)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->setCounterName(Ljava/lang/String;)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->setCounterValue(I)Landroid/metrics/LogMaker;
+PLandroid/metrics/LogMaker;->setLatency(J)Landroid/metrics/LogMaker;
+PLandroid/metrics/LogMaker;->setPackageName(Ljava/lang/String;)Landroid/metrics/LogMaker;
+PLandroid/metrics/LogMaker;->setProcessId(I)Landroid/metrics/LogMaker;
+HSPLandroid/metrics/LogMaker;->setSubtype(I)Landroid/metrics/LogMaker;
+PLandroid/metrics/LogMaker;->setTimestamp(J)Landroid/metrics/LogMaker;
HSPLandroid/metrics/LogMaker;->setType(I)Landroid/metrics/LogMaker;
+PLandroid/metrics/LogMaker;->setUid(I)Landroid/metrics/LogMaker;
+HPLandroid/metrics/MetricsReader$Event;-><init>(Landroid/util/EventLog$Event;)V
+PLandroid/metrics/MetricsReader$Event;->getData()Ljava/lang/Object;
+PLandroid/metrics/MetricsReader$Event;->getProcessId()I
+PLandroid/metrics/MetricsReader$Event;->getTimeMillis()J
+PLandroid/metrics/MetricsReader$Event;->getUid()I
+PLandroid/metrics/MetricsReader$LogReader;-><init>()V
+HPLandroid/metrics/MetricsReader$LogReader;->readEvents([IJLjava/util/Collection;)V
+PLandroid/metrics/MetricsReader$LogReader;->writeCheckpoint(I)V
+PLandroid/metrics/MetricsReader;-><init>()V
+PLandroid/metrics/MetricsReader;->checkpoint()V
+HPLandroid/metrics/MetricsReader;->hasNext()Z
+HPLandroid/metrics/MetricsReader;->next()Landroid/metrics/LogMaker;
+HPLandroid/metrics/MetricsReader;->read(J)V
+PLandroid/metrics/MetricsReader;->reset()V
HSPLandroid/net/-$$Lambda$FpGXkd3pLxeXY58eJ_84mi1PLWQ;->nameOf(I)Ljava/lang/String;
HSPLandroid/net/-$$Lambda$Network$KD6DxaMRJIcajhj36TU1K7lJnHQ;->lookup(Ljava/lang/String;)Ljava/util/List;
+PLandroid/net/-$$Lambda$NetworkFactory$HfslgqyaKc_n0wXX5_qRYVZoGfI;-><init>(Landroid/net/NetworkFactory;)V
+PLandroid/net/-$$Lambda$NetworkFactory$HfslgqyaKc_n0wXX5_qRYVZoGfI;->run()V
+PLandroid/net/-$$Lambda$NetworkScoreManager$NetworkScoreCallbackProxy$PGkg1UrNyisY0wAts4zoVuYRgkw;-><init>(Landroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;)V
+PLandroid/net/-$$Lambda$NetworkScoreManager$NetworkScoreCallbackProxy$PGkg1UrNyisY0wAts4zoVuYRgkw;->run()V
+PLandroid/net/-$$Lambda$NetworkScoreManager$NetworkScoreCallbackProxy$TEOhIiY2C9y8yDWwRR6zm_12TGY;-><init>(Landroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;Ljava/util/List;)V
+PLandroid/net/-$$Lambda$NetworkScoreManager$NetworkScoreCallbackProxy$TEOhIiY2C9y8yDWwRR6zm_12TGY;->run()V
+HSPLandroid/net/-$$Lambda$NetworkStats$3raHHJpnJwsEAXnRXF2pK8-UDFY;-><clinit>()V
+HSPLandroid/net/-$$Lambda$NetworkStats$3raHHJpnJwsEAXnRXF2pK8-UDFY;-><init>()V
+HSPLandroid/net/-$$Lambda$NetworkStats$3raHHJpnJwsEAXnRXF2pK8-UDFY;->test(Ljava/lang/Object;)Z
+PLandroid/net/-$$Lambda$NetworkStats$xvFSsVoR0k5s7Fhw1yPDPVIpx8A;-><init>(II[Ljava/lang/String;)V
+PLandroid/net/-$$Lambda$NetworkStats$xvFSsVoR0k5s7Fhw1yPDPVIpx8A;->test(Ljava/lang/Object;)Z
HSPLandroid/net/-$$Lambda$p1_56lwnt1xBuY1muPblbN1Dtkw;->nameOf(I)Ljava/lang/String;
+PLandroid/net/CaptivePortal$1;-><init>()V
+PLandroid/net/CaptivePortal;-><clinit>()V
+PLandroid/net/CaptivePortal;-><init>(Landroid/os/IBinder;)V
+PLandroid/net/CaptivePortal;->describeContents()I
+PLandroid/net/CaptivePortal;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/ConnectivityManager$1;-><init>(Landroid/net/ConnectivityManager;Landroid/net/ConnectivityManager$OnNetworkActiveListener;)V
+PLandroid/net/ConnectivityManager$1;->onNetworkActive()V
HSPLandroid/net/ConnectivityManager$CallbackHandler;-><init>(Landroid/net/ConnectivityManager;Landroid/os/Handler;)V
HSPLandroid/net/ConnectivityManager$CallbackHandler;-><init>(Landroid/net/ConnectivityManager;Landroid/os/Looper;)V
HSPLandroid/net/ConnectivityManager$CallbackHandler;->getObject(Landroid/os/Message;Ljava/lang/Class;)Ljava/lang/Object;
@@ -4403,35 +14482,76 @@ HSPLandroid/net/ConnectivityManager$NetworkCallback;->onAvailable(Landroid/net/N
HSPLandroid/net/ConnectivityManager$NetworkCallback;->onBlockedStatusChanged(Landroid/net/Network;Z)V
HSPLandroid/net/ConnectivityManager$NetworkCallback;->onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V
HSPLandroid/net/ConnectivityManager$NetworkCallback;->onLinkPropertiesChanged(Landroid/net/Network;Landroid/net/LinkProperties;)V
-HSPLandroid/net/ConnectivityManager$NetworkCallback;->onPreCheck(Landroid/net/Network;)V
+PLandroid/net/ConnectivityManager$NetworkCallback;->onLost(Landroid/net/Network;)V
+PLandroid/net/ConnectivityManager$NetworkCallback;->onPreCheck(Landroid/net/Network;)V
HSPLandroid/net/ConnectivityManager;-><init>(Landroid/content/Context;Landroid/net/IConnectivityManager;)V
HSPLandroid/net/ConnectivityManager;->access$800()Ljava/util/HashMap;
+PLandroid/net/ConnectivityManager;->addDefaultNetworkActiveListener(Landroid/net/ConnectivityManager$OnNetworkActiveListener;)V
HSPLandroid/net/ConnectivityManager;->checkCallbackNotNull(Landroid/net/ConnectivityManager$NetworkCallback;)V
+PLandroid/net/ConnectivityManager;->enforceChangePermission(Landroid/content/Context;)V
+PLandroid/net/ConnectivityManager;->enforceTetherChangePermission(Landroid/content/Context;Ljava/lang/String;)V
HSPLandroid/net/ConnectivityManager;->from(Landroid/content/Context;)Landroid/net/ConnectivityManager;
HSPLandroid/net/ConnectivityManager;->getActiveNetwork()Landroid/net/Network;
+HSPLandroid/net/ConnectivityManager;->getActiveNetworkForUid(I)Landroid/net/Network;
+HSPLandroid/net/ConnectivityManager;->getActiveNetworkForUid(IZ)Landroid/net/Network;
HSPLandroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
+HSPLandroid/net/ConnectivityManager;->getAllNetworkInfo()[Landroid/net/NetworkInfo;
HSPLandroid/net/ConnectivityManager;->getAllNetworks()[Landroid/net/Network;
+PLandroid/net/ConnectivityManager;->getAlwaysOnVpnPackageForUser(I)Ljava/lang/String;
+PLandroid/net/ConnectivityManager;->getBackgroundDataSetting()Z
HSPLandroid/net/ConnectivityManager;->getBoundNetworkForProcess()Landroid/net/Network;
+HSPLandroid/net/ConnectivityManager;->getCallbackName(I)Ljava/lang/String;
HSPLandroid/net/ConnectivityManager;->getDefaultHandler()Landroid/net/ConnectivityManager$CallbackHandler;
+HPLandroid/net/ConnectivityManager;->getDefaultNetworkCapabilitiesForUser(I)[Landroid/net/NetworkCapabilities;
+HSPLandroid/net/ConnectivityManager;->getDefaultProxy()Landroid/net/ProxyInfo;
+PLandroid/net/ConnectivityManager;->getDefaultRequest()Landroid/net/NetworkRequest;
+HSPLandroid/net/ConnectivityManager;->getInstance()Landroid/net/ConnectivityManager;
+HSPLandroid/net/ConnectivityManager;->getInstanceOrNull()Landroid/net/ConnectivityManager;
HSPLandroid/net/ConnectivityManager;->getLinkProperties(Landroid/net/Network;)Landroid/net/LinkProperties;
HSPLandroid/net/ConnectivityManager;->getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;
HSPLandroid/net/ConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
HSPLandroid/net/ConnectivityManager;->getNetworkInfo(Landroid/net/Network;)Landroid/net/NetworkInfo;
HSPLandroid/net/ConnectivityManager;->getNetworkInfoForUid(Landroid/net/Network;IZ)Landroid/net/NetworkInfo;
+HSPLandroid/net/ConnectivityManager;->getNetworkManagementService()Landroid/os/INetworkManagementService;
HSPLandroid/net/ConnectivityManager;->getNetworkPolicyManager()Landroid/net/INetworkPolicyManager;
+PLandroid/net/ConnectivityManager;->getNetworkTypeName(I)Ljava/lang/String;
+HSPLandroid/net/ConnectivityManager;->getProcessDefaultNetwork()Landroid/net/Network;
HSPLandroid/net/ConnectivityManager;->getProxyForNetwork(Landroid/net/Network;)Landroid/net/ProxyInfo;
HSPLandroid/net/ConnectivityManager;->getRestrictBackgroundStatus()I
+HSPLandroid/net/ConnectivityManager;->getTetherableBluetoothRegexs()[Ljava/lang/String;
+HSPLandroid/net/ConnectivityManager;->getTetherableUsbRegexs()[Ljava/lang/String;
+HSPLandroid/net/ConnectivityManager;->getTetherableWifiRegexs()[Ljava/lang/String;
+PLandroid/net/ConnectivityManager;->inferLegacyTypeForNetworkCapabilities(Landroid/net/NetworkCapabilities;)I
HSPLandroid/net/ConnectivityManager;->isActiveNetworkMetered()Z
+HSPLandroid/net/ConnectivityManager;->isDefaultNetworkActive()Z
HSPLandroid/net/ConnectivityManager;->isNetworkSupported(I)Z
+HPLandroid/net/ConnectivityManager;->isNetworkTypeMobile(I)Z
HSPLandroid/net/ConnectivityManager;->isNetworkTypeValid(I)Z
+PLandroid/net/ConnectivityManager;->isNetworkTypeWifi(I)Z
HSPLandroid/net/ConnectivityManager;->isTetheringSupported()Z
HSPLandroid/net/ConnectivityManager;->printStackTrace()V
HSPLandroid/net/ConnectivityManager;->registerDefaultNetworkCallback(Landroid/net/ConnectivityManager$NetworkCallback;)V
HSPLandroid/net/ConnectivityManager;->registerDefaultNetworkCallback(Landroid/net/ConnectivityManager$NetworkCallback;Landroid/os/Handler;)V
+PLandroid/net/ConnectivityManager;->registerNetworkAgent(Landroid/os/Messenger;Landroid/net/NetworkInfo;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;ILandroid/net/NetworkMisc;I)I
HSPLandroid/net/ConnectivityManager;->registerNetworkCallback(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;)V
HSPLandroid/net/ConnectivityManager;->registerNetworkCallback(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;Landroid/os/Handler;)V
+HSPLandroid/net/ConnectivityManager;->registerNetworkFactory(Landroid/os/Messenger;Ljava/lang/String;)I
+HPLandroid/net/ConnectivityManager;->reportNetworkConnectivity(Landroid/net/Network;Z)V
+HPLandroid/net/ConnectivityManager;->requestNetwork(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;)V
+PLandroid/net/ConnectivityManager;->requestNetwork(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;IILandroid/os/Handler;)V
+PLandroid/net/ConnectivityManager;->requestNetwork(Landroid/net/NetworkRequest;Landroid/net/ConnectivityManager$NetworkCallback;Landroid/os/Handler;)V
HSPLandroid/net/ConnectivityManager;->sendRequestForNetwork(Landroid/net/NetworkCapabilities;Landroid/net/ConnectivityManager$NetworkCallback;IIILandroid/net/ConnectivityManager$CallbackHandler;)Landroid/net/NetworkRequest;
+HPLandroid/net/ConnectivityManager;->setAirplaneMode(Z)V
+HSPLandroid/net/ConnectivityManager;->setProcessDefaultNetwork(Landroid/net/Network;)Z
+HPLandroid/net/ConnectivityManager;->shouldAvoidBadWifi()Z
+HPLandroid/net/ConnectivityManager;->startCaptivePortalApp(Landroid/net/Network;Landroid/os/Bundle;)V
HSPLandroid/net/ConnectivityManager;->unregisterNetworkCallback(Landroid/net/ConnectivityManager$NetworkCallback;)V
+HPLandroid/net/ConnectivityMetricsEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/ConnectivityMetricsEvent;
+HPLandroid/net/ConnectivityMetricsEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/ConnectivityMetricsEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/ConnectivityMetricsEvent;-><init>(Landroid/os/Parcel;Landroid/net/ConnectivityMetricsEvent$1;)V
+HPLandroid/net/ConnectivityMetricsEvent;->toString()Ljava/lang/String;
+HPLandroid/net/ConnectivityMetricsEvent;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/net/ConnectivityThread$Singleton;-><clinit>()V
HSPLandroid/net/ConnectivityThread$Singleton;->access$100()Landroid/net/ConnectivityThread;
HSPLandroid/net/ConnectivityThread;-><init>()V
@@ -4441,98 +14561,256 @@ HSPLandroid/net/ConnectivityThread;->getInstanceLooper()Landroid/os/Looper;
HSPLandroid/net/Credentials;-><init>(III)V
HSPLandroid/net/Credentials;->getPid()I
HSPLandroid/net/Credentials;->getUid()I
+PLandroid/net/DhcpInfo$1;-><init>()V
+HPLandroid/net/DhcpInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/DhcpInfo;
+HPLandroid/net/DhcpInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/DhcpInfo;-><clinit>()V
+PLandroid/net/DhcpInfo;-><init>()V
+PLandroid/net/DhcpInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/DhcpResults;-><init>(Landroid/net/DhcpResults;)V
+PLandroid/net/DhcpResults;-><init>(Landroid/net/StaticIpConfiguration;)V
+PLandroid/net/DhcpResults;->clear()V
+PLandroid/net/DhcpResults;->getLeaseDuration()I
+PLandroid/net/DhcpResults;->hasMeteredHint()Z
+PLandroid/net/DhcpResults;->toStaticIpConfiguration()Landroid/net/StaticIpConfiguration;
+PLandroid/net/DhcpResults;->toString()Ljava/lang/String;
+PLandroid/net/EventLogTags;->writeNtpFailure(Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/net/EventLogTags;->writeNtpSuccess(Ljava/lang/String;JJ)V
+PLandroid/net/ICaptivePortal$Stub;-><init>()V
+PLandroid/net/ICaptivePortal$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/net/ICaptivePortal$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/net/IConnectivityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getActiveNetwork()Landroid/net/Network;
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
+HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getAllNetworkInfo()[Landroid/net/NetworkInfo;
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getAllNetworks()[Landroid/net/Network;
+HPLandroid/net/IConnectivityManager$Stub$Proxy;->getDefaultNetworkCapabilitiesForUser(I)[Landroid/net/NetworkCapabilities;
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getLinkProperties(Landroid/net/Network;)Landroid/net/LinkProperties;
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getNetworkInfo(I)Landroid/net/NetworkInfo;
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getNetworkInfoForUid(Landroid/net/Network;IZ)Landroid/net/NetworkInfo;
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getProxyForNetwork(Landroid/net/Network;)Landroid/net/ProxyInfo;
+HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getTetherableBluetoothRegexs()[Ljava/lang/String;
+HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getTetherableUsbRegexs()[Ljava/lang/String;
+HSPLandroid/net/IConnectivityManager$Stub$Proxy;->getTetherableWifiRegexs()[Ljava/lang/String;
+HPLandroid/net/IConnectivityManager$Stub$Proxy;->getVpnConfig(I)Lcom/android/internal/net/VpnConfig;
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->isActiveNetworkMetered()Z
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->isNetworkSupported(I)Z
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->isTetheringSupported(Ljava/lang/String;)Z
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->listenForNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;Landroid/os/IBinder;)Landroid/net/NetworkRequest;
+HSPLandroid/net/IConnectivityManager$Stub$Proxy;->registerNetworkFactory(Landroid/os/Messenger;Ljava/lang/String;)I
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->releaseNetworkRequest(Landroid/net/NetworkRequest;)V
+HPLandroid/net/IConnectivityManager$Stub$Proxy;->reportNetworkConnectivity(Landroid/net/Network;Z)V
HSPLandroid/net/IConnectivityManager$Stub$Proxy;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;I)Landroid/net/NetworkRequest;
+HPLandroid/net/IConnectivityManager$Stub$Proxy;->setAirplaneMode(Z)V
+HPLandroid/net/IConnectivityManager$Stub$Proxy;->shouldAvoidBadWifi()Z
+HPLandroid/net/IConnectivityManager$Stub$Proxy;->startCaptivePortalAppInternal(Landroid/net/Network;Landroid/os/Bundle;)V
+HSPLandroid/net/IConnectivityManager$Stub;-><init>()V
HSPLandroid/net/IConnectivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IConnectivityManager;
+PLandroid/net/IConnectivityManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/net/IConnectivityManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/IEthernetManager$Stub;-><init>()V
+PLandroid/net/IEthernetManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/net/IIpConnectivityMetrics$Stub$Proxy;->logEvent(Landroid/net/ConnectivityMetricsEvent;)I
+HSPLandroid/net/IIpConnectivityMetrics$Stub;-><init>()V
+HSPLandroid/net/IIpConnectivityMetrics$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IIpConnectivityMetrics;
+PLandroid/net/IIpConnectivityMetrics$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/net/IIpConnectivityMetrics$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/IIpSecService$Stub;-><init>()V
+PLandroid/net/IIpSecService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/INetdEventCallback$Stub;-><init>()V
+HSPLandroid/net/INetworkManagementEventObserver$Stub;-><init>()V
+HSPLandroid/net/INetworkManagementEventObserver$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/net/INetworkPolicyListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/net/INetworkPolicyListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/net/INetworkPolicyListener$Stub$Proxy;->onMeteredIfacesChanged([Ljava/lang/String;)V
+PLandroid/net/INetworkPolicyListener$Stub$Proxy;->onSubscriptionPlansChanged(I[Landroid/telephony/SubscriptionPlan;)V
+HPLandroid/net/INetworkPolicyListener$Stub$Proxy;->onUidRulesChanged(II)V
HSPLandroid/net/INetworkPolicyListener$Stub;-><init>()V
HSPLandroid/net/INetworkPolicyListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/net/INetworkPolicyListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkPolicyListener;
HSPLandroid/net/INetworkPolicyListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/net/INetworkPolicyManager$Stub$Proxy;->getRestrictBackground()Z
HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;->getRestrictBackgroundByCaller()I
HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;->registerListener(Landroid/net/INetworkPolicyListener;)V
+HSPLandroid/net/INetworkPolicyManager$Stub$Proxy;->unregisterListener(Landroid/net/INetworkPolicyListener;)V
+HSPLandroid/net/INetworkPolicyManager$Stub;-><init>()V
HSPLandroid/net/INetworkPolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkPolicyManager;
+PLandroid/net/INetworkPolicyManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/net/INetworkPolicyManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/net/INetworkRecommendationProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/net/INetworkRecommendationProvider$Stub$Proxy;->requestScores([Landroid/net/NetworkKey;)V
+HSPLandroid/net/INetworkRecommendationProvider$Stub;-><init>()V
+PLandroid/net/INetworkRecommendationProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkRecommendationProvider;
+HSPLandroid/net/INetworkRecommendationProvider$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/net/INetworkScoreCache$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/net/INetworkScoreCache$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/net/INetworkScoreCache$Stub$Proxy;->clearScores()V
+PLandroid/net/INetworkScoreCache$Stub$Proxy;->updateScores(Ljava/util/List;)V
+HSPLandroid/net/INetworkScoreCache$Stub;-><init>()V
HSPLandroid/net/INetworkScoreCache$Stub;->asBinder()Landroid/os/IBinder;
-HSPLandroid/net/INetworkScoreCache$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/net/INetworkScoreService$Stub$Proxy;->registerNetworkScoreCache(ILandroid/net/INetworkScoreCache;I)V
-HSPLandroid/net/INetworkScoreService$Stub$Proxy;->requestScores([Landroid/net/NetworkKey;)Z
+PLandroid/net/INetworkScoreCache$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkScoreCache;
+HPLandroid/net/INetworkScoreCache$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSLandroid/net/INetworkScoreService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/INetworkScoreService$Stub$Proxy;->getActiveScorer()Landroid/net/NetworkScorerAppData;
+HSPLandroid/net/INetworkScoreService$Stub$Proxy;->getActiveScorerPackage()Ljava/lang/String;
+HPLandroid/net/INetworkScoreService$Stub$Proxy;->requestScores([Landroid/net/NetworkKey;)Z
+HPLandroid/net/INetworkScoreService$Stub$Proxy;->updateScores([Landroid/net/ScoredNetwork;)Z
+HSPLandroid/net/INetworkScoreService$Stub;-><init>()V
+HSPLandroid/net/INetworkScoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkScoreService;
+PLandroid/net/INetworkScoreService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/net/INetworkScoreService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSLandroid/net/INetworkStatsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/INetworkStatsService$Stub$Proxy;->getMobileIfaces()[Ljava/lang/String;
+HSPLandroid/net/INetworkStatsService$Stub$Proxy;->getTotalStats(I)J
HSPLandroid/net/INetworkStatsService$Stub$Proxy;->getUidStats(II)J
+HSPLandroid/net/INetworkStatsService$Stub$Proxy;->incrementOperationCount(III)V
+HPLandroid/net/INetworkStatsService$Stub$Proxy;->openSessionForUsageStats(ILjava/lang/String;)Landroid/net/INetworkStatsSession;
+HSPLandroid/net/INetworkStatsService$Stub;-><init>()V
HSPLandroid/net/INetworkStatsService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkStatsService;
+PLandroid/net/INetworkStatsService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/net/INetworkStatsService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/net/INetworkStatsSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/net/INetworkStatsSession$Stub$Proxy;->close()V
+HPLandroid/net/INetworkStatsSession$Stub$Proxy;->getHistoryIntervalForUid(Landroid/net/NetworkTemplate;IIIIJJ)Landroid/net/NetworkStatsHistory;
+PLandroid/net/INetworkStatsSession$Stub;-><init>()V
+HPLandroid/net/INetworkStatsSession$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/net/INetworkStatsSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkStatsSession;
+PLandroid/net/INetworkStatsSession$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/net/INetworkStatsSession$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/ITetheringStatsProvider$Stub;-><init>()V
+HSPLandroid/net/InetAddresses;->parseNumericAddress(Ljava/lang/String;)Ljava/net/InetAddress;
HSPLandroid/net/IpConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/IpConfiguration;
HSPLandroid/net/IpConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/IpConfiguration$IpAssignment;->valueOf(Ljava/lang/String;)Landroid/net/IpConfiguration$IpAssignment;
HSPLandroid/net/IpConfiguration$IpAssignment;->values()[Landroid/net/IpConfiguration$IpAssignment;
+PLandroid/net/IpConfiguration$ProxySettings;->valueOf(Ljava/lang/String;)Landroid/net/IpConfiguration$ProxySettings;
HSPLandroid/net/IpConfiguration$ProxySettings;->values()[Landroid/net/IpConfiguration$ProxySettings;
+PLandroid/net/IpConfiguration;-><init>()V
+PLandroid/net/IpConfiguration;-><init>(Landroid/net/IpConfiguration;)V
+HPLandroid/net/IpConfiguration;->getIpAssignment()Landroid/net/IpConfiguration$IpAssignment;
+HPLandroid/net/IpConfiguration;->getProxySettings()Landroid/net/IpConfiguration$ProxySettings;
+PLandroid/net/IpConfiguration;->init(Landroid/net/IpConfiguration$IpAssignment;Landroid/net/IpConfiguration$ProxySettings;Landroid/net/StaticIpConfiguration;Landroid/net/ProxyInfo;)V
+PLandroid/net/IpConfiguration;->setIpAssignment(Landroid/net/IpConfiguration$IpAssignment;)V
+PLandroid/net/IpConfiguration;->setProxySettings(Landroid/net/IpConfiguration$ProxySettings;)V
+HPLandroid/net/IpConfiguration;->toString()Ljava/lang/String;
+PLandroid/net/IpConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/net/IpPrefix$2;->createFromParcel(Landroid/os/Parcel;)Landroid/net/IpPrefix;
HSPLandroid/net/IpPrefix$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/IpPrefix;-><init>(Ljava/lang/String;)V
+PLandroid/net/IpPrefix;-><init>(Ljava/net/InetAddress;I)V
HSPLandroid/net/IpPrefix;-><init>([BI)V
HSPLandroid/net/IpPrefix;->checkAndMaskAddressAndPrefixLength()V
HSPLandroid/net/IpPrefix;->equals(Ljava/lang/Object;)Z
HSPLandroid/net/IpPrefix;->getAddress()Ljava/net/InetAddress;
HSPLandroid/net/IpPrefix;->getPrefixLength()I
-PLandroid/net/IpPrefix;->toString()Ljava/lang/String;
+PLandroid/net/IpPrefix;->hashCode()I
+HSPLandroid/net/IpPrefix;->toString()Ljava/lang/String;
+HPLandroid/net/IpPrefix;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/net/LinkAddress$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/LinkAddress;
HSPLandroid/net/LinkAddress$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/LinkAddress;-><init>(Ljava/lang/String;)V
+HSPLandroid/net/LinkAddress;-><init>(Ljava/lang/String;II)V
+HSPLandroid/net/LinkAddress;-><init>(Ljava/net/InetAddress;I)V
HSPLandroid/net/LinkAddress;-><init>(Ljava/net/InetAddress;III)V
-PLandroid/net/LinkAddress;->getAddress()Ljava/net/InetAddress;
+HPLandroid/net/LinkAddress;->equals(Ljava/lang/Object;)Z
+HSPLandroid/net/LinkAddress;->getAddress()Ljava/net/InetAddress;
+HSPLandroid/net/LinkAddress;->getFlags()I
+PLandroid/net/LinkAddress;->getPrefixLength()I
+HSPLandroid/net/LinkAddress;->getScope()I
HSPLandroid/net/LinkAddress;->init(Ljava/net/InetAddress;III)V
PLandroid/net/LinkAddress;->isGlobalPreferred()Z
PLandroid/net/LinkAddress;->isIpv6()Z
PLandroid/net/LinkAddress;->isIpv6ULA()Z
HSPLandroid/net/LinkAddress;->isSameAddressAs(Landroid/net/LinkAddress;)Z
-PLandroid/net/LinkAddress;->toString()Ljava/lang/String;
+HSPLandroid/net/LinkAddress;->scopeForUnicastAddress(Ljava/net/InetAddress;)I
+HSPLandroid/net/LinkAddress;->toString()Ljava/lang/String;
+HPLandroid/net/LinkAddress;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/net/LinkProperties$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/LinkProperties;
HSPLandroid/net/LinkProperties$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/LinkProperties$CompareResult;-><init>(Ljava/util/Collection;Ljava/util/Collection;)V
HSPLandroid/net/LinkProperties;-><init>()V
+HPLandroid/net/LinkProperties;-><init>(Landroid/net/LinkProperties;)V
HSPLandroid/net/LinkProperties;->addDnsServer(Ljava/net/InetAddress;)Z
HSPLandroid/net/LinkProperties;->addLinkAddress(Landroid/net/LinkAddress;)Z
HSPLandroid/net/LinkProperties;->addRoute(Landroid/net/RouteInfo;)Z
-HSPLandroid/net/LinkProperties;->addValidatedPrivateDnsServer(Ljava/net/InetAddress;)Z
-HSPLandroid/net/LinkProperties;->clear()V
+PLandroid/net/LinkProperties;->addValidatedPrivateDnsServer(Ljava/net/InetAddress;)Z
+PLandroid/net/LinkProperties;->clear()V
+PLandroid/net/LinkProperties;->describeContents()I
+PLandroid/net/LinkProperties;->ensureDirectlyConnectedRoutes()V
+PLandroid/net/LinkProperties;->equals(Ljava/lang/Object;)Z
HSPLandroid/net/LinkProperties;->findLinkAddressIndex(Landroid/net/LinkAddress;)I
PLandroid/net/LinkProperties;->getAddresses()Ljava/util/List;
+PLandroid/net/LinkProperties;->getAllInterfaceNames()Ljava/util/List;
+PLandroid/net/LinkProperties;->getAllRoutes()Ljava/util/List;
HSPLandroid/net/LinkProperties;->getDnsServers()Ljava/util/List;
PLandroid/net/LinkProperties;->getDomains()Ljava/lang/String;
PLandroid/net/LinkProperties;->getHttpProxy()Landroid/net/ProxyInfo;
PLandroid/net/LinkProperties;->getInterfaceName()Ljava/lang/String;
-PLandroid/net/LinkProperties;->getLinkAddresses()Ljava/util/List;
+HSPLandroid/net/LinkProperties;->getLinkAddresses()Ljava/util/List;
PLandroid/net/LinkProperties;->getMtu()I
+PLandroid/net/LinkProperties;->getPcscfServers()Ljava/util/List;
HSPLandroid/net/LinkProperties;->getPrivateDnsServerName()Ljava/lang/String;
-PLandroid/net/LinkProperties;->getRoutes()Ljava/util/List;
+HSPLandroid/net/LinkProperties;->getRoutes()Ljava/util/List;
+PLandroid/net/LinkProperties;->getStackedLinks()Ljava/util/List;
+PLandroid/net/LinkProperties;->getValidatedPrivateDnsServers()Ljava/util/List;
PLandroid/net/LinkProperties;->hasGlobalIpv6Address()Z
+PLandroid/net/LinkProperties;->hasIPv4DefaultRoute()Z
+PLandroid/net/LinkProperties;->hasIPv4DnsServer()Z
+PLandroid/net/LinkProperties;->hasIPv6DnsServer()Z
PLandroid/net/LinkProperties;->hasIpv4Address()Z
+HPLandroid/net/LinkProperties;->hasIpv4AddressOnInterface(Ljava/lang/String;)Z
+PLandroid/net/LinkProperties;->hasIpv4DefaultRoute()Z
+HPLandroid/net/LinkProperties;->hasIpv4DnsServer()Z
PLandroid/net/LinkProperties;->hasIpv6DefaultRoute()Z
+PLandroid/net/LinkProperties;->hasIpv6DnsServer()Z
PLandroid/net/LinkProperties;->isIdenticalAddresses(Landroid/net/LinkProperties;)Z
PLandroid/net/LinkProperties;->isIdenticalDnses(Landroid/net/LinkProperties;)Z
+PLandroid/net/LinkProperties;->isIdenticalHttpProxy(Landroid/net/LinkProperties;)Z
+PLandroid/net/LinkProperties;->isIdenticalInterfaceName(Landroid/net/LinkProperties;)Z
+PLandroid/net/LinkProperties;->isIdenticalMtu(Landroid/net/LinkProperties;)Z
+PLandroid/net/LinkProperties;->isIdenticalNat64Prefix(Landroid/net/LinkProperties;)Z
+PLandroid/net/LinkProperties;->isIdenticalPcscfs(Landroid/net/LinkProperties;)Z
+PLandroid/net/LinkProperties;->isIdenticalPrivateDns(Landroid/net/LinkProperties;)Z
PLandroid/net/LinkProperties;->isIdenticalRoutes(Landroid/net/LinkProperties;)Z
PLandroid/net/LinkProperties;->isIdenticalStackedLinks(Landroid/net/LinkProperties;)Z
+PLandroid/net/LinkProperties;->isIdenticalTcpBufferSizes(Landroid/net/LinkProperties;)Z
+PLandroid/net/LinkProperties;->isIdenticalValidatedPrivateDnses(Landroid/net/LinkProperties;)Z
+PLandroid/net/LinkProperties;->isIdenticalWakeOnLan(Landroid/net/LinkProperties;)Z
+HPLandroid/net/LinkProperties;->isIpv4Provisioned()Z
+HPLandroid/net/LinkProperties;->isIpv6Provisioned()Z
HSPLandroid/net/LinkProperties;->isPrivateDnsActive()Z
+HPLandroid/net/LinkProperties;->isProvisioned()Z
+HPLandroid/net/LinkProperties;->isReachable(Ljava/net/InetAddress;)Z
+PLandroid/net/LinkProperties;->isWakeOnLanSupported()Z
+HPLandroid/net/LinkProperties;->removeDnsServer(Ljava/net/InetAddress;)Z
+HPLandroid/net/LinkProperties;->removeLinkAddress(Landroid/net/LinkAddress;)Z
+HPLandroid/net/LinkProperties;->removeRoute(Landroid/net/RouteInfo;)Z
HSPLandroid/net/LinkProperties;->routeWithInterface(Landroid/net/RouteInfo;)Landroid/net/RouteInfo;
+HPLandroid/net/LinkProperties;->setDnsServers(Ljava/util/Collection;)V
HSPLandroid/net/LinkProperties;->setDomains(Ljava/lang/String;)V
HSPLandroid/net/LinkProperties;->setInterfaceName(Ljava/lang/String;)V
+HPLandroid/net/LinkProperties;->setLinkAddresses(Ljava/util/Collection;)V
HSPLandroid/net/LinkProperties;->setMtu(I)V
HSPLandroid/net/LinkProperties;->setNat64Prefix(Landroid/net/IpPrefix;)V
HSPLandroid/net/LinkProperties;->setPrivateDnsServerName(Ljava/lang/String;)V
HSPLandroid/net/LinkProperties;->setTcpBufferSizes(Ljava/lang/String;)V
HSPLandroid/net/LinkProperties;->setUsePrivateDns(Z)V
+PLandroid/net/LinkProperties;->setValidatedPrivateDnsServers(Ljava/util/Collection;)V
HSPLandroid/net/LinkProperties;->setWakeOnLanSupported(Z)V
-PLandroid/net/LinkProperties;->toString()Ljava/lang/String;
+HSPLandroid/net/LinkProperties;->toString()Ljava/lang/String;
+HPLandroid/net/LinkProperties;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/net/LocalServerSocket;-><init>(Ljava/io/FileDescriptor;)V
+HSPLandroid/net/LocalServerSocket;-><init>(Ljava/lang/String;)V
HSPLandroid/net/LocalServerSocket;->accept()Landroid/net/LocalSocket;
HSPLandroid/net/LocalServerSocket;->close()V
HSPLandroid/net/LocalServerSocket;->getFileDescriptor()Ljava/io/FileDescriptor;
+HSPLandroid/net/LocalSocket;-><init>()V
+HSPLandroid/net/LocalSocket;-><init>(I)V
HSPLandroid/net/LocalSocket;-><init>(Landroid/net/LocalSocketImpl;I)V
HSPLandroid/net/LocalSocket;->close()V
+HSPLandroid/net/LocalSocket;->connect(Landroid/net/LocalSocketAddress;)V
HSPLandroid/net/LocalSocket;->createConnectedLocalSocket(Landroid/net/LocalSocketImpl;I)Landroid/net/LocalSocket;
HSPLandroid/net/LocalSocket;->createLocalSocketForAccept(Landroid/net/LocalSocketImpl;)Landroid/net/LocalSocket;
HSPLandroid/net/LocalSocket;->getFileDescriptor()Ljava/io/FileDescriptor;
@@ -4541,8 +14819,15 @@ HSPLandroid/net/LocalSocket;->getOutputStream()Ljava/io/OutputStream;
HSPLandroid/net/LocalSocket;->getPeerCredentials()Landroid/net/Credentials;
HSPLandroid/net/LocalSocket;->implCreateIfNeeded()V
HSPLandroid/net/LocalSocket;->setSoTimeout(I)V
+HSPLandroid/net/LocalSocketAddress$Namespace;->getId()I
+HSPLandroid/net/LocalSocketAddress;-><init>(Ljava/lang/String;)V
+HSPLandroid/net/LocalSocketAddress;-><init>(Ljava/lang/String;Landroid/net/LocalSocketAddress$Namespace;)V
+HSPLandroid/net/LocalSocketAddress;->getName()Ljava/lang/String;
+HSPLandroid/net/LocalSocketAddress;->getNamespace()Landroid/net/LocalSocketAddress$Namespace;
HSPLandroid/net/LocalSocketImpl$SocketInputStream;-><init>(Landroid/net/LocalSocketImpl;)V
HSPLandroid/net/LocalSocketImpl$SocketInputStream;->available()I
+HSPLandroid/net/LocalSocketImpl$SocketInputStream;->read()I
+PLandroid/net/LocalSocketImpl$SocketInputStream;->read([B)I
HSPLandroid/net/LocalSocketImpl$SocketInputStream;->read([BII)I
HSPLandroid/net/LocalSocketImpl$SocketOutputStream;-><init>(Landroid/net/LocalSocketImpl;)V
HSPLandroid/net/LocalSocketImpl$SocketOutputStream;->write(I)V
@@ -4552,11 +14837,15 @@ HSPLandroid/net/LocalSocketImpl;-><init>(Ljava/io/FileDescriptor;)V
HSPLandroid/net/LocalSocketImpl;->accept(Landroid/net/LocalSocketImpl;)V
HSPLandroid/net/LocalSocketImpl;->access$000(Landroid/net/LocalSocketImpl;)Ljava/io/FileDescriptor;
HSPLandroid/net/LocalSocketImpl;->access$100(Landroid/net/LocalSocketImpl;)Ljava/lang/Object;
+HSPLandroid/net/LocalSocketImpl;->access$200(Landroid/net/LocalSocketImpl;Ljava/io/FileDescriptor;)I
HSPLandroid/net/LocalSocketImpl;->access$300(Landroid/net/LocalSocketImpl;[BIILjava/io/FileDescriptor;)I
HSPLandroid/net/LocalSocketImpl;->access$400(Landroid/net/LocalSocketImpl;)Ljava/lang/Object;
HSPLandroid/net/LocalSocketImpl;->access$500(Landroid/net/LocalSocketImpl;[BIILjava/io/FileDescriptor;)V
HSPLandroid/net/LocalSocketImpl;->access$600(Landroid/net/LocalSocketImpl;ILjava/io/FileDescriptor;)V
+HSPLandroid/net/LocalSocketImpl;->bind(Landroid/net/LocalSocketAddress;)V
HSPLandroid/net/LocalSocketImpl;->close()V
+HSPLandroid/net/LocalSocketImpl;->connect(Landroid/net/LocalSocketAddress;I)V
+HSPLandroid/net/LocalSocketImpl;->create(I)V
HSPLandroid/net/LocalSocketImpl;->finalize()V
HSPLandroid/net/LocalSocketImpl;->getFileDescriptor()Ljava/io/FileDescriptor;
HSPLandroid/net/LocalSocketImpl;->getInputStream()Ljava/io/InputStream;
@@ -4567,7 +14856,25 @@ HSPLandroid/net/LocalSocketImpl;->listen(I)V
HSPLandroid/net/LocalSocketImpl;->setOption(ILjava/lang/Object;)V
HSPLandroid/net/MacAddress$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/MacAddress;
HSPLandroid/net/MacAddress$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/MacAddress;-><init>(J)V
+PLandroid/net/MacAddress;-><init>(JLandroid/net/MacAddress$1;)V
+HSPLandroid/net/MacAddress;->byteAddrFromLongAddr(J)[B
+HPLandroid/net/MacAddress;->equals(Ljava/lang/Object;)Z
+PLandroid/net/MacAddress;->fromBytes([B)Landroid/net/MacAddress;
+HSPLandroid/net/MacAddress;->fromString(Ljava/lang/String;)Landroid/net/MacAddress;
+PLandroid/net/MacAddress;->getAddressType()I
+PLandroid/net/MacAddress;->hashCode()I
+PLandroid/net/MacAddress;->isLocallyAssigned()Z
+PLandroid/net/MacAddress;->isMacAddress([B)Z
+PLandroid/net/MacAddress;->isMulticastAddress()Z
+HPLandroid/net/MacAddress;->longAddrFromByteAddr([B)J
HSPLandroid/net/MacAddress;->longAddrFromStringAddr(Ljava/lang/String;)J
+HPLandroid/net/MacAddress;->stringAddrFromLongAddr(J)Ljava/lang/String;
+HSPLandroid/net/MacAddress;->toByteArray()[B
+PLandroid/net/MacAddress;->toString()Ljava/lang/String;
+PLandroid/net/MacAddress;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/MatchAllNetworkSpecifier;-><init>()V
+PLandroid/net/MatchAllNetworkSpecifier;->hashCode()I
HSPLandroid/net/Network$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/Network;
HSPLandroid/net/Network$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/net/Network$1;->newArray(I)[Landroid/net/Network;
@@ -4575,22 +14882,45 @@ HSPLandroid/net/Network$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/net/Network$NetworkBoundSocketFactory;->createSocket()Ljava/net/Socket;
HSPLandroid/net/Network;-><init>(I)V
HSPLandroid/net/Network;-><init>(IZ)V
+HPLandroid/net/Network;-><init>(Landroid/net/Network;)V
HSPLandroid/net/Network;->bindSocket(Ljava/io/FileDescriptor;)V
+PLandroid/net/Network;->bindSocket(Ljava/net/DatagramSocket;)V
HSPLandroid/net/Network;->bindSocket(Ljava/net/Socket;)V
+PLandroid/net/Network;->describeContents()I
+PLandroid/net/Network;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HSPLandroid/net/Network;->equals(Ljava/lang/Object;)Z
+HPLandroid/net/Network;->fromNetworkHandle(J)Landroid/net/Network;
HSPLandroid/net/Network;->getAllByName(Ljava/lang/String;)[Ljava/net/InetAddress;
+PLandroid/net/Network;->getByName(Ljava/lang/String;)Ljava/net/InetAddress;
HSPLandroid/net/Network;->getNetIdForResolv()I
HSPLandroid/net/Network;->getNetworkHandle()J
+PLandroid/net/Network;->getPrivateDnsBypassingCopy()Landroid/net/Network;
HSPLandroid/net/Network;->getSocketFactory()Ljavax/net/SocketFactory;
-HPLandroid/net/Network;->hashCode()I
+HSPLandroid/net/Network;->hashCode()I
HSPLandroid/net/Network;->lambda$maybeInitUrlConnectionFactory$0$Network(Ljava/lang/String;)Ljava/util/List;
HSPLandroid/net/Network;->maybeInitUrlConnectionFactory()V
HSPLandroid/net/Network;->openConnection(Ljava/net/URL;)Ljava/net/URLConnection;
HSPLandroid/net/Network;->openConnection(Ljava/net/URL;Ljava/net/Proxy;)Ljava/net/URLConnection;
HSPLandroid/net/Network;->toString()Ljava/lang/String;
HSPLandroid/net/Network;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/NetworkAgent;-><init>(Landroid/os/Looper;Landroid/content/Context;Ljava/lang/String;Landroid/net/NetworkInfo;Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;ILandroid/net/NetworkMisc;)V
+PLandroid/net/NetworkAgent;-><init>(Landroid/os/Looper;Landroid/content/Context;Ljava/lang/String;Landroid/net/NetworkInfo;Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;ILandroid/net/NetworkMisc;I)V
+PLandroid/net/NetworkAgent;->explicitlySelected(ZZ)V
+PLandroid/net/NetworkAgent;->handleMessage(Landroid/os/Message;)V
+PLandroid/net/NetworkAgent;->log(Ljava/lang/String;)V
+PLandroid/net/NetworkAgent;->queueOrSendMessage(III)V
+PLandroid/net/NetworkAgent;->queueOrSendMessage(IIILjava/lang/Object;)V
+PLandroid/net/NetworkAgent;->queueOrSendMessage(ILjava/lang/Object;)V
+PLandroid/net/NetworkAgent;->queueOrSendMessage(Landroid/os/Message;)V
+PLandroid/net/NetworkAgent;->sendLinkProperties(Landroid/net/LinkProperties;)V
+PLandroid/net/NetworkAgent;->sendNetworkCapabilities(Landroid/net/NetworkCapabilities;)V
+PLandroid/net/NetworkAgent;->sendNetworkInfo(Landroid/net/NetworkInfo;)V
+PLandroid/net/NetworkAgent;->sendNetworkScore(I)V
+PLandroid/net/NetworkAgent;->updateScore(Landroid/net/NetworkScore;)V
HSPLandroid/net/NetworkCapabilities$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkCapabilities;
HSPLandroid/net/NetworkCapabilities$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/NetworkCapabilities$1;->newArray(I)[Landroid/net/NetworkCapabilities;
+HPLandroid/net/NetworkCapabilities$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/net/NetworkCapabilities;-><init>()V
HSPLandroid/net/NetworkCapabilities;-><init>(Landroid/net/NetworkCapabilities;)V
HSPLandroid/net/NetworkCapabilities;->access$002(Landroid/net/NetworkCapabilities;J)J
@@ -4611,9 +14941,14 @@ HSPLandroid/net/NetworkCapabilities;->capabilityNameOf(I)Ljava/lang/String;
HSPLandroid/net/NetworkCapabilities;->checkValidCapability(I)V
HSPLandroid/net/NetworkCapabilities;->checkValidTransportType(I)V
HSPLandroid/net/NetworkCapabilities;->clearAll()V
+HSPLandroid/net/NetworkCapabilities;->describeFirstNonRequestableCapability()Ljava/lang/String;
+PLandroid/net/NetworkCapabilities;->describeImmutableDifferences(Landroid/net/NetworkCapabilities;)Ljava/lang/String;
+HPLandroid/net/NetworkCapabilities;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+PLandroid/net/NetworkCapabilities;->equalRequestableCapabilities(Landroid/net/NetworkCapabilities;)Z
HSPLandroid/net/NetworkCapabilities;->equals(Ljava/lang/Object;)Z
HSPLandroid/net/NetworkCapabilities;->equalsLinkBandwidths(Landroid/net/NetworkCapabilities;)Z
HSPLandroid/net/NetworkCapabilities;->equalsNetCapabilities(Landroid/net/NetworkCapabilities;)Z
+PLandroid/net/NetworkCapabilities;->equalsNetCapabilitiesRequestable(Landroid/net/NetworkCapabilities;)Z
HSPLandroid/net/NetworkCapabilities;->equalsPrivateDnsBroken(Landroid/net/NetworkCapabilities;)Z
HSPLandroid/net/NetworkCapabilities;->equalsSSID(Landroid/net/NetworkCapabilities;)Z
HSPLandroid/net/NetworkCapabilities;->equalsSignalStrength(Landroid/net/NetworkCapabilities;)Z
@@ -4621,29 +14956,91 @@ HSPLandroid/net/NetworkCapabilities;->equalsSpecifier(Landroid/net/NetworkCapabi
HSPLandroid/net/NetworkCapabilities;->equalsTransportInfo(Landroid/net/NetworkCapabilities;)Z
HSPLandroid/net/NetworkCapabilities;->equalsTransportTypes(Landroid/net/NetworkCapabilities;)Z
HSPLandroid/net/NetworkCapabilities;->equalsUids(Landroid/net/NetworkCapabilities;)Z
+PLandroid/net/NetworkCapabilities;->getCapabilities()[I
+PLandroid/net/NetworkCapabilities;->getLinkDownstreamBandwidthKbps()I
+HPLandroid/net/NetworkCapabilities;->getLinkUpstreamBandwidthKbps()I
+HSPLandroid/net/NetworkCapabilities;->getNetworkSpecifier()Landroid/net/NetworkSpecifier;
+HSPLandroid/net/NetworkCapabilities;->getSSID()Ljava/lang/String;
HSPLandroid/net/NetworkCapabilities;->getTransportTypes()[I
+PLandroid/net/NetworkCapabilities;->getUnwantedCapabilities()[I
HSPLandroid/net/NetworkCapabilities;->hasCapability(I)Z
+HSPLandroid/net/NetworkCapabilities;->hasSignalStrength()Z
HSPLandroid/net/NetworkCapabilities;->hasTransport(I)Z
HSPLandroid/net/NetworkCapabilities;->hashCode()I
+HSPLandroid/net/NetworkCapabilities;->isPrivateDnsBroken()Z
HSPLandroid/net/NetworkCapabilities;->isValidCapability(I)Z
HSPLandroid/net/NetworkCapabilities;->isValidTransport(I)Z
HSPLandroid/net/NetworkCapabilities;->maybeMarkCapabilitiesRestricted()V
HSPLandroid/net/NetworkCapabilities;->removeCapability(I)Landroid/net/NetworkCapabilities;
+HSPLandroid/net/NetworkCapabilities;->satisfiedByLinkBandwidths(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedByNetCapabilities(Landroid/net/NetworkCapabilities;Z)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedByNetworkCapabilities(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedByNetworkCapabilities(Landroid/net/NetworkCapabilities;Z)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedBySSID(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedBySignalStrength(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedBySpecifier(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedByTransportTypes(Landroid/net/NetworkCapabilities;)Z
+HSPLandroid/net/NetworkCapabilities;->satisfiedByUids(Landroid/net/NetworkCapabilities;)Z
HSPLandroid/net/NetworkCapabilities;->set(Landroid/net/NetworkCapabilities;)V
+HSPLandroid/net/NetworkCapabilities;->setCapabilities([I[I)V
+HSPLandroid/net/NetworkCapabilities;->setLinkDownstreamBandwidthKbps(I)Landroid/net/NetworkCapabilities;
+HSPLandroid/net/NetworkCapabilities;->setLinkUpstreamBandwidthKbps(I)Landroid/net/NetworkCapabilities;
HSPLandroid/net/NetworkCapabilities;->setNetworkSpecifier(Landroid/net/NetworkSpecifier;)Landroid/net/NetworkCapabilities;
+PLandroid/net/NetworkCapabilities;->setSSID(Ljava/lang/String;)Landroid/net/NetworkCapabilities;
+HSPLandroid/net/NetworkCapabilities;->setSignalStrength(I)Landroid/net/NetworkCapabilities;
HSPLandroid/net/NetworkCapabilities;->setSingleUid(I)Landroid/net/NetworkCapabilities;
+HSPLandroid/net/NetworkCapabilities;->setTransportTypes([I)V
HSPLandroid/net/NetworkCapabilities;->setUids(Ljava/util/Set;)Landroid/net/NetworkCapabilities;
HSPLandroid/net/NetworkCapabilities;->toString()Ljava/lang/String;
+HSPLandroid/net/NetworkCapabilities;->transportNameOf(I)Ljava/lang/String;
HSPLandroid/net/NetworkCapabilities;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/NetworkConfig;-><init>(Ljava/lang/String;)V
+HSPLandroid/net/NetworkFactory$NetworkRequestInfo;-><init>(Landroid/net/NetworkFactory;Landroid/net/NetworkRequest;II)V
+HPLandroid/net/NetworkFactory$NetworkRequestInfo;->toString()Ljava/lang/String;
+HSPLandroid/net/NetworkFactory$SerialNumber;->nextSerialNumber()I
HSPLandroid/net/NetworkFactory;-><init>(Landroid/os/Looper;Landroid/content/Context;Ljava/lang/String;Landroid/net/NetworkCapabilities;)V
+HSPLandroid/net/NetworkFactory;->acceptRequest(Landroid/net/NetworkRequest;I)Z
+PLandroid/net/NetworkFactory;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLandroid/net/NetworkFactory;->evalRequest(Landroid/net/NetworkFactory$NetworkRequestInfo;)V
HSPLandroid/net/NetworkFactory;->evalRequests()V
+HSPLandroid/net/NetworkFactory;->handleAddRequest(Landroid/net/NetworkRequest;II)V
HSPLandroid/net/NetworkFactory;->handleMessage(Landroid/os/Message;)V
+HPLandroid/net/NetworkFactory;->handleRemoveRequest(Landroid/net/NetworkRequest;)V
+HSPLandroid/net/NetworkFactory;->handleSetFilter(Landroid/net/NetworkCapabilities;)V
+HSPLandroid/net/NetworkFactory;->handleSetScore(I)V
+PLandroid/net/NetworkFactory;->lambda$reevaluateAllRequests$0$NetworkFactory()V
+HSPLandroid/net/NetworkFactory;->log(Ljava/lang/String;)V
+PLandroid/net/NetworkFactory;->reevaluateAllRequests()V
+HSPLandroid/net/NetworkFactory;->register()V
+HSPLandroid/net/NetworkFactory;->setCapabilityFilter(Landroid/net/NetworkCapabilities;)V
+HSPLandroid/net/NetworkFactory;->setScoreFilter(I)V
+HSPLandroid/net/NetworkFactory;->shouldNeedNetworkFor(Landroid/net/NetworkFactory$NetworkRequestInfo;)Z
+HSPLandroid/net/NetworkFactory;->shouldReleaseNetworkFor(Landroid/net/NetworkFactory$NetworkRequestInfo;)Z
+PLandroid/net/NetworkFactory;->toString()Ljava/lang/String;
+HSPLandroid/net/NetworkIdentity;-><init>(IILjava/lang/String;Ljava/lang/String;ZZZ)V
+PLandroid/net/NetworkIdentity;->buildNetworkIdentity(Landroid/content/Context;Landroid/net/NetworkState;Z)Landroid/net/NetworkIdentity;
+HPLandroid/net/NetworkIdentity;->compareTo(Landroid/net/NetworkIdentity;)I
+HPLandroid/net/NetworkIdentity;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/net/NetworkIdentity;->equals(Ljava/lang/Object;)Z
+HPLandroid/net/NetworkIdentity;->getDefaultNetwork()Z
+HPLandroid/net/NetworkIdentity;->getMetered()Z
+HPLandroid/net/NetworkIdentity;->getNetworkId()Ljava/lang/String;
+HPLandroid/net/NetworkIdentity;->getRoaming()Z
+HPLandroid/net/NetworkIdentity;->getSubType()I
+HPLandroid/net/NetworkIdentity;->getSubscriberId()Ljava/lang/String;
+HPLandroid/net/NetworkIdentity;->getType()I
+HSPLandroid/net/NetworkIdentity;->hashCode()I
+PLandroid/net/NetworkIdentity;->toString()Ljava/lang/String;
HSPLandroid/net/NetworkInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkInfo;
HSPLandroid/net/NetworkInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/NetworkInfo$1;->newArray(I)[Landroid/net/NetworkInfo;
+HSPLandroid/net/NetworkInfo$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/net/NetworkInfo$DetailedState;->valueOf(Ljava/lang/String;)Landroid/net/NetworkInfo$DetailedState;
+HPLandroid/net/NetworkInfo$DetailedState;->values()[Landroid/net/NetworkInfo$DetailedState;
HSPLandroid/net/NetworkInfo$State;->valueOf(Ljava/lang/String;)Landroid/net/NetworkInfo$State;
HSPLandroid/net/NetworkInfo$State;->values()[Landroid/net/NetworkInfo$State;
HSPLandroid/net/NetworkInfo;-><init>(IILjava/lang/String;Ljava/lang/String;)V
+HPLandroid/net/NetworkInfo;-><init>(Landroid/net/NetworkInfo;)V
HSPLandroid/net/NetworkInfo;->access$002(Landroid/net/NetworkInfo;Landroid/net/NetworkInfo$State;)Landroid/net/NetworkInfo$State;
HSPLandroid/net/NetworkInfo;->access$102(Landroid/net/NetworkInfo;Landroid/net/NetworkInfo$DetailedState;)Landroid/net/NetworkInfo$DetailedState;
HSPLandroid/net/NetworkInfo;->access$202(Landroid/net/NetworkInfo;Z)Z
@@ -4651,31 +15048,66 @@ HSPLandroid/net/NetworkInfo;->access$302(Landroid/net/NetworkInfo;Z)Z
HSPLandroid/net/NetworkInfo;->access$402(Landroid/net/NetworkInfo;Z)Z
HSPLandroid/net/NetworkInfo;->access$502(Landroid/net/NetworkInfo;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/net/NetworkInfo;->access$602(Landroid/net/NetworkInfo;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/net/NetworkInfo;->describeContents()I
HSPLandroid/net/NetworkInfo;->getDetailedState()Landroid/net/NetworkInfo$DetailedState;
+HSPLandroid/net/NetworkInfo;->getExtraInfo()Ljava/lang/String;
+PLandroid/net/NetworkInfo;->getReason()Ljava/lang/String;
HSPLandroid/net/NetworkInfo;->getState()Landroid/net/NetworkInfo$State;
HSPLandroid/net/NetworkInfo;->getSubtype()I
HSPLandroid/net/NetworkInfo;->getSubtypeName()Ljava/lang/String;
HSPLandroid/net/NetworkInfo;->getType()I
HSPLandroid/net/NetworkInfo;->getTypeName()Ljava/lang/String;
+HSPLandroid/net/NetworkInfo;->isAvailable()Z
HSPLandroid/net/NetworkInfo;->isConnected()Z
HSPLandroid/net/NetworkInfo;->isConnectedOrConnecting()Z
+PLandroid/net/NetworkInfo;->isFailover()Z
HSPLandroid/net/NetworkInfo;->isRoaming()Z
HSPLandroid/net/NetworkInfo;->setDetailedState(Landroid/net/NetworkInfo$DetailedState;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/net/NetworkInfo;->setExtraInfo(Ljava/lang/String;)V
+HSPLandroid/net/NetworkInfo;->setIsAvailable(Z)V
+HPLandroid/net/NetworkInfo;->setType(I)V
+HSPLandroid/net/NetworkInfo;->toString()Ljava/lang/String;
+HPLandroid/net/NetworkInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/net/NetworkKey$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkKey;
HSPLandroid/net/NetworkKey$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/NetworkKey$1;->newArray(I)[Landroid/net/NetworkKey;
+HSPLandroid/net/NetworkKey$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/net/NetworkKey;-><init>(Landroid/net/WifiKey;)V
HSPLandroid/net/NetworkKey;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/net/NetworkKey;->createFromWifiInfo(Landroid/net/wifi/WifiInfo;)Landroid/net/NetworkKey;
+HSPLandroid/net/NetworkKey;-><init>(Landroid/os/Parcel;Landroid/net/NetworkKey$1;)V
+HPLandroid/net/NetworkKey;->createFromScanResult(Landroid/net/wifi/ScanResult;)Landroid/net/NetworkKey;
+PLandroid/net/NetworkKey;->createFromWifiInfo(Landroid/net/wifi/WifiInfo;)Landroid/net/NetworkKey;
HSPLandroid/net/NetworkKey;->equals(Ljava/lang/Object;)Z
HSPLandroid/net/NetworkKey;->hashCode()I
-HSPLandroid/net/NetworkKey;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/NetworkKey;->toString()Ljava/lang/String;
+HPLandroid/net/NetworkKey;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/NetworkMisc;-><init>()V
HSPLandroid/net/NetworkPolicyManager$Listener;-><init>()V
HSPLandroid/net/NetworkPolicyManager$Listener;->onMeteredIfacesChanged([Ljava/lang/String;)V
-HPLandroid/net/NetworkPolicyManager$Listener;->onUidRulesChanged(II)V
+PLandroid/net/NetworkPolicyManager$Listener;->onSubscriptionPlansChanged(I[Landroid/telephony/SubscriptionPlan;)V
+HSPLandroid/net/NetworkPolicyManager$Listener;->onUidRulesChanged(II)V
HSPLandroid/net/NetworkPolicyManager;-><init>(Landroid/content/Context;Landroid/net/INetworkPolicyManager;)V
HSPLandroid/net/NetworkPolicyManager;->from(Landroid/content/Context;)Landroid/net/NetworkPolicyManager;
+PLandroid/net/NetworkPolicyManager;->getNetworkPolicies()[Landroid/net/NetworkPolicy;
+HPLandroid/net/NetworkPolicyManager;->getRestrictBackground()Z
+HSPLandroid/net/NetworkPolicyManager;->isProcStateAllowedWhileIdleOrPowerSaveMode(I)Z
+HSPLandroid/net/NetworkPolicyManager;->isProcStateAllowedWhileOnRestrictBackground(I)Z
HSPLandroid/net/NetworkPolicyManager;->registerListener(Landroid/net/INetworkPolicyListener;)V
+PLandroid/net/NetworkPolicyManager;->uidPoliciesToString(I)Ljava/lang/String;
+HPLandroid/net/NetworkPolicyManager;->uidRulesToString(I)Ljava/lang/String;
+HSPLandroid/net/NetworkPolicyManager;->unregisterListener(Landroid/net/INetworkPolicyListener;)V
+HSPLandroid/net/NetworkRecommendationProvider$ServiceWrapper$1;-><init>(Landroid/net/NetworkRecommendationProvider$ServiceWrapper;[Landroid/net/NetworkKey;)V
+HSPLandroid/net/NetworkRecommendationProvider$ServiceWrapper$1;->run()V
+HSPLandroid/net/NetworkRecommendationProvider$ServiceWrapper;-><init>(Landroid/net/NetworkRecommendationProvider;Landroid/content/Context;Ljava/util/concurrent/Executor;)V
+HSPLandroid/net/NetworkRecommendationProvider$ServiceWrapper;->enforceCallingPermission()V
+HSPLandroid/net/NetworkRecommendationProvider$ServiceWrapper;->execute(Ljava/lang/Runnable;)V
+HSPLandroid/net/NetworkRecommendationProvider$ServiceWrapper;->requestScores([Landroid/net/NetworkKey;)V
+HSPLandroid/net/NetworkRecommendationProvider;-><clinit>()V
+HSPLandroid/net/NetworkRecommendationProvider;-><init>(Landroid/content/Context;Ljava/util/concurrent/Executor;)V
+HSPLandroid/net/NetworkRecommendationProvider;->getBinder()Landroid/os/IBinder;
HSPLandroid/net/NetworkRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkRequest;
HSPLandroid/net/NetworkRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/NetworkRequest$2;-><clinit>()V
HSPLandroid/net/NetworkRequest$Builder;-><init>()V
HSPLandroid/net/NetworkRequest$Builder;->addCapability(I)Landroid/net/NetworkRequest$Builder;
HSPLandroid/net/NetworkRequest$Builder;->addTransportType(I)Landroid/net/NetworkRequest$Builder;
@@ -4685,51 +15117,264 @@ HSPLandroid/net/NetworkRequest$Builder;->removeCapability(I)Landroid/net/Network
HSPLandroid/net/NetworkRequest$Type;->valueOf(Ljava/lang/String;)Landroid/net/NetworkRequest$Type;
HSPLandroid/net/NetworkRequest$Type;->values()[Landroid/net/NetworkRequest$Type;
HSPLandroid/net/NetworkRequest;-><init>(Landroid/net/NetworkCapabilities;IILandroid/net/NetworkRequest$Type;)V
+PLandroid/net/NetworkRequest;-><init>(Landroid/net/NetworkRequest;)V
+HPLandroid/net/NetworkRequest;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HSPLandroid/net/NetworkRequest;->equals(Ljava/lang/Object;)Z
+HSPLandroid/net/NetworkRequest;->hasCapability(I)Z
HSPLandroid/net/NetworkRequest;->hashCode()I
+HSPLandroid/net/NetworkRequest;->isBackgroundRequest()Z
+HSPLandroid/net/NetworkRequest;->isForegroundRequest()Z
+HSPLandroid/net/NetworkRequest;->isListen()Z
+HSPLandroid/net/NetworkRequest;->isRequest()Z
+HSPLandroid/net/NetworkRequest;->toString()Ljava/lang/String;
+PLandroid/net/NetworkRequest;->typeToProtoEnum(Landroid/net/NetworkRequest$Type;)I
HSPLandroid/net/NetworkRequest;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/NetworkScore$1;-><init>()V
+PLandroid/net/NetworkScore;-><clinit>()V
+PLandroid/net/NetworkScore;-><init>()V
+PLandroid/net/NetworkScore;-><init>(Landroid/net/NetworkScore;)V
+HPLandroid/net/NetworkScore;->getIntExtension(Ljava/lang/String;)I
+PLandroid/net/NetworkScore;->putIntExtension(Ljava/lang/String;I)V
+HSPLandroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;-><init>(Landroid/net/NetworkScoreManager;Ljava/util/concurrent/Executor;Landroid/net/NetworkScoreManager$NetworkScoreCallback;)V
+PLandroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;->clearScores()V
+PLandroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;->lambda$clearScores$1$NetworkScoreManager$NetworkScoreCallbackProxy()V
+PLandroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;->lambda$updateScores$0$NetworkScoreManager$NetworkScoreCallbackProxy(Ljava/util/List;)V
+PLandroid/net/NetworkScoreManager$NetworkScoreCallbackProxy;->updateScores(Ljava/util/List;)V
HSPLandroid/net/NetworkScoreManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/net/NetworkScoreManager;->getActiveScorer()Landroid/net/NetworkScorerAppData;
+HSPLandroid/net/NetworkScoreManager;->getActiveScorerPackage()Ljava/lang/String;
HSPLandroid/net/NetworkScoreManager;->registerNetworkScoreCache(ILandroid/net/INetworkScoreCache;I)V
-HSPLandroid/net/NetworkScoreManager;->requestScores([Landroid/net/NetworkKey;)Z
+HSPLandroid/net/NetworkScoreManager;->registerNetworkScoreCallback(IILjava/util/concurrent/Executor;Landroid/net/NetworkScoreManager$NetworkScoreCallback;)V
+PLandroid/net/NetworkScoreManager;->requestScores([Landroid/net/NetworkKey;)Z
+HPLandroid/net/NetworkScoreManager;->updateScores([Landroid/net/ScoredNetwork;)Z
+HSPLandroid/net/NetworkScorerAppData$1;-><init>()V
+HSPLandroid/net/NetworkScorerAppData$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkScorerAppData;
+HSPLandroid/net/NetworkScorerAppData$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/NetworkScorerAppData;-><clinit>()V
+PLandroid/net/NetworkScorerAppData;-><init>(ILandroid/content/ComponentName;Ljava/lang/String;Landroid/content/ComponentName;Ljava/lang/String;)V
+HSPLandroid/net/NetworkScorerAppData;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/NetworkScorerAppData;->equals(Ljava/lang/Object;)Z
+HSPLandroid/net/NetworkScorerAppData;->getEnableUseOpenWifiActivity()Landroid/content/ComponentName;
+HPLandroid/net/NetworkScorerAppData;->getRecommendationServiceComponent()Landroid/content/ComponentName;
+PLandroid/net/NetworkScorerAppData;->getRecommendationServicePackageName()Ljava/lang/String;
+PLandroid/net/NetworkScorerAppData;->toString()Ljava/lang/String;
+PLandroid/net/NetworkScorerAppData;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/net/NetworkSpecifier;-><init>()V
+HSPLandroid/net/NetworkStack;->checkAnyPermissionOf(Landroid/content/Context;[Ljava/lang/String;)Z
+HSPLandroid/net/NetworkStack;->checkNetworkStackPermission(Landroid/content/Context;)V
+HSPLandroid/net/NetworkStack;->checkNetworkStackPermissionOr(Landroid/content/Context;[Ljava/lang/String;)V
+HSPLandroid/net/NetworkStack;->enforceAnyPermissionOf(Landroid/content/Context;[Ljava/lang/String;)V
+PLandroid/net/NetworkState;-><init>(Landroid/net/NetworkInfo;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;Landroid/net/Network;Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/net/NetworkStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkStats;
+HPLandroid/net/NetworkStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/NetworkStats$Entry;-><init>()V
+HSPLandroid/net/NetworkStats$Entry;-><init>(Ljava/lang/String;IIIIIIJJJJJ)V
+HSPLandroid/net/NetworkStats$Entry;-><init>(Ljava/lang/String;IIIJJJJJ)V
+HSPLandroid/net/NetworkStats$Entry;->isEmpty()Z
+HSPLandroid/net/NetworkStats$Entry;->isNegative()Z
+HSPLandroid/net/NetworkStats;-><init>(JI)V
+HPLandroid/net/NetworkStats;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/net/NetworkStats;->addValues(Landroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats;
+HSPLandroid/net/NetworkStats;->apply464xlatAdjustments(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Ljava/util/Map;Z)V
+HSPLandroid/net/NetworkStats;->apply464xlatAdjustments(Ljava/util/Map;Z)V
+HSPLandroid/net/NetworkStats;->clear()V
+HSPLandroid/net/NetworkStats;->clone()Landroid/net/NetworkStats;
+HSPLandroid/net/NetworkStats;->combineAllValues(Landroid/net/NetworkStats;)V
+HSPLandroid/net/NetworkStats;->combineValues(Landroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats;
+PLandroid/net/NetworkStats;->combineValues(Ljava/lang/String;IIIJJJJJ)Landroid/net/NetworkStats;
+HPLandroid/net/NetworkStats;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HSPLandroid/net/NetworkStats;->filter(I[Ljava/lang/String;I)V
+HSPLandroid/net/NetworkStats;->filter(Ljava/util/function/Predicate;)V
+HSPLandroid/net/NetworkStats;->filterDebugEntries()V
+HSPLandroid/net/NetworkStats;->findIndex(Ljava/lang/String;IIIIII)I
+HSPLandroid/net/NetworkStats;->findIndexHinted(Ljava/lang/String;IIIIIII)I
+HSPLandroid/net/NetworkStats;->getElapsedRealtime()J
+HPLandroid/net/NetworkStats;->getTotal(Landroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats$Entry;
+PLandroid/net/NetworkStats;->getTotal(Landroid/net/NetworkStats$Entry;Ljava/util/HashSet;)Landroid/net/NetworkStats$Entry;
+HPLandroid/net/NetworkStats;->getTotal(Landroid/net/NetworkStats$Entry;Ljava/util/HashSet;IZ)Landroid/net/NetworkStats$Entry;
+HSPLandroid/net/NetworkStats;->getValues(ILandroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats$Entry;
+HPLandroid/net/NetworkStats;->groupedByUid()Landroid/net/NetworkStats;
+PLandroid/net/NetworkStats;->lambda$filter$0(II[Ljava/lang/String;Landroid/net/NetworkStats$Entry;)Z
+HSPLandroid/net/NetworkStats;->lambda$filterDebugEntries$1(Landroid/net/NetworkStats$Entry;)Z
+HSPLandroid/net/NetworkStats;->maybeCopyEntry(II)V
+HSPLandroid/net/NetworkStats;->removeUids([I)V
+HSPLandroid/net/NetworkStats;->setElapsedRealtime(J)V
+PLandroid/net/NetworkStats;->setToCheckinString(I)Ljava/lang/String;
+PLandroid/net/NetworkStats;->setToString(I)Ljava/lang/String;
+HSPLandroid/net/NetworkStats;->setValues(ILandroid/net/NetworkStats$Entry;)V
+PLandroid/net/NetworkStats;->size()I
+HSPLandroid/net/NetworkStats;->subtract(Landroid/net/NetworkStats;)Landroid/net/NetworkStats;
+HSPLandroid/net/NetworkStats;->subtract(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Landroid/net/NetworkStats$NonMonotonicObserver;Ljava/lang/Object;)Landroid/net/NetworkStats;
+HSPLandroid/net/NetworkStats;->subtract(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Landroid/net/NetworkStats$NonMonotonicObserver;Ljava/lang/Object;Landroid/net/NetworkStats;)Landroid/net/NetworkStats;
+HPLandroid/net/NetworkStats;->toString()Ljava/lang/String;
+PLandroid/net/NetworkStats;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/NetworkStatsHistory$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkStatsHistory;
+PLandroid/net/NetworkStatsHistory$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/NetworkStatsHistory$DataStreamUtils;->readVarLong(Ljava/io/DataInputStream;)J
+HSPLandroid/net/NetworkStatsHistory$DataStreamUtils;->readVarLongArray(Ljava/io/DataInputStream;)[J
+PLandroid/net/NetworkStatsHistory$DataStreamUtils;->writeVarLong(Ljava/io/DataOutputStream;J)V
+HPLandroid/net/NetworkStatsHistory$DataStreamUtils;->writeVarLongArray(Ljava/io/DataOutputStream;[JI)V
+PLandroid/net/NetworkStatsHistory$Entry;-><init>()V
+HPLandroid/net/NetworkStatsHistory$ParcelUtils;->readLongArray(Landroid/os/Parcel;)[J
+HPLandroid/net/NetworkStatsHistory$ParcelUtils;->writeLongArray(Landroid/os/Parcel;[JI)V
+HSPLandroid/net/NetworkStatsHistory;-><init>(J)V
+PLandroid/net/NetworkStatsHistory;-><init>(JI)V
+HSPLandroid/net/NetworkStatsHistory;-><init>(JII)V
+HPLandroid/net/NetworkStatsHistory;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/net/NetworkStatsHistory;-><init>(Ljava/io/DataInputStream;)V
+HSPLandroid/net/NetworkStatsHistory;->addLong([JIJ)V
+HPLandroid/net/NetworkStatsHistory;->dump(Lcom/android/internal/util/IndentingPrintWriter;Z)V
+PLandroid/net/NetworkStatsHistory;->dumpCheckin(Ljava/io/PrintWriter;)V
+HPLandroid/net/NetworkStatsHistory;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLandroid/net/NetworkStatsHistory;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J[JI)V
+HSPLandroid/net/NetworkStatsHistory;->ensureBuckets(JJ)V
+HSPLandroid/net/NetworkStatsHistory;->getBucketDuration()J
+HSPLandroid/net/NetworkStatsHistory;->getEnd()J
+HSPLandroid/net/NetworkStatsHistory;->getIndexAfter(J)I
+HSPLandroid/net/NetworkStatsHistory;->getLong([JIJ)J
+HSPLandroid/net/NetworkStatsHistory;->getStart()J
+HSPLandroid/net/NetworkStatsHistory;->getTotalBytes()J
+HPLandroid/net/NetworkStatsHistory;->getValues(ILandroid/net/NetworkStatsHistory$Entry;)Landroid/net/NetworkStatsHistory$Entry;
+HPLandroid/net/NetworkStatsHistory;->getValues(JJJLandroid/net/NetworkStatsHistory$Entry;)Landroid/net/NetworkStatsHistory$Entry;
+HSPLandroid/net/NetworkStatsHistory;->insertBucket(IJ)V
+HSPLandroid/net/NetworkStatsHistory;->recordData(JJLandroid/net/NetworkStats$Entry;)V
+HSPLandroid/net/NetworkStatsHistory;->recordEntireHistory(Landroid/net/NetworkStatsHistory;)V
+HSPLandroid/net/NetworkStatsHistory;->recordHistory(Landroid/net/NetworkStatsHistory;JJ)V
+HSPLandroid/net/NetworkStatsHistory;->setLong([JIJ)V
+HSPLandroid/net/NetworkStatsHistory;->size()I
+HPLandroid/net/NetworkStatsHistory;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/net/NetworkStatsHistory;->writeToStream(Ljava/io/DataOutputStream;)V
+HPLandroid/net/NetworkTemplate$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/NetworkTemplate;
+HPLandroid/net/NetworkTemplate$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/NetworkTemplate;-><init>(ILjava/lang/String;Ljava/lang/String;)V
+PLandroid/net/NetworkTemplate;-><init>(ILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
HPLandroid/net/NetworkTemplate;-><init>(ILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;III)V
+HPLandroid/net/NetworkTemplate;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/NetworkTemplate;-><init>(Landroid/os/Parcel;Landroid/net/NetworkTemplate$1;)V
PLandroid/net/NetworkTemplate;->buildTemplateMobileWildcard()Landroid/net/NetworkTemplate;
PLandroid/net/NetworkTemplate;->buildTemplateWifiWildcard()Landroid/net/NetworkTemplate;
+PLandroid/net/NetworkTemplate;->isKnownMatchRule(I)Z
+HPLandroid/net/NetworkTemplate;->matches(Landroid/net/NetworkIdentity;)Z
+PLandroid/net/NetworkTemplate;->matchesDefaultNetwork(Landroid/net/NetworkIdentity;)Z
+PLandroid/net/NetworkTemplate;->matchesMetered(Landroid/net/NetworkIdentity;)Z
+PLandroid/net/NetworkTemplate;->matchesMobileWildcard(Landroid/net/NetworkIdentity;)Z
+PLandroid/net/NetworkTemplate;->matchesRoaming(Landroid/net/NetworkIdentity;)Z
+PLandroid/net/NetworkTemplate;->matchesWifiWildcard(Landroid/net/NetworkIdentity;)Z
+HPLandroid/net/NetworkTemplate;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/NetworkUtils;->intToInetAddress(I)Ljava/net/InetAddress;
+PLandroid/net/NetworkUtils;->makeStrings(Ljava/util/Collection;)[Ljava/lang/String;
HSPLandroid/net/NetworkUtils;->maskRawAddress([BI)V
+HSPLandroid/net/NetworkUtils;->parseIpAndMask(Ljava/lang/String;)Landroid/util/Pair;
+HPLandroid/net/NetworkUtils;->protectFromVpn(Ljava/io/FileDescriptor;)Z
+PLandroid/net/NetworkWatchlistManager;->reportWatchlistIfNecessary()V
HSPLandroid/net/Proxy;->setHttpProxySystemProperty(Landroid/net/ProxyInfo;)V
HSPLandroid/net/Proxy;->setHttpProxySystemProperty(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
HSPLandroid/net/RouteInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/RouteInfo;
HSPLandroid/net/RouteInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/RouteInfo;-><init>(Landroid/net/IpPrefix;Ljava/net/InetAddress;Ljava/lang/String;)V
HSPLandroid/net/RouteInfo;-><init>(Landroid/net/IpPrefix;Ljava/net/InetAddress;Ljava/lang/String;I)V
+PLandroid/net/RouteInfo;-><init>(Landroid/net/LinkAddress;Ljava/net/InetAddress;Ljava/lang/String;)V
HSPLandroid/net/RouteInfo;->equals(Ljava/lang/Object;)Z
HSPLandroid/net/RouteInfo;->getDestination()Landroid/net/IpPrefix;
HSPLandroid/net/RouteInfo;->getGateway()Ljava/net/InetAddress;
HSPLandroid/net/RouteInfo;->getInterface()Ljava/lang/String;
HSPLandroid/net/RouteInfo;->getType()I
-PLandroid/net/RouteInfo;->isDefaultRoute()Z
+HPLandroid/net/RouteInfo;->hasGateway()Z
+HSPLandroid/net/RouteInfo;->isDefaultRoute()Z
HSPLandroid/net/RouteInfo;->isHost()Z
+PLandroid/net/RouteInfo;->isIPv4Default()Z
PLandroid/net/RouteInfo;->isIPv6Default()Z
-PLandroid/net/RouteInfo;->toString()Ljava/lang/String;
-HSPLandroid/net/RssiCurve$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/RssiCurve;
-HSPLandroid/net/RssiCurve$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/net/RssiCurve;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/net/RssiCurve;-><init>(Landroid/os/Parcel;Landroid/net/RssiCurve$1;)V
+HPLandroid/net/RouteInfo;->matches(Ljava/net/InetAddress;)Z
+HPLandroid/net/RouteInfo;->selectBestRoute(Ljava/util/Collection;Ljava/net/InetAddress;)Landroid/net/RouteInfo;
+HSPLandroid/net/RouteInfo;->toString()Ljava/lang/String;
+HPLandroid/net/RouteInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/RssiCurve$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/RssiCurve;
+PLandroid/net/RssiCurve$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/RssiCurve;-><init>(II[B)V
+HPLandroid/net/RssiCurve;-><init>(II[BI)V
+HPLandroid/net/RssiCurve;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/RssiCurve;-><init>(Landroid/os/Parcel;Landroid/net/RssiCurve$1;)V
+HPLandroid/net/RssiCurve;->lookupScore(I)B
+HPLandroid/net/RssiCurve;->lookupScore(IZ)B
+HPLandroid/net/RssiCurve;->toString()Ljava/lang/String;
+PLandroid/net/RssiCurve;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/net/SSLCertificateSocketFactory;-><init>(ILandroid/net/SSLSessionCache;Z)V
+HPLandroid/net/SSLCertificateSocketFactory;->castToOpenSSLSocket(Ljava/net/Socket;)Lcom/android/org/conscrypt/OpenSSLSocketImpl;
+HSPLandroid/net/SSLCertificateSocketFactory;->createSocket(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;
+HSPLandroid/net/SSLCertificateSocketFactory;->getDefault(I)Ljavax/net/SocketFactory;
+HSPLandroid/net/SSLCertificateSocketFactory;->getDefault(ILandroid/net/SSLSessionCache;)Ljavax/net/ssl/SSLSocketFactory;
+HSPLandroid/net/SSLCertificateSocketFactory;->getDelegate()Ljavax/net/ssl/SSLSocketFactory;
+HSPLandroid/net/SSLCertificateSocketFactory;->getHttpSocketFactory(ILandroid/net/SSLSessionCache;)Lorg/apache/http/conn/ssl/SSLSocketFactory;
+HSPLandroid/net/SSLCertificateSocketFactory;->isSslCheckRelaxed()Z
+HSPLandroid/net/SSLCertificateSocketFactory;->makeSocketFactory([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;)Ljavax/net/ssl/SSLSocketFactory;
+HPLandroid/net/SSLCertificateSocketFactory;->setUseSessionTickets(Ljava/net/Socket;Z)V
+HSPLandroid/net/SSLCertificateSocketFactory;->verifyHostname(Ljava/net/Socket;Ljava/lang/String;)V
HSPLandroid/net/SSLSessionCache;-><init>(Landroid/content/Context;)V
-HSPLandroid/net/ScoredNetwork$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/ScoredNetwork;
-HSPLandroid/net/ScoredNetwork$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/net/ScoredNetwork;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/net/SSLSessionCache;-><init>(Ljava/io/File;)V
+PLandroid/net/ScoredNetwork$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/ScoredNetwork;
+PLandroid/net/ScoredNetwork$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/ScoredNetwork$1;->newArray(I)[Landroid/net/ScoredNetwork;
+PLandroid/net/ScoredNetwork$1;->newArray(I)[Ljava/lang/Object;
+HPLandroid/net/ScoredNetwork;-><init>(Landroid/net/NetworkKey;Landroid/net/RssiCurve;Z)V
+HPLandroid/net/ScoredNetwork;-><init>(Landroid/net/NetworkKey;Landroid/net/RssiCurve;ZLandroid/os/Bundle;)V
+PLandroid/net/ScoredNetwork;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/ScoredNetwork;-><init>(Landroid/os/Parcel;Landroid/net/ScoredNetwork$1;)V
+HPLandroid/net/ScoredNetwork;->calculateBadge(I)I
+HPLandroid/net/ScoredNetwork;->toString()Ljava/lang/String;
+PLandroid/net/ScoredNetwork;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/SntpClient;-><init>()V
+PLandroid/net/SntpClient;->checkValidServerReply(BBIJ)V
+PLandroid/net/SntpClient;->getNtpTime()J
+PLandroid/net/SntpClient;->getNtpTimeReference()J
+PLandroid/net/SntpClient;->getRoundTripTime()J
+PLandroid/net/SntpClient;->read32([BI)J
+PLandroid/net/SntpClient;->readTimeStamp([BI)J
+PLandroid/net/SntpClient;->requestTime(Ljava/lang/String;ILandroid/net/Network;)Z
+PLandroid/net/SntpClient;->requestTime(Ljava/net/InetAddress;IILandroid/net/Network;)Z
+PLandroid/net/SntpClient;->writeTimeStamp([BIJ)V
+PLandroid/net/StaticIpConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/StaticIpConfiguration;
+PLandroid/net/StaticIpConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/StaticIpConfiguration$Builder;-><init>()V
+HPLandroid/net/StaticIpConfiguration$Builder;->build()Landroid/net/StaticIpConfiguration;
+HPLandroid/net/StaticIpConfiguration$Builder;->setDnsServers(Ljava/lang/Iterable;)Landroid/net/StaticIpConfiguration$Builder;
+PLandroid/net/StaticIpConfiguration$Builder;->setDomains(Ljava/lang/String;)Landroid/net/StaticIpConfiguration$Builder;
+PLandroid/net/StaticIpConfiguration$Builder;->setGateway(Ljava/net/InetAddress;)Landroid/net/StaticIpConfiguration$Builder;
+PLandroid/net/StaticIpConfiguration$Builder;->setIpAddress(Landroid/net/LinkAddress;)Landroid/net/StaticIpConfiguration$Builder;
+PLandroid/net/StaticIpConfiguration;-><init>()V
+PLandroid/net/StaticIpConfiguration;->getDnsServers()Ljava/util/List;
+PLandroid/net/StaticIpConfiguration;->getDomains()Ljava/lang/String;
+PLandroid/net/StaticIpConfiguration;->getGateway()Ljava/net/InetAddress;
+PLandroid/net/StaticIpConfiguration;->getIpAddress()Landroid/net/LinkAddress;
+HPLandroid/net/StaticIpConfiguration;->getRoutes(Ljava/lang/String;)Ljava/util/List;
+HPLandroid/net/StaticIpConfiguration;->readFromParcel(Landroid/os/Parcel;)Landroid/net/StaticIpConfiguration;
+HPLandroid/net/StaticIpConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/StringNetworkSpecifier;-><init>(Ljava/lang/String;)V
HSPLandroid/net/TrafficStats;->clearThreadStatsTag()V
HSPLandroid/net/TrafficStats;->clearThreadStatsUid()V
+PLandroid/net/TrafficStats;->getAndSetThreadStatsTag(I)I
+HSPLandroid/net/TrafficStats;->getMobileIfaces()[Ljava/lang/String;
+HSPLandroid/net/TrafficStats;->getMobileRxBytes()J
+HSPLandroid/net/TrafficStats;->getMobileTxBytes()J
+PLandroid/net/TrafficStats;->getRxPackets(Ljava/lang/String;)J
HSPLandroid/net/TrafficStats;->getStatsService()Landroid/net/INetworkStatsService;
HSPLandroid/net/TrafficStats;->getThreadStatsTag()I
+HSPLandroid/net/TrafficStats;->getTotalRxBytes()J
+PLandroid/net/TrafficStats;->getTxPackets(Ljava/lang/String;)J
HSPLandroid/net/TrafficStats;->getUidRxBytes(I)J
+HSPLandroid/net/TrafficStats;->getUidRxPackets(I)J
HSPLandroid/net/TrafficStats;->getUidTxBytes(I)J
+HSPLandroid/net/TrafficStats;->getUidTxPackets(I)J
+HSPLandroid/net/TrafficStats;->incrementOperationCount(I)V
+HSPLandroid/net/TrafficStats;->incrementOperationCount(II)V
HSPLandroid/net/TrafficStats;->setThreadStatsTag(I)V
+HPLandroid/net/TrafficStats;->setThreadStatsTagBackup()V
HSPLandroid/net/TrafficStats;->setThreadStatsUid(I)V
+PLandroid/net/TrafficStats;->tagSocket(Ljava/net/Socket;)V
+HSPLandroid/net/TrafficStats;->untagSocket(Ljava/net/Socket;)V
HSPLandroid/net/UidRange$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/UidRange;
HSPLandroid/net/UidRange$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/net/UidRange;-><init>(II)V
+HSPLandroid/net/UidRange;->count()I
HSPLandroid/net/UidRange;->equals(Ljava/lang/Object;)Z
HSPLandroid/net/UidRange;->hashCode()I
HSPLandroid/net/UidRange;->writeToParcel(Landroid/os/Parcel;I)V
@@ -4737,12 +15382,17 @@ HSPLandroid/net/Uri$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/Uri;
HSPLandroid/net/Uri$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/net/Uri$1;->newArray(I)[Landroid/net/Uri;
HSPLandroid/net/Uri$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/net/Uri$AbstractHierarchicalUri;-><init>()V
HSPLandroid/net/Uri$AbstractHierarchicalUri;-><init>(Landroid/net/Uri$1;)V
HSPLandroid/net/Uri$AbstractHierarchicalUri;->findPortSeparator(Ljava/lang/String;)I
HSPLandroid/net/Uri$AbstractHierarchicalUri;->getHost()Ljava/lang/String;
HSPLandroid/net/Uri$AbstractHierarchicalUri;->getLastPathSegment()Ljava/lang/String;
+PLandroid/net/Uri$AbstractHierarchicalUri;->getPort()I
HSPLandroid/net/Uri$AbstractHierarchicalUri;->getUserInfo()Ljava/lang/String;
+HSPLandroid/net/Uri$AbstractHierarchicalUri;->getUserInfoPart()Landroid/net/Uri$Part;
HSPLandroid/net/Uri$AbstractHierarchicalUri;->parseHost()Ljava/lang/String;
+PLandroid/net/Uri$AbstractHierarchicalUri;->parsePort()I
+HSPLandroid/net/Uri$AbstractHierarchicalUri;->parseUserInfo()Ljava/lang/String;
HSPLandroid/net/Uri$AbstractPart;-><init>(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/net/Uri$AbstractPart;->getDecoded()Ljava/lang/String;
HSPLandroid/net/Uri$AbstractPart;->writeTo(Landroid/os/Parcel;)V
@@ -4756,15 +15406,21 @@ HSPLandroid/net/Uri$Builder;->build()Landroid/net/Uri;
HSPLandroid/net/Uri$Builder;->clearQuery()Landroid/net/Uri$Builder;
HSPLandroid/net/Uri$Builder;->encodedAuthority(Ljava/lang/String;)Landroid/net/Uri$Builder;
HSPLandroid/net/Uri$Builder;->encodedFragment(Ljava/lang/String;)Landroid/net/Uri$Builder;
+HSPLandroid/net/Uri$Builder;->encodedPath(Ljava/lang/String;)Landroid/net/Uri$Builder;
HSPLandroid/net/Uri$Builder;->encodedQuery(Ljava/lang/String;)Landroid/net/Uri$Builder;
HSPLandroid/net/Uri$Builder;->fragment(Landroid/net/Uri$Part;)Landroid/net/Uri$Builder;
HSPLandroid/net/Uri$Builder;->fragment(Ljava/lang/String;)Landroid/net/Uri$Builder;
+HSPLandroid/net/Uri$Builder;->hasSchemeOrAuthority()Z
+PLandroid/net/Uri$Builder;->opaquePart(Landroid/net/Uri$Part;)Landroid/net/Uri$Builder;
+HPLandroid/net/Uri$Builder;->opaquePart(Ljava/lang/String;)Landroid/net/Uri$Builder;
HSPLandroid/net/Uri$Builder;->path(Landroid/net/Uri$PathPart;)Landroid/net/Uri$Builder;
HSPLandroid/net/Uri$Builder;->path(Ljava/lang/String;)Landroid/net/Uri$Builder;
HSPLandroid/net/Uri$Builder;->query(Landroid/net/Uri$Part;)Landroid/net/Uri$Builder;
+HSPLandroid/net/Uri$Builder;->query(Ljava/lang/String;)Landroid/net/Uri$Builder;
HSPLandroid/net/Uri$Builder;->scheme(Ljava/lang/String;)Landroid/net/Uri$Builder;
HSPLandroid/net/Uri$Builder;->toString()Ljava/lang/String;
HSPLandroid/net/Uri$HierarchicalUri;-><init>(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$PathPart;Landroid/net/Uri$Part;Landroid/net/Uri$Part;)V
+HSPLandroid/net/Uri$HierarchicalUri;-><init>(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$PathPart;Landroid/net/Uri$Part;Landroid/net/Uri$Part;Landroid/net/Uri$1;)V
HSPLandroid/net/Uri$HierarchicalUri;->appendSspTo(Ljava/lang/StringBuilder;)V
HSPLandroid/net/Uri$HierarchicalUri;->buildUpon()Landroid/net/Uri$Builder;
HSPLandroid/net/Uri$HierarchicalUri;->getAuthority()Ljava/lang/String;
@@ -4772,29 +15428,38 @@ HSPLandroid/net/Uri$HierarchicalUri;->getEncodedAuthority()Ljava/lang/String;
HSPLandroid/net/Uri$HierarchicalUri;->getEncodedFragment()Ljava/lang/String;
HSPLandroid/net/Uri$HierarchicalUri;->getEncodedPath()Ljava/lang/String;
HSPLandroid/net/Uri$HierarchicalUri;->getEncodedQuery()Ljava/lang/String;
+HSPLandroid/net/Uri$HierarchicalUri;->getFragment()Ljava/lang/String;
HSPLandroid/net/Uri$HierarchicalUri;->getPath()Ljava/lang/String;
HSPLandroid/net/Uri$HierarchicalUri;->getPathSegments()Ljava/util/List;
HSPLandroid/net/Uri$HierarchicalUri;->getQuery()Ljava/lang/String;
HSPLandroid/net/Uri$HierarchicalUri;->getScheme()Ljava/lang/String;
HSPLandroid/net/Uri$HierarchicalUri;->getSchemeSpecificPart()Ljava/lang/String;
+PLandroid/net/Uri$HierarchicalUri;->getSsp()Landroid/net/Uri$Part;
HSPLandroid/net/Uri$HierarchicalUri;->isHierarchical()Z
+PLandroid/net/Uri$HierarchicalUri;->makeSchemeSpecificPart()Ljava/lang/String;
HSPLandroid/net/Uri$HierarchicalUri;->makeUriString()Ljava/lang/String;
+HSPLandroid/net/Uri$HierarchicalUri;->readFrom(Landroid/os/Parcel;)Landroid/net/Uri;
HSPLandroid/net/Uri$HierarchicalUri;->toString()Ljava/lang/String;
HSPLandroid/net/Uri$HierarchicalUri;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/net/Uri$OpaqueUri;-><init>(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$Part;)V
HSPLandroid/net/Uri$OpaqueUri;-><init>(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$Part;Landroid/net/Uri$1;)V
+HPLandroid/net/Uri$OpaqueUri;->buildUpon()Landroid/net/Uri$Builder;
HSPLandroid/net/Uri$OpaqueUri;->getEncodedSchemeSpecificPart()Ljava/lang/String;
+HPLandroid/net/Uri$OpaqueUri;->getFragment()Ljava/lang/String;
HSPLandroid/net/Uri$OpaqueUri;->getScheme()Ljava/lang/String;
HSPLandroid/net/Uri$OpaqueUri;->getSchemeSpecificPart()Ljava/lang/String;
HSPLandroid/net/Uri$OpaqueUri;->toString()Ljava/lang/String;
HSPLandroid/net/Uri$OpaqueUri;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/net/Uri$Part$EmptyPart;->isEmpty()Z
+HSPLandroid/net/Uri$Part;-><init>(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/net/Uri$Part;->from(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Part;
HSPLandroid/net/Uri$Part;->fromDecoded(Ljava/lang/String;)Landroid/net/Uri$Part;
HSPLandroid/net/Uri$Part;->fromEncoded(Ljava/lang/String;)Landroid/net/Uri$Part;
HSPLandroid/net/Uri$Part;->getEncoded()Ljava/lang/String;
HSPLandroid/net/Uri$Part;->isEmpty()Z
+HSPLandroid/net/Uri$Part;->nonNull(Landroid/net/Uri$Part;)Landroid/net/Uri$Part;
HSPLandroid/net/Uri$Part;->readFrom(Landroid/os/Parcel;)Landroid/net/Uri$Part;
+HSPLandroid/net/Uri$PathPart;-><init>(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/net/Uri$PathPart;->appendDecodedSegment(Landroid/net/Uri$PathPart;Ljava/lang/String;)Landroid/net/Uri$PathPart;
HSPLandroid/net/Uri$PathPart;->appendEncodedSegment(Landroid/net/Uri$PathPart;Ljava/lang/String;)Landroid/net/Uri$PathPart;
HSPLandroid/net/Uri$PathPart;->from(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$PathPart;
@@ -4804,6 +15469,7 @@ HSPLandroid/net/Uri$PathPart;->getEncoded()Ljava/lang/String;
HSPLandroid/net/Uri$PathPart;->getPathSegments()Landroid/net/Uri$PathSegments;
HSPLandroid/net/Uri$PathPart;->makeAbsolute(Landroid/net/Uri$PathPart;)Landroid/net/Uri$PathPart;
HSPLandroid/net/Uri$PathPart;->readFrom(Landroid/os/Parcel;)Landroid/net/Uri$PathPart;
+HSPLandroid/net/Uri$PathSegments;-><init>([Ljava/lang/String;I)V
HSPLandroid/net/Uri$PathSegments;->get(I)Ljava/lang/Object;
HSPLandroid/net/Uri$PathSegments;->get(I)Ljava/lang/String;
HSPLandroid/net/Uri$PathSegments;->size()I
@@ -4812,28 +15478,42 @@ HSPLandroid/net/Uri$PathSegmentsBuilder;->build()Landroid/net/Uri$PathSegments;
HSPLandroid/net/Uri$StringUri;-><init>(Ljava/lang/String;)V
HSPLandroid/net/Uri$StringUri;-><init>(Ljava/lang/String;Landroid/net/Uri$1;)V
HSPLandroid/net/Uri$StringUri;->buildUpon()Landroid/net/Uri$Builder;
+HSPLandroid/net/Uri$StringUri;->findFragmentSeparator()I
HSPLandroid/net/Uri$StringUri;->findSchemeSeparator()I
HSPLandroid/net/Uri$StringUri;->getAuthority()Ljava/lang/String;
+HSPLandroid/net/Uri$StringUri;->getAuthorityPart()Landroid/net/Uri$Part;
HSPLandroid/net/Uri$StringUri;->getEncodedAuthority()Ljava/lang/String;
+PLandroid/net/Uri$StringUri;->getEncodedFragment()Ljava/lang/String;
HSPLandroid/net/Uri$StringUri;->getEncodedPath()Ljava/lang/String;
HSPLandroid/net/Uri$StringUri;->getEncodedQuery()Ljava/lang/String;
+HPLandroid/net/Uri$StringUri;->getFragment()Ljava/lang/String;
+HSPLandroid/net/Uri$StringUri;->getFragmentPart()Landroid/net/Uri$Part;
HSPLandroid/net/Uri$StringUri;->getPath()Ljava/lang/String;
HSPLandroid/net/Uri$StringUri;->getPathPart()Landroid/net/Uri$PathPart;
HSPLandroid/net/Uri$StringUri;->getPathSegments()Ljava/util/List;
HSPLandroid/net/Uri$StringUri;->getQuery()Ljava/lang/String;
HSPLandroid/net/Uri$StringUri;->getQueryPart()Landroid/net/Uri$Part;
HSPLandroid/net/Uri$StringUri;->getScheme()Ljava/lang/String;
-HSPLandroid/net/Uri$StringUri;->getSchemeSpecificPart()Ljava/lang/String;
+PLandroid/net/Uri$StringUri;->getSchemeSpecificPart()Ljava/lang/String;
+PLandroid/net/Uri$StringUri;->getSsp()Landroid/net/Uri$Part;
HSPLandroid/net/Uri$StringUri;->isHierarchical()Z
+HSPLandroid/net/Uri$StringUri;->isRelative()Z
HSPLandroid/net/Uri$StringUri;->parseAuthority(Ljava/lang/String;I)Ljava/lang/String;
+HSPLandroid/net/Uri$StringUri;->parseFragment()Ljava/lang/String;
HSPLandroid/net/Uri$StringUri;->parsePath()Ljava/lang/String;
HSPLandroid/net/Uri$StringUri;->parsePath(Ljava/lang/String;I)Ljava/lang/String;
HSPLandroid/net/Uri$StringUri;->parseQuery()Ljava/lang/String;
+HSPLandroid/net/Uri$StringUri;->parseScheme()Ljava/lang/String;
+PLandroid/net/Uri$StringUri;->parseSsp()Ljava/lang/String;
+HSPLandroid/net/Uri$StringUri;->readFrom(Landroid/os/Parcel;)Landroid/net/Uri;
HSPLandroid/net/Uri$StringUri;->toString()Ljava/lang/String;
HSPLandroid/net/Uri$StringUri;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/Uri;-><init>()V
HSPLandroid/net/Uri;-><init>(Landroid/net/Uri$1;)V
HSPLandroid/net/Uri;->access$300()Ljava/lang/String;
+HSPLandroid/net/Uri;->checkContentUriWithoutPermission(Ljava/lang/String;I)V
HSPLandroid/net/Uri;->checkFileUriExposed(Ljava/lang/String;)V
+HPLandroid/net/Uri;->compareTo(Landroid/net/Uri;)I
HSPLandroid/net/Uri;->decode(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/net/Uri;->encode(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/net/Uri;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
@@ -4843,48 +15523,445 @@ HSPLandroid/net/Uri;->fromParts(Ljava/lang/String;Ljava/lang/String;Ljava/lang/S
HSPLandroid/net/Uri;->getBooleanQueryParameter(Ljava/lang/String;Z)Z
HSPLandroid/net/Uri;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/net/Uri;->getQueryParameterNames()Ljava/util/Set;
+HSPLandroid/net/Uri;->getQueryParameters(Ljava/lang/String;)Ljava/util/List;
HSPLandroid/net/Uri;->hashCode()I
+HSPLandroid/net/Uri;->isAbsolute()Z
HSPLandroid/net/Uri;->isAllowed(CLjava/lang/String;)Z
HSPLandroid/net/Uri;->isOpaque()Z
+HSPLandroid/net/Uri;->isPathPrefixMatch(Landroid/net/Uri;)Z
+PLandroid/net/Uri;->normalizeScheme()Landroid/net/Uri;
HSPLandroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
HSPLandroid/net/Uri;->toSafeString()Ljava/lang/String;
HSPLandroid/net/Uri;->withAppendedPath(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/net/Uri;->writeToParcel(Landroid/os/Parcel;Landroid/net/Uri;)V
HSPLandroid/net/UriCodec;->appendDecoded(Ljava/lang/StringBuilder;Ljava/lang/String;ZLjava/nio/charset/Charset;Z)V
+HSPLandroid/net/UriCodec;->decode(Ljava/lang/String;ZLjava/nio/charset/Charset;Z)Ljava/lang/String;
HSPLandroid/net/UriCodec;->flushDecodingByteAccumulator(Ljava/lang/StringBuilder;Ljava/nio/charset/CharsetDecoder;Ljava/nio/ByteBuffer;Z)V
HSPLandroid/net/UriCodec;->getNextCharacter(Ljava/lang/String;IILjava/lang/String;)C
HSPLandroid/net/UriCodec;->hexCharToValue(C)I
+HSPLandroid/net/WebAddress;-><init>(Ljava/lang/String;)V
+HSPLandroid/net/WebAddress;->toString()Ljava/lang/String;
HSPLandroid/net/WifiKey$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/WifiKey;
HSPLandroid/net/WifiKey$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/WifiKey;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/net/WifiKey;-><init>(Landroid/os/Parcel;Landroid/net/WifiKey$1;)V
HSPLandroid/net/WifiKey;-><init>(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/net/WifiKey;->equals(Ljava/lang/Object;)Z
HSPLandroid/net/WifiKey;->hashCode()I
-HSPLandroid/net/WifiKey;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/net/WifiKey;->toString()Ljava/lang/String;
+HPLandroid/net/WifiKey;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/net/apf/ApfCapabilities$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/apf/ApfCapabilities;
+HPLandroid/net/apf/ApfCapabilities$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/apf/ApfCapabilities;-><init>(III)V
+HPLandroid/net/apf/ApfCapabilities;->getApfDrop8023Frames()Z
+HPLandroid/net/apf/ApfCapabilities;->getApfEtherTypeBlackList()[I
+HPLandroid/net/apf/ApfCapabilities;->hasDataAccess()Z
+HPLandroid/net/apf/ApfCapabilities;->toString()Ljava/lang/String;
+HSPLandroid/net/http/HttpResponseCache;-><init>(Lcom/android/okhttp/internalandroidapi/AndroidResponseCacheAdapter;)V
+HPLandroid/net/http/HttpResponseCache;->getCacheHolder()Lcom/android/okhttp/internalandroidapi/HasCacheHolder$CacheHolder;
+HSPLandroid/net/http/HttpResponseCache;->install(Ljava/io/File;J)Landroid/net/http/HttpResponseCache;
HSPLandroid/net/http/X509TrustManagerExtensions;-><init>(Ljavax/net/ssl/X509TrustManager;)V
HSPLandroid/net/http/X509TrustManagerExtensions;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+PLandroid/net/metrics/ApfProgramEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/ApfProgramEvent;
+PLandroid/net/metrics/ApfProgramEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/metrics/ApfProgramEvent$Decoder;-><clinit>()V
+HPLandroid/net/metrics/ApfProgramEvent;-><init>(JJIIII)V
+HPLandroid/net/metrics/ApfProgramEvent;-><init>(JJIIIILandroid/net/metrics/ApfProgramEvent$1;)V
+PLandroid/net/metrics/ApfProgramEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/metrics/ApfProgramEvent;-><init>(Landroid/os/Parcel;Landroid/net/metrics/ApfProgramEvent$1;)V
+HPLandroid/net/metrics/ApfProgramEvent;->flagsFor(ZZ)I
+PLandroid/net/metrics/ApfProgramEvent;->namesOf(I)Ljava/lang/String;
+PLandroid/net/metrics/ApfProgramEvent;->toString()Ljava/lang/String;
+HPLandroid/net/metrics/ApfProgramEvent;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/metrics/ApfStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/ApfStats;
+PLandroid/net/metrics/ApfStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/metrics/ApfStats;-><init>(JIIIIIIIII)V
+HPLandroid/net/metrics/ApfStats;-><init>(JIIIIIIIIILandroid/net/metrics/ApfStats$1;)V
+PLandroid/net/metrics/ApfStats;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/metrics/ApfStats;-><init>(Landroid/os/Parcel;Landroid/net/metrics/ApfStats$1;)V
+PLandroid/net/metrics/ApfStats;->toString()Ljava/lang/String;
+HPLandroid/net/metrics/ApfStats;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/metrics/ConnectStats;-><clinit>()V
+PLandroid/net/metrics/ConnectStats;-><init>(IJLcom/android/internal/util/TokenBucket;I)V
+HPLandroid/net/metrics/ConnectStats;->addEvent(IILjava/lang/String;)Z
+PLandroid/net/metrics/ConnectStats;->countConnect(ILjava/lang/String;)V
+PLandroid/net/metrics/ConnectStats;->countError(I)V
+HPLandroid/net/metrics/ConnectStats;->countLatency(II)V
+PLandroid/net/metrics/ConnectStats;->isIPv6(Ljava/lang/String;)Z
+PLandroid/net/metrics/ConnectStats;->isNonBlocking(I)Z
+PLandroid/net/metrics/ConnectStats;->isSuccess(I)Z
+PLandroid/net/metrics/ConnectStats;->toString()Ljava/lang/String;
+HSPLandroid/net/metrics/DefaultNetworkEvent;-><init>(J)V
+PLandroid/net/metrics/DefaultNetworkEvent;->ipSupport()Ljava/lang/String;
+HPLandroid/net/metrics/DefaultNetworkEvent;->toString()Ljava/lang/String;
+PLandroid/net/metrics/DefaultNetworkEvent;->updateDuration(J)V
+PLandroid/net/metrics/DhcpClientEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/DhcpClientEvent;
+PLandroid/net/metrics/DhcpClientEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/metrics/DhcpClientEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/metrics/DhcpClientEvent;-><init>(Landroid/os/Parcel;Landroid/net/metrics/DhcpClientEvent$1;)V
+HPLandroid/net/metrics/DhcpClientEvent;-><init>(Ljava/lang/String;I)V
+HPLandroid/net/metrics/DhcpClientEvent;-><init>(Ljava/lang/String;ILandroid/net/metrics/DhcpClientEvent$1;)V
+PLandroid/net/metrics/DhcpClientEvent;->toString()Ljava/lang/String;
+HPLandroid/net/metrics/DhcpClientEvent;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/metrics/DhcpErrorEvent$1;-><init>()V
+PLandroid/net/metrics/DhcpErrorEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/DhcpErrorEvent;
+HPLandroid/net/metrics/DhcpErrorEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/metrics/DhcpErrorEvent$Decoder;-><clinit>()V
+PLandroid/net/metrics/DhcpErrorEvent;-><clinit>()V
+HPLandroid/net/metrics/DhcpErrorEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/metrics/DhcpErrorEvent;-><init>(Landroid/os/Parcel;Landroid/net/metrics/DhcpErrorEvent$1;)V
+PLandroid/net/metrics/DhcpErrorEvent;->toString()Ljava/lang/String;
+PLandroid/net/metrics/DnsEvent;-><init>(IJI)V
+HPLandroid/net/metrics/DnsEvent;->addResult(BBI)Z
+PLandroid/net/metrics/DnsEvent;->resize(I)V
+PLandroid/net/metrics/DnsEvent;->toString()Ljava/lang/String;
+HSPLandroid/net/metrics/IpConnectivityLog;-><init>()V
+HPLandroid/net/metrics/IpConnectivityLog;->log(I[ILandroid/net/metrics/IpConnectivityLog$Event;)Z
+HPLandroid/net/metrics/IpConnectivityLog;->log(Landroid/net/ConnectivityMetricsEvent;)Z
+HPLandroid/net/metrics/IpConnectivityLog;->log(Landroid/net/Network;[ILandroid/net/metrics/IpConnectivityLog$Event;)Z
+HPLandroid/net/metrics/IpConnectivityLog;->log(Landroid/net/metrics/IpConnectivityLog$Event;)Z
+HPLandroid/net/metrics/IpConnectivityLog;->log(Ljava/lang/String;Landroid/net/metrics/IpConnectivityLog$Event;)Z
+PLandroid/net/metrics/IpManagerEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/IpManagerEvent;
+PLandroid/net/metrics/IpManagerEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/metrics/IpManagerEvent$Decoder;-><clinit>()V
+HPLandroid/net/metrics/IpManagerEvent;-><init>(IJ)V
+PLandroid/net/metrics/IpManagerEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/metrics/IpManagerEvent;-><init>(Landroid/os/Parcel;Landroid/net/metrics/IpManagerEvent$1;)V
+PLandroid/net/metrics/IpManagerEvent;->toString()Ljava/lang/String;
+HPLandroid/net/metrics/IpManagerEvent;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/metrics/IpReachabilityEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/IpReachabilityEvent;
+PLandroid/net/metrics/IpReachabilityEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/metrics/IpReachabilityEvent$Decoder;-><clinit>()V
+HPLandroid/net/metrics/IpReachabilityEvent;-><init>(I)V
+PLandroid/net/metrics/IpReachabilityEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/metrics/IpReachabilityEvent;-><init>(Landroid/os/Parcel;Landroid/net/metrics/IpReachabilityEvent$1;)V
+PLandroid/net/metrics/IpReachabilityEvent;->toString()Ljava/lang/String;
+HPLandroid/net/metrics/IpReachabilityEvent;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/metrics/NetworkEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/NetworkEvent;
+PLandroid/net/metrics/NetworkEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/metrics/NetworkEvent$Decoder;-><clinit>()V
+HPLandroid/net/metrics/NetworkEvent;-><init>(I)V
+HPLandroid/net/metrics/NetworkEvent;-><init>(IJ)V
+PLandroid/net/metrics/NetworkEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/metrics/NetworkEvent;-><init>(Landroid/os/Parcel;Landroid/net/metrics/NetworkEvent$1;)V
+PLandroid/net/metrics/NetworkEvent;->toString()Ljava/lang/String;
+HPLandroid/net/metrics/NetworkEvent;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/metrics/NetworkMetrics$Metrics;-><init>()V
+PLandroid/net/metrics/NetworkMetrics$Metrics;->average()D
+HPLandroid/net/metrics/NetworkMetrics$Metrics;->count(D)V
+HPLandroid/net/metrics/NetworkMetrics$Metrics;->count(DI)V
+HPLandroid/net/metrics/NetworkMetrics$Metrics;->merge(Landroid/net/metrics/NetworkMetrics$Metrics;)V
+PLandroid/net/metrics/NetworkMetrics$Summary;-><init>(IJ)V
+PLandroid/net/metrics/NetworkMetrics$Summary;->merge(Landroid/net/metrics/NetworkMetrics$Summary;)V
+HPLandroid/net/metrics/NetworkMetrics$Summary;->toString()Ljava/lang/String;
+PLandroid/net/metrics/NetworkMetrics;-><init>(IJLcom/android/internal/util/TokenBucket;)V
+HPLandroid/net/metrics/NetworkMetrics;->addConnectResult(IILjava/lang/String;)V
+HPLandroid/net/metrics/NetworkMetrics;->addDnsResult(III)V
+PLandroid/net/metrics/NetworkMetrics;->addTcpStatsResult(IIII)V
+PLandroid/net/metrics/NetworkMetrics;->getPendingStats()Landroid/net/metrics/NetworkMetrics$Summary;
+PLandroid/net/metrics/RaEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/RaEvent;
+PLandroid/net/metrics/RaEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/metrics/RaEvent;-><init>(JJJJJJ)V
+PLandroid/net/metrics/RaEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/metrics/RaEvent;-><init>(Landroid/os/Parcel;Landroid/net/metrics/RaEvent$1;)V
+HPLandroid/net/metrics/RaEvent;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/net/metrics/ValidationProbeEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/metrics/ValidationProbeEvent;
+HPLandroid/net/metrics/ValidationProbeEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/metrics/ValidationProbeEvent$Decoder;-><clinit>()V
+HPLandroid/net/metrics/ValidationProbeEvent;-><init>(JII)V
+HPLandroid/net/metrics/ValidationProbeEvent;-><init>(JIILandroid/net/metrics/ValidationProbeEvent$1;)V
+PLandroid/net/metrics/ValidationProbeEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/net/metrics/ValidationProbeEvent;-><init>(Landroid/os/Parcel;Landroid/net/metrics/ValidationProbeEvent$1;)V
+HPLandroid/net/metrics/ValidationProbeEvent;->access$000(IZ)I
+HPLandroid/net/metrics/ValidationProbeEvent;->getProbeName(I)Ljava/lang/String;
+PLandroid/net/metrics/ValidationProbeEvent;->getValidationStage(I)Ljava/lang/String;
+HPLandroid/net/metrics/ValidationProbeEvent;->makeProbeType(IZ)I
+HPLandroid/net/metrics/ValidationProbeEvent;->toString()Ljava/lang/String;
+HPLandroid/net/metrics/ValidationProbeEvent;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/net/metrics/WakeupEvent;->toString()Ljava/lang/String;
+PLandroid/net/metrics/WakeupStats;-><init>(Ljava/lang/String;)V
+PLandroid/net/metrics/WakeupStats;->countEvent(Landroid/net/metrics/WakeupEvent;)V
+PLandroid/net/metrics/WakeupStats;->increment(Landroid/util/SparseIntArray;I)V
+PLandroid/net/metrics/WakeupStats;->updateDuration()V
+HSPLandroid/net/nsd/INsdManager$Stub;-><init>()V
+PLandroid/net/nsd/INsdManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/shared/Inet4AddressUtils;->inet4AddressToIntHTH(Ljava/net/Inet4Address;)I
+HPLandroid/net/shared/Inet4AddressUtils;->inet4AddressToIntHTL(Ljava/net/Inet4Address;)I
+HSPLandroid/net/shared/Inet4AddressUtils;->intToInet4AddressHTH(I)Ljava/net/Inet4Address;
+HSPLandroid/net/shared/Inet4AddressUtils;->intToInet4AddressHTL(I)Ljava/net/Inet4Address;
+HPLandroid/net/shared/InetAddressUtils;->unparcelInetAddress(Landroid/os/Parcel;)Ljava/net/InetAddress;
+HPLandroid/net/sip/ISipService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/sip/ISipService;
+HPLandroid/net/sip/ISipService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/net/sip/SipManager;-><init>(Landroid/content/Context;)V
+HPLandroid/net/sip/SipManager;->createSipService()V
+HPLandroid/net/sip/SipManager;->isApiSupported(Landroid/content/Context;)Z
+HPLandroid/net/sip/SipManager;->newInstance(Landroid/content/Context;)Landroid/net/sip/SipManager;
+HSPLandroid/net/util/-$$Lambda$MultinetworkPolicyTracker$8YMQ0fPTKk7Fw-_gJjln0JT-g8E;-><init>(Landroid/net/util/MultinetworkPolicyTracker;)V
+HSPLandroid/net/util/-$$Lambda$MultinetworkPolicyTracker$8YMQ0fPTKk7Fw-_gJjln0JT-g8E;->run()V
+HSPLandroid/net/util/KeepaliveUtils;->getSupportedKeepalives(Landroid/content/Context;)[I
+HSPLandroid/net/util/MultinetworkPolicyTracker$1;-><init>(Landroid/net/util/MultinetworkPolicyTracker;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker$2;-><init>(Landroid/net/util/MultinetworkPolicyTracker;Landroid/os/Looper;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker$SettingObserver;-><init>(Landroid/net/util/MultinetworkPolicyTracker;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/Runnable;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker;->access$000(Landroid/net/util/MultinetworkPolicyTracker;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker;->configMeteredMultipathPreference()I
+HSPLandroid/net/util/MultinetworkPolicyTracker;->configRestrictsAvoidBadWifi()Z
+PLandroid/net/util/MultinetworkPolicyTracker;->getAvoidBadWifi()Z
+HSPLandroid/net/util/MultinetworkPolicyTracker;->getAvoidBadWifiSetting()Ljava/lang/String;
+HSPLandroid/net/util/MultinetworkPolicyTracker;->getResourcesForActiveSubId()Landroid/content/res/Resources;
+HSPLandroid/net/util/MultinetworkPolicyTracker;->lambda$8YMQ0fPTKk7Fw-_gJjln0JT-g8E(Landroid/net/util/MultinetworkPolicyTracker;)V
+HSPLandroid/net/util/MultinetworkPolicyTracker;->reevaluate()V
+HSPLandroid/net/util/MultinetworkPolicyTracker;->reevaluateInternal()V
+PLandroid/net/util/MultinetworkPolicyTracker;->shouldNotifyWifiUnvalidated()Z
+HSPLandroid/net/util/MultinetworkPolicyTracker;->start()V
+HSPLandroid/net/util/MultinetworkPolicyTracker;->updateAvoidBadWifi()Z
+HSPLandroid/net/util/MultinetworkPolicyTracker;->updateMeteredMultipathPreference()V
+HPLandroid/net/wifi/-$$Lambda$O5kkps4d9X9Xr5DI8L3NlcZliu8;-><init>(Landroid/net/wifi/WifiScanner$ActionListener;)V
+PLandroid/net/wifi/-$$Lambda$O5kkps4d9X9Xr5DI8L3NlcZliu8;->run()V
+PLandroid/net/wifi/-$$Lambda$WifiCondManager$SendMgmtFrameEvent$1tO80MJuvPzKd00CdTg5cClA2xA;-><init>(Landroid/net/wifi/WifiCondManager$SendMgmtFrameEvent;I)V
+PLandroid/net/wifi/-$$Lambda$WifiCondManager$SendMgmtFrameEvent$1tO80MJuvPzKd00CdTg5cClA2xA;->run()V
+PLandroid/net/wifi/-$$Lambda$WifiCondManager$SendMgmtFrameEvent$E9ui8NEiUJK3zeulsnOnYA7nzFQ;-><init>(Landroid/net/wifi/WifiCondManager$SendMgmtFrameEvent;I)V
+PLandroid/net/wifi/-$$Lambda$WifiCondManager$SendMgmtFrameEvent$E9ui8NEiUJK3zeulsnOnYA7nzFQ;->run()V
+PLandroid/net/wifi/-$$Lambda$WifiCondManager$SendMgmtFrameEvent$j70mudiuCDDmvr1zZ2hrjd3FYPo;-><init>(Landroid/net/wifi/WifiCondManager$SendMgmtFrameEvent;I)V
+PLandroid/net/wifi/-$$Lambda$WifiCondManager$SendMgmtFrameEvent$j70mudiuCDDmvr1zZ2hrjd3FYPo;->run()V
+PLandroid/net/wifi/-$$Lambda$WifiCondManager$SendMgmtFrameEvent$qiEHBeULnzDLqmGDFQVnLgJh27U;-><init>(Landroid/net/wifi/WifiCondManager$SendMgmtFrameEvent;)V
+PLandroid/net/wifi/-$$Lambda$WifiCondManager$SendMgmtFrameEvent$qv6ZgxyWgi5zz2qCmJjiuvrSHyA;-><init>(Landroid/net/wifi/WifiCondManager$SendMgmtFrameEvent;I)V
+PLandroid/net/wifi/-$$Lambda$WifiCondManager$SendMgmtFrameEvent$qv6ZgxyWgi5zz2qCmJjiuvrSHyA;->run()V
HSPLandroid/net/wifi/-$$Lambda$WifiFrameworkInitializer$K4DpGPGObWI293pmRTuiEj5r-DE;->createService(Landroid/content/Context;Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/net/wifi/-$$Lambda$WifiFrameworkInitializer$Q8AMcrAZzPqZKp4l5Zz4DRDq6rY;->createService(Landroid/content/Context;Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/net/wifi/-$$Lambda$WifiFrameworkInitializer$evN9sVM7TGOwMVxoJTGBCfu_880;->createService(Landroid/os/IBinder;)Ljava/lang/Object;
+PLandroid/net/wifi/-$$Lambda$WifiFrameworkInitializer$qxuZsnr_-ppKI2ad2pa3htyx2u0;->createService(Landroid/content/Context;Landroid/os/IBinder;)Ljava/lang/Object;
+HSPLandroid/net/wifi/-$$Lambda$WifiFrameworkInitializer$y82Bone6wQbJ8BixuAZ6L5k501Y;->createService(Landroid/content/Context;Landroid/os/IBinder;)Ljava/lang/Object;
+HPLandroid/net/wifi/-$$Lambda$WifiManager$OnWifiActivityEnergyInfoProxy$BQ8Vxtnu_10AGVrPkHlwcL-8IEY;-><init>(Landroid/net/wifi/WifiManager$OnWifiActivityEnergyInfoListener;Landroid/os/connectivity/WifiActivityEnergyInfo;)V
+HPLandroid/net/wifi/-$$Lambda$WifiManager$OnWifiActivityEnergyInfoProxy$BQ8Vxtnu_10AGVrPkHlwcL-8IEY;->run()V
+PLandroid/net/wifi/-$$Lambda$WifiScanner$ServiceHandler$cKqGOMxI2R2uyUjgsLnrUOSFRS8;-><init>(Landroid/net/wifi/WifiScanner$ActionListener;Landroid/net/wifi/WifiScanner$OperationResult;)V
+PLandroid/net/wifi/-$$Lambda$WifiScanner$ServiceHandler$cKqGOMxI2R2uyUjgsLnrUOSFRS8;->run()V
+HPLandroid/net/wifi/-$$Lambda$WifiScanner$ServiceHandler$tfzaoDCMuySQuJsgvPXn9A60XqE;-><init>(Landroid/net/wifi/WifiScanner$ScanListener;Landroid/net/wifi/WifiScanner$ParcelableScanData;)V
+HPLandroid/net/wifi/-$$Lambda$WifiScanner$ServiceHandler$tfzaoDCMuySQuJsgvPXn9A60XqE;->run()V
+HPLandroid/net/wifi/-$$Lambda$WifiScanner$ServiceHandler$y6fV_BVhUdL0OIhrI7CZr_ohobM;-><init>(Landroid/net/wifi/WifiScanner$ScanListener;Landroid/net/wifi/ScanResult;)V
+HPLandroid/net/wifi/-$$Lambda$WifiScanner$ServiceHandler$y6fV_BVhUdL0OIhrI7CZr_ohobM;->run()V
+PLandroid/net/wifi/IActionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/net/wifi/IActionListener$Stub$Proxy;->onSuccess()V
+PLandroid/net/wifi/IActionListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IActionListener;
+HSPLandroid/net/wifi/IClientInterface$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/net/wifi/IClientInterface$Stub$Proxy;->SendMgmtFrame([BLandroid/net/wifi/ISendMgmtFrameEvent;I)V
+HSPLandroid/net/wifi/IClientInterface$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/net/wifi/IClientInterface$Stub$Proxy;->getWifiScannerImpl()Landroid/net/wifi/IWifiScannerImpl;
+HPLandroid/net/wifi/IClientInterface$Stub$Proxy;->signalPoll()[I
+HSPLandroid/net/wifi/IClientInterface$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IClientInterface;
+HPLandroid/net/wifi/IOnWifiActivityEnergyInfoListener$Stub;-><init>()V
+PLandroid/net/wifi/IOnWifiUsabilityStatsListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/net/wifi/IOnWifiUsabilityStatsListener$Stub$Proxy;->onWifiUsabilityStats(IZLandroid/net/wifi/WifiUsabilityStatsEntry;)V
+HPLandroid/net/wifi/IOnWifiUsabilityStatsListener$Stub;-><init>()V
+HPLandroid/net/wifi/IOnWifiUsabilityStatsListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/net/wifi/IOnWifiUsabilityStatsListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IOnWifiUsabilityStatsListener;
+HPLandroid/net/wifi/IOnWifiUsabilityStatsListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/wifi/IPnoScanEvent$Stub;-><init>()V
+HSPLandroid/net/wifi/IPnoScanEvent$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/net/wifi/IScanEvent$Stub;-><init>()V
+HSPLandroid/net/wifi/IScanEvent$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/net/wifi/IScanEvent$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/net/wifi/IScanEvent$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/net/wifi/ISendMgmtFrameEvent$Stub;-><init>()V
+PLandroid/net/wifi/ISendMgmtFrameEvent$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/net/wifi/ISendMgmtFrameEvent$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/net/wifi/ISoftApCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/net/wifi/ISoftApCallback$Stub$Proxy;->onConnectedClientsChanged(Ljava/util/List;)V
+PLandroid/net/wifi/ISoftApCallback$Stub$Proxy;->onInfoChanged(Landroid/net/wifi/SoftApInfo;)V
+PLandroid/net/wifi/ISoftApCallback$Stub$Proxy;->onStateChanged(II)V
+PLandroid/net/wifi/ISoftApCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/ISoftApCallback;
+PLandroid/net/wifi/ITrafficStateCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/net/wifi/ITrafficStateCallback$Stub$Proxy;->onStateChanged(I)V
+PLandroid/net/wifi/ITrafficStateCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/ITrafficStateCallback;
+HPLandroid/net/wifi/ITrafficStateCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/net/wifi/IWifiManager$Stub$Proxy;->acquireMulticastLock(Landroid/os/IBinder;Ljava/lang/String;)V
+HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;->acquireWifiLock(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/WorkSource;)Z
+HPLandroid/net/wifi/IWifiManager$Stub$Proxy;->addOnWifiUsabilityStatsListener(Landroid/os/IBinder;Landroid/net/wifi/IOnWifiUsabilityStatsListener;I)V
+HPLandroid/net/wifi/IWifiManager$Stub$Proxy;->calculateSignalLevel(I)I
HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;->getConfiguredNetworks(Ljava/lang/String;Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;->getConnectionInfo(Ljava/lang/String;Ljava/lang/String;)Landroid/net/wifi/WifiInfo;
-HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;->getCurrentNetwork()Landroid/net/Network;
+HPLandroid/net/wifi/IWifiManager$Stub$Proxy;->getCurrentNetwork()Landroid/net/Network;
+HPLandroid/net/wifi/IWifiManager$Stub$Proxy;->getDhcpInfo()Landroid/net/DhcpInfo;
+HPLandroid/net/wifi/IWifiManager$Stub$Proxy;->getPrivilegedConfiguredNetworks(Ljava/lang/String;Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;->getScanResults(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
-HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;->getSupportedFeatures()J
HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;->getVerboseLoggingLevel()I
+PLandroid/net/wifi/IWifiManager$Stub$Proxy;->getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;->getWifiApEnabledState()I
HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;->getWifiEnabledState()I
HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;->isScanAlwaysAvailable()Z
-HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;->startScan(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;->needs5GHzToAnyApBandConversion()Z
+HPLandroid/net/wifi/IWifiManager$Stub$Proxy;->releaseMulticastLock(Ljava/lang/String;)V
+HSPLandroid/net/wifi/IWifiManager$Stub$Proxy;->releaseWifiLock(Landroid/os/IBinder;)Z
+HPLandroid/net/wifi/IWifiManager$Stub$Proxy;->setDeviceMobilityState(I)V
+HPLandroid/net/wifi/IWifiManager$Stub$Proxy;->setWifiEnabled(Ljava/lang/String;Z)Z
+HPLandroid/net/wifi/IWifiManager$Stub$Proxy;->startScan(Ljava/lang/String;Ljava/lang/String;)Z
+HPLandroid/net/wifi/IWifiManager$Stub$Proxy;->updateWifiUsabilityScore(III)V
+HSPLandroid/net/wifi/IWifiManager$Stub;-><init>()V
HSPLandroid/net/wifi/IWifiManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IWifiManager;
+PLandroid/net/wifi/IWifiManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/net/wifi/IWifiManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/net/wifi/IWifiScanner$Stub$Proxy;->getMessenger()Landroid/os/Messenger;
+HSPLandroid/net/wifi/IWifiScanner$Stub;-><init>()V
+HSPLandroid/net/wifi/IWifiScanner$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IWifiScanner;
+PLandroid/net/wifi/IWifiScanner$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/wifi/IWifiScannerImpl$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/net/wifi/IWifiScannerImpl$Stub$Proxy;->abortScan()V
+HSPLandroid/net/wifi/IWifiScannerImpl$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/net/wifi/IWifiScannerImpl$Stub$Proxy;->getScanResults()[Landroid/net/wifi/wificond/NativeScanResult;
+HPLandroid/net/wifi/IWifiScannerImpl$Stub$Proxy;->scan(Landroid/net/wifi/wificond/SingleScanSettings;)Z
+HPLandroid/net/wifi/IWifiScannerImpl$Stub$Proxy;->startPnoScan(Landroid/net/wifi/wificond/PnoSettings;)Z
+HSPLandroid/net/wifi/IWifiScannerImpl$Stub$Proxy;->subscribePnoScanEvents(Landroid/net/wifi/IPnoScanEvent;)V
+HSPLandroid/net/wifi/IWifiScannerImpl$Stub$Proxy;->subscribeScanEvents(Landroid/net/wifi/IScanEvent;)V
+PLandroid/net/wifi/IWifiScannerImpl$Stub$Proxy;->unsubscribePnoScanEvents()V
+PLandroid/net/wifi/IWifiScannerImpl$Stub$Proxy;->unsubscribeScanEvents()V
+HSPLandroid/net/wifi/IWifiScannerImpl$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IWifiScannerImpl;
+HSPLandroid/net/wifi/IWificond$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/wifi/IWificond$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/net/wifi/IWificond$Stub$Proxy;->createClientInterface(Ljava/lang/String;)Landroid/net/wifi/IClientInterface;
+HSPLandroid/net/wifi/IWificond$Stub$Proxy;->getAvailable2gChannels()[I
+HSPLandroid/net/wifi/IWificond$Stub$Proxy;->getAvailable5gNonDFSChannels()[I
+HSPLandroid/net/wifi/IWificond$Stub$Proxy;->getAvailable6gChannels()[I
+HSPLandroid/net/wifi/IWificond$Stub$Proxy;->getAvailableDFSChannels()[I
+PLandroid/net/wifi/IWificond$Stub$Proxy;->tearDownClientInterface(Ljava/lang/String;)Z
+HSPLandroid/net/wifi/IWificond$Stub$Proxy;->tearDownInterfaces()V
+HSPLandroid/net/wifi/IWificond$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IWificond;
+PLandroid/net/wifi/ParcelUtil;->readCertificates(Landroid/os/Parcel;)[Ljava/security/cert/X509Certificate;
HSPLandroid/net/wifi/ParcelUtil;->readPrivateKey(Landroid/os/Parcel;)Ljava/security/PrivateKey;
+PLandroid/net/wifi/ParcelUtil;->writeCertificates(Landroid/os/Parcel;[Ljava/security/cert/X509Certificate;)V
+PLandroid/net/wifi/ParcelUtil;->writePrivateKey(Landroid/os/Parcel;Ljava/security/PrivateKey;)V
HSPLandroid/net/wifi/ScanResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/ScanResult;
HSPLandroid/net/wifi/ScanResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/wifi/ScanResult$InformationElement;-><init>()V
+HSPLandroid/net/wifi/ScanResult$RadioChainInfo;-><init>()V
+HPLandroid/net/wifi/ScanResult$RadioChainInfo;->toString()Ljava/lang/String;
+HPLandroid/net/wifi/ScanResult;-><init>(Landroid/net/wifi/ScanResult;)V
+HPLandroid/net/wifi/ScanResult;-><init>(Landroid/net/wifi/WifiSsid;Ljava/lang/String;JI[BLjava/lang/String;IIJ)V
HSPLandroid/net/wifi/ScanResult;-><init>(Landroid/net/wifi/WifiSsid;Ljava/lang/String;Ljava/lang/String;JILjava/lang/String;IIJIIIIIZ)V
HSPLandroid/net/wifi/ScanResult;-><init>(Ljava/lang/String;Ljava/lang/String;JILjava/lang/String;IIJIIIIIZ)V
+HSPLandroid/net/wifi/ScanResult;->access$002(Landroid/net/wifi/ScanResult;I)I
+PLandroid/net/wifi/ScanResult;->getWifiStandard()I
+PLandroid/net/wifi/ScanResult;->is24GHz()Z
+PLandroid/net/wifi/ScanResult;->is24GHz(I)Z
+PLandroid/net/wifi/ScanResult;->is5GHz()Z
+PLandroid/net/wifi/ScanResult;->is5GHz(I)Z
+PLandroid/net/wifi/ScanResult;->is80211mcResponder()Z
+PLandroid/net/wifi/ScanResult;->isPasspointNetwork()Z
+PLandroid/net/wifi/ScanResult;->setFlag(J)V
+PLandroid/net/wifi/ScanResult;->setWifiStandard(I)V
+HPLandroid/net/wifi/ScanResult;->toString()Ljava/lang/String;
+HPLandroid/net/wifi/ScanResult;->wifiStandardToString(I)Ljava/lang/String;
+HPLandroid/net/wifi/ScanResult;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/wifi/SoftApConfiguration$1;-><init>()V
+PLandroid/net/wifi/SoftApConfiguration$Builder;-><init>()V
+PLandroid/net/wifi/SoftApConfiguration$Builder;-><init>(Landroid/net/wifi/SoftApConfiguration;)V
+PLandroid/net/wifi/SoftApConfiguration$Builder;->build()Landroid/net/wifi/SoftApConfiguration;
+PLandroid/net/wifi/SoftApConfiguration$Builder;->clearAllPassphrase()V
+PLandroid/net/wifi/SoftApConfiguration$Builder;->setBand(I)Landroid/net/wifi/SoftApConfiguration$Builder;
+PLandroid/net/wifi/SoftApConfiguration$Builder;->setChannel(I)Landroid/net/wifi/SoftApConfiguration$Builder;
+PLandroid/net/wifi/SoftApConfiguration$Builder;->setHiddenSsid(Z)Landroid/net/wifi/SoftApConfiguration$Builder;
+PLandroid/net/wifi/SoftApConfiguration$Builder;->setSecurityType()I
+PLandroid/net/wifi/SoftApConfiguration$Builder;->setSsid(Ljava/lang/String;)Landroid/net/wifi/SoftApConfiguration$Builder;
+PLandroid/net/wifi/SoftApConfiguration$Builder;->setWpa2Passphrase(Ljava/lang/String;)Landroid/net/wifi/SoftApConfiguration$Builder;
+PLandroid/net/wifi/SoftApConfiguration;-><clinit>()V
+PLandroid/net/wifi/SoftApConfiguration;-><init>(Ljava/lang/String;Landroid/net/MacAddress;Ljava/lang/String;ZIII)V
+PLandroid/net/wifi/SoftApConfiguration;-><init>(Ljava/lang/String;Landroid/net/MacAddress;Ljava/lang/String;ZIIILandroid/net/wifi/SoftApConfiguration$1;)V
+PLandroid/net/wifi/SoftApConfiguration;->access$100(Landroid/net/wifi/SoftApConfiguration;)Ljava/lang/String;
+PLandroid/net/wifi/SoftApConfiguration;->access$200(Landroid/net/wifi/SoftApConfiguration;)Landroid/net/MacAddress;
+PLandroid/net/wifi/SoftApConfiguration;->access$300(Landroid/net/wifi/SoftApConfiguration;)Ljava/lang/String;
+PLandroid/net/wifi/SoftApConfiguration;->access$400(Landroid/net/wifi/SoftApConfiguration;)Z
+PLandroid/net/wifi/SoftApConfiguration;->access$500(Landroid/net/wifi/SoftApConfiguration;)I
+PLandroid/net/wifi/SoftApConfiguration;->access$600(Landroid/net/wifi/SoftApConfiguration;)I
+PLandroid/net/wifi/SoftApConfiguration;->getBand()I
+PLandroid/net/wifi/SoftApConfiguration;->getBssid()Landroid/net/MacAddress;
+PLandroid/net/wifi/SoftApConfiguration;->getChannel()I
+PLandroid/net/wifi/SoftApConfiguration;->getSecurityType()I
+PLandroid/net/wifi/SoftApConfiguration;->getSsid()Ljava/lang/String;
+PLandroid/net/wifi/SoftApConfiguration;->getWpa2Passphrase()Ljava/lang/String;
+PLandroid/net/wifi/SoftApConfiguration;->isHiddenSsid()Z
+HSPLandroid/net/wifi/SoftApInfo$1;-><init>()V
+HSPLandroid/net/wifi/SoftApInfo;-><clinit>()V
+HSPLandroid/net/wifi/SoftApInfo;-><init>()V
+HPLandroid/net/wifi/SoftApInfo;->access$002(Landroid/net/wifi/SoftApInfo;I)I
+HPLandroid/net/wifi/SoftApInfo;->access$102(Landroid/net/wifi/SoftApInfo;I)I
+PLandroid/net/wifi/SoftApInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/net/wifi/SupplicantState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/SupplicantState;
HSPLandroid/net/wifi/SupplicantState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/wifi/SupplicantState;->describeContents()I
+PLandroid/net/wifi/SupplicantState;->isConnecting(Landroid/net/wifi/SupplicantState;)Z
+PLandroid/net/wifi/SupplicantState;->isHandshakeState(Landroid/net/wifi/SupplicantState;)Z
HSPLandroid/net/wifi/SupplicantState;->valueOf(Ljava/lang/String;)Landroid/net/wifi/SupplicantState;
+PLandroid/net/wifi/SupplicantState;->values()[Landroid/net/wifi/SupplicantState;
+PLandroid/net/wifi/SupplicantState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/wifi/SynchronousExecutor;-><init>()V
+HPLandroid/net/wifi/SynchronousExecutor;->execute(Ljava/lang/Runnable;)V
+HPLandroid/net/wifi/WifiClient;-><clinit>()V
+HSPLandroid/net/wifi/WifiCondManager$PnoScanEventHandler;-><init>(Landroid/net/wifi/WifiCondManager;Landroid/net/wifi/WifiCondManager$ScanEventCallback;)V
+HSPLandroid/net/wifi/WifiCondManager$ScanEventHandler;-><init>(Landroid/net/wifi/WifiCondManager;Landroid/net/wifi/WifiCondManager$ScanEventCallback;)V
+PLandroid/net/wifi/WifiCondManager$ScanEventHandler;->OnScanFailed()V
+HPLandroid/net/wifi/WifiCondManager$ScanEventHandler;->OnScanResultReady()V
+PLandroid/net/wifi/WifiCondManager$SendMgmtFrameEvent;-><init>(Landroid/net/wifi/WifiCondManager;Landroid/net/wifi/WifiCondManager$SendMgmtFrameCallback;)V
+PLandroid/net/wifi/WifiCondManager$SendMgmtFrameEvent;->OnAck(I)V
+PLandroid/net/wifi/WifiCondManager$SendMgmtFrameEvent;->OnFailure(I)V
+PLandroid/net/wifi/WifiCondManager$SendMgmtFrameEvent;->lambda$OnAck$2$WifiCondManager$SendMgmtFrameEvent(I)V
+PLandroid/net/wifi/WifiCondManager$SendMgmtFrameEvent;->lambda$OnAck$3$WifiCondManager$SendMgmtFrameEvent(I)V
+PLandroid/net/wifi/WifiCondManager$SendMgmtFrameEvent;->lambda$OnFailure$4$WifiCondManager$SendMgmtFrameEvent(I)V
+PLandroid/net/wifi/WifiCondManager$SendMgmtFrameEvent;->lambda$OnFailure$5$WifiCondManager$SendMgmtFrameEvent(I)V
+PLandroid/net/wifi/WifiCondManager$SendMgmtFrameEvent;->runIfFirstCall(Ljava/lang/Runnable;)V
+HPLandroid/net/wifi/WifiCondManager$SignalPollResult;-><init>()V
+HSPLandroid/net/wifi/WifiCondManager;-><init>(Landroid/content/Context;)V
+PLandroid/net/wifi/WifiCondManager;->abortScan(Ljava/lang/String;)V
+PLandroid/net/wifi/WifiCondManager;->access$100(Landroid/net/wifi/WifiCondManager;)Ljava/util/concurrent/atomic/AtomicBoolean;
+PLandroid/net/wifi/WifiCondManager;->access$200(Landroid/net/wifi/WifiCondManager;)Landroid/os/Handler;
+PLandroid/net/wifi/WifiCondManager;->access$300(Landroid/net/wifi/WifiCondManager;)Landroid/app/AlarmManager;
+HSPLandroid/net/wifi/WifiCondManager;->clearState()V
+HSPLandroid/net/wifi/WifiCondManager;->enableVerboseLogging(Z)V
+HSPLandroid/net/wifi/WifiCondManager;->getChannelsForBand(I)[I
+HPLandroid/net/wifi/WifiCondManager;->getClientInterface(Ljava/lang/String;)Landroid/net/wifi/IClientInterface;
+HPLandroid/net/wifi/WifiCondManager;->getScanResults(Ljava/lang/String;I)Ljava/util/List;
+HPLandroid/net/wifi/WifiCondManager;->getScanType(I)I
+HPLandroid/net/wifi/WifiCondManager;->getScannerImpl(Ljava/lang/String;)Landroid/net/wifi/IWifiScannerImpl;
+HSPLandroid/net/wifi/WifiCondManager;->initialize(Ljava/lang/Runnable;)Z
+HSPLandroid/net/wifi/WifiCondManager;->retrieveWificondAndRegisterForDeath()Z
+HPLandroid/net/wifi/WifiCondManager;->scan(Ljava/lang/String;ILjava/util/Set;Ljava/util/List;)Z
+PLandroid/net/wifi/WifiCondManager;->sendMgmtFrame(Ljava/lang/String;[BLandroid/net/wifi/WifiCondManager$SendMgmtFrameCallback;I)V
+HSPLandroid/net/wifi/WifiCondManager;->setupInterfaceForClientMode(Ljava/lang/String;Landroid/net/wifi/WifiCondManager$ScanEventCallback;Landroid/net/wifi/WifiCondManager$ScanEventCallback;)Z
+HPLandroid/net/wifi/WifiCondManager;->signalPoll(Ljava/lang/String;)Landroid/net/wifi/WifiCondManager$SignalPollResult;
+PLandroid/net/wifi/WifiCondManager;->startPnoScan(Ljava/lang/String;Landroid/net/wifi/wificond/PnoSettings;Landroid/net/wifi/WifiCondManager$PnoScanRequestCallback;)Z
+PLandroid/net/wifi/WifiCondManager;->stopPnoScan(Ljava/lang/String;)Z
+PLandroid/net/wifi/WifiCondManager;->tearDownClientInterface(Ljava/lang/String;)Z
+HSPLandroid/net/wifi/WifiCondManager;->tearDownInterfaces()Z
HSPLandroid/net/wifi/WifiConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/WifiConfiguration;
HSPLandroid/net/wifi/WifiConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/wifi/WifiConfiguration$AuthAlgorithm;-><clinit>()V
+PLandroid/net/wifi/WifiConfiguration$GroupCipher;-><clinit>()V
+PLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;-><init>()V
+PLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->clearDisableReasonCounter()V
+PLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->clearDisableReasonCounter(I)V
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->copy(Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;)V
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getCandidate()Landroid/net/wifi/ScanResult;
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getCandidateScore()I
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getConnectChoice()Ljava/lang/String;
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getConnectChoiceTimestamp()J
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getDisableReasonByString(Ljava/lang/String;)I
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getDisableReasonCounter(I)I
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getDisableTime()J
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getHasEverConnected()Z
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getNetworkDisableReasonString()Ljava/lang/String;
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getNetworkDisableReasonString(I)Ljava/lang/String;
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getNetworkSelectionBSSID()Ljava/lang/String;
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getNetworkSelectionDisableReason()I
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getNetworkSelectionStatus()I
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getNetworkStatusString()Ljava/lang/String;
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->getSeenInLastQualifiedNetworkSelection()Z
+PLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->incrementDisableReasonCounter(I)V
+PLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->isNetworkEnabled()Z
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->isNetworkPermanentlyDisabled()Z
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->isNetworkTemporaryDisabled()Z
HSPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setCandidate(Landroid/net/wifi/ScanResult;)V
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setCandidateScore(I)V
HSPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setConnectChoice(Ljava/lang/String;)V
HSPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setConnectChoiceTimestamp(J)V
HSPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setDisableReasonCounter(II)V
@@ -4893,19 +15970,87 @@ HSPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setHasEverConnec
HSPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setNetworkSelectionBSSID(Ljava/lang/String;)V
HSPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setNetworkSelectionDisableReason(I)V
HSPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setNetworkSelectionStatus(I)V
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->setSeenInLastQualifiedNetworkSelection(Z)V
+HPLandroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->writeToParcel(Landroid/os/Parcel;)V
+PLandroid/net/wifi/WifiConfiguration$PairwiseCipher;-><clinit>()V
+PLandroid/net/wifi/WifiConfiguration$Protocol;-><clinit>()V
+HPLandroid/net/wifi/WifiConfiguration$RecentFailure;-><init>()V
+PLandroid/net/wifi/WifiConfiguration$RecentFailure;-><init>(Landroid/net/wifi/WifiConfiguration$1;)V
+PLandroid/net/wifi/WifiConfiguration$RecentFailure;->clear()V
+HPLandroid/net/wifi/WifiConfiguration$RecentFailure;->getAssociationStatus()I
HSPLandroid/net/wifi/WifiConfiguration$RecentFailure;->setAssociationStatus(I)V
HSPLandroid/net/wifi/WifiConfiguration;-><init>()V
-HSPLandroid/net/wifi/WifiConfiguration;->isPasspoint()Z
+HPLandroid/net/wifi/WifiConfiguration;-><init>(Landroid/net/wifi/WifiConfiguration;)V
+PLandroid/net/wifi/WifiConfiguration;->access$300(Landroid/net/wifi/WifiConfiguration;)Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;
+PLandroid/net/wifi/WifiConfiguration;->access$400(Landroid/os/Parcel;)Ljava/util/BitSet;
+PLandroid/net/wifi/WifiConfiguration;->access$502(Landroid/net/wifi/WifiConfiguration;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/net/wifi/WifiConfiguration;->access$602(Landroid/net/wifi/WifiConfiguration;Landroid/net/MacAddress;)Landroid/net/MacAddress;
+PLandroid/net/wifi/WifiConfiguration;->describeContents()I
+PLandroid/net/wifi/WifiConfiguration;->getHttpProxy()Landroid/net/ProxyInfo;
+PLandroid/net/wifi/WifiConfiguration;->getIpAssignment()Landroid/net/IpConfiguration$IpAssignment;
+PLandroid/net/wifi/WifiConfiguration;->getIpConfiguration()Landroid/net/IpConfiguration;
+HPLandroid/net/wifi/WifiConfiguration;->getKey()Ljava/lang/String;
+HPLandroid/net/wifi/WifiConfiguration;->getNetworkSelectionStatus()Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;
+PLandroid/net/wifi/WifiConfiguration;->getPrintableSsid()Ljava/lang/String;
+PLandroid/net/wifi/WifiConfiguration;->getProxySettings()Landroid/net/IpConfiguration$ProxySettings;
+PLandroid/net/wifi/WifiConfiguration;->getRandomizedMacAddress()Landroid/net/MacAddress;
+HPLandroid/net/wifi/WifiConfiguration;->getSsidAndSecurityTypeString()Ljava/lang/String;
+PLandroid/net/wifi/WifiConfiguration;->hasNoInternetAccess()Z
+HPLandroid/net/wifi/WifiConfiguration;->isEnterprise()Z
+PLandroid/net/wifi/WifiConfiguration;->isEphemeral()Z
+PLandroid/net/wifi/WifiConfiguration;->isMetered(Landroid/net/wifi/WifiConfiguration;Landroid/net/wifi/WifiInfo;)Z
+PLandroid/net/wifi/WifiConfiguration;->isOpenNetwork()Z
+HPLandroid/net/wifi/WifiConfiguration;->isPasspoint()Z
+PLandroid/net/wifi/WifiConfiguration;->isValidMacAddressForRandomization(Landroid/net/MacAddress;)Z
+PLandroid/net/wifi/WifiConfiguration;->logTimeOfDay(J)Ljava/lang/String;
+PLandroid/net/wifi/WifiConfiguration;->readBitSet(Landroid/os/Parcel;)Ljava/util/BitSet;
+PLandroid/net/wifi/WifiConfiguration;->setIpAssignment(Landroid/net/IpConfiguration$IpAssignment;)V
+PLandroid/net/wifi/WifiConfiguration;->setIpConfiguration(Landroid/net/IpConfiguration;)V
+PLandroid/net/wifi/WifiConfiguration;->setNetworkSelectionStatus(Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;)V
+PLandroid/net/wifi/WifiConfiguration;->setProxySettings(Landroid/net/IpConfiguration$ProxySettings;)V
+PLandroid/net/wifi/WifiConfiguration;->setRandomizedMacAddress(Landroid/net/MacAddress;)V
+HPLandroid/net/wifi/WifiConfiguration;->toString()Ljava/lang/String;
+PLandroid/net/wifi/WifiConfiguration;->writeBitSet(Landroid/os/Parcel;Ljava/util/BitSet;)V
+HPLandroid/net/wifi/WifiConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/net/wifi/WifiEnterpriseConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/WifiEnterpriseConfig;
HSPLandroid/net/wifi/WifiEnterpriseConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/wifi/WifiEnterpriseConfig;-><init>()V
+HPLandroid/net/wifi/WifiEnterpriseConfig;-><init>(Landroid/net/wifi/WifiEnterpriseConfig;)V
+PLandroid/net/wifi/WifiEnterpriseConfig;->access$102(Landroid/net/wifi/WifiEnterpriseConfig;I)I
+PLandroid/net/wifi/WifiEnterpriseConfig;->access$202(Landroid/net/wifi/WifiEnterpriseConfig;I)I
+PLandroid/net/wifi/WifiEnterpriseConfig;->access$302(Landroid/net/wifi/WifiEnterpriseConfig;[Ljava/security/cert/X509Certificate;)[Ljava/security/cert/X509Certificate;
+PLandroid/net/wifi/WifiEnterpriseConfig;->access$402(Landroid/net/wifi/WifiEnterpriseConfig;Ljava/security/PrivateKey;)Ljava/security/PrivateKey;
+PLandroid/net/wifi/WifiEnterpriseConfig;->access$502(Landroid/net/wifi/WifiEnterpriseConfig;[Ljava/security/cert/X509Certificate;)[Ljava/security/cert/X509Certificate;
+PLandroid/net/wifi/WifiEnterpriseConfig;->access$602(Landroid/net/wifi/WifiEnterpriseConfig;Z)Z
+PLandroid/net/wifi/WifiEnterpriseConfig;->access$702(Landroid/net/wifi/WifiEnterpriseConfig;Z)Z
+PLandroid/net/wifi/WifiEnterpriseConfig;->access$802(Landroid/net/wifi/WifiEnterpriseConfig;I)I
+PLandroid/net/wifi/WifiEnterpriseConfig;->convertToQuotedString(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/net/wifi/WifiEnterpriseConfig;->copyFrom(Landroid/net/wifi/WifiEnterpriseConfig;ZLjava/lang/String;)V
+PLandroid/net/wifi/WifiEnterpriseConfig;->copyFromExternal(Landroid/net/wifi/WifiEnterpriseConfig;Ljava/lang/String;)V
+PLandroid/net/wifi/WifiEnterpriseConfig;->getAnonymousIdentity()Ljava/lang/String;
+PLandroid/net/wifi/WifiEnterpriseConfig;->getCaCertificates()[Ljava/security/cert/X509Certificate;
+PLandroid/net/wifi/WifiEnterpriseConfig;->getEapMethod()I
+HPLandroid/net/wifi/WifiEnterpriseConfig;->getFieldValue(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/net/wifi/WifiEnterpriseConfig;->getFieldValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/net/wifi/WifiEnterpriseConfig;->getIdentity()Ljava/lang/String;
+HPLandroid/net/wifi/WifiEnterpriseConfig;->getPassword()Ljava/lang/String;
+PLandroid/net/wifi/WifiEnterpriseConfig;->getPhase2Method()I
+PLandroid/net/wifi/WifiEnterpriseConfig;->requireSimCredential()Z
+HPLandroid/net/wifi/WifiEnterpriseConfig;->toString()Ljava/lang/String;
+HPLandroid/net/wifi/WifiEnterpriseConfig;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/net/wifi/WifiFrameworkInitializer$NoPreloadHolder;-><clinit>()V
HSPLandroid/net/wifi/WifiFrameworkInitializer$NoPreloadHolder;->access$000()Landroid/os/HandlerThread;
HSPLandroid/net/wifi/WifiFrameworkInitializer$NoPreloadHolder;->createInstance()Landroid/os/HandlerThread;
HSPLandroid/net/wifi/WifiFrameworkInitializer;->getInstanceLooper()Landroid/os/Looper;
HSPLandroid/net/wifi/WifiFrameworkInitializer;->lambda$registerServiceWrappers$0(Landroid/content/Context;Landroid/os/IBinder;)Landroid/net/wifi/WifiManager;
+HSPLandroid/net/wifi/WifiFrameworkInitializer;->lambda$registerServiceWrappers$1(Landroid/os/IBinder;)Landroid/net/wifi/p2p/WifiP2pManager;
+HSPLandroid/net/wifi/WifiFrameworkInitializer;->lambda$registerServiceWrappers$2(Landroid/content/Context;Landroid/os/IBinder;)Landroid/net/wifi/aware/WifiAwareManager;
+PLandroid/net/wifi/WifiFrameworkInitializer;->lambda$registerServiceWrappers$3(Landroid/content/Context;Landroid/os/IBinder;)Landroid/net/wifi/WifiScanner;
+HSPLandroid/net/wifi/WifiFrameworkInitializer;->lambda$registerServiceWrappers$5(Landroid/content/Context;Landroid/os/IBinder;)Landroid/net/wifi/rtt/WifiRttManager;
HSPLandroid/net/wifi/WifiInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/WifiInfo;
HSPLandroid/net/wifi/WifiInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/net/wifi/WifiInfo;-><init>()V
+HPLandroid/net/wifi/WifiInfo;-><init>(Landroid/net/wifi/WifiInfo;)V
HSPLandroid/net/wifi/WifiInfo;->access$002(Landroid/net/wifi/WifiInfo;Landroid/net/wifi/WifiSsid;)Landroid/net/wifi/WifiSsid;
HSPLandroid/net/wifi/WifiInfo;->access$1002(Landroid/net/wifi/WifiInfo;Landroid/net/wifi/SupplicantState;)Landroid/net/wifi/SupplicantState;
HSPLandroid/net/wifi/WifiInfo;->access$102(Landroid/net/wifi/WifiInfo;Ljava/lang/String;)Ljava/lang/String;
@@ -4923,51 +16068,363 @@ HSPLandroid/net/wifi/WifiInfo;->access$702(Landroid/net/wifi/WifiInfo;D)D
HSPLandroid/net/wifi/WifiInfo;->access$802(Landroid/net/wifi/WifiInfo;D)D
HSPLandroid/net/wifi/WifiInfo;->access$902(Landroid/net/wifi/WifiInfo;D)D
HSPLandroid/net/wifi/WifiInfo;->getBSSID()Ljava/lang/String;
+PLandroid/net/wifi/WifiInfo;->getDetailedStateOf(Landroid/net/wifi/SupplicantState;)Landroid/net/NetworkInfo$DetailedState;
+HSPLandroid/net/wifi/WifiInfo;->getFrequency()I
+HPLandroid/net/wifi/WifiInfo;->getHiddenSSID()Z
+HSPLandroid/net/wifi/WifiInfo;->getIpAddress()I
+HSPLandroid/net/wifi/WifiInfo;->getLinkSpeed()I
+PLandroid/net/wifi/WifiInfo;->getMacAddress()Ljava/lang/String;
+PLandroid/net/wifi/WifiInfo;->getMeteredHint()Z
HSPLandroid/net/wifi/WifiInfo;->getNetworkId()I
HSPLandroid/net/wifi/WifiInfo;->getRssi()I
+HSPLandroid/net/wifi/WifiInfo;->getRxLinkSpeedMbps()I
+PLandroid/net/wifi/WifiInfo;->getRxSuccessRate()D
HSPLandroid/net/wifi/WifiInfo;->getSSID()Ljava/lang/String;
-HSPLandroid/net/wifi/WifiInfo;->isOsuAp()Z
-HSPLandroid/net/wifi/WifiInfo;->isPasspointAp()Z
+PLandroid/net/wifi/WifiInfo;->getScore()I
+PLandroid/net/wifi/WifiInfo;->getSupplicantState()Landroid/net/wifi/SupplicantState;
+PLandroid/net/wifi/WifiInfo;->getTxBadRate()D
+HSPLandroid/net/wifi/WifiInfo;->getTxLinkSpeedMbps()I
+PLandroid/net/wifi/WifiInfo;->getTxRetriesRate()D
+PLandroid/net/wifi/WifiInfo;->getTxSuccessRate()D
+PLandroid/net/wifi/WifiInfo;->getWifiSsid()Landroid/net/wifi/WifiSsid;
+PLandroid/net/wifi/WifiInfo;->is24GHz()Z
+PLandroid/net/wifi/WifiInfo;->isEphemeral()Z
+HPLandroid/net/wifi/WifiInfo;->isOsuAp()Z
+HPLandroid/net/wifi/WifiInfo;->isPasspointAp()Z
+PLandroid/net/wifi/WifiInfo;->isTrusted()Z
+PLandroid/net/wifi/WifiInfo;->removeDoubleQuotes(Ljava/lang/String;)Ljava/lang/String;
+PLandroid/net/wifi/WifiInfo;->reset()V
+PLandroid/net/wifi/WifiInfo;->setAppPackageName(Ljava/lang/String;)V
+PLandroid/net/wifi/WifiInfo;->setBSSID(Ljava/lang/String;)V
+PLandroid/net/wifi/WifiInfo;->setEphemeral(Z)V
+PLandroid/net/wifi/WifiInfo;->setFQDN(Ljava/lang/String;)V
HSPLandroid/net/wifi/WifiInfo;->setFrequency(I)V
-PLandroid/net/wifi/WifiInfo;->setInetAddress(Ljava/net/InetAddress;)V
+HSPLandroid/net/wifi/WifiInfo;->setInetAddress(Ljava/net/InetAddress;)V
HSPLandroid/net/wifi/WifiInfo;->setLinkSpeed(I)V
+PLandroid/net/wifi/WifiInfo;->setMacAddress(Ljava/lang/String;)V
+PLandroid/net/wifi/WifiInfo;->setMeteredHint(Z)V
HSPLandroid/net/wifi/WifiInfo;->setNetworkId(I)V
+PLandroid/net/wifi/WifiInfo;->setOsuAp(Z)V
+PLandroid/net/wifi/WifiInfo;->setProviderFriendlyName(Ljava/lang/String;)V
HSPLandroid/net/wifi/WifiInfo;->setRssi(I)V
HSPLandroid/net/wifi/WifiInfo;->setRxLinkSpeedMbps(I)V
+PLandroid/net/wifi/WifiInfo;->setRxSuccessRate(D)V
+PLandroid/net/wifi/WifiInfo;->setSSID(Landroid/net/wifi/WifiSsid;)V
+PLandroid/net/wifi/WifiInfo;->setScore(I)V
+PLandroid/net/wifi/WifiInfo;->setSupplicantState(Landroid/net/wifi/SupplicantState;)V
+PLandroid/net/wifi/WifiInfo;->setTrusted(Z)V
+PLandroid/net/wifi/WifiInfo;->setTxBadRate(D)V
HSPLandroid/net/wifi/WifiInfo;->setTxLinkSpeedMbps(I)V
+PLandroid/net/wifi/WifiInfo;->setTxRetriesRate(D)V
+PLandroid/net/wifi/WifiInfo;->setTxSuccessRate(D)V
+PLandroid/net/wifi/WifiInfo;->setWifiStandard(I)V
+PLandroid/net/wifi/WifiInfo;->toString()Ljava/lang/String;
+HPLandroid/net/wifi/WifiInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/net/wifi/WifiManager$MulticastLock;->acquire()V
+HPLandroid/net/wifi/WifiManager$MulticastLock;->release()V
+HPLandroid/net/wifi/WifiManager$MulticastLock;->setReferenceCounted(Z)V
+HPLandroid/net/wifi/WifiManager$OnWifiActivityEnergyInfoProxy;-><init>(Ljava/util/concurrent/Executor;Landroid/net/wifi/WifiManager$OnWifiActivityEnergyInfoListener;)V
+HPLandroid/net/wifi/WifiManager$OnWifiActivityEnergyInfoProxy;->lambda$onWifiActivityEnergyInfo$0(Landroid/net/wifi/WifiManager$OnWifiActivityEnergyInfoListener;Landroid/os/connectivity/WifiActivityEnergyInfo;)V
+HPLandroid/net/wifi/WifiManager$OnWifiActivityEnergyInfoProxy;->onWifiActivityEnergyInfo(Landroid/os/connectivity/WifiActivityEnergyInfo;)V
+HPLandroid/net/wifi/WifiManager$SoftApCallback;->onInfoChanged(Landroid/net/wifi/SoftApInfo;)V
+HPLandroid/net/wifi/WifiManager$TrafficStateCallbackProxy;->lambda$onStateChanged$0$WifiManager$TrafficStateCallbackProxy(I)V
+HPLandroid/net/wifi/WifiManager$TrafficStateCallbackProxy;->onStateChanged(I)V
+HSPLandroid/net/wifi/WifiManager$WifiLock;-><init>(Landroid/net/wifi/WifiManager;ILjava/lang/String;)V
+HSPLandroid/net/wifi/WifiManager$WifiLock;-><init>(Landroid/net/wifi/WifiManager;ILjava/lang/String;Landroid/net/wifi/WifiManager$1;)V
+HSPLandroid/net/wifi/WifiManager$WifiLock;->acquire()V
+HSPLandroid/net/wifi/WifiManager$WifiLock;->finalize()V
+HPLandroid/net/wifi/WifiManager$WifiLock;->isHeld()Z
+HSPLandroid/net/wifi/WifiManager$WifiLock;->release()V
HSPLandroid/net/wifi/WifiManager$WifiLock;->setReferenceCounted(Z)V
HSPLandroid/net/wifi/WifiManager;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiManager;Landroid/os/Looper;)V
+HPLandroid/net/wifi/WifiManager;->access$000(Landroid/net/wifi/WifiManager;)Z
+HPLandroid/net/wifi/WifiManager;->access$300(Landroid/net/wifi/WifiManager;)I
+HPLandroid/net/wifi/WifiManager;->access$308(Landroid/net/wifi/WifiManager;)I
+HPLandroid/net/wifi/WifiManager;->access$310(Landroid/net/wifi/WifiManager;)I
+HPLandroid/net/wifi/WifiManager;->addOnWifiUsabilityStatsListener(Ljava/util/concurrent/Executor;Landroid/net/wifi/WifiManager$OnWifiUsabilityStatsListener;)V
+HPLandroid/net/wifi/WifiManager;->calculateSignalLevel(I)I
HSPLandroid/net/wifi/WifiManager;->calculateSignalLevel(II)I
+HPLandroid/net/wifi/WifiManager;->createMulticastLock(Ljava/lang/String;)Landroid/net/wifi/WifiManager$MulticastLock;
HSPLandroid/net/wifi/WifiManager;->createWifiLock(ILjava/lang/String;)Landroid/net/wifi/WifiManager$WifiLock;
+HSPLandroid/net/wifi/WifiManager;->createWifiLock(Ljava/lang/String;)Landroid/net/wifi/WifiManager$WifiLock;
HSPLandroid/net/wifi/WifiManager;->getConfiguredNetworks()Ljava/util/List;
HSPLandroid/net/wifi/WifiManager;->getConnectionInfo()Landroid/net/wifi/WifiInfo;
-HSPLandroid/net/wifi/WifiManager;->getCurrentNetwork()Landroid/net/Network;
+HPLandroid/net/wifi/WifiManager;->getCurrentNetwork()Landroid/net/Network;
+HPLandroid/net/wifi/WifiManager;->getDhcpInfo()Landroid/net/DhcpInfo;
+HPLandroid/net/wifi/WifiManager;->getPrivilegedConfiguredNetworks()Ljava/util/List;
HSPLandroid/net/wifi/WifiManager;->getScanResults()Ljava/util/List;
HSPLandroid/net/wifi/WifiManager;->getSupportedFeatures()J
HSPLandroid/net/wifi/WifiManager;->getVerboseLoggingLevel()I
+HPLandroid/net/wifi/WifiManager;->getWifiActivityEnergyInfoAsync(Ljava/util/concurrent/Executor;Landroid/net/wifi/WifiManager$OnWifiActivityEnergyInfoListener;)V
+PLandroid/net/wifi/WifiManager;->getWifiApConfiguration()Landroid/net/wifi/WifiConfiguration;
HSPLandroid/net/wifi/WifiManager;->getWifiApState()I
HSPLandroid/net/wifi/WifiManager;->getWifiState()I
+HSPLandroid/net/wifi/WifiManager;->isDualModeSupported()Z
+HSPLandroid/net/wifi/WifiManager;->isEnhancedPowerReportingSupported()Z
+HSPLandroid/net/wifi/WifiManager;->isFeatureSupported(J)Z
HSPLandroid/net/wifi/WifiManager;->isScanAlwaysAvailable()Z
+HSPLandroid/net/wifi/WifiManager;->isWifiApEnabled()Z
HSPLandroid/net/wifi/WifiManager;->isWifiEnabled()Z
-HSPLandroid/net/wifi/WifiManager;->startScan()Z
-HSPLandroid/net/wifi/WifiManager;->startScan(Landroid/os/WorkSource;)Z
+PLandroid/net/wifi/WifiManager;->retrieveBackupData()[B
+PLandroid/net/wifi/WifiManager;->retrieveSoftApBackupData()[B
+HPLandroid/net/wifi/WifiManager;->setDeviceMobilityState(I)V
+HPLandroid/net/wifi/WifiManager;->setWifiEnabled(Z)Z
+PLandroid/net/wifi/WifiManager;->startScan()Z
+PLandroid/net/wifi/WifiManager;->startScan(Landroid/os/WorkSource;)Z
+PLandroid/net/wifi/WifiManager;->updateInterfaceIpState(Ljava/lang/String;I)V
HSPLandroid/net/wifi/WifiManager;->updateVerboseLoggingEnabledFromService()V
+HPLandroid/net/wifi/WifiManager;->updateWifiUsabilityScore(III)V
+HPLandroid/net/wifi/WifiNetworkAgentSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/WifiNetworkAgentSpecifier;
+HPLandroid/net/wifi/WifiNetworkAgentSpecifier$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/wifi/WifiNetworkAgentSpecifier;-><init>(Landroid/net/wifi/WifiConfiguration;ILjava/lang/String;)V
+PLandroid/net/wifi/WifiNetworkAgentSpecifier;->equals(Ljava/lang/Object;)Z
+HPLandroid/net/wifi/WifiNetworkAgentSpecifier;->redact()Landroid/net/NetworkSpecifier;
+PLandroid/net/wifi/WifiNetworkAgentSpecifier;->satisfiedBy(Landroid/net/NetworkSpecifier;)Z
+PLandroid/net/wifi/WifiNetworkAgentSpecifier;->toString()Ljava/lang/String;
+HPLandroid/net/wifi/WifiNetworkAgentSpecifier;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/net/wifi/WifiNetworkScoreCache$CacheListener$1;->run()V
+HSPLandroid/net/wifi/WifiNetworkScoreCache$CacheListener;-><init>(Landroid/os/Handler;)V
+HPLandroid/net/wifi/WifiNetworkScoreCache$CacheListener;->post(Ljava/util/List;)V
HSPLandroid/net/wifi/WifiNetworkScoreCache;-><init>(Landroid/content/Context;)V
-HSPLandroid/net/wifi/WifiNetworkScoreCache;->buildNetworkKey(Landroid/net/NetworkKey;)Ljava/lang/String;
-HSPLandroid/net/wifi/WifiNetworkScoreCache;->getScoredNetwork(Landroid/net/NetworkKey;)Landroid/net/ScoredNetwork;
-HSPLandroid/net/wifi/WifiNetworkScoreCache;->updateScores(Ljava/util/List;)V
+HPLandroid/net/wifi/WifiNetworkScoreCache;->buildNetworkKey(Landroid/net/NetworkKey;)Ljava/lang/String;
+HPLandroid/net/wifi/WifiNetworkScoreCache;->clearScores()V
+HPLandroid/net/wifi/WifiNetworkScoreCache;->getScoredNetwork(Landroid/net/NetworkKey;)Landroid/net/ScoredNetwork;
+HPLandroid/net/wifi/WifiNetworkScoreCache;->updateScores(Ljava/util/List;)V
+HSPLandroid/net/wifi/WifiScanner$ChannelSpec;-><init>(I)V
+HPLandroid/net/wifi/WifiScanner$ListenerWithExecutor;-><init>(Ljava/lang/Object;Ljava/util/concurrent/Executor;)V
+HPLandroid/net/wifi/WifiScanner$OperationResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/WifiScanner$OperationResult;
+HPLandroid/net/wifi/WifiScanner$OperationResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/wifi/WifiScanner$OperationResult;-><init>(ILjava/lang/String;)V
+PLandroid/net/wifi/WifiScanner$OperationResult;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/wifi/WifiScanner$ParcelableScanData$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/WifiScanner$ParcelableScanData;
+PLandroid/net/wifi/WifiScanner$ParcelableScanData$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/wifi/WifiScanner$ParcelableScanData;-><init>([Landroid/net/wifi/WifiScanner$ScanData;)V
+PLandroid/net/wifi/WifiScanner$ParcelableScanData;->getResults()[Landroid/net/wifi/WifiScanner$ScanData;
+PLandroid/net/wifi/WifiScanner$ParcelableScanData;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/wifi/WifiScanner$ParcelableScanResults;-><init>([Landroid/net/wifi/ScanResult;)V
+PLandroid/net/wifi/WifiScanner$ParcelableScanResults;->getResults()[Landroid/net/wifi/ScanResult;
+PLandroid/net/wifi/WifiScanner$PnoSettings$1;-><init>()V
+PLandroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;-><init>(Ljava/lang/String;)V
+PLandroid/net/wifi/WifiScanner$PnoSettings;-><clinit>()V
+PLandroid/net/wifi/WifiScanner$PnoSettings;-><init>()V
+HPLandroid/net/wifi/WifiScanner$ScanData$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/WifiScanner$ScanData;
+PLandroid/net/wifi/WifiScanner$ScanData$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/net/wifi/WifiScanner$ScanData;-><init>(IIIILjava/util/List;)V
+HPLandroid/net/wifi/WifiScanner$ScanData;-><init>(IIII[Landroid/net/wifi/ScanResult;)V
+HSPLandroid/net/wifi/WifiScanner$ScanData;-><init>(II[Landroid/net/wifi/ScanResult;)V
+HPLandroid/net/wifi/WifiScanner$ScanData;-><init>(Landroid/net/wifi/WifiScanner$ScanData;)V
+PLandroid/net/wifi/WifiScanner$ScanData;->getBandScanned()I
+PLandroid/net/wifi/WifiScanner$ScanData;->getBucketsScanned()I
+PLandroid/net/wifi/WifiScanner$ScanData;->getFlags()I
+PLandroid/net/wifi/WifiScanner$ScanData;->getId()I
+HPLandroid/net/wifi/WifiScanner$ScanData;->getResults()[Landroid/net/wifi/ScanResult;
+HPLandroid/net/wifi/WifiScanner$ScanData;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/wifi/WifiScanner$ScanSettings$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/WifiScanner$ScanSettings;
+PLandroid/net/wifi/WifiScanner$ScanSettings$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/wifi/WifiScanner$ScanSettings$HiddenNetwork;-><init>(Ljava/lang/String;)V
+HSPLandroid/net/wifi/WifiScanner$ScanSettings;-><init>()V
+PLandroid/net/wifi/WifiScanner$ScanSettings;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/wifi/WifiScanner$ServiceHandler;-><init>(Landroid/net/wifi/WifiScanner;Landroid/os/Looper;)V
+HPLandroid/net/wifi/WifiScanner$ServiceHandler;->handleMessage(Landroid/os/Message;)V
+PLandroid/net/wifi/WifiScanner$ServiceHandler;->lambda$handleMessage$0(Landroid/net/wifi/WifiScanner$ActionListener;Landroid/net/wifi/WifiScanner$OperationResult;)V
+HPLandroid/net/wifi/WifiScanner$ServiceHandler;->lambda$handleMessage$1(Landroid/net/wifi/WifiScanner$ScanListener;Landroid/net/wifi/WifiScanner$ParcelableScanData;)V
+HPLandroid/net/wifi/WifiScanner$ServiceHandler;->lambda$handleMessage$2(Landroid/net/wifi/WifiScanner$ScanListener;Landroid/net/wifi/ScanResult;)V
+HSPLandroid/net/wifi/WifiScanner;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiScanner;Landroid/os/Looper;)V
+PLandroid/net/wifi/WifiScanner;->access$100(Landroid/net/wifi/WifiScanner;I)Landroid/net/wifi/WifiScanner$ListenerWithExecutor;
+PLandroid/net/wifi/WifiScanner;->access$200(Landroid/net/wifi/WifiScanner;I)Ljava/lang/Object;
+PLandroid/net/wifi/WifiScanner;->addListener(Landroid/net/wifi/WifiScanner$ActionListener;)I
+HSPLandroid/net/wifi/WifiScanner;->addListener(Landroid/net/wifi/WifiScanner$ActionListener;Ljava/util/concurrent/Executor;)I
+HSPLandroid/net/wifi/WifiScanner;->getListenerKey(Ljava/lang/Object;)I
+HPLandroid/net/wifi/WifiScanner;->getListenerWithExecutor(I)Landroid/net/wifi/WifiScanner$ListenerWithExecutor;
+PLandroid/net/wifi/WifiScanner;->getSingleScanResults()Ljava/util/List;
+HSPLandroid/net/wifi/WifiScanner;->putListener(Ljava/lang/Object;)I
+HSPLandroid/net/wifi/WifiScanner;->registerScanListener(Landroid/net/wifi/WifiScanner$ScanListener;)V
+HSPLandroid/net/wifi/WifiScanner;->registerScanListener(Ljava/util/concurrent/Executor;Landroid/net/wifi/WifiScanner$ScanListener;)V
+PLandroid/net/wifi/WifiScanner;->removeListener(I)Ljava/lang/Object;
+HSPLandroid/net/wifi/WifiScanner;->removeListener(Ljava/lang/Object;)I
+HSPLandroid/net/wifi/WifiScanner;->setScanningEnabled(Z)V
+PLandroid/net/wifi/WifiScanner;->startDisconnectedPnoScan(Landroid/net/wifi/WifiScanner$ScanSettings;Landroid/net/wifi/WifiScanner$PnoSettings;Landroid/net/wifi/WifiScanner$PnoScanListener;)V
+PLandroid/net/wifi/WifiScanner;->startPnoScan(Landroid/net/wifi/WifiScanner$ScanSettings;Landroid/net/wifi/WifiScanner$PnoSettings;I)V
+HPLandroid/net/wifi/WifiScanner;->startScan(Landroid/net/wifi/WifiScanner$ScanSettings;Landroid/net/wifi/WifiScanner$ScanListener;)V
+PLandroid/net/wifi/WifiScanner;->startScan(Landroid/net/wifi/WifiScanner$ScanSettings;Landroid/net/wifi/WifiScanner$ScanListener;Landroid/os/WorkSource;)V
+PLandroid/net/wifi/WifiScanner;->stopPnoScan(Landroid/net/wifi/WifiScanner$ScanListener;)V
+HSPLandroid/net/wifi/WifiScanner;->unregisterScanListener(Landroid/net/wifi/WifiScanner$ScanListener;)V
+HSPLandroid/net/wifi/WifiScanner;->validateChannel()V
HSPLandroid/net/wifi/WifiSsid$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/WifiSsid;
HSPLandroid/net/wifi/WifiSsid$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/net/wifi/WifiSsid;-><init>()V
HSPLandroid/net/wifi/WifiSsid;-><init>(Landroid/net/wifi/WifiSsid$1;)V
+PLandroid/net/wifi/WifiSsid;->createFromByteArray([B)Landroid/net/wifi/WifiSsid;
+HPLandroid/net/wifi/WifiSsid;->createFromHex(Ljava/lang/String;)Landroid/net/wifi/WifiSsid;
HSPLandroid/net/wifi/WifiSsid;->getHexString()Ljava/lang/String;
-PLandroid/net/wifi/WifiSsid;->isArrayAllZeroes([B)Z
+HSPLandroid/net/wifi/WifiSsid;->isArrayAllZeroes([B)Z
+HPLandroid/net/wifi/WifiSsid;->isHidden()Z
HSPLandroid/net/wifi/WifiSsid;->toString()Ljava/lang/String;
+PLandroid/net/wifi/WifiSsid;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/wifi/WifiUsabilityStatsEntry$1;-><init>()V
+HPLandroid/net/wifi/WifiUsabilityStatsEntry$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/WifiUsabilityStatsEntry;
+HPLandroid/net/wifi/WifiUsabilityStatsEntry$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/wifi/WifiUsabilityStatsEntry;-><clinit>()V
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;-><init>(JIIJJJJJJJJJJJJJJJJIIIIIIIZ)V
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getLinkSpeedMbps()I
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getRssi()I
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getTimeStampMillis()J
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getTotalCcaBusyFreqTimeMillis()J
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getTotalRadioOnFreqTimeMillis()J
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getTotalRadioOnTimeMillis()J
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getTotalRadioRxTimeMillis()J
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getTotalRadioTxTimeMillis()J
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getTotalRoamScanTimeMillis()J
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getTotalRxSuccess()J
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getTotalScanTimeMillis()J
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getTotalTxBad()J
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getTotalTxRetries()J
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->getTotalTxSuccess()J
+HPLandroid/net/wifi/WifiUsabilityStatsEntry;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/net/wifi/WpsInfo;-><init>()V
+PLandroid/net/wifi/WpsInfo;->toString()Ljava/lang/String;
+HSPLandroid/net/wifi/aware/IWifiAwareManager$Stub;-><init>()V
+HSPLandroid/net/wifi/aware/IWifiAwareManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/aware/IWifiAwareManager;
+PLandroid/net/wifi/aware/IWifiAwareManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/wifi/aware/WifiAwareManager;-><init>(Landroid/content/Context;Landroid/net/wifi/aware/IWifiAwareManager;)V
+HSPLandroid/net/wifi/p2p/IWifiP2pManager$Stub;-><init>()V
+HSPLandroid/net/wifi/p2p/IWifiP2pManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/p2p/IWifiP2pManager;
+PLandroid/net/wifi/p2p/IWifiP2pManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/wifi/p2p/WifiP2pConfig;-><init>()V
+PLandroid/net/wifi/p2p/WifiP2pConfig;->toString()Ljava/lang/String;
+HSPLandroid/net/wifi/p2p/WifiP2pDevice$1;-><init>()V
+HSPLandroid/net/wifi/p2p/WifiP2pDevice;-><clinit>()V
+HSPLandroid/net/wifi/p2p/WifiP2pDevice;-><init>()V
+HSPLandroid/net/wifi/p2p/WifiP2pDeviceList;-><init>()V
+HSPLandroid/net/wifi/p2p/WifiP2pGroupList$1;-><init>(Landroid/net/wifi/p2p/WifiP2pGroupList;I)V
+HSPLandroid/net/wifi/p2p/WifiP2pGroupList;-><init>(Landroid/net/wifi/p2p/WifiP2pGroupList;Landroid/net/wifi/p2p/WifiP2pGroupList$GroupDeleteListener;)V
+PLandroid/net/wifi/p2p/WifiP2pGroupList;->toString()Ljava/lang/String;
+HSPLandroid/net/wifi/p2p/WifiP2pInfo;-><init>()V
+PLandroid/net/wifi/p2p/WifiP2pInfo;->toString()Ljava/lang/String;
+HSPLandroid/net/wifi/p2p/WifiP2pManager;-><init>(Landroid/net/wifi/p2p/IWifiP2pManager;)V
+PLandroid/net/wifi/p2p/WifiP2pManager;->getP2pStateMachineMessenger()Landroid/os/Messenger;
+HSPLandroid/net/wifi/rtt/IWifiRttManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/wifi/rtt/IWifiRttManager$Stub$Proxy;->isAvailable()Z
+HSPLandroid/net/wifi/rtt/IWifiRttManager$Stub;-><init>()V
+HSPLandroid/net/wifi/rtt/IWifiRttManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/rtt/IWifiRttManager;
+PLandroid/net/wifi/rtt/IWifiRttManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/net/wifi/rtt/RangingRequest;->getMaxPeers()I
+HSPLandroid/net/wifi/rtt/WifiRttManager;-><init>(Landroid/content/Context;Landroid/net/wifi/rtt/IWifiRttManager;)V
+HSPLandroid/net/wifi/rtt/WifiRttManager;->isAvailable()Z
+HSPLandroid/net/wifi/util/HexEncoding;-><clinit>()V
+HSPLandroid/net/wifi/util/HexEncoding;->decode([CZ)[B
+PLandroid/net/wifi/util/HexEncoding;->encode([B)[C
+PLandroid/net/wifi/util/HexEncoding;->encode([BII)[C
+HPLandroid/net/wifi/util/HexEncoding;->encode([BIIZ)[C
+PLandroid/net/wifi/util/HexEncoding;->toDigit([CI)I
+PLandroid/net/wifi/wificond/ChannelSettings$1;-><init>()V
+PLandroid/net/wifi/wificond/ChannelSettings;-><clinit>()V
+PLandroid/net/wifi/wificond/ChannelSettings;-><init>()V
+HPLandroid/net/wifi/wificond/ChannelSettings;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/wifi/wificond/HiddenNetwork$1;-><init>()V
+PLandroid/net/wifi/wificond/HiddenNetwork;-><clinit>()V
+PLandroid/net/wifi/wificond/HiddenNetwork;-><init>()V
+PLandroid/net/wifi/wificond/HiddenNetwork;->equals(Ljava/lang/Object;)Z
+HPLandroid/net/wifi/wificond/HiddenNetwork;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/wifi/wificond/NativeScanResult$1;-><init>()V
+HPLandroid/net/wifi/wificond/NativeScanResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/wificond/NativeScanResult;
+HPLandroid/net/wifi/wificond/NativeScanResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/wifi/wificond/NativeScanResult$1;->newArray(I)[Landroid/net/wifi/wificond/NativeScanResult;
+HPLandroid/net/wifi/wificond/NativeScanResult$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/net/wifi/wificond/NativeScanResult;-><clinit>()V
+PLandroid/net/wifi/wificond/NativeScanResult;-><init>()V
+PLandroid/net/wifi/wificond/PnoNetwork$1;-><init>()V
+PLandroid/net/wifi/wificond/PnoNetwork;-><clinit>()V
+HPLandroid/net/wifi/wificond/PnoNetwork;-><init>()V
+HPLandroid/net/wifi/wificond/PnoNetwork;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/wifi/wificond/PnoSettings$1;-><init>()V
+PLandroid/net/wifi/wificond/PnoSettings;-><clinit>()V
+PLandroid/net/wifi/wificond/PnoSettings;-><init>()V
+HPLandroid/net/wifi/wificond/PnoSettings;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/net/wifi/wificond/RadioChainInfo$1;-><init>()V
+HPLandroid/net/wifi/wificond/RadioChainInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/wifi/wificond/RadioChainInfo;
+HPLandroid/net/wifi/wificond/RadioChainInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/net/wifi/wificond/RadioChainInfo;-><clinit>()V
+HPLandroid/net/wifi/wificond/RadioChainInfo;-><init>()V
+PLandroid/net/wifi/wificond/SingleScanSettings$1;-><init>()V
+PLandroid/net/wifi/wificond/SingleScanSettings;-><clinit>()V
+PLandroid/net/wifi/wificond/SingleScanSettings;-><init>()V
+PLandroid/net/wifi/wificond/SingleScanSettings;->isValidScanType(I)Z
+HPLandroid/net/wifi/wificond/SingleScanSettings;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->deviceSupportsNfcSecure()Z
+HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getNfcCardEmulationInterface()Landroid/nfc/INfcCardEmulation;
+HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getNfcFCardEmulationInterface()Landroid/nfc/INfcFCardEmulation;
+HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getNfcTagInterface()Landroid/nfc/INfcTag;
+HSPLandroid/nfc/INfcAdapter$Stub$Proxy;->getState()I
+HPLandroid/nfc/INfcAdapter$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/nfc/INfcCardEmulation$Stub$Proxy;->getAidGroupForService(ILandroid/content/ComponentName;Ljava/lang/String;)Landroid/nfc/cardemulation/AidGroup;
+HSPLandroid/nfc/INfcCardEmulation$Stub$Proxy;->getServices(ILjava/lang/String;)Ljava/util/List;
+PLandroid/nfc/INfcCardEmulation$Stub$Proxy;->registerAidGroupForService(ILandroid/content/ComponentName;Landroid/nfc/cardemulation/AidGroup;)Z
+PLandroid/nfc/INfcCardEmulation$Stub$Proxy;->removeAidGroupForService(ILandroid/content/ComponentName;Ljava/lang/String;)Z
+HPLandroid/nfc/INfcCardEmulation$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/nfc/INfcCardEmulation$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/nfc/INfcFCardEmulation$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/nfc/INfcTag$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/nfc/NfcAdapter;-><init>(Landroid/content/Context;)V
+HSPLandroid/nfc/NfcAdapter;->getCardEmulationService()Landroid/nfc/INfcCardEmulation;
+HSPLandroid/nfc/NfcAdapter;->getContext()Landroid/content/Context;
+HSPLandroid/nfc/NfcAdapter;->getDefaultAdapter(Landroid/content/Context;)Landroid/nfc/NfcAdapter;
+HSPLandroid/nfc/NfcAdapter;->getNfcAdapter(Landroid/content/Context;)Landroid/nfc/NfcAdapter;
+HSPLandroid/nfc/NfcAdapter;->hasBeamFeature()Z
+HSPLandroid/nfc/NfcAdapter;->hasNfcFeature()Z
+HSPLandroid/nfc/NfcAdapter;->hasNfcHceFeature()Z
+HSPLandroid/nfc/NfcAdapter;->isEnabled()Z
+HSPLandroid/nfc/NfcAdapter;->isSecureNfcSupported()Z
+HSPLandroid/nfc/NfcManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/nfc/cardemulation/AidGroup$1;-><init>()V
+HSPLandroid/nfc/cardemulation/AidGroup$1;->createFromParcel(Landroid/os/Parcel;)Landroid/nfc/cardemulation/AidGroup;
+HSPLandroid/nfc/cardemulation/AidGroup$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/nfc/cardemulation/AidGroup;-><clinit>()V
+HSPLandroid/nfc/cardemulation/AidGroup;-><init>(Ljava/util/List;Ljava/lang/String;)V
+PLandroid/nfc/cardemulation/AidGroup;->getAids()Ljava/util/List;
+HSPLandroid/nfc/cardemulation/AidGroup;->isValidCategory(Ljava/lang/String;)Z
+PLandroid/nfc/cardemulation/AidGroup;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/nfc/cardemulation/CardEmulation;-><clinit>()V
+HSPLandroid/nfc/cardemulation/CardEmulation;-><init>(Landroid/content/Context;Landroid/nfc/INfcCardEmulation;)V
+PLandroid/nfc/cardemulation/CardEmulation;->getAidsForService(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;
+HSPLandroid/nfc/cardemulation/CardEmulation;->getInstance(Landroid/nfc/NfcAdapter;)Landroid/nfc/cardemulation/CardEmulation;
+HSPLandroid/nfc/cardemulation/CardEmulation;->isValidAid(Ljava/lang/String;)Z
+PLandroid/nfc/cardemulation/CardEmulation;->registerAidsForService(Landroid/content/ComponentName;Ljava/lang/String;Ljava/util/List;)Z
+PLandroid/nfc/cardemulation/CardEmulation;->removeAidsForService(Landroid/content/ComponentName;Ljava/lang/String;)Z
+PLandroid/opengl/EGL14;->eglCreateWindowSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Ljava/lang/Object;[II)Landroid/opengl/EGLSurface;
+PLandroid/opengl/EGLConfig;-><init>(J)V
+HSPLandroid/opengl/EGLContext;-><init>(J)V
+PLandroid/opengl/EGLDisplay;-><init>(J)V
+HPLandroid/opengl/EGLDisplay;->equals(Ljava/lang/Object;)Z
+PLandroid/opengl/EGLObjectHandle;-><init>(J)V
+HPLandroid/opengl/EGLObjectHandle;->getNativeHandle()J
+PLandroid/opengl/EGLSurface;-><init>(J)V
+HPLandroid/opengl/EGLSurface;->equals(Ljava/lang/Object;)Z
+HSPLandroid/opengl/GLES20;->glVertexAttribPointer(IIIZILjava/nio/Buffer;)V
+HPLandroid/opengl/GLUtils;->texImage2D(IILandroid/graphics/Bitmap;I)V
+HSPLandroid/opengl/Matrix;->setIdentityM([FI)V
HSPLandroid/os/-$$Lambda$Build$WrC6eL7oW2Zm9UDTcXXKr0DnOMw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/os/-$$Lambda$IyvVQC-0mKtsfXbnO0kDL64hrk0;->applyAsString(I)Ljava/lang/String;
+HSPLandroid/os/-$$Lambda$PowerManager$1$-RL9hKNKSaGL1mmR-EjQ-Cm9KuA;-><init>(Landroid/os/PowerManager$OnThermalStatusChangedListener;I)V
+PLandroid/os/-$$Lambda$PowerManager$1$-RL9hKNKSaGL1mmR-EjQ-Cm9KuA;->run()V
+PLandroid/os/-$$Lambda$PowerManager$WakeLock$VvFzmRZ4ZGlXx7u3lSAJ_T-YUjw;-><init>(Landroid/os/PowerManager$WakeLock;Ljava/lang/Runnable;)V
+PLandroid/os/-$$Lambda$PowerManager$WakeLock$VvFzmRZ4ZGlXx7u3lSAJ_T-YUjw;->run()V
+HSPLandroid/os/-$$Lambda$StrictMode$1yH8AK0bTwVwZOb9x8HoiSBdzr0;->log(Landroid/os/StrictMode$ViolationInfo;)V
+HSPLandroid/os/-$$Lambda$StrictMode$AndroidBlockGuardPolicy$9nBulCQKaMajrWr41SB7f7YRT1I;-><init>(Landroid/os/StrictMode$AndroidBlockGuardPolicy;Landroid/view/IWindowManager;Ljava/util/ArrayList;)V
+HSPLandroid/os/-$$Lambda$StrictMode$AndroidBlockGuardPolicy$9nBulCQKaMajrWr41SB7f7YRT1I;->run()V
+HSPLandroid/os/-$$Lambda$StrictMode$yZJXPvy2veRNA-xL_SWdXzX_OLg;-><init>(ILandroid/os/StrictMode$ViolationInfo;)V
HSPLandroid/os/-$$Lambda$StrictMode$yZJXPvy2veRNA-xL_SWdXzX_OLg;->run()V
HSPLandroid/os/-$$Lambda$ThreadLocalWorkSource$IP9vRFCDG5YwbWbXAEGHH52B9IE;->get()Ljava/lang/Object;
-PLandroid/os/-$$Lambda$Trace$2zLZ-Lc2kAXsVjw_nLYeNhqmGq0;->run()V
+PLandroid/os/AppZygote;-><init>(Landroid/content/pm/ApplicationInfo;III)V
+PLandroid/os/AppZygote;->connectToZygoteIfNeededLocked()V
+PLandroid/os/AppZygote;->getAppInfo()Landroid/content/pm/ApplicationInfo;
+PLandroid/os/AppZygote;->getProcess()Landroid/os/ChildZygoteProcess;
+PLandroid/os/AppZygote;->stopZygote()V
+PLandroid/os/AppZygote;->stopZygoteLocked()V
+HSPLandroid/os/AsyncResult;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
+HSPLandroid/os/AsyncResult;->forMessage(Landroid/os/Message;Ljava/lang/Object;Ljava/lang/Throwable;)Landroid/os/AsyncResult;
HSPLandroid/os/AsyncTask$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
+HPLandroid/os/AsyncTask$2;->rejectedExecution(Ljava/lang/Runnable;Ljava/util/concurrent/ThreadPoolExecutor;)V
HSPLandroid/os/AsyncTask$3;-><init>(Landroid/os/AsyncTask;)V
HSPLandroid/os/AsyncTask$3;->call()Ljava/lang/Object;
HSPLandroid/os/AsyncTask$4;-><init>(Landroid/os/AsyncTask;Ljava/util/concurrent/Callable;)V
@@ -4983,41 +16440,63 @@ HSPLandroid/os/AsyncTask$WorkerRunnable;-><init>()V
HSPLandroid/os/AsyncTask$WorkerRunnable;-><init>(Landroid/os/AsyncTask$1;)V
HSPLandroid/os/AsyncTask;-><init>()V
HSPLandroid/os/AsyncTask;-><init>(Landroid/os/Looper;)V
+HPLandroid/os/AsyncTask;->access$000()Ljava/util/concurrent/ThreadPoolExecutor;
+HPLandroid/os/AsyncTask;->access$002(Ljava/util/concurrent/ThreadPoolExecutor;)Ljava/util/concurrent/ThreadPoolExecutor;
+HPLandroid/os/AsyncTask;->access$100()Ljava/util/concurrent/LinkedBlockingQueue;
+HPLandroid/os/AsyncTask;->access$102(Ljava/util/concurrent/LinkedBlockingQueue;)Ljava/util/concurrent/LinkedBlockingQueue;
+HPLandroid/os/AsyncTask;->access$200()Ljava/util/concurrent/ThreadFactory;
HSPLandroid/os/AsyncTask;->access$500(Landroid/os/AsyncTask;)Ljava/util/concurrent/atomic/AtomicBoolean;
HSPLandroid/os/AsyncTask;->access$700(Landroid/os/AsyncTask;Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroid/os/AsyncTask;->access$800(Landroid/os/AsyncTask;Ljava/lang/Object;)V
HSPLandroid/os/AsyncTask;->access$900(Landroid/os/AsyncTask;Ljava/lang/Object;)V
+HSPLandroid/os/AsyncTask;->cancel(Z)Z
HSPLandroid/os/AsyncTask;->execute(Ljava/lang/Runnable;)V
HSPLandroid/os/AsyncTask;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask;
HSPLandroid/os/AsyncTask;->executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/os/AsyncTask;
HSPLandroid/os/AsyncTask;->finish(Ljava/lang/Object;)V
+HPLandroid/os/AsyncTask;->get()Ljava/lang/Object;
HSPLandroid/os/AsyncTask;->getHandler()Landroid/os/Handler;
HSPLandroid/os/AsyncTask;->getMainHandler()Landroid/os/Handler;
+HPLandroid/os/AsyncTask;->getStatus()Landroid/os/AsyncTask$Status;
HSPLandroid/os/AsyncTask;->isCancelled()Z
+HSPLandroid/os/AsyncTask;->onCancelled()V
+HSPLandroid/os/AsyncTask;->onCancelled(Ljava/lang/Object;)V
HSPLandroid/os/AsyncTask;->onPostExecute(Ljava/lang/Object;)V
HSPLandroid/os/AsyncTask;->onPreExecute()V
HSPLandroid/os/AsyncTask;->postResult(Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroid/os/AsyncTask;->postResultIfNotInvoked(Ljava/lang/Object;)V
+HPLandroid/os/AsyncTask;->publishProgress([Ljava/lang/Object;)V
+HSPLandroid/os/BaseBundle;-><init>()V
HSPLandroid/os/BaseBundle;-><init>(I)V
HSPLandroid/os/BaseBundle;-><init>(Landroid/os/BaseBundle;)V
HSPLandroid/os/BaseBundle;-><init>(Landroid/os/Parcel;I)V
HSPLandroid/os/BaseBundle;-><init>(Ljava/lang/ClassLoader;I)V
HSPLandroid/os/BaseBundle;-><init>(Z)V
+HSPLandroid/os/BaseBundle;->clear()V
HSPLandroid/os/BaseBundle;->containsKey(Ljava/lang/String;)Z
HSPLandroid/os/BaseBundle;->copyInternal(Landroid/os/BaseBundle;Z)V
HSPLandroid/os/BaseBundle;->deepCopyValue(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/os/BaseBundle;->deepcopyArrayList(Ljava/util/ArrayList;)Ljava/util/ArrayList;
HSPLandroid/os/BaseBundle;->get(Ljava/lang/String;)Ljava/lang/Object;
HSPLandroid/os/BaseBundle;->getBoolean(Ljava/lang/String;)Z
HSPLandroid/os/BaseBundle;->getBoolean(Ljava/lang/String;Z)Z
+HPLandroid/os/BaseBundle;->getBooleanArray(Ljava/lang/String;)[Z
HSPLandroid/os/BaseBundle;->getByteArray(Ljava/lang/String;)[B
HSPLandroid/os/BaseBundle;->getCharSequence(Ljava/lang/String;)Ljava/lang/CharSequence;
+PLandroid/os/BaseBundle;->getCharSequenceArray(Ljava/lang/String;)[Ljava/lang/CharSequence;
+HSPLandroid/os/BaseBundle;->getCharSequenceArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
+PLandroid/os/BaseBundle;->getDouble(Ljava/lang/String;)D
+PLandroid/os/BaseBundle;->getDouble(Ljava/lang/String;D)D
HSPLandroid/os/BaseBundle;->getFloat(Ljava/lang/String;F)F
+HSPLandroid/os/BaseBundle;->getFloatArray(Ljava/lang/String;)[F
HSPLandroid/os/BaseBundle;->getInt(Ljava/lang/String;)I
HSPLandroid/os/BaseBundle;->getInt(Ljava/lang/String;I)I
HSPLandroid/os/BaseBundle;->getIntArray(Ljava/lang/String;)[I
+HSPLandroid/os/BaseBundle;->getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
HSPLandroid/os/BaseBundle;->getLong(Ljava/lang/String;)J
HSPLandroid/os/BaseBundle;->getLong(Ljava/lang/String;J)J
-HPLandroid/os/BaseBundle;->getLongArray(Ljava/lang/String;)[J
+HSPLandroid/os/BaseBundle;->getLongArray(Ljava/lang/String;)[J
+PLandroid/os/BaseBundle;->getMap()Landroid/util/ArrayMap;
HSPLandroid/os/BaseBundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable;
HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/os/BaseBundle;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
@@ -5029,19 +16508,165 @@ HSPLandroid/os/BaseBundle;->isEmptyParcel()Z
HSPLandroid/os/BaseBundle;->isEmptyParcel(Landroid/os/Parcel;)Z
HSPLandroid/os/BaseBundle;->isParcelled()Z
HSPLandroid/os/BaseBundle;->keySet()Ljava/util/Set;
+PLandroid/os/BaseBundle;->kindofEquals(Landroid/os/BaseBundle;)Z
+PLandroid/os/BaseBundle;->maybeIsEmpty()Z
+HSPLandroid/os/BaseBundle;->putAll(Landroid/os/PersistableBundle;)V
+HSPLandroid/os/BaseBundle;->putAll(Landroid/util/ArrayMap;)V
HSPLandroid/os/BaseBundle;->putBoolean(Ljava/lang/String;Z)V
+HPLandroid/os/BaseBundle;->putBooleanArray(Ljava/lang/String;[Z)V
+HPLandroid/os/BaseBundle;->putByte(Ljava/lang/String;B)V
+HSPLandroid/os/BaseBundle;->putCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)V
+HSPLandroid/os/BaseBundle;->putDouble(Ljava/lang/String;D)V
+HSPLandroid/os/BaseBundle;->putFloat(Ljava/lang/String;F)V
+HSPLandroid/os/BaseBundle;->putFloatArray(Ljava/lang/String;[F)V
HSPLandroid/os/BaseBundle;->putInt(Ljava/lang/String;I)V
HSPLandroid/os/BaseBundle;->putIntArray(Ljava/lang/String;[I)V
HSPLandroid/os/BaseBundle;->putLong(Ljava/lang/String;J)V
HSPLandroid/os/BaseBundle;->putLongArray(Ljava/lang/String;[J)V
+HSPLandroid/os/BaseBundle;->putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V
HSPLandroid/os/BaseBundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/os/BaseBundle;->putStringArray(Ljava/lang/String;[Ljava/lang/String;)V
+HSPLandroid/os/BaseBundle;->putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
HSPLandroid/os/BaseBundle;->readFromParcelInner(Landroid/os/Parcel;I)V
+HSPLandroid/os/BaseBundle;->remove(Ljava/lang/String;)V
HSPLandroid/os/BaseBundle;->setClassLoader(Ljava/lang/ClassLoader;)V
+HSPLandroid/os/BaseBundle;->setShouldDefuse(Z)V
HSPLandroid/os/BaseBundle;->size()I
+HSPLandroid/os/BaseBundle;->typeWarning(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/ClassCastException;)V
HSPLandroid/os/BaseBundle;->unparcel()V
HSPLandroid/os/BaseBundle;->writeToParcelInner(Landroid/os/Parcel;I)V
+HSPLandroid/os/BasicShellCommandHandler;-><init>()V
+HPLandroid/os/BasicShellCommandHandler;->exec(Landroid/os/Binder;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;)I
+PLandroid/os/BasicShellCommandHandler;->getNextArg()Ljava/lang/String;
+PLandroid/os/BasicShellCommandHandler;->getNextArgRequired()Ljava/lang/String;
+PLandroid/os/BasicShellCommandHandler;->getNextOption()Ljava/lang/String;
+PLandroid/os/BasicShellCommandHandler;->getOutPrintWriter()Ljava/io/PrintWriter;
+PLandroid/os/BasicShellCommandHandler;->getRawOutputStream()Ljava/io/OutputStream;
+PLandroid/os/BasicShellCommandHandler;->init(Landroid/os/Binder;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;I)V
+HSPLandroid/os/BatteryManager;-><init>(Landroid/content/Context;Lcom/android/internal/app/IBatteryStats;Landroid/os/IBatteryPropertiesRegistrar;)V
+HSPLandroid/os/BatteryManager;->getIntProperty(I)I
+HSPLandroid/os/BatteryManager;->getLongProperty(I)J
HSPLandroid/os/BatteryManager;->isCharging()Z
+HSPLandroid/os/BatteryManager;->queryProperty(I)J
+HSPLandroid/os/BatteryManagerInternal;-><init>()V
+HSPLandroid/os/BatteryProperty;-><init>()V
+HSPLandroid/os/BatteryProperty;->getLong()J
+HSPLandroid/os/BatteryProperty;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/os/BatteryProperty;->setLong(J)V
+PLandroid/os/BatteryProperty;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/os/BatteryStats$1;-><init>(Landroid/os/BatteryStats;)V
+PLandroid/os/BatteryStats$1;->compare(Landroid/os/BatteryStats$TimerEntry;Landroid/os/BatteryStats$TimerEntry;)I
+HPLandroid/os/BatteryStats$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/os/BatteryStats$ControllerActivityCounter;-><init>()V
+HSPLandroid/os/BatteryStats$DailyItem;-><init>()V
+HSPLandroid/os/BatteryStats$HistoryEventTracker;-><init>()V
+HSPLandroid/os/BatteryStats$HistoryEventTracker;->getStateForEvent(I)Ljava/util/HashMap;
+HSPLandroid/os/BatteryStats$HistoryEventTracker;->updateState(ILjava/lang/String;II)Z
+HSPLandroid/os/BatteryStats$HistoryItem;-><init>()V
+HSPLandroid/os/BatteryStats$HistoryItem;->clear()V
+PLandroid/os/BatteryStats$HistoryItem;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/os/BatteryStats$HistoryItem;->setTo(JBLandroid/os/BatteryStats$HistoryItem;)V
+HSPLandroid/os/BatteryStats$HistoryItem;->setTo(Landroid/os/BatteryStats$HistoryItem;)V
+HSPLandroid/os/BatteryStats$HistoryItem;->setToCommon(Landroid/os/BatteryStats$HistoryItem;)V
+HSPLandroid/os/BatteryStats$HistoryItem;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/os/BatteryStats$HistoryPrinter;-><init>()V
+HPLandroid/os/BatteryStats$HistoryPrinter;->printNextItem(Landroid/os/BatteryStats$HistoryItem;JZZ)Ljava/lang/String;
+HPLandroid/os/BatteryStats$HistoryPrinter;->printNextItem(Landroid/util/proto/ProtoOutputStream;Landroid/os/BatteryStats$HistoryItem;JZ)V
+HPLandroid/os/BatteryStats$HistoryPrinter;->printNextItem(Ljava/io/PrintWriter;Landroid/os/BatteryStats$HistoryItem;JZZ)V
+PLandroid/os/BatteryStats$HistoryPrinter;->reset()V
+HSPLandroid/os/BatteryStats$HistoryStepDetails;-><init>()V
+HSPLandroid/os/BatteryStats$HistoryStepDetails;->clear()V
+HPLandroid/os/BatteryStats$HistoryStepDetails;->readFromParcel(Landroid/os/Parcel;)V
+PLandroid/os/BatteryStats$HistoryStepDetails;->writeToParcel(Landroid/os/Parcel;)V
+HSPLandroid/os/BatteryStats$HistoryTag;-><init>()V
+HSPLandroid/os/BatteryStats$HistoryTag;->equals(Ljava/lang/Object;)Z
+HSPLandroid/os/BatteryStats$HistoryTag;->hashCode()I
+PLandroid/os/BatteryStats$HistoryTag;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/os/BatteryStats$HistoryTag;->setTo(Landroid/os/BatteryStats$HistoryTag;)V
+HSPLandroid/os/BatteryStats$HistoryTag;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/BatteryStats$LevelStepTracker;-><init>(I)V
+HSPLandroid/os/BatteryStats$LevelStepTracker;-><init>(I[J)V
+PLandroid/os/BatteryStats$LevelStepTracker;->addLevelSteps(IJJ)V
+HSPLandroid/os/BatteryStats$LevelStepTracker;->appendHex(JILjava/lang/StringBuilder;)V
+HSPLandroid/os/BatteryStats$LevelStepTracker;->clearTime()V
+HPLandroid/os/BatteryStats$LevelStepTracker;->computeTimeEstimate(JJ[I)J
+PLandroid/os/BatteryStats$LevelStepTracker;->computeTimePerLevel()J
+HSPLandroid/os/BatteryStats$LevelStepTracker;->decodeEntryAt(ILjava/lang/String;)V
+HSPLandroid/os/BatteryStats$LevelStepTracker;->encodeEntryAt(ILjava/lang/StringBuilder;)V
+HPLandroid/os/BatteryStats$LevelStepTracker;->getDurationAt(I)J
+HPLandroid/os/BatteryStats$LevelStepTracker;->getInitModeAt(I)I
+HPLandroid/os/BatteryStats$LevelStepTracker;->getLevelAt(I)I
+HPLandroid/os/BatteryStats$LevelStepTracker;->getModModeAt(I)I
+HSPLandroid/os/BatteryStats$LevelStepTracker;->init()V
+HSPLandroid/os/BatteryStats$LevelStepTracker;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/os/BatteryStats$LevelStepTracker;->writeToParcel(Landroid/os/Parcel;)V
+HSPLandroid/os/BatteryStats$LongCounterArray;-><init>()V
+HSPLandroid/os/BatteryStats$PackageChange;-><init>()V
+HSPLandroid/os/BatteryStats$Timer;-><init>()V
+HPLandroid/os/BatteryStats$Timer;->getCurrentDurationMsLocked(J)J
+HPLandroid/os/BatteryStats$Timer;->getMaxDurationMsLocked(J)J
+HPLandroid/os/BatteryStats$Timer;->getTotalDurationMsLocked(J)J
+PLandroid/os/BatteryStats$Timer;->isRunningLocked()Z
+PLandroid/os/BatteryStats$TimerEntry;-><init>(Ljava/lang/String;ILandroid/os/BatteryStats$Timer;J)V
+HSPLandroid/os/BatteryStats$Uid$Pid;-><init>(Landroid/os/BatteryStats$Uid;)V
+HSPLandroid/os/BatteryStats$Uid$Proc$ExcessivePower;-><init>()V
+HSPLandroid/os/BatteryStats$Uid$Proc;-><init>()V
+HSPLandroid/os/BatteryStats$Uid$Sensor;-><init>()V
+HSPLandroid/os/BatteryStats$Uid;-><init>()V
+HSPLandroid/os/BatteryStats;-><init>()V
+HPLandroid/os/BatteryStats;->computeWakeLock(Landroid/os/BatteryStats$Timer;JI)J
+HPLandroid/os/BatteryStats;->controllerActivityHasData(Landroid/os/BatteryStats$ControllerActivityCounter;I)Z
+HPLandroid/os/BatteryStats;->dumpCheckinLocked(Landroid/content/Context;Ljava/io/PrintWriter;IIZ)V
+HPLandroid/os/BatteryStats;->dumpCheckinLocked(Landroid/content/Context;Ljava/io/PrintWriter;Ljava/util/List;IJ)V
+HPLandroid/os/BatteryStats;->dumpControllerActivityLine(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$ControllerActivityCounter;I)V
+HPLandroid/os/BatteryStats;->dumpControllerActivityProto(Landroid/util/proto/ProtoOutputStream;JLandroid/os/BatteryStats$ControllerActivityCounter;I)V
+PLandroid/os/BatteryStats;->dumpDailyLevelStepSummary(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$LevelStepTracker;Ljava/lang/StringBuilder;[I)V
+HPLandroid/os/BatteryStats;->dumpDailyPackageChanges(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/ArrayList;)V
+PLandroid/os/BatteryStats;->dumpDurationSteps(Landroid/util/proto/ProtoOutputStream;JLandroid/os/BatteryStats$LevelStepTracker;)V
+HPLandroid/os/BatteryStats;->dumpDurationSteps(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$LevelStepTracker;Z)Z
+HPLandroid/os/BatteryStats;->dumpHistoryLocked(Ljava/io/PrintWriter;IJZ)V
+HPLandroid/os/BatteryStats;->dumpLine(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
+HPLandroid/os/BatteryStats;->dumpLineHeader(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;)V
+HPLandroid/os/BatteryStats;->dumpLocked(Landroid/content/Context;Ljava/io/PrintWriter;IIJ)V
+HPLandroid/os/BatteryStats;->dumpLocked(Landroid/content/Context;Ljava/io/PrintWriter;Ljava/lang/String;IIZ)V
+HPLandroid/os/BatteryStats;->dumpProtoAppsLocked(Landroid/util/proto/ProtoOutputStream;Lcom/android/internal/os/BatteryStatsHelper;Ljava/util/List;)V
+HPLandroid/os/BatteryStats;->dumpProtoHistoryLocked(Landroid/util/proto/ProtoOutputStream;IJ)V
+PLandroid/os/BatteryStats;->dumpProtoLocked(Landroid/content/Context;Ljava/io/FileDescriptor;Ljava/util/List;IJ)V
+HPLandroid/os/BatteryStats;->dumpProtoSystemLocked(Landroid/util/proto/ProtoOutputStream;Lcom/android/internal/os/BatteryStatsHelper;)V
+PLandroid/os/BatteryStats;->dumpTimeEstimate(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Z
+HPLandroid/os/BatteryStats;->dumpTimer(Landroid/util/proto/ProtoOutputStream;JLandroid/os/BatteryStats$Timer;JI)V
+HPLandroid/os/BatteryStats;->dumpTimer(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$Timer;JI)V
+PLandroid/os/BatteryStats;->formatBytesLocked(J)Ljava/lang/String;
+HPLandroid/os/BatteryStats;->formatRatioLocked(JJ)Ljava/lang/String;
+HPLandroid/os/BatteryStats;->formatTimeMs(Ljava/lang/StringBuilder;J)V
+PLandroid/os/BatteryStats;->formatTimeMsNoSpace(Ljava/lang/StringBuilder;J)V
+HPLandroid/os/BatteryStats;->formatTimeRaw(Ljava/lang/StringBuilder;J)V
+HSPLandroid/os/BatteryStats;->mapToInternalProcessState(I)I
+HPLandroid/os/BatteryStats;->printBitDescriptions(Ljava/lang/StringBuilder;IILandroid/os/BatteryStats$HistoryTag;[Landroid/os/BatteryStats$BitDescription;Z)V
+HPLandroid/os/BatteryStats;->printControllerActivity(Ljava/io/PrintWriter;Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$ControllerActivityCounter;I)V
+PLandroid/os/BatteryStats;->printControllerActivityIfInteresting(Ljava/io/PrintWriter;Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$ControllerActivityCounter;I)V
+PLandroid/os/BatteryStats;->printSizeValue(Ljava/io/PrintWriter;J)V
+HPLandroid/os/BatteryStats;->printTimer(Ljava/io/PrintWriter;Ljava/lang/StringBuilder;Landroid/os/BatteryStats$Timer;JILjava/lang/String;Ljava/lang/String;)Z
+HPLandroid/os/BatteryStats;->printWakeLock(Ljava/lang/StringBuilder;Landroid/os/BatteryStats$Timer;JLjava/lang/String;ILjava/lang/String;)Ljava/lang/String;
+HPLandroid/os/BatteryStats;->printWakeLockCheckin(Ljava/lang/StringBuilder;Landroid/os/BatteryStats$Timer;JLjava/lang/String;ILjava/lang/String;)Ljava/lang/String;
+HPLandroid/os/BatteryStats;->printmAh(Ljava/io/PrintWriter;D)V
+PLandroid/os/BatteryStats;->roundUsToMs(J)J
+HSPLandroid/os/BatteryStatsManager;-><init>(Lcom/android/internal/app/IBatteryStats;)V
+HPLandroid/os/BatteryStatsManager;->getCellularBatteryStats()Landroid/os/connectivity/CellularBatteryStats;
+PLandroid/os/BatteryStatsManager;->getWifiBatteryStats()Landroid/os/connectivity/WifiBatteryStats;
+PLandroid/os/BatteryStatsManager;->noteFullWifiLockAcquiredFromSource(Landroid/os/WorkSource;)V
+PLandroid/os/BatteryStatsManager;->noteFullWifiLockReleasedFromSource(Landroid/os/WorkSource;)V
+PLandroid/os/BatteryStatsManager;->noteWifiMulticastDisabled(I)V
+PLandroid/os/BatteryStatsManager;->noteWifiMulticastEnabled(I)V
+PLandroid/os/BatteryStatsManager;->noteWifiOff()V
+HSPLandroid/os/BatteryStatsManager;->noteWifiOn()V
+PLandroid/os/BatteryStatsManager;->noteWifiRssiChanged(I)V
+HPLandroid/os/BatteryStatsManager;->noteWifiScanStartedFromSource(Landroid/os/WorkSource;)V
+HPLandroid/os/BatteryStatsManager;->noteWifiScanStoppedFromSource(Landroid/os/WorkSource;)V
+PLandroid/os/BatteryStatsManager;->noteWifiState(ILjava/lang/String;)V
+HPLandroid/os/BatteryStatsManager;->noteWifiSupplicantStateChanged(IZ)V
+HSPLandroid/os/BestClock;-><init>(Ljava/time/ZoneId;[Ljava/time/Clock;)V
+HSPLandroid/os/BestClock;->millis()J
HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;-><init>()V
HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;->onTransactEnded(Ljava/lang/Object;)V
HSPLandroid/os/Binder$PropagateWorkSourceTransactListener;->onTransactStarted(Landroid/os/IBinder;I)Ljava/lang/Object;
@@ -5050,141 +16675,348 @@ HSPLandroid/os/Binder;-><init>()V
HSPLandroid/os/Binder;-><init>(Ljava/lang/String;)V
HSPLandroid/os/Binder;->allowBlocking(Landroid/os/IBinder;)Landroid/os/IBinder;
HSPLandroid/os/Binder;->attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V
+HSPLandroid/os/Binder;->checkParcel(Landroid/os/IBinder;ILandroid/os/Parcel;Ljava/lang/String;)V
HSPLandroid/os/Binder;->copyAllowBlocking(Landroid/os/IBinder;Landroid/os/IBinder;)V
+PLandroid/os/Binder;->defaultBlocking(Landroid/os/IBinder;)Landroid/os/IBinder;
+PLandroid/os/Binder;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLandroid/os/Binder;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLandroid/os/Binder;->dump(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
HSPLandroid/os/Binder;->execTransact(IJJI)Z
HSPLandroid/os/Binder;->execTransactInternal(IJJII)Z
HSPLandroid/os/Binder;->getCallingUserHandle()Landroid/os/UserHandle;
HSPLandroid/os/Binder;->getInterfaceDescriptor()Ljava/lang/String;
HSPLandroid/os/Binder;->isBinderAlive()Z
+PLandroid/os/Binder;->isProxy(Landroid/os/IInterface;)Z
+HSPLandroid/os/Binder;->isTracingEnabled()Z
HSPLandroid/os/Binder;->linkToDeath(Landroid/os/IBinder$DeathRecipient;I)V
HSPLandroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/Binder;->pingBinder()Z
HSPLandroid/os/Binder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
+HSPLandroid/os/Binder;->setObserver(Lcom/android/internal/os/BinderInternal$Observer;)V
HSPLandroid/os/Binder;->setProxyTransactListener(Landroid/os/Binder$ProxyTransactListener;)V
+HSPLandroid/os/Binder;->setWarnOnBlocking(Z)V
+HSPLandroid/os/Binder;->setWorkSourceProvider(Lcom/android/internal/os/BinderInternal$WorkSourceProvider;)V
+PLandroid/os/Binder;->shellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
HSPLandroid/os/Binder;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/os/Binder;->unlinkToDeath(Landroid/os/IBinder$DeathRecipient;I)Z
HSPLandroid/os/Binder;->withCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;)V
+PLandroid/os/BinderProxy$ProxyMap;->access$300(Landroid/os/BinderProxy$ProxyMap;)I
HSPLandroid/os/BinderProxy$ProxyMap;->get(J)Landroid/os/BinderProxy;
+HSPLandroid/os/BinderProxy$ProxyMap;->hash(J)I
HSPLandroid/os/BinderProxy$ProxyMap;->remove(II)V
HSPLandroid/os/BinderProxy$ProxyMap;->set(JLandroid/os/BinderProxy;)V
+PLandroid/os/BinderProxy$ProxyMap;->size()I
+HSPLandroid/os/BinderProxy;-><init>(J)V
+PLandroid/os/BinderProxy;->dump(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
+PLandroid/os/BinderProxy;->dumpAsync(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
HSPLandroid/os/BinderProxy;->getInstance(JJ)Landroid/os/BinderProxy;
+PLandroid/os/BinderProxy;->getProxyCount()I
HSPLandroid/os/BinderProxy;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
-PLandroid/os/BinderProxy;->sendDeathNotice(Landroid/os/IBinder$DeathRecipient;)V
+HSPLandroid/os/BinderProxy;->sendDeathNotice(Landroid/os/IBinder$DeathRecipient;)V
+HSPLandroid/os/BinderProxy;->setTransactListener(Landroid/os/Binder$ProxyTransactListener;)V
HSPLandroid/os/BinderProxy;->transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/Build;->ensureFingerprintProperty()V
HSPLandroid/os/Build;->getRadioVersion()Ljava/lang/String;
+HSPLandroid/os/Build;->getSerial()Ljava/lang/String;
+PLandroid/os/Build;->isBuildConsistent()Z
+PLandroid/os/Build;->joinListOrElse(Ljava/util/List;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/os/Build;->lambda$joinListOrElse$0(Ljava/lang/Object;)Ljava/lang/String;
HSPLandroid/os/Bundle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Bundle;
HSPLandroid/os/Bundle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/os/Bundle$1;->newArray(I)[Landroid/os/Bundle;
+HPLandroid/os/Bundle$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/os/Bundle;-><init>()V
HSPLandroid/os/Bundle;-><init>(I)V
HSPLandroid/os/Bundle;-><init>(Landroid/os/Bundle;)V
+HPLandroid/os/Bundle;-><init>(Landroid/os/Parcel;I)V
HSPLandroid/os/Bundle;-><init>(Landroid/os/PersistableBundle;)V
HSPLandroid/os/Bundle;-><init>(Z)V
HSPLandroid/os/Bundle;->clear()V
HSPLandroid/os/Bundle;->clone()Ljava/lang/Object;
HSPLandroid/os/Bundle;->deepCopy()Landroid/os/Bundle;
+PLandroid/os/Bundle;->describeContents()I
+PLandroid/os/Bundle;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/os/Bundle;->forPair(Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
HSPLandroid/os/Bundle;->getBinder(Ljava/lang/String;)Landroid/os/IBinder;
HSPLandroid/os/Bundle;->getBundle(Ljava/lang/String;)Landroid/os/Bundle;
HSPLandroid/os/Bundle;->getByteArray(Ljava/lang/String;)[B
HSPLandroid/os/Bundle;->getCharSequence(Ljava/lang/String;)Ljava/lang/CharSequence;
+PLandroid/os/Bundle;->getCharSequenceArray(Ljava/lang/String;)[Ljava/lang/CharSequence;
+HSPLandroid/os/Bundle;->getCharSequenceArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
+PLandroid/os/Bundle;->getFloat(Ljava/lang/String;)F
HSPLandroid/os/Bundle;->getFloat(Ljava/lang/String;F)F
+HSPLandroid/os/Bundle;->getFloatArray(Ljava/lang/String;)[F
+HSPLandroid/os/Bundle;->getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
HSPLandroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable;
HSPLandroid/os/Bundle;->getParcelableArray(Ljava/lang/String;)[Landroid/os/Parcelable;
HSPLandroid/os/Bundle;->getParcelableArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
HSPLandroid/os/Bundle;->getSerializable(Ljava/lang/String;)Ljava/io/Serializable;
+HSPLandroid/os/Bundle;->getSparseParcelableArray(Ljava/lang/String;)Landroid/util/SparseArray;
HSPLandroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
+HSPLandroid/os/Bundle;->hasFileDescriptors()Z
+HPLandroid/os/Bundle;->maybePrefillHasFds()V
HSPLandroid/os/Bundle;->putAll(Landroid/os/Bundle;)V
HSPLandroid/os/Bundle;->putBinder(Ljava/lang/String;Landroid/os/IBinder;)V
HSPLandroid/os/Bundle;->putBundle(Ljava/lang/String;Landroid/os/Bundle;)V
+HPLandroid/os/Bundle;->putByte(Ljava/lang/String;B)V
HSPLandroid/os/Bundle;->putByteArray(Ljava/lang/String;[B)V
+HSPLandroid/os/Bundle;->putCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)V
+HSPLandroid/os/Bundle;->putCharSequenceArray(Ljava/lang/String;[Ljava/lang/CharSequence;)V
+HPLandroid/os/Bundle;->putCharSequenceArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
HSPLandroid/os/Bundle;->putFloat(Ljava/lang/String;F)V
+HSPLandroid/os/Bundle;->putFloatArray(Ljava/lang/String;[F)V
+HSPLandroid/os/Bundle;->putIntegerArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
HSPLandroid/os/Bundle;->putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V
HSPLandroid/os/Bundle;->putParcelableArray(Ljava/lang/String;[Landroid/os/Parcelable;)V
HSPLandroid/os/Bundle;->putParcelableArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
+PLandroid/os/Bundle;->putParcelableList(Ljava/lang/String;Ljava/util/List;)V
+HSPLandroid/os/Bundle;->putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V
+HSPLandroid/os/Bundle;->putSparseParcelableArray(Ljava/lang/String;Landroid/util/SparseArray;)V
HSPLandroid/os/Bundle;->putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
+HSPLandroid/os/Bundle;->readFromParcel(Landroid/os/Parcel;)V
HSPLandroid/os/Bundle;->remove(Ljava/lang/String;)V
HSPLandroid/os/Bundle;->setAllowFds(Z)Z
HSPLandroid/os/Bundle;->setClassLoader(Ljava/lang/ClassLoader;)V
HSPLandroid/os/Bundle;->setDefusable(Landroid/os/Bundle;Z)Landroid/os/Bundle;
HSPLandroid/os/Bundle;->setDefusable(Z)V
+HPLandroid/os/Bundle;->toShortString()Ljava/lang/String;
HSPLandroid/os/Bundle;->toString()Ljava/lang/String;
HSPLandroid/os/Bundle;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/os/CancellationSignal$Transport;->cancel()V
HSPLandroid/os/CancellationSignal;-><init>()V
+PLandroid/os/CancellationSignal;->cancel()V
+PLandroid/os/CancellationSignal;->createTransport()Landroid/os/ICancellationSignal;
HSPLandroid/os/CancellationSignal;->fromTransport(Landroid/os/ICancellationSignal;)Landroid/os/CancellationSignal;
HSPLandroid/os/CancellationSignal;->isCanceled()Z
HSPLandroid/os/CancellationSignal;->setOnCancelListener(Landroid/os/CancellationSignal$OnCancelListener;)V
HSPLandroid/os/CancellationSignal;->setRemote(Landroid/os/ICancellationSignal;)V
HSPLandroid/os/CancellationSignal;->throwIfCanceled()V
HSPLandroid/os/CancellationSignal;->waitForCancelFinishedLocked()V
+HSPLandroid/os/ChildZygoteProcess;-><init>(Landroid/net/LocalSocketAddress;I)V
+PLandroid/os/ChildZygoteProcess;->getPid()I
HSPLandroid/os/ConditionVariable;-><init>()V
HSPLandroid/os/ConditionVariable;-><init>(Z)V
HSPLandroid/os/ConditionVariable;->block()V
HSPLandroid/os/ConditionVariable;->block(J)Z
HSPLandroid/os/ConditionVariable;->close()V
HSPLandroid/os/ConditionVariable;->open()V
-PLandroid/os/DeadObjectException;-><init>()V
+PLandroid/os/CoolingDevice$1;-><init>()V
+PLandroid/os/CoolingDevice;-><clinit>()V
+HPLandroid/os/CoolingDevice;-><init>(JILjava/lang/String;)V
+PLandroid/os/CoolingDevice;->getName()Ljava/lang/String;
+PLandroid/os/CoolingDevice;->getType()I
+PLandroid/os/CoolingDevice;->getValue()J
+PLandroid/os/CoolingDevice;->isValidType(I)Z
+PLandroid/os/CoolingDevice;->toString()Ljava/lang/String;
+PLandroid/os/CpuUsageInfo;-><init>(JJ)V
+HSPLandroid/os/DeadObjectException;-><init>()V
+PLandroid/os/DeadObjectException;-><init>(Ljava/lang/String;)V
HSPLandroid/os/Debug$MemoryInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Debug$MemoryInfo;
HSPLandroid/os/Debug$MemoryInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/os/Debug$MemoryInfo$1;->newArray(I)[Landroid/os/Debug$MemoryInfo;
HSPLandroid/os/Debug$MemoryInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/os/Debug$MemoryInfo;-><init>()V
HSPLandroid/os/Debug$MemoryInfo;->getMemoryStats()Ljava/util/Map;
+PLandroid/os/Debug$MemoryInfo;->getOtherLabel(I)Ljava/lang/String;
HSPLandroid/os/Debug$MemoryInfo;->getOtherPrivate(I)I
HSPLandroid/os/Debug$MemoryInfo;->getOtherPrivateClean(I)I
HSPLandroid/os/Debug$MemoryInfo;->getOtherPrivateDirty(I)I
HSPLandroid/os/Debug$MemoryInfo;->getOtherPss(I)I
+HPLandroid/os/Debug$MemoryInfo;->getOtherRss(I)I
+PLandroid/os/Debug$MemoryInfo;->getOtherSharedClean(I)I
+PLandroid/os/Debug$MemoryInfo;->getOtherSharedDirty(I)I
+PLandroid/os/Debug$MemoryInfo;->getOtherSwappablePss(I)I
+PLandroid/os/Debug$MemoryInfo;->getOtherSwappedOut(I)I
+HPLandroid/os/Debug$MemoryInfo;->getOtherSwappedOutPss(I)I
HSPLandroid/os/Debug$MemoryInfo;->getSummaryCode()I
+PLandroid/os/Debug$MemoryInfo;->getSummaryCodeRss()I
HSPLandroid/os/Debug$MemoryInfo;->getSummaryGraphics()I
+PLandroid/os/Debug$MemoryInfo;->getSummaryGraphicsRss()I
HSPLandroid/os/Debug$MemoryInfo;->getSummaryJavaHeap()I
+PLandroid/os/Debug$MemoryInfo;->getSummaryJavaHeapRss()I
HSPLandroid/os/Debug$MemoryInfo;->getSummaryNativeHeap()I
+PLandroid/os/Debug$MemoryInfo;->getSummaryNativeHeapRss()I
HSPLandroid/os/Debug$MemoryInfo;->getSummaryPrivateOther()I
HSPLandroid/os/Debug$MemoryInfo;->getSummaryStack()I
+PLandroid/os/Debug$MemoryInfo;->getSummaryStackRss()I
HSPLandroid/os/Debug$MemoryInfo;->getSummarySystem()I
HSPLandroid/os/Debug$MemoryInfo;->getSummaryTotalPss()I
HSPLandroid/os/Debug$MemoryInfo;->getSummaryTotalSwap()I
+PLandroid/os/Debug$MemoryInfo;->getSummaryTotalSwapPss()I
+PLandroid/os/Debug$MemoryInfo;->getSummaryUnknownRss()I
HSPLandroid/os/Debug$MemoryInfo;->getTotalPrivateClean()I
HSPLandroid/os/Debug$MemoryInfo;->getTotalPrivateDirty()I
HSPLandroid/os/Debug$MemoryInfo;->getTotalPss()I
+PLandroid/os/Debug$MemoryInfo;->getTotalRss()I
+PLandroid/os/Debug$MemoryInfo;->getTotalSharedClean()I
HSPLandroid/os/Debug$MemoryInfo;->getTotalSharedDirty()I
HSPLandroid/os/Debug$MemoryInfo;->getTotalSwappablePss()I
HSPLandroid/os/Debug$MemoryInfo;->getTotalSwappedOut()I
HSPLandroid/os/Debug$MemoryInfo;->getTotalSwappedOutPss()I
+PLandroid/os/Debug$MemoryInfo;->getTotalUss()I
+HSPLandroid/os/Debug$MemoryInfo;->hasSwappedOutPss()Z
HSPLandroid/os/Debug$MemoryInfo;->readFromParcel(Landroid/os/Parcel;)V
+PLandroid/os/Debug$MemoryInfo;->set(Landroid/os/Debug$MemoryInfo;)V
+HPLandroid/os/Debug$MemoryInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/Debug;->countInstancesOfClass(Ljava/lang/Class;)J
+HPLandroid/os/Debug;->dumpService(Ljava/lang/String;Ljava/io/FileDescriptor;[Ljava/lang/String;)Z
+HPLandroid/os/Debug;->fixTracePath(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/os/Debug;->getCaller([Ljava/lang/StackTraceElement;I)Ljava/lang/String;
+HSPLandroid/os/Debug;->getCallers(I)Ljava/lang/String;
+HPLandroid/os/Debug;->getRuntimeStats()Ljava/util/Map;
HSPLandroid/os/Debug;->isDebuggerConnected()Z
+HPLandroid/os/Debug;->startMethodTracingSampling(Ljava/lang/String;II)V
+HPLandroid/os/Debug;->stopMethodTracing()V
HSPLandroid/os/Debug;->threadCpuTimeNanos()J
+HSPLandroid/os/Debug;->waitingForDebugger()Z
HSPLandroid/os/DeviceIdleManager;-><init>(Landroid/content/Context;Landroid/os/IDeviceIdleController;)V
+HSPLandroid/os/DeviceIdleManager;->getService()Landroid/os/IDeviceIdleController;
+HSPLandroid/os/DeviceIdleManager;->isApplicationWhitelisted(Ljava/lang/String;)Z
+HSPLandroid/os/DropBoxManager$Entry$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/DropBoxManager$Entry;
+HSPLandroid/os/DropBoxManager$Entry$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;J)V
+HSPLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;JLandroid/os/ParcelFileDescriptor;I)V
+HPLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;JLjava/io/File;I)V
+HSPLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;JLjava/lang/String;)V
+PLandroid/os/DropBoxManager$Entry;-><init>(Ljava/lang/String;J[BI)V
+HSPLandroid/os/DropBoxManager$Entry;->close()V
+HSPLandroid/os/DropBoxManager$Entry;->getFlags()I
+HSPLandroid/os/DropBoxManager$Entry;->getInputStream()Ljava/io/InputStream;
+HSPLandroid/os/DropBoxManager$Entry;->getTag()Ljava/lang/String;
+HPLandroid/os/DropBoxManager$Entry;->getText(I)Ljava/lang/String;
+HSPLandroid/os/DropBoxManager$Entry;->getTimeMillis()J
+HPLandroid/os/DropBoxManager$Entry;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/DropBoxManager;-><init>(Landroid/content/Context;Lcom/android/internal/os/IDropBoxManagerService;)V
+PLandroid/os/DropBoxManager;->addFile(Ljava/lang/String;Ljava/io/File;I)V
+HSPLandroid/os/DropBoxManager;->addText(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/DropBoxManager;->getNextEntry(Ljava/lang/String;J)Landroid/os/DropBoxManager$Entry;
+HSPLandroid/os/DropBoxManager;->isTagEnabled(Ljava/lang/String;)Z
HSPLandroid/os/Environment$UserEnvironment;-><init>(I)V
HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppCacheDirs(Ljava/lang/String;)[Ljava/io/File;
+HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppDataDirs(Ljava/lang/String;)[Ljava/io/File;
HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File;
+HSPLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppMediaDirs(Ljava/lang/String;)[Ljava/io/File;
+PLandroid/os/Environment$UserEnvironment;->buildExternalStorageAppObbDirs(Ljava/lang/String;)[Ljava/io/File;
HSPLandroid/os/Environment$UserEnvironment;->buildExternalStoragePublicDirs(Ljava/lang/String;)[Ljava/io/File;
HSPLandroid/os/Environment$UserEnvironment;->getExternalDirs()[Ljava/io/File;
+HSPLandroid/os/Environment;->buildExternalStorageAppDataDirs(Ljava/lang/String;)[Ljava/io/File;
+HSLandroid/os/Environment;->buildExternalStorageAppFilesDirs(Ljava/lang/String;)[Ljava/io/File;
+HSPLandroid/os/Environment;->buildExternalStorageAppMediaDirs(Ljava/lang/String;)[Ljava/io/File;
HSPLandroid/os/Environment;->buildPath(Ljava/io/File;[Ljava/lang/String;)Ljava/io/File;
HSPLandroid/os/Environment;->buildPaths([Ljava/io/File;[Ljava/lang/String;)[Ljava/io/File;
+HSPLandroid/os/Environment;->getApexDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getDataAppDirectory(Ljava/lang/String;)Ljava/io/File;
HSPLandroid/os/Environment;->getDataDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getDataDirectory(Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataMiscCeDirectory()Ljava/io/File;
+HPLandroid/os/Environment;->getDataPreloadsDirectory()Ljava/io/File;
+HPLandroid/os/Environment;->getDataPreloadsFileCacheDirectory()Ljava/io/File;
+HPLandroid/os/Environment;->getDataPreloadsFileCacheDirectory(Ljava/lang/String;)Ljava/io/File;
HSPLandroid/os/Environment;->getDataProfilesDeDirectory(I)Ljava/io/File;
HSPLandroid/os/Environment;->getDataProfilesDePackageDirectory(ILjava/lang/String;)Ljava/io/File;
+PLandroid/os/Environment;->getDataRefProfilesDePackageDirectory(Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataSystemCeDirectory()Ljava/io/File;
+PLandroid/os/Environment;->getDataSystemCeDirectory(I)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataSystemDeDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getDataSystemDeDirectory(I)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataSystemDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getDataUserCeDirectory(Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataUserCeDirectory(Ljava/lang/String;I)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataUserCePackageDirectory(Ljava/lang/String;ILjava/lang/String;)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataUserDeDirectory(Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataUserDeDirectory(Ljava/lang/String;I)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataUserDePackageDirectory(Ljava/lang/String;ILjava/lang/String;)Ljava/io/File;
+HSPLandroid/os/Environment;->getDataVendorDeDirectory(I)Ljava/io/File;
+HSPLandroid/os/Environment;->getDownloadCacheDirectory()Ljava/io/File;
HSPLandroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
HSPLandroid/os/Environment;->getExternalStoragePublicDirectory(Ljava/lang/String;)Ljava/io/File;
HSPLandroid/os/Environment;->getExternalStorageState()Ljava/lang/String;
+HSPLandroid/os/Environment;->getExternalStorageState(Ljava/io/File;)Ljava/lang/String;
+HSPLandroid/os/Environment;->getLegacyExternalStorageDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getOdmDirectory()Ljava/io/File;
HSPLandroid/os/Environment;->getOemDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getPackageCacheDirectory()Ljava/io/File;
HSPLandroid/os/Environment;->getProductDirectory()Ljava/io/File;
HSPLandroid/os/Environment;->getRootDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getStorageDirectory()Ljava/io/File;
+HSPLandroid/os/Environment;->getStorageState(Ljava/io/File;)Ljava/lang/String;
+HSPLandroid/os/Environment;->getSystemExtDirectory()Ljava/io/File;
HSPLandroid/os/Environment;->getUserConfigDirectory(I)Ljava/io/File;
+HSPLandroid/os/Environment;->getUserSystemDirectory(I)Ljava/io/File;
+HSPLandroid/os/Environment;->getVendorDirectory()Ljava/io/File;
HSPLandroid/os/Environment;->initForCurrentUser()V
+HSPLandroid/os/Environment;->isExternalStorageEmulated()Z
+HSPLandroid/os/Environment;->isExternalStorageEmulated(Ljava/io/File;)Z
+HPLandroid/os/Environment;->isExternalStorageLegacy()Z
+HPLandroid/os/Environment;->isExternalStorageLegacy(Ljava/io/File;)Z
+HSPLandroid/os/Environment;->isExternalStorageRemovable()Z
HSPLandroid/os/Environment;->isExternalStorageRemovable(Ljava/io/File;)Z
+HSPLandroid/os/Environment;->setUserRequired(Z)V
HSPLandroid/os/Environment;->throwIfUserRequired()V
+HSPLandroid/os/EventLogTags;->writeServiceManagerSlow(ILjava/lang/String;)V
HSPLandroid/os/FactoryTest;->getMode()I
+PLandroid/os/FactoryTest;->isLongPressOnPowerOffEnabled()Z
+HPLandroid/os/FileBridge$FileBridgeOutputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V
+HPLandroid/os/FileBridge$FileBridgeOutputStream;->close()V
+HPLandroid/os/FileBridge$FileBridgeOutputStream;->fsync()V
+HPLandroid/os/FileBridge$FileBridgeOutputStream;->write([BII)V
+HPLandroid/os/FileBridge$FileBridgeOutputStream;->writeCommandAndBlock(ILjava/lang/String;)V
+PLandroid/os/FileBridge;-><init>()V
+PLandroid/os/FileBridge;->forceClose()V
+PLandroid/os/FileBridge;->getClientSocket()Ljava/io/FileDescriptor;
+PLandroid/os/FileBridge;->isClosed()Z
+HPLandroid/os/FileBridge;->run()V
+PLandroid/os/FileBridge;->setTargetFile(Ljava/io/FileDescriptor;)V
HSPLandroid/os/FileObserver$ObserverThread;-><init>()V
+HSPLandroid/os/FileObserver$ObserverThread;->onEvent(IILjava/lang/String;)V
HSPLandroid/os/FileObserver$ObserverThread;->run()V
HSPLandroid/os/FileObserver$ObserverThread;->startWatching(Ljava/util/List;ILandroid/os/FileObserver;)[I
+HPLandroid/os/FileObserver$ObserverThread;->stopWatching([I)V
HSPLandroid/os/FileObserver;-><clinit>()V
+HSPLandroid/os/FileObserver;-><init>(Ljava/io/File;)V
+HSPLandroid/os/FileObserver;-><init>(Ljava/io/File;I)V
+HSPLandroid/os/FileObserver;-><init>(Ljava/lang/String;)V
HSPLandroid/os/FileObserver;-><init>(Ljava/lang/String;I)V
+HSPLandroid/os/FileObserver;-><init>(Ljava/util/List;)V
HSPLandroid/os/FileObserver;-><init>(Ljava/util/List;I)V
+HPLandroid/os/FileObserver;->finalize()V
HSPLandroid/os/FileObserver;->startWatching()V
+HPLandroid/os/FileObserver;->stopWatching()V
+PLandroid/os/FileUtils$1;-><init>()V
+HPLandroid/os/FileUtils$1;->compare(Ljava/io/File;Ljava/io/File;)I
+HPLandroid/os/FileUtils$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLandroid/os/FileUtils;->buildValidExtFilename(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/os/FileUtils;->buildValidFatFilename(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/os/FileUtils;->bytesToFile(Ljava/lang/String;[B)V
+PLandroid/os/FileUtils;->closeQuietly(Ljava/io/FileDescriptor;)V
HSPLandroid/os/FileUtils;->closeQuietly(Ljava/lang/AutoCloseable;)V
HSPLandroid/os/FileUtils;->contains(Ljava/io/File;Ljava/io/File;)Z
HSPLandroid/os/FileUtils;->contains(Ljava/lang/String;Ljava/lang/String;)Z
+PLandroid/os/FileUtils;->contains([Ljava/io/File;Ljava/io/File;)Z
+PLandroid/os/FileUtils;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;)J
+PLandroid/os/FileUtils;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/os/FileUtils$ProgressListener;)J
+HPLandroid/os/FileUtils;->copyInternalUserspace(Ljava/io/InputStream;Ljava/io/OutputStream;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/os/FileUtils$ProgressListener;)J
+HSPLandroid/os/FileUtils;->createDir(Ljava/io/File;)Z
+HSPLandroid/os/FileUtils;->createDir(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/os/FileUtils;->deleteContents(Ljava/io/File;)Z
+HSPLandroid/os/FileUtils;->deleteContentsAndDir(Ljava/io/File;)Z
+HPLandroid/os/FileUtils;->deleteOlderFiles(Ljava/io/File;IJ)Z
+HSPLandroid/os/FileUtils;->isValidExtFilename(Ljava/lang/String;)Z
+HSPLandroid/os/FileUtils;->isValidExtFilenameChar(C)Z
+HSPLandroid/os/FileUtils;->isValidFatFilenameChar(C)Z
+HSPLandroid/os/FileUtils;->listFilesOrEmpty(Ljava/io/File;)[Ljava/io/File;
+HSPLandroid/os/FileUtils;->listOrEmpty(Ljava/io/File;)[Ljava/lang/String;
HSPLandroid/os/FileUtils;->newFileOrNull(Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/os/FileUtils;->readTextFile(Ljava/io/File;ILjava/lang/String;)Ljava/lang/String;
+PLandroid/os/FileUtils;->rewriteAfterRename(Ljava/io/File;Ljava/io/File;Ljava/io/File;)Ljava/io/File;
+PLandroid/os/FileUtils;->rewriteAfterRename(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/os/FileUtils;->rewriteAfterRename(Ljava/io/File;Ljava/io/File;[Ljava/lang/String;)[Ljava/lang/String;
+PLandroid/os/FileUtils;->roundStorageSize(J)J
+HSPLandroid/os/FileUtils;->setPermissions(Ljava/io/File;III)I
+HSPLandroid/os/FileUtils;->setPermissions(Ljava/io/FileDescriptor;III)I
HSPLandroid/os/FileUtils;->setPermissions(Ljava/lang/String;III)I
+HSPLandroid/os/FileUtils;->stringToFile(Ljava/io/File;Ljava/lang/String;)V
+HSPLandroid/os/FileUtils;->stringToFile(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/os/FileUtils;->sync(Ljava/io/FileOutputStream;)Z
HSPLandroid/os/FileUtils;->translateModePfdToPosix(I)I
HSPLandroid/os/FileUtils;->translateModePosixToPfd(I)I
@@ -5203,7 +17035,12 @@ HSPLandroid/os/GraphicsEnvironment;->setLayerPaths(Ljava/lang/ClassLoader;Ljava/
HSPLandroid/os/GraphicsEnvironment;->setup(Landroid/content/Context;Landroid/os/Bundle;)V
HSPLandroid/os/GraphicsEnvironment;->setupAngle(Landroid/content/Context;Landroid/os/Bundle;Landroid/content/pm/PackageManager;Ljava/lang/String;)Z
HSPLandroid/os/GraphicsEnvironment;->setupGpuLayers(Landroid/content/Context;Landroid/os/Bundle;Landroid/content/pm/PackageManager;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)V
+HSPLandroid/os/GraphicsEnvironment;->shouldShowAngleInUseDialogBox(Landroid/content/Context;)Z
HSPLandroid/os/GraphicsEnvironment;->shouldUseAngle(Landroid/content/Context;Landroid/os/Bundle;Ljava/lang/String;)Z
+HSPLandroid/os/GraphicsEnvironment;->showAngleInUseDialogBox(Landroid/content/Context;)V
+HSPLandroid/os/Handler$BlockingRunnable;-><init>(Ljava/lang/Runnable;)V
+HSPLandroid/os/Handler$BlockingRunnable;->postAndWait(Landroid/os/Handler;J)Z
+HSPLandroid/os/Handler$BlockingRunnable;->run()V
HSPLandroid/os/Handler$MessengerImpl;-><init>(Landroid/os/Handler;)V
HSPLandroid/os/Handler$MessengerImpl;-><init>(Landroid/os/Handler;Landroid/os/Handler$1;)V
HSPLandroid/os/Handler$MessengerImpl;->send(Landroid/os/Message;)V
@@ -5213,16 +17050,25 @@ HSPLandroid/os/Handler;-><init>(Landroid/os/Handler$Callback;Z)V
HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;)V
HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V
HSPLandroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;Z)V
+HSPLandroid/os/Handler;-><init>(Z)V
HSPLandroid/os/Handler;->createAsync(Landroid/os/Looper;)Landroid/os/Handler;
HSPLandroid/os/Handler;->dispatchMessage(Landroid/os/Message;)V
+PLandroid/os/Handler;->dump(Landroid/util/Printer;Ljava/lang/String;)V
HSPLandroid/os/Handler;->enqueueMessage(Landroid/os/MessageQueue;Landroid/os/Message;J)Z
+HSPLandroid/os/Handler;->executeOrSendMessage(Landroid/os/Message;)Z
HSPLandroid/os/Handler;->getIMessenger()Landroid/os/IMessenger;
HSPLandroid/os/Handler;->getLooper()Landroid/os/Looper;
HSPLandroid/os/Handler;->getMain()Landroid/os/Handler;
+PLandroid/os/Handler;->getMessageName(Landroid/os/Message;)Ljava/lang/String;
HSPLandroid/os/Handler;->getPostMessage(Ljava/lang/Runnable;)Landroid/os/Message;
+HSPLandroid/os/Handler;->getPostMessage(Ljava/lang/Runnable;Ljava/lang/Object;)Landroid/os/Message;
+HPLandroid/os/Handler;->getTraceName(Landroid/os/Message;)Ljava/lang/String;
+HSPLandroid/os/Handler;->handleCallback(Landroid/os/Message;)V
HSPLandroid/os/Handler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/os/Handler;->hasCallbacks(Ljava/lang/Runnable;)Z
HSPLandroid/os/Handler;->hasMessages(I)Z
HSPLandroid/os/Handler;->hasMessages(ILjava/lang/Object;)Z
+HSPLandroid/os/Handler;->hasMessagesOrCallbacks()Z
HSPLandroid/os/Handler;->obtainMessage()Landroid/os/Message;
HSPLandroid/os/Handler;->obtainMessage(I)Landroid/os/Message;
HSPLandroid/os/Handler;->obtainMessage(III)Landroid/os/Message;
@@ -5230,80 +17076,339 @@ HSPLandroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message
HSPLandroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
HSPLandroid/os/Handler;->post(Ljava/lang/Runnable;)Z
HSPLandroid/os/Handler;->postAtFrontOfQueue(Ljava/lang/Runnable;)Z
-HSPLandroid/os/Handler;->postAtTime(Ljava/lang/Runnable;J)Z
+PLandroid/os/Handler;->postAtTime(Ljava/lang/Runnable;J)Z
HSPLandroid/os/Handler;->postAtTime(Ljava/lang/Runnable;Ljava/lang/Object;J)Z
HSPLandroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
+HSPLandroid/os/Handler;->postDelayed(Ljava/lang/Runnable;Ljava/lang/Object;J)Z
HSPLandroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
HSPLandroid/os/Handler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
HSPLandroid/os/Handler;->removeMessages(I)V
HSPLandroid/os/Handler;->removeMessages(ILjava/lang/Object;)V
+HSPLandroid/os/Handler;->runWithScissors(Ljava/lang/Runnable;J)Z
HSPLandroid/os/Handler;->sendEmptyMessage(I)Z
-HSPLandroid/os/Handler;->sendEmptyMessageAtTime(IJ)Z
+PLandroid/os/Handler;->sendEmptyMessageAtTime(IJ)Z
HSPLandroid/os/Handler;->sendEmptyMessageDelayed(IJ)Z
HSPLandroid/os/Handler;->sendMessage(Landroid/os/Message;)Z
HSPLandroid/os/Handler;->sendMessageAtFrontOfQueue(Landroid/os/Message;)Z
HSPLandroid/os/Handler;->sendMessageAtTime(Landroid/os/Message;J)Z
HSPLandroid/os/Handler;->sendMessageDelayed(Landroid/os/Message;J)Z
+HSPLandroid/os/Handler;->toString()Ljava/lang/String;
HSPLandroid/os/HandlerExecutor;-><init>(Landroid/os/Handler;)V
HSPLandroid/os/HandlerExecutor;->execute(Ljava/lang/Runnable;)V
HSPLandroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
HSPLandroid/os/HandlerThread;-><init>(Ljava/lang/String;I)V
HSPLandroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
HSPLandroid/os/HandlerThread;->getThreadHandler()Landroid/os/Handler;
+HSPLandroid/os/HandlerThread;->getThreadId()I
HSPLandroid/os/HandlerThread;->onLooperPrepared()V
HSPLandroid/os/HandlerThread;->quit()Z
HSPLandroid/os/HandlerThread;->quitSafely()Z
HSPLandroid/os/HandlerThread;->run()V
+HPLandroid/os/HardwarePropertiesManager;-><init>(Landroid/content/Context;Landroid/os/IHardwarePropertiesManager;)V
+HSPLandroid/os/HidlSupport;->interfacesEqual(Landroid/os/IHwInterface;Ljava/lang/Object;)Z
HSPLandroid/os/HwBinder;-><init>()V
HSPLandroid/os/HwBinder;->getService(Ljava/lang/String;Ljava/lang/String;)Landroid/os/IHwBinder;
HSPLandroid/os/HwBlob;-><init>(I)V
+HPLandroid/os/HwBlob;->wrapArray([B)[Ljava/lang/Byte;
+HSPLandroid/os/HwBlob;->wrapArray([I)[Ljava/lang/Integer;
HSPLandroid/os/HwParcel;-><init>()V
HSPLandroid/os/HwParcel;-><init>(Z)V
+HSPLandroid/os/HwParcel;->readInt32Vector()Ljava/util/ArrayList;
+PLandroid/os/HwParcel;->readInt8Vector()Ljava/util/ArrayList;
HSPLandroid/os/HwParcel;->readStringVector()Ljava/util/ArrayList;
+PLandroid/os/HwParcel;->writeInt16Vector(Ljava/util/ArrayList;)V
+HSPLandroid/os/HwParcel;->writeInt32Vector(Ljava/util/ArrayList;)V
+HPLandroid/os/HwParcel;->writeInt8Vector(Ljava/util/ArrayList;)V
+HSPLandroid/os/HwParcel;->writeStringVector(Ljava/util/ArrayList;)V
HSPLandroid/os/HwRemoteBinder;-><init>()V
HSPLandroid/os/HwRemoteBinder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IHwInterface;
+PLandroid/os/HwRemoteBinder;->sendDeathNotice(Landroid/os/IHwBinder$DeathRecipient;J)V
+HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->getProperty(ILandroid/os/BatteryProperty;)I
+HSPLandroid/os/IBatteryPropertiesRegistrar$Stub;-><init>()V
HSPLandroid/os/IBatteryPropertiesRegistrar$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IBatteryPropertiesRegistrar;
+PLandroid/os/IBatteryPropertiesRegistrar$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/os/IBatteryPropertiesRegistrar$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/os/ICancellationSignal$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/os/ICancellationSignal$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/os/ICancellationSignal$Stub$Proxy;->cancel()V
+PLandroid/os/ICancellationSignal$Stub;->asBinder()Landroid/os/IBinder;
HSPLandroid/os/ICancellationSignal$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ICancellationSignal;
+PLandroid/os/ICancellationSignal$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IDeviceIdentifiersPolicyService$Stub$Proxy;->getSerialForPackage(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/os/IDeviceIdentifiersPolicyService$Stub;-><init>()V
+HSPLandroid/os/IDeviceIdentifiersPolicyService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdentifiersPolicyService;
+PLandroid/os/IDeviceIdentifiersPolicyService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/os/IDeviceIdentifiersPolicyService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IDeviceIdleController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/os/IDeviceIdleController$Stub$Proxy;->addPowerSaveTempWhitelistApp(Ljava/lang/String;JILjava/lang/String;)V
+HPLandroid/os/IDeviceIdleController$Stub$Proxy;->getFullPowerWhitelist()[Ljava/lang/String;
+HPLandroid/os/IDeviceIdleController$Stub$Proxy;->getSystemPowerWhitelist()[Ljava/lang/String;
+HPLandroid/os/IDeviceIdleController$Stub$Proxy;->getSystemPowerWhitelistExceptIdle()[Ljava/lang/String;
+HSPLandroid/os/IDeviceIdleController$Stub$Proxy;->isPowerSaveWhitelistApp(Ljava/lang/String;)Z
+HSPLandroid/os/IDeviceIdleController$Stub;-><init>()V
HSPLandroid/os/IDeviceIdleController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdleController;
+PLandroid/os/IDeviceIdleController$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/os/IDeviceIdleController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/os/IDumpstate$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/IDumpstate$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/os/IDumpstate$Stub$Proxy;->startBugreport(ILjava/lang/String;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;ILandroid/os/IDumpstateListener;)V
+HSPLandroid/os/IDumpstate$Stub;-><init>()V
+PLandroid/os/IDumpstate$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDumpstate;
+PLandroid/os/IDumpstate$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/os/IDumpstateListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/IDumpstateListener$Stub$Proxy;->onFinished()V
+HPLandroid/os/IDumpstateListener$Stub$Proxy;->onProgress(I)V
+PLandroid/os/IDumpstateListener$Stub;-><init>()V
+PLandroid/os/IDumpstateListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/os/IDumpstateListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDumpstateListener;
+PLandroid/os/IDumpstateListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IExternalVibratorService$Stub;-><init>()V
+PLandroid/os/IExternalVibratorService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IHardwarePropertiesManager$Stub;-><init>()V
+HPLandroid/os/IHardwarePropertiesManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IHardwarePropertiesManager;
+PLandroid/os/IHardwarePropertiesManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/os/IIncidentAuthListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/IIncidentAuthListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/os/IIncidentAuthListener$Stub$Proxy;->onReportDenied()V
+PLandroid/os/IIncidentAuthListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IIncidentAuthListener;
+HSPLandroid/os/IIncidentCompanion$Stub;-><init>()V
+HSPLandroid/os/IIncidentCompanion$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IIncidentCompanion;
+HPLandroid/os/IIncidentCompanion$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/os/IIncidentManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/IIncidentManager$Stub$Proxy;->deleteIncidentReports(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/os/IIncidentManager$Stub$Proxy;->getIncidentReport(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/IncidentManager$IncidentReport;
+PLandroid/os/IIncidentManager$Stub$Proxy;->getIncidentReportList(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+PLandroid/os/IIncidentManager$Stub$Proxy;->systemRunning()V
+PLandroid/os/IIncidentManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IIncidentManager;
+HSPLandroid/os/IInstalld$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/IInstalld$Stub$Proxy;->clearAppData(Ljava/lang/String;Ljava/lang/String;IIJ)V
+HSPLandroid/os/IInstalld$Stub$Proxy;->clearAppProfiles(Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/os/IInstalld$Stub$Proxy;->copySystemProfile(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/os/IInstalld$Stub$Proxy;->createAppData(Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;I)J
+PLandroid/os/IInstalld$Stub$Proxy;->createProfileSnapshot(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+PLandroid/os/IInstalld$Stub$Proxy;->createUserData(Ljava/lang/String;III)V
+PLandroid/os/IInstalld$Stub$Proxy;->destroyAppData(Ljava/lang/String;Ljava/lang/String;IIJ)V
+PLandroid/os/IInstalld$Stub$Proxy;->destroyProfileSnapshot(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/IInstalld$Stub$Proxy;->dexopt(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/IInstalld$Stub$Proxy;->fixupAppData(Ljava/lang/String;I)V
+HPLandroid/os/IInstalld$Stub$Proxy;->getAppSize(Ljava/lang/String;[Ljava/lang/String;III[J[Ljava/lang/String;)[J
+PLandroid/os/IInstalld$Stub$Proxy;->getExternalSize(Ljava/lang/String;II[I)[J
+HPLandroid/os/IInstalld$Stub$Proxy;->getUserSize(Ljava/lang/String;II[I)[J
+PLandroid/os/IInstalld$Stub$Proxy;->hashSecondaryDexFile(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;I)[B
+HSPLandroid/os/IInstalld$Stub$Proxy;->invalidateMounts()V
+PLandroid/os/IInstalld$Stub$Proxy;->isQuotaSupported(Ljava/lang/String;)Z
+PLandroid/os/IInstalld$Stub$Proxy;->linkNativeLibraryDirectory(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+PLandroid/os/IInstalld$Stub$Proxy;->markBootComplete(Ljava/lang/String;)V
+PLandroid/os/IInstalld$Stub$Proxy;->mergeProfiles(ILjava/lang/String;Ljava/lang/String;)Z
+PLandroid/os/IInstalld$Stub$Proxy;->migrateLegacyObbData()V
+PLandroid/os/IInstalld$Stub$Proxy;->moveAb(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/IInstalld$Stub$Proxy;->prepareAppProfile(Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+PLandroid/os/IInstalld$Stub$Proxy;->reconcileSecondaryDexFile(Ljava/lang/String;Ljava/lang/String;I[Ljava/lang/String;Ljava/lang/String;I)Z
+PLandroid/os/IInstalld$Stub$Proxy;->rmPackageDir(Ljava/lang/String;)V
+PLandroid/os/IInstalld$Stub$Proxy;->rmdex(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/IInstalld$Stub$Proxy;->setAppQuota(Ljava/lang/String;IIJ)V
+HSPLandroid/os/IInstalld$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IInstalld;
+HSPLandroid/os/IMessenger$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/IMessenger$Stub$Proxy;->asBinder()Landroid/os/IBinder;
HSPLandroid/os/IMessenger$Stub$Proxy;->send(Landroid/os/Message;)V
HSPLandroid/os/IMessenger$Stub;-><init>()V
HSPLandroid/os/IMessenger$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/os/IMessenger$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IMessenger;
HSPLandroid/os/IMessenger$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/os/INetworkActivityListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/INetworkActivityListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/os/INetworkActivityListener$Stub$Proxy;->onNetworkActive()V
+PLandroid/os/INetworkActivityListener$Stub;-><init>()V
+PLandroid/os/INetworkActivityListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/os/INetworkActivityListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/INetworkActivityListener;
+HPLandroid/os/INetworkActivityListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/os/INetworkManagementService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/INetworkManagementService$Stub$Proxy;->isNetworkActive()Z
+PLandroid/os/INetworkManagementService$Stub$Proxy;->registerNetworkActivityListener(Landroid/os/INetworkActivityListener;)V
HSPLandroid/os/INetworkManagementService$Stub$Proxy;->setUidCleartextNetworkPolicy(II)V
+HSPLandroid/os/INetworkManagementService$Stub;-><init>()V
HSPLandroid/os/INetworkManagementService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/INetworkManagementService;
+PLandroid/os/INetworkManagementService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/os/INetworkManagementService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IPermissionController$Stub;-><init>()V
+PLandroid/os/IPermissionController$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/os/IPermissionController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/os/IPowerManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/os/IPowerManager$Stub$Proxy;->acquireWakeLock(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;)V
+HPLandroid/os/IPowerManager$Stub$Proxy;->getPowerSaveState(I)Landroid/os/PowerSaveState;
HSPLandroid/os/IPowerManager$Stub$Proxy;->isDeviceIdleMode()Z
HSPLandroid/os/IPowerManager$Stub$Proxy;->isInteractive()Z
+HSPLandroid/os/IPowerManager$Stub$Proxy;->isLightDeviceIdleMode()Z
HSPLandroid/os/IPowerManager$Stub$Proxy;->isPowerSaveMode()Z
HSPLandroid/os/IPowerManager$Stub$Proxy;->releaseWakeLock(Landroid/os/IBinder;I)V
+HSPLandroid/os/IPowerManager$Stub$Proxy;->setDynamicPowerSaveHint(ZI)Z
+HSPLandroid/os/IPowerManager$Stub$Proxy;->updateWakeLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;)V
+HPLandroid/os/IPowerManager$Stub$Proxy;->userActivity(JII)V
+HPLandroid/os/IPowerManager$Stub$Proxy;->wakeUp(JILjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/IPowerManager$Stub;-><init>()V
HSPLandroid/os/IPowerManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IPowerManager;
+PLandroid/os/IPowerManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/os/IPowerManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IProcessInfoService$Stub;-><init>()V
+PLandroid/os/IProcessInfoService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/os/IProcessInfoService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IProgressListener$Stub;-><init>()V
+HSPLandroid/os/IProgressListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/os/IRecoverySystem$Stub;-><init>()V
+PLandroid/os/IRecoverySystem$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IRemoteCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/os/IRemoteCallback$Stub$Proxy;->sendResult(Landroid/os/Bundle;)V
+HSPLandroid/os/IRemoteCallback$Stub;-><init>()V
+PLandroid/os/IRemoteCallback$Stub;->asBinder()Landroid/os/IBinder;
HSPLandroid/os/IRemoteCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IRemoteCallback;
+PLandroid/os/IRemoteCallback$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/os/IRemoteCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/ISchedulingPolicyService$Stub;-><init>()V
+PLandroid/os/ISchedulingPolicyService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/os/ISchedulingPolicyService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IServiceManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/os/IServiceManager$Stub$Proxy;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V
HSPLandroid/os/IServiceManager$Stub$Proxy;->checkService(Ljava/lang/String;)Landroid/os/IBinder;
-HSPLandroid/os/IStatsManager$Stub$Proxy;->asBinder()Landroid/os/IBinder;
-HSPLandroid/os/IStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IStatsManager;
+HSPLandroid/os/IServiceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IServiceManager;
+HSPLandroid/os/IStatsCompanionService$Stub;-><init>()V
+PLandroid/os/IStatsCompanionService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/os/IStatsCompanionService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IStatsd$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/IStatsd$Stub$Proxy;->addConfiguration(J[BLjava/lang/String;)V
+HSPLandroid/os/IStatsd$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/os/IStatsd$Stub$Proxy;->getData(JLjava/lang/String;)[B
+PLandroid/os/IStatsd$Stub$Proxy;->getMetadata(Ljava/lang/String;)[B
+HPLandroid/os/IStatsd$Stub$Proxy;->getRegisteredExperimentIds()[J
+HPLandroid/os/IStatsd$Stub$Proxy;->informAlarmForSubscriberTriggeringFired()V
+HSPLandroid/os/IStatsd$Stub$Proxy;->informAllUidData(Landroid/os/ParcelFileDescriptor;)V
+PLandroid/os/IStatsd$Stub$Proxy;->informAnomalyAlarmFired()V
+HPLandroid/os/IStatsd$Stub$Proxy;->informOnePackage(Ljava/lang/String;IJLjava/lang/String;Ljava/lang/String;)V
+HPLandroid/os/IStatsd$Stub$Proxy;->informPollAlarmFired()V
+PLandroid/os/IStatsd$Stub$Proxy;->removeActiveConfigsChangedOperation(Ljava/lang/String;)V
+PLandroid/os/IStatsd$Stub$Proxy;->sendAppBreadcrumbAtom(II)V
+PLandroid/os/IStatsd$Stub$Proxy;->setActiveConfigsChangedOperation(Landroid/os/IBinder;Ljava/lang/String;)[J
+HPLandroid/os/IStatsd$Stub$Proxy;->setDataFetchOperation(JLandroid/os/IBinder;Ljava/lang/String;)V
+HSPLandroid/os/IStatsd$Stub$Proxy;->statsCompanionReady()V
+HSPLandroid/os/IStatsd$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IStatsd;
+HSPLandroid/os/IStoraged$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/IStoraged$Stub$Proxy;->getRecentPerf()I
+PLandroid/os/IStoraged$Stub$Proxy;->onUserStarted(I)V
+HSPLandroid/os/IStoraged$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IStoraged;
+PLandroid/os/ISystemUpdateManager$Stub$Proxy;->retrieveSystemUpdateInfo()Landroid/os/Bundle;
+HPLandroid/os/ISystemUpdateManager$Stub$Proxy;->updateSystemUpdateInfo(Landroid/os/PersistableBundle;)V
+HSPLandroid/os/ISystemUpdateManager$Stub;-><init>()V
+HSPLandroid/os/ISystemUpdateManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ISystemUpdateManager;
+PLandroid/os/ISystemUpdateManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/os/ISystemUpdateManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/os/IThermalEventListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/IThermalEventListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/os/IThermalEventListener$Stub$Proxy;->notifyThrottling(Landroid/os/Temperature;)V
+HSPLandroid/os/IThermalEventListener$Stub;-><init>()V
+HSPLandroid/os/IThermalEventListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/os/IThermalEventListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IThermalEventListener;
+HPLandroid/os/IThermalEventListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IThermalService$Stub$Proxy;->getCurrentThermalStatus()I
+HSPLandroid/os/IThermalService$Stub;-><init>()V
HSPLandroid/os/IThermalService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IThermalService;
+PLandroid/os/IThermalService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/os/IThermalStatusListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/IThermalStatusListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/os/IThermalStatusListener$Stub$Proxy;->onStatusChange(I)V
+HSPLandroid/os/IThermalStatusListener$Stub;-><init>()V
+HSPLandroid/os/IThermalStatusListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/os/IThermalStatusListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IThermalStatusListener;
+PLandroid/os/IUpdateEngine$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/IUpdateEngine$Stub$Proxy;->bind(Landroid/os/IUpdateEngineCallback;)Z
+PLandroid/os/IUpdateEngine$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUpdateEngine;
+PLandroid/os/IUpdateEngineCallback$Stub;-><init>()V
+PLandroid/os/IUpdateEngineCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/os/IUpdateEngineCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IUpdateLock$Stub;-><init>()V
+PLandroid/os/IUpdateLock$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/os/IUserManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/os/IUserManager$Stub$Proxy;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
HSPLandroid/os/IUserManager$Stub$Proxy;->getProfileIds(IZ)[I
HSPLandroid/os/IUserManager$Stub$Proxy;->getProfileParent(I)Landroid/content/pm/UserInfo;
HSPLandroid/os/IUserManager$Stub$Proxy;->getProfiles(IZ)Ljava/util/List;
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserBadgeColorResId(I)I
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserBadgeLabelResId(I)I
+HPLandroid/os/IUserManager$Stub$Proxy;->getUserBadgeNoBackgroundResId(I)I
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserCreationTime(I)J
HSPLandroid/os/IUserManager$Stub$Proxy;->getUserHandle(I)I
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserIcon(I)Landroid/os/ParcelFileDescriptor;
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserIconBadgeResId(I)I
HSPLandroid/os/IUserManager$Stub$Proxy;->getUserInfo(I)Landroid/content/pm/UserInfo;
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserName()Ljava/lang/String;
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserRestrictionSources(Ljava/lang/String;I)Ljava/util/List;
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserRestrictions(I)Landroid/os/Bundle;
HSPLandroid/os/IUserManager$Stub$Proxy;->getUserSerialNumber(I)I
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserStartRealtime()J
+HSPLandroid/os/IUserManager$Stub$Proxy;->getUserUnlockRealtime()J
HSPLandroid/os/IUserManager$Stub$Proxy;->getUsers(ZZZ)Ljava/util/List;
+HSPLandroid/os/IUserManager$Stub$Proxy;->hasBadge(I)Z
+HSPLandroid/os/IUserManager$Stub$Proxy;->hasBaseUserRestriction(Ljava/lang/String;I)Z
HSPLandroid/os/IUserManager$Stub$Proxy;->hasUserRestriction(Ljava/lang/String;I)Z
HSPLandroid/os/IUserManager$Stub$Proxy;->isDemoUser(I)Z
HSPLandroid/os/IUserManager$Stub$Proxy;->isManagedProfile(I)Z
+HSPLandroid/os/IUserManager$Stub$Proxy;->isProfile(I)Z
+HSPLandroid/os/IUserManager$Stub$Proxy;->isQuietModeEnabled(I)Z
+HSPLandroid/os/IUserManager$Stub$Proxy;->isRestricted()Z
HSPLandroid/os/IUserManager$Stub$Proxy;->isUserRunning(I)Z
HSPLandroid/os/IUserManager$Stub$Proxy;->isUserUnlocked(I)Z
HSPLandroid/os/IUserManager$Stub$Proxy;->isUserUnlockingOrUnlocked(I)Z
+HSPLandroid/os/IUserManager$Stub;-><init>()V
HSPLandroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
+PLandroid/os/IUserManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/os/IUserManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IUserRestrictionsListener$Stub;-><init>()V
HSPLandroid/os/IVibratorService$Stub$Proxy;->hasVibrator()Z
+HPLandroid/os/IVibratorService$Stub$Proxy;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;Ljava/lang/String;Landroid/os/IBinder;)V
+HSPLandroid/os/IVibratorService$Stub;-><init>()V
+HSPLandroid/os/IVibratorService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVibratorService;
+PLandroid/os/IVibratorService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IVold$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/IVold$Stub$Proxy;->abortIdleMaint(Landroid/os/IVoldTaskListener;)V
+PLandroid/os/IVold$Stub$Proxy;->commitChanges()V
+PLandroid/os/IVold$Stub$Proxy;->fdeClearPassword()V
+PLandroid/os/IVold$Stub$Proxy;->fdeGetPassword()Ljava/lang/String;
+HSPLandroid/os/IVold$Stub$Proxy;->fstrim(ILandroid/os/IVoldTaskListener;)V
+PLandroid/os/IVold$Stub$Proxy;->mkdirs(Ljava/lang/String;)V
+PLandroid/os/IVold$Stub$Proxy;->monitor()V
+PLandroid/os/IVold$Stub$Proxy;->mount(Ljava/lang/String;IILandroid/os/IVoldMountCallback;)V
+PLandroid/os/IVold$Stub$Proxy;->mountAppFuse(II)Ljava/io/FileDescriptor;
+HSPLandroid/os/IVold$Stub$Proxy;->needsCheckpoint()Z
+PLandroid/os/IVold$Stub$Proxy;->onSecureKeyguardStateChanged(Z)V
+PLandroid/os/IVold$Stub$Proxy;->onUserAdded(II)V
+PLandroid/os/IVold$Stub$Proxy;->onUserStarted(I)V
+PLandroid/os/IVold$Stub$Proxy;->openAppFuseFile(IIII)Ljava/io/FileDescriptor;
+PLandroid/os/IVold$Stub$Proxy;->prepareUserStorage(Ljava/lang/String;III)V
+HPLandroid/os/IVold$Stub$Proxy;->remountUid(II)V
+PLandroid/os/IVold$Stub$Proxy;->reset()V
+PLandroid/os/IVold$Stub$Proxy;->runIdleMaint(Landroid/os/IVoldTaskListener;)V
+HSPLandroid/os/IVold$Stub$Proxy;->setListener(Landroid/os/IVoldListener;)V
+PLandroid/os/IVold$Stub$Proxy;->supportsBlockCheckpoint()Z
+PLandroid/os/IVold$Stub$Proxy;->unlockUserKey(IILjava/lang/String;Ljava/lang/String;)V
+PLandroid/os/IVold$Stub$Proxy;->unmountAppFuse(II)V
+HSPLandroid/os/IVold$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVold;
+HSPLandroid/os/IVoldListener$Stub;-><init>()V
+HSPLandroid/os/IVoldListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/os/IVoldListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/os/IVoldMountCallback$Stub;-><init>()V
+PLandroid/os/IVoldMountCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/os/IVoldTaskListener$Stub;-><init>()V
+HSPLandroid/os/IVoldTaskListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/os/IVoldTaskListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/IncidentManager$IncidentReport$1;-><init>()V
+HSPLandroid/os/IncidentManager$IncidentReport$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/IncidentManager$IncidentReport;
+HSPLandroid/os/IncidentManager$IncidentReport$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/IncidentManager$IncidentReport;-><clinit>()V
+HSPLandroid/os/IncidentManager$IncidentReport;-><init>(Landroid/os/Parcel;)V
+PLandroid/os/IncidentManager$IncidentReport;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/IncidentManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/os/IncidentManager;->getCompanionServiceLocked()Landroid/os/IIncidentCompanion;
+HSPLandroid/os/IncidentManager;->getIncidentReport(Landroid/net/Uri;)Landroid/os/IncidentManager$IncidentReport;
+HSPLandroid/os/IncidentManager;->getIncidentReportList(Ljava/lang/String;)Ljava/util/List;
HSPLandroid/os/LocaleList$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/LocaleList;
HSPLandroid/os/LocaleList$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/os/LocaleList;-><init>(Ljava/util/Locale;Landroid/os/LocaleList;)V
@@ -5314,16 +17419,21 @@ HSPLandroid/os/LocaleList;->get(I)Ljava/util/Locale;
HSPLandroid/os/LocaleList;->getAdjustedDefault()Landroid/os/LocaleList;
HSPLandroid/os/LocaleList;->getDefault()Landroid/os/LocaleList;
HSPLandroid/os/LocaleList;->getEmptyLocaleList()Landroid/os/LocaleList;
+HSPLandroid/os/LocaleList;->hashCode()I
HSPLandroid/os/LocaleList;->isEmpty()Z
HSPLandroid/os/LocaleList;->setDefault(Landroid/os/LocaleList;)V
HSPLandroid/os/LocaleList;->setDefault(Landroid/os/LocaleList;I)V
HSPLandroid/os/LocaleList;->size()I
HSPLandroid/os/LocaleList;->toLanguageTags()Ljava/lang/String;
HSPLandroid/os/LocaleList;->toString()Ljava/lang/String;
+HSPLandroid/os/LocaleList;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/os/Looper;-><init>(Z)V
+HSPLandroid/os/Looper;->dump(Landroid/util/Printer;Ljava/lang/String;)V
+PLandroid/os/Looper;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HSPLandroid/os/Looper;->getMainLooper()Landroid/os/Looper;
HSPLandroid/os/Looper;->getQueue()Landroid/os/MessageQueue;
HSPLandroid/os/Looper;->getThread()Ljava/lang/Thread;
+HSPLandroid/os/Looper;->isCurrentThread()Z
HSPLandroid/os/Looper;->loop()V
HSPLandroid/os/Looper;->myLooper()Landroid/os/Looper;
HSPLandroid/os/Looper;->myQueue()Landroid/os/MessageQueue;
@@ -5331,16 +17441,34 @@ HSPLandroid/os/Looper;->prepare()V
HSPLandroid/os/Looper;->prepare(Z)V
HSPLandroid/os/Looper;->prepareMainLooper()V
HSPLandroid/os/Looper;->quit()V
+HSPLandroid/os/Looper;->quitSafely()V
+HSPLandroid/os/Looper;->setMessageLogging(Landroid/util/Printer;)V
+HSPLandroid/os/Looper;->setObserver(Landroid/os/Looper$Observer;)V
HSPLandroid/os/Looper;->setSlowLogThresholdMs(JJ)V
HSPLandroid/os/Looper;->setTraceTag(J)V
HSPLandroid/os/Looper;->showSlowLog(JJJLjava/lang/String;Landroid/os/Message;)Z
+HSPLandroid/os/Looper;->toString()Ljava/lang/String;
+PLandroid/os/MemoryFile;-><init>(Ljava/lang/String;I)V
+PLandroid/os/MemoryFile;->beginAccess()V
+PLandroid/os/MemoryFile;->checkActive()V
+PLandroid/os/MemoryFile;->close()V
+PLandroid/os/MemoryFile;->deactivate()V
+PLandroid/os/MemoryFile;->endAccess()V
+PLandroid/os/MemoryFile;->getFileDescriptor()Ljava/io/FileDescriptor;
+PLandroid/os/MemoryFile;->readBytes([BIII)I
+PLandroid/os/MemoryFile;->writeBytes([BIII)V
HSPLandroid/os/Message$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Message;
HSPLandroid/os/Message$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/os/Message;-><init>()V
HSPLandroid/os/Message;->access$000(Landroid/os/Message;Landroid/os/Parcel;)V
-PLandroid/os/Message;->copyFrom(Landroid/os/Message;)V
+HSPLandroid/os/Message;->copyFrom(Landroid/os/Message;)V
+PLandroid/os/Message;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/os/Message;->getCallback()Ljava/lang/Runnable;
HSPLandroid/os/Message;->getData()Landroid/os/Bundle;
+HSPLandroid/os/Message;->getTarget()Landroid/os/Handler;
+PLandroid/os/Message;->getWhen()J
HSPLandroid/os/Message;->isInUse()Z
+HSPLandroid/os/Message;->markInUse()V
HSPLandroid/os/Message;->obtain()Landroid/os/Message;
HSPLandroid/os/Message;->obtain(Landroid/os/Handler;)Landroid/os/Message;
HSPLandroid/os/Message;->obtain(Landroid/os/Handler;I)Landroid/os/Message;
@@ -5348,25 +17476,43 @@ HSPLandroid/os/Message;->obtain(Landroid/os/Handler;III)Landroid/os/Message;
HSPLandroid/os/Message;->obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;
HSPLandroid/os/Message;->obtain(Landroid/os/Handler;ILjava/lang/Object;)Landroid/os/Message;
HSPLandroid/os/Message;->obtain(Landroid/os/Handler;Ljava/lang/Runnable;)Landroid/os/Message;
+HSPLandroid/os/Message;->obtain(Landroid/os/Message;)Landroid/os/Message;
+HSPLandroid/os/Message;->peekData()Landroid/os/Bundle;
HSPLandroid/os/Message;->readFromParcel(Landroid/os/Parcel;)V
HSPLandroid/os/Message;->recycle()V
HSPLandroid/os/Message;->recycleUnchecked()V
HSPLandroid/os/Message;->sendToTarget()V
HSPLandroid/os/Message;->setAsynchronous(Z)V
+HSPLandroid/os/Message;->setCallback(Ljava/lang/Runnable;)Landroid/os/Message;
HSPLandroid/os/Message;->setData(Landroid/os/Bundle;)V
+HSPLandroid/os/Message;->setTarget(Landroid/os/Handler;)V
+HSPLandroid/os/Message;->setWhat(I)Landroid/os/Message;
+HSPLandroid/os/Message;->toString()Ljava/lang/String;
+HSPLandroid/os/Message;->toString(J)Ljava/lang/String;
HSPLandroid/os/Message;->updateCheckRecycle(I)V
HSPLandroid/os/Message;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/MessageQueue$FileDescriptorRecord;-><init>(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
HSPLandroid/os/MessageQueue;-><init>(Z)V
HSPLandroid/os/MessageQueue;->addIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V
HSPLandroid/os/MessageQueue;->addOnFileDescriptorEventListener(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
HSPLandroid/os/MessageQueue;->dispatchEvents(II)I
+PLandroid/os/MessageQueue;->dispose()V
+HSPLandroid/os/MessageQueue;->dump(Landroid/util/Printer;Ljava/lang/String;Landroid/os/Handler;)V
+PLandroid/os/MessageQueue;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HSPLandroid/os/MessageQueue;->enqueueMessage(Landroid/os/Message;J)Z
HSPLandroid/os/MessageQueue;->finalize()V
+HSPLandroid/os/MessageQueue;->hasMessages(Landroid/os/Handler;)Z
HSPLandroid/os/MessageQueue;->hasMessages(Landroid/os/Handler;ILjava/lang/Object;)Z
+HSPLandroid/os/MessageQueue;->hasMessages(Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)Z
+HSPLandroid/os/MessageQueue;->isIdle()Z
+HSPLandroid/os/MessageQueue;->isPolling()Z
+HSPLandroid/os/MessageQueue;->isPollingLocked()Z
HSPLandroid/os/MessageQueue;->next()Landroid/os/Message;
+PLandroid/os/MessageQueue;->postSyncBarrier()I
HSPLandroid/os/MessageQueue;->postSyncBarrier(J)I
HSPLandroid/os/MessageQueue;->quit(Z)V
HSPLandroid/os/MessageQueue;->removeAllFutureMessagesLocked()V
+PLandroid/os/MessageQueue;->removeAllMessagesLocked()V
HSPLandroid/os/MessageQueue;->removeCallbacksAndMessages(Landroid/os/Handler;Ljava/lang/Object;)V
HSPLandroid/os/MessageQueue;->removeIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V
HSPLandroid/os/MessageQueue;->removeMessages(Landroid/os/Handler;ILjava/lang/Object;)V
@@ -5374,17 +17520,35 @@ HSPLandroid/os/MessageQueue;->removeMessages(Landroid/os/Handler;Ljava/lang/Runn
HSPLandroid/os/MessageQueue;->removeOnFileDescriptorEventListener(Ljava/io/FileDescriptor;)V
HSPLandroid/os/MessageQueue;->removeSyncBarrier(I)V
HSPLandroid/os/MessageQueue;->updateOnFileDescriptorEventListenerLocked(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
+HSPLandroid/os/Messenger$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Messenger;
+HSPLandroid/os/Messenger$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/os/Messenger;-><init>(Landroid/os/Handler;)V
HSPLandroid/os/Messenger;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/Messenger;->equals(Ljava/lang/Object;)Z
HSPLandroid/os/Messenger;->getBinder()Landroid/os/IBinder;
+HSPLandroid/os/Messenger;->hashCode()I
HSPLandroid/os/Messenger;->readMessengerOrNullFromParcel(Landroid/os/Parcel;)Landroid/os/Messenger;
HSPLandroid/os/Messenger;->send(Landroid/os/Message;)V
+HSPLandroid/os/Messenger;->writeMessengerOrNullToParcel(Landroid/os/Messenger;Landroid/os/Parcel;)V
HSPLandroid/os/Messenger;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/os/NativeHandle;-><init>([I[IZ)V
+HPLandroid/os/NativeHandle;-><init>([Ljava/io/FileDescriptor;[IZ)V
+HPLandroid/os/NativeHandle;->createFileDescriptorArray([I)[Ljava/io/FileDescriptor;
+PLandroid/os/Parcel$2;-><init>(Landroid/os/Parcel;Ljava/io/InputStream;Ljava/lang/ClassLoader;)V
HSPLandroid/os/Parcel$2;->resolveClass(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;
+HSPLandroid/os/Parcel$ReadWriteHelper;-><init>()V
HSPLandroid/os/Parcel$ReadWriteHelper;->readString(Landroid/os/Parcel;)Ljava/lang/String;
HSPLandroid/os/Parcel$ReadWriteHelper;->writeString(Landroid/os/Parcel;Ljava/lang/String;)V
+HSPLandroid/os/Parcel;-><init>(J)V
+HSPLandroid/os/Parcel;->appendFrom(Landroid/os/Parcel;II)V
+PLandroid/os/Parcel;->compareData(Landroid/os/Parcel;)I
+PLandroid/os/Parcel;->copyClassCookies()Ljava/util/Map;
+HSPLandroid/os/Parcel;->createBinderArrayList()Ljava/util/ArrayList;
+PLandroid/os/Parcel;->createBooleanArray()[Z
HSPLandroid/os/Parcel;->createByteArray()[B
+HPLandroid/os/Parcel;->createDoubleArray()[D
HSPLandroid/os/Parcel;->createException(ILjava/lang/String;)Ljava/lang/Exception;
+PLandroid/os/Parcel;->createFloatArray()[F
HSPLandroid/os/Parcel;->createIntArray()[I
HSPLandroid/os/Parcel;->createLongArray()[J
HSPLandroid/os/Parcel;->createStringArray()[Ljava/lang/String;
@@ -5397,62 +17561,93 @@ HSPLandroid/os/Parcel;->dataSize()I
HSPLandroid/os/Parcel;->destroy()V
HSPLandroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
HSPLandroid/os/Parcel;->finalize()V
-HSPLandroid/os/Parcel;->getClassCookie(Ljava/lang/Class;)Ljava/lang/Object;
+PLandroid/os/Parcel;->getClassCookie(Ljava/lang/Class;)Ljava/lang/Object;
HSPLandroid/os/Parcel;->hasFileDescriptors()Z
+HSPLandroid/os/Parcel;->hasReadWriteHelper()Z
+HSPLandroid/os/Parcel;->init(J)V
HSPLandroid/os/Parcel;->marshall()[B
HSPLandroid/os/Parcel;->obtain()Landroid/os/Parcel;
HSPLandroid/os/Parcel;->obtain(J)Landroid/os/Parcel;
HSPLandroid/os/Parcel;->pushAllowFds(Z)Z
HSPLandroid/os/Parcel;->readArrayList(Ljava/lang/ClassLoader;)Ljava/util/ArrayList;
HSPLandroid/os/Parcel;->readArrayMap(Landroid/util/ArrayMap;Ljava/lang/ClassLoader;)V
+PLandroid/os/Parcel;->readArrayMapInternal(Landroid/util/ArrayMap;ILjava/lang/ClassLoader;)V
HSPLandroid/os/Parcel;->readArraySet(Ljava/lang/ClassLoader;)Landroid/util/ArraySet;
+PLandroid/os/Parcel;->readBlob()[B
HSPLandroid/os/Parcel;->readBoolean()Z
+HSPLandroid/os/Parcel;->readBooleanArray([Z)V
HSPLandroid/os/Parcel;->readBundle()Landroid/os/Bundle;
HSPLandroid/os/Parcel;->readBundle(Ljava/lang/ClassLoader;)Landroid/os/Bundle;
HSPLandroid/os/Parcel;->readByte()B
HSPLandroid/os/Parcel;->readByteArray([B)V
HSPLandroid/os/Parcel;->readCharSequence()Ljava/lang/CharSequence;
+PLandroid/os/Parcel;->readCharSequenceArray()[Ljava/lang/CharSequence;
HSPLandroid/os/Parcel;->readDouble()D
HSPLandroid/os/Parcel;->readException()V
HSPLandroid/os/Parcel;->readException(ILjava/lang/String;)V
HSPLandroid/os/Parcel;->readExceptionCode()I
+PLandroid/os/Parcel;->readFileDescriptor()Landroid/os/ParcelFileDescriptor;
HSPLandroid/os/Parcel;->readFloat()F
+PLandroid/os/Parcel;->readFloatArray([F)V
HSPLandroid/os/Parcel;->readHashMap(Ljava/lang/ClassLoader;)Ljava/util/HashMap;
HSPLandroid/os/Parcel;->readInt()I
+HSLandroid/os/Parcel;->readIntArray([I)V
HSPLandroid/os/Parcel;->readList(Ljava/util/List;Ljava/lang/ClassLoader;)V
HSPLandroid/os/Parcel;->readListInternal(Ljava/util/List;ILjava/lang/ClassLoader;)V
HSPLandroid/os/Parcel;->readLong()J
+HPLandroid/os/Parcel;->readLongArray([J)V
+PLandroid/os/Parcel;->readMap(Ljava/util/Map;Ljava/lang/ClassLoader;)V
HSPLandroid/os/Parcel;->readMapInternal(Ljava/util/Map;ILjava/lang/ClassLoader;)V
HSPLandroid/os/Parcel;->readParcelable(Ljava/lang/ClassLoader;)Landroid/os/Parcelable;
+PLandroid/os/Parcel;->readParcelableArray(Ljava/lang/ClassLoader;Ljava/lang/Class;)[Landroid/os/Parcelable;
HSPLandroid/os/Parcel;->readParcelableCreator(Ljava/lang/ClassLoader;)Landroid/os/Parcelable$Creator;
HSPLandroid/os/Parcel;->readParcelableList(Ljava/util/List;Ljava/lang/ClassLoader;)Ljava/util/List;
HSPLandroid/os/Parcel;->readPersistableBundle()Landroid/os/PersistableBundle;
HSPLandroid/os/Parcel;->readPersistableBundle(Ljava/lang/ClassLoader;)Landroid/os/PersistableBundle;
HSPLandroid/os/Parcel;->readRawFileDescriptor()Ljava/io/FileDescriptor;
+PLandroid/os/Parcel;->readSerializable()Ljava/io/Serializable;
HSPLandroid/os/Parcel;->readSerializable(Ljava/lang/ClassLoader;)Ljava/io/Serializable;
HSPLandroid/os/Parcel;->readSparseArray(Ljava/lang/ClassLoader;)Landroid/util/SparseArray;
HSPLandroid/os/Parcel;->readString()Ljava/lang/String;
HSPLandroid/os/Parcel;->readStringArray()[Ljava/lang/String;
+HSPLandroid/os/Parcel;->readStringArray([Ljava/lang/String;)V
HSPLandroid/os/Parcel;->readStringList(Ljava/util/List;)V
HSPLandroid/os/Parcel;->readStrongBinder()Landroid/os/IBinder;
+HSPLandroid/os/Parcel;->readTypedArray([Ljava/lang/Object;Landroid/os/Parcelable$Creator;)V
HSPLandroid/os/Parcel;->readTypedList(Ljava/util/List;Landroid/os/Parcelable$Creator;)V
HSPLandroid/os/Parcel;->readTypedObject(Landroid/os/Parcelable$Creator;)Ljava/lang/Object;
HSPLandroid/os/Parcel;->readValue(Ljava/lang/ClassLoader;)Ljava/lang/Object;
HSPLandroid/os/Parcel;->recycle()V
HSPLandroid/os/Parcel;->restoreAllowFds(Z)V
+PLandroid/os/Parcel;->setClassCookie(Ljava/lang/Class;Ljava/lang/Object;)V
+HSPLandroid/os/Parcel;->setDataCapacity(I)V
HSPLandroid/os/Parcel;->setDataPosition(I)V
+HSPLandroid/os/Parcel;->setDataSize(I)V
+HSPLandroid/os/Parcel;->setReadWriteHelper(Landroid/os/Parcel$ReadWriteHelper;)V
+HSPLandroid/os/Parcel;->setStackTraceParceling(Z)V
HSPLandroid/os/Parcel;->unmarshall([BII)V
HSPLandroid/os/Parcel;->updateNativeSize(J)V
HSPLandroid/os/Parcel;->writeArrayMap(Landroid/util/ArrayMap;)V
HSPLandroid/os/Parcel;->writeArrayMapInternal(Landroid/util/ArrayMap;)V
HSPLandroid/os/Parcel;->writeArraySet(Landroid/util/ArraySet;)V
+HSPLandroid/os/Parcel;->writeBinderList(Ljava/util/List;)V
+PLandroid/os/Parcel;->writeBlob([B)V
+PLandroid/os/Parcel;->writeBlob([BII)V
HSPLandroid/os/Parcel;->writeBoolean(Z)V
+PLandroid/os/Parcel;->writeBooleanArray([Z)V
HSPLandroid/os/Parcel;->writeBundle(Landroid/os/Bundle;)V
HSPLandroid/os/Parcel;->writeByte(B)V
HSPLandroid/os/Parcel;->writeByteArray([B)V
HSPLandroid/os/Parcel;->writeByteArray([BII)V
+HSPLandroid/os/Parcel;->writeCharSequence(Ljava/lang/CharSequence;)V
+PLandroid/os/Parcel;->writeCharSequenceArray([Ljava/lang/CharSequence;)V
+PLandroid/os/Parcel;->writeCharSequenceList(Ljava/util/ArrayList;)V
+HSPLandroid/os/Parcel;->writeDouble(D)V
+HPLandroid/os/Parcel;->writeDoubleArray([D)V
PLandroid/os/Parcel;->writeException(Ljava/lang/Exception;)V
+HSPLandroid/os/Parcel;->writeFileDescriptor(Ljava/io/FileDescriptor;)V
HSPLandroid/os/Parcel;->writeFloat(F)V
+HPLandroid/os/Parcel;->writeFloatArray([F)V
HSPLandroid/os/Parcel;->writeInt(I)V
HSPLandroid/os/Parcel;->writeIntArray([I)V
HSPLandroid/os/Parcel;->writeInterfaceToken(Ljava/lang/String;)V
@@ -5463,25 +17658,32 @@ HSPLandroid/os/Parcel;->writeMap(Ljava/util/Map;)V
HSPLandroid/os/Parcel;->writeMapInternal(Ljava/util/Map;)V
HSPLandroid/os/Parcel;->writeNoException()V
HSPLandroid/os/Parcel;->writeParcelable(Landroid/os/Parcelable;I)V
+PLandroid/os/Parcel;->writeParcelableArray([Landroid/os/Parcelable;I)V
HSPLandroid/os/Parcel;->writeParcelableCreator(Landroid/os/Parcelable;)V
HSPLandroid/os/Parcel;->writeParcelableList(Ljava/util/List;I)V
-HSPLandroid/os/Parcel;->writePersistableBundle(Landroid/os/PersistableBundle;)V
+PLandroid/os/Parcel;->writePersistableBundle(Landroid/os/PersistableBundle;)V
+PLandroid/os/Parcel;->writeRawFileDescriptor(Ljava/io/FileDescriptor;)V
HSPLandroid/os/Parcel;->writeSerializable(Ljava/io/Serializable;)V
HSPLandroid/os/Parcel;->writeSparseArray(Landroid/util/SparseArray;)V
+HPLandroid/os/Parcel;->writeSparseBooleanArray(Landroid/util/SparseBooleanArray;)V
HSPLandroid/os/Parcel;->writeString(Ljava/lang/String;)V
HSPLandroid/os/Parcel;->writeStringArray([Ljava/lang/String;)V
HSPLandroid/os/Parcel;->writeStringList(Ljava/util/List;)V
HSPLandroid/os/Parcel;->writeStrongBinder(Landroid/os/IBinder;)V
HSPLandroid/os/Parcel;->writeStrongInterface(Landroid/os/IInterface;)V
HSPLandroid/os/Parcel;->writeTypedArray([Landroid/os/Parcelable;I)V
+PLandroid/os/Parcel;->writeTypedArrayMap(Landroid/util/ArrayMap;I)V
HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;)V
HSPLandroid/os/Parcel;->writeTypedList(Ljava/util/List;I)V
HSPLandroid/os/Parcel;->writeTypedObject(Landroid/os/Parcelable;I)V
HSPLandroid/os/Parcel;->writeValue(Ljava/lang/Object;)V
+HSPLandroid/os/ParcelFileDescriptor$1;-><init>(Landroid/os/MessageQueue;Landroid/os/ParcelFileDescriptor$OnCloseListener;)V
+HSPLandroid/os/ParcelFileDescriptor$1;->onFileDescriptorEvents(Ljava/io/FileDescriptor;I)I
HSPLandroid/os/ParcelFileDescriptor$2;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ParcelFileDescriptor;
HSPLandroid/os/ParcelFileDescriptor$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-PLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V
+HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V
HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->close()V
+HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->read()I
HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->read([B)I
HSPLandroid/os/ParcelFileDescriptor$AutoCloseInputStream;->read([BII)I
HSPLandroid/os/ParcelFileDescriptor$AutoCloseOutputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V
@@ -5489,87 +17691,227 @@ HSPLandroid/os/ParcelFileDescriptor$AutoCloseOutputStream;->close()V
HSPLandroid/os/ParcelFileDescriptor;-><init>(Landroid/os/ParcelFileDescriptor;)V
HSPLandroid/os/ParcelFileDescriptor;-><init>(Ljava/io/FileDescriptor;)V
HSPLandroid/os/ParcelFileDescriptor;-><init>(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;)V
+HSPLandroid/os/ParcelFileDescriptor;->access$000(Ljava/io/FileDescriptor;[B)Landroid/os/ParcelFileDescriptor$Status;
+PLandroid/os/ParcelFileDescriptor;->adoptFd(I)Landroid/os/ParcelFileDescriptor;
HSPLandroid/os/ParcelFileDescriptor;->canDetectErrors()Z
HSPLandroid/os/ParcelFileDescriptor;->close()V
-PLandroid/os/ParcelFileDescriptor;->createPipe()[Landroid/os/ParcelFileDescriptor;
+HSPLandroid/os/ParcelFileDescriptor;->closeWithStatus(ILjava/lang/String;)V
+HSPLandroid/os/ParcelFileDescriptor;->createCommSocketPair()[Ljava/io/FileDescriptor;
+HSPLandroid/os/ParcelFileDescriptor;->createPipe()[Landroid/os/ParcelFileDescriptor;
HSPLandroid/os/ParcelFileDescriptor;->detachFd()I
+PLandroid/os/ParcelFileDescriptor;->dup()Landroid/os/ParcelFileDescriptor;
HSPLandroid/os/ParcelFileDescriptor;->dup(Ljava/io/FileDescriptor;)Landroid/os/ParcelFileDescriptor;
HSPLandroid/os/ParcelFileDescriptor;->finalize()V
+PLandroid/os/ParcelFileDescriptor;->fromData([BLjava/lang/String;)Landroid/os/ParcelFileDescriptor;
+HSPLandroid/os/ParcelFileDescriptor;->fromFd(I)Landroid/os/ParcelFileDescriptor;
+HSPLandroid/os/ParcelFileDescriptor;->fromFd(Ljava/io/FileDescriptor;Landroid/os/Handler;Landroid/os/ParcelFileDescriptor$OnCloseListener;)Landroid/os/ParcelFileDescriptor;
HSPLandroid/os/ParcelFileDescriptor;->getFd()I
+HSPLandroid/os/ParcelFileDescriptor;->getFile(Ljava/io/FileDescriptor;)Ljava/io/File;
HSPLandroid/os/ParcelFileDescriptor;->getFileDescriptor()Ljava/io/FileDescriptor;
+HSPLandroid/os/ParcelFileDescriptor;->getStatSize()J
HSPLandroid/os/ParcelFileDescriptor;->ifAtLeastQ(I)I
HSPLandroid/os/ParcelFileDescriptor;->isAtLeastQ()Z
HSPLandroid/os/ParcelFileDescriptor;->open(Ljava/io/File;I)Landroid/os/ParcelFileDescriptor;
+HSPLandroid/os/ParcelFileDescriptor;->open(Ljava/io/File;ILandroid/os/Handler;Landroid/os/ParcelFileDescriptor$OnCloseListener;)Landroid/os/ParcelFileDescriptor;
HSPLandroid/os/ParcelFileDescriptor;->openInternal(Ljava/io/File;I)Ljava/io/FileDescriptor;
HSPLandroid/os/ParcelFileDescriptor;->parseMode(Ljava/lang/String;)I
+HSPLandroid/os/ParcelFileDescriptor;->readCommStatus(Ljava/io/FileDescriptor;[B)Landroid/os/ParcelFileDescriptor$Status;
HSPLandroid/os/ParcelFileDescriptor;->releaseResources()V
HSPLandroid/os/ParcelFileDescriptor;->writeCommStatusAndClose(ILjava/lang/String;)V
HSPLandroid/os/ParcelFileDescriptor;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/ParcelUuid$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ParcelUuid;
+HSPLandroid/os/ParcelUuid$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/os/ParcelUuid$1;->newArray(I)[Landroid/os/ParcelUuid;
+HPLandroid/os/ParcelUuid$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/os/ParcelUuid;-><init>(Ljava/util/UUID;)V
+HSPLandroid/os/ParcelUuid;->equals(Ljava/lang/Object;)Z
+HSPLandroid/os/ParcelUuid;->fromString(Ljava/lang/String;)Landroid/os/ParcelUuid;
+HSPLandroid/os/ParcelUuid;->hashCode()I
+HSPLandroid/os/ParcelUuid;->toString()Ljava/lang/String;
+PLandroid/os/ParcelUuid;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/ParcelableException;-><init>(Ljava/lang/Throwable;)V
+HSPLandroid/os/ParcelableException;->maybeRethrow(Ljava/lang/Class;)V
+HSPLandroid/os/ParcelableParcel;->getClassLoader()Ljava/lang/ClassLoader;
+HSPLandroid/os/ParcelableParcel;->getParcel()Landroid/os/Parcel;
+HPLandroid/os/ParcelableParcel;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/os/PatternMatcher$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/PatternMatcher;
HSPLandroid/os/PatternMatcher$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/os/PatternMatcher$1;->newArray(I)[Landroid/os/PatternMatcher;
HSPLandroid/os/PatternMatcher$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/os/PatternMatcher;-><init>(Landroid/os/Parcel;)V
HSPLandroid/os/PatternMatcher;-><init>(Ljava/lang/String;I)V
+PLandroid/os/PatternMatcher;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/os/PatternMatcher;->getPath()Ljava/lang/String;
+HSPLandroid/os/PatternMatcher;->getType()I
HSPLandroid/os/PatternMatcher;->match(Ljava/lang/String;)Z
+HPLandroid/os/PatternMatcher;->matchGlobPattern(Ljava/lang/String;Ljava/lang/String;)Z
HSPLandroid/os/PatternMatcher;->matchPattern(Ljava/lang/String;Ljava/lang/String;[II)Z
+PLandroid/os/PatternMatcher;->toString()Ljava/lang/String;
HSPLandroid/os/PatternMatcher;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/os/PersistableBundle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/PersistableBundle;
HSPLandroid/os/PersistableBundle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/PersistableBundle$MyReadMapCallback;-><init>()V
+HSPLandroid/os/PersistableBundle$MyReadMapCallback;->readThisUnknownObjectXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/Object;
HSPLandroid/os/PersistableBundle;-><init>()V
HSPLandroid/os/PersistableBundle;-><init>(I)V
+PLandroid/os/PersistableBundle;-><init>(Landroid/os/Bundle;)V
HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/Parcel;I)V
HSPLandroid/os/PersistableBundle;-><init>(Landroid/os/PersistableBundle;)V
+HSPLandroid/os/PersistableBundle;-><init>(Landroid/util/ArrayMap;)V
HSPLandroid/os/PersistableBundle;-><init>(Z)V
+PLandroid/os/PersistableBundle;->clone()Ljava/lang/Object;
HSPLandroid/os/PersistableBundle;->deepCopy()Landroid/os/PersistableBundle;
+HPLandroid/os/PersistableBundle;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/os/PersistableBundle;->getPersistableBundle(Ljava/lang/String;)Landroid/os/PersistableBundle;
+HSPLandroid/os/PersistableBundle;->isValidType(Ljava/lang/Object;)Z
+HSPLandroid/os/PersistableBundle;->putPersistableBundle(Ljava/lang/String;Landroid/os/PersistableBundle;)V
+HSPLandroid/os/PersistableBundle;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/os/PersistableBundle;
+PLandroid/os/PersistableBundle;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HPLandroid/os/PersistableBundle;->toShortString()Ljava/lang/String;
+HSPLandroid/os/PersistableBundle;->toString()Ljava/lang/String;
HSPLandroid/os/PersistableBundle;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/os/PersistableBundle;->writeUnknownObject(Ljava/lang/Object;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+PLandroid/os/PooledStringReader;-><init>(Landroid/os/Parcel;)V
+PLandroid/os/PooledStringReader;->readString()Ljava/lang/String;
+PLandroid/os/PooledStringWriter;-><init>(Landroid/os/Parcel;)V
+PLandroid/os/PooledStringWriter;->finish()V
+PLandroid/os/PooledStringWriter;->writeString(Ljava/lang/String;)V
+HSPLandroid/os/PowerManager$1;-><init>(Landroid/os/PowerManager;Ljava/util/concurrent/Executor;Landroid/os/PowerManager$OnThermalStatusChangedListener;)V
+PLandroid/os/PowerManager$1;->lambda$onStatusChange$0(Landroid/os/PowerManager$OnThermalStatusChangedListener;I)V
+HSPLandroid/os/PowerManager$1;->onStatusChange(I)V
+PLandroid/os/PowerManager$WakeData;-><init>(JI)V
HSPLandroid/os/PowerManager$WakeLock$1;-><init>(Landroid/os/PowerManager$WakeLock;)V
HSPLandroid/os/PowerManager$WakeLock$1;->run()V
HSPLandroid/os/PowerManager$WakeLock;-><init>(Landroid/os/PowerManager;ILjava/lang/String;Ljava/lang/String;)V
HSPLandroid/os/PowerManager$WakeLock;->acquire()V
HSPLandroid/os/PowerManager$WakeLock;->acquire(J)V
HSPLandroid/os/PowerManager$WakeLock;->acquireLocked()V
+PLandroid/os/PowerManager$WakeLock;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HSPLandroid/os/PowerManager$WakeLock;->finalize()V
HSPLandroid/os/PowerManager$WakeLock;->isHeld()Z
+PLandroid/os/PowerManager$WakeLock;->lambda$wrap$0$PowerManager$WakeLock(Ljava/lang/Runnable;)V
HSPLandroid/os/PowerManager$WakeLock;->release()V
HSPLandroid/os/PowerManager$WakeLock;->release(I)V
+PLandroid/os/PowerManager$WakeLock;->setHistoryTag(Ljava/lang/String;)V
HSPLandroid/os/PowerManager$WakeLock;->setReferenceCounted(Z)V
HSPLandroid/os/PowerManager$WakeLock;->setWorkSource(Landroid/os/WorkSource;)V
+HSPLandroid/os/PowerManager$WakeLock;->toString()Ljava/lang/String;
+PLandroid/os/PowerManager$WakeLock;->wrap(Ljava/lang/Runnable;)Ljava/lang/Runnable;
HSPLandroid/os/PowerManager;-><init>(Landroid/content/Context;Landroid/os/IPowerManager;Landroid/os/Handler;)V
+HSPLandroid/os/PowerManager;->addThermalStatusListener(Landroid/os/PowerManager$OnThermalStatusChangedListener;)V
+HSPLandroid/os/PowerManager;->addThermalStatusListener(Ljava/util/concurrent/Executor;Landroid/os/PowerManager$OnThermalStatusChangedListener;)V
+HSPLandroid/os/PowerManager;->getCurrentThermalStatus()I
+HSPLandroid/os/PowerManager;->getDefaultScreenBrightnessSetting()I
+HSPLandroid/os/PowerManager;->getDeviceIdleManager()Landroid/os/DeviceIdleManager;
+HSPLandroid/os/PowerManager;->getLocationPowerSaveMode()I
+HSPLandroid/os/PowerManager;->getMaximumScreenBrightnessForVrSetting()I
HSPLandroid/os/PowerManager;->getMaximumScreenBrightnessSetting()I
+HSPLandroid/os/PowerManager;->getMinimumScreenBrightnessForVrSetting()I
HSPLandroid/os/PowerManager;->getMinimumScreenBrightnessSetting()I
+HSPLandroid/os/PowerManager;->getPowerSaveState(I)Landroid/os/PowerSaveState;
+PLandroid/os/PowerManager;->goToSleep(JII)V
HSPLandroid/os/PowerManager;->isDeviceIdleMode()Z
+HSPLandroid/os/PowerManager;->isIgnoringBatteryOptimizations(Ljava/lang/String;)Z
HSPLandroid/os/PowerManager;->isInteractive()Z
-PLandroid/os/PowerManager;->isLightDeviceIdleMode()Z
+HSPLandroid/os/PowerManager;->isLightDeviceIdleMode()Z
HSPLandroid/os/PowerManager;->isPowerSaveMode()Z
HSPLandroid/os/PowerManager;->isScreenOn()Z
+PLandroid/os/PowerManager;->isWakeLockLevelSupported(I)Z
+PLandroid/os/PowerManager;->locationPowerSaveModeToString(I)Ljava/lang/String;
HSPLandroid/os/PowerManager;->newWakeLock(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;
+HSPLandroid/os/PowerManager;->setDynamicPowerSaveHint(ZI)Z
+PLandroid/os/PowerManager;->sleepReasonToString(I)Ljava/lang/String;
+PLandroid/os/PowerManager;->userActivity(JII)V
+PLandroid/os/PowerManager;->userActivity(JZ)V
HSPLandroid/os/PowerManager;->validateWakeLockParameters(ILjava/lang/String;)V
+PLandroid/os/PowerManager;->wakeReasonToString(I)Ljava/lang/String;
+PLandroid/os/PowerManager;->wakeUp(JILjava/lang/String;)V
+HSPLandroid/os/PowerManagerInternal$1;-><init>(Landroid/os/PowerManagerInternal;ILjava/util/function/Consumer;)V
+HSPLandroid/os/PowerManagerInternal;-><init>()V
+HSPLandroid/os/PowerManagerInternal;->isInteractive(I)Z
+HSPLandroid/os/PowerManagerInternal;->registerLowPowerModeObserver(ILjava/util/function/Consumer;)V
+HSPLandroid/os/PowerManagerInternal;->wakefulnessToString(I)Ljava/lang/String;
+HPLandroid/os/PowerSaveState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/PowerSaveState;
+HPLandroid/os/PowerSaveState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/PowerSaveState$Builder;-><init>()V
+HSPLandroid/os/PowerSaveState$Builder;->build()Landroid/os/PowerSaveState;
+HSPLandroid/os/PowerSaveState$Builder;->setBatterySaverEnabled(Z)Landroid/os/PowerSaveState$Builder;
+PLandroid/os/PowerSaveState$Builder;->setBrightnessFactor(F)Landroid/os/PowerSaveState$Builder;
+HSPLandroid/os/PowerSaveState$Builder;->setGlobalBatterySaverEnabled(Z)Landroid/os/PowerSaveState$Builder;
+PLandroid/os/PowerSaveState$Builder;->setLocationMode(I)Landroid/os/PowerSaveState$Builder;
+HPLandroid/os/PowerSaveState;-><init>(Landroid/os/Parcel;)V
+PLandroid/os/PowerSaveState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/PowerWhitelistManager;-><init>(Landroid/content/Context;)V
+HPLandroid/os/PowerWhitelistManager;->whitelistAppTemporarily(Ljava/lang/String;J)V
+HSPLandroid/os/Process$ProcessStartResult;-><init>()V
HSPLandroid/os/Process;->getStartElapsedRealtime()J
+PLandroid/os/Process;->getThreadGroupLeader(I)I
+HSPLandroid/os/Process;->getUidForPid(I)I
HSPLandroid/os/Process;->is64Bit()Z
HSPLandroid/os/Process;->isApplicationUid(I)Z
HSPLandroid/os/Process;->isIsolated()Z
HSPLandroid/os/Process;->isIsolated(I)Z
+PLandroid/os/Process;->isThreadInProcess(II)Z
+PLandroid/os/Process;->killProcess(I)V
+PLandroid/os/Process;->killProcessQuiet(I)V
HSPLandroid/os/Process;->myPid()I
HSPLandroid/os/Process;->myTid()I
HSPLandroid/os/Process;->myUid()I
HSPLandroid/os/Process;->myUserHandle()Landroid/os/UserHandle;
HSPLandroid/os/Process;->setStartTimes(JJ)V
+HSPLandroid/os/Process;->start(Ljava/lang/String;Ljava/lang/String;II[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[J[Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+PLandroid/os/Process;->startWebView(Ljava/lang/String;Ljava/lang/String;II[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[J[Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+PLandroid/os/RecoverySystem;->handleAftermath(Landroid/content/Context;)Ljava/lang/String;
+HPLandroid/os/Registrant;->getHandler()Landroid/os/Handler;
+HPLandroid/os/Registrant;->internalNotifyRegistrant(Ljava/lang/Object;Ljava/lang/Throwable;)V
+HPLandroid/os/Registrant;->notifyRegistrant(Landroid/os/AsyncResult;)V
+HSPLandroid/os/RegistrantList;-><init>()V
+HPLandroid/os/RegistrantList;->internalNotifyRegistrants(Ljava/lang/Object;Ljava/lang/Throwable;)V
+HPLandroid/os/RegistrantList;->notifyRegistrants(Landroid/os/AsyncResult;)V
+HSPLandroid/os/RemoteCallback$1;-><init>(Landroid/os/RemoteCallback;)V
+PLandroid/os/RemoteCallback$1;->sendResult(Landroid/os/Bundle;)V
+HSPLandroid/os/RemoteCallback$3;->createFromParcel(Landroid/os/Parcel;)Landroid/os/RemoteCallback;
+HSPLandroid/os/RemoteCallback$3;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSLandroid/os/RemoteCallback;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/RemoteCallback;-><init>(Landroid/os/RemoteCallback$OnResultListener;)V
+HSPLandroid/os/RemoteCallback;-><init>(Landroid/os/RemoteCallback$OnResultListener;Landroid/os/Handler;)V
HSPLandroid/os/RemoteCallback;->sendResult(Landroid/os/Bundle;)V
+PLandroid/os/RemoteCallback;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/os/RemoteCallbackList$Callback;-><init>(Landroid/os/RemoteCallbackList;Landroid/os/IInterface;Ljava/lang/Object;)V
+PLandroid/os/RemoteCallbackList$Callback;->binderDied()V
HSPLandroid/os/RemoteCallbackList;-><init>()V
HSPLandroid/os/RemoteCallbackList;->beginBroadcast()I
+PLandroid/os/RemoteCallbackList;->broadcast(Ljava/util/function/Consumer;)V
+HPLandroid/os/RemoteCallbackList;->broadcastForEachCookie(Ljava/util/function/Consumer;)V
+PLandroid/os/RemoteCallbackList;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
HSPLandroid/os/RemoteCallbackList;->finishBroadcast()V
+HSPLandroid/os/RemoteCallbackList;->getBroadcastCookie(I)Ljava/lang/Object;
HSPLandroid/os/RemoteCallbackList;->getBroadcastItem(I)Landroid/os/IInterface;
+PLandroid/os/RemoteCallbackList;->getRegisteredCallbackCookie(I)Ljava/lang/Object;
+HSPLandroid/os/RemoteCallbackList;->getRegisteredCallbackCount()I
+PLandroid/os/RemoteCallbackList;->getRegisteredCallbackItem(I)Landroid/os/IInterface;
+PLandroid/os/RemoteCallbackList;->kill()V
HSPLandroid/os/RemoteCallbackList;->logExcessiveCallbacks()V
+PLandroid/os/RemoteCallbackList;->onCallbackDied(Landroid/os/IInterface;)V
+PLandroid/os/RemoteCallbackList;->onCallbackDied(Landroid/os/IInterface;Ljava/lang/Object;)V
HSPLandroid/os/RemoteCallbackList;->register(Landroid/os/IInterface;)Z
HSPLandroid/os/RemoteCallbackList;->register(Landroid/os/IInterface;Ljava/lang/Object;)Z
HSPLandroid/os/RemoteCallbackList;->unregister(Landroid/os/IInterface;)Z
-HSPLandroid/os/ResultReceiver$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ResultReceiver;
-HSPLandroid/os/ResultReceiver$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/os/RemoteException;-><init>()V
+HSPLandroid/os/RemoteException;-><init>(Ljava/lang/String;)V
+PLandroid/os/ResultReceiver$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ResultReceiver;
+PLandroid/os/ResultReceiver$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/os/ResultReceiver$MyResultReceiver;-><init>(Landroid/os/ResultReceiver;)V
+PLandroid/os/ResultReceiver$MyResultReceiver;->send(ILandroid/os/Bundle;)V
+PLandroid/os/ResultReceiver$MyRunnable;->run()V
HSPLandroid/os/ResultReceiver;-><init>(Landroid/os/Handler;)V
+PLandroid/os/ResultReceiver;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/ResultReceiver;->onReceiveResult(ILandroid/os/Bundle;)V
HSPLandroid/os/ResultReceiver;->send(ILandroid/os/Bundle;)V
+PLandroid/os/ResultReceiver;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/os/SELinux;->restorecon(Ljava/io/File;)Z
+PLandroid/os/SELinux;->restoreconRecursive(Ljava/io/File;)Z
+PLandroid/os/ServiceManager$ServiceNotFoundException;-><init>(Ljava/lang/String;)V
HSPLandroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;)V
HSPLandroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V
HSPLandroid/os/ServiceManager;->checkService(Ljava/lang/String;)Landroid/os/IBinder;
@@ -5578,20 +17920,77 @@ HSPLandroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinde
HSPLandroid/os/ServiceManager;->getServiceOrThrow(Ljava/lang/String;)Landroid/os/IBinder;
HSPLandroid/os/ServiceManager;->initServiceCache(Ljava/util/Map;)V
HSPLandroid/os/ServiceManager;->rawGetService(Ljava/lang/String;)Landroid/os/IBinder;
+HSPLandroid/os/ServiceManagerNative;->asInterface(Landroid/os/IBinder;)Landroid/os/IServiceManager;
+HSPLandroid/os/ServiceManagerProxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/os/ServiceManagerProxy;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V
HSPLandroid/os/ServiceManagerProxy;->checkService(Ljava/lang/String;)Landroid/os/IBinder;
HSPLandroid/os/ServiceManagerProxy;->getService(Ljava/lang/String;)Landroid/os/IBinder;
+PLandroid/os/ServiceSpecificException;-><init>(ILjava/lang/String;)V
+PLandroid/os/ServiceSpecificException;->toString()Ljava/lang/String;
+PLandroid/os/SharedMemory$Closer;-><init>(Ljava/io/FileDescriptor;Landroid/os/SharedMemory$MemoryRegistration;)V
+PLandroid/os/SharedMemory$Closer;-><init>(Ljava/io/FileDescriptor;Landroid/os/SharedMemory$MemoryRegistration;Landroid/os/SharedMemory$1;)V
+PLandroid/os/SharedMemory$Closer;->run()V
+PLandroid/os/SharedMemory$MemoryRegistration;-><init>(I)V
+PLandroid/os/SharedMemory$MemoryRegistration;-><init>(ILandroid/os/SharedMemory$1;)V
+PLandroid/os/SharedMemory$MemoryRegistration;->acquire()Landroid/os/SharedMemory$MemoryRegistration;
+PLandroid/os/SharedMemory$MemoryRegistration;->release()V
+PLandroid/os/SharedMemory$Unmapper;-><init>(JILandroid/os/SharedMemory$MemoryRegistration;)V
+PLandroid/os/SharedMemory$Unmapper;-><init>(JILandroid/os/SharedMemory$MemoryRegistration;Landroid/os/SharedMemory$1;)V
+PLandroid/os/SharedMemory$Unmapper;->run()V
+PLandroid/os/SharedMemory;-><init>(Ljava/io/FileDescriptor;)V
+PLandroid/os/SharedMemory;->checkOpen()V
+PLandroid/os/SharedMemory;->close()V
+PLandroid/os/SharedMemory;->create(Ljava/lang/String;I)Landroid/os/SharedMemory;
+PLandroid/os/SharedMemory;->getFileDescriptor()Ljava/io/FileDescriptor;
+PLandroid/os/SharedMemory;->map(III)Ljava/nio/ByteBuffer;
+PLandroid/os/SharedMemory;->mapReadWrite()Ljava/nio/ByteBuffer;
+PLandroid/os/SharedMemory;->unmap(Ljava/nio/ByteBuffer;)V
+PLandroid/os/SharedMemory;->validateProt(I)V
+PLandroid/os/ShellCallback$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/ShellCallback;
+PLandroid/os/ShellCallback$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/os/ShellCallback;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/ShellCommand;-><init>()V
+PLandroid/os/ShellCommand;->exec(Landroid/os/Binder;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)I
+HSPLandroid/os/SimpleClock;-><init>(Ljava/time/ZoneId;)V
HSPLandroid/os/StatFs;-><init>(Ljava/lang/String;)V
HSPLandroid/os/StatFs;->doStat(Ljava/lang/String;)Landroid/system/StructStatVfs;
HSPLandroid/os/StatFs;->getAvailableBlocks()I
HSPLandroid/os/StatFs;->getAvailableBlocksLong()J
HSPLandroid/os/StatFs;->getAvailableBytes()J
HSPLandroid/os/StatFs;->getBlockCount()I
+HSPLandroid/os/StatFs;->getBlockCountLong()J
HSPLandroid/os/StatFs;->getBlockSize()I
HSPLandroid/os/StatFs;->getBlockSizeLong()J
-PLandroid/os/StatFs;->getTotalBytes()J
+HSPLandroid/os/StatFs;->getFreeBytes()J
+HSPLandroid/os/StatFs;->getTotalBytes()J
+HSPLandroid/os/StatFs;->restat(Ljava/lang/String;)V
+HSPLandroid/os/StatsDimensionsValue$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/StatsDimensionsValue;
+HSPLandroid/os/StatsDimensionsValue$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/StatsDimensionsValue;-><init>(Landroid/os/Parcel;)V
+PLandroid/os/StatsDimensionsValue;->describeContents()I
+HPLandroid/os/StatsDimensionsValue;->getField()I
+HPLandroid/os/StatsDimensionsValue;->getIntValue()I
+HPLandroid/os/StatsDimensionsValue;->getTupleValueList()Ljava/util/List;
+HPLandroid/os/StatsDimensionsValue;->isValueType(I)Z
+HSPLandroid/os/StatsDimensionsValue;->readValueFromParcel(ILandroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/os/StatsDimensionsValue;->toString()Ljava/lang/String;
+HSPLandroid/os/StatsDimensionsValue;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/StatsDimensionsValue;->writeValueToParcel(ILjava/lang/Object;Landroid/os/Parcel;I)Z
+PLandroid/os/StatsLogEventWrapper$1;-><init>()V
+PLandroid/os/StatsLogEventWrapper;-><clinit>()V
+HPLandroid/os/StatsLogEventWrapper;-><init>(IJJ)V
+HPLandroid/os/StatsLogEventWrapper;->writeBoolean(Z)V
+HPLandroid/os/StatsLogEventWrapper;->writeInt(I)V
+HPLandroid/os/StatsLogEventWrapper;->writeLong(J)V
+HPLandroid/os/StatsLogEventWrapper;->writeStorage([B)V
+HPLandroid/os/StatsLogEventWrapper;->writeString(Ljava/lang/String;)V
+HPLandroid/os/StatsLogEventWrapper;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/os/StrictMode$1;->initialValue()Ljava/lang/Object;
HSPLandroid/os/StrictMode$1;->initialValue()Ljava/util/ArrayList;
+HSPLandroid/os/StrictMode$2;->initialValue()Ljava/lang/Object;
+HSPLandroid/os/StrictMode$2;->initialValue()Ljava/util/ArrayList;
+HSPLandroid/os/StrictMode$3;->initialValue()Landroid/os/Handler;
+HSPLandroid/os/StrictMode$3;->initialValue()Ljava/lang/Object;
HSPLandroid/os/StrictMode$4;->initialValue()Landroid/os/StrictMode$AndroidBlockGuardPolicy;
HSPLandroid/os/StrictMode$4;->initialValue()Ljava/lang/Object;
HSPLandroid/os/StrictMode$5;->onPathAccess(Ljava/lang/String;)V
@@ -5599,14 +17998,30 @@ HSPLandroid/os/StrictMode$8;->initialValue()Landroid/os/StrictMode$ThreadSpanSta
HSPLandroid/os/StrictMode$8;->initialValue()Ljava/lang/Object;
HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;-><init>(I)V
HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->getThreadPolicyMask()I
+HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->handleViolationWithTimingAttempt(Landroid/os/StrictMode$ViolationInfo;)V
+HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->lambda$handleViolationWithTimingAttempt$0$StrictMode$AndroidBlockGuardPolicy(Landroid/view/IWindowManager;Ljava/util/ArrayList;)V
HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onCustomSlowCall(Ljava/lang/String;)V
+PLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onExplicitGc()V
+HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onNetwork()V
HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onReadFromDisk()V
+HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onResourceMismatch(Ljava/lang/Object;)V
+HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onThreadPolicyViolation(Landroid/os/StrictMode$ViolationInfo;)V
HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onUnbufferedIO()V
HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->onWriteToDisk()V
HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->setThreadPolicyMask(I)V
+HSPLandroid/os/StrictMode$AndroidBlockGuardPolicy;->startHandlingViolationException(Landroid/os/strictmode/Violation;)V
HSPLandroid/os/StrictMode$AndroidCloseGuardReporter;-><init>()V
HSPLandroid/os/StrictMode$AndroidCloseGuardReporter;-><init>(Landroid/os/StrictMode$1;)V
+PLandroid/os/StrictMode$AndroidCloseGuardReporter;->report(Ljava/lang/String;Ljava/lang/Throwable;)V
HSPLandroid/os/StrictMode$InstanceTracker;-><init>(Ljava/lang/Object;)V
+HSPLandroid/os/StrictMode$InstanceTracker;->finalize()V
+HPLandroid/os/StrictMode$Span;-><init>(Landroid/os/StrictMode$ThreadSpanState;)V
+HPLandroid/os/StrictMode$Span;->access$2000(Landroid/os/StrictMode$Span;)Landroid/os/StrictMode$Span;
+HPLandroid/os/StrictMode$Span;->access$2002(Landroid/os/StrictMode$Span;Landroid/os/StrictMode$Span;)Landroid/os/StrictMode$Span;
+HPLandroid/os/StrictMode$Span;->access$2102(Landroid/os/StrictMode$Span;Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/os/StrictMode$Span;->access$2202(Landroid/os/StrictMode$Span;J)J
+HPLandroid/os/StrictMode$Span;->access$2302(Landroid/os/StrictMode$Span;Landroid/os/StrictMode$Span;)Landroid/os/StrictMode$Span;
+HPLandroid/os/StrictMode$Span;->finish()V
HSPLandroid/os/StrictMode$ThreadPolicy$Builder;-><init>()V
HSPLandroid/os/StrictMode$ThreadPolicy$Builder;-><init>(Landroid/os/StrictMode$ThreadPolicy;)V
HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->build()Landroid/os/StrictMode$ThreadPolicy;
@@ -5617,6 +18032,7 @@ HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectDiskWrites()Landroid/os/S
HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectNetwork()Landroid/os/StrictMode$ThreadPolicy$Builder;
HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectResourceMismatches()Landroid/os/StrictMode$ThreadPolicy$Builder;
HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->detectUnbufferedIo()Landroid/os/StrictMode$ThreadPolicy$Builder;
+HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->disable(I)Landroid/os/StrictMode$ThreadPolicy$Builder;
HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->enable(I)Landroid/os/StrictMode$ThreadPolicy$Builder;
HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->penaltyDeath()Landroid/os/StrictMode$ThreadPolicy$Builder;
HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->penaltyDeathOnNetwork()Landroid/os/StrictMode$ThreadPolicy$Builder;
@@ -5625,13 +18041,27 @@ HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->penaltyLog()Landroid/os/StrictM
HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitAll()Landroid/os/StrictMode$ThreadPolicy$Builder;
HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitDiskReads()Landroid/os/StrictMode$ThreadPolicy$Builder;
HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitDiskWrites()Landroid/os/StrictMode$ThreadPolicy$Builder;
+HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitNetwork()Landroid/os/StrictMode$ThreadPolicy$Builder;
+HSPLandroid/os/StrictMode$ThreadPolicy$Builder;->permitUnbufferedIo()Landroid/os/StrictMode$ThreadPolicy$Builder;
HSPLandroid/os/StrictMode$ThreadPolicy;-><init>(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;)V
HSPLandroid/os/StrictMode$ThreadPolicy;-><init>(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;Landroid/os/StrictMode$1;)V
HSPLandroid/os/StrictMode$ThreadSpanState;-><init>()V
HSPLandroid/os/StrictMode$ThreadSpanState;-><init>(Landroid/os/StrictMode$1;)V
+PLandroid/os/StrictMode$ViolationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/StrictMode$ViolationInfo;
+PLandroid/os/StrictMode$ViolationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/os/StrictMode$ViolationInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/StrictMode$ViolationInfo;-><init>(Landroid/os/Parcel;Z)V
HSPLandroid/os/StrictMode$ViolationInfo;-><init>(Landroid/os/strictmode/Violation;I)V
+HSPLandroid/os/StrictMode$ViolationInfo;->access$1200(Landroid/os/StrictMode$ViolationInfo;)Landroid/os/strictmode/Violation;
+HSPLandroid/os/StrictMode$ViolationInfo;->access$500(Landroid/os/StrictMode$ViolationInfo;)I
+HSPLandroid/os/StrictMode$ViolationInfo;->addLocalStack(Ljava/lang/Throwable;)V
+HSPLandroid/os/StrictMode$ViolationInfo;->getStackTrace()Ljava/lang/String;
+HSPLandroid/os/StrictMode$ViolationInfo;->getViolationDetails()Ljava/lang/String;
HSPLandroid/os/StrictMode$ViolationInfo;->hashCode()I
+HSPLandroid/os/StrictMode$ViolationInfo;->penaltyEnabled(I)Z
+HSPLandroid/os/StrictMode$ViolationInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/os/StrictMode$VmPolicy$Builder;-><init>()V
+HSPLandroid/os/StrictMode$VmPolicy$Builder;-><init>(Landroid/os/StrictMode$VmPolicy;)V
HSPLandroid/os/StrictMode$VmPolicy$Builder;->build()Landroid/os/StrictMode$VmPolicy;
HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectActivityLeaks()Landroid/os/StrictMode$VmPolicy$Builder;
HSPLandroid/os/StrictMode$VmPolicy$Builder;->detectAll()Landroid/os/StrictMode$VmPolicy$Builder;
@@ -5651,36 +18081,70 @@ HSPLandroid/os/StrictMode$VmPolicy$Builder;->permitActivityLeaks()Landroid/os/St
HSPLandroid/os/StrictMode$VmPolicy;-><init>(ILjava/util/HashMap;Landroid/os/StrictMode$OnVmViolationListener;Ljava/util/concurrent/Executor;)V
HSPLandroid/os/StrictMode$VmPolicy;-><init>(ILjava/util/HashMap;Landroid/os/StrictMode$OnVmViolationListener;Ljava/util/concurrent/Executor;Landroid/os/StrictMode$1;)V
HSPLandroid/os/StrictMode;->access$100()Ljava/util/HashMap;
+HSPLandroid/os/StrictMode;->access$1000()Ljava/lang/ThreadLocal;
+HSPLandroid/os/StrictMode;->access$1400(ILandroid/os/StrictMode$ViolationInfo;)V
+HSPLandroid/os/StrictMode;->access$1500()Ljava/lang/ThreadLocal;
+HSPLandroid/os/StrictMode;->access$1600()Ljava/lang/ThreadLocal;
+HSPLandroid/os/StrictMode;->access$1700(Ljava/lang/String;I)V
HSPLandroid/os/StrictMode;->access$2400()Ljava/lang/ThreadLocal;
+HSPLandroid/os/StrictMode;->access$400()Z
+HSPLandroid/os/StrictMode;->access$600()Ljava/lang/ThreadLocal;
+HSPLandroid/os/StrictMode;->access$800()Ljava/lang/ThreadLocal;
+HSPLandroid/os/StrictMode;->access$900()Z
HSPLandroid/os/StrictMode;->allowThreadDiskReads()Landroid/os/StrictMode$ThreadPolicy;
HSPLandroid/os/StrictMode;->allowThreadDiskReadsMask()I
HSPLandroid/os/StrictMode;->allowThreadDiskWrites()Landroid/os/StrictMode$ThreadPolicy;
HSPLandroid/os/StrictMode;->allowThreadDiskWritesMask()I
+HSPLandroid/os/StrictMode;->clearGatheredViolations()V
+HSPLandroid/os/StrictMode;->decrementExpectedActivityCount(Ljava/lang/Class;)V
HSPLandroid/os/StrictMode;->dropboxViolationAsync(ILandroid/os/StrictMode$ViolationInfo;)V
+HPLandroid/os/StrictMode;->enterCriticalSpan(Ljava/lang/String;)Landroid/os/StrictMode$Span;
HSPLandroid/os/StrictMode;->getThreadPolicy()Landroid/os/StrictMode$ThreadPolicy;
HSPLandroid/os/StrictMode;->getThreadPolicyMask()I
+HSPLandroid/os/StrictMode;->getVmPolicy()Landroid/os/StrictMode$VmPolicy;
HSPLandroid/os/StrictMode;->handleApplicationStrictModeViolation(ILandroid/os/StrictMode$ViolationInfo;)V
+HSPLandroid/os/StrictMode;->hasGatheredViolations()Z
+HSPLandroid/os/StrictMode;->incrementExpectedActivityCount(Ljava/lang/Class;)V
HSPLandroid/os/StrictMode;->initThreadDefaults(Landroid/content/pm/ApplicationInfo;)V
HSPLandroid/os/StrictMode;->initVmDefaults(Landroid/content/pm/ApplicationInfo;)V
HSPLandroid/os/StrictMode;->isBundledSystemApp(Landroid/content/pm/ApplicationInfo;)Z
HSPLandroid/os/StrictMode;->isUserKeyUnlocked(I)Z
HSPLandroid/os/StrictMode;->lambda$dropboxViolationAsync$2(ILandroid/os/StrictMode$ViolationInfo;)V
+HSPLandroid/os/StrictMode;->lambda$static$0(Landroid/os/StrictMode$ViolationInfo;)V
HSPLandroid/os/StrictMode;->noteSlowCall(Ljava/lang/String;)V
HSPLandroid/os/StrictMode;->onBinderStrictModePolicyChange(I)V
HSPLandroid/os/StrictMode;->onCredentialProtectedPathAccess(Ljava/lang/String;I)V
+HSPLandroid/os/StrictMode;->onVmPolicyViolation(Landroid/os/strictmode/Violation;)V
HSPLandroid/os/StrictMode;->onVmPolicyViolation(Landroid/os/strictmode/Violation;Z)V
+HSPLandroid/os/StrictMode;->readAndHandleBinderCallViolations(Landroid/os/Parcel;)V
HSPLandroid/os/StrictMode;->setBlockGuardPolicy(I)V
HSPLandroid/os/StrictMode;->setBlockGuardVmPolicy(I)V
HSPLandroid/os/StrictMode;->setCloseGuardEnabled(Z)V
HSPLandroid/os/StrictMode;->setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V
HSPLandroid/os/StrictMode;->setThreadPolicyMask(I)V
HSPLandroid/os/StrictMode;->setVmPolicy(Landroid/os/StrictMode$VmPolicy;)V
+HSPLandroid/os/StrictMode;->tooManyViolationsThisLoop()Z
HSPLandroid/os/StrictMode;->vmClosableObjectLeaksEnabled()Z
+PLandroid/os/StrictMode;->vmContentUriWithoutPermissionEnabled()Z
+PLandroid/os/StrictMode;->vmFileUriExposureEnabled()Z
HSPLandroid/os/StrictMode;->vmImplicitDirectBootEnabled()Z
HSPLandroid/os/StrictMode;->vmRegistrationLeaksEnabled()Z
HSPLandroid/os/StrictMode;->vmSqliteObjectLeaksEnabled()Z
+HSPLandroid/os/StrictMode;->vmUntaggedSocketEnabled()Z
+HSPLandroid/os/StrictMode;->writeGatheredViolationsToParcel(Landroid/os/Parcel;)V
+HSPLandroid/os/SynchronousResultReceiver$Result;-><init>(ILandroid/os/Bundle;)V
+HSPLandroid/os/SynchronousResultReceiver;-><init>(Ljava/lang/String;)V
+HSPLandroid/os/SynchronousResultReceiver;->awaitResult(J)Landroid/os/SynchronousResultReceiver$Result;
+HSPLandroid/os/SynchronousResultReceiver;->getName()Ljava/lang/String;
+HSPLandroid/os/SynchronousResultReceiver;->onReceiveResult(ILandroid/os/Bundle;)V
+HSPLandroid/os/SystemClock$3;-><init>(Ljava/time/ZoneId;)V
+HSPLandroid/os/SystemClock$3;->millis()J
+HSPLandroid/os/SystemClock;->currentNetworkTimeClock()Ljava/time/Clock;
+HSPLandroid/os/SystemClock;->currentNetworkTimeMillis()J
+PLandroid/os/SystemClock;->sleep(J)V
HSPLandroid/os/SystemProperties;->addChangeCallback(Ljava/lang/Runnable;)V
HPLandroid/os/SystemProperties;->callChangeCallbacks()V
+HSPLandroid/os/SystemProperties;->digestOf([Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/os/SystemProperties;->get(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/os/SystemProperties;->get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/os/SystemProperties;->getBoolean(Ljava/lang/String;Z)Z
@@ -5688,162 +18152,800 @@ HSPLandroid/os/SystemProperties;->getInt(Ljava/lang/String;I)I
HSPLandroid/os/SystemProperties;->getLong(Ljava/lang/String;J)J
HSPLandroid/os/SystemProperties;->native_get(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/os/SystemProperties;->set(Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/os/SystemService$1;-><init>()V
+HPLandroid/os/SystemService$1;->run()V
+PLandroid/os/SystemService$State;-><clinit>()V
+PLandroid/os/SystemService$State;-><init>(Ljava/lang/String;ILjava/lang/String;)V
+PLandroid/os/SystemService;-><clinit>()V
+PLandroid/os/SystemService;->access$000()Ljava/util/HashMap;
+PLandroid/os/SystemService;->access$100()Ljava/lang/Object;
+PLandroid/os/SystemService;->getState(Ljava/lang/String;)Landroid/os/SystemService$State;
+PLandroid/os/SystemService;->isRunning(Ljava/lang/String;)Z
+PLandroid/os/SystemUpdateManager;->retrieveSystemUpdateInfo()Landroid/os/Bundle;
+HPLandroid/os/SystemUpdateManager;->updateSystemUpdateInfo(Landroid/os/PersistableBundle;)V
HSPLandroid/os/SystemVibrator;-><init>(Landroid/content/Context;)V
+PLandroid/os/SystemVibrator;->cancel()V
HSPLandroid/os/SystemVibrator;->hasVibrator()Z
+PLandroid/os/SystemVibrator;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;Ljava/lang/String;Landroid/media/AudioAttributes;)V
+HSPLandroid/os/TelephonyServiceManager$ServiceRegisterer;-><init>(Landroid/os/TelephonyServiceManager;Ljava/lang/String;)V
+HSPLandroid/os/TelephonyServiceManager$ServiceRegisterer;->get()Landroid/os/IBinder;
+HSPLandroid/os/TelephonyServiceManager;-><init>()V
+HSPLandroid/os/TelephonyServiceManager;->getTelephonyServiceRegisterer()Landroid/os/TelephonyServiceManager$ServiceRegisterer;
+HPLandroid/os/Temperature$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/Temperature;
+HPLandroid/os/Temperature$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/os/Temperature;-><init>(FILjava/lang/String;I)V
+HSPLandroid/os/Temperature;->getName()Ljava/lang/String;
+HSPLandroid/os/Temperature;->getStatus()I
+HSPLandroid/os/Temperature;->getType()I
+HSPLandroid/os/Temperature;->getValue()F
+HSPLandroid/os/Temperature;->isValidStatus(I)Z
+HSPLandroid/os/Temperature;->isValidType(I)Z
+PLandroid/os/Temperature;->toString()Ljava/lang/String;
+PLandroid/os/Temperature;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/ThreadLocalWorkSource;->getToken()J
+HSPLandroid/os/ThreadLocalWorkSource;->getUid()I
HSPLandroid/os/ThreadLocalWorkSource;->lambda$static$0()Ljava/lang/Integer;
+HSPLandroid/os/ThreadLocalWorkSource;->parseUidFromToken(J)I
HSPLandroid/os/ThreadLocalWorkSource;->restore(J)V
HSPLandroid/os/ThreadLocalWorkSource;->setUid(I)J
+HSPLandroid/os/TokenWatcher$1;-><init>(Landroid/os/TokenWatcher;)V
+HSPLandroid/os/TokenWatcher;-><init>(Landroid/os/Handler;Ljava/lang/String;)V
+PLandroid/os/TokenWatcher;->dump(Ljava/io/PrintWriter;)V
+PLandroid/os/TokenWatcher;->dumpInternal()Ljava/util/ArrayList;
HSPLandroid/os/Trace;->asyncTraceBegin(JLjava/lang/String;I)V
HSPLandroid/os/Trace;->asyncTraceEnd(JLjava/lang/String;I)V
+HPLandroid/os/Trace;->beginAsyncSection(Ljava/lang/String;I)V
HSPLandroid/os/Trace;->beginSection(Ljava/lang/String;)V
-HSPLandroid/os/Trace;->cacheEnabledTags()J
+HPLandroid/os/Trace;->endAsyncSection(Ljava/lang/String;I)V
HSPLandroid/os/Trace;->endSection()V
HSPLandroid/os/Trace;->isEnabled()Z
HSPLandroid/os/Trace;->isTagEnabled(J)Z
HSPLandroid/os/Trace;->setAppTracingAllowed(Z)V
+HPLandroid/os/Trace;->setCounter(Ljava/lang/String;J)V
HSPLandroid/os/Trace;->setTracingEnabled(ZI)V
HSPLandroid/os/Trace;->traceBegin(JLjava/lang/String;)V
+HSPLandroid/os/Trace;->traceCounter(JLjava/lang/String;I)V
HSPLandroid/os/Trace;->traceEnd(J)V
+PLandroid/os/TransactionTooLargeException;-><init>(Ljava/lang/String;)V
+HPLandroid/os/UEventObserver$UEvent;-><init>(Ljava/lang/String;)V
+PLandroid/os/UEventObserver$UEvent;->get(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/os/UEventObserver$UEventThread;-><init>()V
+HSPLandroid/os/UEventObserver$UEventThread;->addObserver(Ljava/lang/String;Landroid/os/UEventObserver;)V
+HSPLandroid/os/UEventObserver$UEventThread;->run()V
+HPLandroid/os/UEventObserver$UEventThread;->sendEvent(Ljava/lang/String;)V
+HSPLandroid/os/UEventObserver;-><init>()V
+HSPLandroid/os/UEventObserver;->access$000()V
+HSPLandroid/os/UEventObserver;->access$100()Ljava/lang/String;
+HSPLandroid/os/UEventObserver;->access$200(Ljava/lang/String;)V
+HSPLandroid/os/UEventObserver;->getThread()Landroid/os/UEventObserver$UEventThread;
+HSPLandroid/os/UEventObserver;->startObserving(Ljava/lang/String;)V
+PLandroid/os/UpdateEngine$1;-><init>(Landroid/os/UpdateEngine;Landroid/os/Handler;Landroid/os/UpdateEngineCallback;)V
+PLandroid/os/UpdateEngine$1;->onStatusUpdate(IF)V
+PLandroid/os/UpdateEngine;-><init>()V
+PLandroid/os/UpdateEngine;->bind(Landroid/os/UpdateEngineCallback;)Z
+PLandroid/os/UpdateEngine;->bind(Landroid/os/UpdateEngineCallback;Landroid/os/Handler;)Z
+PLandroid/os/UpdateEngineCallback;-><init>()V
+HSPLandroid/os/UpdateLock;-><init>(Ljava/lang/String;)V
+PLandroid/os/UpdateLock;->isHeld()Z
HSPLandroid/os/UserHandle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/UserHandle;
HSPLandroid/os/UserHandle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/os/UserHandle;-><init>(I)V
+PLandroid/os/UserHandle;->describeContents()I
HSPLandroid/os/UserHandle;->equals(Ljava/lang/Object;)Z
+HPLandroid/os/UserHandle;->formatUid(I)Ljava/lang/String;
+HSPLandroid/os/UserHandle;->formatUid(Ljava/io/PrintWriter;I)V
+HSPLandroid/os/UserHandle;->formatUid(Ljava/lang/StringBuilder;I)V
HSPLandroid/os/UserHandle;->getAppId(I)I
HSPLandroid/os/UserHandle;->getCacheAppGid(I)I
HSPLandroid/os/UserHandle;->getCacheAppGid(II)I
HSPLandroid/os/UserHandle;->getCallingUserId()I
HSPLandroid/os/UserHandle;->getIdentifier()I
+HSPLandroid/os/UserHandle;->getSharedAppGid(I)I
+HSPLandroid/os/UserHandle;->getSharedAppGid(II)I
HSPLandroid/os/UserHandle;->getUid(II)I
+HSPLandroid/os/UserHandle;->getUserGid(I)I
HSPLandroid/os/UserHandle;->getUserHandleForUid(I)Landroid/os/UserHandle;
HSPLandroid/os/UserHandle;->getUserId(I)I
HSPLandroid/os/UserHandle;->hashCode()I
+HSPLandroid/os/UserHandle;->isApp(I)Z
+HSPLandroid/os/UserHandle;->isCore(I)Z
+HSPLandroid/os/UserHandle;->isIsolated(I)Z
+HSPLandroid/os/UserHandle;->isOwner()Z
HSPLandroid/os/UserHandle;->isSameApp(II)Z
+HSPLandroid/os/UserHandle;->isSameUser(II)Z
+HSPLandroid/os/UserHandle;->isSystem()Z
HSPLandroid/os/UserHandle;->myUserId()I
HSPLandroid/os/UserHandle;->of(I)Landroid/os/UserHandle;
-HSPLandroid/os/UserHandle;->readFromParcel(Landroid/os/Parcel;)Landroid/os/UserHandle;
+PLandroid/os/UserHandle;->parseUserArg(Ljava/lang/String;)I
+PLandroid/os/UserHandle;->readFromParcel(Landroid/os/Parcel;)Landroid/os/UserHandle;
HSPLandroid/os/UserHandle;->toString()Ljava/lang/String;
HSPLandroid/os/UserHandle;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/os/UserHandle;->writeToParcel(Landroid/os/UserHandle;Landroid/os/Parcel;)V
HSPLandroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
+HSPLandroid/os/UserManager;->addUserRestrictionsListener(Landroid/os/IUserRestrictionsListener;)V
HSPLandroid/os/UserManager;->get(Landroid/content/Context;)Landroid/os/UserManager;
HSPLandroid/os/UserManager;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
+HPLandroid/os/UserManager;->getApplicationRestrictions(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/os/Bundle;
+HSPLandroid/os/UserManager;->getBadgedLabelForUser(Ljava/lang/CharSequence;Landroid/os/UserHandle;)Ljava/lang/CharSequence;
+HSPLandroid/os/UserManager;->getCredentialOwnerProfile(I)I
+PLandroid/os/UserManager;->getEnabledProfileIds(I)[I
+HSPLandroid/os/UserManager;->getEnabledProfiles(I)Ljava/util/List;
HSPLandroid/os/UserManager;->getMaxSupportedUsers()I
+HSPLandroid/os/UserManager;->getPrimaryUser()Landroid/content/pm/UserInfo;
HSPLandroid/os/UserManager;->getProfileIds(IZ)[I
HSPLandroid/os/UserManager;->getProfileIdsWithDisabled(I)[I
HSPLandroid/os/UserManager;->getProfileParent(I)Landroid/content/pm/UserInfo;
+HSPLandroid/os/UserManager;->getProfileParent(Landroid/os/UserHandle;)Landroid/os/UserHandle;
HSPLandroid/os/UserManager;->getProfiles(I)Ljava/util/List;
HSPLandroid/os/UserManager;->getSerialNumberForUser(Landroid/os/UserHandle;)J
+HSPLandroid/os/UserManager;->getSerialNumbersOfUsers(Z)[J
+HSPLandroid/os/UserManager;->getUserBadgeColor(I)I
+HPLandroid/os/UserManager;->getUserBadgeNoBackgroundResId(I)I
+HSPLandroid/os/UserManager;->getUserCount()I
+HSPLandroid/os/UserManager;->getUserCreationTime(Landroid/os/UserHandle;)J
HSPLandroid/os/UserManager;->getUserForSerialNumber(J)Landroid/os/UserHandle;
HSPLandroid/os/UserManager;->getUserHandle()I
HSPLandroid/os/UserManager;->getUserHandle(I)I
+HSPLandroid/os/UserManager;->getUserIcon()Landroid/graphics/Bitmap;
+HSPLandroid/os/UserManager;->getUserIcon(I)Landroid/graphics/Bitmap;
+HSPLandroid/os/UserManager;->getUserIconBadgeResId(I)I
HSPLandroid/os/UserManager;->getUserInfo(I)Landroid/content/pm/UserInfo;
+HSPLandroid/os/UserManager;->getUserName()Ljava/lang/String;
HSPLandroid/os/UserManager;->getUserProfiles()Ljava/util/List;
+HSPLandroid/os/UserManager;->getUserRestrictionSources(Ljava/lang/String;Landroid/os/UserHandle;)Ljava/util/List;
+HSPLandroid/os/UserManager;->getUserRestrictions()Landroid/os/Bundle;
+HSPLandroid/os/UserManager;->getUserRestrictions(Landroid/os/UserHandle;)Landroid/os/Bundle;
HSPLandroid/os/UserManager;->getUserSerialNumber(I)I
+HSPLandroid/os/UserManager;->getUserStartRealtime()J
+HSPLandroid/os/UserManager;->getUserUnlockRealtime()J
HSPLandroid/os/UserManager;->getUsers()Ljava/util/List;
HSPLandroid/os/UserManager;->getUsers(Z)Ljava/util/List;
HSPLandroid/os/UserManager;->getUsers(ZZZ)Ljava/util/List;
HSPLandroid/os/UserManager;->hasBadge(I)Z
+HSPLandroid/os/UserManager;->hasBaseUserRestriction(Ljava/lang/String;Landroid/os/UserHandle;)Z
HSPLandroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;)Z
HSPLandroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;Landroid/os/UserHandle;)Z
HSPLandroid/os/UserManager;->hasUserRestrictionForUser(Ljava/lang/String;Landroid/os/UserHandle;)Z
HSPLandroid/os/UserManager;->isAdminUser()Z
HSPLandroid/os/UserManager;->isDemoUser()Z
+HSPLandroid/os/UserManager;->isDeviceInDemoMode(Landroid/content/Context;)Z
+HSPLandroid/os/UserManager;->isGuestUser()Z
+HPLandroid/os/UserManager;->isGuestUser(I)Z
+HSPLandroid/os/UserManager;->isHeadlessSystemUserMode()Z
+HSPLandroid/os/UserManager;->isLinkedUser()Z
HSPLandroid/os/UserManager;->isManagedProfile()Z
HSPLandroid/os/UserManager;->isManagedProfile(I)Z
+PLandroid/os/UserManager;->isPrimaryUser()Z
HSPLandroid/os/UserManager;->isProfile()Z
HSPLandroid/os/UserManager;->isProfile(I)Z
+HSPLandroid/os/UserManager;->isQuietModeEnabled(Landroid/os/UserHandle;)Z
+HSPLandroid/os/UserManager;->isRestrictedProfile()Z
+HSPLandroid/os/UserManager;->isRestrictedProfile(Landroid/os/UserHandle;)Z
+PLandroid/os/UserManager;->isSameProfileGroup(II)Z
+PLandroid/os/UserManager;->isSameProfileGroup(Landroid/os/UserHandle;Landroid/os/UserHandle;)Z
+HSPLandroid/os/UserManager;->isSettingRestrictedForUser(Ljava/lang/String;ILjava/lang/String;I)Z
+PLandroid/os/UserManager;->isSplitSystemUser()Z
HSPLandroid/os/UserManager;->isSystemUser()Z
HSPLandroid/os/UserManager;->isUserAdmin(I)Z
HSPLandroid/os/UserManager;->isUserRunning(I)Z
HSPLandroid/os/UserManager;->isUserRunning(Landroid/os/UserHandle;)Z
-HSPLandroid/os/UserManager;->isUserTypeGuest(Ljava/lang/String;)Z
+HSPLandroid/os/UserManager;->isUserSwitcherEnabled()Z
+PLandroid/os/UserManager;->isUserTypeDemo(Ljava/lang/String;)Z
+PLandroid/os/UserManager;->isUserTypeGuest(Ljava/lang/String;)Z
HSPLandroid/os/UserManager;->isUserTypeManagedProfile(Ljava/lang/String;)Z
+HPLandroid/os/UserManager;->isUserTypeRestricted(Ljava/lang/String;)Z
HSPLandroid/os/UserManager;->isUserUnlocked()Z
HSPLandroid/os/UserManager;->isUserUnlocked(I)Z
HSPLandroid/os/UserManager;->isUserUnlocked(Landroid/os/UserHandle;)Z
HSPLandroid/os/UserManager;->isUserUnlockingOrUnlocked(I)Z
+HPLandroid/os/UserManager;->isUserUnlockingOrUnlocked(Landroid/os/UserHandle;)Z
+HPLandroid/os/UserManager;->setApplicationRestrictions(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/UserHandle;)V
HSPLandroid/os/UserManager;->supportsMultipleUsers()Z
+PLandroid/os/VibrationEffect$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/VibrationEffect;
+PLandroid/os/VibrationEffect$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/os/VibrationEffect$OneShot;-><init>(JI)V
+PLandroid/os/VibrationEffect$OneShot;-><init>(Landroid/os/Parcel;)V
+PLandroid/os/VibrationEffect$OneShot;->getAmplitude()I
+PLandroid/os/VibrationEffect$OneShot;->getDuration()J
+PLandroid/os/VibrationEffect$OneShot;->resolve(I)Landroid/os/VibrationEffect$OneShot;
+PLandroid/os/VibrationEffect$OneShot;->scale(FI)Landroid/os/VibrationEffect$OneShot;
+PLandroid/os/VibrationEffect$OneShot;->toString()Ljava/lang/String;
HSPLandroid/os/VibrationEffect$OneShot;->validate()V
+HSPLandroid/os/VibrationEffect$Prebaked;-><init>(IZ)V
+PLandroid/os/VibrationEffect$Prebaked;-><init>(Landroid/os/Parcel;)V
+PLandroid/os/VibrationEffect$Prebaked;->getDuration()J
+PLandroid/os/VibrationEffect$Prebaked;->getEffectStrength()I
+PLandroid/os/VibrationEffect$Prebaked;->getId()I
+HSPLandroid/os/VibrationEffect$Prebaked;->isValidEffectStrength(I)Z
+PLandroid/os/VibrationEffect$Prebaked;->setEffectStrength(I)V
+PLandroid/os/VibrationEffect$Prebaked;->toString()Ljava/lang/String;
+HSPLandroid/os/VibrationEffect$Prebaked;->validate()V
+HPLandroid/os/VibrationEffect$Prebaked;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/os/VibrationEffect$Waveform;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/VibrationEffect$Waveform;-><init>([J[II)V
+PLandroid/os/VibrationEffect$Waveform;->getAmplitudes()[I
+PLandroid/os/VibrationEffect$Waveform;->getDuration()J
+PLandroid/os/VibrationEffect$Waveform;->getRepeatIndex()I
+PLandroid/os/VibrationEffect$Waveform;->getTimings()[J
+HSPLandroid/os/VibrationEffect$Waveform;->hasNonZeroEntry([J)Z
+PLandroid/os/VibrationEffect$Waveform;->resolve(I)Landroid/os/VibrationEffect$Waveform;
+PLandroid/os/VibrationEffect$Waveform;->scale(FI)Landroid/os/VibrationEffect$Waveform;
+PLandroid/os/VibrationEffect$Waveform;->toString()Ljava/lang/String;
+HSPLandroid/os/VibrationEffect$Waveform;->validate()V
+HSPLandroid/os/VibrationEffect;-><init>()V
HSPLandroid/os/VibrationEffect;->createOneShot(JI)Landroid/os/VibrationEffect;
+HPLandroid/os/VibrationEffect;->createPredefined(I)Landroid/os/VibrationEffect;
+HSPLandroid/os/VibrationEffect;->createWaveform([JI)Landroid/os/VibrationEffect;
+HSPLandroid/os/VibrationEffect;->createWaveform([J[II)Landroid/os/VibrationEffect;
+HSPLandroid/os/VibrationEffect;->get(I)Landroid/os/VibrationEffect;
+HSPLandroid/os/VibrationEffect;->get(IZ)Landroid/os/VibrationEffect;
+PLandroid/os/VibrationEffect;->scale(IFI)I
+HSPLandroid/os/Vibrator;-><init>()V
+HSPLandroid/os/Vibrator;-><init>(Landroid/content/Context;)V
+HSPLandroid/os/Vibrator;->getDefaultHapticFeedbackIntensity()I
+HSPLandroid/os/Vibrator;->getDefaultNotificationVibrationIntensity()I
+HSPLandroid/os/Vibrator;->getDefaultRingVibrationIntensity()I
HSPLandroid/os/Vibrator;->loadDefaultIntensity(Landroid/content/Context;I)I
HSPLandroid/os/Vibrator;->loadVibrationIntensities(Landroid/content/Context;)V
-HPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/WorkSource;
-HPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/os/Vibrator;->vibrate(Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;)V
+HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/WorkSource;
+HSPLandroid/os/WorkSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/os/WorkSource$WorkChain$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/WorkSource$WorkChain;
+HPLandroid/os/WorkSource$WorkChain$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSLandroid/os/WorkSource$WorkChain;-><init>()V
+PLandroid/os/WorkSource$WorkChain;-><init>(Landroid/os/Parcel;)V
+PLandroid/os/WorkSource$WorkChain;-><init>(Landroid/os/Parcel;Landroid/os/WorkSource$1;)V
+HSPLandroid/os/WorkSource$WorkChain;-><init>(Landroid/os/WorkSource$WorkChain;)V
+HSPLandroid/os/WorkSource$WorkChain;->addNode(ILjava/lang/String;)Landroid/os/WorkSource$WorkChain;
+HSPLandroid/os/WorkSource$WorkChain;->equals(Ljava/lang/Object;)Z
+PLandroid/os/WorkSource$WorkChain;->getAttributionUid()I
+PLandroid/os/WorkSource$WorkChain;->getTags()[Ljava/lang/String;
+PLandroid/os/WorkSource$WorkChain;->getUids()[I
+HSPLandroid/os/WorkSource$WorkChain;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/os/WorkSource;-><init>()V
+HSPLandroid/os/WorkSource;-><init>(I)V
HSPLandroid/os/WorkSource;-><init>(ILjava/lang/String;)V
-HPLandroid/os/WorkSource;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/WorkSource;-><init>(Landroid/os/Parcel;)V
HSPLandroid/os/WorkSource;-><init>(Landroid/os/WorkSource;)V
+PLandroid/os/WorkSource;->add(I)Z
+HSPLandroid/os/WorkSource;->add(ILjava/lang/String;)Z
HSPLandroid/os/WorkSource;->add(Landroid/os/WorkSource;)Z
+PLandroid/os/WorkSource;->addWork(Landroid/os/WorkSource;ILjava/lang/String;)Landroid/os/WorkSource;
+PLandroid/os/WorkSource;->clearNames()V
+PLandroid/os/WorkSource;->compare(Landroid/os/WorkSource;II)I
+HSPLandroid/os/WorkSource;->createWorkChain()Landroid/os/WorkSource$WorkChain;
+HSPLandroid/os/WorkSource;->diff(Landroid/os/WorkSource;)Z
+HPLandroid/os/WorkSource;->diffChains(Landroid/os/WorkSource;Landroid/os/WorkSource;)[Ljava/util/ArrayList;
+PLandroid/os/WorkSource;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/os/WorkSource;->equals(Ljava/lang/Object;)Z
+HPLandroid/os/WorkSource;->get(I)I
+HPLandroid/os/WorkSource;->getAttributionUid()I
+HSPLandroid/os/WorkSource;->getName(I)Ljava/lang/String;
HSPLandroid/os/WorkSource;->getPackageName(I)Ljava/lang/String;
HSPLandroid/os/WorkSource;->getUid(I)I
+HSPLandroid/os/WorkSource;->getWorkChains()Ljava/util/List;
+HSPLandroid/os/WorkSource;->hashCode()I
+PLandroid/os/WorkSource;->insert(II)V
HSPLandroid/os/WorkSource;->insert(IILjava/lang/String;)V
+HSPLandroid/os/WorkSource;->isChainedBatteryAttributionEnabled(Landroid/content/Context;)Z
HSPLandroid/os/WorkSource;->isEmpty()Z
+HSPLandroid/os/WorkSource;->remove(Landroid/os/WorkSource;)Z
+HSPLandroid/os/WorkSource;->removeUidsAndNames(Landroid/os/WorkSource;)Z
+PLandroid/os/WorkSource;->set(I)V
+HSPLandroid/os/WorkSource;->set(Landroid/os/WorkSource;)V
+PLandroid/os/WorkSource;->setReturningDiffs(Landroid/os/WorkSource;)[Landroid/os/WorkSource;
HSPLandroid/os/WorkSource;->size()I
+PLandroid/os/WorkSource;->toString()Ljava/lang/String;
HSPLandroid/os/WorkSource;->updateLocked(Landroid/os/WorkSource;ZZ)Z
HSPLandroid/os/WorkSource;->updateUidsAndNamesLocked(Landroid/os/WorkSource;ZZ)Z
+HSPLandroid/os/WorkSource;->updateUidsLocked(Landroid/os/WorkSource;ZZ)Z
+HPLandroid/os/WorkSource;->withoutNames()Landroid/os/WorkSource;
HSPLandroid/os/WorkSource;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/ZygoteProcess$ZygoteState;-><init>(Landroid/net/LocalSocketAddress;Landroid/net/LocalSocketAddress;Landroid/net/LocalSocket;Ljava/io/DataInputStream;Ljava/io/BufferedWriter;Ljava/util/List;)V
+HSPLandroid/os/ZygoteProcess$ZygoteState;->close()V
+HSPLandroid/os/ZygoteProcess$ZygoteState;->connect(Landroid/net/LocalSocketAddress;Landroid/net/LocalSocketAddress;)Landroid/os/ZygoteProcess$ZygoteState;
+HSPLandroid/os/ZygoteProcess$ZygoteState;->isClosed()Z
+HSPLandroid/os/ZygoteProcess$ZygoteState;->matches(Ljava/lang/String;)Z
+HSPLandroid/os/ZygoteProcess;-><init>(Landroid/net/LocalSocketAddress;Landroid/net/LocalSocketAddress;)V
+HSPLandroid/os/ZygoteProcess;->access$000(Ljava/io/BufferedWriter;Ljava/io/DataInputStream;)Ljava/util/List;
+HSPLandroid/os/ZygoteProcess;->attemptConnectionToPrimaryZygote()V
+HSPLandroid/os/ZygoteProcess;->attemptConnectionToSecondaryZygote()V
+HSPLandroid/os/ZygoteProcess;->attemptZygoteSendArgsAndGetResult(Landroid/os/ZygoteProcess$ZygoteState;Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+PLandroid/os/ZygoteProcess;->bootCompleted()V
+PLandroid/os/ZygoteProcess;->bootCompleted(Ljava/lang/String;)V
+PLandroid/os/ZygoteProcess;->close()V
+PLandroid/os/ZygoteProcess;->establishZygoteConnectionForAbi(Ljava/lang/String;)V
+HSPLandroid/os/ZygoteProcess;->fetchUsapPoolEnabledProp()Z
+HSPLandroid/os/ZygoteProcess;->fetchUsapPoolEnabledPropWithMinInterval()Z
+HSPLandroid/os/ZygoteProcess;->getAbiList(Ljava/io/BufferedWriter;Ljava/io/DataInputStream;)Ljava/util/List;
+HSPLandroid/os/ZygoteProcess;->getPrimarySocketAddress()Landroid/net/LocalSocketAddress;
+HSPLandroid/os/ZygoteProcess;->maybeSetApiBlacklistExemptions(Landroid/os/ZygoteProcess$ZygoteState;Z)Z
+HSPLandroid/os/ZygoteProcess;->maybeSetHiddenApiAccessLogSampleRate(Landroid/os/ZygoteProcess$ZygoteState;)V
+PLandroid/os/ZygoteProcess;->maybeSetHiddenApiAccessStatslogSampleRate(Landroid/os/ZygoteProcess$ZygoteState;)V
+HSPLandroid/os/ZygoteProcess;->openZygoteSocketIfNeeded(Ljava/lang/String;)Landroid/os/ZygoteProcess$ZygoteState;
+HSPLandroid/os/ZygoteProcess;->preloadApp(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;)Z
+HSPLandroid/os/ZygoteProcess;->preloadDefault(Ljava/lang/String;)Z
+PLandroid/os/ZygoteProcess;->setHiddenApiAccessLogSampleRate(I)V
+PLandroid/os/ZygoteProcess;->setHiddenApiAccessStatslogSampleRate(I)V
+HSPLandroid/os/ZygoteProcess;->start(Ljava/lang/String;Ljava/lang/String;II[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ[J[Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+HSPLandroid/os/ZygoteProcess;->startChildZygote(Ljava/lang/String;Ljava/lang/String;II[IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)Landroid/os/ChildZygoteProcess;
+HSPLandroid/os/ZygoteProcess;->startViaZygote(Ljava/lang/String;Ljava/lang/String;II[IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;ZZ[J[Ljava/lang/String;)Landroid/os/Process$ProcessStartResult;
+HSPLandroid/os/ZygoteProcess;->waitForConnectionToZygote(Landroid/net/LocalSocketAddress;)V
+HSPLandroid/os/ZygoteProcess;->waitForConnectionToZygote(Ljava/lang/String;)V
+HSPLandroid/os/ZygoteProcess;->zygoteSendArgsAndGetResult(Landroid/os/ZygoteProcess$ZygoteState;ZLjava/util/ArrayList;)Landroid/os/Process$ProcessStartResult;
+HPLandroid/os/connectivity/CellularBatteryStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/connectivity/CellularBatteryStats;
+HPLandroid/os/connectivity/CellularBatteryStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/os/connectivity/CellularBatteryStats;-><init>()V
+HPLandroid/os/connectivity/CellularBatteryStats;-><init>(Landroid/os/Parcel;)V
+HPLandroid/os/connectivity/CellularBatteryStats;->getEnergyConsumedMaMillis()J
+HPLandroid/os/connectivity/CellularBatteryStats;->getIdleTimeMillis()J
+HPLandroid/os/connectivity/CellularBatteryStats;->getKernelActiveTimeMillis()J
+HPLandroid/os/connectivity/CellularBatteryStats;->getLoggingDurationMillis()J
+HPLandroid/os/connectivity/CellularBatteryStats;->getMonitoredRailChargeConsumedMaMillis()J
+HPLandroid/os/connectivity/CellularBatteryStats;->getNumBytesRx()J
+HPLandroid/os/connectivity/CellularBatteryStats;->getNumBytesTx()J
+HPLandroid/os/connectivity/CellularBatteryStats;->getNumPacketsRx()J
+HPLandroid/os/connectivity/CellularBatteryStats;->getNumPacketsTx()J
+HPLandroid/os/connectivity/CellularBatteryStats;->getRxTimeMillis()J
+HPLandroid/os/connectivity/CellularBatteryStats;->getSleepTimeMillis()J
+HPLandroid/os/connectivity/CellularBatteryStats;->getTimeInRatMicros()[J
+HPLandroid/os/connectivity/CellularBatteryStats;->getTimeInRxSignalStrengthLevelMicros()[J
+HPLandroid/os/connectivity/CellularBatteryStats;->getTxTimeMillis()[J
+HPLandroid/os/connectivity/CellularBatteryStats;->readFromParcel(Landroid/os/Parcel;)V
+PLandroid/os/connectivity/CellularBatteryStats;->setEnergyConsumedMaMillis(J)V
+PLandroid/os/connectivity/CellularBatteryStats;->setIdleTimeMillis(J)V
+PLandroid/os/connectivity/CellularBatteryStats;->setKernelActiveTimeMillis(J)V
+PLandroid/os/connectivity/CellularBatteryStats;->setLoggingDurationMillis(J)V
+PLandroid/os/connectivity/CellularBatteryStats;->setMonitoredRailChargeConsumedMaMillis(J)V
+PLandroid/os/connectivity/CellularBatteryStats;->setNumBytesRx(J)V
+PLandroid/os/connectivity/CellularBatteryStats;->setNumBytesTx(J)V
+PLandroid/os/connectivity/CellularBatteryStats;->setNumPacketsRx(J)V
+PLandroid/os/connectivity/CellularBatteryStats;->setNumPacketsTx(J)V
+PLandroid/os/connectivity/CellularBatteryStats;->setRxTimeMillis(J)V
+PLandroid/os/connectivity/CellularBatteryStats;->setSleepTimeMillis(J)V
+PLandroid/os/connectivity/CellularBatteryStats;->setTimeInRatMicros([J)V
+PLandroid/os/connectivity/CellularBatteryStats;->setTimeInRxSignalStrengthLevelMicros([J)V
+PLandroid/os/connectivity/CellularBatteryStats;->setTxTimeMillis([J)V
+HPLandroid/os/connectivity/CellularBatteryStats;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/os/connectivity/GpsBatteryStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/connectivity/GpsBatteryStats;
+HPLandroid/os/connectivity/GpsBatteryStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/os/connectivity/GpsBatteryStats;-><init>()V
+HPLandroid/os/connectivity/GpsBatteryStats;-><init>(Landroid/os/Parcel;)V
+HPLandroid/os/connectivity/GpsBatteryStats;-><init>(Landroid/os/Parcel;Landroid/os/connectivity/GpsBatteryStats$1;)V
+PLandroid/os/connectivity/GpsBatteryStats;->getEnergyConsumedMaMs()J
+PLandroid/os/connectivity/GpsBatteryStats;->getLoggingDurationMs()J
+PLandroid/os/connectivity/GpsBatteryStats;->getTimeInGpsSignalQualityLevel()[J
+PLandroid/os/connectivity/GpsBatteryStats;->initialize()V
+HPLandroid/os/connectivity/GpsBatteryStats;->readFromParcel(Landroid/os/Parcel;)V
+PLandroid/os/connectivity/GpsBatteryStats;->setEnergyConsumedMaMs(J)V
+PLandroid/os/connectivity/GpsBatteryStats;->setLoggingDurationMs(J)V
+PLandroid/os/connectivity/GpsBatteryStats;->setTimeInGpsSignalQualityLevel([J)V
+PLandroid/os/connectivity/GpsBatteryStats;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/connectivity/WifiActivityEnergyInfo$1;-><init>()V
+HSPLandroid/os/connectivity/WifiActivityEnergyInfo;-><clinit>()V
+HSPLandroid/os/connectivity/WifiActivityEnergyInfo;-><init>(JIJJJJ)V
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->getControllerEnergyUsedMicroJoules()J
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->getControllerIdleDurationMillis()J
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->getControllerRxDurationMillis()J
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->getControllerScanDurationMillis()J
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->getControllerTxDurationMillis()J
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->getStackState()I
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->getTimeSinceBootMillis()J
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->isValid()Z
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->setControllerEnergyUsedMicroJoules(J)V
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->setControllerIdleDurationMillis(J)V
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->setControllerRxDurationMillis(J)V
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->setControllerScanDurationMillis(J)V
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->setControllerTxDurationMillis(J)V
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->setStackState(I)V
+PLandroid/os/connectivity/WifiActivityEnergyInfo;->setTimeSinceBootMillis(J)V
+HPLandroid/os/connectivity/WifiActivityEnergyInfo;->toString()Ljava/lang/String;
+HPLandroid/os/connectivity/WifiBatteryStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/connectivity/WifiBatteryStats;
+HPLandroid/os/connectivity/WifiBatteryStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/os/connectivity/WifiBatteryStats;-><init>()V
+HPLandroid/os/connectivity/WifiBatteryStats;-><init>(Landroid/os/Parcel;)V
+HPLandroid/os/connectivity/WifiBatteryStats;-><init>(Landroid/os/Parcel;Landroid/os/connectivity/WifiBatteryStats$1;)V
+PLandroid/os/connectivity/WifiBatteryStats;->getEnergyConsumedMaMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getIdleTimeMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getKernelActiveTimeMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getLoggingDurationMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getMonitoredRailChargeConsumedMaMillis()J
+HPLandroid/os/connectivity/WifiBatteryStats;->getNumAppScanRequest()J
+PLandroid/os/connectivity/WifiBatteryStats;->getNumBytesTx()J
+PLandroid/os/connectivity/WifiBatteryStats;->getNumPacketsRx()J
+PLandroid/os/connectivity/WifiBatteryStats;->getNumPacketsTx()J
+PLandroid/os/connectivity/WifiBatteryStats;->getRxTimeMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getScanTimeMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getSleepTimeMillis()J
+PLandroid/os/connectivity/WifiBatteryStats;->getTxTimeMillis()J
+HPLandroid/os/connectivity/WifiBatteryStats;->readFromParcel(Landroid/os/Parcel;)V
+PLandroid/os/connectivity/WifiBatteryStats;->setEnergyConsumedMaMillis(J)V
+PLandroid/os/connectivity/WifiBatteryStats;->setIdleTimeMillis(J)V
+PLandroid/os/connectivity/WifiBatteryStats;->setKernelActiveTimeMillis(J)V
+PLandroid/os/connectivity/WifiBatteryStats;->setLoggingDurationMillis(J)V
+PLandroid/os/connectivity/WifiBatteryStats;->setMonitoredRailChargeConsumedMaMillis(J)V
+PLandroid/os/connectivity/WifiBatteryStats;->setNumAppScanRequest(J)V
+PLandroid/os/connectivity/WifiBatteryStats;->setNumBytesRx(J)V
+PLandroid/os/connectivity/WifiBatteryStats;->setNumBytesTx(J)V
+PLandroid/os/connectivity/WifiBatteryStats;->setNumPacketsRx(J)V
+PLandroid/os/connectivity/WifiBatteryStats;->setNumPacketsTx(J)V
+PLandroid/os/connectivity/WifiBatteryStats;->setRxTimeMillis(J)V
+PLandroid/os/connectivity/WifiBatteryStats;->setScanTimeMillis(J)V
+PLandroid/os/connectivity/WifiBatteryStats;->setSleepTimeMillis(J)V
+HPLandroid/os/connectivity/WifiBatteryStats;->setTimeInRxSignalStrengthLevelMillis([J)V
+HPLandroid/os/connectivity/WifiBatteryStats;->setTimeInStateMillis([J)V
+HPLandroid/os/connectivity/WifiBatteryStats;->setTimeInSupplicantStateMillis([J)V
+PLandroid/os/connectivity/WifiBatteryStats;->setTxTimeMillis(J)V
+HPLandroid/os/connectivity/WifiBatteryStats;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/os/health/HealthKeys$Constants;-><init>(Ljava/lang/Class;)V
+PLandroid/os/health/HealthKeys$Constants;->getDataType()Ljava/lang/String;
+HPLandroid/os/health/HealthKeys$Constants;->getIndex(II)I
+HPLandroid/os/health/HealthKeys$Constants;->getKeys(I)[I
+HPLandroid/os/health/HealthKeys$Constants;->getSize(I)I
+PLandroid/os/health/HealthKeys$SortedIntArray;-><init>(I)V
+PLandroid/os/health/HealthKeys$SortedIntArray;->addValue(I)V
+PLandroid/os/health/HealthKeys$SortedIntArray;->getArray()[I
+HPLandroid/os/health/HealthStats;-><init>(Landroid/os/Parcel;)V
+HPLandroid/os/health/HealthStats;->getIndex([II)I
+HPLandroid/os/health/HealthStats;->getMeasurement(I)J
+HPLandroid/os/health/HealthStats;->getMeasurements(I)Ljava/util/Map;
+HPLandroid/os/health/HealthStats;->getStats(I)Ljava/util/Map;
+HPLandroid/os/health/HealthStats;->getTimer(I)Landroid/os/health/TimerStat;
+HPLandroid/os/health/HealthStats;->getTimers(I)Ljava/util/Map;
+HPLandroid/os/health/HealthStats;->hasMeasurement(I)Z
+HPLandroid/os/health/HealthStats;->hasMeasurements(I)Z
+HPLandroid/os/health/HealthStats;->hasStats(I)Z
+HPLandroid/os/health/HealthStats;->hasTimer(I)Z
+HPLandroid/os/health/HealthStats;->hasTimers(I)Z
+HPLandroid/os/health/HealthStatsParceler$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/health/HealthStatsParceler;
+HPLandroid/os/health/HealthStatsParceler$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/os/health/HealthStatsParceler;->getHealthStats()Landroid/os/health/HealthStats;
+PLandroid/os/health/HealthStatsParceler;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/os/health/HealthStatsWriter;-><init>(Landroid/os/health/HealthKeys$Constants;)V
+HPLandroid/os/health/HealthStatsWriter;->addMeasurement(IJ)V
+PLandroid/os/health/HealthStatsWriter;->addMeasurements(ILjava/lang/String;J)V
+PLandroid/os/health/HealthStatsWriter;->addStats(ILjava/lang/String;Landroid/os/health/HealthStatsWriter;)V
+PLandroid/os/health/HealthStatsWriter;->addTimer(IIJ)V
+PLandroid/os/health/HealthStatsWriter;->addTimers(ILjava/lang/String;Landroid/os/health/TimerStat;)V
+PLandroid/os/health/HealthStatsWriter;->countBooleanArray([Z)I
+PLandroid/os/health/HealthStatsWriter;->countObjectArray([Ljava/lang/Object;)I
+HPLandroid/os/health/HealthStatsWriter;->flattenToParcel(Landroid/os/Parcel;)V
+PLandroid/os/health/HealthStatsWriter;->writeHealthStatsWriterMap(Landroid/os/Parcel;Landroid/util/ArrayMap;)V
+PLandroid/os/health/HealthStatsWriter;->writeLongsMap(Landroid/os/Parcel;Landroid/util/ArrayMap;)V
+PLandroid/os/health/HealthStatsWriter;->writeParcelableMap(Landroid/os/Parcel;Landroid/util/ArrayMap;)V
+PLandroid/os/health/PackageHealthStats;-><clinit>()V
+PLandroid/os/health/PidHealthStats;-><clinit>()V
+PLandroid/os/health/ProcessHealthStats;-><clinit>()V
+PLandroid/os/health/ServiceHealthStats;-><clinit>()V
+HPLandroid/os/health/SystemHealthManager;-><init>(Lcom/android/internal/app/IBatteryStats;)V
+HPLandroid/os/health/SystemHealthManager;->takeMyUidSnapshot()Landroid/os/health/HealthStats;
+HPLandroid/os/health/SystemHealthManager;->takeUidSnapshot(I)Landroid/os/health/HealthStats;
+HPLandroid/os/health/TimerStat$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/health/TimerStat;
+HPLandroid/os/health/TimerStat$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/os/health/TimerStat;-><init>(IJ)V
+HPLandroid/os/health/TimerStat;->getCount()I
+HPLandroid/os/health/TimerStat;->getTime()J
+PLandroid/os/health/TimerStat;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/os/health/UidHealthStats;-><clinit>()V
+HSPLandroid/os/image/IDynamicSystemService$Stub;-><init>()V
+PLandroid/os/image/IDynamicSystemService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/os/image/IDynamicSystemService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/os/incremental/IncrementalManager;->isIncrementalPath(Ljava/lang/String;)Z
HSPLandroid/os/storage/IObbActionListener$Stub;-><init>()V
+PLandroid/os/storage/IStorageEventListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/os/storage/IStorageEventListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/os/storage/IStorageEventListener$Stub$Proxy;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/os/storage/IStorageEventListener$Stub$Proxy;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
+HSPLandroid/os/storage/IStorageEventListener$Stub;-><init>()V
HSPLandroid/os/storage/IStorageEventListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/os/storage/IStorageEventListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageEventListener;
HSPLandroid/os/storage/IStorageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->allocateBytes(Ljava/lang/String;JILjava/lang/String;)V
+HPLandroid/os/storage/IStorageManager$Stub$Proxy;->getAllocatableBytes(Ljava/lang/String;ILjava/lang/String;)J
+HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getCacheQuotaBytes(Ljava/lang/String;I)J
+HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getCacheSizeBytes(Ljava/lang/String;I)J
HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume;
+HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getVolumeRecords(I)[Landroid/os/storage/VolumeRecord;
HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->getVolumes(I)[Landroid/os/storage/VolumeInfo;
HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->isUserKeyUnlocked(I)Z
HSPLandroid/os/storage/IStorageManager$Stub$Proxy;->registerListener(Landroid/os/storage/IStorageEventListener;)V
+HSPLandroid/os/storage/IStorageManager$Stub;-><init>()V
HSPLandroid/os/storage/IStorageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager;
+PLandroid/os/storage/IStorageManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/os/storage/IStorageManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/os/storage/StorageEventListener;-><init>()V
+PLandroid/os/storage/StorageEventListener;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/os/storage/StorageManager$ObbActionListener;-><init>(Landroid/os/storage/StorageManager;)V
HSPLandroid/os/storage/StorageManager$ObbActionListener;-><init>(Landroid/os/storage/StorageManager;Landroid/os/storage/StorageManager$1;)V
+HSPLandroid/os/storage/StorageManager$StorageEventListenerDelegate;-><init>(Landroid/os/storage/StorageEventListener;Landroid/os/Looper;)V
+PLandroid/os/storage/StorageManager$StorageEventListenerDelegate;->handleMessage(Landroid/os/Message;)Z
+PLandroid/os/storage/StorageManager$StorageEventListenerDelegate;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/os/storage/StorageManager$StorageEventListenerDelegate;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
HSPLandroid/os/storage/StorageManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+HSPLandroid/os/storage/StorageManager;->allocateBytes(Ljava/io/FileDescriptor;J)V
+HSPLandroid/os/storage/StorageManager;->allocateBytes(Ljava/io/FileDescriptor;JI)V
+HSPLandroid/os/storage/StorageManager;->allocateBytes(Ljava/util/UUID;JI)V
+PLandroid/os/storage/StorageManager;->checkPermissionAndAppOp(Landroid/content/Context;ZIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Z
+HSPLandroid/os/storage/StorageManager;->checkPermissionAndAppOp(Landroid/content/Context;ZIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)Z
+PLandroid/os/storage/StorageManager;->checkPermissionAndAppOp(ZIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Z
+HSPLandroid/os/storage/StorageManager;->checkPermissionAndCheckOp(Landroid/content/Context;ZIILjava/lang/String;Ljava/lang/String;I)Z
+PLandroid/os/storage/StorageManager;->checkPermissionReadImages(ZIILjava/lang/String;Ljava/lang/String;)Z
HSPLandroid/os/storage/StorageManager;->convert(Ljava/lang/String;)Ljava/util/UUID;
HSPLandroid/os/storage/StorageManager;->convert(Ljava/util/UUID;)Ljava/lang/String;
+PLandroid/os/storage/StorageManager;->findEmulatedForPrivate(Landroid/os/storage/VolumeInfo;)Landroid/os/storage/VolumeInfo;
+PLandroid/os/storage/StorageManager;->findPathForUuid(Ljava/lang/String;)Ljava/io/File;
+HPLandroid/os/storage/StorageManager;->findPrivateForEmulated(Landroid/os/storage/VolumeInfo;)Landroid/os/storage/VolumeInfo;
+HPLandroid/os/storage/StorageManager;->findVolumeById(Ljava/lang/String;)Landroid/os/storage/VolumeInfo;
+PLandroid/os/storage/StorageManager;->findVolumeByQualifiedUuid(Ljava/lang/String;)Landroid/os/storage/VolumeInfo;
+HPLandroid/os/storage/StorageManager;->findVolumeByUuid(Ljava/lang/String;)Landroid/os/storage/VolumeInfo;
+HSPLandroid/os/storage/StorageManager;->from(Landroid/content/Context;)Landroid/os/storage/StorageManager;
+HPLandroid/os/storage/StorageManager;->getAllocatableBytes(Ljava/util/UUID;)J
+PLandroid/os/storage/StorageManager;->getAllocatableBytes(Ljava/util/UUID;I)J
+HPLandroid/os/storage/StorageManager;->getBestVolumeDescription(Landroid/os/storage/VolumeInfo;)Ljava/lang/String;
+HSPLandroid/os/storage/StorageManager;->getCacheQuotaBytes(Ljava/util/UUID;)J
+HSPLandroid/os/storage/StorageManager;->getCacheSizeBytes(Ljava/util/UUID;)J
+PLandroid/os/storage/StorageManager;->getPrimaryStorageSize()J
+PLandroid/os/storage/StorageManager;->getPrimaryStorageUuid()Ljava/lang/String;
+HSPLandroid/os/storage/StorageManager;->getPrimaryVolume()Landroid/os/storage/StorageVolume;
+HSPLandroid/os/storage/StorageManager;->getPrimaryVolume([Landroid/os/storage/StorageVolume;)Landroid/os/storage/StorageVolume;
+PLandroid/os/storage/StorageManager;->getStorageCacheBytes(Ljava/io/File;I)J
+HSPLandroid/os/storage/StorageManager;->getStorageFullBytes(Ljava/io/File;)J
+HSPLandroid/os/storage/StorageManager;->getStorageLowBytes(Ljava/io/File;)J
+HSPLandroid/os/storage/StorageManager;->getStorageVolume(Ljava/io/File;)Landroid/os/storage/StorageVolume;
HSPLandroid/os/storage/StorageManager;->getStorageVolume(Ljava/io/File;I)Landroid/os/storage/StorageVolume;
HSPLandroid/os/storage/StorageManager;->getStorageVolume([Landroid/os/storage/StorageVolume;Ljava/io/File;)Landroid/os/storage/StorageVolume;
+HSPLandroid/os/storage/StorageManager;->getStorageVolumes()Ljava/util/List;
HSPLandroid/os/storage/StorageManager;->getUuidForPath(Ljava/io/File;)Ljava/util/UUID;
HSPLandroid/os/storage/StorageManager;->getVolumeList()[Landroid/os/storage/StorageVolume;
HSPLandroid/os/storage/StorageManager;->getVolumeList(II)[Landroid/os/storage/StorageVolume;
+HSPLandroid/os/storage/StorageManager;->getVolumeRecords()Ljava/util/List;
HSPLandroid/os/storage/StorageManager;->getVolumes()Ljava/util/List;
+HSPLandroid/os/storage/StorageManager;->getWritablePrivateVolumes()Ljava/util/List;
+HSPLandroid/os/storage/StorageManager;->hasAdoptable()Z
+HSPLandroid/os/storage/StorageManager;->hasIsolatedStorage()Z
+HSPLandroid/os/storage/StorageManager;->inCryptKeeperBounce()Z
+HSPLandroid/os/storage/StorageManager;->isAllocationSupported(Ljava/io/FileDescriptor;)Z
+HSPLandroid/os/storage/StorageManager;->isBlockEncrypted()Z
+HSPLandroid/os/storage/StorageManager;->isEncrypted()Z
+HSPLandroid/os/storage/StorageManager;->isFileEncryptedEmulatedOnly()Z
+HSPLandroid/os/storage/StorageManager;->isFileEncryptedNativeOnly()Z
+HSPLandroid/os/storage/StorageManager;->isFileEncryptedNativeOrEmulated()Z
+HSPLandroid/os/storage/StorageManager;->isUserKeyUnlocked(I)Z
+PLandroid/os/storage/StorageManager;->maybeTranslateEmulatedPathToInternal(Ljava/io/File;)Ljava/io/File;
+PLandroid/os/storage/StorageManager;->noteAppOpAllowingLegacy(ZIILjava/lang/String;Ljava/lang/String;I)Z
+PLandroid/os/storage/StorageManager;->prepareUserStorage(Ljava/lang/String;III)V
HSPLandroid/os/storage/StorageManager;->registerListener(Landroid/os/storage/StorageEventListener;)V
+HSPLandroid/os/storage/StorageManager;->translateAppToSystem(Ljava/io/File;II)Ljava/io/File;
+HSPLandroid/os/storage/StorageManagerInternal;-><init>()V
HSPLandroid/os/storage/StorageVolume$1;->createFromParcel(Landroid/os/Parcel;)Landroid/os/storage/StorageVolume;
HSPLandroid/os/storage/StorageVolume$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/os/storage/StorageVolume$1;->newArray(I)[Landroid/os/storage/StorageVolume;
HSPLandroid/os/storage/StorageVolume$1;->newArray(I)[Ljava/lang/Object;
HSPLandroid/os/storage/StorageVolume;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/os/storage/StorageVolume;-><init>(Landroid/os/Parcel;Landroid/os/storage/StorageVolume$1;)V
+HSLandroid/os/storage/StorageVolume;-><init>(Landroid/os/Parcel;Landroid/os/storage/StorageVolume$1;)V
+HSPLandroid/os/storage/StorageVolume;-><init>(Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;ZZZZJLandroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/os/storage/StorageVolume;->allowMassStorage()Z
+PLandroid/os/storage/StorageVolume;->describeContents()I
+PLandroid/os/storage/StorageVolume;->getId()Ljava/lang/String;
+PLandroid/os/storage/StorageVolume;->getOwner()Landroid/os/UserHandle;
+PLandroid/os/storage/StorageVolume;->getPath()Ljava/lang/String;
HSPLandroid/os/storage/StorageVolume;->getPathFile()Ljava/io/File;
+HSPLandroid/os/storage/StorageVolume;->getState()Ljava/lang/String;
+HSPLandroid/os/storage/StorageVolume;->getUuid()Ljava/lang/String;
+PLandroid/os/storage/StorageVolume;->isEmulated()Z
HSPLandroid/os/storage/StorageVolume;->isPrimary()Z
HSPLandroid/os/storage/StorageVolume;->isRemovable()Z
+HSPLandroid/os/storage/StorageVolume;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/os/storage/VolumeInfo$2;->createFromParcel(Landroid/os/Parcel;)Landroid/os/storage/VolumeInfo;
HSPLandroid/os/storage/VolumeInfo$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/os/storage/VolumeInfo$2;->newArray(I)[Landroid/os/storage/VolumeInfo;
HSPLandroid/os/storage/VolumeInfo$2;->newArray(I)[Ljava/lang/Object;
HSPLandroid/os/storage/VolumeInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/os/storage/VolumeInfo;-><init>(Ljava/lang/String;ILandroid/os/storage/DiskInfo;Ljava/lang/String;)V
+HPLandroid/os/storage/VolumeInfo;->buildStorageVolume(Landroid/content/Context;IZ)Landroid/os/storage/StorageVolume;
+PLandroid/os/storage/VolumeInfo;->clone()Landroid/os/storage/VolumeInfo;
+PLandroid/os/storage/VolumeInfo;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLandroid/os/storage/VolumeInfo;->getBroadcastForEnvironment(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/os/storage/VolumeInfo;->getDescription()Ljava/lang/String;
+PLandroid/os/storage/VolumeInfo;->getDisk()Landroid/os/storage/DiskInfo;
+PLandroid/os/storage/VolumeInfo;->getDiskId()Ljava/lang/String;
+HPLandroid/os/storage/VolumeInfo;->getEnvironmentForState(I)Ljava/lang/String;
+HSPLandroid/os/storage/VolumeInfo;->getFsUuid()Ljava/lang/String;
+HPLandroid/os/storage/VolumeInfo;->getId()Ljava/lang/String;
+HPLandroid/os/storage/VolumeInfo;->getInternalPathForUser(I)Ljava/io/File;
+HPLandroid/os/storage/VolumeInfo;->getMountUserId()I
+HSPLandroid/os/storage/VolumeInfo;->getPath()Ljava/io/File;
HSPLandroid/os/storage/VolumeInfo;->getPathForUser(I)Ljava/io/File;
+PLandroid/os/storage/VolumeInfo;->getState()I
HSPLandroid/os/storage/VolumeInfo;->getType()I
+HSPLandroid/os/storage/VolumeInfo;->isMountedReadable()Z
+HSPLandroid/os/storage/VolumeInfo;->isMountedWritable()Z
HSPLandroid/os/storage/VolumeInfo;->isPrimary()Z
+HPLandroid/os/storage/VolumeInfo;->isPrimaryEmulatedForUser(I)Z
HSPLandroid/os/storage/VolumeInfo;->isVisible()Z
+HPLandroid/os/storage/VolumeInfo;->isVisibleForRead(I)Z
HSPLandroid/os/storage/VolumeInfo;->isVisibleForUser(I)Z
+HPLandroid/os/storage/VolumeInfo;->isVisibleForWrite(I)Z
+PLandroid/os/storage/VolumeInfo;->toString()Ljava/lang/String;
+HPLandroid/os/storage/VolumeInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/os/storage/VolumeRecord$1;->newArray(I)[Landroid/os/storage/VolumeRecord;
+HSPLandroid/os/storage/VolumeRecord$1;->newArray(I)[Ljava/lang/Object;
+HSLandroid/os/strictmode/CredentialProtectedWhileLockedViolation;-><init>(Ljava/lang/String;)V
+PLandroid/os/strictmode/CustomViolation;-><init>(Ljava/lang/String;)V
+HSPLandroid/os/strictmode/DiskReadViolation;-><init>()V
+HSPLandroid/os/strictmode/DiskWriteViolation;-><init>()V
+PLandroid/os/strictmode/LeakedClosableViolation;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+HSPLandroid/os/strictmode/UnbufferedIoViolation;-><init>()V
HSPLandroid/os/strictmode/Violation;-><init>(Ljava/lang/String;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$2gyb4miANgsuR_Cn3HPTnP6sL54;-><init>(Ljava/lang/String;Landroid/os/UserHandle;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$2gyb4miANgsuR_Cn3HPTnP6sL54;->run(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/permission/-$$Lambda$PermissionControllerManager$Iy-7wiKMCV-MFSPGyIJxP_DSf8E;-><init>(Landroid/os/UserHandle;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$Iy-7wiKMCV-MFSPGyIJxP_DSf8E;->run(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/permission/-$$Lambda$PermissionControllerManager$WcxnBH4VsthEHNc7qKClONaAHtQ;-><init>(Ljava/util/function/Consumer;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$WcxnBH4VsthEHNc7qKClONaAHtQ;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$eHuRmDpRAUfA3qanHHMVMV_C0lI;-><init>(Landroid/permission/IPermissionController;Landroid/os/UserHandle;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$eHuRmDpRAUfA3qanHHMVMV_C0lI;->acceptOrThrow(Ljava/lang/Object;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$u5bno-vHXoMY3ADbZMAlZp7v9oI;-><clinit>()V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$u5bno-vHXoMY3ADbZMAlZp7v9oI;-><init>()V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$u5bno-vHXoMY3ADbZMAlZp7v9oI;->run(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/permission/-$$Lambda$PermissionControllerManager$vBYanTuMAWBbfOp_XdHzQXYNpXY;-><init>(Ljava/lang/String;Ljava/util/function/Consumer;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$vBYanTuMAWBbfOp_XdHzQXYNpXY;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$wPNqW0yZff7KXoWmrKVyzMgY2jc;-><init>(Ljava/util/function/Consumer;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$wPNqW0yZff7KXoWmrKVyzMgY2jc;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$yqGWw4vOTpW9pDZRlfJdxzYUsF0;-><clinit>()V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$yqGWw4vOTpW9pDZRlfJdxzYUsF0;-><init>()V
+PLandroid/permission/-$$Lambda$PermissionControllerManager$yqGWw4vOTpW9pDZRlfJdxzYUsF0;->run(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/permission/-$$Lambda$ViMr_PAGHrCLBQPYNzqdYUNU5zI;-><clinit>()V
+HSPLandroid/permission/-$$Lambda$ViMr_PAGHrCLBQPYNzqdYUNU5zI;-><init>()V
+PLandroid/permission/-$$Lambda$ViMr_PAGHrCLBQPYNzqdYUNU5zI;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/permission/IOnPermissionsChangeListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/permission/IOnPermissionsChangeListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/permission/IOnPermissionsChangeListener$Stub;-><init>()V
+HSPLandroid/permission/IOnPermissionsChangeListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/permission/IOnPermissionsChangeListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/permission/IOnPermissionsChangeListener;
+PLandroid/permission/IPermissionController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/permission/IPermissionController$Stub$Proxy;->applyStagedRuntimePermissionBackup(Ljava/lang/String;Landroid/os/UserHandle;Lcom/android/internal/infra/AndroidFuture;)V
+PLandroid/permission/IPermissionController$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/permission/IPermissionController$Stub$Proxy;->getRuntimePermissionBackup(Landroid/os/UserHandle;Landroid/os/ParcelFileDescriptor;)V
+PLandroid/permission/IPermissionController$Stub$Proxy;->grantOrUpgradeDefaultRuntimePermissions(Lcom/android/internal/infra/AndroidFuture;)V
+PLandroid/permission/IPermissionController$Stub$Proxy;->updateUserSensitive(Lcom/android/internal/infra/AndroidFuture;)V
+HSPLandroid/permission/IPermissionController$Stub;-><init>()V
+PLandroid/permission/IPermissionController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/permission/IPermissionController;
+HSPLandroid/permission/IPermissionController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/permission/IPermissionManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->addOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->addPermission(Landroid/content/pm/PermissionInfo;Z)Z
HSPLandroid/permission/IPermissionManager$Stub$Proxy;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->getAllPermissionGroups(I)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->getPermissionGroupInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionGroupInfo;
HSPLandroid/permission/IPermissionManager$Stub$Proxy;->getPermissionInfo(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
HSPLandroid/permission/IPermissionManager$Stub$Proxy;->getSplitPermissions()Ljava/util/List;
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->getWhitelistedRestrictedPermissions(Ljava/lang/String;II)Ljava/util/List;
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->grantDefaultPermissionsToEnabledImsServices([Ljava/lang/String;I)V
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->grantDefaultPermissionsToEnabledTelephonyDataServices([Ljava/lang/String;I)V
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->isPermissionRevokedByPolicy(Ljava/lang/String;Ljava/lang/String;I)Z
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->queryPermissionsByGroup(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->removeOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->revokeDefaultPermissionsFromDisabledTelephonyDataServices([Ljava/lang/String;I)V
+HSPLandroid/permission/IPermissionManager$Stub$Proxy;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;IIZI)V
+HSPLandroid/permission/IPermissionManager$Stub;-><init>()V
HSPLandroid/permission/IPermissionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/permission/IPermissionManager;
+PLandroid/permission/IPermissionManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/permission/IPermissionManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/permission/PermissionControllerManager$1;-><init>(Landroid/permission/PermissionControllerManager;Landroid/content/Context;Landroid/content/Intent;IILjava/util/function/Function;Landroid/os/Handler;)V
+PLandroid/permission/PermissionControllerManager$1;->getAutoDisconnectTimeoutMs()J
+PLandroid/permission/PermissionControllerManager$1;->getJobHandler()Landroid/os/Handler;
+HSPLandroid/permission/PermissionControllerManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+PLandroid/permission/PermissionControllerManager;->applyStagedRuntimePermissionBackup(Ljava/lang/String;Landroid/os/UserHandle;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V
+PLandroid/permission/PermissionControllerManager;->enforceSomePermissionsGrantedToSelf([Ljava/lang/String;)V
+PLandroid/permission/PermissionControllerManager;->getRuntimePermissionBackup(Landroid/os/UserHandle;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V
+PLandroid/permission/PermissionControllerManager;->grantOrUpgradeDefaultRuntimePermissions(Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;)V
+PLandroid/permission/PermissionControllerManager;->lambda$applyStagedRuntimePermissionBackup$10(Ljava/lang/String;Landroid/os/UserHandle;Landroid/permission/IPermissionController;)Ljava/util/concurrent/CompletableFuture;
+PLandroid/permission/PermissionControllerManager;->lambda$applyStagedRuntimePermissionBackup$11(Ljava/lang/String;Ljava/util/function/Consumer;Ljava/lang/Boolean;Ljava/lang/Throwable;)V
+PLandroid/permission/PermissionControllerManager;->lambda$getRuntimePermissionBackup$4(Landroid/permission/IPermissionController;Landroid/os/UserHandle;Landroid/os/ParcelFileDescriptor;)V
+PLandroid/permission/PermissionControllerManager;->lambda$getRuntimePermissionBackup$5(Landroid/os/UserHandle;Landroid/permission/IPermissionController;)Ljava/util/concurrent/CompletableFuture;
+PLandroid/permission/PermissionControllerManager;->lambda$getRuntimePermissionBackup$6(Ljava/util/function/Consumer;[BLjava/lang/Throwable;)V
+PLandroid/permission/PermissionControllerManager;->lambda$grantOrUpgradeDefaultRuntimePermissions$21(Landroid/permission/IPermissionController;)Ljava/util/concurrent/CompletableFuture;
+PLandroid/permission/PermissionControllerManager;->lambda$grantOrUpgradeDefaultRuntimePermissions$22(Ljava/util/function/Consumer;Ljava/lang/Boolean;Ljava/lang/Throwable;)V
+PLandroid/permission/PermissionControllerManager;->lambda$updateUserSensitive$23(Landroid/permission/IPermissionController;)Ljava/util/concurrent/CompletableFuture;
+PLandroid/permission/PermissionControllerManager;->updateUserSensitive()V
+HSPLandroid/permission/PermissionManager$SplitPermissionInfo;-><init>(Landroid/content/pm/permission/SplitPermissionInfoParcelable;)V
+PLandroid/permission/PermissionManager$SplitPermissionInfo;-><init>(Landroid/content/pm/permission/SplitPermissionInfoParcelable;Landroid/permission/PermissionManager$1;)V
+HSPLandroid/permission/PermissionManager$SplitPermissionInfo;-><init>(Ljava/lang/String;Ljava/util/List;I)V
+HSPLandroid/permission/PermissionManager$SplitPermissionInfo;->getNewPermissions()Ljava/util/List;
+HSPLandroid/permission/PermissionManager$SplitPermissionInfo;->getSplitPermission()Ljava/lang/String;
+HSPLandroid/permission/PermissionManager$SplitPermissionInfo;->getTargetSdk()I
+HSPLandroid/permission/PermissionManager;-><init>(Landroid/content/Context;Landroid/content/pm/IPackageManager;)V
+HSPLandroid/permission/PermissionManager;->getSplitPermissions()Ljava/util/List;
+PLandroid/permission/PermissionManager;->splitPermissionInfoListToNonParcelableList(Ljava/util/List;)Ljava/util/List;
+HSPLandroid/permission/PermissionManager;->splitPermissionInfoListToParcelableList(Ljava/util/List;)Ljava/util/List;
+HSPLandroid/permission/PermissionManagerInternal;-><init>()V
HSPLandroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;
HSPLandroid/preference/PreferenceManager;->getDefaultSharedPreferencesMode()I
HSPLandroid/preference/PreferenceManager;->getDefaultSharedPreferencesName(Landroid/content/Context;)Ljava/lang/String;
HSPLandroid/preference/PreferenceManager;->setDefaultValues(Landroid/content/Context;IZ)V
HSPLandroid/preference/PreferenceManager;->setDefaultValues(Landroid/content/Context;Ljava/lang/String;IIZ)V
+HSPLandroid/print/IPrintManager$Stub;-><init>()V
+HSPLandroid/print/IPrintManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/IPrintManager;
+PLandroid/print/IPrintManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/print/IPrintSpooler$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/print/IPrintSpooler$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/print/IPrintSpooler$Stub$Proxy;->pruneApprovedPrintServices(Ljava/util/List;)V
+PLandroid/print/IPrintSpooler$Stub$Proxy;->removeObsoletePrintJobs()V
+PLandroid/print/IPrintSpooler$Stub$Proxy;->setClient(Landroid/print/IPrintSpoolerClient;)V
+PLandroid/print/IPrintSpooler$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/IPrintSpooler;
+PLandroid/print/IPrintSpoolerCallbacks$Stub;-><init>()V
+PLandroid/print/IPrintSpoolerClient$Stub;-><init>()V
+PLandroid/print/IPrintSpoolerClient$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/print/IPrintSpoolerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/print/PrintManager;-><init>(Landroid/content/Context;Landroid/print/IPrintManager;II)V
+HSPLandroid/print/PrintManager;->getGlobalPrintManagerForUser(I)Landroid/print/PrintManager;
+PLandroid/printservice/IPrintServiceClient$Stub;-><init>()V
+PLandroid/printservice/PrintServiceInfo;-><init>(Landroid/content/pm/ResolveInfo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/printservice/PrintServiceInfo;->create(Landroid/content/Context;Landroid/content/pm/ResolveInfo;)Landroid/printservice/PrintServiceInfo;
+PLandroid/printservice/PrintServiceInfo;->getResolveInfo()Landroid/content/pm/ResolveInfo;
+PLandroid/printservice/PrintServiceInfo;->hashCode()I
+PLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;-><init>(Ljava/lang/String;DDD)V
+HPLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;->getEncoderId()Ljava/lang/String;
+PLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;->getIRRConfig()Landroid/privacy/internal/rappor/RapporConfig;
+PLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;->getProbabilityP()D
+PLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;->getProbabilityQ()D
+PLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingEncoder;-><init>(Landroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;Z[B)V
+PLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingEncoder;->createEncoder(Landroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;[B)Landroid/privacy/internal/longitudinalreporting/LongitudinalReportingEncoder;
+PLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingEncoder;->encodeBoolean(Z)[B
+HPLandroid/privacy/internal/longitudinalreporting/LongitudinalReportingEncoder;->getLongTermRandomizedResult(DZ[BLjava/lang/String;)Z
+HPLandroid/privacy/internal/rappor/RapporConfig;-><init>(Ljava/lang/String;IDDDII)V
+PLandroid/privacy/internal/rappor/RapporEncoder;-><clinit>()V
+HPLandroid/privacy/internal/rappor/RapporEncoder;-><init>(Landroid/privacy/internal/rappor/RapporConfig;Z[B)V
+PLandroid/privacy/internal/rappor/RapporEncoder;->createEncoder(Landroid/privacy/internal/rappor/RapporConfig;[B)Landroid/privacy/internal/rappor/RapporEncoder;
+PLandroid/privacy/internal/rappor/RapporEncoder;->encodeBoolean(Z)[B
+PLandroid/provider/-$$Lambda$DeviceConfig$6U9gBH6h5Oab2DB_e83az4n_WEo;-><init>(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;Landroid/provider/DeviceConfig$Properties;)V
+PLandroid/provider/-$$Lambda$DeviceConfig$6U9gBH6h5Oab2DB_e83az4n_WEo;->run()V
HSPLandroid/provider/-$$Lambda$FontsContract$rqfIZKvP1frnI9vP1hVA8jQN_RE;->run()V
HSPLandroid/provider/-$$Lambda$Settings$NameValueCache$cLX_nUBDGp9SYpFxrABk-2ceeMI;-><init>(Landroid/provider/Settings$NameValueCache;)V
+HSPLandroid/provider/-$$Lambda$Settings$NameValueCache$qSyMM6rUAHCa-5rsP-atfAqR3sA;-><init>(Landroid/provider/Settings$NameValueCache;)V
+PLandroid/provider/BlockedNumberContract$SystemContract;->shouldShowEmergencyCallNotification(Landroid/content/Context;)Z
+HSPLandroid/provider/CalendarContract$Attendees;-><clinit>()V
HSPLandroid/provider/CalendarContract;-><clinit>()V
+HSPLandroid/provider/CallLog$Calls;->shouldHaveSharedCallLogEntries(Landroid/content/Context;Landroid/os/UserManager;I)Z
+HSPLandroid/provider/CallLog;-><clinit>()V
+HSPLandroid/provider/ContactsContract$CommonDataKinds$Email;->getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLandroid/provider/ContactsContract$CommonDataKinds$Email;->getTypeLabelResource(I)I
+HSPLandroid/provider/ContactsContract$CommonDataKinds$Phone;->getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;
HSPLandroid/provider/ContactsContract$CommonDataKinds$Phone;->getTypeLabelResource(I)I
+HSPLandroid/provider/ContactsContract$CommonDataKinds$StructuredPostal;-><clinit>()V
+PLandroid/provider/ContactsContract$CommonDataKinds$StructuredPostal;->getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLandroid/provider/ContactsContract$CommonDataKinds$StructuredPostal;->getTypeLabelResource(I)I
+HSPLandroid/provider/ContactsContract$Contacts;->getLookupUri(JLjava/lang/String;)Landroid/net/Uri;
+HPLandroid/provider/ContactsContract$Contacts;->isEnterpriseContactId(J)Z
+HSPLandroid/provider/ContactsContract$DeletedContacts;-><clinit>()V
HSPLandroid/provider/ContactsContract$DisplayPhoto;-><clinit>()V
-PLandroid/provider/ContactsContract$Profile;-><clinit>()V
+HSPLandroid/provider/ContactsContract$Groups;-><clinit>()V
+HSPLandroid/provider/ContactsContract$MetadataSync;-><clinit>()V
+HSPLandroid/provider/ContactsContract$Profile;-><clinit>()V
+HSPLandroid/provider/ContactsContract$ProviderStatus;-><clinit>()V
HSPLandroid/provider/ContactsContract$RawContacts;-><clinit>()V
+HSPLandroid/provider/ContactsContract$RawContactsEntity;-><clinit>()V
+HSPLandroid/provider/ContactsContract$Settings;-><clinit>()V
+PLandroid/provider/ContactsContract$SyncState;-><clinit>()V
HSPLandroid/provider/DeviceConfig$1;-><init>(Landroid/os/Handler;)V
+PLandroid/provider/DeviceConfig$1;->onChange(ZLandroid/net/Uri;)V
+PLandroid/provider/DeviceConfig$Properties$Builder;-><init>(Ljava/lang/String;)V
+PLandroid/provider/DeviceConfig$Properties$Builder;->build()Landroid/provider/DeviceConfig$Properties;
+HPLandroid/provider/DeviceConfig$Properties$Builder;->setString(Ljava/lang/String;Ljava/lang/String;)Landroid/provider/DeviceConfig$Properties$Builder;
HSPLandroid/provider/DeviceConfig$Properties;-><init>(Ljava/lang/String;Ljava/util/Map;)V
+PLandroid/provider/DeviceConfig$Properties;->access$000(Landroid/provider/DeviceConfig$Properties;)Ljava/util/HashMap;
+HPLandroid/provider/DeviceConfig$Properties;->getBoolean(Ljava/lang/String;Z)Z
+PLandroid/provider/DeviceConfig$Properties;->getInt(Ljava/lang/String;I)I
+PLandroid/provider/DeviceConfig$Properties;->getKeyset()Ljava/util/Set;
+PLandroid/provider/DeviceConfig$Properties;->getLong(Ljava/lang/String;J)J
+PLandroid/provider/DeviceConfig$Properties;->getNamespace()Ljava/lang/String;
HSPLandroid/provider/DeviceConfig$Properties;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/provider/DeviceConfig;->access$100(Landroid/net/Uri;)V
HSPLandroid/provider/DeviceConfig;->addOnPropertiesChangedListener(Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
HSPLandroid/provider/DeviceConfig;->createNamespaceUri(Ljava/lang/String;)Landroid/net/Uri;
+HPLandroid/provider/DeviceConfig;->decrementNamespace(Ljava/lang/String;)V
HSPLandroid/provider/DeviceConfig;->enforceReadPermission(Landroid/content/Context;Ljava/lang/String;)V
HSPLandroid/provider/DeviceConfig;->getBoolean(Ljava/lang/String;Ljava/lang/String;Z)Z
HSPLandroid/provider/DeviceConfig;->getFloat(Ljava/lang/String;Ljava/lang/String;F)F
@@ -5852,11 +18954,20 @@ HSPLandroid/provider/DeviceConfig;->getLong(Ljava/lang/String;Ljava/lang/String;
HSPLandroid/provider/DeviceConfig;->getProperties(Ljava/lang/String;[Ljava/lang/String;)Landroid/provider/DeviceConfig$Properties;
HSPLandroid/provider/DeviceConfig;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/provider/DeviceConfig;->getString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/provider/DeviceConfig;->handleChange(Landroid/net/Uri;)V
HSPLandroid/provider/DeviceConfig;->incrementNamespace(Ljava/lang/String;)V
+PLandroid/provider/DeviceConfig;->lambda$handleChange$0(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;Landroid/provider/DeviceConfig$Properties;)V
+HPLandroid/provider/DeviceConfig;->removeOnPropertiesChangedListener(Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
+PLandroid/provider/DeviceConfig;->setProperties(Landroid/provider/DeviceConfig$Properties;)Z
+HSPLandroid/provider/DocumentsContract;->buildDocumentUri(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;
HSPLandroid/provider/DocumentsContract;->buildRootsUri(Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/DocumentsContract;->getBaseDocumentUriBuilder(Ljava/lang/String;)Landroid/net/Uri$Builder;
HSPLandroid/provider/DocumentsProvider;-><init>()V
HSPLandroid/provider/DocumentsProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
+HSPLandroid/provider/DocumentsProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor;
HSPLandroid/provider/DocumentsProvider;->registerAuthority(Ljava/lang/String;)V
+HSPLandroid/provider/Downloads$Impl;->statusToString(I)Ljava/lang/String;
+PLandroid/provider/Downloads;->removeAllDownloadsByPackage(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/provider/FontRequest;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
PLandroid/provider/FontsContract$1;->run()V
HSPLandroid/provider/FontsContract$FontFamilyResult;->getFonts()[Landroid/provider/FontsContract$FontInfo;
@@ -5875,99 +18986,302 @@ HSPLandroid/provider/FontsContract;->getProvider(Landroid/content/pm/PackageMana
HSPLandroid/provider/FontsContract;->lambda$getFontSync$0(Landroid/provider/FontRequest;Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/locks/Lock;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/locks/Condition;)V
HSPLandroid/provider/FontsContract;->prepareFontData(Landroid/content/Context;[Landroid/provider/FontsContract$FontInfo;Landroid/os/CancellationSignal;)Ljava/util/Map;
HSPLandroid/provider/FontsContract;->setApplicationContextForResources(Landroid/content/Context;)V
+PLandroid/provider/MediaStore$Audio$Playlists;-><clinit>()V
+PLandroid/provider/MediaStore$Audio$Playlists;->getContentUri(Ljava/lang/String;)Landroid/net/Uri;
HSPLandroid/provider/MediaStore$Files;->getContentUri(Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/MediaStore$Files;->getContentUri(Ljava/lang/String;J)Landroid/net/Uri;
+HSPLandroid/provider/MediaStore$Files;->getContentUriForPath(Ljava/lang/String;)Landroid/net/Uri;
HSPLandroid/provider/MediaStore$Images$Media;->getContentUri(Ljava/lang/String;)Landroid/net/Uri;
+HPLandroid/provider/MediaStore$Images$Thumbnails;-><clinit>()V
+HPLandroid/provider/MediaStore$Images$Thumbnails;->getContentUri(Ljava/lang/String;)Landroid/net/Uri;
HSPLandroid/provider/MediaStore$Video$Media;->getContentUri(Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/MediaStore;->addCanonicalFile(Ljava/util/List;Ljava/io/File;)V
+HSPLandroid/provider/MediaStore;->checkArgumentVolumeName(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/provider/MediaStore;->getExternalVolumeNames(Landroid/content/Context;)Ljava/util/Set;
+HSPLandroid/provider/MediaStore;->getIncludePending(Landroid/net/Uri;)Z
+HSPLandroid/provider/MediaStore;->getMediaScannerUri()Landroid/net/Uri;
+HSPLandroid/provider/MediaStore;->getRecentExternalVolumeNames(Landroid/content/Context;)Ljava/util/Set;
+HSPLandroid/provider/MediaStore;->getVolumeName(Landroid/net/Uri;)Ljava/lang/String;
+HSPLandroid/provider/MediaStore;->getVolumeName(Ljava/io/File;)Ljava/lang/String;
+HSPLandroid/provider/MediaStore;->getVolumePath(Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/provider/MediaStore;->getVolumePath(Ljava/util/List;Ljava/lang/String;)Ljava/io/File;
+HSPLandroid/provider/MediaStore;->getVolumeScanPaths(Ljava/lang/String;)Ljava/util/Collection;
+HSPLandroid/provider/MediaStore;->parseBoolean(Ljava/lang/String;)Z
+HSPLandroid/provider/MediaStore;->setIncludePending(Landroid/net/Uri$Builder;)Landroid/net/Uri$Builder;
+HPLandroid/provider/MediaStore;->setRequireOriginal(Landroid/net/Uri;)Landroid/net/Uri;
+HSPLandroid/provider/SearchIndexableData;-><init>()V
+HSPLandroid/provider/SearchIndexableData;-><init>(Landroid/content/Context;)V
+HSPLandroid/provider/SearchIndexableResource;-><init>(IILjava/lang/String;I)V
+HSPLandroid/provider/SearchIndexableResource;-><init>(Landroid/content/Context;)V
HSPLandroid/provider/SearchIndexablesContract;-><clinit>()V
HSPLandroid/provider/SearchIndexablesProvider;-><init>()V
HSPLandroid/provider/SearchIndexablesProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
HSPLandroid/provider/SearchIndexablesProvider;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
HSPLandroid/provider/SearchIndexablesProvider;->queryDynamicRawData([Ljava/lang/String;)Landroid/database/Cursor;
+HSPLandroid/provider/SearchIndexablesProvider;->querySiteMapPairs()Landroid/database/Cursor;
HSPLandroid/provider/SearchIndexablesProvider;->querySliceUriPairs()Landroid/database/Cursor;
HSPLandroid/provider/Settings$Config;->createCompositeName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/provider/Settings$Config;->createPrefix(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/provider/Settings$Config;->getStrings(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Ljava/util/Map;
+HPLandroid/provider/Settings$Config;->setStrings(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/Map;)Z
HSPLandroid/provider/Settings$ContentProviderHolder;->access$000(Landroid/provider/Settings$ContentProviderHolder;)Landroid/net/Uri;
HSPLandroid/provider/Settings$ContentProviderHolder;->getProvider(Landroid/content/ContentResolver;)Landroid/content/IContentProvider;
HSPLandroid/provider/Settings$GenerationTracker;-><init>(Landroid/util/MemoryIntArray;IILjava/lang/Runnable;)V
+HSPLandroid/provider/Settings$GenerationTracker;->destroy()V
HSPLandroid/provider/Settings$GenerationTracker;->getCurrentGeneration()I
HSPLandroid/provider/Settings$GenerationTracker;->isGenerationChanged()Z
HSPLandroid/provider/Settings$GenerationTracker;->readCurrentGeneration()I
+HSPLandroid/provider/Settings$Global;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)F
HSPLandroid/provider/Settings$Global;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I
HSPLandroid/provider/Settings$Global;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
+HSPLandroid/provider/Settings$Global;->getLong(Landroid/content/ContentResolver;Ljava/lang/String;)J
HSPLandroid/provider/Settings$Global;->getLong(Landroid/content/ContentResolver;Ljava/lang/String;J)J
+HSPLandroid/provider/Settings$Global;->getMovedToSecureSettings(Ljava/util/Set;)V
HSPLandroid/provider/Settings$Global;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/provider/Settings$Global;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
HSPLandroid/provider/Settings$Global;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/Settings$Global;->isValidZenMode(I)Z
HSPLandroid/provider/Settings$Global;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
+HSPLandroid/provider/Settings$Global;->putLong(Landroid/content/ContentResolver;Ljava/lang/String;J)Z
HSPLandroid/provider/Settings$Global;->putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z
+PLandroid/provider/Settings$Global;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
HSPLandroid/provider/Settings$Global;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZI)Z
+HSPLandroid/provider/Settings$Global;->zenModeToString(I)Ljava/lang/String;
HSPLandroid/provider/Settings$NameValueCache;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
HSPLandroid/provider/Settings$NameValueCache;->getStringsForPrefix(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/List;)Landroid/util/ArrayMap;
HSPLandroid/provider/Settings$NameValueCache;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZI)Z
+HPLandroid/provider/Settings$NameValueCache;->setStringsForPrefix(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/util/HashMap;)Z
HSPLandroid/provider/Settings$NameValueTable;->getUriFor(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/Settings$Secure;->getCloneToManagedProfileSettings(Ljava/util/Set;)V
+HSPLandroid/provider/Settings$Secure;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;FI)F
HSPLandroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I
HSPLandroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
HSPLandroid/provider/Settings$Secure;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)I
HSPLandroid/provider/Settings$Secure;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I
-PLandroid/provider/Settings$Secure;->getLong(Landroid/content/ContentResolver;Ljava/lang/String;J)J
-PLandroid/provider/Settings$Secure;->getLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;JI)J
+HSPLandroid/provider/Settings$Secure;->getLong(Landroid/content/ContentResolver;Ljava/lang/String;)J
+HSPLandroid/provider/Settings$Secure;->getLong(Landroid/content/ContentResolver;Ljava/lang/String;J)J
+HSPLandroid/provider/Settings$Secure;->getLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)J
+HSPLandroid/provider/Settings$Secure;->getLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;JI)J
+HSPLandroid/provider/Settings$Secure;->getMovedToGlobalSettings(Ljava/util/Set;)V
HSPLandroid/provider/Settings$Secure;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/provider/Settings$Secure;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
HSPLandroid/provider/Settings$Secure;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
-HSPLandroid/provider/Settings$Secure;->putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/provider/Settings$Secure;->isLocationProviderEnabled(Landroid/content/ContentResolver;Ljava/lang/String;)Z
+HSPLandroid/provider/Settings$Secure;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
+HSPLandroid/provider/Settings$Secure;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z
+HPLandroid/provider/Settings$Secure;->putLong(Landroid/content/ContentResolver;Ljava/lang/String;J)Z
+HPLandroid/provider/Settings$Secure;->putLongForUser(Landroid/content/ContentResolver;Ljava/lang/String;JI)Z
+PLandroid/provider/Settings$Secure;->putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLandroid/provider/Settings$Secure;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
HSPLandroid/provider/Settings$Secure;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZI)Z
HSPLandroid/provider/Settings$SettingNotFoundException;-><init>(Ljava/lang/String;)V
-HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I
+HSPLandroid/provider/Settings$System;->adjustConfigurationForUser(Landroid/content/ContentResolver;Landroid/content/res/Configuration;IZ)V
+PLandroid/provider/Settings$System;->canWrite(Landroid/content/Context;)Z
+HSPLandroid/provider/Settings$System;->clearConfiguration(Landroid/content/res/Configuration;)V
+HSPLandroid/provider/Settings$System;->getCloneFromParentOnValueSettings(Ljava/util/Map;)V
+HSPLandroid/provider/Settings$System;->getCloneToManagedProfileSettings(Ljava/util/Set;)V
+HSPLandroid/provider/Settings$System;->getConfiguration(Landroid/content/ContentResolver;Landroid/content/res/Configuration;)V
+HSPLandroid/provider/Settings$System;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;)F
+HSPLandroid/provider/Settings$System;->getFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)F
+HSPLandroid/provider/Settings$System;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;FI)F
+HSPLandroid/provider/Settings$System;->getFloatForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)F
+HPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I
HSPLandroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
HSPLandroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)I
HSPLandroid/provider/Settings$System;->getIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)I
+HSPLandroid/provider/Settings$System;->getMovedToGlobalSettings(Ljava/util/Set;)V
+HSPLandroid/provider/Settings$System;->getMovedToSecureSettings(Ljava/util/Set;)V
HSPLandroid/provider/Settings$System;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/provider/Settings$System;->getStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
HSPLandroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
HSPLandroid/provider/Settings$System;->putIntForUser(Landroid/content/ContentResolver;Ljava/lang/String;II)Z
HSPLandroid/provider/Settings$System;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
-PLandroid/provider/Settings;->isCallingPackageAllowedToPerformAppOpsProtectedOperation(Landroid/content/Context;ILjava/lang/String;ZI[Ljava/lang/String;Z)Z
+HSPLandroid/provider/Settings;->canDrawOverlays(Landroid/content/Context;)Z
+PLandroid/provider/Settings;->checkAndNoteChangeNetworkStateOperation(Landroid/content/Context;ILjava/lang/String;Z)Z
+PLandroid/provider/Settings;->checkAndNoteWriteSettingsOperation(Landroid/content/Context;ILjava/lang/String;Z)Z
+PLandroid/provider/Settings;->getPackageNameForUid(Landroid/content/Context;I)Ljava/lang/String;
+HSPLandroid/provider/Settings;->isCallingPackageAllowedToDrawOverlays(Landroid/content/Context;ILjava/lang/String;Z)Z
+HSPLandroid/provider/Settings;->isCallingPackageAllowedToPerformAppOpsProtectedOperation(Landroid/content/Context;ILjava/lang/String;ZI[Ljava/lang/String;Z)Z
HSPLandroid/provider/Settings;->isInSystemServer()Z
+HSPLandroid/provider/Settings;->setInSystemServer()V
+HSPLandroid/provider/Telephony$Mms$Inbox;-><clinit>()V
+HSPLandroid/provider/Telephony$Mms$Sent;-><clinit>()V
+HSPLandroid/provider/Telephony$Mms;-><clinit>()V
+HPLandroid/provider/Telephony$Mms;->extractAddrSpec(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/provider/Telephony$Mms;->isEmailAddress(Ljava/lang/String;)Z
+HPLandroid/provider/Telephony$Mms;->isPhoneNumber(Ljava/lang/String;)Z
HSPLandroid/provider/Telephony$MmsSms;-><clinit>()V
+HSPLandroid/provider/Telephony$ServiceStateTable;->getContentValuesForServiceState(Landroid/telephony/ServiceState;)Landroid/content/ContentValues;
+HSPLandroid/provider/Telephony$ServiceStateTable;->getUriForSubscriptionId(I)Landroid/net/Uri;
+HSPLandroid/provider/Telephony$ServiceStateTable;->getUriForSubscriptionIdAndField(ILjava/lang/String;)Landroid/net/Uri;
+HSPLandroid/provider/Telephony$Sms$Sent;-><clinit>()V
HSPLandroid/provider/Telephony$Sms;->getDefaultSmsPackage(Landroid/content/Context;)Ljava/lang/String;
+HSPLandroid/provider/Telephony$Threads;-><clinit>()V
+HPLandroid/provider/Telephony$Threads;->getOrCreateThreadId(Landroid/content/Context;Ljava/util/Set;)J
+HSPLandroid/provider/VoicemailContract$Status;-><clinit>()V
+HSPLandroid/provider/VoicemailContract$Voicemails;-><clinit>()V
+HSPLandroid/renderscript/BaseObj;-><init>(JLandroid/renderscript/RenderScript;)V
+HSPLandroid/renderscript/BaseObj;->equals(Ljava/lang/Object;)Z
+HSPLandroid/renderscript/BaseObj;->getID(Landroid/renderscript/RenderScript;)J
+HSPLandroid/renderscript/Element$1;-><clinit>()V
+HSPLandroid/renderscript/Element$DataKind;-><clinit>()V
+HSPLandroid/renderscript/Element$DataKind;-><init>(Ljava/lang/String;II)V
+HSPLandroid/renderscript/Element$DataKind;->values()[Landroid/renderscript/Element$DataKind;
+HSPLandroid/renderscript/Element$DataType;-><clinit>()V
+HSPLandroid/renderscript/Element$DataType;-><init>(Ljava/lang/String;II)V
+HSPLandroid/renderscript/Element$DataType;-><init>(Ljava/lang/String;III)V
+HSPLandroid/renderscript/Element$DataType;->values()[Landroid/renderscript/Element$DataType;
+HSPLandroid/renderscript/Element;-><init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Element$DataType;Landroid/renderscript/Element$DataKind;ZI)V
+HSPLandroid/renderscript/Element;->U8_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
+HSPLandroid/renderscript/Element;->createVector(Landroid/renderscript/RenderScript;Landroid/renderscript/Element$DataType;I)Landroid/renderscript/Element;
+HSPLandroid/renderscript/Element;->isCompatible(Landroid/renderscript/Element;)Z
+HSPLandroid/renderscript/RenderScript$ContextType;-><clinit>()V
+HSPLandroid/renderscript/RenderScript$ContextType;-><init>(Ljava/lang/String;II)V
+HSPLandroid/renderscript/RenderScript$MessageThread;-><init>(Landroid/renderscript/RenderScript;)V
+HSPLandroid/renderscript/RenderScript$MessageThread;->run()V
+HSPLandroid/renderscript/RenderScript;-><clinit>()V
+HSPLandroid/renderscript/RenderScript;-><init>(Landroid/content/Context;)V
+HSPLandroid/renderscript/RenderScript;->create(Landroid/content/Context;)Landroid/renderscript/RenderScript;
+HSPLandroid/renderscript/RenderScript;->create(Landroid/content/Context;ILandroid/renderscript/RenderScript$ContextType;I)Landroid/renderscript/RenderScript;
+HSPLandroid/renderscript/RenderScript;->create(Landroid/content/Context;Landroid/renderscript/RenderScript$ContextType;)Landroid/renderscript/RenderScript;
+HSPLandroid/renderscript/RenderScript;->create(Landroid/content/Context;Landroid/renderscript/RenderScript$ContextType;I)Landroid/renderscript/RenderScript;
+HSPLandroid/renderscript/RenderScript;->getCachePath()Ljava/lang/String;
+HSPLandroid/renderscript/RenderScript;->internalCreate(Landroid/content/Context;ILandroid/renderscript/RenderScript$ContextType;I)Landroid/renderscript/RenderScript;
+HSPLandroid/renderscript/RenderScript;->nContextCreate(JIII)J
+HSPLandroid/renderscript/RenderScript;->nContextSetCacheDir(Ljava/lang/String;)V
+HSPLandroid/renderscript/RenderScript;->nElementCreate(JIZI)J
+HSPLandroid/renderscript/RenderScript;->nScriptIntrinsicCreate(IJ)J
+HSPLandroid/renderscript/RenderScript;->nScriptSetVarF(JIF)V
+HSPLandroid/renderscript/RenderScript;->validate()V
HSPLandroid/renderscript/RenderScriptCacheDir;->setupDiskCache(Ljava/io/File;)V
+HSPLandroid/renderscript/Script;-><init>(JLandroid/renderscript/RenderScript;)V
+HSPLandroid/renderscript/Script;->setVar(IF)V
+HSPLandroid/renderscript/ScriptIntrinsic;-><init>(JLandroid/renderscript/RenderScript;)V
+HSPLandroid/renderscript/ScriptIntrinsicBlur;-><init>(JLandroid/renderscript/RenderScript;)V
+HSPLandroid/renderscript/ScriptIntrinsicBlur;->create(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicBlur;
+HSPLandroid/renderscript/ScriptIntrinsicBlur;->setRadius(F)V
+HSPLandroid/security/AttestedKeyPair;-><init>(Ljava/security/KeyPair;[Ljava/security/cert/Certificate;)V
+HSPLandroid/security/Credentials;->deleteAllTypesForAlias(Landroid/security/KeyStore;Ljava/lang/String;)Z
HSPLandroid/security/Credentials;->deleteAllTypesForAlias(Landroid/security/KeyStore;Ljava/lang/String;I)Z
HSPLandroid/security/Credentials;->deleteCertificateTypesForAlias(Landroid/security/KeyStore;Ljava/lang/String;I)Z
HSPLandroid/security/Credentials;->deleteUserKeyTypeForAlias(Landroid/security/KeyStore;Ljava/lang/String;I)Z
+PLandroid/security/GateKeeper;->getSecureUserId()J
+PLandroid/security/GateKeeper;->getService()Landroid/service/gatekeeper/IGateKeeperService;
+PLandroid/security/IKeyChainService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/security/IKeyChainService$Stub$Proxy;->generateKeyPair(Ljava/lang/String;Landroid/security/keystore/ParcelableKeyGenParameterSpec;)I
+HSPLandroid/security/IKeyChainService$Stub$Proxy;->getCertificate(Ljava/lang/String;)[B
+PLandroid/security/IKeyChainService$Stub$Proxy;->getUserCaAliases()Landroid/content/pm/StringParceledListSlice;
+HSPLandroid/security/IKeyChainService$Stub$Proxy;->requestPrivateKey(Ljava/lang/String;)Ljava/lang/String;
+PLandroid/security/IKeyChainService$Stub$Proxy;->setGrant(ILjava/lang/String;Z)V
+HSPLandroid/security/IKeyChainService$Stub;-><init>()V
+PLandroid/security/IKeyChainService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/security/IKeyChainService;
+HSPLandroid/security/IKeyChainService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/security/KeyChain$1;-><init>(Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/CountDownLatch;)V
HSPLandroid/security/KeyChain$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLandroid/security/KeyChain$KeyChainConnection;-><init>(Landroid/content/Context;Landroid/content/ServiceConnection;Landroid/security/IKeyChainService;)V
HSPLandroid/security/KeyChain$KeyChainConnection;->close()V
HSPLandroid/security/KeyChain$KeyChainConnection;->getService()Landroid/security/IKeyChainService;
+HSPLandroid/security/KeyChain;->bind(Landroid/content/Context;)Landroid/security/KeyChain$KeyChainConnection;
HSPLandroid/security/KeyChain;->bindAsUser(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection;
+PLandroid/security/KeyChain;->ensureNotOnMainThread(Landroid/content/Context;)V
+HSPLandroid/security/KeyChain;->getCertificateChain(Landroid/content/Context;Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
+HSPLandroid/security/KeyChain;->getKeyPair(Landroid/content/Context;Ljava/lang/String;)Ljava/security/KeyPair;
+HSPLandroid/security/KeyChain;->getPrivateKey(Landroid/content/Context;Ljava/lang/String;)Ljava/security/PrivateKey;
+PLandroid/security/KeyStore$CertificateChainPromise;-><init>(Landroid/security/KeyStore;)V
+PLandroid/security/KeyStore$CertificateChainPromise;-><init>(Landroid/security/KeyStore;Landroid/security/KeyStore$1;)V
+PLandroid/security/KeyStore$CertificateChainPromise;->getFuture()Ljava/util/concurrent/CompletableFuture;
+PLandroid/security/KeyStore$CertificateChainPromise;->onFinished(Landroid/security/keystore/KeystoreResponse;Landroid/security/keymaster/KeymasterCertificateChain;)V
+HSPLandroid/security/KeyStore$ExportKeyPromise;-><init>(Landroid/security/KeyStore;)V
+HSPLandroid/security/KeyStore$ExportKeyPromise;-><init>(Landroid/security/KeyStore;Landroid/security/KeyStore$1;)V
+HSPLandroid/security/KeyStore$ExportKeyPromise;->getFuture()Ljava/util/concurrent/CompletableFuture;
+HSPLandroid/security/KeyStore$ExportKeyPromise;->onFinished(Landroid/security/keymaster/ExportResult;)V
+PLandroid/security/KeyStore$KeyAttestationCallbackResult;-><init>(Landroid/security/KeyStore;Landroid/security/keystore/KeystoreResponse;Landroid/security/keymaster/KeymasterCertificateChain;)V
+PLandroid/security/KeyStore$KeyAttestationCallbackResult;->getCertificateChain()Landroid/security/keymaster/KeymasterCertificateChain;
+PLandroid/security/KeyStore$KeyAttestationCallbackResult;->getKeystoreResponse()Landroid/security/keystore/KeystoreResponse;
+HSPLandroid/security/KeyStore$KeyCharacteristicsCallbackResult;-><init>(Landroid/security/KeyStore;Landroid/security/keystore/KeystoreResponse;Landroid/security/keymaster/KeyCharacteristics;)V
HSPLandroid/security/KeyStore$KeyCharacteristicsCallbackResult;->getKeyCharacteristics()Landroid/security/keymaster/KeyCharacteristics;
HSPLandroid/security/KeyStore$KeyCharacteristicsCallbackResult;->getKeystoreResponse()Landroid/security/keystore/KeystoreResponse;
HSPLandroid/security/KeyStore$KeyCharacteristicsPromise;-><init>(Landroid/security/KeyStore;)V
HSPLandroid/security/KeyStore$KeyCharacteristicsPromise;-><init>(Landroid/security/KeyStore;Landroid/security/KeyStore$1;)V
HSPLandroid/security/KeyStore$KeyCharacteristicsPromise;->getFuture()Ljava/util/concurrent/CompletableFuture;
HSPLandroid/security/KeyStore$KeyCharacteristicsPromise;->onFinished(Landroid/security/keystore/KeystoreResponse;Landroid/security/keymaster/KeyCharacteristics;)V
+PLandroid/security/KeyStore$KeystoreResultPromise;-><init>(Landroid/security/KeyStore;)V
+PLandroid/security/KeyStore$KeystoreResultPromise;-><init>(Landroid/security/KeyStore;Landroid/security/KeyStore$1;)V
+PLandroid/security/KeyStore$KeystoreResultPromise;->getFuture()Ljava/util/concurrent/CompletableFuture;
+PLandroid/security/KeyStore$KeystoreResultPromise;->onFinished(Landroid/security/keystore/KeystoreResponse;)V
HSPLandroid/security/KeyStore$OperationPromise;-><init>(Landroid/security/KeyStore;)V
HSPLandroid/security/KeyStore$OperationPromise;-><init>(Landroid/security/KeyStore;Landroid/security/KeyStore$1;)V
HSPLandroid/security/KeyStore$OperationPromise;->getFuture()Ljava/util/concurrent/CompletableFuture;
HSPLandroid/security/KeyStore$OperationPromise;->onFinished(Landroid/security/keymaster/OperationResult;)V
+HSPLandroid/security/KeyStore;-><init>(Landroid/security/keystore/IKeystoreService;)V
HSPLandroid/security/KeyStore;->abort(Landroid/os/IBinder;)I
+PLandroid/security/KeyStore;->addAuthToken([B)I
+PLandroid/security/KeyStore;->attestKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;Landroid/security/keymaster/KeymasterCertificateChain;)I
HSPLandroid/security/KeyStore;->begin(Ljava/lang/String;IZLandroid/security/keymaster/KeymasterArguments;[BI)Landroid/security/keymaster/OperationResult;
+HSPLandroid/security/KeyStore;->contains(Ljava/lang/String;)Z
HSPLandroid/security/KeyStore;->contains(Ljava/lang/String;I)Z
HSPLandroid/security/KeyStore;->delete(Ljava/lang/String;I)Z
HSPLandroid/security/KeyStore;->delete2(Ljava/lang/String;I)I
+HSPLandroid/security/KeyStore;->exportKey(Ljava/lang/String;ILandroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;I)Landroid/security/keymaster/ExportResult;
HSPLandroid/security/KeyStore;->finish(Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B[B[B)Landroid/security/keymaster/OperationResult;
HSPLandroid/security/KeyStore;->generateKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BIILandroid/security/keymaster/KeyCharacteristics;)I
HSPLandroid/security/KeyStore;->generateKeyInternal(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BIILandroid/security/keymaster/KeyCharacteristics;)I
+PLandroid/security/KeyStore;->get(Ljava/lang/String;I)[B
+PLandroid/security/KeyStore;->get(Ljava/lang/String;IZ)[B
+HSPLandroid/security/KeyStore;->getApplicationContext()Landroid/content/Context;
+HPLandroid/security/KeyStore;->getFaceOnlySid()J
+HPLandroid/security/KeyStore;->getFingerprintOnlySid()J
HSPLandroid/security/KeyStore;->getInstance()Landroid/security/KeyStore;
+PLandroid/security/KeyStore;->getInvalidKeyException(Ljava/lang/String;II)Ljava/security/InvalidKeyException;
+PLandroid/security/KeyStore;->getInvalidKeyException(Ljava/lang/String;ILandroid/security/KeyStoreException;)Ljava/security/InvalidKeyException;
HSPLandroid/security/KeyStore;->getKeyCharacteristics(Ljava/lang/String;Landroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;ILandroid/security/keymaster/KeyCharacteristics;)I
+PLandroid/security/KeyStore;->getKeyStoreException(I)Landroid/security/KeyStoreException;
HSPLandroid/security/KeyStore;->getToken()Landroid/os/IBinder;
+HSPLandroid/security/KeyStore;->getmtime(Ljava/lang/String;I)J
+PLandroid/security/KeyStore;->grant(Ljava/lang/String;I)Ljava/lang/String;
+PLandroid/security/KeyStore;->importKey(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;I[BIILandroid/security/keymaster/KeyCharacteristics;)I
+PLandroid/security/KeyStore;->importKeyInternal(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;I[BIILandroid/security/keymaster/KeyCharacteristics;)I
+HSPLandroid/security/KeyStore;->insert(Ljava/lang/String;[BII)I
+PLandroid/security/KeyStore;->list(Ljava/lang/String;I)[Ljava/lang/String;
+HPLandroid/security/KeyStore;->onUserLockedStateChanged(IZ)V
+PLandroid/security/KeyStore;->state(I)Landroid/security/KeyStore$State;
+PLandroid/security/KeyStore;->unlock(ILjava/lang/String;)Z
HSPLandroid/security/KeyStore;->update(Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B)Landroid/security/keymaster/OperationResult;
-PLandroid/security/NetworkSecurityPolicy;->getInstance()Landroid/security/NetworkSecurityPolicy;
-PLandroid/security/NetworkSecurityPolicy;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
+PLandroid/security/KeyStoreException;-><init>(ILjava/lang/String;)V
+PLandroid/security/KeyStoreException;->getErrorCode()I
+HSPLandroid/security/NetworkSecurityPolicy;->getApplicationConfigForPackage(Landroid/content/Context;Ljava/lang/String;)Landroid/security/net/config/ApplicationConfig;
+HSPLandroid/security/NetworkSecurityPolicy;->getInstance()Landroid/security/NetworkSecurityPolicy;
+HSPLandroid/security/NetworkSecurityPolicy;->isCleartextTrafficPermitted()Z
+HSPLandroid/security/NetworkSecurityPolicy;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
+PLandroid/security/Scrypt;-><init>()V
+PLandroid/security/Scrypt;->scrypt([B[BIIII)[B
+HSPLandroid/security/keymaster/ExportResult$1;-><init>()V
+HSPLandroid/security/keymaster/ExportResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/ExportResult;
+HSPLandroid/security/keymaster/ExportResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/security/keymaster/ExportResult;-><clinit>()V
+HSPLandroid/security/keymaster/ExportResult;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub;-><init>()V
+PLandroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/security/keymaster/KeyAttestationApplicationId$1;-><init>()V
+PLandroid/security/keymaster/KeyAttestationApplicationId;-><clinit>()V
+PLandroid/security/keymaster/KeyAttestationApplicationId;-><init>([Landroid/security/keymaster/KeyAttestationPackageInfo;)V
+PLandroid/security/keymaster/KeyAttestationApplicationId;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/security/keymaster/KeyAttestationPackageInfo$1;-><init>()V
+PLandroid/security/keymaster/KeyAttestationPackageInfo;-><clinit>()V
+PLandroid/security/keymaster/KeyAttestationPackageInfo;-><init>(Ljava/lang/String;J[Landroid/content/pm/Signature;)V
+PLandroid/security/keymaster/KeyAttestationPackageInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/security/keymaster/KeyCharacteristics$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/KeyCharacteristics;
HSPLandroid/security/keymaster/KeyCharacteristics$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/security/keymaster/KeyCharacteristics;-><init>()V
+HSPLandroid/security/keymaster/KeyCharacteristics;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/security/keymaster/KeyCharacteristics;->getBoolean(I)Z
+HSPLandroid/security/keymaster/KeyCharacteristics;->getDate(I)Ljava/util/Date;
HSPLandroid/security/keymaster/KeyCharacteristics;->getEnum(I)Ljava/lang/Integer;
HSPLandroid/security/keymaster/KeyCharacteristics;->getEnums(I)Ljava/util/List;
+HSPLandroid/security/keymaster/KeyCharacteristics;->getUnsignedInt(IJ)J
+HSPLandroid/security/keymaster/KeyCharacteristics;->getUnsignedLongs(I)Ljava/util/List;
+HSPLandroid/security/keymaster/KeyCharacteristics;->readFromParcel(Landroid/os/Parcel;)V
HSPLandroid/security/keymaster/KeyCharacteristics;->shallowCopyFrom(Landroid/security/keymaster/KeyCharacteristics;)V
HSPLandroid/security/keymaster/KeymasterArgument$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/KeymasterArgument;
HSPLandroid/security/keymaster/KeymasterArgument$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
@@ -5976,81 +19290,293 @@ HSPLandroid/security/keymaster/KeymasterArgument;->writeToParcel(Landroid/os/Par
HSPLandroid/security/keymaster/KeymasterArguments$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/KeymasterArguments;
HSPLandroid/security/keymaster/KeymasterArguments$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/security/keymaster/KeymasterArguments;-><init>()V
+HSPLandroid/security/keymaster/KeymasterArguments;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/security/keymaster/KeymasterArguments;-><init>(Landroid/os/Parcel;Landroid/security/keymaster/KeymasterArguments$1;)V
HSPLandroid/security/keymaster/KeymasterArguments;->addBoolean(I)V
HSPLandroid/security/keymaster/KeymasterArguments;->addBytes(I[B)V
HSPLandroid/security/keymaster/KeymasterArguments;->addDateIfNotNull(ILjava/util/Date;)V
HSPLandroid/security/keymaster/KeymasterArguments;->addEnum(II)V
HSPLandroid/security/keymaster/KeymasterArguments;->addEnumTag(II)V
HSPLandroid/security/keymaster/KeymasterArguments;->addEnums(I[I)V
+HSPLandroid/security/keymaster/KeymasterArguments;->addLongTag(ILjava/math/BigInteger;)V
HSPLandroid/security/keymaster/KeymasterArguments;->addUnsignedInt(IJ)V
+HSPLandroid/security/keymaster/KeymasterArguments;->addUnsignedLong(ILjava/math/BigInteger;)V
HSPLandroid/security/keymaster/KeymasterArguments;->containsTag(I)Z
+HSPLandroid/security/keymaster/KeymasterArguments;->getArgumentByTag(I)Landroid/security/keymaster/KeymasterArgument;
+HSPLandroid/security/keymaster/KeymasterArguments;->getBoolean(I)Z
HSPLandroid/security/keymaster/KeymasterArguments;->getBytes(I[B)[B
+HSPLandroid/security/keymaster/KeymasterArguments;->getDate(ILjava/util/Date;)Ljava/util/Date;
HSPLandroid/security/keymaster/KeymasterArguments;->getEnum(II)I
+HSPLandroid/security/keymaster/KeymasterArguments;->getEnumTagValue(Landroid/security/keymaster/KeymasterArgument;)I
HSPLandroid/security/keymaster/KeymasterArguments;->getEnums(I)Ljava/util/List;
+PLandroid/security/keymaster/KeymasterArguments;->getLongTagValue(Landroid/security/keymaster/KeymasterArgument;)Ljava/math/BigInteger;
+HSPLandroid/security/keymaster/KeymasterArguments;->getUnsignedInt(IJ)J
+HSPLandroid/security/keymaster/KeymasterArguments;->getUnsignedLongs(I)Ljava/util/List;
+PLandroid/security/keymaster/KeymasterArguments;->toUint64(J)Ljava/math/BigInteger;
HSPLandroid/security/keymaster/KeymasterArguments;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/security/keymaster/KeymasterBlob;-><init>([B)V
HSPLandroid/security/keymaster/KeymasterBlob;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/security/keymaster/KeymasterBlobArgument;-><init>(I[B)V
HSPLandroid/security/keymaster/KeymasterBlobArgument;->writeValue(Landroid/os/Parcel;)V
HSPLandroid/security/keymaster/KeymasterBooleanArgument;-><init>(I)V
+HSPLandroid/security/keymaster/KeymasterBooleanArgument;-><init>(ILandroid/os/Parcel;)V
HSPLandroid/security/keymaster/KeymasterBooleanArgument;->writeValue(Landroid/os/Parcel;)V
+PLandroid/security/keymaster/KeymasterCertificateChain$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/KeymasterCertificateChain;
+PLandroid/security/keymaster/KeymasterCertificateChain$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/security/keymaster/KeymasterCertificateChain;-><init>()V
+PLandroid/security/keymaster/KeymasterCertificateChain;-><init>(Landroid/os/Parcel;)V
+PLandroid/security/keymaster/KeymasterCertificateChain;-><init>(Landroid/os/Parcel;Landroid/security/keymaster/KeymasterCertificateChain$1;)V
+HSPLandroid/security/keymaster/KeymasterCertificateChain;->getCertificates()Ljava/util/List;
+HSPLandroid/security/keymaster/KeymasterCertificateChain;->readFromParcel(Landroid/os/Parcel;)V
+PLandroid/security/keymaster/KeymasterCertificateChain;->shallowCopyFrom(Landroid/security/keymaster/KeymasterCertificateChain;)V
+PLandroid/security/keymaster/KeymasterCertificateChain;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/security/keymaster/KeymasterDateArgument;-><init>(ILandroid/os/Parcel;)V
+PLandroid/security/keymaster/KeymasterDefs;->getErrorMessage(I)Ljava/lang/String;
HSPLandroid/security/keymaster/KeymasterDefs;->getTagType(I)I
HSPLandroid/security/keymaster/KeymasterIntArgument;-><init>(II)V
+HSPLandroid/security/keymaster/KeymasterIntArgument;-><init>(ILandroid/os/Parcel;)V
HSPLandroid/security/keymaster/KeymasterIntArgument;->writeValue(Landroid/os/Parcel;)V
+HSPLandroid/security/keymaster/KeymasterLongArgument;-><init>(IJ)V
+PLandroid/security/keymaster/KeymasterLongArgument;-><init>(ILandroid/os/Parcel;)V
+HSPLandroid/security/keymaster/KeymasterLongArgument;->writeValue(Landroid/os/Parcel;)V
HSPLandroid/security/keymaster/OperationResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keymaster/OperationResult;
HSPLandroid/security/keymaster/OperationResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/security/keymaster/OperationResult;-><init>(ILandroid/os/IBinder;JI[BLandroid/security/keymaster/KeymasterArguments;)V
HSPLandroid/security/keymaster/OperationResult;-><init>(Landroid/os/Parcel;)V
+PLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;-><init>(Landroid/security/KeyStore;Landroid/os/IBinder;)V
+PLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;-><init>(Landroid/security/KeyStore;Landroid/os/IBinder;Landroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$1;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$AdditionalAuthenticationDataStream;->finish([B[B[B)Landroid/security/keymaster/OperationResult;
+PLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;-><init>(Landroid/security/keystore/KeyStoreCryptoOperationStreamer;)V
+PLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;-><init>(Landroid/security/keystore/KeyStoreCryptoOperationStreamer;Landroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$1;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$BufferAllOutputUntilDoFinalStreamer;->doFinal([BII[B[B)[B
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM$NoPadding;->finalize()V
+PLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;-><init>(I)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->addAlgorithmSpecificParametersToBegin(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->createAdditionalAuthenticationDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->createMainDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->getAdditionalEntropyAmountForBegin()I
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->getAdditionalEntropyAmountForFinish()I
+PLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->initAlgorithmSpecificParameters()V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->initAlgorithmSpecificParameters(Ljava/security/spec/AlgorithmParameterSpec;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->resetAll()V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi$GCM;->resetWhilePreservingInitState()V
+PLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;-><init>(II)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->addAlgorithmSpecificParametersToBegin(Landroid/security/keymaster/KeymasterArguments;)V
+PLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->engineGetIV()[B
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->getIv()[B
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->initKey(ILjava/security/Key;)V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->loadAlgorithmSpecificParametersFromBeginResult(Landroid/security/keymaster/KeymasterArguments;)V
+PLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->resetAll()V
+HSPLandroid/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi;->setIv([B)V
HSPLandroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;->getSupportedEcdsaSignatureDigests()[Ljava/lang/String;
HSPLandroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;->putAsymmetricCipherImpl(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;->putMacImpl(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;->putSignatureImpl(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/security/keystore/AndroidKeyStoreBCWorkaroundProvider;->putSymmetricCipherImpl(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->createAdditionalAuthenticationDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
+HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->createMainDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->engineDoFinal([BII)[B
+PLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->engineInit(ILjava/security/Key;Ljava/security/SecureRandom;)V
HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->engineInit(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
+HPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->engineUnwrap([BLjava/lang/String;I)Ljava/security/Key;
+HPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->engineWrap(Ljava/security/Key;)[B
HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->ensureKeystoreOperationInitialized()V
HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->finalize()V
HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->flushAAD()V
HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->init(ILjava/security/Key;Ljava/security/SecureRandom;)V
HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->isEncrypting()Z
HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->resetAll()V
+HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->resetWhilePreservingInitState()V
+HSPLandroid/security/keystore/AndroidKeyStoreCipherSpiBase;->setKey(Landroid/security/keystore/AndroidKeyStoreKey;)V
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi$SHA256;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi;-><init>(I)V
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi;->addAlgorithmSpecificParametersToBegin(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi;->getAdditionalEntropyAmountForSign()I
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi;->initKey(Landroid/security/keystore/AndroidKeyStoreKey;)V
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi;->resetAll()V
+HSPLandroid/security/keystore/AndroidKeyStoreECDSASignatureSpi;->resetWhilePreservingInitState()V
+HSPLandroid/security/keystore/AndroidKeyStoreECPrivateKey;-><init>(Ljava/lang/String;ILjava/security/spec/ECParameterSpec;)V
+HSPLandroid/security/keystore/AndroidKeyStoreECPublicKey;-><init>(Ljava/lang/String;ILjava/security/interfaces/ECPublicKey;)V
+HSPLandroid/security/keystore/AndroidKeyStoreECPublicKey;-><init>(Ljava/lang/String;I[BLjava/security/spec/ECParameterSpec;Ljava/security/spec/ECPoint;)V
+HSPLandroid/security/keystore/AndroidKeyStoreECPublicKey;->getParams()Ljava/security/spec/ECParameterSpec;
+HSPLandroid/security/keystore/AndroidKeyStoreHmacSpi$HmacSHA256;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreHmacSpi;-><init>(I)V
+PLandroid/security/keystore/AndroidKeyStoreHmacSpi;->engineDoFinal()[B
+HSPLandroid/security/keystore/AndroidKeyStoreHmacSpi;->engineInit(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
+PLandroid/security/keystore/AndroidKeyStoreHmacSpi;->engineReset()V
+PLandroid/security/keystore/AndroidKeyStoreHmacSpi;->engineUpdate([BII)V
+HSPLandroid/security/keystore/AndroidKeyStoreHmacSpi;->ensureKeystoreOperationInitialized()V
+HSPLandroid/security/keystore/AndroidKeyStoreHmacSpi;->init(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
+HSPLandroid/security/keystore/AndroidKeyStoreHmacSpi;->resetAll()V
+PLandroid/security/keystore/AndroidKeyStoreHmacSpi;->resetWhilePreservingInitState()V
HSPLandroid/security/keystore/AndroidKeyStoreKey;-><init>(Ljava/lang/String;ILjava/lang/String;)V
HSPLandroid/security/keystore/AndroidKeyStoreKey;->getAlgorithm()Ljava/lang/String;
HSPLandroid/security/keystore/AndroidKeyStoreKey;->getAlias()Ljava/lang/String;
HSPLandroid/security/keystore/AndroidKeyStoreKey;->getFormat()Ljava/lang/String;
HSPLandroid/security/keystore/AndroidKeyStoreKey;->getUid()I
+HSPLandroid/security/keystore/AndroidKeyStoreKeyFactorySpi;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyFactorySpi;->engineGeneratePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyFactorySpi;->engineGetKeySpec(Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi$EC;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi$RSA;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;-><clinit>()V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;-><init>(I)V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->addAlgorithmSpecificParameters(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->checkValidKeySize(IIZ)V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->constructKeyGenerationArguments()Landroid/security/keymaster/KeymasterArguments;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->createCertificateChain(Ljava/lang/String;Ljava/security/KeyPair;)Ljava/lang/Iterable;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateKeyPair()Ljava/security/KeyPair;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateKeystoreKeyPair(Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BI)V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateSelfSignedCertificate(Ljava/security/PrivateKey;Ljava/security/PublicKey;)Ljava/security/cert/X509Certificate;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateSelfSignedCertificateBytes(Ljava/security/KeyPair;)[B
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateSelfSignedCertificateWithFakeSignature(Ljava/security/PublicKey;)Ljava/security/cert/X509Certificate;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->generateSelfSignedCertificateWithValidSignature(Ljava/security/PrivateKey;Ljava/security/PublicKey;Ljava/lang/String;)Ljava/security/cert/X509Certificate;
+PLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->getAttestationChain(Ljava/lang/String;Ljava/security/KeyPair;Landroid/security/keymaster/KeymasterArguments;)Ljava/lang/Iterable;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->getAvailableKeymasterSignatureDigests([Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Set;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->getCertificateSignatureAlgorithm(IILandroid/security/keystore/KeyGenParameterSpec;)Ljava/lang/String;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->getDefaultKeySize(I)I
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->initAlgorithmSpecificParameters()V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->initialize(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->loadKeystoreKeyPair(Ljava/lang/String;)Ljava/security/KeyPair;
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->resetAll()V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->storeCertificate(Ljava/lang/String;[BILjava/lang/String;)V
+HSPLandroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->storeCertificateChain(ILjava/lang/Iterable;)V
+HSPLandroid/security/keystore/AndroidKeyStoreLoadStoreParameter;-><init>(I)V
+HSPLandroid/security/keystore/AndroidKeyStoreLoadStoreParameter;->getUid()I
+HSPLandroid/security/keystore/AndroidKeyStorePrivateKey;-><init>(Ljava/lang/String;ILjava/lang/String;)V
HSPLandroid/security/keystore/AndroidKeyStoreProvider;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreProvider;->getAndroidKeyStorePrivateKey(Landroid/security/keystore/AndroidKeyStorePublicKey;)Landroid/security/keystore/AndroidKeyStorePrivateKey;
+HSPLandroid/security/keystore/AndroidKeyStoreProvider;->getAndroidKeyStorePublicKey(Ljava/lang/String;ILjava/lang/String;[B)Landroid/security/keystore/AndroidKeyStorePublicKey;
HSPLandroid/security/keystore/AndroidKeyStoreProvider;->getKeyCharacteristics(Landroid/security/KeyStore;Ljava/lang/String;I)Landroid/security/keymaster/KeyCharacteristics;
+HSPLandroid/security/keystore/AndroidKeyStoreProvider;->getKeyStoreForUid(I)Ljava/security/KeyStore;
HSPLandroid/security/keystore/AndroidKeyStoreProvider;->install()V
HSPLandroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStoreKeyFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;I)Landroid/security/keystore/AndroidKeyStoreKey;
+HSPLandroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStoreKeyPairFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;I)Ljava/security/KeyPair;
+HSPLandroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStoreKeyPairFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;ILandroid/security/keymaster/KeyCharacteristics;)Ljava/security/KeyPair;
+HSPLandroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStorePublicKeyFromKeystore(Landroid/security/KeyStore;Ljava/lang/String;ILandroid/security/keymaster/KeyCharacteristics;)Landroid/security/keystore/AndroidKeyStorePublicKey;
HSPLandroid/security/keystore/AndroidKeyStoreProvider;->loadAndroidKeyStoreSecretKeyFromKeystore(Ljava/lang/String;ILandroid/security/keymaster/KeyCharacteristics;)Landroid/security/keystore/AndroidKeyStoreSecretKey;
HSPLandroid/security/keystore/AndroidKeyStoreProvider;->putKeyFactoryImpl(Ljava/lang/String;)V
HSPLandroid/security/keystore/AndroidKeyStoreProvider;->putSecretKeyFactoryImpl(Ljava/lang/String;)V
+HSPLandroid/security/keystore/AndroidKeyStorePublicKey;-><init>(Ljava/lang/String;ILjava/lang/String;[B)V
+HSPLandroid/security/keystore/AndroidKeyStorePublicKey;->getEncoded()[B
+HSPLandroid/security/keystore/AndroidKeyStoreRSAPrivateKey;-><init>(Ljava/lang/String;ILjava/math/BigInteger;)V
+HSPLandroid/security/keystore/AndroidKeyStoreRSAPublicKey;-><init>(Ljava/lang/String;ILjava/security/interfaces/RSAPublicKey;)V
+HSPLandroid/security/keystore/AndroidKeyStoreRSAPublicKey;-><init>(Ljava/lang/String;I[BLjava/math/BigInteger;Ljava/math/BigInteger;)V
+HSPLandroid/security/keystore/AndroidKeyStoreRSAPublicKey;->getModulus()Ljava/math/BigInteger;
HSPLandroid/security/keystore/AndroidKeyStoreSecretKey;-><init>(Ljava/lang/String;ILjava/lang/String;)V
+PLandroid/security/keystore/AndroidKeyStoreSecretKeyFactorySpi;-><init>()V
+PLandroid/security/keystore/AndroidKeyStoreSecretKeyFactorySpi;->engineGetKeySpec(Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
+HSPLandroid/security/keystore/AndroidKeyStoreSecretKeyFactorySpi;->getKeyInfo(Landroid/security/KeyStore;Ljava/lang/String;Ljava/lang/String;I)Landroid/security/keystore/KeyInfo;
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->createMainDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->engineInitSign(Ljava/security/PrivateKey;)V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->engineInitSign(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->engineSign()[B
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->engineUpdate([BII)V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->ensureKeystoreOperationInitialized()V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->getKeyStore()Landroid/security/KeyStore;
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->initKey(Landroid/security/keystore/AndroidKeyStoreKey;)V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->resetAll()V
+HSPLandroid/security/keystore/AndroidKeyStoreSignatureSpiBase;->resetWhilePreservingInitState()V
+PLandroid/security/keystore/AndroidKeyStoreSpi$KeyStoreX509Certificate;-><init>(Ljava/lang/String;ILjava/security/cert/X509Certificate;)V
+PLandroid/security/keystore/AndroidKeyStoreSpi$KeyStoreX509Certificate;->getPublicKey()Ljava/security/PublicKey;
HSPLandroid/security/keystore/AndroidKeyStoreSpi;-><init>()V
+PLandroid/security/keystore/AndroidKeyStoreSpi;->engineAliases()Ljava/util/Enumeration;
HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineContainsAlias(Ljava/lang/String;)Z
+PLandroid/security/keystore/AndroidKeyStoreSpi;->engineDeleteEntry(Ljava/lang/String;)V
+PLandroid/security/keystore/AndroidKeyStoreSpi;->engineGetCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;
+PLandroid/security/keystore/AndroidKeyStoreSpi;->engineGetCertificateChain(Ljava/lang/String;)[Ljava/security/cert/Certificate;
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineGetCreationDate(Ljava/lang/String;)Ljava/util/Date;
HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineGetKey(Ljava/lang/String;[C)Ljava/security/Key;
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineIsCertificateEntry(Ljava/lang/String;)Z
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineIsKeyEntry(Ljava/lang/String;)Z
HSPLandroid/security/keystore/AndroidKeyStoreSpi;->engineLoad(Ljava/security/KeyStore$LoadStoreParameter;)V
+PLandroid/security/keystore/AndroidKeyStoreSpi;->engineSetEntry(Ljava/lang/String;Ljava/security/KeyStore$Entry;Ljava/security/KeyStore$ProtectionParameter;)V
+PLandroid/security/keystore/AndroidKeyStoreSpi;->getCertificateForPrivateKeyEntry(Ljava/lang/String;[B)Ljava/security/cert/Certificate;
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->getModificationDate(Ljava/lang/String;)Ljava/util/Date;
+PLandroid/security/keystore/AndroidKeyStoreSpi;->getUniqueAliases()Ljava/util/Set;
+HSPLandroid/security/keystore/AndroidKeyStoreSpi;->isKeyEntry(Ljava/lang/String;)Z
+PLandroid/security/keystore/AndroidKeyStoreSpi;->setSecretKeyEntry(Ljava/lang/String;Ljavax/crypto/SecretKey;Ljava/security/KeyStore$ProtectionParameter;)V
+PLandroid/security/keystore/AndroidKeyStoreSpi;->toCertificate([B)Ljava/security/cert/X509Certificate;
+PLandroid/security/keystore/AndroidKeyStoreSpi;->toCertificates([B)Ljava/util/Collection;
+PLandroid/security/keystore/AndroidKeyStoreSpi;->wrapIntoKeyStoreCertificate(Ljava/lang/String;ILjava/security/cert/X509Certificate;)Landroid/security/keystore/AndroidKeyStoreSpi$KeyStoreX509Certificate;
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi$CBC$PKCS7Padding;-><init>()V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi$CBC$PKCS7Padding;->finalize()V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi$CBC;-><init>(I)V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;-><init>(IIZ)V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;->addAlgorithmSpecificParametersToBegin(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;->getAdditionalEntropyAmountForBegin()I
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;->initKey(ILjava/security/Key;)V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;->loadAlgorithmSpecificParametersFromBeginResult(Landroid/security/keymaster/KeymasterArguments;)V
+HSPLandroid/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi;->resetAll()V
+HSPLandroid/security/keystore/ArrayUtils;->cloneIfNotEmpty([B)[B
HSPLandroid/security/keystore/ArrayUtils;->cloneIfNotEmpty([Ljava/lang/String;)[Ljava/lang/String;
+PLandroid/security/keystore/ArrayUtils;->concat([BII[BII)[B
+PLandroid/security/keystore/ArrayUtils;->concat([B[B)[B
+HSPLandroid/security/keystore/ArrayUtils;->nullToEmpty([Ljava/lang/String;)[Ljava/lang/String;
+PLandroid/security/keystore/ArrayUtils;->subarray([BII)[B
+HSPLandroid/security/keystore/AttestationUtils;->isChainValid(Landroid/security/keymaster/KeymasterCertificateChain;)Z
+PLandroid/security/keystore/DelegatingX509Certificate;-><init>(Ljava/security/cert/X509Certificate;)V
+PLandroid/security/keystore/DelegatingX509Certificate;->getEncoded()[B
+PLandroid/security/keystore/DelegatingX509Certificate;->getPublicKey()Ljava/security/PublicKey;
+PLandroid/security/keystore/IKeystoreCertificateChainCallback$Stub;-><init>()V
+PLandroid/security/keystore/IKeystoreCertificateChainCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/security/keystore/IKeystoreCertificateChainCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/security/keystore/IKeystoreExportKeyCallback$Stub;-><init>()V
+HSPLandroid/security/keystore/IKeystoreExportKeyCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/security/keystore/IKeystoreExportKeyCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/security/keystore/IKeystoreKeyCharacteristicsCallback$Stub;-><init>()V
HSPLandroid/security/keystore/IKeystoreKeyCharacteristicsCallback$Stub;->asBinder()Landroid/os/IBinder;
HSPLandroid/security/keystore/IKeystoreKeyCharacteristicsCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/security/keystore/IKeystoreOperationResultCallback$Stub;-><init>()V
HSPLandroid/security/keystore/IKeystoreOperationResultCallback$Stub;->asBinder()Landroid/os/IBinder;
HSPLandroid/security/keystore/IKeystoreOperationResultCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/security/keystore/IKeystoreResponseCallback$Stub;-><init>()V
HSPLandroid/security/keystore/IKeystoreResponseCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/security/keystore/IKeystoreResponseCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->abort(Landroid/security/keystore/IKeystoreResponseCallback;Landroid/os/IBinder;)I
+PLandroid/security/keystore/IKeystoreService$Stub$Proxy;->addAuthToken([B)I
HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/security/keystore/IKeystoreService$Stub$Proxy;->attestKey(Landroid/security/keystore/IKeystoreCertificateChainCallback;Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;)I
HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->begin(Landroid/security/keystore/IKeystoreOperationResultCallback;Landroid/os/IBinder;Ljava/lang/String;IZLandroid/security/keymaster/KeymasterArguments;[BI)I
HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->del(Ljava/lang/String;I)I
HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->exist(Ljava/lang/String;I)I
+HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->exportKey(Landroid/security/keystore/IKeystoreExportKeyCallback;Ljava/lang/String;ILandroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;I)I
HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->finish(Landroid/security/keystore/IKeystoreOperationResultCallback;Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B[B[B)I
HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->generateKey(Landroid/security/keystore/IKeystoreKeyCharacteristicsCallback;Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;[BII)I
+HPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->get(Ljava/lang/String;I)[B
HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->getKeyCharacteristics(Landroid/security/keystore/IKeystoreKeyCharacteristicsCallback;Ljava/lang/String;Landroid/security/keymaster/KeymasterBlob;Landroid/security/keymaster/KeymasterBlob;I)I
+PLandroid/security/keystore/IKeystoreService$Stub$Proxy;->getState(I)I
+HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->getmtime(Ljava/lang/String;I)J
+PLandroid/security/keystore/IKeystoreService$Stub$Proxy;->grant(Ljava/lang/String;I)Ljava/lang/String;
+PLandroid/security/keystore/IKeystoreService$Stub$Proxy;->importKey(Landroid/security/keystore/IKeystoreKeyCharacteristicsCallback;Ljava/lang/String;Landroid/security/keymaster/KeymasterArguments;I[BII)I
+HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->insert(Ljava/lang/String;[BII)I
+PLandroid/security/keystore/IKeystoreService$Stub$Proxy;->list(Ljava/lang/String;I)[Ljava/lang/String;
+PLandroid/security/keystore/IKeystoreService$Stub$Proxy;->onKeyguardVisibilityChanged(ZI)I
+PLandroid/security/keystore/IKeystoreService$Stub$Proxy;->unlock(ILjava/lang/String;)I
HSPLandroid/security/keystore/IKeystoreService$Stub$Proxy;->update(Landroid/security/keystore/IKeystoreOperationResultCallback;Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B)I
+HSPLandroid/security/keystore/IKeystoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/security/keystore/IKeystoreService;
+PLandroid/security/keystore/KeyGenParameterSpec$Builder;-><init>(Landroid/security/keystore/KeyGenParameterSpec;)V
HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;-><init>(Ljava/lang/String;I)V
HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->build()Landroid/security/keystore/KeyGenParameterSpec;
+HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->setAlgorithmParameterSpec(Ljava/security/spec/AlgorithmParameterSpec;)Landroid/security/keystore/KeyGenParameterSpec$Builder;
+PLandroid/security/keystore/KeyGenParameterSpec$Builder;->setAttestationChallenge([B)Landroid/security/keystore/KeyGenParameterSpec$Builder;
+HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->setDigests([Ljava/lang/String;)Landroid/security/keystore/KeyGenParameterSpec$Builder;
+HSPLandroid/security/keystore/KeyGenParameterSpec$Builder;->setIsStrongBoxBacked(Z)Landroid/security/keystore/KeyGenParameterSpec$Builder;
+PLandroid/security/keystore/KeyGenParameterSpec$Builder;->setUniqueIdIncluded(Z)Landroid/security/keystore/KeyGenParameterSpec$Builder;
HSPLandroid/security/keystore/KeyGenParameterSpec;-><init>(Ljava/lang/String;IILjava/security/spec/AlgorithmParameterSpec;Ljavax/security/auth/x500/X500Principal;Ljava/math/BigInteger;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;I[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZZIZ[BZZZZZZ)V
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getAlgorithmParameterSpec()Ljava/security/spec/AlgorithmParameterSpec;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getAttestationChallenge()[B
HSPLandroid/security/keystore/KeyGenParameterSpec;->getBlockModes()[Ljava/lang/String;
+HPLandroid/security/keystore/KeyGenParameterSpec;->getBoundToSpecificSecureUserId()J
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getCertificateNotAfter()Ljava/util/Date;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getCertificateNotBefore()Ljava/util/Date;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getCertificateSerialNumber()Ljava/math/BigInteger;
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getCertificateSubject()Ljavax/security/auth/x500/X500Principal;
HSPLandroid/security/keystore/KeyGenParameterSpec;->getDigests()[Ljava/lang/String;
HSPLandroid/security/keystore/KeyGenParameterSpec;->getEncryptionPaddings()[Ljava/lang/String;
HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeySize()I
@@ -6061,24 +19587,65 @@ HSPLandroid/security/keystore/KeyGenParameterSpec;->getKeystoreAlias()Ljava/lang
HSPLandroid/security/keystore/KeyGenParameterSpec;->getPurposes()I
HSPLandroid/security/keystore/KeyGenParameterSpec;->getSignaturePaddings()[Ljava/lang/String;
HSPLandroid/security/keystore/KeyGenParameterSpec;->getUid()I
+HSPLandroid/security/keystore/KeyGenParameterSpec;->getUserAuthenticationValidityDurationSeconds()I
HSPLandroid/security/keystore/KeyGenParameterSpec;->isDigestsSpecified()Z
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isInvalidatedByBiometricEnrollment()Z
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isRandomizedEncryptionRequired()Z
HSPLandroid/security/keystore/KeyGenParameterSpec;->isStrongBoxBacked()Z
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isUniqueIdIncluded()Z
HSPLandroid/security/keystore/KeyGenParameterSpec;->isUnlockedDeviceRequired()Z
HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserAuthenticationRequired()Z
+HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserAuthenticationValidWhileOnBody()Z
HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserConfirmationRequired()Z
HSPLandroid/security/keystore/KeyGenParameterSpec;->isUserPresenceRequired()Z
+HSPLandroid/security/keystore/KeyInfo;-><init>(Ljava/lang/String;ZIILjava/util/Date;Ljava/util/Date;Ljava/util/Date;I[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZIZZZZZ)V
+PLandroid/security/keystore/KeyInfo;->getUserAuthenticationValidityDurationSeconds()I
+HSPLandroid/security/keystore/KeyInfo;->isInsideSecureHardware()Z
+HSPLandroid/security/keystore/KeyProperties$BlockMode;->allFromKeymaster(Ljava/util/Collection;)[Ljava/lang/String;
HSPLandroid/security/keystore/KeyProperties$BlockMode;->allToKeymaster([Ljava/lang/String;)[I
+PLandroid/security/keystore/KeyProperties$BlockMode;->fromKeymaster(I)Ljava/lang/String;
HSPLandroid/security/keystore/KeyProperties$BlockMode;->toKeymaster(Ljava/lang/String;)I
+HSPLandroid/security/keystore/KeyProperties$Digest;->allFromKeymaster(Ljava/util/Collection;)[Ljava/lang/String;
HSPLandroid/security/keystore/KeyProperties$Digest;->allToKeymaster([Ljava/lang/String;)[I
+HSPLandroid/security/keystore/KeyProperties$Digest;->fromKeymaster(I)Ljava/lang/String;
+HSPLandroid/security/keystore/KeyProperties$Digest;->fromKeymasterToSignatureAlgorithmDigest(I)Ljava/lang/String;
HSPLandroid/security/keystore/KeyProperties$Digest;->toKeymaster(Ljava/lang/String;)I
HSPLandroid/security/keystore/KeyProperties$EncryptionPadding;->allToKeymaster([Ljava/lang/String;)[I
+PLandroid/security/keystore/KeyProperties$EncryptionPadding;->fromKeymaster(I)Ljava/lang/String;
HSPLandroid/security/keystore/KeyProperties$EncryptionPadding;->toKeymaster(Ljava/lang/String;)I
+HSPLandroid/security/keystore/KeyProperties$KeyAlgorithm;->fromKeymasterAsymmetricKeyAlgorithm(I)Ljava/lang/String;
HSPLandroid/security/keystore/KeyProperties$KeyAlgorithm;->fromKeymasterSecretKeyAlgorithm(II)Ljava/lang/String;
+PLandroid/security/keystore/KeyProperties$KeyAlgorithm;->toKeymasterSecretKeyAlgorithm(Ljava/lang/String;)I
+HSPLandroid/security/keystore/KeyProperties$Origin;->fromKeymaster(I)I
+HSPLandroid/security/keystore/KeyProperties$Purpose;->allFromKeymaster(Ljava/util/Collection;)I
HSPLandroid/security/keystore/KeyProperties$Purpose;->allToKeymaster(I)[I
+HSPLandroid/security/keystore/KeyProperties$Purpose;->fromKeymaster(I)I
HSPLandroid/security/keystore/KeyProperties$Purpose;->toKeymaster(I)I
+HSPLandroid/security/keystore/KeyProperties$SignaturePadding;->allToKeymaster([Ljava/lang/String;)[I
HSPLandroid/security/keystore/KeyProperties;->access$000(I)[I
HSPLandroid/security/keystore/KeyProperties;->getSetBitCount(I)I
HSPLandroid/security/keystore/KeyProperties;->getSetFlags(I)[I
+PLandroid/security/keystore/KeyProtection$Builder;-><init>(I)V
+PLandroid/security/keystore/KeyProtection$Builder;->build()Landroid/security/keystore/KeyProtection;
+PLandroid/security/keystore/KeyProtection$Builder;->setBlockModes([Ljava/lang/String;)Landroid/security/keystore/KeyProtection$Builder;
+PLandroid/security/keystore/KeyProtection$Builder;->setEncryptionPaddings([Ljava/lang/String;)Landroid/security/keystore/KeyProtection$Builder;
+PLandroid/security/keystore/KeyProtection;-><init>(Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;I[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZZIZZZJZZZZ)V
+PLandroid/security/keystore/KeyProtection;-><init>(Ljava/util/Date;Ljava/util/Date;Ljava/util/Date;I[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZZIZZZJZZZZLandroid/security/keystore/KeyProtection$1;)V
+PLandroid/security/keystore/KeyProtection;->getBlockModes()[Ljava/lang/String;
+PLandroid/security/keystore/KeyProtection;->getEncryptionPaddings()[Ljava/lang/String;
+PLandroid/security/keystore/KeyProtection;->getKeyValidityForConsumptionEnd()Ljava/util/Date;
+PLandroid/security/keystore/KeyProtection;->getKeyValidityForOriginationEnd()Ljava/util/Date;
+PLandroid/security/keystore/KeyProtection;->getKeyValidityStart()Ljava/util/Date;
+PLandroid/security/keystore/KeyProtection;->getPurposes()I
+PLandroid/security/keystore/KeyProtection;->getSignaturePaddings()[Ljava/lang/String;
+PLandroid/security/keystore/KeyProtection;->isCriticalToDeviceEncryption()Z
+PLandroid/security/keystore/KeyProtection;->isDigestsSpecified()Z
+PLandroid/security/keystore/KeyProtection;->isRandomizedEncryptionRequired()Z
+PLandroid/security/keystore/KeyProtection;->isStrongBoxBacked()Z
+PLandroid/security/keystore/KeyProtection;->isUnlockedDeviceRequired()Z
+PLandroid/security/keystore/KeyProtection;->isUserAuthenticationRequired()Z
+PLandroid/security/keystore/KeyProtection;->isUserConfirmationRequired()Z
+PLandroid/security/keystore/KeyProtection;->isUserPresenceRequired()Z
HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;-><init>(Landroid/security/KeyStore;Landroid/os/IBinder;)V
HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;->finish([B[B[B)Landroid/security/keymaster/OperationResult;
HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;->update([B)Landroid/security/keymaster/OperationResult;
@@ -6088,24 +19655,168 @@ HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->doFinal([
HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->flush()[B
HSPLandroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->update([BII)[B
HSPLandroid/security/keystore/KeyStoreCryptoOperationUtils;->getExceptionForCipherInit(Landroid/security/KeyStore;Landroid/security/keystore/AndroidKeyStoreKey;I)Ljava/security/GeneralSecurityException;
-PLandroid/security/keystore/KeyStoreCryptoOperationUtils;->getInvalidKeyExceptionForInit(Landroid/security/KeyStore;Landroid/security/keystore/AndroidKeyStoreKey;I)Ljava/security/InvalidKeyException;
+HSPLandroid/security/keystore/KeyStoreCryptoOperationUtils;->getInvalidKeyExceptionForInit(Landroid/security/KeyStore;Landroid/security/keystore/AndroidKeyStoreKey;I)Ljava/security/InvalidKeyException;
HSPLandroid/security/keystore/KeyStoreCryptoOperationUtils;->getRandomBytesToMixIntoKeystoreRng(Ljava/security/SecureRandom;I)[B
+HSPLandroid/security/keystore/KeyStoreCryptoOperationUtils;->getRng()Ljava/security/SecureRandom;
+PLandroid/security/keystore/KeymasterUtils;->addMinMacLengthAuthorizationIfNecessary(Landroid/security/keymaster/KeymasterArguments;I[I[I)V
HSPLandroid/security/keystore/KeymasterUtils;->addUserAuthArgs(Landroid/security/keymaster/KeymasterArguments;Landroid/security/keystore/UserAuthArgs;)V
+HSPLandroid/security/keystore/KeymasterUtils;->getDigestOutputSizeBits(I)I
+HPLandroid/security/keystore/KeymasterUtils;->getRootSid()J
+PLandroid/security/keystore/KeymasterUtils;->isKeymasterBlockModeIndCpaCompatibleWithSymmetricCrypto(I)Z
HSPLandroid/security/keystore/KeystoreResponse$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keystore/KeystoreResponse;
HSPLandroid/security/keystore/KeystoreResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/security/keystore/KeystoreResponse;-><init>(ILjava/lang/String;)V
HSPLandroid/security/keystore/KeystoreResponse;->getErrorCode()I
+HSPLandroid/security/keystore/ParcelableKeyGenParameterSpec$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keystore/ParcelableKeyGenParameterSpec;
+HSPLandroid/security/keystore/ParcelableKeyGenParameterSpec$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/security/keystore/ParcelableKeyGenParameterSpec;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/security/keystore/ParcelableKeyGenParameterSpec;-><init>(Landroid/os/Parcel;Landroid/security/keystore/ParcelableKeyGenParameterSpec$1;)V
+HSPLandroid/security/keystore/ParcelableKeyGenParameterSpec;-><init>(Landroid/security/keystore/KeyGenParameterSpec;)V
+HSPLandroid/security/keystore/ParcelableKeyGenParameterSpec;->getSpec()Landroid/security/keystore/KeyGenParameterSpec;
+HSPLandroid/security/keystore/ParcelableKeyGenParameterSpec;->readDateOrNull(Landroid/os/Parcel;)Ljava/util/Date;
+HSPLandroid/security/keystore/ParcelableKeyGenParameterSpec;->writeOptionalDate(Landroid/os/Parcel;Ljava/util/Date;)V
+HSPLandroid/security/keystore/ParcelableKeyGenParameterSpec;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/security/keystore/UserNotAuthenticatedException;-><init>()V
HSPLandroid/security/keystore/Utils;->cloneIfNotNull(Ljava/util/Date;)Ljava/util/Date;
HSPLandroid/security/keystore/Utils;->cloneIfNotNull([B)[B
+PLandroid/security/keystore/recovery/KeyChainProtectionParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keystore/recovery/KeyChainProtectionParams;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams$Builder;-><init>()V
+PLandroid/security/keystore/recovery/KeyChainProtectionParams$Builder;->build()Landroid/security/keystore/recovery/KeyChainProtectionParams;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams$Builder;->setKeyDerivationParams(Landroid/security/keystore/recovery/KeyDerivationParams;)Landroid/security/keystore/recovery/KeyChainProtectionParams$Builder;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams$Builder;->setLockScreenUiFormat(I)Landroid/security/keystore/recovery/KeyChainProtectionParams$Builder;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams$Builder;->setSecret([B)Landroid/security/keystore/recovery/KeyChainProtectionParams$Builder;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams$Builder;->setUserSecretType(I)Landroid/security/keystore/recovery/KeyChainProtectionParams$Builder;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;-><init>()V
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;-><init>(Landroid/os/Parcel;)V
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;-><init>(Landroid/security/keystore/recovery/KeyChainProtectionParams$1;)V
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$100(Landroid/security/keystore/recovery/KeyChainProtectionParams;)Ljava/lang/Integer;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$102(Landroid/security/keystore/recovery/KeyChainProtectionParams;Ljava/lang/Integer;)Ljava/lang/Integer;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$200(Landroid/security/keystore/recovery/KeyChainProtectionParams;)Ljava/lang/Integer;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$202(Landroid/security/keystore/recovery/KeyChainProtectionParams;Ljava/lang/Integer;)Ljava/lang/Integer;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$300(Landroid/security/keystore/recovery/KeyChainProtectionParams;)Landroid/security/keystore/recovery/KeyDerivationParams;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$302(Landroid/security/keystore/recovery/KeyChainProtectionParams;Landroid/security/keystore/recovery/KeyDerivationParams;)Landroid/security/keystore/recovery/KeyDerivationParams;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$400(Landroid/security/keystore/recovery/KeyChainProtectionParams;)[B
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->access$402(Landroid/security/keystore/recovery/KeyChainProtectionParams;[B)[B
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->getKeyDerivationParams()Landroid/security/keystore/recovery/KeyDerivationParams;
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->getLockScreenUiFormat()I
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->getUserSecretType()I
+PLandroid/security/keystore/recovery/KeyChainProtectionParams;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/security/keystore/recovery/KeyChainSnapshot$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keystore/recovery/KeyChainSnapshot;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;-><init>()V
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->build()Landroid/security/keystore/recovery/KeyChainSnapshot;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setCounterId(J)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setEncryptedRecoveryKeyBlob([B)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setKeyChainProtectionParams(Ljava/util/List;)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setMaxAttempts(I)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setServerParams([B)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setSnapshotVersion(I)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setTrustedHardwareCertPath(Ljava/security/cert/CertPath;)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot$Builder;->setWrappedApplicationKeys(Ljava/util/List;)Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;-><init>()V
+PLandroid/security/keystore/recovery/KeyChainSnapshot;-><init>(Landroid/os/Parcel;)V
+PLandroid/security/keystore/recovery/KeyChainSnapshot;-><init>(Landroid/security/keystore/recovery/KeyChainSnapshot$1;)V
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$102(Landroid/security/keystore/recovery/KeyChainSnapshot;I)I
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$202(Landroid/security/keystore/recovery/KeyChainSnapshot;I)I
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$302(Landroid/security/keystore/recovery/KeyChainSnapshot;J)J
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$400(Landroid/security/keystore/recovery/KeyChainSnapshot;)[B
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$402(Landroid/security/keystore/recovery/KeyChainSnapshot;[B)[B
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$500(Landroid/security/keystore/recovery/KeyChainSnapshot;)Landroid/security/keystore/recovery/RecoveryCertPath;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$502(Landroid/security/keystore/recovery/KeyChainSnapshot;Landroid/security/keystore/recovery/RecoveryCertPath;)Landroid/security/keystore/recovery/RecoveryCertPath;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$600(Landroid/security/keystore/recovery/KeyChainSnapshot;)Ljava/util/List;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$602(Landroid/security/keystore/recovery/KeyChainSnapshot;Ljava/util/List;)Ljava/util/List;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$700(Landroid/security/keystore/recovery/KeyChainSnapshot;)Ljava/util/List;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$702(Landroid/security/keystore/recovery/KeyChainSnapshot;Ljava/util/List;)Ljava/util/List;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$800(Landroid/security/keystore/recovery/KeyChainSnapshot;)[B
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->access$802(Landroid/security/keystore/recovery/KeyChainSnapshot;[B)[B
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->getCounterId()J
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->getEncryptedRecoveryKeyBlob()[B
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->getKeyChainProtectionParams()Ljava/util/List;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->getMaxAttempts()I
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->getServerParams()[B
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->getSnapshotVersion()I
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->getTrustedHardwareCertPath()Ljava/security/cert/CertPath;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->getWrappedApplicationKeys()Ljava/util/List;
+PLandroid/security/keystore/recovery/KeyChainSnapshot;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/security/keystore/recovery/KeyDerivationParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keystore/recovery/KeyDerivationParams;
+PLandroid/security/keystore/recovery/KeyDerivationParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/security/keystore/recovery/KeyDerivationParams;-><init>(I[B)V
+PLandroid/security/keystore/recovery/KeyDerivationParams;-><init>(I[BI)V
+PLandroid/security/keystore/recovery/KeyDerivationParams;-><init>(Landroid/os/Parcel;)V
+PLandroid/security/keystore/recovery/KeyDerivationParams;->createSha256Params([B)Landroid/security/keystore/recovery/KeyDerivationParams;
+PLandroid/security/keystore/recovery/KeyDerivationParams;->getAlgorithm()I
+PLandroid/security/keystore/recovery/KeyDerivationParams;->getMemoryDifficulty()I
+PLandroid/security/keystore/recovery/KeyDerivationParams;->getSalt()[B
+PLandroid/security/keystore/recovery/KeyDerivationParams;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/security/keystore/recovery/RecoveryCertPath$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keystore/recovery/RecoveryCertPath;
+PLandroid/security/keystore/recovery/RecoveryCertPath$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/security/keystore/recovery/RecoveryCertPath;-><init>(Landroid/os/Parcel;)V
+PLandroid/security/keystore/recovery/RecoveryCertPath;-><init>(Landroid/os/Parcel;Landroid/security/keystore/recovery/RecoveryCertPath$1;)V
+PLandroid/security/keystore/recovery/RecoveryCertPath;-><init>([B)V
+PLandroid/security/keystore/recovery/RecoveryCertPath;->createRecoveryCertPath(Ljava/security/cert/CertPath;)Landroid/security/keystore/recovery/RecoveryCertPath;
+PLandroid/security/keystore/recovery/RecoveryCertPath;->decodeCertPath([B)Ljava/security/cert/CertPath;
+PLandroid/security/keystore/recovery/RecoveryCertPath;->encodeCertPath(Ljava/security/cert/CertPath;)[B
+PLandroid/security/keystore/recovery/RecoveryCertPath;->getCertPath()Ljava/security/cert/CertPath;
+PLandroid/security/keystore/recovery/RecoveryCertPath;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/security/keystore/recovery/RecoveryController;->generateKey(Ljava/lang/String;)Ljava/security/Key;
+PLandroid/security/keystore/recovery/RecoveryController;->getAliases()Ljava/util/List;
+PLandroid/security/keystore/recovery/RecoveryController;->getInstance(Landroid/content/Context;)Landroid/security/keystore/recovery/RecoveryController;
+HPLandroid/security/keystore/recovery/RecoveryController;->getKey(Ljava/lang/String;)Ljava/security/Key;
+PLandroid/security/keystore/recovery/RecoveryController;->getKeyChainSnapshot()Landroid/security/keystore/recovery/KeyChainSnapshot;
+HPLandroid/security/keystore/recovery/RecoveryController;->getKeyFromGrant(Ljava/lang/String;)Ljava/security/Key;
+PLandroid/security/keystore/recovery/RecoveryController;->getRecoverySecretTypes()[I
+HPLandroid/security/keystore/recovery/RecoveryController;->getRecoveryStatus(Ljava/lang/String;)I
+PLandroid/security/keystore/recovery/RecoveryController;->initRecoveryService(Ljava/lang/String;[B[B)V
+HPLandroid/security/keystore/recovery/RecoveryController;->isRecoverableKeyStoreEnabled(Landroid/content/Context;)Z
+PLandroid/security/keystore/recovery/RecoveryController;->setRecoverySecretTypes([I)V
+HPLandroid/security/keystore/recovery/RecoveryController;->setRecoveryStatus(Ljava/lang/String;I)V
+PLandroid/security/keystore/recovery/RecoveryController;->setServerParams([B)V
+PLandroid/security/keystore/recovery/RecoveryController;->setSnapshotCreatedPendingIntent(Landroid/app/PendingIntent;)V
+PLandroid/security/keystore/recovery/TrustedRootCertificates;-><clinit>()V
+PLandroid/security/keystore/recovery/TrustedRootCertificates;->constructRootCertificateMap()Landroid/util/ArrayMap;
+PLandroid/security/keystore/recovery/TrustedRootCertificates;->getRootCertificate(Ljava/lang/String;)Ljava/security/cert/X509Certificate;
+PLandroid/security/keystore/recovery/TrustedRootCertificates;->getRootCertificates()Ljava/util/Map;
+PLandroid/security/keystore/recovery/TrustedRootCertificates;->parseBase64Certificate(Ljava/lang/String;)Ljava/security/cert/X509Certificate;
+PLandroid/security/keystore/recovery/WrappedApplicationKey$1;->createFromParcel(Landroid/os/Parcel;)Landroid/security/keystore/recovery/WrappedApplicationKey;
+PLandroid/security/keystore/recovery/WrappedApplicationKey$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/security/keystore/recovery/WrappedApplicationKey$Builder;-><init>()V
+PLandroid/security/keystore/recovery/WrappedApplicationKey$Builder;->build()Landroid/security/keystore/recovery/WrappedApplicationKey;
+PLandroid/security/keystore/recovery/WrappedApplicationKey$Builder;->setAlias(Ljava/lang/String;)Landroid/security/keystore/recovery/WrappedApplicationKey$Builder;
+PLandroid/security/keystore/recovery/WrappedApplicationKey$Builder;->setEncryptedKeyMaterial([B)Landroid/security/keystore/recovery/WrappedApplicationKey$Builder;
+PLandroid/security/keystore/recovery/WrappedApplicationKey$Builder;->setMetadata([B)Landroid/security/keystore/recovery/WrappedApplicationKey$Builder;
+PLandroid/security/keystore/recovery/WrappedApplicationKey;-><init>()V
+PLandroid/security/keystore/recovery/WrappedApplicationKey;-><init>(Landroid/os/Parcel;)V
+PLandroid/security/keystore/recovery/WrappedApplicationKey;-><init>(Landroid/security/keystore/recovery/WrappedApplicationKey$1;)V
+PLandroid/security/keystore/recovery/WrappedApplicationKey;->access$100(Landroid/security/keystore/recovery/WrappedApplicationKey;)Ljava/lang/String;
+PLandroid/security/keystore/recovery/WrappedApplicationKey;->access$102(Landroid/security/keystore/recovery/WrappedApplicationKey;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/security/keystore/recovery/WrappedApplicationKey;->access$200(Landroid/security/keystore/recovery/WrappedApplicationKey;)[B
+PLandroid/security/keystore/recovery/WrappedApplicationKey;->access$202(Landroid/security/keystore/recovery/WrappedApplicationKey;[B)[B
+PLandroid/security/keystore/recovery/WrappedApplicationKey;->access$302(Landroid/security/keystore/recovery/WrappedApplicationKey;[B)[B
+PLandroid/security/keystore/recovery/WrappedApplicationKey;->getAlias()Ljava/lang/String;
+PLandroid/security/keystore/recovery/WrappedApplicationKey;->getEncryptedKeyMaterial()[B
+PLandroid/security/keystore/recovery/WrappedApplicationKey;->getMetadata()[B
+PLandroid/security/keystore/recovery/WrappedApplicationKey;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/security/keystore/recovery/X509CertificateParsingUtils;->decodeBase64(Ljava/lang/String;)[B
+PLandroid/security/keystore/recovery/X509CertificateParsingUtils;->decodeBase64Cert(Ljava/lang/String;)Ljava/security/cert/X509Certificate;
+PLandroid/security/keystore/recovery/X509CertificateParsingUtils;->decodeCert(Ljava/io/InputStream;)Ljava/security/cert/X509Certificate;
+PLandroid/security/keystore/recovery/X509CertificateParsingUtils;->decodeCert([B)Ljava/security/cert/X509Certificate;
HSPLandroid/security/net/config/ApplicationConfig;-><init>(Landroid/security/net/config/ConfigSource;)V
HSPLandroid/security/net/config/ApplicationConfig;->ensureInitialized()V
HSPLandroid/security/net/config/ApplicationConfig;->getConfigForHostname(Ljava/lang/String;)Landroid/security/net/config/NetworkSecurityConfig;
HSPLandroid/security/net/config/ApplicationConfig;->getDefaultInstance()Landroid/security/net/config/ApplicationConfig;
HSPLandroid/security/net/config/ApplicationConfig;->getTrustManager()Ljavax/net/ssl/X509TrustManager;
+HSPLandroid/security/net/config/ApplicationConfig;->isCleartextTrafficPermitted()Z
HSPLandroid/security/net/config/ApplicationConfig;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
HSPLandroid/security/net/config/ApplicationConfig;->setDefaultInstance(Landroid/security/net/config/ApplicationConfig;)V
+HSLandroid/security/net/config/CertificatesEntryRef;-><init>(Landroid/security/net/config/CertificateSource;Z)V
+HPLandroid/security/net/config/CertificatesEntryRef;->findAllCertificatesByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
+HPLandroid/security/net/config/CertificatesEntryRef;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Landroid/security/net/config/TrustAnchor;
+HSPLandroid/security/net/config/CertificatesEntryRef;->overridesPins()Z
HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;-><init>(Landroid/security/net/config/ApplicationConfig;)V
HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;->isCertificateTransparencyVerificationRequired(Ljava/lang/String;)Z
-PLandroid/security/net/config/ConfigNetworkSecurityPolicy;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
+HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;->isCleartextTrafficPermitted()Z
+HSPLandroid/security/net/config/ConfigNetworkSecurityPolicy;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
HSPLandroid/security/net/config/DirectoryCertificateSource$1;-><init>(Landroid/security/net/config/DirectoryCertificateSource;Ljava/security/cert/X509Certificate;)V
HSPLandroid/security/net/config/DirectoryCertificateSource$3;-><init>(Landroid/security/net/config/DirectoryCertificateSource;Ljava/security/cert/X509Certificate;)V
HSPLandroid/security/net/config/DirectoryCertificateSource$3;->match(Ljava/security/cert/X509Certificate;)Z
@@ -6126,12 +19837,24 @@ HSPLandroid/security/net/config/ManifestConfigSource;-><init>(Landroid/content/C
HSPLandroid/security/net/config/ManifestConfigSource;->getConfigSource()Landroid/security/net/config/ConfigSource;
HSPLandroid/security/net/config/ManifestConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig;
HSPLandroid/security/net/config/ManifestConfigSource;->getPerDomainConfigs()Ljava/util/Set;
+HSLandroid/security/net/config/NetworkSecurityConfig$1;-><init>(Landroid/security/net/config/NetworkSecurityConfig;)V
+HSPLandroid/security/net/config/NetworkSecurityConfig$1;->compare(Landroid/security/net/config/CertificatesEntryRef;Landroid/security/net/config/CertificatesEntryRef;)I
+HSPLandroid/security/net/config/NetworkSecurityConfig$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSLandroid/security/net/config/NetworkSecurityConfig$Builder;-><init>()V
+HSLandroid/security/net/config/NetworkSecurityConfig$Builder;->addCertificatesEntryRef(Landroid/security/net/config/CertificatesEntryRef;)Landroid/security/net/config/NetworkSecurityConfig$Builder;
+HSLandroid/security/net/config/NetworkSecurityConfig$Builder;->build()Landroid/security/net/config/NetworkSecurityConfig;
HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->getEffectiveCertificatesEntryRefs()Ljava/util/List;
HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->getEffectiveCleartextTrafficPermitted()Z
HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->getEffectiveHstsEnforced()Z
HSPLandroid/security/net/config/NetworkSecurityConfig$Builder;->getEffectivePinSet()Landroid/security/net/config/PinSet;
+HSLandroid/security/net/config/NetworkSecurityConfig$Builder;->getParent()Landroid/security/net/config/NetworkSecurityConfig$Builder;
+HSLandroid/security/net/config/NetworkSecurityConfig$Builder;->setCleartextTrafficPermitted(Z)Landroid/security/net/config/NetworkSecurityConfig$Builder;
+HSLandroid/security/net/config/NetworkSecurityConfig$Builder;->setHstsEnforced(Z)Landroid/security/net/config/NetworkSecurityConfig$Builder;
+HSLandroid/security/net/config/NetworkSecurityConfig$Builder;->setParent(Landroid/security/net/config/NetworkSecurityConfig$Builder;)Landroid/security/net/config/NetworkSecurityConfig$Builder;
HSPLandroid/security/net/config/NetworkSecurityConfig;-><init>(ZZLandroid/security/net/config/PinSet;Ljava/util/List;)V
HSPLandroid/security/net/config/NetworkSecurityConfig;-><init>(ZZLandroid/security/net/config/PinSet;Ljava/util/List;Landroid/security/net/config/NetworkSecurityConfig$1;)V
+HPLandroid/security/net/config/NetworkSecurityConfig;->findAllCertificatesByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
+HPLandroid/security/net/config/NetworkSecurityConfig;->findTrustAnchorBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Landroid/security/net/config/TrustAnchor;
HSPLandroid/security/net/config/NetworkSecurityConfig;->getDefaultBuilder(Landroid/content/pm/ApplicationInfo;)Landroid/security/net/config/NetworkSecurityConfig$Builder;
HSPLandroid/security/net/config/NetworkSecurityConfig;->getTrustManager()Landroid/security/net/config/NetworkSecurityTrustManager;
HSPLandroid/security/net/config/NetworkSecurityConfig;->isCleartextTrafficPermitted()Z
@@ -6141,20 +19864,34 @@ HSPLandroid/security/net/config/NetworkSecurityTrustManager;-><init>(Landroid/se
HSPLandroid/security/net/config/NetworkSecurityTrustManager;->checkPins(Ljava/util/List;)V
HSPLandroid/security/net/config/NetworkSecurityTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
HSPLandroid/security/net/config/NetworkSecurityTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V
+HSPLandroid/security/net/config/ResourceCertificateSource;-><init>(ILandroid/content/Context;)V
+HSPLandroid/security/net/config/ResourceCertificateSource;->ensureInitialized()V
+HSPLandroid/security/net/config/ResourceCertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
+HSPLandroid/security/net/config/ResourceCertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
+HSLandroid/security/net/config/RootTrustManager;-><init>(Landroid/security/net/config/ApplicationConfig;)V
HSPLandroid/security/net/config/RootTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
HSPLandroid/security/net/config/RootTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V
HSPLandroid/security/net/config/RootTrustManagerFactorySpi;-><init>()V
HSPLandroid/security/net/config/RootTrustManagerFactorySpi;->engineGetTrustManagers()[Ljavax/net/ssl/TrustManager;
HSPLandroid/security/net/config/RootTrustManagerFactorySpi;->engineInit(Ljava/security/KeyStore;)V
HSPLandroid/security/net/config/SystemCertificateSource$NoPreloadHolder;-><clinit>()V
+HSLandroid/security/net/config/SystemCertificateSource$NoPreloadHolder;->access$100()Landroid/security/net/config/SystemCertificateSource;
HSPLandroid/security/net/config/SystemCertificateSource;-><init>()V
HSPLandroid/security/net/config/SystemCertificateSource;-><init>(Landroid/security/net/config/SystemCertificateSource$1;)V
HSPLandroid/security/net/config/SystemCertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
HSPLandroid/security/net/config/SystemCertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
+HSLandroid/security/net/config/SystemCertificateSource;->getInstance()Landroid/security/net/config/SystemCertificateSource;
HSPLandroid/security/net/config/SystemCertificateSource;->isCertMarkedAsRemoved(Ljava/lang/String;)Z
+PLandroid/security/net/config/TrustedCertificateStoreAdapter;-><init>(Landroid/security/net/config/NetworkSecurityConfig;)V
HSPLandroid/security/net/config/TrustedCertificateStoreAdapter;->findAllIssuers(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
HSPLandroid/security/net/config/TrustedCertificateStoreAdapter;->getTrustAnchor(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
+HSPLandroid/security/net/config/UserCertificateSource$NoPreloadHolder;-><clinit>()V
+HSPLandroid/security/net/config/UserCertificateSource;-><init>()V
+HSPLandroid/security/net/config/UserCertificateSource;-><init>(Landroid/security/net/config/UserCertificateSource$1;)V
+HSPLandroid/security/net/config/UserCertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
+HSPLandroid/security/net/config/UserCertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
HSPLandroid/security/net/config/XmlConfigSource;-><init>(Landroid/content/Context;ILandroid/content/pm/ApplicationInfo;)V
+HSLandroid/security/net/config/XmlConfigSource;->addDebugAnchorsIfNeeded(Landroid/security/net/config/NetworkSecurityConfig$Builder;Landroid/security/net/config/NetworkSecurityConfig$Builder;)V
HSPLandroid/security/net/config/XmlConfigSource;->ensureInitialized()V
HSPLandroid/security/net/config/XmlConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig;
HSPLandroid/security/net/config/XmlConfigSource;->getPerDomainConfigs()Ljava/util/Set;
@@ -6163,139 +19900,1061 @@ HSPLandroid/security/net/config/XmlConfigSource;->parseConfigEntry(Landroid/cont
HSPLandroid/security/net/config/XmlConfigSource;->parseDomain(Landroid/content/res/XmlResourceParser;Ljava/util/Set;)Landroid/security/net/config/Domain;
HSPLandroid/security/net/config/XmlConfigSource;->parseNetworkSecurityConfig(Landroid/content/res/XmlResourceParser;)V
HSPLandroid/security/net/config/XmlConfigSource;->parseTrustAnchors(Landroid/content/res/XmlResourceParser;Z)Ljava/util/Collection;
+PLandroid/service/appprediction/IPredictionService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/appprediction/IPredictionService$Stub$Proxy;->notifyAppTargetEvent(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
+PLandroid/service/appprediction/IPredictionService$Stub$Proxy;->onCreatePredictionSession(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;)V
+PLandroid/service/appprediction/IPredictionService$Stub$Proxy;->onDestroyPredictionSession(Landroid/app/prediction/AppPredictionSessionId;)V
+PLandroid/service/appprediction/IPredictionService$Stub$Proxy;->registerPredictionUpdates(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
+PLandroid/service/appprediction/IPredictionService$Stub$Proxy;->requestPredictionUpdate(Landroid/app/prediction/AppPredictionSessionId;)V
+PLandroid/service/appprediction/IPredictionService$Stub$Proxy;->unregisterPredictionUpdates(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
+HPLandroid/service/appprediction/IPredictionService$Stub;-><init>()V
+HPLandroid/service/appprediction/IPredictionService$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/service/appprediction/IPredictionService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/appprediction/IPredictionService;
+HPLandroid/service/appprediction/IPredictionService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/service/autofill/AutofillServiceInfo;-><init>(Landroid/content/Context;Landroid/content/ComponentName;I)V
+PLandroid/service/autofill/AutofillServiceInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ServiceInfo;)V
+PLandroid/service/autofill/AutofillServiceInfo;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLandroid/service/autofill/AutofillServiceInfo;->getCompatibilityPackages()Landroid/util/ArrayMap;
+PLandroid/service/autofill/AutofillServiceInfo;->getServiceInfo()Landroid/content/pm/ServiceInfo;
+PLandroid/service/autofill/AutofillServiceInfo;->getServiceInfoOrThrow(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;
+PLandroid/service/autofill/AutofillServiceInfo;->parseCompatibilityPackages(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/util/ArrayMap;
+PLandroid/service/autofill/FillContext$1;-><init>()V
+HPLandroid/service/autofill/FillContext$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/autofill/FillContext;
+HPLandroid/service/autofill/FillContext$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/service/autofill/FillContext;-><clinit>()V
+PLandroid/service/autofill/FillContext;-><init>(ILandroid/app/assist/AssistStructure;Landroid/view/autofill/AutofillId;)V
+HPLandroid/service/autofill/FillContext;->findViewNodesByAutofillIds([Landroid/view/autofill/AutofillId;)[Landroid/app/assist/AssistStructure$ViewNode;
+PLandroid/service/autofill/FillContext;->getRequestId()I
+PLandroid/service/autofill/FillContext;->getStructure()Landroid/app/assist/AssistStructure;
+PLandroid/service/autofill/FillContext;->toString()Ljava/lang/String;
+PLandroid/service/autofill/FillContext;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/service/autofill/FillRequest$1;-><init>()V
+HPLandroid/service/autofill/FillRequest$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/autofill/FillRequest;
+HPLandroid/service/autofill/FillRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/service/autofill/FillRequest;-><clinit>()V
+PLandroid/service/autofill/FillRequest;-><init>(ILjava/util/List;Landroid/os/Bundle;I)V
+HPLandroid/service/autofill/FillRequest;->getClientState()Landroid/os/Bundle;
+HPLandroid/service/autofill/FillRequest;->getFillContexts()Ljava/util/List;
+PLandroid/service/autofill/FillRequest;->getFlags()I
+PLandroid/service/autofill/FillRequest;->getId()I
+PLandroid/service/autofill/FillRequest;->onConstructed()V
+PLandroid/service/autofill/FillRequest;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/service/autofill/IAutoFillService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/autofill/IAutoFillService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/service/autofill/IAutoFillService$Stub$Proxy;->onConnectedStateChanged(Z)V
+PLandroid/service/autofill/IAutoFillService$Stub$Proxy;->onFillRequest(Landroid/service/autofill/FillRequest;Landroid/service/autofill/IFillCallback;)V
+HPLandroid/service/autofill/IAutoFillService$Stub;-><init>()V
+HPLandroid/service/autofill/IAutoFillService$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/service/autofill/IAutoFillService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/autofill/IAutoFillService;
+HPLandroid/service/autofill/IAutoFillService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/service/autofill/IFillCallback$Stub;-><init>()V
+PLandroid/service/autofill/IFillCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/service/autofill/IFillCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/autofill/IFillCallback;
+PLandroid/service/autofill/IFillCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/service/autofill/UserData$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/autofill/UserData;
+PLandroid/service/autofill/UserData$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/service/autofill/UserData$Builder;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/service/autofill/UserData$Builder;->access$000(Landroid/service/autofill/UserData$Builder;)Ljava/lang/String;
+PLandroid/service/autofill/UserData$Builder;->access$100(Landroid/service/autofill/UserData$Builder;)Ljava/util/ArrayList;
+PLandroid/service/autofill/UserData$Builder;->access$200(Landroid/service/autofill/UserData$Builder;)Ljava/util/ArrayList;
+PLandroid/service/autofill/UserData$Builder;->access$300(Landroid/service/autofill/UserData$Builder;)Ljava/lang/String;
+PLandroid/service/autofill/UserData$Builder;->access$400(Landroid/service/autofill/UserData$Builder;)Landroid/os/Bundle;
+PLandroid/service/autofill/UserData$Builder;->access$500(Landroid/service/autofill/UserData$Builder;)Landroid/util/ArrayMap;
+PLandroid/service/autofill/UserData$Builder;->access$600(Landroid/service/autofill/UserData$Builder;)Landroid/util/ArrayMap;
+PLandroid/service/autofill/UserData$Builder;->addMapping(Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/service/autofill/UserData$Builder;->build()Landroid/service/autofill/UserData;
+PLandroid/service/autofill/UserData$Builder;->checkNotEmpty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/service/autofill/UserData$Builder;->checkValidValue(Ljava/lang/String;)V
+PLandroid/service/autofill/UserData$Builder;->setFieldClassificationAlgorithm(Ljava/lang/String;Landroid/os/Bundle;)Landroid/service/autofill/UserData$Builder;
+PLandroid/service/autofill/UserData$Builder;->throwIfDestroyed()V
+PLandroid/service/autofill/UserData;-><init>(Landroid/service/autofill/UserData$Builder;)V
+PLandroid/service/autofill/UserData;-><init>(Landroid/service/autofill/UserData$Builder;Landroid/service/autofill/UserData$1;)V
+PLandroid/service/autofill/UserData;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLandroid/service/autofill/UserData;->dumpConstraints(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLandroid/service/autofill/UserData;->getInt(Ljava/lang/String;I)I
+PLandroid/service/autofill/UserData;->getMaxCategoryCount()I
+PLandroid/service/autofill/UserData;->getMaxFieldClassificationIdsSize()I
+PLandroid/service/autofill/UserData;->getMaxUserDataSize()I
+PLandroid/service/autofill/UserData;->getMaxValueLength()I
+PLandroid/service/autofill/UserData;->getMinValueLength()I
+HPLandroid/service/autofill/UserData;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/service/autofill/augmented/IAugmentedAutofillService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/autofill/augmented/IAugmentedAutofillService$Stub$Proxy;->onConnected(ZZ)V
+PLandroid/service/autofill/augmented/IAugmentedAutofillService$Stub$Proxy;->onDestroyAllFillWindowsRequest()V
+PLandroid/service/autofill/augmented/IAugmentedAutofillService$Stub$Proxy;->onDisconnected()V
+PLandroid/service/autofill/augmented/IAugmentedAutofillService$Stub$Proxy;->onFillRequest(ILandroid/os/IBinder;ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLandroid/service/autofill/augmented/IFillCallback;)V
+HPLandroid/service/autofill/augmented/IAugmentedAutofillService$Stub;-><init>()V
+HPLandroid/service/autofill/augmented/IAugmentedAutofillService$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/service/autofill/augmented/IAugmentedAutofillService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/autofill/augmented/IAugmentedAutofillService;
+HPLandroid/service/autofill/augmented/IAugmentedAutofillService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/service/autofill/augmented/IFillCallback$Stub;-><init>()V
+PLandroid/service/autofill/augmented/IFillCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/service/autofill/augmented/IFillCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/autofill/augmented/IFillCallback;
+PLandroid/service/autofill/augmented/IFillCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/service/carrier/CarrierIdentifier;->toString()Ljava/lang/String;
+HPLandroid/service/carrier/CarrierIdentifier;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/service/carrier/ICarrierService$Stub$Proxy;->getCarrierConfig(Landroid/service/carrier/CarrierIdentifier;Landroid/os/ResultReceiver;)V
+HPLandroid/service/carrier/ICarrierService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/carrier/ICarrierService;
+PLandroid/service/contentcapture/ActivityEvent$1;-><init>()V
+HPLandroid/service/contentcapture/ActivityEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/contentcapture/ActivityEvent;
+HPLandroid/service/contentcapture/ActivityEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/service/contentcapture/ActivityEvent;-><clinit>()V
+HPLandroid/service/contentcapture/ActivityEvent;-><init>(Landroid/content/ComponentName;I)V
+HPLandroid/service/contentcapture/ActivityEvent;->getComponentName()Landroid/content/ComponentName;
+HPLandroid/service/contentcapture/ActivityEvent;->getEventType()I
+HPLandroid/service/contentcapture/ActivityEvent;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/service/contentcapture/ContentCaptureServiceInfo;-><init>(Landroid/content/Context;Landroid/content/ComponentName;ZI)V
+PLandroid/service/contentcapture/ContentCaptureServiceInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ServiceInfo;)V
+PLandroid/service/contentcapture/ContentCaptureServiceInfo;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLandroid/service/contentcapture/ContentCaptureServiceInfo;->getServiceInfo()Landroid/content/pm/ServiceInfo;
+PLandroid/service/contentcapture/ContentCaptureServiceInfo;->getServiceInfoOrThrow(Landroid/content/ComponentName;ZI)Landroid/content/pm/ServiceInfo;
+PLandroid/service/contentcapture/ContentCaptureServiceInfo;->getSettingsActivity()Ljava/lang/String;
+HPLandroid/service/contentcapture/FlushMetrics$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/contentcapture/FlushMetrics;
+HPLandroid/service/contentcapture/FlushMetrics$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/service/contentcapture/FlushMetrics;-><init>()V
+HPLandroid/service/contentcapture/FlushMetrics;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/service/contentcapture/IContentCaptureService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/contentcapture/IContentCaptureService$Stub$Proxy;->onActivityEvent(Landroid/service/contentcapture/ActivityEvent;)V
+PLandroid/service/contentcapture/IContentCaptureService$Stub$Proxy;->onConnected(Landroid/os/IBinder;ZZ)V
+PLandroid/service/contentcapture/IContentCaptureService$Stub$Proxy;->onSessionFinished(I)V
+PLandroid/service/contentcapture/IContentCaptureService$Stub$Proxy;->onSessionStarted(Landroid/view/contentcapture/ContentCaptureContext;IILcom/android/internal/os/IResultReceiver;I)V
+HPLandroid/service/contentcapture/IContentCaptureService$Stub;-><init>()V
+HPLandroid/service/contentcapture/IContentCaptureService$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/service/contentcapture/IContentCaptureService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/contentcapture/IContentCaptureService;
+HPLandroid/service/contentcapture/IContentCaptureService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/service/contentcapture/IContentCaptureServiceCallback$Stub;-><init>()V
+PLandroid/service/contentcapture/IContentCaptureServiceCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/service/contentcapture/IContentCaptureServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/contentcapture/IContentCaptureServiceCallback;
+PLandroid/service/contentcapture/IContentCaptureServiceCallback$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/service/contentcapture/IContentCaptureServiceCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/dreams/DreamManagerInternal;-><init>()V
+HPLandroid/service/dreams/IDreamManager$Stub$Proxy;->finishSelf(Landroid/os/IBinder;Z)V
+HPLandroid/service/dreams/IDreamManager$Stub$Proxy;->forceAmbientDisplayEnabled(Z)V
+HSPLandroid/service/dreams/IDreamManager$Stub$Proxy;->getDefaultDreamComponent()Landroid/content/ComponentName;
+HSPLandroid/service/dreams/IDreamManager$Stub$Proxy;->getDreamComponents()[Landroid/content/ComponentName;
+HPLandroid/service/dreams/IDreamManager$Stub$Proxy;->isDreaming()Z
+HPLandroid/service/dreams/IDreamManager$Stub$Proxy;->startDozing(Landroid/os/IBinder;II)V
+HSPLandroid/service/dreams/IDreamManager$Stub;-><init>()V
HSPLandroid/service/dreams/IDreamManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/dreams/IDreamManager;
+PLandroid/service/dreams/IDreamManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/service/dreams/IDreamManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/service/dreams/IDreamService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/dreams/IDreamService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/service/dreams/IDreamService$Stub$Proxy;->attach(Landroid/os/IBinder;ZLandroid/os/IRemoteCallback;)V
+PLandroid/service/dreams/IDreamService$Stub$Proxy;->detach()V
+PLandroid/service/dreams/IDreamService$Stub$Proxy;->wakeUp()V
+HPLandroid/service/dreams/IDreamService$Stub;-><init>()V
+PLandroid/service/dreams/IDreamService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/dreams/IDreamService;
+HPLandroid/service/dreams/IDreamService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/euicc/GetEuiccProfileInfoListResult$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/euicc/GetEuiccProfileInfoListResult;
+HSPLandroid/service/euicc/GetEuiccProfileInfoListResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/service/euicc/GetEuiccProfileInfoListResult;-><init>(I[Landroid/service/euicc/EuiccProfileInfo;Z)V
+HSPLandroid/service/euicc/GetEuiccProfileInfoListResult;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/service/euicc/GetEuiccProfileInfoListResult;-><init>(Landroid/os/Parcel;Landroid/service/euicc/GetEuiccProfileInfoListResult$1;)V
+HSPLandroid/service/euicc/GetEuiccProfileInfoListResult;->getProfiles()Ljava/util/List;
+HSPLandroid/service/euicc/GetEuiccProfileInfoListResult;->getResult()I
+HSPLandroid/service/euicc/GetEuiccProfileInfoListResult;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/service/euicc/IEuiccService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/service/euicc/IEuiccService$Stub$Proxy;->getEuiccProfileInfoList(ILandroid/service/euicc/IGetEuiccProfileInfoListCallback;)V
+HSPLandroid/service/euicc/IEuiccService$Stub;-><init>()V
+HSPLandroid/service/euicc/IEuiccService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IEuiccService;
+HSPLandroid/service/euicc/IEuiccService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub;-><init>()V
+HSPLandroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IGetEuiccProfileInfoListCallback;
+HSPLandroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/service/gatekeeper/GateKeeperResponse$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/gatekeeper/GateKeeperResponse;
+PLandroid/service/gatekeeper/GateKeeperResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/service/gatekeeper/GateKeeperResponse;-><init>(I)V
+PLandroid/service/gatekeeper/GateKeeperResponse;->createOkResponse([BZ)Landroid/service/gatekeeper/GateKeeperResponse;
+PLandroid/service/gatekeeper/GateKeeperResponse;->getPayload()[B
+PLandroid/service/gatekeeper/GateKeeperResponse;->getResponseCode()I
+PLandroid/service/gatekeeper/GateKeeperResponse;->getShouldReEnroll()Z
+HSPLandroid/service/gatekeeper/IGateKeeperService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/gatekeeper/IGateKeeperService$Stub$Proxy;->getSecureUserId(I)J
+PLandroid/service/gatekeeper/IGateKeeperService$Stub$Proxy;->verifyChallenge(IJ[B[B)Landroid/service/gatekeeper/GateKeeperResponse;
+HSPLandroid/service/gatekeeper/IGateKeeperService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/gatekeeper/IGateKeeperService;
+HSPLandroid/service/media/IMediaBrowserService$Stub;-><init>()V
+HSPLandroid/service/media/IMediaBrowserService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;->onConnect(Ljava/lang/String;Landroid/media/session/MediaSession$Token;Landroid/os/Bundle;)V
+HSPLandroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;->onLoadChildrenWithOptions(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;Landroid/os/Bundle;)V
+HSPLandroid/service/media/IMediaBrowserServiceCallbacks$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/media/IMediaBrowserServiceCallbacks;
+HSPLandroid/service/media/MediaBrowserService$1;-><init>(Landroid/service/media/MediaBrowserService;Landroid/media/session/MediaSession$Token;)V
+HSPLandroid/service/media/MediaBrowserService$1;->run()V
+HSPLandroid/service/media/MediaBrowserService$3;-><init>(Landroid/service/media/MediaBrowserService;Ljava/lang/Object;Landroid/service/media/MediaBrowserService$ConnectionRecord;Ljava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/service/media/MediaBrowserService$3;->onResultSent(Ljava/lang/Object;I)V
+HSPLandroid/service/media/MediaBrowserService$3;->onResultSent(Ljava/util/List;I)V
+HSPLandroid/service/media/MediaBrowserService$BrowserRoot;-><init>(Ljava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/service/media/MediaBrowserService$BrowserRoot;->getExtras()Landroid/os/Bundle;
+HSPLandroid/service/media/MediaBrowserService$BrowserRoot;->getRootId()Ljava/lang/String;
+HSPLandroid/service/media/MediaBrowserService$ConnectionRecord;-><init>(Landroid/service/media/MediaBrowserService;)V
+HSPLandroid/service/media/MediaBrowserService$ConnectionRecord;-><init>(Landroid/service/media/MediaBrowserService;Landroid/service/media/MediaBrowserService$1;)V
+HSPLandroid/service/media/MediaBrowserService$Result;-><init>(Landroid/service/media/MediaBrowserService;Ljava/lang/Object;)V
+HSPLandroid/service/media/MediaBrowserService$Result;->isDone()Z
+HSPLandroid/service/media/MediaBrowserService$Result;->sendResult(Ljava/lang/Object;)V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder$1;-><init>(Landroid/service/media/MediaBrowserService$ServiceBinder;Landroid/service/media/IMediaBrowserServiceCallbacks;Ljava/lang/String;IILandroid/os/Bundle;)V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder$1;->run()V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder$2;-><init>(Landroid/service/media/MediaBrowserService$ServiceBinder;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder$2;->run()V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder$3;-><init>(Landroid/service/media/MediaBrowserService$ServiceBinder;Landroid/service/media/IMediaBrowserServiceCallbacks;Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;)V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder$3;->run()V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder$4;-><init>(Landroid/service/media/MediaBrowserService$ServiceBinder;Landroid/service/media/IMediaBrowserServiceCallbacks;Ljava/lang/String;Landroid/os/IBinder;)V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder$4;->run()V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder;-><init>(Landroid/service/media/MediaBrowserService;)V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder;-><init>(Landroid/service/media/MediaBrowserService;Landroid/service/media/MediaBrowserService$1;)V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder;->addSubscription(Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder;->addSubscriptionDeprecated(Ljava/lang/String;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder;->connect(Ljava/lang/String;Landroid/os/Bundle;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder;->disconnect(Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder;->removeSubscription(Ljava/lang/String;Landroid/os/IBinder;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+HSPLandroid/service/media/MediaBrowserService$ServiceBinder;->removeSubscriptionDeprecated(Ljava/lang/String;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
+HSPLandroid/service/media/MediaBrowserService;-><init>()V
+HSPLandroid/service/media/MediaBrowserService;->access$000(Landroid/service/media/MediaBrowserService;)Landroid/util/ArrayMap;
+HSPLandroid/service/media/MediaBrowserService;->access$100(Landroid/service/media/MediaBrowserService;)Landroid/os/Handler;
+HSPLandroid/service/media/MediaBrowserService;->access$200(Landroid/service/media/MediaBrowserService;Ljava/lang/String;I)Z
+HSPLandroid/service/media/MediaBrowserService;->access$402(Landroid/service/media/MediaBrowserService;Landroid/service/media/MediaBrowserService$ConnectionRecord;)Landroid/service/media/MediaBrowserService$ConnectionRecord;
+HSPLandroid/service/media/MediaBrowserService;->access$500(Landroid/service/media/MediaBrowserService;Ljava/lang/String;Landroid/service/media/MediaBrowserService$ConnectionRecord;Landroid/os/IBinder;Landroid/os/Bundle;)V
+HSPLandroid/service/media/MediaBrowserService;->access$600(Landroid/service/media/MediaBrowserService;Ljava/lang/String;Landroid/service/media/MediaBrowserService$ConnectionRecord;Landroid/os/IBinder;)Z
+HSPLandroid/service/media/MediaBrowserService;->addSubscription(Ljava/lang/String;Landroid/service/media/MediaBrowserService$ConnectionRecord;Landroid/os/IBinder;Landroid/os/Bundle;)V
+HSPLandroid/service/media/MediaBrowserService;->isValidPackage(Ljava/lang/String;I)Z
+HSPLandroid/service/media/MediaBrowserService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HSPLandroid/service/media/MediaBrowserService;->onCreate()V
+HSPLandroid/service/media/MediaBrowserService;->performLoadChildren(Ljava/lang/String;Landroid/service/media/MediaBrowserService$ConnectionRecord;Landroid/os/Bundle;)V
+HSPLandroid/service/media/MediaBrowserService;->removeSubscription(Ljava/lang/String;Landroid/service/media/MediaBrowserService$ConnectionRecord;Landroid/os/IBinder;)Z
+HSPLandroid/service/media/MediaBrowserService;->setSessionToken(Landroid/media/session/MediaSession$Token;)V
+PLandroid/service/notification/Adjustment$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/Adjustment;
+PLandroid/service/notification/Adjustment$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/service/notification/Adjustment;-><init>(Landroid/os/Parcel;)V
+HPLandroid/service/notification/Adjustment;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;Ljava/lang/CharSequence;I)V
+PLandroid/service/notification/Adjustment;->getKey()Ljava/lang/String;
+PLandroid/service/notification/Adjustment;->getSignals()Landroid/os/Bundle;
+PLandroid/service/notification/Adjustment;->getUser()I
+HPLandroid/service/notification/Adjustment;->setIssuer(Ljava/lang/String;)V
+HPLandroid/service/notification/Adjustment;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/service/notification/Condition$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/Condition;
+HSPLandroid/service/notification/Condition$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/service/notification/Condition$1;->newArray(I)[Landroid/service/notification/Condition;
+PLandroid/service/notification/Condition$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/service/notification/Condition;-><init>(Landroid/net/Uri;Ljava/lang/String;I)V
HSPLandroid/service/notification/Condition;-><init>(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;III)V
+HSPLandroid/service/notification/Condition;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/service/notification/Condition;->equals(Ljava/lang/Object;)Z
+HPLandroid/service/notification/Condition;->hashCode()I
+HSPLandroid/service/notification/Condition;->isValidId(Landroid/net/Uri;Ljava/lang/String;)Z
+HSPLandroid/service/notification/Condition;->isValidState(I)Z
+HSPLandroid/service/notification/Condition;->stateToString(I)Ljava/lang/String;
+HSPLandroid/service/notification/Condition;->toString()Ljava/lang/String;
+HSPLandroid/service/notification/Condition;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/service/notification/ConditionProviderService$H;-><init>(Landroid/service/notification/ConditionProviderService;)V
+HSPLandroid/service/notification/ConditionProviderService$H;-><init>(Landroid/service/notification/ConditionProviderService;Landroid/service/notification/ConditionProviderService$1;)V
HSPLandroid/service/notification/ConditionProviderService$H;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/service/notification/ConditionProviderService$Provider;-><init>(Landroid/service/notification/ConditionProviderService;)V
+HSPLandroid/service/notification/ConditionProviderService$Provider;-><init>(Landroid/service/notification/ConditionProviderService;Landroid/service/notification/ConditionProviderService$1;)V
HSPLandroid/service/notification/ConditionProviderService$Provider;->onConnected()V
+HSPLandroid/service/notification/ConditionProviderService$Provider;->onSubscribe(Landroid/net/Uri;)V
HSPLandroid/service/notification/ConditionProviderService;-><init>()V
-PLandroid/service/notification/ConditionProviderService;->getNotificationInterface()Landroid/app/INotificationManager;
+HSPLandroid/service/notification/ConditionProviderService;->access$200(Landroid/service/notification/ConditionProviderService;)Landroid/service/notification/ConditionProviderService$H;
+HSPLandroid/service/notification/ConditionProviderService;->getNotificationInterface()Landroid/app/INotificationManager;
+HSPLandroid/service/notification/ConditionProviderService;->isBound()Z
+HSPLandroid/service/notification/ConditionProviderService;->notifyCondition(Landroid/service/notification/Condition;)V
+HSPLandroid/service/notification/ConditionProviderService;->notifyConditions([Landroid/service/notification/Condition;)V
HSPLandroid/service/notification/ConditionProviderService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HSPLandroid/service/notification/ConditionProviderService;->requestRebind(Landroid/content/ComponentName;)V
+HSPLandroid/service/notification/ConditionProviderService;->requestUnbind()V
+PLandroid/service/notification/IConditionProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/notification/IConditionProvider$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/service/notification/IConditionProvider$Stub$Proxy;->onConnected()V
+PLandroid/service/notification/IConditionProvider$Stub$Proxy;->onSubscribe(Landroid/net/Uri;)V
+HSPLandroid/service/notification/IConditionProvider$Stub;-><init>()V
HSPLandroid/service/notification/IConditionProvider$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/service/notification/IConditionProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/notification/IConditionProvider;
+HSPLandroid/service/notification/IConditionProvider$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/service/notification/INotificationListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/service/notification/INotificationListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/service/notification/INotificationListener$Stub$Proxy;->onActionClicked(Ljava/lang/String;Landroid/app/Notification$Action;I)V
+PLandroid/service/notification/INotificationListener$Stub$Proxy;->onInterruptionFilterChanged(I)V
+PLandroid/service/notification/INotificationListener$Stub$Proxy;->onListenerConnected(Landroid/service/notification/NotificationRankingUpdate;)V
+PLandroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationEnqueuedWithChannel(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/app/NotificationChannel;)V
+PLandroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationExpansionChanged(Ljava/lang/String;ZZ)V
+HPLandroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationPosted(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;)V
+PLandroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationRankingUpdate(Landroid/service/notification/NotificationRankingUpdate;)V
+PLandroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationRemoved(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
+PLandroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationsSeen(Ljava/util/List;)V
+HSLandroid/service/notification/INotificationListener$Stub;-><init>()V
+HPLandroid/service/notification/INotificationListener$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/service/notification/INotificationListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/notification/INotificationListener;
HSPLandroid/service/notification/INotificationListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-HSPLandroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;->get()Landroid/service/notification/StatusBarNotification;
+HPLandroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;->get()Landroid/service/notification/StatusBarNotification;
+PLandroid/service/notification/IStatusBarNotificationHolder$Stub;-><init>()V
+HPLandroid/service/notification/IStatusBarNotificationHolder$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/service/notification/IStatusBarNotificationHolder$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/service/notification/IStatusBarNotificationHolder$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSLandroid/service/notification/NotificationAssistantService$MyHandler;-><init>(Landroid/service/notification/NotificationAssistantService;Landroid/os/Looper;)V
+HPLandroid/service/notification/NotificationAssistantService$MyHandler;->handleMessage(Landroid/os/Message;)V
+HSLandroid/service/notification/NotificationAssistantService$NotificationAssistantServiceWrapper;-><init>(Landroid/service/notification/NotificationAssistantService;)V
+HSLandroid/service/notification/NotificationAssistantService$NotificationAssistantServiceWrapper;-><init>(Landroid/service/notification/NotificationAssistantService;Landroid/service/notification/NotificationAssistantService$1;)V
+HPLandroid/service/notification/NotificationAssistantService$NotificationAssistantServiceWrapper;->onNotificationEnqueuedWithChannel(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/app/NotificationChannel;)V
+HPLandroid/service/notification/NotificationAssistantService$NotificationAssistantServiceWrapper;->onNotificationExpansionChanged(Ljava/lang/String;ZZ)V
+HPLandroid/service/notification/NotificationAssistantService$NotificationAssistantServiceWrapper;->onNotificationsSeen(Ljava/util/List;)V
+HSPLandroid/service/notification/NotificationAssistantService;-><init>()V
+HPLandroid/service/notification/NotificationAssistantService;->adjustNotification(Landroid/service/notification/Adjustment;)V
+HSPLandroid/service/notification/NotificationAssistantService;->attachBaseContext(Landroid/content/Context;)V
+HSPLandroid/service/notification/NotificationAssistantService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HPLandroid/service/notification/NotificationAssistantService;->setAdjustmentIssuer(Landroid/service/notification/Adjustment;)V
+HSLandroid/service/notification/NotificationListenerService$MyHandler;-><init>(Landroid/service/notification/NotificationListenerService;Landroid/os/Looper;)V
HSPLandroid/service/notification/NotificationListenerService$MyHandler;->handleMessage(Landroid/os/Message;)V
-HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationPosted(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;)V
-PLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationRemoved(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
+HSLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;-><init>(Landroid/service/notification/NotificationListenerService;)V
+HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onInterruptionFilterChanged(I)V
+HSPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onListenerConnected(Landroid/service/notification/NotificationRankingUpdate;)V
+HPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationPosted(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;)V
+HPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationRankingUpdate(Landroid/service/notification/NotificationRankingUpdate;)V
+HPLandroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationRemoved(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
HPLandroid/service/notification/NotificationListenerService$Ranking;-><init>()V
-HSPLandroid/service/notification/NotificationListenerService$Ranking;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/service/notification/NotificationListenerService$Ranking;->getKey()Ljava/lang/String;
+HPLandroid/service/notification/NotificationListenerService$Ranking;-><init>(Landroid/os/Parcel;)V
+HPLandroid/service/notification/NotificationListenerService$Ranking;->canBubble()Z
+HPLandroid/service/notification/NotificationListenerService$Ranking;->getChannel()Landroid/app/NotificationChannel;
+HPLandroid/service/notification/NotificationListenerService$Ranking;->getImportance()I
+PLandroid/service/notification/NotificationListenerService$Ranking;->getKey()Ljava/lang/String;
+HPLandroid/service/notification/NotificationListenerService$Ranking;->getLastAudiblyAlertedMillis()J
+HPLandroid/service/notification/NotificationListenerService$Ranking;->getOverrideGroupKey()Ljava/lang/String;
+HPLandroid/service/notification/NotificationListenerService$Ranking;->getRank()I
+HPLandroid/service/notification/NotificationListenerService$Ranking;->getSmartActions()Ljava/util/List;
+HPLandroid/service/notification/NotificationListenerService$Ranking;->getSmartReplies()Ljava/util/List;
+HPLandroid/service/notification/NotificationListenerService$Ranking;->getSuppressedVisualEffects()I
+HPLandroid/service/notification/NotificationListenerService$Ranking;->getUserSentiment()I
+HPLandroid/service/notification/NotificationListenerService$Ranking;->getVisibilityOverride()I
+PLandroid/service/notification/NotificationListenerService$Ranking;->importanceToString(I)Ljava/lang/String;
+HPLandroid/service/notification/NotificationListenerService$Ranking;->isAmbient()Z
+HPLandroid/service/notification/NotificationListenerService$Ranking;->isSuspended()Z
+HPLandroid/service/notification/NotificationListenerService$Ranking;->populate(Landroid/service/notification/NotificationListenerService$Ranking;)V
HPLandroid/service/notification/NotificationListenerService$Ranking;->populate(Ljava/lang/String;IZIIILjava/lang/CharSequence;Ljava/lang/String;Landroid/app/NotificationChannel;Ljava/util/ArrayList;Ljava/util/ArrayList;ZIZJZLjava/util/ArrayList;Ljava/util/ArrayList;ZZ)V
+HPLandroid/service/notification/NotificationListenerService$Ranking;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/service/notification/NotificationListenerService$RankingMap$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/NotificationListenerService$RankingMap;
HSPLandroid/service/notification/NotificationListenerService$RankingMap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/service/notification/NotificationListenerService$RankingMap;-><init>(Landroid/os/Parcel;)V
+HSLandroid/service/notification/NotificationListenerService$RankingMap;-><init>(Landroid/os/Parcel;Landroid/service/notification/NotificationListenerService$1;)V
+HPLandroid/service/notification/NotificationListenerService$RankingMap;-><init>([Landroid/service/notification/NotificationListenerService$Ranking;)V
+HPLandroid/service/notification/NotificationListenerService$RankingMap;->getOrderedKeys()[Ljava/lang/String;
+HPLandroid/service/notification/NotificationListenerService$RankingMap;->getRanking(Ljava/lang/String;Landroid/service/notification/NotificationListenerService$Ranking;)Z
+HPLandroid/service/notification/NotificationListenerService$RankingMap;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/service/notification/NotificationListenerService;-><init>()V
-HSPLandroid/service/notification/NotificationListenerService;->createLegacyIconExtras(Landroid/app/Notification;)V
+HSLandroid/service/notification/NotificationListenerService;->access$300(Landroid/service/notification/NotificationListenerService;)Ljava/lang/Object;
+HSLandroid/service/notification/NotificationListenerService;->access$500(Landroid/service/notification/NotificationListenerService;)Landroid/os/Handler;
+HSLandroid/service/notification/NotificationListenerService;->access$600(Landroid/service/notification/NotificationListenerService;)Z
+HSLandroid/service/notification/NotificationListenerService;->access$602(Landroid/service/notification/NotificationListenerService;Z)Z
+HSLandroid/service/notification/NotificationListenerService;->applyUpdateLocked(Landroid/service/notification/NotificationRankingUpdate;)V
+HSPLandroid/service/notification/NotificationListenerService;->attachBaseContext(Landroid/content/Context;)V
+HPLandroid/service/notification/NotificationListenerService;->createLegacyIconExtras(Landroid/app/Notification;)V
HSPLandroid/service/notification/NotificationListenerService;->getContext()Landroid/content/Context;
-HSPLandroid/service/notification/NotificationListenerService;->maybePopulatePeople(Landroid/app/Notification;)V
-HSPLandroid/service/notification/NotificationListenerService;->maybePopulateRemoteViews(Landroid/app/Notification;)V
+HPLandroid/service/notification/NotificationListenerService;->getCurrentRanking()Landroid/service/notification/NotificationListenerService$RankingMap;
+HPLandroid/service/notification/NotificationListenerService;->isBound()Z
+HPLandroid/service/notification/NotificationListenerService;->maybePopulatePeople(Landroid/app/Notification;)V
+HPLandroid/service/notification/NotificationListenerService;->maybePopulateRemoteViews(Landroid/app/Notification;)V
+HPLandroid/service/notification/NotificationListenerService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HSPLandroid/service/notification/NotificationListenerService;->onInterruptionFilterChanged(I)V
+HPLandroid/service/notification/NotificationListenerService;->onListenerConnected()V
+HPLandroid/service/notification/NotificationListenerService;->onNotificationPosted(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V
+HPLandroid/service/notification/NotificationListenerService;->onNotificationRankingUpdate(Landroid/service/notification/NotificationListenerService$RankingMap;)V
+HPLandroid/service/notification/NotificationListenerService;->onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;)V
+HPLandroid/service/notification/NotificationListenerService;->onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;I)V
+HPLandroid/service/notification/NotificationListenerService;->onNotificationRemoved(Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationListenerService$RankingMap;Landroid/service/notification/NotificationStats;I)V
+HSPLandroid/service/notification/NotificationListenerService;->requestRebind(Landroid/content/ComponentName;)V
+HPLandroid/service/notification/NotificationListenerService;->setNotificationsShown([Ljava/lang/String;)V
HSPLandroid/service/notification/NotificationRankingUpdate$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/NotificationRankingUpdate;
HSPLandroid/service/notification/NotificationRankingUpdate$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSLandroid/service/notification/NotificationRankingUpdate;-><init>(Landroid/os/Parcel;)V
+HPLandroid/service/notification/NotificationRankingUpdate;-><init>([Landroid/service/notification/NotificationListenerService$Ranking;)V
HSPLandroid/service/notification/NotificationRankingUpdate;->getRankingMap()Landroid/service/notification/NotificationListenerService$RankingMap;
-HSPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/StatusBarNotification;
-HSPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-HSPLandroid/service/notification/StatusBarNotification;-><init>(Landroid/os/Parcel;)V
+HPLandroid/service/notification/NotificationRankingUpdate;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/service/notification/NotificationStats$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/NotificationStats;
+HPLandroid/service/notification/NotificationStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/service/notification/NotificationStats;-><init>()V
+HPLandroid/service/notification/NotificationStats;-><init>(Landroid/os/Parcel;)V
+PLandroid/service/notification/NotificationStats;->hasSeen()Z
+PLandroid/service/notification/NotificationStats;->setExpanded()V
+PLandroid/service/notification/NotificationStats;->setSeen()V
+PLandroid/service/notification/NotificationStats;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/service/notification/ScheduleCalendar;-><clinit>()V
+PLandroid/service/notification/ScheduleCalendar;-><init>()V
+PLandroid/service/notification/ScheduleCalendar;->addDays(JI)J
+HPLandroid/service/notification/ScheduleCalendar;->exitAtAlarm()Z
+PLandroid/service/notification/ScheduleCalendar;->getDayOfWeek(J)I
+PLandroid/service/notification/ScheduleCalendar;->getNextChangeTime(J)J
+PLandroid/service/notification/ScheduleCalendar;->getNextTime(JII)J
+PLandroid/service/notification/ScheduleCalendar;->getTime(JII)J
+PLandroid/service/notification/ScheduleCalendar;->isAlarmInSchedule(JJ)Z
+PLandroid/service/notification/ScheduleCalendar;->isInSchedule(IJJJ)Z
+PLandroid/service/notification/ScheduleCalendar;->isInSchedule(J)Z
+PLandroid/service/notification/ScheduleCalendar;->maybeSetNextAlarm(JJ)V
+PLandroid/service/notification/ScheduleCalendar;->setSchedule(Landroid/service/notification/ZenModeConfig$ScheduleInfo;)V
+PLandroid/service/notification/ScheduleCalendar;->setTimeZone(Ljava/util/TimeZone;)V
+PLandroid/service/notification/ScheduleCalendar;->shouldExitForAlarm(J)Z
+PLandroid/service/notification/ScheduleCalendar;->toString()Ljava/lang/String;
+PLandroid/service/notification/ScheduleCalendar;->updateDays()V
+HPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/StatusBarNotification;
+HPLandroid/service/notification/StatusBarNotification$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/service/notification/StatusBarNotification;-><init>(Landroid/os/Parcel;)V
+HPLandroid/service/notification/StatusBarNotification;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;IIILandroid/app/Notification;Landroid/os/UserHandle;J)V
+HPLandroid/service/notification/StatusBarNotification;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;IILandroid/app/Notification;Landroid/os/UserHandle;Ljava/lang/String;J)V
+HPLandroid/service/notification/StatusBarNotification;->clone()Landroid/service/notification/StatusBarNotification;
+HPLandroid/service/notification/StatusBarNotification;->cloneLight()Landroid/service/notification/StatusBarNotification;
+PLandroid/service/notification/StatusBarNotification;->getChannelIdLogTag()Ljava/lang/String;
+HPLandroid/service/notification/StatusBarNotification;->getGroup()Ljava/lang/String;
+HPLandroid/service/notification/StatusBarNotification;->getGroupKey()Ljava/lang/String;
+PLandroid/service/notification/StatusBarNotification;->getGroupLogTag()Ljava/lang/String;
HPLandroid/service/notification/StatusBarNotification;->getId()I
+PLandroid/service/notification/StatusBarNotification;->getInitialPid()I
HPLandroid/service/notification/StatusBarNotification;->getKey()Ljava/lang/String;
-HSPLandroid/service/notification/StatusBarNotification;->getNotification()Landroid/app/Notification;
+HPLandroid/service/notification/StatusBarNotification;->getLogMaker()Landroid/metrics/LogMaker;
+HPLandroid/service/notification/StatusBarNotification;->getNotification()Landroid/app/Notification;
+HPLandroid/service/notification/StatusBarNotification;->getOpPkg()Ljava/lang/String;
+HPLandroid/service/notification/StatusBarNotification;->getOverrideGroupKey()Ljava/lang/String;
+PLandroid/service/notification/StatusBarNotification;->getPackageContext(Landroid/content/Context;)Landroid/content/Context;
HPLandroid/service/notification/StatusBarNotification;->getPackageName()Ljava/lang/String;
HPLandroid/service/notification/StatusBarNotification;->getPostTime()J
HPLandroid/service/notification/StatusBarNotification;->getTag()Ljava/lang/String;
+HPLandroid/service/notification/StatusBarNotification;->getUid()I
HPLandroid/service/notification/StatusBarNotification;->getUser()Landroid/os/UserHandle;
-HSPLandroid/service/notification/StatusBarNotification;->getUserId()I
-HSPLandroid/service/notification/StatusBarNotification;->groupKey()Ljava/lang/String;
-HSPLandroid/service/notification/StatusBarNotification;->key()Ljava/lang/String;
+HPLandroid/service/notification/StatusBarNotification;->getUserId()I
+HPLandroid/service/notification/StatusBarNotification;->groupKey()Ljava/lang/String;
+HPLandroid/service/notification/StatusBarNotification;->isAppGroup()Z
+HPLandroid/service/notification/StatusBarNotification;->isClearable()Z
+HPLandroid/service/notification/StatusBarNotification;->isGroup()Z
+PLandroid/service/notification/StatusBarNotification;->isOngoing()Z
+HPLandroid/service/notification/StatusBarNotification;->key()Ljava/lang/String;
+PLandroid/service/notification/StatusBarNotification;->setOverrideGroupKey(Ljava/lang/String;)V
+HPLandroid/service/notification/StatusBarNotification;->shortenTag(Ljava/lang/String;)Ljava/lang/String;
+PLandroid/service/notification/StatusBarNotification;->toString()Ljava/lang/String;
+HPLandroid/service/notification/StatusBarNotification;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/service/notification/ZenModeConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/ZenModeConfig;
+HPLandroid/service/notification/ZenModeConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/service/notification/ZenModeConfig$Diff;-><init>()V
+HSPLandroid/service/notification/ZenModeConfig$Diff;->access$000(Landroid/service/notification/ZenModeConfig$Diff;Ljava/lang/String;Ljava/lang/String;)Landroid/service/notification/ZenModeConfig$Diff;
+HSPLandroid/service/notification/ZenModeConfig$Diff;->addLine(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Landroid/service/notification/ZenModeConfig$Diff;
+HSPLandroid/service/notification/ZenModeConfig$Diff;->addLine(Ljava/lang/String;Ljava/lang/String;)Landroid/service/notification/ZenModeConfig$Diff;
+PLandroid/service/notification/ZenModeConfig$Diff;->addLine(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Landroid/service/notification/ZenModeConfig$Diff;
+HSPLandroid/service/notification/ZenModeConfig$Diff;->toString()Ljava/lang/String;
+HSPLandroid/service/notification/ZenModeConfig$EventInfo;-><init>()V
+HSPLandroid/service/notification/ZenModeConfig$ScheduleInfo;-><init>()V
+PLandroid/service/notification/ZenModeConfig$ScheduleInfo;->toString()Ljava/lang/String;
+PLandroid/service/notification/ZenModeConfig$ScheduleInfo;->ts(J)Ljava/lang/String;
HSPLandroid/service/notification/ZenModeConfig$ZenRule$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/notification/ZenModeConfig$ZenRule;
HSPLandroid/service/notification/ZenModeConfig$ZenRule$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;-><init>()V
HSPLandroid/service/notification/ZenModeConfig$ZenRule;-><init>(Landroid/os/Parcel;)V
-HSPLandroid/service/textclassifier/ITextClassifierService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/textclassifier/ITextClassifierService;
-HSPLandroid/service/textclassifier/TextClassifierService;->getServiceComponentName(Landroid/content/Context;Landroid/view/textclassifier/TextClassificationConstants;)Landroid/content/ComponentName;
-HSPLandroid/service/textclassifier/TextClassifierService;->getServiceComponentNameByPackage(Landroid/content/Context;Ljava/lang/String;Z)Landroid/content/ComponentName;
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->access$100(Landroid/service/notification/ZenModeConfig$Diff;Ljava/lang/String;Landroid/service/notification/ZenModeConfig$ZenRule;Landroid/service/notification/ZenModeConfig$ZenRule;)V
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->appendDiff(Landroid/service/notification/ZenModeConfig$Diff;Ljava/lang/String;Landroid/service/notification/ZenModeConfig$ZenRule;)V
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->appendDiff(Landroid/service/notification/ZenModeConfig$Diff;Ljava/lang/String;Landroid/service/notification/ZenModeConfig$ZenRule;Landroid/service/notification/ZenModeConfig$ZenRule;)V
+PLandroid/service/notification/ZenModeConfig$ZenRule;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->equals(Ljava/lang/Object;)Z
+HPLandroid/service/notification/ZenModeConfig$ZenRule;->hashCode()I
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->isAutomaticActive()Z
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->isTrueOrUnknown()Z
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->toString()Ljava/lang/String;
+HSPLandroid/service/notification/ZenModeConfig$ZenRule;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/service/notification/ZenModeConfig;-><init>()V
+HSPLandroid/service/notification/ZenModeConfig;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/service/notification/ZenModeConfig;->addKeys(Landroid/util/ArraySet;Landroid/util/ArrayMap;)V
+HSPLandroid/service/notification/ZenModeConfig;->areAllPriorityOnlyRingerSoundsMuted(Landroid/app/NotificationManager$Policy;)Z
+HSPLandroid/service/notification/ZenModeConfig;->areAllPriorityOnlyRingerSoundsMuted(Landroid/service/notification/ZenModeConfig;)Z
+HSPLandroid/service/notification/ZenModeConfig;->areAllZenBehaviorSoundsMuted(Landroid/app/NotificationManager$Policy;)Z
+HSPLandroid/service/notification/ZenModeConfig;->copy()Landroid/service/notification/ZenModeConfig;
+HSPLandroid/service/notification/ZenModeConfig;->diff(Landroid/service/notification/ZenModeConfig;)Landroid/service/notification/ZenModeConfig$Diff;
+HSPLandroid/service/notification/ZenModeConfig;->diff(Landroid/service/notification/ZenModeConfig;Landroid/service/notification/ZenModeConfig;)Landroid/service/notification/ZenModeConfig$Diff;
+HSPLandroid/service/notification/ZenModeConfig;->equals(Ljava/lang/Object;)Z
+HPLandroid/service/notification/ZenModeConfig;->getDescription(Landroid/content/Context;ZLandroid/service/notification/ZenModeConfig;Z)Ljava/lang/String;
+HPLandroid/service/notification/ZenModeConfig;->getNextAlarm(Landroid/content/Context;)J
+HSPLandroid/service/notification/ZenModeConfig;->getNotificationPolicySenders(II)I
+PLandroid/service/notification/ZenModeConfig;->hashCode()I
+HSPLandroid/service/notification/ZenModeConfig;->isPriorityCategoryEnabled(ILandroid/app/NotificationManager$Policy;)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValid()Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidAutomaticRule(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidCountdownConditionId(Landroid/net/Uri;)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidEventConditionId(Landroid/net/Uri;)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidHour(I)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidManualRule(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidMinute(I)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidScheduleConditionId(Landroid/net/Uri;)Z
+HSPLandroid/service/notification/ZenModeConfig;->isValidSource(I)Z
+HSPLandroid/service/notification/ZenModeConfig;->isVisualEffectAllowed(ILandroid/app/NotificationManager$Policy;)Z
+HPLandroid/service/notification/ZenModeConfig;->isZenOverridingRinger(ILandroid/app/NotificationManager$Policy;)Z
+HPLandroid/service/notification/ZenModeConfig;->parseAutomaticRuleEndTime(Landroid/content/Context;Landroid/net/Uri;)J
+HSPLandroid/service/notification/ZenModeConfig;->readConditionXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/service/notification/Condition;
+HSPLandroid/service/notification/ZenModeConfig;->readRuleXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/service/notification/ZenModeConfig$ZenRule;
+HSPLandroid/service/notification/ZenModeConfig;->readXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/service/notification/ZenModeConfig;
+HSPLandroid/service/notification/ZenModeConfig;->readZenPolicyXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/service/notification/ZenPolicy;
+HSPLandroid/service/notification/ZenModeConfig;->rulesToString()Ljava/lang/String;
+HSPLandroid/service/notification/ZenModeConfig;->safeBoolean(Ljava/lang/String;Z)Z
+HSPLandroid/service/notification/ZenModeConfig;->safeBoolean(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
+HSPLandroid/service/notification/ZenModeConfig;->safeComponentName(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/content/ComponentName;
+HSPLandroid/service/notification/ZenModeConfig;->safeInt(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
+HSPLandroid/service/notification/ZenModeConfig;->safeLong(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;J)J
+HSPLandroid/service/notification/ZenModeConfig;->safeUri(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/net/Uri;
+HSPLandroid/service/notification/ZenModeConfig;->sameCondition(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
+HSPLandroid/service/notification/ZenModeConfig;->sourceToPrioritySenders(II)I
+HSPLandroid/service/notification/ZenModeConfig;->sourceToString(I)Ljava/lang/String;
+HSPLandroid/service/notification/ZenModeConfig;->toNotificationPolicy()Landroid/app/NotificationManager$Policy;
+HSPLandroid/service/notification/ZenModeConfig;->toNotificationPolicy(Landroid/service/notification/ZenPolicy;)Landroid/app/NotificationManager$Policy;
+PLandroid/service/notification/ZenModeConfig;->toScheduleCalendar(Landroid/net/Uri;)Landroid/service/notification/ScheduleCalendar;
+HSPLandroid/service/notification/ZenModeConfig;->toString()Ljava/lang/String;
+HSPLandroid/service/notification/ZenModeConfig;->tryParseCountdownConditionId(Landroid/net/Uri;)J
+HSPLandroid/service/notification/ZenModeConfig;->tryParseDayList(Ljava/lang/String;Ljava/lang/String;)[I
+HSPLandroid/service/notification/ZenModeConfig;->tryParseEventConditionId(Landroid/net/Uri;)Landroid/service/notification/ZenModeConfig$EventInfo;
+HSPLandroid/service/notification/ZenModeConfig;->tryParseHourAndMinute(Ljava/lang/String;)[I
+HSPLandroid/service/notification/ZenModeConfig;->tryParseInt(Ljava/lang/String;I)I
+HSPLandroid/service/notification/ZenModeConfig;->tryParseLong(Ljava/lang/String;J)J
+HSPLandroid/service/notification/ZenModeConfig;->tryParseLong(Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/Long;
+HSPLandroid/service/notification/ZenModeConfig;->tryParseScheduleConditionId(Landroid/net/Uri;)Landroid/service/notification/ZenModeConfig$ScheduleInfo;
+HSPLandroid/service/notification/ZenModeConfig;->tryParseZenMode(Ljava/lang/String;I)I
+HSPLandroid/service/notification/ZenModeConfig;->unsafeBoolean(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/Boolean;
+HSPLandroid/service/notification/ZenModeConfig;->writeConditionXml(Landroid/service/notification/Condition;Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/service/notification/ZenModeConfig;->writeRuleXml(Landroid/service/notification/ZenModeConfig$ZenRule;Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLandroid/service/notification/ZenModeConfig;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/service/notification/ZenModeConfig;->writeXml(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/Integer;)V
+HSPLandroid/service/notification/ZenPolicy$Builder;-><init>()V
+HSPLandroid/service/notification/ZenPolicy;-><init>()V
+HSPLandroid/service/notification/ZenPolicy;->apply(Landroid/service/notification/ZenPolicy;)V
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCallSenders()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryAlarms()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryCalls()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryEvents()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryMedia()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryMessages()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryReminders()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategoryRepeatCallers()I
+HSPLandroid/service/notification/ZenPolicy;->getPriorityCategorySystem()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectAmbient()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectBadge()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectFullScreenIntent()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectLights()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectNotificationList()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectPeek()I
+HSPLandroid/service/notification/ZenPolicy;->getVisualEffectStatusBar()I
+HSPLandroid/service/notification/ZenPolicy;->getZenPolicyPriorityCategoryState(I)I
+HSPLandroid/service/notification/ZenPolicy;->getZenPolicyVisualEffectState(I)I
+HSPLandroid/service/notification/ZenPolicy;->isCategoryAllowed(IZ)Z
+HSPLandroid/service/notification/ZenPolicy;->isVisualEffectAllowed(IZ)Z
+HSPLandroid/service/oemlock/IOemLockService$Stub;-><init>()V
+HSPLandroid/service/oemlock/IOemLockService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/oemlock/IOemLockService;
+PLandroid/service/oemlock/IOemLockService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/oemlock/OemLockManager;-><init>(Landroid/service/oemlock/IOemLockService;)V
+HSPLandroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->getFlashLockState()I
+HPLandroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->getMaximumDataBlockSize()J
+HPLandroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->read()[B
+HPLandroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->write([B)I
+HSPLandroid/service/persistentdata/IPersistentDataBlockService$Stub;-><init>()V
+HSPLandroid/service/persistentdata/IPersistentDataBlockService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/persistentdata/IPersistentDataBlockService;
+HPLandroid/service/persistentdata/IPersistentDataBlockService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/service/persistentdata/IPersistentDataBlockService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/persistentdata/PersistentDataBlockManager;-><init>(Landroid/service/persistentdata/IPersistentDataBlockService;)V
+HSPLandroid/service/persistentdata/PersistentDataBlockManager;->getFlashLockState()I
+HPLandroid/service/persistentdata/PersistentDataBlockManager;->getMaximumDataBlockSize()J
+HPLandroid/service/persistentdata/PersistentDataBlockManager;->read()[B
+HPLandroid/service/persistentdata/PersistentDataBlockManager;->write([B)I
+PLandroid/service/textclassifier/ITextClassifierCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/service/textclassifier/ITextClassifierCallback$Stub$Proxy;->onSuccess(Landroid/os/Bundle;)V
+HPLandroid/service/textclassifier/ITextClassifierCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/service/textclassifier/ITextClassifierCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onClassifyText(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onConnectedStateChanged(I)V
+HPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onCreateTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V
+HPLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onDestroyTextClassificationSession(Landroid/view/textclassifier/TextClassificationSessionId;)V
+PLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onGenerateLinks(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextLinks$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onSelectionEvent(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/SelectionEvent;)V
+PLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onSuggestConversationActions(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/ConversationActions$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onSuggestSelection(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextSelection$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLandroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onTextClassifierEvent(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassifierEvent;)V
+HSPLandroid/service/textclassifier/ITextClassifierService$Stub;-><init>()V
+PLandroid/service/textclassifier/ITextClassifierService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/textclassifier/ITextClassifierService;
+PLandroid/service/textclassifier/ITextClassifierService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/service/textclassifier/ITextClassifierService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/service/textclassifier/TextClassifierService;-><init>()V
+HPLandroid/service/textclassifier/TextClassifierService;->access$000(Landroid/service/textclassifier/TextClassifierService;)Landroid/os/Handler;
+HPLandroid/service/textclassifier/TextClassifierService;->getDefaultTextClassifierImplementation(Landroid/content/Context;)Landroid/view/textclassifier/TextClassifier;
+HPLandroid/service/textclassifier/TextClassifierService;->getLocalTextClassifier()Landroid/view/textclassifier/TextClassifier;
+PLandroid/service/textclassifier/TextClassifierService;->getServiceComponentName(Landroid/content/Context;)Landroid/content/ComponentName;
+HPLandroid/service/textclassifier/TextClassifierService;->getServiceComponentNameByPackage(Landroid/content/Context;Ljava/lang/String;Z)Landroid/content/ComponentName;
+HPLandroid/service/textclassifier/TextClassifierService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HPLandroid/service/textclassifier/TextClassifierService;->onConnected()V
+PLandroid/service/trust/ITrustAgentService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/service/trust/ITrustAgentService$Stub$Proxy;->onConfigure(Ljava/util/List;Landroid/os/IBinder;)V
+PLandroid/service/trust/ITrustAgentService$Stub$Proxy;->onDeviceLocked()V
+PLandroid/service/trust/ITrustAgentService$Stub$Proxy;->onDeviceUnlocked()V
+PLandroid/service/trust/ITrustAgentService$Stub$Proxy;->onUnlockAttempt(Z)V
+PLandroid/service/trust/ITrustAgentService$Stub$Proxy;->setCallback(Landroid/service/trust/ITrustAgentServiceCallback;)V
+HSPLandroid/service/trust/ITrustAgentService$Stub;-><init>()V
+PLandroid/service/trust/ITrustAgentService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/trust/ITrustAgentService;
+HSPLandroid/service/trust/ITrustAgentService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/trust/ITrustAgentServiceCallback$Stub;-><init>()V
+PLandroid/service/trust/ITrustAgentServiceCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/service/trust/ITrustAgentServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/trust/ITrustAgentServiceCallback;
+HSPLandroid/service/trust/TrustAgentService$1;-><init>(Landroid/service/trust/TrustAgentService;)V
+HSPLandroid/service/trust/TrustAgentService$1;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/service/trust/TrustAgentService$ConfigurationData;-><init>(Ljava/util/List;Landroid/os/IBinder;)V
+HSPLandroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;-><init>(Landroid/service/trust/TrustAgentService;)V
+HSPLandroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;-><init>(Landroid/service/trust/TrustAgentService;Landroid/service/trust/TrustAgentService$1;)V
+HSPLandroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onConfigure(Ljava/util/List;Landroid/os/IBinder;)V
+HSPLandroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onDeviceLocked()V
+HSPLandroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->setCallback(Landroid/service/trust/ITrustAgentServiceCallback;)V
+HSPLandroid/service/trust/TrustAgentService;-><init>()V
+HSPLandroid/service/trust/TrustAgentService;->access$000(Landroid/service/trust/TrustAgentService;)Ljava/lang/Object;
+HSPLandroid/service/trust/TrustAgentService;->access$102(Landroid/service/trust/TrustAgentService;Landroid/service/trust/ITrustAgentServiceCallback;)Landroid/service/trust/ITrustAgentServiceCallback;
+HSPLandroid/service/trust/TrustAgentService;->access$400(Landroid/service/trust/TrustAgentService;)Landroid/os/Handler;
+HSPLandroid/service/trust/TrustAgentService;->access$500(Landroid/service/trust/TrustAgentService;)Z
+HSPLandroid/service/trust/TrustAgentService;->access$600(Landroid/service/trust/TrustAgentService;)Ljava/lang/Runnable;
+HSPLandroid/service/trust/TrustAgentService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+PLandroid/service/voice/IVoiceInteractionService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/voice/IVoiceInteractionService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/service/voice/IVoiceInteractionService$Stub$Proxy;->ready()V
+HSPLandroid/service/voice/IVoiceInteractionService$Stub;-><init>()V
+HSPLandroid/service/voice/IVoiceInteractionService$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/service/voice/IVoiceInteractionService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/voice/IVoiceInteractionService;
+HSPLandroid/service/voice/IVoiceInteractionService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/service/voice/IVoiceInteractionSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->closeSystemDialogs()V
+PLandroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->destroy()V
+PLandroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->handleAssist(ILandroid/os/IBinder;Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;II)V
+PLandroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->handleScreenshot(Landroid/graphics/Bitmap;)V
+PLandroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->hide()V
+PLandroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->onLockscreenShown()V
+PLandroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->show(Landroid/os/Bundle;ILcom/android/internal/app/IVoiceInteractionSessionShowCallback;)V
+HSPLandroid/service/voice/IVoiceInteractionSession$Stub;-><init>()V
+HSPLandroid/service/voice/IVoiceInteractionSession$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/service/voice/IVoiceInteractionSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/voice/IVoiceInteractionSession;
+HSPLandroid/service/voice/IVoiceInteractionSession$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/service/voice/IVoiceInteractionSessionService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/voice/IVoiceInteractionSessionService$Stub$Proxy;->newSession(Landroid/os/IBinder;Landroid/os/Bundle;I)V
+HSPLandroid/service/voice/IVoiceInteractionSessionService$Stub;-><init>()V
+HSPLandroid/service/voice/IVoiceInteractionSessionService$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/service/voice/IVoiceInteractionSessionService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/voice/IVoiceInteractionSessionService;
+HSPLandroid/service/voice/IVoiceInteractionSessionService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/service/voice/VoiceInteractionManagerInternal;-><init>()V
+PLandroid/service/voice/VoiceInteractionServiceInfo;-><init>(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;I)V
+HSPLandroid/service/voice/VoiceInteractionServiceInfo;-><init>(Landroid/content/pm/PackageManager;Landroid/content/pm/ServiceInfo;)V
+HSPLandroid/service/voice/VoiceInteractionServiceInfo;->getParseError()Ljava/lang/String;
+HSPLandroid/service/voice/VoiceInteractionServiceInfo;->getRecognitionService()Ljava/lang/String;
+HSPLandroid/service/voice/VoiceInteractionServiceInfo;->getServiceInfo()Landroid/content/pm/ServiceInfo;
+PLandroid/service/voice/VoiceInteractionServiceInfo;->getServiceInfoOrThrow(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;
+PLandroid/service/voice/VoiceInteractionServiceInfo;->getSessionService()Ljava/lang/String;
+HSPLandroid/service/voice/VoiceInteractionServiceInfo;->getSettingsActivity()Ljava/lang/String;
+HSPLandroid/service/voice/VoiceInteractionServiceInfo;->getSupportsAssist()Z
+PLandroid/service/voice/VoiceInteractionServiceInfo;->getSupportsLaunchFromKeyguard()Z
+HSPLandroid/service/vr/IPersistentVrStateCallbacks$Stub;-><init>()V
HSPLandroid/service/vr/IVrManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/vr/IVrManager;
HSPLandroid/service/vr/IVrStateCallbacks$Stub;-><init>()V
+HSPLandroid/service/wallpaper/IWallpaperConnection$Stub;-><init>()V
+PLandroid/service/wallpaper/IWallpaperConnection$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/service/wallpaper/IWallpaperConnection$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->requestWallpaperColors()V
+PLandroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->setInAmbientMode(ZJ)V
+PLandroid/service/wallpaper/IWallpaperEngine$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/wallpaper/IWallpaperEngine;
+HPLandroid/service/wallpaper/IWallpaperEngine$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/service/wallpaper/IWallpaperService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/wallpaper/IWallpaperService$Stub$Proxy;->attach(Landroid/service/wallpaper/IWallpaperConnection;Landroid/os/IBinder;IZIILandroid/graphics/Rect;I)V
+PLandroid/service/wallpaper/IWallpaperService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/wallpaper/IWallpaperService;
+HSPLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig$1;-><init>()V
+PLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;
+PLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;-><clinit>()V
+PLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;-><init>(Landroid/os/Parcel;)V
+PLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;-><init>(Landroid/os/Parcel;Landroid/service/watchdog/ExplicitHealthCheckService$1;)V
+PLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;->getHealthCheckTimeoutMillis()J
+PLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;->getPackageName()Ljava/lang/String;
+PLandroid/service/watchdog/ExplicitHealthCheckService$PackageConfig;->toString()Ljava/lang/String;
+PLandroid/service/watchdog/IExplicitHealthCheckService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/service/watchdog/IExplicitHealthCheckService$Stub$Proxy;->getRequestedPackages(Landroid/os/RemoteCallback;)V
+PLandroid/service/watchdog/IExplicitHealthCheckService$Stub$Proxy;->getSupportedPackages(Landroid/os/RemoteCallback;)V
+PLandroid/service/watchdog/IExplicitHealthCheckService$Stub$Proxy;->setCallback(Landroid/os/RemoteCallback;)V
+PLandroid/service/watchdog/IExplicitHealthCheckService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/watchdog/IExplicitHealthCheckService;
+HSPLandroid/speech/SpeechRecognizer;->isRecognitionAvailable(Landroid/content/Context;)Z
+HSPLandroid/speech/tts/TtsEngines;-><init>(Landroid/content/Context;)V
+HSPLandroid/speech/tts/TtsEngines;->getEngineInfo(Landroid/content/pm/ResolveInfo;Landroid/content/pm/PackageManager;)Landroid/speech/tts/TextToSpeech$EngineInfo;
+HSPLandroid/speech/tts/TtsEngines;->getEngines()Ljava/util/List;
+HSPLandroid/speech/tts/TtsEngines;->isSystemEngine(Landroid/content/pm/ServiceInfo;)Z
+PLandroid/stats/devicepolicy/nano/StringList;-><init>()V
+PLandroid/stats/devicepolicy/nano/StringList;->clear()Landroid/stats/devicepolicy/nano/StringList;
+HPLandroid/stats/devicepolicy/nano/StringList;->computeSerializedSize()I
+HPLandroid/stats/devicepolicy/nano/StringList;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$0Zy6hglFVc-K9jiJWmuHmilIMkY;-><clinit>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$0Zy6hglFVc-K9jiJWmuHmilIMkY;-><init>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$0Zy6hglFVc-K9jiJWmuHmilIMkY;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$2V_2ZQoGHfOIfKo_A8Ss547oL-c;-><clinit>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$2V_2ZQoGHfOIfKo_A8Ss547oL-c;-><init>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$2V_2ZQoGHfOIfKo_A8Ss547oL-c;->apply(Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$BfPaTA0e9gauJmR4vGNCDkGZ3uc;-><clinit>()V
HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$BfPaTA0e9gauJmR4vGNCDkGZ3uc;-><init>()V
+HPLandroid/sysprop/-$$Lambda$TelephonyProperties$BfPaTA0e9gauJmR4vGNCDkGZ3uc;->apply(Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$EV4LSOwY7Dsh1rJalZDLmnGJw5I;-><clinit>()V
HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$EV4LSOwY7Dsh1rJalZDLmnGJw5I;-><init>()V
+HPLandroid/sysprop/-$$Lambda$TelephonyProperties$EV4LSOwY7Dsh1rJalZDLmnGJw5I;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$H4jN0VIBNpZQBeWYt6qS3DCe_M8;->apply(Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$JNTRmlscGaFlYo_3krOr_WWd2QI;-><clinit>()V
HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$JNTRmlscGaFlYo_3krOr_WWd2QI;-><init>()V
HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$UKEfAuJVPm5cKR_UnPj1L66mN34;-><clinit>()V
HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$UKEfAuJVPm5cKR_UnPj1L66mN34;-><init>()V
HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$UKEfAuJVPm5cKR_UnPj1L66mN34;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$VtSZ_Uto4bMa49ncgAfdWewMFOU;-><clinit>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$VtSZ_Uto4bMa49ncgAfdWewMFOU;-><init>()V
HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$dc-CgjsF3BtDxLSSKL5bQ9ullG0;-><clinit>()V
HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$dc-CgjsF3BtDxLSSKL5bQ9ullG0;-><init>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$fdR0mRnJd3OymvjDc_MI1AHnMwc;-><clinit>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$fdR0mRnJd3OymvjDc_MI1AHnMwc;-><init>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$fdR0mRnJd3OymvjDc_MI1AHnMwc;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$iJa3afMQmWbO1DX4jS9zkcOKZlY;-><clinit>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$iJa3afMQmWbO1DX4jS9zkcOKZlY;-><init>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$kCQNtMqtfi6MMlFLqtIufNXwOS8;-><clinit>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$kCQNtMqtfi6MMlFLqtIufNXwOS8;-><init>()V
HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$kemQbl44ndTqXdQVvnYppJuQboQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$rKoNB08X7R8OCPq-VDCWDOm3lDM;-><clinit>()V
+HSPLandroid/sysprop/-$$Lambda$TelephonyProperties$rKoNB08X7R8OCPq-VDCWDOm3lDM;-><init>()V
+HSPLandroid/sysprop/AdbProperties;->secure()Ljava/util/Optional;
+HSPLandroid/sysprop/AdbProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
+HSPLandroid/sysprop/ApexProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
+HSPLandroid/sysprop/ApexProperties;->updatable()Ljava/util/Optional;
+HSPLandroid/sysprop/ContactsProperties;->aggregate_contacts()Ljava/util/Optional;
+HSPLandroid/sysprop/ContactsProperties;->debug_scan_all_packages()Ljava/util/Optional;
+HSPLandroid/sysprop/ContactsProperties;->display_photo_size()Ljava/util/Optional;
+HSPLandroid/sysprop/ContactsProperties;->thumbnail_size()Ljava/util/Optional;
+HSPLandroid/sysprop/ContactsProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
+HSPLandroid/sysprop/ContactsProperties;->tryParseInteger(Ljava/lang/String;)Ljava/lang/Integer;
HSPLandroid/sysprop/DisplayProperties;->debug_force_rtl()Ljava/util/Optional;
+HSPLandroid/sysprop/DisplayProperties;->debug_force_rtl(Ljava/lang/Boolean;)V
+PLandroid/sysprop/DisplayProperties;->debug_layout()Ljava/util/Optional;
HSPLandroid/sysprop/DisplayProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
HSPLandroid/sysprop/ProductProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
HSPLandroid/sysprop/ProductProperties;->unbundled_apps()Ljava/util/Optional;
-HSPLandroid/sysprop/TelephonyProperties;->icc_operator_numeric()Ljava/util/List;
+HPLandroid/sysprop/TelephonyProperties;->airplane_mode_on(Ljava/lang/Boolean;)V
+HSPLandroid/sysprop/TelephonyProperties;->baseband_version()Ljava/util/List;
+HSPLandroid/sysprop/TelephonyProperties;->baseband_version(Ljava/util/List;)V
+HSPLandroid/sysprop/TelephonyProperties;->call_ring_delay()Ljava/util/Optional;
+HSPLandroid/sysprop/TelephonyProperties;->current_active_phone()Ljava/util/List;
+HSPLandroid/sysprop/TelephonyProperties;->current_active_phone(Ljava/util/List;)V
+HSPLandroid/sysprop/TelephonyProperties;->data_network_type()Ljava/util/List;
+HSPLandroid/sysprop/TelephonyProperties;->data_network_type(Ljava/util/List;)V
+HSPLandroid/sysprop/TelephonyProperties;->default_network()Ljava/util/List;
+HSPLandroid/sysprop/TelephonyProperties;->formatList(Ljava/util/List;)Ljava/lang/String;
+PLandroid/sysprop/TelephonyProperties;->icc_operator_iso_country()Ljava/util/List;
+PLandroid/sysprop/TelephonyProperties;->icc_operator_numeric()Ljava/util/List;
+HSPLandroid/sysprop/TelephonyProperties;->in_ecm_mode()Ljava/util/Optional;
HSPLandroid/sysprop/TelephonyProperties;->lambda$baseband_version$0(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/sysprop/TelephonyProperties;->lambda$current_active_phone$5(Ljava/lang/String;)Ljava/lang/Integer;
+HSPLandroid/sysprop/TelephonyProperties;->lambda$data_network_type$10(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/sysprop/TelephonyProperties;->lambda$default_network$14(Ljava/lang/String;)Ljava/lang/Integer;
+HPLandroid/sysprop/TelephonyProperties;->lambda$operator_alpha$1(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/sysprop/TelephonyProperties;->lambda$operator_is_roaming$3(Ljava/lang/String;)Ljava/lang/Boolean;
+HSPLandroid/sysprop/TelephonyProperties;->lambda$operator_iso_country$4(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/sysprop/TelephonyProperties;->lambda$operator_numeric$2(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/sysprop/TelephonyProperties;->lambda$sim_state$6(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/sysprop/TelephonyProperties;->max_active_modems()Ljava/util/Optional;
+HSPLandroid/sysprop/TelephonyProperties;->mobile_data()Ljava/util/Optional;
HSPLandroid/sysprop/TelephonyProperties;->multi_sim_config()Ljava/util/Optional;
+HSPLandroid/sysprop/TelephonyProperties;->operator_alpha()Ljava/util/List;
+HSPLandroid/sysprop/TelephonyProperties;->operator_alpha(Ljava/util/List;)V
+HSPLandroid/sysprop/TelephonyProperties;->operator_is_roaming()Ljava/util/List;
+HSPLandroid/sysprop/TelephonyProperties;->operator_is_roaming(Ljava/util/List;)V
+HSPLandroid/sysprop/TelephonyProperties;->operator_iso_country()Ljava/util/List;
+HSPLandroid/sysprop/TelephonyProperties;->operator_iso_country(Ljava/util/List;)V
+HSPLandroid/sysprop/TelephonyProperties;->operator_numeric()Ljava/util/List;
+HSPLandroid/sysprop/TelephonyProperties;->operator_numeric(Ljava/util/List;)V
+HSPLandroid/sysprop/TelephonyProperties;->otasp_num_schema()Ljava/util/List;
+HSPLandroid/sysprop/TelephonyProperties;->reset_on_radio_tech_change()Ljava/util/Optional;
+HSPLandroid/sysprop/TelephonyProperties;->ril_sends_multiple_call_ring()Ljava/util/Optional;
+HSPLandroid/sysprop/TelephonyProperties;->sim_state()Ljava/util/List;
+HSPLandroid/sysprop/TelephonyProperties;->sim_state(Ljava/util/List;)V
+HSPLandroid/sysprop/TelephonyProperties;->sms_receive()Ljava/util/List;
+HSPLandroid/sysprop/TelephonyProperties;->sms_send()Ljava/util/List;
HSPLandroid/sysprop/TelephonyProperties;->tryParseBoolean(Ljava/lang/String;)Ljava/lang/Boolean;
HSPLandroid/sysprop/TelephonyProperties;->tryParseInteger(Ljava/lang/String;)Ljava/lang/Integer;
HSPLandroid/sysprop/TelephonyProperties;->tryParseList(Ljava/util/function/Function;Ljava/lang/String;)Ljava/util/List;
HSPLandroid/sysprop/TelephonyProperties;->tryParseString(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/sysprop/TelephonyProperties;->wake_lock_timeout()Ljava/util/Optional;
+HSPLandroid/sysprop/VoldProperties;->decrypt()Ljava/util/Optional;
+HSPLandroid/sysprop/VoldProperties;->encrypt_progress()Ljava/util/Optional;
+HSPLandroid/sysprop/VoldProperties;->tryParseString(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/system/ErrnoException;-><init>(Ljava/lang/String;I)V
HSPLandroid/system/ErrnoException;->getMessage()Ljava/lang/String;
+HSPLandroid/system/ErrnoException;->rethrowAsIOException()Ljava/io/IOException;
+HPLandroid/system/ErrnoException;->rethrowAsSocketException()Ljava/net/SocketException;
HSPLandroid/system/GaiException;-><init>(Ljava/lang/String;I)V
-PLandroid/system/GaiException;->rethrowAsUnknownHostException(Ljava/lang/String;)Ljava/net/UnknownHostException;
+HSPLandroid/system/GaiException;-><init>(Ljava/lang/String;ILjava/lang/Throwable;)V
+HSPLandroid/system/GaiException;->getMessage()Ljava/lang/String;
+HSPLandroid/system/GaiException;->rethrowAsUnknownHostException(Ljava/lang/String;)Ljava/net/UnknownHostException;
HSPLandroid/system/Int32Ref;-><init>(I)V
+HPLandroid/system/NetlinkSocketAddress;-><init>(II)V
HSPLandroid/system/Os;->accept(Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;)Ljava/io/FileDescriptor;
HSPLandroid/system/Os;->accept(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)Ljava/io/FileDescriptor;
+HSPLandroid/system/Os;->access(Ljava/lang/String;I)Z
+HPLandroid/system/Os;->bind(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
+HSPLandroid/system/Os;->bind(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V
HSPLandroid/system/Os;->capget(Landroid/system/StructCapUserHeader;)[Landroid/system/StructCapUserData;
HSPLandroid/system/Os;->chmod(Ljava/lang/String;I)V
+HSPLandroid/system/Os;->chown(Ljava/lang/String;II)V
HSPLandroid/system/Os;->close(Ljava/io/FileDescriptor;)V
+HPLandroid/system/Os;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
+HPLandroid/system/Os;->connect(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V
+HSPLandroid/system/Os;->fchmod(Ljava/io/FileDescriptor;I)V
+HSPLandroid/system/Os;->fchown(Ljava/io/FileDescriptor;II)V
HSPLandroid/system/Os;->fcntlInt(Ljava/io/FileDescriptor;II)I
HSPLandroid/system/Os;->fdatasync(Ljava/io/FileDescriptor;)V
HSPLandroid/system/Os;->fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat;
+HPLandroid/system/Os;->fsync(Ljava/io/FileDescriptor;)V
+HSPLandroid/system/Os;->ftruncate(Ljava/io/FileDescriptor;J)V
+HSPLandroid/system/Os;->getenv(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/system/Os;->getpeername(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress;
HSPLandroid/system/Os;->getpgid(I)I
HSPLandroid/system/Os;->getpid()I
+HSPLandroid/system/Os;->getrlimit(I)Landroid/system/StructRlimit;
+HPLandroid/system/Os;->getsockname(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress;
HSPLandroid/system/Os;->gettid()I
HSPLandroid/system/Os;->getuid()I
+HSPLandroid/system/Os;->getxattr(Ljava/lang/String;Ljava/lang/String;)[B
HSPLandroid/system/Os;->ioctlInt(Ljava/io/FileDescriptor;ILandroid/system/Int32Ref;)I
+HPLandroid/system/Os;->kill(II)V
HSPLandroid/system/Os;->listen(Ljava/io/FileDescriptor;I)V
+HSPLandroid/system/Os;->lseek(Ljava/io/FileDescriptor;JI)J
+HSPLandroid/system/Os;->lstat(Ljava/lang/String;)Landroid/system/StructStat;
HSPLandroid/system/Os;->mkdir(Ljava/lang/String;I)V
+HSPLandroid/system/Os;->mlock(JJ)V
+HSPLandroid/system/Os;->mmap(JJIILjava/io/FileDescriptor;J)J
+HSPLandroid/system/Os;->munmap(JJ)V
HSPLandroid/system/Os;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor;
-PLandroid/system/Os;->pipe2(I)[Ljava/io/FileDescriptor;
+HSPLandroid/system/Os;->pipe2(I)[Ljava/io/FileDescriptor;
HSPLandroid/system/Os;->poll([Landroid/system/StructPollfd;I)I
+HSPLandroid/system/Os;->posix_fallocate(Ljava/io/FileDescriptor;JJ)V
+HSPLandroid/system/Os;->prctl(IJJJJ)I
+HPLandroid/system/Os;->read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
HSPLandroid/system/Os;->read(Ljava/io/FileDescriptor;[BII)I
+HSPLandroid/system/Os;->readlink(Ljava/lang/String;)Ljava/lang/String;
+PLandroid/system/Os;->rename(Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/system/Os;->sendto(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;ILjava/net/InetAddress;I)I
+HPLandroid/system/Os;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/SocketAddress;)I
HSPLandroid/system/Os;->setpgid(II)V
HSPLandroid/system/Os;->setregid(II)V
HSPLandroid/system/Os;->setreuid(II)V
+HPLandroid/system/Os;->setsockoptIfreq(Ljava/io/FileDescriptor;IILjava/lang/String;)V
+PLandroid/system/Os;->setsockoptInt(Ljava/io/FileDescriptor;III)V
HSPLandroid/system/Os;->setsockoptTimeval(Ljava/io/FileDescriptor;IILandroid/system/StructTimeval;)V
HSPLandroid/system/Os;->socket(III)Ljava/io/FileDescriptor;
+HSPLandroid/system/Os;->socketpair(IIILjava/io/FileDescriptor;Ljava/io/FileDescriptor;)V
HSPLandroid/system/Os;->stat(Ljava/lang/String;)Landroid/system/StructStat;
HSPLandroid/system/Os;->statvfs(Ljava/lang/String;)Landroid/system/StructStatVfs;
+PLandroid/system/Os;->strsignal(I)Ljava/lang/String;
+HSPLandroid/system/Os;->symlink(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/system/Os;->sysconf(I)J
+HSPLandroid/system/Os;->umask(I)I
+HSPLandroid/system/Os;->uname()Landroid/system/StructUtsname;
+HPLandroid/system/Os;->write(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
+HSPLandroid/system/Os;->write(Ljava/io/FileDescriptor;[BII)I
HSPLandroid/system/OsConstants;->S_ISDIR(I)Z
+HSPLandroid/system/OsConstants;->S_ISLNK(I)Z
+HSPLandroid/system/OsConstants;->S_ISREG(I)Z
HSPLandroid/system/OsConstants;->errnoName(I)Ljava/lang/String;
+HSPLandroid/system/OsConstants;->gaiName(I)Ljava/lang/String;
+HPLandroid/system/PacketSocketAddress;-><init>(II[B)V
HSPLandroid/system/StructAddrinfo;-><init>()V
HSPLandroid/system/StructCapUserData;-><init>(III)V
HSPLandroid/system/StructCapUserHeader;-><init>(II)V
+HSPLandroid/system/StructGroupReq;-><init>(ILjava/net/InetAddress;)V
HSPLandroid/system/StructIfaddrs;-><init>(Ljava/lang/String;ILjava/net/InetAddress;Ljava/net/InetAddress;Ljava/net/InetAddress;[B)V
HSPLandroid/system/StructLinger;-><init>(II)V
HSPLandroid/system/StructLinger;->isOn()Z
HSPLandroid/system/StructPollfd;-><init>()V
+HSPLandroid/system/StructRlimit;-><init>(JJ)V
HSPLandroid/system/StructStat;-><init>(JJIJIIJJLandroid/system/StructTimespec;Landroid/system/StructTimespec;Landroid/system/StructTimespec;JJ)V
HSPLandroid/system/StructStatVfs;-><init>(JJJJJJJJJJJ)V
HSPLandroid/system/StructTimespec;-><init>(JJ)V
HSPLandroid/system/StructTimespec;->equals(Ljava/lang/Object;)Z
HSPLandroid/system/StructTimeval;-><init>(JJ)V
HSPLandroid/system/StructTimeval;->fromMillis(J)Landroid/system/StructTimeval;
+HSPLandroid/system/StructUtsname;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/system/UnixSocketAddress;-><init>([B)V
+HSPLandroid/system/UnixSocketAddress;->createFileSystem(Ljava/lang/String;)Landroid/system/UnixSocketAddress;
+HSPLandroid/system/suspend/ISuspendControlService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/system/suspend/ISuspendControlService$Stub$Proxy;->getWakeLockStats()[Landroid/system/suspend/WakeLockInfo;
+HSPLandroid/system/suspend/ISuspendControlService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/system/suspend/ISuspendControlService;
+HSPLandroid/system/suspend/WakeLockInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/system/suspend/WakeLockInfo;
+HSPLandroid/system/suspend/WakeLockInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/system/suspend/WakeLockInfo$1;->newArray(I)[Landroid/system/suspend/WakeLockInfo;
+HSPLandroid/system/suspend/WakeLockInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/system/suspend/WakeLockInfo;-><init>()V
+HSPLandroid/system/suspend/WakeLockInfo;->readFromParcel(Landroid/os/Parcel;)V
+PLandroid/telecom/-$$Lambda$qa4s1Fm2YuohEunaJUJcmJXDXG0;->getSessionId()Ljava/lang/String;
+PLandroid/telecom/CallAudioState;-><init>(ZIILandroid/bluetooth/BluetoothDevice;Ljava/util/Collection;)V
+PLandroid/telecom/CallAudioState;->getRoute()I
+PLandroid/telecom/CallAudioState;->getSupportedRouteMask()I
+PLandroid/telecom/CallAudioState;->isMuted()Z
+HPLandroid/telecom/DefaultDialerManager;->getDefaultDialerApplication(Landroid/content/Context;)Ljava/lang/String;
+HPLandroid/telecom/DefaultDialerManager;->getDefaultDialerApplication(Landroid/content/Context;I)Ljava/lang/String;
+PLandroid/telecom/Log;->addEvent(Landroid/telecom/Logging/EventManager$Loggable;Ljava/lang/String;Ljava/lang/Object;)V
+PLandroid/telecom/Log;->addRequestResponsePair(Landroid/telecom/Logging/EventManager$TimedEventPair;)V
+PLandroid/telecom/Log;->buildMessage(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
+PLandroid/telecom/Log;->continueSession(Landroid/telecom/Logging/Session;Ljava/lang/String;)V
+PLandroid/telecom/Log;->createSubsession()Landroid/telecom/Logging/Session;
+PLandroid/telecom/Log;->d(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
+PLandroid/telecom/Log;->d(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
+PLandroid/telecom/Log;->dumpEvents(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLandroid/telecom/Log;->endSession()V
+PLandroid/telecom/Log;->getDialableCount(Ljava/lang/String;)I
+PLandroid/telecom/Log;->getEventManager()Landroid/telecom/Logging/EventManager;
+PLandroid/telecom/Log;->getPrefixFromObject(Ljava/lang/Object;)Ljava/lang/String;
+PLandroid/telecom/Log;->getSessionId()Ljava/lang/String;
+HPLandroid/telecom/Log;->getSessionManager()Landroid/telecom/Logging/SessionManager;
+PLandroid/telecom/Log;->i(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
+PLandroid/telecom/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
+PLandroid/telecom/Log;->isLoggable(I)Z
+PLandroid/telecom/Log;->obfuscatePhoneNumber(Ljava/lang/StringBuilder;Ljava/lang/String;)V
+HSPLandroid/telecom/Log;->pii(Ljava/lang/Object;)Ljava/lang/String;
+PLandroid/telecom/Log;->piiHandle(Ljava/lang/Object;)Ljava/lang/String;
+PLandroid/telecom/Log;->registerEventListener(Landroid/telecom/Logging/EventManager$EventListener;)V
+PLandroid/telecom/Log;->registerSessionListener(Landroid/telecom/Logging/SessionManager$ISessionListener;)V
+PLandroid/telecom/Log;->setSessionContext(Landroid/content/Context;)V
+PLandroid/telecom/Log;->setTag(Ljava/lang/String;)V
+PLandroid/telecom/Log;->startSession(Ljava/lang/String;)V
+PLandroid/telecom/Log;->v(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
+PLandroid/telecom/Log;->v(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
+HPLandroid/telecom/Logging/-$$Lambda$L5F_SL2jOCUETYvgdB36aGwY50E;->get()I
+PLandroid/telecom/Logging/-$$Lambda$SessionManager$VyH2gT1EjIvzDy_C9JfTT60CISM;-><init>(Landroid/telecom/Logging/SessionManager;)V
+PLandroid/telecom/Logging/-$$Lambda$SessionManager$VyH2gT1EjIvzDy_C9JfTT60CISM;->run()V
+PLandroid/telecom/Logging/-$$Lambda$SessionManager$hhtZwTEbvO-fLNlAvB6Do9_2gW4;-><init>(Landroid/telecom/Logging/SessionManager;)V
+PLandroid/telecom/Logging/-$$Lambda$SessionManager$hhtZwTEbvO-fLNlAvB6Do9_2gW4;->get()J
+PLandroid/telecom/Logging/EventManager$TimedEventPair;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/telecom/Logging/EventManager$TimedEventPair;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
+PLandroid/telecom/Logging/EventManager;-><clinit>()V
+PLandroid/telecom/Logging/EventManager;-><init>(Landroid/telecom/Logging/SessionManager$ISessionIdQueryHandler;)V
+PLandroid/telecom/Logging/EventManager;->addRequestResponsePair(Landroid/telecom/Logging/EventManager$TimedEventPair;)V
+PLandroid/telecom/Logging/EventManager;->dumpEvents(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLandroid/telecom/Logging/EventManager;->event(Landroid/telecom/Logging/EventManager$Loggable;Ljava/lang/String;Ljava/lang/Object;)V
+PLandroid/telecom/Logging/EventManager;->registerEventListener(Landroid/telecom/Logging/EventManager$EventListener;)V
+PLandroid/telecom/Logging/Session;-><init>(Ljava/lang/String;Ljava/lang/String;JZLjava/lang/String;)V
+PLandroid/telecom/Logging/Session;->addChild(Landroid/telecom/Logging/Session;)V
+PLandroid/telecom/Logging/Session;->equals(Ljava/lang/Object;)Z
+PLandroid/telecom/Logging/Session;->getChildSessions()Ljava/util/ArrayList;
+PLandroid/telecom/Logging/Session;->getExecutionStartTimeMilliseconds()J
+HPLandroid/telecom/Logging/Session;->getFullMethodPath(Ljava/lang/StringBuilder;ZI)V
+PLandroid/telecom/Logging/Session;->getFullMethodPath(Z)Ljava/lang/String;
+PLandroid/telecom/Logging/Session;->getFullSessionId()Ljava/lang/String;
+HPLandroid/telecom/Logging/Session;->getFullSessionId(I)Ljava/lang/String;
+PLandroid/telecom/Logging/Session;->getLocalExecutionTime()J
+PLandroid/telecom/Logging/Session;->getNextChildId()Ljava/lang/String;
+HPLandroid/telecom/Logging/Session;->getParentSession()Landroid/telecom/Logging/Session;
+PLandroid/telecom/Logging/Session;->getShortMethodName()Ljava/lang/String;
+PLandroid/telecom/Logging/Session;->isExternal()Z
+PLandroid/telecom/Logging/Session;->isSessionCompleted()Z
+PLandroid/telecom/Logging/Session;->isStartedFromActiveSession()Z
+PLandroid/telecom/Logging/Session;->markSessionCompleted(J)V
+PLandroid/telecom/Logging/Session;->removeChild(Landroid/telecom/Logging/Session;)V
+PLandroid/telecom/Logging/Session;->setExecutionStartTimeMs(J)V
+PLandroid/telecom/Logging/Session;->setParentSession(Landroid/telecom/Logging/Session;)V
+PLandroid/telecom/Logging/Session;->setSessionId(Ljava/lang/String;)V
+PLandroid/telecom/Logging/Session;->setShortMethodName(Ljava/lang/String;)V
+PLandroid/telecom/Logging/Session;->toString()Ljava/lang/String;
+PLandroid/telecom/Logging/SessionManager;-><init>()V
+PLandroid/telecom/Logging/SessionManager;->cleanupStaleSessions(J)V
+PLandroid/telecom/Logging/SessionManager;->continueSession(Landroid/telecom/Logging/Session;Ljava/lang/String;)V
+PLandroid/telecom/Logging/SessionManager;->createSubsession()Landroid/telecom/Logging/Session;
+PLandroid/telecom/Logging/SessionManager;->createSubsession(Z)Landroid/telecom/Logging/Session;
+HPLandroid/telecom/Logging/SessionManager;->endParentSessions(Landroid/telecom/Logging/Session;)V
+PLandroid/telecom/Logging/SessionManager;->endSession()V
+HPLandroid/telecom/Logging/SessionManager;->getBase64Encoding(I)Ljava/lang/String;
+PLandroid/telecom/Logging/SessionManager;->getCallingThreadId()I
+PLandroid/telecom/Logging/SessionManager;->getCleanupTimeout(Landroid/content/Context;)J
+PLandroid/telecom/Logging/SessionManager;->getNextSessionID()Ljava/lang/String;
+PLandroid/telecom/Logging/SessionManager;->getSessionCleanupTimeoutMs()J
+PLandroid/telecom/Logging/SessionManager;->getSessionId()Ljava/lang/String;
+PLandroid/telecom/Logging/SessionManager;->lambda$new$0$SessionManager()V
+PLandroid/telecom/Logging/SessionManager;->lambda$new$1$SessionManager()J
+PLandroid/telecom/Logging/SessionManager;->notifySessionCompleteListeners(Ljava/lang/String;J)V
+PLandroid/telecom/Logging/SessionManager;->registerSessionListener(Landroid/telecom/Logging/SessionManager$ISessionListener;)V
+PLandroid/telecom/Logging/SessionManager;->resetStaleSessionTimer()V
+PLandroid/telecom/Logging/SessionManager;->setContext(Landroid/content/Context;)V
+PLandroid/telecom/Logging/SessionManager;->startSession(Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/telecom/PhoneAccount$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/PhoneAccount;
+PLandroid/telecom/PhoneAccount$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/telecom/PhoneAccount$Builder;-><init>(Landroid/telecom/PhoneAccount;)V
+HSPLandroid/telecom/PhoneAccount$Builder;-><init>(Landroid/telecom/PhoneAccountHandle;Ljava/lang/CharSequence;)V
+HSPLandroid/telecom/PhoneAccount$Builder;->addSupportedUriScheme(Ljava/lang/String;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->build()Landroid/telecom/PhoneAccount;
+HSPLandroid/telecom/PhoneAccount$Builder;->setAddress(Landroid/net/Uri;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setCapabilities(I)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setExtras(Landroid/os/Bundle;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setGroupId(Ljava/lang/String;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setHighlightColor(I)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setIcon(Landroid/graphics/drawable/Icon;)Landroid/telecom/PhoneAccount$Builder;
+PLandroid/telecom/PhoneAccount$Builder;->setIsEnabled(Z)Landroid/telecom/PhoneAccount$Builder;
+PLandroid/telecom/PhoneAccount$Builder;->setLabel(Ljava/lang/CharSequence;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setShortDescription(Ljava/lang/CharSequence;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setSubscriptionAddress(Landroid/net/Uri;)Landroid/telecom/PhoneAccount$Builder;
+PLandroid/telecom/PhoneAccount$Builder;->setSupportedAudioRoutes(I)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount$Builder;->setSupportedUriSchemes(Ljava/util/List;)Landroid/telecom/PhoneAccount$Builder;
+PLandroid/telecom/PhoneAccount;-><init>(Landroid/os/Parcel;)V
+PLandroid/telecom/PhoneAccount;-><init>(Landroid/os/Parcel;Landroid/telecom/PhoneAccount$1;)V
+HSPLandroid/telecom/PhoneAccount;-><init>(Landroid/telecom/PhoneAccountHandle;Landroid/net/Uri;Landroid/net/Uri;ILandroid/graphics/drawable/Icon;ILjava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/util/List;Landroid/os/Bundle;IZLjava/lang/String;)V
+HSPLandroid/telecom/PhoneAccount;-><init>(Landroid/telecom/PhoneAccountHandle;Landroid/net/Uri;Landroid/net/Uri;ILandroid/graphics/drawable/Icon;ILjava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/util/List;Landroid/os/Bundle;IZLjava/lang/String;Landroid/telecom/PhoneAccount$1;)V
+HSPLandroid/telecom/PhoneAccount;->audioRoutesToString()Ljava/lang/String;
+HSPLandroid/telecom/PhoneAccount;->builder(Landroid/telecom/PhoneAccountHandle;Ljava/lang/CharSequence;)Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount;->capabilitiesToString()Ljava/lang/String;
+PLandroid/telecom/PhoneAccount;->equals(Ljava/lang/Object;)Z
+PLandroid/telecom/PhoneAccount;->getAccountHandle()Landroid/telecom/PhoneAccountHandle;
+PLandroid/telecom/PhoneAccount;->getAddress()Landroid/net/Uri;
+PLandroid/telecom/PhoneAccount;->getCapabilities()I
+PLandroid/telecom/PhoneAccount;->getExtras()Landroid/os/Bundle;
+PLandroid/telecom/PhoneAccount;->getGroupId()Ljava/lang/String;
+PLandroid/telecom/PhoneAccount;->getHighlightColor()I
+PLandroid/telecom/PhoneAccount;->getIcon()Landroid/graphics/drawable/Icon;
+PLandroid/telecom/PhoneAccount;->getLabel()Ljava/lang/CharSequence;
+PLandroid/telecom/PhoneAccount;->getShortDescription()Ljava/lang/CharSequence;
+PLandroid/telecom/PhoneAccount;->getSubscriptionAddress()Landroid/net/Uri;
+PLandroid/telecom/PhoneAccount;->getSupportedAudioRoutes()I
+PLandroid/telecom/PhoneAccount;->getSupportedUriSchemes()Ljava/util/List;
+HSPLandroid/telecom/PhoneAccount;->hasAudioRoutes(I)Z
+HSPLandroid/telecom/PhoneAccount;->hasCapabilities(I)Z
+PLandroid/telecom/PhoneAccount;->isEnabled()Z
+PLandroid/telecom/PhoneAccount;->setIsEnabled(Z)V
+PLandroid/telecom/PhoneAccount;->supportsUriScheme(Ljava/lang/String;)Z
+PLandroid/telecom/PhoneAccount;->toBuilder()Landroid/telecom/PhoneAccount$Builder;
+HSPLandroid/telecom/PhoneAccount;->toString()Ljava/lang/String;
+HSPLandroid/telecom/PhoneAccount;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/telecom/PhoneAccountHandle$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telecom/PhoneAccountHandle;
HSPLandroid/telecom/PhoneAccountHandle$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telecom/PhoneAccountHandle;-><init>(Landroid/content/ComponentName;Ljava/lang/String;)V
+HSPLandroid/telecom/PhoneAccountHandle;-><init>(Landroid/content/ComponentName;Ljava/lang/String;Landroid/os/UserHandle;)V
+HSPLandroid/telecom/PhoneAccountHandle;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telecom/PhoneAccountHandle;-><init>(Landroid/os/Parcel;Landroid/telecom/PhoneAccountHandle$1;)V
+HSPLandroid/telecom/PhoneAccountHandle;->checkParameters(Landroid/content/ComponentName;Landroid/os/UserHandle;)V
+HSPLandroid/telecom/PhoneAccountHandle;->equals(Ljava/lang/Object;)Z
HSPLandroid/telecom/PhoneAccountHandle;->getComponentName()Landroid/content/ComponentName;
HSPLandroid/telecom/PhoneAccountHandle;->getId()Ljava/lang/String;
+HSPLandroid/telecom/PhoneAccountHandle;->getUserHandle()Landroid/os/UserHandle;
HSPLandroid/telecom/PhoneAccountHandle;->toString()Ljava/lang/String;
HSPLandroid/telecom/PhoneAccountHandle;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/telecom/TelecomManager;-><init>(Landroid/content/Context;)V
HSPLandroid/telecom/TelecomManager;-><init>(Landroid/content/Context;Lcom/android/internal/telecom/ITelecomService;)V
+HSPLandroid/telecom/TelecomManager;->getCallCapablePhoneAccounts()Ljava/util/List;
+HSPLandroid/telecom/TelecomManager;->getCallCapablePhoneAccounts(Z)Ljava/util/List;
HSPLandroid/telecom/TelecomManager;->getCallState()I
+HSPLandroid/telecom/TelecomManager;->getCurrentTtyMode()I
HSPLandroid/telecom/TelecomManager;->getDefaultDialerPackage()Ljava/lang/String;
+PLandroid/telecom/TelecomManager;->getDefaultPhoneApp()Landroid/content/ComponentName;
+HPLandroid/telecom/TelecomManager;->getPhoneAccount(Landroid/telecom/PhoneAccountHandle;)Landroid/telecom/PhoneAccount;
+HPLandroid/telecom/TelecomManager;->getPhoneAccountsSupportingScheme(Ljava/lang/String;)Ljava/util/List;
+PLandroid/telecom/TelecomManager;->getSimCallManager()Landroid/telecom/PhoneAccountHandle;
+PLandroid/telecom/TelecomManager;->getSimCallManager(I)Landroid/telecom/PhoneAccountHandle;
+HSPLandroid/telecom/TelecomManager;->getSystemDialerPackage()Ljava/lang/String;
HSPLandroid/telecom/TelecomManager;->getTelecomService()Lcom/android/internal/telecom/ITelecomService;
+HSPLandroid/telecom/TelecomManager;->getUserSelectedOutgoingPhoneAccount()Landroid/telecom/PhoneAccountHandle;
+HSPLandroid/telecom/TelecomManager;->isInCall()Z
+HPLandroid/telecom/TelecomManager;->isInEmergencyCall()Z
+PLandroid/telecom/TelecomManager;->isRinging()Z
HSPLandroid/telecom/TelecomManager;->isServiceConnected()Z
+HSPLandroid/telecom/TelecomManager;->registerPhoneAccount(Landroid/telecom/PhoneAccount;)V
+PLandroid/telecom/TimedEvent;->averageTimings(Ljava/util/Collection;)Ljava/util/Map;
+HSPLandroid/telephony/-$$Lambda$NetworkRegistrationInfo$1JuZmO5PoYGZY8bHhZYwvmqwOB0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$MtX5gtAKHxLcUp_ibya6VO1zuoE;-><init>(Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;Landroid/telephony/PhoneStateListener;I)V
HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$MtX5gtAKHxLcUp_ibya6VO1zuoE;->runOrThrow()V
HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Rh4FuYaAZPAbrOYr6GGF6llSePE;-><init>(Landroid/telephony/PhoneStateListener;I)V
@@ -6303,163 +20962,1197 @@ HSPLandroid/telephony/-$$Lambda$PhoneStateListener$IPhoneStateListenerStub$Rh4Fu
HSPLandroid/telephony/-$$Lambda$SubscriptionManager$R_uORt9bKcmEo6JnjiGP2KgjIOQ;-><init>(Landroid/telephony/SubscriptionManager;)V
HSPLandroid/telephony/-$$Lambda$TelephonyFrameworkInitializer$3Kis6wL1IbLustWe9A2o4-2YpGo;->createService(Landroid/content/Context;)Ljava/lang/Object;
HSPLandroid/telephony/-$$Lambda$TelephonyFrameworkInitializer$b_92_3ZijRrdEa9yLyFA5xu19OM;->createService(Landroid/content/Context;)Ljava/lang/Object;
+HSPLandroid/telephony/-$$Lambda$TelephonyFrameworkInitializer$mpe0Kh92VEQmEtmo60oqykdvnBE;->createService(Landroid/content/Context;)Ljava/lang/Object;
HSPLandroid/telephony/-$$Lambda$TelephonyFrameworkInitializer$sQClc4rjc9ydh0nXpY79gr33av4;->createService(Landroid/content/Context;)Ljava/lang/Object;
+HPLandroid/telephony/-$$Lambda$TelephonyManager$2$l6Pazxfi7QghMr2Z0MpduhNe6yc;-><init>(Landroid/telephony/TelephonyManager$CellInfoCallback;Ljava/util/List;)V
+PLandroid/telephony/-$$Lambda$TelephonyManager$2$l6Pazxfi7QghMr2Z0MpduhNe6yc;->run()V
HSPLandroid/telephony/-$$Lambda$TelephonyRegistryManager$1$cLzLZB4oGnI-HG_-4MhxcXoHys8;-><init>(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
HSPLandroid/telephony/-$$Lambda$TelephonyRegistryManager$1$cLzLZB4oGnI-HG_-4MhxcXoHys8;->run()V
+HSPLandroid/telephony/AccessNetworkConstants;->transportTypeToString(I)Ljava/lang/String;
+HPLandroid/telephony/AnomalyReporter;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLandroid/telephony/AnomalyReporter;->initialize(Landroid/content/Context;)V
+HSPLandroid/telephony/CallAttributes;-><init>(Landroid/telephony/PreciseCallState;ILandroid/telephony/CallQuality;)V
+PLandroid/telephony/CallAttributes;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CallQuality;-><init>(IIIIIIIIIII)V
+PLandroid/telephony/CallQuality;->toString()Ljava/lang/String;
HSPLandroid/telephony/CarrierConfigManager;-><init>(Landroid/content/Context;)V
HSPLandroid/telephony/CarrierConfigManager;->getConfig()Landroid/os/PersistableBundle;
+HPLandroid/telephony/CarrierConfigManager;->getConfigByComponentForSubId(Ljava/lang/String;I)Landroid/os/PersistableBundle;
HSPLandroid/telephony/CarrierConfigManager;->getConfigForSubId(I)Landroid/os/PersistableBundle;
+PLandroid/telephony/CarrierConfigManager;->getDefaultCarrierServicePackageName()Ljava/lang/String;
+HSPLandroid/telephony/CarrierConfigManager;->getDefaultConfig()Landroid/os/PersistableBundle;
HSPLandroid/telephony/CarrierConfigManager;->getICarrierConfigLoader()Lcom/android/internal/telephony/ICarrierConfigLoader;
+HSPLandroid/telephony/CarrierConfigManager;->updateConfigForPhoneId(ILjava/lang/String;)V
+HPLandroid/telephony/CarrierRestrictionRules;-><init>()V
+HPLandroid/telephony/CarrierRestrictionRules;-><init>(Landroid/telephony/CarrierRestrictionRules$1;)V
+HPLandroid/telephony/CarrierRestrictionRules;->access$202(Landroid/telephony/CarrierRestrictionRules;Ljava/util/List;)Ljava/util/List;
+HPLandroid/telephony/CarrierRestrictionRules;->access$302(Landroid/telephony/CarrierRestrictionRules;Ljava/util/List;)Ljava/util/List;
+HPLandroid/telephony/CarrierRestrictionRules;->access$402(Landroid/telephony/CarrierRestrictionRules;I)I
+HPLandroid/telephony/CarrierRestrictionRules;->access$502(Landroid/telephony/CarrierRestrictionRules;I)I
+HPLandroid/telephony/CarrierRestrictionRules;->newBuilder()Landroid/telephony/CarrierRestrictionRules$Builder;
+HPLandroid/telephony/CarrierRestrictionRules;->toString()Ljava/lang/String;
+HPLandroid/telephony/CarrierRestrictionRules;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/telephony/CellConfigLte$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellConfigLte;
+PLandroid/telephony/CellConfigLte$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/telephony/CellConfigLte;-><init>(Landroid/hardware/radio/V1_4/CellConfigLte;)V
+PLandroid/telephony/CellConfigLte;-><init>(Landroid/os/Parcel;)V
+PLandroid/telephony/CellConfigLte;-><init>(Landroid/os/Parcel;Landroid/telephony/CellConfigLte$1;)V
+HPLandroid/telephony/CellConfigLte;->toString()Ljava/lang/String;
+HPLandroid/telephony/CellConfigLte;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/telephony/CellIdentity$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentity;
HSPLandroid/telephony/CellIdentity$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/telephony/CellIdentity;-><init>(Ljava/lang/String;ILandroid/os/Parcel;)V
HSPLandroid/telephony/CellIdentity;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/telephony/CellIdentity;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/CellIdentity;->getOperatorAlphaLong()Ljava/lang/CharSequence;
+HSPLandroid/telephony/CellIdentity;->getOperatorAlphaShort()Ljava/lang/CharSequence;
+HSPLandroid/telephony/CellIdentity;->getType()I
+HSPLandroid/telephony/CellIdentity;->inRangeOrUnavailable(III)I
HSPLandroid/telephony/CellIdentity;->isMcc(Ljava/lang/String;)Z
HSPLandroid/telephony/CellIdentity;->isMnc(Ljava/lang/String;)Z
+HSPLandroid/telephony/CellIdentity;->setOperatorAlphaLong(Ljava/lang/String;)V
+HSPLandroid/telephony/CellIdentity;->setOperatorAlphaShort(Ljava/lang/String;)V
HSPLandroid/telephony/CellIdentity;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/telephony/CellIdentityGsm$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityGsm;
+PLandroid/telephony/CellIdentityGsm$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/telephony/CellIdentityGsm;-><init>(IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/telephony/CellIdentityGsm;-><init>(Landroid/hardware/radio/V1_2/CellIdentityGsm;)V
+PLandroid/telephony/CellIdentityGsm;-><init>(Landroid/os/Parcel;)V
+HPLandroid/telephony/CellIdentityGsm;->asCellLocation()Landroid/telephony/CellLocation;
+HPLandroid/telephony/CellIdentityGsm;->asCellLocation()Landroid/telephony/gsm/GsmCellLocation;
+PLandroid/telephony/CellIdentityGsm;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityGsm;
+HPLandroid/telephony/CellIdentityGsm;->equals(Ljava/lang/Object;)Z
+HPLandroid/telephony/CellIdentityGsm;->getChannelNumber()I
+HPLandroid/telephony/CellIdentityGsm;->getCid()I
+HPLandroid/telephony/CellIdentityGsm;->getMccString()Ljava/lang/String;
+HPLandroid/telephony/CellIdentityGsm;->getMncString()Ljava/lang/String;
+HPLandroid/telephony/CellIdentityGsm;->toString()Ljava/lang/String;
+PLandroid/telephony/CellIdentityGsm;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/telephony/CellIdentityLte$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityLte;
+PLandroid/telephony/CellIdentityLte$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/telephony/CellIdentityLte;-><init>(IIIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/telephony/CellIdentityLte;-><init>(Landroid/hardware/radio/V1_2/CellIdentityLte;)V
+PLandroid/telephony/CellIdentityLte;-><init>(Landroid/os/Parcel;)V
+HPLandroid/telephony/CellIdentityLte;->asCellLocation()Landroid/telephony/CellLocation;
+PLandroid/telephony/CellIdentityLte;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityLte;
+HPLandroid/telephony/CellIdentityLte;->equals(Ljava/lang/Object;)Z
+HPLandroid/telephony/CellIdentityLte;->getBandwidth()I
+HPLandroid/telephony/CellIdentityLte;->getChannelNumber()I
+PLandroid/telephony/CellIdentityLte;->getCi()I
+HPLandroid/telephony/CellIdentityLte;->getMcc()I
+HPLandroid/telephony/CellIdentityLte;->getMccString()Ljava/lang/String;
+HPLandroid/telephony/CellIdentityLte;->getMnc()I
+HPLandroid/telephony/CellIdentityLte;->getMncString()Ljava/lang/String;
+HPLandroid/telephony/CellIdentityLte;->getPci()I
+HPLandroid/telephony/CellIdentityLte;->getTac()I
+PLandroid/telephony/CellIdentityLte;->toString()Ljava/lang/String;
+PLandroid/telephony/CellIdentityLte;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/telephony/CellIdentityWcdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellIdentityWcdma;
HSPLandroid/telephony/CellIdentityWcdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CellIdentityWcdma;-><init>(IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/telephony/CellIdentityWcdma;-><init>(Landroid/hardware/radio/V1_2/CellIdentityWcdma;)V
HSPLandroid/telephony/CellIdentityWcdma;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/CellIdentityWcdma;->asCellLocation()Landroid/telephony/CellLocation;
+HSPLandroid/telephony/CellIdentityWcdma;->asCellLocation()Landroid/telephony/gsm/GsmCellLocation;
HSPLandroid/telephony/CellIdentityWcdma;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellIdentityWcdma;
+HSPLandroid/telephony/CellIdentityWcdma;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/CellIdentityWcdma;->getChannelNumber()I
+HSPLandroid/telephony/CellIdentityWcdma;->getCid()I
+HSPLandroid/telephony/CellIdentityWcdma;->getMccString()Ljava/lang/String;
+HSPLandroid/telephony/CellIdentityWcdma;->getMncString()Ljava/lang/String;
+HSPLandroid/telephony/CellIdentityWcdma;->toString()Ljava/lang/String;
HSPLandroid/telephony/CellIdentityWcdma;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/telephony/CellInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellInfo;
+PLandroid/telephony/CellInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/CellInfo;-><init>(Landroid/hardware/radio/V1_4/CellInfo;J)V
+PLandroid/telephony/CellInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/CellInfo;->create(Landroid/hardware/radio/V1_4/CellInfo;J)Landroid/telephony/CellInfo;
+HSPLandroid/telephony/CellInfo;->isRegistered()Z
+HSPLandroid/telephony/CellInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellInfo;->writeToParcel(Landroid/os/Parcel;II)V
+HPLandroid/telephony/CellInfoGsm;-><init>(Landroid/hardware/radio/V1_4/CellInfo;J)V
+PLandroid/telephony/CellInfoGsm;-><init>(Landroid/os/Parcel;)V
+PLandroid/telephony/CellInfoGsm;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellInfoGsm;
+HPLandroid/telephony/CellInfoGsm;->getCellIdentity()Landroid/telephony/CellIdentity;
+HPLandroid/telephony/CellInfoGsm;->getCellIdentity()Landroid/telephony/CellIdentityGsm;
+HPLandroid/telephony/CellInfoGsm;->toString()Ljava/lang/String;
+HPLandroid/telephony/CellInfoGsm;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/telephony/CellInfoLte;-><init>(Landroid/hardware/radio/V1_4/CellInfo;J)V
+PLandroid/telephony/CellInfoLte;-><init>(Landroid/os/Parcel;)V
+HPLandroid/telephony/CellInfoLte;->getCellIdentity()Landroid/telephony/CellIdentity;
+HPLandroid/telephony/CellInfoLte;->getCellIdentity()Landroid/telephony/CellIdentityLte;
+HPLandroid/telephony/CellInfoLte;->getCellSignalStrength()Landroid/telephony/CellSignalStrengthLte;
+HPLandroid/telephony/CellInfoLte;->toString()Ljava/lang/String;
+HPLandroid/telephony/CellInfoLte;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/CellInfoWcdma;-><init>(Landroid/hardware/radio/V1_4/CellInfo;J)V
+PLandroid/telephony/CellInfoWcdma;-><init>(Landroid/os/Parcel;)V
+PLandroid/telephony/CellInfoWcdma;->createFromParcelBody(Landroid/os/Parcel;)Landroid/telephony/CellInfoWcdma;
+HPLandroid/telephony/CellInfoWcdma;->getCellIdentity()Landroid/telephony/CellIdentity;
+HSPLandroid/telephony/CellInfoWcdma;->getCellIdentity()Landroid/telephony/CellIdentityWcdma;
+HPLandroid/telephony/CellInfoWcdma;->getCellSignalStrength()Landroid/telephony/CellSignalStrengthWcdma;
+HSPLandroid/telephony/CellInfoWcdma;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellInfoWcdma;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/CellLocation;-><init>()V
+HSPLandroid/telephony/CellLocation;->getEmpty()Landroid/telephony/CellLocation;
HSPLandroid/telephony/CellSignalStrength;-><init>()V
+HSPLandroid/telephony/CellSignalStrength;->getEcNoDbFromAsu(I)I
+HSPLandroid/telephony/CellSignalStrength;->getNumSignalStrengthLevels()I
+HSPLandroid/telephony/CellSignalStrength;->getRscpDbmFromAsu(I)I
+HSPLandroid/telephony/CellSignalStrength;->getRssiDbmFromAsu(I)I
+HSPLandroid/telephony/CellSignalStrength;->inRangeOrUnavailable(III)I
+HSPLandroid/telephony/CellSignalStrength;->inRangeOrUnavailable(IIII)I
+PLandroid/telephony/CellSignalStrengthCdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthCdma;
+PLandroid/telephony/CellSignalStrengthCdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/telephony/CellSignalStrengthCdma;-><init>()V
+HSPLandroid/telephony/CellSignalStrengthCdma;-><init>(IIIII)V
+HSPLandroid/telephony/CellSignalStrengthCdma;-><init>(Landroid/hardware/radio/V1_0/CdmaSignalStrength;Landroid/hardware/radio/V1_0/EvdoSignalStrength;)V
+PLandroid/telephony/CellSignalStrengthCdma;-><init>(Landroid/os/Parcel;)V
+PLandroid/telephony/CellSignalStrengthCdma;-><init>(Landroid/os/Parcel;Landroid/telephony/CellSignalStrengthCdma$1;)V
+PLandroid/telephony/CellSignalStrengthCdma;->describeContents()I
+HSPLandroid/telephony/CellSignalStrengthCdma;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/CellSignalStrengthCdma;->getCdmaDbm()I
+HSPLandroid/telephony/CellSignalStrengthCdma;->getCdmaEcio()I
+HSPLandroid/telephony/CellSignalStrengthCdma;->getCdmaLevel()I
+HSPLandroid/telephony/CellSignalStrengthCdma;->getEvdoDbm()I
+HSPLandroid/telephony/CellSignalStrengthCdma;->getEvdoLevel()I
+HSPLandroid/telephony/CellSignalStrengthCdma;->getEvdoSnr()I
+PLandroid/telephony/CellSignalStrengthCdma;->isValid()Z
HSPLandroid/telephony/CellSignalStrengthCdma;->setDefaultValues()V
+HSPLandroid/telephony/CellSignalStrengthCdma;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellSignalStrengthCdma;->updateLevel(Landroid/os/PersistableBundle;Landroid/telephony/ServiceState;)V
+HSPLandroid/telephony/CellSignalStrengthCdma;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/telephony/CellSignalStrengthGsm$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthGsm;
+PLandroid/telephony/CellSignalStrengthGsm$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/telephony/CellSignalStrengthGsm;-><init>()V
+HSPLandroid/telephony/CellSignalStrengthGsm;-><init>(III)V
+HSPLandroid/telephony/CellSignalStrengthGsm;-><init>(Landroid/hardware/radio/V1_0/GsmSignalStrength;)V
+PLandroid/telephony/CellSignalStrengthGsm;-><init>(Landroid/os/Parcel;)V
+PLandroid/telephony/CellSignalStrengthGsm;-><init>(Landroid/os/Parcel;Landroid/telephony/CellSignalStrengthGsm$1;)V
+PLandroid/telephony/CellSignalStrengthGsm;->describeContents()I
+HSPLandroid/telephony/CellSignalStrengthGsm;->equals(Ljava/lang/Object;)Z
+PLandroid/telephony/CellSignalStrengthGsm;->getLevel()I
+PLandroid/telephony/CellSignalStrengthGsm;->isValid()Z
HSPLandroid/telephony/CellSignalStrengthGsm;->setDefaultValues()V
+HSPLandroid/telephony/CellSignalStrengthGsm;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellSignalStrengthGsm;->updateLevel(Landroid/os/PersistableBundle;Landroid/telephony/ServiceState;)V
+HSPLandroid/telephony/CellSignalStrengthGsm;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/telephony/CellSignalStrengthLte$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthLte;
+PLandroid/telephony/CellSignalStrengthLte$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/telephony/CellSignalStrengthLte;-><init>()V
+HSPLandroid/telephony/CellSignalStrengthLte;-><init>(IIIIII)V
+HSPLandroid/telephony/CellSignalStrengthLte;-><init>(Landroid/hardware/radio/V1_0/LteSignalStrength;)V
+PLandroid/telephony/CellSignalStrengthLte;-><init>(Landroid/os/Parcel;)V
+PLandroid/telephony/CellSignalStrengthLte;-><init>(Landroid/os/Parcel;Landroid/telephony/CellSignalStrengthLte$1;)V
+HSPLandroid/telephony/CellSignalStrengthLte;->convertRssiAsuToDBm(I)I
+PLandroid/telephony/CellSignalStrengthLte;->describeContents()I
+HSPLandroid/telephony/CellSignalStrengthLte;->equals(Ljava/lang/Object;)Z
+HPLandroid/telephony/CellSignalStrengthLte;->getDbm()I
+PLandroid/telephony/CellSignalStrengthLte;->getLevel()I
+HPLandroid/telephony/CellSignalStrengthLte;->getTimingAdvance()I
+HSPLandroid/telephony/CellSignalStrengthLte;->isValid()Z
HSPLandroid/telephony/CellSignalStrengthLte;->setDefaultValues()V
+HSPLandroid/telephony/CellSignalStrengthLte;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellSignalStrengthLte;->updateLevel(Landroid/os/PersistableBundle;Landroid/telephony/ServiceState;)V
+HSPLandroid/telephony/CellSignalStrengthLte;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/telephony/CellSignalStrengthNr$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthNr;
+PLandroid/telephony/CellSignalStrengthNr$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/telephony/CellSignalStrengthNr;-><init>()V
+HSPLandroid/telephony/CellSignalStrengthNr;-><init>(IIIIII)V
+HSPLandroid/telephony/CellSignalStrengthNr;-><init>(Landroid/hardware/radio/V1_4/NrSignalStrength;)V
+PLandroid/telephony/CellSignalStrengthNr;-><init>(Landroid/os/Parcel;)V
+PLandroid/telephony/CellSignalStrengthNr;-><init>(Landroid/os/Parcel;Landroid/telephony/CellSignalStrengthNr$1;)V
+PLandroid/telephony/CellSignalStrengthNr;->describeContents()I
+HSPLandroid/telephony/CellSignalStrengthNr;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/CellSignalStrengthNr;->isLevelForParameter(I)Z
+PLandroid/telephony/CellSignalStrengthNr;->isValid()Z
HSPLandroid/telephony/CellSignalStrengthNr;->setDefaultValues()V
+HSPLandroid/telephony/CellSignalStrengthNr;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellSignalStrengthNr;->updateLevel(Landroid/os/PersistableBundle;Landroid/telephony/ServiceState;)V
+HSPLandroid/telephony/CellSignalStrengthNr;->updateLevelWithMeasure(I[I)I
+HSPLandroid/telephony/CellSignalStrengthNr;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/telephony/CellSignalStrengthTdscdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthTdscdma;
+PLandroid/telephony/CellSignalStrengthTdscdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/telephony/CellSignalStrengthTdscdma;-><init>()V
+HSPLandroid/telephony/CellSignalStrengthTdscdma;-><init>(III)V
+HSPLandroid/telephony/CellSignalStrengthTdscdma;-><init>(Landroid/hardware/radio/V1_2/TdscdmaSignalStrength;)V
+PLandroid/telephony/CellSignalStrengthTdscdma;-><init>(Landroid/os/Parcel;)V
+PLandroid/telephony/CellSignalStrengthTdscdma;-><init>(Landroid/os/Parcel;Landroid/telephony/CellSignalStrengthTdscdma$1;)V
+PLandroid/telephony/CellSignalStrengthTdscdma;->describeContents()I
+HSPLandroid/telephony/CellSignalStrengthTdscdma;->equals(Ljava/lang/Object;)Z
+PLandroid/telephony/CellSignalStrengthTdscdma;->isValid()Z
HSPLandroid/telephony/CellSignalStrengthTdscdma;->setDefaultValues()V
+HSPLandroid/telephony/CellSignalStrengthTdscdma;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellSignalStrengthTdscdma;->updateLevel(Landroid/os/PersistableBundle;Landroid/telephony/ServiceState;)V
+HSPLandroid/telephony/CellSignalStrengthTdscdma;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/telephony/CellSignalStrengthWcdma$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/CellSignalStrengthWcdma;
+PLandroid/telephony/CellSignalStrengthWcdma$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/telephony/CellSignalStrengthWcdma;-><init>()V
+HSPLandroid/telephony/CellSignalStrengthWcdma;-><init>(IIII)V
+HSPLandroid/telephony/CellSignalStrengthWcdma;-><init>(Landroid/hardware/radio/V1_2/WcdmaSignalStrength;)V
+PLandroid/telephony/CellSignalStrengthWcdma;-><init>(Landroid/os/Parcel;)V
+PLandroid/telephony/CellSignalStrengthWcdma;-><init>(Landroid/os/Parcel;Landroid/telephony/CellSignalStrengthWcdma$1;)V
+PLandroid/telephony/CellSignalStrengthWcdma;->describeContents()I
+HSPLandroid/telephony/CellSignalStrengthWcdma;->equals(Ljava/lang/Object;)Z
+PLandroid/telephony/CellSignalStrengthWcdma;->getLevel()I
+PLandroid/telephony/CellSignalStrengthWcdma;->isValid()Z
HSPLandroid/telephony/CellSignalStrengthWcdma;->setDefaultValues()V
+HSPLandroid/telephony/CellSignalStrengthWcdma;->toString()Ljava/lang/String;
+HSPLandroid/telephony/CellSignalStrengthWcdma;->updateLevel(Landroid/os/PersistableBundle;Landroid/telephony/ServiceState;)V
+HSPLandroid/telephony/CellSignalStrengthWcdma;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/ClientRequestStats;-><init>()V
+HSPLandroid/telephony/ClientRequestStats;->addCompletedWakelockTime(J)V
+HSPLandroid/telephony/ClientRequestStats;->incrementCompletedRequestsCount()V
+HSPLandroid/telephony/ClientRequestStats;->setCallingPackage(Ljava/lang/String;)V
+HPLandroid/telephony/ClientRequestStats;->toString()Ljava/lang/String;
+HSPLandroid/telephony/ClientRequestStats;->updateRequestHistograms(II)V
+PLandroid/telephony/DataFailCause;->getFailCause(I)I
+PLandroid/telephony/DataFailCause;->toString(I)Ljava/lang/String;
HSPLandroid/telephony/DataSpecificRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/DataSpecificRegistrationInfo;
HSPLandroid/telephony/DataSpecificRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/DataSpecificRegistrationInfo;-><init>(IZZZLandroid/telephony/LteVopsSupportInfo;Z)V
HSPLandroid/telephony/DataSpecificRegistrationInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/telephony/DataSpecificRegistrationInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/DataSpecificRegistrationInfo$1;)V
HSPLandroid/telephony/DataSpecificRegistrationInfo;-><init>(Landroid/telephony/DataSpecificRegistrationInfo;)V
+HPLandroid/telephony/DataSpecificRegistrationInfo;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/DataSpecificRegistrationInfo;->isUsingCarrierAggregation()Z
+HSPLandroid/telephony/DataSpecificRegistrationInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/DataSpecificRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/telephony/ICellInfoCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/telephony/ICellInfoCallback$Stub$Proxy;->onCellInfo(Ljava/util/List;)V
+HPLandroid/telephony/ICellInfoCallback$Stub$Proxy;->onError(ILjava/lang/String;Ljava/lang/String;)V
+HPLandroid/telephony/ICellInfoCallback$Stub;-><init>()V
+PLandroid/telephony/ICellInfoCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/telephony/ICellInfoCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/ICellInfoCallback;
+HPLandroid/telephony/ICellInfoCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/telephony/INetworkService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/telephony/INetworkService$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLandroid/telephony/INetworkService$Stub$Proxy;->createNetworkServiceProvider(I)V
+HSPLandroid/telephony/INetworkService$Stub$Proxy;->registerForNetworkRegistrationInfoChanged(ILandroid/telephony/INetworkServiceCallback;)V
+HSPLandroid/telephony/INetworkService$Stub$Proxy;->requestNetworkRegistrationInfo(IILandroid/telephony/INetworkServiceCallback;)V
+HSPLandroid/telephony/INetworkService$Stub;-><init>()V
+HSPLandroid/telephony/INetworkService$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/telephony/INetworkService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/INetworkService;
+HSPLandroid/telephony/INetworkService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/telephony/INetworkServiceCallback$Stub;-><init>()V
+HSPLandroid/telephony/INetworkServiceCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/telephony/INetworkServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/INetworkServiceCallback;
+HSPLandroid/telephony/INetworkServiceCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;-><init>()V
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->build()Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setCallingPackage(Ljava/lang/String;)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setCallingPid(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setCallingUid(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setMethod(Ljava/lang/String;)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;->setMinSdkVersionForFine(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery$Builder;
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery;-><init>(Ljava/lang/String;Ljava/lang/String;IIIIZLjava/lang/String;)V
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionQuery;-><init>(Ljava/lang/String;Ljava/lang/String;IIIIZLjava/lang/String;Landroid/telephony/LocationAccessPolicy$1;)V
+HSPLandroid/telephony/LocationAccessPolicy$LocationPermissionResult;->values()[Landroid/telephony/LocationAccessPolicy$LocationPermissionResult;
+HPLandroid/telephony/LocationAccessPolicy;->appOpsModeToPermissionResult(I)Landroid/telephony/LocationAccessPolicy$LocationPermissionResult;
+HPLandroid/telephony/LocationAccessPolicy;->checkAppLocationPermissionHelper(Landroid/content/Context;Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery;Ljava/lang/String;)Landroid/telephony/LocationAccessPolicy$LocationPermissionResult;
+HSPLandroid/telephony/LocationAccessPolicy;->checkLocationPermission(Landroid/content/Context;Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery;)Landroid/telephony/LocationAccessPolicy$LocationPermissionResult;
+HPLandroid/telephony/LocationAccessPolicy;->checkManifestPermission(Landroid/content/Context;IILjava/lang/String;)Z
+HPLandroid/telephony/LocationAccessPolicy;->checkSystemLocationAccess(Landroid/content/Context;II)Z
+HPLandroid/telephony/LocationAccessPolicy;->getAppOpsString(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/telephony/LocationAccessPolicy;->isAppAtLeastSdkVersion(Landroid/content/Context;Ljava/lang/String;I)Z
+HPLandroid/telephony/LocationAccessPolicy;->isCurrentProfile(Landroid/content/Context;I)Z
+HPLandroid/telephony/LocationAccessPolicy;->isLocationModeEnabled(Landroid/content/Context;I)Z
+HPLandroid/telephony/LocationAccessPolicy;->logError(Landroid/content/Context;Landroid/telephony/LocationAccessPolicy$LocationPermissionQuery;Ljava/lang/String;)V
HSPLandroid/telephony/LteVopsSupportInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/LteVopsSupportInfo;
HSPLandroid/telephony/LteVopsSupportInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/LteVopsSupportInfo;-><init>(II)V
HSPLandroid/telephony/LteVopsSupportInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/telephony/LteVopsSupportInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/LteVopsSupportInfo$1;)V
+HSPLandroid/telephony/LteVopsSupportInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/LteVopsSupportInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/telephony/ModemActivityInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ModemActivityInfo;
+PLandroid/telephony/ModemActivityInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/ModemActivityInfo$TransmitPower;-><init>(Landroid/telephony/ModemActivityInfo;Landroid/util/Range;I)V
+HPLandroid/telephony/ModemActivityInfo$TransmitPower;->getTimeInMillis()I
+HPLandroid/telephony/ModemActivityInfo$TransmitPower;->toString()Ljava/lang/String;
+HSPLandroid/telephony/ModemActivityInfo;-><init>(JII[II)V
+PLandroid/telephony/ModemActivityInfo;->getIdleTimeMillis()I
+PLandroid/telephony/ModemActivityInfo;->getReceiveTimeMillis()I
+PLandroid/telephony/ModemActivityInfo;->getSleepTimeMillis()I
+PLandroid/telephony/ModemActivityInfo;->getTimestamp()J
+PLandroid/telephony/ModemActivityInfo;->getTransmitPowerInfo()Ljava/util/List;
+HPLandroid/telephony/ModemActivityInfo;->getTransmitTimeMillis()[I
+PLandroid/telephony/ModemActivityInfo;->isEmpty()Z
+PLandroid/telephony/ModemActivityInfo;->isValid()Z
+HSPLandroid/telephony/ModemActivityInfo;->populateTransmitPowerRange([I)V
+HPLandroid/telephony/ModemActivityInfo;->setTransmitTimeMillis([I)V
+HPLandroid/telephony/ModemActivityInfo;->toString()Ljava/lang/String;
+HPLandroid/telephony/ModemActivityInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/telephony/ModemInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ModemInfo;
+PLandroid/telephony/ModemInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/ModemInfo;-><init>(I)V
+HSPLandroid/telephony/ModemInfo;-><init>(IIZZ)V
+PLandroid/telephony/ModemInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/ModemInfo;->hashCode()I
+HSPLandroid/telephony/ModemInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/ModemInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/NetworkRegistrationInfo;
HSPLandroid/telephony/NetworkRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/NetworkRegistrationInfo$Builder;-><init>()V
+HSPLandroid/telephony/NetworkRegistrationInfo$Builder;->build()Landroid/telephony/NetworkRegistrationInfo;
+HSPLandroid/telephony/NetworkRegistrationInfo$Builder;->setDomain(I)Landroid/telephony/NetworkRegistrationInfo$Builder;
+HSPLandroid/telephony/NetworkRegistrationInfo$Builder;->setRegistrationState(I)Landroid/telephony/NetworkRegistrationInfo$Builder;
+HSPLandroid/telephony/NetworkRegistrationInfo$Builder;->setTransportType(I)Landroid/telephony/NetworkRegistrationInfo$Builder;
+HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(IIIIIZLjava/util/List;Landroid/telephony/CellIdentity;)V
+HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(IIIIIZLjava/util/List;Landroid/telephony/CellIdentity;IZZZLandroid/telephony/LteVopsSupportInfo;Z)V
+HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(IIIIIZLjava/util/List;Landroid/telephony/CellIdentity;Landroid/telephony/NetworkRegistrationInfo$1;)V
+HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(IIIIIZLjava/util/List;Landroid/telephony/CellIdentity;ZIII)V
HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/NetworkRegistrationInfo$1;)V
HSPLandroid/telephony/NetworkRegistrationInfo;-><init>(Landroid/telephony/NetworkRegistrationInfo;)V
+HSPLandroid/telephony/NetworkRegistrationInfo;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/NetworkRegistrationInfo;->getAccessNetworkTechnology()I
+HSPLandroid/telephony/NetworkRegistrationInfo;->getCellIdentity()Landroid/telephony/CellIdentity;
+HSPLandroid/telephony/NetworkRegistrationInfo;->getDataSpecificInfo()Landroid/telephony/DataSpecificRegistrationInfo;
+HSPLandroid/telephony/NetworkRegistrationInfo;->getDomain()I
+HSPLandroid/telephony/NetworkRegistrationInfo;->getNrState()I
+HSPLandroid/telephony/NetworkRegistrationInfo;->getRegistrationState()I
+HSPLandroid/telephony/NetworkRegistrationInfo;->getRejectCause()I
+HSPLandroid/telephony/NetworkRegistrationInfo;->getRoamingType()I
+HSPLandroid/telephony/NetworkRegistrationInfo;->getTransportType()I
+HSPLandroid/telephony/NetworkRegistrationInfo;->getVoiceSpecificInfo()Landroid/telephony/VoiceSpecificRegistrationInfo;
+HSPLandroid/telephony/NetworkRegistrationInfo;->isEmergencyEnabled()Z
+HSPLandroid/telephony/NetworkRegistrationInfo;->isInService()Z
+HSPLandroid/telephony/NetworkRegistrationInfo;->lambda$toString$0(Ljava/lang/Integer;)Ljava/lang/String;
+HSPLandroid/telephony/NetworkRegistrationInfo;->nrStateToString(I)Ljava/lang/String;
+HSPLandroid/telephony/NetworkRegistrationInfo;->registrationStateToString(I)Ljava/lang/String;
+HSPLandroid/telephony/NetworkRegistrationInfo;->serviceTypeToString(I)Ljava/lang/String;
+HSPLandroid/telephony/NetworkRegistrationInfo;->setNrState(I)V
+HSPLandroid/telephony/NetworkRegistrationInfo;->setRoamingType(I)V
+HSPLandroid/telephony/NetworkRegistrationInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/NetworkRegistrationInfo;->updateNrState(Landroid/telephony/DataSpecificRegistrationInfo;)V
+HSPLandroid/telephony/NetworkRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/NetworkService$INetworkServiceWrapper;-><init>(Landroid/telephony/NetworkService;)V
+HSPLandroid/telephony/NetworkService$INetworkServiceWrapper;-><init>(Landroid/telephony/NetworkService;Landroid/telephony/NetworkService$1;)V
+HSPLandroid/telephony/NetworkService$INetworkServiceWrapper;->createNetworkServiceProvider(I)V
+HSPLandroid/telephony/NetworkService$INetworkServiceWrapper;->registerForNetworkRegistrationInfoChanged(ILandroid/telephony/INetworkServiceCallback;)V
+HSPLandroid/telephony/NetworkService$INetworkServiceWrapper;->requestNetworkRegistrationInfo(IILandroid/telephony/INetworkServiceCallback;)V
+HSPLandroid/telephony/NetworkService$NetworkServiceHandler;-><init>(Landroid/telephony/NetworkService;Landroid/os/Looper;)V
+HSPLandroid/telephony/NetworkService$NetworkServiceHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/telephony/NetworkService$NetworkServiceProvider;-><init>(Landroid/telephony/NetworkService;I)V
+HSPLandroid/telephony/NetworkService$NetworkServiceProvider;->access$300(Landroid/telephony/NetworkService$NetworkServiceProvider;Landroid/telephony/INetworkServiceCallback;)V
+HSPLandroid/telephony/NetworkService$NetworkServiceProvider;->access$500(Landroid/telephony/NetworkService$NetworkServiceProvider;)V
+HSPLandroid/telephony/NetworkService$NetworkServiceProvider;->getSlotIndex()I
+HSPLandroid/telephony/NetworkService$NetworkServiceProvider;->notifyInfoChangedToCallbacks()V
+HSPLandroid/telephony/NetworkService$NetworkServiceProvider;->notifyNetworkRegistrationInfoChanged()V
+HSPLandroid/telephony/NetworkService$NetworkServiceProvider;->registerForInfoChanged(Landroid/telephony/INetworkServiceCallback;)V
+HSPLandroid/telephony/NetworkService;-><init>()V
+HSPLandroid/telephony/NetworkService;->access$100(Landroid/telephony/NetworkService;)Landroid/telephony/NetworkService$NetworkServiceHandler;
+HSPLandroid/telephony/NetworkService;->access$200(Landroid/telephony/NetworkService;)Landroid/util/SparseArray;
+HSPLandroid/telephony/NetworkService;->log(Ljava/lang/String;)V
+HSPLandroid/telephony/NetworkService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HSPLandroid/telephony/NetworkServiceCallback;-><init>(Landroid/telephony/INetworkServiceCallback;)V
+HSPLandroid/telephony/NetworkServiceCallback;->onRequestNetworkRegistrationInfoComplete(ILandroid/telephony/NetworkRegistrationInfo;)V
+HSPLandroid/telephony/PackageChangeReceiver;-><init>()V
+HPLandroid/telephony/PackageChangeReceiver;->getPackageName(Landroid/content/Intent;)Ljava/lang/String;
+HPLandroid/telephony/PackageChangeReceiver;->onPackageAppeared()V
+HPLandroid/telephony/PackageChangeReceiver;->onPackageDisappeared()V
+HPLandroid/telephony/PackageChangeReceiver;->onPackageUpdateFinished(Ljava/lang/String;)V
+HPLandroid/telephony/PackageChangeReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLandroid/telephony/PackageChangeReceiver;->register(Landroid/content/Context;Landroid/os/Looper;Landroid/os/UserHandle;)V
+PLandroid/telephony/PhoneCapability$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/PhoneCapability;
+PLandroid/telephony/PhoneCapability$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/PhoneCapability;-><init>(IIILjava/util/List;Z)V
+PLandroid/telephony/PhoneCapability;-><init>(Landroid/os/Parcel;)V
+PLandroid/telephony/PhoneCapability;-><init>(Landroid/os/Parcel;Landroid/telephony/PhoneCapability$1;)V
+HSPLandroid/telephony/PhoneCapability;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/PhoneCapability;->hashCode()I
+HSPLandroid/telephony/PhoneCapability;->toString()Ljava/lang/String;
+HSPLandroid/telephony/PhoneCapability;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/telephony/PhoneNumberUtils;->compare(Ljava/lang/String;Ljava/lang/String;)Z
+HPLandroid/telephony/PhoneNumberUtils;->compareLoosely(Ljava/lang/String;Ljava/lang/String;)Z
+HPLandroid/telephony/PhoneNumberUtils;->convertKeypadLettersToDigits(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/telephony/PhoneNumberUtils;->extractNetworkPortionAlt(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/telephony/PhoneNumberUtils;->formatNumber(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/telephony/PhoneNumberUtils;->formatNumberInternal(Ljava/lang/String;Ljava/lang/String;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;)Ljava/lang/String;
+PLandroid/telephony/PhoneNumberUtils;->formatNumberToE164(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/telephony/PhoneNumberUtils;->getMinMatch()I
+HPLandroid/telephony/PhoneNumberUtils;->internalGetStrippedReversed(Ljava/lang/String;I)Ljava/lang/String;
+HSPLandroid/telephony/PhoneNumberUtils;->isEmergencyNumber(Ljava/lang/String;)Z
+HSPLandroid/telephony/PhoneNumberUtils;->isEmergencyNumberInternal(ILjava/lang/String;Ljava/lang/String;Z)Z
+HSPLandroid/telephony/PhoneNumberUtils;->isNonSeparator(C)Z
+HPLandroid/telephony/PhoneNumberUtils;->matchIntlPrefix(Ljava/lang/String;I)Z
HPLandroid/telephony/PhoneNumberUtils;->normalizeNumber(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/telephony/PhoneNumberUtils;->stripSeparators(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/telephony/PhoneNumberUtils;->toCallerIDMinMatch(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;-><init>(Landroid/telephony/PhoneStateListener;Ljava/util/concurrent/Executor;)V
HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onActiveDataSubIdChanged$54(Landroid/telephony/PhoneStateListener;I)V
HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->lambda$onActiveDataSubIdChanged$55$PhoneStateListener$IPhoneStateListenerStub(Landroid/telephony/PhoneStateListener;I)V
HSPLandroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onActiveDataSubIdChanged(I)V
HSPLandroid/telephony/PhoneStateListener;-><init>()V
+HSPLandroid/telephony/PhoneStateListener;-><init>(Landroid/os/Looper;)V
HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;Landroid/os/Looper;)V
HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/lang/Integer;Ljava/util/concurrent/Executor;)V
HSPLandroid/telephony/PhoneStateListener;-><init>(Ljava/util/concurrent/Executor;)V
+HSPLandroid/telephony/PhysicalChannelConfig$Builder;-><init>()V
+HSLandroid/telephony/PhysicalChannelConfig$Builder;->access$100(Landroid/telephony/PhysicalChannelConfig$Builder;)I
+HSLandroid/telephony/PhysicalChannelConfig$Builder;->access$200(Landroid/telephony/PhysicalChannelConfig$Builder;)I
+HSLandroid/telephony/PhysicalChannelConfig$Builder;->access$300(Landroid/telephony/PhysicalChannelConfig$Builder;)I
+HSLandroid/telephony/PhysicalChannelConfig$Builder;->access$400(Landroid/telephony/PhysicalChannelConfig$Builder;)I
+HSLandroid/telephony/PhysicalChannelConfig$Builder;->access$500(Landroid/telephony/PhysicalChannelConfig$Builder;)I
+HSLandroid/telephony/PhysicalChannelConfig$Builder;->access$600(Landroid/telephony/PhysicalChannelConfig$Builder;)[I
+HSLandroid/telephony/PhysicalChannelConfig$Builder;->access$700(Landroid/telephony/PhysicalChannelConfig$Builder;)I
+HSPLandroid/telephony/PhysicalChannelConfig$Builder;->build()Landroid/telephony/PhysicalChannelConfig;
+HSPLandroid/telephony/PhysicalChannelConfig$Builder;->setCellBandwidthDownlinkKhz(I)Landroid/telephony/PhysicalChannelConfig$Builder;
+HSPLandroid/telephony/PhysicalChannelConfig$Builder;->setCellConnectionStatus(I)Landroid/telephony/PhysicalChannelConfig$Builder;
+HSPLandroid/telephony/PhysicalChannelConfig$Builder;->setContextIds([I)Landroid/telephony/PhysicalChannelConfig$Builder;
+HSPLandroid/telephony/PhysicalChannelConfig$Builder;->setFrequencyRange(I)Landroid/telephony/PhysicalChannelConfig$Builder;
+HSPLandroid/telephony/PhysicalChannelConfig$Builder;->setPhysicalCellId(I)Landroid/telephony/PhysicalChannelConfig$Builder;
+HSPLandroid/telephony/PhysicalChannelConfig$Builder;->setRat(I)Landroid/telephony/PhysicalChannelConfig$Builder;
+HSPLandroid/telephony/PhysicalChannelConfig;-><init>(Landroid/telephony/PhysicalChannelConfig$Builder;)V
+HSLandroid/telephony/PhysicalChannelConfig;-><init>(Landroid/telephony/PhysicalChannelConfig$Builder;Landroid/telephony/PhysicalChannelConfig$1;)V
+HSPLandroid/telephony/PhysicalChannelConfig;->getCellBandwidthDownlink()I
+HSPLandroid/telephony/PhysicalChannelConfig;->getConnectionStatusString()Ljava/lang/String;
+HSPLandroid/telephony/PhysicalChannelConfig;->getRat()I
+HSPLandroid/telephony/PhysicalChannelConfig;->toString()Ljava/lang/String;
+HSPLandroid/telephony/PreciseCallState;-><init>()V
+PLandroid/telephony/PreciseCallState;-><init>(IIIII)V
+PLandroid/telephony/PreciseCallState;->getForegroundCallState()I
+PLandroid/telephony/PreciseCallState;->toString()Ljava/lang/String;
+HSPLandroid/telephony/PreciseDataConnectionState;-><init>()V
+PLandroid/telephony/PreciseDataConnectionState;-><init>(IIILjava/lang/String;Landroid/net/LinkProperties;I)V
+PLandroid/telephony/PreciseDataConnectionState;->toString()Ljava/lang/String;
HSPLandroid/telephony/Rlog;->d(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/telephony/Rlog;->e(Ljava/lang/String;Ljava/lang/String;)I
+HPLandroid/telephony/Rlog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+HSPLandroid/telephony/Rlog;->i(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/telephony/Rlog;->isLoggable(Ljava/lang/String;I)Z
+HSPLandroid/telephony/Rlog;->pii(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
+HPLandroid/telephony/Rlog;->pii(ZLjava/lang/Object;)Ljava/lang/String;
+HSPLandroid/telephony/Rlog;->secureHash([B)Ljava/lang/String;
+HSPLandroid/telephony/Rlog;->v(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/telephony/Rlog;->w(Ljava/lang/String;Ljava/lang/String;)I
HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/ServiceState;
HSPLandroid/telephony/ServiceState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/telephony/ServiceState;-><init>()V
HSPLandroid/telephony/ServiceState;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/ServiceState;-><init>(Landroid/telephony/ServiceState;)V
+HSPLandroid/telephony/ServiceState;->addNetworkRegistrationInfo(Landroid/telephony/NetworkRegistrationInfo;)V
+HSPLandroid/telephony/ServiceState;->bearerBitmapHasCdma(I)Z
+HSPLandroid/telephony/ServiceState;->bitmaskHasTech(II)Z
+HSPLandroid/telephony/ServiceState;->convertNetworkTypeBitmaskToBearerBitmask(I)I
+HSPLandroid/telephony/ServiceState;->copyFrom(Landroid/telephony/ServiceState;)V
+PLandroid/telephony/ServiceState;->describeContents()I
+HSPLandroid/telephony/ServiceState;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/ServiceState;->equalsHandlesNulls(Ljava/lang/Object;Ljava/lang/Object;)Z
+PLandroid/telephony/ServiceState;->fillInNotifierBundle(Landroid/os/Bundle;)V
+HSPLandroid/telephony/ServiceState;->getBitmaskForTech(I)I
+HSPLandroid/telephony/ServiceState;->getCdmaDefaultRoamingIndicator()I
+HSPLandroid/telephony/ServiceState;->getCdmaRoamingIndicator()I
+HSPLandroid/telephony/ServiceState;->getCdmaSystemId()I
+HSPLandroid/telephony/ServiceState;->getCellBandwidths()[I
+HSPLandroid/telephony/ServiceState;->getChannelNumber()I
+HSPLandroid/telephony/ServiceState;->getCssIndicator()I
+HSPLandroid/telephony/ServiceState;->getDataNetworkType()I
+HSPLandroid/telephony/ServiceState;->getDataRegState()I
+HSPLandroid/telephony/ServiceState;->getDataRoaming()Z
+HSPLandroid/telephony/ServiceState;->getDataRoamingFromRegistration()Z
+HSPLandroid/telephony/ServiceState;->getDataRoamingType()I
+HSPLandroid/telephony/ServiceState;->getDuplexMode()I
+HSPLandroid/telephony/ServiceState;->getLteEarfcnRsrpBoost()I
+HSPLandroid/telephony/ServiceState;->getNetworkRegistrationInfo(II)Landroid/telephony/NetworkRegistrationInfo;
+HSPLandroid/telephony/ServiceState;->getNetworkRegistrationInfoList()Ljava/util/List;
+HSPLandroid/telephony/ServiceState;->getNetworkRegistrationInfoListForDomain(I)Ljava/util/List;
+HSPLandroid/telephony/ServiceState;->getNrFrequencyRange()I
+HSPLandroid/telephony/ServiceState;->getNrState()I
+HSPLandroid/telephony/ServiceState;->getOperatorAlpha()Ljava/lang/String;
+HSPLandroid/telephony/ServiceState;->getOperatorAlphaLong()Ljava/lang/String;
+HSPLandroid/telephony/ServiceState;->getOperatorAlphaShort()Ljava/lang/String;
+HSPLandroid/telephony/ServiceState;->getOperatorNumeric()Ljava/lang/String;
+HPLandroid/telephony/ServiceState;->getRadioTechnology()I
+HSPLandroid/telephony/ServiceState;->getRilDataRadioTechnology()I
+HSPLandroid/telephony/ServiceState;->getRilVoiceRadioTechnology()I
+HSPLandroid/telephony/ServiceState;->getRoaming()Z
+HSPLandroid/telephony/ServiceState;->getState()I
+HSPLandroid/telephony/ServiceState;->getVoiceRegState()I
+HSPLandroid/telephony/ServiceState;->getVoiceRoaming()Z
+HSPLandroid/telephony/ServiceState;->getVoiceRoamingType()I
+HSPLandroid/telephony/ServiceState;->init()V
+HSPLandroid/telephony/ServiceState;->isCdma(I)Z
+HSPLandroid/telephony/ServiceState;->isEmergencyOnly()Z
+HSPLandroid/telephony/ServiceState;->isGsm(I)Z
+HSPLandroid/telephony/ServiceState;->isIwlanPreferred()Z
+HSPLandroid/telephony/ServiceState;->isLte(I)Z
+HSPLandroid/telephony/ServiceState;->isUsingCarrierAggregation()Z
+HSPLandroid/telephony/ServiceState;->networkTypeToRilRadioTechnology(I)I
+HSPLandroid/telephony/ServiceState;->newFromBundle(Landroid/os/Bundle;)Landroid/telephony/ServiceState;
+HSPLandroid/telephony/ServiceState;->rilRadioTechnologyToNetworkType(I)I
+HSPLandroid/telephony/ServiceState;->rilRadioTechnologyToString(I)Ljava/lang/String;
+HSPLandroid/telephony/ServiceState;->rilServiceStateToString(I)Ljava/lang/String;
+HSPLandroid/telephony/ServiceState;->roamingTypeToString(I)Ljava/lang/String;
+HSPLandroid/telephony/ServiceState;->setCdmaDefaultRoamingIndicator(I)V
+HSPLandroid/telephony/ServiceState;->setCdmaEriIconIndex(I)V
+HSPLandroid/telephony/ServiceState;->setCdmaEriIconMode(I)V
+HSPLandroid/telephony/ServiceState;->setCdmaRoamingIndicator(I)V
+HSPLandroid/telephony/ServiceState;->setCdmaSystemAndNetworkId(II)V
+HSPLandroid/telephony/ServiceState;->setCellBandwidths([I)V
+HSPLandroid/telephony/ServiceState;->setChannelNumber(I)V
+HSPLandroid/telephony/ServiceState;->setCssIndicator(I)V
+HSPLandroid/telephony/ServiceState;->setDataRegState(I)V
+HSPLandroid/telephony/ServiceState;->setDataRoaming(Z)V
+HSPLandroid/telephony/ServiceState;->setDataRoamingType(I)V
+HSPLandroid/telephony/ServiceState;->setEmergencyOnly(Z)V
+HSPLandroid/telephony/ServiceState;->setFromNotifierBundle(Landroid/os/Bundle;)V
+HSPLandroid/telephony/ServiceState;->setIsManualSelection(Z)V
+HSPLandroid/telephony/ServiceState;->setIwlanPreferred(Z)V
+HSPLandroid/telephony/ServiceState;->setLteEarfcnRsrpBoost(I)V
+HSPLandroid/telephony/ServiceState;->setNrFrequencyRange(I)V
+HPLandroid/telephony/ServiceState;->setOperatorAlphaLong(Ljava/lang/String;)V
+HSPLandroid/telephony/ServiceState;->setOperatorAlphaLongRaw(Ljava/lang/String;)V
+HSPLandroid/telephony/ServiceState;->setOperatorAlphaShortRaw(Ljava/lang/String;)V
+HSPLandroid/telephony/ServiceState;->setOperatorName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/telephony/ServiceState;->setStateOff()V
+HSPLandroid/telephony/ServiceState;->setStateOutOfService()V
+HSPLandroid/telephony/ServiceState;->setVoiceRegState(I)V
+HSPLandroid/telephony/ServiceState;->setVoiceRoaming(Z)V
+HSPLandroid/telephony/ServiceState;->setVoiceRoamingType(I)V
+HSPLandroid/telephony/ServiceState;->toString()Ljava/lang/String;
+HSPLandroid/telephony/ServiceState;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/telephony/SignalStrength$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/SignalStrength;
+PLandroid/telephony/SignalStrength$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/telephony/SignalStrength;-><init>()V
+HSPLandroid/telephony/SignalStrength;-><init>(Landroid/hardware/radio/V1_4/SignalStrength;)V
+PLandroid/telephony/SignalStrength;-><init>(Landroid/os/Parcel;)V
HSPLandroid/telephony/SignalStrength;-><init>(Landroid/telephony/CellSignalStrengthCdma;Landroid/telephony/CellSignalStrengthGsm;Landroid/telephony/CellSignalStrengthWcdma;Landroid/telephony/CellSignalStrengthTdscdma;Landroid/telephony/CellSignalStrengthLte;Landroid/telephony/CellSignalStrengthNr;)V
+HSPLandroid/telephony/SignalStrength;->equals(Ljava/lang/Object;)Z
+PLandroid/telephony/SignalStrength;->fillInNotifierBundle(Landroid/os/Bundle;)V
+PLandroid/telephony/SignalStrength;->getLevel()I
+HSPLandroid/telephony/SignalStrength;->getPrimary()Landroid/telephony/CellSignalStrength;
+HSPLandroid/telephony/SignalStrength;->toString()Ljava/lang/String;
+HSPLandroid/telephony/SignalStrength;->updateLevel(Landroid/os/PersistableBundle;Landroid/telephony/ServiceState;)V
+HSPLandroid/telephony/SignalStrength;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/SmsManager;->getDefault()Landroid/telephony/SmsManager;
+HSPLandroid/telephony/SmsManager;->getDefaultSmsSubscriptionId()I
+HSPLandroid/telephony/SmsManager;->getISmsService()Lcom/android/internal/telephony/ISms;
+HSPLandroid/telephony/SubscriptionInfo;->givePrintableIccid(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener$OnSubscriptionsChangedListenerHandler;-><init>(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener$OnSubscriptionsChangedListenerHandler;-><init>(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;Landroid/os/Looper;)V
HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;-><init>()V
HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;-><init>(Landroid/os/Looper;)V
-HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;->access$000(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)Landroid/os/HandlerExecutor;
+HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;->access$000(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)Lcom/android/internal/telephony/util/HandlerExecutor;
+HSPLandroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;->getHandlerExecutor()Lcom/android/internal/telephony/util/HandlerExecutor;
HSPLandroid/telephony/SubscriptionManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/telephony/SubscriptionManager;->addOnOpportunisticSubscriptionsChangedListener(Ljava/util/concurrent/Executor;Landroid/telephony/SubscriptionManager$OnOpportunisticSubscriptionsChangedListener;)V
HSPLandroid/telephony/SubscriptionManager;->addOnSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
HSPLandroid/telephony/SubscriptionManager;->from(Landroid/content/Context;)Landroid/telephony/SubscriptionManager;
+HPLandroid/telephony/SubscriptionManager;->getActiveAndHiddenSubscriptionInfoList()Ljava/util/List;
+HSPLandroid/telephony/SubscriptionManager;->getActiveDataSubscriptionId()I
HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionIdList()[I
HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionIdList(Z)[I
HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfo(I)Landroid/telephony/SubscriptionInfo;
+HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoCount()I
+HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoCountMax()I
HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoForSimSlotIndex(I)Landroid/telephony/SubscriptionInfo;
HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoList()Ljava/util/List;
HSPLandroid/telephony/SubscriptionManager;->getActiveSubscriptionInfoList(Z)Ljava/util/List;
+HSPLandroid/telephony/SubscriptionManager;->getAllSubscriptionInfoList()Ljava/util/List;
+PLandroid/telephony/SubscriptionManager;->getAvailableSubscriptionInfoList()Ljava/util/List;
+HPLandroid/telephony/SubscriptionManager;->getDefaultDataPhoneId()I
HSPLandroid/telephony/SubscriptionManager;->getDefaultDataSubscriptionId()I
+HSPLandroid/telephony/SubscriptionManager;->getDefaultDataSubscriptionInfo()Landroid/telephony/SubscriptionInfo;
+HPLandroid/telephony/SubscriptionManager;->getDefaultSmsPhoneId()I
HSPLandroid/telephony/SubscriptionManager;->getDefaultSmsSubscriptionId()I
HSPLandroid/telephony/SubscriptionManager;->getDefaultSubscriptionId()I
+HPLandroid/telephony/SubscriptionManager;->getDefaultVoicePhoneId()I
HSPLandroid/telephony/SubscriptionManager;->getDefaultVoiceSubscriptionId()I
+HSPLandroid/telephony/SubscriptionManager;->getIntegerSubscriptionProperty(ILjava/lang/String;ILandroid/content/Context;)I
+HSPLandroid/telephony/SubscriptionManager;->getOpportunisticSubscriptions()Ljava/util/List;
HSPLandroid/telephony/SubscriptionManager;->getPhoneId(I)I
-PLandroid/telephony/SubscriptionManager;->getResourcesForSubId(Landroid/content/Context;I)Landroid/content/res/Resources;
-PLandroid/telephony/SubscriptionManager;->getResourcesForSubId(Landroid/content/Context;IZ)Landroid/content/res/Resources;
+HSPLandroid/telephony/SubscriptionManager;->getResourcesForSubId(Landroid/content/Context;I)Landroid/content/res/Resources;
+HSPLandroid/telephony/SubscriptionManager;->getResourcesForSubId(Landroid/content/Context;IZ)Landroid/content/res/Resources;
HSPLandroid/telephony/SubscriptionManager;->getSimStateForSlotIndex(I)I
HSPLandroid/telephony/SubscriptionManager;->getSlotIndex(I)I
+HSPLandroid/telephony/SubscriptionManager;->getSubId(I)[I
+HSPLandroid/telephony/SubscriptionManager;->getSubscriptionIds(I)[I
+HSPLandroid/telephony/SubscriptionManager;->getSubscriptionProperty(ILjava/lang/String;Landroid/content/Context;)Ljava/lang/String;
+HSPLandroid/telephony/SubscriptionManager;->isActiveSubId(I)Z
HSPLandroid/telephony/SubscriptionManager;->isUsableSubIdValue(I)Z
+HPLandroid/telephony/SubscriptionManager;->isUsableSubscriptionId(I)Z
+HSPLandroid/telephony/SubscriptionManager;->isValidPhoneId(I)Z
HSPLandroid/telephony/SubscriptionManager;->isValidSlotIndex(I)Z
HSPLandroid/telephony/SubscriptionManager;->isValidSubscriptionId(I)Z
+HSPLandroid/telephony/SubscriptionManager;->logd(Ljava/lang/String;)V
+HSPLandroid/telephony/SubscriptionManager;->putPhoneIdAndSubIdExtra(Landroid/content/Intent;I)V
+HSPLandroid/telephony/SubscriptionManager;->putPhoneIdAndSubIdExtra(Landroid/content/Intent;II)V
+HSPLandroid/telephony/SubscriptionManager;->requestEmbeddedSubscriptionInfoListRefresh(I)V
+PLandroid/telephony/SubscriptionPlan$1;->newArray(I)[Landroid/telephony/SubscriptionPlan;
+PLandroid/telephony/SubscriptionPlan$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/telephony/TelephonyFrameworkInitializer;->getTelephonyServiceManager()Landroid/os/TelephonyServiceManager;
HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$0(Landroid/content/Context;)Landroid/telephony/TelephonyManager;
HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$1(Landroid/content/Context;)Landroid/telephony/SubscriptionManager;
HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$2(Landroid/content/Context;)Landroid/telephony/CarrierConfigManager;
+HSPLandroid/telephony/TelephonyFrameworkInitializer;->lambda$registerServiceWrappers$3(Landroid/content/Context;)Landroid/telephony/euicc/EuiccManager;
+HSPLandroid/telephony/TelephonyFrameworkInitializer;->setTelephonyServiceManager(Landroid/os/TelephonyServiceManager;)V
+HSPLandroid/telephony/TelephonyHistogram;-><init>(III)V
+HPLandroid/telephony/TelephonyHistogram;-><init>(Landroid/telephony/TelephonyHistogram;)V
+HSPLandroid/telephony/TelephonyHistogram;->addTimeTaken(I)V
+HSPLandroid/telephony/TelephonyHistogram;->addToBucketCounter([I[II)V
+HSPLandroid/telephony/TelephonyHistogram;->calculateBucketEndPoints([I)V
+HPLandroid/telephony/TelephonyHistogram;->getAverageTime()I
+HPLandroid/telephony/TelephonyHistogram;->getBucketCount()I
+HPLandroid/telephony/TelephonyHistogram;->getBucketCounters()[I
+HPLandroid/telephony/TelephonyHistogram;->getBucketEndPoints()[I
+HPLandroid/telephony/TelephonyHistogram;->getCategory()I
+HPLandroid/telephony/TelephonyHistogram;->getId()I
+HPLandroid/telephony/TelephonyHistogram;->getMaxTime()I
+HPLandroid/telephony/TelephonyHistogram;->getMinTime()I
+HPLandroid/telephony/TelephonyHistogram;->getSampleCount()I
+PLandroid/telephony/TelephonyManager$2;-><init>(Landroid/telephony/TelephonyManager;Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyManager$CellInfoCallback;)V
+PLandroid/telephony/TelephonyManager$2;->lambda$onCellInfo$0(Landroid/telephony/TelephonyManager$CellInfoCallback;Ljava/util/List;)V
+HPLandroid/telephony/TelephonyManager$2;->onCellInfo(Ljava/util/List;)V
+HPLandroid/telephony/TelephonyManager$CellInfoCallback;-><init>()V
HSPLandroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;)V
HSPLandroid/telephony/TelephonyManager;-><init>(Landroid/content/Context;I)V
HSPLandroid/telephony/TelephonyManager;->checkCarrierPrivilegesForPackageAnyPhone(Ljava/lang/String;)I
+HPLandroid/telephony/TelephonyManager;->createForPhoneAccountHandle(Landroid/telecom/PhoneAccountHandle;)Landroid/telephony/TelephonyManager;
HSPLandroid/telephony/TelephonyManager;->createForSubscriptionId(I)Landroid/telephony/TelephonyManager;
+HPLandroid/telephony/TelephonyManager;->disableIms(I)V
+HSPLandroid/telephony/TelephonyManager;->from(Landroid/content/Context;)Landroid/telephony/TelephonyManager;
HSPLandroid/telephony/TelephonyManager;->getActiveModemCount()I
+HPLandroid/telephony/TelephonyManager;->getActiveVisualVoicemailSmsFilterSettings(I)Landroid/telephony/VisualVoicemailSmsFilterSettings;
+HSPLandroid/telephony/TelephonyManager;->getAllCellInfo()Ljava/util/List;
HSPLandroid/telephony/TelephonyManager;->getCallState()I
+HSPLandroid/telephony/TelephonyManager;->getCardIdForDefaultEuicc()I
+HSPLandroid/telephony/TelephonyManager;->getCarrierPackageNamesForIntentAndPhone(Landroid/content/Intent;I)Ljava/util/List;
+HSPLandroid/telephony/TelephonyManager;->getCarrierPrivilegedPackagesForAllActiveSubscriptions()Ljava/util/List;
HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneType()I
HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneType(I)I
HSPLandroid/telephony/TelephonyManager;->getCurrentPhoneTypeForSlot(I)I
+HPLandroid/telephony/TelephonyManager;->getDataActivity()I
+PLandroid/telephony/TelephonyManager;->getDataEnabled()Z
HSPLandroid/telephony/TelephonyManager;->getDataEnabled(I)Z
+PLandroid/telephony/TelephonyManager;->getDataNetworkType()I
+HSPLandroid/telephony/TelephonyManager;->getDataNetworkType(I)I
+HPLandroid/telephony/TelephonyManager;->getDataState()I
HSPLandroid/telephony/TelephonyManager;->getDefault()Landroid/telephony/TelephonyManager;
HSPLandroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;
+PLandroid/telephony/TelephonyManager;->getEmergencyNumberList()Ljava/util/Map;
HSPLandroid/telephony/TelephonyManager;->getFeatureId()Ljava/lang/String;
+HPLandroid/telephony/TelephonyManager;->getGroupIdLevel1()Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getITelephony()Lcom/android/internal/telephony/ITelephony;
+PLandroid/telephony/TelephonyManager;->getImei()Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getImei(I)Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getImsConfig(II)Landroid/telephony/ims/aidl/IImsConfig;
+HSPLandroid/telephony/TelephonyManager;->getImsMmTelFeatureAndListen(ILcom/android/ims/internal/IImsServiceFeatureCallback;)Landroid/telephony/ims/aidl/IImsMmTelFeature;
+HSPLandroid/telephony/TelephonyManager;->getImsRcsFeatureAndListen(ILcom/android/ims/internal/IImsServiceFeatureCallback;)Landroid/telephony/ims/aidl/IImsRcsFeature;
+HSPLandroid/telephony/TelephonyManager;->getImsRegistration(II)Landroid/telephony/ims/aidl/IImsRegistration;
+HPLandroid/telephony/TelephonyManager;->getLine1Number()Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getLine1Number(I)Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getLteOnCdmaMode()I
+HSPLandroid/telephony/TelephonyManager;->getLteOnCdmaMode(I)I
+HPLandroid/telephony/TelephonyManager;->getMeid()Ljava/lang/String;
+HPLandroid/telephony/TelephonyManager;->getMeid(I)Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getMergedSubscriberIds()[Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getMmsUAProfUrl()Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getMmsUserAgent()Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getMultiSimConfiguration()Landroid/telephony/TelephonyManager$MultiSimVariants;
HSPLandroid/telephony/TelephonyManager;->getNetworkCountryIso()Ljava/lang/String;
+HPLandroid/telephony/TelephonyManager;->getNetworkCountryIso(I)Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getNetworkOperator()Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getNetworkOperatorForPhone(I)Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getNetworkOperatorName()Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getNetworkOperatorName(I)Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getNetworkType()I
+HSPLandroid/telephony/TelephonyManager;->getNetworkType(I)I
+HSPLandroid/telephony/TelephonyManager;->getNetworkTypeName(I)Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getOpPackageName()Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getOtaSpNumberSchemaForPhone(ILjava/lang/String;)Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getPhoneCount()I
+HSPLandroid/telephony/TelephonyManager;->getPhoneId()I
HSPLandroid/telephony/TelephonyManager;->getPhoneType()I
+HSPLandroid/telephony/TelephonyManager;->getPhoneType(I)I
+HSPLandroid/telephony/TelephonyManager;->getPhoneTypeFromNetworkType(I)I
+HSPLandroid/telephony/TelephonyManager;->getPhoneTypeFromProperty(I)I
+PLandroid/telephony/TelephonyManager;->getServiceState()Landroid/telephony/ServiceState;
+PLandroid/telephony/TelephonyManager;->getServiceStateForSubscriber(I)Landroid/telephony/ServiceState;
+HPLandroid/telephony/TelephonyManager;->getSignalStrength()Landroid/telephony/SignalStrength;
+HSPLandroid/telephony/TelephonyManager;->getSimCardState()I
+HSPLandroid/telephony/TelephonyManager;->getSimCardStateFromSimState(I)I
+HSPLandroid/telephony/TelephonyManager;->getSimCount()I
HSPLandroid/telephony/TelephonyManager;->getSimCountryIso()Ljava/lang/String;
+PLandroid/telephony/TelephonyManager;->getSimCountryIsoForPhone(I)Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getSimOperator()Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getSimOperatorName()Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getSimOperatorNameForPhone(I)Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getSimOperatorNumeric()Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getSimOperatorNumeric(I)Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getSimOperatorNumericForPhone(I)Ljava/lang/String;
+PLandroid/telephony/TelephonyManager;->getSimSerialNumber()Ljava/lang/String;
+PLandroid/telephony/TelephonyManager;->getSimSerialNumber(I)Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getSimState()I
HSPLandroid/telephony/TelephonyManager;->getSimState(I)I
HSPLandroid/telephony/TelephonyManager;->getSimStateIncludingLoaded()I
HSPLandroid/telephony/TelephonyManager;->getSlotIndex()I
+HSPLandroid/telephony/TelephonyManager;->getSmsReceiveCapableForPhone(IZ)Z
+HSPLandroid/telephony/TelephonyManager;->getSmsSendCapableForPhone(IZ)Z
HSPLandroid/telephony/TelephonyManager;->getSubId()I
HSPLandroid/telephony/TelephonyManager;->getSubId(I)I
+HSPLandroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String;
+HSPLandroid/telephony/TelephonyManager;->getSubscriberId(I)Ljava/lang/String;
HSPLandroid/telephony/TelephonyManager;->getSubscriberInfo()Lcom/android/internal/telephony/IPhoneSubInfo;
+HPLandroid/telephony/TelephonyManager;->getSubscriptionId(Landroid/telecom/PhoneAccountHandle;)I
+HSPLandroid/telephony/TelephonyManager;->getSupportedModemCount()I
HSPLandroid/telephony/TelephonyManager;->getTelephonyProperty(ILjava/util/List;Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroid/telephony/TelephonyManager;->getTelephonyRegistry()Lcom/android/internal/telephony/ITelephonyRegistry;
+HSPLandroid/telephony/TelephonyManager;->getUiccCardsInfo()Ljava/util/List;
+HSPLandroid/telephony/TelephonyManager;->getUiccSlotsInfo()[Landroid/telephony/UiccSlotInfo;
+HPLandroid/telephony/TelephonyManager;->getVisualVoicemailPackageName()Ljava/lang/String;
+HPLandroid/telephony/TelephonyManager;->getVoiceNetworkType()I
+HPLandroid/telephony/TelephonyManager;->getVoiceNetworkType(I)I
+HSPLandroid/telephony/TelephonyManager;->getVtDataUsage(I)Landroid/net/NetworkStats;
+HPLandroid/telephony/TelephonyManager;->hasCarrierPrivileges()Z
+HPLandroid/telephony/TelephonyManager;->hasCarrierPrivileges(I)Z
+HPLandroid/telephony/TelephonyManager;->isConcurrentVoiceAndDataSupported()Z
+HPLandroid/telephony/TelephonyManager;->isDataCapable()Z
HSPLandroid/telephony/TelephonyManager;->isDataEnabled()Z
+HSPLandroid/telephony/TelephonyManager;->isEmergencyAssistanceEnabled()Z
+HSPLandroid/telephony/TelephonyManager;->isEmergencyNumber(Ljava/lang/String;)Z
+HSPLandroid/telephony/TelephonyManager;->isMultiSimEnabled()Z
+HSPLandroid/telephony/TelephonyManager;->isNetworkRoaming()Z
HSPLandroid/telephony/TelephonyManager;->isNetworkRoaming(I)Z
HSPLandroid/telephony/TelephonyManager;->isSmsCapable()Z
+PLandroid/telephony/TelephonyManager;->isTetheringApnRequired(I)Z
HSPLandroid/telephony/TelephonyManager;->isVoiceCapable()Z
HSPLandroid/telephony/TelephonyManager;->listen(Landroid/telephony/PhoneStateListener;I)V
+HPLandroid/telephony/TelephonyManager;->requestCellInfoUpdate(Landroid/os/WorkSource;Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyManager$CellInfoCallback;)V
+HSPLandroid/telephony/TelephonyManager;->requestModemActivityInfo(Landroid/os/ResultReceiver;)V
+HSPLandroid/telephony/TelephonyManager;->setBasebandVersionForPhone(ILjava/lang/String;)V
+HSPLandroid/telephony/TelephonyManager;->setDataNetworkTypeForPhone(II)V
+HSPLandroid/telephony/TelephonyManager;->setNetworkOperatorNameForPhone(ILjava/lang/String;)V
+HSPLandroid/telephony/TelephonyManager;->setNetworkOperatorNumericForPhone(ILjava/lang/String;)V
+HSPLandroid/telephony/TelephonyManager;->setNetworkRoamingForPhone(IZ)V
+HSPLandroid/telephony/TelephonyManager;->setPhoneType(II)V
+HSPLandroid/telephony/TelephonyManager;->setSimStateForPhone(ILjava/lang/String;)V
+HSPLandroid/telephony/TelephonyManager;->updateTelephonyProperty(Ljava/util/List;ILjava/lang/Object;)Ljava/util/List;
HSPLandroid/telephony/TelephonyRegistryManager$1;-><init>(Landroid/telephony/TelephonyRegistryManager;Ljava/util/concurrent/Executor;Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
HSPLandroid/telephony/TelephonyRegistryManager$1;->lambda$onSubscriptionsChanged$0(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;)V
HSPLandroid/telephony/TelephonyRegistryManager$1;->onSubscriptionsChanged()V
+HSPLandroid/telephony/TelephonyRegistryManager$2;-><init>(Landroid/telephony/TelephonyRegistryManager;Ljava/util/concurrent/Executor;Landroid/telephony/SubscriptionManager$OnOpportunisticSubscriptionsChangedListener;)V
HSPLandroid/telephony/TelephonyRegistryManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/telephony/TelephonyRegistryManager;->addOnOpportunisticSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnOpportunisticSubscriptionsChangedListener;Ljava/util/concurrent/Executor;)V
HSPLandroid/telephony/TelephonyRegistryManager;->addOnSubscriptionsChangedListener(Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;Ljava/util/concurrent/Executor;)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifyActiveDataSubIdChanged(I)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifyCellInfoChanged(ILjava/util/List;)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifyCellLocation(ILandroid/os/Bundle;)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifyDataActivationStateChanged(III)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifyDataActivityChanged(II)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifyDataConnectionForSubscriber(IIIZLjava/lang/String;Ljava/lang/String;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;IZ)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifyEmergencyNumberList(II)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifyOtaspChanged(II)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifyPhoneCapabilityChanged(Landroid/telephony/PhoneCapability;)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifyPreciseCallState(IIIII)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifyRadioPowerStateChanged(III)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifyServiceStateChanged(IILandroid/telephony/ServiceState;)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifySignalStrengthChanged(IILandroid/telephony/SignalStrength;)V
+HSPLandroid/telephony/TelephonyRegistryManager;->notifyVoiceActivationStateChanged(III)V
+HSPLandroid/telephony/UiccCardInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/UiccCardInfo;
+HSPLandroid/telephony/UiccCardInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/UiccCardInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/UiccCardInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/UiccCardInfo$1;)V
+HSPLandroid/telephony/UiccCardInfo;-><init>(ZILjava/lang/String;Ljava/lang/String;IZ)V
+HSPLandroid/telephony/UiccCardInfo;->getCardId()I
+HSPLandroid/telephony/UiccCardInfo;->getEid()Ljava/lang/String;
+HSPLandroid/telephony/UiccCardInfo;->getIccId()Ljava/lang/String;
+HSPLandroid/telephony/UiccCardInfo;->getSlotIndex()I
+HSPLandroid/telephony/UiccCardInfo;->isEuicc()Z
+HSPLandroid/telephony/UiccCardInfo;->isRemovable()Z
+HSPLandroid/telephony/UiccCardInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/UiccSlotInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/UiccSlotInfo;
+HSPLandroid/telephony/UiccSlotInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/telephony/UiccSlotInfo$1;->newArray(I)[Landroid/telephony/UiccSlotInfo;
+HSPLandroid/telephony/UiccSlotInfo$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/telephony/UiccSlotInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/UiccSlotInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/UiccSlotInfo$1;)V
+HSPLandroid/telephony/UiccSlotInfo;->getCardId()Ljava/lang/String;
+HSPLandroid/telephony/UiccSlotInfo;->getCardStateInfo()I
+HSPLandroid/telephony/UiccSlotInfo;->getIsActive()Z
+HSPLandroid/telephony/UiccSlotInfo;->getIsEuicc()Z
+HSPLandroid/telephony/UiccSlotInfo;->getLogicalSlotIdx()I
+HSPLandroid/telephony/UiccSlotInfo;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/telephony/VoiceSpecificRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/VoiceSpecificRegistrationInfo;
HSPLandroid/telephony/VoiceSpecificRegistrationInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/telephony/VoiceSpecificRegistrationInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/telephony/VoiceSpecificRegistrationInfo;-><init>(Landroid/os/Parcel;Landroid/telephony/VoiceSpecificRegistrationInfo$1;)V
HSPLandroid/telephony/VoiceSpecificRegistrationInfo;-><init>(Landroid/telephony/VoiceSpecificRegistrationInfo;)V
+HSPLandroid/telephony/VoiceSpecificRegistrationInfo;-><init>(ZIII)V
+HPLandroid/telephony/VoiceSpecificRegistrationInfo;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/VoiceSpecificRegistrationInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/VoiceSpecificRegistrationInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/data/ApnSetting$Builder;-><init>()V
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$000(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$100(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1000(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1100(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1200(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1300(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1400(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1500(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1600(Landroid/telephony/data/ApnSetting$Builder;)Z
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1700(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1800(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$1900(Landroid/telephony/data/ApnSetting$Builder;)Z
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$200(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2000(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2100(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2200(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2300(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2400(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2500(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2600(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$2700(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$300(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$400(Landroid/telephony/data/ApnSetting$Builder;)Landroid/net/Uri;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$500(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$600(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$700(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$800(Landroid/telephony/data/ApnSetting$Builder;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting$Builder;->access$900(Landroid/telephony/data/ApnSetting$Builder;)I
+HSPLandroid/telephony/data/ApnSetting$Builder;->build()Landroid/telephony/data/ApnSetting;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setApnName(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setApnTypeBitmask(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setEntryName(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setNetworkTypeBitmask(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setProtocol(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting$Builder;->setRoamingProtocol(I)Landroid/telephony/data/ApnSetting$Builder;
+HSPLandroid/telephony/data/ApnSetting;-><init>(Landroid/telephony/data/ApnSetting$Builder;)V
+HSPLandroid/telephony/data/ApnSetting;-><init>(Landroid/telephony/data/ApnSetting$Builder;Landroid/telephony/data/ApnSetting$1;)V
+HSPLandroid/telephony/data/ApnSetting;->UriToString(Landroid/net/Uri;)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting;->canHandleType(I)Z
+HSPLandroid/telephony/data/ApnSetting;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/data/ApnSetting;->getApnName()Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting;->getApnTypeBitmask()I
+HSPLandroid/telephony/data/ApnSetting;->getApnTypeString(I)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting;->getApnTypesBitmaskFromString(Ljava/lang/String;)I
+HSPLandroid/telephony/data/ApnSetting;->getApnTypesStringFromBitmask(I)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting;->getAuthType()I
+HSPLandroid/telephony/data/ApnSetting;->getMaxConns()I
+HSPLandroid/telephony/data/ApnSetting;->getMaxConnsTime()I
+HSPLandroid/telephony/data/ApnSetting;->getMtu()I
+HSPLandroid/telephony/data/ApnSetting;->getNetworkTypeBitmask()I
+HSPLandroid/telephony/data/ApnSetting;->getPassword()Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting;->getProfileId()I
+HSPLandroid/telephony/data/ApnSetting;->getProtocol()I
+HSPLandroid/telephony/data/ApnSetting;->getRoamingProtocol()I
+HSPLandroid/telephony/data/ApnSetting;->getUser()Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting;->getWaitTime()I
+HSPLandroid/telephony/data/ApnSetting;->isEnabled()Z
+HSPLandroid/telephony/data/ApnSetting;->isPersistent()Z
+HSPLandroid/telephony/data/ApnSetting;->portToString(I)Ljava/lang/String;
+HSPLandroid/telephony/data/ApnSetting;->toString()Ljava/lang/String;
+HSPLandroid/telephony/data/DataProfile$Builder;-><init>()V
+HSPLandroid/telephony/data/DataProfile$Builder;->build()Landroid/telephony/data/DataProfile;
+HSPLandroid/telephony/data/DataProfile$Builder;->enable(Z)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setApn(Ljava/lang/String;)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setAuthType(I)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setBearerBitmask(I)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setMaxConnections(I)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setMaxConnectionsTime(I)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setMtu(I)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setPassword(Ljava/lang/String;)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setPersistent(Z)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setPreferred(Z)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setProfileId(I)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setProtocolType(I)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setRoamingProtocolType(I)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setSupportedApnTypesBitmask(I)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setType(I)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setUserName(Ljava/lang/String;)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile$Builder;->setWaitTime(I)Landroid/telephony/data/DataProfile$Builder;
+HSPLandroid/telephony/data/DataProfile;-><init>(ILjava/lang/String;IILjava/lang/String;Ljava/lang/String;IIIIZIIIIZZ)V
+HSPLandroid/telephony/data/DataProfile;-><init>(ILjava/lang/String;IILjava/lang/String;Ljava/lang/String;IIIIZIIIIZZLandroid/telephony/data/DataProfile$1;)V
+HSPLandroid/telephony/data/DataService$DataServiceHandler;-><init>(Landroid/telephony/data/DataService;Landroid/os/Looper;)V
+HSPLandroid/telephony/data/DataService$DataServiceHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/telephony/data/DataService$DataServiceProvider;-><init>(Landroid/telephony/data/DataService;I)V
+HSPLandroid/telephony/data/DataService$DataServiceProvider;->access$300(Landroid/telephony/data/DataService$DataServiceProvider;Landroid/telephony/data/IDataServiceCallback;)V
+HSPLandroid/telephony/data/DataService$DataServiceProvider;->getSlotIndex()I
+HSPLandroid/telephony/data/DataService$DataServiceProvider;->registerForDataCallListChanged(Landroid/telephony/data/IDataServiceCallback;)V
+HSPLandroid/telephony/data/DataService$IDataServiceWrapper;-><init>(Landroid/telephony/data/DataService;)V
+HSPLandroid/telephony/data/DataService$IDataServiceWrapper;-><init>(Landroid/telephony/data/DataService;Landroid/telephony/data/DataService$1;)V
+HSPLandroid/telephony/data/DataService$IDataServiceWrapper;->createDataServiceProvider(I)V
+HSPLandroid/telephony/data/DataService$IDataServiceWrapper;->registerForDataCallListChanged(ILandroid/telephony/data/IDataServiceCallback;)V
+HSPLandroid/telephony/data/DataService;-><init>()V
+HSPLandroid/telephony/data/DataService;->access$100(Landroid/telephony/data/DataService;)Landroid/telephony/data/DataService$DataServiceHandler;
+HSPLandroid/telephony/data/DataService;->access$200(Landroid/telephony/data/DataService;)Landroid/util/SparseArray;
+HSPLandroid/telephony/data/DataService;->log(Ljava/lang/String;)V
+HSPLandroid/telephony/data/DataService;->onBind(Landroid/content/Intent;)Landroid/os/IBinder;
+HSPLandroid/telephony/data/IDataService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/telephony/data/IDataService$Stub$Proxy;->createDataServiceProvider(I)V
+HSPLandroid/telephony/data/IDataService$Stub$Proxy;->registerForDataCallListChanged(ILandroid/telephony/data/IDataServiceCallback;)V
+HSPLandroid/telephony/data/IDataService$Stub;-><init>()V
+HSPLandroid/telephony/data/IDataService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/data/IDataService;
+HSPLandroid/telephony/data/IDataService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/telephony/data/IDataServiceCallback$Stub;-><init>()V
+HSPLandroid/telephony/data/IDataServiceCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/telephony/data/IDataServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/data/IDataServiceCallback;
+HSPLandroid/telephony/data/IQualifiedNetworksService$Stub;-><init>()V
+HSPLandroid/telephony/data/IQualifiedNetworksService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/data/IQualifiedNetworksService;
+HSPLandroid/telephony/data/IQualifiedNetworksService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/telephony/data/IQualifiedNetworksServiceCallback$Stub;-><init>()V
+HSPLandroid/telephony/data/IQualifiedNetworksServiceCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/telephony/data/IQualifiedNetworksServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/data/IQualifiedNetworksServiceCallback;
+PLandroid/telephony/emergency/EmergencyNumber$1;->createFromParcel(Landroid/os/Parcel;)Landroid/telephony/emergency/EmergencyNumber;
+PLandroid/telephony/emergency/EmergencyNumber$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/telephony/emergency/EmergencyNumber;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/telephony/emergency/EmergencyNumber;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/util/List;II)V
+HSPLandroid/telephony/emergency/EmergencyNumber;->areSameEmergencyNumbers(Landroid/telephony/emergency/EmergencyNumber;Landroid/telephony/emergency/EmergencyNumber;)Z
+HSPLandroid/telephony/emergency/EmergencyNumber;->compareTo(Landroid/telephony/emergency/EmergencyNumber;)I
+HSPLandroid/telephony/emergency/EmergencyNumber;->compareTo(Ljava/lang/Object;)I
+HSPLandroid/telephony/emergency/EmergencyNumber;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/emergency/EmergencyNumber;->getCountryIso()Ljava/lang/String;
+HSPLandroid/telephony/emergency/EmergencyNumber;->getDisplayPriorityScore()I
+HSPLandroid/telephony/emergency/EmergencyNumber;->getEmergencyCallRouting()I
+HSPLandroid/telephony/emergency/EmergencyNumber;->getEmergencyNumberSourceBitmask()I
+HSPLandroid/telephony/emergency/EmergencyNumber;->getEmergencyServiceCategoryBitmask()I
+HSPLandroid/telephony/emergency/EmergencyNumber;->getEmergencyUrns()Ljava/util/List;
+HSPLandroid/telephony/emergency/EmergencyNumber;->getMnc()Ljava/lang/String;
+HSPLandroid/telephony/emergency/EmergencyNumber;->getNumber()Ljava/lang/String;
+HSPLandroid/telephony/emergency/EmergencyNumber;->isFromSources(I)Z
+HSPLandroid/telephony/emergency/EmergencyNumber;->mergeSameEmergencyNumbers(Landroid/telephony/emergency/EmergencyNumber;Landroid/telephony/emergency/EmergencyNumber;)Landroid/telephony/emergency/EmergencyNumber;
+HSPLandroid/telephony/emergency/EmergencyNumber;->mergeSameNumbersInEmergencyNumberList(Ljava/util/List;)V
+HSPLandroid/telephony/emergency/EmergencyNumber;->toString()Ljava/lang/String;
+HSPLandroid/telephony/emergency/EmergencyNumber;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/euicc/EuiccManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/telephony/euicc/EuiccManager;->getIEuiccController()Lcom/android/internal/telephony/euicc/IEuiccController;
+HSPLandroid/telephony/euicc/EuiccManager;->isEnabled()Z
+HSPLandroid/telephony/euicc/EuiccManager;->refreshCardIdIfUninitialized()Z
+HSPLandroid/telephony/gsm/GsmCellLocation;-><init>()V
+HSPLandroid/telephony/gsm/GsmCellLocation;->fillInNotifierBundle(Landroid/os/Bundle;)V
+HSPLandroid/telephony/gsm/GsmCellLocation;->setLacAndCid(II)V
+HSPLandroid/telephony/gsm/GsmCellLocation;->setPsc(I)V
+HSPLandroid/telephony/ims/-$$Lambda$ImsMmTelManager$CapabilityCallback$CapabilityBinder$4YNlUy9HsD02E7Sbv2VeVtbao08;-><init>(Landroid/telephony/ims/ImsMmTelManager$CapabilityCallback$CapabilityBinder;I)V
+HSPLandroid/telephony/ims/-$$Lambda$ImsMmTelManager$CapabilityCallback$CapabilityBinder$4YNlUy9HsD02E7Sbv2VeVtbao08;->run()V
+HSPLandroid/telephony/ims/-$$Lambda$ProvisioningManager$Callback$CallbackBinder$R_8jXQuOM7aV7dIwYBzcWwV-YpM;-><init>(Landroid/telephony/ims/ProvisioningManager$Callback$CallbackBinder;II)V
+HSPLandroid/telephony/ims/-$$Lambda$ProvisioningManager$Callback$CallbackBinder$R_8jXQuOM7aV7dIwYBzcWwV-YpM;->run()V
+HSPLandroid/telephony/ims/ImsMmTelManager$CapabilityCallback$CapabilityBinder;-><init>(Landroid/telephony/ims/ImsMmTelManager$CapabilityCallback;)V
+HSPLandroid/telephony/ims/ImsMmTelManager$CapabilityCallback$CapabilityBinder;->access$000(Landroid/telephony/ims/ImsMmTelManager$CapabilityCallback$CapabilityBinder;Ljava/util/concurrent/Executor;)V
+HSPLandroid/telephony/ims/ImsMmTelManager$CapabilityCallback$CapabilityBinder;->lambda$onCapabilitiesStatusChanged$0$ImsMmTelManager$CapabilityCallback$CapabilityBinder(I)V
+HSPLandroid/telephony/ims/ImsMmTelManager$CapabilityCallback$CapabilityBinder;->onCapabilitiesStatusChanged(I)V
+HSPLandroid/telephony/ims/ImsMmTelManager$CapabilityCallback$CapabilityBinder;->setExecutor(Ljava/util/concurrent/Executor;)V
+HSPLandroid/telephony/ims/ImsMmTelManager$CapabilityCallback;-><init>()V
+HSPLandroid/telephony/ims/ImsMmTelManager$CapabilityCallback;->getBinder()Landroid/telephony/ims/aidl/IImsCapabilityCallback;
+HSPLandroid/telephony/ims/ImsMmTelManager$CapabilityCallback;->setExecutor(Ljava/util/concurrent/Executor;)V
+HSPLandroid/telephony/ims/ImsReasonInfo;-><init>()V
+HPLandroid/telephony/ims/ImsReasonInfo;-><init>(II)V
+HSPLandroid/telephony/ims/ImsReasonInfo;->getCode()I
+HSPLandroid/telephony/ims/ImsReasonInfo;->getExtraCode()I
+HSPLandroid/telephony/ims/ImsReasonInfo;->getExtraMessage()Ljava/lang/String;
+HSPLandroid/telephony/ims/ImsReasonInfo;->toString()Ljava/lang/String;
+HSPLandroid/telephony/ims/ImsReasonInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/telephony/ims/ImsService$1;-><init>(Landroid/telephony/ims/ImsService;)V
+HSPLandroid/telephony/ims/ImsService$1;->createMmTelFeature(ILcom/android/ims/internal/IImsFeatureStatusCallback;)Landroid/telephony/ims/aidl/IImsMmTelFeature;
+HPLandroid/telephony/ims/ImsService$1;->disableIms(I)V
+HSPLandroid/telephony/ims/ImsService$1;->getConfig(I)Landroid/telephony/ims/aidl/IImsConfig;
+HSPLandroid/telephony/ims/ImsService$1;->getRegistration(I)Landroid/telephony/ims/aidl/IImsRegistration;
+HSPLandroid/telephony/ims/ImsService$1;->notifyImsServiceReadyForFeatureCreation()V
+HSPLandroid/telephony/ims/ImsService$1;->setListener(Landroid/telephony/ims/aidl/IImsServiceControllerListener;)V
+HSPLandroid/telephony/ims/ImsService$Listener;-><init>()V
+HSPLandroid/telephony/ims/ImsService;-><init>()V
+HSPLandroid/telephony/ims/ImsService;->access$002(Landroid/telephony/ims/ImsService;Landroid/telephony/ims/aidl/IImsServiceControllerListener;)Landroid/telephony/ims/aidl/IImsServiceControllerListener;
+HSPLandroid/telephony/ims/ImsService;->access$100(Landroid/telephony/ims/ImsService;ILcom/android/ims/internal/IImsFeatureStatusCallback;)Landroid/telephony/ims/aidl/IImsMmTelFeature;
+HSPLandroid/telephony/ims/ImsService;->addImsFeature(IILandroid/telephony/ims/feature/ImsFeature;)V
+HSPLandroid/telephony/ims/ImsService;->createMmTelFeatureInternal(ILcom/android/ims/internal/IImsFeatureStatusCallback;)Landroid/telephony/ims/aidl/IImsMmTelFeature;
+HSPLandroid/telephony/ims/ImsService;->setupFeature(Landroid/telephony/ims/feature/ImsFeature;IILcom/android/ims/internal/IImsFeatureStatusCallback;)V
+HSPLandroid/telephony/ims/ImsUtListener;-><init>(Lcom/android/ims/internal/IImsUtListener;)V
+HSPLandroid/telephony/ims/ProvisioningManager$Callback$CallbackBinder;-><init>(Landroid/telephony/ims/ProvisioningManager$Callback;)V
+HSPLandroid/telephony/ims/ProvisioningManager$Callback$CallbackBinder;-><init>(Landroid/telephony/ims/ProvisioningManager$Callback;Landroid/telephony/ims/ProvisioningManager$1;)V
+HSPLandroid/telephony/ims/ProvisioningManager$Callback$CallbackBinder;->access$100(Landroid/telephony/ims/ProvisioningManager$Callback$CallbackBinder;Ljava/util/concurrent/Executor;)V
+HSPLandroid/telephony/ims/ProvisioningManager$Callback$CallbackBinder;->lambda$onIntConfigChanged$0$ProvisioningManager$Callback$CallbackBinder(II)V
+HSPLandroid/telephony/ims/ProvisioningManager$Callback$CallbackBinder;->onIntConfigChanged(II)V
+HSPLandroid/telephony/ims/ProvisioningManager$Callback$CallbackBinder;->setExecutor(Ljava/util/concurrent/Executor;)V
+HSPLandroid/telephony/ims/ProvisioningManager$Callback;-><init>()V
+HSPLandroid/telephony/ims/ProvisioningManager$Callback;->getBinder()Landroid/telephony/ims/aidl/IImsConfigCallback;
+HSPLandroid/telephony/ims/ProvisioningManager$Callback;->setExecutor(Ljava/util/concurrent/Executor;)V
+HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder;-><init>(Landroid/telephony/ims/RegistrationManager$RegistrationCallback;)V
+HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder;->access$000(Landroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder;Ljava/util/concurrent/Executor;)V
+HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder;->lambda$onDeregistered$2$RegistrationManager$RegistrationCallback$RegistrationBinder(Landroid/telephony/ims/ImsReasonInfo;)V
+HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder;->onDeregistered(Landroid/telephony/ims/ImsReasonInfo;)V
+HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback$RegistrationBinder;->setExecutor(Ljava/util/concurrent/Executor;)V
+HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback;-><init>()V
+HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback;->getBinder()Landroid/telephony/ims/aidl/IImsRegistrationCallback;
+HSPLandroid/telephony/ims/RegistrationManager$RegistrationCallback;->setExecutor(Ljava/util/concurrent/Executor;)V
+HSPLandroid/telephony/ims/aidl/IImsCapabilityCallback$Stub;-><init>()V
+HSPLandroid/telephony/ims/aidl/IImsCapabilityCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/telephony/ims/aidl/IImsConfig$Stub;-><init>()V
+HSPLandroid/telephony/ims/aidl/IImsConfig$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/telephony/ims/aidl/IImsConfig$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/telephony/ims/aidl/IImsConfigCallback$Stub;-><init>()V
+HSPLandroid/telephony/ims/aidl/IImsConfigCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/telephony/ims/aidl/IImsMmTelFeature$Stub;-><init>()V
+HSPLandroid/telephony/ims/aidl/IImsMmTelFeature$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/telephony/ims/aidl/IImsMmTelFeature$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/ims/aidl/IImsMmTelFeature;
+HSPLandroid/telephony/ims/aidl/IImsMmTelFeature$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/telephony/ims/aidl/IImsMmTelListener$Stub;-><init>()V
+HSPLandroid/telephony/ims/aidl/IImsRegistration$Stub;-><init>()V
+HPLandroid/telephony/ims/aidl/IImsRegistration$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/ims/aidl/IImsRegistration;
+HSPLandroid/telephony/ims/aidl/IImsRegistrationCallback$Stub;-><init>()V
+HSPLandroid/telephony/ims/aidl/IImsRegistrationCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/telephony/ims/aidl/IImsServiceController$Stub;-><init>()V
+HSPLandroid/telephony/ims/aidl/IImsServiceController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/ims/aidl/IImsServiceController;
+HSPLandroid/telephony/ims/aidl/IImsServiceControllerListener$Stub;-><init>()V
+HSPLandroid/telephony/ims/aidl/IImsSmsListener$Stub;-><init>()V
+HSPLandroid/telephony/ims/feature/-$$Lambda$ImsFeature$9bLETU1BeS-dFzQnbBBs3kwaz-8;-><init>(Landroid/telephony/ims/feature/ImsFeature$Capabilities;)V
+HSPLandroid/telephony/ims/feature/-$$Lambda$ImsFeature$9bLETU1BeS-dFzQnbBBs3kwaz-8;->accept(Ljava/lang/Object;)V
+HSPLandroid/telephony/ims/feature/-$$Lambda$ImsFeature$rPSMsRhoup9jfT6nt1MV2qhomrM;-><init>(I)V
+HPLandroid/telephony/ims/feature/-$$Lambda$ImsFeature$rPSMsRhoup9jfT6nt1MV2qhomrM;->accept(Ljava/lang/Object;)V
+HPLandroid/telephony/ims/feature/CapabilityChangeRequest$CapabilityPair;->getCapability()I
+HPLandroid/telephony/ims/feature/CapabilityChangeRequest$CapabilityPair;->getRadioTech()I
+HPLandroid/telephony/ims/feature/CapabilityChangeRequest$CapabilityPair;->hashCode()I
+HPLandroid/telephony/ims/feature/CapabilityChangeRequest$CapabilityPair;->toString()Ljava/lang/String;
+HPLandroid/telephony/ims/feature/CapabilityChangeRequest;-><init>()V
+HPLandroid/telephony/ims/feature/CapabilityChangeRequest;->addCapabilitiesToDisableForTech(II)V
+HPLandroid/telephony/ims/feature/CapabilityChangeRequest;->getCapabilitiesToDisable()Ljava/util/List;
+HPLandroid/telephony/ims/feature/CapabilityChangeRequest;->getCapabilitiesToEnable()Ljava/util/List;
+HPLandroid/telephony/ims/feature/CapabilityChangeRequest;->toString()Ljava/lang/String;
+HSPLandroid/telephony/ims/feature/ImsFeature$Capabilities;-><init>()V
+HSPLandroid/telephony/ims/feature/ImsFeature$Capabilities;-><init>(I)V
+HSPLandroid/telephony/ims/feature/ImsFeature$Capabilities;->copy()Landroid/telephony/ims/feature/ImsFeature$Capabilities;
+HSPLandroid/telephony/ims/feature/ImsFeature$Capabilities;->isCapable(I)Z
+HSPLandroid/telephony/ims/feature/ImsFeature;-><init>()V
+HSPLandroid/telephony/ims/feature/ImsFeature;->addCapabilityCallback(Landroid/telephony/ims/aidl/IImsCapabilityCallback;)V
+HSPLandroid/telephony/ims/feature/ImsFeature;->addImsFeatureStatusCallback(Lcom/android/ims/internal/IImsFeatureStatusCallback;)V
+HSPLandroid/telephony/ims/feature/ImsFeature;->getFeatureState()I
+HSPLandroid/telephony/ims/feature/ImsFeature;->initialize(Landroid/content/Context;I)V
+HSPLandroid/telephony/ims/feature/ImsFeature;->lambda$notifyCapabilitiesStatusChanged$1(Landroid/telephony/ims/feature/ImsFeature$Capabilities;Landroid/telephony/ims/aidl/IImsCapabilityCallback;)V
+HPLandroid/telephony/ims/feature/ImsFeature;->lambda$notifyFeatureState$0(ILcom/android/ims/internal/IImsFeatureStatusCallback;)V
+HSPLandroid/telephony/ims/feature/ImsFeature;->notifyCapabilitiesStatusChanged(Landroid/telephony/ims/feature/ImsFeature$Capabilities;)V
+HSPLandroid/telephony/ims/feature/ImsFeature;->notifyFeatureState(I)V
+HSPLandroid/telephony/ims/feature/ImsFeature;->queryCapabilityStatus()Landroid/telephony/ims/feature/ImsFeature$Capabilities;
+HSPLandroid/telephony/ims/feature/ImsFeature;->setFeatureState(I)V
+HSPLandroid/telephony/ims/feature/MmTelFeature$1;-><init>(Landroid/telephony/ims/feature/MmTelFeature;)V
+HSPLandroid/telephony/ims/feature/MmTelFeature$1;->addCapabilityCallback(Landroid/telephony/ims/aidl/IImsCapabilityCallback;)V
+HPLandroid/telephony/ims/feature/MmTelFeature$1;->changeCapabilitiesConfiguration(Landroid/telephony/ims/feature/CapabilityChangeRequest;Landroid/telephony/ims/aidl/IImsCapabilityCallback;)V
+HSPLandroid/telephony/ims/feature/MmTelFeature$1;->getEcbmInterface()Lcom/android/ims/internal/IImsEcbm;
+HSPLandroid/telephony/ims/feature/MmTelFeature$1;->getFeatureState()I
+HSPLandroid/telephony/ims/feature/MmTelFeature$1;->getMultiEndpointInterface()Lcom/android/ims/internal/IImsMultiEndpoint;
+HSPLandroid/telephony/ims/feature/MmTelFeature$1;->getUtInterface()Lcom/android/ims/internal/IImsUt;
+HSPLandroid/telephony/ims/feature/MmTelFeature$1;->onSmsReady()V
+HSPLandroid/telephony/ims/feature/MmTelFeature$1;->setListener(Landroid/telephony/ims/aidl/IImsMmTelListener;)V
+HSPLandroid/telephony/ims/feature/MmTelFeature$1;->setSmsListener(Landroid/telephony/ims/aidl/IImsSmsListener;)V
+HSPLandroid/telephony/ims/feature/MmTelFeature$1;->setUiTtyMode(ILandroid/os/Message;)V
+HSPLandroid/telephony/ims/feature/MmTelFeature$Listener;-><init>()V
+HSPLandroid/telephony/ims/feature/MmTelFeature$MmTelCapabilities;-><init>()V
+HSPLandroid/telephony/ims/feature/MmTelFeature$MmTelCapabilities;-><init>(I)V
+HSPLandroid/telephony/ims/feature/MmTelFeature$MmTelCapabilities;-><init>(Landroid/telephony/ims/feature/ImsFeature$Capabilities;)V
+HSPLandroid/telephony/ims/feature/MmTelFeature$MmTelCapabilities;->isCapable(I)Z
+HSPLandroid/telephony/ims/feature/MmTelFeature$MmTelCapabilities;->toString()Ljava/lang/String;
+HSPLandroid/telephony/ims/feature/MmTelFeature;-><init>()V
+HSPLandroid/telephony/ims/feature/MmTelFeature;->access$000(Landroid/telephony/ims/feature/MmTelFeature;Landroid/telephony/ims/aidl/IImsMmTelListener;)V
+HSPLandroid/telephony/ims/feature/MmTelFeature;->access$100(Landroid/telephony/ims/feature/MmTelFeature;Landroid/telephony/ims/aidl/IImsSmsListener;)V
+HSPLandroid/telephony/ims/feature/MmTelFeature;->access$600(Landroid/telephony/ims/feature/MmTelFeature;)V
+HSPLandroid/telephony/ims/feature/MmTelFeature;->getBinder()Landroid/telephony/ims/aidl/IImsMmTelFeature;
+HSPLandroid/telephony/ims/feature/MmTelFeature;->getEcbmInterface()Lcom/android/ims/internal/IImsEcbm;
+HSPLandroid/telephony/ims/feature/MmTelFeature;->getMultiEndpointInterface()Lcom/android/ims/internal/IImsMultiEndpoint;
+HSPLandroid/telephony/ims/feature/MmTelFeature;->getUtInterface()Lcom/android/ims/internal/IImsUt;
+HSPLandroid/telephony/ims/feature/MmTelFeature;->notifyCapabilitiesStatusChanged(Landroid/telephony/ims/feature/MmTelFeature$MmTelCapabilities;)V
+HSPLandroid/telephony/ims/feature/MmTelFeature;->onSmsReady()V
+HSPLandroid/telephony/ims/feature/MmTelFeature;->queryCapabilityStatus()Landroid/telephony/ims/feature/ImsFeature$Capabilities;
+HSPLandroid/telephony/ims/feature/MmTelFeature;->queryCapabilityStatus()Landroid/telephony/ims/feature/MmTelFeature$MmTelCapabilities;
+HSPLandroid/telephony/ims/feature/MmTelFeature;->setListener(Landroid/telephony/ims/aidl/IImsMmTelListener;)V
+HSPLandroid/telephony/ims/feature/MmTelFeature;->setSmsListener(Landroid/telephony/ims/aidl/IImsSmsListener;)V
+HSPLandroid/telephony/ims/stub/-$$Lambda$ImsConfigImplBase$yL4863k-FoQyqg_FX2mWsLMqbyA;-><init>(II)V
+HSPLandroid/telephony/ims/stub/-$$Lambda$ImsConfigImplBase$yL4863k-FoQyqg_FX2mWsLMqbyA;->accept(Ljava/lang/Object;)V
+HSPLandroid/telephony/ims/stub/-$$Lambda$ImsRegistrationImplBase$s7PspXVbCf1Q_WSzodP2glP9TjI;-><init>(Landroid/telephony/ims/ImsReasonInfo;)V
+HSPLandroid/telephony/ims/stub/-$$Lambda$ImsRegistrationImplBase$s7PspXVbCf1Q_WSzodP2glP9TjI;->accept(Ljava/lang/Object;)V
+HSPLandroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;-><init>(Landroid/telephony/ims/stub/ImsConfigImplBase;)V
+HSPLandroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->addImsConfigCallback(Landroid/telephony/ims/aidl/IImsConfigCallback;)V
+HSPLandroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->getImsConfigImpl()Landroid/telephony/ims/stub/ImsConfigImplBase;
+HSPLandroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->notifyImsConfigChanged(II)V
+HPLandroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->removeImsConfigCallback(Landroid/telephony/ims/aidl/IImsConfigCallback;)V
+HSPLandroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->setConfigInt(II)I
+HSPLandroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->updateCachedValue(IIZ)V
+HPLandroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->updateImsCarrierConfigs(Landroid/os/PersistableBundle;)V
+HSPLandroid/telephony/ims/stub/ImsConfigImplBase;-><init>()V
+HSPLandroid/telephony/ims/stub/ImsConfigImplBase;->access$000(Landroid/telephony/ims/stub/ImsConfigImplBase;Landroid/telephony/ims/aidl/IImsConfigCallback;)V
+HPLandroid/telephony/ims/stub/ImsConfigImplBase;->access$100(Landroid/telephony/ims/stub/ImsConfigImplBase;Landroid/telephony/ims/aidl/IImsConfigCallback;)V
+HSPLandroid/telephony/ims/stub/ImsConfigImplBase;->access$200(Landroid/telephony/ims/stub/ImsConfigImplBase;II)V
+HSPLandroid/telephony/ims/stub/ImsConfigImplBase;->addImsConfigCallback(Landroid/telephony/ims/aidl/IImsConfigCallback;)V
+HSPLandroid/telephony/ims/stub/ImsConfigImplBase;->getIImsConfig()Landroid/telephony/ims/aidl/IImsConfig;
+HSPLandroid/telephony/ims/stub/ImsConfigImplBase;->lambda$notifyConfigChanged$0(IILandroid/telephony/ims/aidl/IImsConfigCallback;)V
+HSPLandroid/telephony/ims/stub/ImsConfigImplBase;->notifyConfigChanged(II)V
+HPLandroid/telephony/ims/stub/ImsConfigImplBase;->removeImsConfigCallback(Landroid/telephony/ims/aidl/IImsConfigCallback;)V
+HPLandroid/telephony/ims/stub/ImsConfigImplBase;->updateImsCarrierConfigs(Landroid/os/PersistableBundle;)V
+HSPLandroid/telephony/ims/stub/ImsEcbmImplBase$1;-><init>(Landroid/telephony/ims/stub/ImsEcbmImplBase;)V
+HSPLandroid/telephony/ims/stub/ImsEcbmImplBase$1;->setListener(Lcom/android/ims/internal/IImsEcbmListener;)V
+HSPLandroid/telephony/ims/stub/ImsEcbmImplBase;-><init>()V
+HSPLandroid/telephony/ims/stub/ImsEcbmImplBase;->access$002(Landroid/telephony/ims/stub/ImsEcbmImplBase;Lcom/android/ims/internal/IImsEcbmListener;)Lcom/android/ims/internal/IImsEcbmListener;
+HSPLandroid/telephony/ims/stub/ImsEcbmImplBase;->getImsEcbm()Lcom/android/ims/internal/IImsEcbm;
+HSPLandroid/telephony/ims/stub/ImsFeatureConfiguration$FeatureSlotPair;-><init>(II)V
+HSPLandroid/telephony/ims/stub/ImsFeatureConfiguration$FeatureSlotPair;->equals(Ljava/lang/Object;)Z
+HSPLandroid/telephony/ims/stub/ImsFeatureConfiguration$FeatureSlotPair;->hashCode()I
+HSPLandroid/telephony/ims/stub/ImsFeatureConfiguration$FeatureSlotPair;->toString()Ljava/lang/String;
+HSPLandroid/telephony/ims/stub/ImsMultiEndpointImplBase$1;-><init>(Landroid/telephony/ims/stub/ImsMultiEndpointImplBase;)V
+HSPLandroid/telephony/ims/stub/ImsMultiEndpointImplBase$1;->setListener(Lcom/android/ims/internal/IImsExternalCallStateListener;)V
+HSPLandroid/telephony/ims/stub/ImsMultiEndpointImplBase;-><init>()V
+HSPLandroid/telephony/ims/stub/ImsMultiEndpointImplBase;->access$002(Landroid/telephony/ims/stub/ImsMultiEndpointImplBase;Lcom/android/ims/internal/IImsExternalCallStateListener;)Lcom/android/ims/internal/IImsExternalCallStateListener;
+HSPLandroid/telephony/ims/stub/ImsMultiEndpointImplBase;->getIImsMultiEndpoint()Lcom/android/ims/internal/IImsMultiEndpoint;
+HSPLandroid/telephony/ims/stub/ImsMultiEndpointImplBase;->onImsExternalCallStateUpdate(Ljava/util/List;)V
+HSPLandroid/telephony/ims/stub/ImsRegistrationImplBase$1;-><init>(Landroid/telephony/ims/stub/ImsRegistrationImplBase;)V
+HSPLandroid/telephony/ims/stub/ImsRegistrationImplBase$1;->addRegistrationCallback(Landroid/telephony/ims/aidl/IImsRegistrationCallback;)V
+HSPLandroid/telephony/ims/stub/ImsRegistrationImplBase$1;->getRegistrationTechnology()I
+HPLandroid/telephony/ims/stub/ImsRegistrationImplBase$1;->removeRegistrationCallback(Landroid/telephony/ims/aidl/IImsRegistrationCallback;)V
+HSPLandroid/telephony/ims/stub/ImsRegistrationImplBase;-><init>()V
+HSPLandroid/telephony/ims/stub/ImsRegistrationImplBase;->access$000(Landroid/telephony/ims/stub/ImsRegistrationImplBase;Landroid/telephony/ims/aidl/IImsRegistrationCallback;)V
+HPLandroid/telephony/ims/stub/ImsRegistrationImplBase;->access$100(Landroid/telephony/ims/stub/ImsRegistrationImplBase;Landroid/telephony/ims/aidl/IImsRegistrationCallback;)V
+HSPLandroid/telephony/ims/stub/ImsRegistrationImplBase;->addRegistrationCallback(Landroid/telephony/ims/aidl/IImsRegistrationCallback;)V
+HSPLandroid/telephony/ims/stub/ImsRegistrationImplBase;->getBinder()Landroid/telephony/ims/aidl/IImsRegistration;
+HSPLandroid/telephony/ims/stub/ImsRegistrationImplBase;->getConnectionType()I
+HSPLandroid/telephony/ims/stub/ImsRegistrationImplBase;->lambda$onDeregistered$2(Landroid/telephony/ims/ImsReasonInfo;Landroid/telephony/ims/aidl/IImsRegistrationCallback;)V
+HSPLandroid/telephony/ims/stub/ImsRegistrationImplBase;->onDeregistered(Landroid/telephony/ims/ImsReasonInfo;)V
+HPLandroid/telephony/ims/stub/ImsRegistrationImplBase;->removeRegistrationCallback(Landroid/telephony/ims/aidl/IImsRegistrationCallback;)V
+HSPLandroid/telephony/ims/stub/ImsRegistrationImplBase;->updateNewCallbackWithState(Landroid/telephony/ims/aidl/IImsRegistrationCallback;)V
+HSPLandroid/telephony/ims/stub/ImsRegistrationImplBase;->updateToDisconnectedState(Landroid/telephony/ims/ImsReasonInfo;)V
+HSPLandroid/telephony/ims/stub/ImsRegistrationImplBase;->updateToState(II)V
+HSPLandroid/telephony/ims/stub/ImsSmsImplBase;-><init>()V
+HSPLandroid/telephony/ims/stub/ImsSmsImplBase;->registerSmsListener(Landroid/telephony/ims/aidl/IImsSmsListener;)V
+HSPLandroid/telephony/ims/stub/ImsUtImplBase$1;-><init>(Landroid/telephony/ims/stub/ImsUtImplBase;)V
+HSPLandroid/telephony/ims/stub/ImsUtImplBase$1;->setListener(Lcom/android/ims/internal/IImsUtListener;)V
+HSPLandroid/telephony/ims/stub/ImsUtImplBase;-><init>()V
+HSPLandroid/telephony/ims/stub/ImsUtImplBase;->getInterface()Lcom/android/ims/internal/IImsUt;
+HSPLandroid/text/AndroidBidi$EmojiBidiOverride;->classify(I)I
+HSPLandroid/text/AndroidBidi;->bidi(I[C[B)I
+HSPLandroid/text/AndroidBidi;->directions(I[BI[CII)Landroid/text/Layout$Directions;
+HSPLandroid/text/AutoGrowArray$ByteArray;-><init>()V
+HSPLandroid/text/AutoGrowArray$ByteArray;-><init>(I)V
HSPLandroid/text/AutoGrowArray$ByteArray;->clear()V
HSPLandroid/text/AutoGrowArray$ByteArray;->clearWithReleasingLargeArray()V
+HSPLandroid/text/AutoGrowArray$ByteArray;->get(I)B
+HSPLandroid/text/AutoGrowArray$ByteArray;->getRawArray()[B
+HSPLandroid/text/AutoGrowArray$ByteArray;->resize(I)V
+HSPLandroid/text/AutoGrowArray$FloatArray;-><init>()V
+HSPLandroid/text/AutoGrowArray$FloatArray;-><init>(I)V
HSPLandroid/text/AutoGrowArray$FloatArray;->clear()V
HSPLandroid/text/AutoGrowArray$FloatArray;->clearWithReleasingLargeArray()V
+HSPLandroid/text/AutoGrowArray$FloatArray;->ensureCapacity(I)V
HSPLandroid/text/AutoGrowArray$FloatArray;->getRawArray()[F
HSPLandroid/text/AutoGrowArray$FloatArray;->resize(I)V
+HSPLandroid/text/AutoGrowArray$IntArray;-><init>(I)V
HSPLandroid/text/AutoGrowArray$IntArray;->append(I)V
HSPLandroid/text/AutoGrowArray$IntArray;->clear()V
HSPLandroid/text/AutoGrowArray$IntArray;->clearWithReleasingLargeArray()V
+PLandroid/text/AutoGrowArray$IntArray;->ensureCapacity(I)V
HSPLandroid/text/AutoGrowArray$IntArray;->getRawArray()[I
+HSPLandroid/text/AutoGrowArray;->access$000(II)I
+HSPLandroid/text/AutoGrowArray;->computeNewCapacity(II)I
+HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->dirTypeBackward()B
+HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->dirTypeForward()B
+HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->getEntryDir()I
+HSPLandroid/text/BidiFormatter$DirectionalityEstimator;->getExitDir()I
+HSPLandroid/text/BidiFormatter;->getInstance()Landroid/text/BidiFormatter;
+HSPLandroid/text/BidiFormatter;->markAfter(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;)Ljava/lang/String;
+HSPLandroid/text/BidiFormatter;->markBefore(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;)Ljava/lang/String;
+HSPLandroid/text/BidiFormatter;->unicodeWrap(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLandroid/text/BidiFormatter;->unicodeWrap(Ljava/lang/CharSequence;Landroid/text/TextDirectionHeuristic;Z)Ljava/lang/CharSequence;
+PLandroid/text/BoringLayout$Metrics;-><init>()V
+PLandroid/text/BoringLayout$Metrics;->access$000(Landroid/text/BoringLayout$Metrics;)V
+PLandroid/text/BoringLayout$Metrics;->reset()V
HSPLandroid/text/BoringLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)V
+HSPLandroid/text/BoringLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)V
HSPLandroid/text/BoringLayout;->draw(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
+HSPLandroid/text/BoringLayout;->ellipsized(II)V
HSPLandroid/text/BoringLayout;->getEllipsisCount(I)I
HSPLandroid/text/BoringLayout;->getEllipsisStart(I)I
HSPLandroid/text/BoringLayout;->getEllipsizedWidth()I
@@ -6468,6 +22161,7 @@ HSPLandroid/text/BoringLayout;->getLineContainsTab(I)Z
HSPLandroid/text/BoringLayout;->getLineCount()I
HSPLandroid/text/BoringLayout;->getLineDescent(I)I
HSPLandroid/text/BoringLayout;->getLineDirections(I)Landroid/text/Layout$Directions;
+HSPLandroid/text/BoringLayout;->getLineMax(I)F
HSPLandroid/text/BoringLayout;->getLineStart(I)I
HSPLandroid/text/BoringLayout;->getLineTop(I)I
HSPLandroid/text/BoringLayout;->getLineWidth(I)F
@@ -6475,39 +22169,179 @@ HSPLandroid/text/BoringLayout;->getParagraphDirection(I)I
HSPLandroid/text/BoringLayout;->hasAnyInterestingChars(Ljava/lang/CharSequence;I)Z
HSPLandroid/text/BoringLayout;->init(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/Layout$Alignment;Landroid/text/BoringLayout$Metrics;ZZ)V
HSPLandroid/text/BoringLayout;->isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;Landroid/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics;
+PLandroid/text/BoringLayout;->make(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)Landroid/text/BoringLayout;
HSPLandroid/text/BoringLayout;->replaceOrMake(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)Landroid/text/BoringLayout;
+HPLandroid/text/BoringLayout;->replaceOrMake(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)Landroid/text/BoringLayout;
+HSPLandroid/text/DynamicLayout$Builder;->obtain(Ljava/lang/CharSequence;Landroid/text/TextPaint;I)Landroid/text/DynamicLayout$Builder;
+HPLandroid/text/DynamicLayout$ChangeWatcher;->afterTextChanged(Landroid/text/Editable;)V
+HPLandroid/text/DynamicLayout$ChangeWatcher;->beforeTextChanged(Ljava/lang/CharSequence;III)V
+HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
+HSPLandroid/text/DynamicLayout$ChangeWatcher;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HPLandroid/text/DynamicLayout$ChangeWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V
+HSPLandroid/text/DynamicLayout;-><init>(Landroid/text/DynamicLayout$Builder;)V
+HSPLandroid/text/DynamicLayout;->addBlockAtOffset(I)V
+HSPLandroid/text/DynamicLayout;->contentMayProtrudeFromLineTopOrBottom(Ljava/lang/CharSequence;II)Z
+HSPLandroid/text/DynamicLayout;->createBlocks()V
+HSPLandroid/text/DynamicLayout;->generate(Landroid/text/DynamicLayout$Builder;)V
+HSPLandroid/text/DynamicLayout;->getBlockEndLines()[I
+HSPLandroid/text/DynamicLayout;->getBlockIndices()[I
+HSPLandroid/text/DynamicLayout;->getBlocksAlwaysNeedToBeRedrawn()Landroid/util/ArraySet;
+HSPLandroid/text/DynamicLayout;->getEllipsisCount(I)I
+HSPLandroid/text/DynamicLayout;->getEllipsisStart(I)I
+HSPLandroid/text/DynamicLayout;->getEllipsizedWidth()I
+HSPLandroid/text/DynamicLayout;->getEndHyphenEdit(I)I
+HSPLandroid/text/DynamicLayout;->getIndexFirstChangedBlock()I
+HSPLandroid/text/DynamicLayout;->getLineContainsTab(I)Z
+HSPLandroid/text/DynamicLayout;->getLineCount()I
+HSPLandroid/text/DynamicLayout;->getLineDescent(I)I
+HSPLandroid/text/DynamicLayout;->getLineDirections(I)Landroid/text/Layout$Directions;
+HPLandroid/text/DynamicLayout;->getLineExtra(I)I
+HSPLandroid/text/DynamicLayout;->getLineStart(I)I
+HSPLandroid/text/DynamicLayout;->getLineTop(I)I
+HSPLandroid/text/DynamicLayout;->getNumberOfBlocks()I
+HSPLandroid/text/DynamicLayout;->getParagraphDirection(I)I
+HSPLandroid/text/DynamicLayout;->getStartHyphenEdit(I)I
+HSPLandroid/text/DynamicLayout;->reflow(Ljava/lang/CharSequence;III)V
+HSPLandroid/text/DynamicLayout;->setIndexFirstChangedBlock(I)V
+HSPLandroid/text/DynamicLayout;->updateAlwaysNeedsToBeRedrawn(I)V
+HSPLandroid/text/DynamicLayout;->updateBlocks(III)V
HSPLandroid/text/Editable$Factory;->getInstance()Landroid/text/Editable$Factory;
HSPLandroid/text/Editable$Factory;->newEditable(Ljava/lang/CharSequence;)Landroid/text/Editable;
+HSPLandroid/text/Emoji;->isNewEmoji(I)Z
+HSPLandroid/text/Html$HtmlParser;->access$000()Lorg/ccil/cowan/tagsoup/HTMLSchema;
+HPLandroid/text/Html;->encodeTextAlignmentByDiv(Ljava/lang/StringBuilder;Landroid/text/Spanned;I)V
+HSPLandroid/text/Html;->fromHtml(Ljava/lang/String;)Landroid/text/Spanned;
+HSPLandroid/text/Html;->fromHtml(Ljava/lang/String;I)Landroid/text/Spanned;
+HSPLandroid/text/Html;->fromHtml(Ljava/lang/String;ILandroid/text/Html$ImageGetter;Landroid/text/Html$TagHandler;)Landroid/text/Spanned;
+HSPLandroid/text/Html;->fromHtml(Ljava/lang/String;Landroid/text/Html$ImageGetter;Landroid/text/Html$TagHandler;)Landroid/text/Spanned;
+HPLandroid/text/Html;->getTextDirection(Landroid/text/Spanned;II)Ljava/lang/String;
+HPLandroid/text/Html;->toHtml(Landroid/text/Spanned;)Ljava/lang/String;
+HPLandroid/text/Html;->toHtml(Landroid/text/Spanned;I)Ljava/lang/String;
+HPLandroid/text/Html;->withinBlockquote(Ljava/lang/StringBuilder;Landroid/text/Spanned;III)V
+HPLandroid/text/Html;->withinBlockquoteConsecutive(Ljava/lang/StringBuilder;Landroid/text/Spanned;II)V
+HPLandroid/text/Html;->withinDiv(Ljava/lang/StringBuilder;Landroid/text/Spanned;III)V
+HPLandroid/text/Html;->withinHtml(Ljava/lang/StringBuilder;Landroid/text/Spanned;I)V
+HPLandroid/text/Html;->withinParagraph(Ljava/lang/StringBuilder;Landroid/text/Spanned;II)V
+HPLandroid/text/Html;->withinStyle(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;II)V
+HPLandroid/text/HtmlToSpannedConverter$Heading;->access$1300(Landroid/text/HtmlToSpannedConverter$Heading;)I
+HSPLandroid/text/HtmlToSpannedConverter;-><init>(Ljava/lang/String;Landroid/text/Html$ImageGetter;Landroid/text/Html$TagHandler;Lorg/ccil/cowan/tagsoup/Parser;I)V
+HPLandroid/text/HtmlToSpannedConverter;->appendNewlines(Landroid/text/Editable;I)V
+HSPLandroid/text/HtmlToSpannedConverter;->characters([CII)V
+HSPLandroid/text/HtmlToSpannedConverter;->convert()Landroid/text/Spanned;
+HSPLandroid/text/HtmlToSpannedConverter;->end(Landroid/text/Editable;Ljava/lang/Class;Ljava/lang/Object;)V
+HSPLandroid/text/HtmlToSpannedConverter;->endA(Landroid/text/Editable;)V
+HPLandroid/text/HtmlToSpannedConverter;->endBlockElement(Landroid/text/Editable;)V
+HPLandroid/text/HtmlToSpannedConverter;->endBlockquote(Landroid/text/Editable;)V
+HPLandroid/text/HtmlToSpannedConverter;->endCssStyle(Landroid/text/Editable;)V
+HSPLandroid/text/HtmlToSpannedConverter;->endDocument()V
+HSPLandroid/text/HtmlToSpannedConverter;->endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/text/HtmlToSpannedConverter;->endFont(Landroid/text/Editable;)V
+HPLandroid/text/HtmlToSpannedConverter;->endHeading(Landroid/text/Editable;)V
+HPLandroid/text/HtmlToSpannedConverter;->endLi(Landroid/text/Editable;)V
+HSPLandroid/text/HtmlToSpannedConverter;->endPrefixMapping(Ljava/lang/String;)V
+HPLandroid/text/HtmlToSpannedConverter;->getBackgroundColorPattern()Ljava/util/regex/Pattern;
+HPLandroid/text/HtmlToSpannedConverter;->getForegroundColorPattern()Ljava/util/regex/Pattern;
+HSPLandroid/text/HtmlToSpannedConverter;->getHtmlColor(Ljava/lang/String;)I
+HSPLandroid/text/HtmlToSpannedConverter;->getLast(Landroid/text/Spanned;Ljava/lang/Class;)Ljava/lang/Object;
+HPLandroid/text/HtmlToSpannedConverter;->getTextAlignPattern()Ljava/util/regex/Pattern;
+HPLandroid/text/HtmlToSpannedConverter;->getTextDecorationPattern()Ljava/util/regex/Pattern;
+HPLandroid/text/HtmlToSpannedConverter;->handleBr(Landroid/text/Editable;)V
+HSPLandroid/text/HtmlToSpannedConverter;->handleEndTag(Ljava/lang/String;)V
+HSPLandroid/text/HtmlToSpannedConverter;->handleStartTag(Ljava/lang/String;Lorg/xml/sax/Attributes;)V
+HSPLandroid/text/HtmlToSpannedConverter;->setDocumentLocator(Lorg/xml/sax/Locator;)V
+HSPLandroid/text/HtmlToSpannedConverter;->setSpanFromMark(Landroid/text/Spannable;Ljava/lang/Object;[Ljava/lang/Object;)V
+HSPLandroid/text/HtmlToSpannedConverter;->start(Landroid/text/Editable;Ljava/lang/Object;)V
+HPLandroid/text/HtmlToSpannedConverter;->startBlockElement(Landroid/text/Editable;Lorg/xml/sax/Attributes;I)V
+HPLandroid/text/HtmlToSpannedConverter;->startCssStyle(Landroid/text/Editable;Lorg/xml/sax/Attributes;)V
+HSPLandroid/text/HtmlToSpannedConverter;->startDocument()V
+HSPLandroid/text/HtmlToSpannedConverter;->startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V
+HSPLandroid/text/HtmlToSpannedConverter;->startFont(Landroid/text/Editable;Lorg/xml/sax/Attributes;)V
+HPLandroid/text/HtmlToSpannedConverter;->startImg(Landroid/text/Editable;Lorg/xml/sax/Attributes;Landroid/text/Html$ImageGetter;)V
+HSPLandroid/text/HtmlToSpannedConverter;->startPrefixMapping(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/text/Hyphenator;->init()V
+HSPLandroid/text/InputFilter$LengthFilter;-><init>(I)V
+HSPLandroid/text/InputFilter$LengthFilter;->filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;
HSPLandroid/text/Layout$Directions;->getRunCount()I
HSPLandroid/text/Layout$Directions;->getRunLength(I)I
HSPLandroid/text/Layout$Directions;->getRunStart(I)I
HSPLandroid/text/Layout$Directions;->isRunRtl(I)Z
+HSPLandroid/text/Layout$Ellipsizer;->charAt(I)C
+HSPLandroid/text/Layout$Ellipsizer;->getChars(II[CI)V
+HSPLandroid/text/Layout$Ellipsizer;->length()I
+HPLandroid/text/Layout$HorizontalMeasurementProvider;->init()V
+HPLandroid/text/Layout$SpannedEllipsizer;->getSpanEnd(Ljava/lang/Object;)I
+HPLandroid/text/Layout$SpannedEllipsizer;->getSpanFlags(Ljava/lang/Object;)I
+HPLandroid/text/Layout$SpannedEllipsizer;->getSpanStart(Ljava/lang/Object;)I
+HPLandroid/text/Layout$SpannedEllipsizer;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
+HPLandroid/text/Layout$SpannedEllipsizer;->nextSpanTransition(IILjava/lang/Class;)I
+HPLandroid/text/Layout$TabStops;-><init>(F[Ljava/lang/Object;)V
+HPLandroid/text/Layout$TabStops;->nextDefaultStop(FF)F
+HPLandroid/text/Layout$TabStops;->nextTab(F)F
+HPLandroid/text/Layout$TabStops;->reset(F[Ljava/lang/Object;)V
HSPLandroid/text/Layout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V
HSPLandroid/text/Layout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;Landroid/text/TextDirectionHeuristic;FF)V
+HPLandroid/text/Layout;->draw(Landroid/graphics/Canvas;)V
HSPLandroid/text/Layout;->draw(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
HSPLandroid/text/Layout;->drawBackground(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;III)V
HSPLandroid/text/Layout;->drawText(Landroid/graphics/Canvas;II)V
+HSPLandroid/text/Layout;->ellipsize(III[CILandroid/text/TextUtils$TruncateAt;)V
+HPLandroid/text/Layout;->getCursorPath(ILandroid/graphics/Path;Ljava/lang/CharSequence;)V
+HPLandroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F
+HPLandroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;)F
+HPLandroid/text/Layout;->getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F
+HSPLandroid/text/Layout;->getDesiredWidthWithLimit(Ljava/lang/CharSequence;IILandroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;F)F
HSPLandroid/text/Layout;->getEndHyphenEdit(I)I
HSPLandroid/text/Layout;->getHeight()I
HSPLandroid/text/Layout;->getHeight(Z)I
+HPLandroid/text/Layout;->getHorizontal(IZ)F
+HSPLandroid/text/Layout;->getHorizontal(IZIZ)F
HSPLandroid/text/Layout;->getIndentAdjust(ILandroid/text/Layout$Alignment;)I
+HPLandroid/text/Layout;->getLineBottom(I)I
+PLandroid/text/Layout;->getLineEnd(I)I
HSPLandroid/text/Layout;->getLineExtent(ILandroid/text/Layout$TabStops;Z)F
+HSPLandroid/text/Layout;->getLineExtent(IZ)F
HSPLandroid/text/Layout;->getLineForOffset(I)I
HSPLandroid/text/Layout;->getLineForVertical(I)I
+HSPLandroid/text/Layout;->getLineLeft(I)F
+HSPLandroid/text/Layout;->getLineMax(I)F
HSPLandroid/text/Layout;->getLineRangeForDraw(Landroid/graphics/Canvas;)J
+HSPLandroid/text/Layout;->getLineRight(I)F
+HSPLandroid/text/Layout;->getLineStartPos(III)I
HSPLandroid/text/Layout;->getLineVisibleEnd(I)I
HSPLandroid/text/Layout;->getLineVisibleEnd(III)I
+HPLandroid/text/Layout;->getLineWidth(I)F
+HPLandroid/text/Layout;->getOffsetAtStartOf(I)I
+HPLandroid/text/Layout;->getOffsetForHorizontal(IF)I
+HPLandroid/text/Layout;->getOffsetForHorizontal(IFZ)I
+HSPLandroid/text/Layout;->getPaint()Landroid/text/TextPaint;
+HSPLandroid/text/Layout;->getParagraphAlignment(I)Landroid/text/Layout$Alignment;
+HSPLandroid/text/Layout;->getParagraphLeadingMargin(I)I
+HSPLandroid/text/Layout;->getParagraphSpans(Landroid/text/Spanned;IILjava/lang/Class;)[Ljava/lang/Object;
+HPLandroid/text/Layout;->getPrimaryHorizontal(I)F
+HSPLandroid/text/Layout;->getPrimaryHorizontal(IZ)F
+HPLandroid/text/Layout;->getSpacingAdd()F
+HPLandroid/text/Layout;->getSpacingMultiplier()F
HSPLandroid/text/Layout;->getStartHyphenEdit(I)I
+PLandroid/text/Layout;->getText()Ljava/lang/CharSequence;
+PLandroid/text/Layout;->getWidth()I
+HSPLandroid/text/Layout;->increaseWidthTo(I)V
HSPLandroid/text/Layout;->isJustificationRequired(I)Z
+HPLandroid/text/Layout;->isRtlCharAt(I)Z
+HSPLandroid/text/Layout;->measurePara(Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;)F
+HSPLandroid/text/Layout;->primaryIsTrailingPrevious(I)Z
HSPLandroid/text/Layout;->replaceWith(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V
HSPLandroid/text/Layout;->setJustificationMode(I)V
+HPLandroid/text/Layout;->shouldClampCursor(I)Z
HSPLandroid/text/MeasuredParagraph;-><init>()V
HSPLandroid/text/MeasuredParagraph;->applyMetricsAffectingSpan(Landroid/text/TextPaint;[Landroid/text/style/MetricAffectingSpan;IILandroid/graphics/text/MeasuredText$Builder;)V
+HPLandroid/text/MeasuredParagraph;->applyReplacementRun(Landroid/text/style/ReplacementSpan;IILandroid/graphics/text/MeasuredText$Builder;)V
HSPLandroid/text/MeasuredParagraph;->applyStyleRun(IILandroid/graphics/text/MeasuredText$Builder;)V
+HSPLandroid/text/MeasuredParagraph;->breakText(IZF)I
HSPLandroid/text/MeasuredParagraph;->buildForBidi(Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;Landroid/text/MeasuredParagraph;)Landroid/text/MeasuredParagraph;
HSPLandroid/text/MeasuredParagraph;->buildForMeasurement(Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;Landroid/text/MeasuredParagraph;)Landroid/text/MeasuredParagraph;
HSPLandroid/text/MeasuredParagraph;->buildForStaticLayout(Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;ZZLandroid/text/MeasuredParagraph;Landroid/text/MeasuredParagraph;)Landroid/text/MeasuredParagraph;
+HPLandroid/text/MeasuredParagraph;->getCharWidthAt(I)F
HSPLandroid/text/MeasuredParagraph;->getChars()[C
HSPLandroid/text/MeasuredParagraph;->getDirections(II)Landroid/text/Layout$Directions;
HSPLandroid/text/MeasuredParagraph;->getFontMetrics()Landroid/text/AutoGrowArray$IntArray;
@@ -6518,29 +22352,78 @@ HSPLandroid/text/MeasuredParagraph;->getWholeWidth()F
HSPLandroid/text/MeasuredParagraph;->obtain()Landroid/text/MeasuredParagraph;
HSPLandroid/text/MeasuredParagraph;->recycle()V
HSPLandroid/text/MeasuredParagraph;->release()V
+HSPLandroid/text/MeasuredParagraph;->reset()V
HSPLandroid/text/MeasuredParagraph;->resetAndAnalyzeBidi(Ljava/lang/CharSequence;IILandroid/text/TextDirectionHeuristic;)V
+HSPLandroid/text/PackedIntVector;->adjustValuesBelow(III)V
+HSPLandroid/text/PackedIntVector;->deleteAt(II)V
+HSPLandroid/text/PackedIntVector;->getValue(II)I
+HSPLandroid/text/PackedIntVector;->growBuffer()V
+HSPLandroid/text/PackedIntVector;->insertAt(I[I)V
+HSPLandroid/text/PackedIntVector;->moveRowGapTo(I)V
+HSPLandroid/text/PackedIntVector;->moveValueGapTo(II)V
+HSPLandroid/text/PackedIntVector;->size()I
+HSPLandroid/text/PackedIntVector;->width()I
+HSPLandroid/text/PackedObjectVector;->deleteAt(II)V
+HSPLandroid/text/PackedObjectVector;->getValue(II)Ljava/lang/Object;
+HSPLandroid/text/PackedObjectVector;->growBuffer()V
+HSPLandroid/text/PackedObjectVector;->insertAt(I[Ljava/lang/Object;)V
+HSPLandroid/text/PackedObjectVector;->moveRowGapTo(I)V
+HSPLandroid/text/PackedObjectVector;->setValue(IILjava/lang/Object;)V
+HSPLandroid/text/PackedObjectVector;->size()I
+PLandroid/text/PrecomputedText$ParagraphInfo;-><init>(ILandroid/text/MeasuredParagraph;)V
HSPLandroid/text/PrecomputedText$Params;-><init>(Landroid/text/TextPaint;Landroid/text/TextDirectionHeuristic;II)V
+PLandroid/text/PrecomputedText$Params;->getBreakStrategy()I
+PLandroid/text/PrecomputedText$Params;->getHyphenationFrequency()I
+PLandroid/text/PrecomputedText$Params;->getTextDirection()Landroid/text/TextDirectionHeuristic;
+PLandroid/text/PrecomputedText$Params;->getTextPaint()Landroid/text/TextPaint;
HSPLandroid/text/PrecomputedText;->createMeasuredParagraphs(Ljava/lang/CharSequence;Landroid/text/PrecomputedText$Params;IIZ)[Landroid/text/PrecomputedText$ParagraphInfo;
HSPLandroid/text/Selection;->getSelectionEnd(Ljava/lang/CharSequence;)I
HSPLandroid/text/Selection;->getSelectionStart(Ljava/lang/CharSequence;)I
+HPLandroid/text/Selection;->removeMemory(Landroid/text/Spannable;)V
+HPLandroid/text/Selection;->removeSelection(Landroid/text/Spannable;)V
+HSPLandroid/text/Selection;->setSelection(Landroid/text/Spannable;I)V
+HPLandroid/text/Selection;->setSelection(Landroid/text/Spannable;II)V
+HSPLandroid/text/Selection;->setSelection(Landroid/text/Spannable;III)V
HSPLandroid/text/Selection;->updateMemory(Landroid/text/Spannable;I)V
+HSPLandroid/text/SpanSet;-><init>(Ljava/lang/Class;)V
+HSPLandroid/text/SpanSet;->getNextTransition(II)I
+HPLandroid/text/SpanSet;->hasSpansIntersecting(II)Z
+HSPLandroid/text/SpanSet;->init(Landroid/text/Spanned;II)V
HSPLandroid/text/SpanSet;->recycle()V
+HSPLandroid/text/Spannable$Factory;-><init>()V
HSPLandroid/text/Spannable$Factory;->getInstance()Landroid/text/Spannable$Factory;
+HSPLandroid/text/Spannable$Factory;->newSpannable(Ljava/lang/CharSequence;)Landroid/text/Spannable;
HSPLandroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;)V
+HPLandroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;Z)V
+HPLandroid/text/SpannableString;->equals(Ljava/lang/Object;)Z
HSPLandroid/text/SpannableString;->getSpanEnd(Ljava/lang/Object;)I
HSPLandroid/text/SpannableString;->getSpanFlags(Ljava/lang/Object;)I
HSPLandroid/text/SpannableString;->getSpanStart(Ljava/lang/Object;)I
HSPLandroid/text/SpannableString;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
+HSPLandroid/text/SpannableString;->nextSpanTransition(IILjava/lang/Class;)I
+HSPLandroid/text/SpannableString;->removeSpan(Ljava/lang/Object;)V
+HSPLandroid/text/SpannableString;->removeSpan(Ljava/lang/Object;I)V
HSPLandroid/text/SpannableString;->setSpan(Ljava/lang/Object;III)V
+HPLandroid/text/SpannableString;->valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannableString;
HSPLandroid/text/SpannableStringBuilder;-><init>()V
HSPLandroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;)V
HSPLandroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;II)V
+HPLandroid/text/SpannableStringBuilder;->append(C)Landroid/text/Editable;
+HPLandroid/text/SpannableStringBuilder;->append(C)Landroid/text/SpannableStringBuilder;
+HPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/Editable;
HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
+HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;
+HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/Appendable;
+HSPLandroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;Ljava/lang/Object;I)Landroid/text/SpannableStringBuilder;
HSPLandroid/text/SpannableStringBuilder;->calcMax(I)I
HSPLandroid/text/SpannableStringBuilder;->change(IILjava/lang/CharSequence;II)V
HSPLandroid/text/SpannableStringBuilder;->charAt(I)C
HSPLandroid/text/SpannableStringBuilder;->checkRange(Ljava/lang/String;II)V
+HPLandroid/text/SpannableStringBuilder;->clear()V
HSPLandroid/text/SpannableStringBuilder;->countSpans(IILjava/lang/Class;I)I
+HSPLandroid/text/SpannableStringBuilder;->delete(II)Landroid/text/SpannableStringBuilder;
+HSPLandroid/text/SpannableStringBuilder;->drawTextRun(Landroid/graphics/BaseCanvas;IIIIFFZLandroid/graphics/Paint;)V
+HPLandroid/text/SpannableStringBuilder;->equals(Ljava/lang/Object;)Z
HSPLandroid/text/SpannableStringBuilder;->getChars(II[CI)V
HSPLandroid/text/SpannableStringBuilder;->getSpanEnd(Ljava/lang/Object;)I
HSPLandroid/text/SpannableStringBuilder;->getSpanFlags(Ljava/lang/Object;)I
@@ -6548,18 +22431,29 @@ HSPLandroid/text/SpannableStringBuilder;->getSpanStart(Ljava/lang/Object;)I
HSPLandroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
HSPLandroid/text/SpannableStringBuilder;->getSpans(IILjava/lang/Class;Z)[Ljava/lang/Object;
HSPLandroid/text/SpannableStringBuilder;->getSpansRec(IILjava/lang/Class;I[Ljava/lang/Object;[I[IIZ)I
+HPLandroid/text/SpannableStringBuilder;->getTextWatcherDepth()I
HSPLandroid/text/SpannableStringBuilder;->hasNonExclusiveExclusiveSpanAt(Ljava/lang/CharSequence;I)Z
+HPLandroid/text/SpannableStringBuilder;->hashCode()I
+HPLandroid/text/SpannableStringBuilder;->insert(ILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
HSPLandroid/text/SpannableStringBuilder;->length()I
+HSPLandroid/text/SpannableStringBuilder;->measureText(IILandroid/graphics/Paint;)F
HSPLandroid/text/SpannableStringBuilder;->moveGapTo(I)V
+HSPLandroid/text/SpannableStringBuilder;->nextSpanTransition(IILjava/lang/Class;)I
+HSPLandroid/text/SpannableStringBuilder;->nextSpanTransitionRec(IILjava/lang/Class;I)I
HSPLandroid/text/SpannableStringBuilder;->obtain(I)[I
HSPLandroid/text/SpannableStringBuilder;->recycle([I)V
+HSPLandroid/text/SpannableStringBuilder;->removeSpan(II)V
HSPLandroid/text/SpannableStringBuilder;->removeSpan(Ljava/lang/Object;)V
HSPLandroid/text/SpannableStringBuilder;->removeSpan(Ljava/lang/Object;I)V
+HSPLandroid/text/SpannableStringBuilder;->removeSpansForChange(IIZI)Z
+HPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;)Landroid/text/Editable;
+HSPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
HSPLandroid/text/SpannableStringBuilder;->replace(IILjava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;
HSPLandroid/text/SpannableStringBuilder;->resizeFor(I)V
HSPLandroid/text/SpannableStringBuilder;->restoreInvariants()V
HSPLandroid/text/SpannableStringBuilder;->sendAfterTextChanged([Landroid/text/TextWatcher;)V
HSPLandroid/text/SpannableStringBuilder;->sendBeforeTextChanged([Landroid/text/TextWatcher;III)V
+HSPLandroid/text/SpannableStringBuilder;->sendSpanChanged(Ljava/lang/Object;IIII)V
HSPLandroid/text/SpannableStringBuilder;->sendTextChanged([Landroid/text/TextWatcher;III)V
HSPLandroid/text/SpannableStringBuilder;->sendToSpanWatchers(III)V
HSPLandroid/text/SpannableStringBuilder;->setFilters([Landroid/text/InputFilter;)V
@@ -6567,21 +22461,49 @@ HSPLandroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V
HSPLandroid/text/SpannableStringBuilder;->setSpan(ZLjava/lang/Object;IIIZ)V
HSPLandroid/text/SpannableStringBuilder;->siftDown(I[Ljava/lang/Object;I[I[I)V
HSPLandroid/text/SpannableStringBuilder;->sort([Ljava/lang/Object;[I[I)V
+HPLandroid/text/SpannableStringBuilder;->subSequence(II)Ljava/lang/CharSequence;
HSPLandroid/text/SpannableStringBuilder;->toString()Ljava/lang/String;
+HSPLandroid/text/SpannableStringBuilder;->updatedIntervalBound(IIIIZZ)I
HSPLandroid/text/SpannableStringInternal;-><init>(Ljava/lang/CharSequence;IIZ)V
+HSPLandroid/text/SpannableStringInternal;->charAt(I)C
HSPLandroid/text/SpannableStringInternal;->checkRange(Ljava/lang/String;II)V
HSPLandroid/text/SpannableStringInternal;->copySpans(Landroid/text/SpannableStringInternal;IIZ)V
+HSPLandroid/text/SpannableStringInternal;->copySpans(Landroid/text/Spanned;IIZ)V
+HPLandroid/text/SpannableStringInternal;->equals(Ljava/lang/Object;)Z
+HSPLandroid/text/SpannableStringInternal;->getChars(II[CI)V
+PLandroid/text/SpannableStringInternal;->getSpanEnd(Ljava/lang/Object;)I
+PLandroid/text/SpannableStringInternal;->getSpanFlags(Ljava/lang/Object;)I
+PLandroid/text/SpannableStringInternal;->getSpanStart(Ljava/lang/Object;)I
HSPLandroid/text/SpannableStringInternal;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
HSPLandroid/text/SpannableStringInternal;->length()I
+HSPLandroid/text/SpannableStringInternal;->nextSpanTransition(IILjava/lang/Class;)I
+HSPLandroid/text/SpannableStringInternal;->removeSpan(Ljava/lang/Object;I)V
+PLandroid/text/SpannableStringInternal;->sendSpanAdded(Ljava/lang/Object;II)V
+HSPLandroid/text/SpannableStringInternal;->sendSpanChanged(Ljava/lang/Object;IIII)V
+HPLandroid/text/SpannableStringInternal;->setSpan(Ljava/lang/Object;III)V
HSPLandroid/text/SpannableStringInternal;->setSpan(Ljava/lang/Object;IIIZ)V
HSPLandroid/text/SpannableStringInternal;->toString()Ljava/lang/String;
+HSPLandroid/text/SpannedString;-><init>(Ljava/lang/CharSequence;)V
+HPLandroid/text/SpannedString;-><init>(Ljava/lang/CharSequence;Z)V
+HSPLandroid/text/SpannedString;->getSpanEnd(Ljava/lang/Object;)I
+HSPLandroid/text/SpannedString;->getSpanFlags(Ljava/lang/Object;)I
+HSPLandroid/text/SpannedString;->getSpanStart(Ljava/lang/Object;)I
+HSPLandroid/text/SpannedString;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
+HSPLandroid/text/SpannedString;->nextSpanTransition(IILjava/lang/Class;)I
+HPLandroid/text/SpannedString;->valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannedString;
+PLandroid/text/StaticLayout$Builder;-><init>()V
+PLandroid/text/StaticLayout$Builder;->access$100(Landroid/text/StaticLayout$Builder;)Z
HSPLandroid/text/StaticLayout$Builder;->access$1000(Landroid/text/StaticLayout$Builder;)F
HSPLandroid/text/StaticLayout$Builder;->access$1100(Landroid/text/StaticLayout$Builder;)I
+PLandroid/text/StaticLayout$Builder;->access$1200(Landroid/text/StaticLayout$Builder;)I
+PLandroid/text/StaticLayout$Builder;->access$1300(Landroid/text/StaticLayout$Builder;)[I
+PLandroid/text/StaticLayout$Builder;->access$1400(Landroid/text/StaticLayout$Builder;)[I
HSPLandroid/text/StaticLayout$Builder;->access$1500(Landroid/text/StaticLayout$Builder;)I
HSPLandroid/text/StaticLayout$Builder;->access$1600(Landroid/text/StaticLayout$Builder;)I
HSPLandroid/text/StaticLayout$Builder;->access$1700(Landroid/text/StaticLayout$Builder;)I
HSPLandroid/text/StaticLayout$Builder;->access$1800(Landroid/text/StaticLayout$Builder;)Z
HSPLandroid/text/StaticLayout$Builder;->access$1900(Landroid/text/StaticLayout$Builder;)Z
+HPLandroid/text/StaticLayout$Builder;->access$200(Landroid/text/StaticLayout$Builder;)V
HSPLandroid/text/StaticLayout$Builder;->access$2000(Landroid/text/StaticLayout$Builder;)Landroid/graphics/Paint$FontMetricsInt;
HSPLandroid/text/StaticLayout$Builder;->access$2100(Landroid/text/StaticLayout$Builder;)I
HSPLandroid/text/StaticLayout$Builder;->access$2200(Landroid/text/StaticLayout$Builder;)I
@@ -6589,11 +22511,37 @@ HSPLandroid/text/StaticLayout$Builder;->access$300(Landroid/text/StaticLayout$Bu
HSPLandroid/text/StaticLayout$Builder;->access$400(Landroid/text/StaticLayout$Builder;)Ljava/lang/CharSequence;
HSPLandroid/text/StaticLayout$Builder;->access$500(Landroid/text/StaticLayout$Builder;)Landroid/text/TextPaint;
HSPLandroid/text/StaticLayout$Builder;->access$600(Landroid/text/StaticLayout$Builder;)I
+PLandroid/text/StaticLayout$Builder;->access$700(Landroid/text/StaticLayout$Builder;)Landroid/text/Layout$Alignment;
HSPLandroid/text/StaticLayout$Builder;->access$800(Landroid/text/StaticLayout$Builder;)Landroid/text/TextDirectionHeuristic;
HSPLandroid/text/StaticLayout$Builder;->access$900(Landroid/text/StaticLayout$Builder;)F
+PLandroid/text/StaticLayout$Builder;->build()Landroid/text/StaticLayout;
HSPLandroid/text/StaticLayout$Builder;->obtain(Ljava/lang/CharSequence;IILandroid/text/TextPaint;I)Landroid/text/StaticLayout$Builder;
+PLandroid/text/StaticLayout$Builder;->recycle(Landroid/text/StaticLayout$Builder;)V
+PLandroid/text/StaticLayout$Builder;->setAlignment(Landroid/text/Layout$Alignment;)Landroid/text/StaticLayout$Builder;
+PLandroid/text/StaticLayout$Builder;->setBreakStrategy(I)Landroid/text/StaticLayout$Builder;
+HPLandroid/text/StaticLayout$Builder;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)Landroid/text/StaticLayout$Builder;
+HPLandroid/text/StaticLayout$Builder;->setEllipsizedWidth(I)Landroid/text/StaticLayout$Builder;
+PLandroid/text/StaticLayout$Builder;->setHyphenationFrequency(I)Landroid/text/StaticLayout$Builder;
+PLandroid/text/StaticLayout$Builder;->setIncludePad(Z)Landroid/text/StaticLayout$Builder;
+HPLandroid/text/StaticLayout$Builder;->setIndents([I[I)Landroid/text/StaticLayout$Builder;
+PLandroid/text/StaticLayout$Builder;->setJustificationMode(I)Landroid/text/StaticLayout$Builder;
+PLandroid/text/StaticLayout$Builder;->setLineSpacing(FF)Landroid/text/StaticLayout$Builder;
+PLandroid/text/StaticLayout$Builder;->setMaxLines(I)Landroid/text/StaticLayout$Builder;
+PLandroid/text/StaticLayout$Builder;->setTextDirection(Landroid/text/TextDirectionHeuristic;)Landroid/text/StaticLayout$Builder;
+PLandroid/text/StaticLayout$Builder;->setUseLineSpacingFromFallbacks(Z)Landroid/text/StaticLayout$Builder;
HSPLandroid/text/StaticLayout;-><init>(Landroid/text/StaticLayout$Builder;)V
+PLandroid/text/StaticLayout;-><init>(Landroid/text/StaticLayout$Builder;Landroid/text/StaticLayout$1;)V
+HSPLandroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;)V
+HPLandroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
+HPLandroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;I)V
+HPLandroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;Landroid/text/TextDirectionHeuristic;FFZLandroid/text/TextUtils$TruncateAt;II)V
+HPLandroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
+HSPLandroid/text/StaticLayout;->calculateEllipsis(IILandroid/text/MeasuredParagraph;IFLandroid/text/TextUtils$TruncateAt;IFLandroid/text/TextPaint;Z)V
HSPLandroid/text/StaticLayout;->generate(Landroid/text/StaticLayout$Builder;ZZ)V
+HSPLandroid/text/StaticLayout;->getBottomPadding()I
+HSPLandroid/text/StaticLayout;->getEllipsisCount(I)I
+HPLandroid/text/StaticLayout;->getEllipsisStart(I)I
+HSPLandroid/text/StaticLayout;->getEllipsizedWidth()I
HSPLandroid/text/StaticLayout;->getEndHyphenEdit(I)I
HSPLandroid/text/StaticLayout;->getHeight(Z)I
HSPLandroid/text/StaticLayout;->getIndentAdjust(ILandroid/text/Layout$Alignment;)I
@@ -6601,30 +22549,59 @@ HSPLandroid/text/StaticLayout;->getLineContainsTab(I)Z
HSPLandroid/text/StaticLayout;->getLineCount()I
HSPLandroid/text/StaticLayout;->getLineDescent(I)I
HSPLandroid/text/StaticLayout;->getLineDirections(I)Landroid/text/Layout$Directions;
+HSPLandroid/text/StaticLayout;->getLineExtra(I)I
HSPLandroid/text/StaticLayout;->getLineForVertical(I)I
HSPLandroid/text/StaticLayout;->getLineStart(I)I
HSPLandroid/text/StaticLayout;->getLineTop(I)I
HSPLandroid/text/StaticLayout;->getParagraphDirection(I)I
HSPLandroid/text/StaticLayout;->getStartHyphenEdit(I)I
+HSPLandroid/text/StaticLayout;->getTopPadding()I
HSPLandroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZIZLandroid/text/MeasuredParagraph;IZZZ[CILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;Z)I
+PLandroid/text/StaticLayout;->packHyphenEdit(II)I
+PLandroid/text/StaticLayout;->unpackEndHyphenEdit(I)I
+PLandroid/text/StaticLayout;->unpackStartHyphenEdit(I)I
HSPLandroid/text/TextDirectionHeuristics$FirstStrong;->checkRtl(Ljava/lang/CharSequence;II)I
+PLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->doCheck(Ljava/lang/CharSequence;II)Z
HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->isRtl(Ljava/lang/CharSequence;II)Z
+HPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->isRtl([CII)Z
HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;->defaultIsRtl()Z
+HSPLandroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;->defaultIsRtl()Z
+PLandroid/text/TextDirectionHeuristics;->access$100(I)I
HSPLandroid/text/TextDirectionHeuristics;->isRtlCodePoint(I)I
+PLandroid/text/TextLine$DecorationInfo;-><init>()V
+PLandroid/text/TextLine$DecorationInfo;-><init>(Landroid/text/TextLine$1;)V
+HSPLandroid/text/TextLine$DecorationInfo;->copyInfo()Landroid/text/TextLine$DecorationInfo;
HSPLandroid/text/TextLine;-><init>()V
+PLandroid/text/TextLine;->adjustEndHyphenEdit(II)I
+PLandroid/text/TextLine;->adjustStartHyphenEdit(II)I
+HSPLandroid/text/TextLine;->draw(Landroid/graphics/Canvas;FIII)V
+HSPLandroid/text/TextLine;->drawRun(Landroid/graphics/Canvas;IIZFIIIZ)F
+HSPLandroid/text/TextLine;->drawStroke(Landroid/text/TextPaint;Landroid/graphics/Canvas;IFFFFF)V
+HSPLandroid/text/TextLine;->drawTextRun(Landroid/graphics/Canvas;Landroid/text/TextPaint;IIIIZFI)V
+HSPLandroid/text/TextLine;->equalAttributes(Landroid/text/TextPaint;Landroid/text/TextPaint;)Z
HSPLandroid/text/TextLine;->expandMetricsFromPaint(Landroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V
+HSPLandroid/text/TextLine;->extractDecorationInfo(Landroid/text/TextPaint;Landroid/text/TextLine$DecorationInfo;)V
+HPLandroid/text/TextLine;->getOffsetBeforeAfter(IIIZIZ)I
+HPLandroid/text/TextLine;->getOffsetToLeftRightOf(IZ)I
HSPLandroid/text/TextLine;->getRunAdvance(Landroid/text/TextPaint;IIIIZI)F
+HPLandroid/text/TextLine;->handleReplacement(Landroid/text/style/ReplacementSpan;Landroid/text/TextPaint;IIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;Z)F
HSPLandroid/text/TextLine;->handleRun(IIIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;Z)F
HSPLandroid/text/TextLine;->handleText(Landroid/text/TextPaint;IIIIZLandroid/graphics/Canvas;FIIILandroid/graphics/Paint$FontMetricsInt;ZILjava/util/ArrayList;)F
+HSPLandroid/text/TextLine;->isLineEndSpace(C)Z
HSPLandroid/text/TextLine;->measure(IZLandroid/graphics/Paint$FontMetricsInt;)F
+PLandroid/text/TextLine;->measureRun(IIIZLandroid/graphics/Paint$FontMetricsInt;)F
HSPLandroid/text/TextLine;->metrics(Landroid/graphics/Paint$FontMetricsInt;)F
+HPLandroid/text/TextLine;->nextTab(F)F
HSPLandroid/text/TextLine;->obtain()Landroid/text/TextLine;
HSPLandroid/text/TextLine;->recycle(Landroid/text/TextLine;)Landroid/text/TextLine;
HSPLandroid/text/TextLine;->set(Landroid/text/TextPaint;Ljava/lang/CharSequence;IIILandroid/text/Layout$Directions;ZLandroid/text/Layout$TabStops;II)V
HSPLandroid/text/TextLine;->updateMetrics(Landroid/graphics/Paint$FontMetricsInt;IIIII)V
HSPLandroid/text/TextPaint;-><init>()V
HSPLandroid/text/TextPaint;-><init>(I)V
+HSPLandroid/text/TextPaint;-><init>(Landroid/graphics/Paint;)V
+HSPLandroid/text/TextPaint;->getUnderlineThickness()F
HSPLandroid/text/TextPaint;->set(Landroid/text/TextPaint;)V
+HSPLandroid/text/TextPaint;->setUnderlineText(IF)V
HSPLandroid/text/TextUtils$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/CharSequence;
HSPLandroid/text/TextUtils$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/text/TextUtils$SimpleStringSplitter;-><init>(C)V
@@ -6633,59 +22610,351 @@ HSPLandroid/text/TextUtils$SimpleStringSplitter;->iterator()Ljava/util/Iterator;
HSPLandroid/text/TextUtils$SimpleStringSplitter;->next()Ljava/lang/Object;
HSPLandroid/text/TextUtils$SimpleStringSplitter;->next()Ljava/lang/String;
HSPLandroid/text/TextUtils$SimpleStringSplitter;->setString(Ljava/lang/String;)V
+HSPLandroid/text/TextUtils$StringWithRemovedChars;-><init>(Ljava/lang/String;)V
+HSPLandroid/text/TextUtils$StringWithRemovedChars;->codePointAt(I)I
+HSPLandroid/text/TextUtils$StringWithRemovedChars;->length()I
+HSPLandroid/text/TextUtils$StringWithRemovedChars;->toString()Ljava/lang/String;
HSPLandroid/text/TextUtils;->concat([Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HPLandroid/text/TextUtils;->copySpansFrom(Landroid/text/Spanned;IILjava/lang/Class;Landroid/text/Spannable;I)V
HSPLandroid/text/TextUtils;->couldAffectRtl(C)Z
+HSPLandroid/text/TextUtils;->delimitedStringContains(Ljava/lang/String;CLjava/lang/String;)Z
+HSPLandroid/text/TextUtils;->doesNotNeedBidi([CII)Z
+HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;)Ljava/lang/CharSequence;
HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;)Ljava/lang/CharSequence;
HSPLandroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;Landroid/text/TextDirectionHeuristic;Ljava/lang/String;)Ljava/lang/CharSequence;
+HSPLandroid/text/TextUtils;->emptyIfNull(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
+HSPLandroid/text/TextUtils;->expandTemplate(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HPLandroid/text/TextUtils;->getCapsMode(Ljava/lang/CharSequence;II)I
HSPLandroid/text/TextUtils;->getChars(Ljava/lang/CharSequence;II[CI)V
+HSPLandroid/text/TextUtils;->getEllipsisString(Landroid/text/TextUtils$TruncateAt;)Ljava/lang/String;
HSPLandroid/text/TextUtils;->getLayoutDirectionFromLocale(Ljava/util/Locale;)I
+HSPLandroid/text/TextUtils;->htmlEncode(Ljava/lang/String;)Ljava/lang/String;
+PLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;C)I
HSPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;CI)I
HSPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;CII)I
+HPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I
+HPLandroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;Ljava/lang/CharSequence;II)I
+HSPLandroid/text/TextUtils;->isDigitsOnly(Ljava/lang/CharSequence;)Z
HSPLandroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
+HSPLandroid/text/TextUtils;->isGraphic(C)Z
+HSPLandroid/text/TextUtils;->isGraphic(Ljava/lang/CharSequence;)Z
+HSPLandroid/text/TextUtils;->isNewline(I)Z
+HSPLandroid/text/TextUtils;->isWhiteSpace(I)Z
HSPLandroid/text/TextUtils;->join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
HSPLandroid/text/TextUtils;->join(Ljava/lang/CharSequence;[Ljava/lang/Object;)Ljava/lang/String;
+HSPLandroid/text/TextUtils;->lastIndexOf(Ljava/lang/CharSequence;CI)I
+HSPLandroid/text/TextUtils;->lastIndexOf(Ljava/lang/CharSequence;CII)I
+HSPLandroid/text/TextUtils;->makeSafeForPresentation(Ljava/lang/String;IFI)Ljava/lang/CharSequence;
HSPLandroid/text/TextUtils;->obtain(I)[C
+PLandroid/text/TextUtils;->packRangeInLong(II)J
HSPLandroid/text/TextUtils;->recycle([C)V
+HPLandroid/text/TextUtils;->regionMatches(Ljava/lang/CharSequence;ILjava/lang/CharSequence;II)Z
+HSPLandroid/text/TextUtils;->removeEmptySpans([Ljava/lang/Object;Landroid/text/Spanned;Ljava/lang/Class;)[Ljava/lang/Object;
+HSPLandroid/text/TextUtils;->safeIntern(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/text/TextUtils;->split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+PLandroid/text/TextUtils;->split(Ljava/lang/String;Ljava/util/regex/Pattern;)[Ljava/lang/String;
HSPLandroid/text/TextUtils;->stringOrSpannedString(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HPLandroid/text/TextUtils;->substring(Ljava/lang/CharSequence;II)Ljava/lang/String;
HSPLandroid/text/TextUtils;->toUpperCase(Ljava/util/Locale;Ljava/lang/CharSequence;Z)Ljava/lang/CharSequence;
+HPLandroid/text/TextUtils;->trimNoCopySpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HPLandroid/text/TextUtils;->trimToLengthWithEllipsis(Ljava/lang/CharSequence;I)Ljava/lang/CharSequence;
+HPLandroid/text/TextUtils;->trimToParcelableSize(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+PLandroid/text/TextUtils;->trimToSize(Ljava/lang/CharSequence;I)Ljava/lang/CharSequence;
+PLandroid/text/TextUtils;->unpackRangeEndFromLong(J)I
+PLandroid/text/TextUtils;->unpackRangeStartFromLong(J)I
HSPLandroid/text/TextUtils;->writeToParcel(Ljava/lang/CharSequence;Landroid/os/Parcel;I)V
+HSPLandroid/text/format/DateFormat;-><init>()V
+HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;J)Ljava/lang/CharSequence;
HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Calendar;)Ljava/lang/CharSequence;
+HSPLandroid/text/format/DateFormat;->format(Ljava/lang/CharSequence;Ljava/util/Date;)Ljava/lang/CharSequence;
HSPLandroid/text/format/DateFormat;->getBestDateTimePattern(Ljava/util/Locale;Ljava/lang/String;)Ljava/lang/String;
+PLandroid/text/format/DateFormat;->getDayOfWeekString(Llibcore/icu/LocaleData;III)Ljava/lang/String;
+HSPLandroid/text/format/DateFormat;->getMonthString(Llibcore/icu/LocaleData;III)Ljava/lang/String;
+HSPLandroid/text/format/DateFormat;->getTimeFormat(Landroid/content/Context;)Ljava/text/DateFormat;
+HPLandroid/text/format/DateFormat;->getTimeFormatString(Landroid/content/Context;)Ljava/lang/String;
+HSPLandroid/text/format/DateFormat;->getYearString(II)Ljava/lang/String;
+HSPLandroid/text/format/DateFormat;->is24HourFormat(Landroid/content/Context;)Z
HSPLandroid/text/format/DateFormat;->is24HourFormat(Landroid/content/Context;I)Z
HSPLandroid/text/format/DateFormat;->zeroPad(II)Ljava/lang/String;
-HPLandroid/text/format/Time$TimeCalculator;->copyFieldsFromTime(Landroid/text/format/Time;)V
-HPLandroid/text/format/Time$TimeCalculator;->copyFieldsToTime(Landroid/text/format/Time;)V
-PLandroid/text/format/Time$TimeCalculator;->lookupZoneInfo(Ljava/lang/String;)Llibcore/util/ZoneInfo;
-HPLandroid/text/format/Time$TimeCalculator;->setTimeInMillis(J)V
-PLandroid/text/format/Time$TimeCalculator;->toMillis(Z)J
-PLandroid/text/format/Time;-><init>()V
-PLandroid/text/format/Time;->normalize(Z)J
-PLandroid/text/format/Time;->set(J)V
-PLandroid/text/format/Time;->toMillis(Z)J
+HPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;JJI)Ljava/lang/String;
+PLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJI)Ljava/util/Formatter;
+HSPLandroid/text/format/DateUtils;->formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJILjava/lang/String;)Ljava/util/Formatter;
+HSPLandroid/text/format/DateUtils;->formatDateTime(Landroid/content/Context;JI)Ljava/lang/String;
+HPLandroid/text/format/DateUtils;->formatDuration(J)Ljava/lang/CharSequence;
+HPLandroid/text/format/DateUtils;->formatDuration(JI)Ljava/lang/CharSequence;
+HSPLandroid/text/format/DateUtils;->formatElapsedTime(J)Ljava/lang/String;
+HSPLandroid/text/format/DateUtils;->formatElapsedTime(Ljava/lang/StringBuilder;J)Ljava/lang/String;
+HPLandroid/text/format/DateUtils;->getRelativeTimeSpanString(Landroid/content/Context;J)Ljava/lang/CharSequence;
+HPLandroid/text/format/DateUtils;->getRelativeTimeSpanString(Landroid/content/Context;JZ)Ljava/lang/CharSequence;
+HSPLandroid/text/format/DateUtils;->initFormatStrings()V
+HSPLandroid/text/format/DateUtils;->initFormatStringsLocked()V
+HPLandroid/text/format/DateUtils;->isSameDate(JJ)Z
+HPLandroid/text/format/DateUtils;->isToday(J)Z
+PLandroid/text/format/Formatter$BytesResult;-><init>(Ljava/lang/String;Ljava/lang/String;J)V
+HSPLandroid/text/format/Formatter;->bidiWrap(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/text/format/Formatter;->formatBytes(Landroid/content/res/Resources;JI)Landroid/text/format/Formatter$BytesResult;
+PLandroid/text/format/Formatter;->formatFileSize(Landroid/content/Context;JI)Ljava/lang/String;
+HSPLandroid/text/format/Formatter;->formatIpAddress(I)Ljava/lang/String;
+HPLandroid/text/format/Formatter;->formatShortElapsedTime(Landroid/content/Context;J)Ljava/lang/String;
+HPLandroid/text/format/Formatter;->formatShortElapsedTimeRoundingUpToMinutes(Landroid/content/Context;J)Ljava/lang/String;
+HSPLandroid/text/format/Formatter;->formatShortFileSize(Landroid/content/Context;J)Ljava/lang/String;
+HSPLandroid/text/format/Formatter;->localeFromContext(Landroid/content/Context;)Ljava/util/Locale;
+HSPLandroid/text/format/Time$TimeCalculator;->copyFieldsFromTime(Landroid/text/format/Time;)V
+HSPLandroid/text/format/Time$TimeCalculator;->copyFieldsToTime(Landroid/text/format/Time;)V
+HPLandroid/text/format/Time$TimeCalculator;->format2445(Z)Ljava/lang/String;
+HSPLandroid/text/format/Time$TimeCalculator;->lookupZoneInfo(Ljava/lang/String;)Llibcore/util/ZoneInfo;
+HSPLandroid/text/format/Time$TimeCalculator;->setTimeInMillis(J)V
+HPLandroid/text/format/Time$TimeCalculator;->switchTimeZone(Ljava/lang/String;)V
+HPLandroid/text/format/Time$TimeCalculator;->toChar(I)C
+HSPLandroid/text/format/Time$TimeCalculator;->toMillis(Z)J
+HPLandroid/text/format/Time$TimeCalculator;->updateZoneInfoFromTimeZone()V
+HSPLandroid/text/format/Time;-><init>()V
+HPLandroid/text/format/Time;-><init>(Ljava/lang/String;)V
+HPLandroid/text/format/Time;->checkChar(Ljava/lang/String;IC)V
+HPLandroid/text/format/Time;->clear(Ljava/lang/String;)V
+HPLandroid/text/format/Time;->format2445()Ljava/lang/String;
+HPLandroid/text/format/Time;->getActualMaximum(I)I
+HPLandroid/text/format/Time;->getChar(Ljava/lang/String;II)I
+HSPLandroid/text/format/Time;->getCurrentTimezone()Ljava/lang/String;
+HSPLandroid/text/format/Time;->getJulianDay(JJ)I
+HSPLandroid/text/format/Time;->normalize(Z)J
+HPLandroid/text/format/Time;->parse(Ljava/lang/String;)Z
+HPLandroid/text/format/Time;->parseInternal(Ljava/lang/String;)Z
+HPLandroid/text/format/Time;->set(III)V
+HSPLandroid/text/format/Time;->set(IIIIII)V
+HSPLandroid/text/format/Time;->set(J)V
+HPLandroid/text/format/Time;->set(Landroid/text/format/Time;)V
+HPLandroid/text/format/Time;->setJulianDay(I)J
+HSPLandroid/text/format/Time;->setToNow()V
+HPLandroid/text/format/Time;->switchTimezone(Ljava/lang/String;)V
+HSPLandroid/text/format/Time;->toMillis(Z)J
+HPLandroid/text/format/TimeFormatter;-><init>()V
+HPLandroid/text/format/TimeFormatter;->append2DigitNumber(Ljava/lang/StringBuilder;I)V
+HPLandroid/text/format/TimeFormatter;->formatMillisWithFixedFormat(J)Ljava/lang/String;
+HPLandroid/text/format/TimeFormatter;->localizeDigits(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/text/format/TimeMigrationUtils;->formatMillisWithFixedFormat(J)Ljava/lang/String;
+HSPLandroid/text/method/AllCapsTransformationMethod;-><init>(Landroid/content/Context;)V
HSPLandroid/text/method/AllCapsTransformationMethod;->getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;
HSPLandroid/text/method/AllCapsTransformationMethod;->setLengthChangesAllowed(Z)V
+HSPLandroid/text/method/ArrowKeyMovementMethod;->canSelectArbitrarily()Z
+HSPLandroid/text/method/ArrowKeyMovementMethod;->getInstance()Landroid/text/method/MovementMethod;
+HSPLandroid/text/method/ArrowKeyMovementMethod;->initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V
+HPLandroid/text/method/ArrowKeyMovementMethod;->isSelecting(Landroid/text/Spannable;)Z
+HPLandroid/text/method/ArrowKeyMovementMethod;->onTakeFocus(Landroid/widget/TextView;Landroid/text/Spannable;I)V
+HPLandroid/text/method/ArrowKeyMovementMethod;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z
+HSPLandroid/text/method/BaseMovementMethod;-><init>()V
+HSPLandroid/text/method/LinkMovementMethod;-><init>()V
+HPLandroid/text/method/LinkMovementMethod;->canSelectArbitrarily()Z
+HSPLandroid/text/method/LinkMovementMethod;->getInstance()Landroid/text/method/MovementMethod;
+HSPLandroid/text/method/LinkMovementMethod;->initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V
+HPLandroid/text/method/LinkMovementMethod;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z
+HPLandroid/text/method/MetaKeyKeyListener;->getMetaState(Ljava/lang/CharSequence;I)I
+HPLandroid/text/method/MetaKeyKeyListener;->resetMetaState(Landroid/text/Spannable;)V
+HPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->charAt(I)C
+HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->getChars(II[CI)V
+HSPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->length()I
+HPLandroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->toString()Ljava/lang/String;
+HPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpanEnd(Ljava/lang/Object;)I
+HPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpanFlags(Ljava/lang/Object;)I
+HPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpanStart(Ljava/lang/Object;)I
+HSPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
+HPLandroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->nextSpanTransition(IILjava/lang/Class;)I
+PLandroid/text/method/ReplacementTransformationMethod;-><init>()V
HSPLandroid/text/method/ReplacementTransformationMethod;->getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;
+HPLandroid/text/method/ReplacementTransformationMethod;->onFocusChanged(Landroid/view/View;Ljava/lang/CharSequence;ZILandroid/graphics/Rect;)V
+HSPLandroid/text/method/ScrollingMovementMethod;-><init>()V
+HPLandroid/text/method/ScrollingMovementMethod;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z
+PLandroid/text/method/SingleLineTransformationMethod;-><init>()V
+PLandroid/text/method/SingleLineTransformationMethod;->getInstance()Landroid/text/method/SingleLineTransformationMethod;
HSPLandroid/text/method/SingleLineTransformationMethod;->getOriginal()[C
HSPLandroid/text/method/SingleLineTransformationMethod;->getReplacement()[C
+HSPLandroid/text/method/TextKeyListener;->getInstance()Landroid/text/method/TextKeyListener;
HSPLandroid/text/method/TextKeyListener;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HSPLandroid/text/method/TextKeyListener;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
+HPLandroid/text/method/TextKeyListener;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HPLandroid/text/method/Touch;->onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z
+HPLandroid/text/style/AbsoluteSizeSpan;-><init>(I)V
+HPLandroid/text/style/AbsoluteSizeSpan;-><init>(IZ)V
+HPLandroid/text/style/AbsoluteSizeSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/AlignmentSpan$Standard;-><init>(Landroid/text/Layout$Alignment;)V
+HPLandroid/text/style/AlignmentSpan$Standard;->getAlignment()Landroid/text/Layout$Alignment;
+HPLandroid/text/style/BackgroundColorSpan;-><init>(I)V
+HPLandroid/text/style/BulletSpan;-><init>()V
+HPLandroid/text/style/BulletSpan;-><init>(IIZI)V
HSPLandroid/text/style/CharacterStyle;-><init>()V
-PLandroid/text/style/TextAppearanceSpan;-><init>(Landroid/os/Parcel;)V
+PLandroid/text/style/CharacterStyle;->getUnderlying()Landroid/text/style/CharacterStyle;
+HPLandroid/text/style/CharacterStyle;->wrap(Landroid/text/style/CharacterStyle;)Landroid/text/style/CharacterStyle;
+HSPLandroid/text/style/ClickableSpan;-><init>()V
+HSPLandroid/text/style/ClickableSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HPLandroid/text/style/DynamicDrawableSpan;-><init>(I)V
+HPLandroid/text/style/DynamicDrawableSpan;->draw(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIFIIILandroid/graphics/Paint;)V
+HPLandroid/text/style/DynamicDrawableSpan;->getCachedDrawable()Landroid/graphics/drawable/Drawable;
+HPLandroid/text/style/DynamicDrawableSpan;->getSize(Landroid/graphics/Paint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)I
+HSPLandroid/text/style/ForegroundColorSpan;-><init>(I)V
+PLandroid/text/style/ForegroundColorSpan;->getSpanTypeIdInternal()I
+HSPLandroid/text/style/ForegroundColorSpan;->updateDrawState(Landroid/text/TextPaint;)V
+PLandroid/text/style/ForegroundColorSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+HPLandroid/text/style/ImageSpan;-><init>(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/text/style/ImageSpan;-><init>(Landroid/graphics/drawable/Drawable;I)V
+HPLandroid/text/style/ImageSpan;-><init>(Landroid/graphics/drawable/Drawable;Ljava/lang/String;)V
+HPLandroid/text/style/ImageSpan;-><init>(Landroid/graphics/drawable/Drawable;Ljava/lang/String;I)V
+HPLandroid/text/style/ImageSpan;->getDrawable()Landroid/graphics/drawable/Drawable;
+HPLandroid/text/style/LocaleSpan;-><init>(Ljava/util/Locale;)V
+HSPLandroid/text/style/MetricAffectingSpan;-><init>()V
+HSPLandroid/text/style/MetricAffectingSpan;->getUnderlying()Landroid/text/style/CharacterStyle;
+HSPLandroid/text/style/MetricAffectingSpan;->getUnderlying()Landroid/text/style/MetricAffectingSpan;
+HPLandroid/text/style/QuoteSpan;-><init>()V
+HPLandroid/text/style/QuoteSpan;-><init>(III)V
+HSPLandroid/text/style/RelativeSizeSpan;-><init>(F)V
+HPLandroid/text/style/RelativeSizeSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HPLandroid/text/style/RelativeSizeSpan;->updateMeasureState(Landroid/text/TextPaint;)V
+HPLandroid/text/style/ReplacementSpan;-><init>()V
+PLandroid/text/style/SpellCheckSpan;->getSpanTypeIdInternal()I
+PLandroid/text/style/SpellCheckSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+HSPLandroid/text/style/StyleSpan;-><init>(I)V
+HSPLandroid/text/style/StyleSpan;->apply(Landroid/graphics/Paint;I)V
+HSPLandroid/text/style/StyleSpan;->getSpanTypeIdInternal()I
+HSPLandroid/text/style/StyleSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/StyleSpan;->updateMeasureState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/StyleSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+PLandroid/text/style/SuggestionSpan;-><init>(Landroid/os/Parcel;)V
+PLandroid/text/style/SuggestionSpan;->getSpanTypeIdInternal()I
+PLandroid/text/style/SuggestionSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+HSPLandroid/text/style/TextAppearanceSpan;-><init>(Landroid/content/Context;I)V
+HSPLandroid/text/style/TextAppearanceSpan;-><init>(Landroid/content/Context;II)V
+HPLandroid/text/style/TextAppearanceSpan;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/text/style/TextAppearanceSpan;-><init>(Ljava/lang/String;IILandroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;)V
+HSPLandroid/text/style/TextAppearanceSpan;->getFamily()Ljava/lang/String;
+HSPLandroid/text/style/TextAppearanceSpan;->getLinkTextColor()Landroid/content/res/ColorStateList;
+HSPLandroid/text/style/TextAppearanceSpan;->getSpanTypeIdInternal()I
+HSPLandroid/text/style/TextAppearanceSpan;->getTextColor()Landroid/content/res/ColorStateList;
+HPLandroid/text/style/TextAppearanceSpan;->getTextSize()I
+HSPLandroid/text/style/TextAppearanceSpan;->getTextStyle()I
+HPLandroid/text/style/TextAppearanceSpan;->updateDrawState(Landroid/text/TextPaint;)V
+HPLandroid/text/style/TextAppearanceSpan;->updateMeasureState(Landroid/text/TextPaint;)V
+HSPLandroid/text/style/TextAppearanceSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+HSPLandroid/text/style/TtsSpan;-><init>(Ljava/lang/String;Landroid/os/PersistableBundle;)V
+HPLandroid/text/style/TypefaceSpan;-><init>(Ljava/lang/String;)V
+HPLandroid/text/style/TypefaceSpan;-><init>(Ljava/lang/String;Landroid/graphics/Typeface;)V
+HSPLandroid/text/style/URLSpan;-><init>(Ljava/lang/String;)V
+HSPLandroid/text/style/UnderlineSpan;-><init>()V
+PLandroid/text/style/UnderlineSpan;->getSpanTypeIdInternal()I
+HSPLandroid/text/style/UnderlineSpan;->updateDrawState(Landroid/text/TextPaint;)V
+PLandroid/text/style/UnderlineSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
+HSPLandroid/text/util/Rfc822Token;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/text/util/Rfc822Token;->getAddress()Ljava/lang/String;
+HSPLandroid/text/util/Rfc822Tokenizer;->crunch(Ljava/lang/StringBuilder;)V
+HSPLandroid/text/util/Rfc822Tokenizer;->tokenize(Ljava/lang/CharSequence;)[Landroid/text/util/Rfc822Token;
+HSPLandroid/text/util/Rfc822Tokenizer;->tokenize(Ljava/lang/CharSequence;Ljava/util/Collection;)V
+PLandroid/transition/ChangeBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+PLandroid/transition/ChangeBounds;->setResizeClip(Z)V
+PLandroid/transition/ChangeClipBounds;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+PLandroid/transition/ChangeImageTransform;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
HSPLandroid/transition/ChangeTransform;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+PLandroid/transition/Fade;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/transition/Scene;->enter()V
+HPLandroid/transition/Scene;->getCurrentScene(Landroid/view/ViewGroup;)Landroid/transition/Scene;
+HSPLandroid/transition/Scene;->getSceneRoot()Landroid/view/ViewGroup;
+HSPLandroid/transition/Scene;->setCurrentScene(Landroid/view/ViewGroup;Landroid/transition/Scene;)V
+HPLandroid/transition/Transition$2;-><init>(Landroid/transition/Transition;Landroid/util/ArrayMap;)V
+HPLandroid/transition/Transition$2;->onAnimationEnd(Landroid/animation/Animator;)V
+HPLandroid/transition/Transition$2;->onAnimationStart(Landroid/animation/Animator;)V
+HPLandroid/transition/Transition$3;-><init>(Landroid/transition/Transition;)V
+HPLandroid/transition/Transition$3;->onAnimationEnd(Landroid/animation/Animator;)V
+HPLandroid/transition/Transition$AnimationInfo;-><init>(Landroid/view/View;Ljava/lang/String;Landroid/transition/Transition;Landroid/view/WindowId;Landroid/transition/TransitionValues;)V
HSPLandroid/transition/Transition;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/transition/Transition;->access$000(Landroid/transition/Transition;)Ljava/util/ArrayList;
+HPLandroid/transition/Transition;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;
+HPLandroid/transition/Transition;->addUnmatched(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
+HPLandroid/transition/Transition;->addViewValues(Landroid/transition/TransitionValuesMaps;Landroid/view/View;Landroid/transition/TransitionValues;)V
+HPLandroid/transition/Transition;->animate(Landroid/animation/Animator;)V
+HPLandroid/transition/Transition;->captureHierarchy(Landroid/view/View;Z)V
+HPLandroid/transition/Transition;->capturePropagationValues(Landroid/transition/TransitionValues;)V
+HPLandroid/transition/Transition;->captureValues(Landroid/view/ViewGroup;Z)V
+HPLandroid/transition/Transition;->clearValues(Z)V
+HPLandroid/transition/Transition;->clone()Landroid/transition/Transition;
+HPLandroid/transition/Transition;->createAnimators(Landroid/view/ViewGroup;Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+HPLandroid/transition/Transition;->end()V
+HPLandroid/transition/Transition;->getDuration()J
+HPLandroid/transition/Transition;->getInterpolator()Landroid/animation/TimeInterpolator;
+HPLandroid/transition/Transition;->getName()Ljava/lang/String;
+HPLandroid/transition/Transition;->getRunningAnimators()Landroid/util/ArrayMap;
+HPLandroid/transition/Transition;->getStartDelay()J
+HPLandroid/transition/Transition;->isValidTarget(Landroid/view/View;)Z
+HPLandroid/transition/Transition;->matchIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/SparseArray;Landroid/util/SparseArray;)V
+HPLandroid/transition/Transition;->matchInstances(Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
+HPLandroid/transition/Transition;->matchItemIds(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/LongSparseArray;Landroid/util/LongSparseArray;)V
+HPLandroid/transition/Transition;->matchNames(Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
+HPLandroid/transition/Transition;->matchStartAndEnd(Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;)V
+HPLandroid/transition/Transition;->playTransition(Landroid/view/ViewGroup;)V
+HPLandroid/transition/Transition;->removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;
+HPLandroid/transition/Transition;->runAnimator(Landroid/animation/Animator;Landroid/util/ArrayMap;)V
+HPLandroid/transition/Transition;->runAnimators()V
+HPLandroid/transition/Transition;->start()V
+PLandroid/transition/TransitionInflater;-><init>(Landroid/content/Context;)V
HSPLandroid/transition/TransitionInflater;->createTransitionFromXml(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/transition/Transition;)Landroid/transition/Transition;
+PLandroid/transition/TransitionInflater;->from(Landroid/content/Context;)Landroid/transition/TransitionInflater;
HSPLandroid/transition/TransitionInflater;->inflateTransition(I)Landroid/transition/Transition;
+HPLandroid/transition/TransitionListenerAdapter;-><init>()V
+HPLandroid/transition/TransitionListenerAdapter;->onTransitionEnd(Landroid/transition/Transition;)V
+HPLandroid/transition/TransitionListenerAdapter;->onTransitionStart(Landroid/transition/Transition;)V
+HPLandroid/transition/TransitionManager$MultiListener$1;-><init>(Landroid/transition/TransitionManager$MultiListener;Landroid/util/ArrayMap;)V
+HPLandroid/transition/TransitionManager$MultiListener$1;->onTransitionEnd(Landroid/transition/Transition;)V
+HPLandroid/transition/TransitionManager$MultiListener;->onPreDraw()Z
+HPLandroid/transition/TransitionManager$MultiListener;->removeListeners()V
+PLandroid/transition/TransitionManager;-><init>()V
+HPLandroid/transition/TransitionManager;->access$000()Ljava/util/ArrayList;
+HPLandroid/transition/TransitionManager;->access$100()Landroid/util/ArrayMap;
+HPLandroid/transition/TransitionManager;->beginDelayedTransition(Landroid/view/ViewGroup;Landroid/transition/Transition;)V
+HPLandroid/transition/TransitionManager;->endTransitions(Landroid/view/ViewGroup;)V
+HPLandroid/transition/TransitionManager;->getRunningTransitions()Landroid/util/ArrayMap;
+HPLandroid/transition/TransitionManager;->sceneChangeSetup(Landroid/view/ViewGroup;Landroid/transition/Transition;)V
+HPLandroid/transition/TransitionSet$TransitionSetListener;-><init>(Landroid/transition/TransitionSet;)V
+HPLandroid/transition/TransitionSet$TransitionSetListener;->onTransitionEnd(Landroid/transition/Transition;)V
+HPLandroid/transition/TransitionSet$TransitionSetListener;->onTransitionStart(Landroid/transition/Transition;)V
HSPLandroid/transition/TransitionSet;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/transition/TransitionSet;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;
+HPLandroid/transition/TransitionSet;->addListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/TransitionSet;
HSPLandroid/transition/TransitionSet;->addTransition(Landroid/transition/Transition;)Landroid/transition/TransitionSet;
+PLandroid/transition/TransitionSet;->addTransitionInternal(Landroid/transition/Transition;)V
+HPLandroid/transition/TransitionSet;->captureEndValues(Landroid/transition/TransitionValues;)V
+HPLandroid/transition/TransitionSet;->capturePropagationValues(Landroid/transition/TransitionValues;)V
+HPLandroid/transition/TransitionSet;->captureStartValues(Landroid/transition/TransitionValues;)V
+HPLandroid/transition/TransitionSet;->clone()Landroid/transition/Transition;
+HPLandroid/transition/TransitionSet;->clone()Landroid/transition/TransitionSet;
+HPLandroid/transition/TransitionSet;->createAnimators(Landroid/view/ViewGroup;Landroid/transition/TransitionValuesMaps;Landroid/transition/TransitionValuesMaps;Ljava/util/ArrayList;Ljava/util/ArrayList;)V
HSPLandroid/transition/TransitionSet;->getTransitionCount()I
+HPLandroid/transition/TransitionSet;->removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/Transition;
+HPLandroid/transition/TransitionSet;->removeListener(Landroid/transition/Transition$TransitionListener;)Landroid/transition/TransitionSet;
+HPLandroid/transition/TransitionSet;->runAnimators()V
HSPLandroid/transition/TransitionSet;->setOrdering(I)Landroid/transition/TransitionSet;
+HPLandroid/transition/TransitionSet;->setupStartEndListeners()V
+HPLandroid/transition/TransitionValues;-><init>(Landroid/view/View;)V
+HPLandroid/transition/TransitionValuesMaps;-><init>()V
+PLandroid/transition/Visibility;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/transition/Visibility;->captureStartValues(Landroid/transition/TransitionValues;)V
+HPLandroid/transition/Visibility;->captureValues(Landroid/transition/TransitionValues;)V
+HPLandroid/transition/Visibility;->createAnimator(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/animation/Animator;
+PLandroid/transition/Visibility;->getMode()I
+HPLandroid/transition/Visibility;->getTransitionProperties()[Ljava/lang/String;
+HPLandroid/transition/Visibility;->getVisibilityChangeInfo(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/transition/Visibility$VisibilityInfo;
+HPLandroid/transition/Visibility;->isTransitionRequired(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Z
+HPLandroid/transition/Visibility;->onAppear(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;ILandroid/transition/TransitionValues;I)Landroid/animation/Animator;
+HPLandroid/transition/Visibility;->onDisappear(Landroid/view/ViewGroup;Landroid/transition/TransitionValues;ILandroid/transition/TransitionValues;I)Landroid/animation/Animator;
+PLandroid/transition/Visibility;->setMode(I)V
+PLandroid/util/AndroidException;-><init>()V
+PLandroid/util/AndroidException;-><init>(Ljava/lang/Exception;)V
HSPLandroid/util/AndroidException;-><init>(Ljava/lang/String;)V
HSPLandroid/util/AndroidRuntimeException;-><init>(Ljava/lang/String;)V
+HPLandroid/util/ArrayMap$1;-><init>(Landroid/util/ArrayMap;)V
HSPLandroid/util/ArrayMap$1;->colGetEntry(II)Ljava/lang/Object;
+HSPLandroid/util/ArrayMap$1;->colGetMap()Ljava/util/Map;
HSPLandroid/util/ArrayMap$1;->colGetSize()I
HPLandroid/util/ArrayMap$1;->colIndexOfKey(Ljava/lang/Object;)I
+HSPLandroid/util/ArrayMap$1;->colIndexOfValue(Ljava/lang/Object;)I
HSPLandroid/util/ArrayMap$1;->colRemoveAt(I)V
+HSPLandroid/util/ArrayMap$1;->colSetValue(ILjava/lang/Object;)Ljava/lang/Object;
HSPLandroid/util/ArrayMap;-><init>()V
HSPLandroid/util/ArrayMap;-><init>(I)V
HSPLandroid/util/ArrayMap;-><init>(IZ)V
@@ -6694,16 +22963,21 @@ HSPLandroid/util/ArrayMap;->allocArrays(I)V
HSPLandroid/util/ArrayMap;->append(Ljava/lang/Object;Ljava/lang/Object;)V
HSPLandroid/util/ArrayMap;->binarySearchHashes([III)I
HSPLandroid/util/ArrayMap;->clear()V
+HSPLandroid/util/ArrayMap;->containsAll(Ljava/util/Collection;)Z
HSPLandroid/util/ArrayMap;->containsKey(Ljava/lang/Object;)Z
+HSPLandroid/util/ArrayMap;->containsValue(Ljava/lang/Object;)Z
HSPLandroid/util/ArrayMap;->ensureCapacity(I)V
HSPLandroid/util/ArrayMap;->entrySet()Ljava/util/Set;
-HPLandroid/util/ArrayMap;->equals(Ljava/lang/Object;)Z
+HSPLandroid/util/ArrayMap;->equals(Ljava/lang/Object;)Z
+HSPLandroid/util/ArrayMap;->erase()V
HSPLandroid/util/ArrayMap;->freeArrays([I[Ljava/lang/Object;I)V
HSPLandroid/util/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroid/util/ArrayMap;->getCollection()Landroid/util/MapCollections;
+HSPLandroid/util/ArrayMap;->hashCode()I
HSPLandroid/util/ArrayMap;->indexOf(Ljava/lang/Object;I)I
HSPLandroid/util/ArrayMap;->indexOfKey(Ljava/lang/Object;)I
HSPLandroid/util/ArrayMap;->indexOfNull()I
+HSPLandroid/util/ArrayMap;->indexOfValue(Ljava/lang/Object;)I
HSPLandroid/util/ArrayMap;->isEmpty()Z
HSPLandroid/util/ArrayMap;->keyAt(I)Ljava/lang/Object;
HSPLandroid/util/ArrayMap;->keySet()Ljava/util/Set;
@@ -6711,7 +22985,10 @@ HSPLandroid/util/ArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/
HSPLandroid/util/ArrayMap;->putAll(Landroid/util/ArrayMap;)V
HSPLandroid/util/ArrayMap;->putAll(Ljava/util/Map;)V
HSPLandroid/util/ArrayMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/util/ArrayMap;->removeAll(Ljava/util/Collection;)Z
HSPLandroid/util/ArrayMap;->removeAt(I)Ljava/lang/Object;
+HSPLandroid/util/ArrayMap;->retainAll(Ljava/util/Collection;)Z
+HSPLandroid/util/ArrayMap;->setValueAt(ILjava/lang/Object;)Ljava/lang/Object;
HSPLandroid/util/ArrayMap;->size()I
HSPLandroid/util/ArrayMap;->toString()Ljava/lang/String;
HSPLandroid/util/ArrayMap;->validate()V
@@ -6719,11 +22996,13 @@ HSPLandroid/util/ArrayMap;->valueAt(I)Ljava/lang/Object;
HSPLandroid/util/ArrayMap;->values()Ljava/util/Collection;
HSPLandroid/util/ArraySet$1;->colGetEntry(II)Ljava/lang/Object;
HSPLandroid/util/ArraySet$1;->colGetSize()I
+HSPLandroid/util/ArraySet$1;->colRemoveAt(I)V
HSPLandroid/util/ArraySet;-><init>()V
HSPLandroid/util/ArraySet;-><init>(I)V
HSPLandroid/util/ArraySet;-><init>(IZ)V
HSPLandroid/util/ArraySet;-><init>(Landroid/util/ArraySet;)V
HSPLandroid/util/ArraySet;-><init>(Ljava/util/Collection;)V
+HSPLandroid/util/ArraySet;-><init>([Ljava/lang/Object;)V
HSPLandroid/util/ArraySet;->add(Ljava/lang/Object;)Z
HSPLandroid/util/ArraySet;->addAll(Landroid/util/ArraySet;)V
HSPLandroid/util/ArraySet;->addAll(Ljava/util/Collection;)Z
@@ -6742,15 +23021,32 @@ HSPLandroid/util/ArraySet;->indexOfNull()I
HSPLandroid/util/ArraySet;->isEmpty()Z
HSPLandroid/util/ArraySet;->iterator()Ljava/util/Iterator;
HSPLandroid/util/ArraySet;->remove(Ljava/lang/Object;)Z
+HPLandroid/util/ArraySet;->removeAll(Landroid/util/ArraySet;)Z
HSPLandroid/util/ArraySet;->removeAll(Ljava/util/Collection;)Z
HSPLandroid/util/ArraySet;->removeAt(I)Ljava/lang/Object;
+HSPLandroid/util/ArraySet;->removeIf(Ljava/util/function/Predicate;)Z
+PLandroid/util/ArraySet;->retainAll(Ljava/util/Collection;)Z
+HPLandroid/util/ArraySet;->shouldShrink()Z
HSPLandroid/util/ArraySet;->size()I
HSPLandroid/util/ArraySet;->toArray()[Ljava/lang/Object;
HSPLandroid/util/ArraySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
+HSPLandroid/util/ArraySet;->toString()Ljava/lang/String;
HSPLandroid/util/ArraySet;->valueAt(I)Ljava/lang/Object;
+PLandroid/util/ArraySet;->valueAtUnchecked(I)Ljava/lang/Object;
HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;)V
HSPLandroid/util/AtomicFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
+HSPLandroid/util/AtomicFile;->delete()V
+HSPLandroid/util/AtomicFile;->exists()Z
+PLandroid/util/AtomicFile;->failWrite(Ljava/io/FileOutputStream;)V
+HSPLandroid/util/AtomicFile;->finishWrite(Ljava/io/FileOutputStream;)V
+HSPLandroid/util/AtomicFile;->getBaseFile()Ljava/io/File;
+HSPLandroid/util/AtomicFile;->getLastModifiedTime()J
+HSPLandroid/util/AtomicFile;->openRead()Ljava/io/FileInputStream;
+HSPLandroid/util/AtomicFile;->readFully()[B
+HSPLandroid/util/AtomicFile;->startWrite()Ljava/io/FileOutputStream;
+HSPLandroid/util/AtomicFile;->startWrite(J)Ljava/io/FileOutputStream;
HSPLandroid/util/Base64$Coder;-><init>()V
+HSPLandroid/util/Base64$Decoder;-><init>(I[B)V
HSPLandroid/util/Base64$Decoder;->process([BIIZ)Z
HSPLandroid/util/Base64$Encoder;-><init>(I[B)V
HSPLandroid/util/Base64$Encoder;->process([BIIZ)Z
@@ -6763,31 +23059,71 @@ HSPLandroid/util/Base64;->encodeToString([BI)Ljava/lang/String;
HSPLandroid/util/Base64;->encodeToString([BIII)Ljava/lang/String;
HSPLandroid/util/ContainerHelpers;->binarySearch([III)I
HSPLandroid/util/ContainerHelpers;->binarySearch([JIJ)I
+HPLandroid/util/DataUnit$4;->toBytes(J)J
+HSPLandroid/util/DataUnit$5;->toBytes(J)J
+HPLandroid/util/DebugUtils;->constNameWithoutPrefix(Ljava/lang/String;Ljava/lang/reflect/Field;)Ljava/lang/String;
+HPLandroid/util/DebugUtils;->flagsToString(Ljava/lang/Class;Ljava/lang/String;I)Ljava/lang/String;
+HPLandroid/util/DebugUtils;->printSizeValue(Ljava/io/PrintWriter;J)V
+PLandroid/util/DebugUtils;->valueToString(Ljava/lang/Class;Ljava/lang/String;I)Ljava/lang/String;
HSPLandroid/util/DisplayMetrics;-><init>()V
HSPLandroid/util/DisplayMetrics;->setTo(Landroid/util/DisplayMetrics;)V
HSPLandroid/util/DisplayMetrics;->setToDefaults()V
+HSPLandroid/util/DisplayMetrics;->toString()Ljava/lang/String;
+HSPLandroid/util/EventLog$Event;-><init>([B)V
+HSPLandroid/util/EventLog$Event;->decodeObject()Ljava/lang/Object;
+HSPLandroid/util/EventLog$Event;->getData()Ljava/lang/Object;
+PLandroid/util/EventLog$Event;->getProcessId()I
+HSPLandroid/util/EventLog$Event;->getTag()I
+HPLandroid/util/EventLog$Event;->getThreadId()I
+HSPLandroid/util/EventLog$Event;->getTimeNanos()J
+HPLandroid/util/EventLog$Event;->getUid()I
+PLandroid/util/EventLog;->getTagCode(Ljava/lang/String;)I
+HPLandroid/util/EventLog;->readTagsFile()V
+HSPLandroid/util/FastImmutableArraySet$FastIterator;-><init>([Ljava/lang/Object;)V
+HSPLandroid/util/FastImmutableArraySet$FastIterator;->hasNext()Z
+HSPLandroid/util/FastImmutableArraySet$FastIterator;->next()Ljava/lang/Object;
+PLandroid/util/FastImmutableArraySet;-><init>([Ljava/lang/Object;)V
+HSPLandroid/util/FastImmutableArraySet;->iterator()Ljava/util/Iterator;
+HSPLandroid/util/FeatureFlagUtils;->isEnabled(Landroid/content/Context;Ljava/lang/String;)Z
HSPLandroid/util/FloatProperty;-><init>(Ljava/lang/String;)V
+HSPLandroid/util/FloatProperty;->set(Ljava/lang/Object;Ljava/lang/Float;)V
+HSPLandroid/util/FloatProperty;->set(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLandroid/util/IconDrawableFactory;->newInstance(Landroid/content/Context;)Landroid/util/IconDrawableFactory;
HSPLandroid/util/IntArray;-><init>()V
HSPLandroid/util/IntArray;-><init>(I)V
+PLandroid/util/IntArray;-><init>([II)V
HSPLandroid/util/IntArray;->add(I)V
HSPLandroid/util/IntArray;->add(II)V
+PLandroid/util/IntArray;->addAll(Landroid/util/IntArray;)V
HSPLandroid/util/IntArray;->clear()V
HSPLandroid/util/IntArray;->ensureCapacity(I)V
HSPLandroid/util/IntArray;->get(I)I
+HSPLandroid/util/IntArray;->indexOf(I)I
+HSPLandroid/util/IntArray;->remove(I)V
HSPLandroid/util/IntArray;->size()I
+HSPLandroid/util/IntArray;->toArray()[I
+PLandroid/util/IntArray;->wrap([I)Landroid/util/IntArray;
HSPLandroid/util/IntProperty;-><init>(Ljava/lang/String;)V
+HSPLandroid/util/IntProperty;->set(Ljava/lang/Object;Ljava/lang/Object;)V
HSPLandroid/util/JsonReader;-><init>(Ljava/io/Reader;)V
+HSPLandroid/util/JsonReader;->advance()Landroid/util/JsonToken;
HSPLandroid/util/JsonReader;->beginArray()V
HSPLandroid/util/JsonReader;->beginObject()V
HSPLandroid/util/JsonReader;->close()V
HSPLandroid/util/JsonReader;->decodeLiteral()Landroid/util/JsonToken;
HSPLandroid/util/JsonReader;->decodeNumber([CII)Landroid/util/JsonToken;
+HSPLandroid/util/JsonReader;->endArray()V
HSPLandroid/util/JsonReader;->endObject()V
HSPLandroid/util/JsonReader;->expect(Landroid/util/JsonToken;)V
HSPLandroid/util/JsonReader;->fillBuffer(I)Z
+HSPLandroid/util/JsonReader;->hasNext()Z
+HSPLandroid/util/JsonReader;->nextBoolean()Z
+HSPLandroid/util/JsonReader;->nextDouble()D
HSPLandroid/util/JsonReader;->nextInArray(Z)Landroid/util/JsonToken;
HSPLandroid/util/JsonReader;->nextInObject(Z)Landroid/util/JsonToken;
+HSPLandroid/util/JsonReader;->nextInt()I
HSPLandroid/util/JsonReader;->nextLiteral(Z)Ljava/lang/String;
+HSPLandroid/util/JsonReader;->nextLong()J
HSPLandroid/util/JsonReader;->nextName()Ljava/lang/String;
HSPLandroid/util/JsonReader;->nextNonWhitespace()I
HSPLandroid/util/JsonReader;->nextString()Ljava/lang/String;
@@ -6795,24 +23131,61 @@ HSPLandroid/util/JsonReader;->nextString(C)Ljava/lang/String;
HSPLandroid/util/JsonReader;->nextValue()Landroid/util/JsonToken;
HSPLandroid/util/JsonReader;->objectValue()Landroid/util/JsonToken;
HSPLandroid/util/JsonReader;->peek()Landroid/util/JsonToken;
+HPLandroid/util/JsonReader;->peekStack()Landroid/util/JsonScope;
HSPLandroid/util/JsonReader;->readEscapeCharacter()C
HSPLandroid/util/JsonReader;->readLiteral()Landroid/util/JsonToken;
+HPLandroid/util/JsonReader;->replaceTop(Landroid/util/JsonScope;)V
HSPLandroid/util/JsonReader;->setLenient(Z)V
+HSPLandroid/util/JsonReader;->skipValue()V
+HSPLandroid/util/JsonToken;->values()[Landroid/util/JsonToken;
HSPLandroid/util/JsonWriter;-><init>(Ljava/io/Writer;)V
HSPLandroid/util/JsonWriter;->beforeName()V
HSPLandroid/util/JsonWriter;->beforeValue(Z)V
+HSPLandroid/util/JsonWriter;->beginArray()Landroid/util/JsonWriter;
HSPLandroid/util/JsonWriter;->beginObject()Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->close()V
HSPLandroid/util/JsonWriter;->close(Landroid/util/JsonScope;Landroid/util/JsonScope;Ljava/lang/String;)Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->endArray()Landroid/util/JsonWriter;
HSPLandroid/util/JsonWriter;->endObject()Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->flush()V
HSPLandroid/util/JsonWriter;->name(Ljava/lang/String;)Landroid/util/JsonWriter;
+HPLandroid/util/JsonWriter;->open(Landroid/util/JsonScope;Ljava/lang/String;)Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->setLenient(Z)V
HSPLandroid/util/JsonWriter;->string(Ljava/lang/String;)V
+HSPLandroid/util/JsonWriter;->value(J)Landroid/util/JsonWriter;
HSPLandroid/util/JsonWriter;->value(Ljava/lang/String;)Landroid/util/JsonWriter;
+HSPLandroid/util/JsonWriter;->value(Z)Landroid/util/JsonWriter;
+HSPLandroid/util/KeyValueListParser$IntValue;-><init>(Ljava/lang/String;I)V
+PLandroid/util/KeyValueListParser$IntValue;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLandroid/util/KeyValueListParser$IntValue;->dumpProto(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/util/KeyValueListParser$IntValue;->getValue()I
+HSPLandroid/util/KeyValueListParser$IntValue;->parse(Landroid/util/KeyValueListParser;)V
HSPLandroid/util/KeyValueListParser;-><init>(C)V
HSPLandroid/util/KeyValueListParser;->getBoolean(Ljava/lang/String;Z)Z
+HSPLandroid/util/KeyValueListParser;->getDurationMillis(Ljava/lang/String;J)J
+HSPLandroid/util/KeyValueListParser;->getFloat(Ljava/lang/String;F)F
HSPLandroid/util/KeyValueListParser;->getInt(Ljava/lang/String;I)I
+HSPLandroid/util/KeyValueListParser;->getLong(Ljava/lang/String;J)J
HSPLandroid/util/KeyValueListParser;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/util/KeyValueListParser;->setString(Ljava/lang/String;)V
+PLandroid/util/KeyValueSettingObserver$SettingObserver;-><init>(Landroid/util/KeyValueSettingObserver;Landroid/os/Handler;)V
+PLandroid/util/KeyValueSettingObserver$SettingObserver;-><init>(Landroid/util/KeyValueSettingObserver;Landroid/os/Handler;Landroid/util/KeyValueSettingObserver$1;)V
+PLandroid/util/KeyValueSettingObserver;-><init>(Landroid/os/Handler;Landroid/content/ContentResolver;Landroid/net/Uri;)V
+PLandroid/util/KeyValueSettingObserver;->setParserValue()V
+PLandroid/util/KeyValueSettingObserver;->start()V
+HSPLandroid/util/LauncherIcons;->getBadgedDrawable(Landroid/graphics/drawable/Drawable;II)Landroid/graphics/drawable/Drawable;
+PLandroid/util/LocalLog$ReadOnlyLocalLog;-><init>(Landroid/util/LocalLog;)V
+PLandroid/util/LocalLog$ReadOnlyLocalLog;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
HSPLandroid/util/LocalLog;-><init>(I)V
+HSPLandroid/util/LocalLog;-><init>(IZ)V
+HSPLandroid/util/LocalLog;->append(Ljava/lang/String;)V
+PLandroid/util/LocalLog;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLandroid/util/LocalLog;->dump(Ljava/io/PrintWriter;)V
+HPLandroid/util/LocalLog;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HSPLandroid/util/LocalLog;->log(Ljava/lang/String;)V
+PLandroid/util/LocalLog;->readOnlyLocalLog()Landroid/util/LocalLog$ReadOnlyLocalLog;
+PLandroid/util/LocalLog;->reverseDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLandroid/util/LocalLog;->reverseDump(Ljava/io/PrintWriter;)V
HSPLandroid/util/Log$1;->onTerribleFailure(Ljava/lang/String;Landroid/util/Log$TerribleFailure;Z)V
HSPLandroid/util/Log$ImmediateLogWriter;-><init>(IILjava/lang/String;)V
HSPLandroid/util/Log$ImmediateLogWriter;->flush()V
@@ -6820,6 +23193,7 @@ HSPLandroid/util/Log$ImmediateLogWriter;->getWritten()I
HSPLandroid/util/Log$ImmediateLogWriter;->write([CII)V
HSPLandroid/util/Log$TerribleFailure;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
HSPLandroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
+HPLandroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
HSPLandroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
HSPLandroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
HSPLandroid/util/Log;->getStackTraceString(Ljava/lang/Throwable;)Ljava/lang/String;
@@ -6830,46 +23204,96 @@ HSPLandroid/util/Log;->printlns(IILjava/lang/String;Ljava/lang/String;Ljava/lang
HSPLandroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
HSPLandroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
HSPLandroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+HPLandroid/util/Log;->w(Ljava/lang/String;Ljava/lang/Throwable;)I
HSPLandroid/util/Log;->wtf(ILjava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;ZZ)I
+HPLandroid/util/Log;->wtf(Ljava/lang/String;Ljava/lang/String;)I
+HPLandroid/util/Log;->wtf(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+PLandroid/util/Log;->wtf(Ljava/lang/String;Ljava/lang/Throwable;)I
HSPLandroid/util/LogPrinter;-><init>(ILjava/lang/String;)V
HSPLandroid/util/LongArray;-><init>()V
HSPLandroid/util/LongArray;-><init>(I)V
+HSPLandroid/util/LongArray;->add(IJ)V
+HSPLandroid/util/LongArray;->add(J)V
+HPLandroid/util/LongArray;->clear()V
+HPLandroid/util/LongArray;->clone()Landroid/util/LongArray;
+HSPLandroid/util/LongArray;->ensureCapacity(I)V
+HSPLandroid/util/LongArray;->get(I)J
+HPLandroid/util/LongArray;->indexOf(J)I
+HSPLandroid/util/LongArray;->size()I
+HSPLandroid/util/LongArray;->toArray()[J
+HSPLandroid/util/LongArrayQueue;-><init>()V
+HSPLandroid/util/LongArrayQueue;-><init>(I)V
+PLandroid/util/LongArrayQueue;->addLast(J)V
+PLandroid/util/LongArrayQueue;->clear()V
+HPLandroid/util/LongArrayQueue;->get(I)J
+PLandroid/util/LongArrayQueue;->grow()V
+HPLandroid/util/LongArrayQueue;->peekFirst()J
+HPLandroid/util/LongArrayQueue;->peekLast()J
+PLandroid/util/LongArrayQueue;->removeFirst()J
+HPLandroid/util/LongArrayQueue;->size()I
HSPLandroid/util/LongSparseArray$StringParcelling;-><init>()V
+HPLandroid/util/LongSparseArray$StringParcelling;->parcel(Landroid/util/LongSparseArray;Landroid/os/Parcel;I)V
+HSPLandroid/util/LongSparseArray$StringParcelling;->unparcel(Landroid/os/Parcel;)Landroid/util/LongSparseArray;
HSPLandroid/util/LongSparseArray;-><init>()V
HSPLandroid/util/LongSparseArray;-><init>(I)V
+PLandroid/util/LongSparseArray;->access$000(Landroid/util/LongSparseArray;)I
+HSPLandroid/util/LongSparseArray;->access$002(Landroid/util/LongSparseArray;I)I
HSPLandroid/util/LongSparseArray;->access$100(Landroid/util/LongSparseArray;)[J
+HSPLandroid/util/LongSparseArray;->access$102(Landroid/util/LongSparseArray;[J)[J
HSPLandroid/util/LongSparseArray;->access$200(Landroid/util/LongSparseArray;)[Ljava/lang/Object;
-HSPLandroid/util/LongSparseArray;->clear()V
+HSPLandroid/util/LongSparseArray;->access$202(Landroid/util/LongSparseArray;[Ljava/lang/Object;)[Ljava/lang/Object;
+PLandroid/util/LongSparseArray;->append(JLjava/lang/Object;)V
+PLandroid/util/LongSparseArray;->clear()V
HSPLandroid/util/LongSparseArray;->delete(J)V
HSPLandroid/util/LongSparseArray;->gc()V
HSPLandroid/util/LongSparseArray;->get(J)Ljava/lang/Object;
HSPLandroid/util/LongSparseArray;->get(JLjava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/util/LongSparseArray;->indexOfKey(J)I
+HSPLandroid/util/LongSparseArray;->indexOfValue(Ljava/lang/Object;)I
+HSPLandroid/util/LongSparseArray;->keyAt(I)J
HSPLandroid/util/LongSparseArray;->put(JLjava/lang/Object;)V
+HSPLandroid/util/LongSparseArray;->remove(J)V
+HSPLandroid/util/LongSparseArray;->removeAt(I)V
+PLandroid/util/LongSparseArray;->setValueAt(ILjava/lang/Object;)V
HSPLandroid/util/LongSparseArray;->size()I
HSPLandroid/util/LongSparseArray;->valueAt(I)Ljava/lang/Object;
HSPLandroid/util/LongSparseLongArray$Parcelling;-><init>()V
+HPLandroid/util/LongSparseLongArray$Parcelling;->parcel(Landroid/util/LongSparseLongArray;Landroid/os/Parcel;I)V
+HSPLandroid/util/LongSparseLongArray$Parcelling;->unparcel(Landroid/os/Parcel;)Landroid/util/LongSparseLongArray;
HSPLandroid/util/LongSparseLongArray;-><init>()V
HSPLandroid/util/LongSparseLongArray;-><init>(I)V
+PLandroid/util/LongSparseLongArray;->access$000(Landroid/util/LongSparseLongArray;)I
+HSPLandroid/util/LongSparseLongArray;->access$002(Landroid/util/LongSparseLongArray;I)I
HSPLandroid/util/LongSparseLongArray;->access$100(Landroid/util/LongSparseLongArray;)[J
+HSPLandroid/util/LongSparseLongArray;->access$102(Landroid/util/LongSparseLongArray;[J)[J
HSPLandroid/util/LongSparseLongArray;->access$200(Landroid/util/LongSparseLongArray;)[J
+HSPLandroid/util/LongSparseLongArray;->access$202(Landroid/util/LongSparseLongArray;[J)[J
HSPLandroid/util/LongSparseLongArray;->append(JJ)V
HSPLandroid/util/LongSparseLongArray;->clear()V
+HSPLandroid/util/LongSparseLongArray;->clone()Landroid/util/LongSparseLongArray;
HSPLandroid/util/LongSparseLongArray;->delete(J)V
-HPLandroid/util/LongSparseLongArray;->get(J)J
-HPLandroid/util/LongSparseLongArray;->get(JJ)J
+HSPLandroid/util/LongSparseLongArray;->get(J)J
+HSPLandroid/util/LongSparseLongArray;->get(JJ)J
HSPLandroid/util/LongSparseLongArray;->indexOfKey(J)I
+HPLandroid/util/LongSparseLongArray;->keyAt(I)J
HSPLandroid/util/LongSparseLongArray;->put(JJ)V
+HSPLandroid/util/LongSparseLongArray;->removeAt(I)V
+HSPLandroid/util/LongSparseLongArray;->size()I
HSPLandroid/util/LongSparseLongArray;->valueAt(I)J
HSPLandroid/util/LruCache;-><init>(I)V
HSPLandroid/util/LruCache;->create(Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroid/util/LruCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
HSPLandroid/util/LruCache;->evictAll()V
HSPLandroid/util/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/util/LruCache;->hitCount()I
+PLandroid/util/LruCache;->missCount()I
HSPLandroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroid/util/LruCache;->remove(Ljava/lang/Object;)Ljava/lang/Object;
HSPLandroid/util/LruCache;->resize(I)V
HSPLandroid/util/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/util/LruCache;->size()I
HSPLandroid/util/LruCache;->sizeOf(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLandroid/util/LruCache;->snapshot()Ljava/util/Map;
HSPLandroid/util/LruCache;->trimToSize(I)V
HSPLandroid/util/MapCollections$ArrayIterator;->hasNext()Z
HSPLandroid/util/MapCollections$ArrayIterator;->next()Ljava/lang/Object;
@@ -6877,6 +23301,9 @@ HSPLandroid/util/MapCollections$ArrayIterator;->remove()V
HSPLandroid/util/MapCollections$EntrySet;->iterator()Ljava/util/Iterator;
HSPLandroid/util/MapCollections$EntrySet;->size()I
HPLandroid/util/MapCollections$KeySet;->contains(Ljava/lang/Object;)Z
+HSPLandroid/util/MapCollections$KeySet;->containsAll(Ljava/util/Collection;)Z
+HSPLandroid/util/MapCollections$KeySet;->equals(Ljava/lang/Object;)Z
+HSPLandroid/util/MapCollections$KeySet;->isEmpty()Z
HSPLandroid/util/MapCollections$KeySet;->iterator()Ljava/util/Iterator;
HSPLandroid/util/MapCollections$KeySet;->size()I
HSPLandroid/util/MapCollections$KeySet;->toArray()[Ljava/lang/Object;
@@ -6885,30 +23312,89 @@ HSPLandroid/util/MapCollections$MapIterator;->getKey()Ljava/lang/Object;
HSPLandroid/util/MapCollections$MapIterator;->getValue()Ljava/lang/Object;
HSPLandroid/util/MapCollections$MapIterator;->hasNext()Z
HSPLandroid/util/MapCollections$MapIterator;->next()Ljava/lang/Object;
+HSPLandroid/util/MapCollections$MapIterator;->remove()V
+HSPLandroid/util/MapCollections$MapIterator;->setValue(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/util/MapCollections$ValuesCollection;->contains(Ljava/lang/Object;)Z
HSPLandroid/util/MapCollections$ValuesCollection;->iterator()Ljava/util/Iterator;
+HSPLandroid/util/MapCollections$ValuesCollection;->size()I
+HSPLandroid/util/MapCollections$ValuesCollection;->toArray()[Ljava/lang/Object;
+PLandroid/util/MapCollections;-><init>()V
+HSPLandroid/util/MapCollections;->containsAllHelper(Ljava/util/Map;Ljava/util/Collection;)Z
+HSPLandroid/util/MapCollections;->equalsSetHelper(Ljava/util/Set;Ljava/lang/Object;)Z
HSPLandroid/util/MapCollections;->getEntrySet()Ljava/util/Set;
HSPLandroid/util/MapCollections;->getKeySet()Ljava/util/Set;
HSPLandroid/util/MapCollections;->getValues()Ljava/util/Collection;
+HSPLandroid/util/MapCollections;->removeAllHelper(Ljava/util/Map;Ljava/util/Collection;)Z
+HSPLandroid/util/MapCollections;->retainAllHelper(Ljava/util/Map;Ljava/util/Collection;)Z
HSPLandroid/util/MapCollections;->toArrayHelper(I)[Ljava/lang/Object;
HSPLandroid/util/MapCollections;->toArrayHelper([Ljava/lang/Object;I)[Ljava/lang/Object;
+HPLandroid/util/MathUtils;->abs(F)F
HSPLandroid/util/MathUtils;->addOrThrow(II)I
HSPLandroid/util/MathUtils;->constrain(FFF)F
HSPLandroid/util/MathUtils;->constrain(III)I
+HSPLandroid/util/MathUtils;->constrain(JJJ)J
+HPLandroid/util/MathUtils;->exp(F)F
+HPLandroid/util/MathUtils;->fitRect(Landroid/graphics/Rect;I)V
HSPLandroid/util/MathUtils;->lerp(FFF)F
+HPLandroid/util/MathUtils;->log(F)F
+HPLandroid/util/MathUtils;->mag(FF)F
+HPLandroid/util/MathUtils;->map(FFFFF)F
+HPLandroid/util/MathUtils;->max(FF)F
+HPLandroid/util/MathUtils;->min(II)F
+HPLandroid/util/MathUtils;->norm(FFF)F
+HSPLandroid/util/MathUtils;->pow(FF)F
+HPLandroid/util/MathUtils;->saturate(F)F
+HPLandroid/util/MathUtils;->smoothStep(FFF)F
+HPLandroid/util/MathUtils;->sq(F)F
+HPLandroid/util/MathUtils;->sqrt(F)F
HSPLandroid/util/MemoryIntArray$1;->createFromParcel(Landroid/os/Parcel;)Landroid/util/MemoryIntArray;
HSPLandroid/util/MemoryIntArray$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/util/MemoryIntArray;-><init>(I)V
HSPLandroid/util/MemoryIntArray;-><init>(Landroid/os/Parcel;)V
HSPLandroid/util/MemoryIntArray;-><init>(Landroid/os/Parcel;Landroid/util/MemoryIntArray$1;)V
+HSPLandroid/util/MemoryIntArray;->close()V
+HSPLandroid/util/MemoryIntArray;->enforceNotClosed()V
HSPLandroid/util/MemoryIntArray;->enforceValidIndex(I)V
+HSPLandroid/util/MemoryIntArray;->enforceWritable()V
+HSPLandroid/util/MemoryIntArray;->finalize()V
HSPLandroid/util/MemoryIntArray;->get(I)I
+HSPLandroid/util/MemoryIntArray;->isClosed()Z
+HSPLandroid/util/MemoryIntArray;->isWritable()Z
+HSPLandroid/util/MemoryIntArray;->set(II)V
+HSPLandroid/util/MemoryIntArray;->size()I
+HSPLandroid/util/MemoryIntArray;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/util/MergedConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Landroid/util/MergedConfiguration;
HSPLandroid/util/MergedConfiguration$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/util/MergedConfiguration;-><init>()V
+PLandroid/util/MergedConfiguration;-><init>(Landroid/content/res/Configuration;)V
+PLandroid/util/MergedConfiguration;-><init>(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V
+PLandroid/util/MergedConfiguration;-><init>(Landroid/util/MergedConfiguration;)V
+HPLandroid/util/MergedConfiguration;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
HSPLandroid/util/MergedConfiguration;->equals(Ljava/lang/Object;)Z
HSPLandroid/util/MergedConfiguration;->getGlobalConfiguration()Landroid/content/res/Configuration;
+HPLandroid/util/MergedConfiguration;->getMergedConfiguration()Landroid/content/res/Configuration;
HSPLandroid/util/MergedConfiguration;->getOverrideConfiguration()Landroid/content/res/Configuration;
HSPLandroid/util/MergedConfiguration;->readFromParcel(Landroid/os/Parcel;)V
HSPLandroid/util/MergedConfiguration;->setConfiguration(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V
+PLandroid/util/MergedConfiguration;->setGlobalConfiguration(Landroid/content/res/Configuration;)V
+HPLandroid/util/MergedConfiguration;->setTo(Landroid/util/MergedConfiguration;)V
+HPLandroid/util/MergedConfiguration;->updateMergedConfig()V
+HPLandroid/util/MergedConfiguration;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/util/MutableBoolean;-><init>(Z)V
+HSPLandroid/util/MutableInt;-><init>(I)V
+HSPLandroid/util/MutableLong;-><init>(J)V
+HSPLandroid/util/NtpTrustedTime;-><init>(Ljava/lang/String;J)V
+PLandroid/util/NtpTrustedTime;->currentTimeMillis()J
+PLandroid/util/NtpTrustedTime;->forceRefresh()Z
+PLandroid/util/NtpTrustedTime;->forceRefresh(Landroid/net/Network;)Z
+PLandroid/util/NtpTrustedTime;->getCacheAge()J
+PLandroid/util/NtpTrustedTime;->getCacheCertainty()J
+PLandroid/util/NtpTrustedTime;->getCachedNtpTime()J
+PLandroid/util/NtpTrustedTime;->getCachedNtpTimeReference()J
+HSPLandroid/util/NtpTrustedTime;->getInstance(Landroid/content/Context;)Landroid/util/NtpTrustedTime;
+HSPLandroid/util/NtpTrustedTime;->hasCache()Z
+PLandroid/util/PackageUtils;->computeSha256Digest([B)Ljava/lang/String;
+HSPLandroid/util/PackageUtils;->computeSha256DigestBytes([B)[B
HSPLandroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
HSPLandroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
HSPLandroid/util/Pair;->equals(Ljava/lang/Object;)Z
@@ -6917,9 +23403,13 @@ HSPLandroid/util/Pair;->toString()Ljava/lang/String;
HSPLandroid/util/PathParser$PathData;-><init>(Landroid/util/PathParser$PathData;)V
HSPLandroid/util/PathParser$PathData;-><init>(Ljava/lang/String;)V
HSPLandroid/util/PathParser$PathData;->finalize()V
+HPLandroid/util/PathParser$PathData;->getNativePtr()J
+HPLandroid/util/PathParser$PathData;->setPathData(Landroid/util/PathParser$PathData;)V
+HSPLandroid/util/PathParser;->access$000()J
HSPLandroid/util/PathParser;->access$100(J)J
HSPLandroid/util/PathParser;->access$200(Ljava/lang/String;I)J
HSPLandroid/util/PathParser;->access$400(J)V
+PLandroid/util/PathParser;->createPathFromPathData(Ljava/lang/String;)Landroid/graphics/Path;
HSPLandroid/util/Patterns;-><clinit>()V
HSPLandroid/util/Pools$SimplePool;-><init>(I)V
HSPLandroid/util/Pools$SimplePool;->acquire()Ljava/lang/Object;
@@ -6929,17 +23419,47 @@ HSPLandroid/util/Pools$SynchronizedPool;-><init>(I)V
HSPLandroid/util/Pools$SynchronizedPool;-><init>(ILjava/lang/Object;)V
HSPLandroid/util/Pools$SynchronizedPool;->acquire()Ljava/lang/Object;
HSPLandroid/util/Pools$SynchronizedPool;->release(Ljava/lang/Object;)Z
+PLandroid/util/PrefixPrinter;-><init>(Landroid/util/Printer;Ljava/lang/String;)V
+PLandroid/util/PrefixPrinter;->create(Landroid/util/Printer;Ljava/lang/String;)Landroid/util/Printer;
+PLandroid/util/PrefixPrinter;->println(Ljava/lang/String;)V
+HSPLandroid/util/PrintWriterPrinter;-><init>(Ljava/io/PrintWriter;)V
+HSPLandroid/util/PrintWriterPrinter;->println(Ljava/lang/String;)V
HSPLandroid/util/Property;-><init>(Ljava/lang/Class;Ljava/lang/String;)V
HSPLandroid/util/Property;->getName()Ljava/lang/String;
+HSPLandroid/util/Property;->getType()Ljava/lang/Class;
HSPLandroid/util/Range;-><init>(Ljava/lang/Comparable;Ljava/lang/Comparable;)V
+HPLandroid/util/Range;->clamp(Ljava/lang/Comparable;)Ljava/lang/Comparable;
+HPLandroid/util/Range;->contains(Landroid/util/Range;)Z
+HSPLandroid/util/Range;->contains(Ljava/lang/Comparable;)Z
HSPLandroid/util/Range;->create(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
+HSPLandroid/util/Range;->getLower()Ljava/lang/Comparable;
+HSPLandroid/util/Range;->getUpper()Ljava/lang/Comparable;
+HSPLandroid/util/Range;->intersect(Landroid/util/Range;)Landroid/util/Range;
+HSPLandroid/util/Range;->intersect(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
+HSPLandroid/util/Range;->toString()Ljava/lang/String;
+HSPLandroid/util/Rational;-><init>(II)V
+HSPLandroid/util/Rational;->compareTo(Landroid/util/Rational;)I
+HSPLandroid/util/Rational;->compareTo(Ljava/lang/Object;)I
+PLandroid/util/Rational;->gcd(II)I
+HPLandroid/util/Rational;->getDenominator()I
+HPLandroid/util/Rational;->getNumerator()I
+HSPLandroid/util/Singleton;-><init>()V
HSPLandroid/util/Singleton;->get()Ljava/lang/Object;
HSPLandroid/util/Size;-><init>(II)V
+HSPLandroid/util/Size;->getHeight()I
+HSPLandroid/util/Size;->getWidth()I
+HSPLandroid/util/Size;->hashCode()I
HSPLandroid/util/Size;->parseSize(Ljava/lang/String;)Landroid/util/Size;
HSPLandroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
HSPLandroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
HSPLandroid/util/Slog;->i(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/util/Slog;->println(ILjava/lang/String;Ljava/lang/String;)I
HSPLandroid/util/Slog;->v(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
+HSPLandroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
+HSPLandroid/util/Slog;->wtf(Ljava/lang/String;Ljava/lang/String;)I
+PLandroid/util/Slog;->wtf(Ljava/lang/String;Ljava/lang/Throwable;)I
HSPLandroid/util/SparseArray;-><init>()V
HSPLandroid/util/SparseArray;-><init>(I)V
HSPLandroid/util/SparseArray;->append(ILjava/lang/Object;)V
@@ -6950,49 +23470,124 @@ HSPLandroid/util/SparseArray;->gc()V
HSPLandroid/util/SparseArray;->get(I)Ljava/lang/Object;
HSPLandroid/util/SparseArray;->get(ILjava/lang/Object;)Ljava/lang/Object;
HSPLandroid/util/SparseArray;->indexOfKey(I)I
+HSPLandroid/util/SparseArray;->indexOfValue(Ljava/lang/Object;)I
HSPLandroid/util/SparseArray;->keyAt(I)I
HSPLandroid/util/SparseArray;->put(ILjava/lang/Object;)V
HSPLandroid/util/SparseArray;->remove(I)V
HSPLandroid/util/SparseArray;->removeAt(I)V
+HSPLandroid/util/SparseArray;->removeReturnOld(I)Ljava/lang/Object;
+HSPLandroid/util/SparseArray;->setValueAt(ILjava/lang/Object;)V
HSPLandroid/util/SparseArray;->size()I
+HSPLandroid/util/SparseArray;->toString()Ljava/lang/String;
HSPLandroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
+HSPLandroid/util/SparseArrayMap;-><init>()V
+HSPLandroid/util/SparseArrayMap;->add(ILjava/lang/String;Ljava/lang/Object;)V
+PLandroid/util/SparseArrayMap;->clear()V
+HSPLandroid/util/SparseArrayMap;->forEach(Ljava/util/function/Consumer;)V
+HSPLandroid/util/SparseArrayMap;->get(ILjava/lang/String;)Ljava/lang/Object;
+PLandroid/util/SparseArrayMap;->indexOfKey(I)I
+HPLandroid/util/SparseArrayMap;->keyAt(I)I
+HPLandroid/util/SparseArrayMap;->keyAt(II)Ljava/lang/String;
+HPLandroid/util/SparseArrayMap;->numElementsForKey(I)I
+HSPLandroid/util/SparseArrayMap;->numMaps()I
+HPLandroid/util/SparseArrayMap;->valueAt(II)Ljava/lang/Object;
HSPLandroid/util/SparseBooleanArray;-><init>()V
HSPLandroid/util/SparseBooleanArray;-><init>(I)V
HSPLandroid/util/SparseBooleanArray;->append(IZ)V
HSPLandroid/util/SparseBooleanArray;->clear()V
+PLandroid/util/SparseBooleanArray;->clone()Landroid/util/SparseBooleanArray;
HSPLandroid/util/SparseBooleanArray;->delete(I)V
+PLandroid/util/SparseBooleanArray;->equals(Ljava/lang/Object;)Z
HSPLandroid/util/SparseBooleanArray;->get(I)Z
HSPLandroid/util/SparseBooleanArray;->get(IZ)Z
HSPLandroid/util/SparseBooleanArray;->indexOfKey(I)I
-PLandroid/util/SparseBooleanArray;->indexOfValue(Z)I
+HSPLandroid/util/SparseBooleanArray;->indexOfValue(Z)I
HSPLandroid/util/SparseBooleanArray;->keyAt(I)I
HSPLandroid/util/SparseBooleanArray;->put(IZ)V
HSPLandroid/util/SparseBooleanArray;->size()I
+HSPLandroid/util/SparseBooleanArray;->toString()Ljava/lang/String;
HSPLandroid/util/SparseBooleanArray;->valueAt(I)Z
HSPLandroid/util/SparseIntArray;-><init>()V
HSPLandroid/util/SparseIntArray;-><init>(I)V
HSPLandroid/util/SparseIntArray;->append(II)V
HSPLandroid/util/SparseIntArray;->clear()V
HSPLandroid/util/SparseIntArray;->clone()Landroid/util/SparseIntArray;
+HPLandroid/util/SparseIntArray;->copyKeys()[I
+HSPLandroid/util/SparseIntArray;->delete(I)V
HSPLandroid/util/SparseIntArray;->get(I)I
HSPLandroid/util/SparseIntArray;->get(II)I
HSPLandroid/util/SparseIntArray;->indexOfKey(I)I
+HSPLandroid/util/SparseIntArray;->indexOfValue(I)I
HSPLandroid/util/SparseIntArray;->keyAt(I)I
HSPLandroid/util/SparseIntArray;->put(II)V
HSPLandroid/util/SparseIntArray;->removeAt(I)V
+HSPLandroid/util/SparseIntArray;->setValueAt(II)V
HSPLandroid/util/SparseIntArray;->size()I
+HSPLandroid/util/SparseIntArray;->toString()Ljava/lang/String;
HSPLandroid/util/SparseIntArray;->valueAt(I)I
HSPLandroid/util/SparseLongArray;-><init>()V
HSPLandroid/util/SparseLongArray;-><init>(I)V
+PLandroid/util/SparseLongArray;->clear()V
+HPLandroid/util/SparseLongArray;->delete(I)V
HSPLandroid/util/SparseLongArray;->get(I)J
HSPLandroid/util/SparseLongArray;->get(IJ)J
+HSPLandroid/util/SparseLongArray;->indexOfKey(I)I
+HSPLandroid/util/SparseLongArray;->keyAt(I)I
HSPLandroid/util/SparseLongArray;->put(IJ)V
+HPLandroid/util/SparseLongArray;->removeAt(I)V
+HSPLandroid/util/SparseLongArray;->size()I
+PLandroid/util/SparseLongArray;->toString()Ljava/lang/String;
+HSPLandroid/util/SparseLongArray;->valueAt(I)J
+HSPLandroid/util/SparseSetArray;-><init>()V
+HSPLandroid/util/SparseSetArray;->add(ILjava/lang/Object;)Z
+HSPLandroid/util/SparseSetArray;->contains(ILjava/lang/Object;)Z
+HPLandroid/util/SparseSetArray;->get(I)Landroid/util/ArraySet;
+HPLandroid/util/SparseSetArray;->keyAt(I)I
+PLandroid/util/SparseSetArray;->remove(I)V
+PLandroid/util/SparseSetArray;->remove(ILjava/lang/Object;)Z
+HPLandroid/util/SparseSetArray;->size()I
+HPLandroid/util/SparseSetArray;->sizeAt(I)I
+HPLandroid/util/SparseSetArray;->valueAt(II)Ljava/lang/Object;
+HSPLandroid/util/Spline$LinearSpline;-><init>([F[F)V
+HSPLandroid/util/Spline$LinearSpline;->interpolate(F)F
+PLandroid/util/Spline$LinearSpline;->toString()Ljava/lang/String;
+HSPLandroid/util/Spline$MonotoneCubicSpline;-><init>([F[F)V
+HSPLandroid/util/Spline$MonotoneCubicSpline;->interpolate(F)F
+PLandroid/util/Spline$MonotoneCubicSpline;->toString()Ljava/lang/String;
+HSPLandroid/util/Spline;-><init>()V
+HSPLandroid/util/Spline;->createMonotoneCubicSpline([F[F)Landroid/util/Spline;
+HSPLandroid/util/Spline;->createSpline([F[F)Landroid/util/Spline;
+HSPLandroid/util/Spline;->isMonotonic([F)Z
+HSPLandroid/util/Spline;->isStrictlyIncreasing([F)Z
+PLandroid/util/StateSet;->get(I)[I
HSPLandroid/util/StateSet;->stateSetMatches([I[I)Z
HSPLandroid/util/StateSet;->trimStateSet([II)[I
-PLandroid/util/TimeUtils;->formatDuration(J)Ljava/lang/String;
+PLandroid/util/StatsLog;->getIStatsdLocked()Landroid/os/IStatsd;
+PLandroid/util/StatsLog;->logEvent(I)Z
+HSPLandroid/util/StatsLog;->writeRaw([BI)V
+HPLandroid/util/StatsLogInternal;->write(ILandroid/os/WorkSource;I)V
+HSPLandroid/util/StatsLogInternal;->write(ILandroid/os/WorkSource;IZZZ)V
+HPLandroid/util/StatsLogInternal;->write(ILandroid/os/WorkSource;Ljava/lang/String;Ljava/lang/String;I)V
+PLandroid/util/StringBuilderPrinter;-><init>(Ljava/lang/StringBuilder;)V
+PLandroid/util/StringBuilderPrinter;->println(Ljava/lang/String;)V
+HPLandroid/util/TimeUtils;->accumField(IIZI)I
+PLandroid/util/TimeUtils;->dumpTimeWithDelta(Ljava/io/PrintWriter;JJ)V
+HSPLandroid/util/TimeUtils;->formatDuration(J)Ljava/lang/String;
+HSPLandroid/util/TimeUtils;->formatDuration(JJLjava/io/PrintWriter;)V
+HPLandroid/util/TimeUtils;->formatDuration(JLjava/io/PrintWriter;)V
+HSPLandroid/util/TimeUtils;->formatDuration(JLjava/io/PrintWriter;I)V
HSPLandroid/util/TimeUtils;->formatDuration(JLjava/lang/StringBuilder;)V
+HPLandroid/util/TimeUtils;->formatDuration(JLjava/lang/StringBuilder;I)V
HSPLandroid/util/TimeUtils;->formatDurationLocked(JI)I
+PLandroid/util/TimeUtils;->formatForLogging(J)Ljava/lang/String;
+PLandroid/util/TimeUtils;->formatUptime(J)Ljava/lang/String;
+HSPLandroid/util/TimeUtils;->getTimeZoneDatabaseVersion()Ljava/lang/String;
+PLandroid/util/TimeUtils;->logTimeOfDay(J)Ljava/lang/String;
HSPLandroid/util/TimeUtils;->printFieldLocked([CICIZI)I
+HSPLandroid/util/TimedRemoteCaller;-><init>(J)V
+PLandroid/util/TimedRemoteCaller;->getResultTimed(I)Ljava/lang/Object;
+PLandroid/util/TimedRemoteCaller;->onBeforeRemoteCall()I
+PLandroid/util/TimedRemoteCaller;->onRemoteMethodResult(Ljava/lang/Object;I)V
HSPLandroid/util/TimingLogger;-><init>(Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/util/TimingLogger;->addSplit(Ljava/lang/String;)V
HSPLandroid/util/TimingLogger;->dumpToLog()V
@@ -7006,19 +23601,292 @@ HSPLandroid/util/TimingsTraceLog;->traceBegin(Ljava/lang/String;)V
HSPLandroid/util/TimingsTraceLog;->traceEnd()V
HSPLandroid/util/TypedValue;-><init>()V
HSPLandroid/util/TypedValue;->applyDimension(IFLandroid/util/DisplayMetrics;)F
+HSPLandroid/util/TypedValue;->coerceToString()Ljava/lang/CharSequence;
HSPLandroid/util/TypedValue;->coerceToString(II)Ljava/lang/String;
+HSPLandroid/util/TypedValue;->complexToDimension(ILandroid/util/DisplayMetrics;)F
HSPLandroid/util/TypedValue;->complexToDimensionPixelOffset(ILandroid/util/DisplayMetrics;)I
HSPLandroid/util/TypedValue;->complexToDimensionPixelSize(ILandroid/util/DisplayMetrics;)I
HSPLandroid/util/TypedValue;->complexToFloat(I)F
+HSPLandroid/util/TypedValue;->complexToFraction(IFF)F
+HSPLandroid/util/TypedValue;->getDimension(Landroid/util/DisplayMetrics;)F
HSPLandroid/util/TypedValue;->getFloat()F
HSPLandroid/util/TypedValue;->getFraction(FF)F
HSPLandroid/util/UtilConfig;->setThrowExceptionForUpperArrayOutOfBounds(Z)V
+HSPLandroid/util/Xml$Encoding;-><clinit>()V
+HSPLandroid/util/Xml$Encoding;-><init>(Ljava/lang/String;ILjava/lang/String;)V
HSPLandroid/util/Xml;->asAttributeSet(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/AttributeSet;
HSPLandroid/util/Xml;->newPullParser()Lorg/xmlpull/v1/XmlPullParser;
HSPLandroid/util/Xml;->newSerializer()Lorg/xmlpull/v1/XmlSerializer;
+HSPLandroid/util/Xml;->parse(Ljava/io/InputStream;Landroid/util/Xml$Encoding;Lorg/xml/sax/ContentHandler;)V
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;-><init>([[Ljava/security/cert/X509Certificate;[B)V
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->findSignature(Ljava/io/RandomAccessFile;)Landroid/util/apk/SignatureInfo;
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->isSupportedSignatureAlgorithm(I)Z
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->unsafeGetCertsWithoutVerification(Ljava/lang/String;)[[Ljava/security/cert/X509Certificate;
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->verify(Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;Z)Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->verify(Ljava/io/RandomAccessFile;Z)Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->verify(Ljava/lang/String;)[[Ljava/security/cert/X509Certificate;
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->verify(Ljava/lang/String;Z)Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->verifyAdditionalAttributes(Ljava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/ApkSignatureSchemeV2Verifier;->verifySigner(Ljava/nio/ByteBuffer;Ljava/util/Map;Ljava/security/cert/CertificateFactory;)[Ljava/security/cert/X509Certificate;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;-><init>([Ljava/security/cert/X509Certificate;Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedProofOfRotation;)V
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->findSignature(Ljava/io/RandomAccessFile;)Landroid/util/apk/SignatureInfo;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->isSupportedSignatureAlgorithm(I)Z
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->unsafeGetCertsWithoutVerification(Ljava/lang/String;)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->verify(Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;Z)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->verify(Ljava/io/RandomAccessFile;Z)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->verify(Ljava/lang/String;)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->verify(Ljava/lang/String;Z)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->verifyAdditionalAttributes(Ljava/nio/ByteBuffer;Ljava/util/List;Ljava/security/cert/CertificateFactory;)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureSchemeV3Verifier;->verifySigner(Ljava/nio/ByteBuffer;Ljava/util/Map;Ljava/security/cert/CertificateFactory;)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
+HSPLandroid/util/apk/ApkSignatureVerifier;->closeQuietly(Landroid/util/jar/StrictJarFile;)V
+HSPLandroid/util/apk/ApkSignatureVerifier;->convertToSignatures([[Ljava/security/cert/Certificate;)[Landroid/content/pm/Signature;
+HSPLandroid/util/apk/ApkSignatureVerifier;->loadCertificates(Landroid/util/jar/StrictJarFile;Ljava/util/zip/ZipEntry;)[[Ljava/security/cert/Certificate;
+HSPLandroid/util/apk/ApkSignatureVerifier;->readFullyIgnoringContents(Ljava/io/InputStream;)V
+HSPLandroid/util/apk/ApkSignatureVerifier;->unsafeGetCertsWithoutVerification(Ljava/lang/String;I)Landroid/content/pm/PackageParser$SigningDetails;
+HSPLandroid/util/apk/ApkSignatureVerifier;->verify(Ljava/lang/String;I)Landroid/content/pm/PackageParser$SigningDetails;
+HSPLandroid/util/apk/ApkSignatureVerifier;->verifyV1Signature(Ljava/lang/String;Z)Landroid/content/pm/PackageParser$SigningDetails;
+HSPLandroid/util/apk/ApkSigningBlockUtils$1;-><init>()V
+HSPLandroid/util/apk/ApkSigningBlockUtils$1;->create(I)Ljava/nio/ByteBuffer;
+HSPLandroid/util/apk/ApkSigningBlockUtils$MultipleDigestDataDigester;-><init>([Ljava/security/MessageDigest;)V
+HSPLandroid/util/apk/ApkSigningBlockUtils$MultipleDigestDataDigester;->consume(Ljava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/ApkSigningBlockUtils;->checkByteOrderLittleEndian(Ljava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/ApkSigningBlockUtils;->compareContentDigestAlgorithm(II)I
+HSPLandroid/util/apk/ApkSigningBlockUtils;->compareSignatureAlgorithm(II)I
+HSPLandroid/util/apk/ApkSigningBlockUtils;->computeContentDigestsPer1MbChunk([I[Landroid/util/apk/DataSource;)[[B
+HSPLandroid/util/apk/ApkSigningBlockUtils;->findApkSignatureSchemeBlock(Ljava/nio/ByteBuffer;I)Ljava/nio/ByteBuffer;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->findApkSigningBlock(Ljava/io/RandomAccessFile;J)Landroid/util/Pair;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->findSignature(Ljava/io/RandomAccessFile;I)Landroid/util/apk/SignatureInfo;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getByteBuffer(Ljava/nio/ByteBuffer;I)Ljava/nio/ByteBuffer;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getCentralDirOffset(Ljava/nio/ByteBuffer;J)J
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getChunkCount(J)J
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getContentDigestAlgorithmJcaDigestAlgorithm(I)Ljava/lang/String;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getContentDigestAlgorithmOutputSizeBytes(I)I
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getEocd(Ljava/io/RandomAccessFile;)Landroid/util/Pair;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getLengthPrefixedSlice(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getSignatureAlgorithmContentDigestAlgorithm(I)I
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getSignatureAlgorithmJcaKeyAlgorithm(I)Ljava/lang/String;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->getSignatureAlgorithmJcaSignatureAlgorithm(I)Landroid/util/Pair;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->parseVerityDigestAndVerifySourceLength([BJLandroid/util/apk/SignatureInfo;)[B
+HSPLandroid/util/apk/ApkSigningBlockUtils;->readLengthPrefixedByteArray(Ljava/nio/ByteBuffer;)[B
+HSPLandroid/util/apk/ApkSigningBlockUtils;->setUnsignedInt32LittleEndian(I[BI)V
+HSPLandroid/util/apk/ApkSigningBlockUtils;->sliceFromTo(Ljava/nio/ByteBuffer;II)Ljava/nio/ByteBuffer;
+HSPLandroid/util/apk/ApkSigningBlockUtils;->verifyIntegrity(Ljava/util/Map;Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;)V
+HSPLandroid/util/apk/ApkSigningBlockUtils;->verifyIntegrityFor1MbChunkBasedAlgorithm(Ljava/util/Map;Ljava/io/FileDescriptor;Landroid/util/apk/SignatureInfo;)V
+HSPLandroid/util/apk/ApkSigningBlockUtils;->verifyIntegrityForVerityBasedAlgorithm([BLjava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;)V
+HSPLandroid/util/apk/ByteBufferDataSource;-><init>(Ljava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/ByteBufferDataSource;->feedIntoDataDigester(Landroid/util/apk/DataDigester;JI)V
+HSPLandroid/util/apk/ByteBufferDataSource;->size()J
+HSPLandroid/util/apk/MemoryMappedFileDataSource;-><clinit>()V
+HSPLandroid/util/apk/MemoryMappedFileDataSource;-><init>(Ljava/io/FileDescriptor;JJ)V
+HSPLandroid/util/apk/MemoryMappedFileDataSource;->feedIntoDataDigester(Landroid/util/apk/DataDigester;JI)V
+HSPLandroid/util/apk/MemoryMappedFileDataSource;->size()J
+HSPLandroid/util/apk/SignatureInfo;-><init>(Ljava/nio/ByteBuffer;JJJLjava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/SignatureNotFoundException;-><init>(Ljava/lang/String;)V
+HSPLandroid/util/apk/VerbatimX509Certificate;-><init>(Ljava/security/cert/X509Certificate;[B)V
+HSPLandroid/util/apk/VerbatimX509Certificate;->getEncoded()[B
+HSPLandroid/util/apk/VerityBuilder$BufferedDigester;-><init>([BLjava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/VerityBuilder$BufferedDigester;-><init>([BLjava/nio/ByteBuffer;Landroid/util/apk/VerityBuilder$1;)V
+HSPLandroid/util/apk/VerityBuilder$BufferedDigester;->access$200(Landroid/util/apk/VerityBuilder$BufferedDigester;)V
+HSPLandroid/util/apk/VerityBuilder$BufferedDigester;->assertEmptyBuffer()V
+HSPLandroid/util/apk/VerityBuilder$BufferedDigester;->consume(Ljava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/VerityBuilder$BufferedDigester;->fillUpLastOutputChunk()V
+HSPLandroid/util/apk/VerityBuilder$VerityResult;-><init>(Ljava/nio/ByteBuffer;I[B)V
+HSPLandroid/util/apk/VerityBuilder$VerityResult;-><init>(Ljava/nio/ByteBuffer;I[BLandroid/util/apk/VerityBuilder$1;)V
+HSPLandroid/util/apk/VerityBuilder;->assertSigningBlockAlignedAndHasFullPages(Landroid/util/apk/SignatureInfo;)V
+HSPLandroid/util/apk/VerityBuilder;->calculateVerityLevelOffset(J)[I
+HSPLandroid/util/apk/VerityBuilder;->consumeByChunk(Landroid/util/apk/DataDigester;Landroid/util/apk/DataSource;I)V
+HSPLandroid/util/apk/VerityBuilder;->divideRoundup(JJ)J
+HSPLandroid/util/apk/VerityBuilder;->generateApkVerityDigestAtLeafLevel(Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;[BLjava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/VerityBuilder;->generateApkVerityTree(Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;Landroid/util/apk/ByteBufferFactory;)Landroid/util/apk/VerityBuilder$VerityResult;
+HSPLandroid/util/apk/VerityBuilder;->generateVerityTreeInternal(Ljava/io/RandomAccessFile;Landroid/util/apk/ByteBufferFactory;Landroid/util/apk/SignatureInfo;)Landroid/util/apk/VerityBuilder$VerityResult;
+HSPLandroid/util/apk/VerityBuilder;->generateVerityTreeInternal(Ljava/io/RandomAccessFile;Landroid/util/apk/SignatureInfo;[B[ILjava/nio/ByteBuffer;)[B
+HSPLandroid/util/apk/VerityBuilder;->slice(Ljava/nio/ByteBuffer;II)Ljava/nio/ByteBuffer;
+HSPLandroid/util/apk/WrappedX509Certificate;-><init>(Ljava/security/cert/X509Certificate;)V
+HSPLandroid/util/apk/WrappedX509Certificate;->getPublicKey()Ljava/security/PublicKey;
+HSPLandroid/util/apk/ZipUtils;->assertByteOrderLittleEndian(Ljava/nio/ByteBuffer;)V
+HSPLandroid/util/apk/ZipUtils;->findZipEndOfCentralDirectoryRecord(Ljava/io/RandomAccessFile;)Landroid/util/Pair;
+HSPLandroid/util/apk/ZipUtils;->findZipEndOfCentralDirectoryRecord(Ljava/io/RandomAccessFile;I)Landroid/util/Pair;
+HSPLandroid/util/apk/ZipUtils;->findZipEndOfCentralDirectoryRecord(Ljava/nio/ByteBuffer;)I
+HSPLandroid/util/apk/ZipUtils;->getUnsignedInt16(Ljava/nio/ByteBuffer;I)I
+HSPLandroid/util/apk/ZipUtils;->getUnsignedInt32(Ljava/nio/ByteBuffer;I)J
+HSPLandroid/util/apk/ZipUtils;->getZipEocdCentralDirectoryOffset(Ljava/nio/ByteBuffer;)J
+HSPLandroid/util/apk/ZipUtils;->getZipEocdCentralDirectorySizeBytes(Ljava/nio/ByteBuffer;)J
+HSPLandroid/util/apk/ZipUtils;->isZip64EndOfCentralDirectoryLocatorPresent(Ljava/io/RandomAccessFile;J)Z
+HSPLandroid/util/apk/ZipUtils;->setUnsignedInt32(Ljava/nio/ByteBuffer;IJ)V
+HSPLandroid/util/apk/ZipUtils;->setZipEocdCentralDirectoryOffset(Ljava/nio/ByteBuffer;J)V
+HSPLandroid/util/jar/StrictJarFile$EntryIterator;-><init>(JLjava/lang/String;)V
+HSPLandroid/util/jar/StrictJarFile$EntryIterator;->hasNext()Z
+HSPLandroid/util/jar/StrictJarFile$EntryIterator;->next()Ljava/lang/Object;
+HSPLandroid/util/jar/StrictJarFile$EntryIterator;->next()Ljava/util/zip/ZipEntry;
+HSPLandroid/util/jar/StrictJarFile$FDStream;-><init>(Ljava/io/FileDescriptor;JJ)V
+HSPLandroid/util/jar/StrictJarFile$FDStream;->read([BII)I
+HSPLandroid/util/jar/StrictJarFile$JarFileInputStream;-><init>(Ljava/io/InputStream;JLandroid/util/jar/StrictJarVerifier$VerifierEntry;)V
+HSPLandroid/util/jar/StrictJarFile$JarFileInputStream;->read([BII)I
+HSPLandroid/util/jar/StrictJarFile$ZipInflaterInputStream;-><init>(Ljava/io/InputStream;Ljava/util/zip/Inflater;ILjava/util/zip/ZipEntry;)V
+HSPLandroid/util/jar/StrictJarFile$ZipInflaterInputStream;->close()V
+HSPLandroid/util/jar/StrictJarFile$ZipInflaterInputStream;->read([BII)I
+HSPLandroid/util/jar/StrictJarFile;-><init>(Ljava/lang/String;Ljava/io/FileDescriptor;ZZ)V
+HSPLandroid/util/jar/StrictJarFile;-><init>(Ljava/lang/String;ZZ)V
+HSPLandroid/util/jar/StrictJarFile;->access$000(JLjava/lang/String;)J
+HSPLandroid/util/jar/StrictJarFile;->access$100(J)Ljava/util/zip/ZipEntry;
+HSPLandroid/util/jar/StrictJarFile;->close()V
+HSPLandroid/util/jar/StrictJarFile;->finalize()V
+HSPLandroid/util/jar/StrictJarFile;->findEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
+HSPLandroid/util/jar/StrictJarFile;->getCertificateChains(Ljava/util/zip/ZipEntry;)[[Ljava/security/cert/Certificate;
+HSPLandroid/util/jar/StrictJarFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
+HSPLandroid/util/jar/StrictJarFile;->getMetaEntries()Ljava/util/HashMap;
+HSPLandroid/util/jar/StrictJarFile;->getZipInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
+PLandroid/util/jar/StrictJarFile;->iterator()Ljava/util/Iterator;
+HSPLandroid/util/jar/StrictJarManifest$Chunk;-><init>(II)V
+HSPLandroid/util/jar/StrictJarManifest;-><init>()V
+HSPLandroid/util/jar/StrictJarManifest;-><init>([BZ)V
+HSPLandroid/util/jar/StrictJarManifest;->getAttributes(Ljava/lang/String;)Ljava/util/jar/Attributes;
+HSPLandroid/util/jar/StrictJarManifest;->getEntries()Ljava/util/Map;
+HSPLandroid/util/jar/StrictJarManifest;->getMainAttributesEnd()I
+HSPLandroid/util/jar/StrictJarManifest;->read([B)V
+HSPLandroid/util/jar/StrictJarManifestReader;-><init>([BLjava/util/jar/Attributes;)V
+HSPLandroid/util/jar/StrictJarManifestReader;->getEndOfMainSection()I
+HSPLandroid/util/jar/StrictJarManifestReader;->readEntries(Ljava/util/Map;Ljava/util/Map;)V
+HSPLandroid/util/jar/StrictJarManifestReader;->readHeader()Z
+HSPLandroid/util/jar/StrictJarManifestReader;->readName()V
+HSPLandroid/util/jar/StrictJarManifestReader;->readValue()V
+HSPLandroid/util/jar/StrictJarVerifier$VerifierEntry;-><init>(Ljava/lang/String;Ljava/security/MessageDigest;[B[[Ljava/security/cert/Certificate;Ljava/util/Hashtable;)V
+HSPLandroid/util/jar/StrictJarVerifier$VerifierEntry;->verify()V
+HSPLandroid/util/jar/StrictJarVerifier$VerifierEntry;->write([BII)V
+HSPLandroid/util/jar/StrictJarVerifier;-><init>(Ljava/lang/String;Landroid/util/jar/StrictJarManifest;Ljava/util/HashMap;Z)V
+HSPLandroid/util/jar/StrictJarVerifier;->access$000([B[B)Z
+HSPLandroid/util/jar/StrictJarVerifier;->getCertificateChains(Ljava/lang/String;)[[Ljava/security/cert/Certificate;
+HSPLandroid/util/jar/StrictJarVerifier;->initEntry(Ljava/lang/String;)Landroid/util/jar/StrictJarVerifier$VerifierEntry;
+HSPLandroid/util/jar/StrictJarVerifier;->isSignedJar()Z
+HSPLandroid/util/jar/StrictJarVerifier;->readCertificates()Z
+HSPLandroid/util/jar/StrictJarVerifier;->verify(Ljava/util/jar/Attributes;Ljava/lang/String;[BIIZZ)Z
+HSPLandroid/util/jar/StrictJarVerifier;->verifyBytes([B[B)[Ljava/security/cert/Certificate;
+HSPLandroid/util/jar/StrictJarVerifier;->verifyCertificate(Ljava/lang/String;)V
+HSPLandroid/util/jar/StrictJarVerifier;->verifyMessageDigest([B[B)Z
+HSPLandroid/util/proto/EncodedBuffer;-><init>(I)V
+HSPLandroid/util/proto/EncodedBuffer;->editRawFixed32(II)V
+HPLandroid/util/proto/EncodedBuffer;->getBytes(I)[B
+HSPLandroid/util/proto/EncodedBuffer;->getRawFixed32At(I)I
+HSPLandroid/util/proto/EncodedBuffer;->getRawVarint32Size(I)I
+PLandroid/util/proto/EncodedBuffer;->getReadPos()I
+PLandroid/util/proto/EncodedBuffer;->getReadableSize()I
+HSPLandroid/util/proto/EncodedBuffer;->getWritePos()I
+HSPLandroid/util/proto/EncodedBuffer;->nextWriteBuffer()V
+HPLandroid/util/proto/EncodedBuffer;->readRawByte()B
+HPLandroid/util/proto/EncodedBuffer;->readRawFixed32()I
+HPLandroid/util/proto/EncodedBuffer;->readRawUnsigned()J
+PLandroid/util/proto/EncodedBuffer;->rewindRead()V
+HPLandroid/util/proto/EncodedBuffer;->rewindWriteTo(I)V
+HPLandroid/util/proto/EncodedBuffer;->skipRead(I)V
+HPLandroid/util/proto/EncodedBuffer;->startEditing()V
+HPLandroid/util/proto/EncodedBuffer;->writeFromThisBuffer(II)V
+HSPLandroid/util/proto/EncodedBuffer;->writeRawBuffer([B)V
+HSPLandroid/util/proto/EncodedBuffer;->writeRawBuffer([BII)V
+HSPLandroid/util/proto/EncodedBuffer;->writeRawByte(B)V
+HSPLandroid/util/proto/EncodedBuffer;->writeRawFixed32(I)V
+HPLandroid/util/proto/EncodedBuffer;->writeRawFixed64(J)V
+HSPLandroid/util/proto/EncodedBuffer;->writeRawVarint32(I)V
+HSPLandroid/util/proto/EncodedBuffer;->writeRawVarint64(J)V
+HPLandroid/util/proto/EncodedBuffer;->writeRawZigZag32(I)V
+HPLandroid/util/proto/EncodedBuffer;->writeRawZigZag64(J)V
+PLandroid/util/proto/EncodedBuffer;->zigZag32(I)I
+PLandroid/util/proto/EncodedBuffer;->zigZag64(J)J
+HSPLandroid/util/proto/ProtoInputStream;-><init>(Ljava/io/InputStream;)V
+HSPLandroid/util/proto/ProtoInputStream;-><init>(Ljava/io/InputStream;I)V
+HSPLandroid/util/proto/ProtoInputStream;->assertFieldNumber(J)V
+HSPLandroid/util/proto/ProtoInputStream;->assertFreshData()V
+HSPLandroid/util/proto/ProtoInputStream;->assertWireType(I)V
+HSPLandroid/util/proto/ProtoInputStream;->checkPacked(J)V
+HSPLandroid/util/proto/ProtoInputStream;->end(J)V
+HSPLandroid/util/proto/ProtoInputStream;->fillBuffer()V
+PLandroid/util/proto/ProtoInputStream;->getFieldNumber()I
+HSPLandroid/util/proto/ProtoInputStream;->incOffset(I)V
+HSPLandroid/util/proto/ProtoInputStream;->nextField()I
+HSPLandroid/util/proto/ProtoInputStream;->nextField(J)Z
+HSPLandroid/util/proto/ProtoInputStream;->readBoolean(J)Z
+HPLandroid/util/proto/ProtoInputStream;->readFixed32()I
+HPLandroid/util/proto/ProtoInputStream;->readFloat(J)F
+HSPLandroid/util/proto/ProtoInputStream;->readInt(J)I
+HSPLandroid/util/proto/ProtoInputStream;->readLong(J)J
+HSPLandroid/util/proto/ProtoInputStream;->readRawString(I)Ljava/lang/String;
+HSPLandroid/util/proto/ProtoInputStream;->readString(J)Ljava/lang/String;
+HSPLandroid/util/proto/ProtoInputStream;->readTag()V
+HSPLandroid/util/proto/ProtoInputStream;->readVarint()J
+HSPLandroid/util/proto/ProtoInputStream;->start(J)J
+HSPLandroid/util/proto/ProtoOutputStream;-><init>()V
+HSPLandroid/util/proto/ProtoOutputStream;-><init>(I)V
+PLandroid/util/proto/ProtoOutputStream;-><init>(Ljava/io/FileDescriptor;)V
+HSPLandroid/util/proto/ProtoOutputStream;-><init>(Ljava/io/OutputStream;)V
+HSPLandroid/util/proto/ProtoOutputStream;->assertNotCompacted()V
+PLandroid/util/proto/ProtoOutputStream;->compactIfNecessary()V
+HPLandroid/util/proto/ProtoOutputStream;->compactSizes(I)V
+HPLandroid/util/proto/ProtoOutputStream;->editEncodedSize(I)I
+HSPLandroid/util/proto/ProtoOutputStream;->end(J)V
+HSPLandroid/util/proto/ProtoOutputStream;->endObjectImpl(JZ)V
+PLandroid/util/proto/ProtoOutputStream;->flush()V
+PLandroid/util/proto/ProtoOutputStream;->getBytes()[B
+HSPLandroid/util/proto/ProtoOutputStream;->getTagSize(I)I
+PLandroid/util/proto/ProtoOutputStream;->readRawTag()I
+HSPLandroid/util/proto/ProtoOutputStream;->start(J)J
+HSPLandroid/util/proto/ProtoOutputStream;->startObjectImpl(IZ)J
+HPLandroid/util/proto/ProtoOutputStream;->write(JD)V
+HPLandroid/util/proto/ProtoOutputStream;->write(JF)V
+HSPLandroid/util/proto/ProtoOutputStream;->write(JI)V
+HSPLandroid/util/proto/ProtoOutputStream;->write(JJ)V
+HSPLandroid/util/proto/ProtoOutputStream;->write(JLjava/lang/String;)V
+HPLandroid/util/proto/ProtoOutputStream;->write(JZ)V
+HPLandroid/util/proto/ProtoOutputStream;->write(J[B)V
+PLandroid/util/proto/ProtoOutputStream;->writeBoolImpl(IZ)V
+PLandroid/util/proto/ProtoOutputStream;->writeBytesImpl(I[B)V
+HPLandroid/util/proto/ProtoOutputStream;->writeDoubleImpl(ID)V
+PLandroid/util/proto/ProtoOutputStream;->writeFloatImpl(IF)V
+HSPLandroid/util/proto/ProtoOutputStream;->writeInt32Impl(II)V
+HSPLandroid/util/proto/ProtoOutputStream;->writeInt64Impl(IJ)V
+HSPLandroid/util/proto/ProtoOutputStream;->writeKnownLengthHeader(II)V
+PLandroid/util/proto/ProtoOutputStream;->writeObjectImpl(I[B)V
+HPLandroid/util/proto/ProtoOutputStream;->writeRepeatedEnumImpl(II)V
+HPLandroid/util/proto/ProtoOutputStream;->writeRepeatedInt64Impl(IJ)V
+PLandroid/util/proto/ProtoOutputStream;->writeRepeatedObjectImpl(I[B)V
+HPLandroid/util/proto/ProtoOutputStream;->writeSInt32Impl(II)V
+HPLandroid/util/proto/ProtoOutputStream;->writeSInt64Impl(IJ)V
+HSPLandroid/util/proto/ProtoOutputStream;->writeStringImpl(ILjava/lang/String;)V
+HSPLandroid/util/proto/ProtoOutputStream;->writeTag(II)V
+HSPLandroid/util/proto/ProtoOutputStream;->writeUnsignedVarintFromSignedInt(I)V
+HSPLandroid/util/proto/ProtoOutputStream;->writeUtf8String(ILjava/lang/String;)V
+HSPLandroid/util/proto/ProtoStream;-><init>()V
+HSPLandroid/util/proto/ProtoStream;->getDepthFromToken(J)I
+HSPLandroid/util/proto/ProtoStream;->getOffsetFromToken(J)I
+HSPLandroid/util/proto/ProtoStream;->getRepeatedFromToken(J)Z
+HSPLandroid/util/proto/ProtoStream;->makeToken(IZIII)J
+HPLandroid/util/proto/ProtoUtils;->toAggStatsProto(Landroid/util/proto/ProtoOutputStream;JJJJ)V
+HPLandroid/util/proto/ProtoUtils;->toDuration(Landroid/util/proto/ProtoOutputStream;JJJ)V
+HPLandroid/util/proto/ProtoUtils;->writeBitWiseFlagsToProtoEnum(Landroid/util/proto/ProtoOutputStream;JI[I[I)V
+HSPLandroid/view/-$$Lambda$1kvF4JuyM42-wmyDVPAIYdPz1jE;->run()V
+HPLandroid/view/-$$Lambda$FocusFinder$FocusSorter$h0f2ZYL6peSaaEeCCkAoYs_YZvU;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HPLandroid/view/-$$Lambda$FocusFinder$FocusSorter$kW7K1t9q7Y62V38r-7g6xRzqqq8;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLandroid/view/-$$Lambda$InsetsController$HI9QZ2HvGm6iykc-WONz2KPG61Q;-><init>(Landroid/view/InsetsController;)V
+HPLandroid/view/-$$Lambda$SurfaceView$SyyzxOgxKwZMRgiiTGcRYbOU5JY;-><init>(Landroid/view/SurfaceView;)V
+HPLandroid/view/-$$Lambda$SurfaceView$SyyzxOgxKwZMRgiiTGcRYbOU5JY;->run()V
+HPLandroid/view/-$$Lambda$SurfaceView$w68OV7dB_zKVNsA-r0IrAUtyWas;->onPreDraw()Z
+HPLandroid/view/-$$Lambda$TextureView$WAq1rgfoZeDSt6cBQga7iQDymYk;-><init>(Landroid/view/TextureView;)V
+HPLandroid/view/-$$Lambda$TextureView$WAq1rgfoZeDSt6cBQga7iQDymYk;->onFrameAvailable(Landroid/graphics/SurfaceTexture;)V
+HPLandroid/view/-$$Lambda$ThreadedRenderer$ydBD-R1iP5u-97XYakm-jKvC1b4;->onFrameDraw(J)V
HSPLandroid/view/-$$Lambda$ViewRootImpl$7A_3tkr_Kw4TZAeIUGVlOoTcZhg;-><init>(Landroid/view/ViewRootImpl;Ljava/util/ArrayList;)V
HSPLandroid/view/-$$Lambda$ViewRootImpl$7A_3tkr_Kw4TZAeIUGVlOoTcZhg;->run()V
+HPLandroid/view/-$$Lambda$ViewRootImpl$IReiNMSbDakZSGbIZuL_ifaFWn8;->onFrameDraw(J)V
+PLandroid/view/-$$Lambda$ViewRootImpl$YBiqAhbCbXVPSKdbE3K4rH2gpxI;-><init>(Landroid/view/ViewRootImpl;Landroid/os/Handler;Ljava/util/ArrayList;)V
HSPLandroid/view/-$$Lambda$ViewRootImpl$YBiqAhbCbXVPSKdbE3K4rH2gpxI;->onFrameComplete(J)V
+HPLandroid/view/-$$Lambda$WlJa6OPA72p3gYtA3nVKC7Z1tGY;-><init>(Landroid/view/View;)V
+HSPLandroid/view/-$$Lambda$WlJa6OPA72p3gYtA3nVKC7Z1tGY;->run()V
+HSPLandroid/view/-$$Lambda$cZhmLzK8aetUdx4VlP9w5jR7En0;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/view/AbsSavedState$2;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/view/AbsSavedState;
+HSPLandroid/view/AbsSavedState$2;->createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Ljava/lang/Object;
+HSPLandroid/view/AbsSavedState;->getSuperState()Landroid/os/Parcelable;
+HSPLandroid/view/AbsSavedState;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/AppTransitionAnimationSpec;-><init>(ILandroid/graphics/GraphicBuffer;Landroid/graphics/Rect;)V
+HSPLandroid/view/BatchedInputEventReceiver$BatchedInputRunnable;-><init>(Landroid/view/BatchedInputEventReceiver;)V
+HSPLandroid/view/BatchedInputEventReceiver$BatchedInputRunnable;-><init>(Landroid/view/BatchedInputEventReceiver;Landroid/view/BatchedInputEventReceiver$1;)V
+HSPLandroid/view/BatchedInputEventReceiver;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;Landroid/view/Choreographer;)V
HSPLandroid/view/Choreographer$1;->initialValue()Landroid/view/Choreographer;
HSPLandroid/view/Choreographer$1;->initialValue()Ljava/lang/Object;
HSPLandroid/view/Choreographer$2;->initialValue()Landroid/view/Choreographer;
@@ -7030,72 +23898,130 @@ HSPLandroid/view/Choreographer$CallbackQueue;->extractDueCallbacksLocked(J)Landr
HSPLandroid/view/Choreographer$CallbackQueue;->removeCallbacksLocked(Ljava/lang/Object;Ljava/lang/Object;)V
HSPLandroid/view/Choreographer$CallbackRecord;-><init>()V
HSPLandroid/view/Choreographer$CallbackRecord;-><init>(Landroid/view/Choreographer$1;)V
+HSPLandroid/view/Choreographer$CallbackRecord;->run(J)V
HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;-><init>(Landroid/view/Choreographer;Landroid/os/Looper;I)V
HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;->onVsync(JJI)V
HSPLandroid/view/Choreographer$FrameDisplayEventReceiver;->run()V
HSPLandroid/view/Choreographer$FrameHandler;-><init>(Landroid/view/Choreographer;Landroid/os/Looper;)V
-PLandroid/view/Choreographer$FrameHandler;->handleMessage(Landroid/os/Message;)V
+HSPLandroid/view/Choreographer$FrameHandler;->handleMessage(Landroid/os/Message;)V
HSPLandroid/view/Choreographer;-><init>(Landroid/os/Looper;I)V
HSPLandroid/view/Choreographer;-><init>(Landroid/os/Looper;ILandroid/view/Choreographer$1;)V
+PLandroid/view/Choreographer;->access$102(Landroid/view/Choreographer;)Landroid/view/Choreographer;
HSPLandroid/view/Choreographer;->access$400(Landroid/view/Choreographer;)Landroid/view/Choreographer$FrameHandler;
+HSPLandroid/view/Choreographer;->access$500()Ljava/lang/Object;
HSPLandroid/view/Choreographer;->access$600(Landroid/view/Choreographer;JLjava/lang/Object;Ljava/lang/Object;)Landroid/view/Choreographer$CallbackRecord;
+HSPLandroid/view/Choreographer;->access$700(Landroid/view/Choreographer;Landroid/view/Choreographer$CallbackRecord;)V
HSPLandroid/view/Choreographer;->doCallbacks(IJ)V
HSPLandroid/view/Choreographer;->doFrame(JI)V
-PLandroid/view/Choreographer;->doScheduleVsync()V
+HSPLandroid/view/Choreographer;->doScheduleCallback(I)V
+HSPLandroid/view/Choreographer;->doScheduleVsync()V
+PLandroid/view/Choreographer;->getFrameIntervalNanos()J
+PLandroid/view/Choreographer;->getFrameTime()J
HSPLandroid/view/Choreographer;->getFrameTimeNanos()J
HSPLandroid/view/Choreographer;->getInstance()Landroid/view/Choreographer;
+PLandroid/view/Choreographer;->getMainThreadInstance()Landroid/view/Choreographer;
HSPLandroid/view/Choreographer;->getRefreshRate()F
HSPLandroid/view/Choreographer;->getSfInstance()Landroid/view/Choreographer;
HSPLandroid/view/Choreographer;->isRunningOnLooperThreadLocked()Z
HSPLandroid/view/Choreographer;->obtainCallbackLocked(JLjava/lang/Object;Ljava/lang/Object;)Landroid/view/Choreographer$CallbackRecord;
-HSPLandroid/view/Choreographer;->postCallback(ILjava/lang/Runnable;Ljava/lang/Object;)V
-HSPLandroid/view/Choreographer;->postCallbackDelayed(ILjava/lang/Runnable;Ljava/lang/Object;J)V
+PLandroid/view/Choreographer;->postCallback(ILjava/lang/Runnable;Ljava/lang/Object;)V
+PLandroid/view/Choreographer;->postCallbackDelayed(ILjava/lang/Runnable;Ljava/lang/Object;J)V
HSPLandroid/view/Choreographer;->postCallbackDelayedInternal(ILjava/lang/Object;Ljava/lang/Object;J)V
HSPLandroid/view/Choreographer;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V
+HSPLandroid/view/Choreographer;->postFrameCallbackDelayed(Landroid/view/Choreographer$FrameCallback;J)V
+HSPLandroid/view/Choreographer;->recycleCallbackLocked(Landroid/view/Choreographer$CallbackRecord;)V
+PLandroid/view/Choreographer;->removeCallbacks(ILjava/lang/Runnable;Ljava/lang/Object;)V
HSPLandroid/view/Choreographer;->removeCallbacksInternal(ILjava/lang/Object;Ljava/lang/Object;)V
+HSPLandroid/view/Choreographer;->removeFrameCallback(Landroid/view/Choreographer$FrameCallback;)V
HSPLandroid/view/Choreographer;->scheduleFrameLocked(J)V
HSPLandroid/view/Choreographer;->scheduleVsyncLocked()V
HSPLandroid/view/Choreographer;->setFPSDivisor(I)V
+HPLandroid/view/CompositionSamplingListener;->dispatchOnSampleCollected(Landroid/view/CompositionSamplingListener;F)V
+HPLandroid/view/CompositionSamplingListener;->lambda$dispatchOnSampleCollected$0(Landroid/view/CompositionSamplingListener;F)V
+HPLandroid/view/CompositionSamplingListener;->register(Landroid/view/CompositionSamplingListener;ILandroid/view/SurfaceControl;Landroid/graphics/Rect;)V
+HPLandroid/view/CompositionSamplingListener;->unregister(Landroid/view/CompositionSamplingListener;)V
HSPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;I)V
+HPLandroid/view/ContextThemeWrapper;-><init>(Landroid/content/Context;Landroid/content/res/Resources$Theme;)V
+HSPLandroid/view/ContextThemeWrapper;->applyOverrideConfiguration(Landroid/content/res/Configuration;)V
+HSPLandroid/view/ContextThemeWrapper;->getAssets()Landroid/content/res/AssetManager;
+HPLandroid/view/ContextThemeWrapper;->getOverrideConfiguration()Landroid/content/res/Configuration;
HSPLandroid/view/ContextThemeWrapper;->getResources()Landroid/content/res/Resources;
+PLandroid/view/ContextThemeWrapper;->getResourcesInternal()Landroid/content/res/Resources;
HSPLandroid/view/ContextThemeWrapper;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
HSPLandroid/view/ContextThemeWrapper;->getTheme()Landroid/content/res/Resources$Theme;
HSPLandroid/view/ContextThemeWrapper;->initializeTheme()V
HSPLandroid/view/ContextThemeWrapper;->onApplyThemeResource(Landroid/content/res/Resources$Theme;IZ)V
+HPLandroid/view/ContextThemeWrapper;->setTheme(I)V
HSPLandroid/view/Display$HdrCapabilities$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/Display$HdrCapabilities;
HSPLandroid/view/Display$HdrCapabilities$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/view/Display$HdrCapabilities;-><init>(Landroid/os/Parcel;)V
HSPLandroid/view/Display$HdrCapabilities;-><init>(Landroid/os/Parcel;Landroid/view/Display$1;)V
+HSPLandroid/view/Display$HdrCapabilities;-><init>([IFFF)V
+HSPLandroid/view/Display$HdrCapabilities;->getSupportedHdrTypes()[I
HSPLandroid/view/Display$HdrCapabilities;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/view/Display$HdrCapabilities;->toString()Ljava/lang/String;
+HSPLandroid/view/Display$HdrCapabilities;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/view/Display$Mode$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/Display$Mode;
HSPLandroid/view/Display$Mode$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/view/Display$Mode;-><init>(IIIF)V
HSPLandroid/view/Display$Mode;-><init>(Landroid/os/Parcel;)V
HSPLandroid/view/Display$Mode;-><init>(Landroid/os/Parcel;Landroid/view/Display$1;)V
+HSPLandroid/view/Display$Mode;->equals(Ljava/lang/Object;)Z
HSPLandroid/view/Display$Mode;->getModeId()I
+HSPLandroid/view/Display$Mode;->getPhysicalHeight()I
+HSPLandroid/view/Display$Mode;->getPhysicalWidth()I
HSPLandroid/view/Display$Mode;->getRefreshRate()F
+HSPLandroid/view/Display$Mode;->matches(IIF)Z
+HSPLandroid/view/Display$Mode;->toString()Ljava/lang/String;
+HSPLandroid/view/Display$Mode;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILandroid/view/DisplayInfo;Landroid/content/res/Resources;)V
HSPLandroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILandroid/view/DisplayInfo;Landroid/view/DisplayAdjustments;)V
HSPLandroid/view/Display;-><init>(Landroid/hardware/display/DisplayManagerGlobal;ILandroid/view/DisplayInfo;Landroid/view/DisplayAdjustments;Landroid/content/res/Resources;)V
+HPLandroid/view/Display;->getAppVsyncOffsetNanos()J
+HSPLandroid/view/Display;->getCurrentSizeRange(Landroid/graphics/Point;Landroid/graphics/Point;)V
+HSPLandroid/view/Display;->getCutout()Landroid/view/DisplayCutout;
HSPLandroid/view/Display;->getDisplayAdjustments()Landroid/view/DisplayAdjustments;
HSPLandroid/view/Display;->getDisplayId()I
+HSPLandroid/view/Display;->getDisplayInfo(Landroid/view/DisplayInfo;)Z
+HSPLandroid/view/Display;->getFlags()I
+HSPLandroid/view/Display;->getHdrCapabilities()Landroid/view/Display$HdrCapabilities;
HSPLandroid/view/Display;->getHeight()I
+HSPLandroid/view/Display;->getMaximumSizeDimension()I
HSPLandroid/view/Display;->getMetrics(Landroid/util/DisplayMetrics;)V
+HSPLandroid/view/Display;->getMode()Landroid/view/Display$Mode;
+HPLandroid/view/Display;->getPresentationDeadlineNanos()J
HSPLandroid/view/Display;->getRealMetrics(Landroid/util/DisplayMetrics;)V
HSPLandroid/view/Display;->getRealSize(Landroid/graphics/Point;)V
+HSPLandroid/view/Display;->getRectSize(Landroid/graphics/Rect;)V
HSPLandroid/view/Display;->getRefreshRate()F
HSPLandroid/view/Display;->getRotation()I
HSPLandroid/view/Display;->getSize(Landroid/graphics/Point;)V
HSPLandroid/view/Display;->getState()I
+HSPLandroid/view/Display;->getSupportedModes()[Landroid/view/Display$Mode;
+HSPLandroid/view/Display;->getType()I
HSPLandroid/view/Display;->getWidth()I
+HSPLandroid/view/Display;->hasAccess(I)Z
+HSPLandroid/view/Display;->hasAccess(IIII)Z
+HSPLandroid/view/Display;->isDozeState(I)Z
+HSPLandroid/view/Display;->isSuspendedState(I)Z
HSPLandroid/view/Display;->isValid()Z
+HSPLandroid/view/Display;->isWideColorGamut()Z
+HSPLandroid/view/Display;->stateToString(I)Ljava/lang/String;
+HSPLandroid/view/Display;->toString()Ljava/lang/String;
+HSPLandroid/view/Display;->typeToString(I)Ljava/lang/String;
HSPLandroid/view/Display;->updateCachedAppSizeIfNeededLocked()V
HSPLandroid/view/Display;->updateDisplayInfoLocked()V
HSPLandroid/view/DisplayAddress$Physical$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayAddress$Physical;
HSPLandroid/view/DisplayAddress$Physical$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/view/DisplayAddress$Physical;-><init>(J)V
HSPLandroid/view/DisplayAddress$Physical;-><init>(JLandroid/view/DisplayAddress$1;)V
+HSPLandroid/view/DisplayAddress$Physical;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/DisplayAddress$Physical;->getModel()Ljava/lang/Long;
+HSPLandroid/view/DisplayAddress$Physical;->getPort()B
+HSPLandroid/view/DisplayAddress$Physical;->toString()Ljava/lang/String;
+HSPLandroid/view/DisplayAddress$Physical;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/view/DisplayAddress;-><init>()V
+HSPLandroid/view/DisplayAddress;->fromPhysicalDisplayId(J)Landroid/view/DisplayAddress$Physical;
HSPLandroid/view/DisplayAdjustments;-><init>()V
HSPLandroid/view/DisplayAdjustments;-><init>(Landroid/content/res/Configuration;)V
HSPLandroid/view/DisplayAdjustments;-><init>(Landroid/view/DisplayAdjustments;)V
@@ -7104,194 +24030,1163 @@ HSPLandroid/view/DisplayAdjustments;->getCompatibilityInfo()Landroid/content/res
HSPLandroid/view/DisplayAdjustments;->getConfiguration()Landroid/content/res/Configuration;
HSPLandroid/view/DisplayAdjustments;->hashCode()I
HSPLandroid/view/DisplayAdjustments;->setCompatibilityInfo(Landroid/content/res/CompatibilityInfo;)V
+PLandroid/view/DisplayCutout$Bounds;->access$500(Landroid/view/DisplayCutout$Bounds;I)Landroid/graphics/Rect;
+HPLandroid/view/DisplayCutout$Bounds;->getRect(I)Landroid/graphics/Rect;
+HSPLandroid/view/DisplayCutout$Bounds;->toString()Ljava/lang/String;
HSPLandroid/view/DisplayCutout$ParcelableWrapper$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayCutout$ParcelableWrapper;
HSPLandroid/view/DisplayCutout$ParcelableWrapper$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/DisplayCutout$ParcelableWrapper;-><init>()V
HSPLandroid/view/DisplayCutout$ParcelableWrapper;-><init>(Landroid/view/DisplayCutout;)V
HSPLandroid/view/DisplayCutout$ParcelableWrapper;->equals(Ljava/lang/Object;)Z
HSPLandroid/view/DisplayCutout$ParcelableWrapper;->get()Landroid/view/DisplayCutout;
HSPLandroid/view/DisplayCutout$ParcelableWrapper;->readCutoutFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayCutout;
HSPLandroid/view/DisplayCutout$ParcelableWrapper;->readFromParcel(Landroid/os/Parcel;)V
+PLandroid/view/DisplayCutout$ParcelableWrapper;->set(Landroid/view/DisplayCutout$ParcelableWrapper;)V
+PLandroid/view/DisplayCutout$ParcelableWrapper;->set(Landroid/view/DisplayCutout;)V
+HSPLandroid/view/DisplayCutout$ParcelableWrapper;->writeCutoutToParcel(Landroid/view/DisplayCutout;Landroid/os/Parcel;I)V
+HPLandroid/view/DisplayCutout$ParcelableWrapper;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/DisplayCutout;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HSPLandroid/view/DisplayCutout;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/DisplayCutout;->fromResourcesRectApproximation(Landroid/content/res/Resources;II)Landroid/view/DisplayCutout;
+HSPLandroid/view/DisplayCutout;->fromSpec(Ljava/lang/String;IIF)Landroid/view/DisplayCutout;
+HSPLandroid/view/DisplayCutout;->getSafeInsetBottom()I
+HSPLandroid/view/DisplayCutout;->getSafeInsetLeft()I
+HSPLandroid/view/DisplayCutout;->getSafeInsetRight()I
+HSPLandroid/view/DisplayCutout;->getSafeInsetTop()I
+PLandroid/view/DisplayCutout;->getSafeInsets()Landroid/graphics/Rect;
+HSPLandroid/view/DisplayCutout;->isEmpty()Z
+HSPLandroid/view/DisplayCutout;->pathAndDisplayCutoutFromSpec(Ljava/lang/String;IIF)Landroid/util/Pair;
+HSPLandroid/view/DisplayCutout;->toString()Ljava/lang/String;
HSPLandroid/view/DisplayEventReceiver;-><init>(Landroid/os/Looper;II)V
+HSPLandroid/view/DisplayEventReceiver;->dispatchConfigChanged(JJI)V
HSPLandroid/view/DisplayEventReceiver;->dispatchVsync(JJI)V
+HPLandroid/view/DisplayEventReceiver;->dispose(Z)V
+HPLandroid/view/DisplayEventReceiver;->finalize()V
HSPLandroid/view/DisplayEventReceiver;->scheduleVsync()V
HSPLandroid/view/DisplayInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/DisplayInfo;
HSPLandroid/view/DisplayInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/DisplayInfo;-><init>()V
HSPLandroid/view/DisplayInfo;-><init>(Landroid/os/Parcel;)V
HSPLandroid/view/DisplayInfo;-><init>(Landroid/os/Parcel;Landroid/view/DisplayInfo$1;)V
+HSPLandroid/view/DisplayInfo;-><init>(Landroid/view/DisplayInfo;)V
+HSPLandroid/view/DisplayInfo;->copyFrom(Landroid/view/DisplayInfo;)V
+PLandroid/view/DisplayInfo;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLandroid/view/DisplayInfo;->equals(Landroid/view/DisplayInfo;)Z
+HSPLandroid/view/DisplayInfo;->findDefaultModeByRefreshRate(F)I
HSPLandroid/view/DisplayInfo;->findMode(I)Landroid/view/Display$Mode;
+HSPLandroid/view/DisplayInfo;->flagsToString(I)Ljava/lang/String;
+HSPLandroid/view/DisplayInfo;->getAppMetrics(Landroid/util/DisplayMetrics;)V
+HSPLandroid/view/DisplayInfo;->getAppMetrics(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;)V
HSPLandroid/view/DisplayInfo;->getAppMetrics(Landroid/util/DisplayMetrics;Landroid/view/DisplayAdjustments;)V
+HSPLandroid/view/DisplayInfo;->getDefaultMode()Landroid/view/Display$Mode;
+HSPLandroid/view/DisplayInfo;->getDefaultRefreshRates()[F
+HSPLandroid/view/DisplayInfo;->getLogicalMetrics(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;)V
HSPLandroid/view/DisplayInfo;->getMetricsWithSize(Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;Landroid/content/res/Configuration;II)V
HSPLandroid/view/DisplayInfo;->getMode()Landroid/view/Display$Mode;
+PLandroid/view/DisplayInfo;->getNaturalHeight()I
+PLandroid/view/DisplayInfo;->getNaturalWidth()I
+HSPLandroid/view/DisplayInfo;->hasAccess(I)Z
+HSPLandroid/view/DisplayInfo;->isHdr()Z
+HSPLandroid/view/DisplayInfo;->isWideColorGamut()Z
HSPLandroid/view/DisplayInfo;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/view/DisplayInfo;->toString()Ljava/lang/String;
+HSPLandroid/view/DisplayInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/DisplayListCanvas;-><init>(J)V
+HSPLandroid/view/FocusFinder$1;->initialValue()Landroid/view/FocusFinder;
+HSPLandroid/view/FocusFinder$1;->initialValue()Ljava/lang/Object;
+HPLandroid/view/FocusFinder$FocusSorter;->lambda$new$0$FocusFinder$FocusSorter(Landroid/view/View;Landroid/view/View;)I
+HPLandroid/view/FocusFinder$FocusSorter;->lambda$new$1$FocusFinder$FocusSorter(Landroid/view/View;Landroid/view/View;)I
+HSPLandroid/view/FocusFinder$FocusSorter;->sort([Landroid/view/View;IILandroid/view/ViewGroup;Z)V
+HSPLandroid/view/FocusFinder$UserSpecifiedFocusComparator;-><init>(Landroid/view/FocusFinder$UserSpecifiedFocusComparator$NextFocusGetter;)V
+HSPLandroid/view/FocusFinder;-><init>()V
+HSPLandroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;
+HSPLandroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;I)Landroid/view/View;
+HSPLandroid/view/FocusFinder;->findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;ILjava/util/ArrayList;)Landroid/view/View;
+HSPLandroid/view/FocusFinder;->findNextFocusInAbsoluteDirection(Ljava/util/ArrayList;Landroid/view/ViewGroup;Landroid/view/View;Landroid/graphics/Rect;I)Landroid/view/View;
+HPLandroid/view/FocusFinder;->findNextUserSpecifiedFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;
+HSPLandroid/view/FocusFinder;->getEffectiveRoot(Landroid/view/ViewGroup;Landroid/view/View;)Landroid/view/ViewGroup;
+HSPLandroid/view/FocusFinder;->getInstance()Landroid/view/FocusFinder;
+HPLandroid/view/FocusFinder;->isBetterCandidate(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
+HPLandroid/view/FocusFinder;->isCandidate(Landroid/graphics/Rect;Landroid/graphics/Rect;I)Z
+HSPLandroid/view/FrameMetrics;-><init>()V
+HSPLandroid/view/FrameMetrics;->getMetric(I)J
+HSPLandroid/view/FrameMetricsObserver;-><init>(Landroid/view/Window;Landroid/os/Looper;Landroid/view/Window$OnFrameMetricsAvailableListener;)V
+HSPLandroid/view/FrameMetricsObserver;->notifyDataAvailable(I)V
+HSPLandroid/view/GestureDetector$GestureHandler;-><init>(Landroid/view/GestureDetector;Landroid/os/Handler;)V
+PLandroid/view/GestureDetector$GestureHandler;->handleMessage(Landroid/os/Message;)V
HSPLandroid/view/GestureDetector$SimpleOnGestureListener;-><init>()V
+PLandroid/view/GestureDetector$SimpleOnGestureListener;->onDoubleTap(Landroid/view/MotionEvent;)Z
+PLandroid/view/GestureDetector$SimpleOnGestureListener;->onDoubleTapEvent(Landroid/view/MotionEvent;)Z
+PLandroid/view/GestureDetector$SimpleOnGestureListener;->onDown(Landroid/view/MotionEvent;)Z
+HPLandroid/view/GestureDetector$SimpleOnGestureListener;->onFling(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z
+PLandroid/view/GestureDetector$SimpleOnGestureListener;->onLongPress(Landroid/view/MotionEvent;)V
+HPLandroid/view/GestureDetector$SimpleOnGestureListener;->onScroll(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z
+PLandroid/view/GestureDetector$SimpleOnGestureListener;->onShowPress(Landroid/view/MotionEvent;)V
+PLandroid/view/GestureDetector$SimpleOnGestureListener;->onSingleTapConfirmed(Landroid/view/MotionEvent;)Z
+HPLandroid/view/GestureDetector$SimpleOnGestureListener;->onSingleTapUp(Landroid/view/MotionEvent;)Z
+HSPLandroid/view/GestureDetector;-><init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;)V
HSPLandroid/view/GestureDetector;-><init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;)V
+PLandroid/view/GestureDetector;->access$000(Landroid/view/GestureDetector;)Landroid/view/MotionEvent;
+PLandroid/view/GestureDetector;->access$100(Landroid/view/GestureDetector;)Landroid/view/GestureDetector$OnGestureListener;
+PLandroid/view/GestureDetector;->access$200(Landroid/view/GestureDetector;I)V
+PLandroid/view/GestureDetector;->access$300(Landroid/view/GestureDetector;)V
+PLandroid/view/GestureDetector;->access$400(Landroid/view/GestureDetector;)Landroid/view/GestureDetector$OnDoubleTapListener;
+PLandroid/view/GestureDetector;->access$500(Landroid/view/GestureDetector;)Z
+PLandroid/view/GestureDetector;->access$602(Landroid/view/GestureDetector;Z)Z
+PLandroid/view/GestureDetector;->cancel()V
+PLandroid/view/GestureDetector;->cancelTaps()V
+PLandroid/view/GestureDetector;->dispatchLongPress()V
HSPLandroid/view/GestureDetector;->init(Landroid/content/Context;)V
+PLandroid/view/GestureDetector;->isConsideredDoubleTap(Landroid/view/MotionEvent;Landroid/view/MotionEvent;Landroid/view/MotionEvent;)Z
+HPLandroid/view/GestureDetector;->onTouchEvent(Landroid/view/MotionEvent;)Z
+HPLandroid/view/GestureDetector;->recordGestureClassification(I)V
HSPLandroid/view/GestureDetector;->setContextClickListener(Landroid/view/GestureDetector$OnContextClickListener;)V
+HPLandroid/view/GestureDetector;->setIsLongpressEnabled(Z)V
HSPLandroid/view/GestureDetector;->setOnDoubleTapListener(Landroid/view/GestureDetector$OnDoubleTapListener;)V
+HPLandroid/view/GestureExclusionTracker$GestureExclusionViewInfo;-><init>(Landroid/view/View;)V
+HSPLandroid/view/GestureExclusionTracker$GestureExclusionViewInfo;->getView()Landroid/view/View;
+HSPLandroid/view/GestureExclusionTracker$GestureExclusionViewInfo;->update()I
HSPLandroid/view/GestureExclusionTracker;-><init>()V
+HSPLandroid/view/GestureExclusionTracker;->computeChangedRects()Ljava/util/List;
+HSPLandroid/view/GestureExclusionTracker;->updateRectsForView(Landroid/view/View;)V
HSPLandroid/view/Gravity;->apply(IIILandroid/graphics/Rect;IILandroid/graphics/Rect;)V
+HPLandroid/view/Gravity;->apply(IIILandroid/graphics/Rect;Landroid/graphics/Rect;)V
HSPLandroid/view/Gravity;->apply(IIILandroid/graphics/Rect;Landroid/graphics/Rect;I)V
+HPLandroid/view/Gravity;->applyDisplay(ILandroid/graphics/Rect;Landroid/graphics/Rect;)V
HSPLandroid/view/Gravity;->getAbsoluteGravity(II)I
+PLandroid/view/Gravity;->isHorizontal(I)Z
+PLandroid/view/Gravity;->isVertical(I)Z
+PLandroid/view/Gravity;->toString(I)Ljava/lang/String;
+HSPLandroid/view/HandlerActionQueue$HandlerAction;->matches(Ljava/lang/Runnable;)Z
+PLandroid/view/HandlerActionQueue;-><init>()V
HSPLandroid/view/HandlerActionQueue;->executeActions(Landroid/os/Handler;)V
+HSPLandroid/view/HandlerActionQueue;->post(Ljava/lang/Runnable;)V
+HSPLandroid/view/HandlerActionQueue;->postDelayed(Ljava/lang/Runnable;J)V
HSPLandroid/view/HandlerActionQueue;->removeCallbacks(Ljava/lang/Runnable;)V
+PLandroid/view/IApplicationToken$Stub;-><init>()V
+PLandroid/view/IApplicationToken$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IDisplayWindowRotationCallback$Stub;-><init>()V
+PLandroid/view/IDockedStackListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/IDockedStackListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IDockedStackListener$Stub$Proxy;->onAdjustedForImeChanged(ZJ)V
+PLandroid/view/IDockedStackListener$Stub$Proxy;->onDividerVisibilityChanged(Z)V
+PLandroid/view/IDockedStackListener$Stub$Proxy;->onDockedStackExistsChanged(Z)V
+PLandroid/view/IDockedStackListener$Stub$Proxy;->onDockedStackMinimizedChanged(ZJZ)V
+PLandroid/view/IDockedStackListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IDockedStackListener;
HSPLandroid/view/IGraphicsStats$Stub$Proxy;->requestBufferForProcess(Ljava/lang/String;Landroid/view/IGraphicsStatsCallback;)Landroid/os/ParcelFileDescriptor;
+HSPLandroid/view/IGraphicsStats$Stub;-><init>()V
HSPLandroid/view/IGraphicsStats$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IGraphicsStats;
+PLandroid/view/IGraphicsStats$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/IGraphicsStatsCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/IGraphicsStatsCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IGraphicsStatsCallback$Stub$Proxy;->onRotateGraphicsStatsBuffer()V
HSPLandroid/view/IGraphicsStatsCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IGraphicsStatsCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IGraphicsStatsCallback;
+PLandroid/view/IGraphicsStatsCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/IInputMonitorHost$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/view/IInputMonitorHost$Stub$Proxy;->pilferPointers()V
+PLandroid/view/IInputMonitorHost$Stub;-><init>()V
+PLandroid/view/IInputMonitorHost$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/view/IInputMonitorHost$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IInputMonitorHost;
+PLandroid/view/IInputMonitorHost$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/view/IPinnedStackController$Stub$Proxy;->startAnimation(Landroid/graphics/Rect;Landroid/graphics/Rect;I)V
+HSPLandroid/view/IPinnedStackController$Stub;-><init>()V
+PLandroid/view/IPinnedStackController$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IPinnedStackController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/IPinnedStackListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/IPinnedStackListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IPinnedStackListener$Stub$Proxy;->onActionsChanged(Landroid/content/pm/ParceledListSlice;)V
+PLandroid/view/IPinnedStackListener$Stub$Proxy;->onAspectRatioChanged(F)V
+HPLandroid/view/IPinnedStackListener$Stub$Proxy;->onDisplayInfoChanged(Landroid/view/DisplayInfo;)V
+PLandroid/view/IPinnedStackListener$Stub$Proxy;->onImeVisibilityChanged(ZI)V
+PLandroid/view/IPinnedStackListener$Stub$Proxy;->onListenerRegistered(Landroid/view/IPinnedStackController;)V
+PLandroid/view/IPinnedStackListener$Stub$Proxy;->onMinimizedStateChanged(Z)V
+HPLandroid/view/IPinnedStackListener$Stub$Proxy;->onMovementBoundsChanged(Landroid/graphics/Rect;ZZ)V
+PLandroid/view/IPinnedStackListener$Stub$Proxy;->onPrepareAnimation(Landroid/graphics/Rect;FLandroid/graphics/Rect;)V
+HPLandroid/view/IPinnedStackListener$Stub$Proxy;->onResetReentryBounds(Landroid/content/ComponentName;)V
+PLandroid/view/IPinnedStackListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IPinnedStackListener;
+HPLandroid/view/IPinnedStackListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/IRecentsAnimationController$Stub;-><init>()V
+PLandroid/view/IRecentsAnimationController$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/view/IRecentsAnimationController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRecentsAnimationController;
+PLandroid/view/IRecentsAnimationController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/IRecentsAnimationRunner$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/IRecentsAnimationRunner$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IRecentsAnimationRunner$Stub$Proxy;->onAnimationCanceled(Landroid/app/ActivityManager$TaskSnapshot;)V
+HPLandroid/view/IRecentsAnimationRunner$Stub$Proxy;->onAnimationStart(Landroid/view/IRecentsAnimationController;[Landroid/view/RemoteAnimationTarget;[Landroid/view/RemoteAnimationTarget;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+HPLandroid/view/IRecentsAnimationRunner$Stub;-><init>()V
+HPLandroid/view/IRecentsAnimationRunner$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IRecentsAnimationRunner$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRecentsAnimationRunner;
+HPLandroid/view/IRecentsAnimationRunner$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/IRemoteAnimationFinishedCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/IRemoteAnimationFinishedCallback$Stub$Proxy;->onAnimationFinished()V
+PLandroid/view/IRemoteAnimationFinishedCallback$Stub;-><init>()V
+PLandroid/view/IRemoteAnimationFinishedCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/view/IRemoteAnimationFinishedCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRemoteAnimationFinishedCallback;
+PLandroid/view/IRemoteAnimationFinishedCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/IRemoteAnimationRunner$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/IRemoteAnimationRunner$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IRemoteAnimationRunner$Stub$Proxy;->onAnimationCancelled()V
+HPLandroid/view/IRemoteAnimationRunner$Stub$Proxy;->onAnimationStart([Landroid/view/RemoteAnimationTarget;[Landroid/view/RemoteAnimationTarget;Landroid/view/IRemoteAnimationFinishedCallback;)V
+HSPLandroid/view/IRemoteAnimationRunner$Stub;-><init>()V
+HSPLandroid/view/IRemoteAnimationRunner$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IRemoteAnimationRunner$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRemoteAnimationRunner;
+HPLandroid/view/IRemoteAnimationRunner$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/IRotationWatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/IRotationWatcher$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IRotationWatcher$Stub$Proxy;->onRotationChanged(I)V
+HSPLandroid/view/IRotationWatcher$Stub;-><init>()V
+HPLandroid/view/IRotationWatcher$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IRotationWatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRotationWatcher;
+HPLandroid/view/IRotationWatcher$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/ISystemGestureExclusionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/ISystemGestureExclusionListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/view/ISystemGestureExclusionListener$Stub$Proxy;->onSystemGestureExclusionChanged(ILandroid/graphics/Region;Landroid/graphics/Region;)V
+HSPLandroid/view/ISystemGestureExclusionListener$Stub;-><init>()V
+PLandroid/view/ISystemGestureExclusionListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/ISystemGestureExclusionListener;
+HPLandroid/view/ISystemGestureExclusionListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/IWallpaperVisibilityListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/IWallpaperVisibilityListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IWallpaperVisibilityListener$Stub$Proxy;->onWallpaperVisibilityChanged(ZI)V
+PLandroid/view/IWallpaperVisibilityListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWallpaperVisibilityListener;
+HPLandroid/view/IWallpaperVisibilityListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/IWindow$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLandroid/view/IWindow$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IWindow$Stub$Proxy;->closeSystemDialogs(Ljava/lang/String;)V
+PLandroid/view/IWindow$Stub$Proxy;->dispatchAppVisibility(Z)V
+PLandroid/view/IWindow$Stub$Proxy;->dispatchSystemUiVisibilityChanged(IIII)V
+PLandroid/view/IWindow$Stub$Proxy;->dispatchWallpaperCommand(Ljava/lang/String;IIILandroid/os/Bundle;Z)V
+PLandroid/view/IWindow$Stub$Proxy;->dispatchWallpaperOffsets(FFFFZ)V
+PLandroid/view/IWindow$Stub$Proxy;->dispatchWindowShown()V
+PLandroid/view/IWindow$Stub$Proxy;->executeCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/ParcelFileDescriptor;)V
+PLandroid/view/IWindow$Stub$Proxy;->insetsChanged(Landroid/view/InsetsState;)V
+PLandroid/view/IWindow$Stub$Proxy;->moved(II)V
+HPLandroid/view/IWindow$Stub$Proxy;->resized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
+PLandroid/view/IWindow$Stub$Proxy;->windowFocusChanged(ZZ)V
HSPLandroid/view/IWindow$Stub;-><init>()V
HSPLandroid/view/IWindow$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/view/IWindow$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindow;
HSPLandroid/view/IWindow$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/view/IWindowContainer$Stub;-><init>()V
+HPLandroid/view/IWindowContainer$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/view/IWindowContainer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowContainer;
+PLandroid/view/IWindowId$Stub;-><init>()V
+PLandroid/view/IWindowId$Stub;->asBinder()Landroid/os/IBinder;
+HPLandroid/view/IWindowId$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowId;
+PLandroid/view/IWindowId$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/view/IWindowManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/IWindowManager$Stub$Proxy;->createInputConsumer(Landroid/os/IBinder;Ljava/lang/String;ILandroid/view/InputChannel;)V
+HSPLandroid/view/IWindowManager$Stub$Proxy;->destroyInputConsumer(Ljava/lang/String;I)Z
+HPLandroid/view/IWindowManager$Stub$Proxy;->freezeRotation(I)V
HSPLandroid/view/IWindowManager$Stub$Proxy;->getCurrentAnimatorScale()F
+HPLandroid/view/IWindowManager$Stub$Proxy;->getDockedStackSide()I
+HPLandroid/view/IWindowManager$Stub$Proxy;->getStableInsets(ILandroid/graphics/Rect;)V
HSPLandroid/view/IWindowManager$Stub$Proxy;->hasNavigationBar(I)Z
+HPLandroid/view/IWindowManager$Stub$Proxy;->hideTransientBars(I)V
HSPLandroid/view/IWindowManager$Stub$Proxy;->isKeyguardLocked()Z
HSPLandroid/view/IWindowManager$Stub$Proxy;->isKeyguardSecure(I)Z
HSPLandroid/view/IWindowManager$Stub$Proxy;->openSession(Landroid/view/IWindowSessionCallback;)Landroid/view/IWindowSession;
+HPLandroid/view/IWindowManager$Stub$Proxy;->removeRotationWatcher(Landroid/view/IRotationWatcher;)V
+HPLandroid/view/IWindowManager$Stub$Proxy;->setDockedStackDividerTouchRegion(Landroid/graphics/Rect;)V
+HPLandroid/view/IWindowManager$Stub$Proxy;->setNavBarVirtualKeyHapticFeedbackEnabled(Z)V
+HPLandroid/view/IWindowManager$Stub$Proxy;->setPipVisibility(Z)V
+HPLandroid/view/IWindowManager$Stub$Proxy;->watchRotation(Landroid/view/IRotationWatcher;I)I
+HSPLandroid/view/IWindowManager$Stub;-><init>()V
HSPLandroid/view/IWindowManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowManager;
+PLandroid/view/IWindowManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/view/IWindowManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLandroid/view/IWindowSession$Stub$Proxy;->addToDisplay(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/InputChannel;Landroid/view/InsetsState;)I
HSPLandroid/view/IWindowSession$Stub$Proxy;->finishDrawing(Landroid/view/IWindow;Landroid/view/SurfaceControl$Transaction;)V
+HSPLandroid/view/IWindowSession$Stub$Proxy;->getDisplayFrame(Landroid/view/IWindow;Landroid/graphics/Rect;)V
HSPLandroid/view/IWindowSession$Stub$Proxy;->getInTouchMode()Z
+HPLandroid/view/IWindowSession$Stub$Proxy;->getWindowId(Landroid/os/IBinder;)Landroid/view/IWindowId;
+HPLandroid/view/IWindowSession$Stub$Proxy;->onRectangleOnScreenRequested(Landroid/os/IBinder;Landroid/graphics/Rect;)V
+HPLandroid/view/IWindowSession$Stub$Proxy;->performHapticFeedback(IZ)Z
HSPLandroid/view/IWindowSession$Stub$Proxy;->relayout(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IIIIJLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/util/MergedConfiguration;Landroid/view/SurfaceControl;Landroid/view/InsetsState;)I
+HSPLandroid/view/IWindowSession$Stub$Proxy;->remove(Landroid/view/IWindow;)V
+HSPLandroid/view/IWindowSession$Stub$Proxy;->reportSystemGestureExclusionChanged(Landroid/view/IWindow;Ljava/util/List;)V
+HPLandroid/view/IWindowSession$Stub$Proxy;->sendWallpaperCommand(Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;Z)Landroid/os/Bundle;
+HPLandroid/view/IWindowSession$Stub$Proxy;->setInsets(Landroid/view/IWindow;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V
+HPLandroid/view/IWindowSession$Stub$Proxy;->setTransparentRegion(Landroid/view/IWindow;Landroid/graphics/Region;)V
+HSPLandroid/view/IWindowSession$Stub$Proxy;->setWallpaperPosition(Landroid/os/IBinder;FFFF)V
+HSPLandroid/view/IWindowSession$Stub$Proxy;->updatePointerIcon(Landroid/view/IWindow;)V
+HPLandroid/view/IWindowSession$Stub$Proxy;->wallpaperOffsetsComplete(Landroid/os/IBinder;)V
+PLandroid/view/IWindowSession$Stub;-><init>()V
+PLandroid/view/IWindowSession$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IWindowSession$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLandroid/view/IWindowSession$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/IWindowSessionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/IWindowSessionCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IWindowSessionCallback$Stub;-><init>()V
HSPLandroid/view/IWindowSessionCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/view/IWindowSessionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowSessionCallback;
+PLandroid/view/InflateException;-><init>(Ljava/lang/String;)V
+PLandroid/view/InputApplicationHandle;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/InputApplicationHandle;->finalize()V
HSPLandroid/view/InputChannel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InputChannel;
HSPLandroid/view/InputChannel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/view/InputChannel;-><init>()V
+HSPLandroid/view/InputChannel;->dispose()V
+PLandroid/view/InputChannel;->dup()Landroid/view/InputChannel;
HSPLandroid/view/InputChannel;->finalize()V
+PLandroid/view/InputChannel;->getName()Ljava/lang/String;
+PLandroid/view/InputChannel;->getToken()Landroid/os/IBinder;
+HSPLandroid/view/InputChannel;->openInputChannelPair(Ljava/lang/String;)[Landroid/view/InputChannel;
HSPLandroid/view/InputChannel;->readFromParcel(Landroid/os/Parcel;)V
+PLandroid/view/InputChannel;->toString()Ljava/lang/String;
+PLandroid/view/InputChannel;->transferTo(Landroid/view/InputChannel;)V
+PLandroid/view/InputChannel;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/InputDevice$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InputDevice;
+HSPLandroid/view/InputDevice$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/InputDevice$MotionRange;-><init>(IIFFFFF)V
HSPLandroid/view/InputDevice$MotionRange;-><init>(IIFFFFFLandroid/view/InputDevice$1;)V
+PLandroid/view/InputDevice$MotionRange;->access$100(Landroid/view/InputDevice$MotionRange;)I
+PLandroid/view/InputDevice$MotionRange;->access$200(Landroid/view/InputDevice$MotionRange;)I
+PLandroid/view/InputDevice$MotionRange;->access$400(Landroid/view/InputDevice$MotionRange;)F
+PLandroid/view/InputDevice$MotionRange;->access$500(Landroid/view/InputDevice$MotionRange;)F
+PLandroid/view/InputDevice$MotionRange;->access$600(Landroid/view/InputDevice$MotionRange;)F
+PLandroid/view/InputDevice$MotionRange;->access$700(Landroid/view/InputDevice$MotionRange;)F
+PLandroid/view/InputDevice$MotionRange;->access$800(Landroid/view/InputDevice$MotionRange;)F
+HSPLandroid/view/InputDevice$MotionRange;->getAxis()I
+HSPLandroid/view/InputDevice$MotionRange;->getSource()I
+HSPLandroid/view/InputDevice;-><init>(IIILjava/lang/String;IILjava/lang/String;ZIILandroid/view/KeyCharacterMap;ZZZ)V
+HSPLandroid/view/InputDevice;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/InputDevice;->addMotionRange(IIFFFFF)V
+HSPLandroid/view/InputDevice;->getDevice(I)Landroid/view/InputDevice;
+HSPLandroid/view/InputDevice;->getDeviceIds()[I
+HSPLandroid/view/InputDevice;->getGeneration()I
+HSPLandroid/view/InputDevice;->getId()I
+HSPLandroid/view/InputDevice;->getKeyboardType()I
+HSPLandroid/view/InputDevice;->getMotionRanges()Ljava/util/List;
+HSPLandroid/view/InputDevice;->getSources()I
+HSPLandroid/view/InputDevice;->getVibrator()Landroid/os/Vibrator;
+HSPLandroid/view/InputDevice;->hasKeys([I)[Z
+HSPLandroid/view/InputDevice;->isExternal()Z
+HSPLandroid/view/InputDevice;->isFullKeyboard()Z
+HSPLandroid/view/InputDevice;->isVirtual()Z
+PLandroid/view/InputDevice;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/InputEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InputEvent;
+PLandroid/view/InputEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/InputEvent;-><init>()V
HSPLandroid/view/InputEvent;->getSequenceNumber()I
+HPLandroid/view/InputEvent;->isFromSource(I)Z
+PLandroid/view/InputEvent;->prepareForReuse()V
HSPLandroid/view/InputEvent;->recycle()V
HSPLandroid/view/InputEvent;->recycleIfNeededAfterDispatch()V
HSPLandroid/view/InputEventCompatProcessor;-><init>(Landroid/content/Context;)V
+HSPLandroid/view/InputEventCompatProcessor;->processInputEventForCompatibility(Landroid/view/InputEvent;)Ljava/util/List;
HSPLandroid/view/InputEventConsistencyVerifier;->isInstrumentationEnabled()Z
HSPLandroid/view/InputEventReceiver;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V
+HPLandroid/view/InputEventReceiver;->consumeBatchedInputEvents(J)Z
HSPLandroid/view/InputEventReceiver;->dispatchBatchedInputEventPending()V
HSPLandroid/view/InputEventReceiver;->dispatchInputEvent(ILandroid/view/InputEvent;)V
+PLandroid/view/InputEventReceiver;->dispose()V
HSPLandroid/view/InputEventReceiver;->dispose(Z)V
HSPLandroid/view/InputEventReceiver;->finalize()V
HSPLandroid/view/InputEventReceiver;->finishInputEvent(Landroid/view/InputEvent;Z)V
+HPLandroid/view/InputEventReceiver;->onBatchedInputEventPending()V
+HPLandroid/view/InputEventSender;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V
+HPLandroid/view/InputEventSender;->dispatchInputEventFinished(IZ)V
+HPLandroid/view/InputEventSender;->dispose(Z)V
+HPLandroid/view/InputEventSender;->finalize()V
+HPLandroid/view/InputEventSender;->sendInputEvent(ILandroid/view/InputEvent;)Z
HSPLandroid/view/InputMonitor$1;-><init>()V
+HSPLandroid/view/InputMonitor$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InputMonitor;
+HSPLandroid/view/InputMonitor$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/view/InputMonitor;-><clinit>()V
+HSPLandroid/view/InputMonitor;-><init>(Landroid/os/Parcel;)V
+PLandroid/view/InputMonitor;-><init>(Landroid/view/InputChannel;Landroid/view/IInputMonitorHost;)V
+HPLandroid/view/InputMonitor;->dispose()V
+HSPLandroid/view/InputMonitor;->getInputChannel()Landroid/view/InputChannel;
+HPLandroid/view/InputMonitor;->pilferPointers()V
+PLandroid/view/InputMonitor;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/InputWindowHandle;-><init>(Landroid/view/InputApplicationHandle;I)V
+PLandroid/view/InputWindowHandle;->finalize()V
+PLandroid/view/InputWindowHandle;->setTouchableRegionCrop(Landroid/view/SurfaceControl;)V
HSPLandroid/view/InsetsController;-><init>(Landroid/view/ViewRootImpl;)V
+PLandroid/view/InsetsController;->applyLocalVisibilityOverride()V
HSPLandroid/view/InsetsController;->calculateInsets(ZZLandroid/view/DisplayCutout;Landroid/graphics/Rect;Landroid/graphics/Rect;I)Landroid/view/WindowInsets;
+HSPLandroid/view/InsetsController;->getState()Landroid/view/InsetsState;
HSPLandroid/view/InsetsController;->onFrameChanged(Landroid/graphics/Rect;)V
HSPLandroid/view/InsetsController;->onStateChanged(Landroid/view/InsetsState;)Z
HSPLandroid/view/InsetsFlags;-><init>()V
+PLandroid/view/InsetsFlags;->convertFlag(III)I
+PLandroid/view/InsetsFlags;->convertNoFlag(III)I
+HPLandroid/view/InsetsFlags;->getAppearance(I)I
HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsSource;
HSPLandroid/view/InsetsSource$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/InsetsSource;-><init>(I)V
+HPLandroid/view/InsetsSource;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/InsetsSource;-><init>(Landroid/view/InsetsSource;)V
HSPLandroid/view/InsetsSource;->calculateInsets(Landroid/graphics/Rect;Z)Landroid/graphics/Insets;
+HSPLandroid/view/InsetsSource;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
HSPLandroid/view/InsetsSource;->equals(Ljava/lang/Object;)Z
+PLandroid/view/InsetsSource;->getFrame()Landroid/graphics/Rect;
HSPLandroid/view/InsetsSource;->getType()I
HSPLandroid/view/InsetsSource;->isVisible()Z
+PLandroid/view/InsetsSource;->setFrame(Landroid/graphics/Rect;)V
+HPLandroid/view/InsetsSource;->setVisible(Z)V
+HPLandroid/view/InsetsSource;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/InsetsSourceControl;-><init>(ILandroid/view/SurfaceControl;Landroid/graphics/Point;)V
+HPLandroid/view/InsetsState$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/InsetsState;
+HPLandroid/view/InsetsState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/view/InsetsState;-><init>()V
HSPLandroid/view/InsetsState;->calculateInsets(Landroid/graphics/Rect;ZZLandroid/view/DisplayCutout;Landroid/graphics/Rect;Landroid/graphics/Rect;ILandroid/util/SparseIntArray;)Landroid/view/WindowInsets;
+HPLandroid/view/InsetsState;->containsType([II)Z
+HSPLandroid/view/InsetsState;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
HSPLandroid/view/InsetsState;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/InsetsState;->getDefaultVisibility(I)Z
+HSPLandroid/view/InsetsState;->getSource(I)Landroid/view/InsetsSource;
HSPLandroid/view/InsetsState;->processSource(Landroid/view/InsetsSource;Landroid/graphics/Rect;Z[Landroid/graphics/Insets;Landroid/util/SparseIntArray;[Z)V
HSPLandroid/view/InsetsState;->processSourceAsPublicType(Landroid/view/InsetsSource;[Landroid/graphics/Insets;Landroid/util/SparseIntArray;[ZLandroid/graphics/Insets;I)V
HSPLandroid/view/InsetsState;->readFromParcel(Landroid/os/Parcel;)V
HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;)V
HSPLandroid/view/InsetsState;->set(Landroid/view/InsetsState;Z)V
+HSPLandroid/view/InsetsState;->setDisplayFrame(Landroid/graphics/Rect;)V
+HPLandroid/view/InsetsState;->setSourceVisible(IZ)V
HSPLandroid/view/InsetsState;->toPublicType(I)I
+HSPLandroid/view/InsetsState;->typeToString(I)Ljava/lang/String;
+HPLandroid/view/InsetsState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/KeyCharacterMap$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/KeyCharacterMap;
+HSPLandroid/view/KeyCharacterMap$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/KeyCharacterMap;-><init>(J)V
+HSPLandroid/view/KeyCharacterMap;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/KeyCharacterMap;->deviceHasKey(I)Z
+HSPLandroid/view/KeyCharacterMap;->finalize()V
+HPLandroid/view/KeyCharacterMap;->get(II)I
+HPLandroid/view/KeyCharacterMap;->load(I)Landroid/view/KeyCharacterMap;
+PLandroid/view/KeyCharacterMap;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/KeyEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/KeyEvent;
+PLandroid/view/KeyEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/KeyEvent$DispatcherState;-><init>()V
+HPLandroid/view/KeyEvent$DispatcherState;->handleUpEvent(Landroid/view/KeyEvent;)V
+HPLandroid/view/KeyEvent$DispatcherState;->isTracking(Landroid/view/KeyEvent;)Z
HSPLandroid/view/KeyEvent$DispatcherState;->reset()V
+HPLandroid/view/KeyEvent$DispatcherState;->reset(Ljava/lang/Object;)V
+HPLandroid/view/KeyEvent$DispatcherState;->startTracking(Landroid/view/KeyEvent;Ljava/lang/Object;)V
+PLandroid/view/KeyEvent;-><init>()V
+HPLandroid/view/KeyEvent;-><init>(JJIIIIIII)V
+HPLandroid/view/KeyEvent;-><init>(JJIIIIIIII)V
+PLandroid/view/KeyEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/view/KeyEvent;->actionToString(I)Ljava/lang/String;
+HPLandroid/view/KeyEvent;->cancel()V
+PLandroid/view/KeyEvent;->createFromParcelBody(Landroid/os/Parcel;)Landroid/view/KeyEvent;
+HPLandroid/view/KeyEvent;->dispatch(Landroid/view/KeyEvent$Callback;Landroid/view/KeyEvent$DispatcherState;Ljava/lang/Object;)Z
+PLandroid/view/KeyEvent;->getAction()I
+HPLandroid/view/KeyEvent;->getDeviceId()I
+PLandroid/view/KeyEvent;->getDisplayId()I
+PLandroid/view/KeyEvent;->getDownTime()J
+PLandroid/view/KeyEvent;->getEventTime()J
+HPLandroid/view/KeyEvent;->getEventTimeNano()J
+PLandroid/view/KeyEvent;->getFlags()I
+PLandroid/view/KeyEvent;->getKeyCode()I
+PLandroid/view/KeyEvent;->getMetaState()I
+PLandroid/view/KeyEvent;->getRepeatCount()I
+HPLandroid/view/KeyEvent;->getScanCode()I
+HPLandroid/view/KeyEvent;->getSource()I
+HPLandroid/view/KeyEvent;->getUnicodeChar()I
+HPLandroid/view/KeyEvent;->getUnicodeChar(I)I
+HPLandroid/view/KeyEvent;->hasModifiers(I)Z
+PLandroid/view/KeyEvent;->isAltPressed()Z
+PLandroid/view/KeyEvent;->isCanceled()Z
+PLandroid/view/KeyEvent;->isCtrlPressed()Z
+PLandroid/view/KeyEvent;->isLongPress()Z
+PLandroid/view/KeyEvent;->isMetaKey(I)Z
+PLandroid/view/KeyEvent;->isMetaPressed()Z
+PLandroid/view/KeyEvent;->isModifierKey(I)Z
+PLandroid/view/KeyEvent;->isShiftPressed()Z
+HPLandroid/view/KeyEvent;->isSystem()Z
+HPLandroid/view/KeyEvent;->isSystemKey(I)Z
+PLandroid/view/KeyEvent;->isWakeKey()Z
+HPLandroid/view/KeyEvent;->isWakeKey(I)Z
+PLandroid/view/KeyEvent;->keyCodeToString(I)Ljava/lang/String;
+HPLandroid/view/KeyEvent;->metaStateFilterDirectionalModifiers(IIIII)I
+HPLandroid/view/KeyEvent;->metaStateHasModifiers(II)Z
+PLandroid/view/KeyEvent;->metaStateToString(I)Ljava/lang/String;
+HPLandroid/view/KeyEvent;->normalizeMetaState(I)I
+PLandroid/view/KeyEvent;->obtain()Landroid/view/KeyEvent;
+PLandroid/view/KeyEvent;->obtain(JJIIIIIIIIILjava/lang/String;)Landroid/view/KeyEvent;
+PLandroid/view/KeyEvent;->recycle()V
+PLandroid/view/KeyEvent;->recycleIfNeededAfterDispatch()V
+HPLandroid/view/KeyEvent;->setDisplayId(I)V
+HPLandroid/view/KeyEvent;->startTracking()V
+PLandroid/view/KeyEvent;->toString()Ljava/lang/String;
+HPLandroid/view/KeyEvent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/LayoutInflater$FactoryMerger;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
+HSPLandroid/view/LayoutInflater;-><init>(Landroid/content/Context;)V
+HSPLandroid/view/LayoutInflater;-><init>(Landroid/view/LayoutInflater;Landroid/content/Context;)V
HSPLandroid/view/LayoutInflater;->advanceToRootNode(Lorg/xmlpull/v1/XmlPullParser;)V
HSPLandroid/view/LayoutInflater;->createView(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;
+HSPLandroid/view/LayoutInflater;->createView(Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;
+PLandroid/view/LayoutInflater;->createViewFromTag(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
HSPLandroid/view/LayoutInflater;->createViewFromTag(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;Z)Landroid/view/View;
HSPLandroid/view/LayoutInflater;->from(Landroid/content/Context;)Landroid/view/LayoutInflater;
HSPLandroid/view/LayoutInflater;->getContext()Landroid/content/Context;
+HSPLandroid/view/LayoutInflater;->getFactory()Landroid/view/LayoutInflater$Factory;
+HPLandroid/view/LayoutInflater;->getFactory2()Landroid/view/LayoutInflater$Factory2;
HSPLandroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;)Landroid/view/View;
HSPLandroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View;
HSPLandroid/view/LayoutInflater;->inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/ViewGroup;Z)Landroid/view/View;
+HSPLandroid/view/LayoutInflater;->initPrecompiledViews()V
HSPLandroid/view/LayoutInflater;->initPrecompiledViews(Z)V
HSPLandroid/view/LayoutInflater;->onCreateView(Landroid/content/Context;Landroid/view/View;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;
HSPLandroid/view/LayoutInflater;->onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;
+HSPLandroid/view/LayoutInflater;->onCreateView(Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;
HSPLandroid/view/LayoutInflater;->parseInclude(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/Context;Landroid/view/View;Landroid/util/AttributeSet;)V
HSPLandroid/view/LayoutInflater;->rInflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/content/Context;Landroid/util/AttributeSet;Z)V
+PLandroid/view/LayoutInflater;->rInflateChildren(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/View;Landroid/util/AttributeSet;Z)V
+HSPLandroid/view/LayoutInflater;->setFactory2(Landroid/view/LayoutInflater$Factory2;)V
+HSPLandroid/view/LayoutInflater;->setFilter(Landroid/view/LayoutInflater$Filter;)V
+HSPLandroid/view/LayoutInflater;->setPrivateFactory(Landroid/view/LayoutInflater$Factory2;)V
HSPLandroid/view/LayoutInflater;->tryCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;
HSPLandroid/view/LayoutInflater;->tryInflatePrecompiled(ILandroid/content/res/Resources;Landroid/view/ViewGroup;Z)Landroid/view/View;
+PLandroid/view/LayoutInflater;->verifyClassLoader(Ljava/lang/reflect/Constructor;)Z
+HSPLandroid/view/MenuInflater;-><init>(Landroid/content/Context;)V
+HPLandroid/view/MotionEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/MotionEvent;
+HPLandroid/view/MotionEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/MotionEvent$PointerCoords;-><init>()V
+HPLandroid/view/MotionEvent$PointerProperties;-><init>()V
+HPLandroid/view/MotionEvent$PointerProperties;->access$000(Landroid/view/MotionEvent$PointerProperties;Landroid/view/MotionEvent$PointerProperties;)Z
+HPLandroid/view/MotionEvent$PointerProperties;->clear()V
+HPLandroid/view/MotionEvent$PointerProperties;->equals(Landroid/view/MotionEvent$PointerProperties;)Z
+PLandroid/view/MotionEvent;-><init>()V
+HPLandroid/view/MotionEvent;->addBatch(Landroid/view/MotionEvent;)Z
+HPLandroid/view/MotionEvent;->copy()Landroid/view/MotionEvent;
+HPLandroid/view/MotionEvent;->createFromParcelBody(Landroid/os/Parcel;)Landroid/view/MotionEvent;
+HSPLandroid/view/MotionEvent;->ensureSharedTempPointerCapacity(I)V
+HPLandroid/view/MotionEvent;->finalize()V
+HSPLandroid/view/MotionEvent;->findPointerIndex(I)I
HSPLandroid/view/MotionEvent;->getAction()I
HSPLandroid/view/MotionEvent;->getActionIndex()I
+HSPLandroid/view/MotionEvent;->getActionMasked()I
+HPLandroid/view/MotionEvent;->getAxisValue(I)F
+HPLandroid/view/MotionEvent;->getButtonState()I
+HPLandroid/view/MotionEvent;->getClassification()I
+HPLandroid/view/MotionEvent;->getDeviceId()I
HSPLandroid/view/MotionEvent;->getDownTime()J
+HPLandroid/view/MotionEvent;->getEdgeFlags()I
+PLandroid/view/MotionEvent;->getEventTime()J
+HSPLandroid/view/MotionEvent;->getEventTimeNano()J
+HPLandroid/view/MotionEvent;->getFlags()I
+PLandroid/view/MotionEvent;->getHistoricalEventTime(I)J
+HPLandroid/view/MotionEvent;->getHistoricalPointerCoords(IILandroid/view/MotionEvent$PointerCoords;)V
+HPLandroid/view/MotionEvent;->getHistoricalPressure(I)F
+HPLandroid/view/MotionEvent;->getHistoricalPressure(II)F
+HPLandroid/view/MotionEvent;->getHistoricalTouchMajor(I)F
+HPLandroid/view/MotionEvent;->getHistoricalX(I)F
+PLandroid/view/MotionEvent;->getHistoricalX(II)F
+HPLandroid/view/MotionEvent;->getHistoricalY(I)F
+PLandroid/view/MotionEvent;->getHistoricalY(II)F
+PLandroid/view/MotionEvent;->getHistorySize()I
+HPLandroid/view/MotionEvent;->getMetaState()I
+HPLandroid/view/MotionEvent;->getOrientation()F
+HSPLandroid/view/MotionEvent;->getPointerCount()I
HSPLandroid/view/MotionEvent;->getPointerId(I)I
+HPLandroid/view/MotionEvent;->getPointerProperties(ILandroid/view/MotionEvent$PointerProperties;)V
+HPLandroid/view/MotionEvent;->getPressure()F
+HPLandroid/view/MotionEvent;->getPressure(I)F
+PLandroid/view/MotionEvent;->getRawX()F
+PLandroid/view/MotionEvent;->getRawY()F
+HSPLandroid/view/MotionEvent;->getSource()I
+HPLandroid/view/MotionEvent;->getToolType(I)I
+HPLandroid/view/MotionEvent;->getTouchMajor()F
+HPLandroid/view/MotionEvent;->getTouchMinor()F
+HSPLandroid/view/MotionEvent;->getX()F
HSPLandroid/view/MotionEvent;->getX(I)F
+HPLandroid/view/MotionEvent;->getXPrecision()F
+HSPLandroid/view/MotionEvent;->getY()F
HSPLandroid/view/MotionEvent;->getY(I)F
+HPLandroid/view/MotionEvent;->getYPrecision()F
+HSPLandroid/view/MotionEvent;->initialize(IIIIIIIIIFFFFJJI[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;)Z
+HPLandroid/view/MotionEvent;->isButtonPressed(I)Z
+PLandroid/view/MotionEvent;->isTouchEvent()Z
+HPLandroid/view/MotionEvent;->isWithinBoundsNoHistory(FFFF)Z
HSPLandroid/view/MotionEvent;->obtain()Landroid/view/MotionEvent;
-HSPLandroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;
+HPLandroid/view/MotionEvent;->obtain(JJIFFFFIFFII)Landroid/view/MotionEvent;
+HSPLandroid/view/MotionEvent;->obtain(JJIFFFFIFFIIII)Landroid/view/MotionEvent;
+HSPLandroid/view/MotionEvent;->obtain(JJIFFI)Landroid/view/MotionEvent;
+HPLandroid/view/MotionEvent;->obtain(JJII[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;IIFFIIII)Landroid/view/MotionEvent;
+HPLandroid/view/MotionEvent;->obtain(JJII[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;IIFFIIIII)Landroid/view/MotionEvent;
+HPLandroid/view/MotionEvent;->obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;
+HPLandroid/view/MotionEvent;->obtainNoHistory(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;
+HPLandroid/view/MotionEvent;->offsetLocation(FF)V
HSPLandroid/view/MotionEvent;->recycle()V
+HSPLandroid/view/MotionEvent;->setAction(I)V
+HSPLandroid/view/MotionEvent;->setCursorPosition(FF)V
+HPLandroid/view/MotionEvent;->setEdgeFlags(I)V
+HPLandroid/view/MotionEvent;->setSource(I)V
+HPLandroid/view/MotionEvent;->split(I)Landroid/view/MotionEvent;
+HPLandroid/view/MotionEvent;->transform(Landroid/graphics/Matrix;)V
+HSPLandroid/view/MotionEvent;->updateCursorPosition()V
+HPLandroid/view/MotionEvent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/OrientationEventListener$SensorEventListenerImpl;->onAccuracyChanged(Landroid/hardware/Sensor;I)V
+HSPLandroid/view/OrientationEventListener$SensorEventListenerImpl;->onSensorChanged(Landroid/hardware/SensorEvent;)V
+HSPLandroid/view/OrientationEventListener;-><init>(Landroid/content/Context;)V
+HSPLandroid/view/OrientationEventListener;-><init>(Landroid/content/Context;I)V
+HSPLandroid/view/OrientationEventListener;->access$000(Landroid/view/OrientationEventListener;)Landroid/view/OrientationListener;
+HSPLandroid/view/OrientationEventListener;->access$100(Landroid/view/OrientationEventListener;)I
+HSPLandroid/view/OrientationEventListener;->access$102(Landroid/view/OrientationEventListener;I)I
+HPLandroid/view/OrientationEventListener;->disable()V
+HSPLandroid/view/OrientationEventListener;->enable()V
+HSPLandroid/view/PointerIcon$2;->onDisplayChanged(I)V
+HSPLandroid/view/PointerIcon;->access$200()Landroid/util/SparseArray;
+HSPLandroid/view/PointerIcon;->getSystemIcon(Landroid/content/Context;I)Landroid/view/PointerIcon;
+HSPLandroid/view/PointerIcon;->getSystemIconTypeIndex(I)I
+HSPLandroid/view/PointerIcon;->setUseLargeIcons(Z)V
+PLandroid/view/RemoteAnimationAdapter$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RemoteAnimationAdapter;
+PLandroid/view/RemoteAnimationAdapter$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/RemoteAnimationAdapter;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/RemoteAnimationAdapter;-><init>(Landroid/view/IRemoteAnimationRunner;JJ)V
+PLandroid/view/RemoteAnimationAdapter;->getCallingPid()I
+PLandroid/view/RemoteAnimationAdapter;->getCallingUid()I
+PLandroid/view/RemoteAnimationAdapter;->getDuration()J
+PLandroid/view/RemoteAnimationAdapter;->getRunner()Landroid/view/IRemoteAnimationRunner;
+PLandroid/view/RemoteAnimationAdapter;->getStatusBarTransitionDelay()J
+PLandroid/view/RemoteAnimationAdapter;->setCallingPidUid(II)V
+HSPLandroid/view/RemoteAnimationAdapter;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/RemoteAnimationDefinition$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RemoteAnimationDefinition;
+PLandroid/view/RemoteAnimationDefinition$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;
+PLandroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;-><init>(Landroid/os/Parcel;)V
+PLandroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;-><init>(Landroid/os/Parcel;Landroid/view/RemoteAnimationDefinition$1;)V
+HSPLandroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;-><init>(Landroid/view/RemoteAnimationAdapter;I)V
+PLandroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;->access$000()Landroid/os/Parcelable$Creator;
+HSPLandroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/RemoteAnimationDefinition;-><init>()V
+PLandroid/view/RemoteAnimationDefinition;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/RemoteAnimationDefinition;->addRemoteAnimation(IILandroid/view/RemoteAnimationAdapter;)V
+PLandroid/view/RemoteAnimationDefinition;->getAdapter(ILandroid/util/ArraySet;)Landroid/view/RemoteAnimationAdapter;
+PLandroid/view/RemoteAnimationDefinition;->hasTransition(ILandroid/util/ArraySet;)Z
+PLandroid/view/RemoteAnimationDefinition;->setCallingPidUid(II)V
+HSPLandroid/view/RemoteAnimationDefinition;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/RemoteAnimationTarget$1;-><init>()V
+HPLandroid/view/RemoteAnimationTarget$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/RemoteAnimationTarget;
+HPLandroid/view/RemoteAnimationTarget$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/RemoteAnimationTarget$1;->newArray(I)[Landroid/view/RemoteAnimationTarget;
+HPLandroid/view/RemoteAnimationTarget$1;->newArray(I)[Ljava/lang/Object;
+PLandroid/view/RemoteAnimationTarget;-><clinit>()V
+PLandroid/view/RemoteAnimationTarget;-><init>(IILandroid/view/SurfaceControl;ZLandroid/graphics/Rect;Landroid/graphics/Rect;ILandroid/graphics/Point;Landroid/graphics/Rect;Landroid/app/WindowConfiguration;ZLandroid/view/SurfaceControl;Landroid/graphics/Rect;)V
+HPLandroid/view/RemoteAnimationTarget;-><init>(Landroid/os/Parcel;)V
+HPLandroid/view/RemoteAnimationTarget;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+PLandroid/view/RemoteAnimationTarget;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/RenderNodeAnimator$DelayedAnimationHelper;->addDelayedAnimation(Landroid/view/RenderNodeAnimator;)V
+HPLandroid/view/RenderNodeAnimator$DelayedAnimationHelper;->run()V
+HPLandroid/view/RenderNodeAnimator$DelayedAnimationHelper;->scheduleCallback()V
+HPLandroid/view/RenderNodeAnimator;-><init>(IF)V
+HSPLandroid/view/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;F)V
+HSPLandroid/view/RenderNodeAnimator;-><init>(Landroid/graphics/CanvasProperty;IF)V
+HPLandroid/view/RenderNodeAnimator;->access$000(Landroid/view/RenderNodeAnimator;J)Z
+HSPLandroid/view/RenderNodeAnimator;->applyInterpolator()V
+HSPLandroid/view/RenderNodeAnimator;->callOnFinished(Landroid/view/RenderNodeAnimator;)V
+HPLandroid/view/RenderNodeAnimator;->cancel()V
+HSPLandroid/view/RenderNodeAnimator;->checkMutable()V
+HPLandroid/view/RenderNodeAnimator;->cloneListeners()Ljava/util/ArrayList;
+HPLandroid/view/RenderNodeAnimator;->doStart()V
+HPLandroid/view/RenderNodeAnimator;->end()V
+HSPLandroid/view/RenderNodeAnimator;->getNativeAnimator()J
+HPLandroid/view/RenderNodeAnimator;->init(J)V
+HSPLandroid/view/RenderNodeAnimator;->isRunning()Z
+HPLandroid/view/RenderNodeAnimator;->moveToRunningState()V
+HPLandroid/view/RenderNodeAnimator;->notifyStartListeners()V
+HSPLandroid/view/RenderNodeAnimator;->onFinished()V
+HPLandroid/view/RenderNodeAnimator;->processDelayed(J)Z
+HPLandroid/view/RenderNodeAnimator;->setDuration(J)Landroid/animation/Animator;
+HSPLandroid/view/RenderNodeAnimator;->setDuration(J)Landroid/view/RenderNodeAnimator;
+HPLandroid/view/RenderNodeAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)V
+HSPLandroid/view/RenderNodeAnimator;->setStartDelay(J)V
+HSPLandroid/view/RenderNodeAnimator;->setTarget(Landroid/graphics/RecordingCanvas;)V
+HPLandroid/view/RenderNodeAnimator;->setTarget(Landroid/graphics/RenderNode;)V
+HPLandroid/view/RenderNodeAnimator;->setTarget(Landroid/view/View;)V
+HSPLandroid/view/RenderNodeAnimator;->start()V
+HSPLandroid/view/RenderNodeAnimatorSetHelper;->createNativeInterpolator(Landroid/animation/TimeInterpolator;J)J
+HPLandroid/view/ScaleGestureDetector$1;->onDoubleTap(Landroid/view/MotionEvent;)Z
+HPLandroid/view/ScaleGestureDetector$SimpleOnScaleGestureListener;-><init>()V
+HPLandroid/view/ScaleGestureDetector$SimpleOnScaleGestureListener;->onScale(Landroid/view/ScaleGestureDetector;)Z
+HPLandroid/view/ScaleGestureDetector$SimpleOnScaleGestureListener;->onScaleEnd(Landroid/view/ScaleGestureDetector;)V
+HSPLandroid/view/ScaleGestureDetector;-><init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;)V
+HSPLandroid/view/ScaleGestureDetector;-><init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;Landroid/os/Handler;)V
+HPLandroid/view/ScaleGestureDetector;->access$002(Landroid/view/ScaleGestureDetector;F)F
+HPLandroid/view/ScaleGestureDetector;->access$102(Landroid/view/ScaleGestureDetector;F)F
+HPLandroid/view/ScaleGestureDetector;->access$202(Landroid/view/ScaleGestureDetector;I)I
+HPLandroid/view/ScaleGestureDetector;->getCurrentSpan()F
+HPLandroid/view/ScaleGestureDetector;->getCurrentSpanX()F
+HPLandroid/view/ScaleGestureDetector;->getFocusX()F
+HPLandroid/view/ScaleGestureDetector;->getFocusY()F
+HPLandroid/view/ScaleGestureDetector;->getScaleFactor()F
+HPLandroid/view/ScaleGestureDetector;->inAnchoredScaleMode()Z
+HPLandroid/view/ScaleGestureDetector;->onTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/view/ScaleGestureDetector;->setQuickScaleEnabled(Z)V
+HSPLandroid/view/ScaleGestureDetector;->setStylusScaleEnabled(Z)V
+HSPLandroid/view/Surface$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/Surface;
+HSPLandroid/view/Surface$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/Surface$CompatibleCanvas;-><init>(Landroid/view/Surface;)V
+PLandroid/view/Surface$CompatibleCanvas;-><init>(Landroid/view/Surface;Landroid/view/Surface$1;)V
HSPLandroid/view/Surface;-><init>()V
+PLandroid/view/Surface;-><init>(Landroid/graphics/SurfaceTexture;)V
+HPLandroid/view/Surface;->attachAndQueueBufferWithColorSpace(Landroid/graphics/GraphicBuffer;Landroid/graphics/ColorSpace;)V
HSPLandroid/view/Surface;->checkNotReleasedLocked()V
HSPLandroid/view/Surface;->copyFrom(Landroid/view/SurfaceControl;)V
-PLandroid/view/Surface;->finalize()V
+PLandroid/view/Surface;->destroy()V
+HSPLandroid/view/Surface;->finalize()V
+HPLandroid/view/Surface;->forceScopedDisconnect()V
HSPLandroid/view/Surface;->getGenerationId()I
HSPLandroid/view/Surface;->getNextFrameNumber()J
HSPLandroid/view/Surface;->isValid()Z
+PLandroid/view/Surface;->lockCanvas(Landroid/graphics/Rect;)Landroid/graphics/Canvas;
+HSPLandroid/view/Surface;->readFromParcel(Landroid/os/Parcel;)V
HSPLandroid/view/Surface;->release()V
+HSPLandroid/view/Surface;->rotationToString(I)Ljava/lang/String;
HSPLandroid/view/Surface;->setNativeObjectLocked(J)V
+HSPLandroid/view/Surface;->toString()Ljava/lang/String;
+PLandroid/view/Surface;->unlockCanvasAndPost(Landroid/graphics/Canvas;)V
+PLandroid/view/Surface;->unlockSwCanvasAndPost(Landroid/graphics/Canvas;)V
+HPLandroid/view/SurfaceControl$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/SurfaceControl;
+HPLandroid/view/SurfaceControl$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/SurfaceControl$Builder;-><init>(Landroid/view/SurfaceSession;)V
+HSPLandroid/view/SurfaceControl$Builder;->build()Landroid/view/SurfaceControl;
+PLandroid/view/SurfaceControl$Builder;->isColorLayerSet()Z
+PLandroid/view/SurfaceControl$Builder;->isContainerLayerSet()Z
+PLandroid/view/SurfaceControl$Builder;->setBufferSize(II)Landroid/view/SurfaceControl$Builder;
+PLandroid/view/SurfaceControl$Builder;->setColorLayer()Landroid/view/SurfaceControl$Builder;
+HSPLandroid/view/SurfaceControl$Builder;->setContainerLayer()Landroid/view/SurfaceControl$Builder;
+PLandroid/view/SurfaceControl$Builder;->setFlags(I)Landroid/view/SurfaceControl$Builder;
+HSPLandroid/view/SurfaceControl$Builder;->setFlags(II)Landroid/view/SurfaceControl$Builder;
+PLandroid/view/SurfaceControl$Builder;->setFormat(I)Landroid/view/SurfaceControl$Builder;
+PLandroid/view/SurfaceControl$Builder;->setMetadata(II)Landroid/view/SurfaceControl$Builder;
+HSPLandroid/view/SurfaceControl$Builder;->setName(Ljava/lang/String;)Landroid/view/SurfaceControl$Builder;
+HSPLandroid/view/SurfaceControl$Builder;->setOpaque(Z)Landroid/view/SurfaceControl$Builder;
+HSPLandroid/view/SurfaceControl$Builder;->setParent(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Builder;
+PLandroid/view/SurfaceControl$Builder;->setSecure(Z)Landroid/view/SurfaceControl$Builder;
+HSPLandroid/view/SurfaceControl$Builder;->unsetBufferSize()V
+PLandroid/view/SurfaceControl$CieXyz;-><init>()V
+HSPLandroid/view/SurfaceControl$DesiredDisplayConfigSpecs;-><init>(IFF)V
+PLandroid/view/SurfaceControl$DisplayPrimaries;-><init>()V
+HSPLandroid/view/SurfaceControl$PhysicalDisplayInfo;-><init>()V
+PLandroid/view/SurfaceControl$PhysicalDisplayInfo;->toString()Ljava/lang/String;
+PLandroid/view/SurfaceControl$ScreenshotGraphicBuffer;-><init>(Landroid/graphics/GraphicBuffer;Landroid/graphics/ColorSpace;Z)V
+PLandroid/view/SurfaceControl$ScreenshotGraphicBuffer;->containsSecureLayers()Z
+HPLandroid/view/SurfaceControl$ScreenshotGraphicBuffer;->createFromNative(IIIIJIZ)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
+PLandroid/view/SurfaceControl$ScreenshotGraphicBuffer;->getColorSpace()Landroid/graphics/ColorSpace;
+PLandroid/view/SurfaceControl$ScreenshotGraphicBuffer;->getGraphicBuffer()Landroid/graphics/GraphicBuffer;
+PLandroid/view/SurfaceControl$Transaction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/view/SurfaceControl$Transaction;-><init>()V
+HPLandroid/view/SurfaceControl$Transaction;-><init>(Landroid/os/Parcel;)V
+HPLandroid/view/SurfaceControl$Transaction;-><init>(Landroid/os/Parcel;Landroid/view/SurfaceControl$1;)V
+HSPLandroid/view/SurfaceControl$Transaction;->apply()V
+HSPLandroid/view/SurfaceControl$Transaction;->apply(Z)V
+HSPLandroid/view/SurfaceControl$Transaction;->applyResizedSurfaces()V
+PLandroid/view/SurfaceControl$Transaction;->deferTransactionUntil(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;J)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction;->deferTransactionUntilSurface(Landroid/view/SurfaceControl;Landroid/view/Surface;J)Landroid/view/SurfaceControl$Transaction;
+PLandroid/view/SurfaceControl$Transaction;->detachChildren(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction;->hide(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->merge(Landroid/view/SurfaceControl$Transaction;)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/view/SurfaceControl$Transaction;->remove(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction;->reparent(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction;->setAlpha(Landroid/view/SurfaceControl;F)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction;->setAnimationTransaction()Landroid/view/SurfaceControl$Transaction;
+PLandroid/view/SurfaceControl$Transaction;->setBufferSize(Landroid/view/SurfaceControl;II)Landroid/view/SurfaceControl$Transaction;
+PLandroid/view/SurfaceControl$Transaction;->setColor(Landroid/view/SurfaceControl;[F)Landroid/view/SurfaceControl$Transaction;
+PLandroid/view/SurfaceControl$Transaction;->setColorSpaceAgnostic(Landroid/view/SurfaceControl;Z)Landroid/view/SurfaceControl$Transaction;
+PLandroid/view/SurfaceControl$Transaction;->setCornerRadius(Landroid/view/SurfaceControl;F)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setDisplayLayerStack(Landroid/os/IBinder;I)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setDisplayProjection(Landroid/os/IBinder;ILandroid/graphics/Rect;Landroid/graphics/Rect;)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction;->setEarlyWakeup()Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction;->setInputWindowInfo(Landroid/view/SurfaceControl;Landroid/view/InputWindowHandle;)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setLayer(Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setLayerStack(Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction;->setMatrix(Landroid/view/SurfaceControl;FFFF)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction;->setMatrix(Landroid/view/SurfaceControl;Landroid/graphics/Matrix;[F)Landroid/view/SurfaceControl$Transaction;
+PLandroid/view/SurfaceControl$Transaction;->setOpaque(Landroid/view/SurfaceControl;Z)Landroid/view/SurfaceControl$Transaction;
+PLandroid/view/SurfaceControl$Transaction;->setOverrideScalingMode(Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction;->setPosition(Landroid/view/SurfaceControl;FF)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setRelativeLayer(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl;I)Landroid/view/SurfaceControl$Transaction;
+PLandroid/view/SurfaceControl$Transaction;->setSecure(Landroid/view/SurfaceControl;Z)Landroid/view/SurfaceControl$Transaction;
+PLandroid/view/SurfaceControl$Transaction;->setTransparentRegionHint(Landroid/view/SurfaceControl;Landroid/graphics/Region;)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->setWindowCrop(Landroid/view/SurfaceControl;II)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceControl$Transaction;->setWindowCrop(Landroid/view/SurfaceControl;Landroid/graphics/Rect;)Landroid/view/SurfaceControl$Transaction;
+HSPLandroid/view/SurfaceControl$Transaction;->show(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
HSPLandroid/view/SurfaceControl$Transaction;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/view/SurfaceControl;-><init>()V
+HSPLandroid/view/SurfaceControl;-><init>(Landroid/view/SurfaceSession;Ljava/lang/String;IIIILandroid/view/SurfaceControl;Landroid/util/SparseIntArray;)V
+HSPLandroid/view/SurfaceControl;-><init>(Landroid/view/SurfaceSession;Ljava/lang/String;IIIILandroid/view/SurfaceControl;Landroid/util/SparseIntArray;Landroid/view/SurfaceControl$1;)V
+PLandroid/view/SurfaceControl;->access$1000(JJFF)V
+PLandroid/view/SurfaceControl;->access$1100(JJII)V
+HSPLandroid/view/SurfaceControl;->access$1200(JJI)V
+HSPLandroid/view/SurfaceControl;->access$1300(JJJI)V
+PLandroid/view/SurfaceControl;->access$1400(JJLandroid/graphics/Region;)V
+PLandroid/view/SurfaceControl;->access$1500(JJF)V
+HPLandroid/view/SurfaceControl;->access$1600(JJLandroid/view/InputWindowHandle;)V
+HPLandroid/view/SurfaceControl;->access$1900(JJFFFF)V
+PLandroid/view/SurfaceControl;->access$2100(JJZ)V
+HSPLandroid/view/SurfaceControl;->access$2200(JJIIII)V
+PLandroid/view/SurfaceControl;->access$2300(JJF)V
+HSPLandroid/view/SurfaceControl;->access$2400(JJI)V
+PLandroid/view/SurfaceControl;->access$2500(JJJJ)V
+PLandroid/view/SurfaceControl;->access$2800(JJJ)V
+PLandroid/view/SurfaceControl;->access$2900(JJ)V
+HSPLandroid/view/SurfaceControl;->access$300()J
+PLandroid/view/SurfaceControl;->access$3000(JJI)V
+PLandroid/view/SurfaceControl;->access$3100(JJ[F)V
+HSPLandroid/view/SurfaceControl;->access$3300(JLandroid/os/IBinder;I)V
+HSPLandroid/view/SurfaceControl;->access$3400(JLandroid/os/IBinder;IIIIIIIII)V
+PLandroid/view/SurfaceControl;->access$3600(J)V
+PLandroid/view/SurfaceControl;->access$3700(J)V
+HSPLandroid/view/SurfaceControl;->access$400(JZ)V
+HSPLandroid/view/SurfaceControl;->access$4000(JJ)V
HSPLandroid/view/SurfaceControl;->access$4100(JLandroid/os/Parcel;)V
+HPLandroid/view/SurfaceControl;->access$4200(Landroid/os/Parcel;)J
+PLandroid/view/SurfaceControl;->access$500(Landroid/view/SurfaceControl;)Ljava/lang/Object;
+PLandroid/view/SurfaceControl;->access$602(Landroid/view/SurfaceControl;I)I
+PLandroid/view/SurfaceControl;->access$702(Landroid/view/SurfaceControl;I)I
+HSPLandroid/view/SurfaceControl;->access$800(Landroid/view/SurfaceControl;)V
+HSPLandroid/view/SurfaceControl;->access$900(JJII)V
+PLandroid/view/SurfaceControl;->assignNativeObject(J)V
+PLandroid/view/SurfaceControl;->captureLayers(Landroid/view/SurfaceControl;Landroid/graphics/Rect;FI)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
+HSPLandroid/view/SurfaceControl;->checkNotReleased()V
+HSPLandroid/view/SurfaceControl;->closeTransaction()V
+PLandroid/view/SurfaceControl;->copyFrom(Landroid/view/SurfaceControl;)V
+PLandroid/view/SurfaceControl;->deferTransactionUntil(Landroid/view/SurfaceControl;J)V
+PLandroid/view/SurfaceControl;->detachChildren()V
+HPLandroid/view/SurfaceControl;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HSPLandroid/view/SurfaceControl;->finalize()V
+HSPLandroid/view/SurfaceControl;->getActiveColorMode(Landroid/os/IBinder;)I
+HSPLandroid/view/SurfaceControl;->getActiveConfig(Landroid/os/IBinder;)I
+HSPLandroid/view/SurfaceControl;->getAllowedDisplayConfigs(Landroid/os/IBinder;)[I
+HSPLandroid/view/SurfaceControl;->getCompositionColorSpaces()[Landroid/graphics/ColorSpace;
+HSPLandroid/view/SurfaceControl;->getDisplayBrightnessSupport(Landroid/os/IBinder;)Z
+HSPLandroid/view/SurfaceControl;->getDisplayColorModes(Landroid/os/IBinder;)[I
+HSPLandroid/view/SurfaceControl;->getDisplayConfigs(Landroid/os/IBinder;)[Landroid/view/SurfaceControl$PhysicalDisplayInfo;
+PLandroid/view/SurfaceControl;->getDisplayNativePrimaries(Landroid/os/IBinder;)Landroid/view/SurfaceControl$DisplayPrimaries;
+HSPLandroid/view/SurfaceControl;->getHdrCapabilities(Landroid/os/IBinder;)Landroid/view/Display$HdrCapabilities;
+PLandroid/view/SurfaceControl;->getHeight()I
+HSPLandroid/view/SurfaceControl;->getInternalDisplayToken()Landroid/os/IBinder;
+HSPLandroid/view/SurfaceControl;->getPhysicalDisplayIds()[J
+HSPLandroid/view/SurfaceControl;->getPhysicalDisplayToken(J)Landroid/os/IBinder;
+PLandroid/view/SurfaceControl;->getWidth()I
+PLandroid/view/SurfaceControl;->isValid()Z
+HSPLandroid/view/SurfaceControl;->mergeToGlobalTransaction(Landroid/view/SurfaceControl$Transaction;)V
+HSPLandroid/view/SurfaceControl;->openTransaction()V
HSPLandroid/view/SurfaceControl;->readFromParcel(Landroid/os/Parcel;)V
HSPLandroid/view/SurfaceControl;->release()V
+PLandroid/view/SurfaceControl;->rotateCropForSF(Landroid/graphics/Rect;I)V
+PLandroid/view/SurfaceControl;->screenshot(Landroid/graphics/Rect;IIZI)Landroid/graphics/Bitmap;
+PLandroid/view/SurfaceControl;->screenshot(Landroid/os/IBinder;Landroid/view/Surface;)V
+PLandroid/view/SurfaceControl;->screenshot(Landroid/os/IBinder;Landroid/view/Surface;Landroid/graphics/Rect;IIZI)V
+PLandroid/view/SurfaceControl;->screenshotToBuffer(Landroid/os/IBinder;Landroid/graphics/Rect;IIZI)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
+PLandroid/view/SurfaceControl;->screenshotToBufferWithSecureLayersUnsafe(Landroid/os/IBinder;Landroid/graphics/Rect;IIZI)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
+HSPLandroid/view/SurfaceControl;->setAllowedDisplayConfigs(Landroid/os/IBinder;[I)Z
+HPLandroid/view/SurfaceControl;->setAlpha(F)V
+PLandroid/view/SurfaceControl;->setBufferSize(II)V
+PLandroid/view/SurfaceControl;->setColorSpaceAgnostic(Z)V
+HSPLandroid/view/SurfaceControl;->setDesiredDisplayConfigSpecs(Landroid/os/IBinder;Landroid/view/SurfaceControl$DesiredDisplayConfigSpecs;)Z
+HSPLandroid/view/SurfaceControl;->setDisplayPowerMode(Landroid/os/IBinder;I)V
+HSPLandroid/view/SurfaceControl;->setGlobalShadowSettings([F[FFFF)V
+HPLandroid/view/SurfaceControl;->setMatrix(FFFF)V
+PLandroid/view/SurfaceControl;->setOpaque(Z)V
+PLandroid/view/SurfaceControl;->setOverrideScalingMode(I)V
+PLandroid/view/SurfaceControl;->setPosition(FF)V
+PLandroid/view/SurfaceControl;->setSecure(Z)V
+PLandroid/view/SurfaceControl;->setTransparentRegionHint(Landroid/graphics/Region;)V
+PLandroid/view/SurfaceControl;->setWindowCrop(Landroid/graphics/Rect;)V
+PLandroid/view/SurfaceControl;->show()V
+HPLandroid/view/SurfaceControl;->toString()Ljava/lang/String;
+HSPLandroid/view/SurfaceControl;->validateColorArg([F)V
+HPLandroid/view/SurfaceControl;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/view/SurfaceSession;-><init>()V
-PLandroid/view/SurfaceSession;->finalize()V
+HSPLandroid/view/SurfaceSession;->finalize()V
+PLandroid/view/SurfaceSession;->kill()V
+HPLandroid/view/SurfaceView$1;->positionChanged(JIIII)V
+HPLandroid/view/SurfaceView$1;->positionLost(J)V
+HSPLandroid/view/SurfaceView$2;->addCallback(Landroid/view/SurfaceHolder$Callback;)V
+HPLandroid/view/SurfaceView$2;->getSurface()Landroid/view/Surface;
+HPLandroid/view/SurfaceView$2;->removeCallback(Landroid/view/SurfaceHolder$Callback;)V
+HSPLandroid/view/SurfaceView$2;->setFormat(I)V
+HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;)V
+HPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/view/SurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/view/SurfaceView;->access$002(Landroid/view/SurfaceView;Z)Z
+HPLandroid/view/SurfaceView;->access$100(Landroid/view/SurfaceView;)Landroid/graphics/Rect;
+HPLandroid/view/SurfaceView;->access$200(Landroid/view/SurfaceView;Landroid/graphics/Rect;J)V
+HPLandroid/view/SurfaceView;->access$300(Landroid/view/SurfaceView;)Landroid/view/SurfaceControl$Transaction;
+HPLandroid/view/SurfaceView;->access$400(Landroid/view/SurfaceView;)Z
+HPLandroid/view/SurfaceView;->access$402(Landroid/view/SurfaceView;Z)Z
+HPLandroid/view/SurfaceView;->applyChildSurfaceTransaction_renderWorker(Landroid/view/SurfaceControl$Transaction;Landroid/view/Surface;J)V
+HPLandroid/view/SurfaceView;->applySurfaceTransforms(Landroid/view/SurfaceControl;Landroid/graphics/Rect;J)V
+HPLandroid/view/SurfaceView;->clearSurfaceViewPort(Landroid/graphics/Canvas;)V
+HPLandroid/view/SurfaceView;->dispatchDraw(Landroid/graphics/Canvas;)V
+HPLandroid/view/SurfaceView;->gatherTransparentRegion(Landroid/graphics/Region;)Z
+HSPLandroid/view/SurfaceView;->getHolder()Landroid/view/SurfaceHolder;
+HPLandroid/view/SurfaceView;->getSurfaceCallbacks()[Landroid/view/SurfaceHolder$Callback;
+HPLandroid/view/SurfaceView;->isAboveParent()Z
+HPLandroid/view/SurfaceView;->lambda$SyyzxOgxKwZMRgiiTGcRYbOU5JY(Landroid/view/SurfaceView;)V
+HPLandroid/view/SurfaceView;->lambda$TWz4D2u33ZlAmRtgKzbqqDue3iM(Landroid/view/SurfaceView;)V
+HPLandroid/view/SurfaceView;->lambda$new$0$SurfaceView()Z
+HPLandroid/view/SurfaceView;->notifyDrawFinished()V
+HPLandroid/view/SurfaceView;->onAttachedToWindow()V
+HPLandroid/view/SurfaceView;->onDetachedFromWindow()V
+HPLandroid/view/SurfaceView;->onDrawFinished()V
+HPLandroid/view/SurfaceView;->onMeasure(II)V
+HPLandroid/view/SurfaceView;->onWindowVisibilityChanged(I)V
+HPLandroid/view/SurfaceView;->performDrawFinished()V
+HPLandroid/view/SurfaceView;->releaseSurfaces()V
+HPLandroid/view/SurfaceView;->runOnUiThread(Ljava/lang/Runnable;)V
+HPLandroid/view/SurfaceView;->setFrame(IIII)Z
+HPLandroid/view/SurfaceView;->setParentSpaceRectangle(Landroid/graphics/Rect;J)V
+HPLandroid/view/SurfaceView;->setSecure(Z)V
+HSPLandroid/view/SurfaceView;->setVisibility(I)V
+HPLandroid/view/SurfaceView;->setWindowStopped(Z)V
+HSPLandroid/view/SurfaceView;->setZOrderMediaOverlay(Z)V
+HPLandroid/view/SurfaceView;->surfaceCreated(Landroid/view/SurfaceControl$Transaction;)V
+HPLandroid/view/SurfaceView;->surfaceDestroyed()V
+HPLandroid/view/SurfaceView;->updateBackgroundVisibility(Landroid/view/SurfaceControl$Transaction;)V
+HPLandroid/view/SurfaceView;->updateOpaqueFlag()V
+HPLandroid/view/SurfaceView;->updateRelativeZ(Landroid/view/SurfaceControl$Transaction;)V
+HPLandroid/view/SurfaceView;->updateRequestedVisibility()V
+HSPLandroid/view/SurfaceView;->updateSurface()V
+HPLandroid/view/TextureLayer;-><init>(Landroid/graphics/HardwareRenderer;J)V
+HPLandroid/view/TextureLayer;->adoptTextureLayer(Landroid/graphics/HardwareRenderer;J)Landroid/view/TextureLayer;
+HPLandroid/view/TextureLayer;->copyInto(Landroid/graphics/Bitmap;)Z
+HPLandroid/view/TextureLayer;->destroy()V
+HPLandroid/view/TextureLayer;->detachSurfaceTexture()V
+HPLandroid/view/TextureLayer;->getDeferredLayerUpdater()J
+HPLandroid/view/TextureLayer;->getLayerHandle()J
+HPLandroid/view/TextureLayer;->isValid()Z
+HPLandroid/view/TextureLayer;->prepare(IIZ)Z
+HPLandroid/view/TextureLayer;->setLayerPaint(Landroid/graphics/Paint;)V
+HPLandroid/view/TextureLayer;->setSurfaceTexture(Landroid/graphics/SurfaceTexture;)V
+HPLandroid/view/TextureLayer;->updateSurfaceTexture()V
+HPLandroid/view/TextureView;-><init>(Landroid/content/Context;)V
+HPLandroid/view/TextureView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/view/TextureView;->applyTransformMatrix()V
+HPLandroid/view/TextureView;->applyUpdate()V
+HPLandroid/view/TextureView;->destroyHardwareLayer()V
+HPLandroid/view/TextureView;->destroyHardwareResources()V
+HPLandroid/view/TextureView;->draw(Landroid/graphics/Canvas;)V
+HPLandroid/view/TextureView;->getBitmap()Landroid/graphics/Bitmap;
+HPLandroid/view/TextureView;->getBitmap(II)Landroid/graphics/Bitmap;
+HPLandroid/view/TextureView;->getBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
+HPLandroid/view/TextureView;->getLayerType()I
+HPLandroid/view/TextureView;->getSurfaceTexture()Landroid/graphics/SurfaceTexture;
+HPLandroid/view/TextureView;->getSurfaceTextureListener()Landroid/view/TextureView$SurfaceTextureListener;
+HPLandroid/view/TextureView;->getTextureLayer()Landroid/view/TextureLayer;
+HPLandroid/view/TextureView;->isAvailable()Z
+HPLandroid/view/TextureView;->isOpaque()Z
+HPLandroid/view/TextureView;->lambda$new$0$TextureView(Landroid/graphics/SurfaceTexture;)V
+HPLandroid/view/TextureView;->onAttachedToWindow()V
+HPLandroid/view/TextureView;->onDetachedFromWindowInternal()V
+HPLandroid/view/TextureView;->onSizeChanged(IIII)V
+HPLandroid/view/TextureView;->onVisibilityChanged(Landroid/view/View;I)V
+HPLandroid/view/TextureView;->releaseSurfaceTexture()V
+HPLandroid/view/TextureView;->setSurfaceTextureListener(Landroid/view/TextureView$SurfaceTextureListener;)V
+HPLandroid/view/TextureView;->updateLayer()V
HSPLandroid/view/ThreadedRenderer;-><init>(Landroid/content/Context;ZLjava/lang/String;)V
+PLandroid/view/ThreadedRenderer;->create(Landroid/content/Context;ZLjava/lang/String;)Landroid/view/ThreadedRenderer;
+PLandroid/view/ThreadedRenderer;->destroy()V
+PLandroid/view/ThreadedRenderer;->destroyHardwareResources(Landroid/view/View;)V
+PLandroid/view/ThreadedRenderer;->destroyResources(Landroid/view/View;)V
HSPLandroid/view/ThreadedRenderer;->draw(Landroid/view/View;Landroid/view/View$AttachInfo;Landroid/view/ThreadedRenderer$DrawCallbacks;)V
+HSPLandroid/view/ThreadedRenderer;->enableForegroundTrimming()V
HSPLandroid/view/ThreadedRenderer;->getHeight()I
HSPLandroid/view/ThreadedRenderer;->getWidth()I
HSPLandroid/view/ThreadedRenderer;->initialize(Landroid/view/Surface;)Z
+PLandroid/view/ThreadedRenderer;->isAvailable()Z
HSPLandroid/view/ThreadedRenderer;->isEnabled()Z
+HPLandroid/view/ThreadedRenderer;->lambda$updateRootDisplayList$0(Ljava/util/ArrayList;J)V
+PLandroid/view/ThreadedRenderer;->loadSystemProperties()Z
+PLandroid/view/ThreadedRenderer;->setEnabled(Z)V
+PLandroid/view/ThreadedRenderer;->setLightCenter(Landroid/view/View$AttachInfo;)V
+PLandroid/view/ThreadedRenderer;->setRequested(Z)V
+PLandroid/view/ThreadedRenderer;->setSurface(Landroid/view/Surface;)V
HSPLandroid/view/ThreadedRenderer;->setup(IILandroid/view/View$AttachInfo;Landroid/graphics/Rect;)V
+PLandroid/view/ThreadedRenderer;->updateEnabledState(Landroid/view/Surface;)V
HSPLandroid/view/ThreadedRenderer;->updateRootDisplayList(Landroid/view/View;Landroid/view/ThreadedRenderer$DrawCallbacks;)V
+HSPLandroid/view/ThreadedRenderer;->updateSurface(Landroid/view/Surface;)V
HSPLandroid/view/ThreadedRenderer;->updateViewTreeDisplayList(Landroid/view/View;)V
+HSPLandroid/view/TouchDelegate;-><init>(Landroid/graphics/Rect;Landroid/view/View;)V
+HPLandroid/view/TouchDelegate;->onTouchEvent(Landroid/view/MotionEvent;)Z
+PLandroid/view/VelocityTracker;-><init>(Ljava/lang/String;)V
HSPLandroid/view/VelocityTracker;->addMovement(Landroid/view/MotionEvent;)V
HSPLandroid/view/VelocityTracker;->clear()V
-HSPLandroid/view/VelocityTracker;->computeCurrentVelocity(IF)V
-HSPLandroid/view/VelocityTracker;->getXVelocity(I)F
+HPLandroid/view/VelocityTracker;->computeCurrentVelocity(I)V
+PLandroid/view/VelocityTracker;->computeCurrentVelocity(IF)V
+HPLandroid/view/VelocityTracker;->finalize()V
+HPLandroid/view/VelocityTracker;->getXVelocity()F
+PLandroid/view/VelocityTracker;->getXVelocity(I)F
+HPLandroid/view/VelocityTracker;->getYVelocity()F
+PLandroid/view/VelocityTracker;->getYVelocity(I)F
HSPLandroid/view/VelocityTracker;->obtain()Landroid/view/VelocityTracker;
HSPLandroid/view/VelocityTracker;->recycle()V
+HPLandroid/view/View$10;->setValue(Landroid/view/View;F)V
+HPLandroid/view/View$10;->setValue(Ljava/lang/Object;F)V
+HPLandroid/view/View$13;->get(Landroid/view/View;)Ljava/lang/Float;
+HPLandroid/view/View$13;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/view/View$13;->setValue(Landroid/view/View;F)V
+HPLandroid/view/View$13;->setValue(Ljava/lang/Object;F)V
+HPLandroid/view/View$14;->get(Landroid/view/View;)Ljava/lang/Float;
+HPLandroid/view/View$14;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/view/View$14;->setValue(Landroid/view/View;F)V
+HPLandroid/view/View$14;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/view/View$1;->positionChanged(JIIII)V
+HSPLandroid/view/View$1;->positionLost(J)V
+HPLandroid/view/View$3;->get(Landroid/view/View;)Ljava/lang/Float;
+HPLandroid/view/View$3;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/view/View$3;->setValue(Landroid/view/View;F)V
+HSPLandroid/view/View$3;->setValue(Ljava/lang/Object;F)V
+HPLandroid/view/View$4;->get(Landroid/view/View;)Ljava/lang/Float;
+HPLandroid/view/View$4;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/view/View$4;->setValue(Landroid/view/View;F)V
+HSPLandroid/view/View$4;->setValue(Ljava/lang/Object;F)V
+HPLandroid/view/View$5;->get(Landroid/view/View;)Ljava/lang/Float;
+HPLandroid/view/View$5;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/view/View$5;->setValue(Landroid/view/View;F)V
+HSPLandroid/view/View$5;->setValue(Ljava/lang/Object;F)V
+HSPLandroid/view/View$6;->get(Landroid/view/View;)Ljava/lang/Float;
+HSPLandroid/view/View$6;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLandroid/view/View$6;->setValue(Landroid/view/View;F)V
+HSPLandroid/view/View$6;->setValue(Ljava/lang/Object;F)V
+HPLandroid/view/View$7;->get(Landroid/view/View;)Ljava/lang/Float;
+HPLandroid/view/View$7;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/view/View$7;->setValue(Landroid/view/View;F)V
+HPLandroid/view/View$7;->setValue(Ljava/lang/Object;F)V
+HPLandroid/view/View$8;->get(Landroid/view/View;)Ljava/lang/Float;
+HPLandroid/view/View$8;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/view/View$8;->setValue(Landroid/view/View;F)V
+HPLandroid/view/View$8;->setValue(Ljava/lang/Object;F)V
HSPLandroid/view/View$AccessibilityDelegate;-><init>()V
-HSPLandroid/view/View$AccessibilityDelegate;->sendAccessibilityEvent(Landroid/view/View;I)V
+HPLandroid/view/View$AccessibilityDelegate;->createAccessibilityNodeInfo(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeInfo;
+HPLandroid/view/View$AccessibilityDelegate;->getAccessibilityNodeProvider(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeProvider;
+HPLandroid/view/View$AccessibilityDelegate;->onInitializeAccessibilityNodeInfo(Landroid/view/View;Landroid/view/accessibility/AccessibilityNodeInfo;)V
+HPLandroid/view/View$AccessibilityDelegate;->sendAccessibilityEvent(Landroid/view/View;I)V
HSPLandroid/view/View$AttachInfo;-><init>(Landroid/view/IWindowSession;Landroid/view/IWindow;Landroid/view/Display;Landroid/view/ViewRootImpl;Landroid/os/Handler;Landroid/view/View$AttachInfo$Callbacks;Landroid/content/Context;)V
+HSPLandroid/view/View$BaseSavedState;-><init>(Landroid/os/Parcelable;)V
+HSPLandroid/view/View$BaseSavedState;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/View$CheckForLongPress;->run()V
+HPLandroid/view/View$CheckForTap;->run()V
+PLandroid/view/View$ForegroundInfo;-><init>()V
+PLandroid/view/View$ForegroundInfo;-><init>(Landroid/view/View$1;)V
HSPLandroid/view/View$ForegroundInfo;->access$100(Landroid/view/View$ForegroundInfo;)Z
HSPLandroid/view/View$ForegroundInfo;->access$102(Landroid/view/View$ForegroundInfo;Z)Z
+PLandroid/view/View$ForegroundInfo;->access$1500(Landroid/view/View$ForegroundInfo;)Landroid/graphics/drawable/Drawable;
+PLandroid/view/View$ForegroundInfo;->access$2102(Landroid/view/View$ForegroundInfo;Z)Z
+PLandroid/view/View$ForegroundInfo;->access$2600(Landroid/view/View$ForegroundInfo;)I
+PLandroid/view/View$ForegroundInfo;->access$2602(Landroid/view/View$ForegroundInfo;I)I
+PLandroid/view/View$ListenerInfo;-><init>()V
+HSPLandroid/view/View$ListenerInfo;->access$1700(Landroid/view/View$ListenerInfo;)Landroid/view/View$OnSystemUiVisibilityChangeListener;
+HSPLandroid/view/View$ListenerInfo;->access$1702(Landroid/view/View$ListenerInfo;Landroid/view/View$OnSystemUiVisibilityChangeListener;)Landroid/view/View$OnSystemUiVisibilityChangeListener;
+HPLandroid/view/View$MatchLabelForPredicate;-><init>()V
+HPLandroid/view/View$MatchLabelForPredicate;-><init>(Landroid/view/View$1;)V
+HPLandroid/view/View$MatchLabelForPredicate;->access$1102(Landroid/view/View$MatchLabelForPredicate;I)I
+HPLandroid/view/View$MatchLabelForPredicate;->test(Landroid/view/View;)Z
+HPLandroid/view/View$MatchLabelForPredicate;->test(Ljava/lang/Object;)Z
HSPLandroid/view/View$MeasureSpec;->getMode(I)I
HSPLandroid/view/View$MeasureSpec;->getSize(I)I
HSPLandroid/view/View$MeasureSpec;->makeMeasureSpec(II)I
HSPLandroid/view/View$MeasureSpec;->makeSafeMeasureSpec(II)I
+HSPLandroid/view/View$PerformClick;->run()V
+HSPLandroid/view/View$ScrollabilityCache;-><init>(Landroid/view/ViewConfiguration;Landroid/view/View;)V
+HSPLandroid/view/View$ScrollabilityCache;->run()V
+HSPLandroid/view/View$TintInfo;-><init>()V
+PLandroid/view/View$TransformationInfo;-><init>()V
+PLandroid/view/View$TransformationInfo;->access$2200(Landroid/view/View$TransformationInfo;)Landroid/graphics/Matrix;
+HSPLandroid/view/View$TransformationInfo;->access$2400(Landroid/view/View$TransformationInfo;)F
+HSPLandroid/view/View$UnsetPressedState;->run()V
+HSPLandroid/view/View$VisibilityChangeForAutofillHandler;->handleMessage(Landroid/os/Message;)V
HSPLandroid/view/View;-><init>(Landroid/content/Context;)V
HSPLandroid/view/View;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
HSPLandroid/view/View;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
HSPLandroid/view/View;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/view/View;->access$3100()Z
+HPLandroid/view/View;->access$3200(Landroid/view/View;I)V
+HPLandroid/view/View;->access$3302(Landroid/view/View;Z)Z
+HPLandroid/view/View;->access$3800(Landroid/view/View;)I
+HSPLandroid/view/View;->addFocusables(Ljava/util/ArrayList;I)V
+HSPLandroid/view/View;->addFocusables(Ljava/util/ArrayList;II)V
+HSPLandroid/view/View;->addFrameMetricsListener(Landroid/view/Window;Landroid/view/Window$OnFrameMetricsAvailableListener;Landroid/os/Handler;)V
HSPLandroid/view/View;->addOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V
HSPLandroid/view/View;->addOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V
HSPLandroid/view/View;->animate()Landroid/view/ViewPropertyAnimator;
+HPLandroid/view/View;->announceForAccessibility(Ljava/lang/CharSequence;)V
HSPLandroid/view/View;->applyBackgroundTint()V
+HSPLandroid/view/View;->applyForegroundTint()V
+HSPLandroid/view/View;->applyLegacyAnimation(Landroid/view/ViewGroup;JLandroid/view/animation/Animation;Z)Z
HSPLandroid/view/View;->areDrawablesResolved()Z
HSPLandroid/view/View;->assignParent(Landroid/view/ViewParent;)V
+HSPLandroid/view/View;->awakenScrollBars()Z
+HPLandroid/view/View;->awakenScrollBars(I)Z
+HSPLandroid/view/View;->awakenScrollBars(IZ)Z
+HSPLandroid/view/View;->bringToFront()V
+HPLandroid/view/View;->buildDrawingCache(Z)V
+HPLandroid/view/View;->buildDrawingCacheImpl(Z)V
+HPLandroid/view/View;->buildLayer()V
HSPLandroid/view/View;->calculateIsImportantForContentCapture()Z
HSPLandroid/view/View;->canHaveDisplayList()Z
HSPLandroid/view/View;->canNotifyAutofillEnterExitEvent()Z
+HSPLandroid/view/View;->canReceivePointerEvents()Z
HSPLandroid/view/View;->canResolveLayoutDirection()Z
HSPLandroid/view/View;->canResolveTextDirection()Z
+HPLandroid/view/View;->canScrollHorizontally(I)Z
+HSPLandroid/view/View;->canScrollVertically(I)Z
HSPLandroid/view/View;->canTakeFocus()Z
+PLandroid/view/View;->cancel(Landroid/view/View$SendViewScrolledAccessibilityEvent;)V
HSPLandroid/view/View;->cancelLongPress()V
+HSPLandroid/view/View;->cancelPendingInputEvents()V
+HPLandroid/view/View;->checkForLongClick(JFFI)V
+HSPLandroid/view/View;->checkInputConnectionProxy(Landroid/view/View;)Z
+PLandroid/view/View;->cleanupDraw()V
HSPLandroid/view/View;->clearAccessibilityFocus()V
HSPLandroid/view/View;->clearAccessibilityFocusNoCallbacks(I)V
+HSPLandroid/view/View;->clearAnimation()V
+HPLandroid/view/View;->clearFocus()V
+HSPLandroid/view/View;->clearFocusInternal(Landroid/view/View;ZZ)V
+HPLandroid/view/View;->clearParentsWantFocus()V
+HSPLandroid/view/View;->combineMeasuredStates(II)I
HSPLandroid/view/View;->combineVisibility(II)I
HSPLandroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
+HPLandroid/view/View;->computeHorizontalScrollExtent()I
+HPLandroid/view/View;->computeHorizontalScrollOffset()I
+HPLandroid/view/View;->computeHorizontalScrollRange()I
HSPLandroid/view/View;->computeOpaqueFlags()V
HSPLandroid/view/View;->computeScroll()V
HSPLandroid/view/View;->computeSystemWindowInsets(Landroid/view/WindowInsets;Landroid/graphics/Rect;)Landroid/view/WindowInsets;
+HSPLandroid/view/View;->computeVerticalScrollExtent()I
+HSPLandroid/view/View;->computeVerticalScrollOffset()I
+HSPLandroid/view/View;->computeVerticalScrollRange()I
+HPLandroid/view/View;->createAccessibilityNodeInfo()Landroid/view/accessibility/AccessibilityNodeInfo;
+HPLandroid/view/View;->createAccessibilityNodeInfoInternal()Landroid/view/accessibility/AccessibilityNodeInfo;
HSPLandroid/view/View;->damageInParent()V
+PLandroid/view/View;->debugDraw()Z
HSPLandroid/view/View;->destroyDrawingCache()V
HSPLandroid/view/View;->destroyHardwareResources()V
HSPLandroid/view/View;->dispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
HSPLandroid/view/View;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V
HSPLandroid/view/View;->dispatchCancelPendingInputEvents()V
HSPLandroid/view/View;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)V
+HPLandroid/view/View;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V
HSPLandroid/view/View;->dispatchDetachedFromWindow()V
HSPLandroid/view/View;->dispatchDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/view/View;->dispatchDrawableHotspotChanged(FF)V
+HSPLandroid/view/View;->dispatchFinishTemporaryDetach()V
+HPLandroid/view/View;->dispatchKeyEventPreIme(Landroid/view/KeyEvent;)Z
+HPLandroid/view/View;->dispatchNestedFling(FFZ)Z
+HPLandroid/view/View;->dispatchNestedPreFling(FF)Z
+HPLandroid/view/View;->dispatchNestedPreScroll(II[I[I)Z
+HPLandroid/view/View;->dispatchNestedScroll(IIII[I)Z
+HPLandroid/view/View;->dispatchProvideAutofillStructure(Landroid/view/ViewStructure;I)V
+HPLandroid/view/View;->dispatchProvideStructure(Landroid/view/ViewStructure;)V
+HPLandroid/view/View;->dispatchProvideStructure(Landroid/view/ViewStructure;II)V
+HSPLandroid/view/View;->dispatchRestoreInstanceState(Landroid/util/SparseArray;)V
+HSPLandroid/view/View;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V
+HPLandroid/view/View;->dispatchScreenStateChanged(I)V
+HSPLandroid/view/View;->dispatchSetActivated(Z)V
+HSPLandroid/view/View;->dispatchSetPressed(Z)V
+HSPLandroid/view/View;->dispatchSetSelected(Z)V
+HSPLandroid/view/View;->dispatchStartTemporaryDetach()V
+HSPLandroid/view/View;->dispatchSystemUiVisibilityChanged(I)V
+HSPLandroid/view/View;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
HSPLandroid/view/View;->dispatchVisibilityAggregated(Z)Z
HSPLandroid/view/View;->dispatchVisibilityChanged(Landroid/view/View;I)V
HSPLandroid/view/View;->dispatchWindowFocusChanged(Z)V
@@ -7302,66 +25197,132 @@ HSPLandroid/view/View;->draw(Landroid/graphics/Canvas;Landroid/view/ViewGroup;J)
HSPLandroid/view/View;->drawAutofilledHighlight(Landroid/graphics/Canvas;)V
HSPLandroid/view/View;->drawBackground(Landroid/graphics/Canvas;)V
HSPLandroid/view/View;->drawDefaultFocusHighlight(Landroid/graphics/Canvas;)V
+HSPLandroid/view/View;->drawableHotspotChanged(FF)V
HSPLandroid/view/View;->drawableStateChanged()V
HSPLandroid/view/View;->ensureTransformationInfo()V
+PLandroid/view/View;->findFocus()Landroid/view/View;
+HPLandroid/view/View;->findFrameMetricsObserver(Landroid/view/Window$OnFrameMetricsAvailableListener;)Landroid/view/FrameMetricsObserver;
+HSPLandroid/view/View;->findKeyboardNavigationCluster()Landroid/view/View;
+HPLandroid/view/View;->findLabelForView(Landroid/view/View;I)Landroid/view/View;
+HPLandroid/view/View;->findUserSetNextFocus(Landroid/view/View;I)Landroid/view/View;
HSPLandroid/view/View;->findViewById(I)Landroid/view/View;
+HPLandroid/view/View;->findViewByPredicate(Ljava/util/function/Predicate;)Landroid/view/View;
+HPLandroid/view/View;->findViewByPredicateInsideOut(Landroid/view/View;Ljava/util/function/Predicate;)Landroid/view/View;
+HPLandroid/view/View;->findViewByPredicateTraversal(Ljava/util/function/Predicate;Landroid/view/View;)Landroid/view/View;
HSPLandroid/view/View;->findViewTraversal(I)Landroid/view/View;
+HPLandroid/view/View;->findViewWithTag(Ljava/lang/Object;)Landroid/view/View;
+HPLandroid/view/View;->findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View;
HSPLandroid/view/View;->fitSystemWindows(Landroid/graphics/Rect;)Z
HSPLandroid/view/View;->fitSystemWindowsInt(Landroid/graphics/Rect;)Z
+HPLandroid/view/View;->focusSearch(I)Landroid/view/View;
+HPLandroid/view/View;->forceHasOverlappingRendering(Z)V
HSPLandroid/view/View;->forceLayout()V
+HPLandroid/view/View;->gatherTransparentRegion(Landroid/graphics/Region;)Z
+HSPLandroid/view/View;->generateViewId()I
+HPLandroid/view/View;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HSPLandroid/view/View;->getAccessibilityDelegate()Landroid/view/View$AccessibilityDelegate;
+HSPLandroid/view/View;->getAccessibilityLiveRegion()I
+HSPLandroid/view/View;->getAccessibilityNodeProvider()Landroid/view/accessibility/AccessibilityNodeProvider;
+HPLandroid/view/View;->getAccessibilityPaneTitle()Ljava/lang/CharSequence;
HSPLandroid/view/View;->getAccessibilityViewId()I
+HPLandroid/view/View;->getAccessibilityWindowId()I
HSPLandroid/view/View;->getAlpha()F
+HPLandroid/view/View;->getAndCacheContentCaptureSession()Landroid/view/contentcapture/ContentCaptureSession;
HSPLandroid/view/View;->getAnimation()Landroid/view/animation/Animation;
+HPLandroid/view/View;->getAutofillHints()[Ljava/lang/String;
+HSPLandroid/view/View;->getAutofillId()Landroid/view/autofill/AutofillId;
HSPLandroid/view/View;->getAutofillType()I
HSPLandroid/view/View;->getAutofillViewId()I
HSPLandroid/view/View;->getBackground()Landroid/graphics/drawable/Drawable;
HSPLandroid/view/View;->getBaseline()I
HSPLandroid/view/View;->getBottom()I
+HPLandroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;)V
+HPLandroid/view/View;->getBoundsOnScreen(Landroid/graphics/Rect;Z)V
+HPLandroid/view/View;->getClipBounds()Landroid/graphics/Rect;
+PLandroid/view/View;->getClipToOutline()Z
+HSPLandroid/view/View;->getContentDescription()Ljava/lang/CharSequence;
HSPLandroid/view/View;->getContext()Landroid/content/Context;
+HSPLandroid/view/View;->getDefaultSize(II)I
HSPLandroid/view/View;->getDisplay()Landroid/view/Display;
HSPLandroid/view/View;->getDrawableRenderNode(Landroid/graphics/drawable/Drawable;Landroid/graphics/RenderNode;)Landroid/graphics/RenderNode;
HSPLandroid/view/View;->getDrawableState()[I
+HSPLandroid/view/View;->getDrawingCache(Z)Landroid/graphics/Bitmap;
HSPLandroid/view/View;->getDrawingRect(Landroid/graphics/Rect;)V
HSPLandroid/view/View;->getDrawingTime()J
HSPLandroid/view/View;->getElevation()F
+HSPLandroid/view/View;->getFinalAlpha()F
+HSPLandroid/view/View;->getFitsSystemWindows()Z
HSPLandroid/view/View;->getFocusable()I
HSPLandroid/view/View;->getFocusableAttribute(Landroid/content/res/TypedArray;)I
+HSPLandroid/view/View;->getFocusables(I)Ljava/util/ArrayList;
+HPLandroid/view/View;->getFocusedRect(Landroid/graphics/Rect;)V
HSPLandroid/view/View;->getForeground()Landroid/graphics/drawable/Drawable;
HSPLandroid/view/View;->getForegroundGravity()I
+HSPLandroid/view/View;->getGlobalVisibleRect(Landroid/graphics/Rect;)Z
+HSPLandroid/view/View;->getGlobalVisibleRect(Landroid/graphics/Rect;Landroid/graphics/Point;)Z
+HSPLandroid/view/View;->getHandler()Landroid/os/Handler;
+PLandroid/view/View;->getHasOverlappingRendering()Z
HSPLandroid/view/View;->getHeight()I
+HSPLandroid/view/View;->getHitRect(Landroid/graphics/Rect;)V
+HPLandroid/view/View;->getHorizontalFadingEdgeLength()I
+HPLandroid/view/View;->getHorizontalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+HPLandroid/view/View;->getHorizontalScrollbarHeight()I
HSPLandroid/view/View;->getId()I
HSPLandroid/view/View;->getImportantForAccessibility()I
HSPLandroid/view/View;->getImportantForAutofill()I
HSPLandroid/view/View;->getImportantForContentCapture()I
+HPLandroid/view/View;->getInverseMatrix()Landroid/graphics/Matrix;
+HPLandroid/view/View;->getIterableTextForAccessibility()Ljava/lang/CharSequence;
+HPLandroid/view/View;->getKeyDispatcherState()Landroid/view/KeyEvent$DispatcherState;
HSPLandroid/view/View;->getLayerType()I
HSPLandroid/view/View;->getLayoutDirection()I
HSPLandroid/view/View;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams;
+HSPLandroid/view/View;->getLeft()I
HSPLandroid/view/View;->getListenerInfo()Landroid/view/View$ListenerInfo;
+HSPLandroid/view/View;->getLocalVisibleRect(Landroid/graphics/Rect;)Z
+HPLandroid/view/View;->getLocationInSurface([I)V
HSPLandroid/view/View;->getLocationInWindow([I)V
+HPLandroid/view/View;->getLocationOnScreen()[I
HSPLandroid/view/View;->getLocationOnScreen([I)V
HSPLandroid/view/View;->getMatrix()Landroid/graphics/Matrix;
HSPLandroid/view/View;->getMeasuredHeight()I
+HSPLandroid/view/View;->getMeasuredState()I
HSPLandroid/view/View;->getMeasuredWidth()I
+PLandroid/view/View;->getMeasuredWidthAndState()I
HSPLandroid/view/View;->getMinimumHeight()I
HSPLandroid/view/View;->getMinimumWidth()I
HSPLandroid/view/View;->getNotifiedContentCaptureAppeared()Z
+HPLandroid/view/View;->getOutlineProvider()Landroid/view/ViewOutlineProvider;
HSPLandroid/view/View;->getOverScrollMode()I
HSPLandroid/view/View;->getPaddingBottom()I
+HSPLandroid/view/View;->getPaddingEnd()I
HSPLandroid/view/View;->getPaddingLeft()I
HSPLandroid/view/View;->getPaddingRight()I
+HSPLandroid/view/View;->getPaddingStart()I
HSPLandroid/view/View;->getPaddingTop()I
HSPLandroid/view/View;->getParent()Landroid/view/ViewParent;
+HPLandroid/view/View;->getParentForAccessibility()Landroid/view/ViewParent;
+HSPLandroid/view/View;->getPivotX()F
+HSPLandroid/view/View;->getPivotY()F
HSPLandroid/view/View;->getRawLayoutDirection()I
HSPLandroid/view/View;->getRawTextAlignment()I
HSPLandroid/view/View;->getRawTextDirection()I
HSPLandroid/view/View;->getResources()Landroid/content/res/Resources;
+HSPLandroid/view/View;->getRight()I
HSPLandroid/view/View;->getRootView()Landroid/view/View;
+HPLandroid/view/View;->getRootWindowInsets()Landroid/view/WindowInsets;
HSPLandroid/view/View;->getRotation()F
HSPLandroid/view/View;->getRotationX()F
HSPLandroid/view/View;->getRotationY()F
+PLandroid/view/View;->getRunQueue()Landroid/view/HandlerActionQueue;
HSPLandroid/view/View;->getScaleX()F
HSPLandroid/view/View;->getScaleY()F
+HSPLandroid/view/View;->getScrollBarStyle()I
HSPLandroid/view/View;->getScrollX()I
+HSPLandroid/view/View;->getScrollY()I
+HPLandroid/view/View;->getSolidColor()I
+HPLandroid/view/View;->getStateDescription()Ljava/lang/CharSequence;
+HSPLandroid/view/View;->getStraightVerticalScrollBarBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
HSPLandroid/view/View;->getSuggestedMinimumHeight()I
HSPLandroid/view/View;->getSuggestedMinimumWidth()I
HSPLandroid/view/View;->getSystemGestureExclusionRects()Ljava/util/List;
@@ -7370,30 +25331,56 @@ HSPLandroid/view/View;->getTag()Ljava/lang/Object;
HSPLandroid/view/View;->getTag(I)Ljava/lang/Object;
HSPLandroid/view/View;->getTextAlignment()I
HSPLandroid/view/View;->getTextDirection()I
+HSPLandroid/view/View;->getThreadedRenderer()Landroid/view/ThreadedRenderer;
HSPLandroid/view/View;->getTop()I
HSPLandroid/view/View;->getTransitionAlpha()F
+HPLandroid/view/View;->getTransitionName()Ljava/lang/String;
HSPLandroid/view/View;->getTranslationX()F
HSPLandroid/view/View;->getTranslationY()F
HSPLandroid/view/View;->getTranslationZ()F
+HSPLandroid/view/View;->getVerticalScrollbarWidth()I
HSPLandroid/view/View;->getViewRootImpl()Landroid/view/ViewRootImpl;
HSPLandroid/view/View;->getViewTreeObserver()Landroid/view/ViewTreeObserver;
HSPLandroid/view/View;->getVisibility()I
HSPLandroid/view/View;->getWidth()I
+HSPLandroid/view/View;->getWindowAttachCount()I
+HPLandroid/view/View;->getWindowId()Landroid/view/WindowId;
+HSPLandroid/view/View;->getWindowInsetsController()Landroid/view/WindowInsetsController;
HSPLandroid/view/View;->getWindowSystemUiVisibility()I
HSPLandroid/view/View;->getWindowToken()Landroid/os/IBinder;
HSPLandroid/view/View;->getWindowVisibility()I
+HSPLandroid/view/View;->getWindowVisibleDisplayFrame(Landroid/graphics/Rect;)V
+HPLandroid/view/View;->getX()F
+HSPLandroid/view/View;->getY()F
HSPLandroid/view/View;->getZ()F
+HSPLandroid/view/View;->handleFocusGainInternal(ILandroid/graphics/Rect;)V
+HSPLandroid/view/View;->handleScrollBarDragging(Landroid/view/MotionEvent;)Z
+HSPLandroid/view/View;->hasAncestorThatBlocksDescendantFocus()Z
HSPLandroid/view/View;->hasDefaultFocus()Z
+HSPLandroid/view/View;->hasExplicitFocusable()Z
HSPLandroid/view/View;->hasFocus()Z
+HSPLandroid/view/View;->hasFocusable()Z
+HSPLandroid/view/View;->hasFocusable(ZZ)Z
HSPLandroid/view/View;->hasIdentityMatrix()Z
+HSPLandroid/view/View;->hasListenersForAccessibility()Z
+HSPLandroid/view/View;->hasNestedScrollingParent()Z
+HSPLandroid/view/View;->hasOnClickListeners()Z
HSPLandroid/view/View;->hasOverlappingRendering()Z
+HPLandroid/view/View;->hasRtlSupport()Z
+PLandroid/view/View;->hasSize()Z
HSPLandroid/view/View;->hasTransientState()Z
HSPLandroid/view/View;->hasUnhandledKeyListener()Z
HSPLandroid/view/View;->hasWindowFocus()Z
+HSPLandroid/view/View;->hideTooltip()V
HSPLandroid/view/View;->includeForAccessibility()Z
+HSPLandroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;
+PLandroid/view/View;->initialAwakenScrollBars()Z
+HPLandroid/view/View;->initializeScrollIndicatorsInternal()V
+HSPLandroid/view/View;->initializeScrollbarsInternal(Landroid/content/res/TypedArray;)V
HSPLandroid/view/View;->internalSetPadding(IIII)V
HSPLandroid/view/View;->invalidate()V
HSPLandroid/view/View;->invalidate(IIII)V
+HSPLandroid/view/View;->invalidate(Landroid/graphics/Rect;)V
HSPLandroid/view/View;->invalidate(Z)V
HSPLandroid/view/View;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
HSPLandroid/view/View;->invalidateInternal(IIIIZZ)V
@@ -7404,84 +25391,176 @@ HSPLandroid/view/View;->invalidateParentIfNeededAndWasQuickRejected()V
HSPLandroid/view/View;->invalidateViewProperty(ZZ)V
HSPLandroid/view/View;->isAccessibilityFocused()Z
HSPLandroid/view/View;->isAccessibilityFocusedViewOrHost()Z
+HPLandroid/view/View;->isAccessibilityHeading()Z
+PLandroid/view/View;->isAccessibilityPane()Z
HSPLandroid/view/View;->isActionableForAccessibility()Z
+HPLandroid/view/View;->isActivated()Z
HSPLandroid/view/View;->isAggregatedVisible()Z
+HPLandroid/view/View;->isAssistBlocked()Z
HSPLandroid/view/View;->isAttachedToWindow()Z
HSPLandroid/view/View;->isAutofillable()Z
HSPLandroid/view/View;->isAutofilled()Z
HSPLandroid/view/View;->isClickable()Z
+HPLandroid/view/View;->isContextClickable()Z
+HSPLandroid/view/View;->isDefaultFocusHighlightNeeded(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)Z
HSPLandroid/view/View;->isEnabled()Z
+HSPLandroid/view/View;->isFocusable()Z
HSPLandroid/view/View;->isFocused()Z
+PLandroid/view/View;->isFocusedByDefault()Z
HSPLandroid/view/View;->isForegroundInsidePadding()Z
+HPLandroid/view/View;->isHapticFeedbackEnabled()Z
HSPLandroid/view/View;->isHardwareAccelerated()Z
HSPLandroid/view/View;->isHorizontalFadingEdgeEnabled()Z
+HSPLandroid/view/View;->isHorizontalScrollBarEnabled()Z
HSPLandroid/view/View;->isImportantForAccessibility()Z
HSPLandroid/view/View;->isImportantForAutofill()Z
HSPLandroid/view/View;->isImportantForContentCapture()Z
HSPLandroid/view/View;->isInEditMode()Z
+HPLandroid/view/View;->isInLayout()Z
+HSPLandroid/view/View;->isInScrollingContainer()Z
HSPLandroid/view/View;->isInTouchMode()Z
+PLandroid/view/View;->isKeyboardNavigationCluster()Z
HSPLandroid/view/View;->isLaidOut()Z
HSPLandroid/view/View;->isLayoutDirectionInherited()Z
HSPLandroid/view/View;->isLayoutDirectionResolved()Z
+HPLandroid/view/View;->isLayoutModeOptical(Ljava/lang/Object;)Z
HSPLandroid/view/View;->isLayoutRequested()Z
HSPLandroid/view/View;->isLayoutRtl()Z
HSPLandroid/view/View;->isLayoutValid()Z
HSPLandroid/view/View;->isLongClickable()Z
+HSPLandroid/view/View;->isNestedScrollingEnabled()Z
HSPLandroid/view/View;->isOpaque()Z
+HPLandroid/view/View;->isPaddingRelative()Z
HSPLandroid/view/View;->isPaddingResolved()Z
HSPLandroid/view/View;->isPressed()Z
+HPLandroid/view/View;->isRootNamespace()Z
HSPLandroid/view/View;->isRtlCompatibilityMode()Z
+HPLandroid/view/View;->isScreenReaderFocusable()Z
+HSPLandroid/view/View;->isSelected()Z
HSPLandroid/view/View;->isShown()Z
+HSPLandroid/view/View;->isSoundEffectsEnabled()Z
+HSPLandroid/view/View;->isTemporarilyDetached()Z
HSPLandroid/view/View;->isTextAlignmentInherited()Z
HSPLandroid/view/View;->isTextAlignmentResolved()Z
HSPLandroid/view/View;->isTextDirectionInherited()Z
HSPLandroid/view/View;->isTextDirectionResolved()Z
+HSPLandroid/view/View;->isVerticalFadingEdgeEnabled()Z
+HSPLandroid/view/View;->isVerticalScrollBarEnabled()Z
+HSPLandroid/view/View;->isVerticalScrollBarHidden()Z
+HPLandroid/view/View;->isVisibleToUser()Z
+HPLandroid/view/View;->isVisibleToUser(Landroid/graphics/Rect;)Z
HSPLandroid/view/View;->jumpDrawablesToCurrentState()V
HSPLandroid/view/View;->layout(IIII)V
HSPLandroid/view/View;->makeOptionalFitsSystemWindows()V
+HPLandroid/view/View;->mapRectFromViewToScreenCoords(Landroid/graphics/RectF;Z)V
HSPLandroid/view/View;->measure(II)V
+HSPLandroid/view/View;->mergeDrawableStates([I[I)[I
HSPLandroid/view/View;->needGlobalAttributesUpdate(Z)V
+HPLandroid/view/View;->needRtlPropertiesResolution()Z
HSPLandroid/view/View;->notifyAppearedOrDisappearedForContentCaptureIfNeeded(Z)V
HSPLandroid/view/View;->notifyAppearedOrDisappearedForContentCaptureIfNeededNoTrace(Z)V
+HSPLandroid/view/View;->notifyAutofillManagerOnClick()V
HSPLandroid/view/View;->notifyEnterOrExitForAutoFillIfNeeded(Z)V
+HPLandroid/view/View;->notifyGlobalFocusCleared(Landroid/view/View;)V
HSPLandroid/view/View;->notifySubtreeAccessibilityStateChangedIfNeeded()V
HSPLandroid/view/View;->notifyViewAccessibilityStateChangedIfNeeded(I)V
+HPLandroid/view/View;->numViewsForAccessibility(Landroid/view/View;)I
+HSPLandroid/view/View;->offsetLeftAndRight(I)V
HSPLandroid/view/View;->offsetTopAndBottom(I)V
+HSPLandroid/view/View;->onAnimationEnd()V
+HSPLandroid/view/View;->onAnimationStart()V
HSPLandroid/view/View;->onApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
HSPLandroid/view/View;->onAttachedToWindow()V
HSPLandroid/view/View;->onCancelPendingInputEvents()V
+HSPLandroid/view/View;->onCheckIsTextEditor()Z
+PLandroid/view/View;->onCloseSystemDialogs(Ljava/lang/String;)V
+HPLandroid/view/View;->onConfigurationChanged(Landroid/content/res/Configuration;)V
HSPLandroid/view/View;->onCreateDrawableState(I)[I
+HSPLandroid/view/View;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;
HSPLandroid/view/View;->onDetachedFromWindow()V
HSPLandroid/view/View;->onDetachedFromWindowInternal()V
HSPLandroid/view/View;->onDraw(Landroid/graphics/Canvas;)V
HSPLandroid/view/View;->onDrawForeground(Landroid/graphics/Canvas;)V
+HPLandroid/view/View;->onDrawHorizontalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
HSPLandroid/view/View;->onDrawScrollBars(Landroid/graphics/Canvas;)V
HSPLandroid/view/View;->onDrawScrollIndicators(Landroid/graphics/Canvas;)V
+HSPLandroid/view/View;->onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
+HSPLandroid/view/View;->onFilterTouchEventForSecurity(Landroid/view/MotionEvent;)Z
HSPLandroid/view/View;->onFinishInflate()V
+HSPLandroid/view/View;->onFinishTemporaryDetach()V
+HSPLandroid/view/View;->onFocusChanged(ZILandroid/graphics/Rect;)V
HSPLandroid/view/View;->onFocusLost()V
+HPLandroid/view/View;->onInitializeAccessibilityNodeInfo(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+HPLandroid/view/View;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+HPLandroid/view/View;->onKeyPreIme(ILandroid/view/KeyEvent;)Z
HSPLandroid/view/View;->onLayout(ZIIII)V
HSPLandroid/view/View;->onMeasure(II)V
+HPLandroid/view/View;->onProvideAutofillStructure(Landroid/view/ViewStructure;I)V
+HPLandroid/view/View;->onProvideAutofillVirtualStructure(Landroid/view/ViewStructure;I)V
+HPLandroid/view/View;->onProvideStructure(Landroid/view/ViewStructure;)V
+HPLandroid/view/View;->onProvideStructure(Landroid/view/ViewStructure;II)V
+HPLandroid/view/View;->onProvideVirtualStructure(Landroid/view/ViewStructure;)V
+HPLandroid/view/View;->onProvideVirtualStructureCompat(Landroid/view/ViewStructure;Z)V
HSPLandroid/view/View;->onResolveDrawables(I)V
+HSPLandroid/view/View;->onRestoreInstanceState(Landroid/os/Parcelable;)V
HSPLandroid/view/View;->onRtlPropertiesChanged(I)V
+HSPLandroid/view/View;->onSaveInstanceState()Landroid/os/Parcelable;
+HPLandroid/view/View;->onScreenStateChanged(I)V
HSPLandroid/view/View;->onScrollChanged(IIII)V
HSPLandroid/view/View;->onSetAlpha(I)Z
HSPLandroid/view/View;->onSizeChanged(IIII)V
+HSPLandroid/view/View;->onStartTemporaryDetach()V
+HSPLandroid/view/View;->onTouchEvent(Landroid/view/MotionEvent;)Z
HSPLandroid/view/View;->onVisibilityAggregated(Z)V
HSPLandroid/view/View;->onVisibilityChanged(Landroid/view/View;I)V
HSPLandroid/view/View;->onWindowFocusChanged(Z)V
HSPLandroid/view/View;->onWindowSystemUiVisibilityChanged(I)V
HSPLandroid/view/View;->onWindowVisibilityChanged(I)V
+HPLandroid/view/View;->overScrollBy(IIIIIIIIZ)Z
+HSPLandroid/view/View;->performButtonActionOnTouchDown(Landroid/view/MotionEvent;)Z
+HSPLandroid/view/View;->performClick()Z
HSPLandroid/view/View;->performCollectViewAttributes(Landroid/view/View$AttachInfo;I)V
+HPLandroid/view/View;->performHapticFeedback(I)Z
+HPLandroid/view/View;->performHapticFeedback(II)Z
+HPLandroid/view/View;->performLongClick()Z
+HPLandroid/view/View;->performLongClick(FF)Z
+HPLandroid/view/View;->performLongClickInternal(FF)Z
+HSPLandroid/view/View;->playSoundEffect(I)V
+HSPLandroid/view/View;->pointInView(FFF)Z
+HPLandroid/view/View;->populateAccessibilityNodeInfoDrawingOrderInParent(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+HPLandroid/view/View;->populateVirtualStructure(Landroid/view/ViewStructure;Landroid/view/accessibility/AccessibilityNodeProvider;Landroid/view/accessibility/AccessibilityNodeInfo;Z)V
HSPLandroid/view/View;->post(Ljava/lang/Runnable;)Z
+HSPLandroid/view/View;->postDelayed(Ljava/lang/Runnable;J)Z
+HSPLandroid/view/View;->postInvalidate()V
+HSPLandroid/view/View;->postInvalidateDelayed(J)V
+HSPLandroid/view/View;->postInvalidateOnAnimation()V
+HSPLandroid/view/View;->postOnAnimation(Ljava/lang/Runnable;)V
+HSPLandroid/view/View;->postOnAnimationDelayed(Ljava/lang/Runnable;J)V
+HSPLandroid/view/View;->postUpdateSystemGestureExclusionRects()V
HSPLandroid/view/View;->rebuildOutline()V
+HPLandroid/view/View;->recomputePadding()V
+HPLandroid/view/View;->recordGestureClassification(I)V
HSPLandroid/view/View;->refreshDrawableState()V
HSPLandroid/view/View;->registerPendingFrameMetricsObservers()V
HSPLandroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z
+HPLandroid/view/View;->removeFrameMetricsListener(Landroid/view/Window$OnFrameMetricsAvailableListener;)V
+PLandroid/view/View;->removeLongPressCallback()V
+HSPLandroid/view/View;->removeOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V
HSPLandroid/view/View;->removeOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V
+PLandroid/view/View;->removePerformClickCallback()V
+PLandroid/view/View;->removeUnsetPressCallback()V
HSPLandroid/view/View;->requestApplyInsets()V
HSPLandroid/view/View;->requestFitSystemWindows()V
+HSPLandroid/view/View;->requestFocus()Z
+HSPLandroid/view/View;->requestFocus(I)Z
+HSPLandroid/view/View;->requestFocus(ILandroid/graphics/Rect;)Z
HSPLandroid/view/View;->requestFocusNoSearch(ILandroid/graphics/Rect;)Z
HSPLandroid/view/View;->requestLayout()V
+HPLandroid/view/View;->requestRectangleOnScreen(Landroid/graphics/Rect;)Z
+HPLandroid/view/View;->requestRectangleOnScreen(Landroid/graphics/Rect;Z)Z
+HSPLandroid/view/View;->requireViewById(I)Landroid/view/View;
+PLandroid/view/View;->resetDisplayList()V
+HSPLandroid/view/View;->resetPaddingToInitialValues()V
HSPLandroid/view/View;->resetResolvedDrawables()V
HSPLandroid/view/View;->resetResolvedDrawablesInternal()V
HSPLandroid/view/View;->resetResolvedLayoutDirection()V
@@ -7496,125 +25575,301 @@ HSPLandroid/view/View;->resolveLayoutDirection()Z
HSPLandroid/view/View;->resolveLayoutParams()V
HSPLandroid/view/View;->resolvePadding()V
HSPLandroid/view/View;->resolveRtlPropertiesIfNeeded()Z
+HSPLandroid/view/View;->resolveSize(II)I
HSPLandroid/view/View;->resolveSizeAndState(III)I
HSPLandroid/view/View;->resolveTextAlignment()Z
HSPLandroid/view/View;->resolveTextDirection()Z
+PLandroid/view/View;->restoreDefaultFocus()Z
+HSPLandroid/view/View;->restoreHierarchyState(Landroid/util/SparseArray;)V
HSPLandroid/view/View;->retrieveExplicitStyle(Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
+HPLandroid/view/View;->rootViewRequestFocus()Z
+PLandroid/view/View;->sanitizeFloatPropertyValue(FLjava/lang/String;)F
HSPLandroid/view/View;->sanitizeFloatPropertyValue(FLjava/lang/String;FF)F
HSPLandroid/view/View;->saveAttributeDataForStyleable(Landroid/content/Context;[ILandroid/util/AttributeSet;Landroid/content/res/TypedArray;II)V
+HSPLandroid/view/View;->saveHierarchyState(Landroid/util/SparseArray;)V
+HPLandroid/view/View;->scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V
+HSPLandroid/view/View;->scrollBy(II)V
HSPLandroid/view/View;->scrollTo(II)V
HSPLandroid/view/View;->sendAccessibilityEvent(I)V
+HSPLandroid/view/View;->sendAccessibilityEventInternal(I)V
HSPLandroid/view/View;->setAccessibilityDelegate(Landroid/view/View$AccessibilityDelegate;)V
+HSPLandroid/view/View;->setAccessibilityLiveRegion(I)V
+HSPLandroid/view/View;->setAccessibilityPaneTitle(Ljava/lang/CharSequence;)V
+HPLandroid/view/View;->setAccessibilityTraversalAfter(I)V
+HPLandroid/view/View;->setAccessibilityTraversalBefore(I)V
+HSPLandroid/view/View;->setActivated(Z)V
HSPLandroid/view/View;->setAlpha(F)V
HSPLandroid/view/View;->setAlphaInternal(F)V
+HSPLandroid/view/View;->setAlphaNoInvalidation(F)Z
+HSPLandroid/view/View;->setAnimation(Landroid/view/animation/Animation;)V
HSPLandroid/view/View;->setAutofilled(Z)V
HSPLandroid/view/View;->setBackground(Landroid/graphics/drawable/Drawable;)V
HSPLandroid/view/View;->setBackgroundBounds()V
HSPLandroid/view/View;->setBackgroundColor(I)V
HSPLandroid/view/View;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+PLandroid/view/View;->setBackgroundRenderNodeProperties(Landroid/graphics/RenderNode;)V
HSPLandroid/view/View;->setBackgroundResource(I)V
+HPLandroid/view/View;->setBackgroundTintBlendMode(Landroid/graphics/BlendMode;)V
+HSPLandroid/view/View;->setBackgroundTintList(Landroid/content/res/ColorStateList;)V
+HPLandroid/view/View;->setBackgroundTintMode(Landroid/graphics/PorterDuff$Mode;)V
+HSPLandroid/view/View;->setBottom(I)V
HSPLandroid/view/View;->setClickable(Z)V
+HSPLandroid/view/View;->setClipBounds(Landroid/graphics/Rect;)V
HSPLandroid/view/View;->setClipToOutline(Z)V
HSPLandroid/view/View;->setContentDescription(Ljava/lang/CharSequence;)V
HSPLandroid/view/View;->setDefaultFocusHighlightEnabled(Z)V
HSPLandroid/view/View;->setDisplayListProperties(Landroid/graphics/RenderNode;)V
+HSPLandroid/view/View;->setDrawingCacheEnabled(Z)V
+HPLandroid/view/View;->setDuplicateParentStateEnabled(Z)V
HSPLandroid/view/View;->setElevation(F)V
HSPLandroid/view/View;->setEnabled(Z)V
+HSPLandroid/view/View;->setFitsSystemWindows(Z)V
HSPLandroid/view/View;->setFlags(II)V
HSPLandroid/view/View;->setFocusable(I)V
HSPLandroid/view/View;->setFocusable(Z)V
HSPLandroid/view/View;->setFocusableInTouchMode(Z)V
+HPLandroid/view/View;->setFocusedByDefault(Z)V
+HSPLandroid/view/View;->setForeground(Landroid/graphics/drawable/Drawable;)V
HSPLandroid/view/View;->setForegroundGravity(I)V
HSPLandroid/view/View;->setFrame(IIII)Z
+HSPLandroid/view/View;->setHapticFeedbackEnabled(Z)V
+HSPLandroid/view/View;->setHasTransientState(Z)V
+HPLandroid/view/View;->setHorizontalFadingEdgeEnabled(Z)V
+HSPLandroid/view/View;->setHorizontalScrollBarEnabled(Z)V
HSPLandroid/view/View;->setId(I)V
HSPLandroid/view/View;->setImportantForAccessibility(I)V
HSPLandroid/view/View;->setImportantForAutofill(I)V
HSPLandroid/view/View;->setImportantForContentCapture(I)V
HSPLandroid/view/View;->setIsRootNamespace(Z)V
+HPLandroid/view/View;->setKeepScreenOn(Z)V
+HSPLandroid/view/View;->setKeyboardNavigationCluster(Z)V
+HPLandroid/view/View;->setKeyedTag(ILjava/lang/Object;)V
+HSPLandroid/view/View;->setLayerPaint(Landroid/graphics/Paint;)V
+HSPLandroid/view/View;->setLayerType(ILandroid/graphics/Paint;)V
HSPLandroid/view/View;->setLayoutDirection(I)V
HSPLandroid/view/View;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/view/View;->setLeft(I)V
+HPLandroid/view/View;->setLeftTopRightBottom(IIII)V
HSPLandroid/view/View;->setLongClickable(Z)V
HSPLandroid/view/View;->setMeasuredDimension(II)V
+HPLandroid/view/View;->setMeasuredDimensionRaw(II)V
+HSPLandroid/view/View;->setMinimumHeight(I)V
+HSPLandroid/view/View;->setMinimumWidth(I)V
+HPLandroid/view/View;->setNestedScrollingEnabled(Z)V
+HPLandroid/view/View;->setNextFocusDownId(I)V
+HPLandroid/view/View;->setNextFocusForwardId(I)V
+HPLandroid/view/View;->setNextFocusLeftId(I)V
+HPLandroid/view/View;->setNextFocusRightId(I)V
+HPLandroid/view/View;->setNextFocusUpId(I)V
HSPLandroid/view/View;->setOnApplyWindowInsetsListener(Landroid/view/View$OnApplyWindowInsetsListener;)V
HSPLandroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V
+HPLandroid/view/View;->setOnCreateContextMenuListener(Landroid/view/View$OnCreateContextMenuListener;)V
+HSPLandroid/view/View;->setOnFocusChangeListener(Landroid/view/View$OnFocusChangeListener;)V
+HSPLandroid/view/View;->setOnHoverListener(Landroid/view/View$OnHoverListener;)V
+HPLandroid/view/View;->setOnKeyListener(Landroid/view/View$OnKeyListener;)V
HSPLandroid/view/View;->setOnLongClickListener(Landroid/view/View$OnLongClickListener;)V
+HPLandroid/view/View;->setOnScrollChangeListener(Landroid/view/View$OnScrollChangeListener;)V
+HSPLandroid/view/View;->setOnSystemUiVisibilityChangeListener(Landroid/view/View$OnSystemUiVisibilityChangeListener;)V
HSPLandroid/view/View;->setOnTouchListener(Landroid/view/View$OnTouchListener;)V
HSPLandroid/view/View;->setOutlineProvider(Landroid/view/ViewOutlineProvider;)V
+HPLandroid/view/View;->setOutlineProviderFromAttribute(I)V
HSPLandroid/view/View;->setOverScrollMode(I)V
HSPLandroid/view/View;->setPadding(IIII)V
HSPLandroid/view/View;->setPaddingRelative(IIII)V
+HSPLandroid/view/View;->setPivotX(F)V
+HSPLandroid/view/View;->setPivotY(F)V
+HSPLandroid/view/View;->setPointerIcon(Landroid/view/PointerIcon;)V
+HSPLandroid/view/View;->setPressed(Z)V
+HSPLandroid/view/View;->setRight(I)V
HSPLandroid/view/View;->setRotation(F)V
HSPLandroid/view/View;->setRotationX(F)V
HSPLandroid/view/View;->setRotationY(F)V
+HSPLandroid/view/View;->setSaveEnabled(Z)V
+HSPLandroid/view/View;->setSaveFromParentEnabled(Z)V
HSPLandroid/view/View;->setScaleX(F)V
HSPLandroid/view/View;->setScaleY(F)V
HSPLandroid/view/View;->setScrollContainer(Z)V
+HSPLandroid/view/View;->setScrollX(I)V
+HSPLandroid/view/View;->setScrollY(I)V
+HSPLandroid/view/View;->setSelected(Z)V
+HSPLandroid/view/View;->setStateDescription(Ljava/lang/CharSequence;)V
HSPLandroid/view/View;->setStateListAnimator(Landroid/animation/StateListAnimator;)V
+HSPLandroid/view/View;->setSystemGestureExclusionRects(Ljava/util/List;)V
HSPLandroid/view/View;->setSystemUiVisibility(I)V
HSPLandroid/view/View;->setTag(ILjava/lang/Object;)V
HSPLandroid/view/View;->setTag(Ljava/lang/Object;)V
+HSPLandroid/view/View;->setTagInternal(ILjava/lang/Object;)V
+HSPLandroid/view/View;->setTextAlignment(I)V
+HSPLandroid/view/View;->setTextDirection(I)V
+HSPLandroid/view/View;->setTooltipText(Ljava/lang/CharSequence;)V
+HSPLandroid/view/View;->setTop(I)V
+HSPLandroid/view/View;->setTouchDelegate(Landroid/view/TouchDelegate;)V
+HPLandroid/view/View;->setTransitionAlpha(F)V
+HSPLandroid/view/View;->setTransitionName(Ljava/lang/String;)V
+HPLandroid/view/View;->setTransitionVisibility(I)V
HSPLandroid/view/View;->setTranslationX(F)V
HSPLandroid/view/View;->setTranslationY(F)V
HSPLandroid/view/View;->setTranslationZ(F)V
+HSPLandroid/view/View;->setVerticalFadingEdgeEnabled(Z)V
+HPLandroid/view/View;->setVerticalScrollBarEnabled(Z)V
HSPLandroid/view/View;->setVisibility(I)V
HSPLandroid/view/View;->setWillNotDraw(Z)V
+HSPLandroid/view/View;->setX(F)V
+HPLandroid/view/View;->setY(F)V
HSPLandroid/view/View;->shouldDrawRoundScrollbar()Z
HSPLandroid/view/View;->sizeChange(IIII)V
+HPLandroid/view/View;->skipInvalidate()Z
+HSPLandroid/view/View;->startAnimation(Landroid/view/animation/Animation;)V
+HSPLandroid/view/View;->startNestedScroll(I)Z
HSPLandroid/view/View;->stopNestedScroll()V
+HSPLandroid/view/View;->switchDefaultFocusHighlight()V
+HSPLandroid/view/View;->toString()Ljava/lang/String;
HSPLandroid/view/View;->transformFromViewToWindowSpace([I)V
+HPLandroid/view/View;->transformMatrixToGlobal(Landroid/graphics/Matrix;)V
+HPLandroid/view/View;->transformMatrixToLocal(Landroid/graphics/Matrix;)V
+HPLandroid/view/View;->unFocus(Landroid/view/View;)V
HSPLandroid/view/View;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/view/View;->unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V
HSPLandroid/view/View;->updateDisplayListIfDirty()Landroid/graphics/RenderNode;
+HSPLandroid/view/View;->updateFocusedInCluster(Landroid/view/View;I)V
+HPLandroid/view/View;->updateLocalSystemUiVisibility(II)Z
+HSPLandroid/view/View;->updateSystemGestureExclusionRects()V
HSPLandroid/view/View;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HPLandroid/view/View;->willNotDraw()Z
+HPLandroid/view/ViewAnimationHostBridge;-><init>(Landroid/view/View;)V
+HSPLandroid/view/ViewAnimationHostBridge;->isAttached()Z
+HSPLandroid/view/ViewAnimationHostBridge;->registerAnimatingRenderNode(Landroid/graphics/RenderNode;)V
+HSPLandroid/view/ViewAnimationHostBridge;->registerVectorDrawableAnimator(Landroid/view/NativeVectorDrawableAnimator;)V
HSPLandroid/view/ViewConfiguration;-><init>(Landroid/content/Context;)V
HSPLandroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration;
+PLandroid/view/ViewConfiguration;->getAccessibilityShortcutKeyTimeout()J
+PLandroid/view/ViewConfiguration;->getDeviceGlobalActionKeyTimeout()J
+HSPLandroid/view/ViewConfiguration;->getDoubleTapTimeout()I
+HSPLandroid/view/ViewConfiguration;->getHoverTapSlop()I
+HSPLandroid/view/ViewConfiguration;->getHoverTapTimeout()I
+HSPLandroid/view/ViewConfiguration;->getKeyRepeatDelay()I
+HSPLandroid/view/ViewConfiguration;->getKeyRepeatTimeout()I
HSPLandroid/view/ViewConfiguration;->getLongPressTimeout()I
+HPLandroid/view/ViewConfiguration;->getMinimumFlingVelocity()I
HSPLandroid/view/ViewConfiguration;->getScaledDoubleTapSlop()I
HSPLandroid/view/ViewConfiguration;->getScaledDoubleTapTouchSlop()I
+HSPLandroid/view/ViewConfiguration;->getScaledFadingEdgeLength()I
HSPLandroid/view/ViewConfiguration;->getScaledHorizontalScrollFactor()F
+HSPLandroid/view/ViewConfiguration;->getScaledHoverSlop()I
+HPLandroid/view/ViewConfiguration;->getScaledMaximumDrawingCacheSize()I
HSPLandroid/view/ViewConfiguration;->getScaledMaximumFlingVelocity()I
+HSPLandroid/view/ViewConfiguration;->getScaledMinScrollbarTouchTarget()I
HSPLandroid/view/ViewConfiguration;->getScaledMinimumFlingVelocity()I
+HSPLandroid/view/ViewConfiguration;->getScaledMinimumScalingSpan()I
+HSPLandroid/view/ViewConfiguration;->getScaledOverflingDistance()I
+HSPLandroid/view/ViewConfiguration;->getScaledOverscrollDistance()I
HSPLandroid/view/ViewConfiguration;->getScaledPagingTouchSlop()I
+HSPLandroid/view/ViewConfiguration;->getScaledScrollBarSize()I
HSPLandroid/view/ViewConfiguration;->getScaledTouchSlop()I
HSPLandroid/view/ViewConfiguration;->getScaledVerticalScrollFactor()F
+HSPLandroid/view/ViewConfiguration;->getScaledWindowTouchSlop()I
+PLandroid/view/ViewConfiguration;->getScreenshotChordKeyTimeout()J
+HSPLandroid/view/ViewConfiguration;->getScrollBarFadeDuration()I
+HSPLandroid/view/ViewConfiguration;->getScrollDefaultDelay()I
HSPLandroid/view/ViewConfiguration;->getScrollFriction()F
-HSPLandroid/view/ViewGroup$LayoutParams;-><init>()V
+HSPLandroid/view/ViewConfiguration;->getTapTimeout()I
+HPLandroid/view/ViewConfiguration;->isFadingMarqueeEnabled()Z
+HPLandroid/view/ViewDebug;->flagsToString(Ljava/lang/Class;Ljava/lang/String;I)Ljava/lang/String;
+PLandroid/view/ViewDebug;->getFlagMapping(Ljava/lang/Class;Ljava/lang/String;)[Landroid/view/ViewDebug$FlagToString;
+PLandroid/view/ViewDebug;->getMapping(Ljava/lang/Class;Ljava/lang/String;)[Landroid/view/ViewDebug$IntToString;
+PLandroid/view/ViewDebug;->getViewInstanceCount()J
+PLandroid/view/ViewDebug;->getViewRootImplCount()J
+PLandroid/view/ViewDebug;->intToString(Ljava/lang/Class;Ljava/lang/String;I)Ljava/lang/String;
+PLandroid/view/ViewGroup$4;-><init>(Landroid/view/ViewGroup;)V
+HSPLandroid/view/ViewGroup$4;->endTransition(Landroid/animation/LayoutTransition;Landroid/view/ViewGroup;Landroid/view/View;I)V
+HSPLandroid/view/ViewGroup$4;->startTransition(Landroid/animation/LayoutTransition;Landroid/view/ViewGroup;Landroid/view/View;I)V
+HPLandroid/view/ViewGroup$ChildListForAutoFillOrContentCapture;->recycle()V
+HPLandroid/view/ViewGroup$LayoutParams;-><init>()V
HSPLandroid/view/ViewGroup$LayoutParams;-><init>(II)V
+HSPLandroid/view/ViewGroup$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+PLandroid/view/ViewGroup$LayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V
HSPLandroid/view/ViewGroup$LayoutParams;->resolveLayoutDirection(I)V
HSPLandroid/view/ViewGroup$LayoutParams;->setBaseAttributes(Landroid/content/res/TypedArray;II)V
HSPLandroid/view/ViewGroup$MarginLayoutParams;-><init>(II)V
HSPLandroid/view/ViewGroup$MarginLayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
HSPLandroid/view/ViewGroup$MarginLayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/view/ViewGroup$MarginLayoutParams;-><init>(Landroid/view/ViewGroup$MarginLayoutParams;)V
HSPLandroid/view/ViewGroup$MarginLayoutParams;->doResolveMargins()V
HSPLandroid/view/ViewGroup$MarginLayoutParams;->getLayoutDirection()I
+HSPLandroid/view/ViewGroup$MarginLayoutParams;->getMarginEnd()I
+HSPLandroid/view/ViewGroup$MarginLayoutParams;->getMarginStart()I
HSPLandroid/view/ViewGroup$MarginLayoutParams;->isMarginRelative()Z
HSPLandroid/view/ViewGroup$MarginLayoutParams;->resolveLayoutDirection(I)V
HSPLandroid/view/ViewGroup$MarginLayoutParams;->setLayoutDirection(I)V
+HSPLandroid/view/ViewGroup$MarginLayoutParams;->setMarginEnd(I)V
HSPLandroid/view/ViewGroup$MarginLayoutParams;->setMarginStart(I)V
+HSPLandroid/view/ViewGroup$MarginLayoutParams;->setMargins(IIII)V
+HSPLandroid/view/ViewGroup$TouchTarget;->obtain(Landroid/view/View;I)Landroid/view/ViewGroup$TouchTarget;
+HSPLandroid/view/ViewGroup$TouchTarget;->recycle()V
HSPLandroid/view/ViewGroup;-><init>(Landroid/content/Context;)V
HSPLandroid/view/ViewGroup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
HSPLandroid/view/ViewGroup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
HSPLandroid/view/ViewGroup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/view/ViewGroup;->addFocusables(Ljava/util/ArrayList;II)V
HSPLandroid/view/ViewGroup;->addInArray(Landroid/view/View;I)V
+HSPLandroid/view/ViewGroup;->addTouchTarget(Landroid/view/View;I)Landroid/view/ViewGroup$TouchTarget;
+HPLandroid/view/ViewGroup;->addTransientView(Landroid/view/View;I)V
HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;)V
HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;I)V
+HPLandroid/view/ViewGroup;->addView(Landroid/view/View;II)V
HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
HSPLandroid/view/ViewGroup;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/view/ViewGroup;->addViewInLayout(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)Z
+HSPLandroid/view/ViewGroup;->addViewInLayout(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;Z)Z
HSPLandroid/view/ViewGroup;->addViewInner(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;Z)V
+HSPLandroid/view/ViewGroup;->attachViewToParent(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/view/ViewGroup;->bringChildToFront(Landroid/view/View;)V
+HPLandroid/view/ViewGroup;->brokenDispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
HSPLandroid/view/ViewGroup;->buildOrderedChildList()Ljava/util/ArrayList;
+HSPLandroid/view/ViewGroup;->buildTouchDispatchChildList()Ljava/util/ArrayList;
HSPLandroid/view/ViewGroup;->cancelAndClearTouchTargets(Landroid/view/MotionEvent;)V
HSPLandroid/view/ViewGroup;->cancelHoverTarget(Landroid/view/View;)V
HSPLandroid/view/ViewGroup;->cancelTouchTarget(Landroid/view/View;)V
HSPLandroid/view/ViewGroup;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
HSPLandroid/view/ViewGroup;->childDrawableStateChanged(Landroid/view/View;)V
+HSPLandroid/view/ViewGroup;->childHasTransientStateChanged(Landroid/view/View;Z)V
+HSPLandroid/view/ViewGroup;->cleanupLayoutState(Landroid/view/View;)V
+PLandroid/view/ViewGroup;->clearCachedLayoutMode()V
+HPLandroid/view/ViewGroup;->clearChildFocus(Landroid/view/View;)V
+HPLandroid/view/ViewGroup;->clearDefaultFocus(Landroid/view/View;)V
HSPLandroid/view/ViewGroup;->clearDisappearingChildren()V
+HPLandroid/view/ViewGroup;->clearFocus()V
+HSPLandroid/view/ViewGroup;->clearTouchTargets()V
HSPLandroid/view/ViewGroup;->destroyHardwareResources()V
+HSPLandroid/view/ViewGroup;->detachAllViewsFromParent()V
+HSPLandroid/view/ViewGroup;->detachViewFromParent(I)V
HSPLandroid/view/ViewGroup;->dispatchApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
HSPLandroid/view/ViewGroup;->dispatchAttachedToWindow(Landroid/view/View$AttachInfo;I)V
HSPLandroid/view/ViewGroup;->dispatchCancelPendingInputEvents()V
HSPLandroid/view/ViewGroup;->dispatchCollectViewAttributes(Landroid/view/View$AttachInfo;I)V
+HPLandroid/view/ViewGroup;->dispatchConfigurationChanged(Landroid/content/res/Configuration;)V
HSPLandroid/view/ViewGroup;->dispatchDetachedFromWindow()V
HSPLandroid/view/ViewGroup;->dispatchDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/view/ViewGroup;->dispatchDrawableHotspotChanged(FF)V
+HSPLandroid/view/ViewGroup;->dispatchFinishTemporaryDetach()V
+HSPLandroid/view/ViewGroup;->dispatchFreezeSelfOnly(Landroid/util/SparseArray;)V
HSPLandroid/view/ViewGroup;->dispatchGetDisplayList()V
+HPLandroid/view/ViewGroup;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
+HPLandroid/view/ViewGroup;->dispatchKeyEventPreIme(Landroid/view/KeyEvent;)Z
+HPLandroid/view/ViewGroup;->dispatchProvideAutofillStructure(Landroid/view/ViewStructure;I)V
+HPLandroid/view/ViewGroup;->dispatchProvideStructure(Landroid/view/ViewStructure;)V
+HSPLandroid/view/ViewGroup;->dispatchRestoreInstanceState(Landroid/util/SparseArray;)V
+HSPLandroid/view/ViewGroup;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V
+HPLandroid/view/ViewGroup;->dispatchScreenStateChanged(I)V
+HSPLandroid/view/ViewGroup;->dispatchSetActivated(Z)V
+HSPLandroid/view/ViewGroup;->dispatchSetPressed(Z)V
+HSPLandroid/view/ViewGroup;->dispatchSetSelected(Z)V
+HSPLandroid/view/ViewGroup;->dispatchStartTemporaryDetach()V
+HSPLandroid/view/ViewGroup;->dispatchSystemUiVisibilityChanged(I)V
+HSPLandroid/view/ViewGroup;->dispatchThawSelfOnly(Landroid/util/SparseArray;)V
+HSPLandroid/view/ViewGroup;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/view/ViewGroup;->dispatchTransformedTouchEvent(Landroid/view/MotionEvent;ZLandroid/view/View;I)Z
+HPLandroid/view/ViewGroup;->dispatchUnhandledKeyEvent(Landroid/view/KeyEvent;)Landroid/view/View;
HSPLandroid/view/ViewGroup;->dispatchViewAdded(Landroid/view/View;)V
HSPLandroid/view/ViewGroup;->dispatchViewRemoved(Landroid/view/View;)V
HSPLandroid/view/ViewGroup;->dispatchVisibilityAggregated(Z)Z
@@ -7624,24 +25879,49 @@ HSPLandroid/view/ViewGroup;->dispatchWindowSystemUiVisiblityChanged(I)V
HSPLandroid/view/ViewGroup;->dispatchWindowVisibilityChanged(I)V
HSPLandroid/view/ViewGroup;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z
HSPLandroid/view/ViewGroup;->drawableStateChanged()V
+HSPLandroid/view/ViewGroup;->endViewTransition(Landroid/view/View;)V
HSPLandroid/view/ViewGroup;->exitHoverTargets()V
HSPLandroid/view/ViewGroup;->exitTooltipHoverTargets()V
HSPLandroid/view/ViewGroup;->findFocus()Landroid/view/View;
+HPLandroid/view/ViewGroup;->findViewByPredicateTraversal(Ljava/util/function/Predicate;Landroid/view/View;)Landroid/view/View;
HSPLandroid/view/ViewGroup;->findViewTraversal(I)Landroid/view/View;
+HPLandroid/view/ViewGroup;->findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View;
+HSPLandroid/view/ViewGroup;->finishAnimatingView(Landroid/view/View;Landroid/view/animation/Animation;)V
+HPLandroid/view/ViewGroup;->focusSearch(Landroid/view/View;I)Landroid/view/View;
+HSPLandroid/view/ViewGroup;->focusableViewAvailable(Landroid/view/View;)V
+HPLandroid/view/ViewGroup;->gatherTransparentRegion(Landroid/graphics/Region;)Z
HSPLandroid/view/ViewGroup;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
HSPLandroid/view/ViewGroup;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
+HPLandroid/view/ViewGroup;->getAccessibilityClassName()Ljava/lang/CharSequence;
HSPLandroid/view/ViewGroup;->getAndVerifyPreorderedIndex(IIZ)I
HSPLandroid/view/ViewGroup;->getAndVerifyPreorderedView(Ljava/util/ArrayList;[Landroid/view/View;I)Landroid/view/View;
HSPLandroid/view/ViewGroup;->getChildAt(I)Landroid/view/View;
HSPLandroid/view/ViewGroup;->getChildCount()I
HSPLandroid/view/ViewGroup;->getChildMeasureSpec(III)I
+HSPLandroid/view/ViewGroup;->getChildTransformation()Landroid/view/animation/Transformation;
+HSPLandroid/view/ViewGroup;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;)Z
+HSPLandroid/view/ViewGroup;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;Z)Z
HSPLandroid/view/ViewGroup;->getClipChildren()Z
+HSPLandroid/view/ViewGroup;->getClipToPadding()Z
HSPLandroid/view/ViewGroup;->getDescendantFocusability()I
HSPLandroid/view/ViewGroup;->getFocusedChild()Landroid/view/View;
+HPLandroid/view/ViewGroup;->getLayoutMode()I
HSPLandroid/view/ViewGroup;->getLayoutTransition()Landroid/animation/LayoutTransition;
+HPLandroid/view/ViewGroup;->getNestedScrollAxes()I
+HPLandroid/view/ViewGroup;->getNumChildrenForAccessibility()I
+HPLandroid/view/ViewGroup;->getOverlay()Landroid/view/ViewGroupOverlay;
+HPLandroid/view/ViewGroup;->getOverlay()Landroid/view/ViewOverlay;
+HSPLandroid/view/ViewGroup;->getTouchTarget(Landroid/view/View;)Landroid/view/ViewGroup$TouchTarget;
HSPLandroid/view/ViewGroup;->getTouchscreenBlocksFocus()Z
+HPLandroid/view/ViewGroup;->getTransientView(I)Landroid/view/View;
+HPLandroid/view/ViewGroup;->getTransientViewCount()I
+HSPLandroid/view/ViewGroup;->handleFocusGainInternal(ILandroid/graphics/Rect;)V
+PLandroid/view/ViewGroup;->hasBooleanFlag(I)Z
+PLandroid/view/ViewGroup;->hasChildWithZ()Z
HSPLandroid/view/ViewGroup;->hasDefaultFocus()Z
HSPLandroid/view/ViewGroup;->hasFocus()Z
+HSPLandroid/view/ViewGroup;->hasFocusable(ZZ)Z
+HSPLandroid/view/ViewGroup;->hasFocusableChild(Z)Z
HSPLandroid/view/ViewGroup;->hasTransientState()Z
HSPLandroid/view/ViewGroup;->hasUnhandledKeyListener()Z
HSPLandroid/view/ViewGroup;->indexOfChild(Landroid/view/View;)I
@@ -7649,35 +25929,60 @@ HSPLandroid/view/ViewGroup;->initFromAttributes(Landroid/content/Context;Landroi
HSPLandroid/view/ViewGroup;->initViewGroup()V
HSPLandroid/view/ViewGroup;->internalSetPadding(IIII)V
HSPLandroid/view/ViewGroup;->invalidateChild(Landroid/view/View;Landroid/graphics/Rect;)V
-HSPLandroid/view/ViewGroup;->invalidateChildInParent([ILandroid/graphics/Rect;)Landroid/view/ViewParent;
+PLandroid/view/ViewGroup;->invalidateChildInParent([ILandroid/graphics/Rect;)Landroid/view/ViewParent;
HSPLandroid/view/ViewGroup;->isChildrenDrawingOrderEnabled()Z
HSPLandroid/view/ViewGroup;->isLayoutModeOptical()Z
+HSPLandroid/view/ViewGroup;->isLayoutSuppressed()Z
+HSPLandroid/view/ViewGroup;->isTransformedTouchPointInView(FFLandroid/view/View;Landroid/graphics/PointF;)Z
+HSPLandroid/view/ViewGroup;->isTransitionGroup()Z
HSPLandroid/view/ViewGroup;->isViewTransitioning(Landroid/view/View;)Z
HSPLandroid/view/ViewGroup;->jumpDrawablesToCurrentState()V
HSPLandroid/view/ViewGroup;->layout(IIII)V
HSPLandroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V
+HSPLandroid/view/ViewGroup;->measureChild(Landroid/view/View;II)V
HSPLandroid/view/ViewGroup;->measureChildWithMargins(Landroid/view/View;IIII)V
+HSPLandroid/view/ViewGroup;->measureChildren(II)V
HSPLandroid/view/ViewGroup;->notifySubtreeAccessibilityStateChangedIfNeeded()V
+HPLandroid/view/ViewGroup;->offsetRectBetweenParentAndChild(Landroid/view/View;Landroid/graphics/Rect;ZZ)V
+HPLandroid/view/ViewGroup;->offsetRectIntoDescendantCoords(Landroid/view/View;Landroid/graphics/Rect;)V
HSPLandroid/view/ViewGroup;->onAttachedToWindow()V
HSPLandroid/view/ViewGroup;->onChildVisibilityChanged(Landroid/view/View;II)V
HSPLandroid/view/ViewGroup;->onCreateDrawableState(I)[I
HSPLandroid/view/ViewGroup;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V
HSPLandroid/view/ViewGroup;->onDetachedFromWindow()V
+HSPLandroid/view/ViewGroup;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z
+PLandroid/view/ViewGroup;->onRequestFocusInDescendants(ILandroid/graphics/Rect;)Z
HSPLandroid/view/ViewGroup;->onSetLayoutParams(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/view/ViewGroup;->onStartNestedScroll(Landroid/view/View;Landroid/view/View;I)Z
HSPLandroid/view/ViewGroup;->onViewAdded(Landroid/view/View;)V
HSPLandroid/view/ViewGroup;->onViewRemoved(Landroid/view/View;)V
+HPLandroid/view/ViewGroup;->populateChildrenForAutofill(Ljava/util/ArrayList;I)V
+HPLandroid/view/ViewGroup;->recomputeViewAttributes(Landroid/view/View;)V
+HPLandroid/view/ViewGroup;->recreateChildDisplayList(Landroid/view/View;)V
HSPLandroid/view/ViewGroup;->removeAllViews()V
HSPLandroid/view/ViewGroup;->removeAllViewsInLayout()V
+HSPLandroid/view/ViewGroup;->removeDetachedView(Landroid/view/View;Z)V
HSPLandroid/view/ViewGroup;->removeFromArray(I)V
+HSPLandroid/view/ViewGroup;->removePointersFromTouchTargets(I)V
+HPLandroid/view/ViewGroup;->removeTransientView(Landroid/view/View;)V
HSPLandroid/view/ViewGroup;->removeView(Landroid/view/View;)V
+HSPLandroid/view/ViewGroup;->removeViewAt(I)V
+HSPLandroid/view/ViewGroup;->removeViewInLayout(Landroid/view/View;)V
HSPLandroid/view/ViewGroup;->removeViewInternal(ILandroid/view/View;)V
+HSPLandroid/view/ViewGroup;->requestChildFocus(Landroid/view/View;Landroid/view/View;)V
+HPLandroid/view/ViewGroup;->requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z
+HPLandroid/view/ViewGroup;->requestDisallowInterceptTouchEvent(Z)V
HSPLandroid/view/ViewGroup;->requestFocus(ILandroid/graphics/Rect;)Z
+HSPLandroid/view/ViewGroup;->requestTransitionStart(Landroid/animation/LayoutTransition;)V
+HPLandroid/view/ViewGroup;->requestTransparentRegion(Landroid/view/View;)V
+HSPLandroid/view/ViewGroup;->resetCancelNextUpFlag(Landroid/view/View;)Z
HSPLandroid/view/ViewGroup;->resetResolvedDrawables()V
HSPLandroid/view/ViewGroup;->resetResolvedLayoutDirection()V
HSPLandroid/view/ViewGroup;->resetResolvedPadding()V
HSPLandroid/view/ViewGroup;->resetResolvedTextAlignment()V
HSPLandroid/view/ViewGroup;->resetResolvedTextDirection()V
HSPLandroid/view/ViewGroup;->resetSubtreeAccessibilityStateChanged()V
+HSPLandroid/view/ViewGroup;->resetTouchState()V
HSPLandroid/view/ViewGroup;->resolveDrawables()V
HSPLandroid/view/ViewGroup;->resolveLayoutDirection()Z
HSPLandroid/view/ViewGroup;->resolveLayoutParams()V
@@ -7685,176 +25990,545 @@ HSPLandroid/view/ViewGroup;->resolvePadding()V
HSPLandroid/view/ViewGroup;->resolveRtlPropertiesIfNeeded()Z
HSPLandroid/view/ViewGroup;->resolveTextAlignment()Z
HSPLandroid/view/ViewGroup;->resolveTextDirection()Z
+PLandroid/view/ViewGroup;->restoreDefaultFocus()Z
+HPLandroid/view/ViewGroup;->setAddStatesFromChildren(Z)V
+HSPLandroid/view/ViewGroup;->setAlwaysDrawnWithCacheEnabled(Z)V
+PLandroid/view/ViewGroup;->setBooleanFlag(IZ)V
+HSPLandroid/view/ViewGroup;->setChildrenDrawingCacheEnabled(Z)V
HSPLandroid/view/ViewGroup;->setChildrenDrawingOrderEnabled(Z)V
HSPLandroid/view/ViewGroup;->setClipChildren(Z)V
HSPLandroid/view/ViewGroup;->setClipToPadding(Z)V
+HPLandroid/view/ViewGroup;->setDefaultFocus(Landroid/view/View;)V
HSPLandroid/view/ViewGroup;->setDescendantFocusability(I)V
+HPLandroid/view/ViewGroup;->setLayoutAnimationListener(Landroid/view/animation/Animation$AnimationListener;)V
HSPLandroid/view/ViewGroup;->setLayoutTransition(Landroid/animation/LayoutTransition;)V
HSPLandroid/view/ViewGroup;->setMotionEventSplittingEnabled(Z)V
+HSPLandroid/view/ViewGroup;->setOnHierarchyChangeListener(Landroid/view/ViewGroup$OnHierarchyChangeListener;)V
+HSPLandroid/view/ViewGroup;->setTouchscreenBlocksFocus(Z)V
+HSPLandroid/view/ViewGroup;->setTransitionGroup(Z)V
HSPLandroid/view/ViewGroup;->shouldBlockFocusForTouchscreen()Z
+HSPLandroid/view/ViewGroup;->shouldDelayChildPressedState()Z
+HPLandroid/view/ViewGroup;->startViewTransition(Landroid/view/View;)V
+HPLandroid/view/ViewGroup;->suppressLayout(Z)V
+PLandroid/view/ViewGroup;->touchAccessibilityNodeProviderIfNeeded(Landroid/view/View;)V
+HSPLandroid/view/ViewGroup;->transformPointToViewLocal([FLandroid/view/View;)V
+HPLandroid/view/ViewGroup;->unFocus(Landroid/view/View;)V
+HPLandroid/view/ViewGroup;->updateLocalSystemUiVisibility(II)Z
+HPLandroid/view/ViewGroup;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+HPLandroid/view/ViewGroupOverlay;-><init>(Landroid/content/Context;Landroid/view/View;)V
+HPLandroid/view/ViewGroupOverlay;->add(Landroid/view/View;)V
+HPLandroid/view/ViewGroupOverlay;->remove(Landroid/view/View;)V
HSPLandroid/view/ViewOutlineProvider$1;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V
+HSPLandroid/view/ViewOutlineProvider$2;->getOutline(Landroid/view/View;Landroid/graphics/Outline;)V
HSPLandroid/view/ViewOutlineProvider;-><init>()V
+HPLandroid/view/ViewOverlay$OverlayViewGroup;-><init>(Landroid/content/Context;Landroid/view/View;)V
+HPLandroid/view/ViewOverlay$OverlayViewGroup;->add(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/view/ViewOverlay$OverlayViewGroup;->add(Landroid/view/View;)V
+HPLandroid/view/ViewOverlay$OverlayViewGroup;->dispatchDraw(Landroid/graphics/Canvas;)V
+HPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(IIII)V
+HPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(Landroid/graphics/Rect;)V
+HPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidate(Z)V
+HPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/view/ViewOverlay$OverlayViewGroup;->invalidateParentIfNeeded()V
+HPLandroid/view/ViewOverlay$OverlayViewGroup;->isEmpty()Z
+HPLandroid/view/ViewOverlay$OverlayViewGroup;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V
+HPLandroid/view/ViewOverlay$OverlayViewGroup;->remove(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/view/ViewOverlay$OverlayViewGroup;->remove(Landroid/view/View;)V
+HPLandroid/view/ViewOverlay;-><init>(Landroid/content/Context;Landroid/view/View;)V
+HPLandroid/view/ViewOverlay;->add(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/view/ViewOverlay;->getOverlayView()Landroid/view/ViewGroup;
+HPLandroid/view/ViewOverlay;->isEmpty()Z
+HPLandroid/view/ViewOverlay;->remove(Landroid/graphics/drawable/Drawable;)V
+PLandroid/view/ViewPropertyAnimator$1;-><init>(Landroid/view/ViewPropertyAnimator;)V
+HSPLandroid/view/ViewPropertyAnimator$1;->run()V
+HPLandroid/view/ViewPropertyAnimator$2;->run()V
+HPLandroid/view/ViewPropertyAnimator$3;->run()V
+PLandroid/view/ViewPropertyAnimator$AnimatorEventListener;-><init>(Landroid/view/ViewPropertyAnimator;)V
+PLandroid/view/ViewPropertyAnimator$AnimatorEventListener;-><init>(Landroid/view/ViewPropertyAnimator;Landroid/view/ViewPropertyAnimator$1;)V
+HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationCancel(Landroid/animation/Animator;)V
+HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationEnd(Landroid/animation/Animator;)V
+HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationStart(Landroid/animation/Animator;)V
+HSPLandroid/view/ViewPropertyAnimator$AnimatorEventListener;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V
+HSPLandroid/view/ViewPropertyAnimator$PropertyBundle;->cancel(I)Z
HSPLandroid/view/ViewPropertyAnimator;-><init>(Landroid/view/View;)V
+HSPLandroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator;
+HPLandroid/view/ViewPropertyAnimator;->animateProperty(IF)V
+HPLandroid/view/ViewPropertyAnimator;->animatePropertyBy(IF)V
+HSPLandroid/view/ViewPropertyAnimator;->animatePropertyBy(IFF)V
HSPLandroid/view/ViewPropertyAnimator;->cancel()V
+HSPLandroid/view/ViewPropertyAnimator;->getValue(I)F
+HPLandroid/view/ViewPropertyAnimator;->scaleX(F)Landroid/view/ViewPropertyAnimator;
+HPLandroid/view/ViewPropertyAnimator;->scaleY(F)Landroid/view/ViewPropertyAnimator;
+HSPLandroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator;
+HSPLandroid/view/ViewPropertyAnimator;->setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;
+HSPLandroid/view/ViewPropertyAnimator;->setListener(Landroid/animation/Animator$AnimatorListener;)Landroid/view/ViewPropertyAnimator;
+HPLandroid/view/ViewPropertyAnimator;->setStartDelay(J)Landroid/view/ViewPropertyAnimator;
+HPLandroid/view/ViewPropertyAnimator;->setUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)Landroid/view/ViewPropertyAnimator;
+HPLandroid/view/ViewPropertyAnimator;->setValue(IF)V
+HSPLandroid/view/ViewPropertyAnimator;->start()V
+HSPLandroid/view/ViewPropertyAnimator;->startAnimation()V
+HPLandroid/view/ViewPropertyAnimator;->translationX(F)Landroid/view/ViewPropertyAnimator;
+HPLandroid/view/ViewPropertyAnimator;->translationY(F)Landroid/view/ViewPropertyAnimator;
+HPLandroid/view/ViewPropertyAnimator;->translationYBy(F)Landroid/view/ViewPropertyAnimator;
+HPLandroid/view/ViewPropertyAnimator;->withEndAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
+HPLandroid/view/ViewPropertyAnimator;->withLayer()Landroid/view/ViewPropertyAnimator;
+HPLandroid/view/ViewPropertyAnimator;->withStartAction(Ljava/lang/Runnable;)Landroid/view/ViewPropertyAnimator;
+HPLandroid/view/ViewPropertyAnimator;->y(F)Landroid/view/ViewPropertyAnimator;
HSPLandroid/view/ViewRootImpl$1;-><init>(Landroid/view/ViewRootImpl;)V
+HSPLandroid/view/ViewRootImpl$1;->onDisplayChanged(I)V
+PLandroid/view/ViewRootImpl$1;->toViewScreenState(I)I
HSPLandroid/view/ViewRootImpl$4;-><init>(Landroid/view/ViewRootImpl;)V
HSPLandroid/view/ViewRootImpl$4;->run()V
HSPLandroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;-><init>(Landroid/view/ViewRootImpl;)V
+PLandroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;->ensureNoConnection()V
+PLandroid/view/ViewRootImpl$AsyncInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V
+HSPLandroid/view/ViewRootImpl$AsyncInputStage;->apply(Landroid/view/ViewRootImpl$QueuedInputEvent;I)V
+HPLandroid/view/ViewRootImpl$AsyncInputStage;->defer(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+HPLandroid/view/ViewRootImpl$AsyncInputStage;->dequeue(Landroid/view/ViewRootImpl$QueuedInputEvent;Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+HSPLandroid/view/ViewRootImpl$AsyncInputStage;->forward(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
HSPLandroid/view/ViewRootImpl$ConsumeBatchedInputImmediatelyRunnable;-><init>(Landroid/view/ViewRootImpl;)V
HSPLandroid/view/ViewRootImpl$ConsumeBatchedInputRunnable;-><init>(Landroid/view/ViewRootImpl;)V
HSPLandroid/view/ViewRootImpl$ConsumeBatchedInputRunnable;->run()V
+PLandroid/view/ViewRootImpl$EarlyPostImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;)V
+HSPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
+HPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;->processKeyEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
+HSPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;->processMotionEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
+HSPLandroid/view/ViewRootImpl$EarlyPostImeInputStage;->processPointerEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
+PLandroid/view/ViewRootImpl$GfxInfo;-><init>()V
HSPLandroid/view/ViewRootImpl$HighContrastTextManager;-><init>(Landroid/view/ViewRootImpl;)V
+PLandroid/view/ViewRootImpl$ImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V
+HPLandroid/view/ViewRootImpl$ImeInputStage;->onFinishedInputEvent(Ljava/lang/Object;Z)V
+HPLandroid/view/ViewRootImpl$ImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
HSPLandroid/view/ViewRootImpl$InputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;)V
+HSPLandroid/view/ViewRootImpl$InputStage;->apply(Landroid/view/ViewRootImpl$QueuedInputEvent;I)V
+HSPLandroid/view/ViewRootImpl$InputStage;->deliver(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+HSPLandroid/view/ViewRootImpl$InputStage;->finish(Landroid/view/ViewRootImpl$QueuedInputEvent;Z)V
+HSPLandroid/view/ViewRootImpl$InputStage;->forward(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+HSPLandroid/view/ViewRootImpl$InputStage;->onDeliverToNext(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
HSPLandroid/view/ViewRootImpl$InputStage;->onDetachedFromWindow()V
HSPLandroid/view/ViewRootImpl$InputStage;->onWindowFocusChanged(Z)V
+HSPLandroid/view/ViewRootImpl$InputStage;->shouldDropInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)Z
+HSPLandroid/view/ViewRootImpl$InputStage;->traceEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;J)V
HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;-><init>(Landroid/view/ViewRootImpl;)V
+HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->addView(Landroid/view/View;)V
HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->removeView(Landroid/view/View;)V
+HSPLandroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->run()V
+PLandroid/view/ViewRootImpl$NativePostImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V
+HSPLandroid/view/ViewRootImpl$NativePostImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
+PLandroid/view/ViewRootImpl$NativePreImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V
+HPLandroid/view/ViewRootImpl$NativePreImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
+HSPLandroid/view/ViewRootImpl$QueuedInputEvent;->shouldSkipIme()Z
HSPLandroid/view/ViewRootImpl$SyntheticInputStage;-><init>(Landroid/view/ViewRootImpl;)V
+HSPLandroid/view/ViewRootImpl$SyntheticInputStage;->onDeliverToNext(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
HSPLandroid/view/ViewRootImpl$SyntheticInputStage;->onDetachedFromWindow()V
+HSPLandroid/view/ViewRootImpl$SyntheticInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
HSPLandroid/view/ViewRootImpl$SyntheticInputStage;->onWindowFocusChanged(Z)V
HSPLandroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;-><init>(Landroid/view/ViewRootImpl$SyntheticJoystickHandler;)V
+PLandroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->resetState()V
+PLandroid/view/ViewRootImpl$SyntheticJoystickHandler;-><init>(Landroid/view/ViewRootImpl;)V
+PLandroid/view/ViewRootImpl$SyntheticJoystickHandler;->access$2600(Landroid/view/ViewRootImpl$SyntheticJoystickHandler;)V
HSPLandroid/view/ViewRootImpl$SyntheticJoystickHandler;->cancel()V
+PLandroid/view/ViewRootImpl$SyntheticKeyboardHandler;-><init>(Landroid/view/ViewRootImpl;)V
+PLandroid/view/ViewRootImpl$SyntheticTouchNavigationHandler$1;-><init>(Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;)V
+PLandroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;-><init>(Landroid/view/ViewRootImpl;)V
+PLandroid/view/ViewRootImpl$SyntheticTrackballHandler;-><init>(Landroid/view/ViewRootImpl;)V
+PLandroid/view/ViewRootImpl$TrackballAxis;-><init>()V
HSPLandroid/view/ViewRootImpl$TraversalRunnable;-><init>(Landroid/view/ViewRootImpl;)V
HSPLandroid/view/ViewRootImpl$TraversalRunnable;->run()V
HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;-><init>()V
HSPLandroid/view/ViewRootImpl$UnhandledKeyManager;-><init>(Landroid/view/ViewRootImpl$1;)V
+HPLandroid/view/ViewRootImpl$UnhandledKeyManager;->dispatch(Landroid/view/View;Landroid/view/KeyEvent;)Z
+HPLandroid/view/ViewRootImpl$UnhandledKeyManager;->preDispatch(Landroid/view/KeyEvent;)V
+HPLandroid/view/ViewRootImpl$UnhandledKeyManager;->preViewDispatch(Landroid/view/KeyEvent;)Z
+PLandroid/view/ViewRootImpl$ViewPostImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;)V
+HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->maybeUpdatePointerIcon(Landroid/view/MotionEvent;)V
+HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->onDeliverToNext(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
+HPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->processKeyEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
+HSPLandroid/view/ViewRootImpl$ViewPostImeInputStage;->processPointerEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
+PLandroid/view/ViewRootImpl$ViewPreImeInputStage;-><init>(Landroid/view/ViewRootImpl;Landroid/view/ViewRootImpl$InputStage;)V
+HPLandroid/view/ViewRootImpl$ViewPreImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
HSPLandroid/view/ViewRootImpl$ViewRootHandler;-><init>(Landroid/view/ViewRootImpl;)V
+PLandroid/view/ViewRootImpl$ViewRootHandler;->getMessageName(Landroid/os/Message;)Ljava/lang/String;
HSPLandroid/view/ViewRootImpl$ViewRootHandler;->handleMessage(Landroid/os/Message;)V
HSPLandroid/view/ViewRootImpl$ViewRootHandler;->sendMessageAtTime(Landroid/os/Message;J)Z
HSPLandroid/view/ViewRootImpl$W;-><init>(Landroid/view/ViewRootImpl;)V
+PLandroid/view/ViewRootImpl$W;->closeSystemDialogs(Ljava/lang/String;)V
+HSPLandroid/view/ViewRootImpl$W;->dispatchAppVisibility(Z)V
+HSPLandroid/view/ViewRootImpl$W;->dispatchSystemUiVisibilityChanged(IIII)V
+PLandroid/view/ViewRootImpl$W;->dispatchWindowShown()V
+PLandroid/view/ViewRootImpl$W;->insetsChanged(Landroid/view/InsetsState;)V
+HSPLandroid/view/ViewRootImpl$W;->moved(II)V
HSPLandroid/view/ViewRootImpl$W;->resized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
HSPLandroid/view/ViewRootImpl$W;->windowFocusChanged(ZZ)V
+PLandroid/view/ViewRootImpl$WindowInputEventReceiver;-><init>(Landroid/view/ViewRootImpl;Landroid/view/InputChannel;Landroid/os/Looper;)V
+PLandroid/view/ViewRootImpl$WindowInputEventReceiver;->dispose()V
+HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->onBatchedInputEventPending()V
+HSPLandroid/view/ViewRootImpl$WindowInputEventReceiver;->onInputEvent(Landroid/view/InputEvent;)V
+PLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;)V
HSPLandroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;Landroid/view/IWindowSession;)V
+HSPLandroid/view/ViewRootImpl;->access$1000(Landroid/view/ViewRootImpl;Landroid/graphics/Rect;)V
+PLandroid/view/ViewRootImpl;->access$300(Landroid/view/ViewRootImpl;)Landroid/util/MergedConfiguration;
+PLandroid/view/ViewRootImpl;->access$3502(Landroid/view/ViewRootImpl;Z)Z
+PLandroid/view/ViewRootImpl;->access$3600(Landroid/view/ViewRootImpl;Z)V
HSPLandroid/view/ViewRootImpl;->access$4000(Landroid/view/ViewRootImpl;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
+PLandroid/view/ViewRootImpl;->access$4100(Landroid/view/ViewRootImpl;Landroid/view/InsetsState;)V
+HSPLandroid/view/ViewRootImpl;->access$600(Landroid/view/ViewRootImpl;Landroid/graphics/Rect;)V
+PLandroid/view/ViewRootImpl;->access$800(Landroid/view/View;)V
+PLandroid/view/ViewRootImpl;->access$900(Landroid/view/ViewRootImpl;)Landroid/view/InsetsController;
HSPLandroid/view/ViewRootImpl;->addConfigCallback(Landroid/view/ViewRootImpl$ConfigChangedCallback;)V
HSPLandroid/view/ViewRootImpl;->addWindowCallbacks(Landroid/view/WindowCallbacks;)V
+HSPLandroid/view/ViewRootImpl;->adjustLayoutParamsForCompatibility(Landroid/view/WindowManager$LayoutParams;)V
+PLandroid/view/ViewRootImpl;->applyKeepScreenOnFlag(Landroid/view/WindowManager$LayoutParams;)V
HSPLandroid/view/ViewRootImpl;->canResolveTextDirection()Z
+PLandroid/view/ViewRootImpl;->cancelInvalidate(Landroid/view/View;)V
+HPLandroid/view/ViewRootImpl;->checkForLeavingTouchModeAndConsume(Landroid/view/KeyEvent;)Z
+PLandroid/view/ViewRootImpl;->checkThread()V
HSPLandroid/view/ViewRootImpl;->childDrawableStateChanged(Landroid/view/View;)V
+HSPLandroid/view/ViewRootImpl;->childHasTransientStateChanged(Landroid/view/View;Z)V
+HPLandroid/view/ViewRootImpl;->clearChildFocus(Landroid/view/View;)V
HSPLandroid/view/ViewRootImpl;->collectViewAttributes()Z
+HSPLandroid/view/ViewRootImpl;->controlInsetsForCompatibility(Landroid/view/WindowManager$LayoutParams;)V
+HSPLandroid/view/ViewRootImpl;->deliverInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+PLandroid/view/ViewRootImpl;->destroyHardwareRenderer()V
HSPLandroid/view/ViewRootImpl;->destroyHardwareResources()V
HSPLandroid/view/ViewRootImpl;->destroySurface()V
HSPLandroid/view/ViewRootImpl;->die(Z)Z
+HSPLandroid/view/ViewRootImpl;->dipToPx(I)I
+PLandroid/view/ViewRootImpl;->dispatchAppVisibility(Z)V
HSPLandroid/view/ViewRootImpl;->dispatchApplyInsets(Landroid/view/View;)V
+HSPLandroid/view/ViewRootImpl;->dispatchCheckFocus()V
+PLandroid/view/ViewRootImpl;->dispatchCloseSystemDialogs(Ljava/lang/String;)V
HSPLandroid/view/ViewRootImpl;->dispatchDetachedFromWindow()V
+PLandroid/view/ViewRootImpl;->dispatchInsetsChanged(Landroid/view/InsetsState;)V
+HSPLandroid/view/ViewRootImpl;->dispatchMoved(II)V
HSPLandroid/view/ViewRootImpl;->dispatchResized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
+PLandroid/view/ViewRootImpl;->dispatchWindowShown()V
+HPLandroid/view/ViewRootImpl;->doConsumeBatchedInput(J)V
HSPLandroid/view/ViewRootImpl;->doDie()V
HSPLandroid/view/ViewRootImpl;->doProcessInputEvents()V
HSPLandroid/view/ViewRootImpl;->doTraversal()V
HSPLandroid/view/ViewRootImpl;->draw(Z)Z
HSPLandroid/view/ViewRootImpl;->drawAccessibilityFocusedDrawableIfNeeded(Landroid/graphics/Canvas;)V
+PLandroid/view/ViewRootImpl;->drawPending()V
+PLandroid/view/ViewRootImpl;->drawSoftware(Landroid/view/Surface;Landroid/view/View$AttachInfo;IIZLandroid/graphics/Rect;Landroid/graphics/Rect;)Z
HSPLandroid/view/ViewRootImpl;->enableHardwareAcceleration(Landroid/view/WindowManager$LayoutParams;)V
HSPLandroid/view/ViewRootImpl;->endDragResizing()V
+HSPLandroid/view/ViewRootImpl;->enqueueInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;IZ)V
HSPLandroid/view/ViewRootImpl;->ensureInsetsNonNegative(Landroid/graphics/Rect;Ljava/lang/String;)Landroid/graphics/Rect;
+HSPLandroid/view/ViewRootImpl;->ensureTouchMode(Z)Z
HSPLandroid/view/ViewRootImpl;->ensureTouchModeLocally(Z)Z
HSPLandroid/view/ViewRootImpl;->enterTouchMode()Z
+HPLandroid/view/ViewRootImpl;->findAncestorToTakeFocusInTouchMode(Landroid/view/View;)Landroid/view/ViewGroup;
+HSPLandroid/view/ViewRootImpl;->finishInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
+HSPLandroid/view/ViewRootImpl;->fireAccessibilityFocusEventIfHasFocusedNode()V
+HSPLandroid/view/ViewRootImpl;->focusableViewAvailable(Landroid/view/View;)V
+HPLandroid/view/ViewRootImpl;->forceLayout(Landroid/view/View;)V
+HSPLandroid/view/ViewRootImpl;->getAccessibilityFocusedHost()Landroid/view/View;
HSPLandroid/view/ViewRootImpl;->getAccessibilityFocusedRect(Landroid/graphics/Rect;)Z
+HSPLandroid/view/ViewRootImpl;->getAudioManager()Landroid/media/AudioManager;
+HSPLandroid/view/ViewRootImpl;->getAutofillManager()Landroid/view/autofill/AutofillManager;
+HPLandroid/view/ViewRootImpl;->getBoundsLayer()Landroid/view/SurfaceControl;
+HSPLandroid/view/ViewRootImpl;->getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;)Z
HSPLandroid/view/ViewRootImpl;->getHostVisibility()I
+PLandroid/view/ViewRootImpl;->getImpliedSystemUiVisibility(Landroid/view/WindowManager$LayoutParams;)I
+HSPLandroid/view/ViewRootImpl;->getInsetsController()Landroid/view/InsetsController;
+PLandroid/view/ViewRootImpl;->getNightMode()I
+HSPLandroid/view/ViewRootImpl;->getParent()Landroid/view/ViewParent;
HSPLandroid/view/ViewRootImpl;->getRootMeasureSpec(II)I
HSPLandroid/view/ViewRootImpl;->getRunQueue()Landroid/view/HandlerActionQueue;
+HPLandroid/view/ViewRootImpl;->getSurfaceControl()Landroid/view/SurfaceControl;
HSPLandroid/view/ViewRootImpl;->getTextDirection()I
+HPLandroid/view/ViewRootImpl;->getTitle()Ljava/lang/CharSequence;
HSPLandroid/view/ViewRootImpl;->getValidLayoutRequesters(Ljava/util/ArrayList;Z)Ljava/util/ArrayList;
+PLandroid/view/ViewRootImpl;->getView()Landroid/view/View;
HSPLandroid/view/ViewRootImpl;->getWindowInsets(Z)Landroid/view/WindowInsets;
+PLandroid/view/ViewRootImpl;->handleAppVisibility(Z)V
+HSPLandroid/view/ViewRootImpl;->handleContentCaptureFlush()V
+HSPLandroid/view/ViewRootImpl;->handleDispatchSystemUiVisibilityChanged(Landroid/view/ViewRootImpl$SystemUiVisibilityInfo;)V
+PLandroid/view/ViewRootImpl;->handleDispatchWindowShown()V
HSPLandroid/view/ViewRootImpl;->handleWindowFocusChanged()V
HSPLandroid/view/ViewRootImpl;->hasColorModeChanged(I)Z
+HPLandroid/view/ViewRootImpl;->invalidate()V
HSPLandroid/view/ViewRootImpl;->invalidateChild(Landroid/view/View;Landroid/graphics/Rect;)V
HSPLandroid/view/ViewRootImpl;->invalidateChildInParent([ILandroid/graphics/Rect;)Landroid/view/ViewParent;
HSPLandroid/view/ViewRootImpl;->invalidateRectOnScreen(Landroid/graphics/Rect;)V
HSPLandroid/view/ViewRootImpl;->isContentCaptureEnabled()Z
+PLandroid/view/ViewRootImpl;->isContentCaptureReallyEnabled()Z
+PLandroid/view/ViewRootImpl;->isInLayout()Z
+HSPLandroid/view/ViewRootImpl;->isInLocalFocusMode()Z
HSPLandroid/view/ViewRootImpl;->isInTouchMode()Z
HSPLandroid/view/ViewRootImpl;->isLayoutRequested()Z
+HPLandroid/view/ViewRootImpl;->isNavigationKey(Landroid/view/KeyEvent;)Z
+HPLandroid/view/ViewRootImpl;->isTerminalInputEvent(Landroid/view/InputEvent;)Z
HSPLandroid/view/ViewRootImpl;->isTextDirectionResolved()Z
HSPLandroid/view/ViewRootImpl;->lambda$performDraw$1$ViewRootImpl(Ljava/util/ArrayList;)V
HSPLandroid/view/ViewRootImpl;->lambda$performDraw$2$ViewRootImpl(Landroid/os/Handler;Ljava/util/ArrayList;J)V
+HPLandroid/view/ViewRootImpl;->lambda$registerRtFrameCallback$0(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;J)V
HSPLandroid/view/ViewRootImpl;->loadSystemProperties()V
HSPLandroid/view/ViewRootImpl;->maybeHandleWindowMove(Landroid/graphics/Rect;)V
+HSPLandroid/view/ViewRootImpl;->maybeUpdateTooltip(Landroid/view/MotionEvent;)V
HSPLandroid/view/ViewRootImpl;->measureHierarchy(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;Landroid/content/res/Resources;II)Z
+PLandroid/view/ViewRootImpl;->notifyInsetsChanged()V
+PLandroid/view/ViewRootImpl;->notifyRendererOfFramePending()V
HSPLandroid/view/ViewRootImpl;->notifySurfaceCreated()V
HSPLandroid/view/ViewRootImpl;->notifySurfaceDestroyed()V
HSPLandroid/view/ViewRootImpl;->onDescendantInvalidated(Landroid/view/View;Landroid/view/View;)V
HSPLandroid/view/ViewRootImpl;->onPostDraw(Landroid/graphics/RecordingCanvas;)V
HSPLandroid/view/ViewRootImpl;->onPreDraw(Landroid/graphics/RecordingCanvas;)V
+HSPLandroid/view/ViewRootImpl;->onStartNestedScroll(Landroid/view/View;Landroid/view/View;I)Z
HSPLandroid/view/ViewRootImpl;->pendingDrawFinished()V
HSPLandroid/view/ViewRootImpl;->performConfigurationChange(Landroid/util/MergedConfiguration;ZI)V
HSPLandroid/view/ViewRootImpl;->performContentCaptureInitialReport()V
HSPLandroid/view/ViewRootImpl;->performDraw()V
+HPLandroid/view/ViewRootImpl;->performHapticFeedback(IZ)Z
HSPLandroid/view/ViewRootImpl;->performLayout(Landroid/view/WindowManager$LayoutParams;II)V
HSPLandroid/view/ViewRootImpl;->performMeasure(II)V
HSPLandroid/view/ViewRootImpl;->performTraversals()V
+HSPLandroid/view/ViewRootImpl;->playSoundEffect(I)V
HSPLandroid/view/ViewRootImpl;->pokeDrawLockIfNeeded()V
HSPLandroid/view/ViewRootImpl;->profileRendering(Z)V
+HPLandroid/view/ViewRootImpl;->recomputeViewAttributes(Landroid/view/View;)V
+HSPLandroid/view/ViewRootImpl;->registerAnimatingRenderNode(Landroid/graphics/RenderNode;)V
+HPLandroid/view/ViewRootImpl;->registerRtFrameCallback(Landroid/graphics/HardwareRenderer$FrameDrawingCallback;)V
HSPLandroid/view/ViewRootImpl;->relayoutWindow(Landroid/view/WindowManager$LayoutParams;IZ)I
+PLandroid/view/ViewRootImpl;->removeSendWindowContentChangedCallback()V
+HSPLandroid/view/ViewRootImpl;->removeWindowCallbacks(Landroid/view/WindowCallbacks;)V
HSPLandroid/view/ViewRootImpl;->reportDrawFinished()V
HSPLandroid/view/ViewRootImpl;->reportNextDraw()V
+HPLandroid/view/ViewRootImpl;->requestChildFocus(Landroid/view/View;Landroid/view/View;)V
+HPLandroid/view/ViewRootImpl;->requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z
+HPLandroid/view/ViewRootImpl;->requestDisallowInterceptTouchEvent(Z)V
+HSPLandroid/view/ViewRootImpl;->requestFitSystemWindows()V
+PLandroid/view/ViewRootImpl;->requestInvalidateRootRenderNode()V
HSPLandroid/view/ViewRootImpl;->requestLayout()V
+HPLandroid/view/ViewRootImpl;->requestTransparentRegion(Landroid/view/View;)V
+PLandroid/view/ViewRootImpl;->scheduleConsumeBatchedInput()V
HSPLandroid/view/ViewRootImpl;->scheduleTraversals()V
HSPLandroid/view/ViewRootImpl;->scrollToRectOrFocus(Landroid/graphics/Rect;Z)Z
HSPLandroid/view/ViewRootImpl;->setAccessibilityFocus(Landroid/view/View;Landroid/view/accessibility/AccessibilityNodeInfo;)V
+PLandroid/view/ViewRootImpl;->setActivityConfigCallback(Landroid/view/ViewRootImpl$ActivityConfigCallback;)V
+HPLandroid/view/ViewRootImpl;->setBoundsLayerCrop()V
+PLandroid/view/ViewRootImpl;->setFrame(Landroid/graphics/Rect;)V
HSPLandroid/view/ViewRootImpl;->setLayoutParams(Landroid/view/WindowManager$LayoutParams;Z)V
HSPLandroid/view/ViewRootImpl;->setTag()V
HSPLandroid/view/ViewRootImpl;->setView(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;Landroid/view/View;)V
+HSPLandroid/view/ViewRootImpl;->setWindowStopped(Z)V
HSPLandroid/view/ViewRootImpl;->shouldUseDisplaySize(Landroid/view/WindowManager$LayoutParams;)Z
+HSPLandroid/view/ViewRootImpl;->systemGestureExclusionChanged()V
+HPLandroid/view/ViewRootImpl;->transformMatrixToGlobal(Landroid/graphics/Matrix;)V
+HPLandroid/view/ViewRootImpl;->transformMatrixToLocal(Landroid/graphics/Matrix;)V
+PLandroid/view/ViewRootImpl;->unscheduleConsumeBatchedInput()V
+PLandroid/view/ViewRootImpl;->unscheduleTraversals()V
HSPLandroid/view/ViewRootImpl;->updateBoundsLayer()V
HSPLandroid/view/ViewRootImpl;->updateConfiguration(I)V
HSPLandroid/view/ViewRootImpl;->updateContentDrawBounds()Z
HSPLandroid/view/ViewRootImpl;->updateForceDarkMode()V
+PLandroid/view/ViewRootImpl;->updateInternalDisplay(ILandroid/content/res/Resources;)V
HSPLandroid/view/ViewRootImpl;->windowFocusChanged(ZZ)V
+PLandroid/view/ViewStructure$HtmlInfo$Builder;-><init>()V
+PLandroid/view/ViewStructure$HtmlInfo;-><init>()V
+HPLandroid/view/ViewStub$ViewReplaceRunnable;->run()V
HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+PLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
HSPLandroid/view/ViewStub;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/view/ViewStub;->access$000(Landroid/view/ViewStub;Landroid/view/View;Landroid/view/ViewGroup;)V
+HSPLandroid/view/ViewStub;->inflate()Landroid/view/View;
+HPLandroid/view/ViewStub;->replaceSelfWithView(Landroid/view/View;Landroid/view/ViewGroup;)V
+PLandroid/view/ViewStub;->setLayoutInflater(Landroid/view/LayoutInflater;)V
+HSPLandroid/view/ViewStub;->setLayoutResource(I)V
+HPLandroid/view/ViewStub;->setOnInflateListener(Landroid/view/ViewStub$OnInflateListener;)V
HSPLandroid/view/ViewStub;->setVisibility(I)V
+HPLandroid/view/ViewStub;->setVisibilityAsync(I)Ljava/lang/Runnable;
+PLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;-><init>()V
+PLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->access$000(Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;)Ljava/util/ArrayList;
+PLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->access$002(Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;Ljava/util/ArrayList;)Ljava/util/ArrayList;
+PLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->access$102(Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;I)I
HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->get(I)Ljava/lang/Object;
HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->size()I
+PLandroid/view/ViewTreeObserver$CopyOnWriteArray;-><init>()V
HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->add(Ljava/lang/Object;)V
+HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->addAll(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V
HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->end()V
+PLandroid/view/ViewTreeObserver$CopyOnWriteArray;->getArray()Ljava/util/ArrayList;
HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->remove(Ljava/lang/Object;)V
HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->size()I
HSPLandroid/view/ViewTreeObserver$CopyOnWriteArray;->start()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
HSPLandroid/view/ViewTreeObserver$InternalInsetsInfo;-><init>()V
+HPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->equals(Ljava/lang/Object;)Z
+HPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->isEmpty()Z
+HPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->reset()V
+HPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->set(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
+HPLandroid/view/ViewTreeObserver$InternalInsetsInfo;->setTouchableInsets(I)V
+PLandroid/view/ViewTreeObserver;-><init>(Landroid/content/Context;)V
+HPLandroid/view/ViewTreeObserver;->addOnComputeInternalInsetsListener(Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V
+HSPLandroid/view/ViewTreeObserver;->addOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V
+HSPLandroid/view/ViewTreeObserver;->addOnGlobalFocusChangeListener(Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;)V
HSPLandroid/view/ViewTreeObserver;->addOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
+HSPLandroid/view/ViewTreeObserver;->addOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
+HSPLandroid/view/ViewTreeObserver;->addOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V
+PLandroid/view/ViewTreeObserver;->captureFrameCommitCallbacks()Ljava/util/ArrayList;
+HSPLandroid/view/ViewTreeObserver;->checkIsAlive()V
+HPLandroid/view/ViewTreeObserver;->dispatchOnComputeInternalInsets(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
+PLandroid/view/ViewTreeObserver;->dispatchOnDraw()V
+HSPLandroid/view/ViewTreeObserver;->dispatchOnEnterAnimationComplete()V
HSPLandroid/view/ViewTreeObserver;->dispatchOnGlobalLayout()V
HSPLandroid/view/ViewTreeObserver;->dispatchOnPreDraw()Z
HSPLandroid/view/ViewTreeObserver;->dispatchOnScrollChanged()V
+HSPLandroid/view/ViewTreeObserver;->dispatchOnSystemGestureExclusionRectsChanged(Ljava/util/List;)V
+PLandroid/view/ViewTreeObserver;->dispatchOnTouchModeChanged(Z)V
HSPLandroid/view/ViewTreeObserver;->dispatchOnWindowAttachedChange(Z)V
+PLandroid/view/ViewTreeObserver;->dispatchOnWindowShown()V
HSPLandroid/view/ViewTreeObserver;->hasComputeInternalInsetsListeners()Z
+HSPLandroid/view/ViewTreeObserver;->isAlive()Z
+HSPLandroid/view/ViewTreeObserver;->merge(Landroid/view/ViewTreeObserver;)V
+HSPLandroid/view/ViewTreeObserver;->removeGlobalOnLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
+HPLandroid/view/ViewTreeObserver;->removeOnComputeInternalInsetsListener(Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;)V
+HSPLandroid/view/ViewTreeObserver;->removeOnDrawListener(Landroid/view/ViewTreeObserver$OnDrawListener;)V
+HPLandroid/view/ViewTreeObserver;->removeOnGlobalFocusChangeListener(Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;)V
+HSPLandroid/view/ViewTreeObserver;->removeOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V
+HSPLandroid/view/ViewTreeObserver;->removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V
+HSPLandroid/view/ViewTreeObserver;->removeOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V
HSPLandroid/view/Window;-><init>(Landroid/content/Context;)V
+HSPLandroid/view/Window;->addFlags(I)V
+HSPLandroid/view/Window;->addOnFrameMetricsAvailableListener(Landroid/view/Window$OnFrameMetricsAvailableListener;Landroid/os/Handler;)V
+HSPLandroid/view/Window;->addPrivateFlags(I)V
+HSPLandroid/view/Window;->adjustLayoutParamsForSubWindow(Landroid/view/WindowManager$LayoutParams;)V
+HSPLandroid/view/Window;->clearFlags(I)V
HSPLandroid/view/Window;->dispatchWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V
HSPLandroid/view/Window;->findViewById(I)Landroid/view/View;
HSPLandroid/view/Window;->getAttributes()Landroid/view/WindowManager$LayoutParams;
+HSPLandroid/view/Window;->getCallback()Landroid/view/Window$Callback;
+HPLandroid/view/Window;->getColorMode()I
+PLandroid/view/Window;->getContainer()Landroid/view/Window;
+PLandroid/view/Window;->getContext()Landroid/content/Context;
+PLandroid/view/Window;->getDefaultFeatures(Landroid/content/Context;)I
+PLandroid/view/Window;->getFeatures()I
+PLandroid/view/Window;->getForcedWindowFlags()I
+PLandroid/view/Window;->getLocalFeatures()I
+HSPLandroid/view/Window;->getWindowManager()Landroid/view/WindowManager;
HSPLandroid/view/Window;->getWindowStyle()Landroid/content/res/TypedArray;
HSPLandroid/view/Window;->hasFeature(I)Z
+PLandroid/view/Window;->hasSoftInputMode()Z
+HSPLandroid/view/Window;->haveDimAmount()Z
+PLandroid/view/Window;->isDestroyed()Z
+HSPLandroid/view/Window;->isOutOfBounds(Landroid/content/Context;Landroid/view/MotionEvent;)Z
+HPLandroid/view/Window;->isWideColorGamut()Z
+HPLandroid/view/Window;->removeOnFrameMetricsAvailableListener(Landroid/view/Window$OnFrameMetricsAvailableListener;)V
+PLandroid/view/Window;->requestFeature(I)Z
HSPLandroid/view/Window;->setCallback(Landroid/view/Window$Callback;)V
+HPLandroid/view/Window;->setCloseOnTouchOutside(Z)V
+HSPLandroid/view/Window;->setCloseOnTouchOutsideIfNotSet(Z)V
+HSPLandroid/view/Window;->setColorMode(I)V
+PLandroid/view/Window;->setDefaultWindowFormat(I)V
+HSPLandroid/view/Window;->setFitWindowInsetsTypes(I)V
HSPLandroid/view/Window;->setFlags(II)V
+HSPLandroid/view/Window;->setGravity(I)V
HSPLandroid/view/Window;->setLayout(II)V
-HSPLandroid/view/Window;->setNeedsMenuKey(I)V
+HSPLandroid/view/Window;->setPrivateFlags(II)V
+HSPLandroid/view/Window;->setSoftInputMode(I)V
+PLandroid/view/Window;->setType(I)V
+HPLandroid/view/Window;->setWindowAnimations(I)V
HSPLandroid/view/Window;->setWindowManager(Landroid/view/WindowManager;Landroid/os/IBinder;Ljava/lang/String;Z)V
+HSPLandroid/view/Window;->shouldCloseOnTouch(Landroid/content/Context;Landroid/view/MotionEvent;)Z
+HPLandroid/view/WindowId$1;-><init>()V
+HSPLandroid/view/WindowInsets$Builder;-><init>(Landroid/view/WindowInsets;)V
+HSPLandroid/view/WindowInsets$Builder;->build()Landroid/view/WindowInsets;
+HPLandroid/view/WindowInsets$Builder;->setSystemWindowInsets(Landroid/graphics/Insets;)Landroid/view/WindowInsets$Builder;
+HSPLandroid/view/WindowInsets$Side;->all()I
+HSPLandroid/view/WindowInsets$Type;->all()I
HSPLandroid/view/WindowInsets$Type;->compatSystemInsets()I
HSPLandroid/view/WindowInsets$Type;->indexOf(I)I
+PLandroid/view/WindowInsets$Type;->navigationBars()I
+PLandroid/view/WindowInsets$Type;->systemBars()I
+PLandroid/view/WindowInsets;-><init>(Landroid/graphics/Rect;)V
+HPLandroid/view/WindowInsets;-><init>(Landroid/graphics/Rect;Landroid/graphics/Rect;ZZLandroid/view/DisplayCutout;)V
+HSPLandroid/view/WindowInsets;-><init>(Landroid/view/WindowInsets;)V
HSPLandroid/view/WindowInsets;-><init>([Landroid/graphics/Insets;[Landroid/graphics/Insets;[ZZZLandroid/view/DisplayCutout;)V
HSPLandroid/view/WindowInsets;->assignCompatInsets([Landroid/graphics/Insets;Landroid/graphics/Rect;)V
+HSPLandroid/view/WindowInsets;->consumeDisplayCutout()Landroid/view/WindowInsets;
+PLandroid/view/WindowInsets;->consumeStableInsets()Landroid/view/WindowInsets;
+HSPLandroid/view/WindowInsets;->consumeSystemWindowInsets()Landroid/view/WindowInsets;
+PLandroid/view/WindowInsets;->createCompatTypeMap(Landroid/graphics/Rect;)[Landroid/graphics/Insets;
+HPLandroid/view/WindowInsets;->createCompatVisibilityMap([Landroid/graphics/Insets;)[Z
+HSPLandroid/view/WindowInsets;->displayCutoutCopyConstructorArgument(Landroid/view/WindowInsets;)Landroid/view/DisplayCutout;
+HSPLandroid/view/WindowInsets;->equals(Ljava/lang/Object;)Z
+HPLandroid/view/WindowInsets;->getDisplayCutout()Landroid/view/DisplayCutout;
HSPLandroid/view/WindowInsets;->getInsets([Landroid/graphics/Insets;I)Landroid/graphics/Insets;
+HSPLandroid/view/WindowInsets;->getMandatorySystemGestureInsets()Landroid/graphics/Insets;
+HPLandroid/view/WindowInsets;->getMaxInsets(I)Landroid/graphics/Insets;
+HSPLandroid/view/WindowInsets;->getStableInsetBottom()I
+PLandroid/view/WindowInsets;->getStableInsetLeft()I
+PLandroid/view/WindowInsets;->getStableInsetRight()I
+PLandroid/view/WindowInsets;->getStableInsetTop()I
HSPLandroid/view/WindowInsets;->getStableInsets()Landroid/graphics/Insets;
+HPLandroid/view/WindowInsets;->getSystemGestureInsets()Landroid/graphics/Insets;
+HSPLandroid/view/WindowInsets;->getSystemWindowInsetBottom()I
+HSPLandroid/view/WindowInsets;->getSystemWindowInsetLeft()I
+HSPLandroid/view/WindowInsets;->getSystemWindowInsetRight()I
+HSPLandroid/view/WindowInsets;->getSystemWindowInsetTop()I
HSPLandroid/view/WindowInsets;->getSystemWindowInsets()Landroid/graphics/Insets;
+HPLandroid/view/WindowInsets;->getSystemWindowInsetsAsRect()Landroid/graphics/Rect;
+HSPLandroid/view/WindowInsets;->getTappableElementInsets()Landroid/graphics/Insets;
+HSPLandroid/view/WindowInsets;->hasInsets()Z
+HSPLandroid/view/WindowInsets;->hasSystemWindowInsets()Z
HSPLandroid/view/WindowInsets;->inset(IIII)Landroid/view/WindowInsets;
+PLandroid/view/WindowInsets;->inset(Landroid/graphics/Rect;)Landroid/view/WindowInsets;
HSPLandroid/view/WindowInsets;->insetInsets(Landroid/graphics/Insets;IIII)Landroid/graphics/Insets;
HSPLandroid/view/WindowInsets;->insetInsets([Landroid/graphics/Insets;IIII)[Landroid/graphics/Insets;
+HSPLandroid/view/WindowInsets;->isConsumed()Z
+PLandroid/view/WindowInsets;->isSystemWindowInsetsConsumed()Z
+HSPLandroid/view/WindowInsets;->replaceSystemWindowInsets(IIII)Landroid/view/WindowInsets;
+PLandroid/view/WindowInsets;->shouldAlwaysConsumeSystemBars()Z
HSPLandroid/view/WindowLeaked;-><init>(Ljava/lang/String;)V
+PLandroid/view/WindowManager$LayoutParams$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/WindowManager$LayoutParams;
+PLandroid/view/WindowManager$LayoutParams$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/view/WindowManager$LayoutParams;-><init>()V
+PLandroid/view/WindowManager$LayoutParams;-><init>(IIIII)V
+HPLandroid/view/WindowManager$LayoutParams;-><init>(IIIIIII)V
+HPLandroid/view/WindowManager$LayoutParams;-><init>(Landroid/os/Parcel;)V
HSPLandroid/view/WindowManager$LayoutParams;->copyFrom(Landroid/view/WindowManager$LayoutParams;)I
+HPLandroid/view/WindowManager$LayoutParams;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+PLandroid/view/WindowManager$LayoutParams;->dumpDimensions(Ljava/lang/StringBuilder;)V
HSPLandroid/view/WindowManager$LayoutParams;->getColorMode()I
-HSPLandroid/view/WindowManager$LayoutParams;->getTitle()Ljava/lang/CharSequence;
+HSPLandroid/view/WindowManager$LayoutParams;->getFitWindowInsetsSides()I
+HSPLandroid/view/WindowManager$LayoutParams;->getFitWindowInsetsTypes()I
+PLandroid/view/WindowManager$LayoutParams;->getTitle()Ljava/lang/CharSequence;
+PLandroid/view/WindowManager$LayoutParams;->inputFeatureToString(I)Ljava/lang/String;
+HPLandroid/view/WindowManager$LayoutParams;->isFullscreen()Z
+PLandroid/view/WindowManager$LayoutParams;->isSystemAlertWindowType(I)Z
+PLandroid/view/WindowManager$LayoutParams;->layoutInDisplayCutoutModeToString(I)Ljava/lang/String;
HSPLandroid/view/WindowManager$LayoutParams;->mayUseInputMethod(I)Z
+HSPLandroid/view/WindowManager$LayoutParams;->setColorMode(I)V
+PLandroid/view/WindowManager$LayoutParams;->setFitIgnoreVisibility(Z)V
+HSPLandroid/view/WindowManager$LayoutParams;->setFitWindowInsetsTypes(I)V
HSPLandroid/view/WindowManager$LayoutParams;->setSurfaceInsets(Landroid/view/View;ZZ)V
-HSPLandroid/view/WindowManager$LayoutParams;->setTitle(Ljava/lang/CharSequence;)V
+PLandroid/view/WindowManager$LayoutParams;->setTitle(Ljava/lang/CharSequence;)V
+PLandroid/view/WindowManager$LayoutParams;->softInputModeToString(I)Ljava/lang/String;
+HPLandroid/view/WindowManager$LayoutParams;->toString(Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/view/WindowManager$LayoutParams;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/WindowManagerGlobal$1;-><init>()V
+PLandroid/view/WindowManagerGlobal$2;-><init>(Landroid/view/WindowManagerGlobal;)V
+HPLandroid/view/WindowManagerGlobal$2;->run()V
HSPLandroid/view/WindowManagerGlobal;-><init>()V
+PLandroid/view/WindowManagerGlobal;->access$000(Landroid/view/WindowManagerGlobal;)Ljava/lang/Object;
+PLandroid/view/WindowManagerGlobal;->access$100(Landroid/view/WindowManagerGlobal;)Ljava/util/ArrayList;
HSPLandroid/view/WindowManagerGlobal;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;Landroid/view/Display;Landroid/view/Window;)V
+HPLandroid/view/WindowManagerGlobal;->closeAll(Landroid/os/IBinder;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/view/WindowManagerGlobal;->closeAllExceptView(Landroid/os/IBinder;Landroid/view/View;Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/view/WindowManagerGlobal;->doRemoveView(Landroid/view/ViewRootImpl;)V
+PLandroid/view/WindowManagerGlobal;->doTrimForeground()V
+PLandroid/view/WindowManagerGlobal;->dumpGfxInfo(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
HSPLandroid/view/WindowManagerGlobal;->findViewLocked(Landroid/view/View;Z)I
HSPLandroid/view/WindowManagerGlobal;->getInstance()Landroid/view/WindowManagerGlobal;
+HPLandroid/view/WindowManagerGlobal;->getRootViews(Landroid/os/IBinder;)Ljava/util/ArrayList;
HSPLandroid/view/WindowManagerGlobal;->getWindowManagerService()Landroid/view/IWindowManager;
HSPLandroid/view/WindowManagerGlobal;->getWindowSession()Landroid/view/IWindowSession;
HSPLandroid/view/WindowManagerGlobal;->peekWindowSession()Landroid/view/IWindowSession;
HSPLandroid/view/WindowManagerGlobal;->removeView(Landroid/view/View;Z)V
HSPLandroid/view/WindowManagerGlobal;->removeViewLocked(IZ)V
+HSPLandroid/view/WindowManagerGlobal;->setStoppedState(Landroid/os/IBinder;Z)V
+PLandroid/view/WindowManagerGlobal;->shouldDestroyEglContext(I)Z
HSPLandroid/view/WindowManagerGlobal;->trimMemory(I)V
HSPLandroid/view/WindowManagerGlobal;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
HSPLandroid/view/WindowManagerImpl;-><init>(Landroid/content/Context;)V
@@ -7862,43 +26536,218 @@ HSPLandroid/view/WindowManagerImpl;-><init>(Landroid/content/Context;Landroid/vi
HSPLandroid/view/WindowManagerImpl;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
HSPLandroid/view/WindowManagerImpl;->applyDefaultToken(Landroid/view/ViewGroup$LayoutParams;)V
HSPLandroid/view/WindowManagerImpl;->getDefaultDisplay()Landroid/view/Display;
-HSPLandroid/view/WindowManagerImpl;->removeView(Landroid/view/View;)V
+PLandroid/view/WindowManagerImpl;->removeView(Landroid/view/View;)V
+HSPLandroid/view/WindowManagerImpl;->removeViewImmediate(Landroid/view/View;)V
HSPLandroid/view/WindowManagerImpl;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+PLandroid/view/WindowManagerPolicyConstants;->offReasonToString(I)Ljava/lang/String;
+PLandroid/view/accessibility/-$$Lambda$AccessibilityManager$1$o7fCplskH9NlBwJvkl6NoZ0L_BA;-><init>(Landroid/view/accessibility/AccessibilityManager$1;Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener;)V
+PLandroid/view/accessibility/-$$Lambda$AccessibilityManager$1$o7fCplskH9NlBwJvkl6NoZ0L_BA;->run()V
HSPLandroid/view/accessibility/AccessibilityManager$1;-><init>(Landroid/view/accessibility/AccessibilityManager;)V
+PLandroid/view/accessibility/AccessibilityManager$1;->lambda$notifyServicesStateChanged$0$AccessibilityManager$1(Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener;)V
+PLandroid/view/accessibility/AccessibilityManager$1;->notifyServicesStateChanged(J)V
+PLandroid/view/accessibility/AccessibilityManager$1;->setState(I)V
HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;-><init>(Landroid/view/accessibility/AccessibilityManager;)V
HSPLandroid/view/accessibility/AccessibilityManager$MyCallback;-><init>(Landroid/view/accessibility/AccessibilityManager;Landroid/view/accessibility/AccessibilityManager$1;)V
+PLandroid/view/accessibility/AccessibilityManager$MyCallback;->handleMessage(Landroid/os/Message;)Z
HSPLandroid/view/accessibility/AccessibilityManager;-><init>(Landroid/content/Context;Landroid/view/accessibility/IAccessibilityManager;I)V
+PLandroid/view/accessibility/AccessibilityManager;->access$000(Landroid/view/accessibility/AccessibilityManager;J)V
+PLandroid/view/accessibility/AccessibilityManager;->access$100(Landroid/view/accessibility/AccessibilityManager;)Ljava/lang/Object;
+PLandroid/view/accessibility/AccessibilityManager;->access$200(Landroid/view/accessibility/AccessibilityManager;)Landroid/util/ArrayMap;
+PLandroid/view/accessibility/AccessibilityManager;->access$400(Landroid/view/accessibility/AccessibilityManager;I)V
+HSPLandroid/view/accessibility/AccessibilityManager;->addAccessibilityServicesStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener;Landroid/os/Handler;)V
HSPLandroid/view/accessibility/AccessibilityManager;->addAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z
HSPLandroid/view/accessibility/AccessibilityManager;->addAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;Landroid/os/Handler;)V
HSPLandroid/view/accessibility/AccessibilityManager;->addHighTextContrastStateChangeListener(Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;Landroid/os/Handler;)V
+HSPLandroid/view/accessibility/AccessibilityManager;->addTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;)Z
HSPLandroid/view/accessibility/AccessibilityManager;->addTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;Landroid/os/Handler;)V
HSPLandroid/view/accessibility/AccessibilityManager;->getEnabledAccessibilityServiceList(I)Ljava/util/List;
+HSPLandroid/view/accessibility/AccessibilityManager;->getInstalledAccessibilityServiceList()Ljava/util/List;
+HPLandroid/view/accessibility/AccessibilityManager;->getInstalledAccessibilityShortcutListAsUser(Landroid/content/Context;I)Ljava/util/List;
HSPLandroid/view/accessibility/AccessibilityManager;->getInstance(Landroid/content/Context;)Landroid/view/accessibility/AccessibilityManager;
+PLandroid/view/accessibility/AccessibilityManager;->getRecommendedTimeoutMillis(II)I
+HSPLandroid/view/accessibility/AccessibilityManager;->getServiceLocked()Landroid/view/accessibility/IAccessibilityManager;
+HSPLandroid/view/accessibility/AccessibilityManager;->isAccessibilityVolumeStreamActive()Z
HSPLandroid/view/accessibility/AccessibilityManager;->isEnabled()Z
HSPLandroid/view/accessibility/AccessibilityManager;->isHighTextContrastEnabled()Z
+HSPLandroid/view/accessibility/AccessibilityManager;->isTouchExplorationEnabled()Z
+PLandroid/view/accessibility/AccessibilityManager;->notifyAccessibilityButtonVisibilityChanged(Z)V
HSPLandroid/view/accessibility/AccessibilityManager;->removeAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z
HSPLandroid/view/accessibility/AccessibilityManager;->removeHighTextContrastStateChangeListener(Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;)V
+HPLandroid/view/accessibility/AccessibilityManager;->removeTouchExplorationStateChangeListener(Landroid/view/accessibility/AccessibilityManager$TouchExplorationStateChangeListener;)Z
+HPLandroid/view/accessibility/AccessibilityManager;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
HSPLandroid/view/accessibility/AccessibilityManager;->setStateLocked(I)V
HSPLandroid/view/accessibility/AccessibilityManager;->tryConnectToServiceLocked(Landroid/view/accessibility/IAccessibilityManager;)V
HSPLandroid/view/accessibility/AccessibilityManager;->updateUiTimeout(J)V
+PLandroid/view/accessibility/AccessibilityNodeIdManager;-><init>()V
HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->getInstance()Landroid/view/accessibility/AccessibilityNodeIdManager;
HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->registerViewWithId(Landroid/view/View;I)V
HSPLandroid/view/accessibility/AccessibilityNodeIdManager;->unregisterViewWithId(I)V
+HSPLandroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;-><init>(ILjava/lang/CharSequence;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;->equals(Ljava/lang/Object;)Z
+HSPLandroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;->getId()I
+HPLandroid/view/accessibility/AccessibilityNodeInfo;-><init>()V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->addAction(I)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->addAction(Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->addActionUnchecked(Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->addChild(Landroid/view/View;I)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->addChildInternal(Landroid/view/View;IZ)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->addStandardActions(J)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->clear()V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->enforceNotSealed()V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getActionSingletonBySerializationFlag(J)Landroid/view/accessibility/AccessibilityNodeInfo$AccessibilityAction;
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getActions()I
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getBooleanProperty(I)Z
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getBoundsInParent(Landroid/graphics/Rect;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getBoundsInScreen(Landroid/graphics/Rect;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getChildCount()I
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getChildId(I)J
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getChildNodeIds()Landroid/util/LongArray;
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getClassName()Ljava/lang/CharSequence;
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getContentDescription()Ljava/lang/CharSequence;
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getError()Ljava/lang/CharSequence;
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getExtras()Landroid/os/Bundle;
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getSourceNodeId()J
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getText()Ljava/lang/CharSequence;
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getViewIdResourceName()Ljava/lang/String;
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->getVirtualDescendantId(J)I
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->init(Landroid/view/accessibility/AccessibilityNodeInfo;Z)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->initPoolingInfos(Landroid/view/accessibility/AccessibilityNodeInfo;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->isAccessibilityFocused()Z
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->isCheckable()Z
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->isClickable()Z
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->isContextClickable()Z
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->isEnabled()Z
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->isFocusable()Z
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->isFocused()Z
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->isLongClickable()Z
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->isSealed()Z
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->isSelected()Z
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->makeNodeId(II)J
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->obtain()Landroid/view/accessibility/AccessibilityNodeInfo;
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->obtain(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeInfo;
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->obtain(Landroid/view/accessibility/AccessibilityNodeInfo;)Landroid/view/accessibility/AccessibilityNodeInfo;
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->recycle()V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setAccessibilityFocused(Z)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setBooleanProperty(IZ)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setBoundsInParent(Landroid/graphics/Rect;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setBoundsInScreen(Landroid/graphics/Rect;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setClassName(Ljava/lang/CharSequence;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setClickable(Z)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setContentDescription(Ljava/lang/CharSequence;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setContextClickable(Z)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setDrawingOrder(I)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setEnabled(Z)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setFocusable(Z)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setFocused(Z)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setHeading(Z)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setImportantForAccessibility(Z)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setLiveRegion(I)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setLongClickable(Z)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setPackageName(Ljava/lang/CharSequence;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setPaneTitle(Ljava/lang/CharSequence;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setParent(Landroid/view/View;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setParent(Landroid/view/View;I)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setScreenReaderFocusable(Z)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setSelected(Z)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setSource(Landroid/view/View;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setSource(Landroid/view/View;I)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setStateDescription(Ljava/lang/CharSequence;)V
+HPLandroid/view/accessibility/AccessibilityNodeInfo;->setVisibleToUser(Z)V
+HPLandroid/view/accessibility/AccessibilityNodeProvider;-><init>()V
+HSPLandroid/view/accessibility/CaptioningManager$1;-><init>(Landroid/view/accessibility/CaptioningManager;)V
+HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->getTypeface()Landroid/graphics/Typeface;
+HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasBackgroundColor()Z
+HSPLandroid/view/accessibility/CaptioningManager$CaptionStyle;->hasForegroundColor()Z
+HSPLandroid/view/accessibility/CaptioningManager$CaptioningChangeListener;-><init>()V
+HSPLandroid/view/accessibility/CaptioningManager$MyContentObserver;-><init>(Landroid/view/accessibility/CaptioningManager;Landroid/os/Handler;)V
HSPLandroid/view/accessibility/CaptioningManager;-><init>(Landroid/content/Context;)V
+HSPLandroid/view/accessibility/CaptioningManager;->addCaptioningChangeListener(Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;)V
+HSPLandroid/view/accessibility/CaptioningManager;->getFontScale()F
+HSPLandroid/view/accessibility/CaptioningManager;->getLocale()Ljava/util/Locale;
+PLandroid/view/accessibility/CaptioningManager;->getRawLocale()Ljava/lang/String;
+HSPLandroid/view/accessibility/CaptioningManager;->getRawUserStyle()I
+HSPLandroid/view/accessibility/CaptioningManager;->getUserStyle()Landroid/view/accessibility/CaptioningManager$CaptionStyle;
+HSPLandroid/view/accessibility/CaptioningManager;->isEnabled()Z
+HSPLandroid/view/accessibility/CaptioningManager;->registerObserver(Ljava/lang/String;)V
+PLandroid/view/accessibility/CaptioningManager;->removeCaptioningChangeListener(Landroid/view/accessibility/CaptioningManager$CaptioningChangeListener;)V
+PLandroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLandroid/view/accessibility/IAccessibilityInteractionConnection$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/view/accessibility/IAccessibilityInteractionConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityInteractionConnection;
HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->addClient(Landroid/view/accessibility/IAccessibilityManagerClient;I)J
HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getEnabledAccessibilityServiceList(II)Ljava/util/List;
+HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getInstalledAccessibilityServiceList(I)Ljava/util/List;
HSPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getRecommendedTimeoutMillis()J
+HPLandroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
+HSPLandroid/view/accessibility/IAccessibilityManager$Stub;-><init>()V
HSPLandroid/view/accessibility/IAccessibilityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityManager;
+PLandroid/view/accessibility/IAccessibilityManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;->notifyServicesStateChanged(J)V
+PLandroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;->setState(I)V
HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;-><init>()V
HSPLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/view/accessibility/IAccessibilityManagerClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityManagerClient;
+HPLandroid/view/accessibility/WeakSparseArray$WeakReferenceWithId;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;I)V
+PLandroid/view/accessibility/WeakSparseArray;-><init>()V
+HPLandroid/view/accessibility/WeakSparseArray;->append(ILjava/lang/Object;)V
+PLandroid/view/accessibility/WeakSparseArray;->remove(I)V
+PLandroid/view/accessibility/WeakSparseArray;->removeUnreachableValues()V
HSPLandroid/view/animation/AccelerateDecelerateInterpolator;-><init>()V
+HSPLandroid/view/animation/AccelerateDecelerateInterpolator;->createNativeInterpolator()J
HSPLandroid/view/animation/AccelerateDecelerateInterpolator;->getInterpolation(F)F
+HSPLandroid/view/animation/AccelerateInterpolator;-><init>()V
+HSPLandroid/view/animation/AccelerateInterpolator;-><init>(F)V
+HSPLandroid/view/animation/AccelerateInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
+HSPLandroid/view/animation/AccelerateInterpolator;->getInterpolation(F)F
+PLandroid/view/animation/AlphaAnimation;-><init>(FF)V
+PLandroid/view/animation/AlphaAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/view/animation/AlphaAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
+HSPLandroid/view/animation/AlphaAnimation;->hasAlpha()Z
+HSPLandroid/view/animation/AlphaAnimation;->willChangeBounds()Z
+HSPLandroid/view/animation/AlphaAnimation;->willChangeTransformationMatrix()Z
+HPLandroid/view/animation/Animation$1;->run()V
+HPLandroid/view/animation/Animation$3;->run()V
+HSPLandroid/view/animation/Animation$Description;-><init>()V
HSPLandroid/view/animation/Animation$Description;->parseValue(Landroid/util/TypedValue;)Landroid/view/animation/Animation$Description;
+HSPLandroid/view/animation/Animation;-><init>()V
HSPLandroid/view/animation/Animation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+PLandroid/view/animation/Animation;->cancel()V
+PLandroid/view/animation/Animation;->computeDurationHint()J
+HSPLandroid/view/animation/Animation;->detach()V
+HSPLandroid/view/animation/Animation;->dispatchAnimationEnd()V
+HSPLandroid/view/animation/Animation;->dispatchAnimationStart()V
HSPLandroid/view/animation/Animation;->ensureInterpolator()V
HSPLandroid/view/animation/Animation;->finalize()V
+PLandroid/view/animation/Animation;->fireAnimationEnd()V
+PLandroid/view/animation/Animation;->fireAnimationStart()V
HSPLandroid/view/animation/Animation;->getDuration()J
+HSPLandroid/view/animation/Animation;->getFillAfter()Z
+PLandroid/view/animation/Animation;->getInterpolator()Landroid/view/animation/Interpolator;
+HSPLandroid/view/animation/Animation;->getInvalidateRegion(IIIILandroid/graphics/RectF;Landroid/view/animation/Transformation;)V
+PLandroid/view/animation/Animation;->getRepeatCount()I
+HSPLandroid/view/animation/Animation;->getScaleFactor()F
+PLandroid/view/animation/Animation;->getShowWallpaper()Z
HSPLandroid/view/animation/Animation;->getStartOffset()J
+PLandroid/view/animation/Animation;->getStartTime()J
+HSPLandroid/view/animation/Animation;->getTransformation(JLandroid/view/animation/Transformation;)Z
+HSPLandroid/view/animation/Animation;->getTransformation(JLandroid/view/animation/Transformation;F)Z
+PLandroid/view/animation/Animation;->getZAdjustment()I
+HSPLandroid/view/animation/Animation;->hasAlpha()Z
+PLandroid/view/animation/Animation;->hasAnimationListener()Z
+HSPLandroid/view/animation/Animation;->hasEnded()Z
+HPLandroid/view/animation/Animation;->hasRoundedCorners()Z
+HSPLandroid/view/animation/Animation;->hasStarted()Z
+HSPLandroid/view/animation/Animation;->initialize(IIII)V
+HSPLandroid/view/animation/Animation;->initializeInvalidateRegion(IIII)V
+PLandroid/view/animation/Animation;->isCanceled()Z
+HSPLandroid/view/animation/Animation;->isFillEnabled()Z
+HSPLandroid/view/animation/Animation;->isInitialized()Z
+HSPLandroid/view/animation/Animation;->reset()V
+HSPLandroid/view/animation/Animation;->resolveSize(IFII)F
+PLandroid/view/animation/Animation;->restrictDuration(J)V
+PLandroid/view/animation/Animation;->scaleCurrentDuration(F)V
+HSPLandroid/view/animation/Animation;->setAnimationListener(Landroid/view/animation/Animation$AnimationListener;)V
HSPLandroid/view/animation/Animation;->setBackgroundColor(I)V
HSPLandroid/view/animation/Animation;->setDetachWallpaper(Z)V
HSPLandroid/view/animation/Animation;->setDuration(J)V
@@ -7906,26 +26755,49 @@ HSPLandroid/view/animation/Animation;->setFillAfter(Z)V
HSPLandroid/view/animation/Animation;->setFillBefore(Z)V
HSPLandroid/view/animation/Animation;->setFillEnabled(Z)V
HSPLandroid/view/animation/Animation;->setHasRoundedCorners(Z)V
+HSPLandroid/view/animation/Animation;->setInterpolator(Landroid/content/Context;I)V
+HSPLandroid/view/animation/Animation;->setInterpolator(Landroid/view/animation/Interpolator;)V
+HSPLandroid/view/animation/Animation;->setListenerHandler(Landroid/os/Handler;)V
HSPLandroid/view/animation/Animation;->setRepeatCount(I)V
HSPLandroid/view/animation/Animation;->setRepeatMode(I)V
HSPLandroid/view/animation/Animation;->setShowWallpaper(Z)V
HSPLandroid/view/animation/Animation;->setStartOffset(J)V
+HSPLandroid/view/animation/Animation;->setStartTime(J)V
HSPLandroid/view/animation/Animation;->setZAdjustment(I)V
HSPLandroid/view/animation/Animation;->willChangeBounds()Z
HSPLandroid/view/animation/Animation;->willChangeTransformationMatrix()Z
HSPLandroid/view/animation/AnimationSet;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/view/animation/AnimationSet;-><init>(Z)V
HSPLandroid/view/animation/AnimationSet;->addAnimation(Landroid/view/animation/Animation;)V
+PLandroid/view/animation/AnimationSet;->computeDurationHint()J
+PLandroid/view/animation/AnimationSet;->getAnimations()Ljava/util/List;
+HSPLandroid/view/animation/AnimationSet;->getDuration()J
+HSPLandroid/view/animation/AnimationSet;->getTransformation(JLandroid/view/animation/Transformation;)Z
+HSPLandroid/view/animation/AnimationSet;->hasAlpha()Z
+HSPLandroid/view/animation/AnimationSet;->init()V
+HSPLandroid/view/animation/AnimationSet;->initialize(IIII)V
+HSPLandroid/view/animation/AnimationSet;->initializeInvalidateRegion(IIII)V
+HSPLandroid/view/animation/AnimationSet;->reset()V
+HSPLandroid/view/animation/AnimationSet;->restoreChildrenStartOffset()V
+PLandroid/view/animation/AnimationSet;->restrictDuration(J)V
+PLandroid/view/animation/AnimationSet;->scaleCurrentDuration(F)V
HSPLandroid/view/animation/AnimationSet;->setDuration(J)V
HSPLandroid/view/animation/AnimationSet;->setFillAfter(Z)V
HSPLandroid/view/animation/AnimationSet;->setFillBefore(Z)V
+HSPLandroid/view/animation/AnimationSet;->setFlag(IZ)V
HSPLandroid/view/animation/AnimationSet;->setRepeatMode(I)V
HSPLandroid/view/animation/AnimationSet;->setStartOffset(J)V
+HSPLandroid/view/animation/AnimationSet;->setStartTime(J)V
+HSPLandroid/view/animation/AnimationSet;->willChangeBounds()Z
+HSPLandroid/view/animation/AnimationSet;->willChangeTransformationMatrix()Z
HSPLandroid/view/animation/AnimationUtils$1;->initialValue()Landroid/view/animation/AnimationUtils$AnimationState;
HSPLandroid/view/animation/AnimationUtils$1;->initialValue()Ljava/lang/Object;
HSPLandroid/view/animation/AnimationUtils$AnimationState;-><init>()V
HSPLandroid/view/animation/AnimationUtils$AnimationState;-><init>(Landroid/view/animation/AnimationUtils$1;)V
+HSPLandroid/view/animation/AnimationUtils;->createAnimationFromXml(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;)Landroid/view/animation/Animation;
HSPLandroid/view/animation/AnimationUtils;->createAnimationFromXml(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;Landroid/view/animation/AnimationSet;Landroid/util/AttributeSet;)Landroid/view/animation/Animation;
HSPLandroid/view/animation/AnimationUtils;->createInterpolatorFromXml(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Lorg/xmlpull/v1/XmlPullParser;)Landroid/view/animation/Interpolator;
+HSPLandroid/view/animation/AnimationUtils;->currentAnimationTimeMillis()J
HSPLandroid/view/animation/AnimationUtils;->loadAnimation(Landroid/content/Context;I)Landroid/view/animation/Animation;
HSPLandroid/view/animation/AnimationUtils;->loadInterpolator(Landroid/content/Context;I)Landroid/view/animation/Interpolator;
HSPLandroid/view/animation/AnimationUtils;->loadInterpolator(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;I)Landroid/view/animation/Interpolator;
@@ -7934,119 +26806,1442 @@ HSPLandroid/view/animation/AnimationUtils;->unlockAnimationClock()V
HSPLandroid/view/animation/BaseInterpolator;-><init>()V
HSPLandroid/view/animation/BaseInterpolator;->getChangingConfiguration()I
HSPLandroid/view/animation/BaseInterpolator;->setChangingConfiguration(I)V
+HPLandroid/view/animation/BounceInterpolator;->bounce(F)F
+HPLandroid/view/animation/BounceInterpolator;->getInterpolation(F)F
+PLandroid/view/animation/ClipRectAnimation;-><init>(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+PLandroid/view/animation/ClipRectAnimation;->initialize(IIII)V
+PLandroid/view/animation/ClipRectAnimation;->willChangeTransformationMatrix()Z
HSPLandroid/view/animation/DecelerateInterpolator;-><init>()V
HSPLandroid/view/animation/DecelerateInterpolator;-><init>(F)V
+HSPLandroid/view/animation/DecelerateInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
HSPLandroid/view/animation/DecelerateInterpolator;->getInterpolation(F)F
HSPLandroid/view/animation/LinearInterpolator;-><init>()V
+HSPLandroid/view/animation/LinearInterpolator;->createNativeInterpolator()J
HSPLandroid/view/animation/LinearInterpolator;->getInterpolation(F)F
+HPLandroid/view/animation/OvershootInterpolator;-><init>()V
+HSPLandroid/view/animation/OvershootInterpolator;-><init>(F)V
+HPLandroid/view/animation/OvershootInterpolator;->getInterpolation(F)F
HSPLandroid/view/animation/PathInterpolator;-><init>(FFFF)V
HSPLandroid/view/animation/PathInterpolator;-><init>(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;Landroid/util/AttributeSet;)V
+HSPLandroid/view/animation/PathInterpolator;-><init>(Landroid/graphics/Path;)V
+HSPLandroid/view/animation/PathInterpolator;->createNativeInterpolator()J
HSPLandroid/view/animation/PathInterpolator;->getInterpolation(F)F
HSPLandroid/view/animation/PathInterpolator;->initCubic(FFFF)V
HSPLandroid/view/animation/PathInterpolator;->initPath(Landroid/graphics/Path;)V
HSPLandroid/view/animation/PathInterpolator;->parseInterpolatorFromTypeArray(Landroid/content/res/TypedArray;)V
+PLandroid/view/animation/RotateAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+PLandroid/view/animation/RotateAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
+PLandroid/view/animation/RotateAnimation;->initialize(IIII)V
+PLandroid/view/animation/RotateAnimation;->initializePivotPoint()V
+HSPLandroid/view/animation/ScaleAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/view/animation/ScaleAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
+HSPLandroid/view/animation/ScaleAnimation;->initialize(IIII)V
+PLandroid/view/animation/ScaleAnimation;->initializePivotPoint()V
+HSPLandroid/view/animation/ScaleAnimation;->resolveScale(FIIII)F
+HSPLandroid/view/animation/Transformation;-><init>()V
HSPLandroid/view/animation/Transformation;->clear()V
+HSPLandroid/view/animation/Transformation;->compose(Landroid/view/animation/Transformation;)V
+HSPLandroid/view/animation/Transformation;->getAlpha()F
+PLandroid/view/animation/Transformation;->getClipRect()Landroid/graphics/Rect;
+HSPLandroid/view/animation/Transformation;->getMatrix()Landroid/graphics/Matrix;
+HSPLandroid/view/animation/Transformation;->getTransformationType()I
+HPLandroid/view/animation/Transformation;->hasClipRect()Z
+PLandroid/view/animation/Transformation;->printShortString(Ljava/io/PrintWriter;)V
+HSPLandroid/view/animation/Transformation;->set(Landroid/view/animation/Transformation;)V
+HSPLandroid/view/animation/Transformation;->setAlpha(F)V
+PLandroid/view/animation/Transformation;->setClipRect(IIII)V
+PLandroid/view/animation/Transformation;->setClipRect(Landroid/graphics/Rect;)V
+PLandroid/view/animation/TranslateAnimation;-><init>(FFFF)V
+HSPLandroid/view/animation/TranslateAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/view/animation/TranslateAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
+HSPLandroid/view/animation/TranslateAnimation;->initialize(IIII)V
+HPLandroid/view/autofill/-$$Lambda$AutofillManager$YfpJNFodEuj5lbXfPlc77fsEvC8;->run()V
+PLandroid/view/autofill/AutofillId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/autofill/AutofillId;
+PLandroid/view/autofill/AutofillId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/autofill/AutofillId;-><init>(I)V
+PLandroid/view/autofill/AutofillId;-><init>(II)V
+HSPLandroid/view/autofill/AutofillId;-><init>(IIJI)V
+PLandroid/view/autofill/AutofillId;-><init>(IIJILandroid/view/autofill/AutofillId$1;)V
+HSPLandroid/view/autofill/AutofillId;->equals(Ljava/lang/Object;)Z
+PLandroid/view/autofill/AutofillId;->getSessionId()I
+PLandroid/view/autofill/AutofillId;->getViewId()I
+PLandroid/view/autofill/AutofillId;->getVirtualChildIntId()I
+PLandroid/view/autofill/AutofillId;->hasSession()Z
+HSPLandroid/view/autofill/AutofillId;->hashCode()I
+PLandroid/view/autofill/AutofillId;->isVirtualInt()Z
+PLandroid/view/autofill/AutofillId;->isVirtualLong()Z
+HPLandroid/view/autofill/AutofillId;->resetSessionId()V
+PLandroid/view/autofill/AutofillId;->toString()Ljava/lang/String;
+PLandroid/view/autofill/AutofillId;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->getAugmentedAutofillClient(Lcom/android/internal/os/IResultReceiver;)V
+HPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->lambda$getAugmentedAutofillClient$12(Landroid/view/autofill/AutofillManager;Lcom/android/internal/os/IResultReceiver;)V
+HPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->lambda$setState$0(Landroid/view/autofill/AutofillManager;I)V
+HPLandroid/view/autofill/AutofillManager$AutofillManagerClient;->setState(I)V
HSPLandroid/view/autofill/AutofillManager;-><init>(Landroid/content/Context;Landroid/view/autofill/IAutoFillManager;)V
+HPLandroid/view/autofill/AutofillManager;->access$1300(Landroid/view/autofill/AutofillManager;Ljava/lang/Runnable;)V
+HPLandroid/view/autofill/AutofillManager;->access$1400(Landroid/view/autofill/AutofillManager;Lcom/android/internal/os/IResultReceiver;)V
+HPLandroid/view/autofill/AutofillManager;->access$2500(Landroid/view/autofill/AutofillManager;I)V
+HPLandroid/view/autofill/AutofillManager;->addEnteredIdLocked(Landroid/view/autofill/AutofillId;)V
+HPLandroid/view/autofill/AutofillManager;->cancelLocked()V
+HPLandroid/view/autofill/AutofillManager;->cancelSessionLocked()V
+HSPLandroid/view/autofill/AutofillManager;->ensureServiceClientAddedIfNeededLocked()V
+HPLandroid/view/autofill/AutofillManager;->getAugmentedAutofillClient(Lcom/android/internal/os/IResultReceiver;)V
+PLandroid/view/autofill/AutofillManager;->getAutofillServiceComponentName()Landroid/content/ComponentName;
+HSPLandroid/view/autofill/AutofillManager;->getClient()Landroid/view/autofill/AutofillManager$AutofillClient;
+HPLandroid/view/autofill/AutofillManager;->getFillEventHistory()Landroid/service/autofill/FillEventHistory;
+PLandroid/view/autofill/AutofillManager;->getSmartSuggestionModeToString(I)Ljava/lang/String;
HSPLandroid/view/autofill/AutofillManager;->hasAutofillFeature()Z
+HPLandroid/view/autofill/AutofillManager;->isActiveLocked()Z
+HSPLandroid/view/autofill/AutofillManager;->isAutofillSupported()Z
+HPLandroid/view/autofill/AutofillManager;->isClientDisablingEnterExitEvent()Z
+HPLandroid/view/autofill/AutofillManager;->isCompatibilityModeEnabledLocked()Z
+HPLandroid/view/autofill/AutofillManager;->isDisabledByServiceLocked()Z
+HSPLandroid/view/autofill/AutofillManager;->isEnabled()Z
+HPLandroid/view/autofill/AutofillManager;->isFinishedLocked()Z
+HPLandroid/view/autofill/AutofillManager;->lambda$onVisibleForAutofill$0$AutofillManager()V
HSPLandroid/view/autofill/AutofillManager;->notifyValueChanged(Landroid/view/View;)V
+HPLandroid/view/autofill/AutofillManager;->notifyViewEntered(Landroid/view/View;I)V
+HSPLandroid/view/autofill/AutofillManager;->notifyViewEnteredForAugmentedAutofill(Landroid/view/View;)V
+HPLandroid/view/autofill/AutofillManager;->notifyViewEnteredLocked(Landroid/view/View;I)Landroid/view/autofill/AutofillManager$AutofillCallback;
+HPLandroid/view/autofill/AutofillManager;->notifyViewExited(Landroid/view/View;)V
+HPLandroid/view/autofill/AutofillManager;->notifyViewExitedLocked(Landroid/view/View;)V
+HSPLandroid/view/autofill/AutofillManager;->notifyViewVisibilityChangedInternal(Landroid/view/View;IZZ)V
+HPLandroid/view/autofill/AutofillManager;->onActivityFinishing()V
+HPLandroid/view/autofill/AutofillManager;->onInvisibleForAutofill()V
+HPLandroid/view/autofill/AutofillManager;->onSaveInstanceState(Landroid/os/Bundle;)V
+HPLandroid/view/autofill/AutofillManager;->post(Ljava/lang/Runnable;)V
+HSPLandroid/view/autofill/AutofillManager;->registerCallback(Landroid/view/autofill/AutofillManager$AutofillCallback;)V
+HSPLandroid/view/autofill/AutofillManager;->requestHideFillUi(Landroid/view/autofill/AutofillId;Z)V
+HPLandroid/view/autofill/AutofillManager;->resetSessionLocked(Z)V
+HPLandroid/view/autofill/AutofillManager;->setAugmentedAutofillWhitelist(Ljava/util/Set;Ljava/util/Set;)V
+HPLandroid/view/autofill/AutofillManager;->setState(I)V
+HPLandroid/view/autofill/AutofillManager;->setUserData(Landroid/service/autofill/UserData;)V
+HPLandroid/view/autofill/AutofillManager;->shouldIgnoreViewEnteredLocked(Landroid/view/autofill/AutofillId;I)Z
+HSPLandroid/view/autofill/AutofillManager;->startAutofillIfNeededLocked(Landroid/view/View;)Z
+HPLandroid/view/autofill/AutofillManager;->startSessionLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;I)V
+HPLandroid/view/autofill/AutofillManager;->unregisterCallback(Landroid/view/autofill/AutofillManager$AutofillCallback;)V
+HPLandroid/view/autofill/AutofillManager;->updateSessionLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;II)V
+HSPLandroid/view/autofill/AutofillManagerInternal;-><init>()V
+PLandroid/view/autofill/AutofillValue$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/autofill/AutofillValue;
+PLandroid/view/autofill/AutofillValue$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/autofill/AutofillValue;-><init>(ILjava/lang/Object;)V
+PLandroid/view/autofill/AutofillValue;-><init>(Landroid/os/Parcel;)V
+PLandroid/view/autofill/AutofillValue;-><init>(Landroid/os/Parcel;Landroid/view/autofill/AutofillValue$1;)V
+PLandroid/view/autofill/AutofillValue;->equals(Ljava/lang/Object;)Z
+HPLandroid/view/autofill/AutofillValue;->forText(Ljava/lang/CharSequence;)Landroid/view/autofill/AutofillValue;
+HPLandroid/view/autofill/AutofillValue;->getTextValue()Ljava/lang/CharSequence;
+PLandroid/view/autofill/AutofillValue;->isEmpty()Z
+PLandroid/view/autofill/AutofillValue;->isText()Z
+PLandroid/view/autofill/AutofillValue;->toString()Ljava/lang/String;
+PLandroid/view/autofill/AutofillValue;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/autofill/Helper;->appendRedacted(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;)V
+PLandroid/view/autofill/Helper;->getRedacted(Ljava/lang/CharSequence;)Ljava/lang/String;
+HPLandroid/view/autofill/Helper;->toList(Ljava/util/Set;)Ljava/util/ArrayList;
+HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->addClient(Landroid/view/autofill/IAutoFillManagerClient;Landroid/content/ComponentName;ILcom/android/internal/os/IResultReceiver;)V
+HPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->cancelSession(II)V
+PLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->getAutofillServiceComponentName(Lcom/android/internal/os/IResultReceiver;)V
+HPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->getFillEventHistory(Lcom/android/internal/os/IResultReceiver;)V
+HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->isServiceSupported(ILcom/android/internal/os/IResultReceiver;)V
+HPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->setAugmentedAutofillWhitelist(Ljava/util/List;Ljava/util/List;Lcom/android/internal/os/IResultReceiver;)V
+HSPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->setHasCallback(IIZ)V
+HPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->setUserData(Landroid/service/autofill/UserData;)V
+HPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->startSession(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;IZILandroid/content/ComponentName;ZLcom/android/internal/os/IResultReceiver;)V
+HPLandroid/view/autofill/IAutoFillManager$Stub$Proxy;->updateSession(ILandroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;III)V
+HSPLandroid/view/autofill/IAutoFillManager$Stub;-><init>()V
HSPLandroid/view/autofill/IAutoFillManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/autofill/IAutoFillManager;
+PLandroid/view/autofill/IAutoFillManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLandroid/view/autofill/IAutoFillManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLandroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLandroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLandroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->getAugmentedAutofillClient(Lcom/android/internal/os/IResultReceiver;)V
+PLandroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->setState(I)V
+HSPLandroid/view/autofill/IAutoFillManagerClient$Stub;->asBinder()Landroid/os/IBinder;
+PLandroid/view/autofill/IAutoFillManagerClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/autofill/IAutoFillManagerClient;
+HPLandroid/view/autofill/IAutoFillManagerClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/view/contentcapture/ContentCaptureContext$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/contentcapture/ContentCaptureContext;
+HPLandroid/view/contentcapture/ContentCaptureContext$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/contentcapture/ContentCaptureContext;-><init>(Landroid/view/contentcapture/ContentCaptureContext;Landroid/content/ComponentName;III)V
+PLandroid/view/contentcapture/ContentCaptureContext;->dump(Ljava/io/PrintWriter;)V
+PLandroid/view/contentcapture/ContentCaptureContext;->fromServer()Z
+PLandroid/view/contentcapture/ContentCaptureContext;->getActivityComponent()Landroid/content/ComponentName;
+HPLandroid/view/contentcapture/ContentCaptureContext;->getExtras()Landroid/os/Bundle;
+HPLandroid/view/contentcapture/ContentCaptureContext;->getFlags()I
+HPLandroid/view/contentcapture/ContentCaptureContext;->getLocusId()Landroid/content/LocusId;
+HPLandroid/view/contentcapture/ContentCaptureContext;->getParentSessionId()Landroid/view/contentcapture/ContentCaptureSessionId;
+HPLandroid/view/contentcapture/ContentCaptureContext;->getTaskId()I
+PLandroid/view/contentcapture/ContentCaptureContext;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/contentcapture/ContentCaptureEvent$1;-><init>()V
+PLandroid/view/contentcapture/ContentCaptureEvent;-><clinit>()V
+PLandroid/view/contentcapture/ContentCaptureEvent;-><init>(IIJ)V
+PLandroid/view/contentcapture/ContentCaptureEvent;->getType()I
+PLandroid/view/contentcapture/ContentCaptureEvent;->setAutofillId(Landroid/view/autofill/AutofillId;)Landroid/view/contentcapture/ContentCaptureEvent;
+PLandroid/view/contentcapture/ContentCaptureEvent;->setText(Ljava/lang/CharSequence;)Landroid/view/contentcapture/ContentCaptureEvent;
+HSPLandroid/view/contentcapture/ContentCaptureHelper;->getDefaultLoggingLevel()I
+HSPLandroid/view/contentcapture/ContentCaptureHelper;->getLoggingLevelAsString(I)Ljava/lang/String;
+HSPLandroid/view/contentcapture/ContentCaptureHelper;->setLoggingLevel(I)V
+PLandroid/view/contentcapture/ContentCaptureHelper;->toList(Ljava/util/Set;)Ljava/util/ArrayList;
+HPLandroid/view/contentcapture/ContentCaptureManager;-><init>(Landroid/content/Context;Landroid/view/contentcapture/IContentCaptureManager;Landroid/content/ContentCaptureOptions;)V
+HPLandroid/view/contentcapture/ContentCaptureManager;->getMainContentCaptureSession()Landroid/view/contentcapture/MainContentCaptureSession;
+HSPLandroid/view/contentcapture/ContentCaptureManager;->getServiceSettingsComponentName()Landroid/content/ComponentName;
+HPLandroid/view/contentcapture/ContentCaptureManager;->isContentCaptureEnabled()Z
+HPLandroid/view/contentcapture/ContentCaptureSession;-><clinit>()V
+HPLandroid/view/contentcapture/ContentCaptureSession;-><init>()V
+HPLandroid/view/contentcapture/ContentCaptureSession;-><init>(I)V
+HPLandroid/view/contentcapture/ContentCaptureSession;->getRandomSessionId()I
+HPLandroid/view/contentcapture/ContentCaptureSession;->getStateAsString(I)Ljava/lang/String;
+HPLandroid/view/contentcapture/ContentCaptureSession;->isContentCaptureEnabled()Z
+HPLandroid/view/contentcapture/ContentCaptureSession;->notifyViewTextChanged(Landroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V
+HSPLandroid/view/contentcapture/IContentCaptureManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/view/contentcapture/IContentCaptureManager$Stub;-><init>()V
+HSPLandroid/view/contentcapture/IContentCaptureManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/contentcapture/IContentCaptureManager;
+PLandroid/view/contentcapture/IContentCaptureManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/view/contentcapture/MainContentCaptureSession;-><clinit>()V
+HPLandroid/view/contentcapture/MainContentCaptureSession;-><init>(Landroid/content/Context;Landroid/view/contentcapture/ContentCaptureManager;Landroid/os/Handler;Landroid/view/contentcapture/IContentCaptureManager;)V
+HPLandroid/view/contentcapture/MainContentCaptureSession;->getActivityName()Ljava/lang/String;
+HPLandroid/view/contentcapture/MainContentCaptureSession;->getDebugState()Ljava/lang/String;
+HPLandroid/view/contentcapture/MainContentCaptureSession;->hasStarted()Z
+HPLandroid/view/contentcapture/MainContentCaptureSession;->internalNotifyViewTextChanged(Landroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V
+HPLandroid/view/contentcapture/MainContentCaptureSession;->isContentCaptureEnabled()Z
+HPLandroid/view/contentcapture/MainContentCaptureSession;->isDisabled()Z
+HPLandroid/view/contentcapture/MainContentCaptureSession;->notifyViewTextChanged(ILandroid/view/autofill/AutofillId;Ljava/lang/CharSequence;)V
+HPLandroid/view/contentcapture/MainContentCaptureSession;->sendEvent(Landroid/view/contentcapture/ContentCaptureEvent;)V
+HPLandroid/view/contentcapture/MainContentCaptureSession;->sendEvent(Landroid/view/contentcapture/ContentCaptureEvent;Z)V
+HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$dfnCauFoZCf-HfXs1QavrkwWDf0;-><init>(Landroid/view/inputmethod/InputMethodManager;I)V
+HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$dfnCauFoZCf-HfXs1QavrkwWDf0;->run()V
+HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$i_90CXuqg7HqaqWjKFApAxiw7ac;-><init>(Landroid/view/inputmethod/InputMethodManager;ZLandroid/view/View;III)V
+HSPLandroid/view/inputmethod/-$$Lambda$InputMethodManager$i_90CXuqg7HqaqWjKFApAxiw7ac;->run()V
+PLandroid/view/inputmethod/BaseInputConnection;-><init>(Landroid/view/inputmethod/InputMethodManager;Z)V
+HSPLandroid/view/inputmethod/BaseInputConnection;->beginBatchEdit()Z
+HSPLandroid/view/inputmethod/BaseInputConnection;->endBatchEdit()Z
+HSPLandroid/view/inputmethod/BaseInputConnection;->finishComposingText()Z
+HSPLandroid/view/inputmethod/BaseInputConnection;->getEditable()Landroid/text/Editable;
+HPLandroid/view/inputmethod/BaseInputConnection;->getHandler()Landroid/os/Handler;
+HPLandroid/view/inputmethod/BaseInputConnection;->getSelectedText(I)Ljava/lang/CharSequence;
+HPLandroid/view/inputmethod/BaseInputConnection;->getTextAfterCursor(II)Ljava/lang/CharSequence;
+HPLandroid/view/inputmethod/BaseInputConnection;->getTextBeforeCursor(II)Ljava/lang/CharSequence;
+HSPLandroid/view/inputmethod/BaseInputConnection;->removeComposingSpans(Landroid/text/Spannable;)V
+HPLandroid/view/inputmethod/BaseInputConnection;->replaceText(Ljava/lang/CharSequence;IZ)V
+HPLandroid/view/inputmethod/BaseInputConnection;->reportFullscreenMode(Z)Z
+HSPLandroid/view/inputmethod/BaseInputConnection;->sendCurrentText()V
HSPLandroid/view/inputmethod/CursorAnchorInfo$Builder;-><init>()V
+HSPLandroid/view/inputmethod/EditorInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/EditorInfo;
+HSPLandroid/view/inputmethod/EditorInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
HSPLandroid/view/inputmethod/EditorInfo;-><init>()V
+HSPLandroid/view/inputmethod/EditorInfo;->makeCompatible(I)V
+HSPLandroid/view/inputmethod/EditorInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/inputmethod/ExtractedTextRequest;-><init>()V
+HSPLandroid/view/inputmethod/InputBinding$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/InputBinding;
+HSPLandroid/view/inputmethod/InputBinding$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/inputmethod/InputBinding;-><init>(Landroid/view/inputmethod/InputConnection;Landroid/os/IBinder;II)V
+HSPLandroid/view/inputmethod/InputBinding;->getConnection()Landroid/view/inputmethod/InputConnection;
+PLandroid/view/inputmethod/InputBinding;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/inputmethod/InputConnectionInspector;->getMissingMethodFlags(Landroid/view/inputmethod/InputConnection;)I
HSPLandroid/view/inputmethod/InputMethodInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/inputmethod/InputMethodInfo;
HSPLandroid/view/inputmethod/InputMethodInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/inputmethod/InputMethodInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;Ljava/util/List;)V
HSPLandroid/view/inputmethod/InputMethodInfo;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/inputmethod/InputMethodInfo;->computeId(Landroid/content/pm/ResolveInfo;)Ljava/lang/String;
+PLandroid/view/inputmethod/InputMethodInfo;->dump(Landroid/util/Printer;Ljava/lang/String;)V
+HSPLandroid/view/inputmethod/InputMethodInfo;->equals(Ljava/lang/Object;)Z
+PLandroid/view/inputmethod/InputMethodInfo;->getComponent()Landroid/content/ComponentName;
+HSPLandroid/view/inputmethod/InputMethodInfo;->getId()Ljava/lang/String;
HSPLandroid/view/inputmethod/InputMethodInfo;->getPackageName()Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodInfo;->getServiceInfo()Landroid/content/pm/ServiceInfo;
+HSPLandroid/view/inputmethod/InputMethodInfo;->getSubtypeAt(I)Landroid/view/inputmethod/InputMethodSubtype;
+HSPLandroid/view/inputmethod/InputMethodInfo;->getSubtypeCount()I
+HSPLandroid/view/inputmethod/InputMethodInfo;->isAuxiliaryIme()Z
+HSPLandroid/view/inputmethod/InputMethodInfo;->isVrOnly()Z
+PLandroid/view/inputmethod/InputMethodInfo;->loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
+HSPLandroid/view/inputmethod/InputMethodInfo;->supportsSwitchingToNextInputMethod()Z
+PLandroid/view/inputmethod/InputMethodInfo;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/inputmethod/InputMethodManager$1;-><init>(Landroid/view/inputmethod/InputMethodManager;)V
+HSPLandroid/view/inputmethod/InputMethodManager$1;->onBindMethod(Lcom/android/internal/view/InputBindResult;)V
+HSPLandroid/view/inputmethod/InputMethodManager$1;->onUnbindMethod(II)V
+HSPLandroid/view/inputmethod/InputMethodManager$1;->reportFullscreenMode(Z)V
+HSPLandroid/view/inputmethod/InputMethodManager$1;->setActive(ZZ)V
+PLandroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;-><init>(Landroid/os/Looper;Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/InputMethodManager;)V
+HPLandroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;->deactivate()V
+HPLandroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;->isActive()Z
+PLandroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;->toString()Ljava/lang/String;
+PLandroid/view/inputmethod/InputMethodManager$H;-><init>(Landroid/view/inputmethod/InputMethodManager;Landroid/os/Looper;)V
+HSPLandroid/view/inputmethod/InputMethodManager$H;->handleMessage(Landroid/os/Message;)V
+HPLandroid/view/inputmethod/InputMethodManager$ImeInputEventSender;->onInputEventFinished(IZ)V
+HPLandroid/view/inputmethod/InputMethodManager$PendingEvent;->run()V
HSPLandroid/view/inputmethod/InputMethodManager;-><init>(Lcom/android/internal/view/IInputMethodManager;ILandroid/os/Looper;)V
+PLandroid/view/inputmethod/InputMethodManager;->checkFocus()V
HSPLandroid/view/inputmethod/InputMethodManager;->checkFocusNoStartInput(Z)Z
+HPLandroid/view/inputmethod/InputMethodManager;->closeCurrentInput()V
+PLandroid/view/inputmethod/InputMethodManager;->createInstance(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager;
HSPLandroid/view/inputmethod/InputMethodManager;->createRealInstance(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager;
+HPLandroid/view/inputmethod/InputMethodManager;->dispatchInputEvent(Landroid/view/InputEvent;Ljava/lang/Object;Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;Landroid/os/Handler;)I
+HPLandroid/view/inputmethod/InputMethodManager;->displayCompletions(Landroid/view/View;[Landroid/view/inputmethod/CompletionInfo;)V
+PLandroid/view/inputmethod/InputMethodManager;->ensureDefaultInstanceForDefaultDisplayIfNecessary()V
+HPLandroid/view/inputmethod/InputMethodManager;->finishedInputEvent(IZZ)V
+HPLandroid/view/inputmethod/InputMethodManager;->flushPendingEventsLocked()V
+HPLandroid/view/inputmethod/InputMethodManager;->focusIn(Landroid/view/View;)V
+HSPLandroid/view/inputmethod/InputMethodManager;->focusInLocked(Landroid/view/View;)V
+HPLandroid/view/inputmethod/InputMethodManager;->focusOut(Landroid/view/View;)V
+PLandroid/view/inputmethod/InputMethodManager;->forContext(Landroid/content/Context;)Landroid/view/inputmethod/InputMethodManager;
HSPLandroid/view/inputmethod/InputMethodManager;->forContextInternal(ILandroid/os/Looper;)Landroid/view/inputmethod/InputMethodManager;
HSPLandroid/view/inputmethod/InputMethodManager;->getEnabledInputMethodList()Ljava/util/List;
HSPLandroid/view/inputmethod/InputMethodManager;->getFallbackInputMethodManagerIfNecessary(Landroid/view/View;)Landroid/view/inputmethod/InputMethodManager;
+HSPLandroid/view/inputmethod/InputMethodManager;->getInputMethodList()Ljava/util/List;
+HPLandroid/view/inputmethod/InputMethodManager;->hideSoftInputFromWindow(Landroid/os/IBinder;I)Z
+HPLandroid/view/inputmethod/InputMethodManager;->hideSoftInputFromWindow(Landroid/os/IBinder;ILandroid/os/ResultReceiver;)Z
+HSPLandroid/view/inputmethod/InputMethodManager;->isActive(Landroid/view/View;)Z
+HPLandroid/view/inputmethod/InputMethodManager;->isCursorAnchorInfoEnabled()Z
+HSPLandroid/view/inputmethod/InputMethodManager;->isFullscreenMode()Z
+PLandroid/view/inputmethod/InputMethodManager;->isInEditMode()Z
+HSPLandroid/view/inputmethod/InputMethodManager;->lambda$onPostWindowFocus$2$InputMethodManager(ZLandroid/view/View;III)V
+HSPLandroid/view/inputmethod/InputMethodManager;->lambda$startInputInner$1$InputMethodManager(I)V
+HSPLandroid/view/inputmethod/InputMethodManager;->maybeCallServedViewChangedLocked(Landroid/view/inputmethod/EditorInfo;)V
+HSPLandroid/view/inputmethod/InputMethodManager;->onPostWindowFocus(Landroid/view/View;Landroid/view/View;II)V
+HSPLandroid/view/inputmethod/InputMethodManager;->onPreWindowFocus(Landroid/view/View;Z)V
HSPLandroid/view/inputmethod/InputMethodManager;->onViewDetachedFromWindow(Landroid/view/View;)V
HSPLandroid/view/inputmethod/InputMethodManager;->restartInput(Landroid/view/View;)V
+HSPLandroid/view/inputmethod/InputMethodManager;->scheduleCheckFocusLocked(Landroid/view/View;)V
+HPLandroid/view/inputmethod/InputMethodManager;->sendInputEventOnMainLooperLocked(Landroid/view/inputmethod/InputMethodManager$PendingEvent;)I
+HSPLandroid/view/inputmethod/InputMethodManager;->setInputChannelLocked(Landroid/view/InputChannel;)V
+HPLandroid/view/inputmethod/InputMethodManager;->showSoftInput(Landroid/view/View;I)Z
+HPLandroid/view/inputmethod/InputMethodManager;->showSoftInput(Landroid/view/View;ILandroid/os/ResultReceiver;)Z
+HSPLandroid/view/inputmethod/InputMethodManager;->startInputInner(ILandroid/os/IBinder;III)Z
+HPLandroid/view/inputmethod/InputMethodManager;->updateSelection(Landroid/view/View;IIII)V
HSPLandroid/view/inputmethod/InputMethodManager;->windowDismissed(Landroid/os/IBinder;)V
-HSPLandroid/view/textclassifier/-$$Lambda$ActionsModelParamsSupplier$zElxNeuL3A8paTXvw8GWdpp4rFo;-><init>(Landroid/view/textclassifier/ActionsModelParamsSupplier;)V
-HSPLandroid/view/textclassifier/-$$Lambda$TextClassificationManager$oweIEhDWxy3_0kZSXp3oRbSuNW4;->get()Ljava/lang/Object;
-HSPLandroid/view/textclassifier/ActionsModelParamsSupplier$SettingsObserver;-><init>(Landroid/content/Context;Ljava/lang/Runnable;)V
-HSPLandroid/view/textclassifier/ActionsModelParamsSupplier;-><init>(Landroid/content/Context;Ljava/lang/Runnable;)V
-HSPLandroid/view/textclassifier/ConfigParser;->getBoolean(Ljava/lang/String;Z)Z
-HSPLandroid/view/textclassifier/ConfigParser;->getInt(Ljava/lang/String;I)I
-HSPLandroid/view/textclassifier/ConfigParser;->getLegacySettings()Landroid/util/KeyValueListParser;
-HSPLandroid/view/textclassifier/ConfigParser;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HSPLandroid/view/textclassifier/Log;-><clinit>()V
-HSPLandroid/view/textclassifier/ModelFileManager$ModelFileSupplierImpl;-><init>(Ljava/io/File;Ljava/lang/String;Ljava/io/File;Ljava/util/function/Function;Ljava/util/function/Function;)V
-HSPLandroid/view/textclassifier/TextClassificationConstants;->getTextClassifierServiceName()Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;-><init>()V
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$100(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)I
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$1000(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$200(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)I
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$300(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$400(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$500(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$600(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Z
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$700(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Z
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$800(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)I
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->access$900(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)Z
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->build()Landroid/view/inputmethod/InputMethodSubtype;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->setIsAsciiCapable(Z)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->setIsAuxiliary(Z)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->setLanguageTag(Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->setOverridesImplicitlyEnabledSubtype(Z)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->setSubtypeExtraValue(Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->setSubtypeIconResId(I)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->setSubtypeId(I)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->setSubtypeLocale(Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->setSubtypeMode(Ljava/lang/String;)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;
+HSPLandroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;->setSubtypeNameResId(I)Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;
+HSPLandroid/view/inputmethod/InputMethodSubtype;-><init>(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;)V
+HSPLandroid/view/inputmethod/InputMethodSubtype;-><init>(Landroid/view/inputmethod/InputMethodSubtype$InputMethodSubtypeBuilder;Landroid/view/inputmethod/InputMethodSubtype$1;)V
+PLandroid/view/inputmethod/InputMethodSubtype;->getExtraValueHashMap()Ljava/util/HashMap;
+PLandroid/view/inputmethod/InputMethodSubtype;->getLocale()Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodSubtype;->getMode()Ljava/lang/String;
+HSPLandroid/view/inputmethod/InputMethodSubtype;->hashCode()I
+HSPLandroid/view/inputmethod/InputMethodSubtype;->hashCodeInternal(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZ)I
+HSPLandroid/view/inputmethod/InputMethodSubtype;->isAuxiliary()Z
+HSPLandroid/view/inputmethod/InputMethodSubtype;->overridesImplicitlyEnabledSubtype()Z
+HSPLandroid/view/inputmethod/InputMethodSubtype;->sort(Landroid/content/Context;ILandroid/view/inputmethod/InputMethodInfo;Ljava/util/List;)Ljava/util/List;
+HPLandroid/view/inputmethod/InputMethodSubtype;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/inputmethod/InputMethodSubtypeArray;-><init>(Landroid/os/Parcel;)V
+HSPLandroid/view/inputmethod/InputMethodSubtypeArray;-><init>(Ljava/util/List;)V
+PLandroid/view/inputmethod/InputMethodSubtypeArray;->compress([B)[B
+HSPLandroid/view/inputmethod/InputMethodSubtypeArray;->get(I)Landroid/view/inputmethod/InputMethodSubtype;
+HSPLandroid/view/inputmethod/InputMethodSubtypeArray;->getCount()I
+HPLandroid/view/inputmethod/InputMethodSubtypeArray;->marshall([Landroid/view/inputmethod/InputMethodSubtype;)[B
+PLandroid/view/inputmethod/InputMethodSubtypeArray;->writeToParcel(Landroid/os/Parcel;)V
+PLandroid/view/textclassifier/-$$Lambda$0biFK4yZBmWN1EO2wtnXskzuEcE;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/view/textclassifier/-$$Lambda$9N8WImc0VBjy2oxI_Gk5_Pbye_A;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/view/textclassifier/-$$Lambda$ActionsModelParamsSupplier$zElxNeuL3A8paTXvw8GWdpp4rFo;-><init>(Landroid/view/textclassifier/ActionsModelParamsSupplier;)V
+HPLandroid/view/textclassifier/-$$Lambda$ActionsSuggestionsHelper$6oTtcn9bDE-u-8FbiyGdntqoQG0;->test(Ljava/lang/Object;)Z
+HPLandroid/view/textclassifier/-$$Lambda$ActionsSuggestionsHelper$sY0w9od2zcl4YFel0lG4VB3vf7I;->chooseTitle(Landroid/view/textclassifier/intent/LabeledIntent;Landroid/content/pm/ResolveInfo;)Ljava/lang/CharSequence;
+HPLandroid/view/textclassifier/-$$Lambda$EntityConfidence$YPh8hwgSYYK8OyQ1kFlQngc71Q0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLandroid/view/textclassifier/-$$Lambda$NxwbyZSxofZ4Z5SQhfXmtLQ1nxk;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/view/textclassifier/-$$Lambda$OGSS2qx6njxlnp0dnKb4lA3jnw8;->get()Ljava/lang/Object;
+HSPLandroid/view/textclassifier/-$$Lambda$TextClassificationManager$JIaezIJbMig_-kVzN6oArzkTsJE;-><init>(Landroid/view/textclassifier/TextClassificationManager;)V
+HPLandroid/view/textclassifier/-$$Lambda$TextClassificationManager$JIaezIJbMig_-kVzN6oArzkTsJE;->createTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier;
+PLandroid/view/textclassifier/-$$Lambda$TextClassifierImpl$RRbXefHgcUymI9-P95ArUyMvfbw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/view/textclassifier/-$$Lambda$TextClassifierImpl$ftq-sQqJYwUdrdbbr9jz3p4AWos;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/view/textclassifier/-$$Lambda$TextClassifierImpl$iSt_Guet-O6Vtdk0MA4z-Z4lzaM;-><init>(Landroid/view/textclassifier/TextClassifierImpl;)V
+PLandroid/view/textclassifier/-$$Lambda$XeE_KI7QgMKzF9vYRSoFWAolyuA;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroid/view/textclassifier/-$$Lambda$jJq8RXuVdjYF3lPq-77PEw1NJLM;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/view/textclassifier/ActionsModelParamsSupplier$ActionsModelParams;->getSerializedPreconditions(Landroid/view/textclassifier/ModelFileManager$ModelFile;)[B
+PLandroid/view/textclassifier/ActionsModelParamsSupplier$SettingsObserver;-><init>(Landroid/content/Context;Ljava/lang/Runnable;)V
+PLandroid/view/textclassifier/ActionsModelParamsSupplier;-><init>(Landroid/content/Context;Ljava/lang/Runnable;)V
+HPLandroid/view/textclassifier/ActionsModelParamsSupplier;->get()Landroid/view/textclassifier/ActionsModelParamsSupplier$ActionsModelParams;
+HPLandroid/view/textclassifier/ActionsModelParamsSupplier;->get()Ljava/lang/Object;
+HPLandroid/view/textclassifier/ActionsModelParamsSupplier;->parse(Landroid/content/ContentResolver;)Landroid/view/textclassifier/ActionsModelParamsSupplier$ActionsModelParams;
+HPLandroid/view/textclassifier/ActionsSuggestionsHelper$PersonEncoder;->encode(Landroid/app/Person;)I
+HPLandroid/view/textclassifier/ActionsSuggestionsHelper;->createLabeledIntentResult(Landroid/content/Context;Landroid/view/textclassifier/intent/TemplateIntentFactory;Lcom/google/android/textclassifier/ActionsSuggestionsModel$ActionSuggestion;)Landroid/view/textclassifier/intent/LabeledIntent$Result;
+HPLandroid/view/textclassifier/ActionsSuggestionsHelper;->createResultId(Landroid/content/Context;Ljava/util/List;ILjava/util/List;)Ljava/lang/String;
+HPLandroid/view/textclassifier/ActionsSuggestionsHelper;->getRepresentation(Landroid/view/textclassifier/ConversationAction;)Landroid/util/Pair;
+HPLandroid/view/textclassifier/ActionsSuggestionsHelper;->removeActionsWithDuplicates(Ljava/util/List;)Ljava/util/List;
+HPLandroid/view/textclassifier/ActionsSuggestionsHelper;->toNativeMessages(Ljava/util/List;Ljava/util/function/Function;)[Lcom/google/android/textclassifier/ActionsSuggestionsModel$ConversationMessage;
+HPLandroid/view/textclassifier/ConversationAction$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationAction;
+HPLandroid/view/textclassifier/ConversationAction$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/textclassifier/ConversationAction$Builder;-><init>(Ljava/lang/String;)V
+HPLandroid/view/textclassifier/ConversationAction$Builder;->build()Landroid/view/textclassifier/ConversationAction;
+HPLandroid/view/textclassifier/ConversationAction$Builder;->setAction(Landroid/app/RemoteAction;)Landroid/view/textclassifier/ConversationAction$Builder;
+HPLandroid/view/textclassifier/ConversationAction$Builder;->setConfidenceScore(F)Landroid/view/textclassifier/ConversationAction$Builder;
+HPLandroid/view/textclassifier/ConversationAction$Builder;->setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/ConversationAction$Builder;
+HPLandroid/view/textclassifier/ConversationAction$Builder;->setTextReply(Ljava/lang/CharSequence;)Landroid/view/textclassifier/ConversationAction$Builder;
+HPLandroid/view/textclassifier/ConversationAction;-><init>(Landroid/os/Parcel;)V
+HPLandroid/view/textclassifier/ConversationAction;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/ConversationAction$1;)V
+HPLandroid/view/textclassifier/ConversationAction;-><init>(Ljava/lang/String;Landroid/app/RemoteAction;Ljava/lang/CharSequence;FLandroid/os/Bundle;)V
+HPLandroid/view/textclassifier/ConversationAction;-><init>(Ljava/lang/String;Landroid/app/RemoteAction;Ljava/lang/CharSequence;FLandroid/os/Bundle;Landroid/view/textclassifier/ConversationAction$1;)V
+HPLandroid/view/textclassifier/ConversationAction;->getAction()Landroid/app/RemoteAction;
+HPLandroid/view/textclassifier/ConversationAction;->getConfidenceScore()F
+HPLandroid/view/textclassifier/ConversationAction;->getExtras()Landroid/os/Bundle;
+HPLandroid/view/textclassifier/ConversationAction;->getTextReply()Ljava/lang/CharSequence;
+HPLandroid/view/textclassifier/ConversationAction;->getType()Ljava/lang/String;
+HPLandroid/view/textclassifier/ConversationAction;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/textclassifier/ConversationActions$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions;
+HPLandroid/view/textclassifier/ConversationActions$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/textclassifier/ConversationActions$Message$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Message;
+PLandroid/view/textclassifier/ConversationActions$Message$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/textclassifier/ConversationActions$Message$Builder;-><init>(Landroid/app/Person;)V
+HPLandroid/view/textclassifier/ConversationActions$Message$Builder;->build()Landroid/view/textclassifier/ConversationActions$Message;
+HPLandroid/view/textclassifier/ConversationActions$Message$Builder;->setReferenceTime(Ljava/time/ZonedDateTime;)Landroid/view/textclassifier/ConversationActions$Message$Builder;
+HPLandroid/view/textclassifier/ConversationActions$Message$Builder;->setText(Ljava/lang/CharSequence;)Landroid/view/textclassifier/ConversationActions$Message$Builder;
+HPLandroid/view/textclassifier/ConversationActions$Message;-><init>(Landroid/app/Person;Ljava/time/ZonedDateTime;Ljava/lang/CharSequence;Landroid/os/Bundle;)V
+HPLandroid/view/textclassifier/ConversationActions$Message;-><init>(Landroid/app/Person;Ljava/time/ZonedDateTime;Ljava/lang/CharSequence;Landroid/os/Bundle;Landroid/view/textclassifier/ConversationActions$1;)V
+PLandroid/view/textclassifier/ConversationActions$Message;-><init>(Landroid/os/Parcel;)V
+PLandroid/view/textclassifier/ConversationActions$Message;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/ConversationActions$1;)V
+HPLandroid/view/textclassifier/ConversationActions$Message;->getAuthor()Landroid/app/Person;
+HPLandroid/view/textclassifier/ConversationActions$Message;->getExtras()Landroid/os/Bundle;
+HPLandroid/view/textclassifier/ConversationActions$Message;->getReferenceTime()Ljava/time/ZonedDateTime;
+HPLandroid/view/textclassifier/ConversationActions$Message;->getText()Ljava/lang/CharSequence;
+PLandroid/view/textclassifier/ConversationActions$Message;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/textclassifier/ConversationActions$Request$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Request;
+PLandroid/view/textclassifier/ConversationActions$Request$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/textclassifier/ConversationActions$Request$Builder;-><init>(Ljava/util/List;)V
+HPLandroid/view/textclassifier/ConversationActions$Request$Builder;->build()Landroid/view/textclassifier/ConversationActions$Request;
+HPLandroid/view/textclassifier/ConversationActions$Request$Builder;->setExtras(Landroid/os/Bundle;)Landroid/view/textclassifier/ConversationActions$Request$Builder;
+HPLandroid/view/textclassifier/ConversationActions$Request$Builder;->setHints(Ljava/util/List;)Landroid/view/textclassifier/ConversationActions$Request$Builder;
+HPLandroid/view/textclassifier/ConversationActions$Request$Builder;->setMaxSuggestions(I)Landroid/view/textclassifier/ConversationActions$Request$Builder;
+HPLandroid/view/textclassifier/ConversationActions$Request$Builder;->setTypeConfig(Landroid/view/textclassifier/TextClassifier$EntityConfig;)Landroid/view/textclassifier/ConversationActions$Request$Builder;
+PLandroid/view/textclassifier/ConversationActions$Request;-><init>(Ljava/util/List;Landroid/view/textclassifier/TextClassifier$EntityConfig;ILjava/util/List;Landroid/os/Bundle;)V
+HPLandroid/view/textclassifier/ConversationActions$Request;-><init>(Ljava/util/List;Landroid/view/textclassifier/TextClassifier$EntityConfig;ILjava/util/List;Landroid/os/Bundle;Landroid/view/textclassifier/ConversationActions$1;)V
+PLandroid/view/textclassifier/ConversationActions$Request;->access$300(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Request;
+HPLandroid/view/textclassifier/ConversationActions$Request;->getCallingPackageName()Ljava/lang/String;
+HPLandroid/view/textclassifier/ConversationActions$Request;->getConversation()Ljava/util/List;
+HPLandroid/view/textclassifier/ConversationActions$Request;->getExtras()Landroid/os/Bundle;
+HPLandroid/view/textclassifier/ConversationActions$Request;->getHints()Ljava/util/List;
+HPLandroid/view/textclassifier/ConversationActions$Request;->getMaxSuggestions()I
+HPLandroid/view/textclassifier/ConversationActions$Request;->getTypeConfig()Landroid/view/textclassifier/TextClassifier$EntityConfig;
+PLandroid/view/textclassifier/ConversationActions$Request;->readFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/ConversationActions$Request;
+PLandroid/view/textclassifier/ConversationActions$Request;->setCallingPackageName(Ljava/lang/String;)V
+PLandroid/view/textclassifier/ConversationActions$Request;->setUserId(I)V
+PLandroid/view/textclassifier/ConversationActions$Request;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/textclassifier/ConversationActions;-><init>(Landroid/os/Parcel;)V
+HPLandroid/view/textclassifier/ConversationActions;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/ConversationActions$1;)V
+HSPLandroid/view/textclassifier/ConversationActions;-><init>(Ljava/util/List;Ljava/lang/String;)V
+HPLandroid/view/textclassifier/ConversationActions;->getConversationActions()Ljava/util/List;
+HPLandroid/view/textclassifier/ConversationActions;->getId()Ljava/lang/String;
+HPLandroid/view/textclassifier/ConversationActions;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/textclassifier/EntityConfidence;-><init>(Ljava/util/Map;)V
+HPLandroid/view/textclassifier/EntityConfidence;->getConfidenceScore(Ljava/lang/String;)F
+HPLandroid/view/textclassifier/EntityConfidence;->getEntities()Ljava/util/List;
+HPLandroid/view/textclassifier/EntityConfidence;->resetSortedEntitiesFromMap()V
+HPLandroid/view/textclassifier/EntityConfidence;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/textclassifier/ExtrasUtils;->isSerializedEntityDataEnabled(Landroid/view/textclassifier/TextLinks$Request;)Z
+PLandroid/view/textclassifier/GenerateLinksLogger;-><init>(I)V
+HPLandroid/view/textclassifier/GenerateLinksLogger;->logGenerateLinks(Ljava/lang/CharSequence;Landroid/view/textclassifier/TextLinks;Ljava/lang/String;J)V
+HPLandroid/view/textclassifier/GenerateLinksLogger;->shouldLog()Z
+PLandroid/view/textclassifier/Log;-><clinit>()V
+PLandroid/view/textclassifier/Log;->d(Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/view/textclassifier/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
+PLandroid/view/textclassifier/ModelFileManager$ModelFile;-><init>(Ljava/io/File;ILjava/util/List;Ljava/lang/String;Z)V
+PLandroid/view/textclassifier/ModelFileManager$ModelFile;->getName()Ljava/lang/String;
+PLandroid/view/textclassifier/ModelFileManager$ModelFile;->getPath()Ljava/lang/String;
+HPLandroid/view/textclassifier/ModelFileManager$ModelFile;->isPreferredTo(Landroid/view/textclassifier/ModelFileManager$ModelFile;)Z
+PLandroid/view/textclassifier/ModelFileManager$ModelFile;->toString()Ljava/lang/String;
+PLandroid/view/textclassifier/ModelFileManager$ModelFileSupplierImpl;-><init>(Ljava/io/File;Ljava/lang/String;Ljava/io/File;Ljava/util/function/Function;Ljava/util/function/Function;)V
+PLandroid/view/textclassifier/ModelFileManager$ModelFileSupplierImpl;->createModelFile(Ljava/io/File;)Landroid/view/textclassifier/ModelFileManager$ModelFile;
+PLandroid/view/textclassifier/ModelFileManager$ModelFileSupplierImpl;->get()Ljava/lang/Object;
+PLandroid/view/textclassifier/ModelFileManager$ModelFileSupplierImpl;->get()Ljava/util/List;
+PLandroid/view/textclassifier/ModelFileManager$ModelFileSupplierImpl;->maybeCloseAndLogError(Landroid/os/ParcelFileDescriptor;)V
+PLandroid/view/textclassifier/ModelFileManager;-><init>(Ljava/util/function/Supplier;)V
+HPLandroid/view/textclassifier/ModelFileManager;->findBestModelFile(Landroid/os/LocaleList;)Landroid/view/textclassifier/ModelFileManager$ModelFile;
+PLandroid/view/textclassifier/ModelFileManager;->listModelFiles()Ljava/util/List;
+PLandroid/view/textclassifier/SelectionEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/SelectionEvent;
+PLandroid/view/textclassifier/SelectionEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/textclassifier/SelectionEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/view/textclassifier/SelectionEvent;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/SelectionEvent$1;)V
+PLandroid/view/textclassifier/SelectionEvent;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/textclassifier/SelectionSessionLogger$SignatureParser;->getModelName(Ljava/lang/String;)Ljava/lang/String;
+PLandroid/view/textclassifier/SelectionSessionLogger;-><init>()V
+HPLandroid/view/textclassifier/SystemTextClassifier$BlockingCallback;->onSuccess(Landroid/os/Bundle;)V
+HPLandroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;->get()Ljava/lang/Object;
+PLandroid/view/textclassifier/SystemTextClassifier;-><init>(Landroid/content/Context;Landroid/view/textclassifier/TextClassificationConstants;)V
+HPLandroid/view/textclassifier/SystemTextClassifier;->destroy()V
+PLandroid/view/textclassifier/SystemTextClassifier;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+HPLandroid/view/textclassifier/SystemTextClassifier;->initializeRemoteSession(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V
+HPLandroid/view/textclassifier/SystemTextClassifier;->onTextClassifierEvent(Landroid/view/textclassifier/TextClassifierEvent;)V
+HPLandroid/view/textclassifier/SystemTextClassifier;->suggestConversationActions(Landroid/view/textclassifier/ConversationActions$Request;)Landroid/view/textclassifier/ConversationActions;
+PLandroid/view/textclassifier/TextClassification$Request$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassification$Request;
+PLandroid/view/textclassifier/TextClassification$Request$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/textclassifier/TextClassification$Request;-><init>(Ljava/lang/CharSequence;IILandroid/os/LocaleList;Ljava/time/ZonedDateTime;Landroid/os/Bundle;)V
+PLandroid/view/textclassifier/TextClassification$Request;->access$200(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassification$Request;
+PLandroid/view/textclassifier/TextClassification$Request;->readFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassification$Request;
+PLandroid/view/textclassifier/TextClassification$Request;->setCallingPackageName(Ljava/lang/String;)V
+PLandroid/view/textclassifier/TextClassification$Request;->setUserId(I)V
+PLandroid/view/textclassifier/TextClassification$Request;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/view/textclassifier/TextClassificationConstants;-><init>()V
+PLandroid/view/textclassifier/TextClassificationConstants;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLandroid/view/textclassifier/TextClassificationConstants;->getClassifyTextMaxRangeLength()I
+PLandroid/view/textclassifier/TextClassificationConstants;->getDeviceConfigFloatArray(Ljava/lang/String;[F)[F
+PLandroid/view/textclassifier/TextClassificationConstants;->getDeviceConfigStringList(Ljava/lang/String;Ljava/util/List;)Ljava/util/List;
+PLandroid/view/textclassifier/TextClassificationConstants;->getEntityListDefault()Ljava/util/List;
+PLandroid/view/textclassifier/TextClassificationConstants;->getEntityListEditable()Ljava/util/List;
+PLandroid/view/textclassifier/TextClassificationConstants;->getEntityListNotEditable()Ljava/util/List;
+PLandroid/view/textclassifier/TextClassificationConstants;->getGenerateLinksLogSampleRate()I
+PLandroid/view/textclassifier/TextClassificationConstants;->getGenerateLinksMaxTextLength()I
+PLandroid/view/textclassifier/TextClassificationConstants;->getInAppConversationActionTypes()Ljava/util/List;
+PLandroid/view/textclassifier/TextClassificationConstants;->getLangIdContextSettings()[F
+PLandroid/view/textclassifier/TextClassificationConstants;->getLangIdThresholdOverride()F
+PLandroid/view/textclassifier/TextClassificationConstants;->getNotificationConversationActionTypes()Ljava/util/List;
+PLandroid/view/textclassifier/TextClassificationConstants;->getSuggestSelectionMaxRangeLength()I
+HSPLandroid/view/textclassifier/TextClassificationConstants;->getTextClassifierServicePackageOverride()Ljava/lang/String;
+PLandroid/view/textclassifier/TextClassificationConstants;->isDetectLanguagesFromTextEnabled()Z
+PLandroid/view/textclassifier/TextClassificationConstants;->isLocalTextClassifierEnabled()Z
+PLandroid/view/textclassifier/TextClassificationConstants;->isModelDarkLaunchEnabled()Z
+PLandroid/view/textclassifier/TextClassificationConstants;->isSmartLinkifyEnabled()Z
+PLandroid/view/textclassifier/TextClassificationConstants;->isSmartSelectionAnimationEnabled()Z
+PLandroid/view/textclassifier/TextClassificationConstants;->isSmartSelectionEnabled()Z
+PLandroid/view/textclassifier/TextClassificationConstants;->isSmartTextShareEnabled()Z
+PLandroid/view/textclassifier/TextClassificationConstants;->isSystemTextClassifierEnabled()Z
+PLandroid/view/textclassifier/TextClassificationConstants;->isTemplateIntentFactoryEnabled()Z
+PLandroid/view/textclassifier/TextClassificationConstants;->isTranslateInClassificationEnabled()Z
+PLandroid/view/textclassifier/TextClassificationConstants;->parse(Ljava/lang/String;Ljava/util/List;)Ljava/util/List;
+PLandroid/view/textclassifier/TextClassificationConstants;->parse(Ljava/lang/String;[F)[F
+PLandroid/view/textclassifier/TextClassificationContext$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassificationContext;
+PLandroid/view/textclassifier/TextClassificationContext$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/view/textclassifier/TextClassificationContext$Builder;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/view/textclassifier/TextClassificationContext$Builder;->build()Landroid/view/textclassifier/TextClassificationContext;
+PLandroid/view/textclassifier/TextClassificationContext;-><init>(Landroid/os/Parcel;)V
+PLandroid/view/textclassifier/TextClassificationContext;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/TextClassificationContext$1;)V
+HSLandroid/view/textclassifier/TextClassificationContext;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSLandroid/view/textclassifier/TextClassificationContext;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/view/textclassifier/TextClassificationContext$1;)V
+PLandroid/view/textclassifier/TextClassificationContext;->getPackageName()Ljava/lang/String;
+PLandroid/view/textclassifier/TextClassificationContext;->getUserId()I
+HPLandroid/view/textclassifier/TextClassificationContext;->getWidgetType()Ljava/lang/String;
+HPLandroid/view/textclassifier/TextClassificationContext;->getWidgetVersion()Ljava/lang/String;
+HPLandroid/view/textclassifier/TextClassificationContext;->setUserId(I)V
+HPLandroid/view/textclassifier/TextClassificationContext;->toString()Ljava/lang/String;
+PLandroid/view/textclassifier/TextClassificationContext;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/view/textclassifier/TextClassificationManager$SettingsObserver;-><init>(Landroid/view/textclassifier/TextClassificationManager;)V
+PLandroid/view/textclassifier/TextClassificationManager$SettingsObserver;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
HSPLandroid/view/textclassifier/TextClassificationManager;-><init>(Landroid/content/Context;)V
-HSPLandroid/view/textclassifier/TextClassificationManager;->getLocalTextClassifier()Landroid/view/textclassifier/TextClassifier;
+HPLandroid/view/textclassifier/TextClassificationManager;->createTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier;
+PLandroid/view/textclassifier/TextClassificationManager;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+HPLandroid/view/textclassifier/TextClassificationManager;->finalize()V
+PLandroid/view/textclassifier/TextClassificationManager;->getLocalTextClassifier()Landroid/view/textclassifier/TextClassifier;
HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings()Landroid/view/textclassifier/TextClassificationConstants;
-HSPLandroid/view/textclassifier/TextClassificationManager;->lambda$getSettings$2$TextClassificationManager()Ljava/lang/String;
+HSPLandroid/view/textclassifier/TextClassificationManager;->getSettings(Landroid/content/Context;)Landroid/view/textclassifier/TextClassificationConstants;
+PLandroid/view/textclassifier/TextClassificationManager;->getSystemTextClassifier()Landroid/view/textclassifier/TextClassifier;
+HPLandroid/view/textclassifier/TextClassificationManager;->getTextClassifier()Landroid/view/textclassifier/TextClassifier;
+PLandroid/view/textclassifier/TextClassificationManager;->getTextClassifier(I)Landroid/view/textclassifier/TextClassifier;
+PLandroid/view/textclassifier/TextClassificationManager;->isSystemTextClassifierEnabled()Z
+HPLandroid/view/textclassifier/TextClassificationManager;->lambda$new$0$TextClassificationManager(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifier;
+HPLandroid/view/textclassifier/TextClassificationSessionId$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassificationSessionId;
+HPLandroid/view/textclassifier/TextClassificationSessionId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/textclassifier/TextClassificationSessionId;-><init>()V
HPLandroid/view/textclassifier/TextClassificationSessionId;-><init>(Ljava/lang/String;)V
-HSPLandroid/view/textclassifier/TextClassifierImpl;-><init>(Landroid/content/Context;Landroid/view/textclassifier/TextClassificationConstants;Landroid/view/textclassifier/TextClassifier;)V
-HSPLandroid/view/textclassifier/TextLinks$Request;-><init>(Ljava/lang/CharSequence;Landroid/os/LocaleList;Landroid/view/textclassifier/TextClassifier$EntityConfig;ZLandroid/os/Bundle;)V
-HSPLandroid/view/textclassifier/TextLinks$Request;->setCallingPackageName(Ljava/lang/String;)V
-HSPLandroid/view/textclassifier/TextLinks$Request;->setUserId(I)V
-HSPLandroid/webkit/CookieManager;-><init>()V
+HPLandroid/view/textclassifier/TextClassificationSessionId;->equals(Ljava/lang/Object;)Z
+HPLandroid/view/textclassifier/TextClassificationSessionId;->hashCode()I
+HPLandroid/view/textclassifier/TextClassificationSessionId;->toString()Ljava/lang/String;
+PLandroid/view/textclassifier/TextClassificationSessionId;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/textclassifier/TextClassifier$1;->toString()Ljava/lang/String;
+PLandroid/view/textclassifier/TextClassifier$EntityConfig$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassifier$EntityConfig;
+PLandroid/view/textclassifier/TextClassifier$EntityConfig$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/textclassifier/TextClassifier$EntityConfig$Builder;-><init>()V
+HPLandroid/view/textclassifier/TextClassifier$EntityConfig$Builder;->build()Landroid/view/textclassifier/TextClassifier$EntityConfig;
+HPLandroid/view/textclassifier/TextClassifier$EntityConfig$Builder;->includeTypesFromTextClassifier(Z)Landroid/view/textclassifier/TextClassifier$EntityConfig$Builder;
+HPLandroid/view/textclassifier/TextClassifier$EntityConfig$Builder;->setExcludedTypes(Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig$Builder;
+HPLandroid/view/textclassifier/TextClassifier$EntityConfig$Builder;->setHints(Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig$Builder;
+HPLandroid/view/textclassifier/TextClassifier$EntityConfig$Builder;->setIncludedTypes(Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig$Builder;
+PLandroid/view/textclassifier/TextClassifier$EntityConfig;-><init>(Landroid/os/Parcel;)V
+PLandroid/view/textclassifier/TextClassifier$EntityConfig;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/TextClassifier$1;)V
+HPLandroid/view/textclassifier/TextClassifier$EntityConfig;->createWithHints(Ljava/util/Collection;)Landroid/view/textclassifier/TextClassifier$EntityConfig;
+HPLandroid/view/textclassifier/TextClassifier$EntityConfig;->getHints()Ljava/util/Collection;
+HPLandroid/view/textclassifier/TextClassifier$EntityConfig;->resolveEntityListModifications(Ljava/util/Collection;)Ljava/util/Collection;
+PLandroid/view/textclassifier/TextClassifier$EntityConfig;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/textclassifier/TextClassifier$Utils;-><clinit>()V
+HPLandroid/view/textclassifier/TextClassifier$Utils;->checkMainThread()V
+HPLandroid/view/textclassifier/TextClassifier$Utils;->checkTextLength(Ljava/lang/CharSequence;I)V
+PLandroid/view/textclassifier/TextClassifierEvent$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextClassifierEvent;
+PLandroid/view/textclassifier/TextClassifierEvent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;-><init>(II)V
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;-><init>(IILandroid/view/textclassifier/TextClassifierEvent$1;)V
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->access$000(Landroid/view/textclassifier/TextClassifierEvent$Builder;)I
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->access$100(Landroid/view/textclassifier/TextClassifierEvent$Builder;)I
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->access$1000(Landroid/view/textclassifier/TextClassifierEvent$Builder;)Landroid/os/Bundle;
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->access$200(Landroid/view/textclassifier/TextClassifierEvent$Builder;)[Ljava/lang/String;
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->access$300(Landroid/view/textclassifier/TextClassifierEvent$Builder;)Landroid/view/textclassifier/TextClassificationContext;
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->access$400(Landroid/view/textclassifier/TextClassifierEvent$Builder;)Ljava/lang/String;
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->access$500(Landroid/view/textclassifier/TextClassifierEvent$Builder;)I
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->access$600(Landroid/view/textclassifier/TextClassifierEvent$Builder;)[F
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->access$700(Landroid/view/textclassifier/TextClassifierEvent$Builder;)Ljava/lang/String;
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->access$800(Landroid/view/textclassifier/TextClassifierEvent$Builder;)[I
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->access$900(Landroid/view/textclassifier/TextClassifierEvent$Builder;)Landroid/icu/util/ULocale;
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->setEntityTypes([Ljava/lang/String;)Landroid/view/textclassifier/TextClassifierEvent$Builder;
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->setEventContext(Landroid/view/textclassifier/TextClassificationContext;)Landroid/view/textclassifier/TextClassifierEvent$Builder;
+HPLandroid/view/textclassifier/TextClassifierEvent$Builder;->setResultId(Ljava/lang/String;)Landroid/view/textclassifier/TextClassifierEvent$Builder;
+PLandroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/TextClassifierEvent$1;)V
+HPLandroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent;-><init>(Landroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent$Builder;)V
+HPLandroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent;-><init>(Landroid/view/textclassifier/TextClassifierEvent$ConversationActionsEvent$Builder;Landroid/view/textclassifier/TextClassifierEvent$1;)V
+HPLandroid/view/textclassifier/TextClassifierEvent;-><init>(Landroid/os/Parcel;)V
+PLandroid/view/textclassifier/TextClassifierEvent;-><init>(Landroid/os/Parcel;Landroid/view/textclassifier/TextClassifierEvent$1;)V
+HPLandroid/view/textclassifier/TextClassifierEvent;-><init>(Landroid/view/textclassifier/TextClassifierEvent$Builder;)V
+HPLandroid/view/textclassifier/TextClassifierEvent;-><init>(Landroid/view/textclassifier/TextClassifierEvent$Builder;Landroid/view/textclassifier/TextClassifierEvent$1;)V
+HPLandroid/view/textclassifier/TextClassifierEvent;->getEntityTypes()[Ljava/lang/String;
+HPLandroid/view/textclassifier/TextClassifierEvent;->getEventCategory()I
+HPLandroid/view/textclassifier/TextClassifierEvent;->getEventContext()Landroid/view/textclassifier/TextClassificationContext;
+HPLandroid/view/textclassifier/TextClassifierEvent;->getEventType()I
+HPLandroid/view/textclassifier/TextClassifierEvent;->getModelName()Ljava/lang/String;
+PLandroid/view/textclassifier/TextClassifierEvent;->getParcelToken()I
+HPLandroid/view/textclassifier/TextClassifierEvent;->getResultId()Ljava/lang/String;
+HPLandroid/view/textclassifier/TextClassifierEvent;->getScores()[F
+HPLandroid/view/textclassifier/TextClassifierEvent;->setEventContext(Landroid/view/textclassifier/TextClassificationContext;)V
+HPLandroid/view/textclassifier/TextClassifierEvent;->toSelectionEvent()Landroid/view/textclassifier/SelectionEvent;
+HPLandroid/view/textclassifier/TextClassifierEvent;->toString()Ljava/lang/String;
+HPLandroid/view/textclassifier/TextClassifierEvent;->toString(Ljava/lang/StringBuilder;)V
+PLandroid/view/textclassifier/TextClassifierEvent;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/textclassifier/TextClassifierEventTronLogger;-><init>()V
+PLandroid/view/textclassifier/TextClassifierEventTronLogger;-><init>(Lcom/android/internal/logging/MetricsLogger;)V
+HPLandroid/view/textclassifier/TextClassifierEventTronLogger;->debugLog(Landroid/metrics/LogMaker;)V
+HPLandroid/view/textclassifier/TextClassifierEventTronLogger;->getCategory(Landroid/view/textclassifier/TextClassifierEvent;)I
+HPLandroid/view/textclassifier/TextClassifierEventTronLogger;->getLogType(Landroid/view/textclassifier/TextClassifierEvent;)I
+HPLandroid/view/textclassifier/TextClassifierEventTronLogger;->getModelName(Landroid/view/textclassifier/TextClassifierEvent;)Ljava/lang/String;
+HPLandroid/view/textclassifier/TextClassifierEventTronLogger;->writeEvent(Landroid/view/textclassifier/TextClassifierEvent;)V
+PLandroid/view/textclassifier/TextClassifierImpl;-><init>(Landroid/content/Context;Landroid/view/textclassifier/TextClassificationConstants;Landroid/view/textclassifier/TextClassifier;)V
+HPLandroid/view/textclassifier/TextClassifierImpl;->concatenateLocales(Landroid/os/LocaleList;)Ljava/lang/String;
+HPLandroid/view/textclassifier/TextClassifierImpl;->createConversationActionResult(Landroid/view/textclassifier/ConversationActions$Request;[Lcom/google/android/textclassifier/ActionsSuggestionsModel$ActionSuggestion;)Landroid/view/textclassifier/ConversationActions;
+HPLandroid/view/textclassifier/TextClassifierImpl;->detectLanguage(Landroid/view/textclassifier/TextLanguage$Request;)Landroid/view/textclassifier/TextLanguage;
+HPLandroid/view/textclassifier/TextClassifierImpl;->detectLanguageTagsFromText(Ljava/lang/CharSequence;)Ljava/lang/String;
+PLandroid/view/textclassifier/TextClassifierImpl;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+HPLandroid/view/textclassifier/TextClassifierImpl;->generateLinks(Landroid/view/textclassifier/TextLinks$Request;)Landroid/view/textclassifier/TextLinks;
+HPLandroid/view/textclassifier/TextClassifierImpl;->getActionsImpl()Lcom/google/android/textclassifier/ActionsSuggestionsModel;
+HPLandroid/view/textclassifier/TextClassifierImpl;->getAnnotatorImpl(Landroid/os/LocaleList;)Lcom/google/android/textclassifier/AnnotatorModel;
+HPLandroid/view/textclassifier/TextClassifierImpl;->getEntitiesForHints(Ljava/util/Collection;)Ljava/util/Collection;
+HPLandroid/view/textclassifier/TextClassifierImpl;->getLangIdImpl()Lcom/google/android/textclassifier/LangIdModel;
+HPLandroid/view/textclassifier/TextClassifierImpl;->getLangIdThreshold()F
+HPLandroid/view/textclassifier/TextClassifierImpl;->getMaxGenerateLinksTextLength()I
+HPLandroid/view/textclassifier/TextClassifierImpl;->getResourceLocalesString()Ljava/lang/String;
+PLandroid/view/textclassifier/TextClassifierImpl;->lambda$new$0(Ljava/lang/Integer;)Ljava/lang/String;
+HPLandroid/view/textclassifier/TextClassifierImpl;->maybeCloseAndLogError(Landroid/os/ParcelFileDescriptor;)V
+HPLandroid/view/textclassifier/TextClassifierImpl;->onTextClassifierEvent(Landroid/view/textclassifier/TextClassifierEvent;)V
+HPLandroid/view/textclassifier/TextClassifierImpl;->resolveActionTypesFromRequest(Landroid/view/textclassifier/ConversationActions$Request;)Ljava/util/Collection;
+HPLandroid/view/textclassifier/TextClassifierImpl;->suggestConversationActions(Landroid/view/textclassifier/ConversationActions$Request;)Landroid/view/textclassifier/ConversationActions;
+HPLandroid/view/textclassifier/TextLanguage$Builder;->putLocale(Landroid/icu/util/ULocale;F)Landroid/view/textclassifier/TextLanguage$Builder;
+PLandroid/view/textclassifier/TextLinks$Request$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks$Request;
+PLandroid/view/textclassifier/TextLinks$Request$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/textclassifier/TextLinks$Request;-><init>(Ljava/lang/CharSequence;Landroid/os/LocaleList;Landroid/view/textclassifier/TextClassifier$EntityConfig;ZLandroid/os/Bundle;)V
+HPLandroid/view/textclassifier/TextLinks$Request;-><init>(Ljava/lang/CharSequence;Landroid/os/LocaleList;Landroid/view/textclassifier/TextClassifier$EntityConfig;ZLandroid/os/Bundle;Landroid/view/textclassifier/TextLinks$1;)V
+PLandroid/view/textclassifier/TextLinks$Request;->access$300(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks$Request;
+HPLandroid/view/textclassifier/TextLinks$Request;->getCallingPackageName()Ljava/lang/String;
+HPLandroid/view/textclassifier/TextLinks$Request;->getDefaultLocales()Landroid/os/LocaleList;
+HPLandroid/view/textclassifier/TextLinks$Request;->getEntityConfig()Landroid/view/textclassifier/TextClassifier$EntityConfig;
+HPLandroid/view/textclassifier/TextLinks$Request;->getExtras()Landroid/os/Bundle;
+HPLandroid/view/textclassifier/TextLinks$Request;->getText()Ljava/lang/CharSequence;
+PLandroid/view/textclassifier/TextLinks$Request;->readFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextLinks$Request;
+PLandroid/view/textclassifier/TextLinks$Request;->setCallingPackageName(Ljava/lang/String;)V
+PLandroid/view/textclassifier/TextLinks$Request;->setUserId(I)V
+PLandroid/view/textclassifier/TextLinks$Request;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/view/textclassifier/TextSelection$Request$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextSelection$Request;
+PLandroid/view/textclassifier/TextSelection$Request$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLandroid/view/textclassifier/TextSelection$Request;-><init>(Ljava/lang/CharSequence;IILandroid/os/LocaleList;ZLandroid/os/Bundle;)V
+PLandroid/view/textclassifier/TextSelection$Request;->access$200(Landroid/os/Parcel;)Landroid/view/textclassifier/TextSelection$Request;
+PLandroid/view/textclassifier/TextSelection$Request;->readFromParcel(Landroid/os/Parcel;)Landroid/view/textclassifier/TextSelection$Request;
+PLandroid/view/textclassifier/TextSelection$Request;->setCallingPackageName(Ljava/lang/String;)V
+PLandroid/view/textclassifier/TextSelection$Request;->setUserId(I)V
+PLandroid/view/textclassifier/TextSelection$Request;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/textclassifier/intent/-$$Lambda$LabeledIntent$LaL7EfxShgNu4lrdo3mv85g49Jg;->chooseTitle(Landroid/view/textclassifier/intent/LabeledIntent;Landroid/content/pm/ResolveInfo;)Ljava/lang/CharSequence;
+HPLandroid/view/textclassifier/intent/LabeledIntent;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;I)V
+HPLandroid/view/textclassifier/intent/LabeledIntent;->getApplicationName(Landroid/content/pm/ResolveInfo;Landroid/content/pm/PackageManager;)Ljava/lang/String;
+HPLandroid/view/textclassifier/intent/LabeledIntent;->lambda$static$0(Landroid/view/textclassifier/intent/LabeledIntent;Landroid/content/pm/ResolveInfo;)Ljava/lang/CharSequence;
+HPLandroid/view/textclassifier/intent/LabeledIntent;->resolve(Landroid/content/Context;Landroid/view/textclassifier/intent/LabeledIntent$TitleChooser;Landroid/os/Bundle;)Landroid/view/textclassifier/intent/LabeledIntent$Result;
+HPLandroid/view/textclassifier/intent/LabeledIntent;->resolveDescription(Landroid/content/pm/ResolveInfo;Landroid/content/pm/PackageManager;)Ljava/lang/String;
+PLandroid/view/textclassifier/intent/LegacyClassificationIntentFactory;-><init>()V
+PLandroid/view/textclassifier/intent/TemplateClassificationIntentFactory;-><init>(Landroid/view/textclassifier/intent/TemplateIntentFactory;Landroid/view/textclassifier/intent/ClassificationIntentFactory;)V
+PLandroid/view/textclassifier/intent/TemplateIntentFactory;-><init>()V
+HPLandroid/view/textclassifier/intent/TemplateIntentFactory;->create([Lcom/google/android/textclassifier/RemoteActionTemplate;)Ljava/util/List;
+HPLandroid/view/textclassifier/intent/TemplateIntentFactory;->createIntent(Lcom/google/android/textclassifier/RemoteActionTemplate;)Landroid/content/Intent;
+HPLandroid/view/textclassifier/intent/TemplateIntentFactory;->isValidTemplate(Lcom/google/android/textclassifier/RemoteActionTemplate;)Z
+HPLandroid/view/textclassifier/intent/TemplateIntentFactory;->nameVariantsToBundle([Lcom/google/android/textclassifier/NamedVariant;)Landroid/os/Bundle;
+HPLandroid/view/textservice/SpellCheckerInfo$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SpellCheckerInfo;
+HPLandroid/view/textservice/SpellCheckerInfo$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/textservice/SpellCheckerInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;)V
+HPLandroid/view/textservice/SpellCheckerInfo;-><init>(Landroid/os/Parcel;)V
+HPLandroid/view/textservice/SpellCheckerInfo;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLandroid/view/textservice/SpellCheckerInfo;->getId()Ljava/lang/String;
+PLandroid/view/textservice/SpellCheckerInfo;->getSubtypeAt(I)Landroid/view/textservice/SpellCheckerSubtype;
+PLandroid/view/textservice/SpellCheckerInfo;->getSubtypeCount()I
+PLandroid/view/textservice/SpellCheckerInfo;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/textservice/SpellCheckerSession$1;-><init>(Landroid/view/textservice/SpellCheckerSession;)V
+HPLandroid/view/textservice/SpellCheckerSession$InternalListener;-><init>(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;)V
+HPLandroid/view/textservice/SpellCheckerSession$InternalListener;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V
+HPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;-><init>(Landroid/os/Handler;)V
+HPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->close()V
+HPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V
+HPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processCloseLocked()V
+HPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processOrEnqueueTask(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;)V
+HPLandroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->processTask(Lcom/android/internal/textservice/ISpellCheckerSession;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;Z)V
+HPLandroid/view/textservice/SpellCheckerSession;-><init>(Landroid/view/textservice/SpellCheckerInfo;Landroid/view/textservice/TextServicesManager;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;)V
+HPLandroid/view/textservice/SpellCheckerSession;->close()V
+HPLandroid/view/textservice/SpellCheckerSession;->finalize()V
+HPLandroid/view/textservice/SpellCheckerSession;->getSpellCheckerSessionListener()Lcom/android/internal/textservice/ISpellCheckerSessionListener;
+HPLandroid/view/textservice/SpellCheckerSession;->getTextServicesSessionListener()Lcom/android/internal/textservice/ITextServicesSessionListener;
+HPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Landroid/view/textservice/SpellCheckerSubtype;
+HPLandroid/view/textservice/SpellCheckerSubtype$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/view/textservice/SpellCheckerSubtype;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+HPLandroid/view/textservice/SpellCheckerSubtype;-><init>(Landroid/os/Parcel;)V
+PLandroid/view/textservice/SpellCheckerSubtype;->getExtraValue()Ljava/lang/String;
+PLandroid/view/textservice/SpellCheckerSubtype;->getLanguageTag()Ljava/lang/String;
+PLandroid/view/textservice/SpellCheckerSubtype;->getLocale()Ljava/lang/String;
+PLandroid/view/textservice/SpellCheckerSubtype;->hashCodeInternal(Ljava/lang/String;Ljava/lang/String;)I
+PLandroid/view/textservice/SpellCheckerSubtype;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/view/textservice/TextServicesManager;-><init>(I)V
+HPLandroid/view/textservice/TextServicesManager;->createInstance(Landroid/content/Context;)Landroid/view/textservice/TextServicesManager;
+HPLandroid/view/textservice/TextServicesManager;->finishSpellCheckerService(Lcom/android/internal/textservice/ISpellCheckerSessionListener;)V
+HPLandroid/view/textservice/TextServicesManager;->getCurrentSpellCheckerSubtype(Z)Landroid/view/textservice/SpellCheckerSubtype;
+HPLandroid/view/textservice/TextServicesManager;->isSpellCheckerEnabled()Z
+HPLandroid/view/textservice/TextServicesManager;->newSpellCheckerSession(Landroid/os/Bundle;Ljava/util/Locale;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;Z)Landroid/view/textservice/SpellCheckerSession;
+HPLandroid/view/textservice/TextServicesManager;->parseLanguageFromLocaleString(Ljava/lang/String;)Ljava/lang/String;
+HPLandroid/webkit/ConsoleMessage$MessageLevel;->values()[Landroid/webkit/ConsoleMessage$MessageLevel;
+HPLandroid/webkit/ConsoleMessage;->lineNumber()I
+HPLandroid/webkit/ConsoleMessage;->message()Ljava/lang/String;
+HPLandroid/webkit/ConsoleMessage;->messageLevel()Landroid/webkit/ConsoleMessage$MessageLevel;
+HPLandroid/webkit/ConsoleMessage;->sourceId()Ljava/lang/String;
HSPLandroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager;
+HSPLandroid/webkit/CookieSyncManager;->checkInstanceIsAllowed()V
+HSPLandroid/webkit/CookieSyncManager;->createInstance(Landroid/content/Context;)Landroid/webkit/CookieSyncManager;
+HSPLandroid/webkit/CookieSyncManager;->getInstance()Landroid/webkit/CookieSyncManager;
+HSPLandroid/webkit/CookieSyncManager;->setGetInstanceIsAllowed()V
+HPLandroid/webkit/CookieSyncManager;->sync()V
+HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo;
+HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->getCurrentWebViewPackageName()Ljava/lang/String;
HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->isMultiProcessEnabled()Z
HSPLandroid/webkit/IWebViewUpdateService$Stub$Proxy;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
+HSPLandroid/webkit/IWebViewUpdateService$Stub;-><init>()V
+HSPLandroid/webkit/IWebViewUpdateService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/webkit/IWebViewUpdateService;
+PLandroid/webkit/IWebViewUpdateService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLandroid/webkit/IWebViewUpdateService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLandroid/webkit/MimeTypeMap;-><clinit>()V
+HSPLandroid/webkit/MimeTypeMap;-><init>()V
+HSPLandroid/webkit/MimeTypeMap;->getFileExtensionFromUrl(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/webkit/MimeTypeMap;->getMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/webkit/MimeTypeMap;->getSingleton()Landroid/webkit/MimeTypeMap;
+HPLandroid/webkit/URLUtil;->isHttpUrl(Ljava/lang/String;)Z
+HPLandroid/webkit/URLUtil;->isHttpsUrl(Ljava/lang/String;)Z
+HSPLandroid/webkit/URLUtil;->isValidUrl(Ljava/lang/String;)Z
+HSPLandroid/webkit/UserPackage;-><init>(Landroid/content/pm/UserInfo;Landroid/content/pm/PackageInfo;)V
+HSPLandroid/webkit/UserPackage;->getAllUsers(Landroid/content/Context;)Ljava/util/List;
+PLandroid/webkit/UserPackage;->getPackageInfo()Landroid/content/pm/PackageInfo;
+HSPLandroid/webkit/UserPackage;->getPackageInfosAllUsers(Landroid/content/Context;Ljava/lang/String;I)Ljava/util/List;
+HSPLandroid/webkit/UserPackage;->hasCorrectTargetSdkVersion(Landroid/content/pm/PackageInfo;)Z
+HSPLandroid/webkit/UserPackage;->isEnabledPackage()Z
+HSPLandroid/webkit/UserPackage;->isInstalledPackage()Z
+HSPLandroid/webkit/WebChromeClient;-><init>()V
+HSPLandroid/webkit/WebChromeClient;->getVisitedHistory(Landroid/webkit/ValueCallback;)V
+HPLandroid/webkit/WebChromeClient;->onConsoleMessage(Landroid/webkit/ConsoleMessage;)Z
+HPLandroid/webkit/WebChromeClient;->onConsoleMessage(Ljava/lang/String;ILjava/lang/String;)V
+HSPLandroid/webkit/WebChromeClient;->onProgressChanged(Landroid/webkit/WebView;I)V
+HSPLandroid/webkit/WebChromeClient;->onReceivedIcon(Landroid/webkit/WebView;Landroid/graphics/Bitmap;)V
+HSPLandroid/webkit/WebChromeClient;->onReceivedTitle(Landroid/webkit/WebView;Ljava/lang/String;)V
+HSPLandroid/webkit/WebSettings$PluginState;-><clinit>()V
+HSPLandroid/webkit/WebSettings$PluginState;-><init>(Ljava/lang/String;I)V
+HSPLandroid/webkit/WebSettings;->getDefaultUserAgent(Landroid/content/Context;)Ljava/lang/String;
+HSPLandroid/webkit/WebView$PrivateAccess;-><init>(Landroid/webkit/WebView;)V
+HPLandroid/webkit/WebView$PrivateAccess;->overScrollBy(IIIIIIIIZ)V
+HSPLandroid/webkit/WebView$PrivateAccess;->super_getScrollBarStyle()I
+HPLandroid/webkit/WebView$PrivateAccess;->super_onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
+HPLandroid/webkit/WebView$PrivateAccess;->super_scrollTo(II)V
+HPLandroid/webkit/WebView$PrivateAccess;->super_setFrame(IIII)Z
+HSPLandroid/webkit/WebView$PrivateAccess;->super_setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;)V
+HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/webkit/WebView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IILjava/util/Map;Z)V
+HSPLandroid/webkit/WebView;->access$101(Landroid/webkit/WebView;)I
+HSPLandroid/webkit/WebView;->access$1101(Landroid/webkit/WebView;Landroid/view/ViewGroup$LayoutParams;)V
+HPLandroid/webkit/WebView;->access$1300(Landroid/webkit/WebView;IIIIIIIIZ)Z
+HPLandroid/webkit/WebView;->access$2001(Landroid/webkit/WebView;Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
+HPLandroid/webkit/WebView;->access$201(Landroid/webkit/WebView;II)V
+HPLandroid/webkit/WebView;->access$701(Landroid/webkit/WebView;IIII)Z
+HSPLandroid/webkit/WebView;->addJavascriptInterface(Ljava/lang/Object;Ljava/lang/String;)V
+HSPLandroid/webkit/WebView;->checkThread()V
+HPLandroid/webkit/WebView;->computeHorizontalScrollOffset()I
+HPLandroid/webkit/WebView;->computeHorizontalScrollRange()I
+HPLandroid/webkit/WebView;->computeScroll()V
+HPLandroid/webkit/WebView;->computeVerticalScrollExtent()I
+HPLandroid/webkit/WebView;->computeVerticalScrollOffset()I
+HPLandroid/webkit/WebView;->computeVerticalScrollRange()I
+HPLandroid/webkit/WebView;->destroy()V
+HPLandroid/webkit/WebView;->dispatchDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/webkit/WebView;->ensureProviderCreated()V
+HSPLandroid/webkit/WebView;->evaluateJavascript(Ljava/lang/String;Landroid/webkit/ValueCallback;)V
+HSPLandroid/webkit/WebView;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo;
+HSPLandroid/webkit/WebView;->getFactory()Landroid/webkit/WebViewFactoryProvider;
+HSPLandroid/webkit/WebView;->getFavicon()Landroid/graphics/Bitmap;
+HSPLandroid/webkit/WebView;->getHandler()Landroid/os/Handler;
+HSPLandroid/webkit/WebView;->getSettings()Landroid/webkit/WebSettings;
+HSPLandroid/webkit/WebView;->loadDataWithBaseURL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLandroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
+HSPLandroid/webkit/WebView;->onAttachedToWindow()V
+HPLandroid/webkit/WebView;->onDetachedFromWindowInternal()V
+HPLandroid/webkit/WebView;->onDraw(Landroid/graphics/Canvas;)V
+HPLandroid/webkit/WebView;->onDrawVerticalScrollBar(Landroid/graphics/Canvas;Landroid/graphics/drawable/Drawable;IIII)V
+HPLandroid/webkit/WebView;->onOverScrolled(IIZZ)V
+HSPLandroid/webkit/WebView;->onPause()V
+HPLandroid/webkit/WebView;->onScrollChanged(IIII)V
+HPLandroid/webkit/WebView;->onSizeChanged(IIII)V
+HPLandroid/webkit/WebView;->onTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/webkit/WebView;->onVisibilityChanged(Landroid/view/View;I)V
+HPLandroid/webkit/WebView;->onWindowFocusChanged(Z)V
+HPLandroid/webkit/WebView;->onWindowVisibilityChanged(I)V
+HSPLandroid/webkit/WebView;->removeJavascriptInterface(Ljava/lang/String;)V
+HSPLandroid/webkit/WebView;->setBackgroundColor(I)V
+HPLandroid/webkit/WebView;->setDataDirectorySuffix(Ljava/lang/String;)V
+HSPLandroid/webkit/WebView;->setDownloadListener(Landroid/webkit/DownloadListener;)V
+HPLandroid/webkit/WebView;->setFrame(IIII)Z
+HSPLandroid/webkit/WebView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/webkit/WebView;->setOverScrollMode(I)V
+HSPLandroid/webkit/WebView;->setWebChromeClient(Landroid/webkit/WebChromeClient;)V
+HSPLandroid/webkit/WebView;->setWebViewClient(Landroid/webkit/WebViewClient;)V
+HSPLandroid/webkit/WebViewClient;-><init>()V
+HSPLandroid/webkit/WebViewClient;->doUpdateVisitedHistory(Landroid/webkit/WebView;Ljava/lang/String;Z)V
+HSPLandroid/webkit/WebViewClient;->onPageCommitVisible(Landroid/webkit/WebView;Ljava/lang/String;)V
+HSPLandroid/webkit/WebViewClient;->onPageStarted(Landroid/webkit/WebView;Ljava/lang/String;Landroid/graphics/Bitmap;)V
+HPLandroid/webkit/WebViewClient;->onReceivedError(Landroid/webkit/WebView;ILjava/lang/String;Ljava/lang/String;)V
+HPLandroid/webkit/WebViewClient;->onReceivedError(Landroid/webkit/WebView;Landroid/webkit/WebResourceRequest;Landroid/webkit/WebResourceError;)V
+HSPLandroid/webkit/WebViewClient;->onScaleChanged(Landroid/webkit/WebView;FF)V
+HSPLandroid/webkit/WebViewDelegate$1;-><init>(Landroid/webkit/WebViewDelegate;Landroid/webkit/WebViewDelegate$OnTraceEnabledChangeListener;)V
+PLandroid/webkit/WebViewDelegate$1;->run()V
+HSPLandroid/webkit/WebViewDelegate;->addWebViewAssetPath(Landroid/content/Context;)V
+HPLandroid/webkit/WebViewDelegate;->drawWebViewFunctor(Landroid/graphics/Canvas;I)V
HSPLandroid/webkit/WebViewDelegate;->getApplication()Landroid/app/Application;
HSPLandroid/webkit/WebViewDelegate;->getDataDirectorySuffix()Ljava/lang/String;
HSPLandroid/webkit/WebViewDelegate;->getPackageId(Landroid/content/res/Resources;Ljava/lang/String;)I
HSPLandroid/webkit/WebViewDelegate;->isMultiProcessEnabled()Z
+HSPLandroid/webkit/WebViewDelegate;->isTraceTagEnabled()Z
+HSPLandroid/webkit/WebViewDelegate;->setOnTraceEnabledChangeListener(Landroid/webkit/WebViewDelegate$OnTraceEnabledChangeListener;)V
HSPLandroid/webkit/WebViewFactory;->getDataDirectorySuffix()Ljava/lang/String;
HSPLandroid/webkit/WebViewFactory;->getLoadedPackageInfo()Landroid/content/pm/PackageInfo;
HSPLandroid/webkit/WebViewFactory;->getProvider()Landroid/webkit/WebViewFactoryProvider;
HSPLandroid/webkit/WebViewFactory;->getProviderClass()Ljava/lang/Class;
+HSPLandroid/webkit/WebViewFactory;->getUpdateService()Landroid/webkit/IWebViewUpdateService;
+HSPLandroid/webkit/WebViewFactory;->getUpdateServiceUnchecked()Landroid/webkit/IWebViewUpdateService;
HSPLandroid/webkit/WebViewFactory;->getWebViewContextAndSetProvider()Landroid/content/Context;
+HSPLandroid/webkit/WebViewFactory;->getWebViewLibrary(Landroid/content/pm/ApplicationInfo;)Ljava/lang/String;
+HSPLandroid/webkit/WebViewFactory;->isWebViewSupported()Z
+HSPLandroid/webkit/WebViewFactory;->onWebViewProviderChanged(Landroid/content/pm/PackageInfo;)I
HSPLandroid/webkit/WebViewFactory;->prepareWebViewInZygote()V
+HPLandroid/webkit/WebViewFactory;->setDataDirectorySuffix(Ljava/lang/String;)V
HSPLandroid/webkit/WebViewFactory;->signaturesEquals([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)Z
HSPLandroid/webkit/WebViewFactory;->verifyPackageInfo(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;)V
+HSPLandroid/webkit/WebViewLibraryLoader$1;-><init>(Ljava/lang/String;)V
+HSPLandroid/webkit/WebViewLibraryLoader;->createRelroFile(ZLjava/lang/String;Ljava/lang/String;)V
+HSPLandroid/webkit/WebViewLibraryLoader;->createRelros(Ljava/lang/String;Ljava/lang/String;)I
HSPLandroid/webkit/WebViewLibraryLoader;->loadNativeLibrary(Ljava/lang/ClassLoader;Ljava/lang/String;)I
+HSPLandroid/webkit/WebViewLibraryLoader;->prepareNativeLibraries(Landroid/content/pm/PackageInfo;)I
HSPLandroid/webkit/WebViewLibraryLoader;->reserveAddressSpaceInZygote()V
+HSPLandroid/webkit/WebViewProviderInfo;-><init>(Ljava/lang/String;Ljava/lang/String;ZZ[Ljava/lang/String;)V
HSPLandroid/webkit/WebViewProviderResponse$1;->createFromParcel(Landroid/os/Parcel;)Landroid/webkit/WebViewProviderResponse;
HSPLandroid/webkit/WebViewProviderResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/webkit/WebViewProviderResponse;-><init>(Landroid/content/pm/PackageInfo;I)V
+PLandroid/webkit/WebViewProviderResponse;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/webkit/WebViewZygote;->connectToZygoteIfNeededLocked()V
+PLandroid/webkit/WebViewZygote;->getPackageName()Ljava/lang/String;
+HSPLandroid/webkit/WebViewZygote;->getProcess()Landroid/os/ZygoteProcess;
+PLandroid/webkit/WebViewZygote;->isMultiprocessEnabled()Z
+HSPLandroid/webkit/WebViewZygote;->onWebViewProviderChanged(Landroid/content/pm/PackageInfo;)V
+HSPLandroid/webkit/WebViewZygote;->setMultiprocessEnabled(Z)V
+HPLandroid/widget/-$$Lambda$PopupWindow$8Gc2stI5cSJZbuKX7X4Qr_vU2nI;-><init>(Landroid/widget/PopupWindow;)V
+HPLandroid/widget/-$$Lambda$PopupWindow$nV1HS3Nc6Ck5JRIbIHe3mkyHWzc;-><init>(Landroid/widget/PopupWindow;)V
+HPLandroid/widget/-$$Lambda$RemoteViews$FAOkoZgPKPkiYdtkDxAhkeoykww;->onLoadClass(Ljava/lang/Class;)Z
+HSPLandroid/widget/AbsListView$3;->run()V
+HSPLandroid/widget/AbsListView$AdapterDataSetObserver;-><init>(Landroid/widget/AbsListView;)V
+HPLandroid/widget/AbsListView$AdapterDataSetObserver;->onChanged()V
+HPLandroid/widget/AbsListView$CheckForTap;->run()V
+HPLandroid/widget/AbsListView$LayoutParams;-><init>(II)V
+HPLandroid/widget/AbsListView$LayoutParams;-><init>(III)V
+HSPLandroid/widget/AbsListView$PerformClick;->run()V
+HSPLandroid/widget/AbsListView$RecycleBin;->addScrapView(Landroid/view/View;I)V
+HSPLandroid/widget/AbsListView$RecycleBin;->clear()V
+HSPLandroid/widget/AbsListView$RecycleBin;->clearTransientStateViews()V
+HSPLandroid/widget/AbsListView$RecycleBin;->fillActiveViews(II)V
+HSPLandroid/widget/AbsListView$RecycleBin;->getActiveView(I)Landroid/view/View;
+HSPLandroid/widget/AbsListView$RecycleBin;->getScrapView(I)Landroid/view/View;
+HSPLandroid/widget/AbsListView$RecycleBin;->getTransientStateView(I)Landroid/view/View;
+HSPLandroid/widget/AbsListView$RecycleBin;->markChildrenDirty()V
+HSPLandroid/widget/AbsListView$RecycleBin;->pruneScrapViews()V
+HSPLandroid/widget/AbsListView$RecycleBin;->removeSkippedScrap()V
+HSPLandroid/widget/AbsListView$RecycleBin;->retrieveFromScrap(Ljava/util/ArrayList;I)Landroid/view/View;
+HSPLandroid/widget/AbsListView$RecycleBin;->scrapActiveViews()V
+HSPLandroid/widget/AbsListView$RecycleBin;->setViewTypeCount(I)V
+HSPLandroid/widget/AbsListView$RecycleBin;->shouldRecycleViewType(I)Z
+HPLandroid/widget/AbsListView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/AbsListView$WindowRunnnable;->rememberWindowAttachCount()V
+HSPLandroid/widget/AbsListView$WindowRunnnable;->sameWindow()Z
+HSPLandroid/widget/AbsListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/AbsListView;->access$1000(Landroid/widget/AbsListView;)[F
+HSPLandroid/widget/AbsListView;->access$1602(Landroid/widget/AbsListView;Ljava/lang/Runnable;)Ljava/lang/Runnable;
+HSPLandroid/widget/AbsListView;->access$1700(Landroid/widget/AbsListView;)Z
+HSPLandroid/widget/AbsListView;->access$600(Landroid/widget/AbsListView;)I
+HSPLandroid/widget/AbsListView;->access$700(Landroid/widget/AbsListView;)I
+HSPLandroid/widget/AbsListView;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
+HSPLandroid/widget/AbsListView;->clearChoices()V
+HPLandroid/widget/AbsListView;->clearScrollingCache()V
+HPLandroid/widget/AbsListView;->computeVerticalScrollExtent()I
+HPLandroid/widget/AbsListView;->computeVerticalScrollOffset()I
+HPLandroid/widget/AbsListView;->computeVerticalScrollRange()I
+HPLandroid/widget/AbsListView;->contentFits()Z
+HPLandroid/widget/AbsListView;->createScrollingCache()V
+HSPLandroid/widget/AbsListView;->dispatchDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/AbsListView;->dispatchSetPressed(Z)V
+HSPLandroid/widget/AbsListView;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/AbsListView;->drawableStateChanged()V
+HPLandroid/widget/AbsListView;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
+HSPLandroid/widget/AbsListView;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
+HSPLandroid/widget/AbsListView;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/AbsListView$LayoutParams;
+HSPLandroid/widget/AbsListView;->getDrawableStateForSelector()[I
+HSPLandroid/widget/AbsListView;->getVerticalScrollbarWidth()I
+HSPLandroid/widget/AbsListView;->handleBoundsChange()V
+HSPLandroid/widget/AbsListView;->handleDataChanged()V
+HSPLandroid/widget/AbsListView;->handleScrollBarDragging(Landroid/view/MotionEvent;)Z
+HSPLandroid/widget/AbsListView;->hideSelector()V
+HSPLandroid/widget/AbsListView;->initAbsListView()V
+HSPLandroid/widget/AbsListView;->internalSetPadding(IIII)V
+HSPLandroid/widget/AbsListView;->invokeOnItemScrollListener()V
+HSPLandroid/widget/AbsListView;->isFastScrollEnabled()Z
+HSPLandroid/widget/AbsListView;->isInFilterMode()Z
+HPLandroid/widget/AbsListView;->isItemChecked(I)Z
+HSPLandroid/widget/AbsListView;->isStackFromBottom()Z
+HSPLandroid/widget/AbsListView;->isVerticalScrollBarHidden()Z
+HSPLandroid/widget/AbsListView;->jumpDrawablesToCurrentState()V
+HSPLandroid/widget/AbsListView;->layoutChildren()V
+HSPLandroid/widget/AbsListView;->obtainView(I[Z)Landroid/view/View;
+HSPLandroid/widget/AbsListView;->onAttachedToWindow()V
+HSPLandroid/widget/AbsListView;->onCancelPendingInputEvents()V
+HSPLandroid/widget/AbsListView;->onDetachedFromWindow()V
+HSPLandroid/widget/AbsListView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/widget/AbsListView;->onLayout(ZIIII)V
+HSPLandroid/widget/AbsListView;->onMeasure(II)V
+HPLandroid/widget/AbsListView;->onOverScrolled(IIZZ)V
+HSPLandroid/widget/AbsListView;->onRtlPropertiesChanged(I)V
+HPLandroid/widget/AbsListView;->onSaveInstanceState()Landroid/os/Parcelable;
+HPLandroid/widget/AbsListView;->onSecondaryPointerUp(Landroid/view/MotionEvent;)V
+HSPLandroid/widget/AbsListView;->onSizeChanged(IIII)V
+HPLandroid/widget/AbsListView;->onTouchCancel()V
+HSPLandroid/widget/AbsListView;->onTouchDown(Landroid/view/MotionEvent;)V
+HSPLandroid/widget/AbsListView;->onTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/widget/AbsListView;->onTouchModeChanged(Z)V
+HSPLandroid/widget/AbsListView;->onTouchMove(Landroid/view/MotionEvent;Landroid/view/MotionEvent;)V
+HSPLandroid/widget/AbsListView;->onTouchUp(Landroid/view/MotionEvent;)V
+HSPLandroid/widget/AbsListView;->onWindowFocusChanged(Z)V
+HSPLandroid/widget/AbsListView;->performItemClick(Landroid/view/View;IJ)Z
+HSPLandroid/widget/AbsListView;->pointToPosition(II)I
+HSPLandroid/widget/AbsListView;->positionSelector(ILandroid/view/View;)V
+HSPLandroid/widget/AbsListView;->positionSelector(ILandroid/view/View;ZFF)V
+HPLandroid/widget/AbsListView;->reconcileSelectedPosition()I
+HPLandroid/widget/AbsListView;->recycleVelocityTracker()V
+HPLandroid/widget/AbsListView;->reportScrollStateChange(I)V
+HSPLandroid/widget/AbsListView;->requestLayout()V
+HSPLandroid/widget/AbsListView;->requestLayoutIfNecessary()V
+HSPLandroid/widget/AbsListView;->resetList()V
+HPLandroid/widget/AbsListView;->scrollIfNeeded(IILandroid/view/MotionEvent;)V
+HSPLandroid/widget/AbsListView;->setAdapter(Landroid/widget/ListAdapter;)V
+HSPLandroid/widget/AbsListView;->setCacheColorHint(I)V
+HSPLandroid/widget/AbsListView;->setChoiceMode(I)V
+HSPLandroid/widget/AbsListView;->setFastScrollAlwaysVisible(Z)V
+HSPLandroid/widget/AbsListView;->setFastScrollEnabled(Z)V
+HSPLandroid/widget/AbsListView;->setFastScrollStyle(I)V
+HSPLandroid/widget/AbsListView;->setFrame(IIII)Z
+HPLandroid/widget/AbsListView;->setItemChecked(IZ)V
+HSPLandroid/widget/AbsListView;->setItemViewLayoutParams(Landroid/view/View;I)V
+HSPLandroid/widget/AbsListView;->setScrollingCacheEnabled(Z)V
+HPLandroid/widget/AbsListView;->setSelectionFromTop(II)V
+HPLandroid/widget/AbsListView;->setSelector(I)V
+HSPLandroid/widget/AbsListView;->setSelector(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/AbsListView;->setSmoothScrollbarEnabled(Z)V
+HSPLandroid/widget/AbsListView;->setStackFromBottom(Z)V
+HSPLandroid/widget/AbsListView;->setTextFilterEnabled(Z)V
+HSPLandroid/widget/AbsListView;->setTranscriptMode(I)V
+HSPLandroid/widget/AbsListView;->setVisibleRangeHint(II)V
+HPLandroid/widget/AbsListView;->shouldDisplayEdgeEffects()Z
+HSPLandroid/widget/AbsListView;->shouldShowSelector()Z
+HSPLandroid/widget/AbsListView;->startScrollIfNeeded(IILandroid/view/MotionEvent;)Z
+HSPLandroid/widget/AbsListView;->touchModeDrawsInPressedState()Z
+HPLandroid/widget/AbsListView;->trackMotionScroll(II)Z
+HPLandroid/widget/AbsListView;->updateOnScreenCheckedViews()V
+HSPLandroid/widget/AbsListView;->updateScrollIndicators()V
+HSPLandroid/widget/AbsListView;->updateSelectorState()V
+HSPLandroid/widget/AbsListView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HSPLandroid/widget/AbsSeekBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/AbsSeekBar;->applyThumbTint()V
+HSPLandroid/widget/AbsSeekBar;->applyTickMarkTint()V
+HPLandroid/widget/AbsSeekBar;->attemptClaimDrag()V
+HSPLandroid/widget/AbsSeekBar;->drawThumb(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/AbsSeekBar;->drawTickMarks(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/AbsSeekBar;->drawTrack(Landroid/graphics/Canvas;)V
+HPLandroid/widget/AbsSeekBar;->drawableHotspotChanged(FF)V
+HSPLandroid/widget/AbsSeekBar;->drawableStateChanged()V
+HSPLandroid/widget/AbsSeekBar;->getThumb()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/AbsSeekBar;->getThumbOffset()I
+HSPLandroid/widget/AbsSeekBar;->growRectTo(Landroid/graphics/Rect;I)V
+HSPLandroid/widget/AbsSeekBar;->jumpDrawablesToCurrentState()V
+HSPLandroid/widget/AbsSeekBar;->onDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/AbsSeekBar;->onMeasure(II)V
+HSPLandroid/widget/AbsSeekBar;->onResolveDrawables(I)V
+HSPLandroid/widget/AbsSeekBar;->onRtlPropertiesChanged(I)V
+HSPLandroid/widget/AbsSeekBar;->onSizeChanged(IIII)V
+HPLandroid/widget/AbsSeekBar;->onStartTrackingTouch()V
+HPLandroid/widget/AbsSeekBar;->onStopTrackingTouch()V
+HPLandroid/widget/AbsSeekBar;->onTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/widget/AbsSeekBar;->onVisualProgressChanged(IF)V
+HPLandroid/widget/AbsSeekBar;->setHotspot(FF)V
+HSPLandroid/widget/AbsSeekBar;->setKeyProgressIncrement(I)V
+HSPLandroid/widget/AbsSeekBar;->setMax(I)V
+HSPLandroid/widget/AbsSeekBar;->setMin(I)V
+HSPLandroid/widget/AbsSeekBar;->setSplitTrack(Z)V
+HSPLandroid/widget/AbsSeekBar;->setThumb(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/AbsSeekBar;->setThumbOffset(I)V
+HSPLandroid/widget/AbsSeekBar;->setThumbPos(ILandroid/graphics/drawable/Drawable;FI)V
+HPLandroid/widget/AbsSeekBar;->setThumbTintList(Landroid/content/res/ColorStateList;)V
+HSPLandroid/widget/AbsSeekBar;->setTickMark(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/widget/AbsSeekBar;->startDrag(Landroid/view/MotionEvent;)V
+HPLandroid/widget/AbsSeekBar;->trackTouchEvent(Landroid/view/MotionEvent;)V
+HSPLandroid/widget/AbsSeekBar;->updateGestureExclusionRects()V
+HSPLandroid/widget/AbsSeekBar;->updateThumbAndTrackPos(II)V
+HSPLandroid/widget/AbsSeekBar;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HSPLandroid/widget/AbsoluteLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/AbsoluteLayout;->onLayout(ZIIII)V
+HPLandroid/widget/ActionMenuPresenter$2;->onViewDetachedFromWindow(Landroid/view/View;)V
+HPLandroid/widget/ActionMenuPresenter;-><init>(Landroid/content/Context;)V
+HPLandroid/widget/ActionMenuPresenter;->dismissPopupMenus()Z
+HPLandroid/widget/ActionMenuPresenter;->filterLeftoverView(Landroid/view/ViewGroup;I)Z
+HPLandroid/widget/ActionMenuPresenter;->hideOverflowMenu()Z
+HPLandroid/widget/ActionMenuPresenter;->hideSubMenus()Z
+HPLandroid/widget/ActionMenuPresenter;->initForMenu(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;)V
+HPLandroid/widget/ActionMenuPresenter;->isOverflowMenuShowing()Z
+HPLandroid/widget/ActionMenuPresenter;->setExpandedActionViewsExclusive(Z)V
+HPLandroid/widget/ActionMenuPresenter;->setMenuView(Landroid/widget/ActionMenuView;)V
+HPLandroid/widget/ActionMenuPresenter;->shouldIncludeItem(ILcom/android/internal/view/menu/MenuItemImpl;)Z
+HPLandroid/widget/ActionMenuPresenter;->updateMenuView(Z)V
+HSPLandroid/widget/ActionMenuView;-><init>(Landroid/content/Context;)V
+HSPLandroid/widget/ActionMenuView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/widget/ActionMenuView;->dismissPopupMenus()V
+HPLandroid/widget/ActionMenuView;->hasDividerBeforeChildAt(I)Z
+HPLandroid/widget/ActionMenuView;->initialize(Lcom/android/internal/view/menu/MenuBuilder;)V
+HPLandroid/widget/ActionMenuView;->isOverflowMenuShowing()Z
+HPLandroid/widget/ActionMenuView;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HPLandroid/widget/ActionMenuView;->onDetachedFromWindow()V
+HPLandroid/widget/ActionMenuView;->onMeasure(II)V
+HPLandroid/widget/ActionMenuView;->peekMenu()Lcom/android/internal/view/menu/MenuBuilder;
+HPLandroid/widget/ActionMenuView;->setMenuCallbacks(Lcom/android/internal/view/menu/MenuPresenter$Callback;Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
+HPLandroid/widget/ActionMenuView;->setOnMenuItemClickListener(Landroid/widget/ActionMenuView$OnMenuItemClickListener;)V
+HPLandroid/widget/ActionMenuView;->setOverflowReserved(Z)V
+HPLandroid/widget/ActionMenuView;->setPopupTheme(I)V
+HPLandroid/widget/ActionMenuView;->setPresenter(Landroid/widget/ActionMenuPresenter;)V
+HSPLandroid/widget/AdapterView$AdapterDataSetObserver;-><init>(Landroid/widget/AdapterView;)V
+HPLandroid/widget/AdapterView$AdapterDataSetObserver;->onChanged()V
+HSPLandroid/widget/AdapterView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/AdapterView;->checkFocus()V
+HSPLandroid/widget/AdapterView;->checkSelectionChanged()V
+HPLandroid/widget/AdapterView;->dispatchSaveInstanceState(Landroid/util/SparseArray;)V
+HSPLandroid/widget/AdapterView;->getItemIdAtPosition(I)J
+HPLandroid/widget/AdapterView;->getSelectedItemId()J
+HPLandroid/widget/AdapterView;->onProvideAutofillStructure(Landroid/view/ViewStructure;I)V
+HPLandroid/widget/AdapterView;->onProvideStructure(Landroid/view/ViewStructure;II)V
+HSPLandroid/widget/AdapterView;->performItemClick(Landroid/view/View;IJ)Z
+HSPLandroid/widget/AdapterView;->rememberSyncState()V
+HPLandroid/widget/AdapterView;->setEmptyView(Landroid/view/View;)V
+HPLandroid/widget/AdapterView;->setFocusable(I)V
+HSPLandroid/widget/AdapterView;->setFocusableInTouchMode(Z)V
+HSPLandroid/widget/AdapterView;->setNextSelectedPositionInt(I)V
+HSPLandroid/widget/AdapterView;->setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V
+HSPLandroid/widget/AdapterView;->setSelectedPositionInt(I)V
+HPLandroid/widget/AdapterView;->updateEmptyStatus(Z)V
+HPLandroid/widget/AutoCompleteTextView$DropDownItemClickListener;-><init>(Landroid/widget/AutoCompleteTextView;)V
+HPLandroid/widget/AutoCompleteTextView$DropDownItemClickListener;-><init>(Landroid/widget/AutoCompleteTextView;Landroid/widget/AutoCompleteTextView$1;)V
+HPLandroid/widget/AutoCompleteTextView$MyWatcher;-><init>(Landroid/widget/AutoCompleteTextView;)V
+HPLandroid/widget/AutoCompleteTextView$MyWatcher;-><init>(Landroid/widget/AutoCompleteTextView;Landroid/widget/AutoCompleteTextView$1;)V
+HPLandroid/widget/AutoCompleteTextView$MyWatcher;->afterTextChanged(Landroid/text/Editable;)V
+HPLandroid/widget/AutoCompleteTextView$MyWatcher;->beforeTextChanged(Ljava/lang/CharSequence;III)V
+HPLandroid/widget/AutoCompleteTextView$MyWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V
+HPLandroid/widget/AutoCompleteTextView$PassThroughClickListener;-><init>(Landroid/widget/AutoCompleteTextView;)V
+HPLandroid/widget/AutoCompleteTextView$PassThroughClickListener;-><init>(Landroid/widget/AutoCompleteTextView;Landroid/widget/AutoCompleteTextView$1;)V
+HPLandroid/widget/AutoCompleteTextView$PassThroughClickListener;->access$302(Landroid/widget/AutoCompleteTextView$PassThroughClickListener;Landroid/view/View$OnClickListener;)Landroid/view/View$OnClickListener;
+HPLandroid/widget/AutoCompleteTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/widget/AutoCompleteTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HPLandroid/widget/AutoCompleteTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/AutoCompleteTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;IILandroid/content/res/Resources$Theme;)V
+HPLandroid/widget/AutoCompleteTextView;->access$500(Landroid/widget/AutoCompleteTextView;)Z
+HPLandroid/widget/AutoCompleteTextView;->dismissDropDown()V
+HPLandroid/widget/AutoCompleteTextView;->doAfterTextChanged()V
+HPLandroid/widget/AutoCompleteTextView;->doBeforeTextChanged()V
+HPLandroid/widget/AutoCompleteTextView;->enoughToFilter()Z
+HPLandroid/widget/AutoCompleteTextView;->getDropDownAnchor()I
+HPLandroid/widget/AutoCompleteTextView;->getDropDownBackground()Landroid/graphics/drawable/Drawable;
+HPLandroid/widget/AutoCompleteTextView;->getThreshold()I
+HPLandroid/widget/AutoCompleteTextView;->isPopupShowing()Z
+HPLandroid/widget/AutoCompleteTextView;->onAttachedToWindow()V
+HPLandroid/widget/AutoCompleteTextView;->onDetachedFromWindow()V
+HPLandroid/widget/AutoCompleteTextView;->onFocusChanged(ZILandroid/graphics/Rect;)V
+HPLandroid/widget/AutoCompleteTextView;->onKeyPreIme(ILandroid/view/KeyEvent;)Z
+HPLandroid/widget/AutoCompleteTextView;->onWindowFocusChanged(Z)V
+HPLandroid/widget/AutoCompleteTextView;->performValidation()V
+HPLandroid/widget/AutoCompleteTextView;->refreshAutoCompleteResults()V
+HPLandroid/widget/AutoCompleteTextView;->setCompletionHint(Ljava/lang/CharSequence;)V
+HPLandroid/widget/AutoCompleteTextView;->setDropDownAnimationStyle(I)V
+HPLandroid/widget/AutoCompleteTextView;->setDropDownHorizontalOffset(I)V
+HPLandroid/widget/AutoCompleteTextView;->setDropDownWidth(I)V
+HPLandroid/widget/AutoCompleteTextView;->setFrame(IIII)Z
+HPLandroid/widget/AutoCompleteTextView;->setOnClickListener(Landroid/view/View$OnClickListener;)V
+HPLandroid/widget/AutoCompleteTextView;->setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V
+HPLandroid/widget/AutoCompleteTextView;->setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V
+HPLandroid/widget/AutoCompleteTextView;->setThreshold(I)V
+HSPLandroid/widget/BaseAdapter;-><init>()V
+HPLandroid/widget/BaseAdapter;->areAllItemsEnabled()Z
+HPLandroid/widget/BaseAdapter;->getAutofillOptions()[Ljava/lang/CharSequence;
+HSPLandroid/widget/BaseAdapter;->getItemViewType(I)I
+HSPLandroid/widget/BaseAdapter;->getViewTypeCount()I
+HSPLandroid/widget/BaseAdapter;->hasStableIds()Z
+HSPLandroid/widget/BaseAdapter;->isEnabled(I)Z
+HSPLandroid/widget/BaseAdapter;->notifyDataSetChanged()V
+HSPLandroid/widget/BaseAdapter;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
+HSPLandroid/widget/BaseAdapter;->unregisterDataSetObserver(Landroid/database/DataSetObserver;)V
+HPLandroid/widget/Button;-><init>(Landroid/content/Context;)V
HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HPLandroid/widget/Button;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/Button;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HSPLandroid/widget/CheckBox;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/CheckBox;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/CheckedTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/CheckedTextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/CheckedTextView;->applyCheckMarkTint()V
+HSPLandroid/widget/CheckedTextView;->drawableStateChanged()V
+HSPLandroid/widget/CheckedTextView;->internalSetPadding(IIII)V
+HSPLandroid/widget/CheckedTextView;->isCheckMarkAtStart()Z
+HSPLandroid/widget/CheckedTextView;->isChecked()Z
+HSPLandroid/widget/CheckedTextView;->jumpDrawablesToCurrentState()V
+HSPLandroid/widget/CheckedTextView;->onCreateDrawableState(I)[I
+HSPLandroid/widget/CheckedTextView;->onDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/CheckedTextView;->onRtlPropertiesChanged(I)V
+HSPLandroid/widget/CheckedTextView;->setBasePadding(Z)V
+HSPLandroid/widget/CheckedTextView;->setCheckMarkDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/CheckedTextView;->setCheckMarkDrawableInternal(Landroid/graphics/drawable/Drawable;I)V
+HSPLandroid/widget/CheckedTextView;->setChecked(Z)V
+HSPLandroid/widget/CheckedTextView;->setVisibility(I)V
+HSPLandroid/widget/CheckedTextView;->updatePadding()V
+HPLandroid/widget/Chronometer$1;->run()V
+HPLandroid/widget/Chronometer;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/widget/Chronometer;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/Chronometer;->access$000(Landroid/widget/Chronometer;)Z
+HPLandroid/widget/Chronometer;->access$100(Landroid/widget/Chronometer;J)V
+HPLandroid/widget/Chronometer;->access$200(Landroid/widget/Chronometer;)Ljava/lang/Runnable;
+HPLandroid/widget/Chronometer;->dispatchChronometerTick()V
+HPLandroid/widget/Chronometer;->onDetachedFromWindow()V
+HPLandroid/widget/Chronometer;->onVisibilityChanged(Landroid/view/View;I)V
+HPLandroid/widget/Chronometer;->onWindowVisibilityChanged(I)V
+HPLandroid/widget/Chronometer;->setBase(J)V
+HPLandroid/widget/Chronometer;->setCountDown(Z)V
+HPLandroid/widget/Chronometer;->setFormat(Ljava/lang/String;)V
+HPLandroid/widget/Chronometer;->setStarted(Z)V
+HPLandroid/widget/Chronometer;->updateRunning()V
+HPLandroid/widget/Chronometer;->updateText(J)V
+HSPLandroid/widget/CompoundButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/CompoundButton;->applyButtonTint()V
+HPLandroid/widget/CompoundButton;->drawableHotspotChanged(FF)V
+HSPLandroid/widget/CompoundButton;->drawableStateChanged()V
+HSPLandroid/widget/CompoundButton;->getAutofillType()I
+HSPLandroid/widget/CompoundButton;->getButtonDrawable()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/CompoundButton;->getButtonStateDescription()Ljava/lang/CharSequence;
+HSPLandroid/widget/CompoundButton;->getCompoundPaddingLeft()I
+HSPLandroid/widget/CompoundButton;->getCompoundPaddingRight()I
+HSPLandroid/widget/CompoundButton;->getHorizontalOffsetForDrawables()I
+HSPLandroid/widget/CompoundButton;->isChecked()Z
+HSPLandroid/widget/CompoundButton;->jumpDrawablesToCurrentState()V
+HSPLandroid/widget/CompoundButton;->onCreateDrawableState(I)[I
+HSPLandroid/widget/CompoundButton;->onDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/CompoundButton;->onResolveDrawables(I)V
+HPLandroid/widget/CompoundButton;->onSaveInstanceState()Landroid/os/Parcelable;
+HSPLandroid/widget/CompoundButton;->setButtonDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/CompoundButton;->setChecked(Z)V
+HSPLandroid/widget/CompoundButton;->setDefaultStateDescritption()V
+HSPLandroid/widget/CompoundButton;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
HSPLandroid/widget/EdgeEffect;-><init>(Landroid/content/Context;)V
+HPLandroid/widget/EdgeEffect;->draw(Landroid/graphics/Canvas;)Z
+HSPLandroid/widget/EdgeEffect;->finish()V
+HSPLandroid/widget/EdgeEffect;->isFinished()Z
+HPLandroid/widget/EdgeEffect;->onAbsorb(I)V
+HPLandroid/widget/EdgeEffect;->onPull(F)V
+HPLandroid/widget/EdgeEffect;->onPull(FF)V
+HSPLandroid/widget/EdgeEffect;->onRelease()V
+HSPLandroid/widget/EdgeEffect;->setSize(II)V
+HPLandroid/widget/EdgeEffect;->update()V
+HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HPLandroid/widget/EditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/EditText;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HSPLandroid/widget/EditText;->getDefaultEditable()Z
+HSPLandroid/widget/EditText;->getDefaultMovementMethod()Landroid/text/method/MovementMethod;
+HSPLandroid/widget/EditText;->getFreezesText()Z
+HSPLandroid/widget/EditText;->getText()Landroid/text/Editable;
+HSPLandroid/widget/EditText;->getText()Ljava/lang/CharSequence;
+HSPLandroid/widget/EditText;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)V
+HPLandroid/widget/EditText;->setSelection(I)V
+HPLandroid/widget/EditText;->setSelection(II)V
+HSPLandroid/widget/EditText;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V
+HSPLandroid/widget/EditText;->supportsAutoSizeText()Z
+HSPLandroid/widget/Editor$1;->run()V
+HSPLandroid/widget/Editor$2;->onDraw()V
+HPLandroid/widget/Editor$Blink;->cancel()V
+HPLandroid/widget/Editor$Blink;->run()V
+HPLandroid/widget/Editor$Blink;->uncancel()V
+HSPLandroid/widget/Editor$CursorAnchorInfoNotifier;->updatePosition(IIZZ)V
+HPLandroid/widget/Editor$EditOperation;-><init>(Landroid/widget/Editor;Ljava/lang/String;ILjava/lang/String;Z)V
+HPLandroid/widget/Editor$EditOperation;->commit()V
+HPLandroid/widget/Editor$EditOperation;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/widget/Editor$InsertionPointCursorController;->hide()V
+HPLandroid/widget/Editor$InsertionPointCursorController;->isActive()Z
+HPLandroid/widget/Editor$InsertionPointCursorController;->isCursorBeingModified()Z
+HPLandroid/widget/Editor$InsertionPointCursorController;->onDetached()V
HSPLandroid/widget/Editor$MagnifierMotionAnimator;-><init>(Landroid/widget/Magnifier;)V
+HSPLandroid/widget/Editor$PositionListener;->addSubscriber(Landroid/widget/Editor$TextViewPositionListener;Z)V
+HSPLandroid/widget/Editor$PositionListener;->onPreDraw()Z
+HSPLandroid/widget/Editor$PositionListener;->removeSubscriber(Landroid/widget/Editor$TextViewPositionListener;)V
+HSPLandroid/widget/Editor$PositionListener;->updatePosition()V
HSPLandroid/widget/Editor$ProcessTextIntentActionsHandler;-><init>(Landroid/widget/Editor;)V
+HPLandroid/widget/Editor$SelectionModifierCursorController;->getMinTouchOffset()I
+HPLandroid/widget/Editor$SelectionModifierCursorController;->isCursorBeingModified()Z
+HPLandroid/widget/Editor$SelectionModifierCursorController;->isDragAcceleratorActive()Z
+HPLandroid/widget/Editor$SelectionModifierCursorController;->isSelectionStartDragged()Z
+HPLandroid/widget/Editor$SelectionModifierCursorController;->onDetached()V
+HPLandroid/widget/Editor$SelectionModifierCursorController;->onTouchEvent(Landroid/view/MotionEvent;)V
+HPLandroid/widget/Editor$SelectionModifierCursorController;->resetDragAcceleratorState()V
+HPLandroid/widget/Editor$SelectionModifierCursorController;->resetTouchOffsets()V
+HPLandroid/widget/Editor$SelectionModifierCursorController;->updateSelection(Landroid/view/MotionEvent;)V
+HSPLandroid/widget/Editor$SpanController;->hide()V
HSPLandroid/widget/Editor$SpanController;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HSPLandroid/widget/Editor$SpanController;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
+HSPLandroid/widget/Editor$SpanController;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HSPLandroid/widget/Editor$TextRenderNode;->needsRecord()Z
+HPLandroid/widget/Editor$UndoInputFilter;->beginBatchEdit()V
+HPLandroid/widget/Editor$UndoInputFilter;->canUndoEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Z
+HPLandroid/widget/Editor$UndoInputFilter;->endBatchEdit()V
+HPLandroid/widget/Editor$UndoInputFilter;->filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;
+HPLandroid/widget/Editor$UndoInputFilter;->handleEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;IIZ)V
+HPLandroid/widget/Editor$UndoInputFilter;->recordEdit(Landroid/widget/Editor$EditOperation;I)V
+HSPLandroid/widget/Editor$UndoInputFilter;->restoreInstanceState(Landroid/os/Parcel;)V
+HSPLandroid/widget/Editor$UndoInputFilter;->saveInstanceState(Landroid/os/Parcel;)V
HSPLandroid/widget/Editor;-><init>(Landroid/widget/TextView;)V
+HPLandroid/widget/Editor;->access$2200(Landroid/widget/Editor;)Z
+HPLandroid/widget/Editor;->access$300(Landroid/widget/Editor;)Landroid/widget/TextView;
+HPLandroid/widget/Editor;->access$6800(Landroid/widget/Editor;)Landroid/widget/EditorTouchState;
HSPLandroid/widget/Editor;->addSpanWatchers(Landroid/text/Spannable;)V
HSPLandroid/widget/Editor;->adjustInputType(ZZZZ)V
+HPLandroid/widget/Editor;->beginBatchEdit()V
+HPLandroid/widget/Editor;->clampHorizontalPosition(Landroid/graphics/drawable/Drawable;F)I
+HSPLandroid/widget/Editor;->createInputContentTypeIfNeeded()V
+HPLandroid/widget/Editor;->createInputMethodStateIfNeeded()V
+HSPLandroid/widget/Editor;->discardTextDisplayLists()V
+HPLandroid/widget/Editor;->downgradeEasyCorrectionSpans()V
+HSPLandroid/widget/Editor;->drawHardwareAccelerated(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
+HSPLandroid/widget/Editor;->drawHardwareAcceleratedInner(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I[I[IIII)I
+HPLandroid/widget/Editor;->endBatchEdit()V
+HSPLandroid/widget/Editor;->ensureEndedBatchEdit()V
+HSPLandroid/widget/Editor;->ensureNoSelectionIfNonSelectable()V
+HPLandroid/widget/Editor;->extractedTextModeWillBeStarted()Z
+HPLandroid/widget/Editor;->finishBatchEdit(Landroid/widget/Editor$InputMethodState;)V
HSPLandroid/widget/Editor;->forgetUndoRedo()V
+HSPLandroid/widget/Editor;->getAvailableDisplayListIndex([III)I
+HPLandroid/widget/Editor;->getInputMethodManager()Landroid/view/inputmethod/InputMethodManager;
+HPLandroid/widget/Editor;->getLastTapPosition()I
+HSPLandroid/widget/Editor;->getSelectionController()Landroid/widget/Editor$SelectionModifierCursorController;
+HSPLandroid/widget/Editor;->getTextActionMode()Landroid/view/ActionMode;
HSPLandroid/widget/Editor;->getTextView()Landroid/widget/TextView;
+HPLandroid/widget/Editor;->hasSelectionController()Z
+HSPLandroid/widget/Editor;->hideCursorAndSpanControllers()V
HSPLandroid/widget/Editor;->hideInsertionPointCursorController()V
HSPLandroid/widget/Editor;->invalidateTextDisplayList()V
+HPLandroid/widget/Editor;->loadCursorDrawable()V
+HSPLandroid/widget/Editor;->makeBlink()V
+HSPLandroid/widget/Editor;->onAttachedToWindow()V
+HSPLandroid/widget/Editor;->onDetachedFromWindow()V
+HSPLandroid/widget/Editor;->onDraw(Landroid/graphics/Canvas;Landroid/text/Layout;Landroid/graphics/Path;Landroid/graphics/Paint;I)V
+HPLandroid/widget/Editor;->onFocusChanged(ZI)V
+HPLandroid/widget/Editor;->onLocaleChanged()V
+HPLandroid/widget/Editor;->onScreenStateChanged(I)V
+HPLandroid/widget/Editor;->onTextOperationUserChanged()V
+HPLandroid/widget/Editor;->onTouchEvent(Landroid/view/MotionEvent;)V
+HSPLandroid/widget/Editor;->onWindowFocusChanged(Z)V
HSPLandroid/widget/Editor;->prepareCursorControllers()V
+HSPLandroid/widget/Editor;->refreshTextActionMode()V
+HPLandroid/widget/Editor;->reportExtractedText()Z
+HSPLandroid/widget/Editor;->restoreInstanceState(Landroid/os/ParcelableParcel;)V
+HSPLandroid/widget/Editor;->saveInstanceState()Landroid/os/ParcelableParcel;
HSPLandroid/widget/Editor;->sendOnTextChanged(III)V
+HSPLandroid/widget/Editor;->sendUpdateSelection()V
+HSPLandroid/widget/Editor;->setFrame()V
+HSPLandroid/widget/Editor;->shouldBlink()Z
+HPLandroid/widget/Editor;->shouldFilterOutTouchEvent(Landroid/view/MotionEvent;)Z
+HPLandroid/widget/Editor;->shouldRenderCursor()Z
HSPLandroid/widget/Editor;->stopTextActionMode()V
+HPLandroid/widget/Editor;->updateCursorPosition()V
+HPLandroid/widget/Editor;->updateCursorPosition(IIF)V
+HPLandroid/widget/Editor;->updateFloatingToolbarVisibility(Landroid/view/MotionEvent;)V
HSPLandroid/widget/Editor;->updateSpellCheckSpans(IIZ)V
+HSPLandroid/widget/EditorTouchState;-><init>()V
+HPLandroid/widget/EditorTouchState;->getLastDownX()F
+HPLandroid/widget/EditorTouchState;->getLastDownY()F
+HPLandroid/widget/EditorTouchState;->update(Landroid/view/MotionEvent;Landroid/view/ViewConfiguration;)V
+HPLandroid/widget/Filter;-><init>()V
+HPLandroid/widget/ForwardingListener;-><init>(Landroid/view/View;)V
HSPLandroid/widget/FrameLayout$LayoutParams;-><init>(II)V
+HSPLandroid/widget/FrameLayout$LayoutParams;-><init>(III)V
+HSPLandroid/widget/FrameLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+PLandroid/widget/FrameLayout$LayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V
HSPLandroid/widget/FrameLayout;-><init>(Landroid/content/Context;)V
HSPLandroid/widget/FrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
HSPLandroid/widget/FrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
HSPLandroid/widget/FrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
HSPLandroid/widget/FrameLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
+HSPLandroid/widget/FrameLayout;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
+HSPLandroid/widget/FrameLayout;->generateDefaultLayoutParams()Landroid/widget/FrameLayout$LayoutParams;
HSPLandroid/widget/FrameLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
HSPLandroid/widget/FrameLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/FrameLayout$LayoutParams;
HSPLandroid/widget/FrameLayout;->generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams;
+HPLandroid/widget/FrameLayout;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HPLandroid/widget/FrameLayout;->getPaddingBottomWithForeground()I
HSPLandroid/widget/FrameLayout;->getPaddingLeftWithForeground()I
HSPLandroid/widget/FrameLayout;->getPaddingRightWithForeground()I
+HPLandroid/widget/FrameLayout;->getPaddingTopWithForeground()I
HSPLandroid/widget/FrameLayout;->layoutChildren(IIIIZ)V
HSPLandroid/widget/FrameLayout;->onLayout(ZIIII)V
HSPLandroid/widget/FrameLayout;->onMeasure(II)V
HSPLandroid/widget/FrameLayout;->setForegroundGravity(I)V
+HPLandroid/widget/FrameLayout;->setMeasureAllChildren(Z)V
+HPLandroid/widget/FrameLayout;->shouldDelayChildPressedState()Z
+HPLandroid/widget/GridLayout$3;->getAlignmentValue(Landroid/view/View;II)I
+HPLandroid/widget/GridLayout$3;->getGravityOffset(Landroid/view/View;I)I
+HPLandroid/widget/GridLayout$7$1;->getOffset(Landroid/widget/GridLayout;Landroid/view/View;Landroid/widget/GridLayout$Alignment;IZ)I
+HPLandroid/widget/GridLayout$7$1;->include(II)V
+HPLandroid/widget/GridLayout$7$1;->reset()V
+HPLandroid/widget/GridLayout$7$1;->size(Z)I
+HPLandroid/widget/GridLayout$7;->getAlignmentValue(Landroid/view/View;II)I
+HPLandroid/widget/GridLayout$7;->getGravityOffset(Landroid/view/View;I)I
+HPLandroid/widget/GridLayout$Alignment;->getSizeInCell(Landroid/view/View;II)I
+HPLandroid/widget/GridLayout$Axis;->computeGroupBounds()V
+HPLandroid/widget/GridLayout$Axis;->computeLinks(Landroid/widget/GridLayout$PackedMap;Z)V
+HPLandroid/widget/GridLayout$Axis;->computeLocations([I)V
+HPLandroid/widget/GridLayout$Axis;->getGroupBounds()Landroid/widget/GridLayout$PackedMap;
+HPLandroid/widget/GridLayout$Axis;->getLocations()[I
+HPLandroid/widget/GridLayout$Axis;->getMeasure(I)I
+HPLandroid/widget/GridLayout$Axis;->layout(I)V
+HPLandroid/widget/GridLayout$Axis;->solve([Landroid/widget/GridLayout$Arc;[IZ)Z
+HPLandroid/widget/GridLayout$Bounds;->getOffset(Landroid/widget/GridLayout;Landroid/view/View;Landroid/widget/GridLayout$Alignment;IZ)I
+HPLandroid/widget/GridLayout$Bounds;->include(II)V
+HPLandroid/widget/GridLayout$Bounds;->reset()V
+HPLandroid/widget/GridLayout$Bounds;->size(Z)I
+HPLandroid/widget/GridLayout$LayoutParams;->hashCode()I
+HPLandroid/widget/GridLayout$PackedMap;->getValue(I)Ljava/lang/Object;
+HPLandroid/widget/GridLayout$Spec;->access$100(Landroid/widget/GridLayout$Spec;Z)Landroid/widget/GridLayout$Alignment;
+HPLandroid/widget/GridLayout$Spec;->hashCode()I
+HPLandroid/widget/GridLayout;->computeLayoutParamsHashCode()I
+HPLandroid/widget/GridLayout;->consistencyCheck()V
+HPLandroid/widget/GridLayout;->getDefaultMargin(Landroid/view/View;Landroid/widget/GridLayout$LayoutParams;ZZ)I
+HPLandroid/widget/GridLayout;->getLayoutParams(Landroid/view/View;)Landroid/widget/GridLayout$LayoutParams;
+HPLandroid/widget/GridLayout;->getMargin(Landroid/view/View;ZZ)I
+HPLandroid/widget/GridLayout;->getMargin1(Landroid/view/View;ZZ)I
+HPLandroid/widget/GridLayout;->getMeasurement(Landroid/view/View;Z)I
+HPLandroid/widget/GridLayout;->measureChildrenWithMargins(IIZ)V
+HPLandroid/widget/GridLayout;->onLayout(ZIIII)V
+HPLandroid/widget/GridLayout;->onMeasure(II)V
+HPLandroid/widget/GridLayout;->requestLayout()V
+HPLandroid/widget/HeaderViewListAdapter;-><init>(Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/widget/ListAdapter;)V
+HPLandroid/widget/HeaderViewListAdapter;->areAllItemsEnabled()Z
+HPLandroid/widget/HeaderViewListAdapter;->areAllListInfosSelectable(Ljava/util/ArrayList;)Z
+HPLandroid/widget/HeaderViewListAdapter;->getCount()I
+HPLandroid/widget/HeaderViewListAdapter;->getFootersCount()I
+HPLandroid/widget/HeaderViewListAdapter;->getHeadersCount()I
+HPLandroid/widget/HeaderViewListAdapter;->getItemId(I)J
+HPLandroid/widget/HeaderViewListAdapter;->getItemViewType(I)I
+HPLandroid/widget/HeaderViewListAdapter;->getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;
+HPLandroid/widget/HeaderViewListAdapter;->getViewTypeCount()I
+HPLandroid/widget/HeaderViewListAdapter;->hasStableIds()Z
+HPLandroid/widget/HeaderViewListAdapter;->isEnabled(I)Z
+HPLandroid/widget/HeaderViewListAdapter;->registerDataSetObserver(Landroid/database/DataSetObserver;)V
+HSPLandroid/widget/HorizontalScrollView$SavedState;-><init>(Landroid/os/Parcelable;)V
+HSPLandroid/widget/HorizontalScrollView$SavedState;->toString()Ljava/lang/String;
+HSPLandroid/widget/HorizontalScrollView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;)V
+HPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/HorizontalScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;)V
+HPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;I)V
+HSPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
+HPLandroid/widget/HorizontalScrollView;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+HPLandroid/widget/HorizontalScrollView;->computeHorizontalScrollOffset()I
+HPLandroid/widget/HorizontalScrollView;->computeHorizontalScrollRange()I
+HSPLandroid/widget/HorizontalScrollView;->computeScroll()V
+HSPLandroid/widget/HorizontalScrollView;->draw(Landroid/graphics/Canvas;)V
+HPLandroid/widget/HorizontalScrollView;->findFocusableViewInBounds(ZII)Landroid/view/View;
+HPLandroid/widget/HorizontalScrollView;->findFocusableViewInMyBounds(ZILandroid/view/View;)Landroid/view/View;
+HPLandroid/widget/HorizontalScrollView;->fling(I)V
+HPLandroid/widget/HorizontalScrollView;->getScrollRange()I
+HPLandroid/widget/HorizontalScrollView;->inChild(II)Z
+HPLandroid/widget/HorizontalScrollView;->initOrResetVelocityTracker()V
+HSPLandroid/widget/HorizontalScrollView;->initScrollView()V
+HPLandroid/widget/HorizontalScrollView;->initVelocityTrackerIfNotExists()V
+HSPLandroid/widget/HorizontalScrollView;->measureChildWithMargins(Landroid/view/View;IIII)V
+HPLandroid/widget/HorizontalScrollView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/widget/HorizontalScrollView;->onLayout(ZIIII)V
+HSPLandroid/widget/HorizontalScrollView;->onMeasure(II)V
+HPLandroid/widget/HorizontalScrollView;->onOverScrolled(IIZZ)V
+HPLandroid/widget/HorizontalScrollView;->onRequestFocusInDescendants(ILandroid/graphics/Rect;)Z
+HSPLandroid/widget/HorizontalScrollView;->onRestoreInstanceState(Landroid/os/Parcelable;)V
+HSPLandroid/widget/HorizontalScrollView;->onSaveInstanceState()Landroid/os/Parcelable;
+HSPLandroid/widget/HorizontalScrollView;->onSizeChanged(IIII)V
+HPLandroid/widget/HorizontalScrollView;->onTouchEvent(Landroid/view/MotionEvent;)Z
+HPLandroid/widget/HorizontalScrollView;->recycleVelocityTracker()V
+HSPLandroid/widget/HorizontalScrollView;->requestLayout()V
+HSPLandroid/widget/HorizontalScrollView;->scrollTo(II)V
+HSPLandroid/widget/HorizontalScrollView;->setFillViewport(Z)V
+HPLandroid/widget/HorizontalScrollView;->shouldDelayChildPressedState()Z
+HPLandroid/widget/HorizontalScrollView;->shouldDisplayEdgeEffects()Z
+HPLandroid/widget/HorizontalScrollView;->smoothScrollBy(II)V
+HPLandroid/widget/HorizontalScrollView;->smoothScrollTo(II)V
+HPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;)V
HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+PLandroid/widget/ImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/ImageButton;->onSetAlpha(I)Z
+HPLandroid/widget/ImageView$ImageDrawableCallback;-><init>(Landroid/widget/ImageView;Landroid/graphics/drawable/Drawable;Landroid/net/Uri;I)V
+HPLandroid/widget/ImageView$ImageDrawableCallback;->run()V
+HSPLandroid/widget/ImageView$ScaleType;->values()[Landroid/widget/ImageView$ScaleType;
HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;)V
HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
HSPLandroid/widget/ImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/ImageView;->access$002(Landroid/widget/ImageView;Landroid/net/Uri;)Landroid/net/Uri;
+HPLandroid/widget/ImageView;->access$102(Landroid/widget/ImageView;I)I
HSPLandroid/widget/ImageView;->applyImageTint()V
+HPLandroid/widget/ImageView;->clearColorFilter()V
HSPLandroid/widget/ImageView;->configureBounds()V
+HSPLandroid/widget/ImageView;->drawableHotspotChanged(FF)V
HSPLandroid/widget/ImageView;->drawableStateChanged()V
+HPLandroid/widget/ImageView;->getAccessibilityClassName()Ljava/lang/CharSequence;
HSPLandroid/widget/ImageView;->getBaseline()I
HSPLandroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable;
+HPLandroid/widget/ImageView;->getImageAlpha()I
+HPLandroid/widget/ImageView;->getImageMatrix()Landroid/graphics/Matrix;
+HSPLandroid/widget/ImageView;->getImageTintList()Landroid/content/res/ColorStateList;
+HSPLandroid/widget/ImageView;->getScaleType()Landroid/widget/ImageView$ScaleType;
HSPLandroid/widget/ImageView;->hasOverlappingRendering()Z
HSPLandroid/widget/ImageView;->initImageView()V
HSPLandroid/widget/ImageView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
@@ -8055,27 +28250,60 @@ HSPLandroid/widget/ImageView;->isOpaque()Z
HSPLandroid/widget/ImageView;->jumpDrawablesToCurrentState()V
HSPLandroid/widget/ImageView;->onAttachedToWindow()V
HSPLandroid/widget/ImageView;->onCreateDrawableState(I)[I
+HSPLandroid/widget/ImageView;->onDetachedFromWindow()V
HSPLandroid/widget/ImageView;->onDraw(Landroid/graphics/Canvas;)V
HSPLandroid/widget/ImageView;->onMeasure(II)V
HSPLandroid/widget/ImageView;->onRtlPropertiesChanged(I)V
HSPLandroid/widget/ImageView;->onVisibilityAggregated(Z)V
+HSPLandroid/widget/ImageView;->resizeFromDrawable()V
+HSPLandroid/widget/ImageView;->resolveAdjustedSize(III)I
HSPLandroid/widget/ImageView;->resolveUri()V
HSPLandroid/widget/ImageView;->setAdjustViewBounds(Z)V
+HSPLandroid/widget/ImageView;->setAlpha(I)V
+HPLandroid/widget/ImageView;->setColorFilter(I)V
+HPLandroid/widget/ImageView;->setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V
+HSPLandroid/widget/ImageView;->setColorFilter(Landroid/graphics/ColorFilter;)V
+HPLandroid/widget/ImageView;->setCropToPadding(Z)V
HSPLandroid/widget/ImageView;->setFrame(IIII)Z
+HSPLandroid/widget/ImageView;->setImageAlpha(I)V
+HSPLandroid/widget/ImageView;->setImageBitmap(Landroid/graphics/Bitmap;)V
HSPLandroid/widget/ImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/widget/ImageView;->setImageIcon(Landroid/graphics/drawable/Icon;)V
+HPLandroid/widget/ImageView;->setImageIconAsync(Landroid/graphics/drawable/Icon;)Ljava/lang/Runnable;
+HPLandroid/widget/ImageView;->setImageLevel(I)V
+HSPLandroid/widget/ImageView;->setImageMatrix(Landroid/graphics/Matrix;)V
+HSPLandroid/widget/ImageView;->setImageResource(I)V
+HPLandroid/widget/ImageView;->setImageResourceAsync(I)Ljava/lang/Runnable;
+HPLandroid/widget/ImageView;->setImageTintBlendMode(Landroid/graphics/BlendMode;)V
HSPLandroid/widget/ImageView;->setImageTintList(Landroid/content/res/ColorStateList;)V
+HPLandroid/widget/ImageView;->setImageTintMode(Landroid/graphics/PorterDuff$Mode;)V
HSPLandroid/widget/ImageView;->setMaxHeight(I)V
HSPLandroid/widget/ImageView;->setMaxWidth(I)V
HSPLandroid/widget/ImageView;->setScaleType(Landroid/widget/ImageView$ScaleType;)V
+HSPLandroid/widget/ImageView;->setSelected(Z)V
HSPLandroid/widget/ImageView;->setVisibility(I)V
HSPLandroid/widget/ImageView;->updateDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ImageView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(II)V
+HPLandroid/widget/LinearLayout$LayoutParams;-><init>(IIF)V
+HSPLandroid/widget/LinearLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/widget/LinearLayout$LayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V
+HPLandroid/widget/LinearLayout$LayoutParams;-><init>(Landroid/view/ViewGroup$MarginLayoutParams;)V
HSPLandroid/widget/LinearLayout;-><init>(Landroid/content/Context;)V
HSPLandroid/widget/LinearLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
HSPLandroid/widget/LinearLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
HSPLandroid/widget/LinearLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/LinearLayout;->allViewsAreGoneBefore(I)Z
HSPLandroid/widget/LinearLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
+HSPLandroid/widget/LinearLayout;->forceUniformHeight(II)V
+HSPLandroid/widget/LinearLayout;->forceUniformWidth(II)V
+HSPLandroid/widget/LinearLayout;->generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;
+HSPLandroid/widget/LinearLayout;->generateDefaultLayoutParams()Landroid/widget/LinearLayout$LayoutParams;
HSPLandroid/widget/LinearLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
HSPLandroid/widget/LinearLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/LinearLayout$LayoutParams;
+HSPLandroid/widget/LinearLayout;->generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams;
+HSPLandroid/widget/LinearLayout;->generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/widget/LinearLayout$LayoutParams;
+HPLandroid/widget/LinearLayout;->getAccessibilityClassName()Ljava/lang/CharSequence;
HSPLandroid/widget/LinearLayout;->getBaseline()I
HSPLandroid/widget/LinearLayout;->getChildrenSkipCount(Landroid/view/View;I)I
HSPLandroid/widget/LinearLayout;->getLocationOffset(Landroid/view/View;)I
@@ -8097,6 +28325,70 @@ HSPLandroid/widget/LinearLayout;->setChildFrame(Landroid/view/View;IIII)V
HSPLandroid/widget/LinearLayout;->setDividerDrawable(Landroid/graphics/drawable/Drawable;)V
HSPLandroid/widget/LinearLayout;->setGravity(I)V
HSPLandroid/widget/LinearLayout;->setOrientation(I)V
+HPLandroid/widget/LinearLayout;->shouldDelayChildPressedState()Z
+HPLandroid/widget/ListPopupWindow$ListSelectorHider;-><init>(Landroid/widget/ListPopupWindow;)V
+HPLandroid/widget/ListPopupWindow$ListSelectorHider;-><init>(Landroid/widget/ListPopupWindow;Landroid/widget/ListPopupWindow$1;)V
+HPLandroid/widget/ListPopupWindow$PopupScrollListener;-><init>(Landroid/widget/ListPopupWindow;)V
+HPLandroid/widget/ListPopupWindow$PopupScrollListener;-><init>(Landroid/widget/ListPopupWindow;Landroid/widget/ListPopupWindow$1;)V
+HPLandroid/widget/ListPopupWindow$PopupTouchInterceptor;-><init>(Landroid/widget/ListPopupWindow;)V
+HPLandroid/widget/ListPopupWindow$PopupTouchInterceptor;-><init>(Landroid/widget/ListPopupWindow;Landroid/widget/ListPopupWindow$1;)V
+HPLandroid/widget/ListPopupWindow$ResizePopupRunnable;-><init>(Landroid/widget/ListPopupWindow;)V
+HPLandroid/widget/ListPopupWindow$ResizePopupRunnable;-><init>(Landroid/widget/ListPopupWindow;Landroid/widget/ListPopupWindow$1;)V
+HPLandroid/widget/ListPopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/ListPopupWindow;->dismiss()V
+HPLandroid/widget/ListPopupWindow;->getBackground()Landroid/graphics/drawable/Drawable;
+HPLandroid/widget/ListPopupWindow;->isDropDownAlwaysVisible()Z
+HPLandroid/widget/ListPopupWindow;->isShowing()Z
+HPLandroid/widget/ListPopupWindow;->removePromptView()V
+HPLandroid/widget/ListPopupWindow;->setAnimationStyle(I)V
+HPLandroid/widget/ListPopupWindow;->setHeight(I)V
+HPLandroid/widget/ListPopupWindow;->setHorizontalOffset(I)V
+HPLandroid/widget/ListPopupWindow;->setListSelector(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/widget/ListPopupWindow;->setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V
+HPLandroid/widget/ListPopupWindow;->setPromptPosition(I)V
+HPLandroid/widget/ListPopupWindow;->setPromptView(Landroid/view/View;)V
+HPLandroid/widget/ListPopupWindow;->setSoftInputMode(I)V
+HPLandroid/widget/ListPopupWindow;->setWidth(I)V
+HPLandroid/widget/ListView$FixedViewInfo;-><init>(Landroid/widget/ListView;)V
+HPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/widget/ListView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/ListView;->addHeaderView(Landroid/view/View;)V
+HPLandroid/widget/ListView;->addHeaderView(Landroid/view/View;Ljava/lang/Object;Z)V
+HPLandroid/widget/ListView;->adjustViewsUpOrDown()V
+HPLandroid/widget/ListView;->clearRecycledState(Ljava/util/ArrayList;)V
+HPLandroid/widget/ListView;->correctTooHigh(I)V
+HPLandroid/widget/ListView;->dispatchDraw(Landroid/graphics/Canvas;)V
+HPLandroid/widget/ListView;->drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z
+HPLandroid/widget/ListView;->fillDown(II)Landroid/view/View;
+HPLandroid/widget/ListView;->fillFromTop(I)Landroid/view/View;
+HPLandroid/widget/ListView;->fillSpecific(II)Landroid/view/View;
+HPLandroid/widget/ListView;->fillUp(II)Landroid/view/View;
+HPLandroid/widget/ListView;->findMotionRow(I)I
+HPLandroid/widget/ListView;->findViewInHeadersOrFooters(Ljava/util/ArrayList;I)Landroid/view/View;
+HPLandroid/widget/ListView;->findViewTraversal(I)Landroid/view/View;
+HPLandroid/widget/ListView;->getAdapter()Landroid/widget/Adapter;
+HPLandroid/widget/ListView;->getAdapter()Landroid/widget/ListAdapter;
+HPLandroid/widget/ListView;->getHeaderViewsCount()I
+HPLandroid/widget/ListView;->isOpaque()Z
+HPLandroid/widget/ListView;->layoutChildren()V
+HPLandroid/widget/ListView;->lookForSelectablePosition(IZ)I
+HPLandroid/widget/ListView;->makeAndAddView(IIZIZ)Landroid/view/View;
+HPLandroid/widget/ListView;->measureHeightOfChildren(IIIII)I
+HPLandroid/widget/ListView;->measureScrapChild(Landroid/view/View;III)V
+HPLandroid/widget/ListView;->onDetachedFromWindow()V
+HPLandroid/widget/ListView;->onFinishInflate()V
+HPLandroid/widget/ListView;->onMeasure(II)V
+HPLandroid/widget/ListView;->onSizeChanged(IIII)V
+HPLandroid/widget/ListView;->recycleOnMeasure()Z
+HPLandroid/widget/ListView;->removeUnusedFixedViews(Ljava/util/List;)V
+HPLandroid/widget/ListView;->resetList()V
+HPLandroid/widget/ListView;->setAdapter(Landroid/widget/ListAdapter;)V
+HPLandroid/widget/ListView;->setCacheColorHint(I)V
+HPLandroid/widget/ListView;->setDivider(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/widget/ListView;->setSelection(I)V
+HPLandroid/widget/ListView;->setupChild(Landroid/view/View;IIZIZZ)V
+HPLandroid/widget/ListView;->trackMotionScroll(II)Z
+HPLandroid/widget/ListView;->wrapHeaderListAdapterInternal(Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/widget/ListAdapter;)Landroid/widget/HeaderViewListAdapter;
HSPLandroid/widget/Magnifier$Builder;-><init>(Landroid/view/View;)V
HSPLandroid/widget/Magnifier$Builder;->access$002(Landroid/widget/Magnifier$Builder;I)I
HSPLandroid/widget/Magnifier$Builder;->access$1002(Landroid/widget/Magnifier$Builder;I)I
@@ -8116,33 +28408,178 @@ HSPLandroid/widget/Magnifier;-><clinit>()V
HSPLandroid/widget/Magnifier;-><init>(Landroid/widget/Magnifier$Builder;)V
HSPLandroid/widget/Magnifier;->createBuilderWithOldMagnifierDefaults(Landroid/view/View;)Landroid/widget/Magnifier$Builder;
HSPLandroid/widget/Magnifier;->getDeviceDefaultDialogCornerRadius(Landroid/content/Context;)F
+HSPLandroid/widget/Magnifier;->update()V
HSPLandroid/widget/OverScroller$SplineOverScroller;-><init>(Landroid/content/Context;)V
+PLandroid/widget/OverScroller$SplineOverScroller;->access$000(Landroid/widget/OverScroller$SplineOverScroller;)Z
+PLandroid/widget/OverScroller$SplineOverScroller;->access$002(Landroid/widget/OverScroller$SplineOverScroller;Z)Z
+PLandroid/widget/OverScroller$SplineOverScroller;->access$200(Landroid/widget/OverScroller$SplineOverScroller;)F
+PLandroid/widget/OverScroller$SplineOverScroller;->access$500(Landroid/widget/OverScroller$SplineOverScroller;)I
+HPLandroid/widget/OverScroller$SplineOverScroller;->adjustDuration(III)V
+PLandroid/widget/OverScroller$SplineOverScroller;->continueWhenFinished()Z
HSPLandroid/widget/OverScroller$SplineOverScroller;->finish()V
+HPLandroid/widget/OverScroller$SplineOverScroller;->fitOnBounceCurve(III)V
+PLandroid/widget/OverScroller$SplineOverScroller;->fling(IIIII)V
+HPLandroid/widget/OverScroller$SplineOverScroller;->getDeceleration(I)F
+PLandroid/widget/OverScroller$SplineOverScroller;->getSplineDeceleration(I)D
+PLandroid/widget/OverScroller$SplineOverScroller;->getSplineFlingDistance(I)D
+PLandroid/widget/OverScroller$SplineOverScroller;->getSplineFlingDuration(I)I
+HPLandroid/widget/OverScroller$SplineOverScroller;->onEdgeReached()V
+HPLandroid/widget/OverScroller$SplineOverScroller;->springback(III)Z
+HPLandroid/widget/OverScroller$SplineOverScroller;->startAfterEdge(IIII)V
+HPLandroid/widget/OverScroller$SplineOverScroller;->startBounceAfterEdge(III)V
+HSPLandroid/widget/OverScroller$SplineOverScroller;->startScroll(III)V
+HPLandroid/widget/OverScroller$SplineOverScroller;->startSpringback(III)V
+PLandroid/widget/OverScroller$SplineOverScroller;->update()Z
+HPLandroid/widget/OverScroller$SplineOverScroller;->updateScroll(F)V
+HSPLandroid/widget/OverScroller;-><init>(Landroid/content/Context;)V
HSPLandroid/widget/OverScroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;)V
+HSPLandroid/widget/OverScroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V
HSPLandroid/widget/OverScroller;->abortAnimation()V
+HSPLandroid/widget/OverScroller;->computeScrollOffset()Z
+PLandroid/widget/OverScroller;->fling(IIIIIIII)V
+PLandroid/widget/OverScroller;->fling(IIIIIIIIII)V
+PLandroid/widget/OverScroller;->forceFinished(Z)V
+HPLandroid/widget/OverScroller;->getCurrVelocity()F
+HPLandroid/widget/OverScroller;->getCurrX()I
+HPLandroid/widget/OverScroller;->getCurrY()I
+PLandroid/widget/OverScroller;->getDuration()I
+HPLandroid/widget/OverScroller;->getFinalX()I
+HPLandroid/widget/OverScroller;->getFinalY()I
+HSPLandroid/widget/OverScroller;->isFinished()Z
+HPLandroid/widget/OverScroller;->springBack(IIIIII)Z
+HSPLandroid/widget/OverScroller;->startScroll(IIII)V
+HSPLandroid/widget/OverScroller;->startScroll(IIIII)V
+HPLandroid/widget/PopupWindow$1;-><init>(Landroid/widget/PopupWindow;)V
+HPLandroid/widget/PopupWindow$2;-><init>(Landroid/widget/PopupWindow;)V
+HPLandroid/widget/PopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;II)V
+HPLandroid/widget/PopupWindow;-><init>(Landroid/view/View;IIZ)V
+HPLandroid/widget/PopupWindow;->dismiss()V
+HPLandroid/widget/PopupWindow;->getBackground()Landroid/graphics/drawable/Drawable;
+HPLandroid/widget/PopupWindow;->getTransition(I)Landroid/transition/Transition;
+HPLandroid/widget/PopupWindow;->isShowing()Z
+HPLandroid/widget/PopupWindow;->isTouchable()Z
+HPLandroid/widget/PopupWindow;->setAnimationStyle(I)V
+HPLandroid/widget/PopupWindow;->setAttachedInDecor(Z)V
+HPLandroid/widget/PopupWindow;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/widget/PopupWindow;->setContentView(Landroid/view/View;)V
+HPLandroid/widget/PopupWindow;->setEnterTransition(Landroid/transition/Transition;)V
+HPLandroid/widget/PopupWindow;->setExitTransition(Landroid/transition/Transition;)V
+HPLandroid/widget/PopupWindow;->setFocusable(Z)V
+HPLandroid/widget/PopupWindow;->setHeight(I)V
+HPLandroid/widget/PopupWindow;->setInputMethodMode(I)V
+HPLandroid/widget/PopupWindow;->setSoftInputMode(I)V
+HPLandroid/widget/PopupWindow;->setTouchable(Z)V
+HPLandroid/widget/PopupWindow;->setWidth(I)V
+HPLandroid/widget/ProgressBar$1;->get(Landroid/widget/ProgressBar;)Ljava/lang/Float;
+HPLandroid/widget/ProgressBar$1;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/widget/ProgressBar$1;->setValue(Landroid/widget/ProgressBar;F)V
+HPLandroid/widget/ProgressBar$1;->setValue(Ljava/lang/Object;F)V
+HPLandroid/widget/ProgressBar$ProgressTintInfo;-><init>()V
+HPLandroid/widget/ProgressBar$ProgressTintInfo;-><init>(Landroid/widget/ProgressBar$1;)V
+HPLandroid/widget/ProgressBar$RefreshData;->recycle()V
+HPLandroid/widget/ProgressBar$RefreshProgressRunnable;->run()V
+HSPLandroid/widget/ProgressBar$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/widget/ProgressBar;-><init>(Landroid/content/Context;)V
+HSPLandroid/widget/ProgressBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/ProgressBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/ProgressBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/ProgressBar;->access$100(Landroid/widget/ProgressBar;)Ljava/util/ArrayList;
+HPLandroid/widget/ProgressBar;->access$200(Landroid/widget/ProgressBar;IIZZZ)V
+HPLandroid/widget/ProgressBar;->access$302(Landroid/widget/ProgressBar;Z)Z
+HSPLandroid/widget/ProgressBar;->applyIndeterminateTint()V
+HSPLandroid/widget/ProgressBar;->applyPrimaryProgressTint()V
+HSPLandroid/widget/ProgressBar;->applyProgressBackgroundTint()V
+HSPLandroid/widget/ProgressBar;->applySecondaryProgressTint()V
+HSPLandroid/widget/ProgressBar;->doRefreshProgress(IIZZZ)V
+HSPLandroid/widget/ProgressBar;->drawTrack(Landroid/graphics/Canvas;)V
+HPLandroid/widget/ProgressBar;->drawableHotspotChanged(FF)V
+HSPLandroid/widget/ProgressBar;->drawableStateChanged()V
+HPLandroid/widget/ProgressBar;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HSPLandroid/widget/ProgressBar;->getCurrentDrawable()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/ProgressBar;->getIndeterminateDrawable()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/ProgressBar;->getMax()I
+HSPLandroid/widget/ProgressBar;->getMin()I
+HSPLandroid/widget/ProgressBar;->getProgress()I
+HSPLandroid/widget/ProgressBar;->getProgressDrawable()Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/ProgressBar;->initProgressBar()V
+HSPLandroid/widget/ProgressBar;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/widget/ProgressBar;->isIndeterminate()Z
+HSPLandroid/widget/ProgressBar;->jumpDrawablesToCurrentState()V
+HSPLandroid/widget/ProgressBar;->needsTileify(Landroid/graphics/drawable/Drawable;)Z
+HSPLandroid/widget/ProgressBar;->onAttachedToWindow()V
+HSPLandroid/widget/ProgressBar;->onDetachedFromWindow()V
+HSPLandroid/widget/ProgressBar;->onDraw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/ProgressBar;->onMeasure(II)V
+HSPLandroid/widget/ProgressBar;->onProgressRefresh(FZI)V
+HSPLandroid/widget/ProgressBar;->onResolveDrawables(I)V
+HSPLandroid/widget/ProgressBar;->onRestoreInstanceState(Landroid/os/Parcelable;)V
+HSPLandroid/widget/ProgressBar;->onSaveInstanceState()Landroid/os/Parcelable;
+HSPLandroid/widget/ProgressBar;->onSizeChanged(IIII)V
+HSPLandroid/widget/ProgressBar;->onVisibilityAggregated(Z)V
+HSPLandroid/widget/ProgressBar;->onVisualProgressChanged(IF)V
+HSPLandroid/widget/ProgressBar;->postInvalidate()V
+HSPLandroid/widget/ProgressBar;->refreshProgress(IIZZ)V
+HSPLandroid/widget/ProgressBar;->setIndeterminate(Z)V
+HSPLandroid/widget/ProgressBar;->setIndeterminateDrawable(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/widget/ProgressBar;->setIndeterminateTintBlendMode(Landroid/graphics/BlendMode;)V
+HPLandroid/widget/ProgressBar;->setIndeterminateTintList(Landroid/content/res/ColorStateList;)V
+HPLandroid/widget/ProgressBar;->setIndeterminateTintMode(Landroid/graphics/PorterDuff$Mode;)V
+HSPLandroid/widget/ProgressBar;->setInterpolator(Landroid/content/Context;I)V
+HSPLandroid/widget/ProgressBar;->setInterpolator(Landroid/view/animation/Interpolator;)V
+HSPLandroid/widget/ProgressBar;->setMax(I)V
+HSPLandroid/widget/ProgressBar;->setMin(I)V
+HSPLandroid/widget/ProgressBar;->setProgress(I)V
+HPLandroid/widget/ProgressBar;->setProgress(IZ)V
+HPLandroid/widget/ProgressBar;->setProgressBackgroundTintList(Landroid/content/res/ColorStateList;)V
+HSPLandroid/widget/ProgressBar;->setProgressDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ProgressBar;->setProgressInternal(IZZ)Z
+HPLandroid/widget/ProgressBar;->setProgressTintList(Landroid/content/res/ColorStateList;)V
+HSPLandroid/widget/ProgressBar;->setSecondaryProgress(I)V
+HSPLandroid/widget/ProgressBar;->setVisualProgress(IF)V
+HSPLandroid/widget/ProgressBar;->startAnimation()V
+HSPLandroid/widget/ProgressBar;->stopAnimation()V
+HSPLandroid/widget/ProgressBar;->swapCurrentDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ProgressBar;->updateDrawableBounds(II)V
+HSPLandroid/widget/ProgressBar;->updateDrawableState()V
+HSPLandroid/widget/ProgressBar;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HPLandroid/widget/RelativeLayout$DependencyGraph$Node;->acquire(Landroid/view/View;)Landroid/widget/RelativeLayout$DependencyGraph$Node;
+HSPLandroid/widget/RelativeLayout$DependencyGraph$Node;->release()V
HSPLandroid/widget/RelativeLayout$DependencyGraph;->add(Landroid/view/View;)V
HSPLandroid/widget/RelativeLayout$DependencyGraph;->clear()V
HSPLandroid/widget/RelativeLayout$DependencyGraph;->findRoots([I)Ljava/util/ArrayDeque;
HSPLandroid/widget/RelativeLayout$DependencyGraph;->getSortedViews([Landroid/view/View;[I)V
+HPLandroid/widget/RelativeLayout$LayoutParams;-><init>(II)V
HSPLandroid/widget/RelativeLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/widget/RelativeLayout$LayoutParams;-><init>(Landroid/view/ViewGroup$LayoutParams;)V
HSPLandroid/widget/RelativeLayout$LayoutParams;->access$100(Landroid/widget/RelativeLayout$LayoutParams;)I
HSPLandroid/widget/RelativeLayout$LayoutParams;->access$200(Landroid/widget/RelativeLayout$LayoutParams;)I
HSPLandroid/widget/RelativeLayout$LayoutParams;->access$300(Landroid/widget/RelativeLayout$LayoutParams;)I
+HSPLandroid/widget/RelativeLayout$LayoutParams;->access$302(Landroid/widget/RelativeLayout$LayoutParams;I)I
HSPLandroid/widget/RelativeLayout$LayoutParams;->access$400(Landroid/widget/RelativeLayout$LayoutParams;)I
+HSPLandroid/widget/RelativeLayout$LayoutParams;->access$402(Landroid/widget/RelativeLayout$LayoutParams;I)I
+HPLandroid/widget/RelativeLayout$LayoutParams;->addRule(I)V
+HPLandroid/widget/RelativeLayout$LayoutParams;->addRule(II)V
HSPLandroid/widget/RelativeLayout$LayoutParams;->getRules()[I
HSPLandroid/widget/RelativeLayout$LayoutParams;->getRules(I)[I
HSPLandroid/widget/RelativeLayout$LayoutParams;->hasRelativeRules()Z
+HPLandroid/widget/RelativeLayout$LayoutParams;->removeRule(I)V
HSPLandroid/widget/RelativeLayout$LayoutParams;->resolveLayoutDirection(I)V
HSPLandroid/widget/RelativeLayout$LayoutParams;->resolveRules(I)V
+HSPLandroid/widget/RelativeLayout;-><init>(Landroid/content/Context;)V
HSPLandroid/widget/RelativeLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
HSPLandroid/widget/RelativeLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
HSPLandroid/widget/RelativeLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
HSPLandroid/widget/RelativeLayout;->applyHorizontalSizeRules(Landroid/widget/RelativeLayout$LayoutParams;I[I)V
HSPLandroid/widget/RelativeLayout;->applyVerticalSizeRules(Landroid/widget/RelativeLayout$LayoutParams;II)V
+HPLandroid/widget/RelativeLayout;->centerHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;I)V
+HSPLandroid/widget/RelativeLayout;->centerVertical(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;I)V
HSPLandroid/widget/RelativeLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
HSPLandroid/widget/RelativeLayout;->compareLayoutPosition(Landroid/widget/RelativeLayout$LayoutParams;Landroid/widget/RelativeLayout$LayoutParams;)I
HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
HSPLandroid/widget/RelativeLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/widget/RelativeLayout$LayoutParams;
+HPLandroid/widget/RelativeLayout;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HPLandroid/widget/RelativeLayout;->getBaseline()I
HSPLandroid/widget/RelativeLayout;->getChildMeasureSpec(IIIIIIII)I
HSPLandroid/widget/RelativeLayout;->getRelatedView([II)Landroid/view/View;
HSPLandroid/widget/RelativeLayout;->getRelatedViewBaselineOffset([I)I
@@ -8151,80 +28588,460 @@ HSPLandroid/widget/RelativeLayout;->measureChild(Landroid/view/View;Landroid/wid
HSPLandroid/widget/RelativeLayout;->measureChildHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;II)V
HSPLandroid/widget/RelativeLayout;->onLayout(ZIIII)V
HSPLandroid/widget/RelativeLayout;->onMeasure(II)V
+HSPLandroid/widget/RelativeLayout;->positionAtEdge(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;I)V
HSPLandroid/widget/RelativeLayout;->positionChildHorizontal(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z
HSPLandroid/widget/RelativeLayout;->positionChildVertical(Landroid/view/View;Landroid/widget/RelativeLayout$LayoutParams;IZ)Z
HSPLandroid/widget/RelativeLayout;->requestLayout()V
+HPLandroid/widget/RelativeLayout;->shouldDelayChildPressedState()Z
HSPLandroid/widget/RelativeLayout;->sortChildren()V
+HPLandroid/widget/RemoteViews$1;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+PLandroid/widget/RemoteViews$2;->createFromParcel(Landroid/os/Parcel;)Landroid/widget/RemoteViews;
+PLandroid/widget/RemoteViews$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLandroid/widget/RemoteViews$Action;-><init>()V
+HPLandroid/widget/RemoteViews$Action;-><init>(Landroid/widget/RemoteViews$1;)V
+HSPLandroid/widget/RemoteViews$Action;->hasSameAppInfo(Landroid/content/pm/ApplicationInfo;)Z
+HPLandroid/widget/RemoteViews$Action;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
+HPLandroid/widget/RemoteViews$Action;->setBitmapCache(Landroid/widget/RemoteViews$BitmapCache;)V
+HPLandroid/widget/RemoteViews$AsyncApplyTask;-><init>(Landroid/widget/RemoteViews;Landroid/widget/RemoteViews;Landroid/view/ViewGroup;Landroid/content/Context;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;Landroid/view/View;)V
+HPLandroid/widget/RemoteViews$AsyncApplyTask;-><init>(Landroid/widget/RemoteViews;Landroid/widget/RemoteViews;Landroid/view/ViewGroup;Landroid/content/Context;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;Landroid/view/View;Landroid/widget/RemoteViews$1;)V
+HPLandroid/widget/RemoteViews$AsyncApplyTask;->access$1700(Landroid/widget/RemoteViews$AsyncApplyTask;)Landroid/view/View;
+HPLandroid/widget/RemoteViews$AsyncApplyTask;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
+HPLandroid/widget/RemoteViews$AsyncApplyTask;->doInBackground([Ljava/lang/Void;)Landroid/widget/RemoteViews$ViewTree;
+HPLandroid/widget/RemoteViews$AsyncApplyTask;->onCancel()V
+HPLandroid/widget/RemoteViews$AsyncApplyTask;->onPostExecute(Landroid/widget/RemoteViews$ViewTree;)V
+HPLandroid/widget/RemoteViews$AsyncApplyTask;->onPostExecute(Ljava/lang/Object;)V
+PLandroid/widget/RemoteViews$BitmapCache;-><init>(Landroid/os/Parcel;)V
+PLandroid/widget/RemoteViews$BitmapCache;->getBitmapForId(I)Landroid/graphics/Bitmap;
+HSPLandroid/widget/RemoteViews$BitmapCache;->getBitmapId(Landroid/graphics/Bitmap;)I
+HSPLandroid/widget/RemoteViews$BitmapCache;->writeBitmapsToParcel(Landroid/os/Parcel;I)V
+PLandroid/widget/RemoteViews$BitmapReflectionAction;-><init>(Landroid/widget/RemoteViews;Landroid/os/Parcel;)V
+HPLandroid/widget/RemoteViews$BitmapReflectionAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews$BitmapReflectionAction;->getActionTag()I
+HSPLandroid/widget/RemoteViews$BitmapReflectionAction;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/widget/RemoteViews$LayoutParamAction;-><init>(III)V
+HPLandroid/widget/RemoteViews$LayoutParamAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HPLandroid/widget/RemoteViews$MethodKey;->equals(Ljava/lang/Object;)Z
+HPLandroid/widget/RemoteViews$MethodKey;->hashCode()I
+HPLandroid/widget/RemoteViews$MethodKey;->set(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)V
+HPLandroid/widget/RemoteViews$ReflectionAction;-><init>(Landroid/widget/RemoteViews;ILjava/lang/String;ILjava/lang/Object;)V
+PLandroid/widget/RemoteViews$ReflectionAction;-><init>(Landroid/widget/RemoteViews;Landroid/os/Parcel;)V
+HPLandroid/widget/RemoteViews$ReflectionAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews$ReflectionAction;->getActionTag()I
+HPLandroid/widget/RemoteViews$ReflectionAction;->getParameterType()Ljava/lang/Class;
+HPLandroid/widget/RemoteViews$ReflectionAction;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
+HSPLandroid/widget/RemoteViews$ReflectionAction;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/widget/RemoteViews$RemoteResponse;-><init>()V
+PLandroid/widget/RemoteViews$RemoteResponse;->access$300(Landroid/widget/RemoteViews$RemoteResponse;Landroid/os/Parcel;)V
+PLandroid/widget/RemoteViews$RemoteResponse;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/widget/RemoteViews$RemoteResponse;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/widget/RemoteViews$RemoteViewsContextWrapper;->getPackageName()Ljava/lang/String;
+HPLandroid/widget/RemoteViews$RemoteViewsContextWrapper;->getResources()Landroid/content/res/Resources;
+HPLandroid/widget/RemoteViews$RemoteViewsContextWrapper;->getTheme()Landroid/content/res/Resources$Theme;
+HPLandroid/widget/RemoteViews$RunnableAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HPLandroid/widget/RemoteViews$RuntimeAction;-><init>(Landroid/widget/RemoteViews$1;)V
+HPLandroid/widget/RemoteViews$SetDrawableTint;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HPLandroid/widget/RemoteViews$SetIntTagAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+PLandroid/widget/RemoteViews$SetOnClickResponse;-><init>(Landroid/widget/RemoteViews;Landroid/os/Parcel;)V
+HPLandroid/widget/RemoteViews$SetOnClickResponse;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HSPLandroid/widget/RemoteViews$SetOnClickResponse;->getActionTag()I
+HSPLandroid/widget/RemoteViews$SetOnClickResponse;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/widget/RemoteViews$SetRemoteInputsAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HPLandroid/widget/RemoteViews$SetRippleDrawableColor;-><init>(Landroid/widget/RemoteViews;ILandroid/content/res/ColorStateList;)V
+HPLandroid/widget/RemoteViews$SetRippleDrawableColor;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HPLandroid/widget/RemoteViews$TextViewSizeAction;-><init>(Landroid/widget/RemoteViews;IIF)V
+HPLandroid/widget/RemoteViews$TextViewSizeAction;->getActionTag()I
+HPLandroid/widget/RemoteViews$TextViewSizeAction;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/widget/RemoteViews$ViewGroupActionAdd;->access$1800(Landroid/widget/RemoteViews$ViewGroupActionAdd;)I
+HPLandroid/widget/RemoteViews$ViewGroupActionAdd;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
+HPLandroid/widget/RemoteViews$ViewGroupActionRemove;->access$2100(Landroid/widget/RemoteViews$ViewGroupActionRemove;)I
+HPLandroid/widget/RemoteViews$ViewGroupActionRemove;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
+HPLandroid/widget/RemoteViews$ViewPaddingAction;-><init>(Landroid/widget/RemoteViews;IIIII)V
+HPLandroid/widget/RemoteViews$ViewPaddingAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+HPLandroid/widget/RemoteViews$ViewPaddingAction;->getActionTag()I
+HPLandroid/widget/RemoteViews$ViewPaddingAction;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/widget/RemoteViews$ViewTree;-><init>(Landroid/view/View;)V
+HPLandroid/widget/RemoteViews$ViewTree;-><init>(Landroid/view/View;Landroid/widget/RemoteViews$1;)V
+HPLandroid/widget/RemoteViews$ViewTree;->access$1400(Landroid/widget/RemoteViews$ViewTree;)Landroid/view/View;
+HPLandroid/widget/RemoteViews$ViewTree;->access$2002(Landroid/widget/RemoteViews$ViewTree;Ljava/util/ArrayList;)Ljava/util/ArrayList;
+HPLandroid/widget/RemoteViews$ViewTree;->addChild(Landroid/widget/RemoteViews$ViewTree;I)V
+HPLandroid/widget/RemoteViews$ViewTree;->addViewChild(Landroid/view/View;)V
+HPLandroid/widget/RemoteViews$ViewTree;->createTree()V
+HPLandroid/widget/RemoteViews$ViewTree;->findViewById(I)Landroid/view/View;
+HPLandroid/widget/RemoteViews$ViewTree;->findViewTreeById(I)Landroid/widget/RemoteViews$ViewTree;
+HPLandroid/widget/RemoteViews$ViewTree;->replaceView(Landroid/view/View;)V
+PLandroid/widget/RemoteViews;-><init>(Landroid/os/Parcel;)V
+HPLandroid/widget/RemoteViews;-><init>(Landroid/os/Parcel;Landroid/widget/RemoteViews$BitmapCache;Landroid/content/pm/ApplicationInfo;ILjava/util/Map;)V
+HSPLandroid/widget/RemoteViews;-><init>(Ljava/lang/String;I)V
+HPLandroid/widget/RemoteViews;->access$1500(Landroid/widget/RemoteViews;Landroid/content/Context;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$AsyncApplyTask;
+HPLandroid/widget/RemoteViews;->access$2400(Landroid/widget/RemoteViews;Landroid/content/Context;Landroid/widget/RemoteViews;Landroid/view/ViewGroup;)Landroid/view/View;
+HPLandroid/widget/RemoteViews;->access$2600(Landroid/widget/RemoteViews;)Ljava/util/ArrayList;
+PLandroid/widget/RemoteViews;->access$800(Landroid/widget/RemoteViews;)Landroid/widget/RemoteViews$BitmapCache;
+HPLandroid/widget/RemoteViews;->addAction(Landroid/widget/RemoteViews$Action;)V
+HPLandroid/widget/RemoteViews;->addView(ILandroid/widget/RemoteViews;)V
+HPLandroid/widget/RemoteViews;->apply(Landroid/content/Context;Landroid/view/ViewGroup;)Landroid/view/View;
+HPLandroid/widget/RemoteViews;->apply(Landroid/content/Context;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/view/View;
+HPLandroid/widget/RemoteViews;->applyAsync(Landroid/content/Context;Landroid/view/ViewGroup;Ljava/util/concurrent/Executor;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/os/CancellationSignal;
+HPLandroid/widget/RemoteViews;->getActionFromParcel(Landroid/os/Parcel;I)Landroid/widget/RemoteViews$Action;
+HSPLandroid/widget/RemoteViews;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
+HPLandroid/widget/RemoteViews;->getContextForResources(Landroid/content/Context;)Landroid/content/Context;
+HPLandroid/widget/RemoteViews;->getLayoutId()I
+HPLandroid/widget/RemoteViews;->getMethod(Landroid/view/View;Ljava/lang/String;Ljava/lang/Class;Z)Ljava/lang/invoke/MethodHandle;
+HPLandroid/widget/RemoteViews;->getPackage()Ljava/lang/String;
+HPLandroid/widget/RemoteViews;->getRemoteViewsToApply(Landroid/content/Context;)Landroid/widget/RemoteViews;
+HPLandroid/widget/RemoteViews;->hasFlags(I)Z
+HPLandroid/widget/RemoteViews;->hasLandscapeAndPortraitLayouts()Z
+HPLandroid/widget/RemoteViews;->inflateView(Landroid/content/Context;Landroid/widget/RemoteViews;Landroid/view/ViewGroup;)Landroid/view/View;
+HPLandroid/widget/RemoteViews;->inflateView(Landroid/content/Context;Landroid/widget/RemoteViews;Landroid/view/ViewGroup;I)Landroid/view/View;
+HPLandroid/widget/RemoteViews;->lambda$static$0(Ljava/lang/Class;)Z
+HPLandroid/widget/RemoteViews;->performApply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
+PLandroid/widget/RemoteViews;->readActionsFromParcel(Landroid/os/Parcel;I)V
+HPLandroid/widget/RemoteViews;->reapply(Landroid/content/Context;Landroid/view/View;)V
+HPLandroid/widget/RemoteViews;->reapply(Landroid/content/Context;Landroid/view/View;Landroid/widget/RemoteViews$OnClickHandler;)V
+HPLandroid/widget/RemoteViews;->reapplyAsync(Landroid/content/Context;Landroid/view/View;Ljava/util/concurrent/Executor;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/os/CancellationSignal;
+HPLandroid/widget/RemoteViews;->removeAllViews(I)V
+HSPLandroid/widget/RemoteViews;->setBitmap(ILjava/lang/String;Landroid/graphics/Bitmap;)V
+HPLandroid/widget/RemoteViews;->setBitmapCache(Landroid/widget/RemoteViews$BitmapCache;)V
+HPLandroid/widget/RemoteViews;->setBoolean(ILjava/lang/String;Z)V
+HPLandroid/widget/RemoteViews;->setBundle(ILjava/lang/String;Landroid/os/Bundle;)V
+HSPLandroid/widget/RemoteViews;->setCharSequence(ILjava/lang/String;Ljava/lang/CharSequence;)V
+HPLandroid/widget/RemoteViews;->setChronometerCountDown(IZ)V
+HSPLandroid/widget/RemoteViews;->setContentDescription(ILjava/lang/CharSequence;)V
+HPLandroid/widget/RemoteViews;->setDrawableTint(IZILandroid/graphics/PorterDuff$Mode;)V
+HPLandroid/widget/RemoteViews;->setIcon(ILjava/lang/String;Landroid/graphics/drawable/Icon;)V
+HSPLandroid/widget/RemoteViews;->setImageViewBitmap(ILandroid/graphics/Bitmap;)V
+HPLandroid/widget/RemoteViews;->setImageViewIcon(ILandroid/graphics/drawable/Icon;)V
+HSPLandroid/widget/RemoteViews;->setInt(ILjava/lang/String;I)V
+HPLandroid/widget/RemoteViews;->setLong(ILjava/lang/String;J)V
+HPLandroid/widget/RemoteViews;->setNotRoot()V
+HSPLandroid/widget/RemoteViews;->setOnClickPendingIntent(ILandroid/app/PendingIntent;)V
+HSPLandroid/widget/RemoteViews;->setOnClickResponse(ILandroid/widget/RemoteViews$RemoteResponse;)V
+HPLandroid/widget/RemoteViews;->setProgressBackgroundTintList(ILandroid/content/res/ColorStateList;)V
+HPLandroid/widget/RemoteViews;->setProgressBar(IIIZ)V
+HPLandroid/widget/RemoteViews;->setProgressIndeterminateTintList(ILandroid/content/res/ColorStateList;)V
+HPLandroid/widget/RemoteViews;->setProgressTintList(ILandroid/content/res/ColorStateList;)V
+HPLandroid/widget/RemoteViews;->setRemoteInputs(I[Landroid/app/RemoteInput;)V
+HPLandroid/widget/RemoteViews;->setRippleDrawableColor(ILandroid/content/res/ColorStateList;)V
+HPLandroid/widget/RemoteViews;->setTextColor(II)V
+HSPLandroid/widget/RemoteViews;->setTextViewText(ILjava/lang/CharSequence;)V
+HPLandroid/widget/RemoteViews;->setTextViewTextSize(IIF)V
+HPLandroid/widget/RemoteViews;->setViewLayoutMarginBottomDimen(II)V
+HPLandroid/widget/RemoteViews;->setViewLayoutMarginEnd(II)V
+HPLandroid/widget/RemoteViews;->setViewLayoutMarginEndDimen(II)V
+HPLandroid/widget/RemoteViews;->setViewPadding(IIIII)V
+HSPLandroid/widget/RemoteViews;->setViewVisibility(II)V
+HPLandroid/widget/RemoteViews;->startTaskOnExecutor(Landroid/widget/RemoteViews$AsyncApplyTask;Ljava/util/concurrent/Executor;)Landroid/os/CancellationSignal;
+HSPLandroid/widget/RemoteViews;->writeActionsToParcel(Landroid/os/Parcel;)V
+HSPLandroid/widget/RemoteViews;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLandroid/widget/RemoteViewsService;-><clinit>()V
+PLandroid/widget/RtlSpacingHelper;-><init>()V
+HPLandroid/widget/RtlSpacingHelper;->getEnd()I
+HPLandroid/widget/RtlSpacingHelper;->getStart()I
+PLandroid/widget/RtlSpacingHelper;->setAbsolute(II)V
+PLandroid/widget/RtlSpacingHelper;->setDirection(Z)V
+PLandroid/widget/RtlSpacingHelper;->setRelative(II)V
+HSPLandroid/widget/ScrollBarDrawable;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/ScrollBarDrawable;->drawThumb(Landroid/graphics/Canvas;Landroid/graphics/Rect;IIZ)V
+HSPLandroid/widget/ScrollBarDrawable;->getSize(Z)I
+HSPLandroid/widget/ScrollBarDrawable;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ScrollBarDrawable;->isStateful()Z
+HSPLandroid/widget/ScrollBarDrawable;->mutate()Landroid/widget/ScrollBarDrawable;
+HSPLandroid/widget/ScrollBarDrawable;->onBoundsChange(Landroid/graphics/Rect;)V
+HSPLandroid/widget/ScrollBarDrawable;->onStateChange([I)Z
+HSPLandroid/widget/ScrollBarDrawable;->propagateCurrentState(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ScrollBarDrawable;->setAlpha(I)V
+HSPLandroid/widget/ScrollBarDrawable;->setHorizontalThumbDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ScrollBarDrawable;->setHorizontalTrackDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ScrollBarDrawable;->setParameters(IIIZ)V
+HSPLandroid/widget/ScrollBarDrawable;->setVerticalThumbDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ScrollBarDrawable;->setVerticalTrackDrawable(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/widget/ScrollView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/widget/ScrollView;-><init>(Landroid/content/Context;)V
+HSPLandroid/widget/ScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/ScrollView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/ScrollView;->addView(Landroid/view/View;)V
+HPLandroid/widget/ScrollView;->addView(Landroid/view/View;I)V
+HSPLandroid/widget/ScrollView;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/widget/ScrollView;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+HSPLandroid/widget/ScrollView;->computeScroll()V
+HSPLandroid/widget/ScrollView;->computeVerticalScrollOffset()I
+HSPLandroid/widget/ScrollView;->computeVerticalScrollRange()I
+HSPLandroid/widget/ScrollView;->doScrollY(I)V
+HSPLandroid/widget/ScrollView;->draw(Landroid/graphics/Canvas;)V
+HPLandroid/widget/ScrollView;->endDrag()V
+HSPLandroid/widget/ScrollView;->findFocusableViewInBounds(ZII)Landroid/view/View;
+HPLandroid/widget/ScrollView;->fling(I)V
+HPLandroid/widget/ScrollView;->flingWithNestedDispatch(I)V
+HSPLandroid/widget/ScrollView;->fullScroll(I)Z
+HPLandroid/widget/ScrollView;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HPLandroid/widget/ScrollView;->getScrollRange()I
+HPLandroid/widget/ScrollView;->inChild(II)Z
+HSPLandroid/widget/ScrollView;->initScrollView()V
+HPLandroid/widget/ScrollView;->initVelocityTrackerIfNotExists()V
+HSPLandroid/widget/ScrollView;->measureChildWithMargins(Landroid/view/View;IIII)V
+HSPLandroid/widget/ScrollView;->onDetachedFromWindow()V
+HSPLandroid/widget/ScrollView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLandroid/widget/ScrollView;->onLayout(ZIIII)V
+HSPLandroid/widget/ScrollView;->onMeasure(II)V
+HPLandroid/widget/ScrollView;->onOverScrolled(IIZZ)V
+HSPLandroid/widget/ScrollView;->onRequestFocusInDescendants(ILandroid/graphics/Rect;)Z
+HPLandroid/widget/ScrollView;->onSaveInstanceState()Landroid/os/Parcelable;
+HSPLandroid/widget/ScrollView;->onSizeChanged(IIII)V
+HPLandroid/widget/ScrollView;->onTouchEvent(Landroid/view/MotionEvent;)Z
+HPLandroid/widget/ScrollView;->recycleVelocityTracker()V
+HPLandroid/widget/ScrollView;->requestDisallowInterceptTouchEvent(Z)V
+HSPLandroid/widget/ScrollView;->requestLayout()V
+HSPLandroid/widget/ScrollView;->scrollAndFocus(III)Z
+HSPLandroid/widget/ScrollView;->scrollTo(II)V
+HSPLandroid/widget/ScrollView;->setFillViewport(Z)V
+HPLandroid/widget/ScrollView;->shouldDelayChildPressedState()Z
+HPLandroid/widget/ScrollView;->shouldDisplayEdgeEffects()Z
+HSPLandroid/widget/ScrollView;->smoothScrollBy(II)V
+HSPLandroid/widget/Scroller$ViscousFluidInterpolator;-><init>()V
+HPLandroid/widget/Scroller$ViscousFluidInterpolator;->getInterpolation(F)F
+HPLandroid/widget/Scroller$ViscousFluidInterpolator;->viscousFluid(F)F
+HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;)V
+HSPLandroid/widget/Scroller;-><init>(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V
+HPLandroid/widget/Scroller;->abortAnimation()V
+HSPLandroid/widget/Scroller;->computeScrollOffset()Z
+HPLandroid/widget/Scroller;->getCurrX()I
+HPLandroid/widget/Scroller;->getCurrY()I
+HSPLandroid/widget/Scroller;->isFinished()Z
+HPLandroid/widget/Scroller;->startScroll(IIIII)V
+HSPLandroid/widget/SeekBar;-><init>(Landroid/content/Context;)V
+HSPLandroid/widget/SeekBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HSPLandroid/widget/SeekBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/SeekBar;->onProgressRefresh(FZI)V
+HPLandroid/widget/SeekBar;->onStartTrackingTouch()V
+HPLandroid/widget/SeekBar;->onStopTrackingTouch()V
+HSPLandroid/widget/SeekBar;->setOnSeekBarChangeListener(Landroid/widget/SeekBar$OnSeekBarChangeListener;)V
HSPLandroid/widget/SelectionActionModeHelper$TextClassificationHelper;->init(Ljava/util/function/Supplier;Ljava/lang/CharSequence;IILandroid/os/LocaleList;)V
HSPLandroid/widget/SelectionActionModeHelper;-><init>(Landroid/widget/Editor;)V
HSPLandroid/widget/SmartSelectSprite;-><init>(Landroid/content/Context;ILjava/lang/Runnable;)V
+HPLandroid/widget/Space;-><init>(Landroid/content/Context;)V
HSPLandroid/widget/Space;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/widget/Space;->draw(Landroid/graphics/Canvas;)V
+HSPLandroid/widget/Space;->onMeasure(II)V
+HPLandroid/widget/SpellChecker$SpellParser;->isFinished()Z
+HPLandroid/widget/SpellChecker$SpellParser;->parse(II)V
+HPLandroid/widget/SpellChecker$SpellParser;->removeRangeSpan(Landroid/text/Editable;)V
+HPLandroid/widget/SpellChecker$SpellParser;->stop()V
+HPLandroid/widget/SpellChecker;-><init>(Landroid/widget/TextView;)V
+HPLandroid/widget/SpellChecker;->access$200(Landroid/widget/SpellChecker;)Landroid/widget/TextView;
+HPLandroid/widget/SpellChecker;->closeSession()V
+HPLandroid/widget/SpellChecker;->resetSession()V
+HPLandroid/widget/SpellChecker;->spellCheck(II)V
+HPLandroid/widget/Switch;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/widget/Switch;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/Switch;->drawableStateChanged()V
+HPLandroid/widget/Switch;->getButtonStateDescription()Ljava/lang/CharSequence;
+HPLandroid/widget/Switch;->getCompoundPaddingLeft()I
+HPLandroid/widget/Switch;->getCompoundPaddingRight()I
+HPLandroid/widget/Switch;->jumpDrawablesToCurrentState()V
+HPLandroid/widget/Switch;->onCreateDrawableState(I)[I
+HPLandroid/widget/Switch;->onLayout(ZIIII)V
+HPLandroid/widget/Switch;->onMeasure(II)V
+HPLandroid/widget/Switch;->setChecked(Z)V
+HPLandroid/widget/Switch;->setSwitchTextAppearance(Landroid/content/Context;I)V
+HPLandroid/widget/Switch;->setSwitchTypeface(Landroid/graphics/Typeface;)V
+HPLandroid/widget/Switch;->setSwitchTypeface(Landroid/graphics/Typeface;I)V
+HPLandroid/widget/Switch;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HPLandroid/widget/TextView$2;->run()V
+HPLandroid/widget/TextView$3;->run()V
+HPLandroid/widget/TextView$ChangeWatcher;->afterTextChanged(Landroid/text/Editable;)V
+HPLandroid/widget/TextView$ChangeWatcher;->beforeTextChanged(Ljava/lang/CharSequence;III)V
HSPLandroid/widget/TextView$ChangeWatcher;->onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HSPLandroid/widget/TextView$ChangeWatcher;->onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V
+HSPLandroid/widget/TextView$ChangeWatcher;->onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V
+HPLandroid/widget/TextView$ChangeWatcher;->onTextChanged(Ljava/lang/CharSequence;III)V
+HSPLandroid/widget/TextView$Drawables;-><init>(Landroid/content/Context;)V
+HSPLandroid/widget/TextView$Drawables;->applyErrorDrawableIfNeeded(I)V
+HSPLandroid/widget/TextView$Drawables;->hasMetadata()Z
+HSPLandroid/widget/TextView$Drawables;->resolveWithLayoutDirection(I)Z
+HPLandroid/widget/TextView$Marquee;-><init>(Landroid/widget/TextView;)V
+HPLandroid/widget/TextView$Marquee;->access$600(Landroid/widget/TextView$Marquee;)B
+HPLandroid/widget/TextView$Marquee;->access$602(Landroid/widget/TextView$Marquee;B)B
+HPLandroid/widget/TextView$Marquee;->access$702(Landroid/widget/TextView$Marquee;J)J
+HPLandroid/widget/TextView$Marquee;->access$800(Landroid/widget/TextView$Marquee;)Landroid/view/Choreographer;
+HPLandroid/widget/TextView$Marquee;->access$900(Landroid/widget/TextView$Marquee;)I
+HPLandroid/widget/TextView$Marquee;->getMaxFadeScroll()F
+HPLandroid/widget/TextView$Marquee;->getScroll()F
+HPLandroid/widget/TextView$Marquee;->isStopped()Z
+HPLandroid/widget/TextView$Marquee;->shouldDrawLeftFade()Z
+HPLandroid/widget/TextView$Marquee;->start(I)V
+HPLandroid/widget/TextView$Marquee;->tick()V
+HSPLandroid/widget/TextView$SavedState;->toString()Ljava/lang/String;
+HPLandroid/widget/TextView$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
HSPLandroid/widget/TextView$TextAppearanceAttributes;-><init>()V
HSPLandroid/widget/TextView$TextAppearanceAttributes;-><init>(Landroid/widget/TextView$1;)V
HSPLandroid/widget/TextView;-><init>(Landroid/content/Context;)V
HSPLandroid/widget/TextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
HSPLandroid/widget/TextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
HSPLandroid/widget/TextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HPLandroid/widget/TextView;->access$1000(Landroid/widget/TextView;)Landroid/text/Layout;
+HSPLandroid/widget/TextView;->addTextChangedListener(Landroid/text/TextWatcher;)V
HSPLandroid/widget/TextView;->applyCompoundDrawableTint()V
HSPLandroid/widget/TextView;->applySingleLine(ZZZ)V
HSPLandroid/widget/TextView;->applyTextAppearance(Landroid/widget/TextView$TextAppearanceAttributes;)V
+HSPLandroid/widget/TextView;->assumeLayout()V
HSPLandroid/widget/TextView;->autoSizeText()V
+HPLandroid/widget/TextView;->beginBatchEdit()V
+HSPLandroid/widget/TextView;->bringPointIntoView(I)Z
+HSPLandroid/widget/TextView;->bringTextIntoView()Z
+HPLandroid/widget/TextView;->canMarquee()Z
HSPLandroid/widget/TextView;->cancelLongPress()V
HSPLandroid/widget/TextView;->checkForRelayout()V
+HSPLandroid/widget/TextView;->checkForResize()V
+HSPLandroid/widget/TextView;->cleanupAutoSizePresetSizes([I)[I
+HPLandroid/widget/TextView;->compressText(F)Z
+HPLandroid/widget/TextView;->computeHorizontalScrollRange()I
HSPLandroid/widget/TextView;->computeScroll()V
+HPLandroid/widget/TextView;->computeVerticalScrollExtent()I
+HPLandroid/widget/TextView;->computeVerticalScrollRange()I
+HPLandroid/widget/TextView;->convertToLocalHorizontalCoordinate(F)F
+HSPLandroid/widget/TextView;->createEditorIfNeeded()V
HSPLandroid/widget/TextView;->desired(Landroid/text/Layout;)I
+HPLandroid/widget/TextView;->didTouchFocusSelect()Z
+HSPLandroid/widget/TextView;->drawableHotspotChanged(FF)V
HSPLandroid/widget/TextView;->drawableStateChanged()V
+HPLandroid/widget/TextView;->endBatchEdit()V
+HSPLandroid/widget/TextView;->findLargestTextSizeWhichFits(Landroid/graphics/RectF;)I
+HSPLandroid/widget/TextView;->fixFocusableAndClickableSettings()V
+HPLandroid/widget/TextView;->getAccessibilityClassName()Ljava/lang/CharSequence;
+HSPLandroid/widget/TextView;->getAutoSizeMinTextSize()I
+HSPLandroid/widget/TextView;->getAutoSizeStepGranularity()I
+HSPLandroid/widget/TextView;->getAutoSizeTextType()I
HSPLandroid/widget/TextView;->getAutofillType()I
+HPLandroid/widget/TextView;->getAutofillValue()Landroid/view/autofill/AutofillValue;
HSPLandroid/widget/TextView;->getBaseline()I
HSPLandroid/widget/TextView;->getBaselineOffset()I
+HPLandroid/widget/TextView;->getBottomVerticalOffset(Z)I
HSPLandroid/widget/TextView;->getBoxHeight(Landroid/text/Layout;)I
+HSPLandroid/widget/TextView;->getBreakStrategy()I
+HSPLandroid/widget/TextView;->getCompoundDrawablePadding()I
+HSPLandroid/widget/TextView;->getCompoundDrawables()[Landroid/graphics/drawable/Drawable;
+HSPLandroid/widget/TextView;->getCompoundDrawablesRelative()[Landroid/graphics/drawable/Drawable;
HSPLandroid/widget/TextView;->getCompoundPaddingBottom()I
HSPLandroid/widget/TextView;->getCompoundPaddingLeft()I
HSPLandroid/widget/TextView;->getCompoundPaddingRight()I
HSPLandroid/widget/TextView;->getCompoundPaddingTop()I
+HSPLandroid/widget/TextView;->getCurrentTextColor()I
HSPLandroid/widget/TextView;->getDefaultEditable()Z
HSPLandroid/widget/TextView;->getDefaultMovementMethod()Landroid/text/method/MovementMethod;
HSPLandroid/widget/TextView;->getDesiredHeight()I
HSPLandroid/widget/TextView;->getDesiredHeight(Landroid/text/Layout;Z)I
+HPLandroid/widget/TextView;->getEditableText()Landroid/text/Editable;
+HPLandroid/widget/TextView;->getEllipsize()Landroid/text/TextUtils$TruncateAt;
+HSPLandroid/widget/TextView;->getError()Ljava/lang/CharSequence;
HSPLandroid/widget/TextView;->getExtendedPaddingBottom()I
HSPLandroid/widget/TextView;->getExtendedPaddingTop()I
+HPLandroid/widget/TextView;->getFadeHeight(Z)I
+HPLandroid/widget/TextView;->getFadeTop(Z)I
HSPLandroid/widget/TextView;->getFilters()[Landroid/text/InputFilter;
+HPLandroid/widget/TextView;->getFocusedRect(Landroid/graphics/Rect;)V
+HSPLandroid/widget/TextView;->getFreezesText()Z
+HSPLandroid/widget/TextView;->getGravity()I
+HSPLandroid/widget/TextView;->getHighlightColor()I
+HPLandroid/widget/TextView;->getHint()Ljava/lang/CharSequence;
+HPLandroid/widget/TextView;->getHorizontalFadingEdgeStrength(FF)F
HSPLandroid/widget/TextView;->getHorizontalOffsetForDrawables()I
+HSPLandroid/widget/TextView;->getHorizontallyScrolling()Z
+HSPLandroid/widget/TextView;->getHyphenationFrequency()I
+HSPLandroid/widget/TextView;->getIncludeFontPadding()Z
+HPLandroid/widget/TextView;->getInputType()I
+HPLandroid/widget/TextView;->getInterestingRect(Landroid/graphics/Rect;I)V
+HSPLandroid/widget/TextView;->getJustificationMode()I
HSPLandroid/widget/TextView;->getKeyListener()Landroid/text/method/KeyListener;
+HSPLandroid/widget/TextView;->getLayout()Landroid/text/Layout;
HSPLandroid/widget/TextView;->getLayoutAlignment()Landroid/text/Layout$Alignment;
+HPLandroid/widget/TextView;->getLeftFadingEdgeStrength()F
+HPLandroid/widget/TextView;->getLineAtCoordinate(F)I
+HSPLandroid/widget/TextView;->getLineCount()I
+HSPLandroid/widget/TextView;->getLineHeight()I
+HSPLandroid/widget/TextView;->getLineSpacingExtra()F
+HSPLandroid/widget/TextView;->getLineSpacingMultiplier()F
+HPLandroid/widget/TextView;->getMaxEms()I
+HPLandroid/widget/TextView;->getMaxHeight()I
+HSPLandroid/widget/TextView;->getMaxLines()I
+HPLandroid/widget/TextView;->getMaxWidth()I
+HPLandroid/widget/TextView;->getMinEms()I
+HPLandroid/widget/TextView;->getOffsetAtCoordinate(IF)I
+HPLandroid/widget/TextView;->getOffsetForPosition(FF)I
+HSPLandroid/widget/TextView;->getPaint()Landroid/text/TextPaint;
+HPLandroid/widget/TextView;->getRightFadingEdgeStrength()F
+HSPLandroid/widget/TextView;->getRightPaddingOffset()I
HSPLandroid/widget/TextView;->getSelectionEnd()I
HSPLandroid/widget/TextView;->getSelectionStart()I
+HPLandroid/widget/TextView;->getServiceManagerForUser(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
+HPLandroid/widget/TextView;->getSpellCheckerLocale()Ljava/util/Locale;
HSPLandroid/widget/TextView;->getText()Ljava/lang/CharSequence;
+HSPLandroid/widget/TextView;->getTextColors()Landroid/content/res/ColorStateList;
+HPLandroid/widget/TextView;->getTextCursorDrawable()Landroid/graphics/drawable/Drawable;
HSPLandroid/widget/TextView;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic;
HSPLandroid/widget/TextView;->getTextLocale()Ljava/util/Locale;
HSPLandroid/widget/TextView;->getTextLocales()Landroid/os/LocaleList;
+HSPLandroid/widget/TextView;->getTextSize()F
+HPLandroid/widget/TextView;->getTotalPaddingBottom()I
+HSPLandroid/widget/TextView;->getTotalPaddingLeft()I
+HSPLandroid/widget/TextView;->getTotalPaddingRight()I
+HPLandroid/widget/TextView;->getTotalPaddingTop()I
HSPLandroid/widget/TextView;->getTransformationMethod()Landroid/text/method/TransformationMethod;
+HPLandroid/widget/TextView;->getTypeface()Landroid/graphics/Typeface;
+HPLandroid/widget/TextView;->getTypefaceStyle()I
HSPLandroid/widget/TextView;->getUpdatedHighlightPath()Landroid/graphics/Path;
HSPLandroid/widget/TextView;->getVerticalOffset(Z)I
+HPLandroid/widget/TextView;->handleBackInTextActionModeIfNeeded(Landroid/view/KeyEvent;)Z
+HPLandroid/widget/TextView;->handleTextChanged(Ljava/lang/CharSequence;III)V
HSPLandroid/widget/TextView;->hasOverlappingRendering()Z
HSPLandroid/widget/TextView;->hasPasswordTransformationMethod()Z
HSPLandroid/widget/TextView;->hasSelection()Z
+HSPLandroid/widget/TextView;->hideErrorIfUnchanged()V
+HPLandroid/widget/TextView;->invalidateCursor()V
+HPLandroid/widget/TextView;->invalidateCursor(III)V
+HPLandroid/widget/TextView;->invalidateCursorPath()V
+HSPLandroid/widget/TextView;->invalidateDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/TextView;->invalidateRegion(IIZ)V
+HPLandroid/widget/TextView;->isAutoSizeEnabled()Z
+PLandroid/widget/TextView;->isAutofillable()Z
+HSPLandroid/widget/TextView;->isInExtractedMode()Z
+HSPLandroid/widget/TextView;->isInputMethodTarget()Z
+PLandroid/widget/TextView;->isMarqueeFadeEnabled()Z
HSPLandroid/widget/TextView;->isMultilineInputType(I)Z
+HPLandroid/widget/TextView;->isPaddingOffsetRequired()Z
+PLandroid/widget/TextView;->isShowingHint()Z
HSPLandroid/widget/TextView;->isSuggestionsEnabled()Z
HSPLandroid/widget/TextView;->isTextEditable()Z
HSPLandroid/widget/TextView;->isTextSelectable()Z
HSPLandroid/widget/TextView;->jumpDrawablesToCurrentState()V
+HSPLandroid/widget/TextView;->length()I
HSPLandroid/widget/TextView;->makeNewLayout(IILandroid/text/BoringLayout$Metrics;Landroid/text/BoringLayout$Metrics;IZ)V
HSPLandroid/widget/TextView;->makeSingleLayout(ILandroid/text/BoringLayout$Metrics;ILandroid/text/Layout$Alignment;ZLandroid/text/TextUtils$TruncateAt;Z)Landroid/text/Layout;
HSPLandroid/widget/TextView;->notifyListeningManagersAfterTextChanged()V
HSPLandroid/widget/TextView;->nullLayouts()V
HSPLandroid/widget/TextView;->onAttachedToWindow()V
+HPLandroid/widget/TextView;->onBeginBatchEdit()V
HSPLandroid/widget/TextView;->onCheckIsTextEditor()Z
+HPLandroid/widget/TextView;->onConfigurationChanged(Landroid/content/res/Configuration;)V
HSPLandroid/widget/TextView;->onCreateDrawableState(I)[I
+HPLandroid/widget/TextView;->onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;
HSPLandroid/widget/TextView;->onDetachedFromWindowInternal()V
HSPLandroid/widget/TextView;->onDraw(Landroid/graphics/Canvas;)V
+HPLandroid/widget/TextView;->onEndBatchEdit()V
+HPLandroid/widget/TextView;->onFocusChanged(ZILandroid/graphics/Rect;)V
+HPLandroid/widget/TextView;->onKeyPreIme(ILandroid/view/KeyEvent;)Z
HSPLandroid/widget/TextView;->onLayout(ZIIII)V
+HPLandroid/widget/TextView;->onLocaleChanged()V
HSPLandroid/widget/TextView;->onMeasure(II)V
HSPLandroid/widget/TextView;->onPreDraw()Z
+HPLandroid/widget/TextView;->onProvideStructure(Landroid/view/ViewStructure;II)V
HSPLandroid/widget/TextView;->onResolveDrawables(I)V
+HSPLandroid/widget/TextView;->onRestoreInstanceState(Landroid/os/Parcelable;)V
HSPLandroid/widget/TextView;->onRtlPropertiesChanged(I)V
+HSPLandroid/widget/TextView;->onSaveInstanceState()Landroid/os/Parcelable;
+HPLandroid/widget/TextView;->onScreenStateChanged(I)V
+HSPLandroid/widget/TextView;->onScrollChanged(IIII)V
+HSPLandroid/widget/TextView;->onSelectionChanged(II)V
HSPLandroid/widget/TextView;->onTextChanged(Ljava/lang/CharSequence;III)V
+HSPLandroid/widget/TextView;->onTouchEvent(Landroid/view/MotionEvent;)Z
HSPLandroid/widget/TextView;->onVisibilityChanged(Landroid/view/View;I)V
HSPLandroid/widget/TextView;->onWindowFocusChanged(Z)V
HSPLandroid/widget/TextView;->preloadFontCache()V
@@ -8232,127 +29049,2540 @@ HSPLandroid/widget/TextView;->readTextAppearance(Landroid/content/Context;Landro
HSPLandroid/widget/TextView;->registerForPreDraw()V
HSPLandroid/widget/TextView;->removeAdjacentSuggestionSpans(I)V
HSPLandroid/widget/TextView;->removeIntersectingNonAdjacentSpans(IILjava/lang/Class;)V
+HSPLandroid/widget/TextView;->removeMisspelledSpans(Landroid/text/Spannable;)V
HSPLandroid/widget/TextView;->removeSuggestionSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HPLandroid/widget/TextView;->removeTextChangedListener(Landroid/text/TextWatcher;)V
+HPLandroid/widget/TextView;->resetErrorChangedFlag()V
HSPLandroid/widget/TextView;->resetResolvedDrawables()V
+PLandroid/widget/TextView;->resolveStyleAndSetTypeface(Landroid/graphics/Typeface;II)V
HSPLandroid/widget/TextView;->restartMarqueeIfNeeded()V
HSPLandroid/widget/TextView;->sendAccessibilityEventInternal(I)V
+HSPLandroid/widget/TextView;->sendAfterTextChanged(Landroid/text/Editable;)V
HSPLandroid/widget/TextView;->sendBeforeTextChanged(Ljava/lang/CharSequence;III)V
HSPLandroid/widget/TextView;->sendOnTextChanged(Ljava/lang/CharSequence;III)V
+HSPLandroid/widget/TextView;->setAllCaps(Z)V
+HSPLandroid/widget/TextView;->setAutoSizeTextTypeUniformWithPresetSizes([II)V
+HPLandroid/widget/TextView;->setBreakStrategy(I)V
HSPLandroid/widget/TextView;->setCompoundDrawablePadding(I)V
+HPLandroid/widget/TextView;->setCompoundDrawableTintList(Landroid/content/res/ColorStateList;)V
HSPLandroid/widget/TextView;->setCompoundDrawables(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/TextView;->setCompoundDrawablesRelative(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/TextView;->setCompoundDrawablesRelativeWithIntrinsicBounds(IIII)V
+HSPLandroid/widget/TextView;->setCompoundDrawablesRelativeWithIntrinsicBounds(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
HSPLandroid/widget/TextView;->setCompoundDrawablesWithIntrinsicBounds(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/TextView;->setCursorVisible(Z)V
+HPLandroid/widget/TextView;->setCustomSelectionActionModeCallback(Landroid/view/ActionMode$Callback;)V
HSPLandroid/widget/TextView;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)V
+HSPLandroid/widget/TextView;->setEms(I)V
+HSPLandroid/widget/TextView;->setEnabled(Z)V
HSPLandroid/widget/TextView;->setFilters(Landroid/text/Editable;[Landroid/text/InputFilter;)V
HSPLandroid/widget/TextView;->setFilters([Landroid/text/InputFilter;)V
HSPLandroid/widget/TextView;->setFrame(IIII)Z
HSPLandroid/widget/TextView;->setGravity(I)V
HSPLandroid/widget/TextView;->setHighlightColor(I)V
+HSPLandroid/widget/TextView;->setHint(Ljava/lang/CharSequence;)V
+HSPLandroid/widget/TextView;->setHintInternal(Ljava/lang/CharSequence;)V
+HSPLandroid/widget/TextView;->setHintTextColor(I)V
+PLandroid/widget/TextView;->setHintTextColor(Landroid/content/res/ColorStateList;)V
HSPLandroid/widget/TextView;->setHorizontallyScrolling(Z)V
+HPLandroid/widget/TextView;->setImeOptions(I)V
HSPLandroid/widget/TextView;->setIncludeFontPadding(Z)V
+HPLandroid/widget/TextView;->setInputType(I)V
HSPLandroid/widget/TextView;->setInputType(IZ)V
HSPLandroid/widget/TextView;->setInputTypeSingleLine(Z)V
+HPLandroid/widget/TextView;->setKeyListenerOnly(Landroid/text/method/KeyListener;)V
HSPLandroid/widget/TextView;->setLetterSpacing(F)V
+HPLandroid/widget/TextView;->setLineHeight(I)V
+HPLandroid/widget/TextView;->setLineSpacing(FF)V
HSPLandroid/widget/TextView;->setLines(I)V
+HSPLandroid/widget/TextView;->setLinkTextColor(I)V
+PLandroid/widget/TextView;->setLinkTextColor(Landroid/content/res/ColorStateList;)V
+HPLandroid/widget/TextView;->setMarqueeRepeatLimit(I)V
+HPLandroid/widget/TextView;->setMaxEms(I)V
HSPLandroid/widget/TextView;->setMaxLines(I)V
+HSPLandroid/widget/TextView;->setMaxWidth(I)V
HSPLandroid/widget/TextView;->setMinHeight(I)V
+HSPLandroid/widget/TextView;->setMinLines(I)V
HSPLandroid/widget/TextView;->setMinWidth(I)V
+HSPLandroid/widget/TextView;->setMovementMethod(Landroid/text/method/MovementMethod;)V
+HSPLandroid/widget/TextView;->setOnEditorActionListener(Landroid/widget/TextView$OnEditorActionListener;)V
+HSPLandroid/widget/TextView;->setPadding(IIII)V
+HPLandroid/widget/TextView;->setPaddingRelative(IIII)V
+HSPLandroid/widget/TextView;->setPrivateImeOptions(Ljava/lang/String;)V
HSPLandroid/widget/TextView;->setRawInputType(I)V
HSPLandroid/widget/TextView;->setRawTextSize(FZ)V
HSPLandroid/widget/TextView;->setRelativeDrawablesIfNeeded(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/TextView;->setSelected(Z)V
+HSPLandroid/widget/TextView;->setShadowLayer(FFFI)V
+HSPLandroid/widget/TextView;->setSingleLine()V
+HSPLandroid/widget/TextView;->setSingleLine(Z)V
+HSPLandroid/widget/TextView;->setSpannableFactory(Landroid/text/Spannable$Factory;)V
+HSPLandroid/widget/TextView;->setText(I)V
HSPLandroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
HSPLandroid/widget/TextView;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V
HSPLandroid/widget/TextView;->setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;ZI)V
HSPLandroid/widget/TextView;->setTextAppearance(I)V
HSPLandroid/widget/TextView;->setTextAppearance(Landroid/content/Context;I)V
+HSPLandroid/widget/TextView;->setTextClassifier(Landroid/view/textclassifier/TextClassifier;)V
HSPLandroid/widget/TextView;->setTextColor(I)V
HSPLandroid/widget/TextView;->setTextColor(Landroid/content/res/ColorStateList;)V
HSPLandroid/widget/TextView;->setTextInternal(Ljava/lang/CharSequence;)V
+HSPLandroid/widget/TextView;->setTextIsSelectable(Z)V
+HPLandroid/widget/TextView;->setTextOperationUser(Landroid/os/UserHandle;)V
+HPLandroid/widget/TextView;->setTextSize(F)V
HSPLandroid/widget/TextView;->setTextSize(IF)V
+HPLandroid/widget/TextView;->setTextSizeInternal(IFZ)V
HSPLandroid/widget/TextView;->setTransformationMethod(Landroid/text/method/TransformationMethod;)V
HSPLandroid/widget/TextView;->setTypeface(Landroid/graphics/Typeface;)V
HSPLandroid/widget/TextView;->setTypeface(Landroid/graphics/Typeface;I)V
HSPLandroid/widget/TextView;->setTypefaceFromAttrs(Landroid/graphics/Typeface;Ljava/lang/String;III)V
+HPLandroid/widget/TextView;->setWidth(I)V
+HSPLandroid/widget/TextView;->setupAutoSizeText()Z
+HSPLandroid/widget/TextView;->setupAutoSizeUniformPresetSizesConfiguration()Z
+HPLandroid/widget/TextView;->shouldAdvanceFocusOnEnter()Z
HSPLandroid/widget/TextView;->spanChange(Landroid/text/Spanned;Ljava/lang/Object;IIII)V
+HPLandroid/widget/TextView;->startMarquee()V
HSPLandroid/widget/TextView;->stopMarquee()V
+HSPLandroid/widget/TextView;->stopTextActionMode()V
+HSPLandroid/widget/TextView;->suggestedSizeFitsInSpace(ILandroid/graphics/RectF;)Z
HSPLandroid/widget/TextView;->supportsAutoSizeText()Z
+HSPLandroid/widget/TextView;->textCanBeSelected()Z
+PLandroid/widget/TextView;->unregisterForPreDraw()V
+HPLandroid/widget/TextView;->updateAfterEdit()V
HSPLandroid/widget/TextView;->updateTextColors()V
HSPLandroid/widget/TextView;->useDynamicLayout()Z
+HSPLandroid/widget/TextView;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+HPLandroid/widget/TextView;->viewportToContentHorizontalOffset()I
+HPLandroid/widget/TextView;->viewportToContentVerticalOffset()I
+PLandroid/widget/Toast$TN$1;-><init>(Landroid/widget/Toast$TN;Landroid/os/Looper;Landroid/os/Handler$Callback;)V
+PLandroid/widget/Toast$TN$1;->handleMessage(Landroid/os/Message;)V
+PLandroid/widget/Toast$TN;-><init>(Ljava/lang/String;Landroid/os/Looper;)V
+PLandroid/widget/Toast$TN;->handleHide()V
+PLandroid/widget/Toast$TN;->handleShow(Landroid/os/IBinder;)V
+PLandroid/widget/Toast$TN;->hide()V
+PLandroid/widget/Toast$TN;->show(Landroid/os/IBinder;)V
+PLandroid/widget/Toast$TN;->trySendAccessibilityEvent()V
+PLandroid/widget/Toast;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+PLandroid/widget/Toast;->access$100()Landroid/app/INotificationManager;
+PLandroid/widget/Toast;->getService()Landroid/app/INotificationManager;
+PLandroid/widget/Toast;->makeText(Landroid/content/Context;Landroid/os/Looper;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
+HPLandroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
+PLandroid/widget/Toast;->show()V
+HSPLandroid/widget/ToggleButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+HSPLandroid/widget/ToggleButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+HSPLandroid/widget/ToggleButton;->drawableStateChanged()V
+HSPLandroid/widget/ToggleButton;->getButtonStateDescription()Ljava/lang/CharSequence;
+HSPLandroid/widget/ToggleButton;->onFinishInflate()V
+HSPLandroid/widget/ToggleButton;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLandroid/widget/ToggleButton;->setChecked(Z)V
+HSPLandroid/widget/ToggleButton;->syncTextState()V
+HSPLandroid/widget/ToggleButton;->updateReferenceToIndicatorDrawable(Landroid/graphics/drawable/Drawable;)V
+PLandroid/widget/Toolbar$1;-><init>(Landroid/widget/Toolbar;)V
+PLandroid/widget/Toolbar$2;-><init>(Landroid/widget/Toolbar;)V
+HPLandroid/widget/Toolbar$ExpandedActionViewMenuPresenter;-><init>(Landroid/widget/Toolbar;)V
+HPLandroid/widget/Toolbar$ExpandedActionViewMenuPresenter;-><init>(Landroid/widget/Toolbar;Landroid/widget/Toolbar$1;)V
+HPLandroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->initForMenu(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;)V
+HPLandroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->updateMenuView(Z)V
+PLandroid/widget/Toolbar$LayoutParams;-><init>(II)V
+HPLandroid/widget/Toolbar$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
+PLandroid/widget/Toolbar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+PLandroid/widget/Toolbar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+PLandroid/widget/Toolbar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+PLandroid/widget/Toolbar;->addCustomViewsWithGravity(Ljava/util/List;I)V
+PLandroid/widget/Toolbar;->addSystemView(Landroid/view/View;Z)V
+PLandroid/widget/Toolbar;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
+PLandroid/widget/Toolbar;->dismissPopupMenus()V
+PLandroid/widget/Toolbar;->ensureContentInsets()V
+HPLandroid/widget/Toolbar;->ensureMenuView()V
+PLandroid/widget/Toolbar;->ensureNavButtonView()V
+PLandroid/widget/Toolbar;->generateDefaultLayoutParams()Landroid/widget/Toolbar$LayoutParams;
+HPLandroid/widget/Toolbar;->getContentInsetEnd()I
+HPLandroid/widget/Toolbar;->getContentInsetStart()I
+HPLandroid/widget/Toolbar;->getCurrentContentInsetEnd()I
+PLandroid/widget/Toolbar;->getCurrentContentInsetLeft()I
+PLandroid/widget/Toolbar;->getCurrentContentInsetRight()I
+HPLandroid/widget/Toolbar;->getCurrentContentInsetStart()I
+PLandroid/widget/Toolbar;->getHorizontalMargins(Landroid/view/View;)I
+PLandroid/widget/Toolbar;->getNavigationContentDescription()Ljava/lang/CharSequence;
+HPLandroid/widget/Toolbar;->getNavigationIcon()Landroid/graphics/drawable/Drawable;
+PLandroid/widget/Toolbar;->getSubtitle()Ljava/lang/CharSequence;
+PLandroid/widget/Toolbar;->getTitle()Ljava/lang/CharSequence;
+PLandroid/widget/Toolbar;->getVerticalMargins(Landroid/view/View;)I
+PLandroid/widget/Toolbar;->getViewListMeasuredWidth(Ljava/util/List;[I)I
+PLandroid/widget/Toolbar;->getWrapper()Lcom/android/internal/widget/DecorToolbar;
+PLandroid/widget/Toolbar;->isChildOrHidden(Landroid/view/View;)Z
+HPLandroid/widget/Toolbar;->isOverflowMenuShowing()Z
+HPLandroid/widget/Toolbar;->measureChildCollapseMargins(Landroid/view/View;IIII[I)I
+HPLandroid/widget/Toolbar;->measureChildConstrained(Landroid/view/View;IIIII)V
+PLandroid/widget/Toolbar;->onAttachedToWindow()V
+PLandroid/widget/Toolbar;->onDetachedFromWindow()V
+PLandroid/widget/Toolbar;->onLayout(ZIIII)V
+HPLandroid/widget/Toolbar;->onMeasure(II)V
+PLandroid/widget/Toolbar;->onRtlPropertiesChanged(I)V
+HPLandroid/widget/Toolbar;->onSaveInstanceState()Landroid/os/Parcelable;
+HPLandroid/widget/Toolbar;->setCollapsible(Z)V
+PLandroid/widget/Toolbar;->setContentInsetsRelative(II)V
+PLandroid/widget/Toolbar;->setLogo(Landroid/graphics/drawable/Drawable;)V
+HPLandroid/widget/Toolbar;->setMenu(Lcom/android/internal/view/menu/MenuBuilder;Landroid/widget/ActionMenuPresenter;)V
+PLandroid/widget/Toolbar;->setNavigationContentDescription(Ljava/lang/CharSequence;)V
+PLandroid/widget/Toolbar;->setNavigationIcon(Landroid/graphics/drawable/Drawable;)V
+PLandroid/widget/Toolbar;->setNavigationOnClickListener(Landroid/view/View$OnClickListener;)V
+PLandroid/widget/Toolbar;->setPopupTheme(I)V
+PLandroid/widget/Toolbar;->setSubtitle(Ljava/lang/CharSequence;)V
+PLandroid/widget/Toolbar;->setSubtitleTextAppearance(Landroid/content/Context;I)V
+PLandroid/widget/Toolbar;->setTitle(Ljava/lang/CharSequence;)V
+PLandroid/widget/Toolbar;->setTitleTextAppearance(Landroid/content/Context;I)V
+HPLandroid/widget/Toolbar;->shouldCollapse()Z
+PLandroid/widget/Toolbar;->shouldLayout(Landroid/view/View;)Z
+HPLandroid/widget/ViewAnimator;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/widget/ViewAnimator;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
+HPLandroid/widget/ViewAnimator;->getDisplayedChild()I
+HPLandroid/widget/ViewAnimator;->initViewAnimator(Landroid/content/Context;Landroid/util/AttributeSet;)V
+HPLandroid/widget/ViewAnimator;->setAnimateFirstView(Z)V
+HPLandroid/widget/ViewAnimator;->setDisplayedChild(I)V
+HPLandroid/widget/ViewAnimator;->showOnly(I)V
+HPLandroid/widget/ViewAnimator;->showOnly(IZ)V
+HPLandroid/widget/ViewSwitcher;-><init>(Landroid/content/Context;)V
+HPLandroid/widget/ViewSwitcher;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;-><init>([BII)V
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->checkLastTagWas(I)V
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->isAtEnd()Z
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->newInstance([BII)Lcom/android/framework/protobuf/nano/CodedInputByteBufferNano;
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readBool()Z
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readFloat()F
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readInt32()I
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readInt64()J
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readRawByte()B
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readRawLittleEndian32()I
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readRawVarint32()I
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readRawVarint64()J
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readString()Ljava/lang/String;
+PLcom/android/framework/protobuf/nano/CodedInputByteBufferNano;->readTag()I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;-><init>(Ljava/nio/ByteBuffer;)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;-><init>([BII)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->checkNoSpaceLeft()V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeBoolSize(IZ)I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeBoolSizeNoTag(Z)I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeDoubleSize(ID)I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeDoubleSizeNoTag(D)I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeFloatSize(IF)I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeFloatSizeNoTag(F)I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeInt32Size(II)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeInt32SizeNoTag(I)I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeInt64Size(IJ)I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeInt64SizeNoTag(J)I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeMessageSize(ILcom/android/framework/protobuf/nano/MessageNano;)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeMessageSizeNoTag(Lcom/android/framework/protobuf/nano/MessageNano;)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeRawVarint32Size(I)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeRawVarint64Size(J)I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeStringSize(ILjava/lang/String;)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeStringSizeNoTag(Ljava/lang/String;)I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->computeTagSize(I)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->encode(Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->encode(Ljava/lang/CharSequence;[BII)I
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->encodedLength(Ljava/lang/CharSequence;)I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->newInstance([BII)Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->spaceLeft()I
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeBool(IZ)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeBoolNoTag(Z)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeDouble(ID)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeDoubleNoTag(D)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeFloat(IF)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeFloatNoTag(F)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeInt32(II)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeInt32NoTag(I)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeInt64(IJ)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeInt64NoTag(J)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeMessage(ILcom/android/framework/protobuf/nano/MessageNano;)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeMessageNoTag(Lcom/android/framework/protobuf/nano/MessageNano;)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeRawByte(B)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeRawByte(I)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeRawLittleEndian32(I)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeRawLittleEndian64(J)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeRawVarint32(I)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeRawVarint64(J)V
+PLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeString(ILjava/lang/String;)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeStringNoTag(Ljava/lang/String;)V
+HPLcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;->writeTag(II)V
+PLcom/android/framework/protobuf/nano/InternalNano;-><clinit>()V
+HPLcom/android/framework/protobuf/nano/MessageNano;-><init>()V
+PLcom/android/framework/protobuf/nano/MessageNano;->computeSerializedSize()I
+HPLcom/android/framework/protobuf/nano/MessageNano;->getCachedSize()I
+HPLcom/android/framework/protobuf/nano/MessageNano;->getSerializedSize()I
+PLcom/android/framework/protobuf/nano/MessageNano;->mergeFrom(Lcom/android/framework/protobuf/nano/MessageNano;[B)Lcom/android/framework/protobuf/nano/MessageNano;
+PLcom/android/framework/protobuf/nano/MessageNano;->mergeFrom(Lcom/android/framework/protobuf/nano/MessageNano;[BII)Lcom/android/framework/protobuf/nano/MessageNano;
+PLcom/android/framework/protobuf/nano/MessageNano;->toByteArray(Lcom/android/framework/protobuf/nano/MessageNano;)[B
+HPLcom/android/framework/protobuf/nano/MessageNano;->toByteArray(Lcom/android/framework/protobuf/nano/MessageNano;[BII)V
+PLcom/android/framework/protobuf/nano/MessageNano;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+PLcom/android/framework/protobuf/nano/WireFormatNano;->makeTag(II)I
+HSPLcom/android/i18n/phonenumbers/CountryCodeToRegionCodeMap;->getCountryCodeToRegionCodeMap()Ljava/util/Map;
+HSPLcom/android/i18n/phonenumbers/MetadataManager$1;->loadMetadata(Ljava/lang/String;)Ljava/io/InputStream;
+HSPLcom/android/i18n/phonenumbers/MetadataManager;->getMetadataFromMultiFilePrefix(Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap;Ljava/lang/String;Lcom/android/i18n/phonenumbers/MetadataLoader;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/MetadataManager;->getMetadataFromSingleFileName(Ljava/lang/String;Lcom/android/i18n/phonenumbers/MetadataLoader;)Ljava/util/List;
+HSPLcom/android/i18n/phonenumbers/MetadataManager;->loadMetadataAndCloseInput(Ljava/io/InputStream;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;
+HSPLcom/android/i18n/phonenumbers/MultiFileMetadataSourceImpl;->getMetadataForRegion(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;-><init>(Lcom/android/i18n/phonenumbers/MetadataSource;Ljava/util/Map;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->buildNationalNumberForParsing(Ljava/lang/String;Ljava/lang/StringBuilder;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->chooseFormattingPatternForNumber(Ljava/util/List;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->createInstance(Lcom/android/i18n/phonenumbers/MetadataLoader;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->extractCountryCode(Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)I
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->extractPossibleNumber(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->format(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->format(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/StringBuilder;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->formatInOriginalFormat(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->formatNsn(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/CharSequence;)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->formatNsnUsingPattern(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/CharSequence;)Ljava/lang/String;
+HPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getCountryCodeForValidRegion(Ljava/lang/String;)I
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getInstance()Lcom/android/i18n/phonenumbers/PhoneNumberUtil;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getMetadataForRegion(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNationalSignificantNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNddPrefixForRegion(Ljava/lang/String;Z)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNumberDescByType(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+PLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getNumberTypeHelper(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForCountryCode(I)Ljava/lang/String;
+PLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Ljava/lang/String;
+HPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->getRegionCodeForNumberFromRegionList(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/util/List;)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->hasFormattingPatternForNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Z
+HPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isNumberMatchingDesc(Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Z
+PLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isValidNumber(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)Z
+PLcom/android/i18n/phonenumbers/PhoneNumberUtil;->isValidNumberForRegion(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/lang/String;)Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeAppendFormattedExtension(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/StringBuilder;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeExtractCountryCode(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Ljava/lang/StringBuilder;ZLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)I
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripExtension(Ljava/lang/StringBuilder;)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripInternationalPrefixAndNormalize(Ljava/lang/StringBuilder;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->maybeStripNationalPrefixAndCarrierCode(Ljava/lang/StringBuilder;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Ljava/lang/StringBuilder;)Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalize(Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalizeDigits(Ljava/lang/CharSequence;Z)Ljava/lang/StringBuilder;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->normalizeHelper(Ljava/lang/CharSequence;Ljava/util/Map;Z)Ljava/lang/String;
+PLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parse(Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+PLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parse(Ljava/lang/CharSequence;Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parseAndKeepRawInput(Ljava/lang/CharSequence;Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parseAndKeepRawInput(Ljava/lang/CharSequence;Ljava/lang/String;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parseHelper(Ljava/lang/CharSequence;Ljava/lang/String;ZZLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->parsePrefixAsIdd(Ljava/util/regex/Pattern;Ljava/lang/StringBuilder;)Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->prefixNumberWithCountryCallingCode(ILcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;Ljava/lang/StringBuilder;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->rawInputContainsNationalPrefix(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->setInstance(Lcom/android/i18n/phonenumbers/PhoneNumberUtil;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->setItalianLeadingZerosForPhoneNumber(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;)V
+HSPLcom/android/i18n/phonenumbers/PhoneNumberUtil;->testNumberLength(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;)Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getFormat()Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getLeadingDigitsPattern(I)Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getNationalPrefixFormattingRule()Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->getPattern()Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->leadingDigitsPatternSize()I
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->readExternal(Ljava/io/ObjectInput;)V
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->setDomesticCarrierCodeFormattingRule(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->setFormat(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->setNationalPrefixFormattingRule(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->setNationalPrefixOptionalWhenFormatting(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->setPattern(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;-><init>()V
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getCountryCode()I
+HPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getFixedLine()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getGeneralDesc()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getInternationalPrefix()Ljava/lang/String;
+PLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getLeadingDigits()Ljava/lang/String;
+HPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getMobile()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getNationalPrefix()Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getNationalPrefixForParsing()Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getNationalPrefixTransformRule()Ljava/lang/String;
+HPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getPager()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getPersonalNumber()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getPremiumRate()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getSameMobileAndFixedLinePattern()Z
+HPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getSharedCost()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getTollFree()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getUan()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getVoicemail()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->getVoip()Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->hasLeadingDigits()Z
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->intlNumberFormats()Ljava/util/List;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->numberFormats()Ljava/util/List;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->readExternal(Ljava/io/ObjectInput;)V
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setCountryCode(I)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setFixedLine(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setGeneralDesc(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setId(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setInternationalPrefix(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+PLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setLeadingDigits(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setLeadingZeroPossible(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setMainCountryForCode(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setMobile(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setMobileNumberPortableRegion(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setNationalPrefix(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setNationalPrefixForParsing(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+PLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setNationalPrefixTransformRule(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setNoInternationalDialling(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setPager(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setPersonalNumber(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setPreferredExtnPrefix(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setPreferredInternationalPrefix(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setPremiumRate(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setSameMobileAndFixedLinePattern(Z)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setSharedCost(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setTollFree(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setUan(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setVoicemail(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;->setVoip(Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadataCollection;->getMetadataList()Ljava/util/List;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->getNationalNumberPattern()Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->getPossibleLengthList()Ljava/util/List;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->getPossibleLengthLocalOnlyList()Ljava/util/List;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->readExternal(Ljava/io/ObjectInput;)V
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->setExampleNumber(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->setNationalNumberPattern(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getCountryCode()I
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getCountryCodeSource()Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getNationalNumber()J
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getNumberOfLeadingZeros()I
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->getRawInput()Ljava/lang/String;
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasCountryCodeSource()Z
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasExtension()Z
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->hasRawInput()Z
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->isItalianLeadingZero()Z
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setCountryCode(I)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setCountryCodeSource(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setItalianLeadingZero(Z)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setNationalNumber(J)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+HPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setNumberOfLeadingZeros(I)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+HSPLcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->setRawInput(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
+HSPLcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;->matchNationalNumber(Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;Z)Z
+HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache$1;->removeEldestEntry(Ljava/util/Map$Entry;)Z
+HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;->put(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/i18n/phonenumbers/internal/RegexCache;->getPatternForRegex(Ljava/lang/String;)Ljava/util/regex/Pattern;
+HSPLcom/android/ims/ImsConfig;-><init>(Landroid/telephony/ims/aidl/IImsConfig;)V
+HSPLcom/android/ims/ImsConfig;->addConfigCallback(Landroid/telephony/ims/ProvisioningManager$Callback;)V
+HSPLcom/android/ims/ImsConfig;->addConfigCallback(Landroid/telephony/ims/aidl/IImsConfigCallback;)V
+HSPLcom/android/ims/ImsConfig;->getThreadExecutor()Ljava/util/concurrent/Executor;
+HPLcom/android/ims/ImsConfig;->removeConfigCallback(Landroid/telephony/ims/aidl/IImsConfigCallback;)V
+HPLcom/android/ims/ImsConfig;->setConfig(II)I
+HSPLcom/android/ims/ImsConfigListener$Stub;-><init>()V
+HSPLcom/android/ims/ImsException;-><init>(Ljava/lang/String;I)V
+HSPLcom/android/ims/ImsException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;I)V
+HSPLcom/android/ims/ImsException;->getCode()I
+HSPLcom/android/ims/internal/IImsEcbm$Stub;-><init>()V
+HSPLcom/android/ims/internal/IImsEcbmListener$Stub;-><init>()V
+HSPLcom/android/ims/internal/IImsExternalCallStateListener$Stub;-><init>()V
+HSPLcom/android/ims/internal/IImsFeatureStatusCallback$Stub;-><init>()V
+HSPLcom/android/ims/internal/IImsFeatureStatusCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/ims/internal/IImsMultiEndpoint$Stub;-><init>()V
+HSPLcom/android/ims/internal/IImsServiceFeatureCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/ims/internal/IImsServiceFeatureCallback$Stub$Proxy;->imsFeatureCreated(II)V
+HPLcom/android/ims/internal/IImsServiceFeatureCallback$Stub$Proxy;->imsStatusChanged(III)V
+HSPLcom/android/ims/internal/IImsServiceFeatureCallback$Stub;-><init>()V
+HPLcom/android/ims/internal/IImsServiceFeatureCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/ims/internal/IImsServiceFeatureCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsServiceFeatureCallback;
+HPLcom/android/ims/internal/IImsServiceFeatureCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/ims/internal/IImsUt$Stub;-><init>()V
+HSPLcom/android/ims/internal/IImsUtListener$Stub;-><init>()V
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController$1;-><init>(Lcom/android/internal/accessibility/AccessibilityShortcutController;Landroid/os/Handler;)V
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController$FrameworkObjectProvider;-><init>()V
+PLcom/android/internal/accessibility/AccessibilityShortcutController$ToggleableFrameworkFeatureInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController;-><init>(Landroid/content/Context;Landroid/os/Handler;I)V
+PLcom/android/internal/accessibility/AccessibilityShortcutController;->getFrameworkShortcutFeaturesMap()Ljava/util/Map;
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController;->hasShortcutTarget()Z
+PLcom/android/internal/accessibility/AccessibilityShortcutController;->isAccessibilityShortcutAvailable(Z)Z
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController;->onSettingsChanged()V
+HSPLcom/android/internal/accessibility/AccessibilityShortcutController;->setCurrentUser(I)V
+PLcom/android/internal/alsa/AlsaCardsParser$AlsaCardRecord;-><init>(Lcom/android/internal/alsa/AlsaCardsParser;)V
+PLcom/android/internal/alsa/AlsaCardsParser$AlsaCardRecord;->access$100(Lcom/android/internal/alsa/AlsaCardsParser$AlsaCardRecord;Ljava/lang/String;I)Z
+PLcom/android/internal/alsa/AlsaCardsParser$AlsaCardRecord;->isUsb()Z
+PLcom/android/internal/alsa/AlsaCardsParser$AlsaCardRecord;->parse(Ljava/lang/String;I)Z
+HSPLcom/android/internal/alsa/AlsaCardsParser;-><init>()V
+PLcom/android/internal/alsa/AlsaCardsParser;->access$000()Lcom/android/internal/alsa/LineTokenizer;
+PLcom/android/internal/alsa/AlsaCardsParser;->findCardNumFor(Ljava/lang/String;)Lcom/android/internal/alsa/AlsaCardsParser$AlsaCardRecord;
+PLcom/android/internal/alsa/AlsaCardsParser;->getScanStatus()I
+PLcom/android/internal/alsa/AlsaCardsParser;->scan()I
+PLcom/android/internal/alsa/LineTokenizer;->nextDelimiter(Ljava/lang/String;I)I
+PLcom/android/internal/alsa/LineTokenizer;->nextToken(Ljava/lang/String;I)I
HSPLcom/android/internal/app/AssistUtils;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/app/AssistUtils;->allowDisablingAssistDisclosure(Landroid/content/Context;)Z
+HPLcom/android/internal/app/AssistUtils;->getActiveServiceComponentName()Landroid/content/ComponentName;
HSPLcom/android/internal/app/AssistUtils;->getAssistComponentForUser(I)Landroid/content/ComponentName;
+HPLcom/android/internal/app/AssistUtils;->hideCurrentSession()V
+PLcom/android/internal/app/AssistUtils;->isPreinstalledAssistant(Landroid/content/Context;Landroid/content/ComponentName;)Z
+HPLcom/android/internal/app/AssistUtils;->isSessionRunning()Z
+HPLcom/android/internal/app/AssistUtils;->onLockscreenShown()V
+HPLcom/android/internal/app/AssistUtils;->showSessionForActiveService(Landroid/os/Bundle;ILcom/android/internal/app/IVoiceInteractionSessionShowCallback;Landroid/os/IBinder;)Z
+PLcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy;->opActiveChanged(IILjava/lang/String;Z)V
HSPLcom/android/internal/app/IAppOpsActiveCallback$Stub;-><init>()V
HSPLcom/android/internal/app/IAppOpsActiveCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/app/IAppOpsActiveCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsActiveCallback;
+HPLcom/android/internal/app/IAppOpsActiveCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/app/IAppOpsCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/app/IAppOpsCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/app/IAppOpsCallback$Stub$Proxy;->opChanged(IILjava/lang/String;)V
+HSPLcom/android/internal/app/IAppOpsCallback$Stub;-><init>()V
+HSPLcom/android/internal/app/IAppOpsCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/app/IAppOpsCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsCallback;
+PLcom/android/internal/app/IAppOpsCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/app/IAppOpsNotedCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/app/IAppOpsNotedCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/app/IAppOpsNotedCallback$Stub$Proxy;->opNoted(IILjava/lang/String;I)V
+PLcom/android/internal/app/IAppOpsNotedCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsNotedCallback;
+HPLcom/android/internal/app/IAppOpsNotedCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperation(IILjava/lang/String;)I
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperationRaw(IILjava/lang/String;)I
HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkPackage(ILjava/lang/String;)I
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->getOpsForPackage(ILjava/lang/String;[I)Ljava/util/List;
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->getPackagesForOps([I)Ljava/util/List;
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->getToken(Landroid/os/IBinder;)Landroid/os/IBinder;
HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->noteAsyncOp(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->noteOperation(IILjava/lang/String;Ljava/lang/String;)I
HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->noteProxyOperation(IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->setMode(IILjava/lang/String;I)V
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->setUidMode(III)V
HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->shouldCollectNotes(I)Z
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;Z)I
HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingActive([ILcom/android/internal/app/IAppOpsActiveCallback;)V
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingModeWithFlags(ILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
+HSPLcom/android/internal/app/IAppOpsService$Stub$Proxy;->stopWatchingMode(Lcom/android/internal/app/IAppOpsCallback;)V
+HSPLcom/android/internal/app/IAppOpsService$Stub;-><init>()V
+HSPLcom/android/internal/app/IAppOpsService$Stub;->asBinder()Landroid/os/IBinder;
HSPLcom/android/internal/app/IAppOpsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsService;
+PLcom/android/internal/app/IAppOpsService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLcom/android/internal/app/IAppOpsService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->computeChargeTimeRemaining()J
+HPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->getCellularBatteryStats()Landroid/os/connectivity/CellularBatteryStats;
+HPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->getGpsBatteryStats()Landroid/os/connectivity/GpsBatteryStats;
+HPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->getWifiBatteryStats()Landroid/os/connectivity/WifiBatteryStats;
HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->isCharging()Z
+HPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteBleScanResults(Landroid/os/WorkSource;I)V
+HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteBleScanStarted(Landroid/os/WorkSource;Z)V
+HPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteBleScanStopped(Landroid/os/WorkSource;Z)V
+HSPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->noteResetBleScan()V
+HPLcom/android/internal/app/IBatteryStats$Stub$Proxy;->takeUidSnapshot(I)Landroid/os/health/HealthStatsParceler;
+HSPLcom/android/internal/app/IBatteryStats$Stub;-><init>()V
+HSPLcom/android/internal/app/IBatteryStats$Stub;->asBinder()Landroid/os/IBinder;
HSPLcom/android/internal/app/IBatteryStats$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IBatteryStats;
+PLcom/android/internal/app/IBatteryStats$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLcom/android/internal/app/IBatteryStats$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/app/ISoundTriggerService$Stub;-><init>()V
+PLcom/android/internal/app/ISoundTriggerService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->deliverNewSession(Landroid/os/IBinder;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;)Z
+HPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->getActiveServiceComponentName()Landroid/content/ComponentName;
+HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->getDspModuleProperties(Landroid/service/voice/IVoiceInteractionService;)Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
+HPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->hideCurrentSession()V
+HPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->hideSessionFromSession(Landroid/os/IBinder;)Z
+HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->isEnrolledForKeyphrase(Landroid/service/voice/IVoiceInteractionService;ILjava/lang/String;)Z
+HPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->isSessionRunning()Z
+HPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->onLockscreenShown()V
+HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->setUiHints(Landroid/service/voice/IVoiceInteractionService;Landroid/os/Bundle;)V
+HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->showSession(Landroid/service/voice/IVoiceInteractionService;Landroid/os/Bundle;I)V
+HPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->showSessionForActiveService(Landroid/os/Bundle;ILcom/android/internal/app/IVoiceInteractionSessionShowCallback;Landroid/os/IBinder;)Z
+HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->showSessionFromSession(Landroid/os/IBinder;Landroid/os/Bundle;I)Z
+HPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->startRecognition(Landroid/service/voice/IVoiceInteractionService;ILjava/lang/String;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
+HPLcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->stopRecognition(Landroid/service/voice/IVoiceInteractionService;ILandroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
+HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub;-><init>()V
+HSPLcom/android/internal/app/IVoiceInteractionManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionManagerService;
+PLcom/android/internal/app/IVoiceInteractionManagerService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLcom/android/internal/app/IVoiceInteractionManagerService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;->onSetUiHints(Landroid/os/Bundle;)V
+PLcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;->onVoiceSessionHidden()V
+PLcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;->onVoiceSessionShown()V
+PLcom/android/internal/app/IVoiceInteractionSessionListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionSessionListener;
+HPLcom/android/internal/app/IVoiceInteractionSessionListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub$Proxy;->onShown()V
+PLcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;-><init>()V
+PLcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionSessionShowCallback;
+PLcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/app/IVoiceInteractor$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/app/IVoiceInteractor$Stub;-><init>()V
+HSPLcom/android/internal/app/IVoiceInteractor$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/app/IVoiceInteractor$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractor;
+PLcom/android/internal/app/IntentForwarderActivity;-><clinit>()V
+HSPLcom/android/internal/app/ProcessMap;-><init>()V
+HSPLcom/android/internal/app/ProcessMap;->get(Ljava/lang/String;I)Ljava/lang/Object;
+HSPLcom/android/internal/app/ProcessMap;->getMap()Landroid/util/ArrayMap;
+HSPLcom/android/internal/app/ProcessMap;->put(Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/internal/app/ProcessMap;->remove(Ljava/lang/String;I)Ljava/lang/Object;
+PLcom/android/internal/app/ProcessMap;->size()I
+PLcom/android/internal/app/ResolverActivity$ActionTitle;->forAction(Ljava/lang/String;)Lcom/android/internal/app/ResolverActivity$ActionTitle;
+PLcom/android/internal/app/ResolverActivity$ActionTitle;->values()[Lcom/android/internal/app/ResolverActivity$ActionTitle;
+PLcom/android/internal/app/ResolverActivity;->getLabelRes(Ljava/lang/String;)I
+HPLcom/android/internal/app/WindowDecorActionBar;-><init>(Landroid/app/Activity;)V
+HPLcom/android/internal/app/WindowDecorActionBar;->access$000(Lcom/android/internal/app/WindowDecorActionBar;)Z
+HPLcom/android/internal/app/WindowDecorActionBar;->access$100(Lcom/android/internal/app/WindowDecorActionBar;)Landroid/view/View;
+HPLcom/android/internal/app/WindowDecorActionBar;->access$200(Lcom/android/internal/app/WindowDecorActionBar;)Lcom/android/internal/widget/ActionBarContainer;
+HPLcom/android/internal/app/WindowDecorActionBar;->access$300(Lcom/android/internal/app/WindowDecorActionBar;)Lcom/android/internal/widget/ActionBarContainer;
+HPLcom/android/internal/app/WindowDecorActionBar;->access$502(Lcom/android/internal/app/WindowDecorActionBar;Landroid/animation/Animator;)Landroid/animation/Animator;
+HPLcom/android/internal/app/WindowDecorActionBar;->access$600(Lcom/android/internal/app/WindowDecorActionBar;)Lcom/android/internal/widget/ActionBarOverlayLayout;
+HPLcom/android/internal/app/WindowDecorActionBar;->checkShowingFlags(ZZZ)Z
+HPLcom/android/internal/app/WindowDecorActionBar;->completeDeferredDestroyActionMode()V
+HPLcom/android/internal/app/WindowDecorActionBar;->doHide(Z)V
+HPLcom/android/internal/app/WindowDecorActionBar;->enableContentAnimations(Z)V
+HPLcom/android/internal/app/WindowDecorActionBar;->getDecorToolbar(Landroid/view/View;)Lcom/android/internal/widget/DecorToolbar;
+HPLcom/android/internal/app/WindowDecorActionBar;->getNavigationMode()I
+HPLcom/android/internal/app/WindowDecorActionBar;->getThemedContext()Landroid/content/Context;
+HPLcom/android/internal/app/WindowDecorActionBar;->hide()V
+HPLcom/android/internal/app/WindowDecorActionBar;->init(Landroid/view/View;)V
+HPLcom/android/internal/app/WindowDecorActionBar;->onWindowVisibilityChanged(I)V
+HPLcom/android/internal/app/WindowDecorActionBar;->setDisplayOptions(II)V
+HPLcom/android/internal/app/WindowDecorActionBar;->setElevation(F)V
+HPLcom/android/internal/app/WindowDecorActionBar;->setHasEmbeddedTabs(Z)V
+HPLcom/android/internal/app/WindowDecorActionBar;->setHomeButtonEnabled(Z)V
+HPLcom/android/internal/app/WindowDecorActionBar;->setShowHideAnimationEnabled(Z)V
+HPLcom/android/internal/app/WindowDecorActionBar;->setWindowTitle(Ljava/lang/CharSequence;)V
+HPLcom/android/internal/app/WindowDecorActionBar;->showForSystem()V
+HPLcom/android/internal/app/WindowDecorActionBar;->updateVisibility(Z)V
+HPLcom/android/internal/app/procstats/-$$Lambda$AssociationState$kgfxYpOOyQWCFPwGaRqRz0N4-zg;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/internal/app/procstats/-$$Lambda$ProcessStats$6CxEiT4FvK_P75G9LzEfE1zL88Q;-><clinit>()V
+HSPLcom/android/internal/app/procstats/-$$Lambda$ProcessStats$6CxEiT4FvK_P75G9LzEfE1zL88Q;-><init>()V
+HPLcom/android/internal/app/procstats/-$$Lambda$ProcessStats$6CxEiT4FvK_P75G9LzEfE1zL88Q;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HPLcom/android/internal/app/procstats/AssociationState$SourceDumpContainer;-><init>(Lcom/android/internal/app/procstats/AssociationState;Lcom/android/internal/app/procstats/AssociationState$SourceState;)V
+HSPLcom/android/internal/app/procstats/AssociationState$SourceKey;-><init>(ILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/internal/app/procstats/AssociationState$SourceKey;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/internal/app/procstats/AssociationState$SourceKey;->hashCode()I
+HSPLcom/android/internal/app/procstats/AssociationState$SourceState;-><init>(Lcom/android/internal/app/procstats/AssociationState;Lcom/android/internal/app/procstats/AssociationState$SourceKey;)V
+PLcom/android/internal/app/procstats/AssociationState$SourceState;->getAssociationState()Lcom/android/internal/app/procstats/AssociationState;
+PLcom/android/internal/app/procstats/AssociationState$SourceState;->getProcessName()Ljava/lang/String;
+PLcom/android/internal/app/procstats/AssociationState$SourceState;->getUid()I
+PLcom/android/internal/app/procstats/AssociationState$SourceState;->makeDurations()V
+HPLcom/android/internal/app/procstats/AssociationState$SourceState;->startActive(J)V
+PLcom/android/internal/app/procstats/AssociationState$SourceState;->stop()V
+HPLcom/android/internal/app/procstats/AssociationState$SourceState;->stopActive(J)V
+HPLcom/android/internal/app/procstats/AssociationState$SourceState;->stopTracking(J)V
+HPLcom/android/internal/app/procstats/AssociationState$SourceState;->toString()Ljava/lang/String;
+HPLcom/android/internal/app/procstats/AssociationState$SourceState;->trackProcState(IIJ)V
+HSPLcom/android/internal/app/procstats/AssociationState;-><init>(Lcom/android/internal/app/procstats/ProcessStats;Lcom/android/internal/app/procstats/ProcessStats$PackageState;Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/app/procstats/ProcessState;)V
+PLcom/android/internal/app/procstats/AssociationState;->access$000(Lcom/android/internal/app/procstats/AssociationState;)Lcom/android/internal/app/procstats/ProcessStats;
+PLcom/android/internal/app/procstats/AssociationState;->access$100(Lcom/android/internal/app/procstats/AssociationState;)I
+PLcom/android/internal/app/procstats/AssociationState;->access$108(Lcom/android/internal/app/procstats/AssociationState;)I
+PLcom/android/internal/app/procstats/AssociationState;->access$110(Lcom/android/internal/app/procstats/AssociationState;)I
+PLcom/android/internal/app/procstats/AssociationState;->access$208(Lcom/android/internal/app/procstats/AssociationState;)I
+PLcom/android/internal/app/procstats/AssociationState;->access$300(Lcom/android/internal/app/procstats/AssociationState;)J
+PLcom/android/internal/app/procstats/AssociationState;->access$302(Lcom/android/internal/app/procstats/AssociationState;J)J
+PLcom/android/internal/app/procstats/AssociationState;->access$414(Lcom/android/internal/app/procstats/AssociationState;J)J
+PLcom/android/internal/app/procstats/AssociationState;->access$500(Lcom/android/internal/app/procstats/AssociationState;)I
+PLcom/android/internal/app/procstats/AssociationState;->access$510(Lcom/android/internal/app/procstats/AssociationState;)I
+PLcom/android/internal/app/procstats/AssociationState;->access$614(Lcom/android/internal/app/procstats/AssociationState;J)J
+PLcom/android/internal/app/procstats/AssociationState;->access$700(Lcom/android/internal/app/procstats/AssociationState;)J
+HPLcom/android/internal/app/procstats/AssociationState;->add(Lcom/android/internal/app/procstats/AssociationState;)V
+HPLcom/android/internal/app/procstats/AssociationState;->commitStateTime(J)V
+HPLcom/android/internal/app/procstats/AssociationState;->createSortedAssociations(JJ)Ljava/util/ArrayList;
+PLcom/android/internal/app/procstats/AssociationState;->dumpActiveDurationSummary(Ljava/io/PrintWriter;Lcom/android/internal/app/procstats/AssociationState$SourceState;JJZ)V
+HPLcom/android/internal/app/procstats/AssociationState;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JJ)V
+HPLcom/android/internal/app/procstats/AssociationState;->dumpStats(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;JJLjava/lang/String;ZZ)V
+HPLcom/android/internal/app/procstats/AssociationState;->dumpTime(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/internal/app/procstats/AssociationState$SourceState;JJZZ)J
+HPLcom/android/internal/app/procstats/AssociationState;->dumpTimesCheckin(Ljava/io/PrintWriter;Ljava/lang/String;IJLjava/lang/String;J)V
+HPLcom/android/internal/app/procstats/AssociationState;->getActiveDuration(J)J
+HPLcom/android/internal/app/procstats/AssociationState;->getName()Ljava/lang/String;
+PLcom/android/internal/app/procstats/AssociationState;->getPackage()Ljava/lang/String;
+PLcom/android/internal/app/procstats/AssociationState;->getProcess()Lcom/android/internal/app/procstats/ProcessState;
+HPLcom/android/internal/app/procstats/AssociationState;->getProcessName()Ljava/lang/String;
+HPLcom/android/internal/app/procstats/AssociationState;->getTotalDuration(J)J
+PLcom/android/internal/app/procstats/AssociationState;->getUid()I
+PLcom/android/internal/app/procstats/AssociationState;->isInUse()Z
+HPLcom/android/internal/app/procstats/AssociationState;->lambda$static$0(Landroid/util/Pair;Landroid/util/Pair;)I
+HPLcom/android/internal/app/procstats/AssociationState;->readFromParcel(Lcom/android/internal/app/procstats/ProcessStats;Landroid/os/Parcel;I)Ljava/lang/String;
+HPLcom/android/internal/app/procstats/AssociationState;->resetSafely(J)V
+HSPLcom/android/internal/app/procstats/AssociationState;->setProcess(Lcom/android/internal/app/procstats/ProcessState;)V
+HSPLcom/android/internal/app/procstats/AssociationState;->startSource(ILjava/lang/String;Ljava/lang/String;)Lcom/android/internal/app/procstats/AssociationState$SourceState;
+HPLcom/android/internal/app/procstats/AssociationState;->writeToParcel(Lcom/android/internal/app/procstats/ProcessStats;Landroid/os/Parcel;J)V
+HPLcom/android/internal/app/procstats/DumpUtils;->collapseString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/internal/app/procstats/DumpUtils;->dumpAdjTimesCheckin(Ljava/io/PrintWriter;Ljava/lang/String;[JIJJ)V
+HPLcom/android/internal/app/procstats/DumpUtils;->dumpProcessSummaryLocked(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;[I[I[IJJ)V
+PLcom/android/internal/app/procstats/DumpUtils;->dumpSingleTime(Ljava/io/PrintWriter;Ljava/lang/String;[JIJJ)J
+PLcom/android/internal/app/procstats/DumpUtils;->printAdjTag(Ljava/io/PrintWriter;I)V
+HPLcom/android/internal/app/procstats/DumpUtils;->printAdjTagAndValue(Ljava/io/PrintWriter;IJ)V
+PLcom/android/internal/app/procstats/DumpUtils;->printArrayEntry(Ljava/io/PrintWriter;[Ljava/lang/String;II)I
+HPLcom/android/internal/app/procstats/DumpUtils;->printMemLabel(Ljava/io/PrintWriter;IC)V
+HPLcom/android/internal/app/procstats/DumpUtils;->printPercent(Ljava/io/PrintWriter;D)V
+HPLcom/android/internal/app/procstats/DumpUtils;->printProcStateAdjTagProto(Landroid/util/proto/ProtoOutputStream;JJI)V
+PLcom/android/internal/app/procstats/DumpUtils;->printProcStateTag(Ljava/io/PrintWriter;I)V
+PLcom/android/internal/app/procstats/DumpUtils;->printProcStateTagAndValue(Ljava/io/PrintWriter;IJ)V
+HPLcom/android/internal/app/procstats/DumpUtils;->printProcStateTagProto(Landroid/util/proto/ProtoOutputStream;JJJI)V
+HPLcom/android/internal/app/procstats/DumpUtils;->printProto(Landroid/util/proto/ProtoOutputStream;J[III)I
+HPLcom/android/internal/app/procstats/DumpUtils;->printScreenLabel(Ljava/io/PrintWriter;I)V
+HSPLcom/android/internal/app/procstats/DurationsTable;-><init>(Lcom/android/internal/app/procstats/SparseMappingTable;)V
+HSPLcom/android/internal/app/procstats/DurationsTable;->addDuration(IJ)V
+HSPLcom/android/internal/app/procstats/DurationsTable;->addDurations(Lcom/android/internal/app/procstats/DurationsTable;)V
+HSPLcom/android/internal/app/procstats/IProcessStats$Stub;-><init>()V
+HSPLcom/android/internal/app/procstats/IProcessStats$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/procstats/IProcessStats;
+PLcom/android/internal/app/procstats/IProcessStats$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLcom/android/internal/app/procstats/IProcessStats$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/app/procstats/ProcessState$1;->compare(Lcom/android/internal/app/procstats/ProcessState;Lcom/android/internal/app/procstats/ProcessState;)I
+HPLcom/android/internal/app/procstats/ProcessState$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HPLcom/android/internal/app/procstats/ProcessState$PssAggr;-><init>()V
+HPLcom/android/internal/app/procstats/ProcessState$PssAggr;->add(JJ)V
+HSPLcom/android/internal/app/procstats/ProcessState;-><init>(Lcom/android/internal/app/procstats/ProcessState;Ljava/lang/String;IJLjava/lang/String;J)V
+HSPLcom/android/internal/app/procstats/ProcessState;-><init>(Lcom/android/internal/app/procstats/ProcessStats;Ljava/lang/String;IJLjava/lang/String;)V
+PLcom/android/internal/app/procstats/ProcessState;->access$000(Lcom/android/internal/app/procstats/ProcessState;)J
+HPLcom/android/internal/app/procstats/ProcessState;->add(Lcom/android/internal/app/procstats/ProcessState;)V
+HPLcom/android/internal/app/procstats/ProcessState;->addPss(JJJZIJLandroid/util/ArrayMap;)V
+HPLcom/android/internal/app/procstats/ProcessState;->aggregatePss(Lcom/android/internal/app/procstats/ProcessStats$TotalMemoryUseCollection;J)V
+HSPLcom/android/internal/app/procstats/ProcessState;->clone(J)Lcom/android/internal/app/procstats/ProcessState;
+HSPLcom/android/internal/app/procstats/ProcessState;->commitStateTime(J)V
+HPLcom/android/internal/app/procstats/ProcessState;->computeProcessData(Lcom/android/internal/app/procstats/ProcessStats$ProcessDataCollection;J)V
+HPLcom/android/internal/app/procstats/ProcessState;->computeProcessTimeLocked([I[I[IJ)J
+HPLcom/android/internal/app/procstats/ProcessState;->decActiveServices(Ljava/lang/String;)V
+HPLcom/android/internal/app/procstats/ProcessState;->decStartedServices(IJLjava/lang/String;)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpAllPssCheckin(Ljava/io/PrintWriter;)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpAllStateCheckin(Ljava/io/PrintWriter;J)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JLjava/lang/String;IJ)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpInternalLocked(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpPackageProcCheckin(Ljava/io/PrintWriter;Ljava/lang/String;IJLjava/lang/String;J)V
+PLcom/android/internal/app/procstats/ProcessState;->dumpProcCheckin(Ljava/io/PrintWriter;Ljava/lang/String;IJ)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpProcessState(Ljava/io/PrintWriter;Ljava/lang/String;[I[I[IJ)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpProcessSummaryDetails(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;[I[I[IJJZ)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpPss(Ljava/io/PrintWriter;Ljava/lang/String;[I[I[IJ)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpPssSamples(Ljava/io/PrintWriter;[JI)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpPssSamplesCheckin(Ljava/io/PrintWriter;[JI)V
+HPLcom/android/internal/app/procstats/ProcessState;->dumpSummary(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;[I[I[IJJ)V
+HSPLcom/android/internal/app/procstats/ProcessState;->ensureNotDead()V
+PLcom/android/internal/app/procstats/ProcessState;->getCombinedState()I
+HPLcom/android/internal/app/procstats/ProcessState;->getCommonProcess()Lcom/android/internal/app/procstats/ProcessState;
+HPLcom/android/internal/app/procstats/ProcessState;->getDuration(IJ)J
+HPLcom/android/internal/app/procstats/ProcessState;->getDurationsBucketCount()I
+HSPLcom/android/internal/app/procstats/ProcessState;->getName()Ljava/lang/String;
+HSPLcom/android/internal/app/procstats/ProcessState;->getPackage()Ljava/lang/String;
+HPLcom/android/internal/app/procstats/ProcessState;->getPssAverage(I)J
+HPLcom/android/internal/app/procstats/ProcessState;->getPssMaximum(I)J
+HPLcom/android/internal/app/procstats/ProcessState;->getPssMinimum(I)J
+HPLcom/android/internal/app/procstats/ProcessState;->getPssRssAverage(I)J
+HPLcom/android/internal/app/procstats/ProcessState;->getPssRssMaximum(I)J
+HPLcom/android/internal/app/procstats/ProcessState;->getPssRssMinimum(I)J
+HPLcom/android/internal/app/procstats/ProcessState;->getPssSampleCount(I)J
+HPLcom/android/internal/app/procstats/ProcessState;->getPssUssAverage(I)J
+HPLcom/android/internal/app/procstats/ProcessState;->getPssUssMaximum(I)J
+HPLcom/android/internal/app/procstats/ProcessState;->getPssUssMinimum(I)J
+HSPLcom/android/internal/app/procstats/ProcessState;->getTotalRunningDuration(J)J
+HSPLcom/android/internal/app/procstats/ProcessState;->getVersion()J
+HPLcom/android/internal/app/procstats/ProcessState;->hasAnyData()Z
+HSPLcom/android/internal/app/procstats/ProcessState;->incActiveServices(Ljava/lang/String;)V
+PLcom/android/internal/app/procstats/ProcessState;->incStartedServices(IJLjava/lang/String;)V
+PLcom/android/internal/app/procstats/ProcessState;->isActive()Z
+PLcom/android/internal/app/procstats/ProcessState;->isInUse()Z
+HSPLcom/android/internal/app/procstats/ProcessState;->isMultiPackage()Z
+HSPLcom/android/internal/app/procstats/ProcessState;->makeActive()V
+PLcom/android/internal/app/procstats/ProcessState;->makeDead()V
+HSPLcom/android/internal/app/procstats/ProcessState;->makeInactive()V
+HPLcom/android/internal/app/procstats/ProcessState;->pullFixedProc(Landroid/util/ArrayMap;I)Lcom/android/internal/app/procstats/ProcessState;
+HPLcom/android/internal/app/procstats/ProcessState;->pullFixedProc(Ljava/lang/String;)Lcom/android/internal/app/procstats/ProcessState;
+HPLcom/android/internal/app/procstats/ProcessState;->readFromParcel(Landroid/os/Parcel;Z)Z
+PLcom/android/internal/app/procstats/ProcessState;->reportExcessiveCpu(Landroid/util/ArrayMap;)V
+PLcom/android/internal/app/procstats/ProcessState;->resetSafely(J)V
+HSPLcom/android/internal/app/procstats/ProcessState;->setCombinedState(IJ)V
+HSPLcom/android/internal/app/procstats/ProcessState;->setMultiPackage(Z)V
+HSPLcom/android/internal/app/procstats/ProcessState;->setState(IIJLandroid/util/ArrayMap;)V
+HPLcom/android/internal/app/procstats/ProcessState;->toString()Ljava/lang/String;
+HPLcom/android/internal/app/procstats/ProcessState;->writeToParcel(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/app/procstats/ProcessStats$1;-><init>()V
+PLcom/android/internal/app/procstats/ProcessStats$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/app/procstats/ProcessStats;
+PLcom/android/internal/app/procstats/ProcessStats$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HPLcom/android/internal/app/procstats/ProcessStats$AssociationDumpContainer;-><init>(Lcom/android/internal/app/procstats/ProcessStats;Lcom/android/internal/app/procstats/AssociationState;)V
+HSPLcom/android/internal/app/procstats/ProcessStats$PackageState;-><init>(Lcom/android/internal/app/procstats/ProcessStats;Ljava/lang/String;IJ)V
+HPLcom/android/internal/app/procstats/ProcessStats$PackageState;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JJI)V
+HSPLcom/android/internal/app/procstats/ProcessStats$PackageState;->getAssociationStateLocked(Lcom/android/internal/app/procstats/ProcessState;Ljava/lang/String;)Lcom/android/internal/app/procstats/AssociationState;
+HPLcom/android/internal/app/procstats/ProcessStats$ProcessDataCollection;-><init>([I[I[I)V
+HPLcom/android/internal/app/procstats/ProcessStats$ProcessDataCollection;->print(Ljava/io/PrintWriter;JZ)V
+HSPLcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;-><init>(J)V
+PLcom/android/internal/app/procstats/ProcessStats$TotalMemoryUseCollection;-><init>([I[I)V
+HSPLcom/android/internal/app/procstats/ProcessStats;-><clinit>()V
+PLcom/android/internal/app/procstats/ProcessStats;-><init>(Landroid/os/Parcel;)V
+HSPLcom/android/internal/app/procstats/ProcessStats;-><init>(Z)V
+HPLcom/android/internal/app/procstats/ProcessStats;->add(Lcom/android/internal/app/procstats/ProcessStats;)V
+PLcom/android/internal/app/procstats/ProcessStats;->addSysMemUsage(JJJJJ)V
+HSPLcom/android/internal/app/procstats/ProcessStats;->buildTimePeriodStartClockStr()V
+HPLcom/android/internal/app/procstats/ProcessStats;->collectProcessesLocked([I[I[I[IJLjava/lang/String;Z)Ljava/util/ArrayList;
+HPLcom/android/internal/app/procstats/ProcessStats;->computeTotalMemoryUse(Lcom/android/internal/app/procstats/ProcessStats$TotalMemoryUseCollection;J)V
+HPLcom/android/internal/app/procstats/ProcessStats;->dumpCheckinLocked(Ljava/io/PrintWriter;Ljava/lang/String;I)V
+HPLcom/android/internal/app/procstats/ProcessStats;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+PLcom/android/internal/app/procstats/ProcessStats;->dumpFilteredSummaryLocked(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[I[I[I[IJJLjava/lang/String;Z)V
+HPLcom/android/internal/app/procstats/ProcessStats;->dumpFragmentationLocked(Ljava/io/PrintWriter;)V
+HPLcom/android/internal/app/procstats/ProcessStats;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;JZZZZI)V
+PLcom/android/internal/app/procstats/ProcessStats;->dumpSummaryLocked(Ljava/io/PrintWriter;Ljava/lang/String;JZ)V
+PLcom/android/internal/app/procstats/ProcessStats;->dumpTotalsLocked(Ljava/io/PrintWriter;J)V
+HSPLcom/android/internal/app/procstats/ProcessStats;->evaluateSystemProperties(Z)Z
+HPLcom/android/internal/app/procstats/ProcessStats;->getAssociationStateLocked(Ljava/lang/String;IJLjava/lang/String;Ljava/lang/String;)Lcom/android/internal/app/procstats/AssociationState;
+HSPLcom/android/internal/app/procstats/ProcessStats;->getPackageStateLocked(Ljava/lang/String;IJ)Lcom/android/internal/app/procstats/ProcessStats$PackageState;
+HSPLcom/android/internal/app/procstats/ProcessStats;->getProcessStateLocked(Lcom/android/internal/app/procstats/ProcessStats$PackageState;Ljava/lang/String;)Lcom/android/internal/app/procstats/ProcessState;
+HSPLcom/android/internal/app/procstats/ProcessStats;->getProcessStateLocked(Ljava/lang/String;IJLjava/lang/String;)Lcom/android/internal/app/procstats/ProcessState;
+HSPLcom/android/internal/app/procstats/ProcessStats;->getServiceStateLocked(Ljava/lang/String;IJLjava/lang/String;Ljava/lang/String;)Lcom/android/internal/app/procstats/ServiceState;
+HPLcom/android/internal/app/procstats/ProcessStats;->lambda$static$0(Lcom/android/internal/app/procstats/ProcessStats$AssociationDumpContainer;Lcom/android/internal/app/procstats/ProcessStats$AssociationDumpContainer;)I
+HPLcom/android/internal/app/procstats/ProcessStats;->printMemoryCategory(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;DJJI)J
+PLcom/android/internal/app/procstats/ProcessStats;->read(Ljava/io/InputStream;)V
+PLcom/android/internal/app/procstats/ProcessStats;->readCheckedInt(Landroid/os/Parcel;ILjava/lang/String;)Z
+HPLcom/android/internal/app/procstats/ProcessStats;->readCommonString(Landroid/os/Parcel;I)Ljava/lang/String;
+PLcom/android/internal/app/procstats/ProcessStats;->readCompactedLongArray(Landroid/os/Parcel;I[JI)V
+HPLcom/android/internal/app/procstats/ProcessStats;->readFromParcel(Landroid/os/Parcel;)V
+PLcom/android/internal/app/procstats/ProcessStats;->readFully(Ljava/io/InputStream;[I)[B
+HSPLcom/android/internal/app/procstats/ProcessStats;->reset()V
+HSPLcom/android/internal/app/procstats/ProcessStats;->resetCommon()V
+HPLcom/android/internal/app/procstats/ProcessStats;->resetSafely()V
+HSPLcom/android/internal/app/procstats/ProcessStats;->splitAndParseNumbers(Ljava/lang/String;)[I
+HSPLcom/android/internal/app/procstats/ProcessStats;->updateFragmentation()V
+HSPLcom/android/internal/app/procstats/ProcessStats;->updateTrackingAssociationsLocked(IJ)V
+HPLcom/android/internal/app/procstats/ProcessStats;->writeCommonString(Landroid/os/Parcel;Ljava/lang/String;)V
+PLcom/android/internal/app/procstats/ProcessStats;->writeCompactedLongArray(Landroid/os/Parcel;[JI)V
+HPLcom/android/internal/app/procstats/ProcessStats;->writeToParcel(Landroid/os/Parcel;JI)V
+HSPLcom/android/internal/app/procstats/PssTable;-><init>(Lcom/android/internal/app/procstats/SparseMappingTable;)V
+HPLcom/android/internal/app/procstats/PssTable;->mergeStats(IIJJJJJJJJJ)V
+HPLcom/android/internal/app/procstats/PssTable;->mergeStats(Lcom/android/internal/app/procstats/PssTable;)V
+HPLcom/android/internal/app/procstats/PssTable;->mergeStats([JIIJJJJJJJJJ)V
+HPLcom/android/internal/app/procstats/PssTable;->mergeStats([JI[JI)V
+HPLcom/android/internal/app/procstats/PssTable;->writeStatsToProto(Landroid/util/proto/ProtoOutputStream;[JI)V
+HPLcom/android/internal/app/procstats/PssTable;->writeStatsToProtoForKey(Landroid/util/proto/ProtoOutputStream;I)V
+HSPLcom/android/internal/app/procstats/ServiceState;-><init>(Lcom/android/internal/app/procstats/ProcessStats;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/app/procstats/ProcessState;)V
+HPLcom/android/internal/app/procstats/ServiceState;->add(Lcom/android/internal/app/procstats/ServiceState;)V
+HSPLcom/android/internal/app/procstats/ServiceState;->applyNewOwner(Ljava/lang/Object;)V
+HPLcom/android/internal/app/procstats/ServiceState;->clearCurrentOwner(Ljava/lang/Object;Z)V
+HPLcom/android/internal/app/procstats/ServiceState;->commitStateTime(J)V
+HPLcom/android/internal/app/procstats/ServiceState;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JJ)V
+HPLcom/android/internal/app/procstats/ServiceState;->dumpStats(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJZZ)V
+HPLcom/android/internal/app/procstats/ServiceState;->dumpStats(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIJJJZ)V
+HPLcom/android/internal/app/procstats/ServiceState;->dumpTime(Ljava/io/PrintWriter;Ljava/lang/String;IIJJ)J
+HPLcom/android/internal/app/procstats/ServiceState;->dumpTimeCheckin(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;IJLjava/lang/String;IIIJJ)V
+HPLcom/android/internal/app/procstats/ServiceState;->dumpTimeInternal(Ljava/io/PrintWriter;Ljava/lang/String;IIJJZ)J
+HPLcom/android/internal/app/procstats/ServiceState;->dumpTimesCheckin(Ljava/io/PrintWriter;Ljava/lang/String;IJLjava/lang/String;J)V
+HPLcom/android/internal/app/procstats/ServiceState;->getDuration(IIJIJ)J
+PLcom/android/internal/app/procstats/ServiceState;->getName()Ljava/lang/String;
+HPLcom/android/internal/app/procstats/ServiceState;->getProcessName()Ljava/lang/String;
+PLcom/android/internal/app/procstats/ServiceState;->isInUse()Z
+PLcom/android/internal/app/procstats/ServiceState;->isRestarting()Z
+HPLcom/android/internal/app/procstats/ServiceState;->readFromParcel(Landroid/os/Parcel;)Z
+PLcom/android/internal/app/procstats/ServiceState;->resetSafely(J)V
+HSPLcom/android/internal/app/procstats/ServiceState;->setBound(ZIJ)V
+HSPLcom/android/internal/app/procstats/ServiceState;->setExecuting(ZIJ)V
+HPLcom/android/internal/app/procstats/ServiceState;->setForeground(ZIJ)V
+HPLcom/android/internal/app/procstats/ServiceState;->setMemFactor(IJ)V
+HPLcom/android/internal/app/procstats/ServiceState;->setStarted(ZIJ)V
+HPLcom/android/internal/app/procstats/ServiceState;->toString()Ljava/lang/String;
+HSPLcom/android/internal/app/procstats/ServiceState;->updateRunning(IJ)V
+HPLcom/android/internal/app/procstats/ServiceState;->updateStartedState(IJ)V
+HPLcom/android/internal/app/procstats/ServiceState;->writeToParcel(Landroid/os/Parcel;J)V
+HPLcom/android/internal/app/procstats/ServiceState;->writeTypeToProto(Landroid/util/proto/ProtoOutputStream;JIIIIJJ)V
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;-><init>(Lcom/android/internal/app/procstats/SparseMappingTable;)V
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->assertConsistency()V
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->binarySearch(B)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->copyFrom(Lcom/android/internal/app/procstats/SparseMappingTable$Table;I)V
+PLcom/android/internal/app/procstats/SparseMappingTable$Table;->dumpInternalState()Ljava/lang/String;
+HPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getArrayForKey(I)[J
+HPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getKey(B)I
+HPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getKeyAt(I)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getKeyCount()I
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getOrAddKey(BI)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getValue(I)J
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getValue(II)J
+HPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getValueForId(B)J
+HPLcom/android/internal/app/procstats/SparseMappingTable$Table;->getValueForId(BI)J
+HPLcom/android/internal/app/procstats/SparseMappingTable$Table;->readFromParcel(Landroid/os/Parcel;)Z
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->resetTable()V
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->setValue(IIJ)V
+HSPLcom/android/internal/app/procstats/SparseMappingTable$Table;->setValue(IJ)V
+HPLcom/android/internal/app/procstats/SparseMappingTable$Table;->validateKeys(Z)Z
+HPLcom/android/internal/app/procstats/SparseMappingTable$Table;->writeToParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/app/procstats/SparseMappingTable;-><init>()V
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->access$000(Lcom/android/internal/app/procstats/SparseMappingTable;)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->access$100(Lcom/android/internal/app/procstats/SparseMappingTable;)Ljava/util/ArrayList;
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->access$200(Lcom/android/internal/app/procstats/SparseMappingTable;)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->access$212(Lcom/android/internal/app/procstats/SparseMappingTable;I)I
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->getArrayFromKey(I)I
+PLcom/android/internal/app/procstats/SparseMappingTable;->getIdFromKey(I)B
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->getIndexFromKey(I)I
+HPLcom/android/internal/app/procstats/SparseMappingTable;->readCompactedLongArray(Landroid/os/Parcel;[JI)V
+PLcom/android/internal/app/procstats/SparseMappingTable;->readFromParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/app/procstats/SparseMappingTable;->reset()V
+HPLcom/android/internal/app/procstats/SparseMappingTable;->writeCompactedLongArray(Landroid/os/Parcel;[JI)V
+PLcom/android/internal/app/procstats/SparseMappingTable;->writeToParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/app/procstats/SysMemUsageTable;-><init>(Lcom/android/internal/app/procstats/SparseMappingTable;)V
+PLcom/android/internal/app/procstats/SysMemUsageTable;->dump(Ljava/io/PrintWriter;Ljava/lang/String;[I[I)V
+PLcom/android/internal/app/procstats/SysMemUsageTable;->dumpCategory(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;II)V
+PLcom/android/internal/app/procstats/SysMemUsageTable;->getTotalMemUsage()[J
+PLcom/android/internal/app/procstats/SysMemUsageTable;->mergeStats(I[JI)V
+PLcom/android/internal/app/procstats/SysMemUsageTable;->mergeStats(Lcom/android/internal/app/procstats/SysMemUsageTable;)V
+PLcom/android/internal/app/procstats/SysMemUsageTable;->mergeSysMemUsage([JI[JI)V
+PLcom/android/internal/appwidget/IAppWidgetHost$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/appwidget/IAppWidgetHost$Stub$Proxy;->providersChanged()V
+HSPLcom/android/internal/appwidget/IAppWidgetHost$Stub;-><init>()V
+HSPLcom/android/internal/appwidget/IAppWidgetHost$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/appwidget/IAppWidgetHost$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/appwidget/IAppWidgetHost;
HSPLcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->getAppWidgetIds(Landroid/content/ComponentName;)[I
+HSPLcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->getInstalledProvidersForProfile(IILjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->startListening(Lcom/android/internal/appwidget/IAppWidgetHost;Ljava/lang/String;I[I)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->stopListening(Ljava/lang/String;I)V
+HSPLcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->updateAppWidgetProvider(Landroid/content/ComponentName;Landroid/widget/RemoteViews;)V
+HSPLcom/android/internal/appwidget/IAppWidgetService$Stub;-><init>()V
HSPLcom/android/internal/appwidget/IAppWidgetService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/appwidget/IAppWidgetService;
+PLcom/android/internal/appwidget/IAppWidgetService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLcom/android/internal/appwidget/IAppWidgetService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->cancelFullBackup()V
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->checkFullBackupSize(J)I
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->configurationIntent()Landroid/content/Intent;
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->currentDestinationString()Ljava/lang/String;
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->dataManagementIntent()Landroid/content/Intent;
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->dataManagementIntentLabel()Ljava/lang/CharSequence;
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->finishBackup()I
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->finishRestore()V
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->getBackupQuota(Ljava/lang/String;Z)J
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->getCurrentRestoreSet()J
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->getRestoreData(Landroid/os/ParcelFileDescriptor;)I
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->getTransportFlags()I
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->initializeDevice()I
+HPLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->isAppEligibleForBackup(Landroid/content/pm/PackageInfo;Z)Z
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->name()Ljava/lang/String;
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->nextRestorePackage()Landroid/app/backup/RestoreDescription;
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->performBackup(Landroid/content/pm/PackageInfo;Landroid/os/ParcelFileDescriptor;I)I
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->performFullBackup(Landroid/content/pm/PackageInfo;Landroid/os/ParcelFileDescriptor;I)I
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->requestBackupTime()J
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->requestFullBackupTime()J
+HPLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->sendBackupData(I)I
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->startRestore(J[Landroid/content/pm/PackageInfo;)I
+PLcom/android/internal/backup/IBackupTransport$Stub$Proxy;->transportDirName()Ljava/lang/String;
+PLcom/android/internal/backup/IBackupTransport$Stub;-><init>()V
+HSPLcom/android/internal/backup/IBackupTransport$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/backup/IBackupTransport$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/backup/IBackupTransport;
+HPLcom/android/internal/backup/IBackupTransport$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;-><init>()V
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->getMainColor()I
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->setColorPalette([I)V
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->setMainColor(I)V
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->setSecondaryColor(I)V
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->setSupportsDarkText(Z)V
+HSPLcom/android/internal/colorextraction/ColorExtractor$GradientColors;->supportsDarkText()Z
+HSPLcom/android/internal/colorextraction/types/Tonal$ConfigParser;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/colorextraction/types/Tonal$ConfigParser;->getTonalPalettes()Ljava/util/ArrayList;
+HSPLcom/android/internal/colorextraction/types/Tonal$ConfigParser;->parsePalettes(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/internal/colorextraction/types/Tonal$ConfigParser;->readFloatArray(Ljava/lang/String;)[F
+HSPLcom/android/internal/colorextraction/types/Tonal$ConfigParser;->readPalette(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/internal/colorextraction/types/Tonal$TonalPalette;
+HSPLcom/android/internal/colorextraction/types/Tonal$TonalPalette;-><init>([F[F[F)V
+HSPLcom/android/internal/colorextraction/types/Tonal;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/colorextraction/types/Tonal;->applyFallback(Landroid/app/WallpaperColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;)V
+HSPLcom/android/internal/colorextraction/types/Tonal;->applyFallback(Landroid/app/WallpaperColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;)V
+HSPLcom/android/internal/colorextraction/types/Tonal;->bestFit(Lcom/android/internal/colorextraction/types/Tonal$TonalPalette;FFF)I
+HSPLcom/android/internal/colorextraction/types/Tonal;->extractInto(Landroid/app/WallpaperColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;)V
+HSPLcom/android/internal/colorextraction/types/Tonal;->findTonalPalette(FF)Lcom/android/internal/colorextraction/types/Tonal$TonalPalette;
+HSPLcom/android/internal/colorextraction/types/Tonal;->fit([FFIFF)[F
+HSPLcom/android/internal/colorextraction/types/Tonal;->fract(F)F
+HSPLcom/android/internal/colorextraction/types/Tonal;->getColorInt(I[F[F[F)I
+HSPLcom/android/internal/colorextraction/types/Tonal;->getColorPalette(Lcom/android/internal/colorextraction/types/Tonal$TonalPalette;)[I
+HSPLcom/android/internal/colorextraction/types/Tonal;->getColorPalette([F[F[F)[I
+HSPLcom/android/internal/colorextraction/types/Tonal;->runTonalExtraction(Landroid/app/WallpaperColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;Lcom/android/internal/colorextraction/ColorExtractor$GradientColors;)Z
HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;-><init>(JI)V
+HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;->equals(Ljava/lang/Object;)Z
HSPLcom/android/internal/compat/ChangeReporter$ChangeReport;->hashCode()I
HSPLcom/android/internal/compat/ChangeReporter;-><init>(I)V
HSPLcom/android/internal/compat/ChangeReporter;->debugLog(IJI)V
HSPLcom/android/internal/compat/ChangeReporter;->isAlreadyReported(ILcom/android/internal/compat/ChangeReporter$ChangeReport;)Z
HSPLcom/android/internal/compat/ChangeReporter;->markAsReported(ILcom/android/internal/compat/ChangeReporter$ChangeReport;)V
HSPLcom/android/internal/compat/ChangeReporter;->reportChange(IJI)V
+HSPLcom/android/internal/compat/ChangeReporter;->resetReportedChanges(I)V
HSPLcom/android/internal/compat/ChangeReporter;->shouldWriteToDebug(IJI)Z
HSPLcom/android/internal/compat/ChangeReporter;->shouldWriteToStatsLog(IJI)Z
HSPLcom/android/internal/compat/ChangeReporter;->stateToString(I)Ljava/lang/String;
+HSPLcom/android/internal/compat/CompatibilityChangeInfo$1;-><init>()V
+HSPLcom/android/internal/compat/CompatibilityChangeInfo;-><clinit>()V
+HSPLcom/android/internal/compat/CompatibilityChangeInfo;-><init>(Ljava/lang/Long;Ljava/lang/String;IZLjava/lang/String;)V
+HSPLcom/android/internal/compat/CompatibilityChangeInfo;->getDisabled()Z
+HSPLcom/android/internal/compat/CompatibilityChangeInfo;->getEnableAfterTargetSdk()I
+HSPLcom/android/internal/compat/CompatibilityChangeInfo;->getId()J
+PLcom/android/internal/compat/CompatibilityChangeInfo;->getName()Ljava/lang/String;
+HSPLcom/android/internal/compat/IPlatformCompat$Stub;-><init>()V
+HSPLcom/android/internal/compat/IPlatformCompat$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/compat/IPlatformCompat;
+PLcom/android/internal/compat/IPlatformCompat$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLcom/android/internal/compat/IPlatformCompat$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/compat/IPlatformCompatNative$Stub;-><init>()V
+PLcom/android/internal/compat/IPlatformCompatNative$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/content/NativeLibraryHelper$Handle;-><init>([JZZZ)V
+HSPLcom/android/internal/content/NativeLibraryHelper$Handle;->close()V
+PLcom/android/internal/content/NativeLibraryHelper$Handle;->create(Landroid/content/pm/PackageParser$PackageLite;)Lcom/android/internal/content/NativeLibraryHelper$Handle;
+HSPLcom/android/internal/content/NativeLibraryHelper$Handle;->create(Landroid/content/pm/parsing/AndroidPackage;)Lcom/android/internal/content/NativeLibraryHelper$Handle;
+PLcom/android/internal/content/NativeLibraryHelper$Handle;->create(Ljava/io/File;)Lcom/android/internal/content/NativeLibraryHelper$Handle;
+HSPLcom/android/internal/content/NativeLibraryHelper$Handle;->create(Ljava/util/List;ZZZ)Lcom/android/internal/content/NativeLibraryHelper$Handle;
+HSPLcom/android/internal/content/NativeLibraryHelper$Handle;->finalize()V
+HSPLcom/android/internal/content/NativeLibraryHelper;->access$000(Ljava/lang/String;)J
+HSPLcom/android/internal/content/NativeLibraryHelper;->access$100(J)V
+PLcom/android/internal/content/NativeLibraryHelper;->copyNativeBinaries(Lcom/android/internal/content/NativeLibraryHelper$Handle;Ljava/io/File;Ljava/lang/String;)I
+PLcom/android/internal/content/NativeLibraryHelper;->copyNativeBinariesForSupportedAbi(Lcom/android/internal/content/NativeLibraryHelper$Handle;Ljava/io/File;[Ljava/lang/String;Z)I
+PLcom/android/internal/content/NativeLibraryHelper;->copyNativeBinariesWithOverride(Lcom/android/internal/content/NativeLibraryHelper$Handle;Ljava/io/File;Ljava/lang/String;)I
+PLcom/android/internal/content/NativeLibraryHelper;->createNativeLibrarySubdir(Ljava/io/File;)V
+HSPLcom/android/internal/content/NativeLibraryHelper;->findSupportedAbi(Lcom/android/internal/content/NativeLibraryHelper$Handle;[Ljava/lang/String;)I
+HSPLcom/android/internal/content/NativeLibraryHelper;->hasRenderscriptBitcode(Lcom/android/internal/content/NativeLibraryHelper$Handle;)Z
+PLcom/android/internal/content/NativeLibraryHelper;->removeNativeBinariesFromDirLI(Ljava/io/File;Z)V
+PLcom/android/internal/content/NativeLibraryHelper;->sumNativeBinaries(Lcom/android/internal/content/NativeLibraryHelper$Handle;Ljava/lang/String;)J
+PLcom/android/internal/content/NativeLibraryHelper;->sumNativeBinariesForSupportedAbi(Lcom/android/internal/content/NativeLibraryHelper$Handle;[Ljava/lang/String;)J
+PLcom/android/internal/content/NativeLibraryHelper;->sumNativeBinariesWithOverride(Lcom/android/internal/content/NativeLibraryHelper$Handle;Ljava/lang/String;)J
+PLcom/android/internal/content/PackageHelper$1;-><init>()V
+PLcom/android/internal/content/PackageHelper$1;->getAllow3rdPartyOnInternalConfig(Landroid/content/Context;)Z
+PLcom/android/internal/content/PackageHelper$1;->getExistingAppInfo(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/ApplicationInfo;
+PLcom/android/internal/content/PackageHelper$1;->getForceAllowOnExternalSetting(Landroid/content/Context;)Z
+PLcom/android/internal/content/PackageHelper$1;->getStorageManager(Landroid/content/Context;)Landroid/os/storage/StorageManager;
+PLcom/android/internal/content/PackageHelper$TestableInterface;-><init>()V
+PLcom/android/internal/content/PackageHelper;->calculateInstalledSize(Landroid/content/pm/PackageParser$PackageLite;Lcom/android/internal/content/NativeLibraryHelper$Handle;Ljava/lang/String;)J
+PLcom/android/internal/content/PackageHelper;->calculateInstalledSize(Landroid/content/pm/PackageParser$PackageLite;Ljava/lang/String;Ljava/io/FileDescriptor;)J
+PLcom/android/internal/content/PackageHelper;->checkFitOnVolume(Landroid/os/storage/StorageManager;Ljava/lang/String;Landroid/content/pm/PackageInstaller$SessionParams;)Z
+PLcom/android/internal/content/PackageHelper;->fitsOnInternal(Landroid/content/Context;Landroid/content/pm/PackageInstaller$SessionParams;)Z
+PLcom/android/internal/content/PackageHelper;->getDefaultTestableInterface()Lcom/android/internal/content/PackageHelper$TestableInterface;
+HSPLcom/android/internal/content/PackageHelper;->getStorageManager()Landroid/os/storage/IStorageManager;
+PLcom/android/internal/content/PackageHelper;->resolveInstallLocation(Landroid/content/Context;Landroid/content/pm/PackageInstaller$SessionParams;)I
+PLcom/android/internal/content/PackageHelper;->resolveInstallLocation(Landroid/content/Context;Ljava/lang/String;IJI)I
+PLcom/android/internal/content/PackageHelper;->resolveInstallVolume(Landroid/content/Context;Landroid/content/pm/PackageInstaller$SessionParams;)Ljava/lang/String;
+PLcom/android/internal/content/PackageHelper;->resolveInstallVolume(Landroid/content/Context;Landroid/content/pm/PackageInstaller$SessionParams;Lcom/android/internal/content/PackageHelper$TestableInterface;)Ljava/lang/String;
+PLcom/android/internal/content/PackageHelper;->resolveInstallVolume(Landroid/content/Context;Ljava/lang/String;IJLcom/android/internal/content/PackageHelper$TestableInterface;)Ljava/lang/String;
+PLcom/android/internal/content/PackageHelper;->translateAllocateFlags(I)I
+HSPLcom/android/internal/content/PackageMonitor;-><init>()V
+PLcom/android/internal/content/PackageMonitor;->didSomePackagesChange()Z
+PLcom/android/internal/content/PackageMonitor;->getChangingUserId()I
+HPLcom/android/internal/content/PackageMonitor;->getPackageName(Landroid/content/Intent;)Ljava/lang/String;
+PLcom/android/internal/content/PackageMonitor;->isComponentModified(Ljava/lang/String;)Z
+PLcom/android/internal/content/PackageMonitor;->isPackageAppearing(Ljava/lang/String;)I
+PLcom/android/internal/content/PackageMonitor;->isPackageDisappearing(Ljava/lang/String;)I
+PLcom/android/internal/content/PackageMonitor;->isPackageModified(Ljava/lang/String;)Z
+HPLcom/android/internal/content/PackageMonitor;->onBeginPackageChanges()V
+HPLcom/android/internal/content/PackageMonitor;->onFinishPackageChanges()V
+PLcom/android/internal/content/PackageMonitor;->onPackageAdded(Ljava/lang/String;I)V
+PLcom/android/internal/content/PackageMonitor;->onPackageAppeared(Ljava/lang/String;I)V
+HPLcom/android/internal/content/PackageMonitor;->onPackageChanged(Ljava/lang/String;I[Ljava/lang/String;)Z
+PLcom/android/internal/content/PackageMonitor;->onPackageDisappeared(Ljava/lang/String;I)V
+PLcom/android/internal/content/PackageMonitor;->onPackageModified(Ljava/lang/String;)V
+PLcom/android/internal/content/PackageMonitor;->onPackageUpdateFinished(Ljava/lang/String;I)V
+PLcom/android/internal/content/PackageMonitor;->onPackageUpdateStarted(Ljava/lang/String;I)V
+HPLcom/android/internal/content/PackageMonitor;->onPackagesUnsuspended([Ljava/lang/String;)V
+HPLcom/android/internal/content/PackageMonitor;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/internal/content/PackageMonitor;->onSomePackagesChanged()V
+HSPLcom/android/internal/content/PackageMonitor;->register(Landroid/content/Context;Landroid/os/Looper;Landroid/os/UserHandle;Z)V
+HSPLcom/android/internal/content/PackageMonitor;->register(Landroid/content/Context;Landroid/os/Looper;Z)V
+HSPLcom/android/internal/content/PackageMonitor;->register(Landroid/content/Context;Landroid/os/UserHandle;ZLandroid/os/Handler;)V
+HPLcom/android/internal/content/ReferrerIntent$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/content/ReferrerIntent;
+HPLcom/android/internal/content/ReferrerIntent$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLcom/android/internal/content/ReferrerIntent;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/graphics/ColorUtils;->HSLToColor([F)I
+HSPLcom/android/internal/graphics/ColorUtils;->RGBToHSL(III[F)V
+HPLcom/android/internal/graphics/ColorUtils;->RGBToXYZ(III[D)V
+HPLcom/android/internal/graphics/ColorUtils;->binaryAlphaSearch(IIFLcom/android/internal/graphics/ColorUtils$ContrastCalculator;)I
+HPLcom/android/internal/graphics/ColorUtils;->blendARGB(IIF)I
+HPLcom/android/internal/graphics/ColorUtils;->calculateContrast(II)D
+HPLcom/android/internal/graphics/ColorUtils;->calculateLuminance(I)D
+HPLcom/android/internal/graphics/ColorUtils;->calculateMinimumBackgroundAlpha(IIF)I
+HSPLcom/android/internal/graphics/ColorUtils;->colorToHSL(I[F)V
+HPLcom/android/internal/graphics/ColorUtils;->colorToXYZ(I[D)V
+HPLcom/android/internal/graphics/ColorUtils;->getTempDouble3Array()[D
+HPLcom/android/internal/graphics/ColorUtils;->lambda$calculateMinimumBackgroundAlpha$0(IIII)D
+HPLcom/android/internal/graphics/ColorUtils;->setAlphaComponent(II)I
+HSPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;-><init>(Landroid/view/Choreographer;)V
+HPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;->getFrameTime()J
+HPLcom/android/internal/graphics/SfVsyncFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V
HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;-><init>(Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable;Landroid/content/res/Resources;)V
HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->addDrawable(Landroid/graphics/drawable/Drawable;)I
HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->canApplyTheme()Z
HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->getCurrentDrawableIndexBasedOnScale()I
+HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->mutate()V
HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;->newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;
HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;-><init>()V
HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;-><init>(Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;Landroid/content/res/Resources;)V
HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;-><init>(Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable$AnimationScaleListState;Landroid/content/res/Resources;Lcom/android/internal/graphics/drawable/AnimationScaleListDrawable$1;)V
+HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->applyTheme(Landroid/content/res/Resources$Theme;)V
+HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->clearMutated()V
HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
+HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->mutate()Landroid/graphics/drawable/Drawable;
HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->onStateChange([I)Z
HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V
+HPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->start()V
+HSPLcom/android/internal/graphics/drawable/AnimationScaleListDrawable;->stop()V
+PLcom/android/internal/infra/-$$Lambda$AbstractRemoteService$6FcEKfZ-7TXLg6dcCU8EMuMNAy4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/internal/infra/-$$Lambda$AbstractRemoteService$9IBVTCLLZgndvH7fu1P14PW1_1o;->accept(Ljava/lang/Object;)V
+PLcom/android/internal/infra/-$$Lambda$AbstractRemoteService$YSUzqqi1Pbrg2dlwMGMtKWbGXck;->accept(Ljava/lang/Object;)V
+PLcom/android/internal/infra/-$$Lambda$AbstractRemoteService$ocrHd68Md9x6FfAzVQ6w8MAjFqY;->accept(Ljava/lang/Object;)V
+PLcom/android/internal/infra/-$$Lambda$EbzSql2RHkXox5Myj8A-7kLC4_A;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/internal/infra/-$$Lambda$ServiceConnector$Impl$3vLWxkP1Z6JyExzdZboFFp1zM20;-><clinit>()V
+PLcom/android/internal/infra/-$$Lambda$ServiceConnector$Impl$3vLWxkP1Z6JyExzdZboFFp1zM20;-><init>()V
+PLcom/android/internal/infra/-$$Lambda$ServiceConnector$Impl$3vLWxkP1Z6JyExzdZboFFp1zM20;->run(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/internal/infra/-$$Lambda$T7zIZMFnvwrmtbuTMXLaZHHp-9s;-><clinit>()V
+PLcom/android/internal/infra/-$$Lambda$T7zIZMFnvwrmtbuTMXLaZHHp-9s;-><init>()V
+PLcom/android/internal/infra/-$$Lambda$T7zIZMFnvwrmtbuTMXLaZHHp-9s;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/internal/infra/-$$Lambda$XuWfs8-IsKaNygi8YjlVGjedkIw;-><clinit>()V
+PLcom/android/internal/infra/-$$Lambda$XuWfs8-IsKaNygi8YjlVGjedkIw;-><init>()V
+PLcom/android/internal/infra/-$$Lambda$XuWfs8-IsKaNygi8YjlVGjedkIw;->accept(Ljava/lang/Object;)V
+PLcom/android/internal/infra/-$$Lambda$aeiZbEpH6rq4kD9vJrlAnboJGDM;-><clinit>()V
+PLcom/android/internal/infra/-$$Lambda$aeiZbEpH6rq4kD9vJrlAnboJGDM;-><init>()V
+PLcom/android/internal/infra/-$$Lambda$aeiZbEpH6rq4kD9vJrlAnboJGDM;->applyOrThrow(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/internal/infra/-$$Lambda$qN_gooelzsUiBhYWznXKzb-8_wA;-><clinit>()V
+PLcom/android/internal/infra/-$$Lambda$qN_gooelzsUiBhYWznXKzb-8_wA;-><init>()V
+PLcom/android/internal/infra/-$$Lambda$qN_gooelzsUiBhYWznXKzb-8_wA;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/internal/infra/-$$Lambda$rAXGjry3wPGKviARzTYfDiY7xrs;-><clinit>()V
+PLcom/android/internal/infra/-$$Lambda$rAXGjry3wPGKviARzTYfDiY7xrs;-><init>()V
+PLcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/content/ComponentName;ILcom/android/internal/infra/AbstractRemoteService$VultureCallback;Landroid/os/Handler;IZI)V
+PLcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService;->handleBindFailure()V
+PLcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService;->handleOnDestroy()V
+PLcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService;->handlePendingRequestWhileUnBound(Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;)V
+PLcom/android/internal/infra/AbstractMultiplePendingRequestsRemoteService;->handlePendingRequests()V
+PLcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;-><init>(Lcom/android/internal/infra/AbstractRemoteService;)V
+PLcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;->finish()Z
+PLcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;->getService()Lcom/android/internal/infra/AbstractRemoteService;
+PLcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;->isFinal()Z
+PLcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;->onFinished()V
+PLcom/android/internal/infra/AbstractRemoteService$MyAsyncPendingRequest;-><clinit>()V
+PLcom/android/internal/infra/AbstractRemoteService$MyAsyncPendingRequest;-><init>(Lcom/android/internal/infra/AbstractRemoteService;Lcom/android/internal/infra/AbstractRemoteService$AsyncRequest;)V
+PLcom/android/internal/infra/AbstractRemoteService$MyAsyncPendingRequest;->run()V
+PLcom/android/internal/infra/AbstractRemoteService$RemoteServiceConnection;-><init>(Lcom/android/internal/infra/AbstractRemoteService;)V
+PLcom/android/internal/infra/AbstractRemoteService$RemoteServiceConnection;-><init>(Lcom/android/internal/infra/AbstractRemoteService;Lcom/android/internal/infra/AbstractRemoteService$1;)V
+PLcom/android/internal/infra/AbstractRemoteService$RemoteServiceConnection;->onBindingDied(Landroid/content/ComponentName;)V
+PLcom/android/internal/infra/AbstractRemoteService$RemoteServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/internal/infra/AbstractRemoteService$RemoteServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
+PLcom/android/internal/infra/AbstractRemoteService;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/content/ComponentName;ILcom/android/internal/infra/AbstractRemoteService$VultureCallback;Landroid/os/Handler;IZ)V
+PLcom/android/internal/infra/AbstractRemoteService;->access$100(Lcom/android/internal/infra/AbstractRemoteService;)Z
+PLcom/android/internal/infra/AbstractRemoteService;->access$200(Lcom/android/internal/infra/AbstractRemoteService;)Z
+PLcom/android/internal/infra/AbstractRemoteService;->access$202(Lcom/android/internal/infra/AbstractRemoteService;Z)Z
+PLcom/android/internal/infra/AbstractRemoteService;->access$400(Lcom/android/internal/infra/AbstractRemoteService;Z)V
+PLcom/android/internal/infra/AbstractRemoteService;->access$502(Lcom/android/internal/infra/AbstractRemoteService;Z)Z
+PLcom/android/internal/infra/AbstractRemoteService;->access$600(Lcom/android/internal/infra/AbstractRemoteService;Z)V
+PLcom/android/internal/infra/AbstractRemoteService;->binderDied()V
+PLcom/android/internal/infra/AbstractRemoteService;->cancelScheduledUnbind()V
+PLcom/android/internal/infra/AbstractRemoteService;->checkIfDestroyed()Z
+PLcom/android/internal/infra/AbstractRemoteService;->destroy()V
+PLcom/android/internal/infra/AbstractRemoteService;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/internal/infra/AbstractRemoteService;->finishRequest(Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;)V
+PLcom/android/internal/infra/AbstractRemoteService;->getComponentName()Landroid/content/ComponentName;
+PLcom/android/internal/infra/AbstractRemoteService;->getRemoteRequestMillis()J
+PLcom/android/internal/infra/AbstractRemoteService;->handleBinderDied()V
+PLcom/android/internal/infra/AbstractRemoteService;->handleDestroy()V
+PLcom/android/internal/infra/AbstractRemoteService;->handleEnsureBound()V
+PLcom/android/internal/infra/AbstractRemoteService;->handleEnsureUnbound()V
+PLcom/android/internal/infra/AbstractRemoteService;->handleFinishRequest(Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;)V
+PLcom/android/internal/infra/AbstractRemoteService;->handleIsBound()Z
+PLcom/android/internal/infra/AbstractRemoteService;->handleOnConnectedStateChangedInternal(Z)V
+PLcom/android/internal/infra/AbstractRemoteService;->handlePendingRequest(Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;)V
+PLcom/android/internal/infra/AbstractRemoteService;->lambda$6FcEKfZ-7TXLg6dcCU8EMuMNAy4(Lcom/android/internal/infra/AbstractRemoteService;Lcom/android/internal/infra/AbstractRemoteService$BasePendingRequest;)V
+PLcom/android/internal/infra/AbstractRemoteService;->lambda$9IBVTCLLZgndvH7fu1P14PW1_1o(Lcom/android/internal/infra/AbstractRemoteService;)V
+PLcom/android/internal/infra/AbstractRemoteService;->lambda$YSUzqqi1Pbrg2dlwMGMtKWbGXck(Lcom/android/internal/infra/AbstractRemoteService;)V
+PLcom/android/internal/infra/AbstractRemoteService;->lambda$ocrHd68Md9x6FfAzVQ6w8MAjFqY(Lcom/android/internal/infra/AbstractRemoteService;)V
+PLcom/android/internal/infra/AbstractRemoteService;->scheduleAsyncRequest(Lcom/android/internal/infra/AbstractRemoteService$AsyncRequest;)V
+PLcom/android/internal/infra/AbstractRemoteService;->scheduleBind()V
+PLcom/android/internal/infra/AbstractRemoteService;->scheduleUnbind()V
+HPLcom/android/internal/infra/AbstractRemoteService;->scheduleUnbind(Z)V
+PLcom/android/internal/infra/AbstractRemoteService;->toString()Ljava/lang/String;
+PLcom/android/internal/infra/AndroidFuture$1;-><init>(Lcom/android/internal/infra/AndroidFuture;)V
+PLcom/android/internal/infra/AndroidFuture$1;->complete(Lcom/android/internal/infra/AndroidFuture;)V
+PLcom/android/internal/infra/AndroidFuture$2;-><init>()V
+PLcom/android/internal/infra/AndroidFuture$2;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/infra/AndroidFuture;
+PLcom/android/internal/infra/AndroidFuture$2;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLcom/android/internal/infra/AndroidFuture;-><clinit>()V
+HPLcom/android/internal/infra/AndroidFuture;-><init>()V
+PLcom/android/internal/infra/AndroidFuture;-><init>(Landroid/os/Parcel;)V
+PLcom/android/internal/infra/AndroidFuture;->callListener(Ljava/util/function/BiConsumer;Ljava/lang/Object;Ljava/lang/Throwable;)V
+PLcom/android/internal/infra/AndroidFuture;->callListenerAsync(Ljava/util/function/BiConsumer;Ljava/lang/Object;Ljava/lang/Throwable;)V
+PLcom/android/internal/infra/AndroidFuture;->cancel(Z)Z
+HPLcom/android/internal/infra/AndroidFuture;->cancelTimeout()Lcom/android/internal/infra/AndroidFuture;
+PLcom/android/internal/infra/AndroidFuture;->complete(Ljava/lang/Object;)Z
+PLcom/android/internal/infra/AndroidFuture;->completeExceptionally(Ljava/lang/Throwable;)Z
+PLcom/android/internal/infra/AndroidFuture;->completedFuture(Ljava/lang/Object;)Lcom/android/internal/infra/AndroidFuture;
+PLcom/android/internal/infra/AndroidFuture;->onCompleted(Ljava/lang/Object;Ljava/lang/Throwable;)V
+PLcom/android/internal/infra/AndroidFuture;->orTimeout(JLjava/util/concurrent/TimeUnit;)Lcom/android/internal/infra/AndroidFuture;
+PLcom/android/internal/infra/AndroidFuture;->whenComplete(Ljava/util/function/BiConsumer;)Lcom/android/internal/infra/AndroidFuture;
+PLcom/android/internal/infra/AndroidFuture;->whenComplete(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
+PLcom/android/internal/infra/AndroidFuture;->whenComplete(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletionStage;
+HPLcom/android/internal/infra/AndroidFuture;->whenCompleteAsync(Ljava/util/function/BiConsumer;Ljava/util/concurrent/Executor;)Lcom/android/internal/infra/AndroidFuture;
+PLcom/android/internal/infra/AndroidFuture;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/infra/GlobalWhitelistState;-><init>()V
+PLcom/android/internal/infra/GlobalWhitelistState;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HSPLcom/android/internal/infra/GlobalWhitelistState;->getWhitelistedComponents(ILjava/lang/String;)Landroid/util/ArraySet;
+PLcom/android/internal/infra/GlobalWhitelistState;->isWhitelisted(ILandroid/content/ComponentName;)Z
+HSPLcom/android/internal/infra/GlobalWhitelistState;->isWhitelisted(ILjava/lang/String;)Z
+PLcom/android/internal/infra/GlobalWhitelistState;->resetWhitelist(I)V
+PLcom/android/internal/infra/GlobalWhitelistState;->setWhitelist(ILjava/util/List;Ljava/util/List;)V
+PLcom/android/internal/infra/IAndroidFuture$Stub;-><init>()V
+PLcom/android/internal/infra/IAndroidFuture$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/infra/IAndroidFuture$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/infra/RemoteStream$1;-><init>(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Lcom/android/internal/util/FunctionalUtils$ThrowingFunction;Ljava/util/concurrent/Executor;Z)V
+PLcom/android/internal/infra/RemoteStream$1;->createStream(Landroid/os/ParcelFileDescriptor;)Ljava/io/Closeable;
+PLcom/android/internal/infra/RemoteStream$1;->createStream(Landroid/os/ParcelFileDescriptor;)Ljava/io/InputStream;
+PLcom/android/internal/infra/RemoteStream;-><init>(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Lcom/android/internal/util/FunctionalUtils$ThrowingFunction;Ljava/util/concurrent/Executor;Z)V
+PLcom/android/internal/infra/RemoteStream;-><init>(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Lcom/android/internal/util/FunctionalUtils$ThrowingFunction;Ljava/util/concurrent/Executor;ZLcom/android/internal/infra/RemoteStream$1;)V
+PLcom/android/internal/infra/RemoteStream;->onCompleted(Ljava/lang/Object;Ljava/lang/Throwable;)V
+PLcom/android/internal/infra/RemoteStream;->readAll(Ljava/io/InputStream;)[B
+PLcom/android/internal/infra/RemoteStream;->receiveBytes(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;)Lcom/android/internal/infra/AndroidFuture;
+PLcom/android/internal/infra/RemoteStream;->receiveBytes(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;Lcom/android/internal/util/FunctionalUtils$ThrowingFunction;)Lcom/android/internal/infra/AndroidFuture;
+PLcom/android/internal/infra/RemoteStream;->run()V
+PLcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;-><init>(Lcom/android/internal/infra/ServiceConnector$Impl;)V
+PLcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;->accept(Ljava/lang/Object;Ljava/lang/Throwable;)V
+PLcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;->cancel(Z)Z
+PLcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;->onCompleted(Ljava/lang/Object;Ljava/lang/Throwable;)V
+PLcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;->run(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/internal/infra/ServiceConnector$Impl;-><init>(Landroid/content/Context;Landroid/content/Intent;IILjava/util/function/Function;)V
+PLcom/android/internal/infra/ServiceConnector$Impl;->access$000(Lcom/android/internal/infra/ServiceConnector$Impl;)Ljava/util/Queue;
+PLcom/android/internal/infra/ServiceConnector$Impl;->access$100(Lcom/android/internal/infra/ServiceConnector$Impl;)Ljava/util/List;
+PLcom/android/internal/infra/ServiceConnector$Impl;->access$200(Lcom/android/internal/infra/ServiceConnector$Impl;)V
+PLcom/android/internal/infra/ServiceConnector$Impl;->bindService(Landroid/content/ServiceConnection;Landroid/os/Handler;)Z
+PLcom/android/internal/infra/ServiceConnector$Impl;->binderAsInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
+PLcom/android/internal/infra/ServiceConnector$Impl;->binderDied()V
+PLcom/android/internal/infra/ServiceConnector$Impl;->cancelPendingJobs()V
+HPLcom/android/internal/infra/ServiceConnector$Impl;->cancelTimeout()V
+PLcom/android/internal/infra/ServiceConnector$Impl;->castOrNull(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
+PLcom/android/internal/infra/ServiceConnector$Impl;->connect()Lcom/android/internal/infra/AndroidFuture;
+PLcom/android/internal/infra/ServiceConnector$Impl;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/internal/infra/ServiceConnector$Impl;->enqueue(Lcom/android/internal/infra/ServiceConnector$Impl$CompletionAwareJob;)V
+PLcom/android/internal/infra/ServiceConnector$Impl;->enqueue(Lcom/android/internal/infra/ServiceConnector$Job;)Z
+PLcom/android/internal/infra/ServiceConnector$Impl;->enqueueJobThread(Lcom/android/internal/infra/ServiceConnector$Job;)V
+PLcom/android/internal/infra/ServiceConnector$Impl;->getAutoDisconnectTimeoutMs()J
+PLcom/android/internal/infra/ServiceConnector$Impl;->getJobHandler()Landroid/os/Handler;
+PLcom/android/internal/infra/ServiceConnector$Impl;->getRequestTimeoutMs()J
+PLcom/android/internal/infra/ServiceConnector$Impl;->isBound()Z
+PLcom/android/internal/infra/ServiceConnector$Impl;->lambda$connect$0(Landroid/os/IInterface;)Landroid/os/IInterface;
+HPLcom/android/internal/infra/ServiceConnector$Impl;->maybeScheduleUnbindTimeout()V
+PLcom/android/internal/infra/ServiceConnector$Impl;->onBindingDied(Landroid/content/ComponentName;)V
+PLcom/android/internal/infra/ServiceConnector$Impl;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/internal/infra/ServiceConnector$Impl;->onServiceConnectionStatusChanged(Landroid/os/IInterface;Z)V
+PLcom/android/internal/infra/ServiceConnector$Impl;->onServiceDisconnected(Landroid/content/ComponentName;)V
+PLcom/android/internal/infra/ServiceConnector$Impl;->onServiceUnbound()V
+PLcom/android/internal/infra/ServiceConnector$Impl;->onTimeout()V
+PLcom/android/internal/infra/ServiceConnector$Impl;->postAsync(Lcom/android/internal/infra/ServiceConnector$Job;)Lcom/android/internal/infra/AndroidFuture;
+HPLcom/android/internal/infra/ServiceConnector$Impl;->processQueue()V
+PLcom/android/internal/infra/ServiceConnector$Impl;->run()V
+PLcom/android/internal/infra/ServiceConnector$Impl;->run(Lcom/android/internal/infra/ServiceConnector$VoidJob;)Z
+PLcom/android/internal/infra/ServiceConnector$Impl;->scheduleUnbindTimeout()V
+PLcom/android/internal/infra/ServiceConnector$Impl;->stateToString()Ljava/lang/String;
+PLcom/android/internal/infra/ServiceConnector$Impl;->unbind()V
+PLcom/android/internal/infra/ServiceConnector$Impl;->unbindJobThread()V
+PLcom/android/internal/infra/ServiceConnector$VoidJob;->run(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/internal/infra/ServiceConnector$VoidJob;->run(Ljava/lang/Object;)Ljava/lang/Void;
+PLcom/android/internal/infra/ThrottledRunnable;-><init>(Landroid/os/Handler;JLjava/lang/Runnable;)V
+HPLcom/android/internal/infra/ThrottledRunnable;->run()V
+PLcom/android/internal/infra/WhitelistHelper;-><init>()V
+HPLcom/android/internal/infra/WhitelistHelper;->dump(Ljava/lang/String;Ljava/lang/String;Ljava/io/PrintWriter;)V
+HPLcom/android/internal/infra/WhitelistHelper;->getWhitelistedComponents(Ljava/lang/String;)Landroid/util/ArraySet;
+PLcom/android/internal/infra/WhitelistHelper;->isWhitelisted(Landroid/content/ComponentName;)Z
+HPLcom/android/internal/infra/WhitelistHelper;->isWhitelisted(Ljava/lang/String;)Z
+HPLcom/android/internal/infra/WhitelistHelper;->setWhitelist(Landroid/util/ArraySet;Landroid/util/ArraySet;)V
+PLcom/android/internal/infra/WhitelistHelper;->setWhitelist(Ljava/util/List;Ljava/util/List;)V
+HPLcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub$Proxy;->hideMySoftInput(I)V
+HPLcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub$Proxy;->notifyUserAction()V
+HSPLcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub$Proxy;->reportFullscreenMode(Z)V
+HSPLcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub$Proxy;->reportStartInput(Landroid/os/IBinder;)V
+HPLcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub$Proxy;->setImeWindowStatus(II)V
+HPLcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub$Proxy;->updateStatusIcon(Ljava/lang/String;I)V
+PLcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub;-><init>()V
+PLcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLcom/android/internal/inputmethod/IInputMethodPrivilegedOperations$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/inputmethod/InputMethodDebug;->softInputModeToString(I)Ljava/lang/String;
+PLcom/android/internal/inputmethod/InputMethodDebug;->startInputReasonToString(I)Ljava/lang/String;
+HSPLcom/android/internal/inputmethod/InputMethodPrivilegedOperations$OpsHolder;->getAndWarnIfNull()Lcom/android/internal/inputmethod/IInputMethodPrivilegedOperations;
+HSPLcom/android/internal/inputmethod/InputMethodPrivilegedOperations$OpsHolder;->set(Lcom/android/internal/inputmethod/IInputMethodPrivilegedOperations;)V
+HPLcom/android/internal/inputmethod/InputMethodPrivilegedOperations;->hideMySoftInput(I)V
+HPLcom/android/internal/inputmethod/InputMethodPrivilegedOperations;->notifyUserAction()V
+HSPLcom/android/internal/inputmethod/InputMethodPrivilegedOperations;->reportFullscreenMode(Z)V
+HSPLcom/android/internal/inputmethod/InputMethodPrivilegedOperations;->reportStartInput(Landroid/os/IBinder;)V
+HPLcom/android/internal/inputmethod/InputMethodPrivilegedOperations;->set(Lcom/android/internal/inputmethod/IInputMethodPrivilegedOperations;)V
+HPLcom/android/internal/inputmethod/InputMethodPrivilegedOperations;->setImeWindowStatus(II)V
+HPLcom/android/internal/inputmethod/InputMethodPrivilegedOperations;->updateStatusIcon(Ljava/lang/String;I)V
+HSPLcom/android/internal/inputmethod/InputMethodPrivilegedOperationsRegistry;->isRegistered(Landroid/os/IBinder;)Z
+HSPLcom/android/internal/inputmethod/InputMethodPrivilegedOperationsRegistry;->put(Landroid/os/IBinder;Lcom/android/internal/inputmethod/InputMethodPrivilegedOperations;)V
+HPLcom/android/internal/inputmethod/InputMethodPrivilegedOperationsRegistry;->remove(Landroid/os/IBinder;)V
+PLcom/android/internal/inputmethod/SubtypeLocaleUtils;->constructLocaleFromString(Ljava/lang/String;)Ljava/util/Locale;
+HSPLcom/android/internal/location/GpsNetInitiatedHandler$1;-><init>(Lcom/android/internal/location/GpsNetInitiatedHandler;)V
+PLcom/android/internal/location/GpsNetInitiatedHandler$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/internal/location/GpsNetInitiatedHandler$2;-><init>(Lcom/android/internal/location/GpsNetInitiatedHandler;)V
+HSPLcom/android/internal/location/GpsNetInitiatedHandler;-><clinit>()V
+HSPLcom/android/internal/location/GpsNetInitiatedHandler;-><init>(Landroid/content/Context;Landroid/location/INetInitiatedListener;Z)V
+PLcom/android/internal/location/GpsNetInitiatedHandler;->access$100()Z
+HSPLcom/android/internal/location/GpsNetInitiatedHandler;->setEmergencyExtensionSeconds(I)V
+HSPLcom/android/internal/location/GpsNetInitiatedHandler;->setSuplEsEnabled(Z)V
+HSPLcom/android/internal/location/GpsNetInitiatedHandler;->updateLocationMode()V
+PLcom/android/internal/location/ILocationProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/location/ILocationProvider$Stub$Proxy;->setLocationProviderManager(Lcom/android/internal/location/ILocationProviderManager;)V
+PLcom/android/internal/location/ILocationProvider$Stub$Proxy;->setRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
+HSPLcom/android/internal/location/ILocationProvider$Stub;-><init>()V
+PLcom/android/internal/location/ILocationProvider$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/location/ILocationProvider;
+HSPLcom/android/internal/location/ILocationProvider$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/internal/location/ILocationProviderManager$Stub$Proxy;->onReportLocation(Landroid/location/Location;)V
+HSPLcom/android/internal/location/ILocationProviderManager$Stub$Proxy;->onSetEnabled(Z)V
+HSPLcom/android/internal/location/ILocationProviderManager$Stub$Proxy;->onSetProperties(Lcom/android/internal/location/ProviderProperties;)V
+HSPLcom/android/internal/location/ILocationProviderManager$Stub;-><init>()V
+PLcom/android/internal/location/ILocationProviderManager$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/location/ILocationProviderManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/location/ILocationProviderManager;
+PLcom/android/internal/location/ILocationProviderManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/location/ProviderProperties$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/location/ProviderProperties;
+HSPLcom/android/internal/location/ProviderProperties$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/location/ProviderProperties;-><init>(ZZZZZZZII)V
+HSPLcom/android/internal/location/ProviderProperties;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/location/ProviderRequest$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/location/ProviderRequest;
+HSPLcom/android/internal/location/ProviderRequest$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/location/ProviderRequest;-><init>()V
+PLcom/android/internal/location/ProviderRequest;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics$GnssPowerMetrics;-><init>(Lcom/android/internal/location/gnssmetrics/GnssMetrics;Lcom/android/internal/app/IBatteryStats;)V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics$GnssPowerMetrics;-><init>(Lcom/android/internal/location/gnssmetrics/GnssMetrics;Lcom/android/internal/app/IBatteryStats;Lcom/android/internal/location/gnssmetrics/GnssMetrics$1;)V
+PLcom/android/internal/location/gnssmetrics/GnssMetrics$GnssPowerMetrics;->buildProto()Lcom/android/internal/location/nano/GnssLogsProto$PowerMetrics;
+PLcom/android/internal/location/gnssmetrics/GnssMetrics$GnssPowerMetrics;->getGpsBatteryStats()Landroid/os/connectivity/GpsBatteryStats;
+PLcom/android/internal/location/gnssmetrics/GnssMetrics$GnssPowerMetrics;->getSignalLevel(D)I
+HPLcom/android/internal/location/gnssmetrics/GnssMetrics$GnssPowerMetrics;->reportSignalQuality([FI)V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics$Statistics;-><init>(Lcom/android/internal/location/gnssmetrics/GnssMetrics;)V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics$Statistics;-><init>(Lcom/android/internal/location/gnssmetrics/GnssMetrics;Lcom/android/internal/location/gnssmetrics/GnssMetrics$1;)V
+PLcom/android/internal/location/gnssmetrics/GnssMetrics$Statistics;->addItem(D)V
+PLcom/android/internal/location/gnssmetrics/GnssMetrics$Statistics;->getCount()I
+PLcom/android/internal/location/gnssmetrics/GnssMetrics$Statistics;->getMean()D
+PLcom/android/internal/location/gnssmetrics/GnssMetrics$Statistics;->getStandardDeviation()D
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics$Statistics;->reset()V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics;-><init>(Lcom/android/internal/app/IBatteryStats;)V
+PLcom/android/internal/location/gnssmetrics/GnssMetrics;->access$200(Lcom/android/internal/location/gnssmetrics/GnssMetrics;)Lcom/android/internal/location/gnssmetrics/GnssMetrics$GnssPowerMetrics;
+PLcom/android/internal/location/gnssmetrics/GnssMetrics;->dumpGnssMetricsAsProtoString()Ljava/lang/String;
+PLcom/android/internal/location/gnssmetrics/GnssMetrics;->dumpGnssMetricsAsText()Ljava/lang/String;
+PLcom/android/internal/location/gnssmetrics/GnssMetrics;->isL5Sv(F)Z
+HPLcom/android/internal/location/gnssmetrics/GnssMetrics;->logCn0([FI[F)V
+HPLcom/android/internal/location/gnssmetrics/GnssMetrics;->logCn0L5(I[F[F)V
+HPLcom/android/internal/location/gnssmetrics/GnssMetrics;->logConstellationType(I)V
+PLcom/android/internal/location/gnssmetrics/GnssMetrics;->logMissedReports(II)V
+PLcom/android/internal/location/gnssmetrics/GnssMetrics;->logPositionAccuracyMeters(F)V
+PLcom/android/internal/location/gnssmetrics/GnssMetrics;->logReceivedLocationStatus(Z)V
+HPLcom/android/internal/location/gnssmetrics/GnssMetrics;->logSvStatus(Landroid/location/GnssStatus;)V
+PLcom/android/internal/location/gnssmetrics/GnssMetrics;->logTimeToFirstFixMilliSecs(I)V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics;->reset()V
+HSPLcom/android/internal/location/gnssmetrics/GnssMetrics;->resetConstellationTypes()V
+PLcom/android/internal/location/nano/GnssLogsProto$GnssLog;-><init>()V
+PLcom/android/internal/location/nano/GnssLogsProto$GnssLog;->clear()Lcom/android/internal/location/nano/GnssLogsProto$GnssLog;
+PLcom/android/internal/location/nano/GnssLogsProto$GnssLog;->computeSerializedSize()I
+PLcom/android/internal/location/nano/GnssLogsProto$GnssLog;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+PLcom/android/internal/location/nano/GnssLogsProto$PowerMetrics;-><init>()V
+PLcom/android/internal/location/nano/GnssLogsProto$PowerMetrics;->clear()Lcom/android/internal/location/nano/GnssLogsProto$PowerMetrics;
+PLcom/android/internal/location/nano/GnssLogsProto$PowerMetrics;->computeSerializedSize()I
+PLcom/android/internal/location/nano/GnssLogsProto$PowerMetrics;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
HSPLcom/android/internal/logging/AndroidConfig;-><init>()V
HSPLcom/android/internal/logging/AndroidHandler$1;->format(Ljava/util/logging/LogRecord;)Ljava/lang/String;
HSPLcom/android/internal/logging/AndroidHandler;-><init>()V
+PLcom/android/internal/logging/AndroidHandler;->getAndroidLevel(Ljava/util/logging/Level;)I
HSPLcom/android/internal/logging/AndroidHandler;->publish(Ljava/util/logging/LogRecord;)V
+HSPLcom/android/internal/logging/EventLogTags;->writeCommitSysConfigFile(Ljava/lang/String;J)V
+HSPLcom/android/internal/logging/EventLogTags;->writeSysuiMultiAction([Ljava/lang/Object;)V
HSPLcom/android/internal/logging/MetricsLogger;-><init>()V
-HSPLcom/android/internal/logging/MetricsLogger;->action(II)V
-HSPLcom/android/internal/logging/MetricsLogger;->hidden(I)V
+HPLcom/android/internal/logging/MetricsLogger;->action(I)V
+PLcom/android/internal/logging/MetricsLogger;->action(II)V
+PLcom/android/internal/logging/MetricsLogger;->action(ILjava/lang/String;)V
+PLcom/android/internal/logging/MetricsLogger;->action(IZ)V
+PLcom/android/internal/logging/MetricsLogger;->action(Landroid/content/Context;II)V
+PLcom/android/internal/logging/MetricsLogger;->action(Landroid/content/Context;IZ)V
+HSPLcom/android/internal/logging/MetricsLogger;->action(Landroid/metrics/LogMaker;)V
+PLcom/android/internal/logging/MetricsLogger;->count(Landroid/content/Context;Ljava/lang/String;I)V
+PLcom/android/internal/logging/MetricsLogger;->count(Ljava/lang/String;I)V
+HSPLcom/android/internal/logging/MetricsLogger;->getLogger()Lcom/android/internal/logging/MetricsLogger;
+PLcom/android/internal/logging/MetricsLogger;->hidden(I)V
+PLcom/android/internal/logging/MetricsLogger;->hidden(Landroid/content/Context;I)V
+HSPLcom/android/internal/logging/MetricsLogger;->histogram(Landroid/content/Context;Ljava/lang/String;I)V
+HSPLcom/android/internal/logging/MetricsLogger;->histogram(Ljava/lang/String;I)V
HSPLcom/android/internal/logging/MetricsLogger;->saveLog(Landroid/metrics/LogMaker;)V
-HSPLcom/android/internal/logging/MetricsLogger;->visible(I)V
-PLcom/android/internal/logging/MetricsLogger;->write(Landroid/metrics/LogMaker;)V
+HPLcom/android/internal/logging/MetricsLogger;->visibility(IZ)V
+HPLcom/android/internal/logging/MetricsLogger;->visibility(Landroid/content/Context;IZ)V
+PLcom/android/internal/logging/MetricsLogger;->visible(I)V
+PLcom/android/internal/logging/MetricsLogger;->visible(Landroid/content/Context;I)V
+HSPLcom/android/internal/logging/MetricsLogger;->write(Landroid/metrics/LogMaker;)V
+HSPLcom/android/internal/net/INetworkWatchlistManager$Stub;-><init>()V
+PLcom/android/internal/net/INetworkWatchlistManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/net/INetworkWatchlistManager;
+PLcom/android/internal/net/INetworkWatchlistManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/notification/SystemNotificationChannels;->createAll(Landroid/content/Context;)V
+HSPLcom/android/internal/notification/SystemNotificationChannels;->newAccountChannel(Landroid/content/Context;)Landroid/app/NotificationChannel;
+HSPLcom/android/internal/notification/SystemNotificationChannels;->removeDeprecated(Landroid/content/Context;)V
HSPLcom/android/internal/os/-$$Lambda$6-ytl6NLMGWt_iQr4_PfakNWUKQ;->get()Ljava/lang/Object;
+HSPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$7bfIWpn8X2h-hSzLD6dcuK4Ljuw;-><init>(Lcom/android/internal/os/BatteryStatsImpl;IZLandroid/util/SparseLongArray;)V
+HPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$7bfIWpn8X2h-hSzLD6dcuK4Ljuw;->onUidCpuTime(ILjava/lang/Object;)V
+HSPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$B-TmZhQb712ePnuJTxvMe7P-YwQ;-><init>(Lcom/android/internal/os/BatteryStatsImpl;ZZZII)V
+HPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$B-TmZhQb712ePnuJTxvMe7P-YwQ;->onUidCpuTime(ILjava/lang/Object;)V
+HSPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$Xvt9xdVPtevMWGIjcbxXf0_mr_c;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Z)V
+HPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$Xvt9xdVPtevMWGIjcbxXf0_mr_c;->onUidCpuTime(ILjava/lang/Object;)V
+HSPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$_l2oiaRDRhjCXI_PwXPsAhrgegI;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Z)V
+HPLcom/android/internal/os/-$$Lambda$BatteryStatsImpl$_l2oiaRDRhjCXI_PwXPsAhrgegI;->onUidCpuTime(ILjava/lang/Object;)V
+PLcom/android/internal/os/-$$Lambda$BinderCallsStats$-YP-7pwoNn8TN0iTmo5Q1r2lQz0;-><clinit>()V
+PLcom/android/internal/os/-$$Lambda$BinderCallsStats$-YP-7pwoNn8TN0iTmo5Q1r2lQz0;-><init>()V
+PLcom/android/internal/os/-$$Lambda$BinderCallsStats$-YP-7pwoNn8TN0iTmo5Q1r2lQz0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/internal/os/-$$Lambda$BinderCallsStats$233x_Qux4c_AiqShYaWwvFplEXs;-><clinit>()V
+PLcom/android/internal/os/-$$Lambda$BinderCallsStats$233x_Qux4c_AiqShYaWwvFplEXs;-><init>()V
+PLcom/android/internal/os/-$$Lambda$BinderCallsStats$233x_Qux4c_AiqShYaWwvFplEXs;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/internal/os/-$$Lambda$BinderCallsStats$Vota0PqfoPWckjXH35wE48myGdk;-><init>(Ljava/util/List;)V
+PLcom/android/internal/os/-$$Lambda$BinderCallsStats$Vota0PqfoPWckjXH35wE48myGdk;->accept(Ljava/lang/Object;)V
+PLcom/android/internal/os/-$$Lambda$BinderCallsStats$iPOmTqbqUiHzgsAugINuZgf9tls;-><clinit>()V
+PLcom/android/internal/os/-$$Lambda$BinderCallsStats$iPOmTqbqUiHzgsAugINuZgf9tls;-><init>()V
+PLcom/android/internal/os/-$$Lambda$BinderCallsStats$iPOmTqbqUiHzgsAugINuZgf9tls;->applyAsDouble(Ljava/lang/Object;)D
+HPLcom/android/internal/os/-$$Lambda$BinderCallsStats$sqXweH5BoxhmZvI188ctqYiACRk;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLcom/android/internal/os/-$$Lambda$RuntimeInit$ep4ioD9YINkHI5Q1wZ0N_7VFAOg;->get()Ljava/lang/Object;
HSPLcom/android/internal/os/-$$Lambda$ZygoteConnection$KxVsZ-s4KsanePOHCU5JcuypPik;-><init>(II)V
HSPLcom/android/internal/os/-$$Lambda$ZygoteConnection$KxVsZ-s4KsanePOHCU5JcuypPik;->run()V
HSPLcom/android/internal/os/AndroidPrintStream;-><init>(ILjava/lang/String;)V
+HSPLcom/android/internal/os/AndroidPrintStream;->log(Ljava/lang/String;)V
+PLcom/android/internal/os/AppFuseMount$1;-><init>()V
+PLcom/android/internal/os/AppFuseMount;-><clinit>()V
+PLcom/android/internal/os/AppFuseMount;-><init>(ILandroid/os/ParcelFileDescriptor;)V
+PLcom/android/internal/os/AppFuseMount;->writeToParcel(Landroid/os/Parcel;I)V
+PLcom/android/internal/os/AppIdToPackageMap;-><init>(Ljava/util/Map;)V
+HPLcom/android/internal/os/AppIdToPackageMap;->getSnapshot()Lcom/android/internal/os/AppIdToPackageMap;
+HPLcom/android/internal/os/AppIdToPackageMap;->mapUid(I)Ljava/lang/String;
+HSPLcom/android/internal/os/AtomicDirectory;-><init>(Ljava/io/File;)V
+PLcom/android/internal/os/AtomicDirectory;->backup()V
+PLcom/android/internal/os/AtomicDirectory;->closeWrite(Ljava/io/FileOutputStream;)V
+PLcom/android/internal/os/AtomicDirectory;->delete()V
+PLcom/android/internal/os/AtomicDirectory;->deleteDirectory(Ljava/io/File;)Z
+HSPLcom/android/internal/os/AtomicDirectory;->ensureBaseDirectory()V
+PLcom/android/internal/os/AtomicDirectory;->openWrite(Ljava/io/File;)Ljava/io/FileOutputStream;
+HSPLcom/android/internal/os/AtomicDirectory;->restore()V
+HSPLcom/android/internal/os/AtomicDirectory;->startRead()Ljava/io/File;
+HPLcom/android/internal/os/AtomicDirectory;->syncDirectory(Ljava/io/File;)V
+PLcom/android/internal/os/AtomicDirectory;->syncParentDirectory()V
+PLcom/android/internal/os/AtomicDirectory;->throwIfSomeFilesOpen()V
HSPLcom/android/internal/os/BackgroundThread;-><init>()V
HSPLcom/android/internal/os/BackgroundThread;->ensureThreadLocked()V
+HSPLcom/android/internal/os/BackgroundThread;->get()Lcom/android/internal/os/BackgroundThread;
+HSPLcom/android/internal/os/BackgroundThread;->getExecutor()Ljava/util/concurrent/Executor;
HSPLcom/android/internal/os/BackgroundThread;->getHandler()Landroid/os/Handler;
+HPLcom/android/internal/os/BatterySipper;-><init>(Lcom/android/internal/os/BatterySipper$DrainType;Landroid/os/BatteryStats$Uid;D)V
+PLcom/android/internal/os/BatterySipper;->add(Lcom/android/internal/os/BatterySipper;)V
+HPLcom/android/internal/os/BatterySipper;->compareTo(Lcom/android/internal/os/BatterySipper;)I
+HPLcom/android/internal/os/BatterySipper;->compareTo(Ljava/lang/Object;)I
+HPLcom/android/internal/os/BatterySipper;->computeMobilemspp()V
+HPLcom/android/internal/os/BatterySipper;->getUid()I
+HPLcom/android/internal/os/BatterySipper;->sumPower()D
+PLcom/android/internal/os/BatteryStatsHelper$1;-><init>(Lcom/android/internal/os/BatteryStatsHelper;)V
+PLcom/android/internal/os/BatteryStatsHelper;-><init>(Landroid/content/Context;ZZ)V
+PLcom/android/internal/os/BatteryStatsHelper;->addAmbientDisplayUsage()V
+PLcom/android/internal/os/BatteryStatsHelper;->addBluetoothUsage()V
+PLcom/android/internal/os/BatteryStatsHelper;->addEntry(Lcom/android/internal/os/BatterySipper$DrainType;JD)Lcom/android/internal/os/BatterySipper;
+PLcom/android/internal/os/BatteryStatsHelper;->addIdleUsage()V
+PLcom/android/internal/os/BatteryStatsHelper;->addMemoryUsage()V
+PLcom/android/internal/os/BatteryStatsHelper;->addPhoneUsage()V
+PLcom/android/internal/os/BatteryStatsHelper;->addRadioUsage()V
+PLcom/android/internal/os/BatteryStatsHelper;->addScreenUsage()V
+PLcom/android/internal/os/BatteryStatsHelper;->addUserUsage()V
+PLcom/android/internal/os/BatteryStatsHelper;->addWiFiUsage()V
+PLcom/android/internal/os/BatteryStatsHelper;->aggregateSippers(Lcom/android/internal/os/BatterySipper;Ljava/util/List;Ljava/lang/String;)V
+PLcom/android/internal/os/BatteryStatsHelper;->checkHasBluetoothPowerReporting(Landroid/os/BatteryStats;Lcom/android/internal/os/PowerProfile;)Z
+PLcom/android/internal/os/BatteryStatsHelper;->checkHasWifiPowerReporting(Landroid/os/BatteryStats;Lcom/android/internal/os/PowerProfile;)Z
+PLcom/android/internal/os/BatteryStatsHelper;->checkWifiOnly(Landroid/content/Context;)Z
+HPLcom/android/internal/os/BatteryStatsHelper;->convertMsToUs(J)J
+HPLcom/android/internal/os/BatteryStatsHelper;->convertUsToMs(J)J
+PLcom/android/internal/os/BatteryStatsHelper;->create(Landroid/os/BatteryStats;)V
+PLcom/android/internal/os/BatteryStatsHelper;->getComputedPower()D
+HPLcom/android/internal/os/BatteryStatsHelper;->getForegroundActivityTotalTimeUs(Landroid/os/BatteryStats$Uid;J)J
+PLcom/android/internal/os/BatteryStatsHelper;->getMaxDrainedPower()D
+PLcom/android/internal/os/BatteryStatsHelper;->getMinDrainedPower()D
+PLcom/android/internal/os/BatteryStatsHelper;->getMobilemsppList()Ljava/util/List;
+PLcom/android/internal/os/BatteryStatsHelper;->getPowerProfile()Lcom/android/internal/os/PowerProfile;
+HPLcom/android/internal/os/BatteryStatsHelper;->getProcessForegroundTimeMs(Landroid/os/BatteryStats$Uid;I)J
+PLcom/android/internal/os/BatteryStatsHelper;->getStats()Landroid/os/BatteryStats;
+PLcom/android/internal/os/BatteryStatsHelper;->getTotalPower()D
+PLcom/android/internal/os/BatteryStatsHelper;->getUsageList()Ljava/util/List;
+HPLcom/android/internal/os/BatteryStatsHelper;->isTypeService(Lcom/android/internal/os/BatterySipper;)Z
+HPLcom/android/internal/os/BatteryStatsHelper;->isTypeSystem(Lcom/android/internal/os/BatterySipper;)Z
+HPLcom/android/internal/os/BatteryStatsHelper;->makemAh(D)Ljava/lang/String;
+HPLcom/android/internal/os/BatteryStatsHelper;->processAppUsage(Landroid/util/SparseArray;)V
+PLcom/android/internal/os/BatteryStatsHelper;->processMiscUsage()V
+PLcom/android/internal/os/BatteryStatsHelper;->refreshStats(II)V
+PLcom/android/internal/os/BatteryStatsHelper;->refreshStats(ILandroid/util/SparseArray;)V
+HPLcom/android/internal/os/BatteryStatsHelper;->refreshStats(ILandroid/util/SparseArray;JJ)V
+HPLcom/android/internal/os/BatteryStatsHelper;->removeHiddenBatterySippers(Ljava/util/List;)D
+HPLcom/android/internal/os/BatteryStatsHelper;->shouldHideSipper(Lcom/android/internal/os/BatterySipper;)Z
+HPLcom/android/internal/os/BatteryStatsHelper;->smearScreenBatterySipper(Ljava/util/List;Lcom/android/internal/os/BatterySipper;)V
+HSPLcom/android/internal/os/BatteryStatsHistory$1;-><init>(Lcom/android/internal/os/BatteryStatsHistory;Ljava/util/Set;)V
+HSPLcom/android/internal/os/BatteryStatsHistory$1;->accept(Ljava/io/File;Ljava/lang/String;)Z
+PLcom/android/internal/os/BatteryStatsHistory;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsHistory;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Ljava/io/File;Landroid/os/Parcel;)V
+PLcom/android/internal/os/BatteryStatsHistory;->finishIteratingHistory()V
+HSPLcom/android/internal/os/BatteryStatsHistory;->getActiveFile()Landroid/util/AtomicFile;
+HSPLcom/android/internal/os/BatteryStatsHistory;->getFile(I)Landroid/util/AtomicFile;
+PLcom/android/internal/os/BatteryStatsHistory;->getHistoryUsedSize()I
+HPLcom/android/internal/os/BatteryStatsHistory;->getNextParcel(Landroid/os/BatteryStats$HistoryItem;)Landroid/os/Parcel;
+PLcom/android/internal/os/BatteryStatsHistory;->hasFreeDiskSpace()Z
+HPLcom/android/internal/os/BatteryStatsHistory;->readFileToParcel(Landroid/os/Parcel;Landroid/util/AtomicFile;)Z
+PLcom/android/internal/os/BatteryStatsHistory;->readFromParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsHistory;->resetAllFiles()V
+HSPLcom/android/internal/os/BatteryStatsHistory;->setActiveFile(I)V
+HPLcom/android/internal/os/BatteryStatsHistory;->skipHead(Landroid/os/Parcel;)Z
+PLcom/android/internal/os/BatteryStatsHistory;->startIteratingHistory()Z
+PLcom/android/internal/os/BatteryStatsHistory;->startNextFile()V
+PLcom/android/internal/os/BatteryStatsHistory;->writeToParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$1;-><init>(Lcom/android/internal/os/BatteryStatsImpl;)V
+PLcom/android/internal/os/BatteryStatsImpl$1;->run()V
+HSPLcom/android/internal/os/BatteryStatsImpl$2;-><init>(Lcom/android/internal/os/BatteryStatsImpl;)V
+PLcom/android/internal/os/BatteryStatsImpl$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$3;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Ljava/io/ByteArrayOutputStream;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$3;->run()V
+PLcom/android/internal/os/BatteryStatsImpl$4;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Landroid/os/Parcel;J)V
+PLcom/android/internal/os/BatteryStatsImpl$4;->run()V
+HSPLcom/android/internal/os/BatteryStatsImpl$5;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Landroid/os/Parcel;Landroid/util/AtomicFile;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$5;->run()V
+HSPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+PLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->abortLastDuration(Lcom/android/internal/os/BatteryStatsImpl;)V
+PLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->addDuration(Lcom/android/internal/os/BatteryStatsImpl;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->computeCurrentCountLocked()I
+HSPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->computeOverage(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->computeRunTimeLocked(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->onTimeStarted(JJJ)V
+PLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->recomputeLastDuration(JZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->reset(Z)Z
+PLcom/android/internal/os/BatteryStatsImpl$BatchTimer;->writeToParcel(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;-><init>(Lcom/android/internal/os/BatteryStatsImpl;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Lcom/android/internal/os/BatteryStatsImpl$1;)V
+PLcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;->set(Landroid/bluetooth/BluetoothActivityEnergyInfo;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Landroid/os/Handler;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->startObserving(Landroid/content/ContentResolver;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->updateBatteryChargedDelayMsLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->updateConstants()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->updateKernelUidReadersThrottleTime(JJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->updateProcStateCpuTimesReadDelayMs(JJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->updateTrackCpuTimesByProcStateLocked(ZZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Constants;->updateUidRemoveDelay(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;I)V
+PLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->detach()V
+HPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getIdleTimeCounter()Landroid/os/BatteryStats$LongCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getIdleTimeCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getMonitoredRailChargeConsumedMaMs()Landroid/os/BatteryStats$LongCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getMonitoredRailChargeConsumedMaMs()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getPowerCounter()Landroid/os/BatteryStats$LongCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getPowerCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getRxTimeCounter()Landroid/os/BatteryStats$LongCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getRxTimeCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+PLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getScanTimeCounter()Landroid/os/BatteryStats$LongCounter;
+PLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getScanTimeCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+PLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getSleepTimeCounter()Landroid/os/BatteryStats$LongCounter;
+PLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getSleepTimeCounter()Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getTxTimeCounters()[Landroid/os/BatteryStats$LongCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->getTxTimeCounters()[Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->readSummaryFromParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->reset(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->writeSummaryToParcel(Landroid/os/Parcel;)V
+PLcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->writeToParcel(Landroid/os/Parcel;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Counter;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+PLcom/android/internal/os/BatteryStatsImpl$Counter;->addAtomic(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Counter;->detach()V
+HPLcom/android/internal/os/BatteryStatsImpl$Counter;->getCountLocked(I)I
+HSPLcom/android/internal/os/BatteryStatsImpl$Counter;->onTimeStarted(JJJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$Counter;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Counter;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Counter;->reset(Z)Z
+HPLcom/android/internal/os/BatteryStatsImpl$Counter;->stepAtomic()V
+HPLcom/android/internal/os/BatteryStatsImpl$Counter;->writeCounterToParcel(Landroid/os/Parcel;Lcom/android/internal/os/BatteryStatsImpl$Counter;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Counter;->writeSummaryFromParcelLocked(Landroid/os/Parcel;)V
+PLcom/android/internal/os/BatteryStatsImpl$Counter;->writeToParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DualTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->detach()V
+HPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->getSubTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->getSubTimer()Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->reset(Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->startRunningLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->stopRunningLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DualTimer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
+PLcom/android/internal/os/BatteryStatsImpl$DualTimer;->writeToParcel(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->getCurrentDurationMsLocked(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->getMaxDurationMsLocked(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->getTotalDurationMsLocked(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->onTimeStarted(JJJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->reset(Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->startRunningLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->stopRunningLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
+PLcom/android/internal/os/BatteryStatsImpl$DurationTimer;->writeToParcel(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->addCountLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->addCountLocked(JZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->detach()V
+HPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->getCountLocked(I)J
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->onTimeStarted(JJJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->reset(Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->writeSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->writeToParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+PLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->access$1400(Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->access$2300(Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->access$2600(Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;Landroid/os/Parcel;)V
+HPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->addCountLocked([JZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->detach()V
+HPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->getCountsLocked(I)[J
+HPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->getSize()I
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->onTimeStarted(JJJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->readSummaryFromParcelLocked(Landroid/os/Parcel;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->reset(Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->writeSummaryToParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->writeSummaryToParcelLocked(Landroid/os/Parcel;Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;)V
+PLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->writeToParcel(Landroid/os/Parcel;)V
+PLcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->writeToParcel(Landroid/os/Parcel;Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$MyHandler;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Landroid/os/Looper;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$MyHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;-><init>(Lcom/android/internal/os/BatteryStatsImpl;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->add(Ljava/lang/String;Ljava/lang/Object;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->cleanup()V
+HSPLcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->getMap()Landroid/util/ArrayMap;
+HSPLcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->startObject(Ljava/lang/String;)Ljava/lang/Object;
+HSPLcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->stopObject(Ljava/lang/String;)Ljava/lang/Object;
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->add(JI)V
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->computeCurrentCountLocked()I
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->computeRunTimeLocked(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->endSample()V
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->getUpdateVersion()I
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->onTimeStarted(JJJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->setUpdateVersion(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->update(JI)V
+PLcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->writeToParcel(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->computeCurrentCountLocked()I
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->computeRunTimeLocked(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->detach()V
+PLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->isRunningLocked()Z
+HPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->refreshTimersLocked(JLjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;)J
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->reset(Z)Z
+PLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->setMark(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->setTimeout(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->startRunningLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->stopRunningLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->writeToParcel(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$SystemClocks;-><init>()V
+HSPLcom/android/internal/os/BatteryStatsImpl$SystemClocks;->elapsedRealtime()J
+HSPLcom/android/internal/os/BatteryStatsImpl$SystemClocks;->uptimeMillis()J
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;-><init>(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->add(Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->computeRealtime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->computeUptime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->getRealtime(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->getUptime(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->init(JJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->isRunning()Z
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->readSummaryFromParcel(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->remove(Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->setRunning(ZJJ)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$TimeBase;->writeSummaryToParcel(Landroid/os/Parcel;JJ)V
+PLcom/android/internal/os/BatteryStatsImpl$TimeBase;->writeToParcel(Landroid/os/Parcel;JJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Timer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;ILcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Timer;->detach()V
+HPLcom/android/internal/os/BatteryStatsImpl$Timer;->getCountLocked(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Timer;->getTimeSinceMarkLocked(J)J
+HPLcom/android/internal/os/BatteryStatsImpl$Timer;->getTotalTimeLocked(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl$Timer;->onTimeStarted(JJJ)V
+PLcom/android/internal/os/BatteryStatsImpl$Timer;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Timer;->readSummaryFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Timer;->reset(Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$Timer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Timer;->writeTimerToParcel(Landroid/os/Parcel;Lcom/android/internal/os/BatteryStatsImpl$Timer;J)V
+PLcom/android/internal/os/BatteryStatsImpl$Timer;->writeToParcel(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$1;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Uid;Lcom/android/internal/os/BatteryStatsImpl;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$1;->instantiateObject()Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$1;->instantiateObject()Ljava/lang/Object;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$2;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Uid;Lcom/android/internal/os/BatteryStatsImpl;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$2;->instantiateObject()Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$2;->instantiateObject()Ljava/lang/Object;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$3;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Uid;Lcom/android/internal/os/BatteryStatsImpl;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$3;->instantiateObject()Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$3;->instantiateObject()Ljava/lang/Object;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->detach()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getBatteryStats()Lcom/android/internal/os/BatteryStatsImpl;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getLaunches(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getStartTime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getStartTimeToNowLocked(J)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getStarts(I)I
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->onTimeStarted(JJJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->startLaunchedLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->startRunningLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->stopLaunchedLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->stopRunningLocked()V
+PLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->writeToParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->detach()V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->getServiceStats()Landroid/util/ArrayMap;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->getWakeupAlarmStats()Landroid/util/ArrayMap;
+PLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->noteWakeupAlarmLocked(Ljava/lang/String;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->onTimeStarted(JJJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->onTimeStopped(JJJ)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->writeToParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Ljava/lang/String;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->addCpuTimeLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->addCpuTimeLocked(IIZ)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->addExcessiveCpu(JJ)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->addForegroundTimeLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->countExcessivePowers()I
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->detach()V
+PLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getExcessivePower(I)Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getForegroundTime(I)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getNumAnrs(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getNumCrashes(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getStarts(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getSystemTime(I)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->getUserTime(I)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->incNumAnrsLocked()V
+PLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->incNumCrashesLocked()V
+PLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->incStartsLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->isActive()Z
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->onTimeStarted(JJJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->onTimeStopped(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->readExcessivePowerFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->writeExcessivePowerToParcelLocked(Landroid/os/Parcel;)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->writeToParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Lcom/android/internal/os/BatteryStatsImpl$Uid;I)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getHandle()I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getSensorBackgroundTime()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getSensorBackgroundTime()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getSensorTime()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getSensorTime()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->reset()Z
+PLcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->writeToParcelLocked(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Lcom/android/internal/os/BatteryStatsImpl$Uid;)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->getWakeTime(I)Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->getWakeTime(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->reset()Z
+PLcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->writeToParcelLocked(Landroid/os/Parcel;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;-><init>(Lcom/android/internal/os/BatteryStatsImpl;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->access$2400(Lcom/android/internal/os/BatteryStatsImpl$Uid;)Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->access$2402(Lcom/android/internal/os/BatteryStatsImpl$Uid;Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;)Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->access$2500(Lcom/android/internal/os/BatteryStatsImpl$Uid;)Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->access$2502(Lcom/android/internal/os/BatteryStatsImpl$Uid;Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;)Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->addIsolatedUid(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createAggregatedPartialWakelockTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createAudioTurnedOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createBluetoothScanResultBgCounterLocked()Lcom/android/internal/os/BatteryStatsImpl$Counter;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createBluetoothScanResultCounterLocked()Lcom/android/internal/os/BatteryStatsImpl$Counter;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createBluetoothScanTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createCameraTurnedOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createFlashlightTurnedOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createForegroundActivityTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createForegroundServiceTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createVibratorOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->createVideoTurnedOnTimerLocked()Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->detachFromTimeBase()V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getAggregatedPartialWakelockTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getAggregatedPartialWakelockTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getAudioTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getAudioTurnedOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanBackgroundTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanBackgroundTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanResultBgCounter()Landroid/os/BatteryStats$Counter;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanResultBgCounter()Lcom/android/internal/os/BatteryStatsImpl$Counter;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanResultCounter()Landroid/os/BatteryStats$Counter;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanResultCounter()Lcom/android/internal/os/BatteryStatsImpl$Counter;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothScanTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothUnoptimizedScanBackgroundTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothUnoptimizedScanBackgroundTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothUnoptimizedScanTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getBluetoothUnoptimizedScanTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getCameraTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getCameraTurnedOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getCpuActiveTime()J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getCpuClusterTimes()[J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getCpuFreqTimes(I)[J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getCpuFreqTimes(II)[J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getDeferredJobsCheckinLineLocked(Ljava/lang/StringBuilder;I)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getDeferredJobsLineLocked(Ljava/lang/StringBuilder;I)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getFlashlightTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getFlashlightTurnedOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getForegroundActivityTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getForegroundActivityTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getForegroundServiceTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getForegroundServiceTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getFullWifiLockTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getJobCompletionStats()Landroid/util/ArrayMap;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getJobStats()Landroid/util/ArrayMap;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getMobileRadioActiveCount(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getMobileRadioActiveTime(I)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getMobileRadioApWakeupCount(I)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getModemControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getMulticastWakelockStats()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getMulticastWakelockStats()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getNetworkActivityBytes(II)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getNetworkActivityPackets(II)J
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getOrCreateBluetoothControllerActivityLocked()Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getOrCreateWifiControllerActivityLocked()Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getPackageStats()Landroid/util/ArrayMap;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getPackageStatsLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getPidStats()Landroid/util/SparseArray;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getPidStatsLocked(I)Landroid/os/BatteryStats$Uid$Pid;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStateTime(IJI)J
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStateTimer(I)Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStateTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStats()Landroid/util/ArrayMap;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getProcessStatsLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getScreenOffCpuFreqTimes(I)[J
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getScreenOffCpuFreqTimes(II)[J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getSensorStats()Landroid/util/SparseArray;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getSensorTimerLocked(IZ)Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getServiceStatsLocked(Ljava/lang/String;Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getSyncStats()Landroid/util/ArrayMap;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getSystemCpuTimeUs(I)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getTimeAtCpuSpeed(III)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getUid()I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getUserActivityCount(II)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getUserCpuTimeUs(I)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getVibratorOnTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getVibratorOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getVideoTurnedOnTimer()Landroid/os/BatteryStats$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getVideoTurnedOnTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWakelockStats()Landroid/util/ArrayMap;
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWakelockTimerLocked(Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;I)Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiMulticastTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiRadioApWakeupCount(I)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiRunningTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanActualTime(J)J
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanBackgroundCount(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanBackgroundTime(J)J
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanBackgroundTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanBackgroundTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanCount(I)I
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanTime(JI)J
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->getWifiScanTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->hasUserActivity()Z
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->initNetworkActivityLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->initUserActivityLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->isInBackground()Z
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->makeProcessState(ILandroid/os/Parcel;)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteActivityPausedLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteActivityResumedLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteAudioTurnedOffLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteAudioTurnedOnLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteBluetoothScanResultsLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteBluetoothScanStartedLocked(JZ)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteBluetoothScanStoppedLocked(JZ)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteCameraTurnedOffLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteCameraTurnedOnLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteForegroundServicePausedLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteForegroundServiceResumedLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteFullWifiLockAcquiredLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteFullWifiLockReleasedLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteJobsDeferredLocked(IJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteNetworkActivityLocked(IJJ)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartGps(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartJobLocked(Ljava/lang/String;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartSensor(IJ)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartSyncLocked(Ljava/lang/String;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStartWakeLocked(ILjava/lang/String;IJ)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopGps(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopJobLocked(Ljava/lang/String;JI)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopSensor(IJ)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopSyncLocked(Ljava/lang/String;J)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteStopWakeLocked(ILjava/lang/String;IJ)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteUserActivityLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteVibratorOffLocked()V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteVibratorOnLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteVideoTurnedOffLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteVideoTurnedOnLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiMulticastDisabledLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiMulticastEnabledLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiRadioApWakeupLocked()V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiScanStartedLocked(J)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->noteWifiScanStoppedLocked(J)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->nullIfAllZeros(Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;I)[J
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->readJobCompletionsFromParcelLocked(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->readJobSummaryFromParcelLocked(Ljava/lang/String;Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->readSyncSummaryFromParcelLocked(Ljava/lang/String;Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->readWakeSummaryFromParcelLocked(Ljava/lang/String;Landroid/os/Parcel;)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->removeIsolatedUid(I)V
+PLcom/android/internal/os/BatteryStatsImpl$Uid;->reportExcessiveCpuLocked(Ljava/lang/String;JJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->reset(JJ)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->updateOnBatteryBgTimeBase(JJ)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->updateOnBatteryScreenOffBgTimeBase(JJ)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->updateUidProcessStateLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl$Uid;->writeJobCompletionsToParcelLocked(Landroid/os/Parcel;)V
+HPLcom/android/internal/os/BatteryStatsImpl$Uid;->writeToParcelLocked(Landroid/os/Parcel;JJ)V
+PLcom/android/internal/os/BatteryStatsImpl$UidToRemove;-><init>(Lcom/android/internal/os/BatteryStatsImpl;IIJ)V
+PLcom/android/internal/os/BatteryStatsImpl$UidToRemove;-><init>(Lcom/android/internal/os/BatteryStatsImpl;IJ)V
+PLcom/android/internal/os/BatteryStatsImpl$UidToRemove;->remove()V
+HSPLcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;-><init>()V
+HPLcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;->exists(I)Z
+HSPLcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;->refreshUserIds()V
+HSPLcom/android/internal/os/BatteryStatsImpl;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Ljava/io/File;Landroid/os/Handler;Lcom/android/internal/os/BatteryStatsImpl$PlatformIdleStateCallback;Lcom/android/internal/os/BatteryStatsImpl$RailEnergyDataCallback;Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;-><init>(Ljava/io/File;Landroid/os/Handler;Lcom/android/internal/os/BatteryStatsImpl$PlatformIdleStateCallback;Lcom/android/internal/os/BatteryStatsImpl$RailEnergyDataCallback;Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;)V
+PLcom/android/internal/os/BatteryStatsImpl;->access$008(Lcom/android/internal/os/BatteryStatsImpl;)I
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$100(Lcom/android/internal/os/BatteryStatsImpl;)Lcom/android/internal/os/BatteryStatsImpl$BatteryCallback;
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$1000(Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$1100([[Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$1200(Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$1300([[Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$2200(Lcom/android/internal/os/BatteryStatsImpl;Landroid/os/Parcel;Landroid/util/AtomicFile;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$400()I
+PLcom/android/internal/os/BatteryStatsImpl;->access$500(Lcom/android/internal/os/BatteryStatsImpl;Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$600(Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$700([Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$800(Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->access$900([Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->addHistoryBufferLocked(JBLandroid/os/BatteryStats$HistoryItem;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->addHistoryBufferLocked(JLandroid/os/BatteryStats$HistoryItem;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->addHistoryEventLocked(JJILjava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->addHistoryRecordInnerLocked(JLandroid/os/BatteryStats$HistoryItem;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->addHistoryRecordLocked(JJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->addIsolatedUidLocked(II)V
+PLcom/android/internal/os/BatteryStatsImpl;->addModemTxPowerToHistory(Landroid/telephony/ModemActivityInfo;)V
+PLcom/android/internal/os/BatteryStatsImpl;->addPackageChange(Landroid/os/BatteryStats$PackageChange;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->aggregateLastWakeupUptimeLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->buildBatteryLevelInt(Landroid/os/BatteryStats$HistoryItem;)I
+HSPLcom/android/internal/os/BatteryStatsImpl;->buildStateInt(Landroid/os/BatteryStats$HistoryItem;)I
+HSPLcom/android/internal/os/BatteryStatsImpl;->clearHistoryLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->clearPendingRemovedUids()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->commitPendingDataToDisk(Landroid/os/Parcel;Landroid/util/AtomicFile;)V
+PLcom/android/internal/os/BatteryStatsImpl;->computeBatteryRealtime(JI)J
+PLcom/android/internal/os/BatteryStatsImpl;->computeBatteryScreenOffRealtime(JI)J
+PLcom/android/internal/os/BatteryStatsImpl;->computeBatteryScreenOffUptime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->computeBatteryTimeRemaining(J)J
+PLcom/android/internal/os/BatteryStatsImpl;->computeBatteryUptime(JI)J
+PLcom/android/internal/os/BatteryStatsImpl;->computeChargeTimeRemaining(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->computeHistoryStepDetails(Landroid/os/BatteryStats$HistoryStepDetails;Landroid/os/BatteryStats$HistoryStepDetails;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->computeRealtime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->computeUptime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->copyFromAllUidsCpuTimes()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->copyFromAllUidsCpuTimes(ZZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->detachIfNotNull(Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->detachIfNotNull(Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->detachIfNotNull([Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->detachIfNotNull([[Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
+PLcom/android/internal/os/BatteryStatsImpl;->dumpLocked(Landroid/content/Context;Ljava/io/PrintWriter;IIJ)V
+PLcom/android/internal/os/BatteryStatsImpl;->excludeFromStringArray([Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+HSPLcom/android/internal/os/BatteryStatsImpl;->finishAddingCpuLocked(IIIIIIII)V
+PLcom/android/internal/os/BatteryStatsImpl;->finishIteratingHistoryLocked()V
+PLcom/android/internal/os/BatteryStatsImpl;->getAttributionUid(ILandroid/os/WorkSource$WorkChain;)I
+PLcom/android/internal/os/BatteryStatsImpl;->getBatteryRealtime(J)J
+PLcom/android/internal/os/BatteryStatsImpl;->getBatteryUptime(J)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getBatteryUptimeLocked()J
+PLcom/android/internal/os/BatteryStatsImpl;->getBluetoothControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+PLcom/android/internal/os/BatteryStatsImpl;->getBluetoothScanTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getCellularBatteryStats()Landroid/os/connectivity/CellularBatteryStats;
+PLcom/android/internal/os/BatteryStatsImpl;->getChargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+PLcom/android/internal/os/BatteryStatsImpl;->getCpuFreqs()[J
+PLcom/android/internal/os/BatteryStatsImpl;->getCurrentDailyStartTime()J
+PLcom/android/internal/os/BatteryStatsImpl;->getDailyChargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+PLcom/android/internal/os/BatteryStatsImpl;->getDailyDischargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+PLcom/android/internal/os/BatteryStatsImpl;->getDailyItemLocked(I)Landroid/os/BatteryStats$DailyItem;
+PLcom/android/internal/os/BatteryStatsImpl;->getDailyPackageChanges()Ljava/util/ArrayList;
+PLcom/android/internal/os/BatteryStatsImpl;->getDeltaModemActivityInfo(Landroid/telephony/ModemActivityInfo;)Landroid/telephony/ModemActivityInfo;
+PLcom/android/internal/os/BatteryStatsImpl;->getDeviceIdleModeCount(II)I
+PLcom/android/internal/os/BatteryStatsImpl;->getDeviceIdleModeTime(IJI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getDeviceIdlingCount(II)I
+PLcom/android/internal/os/BatteryStatsImpl;->getDeviceIdlingTime(IJI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getDischargeAmountScreenDozeSinceCharge()I
+HSPLcom/android/internal/os/BatteryStatsImpl;->getDischargeAmountScreenOffSinceCharge()I
+HSPLcom/android/internal/os/BatteryStatsImpl;->getDischargeAmountScreenOnSinceCharge()I
+PLcom/android/internal/os/BatteryStatsImpl;->getDischargeLevelStepTracker()Landroid/os/BatteryStats$LevelStepTracker;
+PLcom/android/internal/os/BatteryStatsImpl;->getEndPlatformVersion()Ljava/lang/String;
+PLcom/android/internal/os/BatteryStatsImpl;->getEstimatedBatteryCapacity()I
+PLcom/android/internal/os/BatteryStatsImpl;->getExternalStatsCollectionRateLimitMs()J
+PLcom/android/internal/os/BatteryStatsImpl;->getGlobalWifiRunningTime(JI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getGpsBatteryDrainMaMs()J
+PLcom/android/internal/os/BatteryStatsImpl;->getGpsBatteryStats()Landroid/os/connectivity/GpsBatteryStats;
+PLcom/android/internal/os/BatteryStatsImpl;->getGpsSignalQualityTime(IJI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getHighDischargeAmountSinceCharge()I
+PLcom/android/internal/os/BatteryStatsImpl;->getHistoryBaseTime()J
+PLcom/android/internal/os/BatteryStatsImpl;->getHistoryStringPoolBytes()I
+HPLcom/android/internal/os/BatteryStatsImpl;->getHistoryStringPoolSize()I
+HPLcom/android/internal/os/BatteryStatsImpl;->getHistoryTagPoolString(I)Ljava/lang/String;
+HPLcom/android/internal/os/BatteryStatsImpl;->getHistoryTagPoolUid(I)I
+PLcom/android/internal/os/BatteryStatsImpl;->getHistoryTotalSize()I
+PLcom/android/internal/os/BatteryStatsImpl;->getHistoryUsedSize()I
+PLcom/android/internal/os/BatteryStatsImpl;->getInteractiveTime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getIsOnBattery()Z
+PLcom/android/internal/os/BatteryStatsImpl;->getKernelMemoryStats()Landroid/util/LongSparseArray;
+PLcom/android/internal/os/BatteryStatsImpl;->getKernelWakelockStats()Ljava/util/Map;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getKernelWakelockTimerLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;
+PLcom/android/internal/os/BatteryStatsImpl;->getLongestDeviceIdleModeTime(I)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getLowDischargeAmountSinceCharge()I
+PLcom/android/internal/os/BatteryStatsImpl;->getMaxLearnedBatteryCapacity()I
+PLcom/android/internal/os/BatteryStatsImpl;->getMinLearnedBatteryCapacity()I
+PLcom/android/internal/os/BatteryStatsImpl;->getMobileIfaces()[Ljava/lang/String;
+PLcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveAdjustedTime(I)J
+PLcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveCount(I)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveTime(JI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveUnknownCount(I)I
+PLcom/android/internal/os/BatteryStatsImpl;->getMobileRadioActiveUnknownTime(I)J
+PLcom/android/internal/os/BatteryStatsImpl;->getModemControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+PLcom/android/internal/os/BatteryStatsImpl;->getNetworkActivityBytes(II)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getNetworkActivityPackets(II)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getNextHistoryLocked(Landroid/os/BatteryStats$HistoryItem;)Z
+PLcom/android/internal/os/BatteryStatsImpl;->getNextMaxDailyDeadline()J
+PLcom/android/internal/os/BatteryStatsImpl;->getNextMinDailyDeadline()J
+PLcom/android/internal/os/BatteryStatsImpl;->getNumConnectivityChange(I)I
+PLcom/android/internal/os/BatteryStatsImpl;->getPackageStatsLocked(ILjava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;
+PLcom/android/internal/os/BatteryStatsImpl;->getParcelVersion()I
+HPLcom/android/internal/os/BatteryStatsImpl;->getPhoneDataConnectionCount(II)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getPhoneDataConnectionTime(IJI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getPhoneDataConnectionTimer(I)Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl;->getPhoneDataConnectionTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+PLcom/android/internal/os/BatteryStatsImpl;->getPhoneOnTime(JI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalScanningTime(JI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalScanningTimer()Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalScanningTimer()Lcom/android/internal/os/BatteryStatsImpl$Timer;
+PLcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalStrengthCount(II)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalStrengthTime(IJI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalStrengthTimer(I)Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl;->getPhoneSignalStrengthTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getPowerManagerWakeLockLevel(I)I
+PLcom/android/internal/os/BatteryStatsImpl;->getPowerSaveModeEnabledTime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getProcessStatsLocked(ILjava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;
+PLcom/android/internal/os/BatteryStatsImpl;->getRpmStats()Ljava/util/Map;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getRpmTimerLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;
+HPLcom/android/internal/os/BatteryStatsImpl;->getScreenBrightnessTime(IJI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getScreenBrightnessTimer(I)Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl;->getScreenBrightnessTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+PLcom/android/internal/os/BatteryStatsImpl;->getScreenDozeTime(JI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getScreenOffRpmStats()Ljava/util/Map;
+PLcom/android/internal/os/BatteryStatsImpl;->getScreenOnCount(I)I
+PLcom/android/internal/os/BatteryStatsImpl;->getScreenOnTime(JI)J
+HSPLcom/android/internal/os/BatteryStatsImpl;->getServiceStatsLocked(ILjava/lang/String;Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getStartClockTime()J
+PLcom/android/internal/os/BatteryStatsImpl;->getStartCount()I
+PLcom/android/internal/os/BatteryStatsImpl;->getStartPlatformVersion()Ljava/lang/String;
+PLcom/android/internal/os/BatteryStatsImpl;->getUahDischarge(I)J
+PLcom/android/internal/os/BatteryStatsImpl;->getUahDischargeDeepDoze(I)J
+PLcom/android/internal/os/BatteryStatsImpl;->getUahDischargeLightDoze(I)J
+PLcom/android/internal/os/BatteryStatsImpl;->getUahDischargeScreenDoze(I)J
+PLcom/android/internal/os/BatteryStatsImpl;->getUahDischargeScreenOff(I)J
+PLcom/android/internal/os/BatteryStatsImpl;->getUidStats()Landroid/util/SparseArray;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getUidStatsLocked(I)Lcom/android/internal/os/BatteryStatsImpl$Uid;
+PLcom/android/internal/os/BatteryStatsImpl;->getWakeupReasonStats()Ljava/util/Map;
+HSPLcom/android/internal/os/BatteryStatsImpl;->getWakeupReasonTimerLocked(Ljava/lang/String;)Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiActiveTime(JI)J
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiBatteryStats()Landroid/os/connectivity/WifiBatteryStats;
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiIfaces()[Ljava/lang/String;
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiMulticastWakelockCount(I)I
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiMulticastWakelockTime(JI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiOnTime(JI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiSignalStrengthCount(II)I
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiSignalStrengthTime(IJI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiSignalStrengthTimer(I)Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiSignalStrengthTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiStateCount(II)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiStateTime(IJI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiStateTimer(I)Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiStateTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiSupplStateCount(II)I
+HPLcom/android/internal/os/BatteryStatsImpl;->getWifiSupplStateTime(IJI)J
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiSupplStateTimer(I)Landroid/os/BatteryStats$Timer;
+PLcom/android/internal/os/BatteryStatsImpl;->getWifiSupplStateTimer(I)Lcom/android/internal/os/BatteryStatsImpl$Timer;
+PLcom/android/internal/os/BatteryStatsImpl;->hasBluetoothActivityReporting()Z
+PLcom/android/internal/os/BatteryStatsImpl;->hasWifiActivityReporting()Z
+PLcom/android/internal/os/BatteryStatsImpl;->includeInStringArray([Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+HSPLcom/android/internal/os/BatteryStatsImpl;->init(Lcom/android/internal/os/BatteryStatsImpl$Clocks;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->initActiveHistoryEventsLocked(JJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->initDischarge()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->initTimes(JJ)V
+PLcom/android/internal/os/BatteryStatsImpl;->isCharging()Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isOnBattery()Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isOnBattery(II)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isOnBatteryLocked()Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isOnBatteryScreenOffLocked()Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isScreenDoze(I)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isScreenOff(I)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->isScreenOn(I)Z
+HPLcom/android/internal/os/BatteryStatsImpl;->lambda$readKernelUidCpuActiveTimesLocked$2$BatteryStatsImpl(ZILjava/lang/Long;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->lambda$readKernelUidCpuClusterTimesLocked$3$BatteryStatsImpl(ZI[J)V
+HPLcom/android/internal/os/BatteryStatsImpl;->lambda$readKernelUidCpuFreqTimesLocked$1$BatteryStatsImpl(ZZZIII[J)V
+HPLcom/android/internal/os/BatteryStatsImpl;->lambda$readKernelUidCpuTimesLocked$0$BatteryStatsImpl(IZLandroid/util/SparseLongArray;I[J)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->mapUid(I)I
+HSPLcom/android/internal/os/BatteryStatsImpl;->markPartialTimersAsEligible()V
+PLcom/android/internal/os/BatteryStatsImpl;->noteActivityPausedLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteActivityResumedLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteAlarmFinishLocked(Ljava/lang/String;Landroid/os/WorkSource;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteAlarmStartLocked(Ljava/lang/String;Landroid/os/WorkSource;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteAlarmStartOrFinishLocked(ILjava/lang/String;Landroid/os/WorkSource;I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteAudioOffLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteAudioOnLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanResultsFromSourceLocked(Landroid/os/WorkSource;I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanStartedFromSourceLocked(Landroid/os/WorkSource;Z)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanStartedLocked(Landroid/os/WorkSource$WorkChain;IZ)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanStoppedFromSourceLocked(Landroid/os/WorkSource;Z)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteBluetoothScanStoppedLocked(Landroid/os/WorkSource$WorkChain;IZ)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteCameraOffLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteCameraOnLocked(I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteChangeWakelockFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;ILandroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteConnectivityChangedLocked(ILjava/lang/String;)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteCurrentTimeChangedLocked()V
+PLcom/android/internal/os/BatteryStatsImpl;->noteDeviceIdleModeLocked(ILjava/lang/String;I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteEventLocked(ILjava/lang/String;I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteFullWifiLockAcquiredFromSourceLocked(Landroid/os/WorkSource;)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteFullWifiLockAcquiredLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteFullWifiLockReleasedFromSourceLocked(Landroid/os/WorkSource;)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteFullWifiLockReleasedLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteGpsChangedLocked(Landroid/os/WorkSource;Landroid/os/WorkSource;)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteGpsSignalQualityLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteInteractiveLocked(Z)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteJobFinishLocked(Ljava/lang/String;II)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteJobStartLocked(Ljava/lang/String;I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteJobsDeferredLocked(IIJ)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakeLockFinishInternal(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakeLockStartInternal(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakelockFinish(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakelockFinishFromSource(Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakelockStart(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteLongPartialWakelockStartFromSource(Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteNetworkInterfaceTypeLocked(Ljava/lang/String;I)V
+PLcom/android/internal/os/BatteryStatsImpl;->notePackageInstalledLocked(Ljava/lang/String;J)V
+PLcom/android/internal/os/BatteryStatsImpl;->notePhoneSignalStrengthLocked(Landroid/telephony/SignalStrength;)V
+PLcom/android/internal/os/BatteryStatsImpl;->notePhoneStateLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->notePowerSaveModeLocked(Z)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteProcessAnrLocked(Ljava/lang/String;I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteProcessCrashLocked(Ljava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteProcessDiedLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteProcessFinishLocked(Ljava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteProcessStartLocked(Ljava/lang/String;I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteResetBluetoothScanLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteScreenBrightnessLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteScreenStateLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteStartGpsLocked(ILandroid/os/WorkSource$WorkChain;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteStartSensorLocked(II)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteStartWakeFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;IZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteStartWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IZJJ)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteStopGpsLocked(ILandroid/os/WorkSource$WorkChain;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteStopSensorLocked(II)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteStopWakeFromSourceLocked(Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteStopWakeLocked(IILandroid/os/WorkSource$WorkChain;Ljava/lang/String;Ljava/lang/String;IJJ)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteSyncFinishLocked(Ljava/lang/String;I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteSyncStartLocked(Ljava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteUidProcessStateLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteUsbConnectionStateLocked(Z)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteUserActivityLocked(II)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteVibratorOffLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteVibratorOnLocked(IJ)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteVideoOffLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteVideoOnLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteWakeUpLocked(Ljava/lang/String;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWakeupReasonLocked(Ljava/lang/String;)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWakupAlarmLocked(Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteWifiMulticastDisabledLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteWifiMulticastEnabledLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteWifiOffLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->noteWifiOnLocked()V
+PLcom/android/internal/os/BatteryStatsImpl;->noteWifiRadioApWakeupLocked(JJI)V
+HPLcom/android/internal/os/BatteryStatsImpl;->noteWifiRadioPowerState(IJI)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteWifiRssiChangedLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteWifiScanStartedFromSourceLocked(Landroid/os/WorkSource;)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteWifiScanStartedLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteWifiScanStoppedFromSourceLocked(Landroid/os/WorkSource;)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteWifiScanStoppedLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteWifiStateLocked(ILjava/lang/String;)V
+PLcom/android/internal/os/BatteryStatsImpl;->noteWifiSupplicantStateChangedLocked(IZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->postBatteryNeedsCpuUpdateMsg()V
+PLcom/android/internal/os/BatteryStatsImpl;->prepareForDumpLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->pullPendingStateUpdatesLocked()V
+PLcom/android/internal/os/BatteryStatsImpl;->readBatteryLevelInt(ILandroid/os/BatteryStats$HistoryItem;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readDailyItemTagDetailsLocked(Lorg/xmlpull/v1/XmlPullParser;Landroid/os/BatteryStats$DailyItem;ZLjava/lang/String;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readDailyItemTagLocked(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readDailyItemsLocked(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readDailyStatsLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readHistoryBuffer(Landroid/os/Parcel;Z)V
+HPLcom/android/internal/os/BatteryStatsImpl;->readHistoryDelta(Landroid/os/Parcel;Landroid/os/BatteryStats$HistoryItem;)V
+PLcom/android/internal/os/BatteryStatsImpl;->readHistoryTag(ILandroid/os/BatteryStats$HistoryTag;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readKernelUidCpuActiveTimesLocked(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readKernelUidCpuClusterTimesLocked(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readKernelUidCpuFreqTimesLocked(Ljava/util/ArrayList;ZZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readKernelUidCpuTimesLocked(Ljava/util/ArrayList;Landroid/util/SparseLongArray;Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl;->readNetworkStatsLocked([Ljava/lang/String;)Landroid/net/NetworkStats;
+HSPLcom/android/internal/os/BatteryStatsImpl;->readOldHistory(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->readSummaryFromParcel(Landroid/os/Parcel;)V
+PLcom/android/internal/os/BatteryStatsImpl;->recordCurrentTimeChangeLocked(JJJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->recordDailyStatsIfNeededLocked(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->recordDailyStatsLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->registerUsbStateReceiver(Landroid/content/Context;)V
+PLcom/android/internal/os/BatteryStatsImpl;->removeIsolatedUidLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->reportChangesToStatsLog(Landroid/os/BatteryStats$HistoryItem;III)V
+PLcom/android/internal/os/BatteryStatsImpl;->reportExcessiveCpuLocked(ILjava/lang/String;JJ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->requestImmediateCpuUpdate()V
+PLcom/android/internal/os/BatteryStatsImpl;->requestWakelockCpuUpdate()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->resetAllStatsLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->resetIfNotNull(Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->resetIfNotNull(Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->resetIfNotNull([Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->resetIfNotNull([[Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->scheduleRemoveIsolatedUidLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->scheduleSyncExternalStatsLocked(Ljava/lang/String;I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->setBatteryStateLocked(IIIIIIII)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->setCallback(Lcom/android/internal/os/BatteryStatsImpl$BatteryCallback;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->setChargingLocked(Z)Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->setExternalStatsSyncLocked(Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->setOnBatteryLocked(JJZIII)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->setPowerProfileLocked(Lcom/android/internal/os/PowerProfile;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->setRadioScanningTimeoutLocked(J)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->startAddingCpuLocked()Z
+HPLcom/android/internal/os/BatteryStatsImpl;->startIteratingHistoryLocked()Z
+PLcom/android/internal/os/BatteryStatsImpl;->startIteratingOldHistoryLocked()Z
+HSPLcom/android/internal/os/BatteryStatsImpl;->startRecordingHistory(JJZ)V
+PLcom/android/internal/os/BatteryStatsImpl;->stopAllGpsSignalQualityTimersLocked(I)V
+PLcom/android/internal/os/BatteryStatsImpl;->stopAllPhoneSignalStrengthTimersLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->systemServicesReady(Landroid/content/Context;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->trackPerProcStateCpuTimes()Z
+PLcom/android/internal/os/BatteryStatsImpl;->updateAllPhoneStateLocked(III)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateBatteryPropertiesLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl;->updateBluetoothStateLocked(Landroid/bluetooth/BluetoothActivityEnergyInfo;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateCpuTimeLocked(ZZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateDailyDeadlineLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateDischargeScreenLevelsLocked(II)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateKernelMemoryBandwidthLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateKernelWakelocksLocked()V
+HPLcom/android/internal/os/BatteryStatsImpl;->updateMobileRadioState(Landroid/telephony/ModemActivityInfo;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateNewDischargeScreenLevelLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateOldDischargeScreenLevelLocked(I)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateRailStatsLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateRpmStatsLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->updateTimeBasesLocked(ZIJJ)V
+HPLcom/android/internal/os/BatteryStatsImpl;->updateWifiState(Landroid/os/connectivity/WifiActivityEnergyInfo;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeAsyncLocked()V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeDailyItemsLocked(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeDailyLevelSteps(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Landroid/os/BatteryStats$LevelStepTracker;Ljava/lang/StringBuilder;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeHistoryBuffer(Landroid/os/Parcel;ZZ)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeHistoryDelta(Landroid/os/Parcel;Landroid/os/BatteryStats$HistoryItem;Landroid/os/BatteryStats$HistoryItem;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeHistoryLocked(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeHistoryTag(Landroid/os/BatteryStats$HistoryTag;)I
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeOldHistory(Landroid/os/Parcel;)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeParcelToFileLocked(Landroid/os/Parcel;Landroid/util/AtomicFile;Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeStatsLocked(Z)V
+HSPLcom/android/internal/os/BatteryStatsImpl;->writeSummaryToParcel(Landroid/os/Parcel;Z)V
+PLcom/android/internal/os/BatteryStatsImpl;->writeToParcel(Landroid/os/Parcel;I)V
+HPLcom/android/internal/os/BatteryStatsImpl;->writeToParcelLocked(Landroid/os/Parcel;ZI)V
+PLcom/android/internal/os/BinderCallsStats$CallStat;-><init>(ILjava/lang/Class;IZ)V
+HSPLcom/android/internal/os/BinderCallsStats$CallStatKey;-><init>()V
+HSPLcom/android/internal/os/BinderCallsStats$CallStatKey;->access$002(Lcom/android/internal/os/BinderCallsStats$CallStatKey;Z)Z
+HPLcom/android/internal/os/BinderCallsStats$CallStatKey;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/internal/os/BinderCallsStats$CallStatKey;->hashCode()I
+PLcom/android/internal/os/BinderCallsStats$ExportedCallStat;-><init>()V
+HSPLcom/android/internal/os/BinderCallsStats$Injector;-><init>()V
+HSPLcom/android/internal/os/BinderCallsStats$Injector;->getRandomGenerator()Ljava/util/Random;
+HSPLcom/android/internal/os/BinderCallsStats$UidEntry;-><init>(I)V
+HSPLcom/android/internal/os/BinderCallsStats$UidEntry;->get(ILjava/lang/Class;IZ)Lcom/android/internal/os/BinderCallsStats$CallStat;
+HPLcom/android/internal/os/BinderCallsStats$UidEntry;->getCallStatsList()Ljava/util/Collection;
+HPLcom/android/internal/os/BinderCallsStats$UidEntry;->getOrCreate(ILjava/lang/Class;IZZ)Lcom/android/internal/os/BinderCallsStats$CallStat;
+HSPLcom/android/internal/os/BinderCallsStats;-><init>(Lcom/android/internal/os/BinderCallsStats$Injector;)V
+HSPLcom/android/internal/os/BinderCallsStats;->callEnded(Lcom/android/internal/os/BinderInternal$CallSession;III)V
+HSPLcom/android/internal/os/BinderCallsStats;->callStarted(Landroid/os/Binder;II)Lcom/android/internal/os/BinderInternal$CallSession;
+PLcom/android/internal/os/BinderCallsStats;->callThrewException(Lcom/android/internal/os/BinderInternal$CallSession;Ljava/lang/Exception;)V
+PLcom/android/internal/os/BinderCallsStats;->compareByBinderClassAndCode(Lcom/android/internal/os/BinderCallsStats$ExportedCallStat;Lcom/android/internal/os/BinderCallsStats$ExportedCallStat;)I
+PLcom/android/internal/os/BinderCallsStats;->compareByCpuDesc(Lcom/android/internal/os/BinderCallsStats$ExportedCallStat;Lcom/android/internal/os/BinderCallsStats$ExportedCallStat;)I
+PLcom/android/internal/os/BinderCallsStats;->createDebugEntry(Ljava/lang/String;J)Lcom/android/internal/os/BinderCallsStats$ExportedCallStat;
+PLcom/android/internal/os/BinderCallsStats;->dump(Ljava/io/PrintWriter;Lcom/android/internal/os/AppIdToPackageMap;Z)V
+HPLcom/android/internal/os/BinderCallsStats;->dumpLocked(Ljava/io/PrintWriter;Lcom/android/internal/os/AppIdToPackageMap;Z)V
+HSPLcom/android/internal/os/BinderCallsStats;->getCallingUid()I
+PLcom/android/internal/os/BinderCallsStats;->getDefaultTransactionNameMethod(Ljava/lang/Class;)Ljava/lang/reflect/Method;
+HPLcom/android/internal/os/BinderCallsStats;->getElapsedRealtimeMicro()J
+HPLcom/android/internal/os/BinderCallsStats;->getExportedCallStats()Ljava/util/ArrayList;
+HPLcom/android/internal/os/BinderCallsStats;->getThreadTimeMicro()J
+HSPLcom/android/internal/os/BinderCallsStats;->getUidEntry(I)Lcom/android/internal/os/BinderCallsStats$UidEntry;
+PLcom/android/internal/os/BinderCallsStats;->lambda$233x_Qux4c_AiqShYaWwvFplEXs(Lcom/android/internal/os/BinderCallsStats$ExportedCallStat;Lcom/android/internal/os/BinderCallsStats$ExportedCallStat;)I
+PLcom/android/internal/os/BinderCallsStats;->lambda$dumpLocked$0(Lcom/android/internal/os/BinderCallsStats$UidEntry;)D
+PLcom/android/internal/os/BinderCallsStats;->lambda$dumpLocked$2(Ljava/util/List;Ljava/util/Map$Entry;)V
+PLcom/android/internal/os/BinderCallsStats;->lambda$dumpLocked$3(Landroid/util/Pair;Landroid/util/Pair;)I
+PLcom/android/internal/os/BinderCallsStats;->lambda$sqXweH5BoxhmZvI188ctqYiACRk(Lcom/android/internal/os/BinderCallsStats$ExportedCallStat;Lcom/android/internal/os/BinderCallsStats$ExportedCallStat;)I
+HSPLcom/android/internal/os/BinderCallsStats;->processCallEnded(Lcom/android/internal/os/BinderInternal$CallSession;III)V
+HSPLcom/android/internal/os/BinderCallsStats;->reset()V
+PLcom/android/internal/os/BinderCallsStats;->resolveTransactionCode(Ljava/lang/reflect/Method;I)Ljava/lang/String;
+HSPLcom/android/internal/os/BinderCallsStats;->setAddDebugEntries(Z)V
+HSPLcom/android/internal/os/BinderCallsStats;->setDetailedTracking(Z)V
+HSPLcom/android/internal/os/BinderCallsStats;->setDeviceState(Lcom/android/internal/os/CachedDeviceState$Readonly;)V
+HSPLcom/android/internal/os/BinderCallsStats;->setMaxBinderCallStats(I)V
+HSPLcom/android/internal/os/BinderCallsStats;->setSamplingInterval(I)V
+HSPLcom/android/internal/os/BinderCallsStats;->setTrackDirectCallerUid(Z)V
+HSPLcom/android/internal/os/BinderCallsStats;->setTrackScreenInteractive(Z)V
+HSPLcom/android/internal/os/BinderCallsStats;->shouldRecordDetailedData()Z
+HSPLcom/android/internal/os/BinderDeathDispatcher$RecipientsInfo;-><init>(Lcom/android/internal/os/BinderDeathDispatcher;Landroid/os/IBinder;)V
+HSPLcom/android/internal/os/BinderDeathDispatcher$RecipientsInfo;-><init>(Lcom/android/internal/os/BinderDeathDispatcher;Landroid/os/IBinder;Lcom/android/internal/os/BinderDeathDispatcher$1;)V
+HPLcom/android/internal/os/BinderDeathDispatcher$RecipientsInfo;->binderDied()V
+HSPLcom/android/internal/os/BinderDeathDispatcher;-><init>()V
+PLcom/android/internal/os/BinderDeathDispatcher;->access$000(Lcom/android/internal/os/BinderDeathDispatcher;)Ljava/lang/Object;
+PLcom/android/internal/os/BinderDeathDispatcher;->access$100(Lcom/android/internal/os/BinderDeathDispatcher;)Landroid/util/ArrayMap;
+HPLcom/android/internal/os/BinderDeathDispatcher;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/internal/os/BinderDeathDispatcher;->linkToDeath(Landroid/os/IInterface;Landroid/os/IBinder$DeathRecipient;)I
+HPLcom/android/internal/os/BinderDeathDispatcher;->unlinkToDeath(Landroid/os/IInterface;Landroid/os/IBinder$DeathRecipient;)V
+PLcom/android/internal/os/BinderInternal$BinderProxyLimitListenerDelegate;->setListener(Lcom/android/internal/os/BinderInternal$BinderProxyLimitListener;Landroid/os/Handler;)V
HSPLcom/android/internal/os/BinderInternal$GcWatcher;-><init>()V
HSPLcom/android/internal/os/BinderInternal$GcWatcher;->finalize()V
HSPLcom/android/internal/os/BinderInternal;->addGcWatcher(Ljava/lang/Runnable;)V
PLcom/android/internal/os/BinderInternal;->forceBinderGc()V
+PLcom/android/internal/os/BinderInternal;->forceGc(Ljava/lang/String;)V
+PLcom/android/internal/os/BinderInternal;->getLastGcTime()J
+PLcom/android/internal/os/BinderInternal;->setBinderProxyCountCallback(Lcom/android/internal/os/BinderInternal$BinderProxyLimitListener;Landroid/os/Handler;)V
+PLcom/android/internal/os/BluetoothPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HPLcom/android/internal/os/BluetoothPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+PLcom/android/internal/os/BluetoothPowerCalculator;->calculateRemaining(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
+PLcom/android/internal/os/BluetoothPowerCalculator;->reset()V
+PLcom/android/internal/os/ByteTransferPipe;-><init>()V
+HPLcom/android/internal/os/ByteTransferPipe;->get()[B
+PLcom/android/internal/os/ByteTransferPipe;->getNewOutputStream()Ljava/io/OutputStream;
+HSPLcom/android/internal/os/CachedDeviceState$Readonly;-><init>(Lcom/android/internal/os/CachedDeviceState;)V
+HSPLcom/android/internal/os/CachedDeviceState$Readonly;->createTimeOnBatteryStopwatch()Lcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;
+HSPLcom/android/internal/os/CachedDeviceState$Readonly;->isCharging()Z
+HSPLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;-><init>(Lcom/android/internal/os/CachedDeviceState;)V
+HSPLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->access$000(Lcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;)V
+PLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->access$100(Lcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;)V
+PLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->elapsedTime()J
+PLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->getMillis()J
+HSPLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->isRunning()Z
+HSPLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->reset()V
+HSPLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->start()V
+PLcom/android/internal/os/CachedDeviceState$TimeInStateStopwatch;->stop()V
+HSPLcom/android/internal/os/CachedDeviceState;-><init>()V
+HSPLcom/android/internal/os/CachedDeviceState;->access$200(Lcom/android/internal/os/CachedDeviceState;)Z
+HSPLcom/android/internal/os/CachedDeviceState;->access$400(Lcom/android/internal/os/CachedDeviceState;)Ljava/lang/Object;
+HSPLcom/android/internal/os/CachedDeviceState;->access$500(Lcom/android/internal/os/CachedDeviceState;)Ljava/util/ArrayList;
+HSPLcom/android/internal/os/CachedDeviceState;->getReadonlyClient()Lcom/android/internal/os/CachedDeviceState$Readonly;
+HSPLcom/android/internal/os/CachedDeviceState;->setCharging(Z)V
+HSPLcom/android/internal/os/CachedDeviceState;->setScreenInteractive(Z)V
+HSPLcom/android/internal/os/CachedDeviceState;->updateStopwatches(Z)V
+PLcom/android/internal/os/CameraPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HPLcom/android/internal/os/CameraPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
HSPLcom/android/internal/os/ClassLoaderFactory;->createClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
+HSPLcom/android/internal/os/ClassLoaderFactory;->createClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;IZLjava/lang/String;)Ljava/lang/ClassLoader;
HSPLcom/android/internal/os/ClassLoaderFactory;->createClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;IZLjava/lang/String;Ljava/util/List;)Ljava/lang/ClassLoader;
+PLcom/android/internal/os/ClassLoaderFactory;->getPathClassLoaderName()Ljava/lang/String;
+PLcom/android/internal/os/ClassLoaderFactory;->isDelegateLastClassLoaderName(Ljava/lang/String;)Z
HSPLcom/android/internal/os/ClassLoaderFactory;->isPathClassLoaderName(Ljava/lang/String;)Z
+PLcom/android/internal/os/ClassLoaderFactory;->isValidClassLoaderName(Ljava/lang/String;)Z
+PLcom/android/internal/os/CpuPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HPLcom/android/internal/os/CpuPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+PLcom/android/internal/os/FlashlightPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HPLcom/android/internal/os/FlashlightPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+PLcom/android/internal/os/FuseUnavailableMountException;-><init>(I)V
HSPLcom/android/internal/os/HandlerCaller$MyHandler;-><init>(Lcom/android/internal/os/HandlerCaller;Landroid/os/Looper;Z)V
+HSPLcom/android/internal/os/HandlerCaller$MyHandler;->handleMessage(Landroid/os/Message;)V
HSPLcom/android/internal/os/HandlerCaller;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/internal/os/HandlerCaller$Callback;Z)V
+HSPLcom/android/internal/os/HandlerCaller;->executeOrSendMessage(Landroid/os/Message;)V
+HPLcom/android/internal/os/HandlerCaller;->obtainMessage(I)Landroid/os/Message;
+HPLcom/android/internal/os/HandlerCaller;->obtainMessageI(II)Landroid/os/Message;
+HPLcom/android/internal/os/HandlerCaller;->obtainMessageIIIIII(IIIIIII)Landroid/os/Message;
+PLcom/android/internal/os/HandlerCaller;->obtainMessageIIO(IIILjava/lang/Object;)Landroid/os/Message;
+PLcom/android/internal/os/HandlerCaller;->obtainMessageIIOOOO(IIILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
HSPLcom/android/internal/os/HandlerCaller;->obtainMessageIO(IILjava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/os/HandlerCaller;->obtainMessageIOO(IILjava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
HSPLcom/android/internal/os/HandlerCaller;->obtainMessageO(ILjava/lang/Object;)Landroid/os/Message;
-HSPLcom/android/internal/os/IResultReceiver$Stub$Proxy;->send(ILandroid/os/Bundle;)V
+HSPLcom/android/internal/os/HandlerCaller;->obtainMessageOO(ILjava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+PLcom/android/internal/os/HandlerCaller;->obtainMessageOOO(ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/os/HandlerCaller;->obtainMessageOOOOO(ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HPLcom/android/internal/os/HandlerCaller;->removeMessages(I)V
+HSPLcom/android/internal/os/HandlerCaller;->sendMessage(Landroid/os/Message;)V
+HSLcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;->add(Landroid/os/DropBoxManager$Entry;)V
+HSPLcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;->getNextEntry(Ljava/lang/String;JLjava/lang/String;)Landroid/os/DropBoxManager$Entry;
+HSPLcom/android/internal/os/IDropBoxManagerService$Stub;-><init>()V
+HSPLcom/android/internal/os/IDropBoxManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IDropBoxManagerService;
+PLcom/android/internal/os/IDropBoxManagerService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HPLcom/android/internal/os/IDropBoxManagerService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/os/IResultReceiver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/os/IResultReceiver$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/os/IResultReceiver$Stub$Proxy;->send(ILandroid/os/Bundle;)V
HSPLcom/android/internal/os/IResultReceiver$Stub;-><init>()V
HSPLcom/android/internal/os/IResultReceiver$Stub;->asBinder()Landroid/os/IBinder;
-HSPLcom/android/internal/os/IResultReceiver$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IResultReceiver;
+HPLcom/android/internal/os/IResultReceiver$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IResultReceiver;
+PLcom/android/internal/os/IResultReceiver$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
HSPLcom/android/internal/os/IResultReceiver$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/internal/os/IShellCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/os/IShellCallback$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/os/IShellCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IShellCallback;
+HSPLcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;-><init>(Lcom/android/internal/os/KernelCpuProcStringReader;I)V
+HSPLcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;->close()V
+HSPLcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;->hasNextLine()Z
+HSPLcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;->nextLine()Ljava/nio/CharBuffer;
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->access$100(Lcom/android/internal/os/KernelCpuProcStringReader;)Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->asLongs(Ljava/nio/CharBuffer;[J)I
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->dataValid()Z
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->getActiveTimeReaderInstance()Lcom/android/internal/os/KernelCpuProcStringReader;
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->getClusterTimeReaderInstance()Lcom/android/internal/os/KernelCpuProcStringReader;
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->getFreqTimeReaderInstance()Lcom/android/internal/os/KernelCpuProcStringReader;
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->getUserSysTimeReaderInstance()Lcom/android/internal/os/KernelCpuProcStringReader;
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->isNumber(C)Z
+HSPLcom/android/internal/os/KernelCpuProcStringReader;->open(Z)Lcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;
+HSPLcom/android/internal/os/KernelCpuSpeedReader;-><init>(II)V
+HSPLcom/android/internal/os/KernelCpuSpeedReader;->readDelta()[J
+HSPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;-><init>([JI)V
+HSPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;->bucketFrequencies([J)[I
+HPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;->bucketValues([J)[I
+HSPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;->getBucketStartIndices([III)[I
+HSPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;->getClusterStartIndices([J)[I
+HSPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;->getLowerBound(I[I)I
+HSPLcom/android/internal/os/KernelCpuThreadReader$FrequencyBucketCreator;->getUpperBound(I[II)I
+HSPLcom/android/internal/os/KernelCpuThreadReader$Injector;-><init>()V
+HPLcom/android/internal/os/KernelCpuThreadReader$Injector;->getUidForPid(I)I
+PLcom/android/internal/os/KernelCpuThreadReader$ProcessCpuUsage;-><init>(ILjava/lang/String;ILjava/util/ArrayList;)V
+HPLcom/android/internal/os/KernelCpuThreadReader$ThreadCpuUsage;-><init>(ILjava/lang/String;[I)V
+HSPLcom/android/internal/os/KernelCpuThreadReader;-><clinit>()V
+HSPLcom/android/internal/os/KernelCpuThreadReader;-><init>(ILjava/util/function/Predicate;Ljava/nio/file/Path;Ljava/nio/file/Path;Lcom/android/internal/os/KernelCpuThreadReader$Injector;)V
+HSPLcom/android/internal/os/KernelCpuThreadReader;->create(ILjava/util/function/Predicate;)Lcom/android/internal/os/KernelCpuThreadReader;
+PLcom/android/internal/os/KernelCpuThreadReader;->getCpuFrequenciesKhz()[I
+HPLcom/android/internal/os/KernelCpuThreadReader;->getProcessCpuUsage()Ljava/util/ArrayList;
+HPLcom/android/internal/os/KernelCpuThreadReader;->getProcessCpuUsage(Ljava/nio/file/Path;II)Lcom/android/internal/os/KernelCpuThreadReader$ProcessCpuUsage;
+HPLcom/android/internal/os/KernelCpuThreadReader;->getProcessId(Ljava/nio/file/Path;)I
+PLcom/android/internal/os/KernelCpuThreadReader;->getProcessName(Ljava/nio/file/Path;)Ljava/lang/String;
+HPLcom/android/internal/os/KernelCpuThreadReader;->getThreadCpuUsage(Ljava/nio/file/Path;)Lcom/android/internal/os/KernelCpuThreadReader$ThreadCpuUsage;
+PLcom/android/internal/os/KernelCpuThreadReader;->getThreadName(Ljava/nio/file/Path;)Ljava/lang/String;
+HSPLcom/android/internal/os/KernelCpuThreadReader;->setNumBuckets(I)V
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff$ThreadKey;-><init>(IILjava/lang/String;Ljava/lang/String;)V
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff$ThreadKey;->equals(Ljava/lang/Object;)Z
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff$ThreadKey;->hashCode()I
+HSPLcom/android/internal/os/KernelCpuThreadReaderDiff;-><init>(Lcom/android/internal/os/KernelCpuThreadReader;I)V
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->addToCpuUsage([I[I)V
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->applyThresholding(Lcom/android/internal/os/KernelCpuThreadReader$ProcessCpuUsage;)V
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->changeToDiffs(Ljava/util/Map;Lcom/android/internal/os/KernelCpuThreadReader$ProcessCpuUsage;)V
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->cpuTimeDiff([I[I)[I
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->createCpuUsageMap(Ljava/util/List;)Ljava/util/Map;
+PLcom/android/internal/os/KernelCpuThreadReaderDiff;->getCpuFrequenciesKhz()[I
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->getProcessCpuUsageDiffed()Ljava/util/ArrayList;
+HPLcom/android/internal/os/KernelCpuThreadReaderDiff;->totalCpuUsage([I)I
+HSPLcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;-><clinit>()V
+HSPLcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;-><init>(Ljava/util/List;)V
+HSPLcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;->fromString(Ljava/lang/String;)Lcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;
+HPLcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;->test(Ljava/lang/Integer;)Z
+HPLcom/android/internal/os/KernelCpuThreadReaderSettingsObserver$UidPredicate;->test(Ljava/lang/Object;)Z
+HSPLcom/android/internal/os/KernelCpuThreadReaderSettingsObserver;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/os/KernelCpuThreadReaderSettingsObserver;->getSettingsModifiedReader(Landroid/content/Context;)Lcom/android/internal/os/KernelCpuThreadReaderDiff;
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidActiveTimeReader;-><init>(Z)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidActiveTimeReader;->checkPrecondition(Lcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;)Z
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidActiveTimeReader;->readDeltaImpl(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidActiveTimeReader;->sumActiveTime([J)J
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidClusterTimeReader;-><init>(Z)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidClusterTimeReader;->checkPrecondition(Lcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;)Z
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidClusterTimeReader;->readDeltaImpl(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidClusterTimeReader;->sumClusterTime()V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;-><init>(Ljava/lang/String;Lcom/android/internal/os/KernelCpuProcStringReader;Z)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;-><init>(Z)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->checkPrecondition(Lcom/android/internal/os/KernelCpuProcStringReader$ProcFileIterator;)Z
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->extractClusterInfoFromProcFileFreqs()Landroid/util/IntArray;
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->perClusterTimesAvailable()Z
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->readDeltaImpl(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->readFreqs(Lcom/android/internal/os/PowerProfile;)[J
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidFreqTimeReader;->readFreqs(Ljava/lang/String;)[J
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader;-><init>(Z)V
+HPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader;->readAbsoluteImpl(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader;->readDeltaImpl(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+PLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader;->removeUid(I)V
+PLcom/android/internal/os/KernelCpuUidTimeReader$KernelCpuUidUserSysTimeReader;->removeUidsFromKernelModule(II)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader;-><init>(Lcom/android/internal/os/KernelCpuProcStringReader;Z)V
+PLcom/android/internal/os/KernelCpuUidTimeReader;->readAbsolute(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader;->readDelta(Lcom/android/internal/os/KernelCpuUidTimeReader$Callback;)V
+PLcom/android/internal/os/KernelCpuUidTimeReader;->removeUid(I)V
+HSPLcom/android/internal/os/KernelCpuUidTimeReader;->setThrottle(J)V
+HSPLcom/android/internal/os/KernelMemoryBandwidthStats;-><init>()V
+HSPLcom/android/internal/os/KernelMemoryBandwidthStats;->getBandwidthEntries()Landroid/util/LongSparseLongArray;
+HSPLcom/android/internal/os/KernelMemoryBandwidthStats;->updateStats()V
+HSPLcom/android/internal/os/KernelWakelockReader;-><init>()V
+HSPLcom/android/internal/os/KernelWakelockReader;->getWakelockStatsFromSystemSuspend(Lcom/android/internal/os/KernelWakelockStats;)Lcom/android/internal/os/KernelWakelockStats;
+HSPLcom/android/internal/os/KernelWakelockReader;->readKernelWakelockStats(Lcom/android/internal/os/KernelWakelockStats;)Lcom/android/internal/os/KernelWakelockStats;
+HSPLcom/android/internal/os/KernelWakelockReader;->removeOldStats(Lcom/android/internal/os/KernelWakelockStats;)Lcom/android/internal/os/KernelWakelockStats;
+HSPLcom/android/internal/os/KernelWakelockReader;->updateVersion(Lcom/android/internal/os/KernelWakelockStats;)Lcom/android/internal/os/KernelWakelockStats;
+HSPLcom/android/internal/os/KernelWakelockReader;->updateWakelockStats([Landroid/system/suspend/WakeLockInfo;Lcom/android/internal/os/KernelWakelockStats;)Lcom/android/internal/os/KernelWakelockStats;
+HSPLcom/android/internal/os/KernelWakelockStats$Entry;-><init>(IJI)V
+HSPLcom/android/internal/os/KernelWakelockStats;-><init>()V
HSPLcom/android/internal/os/LoggingPrintStream$1;-><init>()V
HSPLcom/android/internal/os/LoggingPrintStream;-><init>()V
+HSPLcom/android/internal/os/LoggingPrintStream;->flush()V
+HSPLcom/android/internal/os/LoggingPrintStream;->flush(Z)V
+HSPLcom/android/internal/os/LoggingPrintStream;->println(Ljava/lang/Object;)V
+HSPLcom/android/internal/os/LoggingPrintStream;->println(Ljava/lang/String;)V
+PLcom/android/internal/os/LooperStats$Entry;-><init>(Landroid/os/Message;Z)V
+HSPLcom/android/internal/os/LooperStats$Entry;-><init>(Ljava/lang/String;)V
+HSPLcom/android/internal/os/LooperStats$Entry;->idFor(Landroid/os/Message;Z)I
+HSPLcom/android/internal/os/LooperStats$Entry;->reset()V
+PLcom/android/internal/os/LooperStats$ExportedEntry;-><init>(Lcom/android/internal/os/LooperStats$Entry;)V
+HSPLcom/android/internal/os/LooperStats;-><init>(II)V
+PLcom/android/internal/os/LooperStats;->createDebugEntry(Ljava/lang/String;J)Lcom/android/internal/os/LooperStats$ExportedEntry;
+HSPLcom/android/internal/os/LooperStats;->deviceStateAllowsCollection()Z
+HSPLcom/android/internal/os/LooperStats;->findEntry(Landroid/os/Message;Z)Lcom/android/internal/os/LooperStats$Entry;
+PLcom/android/internal/os/LooperStats;->getBatteryTimeMillis()J
+HPLcom/android/internal/os/LooperStats;->getElapsedRealtimeMicro()J
+PLcom/android/internal/os/LooperStats;->getEntries()Ljava/util/List;
+PLcom/android/internal/os/LooperStats;->getStartTimeMillis()J
+PLcom/android/internal/os/LooperStats;->getSystemUptimeMillis()J
+HPLcom/android/internal/os/LooperStats;->getThreadTimeMicro()J
+PLcom/android/internal/os/LooperStats;->maybeAddSpecialEntry(Ljava/util/List;Lcom/android/internal/os/LooperStats$Entry;)V
+HSPLcom/android/internal/os/LooperStats;->messageDispatchStarting()Ljava/lang/Object;
+HSPLcom/android/internal/os/LooperStats;->messageDispatched(Ljava/lang/Object;Landroid/os/Message;)V
+HSPLcom/android/internal/os/LooperStats;->reset()V
+HSPLcom/android/internal/os/LooperStats;->setAddDebugEntries(Z)V
+HSPLcom/android/internal/os/LooperStats;->setDeviceState(Lcom/android/internal/os/CachedDeviceState$Readonly;)V
+HSPLcom/android/internal/os/LooperStats;->setSamplingInterval(I)V
+HSPLcom/android/internal/os/LooperStats;->shouldCollectDetailedData()Z
+PLcom/android/internal/os/MediaPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HPLcom/android/internal/os/MediaPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+HPLcom/android/internal/os/MemoryPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+PLcom/android/internal/os/MemoryPowerCalculator;->calculateRemaining(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
+PLcom/android/internal/os/MobileRadioPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;Landroid/os/BatteryStats;)V
+HPLcom/android/internal/os/MobileRadioPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+PLcom/android/internal/os/MobileRadioPowerCalculator;->calculateRemaining(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
+HPLcom/android/internal/os/MobileRadioPowerCalculator;->getMobilePowerPerPacket(JI)D
+PLcom/android/internal/os/MobileRadioPowerCalculator;->reset()V
+PLcom/android/internal/os/MobileRadioPowerCalculator;->reset(Landroid/os/BatteryStats;)V
+PLcom/android/internal/os/PowerCalculator;-><init>()V
+PLcom/android/internal/os/PowerCalculator;->reset()V
+HSPLcom/android/internal/os/PowerProfile$CpuClusterKey;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+HSPLcom/android/internal/os/PowerProfile$CpuClusterKey;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILcom/android/internal/os/PowerProfile$1;)V
+HSPLcom/android/internal/os/PowerProfile$CpuClusterKey;->access$100(Lcom/android/internal/os/PowerProfile$CpuClusterKey;)I
+HSPLcom/android/internal/os/PowerProfile$CpuClusterKey;->access$200(Lcom/android/internal/os/PowerProfile$CpuClusterKey;)Ljava/lang/String;
+PLcom/android/internal/os/PowerProfile$CpuClusterKey;->access$300(Lcom/android/internal/os/PowerProfile$CpuClusterKey;)Ljava/lang/String;
+PLcom/android/internal/os/PowerProfile$CpuClusterKey;->access$400(Lcom/android/internal/os/PowerProfile$CpuClusterKey;)Ljava/lang/String;
+HSPLcom/android/internal/os/PowerProfile;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/os/PowerProfile;-><init>(Landroid/content/Context;Z)V
+HSPLcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;)D
+HPLcom/android/internal/os/PowerProfile;->getAveragePower(Ljava/lang/String;I)D
+HPLcom/android/internal/os/PowerProfile;->getAveragePowerForCpuCluster(I)D
+HPLcom/android/internal/os/PowerProfile;->getAveragePowerForCpuCore(II)D
+HSPLcom/android/internal/os/PowerProfile;->getAveragePowerOrDefault(Ljava/lang/String;D)D
+HSPLcom/android/internal/os/PowerProfile;->getBatteryCapacity()D
+HSPLcom/android/internal/os/PowerProfile;->getNumCoresInCpuCluster(I)I
+HSPLcom/android/internal/os/PowerProfile;->getNumCpuClusters()I
+PLcom/android/internal/os/PowerProfile;->getNumElements(Ljava/lang/String;)I
+HSPLcom/android/internal/os/PowerProfile;->getNumSpeedStepsInCpuCluster(I)I
+HSPLcom/android/internal/os/PowerProfile;->initCpuClusters()V
+HSPLcom/android/internal/os/PowerProfile;->readPowerValuesFromXml(Landroid/content/Context;Z)V
+PLcom/android/internal/os/ProcStatsUtil;->readNullSeparatedFile(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/internal/os/ProcStatsUtil;->readSingleLineProcFile(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/os/ProcStatsUtil;->readTerminatedProcFile(Ljava/lang/String;B)Ljava/lang/String;
+HSPLcom/android/internal/os/ProcTimeInStateReader;-><init>(Ljava/nio/file/Path;)V
+HSPLcom/android/internal/os/ProcTimeInStateReader;->getFrequenciesKhz()[J
+HPLcom/android/internal/os/ProcTimeInStateReader;->getUsageTimesMillis(Ljava/nio/file/Path;)[J
+HSPLcom/android/internal/os/ProcTimeInStateReader;->initializeTimeInStateFormat(Ljava/nio/file/Path;)V
+HPLcom/android/internal/os/ProcessCpuTracker$1;->compare(Lcom/android/internal/os/ProcessCpuTracker$Stats;Lcom/android/internal/os/ProcessCpuTracker$Stats;)I
+HPLcom/android/internal/os/ProcessCpuTracker$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/internal/os/ProcessCpuTracker$Stats;-><init>(IIZ)V
+HSPLcom/android/internal/os/ProcessCpuTracker$Stats;->getUid(Ljava/lang/String;)I
+HSPLcom/android/internal/os/ProcessCpuTracker;-><init>(Z)V
+HPLcom/android/internal/os/ProcessCpuTracker;->buildWorkingProcs()V
+HSPLcom/android/internal/os/ProcessCpuTracker;->collectStats(Ljava/lang/String;IZ[ILjava/util/ArrayList;)[I
+HSPLcom/android/internal/os/ProcessCpuTracker;->countStats()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getCpuTimeForPid(I)J
+HSPLcom/android/internal/os/ProcessCpuTracker;->getLastIdleTime()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getLastIoWaitTime()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getLastIrqTime()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getLastSoftIrqTime()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getLastSystemTime()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getLastUserTime()I
+HSPLcom/android/internal/os/ProcessCpuTracker;->getName(Lcom/android/internal/os/ProcessCpuTracker$Stats;Ljava/lang/String;)V
+HSPLcom/android/internal/os/ProcessCpuTracker;->getStats(I)Lcom/android/internal/os/ProcessCpuTracker$Stats;
+HSPLcom/android/internal/os/ProcessCpuTracker;->getStats(Lcom/android/internal/os/ProcessCpuTracker$FilterStats;)Ljava/util/List;
+HSPLcom/android/internal/os/ProcessCpuTracker;->hasGoodLastStats()Z
+HSPLcom/android/internal/os/ProcessCpuTracker;->init()V
+HSPLcom/android/internal/os/ProcessCpuTracker;->onLoadChanged(FFF)V
+HSPLcom/android/internal/os/ProcessCpuTracker;->onMeasureProcessName(Ljava/lang/String;)I
+PLcom/android/internal/os/ProcessCpuTracker;->printCurrentLoad()Ljava/lang/String;
+HPLcom/android/internal/os/ProcessCpuTracker;->printCurrentState(J)Ljava/lang/String;
+HPLcom/android/internal/os/ProcessCpuTracker;->printProcessCPU(Ljava/io/PrintWriter;Ljava/lang/String;ILjava/lang/String;IIIIIIII)V
+HPLcom/android/internal/os/ProcessCpuTracker;->printRatio(Ljava/io/PrintWriter;JJ)V
+HSPLcom/android/internal/os/ProcessCpuTracker;->update()V
+HSPLcom/android/internal/os/RailStats;-><init>()V
+PLcom/android/internal/os/RailStats;->getCellularTotalEnergyUseduWs()J
+PLcom/android/internal/os/RailStats;->getWifiTotalEnergyUseduWs()J
+HSPLcom/android/internal/os/RailStats;->isRailStatsAvailable()Z
+HSPLcom/android/internal/os/RailStats;->reset()V
+PLcom/android/internal/os/RailStats;->resetCellularTotalEnergyUsed()V
+PLcom/android/internal/os/RailStats;->resetWifiTotalEnergyUsed()V
+HSPLcom/android/internal/os/RailStats;->setRailStatsAvailability(Z)V
+HSPLcom/android/internal/os/RpmStats$PowerStateElement;-><init>(JI)V
+HSPLcom/android/internal/os/RpmStats$PowerStateElement;-><init>(JILcom/android/internal/os/RpmStats$1;)V
+HSPLcom/android/internal/os/RpmStats$PowerStateSubsystem;-><init>()V
+HSPLcom/android/internal/os/RpmStats$PowerStateSubsystem;->putState(Ljava/lang/String;JI)V
+HSPLcom/android/internal/os/RpmStats;-><init>()V
+HSPLcom/android/internal/os/RpmStats;->getSubsystem(Ljava/lang/String;)Lcom/android/internal/os/RpmStats$PowerStateSubsystem;
HSPLcom/android/internal/os/RuntimeInit$Arguments;-><init>([Ljava/lang/String;)V
HSPLcom/android/internal/os/RuntimeInit$Arguments;->parseArgs([Ljava/lang/String;)V
HSPLcom/android/internal/os/RuntimeInit$KillApplicationHandler;-><init>(Lcom/android/internal/os/RuntimeInit$LoggingHandler;)V
@@ -8360,7 +31590,7 @@ HSPLcom/android/internal/os/RuntimeInit$LoggingHandler;-><init>()V
HSPLcom/android/internal/os/RuntimeInit$LoggingHandler;-><init>(Lcom/android/internal/os/RuntimeInit$1;)V
HSPLcom/android/internal/os/RuntimeInit$MethodAndArgsCaller;-><init>(Ljava/lang/reflect/Method;[Ljava/lang/String;)V
HSPLcom/android/internal/os/RuntimeInit$MethodAndArgsCaller;->run()V
-HSPLcom/android/internal/os/RuntimeInit;->applicationInit(I[Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Runnable;
+HSPLcom/android/internal/os/RuntimeInit;->applicationInit(I[J[Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Runnable;
HSPLcom/android/internal/os/RuntimeInit;->commonInit()V
HSPLcom/android/internal/os/RuntimeInit;->findStaticMain(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Runnable;
HSPLcom/android/internal/os/RuntimeInit;->getApplicationObject()Landroid/os/IBinder;
@@ -8369,28 +31599,61 @@ HSPLcom/android/internal/os/RuntimeInit;->lambda$commonInit$0()Ljava/lang/String
HSPLcom/android/internal/os/RuntimeInit;->redirectLogStreams()V
HSPLcom/android/internal/os/RuntimeInit;->setApplicationObject(Landroid/os/IBinder;)V
HSPLcom/android/internal/os/RuntimeInit;->wtf(Ljava/lang/String;Ljava/lang/Throwable;Z)V
+PLcom/android/internal/os/SensorPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;Landroid/hardware/SensorManager;Landroid/os/BatteryStats;JI)V
+HPLcom/android/internal/os/SensorPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+PLcom/android/internal/os/SensorPowerCalculator;->getAverageGpsPower(Lcom/android/internal/os/PowerProfile;Landroid/os/BatteryStats;JI)D
HSPLcom/android/internal/os/SomeArgs;-><init>()V
HSPLcom/android/internal/os/SomeArgs;->clear()V
HSPLcom/android/internal/os/SomeArgs;->obtain()Lcom/android/internal/os/SomeArgs;
HSPLcom/android/internal/os/SomeArgs;->recycle()V
HSPLcom/android/internal/os/StatsdHiddenApiUsageLogger;->getInstance()Lcom/android/internal/os/StatsdHiddenApiUsageLogger;
+HSPLcom/android/internal/os/StatsdHiddenApiUsageLogger;->hiddenApiUsed(ILjava/lang/String;Ljava/lang/String;IZ)V
+HSPLcom/android/internal/os/StatsdHiddenApiUsageLogger;->newLogUsage(Ljava/lang/String;IZ)V
HSPLcom/android/internal/os/StatsdHiddenApiUsageLogger;->setHiddenApiAccessLogSampleRates(II)V
+HSPLcom/android/internal/os/StoragedUidIoStatsReader;-><init>()V
+PLcom/android/internal/os/TransferPipe;-><init>()V
+PLcom/android/internal/os/TransferPipe;-><init>(Ljava/lang/String;)V
+PLcom/android/internal/os/TransferPipe;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/internal/os/TransferPipe;->close()V
+PLcom/android/internal/os/TransferPipe;->closeFd(I)V
+PLcom/android/internal/os/TransferPipe;->dumpAsync(Landroid/os/IBinder;Ljava/io/FileDescriptor;[Ljava/lang/String;)V
+PLcom/android/internal/os/TransferPipe;->dumpAsync(Landroid/os/IBinder;[Ljava/lang/String;)[B
+PLcom/android/internal/os/TransferPipe;->getNewOutputStream()Ljava/io/OutputStream;
+PLcom/android/internal/os/TransferPipe;->getReadFd()Landroid/os/ParcelFileDescriptor;
+PLcom/android/internal/os/TransferPipe;->getWriteFd()Landroid/os/ParcelFileDescriptor;
+PLcom/android/internal/os/TransferPipe;->go(Ljava/io/FileDescriptor;)V
+PLcom/android/internal/os/TransferPipe;->go(Ljava/io/FileDescriptor;J)V
+PLcom/android/internal/os/TransferPipe;->goDump(Landroid/os/IBinder;Ljava/io/FileDescriptor;[Ljava/lang/String;)V
+PLcom/android/internal/os/TransferPipe;->goDump(Landroid/os/IBinder;Ljava/io/FileDescriptor;[Ljava/lang/String;J)V
+PLcom/android/internal/os/TransferPipe;->kill()V
+HPLcom/android/internal/os/TransferPipe;->run()V
+PLcom/android/internal/os/WakelockPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HPLcom/android/internal/os/WakelockPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+PLcom/android/internal/os/WakelockPowerCalculator;->calculateRemaining(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
+PLcom/android/internal/os/WakelockPowerCalculator;->reset()V
+PLcom/android/internal/os/WifiPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;)V
+HPLcom/android/internal/os/WifiPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
+PLcom/android/internal/os/WifiPowerCalculator;->calculateRemaining(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
+PLcom/android/internal/os/WifiPowerCalculator;->reset()V
HSPLcom/android/internal/os/Zygote;->applyDebuggerSystemProperty(Lcom/android/internal/os/ZygoteArguments;)V
HSPLcom/android/internal/os/Zygote;->applyInvokeWithSecurityPolicy(Lcom/android/internal/os/ZygoteArguments;Landroid/net/Credentials;)V
HSPLcom/android/internal/os/Zygote;->applyInvokeWithSystemProperty(Lcom/android/internal/os/ZygoteArguments;)V
HSPLcom/android/internal/os/Zygote;->applyUidSecurityPolicy(Lcom/android/internal/os/ZygoteArguments;Landroid/net/Credentials;)V
HSPLcom/android/internal/os/Zygote;->callPostForkChildHooks(IZZLjava/lang/String;)V
+HSPLcom/android/internal/os/Zygote;->callPostForkSystemServerHooks(I)V
HSPLcom/android/internal/os/Zygote;->createManagedSocketFromInitSocket(Ljava/lang/String;)Landroid/net/LocalServerSocket;
HSPLcom/android/internal/os/Zygote;->disableExecuteOnly(I)V
HSPLcom/android/internal/os/Zygote;->forkAndSpecialize(II[II[[IILjava/lang/String;Ljava/lang/String;[I[IZLjava/lang/String;Ljava/lang/String;IZ)I
HSPLcom/android/internal/os/Zygote;->forkSystemServer(II[II[[IJJ)I
HSPLcom/android/internal/os/Zygote;->getConfigurationProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/os/Zygote;->getConfigurationPropertyBoolean(Ljava/lang/String;Ljava/lang/Boolean;)Z
HSPLcom/android/internal/os/Zygote;->getUsapPoolEventFD()Ljava/io/FileDescriptor;
HSPLcom/android/internal/os/Zygote;->getWrapProperty(Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/internal/os/Zygote;->initNativeState(Z)V
HSPLcom/android/internal/os/Zygote;->readArgumentList(Ljava/io/BufferedReader;)[Ljava/lang/String;
HSPLcom/android/internal/os/Zygote;->setAppProcessName(Lcom/android/internal/os/ZygoteArguments;Ljava/lang/String;)V
HSPLcom/android/internal/os/ZygoteArguments;-><init>([Ljava/lang/String;)V
+HSPLcom/android/internal/os/ZygoteArguments;->getAssignmentList(Ljava/lang/String;)[Ljava/lang/String;
HSPLcom/android/internal/os/ZygoteArguments;->getAssignmentValue(Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/internal/os/ZygoteArguments;->parseArgs([Ljava/lang/String;)V
HSPLcom/android/internal/os/ZygoteConnection;-><init>(Landroid/net/LocalSocket;Ljava/lang/String;)V
@@ -8408,11 +31671,18 @@ HSPLcom/android/internal/os/ZygoteConnection;->processOneCommand(Lcom/android/in
HSPLcom/android/internal/os/ZygoteConnection;->setChildPgid(I)V
HSPLcom/android/internal/os/ZygoteConnection;->stateChangeWithUsapPoolReset(Lcom/android/internal/os/ZygoteServer;Ljava/lang/Runnable;)Ljava/lang/Runnable;
HSPLcom/android/internal/os/ZygoteInit;->cacheNonBootClasspathClassLoaders()V
+HSPLcom/android/internal/os/ZygoteInit;->createPathClassLoader(Ljava/lang/String;I)Ljava/lang/ClassLoader;
+HSPLcom/android/internal/os/ZygoteInit;->createSystemServerClassLoader()V
+HSPLcom/android/internal/os/ZygoteInit;->encodeSystemServerClassPath(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/internal/os/ZygoteInit;->endPreload()V
HSPLcom/android/internal/os/ZygoteInit;->forkSystemServer(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/os/ZygoteServer;)Ljava/lang/Runnable;
HSPLcom/android/internal/os/ZygoteInit;->gcAndFinalize()V
+HSPLcom/android/internal/os/ZygoteInit;->getSystemServerClassLoaderContext(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/os/ZygoteInit;->handleSystemServerProcess(Lcom/android/internal/os/ZygoteArguments;)Ljava/lang/Runnable;
+HSPLcom/android/internal/os/ZygoteInit;->hasSecondZygote(Ljava/lang/String;)Z
HSPLcom/android/internal/os/ZygoteInit;->main([Ljava/lang/String;)V
HSPLcom/android/internal/os/ZygoteInit;->maybePreloadGraphicsDriver()V
+HSPLcom/android/internal/os/ZygoteInit;->performSystemServerDexOpt(Ljava/lang/String;)Z
HSPLcom/android/internal/os/ZygoteInit;->posixCapabilitiesAsBits([I)J
HSPLcom/android/internal/os/ZygoteInit;->preload(Landroid/util/TimingsTraceLog;)V
HSPLcom/android/internal/os/ZygoteInit;->preloadClasses()V
@@ -8421,11 +31691,13 @@ HSPLcom/android/internal/os/ZygoteInit;->preloadDrawables(Landroid/content/res/T
HSPLcom/android/internal/os/ZygoteInit;->preloadResources()V
HSPLcom/android/internal/os/ZygoteInit;->preloadSharedLibraries()V
HSPLcom/android/internal/os/ZygoteInit;->preloadTextResources()V
+HSPLcom/android/internal/os/ZygoteInit;->prepareSystemServerProfile(Ljava/lang/String;)V
HSPLcom/android/internal/os/ZygoteInit;->setHiddenApiAccessLogSampleRate(I)V
HSPLcom/android/internal/os/ZygoteInit;->setHiddenApiUsageLogger(Ldalvik/system/VMRuntime$HiddenApiUsageLogger;)V
HSPLcom/android/internal/os/ZygoteInit;->shouldProfileSystemServer()Z
+HSPLcom/android/internal/os/ZygoteInit;->waitForSecondaryZygote(Ljava/lang/String;)V
HSPLcom/android/internal/os/ZygoteInit;->warmUpJcaProviders()V
-HSPLcom/android/internal/os/ZygoteInit;->zygoteInit(I[Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Runnable;
+HSPLcom/android/internal/os/ZygoteInit;->zygoteInit(I[J[Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Runnable;
HSPLcom/android/internal/os/ZygoteServer;-><init>(Z)V
HSPLcom/android/internal/os/ZygoteServer;->acceptCommandPeer(Ljava/lang/String;)Lcom/android/internal/os/ZygoteConnection;
HSPLcom/android/internal/os/ZygoteServer;->closeServerSocket()V
@@ -8436,159 +31708,752 @@ HSPLcom/android/internal/os/ZygoteServer;->getZygoteSocketFileDescriptor()Ljava/
HSPLcom/android/internal/os/ZygoteServer;->isUsapPoolEnabled()Z
HSPLcom/android/internal/os/ZygoteServer;->runSelectLoop(Ljava/lang/String;)Ljava/lang/Runnable;
HSPLcom/android/internal/os/ZygoteServer;->setForkChild()V
+PLcom/android/internal/os/logging/MetricsLoggerWrapper;->logAppOverlayEnter(ILjava/lang/String;ZIZ)V
+PLcom/android/internal/os/logging/MetricsLoggerWrapper;->logAppOverlayExit(ILjava/lang/String;ZIZ)V
+PLcom/android/internal/os/logging/MetricsLoggerWrapper;->logPictureInPictureEnter(Landroid/content/Context;ILjava/lang/String;Z)V
+HSPLcom/android/internal/policy/DecorContext;->getAutofillOptions()Landroid/content/AutofillOptions;
+HSPLcom/android/internal/policy/DecorContext;->getContentCaptureOptions()Landroid/content/ContentCaptureOptions;
+HSPLcom/android/internal/policy/DecorContext;->getResources()Landroid/content/res/Resources;
+HSPLcom/android/internal/policy/DecorContext;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
+HSPLcom/android/internal/policy/DecorContext;->setPhoneWindow(Lcom/android/internal/policy/PhoneWindow;)V
+PLcom/android/internal/policy/DecorView$2;-><init>(Lcom/android/internal/policy/DecorView;Landroid/graphics/drawable/Drawable;IIII)V
+PLcom/android/internal/policy/DecorView$2;->getPadding(Landroid/graphics/Rect;)Z
+HPLcom/android/internal/policy/DecorView$3;->run()V
HSPLcom/android/internal/policy/DecorView$ColorViewAttributes;->isPresent(IIZ)Z
+PLcom/android/internal/policy/DecorView$ColorViewAttributes;->isVisible(IIIZ)Z
HSPLcom/android/internal/policy/DecorView$ColorViewAttributes;->isVisible(ZIIZ)Z
+PLcom/android/internal/policy/DecorView$ColorViewState;-><init>(Lcom/android/internal/policy/DecorView$ColorViewAttributes;)V
HSPLcom/android/internal/policy/DecorView;-><init>(Landroid/content/Context;ILcom/android/internal/policy/PhoneWindow;Landroid/view/WindowManager$LayoutParams;)V
HSPLcom/android/internal/policy/DecorView;->calculateBarColor(IIIIIIZ)I
HSPLcom/android/internal/policy/DecorView;->calculateNavigationBarColor()I
+PLcom/android/internal/policy/DecorView;->calculateStatusBarColor()I
HSPLcom/android/internal/policy/DecorView;->createDecorCaptionView(Landroid/view/LayoutInflater;)Lcom/android/internal/widget/DecorCaptionView;
+HPLcom/android/internal/policy/DecorView;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
+HSPLcom/android/internal/policy/DecorView;->dispatchTouchEvent(Landroid/view/MotionEvent;)Z
HSPLcom/android/internal/policy/DecorView;->draw(Landroid/graphics/Canvas;)V
+HSPLcom/android/internal/policy/DecorView;->drawLegacyNavigationBarBackground(Landroid/graphics/RecordingCanvas;)V
+HSPLcom/android/internal/policy/DecorView;->drawResizingShadowIfNeeded(Landroid/graphics/RecordingCanvas;)V
HSPLcom/android/internal/policy/DecorView;->drawableChanged()V
HSPLcom/android/internal/policy/DecorView;->enableCaption(Z)V
HSPLcom/android/internal/policy/DecorView;->enforceNonTranslucentBackground(Landroid/graphics/drawable/Drawable;Z)Landroid/graphics/drawable/Drawable;
HSPLcom/android/internal/policy/DecorView;->finishChanging()V
+HPLcom/android/internal/policy/DecorView;->gatherTransparentRegion(Landroid/graphics/Region;)Z
+HPLcom/android/internal/policy/DecorView;->gatherTransparentRegion(Lcom/android/internal/policy/DecorView$ColorViewState;Landroid/graphics/Region;)Z
HSPLcom/android/internal/policy/DecorView;->getAccessibilityViewId()I
HSPLcom/android/internal/policy/DecorView;->getBackground()Landroid/graphics/drawable/Drawable;
+PLcom/android/internal/policy/DecorView;->getColorViewBottomInset(II)I
+PLcom/android/internal/policy/DecorView;->getColorViewLeftInset(II)I
+PLcom/android/internal/policy/DecorView;->getColorViewRightInset(II)I
+PLcom/android/internal/policy/DecorView;->getColorViewTopInset(II)I
+PLcom/android/internal/policy/DecorView;->getNavBarSize(III)I
+PLcom/android/internal/policy/DecorView;->getNavigationBarRect(IILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;F)V
HSPLcom/android/internal/policy/DecorView;->getResources()Landroid/content/res/Resources;
+PLcom/android/internal/policy/DecorView;->getTitleSuffix(Landroid/view/WindowManager$LayoutParams;)Ljava/lang/String;
HSPLcom/android/internal/policy/DecorView;->initResizingPaints()V
+PLcom/android/internal/policy/DecorView;->initializeElevation()V
+PLcom/android/internal/policy/DecorView;->isNavBarToLeftEdge(II)Z
+PLcom/android/internal/policy/DecorView;->isNavBarToRightEdge(II)Z
+HSPLcom/android/internal/policy/DecorView;->isResizing()Z
HSPLcom/android/internal/policy/DecorView;->onApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
HSPLcom/android/internal/policy/DecorView;->onAttachedToWindow()V
+HPLcom/android/internal/policy/DecorView;->onCloseSystemDialogs(Ljava/lang/String;)V
+PLcom/android/internal/policy/DecorView;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLcom/android/internal/policy/DecorView;->onContentDrawn(IIII)Z
+HSPLcom/android/internal/policy/DecorView;->onDetachedFromWindow()V
HSPLcom/android/internal/policy/DecorView;->onDraw(Landroid/graphics/Canvas;)V
+HSPLcom/android/internal/policy/DecorView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z
HSPLcom/android/internal/policy/DecorView;->onLayout(ZIIII)V
HSPLcom/android/internal/policy/DecorView;->onMeasure(II)V
+HSPLcom/android/internal/policy/DecorView;->onPostDraw(Landroid/graphics/RecordingCanvas;)V
HSPLcom/android/internal/policy/DecorView;->onResourcesLoaded(Landroid/view/LayoutInflater;I)V
+HSPLcom/android/internal/policy/DecorView;->onRootViewScrollYChanged(I)V
+HSPLcom/android/internal/policy/DecorView;->onTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLcom/android/internal/policy/DecorView;->onWindowFocusChanged(Z)V
+HSPLcom/android/internal/policy/DecorView;->onWindowSystemUiVisibilityChanged(I)V
+PLcom/android/internal/policy/DecorView;->releaseThreadedRenderer()V
HSPLcom/android/internal/policy/DecorView;->sendAccessibilityEvent(I)V
+PLcom/android/internal/policy/DecorView;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLcom/android/internal/policy/DecorView;->setBackgroundFallback(Landroid/graphics/drawable/Drawable;)V
+HSPLcom/android/internal/policy/DecorView;->setColor(Landroid/view/View;IIZZ)V
HSPLcom/android/internal/policy/DecorView;->setFrame(IIII)Z
HSPLcom/android/internal/policy/DecorView;->setWindow(Lcom/android/internal/policy/PhoneWindow;)V
HSPLcom/android/internal/policy/DecorView;->setWindowBackground(Landroid/graphics/drawable/Drawable;)V
HSPLcom/android/internal/policy/DecorView;->setWindowFrame(Landroid/graphics/drawable/Drawable;)V
HSPLcom/android/internal/policy/DecorView;->startChanging()V
+HPLcom/android/internal/policy/DecorView;->superDispatchKeyEvent(Landroid/view/KeyEvent;)Z
+HSPLcom/android/internal/policy/DecorView;->superDispatchTouchEvent(Landroid/view/MotionEvent;)Z
+PLcom/android/internal/policy/DecorView;->updateAvailableWidth()V
HSPLcom/android/internal/policy/DecorView;->updateBackgroundDrawable()V
-HSPLcom/android/internal/policy/DecorView;->updateColorViewInt(Lcom/android/internal/policy/DecorView$ColorViewState;IIIIZZIZZ)V
+HSPLcom/android/internal/policy/DecorView;->updateColorViewInt(Lcom/android/internal/policy/DecorView$ColorViewState;IIIIZZIZZLandroid/view/InsetsState;)V
HSPLcom/android/internal/policy/DecorView;->updateColorViewTranslations()V
HSPLcom/android/internal/policy/DecorView;->updateColorViews(Landroid/view/WindowInsets;Z)Landroid/view/WindowInsets;
+HSPLcom/android/internal/policy/DecorView;->updateDecorCaptionStatus(Landroid/content/res/Configuration;)V
HSPLcom/android/internal/policy/DecorView;->updateElevation()V
HSPLcom/android/internal/policy/DecorView;->updateLogTag(Landroid/view/WindowManager$LayoutParams;)V
HSPLcom/android/internal/policy/DecorView;->updateStatusGuard(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
HSPLcom/android/internal/policy/DecorView;->willYouTakeTheInputQueue()Landroid/view/InputQueue$Callback;
HSPLcom/android/internal/policy/DecorView;->willYouTakeTheSurface()Landroid/view/SurfaceHolder$Callback2;
+HSPLcom/android/internal/policy/DividerSnapAlgorithm$SnapTarget;-><init>(III)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm$SnapTarget;-><init>(IIIF)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;-><init>(Landroid/content/res/Resources;IIIZLandroid/graphics/Rect;)V
+HPLcom/android/internal/policy/DividerSnapAlgorithm;-><init>(Landroid/content/res/Resources;IIIZLandroid/graphics/Rect;I)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;-><init>(Landroid/content/res/Resources;IIIZLandroid/graphics/Rect;IZ)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->addMiddleTarget(Z)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->addNonDismissingTargets(ZIII)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->addRatio16_9Targets(ZI)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->calculateTargets(ZI)V
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->getEndInset()I
+HPLcom/android/internal/policy/DividerSnapAlgorithm;->getMiddleTarget()Lcom/android/internal/policy/DividerSnapAlgorithm$SnapTarget;
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->getStartInset()I
+HSPLcom/android/internal/policy/DividerSnapAlgorithm;->maybeAddTarget(II)V
+HSPLcom/android/internal/policy/DockedDividerUtils;->calculateMiddlePosition(ZLandroid/graphics/Rect;III)I
+HPLcom/android/internal/policy/IKeyguardDrawnCallback$Stub$Proxy;->onDrawn()V
+PLcom/android/internal/policy/IKeyguardDrawnCallback$Stub;-><init>()V
+PLcom/android/internal/policy/IKeyguardDrawnCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/policy/IKeyguardDrawnCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->addStateMonitorCallback(Lcom/android/internal/policy/IKeyguardStateCallback;)V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onBootCompleted()V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onDreamingStarted()V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onDreamingStopped()V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onFinishedGoingToSleep(IZ)V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onFinishedWakingUp()V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onScreenTurnedOff()V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onScreenTurnedOn()V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onScreenTurningOff()V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onScreenTurningOn(Lcom/android/internal/policy/IKeyguardDrawnCallback;)V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onStartedGoingToSleep(I)V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onStartedWakingUp()V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->onSystemReady()V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->setKeyguardEnabled(Z)V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->setOccluded(ZZ)V
+PLcom/android/internal/policy/IKeyguardService$Stub$Proxy;->startKeyguardExitAnimation(JJ)V
+PLcom/android/internal/policy/IKeyguardService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardService;
+HPLcom/android/internal/policy/IKeyguardService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onInputRestrictedStateChanged(Z)V
+HPLcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onShowingStateChanged(Z)V
+HPLcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onSimSecureStateChanged(Z)V
+HPLcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onTrustedChanged(Z)V
+PLcom/android/internal/policy/IKeyguardStateCallback$Stub;-><init>()V
+PLcom/android/internal/policy/IKeyguardStateCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/policy/IKeyguardStateCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/policy/IShortcutService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/policy/IShortcutService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IShortcutService;
+PLcom/android/internal/policy/KeyInterceptionInfo;-><init>(IILjava/lang/String;)V
HSPLcom/android/internal/policy/PhoneFallbackEventHandler;-><init>(Landroid/content/Context;)V
+HPLcom/android/internal/policy/PhoneFallbackEventHandler;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
+HPLcom/android/internal/policy/PhoneFallbackEventHandler;->getAudioManager()Landroid/media/AudioManager;
+HPLcom/android/internal/policy/PhoneFallbackEventHandler;->getMediaSessionManager()Landroid/media/session/MediaSessionManager;
+HPLcom/android/internal/policy/PhoneFallbackEventHandler;->handleVolumeKeyEvent(Landroid/view/KeyEvent;)V
+HPLcom/android/internal/policy/PhoneFallbackEventHandler;->onKeyDown(ILandroid/view/KeyEvent;)Z
+HPLcom/android/internal/policy/PhoneFallbackEventHandler;->onKeyUp(ILandroid/view/KeyEvent;)Z
+HPLcom/android/internal/policy/PhoneFallbackEventHandler;->preDispatchKeyEvent(Landroid/view/KeyEvent;)V
HSPLcom/android/internal/policy/PhoneFallbackEventHandler;->setView(Landroid/view/View;)V
+PLcom/android/internal/policy/PhoneLayoutInflater;-><init>(Landroid/content/Context;)V
+PLcom/android/internal/policy/PhoneLayoutInflater;-><init>(Landroid/view/LayoutInflater;Landroid/content/Context;)V
HSPLcom/android/internal/policy/PhoneLayoutInflater;->cloneInContext(Landroid/content/Context;)Landroid/view/LayoutInflater;
HSPLcom/android/internal/policy/PhoneLayoutInflater;->onCreateView(Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;
+PLcom/android/internal/policy/PhoneWindow$1;-><init>(Lcom/android/internal/policy/PhoneWindow;)V
+HSPLcom/android/internal/policy/PhoneWindow$1;->run()V
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;-><init>()V
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;->access$600(Landroid/os/Parcel;)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;->readFromParcel(Landroid/os/Parcel;)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState$SavedState;->writeToParcel(Landroid/os/Parcel;I)V
+PLcom/android/internal/policy/PhoneWindow$PanelFeatureState;-><init>(I)V
+PLcom/android/internal/policy/PhoneWindow$PanelFeatureState;->applyFrozenState()V
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState;->onRestoreInstanceState(Landroid/os/Parcelable;)V
+HSPLcom/android/internal/policy/PhoneWindow$PanelFeatureState;->onSaveInstanceState()Landroid/os/Parcelable;
+HPLcom/android/internal/policy/PhoneWindow$PanelFeatureState;->setMenu(Lcom/android/internal/view/menu/MenuBuilder;)V
+PLcom/android/internal/policy/PhoneWindow$PhoneWindowMenuCallback;-><init>(Lcom/android/internal/policy/PhoneWindow;)V
HSPLcom/android/internal/policy/PhoneWindow;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/policy/PhoneWindow;-><init>(Landroid/content/Context;Landroid/view/Window;Landroid/view/ViewRootImpl$ActivityConfigCallback;)V
+HSPLcom/android/internal/policy/PhoneWindow;->closeAllPanels()V
+HSPLcom/android/internal/policy/PhoneWindow;->closeContextMenu()V
+HSPLcom/android/internal/policy/PhoneWindow;->closePanel(Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;Z)V
HSPLcom/android/internal/policy/PhoneWindow;->dispatchWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V
+HSPLcom/android/internal/policy/PhoneWindow;->doInvalidatePanelMenu(I)V
HSPLcom/android/internal/policy/PhoneWindow;->generateDecor(I)Lcom/android/internal/policy/DecorView;
HSPLcom/android/internal/policy/PhoneWindow;->generateLayout(Lcom/android/internal/policy/DecorView;)Landroid/view/ViewGroup;
+HSPLcom/android/internal/policy/PhoneWindow;->getCurrentFocus()Landroid/view/View;
HSPLcom/android/internal/policy/PhoneWindow;->getDecorView()Landroid/view/View;
+HSPLcom/android/internal/policy/PhoneWindow;->getLayoutInflater()Landroid/view/LayoutInflater;
+HSPLcom/android/internal/policy/PhoneWindow;->getNavigationBarColor()I
+HPLcom/android/internal/policy/PhoneWindow;->getNavigationBarDividerColor()I
+HSPLcom/android/internal/policy/PhoneWindow;->getPanelState(IZ)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;
+HSPLcom/android/internal/policy/PhoneWindow;->getPanelState(IZLcom/android/internal/policy/PhoneWindow$PanelFeatureState;)Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;
+HSPLcom/android/internal/policy/PhoneWindow;->getStatusBarColor()I
HSPLcom/android/internal/policy/PhoneWindow;->getTransition(Landroid/transition/Transition;Landroid/transition/Transition;I)Landroid/transition/Transition;
+HPLcom/android/internal/policy/PhoneWindow;->getTransitionBackgroundFadeDuration()J
+HPLcom/android/internal/policy/PhoneWindow;->initializePanelMenu(Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;)Z
HSPLcom/android/internal/policy/PhoneWindow;->installDecor()V
+HSPLcom/android/internal/policy/PhoneWindow;->invalidatePanelMenu(I)V
HSPLcom/android/internal/policy/PhoneWindow;->isFloating()Z
HSPLcom/android/internal/policy/PhoneWindow;->isShowingWallpaper()Z
HSPLcom/android/internal/policy/PhoneWindow;->isTranslucent()Z
+HSPLcom/android/internal/policy/PhoneWindow;->onActive()V
+HPLcom/android/internal/policy/PhoneWindow;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HPLcom/android/internal/policy/PhoneWindow;->onKeyDown(IILandroid/view/KeyEvent;)Z
+HPLcom/android/internal/policy/PhoneWindow;->onKeyUp(IILandroid/view/KeyEvent;)Z
HSPLcom/android/internal/policy/PhoneWindow;->onViewRootImplSet(Landroid/view/ViewRootImpl;)V
HSPLcom/android/internal/policy/PhoneWindow;->openPanelsAfterRestore()V
+HSPLcom/android/internal/policy/PhoneWindow;->peekDecorView()Landroid/view/View;
+HPLcom/android/internal/policy/PhoneWindow;->preparePanel(Lcom/android/internal/policy/PhoneWindow$PanelFeatureState;Landroid/view/KeyEvent;)Z
HSPLcom/android/internal/policy/PhoneWindow;->requestFeature(I)Z
+HSPLcom/android/internal/policy/PhoneWindow;->restoreHierarchyState(Landroid/os/Bundle;)V
+HSPLcom/android/internal/policy/PhoneWindow;->restorePanelState(Landroid/util/SparseArray;)V
+HSPLcom/android/internal/policy/PhoneWindow;->saveHierarchyState()Landroid/os/Bundle;
HSPLcom/android/internal/policy/PhoneWindow;->setAttributes(Landroid/view/WindowManager$LayoutParams;)V
+HSPLcom/android/internal/policy/PhoneWindow;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V
+HSPLcom/android/internal/policy/PhoneWindow;->setContentView(I)V
HSPLcom/android/internal/policy/PhoneWindow;->setContentView(Landroid/view/View;)V
HSPLcom/android/internal/policy/PhoneWindow;->setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
+PLcom/android/internal/policy/PhoneWindow;->setDefaultIcon(I)V
+PLcom/android/internal/policy/PhoneWindow;->setDefaultLogo(I)V
HSPLcom/android/internal/policy/PhoneWindow;->setDefaultWindowFormat(I)V
+HPLcom/android/internal/policy/PhoneWindow;->setExitTransition(Landroid/transition/Transition;)V
+HSPLcom/android/internal/policy/PhoneWindow;->setNavigationBarColor(I)V
+HSPLcom/android/internal/policy/PhoneWindow;->setStatusBarColor(I)V
+HSPLcom/android/internal/policy/PhoneWindow;->setTheme(I)V
HSPLcom/android/internal/policy/PhoneWindow;->setTitle(Ljava/lang/CharSequence;)V
HSPLcom/android/internal/policy/PhoneWindow;->setTitle(Ljava/lang/CharSequence;Z)V
HSPLcom/android/internal/policy/PhoneWindow;->setTitleColor(I)V
+HPLcom/android/internal/policy/PhoneWindow;->superDispatchKeyEvent(Landroid/view/KeyEvent;)Z
+HSPLcom/android/internal/policy/PhoneWindow;->superDispatchTouchEvent(Landroid/view/MotionEvent;)Z
+HSPLcom/android/internal/policy/PipSnapAlgorithm;-><init>(Landroid/content/Context;)V
+PLcom/android/internal/policy/PipSnapAlgorithm;->applySnapFraction(Landroid/graphics/Rect;Landroid/graphics/Rect;F)V
+HSPLcom/android/internal/policy/PipSnapAlgorithm;->calculateSnapTargets()V
+HSPLcom/android/internal/policy/PipSnapAlgorithm;->getMovementBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;I)V
+HSPLcom/android/internal/policy/PipSnapAlgorithm;->getSizeForAspectRatio(FFII)Landroid/util/Size;
+HPLcom/android/internal/policy/PipSnapAlgorithm;->getSizeForAspectRatio(Landroid/util/Size;FF)Landroid/util/Size;
+PLcom/android/internal/policy/PipSnapAlgorithm;->getSnapFraction(Landroid/graphics/Rect;Landroid/graphics/Rect;)F
+HSPLcom/android/internal/policy/PipSnapAlgorithm;->onConfigurationChanged()V
+PLcom/android/internal/policy/PipSnapAlgorithm;->snapRectToClosestEdge(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
HSPLcom/android/internal/policy/ScreenDecorationsUtils;->getWindowCornerRadius(Landroid/content/res/Resources;)F
HSPLcom/android/internal/policy/ScreenDecorationsUtils;->supportsRoundedCornersOnWindows(Landroid/content/res/Resources;)Z
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->abortTransient(I[I)V
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->appTransitionCancelled(I)V
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->appTransitionFinished(I)V
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->appTransitionPending(I)V
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->appTransitionStarting(IJJ)V
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->disable(III)V
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->handleSystemKey(I)V
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->onCameraLaunchGestureDetected(I)V
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->onProposedRotationChanged(IZ)V
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->onRecentsAnimationStateChanged(Z)V
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->onSystemBarAppearanceChanged(II[Lcom/android/internal/view/AppearanceRegion;Z)V
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->remQsTile(Landroid/content/ComponentName;)V
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->setImeWindowStatus(ILandroid/os/IBinder;IIZZ)V
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->setTopAppHidesStatusBar(Z)V
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->setWindowState(III)V
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->showGlobalActionsMenu()V
+PLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->showTransient(I[I)V
+HPLcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->topAppWindowChanged(IZZ)V
+PLcom/android/internal/statusbar/IStatusBar$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBar;
+HPLcom/android/internal/statusbar/IStatusBar$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->clearInlineReplyUriPermissions(Ljava/lang/String;)V
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->clearNotificationEffects()V
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->disable2ForUser(ILandroid/os/IBinder;Ljava/lang/String;I)V
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->disableForUser(ILandroid/os/IBinder;Ljava/lang/String;I)V
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onGlobalActionsHidden()V
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onGlobalActionsShown()V
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationClear(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;IILcom/android/internal/statusbar/NotificationVisibility;)V
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationClick(Ljava/lang/String;Lcom/android/internal/statusbar/NotificationVisibility;)V
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationExpansionChanged(Ljava/lang/String;ZZI)V
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationSmartSuggestionsAdded(Ljava/lang/String;IIZZ)V
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onNotificationVisibilityChanged([Lcom/android/internal/statusbar/NotificationVisibility;[Lcom/android/internal/statusbar/NotificationVisibility;)V
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onPanelHidden()V
+HPLcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->onPanelRevealed(ZI)V
+HSPLcom/android/internal/statusbar/IStatusBarService$Stub;-><init>()V
HSPLcom/android/internal/statusbar/IStatusBarService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBarService;
+PLcom/android/internal/statusbar/IStatusBarService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLcom/android/internal/statusbar/IStatusBarService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/statusbar/NotificationVisibility$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/statusbar/NotificationVisibility;
+PLcom/android/internal/statusbar/NotificationVisibility$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLcom/android/internal/statusbar/NotificationVisibility$1;->newArray(I)[Lcom/android/internal/statusbar/NotificationVisibility;
+PLcom/android/internal/statusbar/NotificationVisibility$1;->newArray(I)[Ljava/lang/Object;
+PLcom/android/internal/statusbar/NotificationVisibility$NotificationLocation;->valueOf(Ljava/lang/String;)Lcom/android/internal/statusbar/NotificationVisibility$NotificationLocation;
+PLcom/android/internal/statusbar/NotificationVisibility$NotificationLocation;->values()[Lcom/android/internal/statusbar/NotificationVisibility$NotificationLocation;
+HPLcom/android/internal/statusbar/NotificationVisibility;-><init>()V
+PLcom/android/internal/statusbar/NotificationVisibility;->access$000(Landroid/os/Parcel;)Lcom/android/internal/statusbar/NotificationVisibility;
+HPLcom/android/internal/statusbar/NotificationVisibility;->clone()Lcom/android/internal/statusbar/NotificationVisibility;
+HPLcom/android/internal/statusbar/NotificationVisibility;->equals(Ljava/lang/Object;)Z
+HPLcom/android/internal/statusbar/NotificationVisibility;->hashCode()I
+PLcom/android/internal/statusbar/NotificationVisibility;->obtain()Lcom/android/internal/statusbar/NotificationVisibility;
+PLcom/android/internal/statusbar/NotificationVisibility;->obtain(Landroid/os/Parcel;)Lcom/android/internal/statusbar/NotificationVisibility;
+HPLcom/android/internal/statusbar/NotificationVisibility;->obtain(Ljava/lang/String;IIZLcom/android/internal/statusbar/NotificationVisibility$NotificationLocation;)Lcom/android/internal/statusbar/NotificationVisibility;
+PLcom/android/internal/statusbar/NotificationVisibility;->readFromParcel(Landroid/os/Parcel;)V
+PLcom/android/internal/statusbar/NotificationVisibility;->recycle()V
+HPLcom/android/internal/statusbar/NotificationVisibility;->writeToParcel(Landroid/os/Parcel;I)V
+PLcom/android/internal/statusbar/RegisterStatusBarResult$1;-><init>()V
+PLcom/android/internal/statusbar/RegisterStatusBarResult;-><clinit>()V
+PLcom/android/internal/statusbar/RegisterStatusBarResult;-><init>(Landroid/util/ArrayMap;II[Lcom/android/internal/view/AppearanceRegion;IIZILandroid/os/IBinder;ZZZ[I)V
+PLcom/android/internal/statusbar/RegisterStatusBarResult;->writeToParcel(Landroid/os/Parcel;I)V
+HPLcom/android/internal/statusbar/StatusBarIcon;-><init>(Landroid/os/UserHandle;Ljava/lang/String;Landroid/graphics/drawable/Icon;IILjava/lang/CharSequence;)V
+HPLcom/android/internal/statusbar/StatusBarIcon;->clone()Lcom/android/internal/statusbar/StatusBarIcon;
+HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallCapablePhoneAccounts(ZLjava/lang/String;)Ljava/util/List;
HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCallState()I
+HSLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getCurrentTtyMode(Ljava/lang/String;)I
HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getDefaultDialerPackage()Ljava/lang/String;
+HPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getPhoneAccount(Landroid/telecom/PhoneAccountHandle;)Landroid/telecom/PhoneAccount;
+HPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getPhoneAccountsSupportingScheme(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+HPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getSimCallManager(I)Landroid/telecom/PhoneAccountHandle;
+HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getSystemDialerPackage()Ljava/lang/String;
+HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->getUserSelectedOutgoingPhoneAccount(Ljava/lang/String;)Landroid/telecom/PhoneAccountHandle;
+HPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isInCall(Ljava/lang/String;)Z
+HPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->isInEmergencyCall()Z
+HSPLcom/android/internal/telecom/ITelecomService$Stub$Proxy;->registerPhoneAccount(Landroid/telecom/PhoneAccount;)V
+PLcom/android/internal/telecom/ITelecomService$Stub;-><init>()V
HSPLcom/android/internal/telecom/ITelecomService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ITelecomService;
+PLcom/android/internal/telecom/ITelecomService$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLcom/android/internal/telecom/ITelecomService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telephony/CarrierAppUtils;->disableCarrierAppsUntilPrivileged(Ljava/lang/String;Landroid/content/pm/IPackageManager;Landroid/permission/IPermissionManager;Landroid/content/ContentResolver;I)V
+HSPLcom/android/internal/telephony/CarrierAppUtils;->disableCarrierAppsUntilPrivileged(Ljava/lang/String;Landroid/content/pm/IPackageManager;Landroid/permission/IPermissionManager;Landroid/telephony/TelephonyManager;Landroid/content/ContentResolver;I)V
+HSPLcom/android/internal/telephony/CarrierAppUtils;->disableCarrierAppsUntilPrivileged(Ljava/lang/String;Landroid/content/pm/IPackageManager;Landroid/permission/IPermissionManager;Landroid/telephony/TelephonyManager;Landroid/content/ContentResolver;ILandroid/util/ArraySet;Landroid/util/ArrayMap;)V
+HSPLcom/android/internal/telephony/CarrierAppUtils;->getApplicationInfoIfSystemApp(Landroid/content/pm/IPackageManager;ILjava/lang/String;)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/internal/telephony/CarrierAppUtils;->getDefaultCarrierAppCandidatesHelper(Landroid/content/pm/IPackageManager;ILandroid/util/ArraySet;)Ljava/util/List;
+HSPLcom/android/internal/telephony/CarrierAppUtils;->getDefaultCarrierAssociatedAppsHelper(Landroid/content/pm/IPackageManager;ILandroid/util/ArrayMap;)Ljava/util/Map;
+HSPLcom/android/internal/telephony/ExponentialBackoff$1;-><init>(Lcom/android/internal/telephony/ExponentialBackoff;)V
+HSPLcom/android/internal/telephony/ExponentialBackoff$1;->removeCallbacks(Ljava/lang/Runnable;)V
+HSPLcom/android/internal/telephony/ExponentialBackoff;-><init>(JJILandroid/os/Handler;Ljava/lang/Runnable;)V
+HSPLcom/android/internal/telephony/ExponentialBackoff;-><init>(JJILandroid/os/Looper;Ljava/lang/Runnable;)V
+HSPLcom/android/internal/telephony/ExponentialBackoff;->access$000(Lcom/android/internal/telephony/ExponentialBackoff;)Landroid/os/Handler;
+HSPLcom/android/internal/telephony/ExponentialBackoff;->getCurrentDelay()J
+HSPLcom/android/internal/telephony/ExponentialBackoff;->stop()V
+HSPLcom/android/internal/telephony/HbpcdUtils;-><init>(Landroid/content/Context;)V
HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->getConfigForSubIdWithFeature(ILjava/lang/String;Ljava/lang/String;)Landroid/os/PersistableBundle;
+PLcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->getDefaultCarrierServicePackageName()Ljava/lang/String;
+HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub;-><init>()V
HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ICarrierConfigLoader;
+HSPLcom/android/internal/telephony/ICarrierConfigLoader$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telephony/IMms$Stub;-><init>()V
+PLcom/android/internal/telephony/IMms$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy;->onSubscriptionsChanged()V
HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;-><init>()V
HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;
HSPLcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telephony/IOns$Stub;-><init>()V
+HPLcom/android/internal/telephony/IOns$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onActiveDataSubIdChanged(I)V
HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;-><init>()V
HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IPhoneStateListener;
+HSPLcom/android/internal/telephony/IPhoneStateListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getGroupIdLevel1ForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getIccSerialNumberForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getLine1NumberForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getSubscriberIdForSubscriber(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub;-><init>()V
HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IPhoneSubInfo;
+HSPLcom/android/internal/telephony/IPhoneSubInfo$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telephony/ISms$Stub$Proxy;->getPreferredSmsSubscription()I
+HSPLcom/android/internal/telephony/ISms$Stub;-><init>()V
+HSPLcom/android/internal/telephony/ISms$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ISms;
+HPLcom/android/internal/telephony/ISms$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telephony/ISmsImplBase;-><init>()V
HSPLcom/android/internal/telephony/ISub$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveDataSubscriptionId()I
HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubIdList(Z)[I
+HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubInfoCount(Ljava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubInfoCountMax()I
+HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubscriptionInfoForSimSlotIndex(ILjava/lang/String;Ljava/lang/String;)Landroid/telephony/SubscriptionInfo;
HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getActiveSubscriptionInfoList(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getAllSubInfoList(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+PLcom/android/internal/telephony/ISub$Stub$Proxy;->getAvailableSubscriptionInfoList(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultDataSubId()I
HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultSmsSubId()I
HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultSubId()I
HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getDefaultVoiceSubId()I
+HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getOpportunisticSubscriptions(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+PLcom/android/internal/telephony/ISub$Stub$Proxy;->getPhoneId(I)I
HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getSimStateForSlotIndex(I)I
HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getSlotIndex(I)I
+HSPLcom/android/internal/telephony/ISub$Stub$Proxy;->getSubId(I)[I
+HSPLcom/android/internal/telephony/ISub$Stub;-><init>()V
HSPLcom/android/internal/telephony/ISub$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ISub;
+HSPLcom/android/internal/telephony/ISub$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->checkCarrierPrivilegesForPackageAnyPhone(Ljava/lang/String;)I
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->checkCarrierPrivilegesForPackageAnyPhone(Ljava/lang/String;)I
HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getActivePhoneTypeForSlot(I)I
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getAllCellInfo(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getCarrierPrivilegeStatus(I)I
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataActivityForSubId(I)I
+PLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDataStateForSubId(I)I
HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getDeviceIdWithFeature(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getEmergencyNumberList(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getImeiForSlot(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getImsRegistration(II)Landroid/telephony/ims/aidl/IImsRegistration;
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getLine1NumberForDisplay(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getLteOnCdmaModeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getMeidForSlot(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getMmTelFeatureAndListen(ILcom/android/ims/internal/IImsServiceFeatureCallback;)Landroid/telephony/ims/aidl/IImsMmTelFeature;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getMmsUAProfUrl(I)Ljava/lang/String;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getMmsUserAgent(I)Ljava/lang/String;
HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkCountryIsoForPhone(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getPackagesWithCarrierPrivilegesForAllPhones()Ljava/util/List;
+PLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getServiceStateForSubscriber(ILjava/lang/String;Ljava/lang/String;)Landroid/telephony/ServiceState;
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getSignalStrength(I)Landroid/telephony/SignalStrength;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getUiccCardsInfo(Ljava/lang/String;)Ljava/util/List;
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getUiccSlotsInfo()[Landroid/telephony/UiccSlotInfo;
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVoiceNetworkTypeForSubscriber(ILjava/lang/String;Ljava/lang/String;)I
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->getVtDataUsage(IZ)Landroid/net/NetworkStats;
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->isConcurrentVoiceAndDataAllowed(I)Z
+HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->isEmergencyNumber(Ljava/lang/String;Z)Z
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->isTetheringApnRequiredForSubscriber(I)Z
HSPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->isUserDataEnabled(I)Z
+HPLcom/android/internal/telephony/ITelephony$Stub$Proxy;->requestCellInfoUpdateWithWorkSource(ILandroid/telephony/ICellInfoCallback;Ljava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;)V
+PLcom/android/internal/telephony/ITelephony$Stub$Proxy;->requestModemActivityInfo(Landroid/os/ResultReceiver;)V
+HSPLcom/android/internal/telephony/ITelephony$Stub;-><init>()V
HSPLcom/android/internal/telephony/ITelephony$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephony;
+HSPLcom/android/internal/telephony/ITelephony$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->addOnOpportunisticSubscriptionsChangedListener(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->addOnSubscriptionsChangedListener(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->listenForSubscriber(ILjava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;IZ)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyActiveDataSubIdChanged(I)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyCellInfoForSubscriber(ILjava/util/List;)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyCellLocationForSubscriber(ILandroid/os/Bundle;)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyDataActivityForSubscriber(II)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyDataConnectionForSubscriber(IIIZLjava/lang/String;Ljava/lang/String;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;IZ)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyEmergencyNumberList(II)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyOtaspChanged(II)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyPhoneCapabilityChanged(Landroid/telephony/PhoneCapability;)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyPreciseCallState(IIIII)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyRadioPowerStateChanged(III)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyServiceStateForPhoneId(IILandroid/telephony/ServiceState;)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifySignalStrengthForPhoneId(IILandroid/telephony/SignalStrength;)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifySimActivationStateChangedForPhoneId(IIII)V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifySubscriptionInfoChanged()V
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub;-><init>()V
HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephonyRegistry;
+PLcom/android/internal/telephony/ITelephonyRegistry$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLcom/android/internal/telephony/ITelephonyRegistry$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telephony/PhoneConstantConversions;->convertDataState(Lcom/android/internal/telephony/PhoneConstants$DataState;)I
HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;-><init>(Ljava/lang/String;I)V
+HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$000(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;)Ljava/lang/String;
HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$002(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$100(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;)Ljava/lang/String;
HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$102(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$202(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$300(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;)Ljava/lang/String;
HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$302(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$402(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$502(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$602(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->access$700(Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;)I
HSPLcom/android/internal/telephony/SmsApplication$SmsApplicationData;->isComplete()Z
+HSPLcom/android/internal/telephony/SmsApplication$SmsPackageMonitor;-><init>(Landroid/content/Context;)V
+HPLcom/android/internal/telephony/SmsApplication$SmsPackageMonitor;->onPackageAppeared()V
+HPLcom/android/internal/telephony/SmsApplication$SmsPackageMonitor;->onPackageChanged()V
+HPLcom/android/internal/telephony/SmsApplication$SmsPackageMonitor;->onPackageDisappeared()V
+HPLcom/android/internal/telephony/SmsApplication$SmsPackageMonitor;->onPackageModified(Ljava/lang/String;)V
+HPLcom/android/internal/telephony/SmsApplication;->access$800(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;I)V
+HSPLcom/android/internal/telephony/SmsApplication;->assignExclusiveSmsPermissionsToSystemApp(Landroid/content/Context;Landroid/content/pm/PackageManager;Landroid/app/AppOpsManager;Ljava/lang/String;)V
+PLcom/android/internal/telephony/SmsApplication;->broadcastSmsAppChange(Landroid/content/Context;Landroid/os/UserHandle;Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;)V
+PLcom/android/internal/telephony/SmsApplication;->broadcastSmsAppChange(Landroid/content/Context;Landroid/os/UserHandle;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/internal/telephony/SmsApplication;->configurePreferredActivity(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;I)V
+HSPLcom/android/internal/telephony/SmsApplication;->defaultSmsAppChanged(Landroid/content/Context;)V
HSPLcom/android/internal/telephony/SmsApplication;->getApplication(Landroid/content/Context;ZI)Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;
+PLcom/android/internal/telephony/SmsApplication;->getApplicationCollection(Landroid/content/Context;)Ljava/util/Collection;
+PLcom/android/internal/telephony/SmsApplication;->getApplicationCollectionAsUser(Landroid/content/Context;I)Ljava/util/Collection;
HSPLcom/android/internal/telephony/SmsApplication;->getApplicationCollectionInternal(Landroid/content/Context;I)Ljava/util/Collection;
HSPLcom/android/internal/telephony/SmsApplication;->getApplicationForPackage(Ljava/util/Collection;Ljava/lang/String;)Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;
+PLcom/android/internal/telephony/SmsApplication;->getDefaultMmsApplication(Landroid/content/Context;Z)Landroid/content/ComponentName;
+HPLcom/android/internal/telephony/SmsApplication;->getDefaultSendToApplication(Landroid/content/Context;Z)Landroid/content/ComponentName;
+HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplication(Landroid/content/Context;Z)Landroid/content/ComponentName;
HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplicationAsUser(Landroid/content/Context;ZI)Landroid/content/ComponentName;
HSPLcom/android/internal/telephony/SmsApplication;->getDefaultSmsPackage(Landroid/content/Context;I)Ljava/lang/String;
HSPLcom/android/internal/telephony/SmsApplication;->getIncomingUserId(Landroid/content/Context;)I
+HSPLcom/android/internal/telephony/SmsApplication;->initSmsPackageMonitor(Landroid/content/Context;)V
+HPLcom/android/internal/telephony/SmsApplication;->isDefaultSmsApplication(Landroid/content/Context;Ljava/lang/String;)Z
+HPLcom/android/internal/telephony/SmsApplication;->replacePreferredActivity(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;ILjava/lang/String;)V
+HSPLcom/android/internal/telephony/SmsApplication;->tryFixExclusiveSmsAppops(Landroid/content/Context;Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;Z)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadDeviceIdentifiers(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadDeviceIdentifiers(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadPhoneNumber(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadPhoneState(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadPhoneStateNoThrow(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HPLcom/android/internal/telephony/TelephonyPermissions;->checkCallingOrSelfReadSubscriberIdentifiers(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/internal/telephony/TelephonyPermissions;->checkCarrierPrivilegeForAnySubId(Landroid/content/Context;I)Z
+PLcom/android/internal/telephony/TelephonyPermissions;->checkCarrierPrivilegeForSubId(Landroid/content/Context;I)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkPrivilegedReadPermissionOrCarrierPrivilegePermission(Landroid/content/Context;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkReadPhoneNumber(Landroid/content/Context;IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/internal/telephony/TelephonyPermissions;->checkReadPhoneState(Landroid/content/Context;IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/internal/telephony/TelephonyPermissions;->reportAccessDeniedToReadIdentifiers(Landroid/content/Context;IIILjava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/internal/telephony/euicc/IEuiccCardController$Stub;-><init>()V
+HPLcom/android/internal/telephony/euicc/IEuiccCardController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telephony/euicc/IEuiccController$Stub;-><init>()V
+HSPLcom/android/internal/telephony/euicc/IEuiccController$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/euicc/IEuiccController;
+HPLcom/android/internal/telephony/euicc/IEuiccController$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/telephony/uicc/IccUtils;->byteToHex(B)Ljava/lang/String;
+HSPLcom/android/internal/telephony/uicc/IccUtils;->hexCharToInt(C)I
+HSPLcom/android/internal/telephony/uicc/IccUtils;->hexStringToBytes(Ljava/lang/String;)[B
+HSPLcom/android/internal/telephony/uicc/IccUtils;->stripTrailingFs(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/telephony/util/ArrayUtils;->isEmpty(Ljava/util/Collection;)Z
+HSPLcom/android/internal/telephony/util/ArrayUtils;->isEmpty([Ljava/lang/Object;)Z
+HSPLcom/android/internal/telephony/util/HandlerExecutor;-><init>(Landroid/os/Handler;)V
+HSPLcom/android/internal/telephony/util/HandlerExecutor;->execute(Ljava/lang/Runnable;)V
+HSPLcom/android/internal/telephony/util/RemoteCallbackListExt;-><init>()V
+HSPLcom/android/internal/telephony/util/RemoteCallbackListExt;->broadcastAction(Ljava/util/function/Consumer;)V
+HPLcom/android/internal/telephony/util/TelephonyUtils;->checkDumpPermission(Landroid/content/Context;Ljava/lang/String;Ljava/io/PrintWriter;)Z
+HSPLcom/android/internal/telephony/util/TelephonyUtils;->emptyIfNull(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/telephony/util/TelephonyUtils;->getComponentInfo(Landroid/content/pm/ResolveInfo;)Landroid/content/pm/ComponentInfo;
+PLcom/android/internal/textservice/ISpellCheckerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/textservice/ISpellCheckerService$Stub$Proxy;->getISpellCheckerSession(Ljava/lang/String;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;Lcom/android/internal/textservice/ISpellCheckerServiceCallback;)V
+HPLcom/android/internal/textservice/ISpellCheckerService$Stub;-><init>()V
+PLcom/android/internal/textservice/ISpellCheckerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ISpellCheckerService;
+HPLcom/android/internal/textservice/ISpellCheckerService$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub;-><init>()V
+PLcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ISpellCheckerServiceCallback;
+PLcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onClose()V
+HPLcom/android/internal/textservice/ISpellCheckerSession$Stub;-><init>()V
+HPLcom/android/internal/textservice/ISpellCheckerSession$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/textservice/ISpellCheckerSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ISpellCheckerSession;
+HPLcom/android/internal/textservice/ISpellCheckerSession$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;-><init>()V
+HPLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ISpellCheckerSessionListener;
HSPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->finishSpellCheckerService(ILcom/android/internal/textservice/ISpellCheckerSessionListener;)V
+HPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurrentSpellChecker(ILjava/lang/String;)Landroid/view/textservice/SpellCheckerInfo;
+HPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurrentSpellCheckerSubtype(IZ)Landroid/view/textservice/SpellCheckerSubtype;
+HPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getSpellCheckerService(ILjava/lang/String;Ljava/lang/String;Lcom/android/internal/textservice/ITextServicesSessionListener;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;)V
+HPLcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->isSpellCheckerEnabled(I)Z
+HSPLcom/android/internal/textservice/ITextServicesManager$Stub;-><init>()V
HSPLcom/android/internal/textservice/ITextServicesManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ITextServicesManager;
+PLcom/android/internal/textservice/ITextServicesManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLcom/android/internal/textservice/ITextServicesManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/textservice/ITextServicesSessionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/textservice/ITextServicesSessionListener$Stub$Proxy;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V
+HPLcom/android/internal/textservice/ITextServicesSessionListener$Stub;-><init>()V
+HPLcom/android/internal/textservice/ITextServicesSessionListener$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/textservice/ITextServicesSessionListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ITextServicesSessionListener;
+HPLcom/android/internal/textservice/ITextServicesSessionListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/usb/DumpUtils;->writeContaminantPresenceStatus(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JI)V
+PLcom/android/internal/usb/DumpUtils;->writeDataRole(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JI)V
+PLcom/android/internal/usb/DumpUtils;->writePort(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JLandroid/hardware/usb/UsbPort;)V
+PLcom/android/internal/usb/DumpUtils;->writePortStatus(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JLandroid/hardware/usb/UsbPortStatus;)V
+PLcom/android/internal/usb/DumpUtils;->writePowerRole(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JI)V
+PLcom/android/internal/util/-$$Lambda$DumpUtils$X8irOs5hfloCKy89_l1HRA1QeG0;-><init>(Landroid/content/ComponentName;)V
+HPLcom/android/internal/util/-$$Lambda$DumpUtils$X8irOs5hfloCKy89_l1HRA1QeG0;->test(Ljava/lang/Object;)Z
+PLcom/android/internal/util/-$$Lambda$DumpUtils$vCLO_0ezRxkpSERUWCFrJ0ph5jg;-><init>(ILjava/lang/String;)V
+PLcom/android/internal/util/-$$Lambda$DumpUtils$vCLO_0ezRxkpSERUWCFrJ0ph5jg;->test(Ljava/lang/Object;)Z
+PLcom/android/internal/util/-$$Lambda$FunctionalUtils$koCSI8D7Nu5vOJTVTEj0m3leo_U;-><init>(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/util/function/Consumer;)V
+PLcom/android/internal/util/-$$Lambda$FunctionalUtils$koCSI8D7Nu5vOJTVTEj0m3leo_U;->run()V
+PLcom/android/internal/util/-$$Lambda$JwOUSWW2-Jzu15y4Kn4JuPh8tWM;->test(Ljava/lang/Object;)Z
HSPLcom/android/internal/util/-$$Lambda$ProviderAccessStats$9AhC6lKURctNKuYjVd-wu7jn6_c;-><clinit>()V
HSPLcom/android/internal/util/-$$Lambda$ProviderAccessStats$9AhC6lKURctNKuYjVd-wu7jn6_c;-><init>()V
HSPLcom/android/internal/util/-$$Lambda$ProviderAccessStats$9AhC6lKURctNKuYjVd-wu7jn6_c;->get()Ljava/lang/Object;
+PLcom/android/internal/util/-$$Lambda$TCbPpgWlKJUHZgFKCczglAvxLfw;->test(Ljava/lang/Object;)Z
+PLcom/android/internal/util/-$$Lambda$grRTg3idX3yJe9Zyx-tmLBiD1DM;->test(Ljava/lang/Object;)Z
+PLcom/android/internal/util/-$$Lambda$kVylv1rl9MOSbHFZoVyK5dl1kfY;->test(Ljava/lang/Object;)Z
HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;J)V
+HPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;ILjava/lang/String;JLjava/lang/String;J)V
+HPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/IntRange;JLjava/lang/String;J)V
HSPLcom/android/internal/util/AnnotationValidations;->validate(Ljava/lang/Class;Landroid/annotation/NonNull;Ljava/lang/Object;)V
+HSPLcom/android/internal/util/ArrayUtils;->add(Ljava/util/ArrayList;ILjava/lang/Object;)Ljava/util/ArrayList;
+HSPLcom/android/internal/util/ArrayUtils;->add(Ljava/util/ArrayList;Ljava/lang/Object;)Ljava/util/ArrayList;
+HSPLcom/android/internal/util/ArrayUtils;->appendElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->appendElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;Z)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->appendInt([II)[I
+HSPLcom/android/internal/util/ArrayUtils;->appendInt([IIZ)[I
+HSPLcom/android/internal/util/ArrayUtils;->appendLong([JJZ)[J
HSPLcom/android/internal/util/ArrayUtils;->checkBounds(II)V
HSPLcom/android/internal/util/ArrayUtils;->cloneOrNull([Ljava/lang/Object;)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->contains(Ljava/util/Collection;Ljava/lang/Object;)Z
HSPLcom/android/internal/util/ArrayUtils;->contains([II)Z
HSPLcom/android/internal/util/ArrayUtils;->contains([Ljava/lang/Object;Ljava/lang/Object;)Z
HSPLcom/android/internal/util/ArrayUtils;->containsAll([Ljava/lang/Object;[Ljava/lang/Object;)Z
+HSPLcom/android/internal/util/ArrayUtils;->convertToIntArray(Ljava/util/List;)[I
+HSPLcom/android/internal/util/ArrayUtils;->convertToLongArray([I)[J
HSPLcom/android/internal/util/ArrayUtils;->deepToString(Ljava/lang/Object;)Ljava/lang/String;
+PLcom/android/internal/util/ArrayUtils;->defeatNullable([I)[I
+HSPLcom/android/internal/util/ArrayUtils;->defeatNullable([Ljava/io/File;)[Ljava/io/File;
HSPLcom/android/internal/util/ArrayUtils;->defeatNullable([Ljava/lang/String;)[Ljava/lang/String;
HSPLcom/android/internal/util/ArrayUtils;->emptyArray(Ljava/lang/Class;)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->filterNotNull([Ljava/lang/Object;Ljava/util/function/IntFunction;)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->firstOrNull([Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->indexOf([Ljava/lang/Object;Ljava/lang/Object;)I
HSPLcom/android/internal/util/ArrayUtils;->isEmpty(Ljava/util/Collection;)Z
+PLcom/android/internal/util/ArrayUtils;->isEmpty(Ljava/util/Map;)Z
+HSPLcom/android/internal/util/ArrayUtils;->isEmpty([B)Z
HSPLcom/android/internal/util/ArrayUtils;->isEmpty([I)Z
+PLcom/android/internal/util/ArrayUtils;->isEmpty([J)Z
HSPLcom/android/internal/util/ArrayUtils;->isEmpty([Ljava/lang/Object;)Z
HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedArray(Ljava/lang/Class;I)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedByteArray(I)[B
HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedCharArray(I)[C
+HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedFloatArray(I)[F
HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedIntArray(I)[I
HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedLongArray(I)[J
HSPLcom/android/internal/util/ArrayUtils;->newUnpaddedObjectArray(I)[Ljava/lang/Object;
+HSPLcom/android/internal/util/ArrayUtils;->referenceEquals(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
+HSPLcom/android/internal/util/ArrayUtils;->remove(Ljava/util/ArrayList;Ljava/lang/Object;)Ljava/util/ArrayList;
+HPLcom/android/internal/util/ArrayUtils;->removeElement(Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
+HPLcom/android/internal/util/ArrayUtils;->removeInt([II)[I
+HSPLcom/android/internal/util/ArrayUtils;->size(Ljava/util/Collection;)I
HSPLcom/android/internal/util/ArrayUtils;->size([Ljava/lang/Object;)I
+HSPLcom/android/internal/util/ArrayUtils;->total([J)J
+PLcom/android/internal/util/ArrayUtils;->trimToSize([Ljava/lang/Object;I)[Ljava/lang/Object;
HSPLcom/android/internal/util/ArrayUtils;->unstableRemoveIf(Ljava/util/ArrayList;Ljava/util/function/Predicate;)I
+HSPLcom/android/internal/util/AsyncChannel$DeathMonitor;-><init>(Lcom/android/internal/util/AsyncChannel;)V
+HSPLcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;-><init>(Lcom/android/internal/util/AsyncChannel$SyncMessenger;Landroid/os/Looper;)V
+HSPLcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;-><init>(Lcom/android/internal/util/AsyncChannel$SyncMessenger;Landroid/os/Looper;Lcom/android/internal/util/AsyncChannel$1;)V
+HSPLcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;->access$300(Lcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;)Ljava/lang/Object;
+HSPLcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;->access$400(Lcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;)Landroid/os/Message;
+PLcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;->access$402(Lcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;Landroid/os/Message;)Landroid/os/Message;
+HPLcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/internal/util/AsyncChannel$SyncMessenger;-><init>()V
+HSPLcom/android/internal/util/AsyncChannel$SyncMessenger;->access$100(Landroid/os/Messenger;Landroid/os/Message;)Landroid/os/Message;
+HSPLcom/android/internal/util/AsyncChannel$SyncMessenger;->obtain()Lcom/android/internal/util/AsyncChannel$SyncMessenger;
+HPLcom/android/internal/util/AsyncChannel$SyncMessenger;->recycle()V
+HSPLcom/android/internal/util/AsyncChannel$SyncMessenger;->sendMessageSynchronously(Landroid/os/Messenger;Landroid/os/Message;)Landroid/os/Message;
+HSPLcom/android/internal/util/AsyncChannel;-><init>()V
+HSPLcom/android/internal/util/AsyncChannel;->connect(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Handler;)V
+HSPLcom/android/internal/util/AsyncChannel;->connect(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V
+HSPLcom/android/internal/util/AsyncChannel;->connectSync(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)I
HSPLcom/android/internal/util/AsyncChannel;->connected(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V
+PLcom/android/internal/util/AsyncChannel;->disconnect()V
+HSPLcom/android/internal/util/AsyncChannel;->linkToDeathMonitor()Z
+PLcom/android/internal/util/AsyncChannel;->replyDisconnected(I)V
+HSPLcom/android/internal/util/AsyncChannel;->replyHalfConnected(I)V
+HSPLcom/android/internal/util/AsyncChannel;->replyToMessage(Landroid/os/Message;II)V
+HSPLcom/android/internal/util/AsyncChannel;->replyToMessage(Landroid/os/Message;Landroid/os/Message;)V
+HSPLcom/android/internal/util/AsyncChannel;->sendMessage(I)V
+PLcom/android/internal/util/AsyncChannel;->sendMessage(II)V
+HSPLcom/android/internal/util/AsyncChannel;->sendMessage(III)V
+HSPLcom/android/internal/util/AsyncChannel;->sendMessage(IIILjava/lang/Object;)V
+HPLcom/android/internal/util/AsyncChannel;->sendMessage(ILjava/lang/Object;)V
+HSPLcom/android/internal/util/AsyncChannel;->sendMessage(Landroid/os/Message;)V
+HSPLcom/android/internal/util/AsyncChannel;->sendMessageSynchronously(I)Landroid/os/Message;
+PLcom/android/internal/util/AsyncChannel;->sendMessageSynchronously(IIILjava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/util/AsyncChannel;->sendMessageSynchronously(Landroid/os/Message;)Landroid/os/Message;
+PLcom/android/internal/util/BitUtils;->bitAt(I)J
+HPLcom/android/internal/util/BitUtils;->maskedEquals(Ljava/util/UUID;Ljava/util/UUID;Ljava/util/UUID;)Z
+HSPLcom/android/internal/util/BitUtils;->packBits([I)J
+PLcom/android/internal/util/BitUtils;->toBytes(J)[B
+HPLcom/android/internal/util/BitUtils;->uint16(S)I
+HPLcom/android/internal/util/BitUtils;->uint32(I)J
+PLcom/android/internal/util/BitUtils;->uint8(B)I
HSPLcom/android/internal/util/BitUtils;->unpackBits(J)[I
+HPLcom/android/internal/util/CollectionUtils;->addIf(Ljava/util/List;Ljava/util/Collection;Ljava/util/function/Predicate;)V
+HSPLcom/android/internal/util/CollectionUtils;->firstOrNull(Ljava/util/Collection;)Ljava/lang/Object;
+HSPLcom/android/internal/util/CollectionUtils;->firstOrNull(Ljava/util/List;)Ljava/lang/Object;
HSPLcom/android/internal/util/CollectionUtils;->isEmpty(Ljava/util/Collection;)Z
+PLcom/android/internal/util/CollectionUtils;->map(Ljava/util/Set;Ljava/util/function/Function;)Ljava/util/Set;
+PLcom/android/internal/util/CollectionUtils;->singletonOrEmpty(Ljava/lang/Object;)Ljava/util/List;
HSPLcom/android/internal/util/CollectionUtils;->size(Ljava/util/Collection;)I
+PLcom/android/internal/util/CollectionUtils;->size(Ljava/util/Map;)I
+HSPLcom/android/internal/util/ConcurrentUtils$1$1;-><init>(Lcom/android/internal/util/ConcurrentUtils$1;Ljava/lang/String;Ljava/lang/Runnable;)V
+HSPLcom/android/internal/util/ConcurrentUtils$1$1;->run()V
+HSPLcom/android/internal/util/ConcurrentUtils$1;-><init>(Ljava/lang/String;I)V
+HSPLcom/android/internal/util/ConcurrentUtils$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
+HSPLcom/android/internal/util/ConcurrentUtils;->newFixedThreadPool(ILjava/lang/String;I)Ljava/util/concurrent/ExecutorService;
+HSPLcom/android/internal/util/ConcurrentUtils;->waitForCountDownNoInterrupt(Ljava/util/concurrent/CountDownLatch;JLjava/lang/String;)V
+HSPLcom/android/internal/util/ConcurrentUtils;->waitForFutureNoInterrupt(Ljava/util/concurrent/Future;Ljava/lang/String;)Ljava/lang/Object;
+HSPLcom/android/internal/util/ConcurrentUtils;->wtfIfLockHeld(Ljava/lang/String;Ljava/lang/Object;)V
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->HSLToColor([F)I
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->LABToColor(DDD)I
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->LABToXYZ(DDD[D)V
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->RGBToHSL(III[F)V
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->RGBToLAB(III[D)V
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->RGBToXYZ(III[D)V
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->XYZToColor(DDD)I
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->XYZToLAB(DDD[D)V
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->calculateContrast(II)D
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->calculateLuminance(I)D
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->colorToHSL(I[F)V
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->colorToLAB(I[D)V
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->colorToXYZ(I[D)V
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->compositeAlpha(II)I
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->compositeColors(II)I
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->compositeComponent(IIIII)I
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->constrain(FFF)F
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->constrain(III)I
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->getTempDouble3Array()[D
+HPLcom/android/internal/util/ContrastColorUtil$ColorUtilsFromCompat;->pivotXyzComponent(D)D
+HPLcom/android/internal/util/ContrastColorUtil;->calculateContrast(II)D
+HPLcom/android/internal/util/ContrastColorUtil;->calculateLuminance(I)D
+HPLcom/android/internal/util/ContrastColorUtil;->changeColorLightness(II)I
+HPLcom/android/internal/util/ContrastColorUtil;->clearColorSpans(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
+HPLcom/android/internal/util/ContrastColorUtil;->ensureContrast(IIZD)I
+HPLcom/android/internal/util/ContrastColorUtil;->ensureTextBackgroundColor(III)I
+HPLcom/android/internal/util/ContrastColorUtil;->ensureTextContrast(IIZ)I
+HPLcom/android/internal/util/ContrastColorUtil;->findContrastColor(IIZD)I
+HPLcom/android/internal/util/ContrastColorUtil;->findContrastColorAgainstDark(IIZD)I
+HPLcom/android/internal/util/ContrastColorUtil;->getShiftedColor(II)I
+HPLcom/android/internal/util/ContrastColorUtil;->isColorLight(I)Z
+HPLcom/android/internal/util/ContrastColorUtil;->resolveColor(Landroid/content/Context;IZ)I
+HPLcom/android/internal/util/ContrastColorUtil;->resolveContrastColor(Landroid/content/Context;II)I
+HPLcom/android/internal/util/ContrastColorUtil;->resolveContrastColor(Landroid/content/Context;IIZ)I
+HPLcom/android/internal/util/ContrastColorUtil;->satisfiesTextContrast(II)Z
+PLcom/android/internal/util/DumpUtils$1;-><init>(Ljava/io/StringWriter;Lcom/android/internal/util/DumpUtils$Dump;Ljava/lang/String;)V
+PLcom/android/internal/util/DumpUtils$1;->run()V
+PLcom/android/internal/util/DumpUtils;->checkDumpAndUsageStatsPermission(Landroid/content/Context;Ljava/lang/String;Ljava/io/PrintWriter;)Z
+PLcom/android/internal/util/DumpUtils;->checkDumpPermission(Landroid/content/Context;Ljava/lang/String;Ljava/io/PrintWriter;)Z
+PLcom/android/internal/util/DumpUtils;->checkUsageStatsPermission(Landroid/content/Context;Ljava/lang/String;Ljava/io/PrintWriter;)Z
+PLcom/android/internal/util/DumpUtils;->dumpAsync(Landroid/os/Handler;Lcom/android/internal/util/DumpUtils$Dump;Ljava/io/PrintWriter;Ljava/lang/String;J)V
+PLcom/android/internal/util/DumpUtils;->filterRecord(Ljava/lang/String;)Ljava/util/function/Predicate;
+PLcom/android/internal/util/DumpUtils;->isCriticalPackage(Landroid/content/ComponentName;)Z
+PLcom/android/internal/util/DumpUtils;->isNonPlatformPackage(Landroid/content/ComponentName$WithComponentName;)Z
+PLcom/android/internal/util/DumpUtils;->isPlatformCriticalPackage(Landroid/content/ComponentName$WithComponentName;)Z
+PLcom/android/internal/util/DumpUtils;->isPlatformNonCriticalPackage(Landroid/content/ComponentName$WithComponentName;)Z
+PLcom/android/internal/util/DumpUtils;->isPlatformPackage(Landroid/content/ComponentName$WithComponentName;)Z
+HPLcom/android/internal/util/DumpUtils;->isPlatformPackage(Landroid/content/ComponentName;)Z
+HPLcom/android/internal/util/DumpUtils;->isPlatformPackage(Ljava/lang/String;)Z
+HPLcom/android/internal/util/DumpUtils;->lambda$filterRecord$1(Landroid/content/ComponentName;Landroid/content/ComponentName$WithComponentName;)Z
+PLcom/android/internal/util/DumpUtils;->lambda$filterRecord$2(ILjava/lang/String;Landroid/content/ComponentName$WithComponentName;)Z
HSPLcom/android/internal/util/ExponentiallyBucketedHistogram;-><init>(I)V
HSPLcom/android/internal/util/ExponentiallyBucketedHistogram;->add(I)V
+HPLcom/android/internal/util/ExponentiallyBucketedHistogram;->log(Ljava/lang/String;Ljava/lang/CharSequence;)V
HSPLcom/android/internal/util/FastPrintWriter$DummyWriter;-><init>()V
HSPLcom/android/internal/util/FastPrintWriter$DummyWriter;-><init>(Lcom/android/internal/util/FastPrintWriter$1;)V
+HSPLcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/OutputStream;)V
+HSPLcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/OutputStream;ZI)V
+PLcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/Writer;)V
HSPLcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/Writer;ZI)V
+HSPLcom/android/internal/util/FastPrintWriter;->appendLocked(C)V
HSPLcom/android/internal/util/FastPrintWriter;->appendLocked(Ljava/lang/String;II)V
+HPLcom/android/internal/util/FastPrintWriter;->appendLocked([CII)V
+PLcom/android/internal/util/FastPrintWriter;->checkError()Z
+HSPLcom/android/internal/util/FastPrintWriter;->close()V
HSPLcom/android/internal/util/FastPrintWriter;->flush()V
+HSPLcom/android/internal/util/FastPrintWriter;->flushBytesLocked()V
HSPLcom/android/internal/util/FastPrintWriter;->flushLocked()V
HSPLcom/android/internal/util/FastPrintWriter;->initDefaultEncoder()V
+HSPLcom/android/internal/util/FastPrintWriter;->print(C)V
+HSPLcom/android/internal/util/FastPrintWriter;->print(I)V
+HSPLcom/android/internal/util/FastPrintWriter;->print(J)V
HSPLcom/android/internal/util/FastPrintWriter;->print(Ljava/lang/String;)V
+PLcom/android/internal/util/FastPrintWriter;->print([C)V
HSPLcom/android/internal/util/FastPrintWriter;->println()V
+HSPLcom/android/internal/util/FastPrintWriter;->println(C)V
+HSPLcom/android/internal/util/FastPrintWriter;->println(I)V
+PLcom/android/internal/util/FastPrintWriter;->println(J)V
+PLcom/android/internal/util/FastPrintWriter;->println([C)V
+PLcom/android/internal/util/FastPrintWriter;->setError()V
+HSPLcom/android/internal/util/FastPrintWriter;->write(I)V
+HSPLcom/android/internal/util/FastPrintWriter;->write(Ljava/lang/String;)V
+HPLcom/android/internal/util/FastPrintWriter;->write(Ljava/lang/String;II)V
+HPLcom/android/internal/util/FastPrintWriter;->write([CII)V
HSPLcom/android/internal/util/FastXmlSerializer;-><init>()V
HSPLcom/android/internal/util/FastXmlSerializer;-><init>(I)V
HSPLcom/android/internal/util/FastXmlSerializer;->append(Ljava/lang/String;)V
@@ -8601,9 +32466,29 @@ HSPLcom/android/internal/util/FastXmlSerializer;->flush()V
HSPLcom/android/internal/util/FastXmlSerializer;->flushBytes()V
HSPLcom/android/internal/util/FastXmlSerializer;->setFeature(Ljava/lang/String;Z)V
HSPLcom/android/internal/util/FastXmlSerializer;->setOutput(Ljava/io/OutputStream;Ljava/lang/String;)V
+PLcom/android/internal/util/FastXmlSerializer;->setOutput(Ljava/io/Writer;)V
HSPLcom/android/internal/util/FastXmlSerializer;->startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V
HSPLcom/android/internal/util/FastXmlSerializer;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
HSPLcom/android/internal/util/FastXmlSerializer;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
+HSPLcom/android/internal/util/FileRotator$FileInfo;-><init>(Ljava/lang/String;)V
+PLcom/android/internal/util/FileRotator$FileInfo;->build()Ljava/lang/String;
+PLcom/android/internal/util/FileRotator$FileInfo;->isActive()Z
+HSPLcom/android/internal/util/FileRotator$FileInfo;->parse(Ljava/lang/String;)Z
+HSPLcom/android/internal/util/FileRotator;-><init>(Ljava/io/File;Ljava/lang/String;JJ)V
+HPLcom/android/internal/util/FileRotator;->getActiveName(J)Ljava/lang/String;
+HPLcom/android/internal/util/FileRotator;->maybeRotate(J)V
+HSPLcom/android/internal/util/FileRotator;->readFile(Ljava/io/File;Lcom/android/internal/util/FileRotator$Reader;)V
+HSPLcom/android/internal/util/FileRotator;->readMatching(Lcom/android/internal/util/FileRotator$Reader;JJ)V
+PLcom/android/internal/util/FileRotator;->rewriteActive(Lcom/android/internal/util/FileRotator$Rewriter;J)V
+PLcom/android/internal/util/FileRotator;->rewriteSingle(Lcom/android/internal/util/FileRotator$Rewriter;Ljava/lang/String;)V
+PLcom/android/internal/util/FileRotator;->writeFile(Ljava/io/File;Lcom/android/internal/util/FileRotator$Writer;)V
+PLcom/android/internal/util/FunctionalUtils$RemoteExceptionIgnoringConsumer;->accept(Ljava/lang/Object;)V
+PLcom/android/internal/util/FunctionalUtils$ThrowingConsumer;->accept(Ljava/lang/Object;)V
+PLcom/android/internal/util/FunctionalUtils$ThrowingRunnable;->run()V
+PLcom/android/internal/util/FunctionalUtils;->handleExceptions(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/util/function/Consumer;)Ljava/lang/Runnable;
+PLcom/android/internal/util/FunctionalUtils;->ignoreRemoteException(Lcom/android/internal/util/FunctionalUtils$RemoteExceptionIgnoringConsumer;)Ljava/util/function/Consumer;
+PLcom/android/internal/util/FunctionalUtils;->lambda$handleExceptions$0(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/util/function/Consumer;)V
+PLcom/android/internal/util/FunctionalUtils;->uncheckExceptions(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;)Ljava/util/function/Consumer;
HSPLcom/android/internal/util/GrowingArrayUtils;->append([III)[I
HSPLcom/android/internal/util/GrowingArrayUtils;->append([JIJ)[J
HSPLcom/android/internal/util/GrowingArrayUtils;->append([Ljava/lang/Object;ILjava/lang/Object;)[Ljava/lang/Object;
@@ -8613,23 +32498,89 @@ HSPLcom/android/internal/util/GrowingArrayUtils;->insert([IIII)[I
HSPLcom/android/internal/util/GrowingArrayUtils;->insert([JIIJ)[J
HSPLcom/android/internal/util/GrowingArrayUtils;->insert([Ljava/lang/Object;IILjava/lang/Object;)[Ljava/lang/Object;
HSPLcom/android/internal/util/GrowingArrayUtils;->insert([ZIIZ)[Z
+HSPLcom/android/internal/util/HexDump;->hexStringToByteArray(Ljava/lang/String;)[B
+HSPLcom/android/internal/util/HexDump;->toByte(C)I
+HSPLcom/android/internal/util/HexDump;->toHexString([B)Ljava/lang/String;
+HSPLcom/android/internal/util/HexDump;->toHexString([BIIZ)Ljava/lang/String;
+PLcom/android/internal/util/IndentingPrintWriter;-><init>(Ljava/io/Writer;Ljava/lang/String;)V
+PLcom/android/internal/util/IndentingPrintWriter;-><init>(Ljava/io/Writer;Ljava/lang/String;I)V
+PLcom/android/internal/util/IndentingPrintWriter;->decreaseIndent()Lcom/android/internal/util/IndentingPrintWriter;
+PLcom/android/internal/util/IndentingPrintWriter;->increaseIndent()Lcom/android/internal/util/IndentingPrintWriter;
+HPLcom/android/internal/util/IndentingPrintWriter;->maybeWriteIndent()V
+HPLcom/android/internal/util/IndentingPrintWriter;->printHexPair(Ljava/lang/String;I)Lcom/android/internal/util/IndentingPrintWriter;
+HPLcom/android/internal/util/IndentingPrintWriter;->printPair(Ljava/lang/String;Ljava/lang/Object;)Lcom/android/internal/util/IndentingPrintWriter;
+PLcom/android/internal/util/IndentingPrintWriter;->printPair(Ljava/lang/String;[Ljava/lang/Object;)Lcom/android/internal/util/IndentingPrintWriter;
+HPLcom/android/internal/util/IndentingPrintWriter;->println()V
+PLcom/android/internal/util/IndentingPrintWriter;->setIndent(Ljava/lang/String;)Lcom/android/internal/util/IndentingPrintWriter;
+HPLcom/android/internal/util/IndentingPrintWriter;->write(I)V
+HPLcom/android/internal/util/IndentingPrintWriter;->write(Ljava/lang/String;II)V
+HPLcom/android/internal/util/IndentingPrintWriter;->write([CII)V
HSPLcom/android/internal/util/IntPair;->first(J)I
+HSPLcom/android/internal/util/IntPair;->of(II)J
HSPLcom/android/internal/util/IntPair;->second(J)I
+HSPLcom/android/internal/util/JournaledFile;-><init>(Ljava/io/File;Ljava/io/File;)V
+HSPLcom/android/internal/util/JournaledFile;->chooseForRead()Ljava/io/File;
+HSPLcom/android/internal/util/JournaledFile;->chooseForWrite()Ljava/io/File;
+HSPLcom/android/internal/util/JournaledFile;->commit()V
+HSPLcom/android/internal/util/LatencyTracker$1;-><init>(Lcom/android/internal/util/LatencyTracker;)V
+HSPLcom/android/internal/util/LatencyTracker;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/util/LatencyTracker;->getInstance(Landroid/content/Context;)Lcom/android/internal/util/LatencyTracker;
+HPLcom/android/internal/util/LatencyTracker;->isEnabled(Landroid/content/Context;)Z
+PLcom/android/internal/util/LatencyTracker;->onActionEnd(I)V
+PLcom/android/internal/util/LatencyTracker;->onActionStart(I)V
+HSPLcom/android/internal/util/LatencyTracker;->reloadProperty()V
HSPLcom/android/internal/util/LineBreakBufferedWriter;-><init>(Ljava/io/Writer;I)V
HSPLcom/android/internal/util/LineBreakBufferedWriter;-><init>(Ljava/io/Writer;II)V
HSPLcom/android/internal/util/LineBreakBufferedWriter;->flush()V
HSPLcom/android/internal/util/LineBreakBufferedWriter;->println()V
+HPLcom/android/internal/util/LineBreakBufferedWriter;->write(I)V
HSPLcom/android/internal/util/LineBreakBufferedWriter;->write(Ljava/lang/String;II)V
HSPLcom/android/internal/util/LineBreakBufferedWriter;->writeBuffer(I)V
+HSPLcom/android/internal/util/LocalLog;-><init>(Ljava/lang/String;)V
+PLcom/android/internal/util/LocalLog;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/internal/util/LocalLog;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLcom/android/internal/util/LocalLog;->w(Ljava/lang/String;)V
+HSPLcom/android/internal/util/MemInfoReader;-><init>()V
+HSPLcom/android/internal/util/MemInfoReader;->getCachedSizeKb()J
+HSPLcom/android/internal/util/MemInfoReader;->getFreeSizeKb()J
+HSPLcom/android/internal/util/MemInfoReader;->getKernelUsedSizeKb()J
+HSPLcom/android/internal/util/MemInfoReader;->getRawInfo()[J
+PLcom/android/internal/util/MemInfoReader;->getSwapFreeSizeKb()J
+PLcom/android/internal/util/MemInfoReader;->getSwapTotalSizeKb()J
+HSPLcom/android/internal/util/MemInfoReader;->getTotalSize()J
+HSPLcom/android/internal/util/MemInfoReader;->getTotalSizeKb()J
+HSPLcom/android/internal/util/MemInfoReader;->getZramTotalSizeKb()J
+HSPLcom/android/internal/util/MemInfoReader;->readMemInfo()V
+HSPLcom/android/internal/util/MessageUtils;->findMessageNames([Ljava/lang/Class;)Landroid/util/SparseArray;
+HSPLcom/android/internal/util/MessageUtils;->findMessageNames([Ljava/lang/Class;[Ljava/lang/String;)Landroid/util/SparseArray;
+HSPLcom/android/internal/util/NotificationMessagingUtil$1;-><init>(Lcom/android/internal/util/NotificationMessagingUtil;Landroid/os/Handler;)V
+HSPLcom/android/internal/util/NotificationMessagingUtil;-><init>(Landroid/content/Context;)V
+PLcom/android/internal/util/NotificationMessagingUtil;->cacheDefaultSmsApp(I)V
+PLcom/android/internal/util/NotificationMessagingUtil;->hasMessagingStyle(Landroid/service/notification/StatusBarNotification;)Z
+PLcom/android/internal/util/NotificationMessagingUtil;->isCategoryMessage(Landroid/service/notification/StatusBarNotification;)Z
+HPLcom/android/internal/util/NotificationMessagingUtil;->isDefaultMessagingApp(Landroid/service/notification/StatusBarNotification;)Z
+HPLcom/android/internal/util/NotificationMessagingUtil;->isImportantMessaging(Landroid/service/notification/StatusBarNotification;I)Z
+HPLcom/android/internal/util/NotificationMessagingUtil;->isMessaging(Landroid/service/notification/StatusBarNotification;)Z
+PLcom/android/internal/util/ObjectUtils;->compare(Ljava/lang/Comparable;Ljava/lang/Comparable;)I
HSPLcom/android/internal/util/Parcelling$Cache;-><clinit>()V
HSPLcom/android/internal/util/Parcelling$Cache;->get(Ljava/lang/Class;)Lcom/android/internal/util/Parcelling;
HSPLcom/android/internal/util/Parcelling$Cache;->getOrCreate(Ljava/lang/Class;)Lcom/android/internal/util/Parcelling;
HSPLcom/android/internal/util/Parcelling$Cache;->put(Lcom/android/internal/util/Parcelling;)Lcom/android/internal/util/Parcelling;
+HSPLcom/android/internal/util/ParseUtils;->parseInt(Ljava/lang/String;I)I
+HSPLcom/android/internal/util/ParseUtils;->parseIntWithBase(Ljava/lang/String;II)I
HSPLcom/android/internal/util/Preconditions;->checkArgument(Z)V
HSPLcom/android/internal/util/Preconditions;->checkArgument(ZLjava/lang/Object;)V
+PLcom/android/internal/util/Preconditions;->checkArgument(ZLjava/lang/String;[Ljava/lang/Object;)V
HSPLcom/android/internal/util/Preconditions;->checkArgumentInRange(IIILjava/lang/String;)I
+HSPLcom/android/internal/util/Preconditions;->checkArgumentNonNegative(FLjava/lang/String;)F
HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(I)I
HSPLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(ILjava/lang/String;)I
+HSLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(J)J
+PLcom/android/internal/util/Preconditions;->checkArgumentNonnegative(JLjava/lang/String;)J
+HSPLcom/android/internal/util/Preconditions;->checkArgumentPositive(ILjava/lang/String;)I
+HSPLcom/android/internal/util/Preconditions;->checkArrayElementsInRange([FFFLjava/lang/String;)[F
+HSPLcom/android/internal/util/Preconditions;->checkArrayElementsInRange([IIILjava/lang/String;)[I
+PLcom/android/internal/util/Preconditions;->checkArrayElementsNotNull([Ljava/lang/Object;Ljava/lang/String;)[Ljava/lang/Object;
HSPLcom/android/internal/util/Preconditions;->checkCollectionElementsNotNull(Ljava/util/Collection;Ljava/lang/String;)Ljava/util/Collection;
HSPLcom/android/internal/util/Preconditions;->checkFlagsArgument(II)I
HSPLcom/android/internal/util/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
@@ -8638,6 +32589,16 @@ HSPLcom/android/internal/util/Preconditions;->checkState(Z)V
HSPLcom/android/internal/util/Preconditions;->checkState(ZLjava/lang/String;)V
HSPLcom/android/internal/util/Preconditions;->checkStringNotEmpty(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
HSPLcom/android/internal/util/Preconditions;->checkStringNotEmpty(Ljava/lang/CharSequence;Ljava/lang/Object;)Ljava/lang/CharSequence;
+HSPLcom/android/internal/util/ProgressReporter;-><init>(I)V
+HSPLcom/android/internal/util/ProgressReporter;->addListener(Landroid/os/IProgressListener;)V
+PLcom/android/internal/util/ProgressReporter;->finish()V
+PLcom/android/internal/util/ProgressReporter;->notifyFinished(ILandroid/os/Bundle;)V
+PLcom/android/internal/util/ProgressReporter;->notifyProgress(IILandroid/os/Bundle;)V
+PLcom/android/internal/util/ProgressReporter;->notifyStarted(ILandroid/os/Bundle;)V
+PLcom/android/internal/util/ProgressReporter;->setProgress(I)V
+PLcom/android/internal/util/ProgressReporter;->setProgress(IILjava/lang/CharSequence;)V
+PLcom/android/internal/util/ProgressReporter;->setProgress(ILjava/lang/CharSequence;)V
+PLcom/android/internal/util/ProgressReporter;->start()V
HSPLcom/android/internal/util/ProviderAccessStats$PerThreadData;-><init>()V
HSPLcom/android/internal/util/ProviderAccessStats$PerThreadData;-><init>(Lcom/android/internal/util/ProviderAccessStats$1;)V
HSPLcom/android/internal/util/ProviderAccessStats;-><init>()V
@@ -8650,15 +32611,50 @@ HSPLcom/android/internal/util/ProviderAccessStats;->incrementStats(ILandroid/uti
HSPLcom/android/internal/util/ProviderAccessStats;->incrementStats(IZLandroid/util/SparseLongArray;Landroid/util/SparseLongArray;)V
HSPLcom/android/internal/util/ProviderAccessStats;->incrementUpdateStats(IZ)V
HSPLcom/android/internal/util/ProviderAccessStats;->lambda$new$0()Lcom/android/internal/util/ProviderAccessStats$PerThreadData;
+HSPLcom/android/internal/util/RingBuffer;-><init>(Ljava/lang/Class;I)V
+HSPLcom/android/internal/util/RingBuffer;->append(Ljava/lang/Object;)V
+HSPLcom/android/internal/util/RingBuffer;->clear()V
+HSPLcom/android/internal/util/RingBuffer;->createNewItem()Ljava/lang/Object;
+HSPLcom/android/internal/util/RingBuffer;->getNextSlot()Ljava/lang/Object;
+HSPLcom/android/internal/util/RingBuffer;->indexOf(J)I
+PLcom/android/internal/util/RingBuffer;->isEmpty()Z
+HSPLcom/android/internal/util/RingBuffer;->size()I
+PLcom/android/internal/util/RingBuffer;->toArray()[Ljava/lang/Object;
+HSPLcom/android/internal/util/RingBufferIndices;-><init>(I)V
+PLcom/android/internal/util/RingBufferIndices;->add()I
+PLcom/android/internal/util/RingBufferIndices;->indexOf(I)I
+PLcom/android/internal/util/RingBufferIndices;->size()I
+PLcom/android/internal/util/ScreenshotHelper$1;-><init>(Lcom/android/internal/util/ScreenshotHelper;Ljava/util/function/Consumer;)V
+PLcom/android/internal/util/ScreenshotHelper$2$1;-><init>(Lcom/android/internal/util/ScreenshotHelper$2;Landroid/os/Looper;Landroid/content/ServiceConnection;)V
+PLcom/android/internal/util/ScreenshotHelper$2$1;->handleMessage(Landroid/os/Message;)V
+PLcom/android/internal/util/ScreenshotHelper$2;-><init>(Lcom/android/internal/util/ScreenshotHelper;ILandroid/os/Handler;Ljava/lang/Runnable;Ljava/util/function/Consumer;ZZ)V
+PLcom/android/internal/util/ScreenshotHelper$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+HSPLcom/android/internal/util/ScreenshotHelper;-><init>(Landroid/content/Context;)V
+PLcom/android/internal/util/ScreenshotHelper;->access$000(Lcom/android/internal/util/ScreenshotHelper;)Ljava/lang/Object;
+PLcom/android/internal/util/ScreenshotHelper;->access$100(Lcom/android/internal/util/ScreenshotHelper;)Landroid/content/ServiceConnection;
+PLcom/android/internal/util/ScreenshotHelper;->access$102(Lcom/android/internal/util/ScreenshotHelper;Landroid/content/ServiceConnection;)Landroid/content/ServiceConnection;
+PLcom/android/internal/util/ScreenshotHelper;->access$200(Lcom/android/internal/util/ScreenshotHelper;)Landroid/content/Context;
+PLcom/android/internal/util/ScreenshotHelper;->takeScreenshot(IZZJLandroid/os/Handler;Ljava/util/function/Consumer;)V
+PLcom/android/internal/util/ScreenshotHelper;->takeScreenshot(IZZLandroid/os/Handler;Ljava/util/function/Consumer;)V
+HSPLcom/android/internal/util/StatLogger;-><init>([Ljava/lang/String;)V
+PLcom/android/internal/util/StatLogger;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/internal/util/StatLogger;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/internal/util/StatLogger;->dumpProto(Landroid/util/proto/ProtoOutputStream;J)V
HSPLcom/android/internal/util/StatLogger;->getTime()J
HSPLcom/android/internal/util/StatLogger;->logDurationStat(IJ)J
HSPLcom/android/internal/util/State;-><init>()V
-HSPLcom/android/internal/util/StateMachine$LogRec;-><init>(Lcom/android/internal/util/StateMachine;Landroid/os/Message;Ljava/lang/String;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;)V
-HSPLcom/android/internal/util/StateMachine$LogRec;->update(Lcom/android/internal/util/StateMachine;Landroid/os/Message;Ljava/lang/String;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;)V
+HSPLcom/android/internal/util/State;->enter()V
+PLcom/android/internal/util/State;->exit()V
+PLcom/android/internal/util/State;->getName()Ljava/lang/String;
+PLcom/android/internal/util/StateMachine$LogRec;-><init>(Lcom/android/internal/util/StateMachine;Landroid/os/Message;Ljava/lang/String;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;)V
+PLcom/android/internal/util/StateMachine$LogRec;->update(Lcom/android/internal/util/StateMachine;Landroid/os/Message;Ljava/lang/String;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;)V
HSPLcom/android/internal/util/StateMachine$LogRecords;-><init>()V
HSPLcom/android/internal/util/StateMachine$LogRecords;-><init>(Lcom/android/internal/util/StateMachine$1;)V
-HSPLcom/android/internal/util/StateMachine$LogRecords;->add(Lcom/android/internal/util/StateMachine;Landroid/os/Message;Ljava/lang/String;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;)V
+PLcom/android/internal/util/StateMachine$LogRecords;->add(Lcom/android/internal/util/StateMachine;Landroid/os/Message;Ljava/lang/String;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;Lcom/android/internal/util/IState;)V
+PLcom/android/internal/util/StateMachine$LogRecords;->count()I
HSPLcom/android/internal/util/StateMachine$LogRecords;->logOnlyTransitions()Z
+HSPLcom/android/internal/util/StateMachine$LogRecords;->setSize(I)V
+PLcom/android/internal/util/StateMachine$LogRecords;->size()I
HSPLcom/android/internal/util/StateMachine$SmHandler$HaltingState;-><init>(Lcom/android/internal/util/StateMachine$SmHandler;)V
HSPLcom/android/internal/util/StateMachine$SmHandler$HaltingState;-><init>(Lcom/android/internal/util/StateMachine$SmHandler;Lcom/android/internal/util/StateMachine$1;)V
HSPLcom/android/internal/util/StateMachine$SmHandler$QuittingState;-><init>(Lcom/android/internal/util/StateMachine$SmHandler;)V
@@ -8668,56 +32664,170 @@ HSPLcom/android/internal/util/StateMachine$SmHandler$StateInfo;-><init>(Lcom/and
HSPLcom/android/internal/util/StateMachine$SmHandler;-><init>(Landroid/os/Looper;Lcom/android/internal/util/StateMachine;)V
HSPLcom/android/internal/util/StateMachine$SmHandler;-><init>(Landroid/os/Looper;Lcom/android/internal/util/StateMachine;Lcom/android/internal/util/StateMachine$1;)V
HSPLcom/android/internal/util/StateMachine$SmHandler;->access$1100(Lcom/android/internal/util/StateMachine$SmHandler;Lcom/android/internal/util/State;)V
+PLcom/android/internal/util/StateMachine$SmHandler;->access$1300(Lcom/android/internal/util/StateMachine$SmHandler;)Lcom/android/internal/util/IState;
+PLcom/android/internal/util/StateMachine$SmHandler;->access$1400(Lcom/android/internal/util/StateMachine$SmHandler;Lcom/android/internal/util/IState;)V
+PLcom/android/internal/util/StateMachine$SmHandler;->access$1700(Lcom/android/internal/util/StateMachine$SmHandler;)Z
+HSPLcom/android/internal/util/StateMachine$SmHandler;->access$1800(Lcom/android/internal/util/StateMachine$SmHandler;)Lcom/android/internal/util/StateMachine$LogRecords;
HSPLcom/android/internal/util/StateMachine$SmHandler;->access$3000(Lcom/android/internal/util/StateMachine$SmHandler;)V
HSPLcom/android/internal/util/StateMachine$SmHandler;->access$900(Lcom/android/internal/util/StateMachine$SmHandler;Lcom/android/internal/util/State;Lcom/android/internal/util/State;)Lcom/android/internal/util/StateMachine$SmHandler$StateInfo;
HSPLcom/android/internal/util/StateMachine$SmHandler;->addState(Lcom/android/internal/util/State;Lcom/android/internal/util/State;)Lcom/android/internal/util/StateMachine$SmHandler$StateInfo;
HSPLcom/android/internal/util/StateMachine$SmHandler;->completeConstruction()V
+PLcom/android/internal/util/StateMachine$SmHandler;->getCurrentState()Lcom/android/internal/util/IState;
HSPLcom/android/internal/util/StateMachine$SmHandler;->handleMessage(Landroid/os/Message;)V
HSPLcom/android/internal/util/StateMachine$SmHandler;->invokeEnterMethods(I)V
-HSPLcom/android/internal/util/StateMachine$SmHandler;->isQuit(Landroid/os/Message;)Z
+PLcom/android/internal/util/StateMachine$SmHandler;->invokeExitMethods(Lcom/android/internal/util/StateMachine$SmHandler$StateInfo;)V
+PLcom/android/internal/util/StateMachine$SmHandler;->isQuit(Landroid/os/Message;)Z
+PLcom/android/internal/util/StateMachine$SmHandler;->moveDeferredMessageAtFrontOfQueue()V
HSPLcom/android/internal/util/StateMachine$SmHandler;->moveTempStateStackToStateStack()I
HSPLcom/android/internal/util/StateMachine$SmHandler;->performTransitions(Lcom/android/internal/util/State;Landroid/os/Message;)V
-HSPLcom/android/internal/util/StateMachine$SmHandler;->processMsg(Landroid/os/Message;)Lcom/android/internal/util/State;
+PLcom/android/internal/util/StateMachine$SmHandler;->processMsg(Landroid/os/Message;)Lcom/android/internal/util/State;
HSPLcom/android/internal/util/StateMachine$SmHandler;->setInitialState(Lcom/android/internal/util/State;)V
HSPLcom/android/internal/util/StateMachine$SmHandler;->setupInitialStateStack()V
+PLcom/android/internal/util/StateMachine$SmHandler;->setupTempStateStackWithStatesToEnter(Lcom/android/internal/util/State;)Lcom/android/internal/util/StateMachine$SmHandler$StateInfo;
+PLcom/android/internal/util/StateMachine$SmHandler;->transitionTo(Lcom/android/internal/util/IState;)V
HSPLcom/android/internal/util/StateMachine;-><init>(Ljava/lang/String;)V
+HSPLcom/android/internal/util/StateMachine;-><init>(Ljava/lang/String;Landroid/os/Handler;)V
+PLcom/android/internal/util/StateMachine;-><init>(Ljava/lang/String;Landroid/os/Looper;)V
HSPLcom/android/internal/util/StateMachine;->addState(Lcom/android/internal/util/State;)V
-HSPLcom/android/internal/util/StateMachine;->getLogRecString(Landroid/os/Message;)Ljava/lang/String;
+HSPLcom/android/internal/util/StateMachine;->addState(Lcom/android/internal/util/State;Lcom/android/internal/util/State;)V
+PLcom/android/internal/util/StateMachine;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/internal/util/StateMachine;->getCurrentState()Lcom/android/internal/util/IState;
+HSPLcom/android/internal/util/StateMachine;->getHandler()Landroid/os/Handler;
+PLcom/android/internal/util/StateMachine;->getLogRecCount()I
+PLcom/android/internal/util/StateMachine;->getLogRecSize()I
+PLcom/android/internal/util/StateMachine;->getLogRecString(Landroid/os/Message;)Ljava/lang/String;
+PLcom/android/internal/util/StateMachine;->getName()Ljava/lang/String;
HSPLcom/android/internal/util/StateMachine;->initStateMachine(Ljava/lang/String;Landroid/os/Looper;)V
-HSPLcom/android/internal/util/StateMachine;->obtainMessage(I)Landroid/os/Message;
-HSPLcom/android/internal/util/StateMachine;->onPostHandleMessage(Landroid/os/Message;)V
-HSPLcom/android/internal/util/StateMachine;->onPreHandleMessage(Landroid/os/Message;)V
+PLcom/android/internal/util/StateMachine;->obtainMessage(I)Landroid/os/Message;
+PLcom/android/internal/util/StateMachine;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
+PLcom/android/internal/util/StateMachine;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
+PLcom/android/internal/util/StateMachine;->onPostHandleMessage(Landroid/os/Message;)V
+PLcom/android/internal/util/StateMachine;->onPreHandleMessage(Landroid/os/Message;)V
HSPLcom/android/internal/util/StateMachine;->recordLogRec(Landroid/os/Message;)Z
-HSPLcom/android/internal/util/StateMachine;->sendMessage(I)V
+PLcom/android/internal/util/StateMachine;->sendMessage(I)V
+PLcom/android/internal/util/StateMachine;->sendMessage(IIILjava/lang/Object;)V
+PLcom/android/internal/util/StateMachine;->sendMessage(ILjava/lang/Object;)V
+PLcom/android/internal/util/StateMachine;->sendMessageAtFrontOfQueue(IIILjava/lang/Object;)V
HSPLcom/android/internal/util/StateMachine;->setInitialState(Lcom/android/internal/util/State;)V
+HSPLcom/android/internal/util/StateMachine;->setLogRecSize(I)V
HSPLcom/android/internal/util/StateMachine;->start()V
+PLcom/android/internal/util/StateMachine;->transitionTo(Lcom/android/internal/util/IState;)V
+PLcom/android/internal/util/StateMachine;->unhandledMessage(Landroid/os/Message;)V
HSPLcom/android/internal/util/SyncResultReceiver;-><init>(I)V
+PLcom/android/internal/util/SyncResultReceiver;->bundleFor(Landroid/os/Parcelable;)Landroid/os/Bundle;
+PLcom/android/internal/util/SyncResultReceiver;->bundleFor(Ljava/util/ArrayList;)Landroid/os/Bundle;
HSPLcom/android/internal/util/SyncResultReceiver;->getIntResult()I
+HPLcom/android/internal/util/SyncResultReceiver;->getOptionalExtraIntResult(I)I
+HSPLcom/android/internal/util/SyncResultReceiver;->getParcelableResult()Landroid/os/Parcelable;
HSPLcom/android/internal/util/SyncResultReceiver;->send(ILandroid/os/Bundle;)V
HSPLcom/android/internal/util/SyncResultReceiver;->waitResult()V
+HSPLcom/android/internal/util/TokenBucket;-><init>(II)V
+HSPLcom/android/internal/util/TokenBucket;-><init>(III)V
+PLcom/android/internal/util/TokenBucket;->fill()V
+PLcom/android/internal/util/TokenBucket;->get()Z
+PLcom/android/internal/util/TokenBucket;->get(I)I
+HSPLcom/android/internal/util/TokenBucket;->scaledTime()J
HSPLcom/android/internal/util/VirtualRefBasePtr;-><init>(J)V
HSPLcom/android/internal/util/VirtualRefBasePtr;->finalize()V
HSPLcom/android/internal/util/VirtualRefBasePtr;->get()J
HSPLcom/android/internal/util/VirtualRefBasePtr;->release()V
HSPLcom/android/internal/util/XmlUtils;->beginDocument(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)V
+HSPLcom/android/internal/util/XmlUtils;->convertValueToBoolean(Ljava/lang/CharSequence;Z)Z
+HSPLcom/android/internal/util/XmlUtils;->convertValueToInt(Ljava/lang/CharSequence;I)I
+HSPLcom/android/internal/util/XmlUtils;->nextElement(Lorg/xmlpull/v1/XmlPullParser;)V
HSPLcom/android/internal/util/XmlUtils;->nextElementWithin(Lorg/xmlpull/v1/XmlPullParser;I)Z
+PLcom/android/internal/util/XmlUtils;->readBitmapAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/graphics/Bitmap;
+HSPLcom/android/internal/util/XmlUtils;->readBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Z
+HSPLcom/android/internal/util/XmlUtils;->readBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
+PLcom/android/internal/util/XmlUtils;->readByteArrayAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)[B
+HSPLcom/android/internal/util/XmlUtils;->readIntAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)I
+HSPLcom/android/internal/util/XmlUtils;->readIntAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
+HSPLcom/android/internal/util/XmlUtils;->readLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)J
+HSPLcom/android/internal/util/XmlUtils;->readLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;J)J
HSPLcom/android/internal/util/XmlUtils;->readMapXml(Ljava/io/InputStream;)Ljava/util/HashMap;
+HSPLcom/android/internal/util/XmlUtils;->readStringAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/util/XmlUtils;->readThisArrayMapXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;)Landroid/util/ArrayMap;
HSPLcom/android/internal/util/XmlUtils;->readThisMapXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;)Ljava/util/HashMap;
HSPLcom/android/internal/util/XmlUtils;->readThisPrimitiveValueXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/Object;
HSPLcom/android/internal/util/XmlUtils;->readThisSetXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;Z)Ljava/util/HashSet;
+PLcom/android/internal/util/XmlUtils;->readThisStringArrayXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
HSPLcom/android/internal/util/XmlUtils;->readThisValueXml(Lorg/xmlpull/v1/XmlPullParser;[Ljava/lang/String;Lcom/android/internal/util/XmlUtils$ReadMapCallback;Z)Ljava/lang/Object;
+PLcom/android/internal/util/XmlUtils;->readUriAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/net/Uri;
HSPLcom/android/internal/util/XmlUtils;->readValueXml(Lorg/xmlpull/v1/XmlPullParser;[Ljava/lang/String;)Ljava/lang/Object;
HSPLcom/android/internal/util/XmlUtils;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/internal/util/XmlUtils;->writeBooleanAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Z)V
+HPLcom/android/internal/util/XmlUtils;->writeIntArrayXml([ILjava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/internal/util/XmlUtils;->writeIntAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;I)V
+HPLcom/android/internal/util/XmlUtils;->writeLongAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;J)V
HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/io/OutputStream;)V
HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V
HSPLcom/android/internal/util/XmlUtils;->writeMapXml(Ljava/util/Map;Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V
HSPLcom/android/internal/util/XmlUtils;->writeSetXml(Ljava/util/Set;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+HPLcom/android/internal/util/XmlUtils;->writeStringArrayXml([Ljava/lang/String;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/internal/util/XmlUtils;->writeStringAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Ljava/lang/CharSequence;)V
+HPLcom/android/internal/util/XmlUtils;->writeUriAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Landroid/net/Uri;)V
HSPLcom/android/internal/util/XmlUtils;->writeValueXml(Ljava/lang/Object;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V
+PLcom/android/internal/util/dump/DualDumpOutputStream$DumpField;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/internal/util/dump/DualDumpOutputStream$DumpField;-><init>(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/util/dump/DualDumpOutputStream$1;)V
+HPLcom/android/internal/util/dump/DualDumpOutputStream$DumpField;->print(Lcom/android/internal/util/IndentingPrintWriter;Z)V
+PLcom/android/internal/util/dump/DualDumpOutputStream$DumpObject;-><init>(Ljava/lang/String;)V
+PLcom/android/internal/util/dump/DualDumpOutputStream$DumpObject;-><init>(Ljava/lang/String;Lcom/android/internal/util/dump/DualDumpOutputStream$1;)V
+HPLcom/android/internal/util/dump/DualDumpOutputStream$DumpObject;->add(Ljava/lang/String;Lcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;)V
+HPLcom/android/internal/util/dump/DualDumpOutputStream$DumpObject;->print(Lcom/android/internal/util/IndentingPrintWriter;Z)V
+PLcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;-><init>(Ljava/lang/String;)V
+PLcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;-><init>(Ljava/lang/String;Lcom/android/internal/util/dump/DualDumpOutputStream$1;)V
+PLcom/android/internal/util/dump/DualDumpOutputStream;-><clinit>()V
+PLcom/android/internal/util/dump/DualDumpOutputStream;-><init>(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/internal/util/dump/DualDumpOutputStream;-><init>(Lcom/android/internal/util/IndentingPrintWriter;)V
+HPLcom/android/internal/util/dump/DualDumpOutputStream;->end(J)V
+PLcom/android/internal/util/dump/DualDumpOutputStream;->flush()V
+PLcom/android/internal/util/dump/DualDumpOutputStream;->isProto()Z
+HPLcom/android/internal/util/dump/DualDumpOutputStream;->start(Ljava/lang/String;J)J
+PLcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JI)V
+PLcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JJ)V
+HPLcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JLjava/lang/String;)V
+PLcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JZ)V
+PLcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;J[B)V
+PLcom/android/internal/util/dump/DualDumpOutputStream;->writeNested(Ljava/lang/String;[B)V
+PLcom/android/internal/util/dump/DumpUtils;->writeComponentName(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JLandroid/content/ComponentName;)V
+PLcom/android/internal/util/dump/DumpUtils;->writeStringIfNotNull(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JLjava/lang/String;)V
+HSPLcom/android/internal/util/function/pooled/OmniFunction;-><init>()V
+HPLcom/android/internal/util/function/pooled/OmniFunction;->accept(Ljava/lang/Object;)V
+HPLcom/android/internal/util/function/pooled/OmniFunction;->apply(Ljava/lang/Object;)Ljava/lang/Object;
HSPLcom/android/internal/util/function/pooled/OmniFunction;->run()V
+HPLcom/android/internal/util/function/pooled/OmniFunction;->test(Ljava/lang/Object;)Z
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->__()Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->__(Ljava/lang/Class;)Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;
+PLcom/android/internal/util/function/pooled/PooledLambda;->obtainConsumer(Lcom/android/internal/util/function/QuadConsumer;Ljava/lang/Object;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledConsumer;
+PLcom/android/internal/util/function/pooled/PooledLambda;->obtainConsumer(Lcom/android/internal/util/function/TriConsumer;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledConsumer;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainConsumer(Lcom/android/internal/util/function/TriConsumer;Ljava/lang/Object;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledConsumer;
+PLcom/android/internal/util/function/pooled/PooledLambda;->obtainConsumer(Ljava/util/function/BiConsumer;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledConsumer;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainConsumer(Ljava/util/function/BiConsumer;Ljava/lang/Object;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;)Lcom/android/internal/util/function/pooled/PooledConsumer;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainFunction(Lcom/android/internal/util/function/QuadFunction;Ljava/lang/Object;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledFunction;
+PLcom/android/internal/util/function/pooled/PooledLambda;->obtainFunction(Lcom/android/internal/util/function/TriFunction;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledFunction;
+HPLcom/android/internal/util/function/pooled/PooledLambda;->obtainFunction(Lcom/android/internal/util/function/TriFunction;Ljava/lang/Object;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledFunction;
+PLcom/android/internal/util/function/pooled/PooledLambda;->obtainFunction(Ljava/util/function/BiFunction;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledFunction;
+HPLcom/android/internal/util/function/pooled/PooledLambda;->obtainFunction(Ljava/util/function/BiFunction;Ljava/lang/Object;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;)Lcom/android/internal/util/function/pooled/PooledFunction;
+HPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/HeptConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/HexConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/NonaConsumer;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;)Landroid/os/Message;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/QuadConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/QuintConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Lcom/android/internal/util/function/TriConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Ljava/util/function/BiConsumer;Ljava/lang/Object;Ljava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainMessage(Ljava/util/function/Consumer;Ljava/lang/Object;)Landroid/os/Message;
+HSPLcom/android/internal/util/function/pooled/PooledLambda;->obtainPredicate(Ljava/util/function/BiPredicate;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledPredicate;
+PLcom/android/internal/util/function/pooled/PooledLambda;->obtainPredicate(Ljava/util/function/BiPredicate;Ljava/lang/Object;Lcom/android/internal/util/function/pooled/ArgumentPlaceholder;)Lcom/android/internal/util/function/pooled/PooledPredicate;
+PLcom/android/internal/util/function/pooled/PooledLambda;->obtainRunnable(Lcom/android/internal/util/function/QuadConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledRunnable;
+PLcom/android/internal/util/function/pooled/PooledLambda;->obtainRunnable(Lcom/android/internal/util/function/TriConsumer;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledRunnable;
+PLcom/android/internal/util/function/pooled/PooledLambda;->obtainRunnable(Ljava/util/function/BiConsumer;Ljava/lang/Object;Ljava/lang/Object;)Lcom/android/internal/util/function/pooled/PooledRunnable;
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;->decodeArgCount(I)I
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;->decodeReturnType(I)I
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;->encode(II)I
+PLcom/android/internal/util/function/pooled/PooledLambdaImpl$LambdaType;->toString(I)Ljava/lang/String;
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;-><init>()V
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->access$000(II)I
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->access$100(II)I
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->acquire(Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;)Lcom/android/internal/util/function/pooled/PooledLambdaImpl;
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->acquire(Lcom/android/internal/util/function/pooled/PooledLambdaImpl$Pool;Ljava/lang/Object;IIILjava/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;)Lcom/android/internal/util/function/pooled/PooledLambda;
@@ -8726,30 +32836,424 @@ HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->doInvoke()Ljava
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->doRecycle()V
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->fillInArg(Ljava/lang/Object;)Z
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->getFlags(I)I
+HPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->getFriendlyName(Ljava/lang/Object;)Ljava/lang/String;
+PLcom/android/internal/util/function/pooled/PooledLambdaImpl;->getFuncTypeAsString()Ljava/lang/String;
+HPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->getTraceName()Ljava/lang/String;
+PLcom/android/internal/util/function/pooled/PooledLambdaImpl;->hashCodeHex(Ljava/lang/Object;)Ljava/lang/String;
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->invoke(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/internal/util/function/pooled/PooledLambdaImpl;->isConstSupplier()Z
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->isInvocationArgAtIndex(I)Z
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->isRecycleOnUse()Z
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->isRecycled()Z
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->mask(II)I
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->popArg(I)Ljava/lang/Object;
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->recycle()V
+HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->recycleOnUse()Lcom/android/internal/util/function/pooled/OmniFunction;
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->recycleOnUse()Lcom/android/internal/util/function/pooled/PooledRunnable;
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->setFlags(II)V
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->setIfInBounds([Ljava/lang/Object;ILjava/lang/Object;)V
+PLcom/android/internal/util/function/pooled/PooledLambdaImpl;->toString()Ljava/lang/String;
HSPLcom/android/internal/util/function/pooled/PooledLambdaImpl;->unmask(II)I
+HPLcom/android/internal/view/ActionBarPolicy;-><init>(Landroid/content/Context;)V
+HPLcom/android/internal/view/ActionBarPolicy;->enableHomeButtonByDefault()Z
+HPLcom/android/internal/view/ActionBarPolicy;->get(Landroid/content/Context;)Lcom/android/internal/view/ActionBarPolicy;
+HPLcom/android/internal/view/ActionBarPolicy;->getMaxActionButtons()I
+HPLcom/android/internal/view/ActionBarPolicy;->hasEmbeddedTabs()Z
+PLcom/android/internal/view/AppearanceRegion$1;-><init>()V
+PLcom/android/internal/view/AppearanceRegion;-><clinit>()V
+HPLcom/android/internal/view/AppearanceRegion;-><init>(ILandroid/graphics/Rect;)V
+HPLcom/android/internal/view/AppearanceRegion;-><init>(Landroid/os/Parcel;)V
+HPLcom/android/internal/view/AppearanceRegion;->equals(Ljava/lang/Object;)Z
+HPLcom/android/internal/view/AppearanceRegion;->getAppearance()I
+HPLcom/android/internal/view/AppearanceRegion;->writeToParcel(Landroid/os/Parcel;I)V
+PLcom/android/internal/view/BaseIWindow;-><init>()V
+PLcom/android/internal/view/BaseIWindow;->closeSystemDialogs(Ljava/lang/String;)V
+PLcom/android/internal/view/BaseIWindow;->dispatchAppVisibility(Z)V
+HPLcom/android/internal/view/BaseIWindow;->dispatchWindowShown()V
+PLcom/android/internal/view/BaseIWindow;->insetsChanged(Landroid/view/InsetsState;)V
+PLcom/android/internal/view/BaseIWindow;->setSession(Landroid/view/IWindowSession;)V
+HPLcom/android/internal/view/BaseSurfaceHolder;->getCallbacks()[Landroid/view/SurfaceHolder$Callback;
+HPLcom/android/internal/view/BaseSurfaceHolder;->getRequestedFormat()I
+HPLcom/android/internal/view/BaseSurfaceHolder;->getRequestedHeight()I
+HPLcom/android/internal/view/BaseSurfaceHolder;->getRequestedType()I
+HPLcom/android/internal/view/BaseSurfaceHolder;->getRequestedWidth()I
+HPLcom/android/internal/view/BaseSurfaceHolder;->getSurface()Landroid/view/Surface;
+HPLcom/android/internal/view/BaseSurfaceHolder;->getSurfaceFrame()Landroid/graphics/Rect;
+HPLcom/android/internal/view/BaseSurfaceHolder;->setSurfaceFrameSize(II)V
+HPLcom/android/internal/view/BaseSurfaceHolder;->ungetCallbacks()V
+PLcom/android/internal/view/IInputConnectionWrapper$MyHandler;-><init>(Lcom/android/internal/view/IInputConnectionWrapper;Landroid/os/Looper;)V
+HPLcom/android/internal/view/IInputConnectionWrapper$MyHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/internal/view/IInputConnectionWrapper;-><init>(Landroid/os/Looper;Landroid/view/inputmethod/InputConnection;)V
+HPLcom/android/internal/view/IInputConnectionWrapper;->beginBatchEdit()V
+HPLcom/android/internal/view/IInputConnectionWrapper;->closeConnection()V
+HPLcom/android/internal/view/IInputConnectionWrapper;->commitText(Ljava/lang/CharSequence;I)V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->dispatchMessage(Landroid/os/Message;)V
+HPLcom/android/internal/view/IInputConnectionWrapper;->endBatchEdit()V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->executeMessage(Landroid/os/Message;)V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->finishComposingText()V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->getInputConnection()Landroid/view/inputmethod/InputConnection;
+HPLcom/android/internal/view/IInputConnectionWrapper;->getSelectedText(IILcom/android/internal/view/IInputContextCallback;)V
+HPLcom/android/internal/view/IInputConnectionWrapper;->getTextAfterCursor(IIILcom/android/internal/view/IInputContextCallback;)V
+HPLcom/android/internal/view/IInputConnectionWrapper;->getTextBeforeCursor(IIILcom/android/internal/view/IInputContextCallback;)V
+HSPLcom/android/internal/view/IInputConnectionWrapper;->isFinished()Z
+HSPLcom/android/internal/view/IInputConnectionWrapper;->obtainMessage(I)Landroid/os/Message;
+HPLcom/android/internal/view/IInputConnectionWrapper;->obtainMessageIISC(IIIILcom/android/internal/view/IInputContextCallback;)Landroid/os/Message;
+HPLcom/android/internal/view/IInputConnectionWrapper;->obtainMessageIO(IILjava/lang/Object;)Landroid/os/Message;
+HPLcom/android/internal/view/IInputConnectionWrapper;->obtainMessageISC(IIILcom/android/internal/view/IInputContextCallback;)Landroid/os/Message;
+PLcom/android/internal/view/IInputContext$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/view/IInputContext$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/view/IInputContext$Stub$Proxy;->beginBatchEdit()V
+HPLcom/android/internal/view/IInputContext$Stub$Proxy;->commitText(Ljava/lang/CharSequence;I)V
+HPLcom/android/internal/view/IInputContext$Stub$Proxy;->endBatchEdit()V
+HPLcom/android/internal/view/IInputContext$Stub$Proxy;->finishComposingText()V
+HPLcom/android/internal/view/IInputContext$Stub$Proxy;->getSelectedText(IILcom/android/internal/view/IInputContextCallback;)V
+HPLcom/android/internal/view/IInputContext$Stub$Proxy;->getTextAfterCursor(IIILcom/android/internal/view/IInputContextCallback;)V
+HPLcom/android/internal/view/IInputContext$Stub$Proxy;->getTextBeforeCursor(IIILcom/android/internal/view/IInputContextCallback;)V
+HPLcom/android/internal/view/IInputContext$Stub$Proxy;->sendKeyEvent(Landroid/view/KeyEvent;)V
+HPLcom/android/internal/view/IInputContext$Stub$Proxy;->setComposingRegion(II)V
+HPLcom/android/internal/view/IInputContext$Stub$Proxy;->setComposingText(Ljava/lang/CharSequence;I)V
+PLcom/android/internal/view/IInputContext$Stub;-><init>()V
HSPLcom/android/internal/view/IInputContext$Stub;->asBinder()Landroid/os/IBinder;
+HSPLcom/android/internal/view/IInputContext$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputContext;
+HPLcom/android/internal/view/IInputContext$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setSelectedText(Ljava/lang/CharSequence;I)V
+HPLcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setTextAfterCursor(Ljava/lang/CharSequence;I)V
+HPLcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setTextBeforeCursor(Ljava/lang/CharSequence;I)V
+HPLcom/android/internal/view/IInputContextCallback$Stub;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/view/IInputContextCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/view/IInputMethod$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/view/IInputMethod$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/view/IInputMethod$Stub$Proxy;->bindInput(Landroid/view/inputmethod/InputBinding;)V
+PLcom/android/internal/view/IInputMethod$Stub$Proxy;->createSession(Landroid/view/InputChannel;Lcom/android/internal/view/IInputSessionCallback;)V
+PLcom/android/internal/view/IInputMethod$Stub$Proxy;->hideSoftInput(ILandroid/os/ResultReceiver;)V
+PLcom/android/internal/view/IInputMethod$Stub$Proxy;->initializeInternal(Landroid/os/IBinder;ILcom/android/internal/inputmethod/IInputMethodPrivilegedOperations;)V
+PLcom/android/internal/view/IInputMethod$Stub$Proxy;->setSessionEnabled(Lcom/android/internal/view/IInputMethodSession;Z)V
+PLcom/android/internal/view/IInputMethod$Stub$Proxy;->showSoftInput(ILandroid/os/ResultReceiver;)V
+PLcom/android/internal/view/IInputMethod$Stub$Proxy;->startInput(Landroid/os/IBinder;Lcom/android/internal/view/IInputContext;ILandroid/view/inputmethod/EditorInfo;ZZ)V
+PLcom/android/internal/view/IInputMethod$Stub$Proxy;->unbindInput()V
+PLcom/android/internal/view/IInputMethod$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethod;
+HSPLcom/android/internal/view/IInputMethod$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/view/IInputMethodClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/view/IInputMethodClient$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/view/IInputMethodClient$Stub$Proxy;->onBindMethod(Lcom/android/internal/view/InputBindResult;)V
+PLcom/android/internal/view/IInputMethodClient$Stub$Proxy;->onUnbindMethod(II)V
+PLcom/android/internal/view/IInputMethodClient$Stub$Proxy;->reportFullscreenMode(Z)V
+PLcom/android/internal/view/IInputMethodClient$Stub$Proxy;->setActive(ZZ)V
+PLcom/android/internal/view/IInputMethodClient$Stub;-><init>()V
HSPLcom/android/internal/view/IInputMethodClient$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/view/IInputMethodClient$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodClient;
+HSPLcom/android/internal/view/IInputMethodClient$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->addClient(Lcom/android/internal/view/IInputMethodClient;Lcom/android/internal/view/IInputContext;I)V
HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getEnabledInputMethodList(I)Ljava/util/List;
+HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->getInputMethodList(I)Ljava/util/List;
+HPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->hideSoftInput(Lcom/android/internal/view/IInputMethodClient;ILandroid/os/ResultReceiver;)Z
+HPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->showSoftInput(Lcom/android/internal/view/IInputMethodClient;ILandroid/os/ResultReceiver;)Z
+HSPLcom/android/internal/view/IInputMethodManager$Stub$Proxy;->startInputOrWindowGainedFocus(ILcom/android/internal/view/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/view/IInputContext;II)Lcom/android/internal/view/InputBindResult;
+HSPLcom/android/internal/view/IInputMethodManager$Stub;-><init>()V
+PLcom/android/internal/view/IInputMethodManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodManager;
+PLcom/android/internal/view/IInputMethodManager$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+PLcom/android/internal/view/IInputMethodManager$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+PLcom/android/internal/view/IInputMethodSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/view/IInputMethodSession$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+HPLcom/android/internal/view/IInputMethodSession$Stub$Proxy;->displayCompletions([Landroid/view/inputmethod/CompletionInfo;)V
+PLcom/android/internal/view/IInputMethodSession$Stub$Proxy;->finishSession()V
+HPLcom/android/internal/view/IInputMethodSession$Stub$Proxy;->updateSelection(IIIIII)V
+HSPLcom/android/internal/view/IInputMethodSession$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/view/IInputMethodSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodSession;
+HPLcom/android/internal/view/IInputMethodSession$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/view/IInputSessionCallback$Stub$Proxy;->sessionCreated(Lcom/android/internal/view/IInputMethodSession;)V
+PLcom/android/internal/view/IInputSessionCallback$Stub;-><init>()V
+PLcom/android/internal/view/IInputSessionCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/view/IInputSessionCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/view/InputBindResult$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/view/InputBindResult;
+HSPLcom/android/internal/view/InputBindResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLcom/android/internal/view/InputBindResult;-><init>(ILcom/android/internal/view/IInputMethodSession;Landroid/view/InputChannel;Ljava/lang/String;ILandroid/graphics/Matrix;)V
+HSPLcom/android/internal/view/InputBindResult;-><init>(Landroid/os/Parcel;)V
+HSPLcom/android/internal/view/InputBindResult;->getActivityViewToScreenMatrix()Landroid/graphics/Matrix;
+PLcom/android/internal/view/InputBindResult;->writeToParcel(Landroid/os/Parcel;I)V
+HPLcom/android/internal/view/InputConnectionWrapper$InputContextCallback;-><clinit>()V
+HPLcom/android/internal/view/InputConnectionWrapper$InputContextCallback;-><init>()V
+HPLcom/android/internal/view/InputConnectionWrapper$InputContextCallback;->dispose()V
+HPLcom/android/internal/view/InputConnectionWrapper$InputContextCallback;->getInstance()Lcom/android/internal/view/InputConnectionWrapper$InputContextCallback;
+HPLcom/android/internal/view/InputConnectionWrapper$InputContextCallback;->setSelectedText(Ljava/lang/CharSequence;I)V
+HPLcom/android/internal/view/InputConnectionWrapper$InputContextCallback;->setTextAfterCursor(Ljava/lang/CharSequence;I)V
+HPLcom/android/internal/view/InputConnectionWrapper$InputContextCallback;->setTextBeforeCursor(Ljava/lang/CharSequence;I)V
+HPLcom/android/internal/view/InputConnectionWrapper$InputContextCallback;->waitForResultLocked()V
+HPLcom/android/internal/view/InputConnectionWrapper;->beginBatchEdit()Z
+HPLcom/android/internal/view/InputConnectionWrapper;->commitText(Ljava/lang/CharSequence;I)Z
+HPLcom/android/internal/view/InputConnectionWrapper;->endBatchEdit()Z
+HPLcom/android/internal/view/InputConnectionWrapper;->finishComposingText()Z
+HPLcom/android/internal/view/InputConnectionWrapper;->getSelectedText(I)Ljava/lang/CharSequence;
+HPLcom/android/internal/view/InputConnectionWrapper;->getTextAfterCursor(II)Ljava/lang/CharSequence;
+HPLcom/android/internal/view/InputConnectionWrapper;->getTextBeforeCursor(II)Ljava/lang/CharSequence;
+HPLcom/android/internal/view/InputConnectionWrapper;->isMethodMissing(I)Z
+HPLcom/android/internal/view/InputConnectionWrapper;->notifyUserActionIfNecessary()V
+HPLcom/android/internal/view/InputConnectionWrapper;->sendKeyEvent(Landroid/view/KeyEvent;)Z
+HPLcom/android/internal/view/InputConnectionWrapper;->setComposingRegion(II)Z
+HPLcom/android/internal/view/InputConnectionWrapper;->setComposingText(Ljava/lang/CharSequence;I)Z
+HPLcom/android/internal/view/RotationPolicy$1;->run()V
+HPLcom/android/internal/view/RotationPolicy$RotationPolicyListener;-><init>()V
+HSPLcom/android/internal/view/RotationPolicy;->isRotationLockToggleVisible(Landroid/content/Context;)Z
+HPLcom/android/internal/view/RotationPolicy;->isRotationLocked(Landroid/content/Context;)Z
+HSPLcom/android/internal/view/RotationPolicy;->isRotationSupported(Landroid/content/Context;)Z
+HPLcom/android/internal/view/RotationPolicy;->setRotationLockAtAngle(Landroid/content/Context;ZI)V
+HPLcom/android/internal/view/SurfaceCallbackHelper$1;-><init>(Lcom/android/internal/view/SurfaceCallbackHelper;)V
+HPLcom/android/internal/view/SurfaceCallbackHelper$1;->run()V
+HPLcom/android/internal/view/SurfaceCallbackHelper;-><init>(Ljava/lang/Runnable;)V
+HPLcom/android/internal/view/SurfaceCallbackHelper;->dispatchSurfaceRedrawNeededAsync(Landroid/view/SurfaceHolder;[Landroid/view/SurfaceHolder$Callback;)V
+HSPLcom/android/internal/view/WindowManagerPolicyThread;->set(Ljava/lang/Thread;Landroid/os/Looper;)V
+HPLcom/android/internal/view/animation/FallbackLUTInterpolator;->createLUT(Landroid/animation/TimeInterpolator;J)[F
+PLcom/android/internal/view/menu/ActionMenuItem;-><init>(Landroid/content/Context;IIIILjava/lang/CharSequence;)V
+HPLcom/android/internal/view/menu/BaseMenuPresenter;->setCallback(Lcom/android/internal/view/menu/MenuPresenter$Callback;)V
+HPLcom/android/internal/view/menu/BaseMenuPresenter;->setId(I)V
+HPLcom/android/internal/view/menu/BaseMenuPresenter;->updateMenuView(Z)V
+HPLcom/android/internal/view/menu/MenuBuilder;-><init>(Landroid/content/Context;)V
+HPLcom/android/internal/view/menu/MenuBuilder;->addMenuPresenter(Lcom/android/internal/view/menu/MenuPresenter;Landroid/content/Context;)V
+HPLcom/android/internal/view/menu/MenuBuilder;->flagActionItems()V
+HPLcom/android/internal/view/menu/MenuBuilder;->getActionItems()Ljava/util/ArrayList;
+HPLcom/android/internal/view/menu/MenuBuilder;->getNonActionItems()Ljava/util/ArrayList;
+HPLcom/android/internal/view/menu/MenuBuilder;->getVisibleItems()Ljava/util/ArrayList;
+HPLcom/android/internal/view/menu/MenuBuilder;->hasVisibleItems()Z
+HPLcom/android/internal/view/menu/MenuBuilder;->removeMenuPresenter(Lcom/android/internal/view/menu/MenuPresenter;)V
+HPLcom/android/internal/view/menu/MenuBuilder;->setCallback(Lcom/android/internal/view/menu/MenuBuilder$Callback;)V
+HPLcom/android/internal/view/menu/MenuBuilder;->size()I
+HPLcom/android/internal/view/menu/MenuBuilder;->stopDispatchingItemsChanged()V
+HPLcom/android/internal/view/menu/MenuItemImpl;->isVisible()Z
+PLcom/android/internal/widget/AbsActionBarView$VisibilityAnimListener;-><init>(Lcom/android/internal/widget/AbsActionBarView;)V
+PLcom/android/internal/widget/AbsActionBarView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+PLcom/android/internal/widget/AbsActionBarView;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+PLcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable;-><init>(Lcom/android/internal/widget/ActionBarContainer;)V
+PLcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable;-><init>(Lcom/android/internal/widget/ActionBarContainer;Lcom/android/internal/widget/ActionBarContainer$1;)V
+PLcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable;->draw(Landroid/graphics/Canvas;)V
+PLcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable;->getOpacity()I
+PLcom/android/internal/widget/ActionBarContainer$ActionBarBackgroundDrawable;->getOutline(Landroid/graphics/Outline;)V
+PLcom/android/internal/widget/ActionBarContainer;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+PLcom/android/internal/widget/ActionBarContainer;->access$100(Lcom/android/internal/widget/ActionBarContainer;)Z
+PLcom/android/internal/widget/ActionBarContainer;->access$300(Lcom/android/internal/widget/ActionBarContainer;)Landroid/graphics/drawable/Drawable;
+PLcom/android/internal/widget/ActionBarContainer;->access$400(Lcom/android/internal/widget/ActionBarContainer;)Landroid/graphics/drawable/Drawable;
+PLcom/android/internal/widget/ActionBarContainer;->access$500(Lcom/android/internal/widget/ActionBarContainer;)Z
+PLcom/android/internal/widget/ActionBarContainer;->access$600(Lcom/android/internal/widget/ActionBarContainer;)Landroid/view/View;
+PLcom/android/internal/widget/ActionBarContainer;->access$700(Landroid/view/View;)Z
+PLcom/android/internal/widget/ActionBarContainer;->drawableStateChanged()V
+PLcom/android/internal/widget/ActionBarContainer;->isCollapsed(Landroid/view/View;)Z
+PLcom/android/internal/widget/ActionBarContainer;->jumpDrawablesToCurrentState()V
+PLcom/android/internal/widget/ActionBarContainer;->onFinishInflate()V
+PLcom/android/internal/widget/ActionBarContainer;->onLayout(ZIIII)V
+PLcom/android/internal/widget/ActionBarContainer;->onMeasure(II)V
+PLcom/android/internal/widget/ActionBarContainer;->onResolveDrawables(I)V
+HPLcom/android/internal/widget/ActionBarContainer;->setTabContainer(Lcom/android/internal/widget/ScrollingTabContainerView;)V
+HPLcom/android/internal/widget/ActionBarContainer;->setTransitioning(Z)V
+HPLcom/android/internal/widget/ActionBarContainer;->setVisibility(I)V
+PLcom/android/internal/widget/ActionBarContainer;->verifyDrawable(Landroid/graphics/drawable/Drawable;)Z
+PLcom/android/internal/widget/ActionBarContextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+PLcom/android/internal/widget/ActionBarContextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
+PLcom/android/internal/widget/ActionBarContextView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
+PLcom/android/internal/widget/ActionBarContextView;->onDetachedFromWindow()V
+PLcom/android/internal/widget/ActionBarContextView;->setContentHeight(I)V
+PLcom/android/internal/widget/ActionBarOverlayLayout$1;-><init>(Lcom/android/internal/widget/ActionBarOverlayLayout;)V
+PLcom/android/internal/widget/ActionBarOverlayLayout$2;-><init>(Lcom/android/internal/widget/ActionBarOverlayLayout;)V
+PLcom/android/internal/widget/ActionBarOverlayLayout$3;-><init>(Lcom/android/internal/widget/ActionBarOverlayLayout;)V
+PLcom/android/internal/widget/ActionBarOverlayLayout$4;-><init>(Lcom/android/internal/widget/ActionBarOverlayLayout;)V
+PLcom/android/internal/widget/ActionBarOverlayLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+PLcom/android/internal/widget/ActionBarOverlayLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
+PLcom/android/internal/widget/ActionBarOverlayLayout;->applyInsets(Landroid/view/View;Landroid/graphics/Rect;ZZZZ)Z
+PLcom/android/internal/widget/ActionBarOverlayLayout;->checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z
+PLcom/android/internal/widget/ActionBarOverlayLayout;->dismissPopups()V
+PLcom/android/internal/widget/ActionBarOverlayLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;
+PLcom/android/internal/widget/ActionBarOverlayLayout;->generateLayoutParams(Landroid/util/AttributeSet;)Lcom/android/internal/widget/ActionBarOverlayLayout$LayoutParams;
+PLcom/android/internal/widget/ActionBarOverlayLayout;->getDecorToolbar(Landroid/view/View;)Lcom/android/internal/widget/DecorToolbar;
+PLcom/android/internal/widget/ActionBarOverlayLayout;->getTitle()Ljava/lang/CharSequence;
+PLcom/android/internal/widget/ActionBarOverlayLayout;->haltActionBarHideOffsetAnimations()V
+PLcom/android/internal/widget/ActionBarOverlayLayout;->hasIcon()Z
+HPLcom/android/internal/widget/ActionBarOverlayLayout;->hasLogo()Z
+PLcom/android/internal/widget/ActionBarOverlayLayout;->init(Landroid/content/Context;)V
+PLcom/android/internal/widget/ActionBarOverlayLayout;->initFeature(I)V
+HPLcom/android/internal/widget/ActionBarOverlayLayout;->isOverflowMenuShowing()Z
+PLcom/android/internal/widget/ActionBarOverlayLayout;->onApplyWindowInsets(Landroid/view/WindowInsets;)Landroid/view/WindowInsets;
+PLcom/android/internal/widget/ActionBarOverlayLayout;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+PLcom/android/internal/widget/ActionBarOverlayLayout;->onDetachedFromWindow()V
+PLcom/android/internal/widget/ActionBarOverlayLayout;->onLayout(ZIIII)V
+PLcom/android/internal/widget/ActionBarOverlayLayout;->onMeasure(II)V
+HPLcom/android/internal/widget/ActionBarOverlayLayout;->onWindowSystemUiVisibilityChanged(I)V
+PLcom/android/internal/widget/ActionBarOverlayLayout;->onWindowVisibilityChanged(I)V
+PLcom/android/internal/widget/ActionBarOverlayLayout;->pullChildren()V
+HPLcom/android/internal/widget/ActionBarOverlayLayout;->saveToolbarHierarchyState(Landroid/util/SparseArray;)V
+HPLcom/android/internal/widget/ActionBarOverlayLayout;->setActionBarVisibilityCallback(Lcom/android/internal/widget/ActionBarOverlayLayout$ActionBarVisibilityCallback;)V
+HPLcom/android/internal/widget/ActionBarOverlayLayout;->setHasNonEmbeddedTabs(Z)V
+PLcom/android/internal/widget/ActionBarOverlayLayout;->setIcon(I)V
+HPLcom/android/internal/widget/ActionBarOverlayLayout;->setIcon(Landroid/graphics/drawable/Drawable;)V
+HPLcom/android/internal/widget/ActionBarOverlayLayout;->setLogo(I)V
+HPLcom/android/internal/widget/ActionBarOverlayLayout;->setMenu(Landroid/view/Menu;Lcom/android/internal/view/menu/MenuPresenter$Callback;)V
+HPLcom/android/internal/widget/ActionBarOverlayLayout;->setMenuPrepared()V
+PLcom/android/internal/widget/ActionBarOverlayLayout;->setUiOptions(I)V
+PLcom/android/internal/widget/ActionBarOverlayLayout;->setWindowCallback(Landroid/view/Window$Callback;)V
+PLcom/android/internal/widget/ActionBarOverlayLayout;->setWindowTitle(Ljava/lang/CharSequence;)V
+PLcom/android/internal/widget/BackgroundFallback;-><init>()V
HSPLcom/android/internal/widget/BackgroundFallback;->draw(Landroid/view/ViewGroup;Landroid/view/ViewGroup;Landroid/graphics/Canvas;Landroid/view/View;Landroid/view/View;Landroid/view/View;)V
HSPLcom/android/internal/widget/BackgroundFallback;->hasFallback()Z
+PLcom/android/internal/widget/BackgroundFallback;->isOpaque(Landroid/graphics/drawable/Drawable;)Z
+HSPLcom/android/internal/widget/BackgroundFallback;->setDrawable(Landroid/graphics/drawable/Drawable;)V
+HPLcom/android/internal/widget/EditableInputConnection;->beginBatchEdit()Z
+HPLcom/android/internal/widget/EditableInputConnection;->closeConnection()V
+HPLcom/android/internal/widget/EditableInputConnection;->commitText(Ljava/lang/CharSequence;I)Z
+HPLcom/android/internal/widget/EditableInputConnection;->endBatchEdit()Z
+HPLcom/android/internal/widget/EditableInputConnection;->getEditable()Landroid/text/Editable;
+PLcom/android/internal/widget/ICheckCredentialProgressCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+PLcom/android/internal/widget/ICheckCredentialProgressCallback$Stub$Proxy;->onCredentialVerified()V
+HPLcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;-><init>()V
+HPLcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ICheckCredentialProgressCallback;
+HPLcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->checkCredential(Lcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/internal/widget/VerifyCredentialResponse;
+HPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->checkVoldPassword(I)Z
+PLcom/android/internal/widget/ILockSettings$Stub$Proxy;->generateKey(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getBoolean(Ljava/lang/String;ZI)Z
+HSPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getCredentialType(I)I
+HPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getKey(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getKeyChainSnapshot()Landroid/security/keystore/recovery/KeyChainSnapshot;
+PLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getRecoverySecretTypes()[I
+HPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getRecoveryStatus()Ljava/util/Map;
+HPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getSeparateProfileChallengeEnabled(I)Z
+HPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+HPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->getStrongAuthForUser(I)I
+PLcom/android/internal/widget/ILockSettings$Stub$Proxy;->initRecoveryServiceWithSigFile(Ljava/lang/String;[B[B)V
+HPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->setBoolean(Ljava/lang/String;ZI)V
+PLcom/android/internal/widget/ILockSettings$Stub$Proxy;->setRecoverySecretTypes([I)V
+HPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->setRecoveryStatus(Ljava/lang/String;I)V
+PLcom/android/internal/widget/ILockSettings$Stub$Proxy;->setServerParams([B)V
+PLcom/android/internal/widget/ILockSettings$Stub$Proxy;->setSnapshotCreatedPendingIntent(Landroid/app/PendingIntent;)V
+HPLcom/android/internal/widget/ILockSettings$Stub$Proxy;->userPresent(I)V
+HSPLcom/android/internal/widget/ILockSettings$Stub;-><init>()V
HSPLcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
+PLcom/android/internal/widget/ILockSettings$Stub;->getDefaultTransactionName(I)Ljava/lang/String;
+HSPLcom/android/internal/widget/ILockSettings$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;-><init>(Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;)V
+PLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$1;->onStrongAuthRequiredChanged(II)V
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$H;-><init>(Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;Landroid/os/Looper;)V
+PLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$H;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;-><init>(Landroid/content/Context;)V
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+PLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->access$100(Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;)Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker$H;
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->getDefaultFlags(Landroid/content/Context;)I
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->getStrongAuthForUser(I)I
+PLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->handleStrongAuthRequiredChanged(II)V
+HPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->isBiometricAllowedForUser(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->isTrustAllowedForUser(I)Z
+PLcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;->onStrongAuthRequiredChanged(I)V
HSPLcom/android/internal/widget/LockPatternUtils;-><init>(Landroid/content/Context;)V
+HPLcom/android/internal/widget/LockPatternUtils;->access$000(Lcom/android/internal/widget/LockPatternUtils;)Landroid/os/Handler;
+HPLcom/android/internal/widget/LockPatternUtils;->checkCredential(Lcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Z
+HPLcom/android/internal/widget/LockPatternUtils;->checkVoldPassword(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->credentialTypeToPasswordQuality(I)I
+HSPLcom/android/internal/widget/LockPatternUtils;->frpCredentialEnabled(Landroid/content/Context;)Z
+HPLcom/android/internal/widget/LockPatternUtils;->getActivePasswordQuality(I)I
+PLcom/android/internal/widget/LockPatternUtils;->getBoolean(Ljava/lang/String;ZI)Z
HSPLcom/android/internal/widget/LockPatternUtils;->getCredentialTypeForUser(I)I
-PLcom/android/internal/widget/LockPatternUtils;->getDevicePolicyManager()Landroid/app/admin/DevicePolicyManager;
+HPLcom/android/internal/widget/LockPatternUtils;->getCurrentFailedPasswordAttempts(I)I
+HPLcom/android/internal/widget/LockPatternUtils;->getDeviceOwnerInfo()Ljava/lang/String;
+HSPLcom/android/internal/widget/LockPatternUtils;->getDevicePolicyManager()Landroid/app/admin/DevicePolicyManager;
+HSPLcom/android/internal/widget/LockPatternUtils;->getEnabledTrustAgents(I)Ljava/util/List;
+HSPLcom/android/internal/widget/LockPatternUtils;->getKeyguardStoredPasswordQuality(I)I
HSPLcom/android/internal/widget/LockPatternUtils;->getLockSettings()Lcom/android/internal/widget/ILockSettings;
+HPLcom/android/internal/widget/LockPatternUtils;->getLockoutAttemptDeadline(I)J
+PLcom/android/internal/widget/LockPatternUtils;->getLong(Ljava/lang/String;JI)J
+PLcom/android/internal/widget/LockPatternUtils;->getOwnerInfo(I)Ljava/lang/String;
+PLcom/android/internal/widget/LockPatternUtils;->getPowerButtonInstantlyLocks(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->getString(Ljava/lang/String;I)Ljava/lang/String;
+HPLcom/android/internal/widget/LockPatternUtils;->getStrongAuthForUser(I)I
+HPLcom/android/internal/widget/LockPatternUtils;->getTrustManager()Landroid/app/trust/TrustManager;
HSPLcom/android/internal/widget/LockPatternUtils;->getUserManager()Landroid/os/UserManager;
+PLcom/android/internal/widget/LockPatternUtils;->hasSecureLockScreen()Z
+HSPLcom/android/internal/widget/LockPatternUtils;->hasSeparateChallenge(I)Z
+PLcom/android/internal/widget/LockPatternUtils;->isLockPatternEnabled(I)Z
+HPLcom/android/internal/widget/LockPatternUtils;->isLockScreenDisabled(I)Z
HSPLcom/android/internal/widget/LockPatternUtils;->isManagedProfile(I)Z
+HPLcom/android/internal/widget/LockPatternUtils;->isManagedProfileWithUnifiedChallenge(I)Z
+PLcom/android/internal/widget/LockPatternUtils;->isOwnerInfoEnabled(I)Z
+PLcom/android/internal/widget/LockPatternUtils;->isPowerButtonInstantlyLocksEverChosen(I)Z
HSPLcom/android/internal/widget/LockPatternUtils;->isSecure(I)Z
-PLcom/android/internal/widget/LockscreenCredential$1;-><init>()V
-PLcom/android/internal/widget/LockscreenCredential;-><clinit>()V
-PLcom/android/internal/widget/LockscreenCredential;-><init>(I[B)V
+HSPLcom/android/internal/widget/LockPatternUtils;->isSeparateProfileChallengeAllowed(I)Z
+HSPLcom/android/internal/widget/LockPatternUtils;->isSeparateProfileChallengeEnabled(I)Z
+PLcom/android/internal/widget/LockPatternUtils;->isSyntheticPasswordEnabled()Z
+HPLcom/android/internal/widget/LockPatternUtils;->isTactileFeedbackEnabled()Z
+HSPLcom/android/internal/widget/LockPatternUtils;->isTrustUsuallyManaged(I)Z
+HPLcom/android/internal/widget/LockPatternUtils;->isUserInLockdown(I)Z
+PLcom/android/internal/widget/LockPatternUtils;->isVisiblePatternEnabled(I)Z
+PLcom/android/internal/widget/LockPatternUtils;->isVisiblePatternEverChosen(I)Z
+HPLcom/android/internal/widget/LockPatternUtils;->patternToByteArray(Ljava/util/List;)[B
+HSPLcom/android/internal/widget/LockPatternUtils;->registerStrongAuthTracker(Lcom/android/internal/widget/LockPatternUtils$StrongAuthTracker;)V
+HPLcom/android/internal/widget/LockPatternUtils;->reportFailedPasswordAttempt(I)V
+HPLcom/android/internal/widget/LockPatternUtils;->reportSuccessfulPasswordAttempt(I)V
+HPLcom/android/internal/widget/LockPatternUtils;->throwIfCalledOnMainThread()V
+HPLcom/android/internal/widget/LockPatternUtils;->userPresent(I)V
+HPLcom/android/internal/widget/LockPatternUtils;->wrapCallback(Lcom/android/internal/widget/LockPatternUtils$CheckCredentialProgressCallback;)Lcom/android/internal/widget/ICheckCredentialProgressCallback;
+HSPLcom/android/internal/widget/LockSettingsInternal;-><init>()V
+HSPLcom/android/internal/widget/LockscreenCredential$1;-><init>()V
+PLcom/android/internal/widget/LockscreenCredential$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/widget/LockscreenCredential;
+PLcom/android/internal/widget/LockscreenCredential$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLcom/android/internal/widget/LockscreenCredential;-><clinit>()V
+HSPLcom/android/internal/widget/LockscreenCredential;-><init>(I[B)V
+PLcom/android/internal/widget/LockscreenCredential;-><init>(I[BLcom/android/internal/widget/LockscreenCredential$1;)V
+PLcom/android/internal/widget/LockscreenCredential;->checkAgainstStoredType(I)Z
+PLcom/android/internal/widget/LockscreenCredential;->createManagedPassword([B)Lcom/android/internal/widget/LockscreenCredential;
+HSPLcom/android/internal/widget/LockscreenCredential;->createNone()Lcom/android/internal/widget/LockscreenCredential;
+HPLcom/android/internal/widget/LockscreenCredential;->createPattern(Ljava/util/List;)Lcom/android/internal/widget/LockscreenCredential;
+HPLcom/android/internal/widget/LockscreenCredential;->duplicate()Lcom/android/internal/widget/LockscreenCredential;
+PLcom/android/internal/widget/LockscreenCredential;->ensureNotZeroized()V
+PLcom/android/internal/widget/LockscreenCredential;->getCredential()[B
+PLcom/android/internal/widget/LockscreenCredential;->getType()I
+PLcom/android/internal/widget/LockscreenCredential;->isNone()Z
+PLcom/android/internal/widget/LockscreenCredential;->isPassword()Z
+PLcom/android/internal/widget/LockscreenCredential;->isPattern()Z
+PLcom/android/internal/widget/LockscreenCredential;->isPin()Z
+HPLcom/android/internal/widget/LockscreenCredential;->writeToParcel(Landroid/os/Parcel;I)V
+HPLcom/android/internal/widget/LockscreenCredential;->zeroize()V
+PLcom/android/internal/widget/ToolbarWidgetWrapper$1;-><init>(Lcom/android/internal/widget/ToolbarWidgetWrapper;)V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;-><init>(Landroid/widget/Toolbar;Z)V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;-><init>(Landroid/widget/Toolbar;ZI)V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->access$000(Lcom/android/internal/widget/ToolbarWidgetWrapper;)Landroid/widget/Toolbar;
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->access$100(Lcom/android/internal/widget/ToolbarWidgetWrapper;)Ljava/lang/CharSequence;
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->dismissPopupMenus()V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->getContext()Landroid/content/Context;
+HPLcom/android/internal/widget/ToolbarWidgetWrapper;->getDisplayOptions()I
+HPLcom/android/internal/widget/ToolbarWidgetWrapper;->getNavigationMode()I
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->getTitle()Ljava/lang/CharSequence;
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->hasIcon()Z
+HPLcom/android/internal/widget/ToolbarWidgetWrapper;->hasLogo()Z
+HPLcom/android/internal/widget/ToolbarWidgetWrapper;->isOverflowMenuShowing()Z
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->isSplit()Z
+HPLcom/android/internal/widget/ToolbarWidgetWrapper;->saveHierarchyState(Landroid/util/SparseArray;)V
+HPLcom/android/internal/widget/ToolbarWidgetWrapper;->setCollapsible(Z)V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->setDefaultNavigationContentDescription(I)V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->setDisplayOptions(I)V
+HPLcom/android/internal/widget/ToolbarWidgetWrapper;->setEmbeddedTabView(Lcom/android/internal/widget/ScrollingTabContainerView;)V
+HPLcom/android/internal/widget/ToolbarWidgetWrapper;->setHomeButtonEnabled(Z)V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->setIcon(I)V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->setIcon(Landroid/graphics/drawable/Drawable;)V
+HPLcom/android/internal/widget/ToolbarWidgetWrapper;->setLogo(I)V
+HPLcom/android/internal/widget/ToolbarWidgetWrapper;->setLogo(Landroid/graphics/drawable/Drawable;)V
+HPLcom/android/internal/widget/ToolbarWidgetWrapper;->setMenu(Landroid/view/Menu;Lcom/android/internal/view/menu/MenuPresenter$Callback;)V
+HPLcom/android/internal/widget/ToolbarWidgetWrapper;->setMenuPrepared()V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->setNavigationIcon(Landroid/graphics/drawable/Drawable;)V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->setTitleInt(Ljava/lang/CharSequence;)V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->setWindowCallback(Landroid/view/Window$Callback;)V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->setWindowTitle(Ljava/lang/CharSequence;)V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->updateNavigationIcon()V
+PLcom/android/internal/widget/ToolbarWidgetWrapper;->updateToolbarLogo()V
+PLcom/android/internal/widget/VerifyCredentialResponse$1;-><init>()V
+HPLcom/android/internal/widget/VerifyCredentialResponse$1;->createFromParcel(Landroid/os/Parcel;)Lcom/android/internal/widget/VerifyCredentialResponse;
+HPLcom/android/internal/widget/VerifyCredentialResponse$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLcom/android/internal/widget/VerifyCredentialResponse;-><clinit>()V
+PLcom/android/internal/widget/VerifyCredentialResponse;-><init>()V
+PLcom/android/internal/widget/VerifyCredentialResponse;-><init>(II[B)V
+HPLcom/android/internal/widget/VerifyCredentialResponse;-><init>(II[BLcom/android/internal/widget/VerifyCredentialResponse$1;)V
+PLcom/android/internal/widget/VerifyCredentialResponse;-><init>([B)V
+HPLcom/android/internal/widget/VerifyCredentialResponse;->access$200(Lcom/android/internal/widget/VerifyCredentialResponse;[B)V
+PLcom/android/internal/widget/VerifyCredentialResponse;->getPayload()[B
+PLcom/android/internal/widget/VerifyCredentialResponse;->getResponseCode()I
+HPLcom/android/internal/widget/VerifyCredentialResponse;->setPayload([B)V
+PLcom/android/internal/widget/VerifyCredentialResponse;->writeToParcel(Landroid/os/Parcel;I)V
HSPLcom/android/okhttp/Address;-><init>(Ljava/lang/String;ILcom/android/okhttp/Dns;Ljavax/net/SocketFactory;Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/HostnameVerifier;Lcom/android/okhttp/CertificatePinner;Lcom/android/okhttp/Authenticator;Ljava/net/Proxy;Ljava/util/List;Ljava/util/List;Ljava/net/ProxySelector;)V
HSPLcom/android/okhttp/Address;->equals(Ljava/lang/Object;)Z
HSPLcom/android/okhttp/Address;->getCertificatePinner()Lcom/android/okhttp/CertificatePinner;
@@ -8765,10 +33269,30 @@ HSPLcom/android/okhttp/Address;->getUriHost()Ljava/lang/String;
HSPLcom/android/okhttp/Address;->getUriPort()I
HSPLcom/android/okhttp/Address;->hashCode()I
HSPLcom/android/okhttp/Address;->url()Lcom/android/okhttp/HttpUrl;
+HSPLcom/android/okhttp/Cache$1;-><init>(Lcom/android/okhttp/Cache;)V
+HPLcom/android/okhttp/Cache$1;->get(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response;
+HPLcom/android/okhttp/Cache$1;->put(Lcom/android/okhttp/Response;)Lcom/android/okhttp/internal/http/CacheRequest;
+HPLcom/android/okhttp/Cache$1;->trackResponse(Lcom/android/okhttp/internal/http/CacheStrategy;)V
+HPLcom/android/okhttp/Cache$Entry;-><init>(Lcom/android/okhttp/Response;)V
+HPLcom/android/okhttp/Cache$Entry;->isHttps()Z
+HPLcom/android/okhttp/Cache$Entry;->writeCertList(Lcom/android/okhttp/okio/BufferedSink;Ljava/util/List;)V
+HPLcom/android/okhttp/Cache$Entry;->writeTo(Lcom/android/okhttp/internal/DiskLruCache$Editor;)V
+HSPLcom/android/okhttp/Cache;-><init>(Ljava/io/File;J)V
+HSPLcom/android/okhttp/Cache;-><init>(Ljava/io/File;JLcom/android/okhttp/internal/io/FileSystem;)V
+HPLcom/android/okhttp/Cache;->access$000(Lcom/android/okhttp/Cache;Lcom/android/okhttp/Response;)Lcom/android/okhttp/internal/http/CacheRequest;
+HPLcom/android/okhttp/Cache;->access$400(Lcom/android/okhttp/Cache;Lcom/android/okhttp/internal/http/CacheStrategy;)V
+HPLcom/android/okhttp/Cache;->access$808(Lcom/android/okhttp/Cache;)I
+HPLcom/android/okhttp/Cache;->get(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response;
+HPLcom/android/okhttp/Cache;->put(Lcom/android/okhttp/Response;)Lcom/android/okhttp/internal/http/CacheRequest;
+HPLcom/android/okhttp/Cache;->trackResponse(Lcom/android/okhttp/internal/http/CacheStrategy;)V
+HPLcom/android/okhttp/Cache;->urlToKey(Lcom/android/okhttp/Request;)Ljava/lang/String;
HSPLcom/android/okhttp/CacheControl;-><init>(ZZIIZZZIIZZLjava/lang/String;)V
+HPLcom/android/okhttp/CacheControl;->noStore()Z
HSPLcom/android/okhttp/CacheControl;->onlyIfCached()Z
HSPLcom/android/okhttp/CacheControl;->parse(Lcom/android/okhttp/Headers;)Lcom/android/okhttp/CacheControl;
HSPLcom/android/okhttp/ConfigAwareConnectionPool$1;-><init>(Lcom/android/okhttp/ConfigAwareConnectionPool;)V
+PLcom/android/okhttp/ConfigAwareConnectionPool$1;->onNetworkConfigurationChanged()V
+PLcom/android/okhttp/ConfigAwareConnectionPool;->access$002(Lcom/android/okhttp/ConfigAwareConnectionPool;Lcom/android/okhttp/ConnectionPool;)Lcom/android/okhttp/ConnectionPool;
HSPLcom/android/okhttp/ConfigAwareConnectionPool;->get()Lcom/android/okhttp/ConnectionPool;
HSPLcom/android/okhttp/ConfigAwareConnectionPool;->getInstance()Lcom/android/okhttp/ConfigAwareConnectionPool;
HSPLcom/android/okhttp/ConnectionPool$1;-><init>(Lcom/android/okhttp/ConnectionPool;)V
@@ -8803,7 +33327,10 @@ HSPLcom/android/okhttp/ConnectionSpec;->supportsTlsExtensions()Z
HSPLcom/android/okhttp/Dispatcher;-><init>()V
HSPLcom/android/okhttp/Dns$1;->lookup(Ljava/lang/String;)Ljava/util/List;
HSPLcom/android/okhttp/Handshake;-><init>(Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
+HPLcom/android/okhttp/Handshake;->cipherSuite()Ljava/lang/String;
HSPLcom/android/okhttp/Handshake;->get(Ljavax/net/ssl/SSLSession;)Lcom/android/okhttp/Handshake;
+HPLcom/android/okhttp/Handshake;->localCertificates()Ljava/util/List;
+HPLcom/android/okhttp/Handshake;->peerCertificates()Ljava/util/List;
HSPLcom/android/okhttp/Headers$Builder;-><init>()V
HSPLcom/android/okhttp/Headers$Builder;->access$000(Lcom/android/okhttp/Headers$Builder;)Ljava/util/List;
HSPLcom/android/okhttp/Headers$Builder;->add(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
@@ -8822,8 +33349,10 @@ HSPLcom/android/okhttp/Headers;->name(I)Ljava/lang/String;
HSPLcom/android/okhttp/Headers;->newBuilder()Lcom/android/okhttp/Headers$Builder;
HSPLcom/android/okhttp/Headers;->size()I
HSPLcom/android/okhttp/Headers;->value(I)Ljava/lang/String;
+HSPLcom/android/okhttp/HttpHandler$CleartextURLFilter;->checkURLPermitted(Ljava/net/URL;)V
HSPLcom/android/okhttp/HttpHandler;-><init>()V
HSPLcom/android/okhttp/HttpHandler;->createHttpOkUrlFactory(Ljava/net/Proxy;)Lcom/android/okhttp/OkUrlFactory;
+HSPLcom/android/okhttp/HttpHandler;->newOkUrlFactory(Ljava/net/Proxy;)Lcom/android/okhttp/OkUrlFactory;
HSPLcom/android/okhttp/HttpHandler;->openConnection(Ljava/net/URL;)Ljava/net/URLConnection;
HSPLcom/android/okhttp/HttpUrl$Builder;-><init>()V
HSPLcom/android/okhttp/HttpUrl$Builder;->build()Lcom/android/okhttp/HttpUrl;
@@ -8836,6 +33365,7 @@ HSPLcom/android/okhttp/HttpUrl$Builder;->host(Ljava/lang/String;)Lcom/android/ok
HSPLcom/android/okhttp/HttpUrl$Builder;->isDot(Ljava/lang/String;)Z
HSPLcom/android/okhttp/HttpUrl$Builder;->isDotDot(Ljava/lang/String;)Z
HSPLcom/android/okhttp/HttpUrl$Builder;->parse(Lcom/android/okhttp/HttpUrl;Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
+HSPLcom/android/okhttp/HttpUrl$Builder;->parsePort(Ljava/lang/String;II)I
HSPLcom/android/okhttp/HttpUrl$Builder;->port(I)Lcom/android/okhttp/HttpUrl$Builder;
HSPLcom/android/okhttp/HttpUrl$Builder;->portColonOffset(Ljava/lang/String;II)I
HSPLcom/android/okhttp/HttpUrl$Builder;->push(Ljava/lang/String;IIZZ)V
@@ -8876,9 +33406,12 @@ HSPLcom/android/okhttp/HttpUrl;->percentDecode(Ljava/util/List;Z)Ljava/util/List
HSPLcom/android/okhttp/HttpUrl;->port()I
HSPLcom/android/okhttp/HttpUrl;->queryStringToNamesAndValues(Ljava/lang/String;)Ljava/util/List;
HSPLcom/android/okhttp/HttpUrl;->scheme()Ljava/lang/String;
+HPLcom/android/okhttp/HttpUrl;->toString()Ljava/lang/String;
HSPLcom/android/okhttp/HttpUrl;->uri()Ljava/net/URI;
+HSPLcom/android/okhttp/HttpUrl;->url()Ljava/net/URL;
HSPLcom/android/okhttp/HttpsHandler;-><init>()V
HSPLcom/android/okhttp/HttpsHandler;->createHttpsOkUrlFactory(Ljava/net/Proxy;)Lcom/android/okhttp/OkUrlFactory;
+HSPLcom/android/okhttp/HttpsHandler;->getDefaultPort()I
HSPLcom/android/okhttp/HttpsHandler;->newOkUrlFactory(Ljava/net/Proxy;)Lcom/android/okhttp/OkUrlFactory;
HSPLcom/android/okhttp/OkHttpClient$1;->addLenient(Lcom/android/okhttp/Headers$Builder;Ljava/lang/String;)V
HSPLcom/android/okhttp/OkHttpClient$1;->apply(Lcom/android/okhttp/ConnectionSpec;Ljavax/net/ssl/SSLSocket;Z)V
@@ -8890,6 +33423,7 @@ HSPLcom/android/okhttp/OkHttpClient$1;->put(Lcom/android/okhttp/ConnectionPool;L
HSPLcom/android/okhttp/OkHttpClient$1;->routeDatabase(Lcom/android/okhttp/ConnectionPool;)Lcom/android/okhttp/internal/RouteDatabase;
HSPLcom/android/okhttp/OkHttpClient;-><init>()V
HSPLcom/android/okhttp/OkHttpClient;-><init>(Lcom/android/okhttp/OkHttpClient;)V
+HPLcom/android/okhttp/OkHttpClient;->clone()Lcom/android/okhttp/OkHttpClient;
HSPLcom/android/okhttp/OkHttpClient;->copyWithDefaults()Lcom/android/okhttp/OkHttpClient;
HSPLcom/android/okhttp/OkHttpClient;->getAuthenticator()Lcom/android/okhttp/Authenticator;
HSPLcom/android/okhttp/OkHttpClient;->getCertificatePinner()Lcom/android/okhttp/CertificatePinner;
@@ -8897,7 +33431,9 @@ HSPLcom/android/okhttp/OkHttpClient;->getConnectTimeout()I
HSPLcom/android/okhttp/OkHttpClient;->getConnectionPool()Lcom/android/okhttp/ConnectionPool;
HSPLcom/android/okhttp/OkHttpClient;->getConnectionSpecs()Ljava/util/List;
HSPLcom/android/okhttp/OkHttpClient;->getCookieHandler()Ljava/net/CookieHandler;
+HSPLcom/android/okhttp/OkHttpClient;->getDefaultSSLSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
HSPLcom/android/okhttp/OkHttpClient;->getDns()Lcom/android/okhttp/Dns;
+HSPLcom/android/okhttp/OkHttpClient;->getFollowRedirects()Z
HSPLcom/android/okhttp/OkHttpClient;->getHostnameVerifier()Ljavax/net/ssl/HostnameVerifier;
HSPLcom/android/okhttp/OkHttpClient;->getProtocols()Ljava/util/List;
HSPLcom/android/okhttp/OkHttpClient;->getProxy()Ljava/net/Proxy;
@@ -8908,6 +33444,7 @@ HSPLcom/android/okhttp/OkHttpClient;->getSocketFactory()Ljavax/net/SocketFactory
HSPLcom/android/okhttp/OkHttpClient;->getSslSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
HSPLcom/android/okhttp/OkHttpClient;->getWriteTimeout()I
HSPLcom/android/okhttp/OkHttpClient;->internalCache()Lcom/android/okhttp/internal/InternalCache;
+HPLcom/android/okhttp/OkHttpClient;->setCache(Lcom/android/okhttp/Cache;)Lcom/android/okhttp/OkHttpClient;
HSPLcom/android/okhttp/OkHttpClient;->setCertificatePinner(Lcom/android/okhttp/CertificatePinner;)Lcom/android/okhttp/OkHttpClient;
HSPLcom/android/okhttp/OkHttpClient;->setConnectTimeout(JLjava/util/concurrent/TimeUnit;)V
HSPLcom/android/okhttp/OkHttpClient;->setConnectionPool(Lcom/android/okhttp/ConnectionPool;)Lcom/android/okhttp/OkHttpClient;
@@ -8958,6 +33495,9 @@ HSPLcom/android/okhttp/Request;->httpUrl()Lcom/android/okhttp/HttpUrl;
HSPLcom/android/okhttp/Request;->isHttps()Z
HSPLcom/android/okhttp/Request;->method()Ljava/lang/String;
HSPLcom/android/okhttp/Request;->newBuilder()Lcom/android/okhttp/Request$Builder;
+HSPLcom/android/okhttp/Request;->uri()Ljava/net/URI;
+HSPLcom/android/okhttp/Request;->url()Ljava/net/URL;
+HPLcom/android/okhttp/Request;->urlString()Ljava/lang/String;
HSPLcom/android/okhttp/Response$Builder;-><init>()V
HSPLcom/android/okhttp/Response$Builder;-><init>(Lcom/android/okhttp/Response;)V
HSPLcom/android/okhttp/Response$Builder;-><init>(Lcom/android/okhttp/Response;Lcom/android/okhttp/Response$1;)V
@@ -8997,8 +33537,11 @@ HSPLcom/android/okhttp/Response;->access$1800(Lcom/android/okhttp/Response;)Lcom
HSPLcom/android/okhttp/Response;->access$1900(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
HSPLcom/android/okhttp/Response;->access$2000(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
HSPLcom/android/okhttp/Response;->body()Lcom/android/okhttp/ResponseBody;
+HPLcom/android/okhttp/Response;->cacheControl()Lcom/android/okhttp/CacheControl;
HSPLcom/android/okhttp/Response;->cacheResponse()Lcom/android/okhttp/Response;
+HPLcom/android/okhttp/Response;->challenges()Ljava/util/List;
HSPLcom/android/okhttp/Response;->code()I
+HPLcom/android/okhttp/Response;->handshake()Lcom/android/okhttp/Handshake;
HSPLcom/android/okhttp/Response;->header(Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/okhttp/Response;->header(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/okhttp/Response;->headers()Lcom/android/okhttp/Headers;
@@ -9010,6 +33553,7 @@ HSPLcom/android/okhttp/Response;->request()Lcom/android/okhttp/Request;
HSPLcom/android/okhttp/ResponseBody;-><init>()V
HSPLcom/android/okhttp/ResponseBody;->byteStream()Ljava/io/InputStream;
HSPLcom/android/okhttp/Route;-><init>(Lcom/android/okhttp/Address;Ljava/net/Proxy;Ljava/net/InetSocketAddress;)V
+HPLcom/android/okhttp/Route;->equals(Ljava/lang/Object;)Z
HSPLcom/android/okhttp/Route;->getAddress()Lcom/android/okhttp/Address;
HSPLcom/android/okhttp/Route;->getProxy()Ljava/net/Proxy;
HSPLcom/android/okhttp/Route;->getSocketAddress()Ljava/net/InetSocketAddress;
@@ -9019,6 +33563,50 @@ HSPLcom/android/okhttp/internal/ConnectionSpecSelector;-><init>(Ljava/util/List;
HSPLcom/android/okhttp/internal/ConnectionSpecSelector;->configureSecureSocket(Ljavax/net/ssl/SSLSocket;)Lcom/android/okhttp/ConnectionSpec;
PLcom/android/okhttp/internal/ConnectionSpecSelector;->connectionFailed(Ljava/io/IOException;)Z
HSPLcom/android/okhttp/internal/ConnectionSpecSelector;->isFallbackPossible(Ljavax/net/ssl/SSLSocket;)Z
+HSPLcom/android/okhttp/internal/DiskLruCache$1;-><init>(Lcom/android/okhttp/internal/DiskLruCache;)V
+HPLcom/android/okhttp/internal/DiskLruCache$Editor;-><init>(Lcom/android/okhttp/internal/DiskLruCache;Lcom/android/okhttp/internal/DiskLruCache$Entry;)V
+HPLcom/android/okhttp/internal/DiskLruCache$Editor;-><init>(Lcom/android/okhttp/internal/DiskLruCache;Lcom/android/okhttp/internal/DiskLruCache$Entry;Lcom/android/okhttp/internal/DiskLruCache$1;)V
+HPLcom/android/okhttp/internal/DiskLruCache$Editor;->access$1700(Lcom/android/okhttp/internal/DiskLruCache$Editor;)Lcom/android/okhttp/internal/DiskLruCache$Entry;
+HPLcom/android/okhttp/internal/DiskLruCache$Editor;->access$1800(Lcom/android/okhttp/internal/DiskLruCache$Editor;)[Z
+HPLcom/android/okhttp/internal/DiskLruCache$Editor;->commit()V
+HPLcom/android/okhttp/internal/DiskLruCache$Editor;->newSink(I)Lcom/android/okhttp/okio/Sink;
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;-><init>(Lcom/android/okhttp/internal/DiskLruCache;Ljava/lang/String;)V
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;-><init>(Lcom/android/okhttp/internal/DiskLruCache;Ljava/lang/String;Lcom/android/okhttp/internal/DiskLruCache$1;)V
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;->access$1000(Lcom/android/okhttp/internal/DiskLruCache$Entry;[Ljava/lang/String;)V
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;->access$1200(Lcom/android/okhttp/internal/DiskLruCache$Entry;)[J
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;->access$1300(Lcom/android/okhttp/internal/DiskLruCache$Entry;)[Ljava/io/File;
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;->access$1400(Lcom/android/okhttp/internal/DiskLruCache$Entry;)[Ljava/io/File;
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;->access$1500(Lcom/android/okhttp/internal/DiskLruCache$Entry;)Ljava/lang/String;
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;->access$1602(Lcom/android/okhttp/internal/DiskLruCache$Entry;J)J
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;->access$800(Lcom/android/okhttp/internal/DiskLruCache$Entry;)Z
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;->access$802(Lcom/android/okhttp/internal/DiskLruCache$Entry;Z)Z
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;->access$900(Lcom/android/okhttp/internal/DiskLruCache$Entry;)Lcom/android/okhttp/internal/DiskLruCache$Editor;
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;->access$902(Lcom/android/okhttp/internal/DiskLruCache$Entry;Lcom/android/okhttp/internal/DiskLruCache$Editor;)Lcom/android/okhttp/internal/DiskLruCache$Editor;
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;->setLengths([Ljava/lang/String;)V
+HPLcom/android/okhttp/internal/DiskLruCache$Entry;->writeLengths(Lcom/android/okhttp/okio/BufferedSink;)V
+HSPLcom/android/okhttp/internal/DiskLruCache;-><init>(Lcom/android/okhttp/internal/io/FileSystem;Ljava/io/File;IIJLjava/util/concurrent/Executor;)V
+HPLcom/android/okhttp/internal/DiskLruCache;->access$2200(Lcom/android/okhttp/internal/DiskLruCache;)I
+HPLcom/android/okhttp/internal/DiskLruCache;->access$2300(Lcom/android/okhttp/internal/DiskLruCache;)Lcom/android/okhttp/internal/io/FileSystem;
+HPLcom/android/okhttp/internal/DiskLruCache;->access$2500(Lcom/android/okhttp/internal/DiskLruCache;Lcom/android/okhttp/internal/DiskLruCache$Editor;Z)V
+HPLcom/android/okhttp/internal/DiskLruCache;->access$2600(Lcom/android/okhttp/internal/DiskLruCache;)Ljava/io/File;
+HPLcom/android/okhttp/internal/DiskLruCache;->checkNotClosed()V
+HPLcom/android/okhttp/internal/DiskLruCache;->completeEdit(Lcom/android/okhttp/internal/DiskLruCache$Editor;Z)V
+HSPLcom/android/okhttp/internal/DiskLruCache;->create(Lcom/android/okhttp/internal/io/FileSystem;Ljava/io/File;IIJ)Lcom/android/okhttp/internal/DiskLruCache;
+HPLcom/android/okhttp/internal/DiskLruCache;->edit(Ljava/lang/String;)Lcom/android/okhttp/internal/DiskLruCache$Editor;
+HPLcom/android/okhttp/internal/DiskLruCache;->edit(Ljava/lang/String;J)Lcom/android/okhttp/internal/DiskLruCache$Editor;
+HPLcom/android/okhttp/internal/DiskLruCache;->get(Ljava/lang/String;)Lcom/android/okhttp/internal/DiskLruCache$Snapshot;
+HPLcom/android/okhttp/internal/DiskLruCache;->initialize()V
+HPLcom/android/okhttp/internal/DiskLruCache;->isClosed()Z
+HPLcom/android/okhttp/internal/DiskLruCache;->journalRebuildRequired()Z
+HPLcom/android/okhttp/internal/DiskLruCache;->newJournalWriter()Lcom/android/okhttp/okio/BufferedSink;
+HPLcom/android/okhttp/internal/DiskLruCache;->processJournal()V
+HPLcom/android/okhttp/internal/DiskLruCache;->readJournal()V
+HPLcom/android/okhttp/internal/DiskLruCache;->readJournalLine(Ljava/lang/String;)V
+HPLcom/android/okhttp/internal/DiskLruCache;->validateKey(Ljava/lang/String;)V
+HPLcom/android/okhttp/internal/FaultHidingSink;-><init>(Lcom/android/okhttp/okio/Sink;)V
+HPLcom/android/okhttp/internal/FaultHidingSink;->close()V
+HPLcom/android/okhttp/internal/FaultHidingSink;->flush()V
+HPLcom/android/okhttp/internal/FaultHidingSink;->write(Lcom/android/okhttp/okio/Buffer;J)V
HSPLcom/android/okhttp/internal/OptionalMethod;->getMethod(Ljava/lang/Class;)Ljava/lang/reflect/Method;
HSPLcom/android/okhttp/internal/OptionalMethod;->getPublicMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
HSPLcom/android/okhttp/internal/OptionalMethod;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
@@ -9041,24 +33629,37 @@ HSPLcom/android/okhttp/internal/RouteDatabase;->shouldPostpone(Lcom/android/okht
HSPLcom/android/okhttp/internal/Util$1;-><init>(Ljava/lang/String;Z)V
HSPLcom/android/okhttp/internal/Util$1;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
HSPLcom/android/okhttp/internal/Util;->checkOffsetAndCount(JJJ)V
+HPLcom/android/okhttp/internal/Util;->closeQuietly(Ljava/io/Closeable;)V
HSPLcom/android/okhttp/internal/Util;->closeQuietly(Ljava/net/Socket;)V
HSPLcom/android/okhttp/internal/Util;->discard(Lcom/android/okhttp/okio/Source;ILjava/util/concurrent/TimeUnit;)Z
HSPLcom/android/okhttp/internal/Util;->equal(Ljava/lang/Object;Ljava/lang/Object;)Z
HSPLcom/android/okhttp/internal/Util;->hostHeader(Lcom/android/okhttp/HttpUrl;Z)Ljava/lang/String;
HSPLcom/android/okhttp/internal/Util;->immutableList(Ljava/util/List;)Ljava/util/List;
HSPLcom/android/okhttp/internal/Util;->immutableList([Ljava/lang/Object;)Ljava/util/List;
+HPLcom/android/okhttp/internal/Util;->md5Hex(Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/okhttp/internal/Util;->skipAll(Lcom/android/okhttp/okio/Source;ILjava/util/concurrent/TimeUnit;)Z
HSPLcom/android/okhttp/internal/Util;->threadFactory(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;
HSPLcom/android/okhttp/internal/Util;->toHumanReadableAscii(Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/okhttp/internal/http/AuthenticatorAdapter;->authenticate(Ljava/net/Proxy;Lcom/android/okhttp/Response;)Lcom/android/okhttp/Request;
HSPLcom/android/okhttp/internal/http/CacheStrategy$Factory;-><init>(JLcom/android/okhttp/Request;Lcom/android/okhttp/Response;)V
HSPLcom/android/okhttp/internal/http/CacheStrategy$Factory;->get()Lcom/android/okhttp/internal/http/CacheStrategy;
HSPLcom/android/okhttp/internal/http/CacheStrategy$Factory;->getCandidate()Lcom/android/okhttp/internal/http/CacheStrategy;
HSPLcom/android/okhttp/internal/http/CacheStrategy;-><init>(Lcom/android/okhttp/Request;Lcom/android/okhttp/Response;)V
HSPLcom/android/okhttp/internal/http/CacheStrategy;-><init>(Lcom/android/okhttp/Request;Lcom/android/okhttp/Response;Lcom/android/okhttp/internal/http/CacheStrategy$1;)V
+HPLcom/android/okhttp/internal/http/CacheStrategy;->isCacheable(Lcom/android/okhttp/Response;Lcom/android/okhttp/Request;)Z
+HSPLcom/android/okhttp/internal/http/HeaderParser;->parseSeconds(Ljava/lang/String;I)I
+HSPLcom/android/okhttp/internal/http/HeaderParser;->skipUntil(Ljava/lang/String;ILjava/lang/String;)I
+HSPLcom/android/okhttp/internal/http/HeaderParser;->skipWhitespace(Ljava/lang/String;I)I
HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;)V
HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;Lcom/android/okhttp/internal/http/Http1xStream$1;)V
HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;->endOfInput()V
HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;->timeout()Lcom/android/okhttp/okio/Timeout;
+HSPLcom/android/okhttp/internal/http/Http1xStream$AbstractSource;->unexpectedEndOfInput()V
+HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;)V
+HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;Lcom/android/okhttp/internal/http/Http1xStream$1;)V
+HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;->close()V
+HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;->flush()V
+HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSink;->write(Lcom/android/okhttp/okio/Buffer;J)V
HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSource;-><init>(Lcom/android/okhttp/internal/http/Http1xStream;Lcom/android/okhttp/internal/http/HttpEngine;)V
HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSource;->close()V
HSPLcom/android/okhttp/internal/http/Http1xStream$ChunkedSource;->read(Lcom/android/okhttp/okio/Buffer;J)J
@@ -9078,13 +33679,16 @@ HSPLcom/android/okhttp/internal/http/Http1xStream;->access$500(Lcom/android/okht
HSPLcom/android/okhttp/internal/http/Http1xStream;->access$502(Lcom/android/okhttp/internal/http/Http1xStream;I)I
HSPLcom/android/okhttp/internal/http/Http1xStream;->access$600(Lcom/android/okhttp/internal/http/Http1xStream;)Lcom/android/okhttp/okio/BufferedSource;
HSPLcom/android/okhttp/internal/http/Http1xStream;->access$700(Lcom/android/okhttp/internal/http/Http1xStream;)Lcom/android/okhttp/internal/http/StreamAllocation;
+HSPLcom/android/okhttp/internal/http/Http1xStream;->cancel()V
HSPLcom/android/okhttp/internal/http/Http1xStream;->createRequestBody(Lcom/android/okhttp/Request;J)Lcom/android/okhttp/okio/Sink;
HSPLcom/android/okhttp/internal/http/Http1xStream;->detachTimeout(Lcom/android/okhttp/okio/ForwardingTimeout;)V
HSPLcom/android/okhttp/internal/http/Http1xStream;->finishRequest()V
HSPLcom/android/okhttp/internal/http/Http1xStream;->getTransferStream(Lcom/android/okhttp/Response;)Lcom/android/okhttp/okio/Source;
+HSPLcom/android/okhttp/internal/http/Http1xStream;->newChunkedSink()Lcom/android/okhttp/okio/Sink;
HSPLcom/android/okhttp/internal/http/Http1xStream;->newChunkedSource(Lcom/android/okhttp/internal/http/HttpEngine;)Lcom/android/okhttp/okio/Source;
HSPLcom/android/okhttp/internal/http/Http1xStream;->newFixedLengthSink(J)Lcom/android/okhttp/okio/Sink;
HSPLcom/android/okhttp/internal/http/Http1xStream;->newFixedLengthSource(J)Lcom/android/okhttp/okio/Source;
+HSPLcom/android/okhttp/internal/http/Http1xStream;->newUnknownLengthSource()Lcom/android/okhttp/okio/Source;
HSPLcom/android/okhttp/internal/http/Http1xStream;->openResponseBody(Lcom/android/okhttp/Response;)Lcom/android/okhttp/ResponseBody;
HSPLcom/android/okhttp/internal/http/Http1xStream;->readHeaders()Lcom/android/okhttp/Headers;
HSPLcom/android/okhttp/internal/http/Http1xStream;->readResponse()Lcom/android/okhttp/Response$Builder;
@@ -9093,15 +33697,20 @@ HSPLcom/android/okhttp/internal/http/Http1xStream;->setHttpEngine(Lcom/android/o
HSPLcom/android/okhttp/internal/http/Http1xStream;->writeRequest(Lcom/android/okhttp/Headers;Ljava/lang/String;)V
HSPLcom/android/okhttp/internal/http/Http1xStream;->writeRequestBody(Lcom/android/okhttp/internal/http/RetryableSink;)V
HSPLcom/android/okhttp/internal/http/Http1xStream;->writeRequestHeaders(Lcom/android/okhttp/Request;)V
+HSPLcom/android/okhttp/internal/http/HttpDate$1;->initialValue()Ljava/lang/Object;
+HSPLcom/android/okhttp/internal/http/HttpDate$1;->initialValue()Ljava/text/DateFormat;
+HSPLcom/android/okhttp/internal/http/HttpDate;->access$000()Ljava/util/TimeZone;
+HSPLcom/android/okhttp/internal/http/HttpDate;->format(Ljava/util/Date;)Ljava/lang/String;
HSPLcom/android/okhttp/internal/http/HttpEngine;-><init>(Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/Request;ZZZLcom/android/okhttp/internal/http/StreamAllocation;Lcom/android/okhttp/internal/http/RetryableSink;Lcom/android/okhttp/Response;)V
HSPLcom/android/okhttp/internal/http/HttpEngine;->cacheWritingResponse(Lcom/android/okhttp/internal/http/CacheRequest;Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
HSPLcom/android/okhttp/internal/http/HttpEngine;->cancel()V
-PLcom/android/okhttp/internal/http/HttpEngine;->close()Lcom/android/okhttp/internal/http/StreamAllocation;
+HSPLcom/android/okhttp/internal/http/HttpEngine;->close()Lcom/android/okhttp/internal/http/StreamAllocation;
HSPLcom/android/okhttp/internal/http/HttpEngine;->connect()Lcom/android/okhttp/internal/http/HttpStream;
HSPLcom/android/okhttp/internal/http/HttpEngine;->createAddress(Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/Request;)Lcom/android/okhttp/Address;
HSPLcom/android/okhttp/internal/http/HttpEngine;->followUpRequest()Lcom/android/okhttp/Request;
HSPLcom/android/okhttp/internal/http/HttpEngine;->getBufferedRequestBody()Lcom/android/okhttp/okio/BufferedSink;
HSPLcom/android/okhttp/internal/http/HttpEngine;->getConnection()Lcom/android/okhttp/Connection;
+HSPLcom/android/okhttp/internal/http/HttpEngine;->getRequest()Lcom/android/okhttp/Request;
HSPLcom/android/okhttp/internal/http/HttpEngine;->getRequestBody()Lcom/android/okhttp/okio/Sink;
HSPLcom/android/okhttp/internal/http/HttpEngine;->getResponse()Lcom/android/okhttp/Response;
HSPLcom/android/okhttp/internal/http/HttpEngine;->hasBody(Lcom/android/okhttp/Response;)Z
@@ -9112,21 +33721,33 @@ HSPLcom/android/okhttp/internal/http/HttpEngine;->permitsRequestBody(Lcom/androi
HSPLcom/android/okhttp/internal/http/HttpEngine;->readNetworkResponse()Lcom/android/okhttp/Response;
HSPLcom/android/okhttp/internal/http/HttpEngine;->readResponse()V
HSPLcom/android/okhttp/internal/http/HttpEngine;->receiveHeaders(Lcom/android/okhttp/Headers;)V
-PLcom/android/okhttp/internal/http/HttpEngine;->recover(Lcom/android/okhttp/internal/http/RouteException;)Lcom/android/okhttp/internal/http/HttpEngine;
+HSPLcom/android/okhttp/internal/http/HttpEngine;->recover(Lcom/android/okhttp/internal/http/RouteException;)Lcom/android/okhttp/internal/http/HttpEngine;
+PLcom/android/okhttp/internal/http/HttpEngine;->recover(Ljava/io/IOException;)Lcom/android/okhttp/internal/http/HttpEngine;
+HPLcom/android/okhttp/internal/http/HttpEngine;->recover(Ljava/io/IOException;Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/internal/http/HttpEngine;
HSPLcom/android/okhttp/internal/http/HttpEngine;->releaseStreamAllocation()V
HSPLcom/android/okhttp/internal/http/HttpEngine;->sendRequest()V
HSPLcom/android/okhttp/internal/http/HttpEngine;->stripBody(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
HSPLcom/android/okhttp/internal/http/HttpEngine;->unzip(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
HSPLcom/android/okhttp/internal/http/HttpEngine;->writingRequestHeaders()V
+HPLcom/android/okhttp/internal/http/HttpMethod;->invalidatesCache(Ljava/lang/String;)Z
HSPLcom/android/okhttp/internal/http/HttpMethod;->permitsRequestBody(Ljava/lang/String;)Z
HSPLcom/android/okhttp/internal/http/HttpMethod;->requiresRequestBody(Ljava/lang/String;)Z
HSPLcom/android/okhttp/internal/http/OkHeaders$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLcom/android/okhttp/internal/http/OkHeaders$1;->compare(Ljava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/okhttp/internal/http/OkHeaders;->addCookies(Lcom/android/okhttp/Request$Builder;Ljava/util/Map;)V
+HPLcom/android/okhttp/internal/http/OkHeaders;->buildCookieHeader(Ljava/util/List;)Ljava/lang/String;
HSPLcom/android/okhttp/internal/http/OkHeaders;->contentLength(Lcom/android/okhttp/Headers;)J
HSPLcom/android/okhttp/internal/http/OkHeaders;->contentLength(Lcom/android/okhttp/Request;)J
HSPLcom/android/okhttp/internal/http/OkHeaders;->contentLength(Lcom/android/okhttp/Response;)J
+HPLcom/android/okhttp/internal/http/OkHeaders;->hasVaryAll(Lcom/android/okhttp/Headers;)Z
+HPLcom/android/okhttp/internal/http/OkHeaders;->hasVaryAll(Lcom/android/okhttp/Response;)Z
+HPLcom/android/okhttp/internal/http/OkHeaders;->parseChallenges(Lcom/android/okhttp/Headers;Ljava/lang/String;)Ljava/util/List;
+HPLcom/android/okhttp/internal/http/OkHeaders;->processAuthHeader(Lcom/android/okhttp/Authenticator;Lcom/android/okhttp/Response;Ljava/net/Proxy;)Lcom/android/okhttp/Request;
HSPLcom/android/okhttp/internal/http/OkHeaders;->stringToLong(Ljava/lang/String;)J
HSPLcom/android/okhttp/internal/http/OkHeaders;->toMultimap(Lcom/android/okhttp/Headers;Ljava/lang/String;)Ljava/util/Map;
+HPLcom/android/okhttp/internal/http/OkHeaders;->varyFields(Lcom/android/okhttp/Headers;)Ljava/util/Set;
+HPLcom/android/okhttp/internal/http/OkHeaders;->varyHeaders(Lcom/android/okhttp/Headers;Lcom/android/okhttp/Headers;)Lcom/android/okhttp/Headers;
+HPLcom/android/okhttp/internal/http/OkHeaders;->varyHeaders(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Headers;
HSPLcom/android/okhttp/internal/http/RealResponseBody;-><init>(Lcom/android/okhttp/Headers;Lcom/android/okhttp/okio/BufferedSource;)V
HSPLcom/android/okhttp/internal/http/RealResponseBody;->source()Lcom/android/okhttp/okio/BufferedSource;
HSPLcom/android/okhttp/internal/http/RequestLine;->get(Lcom/android/okhttp/Request;Ljava/net/Proxy$Type;)Ljava/lang/String;
@@ -9139,16 +33760,17 @@ HSPLcom/android/okhttp/internal/http/RetryableSink;->contentLength()J
HSPLcom/android/okhttp/internal/http/RetryableSink;->flush()V
HSPLcom/android/okhttp/internal/http/RetryableSink;->write(Lcom/android/okhttp/okio/Buffer;J)V
HSPLcom/android/okhttp/internal/http/RetryableSink;->writeToSocket(Lcom/android/okhttp/okio/Sink;)V
-PLcom/android/okhttp/internal/http/RouteException;-><init>(Ljava/io/IOException;)V
-PLcom/android/okhttp/internal/http/RouteException;->getLastConnectException()Ljava/io/IOException;
+HSPLcom/android/okhttp/internal/http/RouteException;-><init>(Ljava/io/IOException;)V
+HSPLcom/android/okhttp/internal/http/RouteException;->getLastConnectException()Ljava/io/IOException;
HSPLcom/android/okhttp/internal/http/RouteSelector;-><init>(Lcom/android/okhttp/Address;Lcom/android/okhttp/internal/RouteDatabase;)V
PLcom/android/okhttp/internal/http/RouteSelector;->connectFailed(Lcom/android/okhttp/Route;Ljava/io/IOException;)V
-PLcom/android/okhttp/internal/http/RouteSelector;->hasNext()Z
+HSPLcom/android/okhttp/internal/http/RouteSelector;->hasNext()Z
HSPLcom/android/okhttp/internal/http/RouteSelector;->hasNextInetSocketAddress()Z
-PLcom/android/okhttp/internal/http/RouteSelector;->hasNextPostponed()Z
+HSPLcom/android/okhttp/internal/http/RouteSelector;->hasNextPostponed()Z
HSPLcom/android/okhttp/internal/http/RouteSelector;->hasNextProxy()Z
HSPLcom/android/okhttp/internal/http/RouteSelector;->next()Lcom/android/okhttp/Route;
HSPLcom/android/okhttp/internal/http/RouteSelector;->nextInetSocketAddress()Ljava/net/InetSocketAddress;
+PLcom/android/okhttp/internal/http/RouteSelector;->nextPostponed()Lcom/android/okhttp/Route;
HSPLcom/android/okhttp/internal/http/RouteSelector;->nextProxy()Ljava/net/Proxy;
HSPLcom/android/okhttp/internal/http/RouteSelector;->resetNextInetSocketAddress(Ljava/net/Proxy;)V
HSPLcom/android/okhttp/internal/http/RouteSelector;->resetNextProxy(Lcom/android/okhttp/HttpUrl;Ljava/net/Proxy;)V
@@ -9160,19 +33782,22 @@ HSPLcom/android/okhttp/internal/http/StreamAllocation;-><init>(Lcom/android/okht
HSPLcom/android/okhttp/internal/http/StreamAllocation;->acquire(Lcom/android/okhttp/internal/io/RealConnection;)V
HSPLcom/android/okhttp/internal/http/StreamAllocation;->cancel()V
HSPLcom/android/okhttp/internal/http/StreamAllocation;->connection()Lcom/android/okhttp/internal/io/RealConnection;
-PLcom/android/okhttp/internal/http/StreamAllocation;->connectionFailed()V
-PLcom/android/okhttp/internal/http/StreamAllocation;->connectionFailed(Ljava/io/IOException;)V
+HSPLcom/android/okhttp/internal/http/StreamAllocation;->connectionFailed()V
+HPLcom/android/okhttp/internal/http/StreamAllocation;->connectionFailed(Ljava/io/IOException;)V
HSPLcom/android/okhttp/internal/http/StreamAllocation;->deallocate(ZZZ)V
HSPLcom/android/okhttp/internal/http/StreamAllocation;->findConnection(IIIZ)Lcom/android/okhttp/internal/io/RealConnection;
HSPLcom/android/okhttp/internal/http/StreamAllocation;->findHealthyConnection(IIIZZ)Lcom/android/okhttp/internal/io/RealConnection;
PLcom/android/okhttp/internal/http/StreamAllocation;->isRecoverable(Lcom/android/okhttp/internal/http/RouteException;)Z
+PLcom/android/okhttp/internal/http/StreamAllocation;->isRecoverable(Ljava/io/IOException;)Z
HSPLcom/android/okhttp/internal/http/StreamAllocation;->newStream(IIIZZ)Lcom/android/okhttp/internal/http/HttpStream;
HSPLcom/android/okhttp/internal/http/StreamAllocation;->noNewStreams()V
-PLcom/android/okhttp/internal/http/StreamAllocation;->recover(Lcom/android/okhttp/internal/http/RouteException;)Z
+HSPLcom/android/okhttp/internal/http/StreamAllocation;->recover(Lcom/android/okhttp/internal/http/RouteException;)Z
+PLcom/android/okhttp/internal/http/StreamAllocation;->recover(Ljava/io/IOException;Lcom/android/okhttp/okio/Sink;)Z
HSPLcom/android/okhttp/internal/http/StreamAllocation;->release()V
HSPLcom/android/okhttp/internal/http/StreamAllocation;->release(Lcom/android/okhttp/internal/io/RealConnection;)V
HSPLcom/android/okhttp/internal/http/StreamAllocation;->routeDatabase()Lcom/android/okhttp/internal/RouteDatabase;
HSPLcom/android/okhttp/internal/http/StreamAllocation;->streamFinished(Lcom/android/okhttp/internal/http/HttpStream;)V
+PLcom/android/okhttp/internal/http/StreamAllocation;->toString()Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;-><init>(Ljava/net/HttpURLConnection;)V
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->addRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->connect()V
@@ -9180,9 +33805,14 @@ HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->disconnect()V
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getContentEncoding()Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getContentLength()I
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getContentType()Ljava/lang/String;
+HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getErrorStream()Ljava/io/InputStream;
+HPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getHeaderField(I)Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getHeaderField(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getHeaderFieldInt(Ljava/lang/String;I)I
+HPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getHeaderFieldKey(I)Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getHeaderFields()Ljava/util/Map;
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getInputStream()Ljava/io/InputStream;
+HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getLastModified()J
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getOutputStream()Ljava/io/OutputStream;
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getRequestMethod()Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getRequestProperties()Ljava/util/Map;
@@ -9190,11 +33820,14 @@ HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getRequestPro
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getResponseCode()I
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getResponseMessage()Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->getURL()Ljava/net/URL;
+HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setAllowUserInteraction(Z)V
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setChunkedStreamingMode(I)V
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setConnectTimeout(I)V
+HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setDefaultUseCaches(Z)V
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setDoInput(Z)V
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setDoOutput(Z)V
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setFixedLengthStreamingMode(I)V
+HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setIfModifiedSince(J)V
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setInstanceFollowRedirects(Z)V
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setReadTimeout(I)V
HSPLcom/android/okhttp/internal/huc/DelegatingHttpsURLConnection;->setRequestMethod(Ljava/lang/String;)V
@@ -9207,7 +33840,10 @@ HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->connect()V
HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->defaultUserAgent()Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->disconnect()V
HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->execute(Z)Z
+HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getErrorStream()Ljava/io/InputStream;
+HPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getHeaderField(I)Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getHeaderField(Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getHeaderFieldKey(I)Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getHeaderFields()Ljava/util/Map;
HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getHeaders()Lcom/android/okhttp/Headers;
HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->getInputStream()Ljava/io/InputStream;
@@ -9223,6 +33859,7 @@ HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->responseSourceHeader
HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setConnectTimeout(I)V
HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setFixedLengthStreamingMode(I)V
HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setFixedLengthStreamingMode(J)V
+HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setIfModifiedSince(J)V
HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setInstanceFollowRedirects(Z)V
HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setReadTimeout(I)V
HSPLcom/android/okhttp/internal/huc/HttpURLConnectionImpl;->setRequestMethod(Ljava/lang/String;)V
@@ -9235,9 +33872,14 @@ HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->disconnect()V
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getContentEncoding()Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getContentLength()I
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getContentType()Ljava/lang/String;
+HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getErrorStream()Ljava/io/InputStream;
+HPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getHeaderField(I)Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getHeaderField(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getHeaderFieldInt(Ljava/lang/String;I)I
+HPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getHeaderFieldKey(I)Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getHeaderFields()Ljava/util/Map;
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getInputStream()Ljava/io/InputStream;
+HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getLastModified()J
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getOutputStream()Ljava/io/OutputStream;
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getRequestMethod()Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getRequestProperties()Ljava/util/Map;
@@ -9245,19 +33887,31 @@ HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getRequestProperty(
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getResponseCode()I
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getResponseMessage()Ljava/lang/String;
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->getURL()Ljava/net/URL;
+HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setAllowUserInteraction(Z)V
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setChunkedStreamingMode(I)V
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setConnectTimeout(I)V
+HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setDefaultUseCaches(Z)V
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setDoInput(Z)V
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setDoOutput(Z)V
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setFixedLengthStreamingMode(I)V
+HPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)V
+HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setIfModifiedSince(J)V
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setInstanceFollowRedirects(Z)V
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setReadTimeout(I)V
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setRequestMethod(Ljava/lang/String;)V
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setSSLSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)V
HSPLcom/android/okhttp/internal/huc/HttpsURLConnectionImpl;->setUseCaches(Z)V
+HPLcom/android/okhttp/internal/io/FileSystem$1;->appendingSink(Ljava/io/File;)Lcom/android/okhttp/okio/Sink;
+HPLcom/android/okhttp/internal/io/FileSystem$1;->delete(Ljava/io/File;)V
+HPLcom/android/okhttp/internal/io/FileSystem$1;->exists(Ljava/io/File;)Z
+HPLcom/android/okhttp/internal/io/FileSystem$1;->rename(Ljava/io/File;Ljava/io/File;)V
+HPLcom/android/okhttp/internal/io/FileSystem$1;->sink(Ljava/io/File;)Lcom/android/okhttp/okio/Sink;
+HPLcom/android/okhttp/internal/io/FileSystem$1;->size(Ljava/io/File;)J
+HPLcom/android/okhttp/internal/io/FileSystem$1;->source(Ljava/io/File;)Lcom/android/okhttp/okio/Source;
HSPLcom/android/okhttp/internal/io/RealConnection;-><init>(Lcom/android/okhttp/Route;)V
HSPLcom/android/okhttp/internal/io/RealConnection;->allocationLimit()I
+HSPLcom/android/okhttp/internal/io/RealConnection;->cancel()V
HSPLcom/android/okhttp/internal/io/RealConnection;->connect(IIILjava/util/List;Z)V
HSPLcom/android/okhttp/internal/io/RealConnection;->connectSocket(IIILcom/android/okhttp/internal/ConnectionSpecSelector;)V
HSPLcom/android/okhttp/internal/io/RealConnection;->connectTls(IILcom/android/okhttp/internal/ConnectionSpecSelector;)V
@@ -9271,6 +33925,7 @@ HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verify(Ljava/lang/Strin
HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verifyAsIpAddress(Ljava/lang/String;)Z
HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verifyHostName(Ljava/lang/String;Ljava/lang/String;)Z
HSPLcom/android/okhttp/internal/tls/OkHostnameVerifier;->verifyHostName(Ljava/lang/String;Ljava/security/cert/X509Certificate;)Z
+HPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter;->equals(Ljava/lang/Object;)Z
HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter;->hashCode()I
HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory$DnsAdapter;->lookup(Ljava/lang/String;)Ljava/util/List;
HSPLcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;->internalOpenConnection(Ljava/net/URL;Ljavax/net/SocketFactory;Ljava/net/Proxy;)Ljava/net/URLConnection;
@@ -9307,6 +33962,7 @@ HSPLcom/android/okhttp/okio/Buffer;->read([BII)I
HSPLcom/android/okhttp/okio/Buffer;->readByte()B
HSPLcom/android/okhttp/okio/Buffer;->readByteArray()[B
HSPLcom/android/okhttp/okio/Buffer;->readByteArray(J)[B
+PLcom/android/okhttp/okio/Buffer;->readByteString()Lcom/android/okhttp/okio/ByteString;
HSPLcom/android/okhttp/okio/Buffer;->readFully([B)V
HSPLcom/android/okhttp/okio/Buffer;->readHexadecimalUnsignedLong()J
HSPLcom/android/okhttp/okio/Buffer;->readInt()I
@@ -9322,9 +33978,19 @@ HSPLcom/android/okhttp/okio/Buffer;->writableSegment(I)Lcom/android/okhttp/okio/
HSPLcom/android/okhttp/okio/Buffer;->write(Lcom/android/okhttp/okio/Buffer;J)V
HSPLcom/android/okhttp/okio/Buffer;->write([BII)Lcom/android/okhttp/okio/Buffer;
HSPLcom/android/okhttp/okio/Buffer;->writeByte(I)Lcom/android/okhttp/okio/Buffer;
+HPLcom/android/okhttp/okio/Buffer;->writeDecimalLong(J)Lcom/android/okhttp/okio/Buffer;
+HSPLcom/android/okhttp/okio/Buffer;->writeHexadecimalUnsignedLong(J)Lcom/android/okhttp/okio/Buffer;
HSPLcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/Buffer;
HSPLcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;II)Lcom/android/okhttp/okio/Buffer;
HSPLcom/android/okhttp/okio/Buffer;->writeUtf8CodePoint(I)Lcom/android/okhttp/okio/Buffer;
+PLcom/android/okhttp/okio/ByteString;-><init>([B)V
+HPLcom/android/okhttp/okio/ByteString;->base64()Ljava/lang/String;
+PLcom/android/okhttp/okio/ByteString;->hex()Ljava/lang/String;
+HPLcom/android/okhttp/okio/ByteString;->of([B)Lcom/android/okhttp/okio/ByteString;
+HPLcom/android/okhttp/okio/ForwardingSink;-><init>(Lcom/android/okhttp/okio/Sink;)V
+HPLcom/android/okhttp/okio/ForwardingSink;->close()V
+HPLcom/android/okhttp/okio/ForwardingSink;->flush()V
+HPLcom/android/okhttp/okio/ForwardingSink;->write(Lcom/android/okhttp/okio/Buffer;J)V
HSPLcom/android/okhttp/okio/ForwardingTimeout;-><init>(Lcom/android/okhttp/okio/Timeout;)V
HSPLcom/android/okhttp/okio/ForwardingTimeout;->clearDeadline()Lcom/android/okhttp/okio/Timeout;
HSPLcom/android/okhttp/okio/ForwardingTimeout;->deadlineNanoTime(J)Lcom/android/okhttp/okio/Timeout;
@@ -9344,15 +34010,24 @@ HSPLcom/android/okhttp/okio/InflaterSource;->read(Lcom/android/okhttp/okio/Buffe
HSPLcom/android/okhttp/okio/InflaterSource;->refill()Z
HSPLcom/android/okhttp/okio/InflaterSource;->releaseInflatedBytes()V
HSPLcom/android/okhttp/okio/Okio$1;-><init>(Lcom/android/okhttp/okio/Timeout;Ljava/io/OutputStream;)V
+HPLcom/android/okhttp/okio/Okio$1;->close()V
HSPLcom/android/okhttp/okio/Okio$1;->flush()V
HSPLcom/android/okhttp/okio/Okio$1;->write(Lcom/android/okhttp/okio/Buffer;J)V
HSPLcom/android/okhttp/okio/Okio$2;-><init>(Lcom/android/okhttp/okio/Timeout;Ljava/io/InputStream;)V
+HPLcom/android/okhttp/okio/Okio$2;->close()V
HSPLcom/android/okhttp/okio/Okio$2;->read(Lcom/android/okhttp/okio/Buffer;J)J
HSPLcom/android/okhttp/okio/Okio$3;-><init>(Ljava/net/Socket;)V
+HSPLcom/android/okhttp/okio/Okio$3;->newTimeoutException(Ljava/io/IOException;)Ljava/io/IOException;
+HSPLcom/android/okhttp/okio/Okio$3;->timedOut()V
+HPLcom/android/okhttp/okio/Okio;->appendingSink(Ljava/io/File;)Lcom/android/okhttp/okio/Sink;
HSPLcom/android/okhttp/okio/Okio;->buffer(Lcom/android/okhttp/okio/Sink;)Lcom/android/okhttp/okio/BufferedSink;
HSPLcom/android/okhttp/okio/Okio;->buffer(Lcom/android/okhttp/okio/Source;)Lcom/android/okhttp/okio/BufferedSource;
+HPLcom/android/okhttp/okio/Okio;->sink(Ljava/io/File;)Lcom/android/okhttp/okio/Sink;
+HPLcom/android/okhttp/okio/Okio;->sink(Ljava/io/OutputStream;)Lcom/android/okhttp/okio/Sink;
HSPLcom/android/okhttp/okio/Okio;->sink(Ljava/io/OutputStream;Lcom/android/okhttp/okio/Timeout;)Lcom/android/okhttp/okio/Sink;
HSPLcom/android/okhttp/okio/Okio;->sink(Ljava/net/Socket;)Lcom/android/okhttp/okio/Sink;
+HPLcom/android/okhttp/okio/Okio;->source(Ljava/io/File;)Lcom/android/okhttp/okio/Source;
+HPLcom/android/okhttp/okio/Okio;->source(Ljava/io/InputStream;)Lcom/android/okhttp/okio/Source;
HSPLcom/android/okhttp/okio/Okio;->source(Ljava/io/InputStream;Lcom/android/okhttp/okio/Timeout;)Lcom/android/okhttp/okio/Source;
HSPLcom/android/okhttp/okio/Okio;->source(Ljava/net/Socket;)Lcom/android/okhttp/okio/Source;
HSPLcom/android/okhttp/okio/Okio;->timeout(Ljava/net/Socket;)Lcom/android/okhttp/okio/AsyncTimeout;
@@ -9365,11 +34040,15 @@ HSPLcom/android/okhttp/okio/RealBufferedSink;-><init>(Lcom/android/okhttp/okio/S
HSPLcom/android/okhttp/okio/RealBufferedSink;->access$000(Lcom/android/okhttp/okio/RealBufferedSink;)Z
HSPLcom/android/okhttp/okio/RealBufferedSink;->buffer()Lcom/android/okhttp/okio/Buffer;
HSPLcom/android/okhttp/okio/RealBufferedSink;->close()V
+HSPLcom/android/okhttp/okio/RealBufferedSink;->emit()Lcom/android/okhttp/okio/BufferedSink;
HSPLcom/android/okhttp/okio/RealBufferedSink;->emitCompleteSegments()Lcom/android/okhttp/okio/BufferedSink;
HSPLcom/android/okhttp/okio/RealBufferedSink;->flush()V
HSPLcom/android/okhttp/okio/RealBufferedSink;->outputStream()Ljava/io/OutputStream;
HSPLcom/android/okhttp/okio/RealBufferedSink;->timeout()Lcom/android/okhttp/okio/Timeout;
HSPLcom/android/okhttp/okio/RealBufferedSink;->write(Lcom/android/okhttp/okio/Buffer;J)V
+HPLcom/android/okhttp/okio/RealBufferedSink;->writeByte(I)Lcom/android/okhttp/okio/BufferedSink;
+HPLcom/android/okhttp/okio/RealBufferedSink;->writeDecimalLong(J)Lcom/android/okhttp/okio/BufferedSink;
+HSPLcom/android/okhttp/okio/RealBufferedSink;->writeHexadecimalUnsignedLong(J)Lcom/android/okhttp/okio/BufferedSink;
HSPLcom/android/okhttp/okio/RealBufferedSink;->writeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/BufferedSink;
HSPLcom/android/okhttp/okio/RealBufferedSource$1;-><init>(Lcom/android/okhttp/okio/RealBufferedSource;)V
HSPLcom/android/okhttp/okio/RealBufferedSource$1;->available()I
@@ -9415,9 +34094,15 @@ HSPLcom/android/okhttp/okio/Timeout;->timeout(JLjava/util/concurrent/TimeUnit;)L
HSPLcom/android/okhttp/okio/Timeout;->timeoutNanos()J
HSPLcom/android/okhttp/okio/Util;->checkOffsetAndCount(JJJ)V
HSPLcom/android/okhttp/okio/Util;->reverseBytesInt(I)I
+HPLcom/android/okhttp/okio/Util;->sneakyRethrow(Ljava/lang/Throwable;)V
+HPLcom/android/okhttp/okio/Util;->sneakyThrow2(Ljava/lang/Throwable;)V
HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;-><init>([BI)V
HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;->derForm([BI)[B
HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;->fromInputStream(ILjava/io/InputStream;)Lcom/android/org/bouncycastle/asn1/ASN1BitString;
+HPLcom/android/org/bouncycastle/asn1/ASN1BitString;->getBytes()[B
+HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;->getOctets()[B
+HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;->getPadBits()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1BitString;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
HSPLcom/android/org/bouncycastle/asn1/ASN1EncodableVector;-><init>()V
HSPLcom/android/org/bouncycastle/asn1/ASN1EncodableVector;->add(Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
HSPLcom/android/org/bouncycastle/asn1/ASN1EncodableVector;->get(I)Lcom/android/org/bouncycastle/asn1/ASN1Encodable;
@@ -9430,31 +34115,54 @@ HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->buildDEREncodableVector(
HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->buildEncodableVector()Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;
HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->buildObject(III)Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->createPrimitiveDERObject(ILcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;[[B)Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->getBMPCharBuffer(Lcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;)[C
HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->getBuffer(Lcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;[[B)[B
HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readLength()I
HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readLength(Ljava/io/InputStream;I)I
HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
HSPLcom/android/org/bouncycastle/asn1/ASN1InputStream;->readTagNumber(Ljava/io/InputStream;I)I
+HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;-><init>(J)V
HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;-><init>(Ljava/math/BigInteger;)V
HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;-><init>([BZ)V
HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->encodedLength()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->getInstance(Lcom/android/org/bouncycastle/asn1/ASN1TaggedObject;Z)Lcom/android/org/bouncycastle/asn1/ASN1Integer;
HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/ASN1Integer;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->getPositiveValue()Ljava/math/BigInteger;
HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->getValue()Ljava/math/BigInteger;
HSPLcom/android/org/bouncycastle/asn1/ASN1Integer;->isMalformed([B)Z
+HSPLcom/android/org/bouncycastle/asn1/ASN1Null;->asn1Equals(Lcom/android/org/bouncycastle/asn1/ASN1Primitive;)Z
HSPLcom/android/org/bouncycastle/asn1/ASN1Object;-><init>()V
+HPLcom/android/org/bouncycastle/asn1/ASN1Object;->getEncoded()[B
HSPLcom/android/org/bouncycastle/asn1/ASN1Object;->getEncoded(Ljava/lang/String;)[B
HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier$OidHandle;-><init>([B)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier$OidHandle;->equals(Ljava/lang/Object;)Z
HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier$OidHandle;->hashCode()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;-><init>(Ljava/lang/String;)V
HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;-><init>([B)V
HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->asn1Equals(Lcom/android/org/bouncycastle/asn1/ASN1Primitive;)Z
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->doOutput(Ljava/io/ByteArrayOutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->encodedLength()I
HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->fromOctetString([B)Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->getBody()[B
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->getId()Ljava/lang/String;
HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->hashCode()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->intern()Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->isValidBranchID(Ljava/lang/String;I)Z
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->isValidIdentifier(Ljava/lang/String;)Z
+HPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->on(Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->toString()Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;->writeField(Ljava/io/ByteArrayOutputStream;J)V
HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;-><init>(Ljava/io/OutputStream;)V
+HPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->getDERSubStream()Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;
HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->write(I)V
HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->write([B)V
HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->writeEncoded(I[B)V
HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->writeLength(I)V
+HPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->writeObject(Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1OutputStream;->writeTag(II)V
HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;-><init>()V
HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->equals(Ljava/lang/Object;)Z
HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->fromByteArray([B)Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
@@ -9462,22 +34170,73 @@ HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->toASN1Primitive()Lcom/andr
HSPLcom/android/org/bouncycastle/asn1/ASN1Primitive;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;-><init>()V
HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;-><init>([Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/ASN1Sequence;
HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->getObjectAt(I)Lcom/android/org/bouncycastle/asn1/ASN1Encodable;
HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->getObjects()Ljava/util/Enumeration;
HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->size()I
HSPLcom/android/org/bouncycastle/asn1/ASN1Sequence;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;Z)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/ASN1Set;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;->getObjectAt(I)Lcom/android/org/bouncycastle/asn1/ASN1Encodable;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;->getObjects()Ljava/util/Enumeration;
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;->size()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;->sort()V
+HSPLcom/android/org/bouncycastle/asn1/ASN1Set;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1StreamParser;-><init>(Ljava/io/InputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1StreamParser;-><init>(Ljava/io/InputStream;I)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1StreamParser;->readObject()Lcom/android/org/bouncycastle/asn1/ASN1Encodable;
+HSPLcom/android/org/bouncycastle/asn1/ASN1StreamParser;->readTaggedObject(ZI)Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1StreamParser;->readVector()Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;
+HSPLcom/android/org/bouncycastle/asn1/ASN1StreamParser;->set00Check(Z)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1TaggedObject;-><init>(ZILcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1TaggedObject;->getObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1TaggedObject;->toDERObject()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/ASN1UTCTime;-><init>(Ljava/lang/String;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1UTCTime;-><init>([B)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1UTCTime;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/ASN1UTCTime;->encodedLength()I
+HSPLcom/android/org/bouncycastle/asn1/ASN1UTCTime;->getDate()Ljava/util/Date;
+HSPLcom/android/org/bouncycastle/asn1/ASN1UTCTime;->getTime()Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/asn1/DERBitString;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/DERBitString;-><init>([B)V
HSPLcom/android/org/bouncycastle/asn1/DERBitString;-><init>([BI)V
+HSPLcom/android/org/bouncycastle/asn1/DERBitString;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/DERBitString;->encodedLength()I
HSPLcom/android/org/bouncycastle/asn1/DERBitString;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/DERBitString;
HSPLcom/android/org/bouncycastle/asn1/DERFactory;->createSequence(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;)Lcom/android/org/bouncycastle/asn1/ASN1Sequence;
+HSPLcom/android/org/bouncycastle/asn1/DERFactory;->createSet(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;)Lcom/android/org/bouncycastle/asn1/ASN1Set;
+HSPLcom/android/org/bouncycastle/asn1/DERNull;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/DERNull;->encodedLength()I
HSPLcom/android/org/bouncycastle/asn1/DEROutputStream;-><init>(Ljava/io/OutputStream;)V
HSPLcom/android/org/bouncycastle/asn1/DEROutputStream;->getDERSubStream()Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;
HSPLcom/android/org/bouncycastle/asn1/DEROutputStream;->writeObject(Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/DERPrintableString;-><init>([B)V
+HSPLcom/android/org/bouncycastle/asn1/DERPrintableString;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/DERPrintableString;->encodedLength()I
+HSPLcom/android/org/bouncycastle/asn1/DERPrintableString;->getString()Ljava/lang/String;
HSPLcom/android/org/bouncycastle/asn1/DERSequence;-><init>()V
HSPLcom/android/org/bouncycastle/asn1/DERSequence;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;)V
+HSPLcom/android/org/bouncycastle/asn1/DERSequence;-><init>([Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
HSPLcom/android/org/bouncycastle/asn1/DERSequence;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/DERSequence;->encodedLength()I
HSPLcom/android/org/bouncycastle/asn1/DERSequence;->getBodyLength()I
+HSPLcom/android/org/bouncycastle/asn1/DERSet;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/DERSet;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/DERSet;->encodedLength()I
+HSPLcom/android/org/bouncycastle/asn1/DERSet;->getBodyLength()I
+HSPLcom/android/org/bouncycastle/asn1/DERTaggedObject;-><clinit>()V
+HSPLcom/android/org/bouncycastle/asn1/DERTaggedObject;-><init>(ZILcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/DERTaggedObject;->encode(Lcom/android/org/bouncycastle/asn1/ASN1OutputStream;)V
+HSPLcom/android/org/bouncycastle/asn1/DERTaggedObject;->encodedLength()I
+HSPLcom/android/org/bouncycastle/asn1/DERUTCTime;-><init>(Ljava/lang/String;)V
HSPLcom/android/org/bouncycastle/asn1/DLSequence;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;)V
+HSPLcom/android/org/bouncycastle/asn1/DLSet;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;)V
+HSPLcom/android/org/bouncycastle/asn1/DateUtil;-><clinit>()V
+HSPLcom/android/org/bouncycastle/asn1/DateUtil;->epochAdjust(Ljava/util/Date;)Ljava/util/Date;
+HSPLcom/android/org/bouncycastle/asn1/DateUtil;->forEN()Ljava/util/Locale;
+HSPLcom/android/org/bouncycastle/asn1/DateUtil;->longValueOf(J)Ljava/lang/Long;
HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;-><init>(Ljava/io/InputStream;I)V
HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->getRemaining()I
HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->read()I
@@ -9485,74 +34244,407 @@ HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->read([BII)I
HSPLcom/android/org/bouncycastle/asn1/DefiniteLengthInputStream;->toByteArray()[B
HSPLcom/android/org/bouncycastle/asn1/LimitedInputStream;-><init>(Ljava/io/InputStream;I)V
HSPLcom/android/org/bouncycastle/asn1/LimitedInputStream;->setParentEofDetect(Z)V
+HSPLcom/android/org/bouncycastle/asn1/OIDTokenizer;-><init>(Ljava/lang/String;)V
+HSPLcom/android/org/bouncycastle/asn1/OIDTokenizer;->hasMoreTokens()Z
+HSPLcom/android/org/bouncycastle/asn1/OIDTokenizer;->nextToken()Ljava/lang/String;
HSPLcom/android/org/bouncycastle/asn1/StreamUtil;->calculateBodyLength(I)I
+HSPLcom/android/org/bouncycastle/asn1/StreamUtil;->calculateTagLength(I)I
HSPLcom/android/org/bouncycastle/asn1/StreamUtil;->findLimit(Ljava/io/InputStream;)I
+HSPLcom/android/org/bouncycastle/asn1/pkcs/RSASSAPSSparams;-><clinit>()V
+HSPLcom/android/org/bouncycastle/asn1/pkcs/RSASSAPSSparams;-><init>(Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;Lcom/android/org/bouncycastle/asn1/ASN1Integer;Lcom/android/org/bouncycastle/asn1/ASN1Integer;)V
+HSPLcom/android/org/bouncycastle/asn1/x500/RDN;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Set;)V
+HSPLcom/android/org/bouncycastle/asn1/x500/RDN;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x500/RDN;
+HSPLcom/android/org/bouncycastle/asn1/x500/RDN;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x500/X500Name;-><clinit>()V
+HSPLcom/android/org/bouncycastle/asn1/x500/X500Name;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
+HSPLcom/android/org/bouncycastle/asn1/x500/X500Name;-><init>(Lcom/android/org/bouncycastle/asn1/x500/X500NameStyle;Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
+HSPLcom/android/org/bouncycastle/asn1/x500/X500Name;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x500/X500Name;
+HSPLcom/android/org/bouncycastle/asn1/x500/X500Name;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x500/style/AbstractX500NameStyle;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/x500/style/AbstractX500NameStyle;->copyHashTable(Ljava/util/Hashtable;)Ljava/util/Hashtable;
+HSPLcom/android/org/bouncycastle/asn1/x500/style/BCStyle;-><clinit>()V
+HSPLcom/android/org/bouncycastle/asn1/x500/style/BCStyle;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;)V
HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;->getAlgorithm()Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;
HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;
HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;->getParameters()Lcom/android/org/bouncycastle/asn1/ASN1Encodable;
+HSPLcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x509/Certificate;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/Certificate;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/Certificate;
+HSPLcom/android/org/bouncycastle/asn1/x509/Certificate;->getTBSCertificate()Lcom/android/org/bouncycastle/asn1/x509/TBSCertificate;
+HSPLcom/android/org/bouncycastle/asn1/x509/Certificate;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;->getG()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/DSAParameter;
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;->getP()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;->getQ()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/asn1/x509/DSAParameter;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;-><init>(Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;->getAlgorithm()Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;
HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
+HPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;->getPublicKeyData()Lcom/android/org/bouncycastle/asn1/DERBitString;
+HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;->parsePublicKey()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x509/TBSCertificate;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/TBSCertificate;->getExtensions()Lcom/android/org/bouncycastle/asn1/x509/Extensions;
+HSPLcom/android/org/bouncycastle/asn1/x509/TBSCertificate;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/TBSCertificate;
+HSPLcom/android/org/bouncycastle/asn1/x509/TBSCertificate;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x509/Time;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Primitive;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/Time;-><init>(Ljava/util/Date;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/Time;->getInstance(Ljava/lang/Object;)Lcom/android/org/bouncycastle/asn1/x509/Time;
+HSPLcom/android/org/bouncycastle/asn1/x509/Time;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/asn1/x509/V3TBSCertificateGenerator;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/x509/V3TBSCertificateGenerator;->generateTBSCertificate()Lcom/android/org/bouncycastle/asn1/x509/TBSCertificate;
+HSPLcom/android/org/bouncycastle/asn1/x509/V3TBSCertificateGenerator;->setEndDate(Lcom/android/org/bouncycastle/asn1/x509/Time;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/V3TBSCertificateGenerator;->setIssuer(Lcom/android/org/bouncycastle/asn1/x509/X509Name;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/V3TBSCertificateGenerator;->setSerialNumber(Lcom/android/org/bouncycastle/asn1/ASN1Integer;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/V3TBSCertificateGenerator;->setSignature(Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/V3TBSCertificateGenerator;->setStartDate(Lcom/android/org/bouncycastle/asn1/x509/Time;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/V3TBSCertificateGenerator;->setSubject(Lcom/android/org/bouncycastle/asn1/x509/X509Name;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/V3TBSCertificateGenerator;->setSubjectPublicKeyInfo(Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/X509ExtensionsGenerator;-><init>()V
+HSPLcom/android/org/bouncycastle/asn1/x509/X509ExtensionsGenerator;->isEmpty()Z
+HSPLcom/android/org/bouncycastle/asn1/x509/X509Name;-><clinit>()V
+HSPLcom/android/org/bouncycastle/asn1/x509/X509Name;-><init>(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)V
+HSPLcom/android/org/bouncycastle/asn1/x509/X509Name;->toASN1Primitive()Lcom/android/org/bouncycastle/asn1/ASN1Primitive;
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;-><init>()V
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BlockCipher;)V
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;->doFinal([BI)I
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;->getBlockSize()I
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;->getOutputSize(I)I
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;->getUnderlyingCipher()Lcom/android/org/bouncycastle/crypto/BlockCipher;
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;->getUpdateOutputSize(I)I
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;->init(ZLcom/android/org/bouncycastle/crypto/CipherParameters;)V
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;->processBytes([BII[BI)I
+HSPLcom/android/org/bouncycastle/crypto/BufferedBlockCipher;->reset()V
HSPLcom/android/org/bouncycastle/crypto/CryptoServicesRegistrar;->getSecureRandom()Ljava/security/SecureRandom;
HSPLcom/android/org/bouncycastle/crypto/PBEParametersGenerator;-><init>()V
HSPLcom/android/org/bouncycastle/crypto/PBEParametersGenerator;->PKCS12PasswordToBytes([C)[B
HSPLcom/android/org/bouncycastle/crypto/PBEParametersGenerator;->init([B[BI)V
+HSPLcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactory;->getSHA1()Lcom/android/org/bouncycastle/crypto/Digest;
+HSPLcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactory;->getSHA256()Lcom/android/org/bouncycastle/crypto/Digest;
+HSPLcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactoryOpenSSL;->getSHA1()Lcom/android/org/bouncycastle/crypto/Digest;
+HSPLcom/android/org/bouncycastle/crypto/digests/AndroidDigestFactoryOpenSSL;->getSHA256()Lcom/android/org/bouncycastle/crypto/Digest;
+HSPLcom/android/org/bouncycastle/crypto/digests/GeneralDigest;-><init>()V
+HSPLcom/android/org/bouncycastle/crypto/digests/GeneralDigest;-><init>(Lcom/android/org/bouncycastle/crypto/digests/GeneralDigest;)V
+HSPLcom/android/org/bouncycastle/crypto/digests/GeneralDigest;->copyIn(Lcom/android/org/bouncycastle/crypto/digests/GeneralDigest;)V
+HSPLcom/android/org/bouncycastle/crypto/digests/GeneralDigest;->finish()V
+HSPLcom/android/org/bouncycastle/crypto/digests/GeneralDigest;->getByteLength()I
+HSPLcom/android/org/bouncycastle/crypto/digests/GeneralDigest;->reset()V
+HSPLcom/android/org/bouncycastle/crypto/digests/GeneralDigest;->update(B)V
+HSPLcom/android/org/bouncycastle/crypto/digests/GeneralDigest;->update([BII)V
+HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA1;-><init>()V
+HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest$SHA256;-><init>()V
HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;-><init>(Ljava/lang/String;I)V
HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->doFinal([BI)I
HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->getByteLength()I
HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->getDigestSize()I
+HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->reset()V
HSPLcom/android/org/bouncycastle/crypto/digests/OpenSSLDigest;->update([BII)V
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;-><init>()V
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;-><init>(Lcom/android/org/bouncycastle/crypto/digests/SHA1Digest;)V
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;->copy()Lcom/android/org/bouncycastle/util/Memoable;
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;->copyIn(Lcom/android/org/bouncycastle/crypto/digests/SHA1Digest;)V
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;->doFinal([BI)I
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;->f(III)I
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;->g(III)I
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;->getDigestSize()I
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;->h(III)I
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;->processBlock()V
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;->processLength(J)V
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;->processWord([BI)V
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;->reset()V
+HSPLcom/android/org/bouncycastle/crypto/digests/SHA1Digest;->reset(Lcom/android/org/bouncycastle/util/Memoable;)V
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;-><init>()V
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->encryptBlock([[I)V
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->generateWorkingKey([BZ)[[I
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->getAlgorithmName()Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->getBlockSize()I
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->init(ZLcom/android/org/bouncycastle/crypto/CipherParameters;)V
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->packBlock([BI)V
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->processBlock([BI[BI)I
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->reset()V
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->shift(II)I
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->subWord(I)I
+HSPLcom/android/org/bouncycastle/crypto/engines/AESEngine;->unpackBlock([BI)V
HSPLcom/android/org/bouncycastle/crypto/generators/PKCS12ParametersGenerator;-><init>(Lcom/android/org/bouncycastle/crypto/Digest;)V
HSPLcom/android/org/bouncycastle/crypto/generators/PKCS12ParametersGenerator;->adjust([BI[B)V
HSPLcom/android/org/bouncycastle/crypto/generators/PKCS12ParametersGenerator;->generateDerivedKey(II)[B
+HSPLcom/android/org/bouncycastle/crypto/generators/PKCS12ParametersGenerator;->generateDerivedMacParameters(I)Lcom/android/org/bouncycastle/crypto/CipherParameters;
HSPLcom/android/org/bouncycastle/crypto/generators/PKCS12ParametersGenerator;->generateDerivedParameters(II)Lcom/android/org/bouncycastle/crypto/CipherParameters;
+HSPLcom/android/org/bouncycastle/crypto/io/MacInputStream;-><init>(Ljava/io/InputStream;Lcom/android/org/bouncycastle/crypto/Mac;)V
+HSPLcom/android/org/bouncycastle/crypto/io/MacInputStream;->read()I
+HSPLcom/android/org/bouncycastle/crypto/io/MacInputStream;->read([BII)I
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;-><clinit>()V
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;-><init>(Lcom/android/org/bouncycastle/crypto/Digest;)V
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;-><init>(Lcom/android/org/bouncycastle/crypto/Digest;I)V
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->doFinal([BI)I
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->getByteLength(Lcom/android/org/bouncycastle/crypto/Digest;)I
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->getMacSize()I
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->init(Lcom/android/org/bouncycastle/crypto/CipherParameters;)V
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->update(B)V
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->update([BII)V
+HSPLcom/android/org/bouncycastle/crypto/macs/HMac;->xorPad([BIB)V
+HSPLcom/android/org/bouncycastle/crypto/paddings/PKCS7Padding;-><init>()V
+HSPLcom/android/org/bouncycastle/crypto/paddings/PKCS7Padding;->addPadding([BI)I
+HSPLcom/android/org/bouncycastle/crypto/paddings/PKCS7Padding;->init(Ljava/security/SecureRandom;)V
+HPLcom/android/org/bouncycastle/crypto/paddings/PKCS7Padding;->padCount([B)I
+HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BlockCipher;)V
+HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BlockCipher;Lcom/android/org/bouncycastle/crypto/paddings/BlockCipherPadding;)V
+HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;->doFinal([BI)I
+HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;->getOutputSize(I)I
+HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;->getUpdateOutputSize(I)I
+HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;->init(ZLcom/android/org/bouncycastle/crypto/CipherParameters;)V
+HSPLcom/android/org/bouncycastle/crypto/paddings/PaddedBufferedBlockCipher;->processBytes([BII[BI)I
+HSPLcom/android/org/bouncycastle/crypto/params/AsymmetricKeyParameter;-><init>(Z)V
+HSPLcom/android/org/bouncycastle/crypto/params/DSAKeyParameters;-><init>(ZLcom/android/org/bouncycastle/crypto/params/DSAParameters;)V
+PLcom/android/org/bouncycastle/crypto/params/DSAKeyParameters;->getParameters()Lcom/android/org/bouncycastle/crypto/params/DSAParameters;
+HSPLcom/android/org/bouncycastle/crypto/params/DSAParameters;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
+PLcom/android/org/bouncycastle/crypto/params/DSAParameters;->getG()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/crypto/params/DSAParameters;->getP()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/crypto/params/DSAParameters;->getQ()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/crypto/params/DSAPublicKeyParameters;-><init>(Ljava/math/BigInteger;Lcom/android/org/bouncycastle/crypto/params/DSAParameters;)V
+PLcom/android/org/bouncycastle/crypto/params/DSAPublicKeyParameters;->getY()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/crypto/params/DSAPublicKeyParameters;->validate(Ljava/math/BigInteger;Lcom/android/org/bouncycastle/crypto/params/DSAParameters;)Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/crypto/params/KeyParameter;-><init>([B)V
HSPLcom/android/org/bouncycastle/crypto/params/KeyParameter;-><init>([BII)V
HSPLcom/android/org/bouncycastle/crypto/params/KeyParameter;->getKey()[B
HSPLcom/android/org/bouncycastle/crypto/params/ParametersWithIV;-><init>(Lcom/android/org/bouncycastle/crypto/CipherParameters;[BII)V
+HSPLcom/android/org/bouncycastle/crypto/params/ParametersWithIV;->getIV()[B
HSPLcom/android/org/bouncycastle/crypto/params/ParametersWithIV;->getParameters()Lcom/android/org/bouncycastle/crypto/CipherParameters;
+PLcom/android/org/bouncycastle/crypto/signers/DSASigner;-><init>()V
+PLcom/android/org/bouncycastle/crypto/signers/DSASigner;->calculateE(Ljava/math/BigInteger;[B)Ljava/math/BigInteger;
+PLcom/android/org/bouncycastle/crypto/signers/DSASigner;->getOrder()Ljava/math/BigInteger;
+PLcom/android/org/bouncycastle/crypto/signers/DSASigner;->init(ZLcom/android/org/bouncycastle/crypto/CipherParameters;)V
+PLcom/android/org/bouncycastle/crypto/signers/DSASigner;->initSecureRandom(ZLjava/security/SecureRandom;)Ljava/security/SecureRandom;
+PLcom/android/org/bouncycastle/crypto/signers/DSASigner;->verifySignature([BLjava/math/BigInteger;Ljava/math/BigInteger;)Z
+PLcom/android/org/bouncycastle/crypto/signers/RandomDSAKCalculator;-><clinit>()V
+PLcom/android/org/bouncycastle/crypto/signers/RandomDSAKCalculator;-><init>()V
+PLcom/android/org/bouncycastle/crypto/signers/StandardDSAEncoding;-><clinit>()V
+PLcom/android/org/bouncycastle/crypto/signers/StandardDSAEncoding;-><init>()V
+PLcom/android/org/bouncycastle/crypto/signers/StandardDSAEncoding;->checkValue(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
+PLcom/android/org/bouncycastle/crypto/signers/StandardDSAEncoding;->decode(Ljava/math/BigInteger;[B)[Ljava/math/BigInteger;
+PLcom/android/org/bouncycastle/crypto/signers/StandardDSAEncoding;->decodeValue(Ljava/math/BigInteger;Lcom/android/org/bouncycastle/asn1/ASN1Sequence;I)Ljava/math/BigInteger;
+PLcom/android/org/bouncycastle/crypto/signers/StandardDSAEncoding;->encode(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)[B
+PLcom/android/org/bouncycastle/crypto/signers/StandardDSAEncoding;->encodeValue(Ljava/math/BigInteger;Lcom/android/org/bouncycastle/asn1/ASN1EncodableVector;Ljava/math/BigInteger;)V
+HPLcom/android/org/bouncycastle/jcajce/PKCS12Key;-><init>([CZ)V
+HPLcom/android/org/bouncycastle/jcajce/PKCS12Key;->getEncoded()[B
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;-><init>(Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)V
+PLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->engineGetKeyParameters()Lcom/android/org/bouncycastle/crypto/params/DSAPublicKeyParameters;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->getEncoded()[B
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->getParams()Ljava/security/interfaces/DSAParams;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->getY()Ljava/math/BigInteger;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->hashCode()I
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->isNotNull(Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)Z
+PLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->readObject(Ljava/io/ObjectInputStream;)V
+PLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/BCDSAPublicKey;->writeObject(Ljava/io/ObjectOutputStream;)V
+PLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSASigner$dsa256;-><init>()V
+PLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSASigner;-><init>(Lcom/android/org/bouncycastle/crypto/Digest;Lcom/android/org/bouncycastle/crypto/DSAExt;)V
+PLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSASigner;->engineInitVerify(Ljava/security/PublicKey;)V
+PLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSASigner;->engineUpdate([BII)V
+PLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSASigner;->engineVerify([B)Z
+PLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSAUtil;->generatePublicKeyParameter(Ljava/security/PublicKey;)Lcom/android/org/bouncycastle/crypto/params/AsymmetricKeyParameter;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSAUtil;->isDsaOid(Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/DSAUtil;->toDSAParameters(Ljava/security/interfaces/DSAParams;)Lcom/android/org/bouncycastle/crypto/params/DSAParameters;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/KeyFactorySpi;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/KeyFactorySpi;->engineGeneratePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/dsa/KeyFactorySpi;->generatePublic(Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)Ljava/security/PublicKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/ec/KeyFactorySpi$EC;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/ec/KeyFactorySpi;-><init>(Ljava/lang/String;Lcom/android/org/bouncycastle/jcajce/provider/config/ProviderConfiguration;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/ec/KeyFactorySpi;->engineGeneratePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/ec/KeyFactorySpi;->generatePublic(Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)Ljava/security/PublicKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/CipherSpi$NoPadding;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/CipherSpi;-><init>(Lcom/android/org/bouncycastle/crypto/AsymmetricBlockCipher;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/CipherSpi;->engineSetMode(Ljava/lang/String;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/CipherSpi;->engineSetPadding(Ljava/lang/String;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/CipherSpi;->initFromSpec(Ljavax/crypto/spec/OAEPParameterSpec;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/KeyFactorySpi;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/KeyFactorySpi;->engineGeneratePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
+HPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/KeyFactorySpi;->generatePrivate(Lcom/android/org/bouncycastle/asn1/pkcs/PrivateKeyInfo;)Ljava/security/PrivateKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/KeyFactorySpi;->generatePublic(Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)Ljava/security/PublicKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/rsa/RSAUtil;->isRsaOid(Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;)Z
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/BaseCipherSpi;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/BaseKeyFactorySpi;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/BaseKeyFactorySpi;->engineGeneratePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/KeyUtil;->getEncodedSubjectPublicKeyInfo(Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)[B
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/KeyUtil;->getEncodedSubjectPublicKeyInfo(Lcom/android/org/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)[B
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/PKCS12BagAttributeCarrierImpl;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/util/PKCS12BagAttributeCarrierImpl;-><init>(Ljava/util/Hashtable;Ljava/util/Vector;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/CertificateFactory;-><clinit>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/CertificateFactory;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/CertificateFactory;->engineGenerateCertificate(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/CertificateFactory;->getCertificate(Lcom/android/org/bouncycastle/asn1/ASN1Sequence;)Ljava/security/cert/Certificate;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/CertificateFactory;->readDERCertificate(Lcom/android/org/bouncycastle/asn1/ASN1InputStream;)Ljava/security/cert/Certificate;
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/PEMUtil;-><init>(Ljava/lang/String;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/X509CertificateObject;-><init>(Lcom/android/org/bouncycastle/jcajce/util/JcaJceHelper;Lcom/android/org/bouncycastle/asn1/x509/Certificate;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/X509CertificateObject;->getEncoded()[B
+HSPLcom/android/org/bouncycastle/jcajce/provider/asymmetric/x509/X509CertificateObject;->getExtensionBytes(Ljava/lang/String;)[B
HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$Std;-><init>()V
+PLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$StoreEntry;-><init>(Lcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;Ljava/lang/String;Ljava/security/cert/Certificate;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$StoreEntry;-><init>(Lcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;Ljava/lang/String;Ljava/util/Date;ILjava/lang/Object;)V
+HPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$StoreEntry;-><init>(Lcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;Ljava/lang/String;Ljava/util/Date;ILjava/lang/Object;[Ljava/security/cert/Certificate;)V
+HPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$StoreEntry;->getCertificateChain()[Ljava/security/cert/Certificate;
+HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$StoreEntry;->getObject()Ljava/lang/Object;
+HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi$StoreEntry;->getType()I
HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;-><init>(I)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->decodeCertificate(Ljava/io/DataInputStream;)Ljava/security/cert/Certificate;
HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineAliases()Ljava/util/Enumeration;
+HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineGetCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;
HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineLoad(Ljava/io/InputStream;[C)V
+PLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->engineSetCertificateEntry(Ljava/lang/String;Ljava/security/cert/Certificate;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/keystore/bc/BcKeyStoreSpi;->loadStore(Ljava/io/InputStream;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/AES$ECB$1;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/AES$ECB$1;->get()Lcom/android/org/bouncycastle/crypto/BlockCipher;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/AES$ECB;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey;-><init>(Ljava/lang/String;Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;IIIILjavax/crypto/spec/PBEKeySpec;Lcom/android/org/bouncycastle/crypto/CipherParameters;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey;->getAlgorithm()Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey;->getEncoded()[B
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey;->getFormat()Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey;->getOID()Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BCPBEKey;->getParam()Lcom/android/org/bouncycastle/crypto/CipherParameters;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BlockCipher;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BufferedBlockCipher;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->doFinal([BI)I
+HPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->getAlgorithmName()Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->getOutputSize(I)I
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->getUnderlyingCipher()Lcom/android/org/bouncycastle/crypto/BlockCipher;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->getUpdateOutputSize(I)I
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->init(ZLcom/android/org/bouncycastle/crypto/CipherParameters;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->processBytes([BII[BI)I
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher$BufferedGenericBlockCipher;->wrapOnNoPadding()Z
+HPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;-><init>(Lcom/android/org/bouncycastle/crypto/BlockCipher;IIII)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;-><init>(Lcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BlockCipherProvider;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->adjustParameters(Ljava/security/spec/AlgorithmParameterSpec;Lcom/android/org/bouncycastle/crypto/CipherParameters;)Lcom/android/org/bouncycastle/crypto/CipherParameters;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineDoFinal([BII)[B
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineDoFinal([BII[BI)I
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineGetOutputSize(I)I
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineInit(ILjava/security/Key;Ljava/security/SecureRandom;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineInit(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineSetMode(Ljava/lang/String;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineSetPadding(Ljava/lang/String;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->engineUpdate([BII[BI)I
+HPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher;->isBCPBEKeyWithoutIV(Ljava/security/Key;)Z
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseSecretKeyFactory;-><init>(Ljava/lang/String;Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;)V
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher;-><init>()V
+HPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/BaseWrapCipher;->engineUnwrap([BLjava/lang/String;I)Ljava/security/Key;
+HPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/ClassUtil;->loadClass(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Class;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->convertPassword(ILjavax/crypto/spec/PBEKeySpec;)[B
+HPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->getParameterSpecFromPBEParameterSpec(Ljavax/crypto/spec/PBEParameterSpec;)Ljava/security/spec/AlgorithmParameterSpec;
HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->makePBEGenerator(II)Lcom/android/org/bouncycastle/crypto/PBEParametersGenerator;
+HPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->makePBEMacParameters(Ljavax/crypto/SecretKey;IIILjavax/crypto/spec/PBEParameterSpec;)Lcom/android/org/bouncycastle/crypto/CipherParameters;
+HSPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->makePBEParameters(Ljavax/crypto/spec/PBEKeySpec;IIII)Lcom/android/org/bouncycastle/crypto/CipherParameters;
+HPLcom/android/org/bouncycastle/jcajce/provider/symmetric/util/PBE$Util;->makePBEParameters([BIIIILjava/security/spec/AlgorithmParameterSpec;Ljava/lang/String;)Lcom/android/org/bouncycastle/crypto/CipherParameters;
+HSPLcom/android/org/bouncycastle/jcajce/provider/util/DigestFactory;->getDigest(Ljava/lang/String;)Lcom/android/org/bouncycastle/crypto/Digest;
+HSPLcom/android/org/bouncycastle/jcajce/util/BCJcaJceHelper;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/util/BCJcaJceHelper;->getBouncyCastleProvider()Ljava/security/Provider;
HSPLcom/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper;-><init>()V
+HSPLcom/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper;->createCertificateFactory(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
+HPLcom/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper;->createCipher(Ljava/lang/String;)Ljavax/crypto/Cipher;
+HPLcom/android/org/bouncycastle/jcajce/util/DefaultJcaJceHelper;->createMac(Ljava/lang/String;)Ljavax/crypto/Mac;
+HSPLcom/android/org/bouncycastle/jcajce/util/ProviderJcaJceHelper;-><init>(Ljava/security/Provider;)V
+HSPLcom/android/org/bouncycastle/jce/X509Principal;-><init>([B)V
+HSPLcom/android/org/bouncycastle/jce/X509Principal;->readSequence(Lcom/android/org/bouncycastle/asn1/ASN1InputStream;)Lcom/android/org/bouncycastle/asn1/ASN1Sequence;
+HPLcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider;->getAsymmetricKeyInfoConverter(Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;)Lcom/android/org/bouncycastle/jcajce/provider/util/AsymmetricKeyInfoConverter;
+HPLcom/android/org/bouncycastle/jce/provider/BouncyCastleProvider;->getPrivateKey(Lcom/android/org/bouncycastle/asn1/pkcs/PrivateKeyInfo;)Ljava/security/PrivateKey;
+HSPLcom/android/org/bouncycastle/jce/provider/CertStoreCollectionSpi;-><init>(Ljava/security/cert/CertStoreParameters;)V
+PLcom/android/org/bouncycastle/jce/provider/CertStoreCollectionSpi;->engineGetCertificates(Ljava/security/cert/CertSelector;)Ljava/util/Collection;
+HSPLcom/android/org/bouncycastle/jce/provider/X509CertificateObject;-><init>(Lcom/android/org/bouncycastle/asn1/x509/Certificate;)V
+HSPLcom/android/org/bouncycastle/jce/provider/X509CertificateObject;->getEncoded()[B
+HSPLcom/android/org/bouncycastle/jce/provider/X509CertificateObject;->getExtensionBytes(Ljava/lang/String;)[B
HSPLcom/android/org/bouncycastle/util/Arrays;->areEqual([B[B)Z
HSPLcom/android/org/bouncycastle/util/Arrays;->clone([B)[B
+HSPLcom/android/org/bouncycastle/util/Arrays;->constantTimeAreEqual([B[B)Z
+HSPLcom/android/org/bouncycastle/util/Arrays;->fill([BB)V
HSPLcom/android/org/bouncycastle/util/Arrays;->hashCode([B)I
+HSPLcom/android/org/bouncycastle/util/Integers;->valueOf(I)Ljava/lang/Integer;
+HPLcom/android/org/bouncycastle/util/Pack;->bigEndianToInt([BI)I
+HSPLcom/android/org/bouncycastle/util/Pack;->intToBigEndian(I[BI)V
+HSPLcom/android/org/bouncycastle/util/Pack;->littleEndianToInt([BI)I
HSPLcom/android/org/bouncycastle/util/Properties$1;-><init>(Ljava/lang/String;)V
HSPLcom/android/org/bouncycastle/util/Properties$1;->run()Ljava/lang/Object;
HSPLcom/android/org/bouncycastle/util/Properties;->access$000()Ljava/lang/ThreadLocal;
+HPLcom/android/org/bouncycastle/util/Properties;->asBigInteger(Ljava/lang/String;)Ljava/math/BigInteger;
HSPLcom/android/org/bouncycastle/util/Properties;->fetchProperty(Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/org/bouncycastle/util/Properties;->isOverrideSet(Ljava/lang/String;)Z
+HSPLcom/android/org/bouncycastle/util/Strings;->asCharArray([B)[C
+HSPLcom/android/org/bouncycastle/util/Strings;->fromByteArray([B)Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/util/Strings;->toByteArray(Ljava/lang/String;)[B
+HPLcom/android/org/bouncycastle/util/Strings;->toLowerCase(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/org/bouncycastle/util/Strings;->toUpperCase(Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/org/bouncycastle/util/encoders/Hex;->encode([B)[B
+HPLcom/android/org/bouncycastle/util/encoders/Hex;->encode([BII)[B
+HPLcom/android/org/bouncycastle/util/encoders/HexEncoder;->encode([BIILjava/io/OutputStream;)I
HSPLcom/android/org/bouncycastle/util/io/Streams;->readFully(Ljava/io/InputStream;[B)I
HSPLcom/android/org/bouncycastle/util/io/Streams;->readFully(Ljava/io/InputStream;[BII)I
+HSPLcom/android/org/bouncycastle/x509/X509Util;-><clinit>()V
+HSPLcom/android/org/bouncycastle/x509/X509Util;->calculateSignature(Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;Ljava/security/PrivateKey;Ljava/security/SecureRandom;Lcom/android/org/bouncycastle/asn1/ASN1Encodable;)[B
+HSPLcom/android/org/bouncycastle/x509/X509Util;->creatPSSParams(Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;I)Lcom/android/org/bouncycastle/asn1/pkcs/RSASSAPSSparams;
+HSPLcom/android/org/bouncycastle/x509/X509Util;->getAlgorithmOID(Ljava/lang/String;)Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;
+HSPLcom/android/org/bouncycastle/x509/X509Util;->getSigAlgID(Lcom/android/org/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;)Lcom/android/org/bouncycastle/asn1/x509/AlgorithmIdentifier;
+HSPLcom/android/org/bouncycastle/x509/X509Util;->getSignatureInstance(Ljava/lang/String;)Ljava/security/Signature;
+HSPLcom/android/org/bouncycastle/x509/X509V3CertificateGenerator;-><init>()V
+HSPLcom/android/org/bouncycastle/x509/X509V3CertificateGenerator;->generate(Ljava/security/PrivateKey;)Ljava/security/cert/X509Certificate;
+HSPLcom/android/org/bouncycastle/x509/X509V3CertificateGenerator;->generate(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)Ljava/security/cert/X509Certificate;
+HSPLcom/android/org/bouncycastle/x509/X509V3CertificateGenerator;->generateJcaObject(Lcom/android/org/bouncycastle/asn1/x509/TBSCertificate;[B)Ljava/security/cert/X509Certificate;
+HSPLcom/android/org/bouncycastle/x509/X509V3CertificateGenerator;->generateTbsCert()Lcom/android/org/bouncycastle/asn1/x509/TBSCertificate;
+HSPLcom/android/org/bouncycastle/x509/X509V3CertificateGenerator;->setIssuerDN(Ljavax/security/auth/x500/X500Principal;)V
+HSPLcom/android/org/bouncycastle/x509/X509V3CertificateGenerator;->setNotAfter(Ljava/util/Date;)V
+HSPLcom/android/org/bouncycastle/x509/X509V3CertificateGenerator;->setNotBefore(Ljava/util/Date;)V
+HSPLcom/android/org/bouncycastle/x509/X509V3CertificateGenerator;->setPublicKey(Ljava/security/PublicKey;)V
+HSPLcom/android/org/bouncycastle/x509/X509V3CertificateGenerator;->setSerialNumber(Ljava/math/BigInteger;)V
+HSPLcom/android/org/bouncycastle/x509/X509V3CertificateGenerator;->setSignatureAlgorithm(Ljava/lang/String;)V
+HSPLcom/android/org/bouncycastle/x509/X509V3CertificateGenerator;->setSubjectDN(Ljavax/security/auth/x500/X500Principal;)V
HSPLcom/android/org/kxml2/io/KXmlParser;-><init>()V
HSPLcom/android/org/kxml2/io/KXmlParser;->adjustNsp()Z
+HSPLcom/android/org/kxml2/io/KXmlParser;->close()V
HSPLcom/android/org/kxml2/io/KXmlParser;->ensureCapacity([Ljava/lang/String;I)[Ljava/lang/String;
HSPLcom/android/org/kxml2/io/KXmlParser;->fillBuffer(I)Z
+HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeCount()I
+HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeName(I)Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeNamespace(I)Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributePrefix(I)Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeValue(I)Ljava/lang/String;
HSPLcom/android/org/kxml2/io/KXmlParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->getColumnNumber()I
+HSPLcom/android/org/kxml2/io/KXmlParser;->getDepth()I
HSPLcom/android/org/kxml2/io/KXmlParser;->getEventType()I
+HSPLcom/android/org/kxml2/io/KXmlParser;->getLineNumber()I
HSPLcom/android/org/kxml2/io/KXmlParser;->getName()Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->getNamespace()Ljava/lang/String;
HSPLcom/android/org/kxml2/io/KXmlParser;->getNamespace(Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/org/kxml2/io/KXmlParser;->getNamespaceCount(I)I
+HSPLcom/android/org/kxml2/io/KXmlParser;->getPositionDescription()Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->getPrefix()Ljava/lang/String;
HSPLcom/android/org/kxml2/io/KXmlParser;->getText()Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->getTextCharacters([I)[C
HSPLcom/android/org/kxml2/io/KXmlParser;->next()I
HSPLcom/android/org/kxml2/io/KXmlParser;->next(Z)I
+HSPLcom/android/org/kxml2/io/KXmlParser;->nextTag()I
+HSPLcom/android/org/kxml2/io/KXmlParser;->nextText()Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->nextToken()I
HSPLcom/android/org/kxml2/io/KXmlParser;->parseStartTag(ZZ)V
HSPLcom/android/org/kxml2/io/KXmlParser;->peekCharacter()I
HSPLcom/android/org/kxml2/io/KXmlParser;->peekType(Z)I
HSPLcom/android/org/kxml2/io/KXmlParser;->read(C)V
HSPLcom/android/org/kxml2/io/KXmlParser;->read([C)V
+HSPLcom/android/org/kxml2/io/KXmlParser;->readComment(Z)Ljava/lang/String;
HSPLcom/android/org/kxml2/io/KXmlParser;->readEndTag()V
HSPLcom/android/org/kxml2/io/KXmlParser;->readEntity(Ljava/lang/StringBuilder;ZZLcom/android/org/kxml2/io/KXmlParser$ValueContext;)V
HSPLcom/android/org/kxml2/io/KXmlParser;->readName()Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlParser;->readUntil([CZ)Ljava/lang/String;
HSPLcom/android/org/kxml2/io/KXmlParser;->readValue(CZZLcom/android/org/kxml2/io/KXmlParser$ValueContext;)Ljava/lang/String;
HSPLcom/android/org/kxml2/io/KXmlParser;->readXmlDeclaration()V
+HSPLcom/android/org/kxml2/io/KXmlParser;->require(ILjava/lang/String;Ljava/lang/String;)V
HSPLcom/android/org/kxml2/io/KXmlParser;->setFeature(Ljava/lang/String;Z)V
HSPLcom/android/org/kxml2/io/KXmlParser;->setInput(Ljava/io/InputStream;Ljava/lang/String;)V
HSPLcom/android/org/kxml2/io/KXmlParser;->setInput(Ljava/io/Reader;)V
HSPLcom/android/org/kxml2/io/KXmlParser;->skip()V
+HSPLcom/android/org/kxml2/io/KXmlSerializer;-><init>()V
HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(C)V
HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(Ljava/lang/String;)V
HSPLcom/android/org/kxml2/io/KXmlSerializer;->append(Ljava/lang/String;II)V
@@ -9562,26 +34654,317 @@ HSPLcom/android/org/kxml2/io/KXmlSerializer;->endDocument()V
HSPLcom/android/org/kxml2/io/KXmlSerializer;->endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
HSPLcom/android/org/kxml2/io/KXmlSerializer;->flush()V
HSPLcom/android/org/kxml2/io/KXmlSerializer;->flushBuffer()V
+PLcom/android/org/kxml2/io/KXmlSerializer;->getDepth()I
+PLcom/android/org/kxml2/io/KXmlSerializer;->getNamespace()Ljava/lang/String;
+PLcom/android/org/kxml2/io/KXmlSerializer;->getPrefix(Ljava/lang/String;ZZ)Ljava/lang/String;
+HSPLcom/android/org/kxml2/io/KXmlSerializer;->setFeature(Ljava/lang/String;Z)V
HSPLcom/android/org/kxml2/io/KXmlSerializer;->setOutput(Ljava/io/OutputStream;Ljava/lang/String;)V
HSPLcom/android/org/kxml2/io/KXmlSerializer;->setOutput(Ljava/io/Writer;)V
+PLcom/android/org/kxml2/io/KXmlSerializer;->setPrefix(Ljava/lang/String;Ljava/lang/String;)V
HSPLcom/android/org/kxml2/io/KXmlSerializer;->startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V
HSPLcom/android/org/kxml2/io/KXmlSerializer;->startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
+HPLcom/android/org/kxml2/io/KXmlSerializer;->text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;
HSPLcom/android/org/kxml2/io/KXmlSerializer;->writeEscaped(Ljava/lang/String;I)V
+PLcom/android/server/AppWidgetBackupBridge;->getWidgetState(Ljava/lang/String;I)[B
+HSPLcom/android/server/AppWidgetBackupBridge;->register(Lcom/android/server/WidgetBackupProvider;)V
+PLcom/android/server/AppWidgetBackupBridge;->restoreFinished(I)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$2;-><init>(Lcom/android/server/BootReceiver;Ljava/lang/String;ILandroid/os/DropBoxManager;Ljava/lang/String;)V
+PLcom/android/server/BootReceiver$2;->onEvent(ILjava/lang/String;)V
+PLcom/android/server/BootReceiver;-><clinit>()V
+PLcom/android/server/BootReceiver;-><init>()V
+PLcom/android/server/BootReceiver;->access$000(Lcom/android/server/BootReceiver;Landroid/content/Context;)V
+PLcom/android/server/BootReceiver;->access$100(Lcom/android/server/BootReceiver;Landroid/content/Context;)V
+PLcom/android/server/BootReceiver;->access$200()Ljava/util/HashMap;
+PLcom/android/server/BootReceiver;->access$300()Ljava/io/File;
+PLcom/android/server/BootReceiver;->access$400()I
+PLcom/android/server/BootReceiver;->access$500(Landroid/os/DropBoxManager;Ljava/util/HashMap;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
+PLcom/android/server/BootReceiver;->access$600(Lcom/android/server/BootReceiver;Ljava/util/HashMap;)V
+PLcom/android/server/BootReceiver;->addAuditErrorsToDropBox(Landroid/os/DropBoxManager;Ljava/util/HashMap;Ljava/lang/String;ILjava/lang/String;)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
+PLcom/android/server/BootReceiver;->getBootHeadersToLogAndUpdate()Ljava/lang/String;
+PLcom/android/server/BootReceiver;->getCurrentBootHeaders()Ljava/lang/String;
+PLcom/android/server/BootReceiver;->getPreviousBootHeaders()Ljava/lang/String;
+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;->logStatsdShutdownAtom(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/BootReceiver;->logSystemServerShutdownTimeMetrics()V
+PLcom/android/server/BootReceiver;->logTronShutdownMetric(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/BootReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+PLcom/android/server/BootReceiver;->readTimestamps()Ljava/util/HashMap;
+PLcom/android/server/BootReceiver;->removeOldUpdatePackages(Landroid/content/Context;)V
+PLcom/android/server/BootReceiver;->writeTimestamps(Ljava/util/HashMap;)V
+HSPLcom/android/server/LocalServices;->addService(Ljava/lang/Class;Ljava/lang/Object;)V
+HSPLcom/android/server/LocalServices;->getService(Ljava/lang/Class;)Ljava/lang/Object;
HSPLcom/android/server/NetworkManagementSocketTagger$1;->initialValue()Lcom/android/server/NetworkManagementSocketTagger$SocketTags;
HSPLcom/android/server/NetworkManagementSocketTagger$1;->initialValue()Ljava/lang/Object;
HSPLcom/android/server/NetworkManagementSocketTagger$SocketTags;-><init>()V
HSPLcom/android/server/NetworkManagementSocketTagger;-><init>()V
HSPLcom/android/server/NetworkManagementSocketTagger;->install()V
+HPLcom/android/server/NetworkManagementSocketTagger;->setKernelCounterSet(II)V
+PLcom/android/server/NetworkManagementSocketTagger;->setThreadSocketStatsTag(I)I
+PLcom/android/server/NetworkManagementSocketTagger;->setThreadSocketStatsUid(I)I
HSPLcom/android/server/NetworkManagementSocketTagger;->tag(Ljava/io/FileDescriptor;)V
HSPLcom/android/server/NetworkManagementSocketTagger;->tagSocketFd(Ljava/io/FileDescriptor;II)V
+HSPLcom/android/server/NetworkManagementSocketTagger;->unTagSocketFd(Ljava/io/FileDescriptor;)V
+HSPLcom/android/server/NetworkManagementSocketTagger;->untag(Ljava/io/FileDescriptor;)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;)V
+HSPLcom/android/server/SystemConfig;-><init>()V
+HSPLcom/android/server/SystemConfig;->addFeature(Ljava/lang/String;I)V
+PLcom/android/server/SystemConfig;->getAllowIgnoreLocationSettings()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getAllowImplicitBroadcasts()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getAllowInDataUsageSave()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getAllowInPowerSave()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getAllowInPowerSaveExceptIdle()Landroid/util/ArraySet;
+PLcom/android/server/SystemConfig;->getAllowUnthrottledLocation()Landroid/util/ArraySet;
+HSPLcom/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;->getAvailableFeatures()Landroid/util/ArrayMap;
+HSPLcom/android/server/SystemConfig;->getBackupTransportWhitelist()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getBugreportWhitelistedPackages()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getComponentsEnabledStates(Ljava/lang/String;)Landroid/util/ArrayMap;
+HSPLcom/android/server/SystemConfig;->getDisabledUntilUsedPreinstalledCarrierApps()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getDisabledUntilUsedPreinstalledCarrierAssociatedApps()Landroid/util/ArrayMap;
+HSPLcom/android/server/SystemConfig;->getGlobalGids()[I
+HSPLcom/android/server/SystemConfig;->getHiddenApiWhitelistedApps()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getInstance()Lcom/android/server/SystemConfig;
+PLcom/android/server/SystemConfig;->getLinkedApps()Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getPermissions()Landroid/util/ArrayMap;
+HSPLcom/android/server/SystemConfig;->getPrivAppPermissions(Ljava/lang/String;)Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getProductPrivAppDenyPermissions(Ljava/lang/String;)Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getProductPrivAppPermissions(Ljava/lang/String;)Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getSharedLibraries()Landroid/util/ArrayMap;
+HSPLcom/android/server/SystemConfig;->getSplitPermissions()Ljava/util/ArrayList;
+HSPLcom/android/server/SystemConfig;->getSystemExtPrivAppPermissions(Ljava/lang/String;)Landroid/util/ArraySet;
+HSPLcom/android/server/SystemConfig;->getSystemPermissions()Landroid/util/SparseArray;
+HSPLcom/android/server/SystemConfig;->readAllPermissions()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;->readPermissions(Ljava/io/File;I)V
+HSPLcom/android/server/SystemConfig;->readPermissionsFromXml(Ljava/io/File;I)V
+HSPLcom/android/server/SystemConfig;->readPrivAppPermissions(Lorg/xmlpull/v1/XmlPullParser;Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
+HSPLcom/android/server/SystemConfig;->readSplitPermission(Lorg/xmlpull/v1/XmlPullParser;Ljava/io/File;)V
+PLcom/android/server/backup/AccountManagerBackupHelper;-><init>()V
+PLcom/android/server/backup/AccountManagerBackupHelper;->getBackupPayload(Ljava/lang/String;)[B
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;-><init>(Landroid/content/Context;I)V
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;->accountAdded(Landroid/content/Context;I)V
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;->accountAddedInternal(I)V
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;->generateMd5Checksum([B)[B
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;->getAccounts(I)Ljava/util/Set;
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;->getStashFile(I)Ljava/io/File;
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;->performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;->readOldMd5Checksum(Landroid/os/ParcelFileDescriptor;)[B
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;->restoreFromJsonArray(Lorg/json/JSONArray;I)V
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;->serializeAccountSyncSettingsToJSON(I)Lorg/json/JSONObject;
+PLcom/android/server/backup/AccountSyncSettingsBackupHelper;->writeNewMd5Checksum(Landroid/os/ParcelFileDescriptor;[B)V
+PLcom/android/server/backup/NotificationBackupHelper;-><clinit>()V
+PLcom/android/server/backup/NotificationBackupHelper;-><init>(I)V
+PLcom/android/server/backup/NotificationBackupHelper;->getBackupPayload(Ljava/lang/String;)[B
+PLcom/android/server/backup/PermissionBackupHelper;-><init>(I)V
+PLcom/android/server/backup/PermissionBackupHelper;->getBackupPayload(Ljava/lang/String;)[B
+PLcom/android/server/backup/PreferredActivityBackupHelper;-><init>()V
+PLcom/android/server/backup/PreferredActivityBackupHelper;->getBackupPayload(Ljava/lang/String;)[B
+PLcom/android/server/backup/ShortcutBackupHelper;-><init>()V
+PLcom/android/server/backup/ShortcutBackupHelper;->getBackupPayload(Ljava/lang/String;)[B
+PLcom/android/server/backup/ShortcutBackupHelper;->getShortcutService()Landroid/content/pm/IShortcutService;
+PLcom/android/server/backup/SliceBackupHelper;-><clinit>()V
+PLcom/android/server/backup/SliceBackupHelper;-><init>(Landroid/content/Context;)V
+PLcom/android/server/backup/SliceBackupHelper;->getBackupPayload(Ljava/lang/String;)[B
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfProgramEvent;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfProgramEvent;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfProgramEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfProgramEvent;->computeSerializedSize()I
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfProgramEvent;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfStatistics;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfStatistics;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfStatistics;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfStatistics;->computeSerializedSize()I
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfStatistics;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ConnectStatistics;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ConnectStatistics;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ConnectStatistics;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ConnectStatistics;->computeSerializedSize()I
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ConnectStatistics;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;->clearValue()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;->computeSerializedSize()I
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;->setErrorCode(I)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;->setStateTransition(Ljava/lang/String;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DNSLookupBatch;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DNSLookupBatch;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DNSLookupBatch;
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DNSLookupBatch;->computeSerializedSize()I
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DNSLookupBatch;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DefaultNetworkEvent;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DefaultNetworkEvent;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DefaultNetworkEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DefaultNetworkEvent;->computeSerializedSize()I
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DefaultNetworkEvent;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->clearEvent()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->computeSerializedSize()I
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->emptyArray()[Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setApfProgramEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfProgramEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setApfStatistics(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ApfStatistics;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setConnectStatistics(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ConnectStatistics;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setDefaultNetworkEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DefaultNetworkEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setDhcpEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DHCPEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setDnsLookupBatch(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$DNSLookupBatch;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setIpProvisioningEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpProvisioningEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setIpReachabilityEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpReachabilityEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setNetworkEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setRaEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$RaEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setValidationProbeEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ValidationProbeEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->setWakeupStats(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$WakeupStats;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityLog;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityLog;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityLog;
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityLog;->computeSerializedSize()I
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityLog;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpProvisioningEvent;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpProvisioningEvent;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpProvisioningEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpProvisioningEvent;->computeSerializedSize()I
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpProvisioningEvent;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpReachabilityEvent;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpReachabilityEvent;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpReachabilityEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpReachabilityEvent;->computeSerializedSize()I
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpReachabilityEvent;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkEvent;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkEvent;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkEvent;->computeSerializedSize()I
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$NetworkEvent;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;->computeSerializedSize()I
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;->emptyArray()[Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$RaEvent;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$RaEvent;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$RaEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$RaEvent;->computeSerializedSize()I
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$RaEvent;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ValidationProbeEvent;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ValidationProbeEvent;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ValidationProbeEvent;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ValidationProbeEvent;->computeSerializedSize()I
+HPLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$ValidationProbeEvent;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$WakeupStats;-><init>()V
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$WakeupStats;->clear()Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$WakeupStats;
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$WakeupStats;->computeSerializedSize()I
+PLcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$WakeupStats;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
+HSPLcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;-><init>()V
+PLcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;-><init>(Lcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;)V
+PLcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+PLcom/android/server/job/JobSchedulerInternal$JobStorePersistStats;->toString()Ljava/lang/String;
+HSPLcom/android/server/net/BaseNetdEventCallback;-><init>()V
+HPLcom/android/server/net/BaseNetdEventCallback;->onConnectEvent(Ljava/lang/String;IJI)V
+PLcom/android/server/net/BaseNetdEventCallback;->onPrivateDnsValidationEvent(ILjava/lang/String;Ljava/lang/String;Z)V
+HSPLcom/android/server/net/BaseNetworkObserver;-><init>()V
+HSPLcom/android/server/net/BaseNetworkObserver;->addressRemoved(Ljava/lang/String;Landroid/net/LinkAddress;)V
+HPLcom/android/server/net/BaseNetworkObserver;->addressUpdated(Ljava/lang/String;Landroid/net/LinkAddress;)V
+HSPLcom/android/server/net/BaseNetworkObserver;->interfaceAdded(Ljava/lang/String;)V
+HPLcom/android/server/net/BaseNetworkObserver;->interfaceClassDataActivityChanged(Ljava/lang/String;ZJ)V
+PLcom/android/server/net/BaseNetworkObserver;->interfaceDnsServerInfo(Ljava/lang/String;J[Ljava/lang/String;)V
+HSPLcom/android/server/net/BaseNetworkObserver;->interfaceLinkStateChanged(Ljava/lang/String;Z)V
+PLcom/android/server/net/BaseNetworkObserver;->interfaceRemoved(Ljava/lang/String;)V
+PLcom/android/server/net/BaseNetworkObserver;->limitReached(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/net/BaseNetworkObserver;->routeRemoved(Landroid/net/RouteInfo;)V
+PLcom/android/server/net/BaseNetworkObserver;->routeUpdated(Landroid/net/RouteInfo;)V
+HPLcom/android/server/sip/SipService;-><init>(Landroid/content/Context;)V
+HPLcom/android/server/sip/SipService;->slog(Ljava/lang/String;)V
+HPLcom/android/server/sip/SipService;->start(Landroid/content/Context;)V
+HPLcom/android/server/sip/SipWakeupTimer;-><init>(Landroid/content/Context;Ljava/util/concurrent/Executor;)V
+HSPLcom/android/server/usage/AppStandbyInternal$AppIdleStateChangeListener;-><init>()V
+HPLcom/android/server/usage/AppStandbyInternal$AppIdleStateChangeListener;->onUserInteractionStarted(Ljava/lang/String;I)V
+HSPLcom/android/server/usage/AppStandbyInternal;->newAppStandbyController(Ljava/lang/ClassLoader;Landroid/content/Context;Landroid/os/Looper;)Lcom/android/server/usage/AppStandbyInternal;
+HSPLcom/android/server/wifi/BaseWifiService;-><init>()V
+PLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;-><init>()V
+PLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;->clear()Lcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;
+PLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;->computeSerializedSize()I
+PLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;->mergeFrom(Lcom/android/framework/protobuf/nano/CodedInputByteBufferNano;)Lcom/android/framework/protobuf/nano/MessageNano;
+PLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;->mergeFrom(Lcom/android/framework/protobuf/nano/CodedInputByteBufferNano;)Lcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;
+PLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;->parseFrom([B)Lcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;
+PLcom/android/server/wm/nano/WindowManagerProtos$TaskSnapshotProto;->writeTo(Lcom/android/framework/protobuf/nano/CodedOutputByteBufferNano;)V
HSPLcom/google/android/collect/Lists;->newArrayList()Ljava/util/ArrayList;
HSPLcom/google/android/collect/Lists;->newArrayList([Ljava/lang/Object;)Ljava/util/ArrayList;
+PLcom/google/android/collect/Maps;->newArrayMap()Landroid/util/ArrayMap;
HSPLcom/google/android/collect/Maps;->newHashMap()Ljava/util/HashMap;
+PLcom/google/android/collect/Sets;->newArraySet()Landroid/util/ArraySet;
+HSPLcom/google/android/collect/Sets;->newArraySet([Ljava/lang/Object;)Landroid/util/ArraySet;
HSPLcom/google/android/collect/Sets;->newHashSet()Ljava/util/HashSet;
HSPLcom/google/android/collect/Sets;->newHashSet([Ljava/lang/Object;)Ljava/util/HashSet;
+HSPLcom/google/android/gles_jni/EGLConfigImpl;-><init>(J)V
+HSPLcom/google/android/gles_jni/EGLContextImpl;->equals(Ljava/lang/Object;)Z
+HSPLcom/google/android/gles_jni/EGLDisplayImpl;->equals(Ljava/lang/Object;)Z
+HSPLcom/google/android/gles_jni/EGLImpl;->eglCreateContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljavax/microedition/khronos/egl/EGLContext;[I)Ljavax/microedition/khronos/egl/EGLContext;
+HSPLcom/google/android/gles_jni/EGLImpl;->eglCreatePbufferSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;[I)Ljavax/microedition/khronos/egl/EGLSurface;
+HSPLcom/google/android/gles_jni/EGLImpl;->eglGetCurrentContext()Ljavax/microedition/khronos/egl/EGLContext;
+HSPLcom/google/android/gles_jni/EGLImpl;->eglGetCurrentDisplay()Ljavax/microedition/khronos/egl/EGLDisplay;
+HSPLcom/google/android/gles_jni/EGLImpl;->eglGetCurrentSurface(I)Ljavax/microedition/khronos/egl/EGLSurface;
+HSPLcom/google/android/gles_jni/EGLImpl;->eglGetDisplay(Ljava/lang/Object;)Ljavax/microedition/khronos/egl/EGLDisplay;
+HSPLcom/google/android/gles_jni/EGLSurfaceImpl;-><init>(J)V
+HSPLcom/google/android/gles_jni/EGLSurfaceImpl;->equals(Ljava/lang/Object;)Z
+HPLcom/google/android/rappor/Encoder;-><init>(Ljava/util/Random;Ljava/security/MessageDigest;Ljava/security/MessageDigest;[BLjava/lang/String;IDDDII)V
+HPLcom/google/android/rappor/Encoder;->checkArgument(ZLjava/lang/Object;)V
+HPLcom/google/android/rappor/Encoder;->computeInstantaneousRandomizedResponse(Ljava/util/BitSet;)Ljava/util/BitSet;
+HPLcom/google/android/rappor/Encoder;->computePermanentRandomizedResponse(Ljava/util/BitSet;)Ljava/util/BitSet;
+HPLcom/google/android/rappor/Encoder;->encodeBits(Ljava/util/BitSet;)[B
+HPLcom/google/android/rappor/Encoder;->encodeBoolean(Z)[B
+PLcom/google/android/rappor/Encoder;->verify(Z)V
+HPLcom/google/android/rappor/HmacDrbg;-><init>([B[B)V
+PLcom/google/android/rappor/HmacDrbg;->bytesConcat([[B)[B
+PLcom/google/android/rappor/HmacDrbg;->emptyIfNull([B)[B
+HPLcom/google/android/rappor/HmacDrbg;->hash([B)[B
+HPLcom/google/android/rappor/HmacDrbg;->hmacDrbgGenerate([BII)V
+HPLcom/google/android/rappor/HmacDrbg;->hmacDrbgUpdate([B)V
+HPLcom/google/android/rappor/HmacDrbg;->nextBytes(I)[B
+HPLcom/google/android/rappor/HmacDrbg;->nextBytes([B)V
+HPLcom/google/android/rappor/HmacDrbg;->nextBytes([BII)V
+HPLcom/google/android/rappor/HmacDrbg;->setKey([B)V
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel$ActionSuggestion;-><init>(Ljava/lang/String;Ljava/lang/String;F[Lcom/google/android/textclassifier/NamedVariant;[B[Lcom/google/android/textclassifier/RemoteActionTemplate;)V
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel$ActionSuggestion;->getActionType()Ljava/lang/String;
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel$ActionSuggestion;->getEntityData()[Lcom/google/android/textclassifier/NamedVariant;
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel$ActionSuggestion;->getRemoteActionTemplates()[Lcom/google/android/textclassifier/RemoteActionTemplate;
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel$ActionSuggestion;->getResponseText()Ljava/lang/String;
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel$ActionSuggestion;->getScore()F
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel$ActionSuggestion;->getSerializedEntityData()[B
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel$Conversation;->getConversationMessages()[Lcom/google/android/textclassifier/ActionsSuggestionsModel$ConversationMessage;
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel$ConversationMessage;->getDetectedTextLanguageTags()Ljava/lang/String;
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel$ConversationMessage;->getReferenceTimeMsUtc()J
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel$ConversationMessage;->getReferenceTimezone()Ljava/lang/String;
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel$ConversationMessage;->getText()Ljava/lang/String;
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel$ConversationMessage;->getUserId()I
+PLcom/google/android/textclassifier/ActionsSuggestionsModel;-><clinit>()V
+HPLcom/google/android/textclassifier/ActionsSuggestionsModel;-><init>(I[B)V
+PLcom/google/android/textclassifier/ActionsSuggestionsModel;->getLocales(I)Ljava/lang/String;
+PLcom/google/android/textclassifier/ActionsSuggestionsModel;->getVersion(I)I
+PLcom/google/android/textclassifier/AnnotatorModel;-><clinit>()V
+HPLcom/google/android/textclassifier/AnnotatorModel;-><init>(I)V
+HPLcom/google/android/textclassifier/AnnotatorModel;->annotate(Ljava/lang/String;Lcom/google/android/textclassifier/AnnotatorModel$AnnotationOptions;)[Lcom/google/android/textclassifier/AnnotatorModel$AnnotatedSpan;
+PLcom/google/android/textclassifier/AnnotatorModel;->getLocales(I)Ljava/lang/String;
+PLcom/google/android/textclassifier/AnnotatorModel;->getVersion(I)I
+HPLcom/google/android/textclassifier/LangIdModel$LanguageResult;-><init>(Ljava/lang/String;F)V
+HPLcom/google/android/textclassifier/LangIdModel$LanguageResult;->getLanguage()Ljava/lang/String;
+HPLcom/google/android/textclassifier/LangIdModel$LanguageResult;->getScore()F
+PLcom/google/android/textclassifier/LangIdModel;-><clinit>()V
+HPLcom/google/android/textclassifier/LangIdModel;-><init>(I)V
+PLcom/google/android/textclassifier/LangIdModel;->getVersion(I)I
+HPLcom/google/android/textclassifier/NamedVariant;-><clinit>()V
+HPLcom/google/android/textclassifier/NamedVariant;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/google/android/textclassifier/NamedVariant;->getName()Ljava/lang/String;
+HPLcom/google/android/textclassifier/NamedVariant;->getString()Ljava/lang/String;
+HPLcom/google/android/textclassifier/NamedVariant;->getType()I
+HPLcom/google/android/textclassifier/RemoteActionTemplate;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;[Ljava/lang/String;Ljava/lang/String;[Lcom/google/android/textclassifier/NamedVariant;Ljava/lang/Integer;)V
+HSPLdalvik/system/-$$Lambda$DexPathList$_CyMypnZmV6ArWiPOPB4EkAIeUc;->test(Ljava/lang/Object;)Z
HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)V
HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;)V
HSPLdalvik/system/BaseDexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;Z)V
+HSPLdalvik/system/BaseDexClassLoader;-><init>([Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/ClassLoader;)V
HSPLdalvik/system/BaseDexClassLoader;->addNativePath(Ljava/util/Collection;)V
HSPLdalvik/system/BaseDexClassLoader;->findClass(Ljava/lang/String;)Ljava/lang/Class;
HSPLdalvik/system/BaseDexClassLoader;->findLibrary(Ljava/lang/String;)Ljava/lang/String;
@@ -9591,6 +34974,7 @@ HSPLdalvik/system/BaseDexClassLoader;->getLdLibraryPath()Ljava/lang/String;
HSPLdalvik/system/BaseDexClassLoader;->getPackage(Ljava/lang/String;)Ljava/lang/Package;
HSPLdalvik/system/BaseDexClassLoader;->reportClassLoaderChain()V
HSPLdalvik/system/BaseDexClassLoader;->setReporter(Ldalvik/system/BaseDexClassLoader$Reporter;)V
+HSPLdalvik/system/BaseDexClassLoader;->toString()Ljava/lang/String;
HSPLdalvik/system/BlockGuard$1;->onExplicitGc()V
HSPLdalvik/system/BlockGuard$1;->onNetwork()V
HSPLdalvik/system/BlockGuard$1;->onReadFromDisk()V
@@ -9614,12 +34998,23 @@ HSPLdalvik/system/DalvikLogging;->loggerNameToTag(Ljava/lang/String;)Ljava/lang/
HSPLdalvik/system/DelegateLastClassLoader;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V
HSPLdalvik/system/DelegateLastClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Z)V
HSPLdalvik/system/DelegateLastClassLoader;->loadClass(Ljava/lang/String;Z)Ljava/lang/Class;
+HSPLdalvik/system/DexClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V
+PLdalvik/system/DexFile$OptimizationInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+PLdalvik/system/DexFile$OptimizationInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ldalvik/system/DexFile$1;)V
+PLdalvik/system/DexFile$OptimizationInfo;->getReason()Ljava/lang/String;
+PLdalvik/system/DexFile$OptimizationInfo;->getStatus()Ljava/lang/String;
HSPLdalvik/system/DexFile;-><init>(Ljava/io/File;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)V
HSPLdalvik/system/DexFile;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)V
+HSPLdalvik/system/DexFile;-><init>([Ljava/nio/ByteBuffer;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)V
HSPLdalvik/system/DexFile;->defineClass(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/Object;Ldalvik/system/DexFile;Ljava/util/List;)Ljava/lang/Class;
HSPLdalvik/system/DexFile;->finalize()V
+PLdalvik/system/DexFile;->getDexFileOptimizationInfo(Ljava/lang/String;Ljava/lang/String;)Ldalvik/system/DexFile$OptimizationInfo;
+HSPLdalvik/system/DexFile;->isBackedByOatFile()Z
HSPLdalvik/system/DexFile;->loadClassBinaryName(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/List;)Ljava/lang/Class;
HSPLdalvik/system/DexFile;->openDexFile(Ljava/lang/String;Ljava/lang/String;ILjava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)Ljava/lang/Object;
+HSPLdalvik/system/DexFile;->openInMemoryDexFiles([Ljava/nio/ByteBuffer;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)Ljava/lang/Object;
+HSPLdalvik/system/DexFile;->toString()Ljava/lang/String;
+HSPLdalvik/system/DexPathList$Element;-><init>(Ldalvik/system/DexFile;)V
HSPLdalvik/system/DexPathList$Element;-><init>(Ldalvik/system/DexFile;Ljava/io/File;)V
HSPLdalvik/system/DexPathList$Element;-><init>(Ljava/io/File;)V
HSPLdalvik/system/DexPathList$Element;->access$000(Ldalvik/system/DexPathList$Element;)Ljava/lang/String;
@@ -9633,6 +35028,7 @@ HSPLdalvik/system/DexPathList$NativeLibraryElement;-><init>(Ljava/io/File;Ljava/
HSPLdalvik/system/DexPathList$NativeLibraryElement;->equals(Ljava/lang/Object;)Z
HSPLdalvik/system/DexPathList$NativeLibraryElement;->findNativeLibrary(Ljava/lang/String;)Ljava/lang/String;
HSPLdalvik/system/DexPathList$NativeLibraryElement;->maybeInit()V
+HSPLdalvik/system/DexPathList;-><init>(Ljava/lang/ClassLoader;Ljava/lang/String;)V
HSPLdalvik/system/DexPathList;-><init>(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Z)V
HSPLdalvik/system/DexPathList;->addNativePath(Ljava/util/Collection;)V
HSPLdalvik/system/DexPathList;->findClass(Ljava/lang/String;Ljava/util/List;)Ljava/lang/Class;
@@ -9642,12 +35038,17 @@ HSPLdalvik/system/DexPathList;->findResources(Ljava/lang/String;)Ljava/util/Enum
HSPLdalvik/system/DexPathList;->getAllNativeLibraryDirectories()Ljava/util/List;
HSPLdalvik/system/DexPathList;->getDexPaths()Ljava/util/List;
HSPLdalvik/system/DexPathList;->getNativeLibraryDirectories()Ljava/util/List;
+HSPLdalvik/system/DexPathList;->initByteBufferDexPath([Ljava/nio/ByteBuffer;)V
+HSPLdalvik/system/DexPathList;->lambda$initByteBufferDexPath$0(Ljava/nio/ByteBuffer;)Z
HSPLdalvik/system/DexPathList;->loadDexFile(Ljava/io/File;Ljava/io/File;Ljava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)Ldalvik/system/DexFile;
HSPLdalvik/system/DexPathList;->makeDexElements(Ljava/util/List;Ljava/io/File;Ljava/util/List;Ljava/lang/ClassLoader;Z)[Ldalvik/system/DexPathList$Element;
HSPLdalvik/system/DexPathList;->makePathElements(Ljava/util/List;)[Ldalvik/system/DexPathList$NativeLibraryElement;
HSPLdalvik/system/DexPathList;->splitDexPath(Ljava/lang/String;)Ljava/util/List;
HSPLdalvik/system/DexPathList;->splitPaths(Ljava/lang/String;Z)Ljava/util/List;
HSPLdalvik/system/DexPathList;->toString()Ljava/lang/String;
+HSPLdalvik/system/InMemoryDexClassLoader;-><init>(Ljava/nio/ByteBuffer;Ljava/lang/ClassLoader;)V
+HSPLdalvik/system/InMemoryDexClassLoader;-><init>([Ljava/nio/ByteBuffer;Ljava/lang/ClassLoader;)V
+HSPLdalvik/system/InMemoryDexClassLoader;-><init>([Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/ClassLoader;)V
HSPLdalvik/system/PathClassLoader;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V
HSPLdalvik/system/PathClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V
HSPLdalvik/system/PathClassLoader;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/ClassLoader;)V
@@ -9657,27 +35058,41 @@ HSPLdalvik/system/RuntimeHooks;->setUncaughtExceptionPreHandler(Ljava/lang/Threa
HSPLdalvik/system/SocketTagger;-><init>()V
HSPLdalvik/system/SocketTagger;->get()Ldalvik/system/SocketTagger;
HSPLdalvik/system/SocketTagger;->set(Ldalvik/system/SocketTagger;)V
+HSPLdalvik/system/SocketTagger;->untag(Ljava/net/Socket;)V
+HPLdalvik/system/VMDebug;->checkBufferSize(I)I
+HPLdalvik/system/VMDebug;->getRuntimeStats()Ljava/util/Map;
+HPLdalvik/system/VMDebug;->startMethodTracing(Ljava/lang/String;IIZI)V
HSPLdalvik/system/VMRuntime;->getInstructionSet(Ljava/lang/String;)Ljava/lang/String;
HSPLdalvik/system/VMRuntime;->getRuntime()Ldalvik/system/VMRuntime;
HSPLdalvik/system/VMRuntime;->getTargetSdkVersion()I
+HSPLdalvik/system/VMRuntime;->hiddenApiUsed(ILjava/lang/String;Ljava/lang/String;IZ)V
+PLdalvik/system/VMRuntime;->is64BitAbi(Ljava/lang/String;)Z
+HSPLdalvik/system/VMRuntime;->is64BitInstructionSet(Ljava/lang/String;)Z
HSPLdalvik/system/VMRuntime;->notifyNativeAllocation()V
HSPLdalvik/system/VMRuntime;->registerNativeAllocation(I)V
HSPLdalvik/system/VMRuntime;->registerNativeFree(I)V
HSPLdalvik/system/VMRuntime;->runFinalization(J)V
HSPLdalvik/system/VMRuntime;->runFinalizationSync()V
+HSPLdalvik/system/VMRuntime;->setDisabledCompatChanges([J)V
HSPLdalvik/system/VMRuntime;->setHiddenApiUsageLogger(Ldalvik/system/VMRuntime$HiddenApiUsageLogger;)V
HSPLdalvik/system/VMRuntime;->setNonSdkApiUsageConsumer(Ljava/util/function/Consumer;)V
-HSPLdalvik/system/VMRuntime;->setTargetHeapUtilization(F)F
HSPLdalvik/system/VMRuntime;->setTargetSdkVersion(I)V
HSPLdalvik/system/ZygoteHooks;->gcAndFinalize()V
HSPLdalvik/system/ZygoteHooks;->onEndPreload()V
HSPLdalvik/system/ZygoteHooks;->postForkChild(IZZLjava/lang/String;)V
HSPLdalvik/system/ZygoteHooks;->postForkCommon()V
+HSPLdalvik/system/ZygoteHooks;->postForkSystemServer(I)V
HSPLdalvik/system/ZygoteHooks;->preFork()V
HSPLdalvik/system/ZygoteHooks;->waitUntilAllThreadsStopped()V
+HSPLjava/io/Bits;->getBoolean([BI)Z
+HSPLjava/io/Bits;->getDouble([BI)D
+HSPLjava/io/Bits;->getFloat([BI)F
HSPLjava/io/Bits;->getInt([BI)I
HSPLjava/io/Bits;->getLong([BI)J
HSPLjava/io/Bits;->getShort([BI)S
+HSPLjava/io/Bits;->putBoolean([BIZ)V
+HSPLjava/io/Bits;->putDouble([BID)V
+HSPLjava/io/Bits;->putFloat([BIF)V
HSPLjava/io/Bits;->putInt([BII)V
HSPLjava/io/Bits;->putLong([BIJ)V
HSPLjava/io/Bits;->putShort([BIS)V
@@ -9694,6 +35109,7 @@ HSPLjava/io/BufferedInputStream;->read()I
HSPLjava/io/BufferedInputStream;->read([BII)I
HSPLjava/io/BufferedInputStream;->read1([BII)I
HSPLjava/io/BufferedInputStream;->reset()V
+HSPLjava/io/BufferedInputStream;->skip(J)J
HSPLjava/io/BufferedOutputStream;-><init>(Ljava/io/OutputStream;)V
HSPLjava/io/BufferedOutputStream;-><init>(Ljava/io/OutputStream;I)V
HSPLjava/io/BufferedOutputStream;->flush()V
@@ -9705,11 +35121,14 @@ HSPLjava/io/BufferedReader;-><init>(Ljava/io/Reader;I)V
HSPLjava/io/BufferedReader;->close()V
HSPLjava/io/BufferedReader;->ensureOpen()V
HSPLjava/io/BufferedReader;->fill()V
+HPLjava/io/BufferedReader;->mark(I)V
HSPLjava/io/BufferedReader;->read()I
HSPLjava/io/BufferedReader;->read([CII)I
HSPLjava/io/BufferedReader;->read1([CII)I
HSPLjava/io/BufferedReader;->readLine()Ljava/lang/String;
HSPLjava/io/BufferedReader;->readLine(Z)Ljava/lang/String;
+HPLjava/io/BufferedReader;->reset()V
+HPLjava/io/BufferedReader;->skip(J)J
HSPLjava/io/BufferedWriter;-><init>(Ljava/io/Writer;)V
HSPLjava/io/BufferedWriter;-><init>(Ljava/io/Writer;I)V
HSPLjava/io/BufferedWriter;->close()V
@@ -9720,6 +35139,7 @@ HSPLjava/io/BufferedWriter;->min(II)I
HSPLjava/io/BufferedWriter;->newLine()V
HSPLjava/io/BufferedWriter;->write(I)V
HSPLjava/io/BufferedWriter;->write(Ljava/lang/String;II)V
+HSPLjava/io/BufferedWriter;->write([CII)V
HSPLjava/io/ByteArrayInputStream;-><init>([B)V
HSPLjava/io/ByteArrayInputStream;-><init>([BII)V
HSPLjava/io/ByteArrayInputStream;->available()I
@@ -9738,38 +35158,55 @@ HSPLjava/io/ByteArrayOutputStream;->grow(I)V
HSPLjava/io/ByteArrayOutputStream;->reset()V
HSPLjava/io/ByteArrayOutputStream;->size()I
HSPLjava/io/ByteArrayOutputStream;->toByteArray()[B
+HSPLjava/io/ByteArrayOutputStream;->toString()Ljava/lang/String;
HSPLjava/io/ByteArrayOutputStream;->toString(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/io/ByteArrayOutputStream;->write(I)V
HSPLjava/io/ByteArrayOutputStream;->write([BII)V
+HSPLjava/io/ByteArrayOutputStream;->writeTo(Ljava/io/OutputStream;)V
HSPLjava/io/CharArrayWriter;-><init>()V
HSPLjava/io/CharArrayWriter;-><init>(I)V
HSPLjava/io/CharArrayWriter;->flush()V
HSPLjava/io/CharArrayWriter;->reset()V
HSPLjava/io/CharArrayWriter;->toCharArray()[C
+PLjava/io/CharArrayWriter;->toString()Ljava/lang/String;
HSPLjava/io/CharArrayWriter;->write(I)V
+HPLjava/io/CharArrayWriter;->write(Ljava/lang/String;II)V
+HPLjava/io/CharArrayWriter;->write([CII)V
HSPLjava/io/DataInputStream;-><init>(Ljava/io/InputStream;)V
HSPLjava/io/DataInputStream;->read([B)I
HSPLjava/io/DataInputStream;->read([BII)I
HSPLjava/io/DataInputStream;->readBoolean()Z
HSPLjava/io/DataInputStream;->readByte()B
+HSPLjava/io/DataInputStream;->readDouble()D
HSPLjava/io/DataInputStream;->readFully([B)V
HSPLjava/io/DataInputStream;->readFully([BII)V
HSPLjava/io/DataInputStream;->readInt()I
HSPLjava/io/DataInputStream;->readLong()J
+HSPLjava/io/DataInputStream;->readShort()S
HSPLjava/io/DataInputStream;->readUTF()Ljava/lang/String;
HSPLjava/io/DataInputStream;->readUTF(Ljava/io/DataInput;)Ljava/lang/String;
+HSPLjava/io/DataInputStream;->readUnsignedByte()I
HSPLjava/io/DataInputStream;->readUnsignedShort()I
+HSPLjava/io/DataInputStream;->skipBytes(I)I
HSPLjava/io/DataOutputStream;-><init>(Ljava/io/OutputStream;)V
HSPLjava/io/DataOutputStream;->flush()V
HSPLjava/io/DataOutputStream;->incCount(I)V
+HSPLjava/io/DataOutputStream;->size()I
+PLjava/io/DataOutputStream;->write(I)V
HSPLjava/io/DataOutputStream;->write([BII)V
HSPLjava/io/DataOutputStream;->writeBoolean(Z)V
HPLjava/io/DataOutputStream;->writeByte(I)V
+HPLjava/io/DataOutputStream;->writeDouble(D)V
HSPLjava/io/DataOutputStream;->writeInt(I)V
HSPLjava/io/DataOutputStream;->writeLong(J)V
+HSPLjava/io/DataOutputStream;->writeShort(I)V
HSPLjava/io/DataOutputStream;->writeUTF(Ljava/lang/String;)V
HSPLjava/io/DataOutputStream;->writeUTF(Ljava/lang/String;Ljava/io/DataOutput;)I
+HSPLjava/io/DeleteOnExitHook$1;-><init>()V
+HSPLjava/io/DeleteOnExitHook;-><clinit>()V
+HSPLjava/io/DeleteOnExitHook;->add(Ljava/lang/String;)V
HSPLjava/io/EOFException;-><init>()V
+HSPLjava/io/EOFException;-><init>(Ljava/lang/String;)V
HSPLjava/io/ExpiringCache;->clear()V
HSPLjava/io/File$TempDirectory;->generateFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
HSPLjava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
@@ -9777,12 +35214,17 @@ HSPLjava/io/File;-><init>(Ljava/lang/String;)V
HSPLjava/io/File;-><init>(Ljava/lang/String;I)V
HSPLjava/io/File;-><init>(Ljava/lang/String;Ljava/io/File;)V
HSPLjava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/io/File;-><init>(Ljava/net/URI;)V
+HSPLjava/io/File;->canExecute()Z
HSPLjava/io/File;->canRead()Z
HSPLjava/io/File;->canWrite()Z
HSPLjava/io/File;->compareTo(Ljava/io/File;)I
+HSPLjava/io/File;->compareTo(Ljava/lang/Object;)I
HSPLjava/io/File;->createNewFile()Z
+HSPLjava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
HSPLjava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
HSPLjava/io/File;->delete()Z
+HSPLjava/io/File;->deleteOnExit()V
HSPLjava/io/File;->equals(Ljava/lang/Object;)Z
HSPLjava/io/File;->exists()Z
HSPLjava/io/File;->getAbsoluteFile()Ljava/io/File;
@@ -9812,9 +35254,11 @@ HSPLjava/io/File;->listFiles(Ljava/io/FilenameFilter;)[Ljava/io/File;
HSPLjava/io/File;->mkdir()Z
HSPLjava/io/File;->mkdirs()Z
HSPLjava/io/File;->renameTo(Ljava/io/File;)Z
+HSPLjava/io/File;->setExecutable(ZZ)Z
HSPLjava/io/File;->setLastModified(J)Z
+HPLjava/io/File;->setReadOnly()Z
HSPLjava/io/File;->setReadable(ZZ)Z
-HSPLjava/io/File;->setWritable(ZZ)Z
+HPLjava/io/File;->setWritable(ZZ)Z
HSPLjava/io/File;->slashify(Ljava/lang/String;Z)Ljava/lang/String;
HSPLjava/io/File;->toPath()Ljava/nio/file/Path;
HSPLjava/io/File;->toString()Ljava/lang/String;
@@ -9847,6 +35291,8 @@ HSPLjava/io/FileOutputStream;-><init>(Ljava/io/File;)V
HSPLjava/io/FileOutputStream;-><init>(Ljava/io/File;Z)V
HSPLjava/io/FileOutputStream;-><init>(Ljava/io/FileDescriptor;)V
HSPLjava/io/FileOutputStream;-><init>(Ljava/io/FileDescriptor;Z)V
+HSPLjava/io/FileOutputStream;-><init>(Ljava/lang/String;)V
+HSPLjava/io/FileOutputStream;-><init>(Ljava/lang/String;Z)V
HSPLjava/io/FileOutputStream;->close()V
HSPLjava/io/FileOutputStream;->finalize()V
HSPLjava/io/FileOutputStream;->getChannel()Ljava/nio/channels/FileChannel;
@@ -9856,29 +35302,44 @@ HSPLjava/io/FileOutputStream;->write([B)V
HSPLjava/io/FileOutputStream;->write([BII)V
HSPLjava/io/FileReader;-><init>(Ljava/io/File;)V
HSPLjava/io/FileReader;-><init>(Ljava/lang/String;)V
+HSPLjava/io/FileWriter;-><init>(Ljava/io/File;)V
HSPLjava/io/FileWriter;-><init>(Ljava/io/File;Z)V
+PLjava/io/FileWriter;-><init>(Ljava/lang/String;)V
HSPLjava/io/FilterInputStream;-><init>(Ljava/io/InputStream;)V
HSPLjava/io/FilterInputStream;->available()I
HSPLjava/io/FilterInputStream;->close()V
+HSPLjava/io/FilterInputStream;->mark(I)V
+HSPLjava/io/FilterInputStream;->markSupported()Z
HSPLjava/io/FilterInputStream;->read()I
HSPLjava/io/FilterInputStream;->read([B)I
HSPLjava/io/FilterInputStream;->read([BII)I
+HSPLjava/io/FilterInputStream;->reset()V
+HSPLjava/io/FilterInputStream;->skip(J)J
HSPLjava/io/FilterOutputStream;-><init>(Ljava/io/OutputStream;)V
HSPLjava/io/FilterOutputStream;->close()V
HSPLjava/io/FilterOutputStream;->flush()V
HSPLjava/io/FilterOutputStream;->write([B)V
+HSPLjava/io/FilterReader;-><init>(Ljava/io/Reader;)V
+HSPLjava/io/FilterReader;->read()I
HSPLjava/io/IOException;-><init>()V
HSPLjava/io/IOException;-><init>(Ljava/lang/String;)V
HSPLjava/io/IOException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+HSPLjava/io/IOException;-><init>(Ljava/lang/Throwable;)V
HSPLjava/io/InputStream;-><init>()V
+HSPLjava/io/InputStream;->available()I
HSPLjava/io/InputStream;->close()V
+HSPLjava/io/InputStream;->markSupported()Z
HSPLjava/io/InputStream;->read([B)I
+HSPLjava/io/InputStream;->read([BII)I
HSPLjava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
HSPLjava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/lang/String;)V
HSPLjava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
+HSPLjava/io/InputStreamReader;-><init>(Ljava/io/InputStream;Ljava/nio/charset/CharsetDecoder;)V
HSPLjava/io/InputStreamReader;->close()V
+HSPLjava/io/InputStreamReader;->read()I
HSPLjava/io/InputStreamReader;->read([CII)I
HSPLjava/io/InputStreamReader;->ready()Z
+HPLjava/io/InterruptedIOException;-><init>()V
HSPLjava/io/InterruptedIOException;-><init>(Ljava/lang/String;)V
HSPLjava/io/ObjectInputStream$BlockDataInputStream;-><init>(Ljava/io/ObjectInputStream;Ljava/io/InputStream;)V
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->close()V
@@ -9890,20 +35351,23 @@ HSPLjava/io/ObjectInputStream$BlockDataInputStream;->read()I
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->read([BII)I
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->read([BIIZ)I
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readBlockHeader(Z)I
-PLjava/io/ObjectInputStream$BlockDataInputStream;->readBoolean()Z
+HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readBoolean()Z
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readByte()B
+HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readFloats([FII)V
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readFully([BIIZ)V
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readInt()I
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readLong()J
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readShort()S
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readUTF()Ljava/lang/String;
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readUTFBody(J)Ljava/lang/String;
-PLjava/io/ObjectInputStream$BlockDataInputStream;->readUTFChar(Ljava/lang/StringBuilder;J)I
+HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readUTFChar(Ljava/lang/StringBuilder;J)I
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readUTFSpan(Ljava/lang/StringBuilder;J)J
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->readUnsignedShort()I
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->refill()V
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->setBlockDataMode(Z)Z
HSPLjava/io/ObjectInputStream$BlockDataInputStream;->skipBlockData()V
+HSPLjava/io/ObjectInputStream$HandleTable$HandleList;-><init>()V
+HSPLjava/io/ObjectInputStream$HandleTable$HandleList;->add(I)V
HSPLjava/io/ObjectInputStream$HandleTable;-><init>(I)V
HSPLjava/io/ObjectInputStream$HandleTable;->assign(Ljava/lang/Object;)I
HSPLjava/io/ObjectInputStream$HandleTable;->clear()V
@@ -9912,6 +35376,7 @@ HSPLjava/io/ObjectInputStream$HandleTable;->grow()V
HSPLjava/io/ObjectInputStream$HandleTable;->lookupException(I)Ljava/lang/ClassNotFoundException;
HSPLjava/io/ObjectInputStream$HandleTable;->lookupObject(I)Ljava/lang/Object;
HSPLjava/io/ObjectInputStream$HandleTable;->markDependency(II)V
+HSPLjava/io/ObjectInputStream$HandleTable;->setObject(ILjava/lang/Object;)V
HSPLjava/io/ObjectInputStream$HandleTable;->size()I
HSPLjava/io/ObjectInputStream$PeekInputStream;-><init>(Ljava/io/InputStream;)V
HSPLjava/io/ObjectInputStream$PeekInputStream;->close()V
@@ -9924,6 +35389,7 @@ HSPLjava/io/ObjectInputStream$ValidationList;->clear()V
HSPLjava/io/ObjectInputStream$ValidationList;->doCallbacks()V
HSPLjava/io/ObjectInputStream;-><init>(Ljava/io/InputStream;)V
HSPLjava/io/ObjectInputStream;->access$500(Ljava/io/ObjectInputStream;)Z
+HSPLjava/io/ObjectInputStream;->access$700([BI[FII)V
HSPLjava/io/ObjectInputStream;->checkResolve(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/io/ObjectInputStream;->clear()V
HSPLjava/io/ObjectInputStream;->close()V
@@ -9932,10 +35398,12 @@ HSPLjava/io/ObjectInputStream;->defaultReadObject()V
HSPLjava/io/ObjectInputStream;->isCustomSubclass()Z
HSPLjava/io/ObjectInputStream;->latestUserDefinedLoader()Ljava/lang/ClassLoader;
HSPLjava/io/ObjectInputStream;->readArray(Z)Ljava/lang/Object;
-HPLjava/io/ObjectInputStream;->readBoolean()Z
+HSPLjava/io/ObjectInputStream;->readBoolean()Z
HSPLjava/io/ObjectInputStream;->readByte()B
HSPLjava/io/ObjectInputStream;->readClassDesc(Z)Ljava/io/ObjectStreamClass;
HSPLjava/io/ObjectInputStream;->readClassDescriptor()Ljava/io/ObjectStreamClass;
+HSPLjava/io/ObjectInputStream;->readEnum(Z)Ljava/lang/Enum;
+HSPLjava/io/ObjectInputStream;->readFully([B)V
HSPLjava/io/ObjectInputStream;->readHandle(Z)Ljava/lang/Object;
HSPLjava/io/ObjectInputStream;->readInt()I
HSPLjava/io/ObjectInputStream;->readLong()J
@@ -9964,21 +35432,27 @@ HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->write([BIIZ)V
HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeBlockHeader(I)V
HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeByte(I)V
HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeBytes(Ljava/lang/String;)V
+HPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeFloat(F)V
+HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeFloats([FII)V
HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeInt(I)V
HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeLong(J)V
HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeShort(I)V
HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeUTF(Ljava/lang/String;)V
HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeUTF(Ljava/lang/String;J)V
+HSPLjava/io/ObjectOutputStream$BlockDataOutputStream;->writeUTFBody(Ljava/lang/String;)V
HSPLjava/io/ObjectOutputStream$HandleTable;-><init>(IF)V
HSPLjava/io/ObjectOutputStream$HandleTable;->assign(Ljava/lang/Object;)I
HSPLjava/io/ObjectOutputStream$HandleTable;->clear()V
HSPLjava/io/ObjectOutputStream$HandleTable;->growEntries()V
+HSPLjava/io/ObjectOutputStream$HandleTable;->growSpine()V
HSPLjava/io/ObjectOutputStream$HandleTable;->hash(Ljava/lang/Object;)I
HSPLjava/io/ObjectOutputStream$HandleTable;->insert(Ljava/lang/Object;I)V
HSPLjava/io/ObjectOutputStream$HandleTable;->lookup(Ljava/lang/Object;)I
HSPLjava/io/ObjectOutputStream$ReplaceTable;-><init>(IF)V
+HSPLjava/io/ObjectOutputStream$ReplaceTable;->assign(Ljava/lang/Object;Ljava/lang/Object;)V
HSPLjava/io/ObjectOutputStream$ReplaceTable;->lookup(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/io/ObjectOutputStream;-><init>(Ljava/io/OutputStream;)V
+HSPLjava/io/ObjectOutputStream;->access$200([FI[BII)V
HSPLjava/io/ObjectOutputStream;->annotateClass(Ljava/lang/Class;)V
HSPLjava/io/ObjectOutputStream;->close()V
HSPLjava/io/ObjectOutputStream;->defaultWriteFields(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
@@ -9986,10 +35460,13 @@ HSPLjava/io/ObjectOutputStream;->defaultWriteObject()V
HSPLjava/io/ObjectOutputStream;->flush()V
HSPLjava/io/ObjectOutputStream;->isCustomSubclass()Z
HSPLjava/io/ObjectOutputStream;->verifySubclass()V
+HSPLjava/io/ObjectOutputStream;->write([B)V
HSPLjava/io/ObjectOutputStream;->writeArray(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
HSPLjava/io/ObjectOutputStream;->writeByte(I)V
HSPLjava/io/ObjectOutputStream;->writeClassDesc(Ljava/io/ObjectStreamClass;Z)V
HSPLjava/io/ObjectOutputStream;->writeClassDescriptor(Ljava/io/ObjectStreamClass;)V
+HSPLjava/io/ObjectOutputStream;->writeEnum(Ljava/lang/Enum;Ljava/io/ObjectStreamClass;Z)V
+HPLjava/io/ObjectOutputStream;->writeFloat(F)V
HSPLjava/io/ObjectOutputStream;->writeHandle(I)V
HSPLjava/io/ObjectOutputStream;->writeInt(I)V
HSPLjava/io/ObjectOutputStream;->writeLong(J)V
@@ -10011,13 +35488,21 @@ HSPLjava/io/ObjectStreamClass$2;-><init>(Ljava/io/ObjectStreamClass;Ljava/lang/C
HSPLjava/io/ObjectStreamClass$2;->run()Ljava/lang/Object;
HSPLjava/io/ObjectStreamClass$2;->run()Ljava/lang/Void;
HSPLjava/io/ObjectStreamClass$3;-><init>()V
+HSPLjava/io/ObjectStreamClass$3;->compare(Ljava/io/ObjectStreamClass$MemberSignature;Ljava/io/ObjectStreamClass$MemberSignature;)I
+HSPLjava/io/ObjectStreamClass$3;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLjava/io/ObjectStreamClass$4;-><init>()V
+HSPLjava/io/ObjectStreamClass$4;->compare(Ljava/io/ObjectStreamClass$MemberSignature;Ljava/io/ObjectStreamClass$MemberSignature;)I
+HSPLjava/io/ObjectStreamClass$4;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLjava/io/ObjectStreamClass$5;-><init>()V
+HSPLjava/io/ObjectStreamClass$5;->compare(Ljava/io/ObjectStreamClass$MemberSignature;Ljava/io/ObjectStreamClass$MemberSignature;)I
+HSPLjava/io/ObjectStreamClass$5;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLjava/io/ObjectStreamClass$Caches;->access$200()Ljava/lang/ref/ReferenceQueue;
HSPLjava/io/ObjectStreamClass$Caches;->access$2600()Ljava/lang/ref/ReferenceQueue;
HSPLjava/io/ObjectStreamClass$ClassDataSlot;-><init>(Ljava/io/ObjectStreamClass;Z)V
HSPLjava/io/ObjectStreamClass$EntryFuture;-><init>()V
HSPLjava/io/ObjectStreamClass$EntryFuture;-><init>(Ljava/io/ObjectStreamClass$1;)V
+HSPLjava/io/ObjectStreamClass$EntryFuture;->get()Ljava/lang/Object;
+HSPLjava/io/ObjectStreamClass$EntryFuture;->getOwner()Ljava/lang/Thread;
HSPLjava/io/ObjectStreamClass$EntryFuture;->set(Ljava/lang/Object;)Z
HSPLjava/io/ObjectStreamClass$ExceptionInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/io/ObjectStreamClass$FieldReflector;-><init>([Ljava/io/ObjectStreamField;)V
@@ -10030,6 +35515,8 @@ HSPLjava/io/ObjectStreamClass$FieldReflectorKey;-><init>(Ljava/lang/Class;[Ljava
HSPLjava/io/ObjectStreamClass$FieldReflectorKey;->equals(Ljava/lang/Object;)Z
HSPLjava/io/ObjectStreamClass$FieldReflectorKey;->hashCode()I
HSPLjava/io/ObjectStreamClass$MemberSignature;-><init>(Ljava/lang/reflect/Constructor;)V
+HSPLjava/io/ObjectStreamClass$MemberSignature;-><init>(Ljava/lang/reflect/Field;)V
+HSPLjava/io/ObjectStreamClass$MemberSignature;-><init>(Ljava/lang/reflect/Method;)V
HSPLjava/io/ObjectStreamClass$WeakClassKey;-><init>(Ljava/lang/Class;Ljava/lang/ref/ReferenceQueue;)V
HSPLjava/io/ObjectStreamClass$WeakClassKey;->equals(Ljava/lang/Object;)Z
HSPLjava/io/ObjectStreamClass$WeakClassKey;->hashCode()I
@@ -10049,6 +35536,7 @@ HSPLjava/io/ObjectStreamClass;->access$2002(Ljava/io/ObjectStreamClass;Z)Z
HSPLjava/io/ObjectStreamClass;->access$2102(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
HSPLjava/io/ObjectStreamClass;->access$2200(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
HSPLjava/io/ObjectStreamClass;->access$2302(Ljava/io/ObjectStreamClass;Ljava/lang/reflect/Method;)Ljava/lang/reflect/Method;
+HSPLjava/io/ObjectStreamClass;->access$2400(Ljava/lang/Class;)Ljava/lang/String;
HSPLjava/io/ObjectStreamClass;->access$2500([Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/String;
HSPLjava/io/ObjectStreamClass;->access$400(Ljava/io/ObjectStreamClass;)Z
HSPLjava/io/ObjectStreamClass;->access$502(Ljava/io/ObjectStreamClass;Ljava/lang/Long;)Ljava/lang/Long;
@@ -10075,6 +35563,7 @@ HSPLjava/io/ObjectStreamClass;->getMethodSignature([Ljava/lang/Class;Ljava/lang/
HSPLjava/io/ObjectStreamClass;->getName()Ljava/lang/String;
HSPLjava/io/ObjectStreamClass;->getNumObjFields()I
HSPLjava/io/ObjectStreamClass;->getObjFieldValues(Ljava/lang/Object;[Ljava/lang/Object;)V
+HSPLjava/io/ObjectStreamClass;->getPackageName(Ljava/lang/Class;)Ljava/lang/String;
HSPLjava/io/ObjectStreamClass;->getPrimDataSize()I
HSPLjava/io/ObjectStreamClass;->getPrimFieldValues(Ljava/lang/Object;[B)V
HSPLjava/io/ObjectStreamClass;->getPrivateMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
@@ -10092,13 +35581,17 @@ HSPLjava/io/ObjectStreamClass;->hasWriteObjectMethod()Z
HSPLjava/io/ObjectStreamClass;->hasWriteReplaceMethod()Z
HSPLjava/io/ObjectStreamClass;->initNonProxy(Ljava/io/ObjectStreamClass;Ljava/lang/Class;Ljava/lang/ClassNotFoundException;Ljava/io/ObjectStreamClass;)V
HSPLjava/io/ObjectStreamClass;->invokeReadObject(Ljava/lang/Object;Ljava/io/ObjectInputStream;)V
+HSPLjava/io/ObjectStreamClass;->invokeReadResolve(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/io/ObjectStreamClass;->invokeWriteObject(Ljava/lang/Object;Ljava/io/ObjectOutputStream;)V
+HSPLjava/io/ObjectStreamClass;->invokeWriteReplace(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/io/ObjectStreamClass;->isEnum()Z
HSPLjava/io/ObjectStreamClass;->isExternalizable()Z
HSPLjava/io/ObjectStreamClass;->isInstantiable()Z
HSPLjava/io/ObjectStreamClass;->isProxy()Z
HSPLjava/io/ObjectStreamClass;->lookup(Ljava/lang/Class;Z)Ljava/io/ObjectStreamClass;
HSPLjava/io/ObjectStreamClass;->matchFields([Ljava/io/ObjectStreamField;Ljava/io/ObjectStreamClass;)[Ljava/io/ObjectStreamField;
HSPLjava/io/ObjectStreamClass;->newInstance()Ljava/lang/Object;
+HSPLjava/io/ObjectStreamClass;->packageEquals(Ljava/lang/Class;Ljava/lang/Class;)Z
HSPLjava/io/ObjectStreamClass;->processQueue(Ljava/lang/ref/ReferenceQueue;Ljava/util/concurrent/ConcurrentMap;)V
HSPLjava/io/ObjectStreamClass;->readNonProxy(Ljava/io/ObjectInputStream;)V
HSPLjava/io/ObjectStreamClass;->requireInitialized()V
@@ -10129,60 +35622,131 @@ HSPLjava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;Ljava/lang/String;
HSPLjava/io/OutputStreamWriter;-><init>(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V
HSPLjava/io/OutputStreamWriter;->close()V
HSPLjava/io/OutputStreamWriter;->flush()V
+HSPLjava/io/OutputStreamWriter;->flushBuffer()V
HSPLjava/io/OutputStreamWriter;->write(I)V
HSPLjava/io/OutputStreamWriter;->write(Ljava/lang/String;II)V
HSPLjava/io/OutputStreamWriter;->write([CII)V
+HSPLjava/io/PipedInputStream;-><clinit>()V
+PLjava/io/PipedInputStream;-><init>(Ljava/io/PipedOutputStream;)V
+PLjava/io/PipedInputStream;-><init>(Ljava/io/PipedOutputStream;I)V
+HSPLjava/io/PipedInputStream;->awaitSpace()V
+HSPLjava/io/PipedInputStream;->checkStateForReceive()V
+PLjava/io/PipedInputStream;->close()V
+PLjava/io/PipedInputStream;->connect(Ljava/io/PipedOutputStream;)V
+HSPLjava/io/PipedInputStream;->initPipe(I)V
+HSPLjava/io/PipedInputStream;->read()I
+HSPLjava/io/PipedInputStream;->read([BII)I
+HSPLjava/io/PipedInputStream;->receive([BII)V
+PLjava/io/PipedInputStream;->receivedLast()V
+PLjava/io/PipedOutputStream;-><init>()V
+PLjava/io/PipedOutputStream;->close()V
+HSPLjava/io/PipedOutputStream;->connect(Ljava/io/PipedInputStream;)V
+HSPLjava/io/PipedOutputStream;->write([BII)V
HSPLjava/io/PrintStream;-><init>(Ljava/io/OutputStream;)V
HSPLjava/io/PrintStream;-><init>(Ljava/io/OutputStream;Z)V
+HSPLjava/io/PrintStream;-><init>(Ljava/io/OutputStream;ZLjava/lang/String;)V
HSPLjava/io/PrintStream;-><init>(ZLjava/io/OutputStream;)V
+HSPLjava/io/PrintStream;-><init>(ZLjava/io/OutputStream;Ljava/nio/charset/Charset;)V
HSPLjava/io/PrintStream;->close()V
+HSPLjava/io/PrintStream;->ensureOpen()V
+PLjava/io/PrintStream;->flush()V
+HSPLjava/io/PrintStream;->getTextOut()Ljava/io/BufferedWriter;
+HSPLjava/io/PrintStream;->newLine()V
+HSPLjava/io/PrintStream;->print(C)V
+HSPLjava/io/PrintStream;->print(Ljava/lang/String;)V
+HSPLjava/io/PrintStream;->println(Ljava/lang/String;)V
HSPLjava/io/PrintStream;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
+HSPLjava/io/PrintStream;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;
+HSPLjava/io/PrintStream;->write(Ljava/lang/String;)V
+HSPLjava/io/PrintStream;->write([BII)V
+PLjava/io/PrintWriter;-><init>(Ljava/io/File;)V
+HSPLjava/io/PrintWriter;-><init>(Ljava/io/OutputStream;)V
+HSPLjava/io/PrintWriter;-><init>(Ljava/io/OutputStream;Z)V
HSPLjava/io/PrintWriter;-><init>(Ljava/io/Writer;)V
HSPLjava/io/PrintWriter;-><init>(Ljava/io/Writer;Z)V
+PLjava/io/PrintWriter;->append(C)Ljava/io/PrintWriter;
+HPLjava/io/PrintWriter;->append(C)Ljava/lang/Appendable;
+HSPLjava/io/PrintWriter;->append(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
+HSPLjava/io/PrintWriter;->append(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
+HSPLjava/io/PrintWriter;->append(Ljava/lang/CharSequence;II)Ljava/io/PrintWriter;
+HPLjava/io/PrintWriter;->append(Ljava/lang/CharSequence;II)Ljava/lang/Appendable;
HSPLjava/io/PrintWriter;->close()V
HSPLjava/io/PrintWriter;->ensureOpen()V
HSPLjava/io/PrintWriter;->flush()V
+HSPLjava/io/PrintWriter;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
+HPLjava/io/PrintWriter;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
HSPLjava/io/PrintWriter;->newLine()V
+HSPLjava/io/PrintWriter;->print(C)V
+HPLjava/io/PrintWriter;->print(D)V
+HSPLjava/io/PrintWriter;->print(F)V
+HSPLjava/io/PrintWriter;->print(I)V
+HSPLjava/io/PrintWriter;->print(J)V
+HSPLjava/io/PrintWriter;->print(Ljava/lang/Object;)V
HSPLjava/io/PrintWriter;->print(Ljava/lang/String;)V
+HSPLjava/io/PrintWriter;->print(Z)V
+HSPLjava/io/PrintWriter;->printf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;
HSPLjava/io/PrintWriter;->println()V
+PLjava/io/PrintWriter;->println(D)V
+HSPLjava/io/PrintWriter;->println(F)V
+HSPLjava/io/PrintWriter;->println(I)V
+HSPLjava/io/PrintWriter;->println(J)V
HSPLjava/io/PrintWriter;->println(Ljava/lang/Object;)V
HSPLjava/io/PrintWriter;->println(Ljava/lang/String;)V
+HSPLjava/io/PrintWriter;->println(Z)V
+HSPLjava/io/PrintWriter;->write(I)V
HSPLjava/io/PrintWriter;->write(Ljava/lang/String;)V
HSPLjava/io/PrintWriter;->write(Ljava/lang/String;II)V
HSPLjava/io/PrintWriter;->write([CII)V
HSPLjava/io/PushbackInputStream;-><init>(Ljava/io/InputStream;I)V
HSPLjava/io/PushbackInputStream;->close()V
HSPLjava/io/PushbackInputStream;->ensureOpen()V
+HSPLjava/io/PushbackInputStream;->markSupported()Z
HSPLjava/io/PushbackInputStream;->read()I
HSPLjava/io/PushbackInputStream;->read([BII)I
HSPLjava/io/PushbackInputStream;->unread([BII)V
+HSPLjava/io/PushbackReader;-><init>(Ljava/io/Reader;I)V
+HSPLjava/io/PushbackReader;->ensureOpen()V
+HSPLjava/io/PushbackReader;->read()I
+HSPLjava/io/PushbackReader;->unread(I)V
HSPLjava/io/RandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
HSPLjava/io/RandomAccessFile;-><init>(Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/io/RandomAccessFile;->close()V
HSPLjava/io/RandomAccessFile;->finalize()V
HSPLjava/io/RandomAccessFile;->getChannel()Ljava/nio/channels/FileChannel;
+HSPLjava/io/RandomAccessFile;->getFD()Ljava/io/FileDescriptor;
HSPLjava/io/RandomAccessFile;->getFilePointer()J
HSPLjava/io/RandomAccessFile;->length()J
HSPLjava/io/RandomAccessFile;->maybeSync()V
HSPLjava/io/RandomAccessFile;->read()I
HSPLjava/io/RandomAccessFile;->read([B)I
HSPLjava/io/RandomAccessFile;->read([BII)I
+HSPLjava/io/RandomAccessFile;->readByte()B
HSPLjava/io/RandomAccessFile;->readBytes([BII)I
HSPLjava/io/RandomAccessFile;->readFully([B)V
HSPLjava/io/RandomAccessFile;->readFully([BII)V
HSPLjava/io/RandomAccessFile;->readInt()I
+HSPLjava/io/RandomAccessFile;->readLine()Ljava/lang/String;
+HSPLjava/io/RandomAccessFile;->readLong()J
HSPLjava/io/RandomAccessFile;->seek(J)V
HSPLjava/io/RandomAccessFile;->setLength(J)V
+HSPLjava/io/RandomAccessFile;->write(I)V
HSPLjava/io/RandomAccessFile;->write([B)V
HSPLjava/io/RandomAccessFile;->write([BII)V
+PLjava/io/RandomAccessFile;->writeBoolean(Z)V
HSPLjava/io/RandomAccessFile;->writeBytes([BII)V
+HSPLjava/io/RandomAccessFile;->writeInt(I)V
+HSPLjava/io/RandomAccessFile;->writeLong(J)V
+PLjava/io/RandomAccessFile;->writeUTF(Ljava/lang/String;)V
HSPLjava/io/Reader;-><init>()V
HSPLjava/io/Reader;-><init>(Ljava/lang/Object;)V
HSPLjava/io/Reader;->read(Ljava/nio/CharBuffer;)I
HSPLjava/io/Reader;->read([C)I
HSPLjava/io/SequenceInputStream;-><init>(Ljava/io/InputStream;Ljava/io/InputStream;)V
+PLjava/io/SequenceInputStream;->available()I
+PLjava/io/SequenceInputStream;->close()V
HSPLjava/io/SequenceInputStream;->nextStream()V
HSPLjava/io/SequenceInputStream;->read()I
+HPLjava/io/SequenceInputStream;->read([BII)I
HSPLjava/io/SerialCallbackContext;-><init>(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
HSPLjava/io/SerialCallbackContext;->check()V
HSPLjava/io/SerialCallbackContext;->checkAndSetUsed()V
@@ -10190,26 +35754,35 @@ HSPLjava/io/SerialCallbackContext;->getDesc()Ljava/io/ObjectStreamClass;
HSPLjava/io/SerialCallbackContext;->getObj()Ljava/lang/Object;
HSPLjava/io/SerialCallbackContext;->setUsed()V
HSPLjava/io/StringReader;-><init>(Ljava/lang/String;)V
+HSPLjava/io/StringReader;->close()V
HSPLjava/io/StringReader;->ensureOpen()V
+HSPLjava/io/StringReader;->markSupported()Z
HSPLjava/io/StringReader;->read()I
HSPLjava/io/StringReader;->read([CII)I
HSPLjava/io/StringWriter;-><init>()V
+HSPLjava/io/StringWriter;-><init>(I)V
+HSPLjava/io/StringWriter;->append(C)Ljava/io/StringWriter;
+HSPLjava/io/StringWriter;->append(C)Ljava/io/Writer;
HSPLjava/io/StringWriter;->append(Ljava/lang/CharSequence;)Ljava/io/StringWriter;
HSPLjava/io/StringWriter;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
HSPLjava/io/StringWriter;->close()V
HSPLjava/io/StringWriter;->flush()V
+HSPLjava/io/StringWriter;->getBuffer()Ljava/lang/StringBuffer;
HSPLjava/io/StringWriter;->toString()Ljava/lang/String;
HSPLjava/io/StringWriter;->write(I)V
HSPLjava/io/StringWriter;->write(Ljava/lang/String;)V
HSPLjava/io/StringWriter;->write(Ljava/lang/String;II)V
HSPLjava/io/StringWriter;->write([CII)V
+HSPLjava/io/SyncFailedException;-><init>(Ljava/lang/String;)V
HSPLjava/io/UnixFileSystem;->canonicalize(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/io/UnixFileSystem;->checkAccess(Ljava/io/File;I)Z
HSPLjava/io/UnixFileSystem;->compare(Ljava/io/File;Ljava/io/File;)I
HSPLjava/io/UnixFileSystem;->createDirectory(Ljava/io/File;)Z
HSPLjava/io/UnixFileSystem;->createFileExclusively(Ljava/lang/String;)Z
HSPLjava/io/UnixFileSystem;->delete(Ljava/io/File;)Z
+HSPLjava/io/UnixFileSystem;->fromURIPath(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/io/UnixFileSystem;->getBooleanAttributes(Ljava/io/File;)I
+HSPLjava/io/UnixFileSystem;->getDefaultParent()Ljava/lang/String;
HSPLjava/io/UnixFileSystem;->getLastModifiedTime(Ljava/io/File;)J
HSPLjava/io/UnixFileSystem;->getLength(Ljava/io/File;)J
HSPLjava/io/UnixFileSystem;->getSpace(Ljava/io/File;I)J
@@ -10223,11 +35796,13 @@ HSPLjava/io/UnixFileSystem;->resolve(Ljava/io/File;)Ljava/lang/String;
HSPLjava/io/UnixFileSystem;->resolve(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLjava/io/UnixFileSystem;->setLastModifiedTime(Ljava/io/File;J)Z
HSPLjava/io/UnixFileSystem;->setPermission(Ljava/io/File;IZZ)Z
+HPLjava/io/UnixFileSystem;->setReadOnly(Ljava/io/File;)Z
HSPLjava/io/Writer;-><init>()V
HSPLjava/io/Writer;-><init>(Ljava/lang/Object;)V
HSPLjava/io/Writer;->append(C)Ljava/io/Writer;
HSPLjava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer;
HSPLjava/io/Writer;->write(Ljava/lang/String;)V
+HSPLjava/io/Writer;->write(Ljava/lang/String;II)V
HSPLjava/lang/AbstractStringBuilder;-><init>(I)V
HSPLjava/lang/AbstractStringBuilder;->append(C)Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/AbstractStringBuilder;->append(D)Ljava/lang/AbstractStringBuilder;
@@ -10240,19 +35815,25 @@ HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/la
HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/AbstractStringBuilder;->append(Ljava/lang/StringBuffer;)Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/AbstractStringBuilder;->append(Z)Ljava/lang/AbstractStringBuilder;
+HPLjava/lang/AbstractStringBuilder;->append([C)Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/AbstractStringBuilder;->append([CII)Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/AbstractStringBuilder;->appendCodePoint(I)Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/AbstractStringBuilder;->appendNull()Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/AbstractStringBuilder;->charAt(I)C
HSPLjava/lang/AbstractStringBuilder;->codePointAt(I)I
+HSPLjava/lang/AbstractStringBuilder;->codePointBefore(I)I
HSPLjava/lang/AbstractStringBuilder;->delete(II)Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/AbstractStringBuilder;->deleteCharAt(I)Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/AbstractStringBuilder;->ensureCapacity(I)V
HSPLjava/lang/AbstractStringBuilder;->ensureCapacityInternal(I)V
HSPLjava/lang/AbstractStringBuilder;->getChars(II[CI)V
+HSPLjava/lang/AbstractStringBuilder;->getValue()[C
HSPLjava/lang/AbstractStringBuilder;->indexOf(Ljava/lang/String;)I
HSPLjava/lang/AbstractStringBuilder;->indexOf(Ljava/lang/String;I)I
HSPLjava/lang/AbstractStringBuilder;->insert(IC)Ljava/lang/AbstractStringBuilder;
+HSPLjava/lang/AbstractStringBuilder;->insert(II)Ljava/lang/AbstractStringBuilder;
+PLjava/lang/AbstractStringBuilder;->insert(ILjava/lang/CharSequence;)Ljava/lang/AbstractStringBuilder;
+HPLjava/lang/AbstractStringBuilder;->insert(ILjava/lang/CharSequence;II)Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/AbstractStringBuilder;->insert(ILjava/lang/String;)Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/AbstractStringBuilder;->lastIndexOf(Ljava/lang/String;I)I
HSPLjava/lang/AbstractStringBuilder;->length()I
@@ -10260,7 +35841,7 @@ HSPLjava/lang/AbstractStringBuilder;->newCapacity(I)I
HSPLjava/lang/AbstractStringBuilder;->replace(IILjava/lang/String;)Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/AbstractStringBuilder;->setCharAt(IC)V
HSPLjava/lang/AbstractStringBuilder;->setLength(I)V
-PLjava/lang/AbstractStringBuilder;->subSequence(II)Ljava/lang/CharSequence;
+HSPLjava/lang/AbstractStringBuilder;->subSequence(II)Ljava/lang/CharSequence;
HSPLjava/lang/AbstractStringBuilder;->substring(I)Ljava/lang/String;
HSPLjava/lang/AbstractStringBuilder;->substring(II)Ljava/lang/String;
HSPLjava/lang/Boolean;-><init>(Z)V
@@ -10281,58 +35862,92 @@ HSPLjava/lang/BootClassLoader;->findClass(Ljava/lang/String;)Ljava/lang/Class;
HSPLjava/lang/BootClassLoader;->findResource(Ljava/lang/String;)Ljava/net/URL;
HSPLjava/lang/BootClassLoader;->findResources(Ljava/lang/String;)Ljava/util/Enumeration;
HSPLjava/lang/BootClassLoader;->getInstance()Ljava/lang/BootClassLoader;
+HSPLjava/lang/BootClassLoader;->getPackage(Ljava/lang/String;)Ljava/lang/Package;
HSPLjava/lang/BootClassLoader;->getResource(Ljava/lang/String;)Ljava/net/URL;
HSPLjava/lang/BootClassLoader;->getResources(Ljava/lang/String;)Ljava/util/Enumeration;
HSPLjava/lang/BootClassLoader;->loadClass(Ljava/lang/String;Z)Ljava/lang/Class;
HSPLjava/lang/Byte;-><init>(B)V
HSPLjava/lang/Byte;->byteValue()B
HSPLjava/lang/Byte;->compare(BB)I
-HSPLjava/lang/Byte;->toString()Ljava/lang/String;
+HPLjava/lang/Byte;->compareTo(Ljava/lang/Byte;)I
+HPLjava/lang/Byte;->compareTo(Ljava/lang/Object;)I
+HSPLjava/lang/Byte;->doubleValue()D
+HSPLjava/lang/Byte;->equals(Ljava/lang/Object;)Z
+HPLjava/lang/Byte;->hashCode()I
+HPLjava/lang/Byte;->hashCode(B)I
+HPLjava/lang/Byte;->intValue()I
+HPLjava/lang/Byte;->longValue()J
+PLjava/lang/Byte;->parseByte(Ljava/lang/String;)B
+HSPLjava/lang/Byte;->parseByte(Ljava/lang/String;I)B
+HPLjava/lang/Byte;->toString()Ljava/lang/String;
HSPLjava/lang/Byte;->toUnsignedInt(B)I
HSPLjava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
HSPLjava/lang/CaseMapper;->toLowerCase(Ljava/util/Locale;Ljava/lang/String;)Ljava/lang/String;
HSPLjava/lang/CaseMapper;->toUpperCase(Ljava/util/Locale;Ljava/lang/String;I)Ljava/lang/String;
HSPLjava/lang/CaseMapper;->upperIndex(I)I
+HSPLjava/lang/Character$Subset;->equals(Ljava/lang/Object;)Z
+HSPLjava/lang/Character$Subset;->hashCode()I
HSPLjava/lang/Character;-><init>(C)V
HSPLjava/lang/Character;->charCount(I)I
HSPLjava/lang/Character;->charValue()C
HSPLjava/lang/Character;->codePointAt(Ljava/lang/CharSequence;I)I
HSPLjava/lang/Character;->codePointAtImpl([CII)I
HSPLjava/lang/Character;->codePointBefore(Ljava/lang/CharSequence;I)I
+HSPLjava/lang/Character;->codePointBeforeImpl([CII)I
HSPLjava/lang/Character;->codePointCount(Ljava/lang/CharSequence;II)I
+HPLjava/lang/Character;->compare(CC)I
+HPLjava/lang/Character;->compareTo(Ljava/lang/Character;)I
+HPLjava/lang/Character;->compareTo(Ljava/lang/Object;)I
HSPLjava/lang/Character;->digit(CI)I
HSPLjava/lang/Character;->digit(II)I
HSPLjava/lang/Character;->equals(Ljava/lang/Object;)Z
HSPLjava/lang/Character;->forDigit(II)C
HSPLjava/lang/Character;->getDirectionality(C)B
HSPLjava/lang/Character;->getDirectionality(I)B
+HPLjava/lang/Character;->getNumericValue(C)I
HSPLjava/lang/Character;->getNumericValue(I)I
+HSPLjava/lang/Character;->getType(C)I
HSPLjava/lang/Character;->getType(I)I
HSPLjava/lang/Character;->hashCode()I
HSPLjava/lang/Character;->hashCode(C)I
+HSPLjava/lang/Character;->highSurrogate(I)C
HSPLjava/lang/Character;->isBmpCodePoint(I)Z
HSPLjava/lang/Character;->isDigit(C)Z
HSPLjava/lang/Character;->isDigit(I)Z
HSPLjava/lang/Character;->isHighSurrogate(C)Z
+HPLjava/lang/Character;->isISOControl(C)Z
+HSPLjava/lang/Character;->isISOControl(I)Z
HSPLjava/lang/Character;->isJavaIdentifierPart(C)Z
HSPLjava/lang/Character;->isJavaIdentifierPart(I)Z
+HSPLjava/lang/Character;->isJavaIdentifierStart(I)Z
HSPLjava/lang/Character;->isLetter(C)Z
HSPLjava/lang/Character;->isLetter(I)Z
HSPLjava/lang/Character;->isLetterOrDigit(C)Z
HSPLjava/lang/Character;->isLetterOrDigit(I)Z
HSPLjava/lang/Character;->isLowSurrogate(C)Z
+HPLjava/lang/Character;->isLowerCase(C)Z
+HPLjava/lang/Character;->isLowerCase(I)Z
+HSPLjava/lang/Character;->isSpaceChar(C)Z
HSPLjava/lang/Character;->isSpaceChar(I)Z
+HPLjava/lang/Character;->isSupplementaryCodePoint(I)Z
+HSPLjava/lang/Character;->isSurrogatePair(CC)Z
HSPLjava/lang/Character;->isUpperCase(C)Z
HSPLjava/lang/Character;->isUpperCase(I)Z
HSPLjava/lang/Character;->isValidCodePoint(I)Z
HSPLjava/lang/Character;->isWhitespace(C)Z
HSPLjava/lang/Character;->isWhitespace(I)Z
+HSPLjava/lang/Character;->lowSurrogate(I)C
+HSPLjava/lang/Character;->offsetByCodePoints(Ljava/lang/CharSequence;II)I
+HPLjava/lang/Character;->toChars(I)[C
HSPLjava/lang/Character;->toChars(I[CI)I
HSPLjava/lang/Character;->toCodePoint(CC)I
HSPLjava/lang/Character;->toLowerCase(C)C
HSPLjava/lang/Character;->toLowerCase(I)I
HSPLjava/lang/Character;->toString()Ljava/lang/String;
HSPLjava/lang/Character;->toString(C)Ljava/lang/String;
+HSPLjava/lang/Character;->toSurrogates(I[CI)V
+HSPLjava/lang/Character;->toTitleCase(C)C
+HSPLjava/lang/Character;->toTitleCase(I)I
HSPLjava/lang/Character;->toUpperCase(C)C
HSPLjava/lang/Character;->toUpperCase(I)I
HSPLjava/lang/Character;->valueOf(C)Ljava/lang/Character;
@@ -10346,6 +35961,7 @@ HSPLjava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
HSPLjava/lang/Class;->forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
HSPLjava/lang/Class;->getAccessFlags()I
HSPLjava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
+HSPLjava/lang/Class;->getAnnotations()[Ljava/lang/annotation/Annotation;
HSPLjava/lang/Class;->getCanonicalName()Ljava/lang/String;
HSPLjava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
HSPLjava/lang/Class;->getComponentType()Ljava/lang/Class;
@@ -10364,6 +35980,7 @@ HSPLjava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field;
HSPLjava/lang/Class;->getFields()[Ljava/lang/reflect/Field;
HSPLjava/lang/Class;->getGenericInterfaces()[Ljava/lang/reflect/Type;
HSPLjava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
+HPLjava/lang/Class;->getInstanceMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
HSPLjava/lang/Class;->getInterfaces()[Ljava/lang/Class;
HSPLjava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
HSPLjava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;Z)Ljava/lang/reflect/Method;
@@ -10372,6 +35989,7 @@ HSPLjava/lang/Class;->getModifiers()I
HSPLjava/lang/Class;->getName()Ljava/lang/String;
HSPLjava/lang/Class;->getPackage()Ljava/lang/Package;
HSPLjava/lang/Class;->getPackageName$()Ljava/lang/String;
+HSPLjava/lang/Class;->getProtectionDomain()Ljava/security/ProtectionDomain;
HSPLjava/lang/Class;->getPublicFieldsRecursive(Ljava/util/List;)V
HSPLjava/lang/Class;->getPublicMethodRecursive(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
HSPLjava/lang/Class;->getPublicMethodsInternal(Ljava/util/List;)V
@@ -10379,6 +35997,7 @@ HSPLjava/lang/Class;->getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStrea
HSPLjava/lang/Class;->getSignatureAttribute()Ljava/lang/String;
HSPLjava/lang/Class;->getSimpleName()Ljava/lang/String;
HSPLjava/lang/Class;->getSuperclass()Ljava/lang/Class;
+HPLjava/lang/Class;->getTypeName()Ljava/lang/String;
HSPLjava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
HSPLjava/lang/Class;->isAnnotation()Z
HSPLjava/lang/Class;->isAnnotationPresent(Ljava/lang/Class;)Z
@@ -10412,6 +36031,7 @@ HSPLjava/lang/ClassLoader;->loadClass(Ljava/lang/String;Z)Ljava/lang/Class;
HSPLjava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;)V
HSPLjava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
HSPLjava/lang/ClassNotFoundException;->getCause()Ljava/lang/Throwable;
+PLjava/lang/CloneNotSupportedException;-><init>()V
HSPLjava/lang/Daemons$Daemon;->interrupt(Ljava/lang/Thread;)V
HSPLjava/lang/Daemons$Daemon;->isRunning()Z
HSPLjava/lang/Daemons$Daemon;->run()V
@@ -10436,15 +36056,23 @@ HSPLjava/lang/Daemons$HeapTaskDaemon;->interrupt(Ljava/lang/Thread;)V
HSPLjava/lang/Daemons$HeapTaskDaemon;->runInternal()V
HSPLjava/lang/Daemons$ReferenceQueueDaemon;->runInternal()V
HSPLjava/lang/Daemons;->access$400()Ljava/util/concurrent/CountDownLatch;
+HSPLjava/lang/Daemons;->access$802(J)J
HSPLjava/lang/Daemons;->startPostZygoteFork()V
HSPLjava/lang/Daemons;->stop()V
HSPLjava/lang/Double;-><init>(D)V
HSPLjava/lang/Double;->compare(DD)I
+HSPLjava/lang/Double;->compareTo(Ljava/lang/Double;)I
+HSPLjava/lang/Double;->compareTo(Ljava/lang/Object;)I
HSPLjava/lang/Double;->doubleToLongBits(D)J
HSPLjava/lang/Double;->doubleValue()D
+HSPLjava/lang/Double;->equals(Ljava/lang/Object;)Z
HSPLjava/lang/Double;->floatValue()F
+HPLjava/lang/Double;->hashCode()I
+HPLjava/lang/Double;->hashCode(D)I
+HSPLjava/lang/Double;->intValue()I
HSPLjava/lang/Double;->isInfinite(D)Z
HSPLjava/lang/Double;->isNaN(D)Z
+HSPLjava/lang/Double;->longValue()J
HSPLjava/lang/Double;->parseDouble(Ljava/lang/String;)D
HSPLjava/lang/Double;->toString()Ljava/lang/String;
HSPLjava/lang/Double;->toString(D)Ljava/lang/String;
@@ -10469,38 +36097,55 @@ HSPLjava/lang/Error;-><init>(Ljava/lang/String;)V
HSPLjava/lang/Exception;-><init>()V
HSPLjava/lang/Exception;-><init>(Ljava/lang/String;)V
HSPLjava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+HPLjava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
HSPLjava/lang/Exception;-><init>(Ljava/lang/Throwable;)V
HSPLjava/lang/Float;-><init>(F)V
HSPLjava/lang/Float;->compare(FF)I
+HSPLjava/lang/Float;->compareTo(Ljava/lang/Float;)I
+HSPLjava/lang/Float;->compareTo(Ljava/lang/Object;)I
HSPLjava/lang/Float;->doubleValue()D
HSPLjava/lang/Float;->equals(Ljava/lang/Object;)Z
HSPLjava/lang/Float;->floatToIntBits(F)I
HSPLjava/lang/Float;->floatValue()F
HSPLjava/lang/Float;->hashCode()I
HSPLjava/lang/Float;->hashCode(F)I
+PLjava/lang/Float;->isFinite(F)Z
HSPLjava/lang/Float;->isInfinite(F)Z
HSPLjava/lang/Float;->isNaN(F)Z
+PLjava/lang/Float;->longValue()J
HSPLjava/lang/Float;->parseFloat(Ljava/lang/String;)F
HSPLjava/lang/Float;->toString()Ljava/lang/String;
HSPLjava/lang/Float;->toString(F)Ljava/lang/String;
HSPLjava/lang/Float;->valueOf(F)Ljava/lang/Float;
+HPLjava/lang/Float;->valueOf(Ljava/lang/String;)Ljava/lang/Float;
HSPLjava/lang/IllegalAccessException;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/IllegalArgumentException;-><init>()V
HSPLjava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+HPLjava/lang/IllegalMonitorStateException;-><init>(Ljava/lang/String;)V
HSPLjava/lang/IllegalStateException;-><init>()V
HSPLjava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/IllegalStateException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+HSPLjava/lang/IllegalStateException;-><init>(Ljava/lang/Throwable;)V
HSPLjava/lang/IncompatibleClassChangeError;-><init>(Ljava/lang/String;)V
+PLjava/lang/IndexOutOfBoundsException;-><init>()V
+HSPLjava/lang/InheritableThreadLocal;->childValue(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/lang/InheritableThreadLocal;->createMap(Ljava/lang/Thread;Ljava/lang/Object;)V
HSPLjava/lang/InheritableThreadLocal;->getMap(Ljava/lang/Thread;)Ljava/lang/ThreadLocal$ThreadLocalMap;
+PLjava/lang/InstantiationException;-><init>(Ljava/lang/String;)V
HSPLjava/lang/Integer;-><init>(I)V
HSPLjava/lang/Integer;->bitCount(I)I
+HSPLjava/lang/Integer;->byteValue()B
HSPLjava/lang/Integer;->compare(II)I
HSPLjava/lang/Integer;->compareTo(Ljava/lang/Integer;)I
HSPLjava/lang/Integer;->compareTo(Ljava/lang/Object;)I
HSPLjava/lang/Integer;->decode(Ljava/lang/String;)Ljava/lang/Integer;
HSPLjava/lang/Integer;->doubleValue()D
HSPLjava/lang/Integer;->equals(Ljava/lang/Object;)Z
+HSPLjava/lang/Integer;->floatValue()F
HSPLjava/lang/Integer;->formatUnsignedInt(II[CII)I
HSPLjava/lang/Integer;->getChars(II[C)V
+HSPLjava/lang/Integer;->getInteger(Ljava/lang/String;)Ljava/lang/Integer;
HSPLjava/lang/Integer;->getInteger(Ljava/lang/String;I)Ljava/lang/Integer;
HSPLjava/lang/Integer;->getInteger(Ljava/lang/String;Ljava/lang/Integer;)Ljava/lang/Integer;
HSPLjava/lang/Integer;->hashCode()I
@@ -10519,19 +36164,25 @@ HSPLjava/lang/Integer;->reverse(I)I
HSPLjava/lang/Integer;->reverseBytes(I)I
HSPLjava/lang/Integer;->rotateLeft(II)I
HSPLjava/lang/Integer;->rotateRight(II)I
+HSPLjava/lang/Integer;->shortValue()S
HSPLjava/lang/Integer;->signum(I)I
HSPLjava/lang/Integer;->stringSize(I)I
+HSPLjava/lang/Integer;->sum(II)I
HSPLjava/lang/Integer;->toBinaryString(I)Ljava/lang/String;
HSPLjava/lang/Integer;->toHexString(I)Ljava/lang/String;
HSPLjava/lang/Integer;->toString()Ljava/lang/String;
HSPLjava/lang/Integer;->toString(I)Ljava/lang/String;
+HPLjava/lang/Integer;->toString(II)Ljava/lang/String;
+HPLjava/lang/Integer;->toUnsignedLong(I)J
HSPLjava/lang/Integer;->toUnsignedString0(II)Ljava/lang/String;
HSPLjava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
HSPLjava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
HSPLjava/lang/Integer;->valueOf(Ljava/lang/String;I)Ljava/lang/Integer;
HSPLjava/lang/InterruptedException;-><init>()V
+HPLjava/lang/Iterable;->forEach(Ljava/util/function/Consumer;)V
HSPLjava/lang/LinkageError;-><init>(Ljava/lang/String;)V
HSPLjava/lang/Long;-><init>(J)V
+HSPLjava/lang/Long;-><init>(Ljava/lang/String;)V
HSPLjava/lang/Long;->bitCount(J)I
HSPLjava/lang/Long;->compare(JJ)I
HSPLjava/lang/Long;->compareTo(Ljava/lang/Long;)I
@@ -10550,10 +36201,12 @@ HSPLjava/lang/Long;->highestOneBit(J)J
HSPLjava/lang/Long;->intValue()I
HSPLjava/lang/Long;->longValue()J
HSPLjava/lang/Long;->lowestOneBit(J)J
+HSPLjava/lang/Long;->max(JJ)J
HSPLjava/lang/Long;->numberOfLeadingZeros(J)I
HSPLjava/lang/Long;->numberOfTrailingZeros(J)I
HSPLjava/lang/Long;->parseLong(Ljava/lang/String;)J
HSPLjava/lang/Long;->parseLong(Ljava/lang/String;I)J
+HSPLjava/lang/Long;->parseUnsignedLong(Ljava/lang/String;I)J
HSPLjava/lang/Long;->reverse(J)J
HSPLjava/lang/Long;->reverseBytes(J)J
HSPLjava/lang/Long;->rotateLeft(JI)J
@@ -10574,8 +36227,11 @@ HSPLjava/lang/Math;->abs(F)F
HSPLjava/lang/Math;->abs(I)I
HSPLjava/lang/Math;->abs(J)J
HSPLjava/lang/Math;->addExact(JJ)J
+HPLjava/lang/Math;->copySign(DD)D
+HPLjava/lang/Math;->copySign(FF)F
HSPLjava/lang/Math;->floorDiv(JJ)J
HSPLjava/lang/Math;->floorMod(JJ)J
+HSPLjava/lang/Math;->getExponent(F)I
HSPLjava/lang/Math;->max(DD)D
HSPLjava/lang/Math;->max(FF)F
HSPLjava/lang/Math;->max(II)I
@@ -10586,20 +36242,29 @@ HSPLjava/lang/Math;->min(II)I
HSPLjava/lang/Math;->min(JJ)J
HSPLjava/lang/Math;->multiplyExact(JJ)J
HSPLjava/lang/Math;->nextAfter(DD)D
+HPLjava/lang/Math;->powerOfTwoD(I)D
+HSPLjava/lang/Math;->powerOfTwoF(I)F
HSPLjava/lang/Math;->random()D
HSPLjava/lang/Math;->randomLongInternal()J
HSPLjava/lang/Math;->round(D)J
HSPLjava/lang/Math;->round(F)I
+HPLjava/lang/Math;->scalb(FI)F
HSPLjava/lang/Math;->setRandomSeedInternal(J)V
+HPLjava/lang/Math;->signum(D)D
+PLjava/lang/Math;->signum(F)F
HSPLjava/lang/Math;->subtractExact(JJ)J
+HPLjava/lang/Math;->toDegrees(D)D
+HSPLjava/lang/Math;->toIntExact(J)I
+HSPLjava/lang/Math;->toRadians(D)D
+HSPLjava/lang/Math;->ulp(F)F
HSPLjava/lang/NoClassDefFoundError;-><init>(Ljava/lang/String;)V
HSPLjava/lang/NoSuchFieldException;-><init>(Ljava/lang/String;)V
HSPLjava/lang/NoSuchMethodError;-><init>(Ljava/lang/String;)V
HSPLjava/lang/NoSuchMethodException;-><init>(Ljava/lang/String;)V
+HPLjava/lang/NullPointerException;-><init>()V
HSPLjava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
HSPLjava/lang/Number;-><init>()V
HSPLjava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
-HSPLjava/lang/NumberFormatException;->forInputString(Ljava/lang/String;)Ljava/lang/NumberFormatException;
HSPLjava/lang/Object;-><init>()V
HSPLjava/lang/Object;->clone()Ljava/lang/Object;
HSPLjava/lang/Object;->equals(Ljava/lang/Object;)Z
@@ -10613,9 +36278,12 @@ HSPLjava/lang/Object;->wait(J)V
HSPLjava/lang/Package;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;Ljava/lang/ClassLoader;)V
HSPLjava/lang/Package;->getName()Ljava/lang/String;
HSPLjava/lang/Process;-><init>()V
+PLjava/lang/ProcessBuilder$NullInputStream;->available()I
+PLjava/lang/ProcessBuilder$NullInputStream;->read()I
HSPLjava/lang/ProcessBuilder;-><init>([Ljava/lang/String;)V
HSPLjava/lang/ProcessBuilder;->directory(Ljava/io/File;)Ljava/lang/ProcessBuilder;
HSPLjava/lang/ProcessBuilder;->environment([Ljava/lang/String;)Ljava/lang/ProcessBuilder;
+HSPLjava/lang/ProcessBuilder;->redirectErrorStream(Z)Ljava/lang/ProcessBuilder;
HSPLjava/lang/ProcessBuilder;->start()Ljava/lang/Process;
HSPLjava/lang/ProcessEnvironment;->toEnvironmentBlock(Ljava/util/Map;[I)[B
HSPLjava/lang/ProcessImpl;->start([Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;[Ljava/lang/ProcessBuilder$Redirect;Z)Ljava/lang/Process;
@@ -10625,6 +36293,9 @@ HSPLjava/lang/ReflectiveOperationException;-><init>(Ljava/lang/String;Ljava/lang
HSPLjava/lang/ReflectiveOperationException;-><init>(Ljava/lang/Throwable;)V
HSPLjava/lang/Runtime;->addShutdownHook(Ljava/lang/Thread;)V
HSPLjava/lang/Runtime;->availableProcessors()I
+HSPLjava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
+HSPLjava/lang/Runtime;->exec(Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
+HSPLjava/lang/Runtime;->exec([Ljava/lang/String;)Ljava/lang/Process;
HSPLjava/lang/Runtime;->exec([Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
HSPLjava/lang/Runtime;->gc()V
HSPLjava/lang/Runtime;->getLibPaths()[Ljava/lang/String;
@@ -10637,11 +36308,18 @@ HSPLjava/lang/Runtime;->runFinalization()V
HSPLjava/lang/RuntimeException;-><init>()V
HSPLjava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
HSPLjava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+HPLjava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
HSPLjava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
HSPLjava/lang/SecurityException;-><init>(Ljava/lang/String;)V
HSPLjava/lang/Short;-><init>(S)V
+HSPLjava/lang/Short;->doubleValue()D
+HPLjava/lang/Short;->equals(Ljava/lang/Object;)Z
+HSPLjava/lang/Short;->hashCode()I
+HSPLjava/lang/Short;->hashCode(S)I
HSPLjava/lang/Short;->reverseBytes(S)S
-PLjava/lang/Short;->valueOf(S)Ljava/lang/Short;
+PLjava/lang/Short;->shortValue()S
+HSPLjava/lang/Short;->valueOf(S)Ljava/lang/Short;
+PLjava/lang/StackTraceElement;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
HSPLjava/lang/StackTraceElement;->equals(Ljava/lang/Object;)Z
HSPLjava/lang/StackTraceElement;->getClassName()Ljava/lang/String;
HSPLjava/lang/StackTraceElement;->getFileName()Ljava/lang/String;
@@ -10649,6 +36327,7 @@ HSPLjava/lang/StackTraceElement;->getLineNumber()I
HSPLjava/lang/StackTraceElement;->getMethodName()Ljava/lang/String;
HSPLjava/lang/StackTraceElement;->isNativeMethod()Z
HSPLjava/lang/StackTraceElement;->toString()Ljava/lang/String;
+PLjava/lang/StrictMath;->toIntExact(J)I
HSPLjava/lang/String$CaseInsensitiveComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLjava/lang/String$CaseInsensitiveComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I
HSPLjava/lang/String;->codePointAt(I)I
@@ -10658,6 +36337,7 @@ HSPLjava/lang/String;->compareTo(Ljava/lang/Object;)I
HSPLjava/lang/String;->compareToIgnoreCase(Ljava/lang/String;)I
HSPLjava/lang/String;->contains(Ljava/lang/CharSequence;)Z
HSPLjava/lang/String;->contentEquals(Ljava/lang/CharSequence;)Z
+HPLjava/lang/String;->copyValueOf([C)Ljava/lang/String;
HSPLjava/lang/String;->endsWith(Ljava/lang/String;)Z
HSPLjava/lang/String;->equals(Ljava/lang/Object;)Z
HSPLjava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
@@ -10688,6 +36368,8 @@ HSPLjava/lang/String;->lastIndexOf([CIILjava/lang/String;I)I
HSPLjava/lang/String;->lastIndexOf([CII[CIII)I
HSPLjava/lang/String;->length()I
HSPLjava/lang/String;->matches(Ljava/lang/String;)Z
+HSPLjava/lang/String;->nonSyncContentEquals(Ljava/lang/AbstractStringBuilder;)Z
+HSPLjava/lang/String;->offsetByCodePoints(II)I
HSPLjava/lang/String;->regionMatches(ILjava/lang/String;II)Z
HSPLjava/lang/String;->regionMatches(ZILjava/lang/String;II)Z
HSPLjava/lang/String;->replace(CC)Ljava/lang/String;
@@ -10715,6 +36397,7 @@ HSPLjava/lang/String;->valueOf(J)Ljava/lang/String;
HSPLjava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
HSPLjava/lang/String;->valueOf(Z)Ljava/lang/String;
HSPLjava/lang/String;->valueOf([C)Ljava/lang/String;
+HSPLjava/lang/String;->valueOf([CII)Ljava/lang/String;
HSPLjava/lang/StringBuffer;-><init>()V
HSPLjava/lang/StringBuffer;-><init>(I)V
HSPLjava/lang/StringBuffer;-><init>(Ljava/lang/String;)V
@@ -10724,10 +36407,13 @@ HSPLjava/lang/StringBuffer;->append(J)Ljava/lang/StringBuffer;
HSPLjava/lang/StringBuffer;->append(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
HSPLjava/lang/StringBuffer;->append(Ljava/lang/CharSequence;)Ljava/lang/StringBuffer;
HSPLjava/lang/StringBuffer;->append(Ljava/lang/CharSequence;II)Ljava/lang/AbstractStringBuilder;
+HSPLjava/lang/StringBuffer;->append(Ljava/lang/CharSequence;II)Ljava/lang/Appendable;
HSPLjava/lang/StringBuffer;->append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuffer;
HSPLjava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
+HSPLjava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
HSPLjava/lang/StringBuffer;->append(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
+PLjava/lang/StringBuffer;->append(Z)Ljava/lang/StringBuffer;
HSPLjava/lang/StringBuffer;->append([CII)Ljava/lang/StringBuffer;
HSPLjava/lang/StringBuffer;->charAt(I)C
HSPLjava/lang/StringBuffer;->codePointAt(I)I
@@ -10758,6 +36444,7 @@ HSPLjava/lang/StringBuilder;->append([C)Ljava/lang/StringBuilder;
HSPLjava/lang/StringBuilder;->append([CII)Ljava/lang/StringBuilder;
HSPLjava/lang/StringBuilder;->appendCodePoint(I)Ljava/lang/StringBuilder;
HSPLjava/lang/StringBuilder;->charAt(I)C
+HSPLjava/lang/StringBuilder;->codePointBefore(I)I
HSPLjava/lang/StringBuilder;->delete(II)Ljava/lang/StringBuilder;
HSPLjava/lang/StringBuilder;->deleteCharAt(I)Ljava/lang/StringBuilder;
HSPLjava/lang/StringBuilder;->ensureCapacity(I)V
@@ -10765,18 +36452,24 @@ HSPLjava/lang/StringBuilder;->getChars(II[CI)V
HSPLjava/lang/StringBuilder;->indexOf(Ljava/lang/String;)I
HSPLjava/lang/StringBuilder;->indexOf(Ljava/lang/String;I)I
HSPLjava/lang/StringBuilder;->insert(IC)Ljava/lang/StringBuilder;
+HSPLjava/lang/StringBuilder;->insert(II)Ljava/lang/StringBuilder;
+PLjava/lang/StringBuilder;->insert(ILjava/lang/CharSequence;)Ljava/lang/StringBuilder;
+PLjava/lang/StringBuilder;->insert(ILjava/lang/CharSequence;II)Ljava/lang/AbstractStringBuilder;
+HPLjava/lang/StringBuilder;->insert(ILjava/lang/CharSequence;II)Ljava/lang/StringBuilder;
+HSPLjava/lang/StringBuilder;->insert(ILjava/lang/String;)Ljava/lang/AbstractStringBuilder;
HSPLjava/lang/StringBuilder;->insert(ILjava/lang/String;)Ljava/lang/StringBuilder;
HSPLjava/lang/StringBuilder;->lastIndexOf(Ljava/lang/String;I)I
HSPLjava/lang/StringBuilder;->length()I
HSPLjava/lang/StringBuilder;->replace(IILjava/lang/String;)Ljava/lang/StringBuilder;
HSPLjava/lang/StringBuilder;->setCharAt(IC)V
HSPLjava/lang/StringBuilder;->setLength(I)V
-PLjava/lang/StringBuilder;->subSequence(II)Ljava/lang/CharSequence;
+HSPLjava/lang/StringBuilder;->subSequence(II)Ljava/lang/CharSequence;
HSPLjava/lang/StringBuilder;->substring(I)Ljava/lang/String;
HSPLjava/lang/StringBuilder;->substring(II)Ljava/lang/String;
HSPLjava/lang/StringBuilder;->toString()Ljava/lang/String;
HSPLjava/lang/StringFactory;->newEmptyString()Ljava/lang/String;
HSPLjava/lang/StringFactory;->newStringFromBytes([B)Ljava/lang/String;
+HSPLjava/lang/StringFactory;->newStringFromBytes([BI)Ljava/lang/String;
HSPLjava/lang/StringFactory;->newStringFromBytes([BII)Ljava/lang/String;
HSPLjava/lang/StringFactory;->newStringFromBytes([BIILjava/lang/String;)Ljava/lang/String;
HSPLjava/lang/StringFactory;->newStringFromBytes([BIILjava/nio/charset/Charset;)Ljava/lang/String;
@@ -10788,6 +36481,7 @@ HSPLjava/lang/System$PropertiesWithNonOverrideableDefaults;->put(Ljava/lang/Obje
HSPLjava/lang/System$PropertiesWithNonOverrideableDefaults;->remove(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/lang/System;->arraycopy([BI[BII)V
HSPLjava/lang/System;->arraycopy([CI[CII)V
+HPLjava/lang/System;->arraycopy([DI[DII)V
HSPLjava/lang/System;->arraycopy([FI[FII)V
HSPLjava/lang/System;->arraycopy([II[III)V
HSPLjava/lang/System;->arraycopy([JI[JII)V
@@ -10814,12 +36508,14 @@ HSPLjava/lang/Thread;-><init>()V
HSPLjava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
HSPLjava/lang/Thread;-><init>(Ljava/lang/Runnable;Ljava/lang/String;)V
HSPLjava/lang/Thread;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/Thread;-><init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)V
HSPLjava/lang/Thread;-><init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;)V
HSPLjava/lang/Thread;-><init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V
HSPLjava/lang/Thread;-><init>(Ljava/lang/ThreadGroup;Ljava/lang/String;IZ)V
HSPLjava/lang/Thread;->activeCount()I
HSPLjava/lang/Thread;->blockedOn(Lsun/nio/ch/Interruptible;)V
HSPLjava/lang/Thread;->checkAccess()V
+HPLjava/lang/Thread;->getAllStackTraces()Ljava/util/Map;
HSPLjava/lang/Thread;->getContextClassLoader()Ljava/lang/ClassLoader;
HSPLjava/lang/Thread;->getDefaultUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler;
HSPLjava/lang/Thread;->getId()J
@@ -10829,6 +36525,7 @@ HSPLjava/lang/Thread;->getStackTrace()[Ljava/lang/StackTraceElement;
HSPLjava/lang/Thread;->getState()Ljava/lang/Thread$State;
HSPLjava/lang/Thread;->getThreadGroup()Ljava/lang/ThreadGroup;
HSPLjava/lang/Thread;->getUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler;
+HSPLjava/lang/Thread;->getUncaughtExceptionPreHandler()Ljava/lang/Thread$UncaughtExceptionHandler;
HSPLjava/lang/Thread;->init(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V
HSPLjava/lang/Thread;->init(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;JLjava/security/AccessControlContext;)V
HSPLjava/lang/Thread;->init2(Ljava/lang/Thread;)V
@@ -10861,6 +36558,8 @@ HSPLjava/lang/ThreadGroup;->add(Ljava/lang/ThreadGroup;)V
HSPLjava/lang/ThreadGroup;->addUnstarted()V
HSPLjava/lang/ThreadGroup;->checkAccess()V
HSPLjava/lang/ThreadGroup;->checkParentAccess(Ljava/lang/ThreadGroup;)Ljava/lang/Void;
+HPLjava/lang/ThreadGroup;->enumerate([Ljava/lang/Thread;)I
+HPLjava/lang/ThreadGroup;->enumerate([Ljava/lang/Thread;IZ)I
HSPLjava/lang/ThreadGroup;->getMaxPriority()I
HSPLjava/lang/ThreadGroup;->getName()Ljava/lang/String;
HSPLjava/lang/ThreadGroup;->remove(Ljava/lang/Thread;)V
@@ -10868,21 +36567,28 @@ HSPLjava/lang/ThreadGroup;->threadTerminated(Ljava/lang/Thread;)V
HSPLjava/lang/ThreadLocal$SuppliedThreadLocal;-><init>(Ljava/util/function/Supplier;)V
HSPLjava/lang/ThreadLocal$SuppliedThreadLocal;->initialValue()Ljava/lang/Object;
HSPLjava/lang/ThreadLocal$ThreadLocalMap$Entry;-><init>(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
+HSPLjava/lang/ThreadLocal$ThreadLocalMap;-><init>(Ljava/lang/ThreadLocal$ThreadLocalMap;)V
+HSPLjava/lang/ThreadLocal$ThreadLocalMap;-><init>(Ljava/lang/ThreadLocal$ThreadLocalMap;Ljava/lang/ThreadLocal$1;)V
HSPLjava/lang/ThreadLocal$ThreadLocalMap;-><init>(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
+HSPLjava/lang/ThreadLocal$ThreadLocalMap;->access$000(Ljava/lang/ThreadLocal$ThreadLocalMap;Ljava/lang/ThreadLocal;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
HSPLjava/lang/ThreadLocal$ThreadLocalMap;->access$100(Ljava/lang/ThreadLocal$ThreadLocalMap;Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
HSPLjava/lang/ThreadLocal$ThreadLocalMap;->access$200(Ljava/lang/ThreadLocal$ThreadLocalMap;Ljava/lang/ThreadLocal;)V
HSPLjava/lang/ThreadLocal$ThreadLocalMap;->cleanSomeSlots(II)Z
HSPLjava/lang/ThreadLocal$ThreadLocalMap;->expungeStaleEntries()V
HSPLjava/lang/ThreadLocal$ThreadLocalMap;->expungeStaleEntry(I)I
+HSPLjava/lang/ThreadLocal$ThreadLocalMap;->getEntry(Ljava/lang/ThreadLocal;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
HSPLjava/lang/ThreadLocal$ThreadLocalMap;->getEntryAfterMiss(Ljava/lang/ThreadLocal;ILjava/lang/ThreadLocal$ThreadLocalMap$Entry;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
HSPLjava/lang/ThreadLocal$ThreadLocalMap;->nextIndex(II)I
+PLjava/lang/ThreadLocal$ThreadLocalMap;->prevIndex(II)I
HSPLjava/lang/ThreadLocal$ThreadLocalMap;->rehash()V
HSPLjava/lang/ThreadLocal$ThreadLocalMap;->remove(Ljava/lang/ThreadLocal;)V
+PLjava/lang/ThreadLocal$ThreadLocalMap;->replaceStaleEntry(Ljava/lang/ThreadLocal;Ljava/lang/Object;I)V
HSPLjava/lang/ThreadLocal$ThreadLocalMap;->resize()V
HSPLjava/lang/ThreadLocal$ThreadLocalMap;->set(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
HSPLjava/lang/ThreadLocal$ThreadLocalMap;->setThreshold(I)V
HSPLjava/lang/ThreadLocal;-><init>()V
HSPLjava/lang/ThreadLocal;->access$400(Ljava/lang/ThreadLocal;)I
+HSPLjava/lang/ThreadLocal;->createInheritedMap(Ljava/lang/ThreadLocal$ThreadLocalMap;)Ljava/lang/ThreadLocal$ThreadLocalMap;
HSPLjava/lang/ThreadLocal;->createMap(Ljava/lang/Thread;Ljava/lang/Object;)V
HSPLjava/lang/ThreadLocal;->get()Ljava/lang/Object;
HSPLjava/lang/ThreadLocal;->getMap(Ljava/lang/Thread;)Ljava/lang/ThreadLocal$ThreadLocalMap;
@@ -10890,9 +36596,13 @@ HSPLjava/lang/ThreadLocal;->initialValue()Ljava/lang/Object;
HSPLjava/lang/ThreadLocal;->nextHashCode()I
HSPLjava/lang/ThreadLocal;->remove()V
HSPLjava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
+HSPLjava/lang/ThreadLocal;->setInitialValue()Ljava/lang/Object;
HSPLjava/lang/ThreadLocal;->withInitial(Ljava/util/function/Supplier;)Ljava/lang/ThreadLocal;
HSPLjava/lang/Throwable$PrintStreamOrWriter;-><init>()V
HSPLjava/lang/Throwable$PrintStreamOrWriter;-><init>(Ljava/lang/Throwable$1;)V
+HSPLjava/lang/Throwable$WrappedPrintStream;-><init>(Ljava/io/PrintStream;)V
+HSPLjava/lang/Throwable$WrappedPrintStream;->lock()Ljava/lang/Object;
+HSPLjava/lang/Throwable$WrappedPrintStream;->println(Ljava/lang/Object;)V
HSPLjava/lang/Throwable$WrappedPrintWriter;-><init>(Ljava/io/PrintWriter;)V
HSPLjava/lang/Throwable$WrappedPrintWriter;->lock()Ljava/lang/Object;
HSPLjava/lang/Throwable$WrappedPrintWriter;->println(Ljava/lang/Object;)V
@@ -10911,10 +36621,14 @@ HSPLjava/lang/Throwable;->getStackTrace()[Ljava/lang/StackTraceElement;
HSPLjava/lang/Throwable;->getSuppressed()[Ljava/lang/Throwable;
HSPLjava/lang/Throwable;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
HSPLjava/lang/Throwable;->printEnclosedStackTrace(Ljava/lang/Throwable$PrintStreamOrWriter;[Ljava/lang/StackTraceElement;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
+HSPLjava/lang/Throwable;->printStackTrace()V
+HSPLjava/lang/Throwable;->printStackTrace(Ljava/io/PrintStream;)V
HSPLjava/lang/Throwable;->printStackTrace(Ljava/io/PrintWriter;)V
HSPLjava/lang/Throwable;->printStackTrace(Ljava/lang/Throwable$PrintStreamOrWriter;)V
+HSPLjava/lang/Throwable;->readObject(Ljava/io/ObjectInputStream;)V
HSPLjava/lang/Throwable;->setStackTrace([Ljava/lang/StackTraceElement;)V
HSPLjava/lang/Throwable;->toString()Ljava/lang/String;
+HSPLjava/lang/Throwable;->writeObject(Ljava/io/ObjectOutputStream;)V
HSPLjava/lang/UNIXProcess$2;-><init>(Ljava/lang/UNIXProcess;[I)V
HSPLjava/lang/UNIXProcess$2;->run()Ljava/lang/Object;
HSPLjava/lang/UNIXProcess$2;->run()Ljava/lang/Void;
@@ -10929,14 +36643,62 @@ HSPLjava/lang/UNIXProcess$ProcessReaperThreadFactory;->newThread(Ljava/lang/Runn
HSPLjava/lang/UNIXProcess;-><init>([B[BI[BI[B[IZ)V
HSPLjava/lang/UNIXProcess;->access$100(Ljava/lang/UNIXProcess;)I
HSPLjava/lang/UNIXProcess;->access$200(Ljava/lang/UNIXProcess;I)I
+HSPLjava/lang/UNIXProcess;->destroy()V
+HSPLjava/lang/UNIXProcess;->getErrorStream()Ljava/io/InputStream;
HSPLjava/lang/UNIXProcess;->getInputStream()Ljava/io/InputStream;
+HSPLjava/lang/UNIXProcess;->getOutputStream()Ljava/io/OutputStream;
HSPLjava/lang/UNIXProcess;->initStreams([I)V
HSPLjava/lang/UNIXProcess;->newFileDescriptor(I)Ljava/io/FileDescriptor;
HSPLjava/lang/UNIXProcess;->processExited(I)V
+HSPLjava/lang/UNIXProcess;->waitFor()I
HSPLjava/lang/UnsatisfiedLinkError;-><init>(Ljava/lang/String;)V
+HSPLjava/lang/UnsupportedOperationException;-><init>()V
HSPLjava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
HSPLjava/lang/VMClassLoader;->getResource(Ljava/lang/String;)Ljava/net/URL;
HSPLjava/lang/VMClassLoader;->getResources(Ljava/lang/String;)Ljava/util/List;
+HPLjava/lang/invoke/MethodHandle;-><init>(JILjava/lang/invoke/MethodType;)V
+HPLjava/lang/invoke/MethodHandle;->type()Ljava/lang/invoke/MethodType;
+HPLjava/lang/invoke/MethodHandleImpl;-><init>(JILjava/lang/invoke/MethodType;)V
+HPLjava/lang/invoke/MethodHandles$Lookup;->checkAccess(Ljava/lang/Class;Ljava/lang/Class;ILjava/lang/String;)V
+HPLjava/lang/invoke/MethodHandles$Lookup;->checkReturnType(Ljava/lang/reflect/Method;Ljava/lang/invoke/MethodType;)V
+HPLjava/lang/invoke/MethodHandles$Lookup;->createMethodHandle(Ljava/lang/reflect/Method;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
+HPLjava/lang/invoke/MethodHandles$Lookup;->findVirtual(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
+HPLjava/lang/invoke/MethodHandles$Lookup;->unreflect(Ljava/lang/reflect/Method;)Ljava/lang/invoke/MethodHandle;
+HPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;-><init>(Ljava/lang/Object;)V
+HPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
+HPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;->equals(Ljava/lang/Object;)Z
+HPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;->hashCode()I
+HPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet;->add(Ljava/lang/Object;)Ljava/lang/Object;
+HPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet;->expungeStaleElements()V
+HPLjava/lang/invoke/MethodType$ConcurrentWeakInternSet;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HPLjava/lang/invoke/MethodType;-><init>(Ljava/lang/Class;[Ljava/lang/Class;Z)V
+HPLjava/lang/invoke/MethodType;-><init>([Ljava/lang/Class;Ljava/lang/Class;)V
+HPLjava/lang/invoke/MethodType;->checkPtype(Ljava/lang/Class;)V
+HPLjava/lang/invoke/MethodType;->checkPtypes([Ljava/lang/Class;)I
+HPLjava/lang/invoke/MethodType;->checkRtype(Ljava/lang/Class;)V
+HPLjava/lang/invoke/MethodType;->checkSlotCount(I)V
+HPLjava/lang/invoke/MethodType;->dropParameterTypes(II)Ljava/lang/invoke/MethodType;
+HPLjava/lang/invoke/MethodType;->equals(Ljava/lang/Object;)Z
+HPLjava/lang/invoke/MethodType;->equals(Ljava/lang/invoke/MethodType;)Z
+HPLjava/lang/invoke/MethodType;->form()Ljava/lang/invoke/MethodTypeForm;
+HPLjava/lang/invoke/MethodType;->genericMethodType(I)Ljava/lang/invoke/MethodType;
+HPLjava/lang/invoke/MethodType;->genericMethodType(IZ)Ljava/lang/invoke/MethodType;
+HPLjava/lang/invoke/MethodType;->hashCode()I
+HPLjava/lang/invoke/MethodType;->insertParameterTypes(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
+HPLjava/lang/invoke/MethodType;->makeImpl(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType;
+HPLjava/lang/invoke/MethodType;->methodType(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
+HPLjava/lang/invoke/MethodType;->parameterSlotCount()I
+HPLjava/lang/invoke/MethodType;->ptypes()[Ljava/lang/Class;
+HPLjava/lang/invoke/MethodType;->returnType()Ljava/lang/Class;
+HPLjava/lang/invoke/MethodType;->rtype()Ljava/lang/Class;
+HPLjava/lang/invoke/MethodTypeForm;-><init>(Ljava/lang/invoke/MethodType;)V
+HPLjava/lang/invoke/MethodTypeForm;->canonicalize(Ljava/lang/Class;I)Ljava/lang/Class;
+HPLjava/lang/invoke/MethodTypeForm;->canonicalize(Ljava/lang/invoke/MethodType;II)Ljava/lang/invoke/MethodType;
+HPLjava/lang/invoke/MethodTypeForm;->canonicalizeAll([Ljava/lang/Class;I)[Ljava/lang/Class;
+HPLjava/lang/invoke/MethodTypeForm;->findForm(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodTypeForm;
+HPLjava/lang/invoke/MethodTypeForm;->pack(IIII)J
+HPLjava/lang/invoke/MethodTypeForm;->parameterSlotCount()I
+HPLjava/lang/invoke/MethodTypeForm;->unpack(JI)C
HSPLjava/lang/invoke/VarHandle;->acquireFence()V
HSPLjava/lang/invoke/VarHandle;->fullFence()V
HSPLjava/lang/invoke/VarHandle;->loadLoadFence()V
@@ -10983,6 +36745,10 @@ HSPLjava/lang/reflect/Array;->newArray(Ljava/lang/Class;I)Ljava/lang/Object;
HSPLjava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object;
HSPLjava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
HSPLjava/lang/reflect/Array;->set(Ljava/lang/Object;ILjava/lang/Object;)V
+HSPLjava/lang/reflect/Array;->setBoolean(Ljava/lang/Object;IZ)V
+HSPLjava/lang/reflect/Array;->setByte(Ljava/lang/Object;IB)V
+HSPLjava/lang/reflect/Array;->setFloat(Ljava/lang/Object;IF)V
+HSPLjava/lang/reflect/Array;->setInt(Ljava/lang/Object;II)V
HSPLjava/lang/reflect/Constructor;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V
HSPLjava/lang/reflect/Constructor;->getDeclaringClass()Ljava/lang/Class;
HSPLjava/lang/reflect/Constructor;->getModifiers()I
@@ -10997,6 +36763,7 @@ HSPLjava/lang/reflect/Executable;->equalParamTypes([Ljava/lang/Class;[Ljava/lang
HSPLjava/lang/reflect/Executable;->fixMethodFlags(I)I
HSPLjava/lang/reflect/Executable;->getAccessFlags()I
HSPLjava/lang/reflect/Executable;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
+HPLjava/lang/reflect/Executable;->getArtMethod()J
HSPLjava/lang/reflect/Executable;->getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;
HSPLjava/lang/reflect/Executable;->getDeclaringClassInternal()Ljava/lang/Class;
HSPLjava/lang/reflect/Executable;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
@@ -11005,8 +36772,13 @@ HSPLjava/lang/reflect/Executable;->getModifiersInternal()I
HSPLjava/lang/reflect/Executable;->getParameterAnnotationsInternal()[[Ljava/lang/annotation/Annotation;
HSPLjava/lang/reflect/Executable;->getSignatureAttribute()Ljava/lang/String;
HSPLjava/lang/reflect/Executable;->isAnnotationPresent(Ljava/lang/Class;)Z
+HSPLjava/lang/reflect/Executable;->isBridgeMethodInternal()Z
HSPLjava/lang/reflect/Executable;->isDefaultMethodInternal()Z
HSPLjava/lang/reflect/Executable;->isSynthetic()Z
+HPLjava/lang/reflect/Executable;->isVarArgs()Z
+HPLjava/lang/reflect/Executable;->printModifiersIfNonzero(Ljava/lang/StringBuilder;IZ)V
+HPLjava/lang/reflect/Executable;->separateWithCommas([Ljava/lang/Class;Ljava/lang/StringBuilder;)V
+HPLjava/lang/reflect/Executable;->sharedToString(IZ[Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/String;
HSPLjava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
HSPLjava/lang/reflect/Field;->getDeclaringClass()Ljava/lang/Class;
HSPLjava/lang/reflect/Field;->getGenericType()Ljava/lang/reflect/Type;
@@ -11036,8 +36808,12 @@ HSPLjava/lang/reflect/Method;->getParameterAnnotations()[[Ljava/lang/annotation/
HSPLjava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
HSPLjava/lang/reflect/Method;->getReturnType()Ljava/lang/Class;
HSPLjava/lang/reflect/Method;->hashCode()I
+HSPLjava/lang/reflect/Method;->isBridge()Z
HSPLjava/lang/reflect/Method;->isDefault()Z
HSPLjava/lang/reflect/Method;->isSynthetic()Z
+HPLjava/lang/reflect/Method;->isVarArgs()Z
+HPLjava/lang/reflect/Method;->specificToStringHeader(Ljava/lang/StringBuilder;)V
+HPLjava/lang/reflect/Method;->toString()Ljava/lang/String;
HSPLjava/lang/reflect/Modifier;->isAbstract(I)Z
HSPLjava/lang/reflect/Modifier;->isFinal(I)Z
HSPLjava/lang/reflect/Modifier;->isInterface(I)Z
@@ -11046,7 +36822,10 @@ HSPLjava/lang/reflect/Modifier;->isProtected(I)Z
HSPLjava/lang/reflect/Modifier;->isPublic(I)Z
HSPLjava/lang/reflect/Modifier;->isStatic(I)Z
HSPLjava/lang/reflect/Modifier;->isSynthetic(I)Z
+HSPLjava/lang/reflect/Modifier;->isTransient(I)Z
HSPLjava/lang/reflect/Modifier;->isVolatile(I)Z
+PLjava/lang/reflect/Modifier;->methodModifiers()I
+HPLjava/lang/reflect/Modifier;->toString(I)Ljava/lang/String;
HSPLjava/lang/reflect/Proxy$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLjava/lang/reflect/Proxy$1;->compare(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)I
HSPLjava/lang/reflect/Proxy$Key1;-><init>(Ljava/lang/Class;)V
@@ -11082,64 +36861,150 @@ HSPLjava/lang/reflect/WeakCache;->access$000(Ljava/lang/reflect/WeakCache;)Ljava
HSPLjava/lang/reflect/WeakCache;->access$100(Ljava/lang/reflect/WeakCache;)Ljava/util/concurrent/ConcurrentMap;
HSPLjava/lang/reflect/WeakCache;->expungeStaleEntries()V
HSPLjava/lang/reflect/WeakCache;->get(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLjava/math/BigDecimal;-><init>(D)V
+HSPLjava/math/BigDecimal;-><init>(I)V
+HSPLjava/math/BigDecimal;-><init>(II)V
+PLjava/math/BigDecimal;-><init>(J)V
HSPLjava/math/BigDecimal;-><init>(JI)V
HSPLjava/math/BigDecimal;-><init>(Ljava/lang/String;)V
+HSPLjava/math/BigDecimal;-><init>(Ljava/math/BigInteger;)V
+HSPLjava/math/BigDecimal;-><init>(Ljava/math/BigInteger;I)V
HSPLjava/math/BigDecimal;-><init>([CII)V
+HSPLjava/math/BigDecimal;->add(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->addAndMult10(Ljava/math/BigDecimal;Ljava/math/BigDecimal;I)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->approxPrecision()I
+HSPLjava/math/BigDecimal;->bitLength(I)I
HSPLjava/math/BigDecimal;->bitLength(J)I
+HSPLjava/math/BigDecimal;->compareAbsoluteValues(JJ)I
+HSPLjava/math/BigDecimal;->compareForRounding(JJ)I
+PLjava/math/BigDecimal;->compareTo(Ljava/math/BigDecimal;)I
+HSPLjava/math/BigDecimal;->divide(Ljava/math/BigDecimal;ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->divide(Ljava/math/BigDecimal;Ljava/math/RoundingMode;)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->dividePrimitiveLongs(JJILjava/math/RoundingMode;)Ljava/math/BigDecimal;
+HPLjava/math/BigDecimal;->doubleValue()D
+HPLjava/math/BigDecimal;->floatValue()F
HSPLjava/math/BigDecimal;->getUnscaledValue()Ljava/math/BigInteger;
+HSPLjava/math/BigDecimal;->isZero()Z
+HSPLjava/math/BigDecimal;->longValueExact()J
+HSPLjava/math/BigDecimal;->movePoint(J)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->movePointLeft(I)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->movePointRight(I)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->multiply(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->roundingBehavior(IILjava/math/RoundingMode;)I
+HSPLjava/math/BigDecimal;->safeLongToInt(J)I
+PLjava/math/BigDecimal;->scale()I
+HSPLjava/math/BigDecimal;->setScale(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->setUnscaledValue(Ljava/math/BigInteger;)V
+HPLjava/math/BigDecimal;->signum()I
+HPLjava/math/BigDecimal;->stripTrailingZeros()Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->toBigIntegerExact()Ljava/math/BigInteger;
+HPLjava/math/BigDecimal;->toPlainString()Ljava/lang/String;
+HSPLjava/math/BigDecimal;->valueExact(I)J
+HPLjava/math/BigDecimal;->valueOf(D)Ljava/math/BigDecimal;
HSPLjava/math/BigDecimal;->valueOf(J)Ljava/math/BigDecimal;
+HSPLjava/math/BigDecimal;->valueOf(JI)Ljava/math/BigDecimal;
HSPLjava/math/BigInt;-><init>()V
HSPLjava/math/BigInt;->addition(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
+PLjava/math/BigInt;->bigEndianMagnitude()[B
+HSPLjava/math/BigInt;->bigExp(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
HSPLjava/math/BigInt;->bitLength()I
HSPLjava/math/BigInt;->checkString(Ljava/lang/String;I)Ljava/lang/String;
HSPLjava/math/BigInt;->cmp(Ljava/math/BigInt;Ljava/math/BigInt;)I
HSPLjava/math/BigInt;->decString()Ljava/lang/String;
+HSPLjava/math/BigInt;->division(Ljava/math/BigInt;Ljava/math/BigInt;Ljava/math/BigInt;Ljava/math/BigInt;)V
+HSPLjava/math/BigInt;->exp(Ljava/math/BigInt;I)Ljava/math/BigInt;
HSPLjava/math/BigInt;->hasNativeBignum()Z
+HPLjava/math/BigInt;->isBitSet(I)Z
HSPLjava/math/BigInt;->littleEndianIntsMagnitude()[I
HSPLjava/math/BigInt;->longInt()J
HSPLjava/math/BigInt;->makeValid()V
+HSPLjava/math/BigInt;->modExp(Ljava/math/BigInt;Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
+PLjava/math/BigInt;->modInverse(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
+HSPLjava/math/BigInt;->modulus(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
HSPLjava/math/BigInt;->newBigInt()Ljava/math/BigInt;
HSPLjava/math/BigInt;->product(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
HSPLjava/math/BigInt;->putBigEndian([BZ)V
HSPLjava/math/BigInt;->putBigEndianTwosComplement([B)V
HSPLjava/math/BigInt;->putDecString(Ljava/lang/String;)V
HSPLjava/math/BigInt;->putHexString(Ljava/lang/String;)V
+HSPLjava/math/BigInt;->putLittleEndianInts([IZ)V
+HSPLjava/math/BigInt;->putLongInt(J)V
HSPLjava/math/BigInt;->putULongInt(JZ)V
+HSPLjava/math/BigInt;->shift(Ljava/math/BigInt;I)Ljava/math/BigInt;
HSPLjava/math/BigInt;->sign()I
HSPLjava/math/BigInt;->subtraction(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
HSPLjava/math/BigInt;->twosCompFitsIntoBytes(I)Z
+HPLjava/math/BigInteger;-><init>(II[I)V
HSPLjava/math/BigInteger;-><init>(IJ)V
+HSPLjava/math/BigInteger;-><init>(ILjava/util/Random;)V
HSPLjava/math/BigInteger;-><init>(I[B)V
HSPLjava/math/BigInteger;-><init>(Ljava/lang/String;)V
HSPLjava/math/BigInteger;-><init>(Ljava/lang/String;I)V
HSPLjava/math/BigInteger;-><init>(Ljava/math/BigInt;)V
HSPLjava/math/BigInteger;-><init>([B)V
+HSPLjava/math/BigInteger;->abs()Ljava/math/BigInteger;
HSPLjava/math/BigInteger;->add(Ljava/math/BigInteger;)Ljava/math/BigInteger;
HSPLjava/math/BigInteger;->bitLength()I
HSPLjava/math/BigInteger;->compareTo(Ljava/math/BigInteger;)I
+PLjava/math/BigInteger;->divide(Ljava/math/BigInteger;)Ljava/math/BigInteger;
+HSPLjava/math/BigInteger;->divideAndRemainder(Ljava/math/BigInteger;)[Ljava/math/BigInteger;
HSPLjava/math/BigInteger;->equals(Ljava/lang/Object;)Z
HSPLjava/math/BigInteger;->getBigInt()Ljava/math/BigInt;
HSPLjava/math/BigInteger;->getFirstNonzeroDigit()I
+HSPLjava/math/BigInteger;->getLowestSetBit()I
HSPLjava/math/BigInteger;->hashCode()I
HSPLjava/math/BigInteger;->intValue()I
HSPLjava/math/BigInteger;->longValue()J
+HSPLjava/math/BigInteger;->mod(Ljava/math/BigInteger;)Ljava/math/BigInteger;
+PLjava/math/BigInteger;->modInverse(Ljava/math/BigInteger;)Ljava/math/BigInteger;
+HSPLjava/math/BigInteger;->modPow(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
HSPLjava/math/BigInteger;->multiply(Ljava/math/BigInteger;)Ljava/math/BigInteger;
+HSPLjava/math/BigInteger;->pow(I)Ljava/math/BigInteger;
HSPLjava/math/BigInteger;->prepareJavaRepresentation()V
HSPLjava/math/BigInteger;->readObject(Ljava/io/ObjectInputStream;)V
HSPLjava/math/BigInteger;->setBigInt(Ljava/math/BigInt;)V
HSPLjava/math/BigInteger;->setJavaRepresentation(II[I)V
+HSPLjava/math/BigInteger;->shiftLeft(I)Ljava/math/BigInteger;
+HPLjava/math/BigInteger;->shiftLeftOneBit()Ljava/math/BigInteger;
+HPLjava/math/BigInteger;->shiftRight(I)Ljava/math/BigInteger;
HSPLjava/math/BigInteger;->signum()I
HSPLjava/math/BigInteger;->subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger;
+HPLjava/math/BigInteger;->testBit(I)Z
HSPLjava/math/BigInteger;->toByteArray()[B
HSPLjava/math/BigInteger;->toString()Ljava/lang/String;
+HSPLjava/math/BigInteger;->toString(I)Ljava/lang/String;
HSPLjava/math/BigInteger;->twosComplement()[B
HSPLjava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;
+HPLjava/math/BigInteger;->writeObject(Ljava/io/ObjectOutputStream;)V
+HSPLjava/math/Conversion;->bigInteger2String(Ljava/math/BigInteger;I)Ljava/lang/String;
+HSPLjava/math/MathContext;-><init>(ILjava/math/RoundingMode;)V
+HSPLjava/math/MathContext;->checkValid()V
HSPLjava/math/MathContext;->equals(Ljava/lang/Object;)Z
HSPLjava/math/MathContext;->getPrecision()I
HSPLjava/math/MathContext;->getRoundingMode()Ljava/math/RoundingMode;
+HSPLjava/math/Multiplication;->powerOf10(J)Ljava/math/BigInteger;
HSPLjava/math/RoundingMode;->values()[Ljava/math/RoundingMode;
+HSPLjava/net/AbstractPlainDatagramSocketImpl;-><init>()V
+HSPLjava/net/AbstractPlainDatagramSocketImpl;->bind(ILjava/net/InetAddress;)V
+HSPLjava/net/AbstractPlainDatagramSocketImpl;->close()V
+HSPLjava/net/AbstractPlainDatagramSocketImpl;->connect(Ljava/net/InetAddress;I)V
+HSPLjava/net/AbstractPlainDatagramSocketImpl;->create()V
+HSPLjava/net/AbstractPlainDatagramSocketImpl;->dataAvailable()I
+HSPLjava/net/AbstractPlainDatagramSocketImpl;->finalize()V
+PLjava/net/AbstractPlainDatagramSocketImpl;->getOption(I)Ljava/lang/Object;
+HSPLjava/net/AbstractPlainDatagramSocketImpl;->isClosed()Z
+HSPLjava/net/AbstractPlainDatagramSocketImpl;->join(Ljava/net/InetAddress;)V
+HPLjava/net/AbstractPlainDatagramSocketImpl;->joinGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V
+HPLjava/net/AbstractPlainDatagramSocketImpl;->leaveGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V
+HSPLjava/net/AbstractPlainDatagramSocketImpl;->nativeConnectDisabled()Z
+HSPLjava/net/AbstractPlainDatagramSocketImpl;->receive(Ljava/net/DatagramPacket;)V
+HSPLjava/net/AbstractPlainDatagramSocketImpl;->setOption(ILjava/lang/Object;)V
HSPLjava/net/AbstractPlainSocketImpl;-><init>()V
+HSPLjava/net/AbstractPlainSocketImpl;->accept(Ljava/net/SocketImpl;)V
HSPLjava/net/AbstractPlainSocketImpl;->acquireFD()Ljava/io/FileDescriptor;
+HPLjava/net/AbstractPlainSocketImpl;->available()I
+HSPLjava/net/AbstractPlainSocketImpl;->bind(Ljava/net/InetAddress;I)V
HSPLjava/net/AbstractPlainSocketImpl;->close()V
HSPLjava/net/AbstractPlainSocketImpl;->connect(Ljava/net/SocketAddress;I)V
HSPLjava/net/AbstractPlainSocketImpl;->connectToAddress(Ljava/net/InetAddress;II)V
@@ -11149,9 +37014,17 @@ HSPLjava/net/AbstractPlainSocketImpl;->finalize()V
HSPLjava/net/AbstractPlainSocketImpl;->getInputStream()Ljava/io/InputStream;
HSPLjava/net/AbstractPlainSocketImpl;->getOption(I)Ljava/lang/Object;
HSPLjava/net/AbstractPlainSocketImpl;->getOutputStream()Ljava/io/OutputStream;
+HSPLjava/net/AbstractPlainSocketImpl;->getTimeout()I
HSPLjava/net/AbstractPlainSocketImpl;->isClosedOrPending()Z
+HSPLjava/net/AbstractPlainSocketImpl;->isConnectionReset()Z
+HPLjava/net/AbstractPlainSocketImpl;->isConnectionResetPending()Z
+HSPLjava/net/AbstractPlainSocketImpl;->listen(I)V
HSPLjava/net/AbstractPlainSocketImpl;->releaseFD()V
+HPLjava/net/AbstractPlainSocketImpl;->setConnectionReset()V
+HPLjava/net/AbstractPlainSocketImpl;->setConnectionResetPending()V
HSPLjava/net/AbstractPlainSocketImpl;->setOption(ILjava/lang/Object;)V
+HSPLjava/net/AbstractPlainSocketImpl;->shutdownInput()V
+HSPLjava/net/AbstractPlainSocketImpl;->shutdownOutput()V
HSPLjava/net/AbstractPlainSocketImpl;->socketClose()V
HSPLjava/net/AbstractPlainSocketImpl;->socketPreClose()V
HSPLjava/net/AddressCache$AddressCacheEntry;-><init>(Ljava/lang/Object;)V
@@ -11161,34 +37034,144 @@ HSPLjava/net/AddressCache$AddressCacheKey;->hashCode()I
HSPLjava/net/AddressCache;->clear()V
HSPLjava/net/AddressCache;->get(Ljava/lang/String;I)Ljava/lang/Object;
HSPLjava/net/AddressCache;->put(Ljava/lang/String;I[Ljava/net/InetAddress;)V
-PLjava/net/AddressCache;->putUnknownHost(Ljava/lang/String;ILjava/lang/String;)V
+HSPLjava/net/AddressCache;->putUnknownHost(Ljava/lang/String;ILjava/lang/String;)V
+PLjava/net/ConnectException;-><init>(Ljava/lang/String;)V
+HSPLjava/net/ConnectException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
HSPLjava/net/CookieHandler;-><init>()V
HSPLjava/net/CookieHandler;->getDefault()Ljava/net/CookieHandler;
HSPLjava/net/CookieHandler;->setDefault(Ljava/net/CookieHandler;)V
+HSPLjava/net/CookieManager$CookiePathComparator;-><init>()V
+HSPLjava/net/CookieManager$CookiePathComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLjava/net/CookieManager$CookiePathComparator;->compare(Ljava/net/HttpCookie;Ljava/net/HttpCookie;)I
+HSPLjava/net/CookieManager;-><init>()V
HSPLjava/net/CookieManager;-><init>(Ljava/net/CookieStore;Ljava/net/CookiePolicy;)V
HSPLjava/net/CookieManager;->get(Ljava/net/URI;Ljava/util/Map;)Ljava/util/Map;
+HSPLjava/net/CookieManager;->getCookieStore()Ljava/net/CookieStore;
+HSPLjava/net/CookieManager;->normalizePath(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/net/CookieManager;->pathMatches(Ljava/net/URI;Ljava/net/HttpCookie;)Z
HSPLjava/net/CookieManager;->put(Ljava/net/URI;Ljava/util/Map;)V
+HSPLjava/net/CookieManager;->setCookiePolicy(Ljava/net/CookiePolicy;)V
+HSPLjava/net/CookieManager;->shouldAcceptInternal(Ljava/net/URI;Ljava/net/HttpCookie;)Z
+HSPLjava/net/CookieManager;->sortByPath(Ljava/util/List;)Ljava/util/List;
+HSPLjava/net/CookiePolicy$1;->shouldAccept(Ljava/net/URI;Ljava/net/HttpCookie;)Z
+HSPLjava/net/CookiePolicy$3;->shouldAccept(Ljava/net/URI;Ljava/net/HttpCookie;)Z
+HSPLjava/net/DatagramPacket;-><init>([BI)V
+HSPLjava/net/DatagramPacket;-><init>([BII)V
+HSPLjava/net/DatagramPacket;-><init>([BIILjava/net/InetAddress;I)V
+HPLjava/net/DatagramPacket;-><init>([BIILjava/net/SocketAddress;)V
+HSPLjava/net/DatagramPacket;-><init>([BILjava/net/InetAddress;I)V
+HPLjava/net/DatagramPacket;-><init>([BILjava/net/SocketAddress;)V
+HSPLjava/net/DatagramPacket;->getAddress()Ljava/net/InetAddress;
+HSPLjava/net/DatagramPacket;->getData()[B
+HSPLjava/net/DatagramPacket;->getLength()I
+HSPLjava/net/DatagramPacket;->getOffset()I
+HSPLjava/net/DatagramPacket;->getPort()I
+HSPLjava/net/DatagramPacket;->setAddress(Ljava/net/InetAddress;)V
+HSPLjava/net/DatagramPacket;->setData([BII)V
+HSPLjava/net/DatagramPacket;->setPort(I)V
+HSPLjava/net/DatagramPacket;->setReceivedLength(I)V
+HPLjava/net/DatagramPacket;->setSocketAddress(Ljava/net/SocketAddress;)V
+HSPLjava/net/DatagramSocket$1;-><init>(Ljava/net/DatagramSocket;)V
+HSPLjava/net/DatagramSocket$1;->run()Ljava/lang/Object;
+HSPLjava/net/DatagramSocket$1;->run()Ljava/lang/Void;
+HSPLjava/net/DatagramSocket;-><init>()V
+HSPLjava/net/DatagramSocket;-><init>(Ljava/net/SocketAddress;)V
+HSPLjava/net/DatagramSocket;->bind(Ljava/net/SocketAddress;)V
+HSPLjava/net/DatagramSocket;->checkAddress(Ljava/net/InetAddress;Ljava/lang/String;)V
+HSPLjava/net/DatagramSocket;->checkOldImpl()V
+HSPLjava/net/DatagramSocket;->close()V
+HSPLjava/net/DatagramSocket;->connect(Ljava/net/SocketAddress;)V
+HSPLjava/net/DatagramSocket;->connectInternal(Ljava/net/InetAddress;I)V
+HSPLjava/net/DatagramSocket;->createImpl()V
+PLjava/net/DatagramSocket;->getFileDescriptor$()Ljava/io/FileDescriptor;
+HSPLjava/net/DatagramSocket;->getImpl()Ljava/net/DatagramSocketImpl;
+PLjava/net/DatagramSocket;->getReuseAddress()Z
+HSPLjava/net/DatagramSocket;->isBound()Z
+HSPLjava/net/DatagramSocket;->isClosed()Z
+HSPLjava/net/DatagramSocket;->receive(Ljava/net/DatagramPacket;)V
+HSPLjava/net/DatagramSocket;->send(Ljava/net/DatagramPacket;)V
+HSPLjava/net/DatagramSocket;->setBroadcast(Z)V
+HSPLjava/net/DatagramSocket;->setReceiveBufferSize(I)V
+HSPLjava/net/DatagramSocket;->setReuseAddress(Z)V
+HSPLjava/net/DatagramSocket;->setSoTimeout(I)V
+HSPLjava/net/DatagramSocketImpl;-><init>()V
+HSPLjava/net/DatagramSocketImpl;->setDatagramSocket(Ljava/net/DatagramSocket;)V
+HSPLjava/net/DefaultDatagramSocketImplFactory;->createDatagramSocketImpl(Z)Ljava/net/DatagramSocketImpl;
+HSPLjava/net/HttpCookie$11;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie$4;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie$6;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie$8;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie$9;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->access$000(Ljava/net/HttpCookie;)J
+HSPLjava/net/HttpCookie;->assignAttribute(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->domainMatches(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLjava/net/HttpCookie;->equals(Ljava/lang/Object;)Z
+HSPLjava/net/HttpCookie;->equalsIgnoreCase(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLjava/net/HttpCookie;->getComment()Ljava/lang/String;
+HSPLjava/net/HttpCookie;->getCommentURL()Ljava/lang/String;
+HSPLjava/net/HttpCookie;->getDomain()Ljava/lang/String;
+HSPLjava/net/HttpCookie;->getMaxAge()J
+HSPLjava/net/HttpCookie;->getName()Ljava/lang/String;
+HSPLjava/net/HttpCookie;->getPath()Ljava/lang/String;
+HSPLjava/net/HttpCookie;->getPortlist()Ljava/lang/String;
+HSPLjava/net/HttpCookie;->getSecure()Z
+HSPLjava/net/HttpCookie;->getValue()Ljava/lang/String;
+HSPLjava/net/HttpCookie;->getVersion()I
+HSPLjava/net/HttpCookie;->guessCookieVersion(Ljava/lang/String;)I
+HSPLjava/net/HttpCookie;->hasExpired()Z
+HSPLjava/net/HttpCookie;->isFullyQualifiedDomainName(Ljava/lang/String;I)Z
+HSPLjava/net/HttpCookie;->isToken(Ljava/lang/String;)Z
+HSPLjava/net/HttpCookie;->parse(Ljava/lang/String;)Ljava/util/List;
+HSPLjava/net/HttpCookie;->parse(Ljava/lang/String;Z)Ljava/util/List;
+HSPLjava/net/HttpCookie;->parseInternal(Ljava/lang/String;Z)Ljava/net/HttpCookie;
+HSPLjava/net/HttpCookie;->setComment(Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->setCommentURL(Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->setDomain(Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->setHttpOnly(Z)V
+HSPLjava/net/HttpCookie;->setMaxAge(J)V
+HSPLjava/net/HttpCookie;->setPath(Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->setPortlist(Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->setSecure(Z)V
+HSPLjava/net/HttpCookie;->setValue(Ljava/lang/String;)V
+HSPLjava/net/HttpCookie;->setVersion(I)V
+HSPLjava/net/HttpCookie;->startsWithIgnoreCase(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLjava/net/HttpCookie;->stripOffSurroundingQuote(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/net/HttpCookie;->toNetscapeHeaderString()Ljava/lang/String;
+HSPLjava/net/HttpCookie;->toString()Ljava/lang/String;
+HPLjava/net/HttpRetryException;-><init>(Ljava/lang/String;I)V
HSPLjava/net/HttpURLConnection;-><init>(Ljava/net/URL;)V
HSPLjava/net/HttpURLConnection;->getFollowRedirects()Z
+HSPLjava/net/HttpURLConnection;->getHeaderFieldDate(Ljava/lang/String;J)J
HSPLjava/net/HttpURLConnection;->getRequestMethod()Ljava/lang/String;
HSPLjava/net/HttpURLConnection;->setChunkedStreamingMode(I)V
+HSPLjava/net/HttpURLConnection;->setFixedLengthStreamingMode(I)V
+HSPLjava/net/HttpURLConnection;->setInstanceFollowRedirects(Z)V
+HSPLjava/net/HttpURLConnection;->setRequestMethod(Ljava/lang/String;)V
HSPLjava/net/IDN;->toASCII(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/net/IDN;->toASCII(Ljava/lang/String;I)Ljava/lang/String;
HSPLjava/net/InMemoryCookieStore;-><init>()V
HSPLjava/net/InMemoryCookieStore;-><init>(I)V
+HSPLjava/net/InMemoryCookieStore;->add(Ljava/net/URI;Ljava/net/HttpCookie;)V
+HSPLjava/net/InMemoryCookieStore;->addIndex(Ljava/util/Map;Ljava/lang/Object;Ljava/net/HttpCookie;)V
HSPLjava/net/InMemoryCookieStore;->get(Ljava/net/URI;)Ljava/util/List;
+PLjava/net/InMemoryCookieStore;->getCookies()Ljava/util/List;
HSPLjava/net/InMemoryCookieStore;->getEffectiveURI(Ljava/net/URI;)Ljava/net/URI;
HSPLjava/net/InMemoryCookieStore;->getInternal1(Ljava/util/List;Ljava/util/Map;Ljava/lang/String;)V
HSPLjava/net/InMemoryCookieStore;->getInternal2(Ljava/util/List;Ljava/util/Map;Ljava/lang/Comparable;)V
+HSPLjava/net/InMemoryCookieStore;->netscapeDomainMatches(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLjava/net/Inet4Address;-><init>()V
HSPLjava/net/Inet4Address;-><init>(Ljava/lang/String;[B)V
HSPLjava/net/Inet4Address;->equals(Ljava/lang/Object;)Z
HSPLjava/net/Inet4Address;->getAddress()[B
HSPLjava/net/Inet4Address;->getHostAddress()Ljava/lang/String;
HSPLjava/net/Inet4Address;->hashCode()I
HSPLjava/net/Inet4Address;->isAnyLocalAddress()Z
-PLjava/net/Inet4Address;->isLinkLocalAddress()Z
+HSPLjava/net/Inet4Address;->isLinkLocalAddress()Z
HSPLjava/net/Inet4Address;->isLoopbackAddress()Z
HSPLjava/net/Inet4Address;->isMulticastAddress()Z
+HPLjava/net/Inet4Address;->isSiteLocalAddress()Z
HSPLjava/net/Inet4Address;->numericToTextFormat([B)Ljava/lang/String;
HSPLjava/net/Inet6Address$Inet6AddressHolder;-><init>(Ljava/net/Inet6Address;)V
HSPLjava/net/Inet6Address$Inet6AddressHolder;-><init>(Ljava/net/Inet6Address;Ljava/net/Inet6Address$1;)V
@@ -11196,22 +37179,34 @@ HSPLjava/net/Inet6Address$Inet6AddressHolder;->equals(Ljava/lang/Object;)Z
HSPLjava/net/Inet6Address$Inet6AddressHolder;->hashCode()I
HSPLjava/net/Inet6Address$Inet6AddressHolder;->init([BI)V
HSPLjava/net/Inet6Address$Inet6AddressHolder;->isAnyLocalAddress()Z
-PLjava/net/Inet6Address$Inet6AddressHolder;->isLinkLocalAddress()Z
+HPLjava/net/Inet6Address$Inet6AddressHolder;->isIPv4CompatibleAddress()Z
+HSPLjava/net/Inet6Address$Inet6AddressHolder;->isLinkLocalAddress()Z
HSPLjava/net/Inet6Address$Inet6AddressHolder;->isLoopbackAddress()Z
HSPLjava/net/Inet6Address$Inet6AddressHolder;->isMulticastAddress()Z
+HPLjava/net/Inet6Address$Inet6AddressHolder;->isSiteLocalAddress()Z
HSPLjava/net/Inet6Address$Inet6AddressHolder;->setAddr([B)V
+HSPLjava/net/Inet6Address;-><init>()V
HSPLjava/net/Inet6Address;-><init>(Ljava/lang/String;[BI)V
HSPLjava/net/Inet6Address;->equals(Ljava/lang/Object;)Z
HSPLjava/net/Inet6Address;->getAddress()[B
HSPLjava/net/Inet6Address;->getHostAddress()Ljava/lang/String;
+HSPLjava/net/Inet6Address;->getScopeId()I
HSPLjava/net/Inet6Address;->hashCode()I
HSPLjava/net/Inet6Address;->isAnyLocalAddress()Z
-PLjava/net/Inet6Address;->isLinkLocalAddress()Z
+HPLjava/net/Inet6Address;->isIPv4CompatibleAddress()Z
+HSPLjava/net/Inet6Address;->isLinkLocalAddress()Z
HSPLjava/net/Inet6Address;->isLoopbackAddress()Z
HSPLjava/net/Inet6Address;->isMulticastAddress()Z
+PLjava/net/Inet6Address;->isSiteLocalAddress()Z
HSPLjava/net/Inet6AddressImpl;->clearAddressCache()V
+PLjava/net/Inet6AddressImpl;->getHostByAddr([B)Ljava/lang/String;
+PLjava/net/Inet6AddressImpl;->getHostByAddr0([B)Ljava/lang/String;
+HPLjava/net/Inet6AddressImpl;->icmpEcho(Ljava/net/InetAddress;ILjava/net/InetAddress;I)Z
+HPLjava/net/Inet6AddressImpl;->isReachable(Ljava/net/InetAddress;ILjava/net/NetworkInterface;I)Z
HSPLjava/net/Inet6AddressImpl;->lookupAllHostAddr(Ljava/lang/String;I)[Ljava/net/InetAddress;
HSPLjava/net/Inet6AddressImpl;->lookupHostByName(Ljava/lang/String;I)[Ljava/net/InetAddress;
+HPLjava/net/Inet6AddressImpl;->tcpEcho(Ljava/net/InetAddress;ILjava/net/InetAddress;I)Z
+PLjava/net/InetAddress$1;->getHostByAddr([B)Ljava/lang/String;
HSPLjava/net/InetAddress$InetAddressHolder;-><init>()V
HSPLjava/net/InetAddress$InetAddressHolder;->getAddress()I
HSPLjava/net/InetAddress$InetAddressHolder;->getHostName()Ljava/lang/String;
@@ -11224,28 +37219,40 @@ HSPLjava/net/InetAddress;->getByAddress(Ljava/lang/String;[B)Ljava/net/InetAddre
HSPLjava/net/InetAddress;->getByAddress(Ljava/lang/String;[BI)Ljava/net/InetAddress;
HSPLjava/net/InetAddress;->getByAddress([B)Ljava/net/InetAddress;
HSPLjava/net/InetAddress;->getByName(Ljava/lang/String;)Ljava/net/InetAddress;
+PLjava/net/InetAddress;->getByNameOnNet(Ljava/lang/String;I)Ljava/net/InetAddress;
+PLjava/net/InetAddress;->getHostFromNameService(Ljava/net/InetAddress;)Ljava/lang/String;
+HSPLjava/net/InetAddress;->getHostName()Ljava/lang/String;
HSPLjava/net/InetAddress;->holder()Ljava/net/InetAddress$InetAddressHolder;
+HPLjava/net/InetAddress;->isReachable(I)Z
+HPLjava/net/InetAddress;->isReachable(Ljava/net/NetworkInterface;II)Z
+HSPLjava/net/InetAddress;->parseNumericAddress(Ljava/lang/String;)Ljava/net/InetAddress;
HSPLjava/net/InetAddress;->toString()Ljava/lang/String;
HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;-><init>(Ljava/lang/String;Ljava/net/InetAddress;I)V
HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;-><init>(Ljava/lang/String;Ljava/net/InetAddress;ILjava/net/InetSocketAddress$1;)V
HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->access$400(Ljava/net/InetSocketAddress$InetSocketAddressHolder;)I
HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->access$500(Ljava/net/InetSocketAddress$InetSocketAddressHolder;)Ljava/net/InetAddress;
+HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->access$600(Ljava/net/InetSocketAddress$InetSocketAddressHolder;)Ljava/lang/String;
HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->access$700(Ljava/net/InetSocketAddress$InetSocketAddressHolder;)Ljava/lang/String;
HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->access$800(Ljava/net/InetSocketAddress$InetSocketAddressHolder;)Z
HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->equals(Ljava/lang/Object;)Z
HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->getAddress()Ljava/net/InetAddress;
+HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->getHostName()Ljava/lang/String;
HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->getHostString()Ljava/lang/String;
HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->getPort()I
HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->hashCode()I
HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->isUnresolved()Z
HSPLjava/net/InetSocketAddress$InetSocketAddressHolder;->toString()Ljava/lang/String;
+HSPLjava/net/InetSocketAddress;-><init>()V
+HSPLjava/net/InetSocketAddress;-><init>(I)V
HSPLjava/net/InetSocketAddress;-><init>(ILjava/lang/String;)V
+HSPLjava/net/InetSocketAddress;-><init>(Ljava/lang/String;I)V
HSPLjava/net/InetSocketAddress;-><init>(Ljava/net/InetAddress;I)V
HSPLjava/net/InetSocketAddress;->checkHost(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/net/InetSocketAddress;->checkPort(I)I
HSPLjava/net/InetSocketAddress;->createUnresolved(Ljava/lang/String;I)Ljava/net/InetSocketAddress;
HSPLjava/net/InetSocketAddress;->equals(Ljava/lang/Object;)Z
HSPLjava/net/InetSocketAddress;->getAddress()Ljava/net/InetAddress;
+HSPLjava/net/InetSocketAddress;->getHostName()Ljava/lang/String;
HSPLjava/net/InetSocketAddress;->getHostString()Ljava/lang/String;
HSPLjava/net/InetSocketAddress;->getPort()I
HSPLjava/net/InetSocketAddress;->hashCode()I
@@ -11253,24 +37260,74 @@ HSPLjava/net/InetSocketAddress;->isUnresolved()Z
HSPLjava/net/InetSocketAddress;->toString()Ljava/lang/String;
HSPLjava/net/InterfaceAddress;-><init>(Ljava/net/InetAddress;Ljava/net/Inet4Address;Ljava/net/InetAddress;)V
HSPLjava/net/InterfaceAddress;->countPrefixLength(Ljava/net/InetAddress;)S
+HPLjava/net/InterfaceAddress;->getAddress()Ljava/net/InetAddress;
HSPLjava/net/JarURLConnection;-><init>(Ljava/net/URL;)V
HSPLjava/net/JarURLConnection;->getEntryName()Ljava/lang/String;
HSPLjava/net/JarURLConnection;->parseSpecs(Ljava/net/URL;)V
+PLjava/net/MalformedURLException;-><init>(Ljava/lang/String;)V
+HSPLjava/net/MulticastSocket;-><init>()V
+HSPLjava/net/MulticastSocket;-><init>(I)V
+HSPLjava/net/MulticastSocket;-><init>(Ljava/net/SocketAddress;)V
+HSPLjava/net/MulticastSocket;->joinGroup(Ljava/net/InetAddress;)V
+HPLjava/net/MulticastSocket;->joinGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V
+HPLjava/net/MulticastSocket;->leaveGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V
+HSPLjava/net/MulticastSocket;->setNetworkInterface(Ljava/net/NetworkInterface;)V
+HPLjava/net/MulticastSocket;->setTimeToLive(I)V
+HSPLjava/net/NetworkInterface$1checkedAddresses;-><init>(Ljava/net/NetworkInterface;)V
+HSPLjava/net/NetworkInterface$1checkedAddresses;->hasMoreElements()Z
+HSPLjava/net/NetworkInterface$1checkedAddresses;->nextElement()Ljava/lang/Object;
+HSPLjava/net/NetworkInterface$1checkedAddresses;->nextElement()Ljava/net/InetAddress;
HSPLjava/net/NetworkInterface;-><init>(Ljava/lang/String;I[Ljava/net/InetAddress;)V
+HSPLjava/net/NetworkInterface;->access$000(Ljava/net/NetworkInterface;)[Ljava/net/InetAddress;
HSPLjava/net/NetworkInterface;->getAll()[Ljava/net/NetworkInterface;
+HPLjava/net/NetworkInterface;->getByName(Ljava/lang/String;)Ljava/net/NetworkInterface;
+HSPLjava/net/NetworkInterface;->getDefault()Ljava/net/NetworkInterface;
+HSPLjava/net/NetworkInterface;->getFlags()I
+HPLjava/net/NetworkInterface;->getHardwareAddress()[B
+HSPLjava/net/NetworkInterface;->getIndex()I
+HSPLjava/net/NetworkInterface;->getInetAddresses()Ljava/util/Enumeration;
+HPLjava/net/NetworkInterface;->getInterfaceAddresses()Ljava/util/List;
+HPLjava/net/NetworkInterface;->getMTU()I
HSPLjava/net/NetworkInterface;->getName()Ljava/lang/String;
+HSPLjava/net/NetworkInterface;->getNetworkInterfaces()Ljava/util/Enumeration;
+HSPLjava/net/NetworkInterface;->isLoopback()Z
+HSPLjava/net/NetworkInterface;->isPointToPoint()Z
+HPLjava/net/NetworkInterface;->isUp()Z
+PLjava/net/NetworkInterface;->isVirtual()Z
+HPLjava/net/NetworkInterface;->supportsMulticast()Z
HSPLjava/net/Parts;-><init>(Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/net/Parts;->getPath()Ljava/lang/String;
HSPLjava/net/Parts;->getQuery()Ljava/lang/String;
HSPLjava/net/Parts;->getRef()Ljava/lang/String;
+HSPLjava/net/PlainDatagramSocketImpl;-><init>()V
+HSPLjava/net/PlainDatagramSocketImpl;->bind0(ILjava/net/InetAddress;)V
+HSPLjava/net/PlainDatagramSocketImpl;->connect0(Ljava/net/InetAddress;I)V
+HSPLjava/net/PlainDatagramSocketImpl;->datagramSocketClose()V
+HSPLjava/net/PlainDatagramSocketImpl;->datagramSocketCreate()V
+HSPLjava/net/PlainDatagramSocketImpl;->doRecv(Ljava/net/DatagramPacket;I)V
+HSPLjava/net/PlainDatagramSocketImpl;->join(Ljava/net/InetAddress;Ljava/net/NetworkInterface;)V
+HPLjava/net/PlainDatagramSocketImpl;->leave(Ljava/net/InetAddress;Ljava/net/NetworkInterface;)V
+HSPLjava/net/PlainDatagramSocketImpl;->makeGroupReq(Ljava/net/InetAddress;Ljava/net/NetworkInterface;)Landroid/system/StructGroupReq;
+HSPLjava/net/PlainDatagramSocketImpl;->receive0(Ljava/net/DatagramPacket;)V
+HSPLjava/net/PlainDatagramSocketImpl;->send(Ljava/net/DatagramPacket;)V
+HPLjava/net/PlainDatagramSocketImpl;->setTimeToLive(I)V
+PLjava/net/PlainDatagramSocketImpl;->socketGetOption(I)Ljava/lang/Object;
+HSPLjava/net/PlainDatagramSocketImpl;->socketSetOption(ILjava/lang/Object;)V
+HSPLjava/net/PlainDatagramSocketImpl;->socketSetOption0(ILjava/lang/Object;)V
HSPLjava/net/PlainSocketImpl;-><init>()V
HSPLjava/net/PlainSocketImpl;->getMarkerFD()Ljava/io/FileDescriptor;
+HSPLjava/net/PlainSocketImpl;->socketAccept(Ljava/net/SocketImpl;)V
+HPLjava/net/PlainSocketImpl;->socketAvailable()I
+HSPLjava/net/PlainSocketImpl;->socketBind(Ljava/net/InetAddress;I)V
HSPLjava/net/PlainSocketImpl;->socketClose0(Z)V
HSPLjava/net/PlainSocketImpl;->socketConnect(Ljava/net/InetAddress;II)V
HSPLjava/net/PlainSocketImpl;->socketCreate(Z)V
HSPLjava/net/PlainSocketImpl;->socketGetOption(I)Ljava/lang/Object;
+HSPLjava/net/PlainSocketImpl;->socketListen(I)V
HSPLjava/net/PlainSocketImpl;->socketSetOption(ILjava/lang/Object;)V
HSPLjava/net/PlainSocketImpl;->socketSetOption0(ILjava/lang/Object;)V
+HSPLjava/net/PlainSocketImpl;->socketShutdown(I)V
+HPLjava/net/ProtocolException;-><init>(Ljava/lang/String;)V
HSPLjava/net/Proxy$Type;->values()[Ljava/net/Proxy$Type;
HSPLjava/net/Proxy;->address()Ljava/net/SocketAddress;
HSPLjava/net/Proxy;->equals(Ljava/lang/Object;)Z
@@ -11278,10 +37335,25 @@ HSPLjava/net/Proxy;->hashCode()I
HSPLjava/net/Proxy;->type()Ljava/net/Proxy$Type;
HSPLjava/net/ProxySelector;->getDefault()Ljava/net/ProxySelector;
HSPLjava/net/ProxySelector;->setDefault(Ljava/net/ProxySelector;)V
+HSPLjava/net/ResponseCache;-><init>()V
HSPLjava/net/ResponseCache;->getDefault()Ljava/net/ResponseCache;
-PLjava/net/Socket$1;-><init>(Ljava/net/Socket;)V
-PLjava/net/Socket$1;->run()Ljava/lang/Boolean;
-PLjava/net/Socket$1;->run()Ljava/lang/Object;
+HSPLjava/net/ResponseCache;->setDefault(Ljava/net/ResponseCache;)V
+HSPLjava/net/ServerSocket;-><init>()V
+HSPLjava/net/ServerSocket;->accept()Ljava/net/Socket;
+HSPLjava/net/ServerSocket;->bind(Ljava/net/SocketAddress;)V
+HSPLjava/net/ServerSocket;->bind(Ljava/net/SocketAddress;I)V
+HSPLjava/net/ServerSocket;->createImpl()V
+HSPLjava/net/ServerSocket;->getImpl()Ljava/net/SocketImpl;
+HSPLjava/net/ServerSocket;->implAccept(Ljava/net/Socket;)V
+HSPLjava/net/ServerSocket;->isBound()Z
+HSPLjava/net/ServerSocket;->isClosed()Z
+HSPLjava/net/ServerSocket;->setBound()V
+HSPLjava/net/ServerSocket;->setCreated()V
+HSPLjava/net/ServerSocket;->setImpl()V
+HSPLjava/net/ServerSocket;->setReuseAddress(Z)V
+HSPLjava/net/Socket$1;-><init>(Ljava/net/Socket;)V
+HSPLjava/net/Socket$1;->run()Ljava/lang/Boolean;
+HSPLjava/net/Socket$1;->run()Ljava/lang/Object;
HSPLjava/net/Socket$2;-><init>(Ljava/net/Socket;)V
HSPLjava/net/Socket$2;->run()Ljava/io/InputStream;
HSPLjava/net/Socket$2;->run()Ljava/lang/Object;
@@ -11293,7 +37365,7 @@ HSPLjava/net/Socket;-><init>(Ljava/net/InetAddress;I)V
HSPLjava/net/Socket;-><init>(Ljava/net/SocketImpl;)V
HSPLjava/net/Socket;-><init>([Ljava/net/InetAddress;ILjava/net/SocketAddress;Z)V
HSPLjava/net/Socket;->checkAddress(Ljava/net/InetAddress;Ljava/lang/String;)V
-PLjava/net/Socket;->checkOldImpl()V
+HSPLjava/net/Socket;->checkOldImpl()V
HSPLjava/net/Socket;->close()V
HSPLjava/net/Socket;->connect(Ljava/net/SocketAddress;)V
HSPLjava/net/Socket;->connect(Ljava/net/SocketAddress;I)V
@@ -11316,25 +37388,39 @@ HSPLjava/net/Socket;->isConnected()Z
HSPLjava/net/Socket;->isInputShutdown()Z
HSPLjava/net/Socket;->isOutputShutdown()Z
HSPLjava/net/Socket;->nonNullAddress(Ljava/net/InetAddress;)[Ljava/net/InetAddress;
+HPLjava/net/Socket;->postAccept()V
HSPLjava/net/Socket;->setBound()V
HSPLjava/net/Socket;->setConnected()V
HSPLjava/net/Socket;->setCreated()V
HSPLjava/net/Socket;->setImpl()V
HSPLjava/net/Socket;->setSoTimeout(I)V
HSPLjava/net/Socket;->setTcpNoDelay(Z)V
+HSPLjava/net/Socket;->shutdownInput()V
+HSPLjava/net/Socket;->shutdownOutput()V
HSPLjava/net/SocketAddress;-><init>()V
HSPLjava/net/SocketException;-><init>(Ljava/lang/String;)V
+HSPLjava/net/SocketException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
HSPLjava/net/SocketImpl;-><init>()V
HSPLjava/net/SocketImpl;->getFileDescriptor()Ljava/io/FileDescriptor;
HSPLjava/net/SocketImpl;->getInetAddress()Ljava/net/InetAddress;
HSPLjava/net/SocketImpl;->getLocalPort()I
HSPLjava/net/SocketImpl;->getPort()I
HSPLjava/net/SocketImpl;->getSocket()Ljava/net/Socket;
+HSPLjava/net/SocketImpl;->setServerSocket(Ljava/net/ServerSocket;)V
HSPLjava/net/SocketImpl;->setSocket(Ljava/net/Socket;)V
HSPLjava/net/SocketInputStream;-><init>(Ljava/net/AbstractPlainSocketImpl;)V
+HPLjava/net/SocketInputStream;->available()I
+HPLjava/net/SocketInputStream;->close()V
HSPLjava/net/SocketInputStream;->finalize()V
+HSPLjava/net/SocketInputStream;->read([BII)I
+HSPLjava/net/SocketInputStream;->read([BIII)I
+HSPLjava/net/SocketInputStream;->socketRead(Ljava/io/FileDescriptor;[BIII)I
HSPLjava/net/SocketOutputStream;-><init>(Ljava/net/AbstractPlainSocketImpl;)V
+HPLjava/net/SocketOutputStream;->close()V
HSPLjava/net/SocketOutputStream;->finalize()V
+HSPLjava/net/SocketOutputStream;->socketWrite([BII)V
+HSPLjava/net/SocketOutputStream;->write([BII)V
+HPLjava/net/SocketTimeoutException;-><init>()V
HSPLjava/net/SocketTimeoutException;-><init>(Ljava/lang/String;)V
HSPLjava/net/SocksSocketImpl;-><init>()V
HSPLjava/net/SocksSocketImpl;->close()V
@@ -11348,6 +37434,7 @@ HSPLjava/net/URI$Parser;->at(IIC)Z
HSPLjava/net/URI$Parser;->charAt(I)C
HSPLjava/net/URI$Parser;->checkChar(IJJLjava/lang/String;)V
HSPLjava/net/URI$Parser;->checkChars(IIJJLjava/lang/String;)V
+HPLjava/net/URI$Parser;->fail(Ljava/lang/String;I)V
HSPLjava/net/URI$Parser;->parse(Z)V
HSPLjava/net/URI$Parser;->parseAuthority(II)I
HSPLjava/net/URI$Parser;->parseHierarchical(II)I
@@ -11357,10 +37444,12 @@ HSPLjava/net/URI$Parser;->parseServer(II)I
HSPLjava/net/URI$Parser;->scan(IIC)I
HSPLjava/net/URI$Parser;->scan(IIJJ)I
HSPLjava/net/URI$Parser;->scan(IILjava/lang/String;Ljava/lang/String;)I
+HSPLjava/net/URI$Parser;->scanByte(II)I
HSPLjava/net/URI$Parser;->scanEscape(IIC)I
HSPLjava/net/URI$Parser;->scanIPv4Address(IIZ)I
HSPLjava/net/URI$Parser;->substring(II)Ljava/lang/String;
HSPLjava/net/URI;-><init>(Ljava/lang/String;)V
+HSPLjava/net/URI;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/net/URI;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/net/URI;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/net/URI;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
@@ -11377,8 +37466,11 @@ HSPLjava/net/URI;->access$200()J
HSPLjava/net/URI;->access$2000()J
HSPLjava/net/URI;->access$2100()J
HSPLjava/net/URI;->access$2202(Ljava/net/URI;Ljava/lang/String;)Ljava/lang/String;
+HPLjava/net/URI;->access$2302(Ljava/net/URI;Ljava/lang/String;)Ljava/lang/String;
HSPLjava/net/URI;->access$2402(Ljava/net/URI;Ljava/lang/String;)Ljava/lang/String;
HSPLjava/net/URI;->access$2502(Ljava/net/URI;I)I
+HPLjava/net/URI;->access$2600()J
+HPLjava/net/URI;->access$2700()J
HSPLjava/net/URI;->access$2800()J
HSPLjava/net/URI;->access$2900()J
HSPLjava/net/URI;->access$300(CJJ)Z
@@ -11399,17 +37491,30 @@ HSPLjava/net/URI;->appendAuthority(Ljava/lang/StringBuffer;Ljava/lang/String;Lja
HSPLjava/net/URI;->appendFragment(Ljava/lang/StringBuffer;Ljava/lang/String;)V
HSPLjava/net/URI;->appendSchemeSpecificPart(Ljava/lang/StringBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
HSPLjava/net/URI;->checkPath(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/URI;->compare(Ljava/lang/String;Ljava/lang/String;)I
+HSPLjava/net/URI;->compareIgnoringCase(Ljava/lang/String;Ljava/lang/String;)I
+HSPLjava/net/URI;->compareTo(Ljava/lang/Object;)I
+HSPLjava/net/URI;->compareTo(Ljava/net/URI;)I
HSPLjava/net/URI;->create(Ljava/lang/String;)Ljava/net/URI;
HSPLjava/net/URI;->decode(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/net/URI;->defineSchemeSpecificPart()V
HSPLjava/net/URI;->defineString()V
+HSPLjava/net/URI;->encode(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/net/URI;->equal(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLjava/net/URI;->equalIgnoringCase(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLjava/net/URI;->equals(Ljava/lang/Object;)Z
HSPLjava/net/URI;->getAuthority()Ljava/lang/String;
HSPLjava/net/URI;->getFragment()Ljava/lang/String;
HSPLjava/net/URI;->getHost()Ljava/lang/String;
HSPLjava/net/URI;->getPath()Ljava/lang/String;
HSPLjava/net/URI;->getPort()I
HSPLjava/net/URI;->getQuery()Ljava/lang/String;
-PLjava/net/URI;->getRawQuery()Ljava/lang/String;
+HSPLjava/net/URI;->getRawFragment()Ljava/lang/String;
+HSPLjava/net/URI;->getRawPath()Ljava/lang/String;
+HSPLjava/net/URI;->getRawQuery()Ljava/lang/String;
+HSPLjava/net/URI;->getRawSchemeSpecificPart()Ljava/lang/String;
HSPLjava/net/URI;->getScheme()Ljava/lang/String;
+HSPLjava/net/URI;->getSchemeSpecificPart()Ljava/lang/String;
HSPLjava/net/URI;->getUserInfo()Ljava/lang/String;
HSPLjava/net/URI;->hash(ILjava/lang/String;)I
HSPLjava/net/URI;->hashCode()I
@@ -11418,15 +37523,23 @@ HSPLjava/net/URI;->isAbsolute()Z
HSPLjava/net/URI;->isOpaque()Z
HSPLjava/net/URI;->match(CJJ)Z
HSPLjava/net/URI;->quote(Ljava/lang/String;JJ)Ljava/lang/String;
+HSPLjava/net/URI;->toASCIIString()Ljava/lang/String;
HSPLjava/net/URI;->toLower(C)I
HSPLjava/net/URI;->toString()Ljava/lang/String;
HSPLjava/net/URI;->toString(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLjava/net/URI;->toURL()Ljava/net/URL;
+HPLjava/net/URISyntaxException;-><init>(Ljava/lang/String;Ljava/lang/String;I)V
+HPLjava/net/URISyntaxException;->getMessage()Ljava/lang/String;
+HPLjava/net/URISyntaxException;->getReason()Ljava/lang/String;
HSPLjava/net/URL;-><init>(Ljava/lang/String;)V
+HSPLjava/net/URL;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
HSPLjava/net/URL;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/net/URLStreamHandler;)V
+HSPLjava/net/URL;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/net/URL;-><init>(Ljava/net/URL;Ljava/lang/String;)V
HSPLjava/net/URL;-><init>(Ljava/net/URL;Ljava/lang/String;Ljava/net/URLStreamHandler;)V
HSPLjava/net/URL;->createBuiltinHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler;
HSPLjava/net/URL;->getAuthority()Ljava/lang/String;
+HSPLjava/net/URL;->getDefaultPort()I
HSPLjava/net/URL;->getFile()Ljava/lang/String;
HSPLjava/net/URL;->getHost()Ljava/lang/String;
HSPLjava/net/URL;->getPath()Ljava/lang/String;
@@ -11436,10 +37549,12 @@ HSPLjava/net/URL;->getQuery()Ljava/lang/String;
HSPLjava/net/URL;->getRef()Ljava/lang/String;
HSPLjava/net/URL;->getURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler;
HSPLjava/net/URL;->getUserInfo()Ljava/lang/String;
+HSPLjava/net/URL;->hashCode()I
HSPLjava/net/URL;->isValidProtocol(Ljava/lang/String;)Z
HSPLjava/net/URL;->openConnection()Ljava/net/URLConnection;
HSPLjava/net/URL;->openStream()Ljava/io/InputStream;
HSPLjava/net/URL;->set(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/net/URL;->setURLStreamHandlerFactory(Ljava/net/URLStreamHandlerFactory;)V
HSPLjava/net/URL;->toExternalForm()Ljava/lang/String;
HSPLjava/net/URL;->toString()Ljava/lang/String;
HSPLjava/net/URLConnection;-><init>(Ljava/net/URL;)V
@@ -11447,23 +37562,36 @@ HSPLjava/net/URLConnection;->getContentEncoding()Ljava/lang/String;
HSPLjava/net/URLConnection;->getContentLength()I
HSPLjava/net/URLConnection;->getContentLengthLong()J
HSPLjava/net/URLConnection;->getContentType()Ljava/lang/String;
+HSPLjava/net/URLConnection;->getHeaderFieldInt(Ljava/lang/String;I)I
HSPLjava/net/URLConnection;->getHeaderFieldLong(Ljava/lang/String;J)J
+HSPLjava/net/URLConnection;->getLastModified()J
+HSPLjava/net/URLConnection;->getReadTimeout()I
HSPLjava/net/URLConnection;->getURL()Ljava/net/URL;
HSPLjava/net/URLConnection;->getUseCaches()Z
+HSPLjava/net/URLConnection;->setAllowUserInteraction(Z)V
+HSPLjava/net/URLConnection;->setDefaultUseCaches(Z)V
HSPLjava/net/URLConnection;->setDoInput(Z)V
HSPLjava/net/URLConnection;->setDoOutput(Z)V
+HSPLjava/net/URLConnection;->setIfModifiedSince(J)V
+HSPLjava/net/URLConnection;->setReadTimeout(I)V
HSPLjava/net/URLConnection;->setUseCaches(Z)V
HSPLjava/net/URLDecoder;->decode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/net/URLDecoder;->isValidHexChar(C)Z
HSPLjava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLjava/net/URLStreamHandler;-><init>()V
+HSPLjava/net/URLStreamHandler;->hashCode(Ljava/net/URL;)I
HSPLjava/net/URLStreamHandler;->parseURL(Ljava/net/URL;Ljava/lang/String;II)V
HSPLjava/net/URLStreamHandler;->setURL(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/net/URLStreamHandler;->toExternalForm(Ljava/net/URL;)Ljava/lang/String;
-PLjava/net/UnknownHostException;-><init>(Ljava/lang/String;)V
+HSPLjava/net/UnknownHostException;-><init>(Ljava/lang/String;)V
HSPLjava/nio/Bits;->byteOrder()Ljava/nio/ByteOrder;
HSPLjava/nio/Bits;->char0(C)B
HSPLjava/nio/Bits;->char1(C)B
+HSPLjava/nio/Bits;->getDouble(Ljava/nio/ByteBuffer;IZ)D
+HSPLjava/nio/Bits;->getDoubleB(Ljava/nio/ByteBuffer;I)D
+HSPLjava/nio/Bits;->getDoubleL(Ljava/nio/ByteBuffer;I)D
HSPLjava/nio/Bits;->getFloat(Ljava/nio/ByteBuffer;IZ)F
+PLjava/nio/Bits;->getFloatB(Ljava/nio/ByteBuffer;I)F
HSPLjava/nio/Bits;->getFloatL(Ljava/nio/ByteBuffer;I)F
HSPLjava/nio/Bits;->getInt(Ljava/nio/ByteBuffer;IZ)I
HSPLjava/nio/Bits;->getIntB(Ljava/nio/ByteBuffer;I)I
@@ -11472,7 +37600,7 @@ HSPLjava/nio/Bits;->getLong(Ljava/nio/ByteBuffer;IZ)J
HSPLjava/nio/Bits;->getLongB(Ljava/nio/ByteBuffer;I)J
HSPLjava/nio/Bits;->getLongL(Ljava/nio/ByteBuffer;I)J
HSPLjava/nio/Bits;->getShort(Ljava/nio/ByteBuffer;IZ)S
-PLjava/nio/Bits;->getShortB(Ljava/nio/ByteBuffer;I)S
+HSPLjava/nio/Bits;->getShortB(Ljava/nio/ByteBuffer;I)S
HSPLjava/nio/Bits;->getShortL(Ljava/nio/ByteBuffer;I)S
HSPLjava/nio/Bits;->int0(I)B
HSPLjava/nio/Bits;->int1(I)B
@@ -11489,8 +37617,16 @@ HSPLjava/nio/Bits;->long7(J)B
HSPLjava/nio/Bits;->makeInt(BBBB)I
HSPLjava/nio/Bits;->makeLong(BBBBBBBB)J
HSPLjava/nio/Bits;->makeShort(BB)S
+HSPLjava/nio/Bits;->pageCount(J)I
+HSPLjava/nio/Bits;->pageSize()I
HSPLjava/nio/Bits;->putChar(Ljava/nio/ByteBuffer;ICZ)V
HSPLjava/nio/Bits;->putCharB(Ljava/nio/ByteBuffer;IC)V
+HSPLjava/nio/Bits;->putCharL(Ljava/nio/ByteBuffer;IC)V
+PLjava/nio/Bits;->putDouble(Ljava/nio/ByteBuffer;IDZ)V
+PLjava/nio/Bits;->putDoubleL(Ljava/nio/ByteBuffer;ID)V
+HPLjava/nio/Bits;->putFloat(Ljava/nio/ByteBuffer;IFZ)V
+PLjava/nio/Bits;->putFloatB(Ljava/nio/ByteBuffer;IF)V
+HPLjava/nio/Bits;->putFloatL(Ljava/nio/ByteBuffer;IF)V
HSPLjava/nio/Bits;->putInt(Ljava/nio/ByteBuffer;IIZ)V
HSPLjava/nio/Bits;->putIntB(Ljava/nio/ByteBuffer;II)V
HSPLjava/nio/Bits;->putIntL(Ljava/nio/ByteBuffer;II)V
@@ -11499,8 +37635,10 @@ HSPLjava/nio/Bits;->putLongB(Ljava/nio/ByteBuffer;IJ)V
HSPLjava/nio/Bits;->putLongL(Ljava/nio/ByteBuffer;IJ)V
HSPLjava/nio/Bits;->putShort(Ljava/nio/ByteBuffer;ISZ)V
HSPLjava/nio/Bits;->putShortB(Ljava/nio/ByteBuffer;IS)V
+HSPLjava/nio/Bits;->putShortL(Ljava/nio/ByteBuffer;IS)V
HSPLjava/nio/Bits;->short0(S)B
HSPLjava/nio/Bits;->short1(S)B
+HSPLjava/nio/Bits;->unsafe()Lsun/misc/Unsafe;
HSPLjava/nio/Buffer;-><init>(IIIII)V
HSPLjava/nio/Buffer;->capacity()I
HSPLjava/nio/Buffer;->checkBounds(III)V
@@ -11527,11 +37665,15 @@ HSPLjava/nio/ByteBuffer;-><init>(IIII)V
HSPLjava/nio/ByteBuffer;-><init>(IIII[BI)V
HSPLjava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
HSPLjava/nio/ByteBuffer;->allocateDirect(I)Ljava/nio/ByteBuffer;
+HPLjava/nio/ByteBuffer;->array()Ljava/lang/Object;
HSPLjava/nio/ByteBuffer;->array()[B
HSPLjava/nio/ByteBuffer;->arrayOffset()I
HSPLjava/nio/ByteBuffer;->clear()Ljava/nio/Buffer;
HSPLjava/nio/ByteBuffer;->compare(BB)I
+HSPLjava/nio/ByteBuffer;->compareTo(Ljava/lang/Object;)I
HSPLjava/nio/ByteBuffer;->compareTo(Ljava/nio/ByteBuffer;)I
+HSPLjava/nio/ByteBuffer;->equals(BB)Z
+HSPLjava/nio/ByteBuffer;->equals(Ljava/lang/Object;)Z
HSPLjava/nio/ByteBuffer;->flip()Ljava/nio/Buffer;
HSPLjava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;
HSPLjava/nio/ByteBuffer;->hasArray()Z
@@ -11545,6 +37687,7 @@ HSPLjava/nio/ByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
HSPLjava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;
HSPLjava/nio/ByteBuffer;->reset()Ljava/nio/Buffer;
HSPLjava/nio/ByteBuffer;->rewind()Ljava/nio/Buffer;
+HPLjava/nio/ByteBuffer;->toString()Ljava/lang/String;
HSPLjava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;
HSPLjava/nio/ByteBuffer;->wrap([BII)Ljava/nio/ByteBuffer;
HSPLjava/nio/ByteBufferAsCharBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
@@ -11558,12 +37701,27 @@ HSPLjava/nio/ByteBufferAsCharBuffer;->subSequence(II)Ljava/nio/CharBuffer;
HSPLjava/nio/ByteBufferAsCharBuffer;->toString(II)Ljava/lang/String;
HSPLjava/nio/ByteBufferAsFloatBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
HSPLjava/nio/ByteBufferAsFloatBuffer;->ix(I)I
+HSPLjava/nio/ByteBufferAsFloatBuffer;->put(F)Ljava/nio/FloatBuffer;
+HSPLjava/nio/ByteBufferAsFloatBuffer;->put(IF)Ljava/nio/FloatBuffer;
+HSPLjava/nio/ByteBufferAsFloatBuffer;->put([FII)Ljava/nio/FloatBuffer;
HSPLjava/nio/ByteBufferAsIntBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
+PLjava/nio/ByteBufferAsIntBuffer;->get()I
+HPLjava/nio/ByteBufferAsIntBuffer;->get(I)I
HSPLjava/nio/ByteBufferAsIntBuffer;->get([III)Ljava/nio/IntBuffer;
HSPLjava/nio/ByteBufferAsIntBuffer;->ix(I)I
+PLjava/nio/ByteBufferAsIntBuffer;->put(I)Ljava/nio/IntBuffer;
+HPLjava/nio/ByteBufferAsIntBuffer;->put(II)Ljava/nio/IntBuffer;
+PLjava/nio/ByteBufferAsIntBuffer;->put([III)Ljava/nio/IntBuffer;
+HSPLjava/nio/ByteBufferAsLongBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
+HSPLjava/nio/ByteBufferAsLongBuffer;->get(I)J
+PLjava/nio/ByteBufferAsLongBuffer;->get([JII)Ljava/nio/LongBuffer;
+HSPLjava/nio/ByteBufferAsLongBuffer;->ix(I)I
+HSPLjava/nio/ByteBufferAsLongBuffer;->put(IJ)Ljava/nio/LongBuffer;
+PLjava/nio/ByteBufferAsLongBuffer;->put([JII)Ljava/nio/LongBuffer;
HSPLjava/nio/ByteBufferAsShortBuffer;-><init>(Ljava/nio/ByteBuffer;IIIIILjava/nio/ByteOrder;)V
HSPLjava/nio/ByteBufferAsShortBuffer;->get([SII)Ljava/nio/ShortBuffer;
HSPLjava/nio/ByteBufferAsShortBuffer;->ix(I)I
+PLjava/nio/ByteBufferAsShortBuffer;->put([SII)Ljava/nio/ShortBuffer;
HSPLjava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder;
HSPLjava/nio/CharBuffer;-><init>(IIII)V
HSPLjava/nio/CharBuffer;-><init>(IIII[CI)V
@@ -11571,6 +37729,7 @@ HSPLjava/nio/CharBuffer;->allocate(I)Ljava/nio/CharBuffer;
HSPLjava/nio/CharBuffer;->array()[C
HSPLjava/nio/CharBuffer;->arrayOffset()I
HSPLjava/nio/CharBuffer;->charAt(I)C
+HSPLjava/nio/CharBuffer;->clear()Ljava/nio/Buffer;
HSPLjava/nio/CharBuffer;->flip()Ljava/nio/Buffer;
HSPLjava/nio/CharBuffer;->get([C)Ljava/nio/CharBuffer;
HSPLjava/nio/CharBuffer;->get([CII)Ljava/nio/CharBuffer;
@@ -11585,6 +37744,7 @@ HSPLjava/nio/CharBuffer;->wrap([C)Ljava/nio/CharBuffer;
HSPLjava/nio/CharBuffer;->wrap([CII)Ljava/nio/CharBuffer;
HSPLjava/nio/DirectByteBuffer$MemoryRef;-><init>(I)V
HSPLjava/nio/DirectByteBuffer$MemoryRef;-><init>(JLjava/lang/Object;)V
+PLjava/nio/DirectByteBuffer$MemoryRef;->free()V
HSPLjava/nio/DirectByteBuffer;-><init>(IJLjava/io/FileDescriptor;Ljava/lang/Runnable;Z)V
HSPLjava/nio/DirectByteBuffer;-><init>(ILjava/nio/DirectByteBuffer$MemoryRef;)V
HSPLjava/nio/DirectByteBuffer;-><init>(JI)V
@@ -11604,11 +37764,18 @@ HSPLjava/nio/DirectByteBuffer;->get([BII)Ljava/nio/ByteBuffer;
HSPLjava/nio/DirectByteBuffer;->getChar()C
HSPLjava/nio/DirectByteBuffer;->getChar(I)C
HSPLjava/nio/DirectByteBuffer;->getCharUnchecked(I)C
+PLjava/nio/DirectByteBuffer;->getDouble(I)D
+PLjava/nio/DirectByteBuffer;->getDouble(J)D
+HSPLjava/nio/DirectByteBuffer;->getFloat()F
+HPLjava/nio/DirectByteBuffer;->getFloat(I)F
+HSPLjava/nio/DirectByteBuffer;->getFloat(J)F
HSPLjava/nio/DirectByteBuffer;->getInt()I
HSPLjava/nio/DirectByteBuffer;->getInt(I)I
HSPLjava/nio/DirectByteBuffer;->getInt(J)I
+HSPLjava/nio/DirectByteBuffer;->getLong()J
HSPLjava/nio/DirectByteBuffer;->getLong(I)J
HSPLjava/nio/DirectByteBuffer;->getLong(J)J
+HSPLjava/nio/DirectByteBuffer;->getShort()S
HSPLjava/nio/DirectByteBuffer;->getShort(I)S
HSPLjava/nio/DirectByteBuffer;->getShort(J)S
HSPLjava/nio/DirectByteBuffer;->getUnchecked(I[CII)V
@@ -11617,14 +37784,31 @@ HSPLjava/nio/DirectByteBuffer;->getUnchecked(I[SII)V
HSPLjava/nio/DirectByteBuffer;->isDirect()Z
HSPLjava/nio/DirectByteBuffer;->isReadOnly()Z
HSPLjava/nio/DirectByteBuffer;->ix(I)J
+HSPLjava/nio/DirectByteBuffer;->put(B)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->put(IB)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->put(JB)Ljava/nio/ByteBuffer;
HSPLjava/nio/DirectByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
HSPLjava/nio/DirectByteBuffer;->put([BII)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putDouble(ID)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putDouble(JD)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putFloat(JF)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putFloatUnchecked(IF)V
+HSPLjava/nio/DirectByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putInt(II)Ljava/nio/ByteBuffer;
HSPLjava/nio/DirectByteBuffer;->putInt(JI)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putLong(IJ)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putLong(J)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putLong(JJ)Ljava/nio/ByteBuffer;
+HSPLjava/nio/DirectByteBuffer;->putUnchecked(I[FII)V
+HSPLjava/nio/DirectByteBuffer;->setAccessible(Z)V
HSPLjava/nio/DirectByteBuffer;->slice()Ljava/nio/ByteBuffer;
HSPLjava/nio/FloatBuffer;-><init>(IIII)V
HSPLjava/nio/FloatBuffer;-><init>(IIII[FI)V
+HSPLjava/nio/FloatBuffer;->clear()Ljava/nio/Buffer;
+HPLjava/nio/FloatBuffer;->flip()Ljava/nio/Buffer;
HSPLjava/nio/FloatBuffer;->limit(I)Ljava/nio/Buffer;
HSPLjava/nio/FloatBuffer;->position(I)Ljava/nio/Buffer;
+HSPLjava/nio/FloatBuffer;->put([F)Ljava/nio/FloatBuffer;
HSPLjava/nio/HeapByteBuffer;-><init>(II)V
HSPLjava/nio/HeapByteBuffer;-><init>(IIZ)V
HSPLjava/nio/HeapByteBuffer;-><init>([BII)V
@@ -11632,82 +37816,202 @@ HSPLjava/nio/HeapByteBuffer;-><init>([BIIIIIZ)V
HSPLjava/nio/HeapByteBuffer;-><init>([BIIZ)V
HSPLjava/nio/HeapByteBuffer;->_get(I)B
HSPLjava/nio/HeapByteBuffer;->_put(IB)V
+HSPLjava/nio/HeapByteBuffer;->asCharBuffer()Ljava/nio/CharBuffer;
+HPLjava/nio/HeapByteBuffer;->asIntBuffer()Ljava/nio/IntBuffer;
+HSPLjava/nio/HeapByteBuffer;->asLongBuffer()Ljava/nio/LongBuffer;
HSPLjava/nio/HeapByteBuffer;->asReadOnlyBuffer()Ljava/nio/ByteBuffer;
+PLjava/nio/HeapByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;
HSPLjava/nio/HeapByteBuffer;->compact()Ljava/nio/ByteBuffer;
HSPLjava/nio/HeapByteBuffer;->duplicate()Ljava/nio/ByteBuffer;
HSPLjava/nio/HeapByteBuffer;->get()B
HSPLjava/nio/HeapByteBuffer;->get(I)B
HSPLjava/nio/HeapByteBuffer;->get([BII)Ljava/nio/ByteBuffer;
+HSPLjava/nio/HeapByteBuffer;->getDouble()D
+HSPLjava/nio/HeapByteBuffer;->getFloat()F
HSPLjava/nio/HeapByteBuffer;->getFloat(I)F
HSPLjava/nio/HeapByteBuffer;->getInt()I
HSPLjava/nio/HeapByteBuffer;->getInt(I)I
+HPLjava/nio/HeapByteBuffer;->getIntUnchecked(I)I
HSPLjava/nio/HeapByteBuffer;->getLong()J
HSPLjava/nio/HeapByteBuffer;->getLong(I)J
+HSPLjava/nio/HeapByteBuffer;->getLongUnchecked(I)J
HSPLjava/nio/HeapByteBuffer;->getShort()S
HSPLjava/nio/HeapByteBuffer;->getShort(I)S
+HSPLjava/nio/HeapByteBuffer;->getUnchecked(I[CII)V
+PLjava/nio/HeapByteBuffer;->getUnchecked(I[III)V
+PLjava/nio/HeapByteBuffer;->getUnchecked(I[JII)V
+PLjava/nio/HeapByteBuffer;->getUnchecked(I[SII)V
HSPLjava/nio/HeapByteBuffer;->isDirect()Z
HSPLjava/nio/HeapByteBuffer;->isReadOnly()Z
HSPLjava/nio/HeapByteBuffer;->ix(I)I
HSPLjava/nio/HeapByteBuffer;->put(B)Ljava/nio/ByteBuffer;
+HSPLjava/nio/HeapByteBuffer;->put(IB)Ljava/nio/ByteBuffer;
HSPLjava/nio/HeapByteBuffer;->put([BII)Ljava/nio/ByteBuffer;
HSPLjava/nio/HeapByteBuffer;->putChar(C)Ljava/nio/ByteBuffer;
+PLjava/nio/HeapByteBuffer;->putDouble(ID)Ljava/nio/ByteBuffer;
+PLjava/nio/HeapByteBuffer;->putFloat(F)Ljava/nio/ByteBuffer;
+HPLjava/nio/HeapByteBuffer;->putFloat(IF)Ljava/nio/ByteBuffer;
HSPLjava/nio/HeapByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
+HSPLjava/nio/HeapByteBuffer;->putInt(II)Ljava/nio/ByteBuffer;
+HPLjava/nio/HeapByteBuffer;->putIntUnchecked(II)V
HSPLjava/nio/HeapByteBuffer;->putLong(IJ)Ljava/nio/ByteBuffer;
HSPLjava/nio/HeapByteBuffer;->putLong(J)Ljava/nio/ByteBuffer;
+HSPLjava/nio/HeapByteBuffer;->putLongUnchecked(IJ)V
+HSPLjava/nio/HeapByteBuffer;->putShort(IS)Ljava/nio/ByteBuffer;
HSPLjava/nio/HeapByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;
+PLjava/nio/HeapByteBuffer;->putUnchecked(I[III)V
+HPLjava/nio/HeapByteBuffer;->putUnchecked(I[JII)V
+HPLjava/nio/HeapByteBuffer;->putUnchecked(I[SII)V
HSPLjava/nio/HeapByteBuffer;->slice()Ljava/nio/ByteBuffer;
HSPLjava/nio/HeapCharBuffer;-><init>(II)V
HSPLjava/nio/HeapCharBuffer;-><init>(IIZ)V
HSPLjava/nio/HeapCharBuffer;-><init>([CII)V
HSPLjava/nio/HeapCharBuffer;-><init>([CIIIIIZ)V
HSPLjava/nio/HeapCharBuffer;-><init>([CIIZ)V
+HSPLjava/nio/HeapCharBuffer;->get()C
HSPLjava/nio/HeapCharBuffer;->get(I)C
HSPLjava/nio/HeapCharBuffer;->ix(I)I
HSPLjava/nio/HeapCharBuffer;->put(Ljava/nio/CharBuffer;)Ljava/nio/CharBuffer;
HSPLjava/nio/HeapCharBuffer;->put([CII)Ljava/nio/CharBuffer;
HSPLjava/nio/HeapCharBuffer;->slice()Ljava/nio/CharBuffer;
HSPLjava/nio/HeapCharBuffer;->toString(II)Ljava/lang/String;
+HSPLjava/nio/HeapIntBuffer;-><init>(II)V
+HSPLjava/nio/HeapIntBuffer;-><init>(IIZ)V
+HSPLjava/nio/HeapIntBuffer;->get()I
+HSPLjava/nio/HeapIntBuffer;->ix(I)I
HSPLjava/nio/IntBuffer;-><init>(IIII)V
HSPLjava/nio/IntBuffer;-><init>(IIII[II)V
+HSPLjava/nio/IntBuffer;->allocate(I)Ljava/nio/IntBuffer;
+HSPLjava/nio/IntBuffer;->array()Ljava/lang/Object;
+HSPLjava/nio/IntBuffer;->array()[I
+HSPLjava/nio/IntBuffer;->arrayOffset()I
+HSPLjava/nio/IntBuffer;->clear()Ljava/nio/Buffer;
HSPLjava/nio/IntBuffer;->get([I)Ljava/nio/IntBuffer;
+HSPLjava/nio/IntBuffer;->hasArray()Z
HSPLjava/nio/IntBuffer;->limit(I)Ljava/nio/Buffer;
HSPLjava/nio/IntBuffer;->position(I)Ljava/nio/Buffer;
+PLjava/nio/IntBuffer;->put([I)Ljava/nio/IntBuffer;
+HSPLjava/nio/LongBuffer;-><init>(IIII)V
+HSPLjava/nio/LongBuffer;-><init>(IIII[JI)V
+HSPLjava/nio/LongBuffer;->allocate(I)Ljava/nio/LongBuffer;
+HSPLjava/nio/LongBuffer;->equals(JJ)Z
+HSPLjava/nio/LongBuffer;->equals(Ljava/lang/Object;)Z
+PLjava/nio/LongBuffer;->get([J)Ljava/nio/LongBuffer;
+HSPLjava/nio/LongBuffer;->limit(I)Ljava/nio/Buffer;
+HSPLjava/nio/LongBuffer;->position(I)Ljava/nio/Buffer;
+PLjava/nio/LongBuffer;->put([J)Ljava/nio/LongBuffer;
+HSPLjava/nio/LongBuffer;->rewind()Ljava/nio/Buffer;
HSPLjava/nio/MappedByteBuffer;-><init>(IIII)V
HSPLjava/nio/MappedByteBuffer;-><init>(IIIILjava/io/FileDescriptor;)V
HSPLjava/nio/MappedByteBuffer;-><init>(IIII[BI)V
+HSPLjava/nio/MappedByteBuffer;->checkMapped()V
+HSPLjava/nio/MappedByteBuffer;->load()Ljava/nio/MappedByteBuffer;
+HSPLjava/nio/MappedByteBuffer;->mappingAddress(J)J
+HSPLjava/nio/MappedByteBuffer;->mappingLength(J)J
+HSPLjava/nio/MappedByteBuffer;->mappingOffset()J
+HSPLjava/nio/NIOAccess;->getBaseArray(Ljava/nio/Buffer;)Ljava/lang/Object;
+HSPLjava/nio/NIOAccess;->getBaseArrayOffset(Ljava/nio/Buffer;)I
+PLjava/nio/NioUtils;->freeDirectBuffer(Ljava/nio/ByteBuffer;)V
+HPLjava/nio/NioUtils;->unsafeArray(Ljava/nio/ByteBuffer;)[B
+HPLjava/nio/NioUtils;->unsafeArrayOffset(Ljava/nio/ByteBuffer;)I
HSPLjava/nio/ShortBuffer;-><init>(IIII)V
HSPLjava/nio/ShortBuffer;-><init>(IIII[SI)V
HSPLjava/nio/ShortBuffer;->get([S)Ljava/nio/ShortBuffer;
HSPLjava/nio/ShortBuffer;->limit(I)Ljava/nio/Buffer;
HSPLjava/nio/ShortBuffer;->position(I)Ljava/nio/Buffer;
+PLjava/nio/ShortBuffer;->put([S)Ljava/nio/ShortBuffer;
HSPLjava/nio/StringCharBuffer;-><init>(Ljava/lang/CharSequence;II)V
HSPLjava/nio/StringCharBuffer;->get()C
HSPLjava/nio/channels/Channels$1;-><init>(Ljava/nio/channels/WritableByteChannel;)V
-HSPLjava/nio/channels/Channels$1;->write([BII)V
-HSPLjava/nio/channels/Channels;->access$000(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
+HPLjava/nio/channels/Channels$1;->close()V
+HPLjava/nio/channels/Channels$1;->write([BII)V
+HSPLjava/nio/channels/Channels$WritableByteChannelImpl;-><init>(Ljava/io/OutputStream;)V
+HSPLjava/nio/channels/Channels$WritableByteChannelImpl;->write(Ljava/nio/ByteBuffer;)I
+HPLjava/nio/channels/Channels;->access$000(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
HSPLjava/nio/channels/Channels;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V
+HPLjava/nio/channels/Channels;->newChannel(Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;
+HSPLjava/nio/channels/Channels;->newChannel(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
HSPLjava/nio/channels/Channels;->newInputStream(Ljava/nio/channels/ReadableByteChannel;)Ljava/io/InputStream;
HSPLjava/nio/channels/Channels;->newOutputStream(Ljava/nio/channels/WritableByteChannel;)Ljava/io/OutputStream;
-HSPLjava/nio/channels/Channels;->writeFully(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
-HSPLjava/nio/channels/Channels;->writeFullyImpl(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
+HPLjava/nio/channels/Channels;->writeFully(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
+HPLjava/nio/channels/Channels;->writeFullyImpl(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
+HPLjava/nio/channels/ClosedChannelException;-><init>()V
HSPLjava/nio/channels/FileChannel;-><init>()V
HSPLjava/nio/channels/FileChannel;->lock()Ljava/nio/channels/FileLock;
+HSPLjava/nio/channels/FileChannel;->open(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/FileChannel;
+HSPLjava/nio/channels/FileChannel;->open(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
+HSPLjava/nio/channels/FileChannel;->tryLock()Ljava/nio/channels/FileLock;
HSPLjava/nio/channels/FileLock;-><init>(Ljava/nio/channels/FileChannel;JJZ)V
HSPLjava/nio/channels/FileLock;->acquiredBy()Ljava/nio/channels/Channel;
HSPLjava/nio/channels/FileLock;->position()J
HSPLjava/nio/channels/FileLock;->size()J
+HSPLjava/nio/channels/SelectableChannel;-><init>()V
+HSPLjava/nio/channels/SelectableChannel;->register(Ljava/nio/channels/Selector;I)Ljava/nio/channels/SelectionKey;
+HSPLjava/nio/channels/SelectionKey;-><init>()V
+HSPLjava/nio/channels/SelectionKey;->attach(Ljava/lang/Object;)Ljava/lang/Object;
+HPLjava/nio/channels/SelectionKey;->attachment()Ljava/lang/Object;
+HPLjava/nio/channels/SelectionKey;->isAcceptable()Z
+HPLjava/nio/channels/SelectionKey;->isConnectable()Z
+HPLjava/nio/channels/SelectionKey;->isReadable()Z
+HPLjava/nio/channels/SelectionKey;->isWritable()Z
+HSPLjava/nio/channels/Selector;-><init>()V
+HSPLjava/nio/channels/Selector;->open()Ljava/nio/channels/Selector;
+HSPLjava/nio/channels/SocketChannel;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V
+HSPLjava/nio/channels/SocketChannel;->open()Ljava/nio/channels/SocketChannel;
+HSPLjava/nio/channels/SocketChannel;->validOps()I
+HSPLjava/nio/channels/spi/AbstractInterruptibleChannel$1;-><init>(Ljava/nio/channels/spi/AbstractInterruptibleChannel;)V
HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;-><init>()V
HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->begin()V
HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->blockedOn(Lsun/nio/ch/Interruptible;)V
HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->close()V
HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->end(Z)V
HSPLjava/nio/channels/spi/AbstractInterruptibleChannel;->isOpen()Z
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->addKey(Ljava/nio/channels/SelectionKey;)V
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->blockingLock()Ljava/lang/Object;
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->configureBlocking(Z)Ljava/nio/channels/SelectableChannel;
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->findKey(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey;
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->haveValidKeys()Z
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->implCloseChannel()V
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->isBlocking()Z
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->isRegistered()Z
+HPLjava/nio/channels/spi/AbstractSelectableChannel;->keyFor(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey;
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->register(Ljava/nio/channels/Selector;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey;
+HSPLjava/nio/channels/spi/AbstractSelectableChannel;->removeKey(Ljava/nio/channels/SelectionKey;)V
+HSPLjava/nio/channels/spi/AbstractSelectionKey;-><init>()V
+PLjava/nio/channels/spi/AbstractSelectionKey;->cancel()V
+HSPLjava/nio/channels/spi/AbstractSelectionKey;->invalidate()V
+HSPLjava/nio/channels/spi/AbstractSelectionKey;->isValid()Z
+HSPLjava/nio/channels/spi/AbstractSelector$1;-><init>(Ljava/nio/channels/spi/AbstractSelector;)V
+HSPLjava/nio/channels/spi/AbstractSelector;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V
+HSPLjava/nio/channels/spi/AbstractSelector;->begin()V
+PLjava/nio/channels/spi/AbstractSelector;->cancel(Ljava/nio/channels/SelectionKey;)V
+HSPLjava/nio/channels/spi/AbstractSelector;->cancelledKeys()Ljava/util/Set;
+HSPLjava/nio/channels/spi/AbstractSelector;->close()V
+HSPLjava/nio/channels/spi/AbstractSelector;->deregister(Ljava/nio/channels/spi/AbstractSelectionKey;)V
+HSPLjava/nio/channels/spi/AbstractSelector;->end()V
+HSPLjava/nio/channels/spi/AbstractSelector;->isOpen()Z
+HSPLjava/nio/channels/spi/SelectorProvider$1;-><init>()V
+HSPLjava/nio/channels/spi/SelectorProvider$1;->run()Ljava/lang/Object;
+HSPLjava/nio/channels/spi/SelectorProvider$1;->run()Ljava/nio/channels/spi/SelectorProvider;
+HSPLjava/nio/channels/spi/SelectorProvider;-><init>()V
+HSPLjava/nio/channels/spi/SelectorProvider;->access$000()Z
+HSPLjava/nio/channels/spi/SelectorProvider;->access$100()Ljava/nio/channels/spi/SelectorProvider;
+HSPLjava/nio/channels/spi/SelectorProvider;->access$102(Ljava/nio/channels/spi/SelectorProvider;)Ljava/nio/channels/spi/SelectorProvider;
+HSPLjava/nio/channels/spi/SelectorProvider;->access$200()Z
+HSPLjava/nio/channels/spi/SelectorProvider;->loadProviderAsService()Z
+HSPLjava/nio/channels/spi/SelectorProvider;->loadProviderFromProperty()Z
+HSPLjava/nio/channels/spi/SelectorProvider;->provider()Ljava/nio/channels/spi/SelectorProvider;
HSPLjava/nio/charset/Charset;-><init>(Ljava/lang/String;[Ljava/lang/String;)V
HSPLjava/nio/charset/Charset;->aliases()Ljava/util/Set;
HSPLjava/nio/charset/Charset;->atBugLevel(Ljava/lang/String;)Z
HSPLjava/nio/charset/Charset;->cache(Ljava/lang/String;Ljava/nio/charset/Charset;)V
HSPLjava/nio/charset/Charset;->checkName(Ljava/lang/String;)V
+PLjava/nio/charset/Charset;->decode(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;
HSPLjava/nio/charset/Charset;->defaultCharset()Ljava/nio/charset/Charset;
+HSPLjava/nio/charset/Charset;->displayName()Ljava/lang/String;
+HSPLjava/nio/charset/Charset;->encode(Ljava/lang/String;)Ljava/nio/ByteBuffer;
+HSPLjava/nio/charset/Charset;->encode(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;
HSPLjava/nio/charset/Charset;->equals(Ljava/lang/Object;)Z
HSPLjava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
HSPLjava/nio/charset/Charset;->forNameUEE(Ljava/lang/String;)Ljava/nio/charset/Charset;
@@ -11732,6 +38036,8 @@ HSPLjava/nio/charset/CharsetDecoder;->reset()Ljava/nio/charset/CharsetDecoder;
HSPLjava/nio/charset/CharsetDecoder;->unmappableCharacterAction()Ljava/nio/charset/CodingErrorAction;
HSPLjava/nio/charset/CharsetEncoder;-><init>(Ljava/nio/charset/Charset;FF[BZ)V
HSPLjava/nio/charset/CharsetEncoder;->averageBytesPerChar()F
+PLjava/nio/charset/CharsetEncoder;->canEncode(Ljava/lang/CharSequence;)Z
+PLjava/nio/charset/CharsetEncoder;->canEncode(Ljava/nio/CharBuffer;)Z
HSPLjava/nio/charset/CharsetEncoder;->charset()Ljava/nio/charset/Charset;
HSPLjava/nio/charset/CharsetEncoder;->encode(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;
HSPLjava/nio/charset/CharsetEncoder;->encode(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;
@@ -11746,76 +38052,147 @@ HSPLjava/nio/charset/CharsetEncoder;->unmappableCharacterAction()Ljava/nio/chars
HSPLjava/nio/charset/CoderResult;->isError()Z
HSPLjava/nio/charset/CoderResult;->isOverflow()Z
HSPLjava/nio/charset/CoderResult;->isUnderflow()Z
+HSPLjava/nio/file/AccessMode;->values()[Ljava/nio/file/AccessMode;
+HSPLjava/nio/file/FileAlreadyExistsException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/nio/file/FileSystemException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/nio/file/FileSystemException;->getMessage()Ljava/lang/String;
+HSPLjava/nio/file/FileSystemException;->getReason()Ljava/lang/String;
HSPLjava/nio/file/FileSystems;->getDefault()Ljava/nio/file/FileSystem;
+PLjava/nio/file/Files$1;-><init>(Ljava/nio/file/PathMatcher;)V
+HPLjava/nio/file/Files$1;->accept(Ljava/lang/Object;)Z
+HPLjava/nio/file/Files$1;->accept(Ljava/nio/file/Path;)Z
+HSPLjava/nio/file/Files$AcceptAllFilter;->accept(Ljava/lang/Object;)Z
+HSPLjava/nio/file/Files$AcceptAllFilter;->accept(Ljava/nio/file/Path;)Z
+HPLjava/nio/file/Files;->createLink(Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/nio/file/Path;
+HSPLjava/nio/file/Files;->exists(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
+HSPLjava/nio/file/Files;->followLinks([Ljava/nio/file/LinkOption;)Z
+HSPLjava/nio/file/Files;->isAccessible(Ljava/nio/file/Path;[Ljava/nio/file/AccessMode;)Z
HSPLjava/nio/file/Files;->isRegularFile(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
+HSPLjava/nio/file/Files;->isWritable(Ljava/nio/file/Path;)Z
+HPLjava/nio/file/Files;->move(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
+HSPLjava/nio/file/Files;->newBufferedReader(Ljava/nio/file/Path;)Ljava/io/BufferedReader;
+HSPLjava/nio/file/Files;->newBufferedReader(Ljava/nio/file/Path;Ljava/nio/charset/Charset;)Ljava/io/BufferedReader;
HSPLjava/nio/file/Files;->newByteChannel(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel;
HSPLjava/nio/file/Files;->newByteChannel(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/SeekableByteChannel;
+HSPLjava/nio/file/Files;->newDirectoryStream(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
+HPLjava/nio/file/Files;->newDirectoryStream(Ljava/nio/file/Path;Ljava/lang/String;)Ljava/nio/file/DirectoryStream;
+HSPLjava/nio/file/Files;->newInputStream(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
+HPLjava/nio/file/Files;->newOutputStream(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStream;
HSPLjava/nio/file/Files;->provider(Ljava/nio/file/Path;)Ljava/nio/file/spi/FileSystemProvider;
+HSPLjava/nio/file/Files;->read(Ljava/io/InputStream;I)[B
+HSPLjava/nio/file/Files;->readAllBytes(Ljava/nio/file/Path;)[B
HSPLjava/nio/file/Files;->readAttributes(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes;
+HSPLjava/nio/file/Files;->walkFileTree(Ljava/nio/file/Path;Ljava/nio/file/FileVisitor;)Ljava/nio/file/Path;
+HSPLjava/nio/file/Files;->walkFileTree(Ljava/nio/file/Path;Ljava/util/Set;ILjava/nio/file/FileVisitor;)Ljava/nio/file/Path;
HSPLjava/nio/file/NoSuchFileException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/nio/file/Paths;->get(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
+HSPLjava/nio/file/StandardOpenOption;->values()[Ljava/nio/file/StandardOpenOption;
+HSPLjava/nio/file/attribute/FileTime;-><init>(JLjava/util/concurrent/TimeUnit;Ljava/time/Instant;)V
+HPLjava/nio/file/attribute/FileTime;->append(Ljava/lang/StringBuilder;II)Ljava/lang/StringBuilder;
+HSPLjava/nio/file/attribute/FileTime;->from(JLjava/util/concurrent/TimeUnit;)Ljava/nio/file/attribute/FileTime;
+HPLjava/nio/file/attribute/FileTime;->to(Ljava/util/concurrent/TimeUnit;)J
+HSPLjava/nio/file/attribute/FileTime;->toMillis()J
+HPLjava/nio/file/attribute/FileTime;->toString()Ljava/lang/String;
+HSPLjava/nio/file/spi/FileSystemProvider;->newInputStream(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
+HPLjava/nio/file/spi/FileSystemProvider;->newOutputStream(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStream;
HSPLjava/security/AccessControlContext;-><init>([Ljava/security/ProtectionDomain;)V
HSPLjava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
HSPLjava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
HSPLjava/security/AccessController;->getContext()Ljava/security/AccessControlContext;
HSPLjava/security/AlgorithmParameters;->getInstance(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
+HSPLjava/security/AlgorithmParametersSpi;-><init>()V
+HSPLjava/security/CodeSigner;-><init>(Ljava/security/cert/CertPath;Ljava/security/Timestamp;)V
+HSPLjava/security/CodeSigner;->getSignerCertPath()Ljava/security/cert/CertPath;
HSPLjava/security/GeneralSecurityException;-><init>(Ljava/lang/String;)V
+HPLjava/security/GeneralSecurityException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+PLjava/security/InvalidKeyException;-><init>(Ljava/lang/String;)V
+HPLjava/security/InvalidKeyException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
+PLjava/security/KeyException;-><init>(Ljava/lang/String;)V
+HPLjava/security/KeyException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
HSPLjava/security/KeyFactory;-><init>(Ljava/lang/String;)V
+HSPLjava/security/KeyFactory;-><init>(Ljava/security/KeyFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V
HSPLjava/security/KeyFactory;->generatePrivate(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
HSPLjava/security/KeyFactory;->generatePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
HSPLjava/security/KeyFactory;->getInstance(Ljava/lang/String;)Ljava/security/KeyFactory;
+HSPLjava/security/KeyFactory;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
+HSPLjava/security/KeyFactory;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/KeyFactory;
+HSPLjava/security/KeyFactory;->getKeySpec(Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
HSPLjava/security/KeyFactory;->nextSpi(Ljava/security/KeyFactorySpi;)Ljava/security/KeyFactorySpi;
HSPLjava/security/KeyFactorySpi;-><init>()V
HSPLjava/security/KeyPair;-><init>(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V
HSPLjava/security/KeyPair;->getPrivate()Ljava/security/PrivateKey;
HSPLjava/security/KeyPair;->getPublic()Ljava/security/PublicKey;
+HSPLjava/security/KeyPairGenerator$Delegate;-><init>(Ljava/security/KeyPairGeneratorSpi;Ljava/lang/String;)V
HSPLjava/security/KeyPairGenerator$Delegate;->generateKeyPair()Ljava/security/KeyPair;
+HSPLjava/security/KeyPairGenerator$Delegate;->initialize(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
HSPLjava/security/KeyPairGenerator;-><init>(Ljava/lang/String;)V
-HSPLjava/security/KeyPairGenerator;->getInstance(Ljava/lang/String;)Ljava/security/KeyPairGenerator;
+PLjava/security/KeyPairGenerator;->getInstance(Ljava/lang/String;)Ljava/security/KeyPairGenerator;
+HSPLjava/security/KeyPairGenerator;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyPairGenerator;
+HSPLjava/security/KeyPairGenerator;->getInstance(Lsun/security/jca/GetInstance$Instance;Ljava/lang/String;)Ljava/security/KeyPairGenerator;
+HSPLjava/security/KeyPairGenerator;->initialize(Ljava/security/spec/AlgorithmParameterSpec;)V
HSPLjava/security/KeyPairGeneratorSpi;-><init>()V
HSPLjava/security/KeyStore$1;-><init>()V
HSPLjava/security/KeyStore$1;->run()Ljava/lang/Object;
HSPLjava/security/KeyStore$1;->run()Ljava/lang/String;
+PLjava/security/KeyStore$PrivateKeyEntry;-><init>(Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;)V
+PLjava/security/KeyStore$PrivateKeyEntry;-><init>(Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;Ljava/util/Set;)V
+PLjava/security/KeyStore$PrivateKeyEntry;->getCertificate()Ljava/security/cert/Certificate;
+PLjava/security/KeyStore$PrivateKeyEntry;->getPrivateKey()Ljava/security/PrivateKey;
+HSPLjava/security/KeyStore$SecretKeyEntry;-><init>(Ljavax/crypto/SecretKey;)V
+HSPLjava/security/KeyStore$SecretKeyEntry;->getSecretKey()Ljavax/crypto/SecretKey;
HSPLjava/security/KeyStore;-><init>(Ljava/security/KeyStoreSpi;Ljava/security/Provider;Ljava/lang/String;)V
HSPLjava/security/KeyStore;->aliases()Ljava/util/Enumeration;
+HSPLjava/security/KeyStore;->containsAlias(Ljava/lang/String;)Z
+PLjava/security/KeyStore;->deleteEntry(Ljava/lang/String;)V
HSPLjava/security/KeyStore;->getCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;
+PLjava/security/KeyStore;->getCertificateChain(Ljava/lang/String;)[Ljava/security/cert/Certificate;
+HSPLjava/security/KeyStore;->getCreationDate(Ljava/lang/String;)Ljava/util/Date;
HSPLjava/security/KeyStore;->getDefaultType()Ljava/lang/String;
+HSPLjava/security/KeyStore;->getEntry(Ljava/lang/String;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Entry;
HSPLjava/security/KeyStore;->getInstance(Ljava/lang/String;)Ljava/security/KeyStore;
+HSPLjava/security/KeyStore;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
HSPLjava/security/KeyStore;->getKey(Ljava/lang/String;[C)Ljava/security/Key;
HSPLjava/security/KeyStore;->getType()Ljava/lang/String;
HSPLjava/security/KeyStore;->load(Ljava/io/InputStream;[C)V
HSPLjava/security/KeyStore;->load(Ljava/security/KeyStore$LoadStoreParameter;)V
+PLjava/security/KeyStore;->setCertificateEntry(Ljava/lang/String;Ljava/security/cert/Certificate;)V
HSPLjava/security/KeyStoreSpi;-><init>()V
+HSPLjava/security/KeyStoreSpi;->engineGetEntry(Ljava/lang/String;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Entry;
HSPLjava/security/KeyStoreSpi;->engineLoad(Ljava/security/KeyStore$LoadStoreParameter;)V
HSPLjava/security/MessageDigest$Delegate;-><init>(Ljava/security/MessageDigestSpi;Ljava/lang/String;)V
-HPLjava/security/MessageDigest$Delegate;->clone()Ljava/lang/Object;
+HSPLjava/security/MessageDigest$Delegate;->clone()Ljava/lang/Object;
HSPLjava/security/MessageDigest$Delegate;->engineDigest()[B
HSPLjava/security/MessageDigest$Delegate;->engineDigest([BII)I
HSPLjava/security/MessageDigest$Delegate;->engineGetDigestLength()I
HSPLjava/security/MessageDigest$Delegate;->engineReset()V
HSPLjava/security/MessageDigest$Delegate;->engineUpdate(B)V
+HSPLjava/security/MessageDigest$Delegate;->engineUpdate(Ljava/nio/ByteBuffer;)V
HSPLjava/security/MessageDigest$Delegate;->engineUpdate([BII)V
HSPLjava/security/MessageDigest;-><init>(Ljava/lang/String;)V
-PLjava/security/MessageDigest;->access$000(Ljava/security/MessageDigest;)Ljava/lang/String;
-PLjava/security/MessageDigest;->access$100(Ljava/security/MessageDigest;)Ljava/security/Provider;
-PLjava/security/MessageDigest;->access$102(Ljava/security/MessageDigest;Ljava/security/Provider;)Ljava/security/Provider;
-PLjava/security/MessageDigest;->access$200(Ljava/security/MessageDigest;)I
-PLjava/security/MessageDigest;->access$202(Ljava/security/MessageDigest;I)I
+HSPLjava/security/MessageDigest;->access$000(Ljava/security/MessageDigest;)Ljava/lang/String;
+HSPLjava/security/MessageDigest;->access$100(Ljava/security/MessageDigest;)Ljava/security/Provider;
+HSPLjava/security/MessageDigest;->access$102(Ljava/security/MessageDigest;Ljava/security/Provider;)Ljava/security/Provider;
+HSPLjava/security/MessageDigest;->access$200(Ljava/security/MessageDigest;)I
+HSPLjava/security/MessageDigest;->access$202(Ljava/security/MessageDigest;I)I
HSPLjava/security/MessageDigest;->digest()[B
HSPLjava/security/MessageDigest;->digest([B)[B
HSPLjava/security/MessageDigest;->digest([BII)I
+HSPLjava/security/MessageDigest;->getAlgorithm()Ljava/lang/String;
HSPLjava/security/MessageDigest;->getDigestLength()I
HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/MessageDigest;
+HSPLjava/security/MessageDigest;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/MessageDigest;
HSPLjava/security/MessageDigest;->isEqual([B[B)Z
HSPLjava/security/MessageDigest;->reset()V
HSPLjava/security/MessageDigest;->update(B)V
+HSPLjava/security/MessageDigest;->update(Ljava/nio/ByteBuffer;)V
HSPLjava/security/MessageDigest;->update([B)V
HSPLjava/security/MessageDigest;->update([BII)V
HSPLjava/security/MessageDigestSpi;-><init>()V
HSPLjava/security/MessageDigestSpi;->engineDigest([BII)I
+HSPLjava/security/MessageDigestSpi;->engineUpdate(Ljava/nio/ByteBuffer;)V
HSPLjava/security/NoSuchAlgorithmException;-><init>(Ljava/lang/String;)V
+HSPLjava/security/Provider$EngineDescription;->getConstructorParameterClass()Ljava/lang/Class;
HSPLjava/security/Provider$Service;-><init>(Ljava/security/Provider;)V
HSPLjava/security/Provider$Service;-><init>(Ljava/security/Provider;Ljava/security/Provider$1;)V
HSPLjava/security/Provider$Service;->access$000(Ljava/security/Provider$Service;)Z
@@ -11876,6 +38253,7 @@ HSPLjava/security/SecureRandom;->setSeed(J)V
HSPLjava/security/SecureRandomSpi;-><init>()V
HSPLjava/security/Security;->addProvider(Ljava/security/Provider;)I
HSPLjava/security/Security;->getImpl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/Object;
+HSPLjava/security/Security;->getImpl(Ljava/lang/String;Ljava/lang/String;Ljava/security/Provider;)[Ljava/lang/Object;
HSPLjava/security/Security;->getProperty(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/security/Security;->getProvider(Ljava/lang/String;)Ljava/security/Provider;
HSPLjava/security/Security;->getProviders()[Ljava/security/Provider;
@@ -11888,43 +38266,81 @@ HSPLjava/security/Security;->setProperty(Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/security/Signature$Delegate;-><init>(Ljava/lang/String;)V
HSPLjava/security/Signature$Delegate;->chooseFirstProvider()V
HSPLjava/security/Signature$Delegate;->chooseProvider(ILjava/security/Key;Ljava/security/SecureRandom;)V
+HSPLjava/security/Signature$Delegate;->engineInitSign(Ljava/security/PrivateKey;)V
+HPLjava/security/Signature$Delegate;->engineInitSign(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
HSPLjava/security/Signature$Delegate;->engineInitVerify(Ljava/security/PublicKey;)V
+HSPLjava/security/Signature$Delegate;->engineSign()[B
HSPLjava/security/Signature$Delegate;->engineUpdate(Ljava/nio/ByteBuffer;)V
HSPLjava/security/Signature$Delegate;->engineUpdate([BII)V
HSPLjava/security/Signature$Delegate;->engineVerify([B)Z
+HPLjava/security/Signature$Delegate;->engineVerify([BII)Z
HSPLjava/security/Signature$Delegate;->init(Ljava/security/SignatureSpi;ILjava/security/Key;Ljava/security/SecureRandom;)V
HSPLjava/security/Signature$Delegate;->newInstance(Ljava/security/Provider$Service;)Ljava/security/SignatureSpi;
HSPLjava/security/Signature;-><init>(Ljava/lang/String;)V
HSPLjava/security/Signature;->access$000(Ljava/security/Signature;)Ljava/lang/String;
HSPLjava/security/Signature;->access$200(Ljava/security/Provider$Service;)Z
HSPLjava/security/Signature;->getInstance(Ljava/lang/String;)Ljava/security/Signature;
+HSPLjava/security/Signature;->initSign(Ljava/security/PrivateKey;)V
+HPLjava/security/Signature;->initSign(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
HSPLjava/security/Signature;->initVerify(Ljava/security/PublicKey;)V
HSPLjava/security/Signature;->isSpi(Ljava/security/Provider$Service;)Z
+HSPLjava/security/Signature;->sign()[B
HSPLjava/security/Signature;->update(Ljava/nio/ByteBuffer;)V
HSPLjava/security/Signature;->update([B)V
HSPLjava/security/Signature;->update([BII)V
HSPLjava/security/Signature;->verify([B)Z
+HPLjava/security/Signature;->verify([BII)Z
HSPLjava/security/SignatureSpi;-><init>()V
+HPLjava/security/SignatureSpi;->engineInitSign(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
HSPLjava/security/SignatureSpi;->engineUpdate(Ljava/nio/ByteBuffer;)V
+HPLjava/security/SignatureSpi;->engineVerify([BII)Z
HSPLjava/security/cert/CertPath;-><init>(Ljava/lang/String;)V
HSPLjava/security/cert/CertPath;->getType()Ljava/lang/String;
+PLjava/security/cert/CertPathBuilder;-><init>(Ljava/security/cert/CertPathBuilderSpi;Ljava/security/Provider;Ljava/lang/String;)V
+PLjava/security/cert/CertPathBuilder;->build(Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathBuilderResult;
+PLjava/security/cert/CertPathBuilder;->getInstance(Ljava/lang/String;)Ljava/security/cert/CertPathBuilder;
+PLjava/security/cert/CertPathBuilderSpi;-><init>()V
+PLjava/security/cert/CertPathHelperImpl;->implSetPathToNames(Ljava/security/cert/X509CertSelector;Ljava/util/Set;)V
HSPLjava/security/cert/CertPathValidator;-><init>(Ljava/security/cert/CertPathValidatorSpi;Ljava/security/Provider;Ljava/lang/String;)V
HSPLjava/security/cert/CertPathValidator;->getInstance(Ljava/lang/String;)Ljava/security/cert/CertPathValidator;
+HSPLjava/security/cert/CertPathValidator;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertPathValidator;
+HSPLjava/security/cert/CertPathValidator;->getRevocationChecker()Ljava/security/cert/CertPathChecker;
HSPLjava/security/cert/CertPathValidator;->validate(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathValidatorResult;
HSPLjava/security/cert/CertPathValidatorSpi;-><init>()V
+HSPLjava/security/cert/CertStore;-><init>(Ljava/security/cert/CertStoreSpi;Ljava/security/Provider;Ljava/lang/String;Ljava/security/cert/CertStoreParameters;)V
+PLjava/security/cert/CertStore;->getCertificates(Ljava/security/cert/CertSelector;)Ljava/util/Collection;
+HSPLjava/security/cert/CertStore;->getInstance(Ljava/lang/String;Ljava/security/cert/CertStoreParameters;)Ljava/security/cert/CertStore;
+HSPLjava/security/cert/CertStoreSpi;-><init>(Ljava/security/cert/CertStoreParameters;)V
HSPLjava/security/cert/Certificate;-><init>(Ljava/lang/String;)V
+HSPLjava/security/cert/Certificate;->equals(Ljava/lang/Object;)Z
+PLjava/security/cert/Certificate;->getType()Ljava/lang/String;
HSPLjava/security/cert/Certificate;->hashCode()I
HSPLjava/security/cert/CertificateFactory;-><init>(Ljava/security/cert/CertificateFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V
+PLjava/security/cert/CertificateFactory;->generateCertPath(Ljava/io/InputStream;)Ljava/security/cert/CertPath;
+PLjava/security/cert/CertificateFactory;->generateCertPath(Ljava/io/InputStream;Ljava/lang/String;)Ljava/security/cert/CertPath;
HSPLjava/security/cert/CertificateFactory;->generateCertPath(Ljava/util/List;)Ljava/security/cert/CertPath;
HSPLjava/security/cert/CertificateFactory;->generateCertificate(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
+HSPLjava/security/cert/CertificateFactory;->generateCertificates(Ljava/io/InputStream;)Ljava/util/Collection;
HSPLjava/security/cert/CertificateFactory;->getInstance(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
+HSPLjava/security/cert/CertificateFactory;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
HSPLjava/security/cert/CertificateFactorySpi;-><init>()V
+HSPLjava/security/cert/CollectionCertStoreParameters;-><init>(Ljava/util/Collection;)V
+HSPLjava/security/cert/CollectionCertStoreParameters;->clone()Ljava/lang/Object;
+PLjava/security/cert/CollectionCertStoreParameters;->getCollection()Ljava/util/Collection;
+PLjava/security/cert/PKIXBuilderParameters;-><init>(Ljava/util/Set;Ljava/security/cert/CertSelector;)V
+PLjava/security/cert/PKIXBuilderParameters;->getMaxPathLength()I
+PLjava/security/cert/PKIXCertPathBuilderResult;-><init>(Ljava/security/cert/CertPath;Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;)V
+PLjava/security/cert/PKIXCertPathBuilderResult;->getCertPath()Ljava/security/cert/CertPath;
HSPLjava/security/cert/PKIXCertPathChecker;-><init>()V
HSPLjava/security/cert/PKIXCertPathChecker;->clone()Ljava/lang/Object;
HSPLjava/security/cert/PKIXCertPathValidatorResult;-><init>(Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;)V
+HPLjava/security/cert/PKIXCertPathValidatorResult;->getPublicKey()Ljava/security/PublicKey;
+HPLjava/security/cert/PKIXCertPathValidatorResult;->getTrustAnchor()Ljava/security/cert/TrustAnchor;
HSPLjava/security/cert/PKIXParameters;-><init>(Ljava/util/Set;)V
HSPLjava/security/cert/PKIXParameters;->addCertPathChecker(Ljava/security/cert/PKIXCertPathChecker;)V
+PLjava/security/cert/PKIXParameters;->addCertStore(Ljava/security/cert/CertStore;)V
HSPLjava/security/cert/PKIXParameters;->getCertPathCheckers()Ljava/util/List;
+HSPLjava/security/cert/PKIXParameters;->getCertStores()Ljava/util/List;
HSPLjava/security/cert/PKIXParameters;->getDate()Ljava/util/Date;
HSPLjava/security/cert/PKIXParameters;->getInitialPolicies()Ljava/util/Set;
HSPLjava/security/cert/PKIXParameters;->getPolicyQualifiersRejected()Z
@@ -11935,14 +38351,32 @@ HSPLjava/security/cert/PKIXParameters;->isAnyPolicyInhibited()Z
HSPLjava/security/cert/PKIXParameters;->isExplicitPolicyRequired()Z
HSPLjava/security/cert/PKIXParameters;->isPolicyMappingInhibited()Z
HSPLjava/security/cert/PKIXParameters;->isRevocationEnabled()Z
+HSPLjava/security/cert/PKIXParameters;->setCertPathCheckers(Ljava/util/List;)V
+HSPLjava/security/cert/PKIXParameters;->setDate(Ljava/util/Date;)V
HSPLjava/security/cert/PKIXParameters;->setRevocationEnabled(Z)V
+PLjava/security/cert/PKIXParameters;->setTargetCertConstraints(Ljava/security/cert/CertSelector;)V
HSPLjava/security/cert/PKIXParameters;->setTrustAnchors(Ljava/util/Set;)V
+HSPLjava/security/cert/PKIXRevocationChecker$Option;->values()[Ljava/security/cert/PKIXRevocationChecker$Option;
+HSPLjava/security/cert/PKIXRevocationChecker;-><init>()V
+HSPLjava/security/cert/PKIXRevocationChecker;->clone()Ljava/security/cert/PKIXRevocationChecker;
+HSPLjava/security/cert/PKIXRevocationChecker;->getOcspExtensions()Ljava/util/List;
+HSPLjava/security/cert/PKIXRevocationChecker;->getOcspResponder()Ljava/net/URI;
+HSPLjava/security/cert/PKIXRevocationChecker;->getOcspResponderCert()Ljava/security/cert/X509Certificate;
+HSPLjava/security/cert/PKIXRevocationChecker;->getOcspResponses()Ljava/util/Map;
+HSPLjava/security/cert/PKIXRevocationChecker;->getOptions()Ljava/util/Set;
+HSPLjava/security/cert/PKIXRevocationChecker;->setOcspResponses(Ljava/util/Map;)V
+HSPLjava/security/cert/PKIXRevocationChecker;->setOptions(Ljava/util/Set;)V
HSPLjava/security/cert/PolicyQualifierInfo;-><init>([B)V
HSPLjava/security/cert/TrustAnchor;-><init>(Ljava/security/cert/X509Certificate;[B)V
HSPLjava/security/cert/TrustAnchor;->getNameConstraints()[B
HSPLjava/security/cert/TrustAnchor;->getTrustedCert()Ljava/security/cert/X509Certificate;
HSPLjava/security/cert/TrustAnchor;->setNameConstraints([B)V
HSPLjava/security/cert/X509CertSelector;-><init>()V
+PLjava/security/cert/X509CertSelector;->clone()Ljava/lang/Object;
+PLjava/security/cert/X509CertSelector;->getBasicConstraints()I
+PLjava/security/cert/X509CertSelector;->getCertificate()Ljava/security/cert/X509Certificate;
+PLjava/security/cert/X509CertSelector;->getExtensionObject(Ljava/security/cert/X509Certificate;I)Ljava/security/cert/Extension;
+PLjava/security/cert/X509CertSelector;->getSubject()Ljavax/security/auth/x500/X500Principal;
HSPLjava/security/cert/X509CertSelector;->match(Ljava/security/cert/Certificate;)Z
HSPLjava/security/cert/X509CertSelector;->matchAuthorityKeyID(Ljava/security/cert/X509Certificate;)Z
HSPLjava/security/cert/X509CertSelector;->matchBasicConstraints(Ljava/security/cert/X509Certificate;)Z
@@ -11955,29 +38389,66 @@ HSPLjava/security/cert/X509CertSelector;->matchPrivateKeyValid(Ljava/security/ce
HSPLjava/security/cert/X509CertSelector;->matchSubjectAlternativeNames(Ljava/security/cert/X509Certificate;)Z
HSPLjava/security/cert/X509CertSelector;->matchSubjectKeyID(Ljava/security/cert/X509Certificate;)Z
HSPLjava/security/cert/X509CertSelector;->matchSubjectPublicKeyAlgID(Ljava/security/cert/X509Certificate;)Z
+PLjava/security/cert/X509CertSelector;->setBasicConstraints(I)V
+PLjava/security/cert/X509CertSelector;->setCertificate(Ljava/security/cert/X509Certificate;)V
+PLjava/security/cert/X509CertSelector;->setCertificateValid(Ljava/util/Date;)V
+PLjava/security/cert/X509CertSelector;->setPathToNamesInternal(Ljava/util/Set;)V
HSPLjava/security/cert/X509CertSelector;->setSubject(Ljavax/security/auth/x500/X500Principal;)V
HSPLjava/security/cert/X509Certificate;-><init>()V
+HSPLjava/security/spec/DSAParameterSpec;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
+HSPLjava/security/spec/DSAParameterSpec;->getG()Ljava/math/BigInteger;
+HSPLjava/security/spec/DSAParameterSpec;->getP()Ljava/math/BigInteger;
+HSPLjava/security/spec/DSAParameterSpec;->getQ()Ljava/math/BigInteger;
HSPLjava/security/spec/ECFieldFp;-><init>(Ljava/math/BigInteger;)V
HSPLjava/security/spec/ECFieldFp;->getFieldSize()I
HSPLjava/security/spec/ECFieldFp;->getP()Ljava/math/BigInteger;
+PLjava/security/spec/ECGenParameterSpec;-><init>(Ljava/lang/String;)V
+PLjava/security/spec/ECGenParameterSpec;->getName()Ljava/lang/String;
HSPLjava/security/spec/ECParameterSpec;-><init>(Ljava/security/spec/EllipticCurve;Ljava/security/spec/ECPoint;Ljava/math/BigInteger;I)V
HSPLjava/security/spec/ECParameterSpec;->getCurve()Ljava/security/spec/EllipticCurve;
+HSPLjava/security/spec/ECParameterSpec;->getCurveName()Ljava/lang/String;
+HSPLjava/security/spec/ECParameterSpec;->getGenerator()Ljava/security/spec/ECPoint;
HSPLjava/security/spec/ECParameterSpec;->getOrder()Ljava/math/BigInteger;
HSPLjava/security/spec/ECParameterSpec;->setCurveName(Ljava/lang/String;)V
HSPLjava/security/spec/ECPoint;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
+HSPLjava/security/spec/ECPoint;->getAffineX()Ljava/math/BigInteger;
+HSPLjava/security/spec/ECPoint;->getAffineY()Ljava/math/BigInteger;
+HSPLjava/security/spec/ECPublicKeySpec;-><init>(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V
+HSPLjava/security/spec/ECPublicKeySpec;->getParams()Ljava/security/spec/ECParameterSpec;
+HSPLjava/security/spec/ECPublicKeySpec;->getW()Ljava/security/spec/ECPoint;
HSPLjava/security/spec/EllipticCurve;-><init>(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
HSPLjava/security/spec/EllipticCurve;-><init>(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;[B)V
HSPLjava/security/spec/EllipticCurve;->checkValidity(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/lang/String;)V
+HSPLjava/security/spec/EllipticCurve;->getA()Ljava/math/BigInteger;
+HSPLjava/security/spec/EllipticCurve;->getB()Ljava/math/BigInteger;
HSPLjava/security/spec/EllipticCurve;->getField()Ljava/security/spec/ECField;
HSPLjava/security/spec/EncodedKeySpec;-><init>([B)V
HSPLjava/security/spec/EncodedKeySpec;->getEncoded()[B
+HSPLjava/security/spec/InvalidKeySpecException;-><init>(Ljava/lang/String;)V
+HSPLjava/security/spec/MGF1ParameterSpec;->getDigestAlgorithm()Ljava/lang/String;
HSPLjava/security/spec/PKCS8EncodedKeySpec;-><init>([B)V
HSPLjava/security/spec/PKCS8EncodedKeySpec;->getEncoded()[B
+HSPLjava/security/spec/RSAKeyGenParameterSpec;-><clinit>()V
+HSPLjava/security/spec/RSAKeyGenParameterSpec;-><init>(ILjava/math/BigInteger;)V
+HSPLjava/security/spec/RSAKeyGenParameterSpec;->getKeysize()I
+HSPLjava/security/spec/RSAKeyGenParameterSpec;->getPublicExponent()Ljava/math/BigInteger;
+HPLjava/security/spec/RSAPublicKeySpec;-><init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
+HPLjava/security/spec/RSAPublicKeySpec;->getModulus()Ljava/math/BigInteger;
+HPLjava/security/spec/RSAPublicKeySpec;->getPublicExponent()Ljava/math/BigInteger;
HSPLjava/security/spec/X509EncodedKeySpec;-><init>([B)V
HSPLjava/security/spec/X509EncodedKeySpec;->getEncoded()[B
+HSPLjava/sql/Timestamp;-><init>(J)V
+HSPLjava/sql/Timestamp;->toString()Ljava/lang/String;
HSPLjava/text/AttributedCharacterIterator$Attribute;-><init>(Ljava/lang/String;)V
HSPLjava/text/AttributedCharacterIterator$Attribute;->equals(Ljava/lang/Object;)Z
HSPLjava/text/AttributedCharacterIterator$Attribute;->hashCode()I
+HSPLjava/text/BreakIterator;-><init>()V
+HSPLjava/text/BreakIterator;->getCharacterInstance()Ljava/text/BreakIterator;
+HSPLjava/text/BreakIterator;->getCharacterInstance(Ljava/util/Locale;)Ljava/text/BreakIterator;
+HPLjava/text/BreakIterator;->getLineInstance()Ljava/text/BreakIterator;
+HPLjava/text/BreakIterator;->getLineInstance(Ljava/util/Locale;)Ljava/text/BreakIterator;
+HPLjava/text/BreakIterator;->getWordInstance()Ljava/text/BreakIterator;
+HPLjava/text/BreakIterator;->getWordInstance(Ljava/util/Locale;)Ljava/text/BreakIterator;
HSPLjava/text/CalendarBuilder;-><init>()V
HSPLjava/text/CalendarBuilder;->establish(Ljava/util/Calendar;)Ljava/util/Calendar;
HSPLjava/text/CalendarBuilder;->isSet(I)Z
@@ -11985,18 +38456,29 @@ HSPLjava/text/CalendarBuilder;->set(II)Ljava/text/CalendarBuilder;
HPLjava/text/CollationKey;-><init>(Ljava/lang/String;)V
HSPLjava/text/Collator;-><init>()V
HSPLjava/text/Collator;-><init>(Landroid/icu/text/Collator;)V
+HPLjava/text/Collator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLjava/text/Collator;->decompositionMode_Java_ICU(I)I
HSPLjava/text/Collator;->getInstance()Ljava/text/Collator;
HSPLjava/text/Collator;->getInstance(Ljava/util/Locale;)Ljava/text/Collator;
+HSPLjava/text/Collator;->setDecomposition(I)V
HSPLjava/text/Collator;->setStrength(I)V
HSPLjava/text/DateFormat;-><init>()V
HSPLjava/text/DateFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
HSPLjava/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
HSPLjava/text/DateFormat;->get(IIILjava/util/Locale;)Ljava/text/DateFormat;
+HSPLjava/text/DateFormat;->getDateTimeInstance()Ljava/text/DateFormat;
+HSPLjava/text/DateFormat;->getDateTimeInstance(II)Ljava/text/DateFormat;
+HSPLjava/text/DateFormat;->getDateTimeInstance(IILjava/util/Locale;)Ljava/text/DateFormat;
+HSPLjava/text/DateFormat;->getTimeInstance(I)Ljava/text/DateFormat;
+HSPLjava/text/DateFormat;->getTimeInstance(ILjava/util/Locale;)Ljava/text/DateFormat;
HSPLjava/text/DateFormat;->getTimeZone()Ljava/util/TimeZone;
+HPLjava/text/DateFormat;->isLenient()Z
HSPLjava/text/DateFormat;->parse(Ljava/lang/String;)Ljava/util/Date;
HSPLjava/text/DateFormat;->set24HourTimePref(Ljava/lang/Boolean;)V
+HSPLjava/text/DateFormat;->setLenient(Z)V
HSPLjava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V
HSPLjava/text/DateFormatSymbols;-><init>(Ljava/util/Locale;)V
+HSPLjava/text/DateFormatSymbols;->getAmPmStrings()[Ljava/lang/String;
HSPLjava/text/DateFormatSymbols;->getCachedInstance(Ljava/util/Locale;)Ljava/text/DateFormatSymbols;
HSPLjava/text/DateFormatSymbols;->getInstanceRef(Ljava/util/Locale;)Ljava/text/DateFormatSymbols;
HSPLjava/text/DateFormatSymbols;->getMonths()[Ljava/lang/String;
@@ -12005,22 +38487,27 @@ HSPLjava/text/DateFormatSymbols;->getShortWeekdays()[Ljava/lang/String;
HSPLjava/text/DateFormatSymbols;->getWeekdays()[Ljava/lang/String;
HSPLjava/text/DateFormatSymbols;->initializeData(Ljava/util/Locale;)V
HSPLjava/text/DateFormatSymbols;->initializeSupplementaryData(Llibcore/icu/LocaleData;)V
+HPLjava/text/DecimalFormat;-><init>()V
HSPLjava/text/DecimalFormat;-><init>(Ljava/lang/String;)V
HSPLjava/text/DecimalFormat;-><init>(Ljava/lang/String;Ljava/text/DecimalFormatSymbols;)V
HSPLjava/text/DecimalFormat;->clone()Ljava/lang/Object;
HSPLjava/text/DecimalFormat;->equals(Ljava/lang/Object;)Z
HSPLjava/text/DecimalFormat;->format(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
HSPLjava/text/DecimalFormat;->format(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
+HPLjava/text/DecimalFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
HSPLjava/text/DecimalFormat;->getDecimalFormatSymbols()Ljava/text/DecimalFormatSymbols;
+HSPLjava/text/DecimalFormat;->getGroupingSize()I
HSPLjava/text/DecimalFormat;->getIcuFieldPosition(Ljava/text/FieldPosition;)Ljava/text/FieldPosition;
HSPLjava/text/DecimalFormat;->getMaximumFractionDigits()I
HSPLjava/text/DecimalFormat;->getMaximumIntegerDigits()I
+HSPLjava/text/DecimalFormat;->getMinimumFractionDigits()I
HSPLjava/text/DecimalFormat;->getMinimumIntegerDigits()I
HSPLjava/text/DecimalFormat;->getNegativePrefix()Ljava/lang/String;
HSPLjava/text/DecimalFormat;->getNegativeSuffix()Ljava/lang/String;
HSPLjava/text/DecimalFormat;->getPositivePrefix()Ljava/lang/String;
HSPLjava/text/DecimalFormat;->getPositiveSuffix()Ljava/lang/String;
HSPLjava/text/DecimalFormat;->initPattern(Ljava/lang/String;)V
+HSPLjava/text/DecimalFormat;->isGroupingUsed()Z
HSPLjava/text/DecimalFormat;->isParseBigDecimal()Z
HSPLjava/text/DecimalFormat;->isParseIntegerOnly()Z
HSPLjava/text/DecimalFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Number;
@@ -12028,6 +38515,7 @@ HSPLjava/text/DecimalFormat;->setDecimalSeparatorAlwaysShown(Z)V
HSPLjava/text/DecimalFormat;->setGroupingUsed(Z)V
HSPLjava/text/DecimalFormat;->setMaximumFractionDigits(I)V
HSPLjava/text/DecimalFormat;->setMaximumIntegerDigits(I)V
+HSPLjava/text/DecimalFormat;->setMinimumFractionDigits(I)V
HSPLjava/text/DecimalFormat;->setMinimumIntegerDigits(I)V
HSPLjava/text/DecimalFormat;->setParseIntegerOnly(Z)V
HSPLjava/text/DecimalFormat;->toPattern()Ljava/lang/String;
@@ -12078,6 +38566,7 @@ HSPLjava/text/Format$Field;-><init>(Ljava/lang/String;)V
HSPLjava/text/Format;-><init>()V
HSPLjava/text/Format;->clone()Ljava/lang/Object;
HSPLjava/text/Format;->format(Ljava/lang/Object;)Ljava/lang/String;
+HSPLjava/text/IcuIteratorWrapper;-><init>(Landroid/icu/text/BreakIterator;)V
HSPLjava/text/MessageFormat;-><init>(Ljava/lang/String;)V
HSPLjava/text/MessageFormat;->applyPattern(Ljava/lang/String;)V
HSPLjava/text/MessageFormat;->format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
@@ -12089,100 +38578,205 @@ HSPLjava/text/Normalizer;->normalize(Ljava/lang/CharSequence;Ljava/text/Normaliz
HSPLjava/text/NumberFormat;-><init>()V
HSPLjava/text/NumberFormat;->clone()Ljava/lang/Object;
HSPLjava/text/NumberFormat;->format(D)Ljava/lang/String;
+HPLjava/text/NumberFormat;->format(J)Ljava/lang/String;
+HSPLjava/text/NumberFormat;->getInstance()Ljava/text/NumberFormat;
+HSPLjava/text/NumberFormat;->getInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;
HSPLjava/text/NumberFormat;->getInstance(Ljava/util/Locale;I)Ljava/text/NumberFormat;
+HSPLjava/text/NumberFormat;->getIntegerInstance()Ljava/text/NumberFormat;
HSPLjava/text/NumberFormat;->getIntegerInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;
HSPLjava/text/NumberFormat;->getNumberInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;
+HSPLjava/text/NumberFormat;->getPercentInstance()Ljava/text/NumberFormat;
+HSPLjava/text/NumberFormat;->getPercentInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;
+HSPLjava/text/NumberFormat;->parse(Ljava/lang/String;)Ljava/lang/Number;
HSPLjava/text/NumberFormat;->setMaximumFractionDigits(I)V
HSPLjava/text/NumberFormat;->setMaximumIntegerDigits(I)V
+HSPLjava/text/NumberFormat;->setMinimumFractionDigits(I)V
HSPLjava/text/NumberFormat;->setMinimumIntegerDigits(I)V
HSPLjava/text/NumberFormat;->setParseIntegerOnly(Z)V
HSPLjava/text/ParseException;-><init>(Ljava/lang/String;I)V
HSPLjava/text/ParsePosition;-><init>(I)V
-PLjava/text/ParsePosition;->getErrorIndex()I
+HSPLjava/text/ParsePosition;->getErrorIndex()I
HSPLjava/text/ParsePosition;->getIndex()I
+HSPLjava/text/ParsePosition;->setErrorIndex(I)V
HSPLjava/text/ParsePosition;->setIndex(I)V
HSPLjava/text/RuleBasedCollator;-><init>(Landroid/icu/text/RuleBasedCollator;)V
HSPLjava/text/RuleBasedCollator;-><init>(Ljava/lang/String;)V
HSPLjava/text/RuleBasedCollator;->collAsICU()Landroid/icu/text/RuleBasedCollator;
HSPLjava/text/RuleBasedCollator;->compare(Ljava/lang/String;Ljava/lang/String;)I
-PLjava/text/RuleBasedCollator;->getCollationKey(Ljava/lang/String;)Ljava/text/CollationKey;
+HPLjava/text/RuleBasedCollator;->getCollationKey(Ljava/lang/String;)Ljava/text/CollationKey;
HSPLjava/text/RuleBasedCollator;->getRules()Ljava/lang/String;
+HSPLjava/text/SimpleDateFormat;-><init>()V
HSPLjava/text/SimpleDateFormat;-><init>(IILjava/util/Locale;)V
HSPLjava/text/SimpleDateFormat;-><init>(Ljava/lang/String;)V
HSPLjava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
+HSPLjava/text/SimpleDateFormat;->applyPattern(Ljava/lang/String;)V
+HSPLjava/text/SimpleDateFormat;->applyPatternImpl(Ljava/lang/String;)V
HSPLjava/text/SimpleDateFormat;->checkNegativeNumberExpression()V
HSPLjava/text/SimpleDateFormat;->compile(Ljava/lang/String;)[C
HSPLjava/text/SimpleDateFormat;->encode(IILjava/lang/StringBuilder;)V
HSPLjava/text/SimpleDateFormat;->format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
HSPLjava/text/SimpleDateFormat;->format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/Format$FieldDelegate;)Ljava/lang/StringBuffer;
HSPLjava/text/SimpleDateFormat;->formatMonth(IIILjava/lang/StringBuffer;ZZII)Ljava/lang/String;
+HSPLjava/text/SimpleDateFormat;->formatWeekday(IIZZ)Ljava/lang/String;
HSPLjava/text/SimpleDateFormat;->getDateTimeFormat(IILjava/util/Locale;)Ljava/lang/String;
+HSPLjava/text/SimpleDateFormat;->getTimeZoneNames()Landroid/icu/text/TimeZoneNames;
HSPLjava/text/SimpleDateFormat;->initialize(Ljava/util/Locale;)V
HSPLjava/text/SimpleDateFormat;->initializeCalendar(Ljava/util/Locale;)V
HSPLjava/text/SimpleDateFormat;->initializeDefaultCentury()V
+HSPLjava/text/SimpleDateFormat;->isDigit(C)Z
HSPLjava/text/SimpleDateFormat;->matchString(Ljava/lang/String;II[Ljava/lang/String;Ljava/text/CalendarBuilder;)I
HSPLjava/text/SimpleDateFormat;->parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;
HSPLjava/text/SimpleDateFormat;->parseAmbiguousDatesAsAfter(Ljava/util/Date;)V
HSPLjava/text/SimpleDateFormat;->parseInternal(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;
HSPLjava/text/SimpleDateFormat;->parseMonth(Ljava/lang/String;IIIILjava/text/ParsePosition;ZZLjava/text/CalendarBuilder;)I
HSPLjava/text/SimpleDateFormat;->parseWeekday(Ljava/lang/String;IIZZLjava/text/CalendarBuilder;)I
+HSPLjava/text/SimpleDateFormat;->set2DigitYearStart(Ljava/util/Date;)V
HSPLjava/text/SimpleDateFormat;->subFormat(IILjava/text/Format$FieldDelegate;Ljava/lang/StringBuffer;Z)V
HSPLjava/text/SimpleDateFormat;->subParse(Ljava/lang/String;IIIZ[ZLjava/text/ParsePosition;ZLjava/text/CalendarBuilder;)I
+HSPLjava/text/SimpleDateFormat;->subParseNumericZone(Ljava/lang/String;IIIZLjava/text/CalendarBuilder;)I
+HPLjava/text/SimpleDateFormat;->toPattern()Ljava/lang/String;
HSPLjava/text/SimpleDateFormat;->useDateFormatSymbols()Z
HSPLjava/text/SimpleDateFormat;->zeroPaddingNumber(IIILjava/lang/StringBuffer;)V
HSPLjava/text/StringCharacterIterator;-><init>(Ljava/lang/String;)V
HSPLjava/text/StringCharacterIterator;-><init>(Ljava/lang/String;I)V
HSPLjava/text/StringCharacterIterator;-><init>(Ljava/lang/String;III)V
HSPLjava/text/StringCharacterIterator;->clone()Ljava/lang/Object;
+HSPLjava/time/-$$Lambda$Bq8PKq1YWr8nyVk9SSfRYKrOu4A;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;
+PLjava/time/-$$Lambda$JBWLm7jbzHiLhHxYdB_IuO_vFO8;-><clinit>()V
+PLjava/time/-$$Lambda$up1HpCqucM_DXyY-rpDOyCcdmIA;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;
HSPLjava/time/Clock$SystemClock;-><init>(Ljava/time/ZoneId;)V
HSPLjava/time/Clock$SystemClock;->getZone()Ljava/time/ZoneId;
HSPLjava/time/Clock$SystemClock;->instant()Ljava/time/Instant;
HSPLjava/time/Clock$SystemClock;->millis()J
HSPLjava/time/Clock;-><init>()V
+HSPLjava/time/Clock;->system(Ljava/time/ZoneId;)Ljava/time/Clock;
HSPLjava/time/Clock;->systemDefaultZone()Ljava/time/Clock;
HSPLjava/time/Clock;->systemUTC()Ljava/time/Clock;
-HSPLjava/time/DayOfWeek;->getValue()I
-HSPLjava/time/DayOfWeek;->of(I)Ljava/time/DayOfWeek;
-HSPLjava/time/DayOfWeek;->plus(J)Ljava/time/DayOfWeek;
+HSPLjava/time/DateTimeException;-><init>(Ljava/lang/String;)V
+HPLjava/time/DayOfWeek;->getValue()I
+HPLjava/time/DayOfWeek;->of(I)Ljava/time/DayOfWeek;
HSPLjava/time/Duration;-><init>(JI)V
+HSPLjava/time/Duration;->addTo(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
HSPLjava/time/Duration;->between(Ljava/time/temporal/Temporal;Ljava/time/temporal/Temporal;)Ljava/time/Duration;
+HSPLjava/time/Duration;->compareTo(Ljava/time/Duration;)I
HSPLjava/time/Duration;->create(JI)Ljava/time/Duration;
+HSPLjava/time/Duration;->create(Ljava/math/BigDecimal;)Ljava/time/Duration;
+HSPLjava/time/Duration;->dividedBy(J)Ljava/time/Duration;
+HPLjava/time/Duration;->getNano()I
+HSPLjava/time/Duration;->getSeconds()J
+HPLjava/time/Duration;->isNegative()Z
+HPLjava/time/Duration;->minus(Ljava/time/Duration;)Ljava/time/Duration;
+HSPLjava/time/Duration;->multipliedBy(J)Ljava/time/Duration;
HSPLjava/time/Duration;->ofDays(J)Ljava/time/Duration;
HSPLjava/time/Duration;->ofHours(J)Ljava/time/Duration;
+HSPLjava/time/Duration;->ofMillis(J)Ljava/time/Duration;
HSPLjava/time/Duration;->ofMinutes(J)Ljava/time/Duration;
HSPLjava/time/Duration;->ofNanos(J)Ljava/time/Duration;
+HSPLjava/time/Duration;->ofSeconds(J)Ljava/time/Duration;
+HSPLjava/time/Duration;->ofSeconds(JJ)Ljava/time/Duration;
+HPLjava/time/Duration;->plus(JJ)Ljava/time/Duration;
+HSPLjava/time/Duration;->subtractFrom(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
HSPLjava/time/Duration;->toMillis()J
+HSPLjava/time/Duration;->toMinutes()J
+HSPLjava/time/Duration;->toNanos()J
+HSPLjava/time/Duration;->toSeconds()Ljava/math/BigDecimal;
+HPLjava/time/Duration;->toString()Ljava/lang/String;
HSPLjava/time/Instant;-><init>(JI)V
+HSPLjava/time/Instant;->atZone(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
+HSPLjava/time/Instant;->compareTo(Ljava/time/Instant;)I
HSPLjava/time/Instant;->create(JI)Ljava/time/Instant;
+HPLjava/time/Instant;->equals(Ljava/lang/Object;)Z
HSPLjava/time/Instant;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/Instant;
HSPLjava/time/Instant;->getEpochSecond()J
+HSPLjava/time/Instant;->getLong(Ljava/time/temporal/TemporalField;)J
HSPLjava/time/Instant;->getNano()I
+HSPLjava/time/Instant;->isAfter(Ljava/time/Instant;)Z
+HSPLjava/time/Instant;->isBefore(Ljava/time/Instant;)Z
+HSPLjava/time/Instant;->isSupported(Ljava/time/temporal/TemporalField;)Z
+HSPLjava/time/Instant;->minus(JLjava/time/temporal/TemporalUnit;)Ljava/time/Instant;
+HSPLjava/time/Instant;->minus(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
+HSPLjava/time/Instant;->minus(Ljava/time/temporal/TemporalAmount;)Ljava/time/Instant;
+HSPLjava/time/Instant;->minusMillis(J)Ljava/time/Instant;
HSPLjava/time/Instant;->nanosUntil(Ljava/time/Instant;)J
HSPLjava/time/Instant;->now()Ljava/time/Instant;
HSPLjava/time/Instant;->ofEpochMilli(J)Ljava/time/Instant;
HSPLjava/time/Instant;->ofEpochSecond(JJ)Ljava/time/Instant;
+HPLjava/time/Instant;->parse(Ljava/lang/CharSequence;)Ljava/time/Instant;
+HSPLjava/time/Instant;->plus(JJ)Ljava/time/Instant;
+HSPLjava/time/Instant;->plus(JLjava/time/temporal/TemporalUnit;)Ljava/time/Instant;
+HSPLjava/time/Instant;->plus(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
+HSPLjava/time/Instant;->plus(Ljava/time/temporal/TemporalAmount;)Ljava/time/Instant;
+HSPLjava/time/Instant;->plusMillis(J)Ljava/time/Instant;
+HSPLjava/time/Instant;->plusNanos(J)Ljava/time/Instant;
+HSPLjava/time/Instant;->plusSeconds(J)Ljava/time/Instant;
+HPLjava/time/Instant;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
HSPLjava/time/Instant;->toEpochMilli()J
+HSPLjava/time/Instant;->toString()Ljava/lang/String;
+HSPLjava/time/Instant;->truncatedTo(Ljava/time/temporal/TemporalUnit;)Ljava/time/Instant;
HSPLjava/time/Instant;->until(Ljava/time/temporal/Temporal;Ljava/time/temporal/TemporalUnit;)J
HSPLjava/time/LocalDate;-><init>(III)V
+PLjava/time/LocalDate;->atTime(Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
+PLjava/time/LocalDate;->atTime(Ljava/time/LocalTime;)Ljava/time/chrono/ChronoLocalDateTime;
+HSPLjava/time/LocalDate;->compareTo0(Ljava/time/LocalDate;)I
HSPLjava/time/LocalDate;->create(III)Ljava/time/LocalDate;
-HSPLjava/time/LocalDate;->get(Ljava/time/temporal/TemporalField;)I
-HSPLjava/time/LocalDate;->get0(Ljava/time/temporal/TemporalField;)I
-HSPLjava/time/LocalDate;->getDayOfWeek()Ljava/time/DayOfWeek;
-HSPLjava/time/LocalDate;->getYear()I
+HSPLjava/time/LocalDate;->equals(Ljava/lang/Object;)Z
+HSPLjava/time/LocalDate;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/LocalDate;
+HPLjava/time/LocalDate;->get0(Ljava/time/temporal/TemporalField;)I
+HSPLjava/time/LocalDate;->getChronology()Ljava/time/chrono/Chronology;
+HSPLjava/time/LocalDate;->getChronology()Ljava/time/chrono/IsoChronology;
+PLjava/time/LocalDate;->getDayOfMonth()I
+HPLjava/time/LocalDate;->getDayOfWeek()Ljava/time/DayOfWeek;
+HPLjava/time/LocalDate;->getLong(Ljava/time/temporal/TemporalField;)J
+PLjava/time/LocalDate;->getMonth()Ljava/time/Month;
+PLjava/time/LocalDate;->getMonthValue()I
+PLjava/time/LocalDate;->getYear()I
+HSPLjava/time/LocalDate;->isAfter(Ljava/time/chrono/ChronoLocalDate;)Z
HSPLjava/time/LocalDate;->isLeapYear()Z
-HSPLjava/time/LocalDate;->of(ILjava/time/Month;I)Ljava/time/LocalDate;
+PLjava/time/LocalDate;->isSupported(Ljava/time/temporal/TemporalField;)Z
+HSPLjava/time/LocalDate;->minusDays(J)Ljava/time/LocalDate;
+HSPLjava/time/LocalDate;->now()Ljava/time/LocalDate;
+HSPLjava/time/LocalDate;->now(Ljava/time/Clock;)Ljava/time/LocalDate;
+HSPLjava/time/LocalDate;->of(III)Ljava/time/LocalDate;
+PLjava/time/LocalDate;->of(ILjava/time/Month;I)Ljava/time/LocalDate;
HSPLjava/time/LocalDate;->ofEpochDay(J)Ljava/time/LocalDate;
-HSPLjava/time/LocalDate;->plus(JLjava/time/temporal/TemporalUnit;)Ljava/time/LocalDate;
-HSPLjava/time/LocalDate;->plus(JLjava/time/temporal/TemporalUnit;)Ljava/time/temporal/Temporal;
+HSPLjava/time/LocalDate;->parse(Ljava/lang/CharSequence;)Ljava/time/LocalDate;
+HSPLjava/time/LocalDate;->parse(Ljava/lang/CharSequence;Ljava/time/format/DateTimeFormatter;)Ljava/time/LocalDate;
HSPLjava/time/LocalDate;->plusDays(J)Ljava/time/LocalDate;
+HSPLjava/time/LocalDate;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
HSPLjava/time/LocalDate;->toEpochDay()J
HSPLjava/time/LocalDate;->toString()Ljava/lang/String;
-HSPLjava/time/LocalDate;->with(Ljava/time/temporal/TemporalAdjuster;)Ljava/time/LocalDate;
HSPLjava/time/LocalDateTime;-><init>(Ljava/time/LocalDate;Ljava/time/LocalTime;)V
+PLjava/time/LocalDateTime;->atZone(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
+PLjava/time/LocalDateTime;->atZone(Ljava/time/ZoneId;)Ljava/time/chrono/ChronoZonedDateTime;
+HPLjava/time/LocalDateTime;->compareTo(Ljava/lang/Object;)I
+HPLjava/time/LocalDateTime;->compareTo(Ljava/time/chrono/ChronoLocalDateTime;)I
+HPLjava/time/LocalDateTime;->compareTo0(Ljava/time/LocalDateTime;)I
+PLjava/time/LocalDateTime;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/LocalDateTime;
+PLjava/time/LocalDateTime;->getDayOfMonth()I
+HPLjava/time/LocalDateTime;->getDayOfWeek()Ljava/time/DayOfWeek;
+HSPLjava/time/LocalDateTime;->getHour()I
+HPLjava/time/LocalDateTime;->getLong(Ljava/time/temporal/TemporalField;)J
+HSPLjava/time/LocalDateTime;->getMinute()I
+PLjava/time/LocalDateTime;->getMonth()Ljava/time/Month;
+PLjava/time/LocalDateTime;->getMonthValue()I
+HSPLjava/time/LocalDateTime;->getNano()I
+HSPLjava/time/LocalDateTime;->getSecond()I
+PLjava/time/LocalDateTime;->getYear()I
+PLjava/time/LocalDateTime;->isAfter(Ljava/time/chrono/ChronoLocalDateTime;)Z
+PLjava/time/LocalDateTime;->isBefore(Ljava/time/chrono/ChronoLocalDateTime;)Z
+HPLjava/time/LocalDateTime;->isSupported(Ljava/time/temporal/TemporalField;)Z
+PLjava/time/LocalDateTime;->minusDays(J)Ljava/time/LocalDateTime;
HSPLjava/time/LocalDateTime;->now()Ljava/time/LocalDateTime;
HSPLjava/time/LocalDateTime;->now(Ljava/time/Clock;)Ljava/time/LocalDateTime;
-HSPLjava/time/LocalDateTime;->of(Ljava/time/LocalDate;Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
+HPLjava/time/LocalDateTime;->now(Ljava/time/ZoneId;)Ljava/time/LocalDateTime;
+HPLjava/time/LocalDateTime;->of(IIIIIII)Ljava/time/LocalDateTime;
+PLjava/time/LocalDateTime;->of(ILjava/time/Month;III)Ljava/time/LocalDateTime;
+HPLjava/time/LocalDateTime;->of(Ljava/time/LocalDate;Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
HSPLjava/time/LocalDateTime;->ofEpochSecond(JILjava/time/ZoneOffset;)Ljava/time/LocalDateTime;
+HPLjava/time/LocalDateTime;->ofInstant(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/LocalDateTime;
+PLjava/time/LocalDateTime;->parse(Ljava/lang/CharSequence;)Ljava/time/LocalDateTime;
+PLjava/time/LocalDateTime;->parse(Ljava/lang/CharSequence;Ljava/time/format/DateTimeFormatter;)Ljava/time/LocalDateTime;
+PLjava/time/LocalDateTime;->plusDays(J)Ljava/time/LocalDateTime;
HSPLjava/time/LocalDateTime;->plusSeconds(J)Ljava/time/LocalDateTime;
HSPLjava/time/LocalDateTime;->plusWithOverflow(Ljava/time/LocalDate;JJJJI)Ljava/time/LocalDateTime;
HSPLjava/time/LocalDateTime;->toLocalDate()Ljava/time/LocalDate;
@@ -12190,58 +38784,244 @@ HSPLjava/time/LocalDateTime;->toLocalDate()Ljava/time/chrono/ChronoLocalDate;
HSPLjava/time/LocalDateTime;->toLocalTime()Ljava/time/LocalTime;
HSPLjava/time/LocalDateTime;->toString()Ljava/lang/String;
HSPLjava/time/LocalDateTime;->with(Ljava/time/LocalDate;Ljava/time/LocalTime;)Ljava/time/LocalDateTime;
+HPLjava/time/LocalDateTime;->withSecond(I)Ljava/time/LocalDateTime;
+PLjava/time/LocalTime$1;-><clinit>()V
HSPLjava/time/LocalTime;-><init>(IIII)V
+PLjava/time/LocalTime;->compareTo(Ljava/time/LocalTime;)I
HSPLjava/time/LocalTime;->create(IIII)Ljava/time/LocalTime;
+PLjava/time/LocalTime;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/LocalTime;
+HPLjava/time/LocalTime;->get0(Ljava/time/temporal/TemporalField;)I
HSPLjava/time/LocalTime;->getHour()I
+HPLjava/time/LocalTime;->getLong(Ljava/time/temporal/TemporalField;)J
HSPLjava/time/LocalTime;->getMinute()I
HSPLjava/time/LocalTime;->getNano()I
+HSPLjava/time/LocalTime;->getSecond()I
+PLjava/time/LocalTime;->isSupported(Ljava/time/temporal/TemporalField;)Z
+HPLjava/time/LocalTime;->now(Ljava/time/Clock;)Ljava/time/LocalTime;
+PLjava/time/LocalTime;->of(II)Ljava/time/LocalTime;
+HPLjava/time/LocalTime;->of(IIII)Ljava/time/LocalTime;
HSPLjava/time/LocalTime;->ofNanoOfDay(J)Ljava/time/LocalTime;
-HSPLjava/time/LocalTime;->ofSecondOfDay(J)Ljava/time/LocalTime;
+PLjava/time/LocalTime;->ofSecondOfDay(J)Ljava/time/LocalTime;
+HPLjava/time/LocalTime;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
HSPLjava/time/LocalTime;->toNanoOfDay()J
HSPLjava/time/LocalTime;->toSecondOfDay()I
HSPLjava/time/LocalTime;->toString()Ljava/lang/String;
-HSPLjava/time/Month;->getValue()I
-HSPLjava/time/Month;->plus(J)Ljava/time/Month;
+HPLjava/time/LocalTime;->until(Ljava/time/temporal/Temporal;Ljava/time/temporal/TemporalUnit;)J
+HPLjava/time/LocalTime;->withSecond(I)Ljava/time/LocalTime;
+PLjava/time/Month;->getValue()I
+PLjava/time/Month;->of(I)Ljava/time/Month;
+PLjava/time/Period;->isZero()Z
HSPLjava/time/ZoneId;-><init>()V
+HSPLjava/time/ZoneId;->equals(Ljava/lang/Object;)Z
+PLjava/time/ZoneId;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZoneId;
HSPLjava/time/ZoneId;->of(Ljava/lang/String;)Ljava/time/ZoneId;
HSPLjava/time/ZoneId;->of(Ljava/lang/String;Ljava/util/Map;)Ljava/time/ZoneId;
HSPLjava/time/ZoneId;->of(Ljava/lang/String;Z)Ljava/time/ZoneId;
HSPLjava/time/ZoneId;->systemDefault()Ljava/time/ZoneId;
+HSPLjava/time/ZoneId;->toString()Ljava/lang/String;
HSPLjava/time/ZoneOffset;-><init>(I)V
HSPLjava/time/ZoneOffset;->buildId(I)Ljava/lang/String;
HSPLjava/time/ZoneOffset;->getId()Ljava/lang/String;
+PLjava/time/ZoneOffset;->getRules()Ljava/time/zone/ZoneRules;
HSPLjava/time/ZoneOffset;->getTotalSeconds()I
HSPLjava/time/ZoneOffset;->ofTotalSeconds(I)Ljava/time/ZoneOffset;
+HSPLjava/time/ZoneOffset;->toString()Ljava/lang/String;
HSPLjava/time/ZoneRegion;-><init>(Ljava/lang/String;Ljava/time/zone/ZoneRules;)V
HSPLjava/time/ZoneRegion;->checkName(Ljava/lang/String;)V
+HSPLjava/time/ZoneRegion;->getId()Ljava/lang/String;
HSPLjava/time/ZoneRegion;->getRules()Ljava/time/zone/ZoneRules;
HSPLjava/time/ZoneRegion;->ofId(Ljava/lang/String;Z)Ljava/time/ZoneRegion;
+PLjava/time/ZonedDateTime$1;-><clinit>()V
HSPLjava/time/ZonedDateTime;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneId;)V
+HSPLjava/time/ZonedDateTime;->create(JILjava/time/ZoneId;)Ljava/time/ZonedDateTime;
+PLjava/time/ZonedDateTime;->format(Ljava/time/format/DateTimeFormatter;)Ljava/lang/String;
+PLjava/time/ZonedDateTime;->from(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->getHour()I
+HPLjava/time/ZonedDateTime;->getLong(Ljava/time/temporal/TemporalField;)J
+HSPLjava/time/ZonedDateTime;->getMinute()I
+HSPLjava/time/ZonedDateTime;->getNano()I
+PLjava/time/ZonedDateTime;->getOffset()Ljava/time/ZoneOffset;
+HSPLjava/time/ZonedDateTime;->getSecond()I
+PLjava/time/ZonedDateTime;->getZone()Ljava/time/ZoneId;
+HPLjava/time/ZonedDateTime;->now()Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->now(Ljava/time/Clock;)Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->now(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
+PLjava/time/ZonedDateTime;->of(Ljava/time/LocalDateTime;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
+HSPLjava/time/ZonedDateTime;->ofInstant(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
+HPLjava/time/ZonedDateTime;->ofLocal(Ljava/time/LocalDateTime;Ljava/time/ZoneId;Ljava/time/ZoneOffset;)Ljava/time/ZonedDateTime;
+PLjava/time/ZonedDateTime;->parse(Ljava/lang/CharSequence;Ljava/time/format/DateTimeFormatter;)Ljava/time/ZonedDateTime;
+HPLjava/time/ZonedDateTime;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
+PLjava/time/ZonedDateTime;->toLocalDate()Ljava/time/LocalDate;
+PLjava/time/ZonedDateTime;->toLocalDate()Ljava/time/chrono/ChronoLocalDate;
+PLjava/time/ZonedDateTime;->toLocalTime()Ljava/time/LocalTime;
+HSPLjava/time/ZonedDateTime;->toString()Ljava/lang/String;
+HSPLjava/time/chrono/AbstractChronology;->equals(Ljava/lang/Object;)Z
+HSPLjava/time/chrono/AbstractChronology;->resolveDate(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+PLjava/time/chrono/ChronoLocalDate;->isSupported(Ljava/time/temporal/TemporalField;)Z
HSPLjava/time/chrono/ChronoLocalDateTime;->toEpochSecond(Ljava/time/ZoneOffset;)J
+PLjava/time/chrono/ChronoZonedDateTime;->getChronology()Ljava/time/chrono/Chronology;
+PLjava/time/chrono/ChronoZonedDateTime;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
+PLjava/time/chrono/ChronoZonedDateTime;->toEpochSecond()J
+PLjava/time/chrono/ChronoZonedDateTime;->toInstant()Ljava/time/Instant;
HSPLjava/time/chrono/IsoChronology;->isLeapYear(J)Z
-HSPLjava/time/temporal/-$$Lambda$TemporalAdjusters$A9OZwfMlHD1vy7-nYt5NssACu7Q;-><init>(I)V
-HSPLjava/time/temporal/-$$Lambda$TemporalAdjusters$A9OZwfMlHD1vy7-nYt5NssACu7Q;->adjustInto(Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
+HSPLjava/time/chrono/IsoChronology;->resolveDate(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/LocalDate;
+HSPLjava/time/chrono/IsoChronology;->resolveDate(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+HSPLjava/time/chrono/IsoChronology;->resolveProlepticMonth(Ljava/util/Map;Ljava/time/format/ResolverStyle;)V
+HSPLjava/time/chrono/IsoChronology;->resolveYMD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/LocalDate;
+HSPLjava/time/chrono/IsoChronology;->resolveYMD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+HSPLjava/time/chrono/IsoChronology;->resolveYearOfEra(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/LocalDate;
+HSPLjava/time/chrono/IsoChronology;->resolveYearOfEra(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
+HPLjava/time/chrono/IsoChronology;->zonedDateTime(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
+HPLjava/time/chrono/IsoChronology;->zonedDateTime(Ljava/time/Instant;Ljava/time/ZoneId;)Ljava/time/chrono/ChronoZonedDateTime;
+PLjava/time/format/-$$Lambda$DateTimeFormatterBuilder$M-GACNxm6552EiylPRPw4dyNXKo;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;
+PLjava/time/format/DateTimeFormatter;-><init>(Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;Ljava/util/Locale;Ljava/time/format/DecimalStyle;Ljava/time/format/ResolverStyle;Ljava/util/Set;Ljava/time/chrono/Chronology;Ljava/time/ZoneId;)V
+HSPLjava/time/format/DateTimeFormatter;->format(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String;
+HSPLjava/time/format/DateTimeFormatter;->formatTo(Ljava/time/temporal/TemporalAccessor;Ljava/lang/Appendable;)V
+HSPLjava/time/format/DateTimeFormatter;->getChronology()Ljava/time/chrono/Chronology;
+HSPLjava/time/format/DateTimeFormatter;->getDecimalStyle()Ljava/time/format/DecimalStyle;
+HSPLjava/time/format/DateTimeFormatter;->getZone()Ljava/time/ZoneId;
+PLjava/time/format/DateTimeFormatter;->ofPattern(Ljava/lang/String;)Ljava/time/format/DateTimeFormatter;
+PLjava/time/format/DateTimeFormatter;->ofPattern(Ljava/lang/String;Ljava/util/Locale;)Ljava/time/format/DateTimeFormatter;
+HSPLjava/time/format/DateTimeFormatter;->parse(Ljava/lang/CharSequence;Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
+HSPLjava/time/format/DateTimeFormatter;->parseResolved0(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/time/temporal/TemporalAccessor;
+HSPLjava/time/format/DateTimeFormatter;->parseUnresolved0(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/time/format/DateTimeParseContext;
+HPLjava/time/format/DateTimeFormatter;->toPrinterParser(Z)Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;
+HPLjava/time/format/DateTimeFormatter;->withZone(Ljava/time/ZoneId;)Ljava/time/format/DateTimeFormatter;
+PLjava/time/format/DateTimeFormatterBuilder$3;-><clinit>()V
+PLjava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;-><init>(C)V
+HPLjava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HSPLjava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+PLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;-><init>(Ljava/util/List;Z)V
+PLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;-><init>([Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;Z)V
+HSPLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HSPLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+HPLjava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->withOptional(Z)Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;
+PLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IIZ)V
+HPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->convertFromFraction(Ljava/math/BigDecimal;)J
+HPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->convertToFraction(J)Ljava/math/BigDecimal;
+HPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HPLjava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+HSPLjava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HPLjava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+PLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IILjava/time/format/SignStyle;)V
+PLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IILjava/time/format/SignStyle;I)V
+PLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->access$000(Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;)Ljava/time/format/SignStyle;
+HPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+PLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->getValue(Ljava/time/format/DateTimePrintContext;J)J
+HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+HSPLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->setValue(Ljava/time/format/DateTimeParseContext;JII)I
+PLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->withFixedWidth()Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;
+PLjava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->withSubsequentWidth(I)Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;
+HPLjava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HPLjava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+HPLjava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->parseNumber([IILjava/lang/CharSequence;Z)Z
+PLjava/time/format/DateTimeFormatterBuilder$PrefixTree;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)V
+PLjava/time/format/DateTimeFormatterBuilder$PrefixTree;->newTree(Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+HPLjava/time/format/DateTimeFormatterBuilder$PrefixTree;->newTree(Ljava/util/Set;Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+HSPLjava/time/format/DateTimeFormatterBuilder$SettingsParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HPLjava/time/format/DateTimeFormatterBuilder$SettingsParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+HPLjava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
+HPLjava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->getTree(Ljava/time/format/DateTimeParseContext;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
+HPLjava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
+PLjava/time/format/DateTimeFormatterBuilder;-><init>()V
+HPLjava/time/format/DateTimeFormatterBuilder;->append(Ljava/time/format/DateTimeFormatter;)Ljava/time/format/DateTimeFormatterBuilder;
+PLjava/time/format/DateTimeFormatterBuilder;->appendFraction(Ljava/time/temporal/TemporalField;IIZ)Ljava/time/format/DateTimeFormatterBuilder;
+PLjava/time/format/DateTimeFormatterBuilder;->appendInternal(Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;)I
+PLjava/time/format/DateTimeFormatterBuilder;->appendLiteral(C)Ljava/time/format/DateTimeFormatterBuilder;
+PLjava/time/format/DateTimeFormatterBuilder;->appendPattern(Ljava/lang/String;)Ljava/time/format/DateTimeFormatterBuilder;
+PLjava/time/format/DateTimeFormatterBuilder;->appendValue(Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;)Ljava/time/format/DateTimeFormatterBuilder;
+PLjava/time/format/DateTimeFormatterBuilder;->appendValue(Ljava/time/temporal/TemporalField;I)Ljava/time/format/DateTimeFormatterBuilder;
+PLjava/time/format/DateTimeFormatterBuilder;->appendValue(Ljava/time/temporal/TemporalField;IILjava/time/format/SignStyle;)Ljava/time/format/DateTimeFormatterBuilder;
+PLjava/time/format/DateTimeFormatterBuilder;->lambda$static$0(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZoneId;
+PLjava/time/format/DateTimeFormatterBuilder;->parseField(CILjava/time/temporal/TemporalField;)V
+PLjava/time/format/DateTimeFormatterBuilder;->parsePattern(Ljava/lang/String;)V
+PLjava/time/format/DateTimeFormatterBuilder;->toFormatter()Ljava/time/format/DateTimeFormatter;
+PLjava/time/format/DateTimeFormatterBuilder;->toFormatter(Ljava/util/Locale;)Ljava/time/format/DateTimeFormatter;
+PLjava/time/format/DateTimeFormatterBuilder;->toFormatter(Ljava/util/Locale;Ljava/time/format/ResolverStyle;Ljava/time/chrono/Chronology;)Ljava/time/format/DateTimeFormatter;
+HSPLjava/time/format/DateTimeParseContext;-><init>(Ljava/time/format/DateTimeFormatter;)V
+PLjava/time/format/DateTimeParseContext;->charEquals(CC)Z
+HPLjava/time/format/DateTimeParseContext;->copy()Ljava/time/format/DateTimeParseContext;
+HSPLjava/time/format/DateTimeParseContext;->currentParsed()Ljava/time/format/Parsed;
+HPLjava/time/format/DateTimeParseContext;->endOptional(Z)V
+HSPLjava/time/format/DateTimeParseContext;->getDecimalStyle()Ljava/time/format/DecimalStyle;
+HSPLjava/time/format/DateTimeParseContext;->getEffectiveChronology()Ljava/time/chrono/Chronology;
+HPLjava/time/format/DateTimeParseContext;->getParsed(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
+PLjava/time/format/DateTimeParseContext;->isCaseSensitive()Z
+HSPLjava/time/format/DateTimeParseContext;->isStrict()Z
+PLjava/time/format/DateTimeParseContext;->setCaseSensitive(Z)V
+PLjava/time/format/DateTimeParseContext;->setParsed(Ljava/time/ZoneId;)V
+HSPLjava/time/format/DateTimeParseContext;->setParsedField(Ljava/time/temporal/TemporalField;JII)I
+HPLjava/time/format/DateTimeParseContext;->startOptional()V
+HPLjava/time/format/DateTimeParseContext;->subSequenceEquals(Ljava/lang/CharSequence;ILjava/lang/CharSequence;II)Z
+HSPLjava/time/format/DateTimeParseContext;->toResolved(Ljava/time/format/ResolverStyle;Ljava/util/Set;)Ljava/time/temporal/TemporalAccessor;
+HSPLjava/time/format/DateTimePrintContext;-><init>(Ljava/time/temporal/TemporalAccessor;Ljava/time/format/DateTimeFormatter;)V
+PLjava/time/format/DateTimePrintContext;->endOptional()V
+PLjava/time/format/DateTimePrintContext;->getDecimalStyle()Ljava/time/format/DecimalStyle;
+PLjava/time/format/DateTimePrintContext;->getValue(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
+PLjava/time/format/DateTimePrintContext;->startOptional()V
+PLjava/time/format/DecimalStyle;->convertNumberToI18N(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/time/format/DecimalStyle;->convertToDigit(C)I
+PLjava/time/format/DecimalStyle;->getDecimalSeparator()C
+HSPLjava/time/format/DecimalStyle;->getNegativeSign()C
+HSPLjava/time/format/DecimalStyle;->getPositiveSign()C
+PLjava/time/format/DecimalStyle;->getZeroDigit()C
+HSPLjava/time/format/Parsed;-><init>()V
+PLjava/time/format/Parsed;->copy()Ljava/time/format/Parsed;
+HSPLjava/time/format/Parsed;->crossCheck()V
+HSPLjava/time/format/Parsed;->crossCheck(Ljava/time/temporal/TemporalAccessor;)V
+HPLjava/time/format/Parsed;->getLong(Ljava/time/temporal/TemporalField;)J
+HPLjava/time/format/Parsed;->isSupported(Ljava/time/temporal/TemporalField;)Z
+HSPLjava/time/format/Parsed;->query(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
+HSPLjava/time/format/Parsed;->resolve(Ljava/time/format/ResolverStyle;Ljava/util/Set;)Ljava/time/temporal/TemporalAccessor;
+HSPLjava/time/format/Parsed;->resolveDateFields()V
+HSPLjava/time/format/Parsed;->resolveFields()V
+HSPLjava/time/format/Parsed;->resolveFractional()V
+HSPLjava/time/format/Parsed;->resolveInstant()V
+HSPLjava/time/format/Parsed;->resolveInstantFields()V
+HSPLjava/time/format/Parsed;->resolvePeriod()V
+HPLjava/time/format/Parsed;->resolveTime(JJJJ)V
+HSPLjava/time/format/Parsed;->resolveTimeFields()V
+HSPLjava/time/format/Parsed;->resolveTimeLenient()V
+PLjava/time/format/Parsed;->updateCheckConflict(Ljava/time/LocalTime;Ljava/time/Period;)V
+HSPLjava/time/format/Parsed;->updateCheckConflict(Ljava/time/chrono/ChronoLocalDate;)V
+PLjava/time/format/SignStyle;->values()[Ljava/time/format/SignStyle;
+PLjava/time/temporal/-$$Lambda$TemporalQueries$PBpYKRiwkxqQNlcU-BOJfaQoONg;->queryFrom(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object;
HSPLjava/time/temporal/ChronoField;->checkValidIntValue(J)I
HSPLjava/time/temporal/ChronoField;->checkValidValue(J)J
+HPLjava/time/temporal/ChronoField;->isDateBased()Z
+HPLjava/time/temporal/ChronoField;->isTimeBased()Z
HSPLjava/time/temporal/ChronoField;->range()Ljava/time/temporal/ValueRange;
-HSPLjava/time/temporal/TemporalAdjusters;->lambda$nextOrSame$10(ILjava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
-HSPLjava/time/temporal/TemporalAdjusters;->nextOrSame(Ljava/time/DayOfWeek;)Ljava/time/temporal/TemporalAdjuster;
+PLjava/time/temporal/ChronoField;->values()[Ljava/time/temporal/ChronoField;
+HSPLjava/time/temporal/ChronoUnit;->getDuration()Ljava/time/Duration;
+PLjava/time/temporal/ChronoUnit;->values()[Ljava/time/temporal/ChronoUnit;
+PLjava/time/temporal/TemporalAccessor;->get(Ljava/time/temporal/TemporalField;)I
+PLjava/time/temporal/TemporalAccessor;->range(Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;
+PLjava/time/temporal/TemporalField;->resolve(Ljava/util/Map;Ljava/time/temporal/TemporalAccessor;Ljava/time/format/ResolverStyle;)Ljava/time/temporal/TemporalAccessor;
+HSPLjava/time/temporal/TemporalQueries;->chronology()Ljava/time/temporal/TemporalQuery;
+PLjava/time/temporal/TemporalQueries;->lambda$static$4(Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZoneId;
+HSPLjava/time/temporal/TemporalQueries;->localDate()Ljava/time/temporal/TemporalQuery;
+HSPLjava/time/temporal/TemporalQueries;->localTime()Ljava/time/temporal/TemporalQuery;
+HSPLjava/time/temporal/TemporalQueries;->offset()Ljava/time/temporal/TemporalQuery;
+HSPLjava/time/temporal/TemporalQueries;->precision()Ljava/time/temporal/TemporalQuery;
+HSPLjava/time/temporal/TemporalQueries;->zone()Ljava/time/temporal/TemporalQuery;
+HSPLjava/time/temporal/TemporalQueries;->zoneId()Ljava/time/temporal/TemporalQuery;
+HPLjava/time/temporal/ValueRange;-><init>(JJJJ)V
HSPLjava/time/temporal/ValueRange;->checkValidIntValue(JLjava/time/temporal/TemporalField;)I
HSPLjava/time/temporal/ValueRange;->checkValidValue(JLjava/time/temporal/TemporalField;)J
HSPLjava/time/temporal/ValueRange;->getMaximum()J
HSPLjava/time/temporal/ValueRange;->getMinimum()J
+PLjava/time/temporal/ValueRange;->isFixed()Z
HSPLjava/time/temporal/ValueRange;->isIntValue()Z
HSPLjava/time/temporal/ValueRange;->isValidIntValue(J)Z
HSPLjava/time/temporal/ValueRange;->isValidValue(J)Z
+HPLjava/time/temporal/ValueRange;->of(JJ)Ljava/time/temporal/ValueRange;
HSPLjava/time/zone/IcuZoneRulesProvider$ZoneRulesCache;->create(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/time/zone/IcuZoneRulesProvider$ZoneRulesCache;->create(Ljava/lang/String;)Ljava/time/zone/ZoneRules;
HSPLjava/time/zone/IcuZoneRulesProvider;->generateZoneRules(Ljava/lang/String;)Ljava/time/zone/ZoneRules;
HSPLjava/time/zone/IcuZoneRulesProvider;->millisToOffset(I)Ljava/time/ZoneOffset;
HSPLjava/time/zone/IcuZoneRulesProvider;->provideRules(Ljava/lang/String;Z)Ljava/time/zone/ZoneRules;
-HSPLjava/time/zone/IcuZoneRulesProvider;->toZoneOffsetTransitionRule(Landroid/icu/util/AnnualTimeZoneRule;I)Ljava/time/zone/ZoneOffsetTransitionRule;
HSPLjava/time/zone/IcuZoneRulesProvider;->verify(ZLjava/lang/String;Ljava/lang/String;)V
HSPLjava/time/zone/ZoneOffsetTransition;-><init>(JLjava/time/ZoneOffset;Ljava/time/ZoneOffset;)V
-HSPLjava/time/zone/ZoneOffsetTransition;-><init>(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)V
HSPLjava/time/zone/ZoneOffsetTransition;->getDateTimeAfter()Ljava/time/LocalDateTime;
HSPLjava/time/zone/ZoneOffsetTransition;->getDateTimeBefore()Ljava/time/LocalDateTime;
HSPLjava/time/zone/ZoneOffsetTransition;->getDurationSeconds()I
@@ -12249,19 +39029,28 @@ HSPLjava/time/zone/ZoneOffsetTransition;->getOffsetAfter()Ljava/time/ZoneOffset;
HSPLjava/time/zone/ZoneOffsetTransition;->getOffsetBefore()Ljava/time/ZoneOffset;
HSPLjava/time/zone/ZoneOffsetTransition;->isGap()Z
HSPLjava/time/zone/ZoneOffsetTransition;->toEpochSecond()J
-HSPLjava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;->createDateTime(Ljava/time/LocalDateTime;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)Ljava/time/LocalDateTime;
-HSPLjava/time/zone/ZoneOffsetTransitionRule;-><init>(Ljava/time/Month;ILjava/time/DayOfWeek;Ljava/time/LocalTime;ZLjava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)V
-HSPLjava/time/zone/ZoneOffsetTransitionRule;->createTransition(I)Ljava/time/zone/ZoneOffsetTransition;
-HSPLjava/time/zone/ZoneOffsetTransitionRule;->of(Ljava/time/Month;ILjava/time/DayOfWeek;Ljava/time/LocalTime;ZLjava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)Ljava/time/zone/ZoneOffsetTransitionRule;
+PLjava/time/zone/ZoneRules;-><init>(Ljava/time/ZoneOffset;)V
HSPLjava/time/zone/ZoneRules;-><init>(Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
-HSPLjava/time/zone/ZoneRules;->findTransitionArray(I)[Ljava/time/zone/ZoneOffsetTransition;
-HSPLjava/time/zone/ZoneRules;->findYear(JLjava/time/ZoneOffset;)I
HSPLjava/time/zone/ZoneRules;->getOffset(Ljava/time/Instant;)Ljava/time/ZoneOffset;
+HPLjava/time/zone/ZoneRules;->getOffsetInfo(Ljava/time/LocalDateTime;)Ljava/lang/Object;
+PLjava/time/zone/ZoneRules;->getValidOffsets(Ljava/time/LocalDateTime;)Ljava/util/List;
+PLjava/time/zone/ZoneRules;->of(Ljava/time/ZoneOffset;)Ljava/time/zone/ZoneRules;
HSPLjava/time/zone/ZoneRules;->of(Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/time/zone/ZoneRules;
+PLjava/time/zone/ZoneRulesProvider;->getAvailableZoneIds()Ljava/util/Set;
HSPLjava/time/zone/ZoneRulesProvider;->getProvider(Ljava/lang/String;)Ljava/time/zone/ZoneRulesProvider;
HSPLjava/time/zone/ZoneRulesProvider;->getRules(Ljava/lang/String;Z)Ljava/time/zone/ZoneRules;
+HPLjava/util/-$$Lambda$Comparator$4V5k8aLimtS0VsEILEAqQ9UGZYo;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLjava/util/-$$Lambda$Comparator$BZSVCoA8i87ehjxxZ1weEounfDQ;-><init>(Ljava/util/Comparator;Ljava/util/Comparator;)V
+PLjava/util/-$$Lambda$Comparator$BZSVCoA8i87ehjxxZ1weEounfDQ;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLjava/util/-$$Lambda$Comparator$DNgpxUFZqmT4lOBzlVyPjWwvEvw;-><init>(Ljava/util/function/ToIntFunction;)V
+HSPLjava/util/-$$Lambda$Comparator$DNgpxUFZqmT4lOBzlVyPjWwvEvw;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLjava/util/-$$Lambda$Comparator$SPB8K9Yj7Pw1mljm7LpasV7zxWw;-><init>(Ljava/util/function/Function;)V
+HPLjava/util/-$$Lambda$Comparator$SPB8K9Yj7Pw1mljm7LpasV7zxWw;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLjava/util/-$$Lambda$Comparator$edSxqANnwdmzeJ1aMMcwJWE2wII;-><init>(Ljava/util/function/ToDoubleFunction;)V
+PLjava/util/-$$Lambda$Comparator$edSxqANnwdmzeJ1aMMcwJWE2wII;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLjava/util/AbstractCollection;-><init>()V
HSPLjava/util/AbstractCollection;->addAll(Ljava/util/Collection;)Z
+PLjava/util/AbstractCollection;->clear()V
HSPLjava/util/AbstractCollection;->contains(Ljava/lang/Object;)Z
HSPLjava/util/AbstractCollection;->containsAll(Ljava/util/Collection;)Z
HSPLjava/util/AbstractCollection;->isEmpty()Z
@@ -12277,36 +39066,58 @@ HSPLjava/util/AbstractList$Itr;->checkForComodification()V
HSPLjava/util/AbstractList$Itr;->hasNext()Z
HSPLjava/util/AbstractList$Itr;->next()Ljava/lang/Object;
HSPLjava/util/AbstractList$ListItr;-><init>(Ljava/util/AbstractList;I)V
+HSPLjava/util/AbstractList$ListItr;->hasPrevious()Z
HSPLjava/util/AbstractList$ListItr;->nextIndex()I
+HSPLjava/util/AbstractList$ListItr;->previous()Ljava/lang/Object;
+PLjava/util/AbstractList$ListItr;->previousIndex()I
HSPLjava/util/AbstractList;-><init>()V
HSPLjava/util/AbstractList;->add(Ljava/lang/Object;)Z
HSPLjava/util/AbstractList;->clear()V
HSPLjava/util/AbstractList;->equals(Ljava/lang/Object;)Z
HSPLjava/util/AbstractList;->hashCode()I
+HPLjava/util/AbstractList;->indexOf(Ljava/lang/Object;)I
HSPLjava/util/AbstractList;->iterator()Ljava/util/Iterator;
HSPLjava/util/AbstractList;->listIterator()Ljava/util/ListIterator;
HSPLjava/util/AbstractList;->listIterator(I)Ljava/util/ListIterator;
HSPLjava/util/AbstractList;->rangeCheckForAdd(I)V
HSPLjava/util/AbstractList;->subList(II)Ljava/util/List;
+HPLjava/util/AbstractMap$2$1;-><init>(Ljava/util/AbstractMap$2;)V
+PLjava/util/AbstractMap$2$1;->hasNext()Z
+PLjava/util/AbstractMap$2$1;->next()Ljava/lang/Object;
+HPLjava/util/AbstractMap$2;-><init>(Ljava/util/AbstractMap;)V
+HPLjava/util/AbstractMap$2;->isEmpty()Z
+PLjava/util/AbstractMap$2;->iterator()Ljava/util/Iterator;
+HSPLjava/util/AbstractMap$SimpleEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLjava/util/AbstractMap$SimpleEntry;->equals(Ljava/lang/Object;)Z
+HSPLjava/util/AbstractMap$SimpleEntry;->getKey()Ljava/lang/Object;
+HSPLjava/util/AbstractMap$SimpleEntry;->getValue()Ljava/lang/Object;
+HPLjava/util/AbstractMap$SimpleEntry;->hashCode()I
HSPLjava/util/AbstractMap$SimpleImmutableEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
HSPLjava/util/AbstractMap$SimpleImmutableEntry;-><init>(Ljava/util/Map$Entry;)V
+HSPLjava/util/AbstractMap$SimpleImmutableEntry;->equals(Ljava/lang/Object;)Z
HSPLjava/util/AbstractMap$SimpleImmutableEntry;->getKey()Ljava/lang/Object;
HSPLjava/util/AbstractMap$SimpleImmutableEntry;->getValue()Ljava/lang/Object;
HSPLjava/util/AbstractMap$SimpleImmutableEntry;->hashCode()I
HSPLjava/util/AbstractMap;-><init>()V
+HSPLjava/util/AbstractMap;->access$000(Ljava/lang/Object;Ljava/lang/Object;)Z
HSPLjava/util/AbstractMap;->clear()V
HSPLjava/util/AbstractMap;->clone()Ljava/lang/Object;
+HSPLjava/util/AbstractMap;->eq(Ljava/lang/Object;Ljava/lang/Object;)Z
HSPLjava/util/AbstractMap;->equals(Ljava/lang/Object;)Z
HSPLjava/util/AbstractMap;->hashCode()I
HSPLjava/util/AbstractMap;->isEmpty()Z
HSPLjava/util/AbstractMap;->putAll(Ljava/util/Map;)V
+HPLjava/util/AbstractMap;->size()I
HSPLjava/util/AbstractMap;->toString()Ljava/lang/String;
+PLjava/util/AbstractMap;->values()Ljava/util/Collection;
HSPLjava/util/AbstractQueue;-><init>()V
HSPLjava/util/AbstractQueue;->add(Ljava/lang/Object;)Z
+HPLjava/util/AbstractQueue;->addAll(Ljava/util/Collection;)Z
HSPLjava/util/AbstractQueue;->clear()V
HSPLjava/util/AbstractQueue;->remove()Ljava/lang/Object;
HSPLjava/util/AbstractSequentialList;-><init>()V
HSPLjava/util/AbstractSequentialList;->iterator()Ljava/util/Iterator;
+HPLjava/util/AbstractSequentialList;->remove(I)Ljava/lang/Object;
HSPLjava/util/AbstractSet;-><init>()V
HSPLjava/util/AbstractSet;->equals(Ljava/lang/Object;)Z
HSPLjava/util/AbstractSet;->hashCode()I
@@ -12316,20 +39127,29 @@ HSPLjava/util/ArrayDeque$DeqIterator;-><init>(Ljava/util/ArrayDeque;Ljava/util/A
HSPLjava/util/ArrayDeque$DeqIterator;->hasNext()Z
HSPLjava/util/ArrayDeque$DeqIterator;->next()Ljava/lang/Object;
HSPLjava/util/ArrayDeque$DeqIterator;->remove()V
+HSPLjava/util/ArrayDeque$DescendingIterator;-><init>(Ljava/util/ArrayDeque;)V
+HSPLjava/util/ArrayDeque$DescendingIterator;-><init>(Ljava/util/ArrayDeque;Ljava/util/ArrayDeque$1;)V
+HSPLjava/util/ArrayDeque$DescendingIterator;->hasNext()Z
+HSPLjava/util/ArrayDeque$DescendingIterator;->next()Ljava/lang/Object;
HSPLjava/util/ArrayDeque;-><init>()V
HSPLjava/util/ArrayDeque;-><init>(I)V
+HSPLjava/util/ArrayDeque;-><init>(Ljava/util/Collection;)V
HSPLjava/util/ArrayDeque;->add(Ljava/lang/Object;)Z
HSPLjava/util/ArrayDeque;->addFirst(Ljava/lang/Object;)V
HSPLjava/util/ArrayDeque;->addLast(Ljava/lang/Object;)V
HSPLjava/util/ArrayDeque;->allocateElements(I)V
HSPLjava/util/ArrayDeque;->checkInvariants()V
HSPLjava/util/ArrayDeque;->clear()V
+HSPLjava/util/ArrayDeque;->contains(Ljava/lang/Object;)Z
HSPLjava/util/ArrayDeque;->delete(I)Z
+HSPLjava/util/ArrayDeque;->descendingIterator()Ljava/util/Iterator;
HSPLjava/util/ArrayDeque;->doubleCapacity()V
-HPLjava/util/ArrayDeque;->getFirst()Ljava/lang/Object;
+HSPLjava/util/ArrayDeque;->getFirst()Ljava/lang/Object;
+HSPLjava/util/ArrayDeque;->getLast()Ljava/lang/Object;
HSPLjava/util/ArrayDeque;->isEmpty()Z
HSPLjava/util/ArrayDeque;->iterator()Ljava/util/Iterator;
HSPLjava/util/ArrayDeque;->offer(Ljava/lang/Object;)Z
+HSPLjava/util/ArrayDeque;->offerFirst(Ljava/lang/Object;)Z
HSPLjava/util/ArrayDeque;->offerLast(Ljava/lang/Object;)Z
HSPLjava/util/ArrayDeque;->peek()Ljava/lang/Object;
HSPLjava/util/ArrayDeque;->peekFirst()Ljava/lang/Object;
@@ -12346,6 +39166,7 @@ HSPLjava/util/ArrayDeque;->removeFirstOccurrence(Ljava/lang/Object;)Z
HSPLjava/util/ArrayDeque;->removeLast()Ljava/lang/Object;
HSPLjava/util/ArrayDeque;->size()I
HSPLjava/util/ArrayDeque;->toArray()[Ljava/lang/Object;
+HPLjava/util/ArrayDeque;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
HSPLjava/util/ArrayList$ArrayListSpliterator;-><init>(Ljava/util/ArrayList;III)V
HSPLjava/util/ArrayList$ArrayListSpliterator;->characteristics()I
HSPLjava/util/ArrayList$ArrayListSpliterator;->estimateSize()J
@@ -12360,6 +39181,8 @@ HSPLjava/util/ArrayList$Itr;->remove()V
HSPLjava/util/ArrayList$ListItr;-><init>(Ljava/util/ArrayList;I)V
HSPLjava/util/ArrayList$ListItr;->hasPrevious()Z
HSPLjava/util/ArrayList$ListItr;->nextIndex()I
+HSPLjava/util/ArrayList$ListItr;->previous()Ljava/lang/Object;
+HSPLjava/util/ArrayList$ListItr;->set(Ljava/lang/Object;)V
HSPLjava/util/ArrayList$SubList$1;-><init>(Ljava/util/ArrayList$SubList;II)V
HSPLjava/util/ArrayList$SubList$1;->hasNext()Z
HSPLjava/util/ArrayList$SubList$1;->next()Ljava/lang/Object;
@@ -12392,13 +39215,16 @@ HSPLjava/util/ArrayList;->grow(I)V
HSPLjava/util/ArrayList;->indexOf(Ljava/lang/Object;)I
HSPLjava/util/ArrayList;->isEmpty()Z
HSPLjava/util/ArrayList;->iterator()Ljava/util/Iterator;
+HSPLjava/util/ArrayList;->lastIndexOf(Ljava/lang/Object;)I
HSPLjava/util/ArrayList;->listIterator()Ljava/util/ListIterator;
HSPLjava/util/ArrayList;->listIterator(I)Ljava/util/ListIterator;
+HSPLjava/util/ArrayList;->readObject(Ljava/io/ObjectInputStream;)V
HSPLjava/util/ArrayList;->remove(I)Ljava/lang/Object;
HSPLjava/util/ArrayList;->remove(Ljava/lang/Object;)Z
HSPLjava/util/ArrayList;->removeAll(Ljava/util/Collection;)Z
-HSPLjava/util/ArrayList;->removeIf(Ljava/util/function/Predicate;)Z
+HPLjava/util/ArrayList;->removeIf(Ljava/util/function/Predicate;)Z
HSPLjava/util/ArrayList;->removeRange(II)V
+HSPLjava/util/ArrayList;->retainAll(Ljava/util/Collection;)Z
HSPLjava/util/ArrayList;->set(ILjava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/ArrayList;->size()I
HSPLjava/util/ArrayList;->sort(Ljava/util/Comparator;)V
@@ -12407,17 +39233,25 @@ HSPLjava/util/ArrayList;->subList(II)Ljava/util/List;
HSPLjava/util/ArrayList;->subListRangeCheck(III)V
HSPLjava/util/ArrayList;->toArray()[Ljava/lang/Object;
HSPLjava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
+HSPLjava/util/ArrayList;->trimToSize()V
+HSPLjava/util/ArrayList;->writeObject(Ljava/io/ObjectOutputStream;)V
HSPLjava/util/Arrays$ArrayList;-><init>([Ljava/lang/Object;)V
HSPLjava/util/Arrays$ArrayList;->contains(Ljava/lang/Object;)Z
HSPLjava/util/Arrays$ArrayList;->get(I)Ljava/lang/Object;
HSPLjava/util/Arrays$ArrayList;->indexOf(Ljava/lang/Object;)I
+HSPLjava/util/Arrays$ArrayList;->set(ILjava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/Arrays$ArrayList;->size()I
+HSPLjava/util/Arrays$ArrayList;->sort(Ljava/util/Comparator;)V
+PLjava/util/Arrays$ArrayList;->spliterator()Ljava/util/Spliterator;
HSPLjava/util/Arrays$ArrayList;->toArray()[Ljava/lang/Object;
HSPLjava/util/Arrays$ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
HSPLjava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
HSPLjava/util/Arrays;->binarySearch([CC)I
+HSPLjava/util/Arrays;->binarySearch([II)I
HSPLjava/util/Arrays;->binarySearch([IIII)I
+HSPLjava/util/Arrays;->binarySearch([JIIJ)I
HSPLjava/util/Arrays;->binarySearch([JJ)I
+PLjava/util/Arrays;->binarySearch([Ljava/lang/Object;IILjava/lang/Object;Ljava/util/Comparator;)I
HSPLjava/util/Arrays;->binarySearch([Ljava/lang/Object;Ljava/lang/Object;)I
HSPLjava/util/Arrays;->binarySearch([Ljava/lang/Object;Ljava/lang/Object;Ljava/util/Comparator;)I
HSPLjava/util/Arrays;->binarySearch0([CIIC)I
@@ -12427,30 +39261,45 @@ HSPLjava/util/Arrays;->binarySearch0([Ljava/lang/Object;IILjava/lang/Object;)I
HSPLjava/util/Arrays;->binarySearch0([Ljava/lang/Object;IILjava/lang/Object;Ljava/util/Comparator;)I
HSPLjava/util/Arrays;->copyOf([BI)[B
HSPLjava/util/Arrays;->copyOf([CI)[C
+HSPLjava/util/Arrays;->copyOf([DI)[D
HSPLjava/util/Arrays;->copyOf([FI)[F
HSPLjava/util/Arrays;->copyOf([II)[I
HSPLjava/util/Arrays;->copyOf([JI)[J
HSPLjava/util/Arrays;->copyOf([Ljava/lang/Object;I)[Ljava/lang/Object;
HSPLjava/util/Arrays;->copyOf([Ljava/lang/Object;ILjava/lang/Class;)[Ljava/lang/Object;
+HPLjava/util/Arrays;->copyOf([ZI)[Z
HSPLjava/util/Arrays;->copyOfRange([BII)[B
HSPLjava/util/Arrays;->copyOfRange([CII)[C
+HSPLjava/util/Arrays;->copyOfRange([III)[I
+HPLjava/util/Arrays;->copyOfRange([JII)[J
HSPLjava/util/Arrays;->copyOfRange([Ljava/lang/Object;II)[Ljava/lang/Object;
HSPLjava/util/Arrays;->copyOfRange([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object;
+HSPLjava/util/Arrays;->deepEquals([Ljava/lang/Object;[Ljava/lang/Object;)Z
+HSPLjava/util/Arrays;->deepEquals0(Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLjava/util/Arrays;->deepHashCode([Ljava/lang/Object;)I
+HSPLjava/util/Arrays;->deepToString([Ljava/lang/Object;)Ljava/lang/String;
+HSPLjava/util/Arrays;->deepToString([Ljava/lang/Object;Ljava/lang/StringBuilder;Ljava/util/Set;)V
HSPLjava/util/Arrays;->equals([B[B)Z
+HSPLjava/util/Arrays;->equals([F[F)Z
HSPLjava/util/Arrays;->equals([I[I)Z
+HSPLjava/util/Arrays;->equals([J[J)Z
HSPLjava/util/Arrays;->equals([Ljava/lang/Object;[Ljava/lang/Object;)Z
+PLjava/util/Arrays;->equals([Z[Z)Z
HSPLjava/util/Arrays;->fill([BB)V
HSPLjava/util/Arrays;->fill([BIIB)V
HSPLjava/util/Arrays;->fill([CC)V
HSPLjava/util/Arrays;->fill([CIIC)V
HSPLjava/util/Arrays;->fill([DD)V
HSPLjava/util/Arrays;->fill([FF)V
+HPLjava/util/Arrays;->fill([FIIF)V
HSPLjava/util/Arrays;->fill([II)V
HSPLjava/util/Arrays;->fill([IIII)V
+PLjava/util/Arrays;->fill([JIIJ)V
HSPLjava/util/Arrays;->fill([JJ)V
HSPLjava/util/Arrays;->fill([Ljava/lang/Object;IILjava/lang/Object;)V
HSPLjava/util/Arrays;->fill([Ljava/lang/Object;Ljava/lang/Object;)V
HSPLjava/util/Arrays;->fill([SS)V
+HSPLjava/util/Arrays;->fill([ZIIZ)V
HSPLjava/util/Arrays;->fill([ZZ)V
HSPLjava/util/Arrays;->hashCode([B)I
HSPLjava/util/Arrays;->hashCode([I)I
@@ -12458,57 +39307,93 @@ HSPLjava/util/Arrays;->hashCode([J)I
HSPLjava/util/Arrays;->hashCode([Ljava/lang/Object;)I
HSPLjava/util/Arrays;->rangeCheck(III)V
HSPLjava/util/Arrays;->sort([C)V
+PLjava/util/Arrays;->sort([F)V
HSPLjava/util/Arrays;->sort([I)V
+HSPLjava/util/Arrays;->sort([III)V
HSPLjava/util/Arrays;->sort([J)V
HSPLjava/util/Arrays;->sort([Ljava/lang/Object;)V
HSPLjava/util/Arrays;->sort([Ljava/lang/Object;II)V
HSPLjava/util/Arrays;->sort([Ljava/lang/Object;IILjava/util/Comparator;)V
HSPLjava/util/Arrays;->sort([Ljava/lang/Object;Ljava/util/Comparator;)V
+HSPLjava/util/Arrays;->spliterator([III)Ljava/util/Spliterator$OfInt;
HSPLjava/util/Arrays;->spliterator([Ljava/lang/Object;II)Ljava/util/Spliterator;
+HSPLjava/util/Arrays;->stream([I)Ljava/util/stream/IntStream;
+HSPLjava/util/Arrays;->stream([III)Ljava/util/stream/IntStream;
HSPLjava/util/Arrays;->stream([Ljava/lang/Object;)Ljava/util/stream/Stream;
HSPLjava/util/Arrays;->stream([Ljava/lang/Object;II)Ljava/util/stream/Stream;
-HPLjava/util/Arrays;->toString([B)Ljava/lang/String;
+HSPLjava/util/Arrays;->toString([B)Ljava/lang/String;
+HPLjava/util/Arrays;->toString([D)Ljava/lang/String;
+HPLjava/util/Arrays;->toString([F)Ljava/lang/String;
HSPLjava/util/Arrays;->toString([I)Ljava/lang/String;
+HSPLjava/util/Arrays;->toString([J)Ljava/lang/String;
HSPLjava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String;
+HSPLjava/util/Arrays;->toString([Z)Ljava/lang/String;
HSPLjava/util/Base64$Decoder;->decode(Ljava/lang/String;)[B
HSPLjava/util/Base64$Decoder;->decode([B)[B
HSPLjava/util/Base64$Decoder;->decode0([BII[B)I
HSPLjava/util/Base64$Decoder;->outLength([BII)I
+HSPLjava/util/Base64$Encoder;->encode([B)[B
+HSPLjava/util/Base64$Encoder;->encode0([BII[B)I
+HSPLjava/util/Base64$Encoder;->encodeToString([B)Ljava/lang/String;
+HSPLjava/util/Base64$Encoder;->outLength(I)I
+HSPLjava/util/Base64;->getDecoder()Ljava/util/Base64$Decoder;
+HSPLjava/util/Base64;->getEncoder()Ljava/util/Base64$Encoder;
+HSPLjava/util/Base64;->getMimeDecoder()Ljava/util/Base64$Decoder;
HSPLjava/util/BitSet;-><init>()V
HSPLjava/util/BitSet;-><init>(I)V
-HPLjava/util/BitSet;->cardinality()I
+HPLjava/util/BitSet;-><init>([J)V
+HSPLjava/util/BitSet;->andNot(Ljava/util/BitSet;)V
+HSPLjava/util/BitSet;->cardinality()I
HSPLjava/util/BitSet;->checkInvariants()V
HSPLjava/util/BitSet;->checkRange(II)V
HSPLjava/util/BitSet;->clear()V
HSPLjava/util/BitSet;->clear(I)V
+HPLjava/util/BitSet;->clear(II)V
HSPLjava/util/BitSet;->clone()Ljava/lang/Object;
HSPLjava/util/BitSet;->ensureCapacity(I)V
+HPLjava/util/BitSet;->equals(Ljava/lang/Object;)Z
HSPLjava/util/BitSet;->expandTo(I)V
+HPLjava/util/BitSet;->flip(II)V
HSPLjava/util/BitSet;->get(I)Z
HSPLjava/util/BitSet;->initWords(I)V
+HSPLjava/util/BitSet;->intersects(Ljava/util/BitSet;)Z
HSPLjava/util/BitSet;->isEmpty()Z
-HSPLjava/util/BitSet;->length()I
+HPLjava/util/BitSet;->length()I
HSPLjava/util/BitSet;->nextClearBit(I)I
HSPLjava/util/BitSet;->nextSetBit(I)I
HSPLjava/util/BitSet;->or(Ljava/util/BitSet;)V
HSPLjava/util/BitSet;->recalculateWordsInUse()V
HSPLjava/util/BitSet;->set(I)V
HSPLjava/util/BitSet;->set(II)V
+HPLjava/util/BitSet;->set(IIZ)V
HSPLjava/util/BitSet;->set(IZ)V
+PLjava/util/BitSet;->size()I
+HPLjava/util/BitSet;->toByteArray()[B
HSPLjava/util/BitSet;->toString()Ljava/lang/String;
+HSPLjava/util/BitSet;->trimToSize()V
+HPLjava/util/BitSet;->valueOf(Ljava/nio/ByteBuffer;)Ljava/util/BitSet;
+PLjava/util/BitSet;->valueOf([B)Ljava/util/BitSet;
+PLjava/util/BitSet;->valueOf([J)Ljava/util/BitSet;
HSPLjava/util/BitSet;->wordIndex(I)I
-PLjava/util/Calendar;-><init>()V
+HSPLjava/util/Calendar;-><init>()V
HSPLjava/util/Calendar;-><init>(Ljava/util/TimeZone;Ljava/util/Locale;)V
+PLjava/util/Calendar;->after(Ljava/lang/Object;)Z
HSPLjava/util/Calendar;->aggregateStamp(II)I
+PLjava/util/Calendar;->before(Ljava/lang/Object;)Z
HSPLjava/util/Calendar;->clear()V
-HSPLjava/util/Calendar;->clone()Ljava/lang/Object;
+HPLjava/util/Calendar;->clear(I)V
+HPLjava/util/Calendar;->clone()Ljava/lang/Object;
+PLjava/util/Calendar;->compareTo(J)I
+PLjava/util/Calendar;->compareTo(Ljava/util/Calendar;)I
HSPLjava/util/Calendar;->complete()V
HSPLjava/util/Calendar;->createCalendar(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
HSPLjava/util/Calendar;->get(I)I
HSPLjava/util/Calendar;->getFirstDayOfWeek()I
HSPLjava/util/Calendar;->getInstance()Ljava/util/Calendar;
+HPLjava/util/Calendar;->getInstance(Ljava/util/Locale;)Ljava/util/Calendar;
HSPLjava/util/Calendar;->getInstance(Ljava/util/TimeZone;)Ljava/util/Calendar;
HSPLjava/util/Calendar;->getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;
+HPLjava/util/Calendar;->getMillisOf(Ljava/util/Calendar;)J
HSPLjava/util/Calendar;->getMinimalDaysInFirstWeek()I
HSPLjava/util/Calendar;->getSetStateFields()I
HSPLjava/util/Calendar;->getTime()Ljava/util/Date;
@@ -12517,6 +39402,7 @@ HSPLjava/util/Calendar;->getTimeZone()Ljava/util/TimeZone;
HSPLjava/util/Calendar;->getZone()Ljava/util/TimeZone;
HSPLjava/util/Calendar;->internalGet(I)I
HSPLjava/util/Calendar;->internalSet(II)V
+HSPLjava/util/Calendar;->isExternallySet(I)Z
HSPLjava/util/Calendar;->isFieldSet(II)Z
HSPLjava/util/Calendar;->isLenient()Z
HSPLjava/util/Calendar;->isPartiallyNormalized()Z
@@ -12533,35 +39419,47 @@ HSPLjava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V
HSPLjava/util/Calendar;->setWeekCountData(Ljava/util/Locale;)V
HSPLjava/util/Calendar;->setZoneShared(Z)V
HSPLjava/util/Calendar;->updateTime()V
+HSPLjava/util/Collection;->removeIf(Ljava/util/function/Predicate;)Z
+HSPLjava/util/Collection;->spliterator()Ljava/util/Spliterator;
HSPLjava/util/Collection;->stream()Ljava/util/stream/Stream;
HSPLjava/util/Collections$1;-><init>(Ljava/lang/Object;)V
HSPLjava/util/Collections$1;->hasNext()Z
HSPLjava/util/Collections$1;->next()Ljava/lang/Object;
HSPLjava/util/Collections$3;-><init>(Ljava/util/Collection;)V
HSPLjava/util/Collections$3;->hasMoreElements()Z
+HSPLjava/util/Collections$3;->nextElement()Ljava/lang/Object;
HSPLjava/util/Collections$CopiesList;-><init>(ILjava/lang/Object;)V
HSPLjava/util/Collections$CopiesList;->get(I)Ljava/lang/Object;
HSPLjava/util/Collections$CopiesList;->size()I
HSPLjava/util/Collections$CopiesList;->toArray()[Ljava/lang/Object;
HSPLjava/util/Collections$EmptyEnumeration;->hasMoreElements()Z
HSPLjava/util/Collections$EmptyIterator;->hasNext()Z
+HSPLjava/util/Collections$EmptyList;->contains(Ljava/lang/Object;)Z
+HSPLjava/util/Collections$EmptyList;->containsAll(Ljava/util/Collection;)Z
HSPLjava/util/Collections$EmptyList;->equals(Ljava/lang/Object;)Z
HSPLjava/util/Collections$EmptyList;->isEmpty()Z
HSPLjava/util/Collections$EmptyList;->iterator()Ljava/util/Iterator;
-HSPLjava/util/Collections$EmptyList;->listIterator()Ljava/util/ListIterator;
+PLjava/util/Collections$EmptyList;->listIterator()Ljava/util/ListIterator;
+HSPLjava/util/Collections$EmptyList;->readResolve()Ljava/lang/Object;
HSPLjava/util/Collections$EmptyList;->size()I
HSPLjava/util/Collections$EmptyList;->toArray()[Ljava/lang/Object;
+PLjava/util/Collections$EmptyList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
+HSPLjava/util/Collections$EmptyMap;->containsKey(Ljava/lang/Object;)Z
+HSPLjava/util/Collections$EmptyMap;->containsValue(Ljava/lang/Object;)Z
HSPLjava/util/Collections$EmptyMap;->entrySet()Ljava/util/Set;
+HSPLjava/util/Collections$EmptyMap;->equals(Ljava/lang/Object;)Z
HSPLjava/util/Collections$EmptyMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/Collections$EmptyMap;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/Collections$EmptyMap;->isEmpty()Z
HSPLjava/util/Collections$EmptyMap;->keySet()Ljava/util/Set;
HSPLjava/util/Collections$EmptyMap;->size()I
HSPLjava/util/Collections$EmptyMap;->values()Ljava/util/Collection;
HSPLjava/util/Collections$EmptySet;->contains(Ljava/lang/Object;)Z
+HSPLjava/util/Collections$EmptySet;->containsAll(Ljava/util/Collection;)Z
HSPLjava/util/Collections$EmptySet;->isEmpty()Z
HSPLjava/util/Collections$EmptySet;->iterator()Ljava/util/Iterator;
HSPLjava/util/Collections$EmptySet;->size()I
-HPLjava/util/Collections$EmptySet;->toArray()[Ljava/lang/Object;
+HSPLjava/util/Collections$EmptySet;->toArray()[Ljava/lang/Object;
HSPLjava/util/Collections$EmptySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
HSPLjava/util/Collections$ReverseComparator2;-><init>(Ljava/util/Comparator;)V
HSPLjava/util/Collections$ReverseComparator2;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
@@ -12575,17 +39473,22 @@ HSPLjava/util/Collections$SetFromMap;->isEmpty()Z
HSPLjava/util/Collections$SetFromMap;->iterator()Ljava/util/Iterator;
HSPLjava/util/Collections$SetFromMap;->remove(Ljava/lang/Object;)Z
HSPLjava/util/Collections$SetFromMap;->size()I
+HPLjava/util/Collections$SetFromMap;->stream()Ljava/util/stream/Stream;
HSPLjava/util/Collections$SetFromMap;->toArray()[Ljava/lang/Object;
HSPLjava/util/Collections$SetFromMap;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
HSPLjava/util/Collections$SingletonList;-><init>(Ljava/lang/Object;)V
+HSPLjava/util/Collections$SingletonList;->contains(Ljava/lang/Object;)Z
HSPLjava/util/Collections$SingletonList;->get(I)Ljava/lang/Object;
HSPLjava/util/Collections$SingletonList;->iterator()Ljava/util/Iterator;
HSPLjava/util/Collections$SingletonList;->size()I
HSPLjava/util/Collections$SingletonMap;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLjava/util/Collections$SingletonMap;->containsKey(Ljava/lang/Object;)Z
HSPLjava/util/Collections$SingletonMap;->entrySet()Ljava/util/Set;
HSPLjava/util/Collections$SingletonMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/Collections$SingletonMap;->isEmpty()Z
HSPLjava/util/Collections$SingletonMap;->keySet()Ljava/util/Set;
HSPLjava/util/Collections$SingletonMap;->size()I
+HSPLjava/util/Collections$SingletonMap;->values()Ljava/util/Collection;
HSPLjava/util/Collections$SingletonSet;-><init>(Ljava/lang/Object;)V
HSPLjava/util/Collections$SingletonSet;->contains(Ljava/lang/Object;)Z
HSPLjava/util/Collections$SingletonSet;->iterator()Ljava/util/Iterator;
@@ -12593,27 +39496,41 @@ HSPLjava/util/Collections$SingletonSet;->size()I
HSPLjava/util/Collections$SynchronizedCollection;-><init>(Ljava/util/Collection;)V
HSPLjava/util/Collections$SynchronizedCollection;-><init>(Ljava/util/Collection;Ljava/lang/Object;)V
HSPLjava/util/Collections$SynchronizedCollection;->add(Ljava/lang/Object;)Z
+HSPLjava/util/Collections$SynchronizedCollection;->addAll(Ljava/util/Collection;)Z
HSPLjava/util/Collections$SynchronizedCollection;->clear()V
HSPLjava/util/Collections$SynchronizedCollection;->contains(Ljava/lang/Object;)Z
HSPLjava/util/Collections$SynchronizedCollection;->isEmpty()Z
HSPLjava/util/Collections$SynchronizedCollection;->iterator()Ljava/util/Iterator;
HSPLjava/util/Collections$SynchronizedCollection;->remove(Ljava/lang/Object;)Z
HSPLjava/util/Collections$SynchronizedCollection;->size()I
+HPLjava/util/Collections$SynchronizedCollection;->stream()Ljava/util/stream/Stream;
HSPLjava/util/Collections$SynchronizedCollection;->toArray()[Ljava/lang/Object;
HSPLjava/util/Collections$SynchronizedCollection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
HSPLjava/util/Collections$SynchronizedList;-><init>(Ljava/util/List;)V
+HSPLjava/util/Collections$SynchronizedList;->add(ILjava/lang/Object;)V
HSPLjava/util/Collections$SynchronizedList;->get(I)Ljava/lang/Object;
+HSPLjava/util/Collections$SynchronizedList;->remove(I)Ljava/lang/Object;
+HPLjava/util/Collections$SynchronizedList;->set(ILjava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/Collections$SynchronizedMap;-><init>(Ljava/util/Map;)V
+HSPLjava/util/Collections$SynchronizedMap;->clear()V
HSPLjava/util/Collections$SynchronizedMap;->containsKey(Ljava/lang/Object;)Z
+HSPLjava/util/Collections$SynchronizedMap;->entrySet()Ljava/util/Set;
HSPLjava/util/Collections$SynchronizedMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
-HPLjava/util/Collections$SynchronizedMap;->isEmpty()Z
+PLjava/util/Collections$SynchronizedMap;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/Collections$SynchronizedMap;->isEmpty()Z
+HSPLjava/util/Collections$SynchronizedMap;->keySet()Ljava/util/Set;
HSPLjava/util/Collections$SynchronizedMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/Collections$SynchronizedMap;->putAll(Ljava/util/Map;)V
HSPLjava/util/Collections$SynchronizedMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/Collections$SynchronizedMap;->size()I
HSPLjava/util/Collections$SynchronizedMap;->values()Ljava/util/Collection;
HSPLjava/util/Collections$SynchronizedRandomAccessList;-><init>(Ljava/util/List;)V
HSPLjava/util/Collections$SynchronizedSet;-><init>(Ljava/util/Set;)V
HSPLjava/util/Collections$SynchronizedSet;-><init>(Ljava/util/Set;Ljava/lang/Object;)V
-PLjava/util/Collections$SynchronizedSet;->equals(Ljava/lang/Object;)Z
+HPLjava/util/Collections$SynchronizedSet;->equals(Ljava/lang/Object;)Z
+HSPLjava/util/Collections$SynchronizedSortedMap;-><init>(Ljava/util/SortedMap;)V
+HSPLjava/util/Collections$SynchronizedSortedMap;->comparator()Ljava/util/Comparator;
+HSPLjava/util/Collections$SynchronizedSortedSet;-><init>(Ljava/util/SortedSet;)V
HSPLjava/util/Collections$UnmodifiableCollection$1;-><init>(Ljava/util/Collections$UnmodifiableCollection;)V
HSPLjava/util/Collections$UnmodifiableCollection$1;->hasNext()Z
HSPLjava/util/Collections$UnmodifiableCollection$1;->next()Ljava/lang/Object;
@@ -12623,6 +39540,7 @@ HSPLjava/util/Collections$UnmodifiableCollection;->containsAll(Ljava/util/Collec
HSPLjava/util/Collections$UnmodifiableCollection;->isEmpty()Z
HSPLjava/util/Collections$UnmodifiableCollection;->iterator()Ljava/util/Iterator;
HSPLjava/util/Collections$UnmodifiableCollection;->size()I
+HSPLjava/util/Collections$UnmodifiableCollection;->stream()Ljava/util/stream/Stream;
HSPLjava/util/Collections$UnmodifiableCollection;->toArray()[Ljava/lang/Object;
HSPLjava/util/Collections$UnmodifiableCollection;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
HSPLjava/util/Collections$UnmodifiableCollection;->toString()Ljava/lang/String;
@@ -12634,6 +39552,7 @@ HSPLjava/util/Collections$UnmodifiableList;-><init>(Ljava/util/List;)V
HSPLjava/util/Collections$UnmodifiableList;->equals(Ljava/lang/Object;)Z
HSPLjava/util/Collections$UnmodifiableList;->get(I)Ljava/lang/Object;
HSPLjava/util/Collections$UnmodifiableList;->hashCode()I
+HSPLjava/util/Collections$UnmodifiableList;->indexOf(Ljava/lang/Object;)I
HSPLjava/util/Collections$UnmodifiableList;->listIterator()Ljava/util/ListIterator;
HSPLjava/util/Collections$UnmodifiableList;->listIterator(I)Ljava/util/ListIterator;
HSPLjava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;-><init>(Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;)V
@@ -12650,13 +39569,17 @@ HSPLjava/util/Collections$UnmodifiableMap;->containsKey(Ljava/lang/Object;)Z
HSPLjava/util/Collections$UnmodifiableMap;->entrySet()Ljava/util/Set;
HSPLjava/util/Collections$UnmodifiableMap;->equals(Ljava/lang/Object;)Z
HSPLjava/util/Collections$UnmodifiableMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/Collections$UnmodifiableMap;->hashCode()I
HSPLjava/util/Collections$UnmodifiableMap;->isEmpty()Z
HSPLjava/util/Collections$UnmodifiableMap;->keySet()Ljava/util/Set;
HSPLjava/util/Collections$UnmodifiableMap;->size()I
+HSPLjava/util/Collections$UnmodifiableMap;->toString()Ljava/lang/String;
HSPLjava/util/Collections$UnmodifiableMap;->values()Ljava/util/Collection;
HSPLjava/util/Collections$UnmodifiableRandomAccessList;-><init>(Ljava/util/List;)V
HSPLjava/util/Collections$UnmodifiableRandomAccessList;->subList(II)Ljava/util/List;
HSPLjava/util/Collections$UnmodifiableSet;-><init>(Ljava/util/Set;)V
+HSPLjava/util/Collections$UnmodifiableSet;->equals(Ljava/lang/Object;)Z
+HSPLjava/util/Collections$UnmodifiableSet;->hashCode()I
HSPLjava/util/Collections$UnmodifiableSortedMap;-><init>(Ljava/util/SortedMap;)V
HSPLjava/util/Collections$UnmodifiableSortedSet;-><init>(Ljava/util/SortedSet;)V
HSPLjava/util/Collections;->addAll(Ljava/util/Collection;[Ljava/lang/Object;)Z
@@ -12666,19 +39589,24 @@ HSPLjava/util/Collections;->disjoint(Ljava/util/Collection;Ljava/util/Collection
HSPLjava/util/Collections;->emptyEnumeration()Ljava/util/Enumeration;
HSPLjava/util/Collections;->emptyIterator()Ljava/util/Iterator;
HSPLjava/util/Collections;->emptyList()Ljava/util/List;
-HSPLjava/util/Collections;->emptyListIterator()Ljava/util/ListIterator;
+PLjava/util/Collections;->emptyListIterator()Ljava/util/ListIterator;
HSPLjava/util/Collections;->emptyMap()Ljava/util/Map;
HSPLjava/util/Collections;->emptySet()Ljava/util/Set;
HSPLjava/util/Collections;->enumeration(Ljava/util/Collection;)Ljava/util/Enumeration;
HSPLjava/util/Collections;->eq(Ljava/lang/Object;Ljava/lang/Object;)Z
HSPLjava/util/Collections;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;)I
HSPLjava/util/Collections;->indexedBinarySearch(Ljava/util/List;Ljava/lang/Object;Ljava/util/Comparator;)I
+HSPLjava/util/Collections;->list(Ljava/util/Enumeration;)Ljava/util/ArrayList;
+HPLjava/util/Collections;->max(Ljava/util/Collection;)Ljava/lang/Object;
+HSPLjava/util/Collections;->max(Ljava/util/Collection;Ljava/util/Comparator;)Ljava/lang/Object;
+HSPLjava/util/Collections;->min(Ljava/util/Collection;Ljava/util/Comparator;)Ljava/lang/Object;
HSPLjava/util/Collections;->nCopies(ILjava/lang/Object;)Ljava/util/List;
HSPLjava/util/Collections;->newSetFromMap(Ljava/util/Map;)Ljava/util/Set;
HSPLjava/util/Collections;->reverse(Ljava/util/List;)V
HSPLjava/util/Collections;->reverseOrder()Ljava/util/Comparator;
HSPLjava/util/Collections;->reverseOrder(Ljava/util/Comparator;)Ljava/util/Comparator;
-PLjava/util/Collections;->shuffle(Ljava/util/List;Ljava/util/Random;)V
+PLjava/util/Collections;->shuffle(Ljava/util/List;)V
+HSPLjava/util/Collections;->shuffle(Ljava/util/List;Ljava/util/Random;)V
HSPLjava/util/Collections;->singleton(Ljava/lang/Object;)Ljava/util/Set;
HSPLjava/util/Collections;->singletonIterator(Ljava/lang/Object;)Ljava/util/Iterator;
HSPLjava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
@@ -12686,11 +39614,14 @@ HSPLjava/util/Collections;->singletonMap(Ljava/lang/Object;Ljava/lang/Object;)Lj
HSPLjava/util/Collections;->sort(Ljava/util/List;)V
HSPLjava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
HSPLjava/util/Collections;->swap(Ljava/util/List;II)V
+HSPLjava/util/Collections;->synchronizedCollection(Ljava/util/Collection;)Ljava/util/Collection;
HSPLjava/util/Collections;->synchronizedCollection(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/Collection;
HSPLjava/util/Collections;->synchronizedList(Ljava/util/List;)Ljava/util/List;
HSPLjava/util/Collections;->synchronizedMap(Ljava/util/Map;)Ljava/util/Map;
HSPLjava/util/Collections;->synchronizedSet(Ljava/util/Set;)Ljava/util/Set;
HSPLjava/util/Collections;->synchronizedSet(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set;
+HSPLjava/util/Collections;->synchronizedSortedMap(Ljava/util/SortedMap;)Ljava/util/SortedMap;
+HSPLjava/util/Collections;->synchronizedSortedSet(Ljava/util/SortedSet;)Ljava/util/SortedSet;
HSPLjava/util/Collections;->unmodifiableCollection(Ljava/util/Collection;)Ljava/util/Collection;
HSPLjava/util/Collections;->unmodifiableList(Ljava/util/List;)Ljava/util/List;
HSPLjava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map;
@@ -12712,6 +39643,19 @@ HSPLjava/util/ComparableTimSort;->minRunLength(I)I
HSPLjava/util/ComparableTimSort;->pushRun(II)V
HSPLjava/util/ComparableTimSort;->reverseRange([Ljava/lang/Object;II)V
HSPLjava/util/ComparableTimSort;->sort([Ljava/lang/Object;II[Ljava/lang/Object;II)V
+PLjava/util/Comparator;->comparing(Ljava/util/function/Function;)Ljava/util/Comparator;
+PLjava/util/Comparator;->comparingDouble(Ljava/util/function/ToDoubleFunction;)Ljava/util/Comparator;
+HSPLjava/util/Comparator;->comparingInt(Ljava/util/function/ToIntFunction;)Ljava/util/Comparator;
+PLjava/util/Comparator;->lambda$comparing$77a9974f$1(Ljava/util/function/Function;Ljava/lang/Object;Ljava/lang/Object;)I
+PLjava/util/Comparator;->lambda$comparingDouble$8dcf42ea$1(Ljava/util/function/ToDoubleFunction;Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLjava/util/Comparator;->lambda$comparingInt$7b0bb60$1(Ljava/util/function/ToIntFunction;Ljava/lang/Object;Ljava/lang/Object;)I
+HPLjava/util/Comparator;->lambda$comparingLong$6043328a$1(Ljava/util/function/ToLongFunction;Ljava/lang/Object;Ljava/lang/Object;)I
+PLjava/util/Comparator;->lambda$thenComparing$36697e65$1(Ljava/util/Comparator;Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;)I
+HPLjava/util/Comparator;->naturalOrder()Ljava/util/Comparator;
+PLjava/util/Comparator;->nullsLast(Ljava/util/Comparator;)Ljava/util/Comparator;
+PLjava/util/Comparator;->reversed()Ljava/util/Comparator;
+PLjava/util/Comparator;->thenComparing(Ljava/util/Comparator;)Ljava/util/Comparator;
+PLjava/util/Comparators$NullComparator;-><init>(ZLjava/util/Comparator;)V
HSPLjava/util/Currency;-><init>(Landroid/icu/util/Currency;)V
HSPLjava/util/Currency;->getCurrencyCode()Ljava/lang/String;
HSPLjava/util/Currency;->getInstance(Ljava/lang/String;)Ljava/util/Currency;
@@ -12724,16 +39668,30 @@ HSPLjava/util/Date;->before(Ljava/util/Date;)Z
HSPLjava/util/Date;->clone()Ljava/lang/Object;
HSPLjava/util/Date;->compareTo(Ljava/util/Date;)I
HSPLjava/util/Date;->convertToAbbr(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/StringBuilder;
+HSPLjava/util/Date;->equals(Ljava/lang/Object;)Z
+HPLjava/util/Date;->from(Ljava/time/Instant;)Ljava/util/Date;
HSPLjava/util/Date;->getCalendarSystem(J)Lsun/util/calendar/BaseCalendar;
+HSPLjava/util/Date;->getDate()I
+HSPLjava/util/Date;->getHours()I
HSPLjava/util/Date;->getMillisOf(Ljava/util/Date;)J
+HSPLjava/util/Date;->getMinutes()I
+HSPLjava/util/Date;->getMonth()I
+HSPLjava/util/Date;->getSeconds()I
HSPLjava/util/Date;->getTime()J
HSPLjava/util/Date;->getTimeImpl()J
+HSPLjava/util/Date;->getYear()I
HSPLjava/util/Date;->normalize()Lsun/util/calendar/BaseCalendar$Date;
+HSPLjava/util/Date;->readObject(Ljava/io/ObjectInputStream;)V
+HSPLjava/util/Date;->setTime(J)V
HSPLjava/util/Date;->toString()Ljava/lang/String;
+HSPLjava/util/Date;->writeObject(Ljava/io/ObjectOutputStream;)V
HSPLjava/util/Dictionary;-><init>()V
HSPLjava/util/DualPivotQuicksort;->doSort([CII[CII)V
+HPLjava/util/DualPivotQuicksort;->doSort([FII[FII)V
HSPLjava/util/DualPivotQuicksort;->sort([CIIZ)V
HSPLjava/util/DualPivotQuicksort;->sort([CII[CII)V
+HPLjava/util/DualPivotQuicksort;->sort([FIIZ)V
+HPLjava/util/DualPivotQuicksort;->sort([FII[FII)V
HSPLjava/util/DualPivotQuicksort;->sort([IIIZ)V
HSPLjava/util/DualPivotQuicksort;->sort([III[III)V
HSPLjava/util/DualPivotQuicksort;->sort([JIIZ)V
@@ -12755,25 +39713,48 @@ HSPLjava/util/EnumMap$EntrySet;->size()I
HSPLjava/util/EnumMap$EnumMapIterator;-><init>(Ljava/util/EnumMap;)V
HSPLjava/util/EnumMap$EnumMapIterator;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap$1;)V
HSPLjava/util/EnumMap$EnumMapIterator;->hasNext()Z
+HSPLjava/util/EnumMap$KeyIterator;-><init>(Ljava/util/EnumMap;)V
+HSPLjava/util/EnumMap$KeyIterator;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap$1;)V
+HSPLjava/util/EnumMap$KeyIterator;->next()Ljava/lang/Enum;
+HSPLjava/util/EnumMap$KeyIterator;->next()Ljava/lang/Object;
+HSPLjava/util/EnumMap$KeySet;-><init>(Ljava/util/EnumMap;)V
+HSPLjava/util/EnumMap$KeySet;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap$1;)V
+HSPLjava/util/EnumMap$KeySet;->contains(Ljava/lang/Object;)Z
+HSPLjava/util/EnumMap$KeySet;->iterator()Ljava/util/Iterator;
+HSPLjava/util/EnumMap$KeySet;->size()I
+HPLjava/util/EnumMap$ValueIterator;-><init>(Ljava/util/EnumMap;)V
+HPLjava/util/EnumMap$ValueIterator;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap$1;)V
+HPLjava/util/EnumMap$ValueIterator;->next()Ljava/lang/Object;
+HPLjava/util/EnumMap$Values;-><init>(Ljava/util/EnumMap;)V
+HPLjava/util/EnumMap$Values;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap$1;)V
+HPLjava/util/EnumMap$Values;->iterator()Ljava/util/Iterator;
HSPLjava/util/EnumMap;-><init>(Ljava/lang/Class;)V
+HPLjava/util/EnumMap;-><init>(Ljava/util/EnumMap;)V
+HSPLjava/util/EnumMap;-><init>(Ljava/util/Map;)V
HSPLjava/util/EnumMap;->access$1100(Ljava/util/EnumMap;)[Ljava/lang/Enum;
HSPLjava/util/EnumMap;->access$1200(Ljava/util/EnumMap;Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/EnumMap;->access$200(Ljava/util/EnumMap;)I
HSPLjava/util/EnumMap;->access$600(Ljava/util/EnumMap;)[Ljava/lang/Object;
+HSPLjava/util/EnumMap;->clear()V
HSPLjava/util/EnumMap;->containsKey(Ljava/lang/Object;)Z
HSPLjava/util/EnumMap;->entrySet()Ljava/util/Set;
HSPLjava/util/EnumMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/EnumMap;->getKeyUniverse(Ljava/lang/Class;)[Ljava/lang/Enum;
HSPLjava/util/EnumMap;->isValidKey(Ljava/lang/Object;)Z
+HSPLjava/util/EnumMap;->keySet()Ljava/util/Set;
HSPLjava/util/EnumMap;->maskNull(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/EnumMap;->put(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/EnumMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLjava/util/EnumMap;->putAll(Ljava/util/Map;)V
+HSPLjava/util/EnumMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/EnumMap;->size()I
HSPLjava/util/EnumMap;->typeCheck(Ljava/lang/Enum;)V
HSPLjava/util/EnumMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;
+HPLjava/util/EnumMap;->values()Ljava/util/Collection;
HSPLjava/util/EnumSet;-><init>(Ljava/lang/Class;[Ljava/lang/Enum;)V
HSPLjava/util/EnumSet;->allOf(Ljava/lang/Class;)Ljava/util/EnumSet;
HSPLjava/util/EnumSet;->clone()Ljava/util/EnumSet;
+HSPLjava/util/EnumSet;->complementOf(Ljava/util/EnumSet;)Ljava/util/EnumSet;
HSPLjava/util/EnumSet;->copyOf(Ljava/util/Collection;)Ljava/util/EnumSet;
HSPLjava/util/EnumSet;->copyOf(Ljava/util/EnumSet;)Ljava/util/EnumSet;
HSPLjava/util/EnumSet;->getUniverse(Ljava/lang/Class;)[Ljava/lang/Enum;
@@ -12781,6 +39762,8 @@ HSPLjava/util/EnumSet;->noneOf(Ljava/lang/Class;)Ljava/util/EnumSet;
HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;)Ljava/util/EnumSet;
HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
+HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
+HPLjava/util/EnumSet;->of(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
HSPLjava/util/EnumSet;->of(Ljava/lang/Enum;[Ljava/lang/Enum;)Ljava/util/EnumSet;
HSPLjava/util/EnumSet;->typeCheck(Ljava/lang/Enum;)V
HSPLjava/util/Formatter$Conversion;->isCharacter(C)Z
@@ -12789,6 +39772,7 @@ HSPLjava/util/Formatter$Conversion;->isGeneral(C)Z
HSPLjava/util/Formatter$Conversion;->isInteger(C)Z
HSPLjava/util/Formatter$Conversion;->isText(C)Z
HSPLjava/util/Formatter$Conversion;->isValid(C)Z
+HPLjava/util/Formatter$DateTime;->isValid(C)Z
HSPLjava/util/Formatter$FixedString;-><init>(Ljava/util/Formatter;Ljava/lang/String;)V
HSPLjava/util/Formatter$FixedString;->index()I
HSPLjava/util/Formatter$FixedString;->print(Ljava/lang/Object;Ljava/util/Locale;)V
@@ -12804,6 +39788,7 @@ HSPLjava/util/Formatter$FormatSpecifier;->addZeros([CI)[C
HSPLjava/util/Formatter$FormatSpecifier;->adjustWidth(ILjava/util/Formatter$Flags;Z)I
HSPLjava/util/Formatter$FormatSpecifier;->checkBadFlags([Ljava/util/Formatter$Flags;)V
HSPLjava/util/Formatter$FormatSpecifier;->checkCharacter()V
+HPLjava/util/Formatter$FormatSpecifier;->checkDateTime()V
HSPLjava/util/Formatter$FormatSpecifier;->checkFloat()V
HSPLjava/util/Formatter$FormatSpecifier;->checkGeneral()V
HSPLjava/util/Formatter$FormatSpecifier;->checkInteger()V
@@ -12816,6 +39801,7 @@ HSPLjava/util/Formatter$FormatSpecifier;->index()I
HSPLjava/util/Formatter$FormatSpecifier;->index(Ljava/lang/String;)I
HSPLjava/util/Formatter$FormatSpecifier;->justify(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/util/Formatter$FormatSpecifier;->leadingSign(Ljava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
+HPLjava/util/Formatter$FormatSpecifier;->localizedMagnitude(Ljava/lang/StringBuilder;JLjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder;
HSPLjava/util/Formatter$FormatSpecifier;->localizedMagnitude(Ljava/lang/StringBuilder;[CLjava/util/Formatter$Flags;ILjava/util/Locale;)Ljava/lang/StringBuilder;
HSPLjava/util/Formatter$FormatSpecifier;->precision(Ljava/lang/String;)I
HSPLjava/util/Formatter$FormatSpecifier;->print(BLjava/util/Locale;)V
@@ -12826,8 +39812,12 @@ HSPLjava/util/Formatter$FormatSpecifier;->print(JLjava/util/Locale;)V
HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/Object;Ljava/util/Locale;)V
HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/String;)V
HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;DLjava/util/Locale;Ljava/util/Formatter$Flags;CIZ)V
+HPLjava/util/Formatter$FormatSpecifier;->print(Ljava/lang/StringBuilder;Ljava/util/Calendar;CLjava/util/Locale;)Ljava/lang/Appendable;
+HSPLjava/util/Formatter$FormatSpecifier;->print(Ljava/math/BigInteger;Ljava/util/Locale;)V
+HPLjava/util/Formatter$FormatSpecifier;->print(Ljava/util/Calendar;CLjava/util/Locale;)V
HSPLjava/util/Formatter$FormatSpecifier;->printBoolean(Ljava/lang/Object;)V
HSPLjava/util/Formatter$FormatSpecifier;->printCharacter(Ljava/lang/Object;)V
+HPLjava/util/Formatter$FormatSpecifier;->printDateTime(Ljava/lang/Object;Ljava/util/Locale;)V
HSPLjava/util/Formatter$FormatSpecifier;->printFloat(Ljava/lang/Object;Ljava/util/Locale;)V
HSPLjava/util/Formatter$FormatSpecifier;->printInteger(Ljava/lang/Object;Ljava/util/Locale;)V
HSPLjava/util/Formatter$FormatSpecifier;->printString(Ljava/lang/Object;Ljava/util/Locale;)V
@@ -12849,27 +39839,31 @@ HSPLjava/util/Formatter;-><init>(Ljava/util/Locale;)V
HSPLjava/util/Formatter;-><init>(Ljava/util/Locale;Ljava/lang/Appendable;)V
HSPLjava/util/Formatter;->access$000(Ljava/util/Formatter;)Ljava/lang/Appendable;
HSPLjava/util/Formatter;->access$400(Ljava/util/Formatter;)C
+HSPLjava/util/Formatter;->close()V
HSPLjava/util/Formatter;->ensureOpen()V
HSPLjava/util/Formatter;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
HSPLjava/util/Formatter;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
HSPLjava/util/Formatter;->getZero(Ljava/util/Locale;)C
HSPLjava/util/Formatter;->locale()Ljava/util/Locale;
HSPLjava/util/Formatter;->nonNullAppendable(Ljava/lang/Appendable;)Ljava/lang/Appendable;
+HSPLjava/util/Formatter;->out()Ljava/lang/Appendable;
HSPLjava/util/Formatter;->parse(Ljava/lang/String;)[Ljava/util/Formatter$FormatString;
HSPLjava/util/Formatter;->toString()Ljava/lang/String;
HSPLjava/util/GregorianCalendar;-><init>()V
-HPLjava/util/GregorianCalendar;-><init>(IIIIIII)V
+HSPLjava/util/GregorianCalendar;-><init>(IIIIIII)V
HSPLjava/util/GregorianCalendar;-><init>(Ljava/util/TimeZone;)V
HSPLjava/util/GregorianCalendar;-><init>(Ljava/util/TimeZone;Ljava/util/Locale;)V
HSPLjava/util/GregorianCalendar;->add(II)V
HSPLjava/util/GregorianCalendar;->adjustDstOffsetForInvalidWallClock(JLjava/util/TimeZone;I)I
HSPLjava/util/GregorianCalendar;->adjustForZoneAndDaylightSavingsTime(IJLjava/util/TimeZone;)J
-HSPLjava/util/GregorianCalendar;->clone()Ljava/lang/Object;
+HPLjava/util/GregorianCalendar;->clone()Ljava/lang/Object;
HSPLjava/util/GregorianCalendar;->computeFields()V
HSPLjava/util/GregorianCalendar;->computeFields(II)I
HSPLjava/util/GregorianCalendar;->computeTime()V
-PLjava/util/GregorianCalendar;->getCurrentFixedDate()J
+HSPLjava/util/GregorianCalendar;->getCurrentFixedDate()J
HSPLjava/util/GregorianCalendar;->getFixedDate(Lsun/util/calendar/BaseCalendar;II)J
+HSPLjava/util/GregorianCalendar;->getMaximum(I)I
+HSPLjava/util/GregorianCalendar;->getMinimum(I)I
HSPLjava/util/GregorianCalendar;->getTimeZone()Ljava/util/TimeZone;
HSPLjava/util/GregorianCalendar;->getWeekNumber(JJ)I
HSPLjava/util/GregorianCalendar;->internalGetEra()I
@@ -12884,6 +39878,8 @@ HSPLjava/util/HashMap$EntryIterator;->next()Ljava/util/Map$Entry;
HSPLjava/util/HashMap$EntrySet;-><init>(Ljava/util/HashMap;)V
HSPLjava/util/HashMap$EntrySet;->iterator()Ljava/util/Iterator;
HSPLjava/util/HashMap$EntrySet;->size()I
+PLjava/util/HashMap$EntrySet;->spliterator()Ljava/util/Spliterator;
+PLjava/util/HashMap$EntrySpliterator;-><init>(Ljava/util/HashMap;IIII)V
HSPLjava/util/HashMap$HashIterator;-><init>(Ljava/util/HashMap;)V
HSPLjava/util/HashMap$HashIterator;->hasNext()Z
HSPLjava/util/HashMap$HashIterator;->nextNode()Ljava/util/HashMap$Node;
@@ -12896,21 +39892,41 @@ HSPLjava/util/HashMap$KeyIterator;->next()Ljava/lang/Object;
HSPLjava/util/HashMap$KeySet;-><init>(Ljava/util/HashMap;)V
HSPLjava/util/HashMap$KeySet;->contains(Ljava/lang/Object;)Z
HSPLjava/util/HashMap$KeySet;->iterator()Ljava/util/Iterator;
+HPLjava/util/HashMap$KeySet;->remove(Ljava/lang/Object;)Z
HSPLjava/util/HashMap$KeySet;->size()I
HSPLjava/util/HashMap$KeySpliterator;-><init>(Ljava/util/HashMap;IIII)V
HSPLjava/util/HashMap$KeySpliterator;->characteristics()I
HSPLjava/util/HashMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+HSPLjava/util/HashMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
HSPLjava/util/HashMap$Node;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V
+HSPLjava/util/HashMap$Node;->equals(Ljava/lang/Object;)Z
HSPLjava/util/HashMap$Node;->getKey()Ljava/lang/Object;
HSPLjava/util/HashMap$Node;->getValue()Ljava/lang/Object;
HSPLjava/util/HashMap$Node;->hashCode()I
HSPLjava/util/HashMap$Node;->setValue(Ljava/lang/Object;)Ljava/lang/Object;
+HPLjava/util/HashMap$TreeNode;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V
+HPLjava/util/HashMap$TreeNode;->balanceDeletion(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
+HPLjava/util/HashMap$TreeNode;->balanceInsertion(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
+HPLjava/util/HashMap$TreeNode;->find(ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/HashMap$TreeNode;
+HPLjava/util/HashMap$TreeNode;->moveRootToFront([Ljava/util/HashMap$Node;Ljava/util/HashMap$TreeNode;)V
+HPLjava/util/HashMap$TreeNode;->putTreeVal(Ljava/util/HashMap;[Ljava/util/HashMap$Node;ILjava/lang/Object;Ljava/lang/Object;)Ljava/util/HashMap$TreeNode;
+HPLjava/util/HashMap$TreeNode;->removeTreeNode(Ljava/util/HashMap;[Ljava/util/HashMap$Node;Z)V
+HPLjava/util/HashMap$TreeNode;->root()Ljava/util/HashMap$TreeNode;
+HPLjava/util/HashMap$TreeNode;->rotateLeft(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
+HPLjava/util/HashMap$TreeNode;->rotateRight(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
+HPLjava/util/HashMap$TreeNode;->split(Ljava/util/HashMap;[Ljava/util/HashMap$Node;II)V
+HPLjava/util/HashMap$TreeNode;->tieBreakOrder(Ljava/lang/Object;Ljava/lang/Object;)I
+HPLjava/util/HashMap$TreeNode;->treeify([Ljava/util/HashMap$Node;)V
+PLjava/util/HashMap$TreeNode;->untreeify(Ljava/util/HashMap;)Ljava/util/HashMap$Node;
HSPLjava/util/HashMap$ValueIterator;-><init>(Ljava/util/HashMap;)V
HSPLjava/util/HashMap$ValueIterator;->next()Ljava/lang/Object;
HSPLjava/util/HashMap$ValueSpliterator;-><init>(Ljava/util/HashMap;IIII)V
HSPLjava/util/HashMap$ValueSpliterator;->characteristics()I
-HSPLjava/util/HashMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+HPLjava/util/HashMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+HSPLjava/util/HashMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
HSPLjava/util/HashMap$Values;-><init>(Ljava/util/HashMap;)V
+HSPLjava/util/HashMap$Values;->contains(Ljava/lang/Object;)Z
+HPLjava/util/HashMap$Values;->forEach(Ljava/util/function/Consumer;)V
HSPLjava/util/HashMap$Values;->iterator()Ljava/util/Iterator;
HSPLjava/util/HashMap$Values;->size()I
HSPLjava/util/HashMap$Values;->spliterator()Ljava/util/Spliterator;
@@ -12921,32 +39937,43 @@ HSPLjava/util/HashMap;-><init>(Ljava/util/Map;)V
HSPLjava/util/HashMap;->afterNodeAccess(Ljava/util/HashMap$Node;)V
HSPLjava/util/HashMap;->afterNodeInsertion(Z)V
HSPLjava/util/HashMap;->afterNodeRemoval(Ljava/util/HashMap$Node;)V
+HSPLjava/util/HashMap;->capacity()I
HSPLjava/util/HashMap;->clear()V
HSPLjava/util/HashMap;->clone()Ljava/lang/Object;
+HPLjava/util/HashMap;->comparableClassFor(Ljava/lang/Object;)Ljava/lang/Class;
+HPLjava/util/HashMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
HSPLjava/util/HashMap;->containsKey(Ljava/lang/Object;)Z
HSPLjava/util/HashMap;->containsValue(Ljava/lang/Object;)Z
HSPLjava/util/HashMap;->entrySet()Ljava/util/Set;
HSPLjava/util/HashMap;->forEach(Ljava/util/function/BiConsumer;)V
HSPLjava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/HashMap;->getNode(ILjava/lang/Object;)Ljava/util/HashMap$Node;
+HSPLjava/util/HashMap;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/HashMap;->hash(Ljava/lang/Object;)I
+HSPLjava/util/HashMap;->internalWriteEntries(Ljava/io/ObjectOutputStream;)V
HSPLjava/util/HashMap;->isEmpty()Z
HSPLjava/util/HashMap;->keySet()Ljava/util/Set;
-HSPLjava/util/HashMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
+HPLjava/util/HashMap;->loadFactor()F
+HPLjava/util/HashMap;->merge(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
HSPLjava/util/HashMap;->newNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
+PLjava/util/HashMap;->newTreeNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
HSPLjava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/HashMap;->putAll(Ljava/util/Map;)V
HSPLjava/util/HashMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/HashMap;->putMapEntries(Ljava/util/Map;Z)V
HSPLjava/util/HashMap;->putVal(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;
+HSPLjava/util/HashMap;->readObject(Ljava/io/ObjectInputStream;)V
HSPLjava/util/HashMap;->reinitialize()V
HSPLjava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/HashMap;->removeNode(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/util/HashMap$Node;
+PLjava/util/HashMap;->replacementNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
+HPLjava/util/HashMap;->replacementTreeNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
HSPLjava/util/HashMap;->resize()[Ljava/util/HashMap$Node;
HSPLjava/util/HashMap;->size()I
HSPLjava/util/HashMap;->tableSizeFor(I)I
-PLjava/util/HashMap;->treeifyBin([Ljava/util/HashMap$Node;I)V
+HSPLjava/util/HashMap;->treeifyBin([Ljava/util/HashMap$Node;I)V
HSPLjava/util/HashMap;->values()Ljava/util/Collection;
+HSPLjava/util/HashMap;->writeObject(Ljava/io/ObjectOutputStream;)V
HSPLjava/util/HashSet;-><init>()V
HSPLjava/util/HashSet;-><init>(I)V
HSPLjava/util/HashSet;-><init>(IF)V
@@ -12961,6 +39988,7 @@ HSPLjava/util/HashSet;->iterator()Ljava/util/Iterator;
HSPLjava/util/HashSet;->remove(Ljava/lang/Object;)Z
HSPLjava/util/HashSet;->size()I
HSPLjava/util/HashSet;->spliterator()Ljava/util/Spliterator;
+HPLjava/util/HashSet;->writeObject(Ljava/io/ObjectOutputStream;)V
HSPLjava/util/Hashtable$EntrySet;-><init>(Ljava/util/Hashtable;)V
HSPLjava/util/Hashtable$EntrySet;-><init>(Ljava/util/Hashtable;Ljava/util/Hashtable$1;)V
HSPLjava/util/Hashtable$EntrySet;->iterator()Ljava/util/Iterator;
@@ -12973,18 +40001,19 @@ HSPLjava/util/Hashtable$HashtableEntry;-><init>(ILjava/lang/Object;Ljava/lang/Ob
HSPLjava/util/Hashtable$HashtableEntry;->clone()Ljava/lang/Object;
HSPLjava/util/Hashtable$HashtableEntry;->getKey()Ljava/lang/Object;
HSPLjava/util/Hashtable$HashtableEntry;->getValue()Ljava/lang/Object;
-PLjava/util/Hashtable$KeySet;-><init>(Ljava/util/Hashtable;)V
+HPLjava/util/Hashtable$KeySet;-><init>(Ljava/util/Hashtable;)V
PLjava/util/Hashtable$KeySet;-><init>(Ljava/util/Hashtable;Ljava/util/Hashtable$1;)V
PLjava/util/Hashtable$KeySet;->iterator()Ljava/util/Iterator;
PLjava/util/Hashtable$KeySet;->size()I
HSPLjava/util/Hashtable$ValueCollection;-><init>(Ljava/util/Hashtable;)V
HSPLjava/util/Hashtable$ValueCollection;-><init>(Ljava/util/Hashtable;Ljava/util/Hashtable$1;)V
-HSPLjava/util/Hashtable$ValueCollection;->iterator()Ljava/util/Iterator;
-HPLjava/util/Hashtable$ValueCollection;->size()I
+HPLjava/util/Hashtable$ValueCollection;->iterator()Ljava/util/Iterator;
+HSPLjava/util/Hashtable$ValueCollection;->size()I
HSPLjava/util/Hashtable;-><init>()V
+HSPLjava/util/Hashtable;-><init>(I)V
HSPLjava/util/Hashtable;-><init>(IF)V
HSPLjava/util/Hashtable;->access$100(Ljava/util/Hashtable;I)Ljava/util/Iterator;
-PLjava/util/Hashtable;->access$200(Ljava/util/Hashtable;)I
+HSPLjava/util/Hashtable;->access$200(Ljava/util/Hashtable;)I
HSPLjava/util/Hashtable;->access$400(Ljava/util/Hashtable;)[Ljava/util/Hashtable$HashtableEntry;
HSPLjava/util/Hashtable;->access$500(Ljava/util/Hashtable;)I
HSPLjava/util/Hashtable;->addEntry(ILjava/lang/Object;Ljava/lang/Object;I)V
@@ -12996,7 +40025,7 @@ HSPLjava/util/Hashtable;->get(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/Hashtable;->getEnumeration(I)Ljava/util/Enumeration;
HSPLjava/util/Hashtable;->getIterator(I)Ljava/util/Iterator;
HSPLjava/util/Hashtable;->isEmpty()Z
-PLjava/util/Hashtable;->keySet()Ljava/util/Set;
+HPLjava/util/Hashtable;->keySet()Ljava/util/Set;
HSPLjava/util/Hashtable;->keys()Ljava/util/Enumeration;
HSPLjava/util/Hashtable;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/Hashtable;->rehash()V
@@ -13026,12 +40055,18 @@ HSPLjava/util/IdentityHashMap$KeyIterator;->next()Ljava/lang/Object;
HSPLjava/util/IdentityHashMap$KeySet;-><init>(Ljava/util/IdentityHashMap;)V
HSPLjava/util/IdentityHashMap$KeySet;-><init>(Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap$1;)V
HSPLjava/util/IdentityHashMap$KeySet;->iterator()Ljava/util/Iterator;
+PLjava/util/IdentityHashMap$KeySet;->size()I
+HPLjava/util/IdentityHashMap$KeySet;->toArray()[Ljava/lang/Object;
+HPLjava/util/IdentityHashMap$KeySet;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
HSPLjava/util/IdentityHashMap$ValueIterator;-><init>(Ljava/util/IdentityHashMap;)V
HSPLjava/util/IdentityHashMap$ValueIterator;-><init>(Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap$1;)V
HSPLjava/util/IdentityHashMap$ValueIterator;->next()Ljava/lang/Object;
HSPLjava/util/IdentityHashMap$Values;-><init>(Ljava/util/IdentityHashMap;)V
HSPLjava/util/IdentityHashMap$Values;-><init>(Ljava/util/IdentityHashMap;Ljava/util/IdentityHashMap$1;)V
HSPLjava/util/IdentityHashMap$Values;->iterator()Ljava/util/Iterator;
+HPLjava/util/IdentityHashMap$Values;->size()I
+HPLjava/util/IdentityHashMap$Values;->toArray()[Ljava/lang/Object;
+HPLjava/util/IdentityHashMap$Values;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
HSPLjava/util/IdentityHashMap;-><init>()V
HSPLjava/util/IdentityHashMap;-><init>(I)V
HSPLjava/util/IdentityHashMap;->capacity(I)I
@@ -13049,10 +40084,28 @@ HSPLjava/util/IdentityHashMap;->nextKeyIndex(II)I
HSPLjava/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/IdentityHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/IdentityHashMap;->resize(I)Z
+HSPLjava/util/IdentityHashMap;->size()I
HSPLjava/util/IdentityHashMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/IdentityHashMap;->values()Ljava/util/Collection;
-HSPLjava/util/Iterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+HPLjava/util/Iterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+HSPLjava/util/JumboEnumSet$EnumSetIterator;-><init>(Ljava/util/JumboEnumSet;)V
+HSPLjava/util/JumboEnumSet$EnumSetIterator;->hasNext()Z
+HSPLjava/util/JumboEnumSet$EnumSetIterator;->next()Ljava/lang/Enum;
+HSPLjava/util/JumboEnumSet$EnumSetIterator;->next()Ljava/lang/Object;
+HSPLjava/util/JumboEnumSet$EnumSetIterator;->remove()V
HSPLjava/util/JumboEnumSet;-><init>(Ljava/lang/Class;[Ljava/lang/Enum;)V
+HSPLjava/util/JumboEnumSet;->access$000(Ljava/util/JumboEnumSet;)[J
+HSPLjava/util/JumboEnumSet;->access$110(Ljava/util/JumboEnumSet;)I
+HSPLjava/util/JumboEnumSet;->add(Ljava/lang/Enum;)Z
+HSPLjava/util/JumboEnumSet;->add(Ljava/lang/Object;)Z
+HSPLjava/util/JumboEnumSet;->addAll()V
+HSPLjava/util/JumboEnumSet;->addAll(Ljava/util/Collection;)Z
+HPLjava/util/JumboEnumSet;->clone()Ljava/util/EnumSet;
+HSPLjava/util/JumboEnumSet;->contains(Ljava/lang/Object;)Z
+HSPLjava/util/JumboEnumSet;->isEmpty()Z
+HSPLjava/util/JumboEnumSet;->iterator()Ljava/util/Iterator;
+HSPLjava/util/JumboEnumSet;->removeAll(Ljava/util/Collection;)Z
+HSPLjava/util/JumboEnumSet;->size()I
HSPLjava/util/LinkedHashMap$LinkedEntryIterator;-><init>(Ljava/util/LinkedHashMap;)V
HSPLjava/util/LinkedHashMap$LinkedEntryIterator;->next()Ljava/lang/Object;
HSPLjava/util/LinkedHashMap$LinkedEntryIterator;->next()Ljava/util/Map$Entry;
@@ -13067,13 +40120,16 @@ HSPLjava/util/LinkedHashMap$LinkedHashMapEntry;-><init>(ILjava/lang/Object;Ljava
HSPLjava/util/LinkedHashMap$LinkedKeyIterator;-><init>(Ljava/util/LinkedHashMap;)V
HSPLjava/util/LinkedHashMap$LinkedKeyIterator;->next()Ljava/lang/Object;
HSPLjava/util/LinkedHashMap$LinkedKeySet;-><init>(Ljava/util/LinkedHashMap;)V
+HSPLjava/util/LinkedHashMap$LinkedKeySet;->contains(Ljava/lang/Object;)Z
HSPLjava/util/LinkedHashMap$LinkedKeySet;->iterator()Ljava/util/Iterator;
HSPLjava/util/LinkedHashMap$LinkedKeySet;->size()I
HSPLjava/util/LinkedHashMap$LinkedValueIterator;-><init>(Ljava/util/LinkedHashMap;)V
HSPLjava/util/LinkedHashMap$LinkedValueIterator;->next()Ljava/lang/Object;
HSPLjava/util/LinkedHashMap$LinkedValues;-><init>(Ljava/util/LinkedHashMap;)V
+PLjava/util/LinkedHashMap$LinkedValues;->forEach(Ljava/util/function/Consumer;)V
HSPLjava/util/LinkedHashMap$LinkedValues;->iterator()Ljava/util/Iterator;
HSPLjava/util/LinkedHashMap$LinkedValues;->size()I
+PLjava/util/LinkedHashMap$LinkedValues;->spliterator()Ljava/util/Spliterator;
HSPLjava/util/LinkedHashMap;-><init>()V
HSPLjava/util/LinkedHashMap;-><init>(I)V
HSPLjava/util/LinkedHashMap;-><init>(IF)V
@@ -13085,20 +40141,37 @@ HSPLjava/util/LinkedHashMap;->afterNodeRemoval(Ljava/util/HashMap$Node;)V
HSPLjava/util/LinkedHashMap;->clear()V
HSPLjava/util/LinkedHashMap;->eldest()Ljava/util/Map$Entry;
HSPLjava/util/LinkedHashMap;->entrySet()Ljava/util/Set;
+PLjava/util/LinkedHashMap;->forEach(Ljava/util/function/BiConsumer;)V
HSPLjava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/LinkedHashMap;->keySet()Ljava/util/Set;
HSPLjava/util/LinkedHashMap;->linkNodeLast(Ljava/util/LinkedHashMap$LinkedHashMapEntry;)V
HSPLjava/util/LinkedHashMap;->newNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
+HPLjava/util/LinkedHashMap;->newTreeNode(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
+HSPLjava/util/LinkedHashMap;->reinitialize()V
HSPLjava/util/LinkedHashMap;->removeEldestEntry(Ljava/util/Map$Entry;)Z
+HPLjava/util/LinkedHashMap;->replacementNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;
+HPLjava/util/LinkedHashMap;->replacementTreeNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
+HPLjava/util/LinkedHashMap;->transferLinks(Ljava/util/LinkedHashMap$LinkedHashMapEntry;Ljava/util/LinkedHashMap$LinkedHashMapEntry;)V
HSPLjava/util/LinkedHashMap;->values()Ljava/util/Collection;
HSPLjava/util/LinkedHashSet;-><init>()V
HSPLjava/util/LinkedHashSet;-><init>(I)V
+HSPLjava/util/LinkedHashSet;-><init>(IF)V
HSPLjava/util/LinkedHashSet;-><init>(Ljava/util/Collection;)V
+HPLjava/util/LinkedHashSet;->spliterator()Ljava/util/Spliterator;
+PLjava/util/LinkedList$LLSpliterator;-><init>(Ljava/util/LinkedList;II)V
+PLjava/util/LinkedList$LLSpliterator;->characteristics()I
+PLjava/util/LinkedList$LLSpliterator;->estimateSize()J
+PLjava/util/LinkedList$LLSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+PLjava/util/LinkedList$LLSpliterator;->getEst()I
HSPLjava/util/LinkedList$ListItr;-><init>(Ljava/util/LinkedList;I)V
+HSPLjava/util/LinkedList$ListItr;->add(Ljava/lang/Object;)V
HSPLjava/util/LinkedList$ListItr;->checkForComodification()V
HSPLjava/util/LinkedList$ListItr;->hasNext()Z
+HSPLjava/util/LinkedList$ListItr;->hasPrevious()Z
HSPLjava/util/LinkedList$ListItr;->next()Ljava/lang/Object;
+HSPLjava/util/LinkedList$ListItr;->previous()Ljava/lang/Object;
HSPLjava/util/LinkedList$ListItr;->remove()V
+PLjava/util/LinkedList$ListItr;->set(Ljava/lang/Object;)V
HSPLjava/util/LinkedList$Node;-><init>(Ljava/util/LinkedList$Node;Ljava/lang/Object;Ljava/util/LinkedList$Node;)V
HSPLjava/util/LinkedList;-><init>()V
HSPLjava/util/LinkedList;-><init>(Ljava/util/Collection;)V
@@ -13106,49 +40179,95 @@ HSPLjava/util/LinkedList;->add(ILjava/lang/Object;)V
HSPLjava/util/LinkedList;->add(Ljava/lang/Object;)Z
HSPLjava/util/LinkedList;->addAll(ILjava/util/Collection;)Z
HSPLjava/util/LinkedList;->addAll(Ljava/util/Collection;)Z
+HSPLjava/util/LinkedList;->addFirst(Ljava/lang/Object;)V
HSPLjava/util/LinkedList;->addLast(Ljava/lang/Object;)V
HSPLjava/util/LinkedList;->checkElementIndex(I)V
HSPLjava/util/LinkedList;->checkPositionIndex(I)V
HSPLjava/util/LinkedList;->clear()V
HSPLjava/util/LinkedList;->clone()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->contains(Ljava/lang/Object;)Z
HSPLjava/util/LinkedList;->get(I)Ljava/lang/Object;
+HSPLjava/util/LinkedList;->getFirst()Ljava/lang/Object;
HSPLjava/util/LinkedList;->getLast()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->indexOf(Ljava/lang/Object;)I
HSPLjava/util/LinkedList;->isElementIndex(I)Z
HSPLjava/util/LinkedList;->isPositionIndex(I)Z
+HSPLjava/util/LinkedList;->linkBefore(Ljava/lang/Object;Ljava/util/LinkedList$Node;)V
+HSPLjava/util/LinkedList;->linkFirst(Ljava/lang/Object;)V
HSPLjava/util/LinkedList;->linkLast(Ljava/lang/Object;)V
HSPLjava/util/LinkedList;->listIterator(I)Ljava/util/ListIterator;
HSPLjava/util/LinkedList;->node(I)Ljava/util/LinkedList$Node;
HSPLjava/util/LinkedList;->offer(Ljava/lang/Object;)Z
+HPLjava/util/LinkedList;->offerFirst(Ljava/lang/Object;)Z
HSPLjava/util/LinkedList;->peek()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->peekLast()Ljava/lang/Object;
HSPLjava/util/LinkedList;->poll()Ljava/lang/Object;
+HPLjava/util/LinkedList;->pollFirst()Ljava/lang/Object;
+HPLjava/util/LinkedList;->pollLast()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->pop()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->push(Ljava/lang/Object;)V
+HSPLjava/util/LinkedList;->readObject(Ljava/io/ObjectInputStream;)V
HSPLjava/util/LinkedList;->remove()Ljava/lang/Object;
HSPLjava/util/LinkedList;->remove(I)Ljava/lang/Object;
HSPLjava/util/LinkedList;->remove(Ljava/lang/Object;)Z
HSPLjava/util/LinkedList;->removeFirst()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->removeLast()Ljava/lang/Object;
+HSPLjava/util/LinkedList;->removeLastOccurrence(Ljava/lang/Object;)Z
+PLjava/util/LinkedList;->set(ILjava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/LinkedList;->size()I
+PLjava/util/LinkedList;->spliterator()Ljava/util/Spliterator;
HSPLjava/util/LinkedList;->superClone()Ljava/util/LinkedList;
HSPLjava/util/LinkedList;->toArray()[Ljava/lang/Object;
HSPLjava/util/LinkedList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
HSPLjava/util/LinkedList;->unlink(Ljava/util/LinkedList$Node;)Ljava/lang/Object;
HSPLjava/util/LinkedList;->unlinkFirst(Ljava/util/LinkedList$Node;)Ljava/lang/Object;
+HSPLjava/util/LinkedList;->unlinkLast(Ljava/util/LinkedList$Node;)Ljava/lang/Object;
+HPLjava/util/LinkedList;->writeObject(Ljava/io/ObjectOutputStream;)V
+PLjava/util/List;->sort(Ljava/util/Comparator;)V
+HSPLjava/util/List;->spliterator()Ljava/util/Spliterator;
+HSPLjava/util/Locale$Builder;-><init>()V
+HSPLjava/util/Locale$Builder;->build()Ljava/util/Locale;
+HSPLjava/util/Locale$Builder;->setLanguage(Ljava/lang/String;)Ljava/util/Locale$Builder;
+HSPLjava/util/Locale$Builder;->setLanguageTag(Ljava/lang/String;)Ljava/util/Locale$Builder;
+HSPLjava/util/Locale$Builder;->setRegion(Ljava/lang/String;)Ljava/util/Locale$Builder;
+HSPLjava/util/Locale$Builder;->setScript(Ljava/lang/String;)Ljava/util/Locale$Builder;
+HSPLjava/util/Locale$Builder;->setVariant(Ljava/lang/String;)Ljava/util/Locale$Builder;
+HSPLjava/util/Locale$Cache;->createObject(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/Locale$Cache;->createObject(Ljava/util/Locale$LocaleKey;)Ljava/util/Locale;
+HPLjava/util/Locale$LanguageRange;-><init>(Ljava/lang/String;D)V
+HPLjava/util/Locale$LanguageRange;->getRange()Ljava/lang/String;
+HPLjava/util/Locale$LanguageRange;->isSubtagIllFormed(Ljava/lang/String;Z)Z
HSPLjava/util/Locale$LocaleKey;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)V
HSPLjava/util/Locale$LocaleKey;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;Ljava/util/Locale$1;)V
+HSPLjava/util/Locale$LocaleKey;->access$200(Ljava/util/Locale$LocaleKey;)Lsun/util/locale/BaseLocale;
+HSPLjava/util/Locale$LocaleKey;->access$300(Ljava/util/Locale$LocaleKey;)Lsun/util/locale/LocaleExtensions;
HSPLjava/util/Locale$LocaleKey;->equals(Ljava/lang/Object;)Z
HSPLjava/util/Locale$LocaleKey;->hashCode()I
HSPLjava/util/Locale;-><init>(Ljava/lang/String;)V
HSPLjava/util/Locale;-><init>(Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/util/Locale;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLjava/util/Locale;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)V
+HSPLjava/util/Locale;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;Ljava/util/Locale$1;)V
+HSPLjava/util/Locale;->access$700(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lsun/util/locale/LocaleExtensions;
HSPLjava/util/Locale;->adjustLanguageCode(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/util/Locale;->clone()Ljava/lang/Object;
HSPLjava/util/Locale;->convertOldISOCodes(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/util/Locale;->equals(Ljava/lang/Object;)Z
HSPLjava/util/Locale;->forLanguageTag(Ljava/lang/String;)Ljava/util/Locale;
+HSPLjava/util/Locale;->getAvailableLocales()[Ljava/util/Locale;
HSPLjava/util/Locale;->getBaseLocale()Lsun/util/locale/BaseLocale;
HSPLjava/util/Locale;->getCompatibilityExtensions(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lsun/util/locale/LocaleExtensions;
HSPLjava/util/Locale;->getCountry()Ljava/lang/String;
HSPLjava/util/Locale;->getDefault()Ljava/util/Locale;
HSPLjava/util/Locale;->getDefault(Ljava/util/Locale$Category;)Ljava/util/Locale;
+HPLjava/util/Locale;->getDisplayCountry(Ljava/util/Locale;)Ljava/lang/String;
+HSPLjava/util/Locale;->getDisplayLanguage()Ljava/lang/String;
+HSPLjava/util/Locale;->getDisplayLanguage(Ljava/util/Locale;)Ljava/lang/String;
+HPLjava/util/Locale;->getDisplayName()Ljava/lang/String;
+HPLjava/util/Locale;->getDisplayName(Ljava/util/Locale;)Ljava/lang/String;
HSPLjava/util/Locale;->getExtensionKeys()Ljava/util/Set;
+HPLjava/util/Locale;->getISO3Language()Ljava/lang/String;
+HSPLjava/util/Locale;->getISOCountries()[Ljava/lang/String;
HSPLjava/util/Locale;->getInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lsun/util/locale/LocaleExtensions;)Ljava/util/Locale;
HSPLjava/util/Locale;->getInstance(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)Ljava/util/Locale;
HSPLjava/util/Locale;->getLanguage()Ljava/lang/String;
@@ -13156,39 +40275,64 @@ HSPLjava/util/Locale;->getScript()Ljava/lang/String;
HSPLjava/util/Locale;->getVariant()Ljava/lang/String;
HSPLjava/util/Locale;->hasExtensions()Z
HSPLjava/util/Locale;->hashCode()I
+HSPLjava/util/Locale;->isValidBcp47Alpha(Ljava/lang/String;II)Z
+HSPLjava/util/Locale;->normalizeAndValidateLanguage(Ljava/lang/String;Z)Ljava/lang/String;
+HPLjava/util/Locale;->normalizeAndValidateRegion(Ljava/lang/String;Z)Ljava/lang/String;
HSPLjava/util/Locale;->setDefault(Ljava/util/Locale$Category;Ljava/util/Locale;)V
HSPLjava/util/Locale;->setDefault(Ljava/util/Locale;)V
HSPLjava/util/Locale;->toLanguageTag()Ljava/lang/String;
HSPLjava/util/Locale;->toString()Ljava/lang/String;
+HSPLjava/util/Map;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
+PLjava/util/Map;->forEach(Ljava/util/function/BiConsumer;)V
+HSPLjava/util/Map;->getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/MissingResourceException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/util/NoSuchElementException;-><init>()V
+PLjava/util/NoSuchElementException;-><init>(Ljava/lang/String;)V
HSPLjava/util/Objects;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z
HSPLjava/util/Objects;->hash([Ljava/lang/Object;)I
HSPLjava/util/Objects;->hashCode(Ljava/lang/Object;)I
+HSPLjava/util/Objects;->nonNull(Ljava/lang/Object;)Z
HSPLjava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/Objects;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
HSPLjava/util/Objects;->toString(Ljava/lang/Object;)Ljava/lang/String;
+HPLjava/util/Objects;->toString(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
HSPLjava/util/Observable;-><init>()V
HSPLjava/util/Observable;->addObserver(Ljava/util/Observer;)V
+HSPLjava/util/Observable;->clearChanged()V
+HSPLjava/util/Observable;->deleteObserver(Ljava/util/Observer;)V
+HSPLjava/util/Observable;->hasChanged()Z
+HSPLjava/util/Observable;->notifyObservers()V
+HSPLjava/util/Observable;->notifyObservers(Ljava/lang/Object;)V
+HSPLjava/util/Observable;->setChanged()V
HSPLjava/util/Optional;-><init>(Ljava/lang/Object;)V
HSPLjava/util/Optional;->empty()Ljava/util/Optional;
+HSPLjava/util/Optional;->flatMap(Ljava/util/function/Function;)Ljava/util/Optional;
HSPLjava/util/Optional;->get()Ljava/lang/Object;
-HSPLjava/util/Optional;->ifPresent(Ljava/util/function/Consumer;)V
+HPLjava/util/Optional;->ifPresent(Ljava/util/function/Consumer;)V
HSPLjava/util/Optional;->isPresent()Z
HSPLjava/util/Optional;->map(Ljava/util/function/Function;)Ljava/util/Optional;
HSPLjava/util/Optional;->of(Ljava/lang/Object;)Ljava/util/Optional;
HSPLjava/util/Optional;->ofNullable(Ljava/lang/Object;)Ljava/util/Optional;
HSPLjava/util/Optional;->orElse(Ljava/lang/Object;)Ljava/lang/Object;
+HPLjava/util/Optional;->orElseGet(Ljava/util/function/Supplier;)Ljava/lang/Object;
HSPLjava/util/PriorityQueue$Itr;-><init>(Ljava/util/PriorityQueue;)V
HSPLjava/util/PriorityQueue$Itr;-><init>(Ljava/util/PriorityQueue;Ljava/util/PriorityQueue$1;)V
HSPLjava/util/PriorityQueue$Itr;->hasNext()Z
HSPLjava/util/PriorityQueue$Itr;->next()Ljava/lang/Object;
-HSPLjava/util/PriorityQueue$Itr;->remove()V
+HPLjava/util/PriorityQueue$Itr;->remove()V
HSPLjava/util/PriorityQueue;-><init>()V
+HSPLjava/util/PriorityQueue;-><init>(I)V
HSPLjava/util/PriorityQueue;-><init>(ILjava/util/Comparator;)V
+HSPLjava/util/PriorityQueue;-><init>(Ljava/util/Collection;)V
HSPLjava/util/PriorityQueue;->add(Ljava/lang/Object;)Z
+PLjava/util/PriorityQueue;->clear()V
+HSPLjava/util/PriorityQueue;->comparator()Ljava/util/Comparator;
+HPLjava/util/PriorityQueue;->contains(Ljava/lang/Object;)Z
HSPLjava/util/PriorityQueue;->grow(I)V
+HSPLjava/util/PriorityQueue;->heapify()V
HSPLjava/util/PriorityQueue;->indexOf(Ljava/lang/Object;)I
+HSPLjava/util/PriorityQueue;->initElementsFromCollection(Ljava/util/Collection;)V
+HSPLjava/util/PriorityQueue;->initFromCollection(Ljava/util/Collection;)V
HSPLjava/util/PriorityQueue;->iterator()Ljava/util/Iterator;
HSPLjava/util/PriorityQueue;->offer(Ljava/lang/Object;)Z
HSPLjava/util/PriorityQueue;->peek()Ljava/lang/Object;
@@ -13207,21 +40351,25 @@ HSPLjava/util/Properties$LineReader;-><init>(Ljava/util/Properties;Ljava/io/Read
HSPLjava/util/Properties$LineReader;->readLine()I
HSPLjava/util/Properties;-><init>()V
HSPLjava/util/Properties;-><init>(Ljava/util/Properties;)V
+HSPLjava/util/Properties;->enumerate(Ljava/util/Hashtable;)V
HSPLjava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/util/Properties;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLjava/util/Properties;->load(Ljava/io/InputStream;)V
HSPLjava/util/Properties;->load(Ljava/io/Reader;)V
HSPLjava/util/Properties;->load0(Ljava/util/Properties$LineReader;)V
HSPLjava/util/Properties;->loadConvert([CII[C)Ljava/lang/String;
-HSPLjava/util/Properties;->saveConvert(Ljava/lang/String;ZZ)Ljava/lang/String;
+HSPLjava/util/Properties;->propertyNames()Ljava/util/Enumeration;
HSPLjava/util/Properties;->setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
-HSPLjava/util/Properties;->store(Ljava/io/OutputStream;Ljava/lang/String;)V
-HSPLjava/util/Properties;->store0(Ljava/io/BufferedWriter;Ljava/lang/String;Z)V
+HPLjava/util/Properties;->store(Ljava/io/OutputStream;Ljava/lang/String;)V
+HPLjava/util/Properties;->store0(Ljava/io/BufferedWriter;Ljava/lang/String;Z)V
HSPLjava/util/PropertyResourceBundle;-><init>(Ljava/io/Reader;)V
+HSPLjava/util/PropertyResourceBundle;->getKeys()Ljava/util/Enumeration;
+HSPLjava/util/PropertyResourceBundle;->handleGetObject(Ljava/lang/String;)Ljava/lang/Object;
HSPLjava/util/Random;-><init>()V
HSPLjava/util/Random;-><init>(J)V
HSPLjava/util/Random;->initialScramble(J)J
HSPLjava/util/Random;->next(I)I
+PLjava/util/Random;->nextBoolean()Z
HSPLjava/util/Random;->nextBytes([B)V
HSPLjava/util/Random;->nextDouble()D
HSPLjava/util/Random;->nextFloat()F
@@ -13241,17 +40389,25 @@ HSPLjava/util/RegularEnumSet;->access$000(Ljava/util/RegularEnumSet;)J
HSPLjava/util/RegularEnumSet;->add(Ljava/lang/Enum;)Z
HSPLjava/util/RegularEnumSet;->add(Ljava/lang/Object;)Z
HSPLjava/util/RegularEnumSet;->addAll()V
+HSPLjava/util/RegularEnumSet;->addAll(Ljava/util/Collection;)Z
+HPLjava/util/RegularEnumSet;->clear()V
+HSPLjava/util/RegularEnumSet;->complement()V
HSPLjava/util/RegularEnumSet;->contains(Ljava/lang/Object;)Z
+HSPLjava/util/RegularEnumSet;->containsAll(Ljava/util/Collection;)Z
+HPLjava/util/RegularEnumSet;->equals(Ljava/lang/Object;)Z
HSPLjava/util/RegularEnumSet;->isEmpty()Z
HSPLjava/util/RegularEnumSet;->iterator()Ljava/util/Iterator;
+HPLjava/util/RegularEnumSet;->remove(Ljava/lang/Object;)Z
HSPLjava/util/RegularEnumSet;->size()I
HSPLjava/util/ResourceBundle$BundleReference;-><init>(Ljava/util/ResourceBundle;Ljava/lang/ref/ReferenceQueue;Ljava/util/ResourceBundle$CacheKey;)V
+HSPLjava/util/ResourceBundle$BundleReference;->getCacheKey()Ljava/util/ResourceBundle$CacheKey;
HSPLjava/util/ResourceBundle$CacheKey;-><init>(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;)V
HSPLjava/util/ResourceBundle$CacheKey;->access$400(Ljava/util/ResourceBundle$CacheKey;)Ljava/lang/Throwable;
HSPLjava/util/ResourceBundle$CacheKey;->access$600(Ljava/util/ResourceBundle$CacheKey;)J
HSPLjava/util/ResourceBundle$CacheKey;->access$602(Ljava/util/ResourceBundle$CacheKey;J)J
HSPLjava/util/ResourceBundle$CacheKey;->calculateHashCode()V
HSPLjava/util/ResourceBundle$CacheKey;->clone()Ljava/lang/Object;
+HSPLjava/util/ResourceBundle$CacheKey;->equals(Ljava/lang/Object;)Z
HSPLjava/util/ResourceBundle$CacheKey;->getCause()Ljava/lang/Throwable;
HSPLjava/util/ResourceBundle$CacheKey;->getLoader()Ljava/lang/ClassLoader;
HSPLjava/util/ResourceBundle$CacheKey;->getLocale()Ljava/util/Locale;
@@ -13283,9 +40439,11 @@ HSPLjava/util/ResourceBundle;-><init>()V
HSPLjava/util/ResourceBundle;->access$200()Ljava/lang/ref/ReferenceQueue;
HSPLjava/util/ResourceBundle;->findBundle(Ljava/util/ResourceBundle$CacheKey;Ljava/util/List;Ljava/util/List;ILjava/util/ResourceBundle$Control;Ljava/util/ResourceBundle;)Ljava/util/ResourceBundle;
HSPLjava/util/ResourceBundle;->findBundleInCache(Ljava/util/ResourceBundle$CacheKey;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;
+HSPLjava/util/ResourceBundle;->getBundle(Ljava/lang/String;)Ljava/util/ResourceBundle;
HSPLjava/util/ResourceBundle;->getBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;)Ljava/util/ResourceBundle;
HSPLjava/util/ResourceBundle;->getBundleImpl(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;
HSPLjava/util/ResourceBundle;->getDefaultControl(Ljava/lang/String;)Ljava/util/ResourceBundle$Control;
+HSPLjava/util/ResourceBundle;->getLoader(Ljava/lang/Class;)Ljava/lang/ClassLoader;
HSPLjava/util/ResourceBundle;->getObject(Ljava/lang/String;)Ljava/lang/Object;
HSPLjava/util/ResourceBundle;->getString(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/util/ResourceBundle;->isValidBundle(Ljava/util/ResourceBundle;)Z
@@ -13296,37 +40454,85 @@ HSPLjava/util/ResourceBundle;->setParent(Ljava/util/ResourceBundle;)V
HSPLjava/util/Scanner$1;-><init>(Ljava/util/Scanner;I)V
HSPLjava/util/Scanner$1;->create(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/Scanner$1;->create(Ljava/lang/String;)Ljava/util/regex/Pattern;
+HSPLjava/util/Scanner;-><init>(Ljava/io/InputStream;)V
+HSPLjava/util/Scanner;-><init>(Ljava/io/InputStream;Ljava/lang/String;)V
HSPLjava/util/Scanner;-><init>(Ljava/lang/Readable;Ljava/util/regex/Pattern;)V
+HSPLjava/util/Scanner;-><init>(Ljava/lang/String;)V
+HSPLjava/util/Scanner;->cacheResult(Ljava/lang/String;)V
HSPLjava/util/Scanner;->clearCaches()V
+HSPLjava/util/Scanner;->close()V
HSPLjava/util/Scanner;->ensureOpen()V
+HSPLjava/util/Scanner;->findPatternInBuffer(Ljava/util/regex/Pattern;I)Ljava/lang/String;
+HSPLjava/util/Scanner;->findWithinHorizon(Ljava/util/regex/Pattern;I)Ljava/lang/String;
+HSPLjava/util/Scanner;->getCachedResult()Ljava/lang/String;
HSPLjava/util/Scanner;->getCompleteTokenInBuffer(Ljava/util/regex/Pattern;)Ljava/lang/String;
HSPLjava/util/Scanner;->hasNext()Z
+HSPLjava/util/Scanner;->hasNextLine()Z
HSPLjava/util/Scanner;->hasTokenInBuffer()Z
+HSPLjava/util/Scanner;->linePattern()Ljava/util/regex/Pattern;
+HSPLjava/util/Scanner;->makeReadable(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Ljava/lang/Readable;
+HSPLjava/util/Scanner;->makeSpace()Z
+HSPLjava/util/Scanner;->match()Ljava/util/regex/MatchResult;
HSPLjava/util/Scanner;->next()Ljava/lang/String;
+HSPLjava/util/Scanner;->nextLine()Ljava/lang/String;
HSPLjava/util/Scanner;->readInput()V
+HSPLjava/util/Scanner;->revertState()V
HSPLjava/util/Scanner;->revertState(Z)Z
HSPLjava/util/Scanner;->saveState()V
+HSPLjava/util/Scanner;->toCharset(Ljava/lang/String;)Ljava/nio/charset/Charset;
+HSPLjava/util/Scanner;->translateSavedIndexes(I)V
HSPLjava/util/Scanner;->useDelimiter(Ljava/lang/String;)Ljava/util/Scanner;
HSPLjava/util/Scanner;->useLocale(Ljava/util/Locale;)Ljava/util/Scanner;
+HSPLjava/util/ServiceLoader$1;-><init>(Ljava/util/ServiceLoader;)V
+HSPLjava/util/ServiceLoader$1;->hasNext()Z
+HSPLjava/util/ServiceLoader$1;->next()Ljava/lang/Object;
+HSPLjava/util/ServiceLoader$LazyIterator;-><init>(Ljava/util/ServiceLoader;Ljava/lang/Class;Ljava/lang/ClassLoader;)V
+HSPLjava/util/ServiceLoader$LazyIterator;-><init>(Ljava/util/ServiceLoader;Ljava/lang/Class;Ljava/lang/ClassLoader;Ljava/util/ServiceLoader$1;)V
+HSPLjava/util/ServiceLoader$LazyIterator;->hasNext()Z
+HSPLjava/util/ServiceLoader$LazyIterator;->hasNextService()Z
+HSPLjava/util/ServiceLoader$LazyIterator;->next()Ljava/lang/Object;
+HSPLjava/util/ServiceLoader$LazyIterator;->nextService()Ljava/lang/Object;
+HSPLjava/util/ServiceLoader;-><init>(Ljava/lang/Class;Ljava/lang/ClassLoader;)V
+HSPLjava/util/ServiceLoader;->access$200(Ljava/util/ServiceLoader;Ljava/lang/Class;Ljava/net/URL;)Ljava/util/Iterator;
+HSPLjava/util/ServiceLoader;->access$300(Ljava/util/ServiceLoader;)Ljava/util/LinkedHashMap;
+HSPLjava/util/ServiceLoader;->access$400(Ljava/util/ServiceLoader;)Ljava/util/ServiceLoader$LazyIterator;
+HSPLjava/util/ServiceLoader;->iterator()Ljava/util/Iterator;
+HSPLjava/util/ServiceLoader;->load(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
+HSPLjava/util/ServiceLoader;->parse(Ljava/lang/Class;Ljava/net/URL;)Ljava/util/Iterator;
+HSPLjava/util/ServiceLoader;->parseLine(Ljava/lang/Class;Ljava/net/URL;Ljava/io/BufferedReader;ILjava/util/List;)I
+HSPLjava/util/ServiceLoader;->reload()V
+HPLjava/util/Set;->spliterator()Ljava/util/Spliterator;
+HSPLjava/util/SimpleTimeZone;-><init>(ILjava/lang/String;)V
HSPLjava/util/SimpleTimeZone;->clone()Ljava/lang/Object;
HSPLjava/util/SimpleTimeZone;->getOffset(J)I
HSPLjava/util/SimpleTimeZone;->getOffsets(J[I)I
HSPLjava/util/SimpleTimeZone;->getRawOffset()I
HSPLjava/util/SimpleTimeZone;->hasSameRules(Ljava/util/TimeZone;)Z
+HSPLjava/util/Spliterator$OfInt;->forEachRemaining(Ljava/util/function/Consumer;)V
HSPLjava/util/Spliterator;->getExactSizeIfKnown()J
+PLjava/util/Spliterators$ArraySpliterator;-><init>([Ljava/lang/Object;I)V
HSPLjava/util/Spliterators$ArraySpliterator;-><init>([Ljava/lang/Object;III)V
HSPLjava/util/Spliterators$ArraySpliterator;->characteristics()I
HSPLjava/util/Spliterators$ArraySpliterator;->estimateSize()J
HSPLjava/util/Spliterators$ArraySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+HSPLjava/util/Spliterators$ArraySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
+HSPLjava/util/Spliterators$IntArraySpliterator;-><init>([IIII)V
+HSPLjava/util/Spliterators$IntArraySpliterator;->characteristics()I
+HSPLjava/util/Spliterators$IntArraySpliterator;->estimateSize()J
+HSPLjava/util/Spliterators$IntArraySpliterator;->forEachRemaining(Ljava/util/function/IntConsumer;)V
HSPLjava/util/Spliterators$IteratorSpliterator;-><init>(Ljava/util/Collection;I)V
HSPLjava/util/Spliterators$IteratorSpliterator;->characteristics()I
HSPLjava/util/Spliterators$IteratorSpliterator;->estimateSize()J
-HSPLjava/util/Spliterators$IteratorSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+HPLjava/util/Spliterators$IteratorSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+HSPLjava/util/Spliterators$IteratorSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
HSPLjava/util/Spliterators;->checkFromToBounds(III)V
+HPLjava/util/Spliterators;->iterator(Ljava/util/Spliterator;)Ljava/util/Iterator;
HSPLjava/util/Spliterators;->spliterator(Ljava/util/Collection;I)Ljava/util/Spliterator;
+HSPLjava/util/Spliterators;->spliterator([IIII)Ljava/util/Spliterator$OfInt;
+PLjava/util/Spliterators;->spliterator([Ljava/lang/Object;I)Ljava/util/Spliterator;
HSPLjava/util/Spliterators;->spliterator([Ljava/lang/Object;III)Ljava/util/Spliterator;
HSPLjava/util/Stack;-><init>()V
-PLjava/util/Stack;->empty()Z
+HSPLjava/util/Stack;->empty()Z
HSPLjava/util/Stack;->peek()Ljava/lang/Object;
HSPLjava/util/Stack;->pop()Ljava/lang/Object;
HSPLjava/util/Stack;->push(Ljava/lang/Object;)Ljava/lang/Object;
@@ -13334,10 +40540,13 @@ HSPLjava/util/StringJoiner;-><init>(Ljava/lang/CharSequence;)V
HSPLjava/util/StringJoiner;-><init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V
HSPLjava/util/StringJoiner;->add(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
HSPLjava/util/StringJoiner;->prepareBuilder()Ljava/lang/StringBuilder;
+HPLjava/util/StringJoiner;->setEmptyValue(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
HSPLjava/util/StringJoiner;->toString()Ljava/lang/String;
+HSPLjava/util/StringTokenizer;-><init>(Ljava/lang/String;)V
HSPLjava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
HSPLjava/util/StringTokenizer;->countTokens()I
+HSPLjava/util/StringTokenizer;->hasMoreElements()Z
HSPLjava/util/StringTokenizer;->hasMoreTokens()Z
HSPLjava/util/StringTokenizer;->nextToken()Ljava/lang/String;
HSPLjava/util/StringTokenizer;->scanToken(I)I
@@ -13352,17 +40561,21 @@ HSPLjava/util/SubList;->access$000(Ljava/util/SubList;)I
HSPLjava/util/SubList;->access$100(Ljava/util/SubList;)Ljava/util/AbstractList;
HSPLjava/util/SubList;->access$200(Ljava/util/SubList;)I
HSPLjava/util/SubList;->checkForComodification()V
+HSPLjava/util/SubList;->get(I)Ljava/lang/Object;
HSPLjava/util/SubList;->iterator()Ljava/util/Iterator;
HSPLjava/util/SubList;->listIterator(I)Ljava/util/ListIterator;
+HSPLjava/util/SubList;->rangeCheck(I)V
HSPLjava/util/SubList;->rangeCheckForAdd(I)V
+HSPLjava/util/SubList;->size()I
HSPLjava/util/TaskQueue;-><init>()V
HSPLjava/util/TaskQueue;->add(Ljava/util/TimerTask;)V
HSPLjava/util/TaskQueue;->clear()V
-PLjava/util/TaskQueue;->fixDown(I)V
+HSPLjava/util/TaskQueue;->fixDown(I)V
HSPLjava/util/TaskQueue;->fixUp(I)V
HSPLjava/util/TaskQueue;->getMin()Ljava/util/TimerTask;
HSPLjava/util/TaskQueue;->isEmpty()Z
-PLjava/util/TaskQueue;->removeMin()V
+HPLjava/util/TaskQueue;->removeMin()V
+HSPLjava/util/TaskQueue;->rescheduleMin(J)V
HSPLjava/util/TimSort;-><init>([Ljava/lang/Object;Ljava/util/Comparator;[Ljava/lang/Object;II)V
HSPLjava/util/TimSort;->binarySort([Ljava/lang/Object;IIILjava/util/Comparator;)V
HSPLjava/util/TimSort;->countRunAndMakeAscending([Ljava/lang/Object;IILjava/util/Comparator;)I
@@ -13385,6 +40598,8 @@ HSPLjava/util/TimeZone;->createGmtOffsetString(ZZI)Ljava/lang/String;
HSPLjava/util/TimeZone;->getAvailableIDs()[Ljava/lang/String;
HSPLjava/util/TimeZone;->getDefault()Ljava/util/TimeZone;
HSPLjava/util/TimeZone;->getDefaultRef()Ljava/util/TimeZone;
+HPLjava/util/TimeZone;->getDisplayName()Ljava/lang/String;
+HSPLjava/util/TimeZone;->getDisplayName(ZI)Ljava/lang/String;
HSPLjava/util/TimeZone;->getDisplayName(ZILjava/util/Locale;)Ljava/lang/String;
HSPLjava/util/TimeZone;->getID()Ljava/lang/String;
HSPLjava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
@@ -13392,58 +40607,106 @@ HSPLjava/util/TimeZone;->setDefault(Ljava/util/TimeZone;)V
HSPLjava/util/TimeZone;->setID(Ljava/lang/String;)V
HSPLjava/util/TimeZone;->toZoneId()Ljava/time/ZoneId;
HSPLjava/util/Timer$1;-><init>(Ljava/util/Timer;)V
-PLjava/util/Timer$1;->finalize()V
+HSPLjava/util/Timer$1;->finalize()V
HSPLjava/util/Timer;-><init>()V
HSPLjava/util/Timer;-><init>(Ljava/lang/String;)V
-PLjava/util/Timer;->access$000(Ljava/util/Timer;)Ljava/util/TaskQueue;
-PLjava/util/Timer;->access$100(Ljava/util/Timer;)Ljava/util/TimerThread;
+HSPLjava/util/Timer;-><init>(Ljava/lang/String;Z)V
+HSPLjava/util/Timer;-><init>(Z)V
+HSPLjava/util/Timer;->access$000(Ljava/util/Timer;)Ljava/util/TaskQueue;
+HSPLjava/util/Timer;->access$100(Ljava/util/Timer;)Ljava/util/TimerThread;
HSPLjava/util/Timer;->cancel()V
HSPLjava/util/Timer;->sched(Ljava/util/TimerTask;JJ)V
HSPLjava/util/Timer;->schedule(Ljava/util/TimerTask;J)V
+HSPLjava/util/Timer;->schedule(Ljava/util/TimerTask;JJ)V
+HSPLjava/util/Timer;->scheduleAtFixedRate(Ljava/util/TimerTask;JJ)V
HSPLjava/util/Timer;->serialNumber()I
HSPLjava/util/TimerTask;-><init>()V
+HSPLjava/util/TimerTask;->cancel()Z
HSPLjava/util/TimerThread;-><init>(Ljava/util/TaskQueue;)V
HSPLjava/util/TimerThread;->mainLoop()V
HSPLjava/util/TimerThread;->run()V
HSPLjava/util/TreeMap$AscendingSubMap$AscendingEntrySetView;-><init>(Ljava/util/TreeMap$AscendingSubMap;)V
+HPLjava/util/TreeMap$AscendingSubMap$AscendingEntrySetView;->iterator()Ljava/util/Iterator;
HSPLjava/util/TreeMap$AscendingSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
+HPLjava/util/TreeMap$AscendingSubMap;->comparator()Ljava/util/Comparator;
HSPLjava/util/TreeMap$AscendingSubMap;->entrySet()Ljava/util/Set;
-HPLjava/util/TreeMap$AscendingSubMap;->keyIterator()Ljava/util/Iterator;
+HSPLjava/util/TreeMap$AscendingSubMap;->keyIterator()Ljava/util/Iterator;
+HPLjava/util/TreeMap$AscendingSubMap;->subHighest()Ljava/util/TreeMap$TreeMapEntry;
+HPLjava/util/TreeMap$AscendingSubMap;->subLowest()Ljava/util/TreeMap$TreeMapEntry;
+HPLjava/util/TreeMap$DescendingSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
+HPLjava/util/TreeMap$DescendingSubMap;->keyIterator()Ljava/util/Iterator;
HSPLjava/util/TreeMap$EntryIterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V
HSPLjava/util/TreeMap$EntryIterator;->next()Ljava/lang/Object;
HSPLjava/util/TreeMap$EntryIterator;->next()Ljava/util/Map$Entry;
HSPLjava/util/TreeMap$EntrySet;-><init>(Ljava/util/TreeMap;)V
HSPLjava/util/TreeMap$EntrySet;->iterator()Ljava/util/Iterator;
+HSPLjava/util/TreeMap$EntrySet;->size()I
HSPLjava/util/TreeMap$KeyIterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V
HSPLjava/util/TreeMap$KeyIterator;->next()Ljava/lang/Object;
HSPLjava/util/TreeMap$KeySet;-><init>(Ljava/util/NavigableMap;)V
+HPLjava/util/TreeMap$KeySet;->comparator()Ljava/util/Comparator;
+HPLjava/util/TreeMap$KeySet;->contains(Ljava/lang/Object;)Z
+HSPLjava/util/TreeMap$KeySet;->isEmpty()Z
HSPLjava/util/TreeMap$KeySet;->iterator()Ljava/util/Iterator;
HSPLjava/util/TreeMap$KeySet;->size()I
HSPLjava/util/TreeMap$NavigableSubMap$EntrySetView;-><init>(Ljava/util/TreeMap$NavigableSubMap;)V
+HSPLjava/util/TreeMap$NavigableSubMap$EntrySetView;->isEmpty()Z
+HPLjava/util/TreeMap$NavigableSubMap$EntrySetView;->size()I
+HPLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
+HPLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;->next()Ljava/lang/Object;
+PLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;->next()Ljava/util/Map$Entry;
+PLjava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;->remove()V
HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;->hasNext()Z
HSPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;->nextEntry()Ljava/util/TreeMap$TreeMapEntry;
-HPLjava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
+HPLjava/util/TreeMap$NavigableSubMap$SubMapIterator;->prevEntry()Ljava/util/TreeMap$TreeMapEntry;
+PLjava/util/TreeMap$NavigableSubMap$SubMapIterator;->removeAscending()V
+HSPLjava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;-><init>(Ljava/util/TreeMap$NavigableSubMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
+HSPLjava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;->next()Ljava/lang/Object;
HSPLjava/util/TreeMap$NavigableSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
HSPLjava/util/TreeMap$NavigableSubMap;->absHighFence()Ljava/util/TreeMap$TreeMapEntry;
+HPLjava/util/TreeMap$NavigableSubMap;->absHighest()Ljava/util/TreeMap$TreeMapEntry;
+HPLjava/util/TreeMap$NavigableSubMap;->absLowFence()Ljava/util/TreeMap$TreeMapEntry;
HSPLjava/util/TreeMap$NavigableSubMap;->absLowest()Ljava/util/TreeMap$TreeMapEntry;
-PLjava/util/TreeMap$NavigableSubMap;->navigableKeySet()Ljava/util/NavigableSet;
+HPLjava/util/TreeMap$NavigableSubMap;->firstKey()Ljava/lang/Object;
+HPLjava/util/TreeMap$NavigableSubMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HPLjava/util/TreeMap$NavigableSubMap;->inRange(Ljava/lang/Object;)Z
+HSPLjava/util/TreeMap$NavigableSubMap;->isEmpty()Z
+HPLjava/util/TreeMap$NavigableSubMap;->lastKey()Ljava/lang/Object;
+HSPLjava/util/TreeMap$NavigableSubMap;->navigableKeySet()Ljava/util/NavigableSet;
+HPLjava/util/TreeMap$NavigableSubMap;->size()I
HSPLjava/util/TreeMap$NavigableSubMap;->tooHigh(Ljava/lang/Object;)Z
+HPLjava/util/TreeMap$NavigableSubMap;->tooLow(Ljava/lang/Object;)Z
HSPLjava/util/TreeMap$PrivateEntryIterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V
HSPLjava/util/TreeMap$PrivateEntryIterator;->hasNext()Z
HSPLjava/util/TreeMap$PrivateEntryIterator;->nextEntry()Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap$PrivateEntryIterator;->remove()V
HSPLjava/util/TreeMap$TreeMapEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/TreeMap$TreeMapEntry;)V
HSPLjava/util/TreeMap$TreeMapEntry;->getKey()Ljava/lang/Object;
HSPLjava/util/TreeMap$TreeMapEntry;->getValue()Ljava/lang/Object;
+PLjava/util/TreeMap$TreeMapEntry;->setValue(Ljava/lang/Object;)Ljava/lang/Object;
+PLjava/util/TreeMap$TreeMapSpliterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;III)V
+PLjava/util/TreeMap$TreeMapSpliterator;->estimateSize()J
+PLjava/util/TreeMap$TreeMapSpliterator;->getEstimate()I
HSPLjava/util/TreeMap$ValueIterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V
HSPLjava/util/TreeMap$ValueIterator;->next()Ljava/lang/Object;
+PLjava/util/TreeMap$ValueSpliterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;III)V
+PLjava/util/TreeMap$ValueSpliterator;->characteristics()I
+PLjava/util/TreeMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
HSPLjava/util/TreeMap$Values;-><init>(Ljava/util/TreeMap;)V
HSPLjava/util/TreeMap$Values;->iterator()Ljava/util/Iterator;
HSPLjava/util/TreeMap$Values;->size()I
+PLjava/util/TreeMap$Values;->spliterator()Ljava/util/Spliterator;
HSPLjava/util/TreeMap;-><init>()V
HSPLjava/util/TreeMap;-><init>(Ljava/util/Comparator;)V
+HSPLjava/util/TreeMap;-><init>(Ljava/util/Map;)V
+HPLjava/util/TreeMap;-><init>(Ljava/util/SortedMap;)V
+HSPLjava/util/TreeMap;->access$000(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;)V
HSPLjava/util/TreeMap;->access$100(Ljava/util/TreeMap;)I
-PLjava/util/TreeMap;->access$200()Ljava/lang/Object;
+HSPLjava/util/TreeMap;->access$200()Ljava/lang/Object;
+HPLjava/util/TreeMap;->access$300(Ljava/util/TreeMap;)Ljava/util/Comparator;
+PLjava/util/TreeMap;->access$400(Ljava/util/TreeMap;)I
+HSPLjava/util/TreeMap;->addAllForTreeSet(Ljava/util/SortedSet;Ljava/lang/Object;)V
HSPLjava/util/TreeMap;->buildFromSorted(IIIILjava/util/Iterator;Ljava/io/ObjectInputStream;Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
HSPLjava/util/TreeMap;->buildFromSorted(ILjava/util/Iterator;Ljava/io/ObjectInputStream;Ljava/lang/Object;)V
HSPLjava/util/TreeMap;->ceilingEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;
@@ -13456,55 +40719,89 @@ HSPLjava/util/TreeMap;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLjava/util/TreeMap;->computeRedLevel(I)I
HSPLjava/util/TreeMap;->containsKey(Ljava/lang/Object;)Z
HSPLjava/util/TreeMap;->deleteEntry(Ljava/util/TreeMap$TreeMapEntry;)V
+HPLjava/util/TreeMap;->descendingKeySet()Ljava/util/NavigableSet;
+HPLjava/util/TreeMap;->descendingMap()Ljava/util/NavigableMap;
HSPLjava/util/TreeMap;->entrySet()Ljava/util/Set;
HSPLjava/util/TreeMap;->exportEntry(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/Map$Entry;
+HPLjava/util/TreeMap;->firstEntry()Ljava/util/Map$Entry;
HSPLjava/util/TreeMap;->firstKey()Ljava/lang/Object;
HSPLjava/util/TreeMap;->fixAfterDeletion(Ljava/util/TreeMap$TreeMapEntry;)V
HSPLjava/util/TreeMap;->fixAfterInsertion(Ljava/util/TreeMap$TreeMapEntry;)V
+HSPLjava/util/TreeMap;->floorKey(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/TreeMap;->getCeilingEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
HSPLjava/util/TreeMap;->getEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
HSPLjava/util/TreeMap;->getEntryUsingComparator(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
HSPLjava/util/TreeMap;->getFirstEntry()Ljava/util/TreeMap$TreeMapEntry;
-PLjava/util/TreeMap;->getLastEntry()Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap;->getFloorEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap;->getHigherEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap;->getLastEntry()Ljava/util/TreeMap$TreeMapEntry;
+HPLjava/util/TreeMap;->getLowerEntry(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
+HPLjava/util/TreeMap;->headMap(Ljava/lang/Object;)Ljava/util/SortedMap;
+PLjava/util/TreeMap;->headMap(Ljava/lang/Object;Z)Ljava/util/NavigableMap;
+PLjava/util/TreeMap;->higherEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;
+HSPLjava/util/TreeMap;->higherKey(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/TreeMap;->key(Ljava/util/TreeMap$TreeMapEntry;)Ljava/lang/Object;
HSPLjava/util/TreeMap;->keyIterator()Ljava/util/Iterator;
HSPLjava/util/TreeMap;->keyOrNull(Ljava/util/TreeMap$TreeMapEntry;)Ljava/lang/Object;
HSPLjava/util/TreeMap;->keySet()Ljava/util/Set;
+PLjava/util/TreeMap;->lastEntry()Ljava/util/Map$Entry;
+HSPLjava/util/TreeMap;->lastKey()Ljava/lang/Object;
HSPLjava/util/TreeMap;->leftOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
+PLjava/util/TreeMap;->lowerEntry(Ljava/lang/Object;)Ljava/util/Map$Entry;
HSPLjava/util/TreeMap;->navigableKeySet()Ljava/util/NavigableSet;
HSPLjava/util/TreeMap;->parentOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
+HSPLjava/util/TreeMap;->pollFirstEntry()Ljava/util/Map$Entry;
+HPLjava/util/TreeMap;->predecessor(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
HSPLjava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/TreeMap;->putAll(Ljava/util/Map;)V
HSPLjava/util/TreeMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/TreeMap;->rightOf(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
HSPLjava/util/TreeMap;->rotateLeft(Ljava/util/TreeMap$TreeMapEntry;)V
HSPLjava/util/TreeMap;->rotateRight(Ljava/util/TreeMap$TreeMapEntry;)V
HSPLjava/util/TreeMap;->setColor(Ljava/util/TreeMap$TreeMapEntry;Z)V
HSPLjava/util/TreeMap;->size()I
+HPLjava/util/TreeMap;->subMap(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/SortedMap;
HSPLjava/util/TreeMap;->subMap(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/NavigableMap;
HSPLjava/util/TreeMap;->successor(Ljava/util/TreeMap$TreeMapEntry;)Ljava/util/TreeMap$TreeMapEntry;
+HPLjava/util/TreeMap;->tailMap(Ljava/lang/Object;)Ljava/util/SortedMap;
+HSPLjava/util/TreeMap;->tailMap(Ljava/lang/Object;Z)Ljava/util/NavigableMap;
HSPLjava/util/TreeMap;->values()Ljava/util/Collection;
HSPLjava/util/TreeSet;-><init>()V
HSPLjava/util/TreeSet;-><init>(Ljava/util/Collection;)V
HSPLjava/util/TreeSet;-><init>(Ljava/util/Comparator;)V
HSPLjava/util/TreeSet;-><init>(Ljava/util/NavigableMap;)V
+PLjava/util/TreeSet;-><init>(Ljava/util/SortedSet;)V
HSPLjava/util/TreeSet;->add(Ljava/lang/Object;)Z
HSPLjava/util/TreeSet;->addAll(Ljava/util/Collection;)Z
+HSPLjava/util/TreeSet;->ceiling(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/TreeSet;->clear()V
+HSPLjava/util/TreeSet;->comparator()Ljava/util/Comparator;
HSPLjava/util/TreeSet;->contains(Ljava/lang/Object;)Z
+HPLjava/util/TreeSet;->descendingIterator()Ljava/util/Iterator;
HSPLjava/util/TreeSet;->first()Ljava/lang/Object;
+HSPLjava/util/TreeSet;->floor(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/TreeSet;->higher(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/TreeSet;->isEmpty()Z
HSPLjava/util/TreeSet;->iterator()Ljava/util/Iterator;
+HSPLjava/util/TreeSet;->last()Ljava/lang/Object;
+HSPLjava/util/TreeSet;->pollFirst()Ljava/lang/Object;
HSPLjava/util/TreeSet;->remove(Ljava/lang/Object;)Z
HSPLjava/util/TreeSet;->size()I
+HSPLjava/util/TreeSet;->subSet(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/SortedSet;
+HSPLjava/util/TreeSet;->subSet(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/NavigableSet;
+HSPLjava/util/TreeSet;->tailSet(Ljava/lang/Object;)Ljava/util/SortedSet;
+HSPLjava/util/TreeSet;->tailSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;
HSPLjava/util/UUID;-><init>(JJ)V
HSPLjava/util/UUID;-><init>([B)V
+HPLjava/util/UUID;->compareTo(Ljava/util/UUID;)I
HSPLjava/util/UUID;->digits(JI)Ljava/lang/String;
HSPLjava/util/UUID;->equals(Ljava/lang/Object;)Z
HSPLjava/util/UUID;->fromString(Ljava/lang/String;)Ljava/util/UUID;
HSPLjava/util/UUID;->getLeastSignificantBits()J
HSPLjava/util/UUID;->getMostSignificantBits()J
HSPLjava/util/UUID;->hashCode()I
+HPLjava/util/UUID;->nameUUIDFromBytes([B)Ljava/util/UUID;
HSPLjava/util/UUID;->randomUUID()Ljava/util/UUID;
HSPLjava/util/UUID;->toString()Ljava/lang/String;
HSPLjava/util/Vector$1;-><init>(Ljava/util/Vector;)V
@@ -13515,10 +40812,12 @@ HSPLjava/util/Vector$Itr;-><init>(Ljava/util/Vector;Ljava/util/Vector$1;)V
HSPLjava/util/Vector$Itr;->checkForComodification()V
HSPLjava/util/Vector$Itr;->hasNext()Z
HSPLjava/util/Vector$Itr;->next()Ljava/lang/Object;
+PLjava/util/Vector$Itr;->remove()V
HSPLjava/util/Vector;-><init>()V
HSPLjava/util/Vector;-><init>(I)V
HSPLjava/util/Vector;-><init>(II)V
HSPLjava/util/Vector;->add(Ljava/lang/Object;)Z
+HSPLjava/util/Vector;->addAll(Ljava/util/Collection;)Z
HSPLjava/util/Vector;->addElement(Ljava/lang/Object;)V
HSPLjava/util/Vector;->clear()V
HSPLjava/util/Vector;->contains(Ljava/lang/Object;)Z
@@ -13529,14 +40828,32 @@ HSPLjava/util/Vector;->elements()Ljava/util/Enumeration;
HSPLjava/util/Vector;->ensureCapacityHelper(I)V
HSPLjava/util/Vector;->get(I)Ljava/lang/Object;
HSPLjava/util/Vector;->grow(I)V
+HSPLjava/util/Vector;->indexOf(Ljava/lang/Object;)I
HSPLjava/util/Vector;->indexOf(Ljava/lang/Object;I)I
+HPLjava/util/Vector;->insertElementAt(Ljava/lang/Object;I)V
HSPLjava/util/Vector;->isEmpty()Z
HSPLjava/util/Vector;->iterator()Ljava/util/Iterator;
+PLjava/util/Vector;->remove(I)Ljava/lang/Object;
HSPLjava/util/Vector;->removeAllElements()V
+HSPLjava/util/Vector;->removeElement(Ljava/lang/Object;)Z
HSPLjava/util/Vector;->removeElementAt(I)V
+HPLjava/util/Vector;->set(ILjava/lang/Object;)Ljava/lang/Object;
+HPLjava/util/Vector;->setElementAt(Ljava/lang/Object;I)V
HSPLjava/util/Vector;->size()I
+HSPLjava/util/Vector;->sort(Ljava/util/Comparator;)V
+HSPLjava/util/Vector;->toArray()[Ljava/lang/Object;
+HSPLjava/util/Vector;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
HSPLjava/util/WeakHashMap$Entry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;ILjava/util/WeakHashMap$Entry;)V
HSPLjava/util/WeakHashMap$Entry;->getKey()Ljava/lang/Object;
+HSPLjava/util/WeakHashMap$Entry;->getValue()Ljava/lang/Object;
+HSPLjava/util/WeakHashMap$EntryIterator;-><init>(Ljava/util/WeakHashMap;)V
+HSPLjava/util/WeakHashMap$EntryIterator;-><init>(Ljava/util/WeakHashMap;Ljava/util/WeakHashMap$1;)V
+HSPLjava/util/WeakHashMap$EntryIterator;->next()Ljava/lang/Object;
+HSPLjava/util/WeakHashMap$EntryIterator;->next()Ljava/util/Map$Entry;
+HSPLjava/util/WeakHashMap$EntrySet;-><init>(Ljava/util/WeakHashMap;)V
+HSPLjava/util/WeakHashMap$EntrySet;-><init>(Ljava/util/WeakHashMap;Ljava/util/WeakHashMap$1;)V
+HSPLjava/util/WeakHashMap$EntrySet;->iterator()Ljava/util/Iterator;
+HPLjava/util/WeakHashMap$EntrySet;->size()I
HSPLjava/util/WeakHashMap$HashIterator;-><init>(Ljava/util/WeakHashMap;)V
HSPLjava/util/WeakHashMap$HashIterator;->hasNext()Z
HSPLjava/util/WeakHashMap$HashIterator;->nextEntry()Ljava/util/WeakHashMap$Entry;
@@ -13549,6 +40866,7 @@ HSPLjava/util/WeakHashMap$KeySet;->iterator()Ljava/util/Iterator;
HSPLjava/util/WeakHashMap$KeySet;->size()I
HSPLjava/util/WeakHashMap$ValueIterator;-><init>(Ljava/util/WeakHashMap;)V
HSPLjava/util/WeakHashMap$ValueIterator;-><init>(Ljava/util/WeakHashMap;Ljava/util/WeakHashMap$1;)V
+HSPLjava/util/WeakHashMap$ValueIterator;->next()Ljava/lang/Object;
HSPLjava/util/WeakHashMap$Values;-><init>(Ljava/util/WeakHashMap;)V
HSPLjava/util/WeakHashMap$Values;-><init>(Ljava/util/WeakHashMap;Ljava/util/WeakHashMap$1;)V
HSPLjava/util/WeakHashMap$Values;->iterator()Ljava/util/Iterator;
@@ -13557,6 +40875,8 @@ HSPLjava/util/WeakHashMap;-><init>(I)V
HSPLjava/util/WeakHashMap;-><init>(IF)V
HSPLjava/util/WeakHashMap;->clear()V
HSPLjava/util/WeakHashMap;->containsKey(Ljava/lang/Object;)Z
+HSPLjava/util/WeakHashMap;->containsValue(Ljava/lang/Object;)Z
+HSPLjava/util/WeakHashMap;->entrySet()Ljava/util/Set;
HSPLjava/util/WeakHashMap;->eq(Ljava/lang/Object;Ljava/lang/Object;)Z
HSPLjava/util/WeakHashMap;->expungeStaleEntries()V
HSPLjava/util/WeakHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
@@ -13576,52 +40896,117 @@ HSPLjava/util/WeakHashMap;->transfer([Ljava/util/WeakHashMap$Entry;[Ljava/util/W
HSPLjava/util/WeakHashMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/WeakHashMap;->values()Ljava/util/Collection;
HSPLjava/util/concurrent/AbstractExecutorService;-><init>()V
+HPLjava/util/concurrent/AbstractExecutorService;->invokeAll(Ljava/util/Collection;)Ljava/util/List;
+HSPLjava/util/concurrent/AbstractExecutorService;->invokeAll(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/util/List;
HSPLjava/util/concurrent/AbstractExecutorService;->newTaskFor(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/RunnableFuture;
HSPLjava/util/concurrent/AbstractExecutorService;->newTaskFor(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/RunnableFuture;
HSPLjava/util/concurrent/AbstractExecutorService;->submit(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
+HSPLjava/util/concurrent/AbstractExecutorService;->submit(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Future;
HSPLjava/util/concurrent/AbstractExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
HSPLjava/util/concurrent/ArrayBlockingQueue;-><init>(I)V
HSPLjava/util/concurrent/ArrayBlockingQueue;-><init>(IZ)V
+HSPLjava/util/concurrent/ArrayBlockingQueue;->add(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ArrayBlockingQueue;->clear()V
HSPLjava/util/concurrent/ArrayBlockingQueue;->dequeue()Ljava/lang/Object;
+HSPLjava/util/concurrent/ArrayBlockingQueue;->drainTo(Ljava/util/Collection;)I
+HSPLjava/util/concurrent/ArrayBlockingQueue;->drainTo(Ljava/util/Collection;I)I
HSPLjava/util/concurrent/ArrayBlockingQueue;->enqueue(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/ArrayBlockingQueue;->itemAt(I)Ljava/lang/Object;
+HSPLjava/util/concurrent/ArrayBlockingQueue;->iterator()Ljava/util/Iterator;
HSPLjava/util/concurrent/ArrayBlockingQueue;->offer(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ArrayBlockingQueue;->offer(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Z
+HSPLjava/util/concurrent/ArrayBlockingQueue;->peek()Ljava/lang/Object;
+HSPLjava/util/concurrent/ArrayBlockingQueue;->poll()Ljava/lang/Object;
HSPLjava/util/concurrent/ArrayBlockingQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
HSPLjava/util/concurrent/ArrayBlockingQueue;->put(Ljava/lang/Object;)V
-PLjava/util/concurrent/ArrayBlockingQueue;->size()I
+HSPLjava/util/concurrent/ArrayBlockingQueue;->remainingCapacity()I
+HSPLjava/util/concurrent/ArrayBlockingQueue;->size()I
HSPLjava/util/concurrent/ArrayBlockingQueue;->take()Ljava/lang/Object;
+HSPLjava/util/concurrent/CancellationException;-><init>()V
HSPLjava/util/concurrent/CancellationException;-><init>(Ljava/lang/String;)V
+PLjava/util/concurrent/CompletableFuture$AltResult;-><init>(Ljava/lang/Throwable;)V
+HSPLjava/util/concurrent/CompletableFuture$AsyncRun;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;)V
+HSPLjava/util/concurrent/CompletableFuture$AsyncRun;->exec()Z
+HSPLjava/util/concurrent/CompletableFuture$AsyncRun;->run()V
HSPLjava/util/concurrent/CompletableFuture$Completion;-><init>()V
HSPLjava/util/concurrent/CompletableFuture$Signaller;-><init>(ZJJ)V
+PLjava/util/concurrent/CompletableFuture$Signaller;->isLive()Z
+PLjava/util/concurrent/CompletableFuture$UniCompletion;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)V
+PLjava/util/concurrent/CompletableFuture$UniCompletion;->claim()Z
+PLjava/util/concurrent/CompletableFuture$UniWhenComplete;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiConsumer;)V
+PLjava/util/concurrent/CompletableFuture$UniWhenComplete;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
HSPLjava/util/concurrent/CompletableFuture;-><init>()V
+PLjava/util/concurrent/CompletableFuture;-><init>(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/CompletableFuture;->asyncRunStage(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture;
+HSPLjava/util/concurrent/CompletableFuture;->cancel(Z)Z
HSPLjava/util/concurrent/CompletableFuture;->casStack(Ljava/util/concurrent/CompletableFuture$Completion;Ljava/util/concurrent/CompletableFuture$Completion;)Z
+PLjava/util/concurrent/CompletableFuture;->cleanStack()V
HSPLjava/util/concurrent/CompletableFuture;->complete(Ljava/lang/Object;)Z
+PLjava/util/concurrent/CompletableFuture;->completeExceptionally(Ljava/lang/Throwable;)Z
+HSPLjava/util/concurrent/CompletableFuture;->completeNull()Z
HSPLjava/util/concurrent/CompletableFuture;->completeValue(Ljava/lang/Object;)Z
+PLjava/util/concurrent/CompletableFuture;->completedFuture(Ljava/lang/Object;)Ljava/util/concurrent/CompletableFuture;
HSPLjava/util/concurrent/CompletableFuture;->get()Ljava/lang/Object;
+HSPLjava/util/concurrent/CompletableFuture;->get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
+PLjava/util/concurrent/CompletableFuture;->handle(Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
+PLjava/util/concurrent/CompletableFuture;->internalComplete(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/CompletableFuture;->isCancelled()Z
+HPLjava/util/concurrent/CompletableFuture;->isDone()Z
HSPLjava/util/concurrent/CompletableFuture;->lazySetNext(Ljava/util/concurrent/CompletableFuture$Completion;Ljava/util/concurrent/CompletableFuture$Completion;)V
+PLjava/util/concurrent/CompletableFuture;->newIncompleteFuture()Ljava/util/concurrent/CompletableFuture;
HSPLjava/util/concurrent/CompletableFuture;->postComplete()V
+PLjava/util/concurrent/CompletableFuture;->postFire(Ljava/util/concurrent/CompletableFuture;I)Ljava/util/concurrent/CompletableFuture;
+PLjava/util/concurrent/CompletableFuture;->push(Ljava/util/concurrent/CompletableFuture$UniCompletion;)V
HSPLjava/util/concurrent/CompletableFuture;->reportGet(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/CompletableFuture;->runAsync(Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture;
+HPLjava/util/concurrent/CompletableFuture;->timedGet(J)Ljava/lang/Object;
HSPLjava/util/concurrent/CompletableFuture;->tryPushStack(Ljava/util/concurrent/CompletableFuture$Completion;)Z
+PLjava/util/concurrent/CompletableFuture;->uniHandle(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiFunction;Ljava/util/concurrent/CompletableFuture$UniHandle;)Z
+PLjava/util/concurrent/CompletableFuture;->uniHandleStage(Ljava/util/concurrent/Executor;Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
+PLjava/util/concurrent/CompletableFuture;->uniWhenComplete(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture$UniWhenComplete;)Z
+PLjava/util/concurrent/CompletableFuture;->uniWhenCompleteStage(Ljava/util/concurrent/Executor;Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
HSPLjava/util/concurrent/CompletableFuture;->waitingGet(Z)Ljava/lang/Object;
+PLjava/util/concurrent/CompletableFuture;->whenComplete(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
+PLjava/util/concurrent/CompletableFuture;->whenComplete(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletionStage;
HSPLjava/util/concurrent/ConcurrentHashMap$BaseIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
HSPLjava/util/concurrent/ConcurrentHashMap$BaseIterator;->hasNext()Z
+HSPLjava/util/concurrent/ConcurrentHashMap$BaseIterator;->remove()V
HSPLjava/util/concurrent/ConcurrentHashMap$CollectionView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V
+HSPLjava/util/concurrent/ConcurrentHashMap$CollectionView;->size()I
HSPLjava/util/concurrent/ConcurrentHashMap$CollectionView;->toArray()[Ljava/lang/Object;
+PLjava/util/concurrent/ConcurrentHashMap$CounterCell;-><init>(J)V
HSPLjava/util/concurrent/ConcurrentHashMap$EntryIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
HSPLjava/util/concurrent/ConcurrentHashMap$EntryIterator;->next()Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentHashMap$EntryIterator;->next()Ljava/util/Map$Entry;
HSPLjava/util/concurrent/ConcurrentHashMap$EntrySetView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V
HSPLjava/util/concurrent/ConcurrentHashMap$EntrySetView;->iterator()Ljava/util/Iterator;
+HPLjava/util/concurrent/ConcurrentHashMap$EntrySetView;->removeIf(Ljava/util/function/Predicate;)Z
HSPLjava/util/concurrent/ConcurrentHashMap$ForwardingNode;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;)V
+HSPLjava/util/concurrent/ConcurrentHashMap$ForwardingNode;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
HSPLjava/util/concurrent/ConcurrentHashMap$KeyIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
HSPLjava/util/concurrent/ConcurrentHashMap$KeyIterator;->next()Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentHashMap$KeySetView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;Ljava/lang/Object;)V
+HSPLjava/util/concurrent/ConcurrentHashMap$KeySetView;->add(Ljava/lang/Object;)Z
HSPLjava/util/concurrent/ConcurrentHashMap$KeySetView;->iterator()Ljava/util/Iterator;
+HPLjava/util/concurrent/ConcurrentHashMap$KeySetView;->spliterator()Ljava/util/Spliterator;
+HPLjava/util/concurrent/ConcurrentHashMap$KeySpliterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIIJ)V
HSPLjava/util/concurrent/ConcurrentHashMap$MapEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap;)V
HSPLjava/util/concurrent/ConcurrentHashMap$MapEntry;->getKey()Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentHashMap$MapEntry;->getValue()Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentHashMap$Node;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap$Node;)V
+HSPLjava/util/concurrent/ConcurrentHashMap$ReservationNode;-><init>()V
HSPLjava/util/concurrent/ConcurrentHashMap$Traverser;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;III)V
HSPLjava/util/concurrent/ConcurrentHashMap$Traverser;->advance()Ljava/util/concurrent/ConcurrentHashMap$Node;
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;-><init>(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)V
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->balanceInsertion(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->lockRoot()V
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->putTreeVal(ILjava/lang/Object;Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->rotateLeft(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->rotateRight(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeBin;->unlockRoot()V
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeNode;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)V
+HSPLjava/util/concurrent/ConcurrentHashMap$TreeNode;->findTreeNode(ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
HSPLjava/util/concurrent/ConcurrentHashMap$ValueIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
HSPLjava/util/concurrent/ConcurrentHashMap$ValueIterator;->next()Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentHashMap$ValuesView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V
@@ -13629,20 +41014,28 @@ HSPLjava/util/concurrent/ConcurrentHashMap$ValuesView;->iterator()Ljava/util/Ite
HSPLjava/util/concurrent/ConcurrentHashMap;-><init>()V
HSPLjava/util/concurrent/ConcurrentHashMap;-><init>(I)V
HSPLjava/util/concurrent/ConcurrentHashMap;-><init>(IFI)V
+HSPLjava/util/concurrent/ConcurrentHashMap;-><init>(Ljava/util/Map;)V
HSPLjava/util/concurrent/ConcurrentHashMap;->addCount(JI)V
HSPLjava/util/concurrent/ConcurrentHashMap;->casTabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;ILjava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$Node;)Z
HSPLjava/util/concurrent/ConcurrentHashMap;->clear()V
+HSPLjava/util/concurrent/ConcurrentHashMap;->computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentHashMap;->containsKey(Ljava/lang/Object;)Z
HSPLjava/util/concurrent/ConcurrentHashMap;->entrySet()Ljava/util/Set;
+PLjava/util/concurrent/ConcurrentHashMap;->fullAddCount(JZ)V
HSPLjava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentHashMap;->helpTransfer([Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$Node;)[Ljava/util/concurrent/ConcurrentHashMap$Node;
HSPLjava/util/concurrent/ConcurrentHashMap;->initTable()[Ljava/util/concurrent/ConcurrentHashMap$Node;
HSPLjava/util/concurrent/ConcurrentHashMap;->isEmpty()Z
HSPLjava/util/concurrent/ConcurrentHashMap;->keySet()Ljava/util/Set;
HSPLjava/util/concurrent/ConcurrentHashMap;->mappingCount()J
+HSPLjava/util/concurrent/ConcurrentHashMap;->newKeySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
HSPLjava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentHashMap;->putAll(Ljava/util/Map;)V
HSPLjava/util/concurrent/ConcurrentHashMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentHashMap;->putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z
+HPLjava/util/concurrent/ConcurrentHashMap;->removeEntryIf(Ljava/util/function/Predicate;)Z
HSPLjava/util/concurrent/ConcurrentHashMap;->replace(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
HSPLjava/util/concurrent/ConcurrentHashMap;->replaceNode(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentHashMap;->resizeStamp(I)I
@@ -13652,10 +41045,52 @@ HSPLjava/util/concurrent/ConcurrentHashMap;->spread(I)I
HSPLjava/util/concurrent/ConcurrentHashMap;->sumCount()J
HSPLjava/util/concurrent/ConcurrentHashMap;->tabAt([Ljava/util/concurrent/ConcurrentHashMap$Node;I)Ljava/util/concurrent/ConcurrentHashMap$Node;
HSPLjava/util/concurrent/ConcurrentHashMap;->tableSizeFor(I)I
+HPLjava/util/concurrent/ConcurrentHashMap;->toString()Ljava/lang/String;
HSPLjava/util/concurrent/ConcurrentHashMap;->transfer([Ljava/util/concurrent/ConcurrentHashMap$Node;[Ljava/util/concurrent/ConcurrentHashMap$Node;)V
+HSPLjava/util/concurrent/ConcurrentHashMap;->treeifyBin([Ljava/util/concurrent/ConcurrentHashMap$Node;I)V
+HSPLjava/util/concurrent/ConcurrentHashMap;->tryPresize(I)V
HSPLjava/util/concurrent/ConcurrentHashMap;->values()Ljava/util/Collection;
+HPLjava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;-><init>(Ljava/util/concurrent/ConcurrentLinkedDeque;)V
+PLjava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->advance()V
+PLjava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->hasNext()Z
+PLjava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->next()Ljava/lang/Object;
+PLjava/util/concurrent/ConcurrentLinkedDeque$DescendingItr;-><init>(Ljava/util/concurrent/ConcurrentLinkedDeque;)V
+PLjava/util/concurrent/ConcurrentLinkedDeque$DescendingItr;-><init>(Ljava/util/concurrent/ConcurrentLinkedDeque;Ljava/util/concurrent/ConcurrentLinkedDeque$1;)V
+PLjava/util/concurrent/ConcurrentLinkedDeque$DescendingItr;->nextNode(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+PLjava/util/concurrent/ConcurrentLinkedDeque$DescendingItr;->startNode()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+PLjava/util/concurrent/ConcurrentLinkedDeque$Itr;-><init>(Ljava/util/concurrent/ConcurrentLinkedDeque;)V
+PLjava/util/concurrent/ConcurrentLinkedDeque$Itr;-><init>(Ljava/util/concurrent/ConcurrentLinkedDeque;Ljava/util/concurrent/ConcurrentLinkedDeque$1;)V
+PLjava/util/concurrent/ConcurrentLinkedDeque$Itr;->nextNode(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+PLjava/util/concurrent/ConcurrentLinkedDeque$Itr;->startNode()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;-><init>(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;->casItem(Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;->casNext(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;->casPrev(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;->lazySetNext(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque$Node;->lazySetPrev(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
HSPLjava/util/concurrent/ConcurrentLinkedDeque;-><init>()V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->add(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->casTail(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
+PLjava/util/concurrent/ConcurrentLinkedDeque;->clear()V
+PLjava/util/concurrent/ConcurrentLinkedDeque;->descendingIterator()Ljava/util/Iterator;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->first()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+PLjava/util/concurrent/ConcurrentLinkedDeque;->iterator()Ljava/util/Iterator;
+PLjava/util/concurrent/ConcurrentLinkedDeque;->last()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->linkLast(Ljava/lang/Object;)V
+PLjava/util/concurrent/ConcurrentLinkedDeque;->nextTerminator()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->offerLast(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->poll()Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->pollFirst()Ljava/lang/Object;
+PLjava/util/concurrent/ConcurrentLinkedDeque;->pred(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->prevTerminator()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->size()I
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->skipDeletedPredecessors(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->skipDeletedSuccessors(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->succ(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->unlink(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->unlinkLast(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->updateHead()V
+HSPLjava/util/concurrent/ConcurrentLinkedDeque;->updateTail()V
HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;-><init>(Ljava/util/concurrent/ConcurrentLinkedQueue;)V
HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;->hasNext()Z
HSPLjava/util/concurrent/ConcurrentLinkedQueue$Itr;->next()Ljava/lang/Object;
@@ -13675,32 +41110,57 @@ HSPLjava/util/concurrent/ConcurrentLinkedQueue;->iterator()Ljava/util/Iterator;
HSPLjava/util/concurrent/ConcurrentLinkedQueue;->lazySetNext(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
HSPLjava/util/concurrent/ConcurrentLinkedQueue;->newNode(Ljava/lang/Object;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
HSPLjava/util/concurrent/ConcurrentLinkedQueue;->offer(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ConcurrentLinkedQueue;->peek()Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentLinkedQueue;->poll()Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentLinkedQueue;->remove(Ljava/lang/Object;)Z
HSPLjava/util/concurrent/ConcurrentLinkedQueue;->size()I
HSPLjava/util/concurrent/ConcurrentLinkedQueue;->succ(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
HSPLjava/util/concurrent/ConcurrentLinkedQueue;->toArray()[Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentLinkedQueue;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentLinkedQueue;->toArrayInternal([Ljava/lang/Object;)[Ljava/lang/Object;
+HPLjava/util/concurrent/ConcurrentLinkedQueue;->toString()Ljava/lang/String;
HSPLjava/util/concurrent/ConcurrentLinkedQueue;->updateHead(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
HSPLjava/util/concurrent/ConcurrentSkipListMap$HeadIndex;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;I)V
HSPLjava/util/concurrent/ConcurrentSkipListMap$Index;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;)V
HSPLjava/util/concurrent/ConcurrentSkipListMap$Index;->casRight(Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;)Z
HSPLjava/util/concurrent/ConcurrentSkipListMap$Index;->link(Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;)Z
HSPLjava/util/concurrent/ConcurrentSkipListMap$Index;->unlink(Ljava/util/concurrent/ConcurrentSkipListMap$Index;)Z
+HSPLjava/util/concurrent/ConcurrentSkipListMap$Iter;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap;)V
+HSPLjava/util/concurrent/ConcurrentSkipListMap$Iter;->advance()V
+HSPLjava/util/concurrent/ConcurrentSkipListMap$Iter;->hasNext()Z
HSPLjava/util/concurrent/ConcurrentSkipListMap$Node;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentSkipListMap$Node;)V
HSPLjava/util/concurrent/ConcurrentSkipListMap$Node;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap$Node;)V
HSPLjava/util/concurrent/ConcurrentSkipListMap$Node;->appendMarker(Ljava/util/concurrent/ConcurrentSkipListMap$Node;)Z
HSPLjava/util/concurrent/ConcurrentSkipListMap$Node;->casNext(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Node;)Z
HSPLjava/util/concurrent/ConcurrentSkipListMap$Node;->casValue(Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ConcurrentSkipListMap$ValueIterator;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap;)V
+HSPLjava/util/concurrent/ConcurrentSkipListMap$ValueIterator;->next()Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentSkipListMap$Values;-><init>(Ljava/util/concurrent/ConcurrentNavigableMap;)V
+HSPLjava/util/concurrent/ConcurrentSkipListMap$Values;->iterator()Ljava/util/Iterator;
HSPLjava/util/concurrent/ConcurrentSkipListMap;-><init>()V
+HSPLjava/util/concurrent/ConcurrentSkipListMap;-><init>(Ljava/util/Comparator;)V
HSPLjava/util/concurrent/ConcurrentSkipListMap;->casHead(Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;)Z
+HPLjava/util/concurrent/ConcurrentSkipListMap;->clear()V
+HSPLjava/util/concurrent/ConcurrentSkipListMap;->containsKey(Ljava/lang/Object;)Z
HSPLjava/util/concurrent/ConcurrentSkipListMap;->cpr(Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLjava/util/concurrent/ConcurrentSkipListMap;->doGet(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentSkipListMap;->doPut(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentSkipListMap;->doRemove(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentSkipListMap;->findFirst()Ljava/util/concurrent/ConcurrentSkipListMap$Node;
HSPLjava/util/concurrent/ConcurrentSkipListMap;->findPredecessor(Ljava/lang/Object;Ljava/util/Comparator;)Ljava/util/concurrent/ConcurrentSkipListMap$Node;
+HSPLjava/util/concurrent/ConcurrentSkipListMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentSkipListMap;->initialize()V
HSPLjava/util/concurrent/ConcurrentSkipListMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentSkipListMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/concurrent/ConcurrentSkipListMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/ConcurrentSkipListMap;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z
HSPLjava/util/concurrent/ConcurrentSkipListMap;->tryReduceLevel()V
+HSPLjava/util/concurrent/ConcurrentSkipListMap;->values()Ljava/util/Collection;
+HSPLjava/util/concurrent/ConcurrentSkipListSet;-><init>()V
+HSPLjava/util/concurrent/ConcurrentSkipListSet;->add(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ConcurrentSkipListSet;->contains(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ConcurrentSkipListSet;->remove(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/ConcurrentSkipListSet;->removeAll(Ljava/util/Collection;)Z
HSPLjava/util/concurrent/CopyOnWriteArrayList$COWIterator;-><init>([Ljava/lang/Object;I)V
HSPLjava/util/concurrent/CopyOnWriteArrayList$COWIterator;->hasNext()Z
HSPLjava/util/concurrent/CopyOnWriteArrayList$COWIterator;->next()Ljava/lang/Object;
@@ -13714,21 +41174,37 @@ HSPLjava/util/concurrent/CopyOnWriteArrayList;->addIfAbsent(Ljava/lang/Object;)Z
HSPLjava/util/concurrent/CopyOnWriteArrayList;->addIfAbsent(Ljava/lang/Object;[Ljava/lang/Object;)Z
HSPLjava/util/concurrent/CopyOnWriteArrayList;->clear()V
HSPLjava/util/concurrent/CopyOnWriteArrayList;->contains(Ljava/lang/Object;)Z
+HPLjava/util/concurrent/CopyOnWriteArrayList;->forEach(Ljava/util/function/Consumer;)V
HSPLjava/util/concurrent/CopyOnWriteArrayList;->get(I)Ljava/lang/Object;
HSPLjava/util/concurrent/CopyOnWriteArrayList;->get([Ljava/lang/Object;I)Ljava/lang/Object;
HSPLjava/util/concurrent/CopyOnWriteArrayList;->getArray()[Ljava/lang/Object;
+HPLjava/util/concurrent/CopyOnWriteArrayList;->indexOf(Ljava/lang/Object;)I
HSPLjava/util/concurrent/CopyOnWriteArrayList;->indexOf(Ljava/lang/Object;[Ljava/lang/Object;II)I
HSPLjava/util/concurrent/CopyOnWriteArrayList;->isEmpty()Z
HSPLjava/util/concurrent/CopyOnWriteArrayList;->iterator()Ljava/util/Iterator;
+HSPLjava/util/concurrent/CopyOnWriteArrayList;->remove(I)Ljava/lang/Object;
HSPLjava/util/concurrent/CopyOnWriteArrayList;->remove(Ljava/lang/Object;)Z
HSPLjava/util/concurrent/CopyOnWriteArrayList;->remove(Ljava/lang/Object;[Ljava/lang/Object;I)Z
+HSPLjava/util/concurrent/CopyOnWriteArrayList;->removeAll(Ljava/util/Collection;)Z
HSPLjava/util/concurrent/CopyOnWriteArrayList;->setArray([Ljava/lang/Object;)V
HSPLjava/util/concurrent/CopyOnWriteArrayList;->size()I
+PLjava/util/concurrent/CopyOnWriteArrayList;->sort(Ljava/util/Comparator;)V
+HPLjava/util/concurrent/CopyOnWriteArrayList;->toArray()[Ljava/lang/Object;
HSPLjava/util/concurrent/CopyOnWriteArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
HSPLjava/util/concurrent/CopyOnWriteArraySet;-><init>()V
+HSPLjava/util/concurrent/CopyOnWriteArraySet;-><init>(Ljava/util/Collection;)V
HSPLjava/util/concurrent/CopyOnWriteArraySet;->add(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/CopyOnWriteArraySet;->addAll(Ljava/util/Collection;)Z
+HSPLjava/util/concurrent/CopyOnWriteArraySet;->clear()V
+HSPLjava/util/concurrent/CopyOnWriteArraySet;->compareSets([Ljava/lang/Object;Ljava/util/Set;)I
+HSPLjava/util/concurrent/CopyOnWriteArraySet;->contains(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/CopyOnWriteArraySet;->containsAll(Ljava/util/Collection;)Z
+HPLjava/util/concurrent/CopyOnWriteArraySet;->forEach(Ljava/util/function/Consumer;)V
HSPLjava/util/concurrent/CopyOnWriteArraySet;->isEmpty()Z
HSPLjava/util/concurrent/CopyOnWriteArraySet;->iterator()Ljava/util/Iterator;
+HSPLjava/util/concurrent/CopyOnWriteArraySet;->remove(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/CopyOnWriteArraySet;->removeAll(Ljava/util/Collection;)Z
+HSPLjava/util/concurrent/CopyOnWriteArraySet;->size()I
HSPLjava/util/concurrent/CountDownLatch$Sync;-><init>(I)V
HSPLjava/util/concurrent/CountDownLatch$Sync;->getCount()I
HSPLjava/util/concurrent/CountDownLatch$Sync;->tryAcquireShared(I)I
@@ -13738,22 +41214,35 @@ HSPLjava/util/concurrent/CountDownLatch;->await()V
HSPLjava/util/concurrent/CountDownLatch;->await(JLjava/util/concurrent/TimeUnit;)Z
HSPLjava/util/concurrent/CountDownLatch;->countDown()V
HSPLjava/util/concurrent/CountDownLatch;->getCount()J
+HSPLjava/util/concurrent/DelayQueue;-><init>()V
+HSPLjava/util/concurrent/DelayQueue;->add(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/DelayQueue;->add(Ljava/util/concurrent/Delayed;)Z
+HSPLjava/util/concurrent/DelayQueue;->offer(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/DelayQueue;->offer(Ljava/util/concurrent/Delayed;)Z
+HSPLjava/util/concurrent/DelayQueue;->take()Ljava/lang/Object;
+HSPLjava/util/concurrent/DelayQueue;->take()Ljava/util/concurrent/Delayed;
HSPLjava/util/concurrent/ExecutionException;-><init>(Ljava/lang/Throwable;)V
HSPLjava/util/concurrent/Executors$DefaultThreadFactory;-><init>()V
HSPLjava/util/concurrent/Executors$DefaultThreadFactory;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
HSPLjava/util/concurrent/Executors$DelegatedExecutorService;-><init>(Ljava/util/concurrent/ExecutorService;)V
+HPLjava/util/concurrent/Executors$DelegatedExecutorService;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z
HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->execute(Ljava/lang/Runnable;)V
HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->isShutdown()Z
+HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->isTerminated()Z
HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->shutdown()V
HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->shutdownNow()Ljava/util/List;
HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->submit(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
HSPLjava/util/concurrent/Executors$DelegatedExecutorService;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
HSPLjava/util/concurrent/Executors$DelegatedScheduledExecutorService;-><init>(Ljava/util/concurrent/ScheduledExecutorService;)V
HSPLjava/util/concurrent/Executors$DelegatedScheduledExecutorService;->schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
+HSPLjava/util/concurrent/Executors$DelegatedScheduledExecutorService;->schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
+HSPLjava/util/concurrent/Executors$DelegatedScheduledExecutorService;->scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
+HSPLjava/util/concurrent/Executors$DelegatedScheduledExecutorService;->scheduleWithFixedDelay(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
HSPLjava/util/concurrent/Executors$FinalizableDelegatedExecutorService;-><init>(Ljava/util/concurrent/ExecutorService;)V
HSPLjava/util/concurrent/Executors$FinalizableDelegatedExecutorService;->finalize()V
HSPLjava/util/concurrent/Executors$RunnableAdapter;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
HSPLjava/util/concurrent/Executors$RunnableAdapter;->call()Ljava/lang/Object;
+HSPLjava/util/concurrent/Executors;->callable(Ljava/lang/Runnable;)Ljava/util/concurrent/Callable;
HSPLjava/util/concurrent/Executors;->callable(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Callable;
HSPLjava/util/concurrent/Executors;->defaultThreadFactory()Ljava/util/concurrent/ThreadFactory;
HSPLjava/util/concurrent/Executors;->newCachedThreadPool()Ljava/util/concurrent/ExecutorService;
@@ -13768,8 +41257,45 @@ HSPLjava/util/concurrent/Executors;->newSingleThreadScheduledExecutor()Ljava/uti
HSPLjava/util/concurrent/Executors;->newSingleThreadScheduledExecutor(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
HSPLjava/util/concurrent/Executors;->unconfigurableExecutorService(Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/ExecutorService;
HSPLjava/util/concurrent/Executors;->unconfigurableScheduledExecutorService(Ljava/util/concurrent/ScheduledExecutorService;)Ljava/util/concurrent/ScheduledExecutorService;
+HSPLjava/util/concurrent/ForkJoinPool$AuxState;-><init>()V
+HSPLjava/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory;->newThread(Ljava/util/concurrent/ForkJoinPool;)Ljava/util/concurrent/ForkJoinWorkerThread;
+HSPLjava/util/concurrent/ForkJoinPool$WorkQueue;-><clinit>()V
+HSPLjava/util/concurrent/ForkJoinPool$WorkQueue;-><init>(Ljava/util/concurrent/ForkJoinPool;Ljava/util/concurrent/ForkJoinWorkerThread;)V
+PLjava/util/concurrent/ForkJoinPool$WorkQueue;->cancelAll()V
+HSPLjava/util/concurrent/ForkJoinPool$WorkQueue;->growArray()[Ljava/util/concurrent/ForkJoinTask;
+HSPLjava/util/concurrent/ForkJoinPool$WorkQueue;->localPopAndExec()V
+PLjava/util/concurrent/ForkJoinPool$WorkQueue;->poll()Ljava/util/concurrent/ForkJoinTask;
+HSPLjava/util/concurrent/ForkJoinPool$WorkQueue;->runTask(Ljava/util/concurrent/ForkJoinTask;)V
+HSPLjava/util/concurrent/ForkJoinPool$WorkQueue;->sharedPush(Ljava/util/concurrent/ForkJoinTask;)I
+HSPLjava/util/concurrent/ForkJoinPool;->awaitWork(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)I
+HSPLjava/util/concurrent/ForkJoinPool;->createWorker(Z)Z
+PLjava/util/concurrent/ForkJoinPool;->deregisterWorker(Ljava/util/concurrent/ForkJoinWorkerThread;Ljava/lang/Throwable;)V
+HSPLjava/util/concurrent/ForkJoinPool;->execute(Ljava/lang/Runnable;)V
+HSPLjava/util/concurrent/ForkJoinPool;->externalPush(Ljava/util/concurrent/ForkJoinTask;)V
+HSPLjava/util/concurrent/ForkJoinPool;->externalSubmit(Ljava/util/concurrent/ForkJoinTask;)Ljava/util/concurrent/ForkJoinTask;
+HSPLjava/util/concurrent/ForkJoinPool;->inactivate(Ljava/util/concurrent/ForkJoinPool$WorkQueue;I)V
HSPLjava/util/concurrent/ForkJoinPool;->managedBlock(Ljava/util/concurrent/ForkJoinPool$ManagedBlocker;)V
+HSPLjava/util/concurrent/ForkJoinPool;->registerWorker(Ljava/util/concurrent/ForkJoinWorkerThread;)Ljava/util/concurrent/ForkJoinPool$WorkQueue;
+HSPLjava/util/concurrent/ForkJoinPool;->runWorker(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
+HSPLjava/util/concurrent/ForkJoinPool;->scan(Ljava/util/concurrent/ForkJoinPool$WorkQueue;III)I
+HSPLjava/util/concurrent/ForkJoinPool;->signalWork()V
+HSPLjava/util/concurrent/ForkJoinPool;->timedAwaitWork(Ljava/util/concurrent/ForkJoinPool$WorkQueue;J)I
+HSPLjava/util/concurrent/ForkJoinPool;->tryAddWorker(J)V
+HSPLjava/util/concurrent/ForkJoinPool;->tryCreateExternalQueue(I)V
+HSPLjava/util/concurrent/ForkJoinPool;->tryInitialize(Z)V
+PLjava/util/concurrent/ForkJoinPool;->tryTerminate(ZZ)I
HSPLjava/util/concurrent/ForkJoinTask;-><init>()V
+PLjava/util/concurrent/ForkJoinTask;->compareAndSetForkJoinTaskTag(SS)Z
+HSPLjava/util/concurrent/ForkJoinTask;->doExec()I
+PLjava/util/concurrent/ForkJoinTask;->expungeStaleExceptions()V
+PLjava/util/concurrent/ForkJoinTask;->helpExpungeStaleExceptions()V
+HSPLjava/util/concurrent/ForkJoinTask;->setCompletion(I)I
+HSPLjava/util/concurrent/ForkJoinWorkerThread;-><clinit>()V
+HSPLjava/util/concurrent/ForkJoinWorkerThread;-><init>(Ljava/util/concurrent/ForkJoinPool;)V
+HSPLjava/util/concurrent/ForkJoinWorkerThread;->afterTopLevelExec()V
+HSPLjava/util/concurrent/ForkJoinWorkerThread;->onStart()V
+PLjava/util/concurrent/ForkJoinWorkerThread;->onTermination(Ljava/lang/Throwable;)V
+HSPLjava/util/concurrent/ForkJoinWorkerThread;->run()V
HSPLjava/util/concurrent/FutureTask$WaitNode;-><init>()V
HSPLjava/util/concurrent/FutureTask;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
HSPLjava/util/concurrent/FutureTask;-><init>(Ljava/util/concurrent/Callable;)V
@@ -13782,38 +41308,88 @@ HSPLjava/util/concurrent/FutureTask;->get(JLjava/util/concurrent/TimeUnit;)Ljava
HSPLjava/util/concurrent/FutureTask;->handlePossibleCancellationInterrupt(I)V
HSPLjava/util/concurrent/FutureTask;->isCancelled()Z
HSPLjava/util/concurrent/FutureTask;->isDone()Z
-PLjava/util/concurrent/FutureTask;->removeWaiter(Ljava/util/concurrent/FutureTask$WaitNode;)V
+HSPLjava/util/concurrent/FutureTask;->removeWaiter(Ljava/util/concurrent/FutureTask$WaitNode;)V
HSPLjava/util/concurrent/FutureTask;->report(I)Ljava/lang/Object;
HSPLjava/util/concurrent/FutureTask;->run()V
HSPLjava/util/concurrent/FutureTask;->runAndReset()Z
HSPLjava/util/concurrent/FutureTask;->set(Ljava/lang/Object;)V
-HSPLjava/util/concurrent/FutureTask;->setException(Ljava/lang/Throwable;)V
+PLjava/util/concurrent/FutureTask;->setException(Ljava/lang/Throwable;)V
+HSPLjava/util/concurrent/LinkedBlockingDeque$AbstractItr;-><init>(Ljava/util/concurrent/LinkedBlockingDeque;)V
+HPLjava/util/concurrent/LinkedBlockingDeque$AbstractItr;->advance()V
+HSPLjava/util/concurrent/LinkedBlockingDeque$AbstractItr;->hasNext()Z
+PLjava/util/concurrent/LinkedBlockingDeque$AbstractItr;->next()Ljava/lang/Object;
+PLjava/util/concurrent/LinkedBlockingDeque$AbstractItr;->succ(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Ljava/util/concurrent/LinkedBlockingDeque$Node;
+HSPLjava/util/concurrent/LinkedBlockingDeque$Itr;-><init>(Ljava/util/concurrent/LinkedBlockingDeque;)V
+HSPLjava/util/concurrent/LinkedBlockingDeque$Itr;-><init>(Ljava/util/concurrent/LinkedBlockingDeque;Ljava/util/concurrent/LinkedBlockingDeque$1;)V
+HSPLjava/util/concurrent/LinkedBlockingDeque$Itr;->firstNode()Ljava/util/concurrent/LinkedBlockingDeque$Node;
+PLjava/util/concurrent/LinkedBlockingDeque$Itr;->nextNode(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Ljava/util/concurrent/LinkedBlockingDeque$Node;
HSPLjava/util/concurrent/LinkedBlockingDeque$Node;-><init>(Ljava/lang/Object;)V
HSPLjava/util/concurrent/LinkedBlockingDeque;-><init>()V
HSPLjava/util/concurrent/LinkedBlockingDeque;-><init>(I)V
+HSPLjava/util/concurrent/LinkedBlockingDeque;->add(Ljava/lang/Object;)Z
+PLjava/util/concurrent/LinkedBlockingDeque;->addFirst(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/LinkedBlockingDeque;->addLast(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/LinkedBlockingDeque;->clear()V
+HSPLjava/util/concurrent/LinkedBlockingDeque;->drainTo(Ljava/util/Collection;)I
+HSPLjava/util/concurrent/LinkedBlockingDeque;->drainTo(Ljava/util/Collection;I)I
+HPLjava/util/concurrent/LinkedBlockingDeque;->getFirst()Ljava/lang/Object;
+HPLjava/util/concurrent/LinkedBlockingDeque;->getLast()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingDeque;->iterator()Ljava/util/Iterator;
+PLjava/util/concurrent/LinkedBlockingDeque;->linkFirst(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Z
HSPLjava/util/concurrent/LinkedBlockingDeque;->linkLast(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Z
+HSPLjava/util/concurrent/LinkedBlockingDeque;->offer(Ljava/lang/Object;)Z
+PLjava/util/concurrent/LinkedBlockingDeque;->offerFirst(Ljava/lang/Object;)Z
HSPLjava/util/concurrent/LinkedBlockingDeque;->offerLast(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/LinkedBlockingDeque;->peek()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingDeque;->peekFirst()Ljava/lang/Object;
+HPLjava/util/concurrent/LinkedBlockingDeque;->peekLast()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingDeque;->poll()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingDeque;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingDeque;->pollFirst()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingDeque;->pollFirst(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
+PLjava/util/concurrent/LinkedBlockingDeque;->pop()Ljava/lang/Object;
+HPLjava/util/concurrent/LinkedBlockingDeque;->put(Ljava/lang/Object;)V
+HPLjava/util/concurrent/LinkedBlockingDeque;->putLast(Ljava/lang/Object;)V
+PLjava/util/concurrent/LinkedBlockingDeque;->remainingCapacity()I
+HPLjava/util/concurrent/LinkedBlockingDeque;->remove()Ljava/lang/Object;
+HPLjava/util/concurrent/LinkedBlockingDeque;->remove(Ljava/lang/Object;)Z
+PLjava/util/concurrent/LinkedBlockingDeque;->removeFirst()Ljava/lang/Object;
+HPLjava/util/concurrent/LinkedBlockingDeque;->removeFirstOccurrence(Ljava/lang/Object;)Z
HSPLjava/util/concurrent/LinkedBlockingDeque;->size()I
HSPLjava/util/concurrent/LinkedBlockingDeque;->take()Ljava/lang/Object;
HSPLjava/util/concurrent/LinkedBlockingDeque;->takeFirst()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingDeque;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
+HPLjava/util/concurrent/LinkedBlockingDeque;->unlink(Ljava/util/concurrent/LinkedBlockingDeque$Node;)V
HSPLjava/util/concurrent/LinkedBlockingDeque;->unlinkFirst()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingQueue$Itr;-><init>(Ljava/util/concurrent/LinkedBlockingQueue;)V
+HSPLjava/util/concurrent/LinkedBlockingQueue$Itr;->hasNext()Z
+HSPLjava/util/concurrent/LinkedBlockingQueue$Itr;->next()Ljava/lang/Object;
HSPLjava/util/concurrent/LinkedBlockingQueue$Node;-><init>(Ljava/lang/Object;)V
HSPLjava/util/concurrent/LinkedBlockingQueue;-><init>()V
HSPLjava/util/concurrent/LinkedBlockingQueue;-><init>(I)V
+HSPLjava/util/concurrent/LinkedBlockingQueue;->clear()V
HSPLjava/util/concurrent/LinkedBlockingQueue;->dequeue()Ljava/lang/Object;
HSPLjava/util/concurrent/LinkedBlockingQueue;->drainTo(Ljava/util/Collection;)I
HSPLjava/util/concurrent/LinkedBlockingQueue;->drainTo(Ljava/util/Collection;I)I
HSPLjava/util/concurrent/LinkedBlockingQueue;->enqueue(Ljava/util/concurrent/LinkedBlockingQueue$Node;)V
HSPLjava/util/concurrent/LinkedBlockingQueue;->fullyLock()V
HSPLjava/util/concurrent/LinkedBlockingQueue;->fullyUnlock()V
+HSPLjava/util/concurrent/LinkedBlockingQueue;->iterator()Ljava/util/Iterator;
HSPLjava/util/concurrent/LinkedBlockingQueue;->offer(Ljava/lang/Object;)Z
+HPLjava/util/concurrent/LinkedBlockingQueue;->offer(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Z
+HSPLjava/util/concurrent/LinkedBlockingQueue;->peek()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingQueue;->poll()Ljava/lang/Object;
HSPLjava/util/concurrent/LinkedBlockingQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
HSPLjava/util/concurrent/LinkedBlockingQueue;->put(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/LinkedBlockingQueue;->remove(Ljava/lang/Object;)Z
HSPLjava/util/concurrent/LinkedBlockingQueue;->signalNotEmpty()V
HSPLjava/util/concurrent/LinkedBlockingQueue;->signalNotFull()V
HSPLjava/util/concurrent/LinkedBlockingQueue;->size()I
HSPLjava/util/concurrent/LinkedBlockingQueue;->take()Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingQueue;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
+HSPLjava/util/concurrent/LinkedBlockingQueue;->unlink(Ljava/util/concurrent/LinkedBlockingQueue$Node;Ljava/util/concurrent/LinkedBlockingQueue$Node;)V
HSPLjava/util/concurrent/PriorityBlockingQueue;-><init>()V
+HSPLjava/util/concurrent/PriorityBlockingQueue;-><init>(I)V
HSPLjava/util/concurrent/PriorityBlockingQueue;-><init>(ILjava/util/Comparator;)V
HSPLjava/util/concurrent/PriorityBlockingQueue;->add(Ljava/lang/Object;)Z
HSPLjava/util/concurrent/PriorityBlockingQueue;->dequeue()Ljava/lang/Object;
@@ -13821,6 +41397,7 @@ HSPLjava/util/concurrent/PriorityBlockingQueue;->indexOf(Ljava/lang/Object;)I
HSPLjava/util/concurrent/PriorityBlockingQueue;->offer(Ljava/lang/Object;)Z
HSPLjava/util/concurrent/PriorityBlockingQueue;->peek()Ljava/lang/Object;
HSPLjava/util/concurrent/PriorityBlockingQueue;->poll()Ljava/lang/Object;
+HPLjava/util/concurrent/PriorityBlockingQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
HSPLjava/util/concurrent/PriorityBlockingQueue;->put(Ljava/lang/Object;)V
HSPLjava/util/concurrent/PriorityBlockingQueue;->remove(Ljava/lang/Object;)Z
HSPLjava/util/concurrent/PriorityBlockingQueue;->removeAt(I)V
@@ -13828,9 +41405,14 @@ HSPLjava/util/concurrent/PriorityBlockingQueue;->siftDownComparable(ILjava/lang/
HSPLjava/util/concurrent/PriorityBlockingQueue;->siftDownUsingComparator(ILjava/lang/Object;[Ljava/lang/Object;ILjava/util/Comparator;)V
HSPLjava/util/concurrent/PriorityBlockingQueue;->siftUpComparable(ILjava/lang/Object;[Ljava/lang/Object;)V
HSPLjava/util/concurrent/PriorityBlockingQueue;->siftUpUsingComparator(ILjava/lang/Object;[Ljava/lang/Object;Ljava/util/Comparator;)V
+HSPLjava/util/concurrent/PriorityBlockingQueue;->size()I
HSPLjava/util/concurrent/PriorityBlockingQueue;->take()Ljava/lang/Object;
+HSPLjava/util/concurrent/PriorityBlockingQueue;->tryGrow([Ljava/lang/Object;I)V
HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;-><init>(Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;[Ljava/util/concurrent/RunnableScheduledFuture;)V
HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->hasNext()Z
+HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->next()Ljava/lang/Object;
+HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->next()Ljava/lang/Runnable;
+HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->remove()V
HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;-><init>()V
HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->add(Ljava/lang/Object;)Z
HSPLjava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->add(Ljava/lang/Runnable;)Z
@@ -13886,16 +41468,25 @@ HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->submit(Ljava/lang/Runnabl
HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(J)J
HSPLjava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(JLjava/util/concurrent/TimeUnit;)J
+HSPLjava/util/concurrent/Semaphore$FairSync;-><init>(I)V
+HSPLjava/util/concurrent/Semaphore$FairSync;->tryAcquireShared(I)I
HSPLjava/util/concurrent/Semaphore$NonfairSync;-><init>(I)V
HSPLjava/util/concurrent/Semaphore$NonfairSync;->tryAcquireShared(I)I
HSPLjava/util/concurrent/Semaphore$Sync;-><init>(I)V
+HSPLjava/util/concurrent/Semaphore$Sync;->getPermits()I
HSPLjava/util/concurrent/Semaphore$Sync;->nonfairTryAcquireShared(I)I
HSPLjava/util/concurrent/Semaphore$Sync;->tryReleaseShared(I)Z
HSPLjava/util/concurrent/Semaphore;-><init>(I)V
HSPLjava/util/concurrent/Semaphore;-><init>(IZ)V
HSPLjava/util/concurrent/Semaphore;->acquire()V
HSPLjava/util/concurrent/Semaphore;->acquireUninterruptibly()V
+HSPLjava/util/concurrent/Semaphore;->availablePermits()I
HSPLjava/util/concurrent/Semaphore;->release()V
+HSPLjava/util/concurrent/Semaphore;->release(I)V
+HSPLjava/util/concurrent/Semaphore;->tryAcquire()Z
+HSPLjava/util/concurrent/Semaphore;->tryAcquire(I)Z
+HPLjava/util/concurrent/Semaphore;->tryAcquire(IJLjava/util/concurrent/TimeUnit;)Z
+HSPLjava/util/concurrent/Semaphore;->tryAcquire(JLjava/util/concurrent/TimeUnit;)Z
HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;-><init>(Ljava/lang/Object;)V
HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->casNext(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
HSPLjava/util/concurrent/SynchronousQueue$TransferStack$SNode;->isCancelled()Z
@@ -13912,18 +41503,30 @@ HSPLjava/util/concurrent/SynchronousQueue$TransferStack;->transfer(Ljava/lang/Ob
HSPLjava/util/concurrent/SynchronousQueue$Transferer;-><init>()V
HSPLjava/util/concurrent/SynchronousQueue;-><init>()V
HSPLjava/util/concurrent/SynchronousQueue;-><init>(Z)V
+HSPLjava/util/concurrent/SynchronousQueue;->drainTo(Ljava/util/Collection;)I
HSPLjava/util/concurrent/SynchronousQueue;->isEmpty()Z
HSPLjava/util/concurrent/SynchronousQueue;->offer(Ljava/lang/Object;)Z
+HSPLjava/util/concurrent/SynchronousQueue;->poll()Ljava/lang/Object;
HSPLjava/util/concurrent/SynchronousQueue;->poll(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
+HSPLjava/util/concurrent/SynchronousQueue;->size()I
HSPLjava/util/concurrent/SynchronousQueue;->take()Ljava/lang/Object;
+HPLjava/util/concurrent/ThreadLocalRandom;->advanceProbe(I)I
+HSPLjava/util/concurrent/ThreadLocalRandom;->current()Ljava/util/concurrent/ThreadLocalRandom;
HSPLjava/util/concurrent/ThreadLocalRandom;->getProbe()I
HSPLjava/util/concurrent/ThreadLocalRandom;->localInit()V
HSPLjava/util/concurrent/ThreadLocalRandom;->mix32(J)I
HSPLjava/util/concurrent/ThreadLocalRandom;->mix64(J)J
+HSPLjava/util/concurrent/ThreadLocalRandom;->nextDouble()D
+HSPLjava/util/concurrent/ThreadLocalRandom;->nextInt()I
HSPLjava/util/concurrent/ThreadLocalRandom;->nextSecondarySeed()I
+HSPLjava/util/concurrent/ThreadLocalRandom;->nextSeed()J
+HPLjava/util/concurrent/ThreadPoolExecutor$AbortPolicy;-><init>()V
HSPLjava/util/concurrent/ThreadPoolExecutor$DiscardPolicy;-><init>()V
+PLjava/util/concurrent/ThreadPoolExecutor$DiscardPolicy;->rejectedExecution(Ljava/lang/Runnable;Ljava/util/concurrent/ThreadPoolExecutor;)V
HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;-><init>(Ljava/util/concurrent/ThreadPoolExecutor;Ljava/lang/Runnable;)V
HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->interruptIfStarted()V
+HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->isHeldExclusively()Z
+HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->isLocked()Z
HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->lock()V
HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->run()V
HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->tryAcquire(I)Z
@@ -13931,12 +41534,14 @@ HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->tryLock()Z
HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->tryRelease(I)Z
HSPLjava/util/concurrent/ThreadPoolExecutor$Worker;->unlock()V
HSPLjava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)V
+HSPLjava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/RejectedExecutionHandler;)V
HSPLjava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
HSPLjava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V
HSPLjava/util/concurrent/ThreadPoolExecutor;->addWorker(Ljava/lang/Runnable;Z)Z
HSPLjava/util/concurrent/ThreadPoolExecutor;->advanceRunState(I)V
HSPLjava/util/concurrent/ThreadPoolExecutor;->afterExecute(Ljava/lang/Runnable;Ljava/lang/Throwable;)V
HSPLjava/util/concurrent/ThreadPoolExecutor;->allowCoreThreadTimeOut(Z)V
+PLjava/util/concurrent/ThreadPoolExecutor;->awaitTermination(JLjava/util/concurrent/TimeUnit;)Z
HSPLjava/util/concurrent/ThreadPoolExecutor;->beforeExecute(Ljava/lang/Thread;Ljava/lang/Runnable;)V
HSPLjava/util/concurrent/ThreadPoolExecutor;->checkShutdownAccess()V
HSPLjava/util/concurrent/ThreadPoolExecutor;->compareAndDecrementWorkerCount(I)Z
@@ -13947,8 +41552,16 @@ HSPLjava/util/concurrent/ThreadPoolExecutor;->drainQueue()Ljava/util/List;
HSPLjava/util/concurrent/ThreadPoolExecutor;->ensurePrestart()V
HSPLjava/util/concurrent/ThreadPoolExecutor;->execute(Ljava/lang/Runnable;)V
HSPLjava/util/concurrent/ThreadPoolExecutor;->finalize()V
+HSPLjava/util/concurrent/ThreadPoolExecutor;->getActiveCount()I
+HSPLjava/util/concurrent/ThreadPoolExecutor;->getCompletedTaskCount()J
+HSPLjava/util/concurrent/ThreadPoolExecutor;->getCorePoolSize()I
+HSPLjava/util/concurrent/ThreadPoolExecutor;->getLargestPoolSize()I
+HSPLjava/util/concurrent/ThreadPoolExecutor;->getMaximumPoolSize()I
+HSPLjava/util/concurrent/ThreadPoolExecutor;->getPoolSize()I
HSPLjava/util/concurrent/ThreadPoolExecutor;->getQueue()Ljava/util/concurrent/BlockingQueue;
+HSPLjava/util/concurrent/ThreadPoolExecutor;->getRejectedExecutionHandler()Ljava/util/concurrent/RejectedExecutionHandler;
HSPLjava/util/concurrent/ThreadPoolExecutor;->getTask()Ljava/lang/Runnable;
+HSPLjava/util/concurrent/ThreadPoolExecutor;->getTaskCount()J
HSPLjava/util/concurrent/ThreadPoolExecutor;->getThreadFactory()Ljava/util/concurrent/ThreadFactory;
HSPLjava/util/concurrent/ThreadPoolExecutor;->interruptIdleWorkers()V
HSPLjava/util/concurrent/ThreadPoolExecutor;->interruptIdleWorkers(Z)V
@@ -13956,15 +41569,20 @@ HSPLjava/util/concurrent/ThreadPoolExecutor;->interruptWorkers()V
HSPLjava/util/concurrent/ThreadPoolExecutor;->isRunning(I)Z
HSPLjava/util/concurrent/ThreadPoolExecutor;->isRunningOrShutdown(Z)Z
HSPLjava/util/concurrent/ThreadPoolExecutor;->isShutdown()Z
+HSPLjava/util/concurrent/ThreadPoolExecutor;->isTerminated()Z
+HSPLjava/util/concurrent/ThreadPoolExecutor;->isTerminating()Z
HSPLjava/util/concurrent/ThreadPoolExecutor;->onShutdown()V
HSPLjava/util/concurrent/ThreadPoolExecutor;->prestartAllCoreThreads()I
+HSPLjava/util/concurrent/ThreadPoolExecutor;->prestartCoreThread()Z
HSPLjava/util/concurrent/ThreadPoolExecutor;->processWorkerExit(Ljava/util/concurrent/ThreadPoolExecutor$Worker;Z)V
HSPLjava/util/concurrent/ThreadPoolExecutor;->purge()V
+PLjava/util/concurrent/ThreadPoolExecutor;->reject(Ljava/lang/Runnable;)V
HSPLjava/util/concurrent/ThreadPoolExecutor;->remove(Ljava/lang/Runnable;)Z
HSPLjava/util/concurrent/ThreadPoolExecutor;->runStateAtLeast(II)Z
HSPLjava/util/concurrent/ThreadPoolExecutor;->runStateLessThan(II)Z
HSPLjava/util/concurrent/ThreadPoolExecutor;->runStateOf(I)I
HSPLjava/util/concurrent/ThreadPoolExecutor;->runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V
+HSPLjava/util/concurrent/ThreadPoolExecutor;->setCorePoolSize(I)V
HSPLjava/util/concurrent/ThreadPoolExecutor;->setKeepAliveTime(JLjava/util/concurrent/TimeUnit;)V
HSPLjava/util/concurrent/ThreadPoolExecutor;->setMaximumPoolSize(I)V
HSPLjava/util/concurrent/ThreadPoolExecutor;->setRejectedExecutionHandler(Ljava/util/concurrent/RejectedExecutionHandler;)V
@@ -13972,15 +41590,27 @@ HSPLjava/util/concurrent/ThreadPoolExecutor;->setThreadFactory(Ljava/util/concur
HSPLjava/util/concurrent/ThreadPoolExecutor;->shutdown()V
HSPLjava/util/concurrent/ThreadPoolExecutor;->shutdownNow()Ljava/util/List;
HSPLjava/util/concurrent/ThreadPoolExecutor;->terminated()V
+PLjava/util/concurrent/ThreadPoolExecutor;->toString()Ljava/lang/String;
HSPLjava/util/concurrent/ThreadPoolExecutor;->tryTerminate()V
HSPLjava/util/concurrent/ThreadPoolExecutor;->workerCountOf(I)I
HSPLjava/util/concurrent/TimeUnit$1;->convert(JLjava/util/concurrent/TimeUnit;)J
+PLjava/util/concurrent/TimeUnit$1;->excessNanos(JJ)I
+HPLjava/util/concurrent/TimeUnit$1;->toDays(J)J
+HPLjava/util/concurrent/TimeUnit$1;->toHours(J)J
HSPLjava/util/concurrent/TimeUnit$1;->toMicros(J)J
HSPLjava/util/concurrent/TimeUnit$1;->toMillis(J)J
+HPLjava/util/concurrent/TimeUnit$1;->toMinutes(J)J
HSPLjava/util/concurrent/TimeUnit$1;->toNanos(J)J
-PLjava/util/concurrent/TimeUnit$1;->toSeconds(J)J
+HSPLjava/util/concurrent/TimeUnit$1;->toSeconds(J)J
+HSPLjava/util/concurrent/TimeUnit$2;->convert(JLjava/util/concurrent/TimeUnit;)J
+HPLjava/util/concurrent/TimeUnit$2;->toHours(J)J
+HSPLjava/util/concurrent/TimeUnit$2;->toMicros(J)J
+HSPLjava/util/concurrent/TimeUnit$2;->toMillis(J)J
HSPLjava/util/concurrent/TimeUnit$2;->toMinutes(J)J
+HSPLjava/util/concurrent/TimeUnit$2;->toNanos(J)J
+HPLjava/util/concurrent/TimeUnit$2;->toSeconds(J)J
HSPLjava/util/concurrent/TimeUnit$3;->convert(JLjava/util/concurrent/TimeUnit;)J
+HSPLjava/util/concurrent/TimeUnit$3;->excessNanos(JJ)I
HSPLjava/util/concurrent/TimeUnit$3;->toDays(J)J
HSPLjava/util/concurrent/TimeUnit$3;->toHours(J)J
HSPLjava/util/concurrent/TimeUnit$3;->toMicros(J)J
@@ -13989,8 +41619,10 @@ HSPLjava/util/concurrent/TimeUnit$3;->toMinutes(J)J
HSPLjava/util/concurrent/TimeUnit$3;->toNanos(J)J
HSPLjava/util/concurrent/TimeUnit$3;->toSeconds(J)J
HSPLjava/util/concurrent/TimeUnit$4;->convert(JLjava/util/concurrent/TimeUnit;)J
+HPLjava/util/concurrent/TimeUnit$4;->toDays(J)J
HSPLjava/util/concurrent/TimeUnit$4;->toMicros(J)J
HSPLjava/util/concurrent/TimeUnit$4;->toMillis(J)J
+HSPLjava/util/concurrent/TimeUnit$4;->toMinutes(J)J
HSPLjava/util/concurrent/TimeUnit$4;->toNanos(J)J
HSPLjava/util/concurrent/TimeUnit$4;->toSeconds(J)J
HSPLjava/util/concurrent/TimeUnit$5;->convert(JLjava/util/concurrent/TimeUnit;)J
@@ -13998,13 +41630,20 @@ HSPLjava/util/concurrent/TimeUnit$5;->toMicros(J)J
HSPLjava/util/concurrent/TimeUnit$5;->toMillis(J)J
HSPLjava/util/concurrent/TimeUnit$5;->toNanos(J)J
HSPLjava/util/concurrent/TimeUnit$5;->toSeconds(J)J
+HSPLjava/util/concurrent/TimeUnit$6;->convert(JLjava/util/concurrent/TimeUnit;)J
+HPLjava/util/concurrent/TimeUnit$6;->toMicros(J)J
HSPLjava/util/concurrent/TimeUnit$6;->toMillis(J)J
HSPLjava/util/concurrent/TimeUnit$6;->toMinutes(J)J
HSPLjava/util/concurrent/TimeUnit$6;->toNanos(J)J
HSPLjava/util/concurrent/TimeUnit$6;->toSeconds(J)J
+HSPLjava/util/concurrent/TimeUnit$7;->convert(JLjava/util/concurrent/TimeUnit;)J
+HSPLjava/util/concurrent/TimeUnit$7;->toHours(J)J
HSPLjava/util/concurrent/TimeUnit$7;->toMillis(J)J
+HSPLjava/util/concurrent/TimeUnit$7;->toMinutes(J)J
HSPLjava/util/concurrent/TimeUnit$7;->toNanos(J)J
HSPLjava/util/concurrent/TimeUnit$7;->toSeconds(J)J
+HSPLjava/util/concurrent/TimeUnit;->sleep(J)V
+HSPLjava/util/concurrent/TimeUnit;->values()[Ljava/util/concurrent/TimeUnit;
HSPLjava/util/concurrent/TimeUnit;->x(JJJ)J
HSPLjava/util/concurrent/TimeoutException;-><init>()V
HSPLjava/util/concurrent/TimeoutException;-><init>(Ljava/lang/String;)V
@@ -14015,6 +41654,7 @@ HSPLjava/util/concurrent/atomic/AtomicBoolean;->get()Z
HSPLjava/util/concurrent/atomic/AtomicBoolean;->getAndSet(Z)Z
HSPLjava/util/concurrent/atomic/AtomicBoolean;->lazySet(Z)V
HSPLjava/util/concurrent/atomic/AtomicBoolean;->set(Z)V
+HSPLjava/util/concurrent/atomic/AtomicBoolean;->toString()Ljava/lang/String;
HSPLjava/util/concurrent/atomic/AtomicInteger;-><init>()V
HSPLjava/util/concurrent/atomic/AtomicInteger;-><init>(I)V
HSPLjava/util/concurrent/atomic/AtomicInteger;->addAndGet(I)I
@@ -14025,15 +41665,29 @@ HSPLjava/util/concurrent/atomic/AtomicInteger;->getAndAdd(I)I
HSPLjava/util/concurrent/atomic/AtomicInteger;->getAndDecrement()I
HSPLjava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I
HSPLjava/util/concurrent/atomic/AtomicInteger;->getAndSet(I)I
+HSPLjava/util/concurrent/atomic/AtomicInteger;->getAndUpdate(Ljava/util/function/IntUnaryOperator;)I
HSPLjava/util/concurrent/atomic/AtomicInteger;->incrementAndGet()I
+HSPLjava/util/concurrent/atomic/AtomicInteger;->intValue()I
HSPLjava/util/concurrent/atomic/AtomicInteger;->lazySet(I)V
HSPLjava/util/concurrent/atomic/AtomicInteger;->set(I)V
+HSPLjava/util/concurrent/atomic/AtomicInteger;->toString()Ljava/lang/String;
+HSPLjava/util/concurrent/atomic/AtomicIntegerArray;-><init>(I)V
+HSPLjava/util/concurrent/atomic/AtomicIntegerArray;->addAndGet(II)I
+HSPLjava/util/concurrent/atomic/AtomicIntegerArray;->byteOffset(I)J
+HSPLjava/util/concurrent/atomic/AtomicIntegerArray;->checkedByteOffset(I)J
+HPLjava/util/concurrent/atomic/AtomicIntegerArray;->get(I)I
+HSPLjava/util/concurrent/atomic/AtomicIntegerArray;->getAndAdd(II)I
+HPLjava/util/concurrent/atomic/AtomicIntegerArray;->getRaw(J)I
+HSPLjava/util/concurrent/atomic/AtomicIntegerArray;->incrementAndGet(I)I
+HPLjava/util/concurrent/atomic/AtomicIntegerArray;->length()I
+HSPLjava/util/concurrent/atomic/AtomicIntegerArray;->set(II)V
HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->accessCheck(Ljava/lang/Object;)V
HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->compareAndSet(Ljava/lang/Object;II)Z
HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->decrementAndGet(Ljava/lang/Object;)I
HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->getAndAdd(Ljava/lang/Object;I)I
HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->getAndSet(Ljava/lang/Object;I)I
+HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->incrementAndGet(Ljava/lang/Object;)I
HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->set(Ljava/lang/Object;I)V
HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater;-><init>()V
HSPLjava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
@@ -14042,15 +41696,20 @@ HSPLjava/util/concurrent/atomic/AtomicLong;-><init>(J)V
HSPLjava/util/concurrent/atomic/AtomicLong;->addAndGet(J)J
HSPLjava/util/concurrent/atomic/AtomicLong;->compareAndSet(JJ)Z
HSPLjava/util/concurrent/atomic/AtomicLong;->decrementAndGet()J
+HPLjava/util/concurrent/atomic/AtomicLong;->doubleValue()D
HSPLjava/util/concurrent/atomic/AtomicLong;->get()J
HSPLjava/util/concurrent/atomic/AtomicLong;->getAndAdd(J)J
+HPLjava/util/concurrent/atomic/AtomicLong;->getAndDecrement()J
HSPLjava/util/concurrent/atomic/AtomicLong;->getAndIncrement()J
HSPLjava/util/concurrent/atomic/AtomicLong;->getAndSet(J)J
HSPLjava/util/concurrent/atomic/AtomicLong;->incrementAndGet()J
HSPLjava/util/concurrent/atomic/AtomicLong;->lazySet(J)V
HSPLjava/util/concurrent/atomic/AtomicLong;->set(J)V
+PLjava/util/concurrent/atomic/AtomicLong;->toString()Ljava/lang/String;
HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->accessCheck(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->addAndGet(Ljava/lang/Object;J)J
+HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->compareAndSet(Ljava/lang/Object;JJ)Z
HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->getAndAdd(Ljava/lang/Object;J)J
HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->getAndIncrement(Ljava/lang/Object;)J
HSPLjava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->incrementAndGet(Ljava/lang/Object;)J
@@ -14061,14 +41720,17 @@ HSPLjava/util/concurrent/atomic/AtomicReference;-><init>(Ljava/lang/Object;)V
HSPLjava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
HSPLjava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
HSPLjava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object;
+PLjava/util/concurrent/atomic/AtomicReference;->getAndUpdate(Ljava/util/function/UnaryOperator;)Ljava/lang/Object;
HSPLjava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
HSPLjava/util/concurrent/atomic/AtomicReference;->set(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/atomic/AtomicReference;->toString()Ljava/lang/String;
HSPLjava/util/concurrent/atomic/AtomicReferenceArray;-><init>(I)V
HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->byteOffset(I)J
HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->checkedByteOffset(I)J
HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSet(ILjava/lang/Object;Ljava/lang/Object;)Z
HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSetRaw(JLjava/lang/Object;Ljava/lang/Object;)Z
HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
+HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->getAndSet(ILjava/lang/Object;)Ljava/lang/Object;
HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->getRaw(J)Ljava/lang/Object;
HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->lazySet(ILjava/lang/Object;)V
HSPLjava/util/concurrent/atomic/AtomicReferenceArray;->length()I
@@ -14077,13 +41739,20 @@ HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceField
HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->accessCheck(Ljava/lang/Object;)V
HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->getAndSet(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->lazySet(Ljava/lang/Object;Ljava/lang/Object;)V
HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->valueCheck(Ljava/lang/Object;)V
HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater;-><init>()V
HSPLjava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
HSPLjava/util/concurrent/atomic/LongAdder;-><init>()V
HSPLjava/util/concurrent/atomic/LongAdder;->add(J)V
+PLjava/util/concurrent/atomic/Striped64$Cell;-><clinit>()V
+PLjava/util/concurrent/atomic/Striped64$Cell;-><init>(J)V
+PLjava/util/concurrent/atomic/Striped64$Cell;->cas(JJ)Z
HSPLjava/util/concurrent/atomic/Striped64;-><init>()V
HSPLjava/util/concurrent/atomic/Striped64;->casBase(JJ)Z
+PLjava/util/concurrent/atomic/Striped64;->casCellsBusy()Z
+PLjava/util/concurrent/atomic/Striped64;->getProbe()I
+PLjava/util/concurrent/atomic/Striped64;->longAccumulate(JLjava/util/function/LongBinaryOperator;Z)V
HSPLjava/util/concurrent/locks/AbstractOwnableSynchronizer;-><init>()V
HSPLjava/util/concurrent/locks/AbstractOwnableSynchronizer;->getExclusiveOwnerThread()Ljava/lang/Thread;
HSPLjava/util/concurrent/locks/AbstractOwnableSynchronizer;->setExclusiveOwnerThread(Ljava/lang/Thread;)V
@@ -14094,6 +41763,8 @@ HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->awai
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->checkInterruptWhileWaiting(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)I
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->doSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->doSignalAll(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
+HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->hasWaiters()Z
+HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->isOwnedBy(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer;)Z
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->reportInterruptAfterWait(I)V
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->signal()V
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->signalAll()V
@@ -14117,6 +41788,7 @@ HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->cancelAcquire(Ljava/
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->compareAndSetState(II)Z
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->compareAndSetTail(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireInterruptibly(I)V
+HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireNanos(IJ)Z
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireShared(I)V
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireSharedInterruptibly(I)V
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->doAcquireSharedNanos(IJ)Z
@@ -14126,38 +41798,51 @@ HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->findNodeFromTail(Lja
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->fullyRelease(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)I
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->getState()I
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->hasQueuedPredecessors()Z
+HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->hasWaiters(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)Z
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->initializeSyncQueue()V
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->isOnSyncQueue(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->owns(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)Z
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->parkAndCheckInterrupt()Z
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->release(I)Z
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->releaseShared(I)Z
+HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->selfInterrupt()V
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->setHead(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->setHeadAndPropagate(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;I)V
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->setState(I)V
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->shouldParkAfterFailedAcquire(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->transferAfterCancelledWait(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->transferForSignal(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)Z
+HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->tryAcquireNanos(IJ)Z
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->tryAcquireSharedNanos(IJ)Z
HSPLjava/util/concurrent/locks/AbstractQueuedSynchronizer;->unparkSuccessor(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
HSPLjava/util/concurrent/locks/LockSupport;->park(Ljava/lang/Object;)V
+HSPLjava/util/concurrent/locks/LockSupport;->parkNanos(J)V
HSPLjava/util/concurrent/locks/LockSupport;->parkNanos(Ljava/lang/Object;J)V
+HSPLjava/util/concurrent/locks/LockSupport;->parkUntil(Ljava/lang/Object;J)V
HSPLjava/util/concurrent/locks/LockSupport;->setBlocker(Ljava/lang/Thread;Ljava/lang/Object;)V
HSPLjava/util/concurrent/locks/LockSupport;->unpark(Ljava/lang/Thread;)V
+HSPLjava/util/concurrent/locks/ReentrantLock$FairSync;-><init>()V
+HSPLjava/util/concurrent/locks/ReentrantLock$FairSync;->lock()V
+HSPLjava/util/concurrent/locks/ReentrantLock$FairSync;->tryAcquire(I)Z
HSPLjava/util/concurrent/locks/ReentrantLock$NonfairSync;-><init>()V
HSPLjava/util/concurrent/locks/ReentrantLock$NonfairSync;->lock()V
HSPLjava/util/concurrent/locks/ReentrantLock$NonfairSync;->tryAcquire(I)Z
HSPLjava/util/concurrent/locks/ReentrantLock$Sync;-><init>()V
+HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->getHoldCount()I
HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->isHeldExclusively()Z
HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->newCondition()Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;
HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->nonfairTryAcquire(I)Z
HSPLjava/util/concurrent/locks/ReentrantLock$Sync;->tryRelease(I)Z
HSPLjava/util/concurrent/locks/ReentrantLock;-><init>()V
HSPLjava/util/concurrent/locks/ReentrantLock;-><init>(Z)V
+HSPLjava/util/concurrent/locks/ReentrantLock;->getHoldCount()I
+HSPLjava/util/concurrent/locks/ReentrantLock;->hasWaiters(Ljava/util/concurrent/locks/Condition;)Z
HSPLjava/util/concurrent/locks/ReentrantLock;->isHeldByCurrentThread()Z
HSPLjava/util/concurrent/locks/ReentrantLock;->lock()V
HSPLjava/util/concurrent/locks/ReentrantLock;->lockInterruptibly()V
HSPLjava/util/concurrent/locks/ReentrantLock;->newCondition()Ljava/util/concurrent/locks/Condition;
HSPLjava/util/concurrent/locks/ReentrantLock;->tryLock()Z
+HSPLjava/util/concurrent/locks/ReentrantLock;->tryLock(JLjava/util/concurrent/TimeUnit;)Z
HSPLjava/util/concurrent/locks/ReentrantLock;->unlock()V
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;-><init>()V
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;->readerShouldBlock()Z
@@ -14167,6 +41852,8 @@ HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;->readerShould
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;->writerShouldBlock()Z
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;-><init>(Ljava/util/concurrent/locks/ReentrantReadWriteLock;)V
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;->lock()V
+HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;->lockInterruptibly()V
+HPLjava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;->tryLock()Z
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;->unlock()V
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;-><init>()V
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;-><init>()V
@@ -14179,10 +41866,14 @@ HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->isHeldExclusively()
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->sharedCount(I)I
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryAcquire(I)Z
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryAcquireShared(I)I
+HPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryReadLock()Z
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryRelease(I)Z
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryReleaseShared(I)Z
+HPLjava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->tryWriteLock()Z
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;-><init>(Ljava/util/concurrent/locks/ReentrantReadWriteLock;)V
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->lock()V
+HPLjava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->lockInterruptibly()V
+HPLjava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->tryLock()Z
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;->unlock()V
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;-><init>()V
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;-><init>(Z)V
@@ -14191,6 +41882,27 @@ HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->readLock()Ljava/util/con
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->readLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
HSPLjava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
+PLjava/util/function/-$$Lambda$BinaryOperator$V_WUclL0kAOZvMw9EtWtwAvmNJc;-><init>(Ljava/util/Comparator;)V
+PLjava/util/function/-$$Lambda$BinaryOperator$WKN0kahVeFfmJEk_tKszY8tRayo;-><init>(Ljava/util/Comparator;)V
+HPLjava/util/function/-$$Lambda$BinaryOperator$WKN0kahVeFfmJEk_tKszY8tRayo;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/function/-$$Lambda$DoubleUnaryOperator$EzzlhUGRoL66wVBCG-_euZgC-CA;-><init>(Ljava/util/function/DoubleUnaryOperator;Ljava/util/function/DoubleUnaryOperator;)V
+HPLjava/util/function/-$$Lambda$Function$1mm3dZ9IMG2T6zAULCCEh3eoHSY;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/function/-$$Lambda$Predicate$17UUIF1CH_K9duk0ChtjSwOycuM;-><init>(Ljava/util/function/Predicate;Ljava/util/function/Predicate;)V
+HSPLjava/util/function/-$$Lambda$Predicate$17UUIF1CH_K9duk0ChtjSwOycuM;->test(Ljava/lang/Object;)Z
+PLjava/util/function/-$$Lambda$Predicate$GyIVQ08CWbeMZxHDkkrN-5apRkc;-><init>(Ljava/util/function/Predicate;Ljava/util/function/Predicate;)V
+PLjava/util/function/-$$Lambda$Predicate$GyIVQ08CWbeMZxHDkkrN-5apRkc;->test(Ljava/lang/Object;)Z
+HPLjava/util/function/BinaryOperator;->lambda$minBy$0(Ljava/util/Comparator;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLjava/util/function/BinaryOperator;->maxBy(Ljava/util/Comparator;)Ljava/util/function/BinaryOperator;
+HPLjava/util/function/BinaryOperator;->minBy(Ljava/util/Comparator;)Ljava/util/function/BinaryOperator;
+HSPLjava/util/function/DoubleUnaryOperator;->andThen(Ljava/util/function/DoubleUnaryOperator;)Ljava/util/function/DoubleUnaryOperator;
+HPLjava/util/function/Function;->andThen(Ljava/util/function/Function;)Ljava/util/function/Function;
+HPLjava/util/function/Function;->identity()Ljava/util/function/Function;
+HPLjava/util/function/Function;->lambda$andThen$1(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/lang/Object;)Ljava/lang/Object;
+HPLjava/util/function/Function;->lambda$identity$2(Ljava/lang/Object;)Ljava/lang/Object;
+PLjava/util/function/Predicate;->and(Ljava/util/function/Predicate;)Ljava/util/function/Predicate;
+PLjava/util/function/Predicate;->lambda$and$0(Ljava/util/function/Predicate;Ljava/util/function/Predicate;Ljava/lang/Object;)Z
+HSPLjava/util/function/Predicate;->lambda$or$2(Ljava/util/function/Predicate;Ljava/util/function/Predicate;Ljava/lang/Object;)Z
+HSPLjava/util/function/Predicate;->or(Ljava/util/function/Predicate;)Ljava/util/function/Predicate;
HSPLjava/util/jar/Attributes$Name;-><init>(Ljava/lang/String;)V
HSPLjava/util/jar/Attributes$Name;->equals(Ljava/lang/Object;)Z
HSPLjava/util/jar/Attributes$Name;->hashCode()I
@@ -14198,23 +41910,108 @@ HSPLjava/util/jar/Attributes$Name;->isAlpha(C)Z
HSPLjava/util/jar/Attributes$Name;->isDigit(C)Z
HSPLjava/util/jar/Attributes$Name;->isValid(C)Z
HSPLjava/util/jar/Attributes$Name;->isValid(Ljava/lang/String;)Z
+HSPLjava/util/jar/Attributes$Name;->toString()Ljava/lang/String;
+HSPLjava/util/jar/Attributes;-><init>()V
+HSPLjava/util/jar/Attributes;-><init>(I)V
+HSPLjava/util/jar/Attributes;->entrySet()Ljava/util/Set;
HSPLjava/util/jar/Attributes;->get(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/jar/Attributes;->getValue(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/util/jar/Attributes;->getValue(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
HSPLjava/util/jar/Attributes;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/jar/Attributes;->putValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/util/jar/Attributes;->read(Ljava/util/jar/Manifest$FastInputStream;[B)V
+HSPLjava/util/jar/Attributes;->size()I
HSPLjava/util/jar/JarEntry;-><init>(Ljava/util/zip/ZipEntry;)V
HSPLjava/util/jar/JarFile$JarFileEntry;-><init>(Ljava/util/jar/JarFile;Ljava/util/zip/ZipEntry;)V
HSPLjava/util/jar/JarFile;-><init>(Ljava/io/File;ZI)V
HSPLjava/util/jar/JarFile;-><init>(Ljava/lang/String;)V
+HSPLjava/util/jar/JarFile;-><init>(Ljava/lang/String;Z)V
+HSPLjava/util/jar/JarFile;->getBytes(Ljava/util/zip/ZipEntry;)[B
HSPLjava/util/jar/JarFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
HSPLjava/util/jar/JarFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
+HSPLjava/util/jar/JarFile;->getJarEntry(Ljava/lang/String;)Ljava/util/jar/JarEntry;
+HSPLjava/util/jar/JarFile;->getManEntry()Ljava/util/jar/JarEntry;
+HSPLjava/util/jar/JarFile;->getManifest()Ljava/util/jar/Manifest;
+HSPLjava/util/jar/JarFile;->getManifestFromReference()Ljava/util/jar/Manifest;
+HSPLjava/util/jar/JarFile;->initializeVerifier()V
HSPLjava/util/jar/JarFile;->maybeInstantiateVerifier()V
+HSPLjava/util/jar/JarVerifier$3;-><init>(Ljava/util/jar/JarVerifier;)V
+HSPLjava/util/jar/JarVerifier$VerifierStream;-><init>(Ljava/util/jar/Manifest;Ljava/util/jar/JarEntry;Ljava/io/InputStream;Ljava/util/jar/JarVerifier;)V
+HSPLjava/util/jar/JarVerifier$VerifierStream;->available()I
+HSPLjava/util/jar/JarVerifier$VerifierStream;->close()V
+HSPLjava/util/jar/JarVerifier$VerifierStream;->read()I
+HSPLjava/util/jar/JarVerifier$VerifierStream;->read([BII)I
+HSPLjava/util/jar/JarVerifier;-><init>([B)V
+HSPLjava/util/jar/JarVerifier;->beginEntry(Ljava/util/jar/JarEntry;Lsun/security/util/ManifestEntryVerifier;)V
+HSPLjava/util/jar/JarVerifier;->doneWithMeta()V
+HSPLjava/util/jar/JarVerifier;->mapSignersToCertArray([Ljava/security/CodeSigner;)[Ljava/security/cert/Certificate;
+HSPLjava/util/jar/JarVerifier;->nothingToVerify()Z
+HSPLjava/util/jar/JarVerifier;->processEntry(Lsun/security/util/ManifestEntryVerifier;)V
+HSPLjava/util/jar/JarVerifier;->update(ILsun/security/util/ManifestEntryVerifier;)V
+HSPLjava/util/jar/JarVerifier;->update(I[BIILsun/security/util/ManifestEntryVerifier;)V
+HSPLjava/util/jar/Manifest$FastInputStream;-><init>(Ljava/io/InputStream;)V
+HSPLjava/util/jar/Manifest$FastInputStream;-><init>(Ljava/io/InputStream;I)V
+HSPLjava/util/jar/Manifest$FastInputStream;->fill()V
+HSPLjava/util/jar/Manifest$FastInputStream;->peek()B
+HSPLjava/util/jar/Manifest$FastInputStream;->readLine([B)I
+HSPLjava/util/jar/Manifest$FastInputStream;->readLine([BII)I
+HSPLjava/util/jar/Manifest;-><init>()V
+HSPLjava/util/jar/Manifest;-><init>(Ljava/io/InputStream;)V
+HSPLjava/util/jar/Manifest;->getAttributes(Ljava/lang/String;)Ljava/util/jar/Attributes;
+HSPLjava/util/jar/Manifest;->getEntries()Ljava/util/Map;
+HSPLjava/util/jar/Manifest;->getMainAttributes()Ljava/util/jar/Attributes;
+HSPLjava/util/jar/Manifest;->parseName([BI)Ljava/lang/String;
+HSPLjava/util/jar/Manifest;->read(Ljava/io/InputStream;)V
+HSPLjava/util/jar/Manifest;->toLower(I)I
HSPLjava/util/logging/ErrorManager;-><init>()V
+PLjava/util/logging/FileHandler$1;-><init>(Ljava/util/logging/FileHandler;)V
+PLjava/util/logging/FileHandler$1;->run()Ljava/lang/Object;
+HSPLjava/util/logging/FileHandler$InitializationErrorManager;-><init>()V
+HSPLjava/util/logging/FileHandler$InitializationErrorManager;-><init>(Ljava/util/logging/FileHandler$1;)V
+HSPLjava/util/logging/FileHandler$MeteredStream;-><init>(Ljava/util/logging/FileHandler;Ljava/io/OutputStream;I)V
+PLjava/util/logging/FileHandler$MeteredStream;->close()V
+HSPLjava/util/logging/FileHandler$MeteredStream;->flush()V
+HSPLjava/util/logging/FileHandler$MeteredStream;->write([BII)V
+HSPLjava/util/logging/FileHandler;-><clinit>()V
+HSPLjava/util/logging/FileHandler;-><init>(Ljava/lang/String;IIZ)V
+PLjava/util/logging/FileHandler;->access$100(Ljava/util/logging/FileHandler;)V
+HSPLjava/util/logging/FileHandler;->configure()V
+HSPLjava/util/logging/FileHandler;->generate(Ljava/lang/String;II)Ljava/io/File;
+HSPLjava/util/logging/FileHandler;->isParentWritable(Ljava/nio/file/Path;)Z
+HSPLjava/util/logging/FileHandler;->open(Ljava/io/File;Z)V
+HSPLjava/util/logging/FileHandler;->openFiles()V
+HSPLjava/util/logging/FileHandler;->publish(Ljava/util/logging/LogRecord;)V
+PLjava/util/logging/FileHandler;->rotate()V
+HSPLjava/util/logging/Formatter;-><init>()V
+HSPLjava/util/logging/Formatter;->formatMessage(Ljava/util/logging/LogRecord;)Ljava/lang/String;
+HSPLjava/util/logging/Formatter;->getHead(Ljava/util/logging/Handler;)Ljava/lang/String;
+PLjava/util/logging/Formatter;->getTail(Ljava/util/logging/Handler;)Ljava/lang/String;
HSPLjava/util/logging/Handler;-><init>()V
HSPLjava/util/logging/Handler;->checkPermission()V
+HSPLjava/util/logging/Handler;->getEncoding()Ljava/lang/String;
+HSPLjava/util/logging/Handler;->getFilter()Ljava/util/logging/Filter;
HSPLjava/util/logging/Handler;->getFormatter()Ljava/util/logging/Formatter;
+HSPLjava/util/logging/Handler;->getLevel()Ljava/util/logging/Level;
+HSPLjava/util/logging/Handler;->isLoggable(Ljava/util/logging/LogRecord;)Z
+HSPLjava/util/logging/Handler;->setEncoding(Ljava/lang/String;)V
+HSPLjava/util/logging/Handler;->setErrorManager(Ljava/util/logging/ErrorManager;)V
+HSPLjava/util/logging/Handler;->setFilter(Ljava/util/logging/Filter;)V
HSPLjava/util/logging/Handler;->setFormatter(Ljava/util/logging/Formatter;)V
+HSPLjava/util/logging/Handler;->setLevel(Ljava/util/logging/Level;)V
+HSPLjava/util/logging/Level$KnownLevel;-><init>(Ljava/util/logging/Level;)V
+HSPLjava/util/logging/Level$KnownLevel;->add(Ljava/util/logging/Level;)V
HSPLjava/util/logging/Level$KnownLevel;->findByName(Ljava/lang/String;)Ljava/util/logging/Level$KnownLevel;
+HSPLjava/util/logging/Level$KnownLevel;->findByValue(I)Ljava/util/logging/Level$KnownLevel;
+HSPLjava/util/logging/Level;-><init>(Ljava/lang/String;I)V
+HSPLjava/util/logging/Level;-><init>(Ljava/lang/String;ILjava/lang/String;)V
+HSPLjava/util/logging/Level;-><init>(Ljava/lang/String;ILjava/lang/String;Z)V
+HSPLjava/util/logging/Level;->access$000(Ljava/util/logging/Level;)Ljava/lang/String;
+HSPLjava/util/logging/Level;->access$100(Ljava/util/logging/Level;)I
+HSPLjava/util/logging/Level;->equals(Ljava/lang/Object;)Z
HSPLjava/util/logging/Level;->findLevel(Ljava/lang/String;)Ljava/util/logging/Level;
+HSPLjava/util/logging/Level;->hashCode()I
HSPLjava/util/logging/Level;->intValue()I
+HSPLjava/util/logging/Level;->parse(Ljava/lang/String;)Ljava/util/logging/Level;
HSPLjava/util/logging/LogManager$5;-><init>(Ljava/util/logging/LogManager;Ljava/lang/String;Ljava/util/logging/Logger;)V
HSPLjava/util/logging/LogManager$5;->run()Ljava/lang/Object;
HSPLjava/util/logging/LogManager$LogNode;-><init>(Ljava/util/logging/LogManager$LogNode;Ljava/util/logging/LogManager$LoggerContext;)V
@@ -14258,10 +42055,14 @@ HSPLjava/util/logging/LogManager;->doSetParent(Ljava/util/logging/Logger;Ljava/u
HSPLjava/util/logging/LogManager;->drainLoggerRefQueueBounded()V
HSPLjava/util/logging/LogManager;->ensureLogManagerInitialized()V
HSPLjava/util/logging/LogManager;->getBooleanProperty(Ljava/lang/String;Z)Z
+HSPLjava/util/logging/LogManager;->getFilterProperty(Ljava/lang/String;Ljava/util/logging/Filter;)Ljava/util/logging/Filter;
+HSPLjava/util/logging/LogManager;->getFormatterProperty(Ljava/lang/String;Ljava/util/logging/Formatter;)Ljava/util/logging/Formatter;
+HSPLjava/util/logging/LogManager;->getIntProperty(Ljava/lang/String;I)I
HSPLjava/util/logging/LogManager;->getLevelProperty(Ljava/lang/String;Ljava/util/logging/Level;)Ljava/util/logging/Level;
HSPLjava/util/logging/LogManager;->getLogManager()Ljava/util/logging/LogManager;
HSPLjava/util/logging/LogManager;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
HSPLjava/util/logging/LogManager;->getProperty(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/util/logging/LogManager;->getStringProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HSPLjava/util/logging/LogManager;->getSystemContext()Ljava/util/logging/LogManager$LoggerContext;
HSPLjava/util/logging/LogManager;->getUserContext()Ljava/util/logging/LogManager$LoggerContext;
HSPLjava/util/logging/LogManager;->initializeGlobalHandlers()V
@@ -14274,8 +42075,15 @@ HSPLjava/util/logging/LogRecord;->defaultThreadID()I
HSPLjava/util/logging/LogRecord;->getLevel()Ljava/util/logging/Level;
HSPLjava/util/logging/LogRecord;->getLoggerName()Ljava/lang/String;
HSPLjava/util/logging/LogRecord;->getMessage()Ljava/lang/String;
+HSPLjava/util/logging/LogRecord;->getMillis()J
+HSPLjava/util/logging/LogRecord;->getParameters()[Ljava/lang/Object;
+HSPLjava/util/logging/LogRecord;->getResourceBundle()Ljava/util/ResourceBundle;
HSPLjava/util/logging/LogRecord;->getThrown()Ljava/lang/Throwable;
+HSPLjava/util/logging/LogRecord;->setLevel(Ljava/util/logging/Level;)V
HSPLjava/util/logging/LogRecord;->setLoggerName(Ljava/lang/String;)V
+HSPLjava/util/logging/LogRecord;->setMessage(Ljava/lang/String;)V
+HSPLjava/util/logging/LogRecord;->setMillis(J)V
+PLjava/util/logging/LogRecord;->setParameters([Ljava/lang/Object;)V
HSPLjava/util/logging/LogRecord;->setSourceClassName(Ljava/lang/String;)V
HSPLjava/util/logging/LogRecord;->setSourceMethodName(Ljava/lang/String;)V
HSPLjava/util/logging/LogRecord;->setThrown(Ljava/lang/Throwable;)V
@@ -14294,6 +42102,7 @@ HSPLjava/util/logging/Logger;->doLog(Ljava/util/logging/LogRecord;)V
HSPLjava/util/logging/Logger;->doSetParent(Ljava/util/logging/Logger;)V
HSPLjava/util/logging/Logger;->findResourceBundle(Ljava/lang/String;Z)Ljava/util/ResourceBundle;
HSPLjava/util/logging/Logger;->findSystemResourceBundle(Ljava/util/Locale;)Ljava/util/ResourceBundle;
+HSPLjava/util/logging/Logger;->fine(Ljava/lang/String;)V
HSPLjava/util/logging/Logger;->getCallersClassLoader()Ljava/lang/ClassLoader;
HSPLjava/util/logging/Logger;->getEffectiveLoggerBundle()Ljava/util/logging/Logger$LoggerBundle;
HSPLjava/util/logging/Logger;->getHandlers()[Ljava/util/logging/Handler;
@@ -14306,6 +42115,8 @@ HSPLjava/util/logging/Logger;->getResourceBundleName()Ljava/lang/String;
HSPLjava/util/logging/Logger;->getUseParentHandlers()Z
HSPLjava/util/logging/Logger;->isLoggable(Ljava/util/logging/Level;)Z
HSPLjava/util/logging/Logger;->log(Ljava/util/logging/Level;Ljava/lang/String;)V
+HSPLjava/util/logging/Logger;->log(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
+HSPLjava/util/logging/Logger;->log(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
HSPLjava/util/logging/Logger;->log(Ljava/util/logging/LogRecord;)V
HSPLjava/util/logging/Logger;->logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLjava/util/logging/Logger;->logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
@@ -14316,10 +42127,25 @@ HSPLjava/util/logging/Logger;->setCallersClassLoaderRef(Ljava/lang/Class;)V
HSPLjava/util/logging/Logger;->setLevel(Ljava/util/logging/Level;)V
HSPLjava/util/logging/Logger;->setLogManager(Ljava/util/logging/LogManager;)V
HSPLjava/util/logging/Logger;->setParent(Ljava/util/logging/Logger;)V
+HSPLjava/util/logging/Logger;->setUseParentHandlers(Z)V
HSPLjava/util/logging/Logger;->setupResourceInfo(Ljava/lang/String;Ljava/lang/Class;)V
HSPLjava/util/logging/Logger;->updateEffectiveLevel()V
+HSPLjava/util/logging/Logger;->warning(Ljava/lang/String;)V
HSPLjava/util/logging/LoggingProxyImpl;->getLogger(Ljava/lang/String;)Ljava/lang/Object;
+HSPLjava/util/logging/LoggingProxyImpl;->getProperty(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/util/logging/LoggingProxyImpl;->parseLevel(Ljava/lang/String;)Ljava/lang/Object;
+HSPLjava/util/logging/SimpleFormatter;-><clinit>()V
+HSPLjava/util/logging/SimpleFormatter;-><init>()V
+HSPLjava/util/logging/StreamHandler;-><init>()V
+PLjava/util/logging/StreamHandler;->close()V
+HSPLjava/util/logging/StreamHandler;->configure()V
+HSPLjava/util/logging/StreamHandler;->flush()V
+HSPLjava/util/logging/StreamHandler;->flushAndClose()V
+HSPLjava/util/logging/StreamHandler;->isLoggable(Ljava/util/logging/LogRecord;)Z
+HSPLjava/util/logging/StreamHandler;->publish(Ljava/util/logging/LogRecord;)V
+HSPLjava/util/logging/StreamHandler;->setEncoding(Ljava/lang/String;)V
+HSPLjava/util/logging/StreamHandler;->setOutputStream(Ljava/io/OutputStream;)V
+HSPLjava/util/logging/XMLFormatter;-><init>()V
HSPLjava/util/regex/Matcher;-><init>(Ljava/util/regex/Pattern;Ljava/lang/CharSequence;)V
HSPLjava/util/regex/Matcher;->appendEvaluated(Ljava/lang/StringBuffer;Ljava/lang/String;)V
HSPLjava/util/regex/Matcher;->appendReplacement(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher;
@@ -14337,15 +42163,21 @@ HSPLjava/util/regex/Matcher;->groupCount()I
HSPLjava/util/regex/Matcher;->hitEnd()Z
HSPLjava/util/regex/Matcher;->lookingAt()Z
HSPLjava/util/regex/Matcher;->matches()Z
+HSPLjava/util/regex/Matcher;->pattern()Ljava/util/regex/Pattern;
+HSPLjava/util/regex/Matcher;->quoteReplacement(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/util/regex/Matcher;->region(II)Ljava/util/regex/Matcher;
+PLjava/util/regex/Matcher;->regionEnd()I
+PLjava/util/regex/Matcher;->regionStart()I
HSPLjava/util/regex/Matcher;->replaceAll(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/util/regex/Matcher;->replaceFirst(Ljava/lang/String;)Ljava/lang/String;
+HSPLjava/util/regex/Matcher;->requireEnd()Z
HSPLjava/util/regex/Matcher;->reset()Ljava/util/regex/Matcher;
HSPLjava/util/regex/Matcher;->reset(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
HSPLjava/util/regex/Matcher;->reset(Ljava/lang/CharSequence;II)Ljava/util/regex/Matcher;
HSPLjava/util/regex/Matcher;->resetForInput()V
HSPLjava/util/regex/Matcher;->start()I
HSPLjava/util/regex/Matcher;->start(I)I
+HSPLjava/util/regex/Matcher;->toMatchResult()Ljava/util/regex/MatchResult;
HSPLjava/util/regex/Matcher;->useAnchoringBounds(Z)Ljava/util/regex/Matcher;
HSPLjava/util/regex/Matcher;->usePattern(Ljava/util/regex/Pattern;)Ljava/util/regex/Matcher;
HSPLjava/util/regex/Matcher;->useTransparentBounds(Z)Ljava/util/regex/Matcher;
@@ -14354,30 +42186,43 @@ HSPLjava/util/regex/Pattern;->compile()V
HSPLjava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
HSPLjava/util/regex/Pattern;->compile(Ljava/lang/String;I)Ljava/util/regex/Pattern;
HSPLjava/util/regex/Pattern;->fastSplit(Ljava/lang/String;Ljava/lang/String;I)[Ljava/lang/String;
+HPLjava/util/regex/Pattern;->flags()I
HSPLjava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
HSPLjava/util/regex/Pattern;->matches(Ljava/lang/String;Ljava/lang/CharSequence;)Z
+HSPLjava/util/regex/Pattern;->pattern()Ljava/lang/String;
HSPLjava/util/regex/Pattern;->quote(Ljava/lang/String;)Ljava/lang/String;
HSPLjava/util/regex/Pattern;->split(Ljava/lang/CharSequence;)[Ljava/lang/String;
HSPLjava/util/regex/Pattern;->split(Ljava/lang/CharSequence;I)[Ljava/lang/String;
+HSPLjava/util/regex/Pattern;->toString()Ljava/lang/String;
+HSPLjava/util/stream/-$$Lambda$Collectors$F7-we3W7I2plNaGHqh_d2lzmvho;-><init>(Ljava/util/function/Function;Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;)V
+HSPLjava/util/stream/-$$Lambda$Collectors$F7-we3W7I2plNaGHqh_d2lzmvho;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
HSPLjava/util/stream/-$$Lambda$Collectors$TzSZZBK0laNSWMge_uuxANwkkMo;-><init>(Ljava/util/function/BinaryOperator;)V
-HSPLjava/util/stream/-$$Lambda$Collectors$nKlT6uFghrTzWO44dlFAJFeRr34;-><init>(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;)V
-HSPLjava/util/stream/-$$Lambda$Collectors$nKlT6uFghrTzWO44dlFAJFeRr34;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLjava/util/stream/-$$Lambda$Collectors$f0IPpRuyw9HZC8FIP30mNjUUUhw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/stream/-$$Lambda$Collectors$f68RHYk8qNU7alEHPPrPoFuCJO4;-><init>(Ljava/util/function/Supplier;)V
+HSPLjava/util/stream/-$$Lambda$Collectors$f68RHYk8qNU7alEHPPrPoFuCJO4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLjava/util/stream/-$$Lambda$Collectors$nKlT6uFghrTzWO44dlFAJFeRr34;-><init>(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;)V
+HPLjava/util/stream/-$$Lambda$Collectors$nKlT6uFghrTzWO44dlFAJFeRr34;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
HSPLjava/util/stream/-$$Lambda$Collectors$pzPeDl3rCgtNVSeZPHZk5f2se60;-><init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V
HSPLjava/util/stream/-$$Lambda$Collectors$pzPeDl3rCgtNVSeZPHZk5f2se60;->get()Ljava/lang/Object;
HSPLjava/util/stream/-$$Lambda$Drw47GGUtPrz9CklhlT0v26u-5c;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLjava/util/stream/-$$Lambda$MatchOps$_LtFSpSMfVwoPv-8p_1cMGGcaHA;-><init>(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/Predicate;)V
-PLjava/util/stream/-$$Lambda$MatchOps$_LtFSpSMfVwoPv-8p_1cMGGcaHA;->get()Ljava/lang/Object;
+HSPLjava/util/stream/-$$Lambda$IntPipeline$R-E7oGjPWog3HR9X-8MdhU1ZGRE;->applyAsInt(Ljava/lang/Object;)I
+HSPLjava/util/stream/-$$Lambda$MatchOps$_LtFSpSMfVwoPv-8p_1cMGGcaHA;-><init>(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/Predicate;)V
+HSPLjava/util/stream/-$$Lambda$MatchOps$_LtFSpSMfVwoPv-8p_1cMGGcaHA;->get()Ljava/lang/Object;
HSPLjava/util/stream/-$$Lambda$ReferencePipeline$mk6xSsLZAKvG89IyN8pzBoM6otw;->applyAsLong(Ljava/lang/Object;)J
HSPLjava/util/stream/-$$Lambda$dplkPhACWDPIy18ogwdupEQaN40;->applyAsLong(JJ)J
HSPLjava/util/stream/-$$Lambda$ihOtgw0eLCrsEBOphyN7SwoAlDg;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
HSPLjava/util/stream/-$$Lambda$okJigbB9kSn__oCZ5Do9uFNyF6A;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/stream/-$$Lambda$ono9Bp0lMrKbIRfAAYdycY0_qag;->applyAsInt(II)I
HSPLjava/util/stream/-$$Lambda$opQ7JxjVCJzqzgTxGU3LVtqC7is;->get()Ljava/lang/Object;
HSPLjava/util/stream/-$$Lambda$r-8H_R_mZJjp9wd0XTLoEAHMNQ0;->get()Ljava/lang/Object;
-HSPLjava/util/stream/-$$Lambda$ry7iWszBr7beYy31SdRxibDyciQ;->get()Ljava/lang/Object;
+HPLjava/util/stream/-$$Lambda$ry7iWszBr7beYy31SdRxibDyciQ;->get()Ljava/lang/Object;
+HPLjava/util/stream/-$$Lambda$sKPaOkcQePGTRevrwmKVVhCTmTo;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
HSPLjava/util/stream/-$$Lambda$uJ6CkL42Bk73jN5EzP0Fx7o1eVA;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLjava/util/stream/-$$Lambda$wFoiz-RiPqYBPe0X4aSzbj2iL3g;->apply(I)Ljava/lang/Object;
HSPLjava/util/stream/-$$Lambda$yTqQxkqu88ZhKI6fWaTTLwOLF60;->get()Ljava/lang/Object;
HSPLjava/util/stream/AbstractPipeline;-><init>(Ljava/util/Spliterator;IZ)V
HSPLjava/util/stream/AbstractPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
+HSPLjava/util/stream/AbstractPipeline;->close()V
HSPLjava/util/stream/AbstractPipeline;->copyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
HSPLjava/util/stream/AbstractPipeline;->copyIntoWithCancel(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
HSPLjava/util/stream/AbstractPipeline;->evaluate(Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
@@ -14386,10 +42231,17 @@ HSPLjava/util/stream/AbstractPipeline;->evaluateToArrayNode(Ljava/util/function/
HSPLjava/util/stream/AbstractPipeline;->exactOutputSizeIfKnown(Ljava/util/Spliterator;)J
HSPLjava/util/stream/AbstractPipeline;->getStreamAndOpFlags()I
HSPLjava/util/stream/AbstractPipeline;->isParallel()Z
+HSPLjava/util/stream/AbstractPipeline;->lambda$spliterator$0$AbstractPipeline()Ljava/util/Spliterator;
+HSPLjava/util/stream/AbstractPipeline;->onClose(Ljava/lang/Runnable;)Ljava/util/stream/BaseStream;
+HSPLjava/util/stream/AbstractPipeline;->sequential()Ljava/util/stream/BaseStream;
HSPLjava/util/stream/AbstractPipeline;->sourceSpliterator(I)Ljava/util/Spliterator;
+HSPLjava/util/stream/AbstractPipeline;->sourceStageSpliterator()Ljava/util/Spliterator;
+HSPLjava/util/stream/AbstractPipeline;->spliterator()Ljava/util/Spliterator;
HSPLjava/util/stream/AbstractPipeline;->wrapAndCopyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)Ljava/util/stream/Sink;
HSPLjava/util/stream/AbstractPipeline;->wrapSink(Ljava/util/stream/Sink;)Ljava/util/stream/Sink;
HSPLjava/util/stream/AbstractSpinedBuffer;-><init>()V
+PLjava/util/stream/AbstractSpinedBuffer;->chunkSize(I)I
+HSPLjava/util/stream/AbstractSpinedBuffer;->count()J
HSPLjava/util/stream/Collectors$CollectorImpl;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/Set;)V
HSPLjava/util/stream/Collectors$CollectorImpl;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/function/Function;Ljava/util/Set;)V
HSPLjava/util/stream/Collectors$CollectorImpl;->accumulator()Ljava/util/function/BiConsumer;
@@ -14399,15 +42251,21 @@ HSPLjava/util/stream/Collectors$CollectorImpl;->finisher()Ljava/util/function/Fu
HSPLjava/util/stream/Collectors$CollectorImpl;->supplier()Ljava/util/function/Supplier;
HSPLjava/util/stream/Collectors;->access$000()Ljava/util/function/Function;
HSPLjava/util/stream/Collectors;->castingIdentity()Ljava/util/function/Function;
+HPLjava/util/stream/Collectors;->collectingAndThen(Ljava/util/stream/Collector;Ljava/util/function/Function;)Ljava/util/stream/Collector;
+HSPLjava/util/stream/Collectors;->groupingBy(Ljava/util/function/Function;Ljava/util/function/Supplier;Ljava/util/stream/Collector;)Ljava/util/stream/Collector;
HSPLjava/util/stream/Collectors;->joining(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
HSPLjava/util/stream/Collectors;->joining(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
+HPLjava/util/stream/Collectors;->lambda$castingIdentity$1(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/stream/Collectors;->lambda$groupingBy$44(Ljava/util/function/Supplier;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLjava/util/stream/Collectors;->lambda$groupingBy$45(Ljava/util/function/Function;Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/Map;Ljava/lang/Object;)V
HSPLjava/util/stream/Collectors;->lambda$joining$6(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
-HSPLjava/util/stream/Collectors;->lambda$toMap$58(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;Ljava/util/Map;Ljava/lang/Object;)V
+HPLjava/util/stream/Collectors;->lambda$toMap$58(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;Ljava/util/Map;Ljava/lang/Object;)V
HSPLjava/util/stream/Collectors;->mapMerger(Ljava/util/function/BinaryOperator;)Ljava/util/function/BinaryOperator;
-HSPLjava/util/stream/Collectors;->throwingMerger()Ljava/util/function/BinaryOperator;
+HPLjava/util/stream/Collectors;->throwingMerger()Ljava/util/function/BinaryOperator;
+HSPLjava/util/stream/Collectors;->toCollection(Ljava/util/function/Supplier;)Ljava/util/stream/Collector;
HSPLjava/util/stream/Collectors;->toList()Ljava/util/stream/Collector;
-HSPLjava/util/stream/Collectors;->toMap(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;
-HSPLjava/util/stream/Collectors;->toMap(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;Ljava/util/function/Supplier;)Ljava/util/stream/Collector;
+HPLjava/util/stream/Collectors;->toMap(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;
+HPLjava/util/stream/Collectors;->toMap(Ljava/util/function/Function;Ljava/util/function/Function;Ljava/util/function/BinaryOperator;Ljava/util/function/Supplier;)Ljava/util/stream/Collector;
HSPLjava/util/stream/Collectors;->toSet()Ljava/util/stream/Collector;
HSPLjava/util/stream/DistinctOps$1$2;-><init>(Ljava/util/stream/DistinctOps$1;Ljava/util/stream/Sink;)V
HSPLjava/util/stream/DistinctOps$1$2;->accept(Ljava/lang/Object;)V
@@ -14425,45 +42283,95 @@ HSPLjava/util/stream/FindOps$FindSink$OfRef;->get()Ljava/util/Optional;
HSPLjava/util/stream/FindOps$FindSink;-><init>()V
HSPLjava/util/stream/FindOps$FindSink;->accept(Ljava/lang/Object;)V
HSPLjava/util/stream/FindOps$FindSink;->cancellationRequested()Z
+HPLjava/util/stream/FindOps;->makeInt(Z)Ljava/util/stream/TerminalOp;
HSPLjava/util/stream/FindOps;->makeRef(Z)Ljava/util/stream/TerminalOp;
HSPLjava/util/stream/ForEachOps$ForEachOp$OfRef;-><init>(Ljava/util/function/Consumer;Z)V
+HSPLjava/util/stream/ForEachOps$ForEachOp$OfRef;->accept(Ljava/lang/Object;)V
HSPLjava/util/stream/ForEachOps$ForEachOp;-><init>(Z)V
HSPLjava/util/stream/ForEachOps$ForEachOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;
HSPLjava/util/stream/ForEachOps$ForEachOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Void;
HSPLjava/util/stream/ForEachOps$ForEachOp;->get()Ljava/lang/Void;
HSPLjava/util/stream/ForEachOps$ForEachOp;->getOpFlags()I
HSPLjava/util/stream/ForEachOps;->makeRef(Ljava/util/function/Consumer;Z)Ljava/util/stream/TerminalOp;
+HSPLjava/util/stream/IntPipeline$4$1;-><init>(Ljava/util/stream/IntPipeline$4;Ljava/util/stream/Sink;)V
+HSPLjava/util/stream/IntPipeline$4$1;->accept(I)V
+HSPLjava/util/stream/IntPipeline$4;-><init>(Ljava/util/stream/IntPipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/IntFunction;)V
+HSPLjava/util/stream/IntPipeline$4;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
HSPLjava/util/stream/IntPipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
HSPLjava/util/stream/IntPipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
HSPLjava/util/stream/IntPipeline$StatelessOp;->opIsStateful()Z
HSPLjava/util/stream/IntPipeline;-><init>(Ljava/util/Spliterator;IZ)V
HSPLjava/util/stream/IntPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
+HPLjava/util/stream/IntPipeline;->adapt(Ljava/util/Spliterator;)Ljava/util/Spliterator$OfInt;
+HPLjava/util/stream/IntPipeline;->adapt(Ljava/util/stream/Sink;)Ljava/util/function/IntConsumer;
+HSPLjava/util/stream/IntPipeline;->boxed()Ljava/util/stream/Stream;
+HSPLjava/util/stream/IntPipeline;->distinct()Ljava/util/stream/IntStream;
+HPLjava/util/stream/IntPipeline;->filter(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;
+HPLjava/util/stream/IntPipeline;->findFirst()Ljava/util/OptionalInt;
+HPLjava/util/stream/IntPipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
+HSPLjava/util/stream/IntPipeline;->lambda$distinct$0(Ljava/lang/Integer;)I
HSPLjava/util/stream/IntPipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
+HSPLjava/util/stream/IntPipeline;->mapToObj(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;
+HSPLjava/util/stream/IntPipeline;->reduce(ILjava/util/function/IntBinaryOperator;)I
+HSPLjava/util/stream/IntPipeline;->sum()I
HSPLjava/util/stream/IntPipeline;->toArray()[I
+PLjava/util/stream/IntStream;->of([I)Ljava/util/stream/IntStream;
+HPLjava/util/stream/IntStream;->range(II)Ljava/util/stream/IntStream;
HSPLjava/util/stream/LongPipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
HSPLjava/util/stream/LongPipeline$StatelessOp;->opIsStateful()Z
HSPLjava/util/stream/LongPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
HSPLjava/util/stream/LongPipeline;->reduce(JLjava/util/function/LongBinaryOperator;)J
HSPLjava/util/stream/LongPipeline;->sum()J
-PLjava/util/stream/MatchOps$1MatchSink;-><init>(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/Predicate;)V
-PLjava/util/stream/MatchOps$1MatchSink;->accept(Ljava/lang/Object;)V
-PLjava/util/stream/MatchOps$BooleanTerminalSink;-><init>(Ljava/util/stream/MatchOps$MatchKind;)V
-PLjava/util/stream/MatchOps$BooleanTerminalSink;->cancellationRequested()Z
-PLjava/util/stream/MatchOps$BooleanTerminalSink;->getAndClearState()Z
-PLjava/util/stream/MatchOps$MatchKind;->access$000(Ljava/util/stream/MatchOps$MatchKind;)Z
-PLjava/util/stream/MatchOps$MatchKind;->access$100(Ljava/util/stream/MatchOps$MatchKind;)Z
-PLjava/util/stream/MatchOps$MatchOp;-><init>(Ljava/util/stream/StreamShape;Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/Supplier;)V
-PLjava/util/stream/MatchOps$MatchOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Boolean;
-PLjava/util/stream/MatchOps$MatchOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;
-PLjava/util/stream/MatchOps$MatchOp;->getOpFlags()I
-PLjava/util/stream/MatchOps;->lambda$makeRef$0(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/Predicate;)Ljava/util/stream/MatchOps$BooleanTerminalSink;
-PLjava/util/stream/MatchOps;->makeRef(Ljava/util/function/Predicate;Ljava/util/stream/MatchOps$MatchKind;)Ljava/util/stream/TerminalOp;
+HSPLjava/util/stream/MatchOps$1MatchSink;-><init>(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/Predicate;)V
+HSPLjava/util/stream/MatchOps$1MatchSink;->accept(Ljava/lang/Object;)V
+HSPLjava/util/stream/MatchOps$BooleanTerminalSink;-><init>(Ljava/util/stream/MatchOps$MatchKind;)V
+HSPLjava/util/stream/MatchOps$BooleanTerminalSink;->cancellationRequested()Z
+HSPLjava/util/stream/MatchOps$BooleanTerminalSink;->getAndClearState()Z
+HSPLjava/util/stream/MatchOps$MatchKind;->access$000(Ljava/util/stream/MatchOps$MatchKind;)Z
+HSPLjava/util/stream/MatchOps$MatchKind;->access$100(Ljava/util/stream/MatchOps$MatchKind;)Z
+HSPLjava/util/stream/MatchOps$MatchOp;-><init>(Ljava/util/stream/StreamShape;Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/Supplier;)V
+HSPLjava/util/stream/MatchOps$MatchOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Boolean;
+HSPLjava/util/stream/MatchOps$MatchOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;
+HSPLjava/util/stream/MatchOps$MatchOp;->getOpFlags()I
+HSPLjava/util/stream/MatchOps;->lambda$makeRef$0(Ljava/util/stream/MatchOps$MatchKind;Ljava/util/function/Predicate;)Ljava/util/stream/MatchOps$BooleanTerminalSink;
+HSPLjava/util/stream/MatchOps;->makeRef(Ljava/util/function/Predicate;Ljava/util/stream/MatchOps$MatchKind;)Ljava/util/stream/TerminalOp;
HSPLjava/util/stream/Node;->getChildCount()I
+HSPLjava/util/stream/Nodes$ArrayNode;-><init>(JLjava/util/function/IntFunction;)V
+HSPLjava/util/stream/Nodes$ArrayNode;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
+HSPLjava/util/stream/Nodes$FixedNodeBuilder;-><init>(JLjava/util/function/IntFunction;)V
+HPLjava/util/stream/Nodes$FixedNodeBuilder;->accept(Ljava/lang/Object;)V
+HSPLjava/util/stream/Nodes$FixedNodeBuilder;->begin(J)V
+HSPLjava/util/stream/Nodes$FixedNodeBuilder;->build()Ljava/util/stream/Node;
+HSPLjava/util/stream/Nodes$FixedNodeBuilder;->end()V
+HSPLjava/util/stream/Nodes$IntArrayNode;-><init>(J)V
+HSPLjava/util/stream/Nodes$IntArrayNode;->asPrimitiveArray()Ljava/lang/Object;
+HSPLjava/util/stream/Nodes$IntArrayNode;->asPrimitiveArray()[I
+HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;-><init>(J)V
+HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->accept(I)V
+HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->begin(J)V
+HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->build()Ljava/util/stream/Node$OfInt;
+HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->build()Ljava/util/stream/Node;
+HSPLjava/util/stream/Nodes$IntFixedNodeBuilder;->end()V
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;-><init>()V
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->accept(I)V
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->asPrimitiveArray()Ljava/lang/Object;
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->asPrimitiveArray()[I
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->begin(J)V
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->build()Ljava/util/stream/Node$OfInt;
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->build()Ljava/util/stream/Node;
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->copyInto(Ljava/lang/Object;I)V
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->copyInto([II)V
+HSPLjava/util/stream/Nodes$IntSpinedNodeBuilder;->end()V
+PLjava/util/stream/Nodes$SpinedNodeBuilder;-><clinit>()V
+PLjava/util/stream/Nodes$SpinedNodeBuilder;-><init>()V
+PLjava/util/stream/Nodes;->builder()Ljava/util/stream/Node$Builder;
HSPLjava/util/stream/Nodes;->builder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
HSPLjava/util/stream/Nodes;->flatten(Ljava/util/stream/Node;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
HSPLjava/util/stream/Nodes;->flattenInt(Ljava/util/stream/Node$OfInt;)Ljava/util/stream/Node$OfInt;
+HSPLjava/util/stream/Nodes;->intBuilder()Ljava/util/stream/Node$Builder$OfInt;
HSPLjava/util/stream/Nodes;->intBuilder(J)Ljava/util/stream/Node$Builder$OfInt;
HSPLjava/util/stream/PipelineHelper;-><init>()V
+PLjava/util/stream/ReduceOps$2;-><init>(Ljava/util/stream/StreamShape;Ljava/util/function/BinaryOperator;)V
HSPLjava/util/stream/ReduceOps$3;-><init>(Ljava/util/stream/StreamShape;Ljava/util/function/BinaryOperator;Ljava/util/function/BiConsumer;Ljava/util/function/Supplier;Ljava/util/stream/Collector;)V
HSPLjava/util/stream/ReduceOps$3;->getOpFlags()I
HSPLjava/util/stream/ReduceOps$3;->makeSink()Ljava/util/stream/ReduceOps$3ReducingSink;
@@ -14471,6 +42379,14 @@ HSPLjava/util/stream/ReduceOps$3;->makeSink()Ljava/util/stream/ReduceOps$Accumul
HSPLjava/util/stream/ReduceOps$3ReducingSink;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;)V
HSPLjava/util/stream/ReduceOps$3ReducingSink;->accept(Ljava/lang/Object;)V
HSPLjava/util/stream/ReduceOps$3ReducingSink;->begin(J)V
+HSPLjava/util/stream/ReduceOps$5;-><init>(Ljava/util/stream/StreamShape;Ljava/util/function/IntBinaryOperator;I)V
+HSPLjava/util/stream/ReduceOps$5;->makeSink()Ljava/util/stream/ReduceOps$5ReducingSink;
+HSPLjava/util/stream/ReduceOps$5;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink;
+HSPLjava/util/stream/ReduceOps$5ReducingSink;-><init>(ILjava/util/function/IntBinaryOperator;)V
+HSPLjava/util/stream/ReduceOps$5ReducingSink;->accept(I)V
+HSPLjava/util/stream/ReduceOps$5ReducingSink;->begin(J)V
+HSPLjava/util/stream/ReduceOps$5ReducingSink;->get()Ljava/lang/Integer;
+HSPLjava/util/stream/ReduceOps$5ReducingSink;->get()Ljava/lang/Object;
HSPLjava/util/stream/ReduceOps$8;-><init>(Ljava/util/stream/StreamShape;Ljava/util/function/LongBinaryOperator;J)V
HSPLjava/util/stream/ReduceOps$8;->makeSink()Ljava/util/stream/ReduceOps$8ReducingSink;
HSPLjava/util/stream/ReduceOps$8;->makeSink()Ljava/util/stream/ReduceOps$AccumulatingSink;
@@ -14483,7 +42399,9 @@ HSPLjava/util/stream/ReduceOps$Box;-><init>()V
HSPLjava/util/stream/ReduceOps$Box;->get()Ljava/lang/Object;
HSPLjava/util/stream/ReduceOps$ReduceOp;-><init>(Ljava/util/stream/StreamShape;)V
HSPLjava/util/stream/ReduceOps$ReduceOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;
+HSPLjava/util/stream/ReduceOps;->makeInt(ILjava/util/function/IntBinaryOperator;)Ljava/util/stream/TerminalOp;
HSPLjava/util/stream/ReduceOps;->makeLong(JLjava/util/function/LongBinaryOperator;)Ljava/util/stream/TerminalOp;
+PLjava/util/stream/ReduceOps;->makeRef(Ljava/util/function/BinaryOperator;)Ljava/util/stream/TerminalOp;
HSPLjava/util/stream/ReduceOps;->makeRef(Ljava/util/stream/Collector;)Ljava/util/stream/TerminalOp;
HSPLjava/util/stream/ReferencePipeline$2$1;-><init>(Ljava/util/stream/ReferencePipeline$2;Ljava/util/stream/Sink;)V
HSPLjava/util/stream/ReferencePipeline$2$1;->accept(Ljava/lang/Object;)V
@@ -14502,51 +42420,144 @@ HSPLjava/util/stream/ReferencePipeline$5$1;-><init>(Ljava/util/stream/ReferenceP
HSPLjava/util/stream/ReferencePipeline$5$1;->accept(Ljava/lang/Object;)V
HSPLjava/util/stream/ReferencePipeline$5;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/ToLongFunction;)V
HSPLjava/util/stream/ReferencePipeline$5;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
+HSPLjava/util/stream/ReferencePipeline$7;-><init>(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/Function;)V
HSPLjava/util/stream/ReferencePipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
+HSPLjava/util/stream/ReferencePipeline$Head;->forEach(Ljava/util/function/Consumer;)V
HSPLjava/util/stream/ReferencePipeline$StatefulOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
HSPLjava/util/stream/ReferencePipeline$StatefulOp;->opIsStateful()Z
HSPLjava/util/stream/ReferencePipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
HSPLjava/util/stream/ReferencePipeline$StatelessOp;->opIsStateful()Z
HSPLjava/util/stream/ReferencePipeline;-><init>(Ljava/util/Spliterator;IZ)V
HSPLjava/util/stream/ReferencePipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
-PLjava/util/stream/ReferencePipeline;->anyMatch(Ljava/util/function/Predicate;)Z
+HSPLjava/util/stream/ReferencePipeline;->allMatch(Ljava/util/function/Predicate;)Z
+HSPLjava/util/stream/ReferencePipeline;->anyMatch(Ljava/util/function/Predicate;)Z
HSPLjava/util/stream/ReferencePipeline;->collect(Ljava/util/stream/Collector;)Ljava/lang/Object;
HSPLjava/util/stream/ReferencePipeline;->count()J
HSPLjava/util/stream/ReferencePipeline;->distinct()Ljava/util/stream/Stream;
HSPLjava/util/stream/ReferencePipeline;->filter(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
+HSPLjava/util/stream/ReferencePipeline;->findAny()Ljava/util/Optional;
HSPLjava/util/stream/ReferencePipeline;->findFirst()Ljava/util/Optional;
+HSPLjava/util/stream/ReferencePipeline;->flatMap(Ljava/util/function/Function;)Ljava/util/stream/Stream;
HSPLjava/util/stream/ReferencePipeline;->forEach(Ljava/util/function/Consumer;)V
+HPLjava/util/stream/ReferencePipeline;->forEachOrdered(Ljava/util/function/Consumer;)V
HSPLjava/util/stream/ReferencePipeline;->forEachWithCancel(Ljava/util/Spliterator;Ljava/util/stream/Sink;)V
+HPLjava/util/stream/ReferencePipeline;->iterator()Ljava/util/Iterator;
HSPLjava/util/stream/ReferencePipeline;->lambda$count$2(Ljava/lang/Object;)J
+HSPLjava/util/stream/ReferencePipeline;->limit(J)Ljava/util/stream/Stream;
HSPLjava/util/stream/ReferencePipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
HSPLjava/util/stream/ReferencePipeline;->map(Ljava/util/function/Function;)Ljava/util/stream/Stream;
HSPLjava/util/stream/ReferencePipeline;->mapToInt(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;
HSPLjava/util/stream/ReferencePipeline;->mapToLong(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream;
+PLjava/util/stream/ReferencePipeline;->max(Ljava/util/Comparator;)Ljava/util/Optional;
+HPLjava/util/stream/ReferencePipeline;->min(Ljava/util/Comparator;)Ljava/util/Optional;
+PLjava/util/stream/ReferencePipeline;->reduce(Ljava/util/function/BinaryOperator;)Ljava/util/Optional;
+PLjava/util/stream/ReferencePipeline;->sorted(Ljava/util/Comparator;)Ljava/util/stream/Stream;
HSPLjava/util/stream/ReferencePipeline;->toArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
+HSPLjava/util/stream/ReferencePipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;
HSPLjava/util/stream/Sink$ChainedInt;-><init>(Ljava/util/stream/Sink;)V
+HSPLjava/util/stream/Sink$ChainedInt;->begin(J)V
+HPLjava/util/stream/Sink$ChainedInt;->cancellationRequested()Z
HSPLjava/util/stream/Sink$ChainedInt;->end()V
HSPLjava/util/stream/Sink$ChainedReference;-><init>(Ljava/util/stream/Sink;)V
HSPLjava/util/stream/Sink$ChainedReference;->begin(J)V
HSPLjava/util/stream/Sink$ChainedReference;->cancellationRequested()Z
HSPLjava/util/stream/Sink$ChainedReference;->end()V
HSPLjava/util/stream/Sink;->begin(J)V
+HSPLjava/util/stream/Sink;->cancellationRequested()Z
HSPLjava/util/stream/Sink;->end()V
+HSPLjava/util/stream/SliceOps$1$1;-><init>(Ljava/util/stream/SliceOps$1;Ljava/util/stream/Sink;)V
+HSPLjava/util/stream/SliceOps$1$1;->accept(Ljava/lang/Object;)V
+HSPLjava/util/stream/SliceOps$1$1;->begin(J)V
+HSPLjava/util/stream/SliceOps$1$1;->cancellationRequested()Z
+HSPLjava/util/stream/SliceOps$1;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;IJJ)V
+HSPLjava/util/stream/SliceOps$1;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
+HSPLjava/util/stream/SliceOps;->access$300(JJJ)J
+HSPLjava/util/stream/SliceOps;->calcSize(JJJ)J
+HSPLjava/util/stream/SliceOps;->flags(J)I
+HSPLjava/util/stream/SliceOps;->makeRef(Ljava/util/stream/AbstractPipeline;JJ)Ljava/util/stream/Stream;
+PLjava/util/stream/SortedOps$OfRef;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/Comparator;)V
+PLjava/util/stream/SortedOps;->makeRef(Ljava/util/stream/AbstractPipeline;Ljava/util/Comparator;)Ljava/util/stream/Stream;
+PLjava/util/stream/SpinedBuffer$1Splitr;-><clinit>()V
+PLjava/util/stream/SpinedBuffer$1Splitr;-><init>(Ljava/util/stream/SpinedBuffer;IIII)V
+PLjava/util/stream/SpinedBuffer$1Splitr;->characteristics()I
+PLjava/util/stream/SpinedBuffer$1Splitr;->estimateSize()J
+PLjava/util/stream/SpinedBuffer$1Splitr;->forEachRemaining(Ljava/util/function/Consumer;)V
+HSPLjava/util/stream/SpinedBuffer$OfInt;-><init>()V
+HSPLjava/util/stream/SpinedBuffer$OfInt;->accept(I)V
+HSPLjava/util/stream/SpinedBuffer$OfInt;->arrayLength(Ljava/lang/Object;)I
+HSPLjava/util/stream/SpinedBuffer$OfInt;->arrayLength([I)I
+HSPLjava/util/stream/SpinedBuffer$OfInt;->asPrimitiveArray()Ljava/lang/Object;
+HSPLjava/util/stream/SpinedBuffer$OfInt;->clear()V
+HSPLjava/util/stream/SpinedBuffer$OfInt;->copyInto(Ljava/lang/Object;I)V
+HSPLjava/util/stream/SpinedBuffer$OfInt;->count()J
+HSPLjava/util/stream/SpinedBuffer$OfInt;->newArray(I)Ljava/lang/Object;
+HSPLjava/util/stream/SpinedBuffer$OfInt;->newArray(I)[I
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;-><init>()V
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;->asPrimitiveArray()Ljava/lang/Object;
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;->capacity()J
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;->clear()V
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;->copyInto(Ljava/lang/Object;I)V
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;->ensureCapacity(J)V
+HSPLjava/util/stream/SpinedBuffer$OfPrimitive;->preAccept()V
+PLjava/util/stream/SpinedBuffer;-><init>()V
+PLjava/util/stream/SpinedBuffer;->increaseCapacity()V
+PLjava/util/stream/SpinedBuffer;->spliterator()Ljava/util/Spliterator;
+PLjava/util/stream/Stream;->builder()Ljava/util/stream/Stream$Builder;
+HSPLjava/util/stream/Stream;->concat(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
+HSPLjava/util/stream/Stream;->generate(Ljava/util/function/Supplier;)Ljava/util/stream/Stream;
+PLjava/util/stream/Stream;->of([Ljava/lang/Object;)Ljava/util/stream/Stream;
HSPLjava/util/stream/StreamOpFlag;->combineOpFlags(II)I
HSPLjava/util/stream/StreamOpFlag;->fromCharacteristics(Ljava/util/Spliterator;)I
HSPLjava/util/stream/StreamOpFlag;->getMask(I)I
HSPLjava/util/stream/StreamOpFlag;->isKnown(I)Z
+HSPLjava/util/stream/StreamOpFlag;->toCharacteristics(I)I
+HSPLjava/util/stream/StreamOpFlag;->toStreamFlags(I)I
+HSPLjava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator$OfRef;-><init>(JLjava/util/function/Supplier;)V
+HSPLjava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator$OfRef;->tryAdvance(Ljava/util/function/Consumer;)Z
+HSPLjava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator;-><init>(J)V
+HSPLjava/util/stream/StreamSpliterators$InfiniteSupplyingSpliterator;->characteristics()I
HSPLjava/util/stream/StreamSupport;->intStream(Ljava/util/Spliterator$OfInt;Z)Ljava/util/stream/IntStream;
HSPLjava/util/stream/StreamSupport;->stream(Ljava/util/Spliterator;Z)Ljava/util/stream/Stream;
+HSPLjava/util/stream/Streams$2;-><init>(Ljava/util/stream/BaseStream;Ljava/util/stream/BaseStream;)V
+PLjava/util/stream/Streams$AbstractStreamBuilderImpl;-><init>()V
+PLjava/util/stream/Streams$AbstractStreamBuilderImpl;-><init>(Ljava/util/stream/Streams$1;)V
+HPLjava/util/stream/Streams$AbstractStreamBuilderImpl;->characteristics()I
+PLjava/util/stream/Streams$AbstractStreamBuilderImpl;->estimateSize()J
+HSPLjava/util/stream/Streams$ConcatSpliterator$OfRef;-><init>(Ljava/util/Spliterator;Ljava/util/Spliterator;)V
+HSPLjava/util/stream/Streams$ConcatSpliterator;-><init>(Ljava/util/Spliterator;Ljava/util/Spliterator;)V
+HSPLjava/util/stream/Streams$ConcatSpliterator;->characteristics()I
+HPLjava/util/stream/Streams$ConcatSpliterator;->estimateSize()J
+HSPLjava/util/stream/Streams$ConcatSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
+PLjava/util/stream/Streams$RangeIntSpliterator;-><init>(III)V
+PLjava/util/stream/Streams$RangeIntSpliterator;-><init>(IIZ)V
+PLjava/util/stream/Streams$RangeIntSpliterator;->characteristics()I
+PLjava/util/stream/Streams$RangeIntSpliterator;->estimateSize()J
+PLjava/util/stream/Streams$RangeIntSpliterator;->getComparator()Ljava/util/Comparator;
+PLjava/util/stream/Streams$StreamBuilderImpl;-><init>()V
+PLjava/util/stream/Streams$StreamBuilderImpl;->accept(Ljava/lang/Object;)V
+HPLjava/util/stream/Streams$StreamBuilderImpl;->build()Ljava/util/stream/Stream;
+HPLjava/util/stream/Streams$StreamBuilderImpl;->forEachRemaining(Ljava/util/function/Consumer;)V
+HSPLjava/util/stream/Streams;->composedClose(Ljava/util/stream/BaseStream;Ljava/util/stream/BaseStream;)Ljava/lang/Runnable;
HSPLjava/util/stream/TerminalOp;->getOpFlags()I
+HSPLjava/util/zip/Adler32;-><init>()V
+HSPLjava/util/zip/Adler32;->getValue()J
+HSPLjava/util/zip/Adler32;->reset()V
+HSPLjava/util/zip/Adler32;->update(I)V
+HSPLjava/util/zip/Adler32;->update([B)V
+HSPLjava/util/zip/Adler32;->update([BII)V
HSPLjava/util/zip/CRC32;-><init>()V
HSPLjava/util/zip/CRC32;->getValue()J
HSPLjava/util/zip/CRC32;->reset()V
HSPLjava/util/zip/CRC32;->update(I)V
+HSPLjava/util/zip/CRC32;->update([B)V
HSPLjava/util/zip/CRC32;->update([BII)V
HSPLjava/util/zip/CheckedInputStream;-><init>(Ljava/io/InputStream;Ljava/util/zip/Checksum;)V
HSPLjava/util/zip/CheckedInputStream;->read()I
HSPLjava/util/zip/CheckedInputStream;->read([BII)I
+HSPLjava/util/zip/Deflater;-><init>()V
+PLjava/util/zip/Deflater;-><init>(I)V
HSPLjava/util/zip/Deflater;-><init>(IZ)V
+PLjava/util/zip/Deflater;->deflate([B)I
HSPLjava/util/zip/Deflater;->deflate([BII)I
HSPLjava/util/zip/Deflater;->deflate([BIII)I
HSPLjava/util/zip/Deflater;->end()V
@@ -14555,12 +42566,22 @@ HSPLjava/util/zip/Deflater;->finalize()V
HSPLjava/util/zip/Deflater;->finish()V
HSPLjava/util/zip/Deflater;->finished()Z
HSPLjava/util/zip/Deflater;->getBytesRead()J
+PLjava/util/zip/Deflater;->getBytesWritten()J
HSPLjava/util/zip/Deflater;->getTotalIn()I
HSPLjava/util/zip/Deflater;->needsInput()Z
+PLjava/util/zip/Deflater;->reset()V
+PLjava/util/zip/Deflater;->setInput([B)V
HSPLjava/util/zip/Deflater;->setInput([BII)V
+PLjava/util/zip/Deflater;->setLevel(I)V
+HPLjava/util/zip/Deflater;->setStrategy(I)V
+PLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;)V
+HSPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;)V
+HPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;I)V
HSPLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;IZ)V
+PLjava/util/zip/DeflaterOutputStream;-><init>(Ljava/io/OutputStream;Z)V
HSPLjava/util/zip/DeflaterOutputStream;->close()V
HSPLjava/util/zip/DeflaterOutputStream;->deflate()V
+HSPLjava/util/zip/DeflaterOutputStream;->finish()V
HSPLjava/util/zip/DeflaterOutputStream;->flush()V
HSPLjava/util/zip/DeflaterOutputStream;->write([BII)V
HSPLjava/util/zip/GZIPInputStream$1;-><init>(Ljava/util/zip/GZIPInputStream;Ljava/io/InputStream;)V
@@ -14583,6 +42604,7 @@ HSPLjava/util/zip/GZIPOutputStream;->writeHeader()V
HSPLjava/util/zip/GZIPOutputStream;->writeInt(I[BI)V
HSPLjava/util/zip/GZIPOutputStream;->writeShort(I[BI)V
HSPLjava/util/zip/GZIPOutputStream;->writeTrailer([BI)V
+HSPLjava/util/zip/Inflater;-><init>()V
HSPLjava/util/zip/Inflater;-><init>(Z)V
HSPLjava/util/zip/Inflater;->end()V
HSPLjava/util/zip/Inflater;->ended()Z
@@ -14598,6 +42620,8 @@ HSPLjava/util/zip/Inflater;->needsDictionary()Z
HSPLjava/util/zip/Inflater;->needsInput()Z
HSPLjava/util/zip/Inflater;->reset()V
HSPLjava/util/zip/Inflater;->setInput([BII)V
+HPLjava/util/zip/InflaterInputStream;-><init>(Ljava/io/InputStream;)V
+HSPLjava/util/zip/InflaterInputStream;-><init>(Ljava/io/InputStream;Ljava/util/zip/Inflater;)V
HSPLjava/util/zip/InflaterInputStream;-><init>(Ljava/io/InputStream;Ljava/util/zip/Inflater;I)V
HSPLjava/util/zip/InflaterInputStream;->available()I
HSPLjava/util/zip/InflaterInputStream;->close()V
@@ -14605,6 +42629,7 @@ HSPLjava/util/zip/InflaterInputStream;->ensureOpen()V
HSPLjava/util/zip/InflaterInputStream;->fill()V
HSPLjava/util/zip/InflaterInputStream;->read()I
HSPLjava/util/zip/InflaterInputStream;->read([BII)I
+HPLjava/util/zip/InflaterInputStream;->skip(J)J
HSPLjava/util/zip/ZStreamRef;-><init>(J)V
HSPLjava/util/zip/ZStreamRef;->address()J
HSPLjava/util/zip/ZStreamRef;->clear()V
@@ -14617,12 +42642,16 @@ HSPLjava/util/zip/ZipCoder;->isUTF8()Z
HSPLjava/util/zip/ZipCoder;->toString([BI)Ljava/lang/String;
HSPLjava/util/zip/ZipEntry;-><init>()V
HSPLjava/util/zip/ZipEntry;-><init>(Ljava/lang/String;)V
+HSPLjava/util/zip/ZipEntry;-><init>(Ljava/lang/String;Ljava/lang/String;JJJII[BJ)V
HSPLjava/util/zip/ZipEntry;-><init>(Ljava/util/zip/ZipEntry;)V
+HSPLjava/util/zip/ZipEntry;->getCompressedSize()J
+HSPLjava/util/zip/ZipEntry;->getDataOffset()J
HSPLjava/util/zip/ZipEntry;->getMethod()I
HSPLjava/util/zip/ZipEntry;->getName()Ljava/lang/String;
HSPLjava/util/zip/ZipEntry;->getSize()J
HSPLjava/util/zip/ZipEntry;->isDirectory()Z
HSPLjava/util/zip/ZipEntry;->setExtra0([BZ)V
+PLjava/util/zip/ZipEntry;->setTime(J)V
HSPLjava/util/zip/ZipFile$ZipEntryIterator;-><init>(Ljava/util/zip/ZipFile;)V
HSPLjava/util/zip/ZipFile$ZipEntryIterator;->hasMoreElements()Z
HSPLjava/util/zip/ZipFile$ZipEntryIterator;->hasNext()Z
@@ -14635,10 +42664,13 @@ HSPLjava/util/zip/ZipFile$ZipFileInflaterInputStream;->close()V
HSPLjava/util/zip/ZipFile$ZipFileInflaterInputStream;->fill()V
HSPLjava/util/zip/ZipFile$ZipFileInflaterInputStream;->finalize()V
HSPLjava/util/zip/ZipFile$ZipFileInputStream;-><init>(Ljava/util/zip/ZipFile;J)V
+HSPLjava/util/zip/ZipFile$ZipFileInputStream;->available()I
HSPLjava/util/zip/ZipFile$ZipFileInputStream;->close()V
HSPLjava/util/zip/ZipFile$ZipFileInputStream;->finalize()V
+HSPLjava/util/zip/ZipFile$ZipFileInputStream;->read()I
HSPLjava/util/zip/ZipFile$ZipFileInputStream;->read([BII)I
HSPLjava/util/zip/ZipFile$ZipFileInputStream;->size()J
+HSPLjava/util/zip/ZipFile;-><init>(Ljava/io/File;)V
HSPLjava/util/zip/ZipFile;-><init>(Ljava/io/File;I)V
HSPLjava/util/zip/ZipFile;-><init>(Ljava/io/File;ILjava/nio/charset/Charset;)V
HSPLjava/util/zip/ZipFile;-><init>(Ljava/lang/String;)V
@@ -14674,8 +42706,31 @@ HSPLjava/util/zip/ZipInputStream;->read([BII)I
HSPLjava/util/zip/ZipInputStream;->readEnd(Ljava/util/zip/ZipEntry;)V
HSPLjava/util/zip/ZipInputStream;->readFully([BII)V
HSPLjava/util/zip/ZipInputStream;->readLOC()Ljava/util/zip/ZipEntry;
+PLjava/util/zip/ZipOutputStream$XEntry;-><init>(Ljava/util/zip/ZipEntry;J)V
+PLjava/util/zip/ZipOutputStream;-><init>(Ljava/io/OutputStream;)V
+PLjava/util/zip/ZipOutputStream;-><init>(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V
+PLjava/util/zip/ZipOutputStream;->close()V
+PLjava/util/zip/ZipOutputStream;->closeEntry()V
+PLjava/util/zip/ZipOutputStream;->ensureOpen()V
+PLjava/util/zip/ZipOutputStream;->finish()V
+PLjava/util/zip/ZipOutputStream;->getExtraLen([B)I
+PLjava/util/zip/ZipOutputStream;->putNextEntry(Ljava/util/zip/ZipEntry;)V
+PLjava/util/zip/ZipOutputStream;->version(Ljava/util/zip/ZipEntry;)I
+PLjava/util/zip/ZipOutputStream;->write([BII)V
+PLjava/util/zip/ZipOutputStream;->writeBytes([BII)V
+PLjava/util/zip/ZipOutputStream;->writeCEN(Ljava/util/zip/ZipOutputStream$XEntry;)V
+PLjava/util/zip/ZipOutputStream;->writeEND(JJ)V
+PLjava/util/zip/ZipOutputStream;->writeEXT(Ljava/util/zip/ZipEntry;)V
+PLjava/util/zip/ZipOutputStream;->writeExtra([B)V
+PLjava/util/zip/ZipOutputStream;->writeInt(J)V
+PLjava/util/zip/ZipOutputStream;->writeLOC(Ljava/util/zip/ZipOutputStream$XEntry;)V
+PLjava/util/zip/ZipOutputStream;->writeShort(I)V
HSPLjava/util/zip/ZipUtils;->get16([BI)I
HSPLjava/util/zip/ZipUtils;->get32([BI)J
+PLjava/util/zip/ZipUtils;->javaToDosTime(J)J
+PLjava/util/zip/ZipUtils;->javaToExtendedDosTime(J)J
+HSPLjava/util/zip/ZipUtils;->unixTimeToFileTime(J)Ljava/nio/file/attribute/FileTime;
+HSPLjavax/crypto/BadPaddingException;-><init>(Ljava/lang/String;)V
HSPLjavax/crypto/Cipher$CipherSpiAndProvider;-><init>(Ljavax/crypto/CipherSpi;Ljava/security/Provider;)V
HSPLjavax/crypto/Cipher$InitParams;-><init>(Ljavax/crypto/Cipher$InitType;ILjava/security/Key;Ljava/security/SecureRandom;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/AlgorithmParameters;)V
HSPLjavax/crypto/Cipher$SpiAndProviderUpdater;-><init>(Ljavax/crypto/Cipher;Ljava/security/Provider;Ljavax/crypto/CipherSpi;)V
@@ -14692,37 +42747,119 @@ HSPLjavax/crypto/Cipher;->checkCipherState()V
HSPLjavax/crypto/Cipher;->checkOpmode(I)V
HSPLjavax/crypto/Cipher;->chooseProvider(Ljavax/crypto/Cipher$InitType;ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
HSPLjavax/crypto/Cipher;->createCipher(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher;
+HSPLjavax/crypto/Cipher;->doFinal(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
HSPLjavax/crypto/Cipher;->doFinal([B)[B
+HSPLjavax/crypto/Cipher;->doFinal([BI)I
+HSPLjavax/crypto/Cipher;->doFinal([BII)[B
+HSPLjavax/crypto/Cipher;->doFinal([BII[BI)I
+HSPLjavax/crypto/Cipher;->getBlockSize()I
+PLjavax/crypto/Cipher;->getIV()[B
HSPLjavax/crypto/Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
+HSPLjavax/crypto/Cipher;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;
+HSPLjavax/crypto/Cipher;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher;
+HSPLjavax/crypto/Cipher;->getOutputSize(I)I
+HSPLjavax/crypto/Cipher;->init(ILjava/security/Key;)V
+HSPLjavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/SecureRandom;)V
HSPLjavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
HSPLjavax/crypto/Cipher;->init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
HSPLjavax/crypto/Cipher;->matchAttribute(Ljava/security/Provider$Service;Ljava/lang/String;Ljava/lang/String;)Z
HSPLjavax/crypto/Cipher;->tokenizeTransformation(Ljava/lang/String;)[Ljava/lang/String;
HSPLjavax/crypto/Cipher;->tryCombinations(Ljavax/crypto/Cipher$InitParams;Ljava/security/Provider;[Ljava/lang/String;)Ljavax/crypto/Cipher$CipherSpiAndProvider;
HSPLjavax/crypto/Cipher;->tryTransformWithProvider(Ljavax/crypto/Cipher$InitParams;[Ljava/lang/String;Ljavax/crypto/Cipher$NeedToSet;Ljava/security/Provider$Service;)Ljavax/crypto/Cipher$CipherSpiAndProvider;
+PLjavax/crypto/Cipher;->unwrap([BLjava/lang/String;I)Ljava/security/Key;
+HPLjavax/crypto/Cipher;->update(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
+HSPLjavax/crypto/Cipher;->update([BII[BI)I
+HSPLjavax/crypto/Cipher;->updateAAD([B)V
+HSPLjavax/crypto/Cipher;->updateAAD([BII)V
HSPLjavax/crypto/Cipher;->updateProviderIfNeeded()V
+HPLjavax/crypto/Cipher;->wrap(Ljava/security/Key;)[B
HSPLjavax/crypto/CipherSpi;-><init>()V
+HSPLjavax/crypto/CipherSpi;->bufferCrypt(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Z)I
+HSPLjavax/crypto/CipherSpi;->engineDoFinal(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
+HPLjavax/crypto/CipherSpi;->engineUpdate(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
+HSPLjavax/crypto/JarVerifier;-><init>(Ljava/net/URL;Z)V
+HSPLjavax/crypto/JarVerifier;->verify()V
+HSPLjavax/crypto/JceSecurity$1;-><init>(Ljava/lang/Class;)V
+HSPLjavax/crypto/JceSecurity$1;->run()Ljava/lang/Object;
+HSPLjavax/crypto/JceSecurity$1;->run()Ljava/net/URL;
+HSPLjavax/crypto/JceSecurity;->access$000()Ljava/net/URL;
HSPLjavax/crypto/JceSecurity;->canUseProvider(Ljava/security/Provider;)Z
+HSPLjavax/crypto/JceSecurity;->getCodeBase(Ljava/lang/Class;)Ljava/net/URL;
+PLjavax/crypto/JceSecurity;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lsun/security/jca/GetInstance$Instance;
+HSPLjavax/crypto/JceSecurity;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/security/Provider;)Lsun/security/jca/GetInstance$Instance;
+HSPLjavax/crypto/JceSecurity;->getVerificationResult(Ljava/security/Provider;)Ljava/lang/Exception;
+HSPLjavax/crypto/JceSecurity;->verifyProviderJar(Ljava/net/URL;)V
+PLjavax/crypto/KeyAgreement;-><clinit>()V
+PLjavax/crypto/KeyAgreement;-><init>(Ljava/lang/String;)V
+PLjavax/crypto/KeyAgreement;->chooseFirstProvider()V
+PLjavax/crypto/KeyAgreement;->chooseProvider(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
+PLjavax/crypto/KeyAgreement;->doPhase(Ljava/security/Key;Z)Ljava/security/Key;
+PLjavax/crypto/KeyAgreement;->generateSecret()[B
+PLjavax/crypto/KeyAgreement;->getInstance(Ljava/lang/String;)Ljavax/crypto/KeyAgreement;
+PLjavax/crypto/KeyAgreement;->implInit(Ljavax/crypto/KeyAgreementSpi;ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
+PLjavax/crypto/KeyAgreement;->init(Ljava/security/Key;)V
+PLjavax/crypto/KeyAgreement;->init(Ljava/security/Key;Ljava/security/SecureRandom;)V
+PLjavax/crypto/KeyAgreementSpi;-><init>()V
HSPLjavax/crypto/KeyGenerator;-><init>(Ljava/lang/String;)V
HSPLjavax/crypto/KeyGenerator;->generateKey()Ljavax/crypto/SecretKey;
HSPLjavax/crypto/KeyGenerator;->getInstance(Ljava/lang/String;)Ljavax/crypto/KeyGenerator;
+PLjavax/crypto/KeyGenerator;->init(I)V
+PLjavax/crypto/KeyGenerator;->init(ILjava/security/SecureRandom;)V
HSPLjavax/crypto/KeyGenerator;->nextSpi(Ljavax/crypto/KeyGeneratorSpi;Z)Ljavax/crypto/KeyGeneratorSpi;
HSPLjavax/crypto/KeyGeneratorSpi;-><init>()V
HSPLjavax/crypto/Mac;-><init>(Ljava/lang/String;)V
+HSPLjavax/crypto/Mac;-><init>(Ljavax/crypto/MacSpi;Ljava/security/Provider;Ljava/lang/String;)V
HSPLjavax/crypto/Mac;->chooseFirstProvider()V
HSPLjavax/crypto/Mac;->chooseProvider(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
+PLjavax/crypto/Mac;->clone()Ljava/lang/Object;
HSPLjavax/crypto/Mac;->doFinal()[B
HSPLjavax/crypto/Mac;->doFinal([B)[B
+PLjavax/crypto/Mac;->doFinal([BI)V
+PLjavax/crypto/Mac;->getAlgorithm()Ljava/lang/String;
HSPLjavax/crypto/Mac;->getInstance(Ljava/lang/String;)Ljavax/crypto/Mac;
+HSPLjavax/crypto/Mac;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Mac;
+HSPLjavax/crypto/Mac;->getMacLength()I
HSPLjavax/crypto/Mac;->init(Ljava/security/Key;)V
+HPLjavax/crypto/Mac;->init(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
+HSPLjavax/crypto/Mac;->reset()V
+HSPLjavax/crypto/Mac;->update(B)V
HSPLjavax/crypto/Mac;->update([B)V
+HPLjavax/crypto/Mac;->update([BII)V
HSPLjavax/crypto/MacSpi;-><init>()V
+PLjavax/crypto/MacSpi;->clone()Ljava/lang/Object;
+HSPLjavax/crypto/SecretKeyFactory;-><init>(Ljava/lang/String;)V
+PLjavax/crypto/SecretKeyFactory;-><init>(Ljavax/crypto/SecretKeyFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V
+HSPLjavax/crypto/SecretKeyFactory;->generateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
+HSPLjavax/crypto/SecretKeyFactory;->getInstance(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
+PLjavax/crypto/SecretKeyFactory;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
+PLjavax/crypto/SecretKeyFactory;->getKeySpec(Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
+HSPLjavax/crypto/SecretKeyFactory;->nextSpi(Ljavax/crypto/SecretKeyFactorySpi;)Ljavax/crypto/SecretKeyFactorySpi;
+HSPLjavax/crypto/SecretKeyFactorySpi;-><init>()V
+HSPLjavax/crypto/spec/GCMParameterSpec;-><init>(I[B)V
+HSPLjavax/crypto/spec/GCMParameterSpec;-><init>(I[BII)V
+HSPLjavax/crypto/spec/GCMParameterSpec;->getIV()[B
+HSPLjavax/crypto/spec/GCMParameterSpec;->getTLen()I
+HSPLjavax/crypto/spec/GCMParameterSpec;->init(I[BII)V
HSPLjavax/crypto/spec/IvParameterSpec;-><init>([B)V
HSPLjavax/crypto/spec/IvParameterSpec;-><init>([BII)V
HSPLjavax/crypto/spec/IvParameterSpec;->getIV()[B
+HSPLjavax/crypto/spec/OAEPParameterSpec;->getMGFParameters()Ljava/security/spec/AlgorithmParameterSpec;
+HSPLjavax/crypto/spec/OAEPParameterSpec;->getPSource()Ljavax/crypto/spec/PSource;
+HSPLjavax/crypto/spec/PBEKeySpec;-><init>([C[BII)V
+HSPLjavax/crypto/spec/PBEKeySpec;->getIterationCount()I
+HSPLjavax/crypto/spec/PBEKeySpec;->getPassword()[C
+HSPLjavax/crypto/spec/PBEKeySpec;->getSalt()[B
+HPLjavax/crypto/spec/PBEParameterSpec;-><init>([BI)V
+HPLjavax/crypto/spec/PBEParameterSpec;->getIterationCount()I
+HPLjavax/crypto/spec/PBEParameterSpec;->getParameterSpec()Ljava/security/spec/AlgorithmParameterSpec;
+HPLjavax/crypto/spec/PBEParameterSpec;->getSalt()[B
+HSPLjavax/crypto/spec/PSource$PSpecified;->getValue()[B
+HPLjavax/crypto/spec/SecretKeySpec;-><init>([BIILjava/lang/String;)V
HSPLjavax/crypto/spec/SecretKeySpec;-><init>([BLjava/lang/String;)V
+HSPLjavax/crypto/spec/SecretKeySpec;->getAlgorithm()Ljava/lang/String;
HSPLjavax/crypto/spec/SecretKeySpec;->getEncoded()[B
HSPLjavax/crypto/spec/SecretKeySpec;->getFormat()Ljava/lang/String;
+HSPLjavax/microedition/khronos/egl/EGLContext;->getEGL()Ljavax/microedition/khronos/egl/EGL;
HSPLjavax/net/DefaultSocketFactory;-><init>()V
HSPLjavax/net/DefaultSocketFactory;->createSocket()Ljava/net/Socket;
HSPLjavax/net/DefaultSocketFactory;->createSocket(Ljava/net/InetAddress;I)Ljava/net/Socket;
@@ -14750,14 +42887,28 @@ HSPLjavax/net/ssl/SNIHostName;->getAsciiName()Ljava/lang/String;
HSPLjavax/net/ssl/SNIServerName;-><init>(I[B)V
HSPLjavax/net/ssl/SNIServerName;->getType()I
HSPLjavax/net/ssl/SSLContext;-><init>(Ljavax/net/ssl/SSLContextSpi;Ljava/security/Provider;Ljava/lang/String;)V
+HPLjavax/net/ssl/SSLContext;->createSSLEngine(Ljava/lang/String;I)Ljavax/net/ssl/SSLEngine;
+HSPLjavax/net/ssl/SSLContext;->getClientSessionContext()Ljavax/net/ssl/SSLSessionContext;
HSPLjavax/net/ssl/SSLContext;->getDefault()Ljavax/net/ssl/SSLContext;
HSPLjavax/net/ssl/SSLContext;->getInstance(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
+HSPLjavax/net/ssl/SSLContext;->getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
HSPLjavax/net/ssl/SSLContext;->getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/net/ssl/SSLContext;
HSPLjavax/net/ssl/SSLContext;->getSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
+HSPLjavax/net/ssl/SSLContext;->getSupportedSSLParameters()Ljavax/net/ssl/SSLParameters;
HSPLjavax/net/ssl/SSLContext;->init([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
HSPLjavax/net/ssl/SSLContext;->setDefault(Ljavax/net/ssl/SSLContext;)V
HSPLjavax/net/ssl/SSLContextSpi;-><init>()V
-PLjavax/net/ssl/SSLException;-><init>(Ljava/lang/String;)V
+HSPLjavax/net/ssl/SSLContextSpi;->engineGetSupportedSSLParameters()Ljavax/net/ssl/SSLParameters;
+HSPLjavax/net/ssl/SSLContextSpi;->getDefaultSocket()Ljavax/net/ssl/SSLSocket;
+HPLjavax/net/ssl/SSLEngine;-><init>()V
+HPLjavax/net/ssl/SSLEngine;->wrap([Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
+HPLjavax/net/ssl/SSLEngineResult;-><init>(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V
+HPLjavax/net/ssl/SSLEngineResult;->bytesConsumed()I
+HPLjavax/net/ssl/SSLEngineResult;->bytesProduced()I
+HPLjavax/net/ssl/SSLEngineResult;->getHandshakeStatus()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
+HPLjavax/net/ssl/SSLEngineResult;->getStatus()Ljavax/net/ssl/SSLEngineResult$Status;
+HSPLjavax/net/ssl/SSLException;-><init>(Ljava/lang/String;)V
+HPLjavax/net/ssl/SSLHandshakeException;-><init>(Ljava/lang/String;)V
HSPLjavax/net/ssl/SSLParameters;-><init>()V
HSPLjavax/net/ssl/SSLParameters;->clone([Ljava/lang/String;)[Ljava/lang/String;
HSPLjavax/net/ssl/SSLParameters;->getApplicationProtocols()[Ljava/lang/String;
@@ -14774,6 +42925,7 @@ HSPLjavax/net/ssl/SSLParameters;->setEndpointIdentificationAlgorithm(Ljava/lang/
HSPLjavax/net/ssl/SSLParameters;->setProtocols([Ljava/lang/String;)V
HSPLjavax/net/ssl/SSLParameters;->setServerNames(Ljava/util/List;)V
HSPLjavax/net/ssl/SSLParameters;->setUseCipherSuitesOrder(Z)V
+HPLjavax/net/ssl/SSLProtocolException;-><init>(Ljava/lang/String;)V
HSPLjavax/net/ssl/SSLSocket;-><init>()V
HSPLjavax/net/ssl/SSLSocket;->getSSLParameters()Ljavax/net/ssl/SSLParameters;
HSPLjavax/net/ssl/SSLSocket;->setSSLParameters(Ljavax/net/ssl/SSLParameters;)V
@@ -14792,6 +42944,7 @@ HSPLjavax/net/ssl/TrustManagerFactory;->getDefaultAlgorithm()Ljava/lang/String;
HSPLjavax/net/ssl/TrustManagerFactory;->getInstance(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
HSPLjavax/net/ssl/TrustManagerFactory;->getTrustManagers()[Ljavax/net/ssl/TrustManager;
HSPLjavax/net/ssl/TrustManagerFactory;->init(Ljava/security/KeyStore;)V
+HSLjavax/net/ssl/TrustManagerFactorySpi;-><init>()V
HSPLjavax/net/ssl/X509ExtendedKeyManager;-><init>()V
HSPLjavax/net/ssl/X509ExtendedTrustManager;-><init>()V
HSPLjavax/security/auth/x500/X500Principal;-><init>(Ljava/lang/String;)V
@@ -14800,14 +42953,22 @@ HSPLjavax/security/auth/x500/X500Principal;-><init>(Lsun/security/x509/X500Name;
HSPLjavax/security/auth/x500/X500Principal;-><init>([B)V
HSPLjavax/security/auth/x500/X500Principal;->equals(Ljava/lang/Object;)Z
HSPLjavax/security/auth/x500/X500Principal;->getEncoded()[B
+HSPLjavax/security/auth/x500/X500Principal;->getName()Ljava/lang/String;
+HSPLjavax/security/auth/x500/X500Principal;->getName(Ljava/lang/String;)Ljava/lang/String;
HSPLjavax/security/auth/x500/X500Principal;->hashCode()I
-HSPLlibcore/content/type/MimeMap$Builder$Element;-><init>(Ljava/lang/String;Z)V
-HSPLlibcore/content/type/MimeMap$Builder$Element;->ofExtensionSpec(Ljava/lang/String;)Llibcore/content/type/MimeMap$Builder$Element;
-HSPLlibcore/content/type/MimeMap$Builder$Element;->ofMimeSpec(Ljava/lang/String;)Llibcore/content/type/MimeMap$Builder$Element;
-HSPLlibcore/content/type/MimeMap$Builder;-><init>()V
-HSPLlibcore/content/type/MimeMap$Builder;->build()Llibcore/content/type/MimeMap;
-HSPLlibcore/content/type/MimeMap$Builder;->maybePut(Ljava/util/Map;Llibcore/content/type/MimeMap$Builder$Element;Ljava/lang/String;)Ljava/lang/String;
-HSPLlibcore/content/type/MimeMap$Builder;->put(Ljava/lang/String;Ljava/util/List;)Llibcore/content/type/MimeMap$Builder;
+HSPLjavax/xml/parsers/DocumentBuilder;-><init>()V
+HSPLjavax/xml/parsers/DocumentBuilder;->parse(Ljava/io/InputStream;)Lorg/w3c/dom/Document;
+HSPLjavax/xml/parsers/DocumentBuilderFactory;-><init>()V
+HSPLjavax/xml/parsers/DocumentBuilderFactory;->isCoalescing()Z
+HSPLjavax/xml/parsers/DocumentBuilderFactory;->isIgnoringComments()Z
+HSPLjavax/xml/parsers/DocumentBuilderFactory;->isIgnoringElementContentWhitespace()Z
+HSPLjavax/xml/parsers/DocumentBuilderFactory;->isNamespaceAware()Z
+HSPLjavax/xml/parsers/DocumentBuilderFactory;->isValidating()Z
+HSPLjavax/xml/parsers/DocumentBuilderFactory;->newInstance()Ljavax/xml/parsers/DocumentBuilderFactory;
+HSPLjavax/xml/parsers/DocumentBuilderFactory;->setNamespaceAware(Z)V
+HPLjavax/xml/parsers/SAXParser;-><init>()V
+HSPLjavax/xml/parsers/SAXParserFactory;-><init>()V
+HSPLjavax/xml/parsers/SAXParserFactory;->newInstance()Ljavax/xml/parsers/SAXParserFactory;
HSPLlibcore/content/type/MimeMap$MemoizingSupplier;->get()Ljava/lang/Object;
HSPLlibcore/content/type/MimeMap;-><init>(Ljava/util/Map;Ljava/util/Map;)V
HSPLlibcore/content/type/MimeMap;-><init>(Ljava/util/Map;Ljava/util/Map;Llibcore/content/type/MimeMap$1;)V
@@ -14821,7 +42982,23 @@ HSPLlibcore/content/type/MimeMap;->isValidMimeTypeOrExtension(Ljava/lang/String;
HSPLlibcore/content/type/MimeMap;->toLowerCase(Ljava/lang/String;)Ljava/lang/String;
PLlibcore/icu/CollationKeyICU;-><init>(Ljava/lang/String;Landroid/icu/text/CollationKey;)V
PLlibcore/icu/CollationKeyICU;->toByteArray()[B
+HSPLlibcore/icu/DateIntervalFormat;->formatDateRange(JJILjava/lang/String;)Ljava/lang/String;
+HSPLlibcore/icu/DateIntervalFormat;->formatDateRange(Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;JJI)Ljava/lang/String;
+HSPLlibcore/icu/DateIntervalFormat;->getFormatter(Ljava/lang/String;Landroid/icu/util/ULocale;Landroid/icu/util/TimeZone;)Landroid/icu/text/DateIntervalFormat;
+HSPLlibcore/icu/DateIntervalFormat;->isExactlyMidnight(Landroid/icu/util/Calendar;)Z
+HSPLlibcore/icu/DateUtilsBridge;->createIcuCalendar(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;J)Landroid/icu/util/Calendar;
+HSPLlibcore/icu/DateUtilsBridge;->fallInSameMonth(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z
+HSPLlibcore/icu/DateUtilsBridge;->fallInSameYear(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z
+HSPLlibcore/icu/DateUtilsBridge;->fallOnDifferentDates(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;)Z
+HSPLlibcore/icu/DateUtilsBridge;->icuTimeZone(Ljava/util/TimeZone;)Landroid/icu/util/TimeZone;
+HSPLlibcore/icu/DateUtilsBridge;->isThisYear(Landroid/icu/util/Calendar;)Z
+HSPLlibcore/icu/DateUtilsBridge;->toSkeleton(Landroid/icu/util/Calendar;Landroid/icu/util/Calendar;I)Ljava/lang/String;
+HSPLlibcore/icu/ICU;->getAvailableLocales()[Ljava/util/Locale;
HSPLlibcore/icu/ICU;->getBestDateTimePattern(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
+HSPLlibcore/icu/ICU;->getISOCountries()[Ljava/lang/String;
+HSPLlibcore/icu/ICU;->localeFromIcuLocaleId(Ljava/lang/String;)Ljava/util/Locale;
+HSPLlibcore/icu/ICU;->localesFromStrings([Ljava/lang/String;)[Ljava/util/Locale;
+HSPLlibcore/icu/ICU;->parseLangScriptRegionAndVariants(Ljava/lang/String;[Ljava/lang/String;)V
HSPLlibcore/icu/LocaleData;-><init>()V
HSPLlibcore/icu/LocaleData;->get(Ljava/util/Locale;)Llibcore/icu/LocaleData;
HSPLlibcore/icu/LocaleData;->getDateFormat(I)Ljava/lang/String;
@@ -14830,32 +43007,49 @@ HSPLlibcore/icu/LocaleData;->initLocaleData(Ljava/util/Locale;)Llibcore/icu/Loca
HSPLlibcore/icu/LocaleData;->initializePatternSeparator(Llibcore/icu/LocaleData;Ljava/util/Locale;)V
HSPLlibcore/icu/LocaleData;->mapInvalidAndNullLocales(Ljava/util/Locale;)Ljava/util/Locale;
HSPLlibcore/internal/StringPool;-><init>()V
+HSPLlibcore/internal/StringPool;->contentEquals(Ljava/lang/String;[CII)Z
HSPLlibcore/internal/StringPool;->get([CII)Ljava/lang/String;
HSPLlibcore/io/BlockGuardOs;->accept(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)Ljava/io/FileDescriptor;
HSPLlibcore/io/BlockGuardOs;->access(Ljava/lang/String;I)Z
HSPLlibcore/io/BlockGuardOs;->android_getaddrinfo(Ljava/lang/String;Landroid/system/StructAddrinfo;I)[Ljava/net/InetAddress;
HSPLlibcore/io/BlockGuardOs;->chmod(Ljava/lang/String;I)V
+HSPLlibcore/io/BlockGuardOs;->chown(Ljava/lang/String;II)V
HSPLlibcore/io/BlockGuardOs;->close(Ljava/io/FileDescriptor;)V
HSPLlibcore/io/BlockGuardOs;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
+HPLlibcore/io/BlockGuardOs;->connect(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V
+HSPLlibcore/io/BlockGuardOs;->fchmod(Ljava/io/FileDescriptor;I)V
+HSPLlibcore/io/BlockGuardOs;->fchown(Ljava/io/FileDescriptor;II)V
HSPLlibcore/io/BlockGuardOs;->fdatasync(Ljava/io/FileDescriptor;)V
HSPLlibcore/io/BlockGuardOs;->fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat;
+HPLlibcore/io/BlockGuardOs;->fsync(Ljava/io/FileDescriptor;)V
HSPLlibcore/io/BlockGuardOs;->ftruncate(Ljava/io/FileDescriptor;J)V
+HSPLlibcore/io/BlockGuardOs;->getxattr(Ljava/lang/String;Ljava/lang/String;)[B
HSPLlibcore/io/BlockGuardOs;->isInetDomain(I)Z
HSPLlibcore/io/BlockGuardOs;->isInetSocket(Ljava/io/FileDescriptor;)Z
HSPLlibcore/io/BlockGuardOs;->isLingerSocket(Ljava/io/FileDescriptor;)Z
HSPLlibcore/io/BlockGuardOs;->isUdpSocket(Ljava/io/FileDescriptor;)Z
HSPLlibcore/io/BlockGuardOs;->lseek(Ljava/io/FileDescriptor;JI)J
+HSPLlibcore/io/BlockGuardOs;->lstat(Ljava/lang/String;)Landroid/system/StructStat;
HSPLlibcore/io/BlockGuardOs;->mkdir(Ljava/lang/String;I)V
HSPLlibcore/io/BlockGuardOs;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor;
HSPLlibcore/io/BlockGuardOs;->poll([Landroid/system/StructPollfd;I)I
+HSPLlibcore/io/BlockGuardOs;->posix_fallocate(Ljava/io/FileDescriptor;JJ)V
+HPLlibcore/io/BlockGuardOs;->read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
HSPLlibcore/io/BlockGuardOs;->read(Ljava/io/FileDescriptor;[BII)I
+HSPLlibcore/io/BlockGuardOs;->readlink(Ljava/lang/String;)Ljava/lang/String;
+HSPLlibcore/io/BlockGuardOs;->recvfrom(Ljava/io/FileDescriptor;[BIIILjava/net/InetSocketAddress;)I
HSPLlibcore/io/BlockGuardOs;->remove(Ljava/lang/String;)V
HSPLlibcore/io/BlockGuardOs;->rename(Ljava/lang/String;Ljava/lang/String;)V
+HPLlibcore/io/BlockGuardOs;->sendto(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;ILjava/net/InetAddress;I)I
+HSPLlibcore/io/BlockGuardOs;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)I
+HPLlibcore/io/BlockGuardOs;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/SocketAddress;)I
HSPLlibcore/io/BlockGuardOs;->socket(III)Ljava/io/FileDescriptor;
HSPLlibcore/io/BlockGuardOs;->socketpair(IIILjava/io/FileDescriptor;Ljava/io/FileDescriptor;)V
HSPLlibcore/io/BlockGuardOs;->stat(Ljava/lang/String;)Landroid/system/StructStat;
HSPLlibcore/io/BlockGuardOs;->statvfs(Ljava/lang/String;)Landroid/system/StructStatVfs;
+HSPLlibcore/io/BlockGuardOs;->symlink(Ljava/lang/String;Ljava/lang/String;)V
HSPLlibcore/io/BlockGuardOs;->tagSocket(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor;
+HPLlibcore/io/BlockGuardOs;->write(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
HSPLlibcore/io/BlockGuardOs;->write(Ljava/io/FileDescriptor;[BII)I
HSPLlibcore/io/BufferIterator;-><init>()V
HSPLlibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection$1;-><init>(Llibcore/io/ClassPathURLStreamHandler$ClassPathURLConnection;Ljava/io/InputStream;)V
@@ -14875,43 +43069,68 @@ HSPLlibcore/io/ForwardingOs;->access(Ljava/lang/String;I)Z
HSPLlibcore/io/ForwardingOs;->android_fdsan_exchange_owner_tag(Ljava/io/FileDescriptor;JJ)V
HSPLlibcore/io/ForwardingOs;->android_getaddrinfo(Ljava/lang/String;Landroid/system/StructAddrinfo;I)[Ljava/net/InetAddress;
HSPLlibcore/io/ForwardingOs;->bind(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
+HSPLlibcore/io/ForwardingOs;->bind(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V
HSPLlibcore/io/ForwardingOs;->capget(Landroid/system/StructCapUserHeader;)[Landroid/system/StructCapUserData;
HSPLlibcore/io/ForwardingOs;->chmod(Ljava/lang/String;I)V
+HSPLlibcore/io/ForwardingOs;->chown(Ljava/lang/String;II)V
HSPLlibcore/io/ForwardingOs;->close(Ljava/io/FileDescriptor;)V
HSPLlibcore/io/ForwardingOs;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
+HPLlibcore/io/ForwardingOs;->connect(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V
HSPLlibcore/io/ForwardingOs;->dup2(Ljava/io/FileDescriptor;I)Ljava/io/FileDescriptor;
+HSPLlibcore/io/ForwardingOs;->fchmod(Ljava/io/FileDescriptor;I)V
+HSPLlibcore/io/ForwardingOs;->fchown(Ljava/io/FileDescriptor;II)V
HSPLlibcore/io/ForwardingOs;->fcntlInt(Ljava/io/FileDescriptor;II)I
HSPLlibcore/io/ForwardingOs;->fcntlVoid(Ljava/io/FileDescriptor;I)I
HSPLlibcore/io/ForwardingOs;->fdatasync(Ljava/io/FileDescriptor;)V
HSPLlibcore/io/ForwardingOs;->fstat(Ljava/io/FileDescriptor;)Landroid/system/StructStat;
+HPLlibcore/io/ForwardingOs;->fsync(Ljava/io/FileDescriptor;)V
HSPLlibcore/io/ForwardingOs;->ftruncate(Ljava/io/FileDescriptor;J)V
-PLlibcore/io/ForwardingOs;->gai_strerror(I)Ljava/lang/String;
+HSPLlibcore/io/ForwardingOs;->gai_strerror(I)Ljava/lang/String;
HSPLlibcore/io/ForwardingOs;->getenv(Ljava/lang/String;)Ljava/lang/String;
HSPLlibcore/io/ForwardingOs;->getifaddrs()[Landroid/system/StructIfaddrs;
HSPLlibcore/io/ForwardingOs;->getnameinfo(Ljava/net/InetAddress;I)Ljava/lang/String;
HSPLlibcore/io/ForwardingOs;->getpeername(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress;
HSPLlibcore/io/ForwardingOs;->getpgid(I)I
HSPLlibcore/io/ForwardingOs;->getpid()I
+HSPLlibcore/io/ForwardingOs;->getrlimit(I)Landroid/system/StructRlimit;
HSPLlibcore/io/ForwardingOs;->getsockname(Ljava/io/FileDescriptor;)Ljava/net/SocketAddress;
HSPLlibcore/io/ForwardingOs;->getsockoptInt(Ljava/io/FileDescriptor;II)I
HSPLlibcore/io/ForwardingOs;->getsockoptLinger(Ljava/io/FileDescriptor;II)Landroid/system/StructLinger;
HSPLlibcore/io/ForwardingOs;->gettid()I
HSPLlibcore/io/ForwardingOs;->getuid()I
+HSPLlibcore/io/ForwardingOs;->getxattr(Ljava/lang/String;Ljava/lang/String;)[B
HSPLlibcore/io/ForwardingOs;->if_nametoindex(Ljava/lang/String;)I
HSPLlibcore/io/ForwardingOs;->ioctlInt(Ljava/io/FileDescriptor;ILandroid/system/Int32Ref;)I
+HPLlibcore/io/ForwardingOs;->kill(II)V
HSPLlibcore/io/ForwardingOs;->listen(Ljava/io/FileDescriptor;I)V
HSPLlibcore/io/ForwardingOs;->lseek(Ljava/io/FileDescriptor;JI)J
+HSPLlibcore/io/ForwardingOs;->lstat(Ljava/lang/String;)Landroid/system/StructStat;
HSPLlibcore/io/ForwardingOs;->mkdir(Ljava/lang/String;I)V
+HSPLlibcore/io/ForwardingOs;->mlock(JJ)V
+HSPLlibcore/io/ForwardingOs;->mmap(JJIILjava/io/FileDescriptor;J)J
+HSPLlibcore/io/ForwardingOs;->munmap(JJ)V
HSPLlibcore/io/ForwardingOs;->open(Ljava/lang/String;II)Ljava/io/FileDescriptor;
-PLlibcore/io/ForwardingOs;->pipe2(I)[Ljava/io/FileDescriptor;
+HSPLlibcore/io/ForwardingOs;->pipe2(I)[Ljava/io/FileDescriptor;
HSPLlibcore/io/ForwardingOs;->poll([Landroid/system/StructPollfd;I)I
+HSPLlibcore/io/ForwardingOs;->posix_fallocate(Ljava/io/FileDescriptor;JJ)V
+HSPLlibcore/io/ForwardingOs;->prctl(IJJJJ)I
+HPLlibcore/io/ForwardingOs;->read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
HSPLlibcore/io/ForwardingOs;->read(Ljava/io/FileDescriptor;[BII)I
+HSPLlibcore/io/ForwardingOs;->readlink(Ljava/lang/String;)Ljava/lang/String;
+HSPLlibcore/io/ForwardingOs;->recvfrom(Ljava/io/FileDescriptor;[BIIILjava/net/InetSocketAddress;)I
HSPLlibcore/io/ForwardingOs;->remove(Ljava/lang/String;)V
HSPLlibcore/io/ForwardingOs;->rename(Ljava/lang/String;Ljava/lang/String;)V
+HPLlibcore/io/ForwardingOs;->sendto(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;ILjava/net/InetAddress;I)I
+HSPLlibcore/io/ForwardingOs;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)I
+HPLlibcore/io/ForwardingOs;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/SocketAddress;)I
HSPLlibcore/io/ForwardingOs;->setpgid(II)V
HSPLlibcore/io/ForwardingOs;->setregid(II)V
HSPLlibcore/io/ForwardingOs;->setreuid(II)V
+HPLlibcore/io/ForwardingOs;->setsockoptByte(Ljava/io/FileDescriptor;III)V
+HSPLlibcore/io/ForwardingOs;->setsockoptGroupReq(Ljava/io/FileDescriptor;IILandroid/system/StructGroupReq;)V
+HPLlibcore/io/ForwardingOs;->setsockoptIfreq(Ljava/io/FileDescriptor;IILjava/lang/String;)V
HSPLlibcore/io/ForwardingOs;->setsockoptInt(Ljava/io/FileDescriptor;III)V
+HSPLlibcore/io/ForwardingOs;->setsockoptIpMreqn(Ljava/io/FileDescriptor;III)V
HSPLlibcore/io/ForwardingOs;->setsockoptTimeval(Ljava/io/FileDescriptor;IILandroid/system/StructTimeval;)V
HSPLlibcore/io/ForwardingOs;->shutdown(Ljava/io/FileDescriptor;I)V
HSPLlibcore/io/ForwardingOs;->socket(III)Ljava/io/FileDescriptor;
@@ -14919,22 +43138,34 @@ HSPLlibcore/io/ForwardingOs;->socketpair(IIILjava/io/FileDescriptor;Ljava/io/Fil
HSPLlibcore/io/ForwardingOs;->stat(Ljava/lang/String;)Landroid/system/StructStat;
HSPLlibcore/io/ForwardingOs;->statvfs(Ljava/lang/String;)Landroid/system/StructStatVfs;
HSPLlibcore/io/ForwardingOs;->strerror(I)Ljava/lang/String;
+PLlibcore/io/ForwardingOs;->strsignal(I)Ljava/lang/String;
+HSPLlibcore/io/ForwardingOs;->symlink(Ljava/lang/String;Ljava/lang/String;)V
HSPLlibcore/io/ForwardingOs;->sysconf(I)J
+HSPLlibcore/io/ForwardingOs;->umask(I)I
+HSPLlibcore/io/ForwardingOs;->uname()Landroid/system/StructUtsname;
+HPLlibcore/io/ForwardingOs;->write(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
HSPLlibcore/io/ForwardingOs;->write(Ljava/io/FileDescriptor;[BII)I
+HSPLlibcore/io/IoBridge;->available(Ljava/io/FileDescriptor;)I
HSPLlibcore/io/IoBridge;->bind(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
HSPLlibcore/io/IoBridge;->booleanFromInt(I)Z
HSPLlibcore/io/IoBridge;->booleanToInt(Z)I
HSPLlibcore/io/IoBridge;->closeAndSignalBlockedThreads(Ljava/io/FileDescriptor;)V
+HSPLlibcore/io/IoBridge;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
HSPLlibcore/io/IoBridge;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;II)V
HSPLlibcore/io/IoBridge;->connectErrno(Ljava/io/FileDescriptor;Ljava/net/InetAddress;II)V
-PLlibcore/io/IoBridge;->createMessageForException(Ljava/io/FileDescriptor;Ljava/net/InetAddress;IILjava/lang/Exception;)Ljava/lang/String;
+HSPLlibcore/io/IoBridge;->createMessageForException(Ljava/io/FileDescriptor;Ljava/net/InetAddress;IILjava/lang/Exception;)Ljava/lang/String;
HSPLlibcore/io/IoBridge;->getLocalInetSocketAddress(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
HSPLlibcore/io/IoBridge;->getSocketOption(Ljava/io/FileDescriptor;I)Ljava/lang/Object;
HSPLlibcore/io/IoBridge;->getSocketOptionErrno(Ljava/io/FileDescriptor;I)Ljava/lang/Object;
HSPLlibcore/io/IoBridge;->isConnected(Ljava/io/FileDescriptor;Ljava/net/InetAddress;III)Z
+HPLlibcore/io/IoBridge;->maybeThrowAfterRecvfrom(ZZLandroid/system/ErrnoException;)I
+HSPLlibcore/io/IoBridge;->maybeThrowAfterSendto(ZLandroid/system/ErrnoException;)I
HSPLlibcore/io/IoBridge;->open(Ljava/lang/String;I)Ljava/io/FileDescriptor;
HSPLlibcore/io/IoBridge;->poll(Ljava/io/FileDescriptor;II)V
+HSPLlibcore/io/IoBridge;->postRecvfrom(ZLjava/net/DatagramPacket;Ljava/net/InetSocketAddress;I)I
HSPLlibcore/io/IoBridge;->read(Ljava/io/FileDescriptor;[BII)I
+HSPLlibcore/io/IoBridge;->recvfrom(ZLjava/io/FileDescriptor;[BIIILjava/net/DatagramPacket;Z)I
+HSPLlibcore/io/IoBridge;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)I
HSPLlibcore/io/IoBridge;->setSocketOption(Ljava/io/FileDescriptor;ILjava/lang/Object;)V
HSPLlibcore/io/IoBridge;->setSocketOptionErrno(Ljava/io/FileDescriptor;ILjava/lang/Object;)V
HSPLlibcore/io/IoBridge;->socket(III)Ljava/io/FileDescriptor;
@@ -14943,6 +43174,10 @@ HSPLlibcore/io/IoTracker;-><init>()V
HSPLlibcore/io/IoTracker;->reset()V
HSPLlibcore/io/IoTracker;->trackIo(I)V
HSPLlibcore/io/IoTracker;->trackIo(ILlibcore/io/IoTracker$Mode;)V
+HSPLlibcore/io/IoUtils$FileReader;-><init>(Ljava/lang/String;)V
+HSPLlibcore/io/IoUtils$FileReader;->readFully()Llibcore/io/IoUtils$FileReader;
+HSPLlibcore/io/IoUtils$FileReader;->toByteArray()[B
+PLlibcore/io/IoUtils$FileReader;->toString(Ljava/nio/charset/Charset;)Ljava/lang/String;
HSPLlibcore/io/IoUtils;->acquireRawFd(Ljava/io/FileDescriptor;)I
HSPLlibcore/io/IoUtils;->canOpenReadOnly(Ljava/lang/String;)Z
HSPLlibcore/io/IoUtils;->close(Ljava/io/FileDescriptor;)V
@@ -14950,11 +43185,20 @@ HSPLlibcore/io/IoUtils;->closeQuietly(Ljava/io/FileDescriptor;)V
HSPLlibcore/io/IoUtils;->closeQuietly(Ljava/lang/AutoCloseable;)V
HSPLlibcore/io/IoUtils;->generateFdOwnerId(Ljava/lang/Object;)J
HSPLlibcore/io/IoUtils;->isParcelFileDescriptor(Ljava/lang/Object;)Z
+HSPLlibcore/io/IoUtils;->readFileAsByteArray(Ljava/lang/String;)[B
HSPLlibcore/io/IoUtils;->setBlocking(Ljava/io/FileDescriptor;Z)V
HSPLlibcore/io/IoUtils;->setFdOwner(Ljava/io/FileDescriptor;Ljava/lang/Object;)V
HSPLlibcore/io/Libcore;->compareAndSetOs(Llibcore/io/Os;Llibcore/io/Os;)Z
HSPLlibcore/io/Libcore;->getOs()Llibcore/io/Os;
+HPLlibcore/io/Linux;->maybeUpdateBufferPosition(Ljava/nio/ByteBuffer;II)V
+HPLlibcore/io/Linux;->read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
HSPLlibcore/io/Linux;->read(Ljava/io/FileDescriptor;[BII)I
+HSPLlibcore/io/Linux;->recvfrom(Ljava/io/FileDescriptor;[BIIILjava/net/InetSocketAddress;)I
+HPLlibcore/io/Linux;->sendto(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;ILjava/net/InetAddress;I)I
+HSPLlibcore/io/Linux;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/InetAddress;I)I
+HPLlibcore/io/Linux;->sendto(Ljava/io/FileDescriptor;[BIIILjava/net/SocketAddress;)I
+HSPLlibcore/io/Linux;->umask(I)I
+HPLlibcore/io/Linux;->write(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
HSPLlibcore/io/Linux;->write(Ljava/io/FileDescriptor;[BII)I
HSPLlibcore/io/Memory;->peekInt(JZ)I
HSPLlibcore/io/Memory;->peekInt([BILjava/nio/ByteOrder;)I
@@ -14962,6 +43206,8 @@ HSPLlibcore/io/Memory;->peekLong(JZ)J
HSPLlibcore/io/Memory;->peekShort(JZ)S
HSPLlibcore/io/Memory;->peekShort([BILjava/nio/ByteOrder;)S
HSPLlibcore/io/Memory;->pokeInt(JIZ)V
+HSPLlibcore/io/Memory;->pokeInt([BIILjava/nio/ByteOrder;)V
+HSPLlibcore/io/Memory;->pokeLong(JJZ)V
HSPLlibcore/io/MemoryMappedFile;->bigEndianIterator()Llibcore/io/BufferIterator;
HSPLlibcore/io/MemoryMappedFile;->checkNotClosed()V
HSPLlibcore/io/NioBufferIterator;-><init>(Llibcore/io/MemoryMappedFile;JIZ)V
@@ -14974,24 +43220,34 @@ HSPLlibcore/io/NioBufferIterator;->readLongArray([JII)V
HSPLlibcore/io/NioBufferIterator;->skip(I)V
HSPLlibcore/io/Os;->compareAndSetDefault(Llibcore/io/Os;Llibcore/io/Os;)Z
HSPLlibcore/io/Os;->getDefault()Llibcore/io/Os;
+HSPLlibcore/io/Streams;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;)I
+HSPLlibcore/io/Streams;->readFully(Ljava/io/InputStream;)[B
+HPLlibcore/io/Streams;->readFully(Ljava/io/Reader;)Ljava/lang/String;
+HSPLlibcore/io/Streams;->readFullyNoClose(Ljava/io/InputStream;)[B
+HSPLlibcore/net/InetAddressUtils;->parseNumericAddress(Ljava/lang/String;)Ljava/net/InetAddress;
HSPLlibcore/net/InetAddressUtils;->parseNumericAddressNoThrow(Ljava/lang/String;)Ljava/net/InetAddress;
HSPLlibcore/net/InetAddressUtils;->parseNumericAddressNoThrowStripOptionalBrackets(Ljava/lang/String;)Ljava/net/InetAddress;
HSPLlibcore/net/NetworkSecurityPolicy;-><init>()V
HSPLlibcore/net/NetworkSecurityPolicy;->getInstance()Llibcore/net/NetworkSecurityPolicy;
HSPLlibcore/net/NetworkSecurityPolicy;->setInstance(Llibcore/net/NetworkSecurityPolicy;)V
HSPLlibcore/net/event/NetworkEventDispatcher;->addListener(Llibcore/net/event/NetworkEventListener;)V
-PLlibcore/net/event/NetworkEventDispatcher;->getInstance()Llibcore/net/event/NetworkEventDispatcher;
+HSPLlibcore/net/event/NetworkEventDispatcher;->getInstance()Llibcore/net/event/NetworkEventDispatcher;
HSPLlibcore/net/event/NetworkEventDispatcher;->onNetworkConfigurationChanged()V
HSPLlibcore/net/event/NetworkEventListener;-><init>()V
+HSPLlibcore/net/http/HttpDate$1;->initialValue()Ljava/lang/Object;
+HSPLlibcore/net/http/HttpDate$1;->initialValue()Ljava/text/DateFormat;
+HSPLlibcore/net/http/HttpDate;->parse(Ljava/lang/String;)Ljava/util/Date;
HSPLlibcore/reflect/AnnotationFactory;-><init>(Ljava/lang/Class;[Llibcore/reflect/AnnotationMember;)V
HSPLlibcore/reflect/AnnotationFactory;->createAnnotation(Ljava/lang/Class;[Llibcore/reflect/AnnotationMember;)Ljava/lang/annotation/Annotation;
HSPLlibcore/reflect/AnnotationFactory;->getElementsDescription(Ljava/lang/Class;)[Llibcore/reflect/AnnotationMember;
+HSPLlibcore/reflect/AnnotationFactory;->hashCode()I
HSPLlibcore/reflect/AnnotationFactory;->invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
HSPLlibcore/reflect/AnnotationMember;-><init>(Ljava/lang/String;Ljava/lang/Object;)V
HSPLlibcore/reflect/AnnotationMember;-><init>(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/reflect/Method;)V
HSPLlibcore/reflect/AnnotationMember;->copyValue()Ljava/lang/Object;
HSPLlibcore/reflect/AnnotationMember;->setDefinition(Llibcore/reflect/AnnotationMember;)Llibcore/reflect/AnnotationMember;
HSPLlibcore/reflect/AnnotationMember;->validateValue()Ljava/lang/Object;
+HSPLlibcore/reflect/GenericArrayTypeImpl;-><init>(Ljava/lang/reflect/Type;)V
HSPLlibcore/reflect/GenericSignatureParser;-><init>(Ljava/lang/ClassLoader;)V
HSPLlibcore/reflect/GenericSignatureParser;->expect(C)V
HSPLlibcore/reflect/GenericSignatureParser;->isStopSymbol(C)Z
@@ -15031,12 +43287,56 @@ HSPLlibcore/reflect/TypeVariableImpl;-><init>(Ljava/lang/reflect/GenericDeclarat
HSPLlibcore/reflect/TypeVariableImpl;-><init>(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;Llibcore/reflect/ListOfTypes;)V
HSPLlibcore/reflect/TypeVariableImpl;->equals(Ljava/lang/Object;)Z
HSPLlibcore/reflect/TypeVariableImpl;->findFormalVar(Ljava/lang/reflect/GenericDeclaration;Ljava/lang/String;)Ljava/lang/reflect/TypeVariable;
+HSPLlibcore/reflect/TypeVariableImpl;->getBounds()[Ljava/lang/reflect/Type;
HSPLlibcore/reflect/TypeVariableImpl;->getGenericDeclaration()Ljava/lang/reflect/GenericDeclaration;
HSPLlibcore/reflect/TypeVariableImpl;->getName()Ljava/lang/String;
HSPLlibcore/reflect/TypeVariableImpl;->hashCode()I
+HSPLlibcore/reflect/TypeVariableImpl;->nextLayer(Ljava/lang/reflect/GenericDeclaration;)Ljava/lang/reflect/GenericDeclaration;
HSPLlibcore/reflect/TypeVariableImpl;->resolve()V
HSPLlibcore/reflect/Types;->getType(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
HSPLlibcore/reflect/Types;->getTypeArray(Llibcore/reflect/ListOfTypes;Z)[Ljava/lang/reflect/Type;
+HSPLlibcore/reflect/WildcardTypeImpl;-><init>(Llibcore/reflect/ListOfTypes;Llibcore/reflect/ListOfTypes;)V
+HSPLlibcore/reflect/WildcardTypeImpl;->getLowerBounds()[Ljava/lang/reflect/Type;
+HSPLlibcore/reflect/WildcardTypeImpl;->getUpperBounds()[Ljava/lang/reflect/Type;
+HSPLlibcore/timezone/CountryTimeZones$TimeZoneMapping;-><init>(Ljava/lang/String;ZLjava/lang/Long;)V
+HSPLlibcore/timezone/CountryTimeZones$TimeZoneMapping;->getTimeZone()Landroid/icu/util/TimeZone;
+HSPLlibcore/timezone/CountryTimeZones$TimeZoneMapping;->isEffectiveAt(J)Z
+HSPLlibcore/timezone/CountryTimeZones;-><init>(Ljava/lang/String;Ljava/lang/String;ZZLjava/util/List;)V
+HSPLlibcore/timezone/CountryTimeZones;->createValidated(Ljava/lang/String;Ljava/lang/String;ZZLjava/util/List;Ljava/lang/String;)Llibcore/timezone/CountryTimeZones;
+HSPLlibcore/timezone/CountryTimeZones;->getDefaultTimeZone()Landroid/icu/util/TimeZone;
+HSPLlibcore/timezone/CountryTimeZones;->getDefaultTimeZoneBoost()Z
+HSPLlibcore/timezone/CountryTimeZones;->getEffectiveTimeZoneMappingsAt(J)Ljava/util/List;
+HPLlibcore/timezone/CountryTimeZones;->isForCountryCode(Ljava/lang/String;)Z
+HSPLlibcore/timezone/CountryTimeZones;->normalizeCountryIso(Ljava/lang/String;)Ljava/lang/String;
+HSPLlibcore/timezone/TimeZoneDataFiles;->getDataTimeZoneFile(Ljava/lang/String;)Ljava/lang/String;
+HSPLlibcore/timezone/TimeZoneDataFiles;->getDataTimeZoneRootDir()Ljava/lang/String;
+PLlibcore/timezone/TimeZoneDataFiles;->getEnvironmentPath(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLlibcore/timezone/TimeZoneDataFiles;->getSystemTzFile(Ljava/lang/String;)Ljava/lang/String;
+HSPLlibcore/timezone/TimeZoneDataFiles;->getTimeZoneFilePaths(Ljava/lang/String;)[Ljava/lang/String;
+HSPLlibcore/timezone/TimeZoneDataFiles;->getTimeZoneModuleFile(Ljava/lang/String;)Ljava/lang/String;
+HSPLlibcore/timezone/TimeZoneDataFiles;->getTimeZoneModuleTzFile(Ljava/lang/String;)Ljava/lang/String;
+HSPLlibcore/timezone/TimeZoneFinder$SelectiveCountryTimeZonesExtractor;-><init>(Ljava/lang/String;)V
+HSPLlibcore/timezone/TimeZoneFinder$SelectiveCountryTimeZonesExtractor;-><init>(Ljava/lang/String;Llibcore/timezone/TimeZoneFinder$1;)V
+HSPLlibcore/timezone/TimeZoneFinder$SelectiveCountryTimeZonesExtractor;->getValidatedCountryTimeZones()Llibcore/timezone/CountryTimeZones;
+HSPLlibcore/timezone/TimeZoneFinder$SelectiveCountryTimeZonesExtractor;->processCountryZones(Ljava/lang/String;Ljava/lang/String;ZZLjava/util/List;Ljava/lang/String;)Z
+HSPLlibcore/timezone/TimeZoneFinder$TimeZonesProcessor;->processHeader(Ljava/lang/String;)Z
+HSPLlibcore/timezone/TimeZoneFinder;-><init>(Llibcore/timezone/XmlUtils$ReaderSupplier;)V
+HSPLlibcore/timezone/TimeZoneFinder;->createInstance(Ljava/lang/String;)Llibcore/timezone/TimeZoneFinder;
+HSPLlibcore/timezone/TimeZoneFinder;->createInstanceWithFallback([Ljava/lang/String;)Llibcore/timezone/TimeZoneFinder;
+HSPLlibcore/timezone/TimeZoneFinder;->getInstance()Llibcore/timezone/TimeZoneFinder;
+HSPLlibcore/timezone/TimeZoneFinder;->lookupCountryTimeZones(Ljava/lang/String;)Llibcore/timezone/CountryTimeZones;
+HSPLlibcore/timezone/TimeZoneFinder;->parseTimeZoneMappings(Lorg/xmlpull/v1/XmlPullParser;)Ljava/util/List;
+HSPLlibcore/timezone/TimeZoneFinder;->processCountryZones(Lorg/xmlpull/v1/XmlPullParser;Llibcore/timezone/TimeZoneFinder$TimeZonesProcessor;)Z
+HSPLlibcore/timezone/TimeZoneFinder;->processXml(Llibcore/timezone/TimeZoneFinder$TimeZonesProcessor;)V
+PLlibcore/timezone/TzDataSetVersion;-><clinit>()V
+PLlibcore/timezone/TzDataSetVersion;-><init>(IILjava/lang/String;I)V
+PLlibcore/timezone/TzDataSetVersion;->from3DigitVersionString(Ljava/lang/String;)I
+PLlibcore/timezone/TzDataSetVersion;->fromBytes([B)Llibcore/timezone/TzDataSetVersion;
+PLlibcore/timezone/TzDataSetVersion;->readBytes(Ljava/io/File;I)[B
+PLlibcore/timezone/TzDataSetVersion;->readFromFile(Ljava/io/File;)Llibcore/timezone/TzDataSetVersion;
+PLlibcore/timezone/TzDataSetVersion;->to3DigitVersionString(I)Ljava/lang/String;
+PLlibcore/timezone/TzDataSetVersion;->toFormatVersionString(II)Ljava/lang/String;
+PLlibcore/timezone/TzDataSetVersion;->validate3DigitVersion(I)I
HSPLlibcore/timezone/ZoneInfoDB$TzData$1;->create(Ljava/lang/Object;)Ljava/lang/Object;
HSPLlibcore/timezone/ZoneInfoDB$TzData$1;->create(Ljava/lang/String;)Llibcore/util/ZoneInfo;
HSPLlibcore/timezone/ZoneInfoDB$TzData;->checkNotClosed()V
@@ -15044,6 +43344,7 @@ HSPLlibcore/timezone/ZoneInfoDB$TzData;->close()V
HSPLlibcore/timezone/ZoneInfoDB$TzData;->finalize()V
HSPLlibcore/timezone/ZoneInfoDB$TzData;->getAvailableIDs()[Ljava/lang/String;
HSPLlibcore/timezone/ZoneInfoDB$TzData;->getBufferIterator(Ljava/lang/String;)Llibcore/io/BufferIterator;
+HSPLlibcore/timezone/ZoneInfoDB$TzData;->getVersion()Ljava/lang/String;
HSPLlibcore/timezone/ZoneInfoDB$TzData;->makeTimeZone(Ljava/lang/String;)Llibcore/util/ZoneInfo;
HSPLlibcore/timezone/ZoneInfoDB$TzData;->makeTimeZoneUncached(Ljava/lang/String;)Llibcore/util/ZoneInfo;
HSPLlibcore/timezone/ZoneInfoDB;->getInstance()Llibcore/timezone/ZoneInfoDB$TzData;
@@ -15055,54 +43356,84 @@ HSPLlibcore/util/BasicLruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
HSPLlibcore/util/BasicLruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
HSPLlibcore/util/BasicLruCache;->trimToSize(I)V
HSPLlibcore/util/CollectionUtils;->removeDuplicates(Ljava/util/List;Ljava/util/Comparator;)V
+PLlibcore/util/CoreLibraryDebug;->addTzDataSetVersionDebugInfo(Ljava/lang/String;Ljava/lang/String;Llibcore/util/DebugInfo;)V
+PLlibcore/util/CoreLibraryDebug;->getDebugInfo()Llibcore/util/DebugInfo;
+PLlibcore/util/CoreLibraryDebug;->populateTimeZoneFilesInfo(Llibcore/util/DebugInfo;)V
+PLlibcore/util/CoreLibraryDebug;->populateTimeZoneLibraryReportedVersion(Llibcore/util/DebugInfo;)V
+PLlibcore/util/DebugInfo$DebugEntry;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+PLlibcore/util/DebugInfo$DebugEntry;->getKey()Ljava/lang/String;
+PLlibcore/util/DebugInfo$DebugEntry;->getStringValue()Ljava/lang/String;
+PLlibcore/util/DebugInfo;-><init>()V
+PLlibcore/util/DebugInfo;->addStringEntry(Ljava/lang/String;I)Llibcore/util/DebugInfo;
+PLlibcore/util/DebugInfo;->addStringEntry(Ljava/lang/String;Ljava/lang/String;)Llibcore/util/DebugInfo;
+PLlibcore/util/DebugInfo;->getDebugEntries()Ljava/util/List;
+HPLlibcore/util/HexEncoding;->decode(Ljava/lang/String;)[B
+HSPLlibcore/util/HexEncoding;->decode(Ljava/lang/String;Z)[B
+PLlibcore/util/HexEncoding;->decode([C)[B
+HSPLlibcore/util/HexEncoding;->decode([CZ)[B
HSPLlibcore/util/HexEncoding;->encode([BIIZ)[C
HSPLlibcore/util/HexEncoding;->encode([BZ)[C
+PLlibcore/util/HexEncoding;->encodeToString(BZ)Ljava/lang/String;
+HSPLlibcore/util/HexEncoding;->encodeToString([B)Ljava/lang/String;
HSPLlibcore/util/HexEncoding;->encodeToString([BZ)Ljava/lang/String;
+HSPLlibcore/util/HexEncoding;->toDigit([CI)I
+HSPLlibcore/util/NativeAllocationRegistry$CleanerRunner;-><init>(Lsun/misc/Cleaner;)V
HSPLlibcore/util/NativeAllocationRegistry$CleanerRunner;->run()V
+HSPLlibcore/util/NativeAllocationRegistry$CleanerThunk;-><init>(Llibcore/util/NativeAllocationRegistry;)V
HSPLlibcore/util/NativeAllocationRegistry$CleanerThunk;->run()V
+HSPLlibcore/util/NativeAllocationRegistry$CleanerThunk;->setNativePtr(J)V
+PLlibcore/util/NativeAllocationRegistry;-><init>(Ljava/lang/ClassLoader;JJ)V
HSPLlibcore/util/NativeAllocationRegistry;-><init>(Ljava/lang/ClassLoader;JJZ)V
HSPLlibcore/util/NativeAllocationRegistry;->access$000(Llibcore/util/NativeAllocationRegistry;)J
HSPLlibcore/util/NativeAllocationRegistry;->access$100(Llibcore/util/NativeAllocationRegistry;)J
HSPLlibcore/util/NativeAllocationRegistry;->access$200(J)V
HSPLlibcore/util/NativeAllocationRegistry;->createMalloced(Ljava/lang/ClassLoader;JJ)Llibcore/util/NativeAllocationRegistry;
+PLlibcore/util/NativeAllocationRegistry;->createNonmalloced(Ljava/lang/ClassLoader;JJ)Llibcore/util/NativeAllocationRegistry;
HSPLlibcore/util/NativeAllocationRegistry;->registerNativeAllocation(J)V
HSPLlibcore/util/NativeAllocationRegistry;->registerNativeAllocation(Ljava/lang/Object;J)Ljava/lang/Runnable;
HSPLlibcore/util/NativeAllocationRegistry;->registerNativeFree(J)V
+PLlibcore/util/SneakyThrow;->sneakyThrow(Ljava/lang/Throwable;)V
HSPLlibcore/util/SneakyThrow;->sneakyThrow_(Ljava/lang/Throwable;)V
+HSPLlibcore/util/XmlObjectFactory;->newXMLReader()Lorg/xml/sax/XMLReader;
HSPLlibcore/util/XmlObjectFactory;->newXmlPullParser()Lorg/xmlpull/v1/XmlPullParser;
-HPLlibcore/util/ZoneInfo$WallTime;->copyFieldsFromCalendar()V
-HPLlibcore/util/ZoneInfo$WallTime;->copyFieldsToCalendar()V
-HPLlibcore/util/ZoneInfo$WallTime;->getGmtOffset()I
-HPLlibcore/util/ZoneInfo$WallTime;->getHour()I
-HPLlibcore/util/ZoneInfo$WallTime;->getIsDst()I
-HPLlibcore/util/ZoneInfo$WallTime;->getMinute()I
-HPLlibcore/util/ZoneInfo$WallTime;->getMonth()I
-HPLlibcore/util/ZoneInfo$WallTime;->getMonthDay()I
-HPLlibcore/util/ZoneInfo$WallTime;->getSecond()I
-HPLlibcore/util/ZoneInfo$WallTime;->getWeekDay()I
-HPLlibcore/util/ZoneInfo$WallTime;->getYear()I
-HPLlibcore/util/ZoneInfo$WallTime;->getYearDay()I
-HPLlibcore/util/ZoneInfo$WallTime;->localtime(ILlibcore/util/ZoneInfo;)V
-HPLlibcore/util/ZoneInfo$WallTime;->mktime(Llibcore/util/ZoneInfo;)I
-HPLlibcore/util/ZoneInfo$WallTime;->setGmtOffset(I)V
-HPLlibcore/util/ZoneInfo$WallTime;->setHour(I)V
-HPLlibcore/util/ZoneInfo$WallTime;->setIsDst(I)V
-HPLlibcore/util/ZoneInfo$WallTime;->setMinute(I)V
-HPLlibcore/util/ZoneInfo$WallTime;->setMonth(I)V
-HPLlibcore/util/ZoneInfo$WallTime;->setMonthDay(I)V
-HPLlibcore/util/ZoneInfo$WallTime;->setSecond(I)V
-HPLlibcore/util/ZoneInfo$WallTime;->setWeekDay(I)V
-HPLlibcore/util/ZoneInfo$WallTime;->setYear(I)V
-HPLlibcore/util/ZoneInfo$WallTime;->setYearDay(I)V
+HSPLlibcore/util/XmlObjectFactory;->newXmlSerializer()Lorg/xmlpull/v1/XmlSerializer;
+HSPLlibcore/util/ZoneInfo$WallTime;->copyFieldsFromCalendar()V
+HSPLlibcore/util/ZoneInfo$WallTime;->copyFieldsToCalendar()V
+HSPLlibcore/util/ZoneInfo$WallTime;->doWallTimeSearch(Llibcore/util/ZoneInfo;IIZ)Ljava/lang/Integer;
+HSPLlibcore/util/ZoneInfo$WallTime;->getGmtOffset()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getHour()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getIsDst()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getMinute()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getMonth()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getMonthDay()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getSecond()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getWeekDay()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getYear()I
+HSPLlibcore/util/ZoneInfo$WallTime;->getYearDay()I
+HSPLlibcore/util/ZoneInfo$WallTime;->localtime(ILlibcore/util/ZoneInfo;)V
+HSPLlibcore/util/ZoneInfo$WallTime;->mktime(Llibcore/util/ZoneInfo;)I
+HSPLlibcore/util/ZoneInfo$WallTime;->setGmtOffset(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setHour(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setIsDst(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setMinute(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setMonth(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setMonthDay(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setSecond(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setWeekDay(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setYear(I)V
+HSPLlibcore/util/ZoneInfo$WallTime;->setYearDay(I)V
HSPLlibcore/util/ZoneInfo;-><init>(Ljava/lang/String;[J[B[I[BJ)V
-PLlibcore/util/ZoneInfo;->access$000(Llibcore/util/ZoneInfo;)I
-PLlibcore/util/ZoneInfo;->access$100(Llibcore/util/ZoneInfo;)[J
-HPLlibcore/util/ZoneInfo;->access$500(JI)I
-HPLlibcore/util/ZoneInfo;->access$600(JI)I
+HSPLlibcore/util/ZoneInfo;->access$000(Llibcore/util/ZoneInfo;)I
+HSPLlibcore/util/ZoneInfo;->access$100(Llibcore/util/ZoneInfo;)[J
+HSPLlibcore/util/ZoneInfo;->access$300(Llibcore/util/ZoneInfo;)[I
+HSPLlibcore/util/ZoneInfo;->access$400(Llibcore/util/ZoneInfo;)[B
+HSPLlibcore/util/ZoneInfo;->access$500(JI)I
+HSPLlibcore/util/ZoneInfo;->access$600(JI)I
HSPLlibcore/util/ZoneInfo;->checkTzifVersionAcceptable(Ljava/lang/String;B)V
-PLlibcore/util/ZoneInfo;->checked32BitAdd(JI)I
-PLlibcore/util/ZoneInfo;->checked32BitSubtract(JI)I
+HSPLlibcore/util/ZoneInfo;->checked32BitAdd(JI)I
+HSPLlibcore/util/ZoneInfo;->checked32BitSubtract(JI)I
HSPLlibcore/util/ZoneInfo;->clone()Ljava/lang/Object;
+HPLlibcore/util/ZoneInfo;->equals(Ljava/lang/Object;)Z
HSPLlibcore/util/ZoneInfo;->findOffsetIndexForTimeInMilliseconds(J)I
HSPLlibcore/util/ZoneInfo;->findOffsetIndexForTimeInSeconds(J)I
HSPLlibcore/util/ZoneInfo;->findTransitionIndex(J)I
@@ -15120,37 +43451,277 @@ HSPLlibcore/util/ZoneInfo;->skipOver32BitData(Ljava/lang/String;Llibcore/io/Buff
HSPLorg/apache/harmony/dalvik/ddmc/Chunk;-><init>(ILjava/nio/ByteBuffer;)V
HSPLorg/apache/harmony/dalvik/ddmc/ChunkHandler;->putString(Ljava/nio/ByteBuffer;Ljava/lang/String;)V
HSPLorg/apache/harmony/dalvik/ddmc/DdmServer;->sendChunk(Lorg/apache/harmony/dalvik/ddmc/Chunk;)V
+HSPLorg/apache/harmony/xml/ExpatAttributes;-><init>()V
+HPLorg/apache/harmony/xml/ExpatAttributes;->getLocalName(I)Ljava/lang/String;
+HPLorg/apache/harmony/xml/ExpatAttributes;->getValue(I)Ljava/lang/String;
+HSPLorg/apache/harmony/xml/ExpatAttributes;->getValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLorg/apache/harmony/xml/ExpatParser$CurrentAttributes;-><init>(Lorg/apache/harmony/xml/ExpatParser;)V
+HSPLorg/apache/harmony/xml/ExpatParser$CurrentAttributes;-><init>(Lorg/apache/harmony/xml/ExpatParser;Lorg/apache/harmony/xml/ExpatParser$1;)V
+HPLorg/apache/harmony/xml/ExpatParser$CurrentAttributes;->getLength()I
+HPLorg/apache/harmony/xml/ExpatParser$CurrentAttributes;->getParserPointer()J
+HSPLorg/apache/harmony/xml/ExpatParser$CurrentAttributes;->getPointer()J
+HSPLorg/apache/harmony/xml/ExpatParser$ExpatLocator;-><init>(Lorg/apache/harmony/xml/ExpatParser;)V
+HSPLorg/apache/harmony/xml/ExpatParser$ExpatLocator;-><init>(Lorg/apache/harmony/xml/ExpatParser;Lorg/apache/harmony/xml/ExpatParser$1;)V
+HSPLorg/apache/harmony/xml/ExpatParser;-><init>(Ljava/lang/String;Lorg/apache/harmony/xml/ExpatReader;ZLjava/lang/String;Ljava/lang/String;)V
+HPLorg/apache/harmony/xml/ExpatParser;->access$1000(Lorg/apache/harmony/xml/ExpatParser;)J
+HSPLorg/apache/harmony/xml/ExpatParser;->access$1100(Lorg/apache/harmony/xml/ExpatParser;)Z
+HSPLorg/apache/harmony/xml/ExpatParser;->access$1200(Lorg/apache/harmony/xml/ExpatParser;)J
+HPLorg/apache/harmony/xml/ExpatParser;->access$1300(Lorg/apache/harmony/xml/ExpatParser;)I
+HSPLorg/apache/harmony/xml/ExpatParser;->endDocument()V
+HSPLorg/apache/harmony/xml/ExpatParser;->endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/ExpatParser;->endNamespace(Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/ExpatParser;->finalize()V
+HSPLorg/apache/harmony/xml/ExpatParser;->finish()V
+HSPLorg/apache/harmony/xml/ExpatParser;->parseDocument(Ljava/io/InputStream;)V
+HSPLorg/apache/harmony/xml/ExpatParser;->parseFragment(Ljava/io/InputStream;)V
+HSPLorg/apache/harmony/xml/ExpatParser;->startDocument()V
+HSPLorg/apache/harmony/xml/ExpatParser;->startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JI)V
+HSPLorg/apache/harmony/xml/ExpatParser;->startNamespace(Ljava/lang/String;Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/ExpatParser;->text([CI)V
+HSPLorg/apache/harmony/xml/ExpatReader;-><init>()V
+HSPLorg/apache/harmony/xml/ExpatReader;->parse(Ljava/io/InputStream;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/ExpatReader;->parse(Lorg/xml/sax/InputSource;)V
+HSPLorg/apache/harmony/xml/ExpatReader;->setContentHandler(Lorg/xml/sax/ContentHandler;)V
+HSPLorg/apache/harmony/xml/dom/AttrImpl;->getNodeType()S
+HSPLorg/apache/harmony/xml/dom/AttrImpl;->getOwnerElement()Lorg/w3c/dom/Element;
+HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;->getData()Ljava/lang/String;
+HPLorg/apache/harmony/xml/dom/CharacterDataImpl;->getLength()I
+HSPLorg/apache/harmony/xml/dom/CharacterDataImpl;->getNodeValue()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;-><init>(Lorg/apache/harmony/xml/dom/DOMImplementationImpl;Ljava/lang/String;Ljava/lang/String;Lorg/w3c/dom/DocumentType;Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;->getDocumentElement()Lorg/w3c/dom/Element;
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;->getElementsByTagName(Ljava/lang/String;)Lorg/w3c/dom/NodeList;
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;->insertChildAt(Lorg/w3c/dom/Node;I)Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;->isXMLIdentifier(Ljava/lang/String;)Z
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;->isXMLIdentifierPart(C)Z
+HSPLorg/apache/harmony/xml/dom/DocumentImpl;->isXMLIdentifierStart(C)Z
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->access$000(Lorg/apache/harmony/xml/dom/ElementImpl;)Ljava/util/List;
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->getAttribute(Ljava/lang/String;)Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->getAttributeNode(Ljava/lang/String;)Lorg/apache/harmony/xml/dom/AttrImpl;
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->getAttributes()Lorg/w3c/dom/NamedNodeMap;
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->getElementsByTagName(Ljava/lang/String;)Lorg/w3c/dom/NodeList;
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->getLocalName()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->getNamespaceURI()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->getNodeName()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->getNodeType()S
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->getTagName()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->hasAttributes()Z
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->indexOfAttribute(Ljava/lang/String;)I
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->indexOfAttributeNS(Ljava/lang/String;Ljava/lang/String;)I
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->setAttributeNode(Lorg/w3c/dom/Attr;)Lorg/w3c/dom/Attr;
+HSPLorg/apache/harmony/xml/dom/ElementImpl;->setAttributeNodeNS(Lorg/w3c/dom/Attr;)Lorg/w3c/dom/Attr;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;)V
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->appendChild(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getChildNodes()Lorg/w3c/dom/NodeList;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getElementsByTagName(Lorg/apache/harmony/xml/dom/NodeListImpl;Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getFirstChild()Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getLastChild()Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getNextSibling()Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getTextContent()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->getTextContent(Ljava/lang/StringBuilder;)V
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->hasChildNodes()Z
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->hasTextContent(Lorg/w3c/dom/Node;)Z
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->insertChildAt(Lorg/w3c/dom/Node;I)Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->isParentOf(Lorg/w3c/dom/Node;)Z
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->matchesNameOrWildcard(Ljava/lang/String;Ljava/lang/String;)Z
+HPLorg/apache/harmony/xml/dom/InnerNodeImpl;->normalize()V
+HSPLorg/apache/harmony/xml/dom/InnerNodeImpl;->refreshIndices(I)V
+HSPLorg/apache/harmony/xml/dom/LeafNodeImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;)V
+HSPLorg/apache/harmony/xml/dom/LeafNodeImpl;->getNextSibling()Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/LeafNodeImpl;->getParentNode()Lorg/w3c/dom/Node;
+HPLorg/apache/harmony/xml/dom/LeafNodeImpl;->getPreviousSibling()Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/LeafNodeImpl;->isParentOf(Lorg/w3c/dom/Node;)Z
+HSPLorg/apache/harmony/xml/dom/NodeImpl;-><init>(Lorg/apache/harmony/xml/dom/DocumentImpl;)V
+HSPLorg/apache/harmony/xml/dom/NodeImpl;->getFirstChild()Lorg/w3c/dom/Node;
+HSPLorg/apache/harmony/xml/dom/NodeImpl;->getTextContent()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/NodeImpl;->getTextContent(Ljava/lang/StringBuilder;)V
+PLorg/apache/harmony/xml/dom/NodeImpl;->normalize()V
+HSPLorg/apache/harmony/xml/dom/NodeImpl;->setName(Lorg/apache/harmony/xml/dom/NodeImpl;Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/dom/NodeImpl;->setNameNS(Lorg/apache/harmony/xml/dom/NodeImpl;Ljava/lang/String;Ljava/lang/String;)V
+HSPLorg/apache/harmony/xml/dom/NodeImpl;->validatePrefix(Ljava/lang/String;ZLjava/lang/String;)Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/NodeListImpl;-><init>()V
+HSPLorg/apache/harmony/xml/dom/NodeListImpl;->add(Lorg/apache/harmony/xml/dom/NodeImpl;)V
+HSPLorg/apache/harmony/xml/dom/NodeListImpl;->getLength()I
+HSPLorg/apache/harmony/xml/dom/NodeListImpl;->item(I)Lorg/w3c/dom/Node;
+HPLorg/apache/harmony/xml/dom/TextImpl;->getNodeName()Ljava/lang/String;
+HSPLorg/apache/harmony/xml/dom/TextImpl;->getNodeType()S
+PLorg/apache/harmony/xml/dom/TextImpl;->minimize()Lorg/apache/harmony/xml/dom/TextImpl;
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderFactoryImpl;-><init>()V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderFactoryImpl;->newDocumentBuilder()Ljavax/xml/parsers/DocumentBuilder;
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;-><clinit>()V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;-><init>()V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->setCoalescing(Z)V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->setIgnoreComments(Z)V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->setIgnoreElementContentWhitespace(Z)V
+HSPLorg/apache/harmony/xml/parsers/DocumentBuilderImpl;->setNamespaceAware(Z)V
+HSPLorg/apache/harmony/xml/parsers/SAXParserFactoryImpl;-><init>()V
+HPLorg/apache/harmony/xml/parsers/SAXParserFactoryImpl;->getFeature(Ljava/lang/String;)Z
+HPLorg/apache/harmony/xml/parsers/SAXParserFactoryImpl;->isValidating()Z
+HPLorg/apache/harmony/xml/parsers/SAXParserFactoryImpl;->newSAXParser()Ljavax/xml/parsers/SAXParser;
+HSPLorg/apache/harmony/xml/parsers/SAXParserFactoryImpl;->setFeature(Ljava/lang/String;Z)V
+HPLorg/apache/harmony/xml/parsers/SAXParserImpl;-><init>(Ljava/util/Map;)V
+HPLorg/apache/harmony/xml/parsers/SAXParserImpl;->getXMLReader()Lorg/xml/sax/XMLReader;
+HPLorg/apache/harmony/xml/parsers/SAXParserImpl;->resetInternal()V
+HPLorg/apache/http/conn/ConnectTimeoutException;-><init>(Ljava/lang/String;)V
+HSPLorg/apache/http/conn/ssl/AbstractVerifier;->acceptableCountryWildcard(Ljava/lang/String;)Z
+HPLorg/apache/http/conn/ssl/AbstractVerifier;->countDots(Ljava/lang/String;)I
+HSPLorg/apache/http/conn/ssl/AbstractVerifier;->getCNs(Ljava/security/cert/X509Certificate;)[Ljava/lang/String;
+HSPLorg/apache/http/conn/ssl/AbstractVerifier;->getDNSSubjectAlts(Ljava/security/cert/X509Certificate;)[Ljava/lang/String;
+HSPLorg/apache/http/conn/ssl/AbstractVerifier;->isIPv4Address(Ljava/lang/String;)Z
+HSPLorg/apache/http/conn/ssl/AbstractVerifier;->verify(Ljava/lang/String;Ljava/security/cert/X509Certificate;)V
+HSPLorg/apache/http/conn/ssl/AbstractVerifier;->verify(Ljava/lang/String;Ljavax/net/ssl/SSLSocket;)V
+HSPLorg/apache/http/conn/ssl/AbstractVerifier;->verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Z)V
+HSPLorg/apache/http/conn/ssl/AndroidDistinguishedNameParser;-><init>(Ljavax/security/auth/x500/X500Principal;)V
+HSPLorg/apache/http/conn/ssl/AndroidDistinguishedNameParser;->escapedAV()Ljava/lang/String;
+HSPLorg/apache/http/conn/ssl/AndroidDistinguishedNameParser;->getAllMostSpecificFirst(Ljava/lang/String;)Ljava/util/List;
+HSPLorg/apache/http/conn/ssl/AndroidDistinguishedNameParser;->nextAT()Ljava/lang/String;
+HPLorg/apache/http/conn/ssl/BrowserCompatHostnameVerifier;-><init>()V
+HSPLorg/apache/http/conn/ssl/BrowserCompatHostnameVerifier;->verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
+HPLorg/apache/http/conn/ssl/SSLSocketFactory;-><init>()V
HSPLorg/apache/http/conn/ssl/SSLSocketFactory;-><init>(Ljavax/net/ssl/SSLSocketFactory;)V
+HPLorg/apache/http/conn/ssl/SSLSocketFactory;-><init>(Lorg/apache/http/conn/ssl/SSLSocketFactory$1;)V
+HSPLorg/apache/http/conn/ssl/SSLSocketFactory;->createSocket(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;
+HPLorg/apache/http/conn/ssl/SSLSocketFactory;->getSocketFactory()Lorg/apache/http/conn/ssl/SSLSocketFactory;
+HSPLorg/apache/http/conn/ssl/SSLSocketFactory;->isSecure(Ljava/net/Socket;)Z
+HPLorg/apache/http/conn/ssl/SSLSocketFactory;->setHostnameVerifier(Lorg/apache/http/conn/ssl/X509HostnameVerifier;)V
+HPLorg/apache/http/conn/ssl/StrictHostnameVerifier;->verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
+HSPLorg/apache/http/params/HttpConnectionParams;->getConnectionTimeout(Lorg/apache/http/params/HttpParams;)I
+HSPLorg/apache/http/params/HttpConnectionParams;->getLinger(Lorg/apache/http/params/HttpParams;)I
+HSPLorg/apache/http/params/HttpConnectionParams;->getSoTimeout(Lorg/apache/http/params/HttpParams;)I
+HSPLorg/apache/http/params/HttpConnectionParams;->getSocketBufferSize(Lorg/apache/http/params/HttpParams;)I
+HSPLorg/apache/http/params/HttpConnectionParams;->getTcpNoDelay(Lorg/apache/http/params/HttpParams;)Z
+HSPLorg/apache/http/params/HttpConnectionParams;->isStaleCheckingEnabled(Lorg/apache/http/params/HttpParams;)Z
HSPLorg/apache/http/params/HttpConnectionParams;->setConnectionTimeout(Lorg/apache/http/params/HttpParams;I)V
HSPLorg/apache/http/params/HttpConnectionParams;->setSoTimeout(Lorg/apache/http/params/HttpParams;I)V
HSPLorg/apache/http/params/HttpConnectionParams;->setSocketBufferSize(Lorg/apache/http/params/HttpParams;I)V
HSPLorg/apache/http/params/HttpConnectionParams;->setStaleCheckingEnabled(Lorg/apache/http/params/HttpParams;Z)V
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;-><init>(Lorg/xml/sax/Attributes;)V
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->addAttribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->clear()V
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->ensureCapacity(I)V
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getIndex(Ljava/lang/String;)I
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getLength()I
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getLocalName(I)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getQName(I)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getType(I)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getURI(I)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getValue(I)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->getValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->removeAttribute(I)V
+HPLorg/ccil/cowan/tagsoup/AttributesImpl;->setAttribute(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLorg/ccil/cowan/tagsoup/AttributesImpl;->setAttributes(Lorg/xml/sax/Attributes;)V
+HSPLorg/ccil/cowan/tagsoup/Element;-><init>(Lorg/ccil/cowan/tagsoup/ElementType;Z)V
+HPLorg/ccil/cowan/tagsoup/Element;->anonymize()V
+HSPLorg/ccil/cowan/tagsoup/Element;->atts()Lorg/ccil/cowan/tagsoup/AttributesImpl;
+HSPLorg/ccil/cowan/tagsoup/Element;->canContain(Lorg/ccil/cowan/tagsoup/Element;)Z
+HSPLorg/ccil/cowan/tagsoup/Element;->clean()V
+HSPLorg/ccil/cowan/tagsoup/Element;->flags()I
+HSPLorg/ccil/cowan/tagsoup/Element;->isPreclosed()Z
+HSPLorg/ccil/cowan/tagsoup/Element;->localName()Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/Element;->model()I
+HSPLorg/ccil/cowan/tagsoup/Element;->name()Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/Element;->namespace()Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/Element;->next()Lorg/ccil/cowan/tagsoup/Element;
+HSPLorg/ccil/cowan/tagsoup/Element;->parent()Lorg/ccil/cowan/tagsoup/ElementType;
+HPLorg/ccil/cowan/tagsoup/Element;->preclose()V
+HSPLorg/ccil/cowan/tagsoup/Element;->setAttribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLorg/ccil/cowan/tagsoup/Element;->setNext(Lorg/ccil/cowan/tagsoup/Element;)V
+HSPLorg/ccil/cowan/tagsoup/ElementType;-><init>(Ljava/lang/String;IIILorg/ccil/cowan/tagsoup/Schema;)V
+HSPLorg/ccil/cowan/tagsoup/ElementType;->atts()Lorg/ccil/cowan/tagsoup/AttributesImpl;
+HSPLorg/ccil/cowan/tagsoup/ElementType;->canContain(Lorg/ccil/cowan/tagsoup/ElementType;)Z
+HSPLorg/ccil/cowan/tagsoup/ElementType;->flags()I
+HSPLorg/ccil/cowan/tagsoup/ElementType;->localName()Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/ElementType;->localName(Ljava/lang/String;)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/ElementType;->model()I
+HSPLorg/ccil/cowan/tagsoup/ElementType;->name()Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/ElementType;->namespace()Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/ElementType;->namespace(Ljava/lang/String;Z)Ljava/lang/String;
+HPLorg/ccil/cowan/tagsoup/ElementType;->normalize(Ljava/lang/String;)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/ElementType;->parent()Lorg/ccil/cowan/tagsoup/ElementType;
+HSPLorg/ccil/cowan/tagsoup/ElementType;->setAttribute(Lorg/ccil/cowan/tagsoup/AttributesImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLorg/ccil/cowan/tagsoup/HTMLScanner;-><init>()V
+HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->mark()V
+HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->resetDocumentLocator(Ljava/lang/String;Ljava/lang/String;)V
+HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->save(ILorg/ccil/cowan/tagsoup/ScanHandler;)V
+HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->scan(Ljava/io/Reader;Lorg/ccil/cowan/tagsoup/ScanHandler;)V
+HSPLorg/ccil/cowan/tagsoup/HTMLScanner;->unread(Ljava/io/PushbackReader;I)V
+HSPLorg/ccil/cowan/tagsoup/Parser$1;-><init>(Lorg/ccil/cowan/tagsoup/Parser;)V
+HSPLorg/ccil/cowan/tagsoup/Parser;-><init>()V
+HPLorg/ccil/cowan/tagsoup/Parser;->adup([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->aname([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->aval([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->entity([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->eof([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->etag([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->etag_basic([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->etag_cdata([CII)Z
+HSPLorg/ccil/cowan/tagsoup/Parser;->expandEntities(Ljava/lang/String;)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/Parser;->foreign(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLorg/ccil/cowan/tagsoup/Parser;->getContentHandler()Lorg/xml/sax/ContentHandler;
+HSPLorg/ccil/cowan/tagsoup/Parser;->getEntity()I
+HSPLorg/ccil/cowan/tagsoup/Parser;->getReader(Lorg/xml/sax/InputSource;)Ljava/io/Reader;
+HSPLorg/ccil/cowan/tagsoup/Parser;->gi([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->lookupEntity([CII)I
+HSPLorg/ccil/cowan/tagsoup/Parser;->makeName([CII)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/Parser;->parse(Lorg/xml/sax/InputSource;)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->pcdata([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->pop()V
+HSPLorg/ccil/cowan/tagsoup/Parser;->prefixOf(Ljava/lang/String;)Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/Parser;->push(Lorg/ccil/cowan/tagsoup/Element;)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->rectify(Lorg/ccil/cowan/tagsoup/Element;)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->restart(Lorg/ccil/cowan/tagsoup/Element;)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->setContentHandler(Lorg/xml/sax/ContentHandler;)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->setProperty(Ljava/lang/String;Ljava/lang/Object;)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->setup()V
+HSPLorg/ccil/cowan/tagsoup/Parser;->stagc([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->stage([CII)V
+HSPLorg/ccil/cowan/tagsoup/Parser;->truthValue(Z)Ljava/lang/Boolean;
+HSPLorg/ccil/cowan/tagsoup/Schema;->elementType(Ljava/lang/String;III)V
+HSPLorg/ccil/cowan/tagsoup/Schema;->getElementType(Ljava/lang/String;)Lorg/ccil/cowan/tagsoup/ElementType;
+HSPLorg/ccil/cowan/tagsoup/Schema;->getEntity(Ljava/lang/String;)I
+HSPLorg/ccil/cowan/tagsoup/Schema;->getPrefix()Ljava/lang/String;
+HSPLorg/ccil/cowan/tagsoup/Schema;->getURI()Ljava/lang/String;
HSPLorg/json/JSON;->checkDouble(D)D
HSPLorg/json/JSON;->toBoolean(Ljava/lang/Object;)Ljava/lang/Boolean;
+HSPLorg/json/JSON;->toDouble(Ljava/lang/Object;)Ljava/lang/Double;
HSPLorg/json/JSON;->toInteger(Ljava/lang/Object;)Ljava/lang/Integer;
HSPLorg/json/JSON;->toLong(Ljava/lang/Object;)Ljava/lang/Long;
HSPLorg/json/JSON;->toString(Ljava/lang/Object;)Ljava/lang/String;
+HSPLorg/json/JSON;->typeMismatch(Ljava/lang/Object;Ljava/lang/String;)Lorg/json/JSONException;
HSPLorg/json/JSONArray;-><init>()V
+HSPLorg/json/JSONArray;-><init>(Ljava/lang/Object;)V
HSPLorg/json/JSONArray;-><init>(Ljava/lang/String;)V
HSPLorg/json/JSONArray;-><init>(Ljava/util/Collection;)V
HSPLorg/json/JSONArray;-><init>(Lorg/json/JSONTokener;)V
+HPLorg/json/JSONArray;->equals(Ljava/lang/Object;)Z
HSPLorg/json/JSONArray;->get(I)Ljava/lang/Object;
HSPLorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject;
+HSPLorg/json/JSONArray;->getLong(I)J
HSPLorg/json/JSONArray;->getString(I)Ljava/lang/String;
+HSPLorg/json/JSONArray;->isNull(I)Z
HSPLorg/json/JSONArray;->length()I
HSPLorg/json/JSONArray;->opt(I)Ljava/lang/Object;
HSPLorg/json/JSONArray;->optJSONObject(I)Lorg/json/JSONObject;
+HSPLorg/json/JSONArray;->optString(I)Ljava/lang/String;
+HSPLorg/json/JSONArray;->optString(ILjava/lang/String;)Ljava/lang/String;
+HSPLorg/json/JSONArray;->put(I)Lorg/json/JSONArray;
+HSPLorg/json/JSONArray;->put(ILjava/lang/Object;)Lorg/json/JSONArray;
+HSPLorg/json/JSONArray;->put(J)Lorg/json/JSONArray;
HSPLorg/json/JSONArray;->put(Ljava/lang/Object;)Lorg/json/JSONArray;
HSPLorg/json/JSONArray;->toString()Ljava/lang/String;
+HPLorg/json/JSONArray;->toString(I)Ljava/lang/String;
HSPLorg/json/JSONArray;->writeTo(Lorg/json/JSONStringer;)V
HSPLorg/json/JSONException;-><init>(Ljava/lang/String;)V
+HSPLorg/json/JSONObject$1;->equals(Ljava/lang/Object;)Z
+HSPLorg/json/JSONObject$1;->toString()Ljava/lang/String;
HSPLorg/json/JSONObject;-><init>()V
HSPLorg/json/JSONObject;-><init>(Ljava/lang/String;)V
HSPLorg/json/JSONObject;-><init>(Ljava/util/Map;)V
+HSPLorg/json/JSONObject;-><init>(Lorg/json/JSONObject;[Ljava/lang/String;)V
HSPLorg/json/JSONObject;-><init>(Lorg/json/JSONTokener;)V
HSPLorg/json/JSONObject;->checkName(Ljava/lang/String;)Ljava/lang/String;
HSPLorg/json/JSONObject;->get(Ljava/lang/String;)Ljava/lang/Object;
HSPLorg/json/JSONObject;->getBoolean(Ljava/lang/String;)Z
+HPLorg/json/JSONObject;->getDouble(Ljava/lang/String;)D
HSPLorg/json/JSONObject;->getInt(Ljava/lang/String;)I
HSPLorg/json/JSONObject;->getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
HSPLorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
@@ -15160,9 +43731,13 @@ HSPLorg/json/JSONObject;->has(Ljava/lang/String;)Z
HSPLorg/json/JSONObject;->isNull(Ljava/lang/String;)Z
HSPLorg/json/JSONObject;->keys()Ljava/util/Iterator;
HSPLorg/json/JSONObject;->length()I
+HSPLorg/json/JSONObject;->names()Lorg/json/JSONArray;
HSPLorg/json/JSONObject;->numberToString(Ljava/lang/Number;)Ljava/lang/String;
HSPLorg/json/JSONObject;->opt(Ljava/lang/String;)Ljava/lang/Object;
+HSPLorg/json/JSONObject;->optBoolean(Ljava/lang/String;)Z
HSPLorg/json/JSONObject;->optBoolean(Ljava/lang/String;Z)Z
+HSPLorg/json/JSONObject;->optDouble(Ljava/lang/String;)D
+HSPLorg/json/JSONObject;->optDouble(Ljava/lang/String;D)D
HSPLorg/json/JSONObject;->optInt(Ljava/lang/String;)I
HSPLorg/json/JSONObject;->optInt(Ljava/lang/String;I)I
HSPLorg/json/JSONObject;->optJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
@@ -15171,15 +43746,20 @@ HSPLorg/json/JSONObject;->optLong(Ljava/lang/String;)J
HSPLorg/json/JSONObject;->optLong(Ljava/lang/String;J)J
HSPLorg/json/JSONObject;->optString(Ljava/lang/String;)Ljava/lang/String;
HSPLorg/json/JSONObject;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLorg/json/JSONObject;->put(Ljava/lang/String;D)Lorg/json/JSONObject;
HSPLorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;
HSPLorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject;
HSPLorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
HSPLorg/json/JSONObject;->put(Ljava/lang/String;Z)Lorg/json/JSONObject;
+HSPLorg/json/JSONObject;->putOpt(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
+PLorg/json/JSONObject;->quote(Ljava/lang/String;)Ljava/lang/String;
HSPLorg/json/JSONObject;->remove(Ljava/lang/String;)Ljava/lang/Object;
HSPLorg/json/JSONObject;->toString()Ljava/lang/String;
+HSPLorg/json/JSONObject;->toString(I)Ljava/lang/String;
HSPLorg/json/JSONObject;->wrap(Ljava/lang/Object;)Ljava/lang/Object;
HSPLorg/json/JSONObject;->writeTo(Lorg/json/JSONStringer;)V
HSPLorg/json/JSONStringer;-><init>()V
+HSPLorg/json/JSONStringer;-><init>(I)V
HSPLorg/json/JSONStringer;->array()Lorg/json/JSONStringer;
HSPLorg/json/JSONStringer;->beforeKey()V
HSPLorg/json/JSONStringer;->beforeValue()V
@@ -15204,6 +43784,39 @@ HSPLorg/json/JSONTokener;->readArray()Lorg/json/JSONArray;
HSPLorg/json/JSONTokener;->readEscapeCharacter()C
HSPLorg/json/JSONTokener;->readLiteral()Ljava/lang/Object;
HSPLorg/json/JSONTokener;->readObject()Lorg/json/JSONObject;
+HSPLorg/json/JSONTokener;->skipToEndOfLine()V
+HSPLorg/json/JSONTokener;->syntaxError(Ljava/lang/String;)Lorg/json/JSONException;
+HSPLorg/json/JSONTokener;->toString()Ljava/lang/String;
+HSPLorg/xml/sax/InputSource;-><init>(Ljava/io/InputStream;)V
+HSPLorg/xml/sax/InputSource;-><init>(Ljava/io/Reader;)V
+HSPLorg/xml/sax/InputSource;->getByteStream()Ljava/io/InputStream;
+HSPLorg/xml/sax/InputSource;->getCharacterStream()Ljava/io/Reader;
+HSPLorg/xml/sax/InputSource;->getEncoding()Ljava/lang/String;
+HSPLorg/xml/sax/InputSource;->getPublicId()Ljava/lang/String;
+HSPLorg/xml/sax/InputSource;->getSystemId()Ljava/lang/String;
+HSPLorg/xml/sax/InputSource;->setByteStream(Ljava/io/InputStream;)V
+HSPLorg/xml/sax/InputSource;->setCharacterStream(Ljava/io/Reader;)V
+HSPLorg/xml/sax/InputSource;->setEncoding(Ljava/lang/String;)V
+HSPLorg/xml/sax/helpers/DefaultHandler;-><init>()V
+HSPLorg/xml/sax/helpers/DefaultHandler;->endDocument()V
+HSPLorg/xml/sax/helpers/DefaultHandler;->endPrefixMapping(Ljava/lang/String;)V
+HSPLorg/xml/sax/helpers/DefaultHandler;->setDocumentLocator(Lorg/xml/sax/Locator;)V
+HSPLorg/xml/sax/helpers/DefaultHandler;->startPrefixMapping(Ljava/lang/String;Ljava/lang/String;)V
+HSPLorg/xmlpull/v1/XmlPullParserFactory;-><init>()V
+HSPLorg/xmlpull/v1/XmlPullParserFactory;->getParserInstance()Lorg/xmlpull/v1/XmlPullParser;
+PLorg/xmlpull/v1/XmlPullParserFactory;->getSerializerInstance()Lorg/xmlpull/v1/XmlSerializer;
+HSPLorg/xmlpull/v1/XmlPullParserFactory;->newInstance()Lorg/xmlpull/v1/XmlPullParserFactory;
+HSPLorg/xmlpull/v1/XmlPullParserFactory;->newPullParser()Lorg/xmlpull/v1/XmlPullParser;
+HSPLorg/xmlpull/v1/XmlPullParserFactory;->setNamespaceAware(Z)V
+HPLsun/invoke/util/Wrapper;->findPrimitiveType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
+HPLsun/invoke/util/Wrapper;->forBasicType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
+HPLsun/invoke/util/Wrapper;->forPrimitiveType(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
+HPLsun/invoke/util/Wrapper;->hashPrim(Ljava/lang/Class;)I
+HPLsun/invoke/util/Wrapper;->isDoubleWord()Z
+HPLsun/invoke/util/Wrapper;->isIntegral()Z
+HPLsun/invoke/util/Wrapper;->isNumeric()Z
+HPLsun/invoke/util/Wrapper;->isSingleWord()Z
+HPLsun/invoke/util/Wrapper;->isSubwordOrInt()Z
HSPLsun/misc/ASCIICaseInsensitiveComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLsun/misc/ASCIICaseInsensitiveComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I
HSPLsun/misc/ASCIICaseInsensitiveComparator;->isUpper(I)Z
@@ -15217,21 +43830,34 @@ HSPLsun/misc/Cleaner;->remove(Lsun/misc/Cleaner;)Z
HSPLsun/misc/CompoundEnumeration;-><init>([Ljava/util/Enumeration;)V
HSPLsun/misc/CompoundEnumeration;->hasMoreElements()Z
HSPLsun/misc/CompoundEnumeration;->next()Z
+HSPLsun/misc/CompoundEnumeration;->nextElement()Ljava/lang/Object;
HSPLsun/misc/FDBigInteger;-><init>(J[CII)V
HSPLsun/misc/FDBigInteger;-><init>([II)V
+HSPLsun/misc/FDBigInteger;->add(Lsun/misc/FDBigInteger;)Lsun/misc/FDBigInteger;
+HSPLsun/misc/FDBigInteger;->addAndCmp(Lsun/misc/FDBigInteger;Lsun/misc/FDBigInteger;)I
HSPLsun/misc/FDBigInteger;->big5pow(I)Lsun/misc/FDBigInteger;
+HSPLsun/misc/FDBigInteger;->checkZeroTail([II)I
HSPLsun/misc/FDBigInteger;->cmp(Lsun/misc/FDBigInteger;)I
HSPLsun/misc/FDBigInteger;->cmpPow52(II)I
+HSPLsun/misc/FDBigInteger;->getNormalizationBias()I
HSPLsun/misc/FDBigInteger;->leftInplaceSub(Lsun/misc/FDBigInteger;)Lsun/misc/FDBigInteger;
HSPLsun/misc/FDBigInteger;->leftShift(I)Lsun/misc/FDBigInteger;
HSPLsun/misc/FDBigInteger;->leftShift([II[IIII)V
HSPLsun/misc/FDBigInteger;->makeImmutable()V
+PLsun/misc/FDBigInteger;->mult([IIII[I)V
HSPLsun/misc/FDBigInteger;->mult([III[I)V
HSPLsun/misc/FDBigInteger;->multAddMe(II)V
+HSPLsun/misc/FDBigInteger;->multAndCarryBy10([II[I)I
+HSPLsun/misc/FDBigInteger;->multBy10()Lsun/misc/FDBigInteger;
HSPLsun/misc/FDBigInteger;->multByPow52(II)Lsun/misc/FDBigInteger;
+HSPLsun/misc/FDBigInteger;->multDiffMe(JLsun/misc/FDBigInteger;)J
+HSPLsun/misc/FDBigInteger;->quoRemIteration(Lsun/misc/FDBigInteger;)I
HSPLsun/misc/FDBigInteger;->rightInplaceSub(Lsun/misc/FDBigInteger;)Lsun/misc/FDBigInteger;
+HSPLsun/misc/FDBigInteger;->size()I
HSPLsun/misc/FDBigInteger;->trimLeadingZeros()V
HSPLsun/misc/FDBigInteger;->valueOfMulPow52(JII)Lsun/misc/FDBigInteger;
+HSPLsun/misc/FDBigInteger;->valueOfPow2(I)Lsun/misc/FDBigInteger;
+HSPLsun/misc/FDBigInteger;->valueOfPow52(II)Lsun/misc/FDBigInteger;
HSPLsun/misc/FloatingDecimal$1;->initialValue()Ljava/lang/Object;
HSPLsun/misc/FloatingDecimal$1;->initialValue()Lsun/misc/FloatingDecimal$BinaryToASCIIBuffer;
HSPLsun/misc/FloatingDecimal$ASCIIToBinaryBuffer;-><init>(ZI[CI)V
@@ -15247,11 +43873,14 @@ HSPLsun/misc/FloatingDecimal$BinaryToASCIIBuffer;->estimateDecExp(JI)I
HSPLsun/misc/FloatingDecimal$BinaryToASCIIBuffer;->getChars([C)I
HSPLsun/misc/FloatingDecimal$BinaryToASCIIBuffer;->getDecimalExponent()I
HSPLsun/misc/FloatingDecimal$BinaryToASCIIBuffer;->getDigits([C)I
+PLsun/misc/FloatingDecimal$BinaryToASCIIBuffer;->insignificantDigitsForPow2(I)I
HSPLsun/misc/FloatingDecimal$BinaryToASCIIBuffer;->isExceptional()Z
HSPLsun/misc/FloatingDecimal$BinaryToASCIIBuffer;->isNegative()Z
HSPLsun/misc/FloatingDecimal$BinaryToASCIIBuffer;->roundup()V
HSPLsun/misc/FloatingDecimal$BinaryToASCIIBuffer;->setSign(Z)V
HSPLsun/misc/FloatingDecimal$BinaryToASCIIBuffer;->toJavaFormatString()Ljava/lang/String;
+HPLsun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer;->appendTo(Ljava/lang/Appendable;)V
+HPLsun/misc/FloatingDecimal$ExceptionalBinaryToASCIIBuffer;->toJavaFormatString()Ljava/lang/String;
HSPLsun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer;->doubleValue()D
HSPLsun/misc/FloatingDecimal$PreparedASCIIToBinaryBuffer;->floatValue()F
HSPLsun/misc/FloatingDecimal;->appendTo(DLjava/lang/Appendable;)V
@@ -15271,6 +43900,8 @@ HSPLsun/misc/FormattedFloatingDecimal;->applyPrecision(I[CII)I
HSPLsun/misc/FormattedFloatingDecimal;->create(ZI)[C
HSPLsun/misc/FormattedFloatingDecimal;->fillDecimal(I[CIIZ)V
HSPLsun/misc/FormattedFloatingDecimal;->getBuffer()[C
+PLsun/misc/FormattedFloatingDecimal;->getExponent()[C
+PLsun/misc/FormattedFloatingDecimal;->getExponentRounded()I
HSPLsun/misc/FormattedFloatingDecimal;->getMantissa()[C
HSPLsun/misc/FormattedFloatingDecimal;->valueOf(DILsun/misc/FormattedFloatingDecimal$Form;)Lsun/misc/FormattedFloatingDecimal;
HSPLsun/misc/IOUtils;->readFully(Ljava/io/InputStream;IZ)[B
@@ -15287,8 +43918,13 @@ HSPLsun/misc/Unsafe;->getAndSetLong(Ljava/lang/Object;JJ)J
HSPLsun/misc/Unsafe;->getAndSetObject(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;
HSPLsun/misc/Unsafe;->getUnsafe()Lsun/misc/Unsafe;
HSPLsun/misc/Unsafe;->objectFieldOffset(Ljava/lang/reflect/Field;)J
+HSPLsun/misc/VM;->isBooted()Z
+HPLsun/net/ConnectionResetException;-><init>(Ljava/lang/String;)V
+HSPLsun/net/NetHooks;->beforeTcpBind(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
HSPLsun/net/NetHooks;->beforeTcpConnect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
HSPLsun/net/NetProperties;->get(Ljava/lang/String;)Ljava/lang/String;
+HSPLsun/net/ResourceManager;->afterUdpClose()V
+HSPLsun/net/ResourceManager;->beforeUdpCreate()V
HSPLsun/net/spi/DefaultProxySelector$1;-><init>(Lsun/net/spi/DefaultProxySelector;Ljava/lang/String;Lsun/net/spi/DefaultProxySelector$NonProxyInfo;Ljava/lang/String;)V
HSPLsun/net/spi/DefaultProxySelector$1;->run()Ljava/lang/Object;
HSPLsun/net/spi/DefaultProxySelector$1;->run()Ljava/net/Proxy;
@@ -15299,17 +43935,38 @@ HSPLsun/net/www/ParseUtil;->decode(Ljava/lang/String;)Ljava/lang/String;
HSPLsun/net/www/ParseUtil;->encodePath(Ljava/lang/String;Z)Ljava/lang/String;
HSPLsun/net/www/protocol/file/Handler;->parseURL(Ljava/net/URL;Ljava/lang/String;II)V
HSPLsun/net/www/protocol/jar/Handler;-><init>()V
+HSPLsun/nio/ch/AbstractPollArrayWrapper;-><init>()V
+HPLsun/nio/ch/AbstractPollArrayWrapper;->getDescriptor(I)I
+HPLsun/nio/ch/AbstractPollArrayWrapper;->getEventOps(I)I
+HSPLsun/nio/ch/AbstractPollArrayWrapper;->getReventOps(I)I
+HSPLsun/nio/ch/AbstractPollArrayWrapper;->putDescriptor(II)V
+HSPLsun/nio/ch/AbstractPollArrayWrapper;->putEventOps(II)V
+HSPLsun/nio/ch/AbstractPollArrayWrapper;->putReventOps(II)V
+HSPLsun/nio/ch/AbstractPollSelectorImpl;-><init>(Ljava/nio/channels/spi/SelectorProvider;II)V
+HSPLsun/nio/ch/AbstractPollSelectorImpl;->implClose()V
+HPLsun/nio/ch/AbstractPollSelectorImpl;->implDereg(Lsun/nio/ch/SelectionKeyImpl;)V
+HSPLsun/nio/ch/AbstractPollSelectorImpl;->implRegister(Lsun/nio/ch/SelectionKeyImpl;)V
+HSPLsun/nio/ch/AbstractPollSelectorImpl;->putEventOps(Lsun/nio/ch/SelectionKeyImpl;I)V
+HSPLsun/nio/ch/AbstractPollSelectorImpl;->updateSelectedKeys()I
+HSPLsun/nio/ch/AllocatedNativeObject;-><init>(IZ)V
+HSPLsun/nio/ch/AllocatedNativeObject;->free()V
HSPLsun/nio/ch/ChannelInputStream;-><init>(Ljava/nio/channels/ReadableByteChannel;)V
+HSPLsun/nio/ch/ChannelInputStream;->available()I
HSPLsun/nio/ch/ChannelInputStream;->close()V
+HSPLsun/nio/ch/ChannelInputStream;->read()I
HSPLsun/nio/ch/ChannelInputStream;->read(Ljava/nio/ByteBuffer;)I
HSPLsun/nio/ch/ChannelInputStream;->read(Ljava/nio/channels/ReadableByteChannel;Ljava/nio/ByteBuffer;Z)I
HSPLsun/nio/ch/ChannelInputStream;->read([BII)I
+HSPLsun/nio/ch/DefaultSelectorProvider;->create()Ljava/nio/channels/spi/SelectorProvider;
HSPLsun/nio/ch/FileChannelImpl$Unmapper;-><init>(JJILjava/io/FileDescriptor;)V
HSPLsun/nio/ch/FileChannelImpl$Unmapper;-><init>(JJILjava/io/FileDescriptor;Lsun/nio/ch/FileChannelImpl$1;)V
+HSPLsun/nio/ch/FileChannelImpl$Unmapper;->run()V
HSPLsun/nio/ch/FileChannelImpl;-><init>(Ljava/io/FileDescriptor;Ljava/lang/String;ZZZLjava/lang/Object;)V
+HSPLsun/nio/ch/FileChannelImpl;->access$000(JJ)I
HSPLsun/nio/ch/FileChannelImpl;->ensureOpen()V
HSPLsun/nio/ch/FileChannelImpl;->fileLockTable()Lsun/nio/ch/FileLockTable;
HSPLsun/nio/ch/FileChannelImpl;->finalize()V
+HSPLsun/nio/ch/FileChannelImpl;->force(Z)V
HSPLsun/nio/ch/FileChannelImpl;->implCloseChannel()V
HSPLsun/nio/ch/FileChannelImpl;->isSharedFileLockTable()Z
HSPLsun/nio/ch/FileChannelImpl;->lock(JJZ)Ljava/nio/channels/FileLock;
@@ -15319,20 +43976,35 @@ HSPLsun/nio/ch/FileChannelImpl;->open(Ljava/io/FileDescriptor;Ljava/lang/String;
HSPLsun/nio/ch/FileChannelImpl;->position()J
HSPLsun/nio/ch/FileChannelImpl;->position(J)Ljava/nio/channels/FileChannel;
HSPLsun/nio/ch/FileChannelImpl;->read(Ljava/nio/ByteBuffer;)I
+HSPLsun/nio/ch/FileChannelImpl;->read(Ljava/nio/ByteBuffer;J)I
+HSPLsun/nio/ch/FileChannelImpl;->readInternal(Ljava/nio/ByteBuffer;J)I
HSPLsun/nio/ch/FileChannelImpl;->release(Lsun/nio/ch/FileLockImpl;)V
HSPLsun/nio/ch/FileChannelImpl;->size()J
+HPLsun/nio/ch/FileChannelImpl;->transferFrom(Ljava/nio/channels/ReadableByteChannel;JJ)J
+HPLsun/nio/ch/FileChannelImpl;->transferFromFileChannel(Lsun/nio/ch/FileChannelImpl;JJ)J
+PLsun/nio/ch/FileChannelImpl;->truncate(J)Ljava/nio/channels/FileChannel;
+HSPLsun/nio/ch/FileChannelImpl;->tryLock(JJZ)Ljava/nio/channels/FileLock;
+HPLsun/nio/ch/FileChannelImpl;->unmap(Ljava/nio/MappedByteBuffer;)V
HSPLsun/nio/ch/FileChannelImpl;->write(Ljava/nio/ByteBuffer;)I
+HPLsun/nio/ch/FileChannelImpl;->write(Ljava/nio/ByteBuffer;J)I
+HPLsun/nio/ch/FileChannelImpl;->writeInternal(Ljava/nio/ByteBuffer;J)I
+HSPLsun/nio/ch/FileDescriptorHolderSocketImpl;-><init>(Ljava/io/FileDescriptor;)V
HSPLsun/nio/ch/FileDispatcher;-><init>()V
HSPLsun/nio/ch/FileDispatcherImpl;-><init>(Z)V
HSPLsun/nio/ch/FileDispatcherImpl;->close(Ljava/io/FileDescriptor;)V
HSPLsun/nio/ch/FileDispatcherImpl;->duplicateForMapping(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor;
+HSPLsun/nio/ch/FileDispatcherImpl;->force(Ljava/io/FileDescriptor;Z)I
HSPLsun/nio/ch/FileDispatcherImpl;->lock(Ljava/io/FileDescriptor;ZJJZ)I
+HSPLsun/nio/ch/FileDispatcherImpl;->pread(Ljava/io/FileDescriptor;JIJ)I
+HPLsun/nio/ch/FileDispatcherImpl;->pwrite(Ljava/io/FileDescriptor;JIJ)I
HSPLsun/nio/ch/FileDispatcherImpl;->read(Ljava/io/FileDescriptor;JI)I
HSPLsun/nio/ch/FileDispatcherImpl;->release(Ljava/io/FileDescriptor;JJ)V
HSPLsun/nio/ch/FileDispatcherImpl;->size(Ljava/io/FileDescriptor;)J
+PLsun/nio/ch/FileDispatcherImpl;->truncate(Ljava/io/FileDescriptor;J)I
HSPLsun/nio/ch/FileDispatcherImpl;->write(Ljava/io/FileDescriptor;JI)I
HSPLsun/nio/ch/FileKey;-><init>()V
HSPLsun/nio/ch/FileKey;->create(Ljava/io/FileDescriptor;)Lsun/nio/ch/FileKey;
+PLsun/nio/ch/FileKey;->equals(Ljava/lang/Object;)Z
HSPLsun/nio/ch/FileKey;->hashCode()I
HSPLsun/nio/ch/FileLockImpl;-><init>(Ljava/nio/channels/FileChannel;JJZ)V
HSPLsun/nio/ch/FileLockImpl;->invalidate()V
@@ -15343,24 +44015,142 @@ HSPLsun/nio/ch/FileLockTable;->newSharedFileLockTable(Ljava/nio/channels/Channel
HSPLsun/nio/ch/IOStatus;->checkAll(J)Z
HSPLsun/nio/ch/IOStatus;->normalize(I)I
HSPLsun/nio/ch/IOStatus;->normalize(J)J
+HSPLsun/nio/ch/IOUtil;->newFD(I)Ljava/io/FileDescriptor;
HSPLsun/nio/ch/IOUtil;->read(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
HSPLsun/nio/ch/IOUtil;->readIntoNativeBuffer(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
HSPLsun/nio/ch/IOUtil;->write(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
HSPLsun/nio/ch/IOUtil;->writeFromNativeBuffer(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
HSPLsun/nio/ch/NativeDispatcher;-><init>()V
+HSPLsun/nio/ch/NativeDispatcher;->needsPositionLock()Z
+HSPLsun/nio/ch/NativeObject;-><init>(IZ)V
+HSPLsun/nio/ch/NativeObject;->address()J
+HPLsun/nio/ch/NativeObject;->getInt(I)I
+HSPLsun/nio/ch/NativeObject;->getShort(I)S
+HSPLsun/nio/ch/NativeObject;->putInt(II)V
+HSPLsun/nio/ch/NativeObject;->putShort(IS)V
HSPLsun/nio/ch/NativeThreadSet;-><init>(I)V
HSPLsun/nio/ch/NativeThreadSet;->add()I
HSPLsun/nio/ch/NativeThreadSet;->remove(I)V
HSPLsun/nio/ch/NativeThreadSet;->signalAndWait()V
+HSPLsun/nio/ch/Net;->checkAddress(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
+HSPLsun/nio/ch/Net;->connect(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)I
+HSPLsun/nio/ch/Net;->connect(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)I
+HSPLsun/nio/ch/Net;->isIPv6Available()Z
+HSPLsun/nio/ch/Net;->localAddress(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
+HPLsun/nio/ch/Net;->setSocketOption(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;Ljava/lang/Object;)V
+HSPLsun/nio/ch/Net;->socket(Ljava/net/ProtocolFamily;Z)Ljava/io/FileDescriptor;
+HSPLsun/nio/ch/Net;->socket(Z)Ljava/io/FileDescriptor;
+HPLsun/nio/ch/Net;->translateException(Ljava/lang/Exception;)V
+HPLsun/nio/ch/Net;->translateException(Ljava/lang/Exception;Z)V
+HPLsun/nio/ch/Net;->translateToSocketException(Ljava/lang/Exception;)V
+HSPLsun/nio/ch/PollArrayWrapper;-><init>(I)V
+HSPLsun/nio/ch/PollArrayWrapper;->addEntry(Lsun/nio/ch/SelChImpl;)V
+HSPLsun/nio/ch/PollArrayWrapper;->free()V
+HSPLsun/nio/ch/PollArrayWrapper;->initInterrupt(II)V
+HSPLsun/nio/ch/PollArrayWrapper;->interrupt()V
+HSPLsun/nio/ch/PollArrayWrapper;->poll(IIJ)I
+HSPLsun/nio/ch/PollArrayWrapper;->release(I)V
+HPLsun/nio/ch/PollArrayWrapper;->replaceEntry(Lsun/nio/ch/PollArrayWrapper;ILsun/nio/ch/PollArrayWrapper;I)V
+HSPLsun/nio/ch/PollSelectorImpl;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V
+HSPLsun/nio/ch/PollSelectorImpl;->doSelect(J)I
+HSPLsun/nio/ch/PollSelectorImpl;->implCloseInterrupt()V
+HSPLsun/nio/ch/PollSelectorImpl;->wakeup()Ljava/nio/channels/Selector;
+HSPLsun/nio/ch/PollSelectorProvider;-><init>()V
+HSPLsun/nio/ch/PollSelectorProvider;->openSelector()Ljava/nio/channels/spi/AbstractSelector;
+HSPLsun/nio/ch/SelectionKeyImpl;-><init>(Lsun/nio/ch/SelChImpl;Lsun/nio/ch/SelectorImpl;)V
+HSPLsun/nio/ch/SelectionKeyImpl;->channel()Ljava/nio/channels/SelectableChannel;
+HSPLsun/nio/ch/SelectionKeyImpl;->ensureValid()V
+HSPLsun/nio/ch/SelectionKeyImpl;->getIndex()I
+HSPLsun/nio/ch/SelectionKeyImpl;->interestOps(I)Ljava/nio/channels/SelectionKey;
+HSPLsun/nio/ch/SelectionKeyImpl;->nioInterestOps()I
+HSPLsun/nio/ch/SelectionKeyImpl;->nioInterestOps(I)Ljava/nio/channels/SelectionKey;
+HSPLsun/nio/ch/SelectionKeyImpl;->nioReadyOps()I
+HSPLsun/nio/ch/SelectionKeyImpl;->nioReadyOps(I)V
+HPLsun/nio/ch/SelectionKeyImpl;->readyOps()I
+PLsun/nio/ch/SelectionKeyImpl;->selector()Ljava/nio/channels/Selector;
+HSPLsun/nio/ch/SelectionKeyImpl;->setIndex(I)V
+HSPLsun/nio/ch/SelectorImpl;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V
+HSPLsun/nio/ch/SelectorImpl;->implCloseSelector()V
+HSPLsun/nio/ch/SelectorImpl;->lockAndDoSelect(J)I
+HSPLsun/nio/ch/SelectorImpl;->processDeregisterQueue()V
+HSPLsun/nio/ch/SelectorImpl;->register(Ljava/nio/channels/spi/AbstractSelectableChannel;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey;
+HSPLsun/nio/ch/SelectorImpl;->select(J)I
+HPLsun/nio/ch/SelectorImpl;->selectedKeys()Ljava/util/Set;
+HSPLsun/nio/ch/SelectorProviderImpl;-><init>()V
+HSPLsun/nio/ch/SelectorProviderImpl;->openSocketChannel()Ljava/nio/channels/SocketChannel;
HSPLsun/nio/ch/SharedFileLockTable$FileLockReference;-><init>(Ljava/nio/channels/FileLock;Ljava/lang/ref/ReferenceQueue;Lsun/nio/ch/FileKey;)V
+HSPLsun/nio/ch/SharedFileLockTable$FileLockReference;->fileKey()Lsun/nio/ch/FileKey;
HSPLsun/nio/ch/SharedFileLockTable;-><init>(Ljava/nio/channels/Channel;Ljava/io/FileDescriptor;)V
HSPLsun/nio/ch/SharedFileLockTable;->add(Ljava/nio/channels/FileLock;)V
+HPLsun/nio/ch/SharedFileLockTable;->checkList(Ljava/util/List;JJ)V
HSPLsun/nio/ch/SharedFileLockTable;->remove(Ljava/nio/channels/FileLock;)V
HSPLsun/nio/ch/SharedFileLockTable;->removeAll()Ljava/util/List;
HSPLsun/nio/ch/SharedFileLockTable;->removeKeyIfEmpty(Lsun/nio/ch/FileKey;Ljava/util/List;)V
HSPLsun/nio/ch/SharedFileLockTable;->removeStaleEntries()V
+HSPLsun/nio/ch/SocketAdaptor$1;-><init>(Lsun/nio/ch/SocketAdaptor;)V
+HSPLsun/nio/ch/SocketAdaptor$1;->run()Ljava/io/InputStream;
+HSPLsun/nio/ch/SocketAdaptor$1;->run()Ljava/lang/Object;
+HSPLsun/nio/ch/SocketAdaptor$2;-><init>(Lsun/nio/ch/SocketAdaptor;)V
+HSPLsun/nio/ch/SocketAdaptor$2;->run()Ljava/io/OutputStream;
+HSPLsun/nio/ch/SocketAdaptor$2;->run()Ljava/lang/Object;
+HSPLsun/nio/ch/SocketAdaptor$SocketInputStream;-><init>(Lsun/nio/ch/SocketAdaptor;)V
+HSPLsun/nio/ch/SocketAdaptor$SocketInputStream;-><init>(Lsun/nio/ch/SocketAdaptor;Lsun/nio/ch/SocketAdaptor$1;)V
+HSPLsun/nio/ch/SocketAdaptor;-><init>(Lsun/nio/ch/SocketChannelImpl;)V
+HSPLsun/nio/ch/SocketAdaptor;->access$000(Lsun/nio/ch/SocketAdaptor;)Lsun/nio/ch/SocketChannelImpl;
+HPLsun/nio/ch/SocketAdaptor;->close()V
+HSPLsun/nio/ch/SocketAdaptor;->create(Lsun/nio/ch/SocketChannelImpl;)Ljava/net/Socket;
+HPLsun/nio/ch/SocketAdaptor;->getFileDescriptor$()Ljava/io/FileDescriptor;
+HSPLsun/nio/ch/SocketAdaptor;->getInetAddress()Ljava/net/InetAddress;
+HSPLsun/nio/ch/SocketAdaptor;->getInputStream()Ljava/io/InputStream;
+HSPLsun/nio/ch/SocketAdaptor;->getOutputStream()Ljava/io/OutputStream;
+HSPLsun/nio/ch/SocketAdaptor;->getPort()I
+HSPLsun/nio/ch/SocketAdaptor;->getSoTimeout()I
+HSPLsun/nio/ch/SocketAdaptor;->isClosed()Z
+HSPLsun/nio/ch/SocketAdaptor;->isConnected()Z
+HPLsun/nio/ch/SocketAdaptor;->isInputShutdown()Z
+HPLsun/nio/ch/SocketAdaptor;->isOutputShutdown()Z
+HPLsun/nio/ch/SocketAdaptor;->setBooleanOption(Ljava/net/SocketOption;Z)V
+HPLsun/nio/ch/SocketAdaptor;->setIntOption(Ljava/net/SocketOption;I)V
+HPLsun/nio/ch/SocketAdaptor;->setSoLinger(ZI)V
+HSPLsun/nio/ch/SocketAdaptor;->setSoTimeout(I)V
+HPLsun/nio/ch/SocketAdaptor;->setTcpNoDelay(Z)V
+HPLsun/nio/ch/SocketAdaptor;->shutdownOutput()V
+HSPLsun/nio/ch/SocketChannelImpl;-><init>(Ljava/nio/channels/spi/SelectorProvider;)V
+HSPLsun/nio/ch/SocketChannelImpl;->connect(Ljava/net/SocketAddress;)Z
+HSPLsun/nio/ch/SocketChannelImpl;->ensureOpenAndUnconnected()V
+HPLsun/nio/ch/SocketChannelImpl;->ensureReadOpen()Z
+HPLsun/nio/ch/SocketChannelImpl;->ensureWriteOpen()V
+HSPLsun/nio/ch/SocketChannelImpl;->finalize()V
+HSPLsun/nio/ch/SocketChannelImpl;->finishConnect()Z
+HSPLsun/nio/ch/SocketChannelImpl;->getFD()Ljava/io/FileDescriptor;
+HSPLsun/nio/ch/SocketChannelImpl;->implCloseSelectableChannel()V
+HSPLsun/nio/ch/SocketChannelImpl;->implConfigureBlocking(Z)V
+HSPLsun/nio/ch/SocketChannelImpl;->isConnected()Z
+HSPLsun/nio/ch/SocketChannelImpl;->isInputOpen()Z
+HSPLsun/nio/ch/SocketChannelImpl;->isOutputOpen()Z
+HSPLsun/nio/ch/SocketChannelImpl;->kill()V
+HPLsun/nio/ch/SocketChannelImpl;->read(Ljava/nio/ByteBuffer;)I
+HSPLsun/nio/ch/SocketChannelImpl;->readerCleanup()V
+HSPLsun/nio/ch/SocketChannelImpl;->remoteAddress()Ljava/net/SocketAddress;
+HPLsun/nio/ch/SocketChannelImpl;->setOption(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/SocketChannel;
+HPLsun/nio/ch/SocketChannelImpl;->shutdownOutput()Ljava/nio/channels/SocketChannel;
+HSPLsun/nio/ch/SocketChannelImpl;->socket()Ljava/net/Socket;
+HPLsun/nio/ch/SocketChannelImpl;->supportedOptions()Ljava/util/Set;
+HSPLsun/nio/ch/SocketChannelImpl;->translateAndSetInterestOps(ILsun/nio/ch/SelectionKeyImpl;)V
+HSPLsun/nio/ch/SocketChannelImpl;->translateAndSetReadyOps(ILsun/nio/ch/SelectionKeyImpl;)Z
+HSPLsun/nio/ch/SocketChannelImpl;->translateReadyOps(IILsun/nio/ch/SelectionKeyImpl;)Z
+HPLsun/nio/ch/SocketChannelImpl;->write(Ljava/nio/ByteBuffer;)I
+HPLsun/nio/ch/SocketChannelImpl;->writerCleanup()V
+HSPLsun/nio/ch/SocketDispatcher;->close(Ljava/io/FileDescriptor;)V
+HSPLsun/nio/ch/SocketDispatcher;->preClose(Ljava/io/FileDescriptor;)V
+HPLsun/nio/ch/SocketDispatcher;->read(Ljava/io/FileDescriptor;JI)I
+HPLsun/nio/ch/SocketDispatcher;->write(Ljava/io/FileDescriptor;JI)I
HSPLsun/nio/ch/Util$1;->initialValue()Ljava/lang/Object;
HSPLsun/nio/ch/Util$1;->initialValue()Lsun/nio/ch/Util$BufferCache;
+HSPLsun/nio/ch/Util$3;-><init>(Ljava/util/Set;)V
+HPLsun/nio/ch/Util$3;->clear()V
+HPLsun/nio/ch/Util$3;->iterator()Ljava/util/Iterator;
+HPLsun/nio/ch/Util$3;->size()I
HSPLsun/nio/ch/Util$BufferCache;-><init>()V
HSPLsun/nio/ch/Util$BufferCache;->get(I)Ljava/nio/ByteBuffer;
HSPLsun/nio/ch/Util$BufferCache;->isEmpty()Z
@@ -15368,22 +44158,27 @@ HSPLsun/nio/ch/Util$BufferCache;->next(I)I
HSPLsun/nio/ch/Util$BufferCache;->offerFirst(Ljava/nio/ByteBuffer;)Z
HSPLsun/nio/ch/Util$BufferCache;->removeFirst()Ljava/nio/ByteBuffer;
HSPLsun/nio/ch/Util;->access$000()I
+HSPLsun/nio/ch/Util;->atBugLevel(Ljava/lang/String;)Z
HSPLsun/nio/ch/Util;->free(Ljava/nio/ByteBuffer;)V
HSPLsun/nio/ch/Util;->getTemporaryDirectBuffer(I)Ljava/nio/ByteBuffer;
HSPLsun/nio/ch/Util;->isBufferTooLarge(I)Z
HSPLsun/nio/ch/Util;->isBufferTooLarge(Ljava/nio/ByteBuffer;)Z
HSPLsun/nio/ch/Util;->offerFirstTemporaryDirectBuffer(Ljava/nio/ByteBuffer;)V
+HSPLsun/nio/ch/Util;->ungrowableSet(Ljava/util/Set;)Ljava/util/Set;
HSPLsun/nio/cs/StreamDecoder;-><init>(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)V
HSPLsun/nio/cs/StreamDecoder;-><init>(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/CharsetDecoder;)V
HSPLsun/nio/cs/StreamDecoder;->close()V
HSPLsun/nio/cs/StreamDecoder;->ensureOpen()V
HSPLsun/nio/cs/StreamDecoder;->forInputStreamReader(Ljava/io/InputStream;Ljava/lang/Object;Ljava/lang/String;)Lsun/nio/cs/StreamDecoder;
HSPLsun/nio/cs/StreamDecoder;->forInputStreamReader(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)Lsun/nio/cs/StreamDecoder;
+HSPLsun/nio/cs/StreamDecoder;->forInputStreamReader(Ljava/io/InputStream;Ljava/lang/Object;Ljava/nio/charset/CharsetDecoder;)Lsun/nio/cs/StreamDecoder;
HSPLsun/nio/cs/StreamDecoder;->implClose()V
HSPLsun/nio/cs/StreamDecoder;->implRead([CII)I
HSPLsun/nio/cs/StreamDecoder;->implReady()Z
HSPLsun/nio/cs/StreamDecoder;->inReady()Z
+HSPLsun/nio/cs/StreamDecoder;->read()I
HSPLsun/nio/cs/StreamDecoder;->read([CII)I
+HSPLsun/nio/cs/StreamDecoder;->read0()I
HSPLsun/nio/cs/StreamDecoder;->readBytes()I
HSPLsun/nio/cs/StreamDecoder;->ready()Z
HSPLsun/nio/cs/StreamEncoder;-><init>(Ljava/io/OutputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)V
@@ -15391,6 +44186,7 @@ HSPLsun/nio/cs/StreamEncoder;-><init>(Ljava/io/OutputStream;Ljava/lang/Object;Lj
HSPLsun/nio/cs/StreamEncoder;->close()V
HSPLsun/nio/cs/StreamEncoder;->ensureOpen()V
HSPLsun/nio/cs/StreamEncoder;->flush()V
+HSPLsun/nio/cs/StreamEncoder;->flushBuffer()V
HSPLsun/nio/cs/StreamEncoder;->flushLeftoverChar(Ljava/nio/CharBuffer;Z)V
HSPLsun/nio/cs/StreamEncoder;->forOutputStreamWriter(Ljava/io/OutputStream;Ljava/lang/Object;Ljava/lang/String;)Lsun/nio/cs/StreamEncoder;
HSPLsun/nio/cs/StreamEncoder;->forOutputStreamWriter(Ljava/io/OutputStream;Ljava/lang/Object;Ljava/nio/charset/Charset;)Lsun/nio/cs/StreamEncoder;
@@ -15398,31 +44194,54 @@ HSPLsun/nio/cs/StreamEncoder;->implClose()V
HSPLsun/nio/cs/StreamEncoder;->implFlush()V
HSPLsun/nio/cs/StreamEncoder;->implFlushBuffer()V
HSPLsun/nio/cs/StreamEncoder;->implWrite([CII)V
+HSPLsun/nio/cs/StreamEncoder;->isOpen()Z
HSPLsun/nio/cs/StreamEncoder;->write(I)V
HSPLsun/nio/cs/StreamEncoder;->write(Ljava/lang/String;II)V
HSPLsun/nio/cs/StreamEncoder;->write([CII)V
HSPLsun/nio/cs/StreamEncoder;->writeBytes()V
+PLsun/nio/cs/ThreadLocalCoders$1;->create(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLsun/nio/cs/ThreadLocalCoders$2;->create(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLsun/nio/cs/ThreadLocalCoders$2;->hasName(Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLsun/nio/cs/ThreadLocalCoders$Cache;->forName(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLsun/nio/cs/ThreadLocalCoders$Cache;->moveToFront([Ljava/lang/Object;I)V
+PLsun/nio/cs/ThreadLocalCoders;->decoderFor(Ljava/lang/Object;)Ljava/nio/charset/CharsetDecoder;
+HSPLsun/nio/cs/ThreadLocalCoders;->encoderFor(Ljava/lang/Object;)Ljava/nio/charset/CharsetEncoder;
HSPLsun/nio/fs/AbstractBasicFileAttributeView;-><init>()V
HSPLsun/nio/fs/AbstractPath;-><init>()V
+HSPLsun/nio/fs/AbstractPath;->resolve(Ljava/lang/String;)Ljava/nio/file/Path;
+HSPLsun/nio/fs/AbstractPath;->startsWith(Ljava/lang/String;)Z
+HSPLsun/nio/fs/AbstractPath;->toFile()Ljava/io/File;
+PLsun/nio/fs/Globs;-><clinit>()V
+PLsun/nio/fs/Globs;->next(Ljava/lang/String;I)C
+HPLsun/nio/fs/Globs;->toRegexPattern(Ljava/lang/String;Z)Ljava/lang/String;
+PLsun/nio/fs/Globs;->toUnixRegexPattern(Ljava/lang/String;)Ljava/lang/String;
+HPLsun/nio/fs/LinuxFileSystem;->copyNonPosixAttributes(II)V
HSPLsun/nio/fs/LinuxFileSystemProvider;->getFileAttributeView(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/FileAttributeView;
HSPLsun/nio/fs/LinuxFileSystemProvider;->readAttributes(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes;
HSPLsun/nio/fs/NativeBuffer$Deallocator;-><init>(J)V
+HSPLsun/nio/fs/NativeBuffer$Deallocator;->run()V
HSPLsun/nio/fs/NativeBuffer;-><init>(I)V
+HSPLsun/nio/fs/NativeBuffer;->access$000()Lsun/misc/Unsafe;
HSPLsun/nio/fs/NativeBuffer;->address()J
HSPLsun/nio/fs/NativeBuffer;->owner()Ljava/lang/Object;
HSPLsun/nio/fs/NativeBuffer;->release()V
HSPLsun/nio/fs/NativeBuffer;->setOwner(Ljava/lang/Object;)V
HSPLsun/nio/fs/NativeBuffer;->size()I
HSPLsun/nio/fs/NativeBuffers;->allocNativeBuffer(I)Lsun/nio/fs/NativeBuffer;
+HPLsun/nio/fs/NativeBuffers;->asNativeBuffer([B)Lsun/nio/fs/NativeBuffer;
HSPLsun/nio/fs/NativeBuffers;->copyCStringToNativeBuffer([BLsun/nio/fs/NativeBuffer;)V
+HPLsun/nio/fs/NativeBuffers;->getNativeBuffer(I)Lsun/nio/fs/NativeBuffer;
HSPLsun/nio/fs/NativeBuffers;->getNativeBufferFromCache(I)Lsun/nio/fs/NativeBuffer;
HSPLsun/nio/fs/NativeBuffers;->releaseNativeBuffer(Lsun/nio/fs/NativeBuffer;)V
+HSPLsun/nio/fs/UnixChannelFactory$1;-><clinit>()V
HSPLsun/nio/fs/UnixChannelFactory$Flags;-><init>()V
HSPLsun/nio/fs/UnixChannelFactory$Flags;->toFlags(Ljava/util/Set;)Lsun/nio/fs/UnixChannelFactory$Flags;
HSPLsun/nio/fs/UnixChannelFactory;-><clinit>()V
HSPLsun/nio/fs/UnixChannelFactory;->newFileChannel(ILsun/nio/fs/UnixPath;Ljava/lang/String;Ljava/util/Set;I)Ljava/nio/channels/FileChannel;
HSPLsun/nio/fs/UnixChannelFactory;->newFileChannel(Lsun/nio/fs/UnixPath;Ljava/util/Set;I)Ljava/nio/channels/FileChannel;
HSPLsun/nio/fs/UnixChannelFactory;->open(ILsun/nio/fs/UnixPath;Ljava/lang/String;Lsun/nio/fs/UnixChannelFactory$Flags;I)Ljava/io/FileDescriptor;
+HSPLsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;-><clinit>()V
+HSPLsun/nio/fs/UnixDirectoryStream;-><init>(Lsun/nio/fs/UnixPath;JLjava/nio/file/DirectoryStream$Filter;)V
HSPLsun/nio/fs/UnixException;-><init>(I)V
HSPLsun/nio/fs/UnixException;->errno()I
HSPLsun/nio/fs/UnixException;->rethrowAsIOException(Lsun/nio/fs/UnixPath;)V
@@ -15432,44 +44251,89 @@ HSPLsun/nio/fs/UnixFileAttributeViews$Basic;-><init>(Lsun/nio/fs/UnixPath;Z)V
HSPLsun/nio/fs/UnixFileAttributeViews$Basic;->readAttributes()Ljava/nio/file/attribute/BasicFileAttributes;
HSPLsun/nio/fs/UnixFileAttributeViews;->createBasicView(Lsun/nio/fs/UnixPath;Z)Lsun/nio/fs/UnixFileAttributeViews$Basic;
HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;-><init>(Lsun/nio/fs/UnixFileAttributes;)V
+PLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->creationTime()Ljava/nio/file/attribute/FileTime;
+HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->fileKey()Ljava/lang/Object;
+HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->isDirectory()Z
HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->isRegularFile()Z
+PLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->lastAccessTime()Ljava/nio/file/attribute/FileTime;
+HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->lastModifiedTime()Ljava/nio/file/attribute/FileTime;
+HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->size()J
HSPLsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;->wrap(Lsun/nio/fs/UnixFileAttributes;)Lsun/nio/fs/UnixFileAttributes$UnixAsBasicFileAttributes;
HSPLsun/nio/fs/UnixFileAttributes;-><init>()V
HSPLsun/nio/fs/UnixFileAttributes;->asBasicFileAttributes()Ljava/nio/file/attribute/BasicFileAttributes;
+PLsun/nio/fs/UnixFileAttributes;->creationTime()Ljava/nio/file/attribute/FileTime;
+HSPLsun/nio/fs/UnixFileAttributes;->fileKey()Lsun/nio/fs/UnixFileKey;
HSPLsun/nio/fs/UnixFileAttributes;->get(Lsun/nio/fs/UnixPath;Z)Lsun/nio/fs/UnixFileAttributes;
+HPLsun/nio/fs/UnixFileAttributes;->gid()I
+HPLsun/nio/fs/UnixFileAttributes;->isDevice()Z
+HSPLsun/nio/fs/UnixFileAttributes;->isDirectory()Z
HSPLsun/nio/fs/UnixFileAttributes;->isRegularFile()Z
+HPLsun/nio/fs/UnixFileAttributes;->isSymbolicLink()Z
+PLsun/nio/fs/UnixFileAttributes;->lastAccessTime()Ljava/nio/file/attribute/FileTime;
+HSPLsun/nio/fs/UnixFileAttributes;->lastModifiedTime()Ljava/nio/file/attribute/FileTime;
+HPLsun/nio/fs/UnixFileAttributes;->mode()I
+HSPLsun/nio/fs/UnixFileAttributes;->size()J
+HSPLsun/nio/fs/UnixFileAttributes;->toFileTime(JJ)Ljava/nio/file/attribute/FileTime;
+HPLsun/nio/fs/UnixFileAttributes;->uid()I
HSPLsun/nio/fs/UnixFileModeAttribute;->toUnixMode(I[Ljava/nio/file/attribute/FileAttribute;)I
+PLsun/nio/fs/UnixFileSystem$3;-><init>(Lsun/nio/fs/UnixFileSystem;Ljava/util/regex/Pattern;)V
+HPLsun/nio/fs/UnixFileSystem$3;->matches(Ljava/nio/file/Path;)Z
+PLsun/nio/fs/UnixFileSystem;->compilePathMatchPattern(Ljava/lang/String;)Ljava/util/regex/Pattern;
HSPLsun/nio/fs/UnixFileSystem;->getPath(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
+PLsun/nio/fs/UnixFileSystem;->getPathMatcher(Ljava/lang/String;)Ljava/nio/file/PathMatcher;
HSPLsun/nio/fs/UnixFileSystem;->needToResolveAgainstDefaultDirectory()Z
HSPLsun/nio/fs/UnixFileSystem;->normalizeJavaPath(Ljava/lang/String;)Ljava/lang/String;
HSPLsun/nio/fs/UnixFileSystem;->normalizeNativePath([C)[C
HSPLsun/nio/fs/UnixFileSystem;->provider()Ljava/nio/file/spi/FileSystemProvider;
+HSPLsun/nio/fs/UnixFileSystemProvider$3;-><clinit>()V
HSPLsun/nio/fs/UnixFileSystemProvider;->checkAccess(Ljava/nio/file/Path;[Ljava/nio/file/AccessMode;)V
+HSPLsun/nio/fs/UnixFileSystemProvider;->checkPath(Ljava/nio/file/Path;)Lsun/nio/fs/UnixPath;
+HPLsun/nio/fs/UnixFileSystemProvider;->createLink(Ljava/nio/file/Path;Ljava/nio/file/Path;)V
HSPLsun/nio/fs/UnixFileSystemProvider;->getFileAttributeView(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/FileAttributeView;
+HPLsun/nio/fs/UnixFileSystemProvider;->move(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)V
HSPLsun/nio/fs/UnixFileSystemProvider;->newByteChannel(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel;
+HSPLsun/nio/fs/UnixFileSystemProvider;->newDirectoryStream(Ljava/nio/file/Path;Ljava/nio/file/DirectoryStream$Filter;)Ljava/nio/file/DirectoryStream;
+HSPLsun/nio/fs/UnixFileSystemProvider;->newFileChannel(Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/FileChannel;
HSPLsun/nio/fs/UnixFileSystemProvider;->readAttributes(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes;
HSPLsun/nio/fs/UnixNativeDispatcher;->access(Lsun/nio/fs/UnixPath;I)V
+PLsun/nio/fs/UnixNativeDispatcher;->birthtimeSupported()Z
HSPLsun/nio/fs/UnixNativeDispatcher;->copyToNativeBuffer(Lsun/nio/fs/UnixPath;)Lsun/nio/fs/NativeBuffer;
+HPLsun/nio/fs/UnixNativeDispatcher;->futimesSupported()Z
+HPLsun/nio/fs/UnixNativeDispatcher;->link(Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixPath;)V
HSPLsun/nio/fs/UnixNativeDispatcher;->lstat(Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixFileAttributes;)V
HSPLsun/nio/fs/UnixNativeDispatcher;->open(Lsun/nio/fs/UnixPath;II)I
+HSPLsun/nio/fs/UnixNativeDispatcher;->openatSupported()Z
+HPLsun/nio/fs/UnixNativeDispatcher;->rename(Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixPath;)V
+HSPLsun/nio/fs/UnixNativeDispatcher;->stat(Lsun/nio/fs/UnixPath;Lsun/nio/fs/UnixFileAttributes;)V
+HPLsun/nio/fs/UnixNativeDispatcher;->unlink(Lsun/nio/fs/UnixPath;)V
HSPLsun/nio/fs/UnixPath;-><init>(Lsun/nio/fs/UnixFileSystem;Ljava/lang/String;)V
HSPLsun/nio/fs/UnixPath;-><init>(Lsun/nio/fs/UnixFileSystem;[B)V
+HSPLsun/nio/fs/UnixPath;->asByteArray()[B
HSPLsun/nio/fs/UnixPath;->checkNotNul(Ljava/lang/String;C)V
HSPLsun/nio/fs/UnixPath;->checkRead()V
+HSPLsun/nio/fs/UnixPath;->checkWrite()V
HSPLsun/nio/fs/UnixPath;->encode(Lsun/nio/fs/UnixFileSystem;Ljava/lang/String;)[B
HSPLsun/nio/fs/UnixPath;->getByteArrayForSysCalls()[B
+HPLsun/nio/fs/UnixPath;->getFileName()Ljava/nio/file/Path;
+HPLsun/nio/fs/UnixPath;->getFileName()Lsun/nio/fs/UnixPath;
HSPLsun/nio/fs/UnixPath;->getFileSystem()Ljava/nio/file/FileSystem;
HSPLsun/nio/fs/UnixPath;->getFileSystem()Lsun/nio/fs/UnixFileSystem;
+HSPLsun/nio/fs/UnixPath;->getNameCount()I
HSPLsun/nio/fs/UnixPath;->getParent()Ljava/nio/file/Path;
HSPLsun/nio/fs/UnixPath;->getParent()Lsun/nio/fs/UnixPath;
HSPLsun/nio/fs/UnixPath;->getPathForExceptionMessage()Ljava/lang/String;
HSPLsun/nio/fs/UnixPath;->initOffsets()V
HSPLsun/nio/fs/UnixPath;->isEmpty()Z
+HSPLsun/nio/fs/UnixPath;->normalize(Ljava/lang/String;II)Ljava/lang/String;
HSPLsun/nio/fs/UnixPath;->normalizeAndCheck(Ljava/lang/String;)Ljava/lang/String;
+HSPLsun/nio/fs/UnixPath;->resolve(Ljava/nio/file/Path;)Ljava/nio/file/Path;
HSPLsun/nio/fs/UnixPath;->resolve(Ljava/nio/file/Path;)Lsun/nio/fs/UnixPath;
+HSPLsun/nio/fs/UnixPath;->resolve([B)Lsun/nio/fs/UnixPath;
HSPLsun/nio/fs/UnixPath;->resolve([B[B)[B
+HSPLsun/nio/fs/UnixPath;->startsWith(Ljava/nio/file/Path;)Z
HSPLsun/nio/fs/UnixPath;->toString()Ljava/lang/String;
HSPLsun/nio/fs/UnixPath;->toUnixPath(Ljava/nio/file/Path;)Lsun/nio/fs/UnixPath;
+HSPLsun/nio/fs/UnixSecureDirectoryStream;-><init>(Lsun/nio/fs/UnixPath;JILjava/nio/file/DirectoryStream$Filter;)V
HSPLsun/nio/fs/Util;->followLinks([Ljava/nio/file/LinkOption;)Z
HSPLsun/nio/fs/Util;->jnuEncoding()Ljava/nio/charset/Charset;
HSPLsun/nio/fs/Util;->toString([B)Ljava/lang/String;
@@ -15478,7 +44342,13 @@ HSPLsun/reflect/Reflection;->getCallerClass()Ljava/lang/Class;
HSPLsun/reflect/Reflection;->isSameClassPackage(Ljava/lang/Class;Ljava/lang/Class;)Z
HSPLsun/reflect/Reflection;->isSameClassPackage(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;)Z
HSPLsun/reflect/Reflection;->verifyMemberAccess(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;I)Z
+HSPLsun/reflect/misc/ReflectUtil;->checkPackageAccess(Ljava/lang/Class;)V
+HSPLsun/reflect/misc/ReflectUtil;->checkPackageAccess(Ljava/lang/String;)V
HSPLsun/reflect/misc/ReflectUtil;->ensureMemberAccess(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Object;I)V
+HSPLsun/reflect/misc/ReflectUtil;->isNonPublicProxyClass(Ljava/lang/Class;)Z
+PLsun/security/action/GetBooleanAction;-><init>(Ljava/lang/String;)V
+PLsun/security/action/GetBooleanAction;->run()Ljava/lang/Boolean;
+PLsun/security/action/GetBooleanAction;->run()Ljava/lang/Object;
HSPLsun/security/action/GetPropertyAction;-><init>(Ljava/lang/String;)V
HSPLsun/security/action/GetPropertyAction;->run()Ljava/lang/Object;
HSPLsun/security/action/GetPropertyAction;->run()Ljava/lang/String;
@@ -15487,9 +44357,11 @@ HSPLsun/security/jca/GetInstance$Instance;-><init>(Ljava/security/Provider;Ljava
HSPLsun/security/jca/GetInstance$Instance;->toArray()[Ljava/lang/Object;
HSPLsun/security/jca/GetInstance;->checkSuperClass(Ljava/security/Provider$Service;Ljava/lang/Class;Ljava/lang/Class;)V
HSPLsun/security/jca/GetInstance;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Lsun/security/jca/GetInstance$Instance;
+HSPLsun/security/jca/GetInstance;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Lsun/security/jca/GetInstance$Instance;
HSPLsun/security/jca/GetInstance;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lsun/security/jca/GetInstance$Instance;
HSPLsun/security/jca/GetInstance;->getInstance(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/security/Provider;)Lsun/security/jca/GetInstance$Instance;
HSPLsun/security/jca/GetInstance;->getInstance(Ljava/security/Provider$Service;Ljava/lang/Class;)Lsun/security/jca/GetInstance$Instance;
+HSPLsun/security/jca/GetInstance;->getInstance(Ljava/security/Provider$Service;Ljava/lang/Class;Ljava/lang/Object;)Lsun/security/jca/GetInstance$Instance;
HSPLsun/security/jca/GetInstance;->getService(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service;
HSPLsun/security/jca/GetInstance;->getService(Ljava/lang/String;Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Provider$Service;
HSPLsun/security/jca/GetInstance;->getServices(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
@@ -15537,10 +44409,14 @@ HSPLsun/security/jca/Providers;->getSystemProviderList()Lsun/security/jca/Provid
HSPLsun/security/jca/Providers;->getThreadProviderList()Lsun/security/jca/ProviderList;
HSPLsun/security/jca/Providers;->setProviderList(Lsun/security/jca/ProviderList;)V
HSPLsun/security/jca/Providers;->setSystemProviderList(Lsun/security/jca/ProviderList;)V
+HSPLsun/security/jca/Providers;->startJarVerification()Ljava/lang/Object;
+HSPLsun/security/jca/Providers;->stopJarVerification(Ljava/lang/Object;)V
HSPLsun/security/pkcs/ContentInfo;-><init>(Lsun/security/util/DerInputStream;)V
HSPLsun/security/pkcs/ContentInfo;-><init>(Lsun/security/util/DerInputStream;Z)V
HSPLsun/security/pkcs/ContentInfo;->getContent()Lsun/security/util/DerValue;
+HSPLsun/security/pkcs/ContentInfo;->getData()[B
HSPLsun/security/pkcs/PKCS7$VerbatimX509Certificate;-><init>(Ljava/security/cert/X509Certificate;[B)V
+HSPLsun/security/pkcs/PKCS7$VerbatimX509Certificate;->getEncoded()[B
HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;-><init>(Ljava/security/cert/X509Certificate;)V
HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getIssuerDN()Ljava/security/Principal;
HSPLsun/security/pkcs/PKCS7$WrappedX509Certificate;->getKeyUsage()[Z
@@ -15565,6 +44441,8 @@ HSPLsun/security/pkcs/SignerInfo;->getCertificate(Lsun/security/pkcs/PKCS7;)Ljav
HSPLsun/security/pkcs/SignerInfo;->getCertificateChain(Lsun/security/pkcs/PKCS7;)Ljava/util/ArrayList;
HSPLsun/security/pkcs/SignerInfo;->getDigestAlgorithmId()Lsun/security/x509/AlgorithmId;
HSPLsun/security/pkcs/SignerInfo;->getDigestEncryptionAlgorithmId()Lsun/security/x509/AlgorithmId;
+HSPLsun/security/pkcs/SignerInfo;->getTimestamp()Ljava/security/Timestamp;
+HSPLsun/security/pkcs/SignerInfo;->getTsToken()Lsun/security/pkcs/PKCS7;
HSPLsun/security/pkcs/SignerInfo;->verify(Lsun/security/pkcs/PKCS7;Ljava/io/InputStream;)Lsun/security/pkcs/SignerInfo;
HSPLsun/security/pkcs/SignerInfo;->verify(Lsun/security/pkcs/PKCS7;[B)Lsun/security/pkcs/SignerInfo;
HSPLsun/security/provider/X509Factory;->addToCache(Lsun/security/util/Cache;[BLjava/lang/Object;)V
@@ -15574,11 +44452,17 @@ HSPLsun/security/provider/certpath/AdaptableX509CertSelector;-><init>()V
HSPLsun/security/provider/certpath/AdaptableX509CertSelector;->match(Ljava/security/cert/Certificate;)Z
HSPLsun/security/provider/certpath/AdaptableX509CertSelector;->matchSubjectKeyID(Ljava/security/cert/X509Certificate;)Z
HSPLsun/security/provider/certpath/AdaptableX509CertSelector;->setSkiAndSerialNumber(Lsun/security/x509/AuthorityKeyIdentifierExtension;)V
+PLsun/security/provider/certpath/AdaptableX509CertSelector;->setValidityPeriod(Ljava/util/Date;Ljava/util/Date;)V
+PLsun/security/provider/certpath/AdjacencyList;-><init>(Ljava/util/List;)V
+HPLsun/security/provider/certpath/AdjacencyList;->buildList(Ljava/util/List;ILsun/security/provider/certpath/BuildStep;)Z
HSPLsun/security/provider/certpath/AlgorithmChecker;-><init>(Ljava/security/cert/TrustAnchor;)V
HSPLsun/security/provider/certpath/AlgorithmChecker;-><init>(Ljava/security/cert/TrustAnchor;Ljava/security/AlgorithmConstraints;)V
+HSPLsun/security/provider/certpath/AlgorithmChecker;->check(Ljava/security/PublicKey;Lsun/security/x509/AlgorithmId;)V
HSPLsun/security/provider/certpath/AlgorithmChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
HSPLsun/security/provider/certpath/AlgorithmChecker;->checkFingerprint(Ljava/security/cert/X509Certificate;)Z
HSPLsun/security/provider/certpath/AlgorithmChecker;->init(Z)V
+PLsun/security/provider/certpath/AlgorithmChecker;->isForwardCheckingSupported()Z
+PLsun/security/provider/certpath/AlgorithmChecker;->trySetTrustAnchor(Ljava/security/cert/TrustAnchor;)V
HSPLsun/security/provider/certpath/BasicChecker;-><init>(Ljava/security/cert/TrustAnchor;Ljava/util/Date;Ljava/lang/String;Z)V
HSPLsun/security/provider/certpath/BasicChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
HSPLsun/security/provider/certpath/BasicChecker;->getPublicKey()Ljava/security/PublicKey;
@@ -15587,21 +44471,77 @@ HSPLsun/security/provider/certpath/BasicChecker;->updateState(Ljava/security/cer
HSPLsun/security/provider/certpath/BasicChecker;->verifyNameChaining(Ljava/security/cert/X509Certificate;)V
HSPLsun/security/provider/certpath/BasicChecker;->verifySignature(Ljava/security/cert/X509Certificate;)V
HSPLsun/security/provider/certpath/BasicChecker;->verifyTimestamp(Ljava/security/cert/X509Certificate;)V
+PLsun/security/provider/certpath/BuildStep;-><init>(Lsun/security/provider/certpath/Vertex;I)V
+PLsun/security/provider/certpath/Builder;-><clinit>()V
+PLsun/security/provider/certpath/Builder;-><init>(Lsun/security/provider/certpath/PKIX$BuilderParams;)V
+PLsun/security/provider/certpath/Builder;->addMatchingCerts(Ljava/security/cert/X509CertSelector;Ljava/util/Collection;Ljava/util/Collection;Z)Z
+HSPLsun/security/provider/certpath/CertId;-><init>(Ljava/security/cert/X509Certificate;Lsun/security/x509/SerialNumber;)V
+HSPLsun/security/provider/certpath/CertId;-><init>(Ljavax/security/auth/x500/X500Principal;Ljava/security/PublicKey;Lsun/security/x509/SerialNumber;)V
+HSPLsun/security/provider/certpath/CertId;-><init>(Lsun/security/util/DerInputStream;)V
+HSPLsun/security/provider/certpath/CertId;->equals(Ljava/lang/Object;)Z
+HSPLsun/security/provider/certpath/CertId;->getHashAlgorithm()Lsun/security/x509/AlgorithmId;
+HSPLsun/security/provider/certpath/CertId;->getIssuerKeyHash()[B
+HSPLsun/security/provider/certpath/CertId;->getIssuerNameHash()[B
+HSPLsun/security/provider/certpath/CertId;->getSerialNumber()Ljava/math/BigInteger;
+HSPLsun/security/provider/certpath/CertId;->hashCode()I
+PLsun/security/provider/certpath/CertPathHelper;->setPathToNames(Ljava/security/cert/X509CertSelector;Ljava/util/Set;)V
HSPLsun/security/provider/certpath/ConstraintsChecker;-><init>(I)V
HSPLsun/security/provider/certpath/ConstraintsChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
HSPLsun/security/provider/certpath/ConstraintsChecker;->checkBasicConstraints(Ljava/security/cert/X509Certificate;)V
HSPLsun/security/provider/certpath/ConstraintsChecker;->init(Z)V
HSPLsun/security/provider/certpath/ConstraintsChecker;->mergeNameConstraints(Ljava/security/cert/X509Certificate;Lsun/security/x509/NameConstraintsExtension;)Lsun/security/x509/NameConstraintsExtension;
HSPLsun/security/provider/certpath/ConstraintsChecker;->verifyNameConstraints(Ljava/security/cert/X509Certificate;)V
+PLsun/security/provider/certpath/ForwardBuilder$PKIXCertComparator;-><init>(Ljava/util/Set;Lsun/security/x509/X509CertImpl;)V
+PLsun/security/provider/certpath/ForwardBuilder$PKIXCertComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLsun/security/provider/certpath/ForwardBuilder$PKIXCertComparator;->compare(Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)I
+PLsun/security/provider/certpath/ForwardBuilder$PKIXCertComparator;->getSelector(Lsun/security/x509/X509CertImpl;)Ljava/security/cert/X509CertSelector;
+PLsun/security/provider/certpath/ForwardBuilder;-><clinit>()V
+PLsun/security/provider/certpath/ForwardBuilder;-><init>(Lsun/security/provider/certpath/PKIX$BuilderParams;Z)V
+PLsun/security/provider/certpath/ForwardBuilder;->access$000()Lsun/security/util/Debug;
+PLsun/security/provider/certpath/ForwardBuilder;->addCertToPath(Ljava/security/cert/X509Certificate;Ljava/util/LinkedList;)V
+PLsun/security/provider/certpath/ForwardBuilder;->getMatchingCACerts(Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
+PLsun/security/provider/certpath/ForwardBuilder;->getMatchingCerts(Lsun/security/provider/certpath/State;Ljava/util/List;)Ljava/util/Collection;
+PLsun/security/provider/certpath/ForwardBuilder;->getMatchingEECerts(Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
+PLsun/security/provider/certpath/ForwardBuilder;->isPathCompleted(Ljava/security/cert/X509Certificate;)Z
+HPLsun/security/provider/certpath/ForwardBuilder;->verifyCert(Ljava/security/cert/X509Certificate;Lsun/security/provider/certpath/State;Ljava/util/List;)V
+PLsun/security/provider/certpath/ForwardState;-><clinit>()V
+PLsun/security/provider/certpath/ForwardState;-><init>()V
+PLsun/security/provider/certpath/ForwardState;->clone()Ljava/lang/Object;
+PLsun/security/provider/certpath/ForwardState;->initState(Ljava/util/List;)V
+PLsun/security/provider/certpath/ForwardState;->isInitial()Z
+PLsun/security/provider/certpath/ForwardState;->keyParamsNeeded()Z
+PLsun/security/provider/certpath/ForwardState;->updateState(Ljava/security/cert/X509Certificate;)V
HSPLsun/security/provider/certpath/KeyChecker;-><init>(ILjava/security/cert/CertSelector;)V
HSPLsun/security/provider/certpath/KeyChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
HSPLsun/security/provider/certpath/KeyChecker;->init(Z)V
HSPLsun/security/provider/certpath/KeyChecker;->verifyCAKeyUsage(Ljava/security/cert/X509Certificate;)V
+HSPLsun/security/provider/certpath/OCSPResponse$1;-><clinit>()V
+HSPLsun/security/provider/certpath/OCSPResponse$ResponseStatus;->values()[Lsun/security/provider/certpath/OCSPResponse$ResponseStatus;
+HSPLsun/security/provider/certpath/OCSPResponse$SingleResponse;-><init>(Lsun/security/util/DerValue;)V
+HSPLsun/security/provider/certpath/OCSPResponse$SingleResponse;-><init>(Lsun/security/util/DerValue;Lsun/security/provider/certpath/OCSPResponse$1;)V
+HSPLsun/security/provider/certpath/OCSPResponse$SingleResponse;->access$100(Lsun/security/provider/certpath/OCSPResponse$SingleResponse;)Lsun/security/provider/certpath/CertId;
+HSPLsun/security/provider/certpath/OCSPResponse$SingleResponse;->access$200(Lsun/security/provider/certpath/OCSPResponse$SingleResponse;)Ljava/util/Date;
+HSPLsun/security/provider/certpath/OCSPResponse$SingleResponse;->access$300(Lsun/security/provider/certpath/OCSPResponse$SingleResponse;)Ljava/util/Date;
+HSPLsun/security/provider/certpath/OCSPResponse$SingleResponse;->getCertId()Lsun/security/provider/certpath/CertId;
+HSPLsun/security/provider/certpath/OCSPResponse$SingleResponse;->getCertStatus()Lsun/security/provider/certpath/OCSP$RevocationStatus$CertStatus;
+HSPLsun/security/provider/certpath/OCSPResponse;-><init>([B)V
+HSPLsun/security/provider/certpath/OCSPResponse;->getSingleResponse(Lsun/security/provider/certpath/CertId;)Lsun/security/provider/certpath/OCSPResponse$SingleResponse;
+HSPLsun/security/provider/certpath/OCSPResponse;->verify(Ljava/util/List;Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;Ljava/util/Date;[B)V
+HSPLsun/security/provider/certpath/OCSPResponse;->verifySignature(Ljava/security/cert/X509Certificate;)Z
+PLsun/security/provider/certpath/PKIX$BuilderParams;-><init>(Ljava/security/cert/PKIXBuilderParameters;)V
+PLsun/security/provider/certpath/PKIX$BuilderParams;->certStores()Ljava/util/List;
+PLsun/security/provider/certpath/PKIX$BuilderParams;->checkParams(Ljava/security/cert/PKIXBuilderParameters;)V
+PLsun/security/provider/certpath/PKIX$BuilderParams;->getTargetSubject(Ljava/util/List;Ljava/security/cert/X509CertSelector;)Ljavax/security/auth/x500/X500Principal;
+PLsun/security/provider/certpath/PKIX$BuilderParams;->maxPathLength()I
+PLsun/security/provider/certpath/PKIX$BuilderParams;->targetSubject()Ljavax/security/auth/x500/X500Principal;
+PLsun/security/provider/certpath/PKIX$CertStoreComparator;-><init>()V
+PLsun/security/provider/certpath/PKIX$CertStoreComparator;-><init>(Lsun/security/provider/certpath/PKIX$1;)V
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;-><init>(Ljava/security/cert/CertPath;Ljava/security/cert/PKIXParameters;)V
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;-><init>(Ljava/security/cert/PKIXParameters;)V
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->anyPolicyInhibited()Z
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->certPath()Ljava/security/cert/CertPath;
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->certPathCheckers()Ljava/util/List;
+HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->certStores()Ljava/util/List;
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->certificates()Ljava/util/List;
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->date()Ljava/util/Date;
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->explicitPolicyRequired()Z
@@ -15609,12 +44549,15 @@ HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->initialPolicies()Ljava
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->policyMappingInhibited()Z
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->policyQualifiersRejected()Z
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->revocationEnabled()Z
+PLsun/security/provider/certpath/PKIX$ValidatorParams;->setCertPath(Ljava/security/cert/CertPath;)V
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->sigProvider()Ljava/lang/String;
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->targetCertConstraints()Ljava/security/cert/CertSelector;
HSPLsun/security/provider/certpath/PKIX$ValidatorParams;->trustAnchors()Ljava/util/Set;
+PLsun/security/provider/certpath/PKIX;->checkBuilderParams(Ljava/security/cert/CertPathParameters;)Lsun/security/provider/certpath/PKIX$BuilderParams;
HSPLsun/security/provider/certpath/PKIX;->checkParams(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Lsun/security/provider/certpath/PKIX$ValidatorParams;
HSPLsun/security/provider/certpath/PKIX;->isDSAPublicKeyWithoutParams(Ljava/security/PublicKey;)Z
HSPLsun/security/provider/certpath/PKIXCertPathValidator;-><init>()V
+HSPLsun/security/provider/certpath/PKIXCertPathValidator;->engineGetRevocationChecker()Ljava/security/cert/CertPathChecker;
HSPLsun/security/provider/certpath/PKIXCertPathValidator;->engineValidate(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathValidatorResult;
HSPLsun/security/provider/certpath/PKIXCertPathValidator;->validate(Ljava/security/cert/TrustAnchor;Lsun/security/provider/certpath/PKIX$ValidatorParams;)Ljava/security/cert/PKIXCertPathValidatorResult;
HSPLsun/security/provider/certpath/PKIXCertPathValidator;->validate(Lsun/security/provider/certpath/PKIX$ValidatorParams;)Ljava/security/cert/PKIXCertPathValidatorResult;
@@ -15624,6 +44567,7 @@ HSPLsun/security/provider/certpath/PolicyChecker;->check(Ljava/security/cert/Cer
HSPLsun/security/provider/certpath/PolicyChecker;->checkPolicy(Ljava/security/cert/X509Certificate;)V
HSPLsun/security/provider/certpath/PolicyChecker;->getPolicyTree()Ljava/security/cert/PolicyNode;
HSPLsun/security/provider/certpath/PolicyChecker;->init(Z)V
+PLsun/security/provider/certpath/PolicyChecker;->isForwardCheckingSupported()Z
HSPLsun/security/provider/certpath/PolicyChecker;->mergeExplicitPolicy(ILsun/security/x509/X509CertImpl;Z)I
HSPLsun/security/provider/certpath/PolicyChecker;->mergeInhibitAnyPolicy(ILsun/security/x509/X509CertImpl;)I
HSPLsun/security/provider/certpath/PolicyChecker;->mergePolicyMapping(ILsun/security/x509/X509CertImpl;)I
@@ -15637,11 +44581,50 @@ HSPLsun/security/provider/certpath/PolicyNodeImpl;->copyTree()Lsun/security/prov
HSPLsun/security/provider/certpath/PolicyNodeImpl;->copyTree(Lsun/security/provider/certpath/PolicyNodeImpl;)Lsun/security/provider/certpath/PolicyNodeImpl;
HSPLsun/security/provider/certpath/PolicyNodeImpl;->getChildren()Ljava/util/Iterator;
HSPLsun/security/provider/certpath/PolicyNodeImpl;->getDepth()I
+HSPLsun/security/provider/certpath/PolicyNodeImpl;->getExpectedPolicies()Ljava/util/Set;
+HSPLsun/security/provider/certpath/PolicyNodeImpl;->getPolicyNodes(I)Ljava/util/Set;
+HSPLsun/security/provider/certpath/PolicyNodeImpl;->getPolicyNodes(ILjava/util/Set;)V
HSPLsun/security/provider/certpath/PolicyNodeImpl;->getPolicyNodesExpected(ILjava/lang/String;Z)Ljava/util/Set;
HSPLsun/security/provider/certpath/PolicyNodeImpl;->getPolicyNodesExpectedHelper(ILjava/lang/String;Z)Ljava/util/Set;
HSPLsun/security/provider/certpath/PolicyNodeImpl;->getValidPolicy()Ljava/lang/String;
HSPLsun/security/provider/certpath/PolicyNodeImpl;->prune(I)V
HSPLsun/security/provider/certpath/PolicyNodeImpl;->setImmutable()V
+HSPLsun/security/provider/certpath/RevocationChecker$1;-><init>()V
+HSPLsun/security/provider/certpath/RevocationChecker$1;->run()Ljava/lang/Object;
+HSPLsun/security/provider/certpath/RevocationChecker$1;->run()Lsun/security/provider/certpath/RevocationChecker$RevocationProperties;
+HSPLsun/security/provider/certpath/RevocationChecker$2;-><clinit>()V
+HSPLsun/security/provider/certpath/RevocationChecker$Mode;->values()[Lsun/security/provider/certpath/RevocationChecker$Mode;
+HSPLsun/security/provider/certpath/RevocationChecker$RevocationProperties;-><init>()V
+HSPLsun/security/provider/certpath/RevocationChecker$RevocationProperties;-><init>(Lsun/security/provider/certpath/RevocationChecker$1;)V
+HSPLsun/security/provider/certpath/RevocationChecker;-><init>()V
+HSPLsun/security/provider/certpath/RevocationChecker;->certCanSignCrl(Ljava/security/cert/X509Certificate;)Z
+HSPLsun/security/provider/certpath/RevocationChecker;->check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
+HSPLsun/security/provider/certpath/RevocationChecker;->check(Ljava/security/cert/X509Certificate;Ljava/util/Collection;Ljava/security/PublicKey;Z)V
+HSPLsun/security/provider/certpath/RevocationChecker;->checkOCSP(Ljava/security/cert/X509Certificate;Ljava/util/Collection;)V
+HSPLsun/security/provider/certpath/RevocationChecker;->clone()Ljava/lang/Object;
+HSPLsun/security/provider/certpath/RevocationChecker;->clone()Lsun/security/provider/certpath/RevocationChecker;
+HSPLsun/security/provider/certpath/RevocationChecker;->getResponderCert(Lsun/security/provider/certpath/RevocationChecker$RevocationProperties;Ljava/util/Set;Ljava/util/List;)Ljava/security/cert/X509Certificate;
+HSPLsun/security/provider/certpath/RevocationChecker;->getRevocationProperties()Lsun/security/provider/certpath/RevocationChecker$RevocationProperties;
+HSPLsun/security/provider/certpath/RevocationChecker;->init(Ljava/security/cert/TrustAnchor;Lsun/security/provider/certpath/PKIX$ValidatorParams;)V
+HSPLsun/security/provider/certpath/RevocationChecker;->init(Z)V
+HSPLsun/security/provider/certpath/RevocationChecker;->toURI(Ljava/lang/String;)Ljava/net/URI;
+HSPLsun/security/provider/certpath/RevocationChecker;->updateState(Ljava/security/cert/X509Certificate;)V
+PLsun/security/provider/certpath/SunCertPathBuilder;-><clinit>()V
+PLsun/security/provider/certpath/SunCertPathBuilder;-><init>()V
+HPLsun/security/provider/certpath/SunCertPathBuilder;->addVertices(Ljava/util/Collection;Ljava/util/List;)Ljava/util/List;
+PLsun/security/provider/certpath/SunCertPathBuilder;->build()Ljava/security/cert/PKIXCertPathBuilderResult;
+PLsun/security/provider/certpath/SunCertPathBuilder;->buildCertPath(ZLjava/util/List;)Ljava/security/cert/PKIXCertPathBuilderResult;
+PLsun/security/provider/certpath/SunCertPathBuilder;->buildForward(Ljava/util/List;Ljava/util/LinkedList;Z)V
+HPLsun/security/provider/certpath/SunCertPathBuilder;->depthFirstSearchForward(Ljavax/security/auth/x500/X500Principal;Lsun/security/provider/certpath/ForwardState;Lsun/security/provider/certpath/ForwardBuilder;Ljava/util/List;Ljava/util/LinkedList;)V
+PLsun/security/provider/certpath/SunCertPathBuilder;->engineBuild(Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathBuilderResult;
+PLsun/security/provider/certpath/SunCertPathBuilderResult;-><clinit>()V
+PLsun/security/provider/certpath/SunCertPathBuilderResult;-><init>(Ljava/security/cert/CertPath;Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;Lsun/security/provider/certpath/AdjacencyList;)V
+PLsun/security/provider/certpath/Vertex;-><clinit>()V
+PLsun/security/provider/certpath/Vertex;-><init>(Ljava/security/cert/X509Certificate;)V
+PLsun/security/provider/certpath/Vertex;->getCertificate()Ljava/security/cert/X509Certificate;
+PLsun/security/provider/certpath/Vertex;->getIndex()I
+PLsun/security/provider/certpath/Vertex;->getThrowable()Ljava/lang/Throwable;
+PLsun/security/provider/certpath/Vertex;->setIndex(I)V
HSPLsun/security/util/AbstractAlgorithmConstraints;->checkAlgorithm([Ljava/lang/String;Ljava/lang/String;Lsun/security/util/AlgorithmDecomposer;)Z
HSPLsun/security/util/AlgorithmDecomposer;->decompose(Ljava/lang/String;)Ljava/util/Set;
HSPLsun/security/util/AlgorithmDecomposer;->decomposeImpl(Ljava/lang/String;)Ljava/util/Set;
@@ -15659,6 +44642,9 @@ HSPLsun/security/util/Cache$EqualByteArray;->equals(Ljava/lang/Object;)Z
HSPLsun/security/util/Cache$EqualByteArray;->hashCode()I
HSPLsun/security/util/CertConstraintParameters;-><init>(Ljava/security/cert/X509Certificate;Z)V
HSPLsun/security/util/CertConstraintParameters;->getCertificate()Ljava/security/cert/X509Certificate;
+PLsun/security/util/Debug;->getInstance(Ljava/lang/String;)Lsun/security/util/Debug;
+PLsun/security/util/Debug;->getInstance(Ljava/lang/String;Ljava/lang/String;)Lsun/security/util/Debug;
+PLsun/security/util/Debug;->isOn(Ljava/lang/String;)Z
HSPLsun/security/util/DerIndefLenConverter;->isIndefinite(I)Z
HSPLsun/security/util/DerIndefLenConverter;->isLongForm(I)Z
HSPLsun/security/util/DerInputBuffer;-><init>([B)V
@@ -15667,6 +44653,7 @@ HSPLsun/security/util/DerInputBuffer;->dup()Lsun/security/util/DerInputBuffer;
HSPLsun/security/util/DerInputBuffer;->getBigInteger(IZ)Ljava/math/BigInteger;
HSPLsun/security/util/DerInputBuffer;->getBitString()[B
HSPLsun/security/util/DerInputBuffer;->getBitString(I)[B
+HSPLsun/security/util/DerInputBuffer;->getGeneralizedTime(I)Ljava/util/Date;
HSPLsun/security/util/DerInputBuffer;->getInteger(I)I
HSPLsun/security/util/DerInputBuffer;->getPos()I
HSPLsun/security/util/DerInputBuffer;->getSlice(II)[B
@@ -15683,6 +44670,8 @@ HSPLsun/security/util/DerInputStream;->getBigInteger()Ljava/math/BigInteger;
HSPLsun/security/util/DerInputStream;->getByte()I
HSPLsun/security/util/DerInputStream;->getBytes([B)V
HSPLsun/security/util/DerInputStream;->getDerValue()Lsun/security/util/DerValue;
+HSPLsun/security/util/DerInputStream;->getEnumerated()I
+HSPLsun/security/util/DerInputStream;->getGeneralizedTime()Ljava/util/Date;
HSPLsun/security/util/DerInputStream;->getLength()I
HSPLsun/security/util/DerInputStream;->getLength(ILjava/io/InputStream;)I
HSPLsun/security/util/DerInputStream;->getLength(Ljava/io/InputStream;)I
@@ -15756,6 +44745,19 @@ HSPLsun/security/util/DisabledAlgorithmConstraints;->permits(Ljava/util/Set;Ljav
HSPLsun/security/util/DisabledAlgorithmConstraints;->permits(Ljava/util/Set;Ljava/security/Key;)Z
HSPLsun/security/util/DisabledAlgorithmConstraints;->permits(Ljava/util/Set;Lsun/security/util/CertConstraintParameters;)V
HSPLsun/security/util/KeyUtil;->getKeySize(Ljava/security/Key;)I
+HSPLsun/security/util/ManifestDigester$Entry;-><init>(III[B)V
+HSPLsun/security/util/ManifestDigester$Position;-><init>()V
+HSPLsun/security/util/ManifestDigester;-><init>([B)V
+HSPLsun/security/util/ManifestDigester;->findSection(ILsun/security/util/ManifestDigester$Position;)Z
+HSPLsun/security/util/ManifestDigester;->isNameAttr([BI)Z
+HSPLsun/security/util/ManifestDigester;->manifestDigest(Ljava/security/MessageDigest;)[B
+HSPLsun/security/util/ManifestEntryVerifier$SunProviderHolder;->access$000()Ljava/security/Provider;
+HSPLsun/security/util/ManifestEntryVerifier;-><init>(Ljava/util/jar/Manifest;)V
+HSPLsun/security/util/ManifestEntryVerifier;->getEntry()Ljava/util/jar/JarEntry;
+HSPLsun/security/util/ManifestEntryVerifier;->setEntry(Ljava/lang/String;Ljava/util/jar/JarEntry;)V
+HSPLsun/security/util/ManifestEntryVerifier;->update(B)V
+HSPLsun/security/util/ManifestEntryVerifier;->update([BII)V
+HSPLsun/security/util/ManifestEntryVerifier;->verify(Ljava/util/Hashtable;Ljava/util/Hashtable;)[Ljava/security/CodeSigner;
HSPLsun/security/util/MemoryCache$SoftCacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;JLjava/lang/ref/ReferenceQueue;)V
HSPLsun/security/util/MemoryCache$SoftCacheEntry;->getValue()Ljava/lang/Object;
HSPLsun/security/util/MemoryCache$SoftCacheEntry;->isValid(J)Z
@@ -15770,6 +44772,18 @@ HSPLsun/security/util/ObjectIdentifier;->encode(Lsun/security/util/DerOutputStre
HSPLsun/security/util/ObjectIdentifier;->equals(Ljava/lang/Object;)Z
HSPLsun/security/util/ObjectIdentifier;->hashCode()I
HSPLsun/security/util/ObjectIdentifier;->toString()Ljava/lang/String;
+HSPLsun/security/util/SignatureFileVerifier;-><init>(Ljava/util/ArrayList;Lsun/security/util/ManifestDigester;Ljava/lang/String;[B)V
+HSPLsun/security/util/SignatureFileVerifier;->getDigest(Ljava/lang/String;)Ljava/security/MessageDigest;
+HSPLsun/security/util/SignatureFileVerifier;->getSigners([Lsun/security/pkcs/SignerInfo;Lsun/security/pkcs/PKCS7;)[Ljava/security/CodeSigner;
+HSPLsun/security/util/SignatureFileVerifier;->isBlockOrSF(Ljava/lang/String;)Z
+HSPLsun/security/util/SignatureFileVerifier;->matches([Ljava/security/CodeSigner;[Ljava/security/CodeSigner;[Ljava/security/CodeSigner;)Z
+HSPLsun/security/util/SignatureFileVerifier;->needSignatureFile(Ljava/lang/String;)Z
+HSPLsun/security/util/SignatureFileVerifier;->needSignatureFileBytes()Z
+HSPLsun/security/util/SignatureFileVerifier;->process(Ljava/util/Hashtable;Ljava/util/List;)V
+HSPLsun/security/util/SignatureFileVerifier;->processImpl(Ljava/util/Hashtable;Ljava/util/List;)V
+HSPLsun/security/util/SignatureFileVerifier;->setSignatureFile([B)V
+HSPLsun/security/util/SignatureFileVerifier;->updateSigners([Ljava/security/CodeSigner;Ljava/util/Hashtable;Ljava/lang/String;)V
+HSPLsun/security/util/SignatureFileVerifier;->verifyManifestHash(Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;Ljava/util/List;)Z
HSPLsun/security/x509/AVA;-><init>(Ljava/io/Reader;ILjava/util/Map;)V
HSPLsun/security/x509/AVA;-><init>(Ljava/io/Reader;Ljava/util/Map;)V
HSPLsun/security/x509/AVA;-><init>(Lsun/security/util/DerValue;)V
@@ -15780,6 +44794,7 @@ HSPLsun/security/x509/AVA;->parseString(Ljava/io/Reader;IILjava/lang/StringBuild
HSPLsun/security/x509/AVA;->readChar(Ljava/io/Reader;Ljava/lang/String;)I
HSPLsun/security/x509/AVA;->toKeyword(ILjava/util/Map;)Ljava/lang/String;
HSPLsun/security/x509/AVA;->toRFC2253CanonicalString()Ljava/lang/String;
+HSPLsun/security/x509/AVA;->toRFC2253String(Ljava/util/Map;)Ljava/lang/String;
HSPLsun/security/x509/AVAKeyword;->getKeyword(Lsun/security/util/ObjectIdentifier;ILjava/util/Map;)Ljava/lang/String;
HSPLsun/security/x509/AVAKeyword;->getOID(Ljava/lang/String;ILjava/util/Map;)Lsun/security/util/ObjectIdentifier;
HSPLsun/security/x509/AVAKeyword;->isCompliant(I)Z
@@ -15792,7 +44807,9 @@ HSPLsun/security/x509/AlgorithmId;->equals(Lsun/security/x509/AlgorithmId;)Z
HSPLsun/security/x509/AlgorithmId;->getEncAlgFromSigAlg(Ljava/lang/String;)Ljava/lang/String;
HSPLsun/security/x509/AlgorithmId;->getName()Ljava/lang/String;
HSPLsun/security/x509/AlgorithmId;->getParameters()Ljava/security/AlgorithmParameters;
+HSPLsun/security/x509/AlgorithmId;->hashCode()I
HSPLsun/security/x509/AlgorithmId;->makeSigAlg(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLsun/security/x509/AlgorithmId;->paramsToString()Ljava/lang/String;
HSPLsun/security/x509/AlgorithmId;->parse(Lsun/security/util/DerValue;)Lsun/security/x509/AlgorithmId;
HSPLsun/security/x509/AuthorityInfoAccessExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V
HSPLsun/security/x509/AuthorityInfoAccessExtension;->getName()Ljava/lang/String;
@@ -15808,6 +44825,7 @@ HSPLsun/security/x509/CRLDistributionPointsExtension;->getName()Ljava/lang/Strin
HSPLsun/security/x509/CertificateAlgorithmId;-><init>(Lsun/security/util/DerInputStream;)V
HSPLsun/security/x509/CertificateAlgorithmId;->get(Ljava/lang/String;)Lsun/security/x509/AlgorithmId;
HSPLsun/security/x509/CertificateExtensions;-><init>(Lsun/security/util/DerInputStream;)V
+HPLsun/security/x509/CertificateExtensions;->get(Ljava/lang/String;)Lsun/security/x509/Extension;
HSPLsun/security/x509/CertificateExtensions;->getAllExtensions()Ljava/util/Collection;
HSPLsun/security/x509/CertificateExtensions;->getExtension(Ljava/lang/String;)Lsun/security/x509/Extension;
HSPLsun/security/x509/CertificateExtensions;->init(Lsun/security/util/DerInputStream;)V
@@ -15818,17 +44836,24 @@ HSPLsun/security/x509/CertificatePoliciesExtension;->getName()Ljava/lang/String;
HSPLsun/security/x509/CertificatePolicyId;-><init>(Lsun/security/util/DerValue;)V
HSPLsun/security/x509/CertificatePolicyId;->getIdentifier()Lsun/security/util/ObjectIdentifier;
HSPLsun/security/x509/CertificateSerialNumber;-><init>(Lsun/security/util/DerValue;)V
+HSPLsun/security/x509/CertificateSerialNumber;->get(Ljava/lang/String;)Lsun/security/x509/SerialNumber;
HSPLsun/security/x509/CertificateValidity;-><init>(Lsun/security/util/DerInputStream;)V
HSPLsun/security/x509/CertificateValidity;->construct(Lsun/security/util/DerValue;)V
+PLsun/security/x509/CertificateValidity;->get(Ljava/lang/String;)Ljava/util/Date;
+PLsun/security/x509/CertificateValidity;->getNotAfter()Ljava/util/Date;
+PLsun/security/x509/CertificateValidity;->getNotBefore()Ljava/util/Date;
+HPLsun/security/x509/CertificateValidity;->valid(Ljava/util/Date;)V
HSPLsun/security/x509/CertificateVersion;-><init>()V
HSPLsun/security/x509/CertificateVersion;-><init>(Lsun/security/util/DerValue;)V
HSPLsun/security/x509/CertificateVersion;->compare(I)I
HSPLsun/security/x509/CertificateVersion;->construct(Lsun/security/util/DerValue;)V
HSPLsun/security/x509/CertificateX509Key;-><init>(Lsun/security/util/DerInputStream;)V
+HSPLsun/security/x509/CertificateX509Key;->get(Ljava/lang/String;)Ljava/security/PublicKey;
HSPLsun/security/x509/DNSName;-><init>(Ljava/lang/String;)V
HSPLsun/security/x509/DNSName;-><init>(Lsun/security/util/DerValue;)V
HSPLsun/security/x509/DistributionPoint;-><init>(Lsun/security/util/DerValue;)V
HSPLsun/security/x509/ExtendedKeyUsageExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V
+HPLsun/security/x509/ExtendedKeyUsageExtension;->getExtendedKeyUsage()Ljava/util/List;
HSPLsun/security/x509/ExtendedKeyUsageExtension;->getName()Ljava/lang/String;
HSPLsun/security/x509/Extension;-><init>()V
HSPLsun/security/x509/Extension;-><init>(Lsun/security/util/DerValue;)V
@@ -15841,24 +44866,34 @@ HSPLsun/security/x509/GeneralNames;-><init>()V
HSPLsun/security/x509/GeneralNames;-><init>(Lsun/security/util/DerValue;)V
HSPLsun/security/x509/GeneralNames;->add(Lsun/security/x509/GeneralName;)Lsun/security/x509/GeneralNames;
HSPLsun/security/x509/KeyIdentifier;-><init>(Lsun/security/util/DerValue;)V
+HSPLsun/security/x509/KeyIdentifier;-><init>([B)V
HSPLsun/security/x509/KeyIdentifier;->encode(Lsun/security/util/DerOutputStream;)V
+HSPLsun/security/x509/KeyIdentifier;->equals(Ljava/lang/Object;)Z
HSPLsun/security/x509/KeyUsageExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V
+HPLsun/security/x509/KeyUsageExtension;->getBits()[Z
HSPLsun/security/x509/KeyUsageExtension;->getName()Ljava/lang/String;
+HPLsun/security/x509/OCSPNoCheckExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V
+HPLsun/security/x509/OCSPNoCheckExtension;->getName()Ljava/lang/String;
HSPLsun/security/x509/OIDMap$OIDInfo;->getClazz()Ljava/lang/Class;
HSPLsun/security/x509/OIDMap;->getClass(Lsun/security/util/ObjectIdentifier;)Ljava/lang/Class;
+HPLsun/security/x509/OIDMap;->getName(Lsun/security/util/ObjectIdentifier;)Ljava/lang/String;
HSPLsun/security/x509/PolicyInformation;-><init>(Lsun/security/util/DerValue;)V
HSPLsun/security/x509/PolicyInformation;->getPolicyIdentifier()Lsun/security/x509/CertificatePolicyId;
HSPLsun/security/x509/PolicyInformation;->getPolicyQualifiers()Ljava/util/Set;
HSPLsun/security/x509/RDN;-><init>(Ljava/lang/String;Ljava/util/Map;)V
HSPLsun/security/x509/RDN;-><init>(Lsun/security/util/DerValue;)V
HSPLsun/security/x509/RDN;->encode(Lsun/security/util/DerOutputStream;)V
+HSPLsun/security/x509/RDN;->toRFC2253String(Ljava/util/Map;)Ljava/lang/String;
HSPLsun/security/x509/RDN;->toRFC2253String(Z)Ljava/lang/String;
HSPLsun/security/x509/RDN;->toRFC2253StringInternal(ZLjava/util/Map;)Ljava/lang/String;
+HSPLsun/security/x509/SerialNumber;-><init>(Lsun/security/util/DerInputStream;)V
HSPLsun/security/x509/SerialNumber;-><init>(Lsun/security/util/DerValue;)V
HSPLsun/security/x509/SerialNumber;->construct(Lsun/security/util/DerValue;)V
+HSPLsun/security/x509/SerialNumber;->getNumber()Ljava/math/BigInteger;
HSPLsun/security/x509/SubjectAlternativeNameExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V
HSPLsun/security/x509/SubjectAlternativeNameExtension;->getName()Ljava/lang/String;
HSPLsun/security/x509/SubjectKeyIdentifierExtension;-><init>(Ljava/lang/Boolean;Ljava/lang/Object;)V
+HSPLsun/security/x509/SubjectKeyIdentifierExtension;->get(Ljava/lang/String;)Lsun/security/x509/KeyIdentifier;
HSPLsun/security/x509/SubjectKeyIdentifierExtension;->getName()Ljava/lang/String;
HSPLsun/security/x509/URIName;-><init>(Ljava/lang/String;)V
HSPLsun/security/x509/URIName;-><init>(Lsun/security/util/DerValue;)V
@@ -15872,9 +44907,12 @@ HSPLsun/security/x509/X500Name;->checkNoNewLinesNorTabsAtBeginningOfDN(Ljava/lan
HSPLsun/security/x509/X500Name;->countQuotes(Ljava/lang/String;II)I
HSPLsun/security/x509/X500Name;->equals(Ljava/lang/Object;)Z
HSPLsun/security/x509/X500Name;->escaped(IILjava/lang/String;)Z
+HSPLsun/security/x509/X500Name;->generateRFC2253DN(Ljava/util/Map;)Ljava/lang/String;
HSPLsun/security/x509/X500Name;->getEncoded()[B
HSPLsun/security/x509/X500Name;->getEncodedInternal()[B
HSPLsun/security/x509/X500Name;->getRFC2253CanonicalName()Ljava/lang/String;
+HSPLsun/security/x509/X500Name;->getRFC2253Name()Ljava/lang/String;
+HSPLsun/security/x509/X500Name;->getRFC2253Name(Ljava/util/Map;)Ljava/lang/String;
HSPLsun/security/x509/X500Name;->hashCode()I
HSPLsun/security/x509/X500Name;->intern(Lsun/security/util/ObjectIdentifier;)Lsun/security/util/ObjectIdentifier;
HSPLsun/security/x509/X500Name;->isEmpty()Z
@@ -15884,26 +44922,41 @@ HSPLsun/security/x509/X509AttributeName;-><init>(Ljava/lang/String;)V
HSPLsun/security/x509/X509AttributeName;->getPrefix()Ljava/lang/String;
HSPLsun/security/x509/X509AttributeName;->getSuffix()Ljava/lang/String;
HSPLsun/security/x509/X509CertImpl;-><init>([B)V
+HPLsun/security/x509/X509CertImpl;->checkValidity(Ljava/util/Date;)V
HSPLsun/security/x509/X509CertImpl;->get(Ljava/lang/String;)Ljava/lang/Object;
HSPLsun/security/x509/X509CertImpl;->getAuthorityKeyIdentifierExtension()Lsun/security/x509/AuthorityKeyIdentifierExtension;
HSPLsun/security/x509/X509CertImpl;->getCertificatePoliciesExtension()Lsun/security/x509/CertificatePoliciesExtension;
HSPLsun/security/x509/X509CertImpl;->getEncodedInternal()[B
HSPLsun/security/x509/X509CertImpl;->getEncodedInternal(Ljava/security/cert/Certificate;)[B
+HPLsun/security/x509/X509CertImpl;->getExtendedKeyUsage()Ljava/util/List;
+HPLsun/security/x509/X509CertImpl;->getExtendedKeyUsageExtension()Lsun/security/x509/ExtendedKeyUsageExtension;
HSPLsun/security/x509/X509CertImpl;->getExtension(Lsun/security/util/ObjectIdentifier;)Lsun/security/x509/Extension;
HSPLsun/security/x509/X509CertImpl;->getIssuerX500Principal()Ljavax/security/auth/x500/X500Principal;
+HPLsun/security/x509/X509CertImpl;->getKeyUsage()[Z
HSPLsun/security/x509/X509CertImpl;->getNameConstraintsExtension()Lsun/security/x509/NameConstraintsExtension;
+PLsun/security/x509/X509CertImpl;->getNotAfter()Ljava/util/Date;
+PLsun/security/x509/X509CertImpl;->getNotBefore()Ljava/util/Date;
HSPLsun/security/x509/X509CertImpl;->getPolicyConstraintsExtension()Lsun/security/x509/PolicyConstraintsExtension;
HSPLsun/security/x509/X509CertImpl;->getPolicyMappingsExtension()Lsun/security/x509/PolicyMappingsExtension;
+HSPLsun/security/x509/X509CertImpl;->getPublicKey()Ljava/security/PublicKey;
+HSPLsun/security/x509/X509CertImpl;->getSerialNumberObject()Lsun/security/x509/SerialNumber;
HSPLsun/security/x509/X509CertImpl;->getSigAlgName()Ljava/lang/String;
+PLsun/security/x509/X509CertImpl;->getSubjectAlternativeNameExtension()Lsun/security/x509/SubjectAlternativeNameExtension;
+HSPLsun/security/x509/X509CertImpl;->getSubjectKeyId()Lsun/security/x509/KeyIdentifier;
+HSPLsun/security/x509/X509CertImpl;->getSubjectKeyIdentifierExtension()Lsun/security/x509/SubjectKeyIdentifierExtension;
HSPLsun/security/x509/X509CertImpl;->getSubjectX500Principal()Ljavax/security/auth/x500/X500Principal;
HSPLsun/security/x509/X509CertImpl;->isSelfIssued(Ljava/security/cert/X509Certificate;)Z
+PLsun/security/x509/X509CertImpl;->isSelfSigned(Ljava/security/cert/X509Certificate;Ljava/lang/String;)Z
HSPLsun/security/x509/X509CertImpl;->parse(Lsun/security/util/DerValue;)V
HSPLsun/security/x509/X509CertImpl;->parse(Lsun/security/util/DerValue;[B)V
HSPLsun/security/x509/X509CertImpl;->toImpl(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X509CertImpl;
+PLsun/security/x509/X509CertImpl;->verify(Ljava/security/PublicKey;)V
+PLsun/security/x509/X509CertImpl;->verify(Ljava/security/PublicKey;Ljava/lang/String;)V
HSPLsun/security/x509/X509CertInfo;-><init>(Lsun/security/util/DerValue;)V
HSPLsun/security/x509/X509CertInfo;-><init>([B)V
HSPLsun/security/x509/X509CertInfo;->attributeMap(Ljava/lang/String;)I
HSPLsun/security/x509/X509CertInfo;->get(Ljava/lang/String;)Ljava/lang/Object;
+PLsun/security/x509/X509CertInfo;->getEncodedInfo()[B
HSPLsun/security/x509/X509CertInfo;->getX500Name(Ljava/lang/String;Z)Ljava/lang/Object;
HSPLsun/security/x509/X509CertInfo;->parse(Lsun/security/util/DerValue;)V
HSPLsun/security/x509/X509CertInfo;->verifyCert(Lsun/security/x509/X500Name;Lsun/security/x509/CertificateExtensions;)V
@@ -15932,7 +44985,7 @@ HSPLsun/util/calendar/BaseCalendar;->isLeapYear(I)Z
HSPLsun/util/calendar/BaseCalendar;->isLeapYear(Lsun/util/calendar/CalendarDate;)Z
HSPLsun/util/calendar/BaseCalendar;->normalizeMonth(Lsun/util/calendar/CalendarDate;)V
HSPLsun/util/calendar/CalendarDate;-><init>(Ljava/util/TimeZone;)V
-HSPLsun/util/calendar/CalendarDate;->clone()Ljava/lang/Object;
+HPLsun/util/calendar/CalendarDate;->clone()Ljava/lang/Object;
HSPLsun/util/calendar/CalendarDate;->getDayOfMonth()I
HSPLsun/util/calendar/CalendarDate;->getDayOfWeek()I
HSPLsun/util/calendar/CalendarDate;->getHours()I
@@ -15964,6 +45017,7 @@ HSPLsun/util/calendar/CalendarDate;->setYear(I)Lsun/util/calendar/CalendarDate;
HSPLsun/util/calendar/CalendarDate;->setZone(Ljava/util/TimeZone;)Lsun/util/calendar/CalendarDate;
HSPLsun/util/calendar/CalendarDate;->setZoneOffset(I)V
HSPLsun/util/calendar/CalendarSystem;->getGregorianCalendar()Lsun/util/calendar/Gregorian;
+HSPLsun/util/calendar/CalendarUtils;->floorDivide(II)I
HSPLsun/util/calendar/CalendarUtils;->isGregorianLeapYear(I)Z
HSPLsun/util/calendar/CalendarUtils;->sprintf0d(Ljava/lang/StringBuilder;II)Ljava/lang/StringBuilder;
HSPLsun/util/calendar/Gregorian$Date;-><init>(Ljava/util/TimeZone;)V
@@ -15997,15 +45051,23 @@ HSPLsun/util/locale/BaseLocale;->getRegion()Ljava/lang/String;
HSPLsun/util/locale/BaseLocale;->getScript()Ljava/lang/String;
HSPLsun/util/locale/BaseLocale;->getVariant()Ljava/lang/String;
HSPLsun/util/locale/BaseLocale;->hashCode()I
+HSPLsun/util/locale/Extension;-><init>(CLjava/lang/String;)V
+HSPLsun/util/locale/Extension;->setValue(Ljava/lang/String;)V
HSPLsun/util/locale/InternalLocaleBuilder;-><init>()V
+HSPLsun/util/locale/InternalLocaleBuilder;->checkVariants(Ljava/lang/String;Ljava/lang/String;)I
HSPLsun/util/locale/InternalLocaleBuilder;->clear()Lsun/util/locale/InternalLocaleBuilder;
HSPLsun/util/locale/InternalLocaleBuilder;->clearExtensions()Lsun/util/locale/InternalLocaleBuilder;
HSPLsun/util/locale/InternalLocaleBuilder;->getBaseLocale()Lsun/util/locale/BaseLocale;
HSPLsun/util/locale/InternalLocaleBuilder;->getLocaleExtensions()Lsun/util/locale/LocaleExtensions;
HSPLsun/util/locale/InternalLocaleBuilder;->setExtensions(Ljava/util/List;Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder;
+HSPLsun/util/locale/InternalLocaleBuilder;->setLanguage(Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder;
HSPLsun/util/locale/InternalLocaleBuilder;->setLanguageTag(Lsun/util/locale/LanguageTag;)Lsun/util/locale/InternalLocaleBuilder;
+HSPLsun/util/locale/InternalLocaleBuilder;->setRegion(Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder;
+HSPLsun/util/locale/InternalLocaleBuilder;->setScript(Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder;
+HSPLsun/util/locale/InternalLocaleBuilder;->setVariant(Ljava/lang/String;)Lsun/util/locale/InternalLocaleBuilder;
HSPLsun/util/locale/LanguageTag;-><init>()V
HSPLsun/util/locale/LanguageTag;->canonicalizeLanguage(Ljava/lang/String;)Ljava/lang/String;
+HSPLsun/util/locale/LanguageTag;->canonicalizeRegion(Ljava/lang/String;)Ljava/lang/String;
HSPLsun/util/locale/LanguageTag;->getExtensions()Ljava/util/List;
HSPLsun/util/locale/LanguageTag;->getExtlangs()Ljava/util/List;
HSPLsun/util/locale/LanguageTag;->getLanguage()Ljava/lang/String;
@@ -16015,8 +45077,10 @@ HSPLsun/util/locale/LanguageTag;->getScript()Ljava/lang/String;
HSPLsun/util/locale/LanguageTag;->getVariants()Ljava/util/List;
HSPLsun/util/locale/LanguageTag;->isExtlang(Ljava/lang/String;)Z
HSPLsun/util/locale/LanguageTag;->isLanguage(Ljava/lang/String;)Z
+HPLsun/util/locale/LanguageTag;->isPrivateusePrefix(Ljava/lang/String;)Z
HSPLsun/util/locale/LanguageTag;->isRegion(Ljava/lang/String;)Z
HSPLsun/util/locale/LanguageTag;->isScript(Ljava/lang/String;)Z
+HSPLsun/util/locale/LanguageTag;->isVariant(Ljava/lang/String;)Z
HSPLsun/util/locale/LanguageTag;->parse(Ljava/lang/String;Lsun/util/locale/ParseStatus;)Lsun/util/locale/LanguageTag;
HSPLsun/util/locale/LanguageTag;->parseExtensions(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
HSPLsun/util/locale/LanguageTag;->parseExtlangs(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
@@ -16026,6 +45090,14 @@ HSPLsun/util/locale/LanguageTag;->parsePrivateuse(Lsun/util/locale/StringTokenIt
HSPLsun/util/locale/LanguageTag;->parseRegion(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
HSPLsun/util/locale/LanguageTag;->parseScript(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
HSPLsun/util/locale/LanguageTag;->parseVariants(Lsun/util/locale/StringTokenIterator;Lsun/util/locale/ParseStatus;)Z
+HSPLsun/util/locale/LocaleExtensions;-><clinit>()V
+HSPLsun/util/locale/LocaleExtensions;-><init>(Ljava/lang/String;Ljava/lang/Character;Lsun/util/locale/Extension;)V
+HPLsun/util/locale/LocaleMatcher;->getEquivalentForRegionAndVariant(Ljava/lang/String;)Ljava/lang/String;
+HPLsun/util/locale/LocaleMatcher;->getEquivalentsForLanguage(Ljava/lang/String;)[Ljava/lang/String;
+HPLsun/util/locale/LocaleMatcher;->getExtentionKeyIndex(Ljava/lang/String;)I
+HPLsun/util/locale/LocaleMatcher;->lookup(Ljava/util/List;Ljava/util/Collection;)Ljava/util/Locale;
+HPLsun/util/locale/LocaleMatcher;->lookupTag(Ljava/util/List;Ljava/util/Collection;)Ljava/lang/String;
+HPLsun/util/locale/LocaleMatcher;->parse(Ljava/lang/String;)Ljava/util/List;
HSPLsun/util/locale/LocaleObjectCache$CacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
HSPLsun/util/locale/LocaleObjectCache$CacheEntry;->getKey()Ljava/lang/Object;
HSPLsun/util/locale/LocaleObjectCache;-><init>()V
@@ -16035,10 +45107,18 @@ HSPLsun/util/locale/LocaleObjectCache;->get(Ljava/lang/Object;)Ljava/lang/Object
HSPLsun/util/locale/LocaleObjectCache;->normalizeKey(Ljava/lang/Object;)Ljava/lang/Object;
HSPLsun/util/locale/LocaleUtils;->caseIgnoreMatch(Ljava/lang/String;Ljava/lang/String;)Z
HSPLsun/util/locale/LocaleUtils;->isAlpha(C)Z
+HSPLsun/util/locale/LocaleUtils;->isAlphaNumeric(C)Z
+HSPLsun/util/locale/LocaleUtils;->isAlphaNumericString(Ljava/lang/String;)Z
HSPLsun/util/locale/LocaleUtils;->isAlphaString(Ljava/lang/String;)Z
+HSPLsun/util/locale/LocaleUtils;->isEmpty(Ljava/lang/String;)Z
HSPLsun/util/locale/LocaleUtils;->isEmpty(Ljava/util/List;)Z
HSPLsun/util/locale/LocaleUtils;->isEmpty(Ljava/util/Map;)Z
HSPLsun/util/locale/LocaleUtils;->isEmpty(Ljava/util/Set;)Z
+PLsun/util/locale/LocaleUtils;->isLower(C)Z
+HSPLsun/util/locale/LocaleUtils;->isNumeric(C)Z
+HSPLsun/util/locale/LocaleUtils;->isNumericString(Ljava/lang/String;)Z
+HSPLsun/util/locale/LocaleUtils;->isUpper(C)Z
+HSPLsun/util/locale/LocaleUtils;->toLower(C)C
HSPLsun/util/locale/LocaleUtils;->toLowerString(Ljava/lang/String;)Ljava/lang/String;
HSPLsun/util/locale/LocaleUtils;->toTitleString(Ljava/lang/String;)Ljava/lang/String;
HSPLsun/util/locale/LocaleUtils;->toUpperString(Ljava/lang/String;)Ljava/lang/String;
@@ -16048,13 +45128,21 @@ HSPLsun/util/locale/ParseStatus;->reset()V
HSPLsun/util/locale/StringTokenIterator;-><init>(Ljava/lang/String;Ljava/lang/String;)V
HSPLsun/util/locale/StringTokenIterator;->current()Ljava/lang/String;
HSPLsun/util/locale/StringTokenIterator;->currentEnd()I
+HPLsun/util/locale/StringTokenIterator;->currentStart()I
HSPLsun/util/locale/StringTokenIterator;->hasNext()Z
HSPLsun/util/locale/StringTokenIterator;->isDone()Z
HSPLsun/util/locale/StringTokenIterator;->next()Ljava/lang/String;
HSPLsun/util/locale/StringTokenIterator;->nextDelimiter(I)I
HSPLsun/util/locale/StringTokenIterator;->setStart(I)Lsun/util/locale/StringTokenIterator;
+HSPLsun/util/locale/UnicodeLocaleExtension;-><clinit>()V
+HSPLsun/util/locale/UnicodeLocaleExtension;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLsun/util/logging/LoggingSupport$2;-><init>()V
+HSPLsun/util/logging/LoggingSupport$2;->run()Ljava/lang/Object;
+HSPLsun/util/logging/LoggingSupport$2;->run()Ljava/lang/String;
HSPLsun/util/logging/LoggingSupport;->ensureAvailable()V
HSPLsun/util/logging/LoggingSupport;->getLogger(Ljava/lang/String;)Ljava/lang/Object;
+HSPLsun/util/logging/LoggingSupport;->getSimpleFormat()Ljava/lang/String;
+HSPLsun/util/logging/LoggingSupport;->getSimpleFormat(Z)Ljava/lang/String;
HSPLsun/util/logging/LoggingSupport;->parseLevel(Ljava/lang/String;)Ljava/lang/Object;
HSPLsun/util/logging/PlatformLogger$JavaLoggerProxy;-><clinit>()V
HSPLsun/util/logging/PlatformLogger$JavaLoggerProxy;-><init>(Ljava/lang/String;)V
@@ -16182,6 +45270,7 @@ Landroid/animation/ValueAnimator$AnimatorUpdateListener;
Landroid/animation/ValueAnimator;
Landroid/annotation/IntRange;
Landroid/annotation/NonNull;
+Landroid/annotation/SystemApi;
Landroid/apex/ApexInfo$1;
Landroid/apex/ApexInfo;
Landroid/apex/IApexService$Stub$Proxy;
@@ -16341,7 +45430,6 @@ Landroid/app/DialogFragment;
Landroid/app/DirectAction;
Landroid/app/DownloadManager$CursorTranslator;
Landroid/app/DownloadManager$Query;
-Landroid/app/DownloadManager$Request;
Landroid/app/DownloadManager;
Landroid/app/EnterTransitionCoordinator;
Landroid/app/EventLogTags;
@@ -16530,7 +45618,6 @@ Landroid/app/PictureInPictureParams;
Landroid/app/ProcessMemoryState$1;
Landroid/app/ProfilerInfo$1;
Landroid/app/ProfilerInfo;
-Landroid/app/ProgressDialog;
Landroid/app/QueuedWork$QueuedWorkHandler;
Landroid/app/QueuedWork;
Landroid/app/ReceiverRestrictedContext;
@@ -16579,6 +45666,9 @@ Landroid/app/SystemServiceRegistry$107;
Landroid/app/SystemServiceRegistry$108;
Landroid/app/SystemServiceRegistry$109;
Landroid/app/SystemServiceRegistry$10;
+Landroid/app/SystemServiceRegistry$110;
+Landroid/app/SystemServiceRegistry$111;
+Landroid/app/SystemServiceRegistry$112;
Landroid/app/SystemServiceRegistry$11;
Landroid/app/SystemServiceRegistry$12;
Landroid/app/SystemServiceRegistry$13;
@@ -16917,6 +46007,8 @@ Landroid/app/timedetector/ManualTimeSuggestion;
Landroid/app/timedetector/PhoneTimeSuggestion;
Landroid/app/timedetector/TimeDetector;
Landroid/app/timezone/RulesManager;
+Landroid/app/timezonedetector/ITimeZoneDetectorService$Stub;
+Landroid/app/timezonedetector/ITimeZoneDetectorService;
Landroid/app/timezonedetector/TimeZoneDetector;
Landroid/app/trust/IStrongAuthTracker$Stub$Proxy;
Landroid/app/trust/IStrongAuthTracker$Stub;
@@ -17187,6 +46279,7 @@ Landroid/content/ContentProviderProxy;
Landroid/content/ContentProviderResult$1;
Landroid/content/ContentProviderResult;
Landroid/content/ContentResolver$1;
+Landroid/content/ContentResolver$2;
Landroid/content/ContentResolver$CursorWrapperInner;
Landroid/content/ContentResolver$OpenResourceIdResult;
Landroid/content/ContentResolver$ParcelFileDescriptorInner;
@@ -17291,18 +46384,18 @@ Landroid/content/om/IOverlayManager;
Landroid/content/om/OverlayInfo$1;
Landroid/content/om/OverlayInfo;
Landroid/content/om/OverlayManager;
+Landroid/content/om/OverlayableInfo;
Landroid/content/pm/-$$Lambda$PackageParser$0DZRgzfgaIMpCOhJqjw6PUiU5vw;
Landroid/content/pm/-$$Lambda$PackageParser$0aobsT7Zf7WVZCqMZ5z2clAuQf4;
Landroid/content/pm/-$$Lambda$PackageParser$M-9fHqS_eEp1oYkuKJhRHOGUxf8;
Landroid/content/pm/-$$Lambda$T1UQAuePWRRmVQ1KzTyMAktZUPM;
Landroid/content/pm/-$$Lambda$ciir_QAmv6RwJro4I58t77dPnxU;
-Landroid/content/pm/-$$Lambda$jpya2qgMDDEok2GAoKRDqPM5lIE;
+Landroid/content/pm/-$$Lambda$hUJwdX9IqTlLwBds2BUGqVf-FM8;
Landroid/content/pm/-$$Lambda$n3uXeb1v-YRmq_BWTfosEqUUr9g;
Landroid/content/pm/-$$Lambda$zO9HBUVgPeroyDQPLJE-MNMvSqc;
Landroid/content/pm/ActivityInfo$1;
Landroid/content/pm/ActivityInfo$WindowLayout;
Landroid/content/pm/ActivityInfo;
-Landroid/content/pm/AndroidHidlUpdater;
Landroid/content/pm/ApplicationInfo$1;
Landroid/content/pm/ApplicationInfo;
Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;
@@ -17314,6 +46407,7 @@ Landroid/content/pm/ComponentInfo;
Landroid/content/pm/ConfigurationInfo$1;
Landroid/content/pm/ConfigurationInfo;
Landroid/content/pm/CrossProfileApps;
+Landroid/content/pm/DataLoaderManager;
Landroid/content/pm/FallbackCategoryProvider;
Landroid/content/pm/FeatureGroupInfo$1;
Landroid/content/pm/FeatureGroupInfo;
@@ -17388,10 +46482,6 @@ Landroid/content/pm/LauncherApps$ShortcutQuery;
Landroid/content/pm/LauncherApps;
Landroid/content/pm/ModuleInfo$1;
Landroid/content/pm/ModuleInfo;
-Landroid/content/pm/OrgApacheHttpLegacyUpdater;
-Landroid/content/pm/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;
-Landroid/content/pm/PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary;
-Landroid/content/pm/PackageBackwardCompatibility;
Landroid/content/pm/PackageInfo$1;
Landroid/content/pm/PackageInfo;
Landroid/content/pm/PackageInfoLite$1;
@@ -17444,7 +46534,6 @@ Landroid/content/pm/PackageParser$SplitNameComparator;
Landroid/content/pm/PackageParser;
Landroid/content/pm/PackageParserCacheHelper$ReadHelper;
Landroid/content/pm/PackageParserCacheHelper$WriteHelper;
-Landroid/content/pm/PackageSharedLibraryUpdater;
Landroid/content/pm/PackageStats$1;
Landroid/content/pm/PackageStats;
Landroid/content/pm/PackageUserState;
@@ -17485,6 +46574,7 @@ Landroid/content/pm/SigningInfo;
Landroid/content/pm/StringParceledListSlice$1;
Landroid/content/pm/StringParceledListSlice;
Landroid/content/pm/SuspendDialogInfo$1;
+Landroid/content/pm/SuspendDialogInfo$Builder;
Landroid/content/pm/SuspendDialogInfo;
Landroid/content/pm/UserInfo$1;
Landroid/content/pm/UserInfo;
@@ -17503,6 +46593,13 @@ Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy;
Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub;
Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;
Landroid/content/pm/dex/PackageOptimizationInfo;
+Landroid/content/pm/parsing/library/-$$Lambda$WrPVuoVJehE45tfhLfe_8Tcc-Nw;
+Landroid/content/pm/parsing/library/AndroidHidlUpdater;
+Landroid/content/pm/parsing/library/OrgApacheHttpLegacyUpdater;
+Landroid/content/pm/parsing/library/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;
+Landroid/content/pm/parsing/library/PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary;
+Landroid/content/pm/parsing/library/PackageBackwardCompatibility;
+Landroid/content/pm/parsing/library/PackageSharedLibraryUpdater;
Landroid/content/pm/permission/SplitPermissionInfoParcelable$1;
Landroid/content/pm/permission/SplitPermissionInfoParcelable;
Landroid/content/pm/split/DefaultSplitAssetLoader;
@@ -17592,7 +46689,6 @@ Landroid/database/CursorWrapper;
Landroid/database/DataSetObservable;
Landroid/database/DataSetObserver;
Landroid/database/DatabaseErrorHandler;
-Landroid/database/DatabaseUtils$InsertHelper;
Landroid/database/DatabaseUtils;
Landroid/database/DefaultDatabaseErrorHandler;
Landroid/database/IBulkCursor;
@@ -17608,7 +46704,9 @@ Landroid/database/SQLException;
Landroid/database/StaleDataException;
Landroid/database/sqlite/-$$Lambda$RBWjWVyGrOTsQrLCYzJ_G8Uk25Q;
Landroid/database/sqlite/DatabaseObjectNotClosedException;
+Landroid/database/sqlite/SQLiteAccessPermException;
Landroid/database/sqlite/SQLiteBindOrColumnIndexOutOfRangeException;
+Landroid/database/sqlite/SQLiteBlobTooBigException;
Landroid/database/sqlite/SQLiteCantOpenDatabaseException;
Landroid/database/sqlite/SQLiteClosable;
Landroid/database/sqlite/SQLiteCompatibilityWalFlags;
@@ -17645,6 +46743,7 @@ Landroid/database/sqlite/SQLiteException;
Landroid/database/sqlite/SQLiteFullException;
Landroid/database/sqlite/SQLiteGlobal;
Landroid/database/sqlite/SQLiteOpenHelper;
+Landroid/database/sqlite/SQLiteOutOfMemoryException;
Landroid/database/sqlite/SQLiteProgram;
Landroid/database/sqlite/SQLiteQuery;
Landroid/database/sqlite/SQLiteQueryBuilder;
@@ -17652,8 +46751,10 @@ Landroid/database/sqlite/SQLiteSession$Transaction;
Landroid/database/sqlite/SQLiteSession;
Landroid/database/sqlite/SQLiteStatement;
Landroid/database/sqlite/SQLiteStatementInfo;
+Landroid/database/sqlite/SQLiteTableLockedException;
Landroid/database/sqlite/SQLiteTransactionListener;
Landroid/database/sqlite/SqliteWrapper;
+Landroid/ddm/DdmHandleAppName$Names;
Landroid/ddm/DdmHandleAppName;
Landroid/ddm/DdmHandleExit;
Landroid/ddm/DdmHandleHeap;
@@ -18198,6 +47299,8 @@ Landroid/hardware/display/WifiDisplaySessionInfo;
Landroid/hardware/display/WifiDisplayStatus$1;
Landroid/hardware/display/WifiDisplayStatus;
Landroid/hardware/face/FaceManager;
+Landroid/hardware/face/IFaceService$Stub;
+Landroid/hardware/face/IFaceService;
Landroid/hardware/fingerprint/Fingerprint$1;
Landroid/hardware/fingerprint/Fingerprint;
Landroid/hardware/fingerprint/FingerprintManager$1;
@@ -18441,35 +47544,11 @@ Landroid/hardware/radio/V1_4/IRadioIndication$Stub;
Landroid/hardware/radio/V1_4/IRadioIndication;
Landroid/hardware/radio/V1_4/IRadioResponse$Stub;
Landroid/hardware/radio/V1_4/IRadioResponse;
-Landroid/hardware/radio/V1_4/LteVopsInfo;
Landroid/hardware/radio/V1_4/NetworkScanResult;
Landroid/hardware/radio/V1_4/NrIndicators;
Landroid/hardware/radio/V1_4/PhysicalChannelConfig;
Landroid/hardware/radio/V1_4/SetupDataCallResult;
Landroid/hardware/radio/V1_4/SignalStrength;
-Landroid/hardware/radio/V1_5/IRadio;
-Landroid/hardware/radio/config/V1_0/IRadioConfig;
-Landroid/hardware/radio/config/V1_0/IRadioConfigIndication;
-Landroid/hardware/radio/config/V1_0/IRadioConfigResponse;
-Landroid/hardware/radio/config/V1_0/SimSlotStatus;
-Landroid/hardware/radio/config/V1_1/IRadioConfig$Proxy;
-Landroid/hardware/radio/config/V1_1/IRadioConfig;
-Landroid/hardware/radio/config/V1_1/IRadioConfigIndication;
-Landroid/hardware/radio/config/V1_1/IRadioConfigResponse;
-Landroid/hardware/radio/config/V1_1/ModemInfo;
-Landroid/hardware/radio/config/V1_1/ModemsConfig;
-Landroid/hardware/radio/config/V1_1/PhoneCapability;
-Landroid/hardware/radio/config/V1_2/IRadioConfigIndication$Stub;
-Landroid/hardware/radio/config/V1_2/IRadioConfigIndication;
-Landroid/hardware/radio/config/V1_2/IRadioConfigResponse$Stub;
-Landroid/hardware/radio/config/V1_2/IRadioConfigResponse;
-Landroid/hardware/radio/config/V1_2/SimSlotStatus;
-Landroid/hardware/radio/deprecated/V1_0/IOemHook$Proxy;
-Landroid/hardware/radio/deprecated/V1_0/IOemHook;
-Landroid/hardware/radio/deprecated/V1_0/IOemHookIndication$Stub;
-Landroid/hardware/radio/deprecated/V1_0/IOemHookIndication;
-Landroid/hardware/radio/deprecated/V1_0/IOemHookResponse$Stub;
-Landroid/hardware/radio/deprecated/V1_0/IOemHookResponse;
Landroid/hardware/sidekick/SidekickInternal;
Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;
Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;
@@ -18488,6 +47567,8 @@ Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra$1;
Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel$1;
Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
+Landroid/hardware/soundtrigger/SoundTrigger$ModelParamRange$1;
+Landroid/hardware/soundtrigger/SoundTrigger$ModelParamRange;
Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties$1;
Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig$1;
@@ -18530,6 +47611,7 @@ Landroid/hardware/usb/gadget/V1_0/IUsbGadget;
Landroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback$Stub;
Landroid/hardware/usb/gadget/V1_0/IUsbGadgetCallback;
Landroid/inputmethodservice/-$$Lambda$InputMethodService$8T9TmAUIN7vW9eU6kTg8309_d4E;
+Landroid/inputmethodservice/-$$Lambda$InputMethodService$DHO7VgzZzl-Gpo6FN3F8arQtA4A;
Landroid/inputmethodservice/-$$Lambda$InputMethodService$wp8DeVGx_WDOPw4F6an7QbwVxf0;
Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl;
Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;
@@ -18547,7 +47629,6 @@ Landroid/inputmethodservice/InputMethodService;
Landroid/inputmethodservice/SoftInputWindow;
Landroid/internal/hidl/base/V1_0/DebugInfo;
Landroid/internal/hidl/base/V1_0/IBase;
-Landroid/internal/telephony/sysprop/TelephonyProperties;
Landroid/location/-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo;
Landroid/location/AbstractListenerManager;
Landroid/location/Address$1;
@@ -18632,6 +47713,8 @@ Landroid/media/-$$Lambda$MediaCodecInfo$VideoCapabilities$DpgwEn-gVFZT9EtP3qcxpi
Landroid/media/AudioAttributes$1;
Landroid/media/AudioAttributes$Builder;
Landroid/media/AudioAttributes;
+Landroid/media/AudioDeviceAddress$1;
+Landroid/media/AudioDeviceAddress;
Landroid/media/AudioDeviceCallback;
Landroid/media/AudioDeviceInfo;
Landroid/media/AudioDevicePort;
@@ -18783,6 +47866,7 @@ Landroid/media/MediaCodecInfo$VideoCapabilities;
Landroid/media/MediaCodecInfo;
Landroid/media/MediaCodecList;
Landroid/media/MediaCrypto;
+Landroid/media/MediaCryptoException;
Landroid/media/MediaDescrambler;
Landroid/media/MediaDescription$1;
Landroid/media/MediaDescription;
@@ -18790,6 +47874,7 @@ Landroid/media/MediaDrm$Certificate;
Landroid/media/MediaDrm$KeyRequest;
Landroid/media/MediaDrm$KeyStatus;
Landroid/media/MediaDrm$MediaDrmStateException;
+Landroid/media/MediaDrm$OnEventListener;
Landroid/media/MediaDrm$ProvisionRequest;
Landroid/media/MediaDrm$SessionException;
Landroid/media/MediaDrm;
@@ -18895,6 +47980,7 @@ Landroid/media/SubtitleController;
Landroid/media/SubtitleData;
Landroid/media/SubtitleTrack;
Landroid/media/SyncParams;
+Landroid/media/ThumbnailUtils;
Landroid/media/TimedMetaData;
Landroid/media/TimedText;
Landroid/media/ToneGenerator;
@@ -19286,7 +48372,6 @@ Landroid/net/shared/InetAddressUtils;
Landroid/net/sip/ISipService$Stub$Proxy;
Landroid/net/sip/ISipService$Stub;
Landroid/net/sip/ISipService;
-Landroid/net/sip/SipException;
Landroid/net/sip/SipManager;
Landroid/net/util/-$$Lambda$MultinetworkPolicyTracker$8YMQ0fPTKk7Fw-_gJjln0JT-g8E;
Landroid/net/util/MultinetworkPolicyTracker$1;
@@ -19351,6 +48436,7 @@ Landroid/net/wifi/SupplicantState$2;
Landroid/net/wifi/SupplicantState;
Landroid/net/wifi/SynchronousExecutor;
Landroid/net/wifi/WifiClient;
+Landroid/net/wifi/WifiCondManager;
Landroid/net/wifi/WifiConfiguration$1;
Landroid/net/wifi/WifiConfiguration$KeyMgmt;
Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus$DisableReasonInfo;
@@ -19522,7 +48608,6 @@ Landroid/os/-$$Lambda$StrictMode$UFC_nI1x6u8ZwMQmA7bmj9NHZz4;
Landroid/os/-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ;
Landroid/os/-$$Lambda$StrictMode$yZJXPvy2veRNA-xL_SWdXzX_OLg;
Landroid/os/-$$Lambda$ThreadLocalWorkSource$IP9vRFCDG5YwbWbXAEGHH52B9IE;
-Landroid/os/-$$Lambda$Trace$2zLZ-Lc2kAXsVjw_nLYeNhqmGq0;
Landroid/os/-$$Lambda$q1UvBdLgHRZVzc68BxdksTmbuCw;
Landroid/os/AsyncResult;
Landroid/os/AsyncTask$1;
@@ -19694,10 +48779,8 @@ Landroid/os/IServiceManager$Stub;
Landroid/os/IServiceManager;
Landroid/os/IStatsCompanionService$Stub;
Landroid/os/IStatsCompanionService;
-Landroid/os/IStatsManager$Stub$Proxy;
-Landroid/os/IStatsManager$Stub;
-Landroid/os/IStatsManager;
-Landroid/os/IStatsPullerCallback;
+Landroid/os/IStatsd$Stub;
+Landroid/os/IStatsd;
Landroid/os/IStoraged$Stub$Proxy;
Landroid/os/IStoraged$Stub;
Landroid/os/IStoraged;
@@ -19756,7 +48839,6 @@ Landroid/os/ParcelFileDescriptor$1;
Landroid/os/ParcelFileDescriptor$2;
Landroid/os/ParcelFileDescriptor$AutoCloseInputStream;
Landroid/os/ParcelFileDescriptor$AutoCloseOutputStream;
-Landroid/os/ParcelFileDescriptor$OnCloseListener;
Landroid/os/ParcelFileDescriptor;
Landroid/os/ParcelFormatException;
Landroid/os/ParcelUuid$1;
@@ -19857,6 +48939,8 @@ Landroid/os/SystemService$State;
Landroid/os/SystemService;
Landroid/os/SystemUpdateManager;
Landroid/os/SystemVibrator;
+Landroid/os/TelephonyServiceManager$ServiceRegisterer;
+Landroid/os/TelephonyServiceManager;
Landroid/os/Temperature$1;
Landroid/os/Temperature;
Landroid/os/ThreadLocalWorkSource;
@@ -20014,7 +49098,6 @@ Landroid/provider/-$$Lambda$FontsContract$rqfIZKvP1frnI9vP1hVA8jQN_RE;
Landroid/provider/-$$Lambda$Settings$NameValueCache$cLX_nUBDGp9SYpFxrABk-2ceeMI;
Landroid/provider/-$$Lambda$Settings$NameValueCache$qSyMM6rUAHCa-5rsP-atfAqR3sA;
Landroid/provider/BaseColumns;
-Landroid/provider/BlockedNumberContract$BlockedNumbers;
Landroid/provider/BlockedNumberContract$SystemContract;
Landroid/provider/BlockedNumberContract;
Landroid/provider/CalendarContract$CalendarColumns;
@@ -20026,6 +49109,8 @@ Landroid/provider/CalendarContract$Instances;
Landroid/provider/CalendarContract$SyncColumns;
Landroid/provider/CalendarContract;
Landroid/provider/CallLog$Calls;
+Landroid/provider/CallLog;
+Landroid/provider/ContactsContract$BaseSyncColumns;
Landroid/provider/ContactsContract$CommonDataKinds$BaseTypes;
Landroid/provider/ContactsContract$CommonDataKinds$Callable;
Landroid/provider/ContactsContract$CommonDataKinds$CommonColumns;
@@ -20041,17 +49126,21 @@ Landroid/provider/ContactsContract$Data;
Landroid/provider/ContactsContract$DataColumns;
Landroid/provider/ContactsContract$DataColumnsWithJoins;
Landroid/provider/ContactsContract$DataUsageStatColumns;
+Landroid/provider/ContactsContract$DisplayPhoto;
Landroid/provider/ContactsContract$PhoneLookup;
Landroid/provider/ContactsContract$PhoneLookupColumns;
Landroid/provider/ContactsContract$Profile;
+Landroid/provider/ContactsContract$RawContacts;
Landroid/provider/ContactsContract$RawContactsColumns;
+Landroid/provider/ContactsContract$RawContactsEntity;
Landroid/provider/ContactsContract$StatusColumns;
+Landroid/provider/ContactsContract$SyncColumns;
Landroid/provider/ContactsContract;
Landroid/provider/DeviceConfig$1;
Landroid/provider/DeviceConfig$OnPropertiesChangedListener;
+Landroid/provider/DeviceConfig$Properties$Builder;
Landroid/provider/DeviceConfig$Properties;
Landroid/provider/DeviceConfig;
-Landroid/provider/DocumentsContract$Path;
Landroid/provider/DocumentsContract;
Landroid/provider/DocumentsProvider;
Landroid/provider/Downloads$Impl;
@@ -20063,13 +49152,18 @@ Landroid/provider/FontsContract$FontInfo;
Landroid/provider/FontsContract;
Landroid/provider/MediaStore$Audio$AudioColumns;
Landroid/provider/MediaStore$Audio$Media;
+Landroid/provider/MediaStore$Audio$Playlists;
+Landroid/provider/MediaStore$Audio$PlaylistsColumns;
Landroid/provider/MediaStore$Files;
Landroid/provider/MediaStore$Images$ImageColumns;
Landroid/provider/MediaStore$Images$Media;
+Landroid/provider/MediaStore$Images$Thumbnails;
Landroid/provider/MediaStore$MediaColumns;
Landroid/provider/MediaStore$Video$Media;
+Landroid/provider/MediaStore$Video$Thumbnails;
Landroid/provider/MediaStore$Video$VideoColumns;
Landroid/provider/MediaStore;
+Landroid/provider/OpenableColumns;
Landroid/provider/SearchIndexableData;
Landroid/provider/SearchIndexableResource;
Landroid/provider/SearchIndexablesContract;
@@ -20090,14 +49184,18 @@ Landroid/provider/Telephony$CarrierColumns;
Landroid/provider/Telephony$CarrierId$All;
Landroid/provider/Telephony$CarrierId;
Landroid/provider/Telephony$Carriers;
+Landroid/provider/Telephony$Mms$Inbox;
+Landroid/provider/Telephony$Mms$Sent;
Landroid/provider/Telephony$Mms;
+Landroid/provider/Telephony$MmsSms;
Landroid/provider/Telephony$ServiceStateTable;
+Landroid/provider/Telephony$SimInfo;
Landroid/provider/Telephony$Sms;
Landroid/provider/Telephony$TextBasedSmsColumns;
Landroid/provider/Telephony$Threads;
Landroid/provider/Telephony$ThreadsColumns;
Landroid/provider/UserDictionary$Words;
-Landroid/renderscript/RenderScript;
+Landroid/provider/VoicemailContract$Voicemails;
Landroid/renderscript/RenderScriptCacheDir;
Landroid/security/AttestedKeyPair;
Landroid/security/Credentials;
@@ -20171,15 +49269,10 @@ Landroid/security/keystore/IKeystoreService$Stub$Proxy;
Landroid/security/keystore/IKeystoreService$Stub;
Landroid/security/keystore/IKeystoreService;
Landroid/security/keystore/KeyAttestationException;
-Landroid/security/keystore/KeyGenParameterSpec$Builder;
Landroid/security/keystore/KeyGenParameterSpec;
Landroid/security/keystore/KeyPermanentlyInvalidatedException;
-Landroid/security/keystore/KeyProperties$BlockMode;
Landroid/security/keystore/KeyProperties$Digest;
-Landroid/security/keystore/KeyProperties$EncryptionPadding;
Landroid/security/keystore/KeyProperties$KeyAlgorithm;
-Landroid/security/keystore/KeyProperties$Purpose;
-Landroid/security/keystore/KeyProperties;
Landroid/security/keystore/KeyStoreConnectException;
Landroid/security/keystore/KeyStoreCryptoOperation;
Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;
@@ -20271,8 +49364,6 @@ Landroid/service/autofill/augmented/IFillCallback$Stub;
Landroid/service/autofill/augmented/IFillCallback;
Landroid/service/carrier/CarrierIdentifier$1;
Landroid/service/carrier/CarrierIdentifier;
-Landroid/service/carrier/CarrierMessagingServiceWrapper$CarrierMessagingCallbackWrapper;
-Landroid/service/carrier/CarrierMessagingServiceWrapper;
Landroid/service/carrier/ICarrierService$Stub$Proxy;
Landroid/service/carrier/ICarrierService$Stub;
Landroid/service/carrier/ICarrierService;
@@ -20298,40 +49389,17 @@ Landroid/service/euicc/EuiccProfileInfo$1;
Landroid/service/euicc/EuiccProfileInfo;
Landroid/service/euicc/GetEuiccProfileInfoListResult$1;
Landroid/service/euicc/GetEuiccProfileInfoListResult;
-Landroid/service/euicc/IDeleteSubscriptionCallback$Stub;
-Landroid/service/euicc/IDeleteSubscriptionCallback;
-Landroid/service/euicc/IDownloadSubscriptionCallback$Stub;
-Landroid/service/euicc/IDownloadSubscriptionCallback;
-Landroid/service/euicc/IEraseSubscriptionsCallback$Stub;
-Landroid/service/euicc/IEraseSubscriptionsCallback;
Landroid/service/euicc/IEuiccService$Stub$Proxy;
Landroid/service/euicc/IEuiccService$Stub;
Landroid/service/euicc/IEuiccService;
-Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback$Stub;
-Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback;
-Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback$Stub;
-Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback;
-Landroid/service/euicc/IGetEidCallback$Stub;
-Landroid/service/euicc/IGetEidCallback;
-Landroid/service/euicc/IGetEuiccInfoCallback$Stub;
-Landroid/service/euicc/IGetEuiccInfoCallback;
Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub;
Landroid/service/euicc/IGetEuiccProfileInfoListCallback;
-Landroid/service/euicc/IGetOtaStatusCallback$Stub;
-Landroid/service/euicc/IGetOtaStatusCallback;
-Landroid/service/euicc/IOtaStatusChangedCallback$Stub;
-Landroid/service/euicc/IOtaStatusChangedCallback;
-Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub;
-Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback;
-Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub;
-Landroid/service/euicc/ISwitchToSubscriptionCallback;
-Landroid/service/euicc/IUpdateSubscriptionNicknameCallback$Stub;
-Landroid/service/euicc/IUpdateSubscriptionNicknameCallback;
Landroid/service/gatekeeper/GateKeeperResponse$1;
Landroid/service/gatekeeper/GateKeeperResponse;
Landroid/service/gatekeeper/IGateKeeperService$Stub$Proxy;
Landroid/service/gatekeeper/IGateKeeperService$Stub;
Landroid/service/gatekeeper/IGateKeeperService;
+Landroid/service/incremental/IncrementalDataLoaderService;
Landroid/service/media/IMediaBrowserService$Stub$Proxy;
Landroid/service/media/IMediaBrowserService$Stub;
Landroid/service/media/IMediaBrowserService;
@@ -20401,7 +49469,6 @@ Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;
Landroid/service/persistentdata/IPersistentDataBlockService$Stub;
Landroid/service/persistentdata/IPersistentDataBlockService;
Landroid/service/persistentdata/PersistentDataBlockManager;
-Landroid/service/textclassifier/-$$Lambda$TextClassifierService$Fzy8p7cXXCBABuhNkqvLY5FuWrA;
Landroid/service/textclassifier/ITextClassifierCallback$Stub$Proxy;
Landroid/service/textclassifier/ITextClassifierCallback$Stub;
Landroid/service/textclassifier/ITextClassifierCallback;
@@ -20468,6 +49535,7 @@ Landroid/sysprop/-$$Lambda$TelephonyProperties$kCQNtMqtfi6MMlFLqtIufNXwOS8;
Landroid/sysprop/-$$Lambda$TelephonyProperties$kemQbl44ndTqXdQVvnYppJuQboQ;
Landroid/sysprop/-$$Lambda$TelephonyProperties$rKoNB08X7R8OCPq-VDCWDOm3lDM;
Landroid/sysprop/AdbProperties;
+Landroid/sysprop/ContactsProperties;
Landroid/sysprop/CryptoProperties$state_values;
Landroid/sysprop/CryptoProperties$type_values;
Landroid/sysprop/CryptoProperties;
@@ -20742,6 +49810,7 @@ Landroid/telephony/TelephonyManager$7;
Landroid/telephony/TelephonyManager$MultiSimVariants;
Landroid/telephony/TelephonyManager;
Landroid/telephony/TelephonyRegistryManager$1;
+Landroid/telephony/TelephonyRegistryManager$2;
Landroid/telephony/TelephonyRegistryManager;
Landroid/telephony/TelephonyScanManager$NetworkScanCallback;
Landroid/telephony/UiccAccessRule$1;
@@ -20779,15 +49848,17 @@ Landroid/telephony/data/IDataService$Stub;
Landroid/telephony/data/IDataService;
Landroid/telephony/data/IDataServiceCallback$Stub;
Landroid/telephony/data/IDataServiceCallback;
+Landroid/telephony/data/IQualifiedNetworksService$Stub;
+Landroid/telephony/data/IQualifiedNetworksService;
+Landroid/telephony/data/IQualifiedNetworksServiceCallback$Stub;
+Landroid/telephony/data/IQualifiedNetworksServiceCallback;
Landroid/telephony/emergency/EmergencyNumber$1;
Landroid/telephony/emergency/EmergencyNumber;
Landroid/telephony/euicc/EuiccCardManager;
Landroid/telephony/euicc/EuiccManager;
Landroid/telephony/gsm/GsmCellLocation;
Landroid/telephony/ims/-$$Lambda$ImsMmTelManager$CapabilityCallback$CapabilityBinder$4YNlUy9HsD02E7Sbv2VeVtbao08;
-Landroid/telephony/ims/-$$Lambda$ImsMmTelManager$CapabilityCallback$CapabilityBinder$gK2iK9ZQ3GDeuMTfhRd7yjiYlO8;
Landroid/telephony/ims/-$$Lambda$ProvisioningManager$Callback$CallbackBinder$R_8jXQuOM7aV7dIwYBzcWwV-YpM;
-Landroid/telephony/ims/-$$Lambda$ProvisioningManager$Callback$CallbackBinder$rMBayJlNIko46WAqcRq_ggxbfrY;
Landroid/telephony/ims/ImsCallForwardInfo$1;
Landroid/telephony/ims/ImsCallForwardInfo;
Landroid/telephony/ims/ImsCallProfile$1;
@@ -20795,6 +49866,7 @@ Landroid/telephony/ims/ImsCallProfile;
Landroid/telephony/ims/ImsException;
Landroid/telephony/ims/ImsExternalCallState$1;
Landroid/telephony/ims/ImsExternalCallState;
+Landroid/telephony/ims/ImsManager;
Landroid/telephony/ims/ImsMmTelManager$CapabilityCallback$CapabilityBinder;
Landroid/telephony/ims/ImsMmTelManager$CapabilityCallback;
Landroid/telephony/ims/ImsMmTelManager$RegistrationCallback;
@@ -20842,8 +49914,6 @@ Landroid/telephony/ims/aidl/IImsServiceControllerListener;
Landroid/telephony/ims/aidl/IImsSmsListener$Stub$Proxy;
Landroid/telephony/ims/aidl/IImsSmsListener$Stub;
Landroid/telephony/ims/aidl/IImsSmsListener;
-Landroid/telephony/ims/aidl/IRcsMessage$Stub;
-Landroid/telephony/ims/aidl/IRcsMessage;
Landroid/telephony/ims/feature/-$$Lambda$ImsFeature$9bLETU1BeS-dFzQnbBBs3kwaz-8;
Landroid/telephony/ims/feature/-$$Lambda$ImsFeature$rPSMsRhoup9jfT6nt1MV2qhomrM;
Landroid/telephony/ims/feature/CapabilityChangeRequest$1;
@@ -21237,6 +50307,7 @@ Landroid/util/StatsLog;
Landroid/util/StatsLogInternal;
Landroid/util/StringBuilderPrinter;
Landroid/util/SuperNotCalledException;
+Landroid/util/TimeFormatException;
Landroid/util/TimeUtils;
Landroid/util/TimedRemoteCaller;
Landroid/util/TimestampedValue$1;
@@ -21708,6 +50779,7 @@ Landroid/view/WindowContentFrameStats$1;
Landroid/view/WindowContentFrameStats;
Landroid/view/WindowId$1;
Landroid/view/WindowInsets$Builder;
+Landroid/view/WindowInsets$Side;
Landroid/view/WindowInsets$Type;
Landroid/view/WindowInsets;
Landroid/view/WindowInsetsController;
@@ -21878,9 +50950,7 @@ Landroid/view/textclassifier/-$$Lambda$EntityConfidence$YPh8hwgSYYK8OyQ1kFlQngc7
Landroid/view/textclassifier/-$$Lambda$L_UQMPjXwBN0ch4zL2dD82nf9RI;
Landroid/view/textclassifier/-$$Lambda$NxwbyZSxofZ4Z5SQhfXmtLQ1nxk;
Landroid/view/textclassifier/-$$Lambda$OGSS2qx6njxlnp0dnKb4lA3jnw8;
-Landroid/view/textclassifier/-$$Lambda$TextClassificationManager$SIydN2POphTO3AmPTLEMmXPLSKY;
-Landroid/view/textclassifier/-$$Lambda$TextClassificationManager$VwZ4EV_1i6FbjO7TtyaAnFL3oe0;
-Landroid/view/textclassifier/-$$Lambda$TextClassificationManager$oweIEhDWxy3_0kZSXp3oRbSuNW4;
+Landroid/view/textclassifier/-$$Lambda$TextClassificationManager$JIaezIJbMig_-kVzN6oArzkTsJE;
Landroid/view/textclassifier/-$$Lambda$TextClassifierImpl$RRbXefHgcUymI9-P95ArUyMvfbw;
Landroid/view/textclassifier/-$$Lambda$TextClassifierImpl$ftq-sQqJYwUdrdbbr9jz3p4AWos;
Landroid/view/textclassifier/-$$Lambda$TextClassifierImpl$iSt_Guet-O6Vtdk0MA4z-Z4lzaM;
@@ -21890,7 +50960,6 @@ Landroid/view/textclassifier/ActionsModelParamsSupplier$ActionsModelParams;
Landroid/view/textclassifier/ActionsModelParamsSupplier;
Landroid/view/textclassifier/ActionsSuggestionsHelper$PersonEncoder;
Landroid/view/textclassifier/ActionsSuggestionsHelper;
-Landroid/view/textclassifier/ConfigParser;
Landroid/view/textclassifier/ConversationAction$1;
Landroid/view/textclassifier/ConversationAction$Builder;
Landroid/view/textclassifier/ConversationAction;
@@ -22008,6 +51077,7 @@ Landroid/webkit/WebIconDatabase;
Landroid/webkit/WebMessage;
Landroid/webkit/WebMessagePort;
Landroid/webkit/WebResourceRequest;
+Landroid/webkit/WebSettings$PluginState;
Landroid/webkit/WebSettings;
Landroid/webkit/WebStorage;
Landroid/webkit/WebSyncManager;
@@ -22143,6 +51213,7 @@ Landroid/widget/Editor$TextRenderNode;
Landroid/widget/Editor$TextViewPositionListener;
Landroid/widget/Editor$UndoInputFilter;
Landroid/widget/Editor;
+Landroid/widget/EditorTouchState;
Landroid/widget/FastScroller$1;
Landroid/widget/FastScroller$2;
Landroid/widget/FastScroller$3;
@@ -22373,45 +51444,11 @@ Lcom/android/i18n/phonenumbers/internal/RegexBasedMatcher;
Lcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache$1;
Lcom/android/i18n/phonenumbers/internal/RegexCache$LRUCache;
Lcom/android/i18n/phonenumbers/internal/RegexCache;
-Lcom/android/ims/-$$Lambda$ImsManager$CwzXIbVJZNvgdV2t7LH2gUKL7AA;
-Lcom/android/ims/-$$Lambda$ImsManager$D1JuJ3ba2jMHWDKlSpm03meBR1c;
-Lcom/android/ims/-$$Lambda$ImsManager$LiW49wt0wLMYHjgtAwL8NLIATfs;
-Lcom/android/ims/-$$Lambda$ImsManager$YhRaDrc3t9_7beNiU5gQcqZilOw;
-Lcom/android/ims/-$$Lambda$szO0o3matefQqo-6NB-dzsr9eCw;
-Lcom/android/ims/FeatureConnection$IFeatureUpdate;
-Lcom/android/ims/FeatureConnection;
-Lcom/android/ims/FeatureConnector$Listener;
-Lcom/android/ims/FeatureConnector;
-Lcom/android/ims/HandlerExecutor;
-Lcom/android/ims/IFeatureConnector;
-Lcom/android/ims/ImsCall$Listener;
-Lcom/android/ims/ImsCall;
Lcom/android/ims/ImsConfig;
Lcom/android/ims/ImsConfigListener$Stub;
Lcom/android/ims/ImsConfigListener;
-Lcom/android/ims/ImsEcbm$ImsEcbmListenerProxy;
-Lcom/android/ims/ImsEcbm;
-Lcom/android/ims/ImsEcbmStateListener;
Lcom/android/ims/ImsException;
-Lcom/android/ims/ImsExternalCallStateListener;
-Lcom/android/ims/ImsManager$2;
-Lcom/android/ims/ImsManager$3;
-Lcom/android/ims/ImsManager$ExecutorFactory;
-Lcom/android/ims/ImsManager$ImsExecutorFactory;
-Lcom/android/ims/ImsManager;
-Lcom/android/ims/ImsMultiEndpoint$ImsExternalCallStateListenerProxy;
-Lcom/android/ims/ImsMultiEndpoint;
-Lcom/android/ims/ImsUt$IImsUtListenerProxy;
-Lcom/android/ims/ImsUt;
Lcom/android/ims/ImsUtInterface;
-Lcom/android/ims/MmTelFeatureConnection$CallbackAdapterManager$1;
-Lcom/android/ims/MmTelFeatureConnection$CallbackAdapterManager;
-Lcom/android/ims/MmTelFeatureConnection$CapabilityCallbackManager;
-Lcom/android/ims/MmTelFeatureConnection$ImsRegistrationCallbackAdapter;
-Lcom/android/ims/MmTelFeatureConnection$ProvisioningCallbackManager;
-Lcom/android/ims/MmTelFeatureConnection;
-Lcom/android/ims/Registrant;
-Lcom/android/ims/internal/ICall;
Lcom/android/ims/internal/IImsCallSession;
Lcom/android/ims/internal/IImsEcbm$Stub;
Lcom/android/ims/internal/IImsEcbm;
@@ -22430,7 +51467,6 @@ Lcom/android/ims/internal/IImsUt$Stub;
Lcom/android/ims/internal/IImsUt;
Lcom/android/ims/internal/IImsUtListener$Stub;
Lcom/android/ims/internal/IImsUtListener;
-Lcom/android/ims/internal/ImsVideoCallProviderWrapper$ImsVideoProviderWrapperCallback;
Lcom/android/ims/internal/uce/UceServiceBase$UceServiceBinder;
Lcom/android/ims/internal/uce/UceServiceBase;
Lcom/android/ims/internal/uce/common/CapInfo$1;
@@ -22542,6 +51578,7 @@ Lcom/android/internal/appwidget/IAppWidgetService;
Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;
Lcom/android/internal/backup/IBackupTransport$Stub;
Lcom/android/internal/backup/IBackupTransport;
+Lcom/android/internal/compat/ChangeReporter$ChangeReport;
Lcom/android/internal/compat/ChangeReporter;
Lcom/android/internal/content/NativeLibraryHelper$Handle;
Lcom/android/internal/content/NativeLibraryHelper;
@@ -22858,144 +51895,22 @@ Lcom/android/internal/telecom/IVideoProvider;
Lcom/android/internal/telecom/RemoteServiceCallback$Stub$Proxy;
Lcom/android/internal/telecom/RemoteServiceCallback$Stub;
Lcom/android/internal/telecom/RemoteServiceCallback;
-Lcom/android/internal/telephony/-$$Lambda$MultiSimSettingController$55347QtGjuukX-px3jYZkJd_z3U;
-Lcom/android/internal/telephony/-$$Lambda$MultiSimSettingController$DcLtrTEtdlCd4WOev4Zk79vrSko;
-Lcom/android/internal/telephony/-$$Lambda$MultiSimSettingController$WtGtOenjqxSBoW5BUjT-VlNoSTM;
-Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$1zkPy06BwndFkKrGCUI1ORIPJcI;
-Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$2WGP2Bp11k7_Xwi1N4YefElOUuM;
-Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$2xgrYNleR8FFzFT8hEQx3mDtZ8g;
-Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$AjZFvwh3Ujx5W3fleFNksc6bLf0;
-Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$Ja9yTBcEYPqTRBIP-hL0otixVeE;
-Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$P0j9hvO3e-UE9_1i1QM_ujl8Bpo;
-Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$ZOtVAnuhxrXl2L906I6eTOentP0;
-Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$bWluhZvk2X-dQ0UidKfdpd0kwuw;
-Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$hh4N6_N4-PPm_vWjCdCRvS8--Cw;
-Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$knEK4mNNOqbx_h4hWVcDSbY5kHE;
-Lcom/android/internal/telephony/-$$Lambda$PhoneSubInfoController$rpyQeO7zACcc5v4krwU9_qRMHL8;
-Lcom/android/internal/telephony/-$$Lambda$PhoneSwitcher$WfAxZbJDpCUxBytiUchQ87aGijQ;
-Lcom/android/internal/telephony/-$$Lambda$RIL$803u4JiCud_JSoDndvAhT13ZZqU;
-Lcom/android/internal/telephony/-$$Lambda$RIL$Ir4pOMTf7R0Jtw4O3F7JgMVtXO4;
-Lcom/android/internal/telephony/-$$Lambda$RIL$ZGWeCQ9boMO1_J1_yQ82l_jK-Nc;
-Lcom/android/internal/telephony/-$$Lambda$RIL$zYsQZAc3z9bM5fCaq_J0dn5kjjo;
Lcom/android/internal/telephony/-$$Lambda$RILConstants$ODSbRKyUeaOFMcez-ZudOmaKCBw;
Lcom/android/internal/telephony/-$$Lambda$RILConstants$zIAjDPNpW8a5C22QbMmMwM64vD8;
-Lcom/android/internal/telephony/-$$Lambda$RILRequest$VaC9ddQXT8qxCl7rcNKtUadFQoI;
-Lcom/android/internal/telephony/-$$Lambda$RadioIndication$GND6XxOOm1d_Ro76zEUFjA9OrEA;
-Lcom/android/internal/telephony/-$$Lambda$SubscriptionController$Nt_ojdeqo4C2mbuwymYLvwgOLGo;
-Lcom/android/internal/telephony/-$$Lambda$SubscriptionController$VCQsMNqRHpN3RyoXYzh2YUwA2yc;
-Lcom/android/internal/telephony/-$$Lambda$SubscriptionController$u5xE-urXR6ElZ50305_6guo20Fc;
-Lcom/android/internal/telephony/-$$Lambda$SubscriptionInfoUpdater$DY4i_CG7hrAeejGLeh3hMUZySnw;
-Lcom/android/internal/telephony/-$$Lambda$SubscriptionInfoUpdater$UFyB0ValfLD0rdGDibCjTnGFkeo;
-Lcom/android/internal/telephony/-$$Lambda$SubscriptionInfoUpdater$Y5woGfEDKrozRViLH7WF93qPEno;
-Lcom/android/internal/telephony/-$$Lambda$SubscriptionInfoUpdater$ZTY4uxKw17CHcHQzbBUF7m-dN-E;
-Lcom/android/internal/telephony/-$$Lambda$SubscriptionInfoUpdater$ecTEeMEIjOEa2z5W3wjqiicibbY;
-Lcom/android/internal/telephony/-$$Lambda$SubscriptionInfoUpdater$qyDxq2AWyReUxdc6HttVGQeDD3Y;
-Lcom/android/internal/telephony/-$$Lambda$SubscriptionInfoUpdater$tLUuQ7lYu8EjRd038qzQlDm-CtA;
-Lcom/android/internal/telephony/-$$Lambda$TelephonyComponentFactory$InjectedComponents$09rMKC8001jAR0zFrzzlPx26Xjs;
-Lcom/android/internal/telephony/-$$Lambda$TelephonyComponentFactory$InjectedComponents$DKjB_mCxFOHomOyKLPFU9-9Dywc;
-Lcom/android/internal/telephony/-$$Lambda$TelephonyComponentFactory$InjectedComponents$UYUq9z2WZwxqOLXquU0tTNN9wAs;
-Lcom/android/internal/telephony/-$$Lambda$TelephonyComponentFactory$InjectedComponents$eUdIxJOKoyVP5UmFJtWXBUO93Qk;
-Lcom/android/internal/telephony/-$$Lambda$TelephonyComponentFactory$InjectedComponents$nLdppNQT1Bv7QyIU3LwAwVD2K60;
-Lcom/android/internal/telephony/-$$Lambda$TelephonyPermissions$LxEEC4irBSbjD1lSC4EeVLgFY9I;
-Lcom/android/internal/telephony/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;
-Lcom/android/internal/telephony/-$$Lambda$WWHOcG5P4-jgjzPPgLwm-wN15OM;
-Lcom/android/internal/telephony/ATParseEx;
-Lcom/android/internal/telephony/AppSmsManager;
-Lcom/android/internal/telephony/BaseCommands;
-Lcom/android/internal/telephony/BlockChecker;
-Lcom/android/internal/telephony/Call$SrvccState;
-Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call;
-Lcom/android/internal/telephony/CallForwardInfo;
-Lcom/android/internal/telephony/CallManager$CallManagerHandler;
-Lcom/android/internal/telephony/CallManager;
-Lcom/android/internal/telephony/CallStateException;
-Lcom/android/internal/telephony/CallTracker;
-Lcom/android/internal/telephony/CarrierActionAgent$1;
-Lcom/android/internal/telephony/CarrierActionAgent;
Lcom/android/internal/telephony/CarrierAppUtils;
-Lcom/android/internal/telephony/CarrierInfoManager;
-Lcom/android/internal/telephony/CarrierKeyDownloadManager$1;
-Lcom/android/internal/telephony/CarrierKeyDownloadManager;
-Lcom/android/internal/telephony/CarrierResolver$1;
-Lcom/android/internal/telephony/CarrierResolver$2;
-Lcom/android/internal/telephony/CarrierResolver$CarrierMatchingRule;
-Lcom/android/internal/telephony/CarrierResolver;
-Lcom/android/internal/telephony/CarrierServiceBindHelper$1;
-Lcom/android/internal/telephony/CarrierServiceBindHelper$2;
-Lcom/android/internal/telephony/CarrierServiceBindHelper$AppBinding;
-Lcom/android/internal/telephony/CarrierServiceBindHelper$CarrierServiceConnection;
-Lcom/android/internal/telephony/CarrierServiceBindHelper$CarrierServicePackageMonitor;
-Lcom/android/internal/telephony/CarrierServiceBindHelper;
-Lcom/android/internal/telephony/CarrierServiceStateTracker$1;
-Lcom/android/internal/telephony/CarrierServiceStateTracker$2;
-Lcom/android/internal/telephony/CarrierServiceStateTracker$3;
-Lcom/android/internal/telephony/CarrierServiceStateTracker$EmergencyNetworkNotification;
-Lcom/android/internal/telephony/CarrierServiceStateTracker$NotificationType;
-Lcom/android/internal/telephony/CarrierServiceStateTracker$PrefNetworkNotification;
-Lcom/android/internal/telephony/CarrierServiceStateTracker;
-Lcom/android/internal/telephony/CarrierServicesSmsFilter$CallbackTimeoutHandler;
-Lcom/android/internal/telephony/CarrierServicesSmsFilter$CarrierServicesSmsFilterCallbackInterface;
-Lcom/android/internal/telephony/CarrierServicesSmsFilter;
-Lcom/android/internal/telephony/CarrierSignalAgent$1;
-Lcom/android/internal/telephony/CarrierSignalAgent;
-Lcom/android/internal/telephony/CarrierSmsUtils;
-Lcom/android/internal/telephony/CellBroadcastHandler;
-Lcom/android/internal/telephony/CellBroadcastServiceManager;
Lcom/android/internal/telephony/CellNetworkScanResult$1;
Lcom/android/internal/telephony/CellNetworkScanResult;
-Lcom/android/internal/telephony/CellularNetworkService$CellularNetworkServiceProvider$1;
-Lcom/android/internal/telephony/CellularNetworkService$CellularNetworkServiceProvider;
-Lcom/android/internal/telephony/CellularNetworkService;
-Lcom/android/internal/telephony/CellularNetworkValidator$ValidationCallback;
-Lcom/android/internal/telephony/CellularNetworkValidator;
-Lcom/android/internal/telephony/ClientWakelockAccountant;
-Lcom/android/internal/telephony/ClientWakelockTracker;
-Lcom/android/internal/telephony/CommandException$Error;
-Lcom/android/internal/telephony/CommandException;
-Lcom/android/internal/telephony/CommandsInterface;
-Lcom/android/internal/telephony/Connection$Listener;
-Lcom/android/internal/telephony/Connection$PostDialState;
-Lcom/android/internal/telephony/Connection;
Lcom/android/internal/telephony/DctConstants$Activity;
Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DebugService;
-Lcom/android/internal/telephony/DefaultPhoneNotifier$1;
-Lcom/android/internal/telephony/DefaultPhoneNotifier;
-Lcom/android/internal/telephony/DeviceStateMonitor$1;
-Lcom/android/internal/telephony/DeviceStateMonitor$2;
-Lcom/android/internal/telephony/DeviceStateMonitor$3;
-Lcom/android/internal/telephony/DeviceStateMonitor$AccessNetworkThresholds;
-Lcom/android/internal/telephony/DeviceStateMonitor;
-Lcom/android/internal/telephony/DriverCall$State;
-Lcom/android/internal/telephony/DriverCall;
Lcom/android/internal/telephony/EncodeException;
Lcom/android/internal/telephony/ExponentialBackoff$1;
Lcom/android/internal/telephony/ExponentialBackoff$HandlerAdapter;
Lcom/android/internal/telephony/ExponentialBackoff;
-Lcom/android/internal/telephony/GlobalSettingsHelper;
Lcom/android/internal/telephony/GsmAlphabet;
-Lcom/android/internal/telephony/GsmCdmaCall;
-Lcom/android/internal/telephony/GsmCdmaCallTracker$1;
-Lcom/android/internal/telephony/GsmCdmaCallTracker$2;
-Lcom/android/internal/telephony/GsmCdmaCallTracker$3;
-Lcom/android/internal/telephony/GsmCdmaCallTracker;
-Lcom/android/internal/telephony/GsmCdmaConnection;
-Lcom/android/internal/telephony/GsmCdmaPhone$1;
-Lcom/android/internal/telephony/GsmCdmaPhone$2;
-Lcom/android/internal/telephony/GsmCdmaPhone$3;
-Lcom/android/internal/telephony/GsmCdmaPhone$Cfu;
-Lcom/android/internal/telephony/GsmCdmaPhone;
-Lcom/android/internal/telephony/HalVersion;
-Lcom/android/internal/telephony/HardwareConfig;
Lcom/android/internal/telephony/HbpcdUtils;
-Lcom/android/internal/telephony/HexDump;
Lcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;
Lcom/android/internal/telephony/ICarrierConfigLoader$Stub;
Lcom/android/internal/telephony/ICarrierConfigLoader;
-Lcom/android/internal/telephony/IIccPhoneBook$Stub$Proxy;
-Lcom/android/internal/telephony/IIccPhoneBook$Stub;
-Lcom/android/internal/telephony/IIccPhoneBook;
Lcom/android/internal/telephony/IIntegerConsumer$Stub$Proxy;
Lcom/android/internal/telephony/IIntegerConsumer$Stub;
Lcom/android/internal/telephony/IIntegerConsumer;
@@ -23023,7 +51938,6 @@ Lcom/android/internal/telephony/ISms$Stub$Proxy;
Lcom/android/internal/telephony/ISms$Stub;
Lcom/android/internal/telephony/ISms;
Lcom/android/internal/telephony/ISmsImplBase;
-Lcom/android/internal/telephony/IState;
Lcom/android/internal/telephony/ISub$Stub$Proxy;
Lcom/android/internal/telephony/ISub$Stub;
Lcom/android/internal/telephony/ISub;
@@ -23034,591 +51948,36 @@ Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;
Lcom/android/internal/telephony/ITelephonyRegistry$Stub;
Lcom/android/internal/telephony/ITelephonyRegistry;
Lcom/android/internal/telephony/IWapPushManager;
-Lcom/android/internal/telephony/IccCard;
Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccPhoneBookInterfaceManager$1;
-Lcom/android/internal/telephony/IccPhoneBookInterfaceManager$Request;
-Lcom/android/internal/telephony/IccPhoneBookInterfaceManager;
-Lcom/android/internal/telephony/IccProvider;
-Lcom/android/internal/telephony/IccSmsInterfaceManager$1;
-Lcom/android/internal/telephony/IccSmsInterfaceManager$2;
-Lcom/android/internal/telephony/IccSmsInterfaceManager$CdmaBroadcastRangeManager;
-Lcom/android/internal/telephony/IccSmsInterfaceManager$CellBroadcastRangeManager;
-Lcom/android/internal/telephony/IccSmsInterfaceManager;
-Lcom/android/internal/telephony/ImsSmsDispatcher$1;
-Lcom/android/internal/telephony/ImsSmsDispatcher$2;
-Lcom/android/internal/telephony/ImsSmsDispatcher$3;
-Lcom/android/internal/telephony/ImsSmsDispatcher$4;
-Lcom/android/internal/telephony/ImsSmsDispatcher;
-Lcom/android/internal/telephony/InboundSmsHandler$1;
-Lcom/android/internal/telephony/InboundSmsHandler$2;
-Lcom/android/internal/telephony/InboundSmsHandler$CarrierServicesSmsFilterCallback;
-Lcom/android/internal/telephony/InboundSmsHandler$CbTestBroadcastReceiver;
-Lcom/android/internal/telephony/InboundSmsHandler$DefaultState;
-Lcom/android/internal/telephony/InboundSmsHandler$DeliveringState;
-Lcom/android/internal/telephony/InboundSmsHandler$IdleState;
-Lcom/android/internal/telephony/InboundSmsHandler$NewMessageNotificationActionReceiver;
-Lcom/android/internal/telephony/InboundSmsHandler$SmsBroadcastReceiver;
-Lcom/android/internal/telephony/InboundSmsHandler$StartupState;
-Lcom/android/internal/telephony/InboundSmsHandler$WaitingState;
-Lcom/android/internal/telephony/InboundSmsHandler;
-Lcom/android/internal/telephony/InboundSmsTracker;
-Lcom/android/internal/telephony/IntRangeManager$ClientRange;
-Lcom/android/internal/telephony/IntRangeManager$IntRange;
-Lcom/android/internal/telephony/IntRangeManager;
-Lcom/android/internal/telephony/IntentBroadcaster$1;
-Lcom/android/internal/telephony/IntentBroadcaster;
-Lcom/android/internal/telephony/LastCallFailCause;
-Lcom/android/internal/telephony/LinkCapacityEstimate;
-Lcom/android/internal/telephony/LocalLog;
-Lcom/android/internal/telephony/LocaleTracker$1;
-Lcom/android/internal/telephony/LocaleTracker;
-Lcom/android/internal/telephony/MccTable$MccEntry;
-Lcom/android/internal/telephony/MccTable$MccMnc;
-Lcom/android/internal/telephony/MccTable;
-Lcom/android/internal/telephony/MmiCode;
-Lcom/android/internal/telephony/MultiSimSettingController$1;
-Lcom/android/internal/telephony/MultiSimSettingController$UpdateDefaultAction;
-Lcom/android/internal/telephony/MultiSimSettingController;
-Lcom/android/internal/telephony/NetworkRegistrationManager$1;
-Lcom/android/internal/telephony/NetworkRegistrationManager$NetworkRegStateCallback;
-Lcom/android/internal/telephony/NetworkRegistrationManager$NetworkServiceConnection;
-Lcom/android/internal/telephony/NetworkRegistrationManager$RegManagerDeathRecipient;
-Lcom/android/internal/telephony/NetworkRegistrationManager;
-Lcom/android/internal/telephony/NetworkScanRequestTracker$1;
-Lcom/android/internal/telephony/NetworkScanRequestTracker$NetworkScanRequestScheduler;
-Lcom/android/internal/telephony/NetworkScanRequestTracker;
-Lcom/android/internal/telephony/NitzData;
-Lcom/android/internal/telephony/NitzStateMachine$DeviceState;
-Lcom/android/internal/telephony/NitzStateMachine;
-Lcom/android/internal/telephony/NitzStateMachineImpl;
-Lcom/android/internal/telephony/OemHookIndication;
-Lcom/android/internal/telephony/OemHookResponse;
Lcom/android/internal/telephony/OperatorInfo$1;
Lcom/android/internal/telephony/OperatorInfo$State;
Lcom/android/internal/telephony/OperatorInfo;
-Lcom/android/internal/telephony/Phone$1;
-Lcom/android/internal/telephony/Phone;
-Lcom/android/internal/telephony/PhoneConfigurationManager$ConfigManagerHandler;
-Lcom/android/internal/telephony/PhoneConfigurationManager$MockableInterface;
-Lcom/android/internal/telephony/PhoneConfigurationManager;
Lcom/android/internal/telephony/PhoneConstantConversions$1;
Lcom/android/internal/telephony/PhoneConstantConversions;
Lcom/android/internal/telephony/PhoneConstants$DataState;
Lcom/android/internal/telephony/PhoneConstants$State;
-Lcom/android/internal/telephony/PhoneFactory;
-Lcom/android/internal/telephony/PhoneInternalInterface$DataActivityState;
-Lcom/android/internal/telephony/PhoneInternalInterface$DialArgs$Builder;
-Lcom/android/internal/telephony/PhoneInternalInterface$DialArgs;
-Lcom/android/internal/telephony/PhoneInternalInterface$SuppService;
-Lcom/android/internal/telephony/PhoneInternalInterface;
-Lcom/android/internal/telephony/PhoneNotifier;
-Lcom/android/internal/telephony/PhoneStateIntentReceiver;
-Lcom/android/internal/telephony/PhoneSubInfoController$CallPhoneMethodHelper;
-Lcom/android/internal/telephony/PhoneSubInfoController$PermissionCheckHelper;
-Lcom/android/internal/telephony/PhoneSubInfoController;
-Lcom/android/internal/telephony/PhoneSwitcher$1;
-Lcom/android/internal/telephony/PhoneSwitcher$2;
-Lcom/android/internal/telephony/PhoneSwitcher$3;
-Lcom/android/internal/telephony/PhoneSwitcher$DefaultNetworkCallback;
-Lcom/android/internal/telephony/PhoneSwitcher$EmergencyOverrideRequest;
-Lcom/android/internal/telephony/PhoneSwitcher$PhoneState;
-Lcom/android/internal/telephony/PhoneSwitcher$PhoneSwitcherNetworkRequestListener;
-Lcom/android/internal/telephony/PhoneSwitcher;
-Lcom/android/internal/telephony/ProxyController$1;
-Lcom/android/internal/telephony/ProxyController;
-Lcom/android/internal/telephony/RIL$RadioProxyDeathRecipient;
-Lcom/android/internal/telephony/RIL$RilHandler;
-Lcom/android/internal/telephony/RIL;
Lcom/android/internal/telephony/RILConstants;
-Lcom/android/internal/telephony/RILRequest;
-Lcom/android/internal/telephony/RadioBugDetector;
-Lcom/android/internal/telephony/RadioCapability;
-Lcom/android/internal/telephony/RadioConfig$ServiceDeathRecipient;
-Lcom/android/internal/telephony/RadioConfig;
-Lcom/android/internal/telephony/RadioConfigIndication;
-Lcom/android/internal/telephony/RadioConfigResponse;
-Lcom/android/internal/telephony/RadioIndication;
-Lcom/android/internal/telephony/RadioResponse;
-Lcom/android/internal/telephony/RatRatcheter$1;
-Lcom/android/internal/telephony/RatRatcheter;
-Lcom/android/internal/telephony/Registrant;
-Lcom/android/internal/telephony/RegistrantList;
-Lcom/android/internal/telephony/RestrictedState;
-Lcom/android/internal/telephony/RetryManager$RetryRec;
-Lcom/android/internal/telephony/RetryManager;
-Lcom/android/internal/telephony/RilWakelockInfo;
-Lcom/android/internal/telephony/SMSDispatcher$DataSmsSender;
-Lcom/android/internal/telephony/SMSDispatcher$SettingsObserver;
-Lcom/android/internal/telephony/SMSDispatcher$SmsSender;
-Lcom/android/internal/telephony/SMSDispatcher$SmsSenderCallback;
-Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;
-Lcom/android/internal/telephony/SMSDispatcher$TextSmsSender;
-Lcom/android/internal/telephony/SMSDispatcher;
-Lcom/android/internal/telephony/ServiceStateTracker$1;
-Lcom/android/internal/telephony/ServiceStateTracker$SstSubscriptionsChangedListener;
-Lcom/android/internal/telephony/ServiceStateTracker;
-Lcom/android/internal/telephony/SettingsObserver;
-Lcom/android/internal/telephony/SimActivationTracker$1;
-Lcom/android/internal/telephony/SimActivationTracker;
Lcom/android/internal/telephony/SmsAddress;
Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;
Lcom/android/internal/telephony/SmsApplication$SmsPackageMonitor;
Lcom/android/internal/telephony/SmsApplication;
-Lcom/android/internal/telephony/SmsBroadcastUndelivered$1;
-Lcom/android/internal/telephony/SmsBroadcastUndelivered$2;
-Lcom/android/internal/telephony/SmsBroadcastUndelivered$ScanRawTableThread;
-Lcom/android/internal/telephony/SmsBroadcastUndelivered$SmsReferenceKey;
-Lcom/android/internal/telephony/SmsBroadcastUndelivered;
Lcom/android/internal/telephony/SmsConstants$MessageClass;
-Lcom/android/internal/telephony/SmsController;
-Lcom/android/internal/telephony/SmsDispatchersController$1;
-Lcom/android/internal/telephony/SmsDispatchersController;
-Lcom/android/internal/telephony/SmsHeader$ConcatRef;
-Lcom/android/internal/telephony/SmsHeader$PortAddrs;
-Lcom/android/internal/telephony/SmsHeader;
-Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase;
Lcom/android/internal/telephony/SmsMessageBase;
Lcom/android/internal/telephony/SmsNumberUtils;
-Lcom/android/internal/telephony/SmsPermissions;
-Lcom/android/internal/telephony/SmsResponse;
-Lcom/android/internal/telephony/SmsStorageMonitor$1;
-Lcom/android/internal/telephony/SmsStorageMonitor;
-Lcom/android/internal/telephony/SmsUsageMonitor$SettingsObserver;
-Lcom/android/internal/telephony/SmsUsageMonitor$SettingsObserverHandler;
-Lcom/android/internal/telephony/SmsUsageMonitor;
-Lcom/android/internal/telephony/SomeArgs;
-Lcom/android/internal/telephony/State;
-Lcom/android/internal/telephony/StateMachine$LogRecords;
-Lcom/android/internal/telephony/StateMachine$SmHandler;
-Lcom/android/internal/telephony/StateMachine;
-Lcom/android/internal/telephony/SubscriptionController;
-Lcom/android/internal/telephony/SubscriptionInfoUpdater$1;
-Lcom/android/internal/telephony/SubscriptionInfoUpdater$UpdateEmbeddedSubsCallback;
-Lcom/android/internal/telephony/SubscriptionInfoUpdater;
-Lcom/android/internal/telephony/TelephonyCapabilities;
-Lcom/android/internal/telephony/TelephonyComponentFactory$InjectedComponents;
-Lcom/android/internal/telephony/TelephonyComponentFactory;
-Lcom/android/internal/telephony/TelephonyDevController;
Lcom/android/internal/telephony/TelephonyPermissions;
-Lcom/android/internal/telephony/TelephonyTester$1;
-Lcom/android/internal/telephony/TelephonyTester;
-Lcom/android/internal/telephony/TimeServiceHelper;
-Lcom/android/internal/telephony/TimeUtils;
-Lcom/android/internal/telephony/TimeZoneLookupHelper$CountryResult;
-Lcom/android/internal/telephony/TimeZoneLookupHelper$OffsetResult;
-Lcom/android/internal/telephony/TimeZoneLookupHelper;
-Lcom/android/internal/telephony/UUSInfo;
-Lcom/android/internal/telephony/UiccPhoneBookController;
-Lcom/android/internal/telephony/VisualVoicemailSmsFilter$1;
-Lcom/android/internal/telephony/VisualVoicemailSmsFilter$PhoneAccountHandleConverter;
-Lcom/android/internal/telephony/VisualVoicemailSmsFilter;
-Lcom/android/internal/telephony/WakeLockStateMachine$1;
-Lcom/android/internal/telephony/WakeLockStateMachine$DefaultState;
-Lcom/android/internal/telephony/WakeLockStateMachine$IdleState;
-Lcom/android/internal/telephony/WakeLockStateMachine$WaitingState;
-Lcom/android/internal/telephony/WakeLockStateMachine;
-Lcom/android/internal/telephony/WapPushOverSms$1;
-Lcom/android/internal/telephony/WapPushOverSms$BindServiceThread;
-Lcom/android/internal/telephony/WapPushOverSms;
-Lcom/android/internal/telephony/cat/AppInterface$CommandType;
-Lcom/android/internal/telephony/cat/AppInterface;
-Lcom/android/internal/telephony/cat/BIPClientParams;
-Lcom/android/internal/telephony/cat/BerTlv;
-Lcom/android/internal/telephony/cat/CallSetupParams;
-Lcom/android/internal/telephony/cat/CatCmdMessage$1;
-Lcom/android/internal/telephony/cat/CatCmdMessage;
-Lcom/android/internal/telephony/cat/CatException;
-Lcom/android/internal/telephony/cat/CatLog;
-Lcom/android/internal/telephony/cat/CatResponseMessage;
-Lcom/android/internal/telephony/cat/CatService$1;
-Lcom/android/internal/telephony/cat/CatService;
-Lcom/android/internal/telephony/cat/CommandDetails;
-Lcom/android/internal/telephony/cat/CommandParams;
-Lcom/android/internal/telephony/cat/CommandParamsFactory$1;
-Lcom/android/internal/telephony/cat/CommandParamsFactory;
-Lcom/android/internal/telephony/cat/ComprehensionTlv;
-Lcom/android/internal/telephony/cat/ComprehensionTlvTag;
-Lcom/android/internal/telephony/cat/DTTZResponseData;
-Lcom/android/internal/telephony/cat/DisplayTextParams;
-Lcom/android/internal/telephony/cat/IconLoader;
-Lcom/android/internal/telephony/cat/LanguageParams;
-Lcom/android/internal/telephony/cat/LanguageResponseData;
-Lcom/android/internal/telephony/cat/LaunchBrowserParams;
-Lcom/android/internal/telephony/cat/ResponseData;
-Lcom/android/internal/telephony/cat/ResultCode;
-Lcom/android/internal/telephony/cat/ResultException;
-Lcom/android/internal/telephony/cat/RilMessage;
-Lcom/android/internal/telephony/cat/RilMessageDecoder$StateCmdParamsReady;
-Lcom/android/internal/telephony/cat/RilMessageDecoder$StateStart;
-Lcom/android/internal/telephony/cat/RilMessageDecoder;
-Lcom/android/internal/telephony/cat/TextMessage;
-Lcom/android/internal/telephony/cat/ValueObject;
-Lcom/android/internal/telephony/cat/ValueParser;
-Lcom/android/internal/telephony/cdma/-$$Lambda$CdmaInboundSmsHandler$sD3UQ6e4SE9ZbPjDZ9bEr_XRoaA;
-Lcom/android/internal/telephony/cdma/CdmaCallWaitingNotification;
-Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler$CdmaCbTestBroadcastReceiver;
-Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler$CdmaScpTestBroadcastReceiver;
-Lcom/android/internal/telephony/cdma/CdmaInboundSmsHandler;
-Lcom/android/internal/telephony/cdma/CdmaSMSDispatcher;
-Lcom/android/internal/telephony/cdma/CdmaServiceCategoryProgramHandler$1;
-Lcom/android/internal/telephony/cdma/CdmaServiceCategoryProgramHandler;
-Lcom/android/internal/telephony/cdma/CdmaSmsBroadcastConfigInfo;
-Lcom/android/internal/telephony/cdma/CdmaSubscriptionSourceManager;
-Lcom/android/internal/telephony/cdma/EriInfo;
-Lcom/android/internal/telephony/cdma/EriManager$EriFile;
-Lcom/android/internal/telephony/cdma/EriManager;
Lcom/android/internal/telephony/cdma/SmsMessage;
-Lcom/android/internal/telephony/cdnr/CarrierDisplayNameData$1;
-Lcom/android/internal/telephony/cdnr/CarrierDisplayNameData$Builder;
-Lcom/android/internal/telephony/cdnr/CarrierDisplayNameData;
-Lcom/android/internal/telephony/cdnr/CarrierDisplayNameResolver$CarrierDisplayNameConditionRule;
-Lcom/android/internal/telephony/cdnr/CarrierDisplayNameResolver;
-Lcom/android/internal/telephony/dataconnection/-$$Lambda$DataConnection$-tFSpFGzTv_UdpzJlTMOvg8VO98;
-Lcom/android/internal/telephony/dataconnection/-$$Lambda$XZAGhHrbkIDyusER4MAM6luKcT0;
-Lcom/android/internal/telephony/dataconnection/AccessNetworksManager$1;
-Lcom/android/internal/telephony/dataconnection/AccessNetworksManager;
-Lcom/android/internal/telephony/dataconnection/ApnContext;
-Lcom/android/internal/telephony/dataconnection/ApnSettingUtils;
-Lcom/android/internal/telephony/dataconnection/CellularDataService$CellularDataServiceProvider$1;
-Lcom/android/internal/telephony/dataconnection/CellularDataService$CellularDataServiceProvider;
-Lcom/android/internal/telephony/dataconnection/CellularDataService;
-Lcom/android/internal/telephony/dataconnection/DataConnection$2;
-Lcom/android/internal/telephony/dataconnection/DataConnection$ConnectionParams;
-Lcom/android/internal/telephony/dataconnection/DataConnection$DcActivatingState;
-Lcom/android/internal/telephony/dataconnection/DataConnection$DcActiveState;
-Lcom/android/internal/telephony/dataconnection/DataConnection$DcDefaultState;
-Lcom/android/internal/telephony/dataconnection/DataConnection$DcDisconnectingState;
-Lcom/android/internal/telephony/dataconnection/DataConnection$DcDisconnectionErrorCreatingConnection;
-Lcom/android/internal/telephony/dataconnection/DataConnection$DcInactiveState;
-Lcom/android/internal/telephony/dataconnection/DataConnection$DisconnectParams;
-Lcom/android/internal/telephony/dataconnection/DataConnection$SetupResult;
-Lcom/android/internal/telephony/dataconnection/DataConnection$UpdateLinkPropertyResult;
-Lcom/android/internal/telephony/dataconnection/DataConnection;
-Lcom/android/internal/telephony/dataconnection/DataConnectionReasons$DataAllowedReasonType;
-Lcom/android/internal/telephony/dataconnection/DataConnectionReasons$DataDisallowedReasonType;
-Lcom/android/internal/telephony/dataconnection/DataConnectionReasons;
-Lcom/android/internal/telephony/dataconnection/DataEnabledOverride$OverrideConditions;
-Lcom/android/internal/telephony/dataconnection/DataEnabledOverride$OverrideRule;
-Lcom/android/internal/telephony/dataconnection/DataEnabledOverride;
-Lcom/android/internal/telephony/dataconnection/DataEnabledSettings$1;
-Lcom/android/internal/telephony/dataconnection/DataEnabledSettings$2;
-Lcom/android/internal/telephony/dataconnection/DataEnabledSettings;
-Lcom/android/internal/telephony/dataconnection/DataServiceManager$1;
-Lcom/android/internal/telephony/dataconnection/DataServiceManager$CellularDataServiceCallback;
-Lcom/android/internal/telephony/dataconnection/DataServiceManager$CellularDataServiceConnection;
-Lcom/android/internal/telephony/dataconnection/DataServiceManager$DataServiceManagerDeathRecipient;
-Lcom/android/internal/telephony/dataconnection/DataServiceManager;
-Lcom/android/internal/telephony/dataconnection/DcController$1;
-Lcom/android/internal/telephony/dataconnection/DcController$DccDefaultState;
-Lcom/android/internal/telephony/dataconnection/DcController;
-Lcom/android/internal/telephony/dataconnection/DcFailBringUp;
-Lcom/android/internal/telephony/dataconnection/DcNetworkAgent$DcKeepaliveTracker;
-Lcom/android/internal/telephony/dataconnection/DcNetworkAgent;
-Lcom/android/internal/telephony/dataconnection/DcRequest;
-Lcom/android/internal/telephony/dataconnection/DcTesterDeactivateAll$1;
-Lcom/android/internal/telephony/dataconnection/DcTesterDeactivateAll;
-Lcom/android/internal/telephony/dataconnection/DcTesterFailBringUpAll$1;
-Lcom/android/internal/telephony/dataconnection/DcTesterFailBringUpAll;
-Lcom/android/internal/telephony/dataconnection/DcTracker$1;
-Lcom/android/internal/telephony/dataconnection/DcTracker$2;
-Lcom/android/internal/telephony/dataconnection/DcTracker$3;
-Lcom/android/internal/telephony/dataconnection/DcTracker$4;
-Lcom/android/internal/telephony/dataconnection/DcTracker$5;
-Lcom/android/internal/telephony/dataconnection/DcTracker$6;
-Lcom/android/internal/telephony/dataconnection/DcTracker$ApnChangeObserver;
-Lcom/android/internal/telephony/dataconnection/DcTracker$DataStallRecoveryHandler;
-Lcom/android/internal/telephony/dataconnection/DcTracker$DctOnSubscriptionsChangedListener;
-Lcom/android/internal/telephony/dataconnection/DcTracker$ProvisionNotificationBroadcastReceiver;
-Lcom/android/internal/telephony/dataconnection/DcTracker$RetryFailures;
-Lcom/android/internal/telephony/dataconnection/DcTracker$TxRxSum;
-Lcom/android/internal/telephony/dataconnection/DcTracker;
-Lcom/android/internal/telephony/dataconnection/KeepaliveStatus$1;
-Lcom/android/internal/telephony/dataconnection/KeepaliveStatus;
-Lcom/android/internal/telephony/dataconnection/TelephonyNetworkFactory$InternalHandler;
-Lcom/android/internal/telephony/dataconnection/TelephonyNetworkFactory;
-Lcom/android/internal/telephony/dataconnection/TransportManager$HandoverParams;
-Lcom/android/internal/telephony/dataconnection/TransportManager;
-Lcom/android/internal/telephony/emergency/EmergencyNumberTracker$1;
-Lcom/android/internal/telephony/emergency/EmergencyNumberTracker;
-Lcom/android/internal/telephony/euicc/-$$Lambda$EuiccConnector$ConnectedState$4$S52i3hpE3-FGho807KZ1LR5rXQM;
-Lcom/android/internal/telephony/euicc/EuiccCardController$SimSlotStatusChangedBroadcastReceiver;
-Lcom/android/internal/telephony/euicc/EuiccCardController;
-Lcom/android/internal/telephony/euicc/EuiccConnector$1;
-Lcom/android/internal/telephony/euicc/EuiccConnector$AvailableState;
-Lcom/android/internal/telephony/euicc/EuiccConnector$BaseEuiccCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$BindingState;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$10;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$11;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$12;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$13;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$14;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$1;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$2;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$3;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$4;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$5;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$6;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$7;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$8;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState$9;
-Lcom/android/internal/telephony/euicc/EuiccConnector$ConnectedState;
-Lcom/android/internal/telephony/euicc/EuiccConnector$DeleteRequest;
-Lcom/android/internal/telephony/euicc/EuiccConnector$DisconnectedState;
-Lcom/android/internal/telephony/euicc/EuiccConnector$DownloadRequest;
-Lcom/android/internal/telephony/euicc/EuiccConnector$EuiccPackageMonitor;
-Lcom/android/internal/telephony/euicc/EuiccConnector$GetDefaultListRequest;
-Lcom/android/internal/telephony/euicc/EuiccConnector$GetEuiccProfileInfoListCommandCallback;
-Lcom/android/internal/telephony/euicc/EuiccConnector$GetMetadataRequest;
-Lcom/android/internal/telephony/euicc/EuiccConnector$SwitchRequest;
-Lcom/android/internal/telephony/euicc/EuiccConnector$UnavailableState;
-Lcom/android/internal/telephony/euicc/EuiccConnector$UpdateNicknameRequest;
-Lcom/android/internal/telephony/euicc/EuiccConnector;
-Lcom/android/internal/telephony/euicc/EuiccController$3;
-Lcom/android/internal/telephony/euicc/EuiccController;
Lcom/android/internal/telephony/euicc/IEuiccCardController$Stub;
Lcom/android/internal/telephony/euicc/IEuiccCardController;
Lcom/android/internal/telephony/euicc/IEuiccController$Stub$Proxy;
Lcom/android/internal/telephony/euicc/IEuiccController$Stub;
Lcom/android/internal/telephony/euicc/IEuiccController;
-Lcom/android/internal/telephony/gsm/GsmCellBroadcastHandler;
-Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler$GsmCbTestBroadcastReceiver;
-Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;
-Lcom/android/internal/telephony/gsm/GsmSMSDispatcher;
-Lcom/android/internal/telephony/gsm/SimTlv;
Lcom/android/internal/telephony/gsm/SmsBroadcastConfigInfo;
Lcom/android/internal/telephony/gsm/SmsMessage;
-Lcom/android/internal/telephony/gsm/SuppServiceNotification;
-Lcom/android/internal/telephony/gsm/UsimDataDownloadHandler;
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager$File;
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager$PbrRecord;
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;
-Lcom/android/internal/telephony/ims/-$$Lambda$ImsResolver$-jFhgP_NotuFSwzjQBXWuvls4x4;
-Lcom/android/internal/telephony/ims/-$$Lambda$ImsResolver$SIkPixr-qGLIK-usUJIKu6S5BBs;
-Lcom/android/internal/telephony/ims/-$$Lambda$ImsResolver$VfY5To_kbbTJevLzywTg-_S1JhA;
-Lcom/android/internal/telephony/ims/-$$Lambda$ImsResolver$aWLlEvfonhYSfDR8cVsM6A5pmqI;
-Lcom/android/internal/telephony/ims/-$$Lambda$ImsResolver$kF808g2NWzNL8H1SwzDc1FxiQdQ;
-Lcom/android/internal/telephony/ims/-$$Lambda$ImsResolver$pNx4XUM9FmR6cV_MCAGiEt8F4pg;
-Lcom/android/internal/telephony/ims/-$$Lambda$ImsResolver$rPjfocpARQ2sab24iic4o3kTTgw;
-Lcom/android/internal/telephony/ims/-$$Lambda$ImsServiceController$w3xbtqEhKr7IY81qFuw0e94p84Y;
-Lcom/android/internal/telephony/ims/-$$Lambda$WVd6ghNMbVDukmkxia3ZwNeZzEY;
-Lcom/android/internal/telephony/ims/-$$Lambda$WamP7BPq0j01TgYE3GvUqU3b-rs;
-Lcom/android/internal/telephony/ims/ImsResolver$1;
-Lcom/android/internal/telephony/ims/ImsResolver$2;
-Lcom/android/internal/telephony/ims/ImsResolver$3;
-Lcom/android/internal/telephony/ims/ImsResolver$4;
-Lcom/android/internal/telephony/ims/ImsResolver$5;
-Lcom/android/internal/telephony/ims/ImsResolver$6;
-Lcom/android/internal/telephony/ims/ImsResolver$7;
-Lcom/android/internal/telephony/ims/ImsResolver$8;
-Lcom/android/internal/telephony/ims/ImsResolver$9;
-Lcom/android/internal/telephony/ims/ImsResolver$ImsDynamicQueryManagerFactory;
-Lcom/android/internal/telephony/ims/ImsResolver$ImsServiceControllerFactory;
-Lcom/android/internal/telephony/ims/ImsResolver$ImsServiceInfo;
-Lcom/android/internal/telephony/ims/ImsResolver$SubscriptionManagerProxy;
-Lcom/android/internal/telephony/ims/ImsResolver$TelephonyManagerProxy;
-Lcom/android/internal/telephony/ims/ImsResolver;
-Lcom/android/internal/telephony/ims/ImsServiceController$1;
-Lcom/android/internal/telephony/ims/ImsServiceController$2;
-Lcom/android/internal/telephony/ims/ImsServiceController$3;
-Lcom/android/internal/telephony/ims/ImsServiceController$ImsFeatureContainer;
-Lcom/android/internal/telephony/ims/ImsServiceController$ImsFeatureStatusCallback$1;
-Lcom/android/internal/telephony/ims/ImsServiceController$ImsFeatureStatusCallback;
-Lcom/android/internal/telephony/ims/ImsServiceController$ImsServiceConnection;
-Lcom/android/internal/telephony/ims/ImsServiceController$ImsServiceControllerCallbacks;
-Lcom/android/internal/telephony/ims/ImsServiceController$RebindRetry;
-Lcom/android/internal/telephony/ims/ImsServiceController;
-Lcom/android/internal/telephony/ims/ImsServiceFeatureQueryManager$ImsServiceFeatureQuery;
-Lcom/android/internal/telephony/ims/ImsServiceFeatureQueryManager$Listener;
-Lcom/android/internal/telephony/ims/ImsServiceFeatureQueryManager;
-Lcom/android/internal/telephony/ims/RcsEventQueryHelper;
-Lcom/android/internal/telephony/ims/RcsMessageController;
-Lcom/android/internal/telephony/ims/RcsMessageQueryHelper;
-Lcom/android/internal/telephony/ims/RcsMessageStoreUtil;
-Lcom/android/internal/telephony/ims/RcsParticipantQueryHelper;
-Lcom/android/internal/telephony/imsphone/-$$Lambda$ImsPhoneCallTracker$QlPVd_3u4_verjHUDnkn6zaSe54;
-Lcom/android/internal/telephony/imsphone/-$$Lambda$ImsPhoneCallTracker$Zw03itjXT6-LrhiYuD-9nKFg2Wg;
-Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$1;
-Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$2;
-Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$ExternalCallStateListener;
-Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$ExternalConnectionListener;
-Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$ImsCallNotify;
-Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker;
-Lcom/android/internal/telephony/imsphone/ImsExternalConnection$Listener;
-Lcom/android/internal/telephony/imsphone/ImsExternalConnection;
-Lcom/android/internal/telephony/imsphone/ImsPhone$1;
-Lcom/android/internal/telephony/imsphone/ImsPhone$2;
-Lcom/android/internal/telephony/imsphone/ImsPhone$3;
-Lcom/android/internal/telephony/imsphone/ImsPhone$4;
-Lcom/android/internal/telephony/imsphone/ImsPhone$5;
-Lcom/android/internal/telephony/imsphone/ImsPhone$Cf;
-Lcom/android/internal/telephony/imsphone/ImsPhone$ImsDialArgs$Builder;
-Lcom/android/internal/telephony/imsphone/ImsPhone;
-Lcom/android/internal/telephony/imsphone/ImsPhoneBase;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCall;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$1;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$2;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$3;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$4;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$5;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$6;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$7;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$8;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$9;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$HoldSwapState;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$MmTelFeatureListener;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$PhoneNumberUtilsProxy;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$PhoneStateListener;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker$SharedPreferenceProxy;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCommandInterface;
-Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;
-Lcom/android/internal/telephony/imsphone/ImsPhoneFactory;
-Lcom/android/internal/telephony/imsphone/ImsPhoneMmiCode;
-Lcom/android/internal/telephony/imsphone/ImsPullCall;
-Lcom/android/internal/telephony/metrics/-$$Lambda$TelephonyMetrics$fLmZDbNadlr6LF7zSJ6jCR1AAsk;
-Lcom/android/internal/telephony/metrics/-$$Lambda$TelephonyMetrics$tQOsX1lKb2eTuPp-1rpkeIAEOoY;
-Lcom/android/internal/telephony/metrics/-$$Lambda$TelephonyMetrics$x2dJi76S2YQdpSTfY8RZ8qC_K6g;
-Lcom/android/internal/telephony/metrics/CallSessionEventBuilder;
-Lcom/android/internal/telephony/metrics/InProgressCallSession;
-Lcom/android/internal/telephony/metrics/InProgressSmsSession;
-Lcom/android/internal/telephony/metrics/ModemPowerMetrics;
-Lcom/android/internal/telephony/metrics/SmsSessionEventBuilder;
-Lcom/android/internal/telephony/metrics/TelephonyEventBuilder;
-Lcom/android/internal/telephony/metrics/TelephonyMetrics$1;
-Lcom/android/internal/telephony/metrics/TelephonyMetrics;
-Lcom/android/internal/telephony/nano/CarrierIdProto$CarrierAttribute;
-Lcom/android/internal/telephony/nano/CarrierIdProto$CarrierId;
-Lcom/android/internal/telephony/nano/CarrierIdProto$CarrierList;
-Lcom/android/internal/telephony/nano/TelephonyProto$ActiveSubscriptionInfo;
-Lcom/android/internal/telephony/nano/TelephonyProto$EmergencyNumberInfo;
-Lcom/android/internal/telephony/nano/TelephonyProto$ImsCapabilities;
-Lcom/android/internal/telephony/nano/TelephonyProto$ImsConnectionState;
-Lcom/android/internal/telephony/nano/TelephonyProto$ImsReasonInfo;
-Lcom/android/internal/telephony/nano/TelephonyProto$ModemPowerStats;
-Lcom/android/internal/telephony/nano/TelephonyProto$RilDataCall;
-Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession$Event;
-Lcom/android/internal/telephony/nano/TelephonyProto$SmsSession;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event$RilCall;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession$Event;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyCallSession;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$CarrierIdMatching;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$CarrierIdMatchingResult;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$DataSwitch;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$NetworkCapabilitiesInfo;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$OnDemandDataSwitch;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilDeactivateDataCall;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilSetupDataCall;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent$RilSetupDataCallResponse;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyEvent;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyHistogram;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyLog;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState$TelephonyOperator;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonyServiceState;
-Lcom/android/internal/telephony/nano/TelephonyProto$TelephonySettings;
-Lcom/android/internal/telephony/nano/TelephonyProto$Time;
-Lcom/android/internal/telephony/nitz/NewNitzStateMachineImpl;
-Lcom/android/internal/telephony/protobuf/nano/CodedInputByteBufferNano;
-Lcom/android/internal/telephony/protobuf/nano/CodedOutputByteBufferNano$OutOfSpaceException;
-Lcom/android/internal/telephony/protobuf/nano/CodedOutputByteBufferNano;
-Lcom/android/internal/telephony/protobuf/nano/ExtendableMessageNano;
-Lcom/android/internal/telephony/protobuf/nano/FieldArray;
-Lcom/android/internal/telephony/protobuf/nano/FieldData;
-Lcom/android/internal/telephony/protobuf/nano/InternalNano;
-Lcom/android/internal/telephony/protobuf/nano/InvalidProtocolBufferNanoException;
-Lcom/android/internal/telephony/protobuf/nano/MessageNano;
-Lcom/android/internal/telephony/protobuf/nano/MessageNanoPrinter;
-Lcom/android/internal/telephony/protobuf/nano/WireFormatNano;
-Lcom/android/internal/telephony/sip/SipPhone;
-Lcom/android/internal/telephony/sip/SipPhoneBase;
-Lcom/android/internal/telephony/test/SimulatedRadioControl;
-Lcom/android/internal/telephony/uicc/AdnRecord$1;
-Lcom/android/internal/telephony/uicc/AdnRecord;
-Lcom/android/internal/telephony/uicc/AdnRecordCache;
-Lcom/android/internal/telephony/uicc/AdnRecordLoader;
-Lcom/android/internal/telephony/uicc/AnswerToReset$HistoricalBytes;
-Lcom/android/internal/telephony/uicc/AnswerToReset$InterfaceByte;
-Lcom/android/internal/telephony/uicc/AnswerToReset;
-Lcom/android/internal/telephony/uicc/CarrierTestOverride;
-Lcom/android/internal/telephony/uicc/CsimFileHandler;
-Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState;
-Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType;
-Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState;
-Lcom/android/internal/telephony/uicc/IccCardApplicationStatus;
-Lcom/android/internal/telephony/uicc/IccCardStatus$CardState;
-Lcom/android/internal/telephony/uicc/IccCardStatus$PinState;
-Lcom/android/internal/telephony/uicc/IccCardStatus;
-Lcom/android/internal/telephony/uicc/IccConstants;
-Lcom/android/internal/telephony/uicc/IccException;
-Lcom/android/internal/telephony/uicc/IccFileHandler$LoadLinearFixedContext;
-Lcom/android/internal/telephony/uicc/IccFileHandler;
-Lcom/android/internal/telephony/uicc/IccFileNotFound;
-Lcom/android/internal/telephony/uicc/IccFileTypeMismatch;
-Lcom/android/internal/telephony/uicc/IccIoResult;
-Lcom/android/internal/telephony/uicc/IccRecords$IccRecordLoaded;
-Lcom/android/internal/telephony/uicc/IccRecords;
-Lcom/android/internal/telephony/uicc/IccRefreshResponse;
-Lcom/android/internal/telephony/uicc/IccServiceTable;
-Lcom/android/internal/telephony/uicc/IccSlotStatus$SlotState;
-Lcom/android/internal/telephony/uicc/IccSlotStatus;
Lcom/android/internal/telephony/uicc/IccUtils;
-Lcom/android/internal/telephony/uicc/IccVmNotSupportedException;
-Lcom/android/internal/telephony/uicc/InstallCarrierAppTrampolineActivity;
-Lcom/android/internal/telephony/uicc/InstallCarrierAppUtils;
-Lcom/android/internal/telephony/uicc/IsimFileHandler;
-Lcom/android/internal/telephony/uicc/IsimRecords;
-Lcom/android/internal/telephony/uicc/IsimUiccRecords$EfIsimDomainLoaded;
-Lcom/android/internal/telephony/uicc/IsimUiccRecords$EfIsimImpiLoaded;
-Lcom/android/internal/telephony/uicc/IsimUiccRecords$EfIsimImpuLoaded;
-Lcom/android/internal/telephony/uicc/IsimUiccRecords$EfIsimIstLoaded;
-Lcom/android/internal/telephony/uicc/IsimUiccRecords$EfIsimPcscfLoaded;
-Lcom/android/internal/telephony/uicc/IsimUiccRecords;
-Lcom/android/internal/telephony/uicc/PlmnActRecord$1;
-Lcom/android/internal/telephony/uicc/PlmnActRecord;
-Lcom/android/internal/telephony/uicc/RuimFileHandler;
-Lcom/android/internal/telephony/uicc/RuimRecords;
-Lcom/android/internal/telephony/uicc/SIMFileHandler;
-Lcom/android/internal/telephony/uicc/SIMRecords$1;
-Lcom/android/internal/telephony/uicc/SIMRecords$EfPlLoaded;
-Lcom/android/internal/telephony/uicc/SIMRecords$EfUsimLiLoaded;
-Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState;
-Lcom/android/internal/telephony/uicc/SIMRecords;
-Lcom/android/internal/telephony/uicc/UiccCard;
-Lcom/android/internal/telephony/uicc/UiccCardApplication$1;
-Lcom/android/internal/telephony/uicc/UiccCardApplication$2;
-Lcom/android/internal/telephony/uicc/UiccCardApplication;
-Lcom/android/internal/telephony/uicc/UiccCarrierPrivilegeRules$1;
-Lcom/android/internal/telephony/uicc/UiccCarrierPrivilegeRules$TLV;
-Lcom/android/internal/telephony/uicc/UiccCarrierPrivilegeRules;
-Lcom/android/internal/telephony/uicc/UiccController$1;
-Lcom/android/internal/telephony/uicc/UiccController;
-Lcom/android/internal/telephony/uicc/UiccPkcs15$FileHandler;
-Lcom/android/internal/telephony/uicc/UiccPkcs15$Pkcs15Selector;
-Lcom/android/internal/telephony/uicc/UiccPkcs15;
-Lcom/android/internal/telephony/uicc/UiccProfile$1;
-Lcom/android/internal/telephony/uicc/UiccProfile$2;
-Lcom/android/internal/telephony/uicc/UiccProfile$3;
-Lcom/android/internal/telephony/uicc/UiccProfile$4;
-Lcom/android/internal/telephony/uicc/UiccProfile$5;
-Lcom/android/internal/telephony/uicc/UiccProfile;
-Lcom/android/internal/telephony/uicc/UiccSlot;
-Lcom/android/internal/telephony/uicc/UiccStateChangedLauncher;
-Lcom/android/internal/telephony/uicc/UsimFileHandler;
-Lcom/android/internal/telephony/uicc/UsimServiceTable$UsimService;
-Lcom/android/internal/telephony/uicc/UsimServiceTable;
-Lcom/android/internal/telephony/uicc/VoiceMailConstants;
-Lcom/android/internal/telephony/uicc/asn1/InvalidAsn1DataException;
-Lcom/android/internal/telephony/uicc/asn1/TagNotFoundException;
-Lcom/android/internal/telephony/uicc/euicc/EuiccCard;
-Lcom/android/internal/telephony/uicc/euicc/EuiccSpecVersion;
Lcom/android/internal/telephony/util/ArrayUtils;
-Lcom/android/internal/telephony/util/NotificationChannelController$1;
-Lcom/android/internal/telephony/util/NotificationChannelController;
-Lcom/android/internal/telephony/util/SMSDispatcherUtil;
+Lcom/android/internal/telephony/util/HandlerExecutor;
+Lcom/android/internal/telephony/util/RemoteCallbackListExt;
Lcom/android/internal/telephony/util/TelephonyUtils;
-Lcom/android/internal/telephony/util/VoicemailNotificationSettingsUtil;
-Lcom/android/internal/telephony/util/XmlUtils;
Lcom/android/internal/textservice/ISpellCheckerService$Stub$Proxy;
Lcom/android/internal/textservice/ISpellCheckerService$Stub;
Lcom/android/internal/textservice/ISpellCheckerService;
@@ -23700,6 +52059,7 @@ Lcom/android/internal/util/ParseUtils;
Lcom/android/internal/util/Preconditions;
Lcom/android/internal/util/ProcFileReader;
Lcom/android/internal/util/ProgressReporter;
+Lcom/android/internal/util/ProviderAccessStats$PerThreadData;
Lcom/android/internal/util/ProviderAccessStats;
Lcom/android/internal/util/RingBuffer;
Lcom/android/internal/util/RingBufferIndices;
@@ -24180,15 +52540,6 @@ Lcom/android/org/kxml2/io/KXmlParser$ContentSource;
Lcom/android/org/kxml2/io/KXmlParser$ValueContext;
Lcom/android/org/kxml2/io/KXmlParser;
Lcom/android/org/kxml2/io/KXmlSerializer;
-Lcom/android/phone/ecc/nano/CodedInputByteBufferNano;
-Lcom/android/phone/ecc/nano/ExtendableMessageNano;
-Lcom/android/phone/ecc/nano/InternalNano;
-Lcom/android/phone/ecc/nano/InvalidProtocolBufferNanoException;
-Lcom/android/phone/ecc/nano/MessageNano;
-Lcom/android/phone/ecc/nano/ProtobufEccData$AllInfo;
-Lcom/android/phone/ecc/nano/ProtobufEccData$CountryInfo;
-Lcom/android/phone/ecc/nano/ProtobufEccData$EccInfo;
-Lcom/android/phone/ecc/nano/WireFormatNano;
Lcom/android/server/AppWidgetBackupBridge;
Lcom/android/server/BootReceiver$1;
Lcom/android/server/BootReceiver$2;
@@ -24372,6 +52723,7 @@ Ljava/io/ObjectStreamClass;
Ljava/io/ObjectStreamConstants;
Ljava/io/ObjectStreamException;
Ljava/io/ObjectStreamField;
+Ljava/io/OptionalDataException;
Ljava/io/OutputStream;
Ljava/io/OutputStreamWriter;
Ljava/io/PrintStream;
@@ -24451,6 +52803,7 @@ Ljava/lang/IllegalThreadStateException;
Ljava/lang/IncompatibleClassChangeError;
Ljava/lang/IndexOutOfBoundsException;
Ljava/lang/InheritableThreadLocal;
+Ljava/lang/InstantiationError;
Ljava/lang/InstantiationException;
Ljava/lang/Integer$IntegerCache;
Ljava/lang/Integer;
@@ -24678,6 +53031,7 @@ Ljava/net/HttpCookie$8;
Ljava/net/HttpCookie$9;
Ljava/net/HttpCookie$CookieAttributeAssignor;
Ljava/net/HttpCookie;
+Ljava/net/HttpRetryException;
Ljava/net/HttpURLConnection;
Ljava/net/IDN;
Ljava/net/InMemoryCookieStore;
@@ -24812,6 +53166,7 @@ Ljava/nio/charset/IllegalCharsetNameException;
Ljava/nio/charset/StandardCharsets;
Ljava/nio/charset/UnsupportedCharsetException;
Ljava/nio/file/AccessMode;
+Ljava/nio/file/CopyMoveHelper;
Ljava/nio/file/CopyOption;
Ljava/nio/file/DirectoryStream$Filter;
Ljava/nio/file/DirectoryStream;
@@ -24970,6 +53325,7 @@ Ljava/security/spec/KeySpec;
Ljava/security/spec/MGF1ParameterSpec;
Ljava/security/spec/PKCS8EncodedKeySpec;
Ljava/security/spec/PSSParameterSpec;
+Ljava/security/spec/RSAKeyGenParameterSpec;
Ljava/security/spec/RSAPrivateCrtKeySpec;
Ljava/security/spec/RSAPrivateKeySpec;
Ljava/security/spec/RSAPublicKeySpec;
@@ -24983,7 +53339,6 @@ Ljava/text/Bidi;
Ljava/text/BreakIterator;
Ljava/text/CalendarBuilder;
Ljava/text/CharacterIterator;
-Ljava/text/CollationKey;
Ljava/text/Collator;
Ljava/text/DateFormat$Field;
Ljava/text/DateFormat;
@@ -25308,6 +53663,7 @@ Ljava/util/Locale;
Ljava/util/Map$Entry;
Ljava/util/Map;
Ljava/util/MissingFormatArgumentException;
+Ljava/util/MissingFormatWidthException;
Ljava/util/MissingResourceException;
Ljava/util/NavigableMap;
Ljava/util/NavigableSet;
@@ -25336,6 +53692,7 @@ Ljava/util/ResourceBundle$CacheKey;
Ljava/util/ResourceBundle$CacheKeyReference;
Ljava/util/ResourceBundle$Control$1;
Ljava/util/ResourceBundle$Control$CandidateListCache;
+Ljava/util/ResourceBundle$Control;
Ljava/util/ResourceBundle$LoaderReference;
Ljava/util/ResourceBundle;
Ljava/util/Scanner$1;
@@ -25465,6 +53822,7 @@ Ljava/util/concurrent/ConcurrentHashMap$SearchKeysTask;
Ljava/util/concurrent/ConcurrentHashMap$SearchMappingsTask;
Ljava/util/concurrent/ConcurrentHashMap$SearchValuesTask;
Ljava/util/concurrent/ConcurrentHashMap$Segment;
+Ljava/util/concurrent/ConcurrentHashMap$TableStack;
Ljava/util/concurrent/ConcurrentHashMap$Traverser;
Ljava/util/concurrent/ConcurrentHashMap$TreeBin;
Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
@@ -25600,7 +53958,6 @@ Ljava/util/function/BiConsumer;
Ljava/util/function/BiFunction;
Ljava/util/function/BiPredicate;
Ljava/util/function/BinaryOperator;
-Ljava/util/function/BooleanSupplier;
Ljava/util/function/Consumer;
Ljava/util/function/DoubleBinaryOperator;
Ljava/util/function/DoubleSupplier;
@@ -25825,7 +54182,6 @@ Ljava/util/zip/ZipFile$ZipEntryIterator;
Ljava/util/zip/ZipFile$ZipFileInflaterInputStream;
Ljava/util/zip/ZipFile$ZipFileInputStream;
Ljava/util/zip/ZipFile;
-Ljava/util/zip/ZipInputStream;
Ljava/util/zip/ZipOutputStream;
Ljava/util/zip/ZipUtils;
Ljavax/crypto/AEADBadTagException;
@@ -25838,7 +54194,6 @@ Ljavax/crypto/Cipher$NeedToSet;
Ljavax/crypto/Cipher$SpiAndProviderUpdater;
Ljavax/crypto/Cipher$Transform;
Ljavax/crypto/Cipher;
-Ljavax/crypto/CipherOutputStream;
Ljavax/crypto/CipherSpi;
Ljavax/crypto/IllegalBlockSizeException;
Ljavax/crypto/JceSecurity;
@@ -26030,6 +54385,7 @@ Lorg/apache/harmony/xml/parsers/DocumentBuilderFactoryImpl;
Lorg/apache/harmony/xml/parsers/SAXParserFactoryImpl;
Lorg/apache/harmony/xml/parsers/SAXParserImpl;
Lorg/apache/http/conn/ConnectTimeoutException;
+Lorg/apache/http/conn/scheme/HostNameResolver;
Lorg/apache/http/conn/scheme/LayeredSocketFactory;
Lorg/apache/http/conn/scheme/SocketFactory;
Lorg/apache/http/conn/ssl/AbstractVerifier;
@@ -26095,6 +54451,7 @@ Lsun/invoke/util/VerifyAccess;
Lsun/invoke/util/Wrapper$Format;
Lsun/invoke/util/Wrapper;
Lsun/misc/ASCIICaseInsensitiveComparator;
+Lsun/misc/Cleaner$1;
Lsun/misc/Cleaner;
Lsun/misc/CompoundEnumeration;
Lsun/misc/FDBigInteger;
@@ -26174,6 +54531,7 @@ Lsun/nio/ch/SocketChannelImpl;
Lsun/nio/ch/SocketDispatcher;
Lsun/nio/ch/Util$1;
Lsun/nio/ch/Util$2;
+Lsun/nio/ch/Util$3;
Lsun/nio/ch/Util$BufferCache;
Lsun/nio/ch/Util;
Lsun/nio/cs/ArrayDecoder;
@@ -26246,6 +54604,7 @@ Lsun/security/provider/certpath/ConstraintsChecker;
Lsun/security/provider/certpath/KeyChecker;
Lsun/security/provider/certpath/OCSP$RevocationStatus$CertStatus;
Lsun/security/provider/certpath/OCSP$RevocationStatus;
+Lsun/security/provider/certpath/OCSPResponse$1;
Lsun/security/provider/certpath/OCSPResponse$ResponseStatus;
Lsun/security/provider/certpath/OCSPResponse$SingleResponse;
Lsun/security/provider/certpath/OCSPResponse;
@@ -26256,6 +54615,7 @@ Lsun/security/provider/certpath/PKIXMasterCertPathValidator;
Lsun/security/provider/certpath/PolicyChecker;
Lsun/security/provider/certpath/PolicyNodeImpl;
Lsun/security/provider/certpath/RevocationChecker$1;
+Lsun/security/provider/certpath/RevocationChecker$2;
Lsun/security/provider/certpath/RevocationChecker$Mode;
Lsun/security/provider/certpath/RevocationChecker$RevocationProperties;
Lsun/security/provider/certpath/RevocationChecker;
@@ -26366,6 +54726,7 @@ Lsun/util/calendar/LocalGregorianCalendar;
Lsun/util/locale/BaseLocale$Cache;
Lsun/util/locale/BaseLocale$Key;
Lsun/util/locale/BaseLocale;
+Lsun/util/locale/Extension;
Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;
Lsun/util/locale/InternalLocaleBuilder;
Lsun/util/locale/LanguageTag;
@@ -26377,10 +54738,12 @@ Lsun/util/locale/LocaleSyntaxException;
Lsun/util/locale/LocaleUtils;
Lsun/util/locale/ParseStatus;
Lsun/util/locale/StringTokenIterator;
+Lsun/util/locale/UnicodeLocaleExtension;
Lsun/util/logging/LoggingProxy;
Lsun/util/logging/LoggingSupport$1;
Lsun/util/logging/LoggingSupport;
Lsun/util/logging/PlatformLogger$1;
+Lsun/util/logging/PlatformLogger$JavaLoggerProxy;
Lsun/util/logging/PlatformLogger$Level;
Lsun/util/logging/PlatformLogger$LoggerProxy;
Lsun/util/logging/PlatformLogger;
diff --git a/config/preloaded-classes b/config/preloaded-classes
index e8d2083a12bd..e2fe0353a0cd 100644
--- a/config/preloaded-classes
+++ b/config/preloaded-classes
@@ -484,7 +484,6 @@ android.app.PictureInPictureParams
android.app.ProcessMemoryState$1
android.app.ProfilerInfo$1
android.app.ProfilerInfo
-android.app.ProgressDialog
android.app.QueuedWork$QueuedWorkHandler
android.app.QueuedWork
android.app.ReceiverRestrictedContext
@@ -533,6 +532,9 @@ android.app.SystemServiceRegistry$107
android.app.SystemServiceRegistry$108
android.app.SystemServiceRegistry$109
android.app.SystemServiceRegistry$10
+android.app.SystemServiceRegistry$110
+android.app.SystemServiceRegistry$111
+android.app.SystemServiceRegistry$112
android.app.SystemServiceRegistry$11
android.app.SystemServiceRegistry$12
android.app.SystemServiceRegistry$13
@@ -1244,18 +1246,18 @@ android.content.om.IOverlayManager
android.content.om.OverlayInfo$1
android.content.om.OverlayInfo
android.content.om.OverlayManager
+android.content.om.OverlayableInfo
android.content.pm.-$$Lambda$PackageParser$0DZRgzfgaIMpCOhJqjw6PUiU5vw
android.content.pm.-$$Lambda$PackageParser$0aobsT7Zf7WVZCqMZ5z2clAuQf4
android.content.pm.-$$Lambda$PackageParser$M-9fHqS_eEp1oYkuKJhRHOGUxf8
android.content.pm.-$$Lambda$T1UQAuePWRRmVQ1KzTyMAktZUPM
android.content.pm.-$$Lambda$ciir_QAmv6RwJro4I58t77dPnxU
-android.content.pm.-$$Lambda$jpya2qgMDDEok2GAoKRDqPM5lIE
+android.content.pm.-$$Lambda$hUJwdX9IqTlLwBds2BUGqVf-FM8
android.content.pm.-$$Lambda$n3uXeb1v-YRmq_BWTfosEqUUr9g
android.content.pm.-$$Lambda$zO9HBUVgPeroyDQPLJE-MNMvSqc
android.content.pm.ActivityInfo$1
android.content.pm.ActivityInfo$WindowLayout
android.content.pm.ActivityInfo
-android.content.pm.AndroidHidlUpdater
android.content.pm.ApplicationInfo$1
android.content.pm.ApplicationInfo
android.content.pm.AuxiliaryResolveInfo$AuxiliaryFilter
@@ -1267,6 +1269,7 @@ android.content.pm.ComponentInfo
android.content.pm.ConfigurationInfo$1
android.content.pm.ConfigurationInfo
android.content.pm.CrossProfileApps
+android.content.pm.DataLoaderManager
android.content.pm.FallbackCategoryProvider
android.content.pm.FeatureGroupInfo$1
android.content.pm.FeatureGroupInfo
@@ -1341,10 +1344,6 @@ android.content.pm.LauncherApps$ShortcutQuery
android.content.pm.LauncherApps
android.content.pm.ModuleInfo$1
android.content.pm.ModuleInfo
-android.content.pm.OrgApacheHttpLegacyUpdater
-android.content.pm.PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater
-android.content.pm.PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary
-android.content.pm.PackageBackwardCompatibility
android.content.pm.PackageInfo$1
android.content.pm.PackageInfo
android.content.pm.PackageInfoLite$1
@@ -1397,7 +1396,6 @@ android.content.pm.PackageParser$SplitNameComparator
android.content.pm.PackageParser
android.content.pm.PackageParserCacheHelper$ReadHelper
android.content.pm.PackageParserCacheHelper$WriteHelper
-android.content.pm.PackageSharedLibraryUpdater
android.content.pm.PackageStats$1
android.content.pm.PackageStats
android.content.pm.PackageUserState
@@ -1456,6 +1454,13 @@ android.content.pm.dex.ISnapshotRuntimeProfileCallback$Stub$Proxy
android.content.pm.dex.ISnapshotRuntimeProfileCallback$Stub
android.content.pm.dex.ISnapshotRuntimeProfileCallback
android.content.pm.dex.PackageOptimizationInfo
+android.content.pm.parsing.library.-$$Lambda$WrPVuoVJehE45tfhLfe_8Tcc-Nw
+android.content.pm.parsing.library.AndroidHidlUpdater
+android.content.pm.parsing.library.OrgApacheHttpLegacyUpdater
+android.content.pm.parsing.library.PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater
+android.content.pm.parsing.library.PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary
+android.content.pm.parsing.library.PackageBackwardCompatibility
+android.content.pm.parsing.library.PackageSharedLibraryUpdater
android.content.pm.permission.SplitPermissionInfoParcelable
android.content.pm.split.DefaultSplitAssetLoader
android.content.pm.split.SplitAssetDependencyLoader
@@ -1603,6 +1608,7 @@ android.database.sqlite.SQLiteStatement
android.database.sqlite.SQLiteStatementInfo
android.database.sqlite.SQLiteTransactionListener
android.database.sqlite.SqliteWrapper
+android.ddm.DdmHandleAppName$Names
android.ddm.DdmHandleAppName
android.ddm.DdmHandleExit
android.ddm.DdmHandleHeap
@@ -2390,35 +2396,11 @@ android.hardware.radio.V1_4.IRadioIndication$Stub
android.hardware.radio.V1_4.IRadioIndication
android.hardware.radio.V1_4.IRadioResponse$Stub
android.hardware.radio.V1_4.IRadioResponse
-android.hardware.radio.V1_4.LteVopsInfo
android.hardware.radio.V1_4.NetworkScanResult
android.hardware.radio.V1_4.NrIndicators
android.hardware.radio.V1_4.PhysicalChannelConfig
android.hardware.radio.V1_4.SetupDataCallResult
android.hardware.radio.V1_4.SignalStrength
-android.hardware.radio.V1_5.IRadio
-android.hardware.radio.config.V1_0.IRadioConfig
-android.hardware.radio.config.V1_0.IRadioConfigIndication
-android.hardware.radio.config.V1_0.IRadioConfigResponse
-android.hardware.radio.config.V1_0.SimSlotStatus
-android.hardware.radio.config.V1_1.IRadioConfig$Proxy
-android.hardware.radio.config.V1_1.IRadioConfig
-android.hardware.radio.config.V1_1.IRadioConfigIndication
-android.hardware.radio.config.V1_1.IRadioConfigResponse
-android.hardware.radio.config.V1_1.ModemInfo
-android.hardware.radio.config.V1_1.ModemsConfig
-android.hardware.radio.config.V1_1.PhoneCapability
-android.hardware.radio.config.V1_2.IRadioConfigIndication$Stub
-android.hardware.radio.config.V1_2.IRadioConfigIndication
-android.hardware.radio.config.V1_2.IRadioConfigResponse$Stub
-android.hardware.radio.config.V1_2.IRadioConfigResponse
-android.hardware.radio.config.V1_2.SimSlotStatus
-android.hardware.radio.deprecated.V1_0.IOemHook$Proxy
-android.hardware.radio.deprecated.V1_0.IOemHook
-android.hardware.radio.deprecated.V1_0.IOemHookIndication$Stub
-android.hardware.radio.deprecated.V1_0.IOemHookIndication
-android.hardware.radio.deprecated.V1_0.IOemHookResponse$Stub
-android.hardware.radio.deprecated.V1_0.IOemHookResponse
android.hardware.sidekick.SidekickInternal
android.hardware.soundtrigger.IRecognitionStatusCallback$Stub$Proxy
android.hardware.soundtrigger.IRecognitionStatusCallback$Stub
@@ -2437,6 +2419,8 @@ android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra$1
android.hardware.soundtrigger.SoundTrigger$KeyphraseRecognitionExtra
android.hardware.soundtrigger.SoundTrigger$KeyphraseSoundModel$1
android.hardware.soundtrigger.SoundTrigger$KeyphraseSoundModel
+android.hardware.soundtrigger.SoundTrigger$ModelParamRange$1
+android.hardware.soundtrigger.SoundTrigger$ModelParamRange
android.hardware.soundtrigger.SoundTrigger$ModuleProperties$1
android.hardware.soundtrigger.SoundTrigger$ModuleProperties
android.hardware.soundtrigger.SoundTrigger$RecognitionConfig$1
@@ -2479,6 +2463,7 @@ android.hardware.usb.gadget.V1_0.IUsbGadget
android.hardware.usb.gadget.V1_0.IUsbGadgetCallback$Stub
android.hardware.usb.gadget.V1_0.IUsbGadgetCallback
android.inputmethodservice.-$$Lambda$InputMethodService$8T9TmAUIN7vW9eU6kTg8309_d4E
+android.inputmethodservice.-$$Lambda$InputMethodService$DHO7VgzZzl-Gpo6FN3F8arQtA4A
android.inputmethodservice.-$$Lambda$InputMethodService$wp8DeVGx_WDOPw4F6an7QbwVxf0
android.inputmethodservice.AbstractInputMethodService$AbstractInputMethodImpl
android.inputmethodservice.AbstractInputMethodService$AbstractInputMethodSessionImpl
@@ -2496,7 +2481,6 @@ android.inputmethodservice.InputMethodService
android.inputmethodservice.SoftInputWindow
android.internal.hidl.base.V1_0.DebugInfo
android.internal.hidl.base.V1_0.IBase
-android.internal.telephony.sysprop.TelephonyProperties
android.location.-$$Lambda$_14QHG018Z6p13d3hzJuGTWnNeo
android.location.AbstractListenerManager
android.location.Address$1
@@ -2581,6 +2565,8 @@ android.media.-$$Lambda$MediaCodecInfo$VideoCapabilities$DpgwEn-gVFZT9EtP3qcxpiA
android.media.AudioAttributes$1
android.media.AudioAttributes$Builder
android.media.AudioAttributes
+android.media.AudioDeviceAddress$1
+android.media.AudioDeviceAddress
android.media.AudioDeviceCallback
android.media.AudioDeviceInfo
android.media.AudioDevicePort
@@ -3234,7 +3220,6 @@ android.net.shared.InetAddressUtils
android.net.sip.ISipService$Stub$Proxy
android.net.sip.ISipService$Stub
android.net.sip.ISipService
-android.net.sip.SipException
android.net.sip.SipManager
android.net.util.-$$Lambda$MultinetworkPolicyTracker$8YMQ0fPTKk7Fw-_gJjln0JT-g8E
android.net.util.MultinetworkPolicyTracker$1
@@ -3299,6 +3284,7 @@ android.net.wifi.SupplicantState$2
android.net.wifi.SupplicantState
android.net.wifi.SynchronousExecutor
android.net.wifi.WifiClient
+android.net.wifi.WifiCondManager
android.net.wifi.WifiConfiguration$1
android.net.wifi.WifiConfiguration$KeyMgmt
android.net.wifi.WifiConfiguration$NetworkSelectionStatus$DisableReasonInfo
@@ -3469,7 +3455,6 @@ android.os.-$$Lambda$StrictMode$UFC_nI1x6u8ZwMQmA7bmj9NHZz4
android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ
android.os.-$$Lambda$StrictMode$yZJXPvy2veRNA-xL_SWdXzX_OLg
android.os.-$$Lambda$ThreadLocalWorkSource$IP9vRFCDG5YwbWbXAEGHH52B9IE
-android.os.-$$Lambda$Trace$2zLZ-Lc2kAXsVjw_nLYeNhqmGq0
android.os.-$$Lambda$q1UvBdLgHRZVzc68BxdksTmbuCw
android.os.AsyncResult
android.os.AsyncTask$1
@@ -3640,10 +3625,8 @@ android.os.IServiceManager$Stub
android.os.IServiceManager
android.os.IStatsCompanionService$Stub
android.os.IStatsCompanionService
-android.os.IStatsManager$Stub$Proxy
-android.os.IStatsManager$Stub
-android.os.IStatsManager
-android.os.IStatsPullerCallback
+android.os.IStatsd$Stub
+android.os.IStatsd
android.os.IStoraged$Stub$Proxy
android.os.IStoraged$Stub
android.os.IStoraged
@@ -3802,6 +3785,8 @@ android.os.SystemService$State
android.os.SystemService
android.os.SystemUpdateManager
android.os.SystemVibrator
+android.os.TelephonyServiceManager$ServiceRegisterer
+android.os.TelephonyServiceManager
android.os.Temperature$1
android.os.Temperature
android.os.ThreadLocalWorkSource
@@ -3989,6 +3974,7 @@ android.provider.ContactsContract$StatusColumns
android.provider.ContactsContract
android.provider.DeviceConfig$1
android.provider.DeviceConfig$OnPropertiesChangedListener
+android.provider.DeviceConfig$Properties$Builder
android.provider.DeviceConfig$Properties
android.provider.DeviceConfig
android.provider.Downloads$Impl
@@ -4028,6 +4014,7 @@ android.provider.Telephony$CarrierId
android.provider.Telephony$Carriers
android.provider.Telephony$Mms
android.provider.Telephony$ServiceStateTable
+android.provider.Telephony$SimInfo
android.provider.Telephony$Sms
android.provider.Telephony$TextBasedSmsColumns
android.provider.Telephony$Threads
@@ -4197,8 +4184,6 @@ android.service.autofill.augmented.IFillCallback$Stub
android.service.autofill.augmented.IFillCallback
android.service.carrier.CarrierIdentifier$1
android.service.carrier.CarrierIdentifier
-android.service.carrier.CarrierMessagingServiceWrapper$CarrierMessagingCallbackWrapper
-android.service.carrier.CarrierMessagingServiceWrapper
android.service.carrier.ICarrierService$Stub$Proxy
android.service.carrier.ICarrierService$Stub
android.service.carrier.ICarrierService
@@ -4224,40 +4209,17 @@ android.service.euicc.EuiccProfileInfo$1
android.service.euicc.EuiccProfileInfo
android.service.euicc.GetEuiccProfileInfoListResult$1
android.service.euicc.GetEuiccProfileInfoListResult
-android.service.euicc.IDeleteSubscriptionCallback$Stub
-android.service.euicc.IDeleteSubscriptionCallback
-android.service.euicc.IDownloadSubscriptionCallback$Stub
-android.service.euicc.IDownloadSubscriptionCallback
-android.service.euicc.IEraseSubscriptionsCallback$Stub
-android.service.euicc.IEraseSubscriptionsCallback
android.service.euicc.IEuiccService$Stub$Proxy
android.service.euicc.IEuiccService$Stub
android.service.euicc.IEuiccService
-android.service.euicc.IGetDefaultDownloadableSubscriptionListCallback$Stub
-android.service.euicc.IGetDefaultDownloadableSubscriptionListCallback
-android.service.euicc.IGetDownloadableSubscriptionMetadataCallback$Stub
-android.service.euicc.IGetDownloadableSubscriptionMetadataCallback
-android.service.euicc.IGetEidCallback$Stub
-android.service.euicc.IGetEidCallback
-android.service.euicc.IGetEuiccInfoCallback$Stub
-android.service.euicc.IGetEuiccInfoCallback
android.service.euicc.IGetEuiccProfileInfoListCallback$Stub
android.service.euicc.IGetEuiccProfileInfoListCallback
-android.service.euicc.IGetOtaStatusCallback$Stub
-android.service.euicc.IGetOtaStatusCallback
-android.service.euicc.IOtaStatusChangedCallback$Stub
-android.service.euicc.IOtaStatusChangedCallback
-android.service.euicc.IRetainSubscriptionsForFactoryResetCallback$Stub
-android.service.euicc.IRetainSubscriptionsForFactoryResetCallback
-android.service.euicc.ISwitchToSubscriptionCallback$Stub
-android.service.euicc.ISwitchToSubscriptionCallback
-android.service.euicc.IUpdateSubscriptionNicknameCallback$Stub
-android.service.euicc.IUpdateSubscriptionNicknameCallback
android.service.gatekeeper.GateKeeperResponse$1
android.service.gatekeeper.GateKeeperResponse
android.service.gatekeeper.IGateKeeperService$Stub$Proxy
android.service.gatekeeper.IGateKeeperService$Stub
android.service.gatekeeper.IGateKeeperService
+android.service.incremental.IncrementalDataLoaderService
android.service.media.IMediaBrowserService$Stub$Proxy
android.service.media.IMediaBrowserService$Stub
android.service.media.IMediaBrowserService
@@ -4327,7 +4289,6 @@ android.service.persistentdata.IPersistentDataBlockService$Stub$Proxy
android.service.persistentdata.IPersistentDataBlockService$Stub
android.service.persistentdata.IPersistentDataBlockService
android.service.persistentdata.PersistentDataBlockManager
-android.service.textclassifier.-$$Lambda$TextClassifierService$Fzy8p7cXXCBABuhNkqvLY5FuWrA
android.service.textclassifier.ITextClassifierCallback$Stub$Proxy
android.service.textclassifier.ITextClassifierCallback$Stub
android.service.textclassifier.ITextClassifierCallback
@@ -4708,9 +4669,7 @@ android.telephony.euicc.EuiccCardManager
android.telephony.euicc.EuiccManager
android.telephony.gsm.GsmCellLocation
android.telephony.ims.-$$Lambda$ImsMmTelManager$CapabilityCallback$CapabilityBinder$4YNlUy9HsD02E7Sbv2VeVtbao08
-android.telephony.ims.-$$Lambda$ImsMmTelManager$CapabilityCallback$CapabilityBinder$gK2iK9ZQ3GDeuMTfhRd7yjiYlO8
android.telephony.ims.-$$Lambda$ProvisioningManager$Callback$CallbackBinder$R_8jXQuOM7aV7dIwYBzcWwV-YpM
-android.telephony.ims.-$$Lambda$ProvisioningManager$Callback$CallbackBinder$rMBayJlNIko46WAqcRq_ggxbfrY
android.telephony.ims.ImsCallForwardInfo$1
android.telephony.ims.ImsCallForwardInfo
android.telephony.ims.ImsCallProfile$1
@@ -4718,6 +4677,7 @@ android.telephony.ims.ImsCallProfile
android.telephony.ims.ImsException
android.telephony.ims.ImsExternalCallState$1
android.telephony.ims.ImsExternalCallState
+android.telephony.ims.ImsManager
android.telephony.ims.ImsMmTelManager$CapabilityCallback$CapabilityBinder
android.telephony.ims.ImsMmTelManager$CapabilityCallback
android.telephony.ims.ImsMmTelManager$RegistrationCallback
@@ -4765,8 +4725,6 @@ android.telephony.ims.aidl.IImsServiceControllerListener
android.telephony.ims.aidl.IImsSmsListener$Stub$Proxy
android.telephony.ims.aidl.IImsSmsListener$Stub
android.telephony.ims.aidl.IImsSmsListener
-android.telephony.ims.aidl.IRcsMessage$Stub
-android.telephony.ims.aidl.IRcsMessage
android.telephony.ims.feature.-$$Lambda$ImsFeature$9bLETU1BeS-dFzQnbBBs3kwaz-8
android.telephony.ims.feature.-$$Lambda$ImsFeature$rPSMsRhoup9jfT6nt1MV2qhomrM
android.telephony.ims.feature.CapabilityChangeRequest$1
@@ -5631,6 +5589,7 @@ android.view.WindowContentFrameStats$1
android.view.WindowContentFrameStats
android.view.WindowId$1
android.view.WindowInsets$Builder
+android.view.WindowInsets$Side
android.view.WindowInsets$Type
android.view.WindowInsets
android.view.WindowInsetsController
@@ -5801,9 +5760,7 @@ android.view.textclassifier.-$$Lambda$EntityConfidence$YPh8hwgSYYK8OyQ1kFlQngc71
android.view.textclassifier.-$$Lambda$L_UQMPjXwBN0ch4zL2dD82nf9RI
android.view.textclassifier.-$$Lambda$NxwbyZSxofZ4Z5SQhfXmtLQ1nxk
android.view.textclassifier.-$$Lambda$OGSS2qx6njxlnp0dnKb4lA3jnw8
-android.view.textclassifier.-$$Lambda$TextClassificationManager$SIydN2POphTO3AmPTLEMmXPLSKY
-android.view.textclassifier.-$$Lambda$TextClassificationManager$VwZ4EV_1i6FbjO7TtyaAnFL3oe0
-android.view.textclassifier.-$$Lambda$TextClassificationManager$oweIEhDWxy3_0kZSXp3oRbSuNW4
+android.view.textclassifier.-$$Lambda$TextClassificationManager$JIaezIJbMig_-kVzN6oArzkTsJE
android.view.textclassifier.-$$Lambda$TextClassifierImpl$RRbXefHgcUymI9-P95ArUyMvfbw
android.view.textclassifier.-$$Lambda$TextClassifierImpl$ftq-sQqJYwUdrdbbr9jz3p4AWos
android.view.textclassifier.-$$Lambda$TextClassifierImpl$iSt_Guet-O6Vtdk0MA4z-Z4lzaM
@@ -5813,7 +5770,6 @@ android.view.textclassifier.ActionsModelParamsSupplier$ActionsModelParams
android.view.textclassifier.ActionsModelParamsSupplier
android.view.textclassifier.ActionsSuggestionsHelper$PersonEncoder
android.view.textclassifier.ActionsSuggestionsHelper
-android.view.textclassifier.ConfigParser
android.view.textclassifier.ConversationAction$1
android.view.textclassifier.ConversationAction$Builder
android.view.textclassifier.ConversationAction
@@ -5915,7 +5871,6 @@ android.webkit.IWebViewUpdateService$Stub$Proxy
android.webkit.IWebViewUpdateService$Stub
android.webkit.IWebViewUpdateService
android.webkit.JavascriptInterface
-android.webkit.MimeTypeMap
android.webkit.ServiceWorkerClient
android.webkit.ServiceWorkerController
android.webkit.ServiceWorkerWebSettings
@@ -6066,6 +6021,7 @@ android.widget.Editor$TextRenderNode
android.widget.Editor$TextViewPositionListener
android.widget.Editor$UndoInputFilter
android.widget.Editor
+android.widget.EditorTouchState
android.widget.FastScroller$1
android.widget.FastScroller$2
android.widget.FastScroller$3
@@ -6294,45 +6250,11 @@ com.android.i18n.phonenumbers.internal.RegexBasedMatcher
com.android.i18n.phonenumbers.internal.RegexCache$LRUCache$1
com.android.i18n.phonenumbers.internal.RegexCache$LRUCache
com.android.i18n.phonenumbers.internal.RegexCache
-com.android.ims.-$$Lambda$ImsManager$CwzXIbVJZNvgdV2t7LH2gUKL7AA
-com.android.ims.-$$Lambda$ImsManager$D1JuJ3ba2jMHWDKlSpm03meBR1c
-com.android.ims.-$$Lambda$ImsManager$LiW49wt0wLMYHjgtAwL8NLIATfs
-com.android.ims.-$$Lambda$ImsManager$YhRaDrc3t9_7beNiU5gQcqZilOw
-com.android.ims.-$$Lambda$szO0o3matefQqo-6NB-dzsr9eCw
-com.android.ims.FeatureConnection$IFeatureUpdate
-com.android.ims.FeatureConnection
-com.android.ims.FeatureConnector$Listener
-com.android.ims.FeatureConnector
-com.android.ims.HandlerExecutor
-com.android.ims.IFeatureConnector
-com.android.ims.ImsCall$Listener
-com.android.ims.ImsCall
com.android.ims.ImsConfig
com.android.ims.ImsConfigListener$Stub
com.android.ims.ImsConfigListener
-com.android.ims.ImsEcbm$ImsEcbmListenerProxy
-com.android.ims.ImsEcbm
-com.android.ims.ImsEcbmStateListener
com.android.ims.ImsException
-com.android.ims.ImsExternalCallStateListener
-com.android.ims.ImsManager$2
-com.android.ims.ImsManager$3
-com.android.ims.ImsManager$ExecutorFactory
-com.android.ims.ImsManager$ImsExecutorFactory
-com.android.ims.ImsManager
-com.android.ims.ImsMultiEndpoint$ImsExternalCallStateListenerProxy
-com.android.ims.ImsMultiEndpoint
-com.android.ims.ImsUt$IImsUtListenerProxy
-com.android.ims.ImsUt
com.android.ims.ImsUtInterface
-com.android.ims.MmTelFeatureConnection$CallbackAdapterManager$1
-com.android.ims.MmTelFeatureConnection$CallbackAdapterManager
-com.android.ims.MmTelFeatureConnection$CapabilityCallbackManager
-com.android.ims.MmTelFeatureConnection$ImsRegistrationCallbackAdapter
-com.android.ims.MmTelFeatureConnection$ProvisioningCallbackManager
-com.android.ims.MmTelFeatureConnection
-com.android.ims.Registrant
-com.android.ims.internal.ICall
com.android.ims.internal.IImsCallSession
com.android.ims.internal.IImsEcbm$Stub
com.android.ims.internal.IImsEcbm
@@ -6351,7 +6273,6 @@ com.android.ims.internal.IImsUt$Stub
com.android.ims.internal.IImsUt
com.android.ims.internal.IImsUtListener$Stub
com.android.ims.internal.IImsUtListener
-com.android.ims.internal.ImsVideoCallProviderWrapper$ImsVideoProviderWrapperCallback
com.android.ims.internal.uce.UceServiceBase$UceServiceBinder
com.android.ims.internal.uce.UceServiceBase
com.android.ims.internal.uce.common.CapInfo$1
@@ -6779,144 +6700,22 @@ com.android.internal.telecom.IVideoProvider
com.android.internal.telecom.RemoteServiceCallback$Stub$Proxy
com.android.internal.telecom.RemoteServiceCallback$Stub
com.android.internal.telecom.RemoteServiceCallback
-com.android.internal.telephony.-$$Lambda$MultiSimSettingController$55347QtGjuukX-px3jYZkJd_z3U
-com.android.internal.telephony.-$$Lambda$MultiSimSettingController$DcLtrTEtdlCd4WOev4Zk79vrSko
-com.android.internal.telephony.-$$Lambda$MultiSimSettingController$WtGtOenjqxSBoW5BUjT-VlNoSTM
-com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$1zkPy06BwndFkKrGCUI1ORIPJcI
-com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$2WGP2Bp11k7_Xwi1N4YefElOUuM
-com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$2xgrYNleR8FFzFT8hEQx3mDtZ8g
-com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$AjZFvwh3Ujx5W3fleFNksc6bLf0
-com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$Ja9yTBcEYPqTRBIP-hL0otixVeE
-com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$P0j9hvO3e-UE9_1i1QM_ujl8Bpo
-com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$ZOtVAnuhxrXl2L906I6eTOentP0
-com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$bWluhZvk2X-dQ0UidKfdpd0kwuw
-com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$hh4N6_N4-PPm_vWjCdCRvS8--Cw
-com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$knEK4mNNOqbx_h4hWVcDSbY5kHE
-com.android.internal.telephony.-$$Lambda$PhoneSubInfoController$rpyQeO7zACcc5v4krwU9_qRMHL8
-com.android.internal.telephony.-$$Lambda$PhoneSwitcher$WfAxZbJDpCUxBytiUchQ87aGijQ
-com.android.internal.telephony.-$$Lambda$RIL$803u4JiCud_JSoDndvAhT13ZZqU
-com.android.internal.telephony.-$$Lambda$RIL$Ir4pOMTf7R0Jtw4O3F7JgMVtXO4
-com.android.internal.telephony.-$$Lambda$RIL$ZGWeCQ9boMO1_J1_yQ82l_jK-Nc
-com.android.internal.telephony.-$$Lambda$RIL$zYsQZAc3z9bM5fCaq_J0dn5kjjo
com.android.internal.telephony.-$$Lambda$RILConstants$ODSbRKyUeaOFMcez-ZudOmaKCBw
com.android.internal.telephony.-$$Lambda$RILConstants$zIAjDPNpW8a5C22QbMmMwM64vD8
-com.android.internal.telephony.-$$Lambda$RILRequest$VaC9ddQXT8qxCl7rcNKtUadFQoI
-com.android.internal.telephony.-$$Lambda$RadioIndication$GND6XxOOm1d_Ro76zEUFjA9OrEA
-com.android.internal.telephony.-$$Lambda$SubscriptionController$Nt_ojdeqo4C2mbuwymYLvwgOLGo
-com.android.internal.telephony.-$$Lambda$SubscriptionController$VCQsMNqRHpN3RyoXYzh2YUwA2yc
-com.android.internal.telephony.-$$Lambda$SubscriptionController$u5xE-urXR6ElZ50305_6guo20Fc
-com.android.internal.telephony.-$$Lambda$SubscriptionInfoUpdater$DY4i_CG7hrAeejGLeh3hMUZySnw
-com.android.internal.telephony.-$$Lambda$SubscriptionInfoUpdater$UFyB0ValfLD0rdGDibCjTnGFkeo
-com.android.internal.telephony.-$$Lambda$SubscriptionInfoUpdater$Y5woGfEDKrozRViLH7WF93qPEno
-com.android.internal.telephony.-$$Lambda$SubscriptionInfoUpdater$ZTY4uxKw17CHcHQzbBUF7m-dN-E
-com.android.internal.telephony.-$$Lambda$SubscriptionInfoUpdater$ecTEeMEIjOEa2z5W3wjqiicibbY
-com.android.internal.telephony.-$$Lambda$SubscriptionInfoUpdater$qyDxq2AWyReUxdc6HttVGQeDD3Y
-com.android.internal.telephony.-$$Lambda$SubscriptionInfoUpdater$tLUuQ7lYu8EjRd038qzQlDm-CtA
-com.android.internal.telephony.-$$Lambda$TelephonyComponentFactory$InjectedComponents$09rMKC8001jAR0zFrzzlPx26Xjs
-com.android.internal.telephony.-$$Lambda$TelephonyComponentFactory$InjectedComponents$DKjB_mCxFOHomOyKLPFU9-9Dywc
-com.android.internal.telephony.-$$Lambda$TelephonyComponentFactory$InjectedComponents$UYUq9z2WZwxqOLXquU0tTNN9wAs
-com.android.internal.telephony.-$$Lambda$TelephonyComponentFactory$InjectedComponents$eUdIxJOKoyVP5UmFJtWXBUO93Qk
-com.android.internal.telephony.-$$Lambda$TelephonyComponentFactory$InjectedComponents$nLdppNQT1Bv7QyIU3LwAwVD2K60
-com.android.internal.telephony.-$$Lambda$TelephonyPermissions$LxEEC4irBSbjD1lSC4EeVLgFY9I
-com.android.internal.telephony.-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw
-com.android.internal.telephony.-$$Lambda$WWHOcG5P4-jgjzPPgLwm-wN15OM
-com.android.internal.telephony.ATParseEx
-com.android.internal.telephony.AppSmsManager
-com.android.internal.telephony.BaseCommands
-com.android.internal.telephony.BlockChecker
-com.android.internal.telephony.Call$SrvccState
-com.android.internal.telephony.Call$State
-com.android.internal.telephony.Call
-com.android.internal.telephony.CallForwardInfo
-com.android.internal.telephony.CallManager$CallManagerHandler
-com.android.internal.telephony.CallManager
-com.android.internal.telephony.CallStateException
-com.android.internal.telephony.CallTracker
-com.android.internal.telephony.CarrierActionAgent$1
-com.android.internal.telephony.CarrierActionAgent
com.android.internal.telephony.CarrierAppUtils
-com.android.internal.telephony.CarrierInfoManager
-com.android.internal.telephony.CarrierKeyDownloadManager$1
-com.android.internal.telephony.CarrierKeyDownloadManager
-com.android.internal.telephony.CarrierResolver$1
-com.android.internal.telephony.CarrierResolver$2
-com.android.internal.telephony.CarrierResolver$CarrierMatchingRule
-com.android.internal.telephony.CarrierResolver
-com.android.internal.telephony.CarrierServiceBindHelper$1
-com.android.internal.telephony.CarrierServiceBindHelper$2
-com.android.internal.telephony.CarrierServiceBindHelper$AppBinding
-com.android.internal.telephony.CarrierServiceBindHelper$CarrierServiceConnection
-com.android.internal.telephony.CarrierServiceBindHelper$CarrierServicePackageMonitor
-com.android.internal.telephony.CarrierServiceBindHelper
-com.android.internal.telephony.CarrierServiceStateTracker$1
-com.android.internal.telephony.CarrierServiceStateTracker$2
-com.android.internal.telephony.CarrierServiceStateTracker$3
-com.android.internal.telephony.CarrierServiceStateTracker$EmergencyNetworkNotification
-com.android.internal.telephony.CarrierServiceStateTracker$NotificationType
-com.android.internal.telephony.CarrierServiceStateTracker$PrefNetworkNotification
-com.android.internal.telephony.CarrierServiceStateTracker
-com.android.internal.telephony.CarrierServicesSmsFilter$CallbackTimeoutHandler
-com.android.internal.telephony.CarrierServicesSmsFilter$CarrierServicesSmsFilterCallbackInterface
-com.android.internal.telephony.CarrierServicesSmsFilter
-com.android.internal.telephony.CarrierSignalAgent$1
-com.android.internal.telephony.CarrierSignalAgent
-com.android.internal.telephony.CarrierSmsUtils
-com.android.internal.telephony.CellBroadcastHandler
-com.android.internal.telephony.CellBroadcastServiceManager
com.android.internal.telephony.CellNetworkScanResult$1
com.android.internal.telephony.CellNetworkScanResult
-com.android.internal.telephony.CellularNetworkService$CellularNetworkServiceProvider$1
-com.android.internal.telephony.CellularNetworkService$CellularNetworkServiceProvider
-com.android.internal.telephony.CellularNetworkService
-com.android.internal.telephony.CellularNetworkValidator$ValidationCallback
-com.android.internal.telephony.CellularNetworkValidator
-com.android.internal.telephony.ClientWakelockAccountant
-com.android.internal.telephony.ClientWakelockTracker
-com.android.internal.telephony.CommandException$Error
-com.android.internal.telephony.CommandException
-com.android.internal.telephony.CommandsInterface
-com.android.internal.telephony.Connection$Listener
-com.android.internal.telephony.Connection$PostDialState
-com.android.internal.telephony.Connection
com.android.internal.telephony.DctConstants$Activity
com.android.internal.telephony.DctConstants$State
-com.android.internal.telephony.DebugService
-com.android.internal.telephony.DefaultPhoneNotifier$1
-com.android.internal.telephony.DefaultPhoneNotifier
-com.android.internal.telephony.DeviceStateMonitor$1
-com.android.internal.telephony.DeviceStateMonitor$2
-com.android.internal.telephony.DeviceStateMonitor$3
-com.android.internal.telephony.DeviceStateMonitor$AccessNetworkThresholds
-com.android.internal.telephony.DeviceStateMonitor
-com.android.internal.telephony.DriverCall$State
-com.android.internal.telephony.DriverCall
com.android.internal.telephony.EncodeException
com.android.internal.telephony.ExponentialBackoff$1
com.android.internal.telephony.ExponentialBackoff$HandlerAdapter
com.android.internal.telephony.ExponentialBackoff
-com.android.internal.telephony.GlobalSettingsHelper
com.android.internal.telephony.GsmAlphabet
-com.android.internal.telephony.GsmCdmaCall
-com.android.internal.telephony.GsmCdmaCallTracker$1
-com.android.internal.telephony.GsmCdmaCallTracker$2
-com.android.internal.telephony.GsmCdmaCallTracker$3
-com.android.internal.telephony.GsmCdmaCallTracker
-com.android.internal.telephony.GsmCdmaConnection
-com.android.internal.telephony.GsmCdmaPhone$1
-com.android.internal.telephony.GsmCdmaPhone$2
-com.android.internal.telephony.GsmCdmaPhone$3
-com.android.internal.telephony.GsmCdmaPhone$Cfu
-com.android.internal.telephony.GsmCdmaPhone
-com.android.internal.telephony.HalVersion
-com.android.internal.telephony.HardwareConfig
com.android.internal.telephony.HbpcdUtils
-com.android.internal.telephony.HexDump
com.android.internal.telephony.ICarrierConfigLoader$Stub$Proxy
com.android.internal.telephony.ICarrierConfigLoader$Stub
com.android.internal.telephony.ICarrierConfigLoader
-com.android.internal.telephony.IIccPhoneBook$Stub$Proxy
-com.android.internal.telephony.IIccPhoneBook$Stub
-com.android.internal.telephony.IIccPhoneBook
com.android.internal.telephony.IIntegerConsumer$Stub$Proxy
com.android.internal.telephony.IIntegerConsumer$Stub
com.android.internal.telephony.IIntegerConsumer
@@ -6944,7 +6743,6 @@ com.android.internal.telephony.ISms$Stub$Proxy
com.android.internal.telephony.ISms$Stub
com.android.internal.telephony.ISms
com.android.internal.telephony.ISmsImplBase
-com.android.internal.telephony.IState
com.android.internal.telephony.ISub$Stub$Proxy
com.android.internal.telephony.ISub$Stub
com.android.internal.telephony.ISub
@@ -6955,591 +6753,36 @@ com.android.internal.telephony.ITelephonyRegistry$Stub$Proxy
com.android.internal.telephony.ITelephonyRegistry$Stub
com.android.internal.telephony.ITelephonyRegistry
com.android.internal.telephony.IWapPushManager
-com.android.internal.telephony.IccCard
com.android.internal.telephony.IccCardConstants$State
-com.android.internal.telephony.IccPhoneBookInterfaceManager$1
-com.android.internal.telephony.IccPhoneBookInterfaceManager$Request
-com.android.internal.telephony.IccPhoneBookInterfaceManager
-com.android.internal.telephony.IccProvider
-com.android.internal.telephony.IccSmsInterfaceManager$1
-com.android.internal.telephony.IccSmsInterfaceManager$2
-com.android.internal.telephony.IccSmsInterfaceManager$CdmaBroadcastRangeManager
-com.android.internal.telephony.IccSmsInterfaceManager$CellBroadcastRangeManager
-com.android.internal.telephony.IccSmsInterfaceManager
-com.android.internal.telephony.ImsSmsDispatcher$1
-com.android.internal.telephony.ImsSmsDispatcher$2
-com.android.internal.telephony.ImsSmsDispatcher$3
-com.android.internal.telephony.ImsSmsDispatcher$4
-com.android.internal.telephony.ImsSmsDispatcher
-com.android.internal.telephony.InboundSmsHandler$1
-com.android.internal.telephony.InboundSmsHandler$2
-com.android.internal.telephony.InboundSmsHandler$CarrierServicesSmsFilterCallback
-com.android.internal.telephony.InboundSmsHandler$CbTestBroadcastReceiver
-com.android.internal.telephony.InboundSmsHandler$DefaultState
-com.android.internal.telephony.InboundSmsHandler$DeliveringState
-com.android.internal.telephony.InboundSmsHandler$IdleState
-com.android.internal.telephony.InboundSmsHandler$NewMessageNotificationActionReceiver
-com.android.internal.telephony.InboundSmsHandler$SmsBroadcastReceiver
-com.android.internal.telephony.InboundSmsHandler$StartupState
-com.android.internal.telephony.InboundSmsHandler$WaitingState
-com.android.internal.telephony.InboundSmsHandler
-com.android.internal.telephony.InboundSmsTracker
-com.android.internal.telephony.IntRangeManager$ClientRange
-com.android.internal.telephony.IntRangeManager$IntRange
-com.android.internal.telephony.IntRangeManager
-com.android.internal.telephony.IntentBroadcaster$1
-com.android.internal.telephony.IntentBroadcaster
-com.android.internal.telephony.LastCallFailCause
-com.android.internal.telephony.LinkCapacityEstimate
-com.android.internal.telephony.LocalLog
-com.android.internal.telephony.LocaleTracker$1
-com.android.internal.telephony.LocaleTracker
-com.android.internal.telephony.MccTable$MccEntry
-com.android.internal.telephony.MccTable$MccMnc
-com.android.internal.telephony.MccTable
-com.android.internal.telephony.MmiCode
-com.android.internal.telephony.MultiSimSettingController$1
-com.android.internal.telephony.MultiSimSettingController$UpdateDefaultAction
-com.android.internal.telephony.MultiSimSettingController
-com.android.internal.telephony.NetworkRegistrationManager$1
-com.android.internal.telephony.NetworkRegistrationManager$NetworkRegStateCallback
-com.android.internal.telephony.NetworkRegistrationManager$NetworkServiceConnection
-com.android.internal.telephony.NetworkRegistrationManager$RegManagerDeathRecipient
-com.android.internal.telephony.NetworkRegistrationManager
-com.android.internal.telephony.NetworkScanRequestTracker$1
-com.android.internal.telephony.NetworkScanRequestTracker$NetworkScanRequestScheduler
-com.android.internal.telephony.NetworkScanRequestTracker
-com.android.internal.telephony.NitzData
-com.android.internal.telephony.NitzStateMachine$DeviceState
-com.android.internal.telephony.NitzStateMachine
-com.android.internal.telephony.NitzStateMachineImpl
-com.android.internal.telephony.OemHookIndication
-com.android.internal.telephony.OemHookResponse
com.android.internal.telephony.OperatorInfo$1
com.android.internal.telephony.OperatorInfo$State
com.android.internal.telephony.OperatorInfo
-com.android.internal.telephony.Phone$1
-com.android.internal.telephony.Phone
-com.android.internal.telephony.PhoneConfigurationManager$ConfigManagerHandler
-com.android.internal.telephony.PhoneConfigurationManager$MockableInterface
-com.android.internal.telephony.PhoneConfigurationManager
com.android.internal.telephony.PhoneConstantConversions$1
com.android.internal.telephony.PhoneConstantConversions
com.android.internal.telephony.PhoneConstants$DataState
com.android.internal.telephony.PhoneConstants$State
-com.android.internal.telephony.PhoneFactory
-com.android.internal.telephony.PhoneInternalInterface$DataActivityState
-com.android.internal.telephony.PhoneInternalInterface$DialArgs$Builder
-com.android.internal.telephony.PhoneInternalInterface$DialArgs
-com.android.internal.telephony.PhoneInternalInterface$SuppService
-com.android.internal.telephony.PhoneInternalInterface
-com.android.internal.telephony.PhoneNotifier
-com.android.internal.telephony.PhoneStateIntentReceiver
-com.android.internal.telephony.PhoneSubInfoController$CallPhoneMethodHelper
-com.android.internal.telephony.PhoneSubInfoController$PermissionCheckHelper
-com.android.internal.telephony.PhoneSubInfoController
-com.android.internal.telephony.PhoneSwitcher$1
-com.android.internal.telephony.PhoneSwitcher$2
-com.android.internal.telephony.PhoneSwitcher$3
-com.android.internal.telephony.PhoneSwitcher$DefaultNetworkCallback
-com.android.internal.telephony.PhoneSwitcher$EmergencyOverrideRequest
-com.android.internal.telephony.PhoneSwitcher$PhoneState
-com.android.internal.telephony.PhoneSwitcher$PhoneSwitcherNetworkRequestListener
-com.android.internal.telephony.PhoneSwitcher
-com.android.internal.telephony.ProxyController$1
-com.android.internal.telephony.ProxyController
-com.android.internal.telephony.RIL$RadioProxyDeathRecipient
-com.android.internal.telephony.RIL$RilHandler
-com.android.internal.telephony.RIL
com.android.internal.telephony.RILConstants
-com.android.internal.telephony.RILRequest
-com.android.internal.telephony.RadioBugDetector
-com.android.internal.telephony.RadioCapability
-com.android.internal.telephony.RadioConfig$ServiceDeathRecipient
-com.android.internal.telephony.RadioConfig
-com.android.internal.telephony.RadioConfigIndication
-com.android.internal.telephony.RadioConfigResponse
-com.android.internal.telephony.RadioIndication
-com.android.internal.telephony.RadioResponse
-com.android.internal.telephony.RatRatcheter$1
-com.android.internal.telephony.RatRatcheter
-com.android.internal.telephony.Registrant
-com.android.internal.telephony.RegistrantList
-com.android.internal.telephony.RestrictedState
-com.android.internal.telephony.RetryManager$RetryRec
-com.android.internal.telephony.RetryManager
-com.android.internal.telephony.RilWakelockInfo
-com.android.internal.telephony.SMSDispatcher$DataSmsSender
-com.android.internal.telephony.SMSDispatcher$SettingsObserver
-com.android.internal.telephony.SMSDispatcher$SmsSender
-com.android.internal.telephony.SMSDispatcher$SmsSenderCallback
-com.android.internal.telephony.SMSDispatcher$SmsTracker
-com.android.internal.telephony.SMSDispatcher$TextSmsSender
-com.android.internal.telephony.SMSDispatcher
-com.android.internal.telephony.ServiceStateTracker$1
-com.android.internal.telephony.ServiceStateTracker$SstSubscriptionsChangedListener
-com.android.internal.telephony.ServiceStateTracker
-com.android.internal.telephony.SettingsObserver
-com.android.internal.telephony.SimActivationTracker$1
-com.android.internal.telephony.SimActivationTracker
com.android.internal.telephony.SmsAddress
com.android.internal.telephony.SmsApplication$SmsApplicationData
com.android.internal.telephony.SmsApplication$SmsPackageMonitor
com.android.internal.telephony.SmsApplication
-com.android.internal.telephony.SmsBroadcastUndelivered$1
-com.android.internal.telephony.SmsBroadcastUndelivered$2
-com.android.internal.telephony.SmsBroadcastUndelivered$ScanRawTableThread
-com.android.internal.telephony.SmsBroadcastUndelivered$SmsReferenceKey
-com.android.internal.telephony.SmsBroadcastUndelivered
com.android.internal.telephony.SmsConstants$MessageClass
-com.android.internal.telephony.SmsController
-com.android.internal.telephony.SmsDispatchersController$1
-com.android.internal.telephony.SmsDispatchersController
-com.android.internal.telephony.SmsHeader$ConcatRef
-com.android.internal.telephony.SmsHeader$PortAddrs
-com.android.internal.telephony.SmsHeader
-com.android.internal.telephony.SmsMessageBase$SubmitPduBase
com.android.internal.telephony.SmsMessageBase
com.android.internal.telephony.SmsNumberUtils
-com.android.internal.telephony.SmsPermissions
-com.android.internal.telephony.SmsResponse
-com.android.internal.telephony.SmsStorageMonitor$1
-com.android.internal.telephony.SmsStorageMonitor
-com.android.internal.telephony.SmsUsageMonitor$SettingsObserver
-com.android.internal.telephony.SmsUsageMonitor$SettingsObserverHandler
-com.android.internal.telephony.SmsUsageMonitor
-com.android.internal.telephony.SomeArgs
-com.android.internal.telephony.State
-com.android.internal.telephony.StateMachine$LogRecords
-com.android.internal.telephony.StateMachine$SmHandler
-com.android.internal.telephony.StateMachine
-com.android.internal.telephony.SubscriptionController
-com.android.internal.telephony.SubscriptionInfoUpdater$1
-com.android.internal.telephony.SubscriptionInfoUpdater$UpdateEmbeddedSubsCallback
-com.android.internal.telephony.SubscriptionInfoUpdater
-com.android.internal.telephony.TelephonyCapabilities
-com.android.internal.telephony.TelephonyComponentFactory$InjectedComponents
-com.android.internal.telephony.TelephonyComponentFactory
-com.android.internal.telephony.TelephonyDevController
com.android.internal.telephony.TelephonyPermissions
-com.android.internal.telephony.TelephonyTester$1
-com.android.internal.telephony.TelephonyTester
-com.android.internal.telephony.TimeServiceHelper
-com.android.internal.telephony.TimeUtils
-com.android.internal.telephony.TimeZoneLookupHelper$CountryResult
-com.android.internal.telephony.TimeZoneLookupHelper$OffsetResult
-com.android.internal.telephony.TimeZoneLookupHelper
-com.android.internal.telephony.UUSInfo
-com.android.internal.telephony.UiccPhoneBookController
-com.android.internal.telephony.VisualVoicemailSmsFilter$1
-com.android.internal.telephony.VisualVoicemailSmsFilter$PhoneAccountHandleConverter
-com.android.internal.telephony.VisualVoicemailSmsFilter
-com.android.internal.telephony.WakeLockStateMachine$1
-com.android.internal.telephony.WakeLockStateMachine$DefaultState
-com.android.internal.telephony.WakeLockStateMachine$IdleState
-com.android.internal.telephony.WakeLockStateMachine$WaitingState
-com.android.internal.telephony.WakeLockStateMachine
-com.android.internal.telephony.WapPushOverSms$1
-com.android.internal.telephony.WapPushOverSms$BindServiceThread
-com.android.internal.telephony.WapPushOverSms
-com.android.internal.telephony.cat.AppInterface$CommandType
-com.android.internal.telephony.cat.AppInterface
-com.android.internal.telephony.cat.BIPClientParams
-com.android.internal.telephony.cat.BerTlv
-com.android.internal.telephony.cat.CallSetupParams
-com.android.internal.telephony.cat.CatCmdMessage$1
-com.android.internal.telephony.cat.CatCmdMessage
-com.android.internal.telephony.cat.CatException
-com.android.internal.telephony.cat.CatLog
-com.android.internal.telephony.cat.CatResponseMessage
-com.android.internal.telephony.cat.CatService$1
-com.android.internal.telephony.cat.CatService
-com.android.internal.telephony.cat.CommandDetails
-com.android.internal.telephony.cat.CommandParams
-com.android.internal.telephony.cat.CommandParamsFactory$1
-com.android.internal.telephony.cat.CommandParamsFactory
-com.android.internal.telephony.cat.ComprehensionTlv
-com.android.internal.telephony.cat.ComprehensionTlvTag
-com.android.internal.telephony.cat.DTTZResponseData
-com.android.internal.telephony.cat.DisplayTextParams
-com.android.internal.telephony.cat.IconLoader
-com.android.internal.telephony.cat.LanguageParams
-com.android.internal.telephony.cat.LanguageResponseData
-com.android.internal.telephony.cat.LaunchBrowserParams
-com.android.internal.telephony.cat.ResponseData
-com.android.internal.telephony.cat.ResultCode
-com.android.internal.telephony.cat.ResultException
-com.android.internal.telephony.cat.RilMessage
-com.android.internal.telephony.cat.RilMessageDecoder$StateCmdParamsReady
-com.android.internal.telephony.cat.RilMessageDecoder$StateStart
-com.android.internal.telephony.cat.RilMessageDecoder
-com.android.internal.telephony.cat.TextMessage
-com.android.internal.telephony.cat.ValueObject
-com.android.internal.telephony.cat.ValueParser
-com.android.internal.telephony.cdma.-$$Lambda$CdmaInboundSmsHandler$sD3UQ6e4SE9ZbPjDZ9bEr_XRoaA
-com.android.internal.telephony.cdma.CdmaCallWaitingNotification
-com.android.internal.telephony.cdma.CdmaInboundSmsHandler$CdmaCbTestBroadcastReceiver
-com.android.internal.telephony.cdma.CdmaInboundSmsHandler$CdmaScpTestBroadcastReceiver
-com.android.internal.telephony.cdma.CdmaInboundSmsHandler
-com.android.internal.telephony.cdma.CdmaSMSDispatcher
-com.android.internal.telephony.cdma.CdmaServiceCategoryProgramHandler$1
-com.android.internal.telephony.cdma.CdmaServiceCategoryProgramHandler
-com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo
-com.android.internal.telephony.cdma.CdmaSubscriptionSourceManager
-com.android.internal.telephony.cdma.EriInfo
-com.android.internal.telephony.cdma.EriManager$EriFile
-com.android.internal.telephony.cdma.EriManager
com.android.internal.telephony.cdma.SmsMessage
-com.android.internal.telephony.cdnr.CarrierDisplayNameData$1
-com.android.internal.telephony.cdnr.CarrierDisplayNameData$Builder
-com.android.internal.telephony.cdnr.CarrierDisplayNameData
-com.android.internal.telephony.cdnr.CarrierDisplayNameResolver$CarrierDisplayNameConditionRule
-com.android.internal.telephony.cdnr.CarrierDisplayNameResolver
-com.android.internal.telephony.dataconnection.-$$Lambda$DataConnection$-tFSpFGzTv_UdpzJlTMOvg8VO98
-com.android.internal.telephony.dataconnection.-$$Lambda$XZAGhHrbkIDyusER4MAM6luKcT0
-com.android.internal.telephony.dataconnection.AccessNetworksManager$1
-com.android.internal.telephony.dataconnection.AccessNetworksManager
-com.android.internal.telephony.dataconnection.ApnContext
-com.android.internal.telephony.dataconnection.ApnSettingUtils
-com.android.internal.telephony.dataconnection.CellularDataService$CellularDataServiceProvider$1
-com.android.internal.telephony.dataconnection.CellularDataService$CellularDataServiceProvider
-com.android.internal.telephony.dataconnection.CellularDataService
-com.android.internal.telephony.dataconnection.DataConnection$2
-com.android.internal.telephony.dataconnection.DataConnection$ConnectionParams
-com.android.internal.telephony.dataconnection.DataConnection$DcActivatingState
-com.android.internal.telephony.dataconnection.DataConnection$DcActiveState
-com.android.internal.telephony.dataconnection.DataConnection$DcDefaultState
-com.android.internal.telephony.dataconnection.DataConnection$DcDisconnectingState
-com.android.internal.telephony.dataconnection.DataConnection$DcDisconnectionErrorCreatingConnection
-com.android.internal.telephony.dataconnection.DataConnection$DcInactiveState
-com.android.internal.telephony.dataconnection.DataConnection$DisconnectParams
-com.android.internal.telephony.dataconnection.DataConnection$SetupResult
-com.android.internal.telephony.dataconnection.DataConnection$UpdateLinkPropertyResult
-com.android.internal.telephony.dataconnection.DataConnection
-com.android.internal.telephony.dataconnection.DataConnectionReasons$DataAllowedReasonType
-com.android.internal.telephony.dataconnection.DataConnectionReasons$DataDisallowedReasonType
-com.android.internal.telephony.dataconnection.DataConnectionReasons
-com.android.internal.telephony.dataconnection.DataEnabledOverride$OverrideConditions
-com.android.internal.telephony.dataconnection.DataEnabledOverride$OverrideRule
-com.android.internal.telephony.dataconnection.DataEnabledOverride
-com.android.internal.telephony.dataconnection.DataEnabledSettings$1
-com.android.internal.telephony.dataconnection.DataEnabledSettings$2
-com.android.internal.telephony.dataconnection.DataEnabledSettings
-com.android.internal.telephony.dataconnection.DataServiceManager$1
-com.android.internal.telephony.dataconnection.DataServiceManager$CellularDataServiceCallback
-com.android.internal.telephony.dataconnection.DataServiceManager$CellularDataServiceConnection
-com.android.internal.telephony.dataconnection.DataServiceManager$DataServiceManagerDeathRecipient
-com.android.internal.telephony.dataconnection.DataServiceManager
-com.android.internal.telephony.dataconnection.DcController$1
-com.android.internal.telephony.dataconnection.DcController$DccDefaultState
-com.android.internal.telephony.dataconnection.DcController
-com.android.internal.telephony.dataconnection.DcFailBringUp
-com.android.internal.telephony.dataconnection.DcNetworkAgent$DcKeepaliveTracker
-com.android.internal.telephony.dataconnection.DcNetworkAgent
-com.android.internal.telephony.dataconnection.DcRequest
-com.android.internal.telephony.dataconnection.DcTesterDeactivateAll$1
-com.android.internal.telephony.dataconnection.DcTesterDeactivateAll
-com.android.internal.telephony.dataconnection.DcTesterFailBringUpAll$1
-com.android.internal.telephony.dataconnection.DcTesterFailBringUpAll
-com.android.internal.telephony.dataconnection.DcTracker$1
-com.android.internal.telephony.dataconnection.DcTracker$2
-com.android.internal.telephony.dataconnection.DcTracker$3
-com.android.internal.telephony.dataconnection.DcTracker$4
-com.android.internal.telephony.dataconnection.DcTracker$5
-com.android.internal.telephony.dataconnection.DcTracker$6
-com.android.internal.telephony.dataconnection.DcTracker$ApnChangeObserver
-com.android.internal.telephony.dataconnection.DcTracker$DataStallRecoveryHandler
-com.android.internal.telephony.dataconnection.DcTracker$DctOnSubscriptionsChangedListener
-com.android.internal.telephony.dataconnection.DcTracker$ProvisionNotificationBroadcastReceiver
-com.android.internal.telephony.dataconnection.DcTracker$RetryFailures
-com.android.internal.telephony.dataconnection.DcTracker$TxRxSum
-com.android.internal.telephony.dataconnection.DcTracker
-com.android.internal.telephony.dataconnection.KeepaliveStatus$1
-com.android.internal.telephony.dataconnection.KeepaliveStatus
-com.android.internal.telephony.dataconnection.TelephonyNetworkFactory$InternalHandler
-com.android.internal.telephony.dataconnection.TelephonyNetworkFactory
-com.android.internal.telephony.dataconnection.TransportManager$HandoverParams
-com.android.internal.telephony.dataconnection.TransportManager
-com.android.internal.telephony.emergency.EmergencyNumberTracker$1
-com.android.internal.telephony.emergency.EmergencyNumberTracker
-com.android.internal.telephony.euicc.-$$Lambda$EuiccConnector$ConnectedState$4$S52i3hpE3-FGho807KZ1LR5rXQM
-com.android.internal.telephony.euicc.EuiccCardController$SimSlotStatusChangedBroadcastReceiver
-com.android.internal.telephony.euicc.EuiccCardController
-com.android.internal.telephony.euicc.EuiccConnector$1
-com.android.internal.telephony.euicc.EuiccConnector$AvailableState
-com.android.internal.telephony.euicc.EuiccConnector$BaseEuiccCommandCallback
-com.android.internal.telephony.euicc.EuiccConnector$BindingState
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$10
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$11
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$12
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$13
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$14
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$1
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$2
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$3
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$4
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$5
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$6
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$7
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$8
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState$9
-com.android.internal.telephony.euicc.EuiccConnector$ConnectedState
-com.android.internal.telephony.euicc.EuiccConnector$DeleteRequest
-com.android.internal.telephony.euicc.EuiccConnector$DisconnectedState
-com.android.internal.telephony.euicc.EuiccConnector$DownloadRequest
-com.android.internal.telephony.euicc.EuiccConnector$EuiccPackageMonitor
-com.android.internal.telephony.euicc.EuiccConnector$GetDefaultListRequest
-com.android.internal.telephony.euicc.EuiccConnector$GetEuiccProfileInfoListCommandCallback
-com.android.internal.telephony.euicc.EuiccConnector$GetMetadataRequest
-com.android.internal.telephony.euicc.EuiccConnector$SwitchRequest
-com.android.internal.telephony.euicc.EuiccConnector$UnavailableState
-com.android.internal.telephony.euicc.EuiccConnector$UpdateNicknameRequest
-com.android.internal.telephony.euicc.EuiccConnector
-com.android.internal.telephony.euicc.EuiccController$3
-com.android.internal.telephony.euicc.EuiccController
com.android.internal.telephony.euicc.IEuiccCardController$Stub
com.android.internal.telephony.euicc.IEuiccCardController
com.android.internal.telephony.euicc.IEuiccController$Stub$Proxy
com.android.internal.telephony.euicc.IEuiccController$Stub
com.android.internal.telephony.euicc.IEuiccController
-com.android.internal.telephony.gsm.GsmCellBroadcastHandler
-com.android.internal.telephony.gsm.GsmInboundSmsHandler$GsmCbTestBroadcastReceiver
-com.android.internal.telephony.gsm.GsmInboundSmsHandler
-com.android.internal.telephony.gsm.GsmMmiCode
-com.android.internal.telephony.gsm.GsmSMSDispatcher
-com.android.internal.telephony.gsm.SimTlv
com.android.internal.telephony.gsm.SmsBroadcastConfigInfo
com.android.internal.telephony.gsm.SmsMessage
-com.android.internal.telephony.gsm.SuppServiceNotification
-com.android.internal.telephony.gsm.UsimDataDownloadHandler
-com.android.internal.telephony.gsm.UsimPhoneBookManager$File
-com.android.internal.telephony.gsm.UsimPhoneBookManager$PbrRecord
-com.android.internal.telephony.gsm.UsimPhoneBookManager
-com.android.internal.telephony.ims.-$$Lambda$ImsResolver$-jFhgP_NotuFSwzjQBXWuvls4x4
-com.android.internal.telephony.ims.-$$Lambda$ImsResolver$SIkPixr-qGLIK-usUJIKu6S5BBs
-com.android.internal.telephony.ims.-$$Lambda$ImsResolver$VfY5To_kbbTJevLzywTg-_S1JhA
-com.android.internal.telephony.ims.-$$Lambda$ImsResolver$aWLlEvfonhYSfDR8cVsM6A5pmqI
-com.android.internal.telephony.ims.-$$Lambda$ImsResolver$kF808g2NWzNL8H1SwzDc1FxiQdQ
-com.android.internal.telephony.ims.-$$Lambda$ImsResolver$pNx4XUM9FmR6cV_MCAGiEt8F4pg
-com.android.internal.telephony.ims.-$$Lambda$ImsResolver$rPjfocpARQ2sab24iic4o3kTTgw
-com.android.internal.telephony.ims.-$$Lambda$ImsServiceController$w3xbtqEhKr7IY81qFuw0e94p84Y
-com.android.internal.telephony.ims.-$$Lambda$WVd6ghNMbVDukmkxia3ZwNeZzEY
-com.android.internal.telephony.ims.-$$Lambda$WamP7BPq0j01TgYE3GvUqU3b-rs
-com.android.internal.telephony.ims.ImsResolver$1
-com.android.internal.telephony.ims.ImsResolver$2
-com.android.internal.telephony.ims.ImsResolver$3
-com.android.internal.telephony.ims.ImsResolver$4
-com.android.internal.telephony.ims.ImsResolver$5
-com.android.internal.telephony.ims.ImsResolver$6
-com.android.internal.telephony.ims.ImsResolver$7
-com.android.internal.telephony.ims.ImsResolver$8
-com.android.internal.telephony.ims.ImsResolver$9
-com.android.internal.telephony.ims.ImsResolver$ImsDynamicQueryManagerFactory
-com.android.internal.telephony.ims.ImsResolver$ImsServiceControllerFactory
-com.android.internal.telephony.ims.ImsResolver$ImsServiceInfo
-com.android.internal.telephony.ims.ImsResolver$SubscriptionManagerProxy
-com.android.internal.telephony.ims.ImsResolver$TelephonyManagerProxy
-com.android.internal.telephony.ims.ImsResolver
-com.android.internal.telephony.ims.ImsServiceController$1
-com.android.internal.telephony.ims.ImsServiceController$2
-com.android.internal.telephony.ims.ImsServiceController$3
-com.android.internal.telephony.ims.ImsServiceController$ImsFeatureContainer
-com.android.internal.telephony.ims.ImsServiceController$ImsFeatureStatusCallback$1
-com.android.internal.telephony.ims.ImsServiceController$ImsFeatureStatusCallback
-com.android.internal.telephony.ims.ImsServiceController$ImsServiceConnection
-com.android.internal.telephony.ims.ImsServiceController$ImsServiceControllerCallbacks
-com.android.internal.telephony.ims.ImsServiceController$RebindRetry
-com.android.internal.telephony.ims.ImsServiceController
-com.android.internal.telephony.ims.ImsServiceFeatureQueryManager$ImsServiceFeatureQuery
-com.android.internal.telephony.ims.ImsServiceFeatureQueryManager$Listener
-com.android.internal.telephony.ims.ImsServiceFeatureQueryManager
-com.android.internal.telephony.ims.RcsEventQueryHelper
-com.android.internal.telephony.ims.RcsMessageController
-com.android.internal.telephony.ims.RcsMessageQueryHelper
-com.android.internal.telephony.ims.RcsMessageStoreUtil
-com.android.internal.telephony.ims.RcsParticipantQueryHelper
-com.android.internal.telephony.imsphone.-$$Lambda$ImsPhoneCallTracker$QlPVd_3u4_verjHUDnkn6zaSe54
-com.android.internal.telephony.imsphone.-$$Lambda$ImsPhoneCallTracker$Zw03itjXT6-LrhiYuD-9nKFg2Wg
-com.android.internal.telephony.imsphone.ImsExternalCallTracker$1
-com.android.internal.telephony.imsphone.ImsExternalCallTracker$2
-com.android.internal.telephony.imsphone.ImsExternalCallTracker$ExternalCallStateListener
-com.android.internal.telephony.imsphone.ImsExternalCallTracker$ExternalConnectionListener
-com.android.internal.telephony.imsphone.ImsExternalCallTracker$ImsCallNotify
-com.android.internal.telephony.imsphone.ImsExternalCallTracker
-com.android.internal.telephony.imsphone.ImsExternalConnection$Listener
-com.android.internal.telephony.imsphone.ImsExternalConnection
-com.android.internal.telephony.imsphone.ImsPhone$1
-com.android.internal.telephony.imsphone.ImsPhone$2
-com.android.internal.telephony.imsphone.ImsPhone$3
-com.android.internal.telephony.imsphone.ImsPhone$4
-com.android.internal.telephony.imsphone.ImsPhone$5
-com.android.internal.telephony.imsphone.ImsPhone$Cf
-com.android.internal.telephony.imsphone.ImsPhone$ImsDialArgs$Builder
-com.android.internal.telephony.imsphone.ImsPhone
-com.android.internal.telephony.imsphone.ImsPhoneBase
-com.android.internal.telephony.imsphone.ImsPhoneCall
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$1
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$2
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$3
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$4
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$5
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$6
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$7
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$8
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$9
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$HoldSwapState
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$MmTelFeatureListener
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$PhoneNumberUtilsProxy
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$PhoneStateListener
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker$SharedPreferenceProxy
-com.android.internal.telephony.imsphone.ImsPhoneCallTracker
-com.android.internal.telephony.imsphone.ImsPhoneCommandInterface
-com.android.internal.telephony.imsphone.ImsPhoneConnection
-com.android.internal.telephony.imsphone.ImsPhoneFactory
-com.android.internal.telephony.imsphone.ImsPhoneMmiCode
-com.android.internal.telephony.imsphone.ImsPullCall
-com.android.internal.telephony.metrics.-$$Lambda$TelephonyMetrics$fLmZDbNadlr6LF7zSJ6jCR1AAsk
-com.android.internal.telephony.metrics.-$$Lambda$TelephonyMetrics$tQOsX1lKb2eTuPp-1rpkeIAEOoY
-com.android.internal.telephony.metrics.-$$Lambda$TelephonyMetrics$x2dJi76S2YQdpSTfY8RZ8qC_K6g
-com.android.internal.telephony.metrics.CallSessionEventBuilder
-com.android.internal.telephony.metrics.InProgressCallSession
-com.android.internal.telephony.metrics.InProgressSmsSession
-com.android.internal.telephony.metrics.ModemPowerMetrics
-com.android.internal.telephony.metrics.SmsSessionEventBuilder
-com.android.internal.telephony.metrics.TelephonyEventBuilder
-com.android.internal.telephony.metrics.TelephonyMetrics$1
-com.android.internal.telephony.metrics.TelephonyMetrics
-com.android.internal.telephony.nano.CarrierIdProto$CarrierAttribute
-com.android.internal.telephony.nano.CarrierIdProto$CarrierId
-com.android.internal.telephony.nano.CarrierIdProto$CarrierList
-com.android.internal.telephony.nano.TelephonyProto$ActiveSubscriptionInfo
-com.android.internal.telephony.nano.TelephonyProto$EmergencyNumberInfo
-com.android.internal.telephony.nano.TelephonyProto$ImsCapabilities
-com.android.internal.telephony.nano.TelephonyProto$ImsConnectionState
-com.android.internal.telephony.nano.TelephonyProto$ImsReasonInfo
-com.android.internal.telephony.nano.TelephonyProto$ModemPowerStats
-com.android.internal.telephony.nano.TelephonyProto$RilDataCall
-com.android.internal.telephony.nano.TelephonyProto$SmsSession$Event
-com.android.internal.telephony.nano.TelephonyProto$SmsSession
-com.android.internal.telephony.nano.TelephonyProto$TelephonyCallSession$Event$RilCall
-com.android.internal.telephony.nano.TelephonyProto$TelephonyCallSession$Event
-com.android.internal.telephony.nano.TelephonyProto$TelephonyCallSession
-com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$CarrierIdMatching
-com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$CarrierIdMatchingResult
-com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$DataSwitch
-com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$NetworkCapabilitiesInfo
-com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$OnDemandDataSwitch
-com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$RilDeactivateDataCall
-com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$RilSetupDataCall
-com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent$RilSetupDataCallResponse
-com.android.internal.telephony.nano.TelephonyProto$TelephonyEvent
-com.android.internal.telephony.nano.TelephonyProto$TelephonyHistogram
-com.android.internal.telephony.nano.TelephonyProto$TelephonyLog
-com.android.internal.telephony.nano.TelephonyProto$TelephonyServiceState$TelephonyOperator
-com.android.internal.telephony.nano.TelephonyProto$TelephonyServiceState
-com.android.internal.telephony.nano.TelephonyProto$TelephonySettings
-com.android.internal.telephony.nano.TelephonyProto$Time
-com.android.internal.telephony.nitz.NewNitzStateMachineImpl
-com.android.internal.telephony.protobuf.nano.CodedInputByteBufferNano
-com.android.internal.telephony.protobuf.nano.CodedOutputByteBufferNano$OutOfSpaceException
-com.android.internal.telephony.protobuf.nano.CodedOutputByteBufferNano
-com.android.internal.telephony.protobuf.nano.ExtendableMessageNano
-com.android.internal.telephony.protobuf.nano.FieldArray
-com.android.internal.telephony.protobuf.nano.FieldData
-com.android.internal.telephony.protobuf.nano.InternalNano
-com.android.internal.telephony.protobuf.nano.InvalidProtocolBufferNanoException
-com.android.internal.telephony.protobuf.nano.MessageNano
-com.android.internal.telephony.protobuf.nano.MessageNanoPrinter
-com.android.internal.telephony.protobuf.nano.WireFormatNano
-com.android.internal.telephony.sip.SipPhone
-com.android.internal.telephony.sip.SipPhoneBase
-com.android.internal.telephony.test.SimulatedRadioControl
-com.android.internal.telephony.uicc.AdnRecord$1
-com.android.internal.telephony.uicc.AdnRecord
-com.android.internal.telephony.uicc.AdnRecordCache
-com.android.internal.telephony.uicc.AdnRecordLoader
-com.android.internal.telephony.uicc.AnswerToReset$HistoricalBytes
-com.android.internal.telephony.uicc.AnswerToReset$InterfaceByte
-com.android.internal.telephony.uicc.AnswerToReset
-com.android.internal.telephony.uicc.CarrierTestOverride
-com.android.internal.telephony.uicc.CsimFileHandler
-com.android.internal.telephony.uicc.IccCardApplicationStatus$AppState
-com.android.internal.telephony.uicc.IccCardApplicationStatus$AppType
-com.android.internal.telephony.uicc.IccCardApplicationStatus$PersoSubState
-com.android.internal.telephony.uicc.IccCardApplicationStatus
-com.android.internal.telephony.uicc.IccCardStatus$CardState
-com.android.internal.telephony.uicc.IccCardStatus$PinState
-com.android.internal.telephony.uicc.IccCardStatus
-com.android.internal.telephony.uicc.IccConstants
-com.android.internal.telephony.uicc.IccException
-com.android.internal.telephony.uicc.IccFileHandler$LoadLinearFixedContext
-com.android.internal.telephony.uicc.IccFileHandler
-com.android.internal.telephony.uicc.IccFileNotFound
-com.android.internal.telephony.uicc.IccFileTypeMismatch
-com.android.internal.telephony.uicc.IccIoResult
-com.android.internal.telephony.uicc.IccRecords$IccRecordLoaded
-com.android.internal.telephony.uicc.IccRecords
-com.android.internal.telephony.uicc.IccRefreshResponse
-com.android.internal.telephony.uicc.IccServiceTable
-com.android.internal.telephony.uicc.IccSlotStatus$SlotState
-com.android.internal.telephony.uicc.IccSlotStatus
com.android.internal.telephony.uicc.IccUtils
-com.android.internal.telephony.uicc.IccVmNotSupportedException
-com.android.internal.telephony.uicc.InstallCarrierAppTrampolineActivity
-com.android.internal.telephony.uicc.InstallCarrierAppUtils
-com.android.internal.telephony.uicc.IsimFileHandler
-com.android.internal.telephony.uicc.IsimRecords
-com.android.internal.telephony.uicc.IsimUiccRecords$EfIsimDomainLoaded
-com.android.internal.telephony.uicc.IsimUiccRecords$EfIsimImpiLoaded
-com.android.internal.telephony.uicc.IsimUiccRecords$EfIsimImpuLoaded
-com.android.internal.telephony.uicc.IsimUiccRecords$EfIsimIstLoaded
-com.android.internal.telephony.uicc.IsimUiccRecords$EfIsimPcscfLoaded
-com.android.internal.telephony.uicc.IsimUiccRecords
-com.android.internal.telephony.uicc.PlmnActRecord$1
-com.android.internal.telephony.uicc.PlmnActRecord
-com.android.internal.telephony.uicc.RuimFileHandler
-com.android.internal.telephony.uicc.RuimRecords
-com.android.internal.telephony.uicc.SIMFileHandler
-com.android.internal.telephony.uicc.SIMRecords$1
-com.android.internal.telephony.uicc.SIMRecords$EfPlLoaded
-com.android.internal.telephony.uicc.SIMRecords$EfUsimLiLoaded
-com.android.internal.telephony.uicc.SIMRecords$GetSpnFsmState
-com.android.internal.telephony.uicc.SIMRecords
-com.android.internal.telephony.uicc.UiccCard
-com.android.internal.telephony.uicc.UiccCardApplication$1
-com.android.internal.telephony.uicc.UiccCardApplication$2
-com.android.internal.telephony.uicc.UiccCardApplication
-com.android.internal.telephony.uicc.UiccCarrierPrivilegeRules$1
-com.android.internal.telephony.uicc.UiccCarrierPrivilegeRules$TLV
-com.android.internal.telephony.uicc.UiccCarrierPrivilegeRules
-com.android.internal.telephony.uicc.UiccController$1
-com.android.internal.telephony.uicc.UiccController
-com.android.internal.telephony.uicc.UiccPkcs15$FileHandler
-com.android.internal.telephony.uicc.UiccPkcs15$Pkcs15Selector
-com.android.internal.telephony.uicc.UiccPkcs15
-com.android.internal.telephony.uicc.UiccProfile$1
-com.android.internal.telephony.uicc.UiccProfile$2
-com.android.internal.telephony.uicc.UiccProfile$3
-com.android.internal.telephony.uicc.UiccProfile$4
-com.android.internal.telephony.uicc.UiccProfile$5
-com.android.internal.telephony.uicc.UiccProfile
-com.android.internal.telephony.uicc.UiccSlot
-com.android.internal.telephony.uicc.UiccStateChangedLauncher
-com.android.internal.telephony.uicc.UsimFileHandler
-com.android.internal.telephony.uicc.UsimServiceTable$UsimService
-com.android.internal.telephony.uicc.UsimServiceTable
-com.android.internal.telephony.uicc.VoiceMailConstants
-com.android.internal.telephony.uicc.asn1.InvalidAsn1DataException
-com.android.internal.telephony.uicc.asn1.TagNotFoundException
-com.android.internal.telephony.uicc.euicc.EuiccCard
-com.android.internal.telephony.uicc.euicc.EuiccSpecVersion
com.android.internal.telephony.util.ArrayUtils
-com.android.internal.telephony.util.NotificationChannelController$1
-com.android.internal.telephony.util.NotificationChannelController
-com.android.internal.telephony.util.SMSDispatcherUtil
+com.android.internal.telephony.util.HandlerExecutor
+com.android.internal.telephony.util.RemoteCallbackListExt
com.android.internal.telephony.util.TelephonyUtils
-com.android.internal.telephony.util.VoicemailNotificationSettingsUtil
-com.android.internal.telephony.util.XmlUtils
com.android.internal.textservice.ISpellCheckerService$Stub$Proxy
com.android.internal.textservice.ISpellCheckerService$Stub
com.android.internal.textservice.ISpellCheckerService
@@ -8094,18 +7337,10 @@ com.android.org.bouncycastle.util.encoders.Encoder
com.android.org.bouncycastle.util.encoders.Hex
com.android.org.bouncycastle.util.encoders.HexEncoder
com.android.org.bouncycastle.util.io.Streams
+com.android.org.kxml2.io.KXmlParser$ContentSource
com.android.org.kxml2.io.KXmlParser$ValueContext
com.android.org.kxml2.io.KXmlParser
com.android.org.kxml2.io.KXmlSerializer
-com.android.phone.ecc.nano.CodedInputByteBufferNano
-com.android.phone.ecc.nano.ExtendableMessageNano
-com.android.phone.ecc.nano.InternalNano
-com.android.phone.ecc.nano.InvalidProtocolBufferNanoException
-com.android.phone.ecc.nano.MessageNano
-com.android.phone.ecc.nano.ProtobufEccData$AllInfo
-com.android.phone.ecc.nano.ProtobufEccData$CountryInfo
-com.android.phone.ecc.nano.ProtobufEccData$EccInfo
-com.android.phone.ecc.nano.WireFormatNano
com.android.server.AppWidgetBackupBridge
com.android.server.BootReceiver$1
com.android.server.BootReceiver
@@ -8725,6 +7960,7 @@ java.nio.charset.IllegalCharsetNameException
java.nio.charset.StandardCharsets
java.nio.charset.UnsupportedCharsetException
java.nio.file.AccessMode
+java.nio.file.CopyMoveHelper
java.nio.file.CopyOption
java.nio.file.DirectoryStream$Filter
java.nio.file.DirectoryStream
diff --git a/core/java/android/accessibilityservice/AccessibilityGestureEvent.java b/core/java/android/accessibilityservice/AccessibilityGestureEvent.java
index 47fc7e1cdf13..ace13513e39d 100644
--- a/core/java/android/accessibilityservice/AccessibilityGestureEvent.java
+++ b/core/java/android/accessibilityservice/AccessibilityGestureEvent.java
@@ -19,10 +19,25 @@ package android.accessibilityservice;
import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_DOUBLE_TAP;
import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_SINGLE_TAP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_SWIPE_DOWN;
+import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_SWIPE_LEFT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_SWIPE_RIGHT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_SWIPE_UP;
import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_TRIPLE_TAP;
import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_DOUBLE_TAP;
import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_SINGLE_TAP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_SWIPE_DOWN;
+import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_SWIPE_LEFT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_SWIPE_RIGHT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_SWIPE_UP;
import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_TRIPLE_TAP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_DOUBLE_TAP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_SINGLE_TAP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_SWIPE_DOWN;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_SWIPE_LEFT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_SWIPE_RIGHT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_SWIPE_UP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_TRIPLE_TAP;
import static android.accessibilityservice.AccessibilityService.GESTURE_DOUBLE_TAP;
import static android.accessibilityservice.AccessibilityService.GESTURE_DOUBLE_TAP_AND_HOLD;
import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_DOWN;
@@ -89,7 +104,22 @@ public final class AccessibilityGestureEvent implements Parcelable {
GESTURE_SWIPE_RIGHT,
GESTURE_SWIPE_RIGHT_AND_UP,
GESTURE_SWIPE_RIGHT_AND_LEFT,
- GESTURE_SWIPE_RIGHT_AND_DOWN
+ GESTURE_SWIPE_RIGHT_AND_DOWN,
+ GESTURE_2_FINGER_SWIPE_DOWN,
+ GESTURE_2_FINGER_SWIPE_LEFT,
+ GESTURE_2_FINGER_SWIPE_RIGHT,
+ GESTURE_2_FINGER_SWIPE_UP,
+ GESTURE_3_FINGER_SWIPE_DOWN,
+ GESTURE_3_FINGER_SWIPE_LEFT,
+ GESTURE_3_FINGER_SWIPE_RIGHT,
+ GESTURE_3_FINGER_SWIPE_UP,
+ GESTURE_4_FINGER_DOUBLE_TAP,
+ GESTURE_4_FINGER_SINGLE_TAP,
+ GESTURE_4_FINGER_SWIPE_DOWN,
+ GESTURE_4_FINGER_SWIPE_LEFT,
+ GESTURE_4_FINGER_SWIPE_RIGHT,
+ GESTURE_4_FINGER_SWIPE_UP,
+ GESTURE_4_FINGER_TRIPLE_TAP
})
@Retention(RetentionPolicy.SOURCE)
public @interface GestureId {}
@@ -149,6 +179,9 @@ public final class AccessibilityGestureEvent implements Parcelable {
case GESTURE_3_FINGER_SINGLE_TAP: return "GESTURE_3_FINGER_SINGLE_TAP";
case GESTURE_3_FINGER_DOUBLE_TAP: return "GESTURE_3_FINGER_DOUBLE_TAP";
case GESTURE_3_FINGER_TRIPLE_TAP: return "GESTURE_3_FINGER_TRIPLE_TAP";
+ case GESTURE_4_FINGER_SINGLE_TAP: return "GESTURE_4_FINGER_SINGLE_TAP";
+ case GESTURE_4_FINGER_DOUBLE_TAP: return "GESTURE_4_FINGER_DOUBLE_TAP";
+ case GESTURE_4_FINGER_TRIPLE_TAP: return "GESTURE_4_FINGER_TRIPLE_TAP";
case GESTURE_DOUBLE_TAP: return "GESTURE_DOUBLE_TAP";
case GESTURE_DOUBLE_TAP_AND_HOLD: return "GESTURE_DOUBLE_TAP_AND_HOLD";
case GESTURE_SWIPE_DOWN: return "GESTURE_SWIPE_DOWN";
@@ -167,6 +200,18 @@ public final class AccessibilityGestureEvent implements Parcelable {
case GESTURE_SWIPE_UP_AND_LEFT: return "GESTURE_SWIPE_UP_AND_LEFT";
case GESTURE_SWIPE_UP_AND_DOWN: return "GESTURE_SWIPE_UP_AND_DOWN";
case GESTURE_SWIPE_UP_AND_RIGHT: return "GESTURE_SWIPE_UP_AND_RIGHT";
+ case GESTURE_2_FINGER_SWIPE_DOWN: return "GESTURE_2_FINGER_SWIPE_DOWN";
+ case GESTURE_2_FINGER_SWIPE_LEFT: return "GESTURE_2_FINGER_SWIPE_LEFT";
+ case GESTURE_2_FINGER_SWIPE_RIGHT: return "GESTURE_2_FINGER_SWIPE_RIGHT";
+ case GESTURE_2_FINGER_SWIPE_UP: return "GESTURE_2_FINGER_SWIPE_UP";
+ case GESTURE_3_FINGER_SWIPE_DOWN: return "GESTURE_3_FINGER_SWIPE_DOWN";
+ case GESTURE_3_FINGER_SWIPE_LEFT: return "GESTURE_3_FINGER_SWIPE_LEFT";
+ case GESTURE_3_FINGER_SWIPE_RIGHT: return "GESTURE_3_FINGER_SWIPE_RIGHT";
+ case GESTURE_3_FINGER_SWIPE_UP: return "GESTURE_3_FINGER_SWIPE_UP";
+ case GESTURE_4_FINGER_SWIPE_DOWN: return "GESTURE_4_FINGER_SWIPE_DOWN";
+ case GESTURE_4_FINGER_SWIPE_LEFT: return "GESTURE_4_FINGER_SWIPE_LEFT";
+ case GESTURE_4_FINGER_SWIPE_RIGHT: return "GESTURE_4_FINGER_SWIPE_RIGHT";
+ case GESTURE_4_FINGER_SWIPE_UP: return "GESTURE_4_FINGER_SWIPE_UP";
default: return Integer.toHexString(eventType);
}
}
diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java
index 27cd2857f38f..b65f68e177ca 100644
--- a/core/java/android/accessibilityservice/AccessibilityService.java
+++ b/core/java/android/accessibilityservice/AccessibilityService.java
@@ -28,7 +28,9 @@ import android.content.Context;
import android.content.Intent;
import android.content.pm.ParceledListSlice;
import android.graphics.Bitmap;
+import android.graphics.ColorSpace;
import android.graphics.Region;
+import android.hardware.HardwareBuffer;
import android.os.Binder;
import android.os.Build;
import android.os.Handler;
@@ -349,6 +351,67 @@ public abstract class AccessibilityService extends Service {
public static final int GESTURE_3_FINGER_TRIPLE_TAP = 24;
/**
+ * The user has performed a two-finger swipe up gesture on the touch screen.
+ */
+ public static final int GESTURE_2_FINGER_SWIPE_UP = 25;
+
+ /**
+ * The user has performed a two-finger swipe down gesture on the touch screen.
+ */
+ public static final int GESTURE_2_FINGER_SWIPE_DOWN = 26;
+
+ /**
+ * The user has performed a two-finger swipe left gesture on the touch screen.
+ */
+ public static final int GESTURE_2_FINGER_SWIPE_LEFT = 27;
+
+ /**
+ * The user has performed a two-finger swipe right gesture on the touch screen.
+ */
+ public static final int GESTURE_2_FINGER_SWIPE_RIGHT = 28;
+
+ /**
+ * The user has performed a three-finger swipe up gesture on the touch screen.
+ */
+ public static final int GESTURE_3_FINGER_SWIPE_UP = 29;
+
+ /**
+ * The user has performed a three-finger swipe down gesture on the touch screen.
+ */
+ public static final int GESTURE_3_FINGER_SWIPE_DOWN = 30;
+
+ /**
+ * The user has performed a three-finger swipe left gesture on the touch screen.
+ */
+ public static final int GESTURE_3_FINGER_SWIPE_LEFT = 31;
+
+ /**
+ * The user has performed a three-finger swipe right gesture on the touch screen.
+ */
+ public static final int GESTURE_3_FINGER_SWIPE_RIGHT = 32;
+
+ /** The user has performed a four-finger swipe up gesture on the touch screen. */
+ public static final int GESTURE_4_FINGER_SWIPE_UP = 33;
+
+ /** The user has performed a four-finger swipe down gesture on the touch screen. */
+ public static final int GESTURE_4_FINGER_SWIPE_DOWN = 34;
+
+ /** The user has performed a four-finger swipe left gesture on the touch screen. */
+ public static final int GESTURE_4_FINGER_SWIPE_LEFT = 35;
+
+ /** The user has performed a four-finger swipe right gesture on the touch screen. */
+ public static final int GESTURE_4_FINGER_SWIPE_RIGHT = 36;
+
+ /** The user has performed a four-finger single tap gesture on the touch screen. */
+ public static final int GESTURE_4_FINGER_SINGLE_TAP = 37;
+
+ /** The user has performed a four-finger double tap gesture on the touch screen. */
+ public static final int GESTURE_4_FINGER_DOUBLE_TAP = 38;
+
+ /** The user has performed a four-finger triple tap gesture on the touch screen. */
+ public static final int GESTURE_4_FINGER_TRIPLE_TAP = 39;
+
+ /**
* The {@link Intent} that must be declared as handled by the service.
*/
public static final String SERVICE_INTERFACE =
@@ -524,7 +587,12 @@ public abstract class AccessibilityService extends Service {
private FingerprintGestureController mFingerprintGestureController;
/** @hide */
- public static final String KEY_ACCESSIBILITY_SCREENSHOT = "screenshot";
+ public static final String KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER =
+ "screenshot_hardwareBuffer";
+
+ /** @hide */
+ public static final String KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE_ID =
+ "screenshot_colorSpaceId";
/**
* Callback for {@link android.view.accessibility.AccessibilityEvent}s.
@@ -1827,8 +1895,9 @@ public abstract class AccessibilityService extends Service {
}
/**
- * Takes a screenshot of the specified display and returns it by {@link Bitmap.Config#HARDWARE}
- * format.
+ * Takes a screenshot of the specified display and returns it via an
+ * {@link AccessibilityService.ScreenshotResult}. You can use {@link Bitmap#wrapHardwareBuffer}
+ * to construct the bitmap from the ScreenshotResult's payload.
* <p>
* <strong>Note:</strong> In order to take screenshot your service has
* to declare the capability to take screenshot by setting the
@@ -1846,7 +1915,7 @@ public abstract class AccessibilityService extends Service {
* @return {@code true} if the taking screenshot accepted, {@code false} if not.
*/
public boolean takeScreenshot(int displayId, @NonNull @CallbackExecutor Executor executor,
- @NonNull Consumer<Bitmap> callback) {
+ @NonNull Consumer<ScreenshotResult> callback) {
Preconditions.checkNotNull(executor, "executor cannot be null");
Preconditions.checkNotNull(callback, "callback cannot be null");
final IAccessibilityServiceConnection connection =
@@ -1856,14 +1925,22 @@ public abstract class AccessibilityService extends Service {
return false;
}
try {
- connection.takeScreenshotWithCallback(displayId, new RemoteCallback((result) -> {
- final Bitmap screenshot = result.getParcelable(KEY_ACCESSIBILITY_SCREENSHOT);
- final long identity = Binder.clearCallingIdentity();
- try {
- executor.execute(() -> callback.accept(screenshot));
- } finally {
- Binder.restoreCallingIdentity(identity);
+ connection.takeScreenshot(displayId, new RemoteCallback((result) -> {
+ if (result == null) {
+ sendScreenshotResult(executor, callback, null);
+ return;
+ }
+ final HardwareBuffer hardwareBuffer =
+ result.getParcelable(KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER);
+ final int colorSpaceId =
+ result.getInt(KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE_ID);
+ ColorSpace colorSpace = null;
+ if (colorSpaceId >= 0 && colorSpaceId < ColorSpace.Named.values().length) {
+ colorSpace = ColorSpace.get(ColorSpace.Named.values()[colorSpaceId]);
}
+ ScreenshotResult screenshot = new ScreenshotResult(hardwareBuffer,
+ colorSpace, System.currentTimeMillis());
+ sendScreenshotResult(executor, callback, screenshot);
}));
} catch (RemoteException re) {
throw new RuntimeException(re);
@@ -2262,4 +2339,67 @@ public abstract class AccessibilityService extends Service {
this.handler = handler;
}
}
+
+ private void sendScreenshotResult(Executor executor, Consumer<ScreenshotResult> callback,
+ ScreenshotResult screenshot) {
+ final ScreenshotResult result = screenshot;
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ executor.execute(() -> callback.accept(result));
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ /**
+ * Class including hardwareBuffer, colorSpace, and timestamp to be the result for
+ * {@link AccessibilityService#takeScreenshot} API.
+ * <p>
+ * <strong>Note:</strong> colorSpace would be null if the name of this colorSpace isn't at
+ * {@link ColorSpace.Named}.
+ * </p>
+ */
+ public static final class ScreenshotResult {
+ private final @NonNull HardwareBuffer mHardwareBuffer;
+ private final @Nullable ColorSpace mColorSpace;
+ private final long mTimestamp;
+
+ private ScreenshotResult(@NonNull HardwareBuffer hardwareBuffer,
+ @Nullable ColorSpace colorSpace, long timestamp) {
+ Preconditions.checkNotNull(hardwareBuffer, "hardwareBuffer cannot be null");
+ mHardwareBuffer = hardwareBuffer;
+ mColorSpace = colorSpace;
+ mTimestamp = timestamp;
+ }
+
+ /**
+ * Gets the colorSpace identifying a specific organization of colors of the screenshot.
+ *
+ * @return the colorSpace or {@code null} if the name of colorSpace isn't at
+ * {@link ColorSpace.Named}
+ */
+ @Nullable
+ public ColorSpace getColorSpace() {
+ return mColorSpace;
+ }
+
+ /**
+ * Gets the hardwareBuffer representing a memory buffer of the screenshot.
+ *
+ * @return the hardwareBuffer
+ */
+ @NonNull
+ public HardwareBuffer getHardwareBuffer() {
+ return mHardwareBuffer;
+ }
+
+ /**
+ * Gets the timestamp of taking the screenshot.
+ *
+ * @return the timestamp from {@link System#currentTimeMillis()}
+ */
+ public long getTimestamp() {
+ return mTimestamp;
+ };
+ }
}
diff --git a/core/java/android/accessibilityservice/GestureDescription.java b/core/java/android/accessibilityservice/GestureDescription.java
index 3b79d217c513..a821dadf4948 100644
--- a/core/java/android/accessibilityservice/GestureDescription.java
+++ b/core/java/android/accessibilityservice/GestureDescription.java
@@ -40,7 +40,7 @@ import java.util.List;
*/
public final class GestureDescription {
/** Gestures may contain no more than this many strokes */
- private static final int MAX_STROKE_COUNT = 10;
+ private static final int MAX_STROKE_COUNT = 20;
/**
* Upper bound on total gesture duration. Nearly all gestures will be much shorter.
@@ -194,7 +194,10 @@ public final class GestureDescription {
public Builder addStroke(@NonNull StrokeDescription strokeDescription) {
if (mStrokes.size() >= MAX_STROKE_COUNT) {
throw new IllegalStateException(
- "Attempting to add too many strokes to a gesture");
+ "Attempting to add too many strokes to a gesture. Maximum is "
+ + MAX_STROKE_COUNT
+ + ", got "
+ + mStrokes.size());
}
mStrokes.add(strokeDescription);
diff --git a/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl b/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl
index 5db4dd7470d8..9177d4d27491 100644
--- a/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl
+++ b/core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl
@@ -110,7 +110,5 @@ interface IAccessibilityServiceConnection {
int getWindowIdForLeashToken(IBinder token);
- Bitmap takeScreenshot(int displayId);
-
- void takeScreenshotWithCallback(int displayId, in RemoteCallback callback);
+ void takeScreenshot(int displayId, in RemoteCallback callback);
}
diff --git a/core/java/android/annotation/SystemApi.java b/core/java/android/annotation/SystemApi.java
index ecbfed96cefd..4ac00983af13 100644
--- a/core/java/android/annotation/SystemApi.java
+++ b/core/java/android/annotation/SystemApi.java
@@ -47,22 +47,14 @@ public @interface SystemApi {
/**
* Specifies that the intended clients of a SystemApi are privileged apps.
* This is the default value for {@link #client}.
- * TODO Update the javadoc according to the final spec
*/
PRIVILEGED_APPS,
/**
- * DO NOT USE. Use PRIVILEGED_APPS instead.
- * (This would provide no further protection over PRIVILEGED_APPS; do not rely on it)
- * @deprecated Use #PRIVILEGED_APPS instead
- */
- @Deprecated
- MODULE_APPS,
-
- /**
- * Specifies that the intended clients of a SystemApi are modules implemented
- * as libraries, like the conscrypt.jar in the conscrypt APEX.
- * TODO Update the javadoc according to the final spec
+ * Specifies that the intended clients of a SystemApi are used by classes in
+ * <pre>BOOTCLASSPATH</pre> in mainline modules. Mainline modules can also expose
+ * this type of system APIs too when they're used only by the non-updatable
+ * platform code.
*/
MODULE_LIBRARIES,
@@ -70,19 +62,6 @@ public @interface SystemApi {
* Specifies that the system API is available only in the system server process.
* Use this to expose APIs from code loaded by the system server process <em>but</em>
* not in <pre>BOOTCLASSPATH</pre>.
- * TODO(b/148177503) Update "services-stubs" and actually use it.
- */
- SYSTEM_SERVER
- }
-
- /** @deprecated do not use */
- @Deprecated
- enum Process {
- /** @deprecated do not use */
- ALL,
-
- /**
- * @deprecated use Client#SYSTEM_SERVER instead
*/
SYSTEM_SERVER
}
@@ -93,13 +72,6 @@ public @interface SystemApi {
Client client() default android.annotation.SystemApi.Client.PRIVILEGED_APPS;
/**
- * @deprecated use Client#SYSTEM_SERVER instead for system_server APIs
- */
- @Deprecated
- Process process() default android.annotation.SystemApi.Process.ALL;
-
-
- /**
* Container for {@link SystemApi} that allows it to be applied repeatedly to types.
*/
@Retention(RetentionPolicy.RUNTIME)
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index f31c6148f89f..642f51b6bb63 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -2880,13 +2880,14 @@ public class Activity extends ContextThemeWrapper
* {@link #enterPictureInPictureMode(PictureInPictureParams)} at this time. For example, the
* system will call this method when the activity is being put into the background, so the app
* developer might want to switch an activity into PIP mode instead.</p>
+ *
+ * @return {@code true} if the activity received this callback regardless of if it acts on it
+ * or not. If {@code false}, the framework will assume the app hasn't been updated to leverage
+ * this callback and will in turn send a legacy callback of {@link #onUserLeaveHint()} for the
+ * app to enter picture-in-picture mode.
*/
- public void onPictureInPictureRequested() {
- // Previous recommendation was for apps to enter picture-in-picture in onUserLeaveHint()
- // which is sent after onPause(). This new method allows the system to request the app to
- // go into picture-in-picture decoupling it from life cycle events. For backwards
- // compatibility we schedule the life cycle events if the app didn't override this method.
- mMainThread.schedulePauseAndReturnToCurrentState(mToken);
+ public boolean onPictureInPictureRequested() {
+ return false;
}
void dispatchMovedToDisplay(int displayId, Configuration config) {
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 206c7710c12f..db9aa18dbd5a 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -1472,7 +1472,7 @@ public class ActivityManager {
dest.writeInt(1);
dest.writeString(mLabel);
}
- if (mIcon == null) {
+ if (mIcon == null || mIcon.isRecycled()) {
dest.writeInt(0);
} else {
dest.writeInt(1);
diff --git a/core/java/android/app/ActivityManagerInternal.java b/core/java/android/app/ActivityManagerInternal.java
index 4e47594b6196..c60f7bd29ce8 100644
--- a/core/java/android/app/ActivityManagerInternal.java
+++ b/core/java/android/app/ActivityManagerInternal.java
@@ -278,7 +278,7 @@ public abstract class ActivityManagerInternal {
String resolvedType, boolean fgRequired, String callingPackage, @UserIdInt int userId,
boolean allowBackgroundActivityStarts) throws TransactionTooLargeException;
- public abstract void disconnectActivityFromServices(Object connectionHolder, Object conns);
+ public abstract void disconnectActivityFromServices(Object connectionHolder);
public abstract void cleanUpServices(@UserIdInt int userId, ComponentName component,
Intent baseIntent);
public abstract ActivityInfo getActivityInfoForUser(ActivityInfo aInfo, @UserIdInt int userId);
diff --git a/core/java/android/app/ActivityTaskManager.java b/core/java/android/app/ActivityTaskManager.java
index dd9a2bcf9c2c..9ba56cf40161 100644
--- a/core/java/android/app/ActivityTaskManager.java
+++ b/core/java/android/app/ActivityTaskManager.java
@@ -158,18 +158,37 @@ public class ActivityTaskManager {
}
};
+ /** @hide */
+ @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
+ public static ITaskOrganizerController getTaskOrganizerController() {
+ return ITaskOrganizerControllerSingleton.get();
+ }
+
+ private static final Singleton<ITaskOrganizerController> ITaskOrganizerControllerSingleton =
+ new Singleton<ITaskOrganizerController>() {
+ @Override
+ protected ITaskOrganizerController create() {
+ try {
+ return getService().getTaskOrganizerController();
+ } catch (RemoteException e) {
+ return null;
+ }
+ }
+ };
+
/**
* Sets the windowing mode for a specific task. Only works on tasks of type
* {@link WindowConfiguration#ACTIVITY_TYPE_STANDARD}
* @param taskId The id of the task to set the windowing mode for.
* @param windowingMode The windowing mode to set for the task.
* @param toTop If the task should be moved to the top once the windowing mode changes.
+ * @return Whether the task was successfully put into the specified windowing mode.
*/
@RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
- public void setTaskWindowingMode(int taskId, int windowingMode, boolean toTop)
+ public boolean setTaskWindowingMode(int taskId, int windowingMode, boolean toTop)
throws SecurityException {
try {
- getService().setTaskWindowingMode(taskId, windowingMode, toTop);
+ return getService().setTaskWindowingMode(taskId, windowingMode, toTop);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -190,13 +209,14 @@ public class ActivityTaskManager {
* docked stack. Pass {@code null} to use default bounds.
* @param showRecents If the recents activity should be shown on the other side of the task
* going into split-screen mode.
+ * @return Whether the task was successfully put into splitscreen.
*/
@RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS)
- public void setTaskWindowingModeSplitScreenPrimary(int taskId, int createMode, boolean toTop,
+ public boolean setTaskWindowingModeSplitScreenPrimary(int taskId, int createMode, boolean toTop,
boolean animate, Rect initialBounds, boolean showRecents) throws SecurityException {
try {
- getService().setTaskWindowingModeSplitScreenPrimary(taskId, createMode, toTop, animate,
- initialBounds, showRecents);
+ return getService().setTaskWindowingModeSplitScreenPrimary(taskId, createMode, toTop,
+ animate, initialBounds, showRecents);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index c901d2a29821..192156726984 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -3772,7 +3772,15 @@ public final class ActivityThread extends ClientTransactionHandler {
return;
}
- r.activity.onPictureInPictureRequested();
+ final boolean receivedByApp = r.activity.onPictureInPictureRequested();
+ if (!receivedByApp) {
+ // Previous recommendation was for apps to enter picture-in-picture in
+ // onUserLeavingHint() for cases such as the app being put into the background. For
+ // backwards compatibility with apps that are not using the newer
+ // onPictureInPictureRequested() callback, we schedule the life cycle events needed to
+ // trigger onUserLeavingHint(), then we return the activity to its previous state.
+ schedulePauseWithUserLeaveHintAndReturnToCurrentState(r);
+ }
}
/**
@@ -3780,18 +3788,7 @@ public final class ActivityThread extends ClientTransactionHandler {
* return to its previous state. This allows activities that rely on onUserLeaveHint instead of
* onPictureInPictureRequested to enter picture-in-picture.
*/
- public void schedulePauseAndReturnToCurrentState(IBinder token) {
- final ActivityClientRecord r = mActivities.get(token);
- if (r == null) {
- Log.w(TAG, "Activity to request pause with user leaving hint to no longer exists");
- return;
- }
-
- if (r.mIsUserLeaving) {
- // The activity is about to perform user leaving, so there's no need to cycle ourselves.
- return;
- }
-
+ private void schedulePauseWithUserLeaveHintAndReturnToCurrentState(ActivityClientRecord r) {
final int prevState = r.getLifecycleState();
if (prevState != ON_RESUME && prevState != ON_PAUSE) {
return;
@@ -4544,7 +4541,6 @@ public final class ActivityThread extends ClientTransactionHandler {
if (r != null) {
if (userLeaving) {
performUserLeavingActivity(r);
- r.mIsUserLeaving = false;
}
r.activity.mConfigChangeFlags |= configChanges;
@@ -4559,7 +4555,6 @@ public final class ActivityThread extends ClientTransactionHandler {
}
final void performUserLeavingActivity(ActivityClientRecord r) {
- r.mIsUserLeaving = true;
mInstrumentation.callActivityOnPictureInPictureRequested(r.activity);
mInstrumentation.callActivityOnUserLeaving(r.activity);
}
diff --git a/core/java/android/app/AppCompatCallbacks.java b/core/java/android/app/AppCompatCallbacks.java
index 19d158dedd06..28a21f767283 100644
--- a/core/java/android/app/AppCompatCallbacks.java
+++ b/core/java/android/app/AppCompatCallbacks.java
@@ -18,7 +18,6 @@ package android.app;
import android.compat.Compatibility;
import android.os.Process;
-import android.util.StatsLog;
import com.android.internal.compat.ChangeReporter;
@@ -46,20 +45,20 @@ public final class AppCompatCallbacks extends Compatibility.Callbacks {
mDisabledChanges = Arrays.copyOf(disabledChanges, disabledChanges.length);
Arrays.sort(mDisabledChanges);
mChangeReporter = new ChangeReporter(
- StatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__SOURCE__APP_PROCESS);
+ ChangeReporter.SOURCE_APP_PROCESS);
}
protected void reportChange(long changeId) {
- reportChange(changeId, StatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__LOGGED);
+ reportChange(changeId, ChangeReporter.STATE_LOGGED);
}
protected boolean isChangeEnabled(long changeId) {
if (Arrays.binarySearch(mDisabledChanges, changeId) < 0) {
// Not present in the disabled array
- reportChange(changeId, StatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__ENABLED);
+ reportChange(changeId, ChangeReporter.STATE_ENABLED);
return true;
}
- reportChange(changeId, StatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__DISABLED);
+ reportChange(changeId, ChangeReporter.STATE_DISABLED);
return false;
}
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index 46f86690a753..6ef99a3def92 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -27,6 +27,8 @@ import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.annotation.TestApi;
import android.app.usage.UsageStatsManager;
+import android.compat.annotation.ChangeId;
+import android.compat.annotation.EnabledAfter;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.ContentResolver;
import android.content.Context;
@@ -88,14 +90,31 @@ import java.util.function.Consumer;
import java.util.function.Supplier;
/**
- * API for interacting with "application operation" tracking.
+ * AppOps are mappings of [package/uid, op-name] -> [mode]. The list of existing appops is defined
+ * by the system and cannot be amended by apps. Only system apps can change appop-modes.
*
- * <p>This API is not generally intended for third party application developers; most
- * features are only available to system applications.
+ * <p>Beside a mode the system tracks when an op was {@link #noteOp noted}. The tracked data can
+ * only be read by system components.
+ *
+ * <p>Installed apps can usually only listen to changes and events on their own ops. E.g.
+ * {@link AppOpsCollector} allows to get a callback each time an app called {@link #noteOp} or
+ * {@link #startOp} for an op belonging to the app.
*/
@SystemService(Context.APP_OPS_SERVICE)
public class AppOpsManager {
/**
+ * This is a subtle behavior change to {@link #startWatchingMode}.
+ *
+ * Before this change the system called back for the switched op. After the change the system
+ * will call back for the actually requested op or all switched ops if no op is specified.
+ *
+ * @hide
+ */
+ @ChangeId
+ @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.Q)
+ public static final long CALL_BACK_ON_CHANGED_LISTENER_WITH_SWITCHED_OP_CHANGE = 148180766L;
+
+ /**
* <p>App ops allows callers to:</p>
*
* <ul>
@@ -142,6 +161,38 @@ public class AppOpsManager {
static IBinder sClientId;
+ /**
+ * How many seconds we want for a drop in uid state from top to settle before applying it.
+ *
+ * <>Set a parameter to {@link android.provider.Settings.Global#APP_OPS_CONSTANTS}
+ *
+ * @hide
+ */
+ @TestApi
+ public static final String KEY_TOP_STATE_SETTLE_TIME = "top_state_settle_time";
+
+ /**
+ * How many second we want for a drop in uid state from foreground to settle before applying it.
+ *
+ * <>Set a parameter to {@link android.provider.Settings.Global#APP_OPS_CONSTANTS}
+ *
+ * @hide
+ */
+ @TestApi
+ public static final String KEY_FG_SERVICE_STATE_SETTLE_TIME =
+ "fg_service_state_settle_time";
+
+ /**
+ * How many seconds we want for a drop in uid state from background to settle before applying
+ * it.
+ *
+ * <>Set a parameter to {@link android.provider.Settings.Global#APP_OPS_CONSTANTS}
+ *
+ * @hide
+ */
+ @TestApi
+ public static final String KEY_BG_STATE_SETTLE_TIME = "bg_state_settle_time";
+
/** @hide */
@Retention(RetentionPolicy.SOURCE)
@IntDef(flag = true, prefix = { "HISTORICAL_MODE_" }, value = {
@@ -2803,7 +2854,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last access time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no access
*
* @see #getLastAccessForegroundTime(int)
* @see #getLastAccessBackgroundTime(int)
@@ -2820,7 +2871,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last access time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no foreground access
*
* @see #getLastAccessTime(int)
* @see #getLastAccessBackgroundTime(int)
@@ -2838,7 +2889,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last access time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no background access
*
* @see #getLastAccessTime(int)
* @see #getLastAccessForegroundTime(int)
@@ -2855,7 +2906,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return the last access event of {@code null}
+ * @return the last access event of {@code null} if there was no access
*/
private @Nullable NoteOpEvent getLastAccessEvent(@UidState int fromUidState,
@UidState int toUidState, @OpFlags int flags) {
@@ -2870,7 +2921,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last access time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no access
*
* @see #getLastAccessTime(int)
* @see #getLastAccessForegroundTime(int)
@@ -2893,7 +2944,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last rejection time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no rejection
*
* @see #getLastRejectForegroundTime(int)
* @see #getLastRejectBackgroundTime(int)
@@ -2910,7 +2961,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last rejection time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no foreground rejection
*
* @see #getLastRejectTime(int)
* @see #getLastRejectBackgroundTime(int)
@@ -2928,7 +2979,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last rejection time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no background rejection
*
* @see #getLastRejectTime(int)
* @see #getLastRejectForegroundTime(int)
@@ -2945,8 +2996,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return the last rejection time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * @return the last rejection event of {@code null} if there was no rejection
*
* @see #getLastRejectTime(int)
* @see #getLastRejectForegroundTime(int)
@@ -2965,7 +3015,8 @@ public class AppOpsManager {
* @param toUidState The highest UID state for which to query (inclusive)
* @param flags The op flags
*
- * @return the last access time (in milliseconds since epoch) or {@code -1}
+ * @return the last access time (in milliseconds since epoch) or {@code -1} if there was no
+ * rejection
*
* @see #getLastRejectTime(int)
* @see #getLastRejectForegroundTime(int)
@@ -2988,7 +3039,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return the duration in milliseconds or {@code -1}
+ * @return the duration in milliseconds or {@code -1} if there was no rejection
*
* @see #getLastForegroundDuration(int)
* @see #getLastBackgroundDuration(int)
@@ -3004,7 +3055,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return the duration in milliseconds or {@code -1}
+ * @return the duration in milliseconds or {@code -1} if there was no foreground rejection
*
* @see #getLastDuration(int)
* @see #getLastBackgroundDuration(int)
@@ -3021,7 +3072,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return the duration in milliseconds or {@code -1}
+ * @return the duration in milliseconds or {@code -1} if there was no background rejection
*
* @see #getLastDuration(int)
* @see #getLastForegroundDuration(int)
@@ -3040,7 +3091,7 @@ public class AppOpsManager {
* @param toUidState The highest UID state for which to query (inclusive)
* @param flags The op flags
*
- * @return the duration in milliseconds or {@code -1}
+ * @return the duration in milliseconds or {@code -1} if there was no rejection
*
* @see #getLastDuration(int)
* @see #getLastForegroundDuration(int)
@@ -3064,7 +3115,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return The proxy name or {@code null}
+ * @return The proxy info or {@code null} if there was no proxy access
*
* @see #getLastForegroundProxyInfo(int)
* @see #getLastBackgroundProxyInfo(int)
@@ -3081,7 +3132,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return The proxy name or {@code null}
+ * @return The proxy info or {@code null} if there was no proxy access
*
* @see #getLastProxyInfo(int)
* @see #getLastBackgroundProxyInfo(int)
@@ -3099,7 +3150,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return The proxy name or {@code null}
+ * @return The proxy info or {@code null} if there was no proxy background access
*
* @see #getLastProxyInfo(int)
* @see #getLastForegroundProxyInfo(int)
@@ -3119,7 +3170,7 @@ public class AppOpsManager {
* @param toUidState The highest UID state for which to query (inclusive)
* @param flags The op flags
*
- * @return The proxy name or {@code null}
+ * @return The proxy info or {@code null} if there was no proxy foreground access
*
* @see #getLastProxyInfo(int)
* @see #getLastForegroundProxyInfo(int)
@@ -3375,7 +3426,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last access time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no access
*
* @see #getLastAccessForegroundTime(int)
* @see #getLastAccessBackgroundTime(int)
@@ -3392,7 +3443,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last access time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no foreground access
*
* @see #getLastAccessTime(int)
* @see #getLastAccessBackgroundTime(int)
@@ -3410,7 +3461,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last access time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no background access
*
* @see #getLastAccessTime(int)
* @see #getLastAccessForegroundTime(int)
@@ -3427,7 +3478,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return the last access event of {@code null}
+ * @return the last access event of {@code null} if there was no access
*/
private @Nullable NoteOpEvent getLastAccessEvent(@UidState int fromUidState,
@UidState int toUidState, @OpFlags int flags) {
@@ -3453,7 +3504,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last access time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no access
*
* @see #getLastAccessTime(int)
* @see #getLastAccessForegroundTime(int)
@@ -3489,7 +3540,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last rejection time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no rejection
*
* @see #getLastRejectForegroundTime(int)
* @see #getLastRejectBackgroundTime(int)
@@ -3506,7 +3557,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last rejection time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no foreground rejection
*
* @see #getLastRejectTime(int)
* @see #getLastRejectBackgroundTime(int)
@@ -3524,7 +3575,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last rejection time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no background rejection
*
* @see #getLastRejectTime(int)
* @see #getLastRejectForegroundTime(int)
@@ -3541,7 +3592,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return the last reject event of {@code null}
+ * @return the last reject event of {@code null} if there was no rejection
*/
private @Nullable NoteOpEvent getLastRejectEvent(@UidState int fromUidState,
@UidState int toUidState, @OpFlags int flags) {
@@ -3567,7 +3618,7 @@ public class AppOpsManager {
* @param flags The op flags
*
* @return the last rejection time (in milliseconds since epoch start (January 1, 1970
- * 00:00:00.000 GMT - Gregorian)) or {@code -1}
+ * 00:00:00.000 GMT - Gregorian)) or {@code -1} if there was no rejection
*
* @see #getLastRejectTime(int)
* @see #getLastRejectForegroundTime(int)
@@ -3611,7 +3662,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return the duration in milliseconds or {@code -1}
+ * @return the duration in milliseconds or {@code -1} if there was no access
*
* @see #getLastForegroundDuration(int)
* @see #getLastBackgroundDuration(int)
@@ -3627,7 +3678,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return the duration in milliseconds or {@code -1}
+ * @return the duration in milliseconds or {@code -1} if there was no foreground access
*
* @see #getLastDuration(int)
* @see #getLastBackgroundDuration(int)
@@ -3644,7 +3695,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return the duration in milliseconds or {@code -1}
+ * @return the duration in milliseconds or {@code -1} if there was no background access
*
* @see #getLastDuration(int)
* @see #getLastForegroundDuration(int)
@@ -3663,7 +3714,7 @@ public class AppOpsManager {
* @param toUidState The highest UID state for which to query (inclusive)
* @param flags The op flags
*
- * @return the duration in milliseconds or {@code -1}
+ * @return the duration in milliseconds or {@code -1} if there was no access
*
* @see #getLastDuration(int)
* @see #getLastForegroundDuration(int)
@@ -3738,7 +3789,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return The proxy name or {@code null}
+ * @return The proxy info or {@code null} if there was no proxy access
*
* @see #getLastForegroundProxyInfo(int)
* @see #getLastBackgroundProxyInfo(int)
@@ -3755,7 +3806,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return The proxy name or {@code null}
+ * @return The proxy info or {@code null} if there was no foreground proxy access
*
* @see #getLastProxyInfo(int)
* @see #getLastBackgroundProxyInfo(int)
@@ -3773,7 +3824,7 @@ public class AppOpsManager {
*
* @param flags The op flags
*
- * @return The proxy name or {@code null}
+ * @return The proxy info or {@code null} if there was no background proxy access
*
* @see #getLastProxyInfo(int)
* @see #getLastForegroundProxyInfo(int)
@@ -3793,7 +3844,7 @@ public class AppOpsManager {
* @param toUidState The highest UID state for which to query (inclusive)
* @param flags The op flags
*
- * @return The proxy name or {@code null}
+ * @return The proxy info or {@code null} if there was no proxy access
*
* @see #getLastProxyInfo(int)
* @see #getLastForegroundProxyInfo(int)
@@ -6774,6 +6825,9 @@ public class AppOpsManager {
* succeeds, the last execution time of the operation for this app will be updated to
* the current time.
*
+ * <p>If this is a check that is not preceding the protected operation, use
+ * {@link #unsafeCheckOp} instead.
+ *
* @param op The operation to note. One of the OPSTR_* constants.
* @param uid The user id of the application attempting to perform the operation.
* @param packageName The name of the application attempting to perform the operation.
@@ -6798,6 +6852,9 @@ public class AppOpsManager {
* succeeds, the last execution time of the operation for this app will be updated to
* the current time.
*
+ * <p>If this is a check that is not preceding the protected operation, use
+ * {@link #unsafeCheckOp} instead.
+ *
* @param op The operation to note. One of the OP_* constants.
* @param uid The user id of the application attempting to perform the operation.
* @param packageName The name of the application attempting to perform the operation.
@@ -7757,9 +7814,38 @@ public class AppOpsManager {
/**
* Callback an app can choose to {@link #setNotedAppOpsCollector register} to monitor it's noted
- * appops.
+ * appops. I.e. each time any app calls {@link #noteOp} or {@link #startOp} one of the callback
+ * methods of this object is called.
*
* <p><b>Only appops related to dangerous permissions are collected.</b>
+ *
+ * <pre>
+ * setNotedAppOpsCollector(new AppOpsCollector() {
+ * ArraySet<Pair<String, String>> opsNotedForThisProcess = new ArraySet<>();
+ *
+ * private synchronized void addAccess(String op, String accessLocation) {
+ * // Ops are often noted when permission protected APIs were called.
+ * // In this case permissionToOp() allows to resolve the permission<->op
+ * opsNotedForThisProcess.add(new Pair(accessType, accessLocation));
+ * }
+ *
+ * public void onNoted(SyncNotedAppOp op) {
+ * // Accesses is currently happening, hence stack trace describes location of access
+ * addAccess(op.getOp(), Arrays.toString(Thread.currentThread().getStackTrace()));
+ * }
+ *
+ * public void onSelfNoted(SyncNotedAppOp op) {
+ * onNoted(op);
+ * }
+ *
+ * public void onAsyncNoted(AsyncNotedAppOp asyncOp) {
+ * // Stack trace is not useful for async ops as accessed happened on different thread
+ * addAccess(asyncOp.getOp(), asyncOp.getMessage());
+ * }
+ * });
+ * </pre>
+ *
+ * @see #setNotedAppOpsCollector
*/
public abstract static class AppOpsCollector {
/** Callback registered with the system. This will receive the async notes ops */
diff --git a/core/java/android/app/AppOpsManagerInternal.java b/core/java/android/app/AppOpsManagerInternal.java
index 9958c6a31027..c13c5a5ab9c4 100644
--- a/core/java/android/app/AppOpsManagerInternal.java
+++ b/core/java/android/app/AppOpsManagerInternal.java
@@ -21,6 +21,7 @@ import android.annotation.Nullable;
import android.util.SparseArray;
import android.util.SparseIntArray;
+import com.android.internal.app.IAppOpsCallback;
import com.android.internal.util.function.HexFunction;
import com.android.internal.util.function.QuadFunction;
@@ -91,4 +92,16 @@ public abstract class AppOpsManagerInternal {
*/
public abstract void updateAppWidgetVisibility(SparseArray<String> uidPackageNames,
boolean visible);
+
+ /**
+ * Like {@link AppOpsManager#setUidMode}, but allows ignoring a certain callback.
+ */
+ public abstract void setUidModeIgnoringCallback(int code, int uid, int mode,
+ @Nullable IAppOpsCallback callbackToIgnore);
+
+ /**
+ * Like {@link AppOpsManager#setMode}, but allows ignoring a certain callback.
+ */
+ public abstract void setModeIgnoringCallback(int code, int uid, @NonNull String packageName,
+ int mode, @Nullable IAppOpsCallback callbackToIgnore);
}
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index c09aa1ff05a8..cd05e2c948b1 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -618,36 +618,22 @@ public class ApplicationPackageManager extends PackageManager {
return hasSystemFeature(name, 0);
}
- private boolean hasSystemFeatureUncached(String name, int version) {
- try {
- return mPM.hasSystemFeature(name, version);
- } catch (RemoteException e) {
- throw e.rethrowFromSystemServer();
- }
- }
-
- // Make this cache relatively large. There are many system features and
- // none are ever invalidated. MPTS tests suggests that the cache should
- // hold at least 150 entries.
- private static final int SYS_FEATURE_CACHE_SIZE = 256;
- private static final String CACHE_KEY_SYS_FEATURE_PROPERTY = "cache_key.has_system_feature";
-
- private class SystemFeatureQuery {
+ private class HasSystemFeatureQuery {
public final String name;
public final int version;
- public SystemFeatureQuery(String n, int v) {
+ public HasSystemFeatureQuery(String n, int v) {
name = n;
version = v;
}
@Override
public String toString() {
- return String.format("SystemFeatureQuery(name=\"%s\", version=%d)",
+ return String.format("HasSystemFeatureQuery(name=\"%s\", version=%d)",
name, version);
}
@Override
public boolean equals(Object o) {
- if (o instanceof SystemFeatureQuery) {
- SystemFeatureQuery r = (SystemFeatureQuery) o;
+ if (o instanceof HasSystemFeatureQuery) {
+ HasSystemFeatureQuery r = (HasSystemFeatureQuery) o;
return Objects.equals(name, r.name) && version == r.version;
} else {
return false;
@@ -655,33 +641,41 @@ public class ApplicationPackageManager extends PackageManager {
}
@Override
public int hashCode() {
- return Objects.hashCode(name) + version;
+ return Objects.hashCode(name) * 13 + version;
}
}
- private final PropertyInvalidatedCache<SystemFeatureQuery, Boolean> mSysFeatureCache =
- new PropertyInvalidatedCache<SystemFeatureQuery, Boolean>(
- SYS_FEATURE_CACHE_SIZE,
- CACHE_KEY_SYS_FEATURE_PROPERTY) {
+ // Make this cache relatively large. There are many system features and
+ // none are ever invalidated. MPTS tests suggests that the cache should
+ // hold at least 150 entries.
+ private final static PropertyInvalidatedCache<HasSystemFeatureQuery, Boolean>
+ mHasSystemFeatureCache =
+ new PropertyInvalidatedCache<HasSystemFeatureQuery, Boolean>(
+ 256, "cache_key.has_system_feature") {
@Override
- protected Boolean recompute(SystemFeatureQuery query) {
- return hasSystemFeatureUncached(query.name, query.version);
+ protected Boolean recompute(HasSystemFeatureQuery query) {
+ try {
+ return ActivityThread.currentActivityThread().getPackageManager().
+ hasSystemFeature(query.name, query.version);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
}
};
@Override
public boolean hasSystemFeature(String name, int version) {
- return mSysFeatureCache.query(new SystemFeatureQuery(name, version)).booleanValue();
+ return mHasSystemFeatureCache.query(new HasSystemFeatureQuery(name, version));
}
/** @hide */
- public void disableSysFeatureCache() {
- mSysFeatureCache.disableLocal();
+ public void disableHasSystemFeatureCache() {
+ mHasSystemFeatureCache.disableLocal();
}
/** @hide */
- public static void invalidateSysFeatureCache() {
- PropertyInvalidatedCache.invalidateCache(CACHE_KEY_SYS_FEATURE_PROPERTY);
+ public static void invalidateHasSystemFeatureCache() {
+ mHasSystemFeatureCache.invalidateCache();
}
@Override
@@ -3235,18 +3229,18 @@ public class ApplicationPackageManager extends PackageManager {
}
@Override
- public String getSystemTextClassifierPackageName() {
+ public String getDefaultTextClassifierPackageName() {
try {
- return mPM.getSystemTextClassifierPackageName();
+ return mPM.getDefaultTextClassifierPackageName();
} catch (RemoteException e) {
throw e.rethrowAsRuntimeException();
}
}
@Override
- public String[] getSystemTextClassifierPackages() {
+ public String getSystemTextClassifierPackageName() {
try {
- return mPM.getSystemTextClassifierPackages();
+ return mPM.getSystemTextClassifierPackageName();
} catch (RemoteException e) {
throw e.rethrowAsRuntimeException();
}
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 136c84eaf543..57cd8941a398 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -750,7 +750,7 @@ class ContextImpl extends Context {
if (type != null) {
dirs = Environment.buildPaths(dirs, type);
}
- return ensureExternalDirsExistOrFilter(dirs);
+ return ensureExternalDirsExistOrFilter(dirs, true /* tryCreateInProcess */);
}
}
@@ -765,7 +765,7 @@ class ContextImpl extends Context {
public File[] getObbDirs() {
synchronized (mSync) {
File[] dirs = Environment.buildExternalStorageAppObbDirs(getPackageName());
- return ensureExternalDirsExistOrFilter(dirs);
+ return ensureExternalDirsExistOrFilter(dirs, true /* tryCreateInProcess */);
}
}
@@ -809,7 +809,10 @@ class ContextImpl extends Context {
public File[] getExternalCacheDirs() {
synchronized (mSync) {
File[] dirs = Environment.buildExternalStorageAppCacheDirs(getPackageName());
- return ensureExternalDirsExistOrFilter(dirs);
+ // We don't try to create cache directories in-process, because they need special
+ // setup for accurate quota tracking. This ensures the cache dirs are always
+ // created through StorageManagerService.
+ return ensureExternalDirsExistOrFilter(dirs, false /* tryCreateInProcess */);
}
}
@@ -817,7 +820,7 @@ class ContextImpl extends Context {
public File[] getExternalMediaDirs() {
synchronized (mSync) {
File[] dirs = Environment.buildExternalStorageAppMediaDirs(getPackageName());
- return ensureExternalDirsExistOrFilter(dirs);
+ return ensureExternalDirsExistOrFilter(dirs, true /* tryCreateInProcess */);
}
}
@@ -2373,13 +2376,13 @@ class ContextImpl extends Context {
}
@Override
- public @NonNull WindowContext createWindowContext(int type) {
+ public @NonNull WindowContext createWindowContext(int type, Bundle options) {
if (getDisplay() == null) {
throw new UnsupportedOperationException("WindowContext can only be created from "
+ "other visual contexts, such as Activity or one created with "
+ "Context#createDisplayContext(Display)");
}
- return new WindowContext(this, null /* token */, type);
+ return new WindowContext(this, null /* token */, type, options);
}
ContextImpl createBaseWindowContext(IBinder token) {
@@ -2647,7 +2650,8 @@ class ContextImpl extends Context {
overrideConfiguration,
compatInfo,
classLoader,
- packageInfo.getApplication().getResources().getLoaders()));
+ packageInfo.getApplication() == null ? null
+ : packageInfo.getApplication().getResources().getLoaders()));
context.mDisplay = resourcesManager.getAdjustedDisplay(displayId,
context.getResources());
return context;
@@ -2803,24 +2807,24 @@ class ContextImpl extends Context {
* Ensure that given directories exist, trying to create them if missing. If
* unable to create, they are filtered by replacing with {@code null}.
*/
- private File[] ensureExternalDirsExistOrFilter(File[] dirs) {
+ private File[] ensureExternalDirsExistOrFilter(File[] dirs, boolean tryCreateInProcess) {
final StorageManager sm = getSystemService(StorageManager.class);
final File[] result = new File[dirs.length];
for (int i = 0; i < dirs.length; i++) {
File dir = dirs[i];
if (!dir.exists()) {
- if (!dir.mkdirs()) {
- // recheck existence in case of cross-process race
- if (!dir.exists()) {
- // Failing to mkdir() may be okay, since we might not have
- // enough permissions; ask vold to create on our behalf.
- try {
+ try {
+ if (!tryCreateInProcess || !dir.mkdirs()) {
+ // recheck existence in case of cross-process race
+ if (!dir.exists()) {
+ // Failing to mkdir() may be okay, since we might not have
+ // enough permissions; ask vold to create on our behalf.
sm.mkdirs(dir);
- } catch (Exception e) {
- Log.w(TAG, "Failed to ensure " + dir + ": " + e);
- dir = null;
}
}
+ } catch (Exception e) {
+ Log.w(TAG, "Failed to ensure " + dir + ": " + e);
+ dir = null;
}
}
result[i] = dir;
diff --git a/core/java/android/app/IActivityTaskManager.aidl b/core/java/android/app/IActivityTaskManager.aidl
index 85fa7c1cdb54..be2f144c2fe8 100644
--- a/core/java/android/app/IActivityTaskManager.aidl
+++ b/core/java/android/app/IActivityTaskManager.aidl
@@ -29,6 +29,7 @@ import android.app.IProcessObserver;
import android.app.IRequestFinishCallback;
import android.app.IServiceConnection;
import android.app.IStopUserCallback;
+import android.app.ITaskOrganizerController;
import android.app.ITaskStackListener;
import android.app.IUiAutomationConnection;
import android.app.IUidObserver;
@@ -71,7 +72,6 @@ import android.view.IRecentsAnimationRunner;
import android.view.ITaskOrganizer;
import android.view.RemoteAnimationDefinition;
import android.view.RemoteAnimationAdapter;
-import android.view.WindowContainerTransaction;
import com.android.internal.app.IVoiceInteractor;
import com.android.internal.os.IResultReceiver;
import com.android.internal.policy.IKeyguardDismissCallback;
@@ -123,8 +123,6 @@ interface IActivityTaskManager {
int requestCode, int flags, in ProfilerInfo profilerInfo, in Bundle options,
IBinder permissionToken, boolean ignoreTargetSecurity, int userId);
- void registerTaskOrganizer(in ITaskOrganizer organizer, int windowingMode);
-
boolean isActivityStartAllowedOnDisplay(int displayId, in Intent intent, in String resolvedType,
int userId);
@@ -224,7 +222,6 @@ interface IActivityTaskManager {
void setTaskResizeable(int taskId, int resizeableMode);
void toggleFreeformWindowingMode(in IBinder token);
void resizeTask(int taskId, in Rect bounds, int resizeMode);
- void applyContainerTransaction(in WindowContainerTransaction t);
void moveStackToDisplay(int stackId, int displayId);
void removeStack(int stackId);
@@ -234,8 +231,9 @@ interface IActivityTaskManager {
* @param taskId The id of the task to set the windowing mode for.
* @param windowingMode The windowing mode to set for the task.
* @param toTop If the task should be moved to the top once the windowing mode changes.
+ * @return Whether the task was successfully put into the specified windowing mode.
*/
- void setTaskWindowingMode(int taskId, int windowingMode, boolean toTop);
+ boolean setTaskWindowingMode(int taskId, int windowingMode, boolean toTop);
void moveTaskToStack(int taskId, int stackId, boolean toTop);
/**
* Resizes the input pinned stack to the given bounds with animation.
@@ -364,6 +362,11 @@ interface IActivityTaskManager {
in Rect tempOtherTaskBounds, in Rect tempOtherTaskInsetBounds);
/**
+ * Returns an interface enabling the management of task organizers.
+ */
+ ITaskOrganizerController getTaskOrganizerController();
+
+ /**
* Sets whether we are currently in an interactive split screen resize operation where we
* are changing the docked stack size.
*/
diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl
index 4b1ba0278682..16c0910f1273 100644
--- a/core/java/android/app/INotificationManager.aidl
+++ b/core/java/android/app/INotificationManager.aidl
@@ -48,6 +48,8 @@ interface INotificationManager
void clearData(String pkg, int uid, boolean fromApp);
void enqueueTextToast(String pkg, IBinder token, CharSequence text, int duration, int displayId, @nullable ITransientNotificationCallback callback);
void enqueueToast(String pkg, IBinder token, ITransientNotification callback, int duration, int displayId);
+ // TODO(b/144152069): Remove this after assessing impact on dogfood.
+ void enqueueTextOrCustomToast(String pkg, IBinder token, ITransientNotification callback, int duration, int displayId, boolean isCustom);
void cancelToast(String pkg, IBinder token);
void finishToken(String pkg, IBinder token);
diff --git a/core/java/android/app/ITaskOrganizerController.aidl b/core/java/android/app/ITaskOrganizerController.aidl
new file mode 100644
index 000000000000..bfc42ef8848d
--- /dev/null
+++ b/core/java/android/app/ITaskOrganizerController.aidl
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2020, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app;
+
+import android.app.ActivityManager;
+import android.view.ITaskOrganizer;
+import android.view.IWindowContainer;
+import android.view.WindowContainerTransaction;
+
+/** @hide */
+interface ITaskOrganizerController {
+
+ /**
+ * Register a TaskOrganizer to manage tasks as they enter the given windowing mode.
+ * If there was already a TaskOrganizer for this windowing mode it will be evicted
+ * and receive taskVanished callbacks in the process.
+ */
+ void registerTaskOrganizer(ITaskOrganizer organizer, int windowingMode);
+
+ /**
+ * Apply multiple WindowContainer operations at once.
+ * @param organizer If non-null this transaction will use the synchronization
+ * scheme described in BLASTSyncEngine.java. The SurfaceControl transaction
+ * containing the effects of this WindowContainer transaction will be passed
+ * to the organizers Transaction ready callback. If null the transaction
+ * will apply with non particular synchronization constraints (other than
+ * it will all apply at once).
+ * @return If organizer was non-null returns an ID for the sync operation which will
+ * later be passed to transactionReady. This lets TaskOrganizer implementations
+ * differentiate overlapping sync operations.
+ */
+ int applyContainerTransaction(in WindowContainerTransaction t, ITaskOrganizer organizer);
+
+ /** Creates a persistent root task in WM for a particular windowing-mode. */
+ ActivityManager.RunningTaskInfo createRootTask(int displayId, int windowingMode);
+
+ /** Deletes a persistent root task in WM */
+ boolean deleteRootTask(IWindowContainer task);
+
+ /** Get the root task which contains the current ime target */
+ IWindowContainer getImeTarget(int display);
+
+ /**
+ * Set's the root task to launch new tasks into on a display. {@code null} means no launch root
+ * and thus new tasks just end up directly on the display.
+ */
+ void setLaunchRoot(int displayId, in IWindowContainer root);
+}
diff --git a/core/java/android/app/IUiAutomationConnection.aidl b/core/java/android/app/IUiAutomationConnection.aidl
index 80ba464851e0..8c3180b400ef 100644
--- a/core/java/android/app/IUiAutomationConnection.aidl
+++ b/core/java/android/app/IUiAutomationConnection.aidl
@@ -39,6 +39,7 @@ interface IUiAutomationConnection {
boolean injectInputEvent(in InputEvent event, boolean sync);
void syncInputTransactions();
boolean setRotation(int rotation);
+ Bitmap takeScreenshot(in Rect crop, int rotation);
boolean clearWindowContentFrameStats(int windowId);
WindowContentFrameStats getWindowContentFrameStats(int windowId);
void clearWindowAnimationFrameStats();
diff --git a/core/java/android/app/NotificationChannel.java b/core/java/android/app/NotificationChannel.java
index 5a4622e0b245..7212be82d1a9 100644
--- a/core/java/android/app/NotificationChannel.java
+++ b/core/java/android/app/NotificationChannel.java
@@ -15,8 +15,6 @@
*/
package android.app;
-import static android.annotation.SystemApi.Client.MODULE_APPS;
-
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.TestApi;
@@ -33,7 +31,6 @@ import android.os.Parcelable;
import android.provider.Settings;
import android.service.notification.NotificationListenerService;
import android.text.TextUtils;
-import android.util.Log;
import android.util.proto.ProtoOutputStream;
import com.android.internal.util.Preconditions;
@@ -107,6 +104,7 @@ public final class NotificationChannel implements Parcelable {
private static final String ATT_ORIG_IMP = "orig_imp";
private static final String ATT_PARENT_CHANNEL = "parent";
private static final String ATT_CONVERSATION_ID = "conv_id";
+ private static final String ATT_IMP_CONVERSATION = "imp_conv";
private static final String ATT_DEMOTE = "dem";
private static final String DELIMITER = ",";
@@ -198,6 +196,7 @@ public final class NotificationChannel implements Parcelable {
private String mParentId = null;
private String mConversationId = null;
private boolean mDemoted = false;
+ private boolean mImportantConvo = false;
/**
* Creates a notification channel.
@@ -265,6 +264,7 @@ public final class NotificationChannel implements Parcelable {
mParentId = in.readString();
mConversationId = in.readString();
mDemoted = in.readBoolean();
+ mImportantConvo = in.readBoolean();
}
@Override
@@ -323,6 +323,7 @@ public final class NotificationChannel implements Parcelable {
dest.writeString(mParentId);
dest.writeString(mConversationId);
dest.writeBoolean(mDemoted);
+ dest.writeBoolean(mImportantConvo);
}
/**
@@ -356,13 +357,21 @@ public final class NotificationChannel implements Parcelable {
}
/**
+ * @hide
+ */
+ @TestApi
+ public void setImportantConversation(boolean importantConvo) {
+ mImportantConvo = importantConvo;
+ }
+
+ /**
* Allows users to block notifications sent through this channel, if this channel belongs to
* a package that is signed with the system signature. If the channel does not belong to a
* package that is signed with the system signature, this method does nothing.
* @param blockableSystem if {@code true}, allows users to block notifications on this channel.
* @hide
*/
- @SystemApi(client = MODULE_APPS)
+ @SystemApi
@TestApi
public void setBlockableSystem(boolean blockableSystem) {
mBlockableSystem = blockableSystem;
@@ -603,6 +612,18 @@ public final class NotificationChannel implements Parcelable {
}
/**
+ * Whether or not notifications in this conversation are considered important.
+ *
+ * <p>Important conversations may get special visual treatment, and might be able to bypass DND.
+ *
+ * <p>This is only valid for channels that represent conversations, that is, those with a valid
+ * {@link #getConversationId() conversation id}.
+ */
+ public boolean isImportantConversation() {
+ return mImportantConvo;
+ }
+
+ /**
* Returns the notification sound for this channel.
*/
public Uri getSound() {
@@ -854,6 +875,7 @@ public final class NotificationChannel implements Parcelable {
setConversationId(parser.getAttributeValue(null, ATT_PARENT_CHANNEL),
parser.getAttributeValue(null, ATT_CONVERSATION_ID));
setDemoted(safeBool(parser, ATT_DEMOTE, false));
+ setImportantConversation(safeBool(parser, ATT_IMP_CONVERSATION, false));
}
@Nullable
@@ -987,6 +1009,9 @@ public final class NotificationChannel implements Parcelable {
if (isDemoted()) {
out.attribute(null, ATT_DEMOTE, Boolean.toString(isDemoted()));
}
+ if (isImportantConversation()) {
+ out.attribute(null, ATT_IMP_CONVERSATION, Boolean.toString(isImportantConversation()));
+ }
// mImportanceLockedDefaultApp and mImportanceLockedByOEM have a different source of
// truth and so aren't written to this xml file
@@ -1147,7 +1172,8 @@ public final class NotificationChannel implements Parcelable {
&& mOriginalImportance == that.mOriginalImportance
&& Objects.equals(getParentChannelId(), that.getParentChannelId())
&& Objects.equals(getConversationId(), that.getConversationId())
- && isDemoted() == that.isDemoted();
+ && isDemoted() == that.isDemoted()
+ && isImportantConversation() == that.isImportantConversation();
}
@Override
@@ -1158,7 +1184,7 @@ public final class NotificationChannel implements Parcelable {
isFgServiceShown(), mVibrationEnabled, mShowBadge, isDeleted(), getGroup(),
getAudioAttributes(), isBlockableSystem(), mAllowBubbles,
mImportanceLockedByOEM, mImportanceLockedDefaultApp, mOriginalImportance,
- mParentId, mConversationId, mDemoted);
+ mParentId, mConversationId, mDemoted, mImportantConvo);
result = 31 * result + Arrays.hashCode(mVibration);
return result;
}
@@ -1206,7 +1232,8 @@ public final class NotificationChannel implements Parcelable {
+ ", mOriginalImp=" + mOriginalImportance
+ ", mParent=" + mParentId
+ ", mConversationId=" + mConversationId
- + ", mDemoted=" + mDemoted;
+ + ", mDemoted=" + mDemoted
+ + ", mImportantConvo=" + mImportantConvo;
}
/** @hide */
diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java
index 1a8e15c0a23e..528b508cecb1 100644
--- a/core/java/android/app/NotificationManager.java
+++ b/core/java/android/app/NotificationManager.java
@@ -46,6 +46,7 @@ import android.service.notification.Adjustment;
import android.service.notification.Condition;
import android.service.notification.StatusBarNotification;
import android.service.notification.ZenModeConfig;
+import android.service.notification.ZenPolicy;
import android.util.Log;
import android.util.proto.ProtoOutputStream;
@@ -1555,19 +1556,24 @@ public class NotificationManager {
public static final int PRIORITY_CATEGORY_MEDIA = 1 << 6;
/**System (catch-all for non-never suppressible sounds) are prioritized */
public static final int PRIORITY_CATEGORY_SYSTEM = 1 << 7;
+ /**
+ * Conversations are allowed through DND.
+ */
+ public static final int PRIORITY_CATEGORY_CONVERSATIONS = 1 << 8;
/**
* @hide
*/
public static final int[] ALL_PRIORITY_CATEGORIES = {
- PRIORITY_CATEGORY_ALARMS,
- PRIORITY_CATEGORY_MEDIA,
- PRIORITY_CATEGORY_SYSTEM,
- PRIORITY_CATEGORY_REMINDERS,
- PRIORITY_CATEGORY_EVENTS,
- PRIORITY_CATEGORY_MESSAGES,
- PRIORITY_CATEGORY_CALLS,
- PRIORITY_CATEGORY_REPEAT_CALLERS,
+ PRIORITY_CATEGORY_ALARMS,
+ PRIORITY_CATEGORY_MEDIA,
+ PRIORITY_CATEGORY_SYSTEM,
+ PRIORITY_CATEGORY_REMINDERS,
+ PRIORITY_CATEGORY_EVENTS,
+ PRIORITY_CATEGORY_MESSAGES,
+ PRIORITY_CATEGORY_CALLS,
+ PRIORITY_CATEGORY_REPEAT_CALLERS,
+ PRIORITY_CATEGORY_CONVERSATIONS,
};
/** Any sender is prioritized. */
@@ -1577,6 +1583,31 @@ public class NotificationManager {
/** Only starred contacts are prioritized. */
public static final int PRIORITY_SENDERS_STARRED = 2;
+
+ /** @hide */
+ @IntDef(prefix = { "CONVERSATION_SENDERS_" }, value = {
+ CONVERSATION_SENDERS_ANYONE,
+ CONVERSATION_SENDERS_IMPORTANT,
+ CONVERSATION_SENDERS_NONE,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface ConversationSenders {}
+ /**
+ * Used to indicate all conversations can bypass dnd.
+ */
+ public static final int CONVERSATION_SENDERS_ANYONE = ZenPolicy.CONVERSATION_SENDERS_ANYONE;
+
+ /**
+ * Used to indicate important conversations can bypass dnd.
+ */
+ public static final int CONVERSATION_SENDERS_IMPORTANT =
+ ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
+
+ /**
+ * Used to indicate no conversations can bypass dnd.
+ */
+ public static final int CONVERSATION_SENDERS_NONE = ZenPolicy.CONVERSATION_SENDERS_NONE;
+
/** Notification categories to prioritize. Bitmask of PRIORITY_CATEGORY_* constants. */
public final int priorityCategories;
@@ -1589,6 +1620,18 @@ public class NotificationManager {
public final int priorityMessageSenders;
/**
+ * Notification senders to prioritize for conversations. One of:
+ * {@link #CONVERSATION_SENDERS_NONE}, {@link #CONVERSATION_SENDERS_IMPORTANT},
+ * {@link #CONVERSATION_SENDERS_ANYONE}.
+ */
+ public final int priorityConversationSenders;
+
+ /**
+ * @hide
+ */
+ public static final int CONVERSATION_SENDERS_UNSET = -1;
+
+ /**
* @hide
*/
public static final int SUPPRESSED_EFFECTS_UNSET = -1;
@@ -1665,21 +1708,6 @@ public class NotificationManager {
SUPPRESSED_EFFECT_NOTIFICATION_LIST
};
- private static final int[] SCREEN_OFF_SUPPRESSED_EFFECTS = {
- SUPPRESSED_EFFECT_SCREEN_OFF,
- SUPPRESSED_EFFECT_FULL_SCREEN_INTENT,
- SUPPRESSED_EFFECT_LIGHTS,
- SUPPRESSED_EFFECT_AMBIENT,
- };
-
- private static final int[] SCREEN_ON_SUPPRESSED_EFFECTS = {
- SUPPRESSED_EFFECT_SCREEN_ON,
- SUPPRESSED_EFFECT_PEEK,
- SUPPRESSED_EFFECT_STATUS_BAR,
- SUPPRESSED_EFFECT_BADGE,
- SUPPRESSED_EFFECT_NOTIFICATION_LIST
- };
-
/**
* Visual effects to suppress for a notification that is filtered by Do Not Disturb mode.
* Bitmask of SUPPRESSED_EFFECT_* constants.
@@ -1718,7 +1746,41 @@ public class NotificationManager {
*/
public Policy(int priorityCategories, int priorityCallSenders, int priorityMessageSenders) {
this(priorityCategories, priorityCallSenders, priorityMessageSenders,
- SUPPRESSED_EFFECTS_UNSET, STATE_UNSET);
+ SUPPRESSED_EFFECTS_UNSET, STATE_UNSET, CONVERSATION_SENDERS_UNSET);
+ }
+
+ /**
+ * Constructs a policy for Do Not Disturb priority mode behavior.
+ *
+ * <p>
+ * Apps that target API levels below {@link Build.VERSION_CODES#R} cannot
+ * change user-designated values to allow or disallow
+ * {@link Policy#PRIORITY_CATEGORY_CONVERSATIONS}, from bypassing dnd.
+ * <p>
+ * Additionally, apps that target API levels below {@link Build.VERSION_CODES#P} can
+ * only modify the {@link #SUPPRESSED_EFFECT_SCREEN_ON} and
+ * {@link #SUPPRESSED_EFFECT_SCREEN_OFF} bits of the suppressed visual effects field.
+ * All other suppressed effects will be ignored and reconstituted from the screen on
+ * and screen off values.
+ * <p>
+ * Apps that target {@link Build.VERSION_CODES#P} or above can set any
+ * suppressed visual effects. However, if any suppressed effects >
+ * {@link #SUPPRESSED_EFFECT_SCREEN_ON} are set, {@link #SUPPRESSED_EFFECT_SCREEN_ON}
+ * and {@link #SUPPRESSED_EFFECT_SCREEN_OFF} will be ignored and reconstituted from
+ * the more specific suppressed visual effect bits. Apps should migrate to targeting
+ * specific effects instead of the deprecated {@link #SUPPRESSED_EFFECT_SCREEN_ON} and
+ * {@link #SUPPRESSED_EFFECT_SCREEN_OFF} effects.
+ *
+ * @param priorityCategories bitmask of categories of notifications that can bypass DND.
+ * @param priorityCallSenders which callers can bypass DND.
+ * @param priorityMessageSenders which message senders can bypass DND.
+ * @param suppressedVisualEffects which visual interruptions should be suppressed from
+ * notifications that are filtered by DND.
+ */
+ public Policy(int priorityCategories, int priorityCallSenders, int priorityMessageSenders,
+ int suppressedVisualEffects) {
+ this(priorityCategories, priorityCallSenders, priorityMessageSenders,
+ suppressedVisualEffects, STATE_UNSET, CONVERSATION_SENDERS_UNSET);
}
/**
@@ -1727,7 +1789,14 @@ public class NotificationManager {
* <p>
* Apps that target API levels below {@link Build.VERSION_CODES#P} cannot
* change user-designated values to allow or disallow
- * {@link Policy#PRIORITY_CATEGORY_ALARMS}, {@link Policy#PRIORITY_CATEGORY_SYSTEM}, and
+ * {@link Policy#PRIORITY_CATEGORY_CONVERSATIONS} from bypassing dnd. If you do need
+ * to change them, use a {@link ZenPolicy} associated with an {@link AutomaticZenRule}
+ * instead of changing the global setting.
+ * <p>
+ * Apps that target API levels below {@link Build.VERSION_CODES#P} cannot
+ * change user-designated values to allow or disallow
+ * {@link Policy#PRIORITY_CATEGORY_ALARMS},
+ * {@link Policy#PRIORITY_CATEGORY_SYSTEM}, and
* {@link Policy#PRIORITY_CATEGORY_MEDIA} from bypassing dnd.
* <p>
* Additionally, apps that target API levels below {@link Build.VERSION_CODES#P} can
@@ -1751,28 +1820,27 @@ public class NotificationManager {
* notifications that are filtered by DND.
*/
public Policy(int priorityCategories, int priorityCallSenders, int priorityMessageSenders,
- int suppressedVisualEffects) {
- this.priorityCategories = priorityCategories;
- this.priorityCallSenders = priorityCallSenders;
- this.priorityMessageSenders = priorityMessageSenders;
- this.suppressedVisualEffects = suppressedVisualEffects;
- this.state = STATE_UNSET;
+ int suppressedVisualEffects, int priorityConversationSenders) {
+ this(priorityCategories, priorityCallSenders, priorityMessageSenders,
+ suppressedVisualEffects, STATE_UNSET, priorityConversationSenders);
}
/** @hide */
public Policy(int priorityCategories, int priorityCallSenders, int priorityMessageSenders,
- int suppressedVisualEffects, int state) {
+ int suppressedVisualEffects, int state, int priorityConversationSenders) {
this.priorityCategories = priorityCategories;
this.priorityCallSenders = priorityCallSenders;
this.priorityMessageSenders = priorityMessageSenders;
this.suppressedVisualEffects = suppressedVisualEffects;
this.state = state;
+ this.priorityConversationSenders = priorityConversationSenders;
}
+
/** @hide */
public Policy(Parcel source) {
this(source.readInt(), source.readInt(), source.readInt(), source.readInt(),
- source.readInt());
+ source.readInt(), source.readInt());
}
@Override
@@ -1782,6 +1850,7 @@ public class NotificationManager {
dest.writeInt(priorityMessageSenders);
dest.writeInt(suppressedVisualEffects);
dest.writeInt(state);
+ dest.writeInt(priorityConversationSenders);
}
@Override
@@ -1792,7 +1861,7 @@ public class NotificationManager {
@Override
public int hashCode() {
return Objects.hash(priorityCategories, priorityCallSenders, priorityMessageSenders,
- suppressedVisualEffects, state);
+ suppressedVisualEffects, state, priorityConversationSenders);
}
@Override
@@ -1805,7 +1874,8 @@ public class NotificationManager {
&& other.priorityMessageSenders == priorityMessageSenders
&& suppressedVisualEffectsEqual(suppressedVisualEffects,
other.suppressedVisualEffects)
- && other.state == this.state;
+ && other.state == this.state
+ && other.priorityConversationSenders == this.priorityConversationSenders;
}
private boolean suppressedVisualEffectsEqual(int suppressedEffects,
@@ -1867,6 +1937,8 @@ public class NotificationManager {
+ "priorityCategories=" + priorityCategoriesToString(priorityCategories)
+ ",priorityCallSenders=" + prioritySendersToString(priorityCallSenders)
+ ",priorityMessageSenders=" + prioritySendersToString(priorityMessageSenders)
+ + ",priorityConvSenders="
+ + conversationSendersToString(priorityConversationSenders)
+ ",suppressedVisualEffects="
+ suppressedEffectsToString(suppressedVisualEffects)
+ ",areChannelsBypassingDnd=" + (((state & STATE_CHANNELS_BYPASSING_DND) != 0)
@@ -2003,6 +2075,7 @@ public class NotificationManager {
case PRIORITY_CATEGORY_ALARMS: return "PRIORITY_CATEGORY_ALARMS";
case PRIORITY_CATEGORY_MEDIA: return "PRIORITY_CATEGORY_MEDIA";
case PRIORITY_CATEGORY_SYSTEM: return "PRIORITY_CATEGORY_SYSTEM";
+ case PRIORITY_CATEGORY_CONVERSATIONS: return "PRIORITY_CATEGORY_CONVERSATIONS";
default: return "PRIORITY_CATEGORY_UNKNOWN_" + priorityCategory;
}
}
@@ -2016,7 +2089,25 @@ public class NotificationManager {
}
}
- public static final @android.annotation.NonNull Parcelable.Creator<Policy> CREATOR = new Parcelable.Creator<Policy>() {
+ /**
+ * @hide
+ */
+ public static @NonNull String conversationSendersToString(int priorityConversationSenders) {
+ switch (priorityConversationSenders) {
+ case CONVERSATION_SENDERS_ANYONE:
+ return "anyone";
+ case CONVERSATION_SENDERS_IMPORTANT:
+ return "important";
+ case CONVERSATION_SENDERS_NONE:
+ return "none";
+ case CONVERSATION_SENDERS_UNSET:
+ return "unset";
+ }
+ return "invalidConversationType{" + priorityConversationSenders + "}";
+ }
+
+ public static final @android.annotation.NonNull Parcelable.Creator<Policy> CREATOR
+ = new Parcelable.Creator<Policy>() {
@Override
public Policy createFromParcel(Parcel in) {
return new Policy(in);
@@ -2054,6 +2145,11 @@ public class NotificationManager {
}
/** @hide **/
+ public boolean allowConversations() {
+ return (priorityCategories & PRIORITY_CATEGORY_CONVERSATIONS) != 0;
+ }
+
+ /** @hide **/
public boolean allowMessages() {
return (priorityCategories & PRIORITY_CATEGORY_MESSAGES) != 0;
}
@@ -2079,6 +2175,11 @@ public class NotificationManager {
}
/** @hide **/
+ public int allowConversationsFrom() {
+ return priorityConversationSenders;
+ }
+
+ /** @hide **/
public boolean showFullScreenIntents() {
return (suppressedVisualEffects & SUPPRESSED_EFFECT_FULL_SCREEN_INTENT) == 0;
}
diff --git a/core/java/android/app/PropertyInvalidatedCache.java b/core/java/android/app/PropertyInvalidatedCache.java
index 736efb6a5e69..cbd2f1a52c0c 100644
--- a/core/java/android/app/PropertyInvalidatedCache.java
+++ b/core/java/android/app/PropertyInvalidatedCache.java
@@ -297,9 +297,10 @@ public abstract class PropertyInvalidatedCache<Query, Result> {
if (currentNonce == NONCE_DISABLED || currentNonce == NONCE_UNSET) {
if (DEBUG) {
Log.d(TAG,
- String.format("cache %s for %s",
+ String.format("cache %s %s for %s",
+ cacheName(),
currentNonce == NONCE_DISABLED ? "disabled" : "unset",
- query));
+ queryToString(query)));
}
return recompute(query);
}
@@ -310,7 +311,8 @@ public abstract class PropertyInvalidatedCache<Query, Result> {
} else {
if (DEBUG) {
Log.d(TAG,
- String.format("clearing cache because nonce changed [%s] -> [%s]",
+ String.format("clearing cache %s because nonce changed [%s] -> [%s]",
+ cacheName(),
mLastSeenNonce, currentNonce));
}
mCache.clear();
@@ -328,13 +330,15 @@ public abstract class PropertyInvalidatedCache<Query, Result> {
final Result refreshedResult = refresh(cachedResult, query);
if (refreshedResult != cachedResult) {
if (DEBUG) {
- Log.d(TAG, "cache refresh for " + query);
+ Log.d(TAG, "cache refresh for " + cacheName() + " " + queryToString(query));
}
final long afterRefreshNonce = getCurrentNonce();
if (currentNonce != afterRefreshNonce) {
currentNonce = afterRefreshNonce;
if (DEBUG) {
- Log.d(TAG, "restarting query because nonce changed in refresh");
+ Log.d(TAG, String.format("restarting %s %s because nonce changed in refresh",
+ cacheName(),
+ queryToString(query)));
}
continue;
}
@@ -352,13 +356,13 @@ public abstract class PropertyInvalidatedCache<Query, Result> {
return maybeCheckConsistency(query, refreshedResult);
}
if (DEBUG) {
- Log.d(TAG, "cache hit for " + query);
+ Log.d(TAG, "cache hit for " + cacheName() + " " + queryToString(query));
}
return maybeCheckConsistency(query, cachedResult);
}
// Cache miss: make the value from scratch.
if (DEBUG) {
- Log.d(TAG, "cache miss for " + query);
+ Log.d(TAG, "cache miss for " + cacheName() + " " + queryToString(query));
}
final Result result = recompute(query);
synchronized (mLock) {
@@ -451,4 +455,20 @@ public abstract class PropertyInvalidatedCache<Query, Result> {
}
return proposedResult;
}
+
+ /**
+ * Return the name of the cache, to be used in debug messages. The
+ * method is public so clients can use it.
+ */
+ public String cacheName() {
+ return mPropertyName;
+ }
+
+ /**
+ * Return the query as a string, to be used in debug messages. The
+ * method is public so clients can use it in external debug messages.
+ */
+ public String queryToString(Query query) {
+ return Objects.toString(query);
+ }
}
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index 59c171923f2b..50b9d6b47e02 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -163,7 +163,7 @@ import android.os.Vibrator;
import android.os.health.SystemHealthManager;
import android.os.image.DynamicSystemManager;
import android.os.image.IDynamicSystemService;
-import android.os.incremental.IIncrementalManagerNative;
+import android.os.incremental.IIncrementalService;
import android.os.incremental.IncrementalManager;
import android.os.storage.StorageManager;
import android.permission.PermissionControllerManager;
@@ -365,11 +365,9 @@ public final class SystemServiceRegistry {
registerService(Context.TETHERING_SERVICE, TetheringManager.class,
new CachedServiceFetcher<TetheringManager>() {
@Override
- public TetheringManager createService(ContextImpl ctx) throws ServiceNotFoundException {
- IBinder b = ServiceManager.getService(Context.TETHERING_SERVICE);
- if (b == null) return null;
-
- return new TetheringManager(ctx, b);
+ public TetheringManager createService(ContextImpl ctx) {
+ return new TetheringManager(
+ ctx, () -> ServiceManager.getService(Context.TETHERING_SERVICE));
}});
@@ -1301,7 +1299,7 @@ public final class SystemServiceRegistry {
return null;
}
return new IncrementalManager(
- IIncrementalManagerNative.Stub.asInterface(b));
+ IIncrementalService.Stub.asInterface(b));
}});
registerService(Context.FILE_INTEGRITY_SERVICE, FileIntegrityManager.class,
diff --git a/core/java/android/app/TaskEmbedder.java b/core/java/android/app/TaskEmbedder.java
index 93b1ea84adf7..761b225a7cdc 100644
--- a/core/java/android/app/TaskEmbedder.java
+++ b/core/java/android/app/TaskEmbedder.java
@@ -48,7 +48,6 @@ import android.view.InputDevice;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.SurfaceControl;
-import android.view.WindowManager;
import android.view.WindowManagerGlobal;
import android.view.inputmethod.InputMethodManager;
@@ -131,6 +130,7 @@ public class TaskEmbedder {
private TaskStackListener mTaskStackListener;
private Listener mListener;
private boolean mOpened; // Protected by mGuard.
+ private DisplayMetrics mTmpDisplayMetrics;
private final CloseGuard mGuard = CloseGuard.get();
@@ -594,10 +594,11 @@ public class TaskEmbedder {
/** Get density of the hosting display. */
private int getBaseDisplayDensity() {
- final WindowManager wm = mContext.getSystemService(WindowManager.class);
- final DisplayMetrics metrics = new DisplayMetrics();
- wm.getDefaultDisplay().getMetrics(metrics);
- return metrics.densityDpi;
+ if (mTmpDisplayMetrics == null) {
+ mTmpDisplayMetrics = new DisplayMetrics();
+ }
+ mContext.getDisplay().getMetrics(mTmpDisplayMetrics);
+ return mTmpDisplayMetrics.densityDpi;
}
/**
diff --git a/core/java/android/app/TaskInfo.java b/core/java/android/app/TaskInfo.java
index fe9c64038909..662ca6eb2c19 100644
--- a/core/java/android/app/TaskInfo.java
+++ b/core/java/android/app/TaskInfo.java
@@ -16,6 +16,8 @@
package android.app;
+import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
+
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.compat.annotation.UnsupportedAppUsage;
@@ -25,6 +27,7 @@ import android.content.res.Configuration;
import android.os.Parcel;
import android.os.RemoteException;
import android.util.Log;
+import android.view.IWindowContainer;
/**
* Stores information about a particular Task.
@@ -138,6 +141,19 @@ public class TaskInfo {
@UnsupportedAppUsage
public final Configuration configuration = new Configuration();
+ /**
+ * Used as an opaque identifier for this task.
+ * @hide
+ */
+ @NonNull
+ public IWindowContainer token;
+
+ /**
+ * The activity type of the top activity in this task.
+ * @hide
+ */
+ public @WindowConfiguration.ActivityType int topActivityType;
+
TaskInfo() {
// Do nothing
}
@@ -160,6 +176,11 @@ public class TaskInfo {
}
}
+ /** @hide */
+ public boolean isResizable() {
+ return resizeMode != RESIZE_MODE_UNRESIZEABLE;
+ }
+
/**
* Reads the TaskInfo from a parcel.
*/
@@ -186,6 +207,8 @@ public class TaskInfo {
supportsSplitScreenMultiWindow = source.readBoolean();
resizeMode = source.readInt();
configuration.readFromParcel(source);
+ token = IWindowContainer.Stub.asInterface(source.readStrongBinder());
+ topActivityType = source.readInt();
}
/**
@@ -221,6 +244,8 @@ public class TaskInfo {
dest.writeBoolean(supportsSplitScreenMultiWindow);
dest.writeInt(resizeMode);
configuration.writeToParcel(dest, flags);
+ dest.writeStrongInterface(token);
+ dest.writeInt(topActivityType);
}
@Override
@@ -234,6 +259,8 @@ public class TaskInfo {
+ " numActivities=" + numActivities
+ " lastActiveTime=" + lastActiveTime
+ " supportsSplitScreenMultiWindow=" + supportsSplitScreenMultiWindow
- + " resizeMode=" + resizeMode;
+ + " resizeMode=" + resizeMode
+ + " token=" + token
+ + " topActivityType=" + topActivityType;
}
}
diff --git a/core/java/android/app/UiAutomation.java b/core/java/android/app/UiAutomation.java
index 35cf68737ccc..a9a06dabc049 100644
--- a/core/java/android/app/UiAutomation.java
+++ b/core/java/android/app/UiAutomation.java
@@ -27,7 +27,10 @@ import android.annotation.Nullable;
import android.annotation.TestApi;
import android.compat.annotation.UnsupportedAppUsage;
import android.graphics.Bitmap;
+import android.graphics.Point;
+import android.graphics.Rect;
import android.graphics.Region;
+import android.hardware.display.DisplayManagerGlobal;
import android.os.Build;
import android.os.Handler;
import android.os.HandlerThread;
@@ -828,20 +831,39 @@ public final class UiAutomation {
}
/**
- * Takes a screenshot of the default display and returns it by {@link Bitmap.Config#HARDWARE}
- * format.
+ * Takes a screenshot.
*
* @return The screenshot bitmap on success, null otherwise.
*/
public Bitmap takeScreenshot() {
- final int connectionId;
synchronized (mLock) {
throwIfNotConnectedLocked();
- connectionId = mConnectionId;
}
- // Calling out without a lock held.
- return AccessibilityInteractionClient.getInstance()
- .takeScreenshot(connectionId, Display.DEFAULT_DISPLAY);
+ Display display = DisplayManagerGlobal.getInstance()
+ .getRealDisplay(Display.DEFAULT_DISPLAY);
+ Point displaySize = new Point();
+ display.getRealSize(displaySize);
+
+ int rotation = display.getRotation();
+
+ // Take the screenshot
+ Bitmap screenShot = null;
+ try {
+ // Calling out without a lock held.
+ screenShot = mUiAutomationConnection.takeScreenshot(
+ new Rect(0, 0, displaySize.x, displaySize.y), rotation);
+ if (screenShot == null) {
+ return null;
+ }
+ } catch (RemoteException re) {
+ Log.e(LOG_TAG, "Error while taking screnshot!", re);
+ return null;
+ }
+
+ // Optimization
+ screenShot.setHasAlpha(false);
+
+ return screenShot;
}
/**
diff --git a/core/java/android/app/UiAutomationConnection.java b/core/java/android/app/UiAutomationConnection.java
index 4fb974305e48..82e988109db8 100644
--- a/core/java/android/app/UiAutomationConnection.java
+++ b/core/java/android/app/UiAutomationConnection.java
@@ -21,6 +21,8 @@ import android.accessibilityservice.IAccessibilityServiceClient;
import android.annotation.Nullable;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Rect;
import android.hardware.input.InputManager;
import android.os.Binder;
import android.os.IBinder;
@@ -178,6 +180,23 @@ public final class UiAutomationConnection extends IUiAutomationConnection.Stub {
}
@Override
+ public Bitmap takeScreenshot(Rect crop, int rotation) {
+ synchronized (mLock) {
+ throwIfCalledByNotTrustedUidLocked();
+ throwIfShutdownLocked();
+ throwIfNotConnectedLocked();
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ int width = crop.width();
+ int height = crop.height();
+ return SurfaceControl.screenshot(crop, width, height, rotation);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
public boolean clearWindowContentFrameStats(int windowId) throws RemoteException {
synchronized (mLock) {
throwIfCalledByNotTrustedUidLocked();
@@ -430,8 +449,7 @@ public final class UiAutomationConnection extends IUiAutomationConnection.Stub {
info.setCapabilities(AccessibilityServiceInfo.CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT
| AccessibilityServiceInfo.CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION
| AccessibilityServiceInfo.CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY
- | AccessibilityServiceInfo.CAPABILITY_CAN_REQUEST_FILTER_KEY_EVENTS
- | AccessibilityServiceInfo.CAPABILITY_CAN_TAKE_SCREENSHOT);
+ | AccessibilityServiceInfo.CAPABILITY_CAN_REQUEST_FILTER_KEY_EVENTS);
try {
// Calling out with a lock held is fine since if the system
// process is gone the client calling in will be killed.
diff --git a/core/java/android/app/WindowContext.java b/core/java/android/app/WindowContext.java
index 22cc14bd5ed6..36ae450d342b 100644
--- a/core/java/android/app/WindowContext.java
+++ b/core/java/android/app/WindowContext.java
@@ -32,7 +32,7 @@ import android.view.WindowManagerImpl;
* windows. Its resources and configuration are adjusted to the area of the display that will be
* used when a new window is added via {@link android.view.WindowManager.addView}.
*
- * @see Context#createWindowContext(int)
+ * @see Context#createWindowContext(int, Bundle)
* @hide
*/
// TODO(b/128338354): Handle config/display changes from server side.
@@ -53,7 +53,7 @@ public class WindowContext extends ContextWrapper {
* @param type Window type to be used with this context.
* @hide
*/
- public WindowContext(Context base, IBinder token, int type) {
+ public WindowContext(Context base, IBinder token, int type, Bundle options) {
super(null /* base */);
mWms = WindowManagerGlobal.getWindowManagerService();
@@ -76,7 +76,7 @@ public class WindowContext extends ContextWrapper {
return;
}
try {
- mWms.addWindowContextToken(mToken, type, mDisplayId, getPackageName());
+ mWms.addWindowTokenWithOptions(mToken, type, mDisplayId, options, getPackageName());
// TODO(window-context): remove token with a DeathObserver
} catch (RemoteException e) {
mOwnsToken = false;
diff --git a/core/java/android/app/admin/DevicePolicyEventLogger.java b/core/java/android/app/admin/DevicePolicyEventLogger.java
index 4c0e176c519e..bbc0bdfa6d7d 100644
--- a/core/java/android/app/admin/DevicePolicyEventLogger.java
+++ b/core/java/android/app/admin/DevicePolicyEventLogger.java
@@ -19,10 +19,9 @@ package android.app.admin;
import android.annotation.Nullable;
import android.content.ComponentName;
import android.stats.devicepolicy.nano.StringList;
-import android.util.StatsLog;
import com.android.framework.protobuf.nano.MessageNano;
-import com.android.internal.util.Preconditions;
+import com.android.internal.util.FrameworkStatsLog;
import java.util.Arrays;
import java.util.Objects;
@@ -197,8 +196,8 @@ public class DevicePolicyEventLogger {
*/
public void write() {
byte[] bytes = stringArrayValueToBytes(mStringArrayValue);
- StatsLog.write(StatsLog.DEVICE_POLICY_EVENT, mEventId, mAdminPackageName, mIntValue,
- mBooleanValue, mTimePeriodMs, bytes);
+ FrameworkStatsLog.write(FrameworkStatsLog.DEVICE_POLICY_EVENT, mEventId, mAdminPackageName,
+ mIntValue, mBooleanValue, mTimePeriodMs, bytes);
}
/**
diff --git a/core/java/android/app/admin/DevicePolicyKeyguardService.java b/core/java/android/app/admin/DevicePolicyKeyguardService.java
index c2a76c5014c0..2ac5ebfc7c84 100644
--- a/core/java/android/app/admin/DevicePolicyKeyguardService.java
+++ b/core/java/android/app/admin/DevicePolicyKeyguardService.java
@@ -22,7 +22,7 @@ import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
-import android.view.SurfaceControl;
+import android.view.SurfaceControlViewHost;
/**
* Client interface for providing the SystemUI with secondary lockscreen information.
@@ -43,14 +43,14 @@ public class DevicePolicyKeyguardService extends Service {
@Override
public void onSurfaceReady(@Nullable IBinder hostInputToken, IKeyguardCallback callback) {
mCallback = callback;
- SurfaceControl surfaceControl =
+ SurfaceControlViewHost.SurfacePackage surfacePackage =
DevicePolicyKeyguardService.this.onSurfaceReady(hostInputToken);
if (mCallback != null) {
try {
- mCallback.onSurfaceControlCreated(surfaceControl);
+ mCallback.onRemoteContentReady(surfacePackage);
} catch (RemoteException e) {
- Log.e(TAG, "Failed to return created SurfaceControl", e);
+ Log.e(TAG, "Failed to return created SurfacePackage", e);
}
}
}
@@ -65,11 +65,11 @@ public class DevicePolicyKeyguardService extends Service {
/**
* Called by keyguard once the host surface for the secondary lockscreen is ready to display
* remote content.
- * @return the {@link SurfaceControl} for the Surface the secondary lockscreen content is
- * attached to.
+ * @return the {@link SurfaceControlViewHost.SurfacePackage} for the Surface the
+ * secondary lockscreen content is attached to.
*/
@Nullable
- public SurfaceControl onSurfaceReady(@Nullable IBinder hostInputToken) {
+ public SurfaceControlViewHost.SurfacePackage onSurfaceReady(@Nullable IBinder hostInputToken) {
return null;
}
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index d1b5a83e7142..759979100483 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -328,7 +328,7 @@ public class DevicePolicyManager {
* modified by the user and the only way of resetting the device is via factory reset.
*
* <p>From version {@link android.os.Build.VERSION_CODES#Q}, the admin app can choose
- * whether to set up a fully managed device or a work profile. For the admin app to support
+ * whether to set up a fully managed device or a managed profile. For the admin app to support
* this, it must have an activity with intent filter {@link #ACTION_GET_PROVISIONING_MODE} and
* another one with intent filter {@link #ACTION_ADMIN_POLICY_COMPLIANCE}. For example:
* <pre>
@@ -1781,12 +1781,13 @@ public class DevicePolicyManager {
/**
* Grants access to selection of KeyChain certificates on behalf of requesting apps.
* Once granted the app will start receiving
- * DelegatedAdminReceiver.onChoosePrivateKeyAlias. The caller (PO/DO) will
+ * {@link DelegatedAdminReceiver#onChoosePrivateKeyAlias}. The caller (PO/DO) will
* no longer receive {@link DeviceAdminReceiver#onChoosePrivateKeyAlias}.
* There can be at most one app that has this delegation.
* If another app already had delegated certificate selection access,
* it will lose the delegation when a new app is delegated.
- *
+ * <p> The delegaetd app can also call {@link #grantKeyPairToApp} and
+ * {@link #revokeKeyPairFromApp} to directly grant KeyCain keys to other apps.
* <p> Can be granted by Device Owner or Profile Owner.
*/
public static final String DELEGATION_CERT_SELECTION = "delegation-cert-selection";
@@ -2089,6 +2090,13 @@ public class DevicePolicyManager {
public static final int LOCK_TASK_FEATURE_KEYGUARD = 1 << 5;
/**
+ * Enable blocking of non-whitelisted activities from being started into a locked task.
+ *
+ * @see #setLockTaskFeatures(ComponentName, int)
+ */
+ public static final int LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK = 1 << 6;
+
+ /**
* Flags supplied to {@link #setLockTaskFeatures(ComponentName, int)}.
*
* @hide
@@ -2101,7 +2109,8 @@ public class DevicePolicyManager {
LOCK_TASK_FEATURE_HOME,
LOCK_TASK_FEATURE_OVERVIEW,
LOCK_TASK_FEATURE_GLOBAL_ACTIONS,
- LOCK_TASK_FEATURE_KEYGUARD
+ LOCK_TASK_FEATURE_KEYGUARD,
+ LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK
})
public @interface LockTaskFeature {}
@@ -3721,6 +3730,11 @@ public class DevicePolicyManager {
* requires that you request both {@link DeviceAdminInfo#USES_POLICY_WATCH_LOGIN} and
* {@link DeviceAdminInfo#USES_POLICY_WIPE_DATA}}.
* <p>
+ * When this policy is set by a device owner, profile owner of an organization-owned device or
+ * an admin on the primary user, the device will be factory reset after too many incorrect
+ * password attempts. When set by a profile owner or an admin on a secondary user or a managed
+ * profile, only the corresponding user or profile will be wiped.
+ * <p>
* To implement any other policy (e.g. wiping data for a particular application only, erasing or
* revoking credentials, or reporting the failure to a server), you should implement
* {@link DeviceAdminReceiver#onPasswordFailed(Context, android.content.Intent)} instead. Do not
@@ -3789,10 +3803,12 @@ public class DevicePolicyManager {
}
/**
- * Returns the profile with the smallest maximum failed passwords for wipe,
- * for the given user. So for primary user, it might return the primary or
- * a managed profile. For a secondary user, it would be the same as the
- * user passed in.
+ * Returns the user that will be wiped first when too many failed attempts are made to unlock
+ * user {@code userHandle}. That user is either the same as {@code userHandle} or belongs to the
+ * same profile group. When there is no such policy, returns {@code UserHandle.USER_NULL}.
+ * E.g. managed profile user may be wiped as a result of failed primary profile password
+ * attempts when using unified challenge. Primary user may be wiped as a result of failed
+ * password attempts on the managed profile on an organization-owned device.
* @hide Used only by Keyguard
*/
@RequiresFeature(PackageManager.FEATURE_SECURE_LOCK_SCREEN)
@@ -4313,7 +4329,7 @@ public class DevicePolicyManager {
* additionally call this method on the parent instance.
* Calling this method on the parent {@link DevicePolicyManager} instance would wipe the
* entire device, while calling it on the current profile instance would relinquish the device
- * for personal use, removing the work profile and all policies set by the profile owner.
+ * for personal use, removing the managed profile and all policies set by the profile owner.
*
* @param flags Bit mask of additional options: currently supported flags are
* {@link #WIPE_EXTERNAL_STORAGE}, {@link #WIPE_RESET_PROTECTION_DATA},
@@ -4339,7 +4355,7 @@ public class DevicePolicyManager {
* additionally call this method on the parent instance.
* Calling this method on the parent {@link DevicePolicyManager} instance would wipe the
* entire device, while calling it on the current profile instance would relinquish the device
- * for personal use, removing the work profile and all policies set by the profile owner.
+ * for personal use, removing the managed profile and all policies set by the profile owner.
*
* @param flags Bit mask of additional options: currently supported flags are
* {@link #WIPE_EXTERNAL_STORAGE}, {@link #WIPE_RESET_PROTECTION_DATA} and
@@ -7028,21 +7044,28 @@ public class DevicePolicyManager {
}
/**
- * Called by a device owner to set the default SMS application.
+ * Must be called by a device owner or a profile owner of an organization-owned managed profile
+ * to set the default SMS application.
* <p>
- * The calling device admin must be a device owner. If it is not, a security exception will be
- * thrown.
+ * This method can be called on the {@link DevicePolicyManager} instance, returned by
+ * {@link #getParentProfileInstance(ComponentName)}, where the caller must be the profile owner
+ * of an organization-owned managed profile and the package must be a pre-installed system
+ * package. If called on the parent instance, then the default SMS application is set on the
+ * personal profile.
*
- * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
+ * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
* @param packageName The name of the package to set as the default SMS application.
- * @throws SecurityException if {@code admin} is not a device owner.
+ * @throws SecurityException if {@code admin} is not a device or profile owner or if
+ * called on the parent profile and the {@code admin} is not a
+ * profile owner of an organization-owned managed profile.
+ * @throws IllegalArgumentException if called on the parent profile and the package
+ * provided is not a pre-installed system package.
*/
public void setDefaultSmsApplication(@NonNull ComponentName admin,
@NonNull String packageName) {
- throwIfParentInstance("setDefaultSmsApplication");
if (mService != null) {
try {
- mService.setDefaultSmsApplication(admin, packageName);
+ mService.setDefaultSmsApplication(admin, packageName, mParentInstance);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -11577,12 +11600,14 @@ public class DevicePolicyManager {
* #setCrossProfilePackages(ComponentName, Set)}.</li>
* <li>The default package names set by the OEM that are allowed to request user consent for
* cross-profile communication without being explicitly enabled by the admin, via
- * {@link com.android.internal.R.array#cross_profile_apps}</li>
+ * {@link com.android.internal.R.array#cross_profile_apps} and
+ * {@link com.android.internal.R.array#vendor_cross_profile_apps}.</li>
* </ul>
*
* @return the combined set of whitelisted package names set via
- * {@link #setCrossProfilePackages(ComponentName, Set)} and
- * {@link com.android.internal.R.array#cross_profile_apps}
+ * {@link #setCrossProfilePackages(ComponentName, Set)},
+ * {@link com.android.internal.R.array#cross_profile_apps},
+ * and {@link com.android.internal.R.array#vendor_cross_profile_apps}.
*
* @hide
*/
@@ -11592,7 +11617,7 @@ public class DevicePolicyManager {
permission.INTERACT_ACROSS_PROFILES
})
public @NonNull Set<String> getAllCrossProfilePackages() {
- throwIfParentInstance("getDefaultCrossProfilePackages");
+ throwIfParentInstance("getAllCrossProfilePackages");
if (mService != null) {
try {
return new ArraySet<>(mService.getAllCrossProfilePackages());
@@ -11604,6 +11629,26 @@ public class DevicePolicyManager {
}
/**
+ * Returns the default package names set by the OEM that are allowed to request user consent for
+ * cross-profile communication without being explicitly enabled by the admin, via
+ * {@link com.android.internal.R.array#cross_profile_apps} and
+ * {@link com.android.internal.R.array#vendor_cross_profile_apps}.
+ *
+ * @hide
+ */
+ public @NonNull Set<String> getDefaultCrossProfilePackages() {
+ throwIfParentInstance("getDefaultCrossProfilePackages");
+ if (mService != null) {
+ try {
+ return new ArraySet<>(mService.getDefaultCrossProfilePackages());
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+ return Collections.emptySet();
+ }
+
+ /**
* Returns whether the device is being used as a managed kiosk. These requirements are as
* follows:
* <ul>
diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl
index e3dba310ab44..d2672eb3e2b2 100644
--- a/core/java/android/app/admin/IDevicePolicyManager.aidl
+++ b/core/java/android/app/admin/IDevicePolicyManager.aidl
@@ -202,7 +202,7 @@ interface IDevicePolicyManager {
void addPersistentPreferredActivity(in ComponentName admin, in IntentFilter filter, in ComponentName activity);
void clearPackagePersistentPreferredActivities(in ComponentName admin, String packageName);
- void setDefaultSmsApplication(in ComponentName admin, String packageName);
+ void setDefaultSmsApplication(in ComponentName admin, String packageName, boolean parent);
void setApplicationRestrictions(in ComponentName who, in String callerPackage, in String packageName, in Bundle settings);
Bundle getApplicationRestrictions(in ComponentName who, in String callerPackage, in String packageName);
@@ -457,6 +457,7 @@ interface IDevicePolicyManager {
List<String> getCrossProfilePackages(in ComponentName admin);
List<String> getAllCrossProfilePackages();
+ List<String> getDefaultCrossProfilePackages();
boolean isManagedKiosk();
boolean isUnattendedManagedKiosk();
diff --git a/core/java/android/app/admin/IKeyguardCallback.aidl b/core/java/android/app/admin/IKeyguardCallback.aidl
index 81e7d4dee902..856033dc8129 100644
--- a/core/java/android/app/admin/IKeyguardCallback.aidl
+++ b/core/java/android/app/admin/IKeyguardCallback.aidl
@@ -15,13 +15,13 @@
*/
package android.app.admin;
-import android.view.SurfaceControl;
+import android.view.SurfaceControlViewHost;
/**
* Internal IPC interface for informing the keyguard of events on the secondary lockscreen.
* @hide
*/
interface IKeyguardCallback {
- oneway void onSurfaceControlCreated(in SurfaceControl remoteSurfaceControl);
+ oneway void onRemoteContentReady(in SurfaceControlViewHost.SurfacePackage surfacePackage);
oneway void onDismiss();
}
diff --git a/core/java/android/app/compat/CompatChanges.java b/core/java/android/app/compat/CompatChanges.java
new file mode 100644
index 000000000000..5b367894ce69
--- /dev/null
+++ b/core/java/android/app/compat/CompatChanges.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app.compat;
+
+import android.annotation.NonNull;
+import android.annotation.SystemApi;
+import android.compat.Compatibility;
+import android.content.Context;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.os.UserHandle;
+
+import com.android.internal.compat.IPlatformCompat;
+
+/**
+ * CompatChanges APIs - to be used by platform code only (including mainline
+ * modules).
+ *
+ * @hide
+ */
+@SystemApi
+public final class CompatChanges {
+ private CompatChanges() {}
+
+ /**
+ * Query if a given compatibility change is enabled for the current process. This method is
+ * intended to be called by code running inside a process of the affected app only.
+ *
+ * <p>If this method returns {@code true}, the calling code should implement the compatibility
+ * change, resulting in differing behaviour compared to earlier releases. If this method returns
+ * {@code false}, the calling code should behave as it did in earlier releases.
+ *
+ * @param changeId The ID of the compatibility change in question.
+ * @return {@code true} if the change is enabled for the current app.
+ */
+ public static boolean isChangeEnabled(long changeId) {
+ return Compatibility.isChangeEnabled(changeId);
+ }
+
+ /**
+ * Same as {@code #isChangeEnabled(long)}, except this version should be called on behalf of an
+ * app from a different process that's performing work for the app.
+ *
+ * <p> Note that this involves a binder call to the system server (unless running in the system
+ * server). If the binder call fails, a {@code RuntimeException} will be thrown.
+ *
+ * <p> Caller must have android.permission.READ_COMPAT_CHANGE_CONFIG permission. If it
+ * doesn't, a {@code RuntimeException} will be thrown.
+ *
+ * @param changeId The ID of the compatibility change in question.
+ * @param packageName The package name of the app in question.
+ * @param user The user that the operation is done for.
+ * @return {@code true} if the change is enabled for the current app.
+ */
+ public static boolean isChangeEnabled(long changeId, @NonNull String packageName,
+ @NonNull UserHandle user) {
+ IPlatformCompat platformCompat = IPlatformCompat.Stub.asInterface(
+ ServiceManager.getService(Context.PLATFORM_COMPAT_SERVICE));
+ try {
+ return platformCompat.isChangeEnabledByPackageName(changeId, packageName,
+ user.getIdentifier());
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ /**
+ * Same as {@code #isChangeEnabled(long)}, except this version should be called on behalf of an
+ * app from a different process that's performing work for the app.
+ *
+ * <p> Note that this involves a binder call to the system server (unless running in the system
+ * server). If the binder call fails, {@code RuntimeException} will be thrown.
+ *
+ * <p> Caller must have android.permission.READ_COMPAT_CHANGE_CONFIG permission. If it
+ * doesn't, a {@code RuntimeException} will be thrown.
+ *
+ * <p> Returns {@code true} if there are no installed packages for the required UID, or if the
+ * change is enabled for ALL of the installed packages associated with the provided UID. Please
+ * use a more specific API if you want a different behaviour for multi-package UIDs.
+ *
+ * @param changeId The ID of the compatibility change in question.
+ * @param uid The UID of the app in question.
+ * @return {@code true} if the change is enabled for the current app.
+ */
+ public static boolean isChangeEnabled(long changeId, int uid) {
+ IPlatformCompat platformCompat = IPlatformCompat.Stub.asInterface(
+ ServiceManager.getService(Context.PLATFORM_COMPAT_SERVICE));
+ try {
+ return platformCompat.isChangeEnabledByUid(changeId, uid);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+}
diff --git a/core/java/android/app/prediction/AppPredictionContext.java b/core/java/android/app/prediction/AppPredictionContext.java
index d14238bb2672..8fc7e8d256b6 100644
--- a/core/java/android/app/prediction/AppPredictionContext.java
+++ b/core/java/android/app/prediction/AppPredictionContext.java
@@ -100,6 +100,16 @@ public final class AppPredictionContext implements Parcelable {
&& mPackageName.equals(other.mPackageName);
}
+ @NonNull
+ @Override
+ public String toString() {
+ return new StringBuilder(this.getClass().getSimpleName())
+ .append("[mUiSurface=").append(mUiSurface)
+ .append(",mPackageName=").append(mPackageName)
+ .append(",mPredictedTargetCount=").append(mPredictedTargetCount)
+ .append(",mExtras=").append(mExtras.toString()).append("]").toString();
+ }
+
@Override
public int describeContents() {
return 0;
diff --git a/core/java/android/app/timedetector/ITimeDetectorService.aidl b/core/java/android/app/timedetector/ITimeDetectorService.aidl
index de8f4700de2d..5ead0c90c80e 100644
--- a/core/java/android/app/timedetector/ITimeDetectorService.aidl
+++ b/core/java/android/app/timedetector/ITimeDetectorService.aidl
@@ -18,7 +18,7 @@ package android.app.timedetector;
import android.app.timedetector.ManualTimeSuggestion;
import android.app.timedetector.NetworkTimeSuggestion;
-import android.app.timedetector.PhoneTimeSuggestion;
+import android.app.timedetector.TelephonyTimeSuggestion;
/**
* System private API to communicate with time detector service.
@@ -34,7 +34,7 @@ import android.app.timedetector.PhoneTimeSuggestion;
* {@hide}
*/
interface ITimeDetectorService {
- void suggestPhoneTime(in PhoneTimeSuggestion timeSuggestion);
void suggestManualTime(in ManualTimeSuggestion timeSuggestion);
void suggestNetworkTime(in NetworkTimeSuggestion timeSuggestion);
+ void suggestTelephonyTime(in TelephonyTimeSuggestion timeSuggestion);
}
diff --git a/core/java/android/app/timedetector/ManualTimeSuggestion.java b/core/java/android/app/timedetector/ManualTimeSuggestion.java
index 50de73855511..da51ce2a6aff 100644
--- a/core/java/android/app/timedetector/ManualTimeSuggestion.java
+++ b/core/java/android/app/timedetector/ManualTimeSuggestion.java
@@ -29,10 +29,18 @@ import java.util.List;
import java.util.Objects;
/**
- * A time signal from a manual (user provided) source. The value consists of the number of
- * milliseconds elapsed since 1/1/1970 00:00:00 UTC and the time according to the elapsed realtime
- * clock when that number was established. The elapsed realtime clock is considered accurate but
- * volatile, so time signals must not be persisted across device resets.
+ * A time signal from a manual (user provided) source.
+ *
+ * <p>{@code utcTime} is the suggested time. The {@code utcTime.value} is the number of milliseconds
+ * elapsed since 1/1/1970 00:00:00 UTC. The {@code utcTime.referenceTimeMillis} is the value of the
+ * elapsed realtime clock when the {@code utcTime.value} was established.
+ * Note that the elapsed realtime clock is considered accurate but it is volatile, so time
+ * suggestions cannot be persisted across device resets.
+ *
+ * <p>{@code debugInfo} contains debugging metadata associated with the suggestion. This is used to
+ * record why the suggestion exists and how it was entered. This information exists only to aid in
+ * debugging and therefore is used by {@link #toString()}, but it is not for use in detection
+ * logic and is not considered in {@link #hashCode()} or {@link #equals(Object)}.
*
* @hide
*/
@@ -49,10 +57,8 @@ public final class ManualTimeSuggestion implements Parcelable {
}
};
- @NonNull
- private final TimestampedValue<Long> mUtcTime;
- @Nullable
- private ArrayList<String> mDebugInfo;
+ @NonNull private final TimestampedValue<Long> mUtcTime;
+ @Nullable private ArrayList<String> mDebugInfo;
public ManualTimeSuggestion(@NonNull TimestampedValue<Long> utcTime) {
mUtcTime = Objects.requireNonNull(utcTime);
diff --git a/core/java/android/app/timedetector/NetworkTimeSuggestion.java b/core/java/android/app/timedetector/NetworkTimeSuggestion.java
index 17e9c5a79fa5..89fd6f31e042 100644
--- a/core/java/android/app/timedetector/NetworkTimeSuggestion.java
+++ b/core/java/android/app/timedetector/NetworkTimeSuggestion.java
@@ -29,10 +29,18 @@ import java.util.List;
import java.util.Objects;
/**
- * A time signal from a network time source like NTP. The value consists of the number of
- * milliseconds elapsed since 1/1/1970 00:00:00 UTC and the time according to the elapsed realtime
- * clock when that number was established. The elapsed realtime clock is considered accurate but
- * volatile, so time signals must not be persisted across device resets.
+ * A time signal from a network time source like NTP.
+ *
+ * <p>{@code utcTime} contains the suggested time. The {@code utcTime.value} is the number of
+ * milliseconds elapsed since 1/1/1970 00:00:00 UTC. The {@code utcTime.referenceTimeMillis} is the
+ * value of the elapsed realtime clock when the {@code utcTime.value} was established.
+ * Note that the elapsed realtime clock is considered accurate but it is volatile, so time
+ * suggestions cannot be persisted across device resets.
+ *
+ * <p>{@code debugInfo} contains debugging metadata associated with the suggestion. This is used to
+ * record why the suggestion exists and how it was determined. This information exists only to aid
+ * in debugging and therefore is used by {@link #toString()}, but it is not for use in detection
+ * logic and is not considered in {@link #hashCode()} or {@link #equals(Object)}.
*
* @hide
*/
@@ -49,10 +57,8 @@ public final class NetworkTimeSuggestion implements Parcelable {
}
};
- @NonNull
- private final TimestampedValue<Long> mUtcTime;
- @Nullable
- private ArrayList<String> mDebugInfo;
+ @NonNull private final TimestampedValue<Long> mUtcTime;
+ @Nullable private ArrayList<String> mDebugInfo;
public NetworkTimeSuggestion(@NonNull TimestampedValue<Long> utcTime) {
mUtcTime = Objects.requireNonNull(utcTime);
diff --git a/core/java/android/app/timedetector/PhoneTimeSuggestion.aidl b/core/java/android/app/timedetector/TelephonyTimeSuggestion.aidl
index f5e240549a9a..d9b038692c62 100644
--- a/core/java/android/app/timedetector/PhoneTimeSuggestion.aidl
+++ b/core/java/android/app/timedetector/TelephonyTimeSuggestion.aidl
@@ -16,4 +16,4 @@
package android.app.timedetector;
-parcelable PhoneTimeSuggestion;
+parcelable TelephonyTimeSuggestion;
diff --git a/core/java/android/app/timedetector/PhoneTimeSuggestion.java b/core/java/android/app/timedetector/TelephonyTimeSuggestion.java
index bd649f88f40a..c0e8957727cf 100644
--- a/core/java/android/app/timedetector/PhoneTimeSuggestion.java
+++ b/core/java/android/app/timedetector/TelephonyTimeSuggestion.java
@@ -18,7 +18,6 @@ package android.app.timedetector;
import android.annotation.NonNull;
import android.annotation.Nullable;
-import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.TimestampedValue;
@@ -32,44 +31,52 @@ import java.util.Objects;
* A time suggestion from an identified telephony source. e.g. from NITZ information from a specific
* radio.
*
- * <p>The time value can be {@code null} to indicate that the telephony source has entered an
- * "un-opinionated" state and any previous suggestions from the source are being withdrawn. When not
- * {@code null}, the value consists of the number of milliseconds elapsed since 1/1/1970 00:00:00
- * UTC and the time according to the elapsed realtime clock when that number was established. The
- * elapsed realtime clock is considered accurate but volatile, so time suggestions must not be
- * persisted across device resets.
+ * <p>{@code slotIndex} identifies the suggestion source. This enables detection logic to identify
+ * suggestions from the same source when there are several in use.
+ *
+ * <p>{@code utcTime}. When not {@code null}, the {@code utcTime.value} is the number of
+ * milliseconds elapsed since 1/1/1970 00:00:00 UTC. The {@code utcTime.referenceTimeMillis} is the
+ * value of the elapsed realtime clock when the {@code utcTime.value} was established.
+ * Note that the elapsed realtime clock is considered accurate but it is volatile, so time
+ * suggestions cannot be persisted across device resets. {@code utcTime} can be {@code null} to
+ * indicate that the telephony source has entered an "un-opinionated" state and any previous
+ * suggestion from the source is being withdrawn.
+ *
+ * <p>{@code debugInfo} contains debugging metadata associated with the suggestion. This is used to
+ * record why the suggestion exists, e.g. what triggered it to be made and what heuristic was used
+ * to determine the time or its absence. This information exists only to aid in debugging and
+ * therefore is used by {@link #toString()}, but it is not for use in detection logic and is not
+ * considered in {@link #hashCode()} or {@link #equals(Object)}.
*
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
-public final class PhoneTimeSuggestion implements Parcelable {
+public final class TelephonyTimeSuggestion implements Parcelable {
/** @hide */
- @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
- public static final @NonNull Parcelable.Creator<PhoneTimeSuggestion> CREATOR =
- new Parcelable.Creator<PhoneTimeSuggestion>() {
- public PhoneTimeSuggestion createFromParcel(Parcel in) {
- return PhoneTimeSuggestion.createFromParcel(in);
+ public static final @NonNull Parcelable.Creator<TelephonyTimeSuggestion> CREATOR =
+ new Parcelable.Creator<TelephonyTimeSuggestion>() {
+ public TelephonyTimeSuggestion createFromParcel(Parcel in) {
+ return TelephonyTimeSuggestion.createFromParcel(in);
}
- public PhoneTimeSuggestion[] newArray(int size) {
- return new PhoneTimeSuggestion[size];
+ public TelephonyTimeSuggestion[] newArray(int size) {
+ return new TelephonyTimeSuggestion[size];
}
};
- private final int mPhoneId;
+ private final int mSlotIndex;
@Nullable private final TimestampedValue<Long> mUtcTime;
@Nullable private ArrayList<String> mDebugInfo;
- private PhoneTimeSuggestion(Builder builder) {
- mPhoneId = builder.mPhoneId;
+ private TelephonyTimeSuggestion(Builder builder) {
+ mSlotIndex = builder.mSlotIndex;
mUtcTime = builder.mUtcTime;
mDebugInfo = builder.mDebugInfo != null ? new ArrayList<>(builder.mDebugInfo) : null;
}
- private static PhoneTimeSuggestion createFromParcel(Parcel in) {
- int phoneId = in.readInt();
- PhoneTimeSuggestion suggestion = new PhoneTimeSuggestion.Builder(phoneId)
+ private static TelephonyTimeSuggestion createFromParcel(Parcel in) {
+ int slotIndex = in.readInt();
+ TelephonyTimeSuggestion suggestion = new TelephonyTimeSuggestion.Builder(slotIndex)
.setUtcTime(in.readParcelable(null /* classLoader */))
.build();
@SuppressWarnings("unchecked")
@@ -87,22 +94,24 @@ public final class PhoneTimeSuggestion implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
- dest.writeInt(mPhoneId);
+ dest.writeInt(mSlotIndex);
dest.writeParcelable(mUtcTime, 0);
dest.writeList(mDebugInfo);
}
/**
- * Returns an identifier for the source of this suggestion. When a device has several "phones",
- * i.e. sim slots or equivalent, it is used to identify which one.
+ * Returns an identifier for the source of this suggestion.
+ *
+ * <p>See {@link TelephonyTimeSuggestion} for more information about {@code slotIndex}.
*/
- public int getPhoneId() {
- return mPhoneId;
+ public int getSlotIndex() {
+ return mSlotIndex;
}
/**
- * Returns the suggestion. {@code null} means that the caller is no longer sure what time it
- * is.
+ * Returns the suggested time or {@code null} if there isn't one.
+ *
+ * <p>See {@link TelephonyTimeSuggestion} for more information about {@code utcTime}.
*/
@Nullable
public TimestampedValue<Long> getUtcTime() {
@@ -110,8 +119,9 @@ public final class PhoneTimeSuggestion implements Parcelable {
}
/**
- * Returns debug metadata for the suggestion. The information is present in {@link #toString()}
- * but is not considered for {@link #equals(Object)} and {@link #hashCode()}.
+ * Returns debug metadata for the suggestion.
+ *
+ * <p>See {@link TelephonyTimeSuggestion} for more information about {@code debugInfo}.
*/
@NonNull
public List<String> getDebugInfo() {
@@ -120,9 +130,9 @@ public final class PhoneTimeSuggestion implements Parcelable {
}
/**
- * Associates information with the instance that can be useful for debugging / logging. The
- * information is present in {@link #toString()} but is not considered for
- * {@link #equals(Object)} and {@link #hashCode()}.
+ * Associates information with the instance that can be useful for debugging / logging.
+ *
+ * <p>See {@link TelephonyTimeSuggestion} for more information about {@code debugInfo}.
*/
public void addDebugInfo(@NonNull String debugInfo) {
if (mDebugInfo == null) {
@@ -132,9 +142,9 @@ public final class PhoneTimeSuggestion implements Parcelable {
}
/**
- * Associates information with the instance that can be useful for debugging / logging. The
- * information is present in {@link #toString()} but is not considered for
- * {@link #equals(Object)} and {@link #hashCode()}.
+ * Associates information with the instance that can be useful for debugging / logging.
+ *
+ * <p>See {@link TelephonyTimeSuggestion} for more information about {@code debugInfo}.
*/
public void addDebugInfo(@NonNull List<String> debugInfo) {
if (mDebugInfo == null) {
@@ -151,42 +161,49 @@ public final class PhoneTimeSuggestion implements Parcelable {
if (o == null || getClass() != o.getClass()) {
return false;
}
- PhoneTimeSuggestion that = (PhoneTimeSuggestion) o;
- return mPhoneId == that.mPhoneId
+ TelephonyTimeSuggestion that = (TelephonyTimeSuggestion) o;
+ return mSlotIndex == that.mSlotIndex
&& Objects.equals(mUtcTime, that.mUtcTime);
}
@Override
public int hashCode() {
- return Objects.hash(mPhoneId, mUtcTime);
+ return Objects.hash(mSlotIndex, mUtcTime);
}
@Override
public String toString() {
- return "PhoneTimeSuggestion{"
- + "mPhoneId='" + mPhoneId + '\''
+ return "TelephonyTimeSuggestion{"
+ + "mSlotIndex='" + mSlotIndex + '\''
+ ", mUtcTime=" + mUtcTime
+ ", mDebugInfo=" + mDebugInfo
+ '}';
}
/**
- * Builds {@link PhoneTimeSuggestion} instances.
+ * Builds {@link TelephonyTimeSuggestion} instances.
*
* @hide
*/
- @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public static final class Builder {
- private final int mPhoneId;
+ private final int mSlotIndex;
@Nullable private TimestampedValue<Long> mUtcTime;
@Nullable private List<String> mDebugInfo;
- /** Creates a builder with the specified {@code phoneId}. */
- public Builder(int phoneId) {
- mPhoneId = phoneId;
+ /**
+ * Creates a builder with the specified {@code slotIndex}.
+ *
+ * <p>See {@link TelephonyTimeSuggestion} for more information about {@code slotIndex}.
+ */
+ public Builder(int slotIndex) {
+ mSlotIndex = slotIndex;
}
- /** Returns the builder for call chaining. */
+ /**
+ * Returns the builder for call chaining.
+ *
+ * <p>See {@link TelephonyTimeSuggestion} for more information about {@code utcTime}.
+ */
@NonNull
public Builder setUtcTime(@Nullable TimestampedValue<Long> utcTime) {
if (utcTime != null) {
@@ -198,7 +215,11 @@ public final class PhoneTimeSuggestion implements Parcelable {
return this;
}
- /** Returns the builder for call chaining. */
+ /**
+ * Returns the builder for call chaining.
+ *
+ * <p>See {@link TelephonyTimeSuggestion} for more information about {@code debugInfo}.
+ */
@NonNull
public Builder addDebugInfo(@NonNull String debugInfo) {
if (mDebugInfo == null) {
@@ -208,10 +229,10 @@ public final class PhoneTimeSuggestion implements Parcelable {
return this;
}
- /** Returns the {@link PhoneTimeSuggestion}. */
+ /** Returns the {@link TelephonyTimeSuggestion}. */
@NonNull
- public PhoneTimeSuggestion build() {
- return new PhoneTimeSuggestion(this);
+ public TelephonyTimeSuggestion build() {
+ return new TelephonyTimeSuggestion(this);
}
}
}
diff --git a/core/java/android/app/timedetector/TimeDetector.java b/core/java/android/app/timedetector/TimeDetector.java
index 2412fb3994ed..84ad495da09b 100644
--- a/core/java/android/app/timedetector/TimeDetector.java
+++ b/core/java/android/app/timedetector/TimeDetector.java
@@ -18,7 +18,6 @@ package android.app.timedetector;
import android.annotation.NonNull;
import android.annotation.RequiresPermission;
-import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.content.Context;
import android.os.SystemClock;
@@ -29,7 +28,6 @@ import android.os.TimestampedValue;
*
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
@SystemService(Context.TIME_DETECTOR_SERVICE)
public interface TimeDetector {
@@ -47,12 +45,12 @@ public interface TimeDetector {
}
/**
- * Suggests the current phone-signal derived time to the detector. The detector may ignore the
- * signal if better signals are available such as those that come from more reliable sources or
- * were determined more recently.
+ * Suggests a telephony-signal derived time to the detector. The detector may ignore the signal
+ * if better signals are available such as those that come from more reliable sources or were
+ * determined more recently.
*/
- @RequiresPermission(android.Manifest.permission.SUGGEST_PHONE_TIME_AND_ZONE)
- void suggestPhoneTime(@NonNull PhoneTimeSuggestion timeSuggestion);
+ @RequiresPermission(android.Manifest.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE)
+ void suggestTelephonyTime(@NonNull TelephonyTimeSuggestion timeSuggestion);
/**
* Suggests the user's manually entered current time to the detector.
diff --git a/core/java/android/app/timedetector/TimeDetectorImpl.java b/core/java/android/app/timedetector/TimeDetectorImpl.java
index 1683817740c3..c1d66672f9d2 100644
--- a/core/java/android/app/timedetector/TimeDetectorImpl.java
+++ b/core/java/android/app/timedetector/TimeDetectorImpl.java
@@ -40,12 +40,12 @@ public final class TimeDetectorImpl implements TimeDetector {
}
@Override
- public void suggestPhoneTime(@NonNull PhoneTimeSuggestion timeSuggestion) {
+ public void suggestTelephonyTime(@NonNull TelephonyTimeSuggestion timeSuggestion) {
if (DEBUG) {
- Log.d(TAG, "suggestPhoneTime called: " + timeSuggestion);
+ Log.d(TAG, "suggestTelephonyTime called: " + timeSuggestion);
}
try {
- mITimeDetectorService.suggestPhoneTime(timeSuggestion);
+ mITimeDetectorService.suggestTelephonyTime(timeSuggestion);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
diff --git a/core/java/android/app/timezonedetector/ITimeZoneDetectorService.aidl b/core/java/android/app/timezonedetector/ITimeZoneDetectorService.aidl
index df6438319ab7..b06f4b8ecdb8 100644
--- a/core/java/android/app/timezonedetector/ITimeZoneDetectorService.aidl
+++ b/core/java/android/app/timezonedetector/ITimeZoneDetectorService.aidl
@@ -17,7 +17,7 @@
package android.app.timezonedetector;
import android.app.timezonedetector.ManualTimeZoneSuggestion;
-import android.app.timezonedetector.PhoneTimeZoneSuggestion;
+import android.app.timezonedetector.TelephonyTimeZoneSuggestion;
/**
* System private API to communicate with time zone detector service.
@@ -34,5 +34,5 @@ import android.app.timezonedetector.PhoneTimeZoneSuggestion;
*/
interface ITimeZoneDetectorService {
void suggestManualTimeZone(in ManualTimeZoneSuggestion timeZoneSuggestion);
- void suggestPhoneTimeZone(in PhoneTimeZoneSuggestion timeZoneSuggestion);
+ void suggestTelephonyTimeZone(in TelephonyTimeZoneSuggestion timeZoneSuggestion);
}
diff --git a/core/java/android/app/timezonedetector/ManualTimeZoneSuggestion.java b/core/java/android/app/timezonedetector/ManualTimeZoneSuggestion.java
index a6b953b42f8f..3a9adc72aab1 100644
--- a/core/java/android/app/timezonedetector/ManualTimeZoneSuggestion.java
+++ b/core/java/android/app/timezonedetector/ManualTimeZoneSuggestion.java
@@ -28,10 +28,14 @@ import java.util.List;
import java.util.Objects;
/**
- * A time signal from a manual (user provided) source. The value consists of the number of
- * milliseconds elapsed since 1/1/1970 00:00:00 UTC and the time according to the elapsed realtime
- * clock when that number was established. The elapsed realtime clock is considered accurate but
- * volatile, so time signals must not be persisted across device resets.
+ * A time signal from a manual (user provided) source.
+ *
+ * <p>{@code zoneId} contains the suggested time zone ID, e.g. "America/Los_Angeles".
+ *
+ * <p>{@code debugInfo} contains debugging metadata associated with the suggestion. This is used to
+ * record why the suggestion exists and how it was entered. This information exists only to aid in
+ * debugging and therefore is used by {@link #toString()}, but it is not for use in detection logic
+ * and is not considered in {@link #hashCode()} or {@link #equals(Object)}.
*
* @hide
*/
@@ -48,10 +52,8 @@ public final class ManualTimeZoneSuggestion implements Parcelable {
}
};
- @NonNull
- private final String mZoneId;
- @Nullable
- private ArrayList<String> mDebugInfo;
+ @NonNull private final String mZoneId;
+ @Nullable private ArrayList<String> mDebugInfo;
public ManualTimeZoneSuggestion(@NonNull String zoneId) {
mZoneId = Objects.requireNonNull(zoneId);
diff --git a/core/java/android/app/timezonedetector/PhoneTimeZoneSuggestion.aidl b/core/java/android/app/timezonedetector/TelephonyTimeZoneSuggestion.aidl
index 3ad903bb5949..b57ad20734be 100644
--- a/core/java/android/app/timezonedetector/PhoneTimeZoneSuggestion.aidl
+++ b/core/java/android/app/timezonedetector/TelephonyTimeZoneSuggestion.aidl
@@ -16,4 +16,4 @@
package android.app.timezonedetector;
-parcelable PhoneTimeZoneSuggestion;
+parcelable TelephonyTimeZoneSuggestion;
diff --git a/core/java/android/app/timezonedetector/PhoneTimeZoneSuggestion.java b/core/java/android/app/timezonedetector/TelephonyTimeZoneSuggestion.java
index d71ffcb9f772..150c01d59899 100644
--- a/core/java/android/app/timezonedetector/PhoneTimeZoneSuggestion.java
+++ b/core/java/android/app/timezonedetector/TelephonyTimeZoneSuggestion.java
@@ -19,7 +19,6 @@ package android.app.timezonedetector;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
-import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
@@ -34,10 +33,14 @@ import java.util.Objects;
* A time zone suggestion from an identified telephony source, e.g. from MCC and NITZ information
* associated with a specific radio.
*
- * <p>The time zone ID can be {@code null} to indicate that the telephony source has entered an
- * "un-opinionated" state and any previous suggestions from that source are being withdrawn.
- * When not {@code null}, the value consists of a suggested time zone ID and metadata that can be
- * used to judge quality / certainty of the suggestion.
+ * <p>{@code slotIndex} identifies the suggestion source. This enables detection logic to identify
+ * suggestions from the same source when there are several in use.
+ *
+ * <p>{@code zoneId}. When not {@code null}, {@code zoneId} contains the suggested time zone ID,
+ * e.g. "America/Los_Angeles". Suggestion metadata like {@code matchType} and {@code quality} can be
+ * used to judge quality / certainty of the suggestion. {@code zoneId} can be {@code null} to
+ * indicate that the telephony source has entered an "un-opinionated" state and any previous
+ * suggestion from the same source is being withdrawn.
*
* <p>{@code matchType} must be set to {@link #MATCH_TYPE_NA} when {@code zoneId} is {@code null},
* and one of the other {@code MATCH_TYPE_} values when it is not {@code null}.
@@ -45,33 +48,37 @@ import java.util.Objects;
* <p>{@code quality} must be set to {@link #QUALITY_NA} when {@code zoneId} is {@code null},
* and one of the other {@code QUALITY_} values when it is not {@code null}.
*
+ * <p>{@code debugInfo} contains debugging metadata associated with the suggestion. This is used to
+ * record why the suggestion exists, e.g. what triggered it to be made and what heuristic was used
+ * to determine the time zone or its absence. This information exists only to aid in debugging and
+ * therefore is used by {@link #toString()}, but it is not for use in detection logic and is not
+ * considered in {@link #hashCode()} or {@link #equals(Object)}.
+ *
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
-public final class PhoneTimeZoneSuggestion implements Parcelable {
+public final class TelephonyTimeZoneSuggestion implements Parcelable {
/** @hide */
- @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
@NonNull
- public static final Creator<PhoneTimeZoneSuggestion> CREATOR =
- new Creator<PhoneTimeZoneSuggestion>() {
- public PhoneTimeZoneSuggestion createFromParcel(Parcel in) {
- return PhoneTimeZoneSuggestion.createFromParcel(in);
+ public static final Creator<TelephonyTimeZoneSuggestion> CREATOR =
+ new Creator<TelephonyTimeZoneSuggestion>() {
+ public TelephonyTimeZoneSuggestion createFromParcel(Parcel in) {
+ return TelephonyTimeZoneSuggestion.createFromParcel(in);
}
- public PhoneTimeZoneSuggestion[] newArray(int size) {
- return new PhoneTimeZoneSuggestion[size];
+ public TelephonyTimeZoneSuggestion[] newArray(int size) {
+ return new TelephonyTimeZoneSuggestion[size];
}
};
/**
* Creates an empty time zone suggestion, i.e. one that will cancel previous suggestions with
- * the same {@code phoneId}.
+ * the same {@code slotIndex}.
*/
@NonNull
- public static PhoneTimeZoneSuggestion createEmptySuggestion(
- int phoneId, @NonNull String debugInfo) {
- return new Builder(phoneId).addDebugInfo(debugInfo).build();
+ public static TelephonyTimeZoneSuggestion createEmptySuggestion(
+ int slotIndex, @NonNull String debugInfo) {
+ return new Builder(slotIndex).addDebugInfo(debugInfo).build();
}
/** @hide */
@@ -131,41 +138,14 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
*/
public static final int QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS = 3;
- /**
- * The ID of the phone this suggestion is associated with. For multiple-sim devices this
- * helps to establish source so filtering / stickiness can be implemented.
- */
- private final int mPhoneId;
-
- /**
- * The suggestion. {@code null} means there is no current suggestion and any previous suggestion
- * should be forgotten.
- */
- @Nullable
- private final String mZoneId;
-
- /**
- * The type of "match" used to establish the time zone.
- */
- @MatchType
- private final int mMatchType;
-
- /**
- * A measure of the quality of the time zone suggestion, i.e. how confident one could be in
- * it.
- */
- @Quality
- private final int mQuality;
-
- /**
- * Free-form debug information about how the suggestion was derived. Used for debug only,
- * intentionally not used in equals(), etc.
- */
- @Nullable
- private List<String> mDebugInfo;
+ private final int mSlotIndex;
+ @Nullable private final String mZoneId;
+ @MatchType private final int mMatchType;
+ @Quality private final int mQuality;
+ @Nullable private List<String> mDebugInfo;
- private PhoneTimeZoneSuggestion(Builder builder) {
- mPhoneId = builder.mPhoneId;
+ private TelephonyTimeZoneSuggestion(Builder builder) {
+ mSlotIndex = builder.mSlotIndex;
mZoneId = builder.mZoneId;
mMatchType = builder.mMatchType;
mQuality = builder.mQuality;
@@ -173,15 +153,16 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
}
@SuppressWarnings("unchecked")
- private static PhoneTimeZoneSuggestion createFromParcel(Parcel in) {
+ private static TelephonyTimeZoneSuggestion createFromParcel(Parcel in) {
// Use the Builder so we get validation during build().
- int phoneId = in.readInt();
- PhoneTimeZoneSuggestion suggestion = new Builder(phoneId)
+ int slotIndex = in.readInt();
+ TelephonyTimeZoneSuggestion suggestion = new Builder(slotIndex)
.setZoneId(in.readString())
.setMatchType(in.readInt())
.setQuality(in.readInt())
.build();
- List<String> debugInfo = in.readArrayList(PhoneTimeZoneSuggestion.class.getClassLoader());
+ List<String> debugInfo =
+ in.readArrayList(TelephonyTimeZoneSuggestion.class.getClassLoader());
if (debugInfo != null) {
suggestion.addDebugInfo(debugInfo);
}
@@ -190,7 +171,7 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
- dest.writeInt(mPhoneId);
+ dest.writeInt(mSlotIndex);
dest.writeString(mZoneId);
dest.writeInt(mMatchType);
dest.writeInt(mQuality);
@@ -203,17 +184,19 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
}
/**
- * Returns an identifier for the source of this suggestion. When a device has several "phones",
- * i.e. sim slots or equivalent, it is used to identify which one.
+ * Returns an identifier for the source of this suggestion.
+ *
+ * <p>See {@link TelephonyTimeZoneSuggestion} for more information about {@code slotIndex}.
*/
- public int getPhoneId() {
- return mPhoneId;
+ public int getSlotIndex() {
+ return mSlotIndex;
}
/**
* Returns the suggested time zone Olson ID, e.g. "America/Los_Angeles". {@code null} means that
- * the caller is no longer sure what the current time zone is. See
- * {@link PhoneTimeZoneSuggestion} for the associated {@code matchType} / {@code quality} rules.
+ * the caller is no longer sure what the current time zone is.
+ *
+ * <p>See {@link TelephonyTimeZoneSuggestion} for more information about {@code zoneId}.
*/
@Nullable
public String getZoneId() {
@@ -222,8 +205,9 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
/**
* Returns information about how the suggestion was determined which could be used to rank
- * suggestions when several are available from different sources. See
- * {@link PhoneTimeZoneSuggestion} for the associated rules.
+ * suggestions when several are available from different sources.
+ *
+ * <p>See {@link TelephonyTimeZoneSuggestion} for more information about {@code matchType}.
*/
@MatchType
public int getMatchType() {
@@ -231,8 +215,9 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
}
/**
- * Returns information about the likelihood of the suggested zone being correct. See
- * {@link PhoneTimeZoneSuggestion} for the associated rules.
+ * Returns information about the likelihood of the suggested zone being correct.
+ *
+ * <p>See {@link TelephonyTimeZoneSuggestion} for more information about {@code quality}.
*/
@Quality
public int getQuality() {
@@ -240,8 +225,9 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
}
/**
- * Returns debug metadata for the suggestion. The information is present in {@link #toString()}
- * but is not considered for {@link #equals(Object)} and {@link #hashCode()}.
+ * Returns debug metadata for the suggestion.
+ *
+ * <p>See {@link TelephonyTimeZoneSuggestion} for more information about {@code debugInfo}.
*/
@NonNull
public List<String> getDebugInfo() {
@@ -250,9 +236,9 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
}
/**
- * Associates information with the instance that can be useful for debugging / logging. The
- * information is present in {@link #toString()} but is not considered for
- * {@link #equals(Object)} and {@link #hashCode()}.
+ * Associates information with the instance that can be useful for debugging / logging.
+ *
+ * <p>See {@link TelephonyTimeZoneSuggestion} for more information about {@code debugInfo}.
*/
public void addDebugInfo(@NonNull String debugInfo) {
if (mDebugInfo == null) {
@@ -262,9 +248,9 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
}
/**
- * Associates information with the instance that can be useful for debugging / logging. The
- * information is present in {@link #toString()} but is not considered for
- * {@link #equals(Object)} and {@link #hashCode()}.
+ * Associates information with the instance that can be useful for debugging / logging.
+ *
+ * <p>See {@link TelephonyTimeZoneSuggestion} for more information about {@code debugInfo}.
*/
public void addDebugInfo(@NonNull List<String> debugInfo) {
if (mDebugInfo == null) {
@@ -281,8 +267,8 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
if (o == null || getClass() != o.getClass()) {
return false;
}
- PhoneTimeZoneSuggestion that = (PhoneTimeZoneSuggestion) o;
- return mPhoneId == that.mPhoneId
+ TelephonyTimeZoneSuggestion that = (TelephonyTimeZoneSuggestion) o;
+ return mSlotIndex == that.mSlotIndex
&& mMatchType == that.mMatchType
&& mQuality == that.mQuality
&& Objects.equals(mZoneId, that.mZoneId);
@@ -290,13 +276,13 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
@Override
public int hashCode() {
- return Objects.hash(mPhoneId, mZoneId, mMatchType, mQuality);
+ return Objects.hash(mSlotIndex, mZoneId, mMatchType, mQuality);
}
@Override
public String toString() {
- return "PhoneTimeZoneSuggestion{"
- + "mPhoneId=" + mPhoneId
+ return "TelephonyTimeZoneSuggestion{"
+ + "mSlotIndex=" + mSlotIndex
+ ", mZoneId='" + mZoneId + '\''
+ ", mMatchType=" + mMatchType
+ ", mQuality=" + mQuality
@@ -305,24 +291,30 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
}
/**
- * Builds {@link PhoneTimeZoneSuggestion} instances.
+ * Builds {@link TelephonyTimeZoneSuggestion} instances.
*
* @hide
*/
- @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public static final class Builder {
- private final int mPhoneId;
+ private final int mSlotIndex;
@Nullable private String mZoneId;
@MatchType private int mMatchType;
@Quality private int mQuality;
@Nullable private List<String> mDebugInfo;
- public Builder(int phoneId) {
- mPhoneId = phoneId;
+ /**
+ * Creates a builder with the specified {@code slotIndex}.
+ *
+ * <p>See {@link TelephonyTimeZoneSuggestion} for more information about {@code slotIndex}.
+ */
+ public Builder(int slotIndex) {
+ mSlotIndex = slotIndex;
}
/**
* Returns the builder for call chaining.
+ *
+ * <p>See {@link TelephonyTimeZoneSuggestion} for more information about {@code zoneId}.
*/
@NonNull
public Builder setZoneId(@Nullable String zoneId) {
@@ -330,21 +322,33 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
return this;
}
- /** Returns the builder for call chaining. */
+ /**
+ * Returns the builder for call chaining.
+ *
+ * <p>See {@link TelephonyTimeZoneSuggestion} for more information about {@code matchType}.
+ */
@NonNull
public Builder setMatchType(@MatchType int matchType) {
mMatchType = matchType;
return this;
}
- /** Returns the builder for call chaining. */
+ /**
+ * Returns the builder for call chaining.
+ *
+ * <p>See {@link TelephonyTimeZoneSuggestion} for more information about {@code quality}.
+ */
@NonNull
public Builder setQuality(@Quality int quality) {
mQuality = quality;
return this;
}
- /** Returns the builder for call chaining. */
+ /**
+ * Returns the builder for call chaining.
+ *
+ * <p>See {@link TelephonyTimeZoneSuggestion} for more information about {@code debugInfo}.
+ */
@NonNull
public Builder addDebugInfo(@NonNull String debugInfo) {
if (mDebugInfo == null) {
@@ -381,11 +385,11 @@ public final class PhoneTimeZoneSuggestion implements Parcelable {
}
}
- /** Returns the {@link PhoneTimeZoneSuggestion}. */
+ /** Returns the {@link TelephonyTimeZoneSuggestion}. */
@NonNull
- public PhoneTimeZoneSuggestion build() {
+ public TelephonyTimeZoneSuggestion build() {
validate();
- return new PhoneTimeZoneSuggestion(this);
+ return new TelephonyTimeZoneSuggestion(this);
}
}
}
diff --git a/core/java/android/app/timezonedetector/TimeZoneDetector.java b/core/java/android/app/timezonedetector/TimeZoneDetector.java
index b4f608787d4a..20761ad2d447 100644
--- a/core/java/android/app/timezonedetector/TimeZoneDetector.java
+++ b/core/java/android/app/timezonedetector/TimeZoneDetector.java
@@ -18,7 +18,6 @@ package android.app.timezonedetector;
import android.annotation.NonNull;
import android.annotation.RequiresPermission;
-import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.content.Context;
@@ -27,7 +26,6 @@ import android.content.Context;
*
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
@SystemService(Context.TIME_ZONE_DETECTOR_SERVICE)
public interface TimeZoneDetector {
@@ -49,9 +47,8 @@ public interface TimeZoneDetector {
*
* @hide
*/
- @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
- @RequiresPermission(android.Manifest.permission.SUGGEST_PHONE_TIME_AND_ZONE)
- void suggestPhoneTimeZone(@NonNull PhoneTimeZoneSuggestion timeZoneSuggestion);
+ @RequiresPermission(android.Manifest.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE)
+ void suggestTelephonyTimeZone(@NonNull TelephonyTimeZoneSuggestion timeZoneSuggestion);
/**
* Suggests the current time zone, determined for the user's manually information, to the
diff --git a/core/java/android/app/timezonedetector/TimeZoneDetectorImpl.java b/core/java/android/app/timezonedetector/TimeZoneDetectorImpl.java
index 27b8374db172..0ada88500193 100644
--- a/core/java/android/app/timezonedetector/TimeZoneDetectorImpl.java
+++ b/core/java/android/app/timezonedetector/TimeZoneDetectorImpl.java
@@ -40,12 +40,12 @@ public final class TimeZoneDetectorImpl implements TimeZoneDetector {
}
@Override
- public void suggestPhoneTimeZone(@NonNull PhoneTimeZoneSuggestion timeZoneSuggestion) {
+ public void suggestTelephonyTimeZone(@NonNull TelephonyTimeZoneSuggestion timeZoneSuggestion) {
if (DEBUG) {
- Log.d(TAG, "suggestPhoneTimeZone called: " + timeZoneSuggestion);
+ Log.d(TAG, "suggestTelephonyTimeZone called: " + timeZoneSuggestion);
}
try {
- mITimeZoneDetectorService.suggestPhoneTimeZone(timeZoneSuggestion);
+ mITimeZoneDetectorService.suggestTelephonyTimeZone(timeZoneSuggestion);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index e24b0403cd6a..01ccb86fb129 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -1485,9 +1485,8 @@ public final class BluetoothAdapter {
* <p>The Bluetooth scan mode determines if the local adapter is
* connectable and/or discoverable from remote Bluetooth devices.
* <p>For privacy reasons, discoverable mode is automatically turned off
- * after <code>duration</code> seconds. For example, 120 seconds should be
- * enough for a remote device to initiate and complete its discovery
- * process.
+ * after <code>durationMillis</code> milliseconds. For example, 120000 milliseconds should be
+ * enough for a remote device to initiate and complete its discovery process.
* <p>Valid scan mode values are:
* {@link #SCAN_MODE_NONE},
* {@link #SCAN_MODE_CONNECTABLE},
@@ -1502,24 +1501,29 @@ public final class BluetoothAdapter {
* </code>instead.
*
* @param mode valid scan mode
- * @param duration time in seconds to apply scan mode, only used for {@link
+ * @param durationMillis time in milliseconds to apply scan mode, only used for {@link
* #SCAN_MODE_CONNECTABLE_DISCOVERABLE}
* @return true if the scan mode was set, false otherwise
* @hide
*/
@SystemApi
- @RequiresPermission(Manifest.permission.BLUETOOTH)
- public boolean setScanMode(@ScanMode int mode, int duration) {
+ @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+ public boolean setScanMode(@ScanMode int mode, long durationMillis) {
if (getState() != STATE_ON) {
return false;
}
try {
mServiceLock.readLock().lock();
if (mService != null) {
- return mService.setScanMode(mode, duration);
+ int durationSeconds = Math.toIntExact(durationMillis / 1000);
+ return mService.setScanMode(mode, durationSeconds);
}
} catch (RemoteException e) {
Log.e(TAG, "", e);
+ } catch (ArithmeticException ex) {
+ Log.e(TAG, "setScanMode: Duration in seconds outside of the bounds of an int");
+ throw new IllegalArgumentException("Duration not in bounds. In seconds, the "
+ + "durationMillis must be in the range of an int");
} finally {
mServiceLock.readLock().unlock();
}
@@ -1552,13 +1556,22 @@ public final class BluetoothAdapter {
* @hide
*/
@SystemApi
- @RequiresPermission(Manifest.permission.BLUETOOTH)
+ @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public boolean setScanMode(@ScanMode int mode) {
if (getState() != STATE_ON) {
return false;
}
- /* getDiscoverableTimeout() to use the latest from NV than use 0 */
- return setScanMode(mode, getDiscoverableTimeout());
+ try {
+ mServiceLock.readLock().lock();
+ if (mService != null) {
+ return mService.setScanMode(mode, getDiscoverableTimeout());
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, "", e);
+ } finally {
+ mServiceLock.readLock().unlock();
+ }
+ return false;
}
/** @hide */
@@ -1766,6 +1779,45 @@ public final class BluetoothAdapter {
}
/**
+ * Removes the active device for the grouping of @ActiveDeviceUse specified
+ *
+ * @param profiles represents the purpose for which we are setting this as the active device.
+ * Possible values are:
+ * {@link BluetoothAdapter#ACTIVE_DEVICE_AUDIO},
+ * {@link BluetoothAdapter#ACTIVE_DEVICE_PHONE_CALL},
+ * {@link BluetoothAdapter#ACTIVE_DEVICE_ALL}
+ * @return false on immediate error, true otherwise
+ * @throws IllegalArgumentException if device is null or profiles is not one of
+ * {@link ActiveDeviceUse}
+ * @hide
+ */
+ @SystemApi
+ @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+ public boolean removeActiveDevice(@ActiveDeviceUse int profiles) {
+ if (profiles != ACTIVE_DEVICE_AUDIO && profiles != ACTIVE_DEVICE_PHONE_CALL
+ && profiles != ACTIVE_DEVICE_ALL) {
+ Log.e(TAG, "Invalid profiles param value in removeActiveDevice");
+ throw new IllegalArgumentException("Profiles must be one of "
+ + "BluetoothAdapter.ACTIVE_DEVICE_AUDIO, "
+ + "BluetoothAdapter.ACTIVE_DEVICE_PHONE_CALL, or "
+ + "BluetoothAdapter.ACTIVE_DEVICE_ALL");
+ }
+ try {
+ mServiceLock.readLock().lock();
+ if (mService != null) {
+ return mService.removeActiveDevice(profiles);
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, "", e);
+ } finally {
+ mServiceLock.readLock().unlock();
+ }
+
+ return false;
+ }
+
+ /**
+ * Sets device as the active devices for the profiles passed into the function
*
* @param device is the remote bluetooth device
* @param profiles represents the purpose for which we are setting this as the active device.
@@ -1774,18 +1826,26 @@ public final class BluetoothAdapter {
* {@link BluetoothAdapter#ACTIVE_DEVICE_PHONE_CALL},
* {@link BluetoothAdapter#ACTIVE_DEVICE_ALL}
* @return false on immediate error, true otherwise
+ * @throws IllegalArgumentException if device is null or profiles is not one of
+ * {@link ActiveDeviceUse}
* @hide
*/
@SystemApi
- @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
- public boolean setActiveDevice(@Nullable BluetoothDevice device,
+ @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
+ public boolean setActiveDevice(@NonNull BluetoothDevice device,
@ActiveDeviceUse int profiles) {
+ if (device == null) {
+ Log.e(TAG, "setActiveDevice: Null device passed as parameter");
+ throw new IllegalArgumentException("device cannot be null");
+ }
if (profiles != ACTIVE_DEVICE_AUDIO && profiles != ACTIVE_DEVICE_PHONE_CALL
&& profiles != ACTIVE_DEVICE_ALL) {
Log.e(TAG, "Invalid profiles param value in setActiveDevice");
- return false;
+ throw new IllegalArgumentException("Profiles must be one of "
+ + "BluetoothAdapter.ACTIVE_DEVICE_AUDIO, "
+ + "BluetoothAdapter.ACTIVE_DEVICE_PHONE_CALL, or "
+ + "BluetoothAdapter.ACTIVE_DEVICE_ALL");
}
-
try {
mServiceLock.readLock().lock();
if (mService != null) {
@@ -1801,15 +1861,19 @@ public final class BluetoothAdapter {
}
/**
- * Connects all enabled and supported bluetooth profiles between the local and remote device
+ * Connects all enabled and supported bluetooth profiles between the local and remote device.
+ * Connection is asynchronous and you should listen to each profile's broadcast intent
+ * ACTION_CONNECTION_STATE_CHANGED to verify whether connection was successful. For example,
+ * to verify a2dp is connected, you would listen for
+ * {@link BluetoothA2dp#ACTION_CONNECTION_STATE_CHANGED}
*
* @param device is the remote device with which to connect these profiles
- * @return true if all profiles successfully connected, false if an error occurred
+ * @return true if message sent to try to connect all profiles, false if an error occurred
*
* @hide
*/
@SystemApi
- @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+ @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public boolean connectAllEnabledProfiles(@NonNull BluetoothDevice device) {
try {
mServiceLock.readLock().lock();
@@ -1826,15 +1890,19 @@ public final class BluetoothAdapter {
}
/**
- * Disconnects all enabled and supported bluetooth profiles between the local and remote device
+ * Disconnects all enabled and supported bluetooth profiles between the local and remote device.
+ * Disconnection is asynchronous and you should listen to each profile's broadcast intent
+ * ACTION_CONNECTION_STATE_CHANGED to verify whether disconnection was successful. For example,
+ * to verify a2dp is disconnected, you would listen for
+ * {@link BluetoothA2dp#ACTION_CONNECTION_STATE_CHANGED}
*
* @param device is the remote device with which to disconnect these profiles
- * @return true if all profiles successfully disconnected, false if an error occurred
+ * @return true if message sent to try to disconnect all profiles, false if an error occurred
*
* @hide
*/
@SystemApi
- @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+ @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public boolean disconnectAllEnabledProfiles(@NonNull BluetoothDevice device) {
try {
mServiceLock.readLock().lock();
@@ -2162,6 +2230,33 @@ public final class BluetoothAdapter {
}
/**
+ * Fetches a list of the most recently connected bluetooth devices ordered by how recently they
+ * were connected with most recently first and least recently last
+ *
+ * @return {@link List} of bonded {@link BluetoothDevice} ordered by how recently they were
+ * connected
+ *
+ * @hide
+ */
+ @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+ public @NonNull List<BluetoothDevice> getMostRecentlyConnectedDevices() {
+ if (getState() != STATE_ON) {
+ return new ArrayList<>();
+ }
+ try {
+ mServiceLock.readLock().lock();
+ if (mService != null) {
+ return mService.getMostRecentlyConnectedDevices();
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, "", e);
+ } finally {
+ mServiceLock.readLock().unlock();
+ }
+ return new ArrayList<>();
+ }
+
+ /**
* Return the set of {@link BluetoothDevice} objects that are bonded
* (paired) to the local adapter.
* <p>If Bluetooth state is not {@link #STATE_ON}, this API
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java
index 12dc814c3416..5b60b85f4721 100644
--- a/core/java/android/bluetooth/BluetoothDevice.java
+++ b/core/java/android/bluetooth/BluetoothDevice.java
@@ -23,6 +23,7 @@ import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
+import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
@@ -179,9 +180,10 @@ public final class BluetoothDevice implements Parcelable {
* <p>Always contains the extra field {@link #EXTRA_DEVICE}.
* <p>Requires {@link android.Manifest.permission#BLUETOOTH} to receive.
*/
+ @SuppressLint("ActionValue")
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_ALIAS_CHANGED =
- "android.bluetooth.action.ALIAS_CHANGED";
+ "android.bluetooth.device.action.ALIAS_CHANGED";
/**
* Broadcast Action: Indicates a change in the bond state of a remote
@@ -1091,7 +1093,7 @@ public final class BluetoothDevice implements Parcelable {
* @hide
*/
@SystemApi
- @RequiresPermission(Manifest.permission.BLUETOOTH)
+ @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public boolean setAlias(@NonNull String alias) {
final IBluetooth service = sService;
if (service == null) {
diff --git a/core/java/android/bluetooth/BluetoothHidDevice.java b/core/java/android/bluetooth/BluetoothHidDevice.java
index a923be62fbce..b5959c06cc1a 100644
--- a/core/java/android/bluetooth/BluetoothHidDevice.java
+++ b/core/java/android/bluetooth/BluetoothHidDevice.java
@@ -706,7 +706,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
* @hide
*/
@SystemApi
- @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+ @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
public boolean setConnectionPolicy(@NonNull BluetoothDevice device,
@ConnectionPolicy int connectionPolicy) {
log("setConnectionPolicy(" + device + ", " + connectionPolicy + ")");
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index dfa4fb79ef2d..249e58244870 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -5099,6 +5099,7 @@ public abstract class Context {
* @hide
*/
@SystemApi
+ @TestApi
public static final String APP_INTEGRITY_SERVICE = "app_integrity";
/**
@@ -5728,14 +5729,13 @@ public abstract class Context {
* shared, however common state (ClassLoader, other Resources for the
* same configuration) may be so the Context itself can be fairly lightweight.
*
- * The returned display Context provides a {@link WindowManager}
- * (see {@link #getSystemService(String)}) that is configured to show windows
- * on the given display. The WindowManager's {@link WindowManager#getDefaultDisplay}
- * method can be used to retrieve the Display from the returned Context.
+ * To obtain an instance of a {@link WindowManager} (see {@link #getSystemService(String)}) that
+ * is configured to show windows on the given display call
+ * {@link #createWindowContext(int, Bundle)} on the returned display Context or use an
+ * {@link android.app.Activity}.
*
- * @param display A {@link Display} object specifying the display
- * for whose metrics the Context's resources should be tailored and upon which
- * new windows should be shown.
+ * @param display A {@link Display} object specifying the display for whose metrics the
+ * Context's resources should be tailored.
*
* @return A {@link Context} for the display.
*/
@@ -5763,7 +5763,7 @@ public abstract class Context {
* final DisplayManager dm = anyContext.getSystemService(DisplayManager.class);
* final Display primaryDisplay = dm.getDisplay(DEFAULT_DISPLAY);
* final Context windowContext = anyContext.createDisplayContext(primaryDisplay)
- * .createWindowContext(TYPE_APPLICATION_OVERLAY);
+ * .createWindowContext(TYPE_APPLICATION_OVERLAY, null);
* final View overlayView = Inflater.from(windowContext).inflate(someLayoutXml, null);
*
* // WindowManager.LayoutParams initialization
@@ -5783,6 +5783,7 @@ public abstract class Context {
* </p>
*
* @param type Window type in {@link WindowManager.LayoutParams}
+ * @param options Bundle used to pass window-related options.
* @return A {@link Context} that can be used to create windows.
* @throws UnsupportedOperationException if this is called on a non-UI context, such as
* {@link android.app.Application Application} or {@link android.app.Service Service}.
@@ -5794,7 +5795,7 @@ public abstract class Context {
* @see #WALLPAPER_SERVICE
* @throws IllegalArgumentException if token is invalid
*/
- public @NonNull Context createWindowContext(int type) {
+ public @NonNull Context createWindowContext(int type, @Nullable Bundle options) {
throw new RuntimeException("Not implemented. Must override in a subclass.");
}
diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java
index b2b7988de896..f6515e806caa 100644
--- a/core/java/android/content/ContextWrapper.java
+++ b/core/java/android/content/ContextWrapper.java
@@ -978,8 +978,8 @@ public class ContextWrapper extends Context {
@Override
@NonNull
- public Context createWindowContext(int type) {
- return mBase.createWindowContext(type);
+ public Context createWindowContext(int type, @Nullable Bundle options) {
+ return mBase.createWindowContext(type, options);
}
@Override
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index acffec98b2fc..6f8a99fce897 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -4284,7 +4284,15 @@ public class Intent implements Parcelable, Cloneable {
public static final String ACTION_SERVICE_STATE = "android.intent.action.SERVICE_STATE";
/**
- * Used for looking up a Data Loader Service provider.
+ * Used by {@link services.core.java.com.android.server.pm.DataLoaderManagerService}
+ * for querying Data Loader Service providers. Data loader service providers register this
+ * intent filter in their manifests, so that they can be looked up and bound to by
+ * {@code DataLoaderManagerService}.
+ *
+ * Data loader service providers must be privileged apps.
+ * See {@link com.android.server.pm.PackageManagerShellCommandDataLoader} as an example of such
+ * data loader service provider.
+ *
* @hide
*/
@SystemApi
diff --git a/core/java/android/content/integrity/AppIntegrityManager.java b/core/java/android/content/integrity/AppIntegrityManager.java
index e53ef66020f1..9f95d4d75f6f 100644
--- a/core/java/android/content/integrity/AppIntegrityManager.java
+++ b/core/java/android/content/integrity/AppIntegrityManager.java
@@ -19,6 +19,7 @@ package android.content.integrity;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.annotation.SystemService;
+import android.annotation.TestApi;
import android.content.Context;
import android.content.IntentSender;
import android.content.pm.ParceledListSlice;
@@ -33,6 +34,7 @@ import android.os.RemoteException;
*
* @hide
*/
+@TestApi
@SystemApi
@SystemService(Context.APP_INTEGRITY_SERVICE)
public class AppIntegrityManager {
@@ -100,4 +102,23 @@ public class AppIntegrityManager {
throw e.rethrowAsRuntimeException();
}
}
+
+ /**
+ * Get current RuleSet on device.
+ *
+ * <p>Warning: this method is only used for tests.
+ *
+ * @hide
+ */
+ @TestApi
+ @NonNull
+ public RuleSet getCurrentRuleSet() {
+ try {
+ ParceledListSlice<Rule> rules = mManager.getCurrentRules();
+ String version = mManager.getCurrentRuleSetVersion();
+ return new RuleSet.Builder().setVersion(version).addRules(rules.getList()).build();
+ } catch (RemoteException e) {
+ throw e.rethrowAsRuntimeException();
+ }
+ }
}
diff --git a/core/java/android/content/integrity/AtomicFormula.java b/core/java/android/content/integrity/AtomicFormula.java
index 76007e67798d..d25f413bb65f 100644
--- a/core/java/android/content/integrity/AtomicFormula.java
+++ b/core/java/android/content/integrity/AtomicFormula.java
@@ -332,9 +332,12 @@ public abstract class AtomicFormula extends IntegrityFormula {
* Constructs a new {@link StringAtomicFormula} together with handling the necessary
* hashing for the given key.
*
- * <p> The value will be hashed with SHA256 and the hex digest will be computed; for
- * all cases except when the key is PACKAGE_NAME or INSTALLER_NAME and the value
- * is less than 33 characters.
+ * <p> The value will be automatically hashed with SHA256 and the hex digest will be
+ * computed when the key is PACKAGE_NAME or INSTALLER_NAME and the value is more than 32
+ * characters.
+ *
+ * <p> The APP_CERTIFICATES and INSTALLER_CERTIFICATES are always delivered in hashed
+ * form. So the isHashedValue is set to true by default.
*
* @throws IllegalArgumentException if {@code key} cannot be used with string value.
*/
@@ -348,7 +351,10 @@ public abstract class AtomicFormula extends IntegrityFormula {
String.format(
"Key %s cannot be used with StringAtomicFormula", keyToString(key)));
mValue = hashValue(key, value);
- mIsHashedValue = !mValue.equals(value);
+ mIsHashedValue =
+ key == APP_CERTIFICATE || key == INSTALLER_CERTIFICATE
+ ? true
+ : !mValue.equals(value);
}
StringAtomicFormula(Parcel in) {
@@ -460,14 +466,14 @@ public abstract class AtomicFormula extends IntegrityFormula {
}
private static String hashValue(@Key int key, String value) {
- // Hash the string value unless it is a PACKAGE_NAME or INSTALLER_NAME and the value is
- // less than 33 characters.
- if (value.length() <= 32) {
+ // Hash the string value if it is a PACKAGE_NAME or INSTALLER_NAME and the value is
+ // greater than 32 characters.
+ if (value.length() > 32) {
if (key == PACKAGE_NAME || key == INSTALLER_NAME) {
- return value;
+ return hash(value);
}
}
- return hash(value);
+ return value;
}
private static String hash(String value) {
diff --git a/core/java/android/content/integrity/IAppIntegrityManager.aidl b/core/java/android/content/integrity/IAppIntegrityManager.aidl
index 6b73fd70bb99..4714ad7c7989 100644
--- a/core/java/android/content/integrity/IAppIntegrityManager.aidl
+++ b/core/java/android/content/integrity/IAppIntegrityManager.aidl
@@ -25,4 +25,5 @@ interface IAppIntegrityManager {
void updateRuleSet(String version, in ParceledListSlice<Rule> rules, in IntentSender statusReceiver);
String getCurrentRuleSetVersion();
String getCurrentRuleSetProvider();
+ ParceledListSlice<Rule> getCurrentRules();
}
diff --git a/core/java/android/content/integrity/IntegrityFormula.java b/core/java/android/content/integrity/IntegrityFormula.java
index 8505d32e3f02..a2d937e4df31 100644
--- a/core/java/android/content/integrity/IntegrityFormula.java
+++ b/core/java/android/content/integrity/IntegrityFormula.java
@@ -19,6 +19,7 @@ package android.content.integrity;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.SystemApi;
+import android.annotation.TestApi;
import android.content.integrity.AtomicFormula.BooleanAtomicFormula;
import android.content.integrity.AtomicFormula.LongAtomicFormula;
import android.content.integrity.AtomicFormula.StringAtomicFormula;
@@ -37,6 +38,7 @@ import java.util.Arrays;
* @hide
*/
@SystemApi
+@TestApi
@VisibleForTesting
public abstract class IntegrityFormula {
diff --git a/core/java/android/content/integrity/Rule.java b/core/java/android/content/integrity/Rule.java
index c421c4076d16..d29e6df5ec39 100644
--- a/core/java/android/content/integrity/Rule.java
+++ b/core/java/android/content/integrity/Rule.java
@@ -21,6 +21,7 @@ import static com.android.internal.util.Preconditions.checkArgument;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.SystemApi;
+import android.annotation.TestApi;
import android.os.Parcel;
import android.os.Parcelable;
@@ -37,6 +38,7 @@ import java.util.Objects;
*
* @hide
*/
+@TestApi
@SystemApi
@VisibleForTesting
public final class Rule implements Parcelable {
diff --git a/core/java/android/content/integrity/RuleSet.java b/core/java/android/content/integrity/RuleSet.java
index b423b54a7d92..e121ff8bbcaa 100644
--- a/core/java/android/content/integrity/RuleSet.java
+++ b/core/java/android/content/integrity/RuleSet.java
@@ -18,6 +18,7 @@ package android.content.integrity;
import android.annotation.NonNull;
import android.annotation.SystemApi;
+import android.annotation.TestApi;
import java.util.ArrayList;
import java.util.Collections;
@@ -29,6 +30,7 @@ import java.util.Objects;
*
* @hide
*/
+@TestApi
@SystemApi
public class RuleSet {
private final String mVersion;
diff --git a/core/java/android/content/om/OverlayManager.java b/core/java/android/content/om/OverlayManager.java
index 33d17763fb24..dbe39547b0ca 100644
--- a/core/java/android/content/om/OverlayManager.java
+++ b/core/java/android/content/om/OverlayManager.java
@@ -44,6 +44,16 @@ public class OverlayManager {
private final IOverlayManager mService;
private final Context mContext;
+ /**
+ * Pre R a {@link java.lang.SecurityException} would only be thrown by setEnabled APIs (e
+ * .g. {@link #setEnabled(String, boolean, UserHandle)}) for a permission error.
+ * Since R this no longer holds true, and {@link java.lang.SecurityException} can be
+ * thrown for any number of reasons, none of which are exposed to the caller.
+ *
+ * <p>To maintain existing API behavior, if a legacy permission failure or actor enforcement
+ * failure occurs for an app not yet targeting R, coerce it into an {@link
+ * java.lang.IllegalStateException}, which existed in the source prior to R.
+ */
@ChangeId
@EnabledAfter(targetSdkVersion = Build.VERSION_CODES.Q)
private static final long THROW_SECURITY_EXCEPTIONS = 147340954;
diff --git a/core/java/android/content/pm/CrossProfileApps.java b/core/java/android/content/pm/CrossProfileApps.java
index de153d00b48b..edc20d9f65ad 100644
--- a/core/java/android/content/pm/CrossProfileApps.java
+++ b/core/java/android/content/pm/CrossProfileApps.java
@@ -323,6 +323,7 @@ public class CrossProfileApps {
*/
@RequiresPermission(
allOf={android.Manifest.permission.MANAGE_APP_OPS_MODES,
+ android.Manifest.permission.UPDATE_APP_OPS_STATS,
android.Manifest.permission.INTERACT_ACROSS_USERS})
public void setInteractAcrossProfilesAppOp(@NonNull String packageName, @Mode int newMode) {
try {
@@ -363,6 +364,7 @@ public class CrossProfileApps {
*/
@RequiresPermission(
allOf={android.Manifest.permission.MANAGE_APP_OPS_MODES,
+ android.Manifest.permission.UPDATE_APP_OPS_STATS,
android.Manifest.permission.INTERACT_ACROSS_USERS})
public void resetInteractAcrossProfilesAppOps(
@NonNull Collection<String> previousCrossProfilePackages,
diff --git a/core/java/android/content/pm/ILauncherApps.aidl b/core/java/android/content/pm/ILauncherApps.aidl
index 50bb3c721763..04923590b413 100644
--- a/core/java/android/content/pm/ILauncherApps.aidl
+++ b/core/java/android/content/pm/ILauncherApps.aidl
@@ -20,11 +20,13 @@ import android.app.IApplicationThread;
import android.content.ComponentName;
import android.content.Intent;
import android.content.IntentSender;
+import android.content.LocusId;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.IOnAppsChangedListener;
import android.content.pm.LauncherApps;
import android.content.pm.IPackageInstallerCallback;
+import android.content.pm.IShortcutChangeCallback;
import android.content.pm.PackageInstaller;
import android.content.pm.ParceledListSlice;
import android.content.pm.ResolveInfo;
@@ -66,7 +68,8 @@ interface ILauncherApps {
in UserHandle user);
ParceledListSlice getShortcuts(String callingPackage, long changedSince, String packageName,
- in List shortcutIds, in ComponentName componentName, int flags, in UserHandle user);
+ in List shortcutIds, in List<LocusId> locusIds, in ComponentName componentName,
+ int flags, in UserHandle user);
void pinShortcuts(String callingPackage, String packageName, in List<String> shortcutIds,
in UserHandle user);
boolean startShortcut(String callingPackage, String packageName, String id,
@@ -89,4 +92,10 @@ interface ILauncherApps {
void registerPackageInstallerCallback(String callingPackage,
in IPackageInstallerCallback callback);
ParceledListSlice getAllSessions(String callingPackage);
+
+ void registerShortcutChangeCallback(String callingPackage, long changedSince,
+ String packageName, in List shortcutIds, in List<LocusId> locusIds,
+ in ComponentName componentName, int flags, in IShortcutChangeCallback callback,
+ int callbackId);
+ void unregisterShortcutChangeCallback(String callingPackage, int callbackId);
}
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index 93126b8002ad..6552d1b5a824 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -679,9 +679,9 @@ interface IPackageManager {
boolean hasUidSigningCertificate(int uid, in byte[] signingCertificate, int flags);
- String getSystemTextClassifierPackageName();
+ String getDefaultTextClassifierPackageName();
- String[] getSystemTextClassifierPackages();
+ String getSystemTextClassifierPackageName();
String getAttentionServicePackageName();
diff --git a/core/java/android/content/pm/IShortcutChangeCallback.aidl b/core/java/android/content/pm/IShortcutChangeCallback.aidl
new file mode 100644
index 000000000000..fed4e4a796f9
--- /dev/null
+++ b/core/java/android/content/pm/IShortcutChangeCallback.aidl
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) 2020, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.content.pm;
+
+import android.content.pm.ParceledListSlice;
+import android.content.pm.ShortcutInfo;
+import android.os.UserHandle;
+
+import java.util.List;
+
+/**
+ * Interface for LauncherApps#ShortcutChangeCallbackProxy.
+ *
+ * @hide
+ */
+oneway interface IShortcutChangeCallback
+{
+ void onShortcutsAddedOrUpdated(String packageName, in List<ShortcutInfo> shortcuts,
+ in UserHandle user);
+
+ void onShortcutsRemoved(String packageName, in List<ShortcutInfo> shortcuts,
+ in UserHandle user);
+} \ No newline at end of file
diff --git a/core/java/android/content/pm/IShortcutService.aidl b/core/java/android/content/pm/IShortcutService.aidl
index 747e929eda98..9e85fc301a0c 100644
--- a/core/java/android/content/pm/IShortcutService.aidl
+++ b/core/java/android/content/pm/IShortcutService.aidl
@@ -29,10 +29,6 @@ interface IShortcutService {
boolean setDynamicShortcuts(String packageName, in ParceledListSlice shortcutInfoList,
int userId);
- ParceledListSlice getDynamicShortcuts(String packageName, int userId);
-
- ParceledListSlice getManifestShortcuts(String packageName, int userId);
-
boolean addDynamicShortcuts(String packageName, in ParceledListSlice shortcutInfoList,
int userId);
@@ -40,8 +36,6 @@ interface IShortcutService {
void removeAllDynamicShortcuts(String packageName, int userId);
- ParceledListSlice getPinnedShortcuts(String packageName, int userId);
-
boolean updateShortcuts(String packageName, in ParceledListSlice shortcuts, int userId);
boolean requestPinShortcut(String packageName, in ShortcutInfo shortcut,
diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java
index cea0b6b5f3ad..73c9e4d843b7 100644
--- a/core/java/android/content/pm/LauncherApps.java
+++ b/core/java/android/content/pm/LauncherApps.java
@@ -34,6 +34,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentSender;
+import android.content.LocusId;
import android.content.pm.PackageInstaller.SessionCallback;
import android.content.pm.PackageInstaller.SessionCallbackDelegate;
import android.content.pm.PackageInstaller.SessionInfo;
@@ -61,15 +62,21 @@ import android.os.UserHandle;
import android.os.UserManager;
import android.util.DisplayMetrics;
import android.util.Log;
+import android.util.Pair;
+
+import com.android.internal.util.function.pooled.PooledLambda;
import java.io.IOException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.Objects;
import java.util.concurrent.Executor;
@@ -152,6 +159,9 @@ public class LauncherApps {
private final List<CallbackMessageHandler> mCallbacks = new ArrayList<>();
private final List<SessionCallbackDelegate> mDelegates = new ArrayList<>();
+ private final Map<Integer, Pair<Executor, ShortcutChangeCallback>>
+ mShortcutChangeCallbacks = new HashMap<>();
+
/**
* Callbacks for package changes to this and related managed profiles.
*/
@@ -406,6 +416,9 @@ public class LauncherApps {
List<String> mShortcutIds;
@Nullable
+ List<LocusId> mLocusIds;
+
+ @Nullable
ComponentName mActivity;
@QueryFlags
@@ -442,6 +455,19 @@ public class LauncherApps {
}
/**
+ * If non-null, return only the specified shortcuts by locus ID. When setting this field,
+ * a package name must also be set with {@link #setPackage}.
+ *
+ * @hide
+ */
+ @SystemApi
+ @NonNull
+ public ShortcutQuery setLocusIds(@Nullable List<LocusId> locusIds) {
+ mLocusIds = locusIds;
+ return this;
+ }
+
+ /**
* If non-null, returns only shortcuts associated with the activity; i.e.
* {@link ShortcutInfo}s whose {@link ShortcutInfo#getActivity()} are equal
* to {@code activity}.
@@ -469,6 +495,95 @@ public class LauncherApps {
}
}
+ /**
+ * Callbacks for shortcut changes to this and related managed profiles.
+ *
+ * @hide
+ */
+ public interface ShortcutChangeCallback {
+ /**
+ * Indicates that one or more shortcuts, that match the {@link ShortcutQuery} used to
+ * register this callback, have been added or updated.
+ * @see LauncherApps#registerShortcutChangeCallback(ShortcutChangeCallback, ShortcutQuery)
+ *
+ * <p>Only the applications that are allowed to access the shortcut information,
+ * as defined in {@link #hasShortcutHostPermission()}, will receive it.
+ *
+ * @param packageName The name of the package that has the shortcuts.
+ * @param shortcuts Shortcuts from the package that have updated or added. Only "key"
+ * information will be provided, as defined in {@link ShortcutInfo#hasKeyFieldsOnly()}.
+ * @param user The UserHandle of the profile that generated the change.
+ *
+ * @see ShortcutManager
+ */
+ default void onShortcutsAddedOrUpdated(@NonNull String packageName,
+ @NonNull List<ShortcutInfo> shortcuts, @NonNull UserHandle user) {}
+
+ /**
+ * Indicates that one or more shortcuts, that match the {@link ShortcutQuery} used to
+ * register this callback, have been removed.
+ * @see LauncherApps#registerShortcutChangeCallback(ShortcutChangeCallback, ShortcutQuery)
+ *
+ * <p>Only the applications that are allowed to access the shortcut information,
+ * as defined in {@link #hasShortcutHostPermission()}, will receive it.
+ *
+ * @param packageName The name of the package that has the shortcuts.
+ * @param shortcuts Shortcuts from the package that have been removed. Only "key"
+ * information will be provided, as defined in {@link ShortcutInfo#hasKeyFieldsOnly()}.
+ * @param user The UserHandle of the profile that generated the change.
+ *
+ * @see ShortcutManager
+ */
+ default void onShortcutsRemoved(@NonNull String packageName,
+ @NonNull List<ShortcutInfo> shortcuts, @NonNull UserHandle user) {}
+ }
+
+ /**
+ * Callback proxy class for {@link ShortcutChangeCallback}
+ *
+ * @hide
+ */
+ private static class ShortcutChangeCallbackProxy extends
+ android.content.pm.IShortcutChangeCallback.Stub {
+ private final WeakReference<Pair<Executor, ShortcutChangeCallback>> mRemoteReferences;
+
+ ShortcutChangeCallbackProxy(Pair<Executor, ShortcutChangeCallback> remoteReferences) {
+ mRemoteReferences = new WeakReference<>(remoteReferences);
+ }
+
+ @Override
+ public void onShortcutsAddedOrUpdated(@NonNull String packageName,
+ @NonNull List<ShortcutInfo> shortcuts, @NonNull UserHandle user) {
+ Pair<Executor, ShortcutChangeCallback> remoteReferences = mRemoteReferences.get();
+ if (remoteReferences == null) {
+ // Binder is dead.
+ return;
+ }
+
+ final Executor executor = remoteReferences.first;
+ final ShortcutChangeCallback callback = remoteReferences.second;
+ executor.execute(
+ PooledLambda.obtainRunnable(ShortcutChangeCallback::onShortcutsAddedOrUpdated,
+ callback, packageName, shortcuts, user).recycleOnUse());
+ }
+
+ @Override
+ public void onShortcutsRemoved(@NonNull String packageName,
+ @NonNull List<ShortcutInfo> shortcuts, @NonNull UserHandle user) {
+ Pair<Executor, ShortcutChangeCallback> remoteReferences = mRemoteReferences.get();
+ if (remoteReferences == null) {
+ // Binder is dead.
+ return;
+ }
+
+ final Executor executor = remoteReferences.first;
+ final ShortcutChangeCallback callback = remoteReferences.second;
+ executor.execute(
+ PooledLambda.obtainRunnable(ShortcutChangeCallback::onShortcutsRemoved,
+ callback, packageName, shortcuts, user).recycleOnUse());
+ }
+ }
+
/** @hide */
public LauncherApps(Context context, ILauncherApps service) {
mContext = context;
@@ -924,8 +1039,8 @@ public class LauncherApps {
// changed callback, but that only returns shortcuts with the "key" information, so
// that won't return disabled message.
return maybeUpdateDisabledMessage(mService.getShortcuts(mContext.getPackageName(),
- query.mChangedSince, query.mPackage, query.mShortcutIds, query.mActivity,
- query.mQueryFlags, user)
+ query.mChangedSince, query.mPackage, query.mShortcutIds, query.mLocusIds,
+ query.mActivity, query.mQueryFlags, user)
.getList());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
@@ -1560,6 +1675,63 @@ public class LauncherApps {
}
/**
+ * Register a callback to watch for shortcut change events in this user and managed profiles.
+ *
+ * @param callback The callback to register.
+ * @param query {@link ShortcutQuery} to match and filter the shortcut events. Only matching
+ * shortcuts will be returned by the callback.
+ * @param executor {@link Executor} to handle the callbacks. To dispatch callbacks to the main
+ * thread of your application, you can use {@link android.content.Context#getMainExecutor()}.
+ *
+ * @hide
+ */
+ public void registerShortcutChangeCallback(@NonNull ShortcutChangeCallback callback,
+ @NonNull ShortcutQuery query, @NonNull @CallbackExecutor Executor executor) {
+ Objects.requireNonNull(callback, "Callback cannot be null");
+ Objects.requireNonNull(query, "Query cannot be null");
+ Objects.requireNonNull(executor, "Executor cannot be null");
+
+ synchronized (mShortcutChangeCallbacks) {
+ final int callbackId = callback.hashCode();
+ final Pair<Executor, ShortcutChangeCallback> state = new Pair<>(executor, callback);
+ mShortcutChangeCallbacks.put(callbackId, state);
+ try {
+ mService.registerShortcutChangeCallback(mContext.getPackageName(),
+ query.mChangedSince, query.mPackage, query.mShortcutIds, query.mLocusIds,
+ query.mActivity, query.mQueryFlags, new ShortcutChangeCallbackProxy(state),
+ callbackId);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+ }
+
+ /**
+ * Unregisters a callback that was previously registered.
+ * @see #registerShortcutChangeCallback(ShortcutChangeCallback, ShortcutQuery, Executor)
+ *
+ * @param callback Callback to be unregistered.
+ *
+ * @hide
+ */
+ public void unregisterShortcutChangeCallback(@NonNull ShortcutChangeCallback callback) {
+ Objects.requireNonNull(callback, "Callback cannot be null");
+
+ synchronized (mShortcutChangeCallbacks) {
+ final int callbackId = callback.hashCode();
+ if (mShortcutChangeCallbacks.containsKey(callbackId)) {
+ mShortcutChangeCallbacks.remove(callbackId);
+ try {
+ mService.unregisterShortcutChangeCallback(mContext.getPackageName(),
+ callbackId);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+ }
+ }
+
+ /**
* A helper method to extract a {@link PinItemRequest} set to
* the {@link #EXTRA_PIN_ITEM_REQUEST} extra.
*/
diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java
index b1b9454aeddd..2acbb97cb20a 100644
--- a/core/java/android/content/pm/PackageInstaller.java
+++ b/core/java/android/content/pm/PackageInstaller.java
@@ -1467,6 +1467,8 @@ public class PackageInstaller {
public DataLoaderParams dataLoaderParams;
/** {@hide} */
public int rollbackDataPolicy = PackageManager.RollbackDataPolicy.RESTORE;
+ /** {@hide} */
+ public boolean forceQueryableOverride;
/**
* Construct parameters for a new package install session.
@@ -1499,6 +1501,7 @@ public class PackageInstaller {
installerPackageName = source.readString();
isMultiPackage = source.readBoolean();
isStaged = source.readBoolean();
+ forceQueryableOverride = source.readBoolean();
requiredInstalledVersionCode = source.readLong();
DataLoaderParamsParcel dataLoaderParamsParcel = source.readParcelable(
DataLoaderParamsParcel.class.getClassLoader());
@@ -1528,6 +1531,7 @@ public class PackageInstaller {
ret.installerPackageName = installerPackageName;
ret.isMultiPackage = isMultiPackage;
ret.isStaged = isStaged;
+ ret.forceQueryableOverride = forceQueryableOverride;
ret.requiredInstalledVersionCode = requiredInstalledVersionCode;
ret.dataLoaderParams = dataLoaderParams;
ret.rollbackDataPolicy = rollbackDataPolicy;
@@ -1904,6 +1908,14 @@ public class PackageInstaller {
this.dataLoaderParams = dataLoaderParams;
}
+ /**
+ *
+ * {@hide}
+ */
+ public void setForceQueryable() {
+ this.forceQueryableOverride = true;
+ }
+
/** {@hide} */
public void dump(IndentingPrintWriter pw) {
pw.printPair("mode", mode);
@@ -1923,6 +1935,7 @@ public class PackageInstaller {
pw.printPair("installerPackageName", installerPackageName);
pw.printPair("isMultiPackage", isMultiPackage);
pw.printPair("isStaged", isStaged);
+ pw.printPair("forceQueryable", forceQueryableOverride);
pw.printPair("requiredInstalledVersionCode", requiredInstalledVersionCode);
pw.printPair("dataLoaderParams", dataLoaderParams);
pw.printPair("rollbackDataPolicy", rollbackDataPolicy);
@@ -1954,6 +1967,7 @@ public class PackageInstaller {
dest.writeString(installerPackageName);
dest.writeBoolean(isMultiPackage);
dest.writeBoolean(isStaged);
+ dest.writeBoolean(forceQueryableOverride);
dest.writeLong(requiredInstalledVersionCode);
if (dataLoaderParams != null) {
dest.writeParcelable(dataLoaderParams.getData(), flags);
@@ -2078,6 +2092,8 @@ public class PackageInstaller {
/** {@hide} */
public boolean isStaged;
/** {@hide} */
+ public boolean forceQueryable;
+ /** {@hide} */
public int parentSessionId = INVALID_ID;
/** {@hide} */
public int[] childSessionIds = NO_SESSIONS;
@@ -2135,6 +2151,7 @@ public class PackageInstaller {
installFlags = source.readInt();
isMultiPackage = source.readBoolean();
isStaged = source.readBoolean();
+ forceQueryable = source.readBoolean();
parentSessionId = source.readInt();
childSessionIds = source.createIntArray();
if (childSessionIds == null) {
@@ -2476,6 +2493,14 @@ public class PackageInstaller {
}
/**
+ * Returns true if this session is marked as forceQueryable
+ * {@hide}
+ */
+ public boolean isForceQueryable() {
+ return forceQueryable;
+ }
+
+ /**
* Returns {@code true} if this session is an active staged session.
*
* We consider a session active if it has been committed and it is either pending
@@ -2636,6 +2661,7 @@ public class PackageInstaller {
dest.writeInt(installFlags);
dest.writeBoolean(isMultiPackage);
dest.writeBoolean(isStaged);
+ dest.writeBoolean(forceQueryable);
dest.writeInt(parentSessionId);
dest.writeIntArray(childSessionIds);
dest.writeBoolean(isStagedSessionApplied);
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index b64c001ea6e2..5a0bcf04c87f 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -1506,6 +1506,15 @@ public abstract class PackageManager {
*/
public static final int INSTALL_FAILED_WRONG_INSTALLED_VERSION = -121;
+ /**
+ * Installation return code: this is passed in the {@link PackageInstaller#EXTRA_LEGACY_STATUS}
+ * if the new package failed because it contains a request to use a process that was not
+ * explicitly defined as part of its &lt;processes&gt; tag.
+ *
+ * @hide
+ */
+ public static final int INSTALL_FAILED_PROCESS_NOT_DEFINED = -122;
+
/** @hide */
@IntDef(flag = true, prefix = { "DELETE_" }, value = {
DELETE_KEEP_DATA,
@@ -3345,6 +3354,22 @@ public abstract class PackageManager {
public static final int FLAG_PERMISSION_ONE_TIME = 1 << 16;
/**
+ * Permission flag: The permission is whitelisted to not be auto-revoked when app goes unused.
+ *
+ * @hide
+ */
+ @SystemApi
+ public static final int FLAG_PERMISSION_DONT_AUTO_REVOKE = 1 << 17;
+
+ /**
+ * Permission flag: Whether {@link #FLAG_PERMISSION_DONT_AUTO_REVOKE} state was set by user.
+ *
+ * @hide
+ */
+ @SystemApi
+ public static final int FLAG_PERMISSION_DONT_AUTO_REVOKE_USER_SET = 1 << 18;
+
+ /**
* Permission flags: Reserved for use by the permission controller.
*
* @hide
@@ -3395,7 +3420,9 @@ public abstract class PackageManager {
| FLAG_PERMISSION_APPLY_RESTRICTION
| FLAG_PERMISSION_GRANTED_BY_ROLE
| FLAG_PERMISSION_REVOKED_COMPAT
- | FLAG_PERMISSION_ONE_TIME;
+ | FLAG_PERMISSION_ONE_TIME
+ | FLAG_PERMISSION_DONT_AUTO_REVOKE
+ | FLAG_PERMISSION_DONT_AUTO_REVOKE_USER_SET;
/**
* Injected activity in app that forwards user to setting activity of that app.
@@ -4218,7 +4245,8 @@ public abstract class PackageManager {
FLAG_PERMISSION_APPLY_RESTRICTION,
FLAG_PERMISSION_GRANTED_BY_ROLE,
FLAG_PERMISSION_REVOKED_COMPAT,
- FLAG_PERMISSION_ONE_TIME
+ FLAG_PERMISSION_ONE_TIME,
+ FLAG_PERMISSION_DONT_AUTO_REVOKE
})
@Retention(RetentionPolicy.SOURCE)
public @interface PermissionFlags {}
@@ -7237,6 +7265,7 @@ public abstract class PackageManager {
case INSTALL_FAILED_MISSING_SPLIT: return "INSTALL_FAILED_MISSING_SPLIT";
case INSTALL_FAILED_BAD_SIGNATURE: return "INSTALL_FAILED_BAD_SIGNATURE";
case INSTALL_FAILED_WRONG_INSTALLED_VERSION: return "INSTALL_FAILED_WRONG_INSTALLED_VERSION";
+ case INSTALL_FAILED_PROCESS_NOT_DEFINED: return "INSTALL_FAILED_PROCESS_NOT_DEFINED";
default: return Integer.toString(status);
}
}
@@ -7354,6 +7383,8 @@ public abstract class PackageManager {
case FLAG_PERMISSION_GRANTED_BY_ROLE: return "GRANTED_BY_ROLE";
case FLAG_PERMISSION_REVOKED_COMPAT: return "REVOKED_COMPAT";
case FLAG_PERMISSION_ONE_TIME: return "ONE_TIME";
+ case FLAG_PERMISSION_DONT_AUTO_REVOKE: return "DONT_AUTO_REVOKE";
+ case FLAG_PERMISSION_DONT_AUTO_REVOKE_USER_SET: return "DONT_AUTO_REVOKE_USER_SET";
default: return Integer.toString(flag);
}
}
@@ -7592,14 +7623,15 @@ public abstract class PackageManager {
}
/**
- * @return the system defined text classifier package name, or null if there's none.
+ * @return the default text classifier package name, or null if there's none.
*
* @hide
*/
@Nullable
- public String getSystemTextClassifierPackageName() {
+ @TestApi
+ public String getDefaultTextClassifierPackageName() {
throw new UnsupportedOperationException(
- "getSystemTextClassifierPackageName not implemented in subclass");
+ "getDefaultTextClassifierPackageName not implemented in subclass");
}
/**
@@ -7607,10 +7639,11 @@ public abstract class PackageManager {
*
* @hide
*/
- @NonNull
- public String[] getSystemTextClassifierPackages() {
+ @Nullable
+ @TestApi
+ public String getSystemTextClassifierPackageName() {
throw new UnsupportedOperationException(
- "getSystemTextClassifierPackages not implemented in subclass");
+ "getSystemTextClassifierPackageName not implemented in subclass");
}
/**
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index dfe9fe64657d..b6b27b6e514a 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -954,6 +954,10 @@ public class PackageParser {
throw new PackageParserException(INSTALL_PARSE_FAILED_NOT_APK,
"No packages found in split");
}
+ // Apk directory is directly nested under the current directory
+ if (files.length == 1 && files[0].isDirectory()) {
+ return parseClusterPackageLite(files[0], flags);
+ }
String packageName = null;
int versionCode = 0;
@@ -1327,12 +1331,9 @@ public class PackageParser {
}
}
- pkg.setCodePath(packageDir.getCanonicalPath());
+ pkg.setCodePath(lite.codePath);
pkg.setUse32bitAbi(lite.use32bitAbi);
return pkg;
- } catch (IOException e) {
- throw new PackageParserException(INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION,
- "Failed to get path: " + lite.baseCodePath, e);
} finally {
IoUtils.closeQuietly(assetLoader);
}
diff --git a/core/java/android/content/pm/PermissionInfo.java b/core/java/android/content/pm/PermissionInfo.java
index a0f089b2df41..3aa1a6d3f8ff 100644
--- a/core/java/android/content/pm/PermissionInfo.java
+++ b/core/java/android/content/pm/PermissionInfo.java
@@ -259,6 +259,17 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable {
@TestApi
public static final int PROTECTION_FLAG_COMPANION = 0x800000;
+ /**
+ * Additional flag for {@link #protectionLevel}, corresponding
+ * to the <code>retailDemo</code> value of
+ * {@link android.R.attr#protectionLevel}.
+ *
+ * @hide
+ */
+ @SystemApi
+ @TestApi
+ public static final int PROTECTION_FLAG_RETAIL_DEMO = 0x1000000;
+
/** @hide */
@IntDef(flag = true, prefix = { "PROTECTION_FLAG_" }, value = {
PROTECTION_FLAG_PRIVILEGED,
@@ -282,6 +293,7 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable {
PROTECTION_FLAG_APP_PREDICTOR,
PROTECTION_FLAG_TELEPHONY,
PROTECTION_FLAG_COMPANION,
+ PROTECTION_FLAG_RETAIL_DEMO,
})
@Retention(RetentionPolicy.SOURCE)
public @interface ProtectionFlags {}
@@ -528,6 +540,9 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable {
if ((level & PermissionInfo.PROTECTION_FLAG_TELEPHONY) != 0) {
protLevel += "|telephony";
}
+ if ((level & PermissionInfo.PROTECTION_FLAG_RETAIL_DEMO) != 0) {
+ protLevel += "|retailDemo";
+ }
return protLevel;
}
diff --git a/core/java/android/content/pm/ShortcutServiceInternal.java b/core/java/android/content/pm/ShortcutServiceInternal.java
index e6f682d22b14..a11a1dd5a68b 100644
--- a/core/java/android/content/pm/ShortcutServiceInternal.java
+++ b/core/java/android/content/pm/ShortcutServiceInternal.java
@@ -23,6 +23,7 @@ import android.appwidget.AppWidgetProviderInfo;
import android.content.ComponentName;
import android.content.Intent;
import android.content.IntentSender;
+import android.content.LocusId;
import android.content.pm.LauncherApps.ShortcutQuery;
import android.os.Bundle;
import android.os.ParcelFileDescriptor;
@@ -45,8 +46,8 @@ public abstract class ShortcutServiceInternal {
getShortcuts(int launcherUserId,
@NonNull String callingPackage, long changedSince,
@Nullable String packageName, @Nullable List<String> shortcutIds,
- @Nullable ComponentName componentName, @ShortcutQuery.QueryFlags int flags,
- int userId, int callingPid, int callingUid);
+ @Nullable List<LocusId> locusIds, @Nullable ComponentName componentName,
+ @ShortcutQuery.QueryFlags int flags, int userId, int callingPid, int callingUid);
public abstract boolean
isPinnedByCaller(int launcherUserId, @NonNull String callingPackage,
diff --git a/core/java/android/content/pm/TEST_MAPPING b/core/java/android/content/pm/TEST_MAPPING
index 0549c34cc034..6f30ecd9b281 100644
--- a/core/java/android/content/pm/TEST_MAPPING
+++ b/core/java/android/content/pm/TEST_MAPPING
@@ -15,5 +15,15 @@
"name": "FrameworksInstantAppResolverTests",
"file_patterns": ["(/|^)InstantApp[^/]*"]
}
+ ],
+ "postsubmit": [
+ {
+ "name": "CtsAppSecurityHostTestCases",
+ "options": [
+ {
+ "include-filter": "android.appsecurity.cts.AppSecurityTests#testPermissionDiffCert"
+ }
+ ]
+ }
]
}
diff --git a/core/java/android/content/pm/parsing/ApkLiteParseUtils.java b/core/java/android/content/pm/parsing/ApkLiteParseUtils.java
index 90a332ccb430..5be9c910744d 100644
--- a/core/java/android/content/pm/parsing/ApkLiteParseUtils.java
+++ b/core/java/android/content/pm/parsing/ApkLiteParseUtils.java
@@ -97,6 +97,10 @@ public class ApkLiteParseUtils {
throw new PackageParser.PackageParserException(
PackageManager.INSTALL_PARSE_FAILED_NOT_APK, "No packages found in split");
}
+ // Apk directory is directly nested under the current directory
+ if (files.length == 1 && files[0].isDirectory()) {
+ return parseClusterPackageLite(files[0], flags);
+ }
String packageName = null;
int versionCode = 0;
diff --git a/core/java/android/content/pm/parsing/ApkParseUtils.java b/core/java/android/content/pm/parsing/ApkParseUtils.java
index 7506412f72cc..5c8c9a41a520 100644
--- a/core/java/android/content/pm/parsing/ApkParseUtils.java
+++ b/core/java/android/content/pm/parsing/ApkParseUtils.java
@@ -205,11 +205,8 @@ public class ApkParseUtils {
}
}
- return parsingPackage.setCodePath(packageDir.getCanonicalPath())
+ return parsingPackage.setCodePath(lite.codePath)
.setUse32BitAbi(lite.use32bitAbi);
- } catch (IOException e) {
- throw new PackageParserException(INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION,
- "Failed to get path: " + lite.baseCodePath, e);
} finally {
IoUtils.closeQuietly(assetLoader);
}
diff --git a/core/java/android/content/pm/parsing/ComponentParseUtils.java b/core/java/android/content/pm/parsing/ComponentParseUtils.java
index 9a0a6d54da50..a0f58120e8a1 100644
--- a/core/java/android/content/pm/parsing/ComponentParseUtils.java
+++ b/core/java/android/content/pm/parsing/ComponentParseUtils.java
@@ -3414,16 +3414,12 @@ public class ComponentParseUtils {
proc.name = sa.getNonConfigurationString(
R.styleable.AndroidManifestProcess_process,0);
proc.name = PackageParser.buildProcessName(parsingPackage.getPackageName(),
- null, proc.name, flags, separateProcesses, outError);
-
- if (proc.name == null || proc.name.length() <= 0) {
- outError[0] = "<process> does not specify android:process";
+ parsingPackage.getPackageName(), proc.name, flags, separateProcesses, outError);
+ if (outError[0] != null) {
return null;
}
- proc.name = PackageParser.buildProcessName(parsingPackage.getPackageName(),
- parsingPackage.getPackageName(), proc.name,
- flags, separateProcesses, outError);
- if (outError[0] != null) {
+ if (proc.name == null || proc.name.length() <= 0) {
+ outError[0] = "<process> does not specify android:process";
return null;
}
} finally {
diff --git a/core/java/android/hardware/biometrics/BiometricManager.java b/core/java/android/hardware/biometrics/BiometricManager.java
index 4c114fdc5f10..125b676e14f7 100644
--- a/core/java/android/hardware/biometrics/BiometricManager.java
+++ b/core/java/android/hardware/biometrics/BiometricManager.java
@@ -18,6 +18,7 @@ package android.hardware.biometrics;
import static android.Manifest.permission.USE_BIOMETRIC;
import static android.Manifest.permission.USE_BIOMETRIC_INTERNAL;
+import static android.Manifest.permission.WRITE_DEVICE_CONFIG;
import android.annotation.IntDef;
import android.annotation.RequiresPermission;
@@ -87,9 +88,15 @@ public class BiometricManager {
/**
* Empty set with no authenticators specified.
+ *
+ * <p>This constant is intended for use by {@link android.provider.DeviceConfig} to adjust
+ * the reported strength of a biometric sensor. It is not a valid parameter for any of the
+ * public {@link android.hardware.biometrics} APIs.
+ *
* @hide
*/
@SystemApi
+ @RequiresPermission(WRITE_DEVICE_CONFIG)
int EMPTY_SET = 0x0000;
/**
@@ -115,12 +122,16 @@ public class BiometricManager {
/**
* Any biometric (e.g. fingerprint, iris, or face) on the device that meets or exceeds the
- * requirements for <strong>Convenience</strong>, as defined by the Android CDD. This
- * is not a valid parameter to any of the {@link android.hardware.biometrics} APIs, since
- * the CDD allows only {@link #BIOMETRIC_WEAK} and stronger authenticators to participate.
+ * requirements for <strong>Convenience</strong>, as defined by the Android CDD.
+ *
+ * <p>This constant is intended for use by {@link android.provider.DeviceConfig} to adjust
+ * the reported strength of a biometric sensor. It is not a valid parameter for any of the
+ * public {@link android.hardware.biometrics} APIs.
+ *
* @hide
*/
@SystemApi
+ @RequiresPermission(WRITE_DEVICE_CONFIG)
int BIOMETRIC_CONVENIENCE = 0x0FFF;
/**
diff --git a/core/java/android/hardware/biometrics/BiometricNativeHandleUtils.java b/core/java/android/hardware/biometrics/BiometricNativeHandleUtils.java
new file mode 100644
index 000000000000..5544eaeca7f3
--- /dev/null
+++ b/core/java/android/hardware/biometrics/BiometricNativeHandleUtils.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.biometrics;
+
+import android.os.NativeHandle;
+import android.os.ParcelFileDescriptor;
+
+import java.io.IOException;
+
+/**
+ * A class that contains utilities for IBiometricNativeHandle.
+ *
+ * @hide
+ */
+public final class BiometricNativeHandleUtils {
+
+ private BiometricNativeHandleUtils() {
+ }
+
+ /**
+ * Converts a {@link NativeHandle} into an {@link IBiometricNativeHandle} by duplicating the
+ * underlying file descriptors.
+ *
+ * Both the original and new handle must be closed after use.
+ *
+ * @param h {@link NativeHandle}. Usually used to identify a WindowManager window. Can be null.
+ * @return A {@link IBiometricNativeHandle} representation of {@code h}. Will be null if
+ * {@code h} or its raw file descriptors are null.
+ */
+ public static IBiometricNativeHandle dup(NativeHandle h) {
+ IBiometricNativeHandle handle = null;
+ if (h != null && h.getFileDescriptors() != null && h.getInts() != null) {
+ handle = new IBiometricNativeHandle();
+ handle.ints = h.getInts().clone();
+ handle.fds = new ParcelFileDescriptor[h.getFileDescriptors().length];
+ for (int i = 0; i < h.getFileDescriptors().length; ++i) {
+ try {
+ handle.fds[i] = ParcelFileDescriptor.dup(h.getFileDescriptors()[i]);
+ } catch (IOException e) {
+ return null;
+ }
+ }
+ }
+ return handle;
+ }
+
+ /**
+ * Closes the handle's file descriptors.
+ *
+ * @param h {@link IBiometricNativeHandle} handle.
+ */
+ public static void close(IBiometricNativeHandle h) {
+ if (h != null) {
+ for (ParcelFileDescriptor fd : h.fds) {
+ if (fd != null) {
+ try {
+ fd.close();
+ } catch (IOException e) {
+ // do nothing.
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/core/java/android/hardware/biometrics/IBiometricNativeHandle.aidl b/core/java/android/hardware/biometrics/IBiometricNativeHandle.aidl
new file mode 100644
index 000000000000..6dcdc1be3a50
--- /dev/null
+++ b/core/java/android/hardware/biometrics/IBiometricNativeHandle.aidl
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.hardware.biometrics;
+
+/**
+ * Representation of a native handle.
+ * Copied from /common/aidl/android/hardware/common/NativeHandle.aidl
+ * @hide
+ */
+parcelable IBiometricNativeHandle {
+ ParcelFileDescriptor[] fds;
+ int[] ints;
+}
diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java
index 9ee56a928d81..c5b9a43fb523 100644
--- a/core/java/android/hardware/camera2/CameraManager.java
+++ b/core/java/android/hardware/camera2/CameraManager.java
@@ -316,6 +316,7 @@ public final class CameraManager {
CameraManagerGlobal.get().unregisterTorchCallback(callback);
}
+ // TODO(b/147726300): Investigate how to support foldables/multi-display devices.
private Size getDisplaySize() {
Size ret = new Size(0, 0);
diff --git a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
index a385771484fd..7615b87c7102 100644
--- a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
+++ b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
@@ -91,7 +91,7 @@ public class CameraDeviceImpl extends CameraDevice
private boolean mIdle = true;
/** map request IDs to callback/request data */
- private final SparseArray<CaptureCallbackHolder> mCaptureCallbackMap =
+ private SparseArray<CaptureCallbackHolder> mCaptureCallbackMap =
new SparseArray<CaptureCallbackHolder>();
private int mRepeatingRequestId = REQUEST_ID_NONE;
@@ -123,7 +123,7 @@ public class CameraDeviceImpl extends CameraDevice
* An object tracking received frame numbers.
* Updated when receiving callbacks from ICameraDeviceCallbacks.
*/
- private final FrameNumberTracker mFrameNumberTracker = new FrameNumberTracker();
+ private FrameNumberTracker mFrameNumberTracker = new FrameNumberTracker();
private CameraCaptureSessionCore mCurrentSession;
private int mNextSessionId = 0;
@@ -892,6 +892,7 @@ public class CameraDeviceImpl extends CameraDevice
HashSet<Integer> offlineStreamIds = new HashSet<Integer>();
SparseArray<OutputConfiguration> offlineConfiguredOutputs =
new SparseArray<OutputConfiguration>();
+ CameraOfflineSession ret;
synchronized(mInterfaceLock) {
if (mOfflineSessionImpl != null) {
@@ -919,15 +920,20 @@ public class CameraDeviceImpl extends CameraDevice
offlineStreamIds.add(streamId);
}
+ stopRepeating();
mOfflineSessionImpl = new CameraOfflineSessionImpl(mCameraId,
mCharacteristics, executor, listener, offlineConfiguredOutputs,
- mConfiguredInput, mFrameNumberTracker, mCaptureCallbackMap,
+ mConfiguredInput, mConfiguredOutputs, mFrameNumberTracker, mCaptureCallbackMap,
mRequestLastFrameNumbersList);
+ ret = mOfflineSessionImpl;
mOfflineSwitchService = Executors.newSingleThreadExecutor();
mConfiguredOutputs.clear();
mConfiguredInput = new SimpleEntry<Integer, InputConfiguration>(REQUEST_ID_NONE, null);
+ mIdle = true;
+ mCaptureCallbackMap = new SparseArray<CaptureCallbackHolder>();
+ mFrameNumberTracker = new FrameNumberTracker();
mCurrentSession.closeWithoutDraining();
mCurrentSession = null;
@@ -949,11 +955,13 @@ public class CameraDeviceImpl extends CameraDevice
mOfflineSessionImpl.setRemoteSession(remoteOfflineSession);
} catch (CameraAccessException e) {
mOfflineSessionImpl.notifyFailedSwitch();
+ } finally {
+ mOfflineSessionImpl = null;
}
}
});
- return mOfflineSessionImpl;
+ return ret;
}
public boolean supportsOfflineProcessing(Surface surface) {
diff --git a/core/java/android/hardware/camera2/impl/CameraOfflineSessionImpl.java b/core/java/android/hardware/camera2/impl/CameraOfflineSessionImpl.java
index 1db377a61465..1d9d644c9306 100644
--- a/core/java/android/hardware/camera2/impl/CameraOfflineSessionImpl.java
+++ b/core/java/android/hardware/camera2/impl/CameraOfflineSessionImpl.java
@@ -63,6 +63,7 @@ public class CameraOfflineSessionImpl extends CameraOfflineSession
private SimpleEntry<Integer, InputConfiguration> mOfflineInput =
new SimpleEntry<>(REQUEST_ID_NONE, null);
private SparseArray<OutputConfiguration> mOfflineOutputs = new SparseArray<>();
+ private SparseArray<OutputConfiguration> mConfiguredOutputs = new SparseArray<>();
final Object mInterfaceLock = new Object(); // access from this class and Session only!
@@ -96,6 +97,7 @@ public class CameraOfflineSessionImpl extends CameraOfflineSession
Executor offlineExecutor, CameraOfflineSessionCallback offlineCallback,
SparseArray<OutputConfiguration> offlineOutputs,
SimpleEntry<Integer, InputConfiguration> offlineInput,
+ SparseArray<OutputConfiguration> configuredOutputs,
FrameNumberTracker frameNumberTracker, SparseArray<CaptureCallbackHolder> callbackMap,
List<RequestLastFrameNumbersHolder> frameNumberList) {
if ((cameraId == null) || (characteristics == null)) {
@@ -117,6 +119,7 @@ public class CameraOfflineSessionImpl extends CameraOfflineSession
mOfflineRequestLastFrameNumbersList.addAll(frameNumberList);
mFrameNumberTracker = frameNumberTracker;
mCaptureCallbackMap = callbackMap;
+ mConfiguredOutputs = configuredOutputs;
mOfflineOutputs = offlineOutputs;
mOfflineInput = offlineInput;
mOfflineExecutor = checkNotNull(offlineExecutor, "offline executor must not be null");
@@ -137,9 +140,6 @@ public class CameraOfflineSessionImpl extends CameraOfflineSession
@Override
public void onDeviceError(final int errorCode, CaptureResultExtras resultExtras) {
synchronized(mInterfaceLock) {
- if (mRemoteSession == null) {
- return; // Camera already closed
- }
switch (errorCode) {
case CameraDeviceCallbacks.ERROR_CAMERA_REQUEST:
@@ -177,6 +177,11 @@ public class CameraOfflineSessionImpl extends CameraOfflineSession
@Override
public void onDeviceIdle() {
synchronized(mInterfaceLock) {
+ if (mRemoteSession == null) {
+ Log.v(TAG, "Ignoring idle state notifications during offline switches");
+ return;
+ }
+
Runnable idleDispatch = new Runnable() {
@Override
public void run() {
@@ -203,8 +208,6 @@ public class CameraOfflineSessionImpl extends CameraOfflineSession
final CaptureCallbackHolder holder;
synchronized(mInterfaceLock) {
- if (mRemoteSession == null) return; // Camera already closed
-
// Get the callback for this frame ID, if there is one
holder = CameraOfflineSessionImpl.this.mCaptureCallbackMap.get(requestId);
@@ -269,8 +272,6 @@ public class CameraOfflineSessionImpl extends CameraOfflineSession
long frameNumber = resultExtras.getFrameNumber();
synchronized(mInterfaceLock) {
- if (mRemoteSession == null) return; // Camera already closed
-
// TODO: Handle CameraCharacteristics access from CaptureResult correctly.
result.set(CameraCharacteristics.LENS_INFO_SHADING_MAP_SIZE,
mCharacteristics.get(CameraCharacteristics.LENS_INFO_SHADING_MAP_SIZE));
@@ -445,8 +446,12 @@ public class CameraOfflineSessionImpl extends CameraOfflineSession
if (errorCode == ERROR_CAMERA_BUFFER) {
// Because 1 stream id could map to multiple surfaces, we need to specify both
// streamId and surfaceId.
- OutputConfiguration config = mOfflineOutputs.get(
- resultExtras.getErrorStreamId());
+ OutputConfiguration config;
+ if ((mRemoteSession == null) && !isClosed()) {
+ config = mConfiguredOutputs.get(resultExtras.getErrorStreamId());
+ } else {
+ config = mOfflineOutputs.get(resultExtras.getErrorStreamId());
+ }
if (config == null) {
Log.v(TAG, String.format(
"Stream %d has been removed. Skipping buffer lost callback",
@@ -538,11 +543,6 @@ public class CameraOfflineSessionImpl extends CameraOfflineSession
final Executor executor;
final CameraCaptureSession.CaptureCallback callback;
synchronized(mInterfaceLock) {
- if (mRemoteSession == null) {
- Log.w(TAG, "Camera closed while checking sequences");
- return;
- }
-
int index = mCaptureCallbackMap.indexOfKey(requestId);
holder = (index >= 0) ?
mCaptureCallbackMap.valueAt(index) : null;
@@ -575,7 +575,7 @@ public class CameraOfflineSessionImpl extends CameraOfflineSession
}
// Call onCaptureSequenceCompleted
- if ((sequenceCompleted) && (callback != null) && (executor == null)) {
+ if ((sequenceCompleted) && (callback != null) && (executor != null)) {
Runnable resultDispatch = new Runnable() {
@Override
public void run() {
@@ -592,7 +592,12 @@ public class CameraOfflineSessionImpl extends CameraOfflineSession
} finally {
Binder.restoreCallingIdentity(ident);
}
+
+ if (mCaptureCallbackMap.size() == 0) {
+ getCallbacks().onDeviceIdle();
+ }
}
+
}
}
@@ -686,9 +691,7 @@ public class CameraOfflineSessionImpl extends CameraOfflineSession
Runnable closeDispatch = new Runnable() {
@Override
public void run() {
- if (!isClosed()) {
- mOfflineCallback.onClosed(CameraOfflineSessionImpl.this);
- }
+ mOfflineCallback.onClosed(CameraOfflineSessionImpl.this);
}
};
diff --git a/core/java/android/hardware/display/AmbientDisplayConfiguration.java b/core/java/android/hardware/display/AmbientDisplayConfiguration.java
index 3e995b624112..ece5c28884fa 100644
--- a/core/java/android/hardware/display/AmbientDisplayConfiguration.java
+++ b/core/java/android/hardware/display/AmbientDisplayConfiguration.java
@@ -194,6 +194,11 @@ public class AmbientDisplayConfiguration {
return !TextUtils.isEmpty(ambientDisplayComponent());
}
+ /** {@hide} */
+ public boolean dozeSuppressed(int user) {
+ return boolSettingDefaultOff(Settings.Secure.SUPPRESS_DOZE, user);
+ }
+
private boolean alwaysOnDisplayAvailable() {
return mContext.getResources().getBoolean(R.bool.config_dozeAlwaysOnDisplayAvailable);
}
diff --git a/core/java/android/hardware/face/FaceManager.java b/core/java/android/hardware/face/FaceManager.java
index 55ebe285af1e..6bda46b0b692 100644
--- a/core/java/android/hardware/face/FaceManager.java
+++ b/core/java/android/hardware/face/FaceManager.java
@@ -29,7 +29,9 @@ import android.content.Context;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricConstants;
import android.hardware.biometrics.BiometricFaceConstants;
+import android.hardware.biometrics.BiometricNativeHandleUtils;
import android.hardware.biometrics.CryptoObject;
+import android.hardware.biometrics.IBiometricNativeHandle;
import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
import android.os.Binder;
import android.os.CancellationSignal;
@@ -38,6 +40,7 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.IRemoteCallback;
import android.os.Looper;
+import android.os.NativeHandle;
import android.os.PowerManager;
import android.os.RemoteException;
import android.os.Trace;
@@ -245,6 +248,19 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan
}
/**
+ * Defaults to {@link FaceManager#enroll(int, byte[], CancellationSignal, EnrollmentCallback,
+ * int[], NativeHandle)} with {@code windowId} set to null.
+ *
+ * @see FaceManager#enroll(int, byte[], CancellationSignal, EnrollmentCallback, int[],
+ * NativeHandle)
+ */
+ @RequiresPermission(MANAGE_BIOMETRIC)
+ public void enroll(int userId, byte[] token, CancellationSignal cancel,
+ EnrollmentCallback callback, int[] disabledFeatures) {
+ enroll(userId, token, cancel, callback, disabledFeatures, null /* windowId */);
+ }
+
+ /**
* Request face authentication enrollment. This call operates the face authentication hardware
* and starts capturing images. Progress will be indicated by callbacks to the
* {@link EnrollmentCallback} object. It terminates when
@@ -259,11 +275,13 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan
* @param flags optional flags
* @param userId the user to whom this face will belong to
* @param callback an object to receive enrollment events
+ * @param windowId optional ID of a camera preview window for a single-camera device. Must be
+ * null if not used.
* @hide
*/
@RequiresPermission(MANAGE_BIOMETRIC)
public void enroll(int userId, byte[] token, CancellationSignal cancel,
- EnrollmentCallback callback, int[] disabledFeatures) {
+ EnrollmentCallback callback, int[] disabledFeatures, @Nullable NativeHandle windowId) {
if (callback == null) {
throw new IllegalArgumentException("Must supply an enrollment callback");
}
@@ -278,20 +296,72 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan
}
if (mService != null) {
+ IBiometricNativeHandle handle = BiometricNativeHandleUtils.dup(windowId);
try {
mEnrollmentCallback = callback;
Trace.beginSection("FaceManager#enroll");
mService.enroll(userId, mToken, token, mServiceReceiver,
- mContext.getOpPackageName(), disabledFeatures);
+ mContext.getOpPackageName(), disabledFeatures, handle);
} catch (RemoteException e) {
Log.w(TAG, "Remote exception in enroll: ", e);
- if (callback != null) {
- // Though this may not be a hardware issue, it will cause apps to give up or
- // try again later.
- callback.onEnrollmentError(FACE_ERROR_HW_UNAVAILABLE,
- getErrorString(mContext, FACE_ERROR_HW_UNAVAILABLE,
+ // Though this may not be a hardware issue, it will cause apps to give up or
+ // try again later.
+ callback.onEnrollmentError(FACE_ERROR_HW_UNAVAILABLE,
+ getErrorString(mContext, FACE_ERROR_HW_UNAVAILABLE,
+ 0 /* vendorCode */));
+ } finally {
+ Trace.endSection();
+ BiometricNativeHandleUtils.close(handle);
+ }
+ }
+ }
+
+ /**
+ * Request face authentication enrollment for a remote client, for example Android Auto.
+ * This call operates the face authentication hardware and starts capturing images.
+ * Progress will be indicated by callbacks to the
+ * {@link EnrollmentCallback} object. It terminates when
+ * {@link EnrollmentCallback#onEnrollmentError(int, CharSequence)} or
+ * {@link EnrollmentCallback#onEnrollmentProgress(int) is called with remaining == 0, at
+ * which point the object is no longer valid. The operation can be canceled by using the
+ * provided cancel object.
+ *
+ * @param token a unique token provided by a recent creation or verification of device
+ * credentials (e.g. pin, pattern or password).
+ * @param cancel an object that can be used to cancel enrollment
+ * @param userId the user to whom this face will belong to
+ * @param callback an object to receive enrollment events
+ * @hide
+ */
+ @RequiresPermission(MANAGE_BIOMETRIC)
+ public void enrollRemotely(int userId, byte[] token, CancellationSignal cancel,
+ EnrollmentCallback callback, int[] disabledFeatures) {
+ if (callback == null) {
+ throw new IllegalArgumentException("Must supply an enrollment callback");
+ }
+
+ if (cancel != null) {
+ if (cancel.isCanceled()) {
+ Log.w(TAG, "enrollRemotely is already canceled.");
+ return;
+ } else {
+ cancel.setOnCancelListener(new OnEnrollCancelListener());
+ }
+ }
+
+ if (mService != null) {
+ try {
+ mEnrollmentCallback = callback;
+ Trace.beginSection("FaceManager#enrollRemotely");
+ mService.enrollRemotely(userId, mToken, token, mServiceReceiver,
+ mContext.getOpPackageName(), disabledFeatures);
+ } catch (RemoteException e) {
+ Log.w(TAG, "Remote exception in enrollRemotely: ", e);
+ // Though this may not be a hardware issue, it will cause apps to give up or
+ // try again later.
+ callback.onEnrollmentError(FACE_ERROR_HW_UNAVAILABLE,
+ getErrorString(mContext, FACE_ERROR_HW_UNAVAILABLE,
0 /* vendorCode */));
- }
} finally {
Trace.endSection();
}
diff --git a/core/java/android/hardware/face/IFaceService.aidl b/core/java/android/hardware/face/IFaceService.aidl
index 68a4aef7af08..8ba24735c039 100644
--- a/core/java/android/hardware/face/IFaceService.aidl
+++ b/core/java/android/hardware/face/IFaceService.aidl
@@ -15,6 +15,7 @@
*/
package android.hardware.face;
+import android.hardware.biometrics.IBiometricNativeHandle;
import android.hardware.biometrics.IBiometricServiceReceiverInternal;
import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
import android.hardware.face.IFaceServiceReceiver;
@@ -51,6 +52,10 @@ interface IFaceService {
// Start face enrollment
void enroll(int userId, IBinder token, in byte [] cryptoToken, IFaceServiceReceiver receiver,
+ String opPackageName, in int [] disabledFeatures, in IBiometricNativeHandle windowId);
+
+ // Start remote face enrollment
+ void enrollRemotely(int userId, IBinder token, in byte [] cryptoToken, IFaceServiceReceiver receiver,
String opPackageName, in int [] disabledFeatures);
// Cancel enrollment in progress
diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java
index ff9d14510d4b..f6717c77f90e 100644
--- a/core/java/android/hardware/fingerprint/FingerprintManager.java
+++ b/core/java/android/hardware/fingerprint/FingerprintManager.java
@@ -32,7 +32,9 @@ import android.content.Context;
import android.content.pm.PackageManager;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricFingerprintConstants;
+import android.hardware.biometrics.BiometricNativeHandleUtils;
import android.hardware.biometrics.BiometricPrompt;
+import android.hardware.biometrics.IBiometricNativeHandle;
import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
import android.os.Binder;
import android.os.CancellationSignal;
@@ -41,6 +43,7 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.IRemoteCallback;
import android.os.Looper;
+import android.os.NativeHandle;
import android.os.PowerManager;
import android.os.RemoteException;
import android.os.UserHandle;
@@ -403,15 +406,33 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing
}
/**
+ * Defaults to {@link FingerprintManager#authenticate(CryptoObject, CancellationSignal, int,
+ * AuthenticationCallback, Handler, int, NativeHandle)} with {@code windowId} set to null.
+ *
+ * @see FingerprintManager#authenticate(CryptoObject, CancellationSignal, int,
+ * AuthenticationCallback, Handler, int, NativeHandle)
+ *
+ * @hide
+ */
+ @RequiresPermission(anyOf = {USE_BIOMETRIC, USE_FINGERPRINT})
+ public void authenticate(@Nullable CryptoObject crypto, @Nullable CancellationSignal cancel,
+ int flags, @NonNull AuthenticationCallback callback, Handler handler, int userId) {
+ authenticate(crypto, cancel, flags, callback, handler, userId, null /* windowId */);
+ }
+
+ /**
* Per-user version, see {@link FingerprintManager#authenticate(CryptoObject,
* CancellationSignal, int, AuthenticationCallback, Handler)}. This version does not
* display the BiometricPrompt.
* @param userId the user ID that the fingerprint hardware will authenticate for.
+ * @param windowId for optical fingerprint sensors that require active illumination by the OLED
+ * display. Should be null for devices that don't require illumination.
* @hide
*/
@RequiresPermission(anyOf = {USE_BIOMETRIC, USE_FINGERPRINT})
public void authenticate(@Nullable CryptoObject crypto, @Nullable CancellationSignal cancel,
- int flags, @NonNull AuthenticationCallback callback, Handler handler, int userId) {
+ int flags, @NonNull AuthenticationCallback callback, Handler handler, int userId,
+ @Nullable NativeHandle windowId) {
if (callback == null) {
throw new IllegalArgumentException("Must supply an authentication callback");
}
@@ -425,26 +446,44 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing
}
}
- if (mService != null) try {
- useHandler(handler);
- mAuthenticationCallback = callback;
- mCryptoObject = crypto;
- long sessionId = crypto != null ? crypto.getOpId() : 0;
- mService.authenticate(mToken, sessionId, userId, mServiceReceiver, flags,
- mContext.getOpPackageName());
- } catch (RemoteException e) {
- Slog.w(TAG, "Remote exception while authenticating: ", e);
- if (callback != null) {
+ if (mService != null) {
+ IBiometricNativeHandle handle = BiometricNativeHandleUtils.dup(windowId);
+ try {
+ useHandler(handler);
+ mAuthenticationCallback = callback;
+ mCryptoObject = crypto;
+ long sessionId = crypto != null ? crypto.getOpId() : 0;
+ mService.authenticate(mToken, sessionId, userId, mServiceReceiver, flags,
+ mContext.getOpPackageName(), handle);
+ } catch (RemoteException e) {
+ Slog.w(TAG, "Remote exception while authenticating: ", e);
// Though this may not be a hardware issue, it will cause apps to give up or try
// again later.
callback.onAuthenticationError(FINGERPRINT_ERROR_HW_UNAVAILABLE,
getErrorString(mContext, FINGERPRINT_ERROR_HW_UNAVAILABLE,
- 0 /* vendorCode */));
+ 0 /* vendorCode */));
+ } finally {
+ BiometricNativeHandleUtils.close(handle);
}
}
}
/**
+ * Defaults to {@link FingerprintManager#enroll(byte[], CancellationSignal, int, int,
+ * EnrollmentCallback, NativeHandle)} with {@code windowId} set to null.
+ *
+ * @see FingerprintManager#enroll(byte[], CancellationSignal, int, int, EnrollmentCallback,
+ * NativeHandle)
+ *
+ * @hide
+ */
+ @RequiresPermission(MANAGE_FINGERPRINT)
+ public void enroll(byte [] token, CancellationSignal cancel, int flags,
+ int userId, EnrollmentCallback callback) {
+ enroll(token, cancel, flags, userId, callback, null /* windowId */);
+ }
+
+ /**
* Request fingerprint enrollment. This call warms up the fingerprint hardware
* and starts scanning for fingerprints. Progress will be indicated by callbacks to the
* {@link EnrollmentCallback} object. It terminates when
@@ -462,7 +501,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing
*/
@RequiresPermission(MANAGE_FINGERPRINT)
public void enroll(byte [] token, CancellationSignal cancel, int flags,
- int userId, EnrollmentCallback callback) {
+ int userId, EnrollmentCallback callback, @Nullable NativeHandle windowId) {
if (userId == UserHandle.USER_CURRENT) {
userId = getCurrentUserId();
}
@@ -479,18 +518,21 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing
}
}
- if (mService != null) try {
- mEnrollmentCallback = callback;
- mService.enroll(mToken, token, userId, mServiceReceiver, flags,
- mContext.getOpPackageName());
- } catch (RemoteException e) {
- Slog.w(TAG, "Remote exception in enroll: ", e);
- if (callback != null) {
+ if (mService != null) {
+ IBiometricNativeHandle handle = BiometricNativeHandleUtils.dup(windowId);
+ try {
+ mEnrollmentCallback = callback;
+ mService.enroll(mToken, token, userId, mServiceReceiver, flags,
+ mContext.getOpPackageName(), handle);
+ } catch (RemoteException e) {
+ Slog.w(TAG, "Remote exception in enroll: ", e);
// Though this may not be a hardware issue, it will cause apps to give up or try
// again later.
callback.onEnrollmentError(FINGERPRINT_ERROR_HW_UNAVAILABLE,
getErrorString(mContext, FINGERPRINT_ERROR_HW_UNAVAILABLE,
- 0 /* vendorCode */));
+ 0 /* vendorCode */));
+ } finally {
+ BiometricNativeHandleUtils.close(handle);
}
}
}
diff --git a/core/java/android/hardware/fingerprint/IFingerprintService.aidl b/core/java/android/hardware/fingerprint/IFingerprintService.aidl
index 1a7e12856753..f2ffd08d5bc8 100644
--- a/core/java/android/hardware/fingerprint/IFingerprintService.aidl
+++ b/core/java/android/hardware/fingerprint/IFingerprintService.aidl
@@ -15,6 +15,7 @@
*/
package android.hardware.fingerprint;
+import android.hardware.biometrics.IBiometricNativeHandle;
import android.hardware.biometrics.IBiometricServiceReceiverInternal;
import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
import android.hardware.fingerprint.IFingerprintClientActiveCallback;
@@ -31,7 +32,8 @@ interface IFingerprintService {
// USE_FINGERPRINT/USE_BIOMETRIC permission. This is effectively deprecated, since it only comes
// through FingerprintManager now.
void authenticate(IBinder token, long sessionId, int userId,
- IFingerprintServiceReceiver receiver, int flags, String opPackageName);
+ IFingerprintServiceReceiver receiver, int flags, String opPackageName,
+ in IBiometricNativeHandle windowId);
// This method prepares the service to start authenticating, but doesn't start authentication.
// This is protected by the MANAGE_BIOMETRIC signatuer permission. This method should only be
@@ -40,7 +42,7 @@ interface IFingerprintService {
// startPreparedClient().
void prepareForAuthentication(IBinder token, long sessionId, int userId,
IBiometricServiceReceiverInternal wrapperReceiver, String opPackageName, int cookie,
- int callingUid, int callingPid, int callingUserId);
+ int callingUid, int callingPid, int callingUserId, in IBiometricNativeHandle windowId);
// Starts authentication with the previously prepared client.
void startPreparedClient(int cookie);
@@ -55,7 +57,7 @@ interface IFingerprintService {
// Start fingerprint enrollment
void enroll(IBinder token, in byte [] cryptoToken, int groupId, IFingerprintServiceReceiver receiver,
- int flags, String opPackageName);
+ int flags, String opPackageName, in IBiometricNativeHandle windowId);
// Cancel enrollment in progress
void cancelEnrollment(IBinder token);
diff --git a/core/java/android/hardware/soundtrigger/ConversionUtil.java b/core/java/android/hardware/soundtrigger/ConversionUtil.java
index a30fd6b51e76..dbf33cade60c 100644
--- a/core/java/android/hardware/soundtrigger/ConversionUtil.java
+++ b/core/java/android/hardware/soundtrigger/ConversionUtil.java
@@ -17,7 +17,6 @@
package android.hardware.soundtrigger;
import android.annotation.Nullable;
-import android.hardware.soundtrigger.ModelParams;
import android.media.AudioFormat;
import android.media.audio.common.AudioConfig;
import android.media.soundtrigger_middleware.AudioCapabilities;
@@ -333,20 +332,22 @@ class ConversionUtil {
public static int aidl2apiAudioCapabilities(int aidlCapabilities) {
int result = 0;
if ((aidlCapabilities & AudioCapabilities.ECHO_CANCELLATION) != 0) {
- result |= SoundTrigger.ModuleProperties.CAPABILITY_ECHO_CANCELLATION;
+ result |= SoundTrigger.ModuleProperties.AUDIO_CAPABILITY_ECHO_CANCELLATION;
}
if ((aidlCapabilities & AudioCapabilities.NOISE_SUPPRESSION) != 0) {
- result |= SoundTrigger.ModuleProperties.CAPABILITY_NOISE_SUPPRESSION;
+ result |= SoundTrigger.ModuleProperties.AUDIO_CAPABILITY_NOISE_SUPPRESSION;
}
return result;
}
public static int api2aidlAudioCapabilities(int apiCapabilities) {
int result = 0;
- if ((apiCapabilities & SoundTrigger.ModuleProperties.CAPABILITY_ECHO_CANCELLATION) != 0) {
+ if ((apiCapabilities & SoundTrigger.ModuleProperties.AUDIO_CAPABILITY_ECHO_CANCELLATION)
+ != 0) {
result |= AudioCapabilities.ECHO_CANCELLATION;
}
- if ((apiCapabilities & SoundTrigger.ModuleProperties.CAPABILITY_NOISE_SUPPRESSION) != 0) {
+ if ((apiCapabilities & SoundTrigger.ModuleProperties.AUDIO_CAPABILITY_NOISE_SUPPRESSION)
+ != 0) {
result |= AudioCapabilities.NOISE_SUPPRESSION;
}
return result;
diff --git a/core/java/android/hardware/soundtrigger/SoundTrigger.java b/core/java/android/hardware/soundtrigger/SoundTrigger.java
index d505ae59dfaf..a74871d29041 100644
--- a/core/java/android/hardware/soundtrigger/SoundTrigger.java
+++ b/core/java/android/hardware/soundtrigger/SoundTrigger.java
@@ -97,8 +97,8 @@ public class SoundTrigger {
*/
@Retention(RetentionPolicy.SOURCE)
@IntDef(flag = true, prefix = { "AUDIO_CAPABILITY_" }, value = {
- CAPABILITY_ECHO_CANCELLATION,
- CAPABILITY_NOISE_SUPPRESSION
+ AUDIO_CAPABILITY_ECHO_CANCELLATION,
+ AUDIO_CAPABILITY_NOISE_SUPPRESSION
})
public @interface AudioCapabilities {}
@@ -106,12 +106,12 @@ public class SoundTrigger {
* If set the underlying module supports AEC.
* Describes bit field {@link ModuleProperties#audioCapabilities}
*/
- public static final int CAPABILITY_ECHO_CANCELLATION = 0x1;
+ public static final int AUDIO_CAPABILITY_ECHO_CANCELLATION = 0x1;
/**
* If set, the underlying module supports noise suppression.
* Describes bit field {@link ModuleProperties#audioCapabilities}
*/
- public static final int CAPABILITY_NOISE_SUPPRESSION = 0x2;
+ public static final int AUDIO_CAPABILITY_NOISE_SUPPRESSION = 0x2;
/** Unique module ID provided by the native service */
public final int id;
@@ -735,22 +735,40 @@ public class SoundTrigger {
/**
* The inclusive start of supported range.
*/
- public final int start;
+ private final int mStart;
/**
* The inclusive end of supported range.
*/
- public final int end;
+ private final int mEnd;
ModelParamRange(int start, int end) {
- this.start = start;
- this.end = end;
+ this.mStart = start;
+ this.mEnd = end;
}
/** @hide */
private ModelParamRange(@NonNull Parcel in) {
- this.start = in.readInt();
- this.end = in.readInt();
+ this.mStart = in.readInt();
+ this.mEnd = in.readInt();
+ }
+
+ /**
+ * Get the beginning of the param range
+ *
+ * @return The inclusive start of the supported range.
+ */
+ public int getStart() {
+ return mStart;
+ }
+
+ /**
+ * Get the end of the param range
+ *
+ * @return The inclusive end of the supported range.
+ */
+ public int getEnd() {
+ return mEnd;
}
@NonNull
@@ -780,8 +798,8 @@ public class SoundTrigger {
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + (start);
- result = prime * result + (end);
+ result = prime * result + (mStart);
+ result = prime * result + (mEnd);
return result;
}
@@ -797,10 +815,10 @@ public class SoundTrigger {
return false;
}
ModelParamRange other = (ModelParamRange) obj;
- if (start != other.start) {
+ if (mStart != other.mStart) {
return false;
}
- if (end != other.end) {
+ if (mEnd != other.mEnd) {
return false;
}
return true;
@@ -808,14 +826,14 @@ public class SoundTrigger {
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
- dest.writeInt(start);
- dest.writeInt(end);
+ dest.writeInt(mStart);
+ dest.writeInt(mEnd);
}
@Override
@NonNull
public String toString() {
- return "ModelParamRange [start=" + start + ", end=" + end + "]";
+ return "ModelParamRange [start=" + mStart + ", end=" + mEnd + "]";
}
}
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index 92047dcad09e..49e1d5e4f213 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -16,7 +16,6 @@
package android.inputmethodservice;
-import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static android.view.ViewRootImpl.NEW_INSETS_MODE_NONE;
@@ -39,6 +38,7 @@ import android.app.Dialog;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.ComponentName;
import android.content.Context;
+import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -52,7 +52,6 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
-import android.os.Process;
import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.SystemClock;
@@ -64,6 +63,7 @@ import android.text.method.MovementMethod;
import android.util.Log;
import android.util.PrintWriterPrinter;
import android.util.Printer;
+import android.util.Size;
import android.view.Gravity;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
@@ -452,6 +452,9 @@ public class InputMethodService extends AbstractInputMethodService {
@Nullable
private InlineSuggestionsRequestInfo mInlineSuggestionsRequestInfo = null;
+ private boolean mAutomotiveHideNavBarForKeyboard;
+ private boolean mIsAutomotive;
+
/**
* An opaque {@link Binder} token of window requesting {@link InputMethodImpl#showSoftInput}
* The original app window token is passed from client app window.
@@ -560,12 +563,10 @@ public class InputMethodService extends AbstractInputMethodService {
@Override
public void updateInputMethodDisplay(int displayId) {
// Update display for adding IME window to the right display.
- if (displayId != DEFAULT_DISPLAY) {
- // TODO(b/111364446) Need to address context lifecycle issue if need to re-create
- // for update resources & configuration correctly when show soft input
- // in non-default display.
- updateDisplay(displayId);
- }
+ // TODO(b/111364446) Need to address context lifecycle issue if need to re-create
+ // for update resources & configuration correctly when show soft input
+ // in non-default display.
+ updateDisplay(displayId);
}
/**
@@ -1233,6 +1234,11 @@ public class InputMethodService extends AbstractInputMethodService {
super.onCreate();
mImm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
mSettingsObserver = SettingsObserver.createAndRegister(this);
+
+ mIsAutomotive = isAutomotive();
+ mAutomotiveHideNavBarForKeyboard = getApplicationContext().getResources().getBoolean(
+ com.android.internal.R.bool.config_automotiveHideNavBarForKeyboard);
+
// TODO(b/111364446) Need to address context lifecycle issue if need to re-create
// for update resources & configuration correctly when show soft input
// in non-default display.
@@ -1242,12 +1248,16 @@ public class InputMethodService extends AbstractInputMethodService {
WindowManager.LayoutParams.TYPE_INPUT_METHOD, Gravity.BOTTOM, false);
mWindow.getWindow().getAttributes().setFitInsetsTypes(WindowInsets.Type.statusBars());
- // IME layout should always be inset by navigation bar, no matter it's current visibility.
+ // IME layout should always be inset by navigation bar, no matter its current visibility,
+ // unless automotive requests it, since automotive may hide the navigation bar.
mWindow.getWindow().getDecorView().setOnApplyWindowInsetsListener(
(v, insets) -> v.onApplyWindowInsets(
new WindowInsets.Builder(insets).setInsets(
navigationBars(),
- insets.getInsetsIgnoringVisibility(navigationBars()))
+ mIsAutomotive && mAutomotiveHideNavBarForKeyboard
+ ? android.graphics.Insets.NONE
+ : insets.getInsetsIgnoringVisibility(navigationBars())
+ )
.build()));
// For ColorView in DecorView to work, FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS needs to be set
@@ -1466,8 +1476,9 @@ public class InputMethodService extends AbstractInputMethodService {
* screen orientation changes.
*/
public int getMaxWidth() {
- WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
- return wm.getDefaultDisplay().getWidth();
+ final WindowManager windowManager = getSystemService(WindowManager.class);
+ final Size windowSize = windowManager.getCurrentWindowMetrics().getSize();
+ return windowSize.getWidth();
}
/**
@@ -3286,6 +3297,11 @@ public class InputMethodService extends AbstractInputMethodService {
: IME_VISIBLE) : 0);
}
+ private boolean isAutomotive() {
+ return getApplicationContext().getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_AUTOMOTIVE);
+ }
+
/**
* Performs a dump of the InputMethodService's internal state. Override
* to add your own information to the dump.
diff --git a/core/java/android/inputmethodservice/SoftInputWindow.java b/core/java/android/inputmethodservice/SoftInputWindow.java
index 356b3448430a..0513feef801f 100644
--- a/core/java/android/inputmethodservice/SoftInputWindow.java
+++ b/core/java/android/inputmethodservice/SoftInputWindow.java
@@ -21,7 +21,6 @@ import static java.lang.annotation.RetentionPolicy.SOURCE;
import android.annotation.IntDef;
import android.app.Dialog;
import android.content.Context;
-import android.content.pm.PackageManager;
import android.graphics.Rect;
import android.os.Debug;
import android.os.IBinder;
@@ -51,7 +50,6 @@ public class SoftInputWindow extends Dialog {
final int mWindowType;
final int mGravity;
final boolean mTakesFocus;
- final boolean mAutomotiveHideNavBarForKeyboard;
private final Rect mBounds = new Rect();
@Retention(SOURCE)
@@ -136,8 +134,6 @@ public class SoftInputWindow extends Dialog {
mWindowType = windowType;
mGravity = gravity;
mTakesFocus = takesFocus;
- mAutomotiveHideNavBarForKeyboard = context.getResources().getBoolean(
- com.android.internal.R.bool.config_automotiveHideNavBarForKeyboard);
initDockWindow();
}
@@ -251,11 +247,6 @@ public class SoftInputWindow extends Dialog {
windowModFlags |= WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
}
- if (isAutomotive() && mAutomotiveHideNavBarForKeyboard) {
- windowSetFlags |= WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
- windowModFlags |= WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
- }
-
getWindow().setFlags(windowSetFlags, windowModFlags);
}
@@ -347,10 +338,6 @@ public class SoftInputWindow extends Dialog {
mWindowState = newState;
}
- private boolean isAutomotive() {
- return getContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
- }
-
private static String stateToString(@SoftInputWindowState int state) {
switch (state) {
case SoftInputWindowState.TOKEN_PENDING:
diff --git a/core/java/android/net/ConnectivityDiagnosticsManager.java b/core/java/android/net/ConnectivityDiagnosticsManager.java
index b13e4b72aa22..b128ea7f3e39 100644
--- a/core/java/android/net/ConnectivityDiagnosticsManager.java
+++ b/core/java/android/net/ConnectivityDiagnosticsManager.java
@@ -25,13 +25,16 @@ import android.os.Binder;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.PersistableBundle;
+import android.os.RemoteException;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.Preconditions;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.util.Map;
import java.util.Objects;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executor;
/**
@@ -57,6 +60,11 @@ import java.util.concurrent.Executor;
* </ul>
*/
public class ConnectivityDiagnosticsManager {
+ /** @hide */
+ @VisibleForTesting
+ public static final Map<ConnectivityDiagnosticsCallback, ConnectivityDiagnosticsBinder>
+ sCallbacks = new ConcurrentHashMap<>();
+
private final Context mContext;
private final IConnectivityManager mService;
@@ -631,8 +639,9 @@ public class ConnectivityDiagnosticsManager {
/**
* Registers a ConnectivityDiagnosticsCallback with the System.
*
- * <p>Only apps that offer network connectivity to the user are allowed to register callbacks.
- * This includes:
+ * <p>Only apps that offer network connectivity to the user should be registering callbacks.
+ * These are the only apps whose callbacks will be invoked by the system. Apps considered to
+ * meet these conditions include:
*
* <ul>
* <li>Carrier apps with active subscriptions
@@ -640,15 +649,14 @@ public class ConnectivityDiagnosticsManager {
* <li>WiFi Suggesters
* </ul>
*
- * <p>Callbacks will be limited to receiving notifications for networks over which apps provide
- * connectivity.
+ * <p>Callbacks registered by apps not meeting the above criteria will not be invoked.
*
* <p>If a registering app loses its relevant permissions, any callbacks it registered will
* silently stop receiving callbacks.
*
- * <p>Each register() call <b>MUST</b> use a unique ConnectivityDiagnosticsCallback instance. If
- * a single instance is registered with multiple NetworkRequests, an IllegalArgumentException
- * will be thrown.
+ * <p>Each register() call <b>MUST</b> use a ConnectivityDiagnosticsCallback instance that is
+ * not currently registered. If a ConnectivityDiagnosticsCallback instance is registered with
+ * multiple NetworkRequests, an IllegalArgumentException will be thrown.
*
* @param request The NetworkRequest that will be used to match with Networks for which
* callbacks will be fired
@@ -657,15 +665,22 @@ public class ConnectivityDiagnosticsManager {
* System
* @throws IllegalArgumentException if the same callback instance is registered with multiple
* NetworkRequests
- * @throws SecurityException if the caller does not have appropriate permissions to register a
- * callback
*/
public void registerConnectivityDiagnosticsCallback(
@NonNull NetworkRequest request,
@NonNull Executor e,
@NonNull ConnectivityDiagnosticsCallback callback) {
- // TODO(b/143187964): implement ConnectivityDiagnostics functionality
- throw new UnsupportedOperationException("registerCallback() not supported yet");
+ final ConnectivityDiagnosticsBinder binder = new ConnectivityDiagnosticsBinder(callback, e);
+ if (sCallbacks.putIfAbsent(callback, binder) != null) {
+ throw new IllegalArgumentException("Callback is currently registered");
+ }
+
+ try {
+ mService.registerConnectivityDiagnosticsCallback(
+ binder, request, mContext.getOpPackageName());
+ } catch (RemoteException exception) {
+ exception.rethrowFromSystemServer();
+ }
}
/**
@@ -678,7 +693,15 @@ public class ConnectivityDiagnosticsManager {
*/
public void unregisterConnectivityDiagnosticsCallback(
@NonNull ConnectivityDiagnosticsCallback callback) {
- // TODO(b/143187964): implement ConnectivityDiagnostics functionality
- throw new UnsupportedOperationException("registerCallback() not supported yet");
+ // unconditionally removing from sCallbacks prevents race conditions here, since remove() is
+ // atomic.
+ final ConnectivityDiagnosticsBinder binder = sCallbacks.remove(callback);
+ if (binder == null) return;
+
+ try {
+ mService.unregisterConnectivityDiagnosticsCallback(binder);
+ } catch (RemoteException exception) {
+ exception.rethrowFromSystemServer();
+ }
}
}
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index ce9693d88a97..f644f148a5ad 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -3322,15 +3322,19 @@ public class ConnectivityManager {
// of dependent changes that would conflict throughout the automerger graph. Having this
// temporarily helps with the process of going through with all these dependent changes across
// the entire tree.
+ // STOPSHIP (b/148055573) : remove this before R is released.
/**
* @hide
* Register a NetworkAgent with ConnectivityService.
* @return Network corresponding to NetworkAgent.
+ * @deprecated use the version that takes a NetworkScore and a provider ID.
*/
@RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
+ @Deprecated
public Network registerNetworkAgent(Messenger messenger, NetworkInfo ni, LinkProperties lp,
NetworkCapabilities nc, int score, NetworkAgentConfig config) {
- return registerNetworkAgent(messenger, ni, lp, nc, score, config, NetworkProvider.ID_NONE);
+ final NetworkScore ns = new NetworkScore.Builder().setLegacyScore(score).build();
+ return registerNetworkAgent(messenger, ni, lp, nc, ns, config, NetworkProvider.ID_NONE);
}
/**
@@ -3340,7 +3344,7 @@ public class ConnectivityManager {
*/
@RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
public Network registerNetworkAgent(Messenger messenger, NetworkInfo ni, LinkProperties lp,
- NetworkCapabilities nc, int score, NetworkAgentConfig config, int providerId) {
+ NetworkCapabilities nc, NetworkScore score, NetworkAgentConfig config, int providerId) {
try {
return mService.registerNetworkAgent(messenger, ni, lp, nc, score, config, providerId);
} catch (RemoteException e) {
@@ -3746,6 +3750,7 @@ public class ConnectivityManager {
checkCallbackNotNull(callback);
Preconditions.checkArgument(action == REQUEST || need != null, "null NetworkCapabilities");
final NetworkRequest request;
+ final String callingPackageName = mContext.getOpPackageName();
try {
synchronized(sCallbacks) {
if (callback.networkRequest != null
@@ -3757,10 +3762,11 @@ public class ConnectivityManager {
Messenger messenger = new Messenger(handler);
Binder binder = new Binder();
if (action == LISTEN) {
- request = mService.listenForNetwork(need, messenger, binder);
+ request = mService.listenForNetwork(
+ need, messenger, binder, callingPackageName);
} else {
request = mService.requestNetwork(
- need, messenger, timeoutMs, binder, legacyType);
+ need, messenger, timeoutMs, binder, legacyType, callingPackageName);
}
if (request != null) {
sCallbacks.put(request, callback);
@@ -4033,8 +4039,10 @@ public class ConnectivityManager {
@NonNull PendingIntent operation) {
printStackTrace();
checkPendingIntentNotNull(operation);
+ final String callingPackageName = mContext.getOpPackageName();
try {
- mService.pendingRequestForNetwork(request.networkCapabilities, operation);
+ mService.pendingRequestForNetwork(
+ request.networkCapabilities, operation, callingPackageName);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
} catch (ServiceSpecificException e) {
@@ -4146,8 +4154,10 @@ public class ConnectivityManager {
@NonNull PendingIntent operation) {
printStackTrace();
checkPendingIntentNotNull(operation);
+ final String callingPackageName = mContext.getOpPackageName();
try {
- mService.pendingListenForNetwork(request.networkCapabilities, operation);
+ mService.pendingListenForNetwork(
+ request.networkCapabilities, operation, callingPackageName);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
} catch (ServiceSpecificException e) {
diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl
index 3e9e7faccb02..1c7628f6ad0a 100644
--- a/core/java/android/net/IConnectivityManager.aidl
+++ b/core/java/android/net/IConnectivityManager.aidl
@@ -26,6 +26,7 @@ import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.net.NetworkQuotaInfo;
import android.net.NetworkRequest;
+import android.net.NetworkScore;
import android.net.NetworkState;
import android.net.ISocketKeepaliveCallback;
import android.net.ProxyInfo;
@@ -116,10 +117,18 @@ interface IConnectivityManager
boolean prepareVpn(String oldPackage, String newPackage, int userId);
- void setVpnPackageAuthorization(String packageName, int userId, boolean authorized);
+ void setVpnPackageAuthorization(String packageName, int userId, int vpnType);
ParcelFileDescriptor establishVpn(in VpnConfig config);
+ boolean provisionVpnProfile(in VpnProfile profile, String packageName);
+
+ void deleteVpnProfile(String packageName);
+
+ void startVpnProfile(String packageName);
+
+ void stopVpnProfile(String packageName);
+
VpnConfig getVpnConfig(int userId);
@UnsupportedAppUsage
@@ -154,22 +163,23 @@ interface IConnectivityManager
void declareNetworkRequestUnfulfillable(in NetworkRequest request);
Network registerNetworkAgent(in Messenger messenger, in NetworkInfo ni, in LinkProperties lp,
- in NetworkCapabilities nc, int score, in NetworkAgentConfig config,
+ in NetworkCapabilities nc, in NetworkScore score, in NetworkAgentConfig config,
in int factorySerialNumber);
NetworkRequest requestNetwork(in NetworkCapabilities networkCapabilities,
- in Messenger messenger, int timeoutSec, in IBinder binder, int legacy);
+ in Messenger messenger, int timeoutSec, in IBinder binder, int legacy,
+ String callingPackageName);
NetworkRequest pendingRequestForNetwork(in NetworkCapabilities networkCapabilities,
- in PendingIntent operation);
+ in PendingIntent operation, String callingPackageName);
void releasePendingNetworkRequest(in PendingIntent operation);
NetworkRequest listenForNetwork(in NetworkCapabilities networkCapabilities,
- in Messenger messenger, in IBinder binder);
+ in Messenger messenger, in IBinder binder, String callingPackageName);
void pendingListenForNetwork(in NetworkCapabilities networkCapabilities,
- in PendingIntent operation);
+ in PendingIntent operation, String callingPackageName);
void releaseNetworkRequest(in NetworkRequest networkRequest);
@@ -213,7 +223,7 @@ interface IConnectivityManager
boolean isCallerCurrentAlwaysOnVpnLockdownApp();
void registerConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback,
- in NetworkRequest request);
+ in NetworkRequest request, String callingPackageName);
void unregisterConnectivityDiagnosticsCallback(in IConnectivityDiagnosticsCallback callback);
IBinder startOrGetTestNetworkService();
diff --git a/core/java/android/net/NetworkAgent.java b/core/java/android/net/NetworkAgent.java
index 7cc569a42b0b..ddf8dbbcb953 100644
--- a/core/java/android/net/NetworkAgent.java
+++ b/core/java/android/net/NetworkAgent.java
@@ -117,13 +117,6 @@ public abstract class NetworkAgent {
public static final int EVENT_NETWORK_PROPERTIES_CHANGED = BASE + 3;
/**
- * Centralize the place where base network score, and network score scaling, will be
- * stored, so as we can consistently compare apple and oranges, or wifi, ethernet and LTE
- * @hide
- */
- public static final int WIFI_BASE_SCORE = 60;
-
- /**
* Sent by the NetworkAgent to ConnectivityService to pass the current
* network score.
* obj = network score Integer
@@ -272,7 +265,13 @@ public abstract class NetworkAgent {
*/
public static final int CMD_REMOVE_KEEPALIVE_PACKET_FILTER = BASE + 17;
+ // STOPSHIP (b/148055573) : remove this before R is released.
+ private static NetworkScore makeNetworkScore(int score) {
+ return new NetworkScore.Builder().setLegacyScore(score).build();
+ }
+
/** @hide TODO: remove and replace usage with the public constructor. */
+ // STOPSHIP (b/148055573) : remove this before R is released.
public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
NetworkCapabilities nc, LinkProperties lp, int score) {
this(looper, context, logTag, ni, nc, lp, score, null, NetworkProvider.ID_NONE);
@@ -280,6 +279,7 @@ public abstract class NetworkAgent {
}
/** @hide TODO: remove and replace usage with the public constructor. */
+ // STOPSHIP (b/148055573) : remove this before R is released.
public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
NetworkCapabilities nc, LinkProperties lp, int score, NetworkAgentConfig config) {
this(looper, context, logTag, ni, nc, lp, score, config, NetworkProvider.ID_NONE);
@@ -287,6 +287,7 @@ public abstract class NetworkAgent {
}
/** @hide TODO: remove and replace usage with the public constructor. */
+ // STOPSHIP (b/148055573) : remove this before R is released.
public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
NetworkCapabilities nc, LinkProperties lp, int score, int providerId) {
this(looper, context, logTag, ni, nc, lp, score, null, providerId);
@@ -294,10 +295,12 @@ public abstract class NetworkAgent {
}
/** @hide TODO: remove and replace usage with the public constructor. */
+ // STOPSHIP (b/148055573) : remove this before R is released.
public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
NetworkCapabilities nc, LinkProperties lp, int score, NetworkAgentConfig config,
int providerId) {
- this(looper, context, logTag, nc, lp, score, config, providerId, ni, true /* legacy */);
+ this(looper, context, logTag, nc, lp, makeNetworkScore(score), config, providerId, ni,
+ true /* legacy */);
register();
}
@@ -323,8 +326,9 @@ public abstract class NetworkAgent {
* @param provider the {@link NetworkProvider} managing this agent.
*/
public NetworkAgent(@NonNull Context context, @NonNull Looper looper, @NonNull String logTag,
- @NonNull NetworkCapabilities nc, @NonNull LinkProperties lp, int score,
- @NonNull NetworkAgentConfig config, @Nullable NetworkProvider provider) {
+ @NonNull NetworkCapabilities nc, @NonNull LinkProperties lp,
+ @NonNull NetworkScore score, @NonNull NetworkAgentConfig config,
+ @Nullable NetworkProvider provider) {
this(looper, context, logTag, nc, lp, score, config,
provider == null ? NetworkProvider.ID_NONE : provider.getProviderId(),
getLegacyNetworkInfo(config), false /* legacy */);
@@ -334,12 +338,12 @@ public abstract class NetworkAgent {
public final Context context;
public final NetworkCapabilities capabilities;
public final LinkProperties properties;
- public final int score;
+ public final NetworkScore score;
public final NetworkAgentConfig config;
public final NetworkInfo info;
InitialConfiguration(@NonNull Context context, @NonNull NetworkCapabilities capabilities,
- @NonNull LinkProperties properties, int score, @NonNull NetworkAgentConfig config,
- @NonNull NetworkInfo info) {
+ @NonNull LinkProperties properties, @NonNull NetworkScore score,
+ @NonNull NetworkAgentConfig config, @NonNull NetworkInfo info) {
this.context = context;
this.capabilities = capabilities;
this.properties = properties;
@@ -351,7 +355,7 @@ public abstract class NetworkAgent {
private volatile InitialConfiguration mInitialConfiguration;
private NetworkAgent(@NonNull Looper looper, @NonNull Context context, @NonNull String logTag,
- @NonNull NetworkCapabilities nc, @NonNull LinkProperties lp, int score,
+ @NonNull NetworkCapabilities nc, @NonNull LinkProperties lp, NetworkScore score,
@NonNull NetworkAgentConfig config, int providerId, @NonNull NetworkInfo ni,
boolean legacy) {
mHandler = new NetworkAgentHandler(looper);
@@ -646,22 +650,8 @@ public abstract class NetworkAgent {
* Must be called by the agent to update the score of this network.
* @param score the new score.
*/
- public void sendNetworkScore(int score) {
- if (score < 0) {
- throw new IllegalArgumentException("Score must be >= 0");
- }
- final NetworkScore ns = new NetworkScore();
- ns.putIntExtension(NetworkScore.LEGACY_SCORE, score);
- updateScore(ns);
- }
-
- /**
- * Must be called by the agent when it has a new {@link NetworkScore} for this network.
- * @param ns the new score.
- * @hide TODO: unhide the NetworkScore class, and rename to sendNetworkScore.
- */
- public void updateScore(@NonNull NetworkScore ns) {
- queueOrSendMessage(EVENT_NETWORK_SCORE_CHANGED, new NetworkScore(ns));
+ public void sendNetworkScore(@NonNull final NetworkScore score) {
+ queueOrSendMessage(EVENT_NETWORK_SCORE_CHANGED, score);
}
/**
diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java
index 4f4e27b446ef..f8b51dd9906b 100644
--- a/core/java/android/net/NetworkCapabilities.java
+++ b/core/java/android/net/NetworkCapabilities.java
@@ -27,6 +27,7 @@ import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.Process;
+import android.text.TextUtils;
import android.util.ArraySet;
import android.util.proto.ProtoOutputStream;
@@ -63,6 +64,16 @@ public final class NetworkCapabilities implements Parcelable {
// Set to true when private DNS is broken.
private boolean mPrivateDnsBroken;
+ /**
+ * Uid of the app making the request.
+ */
+ private int mRequestorUid;
+
+ /**
+ * Package name of the app making the request.
+ */
+ private String mRequestorPackageName;
+
public NetworkCapabilities() {
clearAll();
mNetworkCapabilities = DEFAULT_CAPABILITIES;
@@ -89,6 +100,8 @@ public final class NetworkCapabilities implements Parcelable {
mOwnerUid = Process.INVALID_UID;
mSSID = null;
mPrivateDnsBroken = false;
+ mRequestorUid = Process.INVALID_UID;
+ mRequestorPackageName = null;
}
/**
@@ -109,6 +122,8 @@ public final class NetworkCapabilities implements Parcelable {
mUnwantedNetworkCapabilities = nc.mUnwantedNetworkCapabilities;
mSSID = nc.mSSID;
mPrivateDnsBroken = nc.mPrivateDnsBroken;
+ mRequestorUid = nc.mRequestorUid;
+ mRequestorPackageName = nc.mRequestorPackageName;
}
/**
@@ -810,7 +825,7 @@ public final class NetworkCapabilities implements Parcelable {
}
/**
- * UID of the app that owns this network, or INVALID_UID if none/unknown.
+ * UID of the app that owns this network, or Process#INVALID_UID if none/unknown.
*
* <p>This field keeps track of the UID of the app that created this network and is in charge of
* its lifecycle. This could be the UID of apps such as the Wifi network suggestor, the running
@@ -821,8 +836,9 @@ public final class NetworkCapabilities implements Parcelable {
/**
* Set the UID of the owner app.
*/
- public void setOwnerUid(final int uid) {
+ public @NonNull NetworkCapabilities setOwnerUid(final int uid) {
mOwnerUid = uid;
+ return this;
}
/**
@@ -858,16 +874,18 @@ public final class NetworkCapabilities implements Parcelable {
*
* <p>In general, user-supplied networks (such as WiFi networks) do not have an administrator.
*
- * <p>An app is granted owner privileges over Networks that it supplies. Owner privileges
- * implicitly include administrator privileges.
+ * <p>An app is granted owner privileges over Networks that it supplies. The owner UID MUST
+ * always be included in administratorUids.
*
* @param administratorUids the UIDs to be set as administrators of this Network.
* @hide
*/
@SystemApi
- public void setAdministratorUids(@NonNull final List<Integer> administratorUids) {
+ public @NonNull NetworkCapabilities setAdministratorUids(
+ @NonNull final List<Integer> administratorUids) {
mAdministratorUids.clear();
mAdministratorUids.addAll(administratorUids);
+ return this;
}
/**
@@ -1385,6 +1403,7 @@ public final class NetworkCapabilities implements Parcelable {
combineSignalStrength(nc);
combineUids(nc);
combineSSIDs(nc);
+ combineRequestor(nc);
}
/**
@@ -1404,7 +1423,8 @@ public final class NetworkCapabilities implements Parcelable {
&& satisfiedBySpecifier(nc)
&& (onlyImmutable || satisfiedBySignalStrength(nc))
&& (onlyImmutable || satisfiedByUids(nc))
- && (onlyImmutable || satisfiedBySSID(nc)));
+ && (onlyImmutable || satisfiedBySSID(nc)))
+ && (onlyImmutable || satisfiedByRequestor(nc));
}
/**
@@ -1488,7 +1508,7 @@ public final class NetworkCapabilities implements Parcelable {
public boolean equals(@Nullable Object obj) {
if (obj == null || (obj instanceof NetworkCapabilities == false)) return false;
NetworkCapabilities that = (NetworkCapabilities) obj;
- return (equalsNetCapabilities(that)
+ return equalsNetCapabilities(that)
&& equalsTransportTypes(that)
&& equalsLinkBandwidths(that)
&& equalsSignalStrength(that)
@@ -1496,7 +1516,8 @@ public final class NetworkCapabilities implements Parcelable {
&& equalsTransportInfo(that)
&& equalsUids(that)
&& equalsSSID(that)
- && equalsPrivateDnsBroken(that));
+ && equalsPrivateDnsBroken(that)
+ && equalsRequestor(that);
}
@Override
@@ -1514,7 +1535,9 @@ public final class NetworkCapabilities implements Parcelable {
+ Objects.hashCode(mUids) * 31
+ Objects.hashCode(mSSID) * 37
+ Objects.hashCode(mTransportInfo) * 41
- + Objects.hashCode(mPrivateDnsBroken) * 43;
+ + Objects.hashCode(mPrivateDnsBroken) * 43
+ + Objects.hashCode(mRequestorUid) * 47
+ + Objects.hashCode(mRequestorPackageName) * 53;
}
@Override
@@ -1537,6 +1560,8 @@ public final class NetworkCapabilities implements Parcelable {
dest.writeBoolean(mPrivateDnsBroken);
dest.writeList(mAdministratorUids);
dest.writeInt(mOwnerUid);
+ dest.writeInt(mRequestorUid);
+ dest.writeString(mRequestorPackageName);
}
public static final @android.annotation.NonNull Creator<NetworkCapabilities> CREATOR =
@@ -1559,6 +1584,8 @@ public final class NetworkCapabilities implements Parcelable {
netCap.mPrivateDnsBroken = in.readBoolean();
netCap.setAdministratorUids(in.readArrayList(null));
netCap.mOwnerUid = in.readInt();
+ netCap.mRequestorUid = in.readInt();
+ netCap.mRequestorPackageName = in.readString();
return netCap;
}
@Override
@@ -1624,6 +1651,9 @@ public final class NetworkCapabilities implements Parcelable {
sb.append(" Private DNS is broken");
}
+ sb.append(" RequestorUid: ").append(mRequestorUid);
+ sb.append(" RequestorPackageName: ").append(mRequestorPackageName);
+
sb.append("]");
return sb.toString();
}
@@ -1632,6 +1662,7 @@ public final class NetworkCapabilities implements Parcelable {
private interface NameOf {
String nameOf(int value);
}
+
/**
* @hide
*/
@@ -1799,4 +1830,120 @@ public final class NetworkCapabilities implements Parcelable {
private boolean equalsPrivateDnsBroken(NetworkCapabilities nc) {
return mPrivateDnsBroken == nc.mPrivateDnsBroken;
}
+
+ /**
+ * Set the uid of the app making the request.
+ *
+ * Note: This works only for {@link NetworkAgent} instances. Any capabilities passed in
+ * via the public {@link ConnectivityManager} API's will have this field overwritten.
+ *
+ * @param uid UID of the app.
+ * @hide
+ */
+ @SystemApi
+ public @NonNull NetworkCapabilities setRequestorUid(int uid) {
+ mRequestorUid = uid;
+ return this;
+ }
+
+ /**
+ * @return the uid of the app making the request.
+ *
+ * Note: This could return {@link Process#INVALID_UID} if the {@link NetworkRequest}
+ * object was not obtained from {@link ConnectivityManager}.
+ * @hide
+ */
+ public int getRequestorUid() {
+ return mRequestorUid;
+ }
+
+ /**
+ * Set the package name of the app making the request.
+ *
+ * Note: This works only for {@link NetworkAgent} instances. Any capabilities passed in
+ * via the public {@link ConnectivityManager} API's will have this field overwritten.
+ *
+ * @param packageName package name of the app.
+ * @hide
+ */
+ @SystemApi
+ public @NonNull NetworkCapabilities setRequestorPackageName(@NonNull String packageName) {
+ mRequestorPackageName = packageName;
+ return this;
+ }
+
+ /**
+ * @return the package name of the app making the request.
+ *
+ * Note: This could return {@code null} if the {@link NetworkRequest} object was not obtained
+ * from {@link ConnectivityManager}.
+ * @hide
+ */
+ @Nullable
+ public String getRequestorPackageName() {
+ return mRequestorPackageName;
+ }
+
+ /**
+ * Set the uid and package name of the app making the request.
+ *
+ * Note: This is intended to be only invoked from within connectivitiy service.
+ *
+ * @param uid UID of the app.
+ * @param packageName package name of the app.
+ * @hide
+ */
+ public @NonNull NetworkCapabilities setRequestorUidAndPackageName(
+ int uid, @NonNull String packageName) {
+ return setRequestorUid(uid).setRequestorPackageName(packageName);
+ }
+
+ /**
+ * Test whether the passed NetworkCapabilities satisfies the requestor restrictions of this
+ * capabilities.
+ *
+ * This method is called on the NetworkCapabilities embedded in a request with the
+ * capabilities of an available network. If the available network, sets a specific
+ * requestor (by uid and optionally package name), then this will only match a request from the
+ * same app. If either of the capabilities have an unset uid or package name, then it matches
+ * everything.
+ * <p>
+ * nc is assumed nonnull. Else, NPE.
+ */
+ private boolean satisfiedByRequestor(NetworkCapabilities nc) {
+ // No uid set, matches everything.
+ if (mRequestorUid == Process.INVALID_UID || nc.mRequestorUid == Process.INVALID_UID) {
+ return true;
+ }
+ // uids don't match.
+ if (mRequestorUid != nc.mRequestorUid) return false;
+ // No package names set, matches everything
+ if (null == nc.mRequestorPackageName || null == mRequestorPackageName) return true;
+ // check for package name match.
+ return TextUtils.equals(mRequestorPackageName, nc.mRequestorPackageName);
+ }
+
+ /**
+ * Combine requestor info of the capabilities.
+ * <p>
+ * This is only legal if either the requestor info of this object is reset, or both info are
+ * equal.
+ * nc is assumed nonnull.
+ */
+ private void combineRequestor(@NonNull NetworkCapabilities nc) {
+ if (mRequestorUid != Process.INVALID_UID && mRequestorUid != nc.mOwnerUid) {
+ throw new IllegalStateException("Can't combine two uids");
+ }
+ if (mRequestorPackageName != null
+ && !mRequestorPackageName.equals(nc.mRequestorPackageName)) {
+ throw new IllegalStateException("Can't combine two package names");
+ }
+ setRequestorUid(nc.mRequestorUid);
+ setRequestorPackageName(nc.mRequestorPackageName);
+ }
+
+ private boolean equalsRequestor(NetworkCapabilities nc) {
+ return mRequestorUid == nc.mRequestorUid
+ && TextUtils.equals(mRequestorPackageName, nc.mRequestorPackageName);
+ }
}
diff --git a/core/java/android/net/NetworkRequest.java b/core/java/android/net/NetworkRequest.java
index 301d20340643..964f13f39ec6 100644
--- a/core/java/android/net/NetworkRequest.java
+++ b/core/java/android/net/NetworkRequest.java
@@ -380,6 +380,7 @@ public class NetworkRequest implements Parcelable {
dest.writeInt(requestId);
dest.writeString(type.name());
}
+
public static final @android.annotation.NonNull Creator<NetworkRequest> CREATOR =
new Creator<NetworkRequest>() {
public NetworkRequest createFromParcel(Parcel in) {
@@ -494,6 +495,31 @@ public class NetworkRequest implements Parcelable {
return networkCapabilities.getNetworkSpecifier();
}
+ /**
+ * @return the uid of the app making the request.
+ *
+ * Note: This could return {@link Process#INVALID_UID} if the {@link NetworkRequest} object was
+ * not obtained from {@link ConnectivityManager}.
+ * @hide
+ */
+ @SystemApi
+ public int getRequestorUid() {
+ return networkCapabilities.getRequestorUid();
+ }
+
+ /**
+ * @return the package name of the app making the request.
+ *
+ * Note: This could return {@code null} if the {@link NetworkRequest} object was not obtained
+ * from {@link ConnectivityManager}.
+ * @hide
+ */
+ @SystemApi
+ @Nullable
+ public String getRequestorPackageName() {
+ return networkCapabilities.getRequestorPackageName();
+ }
+
public String toString() {
return "NetworkRequest [ " + type + " id=" + requestId +
(legacyType != ConnectivityManager.TYPE_NONE ? ", legacyType=" + legacyType : "") +
diff --git a/core/java/android/net/NetworkScore.aidl b/core/java/android/net/NetworkScore.aidl
new file mode 100644
index 000000000000..be9a98b24e74
--- /dev/null
+++ b/core/java/android/net/NetworkScore.aidl
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) 2020, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.net;
+
+parcelable NetworkScore;
diff --git a/core/java/android/net/NetworkScore.java b/core/java/android/net/NetworkScore.java
index 13f2994110a1..ae17378cfc4c 100644
--- a/core/java/android/net/NetworkScore.java
+++ b/core/java/android/net/NetworkScore.java
@@ -15,12 +15,18 @@
*/
package android.net;
+import android.annotation.IntDef;
+import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.SystemApi;
+import android.annotation.TestApi;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
import java.util.Objects;
/**
@@ -28,57 +34,392 @@ import java.util.Objects;
*
* A NetworkScore object represents the characteristics of a network that affects how good the
* network is considered for a particular use.
+ *
+ * This class is not thread-safe.
* @hide
*/
+@TestApi
+@SystemApi
public final class NetworkScore implements Parcelable {
+ /** An object containing scoring-relevant metrics for a network. */
+ public static class Metrics {
+ /** Value meaning the latency is unknown. */
+ public static final int LATENCY_UNKNOWN = -1;
+
+ /** Value meaning the bandwidth is unknown. */
+ public static final int BANDWIDTH_UNKNOWN = -1;
+
+ /**
+ * Round-trip delay in milliseconds to the relevant destination for this Metrics object.
+ *
+ * LATENCY_UNKNOWN if unknown.
+ */
+ @IntRange(from = LATENCY_UNKNOWN)
+ public final int latencyMs;
+
+ /**
+ * Downlink in kB/s with the relevant destination for this Metrics object.
+ *
+ * BANDWIDTH_UNKNOWN if unknown. If directional bandwidth is unknown, up and downlink
+ * bandwidth can have the same value.
+ */
+ @IntRange(from = BANDWIDTH_UNKNOWN)
+ public final int downlinkBandwidthKBps;
- // The key of bundle which is used to get the legacy network score of NetworkAgentInfo.
- // TODO: Remove this when the transition to NetworkScore is over.
- public static final String LEGACY_SCORE = "LEGACY_SCORE";
+ /**
+ * Uplink in kB/s with the relevant destination for this Metrics object.
+ *
+ * BANDWIDTH_UNKNOWN if unknown. If directional bandwidth is unknown, up and downlink
+ * bandwidth can have the same value.
+ */
+ @IntRange(from = BANDWIDTH_UNKNOWN)
+ public final int uplinkBandwidthKBps;
+
+ /** Constructor */
+ public Metrics(@IntRange(from = LATENCY_UNKNOWN) final int latency,
+ @IntRange(from = BANDWIDTH_UNKNOWN) final int downlinkBandwidth,
+ @IntRange(from = BANDWIDTH_UNKNOWN) final int uplinkBandwidth) {
+ latencyMs = latency;
+ downlinkBandwidthKBps = downlinkBandwidth;
+ uplinkBandwidthKBps = uplinkBandwidth;
+ }
+
+ /** toString */
+ public String toString() {
+ return "latency = " + latencyMs + " downlinkBandwidth = " + downlinkBandwidthKBps
+ + "uplinkBandwidth = " + uplinkBandwidthKBps;
+ }
+
+ @NonNull
+ public static final Metrics EMPTY =
+ new Metrics(LATENCY_UNKNOWN, BANDWIDTH_UNKNOWN, BANDWIDTH_UNKNOWN);
+ }
+
+ /** @hide */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef(flag = true, prefix = "POLICY_", value = {
+ POLICY_LOCKDOWN_VPN,
+ POLICY_VPN,
+ POLICY_IGNORE_ON_WIFI,
+ POLICY_DEFAULT_SUBSCRIPTION
+ })
+ public @interface Policy {
+ }
+
+ /**
+ * This network is a VPN with lockdown enabled.
+ *
+ * If a network with this bit is present in the list of candidates and not connected,
+ * no network can satisfy the request.
+ */
+ public static final int POLICY_LOCKDOWN_VPN = 1 << 0;
+
+ /**
+ * This network is a VPN.
+ *
+ * If a network with this bit is present and the request UID is included in the UID ranges
+ * of this network, it outscores all other networks without this bit.
+ */
+ public static final int POLICY_VPN = 1 << 1;
+
+ /**
+ * This network should not be used if a previously validated WiFi network is available.
+ *
+ * If a network with this bit is present and a previously validated WiFi is present too, the
+ * network with this bit is outscored by it. This stays true if the WiFi network
+ * becomes unvalidated : this network will not be considered.
+ */
+ public static final int POLICY_IGNORE_ON_WIFI = 1 << 2;
+
+ /**
+ * This network is the default subscription for this transport.
+ *
+ * If a network with this bit is present, other networks of the same transport without this
+ * bit are outscored by it. A device with two active subscriptions and a setting
+ * to decide the default one would have this policy bit on the network for the default
+ * subscription so that when both are active at the same time, the device chooses the
+ * network associated with the default subscription rather than the one with the best link
+ * quality (which will happen if policy doesn't dictate otherwise).
+ */
+ public static final int POLICY_DEFAULT_SUBSCRIPTION = 1 << 3;
+
+ /**
+ * Policy bits for this network. Filled in by the NetworkAgent.
+ */
+ private final int mPolicy;
+
+ /**
+ * Predicted metrics to the gateway (it contains latency and bandwidth to the gateway).
+ * This is filled by the NetworkAgent with the theoretical values of the link if available,
+ * although they may fill it with predictions from historical data if available.
+ * Note that while this member cannot be null, any and all of its members can be unknown.
+ */
@NonNull
- private final Bundle mExtensions;
+ private final Metrics mLinkLayerMetrics;
+
+ /**
+ * Predicted metrics to representative servers.
+ * This is filled by connectivity with (if available) a best-effort estimate of the performance
+ * information to servers the user connects to in similar circumstances, and predicted from
+ * actual measurements if possible.
+ * Note that while this member cannot be null, any and all of its members can be unknown.
+ */
+ @NonNull
+ private final Metrics mEndToEndMetrics;
+
+ /** Value meaning the signal strength is unknown. */
+ public static final int UNKNOWN_SIGNAL_STRENGTH = -1;
+
+ /** The smallest meaningful signal strength. */
+ public static final int MIN_SIGNAL_STRENGTH = 0;
+
+ /** The largest meaningful signal strength. */
+ public static final int MAX_SIGNAL_STRENGTH = 1000;
+
+ /**
+ * User-visible measure of the strength of the signal normalized 1~1000.
+ * This represents a measure of the signal strength for this network.
+ * If unknown, this has value UNKNOWN_SIGNAL_STRENGTH.
+ */
+ // A good way to populate this value is to fill it with the number of bars displayed in
+ // the system UI, scaled 0 to 1000. This is what the user sees and it makes sense to them.
+ // Cellular for example could quantize the ASU value (see SignalStrength#getAsuValue) into
+ // this, while WiFi could scale the RSSI (see WifiManager#calculateSignalLevel).
+ @IntRange(from = UNKNOWN_SIGNAL_STRENGTH, to = MAX_SIGNAL_STRENGTH)
+ private final int mSignalStrength;
+
+ /** @hide */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef(flag = true, prefix = "RANGE_", value = {
+ RANGE_UNKNOWN, RANGE_CLOSE, RANGE_SHORT, RANGE_MEDIUM, RANGE_LONG
+ })
+ public @interface Range {
+ }
+
+ /**
+ * The range of this network is not known.
+ * This can be used by VPN the range of which depends on the range of the underlying network.
+ */
+ public static final int RANGE_UNKNOWN = 0;
+
+ /**
+ * This network typically only operates at close range, like an NFC beacon.
+ */
+ public static final int RANGE_CLOSE = 1;
+
+ /**
+ * This network typically operates at a range of a few meters to a few dozen meters, like WiFi.
+ */
+ public static final int RANGE_SHORT = 2;
+
+ /**
+ * This network typically operates at a range of a few dozen to a few hundred meters, like CBRS.
+ */
+ public static final int RANGE_MEDIUM = 3;
+
+ /**
+ * This network typically offers continuous connectivity up to many kilometers away, like LTE.
+ */
+ public static final int RANGE_LONG = 4;
- public NetworkScore() {
- mExtensions = new Bundle();
+ /**
+ * The typical range of this networking technology.
+ *
+ * This is one of the RANGE_* constants and is filled by the NetworkAgent.
+ * This may be useful when evaluating how desirable a network is, because for two networks that
+ * have equivalent performance and cost, the one that won't lose IP continuity when the user
+ * moves is probably preferable.
+ * Agents should fill this with the largest typical range this technology provides. See the
+ * descriptions of the individual constants for guidance.
+ *
+ * If unknown, this is set to RANGE_UNKNOWN.
+ */
+ @Range private final int mRange;
+
+ /**
+ * A prediction of whether this network is likely to be unusable in a few seconds.
+ *
+ * NetworkAgents set this to true to mean they are aware that usability is limited due to
+ * low signal strength, congestion, or other reasons, and indicates that the system should
+ * only use this network as a last resort. An example would be a WiFi network when the device
+ * is about to move outside of range.
+ *
+ * This is filled by the NetworkAgent. Agents that don't know whether this network is likely
+ * to be unusable soon should set this to false.
+ */
+ private final boolean mExiting;
+
+ /**
+ * The legacy score, as a migration strategy from Q to R.
+ * STOPSHIP : remove this before R ships.
+ */
+ private final int mLegacyScore;
+
+ /**
+ * Create a new NetworkScore object.
+ */
+ private NetworkScore(@Policy final int policy, @Nullable final Metrics l2Perf,
+ @Nullable final Metrics e2ePerf,
+ @IntRange(from = UNKNOWN_SIGNAL_STRENGTH, to = MAX_SIGNAL_STRENGTH)
+ final int signalStrength,
+ @Range final int range, final boolean exiting, final int legacyScore) {
+ mPolicy = policy;
+ mLinkLayerMetrics = null != l2Perf ? l2Perf : Metrics.EMPTY;
+ mEndToEndMetrics = null != e2ePerf ? e2ePerf : Metrics.EMPTY;
+ mSignalStrength = signalStrength;
+ mRange = range;
+ mExiting = exiting;
+ mLegacyScore = legacyScore;
}
- public NetworkScore(@NonNull NetworkScore source) {
- mExtensions = new Bundle(source.mExtensions);
+ /**
+ * Utility function to return a copy of this with a different exiting value.
+ */
+ @NonNull public NetworkScore withExiting(final boolean exiting) {
+ return new NetworkScore(mPolicy, mLinkLayerMetrics, mEndToEndMetrics,
+ mSignalStrength, mRange, exiting, mLegacyScore);
}
/**
- * Put the value of parcelable inside the bundle by key.
+ * Utility function to return a copy of this with a different signal strength.
*/
- public void putExtension(@Nullable String key, @Nullable Parcelable value) {
- mExtensions.putParcelable(key, value);
+ @NonNull public NetworkScore withSignalStrength(
+ @IntRange(from = UNKNOWN_SIGNAL_STRENGTH) final int signalStrength) {
+ return new NetworkScore(mPolicy, mLinkLayerMetrics, mEndToEndMetrics,
+ signalStrength, mRange, mExiting, mLegacyScore);
}
/**
- * Put the value of int inside the bundle by key.
+ * Returns whether this network has a particular policy flag.
+ * @param policy the policy, as one of the POLICY_* constants.
*/
- public void putIntExtension(@Nullable String key, int value) {
- mExtensions.putInt(key, value);
+ public boolean hasPolicy(@Policy final int policy) {
+ return 0 != (mPolicy & policy);
}
/**
- * Get the value of non primitive type by key.
+ * Returns the Metrics representing the performance of the link layer.
+ *
+ * This contains the theoretical performance of the link, if available.
+ * Note that while this function cannot return null, any and/or all of the members of the
+ * returned object can be null if unknown.
*/
- public <T extends Parcelable> T getExtension(@Nullable String key) {
- return mExtensions.getParcelable(key);
+ @NonNull public Metrics getLinkLayerMetrics() {
+ return mLinkLayerMetrics;
}
/**
- * Get the value of int by key.
+ * Returns the Metrics representing the end-to-end performance of the network.
+ *
+ * This contains the end-to-end performance of the link, if available.
+ * Note that while this function cannot return null, any and/or all of the members of the
+ * returned object can be null if unknown.
*/
- public int getIntExtension(@Nullable String key) {
- return mExtensions.getInt(key);
+ @NonNull public Metrics getEndToEndMetrics() {
+ return mEndToEndMetrics;
}
/**
- * Remove the entry by given key.
+ * Returns the signal strength of this network normalized 0~1000, or UNKNOWN_SIGNAL_STRENGTH.
*/
- public void removeExtension(@Nullable String key) {
- mExtensions.remove(key);
+ @IntRange(from = UNKNOWN_SIGNAL_STRENGTH, to = MAX_SIGNAL_STRENGTH)
+ public int getSignalStrength() {
+ return mSignalStrength;
+ }
+
+ /**
+ * Returns the typical range of this network technology as one of the RANGE_* constants.
+ */
+ @Range public int getRange() {
+ return mRange;
+ }
+
+ /** Returns a prediction of whether this network is likely to be unusable in a few seconds. */
+ public boolean isExiting() {
+ return mExiting;
+ }
+
+ /**
+ * Get the legacy score.
+ * @hide
+ */
+ public int getLegacyScore() {
+ return mLegacyScore;
+ }
+
+ /** Builder for NetworkScore. */
+ public static class Builder {
+ private int mPolicy = 0;
+ @NonNull
+ private Metrics mLinkLayerMetrics = new Metrics(Metrics.LATENCY_UNKNOWN,
+ Metrics.BANDWIDTH_UNKNOWN, Metrics.BANDWIDTH_UNKNOWN);
+ @NonNull
+ private Metrics mEndToMetrics = new Metrics(Metrics.LATENCY_UNKNOWN,
+ Metrics.BANDWIDTH_UNKNOWN, Metrics.BANDWIDTH_UNKNOWN);
+ private int mSignalStrength = UNKNOWN_SIGNAL_STRENGTH;
+ private int mRange = RANGE_UNKNOWN;
+ private boolean mExiting = false;
+ private int mLegacyScore = 0;
+ @NonNull private Bundle mExtensions = new Bundle();
+
+ /** Create a new builder. */
+ public Builder() { }
+
+ /** Add a policy flag. */
+ @NonNull public Builder addPolicy(@Policy final int policy) {
+ mPolicy |= policy;
+ return this;
+ }
+
+ /** Clear a policy flag */
+ @NonNull public Builder clearPolicy(@Policy final int policy) {
+ mPolicy &= ~policy;
+ return this;
+ }
+
+ /** Set the link layer metrics. */
+ @NonNull public Builder setLinkLayerMetrics(@NonNull final Metrics linkLayerMetrics) {
+ mLinkLayerMetrics = linkLayerMetrics;
+ return this;
+ }
+
+ /** Set the end-to-end metrics. */
+ @NonNull public Builder setEndToEndMetrics(@NonNull final Metrics endToEndMetrics) {
+ mEndToMetrics = endToEndMetrics;
+ return this;
+ }
+
+ /** Set the signal strength. */
+ @NonNull public Builder setSignalStrength(
+ @IntRange(from = UNKNOWN_SIGNAL_STRENGTH, to = MAX_SIGNAL_STRENGTH)
+ final int signalStrength) {
+ mSignalStrength = signalStrength;
+ return this;
+ }
+
+ /** Set the range. */
+ @NonNull public Builder setRange(@Range final int range) {
+ mRange = range;
+ return this;
+ }
+
+ /** Set whether this network is exiting. */
+ @NonNull public Builder setExiting(final boolean exiting) {
+ mExiting = exiting;
+ return this;
+ }
+
+ /** Add a parcelable extension. */
+ @NonNull public Builder setLegacyScore(final int legacyScore) {
+ mLegacyScore = legacyScore;
+ return this;
+ }
+
+ /** Build the NetworkScore object represented by this builder. */
+ @NonNull public NetworkScore build() {
+ return new NetworkScore(mPolicy, mLinkLayerMetrics, mEndToMetrics,
+ mSignalStrength, mRange, mExiting, mLegacyScore);
+ }
}
@Override
@@ -88,9 +429,17 @@ public final class NetworkScore implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
- synchronized (this) {
- dest.writeBundle(mExtensions);
- }
+ dest.writeInt(mPolicy);
+ dest.writeInt(mLinkLayerMetrics.latencyMs);
+ dest.writeInt(mLinkLayerMetrics.downlinkBandwidthKBps);
+ dest.writeInt(mLinkLayerMetrics.uplinkBandwidthKBps);
+ dest.writeInt(mEndToEndMetrics.latencyMs);
+ dest.writeInt(mEndToEndMetrics.downlinkBandwidthKBps);
+ dest.writeInt(mEndToEndMetrics.uplinkBandwidthKBps);
+ dest.writeInt(mSignalStrength);
+ dest.writeInt(mRange);
+ dest.writeBoolean(mExiting);
+ dest.writeInt(mLegacyScore);
}
public static final @NonNull Creator<NetworkScore> CREATOR = new Creator<NetworkScore>() {
@@ -106,57 +455,52 @@ public final class NetworkScore implements Parcelable {
};
private NetworkScore(@NonNull Parcel in) {
- mExtensions = in.readBundle();
+ mPolicy = in.readInt();
+ mLinkLayerMetrics = new Metrics(in.readInt(), in.readInt(), in.readInt());
+ mEndToEndMetrics = new Metrics(in.readInt(), in.readInt(), in.readInt());
+ mSignalStrength = in.readInt();
+ mRange = in.readInt();
+ mExiting = in.readBoolean();
+ mLegacyScore = in.readInt();
}
- // TODO: Modify this method once new fields are added into this class.
@Override
public boolean equals(@Nullable Object obj) {
if (!(obj instanceof NetworkScore)) {
return false;
}
final NetworkScore other = (NetworkScore) obj;
- return bundlesEqual(mExtensions, other.mExtensions);
+ return mPolicy == other.mPolicy
+ && mLinkLayerMetrics.latencyMs == other.mLinkLayerMetrics.latencyMs
+ && mLinkLayerMetrics.uplinkBandwidthKBps
+ == other.mLinkLayerMetrics.uplinkBandwidthKBps
+ && mEndToEndMetrics.latencyMs == other.mEndToEndMetrics.latencyMs
+ && mEndToEndMetrics.uplinkBandwidthKBps
+ == other.mEndToEndMetrics.uplinkBandwidthKBps
+ && mSignalStrength == other.mSignalStrength
+ && mRange == other.mRange
+ && mExiting == other.mExiting
+ && mLegacyScore == other.mLegacyScore;
}
@Override
public int hashCode() {
- int result = 29;
- for (String key : mExtensions.keySet()) {
- final Object value = mExtensions.get(key);
- // The key may be null, so call Objects.hash() is safer.
- result += 31 * value.hashCode() + 37 * Objects.hash(key);
- }
- return result;
- }
-
- // mExtensions won't be null since the constructor will create it.
- private boolean bundlesEqual(@NonNull Bundle bundle1, @NonNull Bundle bundle2) {
- if (bundle1 == bundle2) {
- return true;
- }
-
- // This is unlikely but it's fine to add this clause here.
- if (null == bundle1 || null == bundle2) {
- return false;
- }
-
- if (bundle1.size() != bundle2.size()) {
- return false;
- }
-
- for (String key : bundle1.keySet()) {
- final Object value1 = bundle1.get(key);
- final Object value2 = bundle2.get(key);
- if (!Objects.equals(value1, value2)) {
- return false;
- }
- }
- return true;
+ return Objects.hash(mPolicy,
+ mLinkLayerMetrics.latencyMs, mLinkLayerMetrics.uplinkBandwidthKBps,
+ mEndToEndMetrics.latencyMs, mEndToEndMetrics.uplinkBandwidthKBps,
+ mSignalStrength, mRange, mExiting, mLegacyScore);
}
/** Convert to a string */
public String toString() {
- return "NetworkScore[" + mExtensions.toString() + "]";
+ return "NetworkScore ["
+ + "Policy = " + mPolicy
+ + " LinkLayerMetrics = " + mLinkLayerMetrics
+ + " EndToEndMetrics = " + mEndToEndMetrics
+ + " SignalStrength = " + mSignalStrength
+ + " Range = " + mRange
+ + " Exiting = " + mExiting
+ + " LegacyScore = " + mLegacyScore
+ + "]";
}
}
diff --git a/core/java/android/net/NetworkSpecifier.java b/core/java/android/net/NetworkSpecifier.java
index cf31d217c967..2dd0c4e207fe 100644
--- a/core/java/android/net/NetworkSpecifier.java
+++ b/core/java/android/net/NetworkSpecifier.java
@@ -39,23 +39,6 @@ public abstract class NetworkSpecifier {
/**
* Optional method which can be overridden by concrete implementations of NetworkSpecifier to
- * check a self-reported UID. A concrete implementation may contain a UID which would be self-
- * reported by the caller (since NetworkSpecifier implementations should be non-mutable). This
- * function is called by ConnectivityService and is passed the actual UID of the caller -
- * allowing the verification of the self-reported UID. In cases of mismatch the implementation
- * should throw a SecurityException.
- *
- * @param requestorUid The UID of the requestor as obtained from its binder.
- *
- * @hide
- */
- @SystemApi
- public void assertValidFromUid(int requestorUid) {
- // empty
- }
-
- /**
- * Optional method which can be overridden by concrete implementations of NetworkSpecifier to
* perform any redaction of information from the NetworkSpecifier, e.g. if it contains
* sensitive information. The default implementation simply returns the object itself - i.e.
* no information is redacted. A concrete implementation may return a modified (copy) of the
diff --git a/core/java/android/net/VpnManager.java b/core/java/android/net/VpnManager.java
index f95807a14f00..f19ba0f5ef51 100644
--- a/core/java/android/net/VpnManager.java
+++ b/core/java/android/net/VpnManager.java
@@ -18,10 +18,22 @@ package android.net;
import static com.android.internal.util.Preconditions.checkNotNull;
+import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.app.Activity;
+import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Resources;
+import android.os.RemoteException;
+
+import com.android.internal.net.VpnProfile;
+
+import java.io.IOException;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.security.GeneralSecurityException;
/**
* This class provides an interface for apps to manage platform VPN profiles
@@ -38,9 +50,30 @@ import android.content.Intent;
* @see Ikev2VpnProfile
*/
public class VpnManager {
+ /** Type representing a lack of VPN @hide */
+ public static final int TYPE_VPN_NONE = -1;
+ /** VPN service type code @hide */
+ public static final int TYPE_VPN_SERVICE = 1;
+ /** Platform VPN type code @hide */
+ public static final int TYPE_VPN_PLATFORM = 2;
+
+ /** @hide */
+ @IntDef(value = {TYPE_VPN_NONE, TYPE_VPN_SERVICE, TYPE_VPN_PLATFORM})
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface VpnType {}
+
@NonNull private final Context mContext;
@NonNull private final IConnectivityManager mService;
+ private static Intent getIntentForConfirmation() {
+ final Intent intent = new Intent();
+ final ComponentName componentName = ComponentName.unflattenFromString(
+ Resources.getSystem().getString(
+ com.android.internal.R.string.config_platformVpnConfirmDialogComponent));
+ intent.setComponent(componentName);
+ return intent;
+ }
+
/**
* Create an instance of the VpnManger with the given context.
*
@@ -57,18 +90,49 @@ public class VpnManager {
/**
* Install a VpnProfile configuration keyed on the calling app's package name.
*
- * @param profile the PlatformVpnProfile provided by this package. Will override any previous
- * PlatformVpnProfile stored for this package.
- * @return an intent to request user consent if needed (null otherwise).
+ * <p>This method returns {@code null} if user consent has already been granted, or an {@link
+ * Intent} to a system activity. If an intent is returned, the application should launch the
+ * activity using {@link Activity#startActivityForResult} to request user consent. The activity
+ * may pop up a dialog to require user action, and the result will come back via its {@link
+ * Activity#onActivityResult}. If the result is {@link Activity#RESULT_OK}, the user has
+ * consented, and the VPN profile can be started.
+ *
+ * @param profile the VpnProfile provided by this package. Will override any previous VpnProfile
+ * stored for this package.
+ * @return an Intent requesting user consent to start the VPN, or null if consent is not
+ * required based on privileges or previous user consent.
*/
@Nullable
public Intent provisionVpnProfile(@NonNull PlatformVpnProfile profile) {
- throw new UnsupportedOperationException("Not yet implemented");
+ final VpnProfile internalProfile;
+
+ try {
+ internalProfile = profile.toVpnProfile();
+ } catch (GeneralSecurityException | IOException e) {
+ // Conversion to VpnProfile failed; this is an invalid profile. Both of these exceptions
+ // indicate a failure to convert a PrivateKey or X509Certificate to a Base64 encoded
+ // string as required by the VpnProfile.
+ throw new IllegalArgumentException("Failed to serialize PlatformVpnProfile", e);
+ }
+
+ try {
+ // Profile can never be null; it either gets set, or an exception is thrown.
+ if (mService.provisionVpnProfile(internalProfile, mContext.getOpPackageName())) {
+ return null;
+ }
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ return getIntentForConfirmation();
}
/** Delete the VPN profile configuration that was provisioned by the calling app */
public void deleteProvisionedVpnProfile() {
- throw new UnsupportedOperationException("Not yet implemented");
+ try {
+ mService.deleteVpnProfile(mContext.getOpPackageName());
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
}
/**
@@ -78,11 +142,19 @@ public class VpnManager {
* setup, or if user consent has not been granted
*/
public void startProvisionedVpnProfile() {
- throw new UnsupportedOperationException("Not yet implemented");
+ try {
+ mService.startVpnProfile(mContext.getOpPackageName());
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
}
/** Tear down the VPN provided by the calling app (if any) */
public void stopProvisionedVpnProfile() {
- throw new UnsupportedOperationException("Not yet implemented");
+ try {
+ mService.stopVpnProfile(mContext.getOpPackageName());
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
}
}
diff --git a/core/java/android/net/VpnService.java b/core/java/android/net/VpnService.java
index 4b804b097d59..63e510733907 100644
--- a/core/java/android/net/VpnService.java
+++ b/core/java/android/net/VpnService.java
@@ -234,7 +234,7 @@ public class VpnService extends Service {
if (!cm.prepareVpn(packageName, null, userId)) {
cm.prepareVpn(null, packageName, userId);
}
- cm.setVpnPackageAuthorization(packageName, userId, true);
+ cm.setVpnPackageAuthorization(packageName, userId, VpnManager.TYPE_VPN_SERVICE);
} catch (RemoteException e) {
// ignore
}
diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java
index a90ab8564100..fe7c7c921b67 100644
--- a/core/java/android/os/Binder.java
+++ b/core/java/android/os/Binder.java
@@ -996,6 +996,18 @@ public class Binder implements IBinder {
return 0;
}
+ /** @hide */
+ @Override
+ public final native @Nullable IBinder getExtension();
+
+ /**
+ * Set the binder extension.
+ * This should be called immediately when the object is created.
+ *
+ * @hide
+ */
+ public final native void setExtension(@Nullable IBinder extension);
+
/**
* Default implementation rewinds the parcels and calls onTransact. On
* the remote side, transact calls into the binder to do the IPC.
diff --git a/core/java/android/os/BinderProxy.java b/core/java/android/os/BinderProxy.java
index ac70b523bcc1..be307ab4737d 100644
--- a/core/java/android/os/BinderProxy.java
+++ b/core/java/android/os/BinderProxy.java
@@ -455,6 +455,10 @@ public final class BinderProxy implements IBinder {
return null;
}
+ /** @hide */
+ @Override
+ public native @Nullable IBinder getExtension() throws RemoteException;
+
/**
* Perform a binder transaction on a proxy.
*
diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java
index a29173469ffb..70b2db70a9e8 100755
--- a/core/java/android/os/Build.java
+++ b/core/java/android/os/Build.java
@@ -240,6 +240,13 @@ public class Build {
public static final String RELEASE = getString("ro.build.version.release");
/**
+ * The version string we show to the user; may be {@link #RELEASE} or
+ * {@link #CODENAME} if not a final release build.
+ */
+ @NonNull public static final String RELEASE_OR_CODENAME = getString(
+ "ro.build.version.release_or_codename");
+
+ /**
* The base OS build the product is based on.
*/
public static final String BASE_OS = SystemProperties.get("ro.build.version.base_os", "");
diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java
index 44f12a6adf60..21a1e0f0a108 100644
--- a/core/java/android/os/Environment.java
+++ b/core/java/android/os/Environment.java
@@ -34,9 +34,11 @@ import android.text.TextUtils;
import android.util.Log;
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
+import java.util.List;
/**
* Provides access to environment variables.
@@ -539,12 +541,21 @@ public class Environment {
@SystemApi
public static @NonNull Collection<File> getInternalMediaDirectories() {
final ArrayList<File> res = new ArrayList<>();
- res.add(new File(Environment.getRootDirectory(), "media"));
- res.add(new File(Environment.getOemDirectory(), "media"));
- res.add(new File(Environment.getProductDirectory(), "media"));
+ addCanonicalFile(res, new File(Environment.getRootDirectory(), "media"));
+ addCanonicalFile(res, new File(Environment.getOemDirectory(), "media"));
+ addCanonicalFile(res, new File(Environment.getProductDirectory(), "media"));
return res;
}
+ private static void addCanonicalFile(List<File> list, File file) {
+ try {
+ list.add(file.getCanonicalFile());
+ } catch (IOException e) {
+ Log.w(TAG, "Failed to resolve " + file + ": " + e);
+ list.add(file);
+ }
+ }
+
/**
* Return the primary shared/external storage directory. This directory may
* not currently be accessible if it has been mounted by the user on their
diff --git a/core/java/android/os/IBinder.java b/core/java/android/os/IBinder.java
index f5fe9c3334bd..486ec2ab2b88 100644
--- a/core/java/android/os/IBinder.java
+++ b/core/java/android/os/IBinder.java
@@ -257,6 +257,18 @@ public interface IBinder {
@NonNull ResultReceiver resultReceiver) throws RemoteException;
/**
+ * Get the binder extension of this binder interface.
+ * This allows one to customize an interface without having to modify the original interface.
+ *
+ * @return null if don't have binder extension
+ * @throws RemoteException
+ * @hide
+ */
+ public default @Nullable IBinder getExtension() throws RemoteException {
+ throw new IllegalStateException("Method is not implemented");
+ }
+
+ /**
* Perform a generic operation with the object.
*
* @param code The action to perform. This should
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java
index 8daf6e8cc1e9..8d0946156044 100644
--- a/core/java/android/os/Process.java
+++ b/core/java/android/os/Process.java
@@ -113,6 +113,12 @@ public class Process {
public static final int KEYSTORE_UID = 1017;
/**
+ * Defines the UID/GID for credstore.
+ * @hide
+ */
+ public static final int CREDSTORE_UID = 1076;
+
+ /**
* Defines the UID/GID for the NFC service process.
* @hide
*/
diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java
index cdcb3ff94264..be2245820bb6 100644
--- a/core/java/android/os/RecoverySystem.java
+++ b/core/java/android/os/RecoverySystem.java
@@ -41,7 +41,6 @@ import android.text.TextUtils;
import android.text.format.DateFormat;
import android.util.Log;
import android.view.Display;
-import android.view.WindowManager;
import libcore.io.Streams;
@@ -615,8 +614,7 @@ public class RecoverySystem {
// On TV, reboot quiescently if the screen is off
if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK)) {
- WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
- if (wm.getDefaultDisplay().getState() != Display.STATE_ON) {
+ if (context.getDisplay().getState() != Display.STATE_ON) {
reason += ",quiescent";
}
}
diff --git a/core/java/android/os/TimestampedValue.java b/core/java/android/os/TimestampedValue.java
index f4c87ac9dfc9..4c4335bc7867 100644
--- a/core/java/android/os/TimestampedValue.java
+++ b/core/java/android/os/TimestampedValue.java
@@ -18,7 +18,6 @@ package android.os;
import android.annotation.NonNull;
import android.annotation.Nullable;
-import android.annotation.SystemApi;
import java.util.Objects;
@@ -36,7 +35,6 @@ import java.util.Objects;
* @param <T> the type of the value with an associated timestamp
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public final class TimestampedValue<T> implements Parcelable {
private final long mReferenceTimeMillis;
@Nullable
@@ -96,7 +94,6 @@ public final class TimestampedValue<T> implements Parcelable {
}
/** @hide */
- @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public static final @NonNull Parcelable.Creator<TimestampedValue<?>> CREATOR =
new Parcelable.ClassLoaderCreator<TimestampedValue<?>>() {
diff --git a/core/java/android/os/UpdateEngine.java b/core/java/android/os/UpdateEngine.java
index 73e1adf134f2..223f92054f79 100644
--- a/core/java/android/os/UpdateEngine.java
+++ b/core/java/android/os/UpdateEngine.java
@@ -19,6 +19,7 @@ package android.os;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.SystemApi;
+import android.annotation.WorkerThread;
import android.content.res.AssetFileDescriptor;
import android.os.IUpdateEngine;
import android.os.IUpdateEngineCallback;
@@ -478,7 +479,7 @@ public class UpdateEngine {
* </ul>
*/
@ErrorCode
- public int errorCode() {
+ public int getErrorCode() {
return mErrorCode;
}
@@ -492,14 +493,15 @@ public class UpdateEngine {
*
* @return The following values:
* <ul>
- * <li>zero if {@link #errorCode} returns {@link ErrorCodeConstants#SUCCESS}</li>
- * <li>non-zero if {@link #errorCode} returns {@link ErrorCodeConstants#NOT_ENOUGH_SPACE}.
+ * <li>zero if {@link #getErrorCode} returns {@link ErrorCodeConstants#SUCCESS}</li>
+ * <li>non-zero if {@link #getErrorCode} returns
+ * {@link ErrorCodeConstants#NOT_ENOUGH_SPACE}.
* Value is the estimated total space required on userdata partition.</li>
* </ul>
- * @throws IllegalStateException if {@link #errorCode} is not one of the above.
+ * @throws IllegalStateException if {@link #getErrorCode} is not one of the above.
*
*/
- public long freeSpaceRequired() {
+ public long getFreeSpaceRequired() {
if (mErrorCode == ErrorCodeConstants.SUCCESS) {
return 0;
}
@@ -507,7 +509,7 @@ public class UpdateEngine {
return mFreeSpaceRequired;
}
throw new IllegalStateException(String.format(
- "freeSpaceRequired() is not available when error code is %d", mErrorCode));
+ "getFreeSpaceRequired() is not available when error code is %d", mErrorCode));
}
}
@@ -531,8 +533,10 @@ public class UpdateEngine {
*
* @param payloadMetadataFilename See {@link #verifyPayloadMetadata}.
* @param headerKeyValuePairs See {@link #applyPayload}.
- * @return See {@link AllocateSpaceResult}.
+ * @return See {@link AllocateSpaceResult#getErrorCode} and
+ * {@link AllocateSpaceResult#getFreeSpaceRequired}.
*/
+ @WorkerThread
@NonNull
public AllocateSpaceResult allocateSpace(
@NonNull String payloadMetadataFilename,
@@ -583,6 +587,7 @@ public class UpdateEngine {
* @throws ServiceSpecificException if other transient errors has occurred.
* A reboot may or may not help resolving the issue.
*/
+ @WorkerThread
@ErrorCode
public int cleanupAppliedPayload() {
try {
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 3564589e35a4..6ed1d2c345f8 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -1775,9 +1775,10 @@ public class UserManager {
}
/**
- * Returns whether the context user's user is of the given user type, such as
- * {@link UserManager#USER_TYPE_FULL_GUEST}.
+ * Returns whether the context user is of the given user type.
*
+ * @param userType the name of the user's user type, e.g.
+ * {@link UserManager#USER_TYPE_PROFILE_MANAGED}.
* @return true if the user is of the given user type.
* @hide
*/
@@ -1793,26 +1794,6 @@ public class UserManager {
}
/**
- * Returns whether the given user is of the given user type, such as
- * {@link UserManager#USER_TYPE_FULL_GUEST}.
- *
- * @param userHandle the user handle of the user whose type is being requested.
- * @param userType the name of the user's user type, e.g.
- * {@link UserManager#USER_TYPE_PROFILE_MANAGED}.
- * @return true if the userHandle user is of type userType
- * @hide
- */
- @SystemApi
- @RequiresPermission(android.Manifest.permission.MANAGE_USERS)
- public boolean isUserOfType(@NonNull UserHandle userHandle, @NonNull String userType) {
- try {
- return mService.isUserOfType(userHandle.getIdentifier(), userType);
- } catch (RemoteException re) {
- throw re.rethrowFromSystemServer();
- }
- }
-
- /**
* Returns whether the user type is a
* {@link UserManager#USER_TYPE_PROFILE_MANAGED managed profile}.
* @hide
diff --git a/core/java/android/os/VibrationAttributes.java b/core/java/android/os/VibrationAttributes.java
index 3e16640895eb..27782fa74dab 100644
--- a/core/java/android/os/VibrationAttributes.java
+++ b/core/java/android/os/VibrationAttributes.java
@@ -391,11 +391,23 @@ public final class VibrationAttributes implements Parcelable {
* Replaces flags
* @param flags any combination of flags.
* @return the same Builder instance.
+ * @hide
*/
public @NonNull Builder replaceFlags(int flags) {
mFlags = flags;
return this;
}
+
+ /**
+ * Set flags
+ * @param flags combination of flags to be set.
+ * @param mask Bit range that should be changed.
+ * @return the same Builder instance.
+ */
+ public @NonNull Builder setFlags(int flags, int mask) {
+ mFlags = (mFlags & ~mask) | (flags & mask);
+ return this;
+ }
}
}
diff --git a/core/java/android/os/WorkSource.java b/core/java/android/os/WorkSource.java
index 7161b07cee3c..6adba63f42ce 100644
--- a/core/java/android/os/WorkSource.java
+++ b/core/java/android/os/WorkSource.java
@@ -149,7 +149,7 @@ public class WorkSource implements Parcelable {
}
/**
- * Returns the size of this work source.
+ * Returns the number of uids in this work source.
* @hide
*/
@TestApi
diff --git a/core/java/android/os/incremental/IIncrementalManagerNative.aidl b/core/java/android/os/incremental/IIncrementalService.aidl
index 2b6cd1478da8..21434a2aecba 100644
--- a/core/java/android/os/incremental/IIncrementalManagerNative.aidl
+++ b/core/java/android/os/incremental/IIncrementalService.aidl
@@ -20,7 +20,7 @@ import android.content.pm.DataLoaderParamsParcel;
import android.os.incremental.IncrementalNewFileParams;
/** @hide */
-interface IIncrementalManagerNative {
+interface IIncrementalService {
/**
* A set of flags for the |createMode| parameters when creating a new Incremental storage.
*/
diff --git a/core/java/android/os/incremental/IncrementalFileStorages.java b/core/java/android/os/incremental/IncrementalFileStorages.java
index a0bfc1bf56b8..987a53e337a0 100644
--- a/core/java/android/os/incremental/IncrementalFileStorages.java
+++ b/core/java/android/os/incremental/IncrementalFileStorages.java
@@ -17,31 +17,24 @@
package android.os.incremental;
/**
- * Set up files and directories used in an installation session.
- * Currently only used by Incremental Installation.
- * For Incremental installation, the expected outcome of this function is:
- * 0) All the files are in defaultStorage
- * 1) All APK files are in the same directory, bound to mApkStorage, and bound to the
- * InstallerSession's stage dir. The files are linked from mApkStorage to defaultStorage.
- * 2) All lib files are in the sub directories as their names suggest, and in the same parent
- * directory as the APK files. The files are linked from mApkStorage to defaultStorage.
- * 3) OBB files are in another directory that is different from APK files and lib files, bound
- * to mObbStorage. The files are linked from mObbStorage to defaultStorage.
+ * Set up files and directories used in an installation session. Currently only used by Incremental
+ * Installation. For Incremental installation, the expected outcome of this function is: 0) All the
+ * files are in defaultStorage 1) All APK files are in the same directory, bound to mApkStorage, and
+ * bound to the InstallerSession's stage dir. The files are linked from mApkStorage to
+ * defaultStorage. 2) All lib files are in the sub directories as their names suggest, and in the
+ * same parent directory as the APK files. The files are linked from mApkStorage to defaultStorage.
+ * 3) OBB files are in another directory that is different from APK files and lib files, bound to
+ * mObbStorage. The files are linked from mObbStorage to defaultStorage.
*
* @throws IllegalStateException the session is not an Incremental installation session.
*/
-import static dalvik.system.VMRuntime.getInstructionSet;
-
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.content.Context;
import android.content.pm.DataLoaderParams;
import android.content.pm.InstallationFile;
-import android.os.IVold;
-import android.os.Process;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.util.ArraySet;
+import android.text.TextUtils;
import android.util.Slog;
import java.io.File;
@@ -49,6 +42,8 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.List;
+import java.util.Objects;
import java.util.Random;
/**
@@ -57,185 +52,103 @@ import java.util.Random;
*/
public final class IncrementalFileStorages {
private static final String TAG = "IncrementalFileStorages";
+
+ private static final String TMP_DIR_ROOT = "/data/incremental/tmp";
+ private static final Random TMP_DIR_RANDOM = new Random();
+
private @Nullable IncrementalStorage mDefaultStorage;
- private @Nullable IncrementalStorage mApkStorage;
- private @Nullable IncrementalStorage mObbStorage;
private @Nullable String mDefaultDir;
- private @Nullable String mObbDir;
private @NonNull IncrementalManager mIncrementalManager;
- private @Nullable ArraySet<String> mLibDirs;
- private @NonNull String mPackageName;
private @NonNull File mStageDir;
/**
- * Set up files and directories used in an installation session.
- * Currently only used by Incremental Installation.
- * For Incremental installation, the expected outcome of this function is:
- * 0) All the files are in defaultStorage
- * 1) All APK files are in the same directory, bound to mApkStorage, and bound to the
- * InstallerSession's stage dir. The files are linked from mApkStorage to defaultStorage.
- * 2) All lib files are in the sub directories as their names suggest, and in the same parent
- * directory as the APK files. The files are linked from mApkStorage to defaultStorage.
- * 3) OBB files are in another directory that is different from APK files and lib files, bound
- * to mObbStorage. The files are linked from mObbStorage to defaultStorage.
+ * Set up files and directories used in an installation session. Only used by Incremental.
+ * All the files will be created in defaultStorage.
+ * TODO(b/133435829): code clean up
*
* @throws IllegalStateException the session is not an Incremental installation session.
+ * @throws IOException if fails to setup files or directories.
*/
- public IncrementalFileStorages(@NonNull String packageName,
+ public static IncrementalFileStorages initialize(Context context,
@NonNull File stageDir,
- @NonNull IncrementalManager incrementalManager,
- @NonNull DataLoaderParams dataLoaderParams) {
- mPackageName = packageName;
- mStageDir = stageDir;
- mIncrementalManager = incrementalManager;
- if (dataLoaderParams.getComponentName().getPackageName().equals("local")) {
- final String incrementalPath = dataLoaderParams.getArguments();
- mDefaultStorage = mIncrementalManager.openStorage(incrementalPath);
- mDefaultDir = incrementalPath;
- return;
- }
- mDefaultDir = getTempDir();
- if (mDefaultDir == null) {
- return;
- }
- mDefaultStorage = mIncrementalManager.createStorage(mDefaultDir,
- dataLoaderParams,
- IncrementalManager.CREATE_MODE_CREATE
- | IncrementalManager.CREATE_MODE_TEMPORARY_BIND, false);
- }
-
- /**
- * Adds a file into the installation session. Makes sure it will be placed inside
- * a proper storage instance, based on its file type.
- */
- public void addFile(@NonNull InstallationFile file) throws IOException {
- if (mDefaultStorage == null) {
- throw new IOException("Cannot add file because default storage does not exist");
- }
- if (file.getFileType() == InstallationFile.FILE_TYPE_APK) {
- addApkFile(file);
- } else if (file.getFileType() == InstallationFile.FILE_TYPE_OBB) {
- addObbFile(file);
- } else if (file.getFileType() == InstallationFile.FILE_TYPE_LIB) {
- addLibFile(file);
- } else {
- throw new IOException("Unknown file type: " + file.getFileType());
- }
- }
-
- private void addApkFile(@NonNull InstallationFile apk) throws IOException {
- // Create a storage for APK files and lib files
- final String stageDirPath = mStageDir.getAbsolutePath();
- if (mApkStorage == null) {
- mApkStorage = mIncrementalManager.createStorage(stageDirPath, mDefaultStorage,
- IncrementalManager.CREATE_MODE_CREATE
- | IncrementalManager.CREATE_MODE_TEMPORARY_BIND);
- mApkStorage.bind(stageDirPath);
+ @NonNull DataLoaderParams dataLoaderParams,
+ List<InstallationFile> addedFiles) throws IOException {
+ // TODO(b/136132412): sanity check if session should not be incremental
+ IncrementalManager incrementalManager = (IncrementalManager) context.getSystemService(
+ Context.INCREMENTAL_SERVICE);
+ if (incrementalManager == null) {
+ // TODO(b/146080380): add incremental-specific error code
+ throw new IOException("Failed to obtain incrementalManager.");
}
- if (!new File(mDefaultDir, apk.getName()).exists()) {
- mDefaultStorage.makeFile(apk.getName(), apk.getSize(), null,
- apk.getMetadata(), 0, null, null, null);
- }
- // Assuming APK files are already named properly, e.g., "base.apk"
- mDefaultStorage.makeLink(apk.getName(), mApkStorage, apk.getName());
- }
+ IncrementalFileStorages result = null;
+ try {
+ result = new IncrementalFileStorages(stageDir, incrementalManager, dataLoaderParams);
+ for (InstallationFile file : addedFiles) {
+ if (file.getFileType() == InstallationFile.FILE_TYPE_APK) {
+ try {
+ result.addApkFile(file);
+ } catch (IOException e) {
+ // TODO(b/146080380): add incremental-specific error code
+ throw new IOException(
+ "Failed to add and configure Incremental File: " + file.getName(),
+ e);
+ }
+ } else {
+ throw new IOException("Unknown file type: " + file.getFileType());
+ }
+ }
- private void addLibFile(@NonNull InstallationFile lib) throws IOException {
- // TODO(b/136132412): remove this after we have incfs support for lib file mapping
- if (mApkStorage == null) {
- throw new IOException("Cannot add lib file without adding an apk file first");
- }
- if (mLibDirs == null) {
- mLibDirs = new ArraySet<>();
- }
- String current = "";
- final Path libDirPath = Paths.get(lib.getName()).getParent();
- final int numDirComponents = libDirPath.getNameCount();
- for (int i = 0; i < numDirComponents; i++) {
- String dirName = libDirPath.getName(i).toString();
- try {
- dirName = getInstructionSet(dirName);
- } catch (IllegalArgumentException ignored) {
+ if (!result.mDefaultStorage.startLoading()) {
+ // TODO(b/146080380): add incremental-specific error code
+ throw new IOException("Failed to start loading data for Incremental installation.");
}
- current += dirName;
- if (!mLibDirs.contains(current)) {
- mDefaultStorage.makeDirectory(current);
- mApkStorage.makeDirectory(current);
- mLibDirs.add(current);
+
+ return result;
+ } catch (IOException e) {
+ if (result != null) {
+ result.cleanUp();
}
- current += '/';
+ throw e;
}
- String libFilePath = current + Paths.get(lib.getName()).getFileName();
- mDefaultStorage.makeFile(libFilePath, lib.getSize(), null, lib.getMetadata(), 0, null, null,
- null);
- mDefaultStorage.makeLink(libFilePath, mApkStorage, libFilePath);
}
- private void addObbFile(@NonNull InstallationFile obb) throws IOException {
- if (mObbStorage == null) {
- // Create a storage for OBB files
- mObbDir = getTempDir();
- if (mObbDir == null) {
- throw new IOException("Failed to create obb storage directory.");
+ private IncrementalFileStorages(@NonNull File stageDir,
+ @NonNull IncrementalManager incrementalManager,
+ @NonNull DataLoaderParams dataLoaderParams) throws IOException {
+ mStageDir = stageDir;
+ mIncrementalManager = incrementalManager;
+ if (dataLoaderParams.getComponentName().getPackageName().equals("local")) {
+ final String incrementalPath = dataLoaderParams.getArguments();
+ mDefaultDir = incrementalPath;
+ if (TextUtils.isEmpty(mDefaultDir)) {
+ throw new IOException("Failed to create storage: incrementalPath is empty");
+ }
+ mDefaultStorage = mIncrementalManager.openStorage(incrementalPath);
+ } else {
+ mDefaultDir = getTempDir();
+ if (mDefaultDir == null) {
+ throw new IOException("Failed to create storage: tempDir is empty");
}
- mObbStorage = mIncrementalManager.createStorage(
- mObbDir, mDefaultStorage,
+ mDefaultStorage = mIncrementalManager.createStorage(mDefaultDir,
+ dataLoaderParams,
IncrementalManager.CREATE_MODE_CREATE
- | IncrementalManager.CREATE_MODE_TEMPORARY_BIND);
+ | IncrementalManager.CREATE_MODE_TEMPORARY_BIND, false);
}
- mDefaultStorage.makeFile(obb.getName(), obb.getSize(), null, obb.getMetadata(), 0, null,
- null, null);
- mDefaultStorage.makeLink(obb.getName(), mObbStorage, obb.getName());
- }
-
- private boolean hasObb() {
- return (mObbStorage != null && mObbDir != null);
- }
- /**
- * Starts loading data for default storage.
- * TODO(b/136132412): update the implementation with latest API design.
- */
- public boolean startLoading() {
if (mDefaultStorage == null) {
- return false;
+ throw new IOException("Failed to create storage");
}
- return mDefaultStorage.startLoading();
}
- /**
- * Sets up obb storage directory and create bindings.
- */
- public void finishSetUp() {
- if (!hasObb()) {
- return;
- }
- final String obbDir = "/storage/emulated/0/Android/obb";
- final String packageObbDir = String.format("%s/%s", obbDir, mPackageName);
- final String packageObbDirRoot =
- String.format("/mnt/runtime/%s/emulated/0/Android/obb/", mPackageName);
- final String[] obbDirs = {
- packageObbDirRoot + "read",
- packageObbDirRoot + "write",
- packageObbDirRoot + "full",
- packageObbDirRoot + "default",
- String.format("/data/media/0/Android/obb/%s", mPackageName),
- packageObbDir,
- };
- try {
- Slog.i(TAG, "Creating obb directory '" + packageObbDir + "'");
- final IVold vold = IVold.Stub.asInterface(ServiceManager.getServiceOrThrow("vold"));
- vold.setupAppDir(packageObbDir, obbDir, Process.ROOT_UID);
- for (String d : obbDirs) {
- mObbStorage.bindPermanent(d);
- }
- } catch (ServiceManager.ServiceNotFoundException ex) {
- Slog.e(TAG, "vold service is not found.");
- cleanUp();
- } catch (IOException | RemoteException ex) {
- Slog.e(TAG, "Failed to create obb dir at: " + packageObbDir, ex);
- cleanUp();
+ private void addApkFile(@NonNull InstallationFile apk) throws IOException {
+ final String stageDirPath = mStageDir.getAbsolutePath();
+ mDefaultStorage.bind(stageDirPath);
+ String apkName = apk.getName();
+ File targetFile = Paths.get(stageDirPath, apkName).toFile();
+ if (!targetFile.exists()) {
+ mDefaultStorage.makeFile(apkName, apk.getSize(), null,
+ apk.getMetadata(), 0, null, null, null);
}
}
@@ -244,36 +157,21 @@ public final class IncrementalFileStorages {
* TODO(b/136132412): make sure unnecessary binds are removed but useful storages are kept
*/
public void cleanUp() {
- if (mDefaultStorage != null && mDefaultDir != null) {
- try {
- mDefaultStorage.unBind(mDefaultDir);
- } catch (IOException ignored) {
- }
- mDefaultDir = null;
- mDefaultStorage = null;
- }
- if (mApkStorage != null && mStageDir != null) {
- try {
- mApkStorage.unBind(mStageDir.getAbsolutePath());
- } catch (IOException ignored) {
- }
- mApkStorage = null;
- }
- if (mObbStorage != null && mObbDir != null) {
- try {
- mObbStorage.unBind(mObbDir);
- } catch (IOException ignored) {
- }
- mObbDir = null;
- mObbStorage = null;
+ Objects.requireNonNull(mDefaultStorage);
+
+ try {
+ mDefaultStorage.unBind(mDefaultDir);
+ mDefaultStorage.unBind(mStageDir.getAbsolutePath());
+ } catch (IOException ignored) {
}
+
+ mDefaultDir = null;
+ mDefaultStorage = null;
}
- private String getTempDir() {
- final String tmpDirRoot = "/data/incremental/tmp";
- final Random random = new Random();
- final Path tmpDir =
- Paths.get(tmpDirRoot, String.valueOf(random.nextInt(Integer.MAX_VALUE - 1)));
+ private static String getTempDir() {
+ final Path tmpDir = Paths.get(TMP_DIR_ROOT,
+ String.valueOf(TMP_DIR_RANDOM.nextInt(Integer.MAX_VALUE - 1)));
try {
Files.createDirectories(tmpDir);
} catch (Exception ex) {
diff --git a/core/java/android/os/incremental/IncrementalManager.java b/core/java/android/os/incremental/IncrementalManager.java
index 9c6672d8ab68..35fa37a491de 100644
--- a/core/java/android/os/incremental/IncrementalManager.java
+++ b/core/java/android/os/incremental/IncrementalManager.java
@@ -23,8 +23,6 @@ import android.annotation.SystemService;
import android.content.Context;
import android.content.pm.DataLoaderParams;
import android.os.RemoteException;
-import android.system.ErrnoException;
-import android.system.Os;
import android.util.SparseArray;
import com.android.internal.annotations.GuardedBy;
@@ -37,7 +35,7 @@ import java.nio.file.Path;
import java.nio.file.Paths;
/**
- * Provides operations to open or create an IncrementalStorage, using IIncrementalManagerNative
+ * Provides operations to open or create an IncrementalStorage, using IIncrementalService
* service. Example Usage:
*
* <blockquote><pre>
@@ -52,13 +50,13 @@ public final class IncrementalManager {
private static final String TAG = "IncrementalManager";
public static final int CREATE_MODE_TEMPORARY_BIND =
- IIncrementalManagerNative.CREATE_MODE_TEMPORARY_BIND;
+ IIncrementalService.CREATE_MODE_TEMPORARY_BIND;
public static final int CREATE_MODE_PERMANENT_BIND =
- IIncrementalManagerNative.CREATE_MODE_PERMANENT_BIND;
+ IIncrementalService.CREATE_MODE_PERMANENT_BIND;
public static final int CREATE_MODE_CREATE =
- IIncrementalManagerNative.CREATE_MODE_CREATE;
+ IIncrementalService.CREATE_MODE_CREATE;
public static final int CREATE_MODE_OPEN_EXISTING =
- IIncrementalManagerNative.CREATE_MODE_OPEN_EXISTING;
+ IIncrementalService.CREATE_MODE_OPEN_EXISTING;
@Retention(RetentionPolicy.SOURCE)
@IntDef(prefix = {"CREATE_MODE_"}, value = {
@@ -70,12 +68,12 @@ public final class IncrementalManager {
public @interface CreateMode {
}
- private final @Nullable IIncrementalManagerNative mNativeService;
+ private final @Nullable IIncrementalService mService;
@GuardedBy("mStorages")
private final SparseArray<IncrementalStorage> mStorages = new SparseArray<>();
- public IncrementalManager(IIncrementalManagerNative nativeService) {
- mNativeService = nativeService;
+ public IncrementalManager(IIncrementalService service) {
+ mService = service;
}
/**
@@ -108,11 +106,11 @@ public final class IncrementalManager {
@NonNull DataLoaderParams params, @CreateMode int createMode,
boolean autoStartDataLoader) {
try {
- final int id = mNativeService.createStorage(path, params.getData(), createMode);
+ final int id = mService.createStorage(path, params.getData(), createMode);
if (id < 0) {
return null;
}
- final IncrementalStorage storage = new IncrementalStorage(mNativeService, id);
+ final IncrementalStorage storage = new IncrementalStorage(mService, id);
synchronized (mStorages) {
mStorages.put(id, storage);
}
@@ -135,11 +133,11 @@ public final class IncrementalManager {
@Nullable
public IncrementalStorage openStorage(@NonNull String path) {
try {
- final int id = mNativeService.openStorage(path);
+ final int id = mService.openStorage(path);
if (id < 0) {
return null;
}
- final IncrementalStorage storage = new IncrementalStorage(mNativeService, id);
+ final IncrementalStorage storage = new IncrementalStorage(mService, id);
synchronized (mStorages) {
mStorages.put(id, storage);
}
@@ -158,12 +156,12 @@ public final class IncrementalManager {
public IncrementalStorage createStorage(@NonNull String path,
@NonNull IncrementalStorage linkedStorage, @CreateMode int createMode) {
try {
- final int id = mNativeService.createLinkedStorage(
+ final int id = mService.createLinkedStorage(
path, linkedStorage.getId(), createMode);
if (id < 0) {
return null;
}
- final IncrementalStorage storage = new IncrementalStorage(mNativeService, id);
+ final IncrementalStorage storage = new IncrementalStorage(mService, id);
synchronized (mStorages) {
mStorages.put(id, storage);
}
@@ -193,116 +191,54 @@ public final class IncrementalManager {
}
/**
- * Renames an Incremental path to a new path. If source path is a file, make a link from the old
- * Incremental file to the new one. If source path is a dir, unbind old dir from Incremental
- * Storage and bind the new one.
- * <ol>
- * <li> For renaming a dir, dest dir will be created if not exists, and does not need to
- * be on the same Incremental storage as the source. </li>
- * <li> For renaming a file, dest file must be on the same Incremental storage as source.
- * </li>
- * </ol>
+ * Set up an app's code path. The expected outcome of this method is:
+ * 1) The actual apk directory under /data/incremental is bind-mounted to the parent directory
+ * of {@code afterCodeFile}.
+ * 2) All the files under {@code beforeCodeFile} will show up under {@code afterCodeFile}.
*
- * @param sourcePath Absolute path to the source. Should be the same type as the destPath (file
- * or dir). Expected to already exist and is an Incremental path.
- * @param destPath Absolute path to the destination.
- * @throws IllegalArgumentException when 1) source does not exist, or 2) source and dest type
- * mismatch (one is file and the other is dir), or 3) source
- * path is not on Incremental File System,
- * @throws IOException when 1) cannot find the root path of the Incremental storage
- * of source, or 2) cannot retrieve the Incremental storage
- * instance of the source, or 3) renaming a file, but dest is
- * not on the same Incremental Storage, or 4) renaming a dir,
- * dest dir does not exist but fails to be created.
- * <p>
- * TODO(b/136132412): add unit tests
+ * @param beforeCodeFile Path that is currently bind-mounted and have APKs under it.
+ * Should no longer have any APKs after this method is called.
+ * Example: /data/app/vmdl*tmp
+ * @param afterCodeFile Path that should will have APKs after this method is called. Its parent
+ * directory should be bind-mounted to a directory under /data/incremental.
+ * Example: /data/app/~~[randomStringA]/[packageName]-[randomStringB]
+ * @throws IllegalArgumentException
+ * @throws IOException
+ * TODO(b/147371381): add unit tests
*/
- public void rename(@NonNull String sourcePath, @NonNull String destPath) throws IOException {
- final File source = new File(sourcePath);
- final File dest = new File(destPath);
- if (!source.exists()) {
- throw new IllegalArgumentException("Path not exist: " + sourcePath);
+ public void renameCodePath(File beforeCodeFile, File afterCodeFile)
+ throws IllegalArgumentException, IOException {
+ final String beforeCodePath = beforeCodeFile.getAbsolutePath();
+ final String afterCodePathParent = afterCodeFile.getParentFile().getAbsolutePath();
+ if (!isIncrementalPath(beforeCodePath)) {
+ throw new IllegalArgumentException("Not an Incremental path: " + beforeCodePath);
}
- if (dest.exists()) {
- throw new IllegalArgumentException("Target path already exists: " + destPath);
+ final String afterCodePathName = afterCodeFile.getName();
+ final Path apkStoragePath = Paths.get(beforeCodePath);
+ if (apkStoragePath == null || apkStoragePath.toAbsolutePath() == null) {
+ throw new IOException("Invalid source storage path for: " + beforeCodePath);
}
- if (source.isDirectory() && dest.exists() && dest.isFile()) {
- throw new IllegalArgumentException(
- "Trying to rename a dir but destination is a file: " + destPath);
- }
- if (source.isFile() && dest.exists() && dest.isDirectory()) {
- throw new IllegalArgumentException(
- "Trying to rename a file but destination is a dir: " + destPath);
- }
- if (!isIncrementalPath(sourcePath)) {
- throw new IllegalArgumentException("Not an Incremental path: " + sourcePath);
- }
-
- Path storagePath = Paths.get(sourcePath);
- if (source.isFile()) {
- storagePath = getStoragePathForFile(source);
- }
- if (storagePath == null || storagePath.toAbsolutePath() == null) {
- throw new IOException("Invalid source storage path for: " + sourcePath);
- }
- final IncrementalStorage storage = openStorage(storagePath.toAbsolutePath().toString());
- if (storage == null) {
+ final IncrementalStorage apkStorage =
+ openStorage(apkStoragePath.toAbsolutePath().toString());
+ if (apkStorage == null) {
throw new IOException("Failed to retrieve storage from Incremental Service.");
}
-
- if (source.isFile()) {
- renameFile(storage, storagePath, source, dest);
- } else {
- renameDir(storage, storagePath, source, dest);
- }
- }
-
- private void renameFile(IncrementalStorage storage, Path storagePath,
- File source, File dest) throws IOException {
- Path sourcePath = source.toPath();
- Path destPath = dest.toPath();
- if (!sourcePath.startsWith(storagePath)) {
- throw new IOException("Path: " + source.getAbsolutePath() + " is not on storage at: "
- + storagePath.toString());
- }
- if (!destPath.startsWith(storagePath)) {
- throw new IOException("Path: " + dest.getAbsolutePath() + " is not on storage at: "
- + storagePath.toString());
+ final IncrementalStorage linkedApkStorage = createStorage(afterCodePathParent, apkStorage,
+ IncrementalManager.CREATE_MODE_CREATE
+ | IncrementalManager.CREATE_MODE_PERMANENT_BIND);
+ if (linkedApkStorage == null) {
+ throw new IOException("Failed to create linked storage at dir: " + afterCodePathParent);
}
- final Path sourceRelativePath = storagePath.relativize(sourcePath);
- final Path destRelativePath = storagePath.relativize(destPath);
- storage.moveFile(sourceRelativePath.toString(), destRelativePath.toString());
-
- }
-
- private void renameDir(IncrementalStorage storage, Path storagePath,
- File source, File dest) throws IOException {
- Path destPath = dest.toPath();
- boolean usedMkdir = false;
- try {
- Os.mkdir(dest.getAbsolutePath(), 0755);
- usedMkdir = true;
- } catch (ErrnoException e) {
- // Traditional mkdir fails but maybe we can create it on Incremental File System if
- // the dest path is on the same Incremental storage as the source.
- if (destPath.startsWith(storagePath)) {
- storage.makeDirectories(storagePath.relativize(destPath).toString());
- } else {
- throw new IOException("Failed to create directory: " + dest.getAbsolutePath(), e);
- }
- }
- try {
- storage.moveDir(source.getAbsolutePath(), dest.getAbsolutePath());
- } catch (Exception ex) {
- if (usedMkdir) {
- try {
- Os.remove(dest.getAbsolutePath());
- } catch (ErrnoException ignored) {
- }
+ linkedApkStorage.makeDirectory(afterCodePathName);
+ File[] files = beforeCodeFile.listFiles();
+ for (int i = 0; i < files.length; i++) {
+ if (files[i].isFile()) {
+ String fileName = files[i].getName();
+ apkStorage.makeLink(
+ fileName, linkedApkStorage, afterCodePathName + "/" + fileName);
}
- throw new IOException(
- "Failed to move " + source.getAbsolutePath() + " to " + dest.getAbsolutePath());
}
+ apkStorage.unBind(beforeCodePath);
}
/**
@@ -311,11 +247,11 @@ public final class IncrementalManager {
*/
public void closeStorage(@NonNull String path) {
try {
- final int id = mNativeService.openStorage(path);
+ final int id = mService.openStorage(path);
if (id < 0) {
return;
}
- mNativeService.deleteStorage(id);
+ mService.deleteStorage(id);
synchronized (mStorages) {
mStorages.remove(id);
}
diff --git a/core/java/android/os/incremental/IncrementalStorage.java b/core/java/android/os/incremental/IncrementalStorage.java
index 91dda0899a63..c4b843b6ce33 100644
--- a/core/java/android/os/incremental/IncrementalStorage.java
+++ b/core/java/android/os/incremental/IncrementalStorage.java
@@ -40,10 +40,10 @@ import java.util.UUID;
public final class IncrementalStorage {
private static final String TAG = "IncrementalStorage";
private final int mId;
- private final IIncrementalManagerNative mService;
+ private final IIncrementalService mService;
- public IncrementalStorage(@NonNull IIncrementalManagerNative is, int id) {
+ public IncrementalStorage(@NonNull IIncrementalService is, int id) {
mService = is;
mId = id;
}
@@ -74,7 +74,7 @@ public final class IncrementalStorage {
throws IOException {
try {
int res = mService.makeBindMount(mId, sourcePath, targetPath,
- IIncrementalManagerNative.BIND_TEMPORARY);
+ IIncrementalService.BIND_TEMPORARY);
if (res < 0) {
throw new IOException("bind() failed with errno " + -res);
}
@@ -105,7 +105,7 @@ public final class IncrementalStorage {
throws IOException {
try {
int res = mService.makeBindMount(mId, sourcePath, targetPath,
- IIncrementalManagerNative.BIND_PERMANENT);
+ IIncrementalService.BIND_PERMANENT);
if (res < 0) {
throw new IOException("bind() permanent failed with errno " + -res);
}
@@ -174,9 +174,12 @@ public final class IncrementalStorage {
@Nullable byte[] metadata, int hashAlgorithm, @Nullable byte[] rootHash,
@Nullable byte[] additionalData, @Nullable byte[] signature) throws IOException {
try {
+ if (id == null && metadata == null) {
+ throw new IOException("File ID and metadata cannot both be null");
+ }
final IncrementalNewFileParams params = new IncrementalNewFileParams();
params.size = size;
- params.metadata = metadata;
+ params.metadata = (metadata == null ? new byte[0] : metadata);
params.fileId = idToBytes(id);
if (hashAlgorithm != 0 || signature != null) {
params.signature = new IncrementalSignature();
@@ -290,7 +293,7 @@ public final class IncrementalStorage {
}
try {
int res = mService.makeBindMount(mId, sourcePath, destPath,
- IIncrementalManagerNative.BIND_PERMANENT);
+ IIncrementalService.BIND_PERMANENT);
if (res < 0) {
throw new IOException("moveDir() failed at making bind mount, errno " + -res);
}
@@ -354,9 +357,10 @@ public final class IncrementalStorage {
* @param id The id to convert
* @return Byte array that contains the same ID.
*/
- public static byte[] idToBytes(UUID id) {
+ @NonNull
+ public static byte[] idToBytes(@Nullable UUID id) {
if (id == null) {
- return null;
+ return new byte[0];
}
final ByteBuffer buf = ByteBuffer.wrap(new byte[UUID_BYTE_SIZE]);
buf.putLong(id.getMostSignificantBits());
@@ -370,7 +374,8 @@ public final class IncrementalStorage {
* @param bytes The id in byte array format, 16 bytes long
* @return UUID constructed from the byte array.
*/
- public static UUID bytesToId(byte[] bytes) {
+ @NonNull
+ public static UUID bytesToId(byte[] bytes) throws IllegalArgumentException {
if (bytes.length != UUID_BYTE_SIZE) {
throw new IllegalArgumentException("Expected array of size " + UUID_BYTE_SIZE
+ ", got " + bytes.length);
diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java
index 3ea64f13fe6b..bb1dafc50484 100644
--- a/core/java/android/os/storage/StorageManager.java
+++ b/core/java/android/os/storage/StorageManager.java
@@ -2309,6 +2309,121 @@ public class StorageManager {
private static final String XATTR_CACHE_GROUP = "user.cache_group";
private static final String XATTR_CACHE_TOMBSTONE = "user.cache_tombstone";
+
+ // Matches AID_MEDIA_RW in android_filesystem_config.h
+ private static final int QUOTA_PROJECT_ID_MEDIA_NONE = 1023;
+
+ // Matches AID_MEDIA_IMAGE in android_filesystem_config.h
+ private static final int QUOTA_PROJECT_ID_MEDIA_IMAGE = 1057;
+
+ // Matches AID_MEDIA_AUDIO in android_filesystem_config.h
+ private static final int QUOTA_PROJECT_ID_MEDIA_AUDIO = 1055;
+
+ // Matches AID_MEDIA_VIDEO in android_filesystem_config.h
+ private static final int QUOTA_PROJECT_ID_MEDIA_VIDEO = 1056;
+
+ /**
+ * Constant for use with
+ * {@link #updateExternalStorageFileQuotaType(String, int)} (String, int)}, to indicate the file
+ * is not a media file.
+ *
+ * @hide
+ */
+ @SystemApi
+ public static final int QUOTA_TYPE_MEDIA_NONE = 0;
+
+ /**
+ * Constant for use with
+ * {@link #updateExternalStorageFileQuotaType(String, int)} (String, int)}, to indicate the file
+ * is an image file.
+ *
+ * @hide
+ */
+ @SystemApi
+ public static final int QUOTA_TYPE_MEDIA_IMAGE = 1;
+
+ /**
+ * Constant for use with
+ * {@link #updateExternalStorageFileQuotaType(String, int)} (String, int)}, to indicate the file
+ * is an audio file.
+ *
+ * @hide
+ */
+ @SystemApi
+ public static final int QUOTA_TYPE_MEDIA_AUDIO = 2;
+
+ /**
+ * Constant for use with
+ * {@link #updateExternalStorageFileQuotaType(String, int)} (String, int)}, to indicate the file
+ * is a video file.
+ *
+ * @hide
+ */
+ @SystemApi
+ public static final int QUOTA_TYPE_MEDIA_VIDEO = 3;
+
+ /** @hide */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef(prefix = { "QUOTA_TYPE_" }, value = {
+ QUOTA_TYPE_MEDIA_NONE,
+ QUOTA_TYPE_MEDIA_AUDIO,
+ QUOTA_TYPE_MEDIA_VIDEO,
+ QUOTA_TYPE_MEDIA_IMAGE,
+ })
+ public @interface QuotaType {}
+
+ private static native boolean setQuotaProjectId(String path, long projectId);
+
+ /**
+ * Let StorageManager know that the quota type for a file on external storage should
+ * be updated. Android tracks quotas for various media types. Consequently, this should be
+ * called on first creation of a new file on external storage, and whenever the
+ * media type of the file is updated later.
+ *
+ * This API doesn't require any special permissions, though typical implementations
+ * will require being called from an SELinux domain that allows setting file attributes
+ * related to quota (eg the GID or project ID).
+ *
+ * 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 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
+ public void updateExternalStorageFileQuotaType(@NonNull File path,
+ @QuotaType int quotaType) throws IOException {
+ long projectId;
+ final String filePath = path.getCanonicalPath();
+ switch (quotaType) {
+ case QUOTA_TYPE_MEDIA_NONE:
+ projectId = QUOTA_PROJECT_ID_MEDIA_NONE;
+ break;
+ case QUOTA_TYPE_MEDIA_AUDIO:
+ projectId = QUOTA_PROJECT_ID_MEDIA_AUDIO;
+ break;
+ case QUOTA_TYPE_MEDIA_VIDEO:
+ projectId = QUOTA_PROJECT_ID_MEDIA_VIDEO;
+ break;
+ case QUOTA_TYPE_MEDIA_IMAGE:
+ projectId = QUOTA_PROJECT_ID_MEDIA_IMAGE;
+ break;
+ default:
+ throw new IllegalArgumentException("Invalid quota type: " + quotaType);
+ }
+ if (!setQuotaProjectId(filePath, projectId)) {
+ throw new IOException("Failed to update quota type for " + filePath);
+ }
+ }
+
/** {@hide} */
private static void setCacheBehavior(File path, String name, boolean enabled)
throws IOException {
diff --git a/core/java/android/permission/PermissionManager.java b/core/java/android/permission/PermissionManager.java
index 4812ea98b569..d945b65c8522 100644
--- a/core/java/android/permission/PermissionManager.java
+++ b/core/java/android/permission/PermissionManager.java
@@ -93,7 +93,10 @@ public final class PermissionManager {
*/
@TestApi
@SystemApi
- @RequiresPermission(Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY)
+ @RequiresPermission(anyOf = {
+ Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY,
+ Manifest.permission.UPGRADE_RUNTIME_PERMISSIONS
+ })
public @IntRange(from = 0) int getRuntimePermissionsVersion() {
try {
return mPackageManager.getRuntimePermissionsVersion(mContext.getUserId());
@@ -111,7 +114,10 @@ public final class PermissionManager {
*/
@TestApi
@SystemApi
- @RequiresPermission(Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY)
+ @RequiresPermission(anyOf = {
+ Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY,
+ Manifest.permission.UPGRADE_RUNTIME_PERMISSIONS
+ })
public void setRuntimePermissionsVersion(@IntRange(from = 0) int version) {
try {
mPackageManager.setRuntimePermissionsVersion(version, mContext.getUserId());
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index e383a371eb41..146387e761d4 100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -2381,11 +2381,7 @@ public final class ContactsContract {
* This id is provided by its own data source, and can be used to backup metadata
* to the server.
* This should be unique within each set of account_name/account_type/data_set
- *
- * @deprecated This column is no longer supported as of Android version
- * {@link android.os.Build.VERSION_CODES#R}.
*/
- @Deprecated
public static final String BACKUP_ID = "backup_id";
/**
@@ -2450,8 +2446,8 @@ public final class ContactsContract {
* needs to be synchronized by the server.
* <P>Type: INTEGER (boolean)</P>
*
- * @deprecated This column is no longer supported as of Android version
- * {@link android.os.Build.VERSION_CODES#R}.
+ * @deprecated This column never actually worked since added. It will not supported as
+ * of Android version {@link android.os.Build.VERSION_CODES#R}.
*/
@Deprecated
public static final String METADATA_DIRTY = "metadata_dirty";
@@ -4196,8 +4192,8 @@ public final class ContactsContract {
* Hash id on the data fields, used for backup and restore.
*
* @hide
- * @deprecated This column is no longer supported as of Android version
- * {@link android.os.Build.VERSION_CODES#R}.
+ * @deprecated This column was never public since added. It will not be supported
+ * as of Android version {@link android.os.Build.VERSION_CODES#R}.
*/
@Deprecated
public static final String HASH_ID = "hash_id";
@@ -9506,8 +9502,8 @@ public final class ContactsContract {
/**
* @hide
- * @deprecated These columns are no longer supported as of Android version
- * {@link android.os.Build.VERSION_CODES#R}.
+ * @deprecated These columns were never public since added. They will not be supported
+ * as of Android version {@link android.os.Build.VERSION_CODES#R}.
*/
@Deprecated
@SystemApi
@@ -9616,8 +9612,8 @@ public final class ContactsContract {
* from server before it is merged into other CP2 tables.
*
* @hide
- * @deprecated These columns are no longer supported as of Android version
- * {@link android.os.Build.VERSION_CODES#R}.
+ * @deprecated These columns were never public since added. They will not be supported
+ * as of Android version {@link android.os.Build.VERSION_CODES#R}.
*/
@Deprecated
@SystemApi
diff --git a/core/java/android/provider/DeviceConfig.java b/core/java/android/provider/DeviceConfig.java
index 091d78e88c98..505d4ca4b399 100644
--- a/core/java/android/provider/DeviceConfig.java
+++ b/core/java/android/provider/DeviceConfig.java
@@ -383,6 +383,14 @@ public final class DeviceConfig {
*/
public static final String NAMESPACE_WIDGET = "widget";
+ /**
+ * Namespace for connectivity thermal power manager features.
+ *
+ * @hide
+ */
+ public static final String NAMESPACE_CONNECTIVITY_THERMAL_POWER_MANAGER =
+ "connectivity_thermal_power_manager";
+
private static final Object sLock = new Object();
@GuardedBy("sLock")
private static ArrayMap<OnPropertiesChangedListener, Pair<String, Executor>> sListeners =
diff --git a/core/java/android/provider/DocumentsContract.java b/core/java/android/provider/DocumentsContract.java
index bb1c8ed165c9..47f24615d60a 100644
--- a/core/java/android/provider/DocumentsContract.java
+++ b/core/java/android/provider/DocumentsContract.java
@@ -16,8 +16,6 @@
package android.provider;
-import static android.annotation.SystemApi.Client.MODULE_APPS;
-
import static com.android.internal.util.Preconditions.checkCollectionElementsNotNull;
import static com.android.internal.util.Preconditions.checkCollectionNotEmpty;
@@ -955,7 +953,7 @@ public final class DocumentsContract {
*
* @hide
*/
- @SystemApi(client = MODULE_APPS)
+ @SystemApi
@NonNull
public static Uri buildDocumentUriAsUser(
@NonNull String authority, @NonNull String documentId, @NonNull UserHandle user) {
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 605c585215a6..30e4eee08e8d 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -2417,6 +2417,10 @@ public final class Settings {
public static class NameValueTable implements BaseColumns {
public static final String NAME = "name";
public static final String VALUE = "value";
+ // A flag indicating whether the current value of a setting should be preserved during
+ // restore.
+ /** @hide */
+ public static final String IS_PRESERVED_IN_RESTORE = "is_preserved_in_restore";
protected static boolean putString(ContentResolver resolver, Uri uri,
String name, String value) {
@@ -14051,7 +14055,7 @@ public final class Settings {
* means Common Criteria mode is enabled.
* @hide
*/
- @SystemApi(client = SystemApi.Client.MODULE_APPS)
+ @SystemApi
public static final String COMMON_CRITERIA_MODE = "common_criteria_mode";
}
diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java
index b6f5138a6582..adfa885f121e 100644
--- a/core/java/android/provider/Telephony.java
+++ b/core/java/android/provider/Telephony.java
@@ -5205,6 +5205,7 @@ public final class Telephony {
/**
* TelephonyProvider column name for allowed network types. Indicate which network types
* are allowed. Default is -1.
+ * <P>Type: BIGINT (long) </P>
*/
public static final String ALLOWED_NETWORK_TYPES = "allowed_network_types";
}
diff --git a/core/java/android/service/autofill/Dataset.java b/core/java/android/service/autofill/Dataset.java
index 262d9896df87..886b433d4ade 100644
--- a/core/java/android/service/autofill/Dataset.java
+++ b/core/java/android/service/autofill/Dataset.java
@@ -322,6 +322,9 @@ public final class Dataset implements Parcelable {
* platform needs to fill in the authentication arguments.
*
* @param authentication Intent to an activity with your authentication flow.
+ *
+ * @throws IllegalStateException if {@link #build()} was already called.
+ *
* @return this builder.
*
* @see android.app.PendingIntent
@@ -349,6 +352,8 @@ public final class Dataset implements Parcelable {
*
* @param id id for this dataset or {@code null} to unset.
*
+ * @throws IllegalStateException if {@link #build()} was already called.
+ *
* @return this builder.
*/
public @NonNull Builder setId(@Nullable String id) {
@@ -378,6 +383,9 @@ public final class Dataset implements Parcelable {
* @param value value to be autofilled. Pass {@code null} if you do not have the value
* but the target view is a logical part of the dataset. For example, if
* the dataset needs authentication and you have no access to the value.
+ *
+ * @throws IllegalStateException if {@link #build()} was already called.
+ *
* @return this builder.
*/
public @NonNull Builder setValue(@NonNull AutofillId id, @Nullable AutofillValue value) {
@@ -403,8 +411,10 @@ public final class Dataset implements Parcelable {
* but the target view is a logical part of the dataset. For example, if
* the dataset needs authentication and you have no access to the value.
* @param presentation the presentation used to visualize this field.
- * @return this builder.
*
+ * @throws IllegalStateException if {@link #build()} was already called.
+ *
+ * @return this builder.
*/
public @NonNull Builder setValue(@NonNull AutofillId id, @Nullable AutofillValue value,
@NonNull RemoteViews presentation) {
@@ -439,7 +449,7 @@ public final class Dataset implements Parcelable {
*
* @return this builder.
* @throws IllegalStateException if the builder was constructed without a
- * {@link RemoteViews presentation}.
+ * {@link RemoteViews presentation} or {@link #build()} was already called.
*/
public @NonNull Builder setValue(@NonNull AutofillId id, @Nullable AutofillValue value,
@Nullable Pattern filter) {
@@ -475,6 +485,8 @@ public final class Dataset implements Parcelable {
* such as passwords).
* @param presentation the presentation used to visualize this field.
*
+ * @throws IllegalStateException if {@link #build()} was already called.
+ *
* @return this builder.
*/
public @NonNull Builder setValue(@NonNull AutofillId id, @Nullable AutofillValue value,
@@ -504,6 +516,8 @@ public final class Dataset implements Parcelable {
* as inline suggestions. If the dataset supports inline suggestions,
* this should not be null.
*
+ * @throws IllegalStateException if {@link #build()} was already called.
+ *
* @return this builder.
*/
public @NonNull Builder setValue(@NonNull AutofillId id, @Nullable AutofillValue value,
@@ -544,6 +558,8 @@ public final class Dataset implements Parcelable {
* as inline suggestions. If the dataset supports inline suggestions, this
* should not be null.
*
+ * @throws IllegalStateException if {@link #build()} was already called.
+ *
* @return this builder.
*/
public @NonNull Builder setValue(@NonNull AutofillId id, @Nullable AutofillValue value,
@@ -576,6 +592,8 @@ public final class Dataset implements Parcelable {
* as inline suggestions. If the dataset supports inline suggestions, this
* should not be null.
*
+ * @throws IllegalStateException if {@link #build()} was already called.
+ *
* @return this builder.
*
* @hide
@@ -628,7 +646,8 @@ public final class Dataset implements Parcelable {
* @throws IllegalStateException if no field was set (through
* {@link #setValue(AutofillId, AutofillValue)} or
* {@link #setValue(AutofillId, AutofillValue, RemoteViews)} or
- * {@link #setValue(AutofillId, AutofillValue, RemoteViews, InlinePresentation)}).
+ * {@link #setValue(AutofillId, AutofillValue, RemoteViews, InlinePresentation)}),
+ * or if {@link #build()} was already called.
*
* @return The built dataset.
*/
diff --git a/core/java/android/service/autofill/augmented/AugmentedAutofillService.java b/core/java/android/service/autofill/augmented/AugmentedAutofillService.java
index 6334d9d765c8..79852d3c0fca 100644
--- a/core/java/android/service/autofill/augmented/AugmentedAutofillService.java
+++ b/core/java/android/service/autofill/augmented/AugmentedAutofillService.java
@@ -39,6 +39,7 @@ import android.os.Looper;
import android.os.RemoteException;
import android.os.SystemClock;
import android.service.autofill.Dataset;
+import android.service.autofill.FillEventHistory;
import android.service.autofill.augmented.PresentationParams.SystemPopupPresentationParams;
import android.util.Log;
import android.util.Pair;
@@ -91,7 +92,7 @@ public abstract class AugmentedAutofillService extends Service {
// Used for metrics / debug only
private ComponentName mServiceComponentName;
- private final IAugmentedAutofillService mInterface = new IAugmentedAutofillService.Stub() {
+ private final class AugmentedAutofillServiceImpl extends IAugmentedAutofillService.Stub {
@Override
public void onConnected(boolean debug, boolean verbose) {
@@ -135,7 +136,7 @@ public abstract class AugmentedAutofillService extends Service {
public final IBinder onBind(Intent intent) {
mServiceComponentName = intent.getComponent();
if (SERVICE_INTERFACE.equals(intent.getAction())) {
- return mInterface.asBinder();
+ return new AugmentedAutofillServiceImpl();
}
Log.w(TAG, "Tried to bind to wrong intent (should be " + SERVICE_INTERFACE + ": " + intent);
return null;
@@ -319,17 +320,44 @@ public abstract class AugmentedAutofillService extends Service {
pw.print(getClass().getName()); pw.println(": nothing to dump");
}
+ /**
+ * Gets the inline augmented autofill events that happened after the last
+ * {@link #onFillRequest(FillRequest, CancellationSignal, FillController, FillCallback)} call.
+ *
+ * <p>The history is not persisted over reboots, and it's cleared every time the service
+ * replies to a
+ * {@link #onFillRequest(FillRequest, CancellationSignal, FillController, FillCallback)}
+ * by calling {@link FillCallback#onSuccess(FillResponse)}. Hence, the service should call
+ * {@link #getFillEventHistory() before finishing the {@link FillCallback}.
+ *
+ * <p>Also note that the events from the dropdown suggestion UI is not stored in the history
+ * since the service owns the UI.
+ *
+ * @return The history or {@code null} if there are no events.
+ */
+ @Nullable public final FillEventHistory getFillEventHistory() {
+ final AutofillManager afm = getSystemService(AutofillManager.class);
+
+ if (afm == null) {
+ return null;
+ } else {
+ return afm.getFillEventHistory();
+ }
+ }
+
/** @hide */
static final class AutofillProxy {
static final int REPORT_EVENT_NO_RESPONSE = 1;
static final int REPORT_EVENT_UI_SHOWN = 2;
static final int REPORT_EVENT_UI_DESTROYED = 3;
+ static final int REPORT_EVENT_INLINE_RESPONSE = 4;
@IntDef(prefix = { "REPORT_EVENT_" }, value = {
REPORT_EVENT_NO_RESPONSE,
REPORT_EVENT_UI_SHOWN,
- REPORT_EVENT_UI_DESTROYED
+ REPORT_EVENT_UI_DESTROYED,
+ REPORT_EVENT_INLINE_RESPONSE
})
@Retention(RetentionPolicy.SOURCE)
@interface ReportEvent{}
@@ -338,8 +366,8 @@ public abstract class AugmentedAutofillService extends Service {
private final Object mLock = new Object();
private final IAugmentedAutofillManagerClient mClient;
private final int mSessionId;
- public final int taskId;
- public final ComponentName componentName;
+ public final int mTaskId;
+ public final ComponentName mComponentName;
// Used for metrics / debug only
private String mServicePackageName;
@GuardedBy("mLock")
@@ -379,8 +407,8 @@ public abstract class AugmentedAutofillService extends Service {
mSessionId = sessionId;
mClient = IAugmentedAutofillManagerClient.Stub.asInterface(client);
mCallback = callback;
- this.taskId = taskId;
- this.componentName = componentName;
+ mTaskId = taskId;
+ mComponentName = componentName;
mServicePackageName = serviceComponentName.getPackageName();
mFocusedId = focusedId;
mFocusedValue = focusedValue;
@@ -487,21 +515,24 @@ public abstract class AugmentedAutofillService extends Service {
}
}
- public void onInlineSuggestionsDataReady(@NonNull List<Dataset> inlineSuggestionsData) {
+ void reportResult(@Nullable List<Dataset> inlineSuggestionsData) {
try {
- mCallback.onSuccess(inlineSuggestionsData.toArray(new Dataset[]{}));
+ final Dataset[] inlineSuggestions = (inlineSuggestionsData != null)
+ ? inlineSuggestionsData.toArray(new Dataset[inlineSuggestionsData.size()])
+ : null;
+ mCallback.onSuccess(inlineSuggestions);
} catch (RemoteException e) {
Log.e(TAG, "Error calling back with the inline suggestions data: " + e);
}
}
- // Used (mostly) for metrics.
- public void report(@ReportEvent int event) {
- if (sVerbose) Log.v(TAG, "report(): " + event);
+ void logEvent(@ReportEvent int event) {
+ if (sVerbose) Log.v(TAG, "returnAndLogResult(): " + event);
long duration = -1;
int type = MetricsEvent.TYPE_UNKNOWN;
+
switch (event) {
- case REPORT_EVENT_NO_RESPONSE:
+ case REPORT_EVENT_NO_RESPONSE: {
type = MetricsEvent.TYPE_SUCCESS;
if (mFirstOnSuccessTime == 0) {
mFirstOnSuccessTime = SystemClock.elapsedRealtime();
@@ -510,39 +541,49 @@ public abstract class AugmentedAutofillService extends Service {
Log.d(TAG, "Service responded nothing in " + formatDuration(duration));
}
}
- try {
- mCallback.onSuccess(/* mInlineSuggestionsData= */null);
- } catch (RemoteException e) {
- Log.e(TAG, "Error reporting success: " + e);
+ } break;
+
+ case REPORT_EVENT_INLINE_RESPONSE: {
+ // TODO: Define a constant and log this event
+ // type = MetricsEvent.TYPE_SUCCESS_INLINE;
+ if (mFirstOnSuccessTime == 0) {
+ mFirstOnSuccessTime = SystemClock.elapsedRealtime();
+ duration = mFirstOnSuccessTime - mFirstRequestTime;
+ if (sDebug) {
+ Log.d(TAG, "Service responded nothing in " + formatDuration(duration));
+ }
}
- break;
- case REPORT_EVENT_UI_SHOWN:
+ } break;
+
+ case REPORT_EVENT_UI_SHOWN: {
type = MetricsEvent.TYPE_OPEN;
if (mUiFirstShownTime == 0) {
mUiFirstShownTime = SystemClock.elapsedRealtime();
duration = mUiFirstShownTime - mFirstRequestTime;
if (sDebug) Log.d(TAG, "UI shown in " + formatDuration(duration));
}
- break;
- case REPORT_EVENT_UI_DESTROYED:
+ } break;
+
+ case REPORT_EVENT_UI_DESTROYED: {
type = MetricsEvent.TYPE_CLOSE;
if (mUiFirstDestroyedTime == 0) {
mUiFirstDestroyedTime = SystemClock.elapsedRealtime();
- duration = mUiFirstDestroyedTime - mFirstRequestTime;
+ duration = mUiFirstDestroyedTime - mFirstRequestTime;
if (sDebug) Log.d(TAG, "UI destroyed in " + formatDuration(duration));
}
- break;
+ } break;
+
default:
Log.w(TAG, "invalid event reported: " + event);
}
- logResponse(type, mServicePackageName, componentName, mSessionId, duration);
+ logResponse(type, mServicePackageName, mComponentName, mSessionId, duration);
}
public void dump(@NonNull String prefix, @NonNull PrintWriter pw) {
pw.print(prefix); pw.print("sessionId: "); pw.println(mSessionId);
- pw.print(prefix); pw.print("taskId: "); pw.println(taskId);
+ pw.print(prefix); pw.print("taskId: "); pw.println(mTaskId);
pw.print(prefix); pw.print("component: ");
- pw.println(componentName.flattenToShortString());
+ pw.println(mComponentName.flattenToShortString());
pw.print(prefix); pw.print("focusedId: "); pw.println(mFocusedId);
if (mFocusedValue != null) {
pw.print(prefix); pw.print("focusedValue: "); pw.println(mFocusedValue);
diff --git a/core/java/android/service/autofill/augmented/FillCallback.java b/core/java/android/service/autofill/augmented/FillCallback.java
index b767799847d7..19eff57269ae 100644
--- a/core/java/android/service/autofill/augmented/FillCallback.java
+++ b/core/java/android/service/autofill/augmented/FillCallback.java
@@ -54,13 +54,15 @@ public final class FillCallback {
if (sDebug) Log.d(TAG, "onSuccess(): " + response);
if (response == null) {
- mProxy.report(AutofillProxy.REPORT_EVENT_NO_RESPONSE);
+ mProxy.logEvent(AutofillProxy.REPORT_EVENT_NO_RESPONSE);
+ mProxy.reportResult(null /*inlineSuggestions*/);
return;
}
List<Dataset> inlineSuggestions = response.getInlineSuggestions();
if (inlineSuggestions != null && !inlineSuggestions.isEmpty()) {
- mProxy.onInlineSuggestionsDataReady(inlineSuggestions);
+ mProxy.logEvent(AutofillProxy.REPORT_EVENT_INLINE_RESPONSE);
+ mProxy.reportResult(inlineSuggestions);
return;
}
diff --git a/core/java/android/service/autofill/augmented/FillController.java b/core/java/android/service/autofill/augmented/FillController.java
index 63ec2d886caf..7d552d62fa72 100644
--- a/core/java/android/service/autofill/augmented/FillController.java
+++ b/core/java/android/service/autofill/augmented/FillController.java
@@ -62,12 +62,13 @@ public final class FillController {
try {
mProxy.autofill(values);
- final FillWindow fillWindow = mProxy.getFillWindow();
- if (fillWindow != null) {
- fillWindow.destroy();
- }
} catch (RemoteException e) {
e.rethrowAsRuntimeException();
}
+
+ final FillWindow fillWindow = mProxy.getFillWindow();
+ if (fillWindow != null) {
+ fillWindow.destroy();
+ }
}
}
diff --git a/core/java/android/service/autofill/augmented/FillRequest.java b/core/java/android/service/autofill/augmented/FillRequest.java
index ca49e7daf054..6927cf6541e0 100644
--- a/core/java/android/service/autofill/augmented/FillRequest.java
+++ b/core/java/android/service/autofill/augmented/FillRequest.java
@@ -53,7 +53,7 @@ public final class FillRequest {
* Gets the task of the activity associated with this request.
*/
public int getTaskId() {
- return mProxy.taskId;
+ return mProxy.mTaskId;
}
/**
@@ -61,7 +61,7 @@ public final class FillRequest {
*/
@NonNull
public ComponentName getActivityComponent() {
- return mProxy.componentName;
+ return mProxy.mComponentName;
}
/**
diff --git a/core/java/android/service/autofill/augmented/FillResponse.java b/core/java/android/service/autofill/augmented/FillResponse.java
index e8e6ff05da03..68ba63ac35a8 100644
--- a/core/java/android/service/autofill/augmented/FillResponse.java
+++ b/core/java/android/service/autofill/augmented/FillResponse.java
@@ -19,6 +19,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.TestApi;
+import android.os.Bundle;
import android.service.autofill.Dataset;
import com.android.internal.util.DataClass;
@@ -50,6 +51,13 @@ public final class FillResponse {
@DataClass.PluralOf("inlineSuggestion")
private @Nullable List<Dataset> mInlineSuggestions;
+ /**
+ * The client state that {@link AugmentedAutofillService} implementation can put anything in to
+ * identify the request and the response when calling
+ * {@link AugmentedAutofillService#getFillEventHistory()}.
+ */
+ private @Nullable Bundle mClientState;
+
private static FillWindow defaultFillWindow() {
return null;
}
@@ -58,6 +66,10 @@ public final class FillResponse {
return null;
}
+ private static Bundle defaultClientState() {
+ return null;
+ }
+
/** @hide */
abstract static class BaseBuilder {
@@ -82,9 +94,11 @@ public final class FillResponse {
@DataClass.Generated.Member
/* package-private */ FillResponse(
@Nullable FillWindow fillWindow,
- @Nullable List<Dataset> inlineSuggestions) {
+ @Nullable List<Dataset> inlineSuggestions,
+ @Nullable Bundle clientState) {
this.mFillWindow = fillWindow;
this.mInlineSuggestions = inlineSuggestions;
+ this.mClientState = clientState;
// onConstructed(); // You can define this method to get a callback
}
@@ -111,6 +125,18 @@ public final class FillResponse {
}
/**
+ * The client state that {@link AugmentedAutofillService} implementation can put anything in to
+ * identify the request and the response when calling
+ * {@link AugmentedAutofillService#getFillEventHistory()}.
+ *
+ * @hide
+ */
+ @DataClass.Generated.Member
+ public @Nullable Bundle getClientState() {
+ return mClientState;
+ }
+
+ /**
* A builder for {@link FillResponse}
*/
@SuppressWarnings("WeakerAccess")
@@ -119,6 +145,7 @@ public final class FillResponse {
private @Nullable FillWindow mFillWindow;
private @Nullable List<Dataset> mInlineSuggestions;
+ private @Nullable Bundle mClientState;
private long mBuilderFieldsSet = 0L;
@@ -157,10 +184,23 @@ public final class FillResponse {
return this;
}
+ /**
+ * The client state that {@link AugmentedAutofillService} implementation can put anything in to
+ * identify the request and the response when calling
+ * {@link AugmentedAutofillService#getFillEventHistory()}.
+ */
+ @DataClass.Generated.Member
+ public @NonNull Builder setClientState(@Nullable Bundle value) {
+ checkNotUsed();
+ mBuilderFieldsSet |= 0x4;
+ mClientState = value;
+ return this;
+ }
+
/** Builds the instance. This builder should not be touched after calling this! */
public @NonNull FillResponse build() {
checkNotUsed();
- mBuilderFieldsSet |= 0x4; // Mark builder used
+ mBuilderFieldsSet |= 0x8; // Mark builder used
if ((mBuilderFieldsSet & 0x1) == 0) {
mFillWindow = defaultFillWindow();
@@ -168,14 +208,18 @@ public final class FillResponse {
if ((mBuilderFieldsSet & 0x2) == 0) {
mInlineSuggestions = defaultInlineSuggestions();
}
+ if ((mBuilderFieldsSet & 0x4) == 0) {
+ mClientState = defaultClientState();
+ }
FillResponse o = new FillResponse(
mFillWindow,
- mInlineSuggestions);
+ mInlineSuggestions,
+ mClientState);
return o;
}
private void checkNotUsed() {
- if ((mBuilderFieldsSet & 0x4) != 0) {
+ if ((mBuilderFieldsSet & 0x8) != 0) {
throw new IllegalStateException(
"This Builder should not be reused. Use a new Builder instance instead");
}
@@ -183,10 +227,10 @@ public final class FillResponse {
}
@DataClass.Generated(
- time = 1577476012370L,
+ time = 1580335256422L,
codegenVersion = "1.0.14",
sourceFile = "frameworks/base/core/java/android/service/autofill/augmented/FillResponse.java",
- inputSignatures = "private @android.annotation.Nullable android.service.autofill.augmented.FillWindow mFillWindow\nprivate @com.android.internal.util.DataClass.PluralOf(\"inlineSuggestion\") @android.annotation.Nullable java.util.List<android.service.autofill.Dataset> mInlineSuggestions\nprivate static android.service.autofill.augmented.FillWindow defaultFillWindow()\nprivate static java.util.List<android.service.autofill.Dataset> defaultInlineSuggestions()\nclass FillResponse extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genBuilder=true, genHiddenGetters=true)\nabstract android.service.autofill.augmented.FillResponse.Builder addInlineSuggestion(android.service.autofill.Dataset)\nclass BaseBuilder extends java.lang.Object implements []")
+ inputSignatures = "private @android.annotation.Nullable android.service.autofill.augmented.FillWindow mFillWindow\nprivate @com.android.internal.util.DataClass.PluralOf(\"inlineSuggestion\") @android.annotation.Nullable java.util.List<android.service.autofill.Dataset> mInlineSuggestions\nprivate @android.annotation.Nullable android.os.Bundle mClientState\nprivate static android.service.autofill.augmented.FillWindow defaultFillWindow()\nprivate static java.util.List<android.service.autofill.Dataset> defaultInlineSuggestions()\nprivate static android.os.Bundle defaultClientState()\nclass FillResponse extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genBuilder=true, genHiddenGetters=true)\nabstract android.service.autofill.augmented.FillResponse.Builder addInlineSuggestion(android.service.autofill.Dataset)\nclass BaseBuilder extends java.lang.Object implements []")
@Deprecated
private void __metadata() {}
diff --git a/core/java/android/service/autofill/augmented/FillWindow.java b/core/java/android/service/autofill/augmented/FillWindow.java
index 5d003706ac83..077df6cf16ef 100644
--- a/core/java/android/service/autofill/augmented/FillWindow.java
+++ b/core/java/android/service/autofill/augmented/FillWindow.java
@@ -21,6 +21,7 @@ import static android.service.autofill.augmented.AugmentedAutofillService.sVerbo
import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.graphics.Rect;
@@ -41,6 +42,7 @@ import com.android.internal.util.Preconditions;
import dalvik.system.CloseGuard;
import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
/**
* Handle to a window used to display the augmented autofill UI.
@@ -70,23 +72,22 @@ public final class FillWindow implements AutoCloseable {
private final CloseGuard mCloseGuard = CloseGuard.get();
private final @NonNull Handler mUiThreadHandler = new Handler(Looper.getMainLooper());
- private final @NonNull FillWindowPresenter mFillWindowPresenter = new FillWindowPresenter();
@GuardedBy("mLock")
- private WindowManager mWm;
+ private @NonNull WindowManager mWm;
@GuardedBy("mLock")
private View mFillView;
@GuardedBy("mLock")
private boolean mShowing;
@GuardedBy("mLock")
- private Rect mBounds;
+ private @Nullable Rect mBounds;
@GuardedBy("mLock")
private boolean mUpdateCalled;
@GuardedBy("mLock")
private boolean mDestroyed;
- private AutofillProxy mProxy;
+ private @NonNull AutofillProxy mProxy;
/**
* Updates the content of the window.
@@ -172,11 +173,11 @@ public final class FillWindow implements AutoCloseable {
try {
mProxy.requestShowFillUi(mBounds.right - mBounds.left,
mBounds.bottom - mBounds.top,
- /*anchorBounds=*/ null, mFillWindowPresenter);
+ /*anchorBounds=*/ null, new FillWindowPresenter(this));
} catch (RemoteException e) {
Log.w(TAG, "Error requesting to show fill window", e);
}
- mProxy.report(AutofillProxy.REPORT_EVENT_UI_SHOWN);
+ mProxy.logEvent(AutofillProxy.REPORT_EVENT_UI_SHOWN);
}
}
}
@@ -244,7 +245,7 @@ public final class FillWindow implements AutoCloseable {
if (mUpdateCalled) {
mFillView.setOnClickListener(null);
hide();
- mProxy.report(AutofillProxy.REPORT_EVENT_UI_DESTROYED);
+ mProxy.logEvent(AutofillProxy.REPORT_EVENT_UI_DESTROYED);
}
mDestroyed = true;
mCloseGuard.close();
@@ -254,9 +255,7 @@ public final class FillWindow implements AutoCloseable {
@Override
protected void finalize() throws Throwable {
try {
- if (mCloseGuard != null) {
- mCloseGuard.warnIfOpen();
- }
+ mCloseGuard.warnIfOpen();
destroy();
} finally {
super.finalize();
@@ -289,22 +288,36 @@ public final class FillWindow implements AutoCloseable {
/** @hide */
@Override
- public void close() throws Exception {
+ public void close() {
destroy();
}
- private final class FillWindowPresenter extends IAutofillWindowPresenter.Stub {
+ private static final class FillWindowPresenter extends IAutofillWindowPresenter.Stub {
+ private final @NonNull WeakReference<FillWindow> mFillWindowReference;
+
+ FillWindowPresenter(@NonNull FillWindow fillWindow) {
+ mFillWindowReference = new WeakReference<>(fillWindow);
+ }
+
@Override
public void show(WindowManager.LayoutParams p, Rect transitionEpicenter,
boolean fitsSystemWindows, int layoutDirection) {
if (sDebug) Log.d(TAG, "FillWindowPresenter.show()");
- mUiThreadHandler.sendMessage(obtainMessage(FillWindow::handleShow, FillWindow.this, p));
+ final FillWindow fillWindow = mFillWindowReference.get();
+ if (fillWindow != null) {
+ fillWindow.mUiThreadHandler.sendMessage(
+ obtainMessage(FillWindow::handleShow, fillWindow, p));
+ }
}
@Override
public void hide(Rect transitionEpicenter) {
if (sDebug) Log.d(TAG, "FillWindowPresenter.hide()");
- mUiThreadHandler.sendMessage(obtainMessage(FillWindow::handleHide, FillWindow.this));
+ final FillWindow fillWindow = mFillWindowReference.get();
+ if (fillWindow != null) {
+ fillWindow.mUiThreadHandler.sendMessage(
+ obtainMessage(FillWindow::handleHide, fillWindow));
+ }
}
}
}
diff --git a/core/java/android/service/autofill/augmented/IFillCallback.aidl b/core/java/android/service/autofill/augmented/IFillCallback.aidl
index 3ccb3114a10f..d9837211be19 100644
--- a/core/java/android/service/autofill/augmented/IFillCallback.aidl
+++ b/core/java/android/service/autofill/augmented/IFillCallback.aidl
@@ -16,6 +16,7 @@
package android.service.autofill.augmented;
+import android.os.Bundle;
import android.os.ICancellationSignal;
import android.service.autofill.Dataset;
@@ -27,7 +28,7 @@ import android.service.autofill.Dataset;
*/
interface IFillCallback {
void onCancellable(in ICancellationSignal cancellation);
- void onSuccess(in @nullable Dataset[] mInlineSuggestionsData);
+ void onSuccess(in @nullable Dataset[] inlineSuggestionsData);
boolean isCompleted();
void cancel();
}
diff --git a/core/java/android/service/chooser/ChooserTarget.java b/core/java/android/service/chooser/ChooserTarget.java
index 5d2d667b438a..ec3dfe11259f 100644
--- a/core/java/android/service/chooser/ChooserTarget.java
+++ b/core/java/android/service/chooser/ChooserTarget.java
@@ -39,7 +39,12 @@ import android.os.Parcelable;
* <p>Creators of chooser targets should consult the relevant design guidelines for the type
* of target they are presenting. For example, targets involving people should be presented
* with a circular icon.</p>
+ *
+ * @deprecated For publishing direct share targets, please follow the instructions in
+ * https://developer.android.com/training/sharing/receive.html#providing-direct-share-targets
+ * instead.
*/
+@Deprecated
public final class ChooserTarget implements Parcelable {
private static final String TAG = "ChooserTarget";
diff --git a/core/java/android/service/chooser/ChooserTargetService.java b/core/java/android/service/chooser/ChooserTargetService.java
index a1afa60646b0..ec560643a2bb 100644
--- a/core/java/android/service/chooser/ChooserTargetService.java
+++ b/core/java/android/service/chooser/ChooserTargetService.java
@@ -72,7 +72,13 @@ import java.util.List;
* android:value=".MyChooserTargetService" />
* &lt;/activity>
* </pre>
+ *
+ * @deprecated For publishing direct share targets, please follow the instructions in
+ * https://developer.android.com/training/sharing/receive.html#providing-direct-share-targets
+ * instead.
*/
+
+@Deprecated
public abstract class ChooserTargetService extends Service {
// TAG = "ChooserTargetService[MySubclass]";
private final String TAG = ChooserTargetService.class.getSimpleName()
diff --git a/core/java/android/service/contentcapture/ContentCaptureService.java b/core/java/android/service/contentcapture/ContentCaptureService.java
index 5a8521fead87..707426a22889 100644
--- a/core/java/android/service/contentcapture/ContentCaptureService.java
+++ b/core/java/android/service/contentcapture/ContentCaptureService.java
@@ -42,7 +42,6 @@ import android.os.RemoteException;
import android.util.Log;
import android.util.Slog;
import android.util.SparseIntArray;
-import android.util.StatsLog;
import android.view.contentcapture.ContentCaptureCondition;
import android.view.contentcapture.ContentCaptureContext;
import android.view.contentcapture.ContentCaptureEvent;
@@ -55,6 +54,7 @@ import android.view.contentcapture.IContentCaptureDirectManager;
import android.view.contentcapture.MainContentCaptureSession;
import com.android.internal.os.IResultReceiver;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.Preconditions;
import java.io.FileDescriptor;
@@ -594,7 +594,7 @@ public abstract class ContentCaptureService extends Service {
+ rightUid);
long now = System.currentTimeMillis();
if (now - mLastCallerMismatchLog > mCallerMismatchTimeout) {
- StatsLog.write(StatsLog.CONTENT_CAPTURE_CALLER_MISMATCH_REPORTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.CONTENT_CAPTURE_CALLER_MISMATCH_REPORTED,
getPackageManager().getNameForUid(rightUid),
getPackageManager().getNameForUid(uid));
mLastCallerMismatchLog = now;
diff --git a/core/java/android/service/notification/StatusBarNotification.java b/core/java/android/service/notification/StatusBarNotification.java
index c5d97b718ff0..74b913645ad4 100644
--- a/core/java/android/service/notification/StatusBarNotification.java
+++ b/core/java/android/service/notification/StatusBarNotification.java
@@ -35,6 +35,7 @@ import android.os.Parcelable;
import android.os.UserHandle;
import android.text.TextUtils;
+import com.android.internal.logging.InstanceId;
import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -68,6 +69,8 @@ public class StatusBarNotification implements Parcelable {
private final UserHandle user;
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
private final long postTime;
+ // A small per-notification ID, used for statsd logging.
+ private InstanceId mInstanceId; // Not final, see setInstanceId()
private Context mContext; // used for inflation & icon expansion
@@ -131,8 +134,9 @@ public class StatusBarNotification implements Parcelable {
this.postTime = in.readLong();
if (in.readInt() != 0) {
this.overrideGroupKey = in.readString();
- } else {
- this.overrideGroupKey = null;
+ }
+ if (in.readInt() != 0) {
+ this.mInstanceId = InstanceId.CREATOR.createFromParcel(in);
}
this.key = key();
this.groupKey = groupKey();
@@ -196,7 +200,6 @@ public class StatusBarNotification implements Parcelable {
out.writeInt(this.initialPid);
this.notification.writeToParcel(out, flags);
user.writeToParcel(out, flags);
-
out.writeLong(this.postTime);
if (this.overrideGroupKey != null) {
out.writeInt(1);
@@ -204,6 +207,12 @@ public class StatusBarNotification implements Parcelable {
} else {
out.writeInt(0);
}
+ if (this.mInstanceId != null) {
+ out.writeInt(1);
+ mInstanceId.writeToParcel(out, flags);
+ } else {
+ out.writeInt(0);
+ }
}
public int describeContents() {
@@ -390,6 +399,20 @@ public class StatusBarNotification implements Parcelable {
/**
* @hide
*/
+ public InstanceId getInstanceId() {
+ return mInstanceId;
+ }
+
+ /**
+ * @hide
+ */
+ public void setInstanceId(InstanceId instanceId) {
+ mInstanceId = instanceId;
+ }
+
+ /**
+ * @hide
+ */
@UnsupportedAppUsage
public Context getPackageContext(Context context) {
if (mContext == null) {
diff --git a/core/java/android/service/notification/ZenModeConfig.java b/core/java/android/service/notification/ZenModeConfig.java
index 3f9462cb971b..af915966e7eb 100644
--- a/core/java/android/service/notification/ZenModeConfig.java
+++ b/core/java/android/service/notification/ZenModeConfig.java
@@ -16,6 +16,9 @@
package android.service.notification;
+import static android.app.NotificationManager.Policy.CONVERSATION_SENDERS_ANYONE;
+import static android.app.NotificationManager.Policy.CONVERSATION_SENDERS_IMPORTANT;
+import static android.app.NotificationManager.Policy.CONVERSATION_SENDERS_NONE;
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_FULL_SCREEN_INTENT;
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_LIGHTS;
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK;
@@ -99,6 +102,8 @@ public class ZenModeConfig implements Parcelable {
private static final boolean DEFAULT_ALLOW_REMINDERS = false;
private static final boolean DEFAULT_ALLOW_EVENTS = false;
private static final boolean DEFAULT_ALLOW_REPEAT_CALLERS = true;
+ private static final boolean DEFAULT_ALLOW_CONV = true;
+ private static final int DEFAULT_ALLOW_CONV_FROM = ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
private static final boolean DEFAULT_CHANNELS_BYPASSING_DND = false;
private static final int DEFAULT_SUPPRESSED_VISUAL_EFFECTS = 0;
@@ -120,6 +125,8 @@ public class ZenModeConfig implements Parcelable {
private static final String ALLOW_ATT_EVENTS = "events";
private static final String ALLOW_ATT_SCREEN_OFF = "visualScreenOff";
private static final String ALLOW_ATT_SCREEN_ON = "visualScreenOn";
+ private static final String ALLOW_ATT_CONV = "conv";
+ private static final String ALLOW_ATT_CONV_FROM = "convFrom";
private static final String DISALLOW_TAG = "disallow";
private static final String DISALLOW_ATT_VISUAL_EFFECTS = "visualEffects";
private static final String STATE_TAG = "state";
@@ -170,6 +177,8 @@ public class ZenModeConfig implements Parcelable {
public boolean allowEvents = DEFAULT_ALLOW_EVENTS;
public int allowCallsFrom = DEFAULT_CALLS_SOURCE;
public int allowMessagesFrom = DEFAULT_SOURCE;
+ public boolean allowConversations = DEFAULT_ALLOW_CONV;
+ public int allowConversationsFrom = DEFAULT_ALLOW_CONV_FROM;
public int user = UserHandle.USER_SYSTEM;
public int suppressedVisualEffects = DEFAULT_SUPPRESSED_VISUAL_EFFECTS;
public boolean areChannelsBypassingDnd = DEFAULT_CHANNELS_BYPASSING_DND;
@@ -207,6 +216,8 @@ public class ZenModeConfig implements Parcelable {
allowSystem = source.readInt() == 1;
suppressedVisualEffects = source.readInt();
areChannelsBypassingDnd = source.readInt() == 1;
+ allowConversations = source.readBoolean();
+ allowConversationsFrom = source.readInt();
}
@Override
@@ -239,6 +250,8 @@ public class ZenModeConfig implements Parcelable {
dest.writeInt(allowSystem ? 1 : 0);
dest.writeInt(suppressedVisualEffects);
dest.writeInt(areChannelsBypassingDnd ? 1 : 0);
+ dest.writeBoolean(allowConversations);
+ dest.writeInt(allowConversationsFrom);
}
@Override
@@ -253,8 +266,11 @@ public class ZenModeConfig implements Parcelable {
.append(",allowCalls=").append(allowCalls)
.append(",allowRepeatCallers=").append(allowRepeatCallers)
.append(",allowMessages=").append(allowMessages)
+ .append(",allowConversations=").append(allowConversations)
.append(",allowCallsFrom=").append(sourceToString(allowCallsFrom))
.append(",allowMessagesFrom=").append(sourceToString(allowMessagesFrom))
+ .append(",allowConvFrom=").append(ZenPolicy.conversationTypeToString
+ (allowConversationsFrom))
.append(",suppressedVisualEffects=").append(suppressedVisualEffects)
.append(",areChannelsBypassingDnd=").append(areChannelsBypassingDnd)
.append(",\nautomaticRules=").append(rulesToString())
@@ -431,7 +447,9 @@ public class ZenModeConfig implements Parcelable {
&& Objects.equals(other.automaticRules, automaticRules)
&& Objects.equals(other.manualRule, manualRule)
&& other.suppressedVisualEffects == suppressedVisualEffects
- && other.areChannelsBypassingDnd == areChannelsBypassingDnd;
+ && other.areChannelsBypassingDnd == areChannelsBypassingDnd
+ && other.allowConversations == allowConversations
+ && other.allowConversationsFrom == allowConversationsFrom;
}
@Override
@@ -440,7 +458,8 @@ public class ZenModeConfig implements Parcelable {
allowRepeatCallers, allowMessages,
allowCallsFrom, allowMessagesFrom, allowReminders, allowEvents,
user, automaticRules, manualRule,
- suppressedVisualEffects, areChannelsBypassingDnd);
+ suppressedVisualEffects, areChannelsBypassingDnd, allowConversations,
+ allowConversationsFrom);
}
private static String toDayList(int[] days) {
@@ -518,10 +537,13 @@ public class ZenModeConfig implements Parcelable {
DEFAULT_ALLOW_MESSAGES);
rt.allowReminders = safeBoolean(parser, ALLOW_ATT_REMINDERS,
DEFAULT_ALLOW_REMINDERS);
+ rt.allowConversations = safeBoolean(parser, ALLOW_ATT_CONV, DEFAULT_ALLOW_CONV);
rt.allowEvents = safeBoolean(parser, ALLOW_ATT_EVENTS, DEFAULT_ALLOW_EVENTS);
final int from = safeInt(parser, ALLOW_ATT_FROM, -1);
final int callsFrom = safeInt(parser, ALLOW_ATT_CALLS_FROM, -1);
final int messagesFrom = safeInt(parser, ALLOW_ATT_MESSAGES_FROM, -1);
+ rt.allowConversationsFrom = safeInt(parser, ALLOW_ATT_CONV_FROM,
+ DEFAULT_ALLOW_CONV_FROM);
if (isValidSource(callsFrom) && isValidSource(messagesFrom)) {
rt.allowCallsFrom = callsFrom;
rt.allowMessagesFrom = messagesFrom;
@@ -602,6 +624,8 @@ public class ZenModeConfig implements Parcelable {
out.attribute(null, ALLOW_ATT_ALARMS, Boolean.toString(allowAlarms));
out.attribute(null, ALLOW_ATT_MEDIA, Boolean.toString(allowMedia));
out.attribute(null, ALLOW_ATT_SYSTEM, Boolean.toString(allowSystem));
+ out.attribute(null, ALLOW_ATT_CONV, Boolean.toString(allowConversations));
+ out.attribute(null, ALLOW_ATT_CONV_FROM, Integer.toString(allowConversationsFrom));
out.endTag(null, ALLOW_TAG);
out.startTag(null, DISALLOW_TAG);
@@ -944,6 +968,7 @@ public class ZenModeConfig implements Parcelable {
int suppressedVisualEffects = 0;
int callSenders = defaultPolicy.priorityCallSenders;
int messageSenders = defaultPolicy.priorityMessageSenders;
+ int conversationSenders = defaultPolicy.priorityConversationSenders;
if (zenPolicy.isCategoryAllowed(ZenPolicy.PRIORITY_CATEGORY_REMINDERS,
isPriorityCategoryEnabled(Policy.PRIORITY_CATEGORY_REMINDERS, defaultPolicy))) {
@@ -962,6 +987,14 @@ public class ZenModeConfig implements Parcelable {
messageSenders);
}
+ if (zenPolicy.isCategoryAllowed(ZenPolicy.PRIORITY_CATEGORY_CONVERSATIONS,
+ isPriorityCategoryEnabled(Policy.PRIORITY_CATEGORY_CONVERSATIONS, defaultPolicy))) {
+ priorityCategories |= Policy.PRIORITY_CATEGORY_CONVERSATIONS;
+ conversationSenders = getNotificationPolicySenders(
+ zenPolicy.getPriorityConversationSenders(),
+ conversationSenders);
+ }
+
if (zenPolicy.isCategoryAllowed(ZenPolicy.PRIORITY_CATEGORY_CALLS,
isPriorityCategoryEnabled(Policy.PRIORITY_CATEGORY_CALLS, defaultPolicy))) {
priorityCategories |= Policy.PRIORITY_CATEGORY_CALLS;
@@ -1047,7 +1080,7 @@ public class ZenModeConfig implements Parcelable {
}
return new NotificationManager.Policy(priorityCategories, callSenders,
- messageSenders, suppressedVisualEffects, defaultPolicy.state);
+ messageSenders, suppressedVisualEffects, defaultPolicy.state, conversationSenders);
}
private boolean isPriorityCategoryEnabled(int categoryType, Policy policy) {
@@ -1088,11 +1121,14 @@ public class ZenModeConfig implements Parcelable {
}
}
-
public Policy toNotificationPolicy() {
int priorityCategories = 0;
int priorityCallSenders = Policy.PRIORITY_SENDERS_CONTACTS;
int priorityMessageSenders = Policy.PRIORITY_SENDERS_CONTACTS;
+ int priorityConversationSenders = Policy.CONVERSATION_SENDERS_IMPORTANT;
+ if (allowConversations) {
+ priorityCategories |= Policy.PRIORITY_CATEGORY_CONVERSATIONS;
+ }
if (allowCalls) {
priorityCategories |= Policy.PRIORITY_CATEGORY_CALLS;
}
@@ -1119,10 +1155,12 @@ public class ZenModeConfig implements Parcelable {
}
priorityCallSenders = sourceToPrioritySenders(allowCallsFrom, priorityCallSenders);
priorityMessageSenders = sourceToPrioritySenders(allowMessagesFrom, priorityMessageSenders);
+ priorityConversationSenders = allowConversationsFrom;
return new Policy(priorityCategories, priorityCallSenders, priorityMessageSenders,
suppressedVisualEffects, areChannelsBypassingDnd
- ? Policy.STATE_CHANNELS_BYPASSING_DND : 0);
+ ? Policy.STATE_CHANNELS_BYPASSING_DND : 0,
+ priorityConversationSenders);
}
/**
@@ -1157,6 +1195,27 @@ public class ZenModeConfig implements Parcelable {
}
}
+ private static int normalizePrioritySenders(int prioritySenders, int def) {
+ if (!(prioritySenders == Policy.PRIORITY_SENDERS_CONTACTS
+ || prioritySenders == Policy.PRIORITY_SENDERS_STARRED
+ || prioritySenders == Policy.PRIORITY_SENDERS_ANY)) {
+ return def;
+ }
+ return prioritySenders;
+ }
+
+ private static int normalizeConversationSenders(boolean allowed, int senders, int def) {
+ if (!allowed) {
+ return CONVERSATION_SENDERS_NONE;
+ }
+ if (!(senders == CONVERSATION_SENDERS_ANYONE
+ || senders == CONVERSATION_SENDERS_IMPORTANT
+ || senders == CONVERSATION_SENDERS_NONE)) {
+ return def;
+ }
+ return senders;
+ }
+
public void applyNotificationPolicy(Policy policy) {
if (policy == null) return;
allowAlarms = (policy.priorityCategories & Policy.PRIORITY_CATEGORY_ALARMS) != 0;
@@ -1168,12 +1227,17 @@ public class ZenModeConfig implements Parcelable {
allowMessages = (policy.priorityCategories & Policy.PRIORITY_CATEGORY_MESSAGES) != 0;
allowRepeatCallers = (policy.priorityCategories & Policy.PRIORITY_CATEGORY_REPEAT_CALLERS)
!= 0;
- allowCallsFrom = prioritySendersToSource(policy.priorityCallSenders, allowCallsFrom);
- allowMessagesFrom = prioritySendersToSource(policy.priorityMessageSenders,
+ allowCallsFrom = normalizePrioritySenders(policy.priorityCallSenders, allowCallsFrom);
+ allowMessagesFrom = normalizePrioritySenders(policy.priorityMessageSenders,
allowMessagesFrom);
if (policy.suppressedVisualEffects != Policy.SUPPRESSED_EFFECTS_UNSET) {
suppressedVisualEffects = policy.suppressedVisualEffects;
}
+ allowConversations = (policy.priorityCategories
+ & Policy.PRIORITY_CATEGORY_CONVERSATIONS) != 0;
+ allowConversationsFrom = normalizeConversationSenders(allowConversations,
+ policy.priorityConversationSenders,
+ allowConversationsFrom);
if (policy.state != Policy.STATE_UNSET) {
areChannelsBypassingDnd = (policy.state & Policy.STATE_CHANNELS_BYPASSING_DND) != 0;
}
@@ -1919,10 +1983,13 @@ public class ZenModeConfig implements Parcelable {
& NotificationManager.Policy.PRIORITY_CATEGORY_EVENTS) != 0;
boolean allowRepeatCallers = (policy.priorityCategories
& NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS) != 0;
+ boolean allowConversations = (policy.priorityConversationSenders
+ & Policy.PRIORITY_CATEGORY_CONVERSATIONS) != 0;
boolean areChannelsBypassingDnd = (policy.state & Policy.STATE_CHANNELS_BYPASSING_DND) != 0;
boolean allowSystem = (policy.priorityCategories & Policy.PRIORITY_CATEGORY_SYSTEM) != 0;
return !allowReminders && !allowCalls && !allowMessages && !allowEvents
- && !allowRepeatCallers && !areChannelsBypassingDnd && !allowSystem;
+ && !allowRepeatCallers && !areChannelsBypassingDnd && !allowSystem
+ && !allowConversations;
}
/**
diff --git a/core/java/android/service/notification/ZenPolicy.java b/core/java/android/service/notification/ZenPolicy.java
index 6e2faa9932ca..87295e1c95b9 100644
--- a/core/java/android/service/notification/ZenPolicy.java
+++ b/core/java/android/service/notification/ZenPolicy.java
@@ -41,6 +41,7 @@ public final class ZenPolicy implements Parcelable {
private ArrayList<Integer> mVisualEffects;
private @PeopleType int mPriorityMessages = PEOPLE_TYPE_UNSET;
private @PeopleType int mPriorityCalls = PEOPLE_TYPE_UNSET;
+ private @ConversationSenders int mConversationSenders = CONVERSATION_SENDERS_UNSET;
/** @hide */
@IntDef(prefix = { "PRIORITY_CATEGORY_" }, value = {
@@ -52,6 +53,7 @@ public final class ZenPolicy implements Parcelable {
PRIORITY_CATEGORY_ALARMS,
PRIORITY_CATEGORY_MEDIA,
PRIORITY_CATEGORY_SYSTEM,
+ PRIORITY_CATEGORY_CONVERSATIONS,
})
@Retention(RetentionPolicy.SOURCE)
public @interface PriorityCategory {}
@@ -72,6 +74,8 @@ public final class ZenPolicy implements Parcelable {
public static final int PRIORITY_CATEGORY_MEDIA = 6;
/** @hide */
public static final int PRIORITY_CATEGORY_SYSTEM = 7;
+ /** @hide */
+ public static final int PRIORITY_CATEGORY_CONVERSATIONS = 8;
/** @hide */
@IntDef(prefix = { "VISUAL_EFFECT_" }, value = {
@@ -138,6 +142,37 @@ public final class ZenPolicy implements Parcelable {
*/
public static final int PEOPLE_TYPE_NONE = 4;
+
+ /** @hide */
+ @IntDef(prefix = { "CONVERSATION_SENDERS_" }, value = {
+ CONVERSATION_SENDERS_UNSET,
+ CONVERSATION_SENDERS_ANYONE,
+ CONVERSATION_SENDERS_IMPORTANT,
+ CONVERSATION_SENDERS_NONE,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface ConversationSenders {}
+
+ /**
+ * Used to indicate no preference for the type of conversations that can bypass dnd.
+ */
+ public static final int CONVERSATION_SENDERS_UNSET = 0;
+
+ /**
+ * Used to indicate all conversations can bypass dnd.
+ */
+ public static final int CONVERSATION_SENDERS_ANYONE = 1;
+
+ /**
+ * Used to indicate important conversations can bypass dnd.
+ */
+ public static final int CONVERSATION_SENDERS_IMPORTANT = 2;
+
+ /**
+ * Used to indicate no conversations can bypass dnd.
+ */
+ public static final int CONVERSATION_SENDERS_NONE = 3;
+
/** @hide */
@IntDef(prefix = { "STATE_" }, value = {
STATE_UNSET,
@@ -165,11 +200,20 @@ public final class ZenPolicy implements Parcelable {
/** @hide */
public ZenPolicy() {
- mPriorityCategories = new ArrayList<>(Collections.nCopies(8, 0));
+ mPriorityCategories = new ArrayList<>(Collections.nCopies(9, 0));
mVisualEffects = new ArrayList<>(Collections.nCopies(7, 0));
}
/**
+ * Conversation type that can bypass DND.
+ * @return {@link #CONVERSATION_SENDERS_UNSET}, {@link #CONVERSATION_SENDERS_ANYONE},
+ * {@link #CONVERSATION_SENDERS_IMPORTANT}, {@link #CONVERSATION_SENDERS_NONE}.
+ */
+ public @PeopleType int getPriorityConversationSenders() {
+ return mConversationSenders;
+ }
+
+ /**
* Message senders that can bypass DND.
* @return {@link #PEOPLE_TYPE_UNSET}, {@link #PEOPLE_TYPE_ANYONE},
* {@link #PEOPLE_TYPE_CONTACTS}, {@link #PEOPLE_TYPE_STARRED} or {@link #PEOPLE_TYPE_NONE}
@@ -188,6 +232,16 @@ public final class ZenPolicy implements Parcelable {
}
/**
+ * Whether this policy wants to allow conversation notifications
+ * (see {@link NotificationChannel#getConversationId()}) to play sounds and visually appear
+ * or to intercept them when DND is active.
+ * @return {@link #STATE_UNSET}, {@link #STATE_ALLOW} or {@link #STATE_DISALLOW}
+ */
+ public @State int getPriorityCategoryConversations() {
+ return mPriorityCategories.get(PRIORITY_CATEGORY_CONVERSATIONS);
+ }
+
+ /**
* Whether this policy wants to allow notifications with category
* {@link Notification#CATEGORY_REMINDER} to play sounds and visually appear
* or to intercept them when DND is active.
@@ -392,6 +446,7 @@ public final class ZenPolicy implements Parcelable {
}
mZenPolicy.mPriorityMessages = PEOPLE_TYPE_ANYONE;
mZenPolicy.mPriorityCalls = PEOPLE_TYPE_ANYONE;
+ mZenPolicy.mConversationSenders = CONVERSATION_SENDERS_ANYONE;
return this;
}
@@ -408,6 +463,7 @@ public final class ZenPolicy implements Parcelable {
}
mZenPolicy.mPriorityMessages = PEOPLE_TYPE_NONE;
mZenPolicy.mPriorityCalls = PEOPLE_TYPE_NONE;
+ mZenPolicy.mConversationSenders = CONVERSATION_SENDERS_NONE;
return this;
}
@@ -443,6 +499,8 @@ public final class ZenPolicy implements Parcelable {
mZenPolicy.mPriorityMessages = STATE_UNSET;
} else if (category == PRIORITY_CATEGORY_CALLS) {
mZenPolicy.mPriorityCalls = STATE_UNSET;
+ } else if (category == PRIORITY_CATEGORY_CONVERSATIONS) {
+ mZenPolicy.mConversationSenders = STATE_UNSET;
}
return this;
@@ -479,6 +537,31 @@ public final class ZenPolicy implements Parcelable {
}
/**
+ * Whether to allow conversation notifications
+ * (see {@link NotificationChannel#setConversationId(String, String)})
+ * that match audienceType to play sounds and visually appear or to intercept
+ * them when DND is active.
+ * @param audienceType callers that are allowed to bypass DND
+ */
+ public @NonNull Builder allowConversations(@ConversationSenders int audienceType) {
+ if (audienceType == STATE_UNSET) {
+ return unsetPriorityCategory(PRIORITY_CATEGORY_CONVERSATIONS);
+ }
+
+ if (audienceType == CONVERSATION_SENDERS_NONE) {
+ mZenPolicy.mPriorityCategories.set(PRIORITY_CATEGORY_CONVERSATIONS, STATE_DISALLOW);
+ } else if (audienceType == CONVERSATION_SENDERS_ANYONE
+ || audienceType == CONVERSATION_SENDERS_IMPORTANT) {
+ mZenPolicy.mPriorityCategories.set(PRIORITY_CATEGORY_CONVERSATIONS, STATE_ALLOW);
+ } else {
+ return this;
+ }
+
+ mZenPolicy.mConversationSenders = audienceType;
+ return this;
+ }
+
+ /**
* Whether to allow notifications with category {@link Notification#CATEGORY_MESSAGE}
* that match audienceType to play sounds and visually appear or to intercept
* them when DND is active.
@@ -537,7 +620,6 @@ public final class ZenPolicy implements Parcelable {
return this;
}
-
/**
* Whether to allow notifications with category {@link Notification#CATEGORY_ALARM}
* to play sounds and visually appear or to intercept them when DND is active.
@@ -712,6 +794,7 @@ public final class ZenPolicy implements Parcelable {
dest.writeList(mVisualEffects);
dest.writeInt(mPriorityCalls);
dest.writeInt(mPriorityMessages);
+ dest.writeInt(mConversationSenders);
}
public static final @android.annotation.NonNull Parcelable.Creator<ZenPolicy> CREATOR =
@@ -723,6 +806,7 @@ public final class ZenPolicy implements Parcelable {
policy.mVisualEffects = source.readArrayList(Integer.class.getClassLoader());
policy.mPriorityCalls = source.readInt();
policy.mPriorityMessages = source.readInt();
+ policy.mConversationSenders = source.readInt();
return policy;
}
@@ -738,8 +822,10 @@ public final class ZenPolicy implements Parcelable {
.append('{')
.append("priorityCategories=[").append(priorityCategoriesToString())
.append("], visualEffects=[").append(visualEffectsToString())
- .append("], priorityCalls=").append(peopleTypeToString(mPriorityCalls))
- .append(", priorityMessages=").append(peopleTypeToString(mPriorityMessages))
+ .append("], priorityCallsSenders=").append(peopleTypeToString(mPriorityCalls))
+ .append(", priorityMessagesSenders=").append(peopleTypeToString(mPriorityMessages))
+ .append(", priorityConversationSenders=").append(
+ conversationTypeToString(mConversationSenders))
.append('}')
.toString();
}
@@ -811,6 +897,8 @@ public final class ZenPolicy implements Parcelable {
return "media";
case PRIORITY_CATEGORY_SYSTEM:
return "system";
+ case PRIORITY_CATEGORY_CONVERSATIONS:
+ return "convs";
}
return null;
}
@@ -843,6 +931,23 @@ public final class ZenPolicy implements Parcelable {
return "invalidPeopleType{" + peopleType + "}";
}
+ /**
+ * @hide
+ */
+ public static String conversationTypeToString(@ConversationSenders int conversationType) {
+ switch (conversationType) {
+ case CONVERSATION_SENDERS_ANYONE:
+ return "anyone";
+ case CONVERSATION_SENDERS_IMPORTANT:
+ return "important";
+ case CONVERSATION_SENDERS_NONE:
+ return "none";
+ case CONVERSATION_SENDERS_UNSET:
+ return "unset";
+ }
+ return "invalidConversationType{" + conversationType + "}";
+ }
+
@Override
public boolean equals(Object o) {
if (!(o instanceof ZenPolicy)) return false;
@@ -852,12 +957,14 @@ public final class ZenPolicy implements Parcelable {
return Objects.equals(other.mPriorityCategories, mPriorityCategories)
&& Objects.equals(other.mVisualEffects, mVisualEffects)
&& other.mPriorityCalls == mPriorityCalls
- && other.mPriorityMessages == mPriorityMessages;
+ && other.mPriorityMessages == mPriorityMessages
+ && other.mConversationSenders == mConversationSenders;
}
@Override
public int hashCode() {
- return Objects.hash(mPriorityCategories, mVisualEffects, mPriorityCalls, mPriorityMessages);
+ return Objects.hash(mPriorityCategories, mVisualEffects, mPriorityCalls, mPriorityMessages,
+ mConversationSenders);
}
private @ZenPolicy.State int getZenPolicyPriorityCategoryState(@PriorityCategory int
@@ -879,6 +986,8 @@ public final class ZenPolicy implements Parcelable {
return getPriorityCategoryMedia();
case PRIORITY_CATEGORY_SYSTEM:
return getPriorityCategorySystem();
+ case PRIORITY_CATEGORY_CONVERSATIONS:
+ return getPriorityCategoryConversations();
}
return -1;
}
@@ -953,6 +1062,9 @@ public final class ZenPolicy implements Parcelable {
} else if (category == PRIORITY_CATEGORY_CALLS
&& mPriorityCalls < policyToApply.mPriorityCalls) {
mPriorityCalls = policyToApply.mPriorityCalls;
+ } else if (category == PRIORITY_CATEGORY_CONVERSATIONS
+ && mConversationSenders < policyToApply.mConversationSenders) {
+ mConversationSenders = policyToApply.mConversationSenders;
}
}
}
diff --git a/core/java/android/service/textclassifier/TextClassifierService.java b/core/java/android/service/textclassifier/TextClassifierService.java
index 8dca69f856e5..3ff6f549e337 100644
--- a/core/java/android/service/textclassifier/TextClassifierService.java
+++ b/core/java/android/service/textclassifier/TextClassifierService.java
@@ -27,7 +27,6 @@ import android.app.Service;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.os.Bundle;
@@ -394,21 +393,39 @@ public abstract class TextClassifierService extends Service {
*/
@Deprecated
public final TextClassifier getLocalTextClassifier() {
- // Deprecated: In the future, we may not guarantee that this runs in the service's process.
- return getDefaultTextClassifierImplementation(this);
+ return TextClassifier.NO_OP;
}
/**
* Returns the platform's default TextClassifier implementation.
+ *
+ * @throws RuntimeException if the TextClassifier from
+ * PackageManager#getDefaultTextClassifierPackageName() calls
+ * this method.
*/
@NonNull
public static TextClassifier getDefaultTextClassifierImplementation(@NonNull Context context) {
final TextClassificationManager tcm =
context.getSystemService(TextClassificationManager.class);
- if (tcm != null) {
+ if (tcm == null) {
+ return TextClassifier.NO_OP;
+ }
+ TextClassificationConstants settings = new TextClassificationConstants();
+ if (settings.getUseDefaultTextClassifierAsDefaultImplementation()) {
+ final String defaultTextClassifierPackageName =
+ context.getPackageManager().getDefaultTextClassifierPackageName();
+ if (TextUtils.isEmpty(defaultTextClassifierPackageName)) {
+ return TextClassifier.NO_OP;
+ }
+ if (defaultTextClassifierPackageName.equals(context.getPackageName())) {
+ throw new RuntimeException(
+ "The default text classifier itself should not call the"
+ + "getDefaultTextClassifierImplementation() method.");
+ }
+ return tcm.getTextClassifier(TextClassifier.DEFAULT_SERVICE);
+ } else {
return tcm.getTextClassifier(TextClassifier.LOCAL);
}
- return TextClassifier.NO_OP;
}
/** @hide **/
@@ -434,46 +451,20 @@ public abstract class TextClassifierService extends Service {
}
/**
- * Returns the component name of the system default textclassifier service if it can be found
- * on the system. Otherwise, returns null.
+ * Returns the component name of the textclassifier service from the given package.
+ * Otherwise, returns null.
*
- * @param context the text classification context
+ * @param context
+ * @param packageName the package to look for.
+ * @param resolveFlags the flags that are used by PackageManager to resolve the component name.
* @hide
*/
@Nullable
- public static ComponentName getServiceComponentName(@NonNull Context context) {
- final TextClassificationConstants settings = TextClassificationManager.getSettings(context);
- // get override TextClassifierService package name
- String packageName = settings.getTextClassifierServicePackageOverride();
-
- ComponentName serviceComponent = null;
- final boolean isOverrideService = !TextUtils.isEmpty(packageName);
- if (isOverrideService) {
- serviceComponent = getServiceComponentNameByPackage(context, packageName,
- isOverrideService);
- }
- if (serviceComponent != null) {
- return serviceComponent;
- }
- // If no TextClassifierService override or invalid override package name, read the first
- // package defined in the config
- final String[] packages = context.getPackageManager().getSystemTextClassifierPackages();
- if (packages.length == 0 || TextUtils.isEmpty(packages[0])) {
- Slog.d(LOG_TAG, "No configured system TextClassifierService");
- return null;
- }
- packageName = packages[0];
- serviceComponent = getServiceComponentNameByPackage(context, packageName,
- isOverrideService);
- return serviceComponent;
- }
-
- private static ComponentName getServiceComponentNameByPackage(Context context,
- String packageName, boolean isOverrideService) {
+ public static ComponentName getServiceComponentName(
+ Context context, String packageName, int resolveFlags) {
final Intent intent = new Intent(SERVICE_INTERFACE).setPackage(packageName);
- final int flags = isOverrideService ? 0 : PackageManager.MATCH_SYSTEM_ONLY;
- final ResolveInfo ri = context.getPackageManager().resolveService(intent, flags);
+ final ResolveInfo ri = context.getPackageManager().resolveService(intent, resolveFlags);
if ((ri == null) || (ri.serviceInfo == null)) {
Slog.w(LOG_TAG, String.format("Package or service not found in package %s for user %d",
diff --git a/core/java/android/service/voice/AlwaysOnHotwordDetector.java b/core/java/android/service/voice/AlwaysOnHotwordDetector.java
index 1966f17aaf35..a88d389178bf 100644
--- a/core/java/android/service/voice/AlwaysOnHotwordDetector.java
+++ b/core/java/android/service/voice/AlwaysOnHotwordDetector.java
@@ -181,14 +181,14 @@ public class AlwaysOnHotwordDetector {
* Returned by {@link #getSupportedAudioCapabilities()}
*/
public static final int AUDIO_CAPABILITY_ECHO_CANCELLATION =
- SoundTrigger.ModuleProperties.CAPABILITY_ECHO_CANCELLATION;
+ SoundTrigger.ModuleProperties.AUDIO_CAPABILITY_ECHO_CANCELLATION;
/**
* If set, the underlying module supports noise suppression.
* Returned by {@link #getSupportedAudioCapabilities()}
*/
public static final int AUDIO_CAPABILITY_NOISE_SUPPRESSION =
- SoundTrigger.ModuleProperties.CAPABILITY_NOISE_SUPPRESSION;
+ SoundTrigger.ModuleProperties.AUDIO_CAPABILITY_NOISE_SUPPRESSION;
/** @hide */
@Retention(RetentionPolicy.SOURCE)
@@ -249,21 +249,21 @@ public class AlwaysOnHotwordDetector {
}
/**
- * The inclusive start of supported range.
+ * Get the beginning of the param range
*
- * @return start of range
+ * @return The inclusive start of the supported range.
*/
- public int start() {
- return mModelParamRange.start;
+ public int getStart() {
+ return mModelParamRange.getStart();
}
/**
- * The inclusive end of supported range.
+ * Get the end of the param range
*
- * @return end of range
+ * @return The inclusive end of the supported range.
*/
- public int end() {
- return mModelParamRange.end;
+ public int getEnd() {
+ return mModelParamRange.getEnd();
}
@Override
diff --git a/core/java/android/telephony/CellBroadcastIntents.java b/core/java/android/telephony/CellBroadcastIntents.java
index 32d330e1a47f..921ad3c74681 100644
--- a/core/java/android/telephony/CellBroadcastIntents.java
+++ b/core/java/android/telephony/CellBroadcastIntents.java
@@ -81,7 +81,6 @@ public class CellBroadcastIntents {
int initialCode, int slotIndex) {
Intent backgroundIntent = new Intent(Telephony.Sms.Intents.SMS_CB_RECEIVED_ACTION);
backgroundIntent.putExtra(EXTRA_MESSAGE, smsCbMessage);
- backgroundIntent.setFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
putPhoneIdAndSubIdExtra(context, backgroundIntent, slotIndex);
String receiverPermission = Manifest.permission.RECEIVE_SMS;
diff --git a/core/java/android/telephony/PhoneStateListener.java b/core/java/android/telephony/PhoneStateListener.java
index 023f0005eac7..531ade04fe02 100644
--- a/core/java/android/telephony/PhoneStateListener.java
+++ b/core/java/android/telephony/PhoneStateListener.java
@@ -168,9 +168,11 @@ public class PhoneStateListener {
public static final int LISTEN_SIGNAL_STRENGTHS = 0x00000100;
/**
- * Listen for always reported changes of the network signal strengths (cellular),
+ * Listen for changes of the network signal strengths (cellular) always reported from modem,
* even in some situations such as the screen of the device is off.
*
+ * @see #onSignalStrengthsChanged
+ *
* @hide
*/
@RequiresPermission(android.Manifest.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH)
diff --git a/core/java/android/timezone/CountryTimeZones.java b/core/java/android/timezone/CountryTimeZones.java
index e5bbdf4b6eea..ee3a8a79d5d7 100644
--- a/core/java/android/timezone/CountryTimeZones.java
+++ b/core/java/android/timezone/CountryTimeZones.java
@@ -18,8 +18,6 @@ package android.timezone;
import android.annotation.NonNull;
import android.annotation.Nullable;
-import android.annotation.SuppressLint;
-import android.annotation.SystemApi;
import android.icu.util.TimeZone;
import java.util.ArrayList;
@@ -32,7 +30,6 @@ import java.util.Objects;
*
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public final class CountryTimeZones {
/**
@@ -40,7 +37,6 @@ public final class CountryTimeZones {
*
* @hide
*/
- @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public static final class TimeZoneMapping {
@NonNull
@@ -51,19 +47,20 @@ public final class CountryTimeZones {
}
/**
- * Returns the ID for this mapping. See also {@link #getTimeZone()} which handles when the
- * ID is unrecognized.
+ * Returns the ID for this mapping. The ID is a tzdb time zone identifier like
+ * "America/Los_Angeles" that can be used with methods such as {@link
+ * TimeZone#getFrozenTimeZone(String)}. See {@link #getTimeZone()} which returns a frozen
+ * {@link TimeZone} object.
*/
@NonNull
public String getTimeZoneId() {
- return mDelegate.timeZoneId;
+ return mDelegate.getTimeZoneId();
}
/**
- * Returns a {@link TimeZone} object for this mapping, or {@code null} if the ID is
- * unrecognized.
+ * Returns a frozen {@link TimeZone} object for this mapping.
*/
- @Nullable
+ @NonNull
public TimeZone getTimeZone() {
return mDelegate.getTimeZone();
}
@@ -96,7 +93,6 @@ public final class CountryTimeZones {
*
* @hide
*/
- @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public static final class OffsetResult {
private final TimeZone mTimeZone;
@@ -158,9 +154,10 @@ public final class CountryTimeZones {
}
/**
- * Returns true if the ISO code for the country is a match for the one specified.
+ * Returns true if the ISO code for the country is a case-insensitive match for the one
+ * supplied.
*/
- public boolean isForCountryCode(@NonNull String countryIso) {
+ public boolean matchesCountryCode(@NonNull String countryIso) {
return mDelegate.isForCountryCode(countryIso);
}
@@ -183,44 +180,75 @@ public final class CountryTimeZones {
}
/**
- * Qualifier for a country's default time zone. {@code true} indicates whether the default
- * would be a good choice <em>generally</em> when there's no other information available.
+ * Qualifier for a country's default time zone. {@code true} indicates that the country's
+ * default time zone would be a good choice <em>generally</em> when there's no UTC offset
+ * information available. This will only be {@code true} in countries with multiple zones where
+ * a large majority of the population is covered by only one of them.
*/
public boolean isDefaultTimeZoneBoosted() {
- return mDelegate.getDefaultTimeZoneBoost();
+ return mDelegate.isDefaultTimeZoneBoosted();
}
/**
- * Returns true if the country has at least one zone that is the same as UTC at the given time.
+ * Returns {@code true} if the country has at least one time zone that uses UTC at the given
+ * time. This is an efficient check when trying to validate received UTC offset information.
+ * For example, there are situations when a detected zero UTC offset cannot be distinguished
+ * from "no information available" or a corrupted signal. This method is useful because checking
+ * offset information for large countries is relatively expensive but it is generally only the
+ * countries close to the prime meridian that use UTC at <em>any</em> time of the year.
+ *
+ * @param whenMillis the time the offset information is for in milliseconds since the beginning
+ * of the Unix epoch
*/
public boolean hasUtcZone(long whenMillis) {
return mDelegate.hasUtcZone(whenMillis);
}
/**
- * Returns a time zone for the country, if there is one, that matches the desired properties. If
- * there are multiple matches and the {@code bias} is one of them then it is returned, otherwise
- * an arbitrary match is returned based on the {@link #getEffectiveTimeZoneMappingsAt(long)}
- * ordering.
+ * Returns a time zone for the country, if there is one, that matches the supplied properties.
+ * If there are multiple matches and the {@code bias} is one of them then it is returned,
+ * otherwise an arbitrary match is returned based on the {@link
+ * #getEffectiveTimeZoneMappingsAt(long)} ordering.
*
+ * @param whenMillis the UTC time to match against
+ * @param bias the time zone to prefer, can be {@code null} to indicate there is no preference
* @param totalOffsetMillis the offset from UTC at {@code whenMillis}
* @param isDst the Daylight Savings Time state at {@code whenMillis}. {@code true} means DST,
- * {@code false} means not DST, {@code null} means unknown
- * @param dstOffsetMillis the part of {@code totalOffsetMillis} contributed by DST, only used if
- * {@code isDst} is {@code true}. The value can be {@code null} if the DST offset is
- * unknown
- * @param whenMillis the UTC time to match against
- * @param bias the time zone to prefer, can be {@code null}
+ * {@code false} means not DST
+ * @return an {@link OffsetResult} with information about a matching zone, or {@code null} if
+ * there is no match
*/
@Nullable
- public OffsetResult lookupByOffsetWithBias(int totalOffsetMillis, @Nullable Boolean isDst,
- @SuppressLint("AutoBoxing") @Nullable Integer dstOffsetMillis, long whenMillis,
- @Nullable TimeZone bias) {
+ public OffsetResult lookupByOffsetWithBias(long whenMillis, @Nullable TimeZone bias,
+ int totalOffsetMillis, boolean isDst) {
libcore.timezone.CountryTimeZones.OffsetResult delegateOffsetResult =
mDelegate.lookupByOffsetWithBias(
- totalOffsetMillis, isDst, dstOffsetMillis, whenMillis, bias);
+ whenMillis, bias, totalOffsetMillis, isDst);
+ return delegateOffsetResult == null ? null :
+ new OffsetResult(
+ delegateOffsetResult.getTimeZone(), delegateOffsetResult.isOnlyMatch());
+ }
+
+ /**
+ * Returns a time zone for the country, if there is one, that matches the supplied properties.
+ * If there are multiple matches and the {@code bias} is one of them then it is returned,
+ * otherwise an arbitrary match is returned based on the {@link
+ * #getEffectiveTimeZoneMappingsAt(long)} ordering.
+ *
+ * @param whenMillis the UTC time to match against
+ * @param bias the time zone to prefer, can be {@code null} to indicate there is no preference
+ * @param totalOffsetMillis the offset from UTC at {@code whenMillis}
+ * @return an {@link OffsetResult} with information about a matching zone, or {@code null} if
+ * there is no match
+ */
+ @Nullable
+ public OffsetResult lookupByOffsetWithBias(long whenMillis, @Nullable TimeZone bias,
+ int totalOffsetMillis) {
+ libcore.timezone.CountryTimeZones.OffsetResult delegateOffsetResult =
+ mDelegate.lookupByOffsetWithBias(whenMillis, bias, totalOffsetMillis);
return delegateOffsetResult == null ? null :
- new OffsetResult(delegateOffsetResult.mTimeZone, delegateOffsetResult.mOneMatch);
+ new OffsetResult(
+ delegateOffsetResult.getTimeZone(), delegateOffsetResult.isOnlyMatch());
}
/**
diff --git a/core/java/android/timezone/TelephonyLookup.java b/core/java/android/timezone/TelephonyLookup.java
index 8a5864e92db1..a4c3fbd33410 100644
--- a/core/java/android/timezone/TelephonyLookup.java
+++ b/core/java/android/timezone/TelephonyLookup.java
@@ -18,7 +18,6 @@ package android.timezone;
import android.annotation.NonNull;
import android.annotation.Nullable;
-import android.annotation.SystemApi;
import com.android.internal.annotations.GuardedBy;
@@ -29,7 +28,6 @@ import java.util.Objects;
*
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public final class TelephonyLookup {
private static final Object sLock = new Object();
diff --git a/core/java/android/timezone/TelephonyNetwork.java b/core/java/android/timezone/TelephonyNetwork.java
index 487b3f2f143b..823cd251fbf0 100644
--- a/core/java/android/timezone/TelephonyNetwork.java
+++ b/core/java/android/timezone/TelephonyNetwork.java
@@ -17,7 +17,6 @@
package android.timezone;
import android.annotation.NonNull;
-import android.annotation.SystemApi;
import java.util.Objects;
@@ -26,7 +25,6 @@ import java.util.Objects;
*
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public final class TelephonyNetwork {
@NonNull
diff --git a/core/java/android/timezone/TelephonyNetworkFinder.java b/core/java/android/timezone/TelephonyNetworkFinder.java
index 2ddd3d998d8e..4bfeff8a73ad 100644
--- a/core/java/android/timezone/TelephonyNetworkFinder.java
+++ b/core/java/android/timezone/TelephonyNetworkFinder.java
@@ -18,7 +18,6 @@ package android.timezone;
import android.annotation.NonNull;
import android.annotation.Nullable;
-import android.annotation.SystemApi;
import java.util.Objects;
@@ -27,7 +26,6 @@ import java.util.Objects;
*
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public final class TelephonyNetworkFinder {
@NonNull
diff --git a/core/java/android/timezone/TimeZoneFinder.java b/core/java/android/timezone/TimeZoneFinder.java
index c76bb1d1fd28..03f5013f230c 100644
--- a/core/java/android/timezone/TimeZoneFinder.java
+++ b/core/java/android/timezone/TimeZoneFinder.java
@@ -18,7 +18,6 @@ package android.timezone;
import android.annotation.NonNull;
import android.annotation.Nullable;
-import android.annotation.SystemApi;
import com.android.internal.annotations.GuardedBy;
@@ -29,7 +28,6 @@ import java.util.Objects;
*
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public final class TimeZoneFinder {
private static final Object sLock = new Object();
diff --git a/core/java/android/timezone/TzDataSetVersion.java b/core/java/android/timezone/TzDataSetVersion.java
index 605155e76c2c..f993012aeb1c 100644
--- a/core/java/android/timezone/TzDataSetVersion.java
+++ b/core/java/android/timezone/TzDataSetVersion.java
@@ -17,7 +17,6 @@
package android.timezone;
import android.annotation.NonNull;
-import android.annotation.SystemApi;
import com.android.internal.annotations.VisibleForTesting;
@@ -45,7 +44,6 @@ import java.util.Objects;
* @hide
*/
@VisibleForTesting
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public final class TzDataSetVersion {
/**
@@ -88,7 +86,6 @@ public final class TzDataSetVersion {
* A checked exception used in connection with time zone data sets.
* @hide
*/
- @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public static final class TzDataSetException extends Exception {
/** Creates an instance with a message. */
@@ -111,23 +108,23 @@ public final class TzDataSetVersion {
/** Returns the major version number. See {@link TzDataSetVersion}. */
public int getFormatMajorVersion() {
- return mDelegate.formatMajorVersion;
+ return mDelegate.getFormatMajorVersion();
}
/** Returns the minor version number. See {@link TzDataSetVersion}. */
public int getFormatMinorVersion() {
- return mDelegate.formatMinorVersion;
+ return mDelegate.getFormatMinorVersion();
}
/** Returns the tzdb version string. See {@link TzDataSetVersion}. */
@NonNull
public String getRulesVersion() {
- return mDelegate.rulesVersion;
+ return mDelegate.getRulesVersion();
}
/** Returns the Android revision. See {@link TzDataSetVersion}. */
public int getRevision() {
- return mDelegate.revision;
+ return mDelegate.getRevision();
}
@Override
diff --git a/core/java/android/timezone/ZoneInfoDb.java b/core/java/android/timezone/ZoneInfoDb.java
index 4612a56df117..9354a695812d 100644
--- a/core/java/android/timezone/ZoneInfoDb.java
+++ b/core/java/android/timezone/ZoneInfoDb.java
@@ -17,7 +17,6 @@
package android.timezone;
import android.annotation.NonNull;
-import android.annotation.SystemApi;
import com.android.internal.annotations.GuardedBy;
@@ -29,7 +28,6 @@ import java.util.Objects;
*
* @hide
*/
-@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public final class ZoneInfoDb {
private static final Object sLock = new Object();
diff --git a/core/java/android/util/FeatureFlagUtils.java b/core/java/android/util/FeatureFlagUtils.java
index 06fccaf8ea81..5fdac810af29 100644
--- a/core/java/android/util/FeatureFlagUtils.java
+++ b/core/java/android/util/FeatureFlagUtils.java
@@ -47,6 +47,9 @@ public class FeatureFlagUtils {
/** @hide */
public static final String BACKUP_NO_KV_DATA_CHANGE_CALLS =
"backup_enable_no_data_notification_calls";
+ /** @hide */
+ public static final String SETTINGS_DO_NOT_RESTORE_PRESERVED =
+ "settings_do_not_restore_preserved";
private static final Map<String, String> DEFAULT_FLAGS;
@@ -68,6 +71,11 @@ public class FeatureFlagUtils {
// Disabled until backup transports support it.
DEFAULT_FLAGS.put(BACKUP_NO_KV_DATA_CHANGE_CALLS, "false");
+ // Disabled by default until b/148278926 is resolved. This flags guards a feature
+ // introduced in R and will be removed in the next release (b/148367230).
+ DEFAULT_FLAGS.put(SETTINGS_DO_NOT_RESTORE_PRESERVED, "false");
+
+ DEFAULT_FLAGS.put("settings_tether_all_in_one", "false");
}
/**
diff --git a/core/java/android/util/RotationUtils.java b/core/java/android/util/RotationUtils.java
new file mode 100644
index 000000000000..a44ed59c14d4
--- /dev/null
+++ b/core/java/android/util/RotationUtils.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.util;
+
+import static android.view.Surface.ROTATION_0;
+import static android.view.Surface.ROTATION_180;
+import static android.view.Surface.ROTATION_270;
+import static android.view.Surface.ROTATION_90;
+
+import android.graphics.Insets;
+import android.view.Surface.Rotation;
+
+/**
+ * A class containing utility methods related to rotation.
+ *
+ * @hide
+ */
+public class RotationUtils {
+
+ /**
+ * Rotates an Insets according to the given rotation.
+ */
+ public static Insets rotateInsets(Insets insets, @Rotation int rotation) {
+ if (insets == null || insets == Insets.NONE) {
+ return insets;
+ }
+ Insets rotated;
+ switch (rotation) {
+ case ROTATION_0:
+ rotated = insets;
+ break;
+ case ROTATION_90:
+ rotated = Insets.of(
+ insets.top,
+ insets.right,
+ insets.bottom,
+ insets.left);
+ break;
+ case ROTATION_180:
+ rotated = Insets.of(
+ insets.right,
+ insets.bottom,
+ insets.left,
+ insets.top);
+ break;
+ case ROTATION_270:
+ rotated = Insets.of(
+ insets.bottom,
+ insets.left,
+ insets.top,
+ insets.right);
+ break;
+ default:
+ throw new IllegalArgumentException("unknown rotation: " + rotation);
+ }
+ return rotated;
+ }
+}
diff --git a/core/java/android/util/TimeUtils.java b/core/java/android/util/TimeUtils.java
index c325874405a5..4b3afbaada64 100644
--- a/core/java/android/util/TimeUtils.java
+++ b/core/java/android/util/TimeUtils.java
@@ -80,8 +80,8 @@ public class TimeUtils {
return null;
}
CountryTimeZones.OffsetResult offsetResult = countryTimeZones.lookupByOffsetWithBias(
- offsetMillis, isDst, null /* dstOffsetMillis */, whenMillis, bias);
- return offsetResult != null ? offsetResult.mTimeZone : null;
+ whenMillis, bias, offsetMillis, isDst);
+ return offsetResult != null ? offsetResult.getTimeZone() : null;
}
/**
@@ -109,8 +109,8 @@ public class TimeUtils {
List<String> timeZoneIds = new ArrayList<>();
for (TimeZoneMapping timeZoneMapping : countryTimeZones.getTimeZoneMappings()) {
- if (timeZoneMapping.showInPicker) {
- timeZoneIds.add(timeZoneMapping.timeZoneId);
+ if (timeZoneMapping.isShownInPicker()) {
+ timeZoneIds.add(timeZoneMapping.getTimeZoneId());
}
}
return Collections.unmodifiableList(timeZoneIds);
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java
index 0304328f734a..f61217d60686 100644
--- a/core/java/android/view/Display.java
+++ b/core/java/android/view/Display.java
@@ -57,8 +57,8 @@ import java.util.List;
* <li>The application display area specifies the part of the display that may contain
* an application window, excluding the system decorations. The application display area may
* be smaller than the real display area because the system subtracts the space needed
- * for decor elements such as the status bar. Use the following methods to query the
- * application display area: {@link #getSize}, {@link #getRectSize} and {@link #getMetrics}.</li>
+ * for decor elements such as the status bar. Use {@link WindowMetrics#getSize()} to query the
+ * application window size.</li>
* <li>The real display area specifies the part of the display that contains content
* including the system decorations. Even so, the real display area may be smaller than the
* physical size of the display if the window manager is emulating a smaller display
@@ -97,7 +97,7 @@ public final class Display {
// We cache the app width and height properties briefly between calls
// to getHeight() and getWidth() to ensure that applications perceive
// consistent results when the size changes (most of the time).
- // Applications should now be using getSize() instead.
+ // Applications should now be using WindowMetrics instead.
private static final int CACHED_APP_SIZE_DURATION_MILLIS = 20;
private long mLastCachedAppSizeUpdate;
private int mCachedAppWidthCompat;
@@ -674,7 +674,10 @@ public final class Display {
* </p>
*
* @param outSize A {@link Point} object to receive the size information.
+ * @deprecated Use {@link WindowManager#getCurrentWindowMetrics()} to obtain an instance of
+ * {@link WindowMetrics} and use {@link WindowMetrics#getSize()} instead.
*/
+ @Deprecated
public void getSize(Point outSize) {
synchronized (this) {
updateDisplayInfoLocked();
@@ -688,8 +691,10 @@ public final class Display {
* Gets the size of the display as a rectangle, in pixels.
*
* @param outSize A {@link Rect} object to receive the size information.
- * @see #getSize(Point)
+ * @deprecated Use {@link WindowMetrics#getSize()} to get the dimensions of the application
+ * window area.
*/
+ @Deprecated
public void getRectSize(Rect outSize) {
synchronized (this) {
updateDisplayInfoLocked();
@@ -752,7 +757,7 @@ public final class Display {
}
/**
- * @deprecated Use {@link #getSize(Point)} instead.
+ * @deprecated Use {@link WindowMetrics#getSize()} instead.
*/
@Deprecated
public int getWidth() {
@@ -763,7 +768,7 @@ public final class Display {
}
/**
- * @deprecated Use {@link #getSize(Point)} instead.
+ * @deprecated Use {@link WindowMetrics#getSize()} instead.
*/
@Deprecated
public int getHeight() {
@@ -1102,7 +1107,10 @@ public final class Display {
* </p>
*
* @param outMetrics A {@link DisplayMetrics} object to receive the metrics.
+ * @deprecated Use {@link WindowMetrics#getSize()} to get the dimensions of the application
+ * window area, and {@link Configuration#densityDpi} to get the current density.
*/
+ @Deprecated
public void getMetrics(DisplayMetrics outMetrics) {
synchronized (this) {
updateDisplayInfoLocked();
@@ -1506,6 +1514,7 @@ public final class Display {
public HdrCapabilities(int[] supportedHdrTypes, float maxLuminance,
float maxAverageLuminance, float minLuminance) {
mSupportedHdrTypes = supportedHdrTypes;
+ Arrays.sort(mSupportedHdrTypes);
mMaxLuminance = maxLuminance;
mMaxAverageLuminance = maxAverageLuminance;
mMinLuminance = minLuminance;
diff --git a/core/java/android/view/GestureDetector.java b/core/java/android/view/GestureDetector.java
index 19793b945ffd..f6c72c4eefbc 100644
--- a/core/java/android/view/GestureDetector.java
+++ b/core/java/android/view/GestureDetector.java
@@ -16,12 +16,12 @@
package android.view;
-import static android.util.StatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__DEEP_PRESS;
-import static android.util.StatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__DOUBLE_TAP;
-import static android.util.StatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__LONG_PRESS;
-import static android.util.StatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__SCROLL;
-import static android.util.StatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__SINGLE_TAP;
-import static android.util.StatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__UNKNOWN_CLASSIFICATION;
+import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__DEEP_PRESS;
+import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__DOUBLE_TAP;
+import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__LONG_PRESS;
+import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__SCROLL;
+import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__SINGLE_TAP;
+import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__UNKNOWN_CLASSIFICATION;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
@@ -29,7 +29,8 @@ import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
-import android.util.StatsLog;
+
+import com.android.internal.util.FrameworkStatsLog;
/**
* Detects various gestures and events using the supplied {@link MotionEvent}s.
@@ -887,8 +888,8 @@ public class GestureDetector {
mHasRecordedClassification = true;
return;
}
- StatsLog.write(
- StatsLog.TOUCH_GESTURE_CLASSIFIED,
+ FrameworkStatsLog.write(
+ FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED,
getClass().getName(),
classification,
(int) (SystemClock.uptimeMillis() - mCurrentMotionEvent.getDownTime()),
diff --git a/core/java/android/view/ITaskOrganizer.aidl b/core/java/android/view/ITaskOrganizer.aidl
index e92aafed6f22..5ccdd30a9d97 100644
--- a/core/java/android/view/ITaskOrganizer.aidl
+++ b/core/java/android/view/ITaskOrganizer.aidl
@@ -26,8 +26,7 @@ import android.app.ActivityManager;
* {@hide}
*/
oneway interface ITaskOrganizer {
- void taskAppeared(in IWindowContainer container,
- in ActivityManager.RunningTaskInfo taskInfo);
+ void taskAppeared(in ActivityManager.RunningTaskInfo taskInfo);
void taskVanished(in IWindowContainer container);
/**
@@ -35,4 +34,19 @@ oneway interface ITaskOrganizer {
* ActivityTaskManagerService#applyTaskOrganizerTransaction
*/
void transactionReady(int id, in SurfaceControl.Transaction t);
+
+ /**
+ * Will fire when core attributes of a Task's info change. Relevant properties include the
+ * {@link WindowConfiguration.ActivityType} and whether it is resizable.
+ *
+ * This is used, for example, during split-screen. The flow for starting is: Something sends an
+ * Intent with windowingmode. Then WM finds a matching root task and launches the new task into
+ * it. This causes the root task's info to change because now it has a task when it didn't
+ * before. The default Divider implementation interprets this as a request to enter
+ * split-screen mode and will move all other Tasks into the secondary root task. When WM
+ * applies this change, it triggers an info change in the secondary root task because it now
+ * has children. The Divider impl looks at the info and can see that the secondary root task
+ * has adopted an ActivityType of HOME and proceeds to show the minimized dock UX.
+ */
+ void onTaskInfoChanged(in ActivityManager.RunningTaskInfo info);
} \ No newline at end of file
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl
index e1f1581c53bc..f9a023fafc3c 100644
--- a/core/java/android/view/IWindowManager.aidl
+++ b/core/java/android/view/IWindowManager.aidl
@@ -120,12 +120,14 @@ interface IWindowManager
*
* @param token Token to be registered.
* @param type Window type to be used with this token.
+ * @param options A bundle used to pass window-related options.
* @param displayId The ID of the display where this token should be added.
* @param packageName The name of package to request to add window token.
* @return {@link WindowManagerGlobal#ADD_OKAY} if the addition was successful, an error code
* otherwise.
*/
- int addWindowContextToken(IBinder token, int type, int displayId, String packageName);
+ int addWindowTokenWithOptions(IBinder token, int type, int displayId, in Bundle options,
+ String packageName);
void addWindowToken(IBinder token, int type, int displayId);
void removeWindowToken(IBinder token, int displayId);
void prepareAppTransition(int transit, boolean alwaysKeepCurrent);
diff --git a/core/java/android/view/IWindowSession.aidl b/core/java/android/view/IWindowSession.aidl
index 1677357dedbe..91000a93b17c 100644
--- a/core/java/android/view/IWindowSession.aidl
+++ b/core/java/android/view/IWindowSession.aidl
@@ -318,5 +318,11 @@ interface IWindowSession {
* an input channel where the client can receive input.
*/
void grantInputChannel(int displayId, in SurfaceControl surface, in IWindow window,
- in IBinder hostInputToken, out InputChannel outInputChannel);
+ in IBinder hostInputToken, int flags, out InputChannel outInputChannel);
+
+ /**
+ * Update the flags on an input channel associated with a particular surface.
+ */
+ void updateInputChannel(in IBinder channelToken, int displayId, in SurfaceControl surface,
+ int flags);
}
diff --git a/core/java/android/view/ImeFocusController.java b/core/java/android/view/ImeFocusController.java
index 8d58ee83cd67..67e88a5a1831 100644
--- a/core/java/android/view/ImeFocusController.java
+++ b/core/java/android/view/ImeFocusController.java
@@ -253,4 +253,12 @@ public final class ImeFocusController {
public void setNextServedView(View view) {
mNextServedView = view;
}
+
+ /**
+ * Indicates whether the view's window has IME focused.
+ */
+ @UiThread
+ boolean hasImeFocus() {
+ return mHasImeFocus;
+ }
}
diff --git a/core/java/android/view/ImeInsetsSourceConsumer.java b/core/java/android/view/ImeInsetsSourceConsumer.java
index 23ba097f2b6d..f2263693897b 100644
--- a/core/java/android/view/ImeInsetsSourceConsumer.java
+++ b/core/java/android/view/ImeInsetsSourceConsumer.java
@@ -17,6 +17,7 @@
package android.view;
import static android.view.InsetsState.ITYPE_IME;
+import static android.view.InsetsState.toPublicType;
import android.annotation.Nullable;
import android.inputmethodservice.InputMethodService;
@@ -44,6 +45,12 @@ public final class ImeInsetsSourceConsumer extends InsetsSourceConsumer {
*/
private boolean mShowOnNextImeRender;
+ /**
+ * Tracks whether we have an outstanding request from the IME to show, but weren't able to
+ * execute it because we didn't have control yet.
+ */
+ private boolean mImeRequestedShow;
+
public ImeInsetsSourceConsumer(
InsetsState state, Supplier<Transaction> transactionSupplier,
InsetsController controller) {
@@ -81,13 +88,14 @@ public final class ImeInsetsSourceConsumer extends InsetsSourceConsumer {
public void onWindowFocusLost() {
super.onWindowFocusLost();
getImm().unregisterImeConsumer(this);
+ mImeRequestedShow = false;
}
@Override
- public void setControl(@Nullable InsetsSourceControl control) {
- super.setControl(control);
- if (control == null) {
- hide();
+ public void show(boolean fromIme) {
+ super.show(fromIme);
+ if (fromIme) {
+ mImeRequestedShow = true;
}
}
@@ -99,7 +107,11 @@ public final class ImeInsetsSourceConsumer extends InsetsSourceConsumer {
public @ShowResult int requestShow(boolean fromIme) {
// TODO: ResultReceiver for IME.
// TODO: Set mShowOnNextImeRender to automatically show IME and guard it with a flag.
- if (fromIme) {
+
+ // If we had a request before to show from IME (tracked with mImeRequestedShow), reaching
+ // this code here means that we now got control, so we can start the animation immediately.
+ if (fromIme || mImeRequestedShow) {
+ mImeRequestedShow = false;
return ShowResult.SHOW_IMMEDIATELY;
}
@@ -115,6 +127,15 @@ public final class ImeInsetsSourceConsumer extends InsetsSourceConsumer {
getImm().notifyImeHidden();
}
+ @Override
+ public void setControl(@Nullable InsetsSourceControl control, int[] showTypes,
+ int[] hideTypes) {
+ super.setControl(control, showTypes, hideTypes);
+ if (control == null) {
+ hide();
+ }
+ }
+
private boolean isDummyOrEmptyEditor(EditorInfo info) {
// TODO(b/123044812): Handle dummy input gracefully in IME Insets API
return info == null || (info.fieldId <= 0 && info.inputType <= 0);
diff --git a/core/java/android/view/InsetsAnimationControlImpl.java b/core/java/android/view/InsetsAnimationControlImpl.java
index 5c24047a2c19..0653b06e4b9d 100644
--- a/core/java/android/view/InsetsAnimationControlImpl.java
+++ b/core/java/android/view/InsetsAnimationControlImpl.java
@@ -16,8 +16,6 @@
package android.view;
-import static android.view.InsetsController.LAYOUT_INSETS_DURING_ANIMATION_HIDDEN;
-import static android.view.InsetsController.LAYOUT_INSETS_DURING_ANIMATION_SHOWN;
import static android.view.InsetsState.ISIDE_BOTTOM;
import static android.view.InsetsState.ISIDE_FLOATING;
import static android.view.InsetsState.ISIDE_LEFT;
@@ -188,7 +186,7 @@ public class InsetsAnimationControlImpl implements WindowInsetsAnimationControll
@Override
public void finish(boolean shown) {
- if (mCancelled) {
+ if (mCancelled || mFinished) {
return;
}
setInsetsAndAlpha(shown ? mShownInsets : mHiddenInsets, 1f /* alpha */, 1f /* fraction */);
@@ -210,6 +208,10 @@ public class InsetsAnimationControlImpl implements WindowInsetsAnimationControll
mListener.onCancelled();
}
+ public boolean isCancelled() {
+ return mCancelled;
+ }
+
InsetsAnimation getAnimation() {
return mAnimation;
}
diff --git a/core/java/android/view/InsetsController.java b/core/java/android/view/InsetsController.java
index 6f76497572d7..54de1bb3739d 100644
--- a/core/java/android/view/InsetsController.java
+++ b/core/java/android/view/InsetsController.java
@@ -39,6 +39,7 @@ import android.util.Log;
import android.util.Pair;
import android.util.Property;
import android.util.SparseArray;
+import android.view.InputDevice.MotionRange;
import android.view.InsetsSourceConsumer.ShowResult;
import android.view.InsetsState.InternalInsetsType;
import android.view.SurfaceControl.Transaction;
@@ -69,7 +70,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
private static final int ANIMATION_DURATION_HIDE_MS = 340;
private static final int PENDING_CONTROL_TIMEOUT_MS = 2000;
- static final Interpolator INTERPOLATOR = new PathInterpolator(0.4f, 0f, 0.2f, 1f);
+ public static final Interpolator INTERPOLATOR = new PathInterpolator(0.4f, 0f, 0.2f, 1f);
/**
* Layout mode during insets animation: The views should be laid out as if the changing inset
@@ -77,7 +78,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
* be called as if the changing insets types are shown, which will result in the views being
* laid out as if the insets are fully shown.
*/
- static final int LAYOUT_INSETS_DURING_ANIMATION_SHOWN = 0;
+ public static final int LAYOUT_INSETS_DURING_ANIMATION_SHOWN = 0;
/**
* Layout mode during insets animation: The views should be laid out as if the changing inset
@@ -85,7 +86,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
* be called as if the changing insets types are hidden, which will result in the views being
* laid out as if the insets are fully hidden.
*/
- static final int LAYOUT_INSETS_DURING_ANIMATION_HIDDEN = 1;
+ public static final int LAYOUT_INSETS_DURING_ANIMATION_HIDDEN = 1;
/**
* Determines the behavior of how the views should be laid out during an insets animation that
@@ -148,7 +149,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
@Override
public void set(WindowInsetsAnimationController controller, Insets value) {
controller.setInsetsAndAlpha(
- value, 1f /* alpha */, (((DefaultAnimationControlListener)
+ value, 1f /* alpha */, (((InternalAnimationControlListener)
((InsetsAnimationControlImpl) controller).getListener())
.getRawFraction()));
}
@@ -165,7 +166,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
private ObjectAnimator mAnimator;
protected boolean mShow;
- InternalAnimationControlListener(boolean show) {
+ public InternalAnimationControlListener(boolean show) {
mShow = show;
}
@@ -189,9 +190,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
onAnimationFinish();
}
});
- setStartingAnimation(true);
mAnimator.start();
- setStartingAnimation(false);
}
@Override
@@ -202,9 +201,6 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
}
}
- protected void setStartingAnimation(boolean startingAnimation) {
- }
-
protected void onAnimationFinish() {
mController.finish(mShow);
}
@@ -213,7 +209,10 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
return (float) mAnimator.getCurrentPlayTime() / mAnimator.getDuration();
}
- protected long getDurationMs() {
+ /**
+ * To get the animation duration in MS.
+ */
+ public long getDurationMs() {
if (mAnimator != null) {
return mAnimator.getDuration();
}
@@ -235,16 +234,6 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
final @AnimationType int type;
}
- private class DefaultAnimationControlListener extends InternalAnimationControlListener {
- DefaultAnimationControlListener(boolean show) {
- super(show);
- }
-
- @Override
- protected void setStartingAnimation(boolean startingAnimation) {
- mStartingAnimation = startingAnimation;
- }
- }
/**
* Represents a control request that we had to defer because we are waiting for the IME to
* process our show request.
@@ -273,7 +262,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
private final String TAG = "InsetsControllerImpl";
private final InsetsState mState = new InsetsState();
- private final InsetsState mTmpState = new InsetsState();
+ private final InsetsState mLastDispachedState = new InsetsState();
private final Rect mFrame = new Rect();
private final BiFunction<InsetsController, Integer, InsetsSourceConsumer> mConsumerCreator;
@@ -367,15 +356,20 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
return mState;
}
- boolean onStateChanged(InsetsState state) {
- if (mState.equals(state)) {
+ public InsetsState getLastDispatchedState() {
+ return mLastDispachedState;
+ }
+
+ @VisibleForTesting
+ public boolean onStateChanged(InsetsState state) {
+ if (mState.equals(state) && mLastDispachedState.equals(state)) {
return false;
}
mState.set(state);
- mTmpState.set(state, true /* copySources */);
+ mLastDispachedState.set(state, true /* copySources */);
applyLocalVisibilityOverride();
mViewRoot.notifyInsetsChanged();
- if (!mState.equals(mTmpState)) {
+ if (!mState.equals(mLastDispachedState)) {
sendStateToWindowManager();
}
return true;
@@ -419,6 +413,9 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
}
}
+ int[] showTypes = new int[1];
+ int[] hideTypes = new int[1];
+
// Ensure to update all existing source consumers
for (int i = mSourceConsumers.size() - 1; i >= 0; i--) {
final InsetsSourceConsumer consumer = mSourceConsumers.valueAt(i);
@@ -426,15 +423,23 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
// control may be null, but we still need to update the control to null if it got
// revoked.
- consumer.setControl(control);
+ consumer.setControl(control, showTypes, hideTypes);
}
// Ensure to create source consumers if not available yet.
for (int i = mTmpControlArray.size() - 1; i >= 0; i--) {
final InsetsSourceControl control = mTmpControlArray.valueAt(i);
- getSourceConsumer(control.getType()).setControl(control);
+ InsetsSourceConsumer consumer = getSourceConsumer(control.getType());
+ consumer.setControl(control, showTypes, hideTypes);
+
}
mTmpControlArray.clear();
+ if (showTypes[0] != 0) {
+ applyAnimation(showTypes[0], true /* show */, false /* fromIme */);
+ }
+ if (hideTypes[0] != 0) {
+ applyAnimation(hideTypes[0], false /* show */, false /* fromIme */);
+ }
}
@Override
@@ -465,7 +470,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
@InternalInsetsType int internalType = internalTypes.valueAt(i);
@AnimationType int animationType = getAnimationType(internalType);
InsetsSourceConsumer consumer = getSourceConsumer(internalType);
- if (mState.getSource(internalType).isVisible() && animationType == ANIMATION_TYPE_NONE
+ if (consumer.isRequestedVisible() && animationType == ANIMATION_TYPE_NONE
|| animationType == ANIMATION_TYPE_SHOW) {
// no-op: already shown or animating in (because window visibility is
// applied before starting animation).
@@ -488,7 +493,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
@InternalInsetsType int internalType = internalTypes.valueAt(i);
@AnimationType int animationType = getAnimationType(internalType);
InsetsSourceConsumer consumer = getSourceConsumer(internalType);
- if (!mState.getSource(internalType).isVisible() && animationType == ANIMATION_TYPE_NONE
+ if (!consumer.isRequestedVisible() && animationType == ANIMATION_TYPE_NONE
|| animationType == ANIMATION_TYPE_HIDE) {
// no-op: already hidden or animating out.
continue;
@@ -535,7 +540,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
final SparseArray<InsetsSourceControl> controls = new SparseArray<>();
Pair<Integer, Boolean> typesReadyPair = collectSourceControls(
- fromIme, internalTypes, controls);
+ fromIme, internalTypes, controls, animationType);
int typesReady = typesReadyPair.first;
boolean imeReady = typesReadyPair.second;
if (!imeReady) {
@@ -562,17 +567,20 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
* @return Pair of (types ready to animate, IME ready to animate).
*/
private Pair<Integer, Boolean> collectSourceControls(boolean fromIme,
- ArraySet<Integer> internalTypes, SparseArray<InsetsSourceControl> controls) {
+ ArraySet<Integer> internalTypes, SparseArray<InsetsSourceControl> controls,
+ @AnimationType int animationType) {
int typesReady = 0;
boolean imeReady = true;
for (int i = internalTypes.size() - 1; i >= 0; i--) {
InsetsSourceConsumer consumer = getSourceConsumer(internalTypes.valueAt(i));
- boolean setVisible = !consumer.isRequestedVisible();
- if (setVisible) {
+ boolean show = animationType == ANIMATION_TYPE_SHOW
+ || animationType == ANIMATION_TYPE_USER;
+ boolean canRun = false;
+ if (show) {
// Show request
switch(consumer.requestShow(fromIme)) {
case ShowResult.SHOW_IMMEDIATELY:
- typesReady |= InsetsState.toPublicType(consumer.getType());
+ canRun = true;
break;
case ShowResult.IME_SHOW_DELAYED:
imeReady = false;
@@ -589,11 +597,22 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
if (!fromIme) {
consumer.notifyHidden();
}
- typesReady |= InsetsState.toPublicType(consumer.getType());
+ canRun = true;
+ }
+ if (!canRun) {
+ continue;
}
final InsetsSourceControl control = consumer.getControl();
if (control != null) {
controls.put(consumer.getType(), control);
+ typesReady |= toPublicType(consumer.getType());
+ } else if (animationType == ANIMATION_TYPE_SHOW) {
+
+ // We don't have a control at the moment. However, we still want to update requested
+ // visibility state such that in case we get control, we can apply show animation.
+ consumer.show(fromIme);
+ } else if (animationType == ANIMATION_TYPE_HIDE) {
+ consumer.hide();
}
}
return new Pair<>(typesReady, imeReady);
@@ -788,7 +807,8 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
return;
}
- final DefaultAnimationControlListener listener = new DefaultAnimationControlListener(show);
+ final InternalAnimationControlListener listener =
+ new InternalAnimationControlListener(show);
// Show/hide animations always need to be relative to the display frame, in order that shown
// and hidden state insets are correct.
controlAnimationUnchecked(
@@ -808,7 +828,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
private void showDirectly(@InsetsType int types) {
final ArraySet<Integer> internalTypes = InsetsState.toInternalType(types);
for (int i = internalTypes.size() - 1; i >= 0; i--) {
- getSourceConsumer(internalTypes.valueAt(i)).show();
+ getSourceConsumer(internalTypes.valueAt(i)).show(false /* fromIme */);
}
}
@@ -840,8 +860,13 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
@Override
public boolean onPreDraw() {
mViewRoot.mView.getViewTreeObserver().removeOnPreDrawListener(this);
+ if (controller.isCancelled()) {
+ return true;
+ }
mViewRoot.mView.dispatchWindowInsetsAnimationStart(animation, bounds);
+ mStartingAnimation = true;
listener.onReady(controller, types);
+ mStartingAnimation = false;
return true;
}
});
diff --git a/core/java/android/view/InsetsSource.java b/core/java/android/view/InsetsSource.java
index 37034ee065ee..d4961eab7473 100644
--- a/core/java/android/view/InsetsSource.java
+++ b/core/java/android/view/InsetsSource.java
@@ -53,6 +53,9 @@ public class InsetsSource implements Parcelable {
mType = other.mType;
mFrame = new Rect(other.mFrame);
mVisible = other.mVisible;
+ mVisibleFrame = other.mVisibleFrame != null
+ ? new Rect(other.mVisibleFrame)
+ : null;
}
public void setFrame(Rect frame) {
@@ -165,6 +168,7 @@ public class InsetsSource implements Parcelable {
public int hashCode() {
int result = mType;
result = 31 * result + mFrame.hashCode();
+ result = 31 * result + (mVisibleFrame != null ? mVisibleFrame.hashCode() : 0);
result = 31 * result + (mVisible ? 1 : 0);
return result;
}
@@ -189,6 +193,15 @@ public class InsetsSource implements Parcelable {
dest.writeBoolean(mVisible);
}
+ @Override
+ public String toString() {
+ return "InsetsSource: {"
+ + "mType=" + InsetsState.typeToString(mType)
+ + ", mFrame=" + mFrame.toShortString()
+ + ", mVisible" + mVisible
+ + "}";
+ }
+
public static final @android.annotation.NonNull Creator<InsetsSource> CREATOR = new Creator<InsetsSource>() {
public InsetsSource createFromParcel(Parcel in) {
diff --git a/core/java/android/view/InsetsSourceConsumer.java b/core/java/android/view/InsetsSourceConsumer.java
index ddfd38c0320b..e6497c00c8dd 100644
--- a/core/java/android/view/InsetsSourceConsumer.java
+++ b/core/java/android/view/InsetsSourceConsumer.java
@@ -17,11 +17,14 @@
package android.view;
import static android.view.InsetsController.ANIMATION_TYPE_NONE;
+import static android.view.InsetsState.toPublicType;
import android.annotation.IntDef;
import android.annotation.Nullable;
+import android.util.MutableShort;
import android.view.InsetsState.InternalInsetsType;
import android.view.SurfaceControl.Transaction;
+import android.view.WindowInsets.Type.InsetsType;
import com.android.internal.annotations.VisibleForTesting;
@@ -71,18 +74,48 @@ public class InsetsSourceConsumer {
mRequestedVisible = InsetsState.getDefaultVisibility(type);
}
- public void setControl(@Nullable InsetsSourceControl control) {
+ /**
+ * Updates the control delivered from the server.
+
+ * @param showTypes An integer array with a single entry that determines which types a show
+ * animation should be run after setting the control.
+ * @param hideTypes An integer array with a single entry that determines which types a hide
+ * animation should be run after setting the control.
+ */
+ public void setControl(@Nullable InsetsSourceControl control,
+ @InsetsType int[] showTypes, @InsetsType int[] hideTypes) {
if (mSourceControl == control) {
return;
}
mSourceControl = control;
- applyHiddenToControl();
- if (applyLocalVisibilityOverride()) {
- mController.notifyVisibilityChanged();
- }
+
+ // We are loosing control
if (mSourceControl == null) {
mController.notifyControlRevoked(this);
+
+ // Restore server visibility.
+ mState.getSource(getType()).setVisible(
+ mController.getLastDispatchedState().getSource(getType()).isVisible());
+ applyLocalVisibilityOverride();
+ return;
}
+
+ // We are gaining control, and need to run an animation since previous state didn't match
+ if (mRequestedVisible != mState.getSource(mType).isVisible()) {
+ if (mRequestedVisible) {
+ showTypes[0] |= toPublicType(getType());
+ } else {
+ hideTypes[0] |= toPublicType(getType());
+ }
+ return;
+ }
+
+ // We are gaining control, but don't need to run an animation. However make sure that the
+ // leash visibility is still up to date.
+ if (applyLocalVisibilityOverride()) {
+ mController.notifyVisibilityChanged();
+ }
+ applyHiddenToControl();
}
@VisibleForTesting
@@ -95,7 +128,7 @@ public class InsetsSourceConsumer {
}
@VisibleForTesting
- public void show() {
+ public void show(boolean fromIme) {
setRequestedVisible(true);
}
@@ -172,17 +205,14 @@ public class InsetsSourceConsumer {
* the moment.
*/
private void setRequestedVisible(boolean requestedVisible) {
- if (mRequestedVisible == requestedVisible) {
- return;
- }
mRequestedVisible = requestedVisible;
- applyLocalVisibilityOverride();
- mController.notifyVisibilityChanged();
+ if (applyLocalVisibilityOverride()) {
+ mController.notifyVisibilityChanged();
+ }
}
private void applyHiddenToControl() {
- if (mSourceControl == null || mSourceControl.getLeash() == null
- || mController.getAnimationType(mType) != ANIMATION_TYPE_NONE) {
+ if (mSourceControl == null || mSourceControl.getLeash() == null) {
return;
}
diff --git a/core/java/android/view/InsetsState.java b/core/java/android/view/InsetsState.java
index bd19799bb664..8648682aaa2e 100644
--- a/core/java/android/view/InsetsState.java
+++ b/core/java/android/view/InsetsState.java
@@ -21,7 +21,6 @@ import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL;
import static android.view.ViewRootImpl.NEW_INSETS_MODE_IME;
import static android.view.ViewRootImpl.NEW_INSETS_MODE_NONE;
import static android.view.ViewRootImpl.sNewInsetsMode;
-import static android.view.WindowInsets.Type.IME;
import static android.view.WindowInsets.Type.MANDATORY_SYSTEM_GESTURES;
import static android.view.WindowInsets.Type.SIZE;
import static android.view.WindowInsets.Type.SYSTEM_GESTURES;
@@ -43,7 +42,6 @@ import android.util.ArraySet;
import android.util.SparseIntArray;
import android.view.WindowInsets.Type;
import android.view.WindowInsets.Type.InsetsType;
-import android.view.WindowManager.LayoutParams;
import android.view.WindowManager.LayoutParams.SoftInputModeFlags;
import java.io.PrintWriter;
@@ -366,7 +364,12 @@ public class InsetsState implements Parcelable {
return result;
}
- static @Type.InsetsType int toPublicType(@InternalInsetsType int type) {
+ /**
+ * Converting a internal type to the public type.
+ * @param type internal insets type, {@code InternalInsetsType}.
+ * @return public insets type, {@code Type.InsetsType}.
+ */
+ public static @Type.InsetsType int toPublicType(@InternalInsetsType int type) {
switch (type) {
case ITYPE_STATUS_BAR:
return Type.STATUS_BARS;
@@ -510,5 +513,13 @@ public class InsetsState implements Parcelable {
mSources.put(source.getType(), source);
}
}
+
+ @Override
+ public String toString() {
+ return "InsetsState: {"
+ + "mDisplayFrame=" + mDisplayFrame
+ + ", mSources=" + mSources
+ + "}";
+ }
}
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java
index bee05a9a57d0..fe9e36e53cd8 100644
--- a/core/java/android/view/SurfaceControl.java
+++ b/core/java/android/view/SurfaceControl.java
@@ -152,7 +152,8 @@ public final class SurfaceControl implements Parcelable {
int L, int T, int R, int B);
private static native void nativeSetDisplaySize(long transactionObj, IBinder displayToken,
int width, int height);
- private static native SurfaceControl.PhysicalDisplayInfo[] nativeGetDisplayConfigs(
+ private static native SurfaceControl.DisplayInfo nativeGetDisplayInfo(IBinder displayToken);
+ private static native SurfaceControl.DisplayConfig[] nativeGetDisplayConfigs(
IBinder displayToken);
private static native DisplayedContentSamplingAttributes
nativeGetDisplayedContentSamplingAttributes(IBinder displayToken);
@@ -1278,140 +1279,45 @@ public final class SurfaceControl implements Parcelable {
Integer.toHexString(System.identityHashCode(this));
}
- /*
- * set display parameters.
- * needs to be inside open/closeTransaction block
+ /**
+ * Immutable information about physical display.
+ *
+ * @hide
*/
+ public static final class DisplayInfo {
+ public float density;
+ public boolean secure;
+
+ @Override
+ public String toString() {
+ return "DisplayInfo{density=" + density + ", secure=" + secure + "}";
+ }
+ }
/**
- * Describes the properties of a physical display known to surface flinger.
+ * Configuration supported by physical display.
+ *
* @hide
*/
- public static final class PhysicalDisplayInfo {
- /**
- * @hide
- */
- @UnsupportedAppUsage
+ public static final class DisplayConfig {
public int width;
-
- /**
- * @hide
- */
- @UnsupportedAppUsage
public int height;
-
- /**
- * @hide
- */
- @UnsupportedAppUsage
- public float refreshRate;
-
- /**
- * @hide
- */
- @UnsupportedAppUsage
- public float density;
-
- /**
- * @hide
- */
- @UnsupportedAppUsage
public float xDpi;
-
- /**
- * @hide
- */
- @UnsupportedAppUsage
public float yDpi;
- /**
- * @hide
- */
- @UnsupportedAppUsage
- public boolean secure;
-
- /**
- * @hide
- */
- @UnsupportedAppUsage
+ public float refreshRate;
public long appVsyncOffsetNanos;
-
- /**
- * @hide
- */
- @UnsupportedAppUsage
public long presentationDeadlineNanos;
- /**
- * @hide
- */
- @UnsupportedAppUsage
- public PhysicalDisplayInfo() {
- }
-
- /**
- * @hide
- */
- public PhysicalDisplayInfo(PhysicalDisplayInfo other) {
- copyFrom(other);
- }
-
- /**
- * @hide
- */
- @Override
- public boolean equals(Object o) {
- return o instanceof PhysicalDisplayInfo && equals((PhysicalDisplayInfo)o);
- }
-
- /**
- * @hide
- */
- public boolean equals(PhysicalDisplayInfo other) {
- return other != null
- && width == other.width
- && height == other.height
- && refreshRate == other.refreshRate
- && density == other.density
- && xDpi == other.xDpi
- && yDpi == other.yDpi
- && secure == other.secure
- && appVsyncOffsetNanos == other.appVsyncOffsetNanos
- && presentationDeadlineNanos == other.presentationDeadlineNanos;
- }
-
- /**
- * @hide
- */
- @Override
- public int hashCode() {
- return 0; // don't care
- }
-
- /**
- * @hide
- */
- public void copyFrom(PhysicalDisplayInfo other) {
- width = other.width;
- height = other.height;
- refreshRate = other.refreshRate;
- density = other.density;
- xDpi = other.xDpi;
- yDpi = other.yDpi;
- secure = other.secure;
- appVsyncOffsetNanos = other.appVsyncOffsetNanos;
- presentationDeadlineNanos = other.presentationDeadlineNanos;
- }
-
- /**
- * @hide
- */
@Override
public String toString() {
- return "PhysicalDisplayInfo{" + width + " x " + height + ", " + refreshRate + " fps, "
- + "density " + density + ", " + xDpi + " x " + yDpi + " dpi, secure " + secure
- + ", appVsyncOffset " + appVsyncOffsetNanos
- + ", bufferDeadline " + presentationDeadlineNanos + "}";
+ return "DisplayConfig{width=" + width
+ + ", height=" + height
+ + ", xDpi=" + xDpi
+ + ", yDpi=" + yDpi
+ + ", refreshRate=" + refreshRate
+ + ", appVsyncOffsetNanos=" + appVsyncOffsetNanos
+ + ", presentationDeadlineNanos=" + presentationDeadlineNanos + "}";
}
}
@@ -1428,8 +1334,17 @@ public final class SurfaceControl implements Parcelable {
/**
* @hide
*/
- @UnsupportedAppUsage
- public static SurfaceControl.PhysicalDisplayInfo[] getDisplayConfigs(IBinder displayToken) {
+ public static SurfaceControl.DisplayInfo getDisplayInfo(IBinder displayToken) {
+ if (displayToken == null) {
+ throw new IllegalArgumentException("displayToken must not be null");
+ }
+ return nativeGetDisplayInfo(displayToken);
+ }
+
+ /**
+ * @hide
+ */
+ public static SurfaceControl.DisplayConfig[] getDisplayConfigs(IBinder displayToken) {
if (displayToken == null) {
throw new IllegalArgumentException("displayToken must not be null");
}
@@ -1825,7 +1740,7 @@ public final class SurfaceControl implements Parcelable {
}
/**
- * TODO(116025192): Remove this stopgap once framework is display-agnostic.
+ * TODO(b/116025192): Remove this stopgap once framework is display-agnostic.
*
* @hide
*/
diff --git a/core/java/android/view/SurfaceControlViewHost.aidl b/core/java/android/view/SurfaceControlViewHost.aidl
new file mode 100644
index 000000000000..3b31ab834a51
--- /dev/null
+++ b/core/java/android/view/SurfaceControlViewHost.aidl
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) 2020, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.view;
+
+parcelable SurfaceControlViewHost.SurfacePackage; \ No newline at end of file
diff --git a/core/java/android/view/SurfaceControlViewHost.java b/core/java/android/view/SurfaceControlViewHost.java
index 71cf051a4e08..bf848196454d 100644
--- a/core/java/android/view/SurfaceControlViewHost.java
+++ b/core/java/android/view/SurfaceControlViewHost.java
@@ -138,6 +138,7 @@ public class SurfaceControlViewHost {
/**
* @hide
*/
+ @TestApi
public void addView(@NonNull View view, WindowManager.LayoutParams attrs) {
mViewRoot.setView(view, attrs, null);
}
@@ -161,6 +162,7 @@ public class SurfaceControlViewHost {
/**
* @hide
*/
+ @TestApi
public void relayout(WindowManager.LayoutParams attrs) {
mViewRoot.setLayoutParams(attrs, false);
mViewRoot.setReportNextDraw();
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index 75d5538faedd..b1c354f6f717 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -1570,7 +1570,8 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall
private void reparentSurfacePackage(SurfaceControl.Transaction t,
SurfaceControlViewHost.SurfacePackage p) {
// TODO: Link accessibility IDs here.
- t.reparent(p.getSurfaceControl(), mSurfaceControl);
+ final SurfaceControl sc = p.getSurfaceControl();
+ t.reparent(sc, mSurfaceControl).show(sc);
}
/**
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index d70bf22fcfbf..a407bd8f001e 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -17,13 +17,14 @@
package android.view;
import static android.content.res.Resources.ID_NULL;
-import static android.util.StatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__DEEP_PRESS;
-import static android.util.StatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__LONG_PRESS;
-import static android.util.StatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__SINGLE_TAP;
-import static android.util.StatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__UNKNOWN_CLASSIFICATION;
import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL;
import static android.view.accessibility.AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED;
+import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__DEEP_PRESS;
+import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__LONG_PRESS;
+import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__SINGLE_TAP;
+import static com.android.internal.util.FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__UNKNOWN_CLASSIFICATION;
+
import static java.lang.Math.max;
import android.animation.AnimatorInflater;
@@ -102,7 +103,6 @@ import android.util.Property;
import android.util.SparseArray;
import android.util.SparseIntArray;
import android.util.StateSet;
-import android.util.StatsLog;
import android.util.SuperNotCalledException;
import android.util.TypedValue;
import android.view.AccessibilityIterators.CharacterTextSegmentIterator;
@@ -142,6 +142,7 @@ import android.widget.FrameLayout;
import android.widget.ScrollBarDrawable;
import com.android.internal.R;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.view.TooltipPopup;
import com.android.internal.view.menu.MenuBuilder;
import com.android.internal.widget.ScrollBarUtils;
@@ -3654,8 +3655,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
*
* @deprecated For floating windows, use {@link LayoutParams#setFitInsetsTypes(int)} with
* {@link Type#navigationBars()}. For non-floating windows that fill the screen, call
- * {@link Window#setOnContentApplyWindowInsetsListener} with {@code null} or a listener that
- * doesn't fit the navigation bar on the window content level.
+ * {@link Window#setDecorFitsSystemWindows(boolean)} with {@code false}.
*/
public static final int SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION = 0x00000200;
@@ -3683,8 +3683,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
*
* @deprecated For floating windows, use {@link LayoutParams#setFitInsetsTypes(int)} with
* {@link Type#statusBars()} ()}. For non-floating windows that fill the screen, call
- * {@link Window#setOnContentApplyWindowInsetsListener} with {@code null} or a listener that
- * doesn't fit the status bar on the window content level.
+ * {@link Window#setDecorFitsSystemWindows(boolean)} with {@code false}.
*/
@Deprecated
public static final int SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN = 0x00000400;
@@ -4673,7 +4672,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
private ArrayList<OnUnhandledKeyEventListener> mUnhandledKeyListeners;
- private WindowInsetsAnimationCallback mWindowInsetsAnimationCallback;
+ WindowInsetsAnimationCallback mWindowInsetsAnimationCallback;
/**
* This lives here since it's only valid for interactive views.
@@ -11537,7 +11536,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
/**
- * @see #PFLAG4_OPTIONAL_FITS_SYSTEM_WINDOWS
+ * @see #PFLAG4_FRAMEWORK_OPTIONAL_FITS_SYSTEM_WINDOWS
* @hide
*/
public void makeFrameworkOptionalFitsSystemWindows() {
@@ -11545,6 +11544,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
/**
+ * @hide
+ */
+ public boolean isFrameworkOptionalFitsSystemWindows() {
+ return (mPrivateFlags4 & PFLAG4_FRAMEWORK_OPTIONAL_FITS_SYSTEM_WINDOWS) != 0;
+ }
+
+ /**
* Returns the visibility status for this view.
*
* @return One of {@link #VISIBLE}, {@link #INVISIBLE}, or {@link #GONE}.
@@ -14464,7 +14470,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
* @hide
*/
public boolean hasImeFocus() {
- return mAttachInfo != null && mAttachInfo.mHasImeFocus;
+ return getViewRootImpl() != null && getViewRootImpl().getImeFocusController().hasImeFocus();
}
/**
@@ -28054,7 +28060,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
private boolean mOriginalPressedState;
/**
* The classification of the long click being checked: one of the
- * StatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__* constants.
+ * FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED__CLASSIFICATION__* constants.
*/
private int mClassification;
@@ -28120,7 +28126,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
// To avoid negatively impacting View performance, the latency and displacement metrics
// are omitted.
- StatsLog.write(StatsLog.TOUCH_GESTURE_CLASSIFIED, getClass().getName(), classification);
+ FrameworkStatsLog.write(FrameworkStatsLog.TOUCH_GESTURE_CLASSIFIED, getClass().getName(),
+ classification);
}
/**
@@ -28718,11 +28725,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
boolean mHasWindowFocus;
/**
- * Indicates whether the view's window has IME focused.
- */
- boolean mHasImeFocus;
-
- /**
* The current visibility of the window.
*/
int mWindowVisibility;
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java
index a66b508cf523..47a79bd5484a 100644
--- a/core/java/android/view/ViewConfiguration.java
+++ b/core/java/android/view/ViewConfiguration.java
@@ -28,6 +28,7 @@ import android.os.Build;
import android.os.RemoteException;
import android.provider.Settings;
import android.util.DisplayMetrics;
+import android.util.Size;
import android.util.SparseArray;
import android.util.TypedValue;
@@ -408,11 +409,9 @@ public class ViewConfiguration {
mAmbiguousGestureMultiplier = multiplierValue.getFloat();
// Size of the screen in bytes, in ARGB_8888 format
- final WindowManager win = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
- final Display display = win.getDefaultDisplay();
- final Point size = new Point();
- display.getRealSize(size);
- mMaximumDrawingCacheSize = 4 * size.x * size.y;
+ final WindowManager windowManager = context.getSystemService(WindowManager.class);
+ final Size maxWindowSize = windowManager.getMaximumWindowMetrics().getSize();
+ mMaximumDrawingCacheSize = 4 * maxWindowSize.getWidth() * maxWindowSize.getHeight();
mOverscrollDistance = (int) (sizeAndDensity * OVERSCROLL_DISTANCE + 0.5f);
mOverflingDistance = (int) (sizeAndDensity * OVERFLING_DISTANCE + 0.5f);
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index 4f03ca152850..d416d420feda 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -7239,6 +7239,18 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
public void dispatchWindowInsetsAnimationPrepare(
@NonNull InsetsAnimation animation) {
super.dispatchWindowInsetsAnimationPrepare(animation);
+
+ // If we are root-level content view that fits insets, set dispatch mode to stop to imitate
+ // consume behavior.
+ boolean isOptionalFitSystemWindows = (mViewFlags & OPTIONAL_FITS_SYSTEM_WINDOWS) != 0
+ || isFrameworkOptionalFitsSystemWindows();
+ if (isOptionalFitSystemWindows && mAttachInfo != null
+ && getListenerInfo().mWindowInsetsAnimationCallback == null
+ && mAttachInfo.mContentOnApplyWindowInsetsListener != null) {
+ mInsetsAnimationDispatchMode = DISPATCH_MODE_STOP;
+ return;
+ }
+
if (mInsetsAnimationDispatchMode == DISPATCH_MODE_STOP) {
return;
}
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 841c43fb1392..159b93eb12dd 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -216,7 +216,7 @@ public final class ViewRootImpl implements ViewParent,
* If set to 1, this will switch to a mode where we only use the new approach for IME, but not
* for the status/navigation bar.
*/
- private static final String USE_NEW_INSETS_PROPERTY = "persist.wm.new_insets";
+ private static final String USE_NEW_INSETS_PROPERTY = "persist.debug.new_insets";
/**
* @see #USE_NEW_INSETS_PROPERTY
@@ -1691,7 +1691,7 @@ public final class ViewRootImpl implements ViewParent,
.build();
setBoundsLayerCrop();
mTransaction.show(mBoundsLayer).apply();
- }
+ }
return mBoundsLayer;
}
@@ -1699,7 +1699,9 @@ public final class ViewRootImpl implements ViewParent,
if (mSurfaceControl == null || !mSurfaceControl.isValid()) {
return null;
}
- if ((mBlastBufferQueue != null) && mBlastSurfaceControl.isValid()) {
+ if ((mBlastSurfaceControl != null)
+ && (mBlastBufferQueue == null)
+ && mBlastSurfaceControl.isValid()) {
mBlastBufferQueue = new BLASTBufferQueue(
mBlastSurfaceControl, width, height);
}
@@ -1742,12 +1744,9 @@ public final class ViewRootImpl implements ViewParent,
mSurface.release();
mSurfaceControl.release();
- if (mBlastBufferQueue != null) {
- mTransaction.remove(mBlastSurfaceControl).apply();
- mBlastSurfaceControl = null;
- // We should probably add an explicit dispose.
- mBlastBufferQueue = null;
- }
+ mBlastSurfaceControl.release();
+ // We should probably add an explicit dispose.
+ mBlastBufferQueue = null;
}
/**
@@ -3143,8 +3142,7 @@ public final class ViewRootImpl implements ViewParent,
}
mAttachInfo.mHasWindowFocus = hasWindowFocus;
- mAttachInfo.mHasImeFocus = mImeFocusController.updateImeFocusable(
- mWindowAttributes, true /* force */);
+ mImeFocusController.updateImeFocusable(mWindowAttributes, true /* force */);
mImeFocusController.onPreWindowFocus(hasWindowFocus, mWindowAttributes);
if (mView != null) {
@@ -3348,7 +3346,6 @@ public final class ViewRootImpl implements ViewParent,
private void performLayout(WindowManager.LayoutParams lp, int desiredWindowWidth,
int desiredWindowHeight) {
- mLayoutRequested = false;
mScrollMayChange = true;
mInLayout = true;
@@ -4887,8 +4884,14 @@ public final class ViewRootImpl implements ViewParent,
break;
case MSG_INSETS_CONTROL_CHANGED: {
SomeArgs args = (SomeArgs) msg.obj;
- mInsetsController.onControlsChanged((InsetsSourceControl[]) args.arg2);
+
+ // Deliver state change before control change, such that:
+ // a) When gaining control, controller can compare with server state to evaluate
+ // whether it needs to run animation.
+ // b) When loosing control, controller can restore server state by taking last
+ // dispatched state as truth.
mInsetsController.onStateChanged((InsetsState) args.arg1);
+ mInsetsController.onControlsChanged((InsetsSourceControl[]) args.arg2);
break;
}
case MSG_SHOW_INSETS: {
diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java
index 0ef4e338f81c..4b284dbf9ed4 100644
--- a/core/java/android/view/Window.java
+++ b/core/java/android/view/Window.java
@@ -697,12 +697,10 @@ public abstract class Window {
}
/**
- * Listener for applying window insets on the content of a window in a custom way.
+ * Listener for applying window insets on the content of a window. Used only by the framework to
+ * fit content according to legacy SystemUI flags.
*
- * <p>Apps may choose to implement this interface if they want to apply custom policy
- * to the way that window insets are treated for fitting root-level content views.
- *
- * @see Window#setOnContentApplyWindowInsetsListener(OnContentApplyWindowInsetsListener)
+ * @hide
*/
public interface OnContentApplyWindowInsetsListener {
@@ -716,13 +714,15 @@ public abstract class Window {
*
* @param insets The root level insets that are about to be dispatched
* @return A pair, with the first element containing the insets to apply as margin to the
- * root-level content views, and the second element determining what should be
- * dispatched to the content view.
+ * root-level content views, and the second element determining what should be
+ * dispatched to the content view.
*/
- @NonNull Pair<Insets, WindowInsets> onContentApplyWindowInsets(
+ @NonNull
+ Pair<Insets, WindowInsets> onContentApplyWindowInsets(
@NonNull WindowInsets insets);
}
+
public Window(Context context) {
mContext = context;
mFeatures = mLocalFeatures = getDefaultFeatures(context);
@@ -1311,33 +1311,21 @@ public abstract class Window {
}
/**
- * Sets the listener to be invoked when fitting root-level content views.
+ * Sets whether the decor view should fit root-level content views for {@link WindowInsets}.
* <p>
- * By default, a listener that inspects the now deprecated {@link View#SYSTEM_UI_LAYOUT_FLAGS}
- * as well the {@link WindowManager.LayoutParams#SOFT_INPUT_ADJUST_RESIZE} flag is installed and
- * fits content according to these flags.
+ * If set to {@code true}, the framework will inspect the now deprecated
+ * {@link View#SYSTEM_UI_LAYOUT_FLAGS} as well the
+ * {@link WindowManager.LayoutParams#SOFT_INPUT_ADJUST_RESIZE} flag and fits content according
+ * to these flags.
* </p>
- * @param contentOnApplyWindowInsetsListener The listener to use for fitting root-level content
- * views, or {@code null} to disable any kind of
- * content fitting on the window level and letting the
- * {@link WindowInsets} pass through to the content
- * view.
- * @see OnContentApplyWindowInsetsListener
- */
- public void setOnContentApplyWindowInsetsListener(
- @Nullable OnContentApplyWindowInsetsListener contentOnApplyWindowInsetsListener) {
- }
-
- /**
- * Resets the listener set via {@link #setOnContentApplyWindowInsetsListener} to the default
- * state.
* <p>
- * By default, a listener that inspects the now deprecated {@link View#SYSTEM_UI_LAYOUT_FLAGS}
- * as well the {@link WindowManager.LayoutParams#SOFT_INPUT_ADJUST_RESIZE} flag is installed and
- * fits content according to these flags.
+ * If set to {@code false}, the framework will not fit the content view to the insets and will
+ * just pass through the {@link WindowInsets} to the content view.
* </p>
+ * @param decorFitsSystemWindows Whether the decor view should fit root-level content views for
+ * insets.
*/
- public void resetOnContentApplyWindowInsetsListener() {
+ public void setDecorFitsSystemWindows(boolean decorFitsSystemWindows) {
}
/**
diff --git a/core/java/android/view/WindowContainerTransaction.java b/core/java/android/view/WindowContainerTransaction.java
index c55caa3213d8..33f21f211a1a 100644
--- a/core/java/android/view/WindowContainerTransaction.java
+++ b/core/java/android/view/WindowContainerTransaction.java
@@ -86,6 +86,17 @@ public class WindowContainerTransaction implements Parcelable {
return this;
}
+ /**
+ * Set the smallestScreenWidth of a container.
+ */
+ public WindowContainerTransaction setSmallestScreenWidthDp(IWindowContainer container,
+ int widthDp) {
+ Change cfg = getOrCreateChange(container.asBinder());
+ cfg.mConfiguration.smallestScreenWidthDp = widthDp;
+ cfg.mConfigSetMask |= ActivityInfo.CONFIG_SMALLEST_SCREEN_SIZE;
+ return this;
+ }
+
public Map<IBinder, Change> getChanges() {
return mChanges;
}
diff --git a/core/java/android/view/WindowInsetsAnimationCallback.java b/core/java/android/view/WindowInsetsAnimationCallback.java
index 1e04d02fcb80..4c8463b37df4 100644
--- a/core/java/android/view/WindowInsetsAnimationCallback.java
+++ b/core/java/android/view/WindowInsetsAnimationCallback.java
@@ -86,9 +86,9 @@ public interface WindowInsetsAnimationCallback {
* following:
* <p>
* <ul>
- * <li>Application calls {@link WindowInsetsController#hideInputMethod()},
- * {@link WindowInsetsController#showInputMethod()},
- * {@link WindowInsetsController#controlInputMethodAnimation}</li>
+ * <li>Application calls {@link WindowInsetsController#hide(int)},
+ * {@link WindowInsetsController#show(int)},
+ * {@link WindowInsetsController#controlWindowInsetsAnimation}</li>
* <li>onPrepare is called on the view hierarchy listeners</li>
* <li>{@link View#onApplyWindowInsets} will be called with the end state of the
* animation</li>
@@ -106,12 +106,12 @@ public interface WindowInsetsAnimationCallback {
* related methods.
* <p>
* Note: If the animation is application controlled by using
- * {@link WindowInsetsController#controlInputMethodAnimation}, the end state of the animation
+ * {@link WindowInsetsController#controlWindowInsetsAnimation}, the end state of the animation
* is undefined as the application may decide on the end state only by passing in the
* {@code shown} parameter when calling {@link WindowInsetsAnimationController#finish}. In this
* situation, the system will dispatch the insets in the opposite visibility state before the
* animation starts. Example: When controlling the input method with
- * {@link WindowInsetsController#controlInputMethodAnimation} and the input method is currently
+ * {@link WindowInsetsController#controlWindowInsetsAnimation} and the input method is currently
* showing, {@link View#onApplyWindowInsets} will receive a {@link WindowInsets} instance for
* which {@link WindowInsets#isVisible} will return {@code false} for {@link Type#ime}.
*
@@ -246,7 +246,7 @@ public interface WindowInsetsAnimationCallback {
* be the same as the application passed into
* {@link WindowInsetsAnimationController#setInsetsAndAlpha(Insets, float, float)},
* interpolated with the interpolator passed into
- * {@link WindowInsetsController#controlInputMethodAnimation}.
+ * {@link WindowInsetsController#controlWindowInsetsAnimation}.
* </p>
* <p>
* Note: For system-initiated animations, this will always return a valid value between 0
diff --git a/core/java/android/view/WindowInsetsAnimationControlListener.java b/core/java/android/view/WindowInsetsAnimationControlListener.java
index f91254de33ff..701bd3158b1e 100644
--- a/core/java/android/view/WindowInsetsAnimationControlListener.java
+++ b/core/java/android/view/WindowInsetsAnimationControlListener.java
@@ -39,7 +39,7 @@ public interface WindowInsetsAnimationControlListener {
* @param controller The controller to control the inset animation.
* @param types The {@link InsetsType}s it was able to gain control over. Note that this may be
* different than the types passed into
- * {@link WindowInsetsController#controlInputMethodAnimation} in case the window
+ * {@link WindowInsetsController#controlWindowInsetsAnimation} in case the window
* wasn't able to gain the controls because it wasn't the IME target or not
* currently the window that's controlling the system bars.
*/
diff --git a/core/java/android/view/WindowInsetsAnimationController.java b/core/java/android/view/WindowInsetsAnimationController.java
index 2bf0d277268d..4a864be64f64 100644
--- a/core/java/android/view/WindowInsetsAnimationController.java
+++ b/core/java/android/view/WindowInsetsAnimationController.java
@@ -23,6 +23,7 @@ import android.annotation.SuppressLint;
import android.graphics.Insets;
import android.view.WindowInsets.Type.InsetsType;
import android.view.WindowInsetsAnimationCallback.AnimationBounds;
+import android.view.animation.Interpolator;
/**
* Controller for app-driven animation of system windows.
@@ -32,7 +33,7 @@ import android.view.WindowInsetsAnimationCallback.AnimationBounds;
* synchronized, such that changes the system windows and the app's current frame
* are rendered at the same time.
* <p>
- * Control is obtained through {@link WindowInsetsController#controlInputMethodAnimation}.
+ * Control is obtained through {@link WindowInsetsController#controlWindowInsetsAnimation}.
*/
@SuppressLint("NotClosable")
public interface WindowInsetsAnimationController {
diff --git a/core/java/android/view/WindowInsetsController.java b/core/java/android/view/WindowInsetsController.java
index 02323cfb4f00..f501de91b3b7 100644
--- a/core/java/android/view/WindowInsetsController.java
+++ b/core/java/android/view/WindowInsetsController.java
@@ -167,62 +167,6 @@ public interface WindowInsetsController {
@NonNull WindowInsetsAnimationControlListener listener);
/**
- * Lets the application control the animation for showing the IME in a frame-by-frame manner by
- * modifying the position of the IME when it's causing insets.
- *
- * @param durationMillis Duration of the animation in
- * {@link java.util.concurrent.TimeUnit#MILLISECONDS}, or -1 if the
- * animation doesn't have a predetermined duration. This value will be
- * passed to {@link InsetsAnimation#getDurationMillis()}
- * @param interpolator The interpolator used for this animation, or {@code null} if this
- * animation doesn't follow an interpolation curve. This value will be
- * passed to {@link InsetsAnimation#getInterpolator()} and used to calculate
- * {@link InsetsAnimation#getInterpolatedFraction()}.
- * @param listener The {@link WindowInsetsAnimationControlListener} that gets called when the
- * IME are ready to be controlled, among other callbacks.
- *
- * @see InsetsAnimation#getFraction()
- * @see InsetsAnimation#getInterpolatedFraction()
- * @see InsetsAnimation#getInterpolator()
- * @see InsetsAnimation#getDurationMillis()
- */
- default void controlInputMethodAnimation(long durationMillis,
- @Nullable Interpolator interpolator,
- @NonNull WindowInsetsAnimationControlListener listener) {
- controlWindowInsetsAnimation(ime(), durationMillis, interpolator, listener);
- }
-
- /**
- * Makes the IME appear on screen.
- * <p>
- * Note that if the window currently doesn't have control over the IME, because it doesn't have
- * focus, it will apply the change as soon as the window gains control. The app can listen to
- * the event by observing {@link View#onApplyWindowInsets} and checking visibility with
- * {@link WindowInsets#isVisible}.
- *
- * @see #controlInputMethodAnimation
- * @see #hideInputMethod()
- */
- default void showInputMethod() {
- show(ime());
- }
-
- /**
- * Makes the IME disappear on screen.
- * <p>
- * Note that if the window currently doesn't have control over IME, because it doesn't have
- * focus, it will apply the change as soon as the window gains control. The app can listen to
- * the event by observing {@link View#onApplyWindowInsets} and checking visibility with
- * {@link WindowInsets#isVisible}.
- *
- * @see #controlInputMethodAnimation
- * @see #showInputMethod()
- */
- default void hideInputMethod() {
- hide(ime());
- }
-
- /**
* Controls the appearance of system bars.
* <p>
* For example, the following statement adds {@link #APPEARANCE_LIGHT_STATUS_BARS}:
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index a6450a10561b..dad767142ba1 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -80,6 +80,7 @@ import android.os.Parcelable;
import android.text.TextUtils;
import android.util.Log;
import android.util.proto.ProtoOutputStream;
+import android.view.View.OnApplyWindowInsetsListener;
import android.view.WindowInsets.Side;
import android.view.WindowInsets.Side.InsetsSide;
import android.view.WindowInsets.Type;
@@ -2193,8 +2194,9 @@ public interface WindowManager extends ViewManager {
* value for {@link #softInputMode} will be ignored; the window will
* not resize, but will stay fullscreen.
*
- * @deprecated Use {@link Window#setOnContentApplyWindowInsetsListener} instead with a
- * listener that fits {@link Type#ime()} instead.
+ * @deprecated Call {@link Window#setDecorFitsSystemWindows(boolean)} with {@code false} and
+ * install an {@link OnApplyWindowInsetsListener} on your root content view that fits insets
+ * of type {@link Type#ime()}.
*/
@Deprecated
public static final int SOFT_INPUT_ADJUST_RESIZE = 0x10;
diff --git a/core/java/android/view/WindowlessWindowManager.java b/core/java/android/view/WindowlessWindowManager.java
index 91778aaf51fd..62f3fa4f6ed4 100644
--- a/core/java/android/view/WindowlessWindowManager.java
+++ b/core/java/android/view/WindowlessWindowManager.java
@@ -41,9 +41,14 @@ public class WindowlessWindowManager implements IWindowSession {
private class State {
SurfaceControl mSurfaceControl;
WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();
- State(SurfaceControl sc, WindowManager.LayoutParams p) {
+ int mDisplayId;
+ IBinder mInputChannelToken;
+ State(SurfaceControl sc, WindowManager.LayoutParams p, int displayId,
+ IBinder inputChannelToken) {
mSurfaceControl = sc;
mParams.copyFrom(p);
+ mDisplayId = displayId;
+ mInputChannelToken = inputChannelToken;
}
};
@@ -105,19 +110,23 @@ public class WindowlessWindowManager implements IWindowSession {
.setFormat(attrs.format)
.setName(attrs.getTitle().toString());
final SurfaceControl sc = b.build();
- synchronized (this) {
- mStateForWindow.put(window.asBinder(), new State(sc, attrs));
- }
if (((attrs.inputFeatures &
WindowManager.LayoutParams.INPUT_FEATURE_NO_INPUT_CHANNEL) == 0)) {
try {
- mRealWm.grantInputChannel(displayId, sc, window, mHostInputToken, outInputChannel);
+ mRealWm.grantInputChannel(displayId, sc, window, mHostInputToken, attrs.flags,
+ outInputChannel);
} catch (RemoteException e) {
- Log.e(TAG, "Failed to bless surface: " + e);
+ Log.e(TAG, "Failed to grant input to surface: ", e);
}
}
+ final State state = new State(sc, attrs, displayId,
+ outInputChannel != null ? outInputChannel.getToken() : null);
+ synchronized (this) {
+ mStateForWindow.put(window.asBinder(), state);
+ }
+
return WindowManagerGlobal.ADD_OKAY | WindowManagerGlobal.ADD_FLAG_APP_VISIBLE;
}
@@ -162,7 +171,7 @@ public class WindowlessWindowManager implements IWindowSession {
DisplayCutout.ParcelableWrapper cutout, MergedConfiguration mergedConfiguration,
SurfaceControl outSurfaceControl, InsetsState outInsetsState,
Point outSurfaceSize, SurfaceControl outBLASTSurfaceControl) {
- State state = null;
+ final State state;
synchronized (this) {
state = mStateForWindow.get(window.asBinder());
}
@@ -173,8 +182,9 @@ public class WindowlessWindowManager implements IWindowSession {
SurfaceControl sc = state.mSurfaceControl;
SurfaceControl.Transaction t = new SurfaceControl.Transaction();
+ int attrChanges = 0;
if (inAttrs != null) {
- state.mParams.copyFrom(inAttrs);
+ attrChanges = state.mParams.copyFrom(inAttrs);
}
WindowManager.LayoutParams attrs = state.mParams;
@@ -197,6 +207,16 @@ public class WindowlessWindowManager implements IWindowSession {
mergedConfiguration.setConfiguration(mConfiguration, mConfiguration);
+ if ((attrChanges & WindowManager.LayoutParams.FLAGS_CHANGED) != 0
+ && state.mInputChannelToken != null) {
+ try {
+ mRealWm.updateInputChannel(state.mInputChannelToken, state.mDisplayId, sc,
+ attrs.flags);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Failed to update surface input channel: ", e);
+ }
+ }
+
return 0;
}
@@ -353,7 +373,12 @@ public class WindowlessWindowManager implements IWindowSession {
@Override
public void grantInputChannel(int displayId, SurfaceControl surface, IWindow window,
- IBinder hostInputToken, InputChannel outInputChannel) {
+ IBinder hostInputToken, int flags, InputChannel outInputChannel) {
+ }
+
+ @Override
+ public void updateInputChannel(IBinder channelToken, int displayId, SurfaceControl surface,
+ int flags) {
}
@Override
diff --git a/core/java/android/view/accessibility/AccessibilityInteractionClient.java b/core/java/android/view/accessibility/AccessibilityInteractionClient.java
index b9f08ada3152..b4c87953567b 100644
--- a/core/java/android/view/accessibility/AccessibilityInteractionClient.java
+++ b/core/java/android/view/accessibility/AccessibilityInteractionClient.java
@@ -20,7 +20,6 @@ import android.accessibilityservice.IAccessibilityServiceConnection;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.compat.annotation.UnsupportedAppUsage;
-import android.graphics.Bitmap;
import android.os.Binder;
import android.os.Build;
import android.os.Bundle;
@@ -829,31 +828,6 @@ public final class AccessibilityInteractionClient
}
/**
- * Takes the screenshot of the specified display and returns it by bitmap format.
- *
- * @param connectionId The id of a connection for interacting with the system.
- * @param displayId The logic display id, use {@link Display#DEFAULT_DISPLAY} for
- * default display.
- * @return The screenshot bitmap on success, null otherwise.
- */
- public Bitmap takeScreenshot(int connectionId, int displayId) {
- Bitmap screenShot = null;
- try {
- IAccessibilityServiceConnection connection = getConnection(connectionId);
- if (connection != null) {
- screenShot = connection.takeScreenshot(displayId);
- } else {
- if (DEBUG) {
- Log.w(LOG_TAG, "No connection for connection id: " + connectionId);
- }
- }
- } catch (RemoteException re) {
- Log.w(LOG_TAG, "Error while calling remote takeScreenshot", re);
- }
- return screenShot;
- }
-
- /**
* Clears the result state.
*/
private void clearResultLocked() {
diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
index 184f3302ae8d..05cf3edb4525 100644
--- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java
+++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
@@ -551,6 +551,14 @@ public class AccessibilityNodeInfo implements Parcelable {
public static final String ACTION_ARGUMENT_PRESS_HOLD_DURATION_MILLIS_INT =
"android.view.accessibility.action.ARGUMENT_PRESS_HOLD_DURATION_MILLIS_INT";
+ /**
+ * Argument to represent the IME action Id to press the returning key on a node.
+ * For use with R.id.accessibilityActionImeEnter
+ * @hide
+ */
+ public static final String ACTION_ARGUMENT_IME_ACTION_ID_INT =
+ "android.view.accessibility.action.ARGUMENT_IME_ACTION_ID_INT";
+
// Focus types
/**
@@ -1644,8 +1652,12 @@ public class AccessibilityNodeInfo implements Parcelable {
return false;
}
AccessibilityInteractionClient client = AccessibilityInteractionClient.getInstance();
+ Bundle arguments = null;
+ if (mExtras != null) {
+ arguments = mExtras;
+ }
return client.performAccessibilityAction(mConnectionId, mWindowId, mSourceNodeId,
- action, null);
+ action, arguments);
}
/**
@@ -4210,6 +4222,8 @@ public class AccessibilityNodeInfo implements Parcelable {
return "ACTION_HIDE_TOOLTIP";
case R.id.accessibilityActionPressAndHold:
return "ACTION_PRESS_AND_HOLD";
+ case R.id.accessibilityActionImeEnter:
+ return "ACTION_IME_ENTER";
default:
return "ACTION_UNKNOWN";
}
@@ -4839,6 +4853,13 @@ public class AccessibilityNodeInfo implements Parcelable {
@NonNull public static final AccessibilityAction ACTION_PRESS_AND_HOLD =
new AccessibilityAction(R.id.accessibilityActionPressAndHold);
+ /**
+ * Action to send ime action. A node should expose this action only for views that are
+ * currently with input focus and editable.
+ */
+ @NonNull public static final AccessibilityAction ACTION_IME_ENTER =
+ new AccessibilityAction(R.id.accessibilityActionImeEnter);
+
private final int mActionId;
private final CharSequence mLabel;
diff --git a/core/java/android/view/autofill/AutofillPopupWindow.java b/core/java/android/view/autofill/AutofillPopupWindow.java
index 826620710b18..8d3dc83bca0c 100644
--- a/core/java/android/view/autofill/AutofillPopupWindow.java
+++ b/core/java/android/view/autofill/AutofillPopupWindow.java
@@ -19,13 +19,13 @@ package android.view.autofill;
import static android.view.autofill.Helper.sVerbose;
import android.annotation.NonNull;
-import android.graphics.Point;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.IBinder;
import android.os.RemoteException;
import android.transition.Transition;
import android.util.Log;
+import android.util.Size;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewTreeObserver;
@@ -127,11 +127,12 @@ public class AutofillPopupWindow extends PopupWindow {
// If it is not fullscreen height, put window at bottom. Computes absolute position.
// Note that we cannot easily change default gravity from Gravity.TOP to
// Gravity.BOTTOM because PopupWindow base class does not expose computeGravity().
- final Point outPoint = new Point();
- anchor.getContext().getDisplay().getSize(outPoint);
- width = outPoint.x;
+ final WindowManager windowManager = anchor.getContext()
+ .getSystemService(WindowManager.class);
+ final Size windowSize = windowManager.getCurrentWindowMetrics().getSize();
+ width = windowSize.getWidth();
if (height != LayoutParams.MATCH_PARENT) {
- offsetY = outPoint.y - height;
+ offsetY = windowSize.getHeight() - height;
}
actualAnchor = anchor;
} else if (virtualBounds != null) {
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index 307abd2f5f65..f0c16aadf12f 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -671,6 +671,11 @@ public final class InputMethodManager {
mWindowFocusGainFuture = null;
}
synchronized (mH) {
+ if (mCurRootView != null) {
+ // Reset the last served view and restart window focus state of the root view.
+ mCurRootView.getImeFocusController().setServedView(null);
+ mRestartOnNextWindowFocus = true;
+ }
mCurRootView = rootView;
}
}
diff --git a/core/java/android/view/textclassifier/ConversationActions.java b/core/java/android/view/textclassifier/ConversationActions.java
index 80027b1ed75d..6246b507ba59 100644
--- a/core/java/android/view/textclassifier/ConversationActions.java
+++ b/core/java/android/view/textclassifier/ConversationActions.java
@@ -323,6 +323,7 @@ public final class ConversationActions implements Parcelable {
private int mUserId = UserHandle.USER_NULL;
@NonNull
private Bundle mExtras;
+ private boolean mUseDefaultTextClassifier;
private Request(
@NonNull List<Message> conversation,
@@ -347,6 +348,8 @@ public final class ConversationActions implements Parcelable {
String callingPackageName = in.readString();
int userId = in.readInt();
Bundle extras = in.readBundle();
+ boolean useDefaultTextClassifier = in.readBoolean();
+
Request request = new Request(
conversation,
typeConfig,
@@ -355,6 +358,7 @@ public final class ConversationActions implements Parcelable {
extras);
request.setCallingPackageName(callingPackageName);
request.setUserId(userId);
+ request.setUseDefaultTextClassifier(useDefaultTextClassifier);
return request;
}
@@ -367,6 +371,7 @@ public final class ConversationActions implements Parcelable {
parcel.writeString(mCallingPackageName);
parcel.writeInt(mUserId);
parcel.writeBundle(mExtras);
+ parcel.writeBoolean(mUseDefaultTextClassifier);
}
@Override
@@ -455,6 +460,26 @@ public final class ConversationActions implements Parcelable {
}
/**
+ * Sets whether to use the default text classifier to handle this request.
+ * This will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ void setUseDefaultTextClassifier(boolean useDefaultTextClassifier) {
+ mUseDefaultTextClassifier = useDefaultTextClassifier;
+ }
+
+ /**
+ * Returns whether to use the default text classifier to handle this request. This
+ * will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ public boolean getUseDefaultTextClassifier() {
+ return mUseDefaultTextClassifier;
+ }
+
+ /**
* Returns the extended data related to this request.
*
* <p><b>NOTE: </b>Do not modify this bundle.
diff --git a/core/java/android/view/textclassifier/SelectionEvent.java b/core/java/android/view/textclassifier/SelectionEvent.java
index 09cb7a07faa8..e0f29a981d89 100644
--- a/core/java/android/view/textclassifier/SelectionEvent.java
+++ b/core/java/android/view/textclassifier/SelectionEvent.java
@@ -140,6 +140,7 @@ public final class SelectionEvent implements Parcelable {
private int mEnd;
private int mSmartStart;
private int mSmartEnd;
+ private boolean mUseDefaultTextClassifier;
SelectionEvent(
int start, int end,
@@ -175,6 +176,7 @@ public final class SelectionEvent implements Parcelable {
mSmartStart = in.readInt();
mSmartEnd = in.readInt();
mUserId = in.readInt();
+ mUseDefaultTextClassifier = in.readBoolean();
}
@Override
@@ -204,6 +206,7 @@ public final class SelectionEvent implements Parcelable {
dest.writeInt(mSmartStart);
dest.writeInt(mSmartEnd);
dest.writeInt(mUserId);
+ dest.writeBoolean(mUseDefaultTextClassifier);
}
@Override
@@ -428,6 +431,26 @@ public final class SelectionEvent implements Parcelable {
}
/**
+ * Sets whether to use the default text classifier to handle this request.
+ * This will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ void setUseDefaultTextClassifier(boolean useDefaultTextClassifier) {
+ mUseDefaultTextClassifier = useDefaultTextClassifier;
+ }
+
+ /**
+ * Returns whether to use the default text classifier to handle this request. This
+ * will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ public boolean getUseDefaultTextClassifier() {
+ return mUseDefaultTextClassifier;
+ }
+
+ /**
* Returns the type of widget that was involved in triggering this event.
*/
@WidgetType
@@ -642,7 +665,8 @@ public final class SelectionEvent implements Parcelable {
return Objects.hash(mAbsoluteStart, mAbsoluteEnd, mEventType, mEntityType,
mWidgetVersion, mPackageName, mUserId, mWidgetType, mInvocationMethod, mResultId,
mEventTime, mDurationSinceSessionStart, mDurationSincePreviousEvent,
- mEventIndex, mSessionId, mStart, mEnd, mSmartStart, mSmartEnd);
+ mEventIndex, mSessionId, mStart, mEnd, mSmartStart, mSmartEnd,
+ mUseDefaultTextClassifier);
}
@Override
@@ -673,7 +697,8 @@ public final class SelectionEvent implements Parcelable {
&& mStart == other.mStart
&& mEnd == other.mEnd
&& mSmartStart == other.mSmartStart
- && mSmartEnd == other.mSmartEnd;
+ && mSmartEnd == other.mSmartEnd
+ && mUseDefaultTextClassifier == other.mUseDefaultTextClassifier;
}
@Override
@@ -683,12 +708,13 @@ public final class SelectionEvent implements Parcelable {
+ "widgetVersion=%s, packageName=%s, widgetType=%s, invocationMethod=%s, "
+ "userId=%d, resultId=%s, eventTime=%d, durationSinceSessionStart=%d, "
+ "durationSincePreviousEvent=%d, eventIndex=%d,"
- + "sessionId=%s, start=%d, end=%d, smartStart=%d, smartEnd=%d}",
+ + "sessionId=%s, start=%d, end=%d, smartStart=%d, smartEnd=%d, "
+ + "mUseDefaultTextClassifier=%b}",
mAbsoluteStart, mAbsoluteEnd, mEventType, mEntityType,
mWidgetVersion, mPackageName, mWidgetType, mInvocationMethod,
mUserId, mResultId, mEventTime, mDurationSinceSessionStart,
mDurationSincePreviousEvent, mEventIndex,
- mSessionId, mStart, mEnd, mSmartStart, mSmartEnd);
+ mSessionId, mStart, mEnd, mSmartStart, mSmartEnd, mUseDefaultTextClassifier);
}
public static final @android.annotation.NonNull Creator<SelectionEvent> CREATOR = new Creator<SelectionEvent>() {
diff --git a/core/java/android/view/textclassifier/SystemTextClassifier.java b/core/java/android/view/textclassifier/SystemTextClassifier.java
index 138d25dd7c83..fe5e8d658dc3 100644
--- a/core/java/android/view/textclassifier/SystemTextClassifier.java
+++ b/core/java/android/view/textclassifier/SystemTextClassifier.java
@@ -55,17 +55,20 @@ public final class SystemTextClassifier implements TextClassifier {
// service will throw a remote exception.
@UserIdInt
private final int mUserId;
+ private final boolean mUseDefault;
private TextClassificationSessionId mSessionId;
- public SystemTextClassifier(Context context, TextClassificationConstants settings)
- throws ServiceManager.ServiceNotFoundException {
+ public SystemTextClassifier(
+ Context context,
+ TextClassificationConstants settings,
+ boolean useDefault) throws ServiceManager.ServiceNotFoundException {
mManagerService = ITextClassifierService.Stub.asInterface(
ServiceManager.getServiceOrThrow(Context.TEXT_CLASSIFICATION_SERVICE));
mSettings = Objects.requireNonNull(settings);
- mFallback = context.getSystemService(TextClassificationManager.class)
- .getTextClassifier(TextClassifier.LOCAL);
+ mFallback = TextClassifier.NO_OP;
mPackageName = Objects.requireNonNull(context.getOpPackageName());
mUserId = context.getUserId();
+ mUseDefault = useDefault;
}
/**
@@ -79,6 +82,7 @@ public final class SystemTextClassifier implements TextClassifier {
try {
request.setCallingPackageName(mPackageName);
request.setUserId(mUserId);
+ request.setUseDefaultTextClassifier(mUseDefault);
final BlockingCallback<TextSelection> callback =
new BlockingCallback<>("textselection");
mManagerService.onSuggestSelection(mSessionId, request, callback);
@@ -103,6 +107,7 @@ public final class SystemTextClassifier implements TextClassifier {
try {
request.setCallingPackageName(mPackageName);
request.setUserId(mUserId);
+ request.setUseDefaultTextClassifier(mUseDefault);
final BlockingCallback<TextClassification> callback =
new BlockingCallback<>("textclassification");
mManagerService.onClassifyText(mSessionId, request, callback);
@@ -124,7 +129,9 @@ public final class SystemTextClassifier implements TextClassifier {
public TextLinks generateLinks(@NonNull TextLinks.Request request) {
Objects.requireNonNull(request);
Utils.checkMainThread();
-
+ if (!Utils.checkTextLength(request.getText(), getMaxGenerateLinksTextLength())) {
+ return mFallback.generateLinks(request);
+ }
if (!mSettings.isSmartLinkifyEnabled() && request.isLegacyFallback()) {
return Utils.generateLegacyLinks(request);
}
@@ -132,6 +139,7 @@ public final class SystemTextClassifier implements TextClassifier {
try {
request.setCallingPackageName(mPackageName);
request.setUserId(mUserId);
+ request.setUseDefaultTextClassifier(mUseDefault);
final BlockingCallback<TextLinks> callback =
new BlockingCallback<>("textlinks");
mManagerService.onGenerateLinks(mSessionId, request, callback);
@@ -152,6 +160,7 @@ public final class SystemTextClassifier implements TextClassifier {
try {
event.setUserId(mUserId);
+ event.setUseDefaultTextClassifier(mUseDefault);
mManagerService.onSelectionEvent(mSessionId, event);
} catch (RemoteException e) {
Log.e(LOG_TAG, "Error reporting selection event.", e);
@@ -169,6 +178,7 @@ public final class SystemTextClassifier implements TextClassifier {
.build()
: event.getEventContext();
tcContext.setUserId(mUserId);
+ tcContext.setUseDefaultTextClassifier(mUseDefault);
event.setEventContext(tcContext);
mManagerService.onTextClassifierEvent(mSessionId, event);
} catch (RemoteException e) {
@@ -184,6 +194,7 @@ public final class SystemTextClassifier implements TextClassifier {
try {
request.setCallingPackageName(mPackageName);
request.setUserId(mUserId);
+ request.setUseDefaultTextClassifier(mUseDefault);
final BlockingCallback<TextLanguage> callback =
new BlockingCallback<>("textlanguage");
mManagerService.onDetectLanguage(mSessionId, request, callback);
@@ -205,6 +216,7 @@ public final class SystemTextClassifier implements TextClassifier {
try {
request.setCallingPackageName(mPackageName);
request.setUserId(mUserId);
+ request.setUseDefaultTextClassifier(mUseDefault);
final BlockingCallback<ConversationActions> callback =
new BlockingCallback<>("conversation-actions");
mManagerService.onSuggestConversationActions(mSessionId, request, callback);
@@ -225,7 +237,7 @@ public final class SystemTextClassifier implements TextClassifier {
@WorkerThread
public int getMaxGenerateLinksTextLength() {
// TODO: retrieve this from the bound service.
- return mFallback.getMaxGenerateLinksTextLength();
+ return mSettings.getGenerateLinksMaxTextLength();
}
@Override
@@ -247,6 +259,7 @@ public final class SystemTextClassifier implements TextClassifier {
printWriter.printPair("mPackageName", mPackageName);
printWriter.printPair("mSessionId", mSessionId);
printWriter.printPair("mUserId", mUserId);
+ printWriter.printPair("mUseDefault", mUseDefault);
printWriter.decreaseIndent();
printWriter.println();
}
diff --git a/core/java/android/view/textclassifier/TextClassification.java b/core/java/android/view/textclassifier/TextClassification.java
index 3628d2d40c1e..00f762b44a07 100644
--- a/core/java/android/view/textclassifier/TextClassification.java
+++ b/core/java/android/view/textclassifier/TextClassification.java
@@ -555,6 +555,7 @@ public final class TextClassification implements Parcelable {
@Nullable private String mCallingPackageName;
@UserIdInt
private int mUserId = UserHandle.USER_NULL;
+ private boolean mUseDefaultTextClassifier;
private Request(
CharSequence text,
@@ -654,6 +655,26 @@ public final class TextClassification implements Parcelable {
}
/**
+ * Sets whether to use the default text classifier to handle this request.
+ * This will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ void setUseDefaultTextClassifier(boolean useDefaultTextClassifier) {
+ mUseDefaultTextClassifier = useDefaultTextClassifier;
+ }
+
+ /**
+ * Returns whether to use the default text classifier to handle this request. This
+ * will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ public boolean getUseDefaultTextClassifier() {
+ return mUseDefaultTextClassifier;
+ }
+
+ /**
* Returns the extended data.
*
* <p><b>NOTE: </b>Do not modify this bundle.
@@ -755,6 +776,7 @@ public final class TextClassification implements Parcelable {
dest.writeString(mCallingPackageName);
dest.writeInt(mUserId);
dest.writeBundle(mExtras);
+ dest.writeBoolean(mUseDefaultTextClassifier);
}
private static Request readFromParcel(Parcel in) {
@@ -768,11 +790,13 @@ public final class TextClassification implements Parcelable {
final String callingPackageName = in.readString();
final int userId = in.readInt();
final Bundle extras = in.readBundle();
+ final boolean useDefaultTextClassifier = in.readBoolean();
final Request request = new Request(text, startIndex, endIndex,
defaultLocales, referenceTime, extras);
request.setCallingPackageName(callingPackageName);
request.setUserId(userId);
+ request.setUseDefaultTextClassifier(useDefaultTextClassifier);
return request;
}
diff --git a/core/java/android/view/textclassifier/TextClassificationConstants.java b/core/java/android/view/textclassifier/TextClassificationConstants.java
index ed69513b7f69..3d5ac58e7704 100644
--- a/core/java/android/view/textclassifier/TextClassificationConstants.java
+++ b/core/java/android/view/textclassifier/TextClassificationConstants.java
@@ -17,6 +17,7 @@
package android.view.textclassifier;
import android.annotation.Nullable;
+import android.content.Context;
import android.provider.DeviceConfig;
import com.android.internal.annotations.VisibleForTesting;
@@ -167,6 +168,16 @@ public final class TextClassificationConstants {
static final String TEXT_CLASSIFIER_SERVICE_PACKAGE_OVERRIDE =
"textclassifier_service_package_override";
+ /**
+ * Whether to use the default system text classifier as the default text classifier
+ * implementation. The local text classifier is used if it is {@code false}.
+ *
+ * @see android.service.textclassifier.TextClassifierService#getDefaultTextClassifierImplementation(Context)
+ */
+ // TODO: Once the system health experiment is done, remove this together with local TC.
+ private static final String USE_DEFAULT_SYSTEM_TEXT_CLASSIFIER_AS_DEFAULT_IMPL =
+ "use_default_system_text_classifier_as_default_impl";
+
private static final String DEFAULT_TEXT_CLASSIFIER_SERVICE_PACKAGE_OVERRIDE = null;
private static final boolean LOCAL_TEXT_CLASSIFIER_ENABLED_DEFAULT = true;
private static final boolean SYSTEM_TEXT_CLASSIFIER_ENABLED_DEFAULT = true;
@@ -209,7 +220,8 @@ public final class TextClassificationConstants {
private static final boolean TEMPLATE_INTENT_FACTORY_ENABLED_DEFAULT = true;
private static final boolean TRANSLATE_IN_CLASSIFICATION_ENABLED_DEFAULT = true;
private static final boolean DETECT_LANGUAGES_FROM_TEXT_ENABLED_DEFAULT = true;
- private static final float[] LANG_ID_CONTEXT_SETTINGS_DEFAULT = new float[] {20f, 1.0f, 0.4f};
+ private static final float[] LANG_ID_CONTEXT_SETTINGS_DEFAULT = new float[]{20f, 1.0f, 0.4f};
+ private static final boolean USE_DEFAULT_SYSTEM_TEXT_CLASSIFIER_AS_DEFAULT_IMPL_DEFAULT = true;
@Nullable
public String getTextClassifierServicePackageOverride() {
@@ -331,6 +343,13 @@ public final class TextClassificationConstants {
LANG_ID_CONTEXT_SETTINGS, LANG_ID_CONTEXT_SETTINGS_DEFAULT);
}
+ public boolean getUseDefaultTextClassifierAsDefaultImplementation() {
+ return DeviceConfig.getBoolean(
+ DeviceConfig.NAMESPACE_TEXTCLASSIFIER,
+ USE_DEFAULT_SYSTEM_TEXT_CLASSIFIER_AS_DEFAULT_IMPL,
+ USE_DEFAULT_SYSTEM_TEXT_CLASSIFIER_AS_DEFAULT_IMPL_DEFAULT);
+ }
+
void dump(IndentingPrintWriter pw) {
pw.println("TextClassificationConstants:");
pw.increaseIndent();
@@ -378,6 +397,8 @@ public final class TextClassificationConstants {
.println();
pw.printPair("textclassifier_service_package_override",
getTextClassifierServicePackageOverride()).println();
+ pw.printPair("use_default_system_text_classifier_as_default_impl",
+ getUseDefaultTextClassifierAsDefaultImplementation()).println();
pw.decreaseIndent();
}
diff --git a/core/java/android/view/textclassifier/TextClassificationContext.java b/core/java/android/view/textclassifier/TextClassificationContext.java
index 930765b29197..d58d175c9c93 100644
--- a/core/java/android/view/textclassifier/TextClassificationContext.java
+++ b/core/java/android/view/textclassifier/TextClassificationContext.java
@@ -38,6 +38,7 @@ public final class TextClassificationContext implements Parcelable {
@Nullable private final String mWidgetVersion;
@UserIdInt
private int mUserId = UserHandle.USER_NULL;
+ private boolean mUseDefaultTextClassifier;
private TextClassificationContext(
String packageName,
@@ -76,6 +77,26 @@ public final class TextClassificationContext implements Parcelable {
}
/**
+ * Sets whether to use the default text classifier to handle this request.
+ * This will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ void setUseDefaultTextClassifier(boolean useDefaultTextClassifier) {
+ mUseDefaultTextClassifier = useDefaultTextClassifier;
+ }
+
+ /**
+ * Returns whether to use the default text classifier to handle this request. This
+ * will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ public boolean getUseDefaultTextClassifier() {
+ return mUseDefaultTextClassifier;
+ }
+
+ /**
* Returns the widget type for this classification context.
*/
@NonNull
@@ -156,6 +177,7 @@ public final class TextClassificationContext implements Parcelable {
parcel.writeString(mWidgetType);
parcel.writeString(mWidgetVersion);
parcel.writeInt(mUserId);
+ parcel.writeBoolean(mUseDefaultTextClassifier);
}
private TextClassificationContext(Parcel in) {
@@ -163,6 +185,7 @@ public final class TextClassificationContext implements Parcelable {
mWidgetType = in.readString();
mWidgetVersion = in.readString();
mUserId = in.readInt();
+ mUseDefaultTextClassifier = in.readBoolean();
}
public static final @android.annotation.NonNull Parcelable.Creator<TextClassificationContext> CREATOR =
diff --git a/core/java/android/view/textclassifier/TextClassificationManager.java b/core/java/android/view/textclassifier/TextClassificationManager.java
index bb96d5543b0b..dfbec9b67027 100644
--- a/core/java/android/view/textclassifier/TextClassificationManager.java
+++ b/core/java/android/view/textclassifier/TextClassificationManager.java
@@ -25,7 +25,6 @@ import android.content.Context;
import android.os.ServiceManager;
import android.provider.DeviceConfig;
import android.provider.DeviceConfig.Properties;
-import android.service.textclassifier.TextClassifierService;
import android.view.textclassifier.TextClassifier.TextClassifierType;
import com.android.internal.annotations.GuardedBy;
@@ -62,9 +61,6 @@ public final class TextClassificationManager {
@Nullable
private TextClassifier mLocalTextClassifier;
@GuardedBy("mLock")
- @Nullable
- private TextClassifier mSystemTextClassifier;
- @GuardedBy("mLock")
private TextClassificationSessionFactory mSessionFactory;
@GuardedBy("mLock")
private TextClassificationConstants mSettings;
@@ -91,8 +87,8 @@ public final class TextClassificationManager {
synchronized (mLock) {
if (mCustomTextClassifier != null) {
return mCustomTextClassifier;
- } else if (isSystemTextClassifierEnabled()) {
- return getSystemTextClassifier();
+ } else if (getSettings().isSystemTextClassifierEnabled()) {
+ return getSystemTextClassifier(SystemTextClassifier.SYSTEM);
} else {
return getLocalTextClassifier();
}
@@ -116,6 +112,7 @@ public final class TextClassificationManager {
*
* @see TextClassifier#LOCAL
* @see TextClassifier#SYSTEM
+ * @see TextClassifier#DEFAULT_SERVICE
* @hide
*/
@UnsupportedAppUsage
@@ -124,7 +121,7 @@ public final class TextClassificationManager {
case TextClassifier.LOCAL:
return getLocalTextClassifier();
default:
- return getSystemTextClassifier();
+ return getSystemTextClassifier(type);
}
}
@@ -204,21 +201,22 @@ public final class TextClassificationManager {
}
}
- private TextClassifier getSystemTextClassifier() {
+ /** @hide */
+ private TextClassifier getSystemTextClassifier(@TextClassifierType int type) {
synchronized (mLock) {
- if (mSystemTextClassifier == null && isSystemTextClassifierEnabled()) {
+ if (getSettings().isSystemTextClassifierEnabled()) {
try {
- mSystemTextClassifier = new SystemTextClassifier(mContext, getSettings());
- Log.d(LOG_TAG, "Initialized SystemTextClassifier");
+ Log.d(LOG_TAG, "Initializing SystemTextClassifier, type = " + type);
+ return new SystemTextClassifier(
+ mContext,
+ getSettings(),
+ /* useDefault= */ type == TextClassifier.DEFAULT_SERVICE);
} catch (ServiceManager.ServiceNotFoundException e) {
Log.e(LOG_TAG, "Could not initialize SystemTextClassifier", e);
}
}
+ return TextClassifier.NO_OP;
}
- if (mSystemTextClassifier != null) {
- return mSystemTextClassifier;
- }
- return TextClassifier.NO_OP;
}
/**
@@ -240,11 +238,6 @@ public final class TextClassificationManager {
}
}
- private boolean isSystemTextClassifierEnabled() {
- return getSettings().isSystemTextClassifierEnabled()
- && TextClassifierService.getServiceComponentName(mContext) != null;
- }
-
/** @hide */
@VisibleForTesting
public void invalidateForTesting() {
@@ -261,7 +254,6 @@ public final class TextClassificationManager {
private void invalidateTextClassifiers() {
synchronized (mLock) {
mLocalTextClassifier = null;
- mSystemTextClassifier = null;
}
}
@@ -274,7 +266,8 @@ public final class TextClassificationManager {
/** @hide **/
public void dump(IndentingPrintWriter pw) {
getLocalTextClassifier().dump(pw);
- getSystemTextClassifier().dump(pw);
+ getSystemTextClassifier(TextClassifier.DEFAULT_SERVICE).dump(pw);
+ getSystemTextClassifier(TextClassifier.SYSTEM).dump(pw);
getSettings().dump(pw);
}
diff --git a/core/java/android/view/textclassifier/TextClassifier.java b/core/java/android/view/textclassifier/TextClassifier.java
index 9b3369390b6a..2cc226d5a601 100644
--- a/core/java/android/view/textclassifier/TextClassifier.java
+++ b/core/java/android/view/textclassifier/TextClassifier.java
@@ -66,12 +66,14 @@ public interface TextClassifier {
/** @hide */
@Retention(RetentionPolicy.SOURCE)
- @IntDef(value = {LOCAL, SYSTEM})
+ @IntDef(value = {LOCAL, SYSTEM, DEFAULT_SERVICE})
@interface TextClassifierType {} // TODO: Expose as system APIs.
/** Specifies a TextClassifier that runs locally in the app's process. @hide */
int LOCAL = 0;
/** Specifies a TextClassifier that runs in the system process and serves all apps. @hide */
int SYSTEM = 1;
+ /** Specifies the default TextClassifier that runs in the system process. @hide */
+ int DEFAULT_SERVICE = 2;
/** The TextClassifier failed to run. */
String TYPE_UNKNOWN = "";
@@ -667,8 +669,10 @@ public interface TextClassifier {
Preconditions.checkArgument(endIndex > startIndex);
}
- static void checkTextLength(CharSequence text, int maxLength) {
- Preconditions.checkArgumentInRange(text.length(), 0, maxLength, "text.length()");
+ /** Returns if the length of the text is within the range. */
+ static boolean checkTextLength(CharSequence text, int maxLength) {
+ int textLength = text.length();
+ return textLength >= 0 && textLength <= maxLength;
}
/**
diff --git a/core/java/android/view/textclassifier/TextClassifierImpl.java b/core/java/android/view/textclassifier/TextClassifierImpl.java
index 61bd7c72b80b..d7149ee05b57 100644
--- a/core/java/android/view/textclassifier/TextClassifierImpl.java
+++ b/core/java/android/view/textclassifier/TextClassifierImpl.java
@@ -286,8 +286,10 @@ public final class TextClassifierImpl implements TextClassifier {
@WorkerThread
public TextLinks generateLinks(@NonNull TextLinks.Request request) {
Objects.requireNonNull(request);
- Utils.checkTextLength(request.getText(), getMaxGenerateLinksTextLength());
Utils.checkMainThread();
+ if (!Utils.checkTextLength(request.getText(), getMaxGenerateLinksTextLength())) {
+ return mFallback.generateLinks(request);
+ }
if (!mSettings.isSmartLinkifyEnabled() && request.isLegacyFallback()) {
return Utils.generateLegacyLinks(request);
diff --git a/core/java/android/view/textclassifier/TextLanguage.java b/core/java/android/view/textclassifier/TextLanguage.java
index cc9109e6e9bb..58024dcc09b9 100644
--- a/core/java/android/view/textclassifier/TextLanguage.java
+++ b/core/java/android/view/textclassifier/TextLanguage.java
@@ -230,6 +230,7 @@ public final class TextLanguage implements Parcelable {
@Nullable private String mCallingPackageName;
@UserIdInt
private int mUserId = UserHandle.USER_NULL;
+ private boolean mUseDefaultTextClassifier;
private Request(CharSequence text, Bundle bundle) {
mText = text;
@@ -283,6 +284,26 @@ public final class TextLanguage implements Parcelable {
}
/**
+ * Sets whether to use the default text classifier to handle this request.
+ * This will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ void setUseDefaultTextClassifier(boolean useDefaultTextClassifier) {
+ mUseDefaultTextClassifier = useDefaultTextClassifier;
+ }
+
+ /**
+ * Returns whether to use the default text classifier to handle this request. This
+ * will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ public boolean getUseDefaultTextClassifier() {
+ return mUseDefaultTextClassifier;
+ }
+
+ /**
* Returns a bundle containing non-structured extra information about this request.
*
* <p><b>NOTE: </b>Do not modify this bundle.
@@ -303,6 +324,7 @@ public final class TextLanguage implements Parcelable {
dest.writeString(mCallingPackageName);
dest.writeInt(mUserId);
dest.writeBundle(mExtra);
+ dest.writeBoolean(mUseDefaultTextClassifier);
}
private static Request readFromParcel(Parcel in) {
@@ -310,10 +332,12 @@ public final class TextLanguage implements Parcelable {
final String callingPackageName = in.readString();
final int userId = in.readInt();
final Bundle extra = in.readBundle();
+ final boolean useDefaultTextClassifier = in.readBoolean();
final Request request = new Request(text, extra);
request.setCallingPackageName(callingPackageName);
request.setUserId(userId);
+ request.setUseDefaultTextClassifier(useDefaultTextClassifier);
return request;
}
diff --git a/core/java/android/view/textclassifier/TextLinks.java b/core/java/android/view/textclassifier/TextLinks.java
index bda12b0893d1..7430cb38b987 100644
--- a/core/java/android/view/textclassifier/TextLinks.java
+++ b/core/java/android/view/textclassifier/TextLinks.java
@@ -345,6 +345,7 @@ public final class TextLinks implements Parcelable {
@Nullable private final ZonedDateTime mReferenceTime;
@UserIdInt
private int mUserId = UserHandle.USER_NULL;
+ private boolean mUseDefaultTextClassifier;
private Request(
CharSequence text,
@@ -447,6 +448,26 @@ public final class TextLinks implements Parcelable {
}
/**
+ * Sets whether to use the default text classifier to handle this request.
+ * This will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ void setUseDefaultTextClassifier(boolean useDefaultTextClassifier) {
+ mUseDefaultTextClassifier = useDefaultTextClassifier;
+ }
+
+ /**
+ * Returns whether to use the default text classifier to handle this request. This
+ * will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ public boolean getUseDefaultTextClassifier() {
+ return mUseDefaultTextClassifier;
+ }
+
+ /**
* Returns the extended data.
*
* <p><b>NOTE: </b>Do not modify this bundle.
@@ -568,6 +589,7 @@ public final class TextLinks implements Parcelable {
dest.writeInt(mUserId);
dest.writeBundle(mExtras);
dest.writeString(mReferenceTime == null ? null : mReferenceTime.toString());
+ dest.writeBoolean(mUseDefaultTextClassifier);
}
private static Request readFromParcel(Parcel in) {
@@ -580,11 +602,13 @@ public final class TextLinks implements Parcelable {
final String referenceTimeString = in.readString();
final ZonedDateTime referenceTime = referenceTimeString == null
? null : ZonedDateTime.parse(referenceTimeString);
+ final boolean useDefaultTextClassifier = in.readBoolean();
final Request request = new Request(text, defaultLocales, entityConfig,
/* legacyFallback= */ true, referenceTime, extras);
request.setCallingPackageName(callingPackageName);
request.setUserId(userId);
+ request.setUseDefaultTextClassifier(useDefaultTextClassifier);
return request;
}
diff --git a/core/java/android/view/textclassifier/TextSelection.java b/core/java/android/view/textclassifier/TextSelection.java
index 4a36cbfc35e5..575a072d7066 100644
--- a/core/java/android/view/textclassifier/TextSelection.java
+++ b/core/java/android/view/textclassifier/TextSelection.java
@@ -216,6 +216,7 @@ public final class TextSelection implements Parcelable {
@Nullable private String mCallingPackageName;
@UserIdInt
private int mUserId = UserHandle.USER_NULL;
+ private boolean mUseDefaultTextClassifier;
private Request(
CharSequence text,
@@ -316,6 +317,26 @@ public final class TextSelection implements Parcelable {
}
/**
+ * Sets whether to use the default text classifier to handle this request.
+ * This will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ void setUseDefaultTextClassifier(boolean useDefaultTextClassifier) {
+ mUseDefaultTextClassifier = useDefaultTextClassifier;
+ }
+
+ /**
+ * Returns whether to use the default text classifier to handle this request. This
+ * will be ignored if it is not the system text classifier to handle this request.
+ *
+ * @hide
+ */
+ public boolean getUseDefaultTextClassifier() {
+ return mUseDefaultTextClassifier;
+ }
+
+ /**
* Returns the extended data.
*
* <p><b>NOTE: </b>Do not modify this bundle.
@@ -420,6 +441,7 @@ public final class TextSelection implements Parcelable {
dest.writeString(mCallingPackageName);
dest.writeInt(mUserId);
dest.writeBundle(mExtras);
+ dest.writeBoolean(mUseDefaultTextClassifier);
}
private static Request readFromParcel(Parcel in) {
@@ -430,11 +452,13 @@ public final class TextSelection implements Parcelable {
final String callingPackageName = in.readString();
final int userId = in.readInt();
final Bundle extras = in.readBundle();
+ final boolean systemTextClassifierType = in.readBoolean();
final Request request = new Request(text, startIndex, endIndex, defaultLocales,
/* darkLaunchAllowed= */ false, extras);
request.setCallingPackageName(callingPackageName);
request.setUserId(userId);
+ request.setUseDefaultTextClassifier(systemTextClassifierType);
return request;
}
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index 4752eadfe385..9f03d956f22c 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -756,9 +756,6 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
*/
private ListItemAccessibilityDelegate mAccessibilityDelegate;
- private int mLastAccessibilityScrollEventFromIndex;
- private int mLastAccessibilityScrollEventToIndex;
-
/**
* Track the item count from the last time we handled a data change.
*/
@@ -1520,25 +1517,10 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
onScrollChanged(0, 0, 0, 0); // dummy values, View's implementation does not use these.
}
- /** @hide */
- @Override
- public void sendAccessibilityEventUnchecked(AccessibilityEvent event) {
- // Since this class calls onScrollChanged even if the mFirstPosition and the
- // child count have not changed we will avoid sending duplicate accessibility
- // events.
- if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_SCROLLED) {
- final int firstVisiblePosition = getFirstVisiblePosition();
- final int lastVisiblePosition = getLastVisiblePosition();
- if (mLastAccessibilityScrollEventFromIndex == firstVisiblePosition
- && mLastAccessibilityScrollEventToIndex == lastVisiblePosition) {
- return;
- } else {
- mLastAccessibilityScrollEventFromIndex = firstVisiblePosition;
- mLastAccessibilityScrollEventToIndex = lastVisiblePosition;
- }
- }
- super.sendAccessibilityEventUnchecked(event);
- }
+ /**
+ * A TYPE_VIEW_SCROLLED event should be sent whenever a scroll happens, even if the
+ * mFirstPosition and the child count have not changed.
+ */
@Override
public CharSequence getAccessibilityClassName() {
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java
index 7fd41508dfc3..4e4a9837b32c 100644
--- a/core/java/android/widget/Editor.java
+++ b/core/java/android/widget/Editor.java
@@ -454,15 +454,17 @@ public class Editor {
aspectRatio = 5.5f;
}
- final Paint.FontMetrics fontMetrics = mTextView.getPaint().getFontMetrics();
- final float sourceHeight = fontMetrics.descent - fontMetrics.ascent;
+ final Layout layout = mTextView.getLayout();
+ final int line = layout.getLineForOffset(mTextView.getSelectionStart());
+ final int sourceHeight =
+ layout.getLineBottomWithoutSpacing(line) - layout.getLineTop(line);
// Slightly increase the height to avoid tooLargeTextForMagnifier() returns true.
int height = (int)(sourceHeight * zoom) + 2;
int width = (int)(aspectRatio * height);
params.setFishEyeStyle()
.setSize(width, height)
- .setSourceSize(width, Math.round(sourceHeight))
+ .setSourceSize(width, sourceHeight)
.setElevation(0)
.setInitialZoom(zoom)
.setClippingEnabled(false);
@@ -5041,7 +5043,7 @@ public class Editor {
// Vertically snap to middle of current line.
showPosInView.y = ((mTextView.getLayout().getLineTop(lineNumber)
- + mTextView.getLayout().getLineBottom(lineNumber)) / 2.0f
+ + mTextView.getLayout().getLineBottomWithoutSpacing(lineNumber)) / 2.0f
+ mTextView.getTotalPaddingTop() - mTextView.getScrollY()) * mTextViewScaleY;
return true;
}
diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java
index 79ec680f4c52..3c3daa3c7001 100644
--- a/core/java/android/widget/ListView.java
+++ b/core/java/android/widget/ListView.java
@@ -3255,6 +3255,9 @@ public class ListView extends AbsListView {
*/
@UnsupportedAppUsage
private void scrollListItemsBy(int amount) {
+ int oldX = mScrollX;
+ int oldY = mScrollY;
+
offsetChildrenTopAndBottom(amount);
final int listBottom = getHeight() - mListPadding.bottom;
@@ -3327,6 +3330,7 @@ public class ListView extends AbsListView {
recycleBin.fullyDetachScrapViews();
removeUnusedFixedViews(mHeaderViewInfos);
removeUnusedFixedViews(mFooterViewInfos);
+ onScrollChanged(mScrollX, mScrollY, oldX, oldY);
}
private View addViewAbove(View theView, int position) {
diff --git a/core/java/android/widget/Magnifier.java b/core/java/android/widget/Magnifier.java
index 57b63a7a9f0d..50da6ce19f44 100644
--- a/core/java/android/widget/Magnifier.java
+++ b/core/java/android/widget/Magnifier.java
@@ -854,6 +854,8 @@ public final class Magnifier {
// The z of the magnifier surface, defining its z order in the list of
// siblings having the same parent surface (usually the main app surface).
private static final int SURFACE_Z = 5;
+ // The width of the ramp region in pixels on the left & right sides of the fish-eye effect.
+ private static final int FISHEYE_RAMP_WIDTH = 30;
// Display associated to the view the magnifier is attached to.
private final Display mDisplay;
@@ -906,7 +908,8 @@ public final class Magnifier {
// Whether is in the new magnifier style.
private boolean mIsFishEyeStyle;
// The mesh matrix for the fish-eye effect.
- private float[] mMesh;
+ private float[] mMeshLeft;
+ private float[] mMeshRight;
private int mMeshWidth;
private int mMeshHeight;
@@ -986,29 +989,29 @@ public final class Magnifier {
}
private void createMeshMatrixForFishEyeEffect() {
- mMeshWidth = mZoom < 1.5f ? 5 : 4;
+ mMeshWidth = 1;
mMeshHeight = 6;
final float w = mContentWidth;
final float h = mContentHeight;
- final float dx = (w - mZoom * w * (mMeshWidth - 2) / mMeshWidth) / 2;
- mMesh = new float[2 * (mMeshWidth + 1) * (mMeshHeight + 1)];
+ final float h0 = h / mZoom;
+ final float dh = h - h0;
+ final float ramp = FISHEYE_RAMP_WIDTH;
+ mMeshLeft = new float[2 * (mMeshWidth + 1) * (mMeshHeight + 1)];
+ mMeshRight = new float[2 * (mMeshWidth + 1) * (mMeshHeight + 1)];
for (int i = 0; i < 2 * (mMeshWidth + 1) * (mMeshHeight + 1); i += 2) {
// Calculates X value.
final int colIndex = i % (2 * (mMeshWidth + 1)) / 2;
- if (colIndex == 0) {
- mMesh[i] = 0;
- } else if (colIndex == mMeshWidth) {
- mMesh[i] = w;
- } else {
- mMesh[i] = (colIndex - 1) * (w - 2 * dx) / (mMeshWidth - 2) + dx;
- }
+ mMeshLeft[i] = (float) colIndex * ramp / mMeshWidth;
+ mMeshRight[i] = w - ramp + colIndex * ramp / mMeshWidth;
+
// Calculates Y value.
final int rowIndex = i / 2 / (mMeshWidth + 1);
- final float y0 = colIndex == 0 || colIndex == mMeshWidth
- ? (h - h / mZoom) / 2 : 0;
- final float dy = colIndex == 0 || colIndex == mMeshWidth
- ? h / mZoom / mMeshHeight : h / mMeshHeight;
- mMesh[i + 1] = y0 + rowIndex * dy;
+ final float hl = h0 + dh * colIndex / mMeshWidth;
+ final float yl = (h - hl) / 2;
+ mMeshLeft[i + 1] = yl + hl * rowIndex / mMeshHeight;
+ final float hr = h - dh * colIndex / mMeshWidth;
+ final float yr = (h - hr) / 2;
+ mMeshRight[i + 1] = yr + hr * rowIndex / mMeshHeight;
}
}
@@ -1166,14 +1169,31 @@ public final class Magnifier {
final RecordingCanvas canvas =
mBitmapRenderNode.beginRecording(mContentWidth, mContentHeight);
try {
+ final int w = mBitmap.getWidth();
+ final int h = mBitmap.getHeight();
+ final Paint paint = new Paint();
+ paint.setFilterBitmap(true);
if (mIsFishEyeStyle) {
+ final int ramp = FISHEYE_RAMP_WIDTH;
+ final int margin =
+ (int)((mContentWidth - (mContentWidth - 2 * ramp) / mZoom) / 2);
+
+ // Draws the middle part.
+ final Rect srcRect = new Rect(margin, 0, w - margin, h);
+ final Rect dstRect = new Rect(
+ ramp, 0, mContentWidth - ramp, mContentHeight);
+ canvas.drawBitmap(mBitmap, srcRect, dstRect, paint);
+
+ // Draws the left/right parts with mesh matrixes.
+ canvas.drawBitmapMesh(
+ Bitmap.createBitmap(mBitmap, 0, 0, margin, h),
+ mMeshWidth, mMeshHeight, mMeshLeft, 0, null, 0, paint);
canvas.drawBitmapMesh(
- mBitmap, mMeshWidth, mMeshHeight, mMesh, 0, null, 0, null);
+ Bitmap.createBitmap(mBitmap, w - margin, 0, margin, h),
+ mMeshWidth, mMeshHeight, mMeshRight, 0, null, 0, paint);
} else {
- final Rect srcRect = new Rect(0, 0, mBitmap.getWidth(), mBitmap.getHeight());
+ final Rect srcRect = new Rect(0, 0, w, h);
final Rect dstRect = new Rect(0, 0, mContentWidth, mContentHeight);
- final Paint paint = new Paint();
- paint.setFilterBitmap(true);
canvas.drawBitmap(mBitmap, srcRect, dstRect, paint);
}
} finally {
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 8ce6ee576b00..cbfa05caac6e 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -422,6 +422,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
*/
static final int PROCESS_TEXT_REQUEST_CODE = 100;
+ // Accessibility action to send IME custom action for CTS testing.
+ public static final int ACCESSIBILITY_ACTION_IME_ENTER = R.id.accessibilityActionImeEnter;
+
/**
* Return code of {@link #doKeyDown}.
*/
@@ -11741,6 +11744,23 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
info.setContentInvalid(true);
info.setError(mEditor.mError);
}
+ // TextView will expose this action if it is editable and has focus.
+ if (isTextEditable() && isFocused()) {
+ CharSequence imeActionLabel = mContext.getResources().getString(
+ com.android.internal.R.string.keyboardview_keycode_enter);
+ if (getImeActionId() != 0 && getImeActionLabel() != null) {
+ imeActionLabel = getImeActionLabel();
+ final int imeActionId = getImeActionId();
+ // put ime action id into the extra data with ACTION_ARGUMENT_IME_ACTION_ID_INT.
+ final Bundle argument = info.getExtras();
+ argument.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_IME_ACTION_ID_INT,
+ imeActionId);
+ }
+ AccessibilityNodeInfo.AccessibilityAction action =
+ new AccessibilityNodeInfo.AccessibilityAction(
+ ACCESSIBILITY_ACTION_IME_ENTER, imeActionLabel);
+ info.addAction(action);
+ }
}
if (!TextUtils.isEmpty(mText)) {
@@ -12052,6 +12072,17 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
}
}
} return true;
+ case ACCESSIBILITY_ACTION_IME_ENTER: {
+ if (isFocused() && isTextEditable()) {
+ final int imeActionId = (arguments != null) ? arguments.getInt(
+ AccessibilityNodeInfo.ACTION_ARGUMENT_IME_ACTION_ID_INT,
+ EditorInfo.IME_ACTION_UNSPECIFIED)
+ : EditorInfo.IME_ACTION_UNSPECIFIED;
+ if (imeActionId == getImeActionId()) {
+ onEditorAction(imeActionId);
+ }
+ }
+ } return true;
default: {
return super.performAccessibilityActionInternal(action, arguments);
}
diff --git a/core/java/android/widget/Toast.java b/core/java/android/widget/Toast.java
index 78d4e61ea953..a2c70b9afbee 100644
--- a/core/java/android/widget/Toast.java
+++ b/core/java/android/widget/Toast.java
@@ -148,6 +148,9 @@ public class Toast {
@Nullable
private CharSequence mText;
+ // TODO(b/144152069): Remove this after assessing impact on dogfood.
+ private boolean mIsCustomToast;
+
/**
* Construct an empty Toast object. You must call {@link #setView} before you
* can call {@link #show}.
@@ -214,7 +217,8 @@ public class Toast {
service.enqueueTextToast(pkg, mToken, mText, mDuration, displayId, callback);
}
} else {
- service.enqueueToast(pkg, mToken, tn, mDuration, displayId);
+ service.enqueueTextOrCustomToast(pkg, mToken, tn, mDuration, displayId,
+ mIsCustomToast);
}
} catch (RemoteException e) {
// Empty
@@ -252,12 +256,17 @@ public class Toast {
*/
@Deprecated
public void setView(View view) {
+ mIsCustomToast = true;
mNextView = view;
}
/**
* Return the view.
*
+ * <p><strong>Warning:</strong> Starting from Android {@link Build.VERSION_CODES#R}, for apps
+ * targeting API level {@link Build.VERSION_CODES#R} or higher that haven't called {@link
+ * #setView(View)} with a non-{@code null} view, this method will return {@code null}.
+ *
* @see #setView
* @deprecated Custom toast views are deprecated. Apps can create a standard text toast with the
* {@link #makeText(Context, CharSequence, int)} method, or use a
@@ -266,6 +275,7 @@ public class Toast {
* targeting API level {@link Build.VERSION_CODES#R} or higher that are in the background
* will not have custom toast views displayed.
*/
+ @Deprecated
public View getView() {
return mNextView;
}
@@ -292,6 +302,10 @@ public class Toast {
/**
* Set the margins of the view.
*
+ * <p><strong>Warning:</strong> Starting from Android {@link Build.VERSION_CODES#R}, for apps
+ * targeting API level {@link Build.VERSION_CODES#R} or higher, this method is a no-op when
+ * called on text toasts.
+ *
* @param horizontalMargin The horizontal margin, in percentage of the
* container width, between the container's edges and the
* notification
@@ -300,30 +314,59 @@ public class Toast {
* notification
*/
public void setMargin(float horizontalMargin, float verticalMargin) {
+ if (isSystemRenderedTextToast()) {
+ Log.e(TAG, "setMargin() shouldn't be called on text toasts, the values won't be used");
+ }
mTN.mHorizontalMargin = horizontalMargin;
mTN.mVerticalMargin = verticalMargin;
}
/**
* Return the horizontal margin.
+ *
+ * <p><strong>Warning:</strong> Starting from Android {@link Build.VERSION_CODES#R}, for apps
+ * targeting API level {@link Build.VERSION_CODES#R} or higher, this method shouldn't be called
+ * on text toasts as its return value may not reflect actual value since text toasts are not
+ * rendered by the app anymore.
*/
public float getHorizontalMargin() {
+ if (isSystemRenderedTextToast()) {
+ Log.e(TAG, "getHorizontalMargin() shouldn't be called on text toasts, the result may "
+ + "not reflect actual values.");
+ }
return mTN.mHorizontalMargin;
}
/**
* Return the vertical margin.
+ *
+ * <p><strong>Warning:</strong> Starting from Android {@link Build.VERSION_CODES#R}, for apps
+ * targeting API level {@link Build.VERSION_CODES#R} or higher, this method shouldn't be called
+ * on text toasts as its return value may not reflect actual value since text toasts are not
+ * rendered by the app anymore.
*/
public float getVerticalMargin() {
+ if (isSystemRenderedTextToast()) {
+ Log.e(TAG, "getVerticalMargin() shouldn't be called on text toasts, the result may not"
+ + " reflect actual values.");
+ }
return mTN.mVerticalMargin;
}
/**
* Set the location at which the notification should appear on the screen.
+ *
+ * <p><strong>Warning:</strong> Starting from Android {@link Build.VERSION_CODES#R}, for apps
+ * targeting API level {@link Build.VERSION_CODES#R} or higher, this method is a no-op when
+ * called on text toasts.
+ *
* @see android.view.Gravity
* @see #getGravity
*/
public void setGravity(int gravity, int xOffset, int yOffset) {
+ if (isSystemRenderedTextToast()) {
+ Log.e(TAG, "setGravity() shouldn't be called on text toasts, the values won't be used");
+ }
mTN.mGravity = gravity;
mTN.mX = xOffset;
mTN.mY = yOffset;
@@ -331,27 +374,59 @@ public class Toast {
/**
* Get the location at which the notification should appear on the screen.
+ *
+ * <p><strong>Warning:</strong> Starting from Android {@link Build.VERSION_CODES#R}, for apps
+ * targeting API level {@link Build.VERSION_CODES#R} or higher, this method shouldn't be called
+ * on text toasts as its return value may not reflect actual value since text toasts are not
+ * rendered by the app anymore.
+ *
* @see android.view.Gravity
* @see #getGravity
*/
public int getGravity() {
+ if (isSystemRenderedTextToast()) {
+ Log.e(TAG, "getGravity() shouldn't be called on text toasts, the result may not reflect"
+ + " actual values.");
+ }
return mTN.mGravity;
}
/**
* Return the X offset in pixels to apply to the gravity's location.
+ *
+ * <p><strong>Warning:</strong> Starting from Android {@link Build.VERSION_CODES#R}, for apps
+ * targeting API level {@link Build.VERSION_CODES#R} or higher, this method shouldn't be called
+ * on text toasts as its return value may not reflect actual value since text toasts are not
+ * rendered by the app anymore.
*/
public int getXOffset() {
+ if (isSystemRenderedTextToast()) {
+ Log.e(TAG, "getXOffset() shouldn't be called on text toasts, the result may not reflect"
+ + " actual values.");
+ }
return mTN.mX;
}
/**
* Return the Y offset in pixels to apply to the gravity's location.
+ *
+ * <p><strong>Warning:</strong> Starting from Android {@link Build.VERSION_CODES#R}, for apps
+ * targeting API level {@link Build.VERSION_CODES#R} or higher, this method shouldn't be called
+ * on text toasts as its return value may not reflect actual value since text toasts are not
+ * rendered by the app anymore.
*/
public int getYOffset() {
+ if (isSystemRenderedTextToast()) {
+ Log.e(TAG, "getYOffset() shouldn't be called on text toasts, the result may not reflect"
+ + " actual values.");
+ }
return mTN.mY;
}
+ private boolean isSystemRenderedTextToast() {
+ return Compatibility.isChangeEnabled(CHANGE_TEXT_TOASTS_IN_THE_SYSTEM) && mNextView == null;
+ }
+
/**
* Adds a callback to be notified when the toast is shown or hidden.
*
@@ -385,7 +460,7 @@ public class Toast {
}
/**
- * Make a standard toast that just contains a text view.
+ * Make a standard toast that just contains text.
*
* @param context The context to use. Usually your {@link android.app.Application}
* or {@link android.app.Activity} object.
@@ -428,7 +503,7 @@ public class Toast {
}
/**
- * Make a standard toast that just contains a text view with the text from a resource.
+ * Make a standard toast that just contains text from a resource.
*
* @param context The context to use. Usually your {@link android.app.Application}
* or {@link android.app.Activity} object.
diff --git a/core/java/com/android/ims/internal/uce/common/CapInfo.java b/core/java/com/android/ims/internal/uce/common/CapInfo.java
index 2bb3f1fed927..a7a90f6912c2 100644
--- a/core/java/com/android/ims/internal/uce/common/CapInfo.java
+++ b/core/java/com/android/ims/internal/uce/common/CapInfo.java
@@ -78,6 +78,10 @@ public class CapInfo implements Parcelable {
private boolean mChatbotSupported = false;
/** Chatbot role support. */
private boolean mChatbotRoleSupported = false;
+ /** Standalone Chatbot communication support. */
+ private boolean mSmChatbotSupported = false;
+ /** MMtel based call composer support. */
+ private boolean mMmtelCallComposerSupported = false;
/** List of supported extensions. */
private String[] mExts = new String[10];
/** Time used to compute when to query again. */
@@ -498,6 +502,34 @@ public class CapInfo implements Parcelable {
this.mChatbotRoleSupported = chatbotRoleSupported;
}
+ /**
+ * Checks whether standalone chatbot communication is supported.
+ */
+ public boolean isSmChatbotSupported() {
+ return mSmChatbotSupported;
+ }
+
+ /**
+ * Sets standalone chatbot communication as supported or not supported.
+ */
+ public void setSmChatbotSupported(boolean smChatbotSupported) {
+ this.mSmChatbotSupported = smChatbotSupported;
+ }
+
+ /**
+ * Checks whether Mmtel based call composer is supported.
+ */
+ public boolean isMmtelCallComposerSupported() {
+ return mMmtelCallComposerSupported;
+ }
+
+ /**
+ * Sets Mmtel based call composer as supported or not supported.
+ */
+ public void setMmtelCallComposerSupported(boolean mmtelCallComposerSupported) {
+ this.mMmtelCallComposerSupported = mmtelCallComposerSupported;
+ }
+
/** Gets the list of supported extensions. */
public String[] getExts() {
return mExts;
@@ -553,6 +585,8 @@ public class CapInfo implements Parcelable {
dest.writeInt(mSharedSketchSupported ? 1 : 0);
dest.writeInt(mChatbotSupported ? 1 : 0);
dest.writeInt(mChatbotRoleSupported ? 1 : 0);
+ dest.writeInt(mSmChatbotSupported ? 1 : 0);
+ dest.writeInt(mMmtelCallComposerSupported ? 1 : 0);
dest.writeInt(mRcsIpVoiceCallSupported ? 1 : 0);
dest.writeInt(mRcsIpVideoCallSupported ? 1 : 0);
@@ -602,6 +636,8 @@ public class CapInfo implements Parcelable {
mSharedSketchSupported = (source.readInt() == 0) ? false : true;
mChatbotSupported = (source.readInt() == 0) ? false : true;
mChatbotRoleSupported = (source.readInt() == 0) ? false : true;
+ mSmChatbotSupported = (source.readInt() == 0) ? false : true;
+ mMmtelCallComposerSupported = (source.readInt() == 0) ? false : true;
mRcsIpVoiceCallSupported = (source.readInt() == 0) ? false : true;
mRcsIpVideoCallSupported = (source.readInt() == 0) ? false : true;
diff --git a/core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java b/core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java
index 384275f64e3d..82eb55a30a4e 100644
--- a/core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java
+++ b/core/java/com/android/internal/app/AccessibilityButtonChooserActivity.java
@@ -39,6 +39,8 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.res.TypedArray;
+import android.graphics.ColorMatrix;
+import android.graphics.ColorMatrixColorFilter;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
@@ -74,6 +76,8 @@ import java.util.StringJoiner;
*/
public class AccessibilityButtonChooserActivity extends Activity {
private static final char SERVICES_SEPARATOR = ':';
+ private static final float DISABLED_ALPHA = 0.5f;
+ private static final float ENABLED_ALPHA = 1.0f;
private static final TextUtils.SimpleStringSplitter sStringColonSplitter =
new TextUtils.SimpleStringSplitter(SERVICES_SEPARATOR);
@ShortcutType
@@ -263,8 +267,7 @@ public class AccessibilityButtonChooserActivity extends Activity {
targets.addAll(getAccessibilityServiceTargets(context));
targets.addAll(getWhiteListingServiceTargets(context));
- final AccessibilityManager ams = (AccessibilityManager) context.getSystemService(
- Context.ACCESSIBILITY_SERVICE);
+ final AccessibilityManager ams = context.getSystemService(AccessibilityManager.class);
final List<String> requiredTargets = ams.getAccessibilityShortcutTargets(shortcutType);
targets.removeIf(target -> !requiredTargets.contains(target.getId()));
@@ -273,8 +276,7 @@ public class AccessibilityButtonChooserActivity extends Activity {
private static List<AccessibilityButtonTarget> getAccessibilityServiceTargets(
@NonNull Context context) {
- final AccessibilityManager ams = (AccessibilityManager) context.getSystemService(
- Context.ACCESSIBILITY_SERVICE);
+ final AccessibilityManager ams = context.getSystemService(AccessibilityManager.class);
final List<AccessibilityServiceInfo> installedServices =
ams.getInstalledAccessibilityServiceList();
if (installedServices == null) {
@@ -350,10 +352,11 @@ public class AccessibilityButtonChooserActivity extends Activity {
}
private static class ViewHolder {
+ View mItemView;
ImageView mIconView;
TextView mLabelView;
FrameLayout mItemContainer;
- ImageView mViewItem;
+ ImageView mActionViewItem;
Switch mSwitchItem;
}
@@ -403,12 +406,13 @@ public class AccessibilityButtonChooserActivity extends Activity {
R.layout.accessibility_button_chooser_item, parent, /* attachToRoot= */
false);
holder = new ViewHolder();
+ holder.mItemView = convertView;
holder.mIconView = convertView.findViewById(R.id.accessibility_button_target_icon);
holder.mLabelView = convertView.findViewById(
R.id.accessibility_button_target_label);
holder.mItemContainer = convertView.findViewById(
R.id.accessibility_button_target_item_container);
- holder.mViewItem = convertView.findViewById(
+ holder.mActionViewItem = convertView.findViewById(
R.id.accessibility_button_target_view_item);
holder.mSwitchItem = convertView.findViewById(
R.id.accessibility_button_target_switch_item);
@@ -452,23 +456,35 @@ public class AccessibilityButtonChooserActivity extends Activity {
final boolean isLaunchMenuMode = (mShortcutMenuMode == ShortcutMenuMode.LAUNCH);
final boolean isHardwareButtonTriggered =
(mShortcutButtonType == ACCESSIBILITY_SHORTCUT_KEY);
-
- holder.mLabelView.setEnabled(isLaunchMenuMode || isHardwareButtonTriggered);
- holder.mViewItem.setEnabled(isLaunchMenuMode || isHardwareButtonTriggered);
- holder.mViewItem.setImageDrawable(context.getDrawable(R.drawable.ic_delete_item));
- holder.mViewItem.setVisibility(View.VISIBLE);
+ final boolean enabledState = (isLaunchMenuMode || isHardwareButtonTriggered);
+ final ColorMatrix grayScaleMatrix = new ColorMatrix();
+ grayScaleMatrix.setSaturation(/* grayScale */0);
+
+ holder.mIconView.setColorFilter(enabledState
+ ? null : new ColorMatrixColorFilter(grayScaleMatrix));
+ holder.mIconView.setAlpha(enabledState
+ ? ENABLED_ALPHA : DISABLED_ALPHA);
+ holder.mLabelView.setEnabled(enabledState);
+ holder.mActionViewItem.setEnabled(enabledState);
+ holder.mActionViewItem.setImageDrawable(context.getDrawable(R.drawable.ic_delete_item));
+ holder.mActionViewItem.setVisibility(View.VISIBLE);
holder.mSwitchItem.setVisibility(View.GONE);
holder.mItemContainer.setVisibility(isLaunchMenuMode ? View.GONE : View.VISIBLE);
+ holder.mItemView.setEnabled(enabledState);
}
private void updateInvisibleActionItemVisibility(@NonNull Context context,
@NonNull ViewHolder holder) {
- final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT);
-
- holder.mViewItem.setImageDrawable(context.getDrawable(R.drawable.ic_delete_item));
- holder.mViewItem.setVisibility(View.VISIBLE);
+ holder.mIconView.setColorFilter(null);
+ holder.mIconView.setAlpha(ENABLED_ALPHA);
+ holder.mLabelView.setEnabled(true);
+ holder.mActionViewItem.setEnabled(true);
+ holder.mActionViewItem.setImageDrawable(context.getDrawable(R.drawable.ic_delete_item));
+ holder.mActionViewItem.setVisibility(View.VISIBLE);
holder.mSwitchItem.setVisibility(View.GONE);
- holder.mItemContainer.setVisibility(isEditMenuMode ? View.VISIBLE : View.GONE);
+ holder.mItemContainer.setVisibility((mShortcutMenuMode == ShortcutMenuMode.EDIT)
+ ? View.VISIBLE : View.GONE);
+ holder.mItemView.setEnabled(true);
}
private void updateIntuitiveActionItemVisibility(@NonNull Context context,
@@ -478,23 +494,30 @@ public class AccessibilityButtonChooserActivity extends Activity {
? isWhiteListingServiceEnabled(context, target)
: isAccessibilityServiceEnabled(context, target);
- holder.mViewItem.setImageDrawable(context.getDrawable(R.drawable.ic_delete_item));
- holder.mViewItem.setVisibility(isEditMenuMode ? View.VISIBLE : View.GONE);
+ holder.mIconView.setColorFilter(null);
+ holder.mIconView.setAlpha(ENABLED_ALPHA);
+ holder.mLabelView.setEnabled(true);
+ holder.mActionViewItem.setEnabled(true);
+ holder.mActionViewItem.setImageDrawable(context.getDrawable(R.drawable.ic_delete_item));
+ holder.mActionViewItem.setVisibility(isEditMenuMode ? View.VISIBLE : View.GONE);
holder.mSwitchItem.setVisibility(isEditMenuMode ? View.GONE : View.VISIBLE);
holder.mSwitchItem.setChecked(!isEditMenuMode && isServiceEnabled);
holder.mItemContainer.setVisibility(View.VISIBLE);
+ holder.mItemView.setEnabled(true);
}
private void updateBounceActionItemVisibility(@NonNull Context context,
@NonNull ViewHolder holder) {
- final boolean isEditMenuMode = (mShortcutMenuMode == ShortcutMenuMode.EDIT);
-
- holder.mViewItem.setImageDrawable(
- isEditMenuMode ? context.getDrawable(R.drawable.ic_delete_item)
- : context.getDrawable(R.drawable.ic_open_in_new));
- holder.mViewItem.setVisibility(isEditMenuMode ? View.VISIBLE : View.GONE);
+ holder.mIconView.setColorFilter(null);
+ holder.mIconView.setAlpha(ENABLED_ALPHA);
+ holder.mLabelView.setEnabled(true);
+ holder.mActionViewItem.setEnabled(true);
+ holder.mActionViewItem.setImageDrawable(context.getDrawable(R.drawable.ic_delete_item));
+ holder.mActionViewItem.setVisibility((mShortcutMenuMode == ShortcutMenuMode.EDIT)
+ ? View.VISIBLE : View.GONE);
holder.mSwitchItem.setVisibility(View.GONE);
holder.mItemContainer.setVisibility(View.VISIBLE);
+ holder.mItemView.setEnabled(true);
}
}
@@ -540,8 +563,7 @@ public class AccessibilityButtonChooserActivity extends Activity {
private static boolean isAccessibilityServiceEnabled(@NonNull Context context,
AccessibilityButtonTarget target) {
- final AccessibilityManager ams = (AccessibilityManager) context.getSystemService(
- Context.ACCESSIBILITY_SERVICE);
+ final AccessibilityManager ams = context.getSystemService(AccessibilityManager.class);
final List<AccessibilityServiceInfo> enabledServices =
ams.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
@@ -579,8 +601,7 @@ public class AccessibilityButtonChooserActivity extends Activity {
private void onLegacyTargetSelected(AccessibilityButtonTarget target) {
if (mShortcutType == ACCESSIBILITY_BUTTON) {
- final AccessibilityManager ams = (AccessibilityManager) getSystemService(
- Context.ACCESSIBILITY_SERVICE);
+ final AccessibilityManager ams = getSystemService(AccessibilityManager.class);
ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId());
} else if (mShortcutType == ACCESSIBILITY_SHORTCUT_KEY) {
switchServiceState(target);
@@ -588,9 +609,12 @@ public class AccessibilityButtonChooserActivity extends Activity {
}
private void onInvisibleTargetSelected(AccessibilityButtonTarget target) {
- final AccessibilityManager ams = (AccessibilityManager) getSystemService(
- Context.ACCESSIBILITY_SERVICE);
- ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId());
+ final AccessibilityManager ams = getSystemService(AccessibilityManager.class);
+ if (mShortcutType == ACCESSIBILITY_BUTTON) {
+ ams.notifyAccessibilityButtonClicked(getDisplayId(), target.getId());
+ } else if (mShortcutType == ACCESSIBILITY_SHORTCUT_KEY) {
+ ams.performAccessibilityShortcut(target.getId());
+ }
}
private void onIntuitiveTargetSelected(AccessibilityButtonTarget target) {
diff --git a/core/java/com/android/internal/app/BlockedAppActivity.java b/core/java/com/android/internal/app/BlockedAppActivity.java
new file mode 100644
index 000000000000..fbdbbfb06b78
--- /dev/null
+++ b/core/java/com/android/internal/app/BlockedAppActivity.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.internal.app;
+
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Slog;
+
+import com.android.internal.R;
+
+/**
+ * A dialog shown to the user when they try to launch an app that is not allowed in lock task
+ * mode. The intent to start this activity must be created with the static factory method provided
+ * below.
+ */
+public class BlockedAppActivity extends AlertActivity {
+
+ private static final String TAG = "BlockedAppActivity";
+ private static final String PACKAGE_NAME = "com.android.internal.app";
+ private static final String EXTRA_BLOCKED_PACKAGE = PACKAGE_NAME + ".extra.BLOCKED_PACKAGE";
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ Intent intent = getIntent();
+ int userId = intent.getIntExtra(Intent.EXTRA_USER_ID, /* defaultValue= */ -1);
+ if (userId < 0) {
+ Slog.wtf(TAG, "Invalid user: " + userId);
+ finish();
+ return;
+ }
+
+ String packageName = intent.getStringExtra(EXTRA_BLOCKED_PACKAGE);
+ if (TextUtils.isEmpty(packageName)) {
+ Slog.wtf(TAG, "Invalid package: " + packageName);
+ finish();
+ return;
+ }
+
+ CharSequence appLabel = getAppLabel(userId, packageName);
+
+ mAlertParams.mTitle = getString(R.string.app_blocked_title);
+ mAlertParams.mMessage = getString(R.string.app_blocked_message, appLabel);
+ mAlertParams.mPositiveButtonText = getString(android.R.string.ok);
+ setupAlert();
+ }
+
+ private CharSequence getAppLabel(int userId, String packageName) {
+ PackageManager pm = getPackageManager();
+ try {
+ ApplicationInfo aInfo =
+ pm.getApplicationInfoAsUser(packageName, /* flags= */ 0, userId);
+ return aInfo.loadLabel(pm);
+ } catch (PackageManager.NameNotFoundException ne) {
+ Slog.e(TAG, "Package " + packageName + " not found", ne);
+ }
+ return packageName;
+ }
+
+
+ /** Creates an intent that launches {@link BlockedAppActivity}. */
+ public static Intent createIntent(int userId, String packageName) {
+ return new Intent()
+ .setClassName("android", BlockedAppActivity.class.getName())
+ .putExtra(Intent.EXTRA_USER_ID, userId)
+ .putExtra(EXTRA_BLOCKED_PACKAGE, packageName);
+ }
+}
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java
index a43e4fe118a9..65cad834d5be 100644
--- a/core/java/com/android/internal/app/ChooserActivity.java
+++ b/core/java/com/android/internal/app/ChooserActivity.java
@@ -2424,6 +2424,10 @@ public class ChooserActivity extends ResolverActivity implements
offset += findViewById(R.id.content_preview_container).getHeight();
}
+ if (hasWorkProfile() && ENABLE_TABBED_VIEW) {
+ offset += findViewById(R.id.tabs).getHeight();
+ }
+
int directShareHeight = 0;
rowsToShow = Math.min(4, rowsToShow);
for (int i = 0, childCount = recyclerView.getChildCount();
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java
index 051534cc3eb1..bbb751359bab 100644
--- a/core/java/com/android/internal/app/ResolverActivity.java
+++ b/core/java/com/android/internal/app/ResolverActivity.java
@@ -359,7 +359,7 @@ public class ResolverActivity extends Activity implements
mMultiProfilePagerAdapter.getPersonalListAdapter());
mPersonalPackageMonitor.register(
this, getMainLooper(), getPersonalProfileUserHandle(), false);
- if (hasWorkProfile()) {
+ if (hasWorkProfile() && ENABLE_TABBED_VIEW) {
mWorkPackageMonitor = createPackageMonitor(
mMultiProfilePagerAdapter.getWorkListAdapter());
mWorkPackageMonitor.register(this, getMainLooper(), getWorkProfileUserHandle(), false);
@@ -725,7 +725,7 @@ public class ResolverActivity extends Activity implements
if (!mRegistered) {
mPersonalPackageMonitor.register(this, getMainLooper(),
getPersonalProfileUserHandle(), false);
- if (hasWorkProfile()) {
+ if (hasWorkProfile() && ENABLE_TABBED_VIEW) {
if (mWorkPackageMonitor == null) {
mWorkPackageMonitor = createPackageMonitor(
mMultiProfilePagerAdapter.getWorkListAdapter());
@@ -1155,7 +1155,9 @@ public class ResolverActivity extends Activity implements
}
private void safelyStartActivityInternal(TargetInfo cti) {
- mPersonalPackageMonitor.unregister();
+ if (mPersonalPackageMonitor != null) {
+ mPersonalPackageMonitor.unregister();
+ }
if (mWorkPackageMonitor != null) {
mWorkPackageMonitor.unregister();
}
diff --git a/core/java/com/android/internal/compat/ChangeReporter.java b/core/java/com/android/internal/compat/ChangeReporter.java
index c50ff356f935..5e886a611913 100644
--- a/core/java/com/android/internal/compat/ChangeReporter.java
+++ b/core/java/com/android/internal/compat/ChangeReporter.java
@@ -16,6 +16,7 @@
package com.android.internal.compat;
+import android.annotation.IntDef;
import android.util.Log;
import android.util.Slog;
@@ -23,6 +24,8 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.FrameworkStatsLog;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -42,7 +45,7 @@ public final class ChangeReporter {
long mChangeId;
int mState;
- ChangeReport(long changeId, int state) {
+ ChangeReport(long changeId, @State int state) {
mChangeId = changeId;
mState = state;
}
@@ -69,7 +72,7 @@ public final class ChangeReporter {
// When true will of every time to debug (logcat).
private boolean mDebugLogAll;
- public ChangeReporter(int source) {
+ public ChangeReporter(@Source int source) {
mSource = source;
mReportedChanges = new HashMap<>();
mDebugLogAll = false;
@@ -110,7 +113,7 @@ public final class ChangeReporter {
/**
- * Returns whether the next report should be logged to statsLog.
+ * Returns whether the next report should be logged to FrameworkStatsLog.
*
* @param uid affected by the change
* @param changeId the reported change id
@@ -174,7 +177,7 @@ public final class ChangeReporter {
private void debugLog(int uid, long changeId, int state) {
String message = String.format("Compat change id reported: %d; UID %d; state: %s", changeId,
uid, stateToString(state));
- if (mSource == FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__SOURCE__SYSTEM_SERVER) {
+ if (mSource == SOURCE_SYSTEM_SERVER) {
Slog.d(TAG, message);
} else {
Log.d(TAG, message);
@@ -183,21 +186,56 @@ public final class ChangeReporter {
}
/**
- * Transforms FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE enum to a string.
+ * Transforms {@link #ChangeReporter.State} enum to a string.
*
* @param state to transform
* @return a string representing the state
*/
- private static String stateToString(int state) {
+ private static String stateToString(@State int state) {
switch (state) {
- case FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__LOGGED:
+ case STATE_LOGGED:
return "LOGGED";
- case FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__ENABLED:
+ case STATE_ENABLED:
return "ENABLED";
- case FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__DISABLED:
+ case STATE_DISABLED:
return "DISABLED";
default:
return "UNKNOWN";
}
}
+
+ /** These values should be kept in sync with those in atoms.proto */
+ public static final int STATE_UNKNOWN_STATE =
+ FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__UNKNOWN_STATE;
+ public static final int STATE_ENABLED =
+ FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__ENABLED;
+ public static final int STATE_DISABLED =
+ FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__DISABLED;
+ public static final int STATE_LOGGED =
+ FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__LOGGED;
+ public static final int SOURCE_UNKNOWN_SOURCE =
+ FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__SOURCE__UNKNOWN_SOURCE;
+ public static final int SOURCE_APP_PROCESS =
+ FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__SOURCE__APP_PROCESS;
+ public static final int SOURCE_SYSTEM_SERVER =
+ FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__SOURCE__SYSTEM_SERVER;
+
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef(flag = true, prefix = { "STATE_" }, value = {
+ STATE_UNKNOWN_STATE,
+ STATE_ENABLED,
+ STATE_DISABLED,
+ STATE_LOGGED
+ })
+ public @interface State {
+ }
+
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef(flag = true, prefix = { "SOURCE_" }, value = {
+ SOURCE_UNKNOWN_SOURCE,
+ SOURCE_APP_PROCESS,
+ SOURCE_SYSTEM_SERVER
+ })
+ public @interface Source {
+ }
}
diff --git a/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java b/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java
index b232efc8f46c..3322834c9ed1 100644
--- a/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java
+++ b/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java
@@ -253,6 +253,13 @@ public final class SystemUiDeviceConfigFlags {
public static final String NOTIFICATIONS_USE_PEOPLE_FILTERING =
"notifications_use_people_filtering";
+ /**
+ * (boolean) Whether or not to enable user dismissing of foreground service notifications
+ * into a new section at the bottom of the notification shade.
+ */
+ public static final String NOTIFICATIONS_ALLOW_FGS_DISMISSAL =
+ "notifications_allow_fgs_dismissal";
+
// Flags related to brightline falsing
/**
diff --git a/core/java/com/android/internal/logging/InstanceId.java b/core/java/com/android/internal/logging/InstanceId.java
index 85dbac3f59bb..85643fcffa2f 100644
--- a/core/java/com/android/internal/logging/InstanceId.java
+++ b/core/java/com/android/internal/logging/InstanceId.java
@@ -16,20 +16,33 @@
package com.android.internal.logging;
+import static java.lang.Math.max;
+import static java.lang.Math.min;
+
import android.annotation.Nullable;
+import android.os.Parcel;
+import android.os.Parcelable;
import com.android.internal.annotations.VisibleForTesting;
/**
* An opaque identifier used to disambiguate which logs refer to a particular instance of some
* UI element. Useful when there might be multiple instances simultaneously active.
- * Obtain from InstanceIdSequence.
+ * Obtain from InstanceIdSequence. Clipped to range [0, INSTANCE_ID_MAX].
*/
-public class InstanceId {
- private int mId;
- protected InstanceId(int id) {
- mId = id;
+public final class InstanceId implements Parcelable {
+ // At most 20 bits: ~1m possibilities, ~0.5% probability of collision in 100 values
+ static final int INSTANCE_ID_MAX = 1 << 20;
+
+ private final int mId;
+ InstanceId(int id) {
+ mId = min(max(0, id), INSTANCE_ID_MAX);
+ }
+
+ private InstanceId(Parcel in) {
+ this(in.readInt());
}
+
@VisibleForTesting
public int getId() {
return mId;
@@ -47,4 +60,28 @@ public class InstanceId {
}
return mId == ((InstanceId) obj).mId;
}
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel out, int flags) {
+ out.writeInt(mId);
+ }
+
+ public static final Parcelable.Creator<InstanceId> CREATOR =
+ new Parcelable.Creator<InstanceId>() {
+ @Override
+ public InstanceId createFromParcel(Parcel in) {
+ return new InstanceId(in);
+ }
+
+ @Override
+ public InstanceId[] newArray(int size) {
+ return new InstanceId[size];
+ }
+ };
+
}
diff --git a/core/java/com/android/internal/logging/InstanceIdSequence.java b/core/java/com/android/internal/logging/InstanceIdSequence.java
index 2e78ed8c5185..aa507e538944 100644
--- a/core/java/com/android/internal/logging/InstanceIdSequence.java
+++ b/core/java/com/android/internal/logging/InstanceIdSequence.java
@@ -19,6 +19,8 @@ package com.android.internal.logging;
import static java.lang.Math.max;
import static java.lang.Math.min;
+import com.android.internal.annotations.VisibleForTesting;
+
import java.security.SecureRandom;
import java.util.Random;
@@ -28,8 +30,6 @@ import java.util.Random;
* first use; try to give it a long lifetime. Safe for concurrent use.
*/
public class InstanceIdSequence {
- // At most 20 bits: ~1m possibilities, ~0.5% probability of collision in 100 values
- private static final int INSTANCE_ID_MAX = 1 << 20;
protected final int mInstanceIdMax;
private final Random mRandom = new SecureRandom();
@@ -39,7 +39,7 @@ public class InstanceIdSequence {
* an all-zero sequence.
*/
public InstanceIdSequence(int instanceIdMax) {
- mInstanceIdMax = min(max(0, instanceIdMax), INSTANCE_ID_MAX);
+ mInstanceIdMax = min(max(0, instanceIdMax), InstanceId.INSTANCE_ID_MAX);
}
/**
@@ -47,6 +47,16 @@ public class InstanceIdSequence {
* @return new InstanceId
*/
public InstanceId newInstanceId() {
- return new InstanceId(mRandom.nextInt(mInstanceIdMax));
+ return newInstanceIdInternal(mRandom.nextInt(mInstanceIdMax));
+ }
+
+ /**
+ * Factory function for instance IDs, used for testing.
+ * @param id
+ * @return new InstanceId(id)
+ */
+ @VisibleForTesting
+ protected InstanceId newInstanceIdInternal(int id) {
+ return new InstanceId(id);
}
}
diff --git a/core/java/com/android/internal/logging/MetricsLogger.java b/core/java/com/android/internal/logging/MetricsLogger.java
index ed04fd83a515..140c410e8de6 100644
--- a/core/java/com/android/internal/logging/MetricsLogger.java
+++ b/core/java/com/android/internal/logging/MetricsLogger.java
@@ -19,10 +19,10 @@ import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.metrics.LogMaker;
import android.os.Build;
-import android.util.StatsLog;
import android.view.View;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.internal.util.FrameworkStatsLog;
/**
* Writes sysui_multi_event records to the system event log.
@@ -55,8 +55,8 @@ public class MetricsLogger {
protected void saveLog(LogMaker log) {
// TODO(b/116684537): Flag guard logging to event log and statsd socket.
EventLogTags.writeSysuiMultiAction(log.serialize());
- StatsLog.write(StatsLog.KEY_VALUE_PAIRS_ATOM, /* UID is retrieved from statsd side */ 0,
- log.getEntries());
+ FrameworkStatsLog.write(FrameworkStatsLog.KEY_VALUE_PAIRS_ATOM,
+ /* UID is retrieved from statsd side */ 0, log.getEntries());
}
public static final int VIEW_UNKNOWN = MetricsEvent.VIEW_UNKNOWN;
diff --git a/core/java/com/android/internal/logging/UiEventLoggerImpl.java b/core/java/com/android/internal/logging/UiEventLoggerImpl.java
index fe758a8e6cb7..785b2edf2e1b 100644
--- a/core/java/com/android/internal/logging/UiEventLoggerImpl.java
+++ b/core/java/com/android/internal/logging/UiEventLoggerImpl.java
@@ -16,10 +16,10 @@
package com.android.internal.logging;
-import android.util.StatsLog;
+import com.android.internal.util.FrameworkStatsLog;
/**
- * Standard implementation of UiEventLogger, writing to StatsLog.
+ * Standard implementation of UiEventLogger, writing to FrameworkStatsLog.
*
* See UiEventReported atom in atoms.proto for more context.
*/
@@ -33,7 +33,7 @@ public class UiEventLoggerImpl implements UiEventLogger {
public void log(UiEventEnum event, int uid, String packageName) {
final int eventID = event.getId();
if (eventID > 0) {
- StatsLog.write(StatsLog.UI_EVENT_REPORTED, eventID, uid, packageName);
+ FrameworkStatsLog.write(FrameworkStatsLog.UI_EVENT_REPORTED, eventID, uid, packageName);
}
}
@@ -42,7 +42,7 @@ public class UiEventLoggerImpl implements UiEventLogger {
InstanceId instance) {
final int eventID = event.getId();
if (eventID > 0) {
- StatsLog.write(StatsLog.UI_EVENT_REPORTED, eventID, uid, packageName,
+ FrameworkStatsLog.write(FrameworkStatsLog.UI_EVENT_REPORTED, eventID, uid, packageName,
instance.getId());
}
}
diff --git a/core/java/com/android/internal/net/VpnConfig.java b/core/java/com/android/internal/net/VpnConfig.java
index f5a19fe73a86..6d2d7356a2e8 100644
--- a/core/java/com/android/internal/net/VpnConfig.java
+++ b/core/java/com/android/internal/net/VpnConfig.java
@@ -52,6 +52,7 @@ public class VpnConfig implements Parcelable {
public static final String DIALOGS_PACKAGE = "com.android.vpndialogs";
+ // TODO: Rename this to something that encompasses Settings-based Platform VPNs as well.
public static final String LEGACY_VPN = "[Legacy VPN]";
public static Intent getIntentForConfirmation() {
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 580c1f00d788..18066dce287e 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -85,7 +85,6 @@ import android.util.Slog;
import android.util.SparseArray;
import android.util.SparseIntArray;
import android.util.SparseLongArray;
-import android.util.StatsLog;
import android.util.TimeUtils;
import android.util.Xml;
import android.view.Display;
@@ -100,6 +99,7 @@ import com.android.internal.os.KernelCpuUidTimeReader.KernelCpuUidUserSysTimeRea
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.FastPrintWriter;
import com.android.internal.util.FastXmlSerializer;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.XmlUtils;
import libcore.util.EmptyArray;
@@ -4263,13 +4263,13 @@ public class BatteryStatsImpl extends BatteryStats {
getUidStatsLocked(uid).noteStartWakeLocked(pid, name, type, elapsedRealtime);
if (wc != null) {
- StatsLog.write(StatsLog.WAKELOCK_STATE_CHANGED, wc.getUids(), wc.getTags(),
- getPowerManagerWakeLockLevel(type), name,
- StatsLog.WAKELOCK_STATE_CHANGED__STATE__ACQUIRE);
+ FrameworkStatsLog.write(FrameworkStatsLog.WAKELOCK_STATE_CHANGED, wc.getUids(),
+ wc.getTags(), getPowerManagerWakeLockLevel(type), name,
+ FrameworkStatsLog.WAKELOCK_STATE_CHANGED__STATE__ACQUIRE);
} else {
- StatsLog.write_non_chained(StatsLog.WAKELOCK_STATE_CHANGED, uid, null,
- getPowerManagerWakeLockLevel(type), name,
- StatsLog.WAKELOCK_STATE_CHANGED__STATE__ACQUIRE);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.WAKELOCK_STATE_CHANGED, uid,
+ null, getPowerManagerWakeLockLevel(type), name,
+ FrameworkStatsLog.WAKELOCK_STATE_CHANGED__STATE__ACQUIRE);
}
}
}
@@ -4308,13 +4308,13 @@ public class BatteryStatsImpl extends BatteryStats {
getUidStatsLocked(uid).noteStopWakeLocked(pid, name, type, elapsedRealtime);
if (wc != null) {
- StatsLog.write(StatsLog.WAKELOCK_STATE_CHANGED, wc.getUids(), wc.getTags(),
- getPowerManagerWakeLockLevel(type), name,
- StatsLog.WAKELOCK_STATE_CHANGED__STATE__RELEASE);
+ FrameworkStatsLog.write(FrameworkStatsLog.WAKELOCK_STATE_CHANGED, wc.getUids(),
+ wc.getTags(), getPowerManagerWakeLockLevel(type), name,
+ FrameworkStatsLog.WAKELOCK_STATE_CHANGED__STATE__RELEASE);
} else {
- StatsLog.write_non_chained(StatsLog.WAKELOCK_STATE_CHANGED, uid, null,
- getPowerManagerWakeLockLevel(type), name,
- StatsLog.WAKELOCK_STATE_CHANGED__STATE__RELEASE);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.WAKELOCK_STATE_CHANGED, uid,
+ null, getPowerManagerWakeLockLevel(type), name,
+ FrameworkStatsLog.WAKELOCK_STATE_CHANGED__STATE__RELEASE);
}
}
}
@@ -4323,7 +4323,8 @@ public class BatteryStatsImpl extends BatteryStats {
* Converts BatteryStats wakelock types back into PowerManager wakelock levels.
* This is the inverse map of Notifier.getBatteryStatsWakeLockMonitorType().
* These are estimations, since batterystats loses some of the original data.
- * TODO: Delete this. Instead, StatsLog.write should be called from PowerManager's Notifier.
+ * TODO: Delete this. Instead, FrameworkStatsLog.write should be called from
+ * PowerManager's Notifier.
*/
private int getPowerManagerWakeLockLevel(int battertStatsWakelockType) {
switch (battertStatsWakelockType) {
@@ -4516,7 +4517,7 @@ public class BatteryStatsImpl extends BatteryStats {
long deltaUptime = uptimeMs - mLastWakeupUptimeMs;
SamplingTimer timer = getWakeupReasonTimerLocked(mLastWakeupReason);
timer.add(deltaUptime * 1000, 1); // time in in microseconds
- StatsLog.write(StatsLog.KERNEL_WAKEUP_REPORTED, mLastWakeupReason,
+ FrameworkStatsLog.write(FrameworkStatsLog.KERNEL_WAKEUP_REPORTED, mLastWakeupReason,
/* duration_usec */ deltaUptime * 1000);
mLastWakeupReason = null;
}
@@ -4658,12 +4659,12 @@ public class BatteryStatsImpl extends BatteryStats {
mGpsNesting++;
if (workChain == null) {
- StatsLog.write_non_chained(StatsLog.GPS_SCAN_STATE_CHANGED, uid, null,
- StatsLog.GPS_SCAN_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.GPS_SCAN_STATE_CHANGED, uid, null,
+ FrameworkStatsLog.GPS_SCAN_STATE_CHANGED__STATE__ON);
} else {
- StatsLog.write(StatsLog.GPS_SCAN_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.GPS_SCAN_STATE_CHANGED,
workChain.getUids(), workChain.getTags(),
- StatsLog.GPS_SCAN_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.GPS_SCAN_STATE_CHANGED__STATE__ON);
}
getUidStatsLocked(uid).noteStartGps(elapsedRealtime);
@@ -4684,11 +4685,11 @@ public class BatteryStatsImpl extends BatteryStats {
}
if (workChain == null) {
- StatsLog.write_non_chained(StatsLog.GPS_SCAN_STATE_CHANGED, uid, null,
- StatsLog.GPS_SCAN_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.GPS_SCAN_STATE_CHANGED, uid, null,
+ FrameworkStatsLog.GPS_SCAN_STATE_CHANGED__STATE__OFF);
} else {
- StatsLog.write(StatsLog.GPS_SCAN_STATE_CHANGED, workChain.getUids(),
- workChain.getTags(), StatsLog.GPS_SCAN_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write(FrameworkStatsLog.GPS_SCAN_STATE_CHANGED, workChain.getUids(),
+ workChain.getTags(), FrameworkStatsLog.GPS_SCAN_STATE_CHANGED__STATE__OFF);
}
getUidStatsLocked(uid).noteStopGps(elapsedRealtime);
@@ -4947,9 +4948,10 @@ public class BatteryStatsImpl extends BatteryStats {
mPowerSaveModeEnabledTimer.stopRunningLocked(elapsedRealtime);
}
addHistoryRecordLocked(elapsedRealtime, uptime);
- StatsLog.write(StatsLog.BATTERY_SAVER_MODE_STATE_CHANGED, enabled ?
- StatsLog.BATTERY_SAVER_MODE_STATE_CHANGED__STATE__ON :
- StatsLog.BATTERY_SAVER_MODE_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write(FrameworkStatsLog.BATTERY_SAVER_MODE_STATE_CHANGED,
+ enabled
+ ? FrameworkStatsLog.BATTERY_SAVER_MODE_STATE_CHANGED__STATE__ON
+ : FrameworkStatsLog.BATTERY_SAVER_MODE_STATE_CHANGED__STATE__OFF);
}
}
@@ -4977,7 +4979,7 @@ public class BatteryStatsImpl extends BatteryStats {
if (nowIdling) statsmode = DEVICE_IDLE_MODE_DEEP;
else if (nowLightIdling) statsmode = DEVICE_IDLE_MODE_LIGHT;
else statsmode = DEVICE_IDLE_MODE_OFF;
- StatsLog.write(StatsLog.DEVICE_IDLING_MODE_STATE_CHANGED, statsmode);
+ FrameworkStatsLog.write(FrameworkStatsLog.DEVICE_IDLING_MODE_STATE_CHANGED, statsmode);
}
if (mDeviceIdling != nowIdling) {
mDeviceIdling = nowIdling;
@@ -5023,7 +5025,7 @@ public class BatteryStatsImpl extends BatteryStats {
mDeviceIdleModeFullTimer.startRunningLocked(elapsedRealtime);
}
mDeviceIdleMode = mode;
- StatsLog.write(StatsLog.DEVICE_IDLE_MODE_STATE_CHANGED, mode);
+ FrameworkStatsLog.write(FrameworkStatsLog.DEVICE_IDLE_MODE_STATE_CHANGED, mode);
}
}
@@ -5197,7 +5199,8 @@ public class BatteryStatsImpl extends BatteryStats {
if (DEBUG_HISTORY) Slog.v(TAG, "Phone started scanning to: "
+ Integer.toHexString(mHistoryCur.states));
mPhoneSignalScanningTimer.startRunningLocked(elapsedRealtime);
- StatsLog.write(StatsLog.PHONE_SERVICE_STATE_CHANGED, state, simState, strengthBin);
+ FrameworkStatsLog.write(FrameworkStatsLog.PHONE_SERVICE_STATE_CHANGED, state,
+ simState, strengthBin);
}
}
@@ -5209,7 +5212,8 @@ public class BatteryStatsImpl extends BatteryStats {
+ Integer.toHexString(mHistoryCur.states));
newHistory = true;
mPhoneSignalScanningTimer.stopRunningLocked(elapsedRealtime);
- StatsLog.write(StatsLog.PHONE_SERVICE_STATE_CHANGED, state, simState, strengthBin);
+ FrameworkStatsLog.write(FrameworkStatsLog.PHONE_SERVICE_STATE_CHANGED, state,
+ simState, strengthBin);
}
}
@@ -5236,7 +5240,8 @@ public class BatteryStatsImpl extends BatteryStats {
if (DEBUG_HISTORY) Slog.v(TAG, "Signal strength " + strengthBin + " to: "
+ Integer.toHexString(mHistoryCur.states));
newHistory = true;
- StatsLog.write(StatsLog.PHONE_SIGNAL_STRENGTH_CHANGED, strengthBin);
+ FrameworkStatsLog.write(
+ FrameworkStatsLog.PHONE_SIGNAL_STRENGTH_CHANGED, strengthBin);
} else {
stopAllPhoneSignalStrengthTimersLocked(-1);
}
@@ -12436,13 +12441,13 @@ public class BatteryStatsImpl extends BatteryStats {
final int status, final int plugType, final int level) {
if (recentPast == null || recentPast.batteryStatus != status) {
- StatsLog.write(StatsLog.CHARGING_STATE_CHANGED, status);
+ FrameworkStatsLog.write(FrameworkStatsLog.CHARGING_STATE_CHANGED, status);
}
if (recentPast == null || recentPast.batteryPlugType != plugType) {
- StatsLog.write(StatsLog.PLUGGED_STATE_CHANGED, plugType);
+ FrameworkStatsLog.write(FrameworkStatsLog.PLUGGED_STATE_CHANGED, plugType);
}
if (recentPast == null || recentPast.batteryLevel != level) {
- StatsLog.write(StatsLog.BATTERY_LEVEL_CHANGED, level);
+ FrameworkStatsLog.write(FrameworkStatsLog.BATTERY_LEVEL_CHANGED, level);
}
}
diff --git a/core/java/com/android/internal/os/RuntimeInit.java b/core/java/com/android/internal/os/RuntimeInit.java
index db009f68d28a..518911e652f6 100644
--- a/core/java/com/android/internal/os/RuntimeInit.java
+++ b/core/java/com/android/internal/os/RuntimeInit.java
@@ -67,9 +67,10 @@ public class RuntimeInit {
private static volatile boolean mCrashing = false;
- /*
+ /**
* Native heap allocations will now have a non-zero tag in the most significant byte.
- * See {@linktourl https://source.android.com/devices/tech/debug/tagged-pointers}.
+ * See
+ * <a href="https://source.android.com/devices/tech/debug/tagged-pointers">https://source.android.com/devices/tech/debug/tagged-pointers</a>.
*/
@ChangeId
@EnabledAfter(targetSdkVersion = VersionCodes.Q)
@@ -322,7 +323,7 @@ public class RuntimeInit {
result.append(System.getProperty("java.vm.version")); // such as 1.1.0
result.append(" (Linux; U; Android ");
- String version = Build.VERSION.RELEASE; // "1.0" or "3.4b5"
+ String version = Build.VERSION.RELEASE_OR_CODENAME; // "1.0" or "3.4b5"
result.append(version.length() > 0 ? version : "1.0");
// add the model for the release build
diff --git a/core/java/com/android/internal/os/StatsdHiddenApiUsageLogger.java b/core/java/com/android/internal/os/StatsdHiddenApiUsageLogger.java
index c169b2239554..89773b3feac7 100644
--- a/core/java/com/android/internal/os/StatsdHiddenApiUsageLogger.java
+++ b/core/java/com/android/internal/os/StatsdHiddenApiUsageLogger.java
@@ -18,10 +18,10 @@ package com.android.internal.os;
import android.metrics.LogMaker;
import android.os.Process;
-import android.util.StatsLog;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.internal.util.FrameworkStatsLog;
import dalvik.system.VMRuntime.HiddenApiUsageLogger;
@@ -84,23 +84,24 @@ class StatsdHiddenApiUsageLogger implements HiddenApiUsageLogger {
}
private void newLogUsage(String signature, int accessMethod, boolean accessDenied) {
- int accessMethodProto = StatsLog.HIDDEN_API_USED__ACCESS_METHOD__NONE;
+ int accessMethodProto = FrameworkStatsLog.HIDDEN_API_USED__ACCESS_METHOD__NONE;
switch(accessMethod) {
case HiddenApiUsageLogger.ACCESS_METHOD_NONE:
- accessMethodProto = StatsLog.HIDDEN_API_USED__ACCESS_METHOD__NONE;
+ accessMethodProto = FrameworkStatsLog.HIDDEN_API_USED__ACCESS_METHOD__NONE;
break;
case HiddenApiUsageLogger.ACCESS_METHOD_REFLECTION:
- accessMethodProto = StatsLog.HIDDEN_API_USED__ACCESS_METHOD__REFLECTION;
+ accessMethodProto = FrameworkStatsLog.HIDDEN_API_USED__ACCESS_METHOD__REFLECTION;
break;
case HiddenApiUsageLogger.ACCESS_METHOD_JNI:
- accessMethodProto = StatsLog.HIDDEN_API_USED__ACCESS_METHOD__JNI;
+ accessMethodProto = FrameworkStatsLog.HIDDEN_API_USED__ACCESS_METHOD__JNI;
break;
case HiddenApiUsageLogger.ACCESS_METHOD_LINKING:
- accessMethodProto = StatsLog.HIDDEN_API_USED__ACCESS_METHOD__LINKING;
+ accessMethodProto = FrameworkStatsLog.HIDDEN_API_USED__ACCESS_METHOD__LINKING;
break;
}
int uid = Process.myUid();
- StatsLog.write(StatsLog.HIDDEN_API_USED, uid, signature, accessMethodProto, accessDenied);
+ FrameworkStatsLog.write(FrameworkStatsLog.HIDDEN_API_USED, uid, signature,
+ accessMethodProto, accessDenied);
}
}
diff --git a/core/java/com/android/internal/os/logging/MetricsLoggerWrapper.java b/core/java/com/android/internal/os/logging/MetricsLoggerWrapper.java
index 8bb1e48201bb..ba60fa590792 100644
--- a/core/java/com/android/internal/os/logging/MetricsLoggerWrapper.java
+++ b/core/java/com/android/internal/os/logging/MetricsLoggerWrapper.java
@@ -20,11 +20,11 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager.NameNotFoundException;
import android.util.Pair;
-import android.util.StatsLog;
import android.view.WindowManager.LayoutParams;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.internal.util.FrameworkStatsLog;
/**
* Used to wrap different logging calls in one, so that client side code base is clean and more
@@ -39,10 +39,10 @@ public class MetricsLoggerWrapper {
Pair<ComponentName, Integer> topActivityInfo) {
MetricsLogger.action(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_DISMISSED,
METRIC_VALUE_DISMISSED_BY_TAP);
- StatsLog.write(StatsLog.PICTURE_IN_PICTURE_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED,
getUid(context, topActivityInfo.first, topActivityInfo.second),
topActivityInfo.first.flattenToString(),
- StatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__DISMISSED);
+ FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__DISMISSED);
}
public static void logPictureInPictureDismissByDrag(Context context,
@@ -50,20 +50,20 @@ public class MetricsLoggerWrapper {
MetricsLogger.action(context,
MetricsEvent.ACTION_PICTURE_IN_PICTURE_DISMISSED,
METRIC_VALUE_DISMISSED_BY_DRAG);
- StatsLog.write(StatsLog.PICTURE_IN_PICTURE_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED,
getUid(context, topActivityInfo.first, topActivityInfo.second),
topActivityInfo.first.flattenToString(),
- StatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__DISMISSED);
+ FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__DISMISSED);
}
public static void logPictureInPictureMinimize(Context context, boolean isMinimized,
Pair<ComponentName, Integer> topActivityInfo) {
MetricsLogger.action(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_MINIMIZED,
isMinimized);
- StatsLog.write(StatsLog.PICTURE_IN_PICTURE_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED,
getUid(context, topActivityInfo.first, topActivityInfo.second),
topActivityInfo.first.flattenToString(),
- StatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__MINIMIZED);
+ FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__MINIMIZED);
}
/**
@@ -92,29 +92,29 @@ public class MetricsLoggerWrapper {
int uid, String shortComponentName, boolean supportsEnterPipOnTaskSwitch) {
MetricsLogger.action(context, MetricsEvent.ACTION_PICTURE_IN_PICTURE_ENTERED,
supportsEnterPipOnTaskSwitch);
- StatsLog.write(StatsLog.PICTURE_IN_PICTURE_STATE_CHANGED, uid,
+ FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED, uid,
shortComponentName,
- StatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__ENTERED);
+ FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__ENTERED);
}
public static void logPictureInPictureFullScreen(Context context, int uid,
String shortComponentName) {
MetricsLogger.action(context,
MetricsEvent.ACTION_PICTURE_IN_PICTURE_EXPANDED_TO_FULLSCREEN);
- StatsLog.write(StatsLog.PICTURE_IN_PICTURE_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED,
uid,
shortComponentName,
- StatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__EXPANDED_TO_FULL_SCREEN);
+ FrameworkStatsLog.PICTURE_IN_PICTURE_STATE_CHANGED__STATE__EXPANDED_TO_FULL_SCREEN);
}
public static void logAppOverlayEnter(int uid, String packageName, boolean changed, int type, boolean usingAlertWindow) {
if (changed) {
if (type != LayoutParams.TYPE_APPLICATION_OVERLAY) {
- StatsLog.write(StatsLog.OVERLAY_STATE_CHANGED, uid, packageName, true,
- StatsLog.OVERLAY_STATE_CHANGED__STATE__ENTERED);
+ FrameworkStatsLog.write(FrameworkStatsLog.OVERLAY_STATE_CHANGED, uid, packageName,
+ true, FrameworkStatsLog.OVERLAY_STATE_CHANGED__STATE__ENTERED);
} else if (!usingAlertWindow){
- StatsLog.write(StatsLog.OVERLAY_STATE_CHANGED, uid, packageName, false,
- StatsLog.OVERLAY_STATE_CHANGED__STATE__ENTERED);
+ FrameworkStatsLog.write(FrameworkStatsLog.OVERLAY_STATE_CHANGED, uid, packageName,
+ false, FrameworkStatsLog.OVERLAY_STATE_CHANGED__STATE__ENTERED);
}
}
}
@@ -122,11 +122,11 @@ public class MetricsLoggerWrapper {
public static void logAppOverlayExit(int uid, String packageName, boolean changed, int type, boolean usingAlertWindow) {
if (changed) {
if (type != LayoutParams.TYPE_APPLICATION_OVERLAY) {
- StatsLog.write(StatsLog.OVERLAY_STATE_CHANGED, uid, packageName, true,
- StatsLog.OVERLAY_STATE_CHANGED__STATE__EXITED);
+ FrameworkStatsLog.write(FrameworkStatsLog.OVERLAY_STATE_CHANGED, uid, packageName,
+ true, FrameworkStatsLog.OVERLAY_STATE_CHANGED__STATE__EXITED);
} else if (!usingAlertWindow){
- StatsLog.write(StatsLog.OVERLAY_STATE_CHANGED, uid, packageName, false,
- StatsLog.OVERLAY_STATE_CHANGED__STATE__EXITED);
+ FrameworkStatsLog.write(FrameworkStatsLog.OVERLAY_STATE_CHANGED, uid, packageName,
+ false, FrameworkStatsLog.OVERLAY_STATE_CHANGED__STATE__EXITED);
}
}
}
diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java
index f13a638f7844..46d7f4ec4c85 100644
--- a/core/java/com/android/internal/policy/PhoneWindow.java
+++ b/core/java/com/android/internal/policy/PhoneWindow.java
@@ -320,7 +320,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
/** @see ViewRootImpl#mActivityConfigCallback */
private ActivityConfigCallback mActivityConfigCallback;
- private OnContentApplyWindowInsetsListener mPendingOnContentApplyWindowInsetsListener;
+ private OnContentApplyWindowInsetsListener mPendingOnContentApplyWindowInsetsListener
+ = createDefaultContentWindowInsetsListener();
static class WindowManagerHolder {
static final IWindowManager sWindowManager = IWindowManager.Stub.asInterface(
@@ -2109,14 +2110,9 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
/** Notify when decor view is attached to window and {@link ViewRootImpl} is available. */
void onViewRootImplSet(ViewRootImpl viewRoot) {
viewRoot.setActivityConfigCallback(mActivityConfigCallback);
- if (mPendingOnContentApplyWindowInsetsListener != null) {
- viewRoot.setOnContentApplyWindowInsetsListener(
- mPendingOnContentApplyWindowInsetsListener);
- mPendingOnContentApplyWindowInsetsListener = null;
- } else {
- viewRoot.setOnContentApplyWindowInsetsListener(
- createDefaultContentWindowInsetsListener());
- }
+ viewRoot.setOnContentApplyWindowInsetsListener(
+ mPendingOnContentApplyWindowInsetsListener);
+ mPendingOnContentApplyWindowInsetsListener = null;
}
private OnContentApplyWindowInsetsListener createDefaultContentWindowInsetsListener() {
@@ -2125,8 +2121,9 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
return new Pair<>(Insets.NONE, insets);
}
- boolean includeIme = (getAttributes().softInputMode & SOFT_INPUT_MASK_ADJUST)
- == SOFT_INPUT_ADJUST_RESIZE;
+ boolean includeIme =
+ (getViewRootImpl().mWindowAttributes.softInputMode & SOFT_INPUT_MASK_ADJUST)
+ == SOFT_INPUT_ADJUST_RESIZE;
Insets insetsToApply;
if (ViewRootImpl.sNewInsetsMode == 0) {
insetsToApply = insets.getSystemWindowInsets();
@@ -3902,17 +3899,15 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
}
@Override
- public void setOnContentApplyWindowInsetsListener(OnContentApplyWindowInsetsListener listener) {
+ public void setDecorFitsSystemWindows(boolean decorFitsSystemWindows) {
ViewRootImpl impl = getViewRootImpl();
+ OnContentApplyWindowInsetsListener listener = decorFitsSystemWindows
+ ? createDefaultContentWindowInsetsListener()
+ : null;
if (impl != null) {
impl.setOnContentApplyWindowInsetsListener(listener);
} else {
mPendingOnContentApplyWindowInsetsListener = listener;
}
}
-
- @Override
- public void resetOnContentApplyWindowInsetsListener() {
- setOnContentApplyWindowInsetsListener(createDefaultContentWindowInsetsListener());
- }
}
diff --git a/core/java/com/android/internal/util/LocationPermissionChecker.java b/core/java/com/android/internal/util/LocationPermissionChecker.java
index 2db0e9979d94..cd8fc350362d 100644
--- a/core/java/com/android/internal/util/LocationPermissionChecker.java
+++ b/core/java/com/android/internal/util/LocationPermissionChecker.java
@@ -17,6 +17,7 @@
package com.android.internal.util;
import android.Manifest;
+import android.annotation.IntDef;
import android.annotation.Nullable;
import android.app.ActivityManager;
import android.app.AppOpsManager;
@@ -26,11 +27,13 @@ import android.location.LocationManager;
import android.os.Binder;
import android.os.Build;
import android.os.UserHandle;
-import android.os.UserManager;
import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
/**
* The methods used for location permission and location mode checking.
@@ -41,17 +44,27 @@ public class LocationPermissionChecker {
private static final String TAG = "LocationPermissionChecker";
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef(prefix = {"LOCATION_PERMISSION_CHECK_STATUS_"}, value = {
+ SUCCEEDED,
+ ERROR_LOCATION_MODE_OFF,
+ ERROR_LOCATION_PERMISSION_MISSING,
+ })
+ public @interface LocationPermissionCheckStatus{}
+
+ // The location permission check succeeded.
+ public static final int SUCCEEDED = 0;
+ // The location mode turns off for the caller.
+ public static final int ERROR_LOCATION_MODE_OFF = 1;
+ // The location permission isn't granted for the caller.
+ public static final int ERROR_LOCATION_PERMISSION_MISSING = 2;
+
private final Context mContext;
private final AppOpsManager mAppOpsManager;
- private final UserManager mUserManager;
- private final LocationManager mLocationManager;
public LocationPermissionChecker(Context context) {
mContext = context;
mAppOpsManager = (AppOpsManager) mContext.getSystemService(Context.APP_OPS_SERVICE);
- mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
- mLocationManager =
- (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
}
/**
@@ -71,12 +84,38 @@ public class LocationPermissionChecker {
*/
public boolean checkLocationPermission(String pkgName, @Nullable String featureId,
int uid, @Nullable String message) {
- try {
- enforceLocationPermission(pkgName, featureId, uid, message);
- return true;
- } catch (SecurityException e) {
- return false;
+ return checkLocationPermissionInternal(pkgName, featureId, uid, message) == SUCCEEDED;
+ }
+
+ /**
+ * Check location permission granted by the caller.
+ *
+ * This API check if the location mode enabled for the caller and the caller has
+ * ACCESS_COARSE_LOCATION permission is targetSDK<29, otherwise, has ACCESS_FINE_LOCATION.
+ * Compared with {@link #checkLocationPermission(String, String, int, String)}, this API returns
+ * the detail information about the checking result, including the reason why it's failed and
+ * logs the error for the caller.
+ *
+ * @param pkgName package name of the application requesting access
+ * @param featureId The feature in the package
+ * @param uid The uid of the package
+ * @param message A message describing why the permission was checked. Only needed if this is
+ * not inside of a two-way binder call from the data receiver
+ *
+ * @return {@link LocationPermissionCheckStatus} the result of the location permission check.
+ */
+ public @LocationPermissionCheckStatus int checkLocationPermissionWithDetailInfo(
+ String pkgName, @Nullable String featureId, int uid, @Nullable String message) {
+ final int result = checkLocationPermissionInternal(pkgName, featureId, uid, message);
+ switch (result) {
+ case ERROR_LOCATION_MODE_OFF:
+ Log.e(TAG, "Location mode is disabled for the device");
+ break;
+ case ERROR_LOCATION_PERMISSION_MISSING:
+ Log.e(TAG, "UID " + uid + " has no location permission");
+ break;
}
+ return result;
}
/**
@@ -94,20 +133,32 @@ public class LocationPermissionChecker {
*/
public void enforceLocationPermission(String pkgName, @Nullable String featureId, int uid,
@Nullable String message) throws SecurityException {
+ final int result = checkLocationPermissionInternal(pkgName, featureId, uid, message);
+
+ switch (result) {
+ case ERROR_LOCATION_MODE_OFF:
+ throw new SecurityException("Location mode is disabled for the device");
+ case ERROR_LOCATION_PERMISSION_MISSING:
+ throw new SecurityException("UID " + uid + " has no location permission");
+ }
+ }
+ private int checkLocationPermissionInternal(String pkgName, @Nullable String featureId,
+ int uid, @Nullable String message) {
checkPackage(uid, pkgName);
// Location mode must be enabled
if (!isLocationModeEnabled()) {
- throw new SecurityException("Location mode is disabled for the device");
+ return ERROR_LOCATION_MODE_OFF;
}
// LocationAccess by App: caller must have Coarse/Fine Location permission to have access to
// location information.
- if (!checkCallersLocationPermission(pkgName, featureId,
- uid, /* coarseForTargetSdkLessThanQ */ true, message)) {
- throw new SecurityException("UID " + uid + " has no location permission");
+ if (!checkCallersLocationPermission(pkgName, featureId, uid,
+ true /* coarseForTargetSdkLessThanQ */, message)) {
+ return ERROR_LOCATION_PERMISSION_MISSING;
}
+ return SUCCEEDED;
}
/**
@@ -155,8 +206,10 @@ public class LocationPermissionChecker {
* Retrieves a handle to LocationManager (if not already done) and check if location is enabled.
*/
public boolean isLocationModeEnabled() {
+ final LocationManager LocationManager =
+ (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
try {
- return mLocationManager.isLocationEnabledForUser(UserHandle.of(
+ return LocationManager.isLocationEnabledForUser(UserHandle.of(
getCurrentUser()));
} catch (Exception e) {
Log.e(TAG, "Failure to get location mode via API, falling back to settings", e);
diff --git a/core/java/com/android/internal/util/ObjectUtils.java b/core/java/com/android/internal/util/ObjectUtils.java
index 5568d91011dc..0e7b93d406f5 100644
--- a/core/java/com/android/internal/util/ObjectUtils.java
+++ b/core/java/com/android/internal/util/ObjectUtils.java
@@ -46,4 +46,12 @@ public class ObjectUtils {
return (b != null) ? -1 : 0;
}
}
+
+ /**
+ * Returns its first argument if non-null, and the second otherwise.
+ */
+ @Nullable
+ public static <T> T getOrElse(@Nullable final T object, @Nullable final T otherwise) {
+ return null != object ? object : otherwise;
+ }
}
diff --git a/core/java/com/android/internal/util/Preconditions.java b/core/java/com/android/internal/util/Preconditions.java
index 408a7a8e139a..a87e080fa522 100644
--- a/core/java/com/android/internal/util/Preconditions.java
+++ b/core/java/com/android/internal/util/Preconditions.java
@@ -21,7 +21,9 @@ import android.annotation.NonNull;
import android.compat.annotation.UnsupportedAppUsage;
import android.text.TextUtils;
+import java.util.Arrays;
import java.util.Collection;
+import java.util.Objects;
/**
* Simple static methods to be called at the start of your own methods to verify
@@ -497,6 +499,64 @@ public class Preconditions {
}
/**
+ * Ensures that the given byte array is not {@code null}, and contains at least one element.
+ *
+ * @param value an array of elements.
+ * @param valueName the name of the argument to use if the check fails.
+
+ * @return the validated array
+ *
+ * @throws NullPointerException if the {@code value} was {@code null}
+ * @throws IllegalArgumentException if the {@code value} was empty
+ */
+ @NonNull
+ public static byte[] checkByteArrayNotEmpty(final byte[] value, final String valueName) {
+ if (value == null) {
+ throw new NullPointerException(valueName + " must not be null");
+ }
+ if (value.length == 0) {
+ throw new IllegalArgumentException(valueName + " is empty");
+ }
+ return value;
+ }
+
+ /**
+ * Ensures that argument {@code value} is one of {@code supportedValues}.
+ *
+ * @param supportedValues an array of string values
+ * @param value a string value
+ *
+ * @return the validated value
+ *
+ * @throws NullPointerException if either {@code value} or {@code supportedValues} is null
+ * @throws IllegalArgumentException if the {@code value} is not in {@code supportedValues}
+ */
+ @NonNull
+ public static String checkArgumentIsSupported(final String[] supportedValues,
+ final String value) {
+ checkNotNull(value);
+ checkNotNull(supportedValues);
+
+ if (!contains(supportedValues, value)) {
+ throw new IllegalArgumentException(value + "is not supported "
+ + Arrays.toString(supportedValues));
+ }
+ return value;
+ }
+
+ private static boolean contains(String[] values, String value) {
+ if (values == null) {
+ return false;
+ }
+ for (int i = 0; i < values.length; ++i) {
+ if (Objects.equals(value, values[i])) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
* Ensures that all elements in the argument floating point array are within the inclusive range
*
* <p>While this can be used to range check against +/- infinity, note that all NaN numbers
diff --git a/core/java/com/android/internal/view/FloatingActionMode.java b/core/java/com/android/internal/view/FloatingActionMode.java
index f9e98e7eb473..69b1609377b7 100644
--- a/core/java/com/android/internal/view/FloatingActionMode.java
+++ b/core/java/com/android/internal/view/FloatingActionMode.java
@@ -29,7 +29,6 @@ import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.ViewParent;
-import android.view.WindowManager;
import android.widget.PopupWindow;
import com.android.internal.R;
@@ -211,8 +210,7 @@ public final class FloatingActionMode extends ActionMode {
}
private boolean isContentRectWithinBounds() {
- mContext.getSystemService(WindowManager.class)
- .getDefaultDisplay().getRealSize(mDisplaySize);
+ mContext.getDisplay().getRealSize(mDisplaySize);
mScreenRect.set(0, 0, mDisplaySize.x, mDisplaySize.y);
return intersectsClosed(mContentRectOnScreen, mScreenRect)
diff --git a/core/java/com/android/internal/view/menu/MenuPopupHelper.java b/core/java/com/android/internal/view/menu/MenuPopupHelper.java
index bac602509148..0aeaa47ba3d8 100644
--- a/core/java/com/android/internal/view/menu/MenuPopupHelper.java
+++ b/core/java/com/android/internal/view/menu/MenuPopupHelper.java
@@ -24,10 +24,12 @@ import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.graphics.Point;
import android.graphics.Rect;
+import android.util.Size;
import android.view.Display;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
+import android.view.WindowMetrics;
import android.widget.PopupWindow.OnDismissListener;
import com.android.internal.view.menu.MenuPresenter.Callback;
@@ -224,13 +226,10 @@ public class MenuPopupHelper implements MenuHelper {
*/
@NonNull
private MenuPopup createPopup() {
- final WindowManager windowManager = (WindowManager) mContext.getSystemService(
- Context.WINDOW_SERVICE);
- final Display display = windowManager.getDefaultDisplay();
- final Point displaySize = new Point();
- display.getRealSize(displaySize);
+ final WindowManager windowManager = mContext.getSystemService(WindowManager.class);
+ final Size maxWindowSize = windowManager.getMaximumWindowMetrics().getSize();
- final int smallestWidth = Math.min(displaySize.x, displaySize.y);
+ final int smallestWidth = Math.min(maxWindowSize.getWidth(), maxWindowSize.getHeight());
final int minSmallestWidthCascading = mContext.getResources().getDimensionPixelSize(
com.android.internal.R.dimen.cascading_menus_min_smallest_width);
final boolean enableCascadingSubmenus = smallestWidth >= minSmallestWidthCascading;
diff --git a/core/java/com/android/internal/widget/ILockSettings.aidl b/core/java/com/android/internal/widget/ILockSettings.aidl
index de02eb090391..e24e982bc9a8 100644
--- a/core/java/com/android/internal/widget/ILockSettings.aidl
+++ b/core/java/com/android/internal/widget/ILockSettings.aidl
@@ -89,4 +89,6 @@ interface ILockSettings {
in List<WrappedApplicationKey> applicationKeys);
void closeSession(in String sessionId);
boolean hasSecureLockScreen();
+ boolean tryUnlockWithCachedUnifiedChallenge(int userId);
+ void removeCachedUnifiedChallenge(int userId);
}
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java
index f37a46811b81..864429c98989 100644
--- a/core/java/com/android/internal/widget/LockPatternUtils.java
+++ b/core/java/com/android/internal/widget/LockPatternUtils.java
@@ -55,10 +55,10 @@ import android.util.SparseLongArray;
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.LocalServices;
-import libcore.util.HexEncoding;
-
import com.google.android.collect.Lists;
+import libcore.util.HexEncoding;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.security.MessageDigest;
@@ -1755,4 +1755,33 @@ public class LockPatternUtils {
return FRP_CREDENTIAL_ENABLED && context.getResources().getBoolean(
com.android.internal.R.bool.config_enableCredentialFactoryResetProtection);
}
+
+ /**
+ * Attempt to rederive the unified work challenge for the specified profile user and unlock the
+ * user. If successful, this would allow the user to leave quiet mode automatically without
+ * additional user authentication.
+ *
+ * This is made possible by the framework storing an encrypted copy of the unified challenge
+ * auth-bound to the primary user's lockscreen. As long as the primery user has unlocked
+ * recently (7 days), the framework will be able to decrypt it and plug the secret into the
+ * unlock flow.
+ *
+ * @return {@code true} if automatic unlocking is successful, {@code false} otherwise.
+ */
+ public boolean tryUnlockWithCachedUnifiedChallenge(int userId) {
+ try {
+ return getLockSettings().tryUnlockWithCachedUnifiedChallenge(userId);
+ } catch (RemoteException re) {
+ return false;
+ }
+ }
+
+ /** Remove cached unified profile challenge, for testing and CTS usage. */
+ public void removeCachedUnifiedChallenge(int userId) {
+ try {
+ getLockSettings().removeCachedUnifiedChallenge(userId);
+ } catch (RemoteException re) {
+ re.rethrowFromSystemServer();
+ }
+ }
}
diff --git a/core/java/com/android/server/BootReceiver.java b/core/java/com/android/server/BootReceiver.java
index 31b5e491d0e5..ac2361dff560 100644
--- a/core/java/com/android/server/BootReceiver.java
+++ b/core/java/com/android/server/BootReceiver.java
@@ -35,14 +35,13 @@ import android.text.TextUtils;
import android.util.AtomicFile;
import android.util.EventLog;
import android.util.Slog;
-import android.util.StatsLog;
import android.util.Xml;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.util.FastXmlSerializer;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.XmlUtils;
-import com.android.server.DropboxLogTags;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -330,7 +329,7 @@ public class BootReceiver extends BroadcastReceiver {
addTextToDropBox(db, "system_server_native_crash", text, filename, maxSize);
}
if (tag.equals(TAG_TOMBSTONE)) {
- StatsLog.write(StatsLog.TOMB_STONE_OCCURRED);
+ FrameworkStatsLog.write(FrameworkStatsLog.TOMB_STONE_OCCURRED);
}
addTextToDropBox(db, tag, text, filename, maxSize);
}
@@ -427,20 +426,25 @@ public class BootReceiver extends BroadcastReceiver {
int eventType;
switch (propPostfix) {
case "early":
- eventType = StatsLog.BOOT_TIME_EVENT_DURATION__EVENT__MOUNT_EARLY_DURATION;
+ eventType =
+ FrameworkStatsLog
+ .BOOT_TIME_EVENT_DURATION__EVENT__MOUNT_EARLY_DURATION;
break;
case "default":
eventType =
- StatsLog.BOOT_TIME_EVENT_DURATION__EVENT__MOUNT_DEFAULT_DURATION;
+ FrameworkStatsLog
+ .BOOT_TIME_EVENT_DURATION__EVENT__MOUNT_DEFAULT_DURATION;
break;
case "late":
- eventType = StatsLog.BOOT_TIME_EVENT_DURATION__EVENT__MOUNT_LATE_DURATION;
+ eventType =
+ FrameworkStatsLog
+ .BOOT_TIME_EVENT_DURATION__EVENT__MOUNT_LATE_DURATION;
break;
default:
continue;
}
- StatsLog.write(StatsLog.BOOT_TIME_EVENT_DURATION_REPORTED, eventType,
- duration);
+ FrameworkStatsLog.write(FrameworkStatsLog.BOOT_TIME_EVENT_DURATION_REPORTED,
+ eventType, duration);
}
}
}
@@ -544,7 +548,8 @@ public class BootReceiver extends BroadcastReceiver {
Slog.e(TAG, "No value received for shutdown duration");
}
- StatsLog.write(StatsLog.SHUTDOWN_SEQUENCE_REPORTED, reboot, reason, start, duration);
+ FrameworkStatsLog.write(FrameworkStatsLog.SHUTDOWN_SEQUENCE_REPORTED, reboot, reason, start,
+ duration);
}
private static void logFsShutdownTime() {
@@ -571,19 +576,19 @@ public class BootReceiver extends BroadcastReceiver {
Pattern pattern = Pattern.compile(LAST_SHUTDOWN_TIME_PATTERN, Pattern.MULTILINE);
Matcher matcher = pattern.matcher(lines);
if (matcher.find()) {
- StatsLog.write(StatsLog.BOOT_TIME_EVENT_DURATION_REPORTED,
- StatsLog.BOOT_TIME_EVENT_DURATION__EVENT__SHUTDOWN_DURATION,
+ FrameworkStatsLog.write(FrameworkStatsLog.BOOT_TIME_EVENT_DURATION_REPORTED,
+ FrameworkStatsLog.BOOT_TIME_EVENT_DURATION__EVENT__SHUTDOWN_DURATION,
Integer.parseInt(matcher.group(1)));
- StatsLog.write(StatsLog.BOOT_TIME_EVENT_ERROR_CODE_REPORTED,
- StatsLog.BOOT_TIME_EVENT_ERROR_CODE__EVENT__SHUTDOWN_UMOUNT_STAT,
+ FrameworkStatsLog.write(FrameworkStatsLog.BOOT_TIME_EVENT_ERROR_CODE_REPORTED,
+ FrameworkStatsLog.BOOT_TIME_EVENT_ERROR_CODE__EVENT__SHUTDOWN_UMOUNT_STAT,
Integer.parseInt(matcher.group(2)));
Slog.i(TAG, "boot_fs_shutdown," + matcher.group(1) + "," + matcher.group(2));
} else { // not found
// This can happen when a device has too much kernel log after file system unmount
// ,exceeding maxReadSize. And having that much kernel logging can affect overall
// performance as well. So it is better to fix the kernel to reduce the amount of log.
- StatsLog.write(StatsLog.BOOT_TIME_EVENT_ERROR_CODE_REPORTED,
- StatsLog.BOOT_TIME_EVENT_ERROR_CODE__EVENT__SHUTDOWN_UMOUNT_STAT,
+ FrameworkStatsLog.write(FrameworkStatsLog.BOOT_TIME_EVENT_ERROR_CODE_REPORTED,
+ FrameworkStatsLog.BOOT_TIME_EVENT_ERROR_CODE__EVENT__SHUTDOWN_UMOUNT_STAT,
UMOUNT_STATUS_NOT_AVAILABLE);
Slog.w(TAG, "boot_fs_shutdown, string not found");
}
@@ -694,8 +699,9 @@ public class BootReceiver extends BroadcastReceiver {
}
stat = fixFsckFsStat(partition, stat, lines, startLineNumber, endLineNumber);
if ("userdata".equals(partition) || "data".equals(partition)) {
- StatsLog.write(StatsLog.BOOT_TIME_EVENT_ERROR_CODE_REPORTED,
- StatsLog.BOOT_TIME_EVENT_ERROR_CODE__EVENT__FS_MGR_FS_STAT_DATA_PARTITION,
+ FrameworkStatsLog.write(FrameworkStatsLog.BOOT_TIME_EVENT_ERROR_CODE_REPORTED,
+ FrameworkStatsLog
+ .BOOT_TIME_EVENT_ERROR_CODE__EVENT__FS_MGR_FS_STAT_DATA_PARTITION,
stat);
}
Slog.i(TAG, "fs_stat, partition:" + partition + " stat:0x" + Integer.toHexString(stat));
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index a2f514a85ff8..35eb0fc986d7 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -35,8 +35,13 @@ cc_library_shared {
"android_animation_PropertyValuesHolder.cpp",
"android_os_SystemClock.cpp",
"android_os_SystemProperties.cpp",
+ "android_os_Trace.cpp",
+ "android_text_AndroidCharacter.cpp",
"android_util_EventLog.cpp",
"android_util_Log.cpp",
+ "android_util_StringBlock.cpp",
+ "android_util_XmlBlock.cpp",
+ "android_view_RenderNodeAnimator.cpp",
"com_android_internal_util_VirtualRefBasePtr.cpp",
"com_android_internal_view_animation_NativeInterpolatorFactoryHelper.cpp",
],
@@ -114,14 +119,12 @@ cc_library_shared {
"android_view_KeyEvent.cpp",
"android_view_MotionEvent.cpp",
"android_view_PointerIcon.cpp",
- "android_view_RenderNodeAnimator.cpp",
"android_view_Surface.cpp",
"android_view_SurfaceControl.cpp",
"android_graphics_BLASTBufferQueue.cpp",
"android_view_SurfaceSession.cpp",
"android_view_TextureView.cpp",
"android_view_VelocityTracker.cpp",
- "android_text_AndroidCharacter.cpp",
"android_text_Hyphenator.cpp",
"android_os_Debug.cpp",
"android_os_GraphicsEnvironment.cpp",
@@ -137,7 +140,7 @@ cc_library_shared {
"android_os_Parcel.cpp",
"android_os_SELinux.cpp",
"android_os_SharedMemory.cpp",
- "android_os_Trace.cpp",
+ "android_os_storage_StorageManager.cpp",
"android_os_UEventObserver.cpp",
"android_os_VintfObject.cpp",
"android_os_VintfRuntimeInfo.cpp",
@@ -147,11 +150,8 @@ cc_library_shared {
"android_service_DataLoaderService.cpp",
"android_util_AssetManager.cpp",
"android_util_Binder.cpp",
- "android_util_StatsLog.cpp",
"android_util_MemoryIntArray.cpp",
"android_util_Process.cpp",
- "android_util_StringBlock.cpp",
- "android_util_XmlBlock.cpp",
"android_util_jar_StrictJarFile.cpp",
"android_media_AudioDeviceAddress.cpp",
"android_media_AudioEffectDescriptor.cpp",
@@ -208,6 +208,7 @@ cc_library_shared {
static_libs: [
"libasync_safe",
+ "libbinderthreadstateutils",
"libdmabufinfo",
"libgif",
"libseccomp_policy",
@@ -269,6 +270,7 @@ cc_library_shared {
"libnativewindow",
"libdl",
"libdl_android",
+ "libstats_jni",
"libstatslog",
"server_configurable_flags",
],
@@ -310,11 +312,8 @@ cc_library_shared {
srcs: [
"android_content_res_ApkAssets.cpp",
"android_os_MessageQueue.cpp",
- "android_os_Trace.cpp",
"android_util_AssetManager.cpp",
"android_util_FileObserver.cpp",
- "android_util_StringBlock.cpp",
- "android_util_XmlBlock.cpp",
],
},
},
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 9783b655e057..657336e6910a 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -144,6 +144,7 @@ extern int register_android_os_Parcel(JNIEnv* env);
extern int register_android_os_SELinux(JNIEnv* env);
extern int register_android_os_VintfObject(JNIEnv *env);
extern int register_android_os_VintfRuntimeInfo(JNIEnv *env);
+extern int register_android_os_storage_StorageManager(JNIEnv* env);
extern int register_android_os_SystemProperties(JNIEnv *env);
extern int register_android_os_SystemClock(JNIEnv* env);
extern int register_android_os_Trace(JNIEnv* env);
@@ -622,6 +623,8 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote, bool p
char jitprithreadweightOptBuf[sizeof("-Xjitprithreadweight:")-1 + PROPERTY_VALUE_MAX];
char jittransitionweightOptBuf[sizeof("-Xjittransitionweight:")-1 + PROPERTY_VALUE_MAX];
char hotstartupsamplesOptsBuf[sizeof("-Xps-hot-startup-method-samples:")-1 + PROPERTY_VALUE_MAX];
+ char saveResolvedClassesDelayMsOptsBuf[
+ sizeof("-Xps-save-resolved-classes-delay-ms:")-1 + PROPERTY_VALUE_MAX];
char madviseRandomOptsBuf[sizeof("-XX:MadviseRandomAccess:")-1 + PROPERTY_VALUE_MAX];
char gctypeOptsBuf[sizeof("-Xgc:")-1 + PROPERTY_VALUE_MAX];
char backgroundgcOptsBuf[sizeof("-XX:BackgroundGC=")-1 + PROPERTY_VALUE_MAX];
@@ -631,8 +634,6 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote, bool p
char cachePruneBuf[sizeof("-Xzygote-max-boot-retry=")-1 + PROPERTY_VALUE_MAX];
char dex2oatXmsImageFlagsBuf[sizeof("-Xms")-1 + PROPERTY_VALUE_MAX];
char dex2oatXmxImageFlagsBuf[sizeof("-Xmx")-1 + PROPERTY_VALUE_MAX];
- char dex2oatXmsFlagsBuf[sizeof("-Xms")-1 + PROPERTY_VALUE_MAX];
- char dex2oatXmxFlagsBuf[sizeof("-Xmx")-1 + PROPERTY_VALUE_MAX];
char dex2oatCompilerFilterBuf[sizeof("--compiler-filter=")-1 + PROPERTY_VALUE_MAX];
char dex2oatImageCompilerFilterBuf[sizeof("--compiler-filter=")-1 + PROPERTY_VALUE_MAX];
char dex2oatThreadsBuf[sizeof("-j")-1 + PROPERTY_VALUE_MAX];
@@ -817,6 +818,9 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote, bool p
parseRuntimeOption("dalvik.vm.hot-startup-method-samples", hotstartupsamplesOptsBuf,
"-Xps-hot-startup-method-samples:");
+ parseRuntimeOption("dalvik.vm.ps-resolved-classes-delay-ms", saveResolvedClassesDelayMsOptsBuf,
+ "-Xps-save-resolved-classes-delay-ms:");
+
property_get("ro.config.low_ram", propBuf, "");
if (strcmp(propBuf, "true") == 0) {
addOption("-XX:LowMemoryMode");
@@ -879,88 +883,45 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote, bool p
bool skip_compilation = ((strcmp(voldDecryptBuf, "trigger_restart_min_framework") == 0) ||
(strcmp(voldDecryptBuf, "1") == 0));
- // Extra options for boot.art/boot.oat image generation.
- parseCompilerRuntimeOption("dalvik.vm.image-dex2oat-Xms", dex2oatXmsImageFlagsBuf,
- "-Xms", "-Ximage-compiler-option");
- parseCompilerRuntimeOption("dalvik.vm.image-dex2oat-Xmx", dex2oatXmxImageFlagsBuf,
- "-Xmx", "-Ximage-compiler-option");
- if (skip_compilation) {
- addOption("-Ximage-compiler-option");
- addOption("--compiler-filter=assume-verified");
- } else {
- parseCompilerOption("dalvik.vm.image-dex2oat-filter", dex2oatImageCompilerFilterBuf,
- "--compiler-filter=", "-Ximage-compiler-option");
- }
-
- // If there is a boot profile, it takes precedence over the image and preloaded classes.
- if (hasFile("/system/etc/boot-image.prof")) {
- addOption("-Ximage-compiler-option");
- addOption("--profile-file=/system/etc/boot-image.prof");
- addOption("-Ximage-compiler-option");
- addOption("--compiler-filter=speed-profile");
- } else {
- ALOGE("Missing boot-image.prof file, /system/etc/boot-image.prof not found: %s\n",
- strerror(errno));
- return -1;
- }
-
-
- // If there is a dirty-image-objects file, push it.
- if (hasFile("/system/etc/dirty-image-objects")) {
- addOption("-Ximage-compiler-option");
- addOption("--dirty-image-objects=/system/etc/dirty-image-objects");
- }
-
- property_get("dalvik.vm.image-dex2oat-flags", dex2oatImageFlagsBuf, "");
- parseExtraOpts(dex2oatImageFlagsBuf, "-Ximage-compiler-option");
-
- // Extra options for DexClassLoader.
- parseCompilerRuntimeOption("dalvik.vm.dex2oat-Xms", dex2oatXmsFlagsBuf,
- "-Xms", "-Xcompiler-option");
- parseCompilerRuntimeOption("dalvik.vm.dex2oat-Xmx", dex2oatXmxFlagsBuf,
- "-Xmx", "-Xcompiler-option");
+ // Extra options for JIT.
if (skip_compilation) {
addOption("-Xcompiler-option");
addOption("--compiler-filter=assume-verified");
-
- // We skip compilation when a minimal runtime is brought up for decryption. In that case
- // /data is temporarily backed by a tmpfs, which is usually small.
- // If the system image contains prebuilts, they will be relocated into the tmpfs. In this
- // specific situation it is acceptable to *not* relocate and run out of the prebuilts
- // directly instead.
- addOption("--runtime-arg");
- addOption("-Xnorelocate");
} else {
parseCompilerOption("dalvik.vm.dex2oat-filter", dex2oatCompilerFilterBuf,
"--compiler-filter=", "-Xcompiler-option");
}
parseCompilerOption("dalvik.vm.dex2oat-threads", dex2oatThreadsBuf, "-j", "-Xcompiler-option");
- parseCompilerOption("dalvik.vm.image-dex2oat-threads", dex2oatThreadsImageBuf, "-j",
- "-Ximage-compiler-option");
parseCompilerOption("dalvik.vm.dex2oat-cpu-set", dex2oatCpuSetBuf, "--cpu-set=",
"-Xcompiler-option");
- parseCompilerOption("dalvik.vm.image-dex2oat-cpu-set", dex2oatCpuSetImageBuf, "--cpu-set=",
- "-Ximage-compiler-option");
-
- // The runtime will compile a boot image, when necessary, not using installd. Thus, we need to
- // pass the instruction-set-features/variant as an image-compiler-option.
- // Note: it is OK to reuse the buffer, as the values are exactly the same between
- // * compiler-option, used for runtime compilation (DexClassLoader)
- // * image-compiler-option, used for boot-image compilation on device
// Copy the variant.
sprintf(dex2oat_isa_variant_key, "dalvik.vm.isa.%s.variant", ABI_STRING);
parseCompilerOption(dex2oat_isa_variant_key, dex2oat_isa_variant,
- "--instruction-set-variant=", "-Ximage-compiler-option");
- parseCompilerOption(dex2oat_isa_variant_key, dex2oat_isa_variant,
"--instruction-set-variant=", "-Xcompiler-option");
// Copy the features.
sprintf(dex2oat_isa_features_key, "dalvik.vm.isa.%s.features", ABI_STRING);
parseCompilerOption(dex2oat_isa_features_key, dex2oat_isa_features,
- "--instruction-set-features=", "-Ximage-compiler-option");
- parseCompilerOption(dex2oat_isa_features_key, dex2oat_isa_features,
"--instruction-set-features=", "-Xcompiler-option");
+ /*
+ * When running with debug.generate-debug-info, add --generate-debug-info to
+ * the compiler options so that both JITted code and the boot image extension,
+ * if it is compiled on device, will include native debugging information.
+ */
+ property_get("debug.generate-debug-info", propBuf, "");
+ bool generate_debug_info = (strcmp(propBuf, "true") == 0);
+ if (generate_debug_info) {
+ addOption("-Xcompiler-option");
+ addOption("--generate-debug-info");
+ }
+
+ // The mini-debug-info makes it possible to backtrace through compiled code.
+ bool generate_mini_debug_info = property_get_bool("dalvik.vm.minidebuginfo", 0);
+ if (generate_mini_debug_info) {
+ addOption("-Xcompiler-option");
+ addOption("--generate-mini-debug-info");
+ }
property_get("dalvik.vm.dex2oat-flags", dex2oatFlagsBuf, "");
parseExtraOpts(dex2oatFlagsBuf, "-Xcompiler-option");
@@ -969,6 +930,53 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote, bool p
property_get("dalvik.vm.extra-opts", extraOptsBuf, "");
parseExtraOpts(extraOptsBuf, NULL);
+ // Extra options for boot image extension generation.
+ if (skip_compilation) {
+ addOption("-Xnoimage-dex2oat");
+ } else {
+ parseCompilerRuntimeOption("dalvik.vm.image-dex2oat-Xms", dex2oatXmsImageFlagsBuf,
+ "-Xms", "-Ximage-compiler-option");
+ parseCompilerRuntimeOption("dalvik.vm.image-dex2oat-Xmx", dex2oatXmxImageFlagsBuf,
+ "-Xmx", "-Ximage-compiler-option");
+
+ parseCompilerOption("dalvik.vm.image-dex2oat-filter", dex2oatImageCompilerFilterBuf,
+ "--compiler-filter=", "-Ximage-compiler-option");
+
+ // If there is a dirty-image-objects file, push it.
+ if (hasFile("/system/etc/dirty-image-objects")) {
+ addOption("-Ximage-compiler-option");
+ addOption("--dirty-image-objects=/system/etc/dirty-image-objects");
+ }
+
+ parseCompilerOption("dalvik.vm.image-dex2oat-threads", dex2oatThreadsImageBuf, "-j",
+ "-Ximage-compiler-option");
+ parseCompilerOption("dalvik.vm.image-dex2oat-cpu-set", dex2oatCpuSetImageBuf, "--cpu-set=",
+ "-Ximage-compiler-option");
+
+ // The runtime may compile a boot image extension, when necessary, not using installd.
+ // Thus, we need to pass the instruction-set-features/variant as an image-compiler-option.
+ // Note: it is OK to reuse the buffer, as the values are exactly the same between
+ // * compiler-option, used for runtime compilation (DexClassLoader)
+ // * image-compiler-option, used for boot-image compilation on device
+ parseCompilerOption(dex2oat_isa_variant_key, dex2oat_isa_variant,
+ "--instruction-set-variant=", "-Ximage-compiler-option");
+ parseCompilerOption(dex2oat_isa_features_key, dex2oat_isa_features,
+ "--instruction-set-features=", "-Ximage-compiler-option");
+
+ if (generate_debug_info) {
+ addOption("-Ximage-compiler-option");
+ addOption("--generate-debug-info");
+ }
+
+ if (generate_mini_debug_info) {
+ addOption("-Ximage-compiler-option");
+ addOption("--generate-mini-debug-info");
+ }
+
+ property_get("dalvik.vm.image-dex2oat-flags", dex2oatImageFlagsBuf, "");
+ parseExtraOpts(dex2oatImageFlagsBuf, "-Ximage-compiler-option");
+ }
+
/* Set the properties for locale */
{
strcpy(localeOption, "-Duser.locale=");
@@ -1026,25 +1034,6 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote, bool p
parseRuntimeOption("dalvik.vm.zygote.max-boot-retry", cachePruneBuf,
"-Xzygote-max-boot-retry=");
- /*
- * When running with debug.generate-debug-info, add --generate-debug-info to
- * the compiler options so that the boot image, if it is compiled on device,
- * will include native debugging information.
- */
- property_get("debug.generate-debug-info", propBuf, "");
- if (strcmp(propBuf, "true") == 0) {
- addOption("-Xcompiler-option");
- addOption("--generate-debug-info");
- addOption("-Ximage-compiler-option");
- addOption("--generate-debug-info");
- }
-
- // The mini-debug-info makes it possible to backtrace through JIT code.
- if (property_get_bool("dalvik.vm.minidebuginfo", 0)) {
- addOption("-Xcompiler-option");
- addOption("--generate-mini-debug-info");
- }
-
// If set, the property below can be used to enable core platform API violation reporting.
property_get("persist.debug.dalvik.vm.core_platform_api_policy", propBuf, "");
if (propBuf[0] != '\0') {
@@ -1463,6 +1452,7 @@ static const RegJNIRec gRegJNI[] = {
REG_JNI(register_android_os_HwParcel),
REG_JNI(register_android_os_HwRemoteBinder),
REG_JNI(register_android_os_NativeHandle),
+ REG_JNI(register_android_os_storage_StorageManager),
REG_JNI(register_android_os_VintfObject),
REG_JNI(register_android_os_VintfRuntimeInfo),
REG_JNI(register_android_service_DataLoaderService),
diff --git a/core/jni/LayoutlibLoader.cpp b/core/jni/LayoutlibLoader.cpp
index 6c0680fe6707..571a33879411 100644
--- a/core/jni/LayoutlibLoader.cpp
+++ b/core/jni/LayoutlibLoader.cpp
@@ -75,10 +75,12 @@ extern int register_android_os_MessageQueue(JNIEnv* env);
extern int register_android_os_SystemClock(JNIEnv* env);
extern int register_android_os_SystemProperties(JNIEnv* env);
extern int register_android_os_Trace(JNIEnv* env);
+extern int register_android_text_AndroidCharacter(JNIEnv* env);
extern int register_android_util_EventLog(JNIEnv* env);
extern int register_android_util_Log(JNIEnv* env);
extern int register_android_util_PathParser(JNIEnv* env);
extern int register_android_view_RenderNode(JNIEnv* env);
+extern int register_android_view_RenderNodeAnimator(JNIEnv* env);
extern int register_android_view_DisplayListCanvas(JNIEnv* env);
extern int register_com_android_internal_util_VirtualRefBasePtr(JNIEnv *env);
extern int register_com_android_internal_view_animation_NativeInterpolatorFactoryHelper(JNIEnv *env);
@@ -90,58 +92,66 @@ struct RegJNIRec {
// Map of all possible class names to register to their corresponding JNI registration function pointer
// The actual list of registered classes will be determined at runtime via the 'native_classes' System property
-static const std::unordered_map<std::string, RegJNIRec> gRegJNIMap = {
- {"android.animation.PropertyValuesHolder", REG_JNI(register_android_animation_PropertyValuesHolder)},
+static const std::unordered_map<std::string, RegJNIRec> gRegJNIMap = {
+ {"android.animation.PropertyValuesHolder",
+ REG_JNI(register_android_animation_PropertyValuesHolder)},
#ifdef __linux__
- {"android.content.AssetManager", REG_JNI(register_android_content_AssetManager)},
- {"android.content.StringBlock", REG_JNI(register_android_content_StringBlock)},
- {"android.content.XmlBlock", REG_JNI(register_android_content_XmlBlock)},
- {"android.content.res.ApkAssets", REG_JNI(register_android_content_res_ApkAssets)},
+ {"android.content.res.ApkAssets", REG_JNI(register_android_content_res_ApkAssets)},
+ {"android.content.res.AssetManager", REG_JNI(register_android_content_AssetManager)},
#endif
- {"android.graphics.Bitmap", REG_JNI(register_android_graphics_Bitmap)},
- {"android.graphics.BitmapFactory", REG_JNI(register_android_graphics_BitmapFactory)},
- {"android.graphics.ByteBufferStreamAdaptor", REG_JNI(register_android_graphics_ByteBufferStreamAdaptor)},
- {"android.graphics.Canvas", REG_JNI(register_android_graphics_Canvas)},
- {"android.graphics.RenderNode", REG_JNI(register_android_view_RenderNode)},
- {"android.graphics.ColorFilter", REG_JNI(register_android_graphics_ColorFilter)},
- {"android.graphics.ColorSpace", REG_JNI(register_android_graphics_ColorSpace)},
- {"android.graphics.CreateJavaOutputStreamAdaptor", REG_JNI(register_android_graphics_CreateJavaOutputStreamAdaptor)},
- {"android.graphics.DrawFilter", REG_JNI(register_android_graphics_DrawFilter)},
- {"android.graphics.FontFamily", REG_JNI(register_android_graphics_FontFamily)},
- {"android.graphics.Graphics", REG_JNI(register_android_graphics_Graphics)},
- {"android.graphics.ImageDecoder", REG_JNI(register_android_graphics_ImageDecoder)},
- {"android.graphics.MaskFilter", REG_JNI(register_android_graphics_MaskFilter)},
- {"android.graphics.Matrix", REG_JNI(register_android_graphics_Matrix)},
- {"android.graphics.NinePatch", REG_JNI(register_android_graphics_NinePatch)},
- {"android.graphics.Paint", REG_JNI(register_android_graphics_Paint)},
- {"android.graphics.Path", REG_JNI(register_android_graphics_Path)},
- {"android.graphics.PathEffect", REG_JNI(register_android_graphics_PathEffect)},
- {"android.graphics.PathMeasure", REG_JNI(register_android_graphics_PathMeasure)},
- {"android.graphics.Picture", REG_JNI(register_android_graphics_Picture)},
- {"android.graphics.RecordingCanvas", REG_JNI(register_android_view_DisplayListCanvas)},
- {"android.graphics.Region", REG_JNI(register_android_graphics_Region)},
- {"android.graphics.Shader", REG_JNI(register_android_graphics_Shader)},
- {"android.graphics.Typeface", REG_JNI(register_android_graphics_Typeface)},
- {"android.graphics.drawable.AnimatedVectorDrawable", REG_JNI(register_android_graphics_drawable_AnimatedVectorDrawable)},
- {"android.graphics.drawable.VectorDrawable", REG_JNI(register_android_graphics_drawable_VectorDrawable)},
- {"android.graphics.fonts.Font", REG_JNI(register_android_graphics_fonts_Font)},
- {"android.graphics.fonts.FontFamily", REG_JNI(register_android_graphics_fonts_FontFamily)},
- {"android.graphics.text.LineBreaker", REG_JNI(register_android_graphics_text_LineBreaker)},
- {"android.graphics.text.MeasuredText", REG_JNI(register_android_graphics_text_MeasuredText)},
+ {"android.content.res.StringBlock", REG_JNI(register_android_content_StringBlock)},
+ {"android.content.res.XmlBlock", REG_JNI(register_android_content_XmlBlock)},
+ {"android.graphics.Bitmap", REG_JNI(register_android_graphics_Bitmap)},
+ {"android.graphics.BitmapFactory", REG_JNI(register_android_graphics_BitmapFactory)},
+ {"android.graphics.ByteBufferStreamAdaptor",
+ REG_JNI(register_android_graphics_ByteBufferStreamAdaptor)},
+ {"android.graphics.Canvas", REG_JNI(register_android_graphics_Canvas)},
+ {"android.graphics.RenderNode", REG_JNI(register_android_view_RenderNode)},
+ {"android.graphics.ColorFilter", REG_JNI(register_android_graphics_ColorFilter)},
+ {"android.graphics.ColorSpace", REG_JNI(register_android_graphics_ColorSpace)},
+ {"android.graphics.CreateJavaOutputStreamAdaptor",
+ REG_JNI(register_android_graphics_CreateJavaOutputStreamAdaptor)},
+ {"android.graphics.DrawFilter", REG_JNI(register_android_graphics_DrawFilter)},
+ {"android.graphics.FontFamily", REG_JNI(register_android_graphics_FontFamily)},
+ {"android.graphics.Graphics", REG_JNI(register_android_graphics_Graphics)},
+ {"android.graphics.ImageDecoder", REG_JNI(register_android_graphics_ImageDecoder)},
+ {"android.graphics.MaskFilter", REG_JNI(register_android_graphics_MaskFilter)},
+ {"android.graphics.Matrix", REG_JNI(register_android_graphics_Matrix)},
+ {"android.graphics.NinePatch", REG_JNI(register_android_graphics_NinePatch)},
+ {"android.graphics.Paint", REG_JNI(register_android_graphics_Paint)},
+ {"android.graphics.Path", REG_JNI(register_android_graphics_Path)},
+ {"android.graphics.PathEffect", REG_JNI(register_android_graphics_PathEffect)},
+ {"android.graphics.PathMeasure", REG_JNI(register_android_graphics_PathMeasure)},
+ {"android.graphics.Picture", REG_JNI(register_android_graphics_Picture)},
+ {"android.graphics.RecordingCanvas", REG_JNI(register_android_view_DisplayListCanvas)},
+ {"android.graphics.Region", REG_JNI(register_android_graphics_Region)},
+ {"android.graphics.Shader", REG_JNI(register_android_graphics_Shader)},
+ {"android.graphics.Typeface", REG_JNI(register_android_graphics_Typeface)},
+ {"android.graphics.drawable.AnimatedVectorDrawable",
+ REG_JNI(register_android_graphics_drawable_AnimatedVectorDrawable)},
+ {"android.graphics.drawable.VectorDrawable",
+ REG_JNI(register_android_graphics_drawable_VectorDrawable)},
+ {"android.graphics.fonts.Font", REG_JNI(register_android_graphics_fonts_Font)},
+ {"android.graphics.fonts.FontFamily", REG_JNI(register_android_graphics_fonts_FontFamily)},
+ {"android.graphics.text.LineBreaker", REG_JNI(register_android_graphics_text_LineBreaker)},
+ {"android.graphics.text.MeasuredText",
+ REG_JNI(register_android_graphics_text_MeasuredText)},
#ifdef __linux__
- {"android.os.FileObserver", REG_JNI(register_android_os_FileObserver)},
- {"android.os.MessageQueue", REG_JNI(register_android_os_MessageQueue)},
+ {"android.os.FileObserver", REG_JNI(register_android_os_FileObserver)},
+ {"android.os.MessageQueue", REG_JNI(register_android_os_MessageQueue)},
#endif
- {"android.os.SystemClock", REG_JNI(register_android_os_SystemClock)},
- {"android.os.SystemProperties", REG_JNI(register_android_os_SystemProperties)},
-#ifdef __linux__
- {"android.os.Trace", REG_JNI(register_android_os_Trace)},
-#endif
- {"android.util.EventLog", REG_JNI(register_android_util_EventLog)},
- {"android.util.Log", REG_JNI(register_android_util_Log)},
- {"android.util.PathParser", REG_JNI(register_android_util_PathParser)},
- {"com.android.internal.util.VirtualRefBasePtr", REG_JNI(register_com_android_internal_util_VirtualRefBasePtr)},
- {"com.android.internal.view.animation.NativeInterpolatorFactoryHelper", REG_JNI(register_com_android_internal_view_animation_NativeInterpolatorFactoryHelper)},
+ {"android.os.SystemClock", REG_JNI(register_android_os_SystemClock)},
+ {"android.os.SystemProperties", REG_JNI(register_android_os_SystemProperties)},
+ {"android.os.Trace", REG_JNI(register_android_os_Trace)},
+ {"android.text.AndroidCharacter", REG_JNI(register_android_text_AndroidCharacter)},
+ {"android.util.EventLog", REG_JNI(register_android_util_EventLog)},
+ {"android.util.Log", REG_JNI(register_android_util_Log)},
+ {"android.util.PathParser", REG_JNI(register_android_util_PathParser)},
+ {"android.view.RenderNodeAnimator", REG_JNI(register_android_view_RenderNodeAnimator)},
+ {"com.android.internal.util.VirtualRefBasePtr",
+ REG_JNI(register_com_android_internal_util_VirtualRefBasePtr)},
+ {"com.android.internal.view.animation.NativeInterpolatorFactoryHelper",
+ REG_JNI(register_com_android_internal_view_animation_NativeInterpolatorFactoryHelper)},
};
// Vector to store the names of classes that need delegates of their native methods
static vector<string> classesToDelegate;
@@ -159,7 +169,6 @@ static int register_jni_procs(const std::unordered_map<std::string, RegJNIRec>&
int AndroidRuntime::registerNativeMethods(JNIEnv* env,
const char* className, const JNINativeMethod* gMethods, int numMethods) {
-
string classNameString = string(className);
if (find(classesToDelegate.begin(), classesToDelegate.end(), classNameString)
!= classesToDelegate.end()) {
diff --git a/core/jni/android/graphics/Graphics.cpp b/core/jni/android/graphics/Graphics.cpp
index aa209cb3899e..38fb8bdc1f7a 100644
--- a/core/jni/android/graphics/Graphics.cpp
+++ b/core/jni/android/graphics/Graphics.cpp
@@ -569,8 +569,8 @@ bool RecyclingClippingPixelAllocator::allocPixelRef(SkBitmap* bitmap) {
// mRecycledBitmap specifies the width and height of the bitmap that we
// want to reuse. Neither can be changed. We will try to find a way
// to reuse the memory.
- const int maxWidth = SkTMax(bitmap->width(), mRecycledBitmap->info().width());
- const int maxHeight = SkTMax(bitmap->height(), mRecycledBitmap->info().height());
+ const int maxWidth = std::max(bitmap->width(), mRecycledBitmap->info().width());
+ const int maxHeight = std::max(bitmap->height(), mRecycledBitmap->info().height());
const SkImageInfo maxInfo = bitmap->info().makeWH(maxWidth, maxHeight);
const size_t rowBytes = maxInfo.minRowBytes();
const size_t bytesNeeded = maxInfo.computeByteSize(rowBytes);
diff --git a/core/jni/android_os_storage_StorageManager.cpp b/core/jni/android_os_storage_StorageManager.cpp
new file mode 100644
index 000000000000..aee6733ecf53
--- /dev/null
+++ b/core/jni/android_os_storage_StorageManager.cpp
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "StorageManager"
+#include <android-base/logging.h>
+#include <android-base/unique_fd.h>
+#include <fcntl.h>
+#include <linux/fs.h>
+
+#include <nativehelper/JNIHelp.h>
+#include "core_jni_helpers.h"
+
+namespace android {
+
+jboolean android_os_storage_StorageManager_setQuotaProjectId(JNIEnv* env, jobject self,
+ jstring path, jlong projectId) {
+ struct fsxattr fsx;
+ ScopedUtfChars utf_chars_path(env, path);
+
+ if (projectId > UINT32_MAX) {
+ LOG(ERROR) << "Invalid project id: " << projectId;
+ return JNI_FALSE;
+ }
+
+ android::base::unique_fd fd(
+ TEMP_FAILURE_RETRY(open(utf_chars_path.c_str(), O_RDONLY | O_CLOEXEC)));
+ if (fd == -1) {
+ PLOG(ERROR) << "Failed to open " << utf_chars_path.c_str() << " to set project id.";
+ return JNI_FALSE;
+ }
+
+ int ret = ioctl(fd, FS_IOC_FSGETXATTR, &fsx);
+ if (ret == -1) {
+ PLOG(ERROR) << "Failed to get extended attributes for " << utf_chars_path.c_str()
+ << " to get project id.";
+ return JNI_FALSE;
+ }
+
+ fsx.fsx_projid = projectId;
+ ret = ioctl(fd, FS_IOC_FSSETXATTR, &fsx);
+ if (ret == -1) {
+ PLOG(ERROR) << "Failed to set extended attributes for " << utf_chars_path.c_str()
+ << " to set project id.";
+ return JNI_FALSE;
+ }
+
+ return JNI_TRUE;
+}
+
+// ----------------------------------------------------------------------------
+
+static const JNINativeMethod gStorageManagerMethods[] = {
+ {"setQuotaProjectId", "(Ljava/lang/String;J)Z",
+ (void*)android_os_storage_StorageManager_setQuotaProjectId},
+};
+
+const char* const kStorageManagerPathName = "android/os/storage/StorageManager";
+
+int register_android_os_storage_StorageManager(JNIEnv* env) {
+ return RegisterMethodsOrDie(env, kStorageManagerPathName, gStorageManagerMethods,
+ NELEM(gStorageManagerMethods));
+}
+
+}; // namespace android
diff --git a/core/jni/android_util_Binder.cpp b/core/jni/android_util_Binder.cpp
index e77c25efb1d4..14d74878b2ea 100644
--- a/core/jni/android_util_Binder.cpp
+++ b/core/jni/android_util_Binder.cpp
@@ -37,6 +37,7 @@
#include <binder/Parcel.h>
#include <binder/ProcessState.h>
#include <binder/Stability.h>
+#include <binderthreadstate/CallerUtils.h>
#include <cutils/atomic.h>
#include <log/log.h>
#include <utils/KeyedVector.h>
@@ -463,6 +464,9 @@ public:
if (mVintf) {
::android::internal::Stability::markVintf(b.get());
}
+ if (mExtension != nullptr) {
+ b.get()->setExtension(mExtension);
+ }
mBinder = b;
ALOGV("Creating JavaBinder %p (refs %p) for Object %p, weakCount=%" PRId32 "\n",
b.get(), b->getWeakRefs(), obj, b->getWeakRefs()->getWeakCount());
@@ -481,6 +485,24 @@ public:
mVintf = true;
}
+ sp<IBinder> getExtension() {
+ AutoMutex _l(mLock);
+ sp<JavaBBinder> b = mBinder.promote();
+ if (b != nullptr) {
+ return b.get()->getExtension();
+ }
+ return mExtension;
+ }
+
+ void setExtension(const sp<IBinder>& extension) {
+ AutoMutex _l(mLock);
+ mExtension = extension;
+ sp<JavaBBinder> b = mBinder.promote();
+ if (b != nullptr) {
+ b.get()->setExtension(mExtension);
+ }
+ }
+
private:
Mutex mLock;
wp<JavaBBinder> mBinder;
@@ -489,6 +511,8 @@ private:
// is too much binder state here, we can think about making JavaBBinder an
// sp here (avoid recreating it)
bool mVintf = false;
+
+ sp<IBinder> mExtension;
};
// ----------------------------------------------------------------------------
@@ -927,7 +951,7 @@ static jint android_os_Binder_getCallingUid()
static jboolean android_os_Binder_isHandlingTransaction()
{
- return IPCThreadState::self()->isServingCall();
+ return getCurrentServingCall() == BinderCallType::BINDER;
}
static jlong android_os_Binder_clearCallingIdentity()
@@ -1037,6 +1061,17 @@ static jobject android_os_Binder_waitForService(
return javaObjectForIBinder(env, service);
}
+static jobject android_os_Binder_getExtension(JNIEnv* env, jobject obj) {
+ JavaBBinderHolder* jbh = (JavaBBinderHolder*) env->GetLongField(obj, gBinderOffsets.mObject);
+ return javaObjectForIBinder(env, jbh->getExtension());
+}
+
+static void android_os_Binder_setExtension(JNIEnv* env, jobject obj, jobject extensionObject) {
+ JavaBBinderHolder* jbh = (JavaBBinderHolder*) env->GetLongField(obj, gBinderOffsets.mObject);
+ sp<IBinder> extension = ibinderForJavaObject(env, extensionObject);
+ jbh->setExtension(extension);
+}
+
// ----------------------------------------------------------------------------
static const JNINativeMethod gBinderMethods[] = {
@@ -1066,7 +1101,9 @@ static const JNINativeMethod gBinderMethods[] = {
{ "getNativeBBinderHolder", "()J", (void*)android_os_Binder_getNativeBBinderHolder },
{ "getNativeFinalizer", "()J", (void*)android_os_Binder_getNativeFinalizer },
{ "blockUntilThreadAvailable", "()V", (void*)android_os_Binder_blockUntilThreadAvailable },
- { "waitForService", "(Ljava/lang/String;)Landroid/os/IBinder;", (void*)android_os_Binder_waitForService }
+ { "waitForService", "(Ljava/lang/String;)Landroid/os/IBinder;", (void*)android_os_Binder_waitForService },
+ { "getExtension", "()Landroid/os/IBinder;", (void*)android_os_Binder_getExtension },
+ { "setExtension", "(Landroid/os/IBinder;)V", (void*)android_os_Binder_setExtension },
};
const char* const kBinderPathName = "android/os/Binder";
@@ -1506,6 +1543,21 @@ JNIEXPORT jlong JNICALL android_os_BinderProxy_getNativeFinalizer(JNIEnv*, jclas
return (jlong) BinderProxy_destroy;
}
+static jobject android_os_BinderProxy_getExtension(JNIEnv* env, jobject obj) {
+ IBinder* binder = getBPNativeData(env, obj)->mObject.get();
+ if (binder == nullptr) {
+ jniThrowException(env, "java/lang/IllegalStateException", "Native IBinder is null");
+ return nullptr;
+ }
+ sp<IBinder> extension;
+ status_t err = binder->getExtension(&extension);
+ if (err != OK) {
+ signalExceptionForError(env, obj, err, true /* canThrowRemoteException */);
+ return nullptr;
+ }
+ return javaObjectForIBinder(env, extension);
+}
+
// ----------------------------------------------------------------------------
static const JNINativeMethod gBinderProxyMethods[] = {
@@ -1517,6 +1569,7 @@ static const JNINativeMethod gBinderProxyMethods[] = {
{"linkToDeath", "(Landroid/os/IBinder$DeathRecipient;I)V", (void*)android_os_BinderProxy_linkToDeath},
{"unlinkToDeath", "(Landroid/os/IBinder$DeathRecipient;I)Z", (void*)android_os_BinderProxy_unlinkToDeath},
{"getNativeFinalizer", "()J", (void*)android_os_BinderProxy_getNativeFinalizer},
+ {"getExtension", "()Landroid/os/IBinder;", (void*)android_os_BinderProxy_getExtension},
};
const char* const kBinderProxyPathName = "android/os/BinderProxy";
diff --git a/core/jni/android_view_RenderNode.cpp b/core/jni/android_view_RenderNode.cpp
index 538861e21d96..a8246c7d84b7 100644
--- a/core/jni/android_view_RenderNode.cpp
+++ b/core/jni/android_view_RenderNode.cpp
@@ -151,11 +151,11 @@ static jboolean android_view_RenderNode_setOutlineRoundRect(CRITICAL_JNI_PARAMS_
return true;
}
-static jboolean android_view_RenderNode_setOutlineConvexPath(CRITICAL_JNI_PARAMS_COMMA jlong renderNodePtr,
+static jboolean android_view_RenderNode_setOutlinePath(CRITICAL_JNI_PARAMS_COMMA jlong renderNodePtr,
jlong outlinePathPtr, jfloat alpha) {
RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
SkPath* outlinePath = reinterpret_cast<SkPath*>(outlinePathPtr);
- renderNode->mutateStagingProperties().mutableOutline().setConvexPath(outlinePath, alpha);
+ renderNode->mutateStagingProperties().mutableOutline().setPath(outlinePath, alpha);
renderNode->setPropertyFieldsDirty(RenderNode::GENERIC);
return true;
}
@@ -684,7 +684,7 @@ static const JNINativeMethod gMethods[] = {
{ "nSetProjectionReceiver","(JZ)Z", (void*) android_view_RenderNode_setProjectionReceiver },
{ "nSetOutlineRoundRect", "(JIIIIFF)Z", (void*) android_view_RenderNode_setOutlineRoundRect },
- { "nSetOutlineConvexPath", "(JJF)Z", (void*) android_view_RenderNode_setOutlineConvexPath },
+ { "nSetOutlinePath", "(JJF)Z", (void*) android_view_RenderNode_setOutlinePath },
{ "nSetOutlineEmpty", "(J)Z", (void*) android_view_RenderNode_setOutlineEmpty },
{ "nSetOutlineNone", "(J)Z", (void*) android_view_RenderNode_setOutlineNone },
{ "nHasShadow", "(J)Z", (void*) android_view_RenderNode_hasShadow },
diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp
index 2b9d45431582..f564d7558832 100644
--- a/core/jni/android_view_SurfaceControl.cpp
+++ b/core/jni/android_view_SurfaceControl.cpp
@@ -22,20 +22,22 @@
#include "android_hardware_input_InputWindowHandle.h"
#include "core_jni_helpers.h"
+#include <memory>
+
+#include <android-base/chrono_utils.h>
#include <android/graphics/region.h>
#include <android_runtime/AndroidRuntime.h>
-#include <android-base/chrono_utils.h>
-#include <nativehelper/JNIHelp.h>
-#include <nativehelper/ScopedUtfChars.h>
#include <android_runtime/android_view_Surface.h>
#include <android_runtime/android_view_SurfaceSession.h>
#include <gui/Surface.h>
#include <gui/SurfaceComposerClient.h>
#include <jni.h>
-#include <memory>
+#include <nativehelper/JNIHelp.h>
+#include <nativehelper/ScopedUtfChars.h>
#include <stdio.h>
#include <system/graphics.h>
#include <ui/ConfigStoreTypes.h>
+#include <ui/DisplayConfig.h>
#include <ui/DisplayInfo.h>
#include <ui/DisplayedFrameStats.h>
#include <ui/FrameStats.h>
@@ -63,16 +65,21 @@ static const char* const OutOfResourcesException =
static struct {
jclass clazz;
jmethodID ctor;
+ jfieldID density;
+ jfieldID secure;
+} gDisplayInfoClassInfo;
+
+static struct {
+ jclass clazz;
+ jmethodID ctor;
jfieldID width;
jfieldID height;
- jfieldID refreshRate;
- jfieldID density;
jfieldID xDpi;
jfieldID yDpi;
- jfieldID secure;
+ jfieldID refreshRate;
jfieldID appVsyncOffsetNanos;
jfieldID presentationDeadlineNanos;
-} gPhysicalDisplayInfoClassInfo;
+} gDisplayConfigClassInfo;
static struct {
jfieldID bottom;
@@ -766,37 +773,46 @@ static void nativeSetDisplaySize(JNIEnv* env, jclass clazz,
}
}
-static jobjectArray nativeGetDisplayConfigs(JNIEnv* env, jclass clazz,
- jobject tokenObj) {
- sp<IBinder> token(ibinderForJavaObject(env, tokenObj));
- if (token == NULL) return NULL;
+static jobject nativeGetDisplayInfo(JNIEnv* env, jclass clazz, jobject tokenObj) {
+ DisplayInfo info;
+ if (const auto token = ibinderForJavaObject(env, tokenObj);
+ !token || SurfaceComposerClient::getDisplayInfo(token, &info) != NO_ERROR) {
+ return nullptr;
+ }
- Vector<DisplayInfo> configs;
- if (SurfaceComposerClient::getDisplayConfigs(token, &configs) != NO_ERROR ||
- configs.size() == 0) {
- return NULL;
+ jobject object = env->NewObject(gDisplayInfoClassInfo.clazz, gDisplayInfoClassInfo.ctor);
+ env->SetFloatField(object, gDisplayInfoClassInfo.density, info.density);
+ env->SetBooleanField(object, gDisplayInfoClassInfo.secure, info.secure);
+ return object;
+}
+
+static jobjectArray nativeGetDisplayConfigs(JNIEnv* env, jclass clazz, jobject tokenObj) {
+ Vector<DisplayConfig> configs;
+ if (const auto token = ibinderForJavaObject(env, tokenObj); !token ||
+ SurfaceComposerClient::getDisplayConfigs(token, &configs) != NO_ERROR ||
+ configs.isEmpty()) {
+ return nullptr;
}
- jobjectArray configArray = env->NewObjectArray(configs.size(),
- gPhysicalDisplayInfoClassInfo.clazz, NULL);
+ jobjectArray configArray =
+ env->NewObjectArray(configs.size(), gDisplayConfigClassInfo.clazz, nullptr);
for (size_t c = 0; c < configs.size(); ++c) {
- const DisplayInfo& info = configs[c];
- jobject infoObj = env->NewObject(gPhysicalDisplayInfoClassInfo.clazz,
- gPhysicalDisplayInfoClassInfo.ctor);
- env->SetIntField(infoObj, gPhysicalDisplayInfoClassInfo.width, info.w);
- env->SetIntField(infoObj, gPhysicalDisplayInfoClassInfo.height, info.h);
- env->SetFloatField(infoObj, gPhysicalDisplayInfoClassInfo.refreshRate, info.fps);
- env->SetFloatField(infoObj, gPhysicalDisplayInfoClassInfo.density, info.density);
- env->SetFloatField(infoObj, gPhysicalDisplayInfoClassInfo.xDpi, info.xdpi);
- env->SetFloatField(infoObj, gPhysicalDisplayInfoClassInfo.yDpi, info.ydpi);
- env->SetBooleanField(infoObj, gPhysicalDisplayInfoClassInfo.secure, info.secure);
- env->SetLongField(infoObj, gPhysicalDisplayInfoClassInfo.appVsyncOffsetNanos,
- info.appVsyncOffset);
- env->SetLongField(infoObj, gPhysicalDisplayInfoClassInfo.presentationDeadlineNanos,
- info.presentationDeadline);
- env->SetObjectArrayElement(configArray, static_cast<jsize>(c), infoObj);
- env->DeleteLocalRef(infoObj);
+ const DisplayConfig& config = configs[c];
+ jobject object =
+ env->NewObject(gDisplayConfigClassInfo.clazz, gDisplayConfigClassInfo.ctor);
+ env->SetIntField(object, gDisplayConfigClassInfo.width, config.resolution.getWidth());
+ env->SetIntField(object, gDisplayConfigClassInfo.height, config.resolution.getHeight());
+ env->SetFloatField(object, gDisplayConfigClassInfo.xDpi, config.xDpi);
+ env->SetFloatField(object, gDisplayConfigClassInfo.yDpi, config.yDpi);
+
+ env->SetFloatField(object, gDisplayConfigClassInfo.refreshRate, config.refreshRate);
+ env->SetLongField(object, gDisplayConfigClassInfo.appVsyncOffsetNanos,
+ config.appVsyncOffset);
+ env->SetLongField(object, gDisplayConfigClassInfo.presentationDeadlineNanos,
+ config.presentationDeadline);
+ env->SetObjectArrayElement(configArray, static_cast<jsize>(c), object);
+ env->DeleteLocalRef(object);
}
return configArray;
@@ -1409,7 +1425,9 @@ static const JNINativeMethod sSurfaceControlMethods[] = {
(void*)nativeSetDisplayProjection },
{"nativeSetDisplaySize", "(JLandroid/os/IBinder;II)V",
(void*)nativeSetDisplaySize },
- {"nativeGetDisplayConfigs", "(Landroid/os/IBinder;)[Landroid/view/SurfaceControl$PhysicalDisplayInfo;",
+ {"nativeGetDisplayInfo", "(Landroid/os/IBinder;)Landroid/view/SurfaceControl$DisplayInfo;",
+ (void*)nativeGetDisplayInfo },
+ {"nativeGetDisplayConfigs", "(Landroid/os/IBinder;)[Landroid/view/SurfaceControl$DisplayConfig;",
(void*)nativeGetDisplayConfigs },
{"nativeGetActiveConfig", "(Landroid/os/IBinder;)I",
(void*)nativeGetActiveConfig },
@@ -1507,21 +1525,24 @@ int register_android_view_SurfaceControl(JNIEnv* env)
int err = RegisterMethodsOrDie(env, "android/view/SurfaceControl",
sSurfaceControlMethods, NELEM(sSurfaceControlMethods));
- jclass clazz = FindClassOrDie(env, "android/view/SurfaceControl$PhysicalDisplayInfo");
- gPhysicalDisplayInfoClassInfo.clazz = MakeGlobalRefOrDie(env, clazz);
- gPhysicalDisplayInfoClassInfo.ctor = GetMethodIDOrDie(env,
- gPhysicalDisplayInfoClassInfo.clazz, "<init>", "()V");
- gPhysicalDisplayInfoClassInfo.width = GetFieldIDOrDie(env, clazz, "width", "I");
- gPhysicalDisplayInfoClassInfo.height = GetFieldIDOrDie(env, clazz, "height", "I");
- gPhysicalDisplayInfoClassInfo.refreshRate = GetFieldIDOrDie(env, clazz, "refreshRate", "F");
- gPhysicalDisplayInfoClassInfo.density = GetFieldIDOrDie(env, clazz, "density", "F");
- gPhysicalDisplayInfoClassInfo.xDpi = GetFieldIDOrDie(env, clazz, "xDpi", "F");
- gPhysicalDisplayInfoClassInfo.yDpi = GetFieldIDOrDie(env, clazz, "yDpi", "F");
- gPhysicalDisplayInfoClassInfo.secure = GetFieldIDOrDie(env, clazz, "secure", "Z");
- gPhysicalDisplayInfoClassInfo.appVsyncOffsetNanos = GetFieldIDOrDie(env,
- clazz, "appVsyncOffsetNanos", "J");
- gPhysicalDisplayInfoClassInfo.presentationDeadlineNanos = GetFieldIDOrDie(env,
- clazz, "presentationDeadlineNanos", "J");
+ jclass infoClazz = FindClassOrDie(env, "android/view/SurfaceControl$DisplayInfo");
+ gDisplayInfoClassInfo.clazz = MakeGlobalRefOrDie(env, infoClazz);
+ gDisplayInfoClassInfo.ctor = GetMethodIDOrDie(env, infoClazz, "<init>", "()V");
+ gDisplayInfoClassInfo.density = GetFieldIDOrDie(env, infoClazz, "density", "F");
+ gDisplayInfoClassInfo.secure = GetFieldIDOrDie(env, infoClazz, "secure", "Z");
+
+ jclass configClazz = FindClassOrDie(env, "android/view/SurfaceControl$DisplayConfig");
+ gDisplayConfigClassInfo.clazz = MakeGlobalRefOrDie(env, configClazz);
+ gDisplayConfigClassInfo.ctor = GetMethodIDOrDie(env, configClazz, "<init>", "()V");
+ gDisplayConfigClassInfo.width = GetFieldIDOrDie(env, configClazz, "width", "I");
+ gDisplayConfigClassInfo.height = GetFieldIDOrDie(env, configClazz, "height", "I");
+ gDisplayConfigClassInfo.xDpi = GetFieldIDOrDie(env, configClazz, "xDpi", "F");
+ gDisplayConfigClassInfo.yDpi = GetFieldIDOrDie(env, configClazz, "yDpi", "F");
+ gDisplayConfigClassInfo.refreshRate = GetFieldIDOrDie(env, configClazz, "refreshRate", "F");
+ gDisplayConfigClassInfo.appVsyncOffsetNanos =
+ GetFieldIDOrDie(env, configClazz, "appVsyncOffsetNanos", "J");
+ gDisplayConfigClassInfo.presentationDeadlineNanos =
+ GetFieldIDOrDie(env, configClazz, "presentationDeadlineNanos", "J");
jclass rectClazz = FindClassOrDie(env, "android/graphics/Rect");
gRectClassInfo.bottom = GetFieldIDOrDie(env, rectClazz, "bottom", "I");
diff --git a/core/jni/android_view_ThreadedRenderer.cpp b/core/jni/android_view_ThreadedRenderer.cpp
index 69ca17c08257..5a8225c1f21a 100644
--- a/core/jni/android_view_ThreadedRenderer.cpp
+++ b/core/jni/android_view_ThreadedRenderer.cpp
@@ -147,10 +147,12 @@ static jlong android_view_ThreadedRenderer_createRootRenderNode(JNIEnv* env, job
}
static jlong android_view_ThreadedRenderer_createProxy(JNIEnv* env, jobject clazz,
- jboolean translucent, jlong rootRenderNodePtr) {
+ jboolean translucent, jboolean isWideGamut, jlong rootRenderNodePtr) {
RootRenderNode* rootRenderNode = reinterpret_cast<RootRenderNode*>(rootRenderNodePtr);
ContextFactoryImpl factory(rootRenderNode);
- return (jlong) new RenderProxy(translucent, rootRenderNode, &factory);
+ RenderProxy* proxy = new RenderProxy(translucent, rootRenderNode, &factory);
+ proxy->setWideGamut(isWideGamut);
+ return (jlong) proxy;
}
static void android_view_ThreadedRenderer_deleteProxy(JNIEnv* env, jobject clazz,
@@ -627,7 +629,7 @@ static const JNINativeMethod gMethods[] = {
{ "nSetProcessStatsBuffer", "(I)V", (void*) android_view_ThreadedRenderer_setProcessStatsBuffer },
{ "nGetRenderThreadTid", "(J)I", (void*) android_view_ThreadedRenderer_getRenderThreadTid },
{ "nCreateRootRenderNode", "()J", (void*) android_view_ThreadedRenderer_createRootRenderNode },
- { "nCreateProxy", "(ZJ)J", (void*) android_view_ThreadedRenderer_createProxy },
+ { "nCreateProxy", "(ZZJ)J", (void*) android_view_ThreadedRenderer_createProxy },
{ "nDeleteProxy", "(J)V", (void*) android_view_ThreadedRenderer_deleteProxy },
{ "nLoadSystemProperties", "(J)Z", (void*) android_view_ThreadedRenderer_loadSystemProperties },
{ "nSetName", "(JLjava/lang/String;)V", (void*) android_view_ThreadedRenderer_setName },
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index 1ea7d6144356..92941b8cb22b 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -820,6 +820,7 @@ static void MountEmulatedStorage(uid_t uid, jint mount_mode,
if (isFuse) {
if (mount_mode == MOUNT_EXTERNAL_PASS_THROUGH) {
const std::string pass_through_source = StringPrintf("/mnt/pass_through/%d", user_id);
+ PrepareDir(pass_through_source, 0710, AID_ROOT, AID_MEDIA_RW, fail_fn);
BindMount(pass_through_source, "/storage", fail_fn);
} else if (mount_mode == MOUNT_EXTERNAL_INSTALLER) {
const std::string installer_source = StringPrintf("/mnt/installer/%d", user_id);
diff --git a/core/jni/fd_utils.cpp b/core/jni/fd_utils.cpp
index 1fcc8acb5879..cfd3c0915002 100644
--- a/core/jni/fd_utils.cpp
+++ b/core/jni/fd_utils.cpp
@@ -51,6 +51,7 @@ static const char* kPathWhitelist[] = {
"/dev/socket/webview_zygote",
"/dev/socket/heapprofd",
"/sys/kernel/debug/tracing/trace_marker",
+ "/sys/kernel/tracing/trace_marker",
"/system/framework/framework-res.apk",
"/dev/urandom",
"/dev/ion",
diff --git a/core/proto/android/app/settings_enums.proto b/core/proto/android/app/settings_enums.proto
index ce03727314d1..fc0a2ef6041a 100644
--- a/core/proto/android/app/settings_enums.proto
+++ b/core/proto/android/app/settings_enums.proto
@@ -2562,10 +2562,20 @@ enum PageId {
// CATEGORY: SETTINGS
// OS: R
OPEN_SUPPORTED_LINKS = 1824;
-
+
// OPEN: Settings > Display > Dark theme > Set start time dialog
DIALOG_DARK_THEME_SET_START_TIME = 1825;
// OPEN: Settings > Display > Dark theme > Set end time dialog
DIALOG_DARK_THEME_SET_END_TIME = 1826;
+
+ // OPEN: Settings -> Sound -> Vibrate for calls
+ // CATEGORY: SETTINGS
+ // OS: R
+ VIBRATE_FOR_CALLS = 1827;
+
+ // OPEN: Settings > Connected devices > Connection preferences > NFC
+ // CATEGORY: SETTINGS
+ // OS: R
+ CONNECTION_DEVICE_ADVANCED_NFC = 1828;
}
diff --git a/core/proto/android/os/incident.proto b/core/proto/android/os/incident.proto
index 8adcc9ed905d..bf4cdee72b2d 100644
--- a/core/proto/android/os/incident.proto
+++ b/core/proto/android/os/incident.proto
@@ -52,6 +52,7 @@ import "frameworks/base/core/proto/android/service/package.proto";
import "frameworks/base/core/proto/android/service/print.proto";
import "frameworks/base/core/proto/android/service/procstats.proto";
import "frameworks/base/core/proto/android/service/restricted_image.proto";
+import "frameworks/base/core/proto/android/service/sensor_service.proto";
import "frameworks/base/core/proto/android/service/usb.proto";
import "frameworks/base/core/proto/android/util/event_log_tags.proto";
import "frameworks/base/core/proto/android/util/log.proto";
@@ -492,6 +493,11 @@ message IncidentProto {
(section).args = "contexthub --proto"
];
+ optional android.service.SensorServiceProto sensor_service = 3053 [
+ (section).type = SECTION_DUMPSYS,
+ (section).args = "sensorservice --proto"
+ ];
+
// Reserved for OEMs.
extensions 50000 to 100000;
}
diff --git a/core/proto/android/server/activitymanagerservice.proto b/core/proto/android/server/activitymanagerservice.proto
index 1426932ec04a..2d2ead455a4d 100644
--- a/core/proto/android/server/activitymanagerservice.proto
+++ b/core/proto/android/server/activitymanagerservice.proto
@@ -27,7 +27,6 @@ import "frameworks/base/core/proto/android/content/component_name.proto";
import "frameworks/base/core/proto/android/content/configuration.proto";
import "frameworks/base/core/proto/android/content/intent.proto";
import "frameworks/base/core/proto/android/content/package_item_info.proto";
-import "frameworks/base/core/proto/android/graphics/rect.proto";
import "frameworks/base/core/proto/android/internal/processstats.proto";
import "frameworks/base/core/proto/android/os/bundle.proto";
import "frameworks/base/core/proto/android/os/looper.proto";
@@ -55,87 +54,8 @@ message ActivityManagerServiceProto {
message ActivityManagerServiceDumpActivitiesProto {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
- optional ActivityStackSupervisorProto activity_stack_supervisor = 1;
-}
-
-message ActivityStackSupervisorProto {
- option (.android.msg_privacy).dest = DEST_AUTOMATIC;
-
- optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true];
- repeated ActivityDisplayProto displays = 2;
- optional KeyguardControllerProto keyguard_controller = 3;
- // TODO(b/111541062): Focused stack and resumed activity are now per-display. Topmost instances
- // can be obtained from top display and these fields can be removed.
- optional int32 focused_stack_id = 4;
- optional .com.android.server.wm.IdentifierProto resumed_activity = 5;
- // Whether or not the home activity is the recents activity. This is needed for the CTS tests to
- // know what activity types to check for when invoking splitscreen multi-window.
- optional bool is_home_recents_component = 6;
- repeated .com.android.server.wm.IdentifierProto pending_activities = 7;
- optional .com.android.server.wm.RootWindowContainerProto root_window_container = 8;
-}
-
-/* represents ActivityStackSupervisor.ActivityDisplay */
-message ActivityDisplayProto {
- option (.android.msg_privacy).dest = DEST_AUTOMATIC;
-
- // To be removed soon.
- optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true];
- optional int32 id = 2;
- repeated ActivityStackProto stacks = 3;
- optional int32 focused_stack_id = 4;
- optional .com.android.server.wm.IdentifierProto resumed_activity = 5;
- optional bool single_task_instance = 6;
- optional .com.android.server.wm.DisplayContentProto display = 7;
-}
-
-message ActivityStackProto {
- option (.android.msg_privacy).dest = DEST_AUTOMATIC;
-
- // To be removed soon.
- optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true];
- optional int32 id = 2;
- repeated TaskRecordProto tasks = 3;
- optional .com.android.server.wm.IdentifierProto resumed_activity = 4;
- optional int32 display_id = 5;
- optional bool fullscreen = 6;
- optional .android.graphics.RectProto bounds = 7;
- optional .com.android.server.wm.StackProto stack = 8;
-}
-
-message TaskRecordProto {
- option (.android.msg_privacy).dest = DEST_AUTOMATIC;
-
- // To be removed soon.
- optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true];
- optional int32 id = 2;
- repeated .com.android.server.wm.ActivityRecordProto activities = 3;
- optional int32 stack_id = 4;
- optional .android.graphics.RectProto last_non_fullscreen_bounds = 5;
- optional string real_activity = 6;
- optional string orig_activity = 7;
- optional int32 activity_type = 8;
- optional int32 resize_mode = 9;
- optional bool fullscreen = 10;
- optional .android.graphics.RectProto bounds = 11;
- optional int32 min_width = 12;
- optional int32 min_height = 13;
- optional .com.android.server.wm.TaskProto task = 14;
-}
-
-message KeyguardControllerProto {
- option (.android.msg_privacy).dest = DEST_AUTOMATIC;
-
- optional bool keyguard_showing = 1;
- repeated KeyguardOccludedProto keyguard_occluded_states= 2;
- optional bool aod_showing = 3;
-}
-
-message KeyguardOccludedProto {
- option (.android.msg_privacy).dest = DEST_AUTOMATIC;
-
- optional int32 display_id = 1;
- optional bool keyguard_occluded = 2;
+ reserved 1; // activity_stack_supervisor
+ optional .com.android.server.wm.RootWindowContainerProto root_window_container = 2;
}
// "dumpsys activity --proto broadcasts"
@@ -669,8 +589,6 @@ message ActivityManagerServiceDumpProcessesProto {
optional int64 previous_proc_visible_time_ms = 17;
optional ProcessRecordProto heavy_weight_proc = 18;
optional .android.content.ConfigurationProto global_configuration = 19;
- // ActivityStackSupervisorProto dumps these values as well, still here?
- // repeated ActivityDisplayProto displays = 20;
optional bool config_will_change = 21;
diff --git a/core/proto/android/server/connectivity/data_stall_event.proto b/core/proto/android/server/connectivity/data_stall_event.proto
index a82326f67d74..23fcf6ebc2cc 100644
--- a/core/proto/android/server/connectivity/data_stall_event.proto
+++ b/core/proto/android/server/connectivity/data_stall_event.proto
@@ -34,7 +34,7 @@ enum ApBand {
AP_BAND_5GHZ = 2;
}
-// Refer to definition in ServiceState.java.
+// Refer to definition in TelephonyManager.java.
enum RadioTech {
RADIO_TECHNOLOGY_UNKNOWN = 0;
RADIO_TECHNOLOGY_GPRS = 1;
@@ -49,8 +49,8 @@ enum RadioTech {
RADIO_TECHNOLOGY_HSUPA = 10;
RADIO_TECHNOLOGY_HSPA = 11;
RADIO_TECHNOLOGY_EVDO_B = 12;
- RADIO_TECHNOLOGY_EHRPD = 13;
- RADIO_TECHNOLOGY_LTE = 14;
+ RADIO_TECHNOLOGY_LTE = 13;
+ RADIO_TECHNOLOGY_EHRPD = 14;
RADIO_TECHNOLOGY_HSPAP = 15;
RADIO_TECHNOLOGY_GSM = 16;
RADIO_TECHNOLOGY_TD_SCDMA = 17;
diff --git a/core/proto/android/server/notificationhistory.proto b/core/proto/android/server/notificationhistory.proto
index 1e6ee3f1a3a8..6749719be124 100644
--- a/core/proto/android/server/notificationhistory.proto
+++ b/core/proto/android/server/notificationhistory.proto
@@ -17,8 +17,6 @@
syntax = "proto2";
package com.android.server.notification;
-import "frameworks/base/core/proto/android/server/enums.proto";
-
option java_multiple_files = true;
// On disk data store for historical notifications
diff --git a/core/proto/android/server/vibratorservice.proto b/core/proto/android/server/vibratorservice.proto
new file mode 100644
index 000000000000..281a25e55dc2
--- /dev/null
+++ b/core/proto/android/server/vibratorservice.proto
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+package com.android.server;
+
+option java_multiple_files = true;
+
+import "frameworks/base/core/proto/android/privacy.proto";
+
+message WaveformProto {
+ option (.android.msg_privacy).dest = DEST_AUTOMATIC;
+ repeated int32 timings = 1;
+ repeated int32 amplitudes = 2;
+ required bool repeat = 3;
+}
+
+message PrebakedProto {
+ option (.android.msg_privacy).dest = DEST_AUTOMATIC;
+ optional int32 effect_id = 1;
+ optional int32 effect_strength = 2;
+ optional int32 fallback = 3;
+}
+
+// A com.android.os.VibrationEffect object.
+message VibrationEffectProto {
+ option (.android.msg_privacy).dest = DEST_AUTOMATIC;
+ optional WaveformProto waveform = 1;
+ optional PrebakedProto prebaked = 2;
+}
+
+message VibrationProto {
+ option (.android.msg_privacy).dest = DEST_AUTOMATIC;
+ optional int64 start_time = 1;
+ optional VibrationEffectProto effect = 2;
+ optional VibrationEffectProto origin_effect = 3;
+}
+
+message VibratorServiceDumpProto {
+ option (.android.msg_privacy).dest = DEST_AUTOMATIC;
+ optional VibrationProto current_vibration = 1;
+ optional bool is_vibrating = 2;
+ optional VibrationProto current_external_vibration = 3;
+ optional bool vibrator_under_external_control = 4;
+ optional bool low_power_mode = 5;
+ optional int32 haptic_feedback_intensity = 6;
+ optional int32 notification_intensity = 7;
+ optional int32 ring_intensity = 8;
+ repeated VibrationProto previous_ring_vibrations = 9;
+ repeated VibrationProto previous_notification_vibrations = 10;
+ repeated VibrationProto previous_alarm_vibrations = 11;
+ repeated VibrationProto previous_vibrations = 12;
+} \ No newline at end of file
diff --git a/core/proto/android/server/windowmanagerservice.proto b/core/proto/android/server/windowmanagerservice.proto
index c0743e58b5c5..b0b9ce6f9968 100644
--- a/core/proto/android/server/windowmanagerservice.proto
+++ b/core/proto/android/server/windowmanagerservice.proto
@@ -54,8 +54,14 @@ message RootWindowContainerProto {
optional WindowContainerProto window_container = 1;
repeated DisplayContentProto displays = 2;
+ reserved 3; // IdentifierProto windows
/* window references in top down z order */
- repeated IdentifierProto windows = 3;
+ repeated WindowStateProto windows = 4;
+ optional KeyguardControllerProto keyguard_controller = 5;
+ // Whether or not the home activity is the recents activity. This is needed for the CTS tests to
+ // know what activity types to check for when invoking splitscreen multi-window.
+ optional bool is_home_recents_component = 6;
+ repeated IdentifierProto pending_activities = 7;
}
message BarControllerProto {
@@ -94,6 +100,21 @@ message KeyguardServiceDelegateProto {
optional InteractiveState interactive_state = 5;
}
+message KeyguardControllerProto {
+ option (.android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional bool keyguard_showing = 1;
+ repeated KeyguardOccludedProto keyguard_occluded_states = 2;
+ optional bool aod_showing = 3;
+}
+
+message KeyguardOccludedProto {
+ option (.android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional int32 display_id = 1;
+ optional bool keyguard_occluded = 2;
+}
+
/* represents PhoneWindowManager */
message WindowManagerPolicyProto {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
@@ -145,14 +166,14 @@ message DisplayContentProto {
optional WindowContainerProto window_container = 1;
optional int32 id = 2;
- repeated StackProto stacks = 3;
+ reserved 3; // stacks
optional DockedStackDividerControllerProto docked_stack_divider_controller = 4;
// Will be removed soon.
optional PinnedStackControllerProto pinned_stack_controller = 5 [deprecated=true];
/* non app windows */
- repeated WindowTokenProto above_app_windows = 6;
- repeated WindowTokenProto below_app_windows = 7;
- repeated WindowTokenProto ime_windows = 8;
+ repeated WindowTokenProto above_app_windows = 6 [deprecated=true];
+ repeated WindowTokenProto below_app_windows = 7 [deprecated=true];
+ repeated WindowTokenProto ime_windows = 8 [deprecated=true];
optional int32 dpi = 9;
optional .android.view.DisplayInfoProto display_info = 10;
optional int32 rotation = 11;
@@ -165,6 +186,36 @@ message DisplayContentProto {
repeated IdentifierProto closing_apps = 18;
repeated IdentifierProto changing_apps = 19;
repeated WindowTokenProto overlay_windows = 20;
+ optional DisplayAreaProto root_display_area = 21;
+
+
+ optional bool single_task_instance = 22;
+ optional int32 focused_root_task_id = 23;
+ optional .com.android.server.wm.IdentifierProto resumed_activity = 24;
+ repeated TaskProto tasks = 25;
+}
+
+/* represents DisplayArea object */
+message DisplayAreaProto {
+ option (.android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional WindowContainerProto window_container = 1;
+ optional string name = 2 [ (.android.privacy).dest = DEST_EXPLICIT ];
+ repeated DisplayAreaChildProto children = 3;
+}
+
+/* represents a generic child of a DisplayArea */
+message DisplayAreaChildProto {
+ option (.android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ /* At most one of the following should be present: */
+
+ /* represents a DisplayArea child */
+ optional DisplayAreaProto display_area = 1;
+ /* represents a WindowToken child */
+ optional WindowTokenProto window = 2;
+ /* represents an unknown child - the class name is recorded */
+ repeated string unknown = 3;
}
/* represents DisplayFrames */
@@ -189,39 +240,41 @@ message PinnedStackControllerProto {
optional .android.graphics.RectProto movement_bounds = 2 [deprecated=true];
}
-/* represents TaskStack */
-message StackProto {
- option (.android.msg_privacy).dest = DEST_AUTOMATIC;
-
- optional WindowContainerProto window_container = 1;
- optional int32 id = 2;
- repeated TaskProto tasks = 3;
- optional bool fills_parent = 4;
- optional .android.graphics.RectProto bounds = 5;
- optional bool animation_background_surface_is_dimming = 6 [deprecated=true];
- optional bool defer_removal = 7;
- optional float minimize_amount = 8;
- optional bool adjusted_for_ime = 9;
- optional float adjust_ime_amount = 10;
- optional float adjust_divider_amount = 11;
- optional .android.graphics.RectProto adjusted_bounds = 12;
- optional bool animating_bounds = 13;
-}
-
/* represents Task */
message TaskProto {
option (.android.msg_privacy).dest = DEST_AUTOMATIC;
optional WindowContainerProto window_container = 1;
optional int32 id = 2;
- repeated ActivityRecordProto activity = 3;
+ reserved 3; // activity
optional bool fills_parent = 4;
optional .android.graphics.RectProto bounds = 5;
optional .android.graphics.RectProto displayed_bounds = 6;
- // Will be removed soon.
- optional bool defer_removal = 7 [deprecated=true];
+ optional bool defer_removal = 7;
optional int32 surface_width = 8;
optional int32 surface_height = 9;
+
+ repeated TaskProto tasks = 10;
+ repeated ActivityRecordProto activities = 11;
+
+ optional .com.android.server.wm.IdentifierProto resumed_activity = 12;
+ optional string real_activity = 13;
+ optional string orig_activity = 14;
+
+ optional int32 display_id = 15;
+ optional int32 root_task_id = 16;
+ optional int32 activity_type = 17;
+ optional int32 resize_mode = 18;
+ optional int32 min_width = 19;
+ optional int32 min_height = 20;
+
+ optional .android.graphics.RectProto adjusted_bounds = 21;
+ optional .android.graphics.RectProto last_non_fullscreen_bounds = 22;
+ optional bool adjusted_for_ime = 23;
+ optional float adjust_ime_amount = 24;
+ optional float adjust_divider_amount = 25;
+ optional bool animating_bounds = 26;
+ optional float minimize_amount = 27;
}
/* represents ActivityRecordProto */
@@ -246,17 +299,15 @@ message ActivityRecordProto {
optional int32 num_drawn_windows = 15;
optional bool all_drawn = 16;
optional bool last_all_drawn = 17;
- // Will be removed soon
- optional bool removed = 18 [deprecated=true];
+ reserved 18; // removed
optional IdentifierProto starting_window = 19;
optional bool starting_displayed = 20;
- optional bool starting_moved = 21;
+ optional bool starting_moved = 201;
optional bool visible_set_from_transferred_starting_window = 22;
repeated .android.graphics.RectProto frozen_bounds = 23;
optional bool visible = 24;
- // To be removed soon.
- optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 25 [deprecated=true];
- optional .com.android.server.wm.IdentifierProto identifier = 26;
+ reserved 25; // configuration_container
+ optional IdentifierProto identifier = 26;
optional string state = 27;
optional bool front_of_task = 28;
optional int32 proc_id = 29;
diff --git a/core/proto/android/service/sensor_service.proto b/core/proto/android/service/sensor_service.proto
new file mode 100644
index 000000000000..8598f86a7f28
--- /dev/null
+++ b/core/proto/android/service/sensor_service.proto
@@ -0,0 +1,246 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+package android.service;
+
+import "frameworks/base/core/proto/android/privacy.proto";
+
+option java_multiple_files = true;
+
+/*
+ * Notes:
+ * 1. When using ProtoOutputStream to write this proto message, must call
+ * token = ProtoOutputStream#start(fieldId) before and ProtoOutputStream#end(token) after
+ * writing a nested message.
+ * 2. Never reuse a proto field number. When removing a field, mark it as reserved.
+ */
+
+// Proto dump of android::SensorService. dumpsys sensorservice --proto
+message SensorServiceProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ enum OperatingModeEnum {
+ OP_MODE_UNKNOWN = 0;
+ OP_MODE_NORMAL = 1;
+ OP_MODE_RESTRICTED = 2;
+ OP_MODE_DATA_INJECTION = 3;
+ }
+
+ optional int64 current_time_ms = 1;
+ optional SensorDeviceProto sensor_device = 2;
+ optional SensorListProto sensors = 3;
+ optional SensorFusionProto fusion_state = 4;
+ optional SensorEventsProto sensor_events = 5;
+ repeated ActiveSensorProto active_sensors = 6;
+ optional int32 socket_buffer_size = 7;
+ optional int32 socket_buffer_size_in_events = 8;
+ optional bool wake_lock_acquired = 9;
+ optional OperatingModeEnum operating_mode = 10;
+ // Non-empty only if operating_mode is RESTRICTED or DATA_INJECTION.
+ optional string whitelisted_package = 11;
+ optional bool sensor_privacy = 12;
+ repeated SensorEventConnectionProto active_connections = 13;
+ repeated SensorDirectConnectionProto direct_connections = 14;
+ repeated SensorRegistrationInfoProto previous_registrations = 15;
+}
+
+// Proto dump of android::SensorDevice
+message SensorDeviceProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional bool initialized = 1;
+ optional int32 total_sensors = 2;
+ optional int32 active_sensors = 3;
+
+ message SensorProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional int32 handle = 1;
+ optional int32 active_count = 2;
+ repeated float sampling_period_ms = 3;
+ optional float sampling_period_selected = 4;
+ repeated float batching_period_ms = 5;
+ optional float batching_period_selected = 6;
+ }
+ repeated SensorProto sensors = 4;
+}
+
+// Proto dump of android::SensorServiceUtil::SensorList
+message SensorListProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ enum ReportingModeEnum {
+ RM_UNKNOWN = 0;
+ RM_CONTINUOUS = 1;
+ RM_ON_CHANGE = 2;
+ RM_ONE_SHOT = 3;
+ RM_SPECIAL_TRIGGER = 4;
+ }
+
+ message SensorProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional int32 handle = 1;
+ optional string name = 2;
+ optional string vendor = 3;
+ optional int32 version = 4;
+ optional string string_type = 5;
+ optional int32 type = 6;
+ optional string required_permission = 7;
+ optional int32 flags = 8;
+ optional ReportingModeEnum reporting_mode = 9;
+ optional int32 max_delay_us = 10;
+ optional int32 min_delay_us = 11;
+ optional int32 fifo_max_event_count = 12;
+ optional int32 fifo_reserved_event_count = 13;
+ optional bool is_wakeup = 14;
+ optional bool data_injection_supported = 15;
+ optional bool is_dynamic = 16;
+ optional bool has_additional_info = 17;
+ optional int32 highest_rate_level = 18;
+ optional bool ashmem = 19;
+ optional bool gralloc = 20;
+ optional float min_value = 21;
+ optional float max_value = 22;
+ optional float resolution = 23;
+ optional float power_usage = 24;
+ }
+ repeated SensorProto sensors = 1;
+}
+
+
+// Proto dump of android::SensorFusion
+message SensorFusionProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ message FusionProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional bool enabled = 1;
+ optional int32 num_clients = 2;
+ optional float estimated_gyro_rate = 3;
+ optional float attitude_x = 4;
+ optional float attitude_y = 5;
+ optional float attitude_z = 6;
+ optional float attitude_w = 7;
+ optional float attitude_length = 8;
+ optional float bias_x = 9;
+ optional float bias_y = 10;
+ optional float bias_z = 11;
+ }
+ optional FusionProto fusion_9axis = 1;
+ optional FusionProto fusion_nomag = 2;
+ optional FusionProto fusion_nogyro = 3;
+}
+
+// Proto dump of android::SensorServiceUtil::RecentEventLogger
+message SensorEventsProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ message Event {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional float timestamp_sec = 1;
+ optional int64 wall_timestamp_ms = 2;
+ optional bool masked = 3;
+ optional int64 int64_data = 4;
+ repeated float float_array = 5;
+ }
+
+ message RecentEventsLog {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional string name = 1;
+ optional int32 recent_events_count = 2;
+ repeated Event events = 3;
+ }
+ repeated RecentEventsLog recent_events_logs = 1;
+}
+
+message ActiveSensorProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional string name = 1;
+ optional int32 handle = 2;
+ optional int32 num_connections = 3;
+}
+
+// Proto dump of android::SensorService::SensorDirectConnection
+message SensorDirectConnectionProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ message SensorProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional int32 sensor = 1;
+ optional int32 rate = 2;
+ }
+
+ optional string package_name = 1;
+ optional int32 hal_channel_handle = 2;
+ optional int32 num_sensor_activated = 3;
+ repeated SensorProto sensors = 4;
+}
+
+// Proto dump of android::SensorService::SensorEventConnection
+message SensorEventConnectionProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ message FlushInfoProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional string sensor_name = 1;
+ optional int32 sensor_handle = 2;
+ optional bool first_flush_pending = 3;
+ optional int32 pending_flush_events_to_send = 4;
+ }
+
+ enum OperatingModeEnum {
+ OP_MODE_UNKNOWN = 0;
+ OP_MODE_NORMAL = 1;
+ OP_MODE_RESTRICTED = 2;
+ OP_MODE_DATA_INJECTION = 3;
+ }
+
+ optional OperatingModeEnum operating_mode = 1;
+ optional string package_name = 2;
+ optional int32 wake_lock_ref_count = 3;
+ optional int32 uid = 4;
+ optional int32 cache_size = 5;
+ optional int32 max_cache_size = 6;
+ repeated FlushInfoProto flush_infos = 7;
+ optional int32 events_received = 8;
+ optional int32 events_sent = 9;
+ optional int32 events_cache = 10;
+ optional int32 events_dropped = 11;
+ optional int32 total_acks_needed = 12;
+ optional int32 total_acks_received = 13;
+}
+
+// Proto dump of android::SensorService::SensorRegistrationInfo
+message SensorRegistrationInfoProto {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional int64 timestamp_sec = 1;
+ optional int32 sensor_handle = 2;
+ optional string package_name = 3;
+ optional int32 pid = 4;
+ optional int32 uid = 5;
+ optional int64 sampling_rate_us = 6;
+ optional int64 max_report_latency_us = 7;
+ optional bool activated = 8;
+}
diff --git a/core/proto/android/stats/devicepolicy/device_policy_enums.proto b/core/proto/android/stats/devicepolicy/device_policy_enums.proto
index 0f03e69e6c93..d1392a5e0f31 100644
--- a/core/proto/android/stats/devicepolicy/device_policy_enums.proto
+++ b/core/proto/android/stats/devicepolicy/device_policy_enums.proto
@@ -157,4 +157,6 @@ enum EventId {
SET_FACTORY_RESET_PROTECTION = 130;
SET_COMMON_CRITERIA_MODE = 131;
ALLOW_MODIFICATION_OF_ADMIN_CONFIGURED_NETWORKS = 132;
+ SET_TIME = 133;
+ SET_TIME_ZONE = 134;
}
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 181a32d06233..de0d172ecf04 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -377,7 +377,7 @@
<protected-broadcast android:name="android.net.wifi.action.PASSPOINT_SUBSCRIPTION_REMEDIATION" />
<protected-broadcast android:name="android.net.wifi.action.PASSPOINT_LAUNCH_OSU_VIEW" />
<protected-broadcast android:name="android.net.wifi.action.WIFI_NETWORK_SUGGESTION_POST_CONNECTION" />
- <protected-broadcast android:name="android.net.wifi.action.WIFI_SCAN_AVAILABLE" />
+ <protected-broadcast android:name="android.net.wifi.action.WIFI_SCAN_AVAILABILITY_CHANGED" />
<protected-broadcast android:name="android.net.wifi.supplicant.CONNECTION_CHANGE" />
<protected-broadcast android:name="android.net.wifi.supplicant.STATE_CHANGE" />
<protected-broadcast android:name="android.net.wifi.p2p.STATE_CHANGED" />
@@ -2088,7 +2088,6 @@
Allows reading of detailed information about phone state for special-use applications
such as dialers, carrier applications, or ims applications. -->
<permission android:name="android.permission.READ_PRECISE_PHONE_STATE"
- android:permissionGroup="android.permission-group.UNDEFINED"
android:protectionLevel="signature|privileged" />
<!-- @SystemApi Allows read access to privileged phone state.
@@ -2604,9 +2603,9 @@
<!-- Allows telephony to suggest the time / time zone.
<p>Not for use by third-party applications.
- @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) @hide
+ @hide
-->
- <permission android:name="android.permission.SUGGEST_PHONE_TIME_AND_ZONE"
+ <permission android:name="android.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE"
android:protectionLevel="signature|telephony" />
<!-- Allows applications like settings to suggest the user's manually chosen time / time zone.
@@ -3441,14 +3440,22 @@
<permission android:name="android.permission.NOTIFY_TV_INPUTS"
android:protectionLevel="signature|privileged" />
- <!-- @SystemApi Allows an application to interact with tuner resources through
- Tuner Resource Manager.
+ <!-- This permission is required among systems services when accessing
+ tuner resource management related APIs or information.
<p>Protection level: signature|privileged
<p>Not for use by third-party applications.
@hide -->
<permission android:name="android.permission.TUNER_RESOURCE_ACCESS"
android:protectionLevel="signature|privileged" />
+ <!-- This permission is required by Media Resource Manager Service when
+ accessing its overridePid Api.
+ <p>Protection level: signature
+ <p>Not for use by third-party applications.
+ @hide -->
+ <permission android:name="android.permission.MEDIA_RESOURCE_OVERRIDE_PID"
+ android:protectionLevel="signature" />
+
<!-- Must be required by a {@link android.media.routing.MediaRouteService}
to ensure that only the system can interact with it.
@hide -->
@@ -3672,6 +3679,10 @@
<permission android:name="android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY"
android:protectionLevel="signature|installer" />
+ <!-- @hide Allows an application to upgrade runtime permissions. -->
+ <permission android:name="android.permission.UPGRADE_RUNTIME_PERMISSIONS"
+ android:protectionLevel="signature" />
+
<!-- @SystemApi Allows an application to whitelist restricted permissions
on any of the whitelists.
@hide -->
@@ -4014,9 +4025,9 @@
statistics
<p>Declaring the permission implies intention to use the API and the user of the
device can grant permission through the Settings application.
- <p>Protection level: signature|privileged|development|appop -->
+ <p>Protection level: signature|privileged|development|appop|retailDemo -->
<permission android:name="android.permission.PACKAGE_USAGE_STATS"
- android:protectionLevel="signature|privileged|development|appop" />
+ android:protectionLevel="signature|privileged|development|appop|retailDemo" />
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
<!-- @hide @SystemApi Allows an application to observe usage time of apps. The app can register
@@ -4054,6 +4065,11 @@
<permission android:name="android.permission.STATSCOMPANION"
android:protectionLevel="signature" />
+ <!--@SystemApi @hide Allows an application to register stats pull atom callbacks.
+ <p>Not for use by third-party applications.-->
+ <permission android:name="android.permission.REGISTER_STATS_PULL_ATOM"
+ android:protectionLevel="signature|privileged" />
+
<!-- @SystemApi Allows an application to control the backup and restore process.
<p>Not for use by third-party applications.
@hide pending API council -->
@@ -4234,7 +4250,7 @@
<!-- @SystemApi @TestApi @hide Allows managing apk level rollbacks. -->
<permission android:name="android.permission.MANAGE_ROLLBACKS"
- android:protectionLevel="signature|verifier" />
+ android:protectionLevel="signature|privileged" />
<!-- @TestApi @hide Allows testing apk level rollbacks. -->
<permission android:name="android.permission.TEST_MANAGE_ROLLBACKS"
@@ -4403,6 +4419,10 @@
android.service.chooser.ChooserTargetService}, to ensure that
only the system can bind to it.
<p>Protection level: signature
+
+ @deprecated For publishing direct share targets, please follow the instructions in
+ https://developer.android.com/training/sharing/receive.html#providing-direct-share-targets
+ instead.
-->
<permission android:name="android.permission.BIND_CHOOSER_TARGET_SERVICE"
android:protectionLevel="signature" />
@@ -4861,15 +4881,15 @@
<!-- Allows an app to log compat change usage.
@hide <p>Not for use by third-party applications.</p> -->
<permission android:name="android.permission.LOG_COMPAT_CHANGE"
- android:protectionLevel="signature" />
+ android:protectionLevel="signature|privileged" />
<!-- Allows an app to read compat change config.
@hide <p>Not for use by third-party applications.</p> -->
<permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"
- android:protectionLevel="signature" />
+ android:protectionLevel="signature|privileged" />
<!-- Allows an app to override compat change config.
@hide <p>Not for use by third-party applications.</p> -->
<permission android:name="android.permission.OVERRIDE_COMPAT_CHANGE_CONFIG"
- android:protectionLevel="signature" />
+ android:protectionLevel="signature|privileged" />
<!-- Allows input events to be monitored. Very dangerous! @hide -->
<permission android:name="android.permission.MONITOR_INPUT"
@@ -5081,6 +5101,12 @@
android:process=":ui">
</activity>
+ <activity android:name="com.android.internal.app.BlockedAppActivity"
+ android:theme="@style/Theme.Dialog.Confirmation"
+ android:excludeFromRecents="true"
+ android:process=":ui">
+ </activity>
+
<activity android:name="com.android.settings.notification.NotificationAccessConfirmationActivity"
android:theme="@style/Theme.Dialog.Confirmation"
android:excludeFromRecents="true">
@@ -5302,6 +5328,10 @@
android:permission="android.permission.BIND_JOB_SERVICE" >
</service>
+ <service android:name="com.android.server.blob.BlobStoreIdleJobService"
+ android:permission="android.permission.BIND_JOB_SERVICE">
+ </service>
+
<service android:name="com.android.server.pm.PackageManagerShellCommandDataLoader">
<intent-filter>
<action android:name="android.intent.action.LOAD_DATA" />
diff --git a/core/res/res/drawable-hdpi/sym_app_on_sd_unavailable_icon.png b/core/res/res/drawable-hdpi/sym_app_on_sd_unavailable_icon.png
deleted file mode 100644
index d915d416ff30..000000000000
--- a/core/res/res/drawable-hdpi/sym_app_on_sd_unavailable_icon.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-ldpi/sym_app_on_sd_unavailable_icon.png b/core/res/res/drawable-ldpi/sym_app_on_sd_unavailable_icon.png
deleted file mode 100644
index d88250ae2325..000000000000
--- a/core/res/res/drawable-ldpi/sym_app_on_sd_unavailable_icon.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_app_on_sd_unavailable_icon.png b/core/res/res/drawable-mdpi/sym_app_on_sd_unavailable_icon.png
deleted file mode 100644
index 47306683f374..000000000000
--- a/core/res/res/drawable-mdpi/sym_app_on_sd_unavailable_icon.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/sym_app_on_sd_unavailable_icon.png b/core/res/res/drawable-xhdpi/sym_app_on_sd_unavailable_icon.png
deleted file mode 100644
index e4e6a5a70df2..000000000000
--- a/core/res/res/drawable-xhdpi/sym_app_on_sd_unavailable_icon.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable/ic_open_in_new.xml b/core/res/res/drawable/ic_open_in_new.xml
deleted file mode 100644
index 67378c8d4b8a..000000000000
--- a/core/res/res/drawable/ic_open_in_new.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
- Copyright (C) 2020 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="24dp"
- android:height="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24"
- android:tint="?attr/colorControlNormal">
- <path
- android:pathData="M19,19H5V5h7V3H5c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2v-7h-2v7zM14,3v2h3.59l-9.83,9.83 1.41,1.41L19,6.41V10h2V3h-7z"
- android:fillColor="#FFFFFF"/>
-</vector>
diff --git a/core/res/res/drawable/media_seamless_background.xml b/core/res/res/drawable/media_seamless_background.xml
index aec89e0e8980..9b470cbe096f 100644
--- a/core/res/res/drawable/media_seamless_background.xml
+++ b/core/res/res/drawable/media_seamless_background.xml
@@ -20,7 +20,7 @@
<item android:id="@android:id/background">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#1f000000"/>
- <corners android:radius="20dp"/>
+ <corners android:radius="24dp"/>
</shape>
</item>
</ripple>
diff --git a/core/res/res/drawable/sym_app_on_sd_unavailable_icon.xml b/core/res/res/drawable/sym_app_on_sd_unavailable_icon.xml
new file mode 100644
index 000000000000..50f15cab1814
--- /dev/null
+++ b/core/res/res/drawable/sym_app_on_sd_unavailable_icon.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/sym_def_app_icon_background" />
+ <foreground >
+ <vector
+ android:height="108dp"
+ android:width="108dp"
+ android:viewportHeight="108.0"
+ android:viewportWidth="108.0">
+ <path android:fillColor="#202124" android:pathData="
+M68,54h-7.25L54,60.75V76c0,2.2,1.8,4,4,4h10c2.2,0,4-1.8,4-4V58C72,55.8,70.2,54,68,54z"/>
+
+ <path android:fillColor="#FFFFFF" android:pathData="
+M64.59,34.48l3.9-3.9c0.6-0.6,0.6-1.53,0-2.13c-0.6-0.6-1.53-0.6-2.13,0l-4.44,4.44
+C59.55,31.69,56.85,31,54,31c-2.88,0-5.58,0.69-7.98,1.89l-4.47-4.44c-0.6-0.6-1.53-0.6-2.13,0c-0.6,0.6-0.6,1.53,0,2.13l3.93,3.93
+C38.91,37.78,36,43.03,36,49h36C72,43.03,69.09,37.75,64.59,34.48z M48,43h-3v-3h3V43z M63,43h-3v-3h3V43z
+
+M52,76.01C52,76,52,76,52,76.01l0-15.26v-0.83l0,0v-0.01h0.01l0.58-0.58l6.75-6.75L59.92,52v0H40
+c-2.21,0-4,1.79-4,4v20c0,2.21,1.79,4,4,4h12V76.01z
+
+M66.84,68.75h-2.81v6.75h2.81c0.93,0,1.69-0.75,1.69-1.69v-3.38C68.52,69.5,67.77,68.75,66.84,68.75z
+M66.84,73.81h-1.12v-3.38h1.12V73.81z
+
+M63.02,70.16h-3.09v1.27h1.97c0.62,0,1.12,0.64,1.12,1.26v1.69c0,0.62-0.51,1.12-1.12,1.12h-3.38v-1.41
+h3.09v-1.27h-1.96c-0.62,0-1.12-0.64-1.12-1.26v-1.69c0-0.62,0.51-1.12,1.12-1.12h3.36V70.16z"/>
+
+ <path android:fillColor="#FFE082" android:pathData="
+M 59 58.5 h 2.5 v 4.5 h -2.5z
+M 62.5 58.5 h 2.5 v 4.5 h -2.5z
+M 66 58.5 h 2.5 v 4.5 h -2.5z"/>
+ </vector>
+ </foreground>
+</adaptive-icon>
diff --git a/core/res/res/layout/accessibility_button_chooser_item.xml b/core/res/res/layout/accessibility_button_chooser_item.xml
index d19e313055ae..d6fd7aa30e6e 100644
--- a/core/res/res/layout/accessibility_button_chooser_item.xml
+++ b/core/res/res/layout/accessibility_button_chooser_item.xml
@@ -20,6 +20,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:clickable="true"
android:gravity="center"
android:paddingStart="16dp"
android:paddingEnd="16dp"
diff --git a/core/res/res/mipmap-hdpi/sym_app_on_sd_unavailable_icon.png b/core/res/res/mipmap-hdpi/sym_app_on_sd_unavailable_icon.png
deleted file mode 100644
index d915d416ff30..000000000000
--- a/core/res/res/mipmap-hdpi/sym_app_on_sd_unavailable_icon.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/mipmap-ldpi/sym_app_on_sd_unavailable_icon.png b/core/res/res/mipmap-ldpi/sym_app_on_sd_unavailable_icon.png
deleted file mode 100644
index d88250ae2325..000000000000
--- a/core/res/res/mipmap-ldpi/sym_app_on_sd_unavailable_icon.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/mipmap-mdpi/sym_app_on_sd_unavailable_icon.png b/core/res/res/mipmap-mdpi/sym_app_on_sd_unavailable_icon.png
deleted file mode 100644
index 47306683f374..000000000000
--- a/core/res/res/mipmap-mdpi/sym_app_on_sd_unavailable_icon.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index c34a485bc7a9..d6c5a1379a58 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Jou toestel sal uitgevee word"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Die administrasieprogram kan nie gebruik word nie. Jou toestel sal nou uitgevee word.\n\nKontak jou organisasie se administrateur as jy vrae het."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Druk is gedeaktiveer deur <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Persoonlike programme is deur \'n administrateur opgeskort"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tik hier om voldoening aan beleid te kontroleer."</string>
<string name="me" msgid="6207584824693813140">"Ek"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet-opsies"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV-opsies"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Jy het jou ontsluitpatroon <xliff:g id="NUMBER_0">%1$d</xliff:g> keer verkeerdelik geteken. Na nog <xliff:g id="NUMBER_1">%2$d</xliff:g> onsuksesvolle pogings, sal jy gevra word om jou foon te ontsluit deur middel van \'n e-posrekening.\n\n Probeer weer oor <xliff:g id="NUMBER_2">%3$d</xliff:g> sekondes."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Verwyder"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Die voorgronddiens wat in die agtergrond begin het vanaf <xliff:g id="PACKAGENAME">%1$s</xliff:g> sal nie ingebruik-toestemming hê in toekomstige R-bouweergawes nie. Raadpleeg asseblief go/r-bg-fgs-restriction en dien \'n foutverslag in."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Verhoog volume bo aanbevole vlak?\n\nOm lang tydperke teen hoë volume te luister, kan jou gehoor beskadig."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Gebruik toeganklikheidkortpad?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Wanneer die kortpad aan is, sal \'n toeganklikheidkenmerk begin word as albei volumeknoppies 3 sekondes lank gedruk word.\n\n Bestaande toeganklikheidkenmerk:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Jy kan die kenmerk in Instellings &gt; Toeganklikheid verander."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Program is nie beskikbaar nie"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> is nie nou onmiddellik beskikbaar nie. Dit word bestuur deur <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Kom meer te wete"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Hervat program"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Skakel werkprofiel aan?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Jou werkprogramme, kennisgewings, data en ander werkprofielkenmerke sal aangeskakel word"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Skakel aan"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Wissel verdeelde skerm"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Sluitskerm"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Skermkiekie"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Toeganklikheid-kieslys"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> se onderskrifbalk."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Persoonlik"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Werk"</string>
</resources>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 23e6ccdbd87f..e9409fbf92ed 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"የእርስዎ መሣሪያ ይደመሰሳል"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"የአስተዳዳሪ መተግበሪያ ስራ ላይ ሊውል አይችልም። የእርስዎን መሣሪያ አሁን ይደመሰሳል።\n\nጥያቄዎች ካለዎት የድርጅትዎን አስተዳዳሪ ያነጋግሩ።"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"ማተም በ<xliff:g id="OWNER_APP">%s</xliff:g> ተሰናክሏል።"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"የግል መተግበሪያዎች በአስተዳዳሪ ታግዷል"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"የመመሪያ ተገዥነትን ለመፈተሽ እዚህ ላይ መለያ ያድርጉ።"</string>
<string name="me" msgid="6207584824693813140">"እኔ"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"የጡባዊ አማራጮች"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV አማራጮች"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"የመክፈቻ ስርዓተ ጥለቱን <xliff:g id="NUMBER_0">%1$d</xliff:g> ጊዜ በትክክል አልሳሉትም። ከ<xliff:g id="NUMBER_1">%2$d</xliff:g> ተጨማሪ ያልተሳኩ ሙከራዎች በኋላ የኢሜይል መለያ ተጠቅመው ስልክዎን እንዲከፍቱ ይጠየቃሉ።\n\nእባክዎ ከ<xliff:g id="NUMBER_2">%3$d</xliff:g> ሰከንዶች በኋላ እንደገና ይሞክሩ።"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"አስወግድ"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"ዳራው ከ<xliff:g id="PACKAGENAME">%1$s</xliff:g> የጀመረው የፊት አገልግሎት ወደፊት በሚኖሩት R ግንቦች ላይ ጥቅም ላይ እየዋለ ፈቃድ አይኖረውም። እባክዎ go/r-bg-fgs-restriction እና ፋይል ሳንካ ሪፖርትን ይመልከቱ።"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ድምጹ ከሚመከረው መጠን በላይ ከፍ ይበል?\n\nበከፍተኛ ድምጽ ለረጅም ጊዜ ማዳመጥ ጆሮዎን ሊጎዳው ይችላል።"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"የተደራሽነት አቋራጭ ጥቅም ላይ ይዋል?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"አቋራጩ ሲበራ ሁለቱንም የድምፅ አዝራሮች ለ3 ሰከንዶች ተጭኖ መቆየት የተደራሽነት ባህሪን ያስጀምረዋል።\n\n አሁን ያለ የተደራሽነት ባህሪ፦\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n ባህሪውን በቅንብሮች &gt; ተደራሽነት ውስጥ ሊለውጡት ይችላሉ።"</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"መተግበሪያን ላፍታ እንዳይቆም አድርግ"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"የስራ መገለጫ ይብራ?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"የእርስዎ የስራ መተግበሪያዎች፣ ማሳወቂያዎች፣ ውሂብ እና ሌሎች የስራ መገለጫ ባህሪያት ይበራሉ"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"አብራ"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"የተከፈለ ማያን ቀያይር"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"የማያ ገጽ ቁልፍ"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"ቅጽበታዊ ገጽ እይታ"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"የተደራሽነት ምናሌ"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"የ<xliff:g id="APP_NAME">%1$s</xliff:g> የሥዕል ገላጭ ጽሑፍ አሞሌ።"</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ወደ የRESTRICTED ባልዲ ተከትቷል"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"የግል"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"ሥራ"</string>
</resources>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 80c04ebee695..23ffd7b6594a 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -202,10 +202,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"سيتم محو بيانات جهازك."</string>
<string name="factory_reset_message" msgid="2657049595153992213">"تعذّر استخدام تطبيق المشرف. سيتم محو بيانات جهازك الآن.\n\nإذا كانت لديك أسئلة، اتصل بمشرف مؤسستك."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"تم إيقاف الطباعة بواسطة <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"علّق المشرف عمل التطبيقات الشخصية"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"انقر هنا للتحقّق من الالتزام بالسياسات."</string>
<string name="me" msgid="6207584824693813140">"أنا"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"خيارات الجهاز اللوحي"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"‏خيارات Android TV"</string>
@@ -1701,8 +1699,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"لقد رسمت نقش فتح القفل بشكل غير صحيح <xliff:g id="NUMBER_0">%1$d</xliff:g> مرة. بعد إجراء <xliff:g id="NUMBER_1">%2$d</xliff:g> من المحاولات غير الناجحة الأخرى، ستُطالب بإلغاء تأمين الهاتف باستخدام حساب بريد إلكتروني لإلغاء تأمين الهاتف.\n\n أعد المحاولة خلال <xliff:g id="NUMBER_2">%3$d</xliff:g> ثانية."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"إزالة"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"‏لن يتم منح إذن الوصول إلى الموقع الجغرافي أثناء الاستخدام للخدمات التي تعمل في المقدّمة من <xliff:g id="PACKAGENAME">%1$s</xliff:g> والتي تبدأ من الخلفية في إصدارات R القادمة. يُرجى مراجعة go/r-bg-fgs-restriction وتقديم تقرير خطأ."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"هل تريد رفع مستوى الصوت فوق المستوى الموصى به؟\n\nقد يضر سماع صوت عالٍ لفترات طويلة بسمعك."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"هل تريد استخدام اختصار \"سهولة الاستخدام\"؟"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"عند تشغيل الاختصار، يؤدي الضغط على زرّي مستوى الصوت لمدة 3 ثوانٍ إلى تفعيل ميزة \"سهولة الاستخدام\".\n\n ميزة \"سهولة الاستخدام\" الحالية:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n يمكنك تغيير الميزة من \"الإعدادات\" &gt; \"سهولة الاستخدام\"."</string>
@@ -1980,8 +1977,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"استئناف تشغيل التطبيق"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"تفعيل الملف الشخصي للعمل؟"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"سيتم تفعيل تطبيقات العمل التي تستخدمها والإشعارات والبيانات وغيرها من ميزات الملف الشخصي للعمل"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"تشغيل"</string>
@@ -2121,7 +2117,7 @@
<string name="mime_type_spreadsheet_ext" msgid="8720173181137254414">"جدول بيانات: <xliff:g id="EXTENSION">%1$s</xliff:g>"</string>
<string name="mime_type_presentation" msgid="1145384236788242075">"عرض تقديمي"</string>
<string name="mime_type_presentation_ext" msgid="8761049335564371468">"عرض تقديمي: <xliff:g id="EXTENSION">%1$s</xliff:g>"</string>
- <string name="bluetooth_airplane_mode_toast" msgid="2066399056595768554">"سيظل البلوتوث مفعَّلاً أثناء تفعيل \"وضع الطائرة\"."</string>
+ <string name="bluetooth_airplane_mode_toast" msgid="2066399056595768554">"سيظل البلوتوث مفعَّلاً أثناء استخدام \"وضع الطائرة\"."</string>
<string name="car_loading_profile" msgid="8219978381196748070">"جارٍ التحميل"</string>
<plurals name="file_count" formatted="false" msgid="7063513834724389247">
<item quantity="zero"><xliff:g id="FILE_NAME_2">%s</xliff:g> و<xliff:g id="COUNT_3">%d</xliff:g> ملف</item>
@@ -2143,12 +2139,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"تبديل \"تقسيم الشاشة\""</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"شاشة القفل"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"لقطة شاشة"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"قائمة \"سهولة الاستخدام\""</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"شريط الشرح لتطبيق <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"تم وضع <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> في الحزمة \"محظورة\"."</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"شخصي"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"عمل"</string>
</resources>
diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml
index 73e32b85c224..a09c377d45b9 100644
--- a/core/res/res/values-as/strings.xml
+++ b/core/res/res/values-as/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"আপোনাৰ ডিভাইচৰ ডেটা মচা হ\'ব"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"এই প্ৰশাসক এপটো ব্যৱহাৰ কৰিব নোৱাৰি। এতিয়া আপোনাৰ ডিভাইচটোৰ ডেটা মচা হ\'ব।\n\nআপোনাৰ কিবা প্ৰশ্ন থাকিলে আপোনাৰ প্ৰতিষ্ঠানৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"প্ৰিণ্ট কৰা কাৰ্য <xliff:g id="OWNER_APP">%s</xliff:g>এ অক্ষম কৰি ৰাখিছে।"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ব্যক্তিগত এপ্‌সমূহ এগৰাকী প্ৰশাসকে নিলম্বিত কৰিছে"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"নীতি মানি চলেনে নাই পৰীক্ষা কৰিবলৈ ইয়াত টিপক।"</string>
<string name="me" msgid="6207584824693813140">"মই"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"টে\'বলেটৰ বিকল্পসমূহ"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TVৰ বিকল্পসমূহ"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"আপুনি আপোনাৰ ল\'ক খোলাৰ আৰ্হিটো <xliff:g id="NUMBER_0">%1$d</xliff:g>বাৰ ভুলকৈ আঁকিছে। <xliff:g id="NUMBER_1">%2$d</xliff:g>তকৈ বেছি বাৰ ভুল আৰ্হি আঁকিলে আপোনাৰ ফ\'নটো কোনো একাউণ্টৰ জৰিয়তে আনলক কৰিবলৈ কোৱা হ\'ব।\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ছেকেণ্ডৰ পিছত আকৌ চেষ্টা কৰক।"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"আঁতৰাওক"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"নেপথ্যই <xliff:g id="PACKAGENAME">%1$s</xliff:g>ৰ পৰা আৰম্ভ কৰা অগ্ৰভূমিৰ সেৱাটোৰ ভৱিষ্যতৰ R বিল্ডসমূহত ব্যৱহাৰ হৈ থকা সম্পৰ্কীয় অনুমতি নাথাকিব। অনুগ্ৰহ কৰি go/r-bg-fgs-restriction চাওক আৰু এটা বাগৰিপ\'ৰ্ট ফাইল কৰক।"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"অনুমোদিত স্তৰতকৈ ওপৰলৈ ভলিউম বঢ়াব নেকি?\n\nদীৰ্ঘ সময়ৰ বাবে উচ্চ ভলিউমত শুনাৰ ফলত শ্ৰৱণ ক্ষমতাৰ ক্ষতি হ\'ব পাৰে।"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"দিব্যাংগসকলৰ সুবিধাৰ শ্বৰ্টকাট ব্যৱহাৰ কৰেনে?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"শ্বৰ্টকাট অন হৈ থকাৰ সময়ত দুয়োটা ভলিউম বুটামত ৩ ছেকেণ্ডৰ বাবে ছাপ দি থাকিলে দিব্যাংগসকলৰ বাবে থকা সুবিধা এটা আৰম্ভ হ\'ব। \n\n চলিত দিব্যাংগসকলৰ সুবিধা:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n আপুনি এই সুবিধাটো ছেটিংসমূহ &gt; দিব্যাংগসকলৰ বাবে সুবিধা-লৈ গৈ সলনি কৰিব পাৰে।"</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"এপ্‌ আনপজ কৰক"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"কৰ্মস্থানৰ প্ৰ\'ফাইল অন কৰিবনে?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"আপোনাৰ কৰ্মস্থানৰ এপসমূহ, জাননীসমূহ, ডেটা আৰু কৰ্মস্থানৰ প্ৰ\'ফাইলৰ অইন সুবিধাসমূহ অন কৰা হ\'ব"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"অন কৰক"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"বিভাজিত স্ক্ৰীন ট’গল কৰক"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"লক স্ক্ৰীন"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"স্ক্ৰীণশ্বট"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"সাধ্য সুবিধাৰ মেনু"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>ৰ কেপশ্বন বাৰ।"</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>ক সীমাবদ্ধ বাকেটটোত ৰখা হৈছে"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"ব্যক্তিগত"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"কৰ্মস্থান"</string>
</resources>
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index c894c29956dc..b1209b100633 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Cihazınız təmizlənəcəkdir"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Admin tətbiqini istifadə etmək mümkün deyil. Cihaz indi təmizlənəcək.\n\nSualınız varsa, təşkilatın admini ilə əlaqə saxlayın."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Çap <xliff:g id="OWNER_APP">%s</xliff:g> tərəfindən deaktiv edildi."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Şəxsi tətbiqlər admin tərəfindən dayandırılıb"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Siyasətə uyğunluğu yoxlamaq üçün bura toxunun."</string>
<string name="me" msgid="6207584824693813140">"Mən"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Planşet seçimləri"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV seçimləri"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Siz artıq modeli <xliff:g id="NUMBER_0">%1$d</xliff:g> dəfə yanlış daxil etmisiniz.<xliff:g id="NUMBER_1">%2$d</xliff:g> dəfə də yanlış daxil etsəniz, telefonun kilidinin açılması üçün elektron poçt ünvanınız tələb olunacaq.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> saniyə ərzində yenidən cəhd edin."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" - "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Yığışdır"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Arxa fonda başladılan <xliff:g id="PACKAGENAME">%1$s</xliff:g> üzrə ön plan xidmətinin gələcək R versiyalarında \"istifadə zamanı\" icazəsi olmayacaq. go/r-bg-fgs-restriction bölməsinə keçin və baq hesabatı göndərin."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Səsin həcmi tövsiyə olunan səviyyədən artıq olsun?\n\nYüksək səsi uzun zaman dinləmək eşitmə qabiliyyətinizə zərər vura bilər."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Əlçatımlılıq Qısayolu istifadə edilsin?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Qısayol aktiv olduqda hər iki səs düyməsinə 3 saniyə basıb saxlamaqla əlçatımlılıq funksiyası işə başlayacaq.\n\n Cari əlçatımlılıq funksiyası:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Funksiyanı Ayarlar və Əçatımlılıq bölməsində dəyişə bilərsiniz."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Tətbiq əlçatmazdır"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> hazırda əlçatan deyil. Bunu <xliff:g id="APP_NAME_1">%2$s</xliff:g> idarə edir."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Ətraflı məlumat"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Tətbiqi davam etdirin"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"İş profili aktiv edilsin?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"İş tətbiqləri, bildirişləri, data və digər iş profili funksiyaları aktiv ediləcək"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Aktivləşdirin"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Bölünmüş Ekrana keçid"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Kilid Ekranı"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Ekran şəkli"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Əlçatımlılıq Menyusu"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> başlıq paneli."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Şəxsi"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"İş"</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 909c31558e18..5600882ca16f 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -196,10 +196,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Uređaj će biti obrisan"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Ne možete da koristite ovu aplikaciju za administratore. Uređaj će sada biti obrisan.\n\nAko imate pitanja, kontaktirajte administratora organizacije."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Štampanje je onemogućila aplikacija <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Administrator je suspendovao lične aplikacije"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Dodirnite ovde da biste proverili usklađenost sa smernicama."</string>
<string name="me" msgid="6207584824693813140">"Ja"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opcije za tablet"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opcije Android TV-a"</string>
@@ -1635,8 +1633,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Nacrtali ste šablon za otključavanje netačno <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Posle još <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate telefon pomoću naloga e-pošte.\n\nProbajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunde/i."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Ukloni"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Usluga u prvom planu sa <xliff:g id="PACKAGENAME">%1$s</xliff:g> koja je pokrenuta u pozadini neće imati dozvolu tokom korišćenja u budućim R verzijama. Posetite go/r-bg-fgs-restriction i pošaljite izveštaj o grešci."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Želite da pojačate zvuk iznad preporučenog nivoa?\n\nSlušanje glasne muzike duže vreme može da vam ošteti sluh."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Želite li da koristite prečicu za pristupačnost?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Kada je prečica uključena, pritisnite oba dugmeta za jačinu zvuka da biste pokrenuli funkciju pristupačnosti.\n\n Aktuelna funkcija pristupačnosti:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Možete da promenite funkciju u odeljku Podešavanja &gt; Pristupačnost."</string>
@@ -1884,8 +1881,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Aplikacija nije dostupna"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"Aplikacija <xliff:g id="APP_NAME_0">%1$s</xliff:g> trenutno nije dostupna. <xliff:g id="APP_NAME_1">%2$s</xliff:g> upravlja dostupnošću."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Saznajte više"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Opozovi pauziranje aplikacije"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Da uključimo profil za Work?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Uključiće se poslovne aplikacije, obaveštenja, podaci i druge funkcije profila za Work"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Uključi"</string>
@@ -2041,12 +2037,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Uključite/isključite podeljeni ekran"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Zaključani ekran"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Snimak ekrana"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Meni Pristupačnost"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Traka sa naslovima aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Lični"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Poslovni"</string>
</resources>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 19dcf927b74d..fb80e4b043b9 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -198,10 +198,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Даныя вашай прылады будуць сцерты"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Немагчыма выкарыстоўваць праграму адміністравання. Звесткі на вашай прыладзе будуць выдалены.\n\nКалі ў вас ёсць пытанні, звярніцеся да адміністратара арганізацыі."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Друк адключаны ўладальнікам праграмы <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Асабістыя праграмы заблакіраваны адміністратарам"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Націсніце тут, каб упэўніцца ў адпаведнасці правілам."</string>
<string name="me" msgid="6207584824693813140">"Я"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Параметры планшэта"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Параметры Android TV"</string>
@@ -1657,8 +1655,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Вы няправільна ўвялі графічны ключ разблакiроўкi пэўную колькасць разоў: <xliff:g id="NUMBER_0">%1$d</xliff:g>. Пасля яшчэ некалькiх няўдалых спроб (<xliff:g id="NUMBER_1">%2$d</xliff:g>) вам будзе прапанавана разблакiраваць тэлефон, увайшоўшы ў Google.\n\n Паўтарыце спробу праз <xliff:g id="NUMBER_2">%3$d</xliff:g> с."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Выдалiць"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Запушчаны ў фонавым рэжыме асноўны сэрвіс з пакета \"<xliff:g id="PACKAGENAME">%1$s</xliff:g>\" не будзе мець дазволу while-in-use у будучых зборках на мове R. Наведайце сайт go/r-bg-fgs-restriction і адпраўце справаздачу пра памылку."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Павялiчыць гук вышэй рэкамендаванага ўзроўню?\n\nДоўгае праслухоўванне музыкi на вялiкай гучнасцi можа пашкодзiць ваш слых."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Выкарыстоўваць камбінацыю хуткага доступу для спецыяльных магчымасцей?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Калі камбінацыя хуткага доступу ўключана, вы можаце націснуць абедзве кнопкі гучнасці і ўтрымліваць іх 3 секунды, каб уключыць функцыю спецыяльных магчымасцей.\n\n Бягучая функцыя спецыяльных магчымасцей:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Вы можаце змяніць гэту функцыю ў меню \"Налады &gt; Спецыяльныя магчымасці\"."</string>
@@ -1916,8 +1913,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Скасаваць прыпыненне для праграмы"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Уключыць працоўны профіль?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Будуць уключаны вашы рабочыя праграмы, апавяшчэнні, даныя і іншыя функцыі працоўнага профілю"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Уключыць"</string>
@@ -2075,12 +2071,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Пераключальнік падзеленага экрана"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Экран блакіроўкі"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Здымак экрана"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Меню спецыяльных магчымасцей"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Панэль субцітраў праграмы \"<xliff:g id="APP_NAME">%1$s</xliff:g>\"."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакет \"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>\" дададзены ў АБМЕЖАВАНУЮ групу"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Асабістыя"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Працоўныя"</string>
</resources>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 8a687666ac9b..2892853f0923 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Данните на устройството ви ще бъдат изтрити"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Приложението за администриране не може да се използва. Сега данните на устройството ви ще бъдат изтрити.\n\nАко имате въпроси, свържете се с администратора на организацията си."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Отпечатването е деактивиранo от <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Личните приложения може да са спрени от администратора"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Докоснете тук, за да проверите дали правилата ст спазват."</string>
<string name="me" msgid="6207584824693813140">"Аз"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Опции за таблета"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Опции за Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Начертахте неправилно фигурата си за отключване <xliff:g id="NUMBER_0">%1$d</xliff:g> пъти. След още <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешни опита ще бъдете помолени да отключите телефона посредством имейл адрес.\n\n Опитайте отново след <xliff:g id="NUMBER_2">%3$d</xliff:g> секунди."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Премахване"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Задният план, който е стартирал услуга на преден план от <xliff:g id="PACKAGENAME">%1$s</xliff:g>, няма да има разрешение при използване в бъдещите компилации R. Моля, вижте go/r-bg-fgs-restriction и подайте сигнал за програмна грешка."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Да се увеличи ли силата на звука над препоръчителното ниво?\n\nПродължителното слушане при висока сила на звука може да увреди слуха ви."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Искате ли да използвате пряк път към функцията за достъпност?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Когато прекият път е включен, можете да стартирате дадена функция за достъпност, като натиснете двата бутона за промяна на силата на звука и ги задържите 3 секунди.\n\n Текущата функция за достъпност е:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Можете да промените функцията от „Настройки“ &gt; „Достъпност“."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Отмяна на паузата за приложението"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Вкл. на служ. потр. профил?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Служебните ви приложения, известия и данни, както и другите функции на служебния потребителски профил ще бъдат включени"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Включване"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Превключване на разделения екран"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Заключен екран"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Екранна снимка"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Меню за достъпност"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Лента за надписи на <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакетът <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> е поставен в ОГРАНИЧЕНИЯ контейнер"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Лични"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Служебни"</string>
</resources>
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index 9ca383d30b04..4c95081cc15d 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"আপনার ডিভাইসটি মুছে ফেলা হবে"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"অ্যাডমিন অ্যাপটি ব্যবহার করা যাবে না। আপনার ডিভাইসে থাকা সবকিছু এখন মুছে ফেলা হবে।\n\nকোনও প্রশ্ন থাকলে আপনার প্রতিষ্ঠানের অ্যাডমিনের সাথে যোগাযোগ করুন।"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> প্রিন্টিং বন্ধ রেখেছে।"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"অ্যাডমিন ব্যক্তিগত অ্যাপ সাসপেন্ড করেছেন"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"নীতি মেনে চলা হচ্ছে কিনা তা যাচাই করতে এখানে ট্যাপ করুন।"</string>
<string name="me" msgid="6207584824693813140">"আমাকে"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"ট্যাবলেট বিকল্পগুলি"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV-র বিকল্প"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"আপনি আপনার আনলকের প্যাটার্ন আঁকার ক্ষেত্রে <xliff:g id="NUMBER_0">%1$d</xliff:g> বার ভুল করেছেন৷ আর <xliff:g id="NUMBER_1">%2$d</xliff:g> বার অসফল প্রচেষ্টা করা হলে আপনাকে একটি ইমেল অ্যাকাউন্ট মারফত আপনার ফোন আনলক করতে বলা হবে৷\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> সেকেন্ডের মধ্যে আবার চেষ্টা করুন৷"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"সরান"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> থেকে শুরু হওয়া ফোরগ্রাউন্ড পরিষেবাটির ভবিষ্যতে আর বিল্ডগুলিতে ব্যবহারের অনুমতি নেই। go/r-bg-fgs-restriction দেখুন এবং বাগরিপোর্ট জমা দিন।"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"প্রস্তাবিত স্তরের চেয়ে বেশি উঁচুতে ভলিউম বাড়াবেন?\n\nউঁচু ভলিউমে বেশি সময় ধরে কিছু শুনলে আপনার শ্রবনশক্তির ক্ষতি হতে পারে।"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"অ্যাক্সেসযোগ্যতা শর্টকাট ব্যবহার করবেন?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"শর্টকাটটি চালু থাকলে দুটি ভলিউম বোতাম একসাথে ৩ সেকেন্ড টিপে ধরে রাখলে একটি অ্যাকসেসিবিলিটি বৈশিষ্ট্য চালু হবে।\n\n বর্তমান অ্যাকসেসিবিলিটি বৈশিষ্ট্য:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n আপনি এই বৈশিষ্ট্যটি সেটিংস &gt; অ্যাকসেসিবিলিটিতে গিয়ে পরিবর্তন করতে পারবেন।"</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"অ্যাপ আবার চালু করুন"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"কাজের প্রোফাইল চালু করবেন?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"আপনার কাজের অ্যাপ, বিজ্ঞপ্তি, ডেটা এবং কাজের প্রোফাইলের অন্যান্য বৈশিষ্ট্য চালু করা হবে"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"চালু করুন"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"স্প্লিট স্ক্রিন টগল করুন"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"লক স্ক্রিন"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"স্ক্রিনশট"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"অ্যাক্সেসিবিলিটি মেনু"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>-এর ক্যাপশন বার।"</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> সীমাবদ্ধ গ্রুপে অন্তর্ভুক্ত করা হয়েছে"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"ব্যক্তিগত"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"অফিস"</string>
</resources>
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index 5f83aa427eef..eaa212dccf2f 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -196,10 +196,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Uređaj će biti izbrisan"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Nije moguće koristiti aplikaciju administratora. Potpuno će se izbrisati podaci na vašem uređaju.\n\nAko imate pitanja, obratite se administratoru svoje organizacije."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Štampanje je onemogućila aplikacija <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Lične aplikacije je obustavio administrator"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Dodirnite ovdje da provjerite usklađenost s pravilima."</string>
<string name="me" msgid="6207584824693813140">"Ja"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opcije tableta"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opcije Android TV uređaja"</string>
@@ -1637,8 +1635,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Pogrešno ste nacrtali uzorak za otključavanje <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Ako napravite još <xliff:g id="NUMBER_1">%2$d</xliff:g> pokušaja bez uspjeha, od vas će se tražiti da otključate telefon pomoću e-pošte. \n\n Pokušajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Ukloni"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Usluge iz prvog plana započete u pozadini s web lokacije <xliff:g id="PACKAGENAME">%1$s</xliff:g> neće imati odobrenje za funkciju \"za vrijeme korištenja\" u budućim R verzijama. Pogledajte go/r-bg-fgs-restriction i podnesite izvještaj o greškama."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Želite li pojačati zvuk iznad preporučenog nivoa?\n\nDužim slušanjem glasnog zvuka možete oštetiti sluh."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Želite li koristiti Prečicu za pristupačnost?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Kada je prečica uključena, pritiskom na oba dugmeta za podešavanje jačine zvuka u trajanju od 3 sekunde pokrenut će se funkcija za pristupačnost.\n\n Trenutna funkcija za pristupačnost je:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Funkciju možete promijeniti ako odete u Postavke &gt; Pristupačnost."</string>
@@ -1886,8 +1883,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Aplikacija nije dostupna"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"Aplikacija <xliff:g id="APP_NAME_0">%1$s</xliff:g> trenutno nije dostupna. Ovim upravlja aplikacija <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Saznajte više"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Ponovo aktiviraj aplikaciju"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Uključiti radni profil?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Uključit će se poslovne aplikacije, obavještenja, podaci i druge funkcije radnog profila"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Uključi"</string>
@@ -2024,7 +2020,7 @@
<string name="mime_type_spreadsheet_ext" msgid="8720173181137254414">"<xliff:g id="EXTENSION">%1$s</xliff:g> tabela"</string>
<string name="mime_type_presentation" msgid="1145384236788242075">"Prezentacija"</string>
<string name="mime_type_presentation_ext" msgid="8761049335564371468">"<xliff:g id="EXTENSION">%1$s</xliff:g> prezentacija"</string>
- <string name="bluetooth_airplane_mode_toast" msgid="2066399056595768554">"Bluetooth će ostati uključen i u načinu rada u avionu"</string>
+ <string name="bluetooth_airplane_mode_toast" msgid="2066399056595768554">"Bluetooth će ostati uključen tokom načina rada u avionu"</string>
<string name="car_loading_profile" msgid="8219978381196748070">"Učitavanje"</string>
<plurals name="file_count" formatted="false" msgid="7063513834724389247">
<item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> fajl</item>
@@ -2043,12 +2039,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Uključi/isključi podijeljeni ekran"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Zaključavanje ekrana"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Snimak ekrana"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Meni za pristupačnost"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Traka za natpis aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Lično"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Posao"</string>
</resources>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index 930065b02883..0b58caea91b8 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"El contingut del dispositiu s\'esborrarà"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"No es pot utilitzar l\'aplicació d\'administració. S\'esborraran les dades del dispositiu.\n\nSi tens cap dubte, contacta amb l\'administrador de la teva organització."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ha desactivat la impressió."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Un administrador ha suspès les aplicacions personals"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Toca per comprovar si es compleix la política."</string>
<string name="me" msgid="6207584824693813140">"Mi"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opcions de la tauleta"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opcions d\'Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Has dibuixat el patró de desbloqueig <xliff:g id="NUMBER_0">%1$d</xliff:g> vegades de manera incorrecta. Si falles <xliff:g id="NUMBER_1">%2$d</xliff:g> vegades més, se\'t demanarà que desbloquegis el telèfon amb un compte de correu electrònic.\n\n Torna-ho a provar d\'aquí a <xliff:g id="NUMBER_2">%3$d</xliff:g> segons."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Elimina"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"El servei en primer pla (<xliff:g id="PACKAGENAME">%1$s</xliff:g>) iniciat en segon pla no tindrà permís durant l\'ús en compilacions R posteriors. Consulta la pàgina go/r-bg-fgs-restriction i presenta un informe d\'errors."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vols apujar el volum per sobre del nivell recomanat?\n\nSi escoltes música a un volum alt durant períodes llargs, pots danyar-te l\'oïda."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vols fer servir la drecera d\'accessibilitat?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Si la drecera està activada, prem els dos botons de volum durant 3 segons, per iniciar una funció d\'accessibilitat.\n\n Funció d\'accessibilitat actual:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Pots canviar la funció a Configuració &gt; Accessibilitat."</string>
@@ -1852,10 +1849,9 @@
<string name="app_suspended_title" msgid="888873445010322650">"L\'aplicació no està disponible"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> no està disponible en aquests moments. Aquesta opció es gestiona a <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Més informació"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Reactiva l\'aplicació"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Activar el perfil professional?"</string>
- <string name="work_mode_off_message" msgid="8417484421098563803">"S\'activaran les teves aplicacions per a la feina, les notificacions, les dades i altres funcions del perfil professional"</string>
+ <string name="work_mode_off_message" msgid="8417484421098563803">"S\'activaran les teves aplicacions de treball, les notificacions, les dades i altres funcions del perfil professional"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Activa"</string>
<string name="deprecated_target_sdk_message" msgid="5203207875657579953">"Aquesta aplicació es va crear per a una versió antiga d\'Android i pot ser que no funcioni correctament. Prova de cercar actualitzacions o contacta amb el desenvolupador."</string>
<string name="deprecated_target_sdk_app_store" msgid="8456784048558808909">"Cerca actualitzacions"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Commuta Pantalla dividida"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Pantalla de bloqueig"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Captura de pantalla"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menú d\'accessibilitat"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de títol de l\'aplicació <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Feina"</string>
</resources>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 2c017dd52ee1..5874c2493041 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -198,10 +198,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Zařízení bude vymazáno"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Aplikaci pro správu nelze použít. Zařízení teď bude vymazáno.\n\nV případě dotazů vám pomůže administrátor organizace."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Aplikace <xliff:g id="OWNER_APP">%s</xliff:g> tisk zakazuje."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Osobní aplikace byly pozastaveny administrátorem"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Klepnutím sem zkontrolujete soulad se zásadami."</string>
<string name="me" msgid="6207584824693813140">"Já"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Možnosti tabletu"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Možnosti zařízení Android TV"</string>
@@ -1657,8 +1655,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Již <xliff:g id="NUMBER_0">%1$d</xliff:g>krát jste nesprávně nakreslili své heslo odemknutí. Po <xliff:g id="NUMBER_1">%2$d</xliff:g> dalších neúspěšných pokusech budete požádáni o odemčení telefonu pomocí e-mailového účtu.\n\n Zkuste to znovu za <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Odebrat"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Služba v popředí z balíčku <xliff:g id="PACKAGENAME">%1$s</xliff:g>, která byla spuštěna na pozadí, v budoucích sestavenách typu R nebude mít oprávnění ke spuštění při používání. Přejděte na adresu go/r-bg-fgs-restriction a vyplňte zprávu o chybě."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Zvýšit hlasitost nad doporučenou úroveň?\n\nDlouhodobý poslech hlasitého zvuku může poškodit sluch."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Použít zkratku přístupnosti?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Když je tato zkratka zapnutá, můžete funkci přístupnosti spustit tím, že na tři sekundy podržíte obě tlačítka hlasitosti.\n\n Aktuální funkce přístupnosti:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Funkci můžete změnit v Nastavení &gt; Přístupnost."</string>
@@ -1916,8 +1913,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Aplikace není k dispozici"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"Aplikace <xliff:g id="APP_NAME_0">%1$s</xliff:g> momentálně není dostupná. Tato předvolba se spravuje v aplikaci <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Další informace"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Zrušit pozastavení aplikace"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Zapnout pracovní profil?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Vaše pracovní aplikace, oznámení, data a ostatní funkce pracovního účtu budou zapnuty"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Zapnout"</string>
@@ -2075,12 +2071,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Přepnout rozdělenou obrazovku"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Obrazovka uzamčení"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Snímek obrazovky"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Nabídka usnadnění přístupu"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Popisek aplikace <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Osobní"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Pracovní"</string>
</resources>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 4ebea8947666..eb7ad1b9e48f 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Enheden slettes"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Administrationsappen kan ikke bruges. Enheden vil nu blive ryddet. \n\nKontakt din organisations administrator, hvis du har spørgsmål."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Udskrivning er deaktiveret af <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"En administrator har suspenderet personlige apps."</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tryk her for at tjekke overholdelsen af politikker."</string>
<string name="me" msgid="6207584824693813140">"Mig"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Valgmuligheder for tabletcomputeren"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Valgmuligheder for Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Du har tegnet dit oplåsningsmønster forkert <xliff:g id="NUMBER_0">%1$d</xliff:g> gange. Efter <xliff:g id="NUMBER_1">%2$d</xliff:g> yderligere mislykkede forsøg til vil du blive bedt om at låse din telefon op ved hjælp af en mailkonto.\n\n Prøv igen om <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunder."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Fjern"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Tjenesten i forgrunden fra <xliff:g id="PACKAGENAME">%1$s</xliff:g>, der starter i baggrunden, vil i fremtidige R-builds ikke have tilladelse, mens den er i brug. Se go/r-bg-fgs-restriction, og indsend en fejlrapport."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vil du skrue højere op end det anbefalede lydstyrkeniveau?\n\nDu kan skade hørelsen ved at lytte til meget høj musik over længere tid."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vil du bruge genvejen til Hjælpefunktioner?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Når genvejen er slået til, kan du starte en hjælpefunktion ved at trykke på begge lydstyrkeknapper i tre sekunder.\n\n Nuværende hjælpefunktion:\n<xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Du kan skifte funktion i Indstillinger &gt; Hjælpefunktioner."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Appen er ikke tilgængelig"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> er ikke tilgængelig lige nu. Dette administreres af <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Få flere oplysninger"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Afslut pause for app"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Skal arbejdsprofilen slås til?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Dine arbejdsapps, notifikationer, data og andre funktioner til din arbejdsprofil deaktiveres"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Slå til"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Slå Opdelt skærm til eller fra"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Låseskærm"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Screenshot"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menuen Hjælpefunktioner"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Titellinje for <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personlig"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Arbejde"</string>
</resources>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 6fa0ac1791fa..6b01af1f3b08 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Die Daten auf deinem Gerät werden gelöscht."</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Die Admin-App kann nicht verwendet werden. Die Daten auf deinem Gerät werden nun gelöscht.\n\nBitte wende dich bei Fragen an den Administrator deiner Organisation."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Drucken wurde von <xliff:g id="OWNER_APP">%s</xliff:g> deaktiviert."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Private Apps wurden von einem Administrator gesperrt"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tippe hier, um die Einhaltung der Richtlinie zu prüfen."</string>
<string name="me" msgid="6207584824693813140">"Eigene"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet-Optionen"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV-Optionen"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Du hast dein Entsperrungsmuster <xliff:g id="NUMBER_0">%1$d</xliff:g>-mal falsch gezeichnet. Nach <xliff:g id="NUMBER_1">%2$d</xliff:g> weiteren erfolglosen Versuchen wirst du aufgefordert, dein Telefon mithilfe eines E-Mail-Kontos zu entsperren.\n\n Versuche es in <xliff:g id="NUMBER_2">%3$d</xliff:g> Sekunden erneut."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Entfernen"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Der Dienst im Vordergrund von <xliff:g id="PACKAGENAME">%1$s</xliff:g>, der im Hintergrund gestartet wurde, hat in zukünftigen R-Builds keine Zugriffsberechtigung mehr während der Nutzung. Siehe dazu go/r-bg-fgs-restriction und reiche einen Fehlerbericht ein."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Lautstärke über den Schwellenwert anheben?\n\nWenn du über einen längeren Zeitraum Musik in hoher Lautstärke hörst, kann dies dein Gehör schädigen."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Verknüpfung für Bedienungshilfen verwenden?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Wenn die Verknüpfung aktiviert ist, kannst du die beiden Lautstärketasten drei Sekunden lang gedrückt halten, um eine Bedienungshilfe zu starten.\n\n Aktuelle Bedienungshilfe:\n<xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Du kannst die Bedienungshilfe unter \"Einstellungen\" &gt; \"Bedienungshilfen\" ändern."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"App-Pausierung aufheben"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Arbeitsprofil aktivieren?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Deine geschäftlichen Apps, Benachrichtigungen, Daten und andere Funktionen des Arbeitsprofils werden aktiviert"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Aktivieren"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"\"Bildschirm teilen\" ein-/ausschalten"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Sperrbildschirm"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Screenshot"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menü \"Bedienungshilfen\""</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Untertitelleiste von <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Privat"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Geschäftlich"</string>
</resources>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 81a16f28651c..61ca692aae16 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Η συσκευή σας θα διαγραφεί"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Δεν είναι δυνατή η χρήση της εφαρμογής διαχειριστή. Η συσκευή σας θα διαγραφεί.\n\nΕάν έχετε ερωτήσεις, επικοινωνήστε με τον διαχειριστή του οργανισμού σας."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Η εκτύπωση απενεργοποιήθηκε από τον χρήστη <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Οι προσωπικές εφαρμογές έχουν τεθεί σε αναστολή από έναν διαχειριστή"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Πατήστε εδώ για να ελέγξετε τη συμμόρφωση πολιτικής."</string>
<string name="me" msgid="6207584824693813140">"Για εμένα"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Επιλογές tablet"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Επιλογές Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Σχεδιάσατε το μοτίβο ξεκλειδώματος εσφαλμένα <xliff:g id="NUMBER_0">%1$d</xliff:g> φορές. Μετά από <xliff:g id="NUMBER_1">%2$d</xliff:g> ανεπιτυχείς προσπάθειες ακόμη, θα σας ζητηθεί να ξεκλειδώσετε το τηλέφωνό σας με τη χρήση ενός λογαριασμού ηλεκτρονικού ταχυδρομείου.\n\n Δοκιμάστε ξανά σε <xliff:g id="NUMBER_2">%3$d</xliff:g> δευτερόλεπτα."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Κατάργηση"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Η υπηρεσία στο προσκήνιο που ξεκίνησε από το παρασκήνιο από το πακέτο <xliff:g id="PACKAGENAME">%1$s</xliff:g> δεν θα έχει άδεια πρόσβασης μόνο κατά τη χρήση σε μελλοντικές εκδόσεις R. Ανατρέξτε στο go/r-bg-fgs-restriction και υποβάλετε αναφορά σφάλματος."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Αυξάνετε την ένταση ήχου πάνω από το επίπεδο ασφαλείας;\n\nΑν ακούτε μουσική σε υψηλή ένταση για μεγάλο χρονικό διάστημα ενδέχεται να προκληθεί βλάβη στην ακοή σας."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Να χρησιμοποιείται η συντόμευση προσβασιμότητας;"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Όταν η συντόμευση είναι ενεργοποιημένη, το πάτημα και των δύο κουμπιών έντασης ήχου για 3 δευτερόλεπτα θα ξεκινήσει μια λειτουργία προσβασιμότητας.\n\n Τρέχουσα λειτουργία προσβασιμότητας:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Μπορείτε να αλλάξετε τη λειτουργία από τις Ρυθμίσεις &gt; Προσβασιμότητα."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Κατάργηση παύσης εφαρμογής"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Ενεργοποίηση προφίλ εργασίας;"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Οι εφαρμογές, οι ειδοποιήσεις και τα δεδομένα εργασίας σας, καθώς και άλλες λειτουργίες του προφίλ εργασίας, θα ενεργοποιηθούν"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Ενεργοποίηση"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Εναλλαγή διαχωρισμού οθόνης"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Οθόνη κλειδώματος"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Στιγμιότυπο οθόνης"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Μενού προσβασιμότητας"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Γραμμή υποτίτλων για την εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Το πακέτο <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> τοποθετήθηκε στον κάδο ΠΕΡΙΟΡΙΣΜΕΝΗΣ ΠΡΟΣΒΑΣΗΣ."</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Προσωπικό"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Εργασία"</string>
</resources>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 87e0c902df8c..15a059f449f1 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Your device will be erased"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Printing disabled by <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Personal apps have been suspended by an admin"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tap here to check policy compliance."</string>
<string name="me" msgid="6207584824693813140">"Me"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet options"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV options"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, you will be asked to unlock your phone using an email account.\n\n Try again in <xliff:g id="NUMBER_2">%3$d</xliff:g> seconds."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Remove"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"The background started foreground service from <xliff:g id="PACKAGENAME">%1$s</xliff:g> will not have while-in-use permission in future R builds. Please see go/r-bg-fgs-restriction and file a bug report."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Raise volume above recommended level?\n\nListening at high volume for long periods may damage your hearing."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Use Accessibility Shortcut?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"When the shortcut is on, pressing both volume buttons for 3 seconds will start an accessibility feature.\n\n Current accessibility feature:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n You can change the feature in Settings &gt; Accessibility."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"App isn’t available"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> isn’t available at the moment. This is managed by <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Learn more"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Unpause app"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Turn on work profile?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Your work apps, notifications, data and other work profile features will be turned on"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Turn on"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Toggle Split Screen"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Lock Screen"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Screenshot"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Accessibility menu"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Caption bar of <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Work"</string>
</resources>
diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml
index 008ad8aec7fc..f3ab25afdf1e 100644
--- a/core/res/res/values-en-rCA/strings.xml
+++ b/core/res/res/values-en-rCA/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Your device will be erased"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Printing disabled by <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Personal apps have been suspended by an admin"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tap here to check policy compliance."</string>
<string name="me" msgid="6207584824693813140">"Me"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet options"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV options"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, you will be asked to unlock your phone using an email account.\n\n Try again in <xliff:g id="NUMBER_2">%3$d</xliff:g> seconds."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Remove"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"The background started foreground service from <xliff:g id="PACKAGENAME">%1$s</xliff:g> will not have while-in-use permission in future R builds. Please see go/r-bg-fgs-restriction and file a bug report."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Raise volume above recommended level?\n\nListening at high volume for long periods may damage your hearing."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Use Accessibility Shortcut?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"When the shortcut is on, pressing both volume buttons for 3 seconds will start an accessibility feature.\n\n Current accessibility feature:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n You can change the feature in Settings &gt; Accessibility."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"App isn’t available"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> isn’t available at the moment. This is managed by <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Learn more"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Unpause app"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Turn on work profile?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Your work apps, notifications, data and other work profile features will be turned on"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Turn on"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Toggle Split Screen"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Lock Screen"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Screenshot"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Accessibility menu"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Caption bar of <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Work"</string>
</resources>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 87e0c902df8c..15a059f449f1 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Your device will be erased"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Printing disabled by <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Personal apps have been suspended by an admin"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tap here to check policy compliance."</string>
<string name="me" msgid="6207584824693813140">"Me"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet options"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV options"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, you will be asked to unlock your phone using an email account.\n\n Try again in <xliff:g id="NUMBER_2">%3$d</xliff:g> seconds."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Remove"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"The background started foreground service from <xliff:g id="PACKAGENAME">%1$s</xliff:g> will not have while-in-use permission in future R builds. Please see go/r-bg-fgs-restriction and file a bug report."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Raise volume above recommended level?\n\nListening at high volume for long periods may damage your hearing."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Use Accessibility Shortcut?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"When the shortcut is on, pressing both volume buttons for 3 seconds will start an accessibility feature.\n\n Current accessibility feature:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n You can change the feature in Settings &gt; Accessibility."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"App isn’t available"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> isn’t available at the moment. This is managed by <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Learn more"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Unpause app"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Turn on work profile?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Your work apps, notifications, data and other work profile features will be turned on"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Turn on"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Toggle Split Screen"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Lock Screen"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Screenshot"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Accessibility menu"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Caption bar of <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Work"</string>
</resources>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 87e0c902df8c..15a059f449f1 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Your device will be erased"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Printing disabled by <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Personal apps have been suspended by an admin"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tap here to check policy compliance."</string>
<string name="me" msgid="6207584824693813140">"Me"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet options"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV options"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. After <xliff:g id="NUMBER_1">%2$d</xliff:g> more unsuccessful attempts, you will be asked to unlock your phone using an email account.\n\n Try again in <xliff:g id="NUMBER_2">%3$d</xliff:g> seconds."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Remove"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"The background started foreground service from <xliff:g id="PACKAGENAME">%1$s</xliff:g> will not have while-in-use permission in future R builds. Please see go/r-bg-fgs-restriction and file a bug report."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Raise volume above recommended level?\n\nListening at high volume for long periods may damage your hearing."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Use Accessibility Shortcut?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"When the shortcut is on, pressing both volume buttons for 3 seconds will start an accessibility feature.\n\n Current accessibility feature:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n You can change the feature in Settings &gt; Accessibility."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"App isn’t available"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> isn’t available at the moment. This is managed by <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Learn more"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Unpause app"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Turn on work profile?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Your work apps, notifications, data and other work profile features will be turned on"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Turn on"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Toggle Split Screen"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Lock Screen"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Screenshot"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Accessibility menu"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Caption bar of <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Work"</string>
</resources>
diff --git a/core/res/res/values-en-rXC/strings.xml b/core/res/res/values-en-rXC/strings.xml
index 777107a60820..871e528c8e94 100644
--- a/core/res/res/values-en-rXC/strings.xml
+++ b/core/res/res/values-en-rXC/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‎Your device will be erased‎‏‎‎‏‎"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‎‏‎The admin app can\'t be used. Your device will now be erased.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎If you have questions, contact your organization\'s admin.‎‏‎‎‏‎"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎‏‏‎‏‏‏‎‎‎‎‎‎‎‎‎‎‎‏‏‎‏‎‏‎‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‎‏‎Printing disabled by ‎‏‎‎‏‏‎<xliff:g id="OWNER_APP">%s</xliff:g>‎‏‎‎‏‏‏‎.‎‏‎‎‏‎"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‎‏‎‏‏‏‏‏‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‎‎‎‎‏‎‎‏‎‏‏‎‏‏‎‎Personal apps have been suspended by an admin‎‏‎‎‏‎"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‏‎‏‎‎‏‎‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‎‏‎‎‏‎‏‏‏‎‎‎‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎Tap here to check policy compliance.‎‏‎‎‏‎"</string>
<string name="me" msgid="6207584824693813140">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‎‏‎‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‎‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎Me‎‏‎‎‏‎"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‎‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‏‎‏‏‎‏‎Tablet options‎‏‎‎‏‎"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‏‎‏‏‏‎‎‏‏‏‎‎‏‎‎‏‏‏‎‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‏‎Android TV options‎‏‎‎‏‎"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‏‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‏‏‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎‎‎‎‏‏‎‏‏‎‎‎You have incorrectly drawn your unlock pattern ‎‏‎‎‏‏‎<xliff:g id="NUMBER_0">%1$d</xliff:g>‎‏‎‎‏‏‏‎ times. After ‎‏‎‎‏‏‎<xliff:g id="NUMBER_1">%2$d</xliff:g>‎‏‎‎‏‏‏‎ more unsuccessful attempts, you will be asked to unlock your phone using an email account.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎ Try again in ‎‏‎‎‏‏‎<xliff:g id="NUMBER_2">%3$d</xliff:g>‎‏‎‎‏‏‏‎ seconds.‎‏‎‎‏‎"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" ‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‏‎‎‎‏‏‎‏‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‎‎ — ‎‏‎‎‏‎ "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‏‎‏‏‎‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎‎‎‎‎‎‎‎‎‏‎‎Remove‎‏‎‎‏‎"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‎‏‎‏‎‏‏‏‎‎‎‏‎‏‎‏‏‎‏‎‎‏‏‎‎‏‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎The background started foreground service from ‎‏‎‎‏‏‎<xliff:g id="PACKAGENAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ will not have while-in-use permission in future R builds. Please see go/r-bg-fgs-restriction and file a bugreport.‎‏‎‎‏‎"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‎‎‎‏‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎Raise volume above recommended level?‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Listening at high volume for long periods may damage your hearing.‎‏‎‎‏‎"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‎‏‏‎‏‎‏‎‏‎‏‎‏‎‏‏‏‎‎‎‎‏‎‏‎‏‎‏‎Use Accessibility Shortcut?‎‏‎‎‏‎"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‎‏‎‏‏‎‏‏‎‎‎‎‏‏‎‏‏‏‎‏‎‎‎‏‏‎‎‏‎‏‎‎‎‎‏‏‏‎‎‏‎‏‎‏‎‎‏‎‏‏‎‎‎When the shortcut is on, pressing both volume buttons for 3 seconds will start an accessibility feature.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎ Current accessibility feature:‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎ ‎‏‎‎‏‏‎<xliff:g id="SERVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎ You can change the feature in Settings &gt; Accessibility.‎‏‎‎‏‎"</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‎‏‎‏‎‏‎‏‏‏‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‏‎‏‎‏‎‎‎‎‎‏‏‏‏‎‎‎‏‏‎‏‎‎‏‏‎‏‏‎‏‎‎App isn’t available‎‏‎‎‏‎"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‎‎‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‏‎‎‎‎‏‎‏‏‏‎‏‎‏‏‎‎‏‎‎‏‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="APP_NAME_0">%1$s</xliff:g>‎‏‎‎‏‏‏‎ isn’t available right now. This is managed by ‎‏‎‎‏‏‎<xliff:g id="APP_NAME_1">%2$s</xliff:g>‎‏‎‎‏‏‏‎.‎‏‎‎‏‎"</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‎‏‎‎‎‏‏‎‎‏‎‏‏‎‏‎‏‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎‎‎‏‏‎‎Learn more‎‏‎‎‏‎"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‏‏‏‎‎‏‏‎‏‎‎‏‏‏‎‎‏‎‎‏‎‏‎‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‎‎‎‏‎‎‎‎‏‏‎Unpause app‎‏‎‎‏‎"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‎‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‎‏‎‎‏‎‎‎‏‏‎‏‎‏‏‏‎‎‎‎‏‎‎‏‏‎‎‏‏‏‎‎‎‎‎Turn on work profile?‎‏‎‎‏‎"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎‎‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‏‏‎‏‏‎‏‏‎Your work apps, notifications, data, and other work profile features will be turned on‎‏‎‎‏‎"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‎‏‎‎‎‎‎‎‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‏‏‎‏‎‏‏‎‏‎Turn on‎‏‎‎‏‎"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‎‎‎‎‎‏‏‎‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎‏‎‎‎Toggle Split Screen‎‏‎‎‏‎"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‏‎‎‎‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‎‏‎‏‏‏‏‏‎‎Lock Screen‎‏‎‎‏‎"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‏‎‎‎‏‎‎‎‏‏‏‏‏‎‎‎‏‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‎‏‎‏‏‎‎‎Screenshot‎‏‎‎‏‎"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‎‏‎‏‎‎‏‏‏‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‎‎‎‎‎‎‎Accessibility Menu‎‏‎‎‏‎"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‎‎‎‏‎‏‏‏‎‏‏‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‎‎‏‎‏‎‎Caption bar of ‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎.‎‏‎‎‏‎"</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‏‏‎‎‎‏‎‏‎‏‎‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‏‎‎‎‏‏‏‎‎‏‏‏‎‎‏‎‏‏‎‎‏‎Personal‎‏‎‎‏‎"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‎‏‏‎Work‎‏‎‎‏‎"</string>
</resources>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 4335c2bf9f27..1cb9fde2956a 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Se borrarán los datos del dispositivo"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"No se puede usar la app de administrador. Ahora se borrará tu dispositivo.\n\nSi tienes preguntas, comunícate con el administrador de tu organización."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> inhabilitó la impresión."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Un administrador suspendió las apps personales"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Presiona aquí para consultar el cumplimiento de políticas."</string>
<string name="me" msgid="6207584824693813140">"Yo"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opciones de tablet"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opciones de Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Dibujaste incorrectamente tu patrón de desbloqueo <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. Luego de <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos más, se te solicitará que desbloquees tu dispositivo mediante el uso de una cuenta de correo.\n\n Vuelve a intentarlo en <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Eliminar"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"El servicio que pasó del segundo al primer plano de <xliff:g id="PACKAGENAME">%1$s</xliff:g> no tendrá permiso durante el uso en las próximas compilaciones de R. Ve a go/r-bg-fgs-restriction y envía un informe de errores."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"¿Quieres subir el volumen por encima del nivel recomendado?\n\nEscuchar a un alto volumen durante largos períodos puede dañar tu audición."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"¿Usar acceso directo de accesibilidad?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Cuando el acceso directo está activado, puedes presionar los botones de volumen durante 3 segundos para iniciar una función de accesibilidad.\n\n Función de accesibilidad actual:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Puedes cambiar la función en Configuración &gt; Accesibilidad."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"La app no está disponible"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> no está disponible en este momento. Esta opción se administra en <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Más información"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Reanudar app"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"¿Activar el perfil de trabajo?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Se activaran las apps de trabajo, los datos, las notificaciones y otras funciones del perfil de trabajo"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Activar"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Activar o desactivar pantalla dividida"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Bloquear pantalla"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Captura de pantalla"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menú de accesibilidad"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de subtítulos de <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Se colocó <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> en el depósito RESTRICTED"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Trabajo"</string>
</resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 8d750caa6dba..d8509a331453 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Tu dispositivo se borrará"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"No se puede utilizar la aplicación de administración. Se borrarán todos los datos del dispositivo.\n\nSi tienes alguna pregunta, ponte en contacto con el administrador de tu organización."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ha inhabilitado la impresión."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Un administrador ha suspendido las aplicaciones personales"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Toca aquí para comprobar el cumplimiento de las políticas."</string>
<string name="me" msgid="6207584824693813140">"Yo"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opciones del tablet"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opciones de Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Has fallado <xliff:g id="NUMBER_0">%1$d</xliff:g> veces al dibujar el patrón de desbloqueo. Si fallas otras <xliff:g id="NUMBER_1">%2$d</xliff:g> veces, deberás usar una cuenta de correo electrónico para desbloquear el teléfono.\n\n Inténtalo de nuevo en <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Quitar"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"El servicio en primer plano que se inició en segundo plano en <xliff:g id="PACKAGENAME">%1$s</xliff:g> no tendrá permisos en compilaciones R futuras mientras se estén usando. Ve a go/r-bg-fgs-restriction y envía un informe de errores."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"¿Quieres subir el volumen por encima del nivel recomendado?\n\nEscuchar sonidos fuertes durante mucho tiempo puede dañar los oídos."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"¿Utilizar acceso directo de accesibilidad?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Si el acceso directo está activado, pulsa los dos botones de volumen durante tres segundos para iniciar una función de accesibilidad.\n\n Función de accesibilidad actual:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Puedes cambiar la función en Ajustes &gt; Accesibilidad."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"La aplicación no está disponible"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> no está disponible en este momento. Esta opción se administra en <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Más información"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Anular pausa de aplicación"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"¿Activar el perfil de trabajo?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Tus aplicaciones, notificaciones, datos y otras funciones del perfil de trabajo se activarán"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Activar"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Activar o desactivar la pantalla dividida"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Pantalla de bloqueo"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Captura de pantalla"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menú de accesibilidad"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de subtítulos de <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Trabajo"</string>
</resources>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index 7f423e935b47..2148c09f08ad 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Seade kustutatakse"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Administraatori rakendust ei saa kasutada. Teie seade tühjendatakse nüüd.\n\nKui teil on küsimusi, võtke ühendust organisatsiooni administraatoriga."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Rakendus <xliff:g id="OWNER_APP">%s</xliff:g> on printimise keelanud."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Administraator on isiklikud rakendused peatanud"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Eeskirjade järgimise kontrollimiseks puudutage siin."</string>
<string name="me" msgid="6207584824693813140">"Mina"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tahvelarvuti valikud"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV valikud"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Joonistasite oma avamismustri <xliff:g id="NUMBER_0">%1$d</xliff:g> korda valesti. Pärast veel <xliff:g id="NUMBER_1">%2$d</xliff:g> ebaõnnestunud katset palutakse teil telefon avada meilikontoga.\n\n Proovige uuesti <xliff:g id="NUMBER_2">%3$d</xliff:g> sekundi pärast."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Eemalda"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Taustal käitatud esiplaanil oleval teenusel paketist <xliff:g id="PACKAGENAME">%1$s</xliff:g> ei ole tulevastes R-järkudes luba „kui kasutuses”. Vaadake saiti go/r-bg-fgs-restriction ja esitage veaaruanne."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Kas suurendada helitugevuse taset üle soovitatud taseme?\n\nPikaajaline valju helitugevusega kuulamine võib kuulmist kahjustada."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Kas kasutada juurdepääsetavuse otseteed?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Kui otsetee on sisse lülitatud, käivitab mõlema helitugevuse nupu kolm sekundit all hoidmine juurdepääsetavuse funktsiooni.\n\n Praegune juurdepääsetavuse funktsioon:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Saate seda funktsiooni muuta valikutega Seaded &gt; Juurdepääsetavus."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Rakendus pole saadaval"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> pole praegu saadaval. Seda haldab rakendus <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Lisateave"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Jätka rakendust"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Kas lülitada tööprofiil sisse?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Teie töörakendused, märguanded, andmed ja muud tööprofiili funktsioonid lülitatakse sisse"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Lülita sisse"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Vaheta jagatud ekraanikuva"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Lukustuskuva"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Ekraanipilt"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Juurdepääsetavuse menüü"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Rakenduse <xliff:g id="APP_NAME">%1$s</xliff:g> pealkirjariba."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Isiklik"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Töö"</string>
</resources>
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index 9d014a3b875a..07bde5ee0648 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Gailuko datuak ezabatu egingo dira"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Ezin da erabili administratzeko aplikazioa. Ezabatu egingo da gailuko eduki guztia.\n\nZalantzarik baduzu, jarri erakundeko administratzailearekin harremanetan."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> aplikazioak desgaitu egin du inprimatzeko aukera."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Aplikazio pertsonalak desgaitu egin ditu administratzaile batek"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Sakatu hau gidalerroa gordetzen den egiaztatzeko."</string>
<string name="me" msgid="6207584824693813140">"Ni"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tabletaren aukerak"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV gailuaren aukerak"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Desblokeatzeko eredua oker marraztu duzu <xliff:g id="NUMBER_0">%1$d</xliff:g> aldiz. Beste <xliff:g id="NUMBER_1">%2$d</xliff:g> aldiz oker marrazten baduzu, telefonoa posta-kontu baten bidez desblokeatzeko eskatuko dizugu.\n\n Saiatu berriro <xliff:g id="NUMBER_2">%3$d</xliff:g> segundo barru."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Kendu"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> webgunearen atzeko planoak hasitako aurreko planoko zerbitzuak ez du izango erabili bitarteko baimenik etorkizuneko R konpilazioetan. Joan go/r-bg-fgs-restriction atalera eta egin akatsaren txostena."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Bolumena gomendatutako mailatik gora igo nahi duzu?\n\nMusika bolumen handian eta denbora luzez entzuteak entzumena kalte diezazuke."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Erabilerraztasun-lasterbidea erabili nahi duzu?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Lasterbidea aktibatuta dagoenean, bi bolumen-botoiak hiru segundoz sakatuta abiaraziko da erabilerraztasun-eginbidea.\n\n Uneko erabilerraztasun-eginbidea:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Eginbidea aldatzeko, joan Ezarpenak &gt; Erabilerraztasuna atalera."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Aplikazioa ez dago erabilgarri"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> ez dago erabilgarri une honetan. Haren erabilgarritasuna <xliff:g id="APP_NAME_1">%2$s</xliff:g> aplikazioak kudeatzen du."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Lortu informazio gehiago"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Kendu pausaldia"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Laneko profila aktibatu?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Laneko aplikazioak, jakinarazpenak, datuak eta laneko profileko bestelako eginbideak aktibatuko dira"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Aktibatu"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Aktibatu/Desaktibatu pantaila zatitua"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Pantaila blokeatua"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Pantaila-argazkia"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Erabilerraztasun-menua"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioko azpitituluen barra."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Pertsonala"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Lanekoa"</string>
</resources>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 58ce7a7e547c..d65357b73ba0 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"دستگاهتان پاک خواهد شد"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"برنامه سرپرست سیستم را نمی‌توان استفاده کرد. دستگاه شما در این لحظه پاک می‌شود.\n\nاگر سؤالی دارید، با سرپرست سیستم سازمانتان تماس بگیرید."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> چاپ کردن را غیرفعال کرده است."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"سرپرستْ برنامه‌های شخصی را به حالت تعلیق درآورد"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"برای بررسی مطابقت با خط‌مشی، اینجا ضربه بزنید."</string>
<string name="me" msgid="6207584824693813140">"من"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"گزینه‌های رایانهٔ لوحی"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"‏گزینه‌های Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"‏شما الگوی بازگشایی قفل خود را <xliff:g id="NUMBER_0">%1$d</xliff:g> بار اشتباه کشیده‌اید. پس از <xliff:g id="NUMBER_1">%2$d</xliff:g> تلاش ناموفق، از شما خواسته می‎شود که با استفاده از یک حساب ایمیل قفل تلفن خود را باز کنید.\n\n لطفاً پس از <xliff:g id="NUMBER_2">%3$d</xliff:g> ثانیه دوباره امتحان کنید."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"حذف"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"‏سرویس پیش‌نمای <xliff:g id="PACKAGENAME">%1$s</xliff:g>، که در پس‌زمینه شروع شده، در ساخت‌های آتی R اجازهٔ حین استفاده نخواهد داشت. لطفاً به go/r-bg-fgs-restriction بروید و گزارش اشکال ارسال کنید."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"میزان صدا را به بالاتر از حد توصیه شده افزایش می‌دهید؟\n\nگوش دادن به صداهای بلند برای مدت طولانی می‌تواند به شنوایی‌تان آسیب وارد کند."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"از میان‌بر دسترس‌پذیری استفاده شود؟"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"وقتی میان‌بر روشن است،‌ اگر هر دو دکمه صدا را ۳ ثانیه فشار دهید یکی از قابلیت‌های دسترس‌پذیری شروع می‌شود.\n\n قابلیت دسترس‌پذیری کنونی:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n می‌توانید در «تنظیمات &gt; دسترس‌پذیری»، قابلیت را تغییر دهید."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"لغو توقف موقت برنامه"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"نمایه کاری روشن شود؟"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"برنامه‌ها، اعلان‌ها، داده‌ها و سایر قابلیت‌های نمایه کاری شما روشن خواهد شد"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"روشن کردن"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"تغییر وضعیت صفحهٔ دونیمه"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"صفحه قفل"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"عکس صفحه‌نمایش"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"منوی دسترس‌پذیری"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"نوار شرح <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> در سطل «محدودشده» قرار گرفت"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"شخصی"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"کاری"</string>
</resources>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index e0f4ed49b6a3..17b3d33b4cf8 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Laitteen tiedot poistetaan"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Hallintasovellusta ei voi käyttää. Laitteen tiedot pyyhitään.\n\nPyydä ohjeita järjestelmänvalvojaltasi."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> on poistanut tulostuksen käytöstä."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Järjestelmänvalvoja on estänyt henkilökohtaisten sovellusten käytön"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Katso käytäntöjen noudattaminen napauttamalla tätä."</string>
<string name="me" msgid="6207584824693813140">"Minä"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet-laitteen asetukset"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV ‑vaihtoehdot"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Piirsit lukituksenpoistokuvion väärin <xliff:g id="NUMBER_0">%1$d</xliff:g> kertaa. Jos piirrät kuvion väärin vielä <xliff:g id="NUMBER_1">%2$d</xliff:g> kertaa, sinua pyydetään poistamaan puhelimesi lukitus sähköpostitilin avulla.\n\n Yritä uudelleen <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunnin kuluttua."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Poista"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Taustalla aloitettu etualan palvelu (<xliff:g id="PACKAGENAME">%1$s</xliff:g>) ei ole käytön aikana sallittu R:n tulevissa versioissa. Lue go/r-bg-fgs-restriction ja lähetä virheraportti."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Nostetaanko äänenvoimakkuus suositellun tason yläpuolelle?\n\nPitkäkestoinen kova äänenvoimakkuus saattaa heikentää kuuloa."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Käytetäänkö esteettömyyden pikanäppäintä?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Kun pikanäppäin on käytössä, voit käynnistää esteettömyystoiminnon pitämällä molempia äänenvoimakkuuspainikkeita painettuna kolmen sekunnin ajan.\n\n Tällä hetkellä valittu esteettömyystoiminto:\n<xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Voit vaihtaa toimintoa valitsemalla Asetukset &gt; Esteettömyys."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Sovellus ei käytettävissä"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> ei ole juuri nyt saatavilla. Tästä vastaa <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Lue lisää"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Peru keskeytys"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Otetaanko työprofiili käyttöön?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Työsovellukset, ‑ilmoitukset, ‑tiedot ja muut työprofiiliominaisuudet otetaan käyttöön"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Ota käyttöön"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Jaettu näyttö päälle/pois"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Lukitusnäyttö"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Kuvakaappaus"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Esteettömyysvalikko"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Tekstityspalkki: <xliff:g id="APP_NAME">%1$s</xliff:g>"</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Henkilökohtainen"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Työ"</string>
</resources>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 5d99db170087..45b8613a1e6f 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Le contenu de votre appareil sera effacé"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Impossible d\'utiliser l\'application d\'administration. Les données de votre appareil vont maintenant être effacées.\n\nSi vous avez des questions, communiquez avec l\'administrateur de votre organisation."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Impression désactivée par <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Les applications personnelles ont été suspendues par un administrateur"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Touchez ici pour vérifier la conformité aux politiques."</string>
<string name="me" msgid="6207584824693813140">"Moi"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Options de la tablette"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Options d\'Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, vous devrez déverrouiller votre téléphone à l\'aide d\'un compte de messagerie électronique.\n\n Veuillez réessayer dans <xliff:g id="NUMBER_2">%3$d</xliff:g> secondes."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Supprimer"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Le service de premier plan qui a démarré en arrière-plan provenant de <xliff:g id="PACKAGENAME">%1$s</xliff:g> ne disposera pas de l\'autorisation pendant l\'utilisation dans les futures versions R. Veuillez accéder à go/r-bg-fgs-restriction et envoyer un rapport de bogue."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Augmenter le volume au-dessus du niveau recommandé?\n\nL\'écoute prolongée à un volume élevé peut endommager vos facultés auditives."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Utiliser le raccourci d\'accessibilité?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Quand le raccourci est activé, appuyez sur les deux boutons de volume pendant trois secondes pour lancer une fonctionnalité d\'accessibilité.\n\n Fonctionnalité d\'accessibilité utilisée actuellement :\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Vous pouvez changer de fonctionnalité sous Paramètres &gt; Accessibilité."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"L\'application n\'est pas accessible"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"L\'application <xliff:g id="APP_NAME_0">%1$s</xliff:g> n\'est pas accessible pour le moment. Ceci est géré par <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"En savoir plus"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Réactiver l\'application"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Activer le profil professionnel?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Vos applications professionnelles, vos notifications, vos données et les autres fonctionnalités de profil professionnel seront activées"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Activer"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Basculer l\'écran partagé"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Écran de verrouillage"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Capture d\'écran"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu d\'accessibilité"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barre de légende de l\'application <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personnel"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Bureau"</string>
</resources>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 3f4f3e6549e4..c646aeb8d82d 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Les données de votre appareil vont être effacées"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Impossible d\'utiliser l\'application d\'administration. Les données de votre appareil vont maintenant être effacées.\n\nSi vous avez des questions, contactez l\'administrateur de votre organisation."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Impression désactivée par <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Les applications personnelles ont été suspendues par un administrateur"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Appuyez ici pour vérifier que les règles sont respectées."</string>
<string name="me" msgid="6207584824693813140">"Moi"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Options de la tablette"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Options Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Vous avez dessiné un schéma de déverrouillage incorrect à <xliff:g id="NUMBER_0">%1$d</xliff:g> reprises. Si vous échouez encore <xliff:g id="NUMBER_1">%2$d</xliff:g> fois, vous devrez déverrouiller votre téléphone à l\'aide d\'un compte de messagerie électronique.\n\n Veuillez réessayer dans <xliff:g id="NUMBER_2">%3$d</xliff:g> secondes."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Supprimer"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Le service de premier plan qui a démarré en arrière-plan et provenant de <xliff:g id="PACKAGENAME">%1$s</xliff:g> ne disposera pas de l\'autorisation \"pendant l\'utilisation\" dans les futurs builds R. Veuillez accéder à go/r-bg-fgs-restriction et envoyer un rapport de bug."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Augmenter le volume au dessus du niveau recommandé ?\n\nL\'écoute prolongée à un volume élevé peut endommager vos facultés auditives."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Utiliser le raccourci d\'accessibilité ?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Quand le raccourci est activé, appuyez sur les deux boutons de volume pendant trois secondes pour lancer une fonctionnalité d\'accessibilité.\n\n Fonctionnalité d\'accessibilité utilisée actuellement :\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Vous pouvez changer de fonctionnalité dans Paramètres &gt; Accessibilité."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Application indisponible"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"L\'application <xliff:g id="APP_NAME_0">%1$s</xliff:g> n\'est pas disponible pour le moment. Cette suspension est gérée par l\'application <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"En savoir plus"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Débloquer l\'application"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Activer profil professionnel ?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Vos applications professionnelles, notifications, données et d\'autres fonctionnalités de votre profil professionnel seront activées"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Activer"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Activer/Désactiver l\'écran partagé"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Verrouiller l\'écran"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Capture d\'écran"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu d\'accessibilité"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barre de légende de l\'application <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personnel"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Professionnel"</string>
</resources>
diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml
index 2e5052c134b1..2a2d7c4712b9 100644
--- a/core/res/res/values-gl/strings.xml
+++ b/core/res/res/values-gl/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Borrarase o teu dispositivo"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Non se pode utilizar a aplicación de administración. Borrarase o teu dispositivo.\n\nSe tes preguntas, contacta co administrador da organización."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> desactivou a impresión."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Un administrador suspendeu as aplicacións persoais"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Toca aquí para comprobar o cumprimento da política."</string>
<string name="me" msgid="6207584824693813140">"Eu"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opcións da tableta"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opcións de Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Debuxaches o padrón de desbloqueo incorrectamente <xliff:g id="NUMBER_0">%1$d</xliff:g> veces. Se realizas <xliff:g id="NUMBER_1">%2$d</xliff:g> intentos incorrectos máis, terás que desbloquear o teléfono a través dunha conta de correo electrónico.\n\n Téntao de novo dentro de <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Eliminar"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Nas futuras compilacións R, o servizo en primeiro plano iniciado en segundo plano desde <xliff:g id="PACKAGENAME">%1$s</xliff:g> non terá permiso mentres estea en uso. Consulta go/r-bg-fgs-restriction e presenta un informe de erros."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Queres subir o volume máis do nivel recomendado?\n\nA reprodución de son a un volume elevado durante moito tempo pode provocar danos nos oídos."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Queres utilizar o atallo de accesibilidade?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Cando o atallo está activado, podes premer os dous botóns de volume durante 3 segundos para iniciar unha función de accesibilidade.\n\n Función de accesibilidade actual:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Podes cambiar a función en Configuración &gt; Accesibilidade."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"A aplicación non está dispoñible"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"A aplicación <xliff:g id="APP_NAME_0">%1$s</xliff:g> non está dispoñible neste momento. A dispoñibilidade está xestionada por <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Máis información"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Volver activar aplicación"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Activar o perfil de traballo?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Activaranse as túas aplicacións de traballo, as notificacións, os datos e outras funcións do perfil de traballo"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Activar"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Activar/desactivar pantalla dividida"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Pantalla de bloqueo"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Captura de pantalla"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menú de accesibilidade"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de subtítulos de <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Persoal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Traballo"</string>
</resources>
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index 8081ef2709ba..aab09f751076 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"તમારું ઉપકરણ કાઢી નાખવામાં આવશે"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"વ્યવસ્થાપક ઍપનો ઉપયોગ કરી શકાશે નહીં. તમારું ઉપકરણ હવે કાઢી નાખવામાં આવશે.\n\nજો તમને પ્રશ્નો હોય, તો તમારી સંસ્થાના વ્યવસ્થાપકનો સંપર્ક કરો."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> દ્વારા પ્રિન્ટ કરવાનું બંધ કરાયું છે."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"વ્યવસ્થાપક દ્વારા વ્યક્તિગત ઍપ સ્થગિત કરવામાં આવી છે"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"નીતિનું પાલન થાય છે કે કેમ તે તપાસવા માટે અહીં ટૅપ કરો."</string>
<string name="me" msgid="6207584824693813140">"હું"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"ટેબ્લેટ વિકલ્પો"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TVના વિકલ્પો"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"તમે તમારી અનલૉક પૅટર્ન <xliff:g id="NUMBER_0">%1$d</xliff:g> વખત ખોટી રીતે દોરી. હજી <xliff:g id="NUMBER_1">%2$d</xliff:g> અસફળ પ્રયાસ પછી, તમને ઇમેઇલ એકાઉન્ટનો ઉપયોગ કરીને ફોનને અનલૉક કરવાનું કહેવામાં આવશે.\n\n<xliff:g id="NUMBER_2">%3$d</xliff:g> સેકન્ડમાં ફરીથી પ્રયાસ કરો."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"દૂર કરો"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"બૅકગ્રાઉન્ડમાં શરૂ થયેલી <xliff:g id="PACKAGENAME">%1$s</xliff:g>ની ફોરગ્રાઉન્ડ સેવા પાસે ભવિષ્યની R બિલ્ડમાં ઉપયોગમાં હોય તે સમયની પરવાનગી હશે નહીં. કૃપા કરીને go/r-bg-fgs-restriction જુઓ અને ભૂલનો અહેવાલ દાખલ કરો."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ભલામણ કરેલ સ્તરની ઉપર વૉલ્યૂમ વધાર્યો?\n\nલાંબા સમય સુધી ઊંચા અવાજે સાંભળવું તમારી શ્રવણક્ષમતાને નુકસાન પહોંચાડી શકે છે."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ઍક્સેસિબિલિટી શૉર્ટકટનો ઉપયોગ કરીએ?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"જ્યારે શૉર્ટકટ ચાલુ હોય, ત્યારે બન્ને વૉલ્યૂમ બટનને 3 સેકન્ડ સુધી દબાવી રાખવાથી ઍક્સેસિબિલિટી સુવિધા શરૂ થઈ જશે.\n\n વર્તમાન ઍક્સેસિબિલિટી સુવિધા:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n તમે સેટિંગ્સ &gt; ઍક્સેસિબિલિટીમાં જઈને આ સુવિધા બદલી શકો છો."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ઍપ ફરી શરૂ કરો"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"કાર્યાલયની પ્રોફાઇલ ચાલુ કરીએ?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"તમારી કાર્યાલયની ઍપ, નોટિફિકેશન, ડેટા અને અન્ય કાર્યાલયની પ્રોફાઇલ સુવિધાઓ ચાલુ કરવામાં આવશે"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"ચાલુ કરો"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"સ્ક્રીનને વિભાજિત કરવાની ક્રિયા ટૉગલ કરો"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"લૉક સ્ક્રીન"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"સ્ક્રીનશૉટ"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ઍક્સેસિબિલિટી મેનૂ"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>નું કૅપ્શન બાર."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>ને પ્રતિબંધિત સમૂહમાં મૂકવામાં આવ્યું છે"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"વ્યક્તિગત"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"કાર્યાલય"</string>
</resources>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index 05efcd8942cb..e1bb060fbc76 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"आपके डिवाइस को मिटा दिया जाएगा"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"एडमिन ऐप्लिकेशन का इस्तेमाल नहीं किया जा सकता. आपके डिवाइस पर मौजूद डेटा अब मिटा दिया जाएगा.\n\nअगर आप कुछ पूछना चाहते हैं तो, अपने संगठन के एडमिन से संपर्क करें."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ने प्रिंटिंग सुविधा बंद कर दी है."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"किसी एडमिन ने निजी ऐप्लिकेशन निलंबित कर दिए हैं"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"नीति का पालन किया जा रहा है या नहीं, इसकी जांच करने के लिए यहां टैप करें."</string>
<string name="me" msgid="6207584824693813140">"मैं"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"टैबलेट विकल्‍प"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV डिवाइस में फ़ोन से जुड़े विकल्प"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"आपने अपने अनलॉक आकार को <xliff:g id="NUMBER_0">%1$d</xliff:g> बार गलत तरीके से आरेखित किया है. <xliff:g id="NUMBER_1">%2$d</xliff:g> और असफल प्रयासों के बाद, आपसे अपने फ़ोन को किसी ईमेल खाते का उपयोग करके अनलॉक करने के लिए कहा जाएगा.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> सेकंड में फिर से प्रयास करें."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"निकालें"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g>से बैकग्राउंड में शुरू की गई फ़ॉरग्राउंड सेवा के लिए, भविष्य के R बिल्ड में \'इस्तेमाल के समय अनुमति दें\' की सुविधा नहीं होगी. कृपया go/r-bg-fgs-restriction देखें और गड़बड़ी की शिकायत करें."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"वॉल्यूम को सुझाए गए स्तर से ऊपर बढ़ाएं?\n\nअत्यधिक वॉल्यूम पर ज़्यादा समय तक सुनने से आपकी सुनने की क्षमता को नुकसान हो सकता है."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"सुलभता शॉर्टकट का इस्तेमाल करना चाहते हैं?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"इस शॉर्टकट के चालू होने पर, दोनों वॉल्यूम बटनों को 3 सेकंड तक दबाने से सुलभता सुविधा शुरू हो जाएगी.\n\n मौजूदा सुलभता सुविधा:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n आप इस सुविधा को सेटिंग &gt; सुलभता पर जाकर बदल सकते हैं."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ऐप्लिकेशन पर लगी रोक हटाएं"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"वर्क प्रोफ़ाइल चालू करें?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"आपके काम से जुड़े ऐप्लिकेशन, सूचनाएं, डेटा और वर्क प्रोफ़ाइल से जुड़ी दूसरी सुविधाएं चालू हो जाएंगी"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"चालू करें"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"स्प्लिट स्क्रीन पर टॉगल करें"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"स्क्रीन लॉक करें"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"स्क्रीनशॉट लें"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"सुलभता मेन्यू"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> का कैप्शन बार."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> को प्रतिबंधित बकेट में रखा गया है"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"निजी प्रोफ़ाइल"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"वर्क प्रोफ़ाइल"</string>
</resources>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index e4cefe8149d7..383943429400 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -196,10 +196,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Uređaj će se izbrisati"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Administratorska aplikacija ne može se upotrebljavati. Uređaj će se izbrisati.\n\nAko imate pitanja, obratite se administratoru organizacije."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Ispis je onemogućila aplikacija <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Administrator je obustavio osobne aplikacije"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Dodirnite ovdje da biste provjerili usklađenost s pravilima."</string>
<string name="me" msgid="6207584824693813140">"Ja"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opcije tabletnog uređaja"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opcije Android TV-a"</string>
@@ -1635,8 +1633,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Netočno ste iscrtali obrazac za otključavanje <xliff:g id="NUMBER_0">%1$d</xliff:g> puta. Nakon još ovoliko neuspješnih pokušaja: <xliff:g id="NUMBER_1">%2$d</xliff:g> morat ćete otključati telefon pomoću računa e-pošte.\n\n Pokušajte ponovo za <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Ukloni"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Usluga u prednjem planu s <xliff:g id="PACKAGENAME">%1$s</xliff:g> pokrenuta u pozadini neće imati dopuštenje tijekom upotrebe u budućim R kompilacijama. Pogledajte go/r-bg-fgs-restriction i pošaljite izvješće o programskoj pogrešci."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Želite li pojačati zvuk iznad preporučene razine?\n\nDugotrajno slušanje glasne glazbe može vam oštetiti sluh."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Želite li upotrebljavati prečac za pristupačnost?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Kada je taj prečac uključen, pritiskom na obje tipke za glasnoću na 3 sekunde pokrenut će se značajka pristupačnosti.\n\n Trenutačna značajka pristupačnosti:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Značajku možete promijeniti u Postavkama &gt; Pristupačnost."</string>
@@ -1884,8 +1881,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Aplikacija nije dostupna"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"Aplikacija <xliff:g id="APP_NAME_0">%1$s</xliff:g> trenutačno nije dostupna. Ovime upravlja aplikacija <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Saznajte više"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Prekini pauzu aplikacije"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Želite uključiti radni profil?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Uključit će se vaše radne aplikacije, obavijesti, podaci i druge značajke radnog profila"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Uključi"</string>
@@ -2041,12 +2037,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Uključite ili isključite podijeljeni zaslon"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Zaključajte zaslon"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Snimka zaslona"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Izbornik pristupačnosti"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Traka naslova aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Osobno"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Posao"</string>
</resources>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 08cb1c774b33..fcea1ec4975a 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"A rendszer törölni fogja eszközét"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"A rendszergazdai alkalmazás nem használható. A rendszer most törli az eszközt.\n\nKérdéseivel forduljon szervezete rendszergazdájához."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"A(z) <xliff:g id="OWNER_APP">%s</xliff:g> letiltotta a nyomtatást."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"A személyes alkalmazások adminisztrátori felfüggesztés alá kerültek"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Koppintson ide az irányelvek betartásának ellenőrzéséhez."</string>
<string name="me" msgid="6207584824693813140">"Saját"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Táblagép beállításai"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV beállításai"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"<xliff:g id="NUMBER_0">%1$d</xliff:g> alkalommal helytelenül rajzolta le a feloldási mintát. További <xliff:g id="NUMBER_1">%2$d</xliff:g> sikertelen kísérlet után egy e-mail fiók használatával kell feloldania a telefonját.\n\n Kérjük, próbálja újra <xliff:g id="NUMBER_2">%3$d</xliff:g> másodperc múlva."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Eltávolítás"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"A háttér által indított előtérben futó szolgáltatás (innen: <xliff:g id="PACKAGENAME">%1$s</xliff:g>) nem tartalmaz majd használat közbeni engedélyt a jövőbeli R buildekben. Kérjük, keresse fel a go/r-bg-fgs-restriction webhelyet, és jelentse a hibát."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Az ajánlott szint fölé szeretné emelni a hangerőt?\n\nHa hosszú időn át teszi ki magát nagy hangerőnek, azzal károsíthatja a hallását."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Szeretné használni a Kisegítő lehetőségek billentyűparancsot?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Ha be van kapcsolva a billentyűparancs, a két hangerőgomb 3 másodpercig tartó lenyomásával elindíthatja a kisegítő lehetőségek egyik funkcióját.\n\n A kisegítő lehetőségek jelenleg beállított funkciója:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n A funkciót a Beállítások &gt; Kisegítő lehetőségek menüpontban módosíthatja."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Az alkalmazás nem áll rendelkezésre"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"A(z) <xliff:g id="APP_NAME_0">%1$s</xliff:g> alkalmazás jelenleg nem áll rendelkezésre. Ezt a(z) <xliff:g id="APP_NAME_1">%2$s</xliff:g> kezeli."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"További információ"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Alkalmazás szüneteltetésének feloldása"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Bekapcsolja a munkaprofilt?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"A munkahelyi alkalmazások, értesítések, adatok és a munkaprofilhoz tartozó egyéb funkciók be lesznek kapcsolva"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Bekapcsolás"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Osztott képernyő be- vagy kikapcsolása"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Lezárási képernyő"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Képernyőkép"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Kisegítő lehetőségek menü"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> alkalmazás címsora."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Személyes"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Munka"</string>
</resources>
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index 9d33f6b8e4fd..cbd754f15e29 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Ձեր սարքը ջնջվելու է"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Հնարավոր չէ օգտագործել ադմինիստրատորի հավելվածը։ Ձեր սարքից բոլոր տվյալները կջնջվեն։\n\nՀարցեր ունենալու դեպքում դիմեք ձեր կազմակերպության ադմինիստրատորին։"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Տպումն անջատված է <xliff:g id="OWNER_APP">%s</xliff:g> հավելվածի կողմից։"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Անձնական հավելվածները կասեցվել են ադմինիստրատորի կողմից"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Հպեք այստեղ, որպեսզի ստուգեք՝ արդյոք որևէ կանոն չի խախտվել։"</string>
<string name="me" msgid="6207584824693813140">"Իմ"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Պլանշետի ընտրանքները"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV-ի կարգավորումներ"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Դուք <xliff:g id="NUMBER_0">%1$d</xliff:g> անգամ սխալ եք հավաքել ձեր ապակողպման նմուշը: <xliff:g id="NUMBER_1">%2$d</xliff:g> անգամից ավել անհաջող փորձերից հետո ձեզ կառաջարկվի ապակողպել ձեր հեռախոսը` օգտագործելով էլփոստի հաշիվ:\n\n Փորձեք կրկին <xliff:g id="NUMBER_2">%3$d</xliff:g> վայրկյանից:"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Հեռացնել"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Ֆոնային ռեժիմում <xliff:g id="PACKAGENAME">%1$s</xliff:g>-ից գործարկված առաջին պլանի ծառայությունը հետագա R կառուցումներում թույլտվություն չի ունենա օգտագործման ընթացքում։ Անցեք go/r-bg-fgs-restriction էջ և հաղորդեք վրիպակի մասին։"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ձայնը բարձրացնե՞լ խորհուրդ տրվող մակարդակից ավել:\n\nԵրկարատև բարձրաձայն լսելը կարող է վնասել ձեր լսողությունը:"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Օգտագործե՞լ Մատչելիության դյուրանցումը։"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Հատուկ գործառույթն օգտագործելու համար սեղմեք և 3 վայրկյան սեղմած պահեք ձայնի ուժգնության երկու կոճակները, երբ գործառույթը միացված է։\n\n Մատչելիության ակտիվ գործառույթը՝\n<xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Գործառույթը կարող եք փոփոխել՝ անցնելով Կարգավորումներ &gt; Հատուկ գործառույթներ։"</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Չեղարկել դադարեցումը"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Միացնե՞լ աշխատանքային պրոֆիլը"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Ձեր աշխատանքային հավելվածները, ծանուցումները, տվյալները և աշխատանքային պրոֆիլի մյուս գործառույթները կմիանան"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Միացնել"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Միացնել/անջատել էկրանի տրոհումը"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Կողպէկրան"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Սքրինշոթ"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Հատուկ գործառույթների ընտրացանկ"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածի ենթագրերի գոտին։"</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> փաթեթը գցվեց ՍԱՀՄԱՆԱՓԱԿՎԱԾ զամբյուղի մեջ"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Անձնական"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Աշխատանքային"</string>
</resources>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 48136108d7c1..f1a94ff0149e 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Perangkat akan dihapus"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Aplikasi admin tidak dapat digunakan. Perangkat Anda kini akan dihapus.\n\nJika ada pertanyaan, hubungi admin organisasi."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Fitur pencetakan dinonaktifkan oleh <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Aplikasi pribadi telah ditangguhkan oleh admin"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Ketuk di sini untuk memeriksa kepatuhan kebijakan."</string>
<string name="me" msgid="6207584824693813140">"Saya"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opsi tablet"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opsi Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Anda telah <xliff:g id="NUMBER_0">%1$d</xliff:g> kali salah menggambar pola pembuka kunci. Setelah <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi upaya gagal, Anda akan diminta membuka kunci ponsel menggunakan akun email.\n\nCoba lagi dalam <xliff:g id="NUMBER_2">%3$d</xliff:g> detik."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Hapus"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Layanan latar depan yang dimulai oleh latar belakang dari <xliff:g id="PACKAGENAME">%1$s</xliff:g> tidak akan memiliki izin saat-sedang-digunakan pada build R masa mendatang Lihat go/r-bg-fgs-restriction dan kirim laporan bug."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Mengeraskan volume di atas tingkat yang disarankan?\n\nMendengarkan dengan volume keras dalam waktu yang lama dapat merusak pendengaran Anda."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Gunakan Pintasan Aksesibilitas?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Saat pintasan aktif, menekan kedua tombol volume selama 3 detik akan memulai fitur aksesibilitas.\n\n Fitur aksesibilitas saat ini:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Anda dapat mengubah fitur di Setelan &gt; Aksesibilitas."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Aplikasi tidak tersedia"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> saat ini tidak tersedia. Aplikasi ini dikelola oleh <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Pelajari lebih lanjut"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Batalkan jeda aplikasi"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Aktifkan profil kerja?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Aplikasi kerja, notifikasi, data, dan fitur profil kerja lainnya akan diaktifkan"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Aktifkan"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Aktifkan/Nonaktifkan Layar Terpisah"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Layar Kunci"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Screenshot"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu Aksesibilitas"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Kolom teks <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Pribadi"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Kerja"</string>
</resources>
diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml
index bf3fe87f7931..b4cb76d367b5 100644
--- a/core/res/res/values-is/strings.xml
+++ b/core/res/res/values-is/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Tækið verður hreinsað"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Ekki er hægt að nota stjórnunarforritið. Tækinu verður eytt.\n\nEf spurningar vakna skaltu hafa samband við kerfisstjóra fyrirtækisins."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> lokaði á prentun."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Stjórnandi hefur lokað á persónuleg forrit"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Ýttu hér til að sjá reglufylgni."</string>
<string name="me" msgid="6207584824693813140">"Ég"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Valkostir spjaldtölvu"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Valkostir Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Þú hefur teiknað rangt opnunarmynstur <xliff:g id="NUMBER_0">%1$d</xliff:g> sinnum. Eftir <xliff:g id="NUMBER_1">%2$d</xliff:g> árangurslausar tilraunir í viðbót verður þú beðin(n) um að opna símann með tölvupóstreikningi.\n\n Reyndu aftur eftir <xliff:g id="NUMBER_2">%3$d</xliff:g> sekúndur."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Fjarlægja"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Forgrunnsþjónusta frá <xliff:g id="PACKAGENAME">%1$s</xliff:g> sem er ræst úr bakgrunni mun ekki hafa heimild við notkun í framtíðarútgáfum R. Farðu á go/r-bg-fgs-restriction og gefðu villuskýrslu."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Hækka hljóðstyrk umfram ráðlagðan styrk?\n\nEf hlustað er á háum hljóðstyrk í langan tíma kann það að skaða heyrnina."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Viltu nota aðgengisflýtileið?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Þegar flýtileiðin er virk er kveikt á aðgengiseiginleikanum með því að halda báðum hljóðstyrkshnöppunum inni í þrjár sekúndur.\n\n Virkur aðgengiseiginleiki:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Hægt er að skipta um eiginleika í Stillingar &gt; Aðgengi."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Forritið er ekki í boði"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> er ekki í boði eins og er. Þessu er stjórnað með <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Nánari upplýsingar"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Halda áfram að nota"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Kveikja á vinnusniði?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Kveikt verður á vinnuforritum, tilkynningum, gögnum og öðrum eiginleikum vinnusniðsins"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Kveikja"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Breyta skjáskiptingu"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Lásskjár"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Skjámynd"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Aðgengisvalmynd"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Skjátextastika <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Persónulegt"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Vinna"</string>
</resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 72ca138f9ed3..23a62a8a48f8 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Il dispositivo verrà resettato"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Impossibile usare l\'app di amministrazione. Il dispositivo verrà resettato.\n\nPer eventuali domande, contatta l\'amministratore della tua organizzazione."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Stampa disattivata da <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Le app personali sono state sospese da un amministratore"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tocca qui per controllare il rispetto delle norme."</string>
<string name="me" msgid="6207584824693813140">"Io"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opzioni tablet"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opzioni Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"<xliff:g id="NUMBER_0">%1$d</xliff:g> tentativi errati di inserimento della sequenza di sblocco. Dopo altri <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativi falliti, ti verrà chiesto di sbloccare il telefono con un account email.\n\n Riprova tra <xliff:g id="NUMBER_2">%3$d</xliff:g> secondi."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Rimuovi"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Il servizio in primo piano avviato in background da <xliff:g id="PACKAGENAME">%1$s</xliff:g> non avrà l\'autorizzazione \"durante l\'uso\" nelle future build R. Visita la pagina go/r-bg-fgs-restriction e invia una segnalazione di bug."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vuoi aumentare il volume oltre il livello consigliato?\n\nL\'ascolto ad alto volume per lunghi periodi di tempo potrebbe danneggiare l\'udito."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Usare la scorciatoia Accessibilità?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Quando la scorciatoia è attiva, puoi premere entrambi i pulsanti del volume per tre secondi per avviare una funzione di accessibilità.\n\n Funzione di accessibilità corrente:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Puoi cambiare la funzione in Impostazioni &gt; Accessibilità."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"App non disponibile"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> non è al momento disponibile. Viene gestita tramite <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Ulteriori informazioni"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Riattiva app"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Attivare il profilo di lavoro?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Le tue app di lavoro, le notifiche, i dati e altri elementi del profilo di lavoro saranno attivati."</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Attiva"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Attiva/disattiva schermo diviso"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Schermata di blocco"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Screenshot"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu Accessibilità"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra del titolo di <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personale"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Lavoro"</string>
</resources>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 9c8d0a3a64ec..4319aa8644f0 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -198,10 +198,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"תתבצע מחיקה של המכשיר"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"לא ניתן להשתמש באפליקציה של מנהל המערכת.\n\nאם יש לך שאלות, יש ליצור קשר עם מנהל המערכת של הארגון."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"ההדפסה הושבתה על ידי <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"אפליקציות אישיות הושעו על ידי מנהל מערכת"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"יש להקיש כאן כדי לבדוק תאימות למדיניות."</string>
<string name="me" msgid="6207584824693813140">"אני"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"אפשרויות טאבלט"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"‏אפשרויות Android TV"</string>
@@ -1657,8 +1655,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"שרטטת את קו ביטול הנעילה באופן שגוי <xliff:g id="NUMBER_0">%1$d</xliff:g> פעמים. לאחר <xliff:g id="NUMBER_1">%2$d</xliff:g> ניסיונות כושלים נוספים, תתבקש לבטל את נעילת הטלפון באמצעות חשבון אימייל‏.\n\nנסה שוב בעוד <xliff:g id="NUMBER_2">%3$d</xliff:g> שניות."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"הסר"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"‏לשירות שפועל בחזית מ-<xliff:g id="PACKAGENAME">%1$s</xliff:g> שהחל ברקע לא תהיה הרשאת while-in-use בגרסאות R build בעתיד. יש לעיין בכתובת go/r-bg-fgs-restriction ולהגיש דוח על באג."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"האם להעלות את עוצמת הקול מעל לרמה המומלצת?\n\nהאזנה בעוצמת קול גבוהה למשכי זמן ממושכים עלולה לפגוע בשמיעה."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"להשתמש בקיצור הדרך לתכונת הנגישות?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"כשקיצור הדרך מופעל, לחיצה על שני לחצני עוצמת השמע למשך שלוש שניות מפעילה את תכונת הנגישות.\n\n תכונת הנגישות המוגדרת כרגע:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n אפשר לשנות את התכונה בקטע \'הגדרות ונגישות\'."</string>
@@ -1916,8 +1913,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ביטול ההשהיה של האפליקציה"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"להפעיל את פרופיל העבודה?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"אפליקציות העבודה, התראות, נתונים ותכונות נוספות של פרופיל העבודה יופעלו"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"הפעל"</string>
@@ -2075,12 +2071,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"החלפת מצב של מסך מפוצל"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"מסך הנעילה"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"צילום מסך"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"תפריט נגישות"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"סרגל כיתוב של <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> התווספה לקטגוריה \'מוגבל\'"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"אישי"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"עבודה"</string>
</resources>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 529d0119f0be..481af76de9a7 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"デバイスのデータが消去されます"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"管理アプリを使用できません。デバイスのデータはこれから消去されます。\n\nご不明な点がある場合は、組織の管理者にお問い合わせください。"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"「<xliff:g id="OWNER_APP">%s</xliff:g>」により印刷は無効にされています。"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"個人用アプリは管理者によって停止されています"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ポリシー コンプライアンスを確認するにはここをタップしてください。"</string>
<string name="me" msgid="6207584824693813140">"自分"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"タブレットオプション"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV のオプション"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"ロック解除パターンの入力を<xliff:g id="NUMBER_0">%1$d</xliff:g>回間違えました。あと<xliff:g id="NUMBER_1">%2$d</xliff:g>回間違えると、モバイルデバイスのロック解除にメールアカウントが必要になります。\n\n<xliff:g id="NUMBER_2">%3$d</xliff:g>秒後にもう一度お試しください。"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" - "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"削除"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"今後の R ビルドでは、<xliff:g id="PACKAGENAME">%1$s</xliff:g> からバックグラウンドで開始されるフォアグラウンド サービスに「使用中のみ許可」の権限がありません。go/r-bg-fgs-restriction を確認し、バグレポートを提出してください。"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"推奨レベルを超えるまで音量を上げますか?\n\n大音量で長時間聞き続けると、聴力を損なう恐れがあります。"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ユーザー補助機能のショートカットの使用"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"ショートカットが ON の場合、両方の音量ボタンを 3 秒間押し続けるとユーザー補助機能が起動します。\n\n現在のユーザー補助機能:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\nユーザー補助機能は [設定] &gt; [ユーザー補助] で変更できます。"</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"アプリの一時停止を解除"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"仕事用プロファイルの有効化"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"仕事用のアプリ、通知、データなど、仕事用プロファイルの機能が ON になります"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"ON にする"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"分割画面の切り替え"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"ロック画面"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"スクリーンショット"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ユーザー補助機能メニュー"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> のキャプション バーです。"</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> は RESTRICTED バケットに移動しました。"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"個人用"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"仕事用"</string>
</resources>
diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml
index 3f97338ade76..c2c28e515593 100644
--- a/core/res/res/values-ka/strings.xml
+++ b/core/res/res/values-ka/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"თქვენი მოწყობილობა წაიშლება"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"ადმინისტრატორის აპის გამოყენება ვერ მოხერხდება. თქვენი მოწყობილობა ახლა ამოიშლება.\n\nთუ შეკითხვები გაქვთ, დაუკავშირდით თქვენი ორგანიზაციის ადმინისტრატორს."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"ბეჭდვა გათიშულია <xliff:g id="OWNER_APP">%s</xliff:g>-ის მიერ."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"პირადი აპები შეჩერებულია ადმინისტრატორის მიერ"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"შეეხეთ აქ წესებთან შესაბამისობის შესამოწმებლად."</string>
<string name="me" msgid="6207584824693813140">"მე"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"ტაბლეტის პარამეტრები"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV ვარიანტები"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"თქვენ არასწორად დახატეთ თქვენი განბლოკვის ნიმუში <xliff:g id="NUMBER_0">%1$d</xliff:g>-ჯერ. კიდევ <xliff:g id="NUMBER_1">%2$d</xliff:g> წარუმატებელი ცდის შემდეგ, დაგჭირდებათ თქვენი ტელეფონის განბლოკვა ელფოსტის ანგარიშის გამოყენებით.\n\n ხელახლა სცადეთ <xliff:g id="NUMBER_2">%3$d</xliff:g> წამში."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"ამოშლა"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g>-ის ფონურად დაწყებულ წინა პლანის სერვისს მომავალ R build-ებში გამოყენების პროცესში წვდომის ნებართვა არ ექნება. გთხოვთ, იხილოთ go/r-bg-fgs-restriction და გამოგზავნოთ ხარვეზის ანგარიში."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"გსურთ ხმის რეკომენდებულ დონეზე მაღლა აწევა?\n\nხანგრძლივად ხმამაღლა მოსმენით შესაძლოა სმენადობა დაიზიანოთ."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"გსურთ მარტივი წვდომის მალსახმობის გამოყენება?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"მალსახმობის ჩართვის შემთხვევაში, ხმის ორივე ღილაკზე 3 წამის განმავლობაში დაჭერით მარტივი წვდომის ფუნქცია ჩაირთვება.\n\n მარტივი წვდომის ამჟამინდელი ფუნქციაა:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n ამ ფუნქციის შეცვლა შეგიძლიათ აქ: პარამეტრები &gt; მარტივი წვდომა."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"აპის დაპაუზების გაუქმება"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"ჩაირთოს სამსახურის პროფილი?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"თქვენი სამსახურის აპები, შეტყობინებები, მონაცემები და სამსახურის პროფილის ყველა სხვა ფუნქცია ჩაირთვება"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"ჩართვა"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"გაყოფილი ეკრანის გადართვა"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"ჩაკეტილი ეკრანი"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"ეკრანის ანაბეჭდი"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"მარტივი წვდომის მენიუ"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ის სუბტიტრების ზოლი."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> მოთავსდა კალათაში „შეზღუდული“"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"პირადი"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"სამსახური"</string>
</resources>
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index bccd3f4b6a77..7cb05129495d 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Құрылғыңыздағы деректер өшіріледі"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Әкімші қолданбасын пайдалану мүмкін емес. Қазір құрылғыдағы деректер өшіріледі\n\nСұрақтарыңыз болса, ұйым әкімшісіне хабарласыңыз."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Басып шығаруды <xliff:g id="OWNER_APP">%s</xliff:g> өшірді."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Әкімші жеке қолданбаларды уақытша тоқтатты"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Саясат талаптарының сай келуін тексеру үшін осы жерді түртіңіз."</string>
<string name="me" msgid="6207584824693813140">"Мен"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Планшет опциялары"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV опциялары"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Бекітпені ашу кескінін <xliff:g id="NUMBER_0">%1$d</xliff:g> рет қате сыздыңыз. <xliff:g id="NUMBER_1">%2$d</xliff:g> сәтсіз әрекеттен кейін телефоныңызды есептік жазба арқылы ашу өтінішін аласыз. \n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> секундтан кейін қайта әрекеттеніңіз."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Алып тастау"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Фондық режимде іске қосылған <xliff:g id="PACKAGENAME">%1$s</xliff:g> белсенді пакетінің алдағы R құрамаларында \"Пайдаланғанда ғана рұқсат ету\" рұқсаты болмайды. go/r-bg-fgs-restriction бетіне өтіп, қате туралы есеп жіберіңіз."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Дыбыс деңгейін ұсынылған деңгейден көтеру керек пе?\n\nЖоғары дыбыс деңгейінде ұзақ кезеңдер бойы тыңдау есту қабілетіңізге зиян тигізуі мүмкін."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Арнайы мүмкіндік төте жолын пайдалану керек пе?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Бұл төте жол қосулы кезде дыбыс деңгейі түймелерінің екеуін де 3 секунд бойы басқанда арнайы мүмкіндік іске қосылады.\n\n Ағымдағы арнайы мүмкіндік:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Бұл мүмкіндікті \"Параметрлер\" &gt; \"Арнайы мүмкіндіктер\" тармағында өзгертуге болады."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Қолданбаны қайта қосу"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Жұмыс профилі қосылсын ба?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Жұмыс қолданбалары, хабарландырулар, деректер және басқа да жұмыс профильдерінің мүмкіндіктері қосылады"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Қосу"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Экранды бөлу мүмкіндігін қосу/өшіру"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Құлып экраны"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Скриншот"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Арнайы мүмкіндіктер мәзірі"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> қолданбасының жазу жолағы."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ШЕКТЕЛГЕН себетке салынды."</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Жеке"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Жұмыс"</string>
</resources>
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index ee451e936020..e0267d363721 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"ឧបករណ៍របស់អ្នកនឹងត្រូវបានលុប"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"មិនអាច​ប្រើ​កម្មវិធី​អ្នកគ្រប់គ្រង​បានទេ។ ឧបករណ៍​របស់អ្នក​នឹងលុប​ឥឡូវនេះ។\n\nប្រសិនបើ​អ្នកមាន​សំណួរផ្សេងៗ​ សូមទាក់ទង​ទៅអ្នក​គ្រប់គ្រង​ស្ថាប័ន​របស់​អ្នក។"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"ការបោះពុម្ព​ត្រូវបាន​បិទ​ដោយ <xliff:g id="OWNER_APP">%s</xliff:g> ។"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"អ្នកគ្រប់គ្រង​បានផ្អាក​កម្មវិធី​ផ្ទាល់ខ្លួន"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ចុច​ត្រង់នេះ ដើម្បី​ពិនិត្យមើល​ការអនុលោម​តាម​គោលការណ៍​។"</string>
<string name="me" msgid="6207584824693813140">"ខ្ញុំ"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"ជម្រើស​កុំព្យូទ័រ​បន្ទះ"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"ជម្រើស Android TV"</string>
@@ -1615,8 +1613,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"អ្នក​បាន​គូរ​លំនាំ​ដោះ​​សោ​របស់​អ្នក​មិន​ត្រឹមត្រូវ​ចំនួន <xliff:g id="NUMBER_0">%1$d</xliff:g> ដង។ បន្ទាប់​ពី​ការ​ព្យាយាម​មិន​ជោគជ័យ​​ច្រើនជាង <xliff:g id="NUMBER_1">%2$d</xliff:g> ដង អ្នក​នឹង​ត្រូវ​បាន​​ស្នើ​ឲ្យ​ដោះ​សោ​ទូរស័ព្ទ​របស់​អ្នក​ដោយ​ប្រើ​គណនី​អ៊ីមែល។\n\n ព្យាយាម​ម្ដង​ទៀត​ក្នុង​រយៈ​ពេល <xliff:g id="NUMBER_2">%3$d</xliff:g> វិនាទី។"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"លុប​ចេញ"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"សេវាកម្ម​ផ្ទៃខាងមុខ​ដែលចាប់ផ្ដើមដោយ​ផ្ទៃខាងក្រោយ​ពី <xliff:g id="PACKAGENAME">%1$s</xliff:g> នឹង​មិនមាន​ការអនុញ្ញាត​ខណៈពេល​កំពុង​ប្រើប្រាស់​ទេ នៅក្នុង​កំណែបង្កើត R នៅពេល​អនាគត​។ សូម​មើល go/r-bg-fgs-restriction និង​ផ្ញើ​របាយការណ៍​អំពី​បញ្ហា​។"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"បង្កើន​កម្រិត​សំឡេង​លើស​ពី​កម្រិត​បាន​ផ្ដល់​យោបល់?\n\nការ​ស្ដាប់​នៅ​កម្រិត​សំឡេង​ខ្លាំង​យូរ​អាច​ធ្វើឲ្យ​ខូច​ត្រចៀក។"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ប្រើប្រាស់​ផ្លូវកាត់​ភាព​ងាយស្រួល?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"នៅពេល​ផ្លូវកាត់​នេះបើក ការ​ចុច​ប៊ូតុង​កម្រិត​សំឡេង​ទាំង​ពីរ​ឲ្យ​ជាប់​រយៈពេល​ 3 វិនាទីនឹង​ចាប់ផ្តើម​មុខងារ​ភាពងាយស្រួល។\n\n មុខងារ​ភាពងាយស្រួល​បច្ចុប្បន្ន៖\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n អ្នក​អាច​ផ្លាស់​ប្តូរ​មុខងារ​នេះ​បាន​នៅក្នុង​ការ កំណត់ &gt; ភាព​ងាយស្រួល។"</string>
@@ -1854,8 +1851,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ឈប់ផ្អាក​កម្មវិធី"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"បើក​កម្រង​ព័ត៌មាន​ការ​ងារ?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"កម្មវិធី​ការងារ ការ​ជូនដំណឹង ទិន្នន័យ និង​មុខងារ​កម្រង​ព័ត៌មាន​ការងារ​ផ្សេង​ទៀត​របស់អ្នក​នឹង​ត្រូវ​បាន​បើក"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"បើក"</string>
@@ -2009,12 +2005,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"បិទ/បើក​មុខងារ​បំបែកអេក្រង់"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"អេក្រង់ចាក់សោ"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"រូបថតអេក្រង់"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ម៉ឺនុយ​ភាពងាយស្រួល"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"របារពណ៌នា​អំពី <xliff:g id="APP_NAME">%1$s</xliff:g>។"</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ត្រូវបានដាក់​ទៅក្នុងធុង​ដែលបានដាក់កំហិត"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"ផ្ទាល់ខ្លួន"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"ការងារ"</string>
</resources>
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index 75282842175c..4a2bc72d27d8 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"ನಿರ್ವಹಣೆ ಅಪ್ಲಿಕೇಶನ್ ಬಳಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಿಮ್ಮ ಸಾಧನವನ್ನು ಇದೀಗ ಅಳಿಸಲಾಗುತ್ತದೆ.\n\nನಿಮ್ಮಲ್ಲಿ ಪ್ರಶ್ನೆಗಳಿದ್ದರೆ, ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ಮೂಲಕ ಪ್ರಿಂಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ವೈಯಕ್ತಿಕ ಆ್ಯಪ್‌ಗಳನ್ನು ನಿರ್ವಾಹಕರು ಅಮಾನತುಗೊಳಿಸಿದ್ದಾರೆ"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ಕಾರ್ಯನೀತಿ ಅನುಸರಣೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಇಲ್ಲಿ ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
<string name="me" msgid="6207584824693813140">"ನಾನು"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"ಟ್ಯಾಬ್ಲೆಟ್ ಆಯ್ಕೆಗಳು"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV ಆಯ್ಕೆಗಳು"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"ನಿಮ್ಮ ಅನ್‍‍ಲಾಕ್ ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ನೀವು <xliff:g id="NUMBER_0">%1$d</xliff:g> ಬಾರಿ ತಪ್ಪಾಗಿ ಡ್ರಾ ಮಾಡಿರುವಿರಿ. <xliff:g id="NUMBER_1">%2$d</xliff:g> ಹೆಚ್ಚಿನ ವಿಫಲ ಪ್ರಯತ್ನಗಳ ಬಳಿಕ, ನಿಮ್ಮ ಇಮೇಲ್ ಖಾತೆಯನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಫೋನ್ ಅನ್‌ಲಾಕ್ ಮಾಡುವಂತೆ ನಿಮ್ಮಲ್ಲಿ ಕೇಳಿಕೊಳ್ಳಲಾಗುತ್ತದೆ.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"ತೆಗೆದುಹಾಕು"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> ನಿಂದ ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಪ್ರಾರಂಭಿಸಲಾದ ಮುನ್ನೆಲೆ ಸೇವೆ ಭವಿಷ್ಯದ R ಬಿಲ್ಡ್‌ಗಳಿಂದ ಬಳಕೆಯಲ್ಲಿರುವಾಗ ಅನುಮತಿಯನ್ನು ಪಡೆಯುವುದಿಲ್ಲ. go/r-bg-fgs-restriction ಅನ್ನು ನೋಡಿ ಮತ್ತು ದೋಷವರದಿಯನ್ನು ಫೈಲ್‌ ಮಾಡಿ."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ವಾಲ್ಯೂಮ್‌ ಅನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾದ ಮಟ್ಟಕ್ಕಿಂತಲೂ ಹೆಚ್ಚು ಮಾಡುವುದೇ?\n\nದೀರ್ಘ ಅವಧಿಯವರೆಗೆ ಹೆಚ್ಚಿನ ವಾಲ್ಯೂಮ್‌ನಲ್ಲಿ ಆಲಿಸುವುದರಿಂದ ನಿಮ್ಮ ಆಲಿಸುವಿಕೆ ಸಾಮರ್ಥ್ಯಕ್ಕೆ ಹಾನಿಯುಂಟು ಮಾಡಬಹುದು."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ಪ್ರವೇಶಿಸುವಿಕೆ ಶಾರ್ಟ್‌ಕಟ್ ಬಳಸುವುದೇ?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"ಶಾರ್ಟ್‌ಕಟ್ ಆನ್ ಆಗಿರುವಾಗ ಪ್ರವೇಶಿಸುವಿಕೆ ವೈಶಿಷ್ಟ್ಯ ಆನ್ ಮಾಡಲು, ಎರಡೂ ವಾಲ್ಯೂಮ್ ಬಟನ್‌ಗಳನ್ನು ನೀವು 3 ಸೆಕೆಂಡುಗಳ ಕಾಲ ಒತ್ತಬೇಕು.\n\nಪ್ರಸ್ತುತ ಪ್ರವೇಶಿಸುವಿಕೆ ವೈಶಿಷ್ಟ್ಯ: \n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಮತ್ತು ಪ್ರವೇಶಿಸುವಿಕೆಯಲ್ಲಿ ನೀವು ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬದಲಾಯಿಸಬಹುದು."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ಆ್ಯಪ್ ವಿರಾಮ ನಿಲ್ಲಿಸಿ"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್‌ ಆನ್ ಮಾಡುವುದೇ?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"ನಿಮ್ಮ ಕೆಲಸದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಅಧಿಸೂಚನೆಗಳು, ಡೇಟಾ ಮತ್ತು ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್‌ನ ಇತರ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಆನ್ ಮಾಡಲಾಗುತ್ತದೆ"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"ಆನ್‌ ಮಾಡಿ"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"ಸ್ಪ್ಲಿಟ್-ಸ್ಕ್ರೀನ್ ಟಾಗಲ್ ಮಾಡಿ"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"ಲಾಕ್ ಸ್ಕ್ರೀನ್"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"ಸ್ಕ್ರೀನ್‌ಶಾಟ್"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ಪ್ರವೇಶಿಸುವಿಕೆ ಮೆನು"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> ಆ್ಯಪ್‌ನ ಶೀರ್ಷಿಕೆಯ ಪಟ್ಟಿ."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ಅನ್ನು ನಿರ್ಬಂಧಿತ ಬಕೆಟ್‌ಗೆ ಹಾಕಲಾಗಿದೆ"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"ವೈಯಕ್ತಿಕ"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"ಕೆಲಸ"</string>
</resources>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index d5b450757bf9..0ac7a1447f7c 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"기기가 삭제됩니다."</string>
<string name="factory_reset_message" msgid="2657049595153992213">"관리자 앱을 사용할 수 없습니다. 곧 기기가 삭제됩니다.\n\n궁금한 점이 있으면 조직의 관리자에게 문의하세요."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g>에 의해 사용 중지되었습니다."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"관리자가 개인 앱을 정지함"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"정책 준수를 확인하려면 여기를 탭하세요."</string>
<string name="me" msgid="6207584824693813140">"나"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"태블릿 옵션"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV 옵션"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"잠금해제 패턴을 <xliff:g id="NUMBER_0">%1$d</xliff:g>회 잘못 그렸습니다. <xliff:g id="NUMBER_1">%2$d</xliff:g>회 더 실패하면 이메일 계정을 사용하여 휴대전화를 잠금해제해야 합니다.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g>초 후에 다시 시도해 주세요."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"삭제"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"향후 R 빌드에서는 백그라운드에서 시작된 <xliff:g id="PACKAGENAME">%1$s</xliff:g>의 포그라운드 서비스에 더 이상 사용 중인 상태에서 필요한 권한이 부여되지 않습니다. go/r-bg-fgs-restriction 페이지에서 버그 신고를 제출하세요."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"권장 수준 이상으로 볼륨을 높이시겠습니까?\n\n높은 볼륨으로 장시간 청취하면 청력에 손상이 올 수 있습니다."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"접근성 단축키를 사용하시겠습니까?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"단축키가 사용 설정된 경우 두 개의 볼륨 버튼을 3초간 누르면 접근성 기능이 시작됩니다.\n\n 현재 접근성 기능:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n \'설정 &gt; 접근성\'에서 기능을 변경할 수 있습니다."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"앱 일시중지 해제"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"직장 프로필을 사용 설정하시겠어요?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"업무용 앱, 알림, 데이터 및 기타 직장 프로필 기능이 사용 설정됩니다."</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"사용 설정"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"화면 분할 모드 전환"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"잠금 화면"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"스크린샷"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"접근성 메뉴"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>의 자막 표시줄입니다."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> 항목이 RESTRICTED 버킷으로 이동함"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"개인"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"직장"</string>
</resources>
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index 533e0b816142..88e36ff0b533 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Түзмөгүңүз тазаланат"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Түзмөктү башкаруучу колдонмо жараксыз. Түзмөгүңүз азыр тазаланат.\n\nСуроолоруңуз болсо, ишканаңыздын администраторуна кайрылыңыз."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Басып чыгаруу <xliff:g id="OWNER_APP">%s</xliff:g> тарабынан өчүрүлдү."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Жеке колдонмолорду администратор убактылуу токтотту"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Саясатка ылайыктуулугун текшерүү үчүн бул жерди таптап коюңуз"</string>
<string name="me" msgid="6207584824693813140">"Мен"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Планшет мүмкүнчүлүктөрү"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV параметрлери"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Графикалык ачкычты <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес көрсөттүңүз. <xliff:g id="NUMBER_1">%2$d</xliff:g> жолу туура эмес көрсөтүлгөндөн кийин, телефондун кулпусун ачуу үчүн Google аккаунтуңузга кирүүгө туура келет.\n\n<xliff:g id="NUMBER_2">%3$d</xliff:g> секундадан кийин кайталап көрсөңүз болот."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Алып салуу"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Фондогу <xliff:g id="PACKAGENAME">%1$s</xliff:g> кызматы активдүү режимде иштеп баштап, кийинки R курамаларында колдонуу учурунда уруксаты болбойт. Төмөнкү бөлүмгө өтүп, мүчүлүштүк тууралуу кабарды тапшырыңыз: go/r-bg-fgs-restriction."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Сунушталган деңгээлден да катуулатып уккуңуз келеби?\n\nМузыканы узакка чейин катуу уксаңыз, угууңуз начарлап кетиши мүмкүн."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Ыкчам иштетесизби?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Атайын мүмкүнчүлүктөр функциясын пайдалануу үчүн, ал күйгүзүлгөндө, үндү катуулатып/акырындаткан эки баскычты тең үч секунддай кое бербей басып туруңуз.\n\n Учурдагы атайын мүмкүнчүлүктөрдүн жөндөөлөрү:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\nЖөндөөлөр &gt; Атайын мүмкүнчүлүктөр бөлүмүнөн өзгөртө аласыз."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Колдонмону иштетүү"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Жумуш профили күйгүзүлсүнбү?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Жумуш колдонмолоруңуз, эскертмелериңиз, дайын-даректериңиз жана жумуш профилинин башка функциялары күйгүзүлөт."</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Күйгүзүү"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Экранды бөлүүнү күйгүзүү же өчүрүү"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Кулпуланган экран"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Скриншот"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Атайын мүмкүнчүлүктөр менюсу"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосунун маалымат тилкеси."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ЧЕКТЕЛГЕН чакага коюлган"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Жеке"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Жумуш"</string>
</resources>
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index 7a3e85e7f5b2..63b87ac54e3e 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ຈະ​ຖືກ​ລຶບ"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"ບໍ່ສາມາດໃຊ້ແອັບຜູ້ເບິ່ງແຍງລະບົບໄດ້. ອຸປະກອນຂອງທ່ານຈະຖືກລຶບຂໍ້ມູນໃນຕອນນີ້.\n\nຫາກທ່ານມີຄຳຖາມ, ໃຫ້ຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບອົງກອນຂອງທ່ານ."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"ການພິມຖືກປິດໄວ້ໂດຍ <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ແອັບສ່ວນຕົວຖືກລະງັບໄວ້ໂດຍຜູ້ເບິ່ງແຍງ"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ແຕະບ່ອນນີ້ເພື່ອກວດສອບການປະຕິບັດຕາມນະໂຍບາຍ."</string>
<string name="me" msgid="6207584824693813140">"ຂ້າພະເຈົ້າ"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"ໂຕເລືອກແທັບເລັດ"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"ຕົວເລືອກ Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"ທ່ານແຕ້ມຮູບແບບປົດລັອກຂອງທ່ານຜິດ <xliff:g id="NUMBER_0">%1$d</xliff:g> ເທື່ອແລ້ວ. ຫຼັງຈາກຄວາມພະຍາຍາມອີກ <xliff:g id="NUMBER_1">%2$d</xliff:g> ເທື່ອ ທ່ານຈະຖືກຖາມໃຫ້ປົດລັອກໂທລະສັບຂອງທ່ານດ້ວຍບັນຊີອີເມວ.\n\n ລອງໃໝ່ອີກຄັ້ງໃນ <xliff:g id="NUMBER_2">%3$d</xliff:g> ວິນາທີ."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"ລຶບອອກ"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"ບໍລິການພື້ນໜ້າທີ່ເລີ່ມຕົ້ນຈາກພື້ນຫຼັງຈາກ <xliff:g id="PACKAGENAME">%1$s</xliff:g> ຈະບໍ່ມີສິດອະນຸຍາດໃນຂະນະທີ່ໃຊ້ໃນ R builds ໃນອະນາຄົດ. ກະລຸນາອ່ານ go/r-bg-fgs-restriction ແລະ ລາຍງານຂໍ້ຜິດພາດ."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ເພີ່ມ​ລະ​ດັບ​ສຽງ​ໃຫ້​ເກີນກວ່າ​ລະ​ດັບ​ທີ່​ແນະ​ນຳ​ບໍ?\n\n​ການ​ຮັບ​ຟັງ​ສຽງ​ໃນ​ລະ​ດັບ​ທີ່​ສູງ​ເປັນ​ໄລ​ຍະ​ເວ​ລາ​ດົນ​​ອາດ​ເຮັດ​ໃຫ້​ການ​ຟັງ​ຂອງ​ທ່ານ​ມີ​ບັນ​ຫາ​ໄດ້."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ໃຊ້ປຸ່ມລັດການຊ່ວຍເຂົ້າເຖິງບໍ?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"ເມື່ອເປີດໃຊ້ປຸ່ມລັດແລ້ວ, ໃຫ້ກົດປຸ່ມສຽງທັງສອງຄ້າງໄວ້ 3 ວິນາທີເພື່ອເລີ່ມຄຸນສົມບັດການຊ່ວຍເຂົ້າເຖິງ.\n\n ຄຸນສົມບັດການຊ່ວຍເຂົ້າເຖິງປັດຈຸບັນ:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n ທ່ານສາມາດປ່ຽນຄຸນສົມບັດໄດ້ໃນການຕັ້ງຄ່າ &gt; ການຊ່ວຍເຂົ້າເຖິງ."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ຍົກເລີກການຢຸດແອັບຊົ່ວຄາວ"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"ເປີດໃຊ້ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກບໍ?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"ແອັບວຽກຂອງທ່ານ, ການແຈ້ງເຕືອນ, ຂໍ້ມູນ ແລະ ຄຸນສົມບັດໂປຣໄຟລ໌ວຽກຈະຖືກເປີດໃຊ້"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"ເປີດ​"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"ເປີດ/ປິດການແບ່ງໜ້າຈໍ"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"ໜ້າຈໍລັອກ"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"ຮູບໜ້າຈໍ"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"​ເມ​ນູ​ການ​ຊ່ວຍ​ເຂົ້າ​ເຖິງ"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"ແຖບຄຳບັນຍາຍຂອງ <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ຖືກວາງໄວ້ໃນກະຕ່າ \"ຈຳກັດ\" ແລ້ວ"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"ສ່ວນຕົວ"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"ວຽກ"</string>
</resources>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 265c97e4b228..b8d848e91929 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -198,10 +198,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Įrenginys bus ištrintas"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Administratoriaus programos negalima naudoti. Dabar įrenginio duomenys bus ištrinti.\n\nJei turite klausimų, susisiekite su organizacijos administratoriumi."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Neleidžiama spausdinti (<xliff:g id="OWNER_APP">%s</xliff:g>)."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Administratorius laikinai sustabdė asmenines programas"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Palieskite čia, kad patikrintumėte, ar laikomasi politikos."</string>
<string name="me" msgid="6207584824693813140">"Aš"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Planšetinio kompiuterio parinktys"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"„Android TV“ parinktys"</string>
@@ -1657,8 +1655,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Netinkamai nupiešėte atrakinimo piešinį <xliff:g id="NUMBER_0">%1$d</xliff:g> k. Po dar <xliff:g id="NUMBER_1">%2$d</xliff:g> nesėkm. band. būsite paprašyti atrakinti telefoną naudodami „Google“ prisijungimo duomenis.\n\n Bandykite dar kartą po <xliff:g id="NUMBER_2">%3$d</xliff:g> sek."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Pašalinti"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Fone pradėtai priekinio plano paslaugai iš „<xliff:g id="PACKAGENAME">%1$s</xliff:g>“ nebus suteiktas leidimas naudojimo metu būsimose R versijose. Apsilankykite go/r-bg-fgs-restriction ir pateikite pranešimą apie riktą."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Padidinti garsą daugiau nei rekomenduojamas lygis?\n\nIlgai klausydami dideliu garsu galite pažeisti klausą."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Naudoti spartųjį pritaikymo neįgaliesiems klavišą?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Kai spartusis klavišas įjungtas, spaudžiant abu garsumo mygtukus 3 sekundes bus paleista pritaikymo neįgaliesiems funkcija.\n\n Dabartinė pritaikymo neįgaliesiems funkcija:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>„\n“\n Funkciją galite pakeisti skiltyje „Nustatymai“ &gt; „Pritaikymas neįgaliesiems“."</string>
@@ -1916,8 +1913,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Programa nepasiekiama"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"Programa „<xliff:g id="APP_NAME_0">%1$s</xliff:g>“ šiuo metu nepasiekiama. Tai tvarkoma naudojant programą „<xliff:g id="APP_NAME_1">%2$s</xliff:g>“."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Sužinoti daugiau"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Atšaukti programos pristabdymą"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Įjungti darbo profilį?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Darbo programos, pranešimai, duomenys ir kitos darbo profilio funkcijos bus išjungtos"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Įjungti"</string>
@@ -2075,12 +2071,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Perjungti išskaidyto ekrano režimą"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Užrakinimo ekranas"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Ekrano kopija"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Pritaikomumo meniu"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Programos „<xliff:g id="APP_NAME">%1$s</xliff:g>“ antraštės juosta."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"„<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>“ įkeltas į grupę APRIBOTA"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Asmeninė"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Darbo"</string>
</resources>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index a535f6dd9feb..f168bb4121c8 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -196,10 +196,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Jūsu ierīces dati tiks dzēsti"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Administratora lietotni nevar izmantot. Ierīcē saglabātie dati tiks dzēsti.\n\nJa jums ir kādi jautājumi, sazinieties ar savas organizācijas administratoru."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Drukāšanu atspējoja <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Administrators apturēja privāto lietotņu darbību"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Pieskarieties šeit, lai noskaidrotu atbilstību politikai."</string>
<string name="me" msgid="6207584824693813140">"Man"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Planšetdatora opcijas"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV opcijas"</string>
@@ -1635,8 +1633,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Jūs nepareizi norādījāt atbloķēšanas kombināciju <xliff:g id="NUMBER_0">%1$d</xliff:g> reizes. Pēc vēl <xliff:g id="NUMBER_1">%2$d</xliff:g> neveiksmīgiem mēģinājumiem tālrunis būs jāatbloķē, izmantojot e-pasta kontu.\n\nMēģiniet vēlreiz pēc <xliff:g id="NUMBER_2">%3$d</xliff:g> sekundēm."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">"  — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Noņemt"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Fonā sāktam priekšplāna pakalpojumam no pakotnes <xliff:g id="PACKAGENAME">%1$s</xliff:g> nebūs atļaujas “while-in-use” turpmākajās R versijās. Lūdzu, skatiet vietni go/r-bg-fgs-restriction un iesniedziet kļūdas pārskatu."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vai palielināt skaļumu virs ieteicamā līmeņa?\n\nIlgstoši klausoties skaņu lielā skaļumā, var tikt bojāta dzirde."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vai izmantot pieejamības saīsni?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Ja saīsne ir iespējota, vienlaikus nospiežot abas skaļuma regulēšanas pogas un trīs sekundes turot tās, tiks palaista pieejamības funkcija.\n\n Pašreiz iestatītā pieejamības funkcija:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Šo funkciju var mainīt sadaļā Iestatījumi &gt; Pieejamība."</string>
@@ -1884,8 +1881,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Lietotne nav pieejama"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> pašlaik nav pieejama. Šo darbību pārvalda <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Uzzināt vairāk"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Atsākt lietotnes darbību"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Vai ieslēgt darba profilu?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Tiks ieslēgtas jūsu darba lietotnes, paziņojumi, dati un citas darba profila funkcijas."</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Ieslēgt"</string>
@@ -2041,12 +2037,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Pārslēgt ekrāna sadalīšanu"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Bloķēt ekrānu"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Ekrānuzņēmums"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Pieejamības izvēlne"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Lietotnes <xliff:g id="APP_NAME">%1$s</xliff:g> subtitru josla."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Privātais profils"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Darba profils"</string>
</resources>
diff --git a/core/res/res/values-mcc334/config.xml b/core/res/res/values-mcc334/config.xml
new file mode 100644
index 000000000000..e99c9a028178
--- /dev/null
+++ b/core/res/res/values-mcc334/config.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2020, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Show area update info settings in CellBroadcastReceiver and information in SIM status in Settings app -->
+ <bool name="config_showAreaUpdateInfoSettings">true</bool>
+</resources>
diff --git a/core/res/res/values-mcc732/config.xml b/core/res/res/values-mcc732/config.xml
new file mode 100644
index 000000000000..e99c9a028178
--- /dev/null
+++ b/core/res/res/values-mcc732/config.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2020, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Show area update info settings in CellBroadcastReceiver and information in SIM status in Settings app -->
+ <bool name="config_showAreaUpdateInfoSettings">true</bool>
+</resources>
diff --git a/core/res/res/values-mcc740/config.xml b/core/res/res/values-mcc740/config.xml
new file mode 100644
index 000000000000..e99c9a028178
--- /dev/null
+++ b/core/res/res/values-mcc740/config.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2020, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Show area update info settings in CellBroadcastReceiver and information in SIM status in Settings app -->
+ <bool name="config_showAreaUpdateInfoSettings">true</bool>
+</resources>
diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml
index 2f75269cf421..f94d191fba28 100644
--- a/core/res/res/values-mk/strings.xml
+++ b/core/res/res/values-mk/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Уредот ќе се избрише"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Апликацијата на администраторот не може да се користи. Уредот ќе се избрише сега.\n\nАко имате прашања, контактирајте со администраторот на организацијата."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Печатењето е оневозможено од <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Администраторот ги суспендирал личните апликации"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Допрете тука за да ја проверите усогласеноста со правилата."</string>
<string name="me" msgid="6207584824693813140">"Јас"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Опции на таблет"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Опции на Android TV"</string>
@@ -1615,8 +1613,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Погрешно сте ја употребиле вашата шема на отклучување <xliff:g id="NUMBER_0">%1$d</xliff:g> пати. По <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешни обиди, ќе побараат од вас да го отклучите телефонот со користење сметка на е-пошта.\n\n Обидете се повторно за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунди."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Отстрани"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Услугата од преден план започната во заднина од <xliff:g id="PACKAGENAME">%1$s</xliff:g> нема да има дозола за „додека се користи“ во идните R-верзии. Погледнете на go/r-bg-fgs-restriction и испратете извештај за грешка."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Да го зголемиме звукот над препорачаното ниво?\n\nСлушањето звуци со голема јачина подолги периоди може да ви го оштети сетилото за слух."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Да се користи кратенка за „Пристапност“?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Кога е вклучена кратенката, ако ги притиснете двете копчиња за јачина на звук во времетраење од 3 секунди, ќе се стартува функција на пристапност.\n\n Тековна функција на пристапност:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Функцијата може да ја промените во „Поставки“ &gt; „Пристапност“."</string>
@@ -1854,8 +1851,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Прекини ја паузата"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Да се вклучи работниот профил?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Вашите работни апликации, известувања, податоци и други функции на работниот профил ќе бидат вклучени"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Вклучи"</string>
@@ -2009,12 +2005,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Вклучи/исклучи поделен екран"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Заклучен екран"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Слика од екранот"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Мени за пристапност"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Насловна лента на <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> е ставен во корпата ОГРАНИЧЕНИ"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Лични"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Службени"</string>
</resources>
diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml
index 25d72126418f..1efd21132ebc 100644
--- a/core/res/res/values-ml/strings.xml
+++ b/core/res/res/values-ml/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"നിങ്ങളുടെ ഉപകരണം മായ്‌ക്കും"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"അഡ്‌മിൻ ആപ്പ് ഉപയോഗിക്കാനാകില്ല. നിങ്ങളുടെ ഉപകരണം ഇപ്പോൾ മായ്ക്കപ്പെടും.\n\nനിങ്ങൾക്ക് ചോദ്യങ്ങൾ ഉണ്ടെങ്കിൽ, നിങ്ങളുടെ സ്ഥാപനത്തിന്റെ അഡ്‌മിനെ ബന്ധപ്പെടുക."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> പ്രിന്റിംഗ് പ്രവർത്തനരഹിതമാക്കി."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"വ്യക്തഗത ആപ്പുകൾ ഒരു അഡ്‌മിൻ താൽക്കാലികമായി റദ്ദാക്കിയിരിക്കുന്നു"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"നയത്തിന് അനുസൃതമാണോ എന്ന് പരിശോധിക്കാൻ ഇവിടെ ടാപ്പ് ചെയ്യുക."</string>
<string name="me" msgid="6207584824693813140">"ഞാന്‍"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"ടാബ്‌ലെറ്റ് ഓപ്‌ഷനുകൾ"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android ടിവി ഓപ്‌ഷനുകൾ"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"നിങ്ങളുടെ അൺലോക്ക് പാറ്റേൺ <xliff:g id="NUMBER_0">%1$d</xliff:g> തവണ തെറ്റായി വരച്ചു. <xliff:g id="NUMBER_1">%2$d</xliff:g> ശ്രമങ്ങൾ കൂടി വിജയിച്ചില്ലെങ്കിൽ, ഒരു ഇമെയിൽ അക്കൗണ്ട് ഉപയോഗിച്ച് ഫോൺ അൺലോക്ക് ചെയ്യാൻ നിങ്ങളോട് ആവശ്യപ്പെടും.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> സെക്കൻഡിനുള്ള വീണ്ടും ശ്രമിക്കുക."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"നീക്കംചെയ്യുക"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> എന്നതിൽ നിന്നുള്ള പശ്ചാത്തലത്തിൽ ആരംഭിച്ച് ഫോർഗ്രൗണ്ടിൽ വരുന്ന സേവനത്തിന് ഭാവി R ബിൽഡുകളിൽ, \'ഉപയോഗിക്കുമ്പോൾ മാത്രമുള്ള അനുമതി\' ഉണ്ടായിരിക്കില്ല. go/r-bg-fgs-restriction കണ്ട് ബഗ് റിപ്പോർട്ട് ഫയൽ ചെയ്യുക."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"മുകളിൽക്കൊടുത്തിരിക്കുന്ന ശുപാർശചെയ്‌ത ലെവലിലേക്ക് വോളിയം വർദ്ധിപ്പിക്കണോ?\n\nഉയർന്ന വോളിയത്തിൽ ദീർഘനേരം കേൾക്കുന്നത് നിങ്ങളുടെ ശ്രവണ ശേഷിയെ ദോഷകരമായി ബാധിക്കാം."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ഉപയോഗസഹായി കുറുക്കുവഴി ഉപയോഗിക്കണോ?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"കുറുക്കുവഴി ഓണാണെങ്കിൽ, രണ്ട് വോളിയം ബട്ടണുകളും 3 സെക്കൻഡ് നേരത്തേക്ക് അമർത്തുന്നത് ഉപയോഗസഹായി ഫീച്ചർ ആരംഭിക്കും.\n\n നിലവിലെ ഉപയോഗസഹായി ഫീച്ചർ:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n ക്രമീകരണം &gt; ഉപയോഗസഹായി എന്നതിൽ ഏത് സമയത്തും നിങ്ങൾക്ക് ഫീച്ചർ മാറ്റാവുന്നതാണ്."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ആപ്പ് പുനഃരാംഭിക്കുക"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"ഔദ്യോഗിക പ്രൊഫൈൽ ഓണാക്കണോ?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"നിങ്ങളുടെ ഔദ്യോഗിക ആപ്പുകൾ, അറിയിപ്പുകൾ, ഡാറ്റ, മറ്റ് ഔദ്യോഗിക പ്രൊഫൈൽ ഫീച്ചറുകൾ എന്നിവ ഓണാക്കും"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"ഓണാക്കുക"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"സ്‌ക്രീൻ വിഭജന മോഡ് മാറ്റുക"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"ലോക്ക് സ്‌ക്രീൻ"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"സ്ക്രീൻഷോട്ട്"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ഉപയോഗസഹായി മെനു"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> എന്നതിന്റെ അടിക്കുറിപ്പ് ബാർ."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> നിയന്ത്രിത ബക്കറ്റിലേക്ക് നീക്കി"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"വ്യക്തിപരമായത്"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"ജോലിസ്ഥലം"</string>
</resources>
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index 3acdb7245b7c..cc031754b2b7 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Таны төхөөрөмж устах болно."</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Админ аппыг ашиглах боломжгүй. Таны төхөөрөмжийг одоо устгана.\n\nХэрэв танд асуулт байгаа бол байгууллагынхаа админтай холбогдоно уу."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> хэвлэх үйлдлийг идэвхгүй болгосон."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Хувийн аппуудыг админ түр хаасан байна"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Удирдамжийн нийцлийг шалгахын тулд энд товшино уу."</string>
<string name="me" msgid="6207584824693813140">"Би"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Таблетын сонголтууд"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android ТВ-н сонголт"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Та тайлах хээг <xliff:g id="NUMBER_0">%1$d</xliff:g> удаа буруу зурлаа. <xliff:g id="NUMBER_1">%2$d</xliff:g> удаа дахин буруу оруулбал, та утсаа тайлахын тулд имэйл бүртгэлээ ашиглах шаардлагатай болно.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> секундын дараа дахин оролдоно уу."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Устгах"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g>-н дэлгэц дээрх үйлчилгээг эхлүүлдэг дэвсгэр нь цаашид R хийцийн ашиглах үеийн зөвшөөрөлгүй болно. go/r-bg-fgs-restriction-г үзэж, алдааны мэдээ илгээнэ үү."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Дууг санал болгосноос чанга болгож өсгөх үү?\n\nУрт хугацаанд чанга хөгжим сонсох нь таны сонсголыг муутгаж болно."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Хүртээмжийн товчлолыг ашиглах уу?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Товчлолыг асаасан үед дуун товчлуурыг 3 секунд дарснаар хүртээмжийн онцлогийг эхлүүлнэ.\n\n Одоогийн хүртээмжийн онцлог:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Онцлогийг Тохиргоо &gt; Хүртээмж хэсэгт өөрчлөх боломжтой."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Аппыг түр зогсоохоо болих"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Ажлын профайлыг асаах уу?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Таны ажлын апп, мэдэгдэл, өгөгдөл болон бусад ажлын профайлын онцлогийг асаана"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Асаах"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Дэлгэц хуваахыг унтраах/асаах"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Дэлгэцийг түгжих"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Дэлгэцийн зураг дарах"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Хандалтын цэс"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>-н гарчгийн талбар."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>-г ХЯЗГААРЛАСАН сагс руу орууллаа"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Хувийн"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Ажил"</string>
</resources>
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index ff9f3e741c85..cd9b6fc5ee5a 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"तुमचे डिव्हाइस मिटविले जाईल"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"प्रशासक अ‍ॅप वापरता येणार नाही. तुमचे डिव्हाइस आता साफ केले जाईल.\n\nतुम्हाला कुठलेही प्रश्न असल्यास, तुमच्या संस्थेच्या प्रशासकाशी संपर्क साधा."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> नी प्रिंट करणे बंद केले आहे."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ॲडमिनद्वारे वैयक्तिक ॲप निलंबित केले गेले आहेत"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"धोरणाचे पालन तपासण्यासाठी येथे टॅप करा."</string>
<string name="me" msgid="6207584824693813140">"मी"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"टॅबलेट पर्याय"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV पर्याय"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"तुम्ही तुमचा अनलॉक पॅटर्न <xliff:g id="NUMBER_0">%1$d</xliff:g> वेळा अयोग्यपणे काढला आहे. आणखी <xliff:g id="NUMBER_1">%2$d</xliff:g> अयशस्वी प्रयत्नांनंतर, तुम्हाला ईमेल खाते वापरून तुमचा फोन अनलॉक करण्यास सांगितले जाईल.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> सेकंदांमध्ये पुन्हा प्रयत्न करा."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"काढा"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> कडून बॅकग्राउंडने फोरग्राउंडमध्ये सुरू केलेल्या सेवेला भविष्यातील आर बिल्डमध्ये वापर करते वेळची परवानगी नसेल. कृपया go/r-bg-fgs-restriction पहा आणि बगची तक्रार नोंदवा."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"शिफारस केलेल्‍या पातळीच्या वर आवाज वाढवायचा?\n\nउच्च आवाजात दीर्घ काळ ऐकण्‍याने आपल्‍या श्रवणशक्तीची हानी होऊ शकते."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"प्रवेशयोग्यता शॉर्टकट वापरायचा?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"शॉर्टकट चालू असताना, दोन्ही आवाज बटणे 3 सेकंद दाबल्याने प्रवेशयोग्यता वैशिष्ट्य सुरू होईल.\n\n वर्तमान प्रवेशयोग्यता वैशिष्ट्य:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n तुम्ही सेटिंग्ज &gt; प्रवेशयोग्यता मध्ये वैशिष्ट्य बदलू शकता."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"अ‍ॅप उघडा"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"कार्य प्रोफाइल चालू ठेवायची?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"तुमची कार्य अ‍ॅप्स, सूचना, डेटा आणि अन्य कार्य प्रोफाइल वैशिष्ट्ये चालू केली जातील"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"चालू करा"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"विभाजित स्क्रीन टॉगल करा"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"स्‍क्रीन लॉक करा"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"स्क्रीनशॉट"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"अ‍ॅक्सेसिबिलिटी मेनू"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> चा शीर्षक बार."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> हे प्रतिबंधित बादलीमध्ये ठेवण्यात आले आहे"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"वैयक्तिक"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"ऑफिस"</string>
</resources>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index e4364083751d..0a4073519b59 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Peranti anda akan dipadam"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Apl pentadbir tidak dapat digunakan. Peranti anda akan dipadamkan sekarang.\n\nJika anda ingin mengemukakan soalan, hubungi pentadbir organisasi anda."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Pencetakan dilumpuhkan oleh <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Apl peribadi telah digantung oleh pentadbir"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Ketik di sini untuk menyemak pematuhan dasar."</string>
<string name="me" msgid="6207584824693813140">"Saya"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Pilihan tablet"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Pilihan Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Anda telah tersilap lukis corak buka kunci sebanyak <xliff:g id="NUMBER_0">%1$d</xliff:g> kali. Selepas <xliff:g id="NUMBER_1">%2$d</xliff:g> lagi percubaan yang tidak berjaya, anda akan diminta membuka kunci telefon anda menggunakan log masuk Google anda.\n\n Cuba lagi dalam <xliff:g id="NUMBER_2">%3$d</xliff:g> saat."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Alih keluar"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Perkhidmatan latar depan dimulakan latar belakang daripada <xliff:g id="PACKAGENAME">%1$s</xliff:g> tidak akan mempunyai kebenaran semasa-dalam-penggunaan dalam binaan R akan datang. Sila lihat go/r-bg-fgs-restriction dan failkan laporan pepijat."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Naikkan kelantangan melebihi paras yang disyokorkan?\n\nMendengar pada kelantangan yang tinggi untuk tempoh yang lama boleh merosakkan pendengaran anda."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Gunakan Pintasan Kebolehaksesan?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Apabila pintasan dihidupkan, tindakan menekan kedua-dua butang kelantangan selama 3 saat akan memulakan ciri kebolehaksesan.\n\n Ciri kebolehaksesan semasa:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Anda boleh menukar ciri itu dalam Tetapan &gt; Kebolehaksesan."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Apl tidak tersedia"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> tidak tersedia sekarang. Ini diurus oleh <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Ketahui lebih lanjut"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Nyahjeda apl"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Hidupkan profil kerja?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Apl kerja, pemberitahuan, data dan ciri profil kerja anda yang lain akan dihidupkan"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Hidupkan"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Togol Skrin Pisah"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Skrin Kunci"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Tangkapan skrin"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu Kebolehaksesan"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Bar kapsyen <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Peribadi"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Kerja"</string>
</resources>
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index 56f49c28b26d..9e048411b5c7 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"သင့်ကိရိယာအား ပယ်ဖျက်လိမ့်မည်"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"စီမံခန့်ခွဲမှု အက်ပ်ကို သုံး၍မရပါ။ သင်၏ စက်ပစ္စည်းအတွင်းရှိ အရာများကို ဖျက်လိုက်ပါမည်\n\nမေးစရာများရှိပါက သင့်အဖွဲ့အစည်း၏ စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> က ပုံနှိပ်ထုတ်ယူခြင်းကို ပိတ်ထားသည်။"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ကိုယ်ပိုင်အက်ပ်များကို စီမံခန့်ခွဲသူက ဆိုင်းငံ့ထားသည်"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"မူဝါဒလိုက်နာမှုကို စစ်ဆေးရန် ဤနေရာကို တို့ပါ။"</string>
<string name="me" msgid="6207584824693813140">"ကျွန်ုပ်"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tabletဆိုင်ရာရွေးချယ်မှုများ"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV ရွေးချယ်စရာများ"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"သင် ပုံဖော်၍သော့ဖွင့်ခြင်းကို <xliff:g id="NUMBER_0">%1$d</xliff:g> အကြိမ် မှန်ကန်စွာ မပြုလုပ်နိုင်ပါ။ နောက်ထပ် <xliff:g id="NUMBER_1">%2$d</xliff:g> အကြိမ် မမှန်ကန်ပါက သင့်ဖုန်းအား အီးမေးလ်အသုံးပြု၍ သော့ဖွင့်ရန် တောင်းဆိုပါလိမ့်မည်။ \n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> စက္ကန့်အကြာတွင် ပြန်လည် ကြိုးစားပါ"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"ဖယ်ရှားရန်"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> တွင် မှ စတင်သည့် foreground ဝန်ဆောင်မှုသည် နောက်ထွက်ရှိမည့် R စုပေါင်းစပ်ပေါင်း ပရိုဂရမ်များတွင် အသုံးပြုစဉ်အတွင်း ခွင့်ပြုချက် ရရှိမည်မဟုတ်ပါ။ go/r-bg-fgs-ကန့်သတ်ချက်များကို ကြည့်ပြီး အမှားသတင်းပို့ချက်တစ်ခု တင်သွင်းပါ။"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"အသံကို အကြံပြုထားသည့် ပမာဏထက် မြှင့်ပေးရမလား?\n\nအသံကို မြင့်သည့် အဆင့်မှာ ကြာရှည်စွာ နားထောင်ခြင်းက သင်၏ နားကို ထိခိုက်စေနိုင်သည်။"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"အများသုံးစွဲနိုင်မှု ဖြတ်လမ်းလင့်ခ်ကို အသုံးပြုလိုပါသလား။"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"ဖြတ်လမ်းလင့်ခ်ကို ဖွင့်ထားစဉ် အသံအတိုးအလျှော့ခလုတ် နှစ်ခုစလုံးကို ၃ စက္ကန့်ခန့် ဖိထားခြင်းဖြင့် အများသုံးစွဲနိုင်မှုဆိုင်ရာ ဝန်ဆောင်မှုကို ဖွင့်နိုင်သည်။\n\n လက်ရှိ အများသုံးစွဲနိုင်မှုဆိုင်ရာ ဝန်ဆောင်မှု−\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n ဝန်ဆောင်မှုကို ဆက်တင်များ &gt; အများသုံးစွဲနိုင်မှုတွင် ပြောင်းလဲနိုင်ပါသည်။"</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"အက်ပ်ကို ခဏမရပ်တော့ရန်"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"အလုပ်ပရိုဖိုင် ဖွင့်လိုသလား။"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"သင်၏ အလုပ်အက်ပ်၊ အကြောင်းကြားချက်၊ ဒေတာနှင့် အခြားအလုပ်ပရိုဖိုင် ဝန်ဆောင်မှုများကို ဖွင့်လိုက်ပါမည်"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"ဖွင့်ပါ"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"မျက်နှာပြင် ခွဲ၍ပြသခြင်းကို နှိပ်ပါ"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"လော့ခ်မျက်နှာပြင်"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"ဖန်သားပြင်ဓာတ်ပုံ"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"အများသုံးစွဲနိုင်မှု မီနူး"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>၏ ခေါင်းစီး ဘား။"</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ကို တားမြစ်ထားသော သိမ်းဆည်းမှုအတွင်းသို့ ထည့်ပြီးပါပြီ"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"ကိုယ်ပိုင်"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"အလုပ်"</string>
</resources>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index bb3d52f7b854..45ab3e552c17 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Enheten blir slettet"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Administratorappen kan ikke brukes. Enheten din blir nå tømt.\n\nTa kontakt med administratoren for organisasjonen din hvis du har spørsmål."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> har slått av utskrift."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Personlige apper er sperret midlertidig av en administrator"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Trykk her for å sjekke overholdelse av retningslinjer."</string>
<string name="me" msgid="6207584824693813140">"Meg"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Innstillinger for nettbrettet"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV-alternativer"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Du har tegnet opplåsningsmønsteret feil <xliff:g id="NUMBER_0">%1$d</xliff:g> ganger. Etter ytterligere <xliff:g id="NUMBER_1">%2$d</xliff:g> gale forsøk, blir du bedt om å låse opp telefonen via en e-postkonto.\n\n Prøv på nytt om <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunder."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Fjern"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Forgrunnstjenesten fra <xliff:g id="PACKAGENAME">%1$s</xliff:g>, som ble startet i bakgrunnen, kommer ikke til å ha tillatelser mens den er i bruk i fremtidige R-delversjoner. Les go/r-bg-fgs-restriction og send inn en feilrapport."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vil du øke volumet til over anbefalt nivå?\n\nHvis du hører på et høyt volum over lengre perioder, kan det skade hørselen din."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vil du bruke tilgjengelighetssnarveien?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Når snarveien er på, starter en tilgjengelighetsfunksjon når du trykker inn begge volumknappene i tre sekunder.\n\n Nåværende tilgjengelighetsfunksjon:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Du kan endre funksjonen i Innstillinger &gt; Tilgjengelighet."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Appen er ikke tilgjengelig"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> er ikke tilgjengelig akkurat nå. Dette administreres av <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Finn ut mer"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Opphev pause for appen"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Vil du slå på jobbprofilen?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Jobbappene dine samt varsler, data og andre funksjoner i jobbprofilen din blir slått på"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Slå på"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Slå delt skjerm av/på"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Låseskjerm"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Skjermdump"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Tilgjengelighet-meny"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Tekstingsfelt i <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personlig"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Jobb"</string>
</resources>
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index b3d6cdecf8ed..11033a740aa1 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"तपाईंको यन्त्र मेटिनेछ"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"प्रशासकको अनुप्रयोग प्रयोग गर्न मिल्दैन। तपाईंको यन्त्रको डेटा अब मेटाइने छ।\n\nतपाईंसँग प्रश्नहरू भएका खण्डमा आफ्नो संगठनका प्रशासकसँग सम्पर्क गर्नुहोस्।"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ले छाप्ने कार्यलाई असक्षम पार्यो।"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"व्यक्तिगत एपहरू एकजना प्रशासकले निलम्बन गरिरहनुभएको छ"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"नीति पालनाबारे जाँच गर्न यहाँ ट्याप गर्नुहोस्।"</string>
<string name="me" msgid="6207584824693813140">"मलाई"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"ट्याब्लेट विकल्पहरू"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV सम्बन्धी विकल्पहरू"</string>
@@ -1619,8 +1617,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"तपाईँले आफ्नो अनलक ढाँचा गलत रूपमा <xliff:g id="NUMBER_0">%1$d</xliff:g> पटक तान्नु भएको छ। <xliff:g id="NUMBER_1">%2$d</xliff:g> धेरै असफल प्रयासहरूपछि, तपाईँलाई एउटा इमेल खाताको प्रयोग गरेर तपाईँको फोन अनलक गर्न सोधिने छ।\n\n फेरि <xliff:g id="NUMBER_2">%3$d</xliff:g> सेकेन्डमा प्रयास गर्नुहोस्।"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"हटाउनुहोस्"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> को पृष्ठभूमिबाट सुरु गरिने अग्रभूमि सेवाका भविष्यमा आउने R बिल्डहरूमा चलाउँदै गर्दा प्रयोग गर्ने अनुमतिको दिइने छैन। कृपया go/r-bg-fgs-restriction हेर्नुहोस् र कुनै बगसम्बन्धी रिपोर्ट फाइल गर्नुहोस्।"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"सिफारिस तहभन्दा आवाज ठुलो गर्नुहुन्छ?\n\nलामो समय सम्म उच्च आवाजमा सुन्दा तपाईँको सुन्ने शक्तिलाई हानी गर्न सक्छ।"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"पहुँच सम्बन्धी सर्टकट प्रयोग गर्ने हो?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"सर्टकट सक्रिय हुँदा, भोल्युमका दुवै बटनहरूलाई ३ सेकेन्डसम्म थिची राख्नाले पहुँच सम्बन्धी कुनै सुविधा सुरु हुनेछ।\n\n हाल व्यवहारमा रहेको पहुँच सम्बन्धी सुविधा:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n तपाईं सेटिङहरू अन्तर्गतको पहुँच सम्बन्धी विकल्पमा गई उक्त सुविधालाई बदल्न सक्नुहुन्छ।"</string>
@@ -1858,8 +1855,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"एपको पज हटाउनुहोस्"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"कार्य प्रोफाइल सक्रिय गर्ने?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"तपाईंका कार्यसम्बन्धी अनुप्रयोग, सूचना, डेटा र कार्य प्रोफाइलका अन्य सुविधाहरू सक्रिय गरिने छन्‌"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"सक्रिय गर्नुहोस्"</string>
@@ -2013,12 +2009,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"विभाजित स्क्रिन टगल गर्नुहोस्"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"लक स्क्रिन"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"स्क्रिनसट"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"पहुँचसम्बन्धी मेनु"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> को क्याप्सन बार।"</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> लाई प्रतिबन्धित बाल्टीमा राखियो"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"व्यक्तिगत"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"काम"</string>
</resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 47de950c5c7d..13f6725c82b7 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Je apparaat wordt gewist"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"De beheer-app kan niet worden gebruikt. Je apparaat wordt nu gewist.\n\nNeem contact op met de beheerder van je organisatie als je vragen hebt."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Afdrukken uitgeschakeld door <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Persoonlijke apps zijn opgeschort door een beheerder"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tik hier om beleidsnaleving te controleren."</string>
<string name="me" msgid="6207584824693813140">"Ik"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tabletopties"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opties voor Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Je hebt je ontgrendelingspatroon <xliff:g id="NUMBER_0">%1$d</xliff:g> keer onjuist getekend. Na nog eens <xliff:g id="NUMBER_1">%2$d</xliff:g> mislukte pogingen wordt u gevraagd je telefoon te ontgrendelen via een e-mailaccount.\n\n Probeer het over <xliff:g id="NUMBER_2">%3$d</xliff:g> seconden opnieuw."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Verwijderen"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"De op de achtergrond gestarte voorgrondservice van <xliff:g id="PACKAGENAME">%1$s</xliff:g> heeft geen rechten tijdens gebruik in toekomstige R-builds. Ga naar go/r-bg-fgs-restriction en dien een bugrapport in."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Volume verhogen tot boven het aanbevolen niveau?\n\nAls je langere tijd op hoog volume naar muziek luistert, raakt je gehoor mogelijk beschadigd."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Snelkoppeling toegankelijkheid gebruiken?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Wanneer de snelkoppeling is ingeschakeld, kun je drie seconden op beide volumeknoppen drukken om een toegankelijkheidsfunctie te starten.\n\n Huidige toegankelijkheidsfunctie:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Je kunt de functie wijzigen in Instellingen &gt; Toegankelijkheid."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"App is niet beschikbaar"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> is nu niet beschikbaar. Dit wordt beheerd door <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Meer info"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"App niet meer onderbreken"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Werkprofiel inschakelen?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Je werk-apps, meldingen, gegevens en andere functies van je werkprofiel worden uitgeschakeld"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Inschakelen"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Gesplitst scherm schakelen"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Scherm vergrendelen"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Screenshot"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Toegankelijkheidsmenu"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Ondertitelingsbalk van <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Persoonlijk"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Werk"</string>
</resources>
diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml
index 1242188f791a..4424af7dcab0 100644
--- a/core/res/res/values-or/strings.xml
+++ b/core/res/res/values-or/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"ଆପଣଙ୍କ ଡିଭାଇସ୍‍ ବର୍ତ୍ତମାନ ଲିଭାଯିବ"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"ଆଡମିନ୍‍ ଆପ୍‍‍ ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ। ଆପଣଙ୍କ ଡିଭାଇସ୍‍‌ର ସମସ୍ତ ଡାଟାକୁ ବର୍ତ୍ତମାନ ଲିଭାଇଦିଆଯିବ। \n\nଯଦି ଆପଣଙ୍କର କୌଣସି ପ୍ରଶ୍ନ ରହିଥାଏ, ଆପଣଙ୍କ ସଂସ୍ଥାର ଆଡମିନ୍‌ଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ଦ୍ଵାରା ପ୍ରିଣ୍ଟିଙ୍ଗ ଅକ୍ଷମ କରାଯାଇଛି"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ବ୍ୟକ୍ତିଗତ ଆପଗୁଡ଼ିକୁ ଆଡମିନଙ୍କ ଦ୍ୱାରା ସାମୟିକ ଭାବରେ ବନ୍ଦ କରାଯାଇଛି"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ନୀତି ଅନୁପାଳନର ଯାଞ୍ଚ କରିବା ପାଇଁ ଏଠାରେ ଟାପ୍ କରନ୍ତୁ।"</string>
<string name="me" msgid="6207584824693813140">"ମୁଁ"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"ଟାବଲେଟ୍‌ର ବିକଳ୍ପ"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android ଟିଭିର ବିକଳ୍ପଗୁଡ଼ିକ"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"ଆପଣଙ୍କ ଅନଲକ୍‍ ପାଟର୍ନକୁ ଆପଣ <xliff:g id="NUMBER_0">%1$d</xliff:g> ଥର ଭୁଲ ଭାବେ ଅଙ୍କନ କରିଛନ୍ତି। ଆଉ <xliff:g id="NUMBER_1">%2$d</xliff:g>ଟି ଭୁଲ ପ୍ରୟାସ ପରେ ଏକ ଇମେଲ୍‍ ଆକାଉଣ୍ଟ ବ୍ୟବହାର କରି ନିଜ ଫୋନ୍‌କୁ ଅନଲକ୍‌ କରିବା ପାଇଁ କୁହାଯିବ।\n\n<xliff:g id="NUMBER_2">%3$d</xliff:g> ସେକେଣ୍ଡ ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"ବାହାର କରନ୍ତୁ"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"ପୃଷ୍ଠଭୂମିରେ <xliff:g id="PACKAGENAME">%1$s</xliff:g>ରୁ ଆରମ୍ଭ ହୋଇଥିବା ସମ୍ମୁଖଭାଗ ସେବା ପାଇଁ ଭବିଷ୍ୟତର R ବିଲ୍ଡଗୁଡ଼ିକରେ ବ୍ୟବହାର କରାଯିବା ସମୟରେ ଅନୁମତି ସୁବିଧା ରହିବ ନାହିଁ। ଦୟାକରି go/r-bg-fgs-restriction ଦେଖନ୍ତୁ ଏବଂ ଏକ ବଗରିପୋର୍ଟ ଫାଇଲ୍ କରନ୍ତୁ।"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ମାତ୍ରା ବଢ଼ାଇ ସୁପାରିଶ ସ୍ତର ବଢ଼ାଉଛନ୍ତି? \n\n ଲମ୍ବା ସମୟ ପର୍ଯ୍ୟନ୍ତ ଉଚ୍ଚ ଶବ୍ଦରେ ଶୁଣିଲେ ଆପଣଙ୍କ ଶ୍ରବଣ ଶକ୍ତି ଖରାପ ହୋଇପାରେ।"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ଆକ୍ସେସବିଲିଟି ଶର୍ଟକଟ୍‍ ବ୍ୟବହାର କରିବେ?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"ସର୍ଟକଟ୍‌ ଅନ୍‌ ଥିବା ବେଳେ, ଉଭୟ ଭଲ୍ୟୁମ୍‍ ବଟନ୍‍ 3 ସେକେଣ୍ଡ ପାଇଁ ଦବାଇବା ଦ୍ୱାରା ଆକ୍ସେସବିଲିଟି ବୈଶିଷ୍ଟ ଆରମ୍ଭ ହେବ।\n\n ସମ୍ପ୍ରତି ଆକ୍ସେସବିଲିଟି ବୈଶିଷ୍ଟ୍ୟ:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n ସେଟିଙ୍ଗ ଓ ଆକ୍ସେସବିଲିଟିରେ ଆପଣ ବୈଶିଷ୍ଟ୍ୟ ବଦଳାଇ ପାରିବେ।"</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ଆପ୍ ଅନପଜ୍ କରନ୍ତୁ"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"ୱର୍କ ପ୍ରୋଫାଇଲ୍‌କୁ ଚାଲୁ କରିବେ?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"ଆପଣଙ୍କର କାର୍ଯ୍ୟକାରୀ ଆପ୍‌, ବିଜ୍ଞପ୍ତି, ଡାଟା ଓ ଅନ୍ୟ ୱର୍କ ପ୍ରୋଫାଇଲ୍‌ଗୁଡ଼ିକ ଚାଲୁ ହୋଇଯିବ"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"ଅନ୍ କରନ୍ତୁ"</string>
@@ -1989,8 +1985,7 @@
<string name="mime_type_spreadsheet_ext" msgid="8720173181137254414">"<xliff:g id="EXTENSION">%1$s</xliff:g> ସ୍ପ୍ରେଡ୍‌ସିଟ୍"</string>
<string name="mime_type_presentation" msgid="1145384236788242075">"ଉପସ୍ଥାପନା"</string>
<string name="mime_type_presentation_ext" msgid="8761049335564371468">"<xliff:g id="EXTENSION">%1$s</xliff:g> ଉପସ୍ଥାପନା"</string>
- <!-- no translation found for bluetooth_airplane_mode_toast (2066399056595768554) -->
- <skip />
+ <string name="bluetooth_airplane_mode_toast" msgid="2066399056595768554">"ଏୟାରପ୍ଲେନ୍ ମୋଡରେ ବ୍ଲୁଟୁଥ୍ ଚାଲୁ ରହିବ"</string>
<string name="car_loading_profile" msgid="8219978381196748070">"ଲୋଡ୍ ହେଉଛି"</string>
<plurals name="file_count" formatted="false" msgid="7063513834724389247">
<item quantity="other"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g>ଟି ଫାଇଲ୍</item>
@@ -2008,13 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"ଦୁଇଟି ସ୍କ୍ରିନ୍ ମଧ୍ୟରେ ଟୋଗଲ୍ କରନ୍ତୁ"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"ସ୍କ୍ରିନ୍ ଲକ୍ କରନ୍ତୁ"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"ସ୍କ୍ରି‍ନ୍‍ସଟ୍ ନିଅନ୍ତୁ"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ଆକ୍ସେସିବିଲିଟୀ ମେନୁ"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>ର କ୍ୟାପ୍ସନ୍ ବାର୍।"</string>
- <!-- no translation found for as_app_forced_to_restricted_bucket (8233871289353898964) -->
- <skip />
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>କୁ ପ୍ରତିବନ୍ଧିତ ବକେଟରେ ରଖାଯାଇଛି"</string>
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"ବ୍ୟକ୍ତିଗତ"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"କାର୍ଯ୍ୟ"</string>
</resources>
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index b6513c399559..8c87581f9a61 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਮਿਟਾਇਆ ਜਾਏਗਾ"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਵਰਤੀ ਨਹੀਂ ਜਾ ਸਕਦੀ। ਹੁਣ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਡਾਟਾ ਮਿਟਾਇਆ ਜਾਵੇਗਾ।\n\nਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਸਵਾਲ ਹਨ, ਤਾਂ ਆਪਣੀ ਸੰਸਥਾ ਦੇ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ਵੱਲੋਂ ਪ੍ਰਿੰਟ ਕਰਨਾ ਬੰਦ ਕੀਤਾ ਗਿਆ।"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ਨਿੱਜੀ ਐਪਾਂ ਨੂੰ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਮੁਅੱਤਲ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ਨੀਤੀ ਦੀ ਪਾਲਣਾ ਨੂੰ ਦੇਖਣ ਲਈ ਇੱਥੇ ਟੈਪ ਕਰੋ।"</string>
<string name="me" msgid="6207584824693813140">"ਮੈਂ"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"ਟੈਬਲੈੱਟ ਵਿਕਲਪ"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV ਦੇ ਵਿਕਲਪ"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"ਤੁਸੀਂ <xliff:g id="NUMBER_0">%1$d</xliff:g> ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਡ੍ਰਾ ਕੀਤਾ ਹੈ। <xliff:g id="NUMBER_1">%2$d</xliff:g> ਹੋਰ ਅਸਫਲ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਨੂੰ ਇੱਕ ਈਮੇਲ ਖਾਤਾ ਵਰਤਦੇ ਹੋਏ ਆਪਣਾ ਫ਼ੋਨ ਅਣਲਾਕ ਕਰਨ ਲਈ ਕਿਹਾ ਜਾਏਗਾ।\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"ਹਟਾਓ"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> ਤੋਂ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਸ਼ੁਰੂ ਕੀਤੀ ਗਈ ਫੋਰਗ੍ਰਾਊਂਡ ਸੇਵਾ ਲਈ ਭਵਿੱਖੀ R ਬਿਲਡ ਵਿੱਚ \'ਵਰਤੋਂ ਵਿੱਚ ਹੋਣ \'ਤੇ ਇਜਾਜ਼ਤ\' ਵਿਸ਼ੇਸ਼ਤਾ ਨਹੀਂ ਹੋਵੇਗੀ। ਕਿਰਪਾ ਕਰਕੇ go/r-bg-fgs-restriction ਦੇਖੋ ਅਤੇ ਬੱਗ ਰਿਪੋਰਟ ਫ਼ਾਈਲ ਕਰੋ।"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"ਕੀ ਵੌਲਿਊਮ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੇ ਪੱਧਰ ਤੋਂ ਵਧਾਉਣੀ ਹੈ?\n\nਲੰਮੇ ਸਮੇਂ ਤੱਕ ਉੱਚ ਵੌਲਿਊਮ ਤੇ ਸੁਣਨ ਨਾਲ ਤੁਹਾਡੀ ਸੁਣਨ ਸ਼ਕਤੀ ਨੂੰ ਨੁਕਸਾਨ ਪਹੁੰਚ ਸਕਦਾ ਹੈ।"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ਕੀ ਪਹੁੰਚਯੋਗਤਾ ਸ਼ਾਰਟਕੱਟ ਵਰਤਣਾ ਹੈ?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"ਸ਼ਾਰਟਕੱਟ ਚਾਲੂ ਹੋਣ \'ਤੇ, ਕਿਸੇ ਪਹੁੰਚਯੋਗਤਾ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਅਵਾਜ਼ ਬਟਨਾਂ ਨੂੰ 3 ਸਕਿੰਟ ਲਈ ਦਬਾ ਕੇ ਰੱਖੋ।\n\n ਵਰਤਮਾਨ ਪਹੁੰਚਯੋਗਤਾ ਵਿਸ਼ੇਸ਼ਤਾ:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n ਤੁਸੀਂ ਸੈਟਿੰਗਾਂ &gt; ਪਹੁੰਚਯੋਗਤਾ ਵਿੱਚ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ਐਪ ਤੋਂ ਰੋਕ ਹਟਾਓ"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"ਕੀ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਚਾਲੂ ਕਰਨੀ ਹੈ?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"ਤੁਹਾਡੀਆਂ ਕਾਰਜ-ਸਥਾਨ ਐਪਾਂ, ਸੂਚਨਾਵਾਂ, ਡਾਟਾ ਅਤੇ ਹੋਰ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਚਾਲੂ ਕੀਤੀਆਂ ਜਾਣਗੀਆਂ"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"ਚਾਲੂ ਕਰੋ"</string>
@@ -1989,8 +1985,7 @@
<string name="mime_type_spreadsheet_ext" msgid="8720173181137254414">"<xliff:g id="EXTENSION">%1$s</xliff:g> ਸਪਰੈੱਡਸ਼ੀਟ"</string>
<string name="mime_type_presentation" msgid="1145384236788242075">"ਪੇਸ਼ਕਾਰੀ"</string>
<string name="mime_type_presentation_ext" msgid="8761049335564371468">"<xliff:g id="EXTENSION">%1$s</xliff:g> ਪੇਸ਼ਕਾਰੀ"</string>
- <!-- no translation found for bluetooth_airplane_mode_toast (2066399056595768554) -->
- <skip />
+ <string name="bluetooth_airplane_mode_toast" msgid="2066399056595768554">"ਹਵਾਈ-ਜਹਾਜ਼ ਮੋਡ ਵੇਲੇ ਬਲੂਟੁੱਥ ਹਾਲੇ ਵੀ ਚਾਲੂ ਹੋ ਜਾਵੇਗਾ"</string>
<string name="car_loading_profile" msgid="8219978381196748070">"ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
<plurals name="file_count" formatted="false" msgid="7063513834724389247">
<item quantity="one"><xliff:g id="FILE_NAME_2">%s</xliff:g> + <xliff:g id="COUNT_3">%d</xliff:g> ਫ਼ਾਈਲ</item>
@@ -2008,13 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"ਸਪਲਿਟ ਸਕ੍ਰੀਨ ਨੂੰ ਟੌਗਲ ਕਰੋ"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"ਲਾਕ ਸਕ੍ਰੀਨ"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"ਸਕ੍ਰੀਨਸ਼ਾਟ"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ਪਹੁੰਚਯੋਗਤਾ ਮੀਨੂ"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਦੀ ਸੁਰਖੀ ਪੱਟੀ।"</string>
- <!-- no translation found for as_app_forced_to_restricted_bucket (8233871289353898964) -->
- <skip />
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ਨੂੰ ਪ੍ਰਤਿਬੰਧਿਤ ਖਾਨੇ ਵਿੱਚ ਪਾਇਆ ਗਿਆ ਹੈ"</string>
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"ਨਿੱਜੀ"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"ਕੰਮ"</string>
</resources>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 964c973e491f..5efbfbe36830 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -95,7 +95,7 @@
<string name="notification_channel_mobile_data_status" msgid="1941911162076442474">"Stan mobilnej transmisji danych"</string>
<string name="notification_channel_sms" msgid="1243384981025535724">"SMS-y"</string>
<string name="notification_channel_voice_mail" msgid="8457433203106654172">"Wiadomości poczty głosowej"</string>
- <string name="notification_channel_wfc" msgid="9048240466765169038">"Połączenia przez Wi-Fi"</string>
+ <string name="notification_channel_wfc" msgid="9048240466765169038">"Połączenie przez Wi-Fi"</string>
<string name="notification_channel_sim" msgid="5098802350325677490">"Stan karty SIM"</string>
<string name="notification_channel_sim_high_prio" msgid="642361929452850928">"Stan karty SIM – wysoki priorytet"</string>
<string name="peerTtyModeFull" msgid="337553730440832160">"Drugie urządzenie zażądało trybu „TTY pełny”"</string>
@@ -133,14 +133,14 @@
</string-array>
<!-- no translation found for wfcSpnFormat_spn (2982505428519096311) -->
<skip />
- <string name="wfcSpnFormat_spn_wifi_calling" msgid="3165949348000906194">"<xliff:g id="SPN">%s</xliff:g>, połączenia przez Wi-Fi"</string>
+ <string name="wfcSpnFormat_spn_wifi_calling" msgid="3165949348000906194">"<xliff:g id="SPN">%s</xliff:g>, połączenie przez Wi-Fi"</string>
<string name="wfcSpnFormat_spn_wifi_calling_vo_hyphen" msgid="3836827895369365298">"<xliff:g id="SPN">%s</xliff:g>, połączenia przez Wi-Fi"</string>
<string name="wfcSpnFormat_wlan_call" msgid="4895315549916165700">"Połączenie przez WLAN"</string>
<string name="wfcSpnFormat_spn_wlan_call" msgid="255919245825481510">"<xliff:g id="SPN">%s</xliff:g>, połączenie przez WLAN"</string>
<string name="wfcSpnFormat_spn_wifi" msgid="7232899594327126970">"<xliff:g id="SPN">%s</xliff:g>, Wi-Fi"</string>
<string name="wfcSpnFormat_wifi_calling_bar_spn" msgid="8383917598312067365">"Połączenia przez Wi-Fi | <xliff:g id="SPN">%s</xliff:g>"</string>
<string name="wfcSpnFormat_spn_vowifi" msgid="6865214948822061486">"<xliff:g id="SPN">%s</xliff:g>, VoWifi"</string>
- <string name="wfcSpnFormat_wifi_calling" msgid="6178935388378661755">"Połączenia przez Wi-Fi"</string>
+ <string name="wfcSpnFormat_wifi_calling" msgid="6178935388378661755">"Połączenie przez Wi-Fi"</string>
<string name="wfcSpnFormat_wifi" msgid="1376356951297043426">"Wi-Fi"</string>
<string name="wfcSpnFormat_wifi_calling_wo_hyphen" msgid="7178561009225028264">"Połączenia przez Wi-Fi"</string>
<string name="wfcSpnFormat_vowifi" msgid="8371335230890725606">"VoWifi"</string>
@@ -198,10 +198,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Twoje urządzenie zostanie wyczyszczone"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Nie można użyć aplikacji administratora. Dane z urządzenia zostaną wykasowane.\n\nJeśli masz pytania, skontaktuj się z administratorem organizacji."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Drukowanie wyłączone przez: <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Aplikacje osobiste zostały zawieszone przez administratora"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Kliknij tutaj, by sprawdzić zgodność z zasadami."</string>
<string name="me" msgid="6207584824693813140">"Ja"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opcje tabletu"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opcje Androida TV"</string>
@@ -1657,8 +1655,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Po raz <xliff:g id="NUMBER_0">%1$d</xliff:g> nieprawidłowo narysowałeś wzór odblokowania. Po kolejnych <xliff:g id="NUMBER_1">%2$d</xliff:g> nieudanych próbach konieczne będzie odblokowanie telefonu przy użyciu danych logowania na konto Google.\n\n Spróbuj ponownie za <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Usuń"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Uruchomiona w tle usługa działająca w pierwszym planie z pakietu <xliff:g id="PACKAGENAME">%1$s</xliff:g> nie będzie miała uprawnień obowiązujących podczas używania w przyszłych kompilacjach R. Zapoznaj się z ograniczeniem go/r-bg-fgs-restriction i zgłoś błąd."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Zwiększyć głośność ponad zalecany poziom?\n\nSłuchanie głośno przez długi czas może uszkodzić Twój słuch."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Użyć skrótu do ułatwień dostępu?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Gdy skrót jest włączony, jednoczesne naciśnięcie przez trzy sekundy obu klawiszy sterowania głośnością uruchomi funkcję ułatwień dostępu.\n\nBieżąca funkcja ułatwień dostępu:\n<xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\nFunkcję możesz zmienić, wybierając Ustawienia &gt; Ułatwienia dostępu."</string>
@@ -1916,8 +1913,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Aplikacja niedostępna"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"Aplikacja <xliff:g id="APP_NAME_0">%1$s</xliff:g> nie jest teraz dostępna. Zarządza tym aplikacja <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Więcej informacji"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Wznów działanie aplikacji"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Włączyć profil służbowy?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Aplikacje do pracy, powiadomienia, dane i inne funkcje profilu do pracy zostaną włączone"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Włącz"</string>
@@ -2075,12 +2071,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Przełącz podzielony ekran"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Ekran blokady"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Zrzut ekranu"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu ułatwień dostępu"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Pasek napisów w aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g>"</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Osobiste"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Do pracy"</string>
</resources>
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index a6fd0fe230ec..db4844163ba9 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Seu dispositivo será limpo"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Não é possível usar o aplicativo para administrador. Seu dispositivo passará por uma limpeza agora.\n\nEm caso de dúvidas, entre em contato com o administrador da sua organização."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Impressão desativada por <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Os apps pessoais foram suspensos por um administrador"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Toque aqui para ver a conformidade com a política."</string>
<string name="me" msgid="6207584824693813140">"Eu"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opções do tablet"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opções do Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Você desenhou sua sequência de desbloqueio incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Se fizer mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas incorretas, será solicitado que você use o login do Google para desbloquear.\n\n Tente novamente em <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Remover"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"O serviço em primeiro plano iniciado em segundo plano por <xliff:g id="PACKAGENAME">%1$s</xliff:g> não receberá uma permissão durante o uso em futuras versões R. Consulte go/r-bg-fgs-restriction e crie um relatório de bug."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Aumentar o volume acima do nível recomendado?\n\nOuvir em volume alto por longos períodos pode danificar sua audição."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Usar atalho de Acessibilidade?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Quando o atalho está ativado, pressione os dois botões de volume por três segundos para iniciar um recurso de acessibilidade.\n\n Recurso de acessibilidade atual:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n É possível alterar o recurso em Configurações &gt; Acessibilidade."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"O app não está disponível"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"O app <xliff:g id="APP_NAME_0">%1$s</xliff:g> não está disponível no momento. Isso é gerenciado pelo app <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Saiba mais"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Retomar app"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Ativar o perfil de trabalho?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Seus apps, notificações, dados e outros recursos do perfil de trabalho serão ativados"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Ativar"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Ativar tela dividida"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Bloquear tela"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Capturar tela"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu de acessibilidade"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de legendas do app <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> foi colocado no intervalo \"RESTRITO\""</string>
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Pessoal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Trabalho"</string>
</resources>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 81f5ced0a044..04296fe10378 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"O seu dispositivo será apagado"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Não é possível utilizar a aplicação de administrador. O seu dispositivo será agora apagado.\n\nSe tiver questões, contacte o administrador da entidade."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Impressão desativada por <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"As apps pessoais foram suspensas por um administrador"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Toque aqui para verificar a conformidade da política."</string>
<string name="me" msgid="6207584824693813140">"Eu"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opções do tablet"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opções do Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Desenhou o padrão de desbloqueio incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Depois de mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas sem sucesso, ser-lhe-á pedido para desbloquear o telemóvel através de uma conta de email.\n\n Tente novamente dentro de <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" - "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Remover"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"O serviço em primeiro plano iniciado em segundo plano de <xliff:g id="PACKAGENAME">%1$s</xliff:g> não terá a autorização durante a utilização em compilações R futuras. Aceda a go/r-bg-fgs-restriction e envie um relatório de erros."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Aumentar o volume acima do nível recomendado?\n\nOuvir com um volume elevado durante longos períodos poderá ser prejudicial para a sua audição."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Pretende utilizar o atalho de acessibilidade?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Quando o atalho está ativado, premir ambos os botões de volume durante 3 segundos inicia uma funcionalidade de acessibilidade.\n\n Funcionalidade de acessibilidade atual:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Pode alterar a funcionalidade em Definições &gt; Acessibilidade."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"A aplicação não está disponível"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"A aplicação <xliff:g id="APP_NAME_0">%1$s</xliff:g> não está disponível neste momento. A aplicação <xliff:g id="APP_NAME_1">%2$s</xliff:g> gere esta definição."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Saiba mais"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Retomar app"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Ativar o perfil de trabalho?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"As aplicações de trabalho, as notificações, os dados e outras funcionalidades do perfil de trabalho serão desativados"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Ativar"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Ativar/desativar o ecrã dividido"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Ecrã de bloqueio"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Captura de ecrã"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu Acessibilidade"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de legendas da aplicação <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Pessoal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Trabalho"</string>
</resources>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index a6fd0fe230ec..db4844163ba9 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Seu dispositivo será limpo"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Não é possível usar o aplicativo para administrador. Seu dispositivo passará por uma limpeza agora.\n\nEm caso de dúvidas, entre em contato com o administrador da sua organização."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Impressão desativada por <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Os apps pessoais foram suspensos por um administrador"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Toque aqui para ver a conformidade com a política."</string>
<string name="me" msgid="6207584824693813140">"Eu"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opções do tablet"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opções do Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Você desenhou sua sequência de desbloqueio incorretamente <xliff:g id="NUMBER_0">%1$d</xliff:g> vezes. Se fizer mais <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativas incorretas, será solicitado que você use o login do Google para desbloquear.\n\n Tente novamente em <xliff:g id="NUMBER_2">%3$d</xliff:g> segundos."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Remover"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"O serviço em primeiro plano iniciado em segundo plano por <xliff:g id="PACKAGENAME">%1$s</xliff:g> não receberá uma permissão durante o uso em futuras versões R. Consulte go/r-bg-fgs-restriction e crie um relatório de bug."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Aumentar o volume acima do nível recomendado?\n\nOuvir em volume alto por longos períodos pode danificar sua audição."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Usar atalho de Acessibilidade?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Quando o atalho está ativado, pressione os dois botões de volume por três segundos para iniciar um recurso de acessibilidade.\n\n Recurso de acessibilidade atual:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n É possível alterar o recurso em Configurações &gt; Acessibilidade."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"O app não está disponível"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"O app <xliff:g id="APP_NAME_0">%1$s</xliff:g> não está disponível no momento. Isso é gerenciado pelo app <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Saiba mais"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Retomar app"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Ativar o perfil de trabalho?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Seus apps, notificações, dados e outros recursos do perfil de trabalho serão ativados"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Ativar"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Ativar tela dividida"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Bloquear tela"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Capturar tela"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu de acessibilidade"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Barra de legendas do app <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> foi colocado no intervalo \"RESTRITO\""</string>
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Pessoal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Trabalho"</string>
</resources>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index cb8d3fee32ca..030e76a2f6cf 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -196,10 +196,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Datele de pe dispozitiv vor fi șterse"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Aplicația de administrare nu poate fi utilizată. Dispozitivul va fi șters.\n\nDacă aveți întrebări, contactați administratorul organizației dvs."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Printare dezactivată de <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Aplicațiile personale au fost suspendate de un administrator"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Atingeți aici ca să verificați conformitatea cu politicile."</string>
<string name="me" msgid="6207584824693813140">"Eu"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opțiuni tablet PC"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opțiuni pentru Android TV"</string>
@@ -1635,8 +1633,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Ați desenat incorect modelul pentru deblocare de <xliff:g id="NUMBER_0">%1$d</xliff:g> ori. După încă <xliff:g id="NUMBER_1">%2$d</xliff:g> încercări nereușite, vi se va solicita să deblocați telefonul cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste <xliff:g id="NUMBER_2">%3$d</xliff:g> secunde."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Eliminați"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Serviciul în prim-plan inițializat în fundal din <xliff:g id="PACKAGENAME">%1$s</xliff:g> nu va avea permisiunea în timpul utilizării în versiunile R viitoare. Consultați go/r-bg-fgs-restriction și trimiteți un raport de eroare."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ridicați volumul mai sus de nivelul recomandat?\n\nAscultarea la volum ridicat pe perioade lungi de timp vă poate afecta auzul."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Utilizați comanda rapidă pentru accesibilitate?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Când comanda rapidă este activată, dacă apăsați ambele butoane de volum timp de 3 secunde, veți lansa o funcție de accesibilitate.\n\n Funcția actuală de accesibilitate:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Puteți schimba funcția în Setări &gt; Accesibilitate."</string>
@@ -1884,8 +1881,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Aplicația nu este disponibilă"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"Momentan, aplicația <xliff:g id="APP_NAME_0">%1$s</xliff:g> nu este disponibilă. Aceasta este gestionată de <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Aflați mai multe"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Anulați întreruperea aplicației"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Activați profilul de serviciu?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Se vor activa aplicațiile dvs. de serviciu, notificările, datele și alte funcții ale profilului de serviciu"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Activați"</string>
@@ -2041,12 +2037,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Activați ecranul împărțit"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Ecran de blocare"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Captură de ecran"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Meniul Accesibilitate"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Bară cu legenda pentru <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Serviciu"</string>
</resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 4821c7f9d175..94029f51c0c0 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -198,10 +198,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Все данные с устройства будут удалены"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Невозможно использовать приложение для администрирования. С устройства будут удалены все данные.\n\nЕсли у вас возникли вопросы, обратитесь к администратору."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Функция печати отключена приложением \"<xliff:g id="OWNER_APP">%s</xliff:g>\""</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Личные приложения временно заблокированы администратором"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Нажмите здесь, чтобы проверить их на соответствие правилам."</string>
<string name="me" msgid="6207584824693813140">"Я"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Настройки планшетного ПК"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Настройки Android TV"</string>
@@ -1657,8 +1655,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Вы <xliff:g id="NUMBER_0">%1$d</xliff:g> раз неверно указали графический ключ. После <xliff:g id="NUMBER_1">%2$d</xliff:g> неверных попыток для разблокировки телефона потребуется войти в аккаунт Google.\n\nПовтор через <xliff:g id="NUMBER_2">%3$d</xliff:g> сек."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Удалить"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Службы из пакета <xliff:g id="PACKAGENAME">%1$s</xliff:g>, переведенные из фонового режима в активный, не будут получать разрешение while-in-use в будущих сборках на языке R. Перейдите на страницу go/r-bg-fgs-restriction и отправьте отчет об ошибке."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Установить громкость выше рекомендуемого уровня?\n\nВоздействие громкого звука в течение долгого времени может привести к повреждению слуха."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Использовать быстрое включение?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Чтобы использовать функцию специальных возможностей, когда она включена, нажмите и удерживайте три секунды обе кнопки регулировки громкости.\n\nТекущая функция специальных возможностей:\n<xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\nВы можете изменить ее в разделе \"Настройки &gt; Специальные возможности\"."</string>
@@ -1916,8 +1913,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Возобновить работу приложения"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Включить рабочий профиль?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Будут включены корпоративные приложения, уведомления, данные и другие функции рабочего профиля."</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Включить"</string>
@@ -2075,12 +2071,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Включить или выключить разделение экрана"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Заблокированный экран"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Скриншот"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Меню специальных возможностей"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Строка субтитров в приложении \"<xliff:g id="APP_NAME">%1$s</xliff:g>\"."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Приложение \"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>\" помещено в категорию с ограниченным доступом."</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Личный"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Рабочий"</string>
</resources>
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index df14036c1a07..73cf01890108 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"ඔබගේ උපාංගය මකා දැමෙනු ඇත"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"පරිපාලක යෙදුම භාවිතා කළ නොහැකිය. ඔබේ උපාංගය දැන් මකා දමනු ඇත.\n\nඔබට ප්‍රශ්න තිබේ නම්, ඔබේ සංවිධානයේ පරිපාලකට අමතන්න."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> විසින් මුද්‍රණය කිරීම අබල කර ඇත."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"පුද්ගලික යෙදුම් පරිපාලකයෙකු විසින් අත්හිටුවා ඇත"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"ප්‍රතිපත්ති අනුකූලතාව පරීක්ෂා කිරීමට මෙහි තට්ටු කරන්න."</string>
<string name="me" msgid="6207584824693813140">"මම"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"ටැබ්ලට විකල්ප"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV විකල්ප"</string>
@@ -1615,8 +1613,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"ඔබ වැරදියට <xliff:g id="NUMBER_0">%1$d</xliff:g> වතාවක් ඔබගේ අගුළු හැරීමේ රටාව ඇඳ ඇත. අසාර්ථක උත්සහ කිරීම් <xliff:g id="NUMBER_1">%2$d</xliff:g> න් පසුව, ඔබගේ ඊ-තැපැල් ලිපිනය භාවිතයෙන් ඔබගේ දුරකථනය අගුළු හැරීමට ඔබගෙන් අසයි.\n\n තත්පර <xliff:g id="NUMBER_2">%3$d</xliff:g> න් පසුව නැවත උත්සහ කරන්න."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"ඉවත් කරන්න"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> වෙතින් පසුබිම ආරම්භ කරන ලද පෙරබිම් සේවාව අනාගත R තැනුම්වලදී භාවිතයේ අවසරය නැත. කරුණාකර go/r-bg-fgs-අවහිරතාව බලා දෝෂ වාර්තාවක් ගොනු කරන්න."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"නිර්දේශිතයි මට්ටමට වඩා ශබ්දය වැඩිද?\n\nදිගු කාලයක් සඳහා ඉහළ ශබ්දයක් ඇසීමෙන් ඇතැම් විට ඔබගේ ඇසීමට හානි විය හැක."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ප්‍රවේශ්‍යතා කෙටිමඟ භාවිතා කරන්නද?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"කෙටිමඟ සක්‍රිය විට, හඬ බොත්තම් දෙකම තත්පර 3ක් අල්ලාගෙන සිටීමෙන් ප්‍රවේශ්‍යත අංගයක් ඇරඹේ.\n\n වත්මන් ප්‍රවේශ්‍යතා අංගය:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n සැකසීම් &gt; ප්‍රවේශ්‍යතාව තුළ ඔබට අංගය වෙනස් කළ හැක."</string>
@@ -1854,8 +1851,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"යෙදුම විරාම කිරීම ඉවත් කරන්න"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"කාර්යාල පැතිකඩ ක්‍රියාත්මක කරන්නද?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"ඔබගේ වැඩ යෙදුම්, දැනුම්දීම්, දත්ත සහ වෙනත් කාර්යාල පැතිකඩ විශේෂාංග ක්‍රියාත්මක කරනු ඇත"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"ක්‍රියාත්මක කරන්න"</string>
@@ -2009,12 +2005,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"බෙදුම් තිරය ටොගල කරන්න"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"අගුලු තිරය"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"තිර රුව"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ප්‍රවේශ්‍යතා මෙනුව"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> හි සිරස්තල තීරුව."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> අවහිර කළ බාල්දියට දමා ඇත"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"පුද්ගලික"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"කාර්යාල"</string>
</resources>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index b0dc5f3cd342..b86fc4696a01 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -198,10 +198,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Vaše zariadenie bude vymazané"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Daná aplikácia na správu sa nedá použiť. Vaše zariadenie bude vymazané.\n\nV prípade otázok kontaktujte správcu organizácie."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Tlač zakázala aplikácia <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Osobné aplikácie boli pozastavené správcom"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Klepnutím tu skontrolujte súlad s pravidlami."</string>
<string name="me" msgid="6207584824693813140">"Ja"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Možnosti tabletu"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Možnosti zariadenia Android TV"</string>
@@ -1657,8 +1655,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"<xliff:g id="NUMBER_0">%1$d</xliff:g>-krát ste nesprávne nakreslili svoj bezpečnostný vzor. Po <xliff:g id="NUMBER_1">%2$d</xliff:g> ďalších neúspešných pokusoch sa zobrazí výzva na odomknutie telefónu pomocou e-mailového účtu.\n\n Skúste to znova o <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Odstrániť"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Služba na popredí spustená na pozadí z balíka <xliff:g id="PACKAGENAME">%1$s</xliff:g> nebude mať v budúcich zostavách R povolenie Počas používania. Prejdite na go/r-bg-fgs-restriction a odošlite hlásenie chyby."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Zvýšiť hlasitosť nad odporúčanú úroveň?\n\nDlhodobé počúvanie pri vysokej hlasitosti môže poškodiť váš sluch."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Použiť skratku dostupnosti?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Keď je skratka zapnutá, stlačením obidvoch tlačidiel hlasitosti na tri sekundy spustíte funkciu dostupnosti.\n\n Aktuálna funkcia dostupnosti:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Funkciu môžete zmeniť v časti Nastavenia &gt; Dostupnosť."</string>
@@ -1916,8 +1913,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Aplikácia nie je k dispozícii"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"Aplikácia <xliff:g id="APP_NAME_0">%1$s</xliff:g> nie je momentálne k dispozícii. Spravuje to aplikácia <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Ďalšie informácie"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Znova spustiť aplikáciu"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Zapnúť pracovný profil?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Pracovné aplikácie, upozornenia, dáta a ďalšie funkcie pracovného profilu sa zapnú"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Zapnúť"</string>
@@ -2075,12 +2071,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Prepnúť rozdelenú obrazovku"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Uzamknúť obrazovku"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Snímka obrazovky"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Ponuka Dostupnosť"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Popis aplikácie <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Osobné"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Práca"</string>
</resources>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index bdd5925d8a3e..bc2bc3acb7db 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -198,10 +198,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Podatki v napravi bodo izbrisani"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Skrbniške aplikacije ni mogoče uporabljati. Podatki v napravi bodo izbrisani.\n\nČe imate vprašanja, se obrnite na skrbnika organizacije."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Tiskanje je onemogočil pravilnik <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Osebne aplikacije je onemogočil skrbnik"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Dotaknite se tukaj, da preverite skladnost s pravilniki."</string>
<string name="me" msgid="6207584824693813140">"Jaz"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Možnosti tabličnega računalnika"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Možnosti naprave Android TV"</string>
@@ -1657,8 +1655,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Vzorec za odklepanje ste <xliff:g id="NUMBER_0">%1$d</xliff:g>-krat napačno vnesli. Po nadaljnjih <xliff:g id="NUMBER_1">%2$d</xliff:g> neuspešnih poskusih boste pozvani, da odklenete telefon z Googlovimi podatki za prijavo.\n\nPoskusite znova čez <xliff:g id="NUMBER_2">%3$d</xliff:g> s."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Odstrani"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"V prihodnjih različicah R storitev v ospredju z zagonom iz ozadja iz paketa <xliff:g id="PACKAGENAME">%1$s</xliff:g> ne bo imela dovoljenja med uporabo aplikacije. Oglejte si go/r-bg-fgs-restriction in pošljite poročilo o napakah."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ali želite povečati glasnost nad priporočeno raven?\n\nDolgotrajno poslušanje pri veliki glasnosti lahko poškoduje sluh."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Želite uporabljati bližnjico funkcij za ljudi s posebnimi potrebami?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Ko je bližnjica vklopljena, pritisnite gumba za glasnost in ju pridržite tri sekunde, če želite zagnati funkcijo za ljudi s posebnimi potrebami.\n\n Trenutna funkcija za ljudi s posebnimi potrebami:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Funkcijo lahko spremenite v »Nastavitve &gt; Funkcije za ljudi s posebnimi potrebami«."</string>
@@ -1916,8 +1913,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Aplikacija ni na voljo"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"Aplikacija <xliff:g id="APP_NAME_0">%1$s</xliff:g> trenutno ni na voljo. To upravlja aplikacija <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Več o tem"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Prekliči začasno zaustavitev aplikacije"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Želite vklopiti delovni profil?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Vklopili boste svoje delovne aplikacije, obvestila, podatke in druge funkcije delovnega profila"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Vklop"</string>
@@ -2075,12 +2071,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Preklop razdeljenega zaslona"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Zaklenjen zaslon"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Posnetek zaslona"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Meni s funkcijami za ljudi s posebnimi potrebami"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Vrstica s podnapisi aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Osebno"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Služba"</string>
</resources>
diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml
index fd8dda060448..a35328879f29 100644
--- a/core/res/res/values-sq/strings.xml
+++ b/core/res/res/values-sq/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Pajisja do të spastrohet"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Aplikacioni i administratorit nuk mund të përdoret. Pajisja jote tani do të fshihet.\n\nNëse ke pyetje, kontakto me administratorin e organizatës."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Printimi është çaktivizuar nga <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Aplikacionet personale janë pezulluar nga një administrator"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Trokit këtu për të kontrolluar përputhshmërinë me politikën."</string>
<string name="me" msgid="6207584824693813140">"Unë"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Opsionet e tabletit"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Opsionet e Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Ke vizatuar <xliff:g id="NUMBER_0">%1$d</xliff:g> herë pa sukses motivin tënd. Pas <xliff:g id="NUMBER_1">%2$d</xliff:g> tentativave të tjera të pasuksesshme, do të të duhet ta shkyçësh telefonin duke përdorur një llogari mail-i.\n\n Provo sërish për <xliff:g id="NUMBER_2">%3$d</xliff:g> sekonda."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" - "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Hiq"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Shërbimi në plan të parë i nisur në sfond nga <xliff:g id="PACKAGENAME">%1$s</xliff:g> nuk do të ketë lejen e nevojshme gjatë përdorimit në ndërtimet e ardhshme R. Shiko go/r-bg-fgs-restriction dhe dërgo një raport të defekteve në kod."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Të ngrihet volumi mbi nivelin e rekomanduar?\n\nDëgjimi me volum të lartë për periudha të gjata mund të dëmtojë dëgjimin."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Të përdoret shkurtorja e qasshmërisë?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Kur shkurtorja është e aktivizuar, shtypja e të dy butonave për 3 sekonda do të nisë një funksion qasshmërie.\n\n Funksioni aktual i qasshmërisë:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Mund ta ndryshosh funksionin te Cilësimet &gt; Qasshmëria."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Aplikacioni nuk ofrohet"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> nuk ofrohet në këtë moment. Kjo menaxhohet nga <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Mëso më shumë"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Anulo pauzën për aplikacionin"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Të aktivizohet profili i punës?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Aplikacionet e punës, njoftimet, të dhënat e tua dhe funksionet e tjera të profilit të punës do të aktivizohen"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Aktivizo"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Kalo tek ekrani i ndarë"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Ekrani i kyçjes"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Pamja e ekranit"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menyja e qasshmërisë"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Shiriti i nëntitullit të <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Puna"</string>
</resources>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index d82faa66ed12..8ee644ad2e4f 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -196,10 +196,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Уређај ће бити обрисан"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Не можете да користите ову апликацију за администраторе. Уређај ће сада бити обрисан.\n\nАко имате питања, контактирајте администратора организације."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Штампање је онемогућила апликација <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Администратор је суспендовао личне апликације"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Додирните овде да бисте проверили усклађеност са смерницама."</string>
<string name="me" msgid="6207584824693813140">"Ја"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Опције за таблет"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Опције Android TV-а"</string>
@@ -1635,8 +1633,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Нацртали сте шаблон за откључавање нетачно <xliff:g id="NUMBER_0">%1$d</xliff:g> пута. После још <xliff:g id="NUMBER_1">%2$d</xliff:g> неуспешна(их) покушаја, од вас ће бити затражено да откључате телефон помоћу налога е-поште.\n\nПробајте поново за <xliff:g id="NUMBER_2">%3$d</xliff:g> секунде/и."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Уклони"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Услуга у првом плану са <xliff:g id="PACKAGENAME">%1$s</xliff:g> која је покренута у позадини неће имати дозволу током коришћења у будућим R верзијама. Посетите go/r-bg-fgs-restriction и пошаљите извештај о грешци."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Желите да појачате звук изнад препорученог нивоа?\n\nСлушање гласне музике дуже време може да вам оштети слух."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Желите ли да користите пречицу за приступачност?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Када је пречица укључена, притисните оба дугмета за јачину звука да бисте покренули функцију приступачности.\n\n Актуелна функција приступачности:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Можете да промените функцију у одељку Подешавања &gt; Приступачност."</string>
@@ -1884,8 +1881,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Опозови паузирање апликације"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Да укључимо профил за Work?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Укључиће се пословне апликације, обавештења, подаци и друге функције профила за Work"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Укључи"</string>
@@ -2041,12 +2037,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Укључите/искључите подељени екран"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Закључани екран"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Снимак екрана"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Мени Приступачност"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Трака са насловима апликације <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакет <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> је додат у сегмент ОГРАНИЧЕНО"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Лични"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Пословни"</string>
</resources>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 9c7e1e5ecc4b..577933e6a296 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Enheten kommer att rensas"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Det går inte att använda administratörsappen. Enheten rensas.\n\nKontakta organisationens administratör om du har några frågor."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Utskrift har inaktiverats av <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Administratören har stängt av privata appar"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Tryck här för att kontrollera att policyn följs."</string>
<string name="me" msgid="6207584824693813140">"Jag"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Alternativ för surfplattan"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Alternativ för Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Du har ritat ditt grafiska lösenord fel <xliff:g id="NUMBER_0">%1$d</xliff:g> gånger. Efter ytterligare <xliff:g id="NUMBER_1">%2$d</xliff:g> försök ombeds du låsa upp mobilen med hjälp av ett e-postkonto.\n\n Försök igen om <xliff:g id="NUMBER_2">%3$d</xliff:g> sekunder."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Ta bort"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Förgrundstjänsten från <xliff:g id="PACKAGENAME">%1$s</xliff:g> som startades i bakgrunden får inte behörighet som gäller vid användning i framtida R-versioner. Besök go/r-bg-fgs-restriction och skicka en felrapport."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Vill du höja volymen över den rekommenderade nivån?\n\nAtt lyssna med stark volym långa stunder åt gången kan skada hörseln."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Vill du använda Aktivera tillgänglighet snabbt?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"När kortkommandot har aktiverats startar du en tillgänglighetsfunktion genom att trycka ned båda volymknapparna i tre sekunder.\n\n Aktuell tillgänglighetsfunktion:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Du kan ändra funktionen i Inställningar &gt; Tillgänglighet."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Appen är inte tillgänglig"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> är inte tillgänglig just nu. Detta hanteras av <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Läs mer"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Återuppta app"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Vill du aktivera jobbprofilen?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Jobbappar, aviseringar, data och andra funktioner i jobbprofilen aktiveras"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Aktivera"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Aktivera och inaktivera delad skärm"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Låsskärm"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Skärmdump"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Tillgänglighetsmenyn"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Textningsfält för <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Privat"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Jobb"</string>
</resources>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index f53efe068aec..a6ee3667b3c1 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Data iliyomo kwenye kifaa chako itafutwa"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Huwezi kutumia programu ya msimamizi. Sasa data iliyo kwenye kifaa chako itafutwa.\n\nIkiwa una maswali yoyote, wasiliana na msimamizi wa shirika lako."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Kipengele cha kuchapisha kimezimwa na <xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Programu za binafsi zimesimamishwa na msimamizi"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Gusa hapa ili uangalie utii wa sera."</string>
<string name="me" msgid="6207584824693813140">"Mimi"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Chaguo za kompyuta ndogo"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Chaguo za Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Umekosea kuchora mchoro wako wa kufungua mara <xliff:g id="NUMBER_0">%1$d</xliff:g>. Baada ya majaribio <xliff:g id="NUMBER_1">%2$d</xliff:g> yasiyofaulu, utaombwa kufungua simu yako kwa kutumia akaunti ya barua pepe.\n\n Jaribu tena baada ya sekunde <xliff:g id="NUMBER_2">%3$d</xliff:g>."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Ondoa"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Huduma ya programu inayotumika iliyoanzishwa chinichini kwenye <xliff:g id="PACKAGENAME">%1$s</xliff:g> haitakuwa na ruhusa inapotumika katika miundo ijayo ya R. Tafadhali angalia go/r-bg-fgs-restriction na uwasilishe ripoti ya hitilafu."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ungependa kupandisha sauti zaidi ya kiwango kinachopendekezwa?\n\nKusikiliza kwa sauti ya juu kwa muda mrefu kunaweza kuharibu uwezo wako wa kusikia."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Ungependa kutumia njia ya mkato ya ufikivu?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Unapowasha kipengele cha njia ya mkato, hatua ya kubonyeza vitufe vyote viwili vya sauti kwa dakika 3 itafungua kipengele cha ufikivu.\n\n Kipengele cha ufikivu kilichopo kwa sasa:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Unaweza kubadilisha kipengele hiki katika Mipangilio &gt; Zana za ufikivu."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Programu haipatikani"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> haipatikani kwa sasa. Inasimamiwa na <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Pata maelezo zaidi"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Acha kusimamisha programu"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Ungependa kuwasha wasifu wa kazini?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Hatua hii itawasha data, arifa, programu za kazini, arifa na vipengele vingine vya wasifu wa kazini"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Washa"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Geuza Skrini Iliyogawanywa"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Skrini Iliyofungwa"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Picha ya skrini"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menyu ya Ufikivu"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Upau wa manukuu wa <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Binafsi"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Kazini"</string>
</resources>
diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml
index c7c4ea3c6a5b..a56465fcd8ac 100644
--- a/core/res/res/values-ta/strings.xml
+++ b/core/res/res/values-ta/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"சாதனத் தரவு அழிக்கப்படும்"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"நிர்வாகி ஆப்ஸை உபயோகிக்க முடியாது. இப்போது, உங்கள் சாதனம் ஆரம்ப நிலைக்கு மீட்டமைக்கப்படும்.\n\nஏதேனும் கேள்விகள் இருப்பின், உங்கள் நிறுவனத்தின் நிர்வாகியைத் தொடர்புகொள்ளவும்."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"பிரிண்ட் செய்வதை <xliff:g id="OWNER_APP">%s</xliff:g> தடுத்துள்ளது."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"தனிப்பட்ட ஆப்ஸை நிர்வாகி ஒருவர் இடைநிறுத்தியுள்ளார்"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"கொள்கை இணக்கத்தைச் சரிபார்ப்பதற்கு இங்கே தட்டவும்."</string>
<string name="me" msgid="6207584824693813140">"நான்"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"டேப்லெட் விருப்பங்கள்"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV விருப்பத்தேர்வுகள்"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"திறப்பதற்கான வடிவத்தை <xliff:g id="NUMBER_0">%1$d</xliff:g> முறை தவறாக வரைந்துள்ளீர்கள். மேலும் <xliff:g id="NUMBER_1">%2$d</xliff:g> தோல்வி முயற்சிகளுக்குப் பிறகு, மின்னஞ்சல் கணக்கைப் பயன்படுத்தி உங்கள் மொபைலைத் திறக்கக் கேட்கப்படுவீர்கள்.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> வினாடிகள் கழித்து முயற்சிக்கவும்."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"அகற்று"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> இல் இருந்து பின்னணியில் தொடங்கப்பட்ட முன்புலச் சேவைக்கு, வரவுள்ள R பதிப்புகளில் உபயோகத்தின்போது மட்டுமான அனுமதி இருக்காது. go/r-bg-fgs-restriction என்பதைப் பார்த்து பிழை அறிக்கை ஒன்றைச் சமர்ப்பிக்கவும்."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"பரிந்துரைத்த அளவை விட ஒலியை அதிகரிக்கவா?\n\nநீண்ட நேரத்திற்கு அதிகளவில் ஒலி கேட்பது கேட்கும் திறனைப் பாதிக்கலாம்."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"அணுகல்தன்மை ஷார்ட்கட்டைப் பயன்படுத்தவா?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"ஷார்ட்கட் இயக்கத்தில் இருந்தால், இரண்டு ஒலியளவு பொத்தான்களையும் 3 வினாடிகள் அழுத்தி, அணுகல்தன்மை அம்சத்தை இயக்கலாம்.\n\n தற்போதைய அணுகல்தன்மை அம்சம்:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n அமைப்புகள் &gt; அணுகல்தன்மை என்பதற்குச் சென்று, அம்சத்தை மாற்றலாம்."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ஆப்ஸ் இயக்கு"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"பணிச் சுயவிவரத்தை ஆன் செய்யவா?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"பணி ஆப்ஸ், அறிவிப்புகள், தரவு மற்றும் பிற பணிச் சுயவிவர அம்சங்கள் ஆன் செய்யப்படும்"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"இயக்கு"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"திரைப் பிரிப்பை நிலைமாற்று"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"பூட்டுத் திரை"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"ஸ்கிரீன்ஷாட்"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"அணுகல்தன்மை மெனு"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> ஆப்ஸின் தலைப்புப் பட்டி."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> என்பதை வரம்பிடப்பட்ட பக்கெட்திற்குள் சேர்க்கப்பட்டது"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"தனிப்பட்ட சுயவிவரம்"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"பணிச் சுயவிவரம்"</string>
</resources>
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index 9c77ccd01b92..7a0aece84500 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"మీ పరికరంలోని డేటా తొలగించబడుతుంది"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"నిర్వాహక యాప్‌ ఉపయోగించడం సాధ్యపడదు. మీ పరికరంలోని డేటా ఇప్పుడు తొలగించబడుతుంది.\n\nమీకు ప్రశ్నలు ఉంటే, మీ సంస్థ యొక్క నిర్వాహకులను సంప్రదించండి."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"ముద్రణ <xliff:g id="OWNER_APP">%s</xliff:g> ద్వారా నిలిపివేయబడింది."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"అడ్మిన్ ద్వారా వ్యక్తిగత యాప్‌లు సస్పెండ్ చేయబడ్డాయి"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"పాలసీ పాటించబడుతోందో లేదో తనిఖీ చేయడానికి ఇక్కడ ట్యాప్ చేయండి."</string>
<string name="me" msgid="6207584824693813140">"నేను"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"టాబ్లెట్ ఎంపికలు"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV ఎంపికలు"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"మీరు మీ అన్‌లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, ఇమెయిల్ ఖాతాను ఉపయోగించి మీ ఫోన్‌ను అన్‌లాక్ చేయాల్సిందిగా మిమ్మల్ని అడుగుతారు.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"తీసివేయి"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> నుండి, బ్యాక్‌గ్రౌండ్‌లో ప్రారంభమైన ఫోర్ గ్రౌండ్ సేవకు భవిష్యత్తు R బిల్డ్స్‌లో \'ఉపయోగంలో వున్నప్పుడు\' అనుమతి ఉండదు. దయచేసి go/r-bg-fgs-restrictionను చూసి బగ్ నివేదికను ఫైల్ చేయండి."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"వాల్యూమ్‌ను సిఫార్సు చేయబడిన స్థాయి కంటే ఎక్కువగా పెంచాలా?\n\nసుదీర్ఘ వ్యవధుల పాటు అధిక వాల్యూమ్‌లో వినడం వలన మీ వినికిడి శక్తి దెబ్బ తినవచ్చు."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"యాక్సెస్ సామర్థ్యం షార్ట్‌కట్‌ను ఉపయోగించాలా?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"షార్ట్‌కట్ ఆన్‌లో ఉన్నప్పుడు, రెండు వాల్యూమ్ బటన్‌లను 3 సెకన్ల పాటు నొక్కితే యాక్సెస్ సామర్థ్య ఫీచర్ ప్రారంభం అవుతుంది.\n\n ప్రస్తుత యాక్సెస్ సామర్థ్య ఫీచర్:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n సెట్టింగ్‌లు &gt; యాక్సెస్ సామర్థ్యంలో మీరు ఫీచర్‌ను మార్చవచ్చు."</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"యాప్‌పై వున్న పాజ్‌ను తొలగించండి"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"కార్యాలయ ప్రొఫైల్‌ని ఆన్ చేయాలా?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"మీ కార్యాలయ యాప్‌లు, నోటిఫికేషన్‌లు, డేటా మరియు ఇతర కార్యాలయ ప్రొఫైల్ ఫీచర్‌లు ఆన్ చేయబడతాయి"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"ఆన్ చేయి"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"స్క్రీన్ విభజనను టోగుల్ చేయి"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"స్క్రీన్‌ను లాక్ చేయి"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"స్క్రీన్‌షాట్"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"యాక్సెసిబిలిటీ మెను"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> క్యాప్షన్ బార్."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> పరిమితం చేయబడిన బకెట్‌లో ఉంచబడింది"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"వ్యక్తిగతం"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"కార్యాలయం"</string>
</resources>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index efff25bf74c8..98f2d8880b8a 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"ระบบจะลบข้อมูลในอุปกรณ์ของคุณ"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"ใช้แอปผู้ดูแลระบบนี้ไม่ได้ ขณะนี้ระบบจะลบข้อมูลในอุปกรณ์ของคุณ\n\nโปรดติดต่อผู้ดูแลระบบขององค์กรหากมีคำถาม"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> ปิดใช้การพิมพ์แล้ว"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ผู้ดูแลระบบได้ระงับแอปส่วนตัวไว้"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"แตะที่นี่เพื่อตรวจสอบการปฏิบัติตามข้อกำหนดของนโยบาย"</string>
<string name="me" msgid="6207584824693813140">"ฉัน"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"ตัวเลือกของแท็บเล็ต"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"ตัวเลือกของ Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"คุณวาดรูปแบบการปลดล็อกไม่ถูกต้อง <xliff:g id="NUMBER_0">%1$d</xliff:g> ครั้งแล้ว หากทำไม่สำเร็จอีก <xliff:g id="NUMBER_1">%2$d</xliff:g> ครั้ง ระบบจะขอให้คุณปลดล็อกโทรศัพท์โดยใช้ับัญชีอีเมล\n\n โปรดลองอีกครั้งในอีก <xliff:g id="NUMBER_2">%3$d</xliff:g> วินาที"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"ลบ"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"บริการที่ทำงานอยู่เบื้องหน้าซึ่งเริ่มขึ้นในเบื้องหลังจาก <xliff:g id="PACKAGENAME">%1$s</xliff:g> จะไม่มีสิทธิ์ขณะใช้งานใน R บิลด์ต่อๆ ไป โปรดดู go/r-bg-fgs-restriction และส่งรายงานข้อบกพร่อง"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"นี่เป็นการเพิ่มระดับเสียงเกินระดับที่แนะนำ\n\nการฟังเสียงดังเป็นเวลานานอาจทำให้การได้ยินของคุณบกพร่องได้"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ใช้ทางลัดการช่วยเหลือพิเศษไหม"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"เมื่อทางลัดเปิดอยู่ การกดปุ่มปรับระดับเสียงทั้ง 2 ปุ่มเป็นเวลา 3 วินาทีจะเริ่มฟีเจอร์การช่วยเหลือพิเศษ\n\n ฟีเจอร์การช่วยเหลือพิเศษปัจจุบัน:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n คุณสามารถเปลี่ยนฟีเจอร์ในการตั้งค่า &gt; การช่วยเหลือพิเศษ"</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ยกเลิกการหยุดแอปชั่วคราว"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"เปิดโปรไฟล์งานไหม"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"ระบบจะเปิดแอปงาน การแจ้งเตือน ข้อมูล และฟีเจอร์อื่นๆ ในโปรไฟล์งาน"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"เปิด"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"เปิด/ปิดการแบ่งหน้าจอ"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"หน้าจอล็อก"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"ภาพหน้าจอ"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"เมนูการช่วยเหลือพิเศษ"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"แถบคำบรรยาย <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"ใส่ <xliff:g id="PACKAGE_NAME">%1$s</xliff:g> ในที่เก็บข้อมูลที่ถูกจำกัดแล้ว"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"ส่วนตัว"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"งาน"</string>
</resources>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 7cfa7b02ebaa..c38a6d54cdbd 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Buburahin ang iyong device"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Hindi magamit ang admin app. Mabubura na ang iyong device.\n\nKung mayroon kang mga tanong, makipag-ugnayan sa admin ng iyong organisasyon."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Na-disable ng <xliff:g id="OWNER_APP">%s</xliff:g> ang pag-print."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Sinuspinde ng isang admin ang mga personal na app"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Mag-tap dito para matingnan ang pagsunod sa patakaran."</string>
<string name="me" msgid="6207584824693813140">"Ako"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Mga pagpipilian sa tablet"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Mga opsyon sa Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Naguhit mo nang hindi tama ang iyong pattern sa pag-unlock nang <xliff:g id="NUMBER_0">%1$d</xliff:g> (na) beses. Pagkatapos ng <xliff:g id="NUMBER_1">%2$d</xliff:g> pang hindi matagumpay na pagtatangka, hihilingin sa iyong i-unlock ang telepono mo gamit ang isang email account.\n\n Subukang muli sa loob ng <xliff:g id="NUMBER_2">%3$d</xliff:g> (na) segundo."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Alisin"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Ang sinimulan sa background na serbisyo sa foreground mula sa <xliff:g id="PACKAGENAME">%1$s</xliff:g> ay hindi magkakaroon ng pahintulot habang ginagamit sa mga R build sa hinaharap. Pakipuntahan ang go/r-bg-fgs-restriction at maghain ng bugreport."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Lakasan ang volume nang lagpas sa inirerekomendang antas?\n\nMaaaring mapinsala ng pakikinig sa malakas na volume sa loob ng mahahabang panahon ang iyong pandinig."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Gagamitin ang Shortcut sa Pagiging Accessible?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Kapag naka-on ang shortcut, magsisimula ang isang feature ng pagiging naa-access kapag pinindot ang parehong button ng volume sa loob ng 3 segundo.\n\n Kasalukuyang feature ng pagiging naa-access:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Maaari mong baguhin ang feature sa Mga Setting &gt; Pagiging Accessible."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Hindi available ang app"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"Hindi available ang <xliff:g id="APP_NAME_0">%1$s</xliff:g> sa ngayon. Pinamamahalaan ito ng <xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Matuto pa"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"I-unpause ang app"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"I-on ang profile sa trabaho?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Mao-on ang iyong mga app sa trabaho, notification, data, at iba pang feature sa profile sa trabaho"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"I-on"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"I-toggle ang Split Screen"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Lock Screen"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Screenshot"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Menu ng Accessibility"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Caption bar ng <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Personal"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Trabaho"</string>
</resources>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index b47eb4bb025c..5e0930947afb 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Cihazınız silinecek"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Yönetim uygulaması kullanılamıyor. Cihazınız şimdi silinecek.\n\nSorularınız varsa kuruluşunuzun yöneticisine başvurun."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Yazdırma işlemi <xliff:g id="OWNER_APP">%s</xliff:g> tarafından devre dışı bırakıldı."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Kişisel uygulamalar bir yönetici tarafından askıya alındı"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Politika uyumluluğunu kontrol etmek için buraya dokunun."</string>
<string name="me" msgid="6207584824693813140">"Ben"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tablet seçenekleri"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV seçenekleri"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Kilit açma deseninizi <xliff:g id="NUMBER_0">%1$d</xliff:g> kez yanlış çizdiniz. <xliff:g id="NUMBER_1">%2$d</xliff:g> başarısız denemeden sonra telefonunuzu bir e-posta hesabı kullanarak açmanız istenir.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> saniye içinde tekrar deneyin."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Kaldır"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"<xliff:g id="PACKAGENAME">%1$s</xliff:g> paketinden ön plan hizmetini başlatan arka plan, sonraki R derlemelerinde kullanım sırasında iznine sahip olmayacak. Lütfen go/r-bg-fgs-restriction sayfasına bakıp hata raporu girin."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Ses seviyesi önerilen düzeyin üzerine yükseltilsin mi?\n\nUzun süre yüksek ses seviyesinde dinlemek işitme duyunuza zarar verebilir."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Erişilebilirlik Kısayolu Kullanılsın mı?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Kısayol açık olduğunda, ses düğmelerinin ikisini birden 3 saniyeliğine basılı tutmanız bir erişilebilirlik özelliğini başlatır.\n\n Geçerli erişilebilirlik özelliği:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Özelliği, Ayarlar &gt; Erişilebilirlik seçeneğinden değiştirebilirsiniz."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Uygulama kullanılamıyor"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> uygulaması şu anda kullanılamıyor. Uygulamanın kullanım durumu <xliff:g id="APP_NAME_1">%2$s</xliff:g> tarafından yönetiliyor."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Daha fazla bilgi"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Uygulamanın duraklatmasını kaldır"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"İş profili açılsın mı?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"İş uygulamalarınız, bildirimleriniz, verileriniz ve diğer iş profili özellikleriniz açılacak"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Aç"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Bölünmüş Ekranı aç/kapat"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Kilit Ekranı"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Ekran görüntüsü"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Erişilebilirlik Menüsü"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> uygulamasının başlık çubuğu."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Kişisel"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"İş"</string>
</resources>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 22aa199d9964..1096f97e3c98 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -198,10 +198,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"З вашого пристрою буде стерто всі дані"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Не можна запускати додаток для адміністраторів. Буде відновлено заводські налаштування пристрою.\n\nЯкщо у вас є запитання, зв’яжіться з адміністратором своєї організації."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Додаток <xliff:g id="OWNER_APP">%s</xliff:g> вимкнув друк."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Особисті додатки заблоковано адміністратором"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Натисніть тут, щоб перевірити відповідність правилам."</string>
<string name="me" msgid="6207584824693813140">"Я"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Парам. пристрою"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Опції Android TV"</string>
@@ -1657,8 +1655,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Ключ розблокування неправильно намальовано стільки разів: <xliff:g id="NUMBER_0">%1$d</xliff:g>. У вас є ще стільки спроб: <xliff:g id="NUMBER_1">%2$d</xliff:g>. У разі невдачі з’явиться запит розблокувати телефон за допомогою облікового запису електронної пошти.\n\n Повторіть спробу через <xliff:g id="NUMBER_2">%3$d</xliff:g> сек."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" – "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Вилучити"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Активний сервіс пакета <xliff:g id="PACKAGENAME">%1$s</xliff:g>, запущений у фоновому режимі, не матиме дозволу \"Коли додаток використовується\" в майбутніх складаннях R. Перегляньте go/r-bg-fgs-restriction і надішліть звіт про помилки."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Збільшити гучність понад рекомендований рівень?\n\nЯкщо слухати надто гучну музику тривалий час, можна пошкодити слух."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Використовувати швидке ввімкнення?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Коли ярлик увімкнено, після натискання обох клавіш гучності й утримування їх протягом 3 секунд увімкнеться функція спеціальних можливостей.\n\n Поточна функція спеціальних можливостей:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Цю функцію можна змінити в меню \"Налаштування\" &gt; \"Спеціальні можливості\"."</string>
@@ -1916,8 +1913,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Відновити доступ до додатка"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Увімкнути робочий профіль?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Додатки, сповіщення, дані й інші функції робочого профілю буде ввімкнено"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Увімкнути"</string>
@@ -2075,12 +2071,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Розділити екран"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Заблокувати екран"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Знімок екрана"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Меню спеціальних можливостей"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Смуга із субтитрами для додатка <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"Пакет \"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>\" додано в сегмент з обмеженнями"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Особисте"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Робоче"</string>
</resources>
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index a88d6c504964..4c331916bb57 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"آپ کا آلہ صاف کر دیا جائے گا"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"منتظم کی ایپ استعمال نہیں کی جا سکتی۔ آپ کا آلہ اب مٹا دیا جائے گا۔\n\nاگر آپ کے سوالات ہیں تو اپنی تنظیم کے منتظم سے رابطہ کریں۔"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> نے پرنٹنگ کو غیر فعال کر دیا ہے۔"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"ایک منتظم کے ذریعہ ذاتی ایپس معطل کر دی گئی ہیں"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"پالیسی کی تعمیل کو چیک کرنے کے ليے یہاں تھپتھپائیں۔"</string>
<string name="me" msgid="6207584824693813140">"میں"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"ٹیبلیٹ کے اختیارات"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"‏Android TV اختیارات"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"آپ نے اپنا غیر مقفل کرنے کا پیٹرن <xliff:g id="NUMBER_0">%1$d</xliff:g> بار غلط طریقے سے ڈرا کیا ہے۔ <xliff:g id="NUMBER_1">%2$d</xliff:g> مزید ناکام کوششوں کے بعد، آپ سے ایک ای میل اکاؤنٹ استعمال کرکے اپنا فون غیر مقفل کرنے کو کہا جائے گا۔\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> سیکنڈ میں دوبارہ کوشش کریں۔"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"ہٹائیں"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"‏پس منظر <xliff:g id="PACKAGENAME">%1$s</xliff:g> سے شروع کی گئی پیش منظر کی سروس کو مستقبل کے R بلڈز میں استعمال کے دوران اجازت نہیں ہوگی۔ براہ کرم go/r-bg-fgs-restriction دیکھیں اور بگ رپورٹ دائر کریں۔"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"والیوم کو تجویز کردہ سطح سے زیادہ کریں؟\n\nزیادہ وقت تک اونچی آواز میں سننے سے آپ کی سماعت کو نقصان پہنچ سکتا ہے۔"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"ایکسیسبیلٹی شارٹ کٹ استعمال کریں؟"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"شارٹ کٹ آن ہونے پر، 3 سیکنڈ تک دونوں والیوم بٹنز کو دبانے سے ایک ایکسیسبیلٹی خصوصیت شروع ہو جائے گی۔\n\n موجودہ ایکسیسبیلٹی خصوصیت:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n آپ خصوصیت کو ترتیبات &gt; ایکسیسبیلٹی میں جا کر تبدیل کر سکتے ہیں۔"</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"ایپ کو غیر موقوف کریں"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"دفتری پروفائل آن کریں؟"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"آپ کی دفتری ایپس، اطلاعات، ڈیٹا اور دفتری پروفائل کی دیگر خصوصیات آن کر دی جائیں گی"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"آن کریں"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"اسپلٹ اسکرین ٹوگل کریں"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"مقفل اسکرین"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"اسکرین شاٹ"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"ایکسیسبیلٹی مینو"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> کی کیپشن بار۔"</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> کو پابند کردہ بکٹ میں رکھ دیا گیا ہے"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"ذاتی"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"دفتر"</string>
</resources>
diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml
index a08b1788c5d6..23873b5f2b4f 100644
--- a/core/res/res/values-uz/strings.xml
+++ b/core/res/res/values-uz/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Qurilmangizdagi ma’lumotlar o‘chirib tashlanadi"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Administrator ilovasini ishlatib bo‘lmaydi. Qurilmada barcha ma’lumotlar o‘chirib tashlanadi.\n\nSavollaringiz bo‘lsa, administrator bilan bog‘laning."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Chop etish funksiyasi <xliff:g id="OWNER_APP">%s</xliff:g> tomonidan faolsizlantirilgan."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Shaxsiy ilovalar administrator tomonidan faolsizlantirildi"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Siyosatga muvofiqligini tekshirish uchun shu yerga bosing."</string>
<string name="me" msgid="6207584824693813140">"Men"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Planshet sozlamalari"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV parametrlari"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Siz grafik kalitni <xliff:g id="NUMBER_0">%1$d</xliff:g> marta noto‘g‘ri chizdingiz. <xliff:g id="NUMBER_1">%2$d</xliff:g> marta muvaffaqiyatsiz urinishdan so‘ng, sizdan e-pochtangizdan foydalanib, telefon qulfini ochishingiz so‘raladi.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> soniyadan so‘ng yana urinib ko‘ring."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Olib tashlash"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Fonda faol <xliff:g id="PACKAGENAME">%1$s</xliff:g> xizmatini ishga tushirish uchun kelgusi R nashrlarida ishlatilayotganda ruxsat berish imkoniyati boʻlmaydi. go/r-bg-fgs-restriction sahifasiga kiring va xatolik hisobotini yuboring."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Tovush balandligi tavsiya etilgan darajadan ham yuqori qilinsinmi?\n\nUzoq vaqt davomida baland ovozda tinglash eshitish qobiliyatingizga salbiy ta’sir ko‘rsatishi mumkin."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Tezkor ishga tushirishdan foydalanilsinmi?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Maxsus imkoniyatlar funksiyasidan foydalanish uchun u yoniqligida ikkala ovoz balandligini boshqarish tugmasini 3 soniya bosib turing.\n\n Joriy maxsus imkoniyatlar funksiyasi:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Bu funksiyani Sozlamalar &gt; Maxsus imkoniyatlar orqali o‘zgartirish mumkin."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Ilova ishlamayapti"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> ishlamayapti. Uning ishlashini <xliff:g id="APP_NAME_1">%2$s</xliff:g> cheklamoqda."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Batafsil"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Ilovani ishga tushirish"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Ishchi profil yoqilsinmi?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Ishchi ilovalar, bildirishnomalar, ma’lumotlar va boshqa ishchi profil imkoniyatlari yoqiladi"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Yoqish"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Ekranni ikkiga ajratish tugmasi"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Ekran qulfi"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Skrinshot"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Maxsus imkoniyatlar menyusi"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g> taglavhalar paneli."</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> cheklangan turkumga joylandi"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Shaxsiy"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Ish"</string>
</resources>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index db55613dce7e..1ed30d7db57e 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Thiết bị của bạn sẽ bị xóa"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Không thể sử dụng ứng dụng quản trị. Thiết bị của bạn sẽ bị xóa ngay bây giờ.\n\nHãy liên hệ với quản trị viên của tổ chức nếu bạn có thắc mắc."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"<xliff:g id="OWNER_APP">%s</xliff:g> đã tắt tính năng in."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Các ứng dụng cá nhân đã bị một quản trị viên tạm ngưng"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Nhấn vào đây để kiểm tra tính tuân thủ đối với chính sách."</string>
<string name="me" msgid="6207584824693813140">"Tôi"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Tùy chọn máy tính bảng"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Tùy chọn dành cho Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Bạn đã <xliff:g id="NUMBER_0">%1$d</xliff:g> lần vẽ không chính xác hình mở khóa của mình. Sau <xliff:g id="NUMBER_1">%2$d</xliff:g> lần thử không thành công nữa, bạn sẽ được yêu cầu mở khóa điện thoại bằng tài khoản email.\n\n Vui lòng thử lại sau <xliff:g id="NUMBER_2">%3$d</xliff:g> giây."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Xóa"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Dịch vụ trên nền trước đã bắt đầu ở nền từ <xliff:g id="PACKAGENAME">%1$s</xliff:g> sẽ không có quyền khi đang sử dụng trong các bản dựng R trong tương lai. Vui lòng xem go/r-bg-fgs-restriction và gửi báo cáo lỗi."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Bạn tăng âm lượng lên quá mức khuyên dùng?\n\nViệc nghe ở mức âm lượng cao trong thời gian dài có thể gây tổn thương thính giác của bạn."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Sử dụng phím tắt Hỗ trợ tiếp cận?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Khi phím tắt được bật, nhấn cả hai nút âm lượng trong 3 giây sẽ bắt đầu một tính năng trợ năng.\n\n Tính năng trợ năng hiện tại:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Bạn có thể thay đổi tính năng trong Cài đặt &gt; Trợ năng."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Ứng dụng không sử dụng được"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> hiện không sử dụng được. Chính sách này do <xliff:g id="APP_NAME_1">%2$s</xliff:g> quản lý."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Tìm hiểu thêm"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Mở lại ứng dụng"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Bạn muốn bật hồ sơ công việc?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Ứng dụng công việc, thông báo, dữ liệu và các tính năng khác của hồ sơ công việc sẽ được bật"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Bật"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Bật/tắt chế độ chia đôi màn hình"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Khóa màn hình"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Chụp ảnh màn hình"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Trình đơn Hỗ trợ tiếp cận"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Thanh phụ đề của <xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Cá nhân"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Cơ quan"</string>
</resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 08d232683c57..7671063821d0 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"系统将清空您的设备"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"无法使用管理应用,系统现在将清空您的设备。\n\n如有疑问,请与您所在单位的管理员联系。"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"“<xliff:g id="OWNER_APP">%s</xliff:g>”已停用打印功能。"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"管理员已暂停个人应用"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"点按此处即可检查政策合规性。"</string>
<string name="me" msgid="6207584824693813140">"我"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"平板电脑选项"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV 选项"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"您已连续 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次画错解锁图案。如果再尝试 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次后仍不成功,系统就会要求您使用自己的电子邮件帐号解锁手机。\n\n请在 <xliff:g id="NUMBER_2">%3$d</xliff:g> 秒后重试。"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"删除"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"在未来的 R 版本中,在后台启动的 <xliff:g id="PACKAGENAME">%1$s</xliff:g> 中的前台服务将不具有仅在使用时授予的权限。请访问 go/r-bg-fgs-restriction 并提交错误报告。"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"要将音量调高到建议的音量以上吗?\n\n长时间保持高音量可能会损伤听力。"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"要使用无障碍快捷方式吗?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"开启快捷方式后,同时按下两个音量按钮 3 秒钟即可启动所设定的无障碍功能。\n\n当前设定的无障碍功能:\n<xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n如需更改设定的功能,请依次转到“设置”&gt;“无障碍”。"</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"取消暂停应用"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"要开启工作资料吗?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"您的工作应用、通知、数据及其他工作资料功能将会开启"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"开启"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"开启/关闭分屏"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"锁定屏幕"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"屏幕截图"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"无障碍功能菜单"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"<xliff:g id="APP_NAME">%1$s</xliff:g>的标题栏。"</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> 已被放入受限存储分区"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"个人"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"工作"</string>
</resources>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index ea106c6c2a78..89bea07ae1a7 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"您的裝置將被清除"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"無法使用管理員應用程式。系統會現在清除您的裝置。\n\n如有任何疑問,請聯絡您的機構管理員。"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"「<xliff:g id="OWNER_APP">%s</xliff:g>」暫停了列印。"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"管理員已停用個人應用程式"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"輕按這裡查看應用程式是否符合政策要求。"</string>
<string name="me" msgid="6207584824693813140">"我本人"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"平板電腦選項"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV 選項"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"您已畫錯解鎖圖案 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次,如果再嘗試 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次仍未成功,系統會要求您透過電郵帳戶解開上鎖的手機。\n\n請在 <xliff:g id="NUMBER_2">%3$d</xliff:g> 秒後再試一次。"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"移除"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"從「<xliff:g id="PACKAGENAME">%1$s</xliff:g>」啟動前景服務的背景將不會在未來的 R 版本中提供「僅在使用此應用程式時允許」權限。請參閱 go/r-bg-fgs-restriction,提交錯誤報告。"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"要調高音量 (比建議的音量更大聲) 嗎?\n\n長時間聆聽高分貝音量可能會導致您的聽力受損。"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"要使用無障礙功能快速鍵嗎?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"快速鍵開啟後,同時按住音量按鈕 3 秒,無障礙功能便會啟用。\n\n目前的無障礙功能:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n如要變更功能,請前往「設定」&gt;「無障礙功能」。"</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"取消暫停應用程式"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"要開啟工作設定檔嗎?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"系統將開啟您的工作應用程式、通知、資料和其他工作設定檔功能"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"開啟"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"切換分割螢幕"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"將畫面上鎖"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"螢幕截圖"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"無障礙功能選單"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」的說明列。"</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"<xliff:g id="PACKAGE_NAME">%1$s</xliff:g> 已納入受限制的儲存區"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"個人"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"公司"</string>
</resources>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 70651816bfbd..c95ae37602a0 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"你的裝置資料將遭到清除"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"無法使用管理應用程式,系統現在將清除你裝置中的資料。\n\n如有任何問題,請與貴機構的管理員聯絡。"</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"「<xliff:g id="OWNER_APP">%s</xliff:g>」已停用列印功能。"</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"管理員已將個人應用程式設為暫停使用"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"輕觸這裡即可查看政策違規問題。"</string>
<string name="me" msgid="6207584824693813140">"我"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"平板電腦選項"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Android TV 選項"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"你的解鎖圖案已畫錯 <xliff:g id="NUMBER_0">%1$d</xliff:g> 次,如果再嘗試 <xliff:g id="NUMBER_1">%2$d</xliff:g> 次仍未成功,系統就會要求你透過電子郵件帳戶解除手機的鎖定狀態。\n\n請在 <xliff:g id="NUMBER_2">%3$d</xliff:g> 秒後再試一次。"</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"移除"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"來自「<xliff:g id="PACKAGENAME">%1$s</xliff:g>」的背景啟動前景服務不會具備未來 R 版本的使用狀態權限。請前往 go/r-bg-fgs-restriction 並提交錯誤報告。"</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"要調高音量,比建議的音量更大聲嗎?\n\n長時間聆聽高分貝音量可能會使你的聽力受損。"</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"要使用無障礙捷徑嗎?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"啟用捷徑功能後,只要同時按下兩個音量鍵 3 秒,就能啟動無障礙功能。\n\n 目前設定的無障礙功能為:\n<xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n 如要變更設定的功能,請依序輕觸 [設定] &gt; [無障礙設定]。"</string>
@@ -1852,8 +1849,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>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"取消暫停應用程式"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"要開啟工作資料夾嗎?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"系統將開啟你的辦公應用程式、通知、資料和其他工作資料夾功能"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"開啟"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"切換分割畫面模式"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"螢幕鎖定"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"擷取螢幕畫面"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"無障礙選單"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」的說明文字列。"</string>
<string name="as_app_forced_to_restricted_bucket" msgid="8233871289353898964">"已將「<xliff:g id="PACKAGE_NAME">%1$s</xliff:g>」移入受限制的值區"</string>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"個人"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"工作"</string>
</resources>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 1cb67e162da7..0cd669bb07a7 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -194,10 +194,8 @@
<string name="factory_reset_warning" msgid="6858705527798047809">"Idivayisi yakho izosulwa"</string>
<string name="factory_reset_message" msgid="2657049595153992213">"Uhlelo lokusebenza lomlawuli alikwazi ukusetshenziswa. Idivayisi yakho manje izosuswa.\n\nUma unemibuzo, xhumana nomlawuli wezinhlangano zakho."</string>
<string name="printing_disabled_by" msgid="3517499806528864633">"Ukuphrinta kukhutshazwe nge-<xliff:g id="OWNER_APP">%s</xliff:g>."</string>
- <!-- no translation found for personal_apps_suspended_notification_title (6551578720258229430) -->
- <skip />
- <!-- no translation found for personal_apps_suspended_notification_text (8321053338614244297) -->
- <skip />
+ <string name="personal_apps_suspended_notification_title" msgid="6551578720258229430">"Izinhlelo zokusebenza zimiswe okwesikhashana ngumlawuli"</string>
+ <string name="personal_apps_suspended_notification_text" msgid="8321053338614244297">"Thepha lapha ukuze uhlole ukuthobelana kwenqubomgomo."</string>
<string name="me" msgid="6207584824693813140">"Mina"</string>
<string name="power_dialog" product="tablet" msgid="8333207765671417261">"Okukhethwa kukho kwethebhulethi"</string>
<string name="power_dialog" product="tv" msgid="7792839006640933763">"Izinketho ze-Android TV"</string>
@@ -1613,8 +1611,7 @@
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"Ukulayisha ungenisa iphathini yakho yokuvula ngendlela engalungile izikhathi ezi-<xliff:g id="NUMBER_0">%1$d</xliff:g> Emva kweminye imizamo engu-<xliff:g id="NUMBER_1">%2$d</xliff:g>, uzocelwa ukuvula ifoni yakho usebenzisa ukungena ngemvume ku-Google\n\n Zame futhi emumva kwengu- <xliff:g id="NUMBER_2">%3$d</xliff:g> amasekhondi."</string>
<string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string>
<string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"Susa"</string>
- <!-- no translation found for allow_while_in_use_permission_in_fgs (4101339676785053656) -->
- <skip />
+ <string name="allow_while_in_use_permission_in_fgs" msgid="4101339676785053656">"Ingemuva eqalise isevisi yasemuva kusuka ku-<xliff:g id="PACKAGENAME">%1$s</xliff:g> ngeke ithole imvume yokusebenzisa yesikhathi ekwakheni kwe-R ezayo. Sicela ubone i-go/r-bg-fgs-restriction bese ufayele umbiko wesiphazamiso."</string>
<string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"Khuphukisa ivolumu ngaphezu kweleveli enconyiwe?\n\nUkulalela ngevolumu ephezulu izikhathi ezide kungahle kulimaze ukuzwa kwakho."</string>
<string name="accessibility_shortcut_warning_dialog_title" msgid="4017995837692622933">"Sebenzisa isinqamuleli sokufinyelela?"</string>
<string name="accessibility_shortcut_toogle_warning" msgid="8306239551412868396">"Uma kuvulwe isinqamuleli, ukucindezela zombili izinkinobho zevolumu amasekhondi angu-3 kuzoqala isici sokufinyelela.\n\n Isici samanje sokufinyelela:\n <xliff:g id="SERVICE_NAME">%1$s</xliff:g>\n\n Ungashintsha isici kuzilungiselelo &gt; Ukufinyelela."</string>
@@ -1852,8 +1849,7 @@
<string name="app_suspended_title" msgid="888873445010322650">"Uhlelo lokusebenza alutholakali"</string>
<string name="app_suspended_default_message" msgid="6451215678552004172">"I-<xliff:g id="APP_NAME_0">%1$s</xliff:g> ayitholakali okwamanje. Lokhu kuphethwe i-<xliff:g id="APP_NAME_1">%2$s</xliff:g>."</string>
<string name="app_suspended_more_details" msgid="211260942831587014">"Funda kabanzi"</string>
- <!-- no translation found for app_suspended_unsuspend_message (1665438589450555459) -->
- <skip />
+ <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"Susa ukuphumuza uhlelo lokusebenza"</string>
<string name="work_mode_off_title" msgid="5503291976647976560">"Vula iphrofayela yomsebenzi?"</string>
<string name="work_mode_off_message" msgid="8417484421098563803">"Izinhlelo zakho zokusebenza zomsebenzi, izaziso, idatha, nezinye izici zephrofayela yomsebenzi kuzovulwa"</string>
<string name="work_mode_turn_on" msgid="3662561662475962285">"Vula"</string>
@@ -2007,12 +2003,9 @@
<string name="accessibility_system_action_toggle_split_screen_label" msgid="6626177163849387748">"Guqula ukuhlukanisa isikrini"</string>
<string name="accessibility_system_action_lock_screen_label" msgid="5484190691945563838">"Khiya isikrini"</string>
<string name="accessibility_system_action_screenshot_label" msgid="3581566515062741676">"Isithombe-skrini"</string>
- <!-- no translation found for accessibility_system_action_accessibility_menu_label (8436484650391125184) -->
- <skip />
+ <string name="accessibility_system_action_accessibility_menu_label" msgid="8436484650391125184">"Imenyu yokufinyeleleka"</string>
<string name="accessibility_freeform_caption" msgid="8377519323496290122">"Ibha yamazwibela we-<xliff:g id="APP_NAME">%1$s</xliff:g>."</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>
- <!-- no translation found for resolver_personal_tab (2051260504014442073) -->
- <skip />
- <!-- no translation found for resolver_work_tab (2690019516263167035) -->
- <skip />
+ <string name="resolver_personal_tab" msgid="2051260504014442073">"Okomuntu siqu"</string>
+ <string name="resolver_work_tab" msgid="2690019516263167035">"Umsebenzi"</string>
</resources>
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index cfed805d5d88..b22e1867f257 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -301,6 +301,9 @@
<!-- Additional flag from base permission type: this permission can be automatically
granted to the system companion device manager service -->
<flag name="companion" value="0x800000" />
+ <!-- Additional flag from base permission type: this permission will be granted to the
+ retail demo app, as defined by the OEM. -->
+ <flag name="retailDemo" value="0x1000000" />
</attr>
<!-- Flags indicating more context for a permission group. -->
@@ -1781,8 +1784,11 @@
<attr name="crossProfile" format="boolean" />
</declare-styleable>
- <!-- The <code>feature</code> tag declares a feature. A feature is a part of an app. E.g.
- photo sharing app might include a direct messaging component.
+ <!-- The <code>feature</code> tag declares a feature. A feature is a logical part of an app.
+ E.g. photo sharing app might include a direct messaging component. To tag certain code as
+ belonging to a feature, use a context created via
+ {@link android.content.Context#createFeatureContext(String)} for any interaction with the
+ system.
<p>This appears as a child tag of the root {@link #AndroidManifest manifest} tag.
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 52b92d2660da..31e68e88c0a8 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -2565,7 +2565,11 @@
<string name="config_usbResolverActivity" translatable="false"
>com.android.systemui/com.android.systemui.usb.UsbResolverActivity</string>
- <!-- Name of the dialog that is used to request the user's consent to VPN connection -->
+ <!-- Name of the dialog that is used to request the user's consent for a Platform VPN -->
+ <string name="config_platformVpnConfirmDialogComponent" translatable="false"
+ >com.android.vpndialogs/com.android.vpndialogs.PlatformVpnConfirmDialog</string>
+
+ <!-- Name of the dialog that is used to request the user's consent for a VpnService VPN -->
<string name="config_customVpnConfirmDialogComponent" translatable="false"
>com.android.vpndialogs/com.android.vpndialogs.ConfirmDialog</string>
@@ -3556,25 +3560,16 @@
-->
<string name="config_defaultAutofillService" translatable="false"></string>
- <!-- The package name for the default system textclassifier service.
+ <!-- The package name for the OEM custom system textclassifier service.
This service must be trusted, as it can be activated without explicit consent of the user.
Example: "com.android.textclassifier"
- If no textclassifier service with the specified name exists on the device (or if this is
- set to empty string), a default textclassifier will be loaded in the calling app's process.
+ If this is empty, the default textclassifier service (i.e. config_servicesExtensionPackage)
+ will be used.
+
See android.view.textclassifier.TextClassificationManager.
-->
- <!-- TODO(b/144896755) remove the config -->
<string name="config_defaultTextClassifierPackage" translatable="false"></string>
- <!-- A list of supported system textClassifier service package names. Only one of the packages
- will be activated. The first package in the list is the default system textClassifier
- service. OS only tries to bind and grant permissions to the first trusted service and the
- others can be selected via device config. These services must be trusted, as they can be
- activated without explicit consent of the user. Example: "com.android.textclassifier"
- -->
- <string-array name="config_defaultTextClassifierPackages" translatable="false">
- <item>android.ext.services</item>
- </string-array>
<!-- The package name for the system companion device manager service.
This service must be trusted, as it can be activated without explicit consent of the user.
@@ -3590,7 +3585,6 @@
-->
<string name="config_defaultWellbeingPackage" translatable="false"></string>
-
<!-- The package name for the system telephony apps.
This package must be trusted, as it will be granted with permissions with special telephony
protection level. Note, framework by default support multiple telephony apps, each package
@@ -3658,6 +3652,19 @@
-->
<string name="config_defaultContentSuggestionsService" translatable="false"></string>
+ <!-- The package name for the default retail demo app.
+ This package must be trusted, as it has the permissions to query the usage stats on the
+ device.
+ Example: "com.google.android.retaildemo"
+ -->
+ <string name="config_retailDemoPackage" translatable="false"></string>
+
+ <!-- The package signature hash for the default retail demo app.
+ This package must be trusted, as it has the permissions to query the usage stats on the
+ device.
+ -->
+ <string name="config_retailDemoPackageSignature" translatable="false"></string>
+
<!-- Whether the device uses the default focus highlight when focus state isn't specified. -->
<bool name="config_useDefaultFocusHighlight">true</bool>
@@ -4331,4 +4338,12 @@
<!-- Boolean indicating whether frameworks needs to reset cell broadcast geo-fencing
check after reboot or airplane mode toggling -->
<bool translatable="false" name="reset_geo_fencing_check_after_boot_or_apm">false</bool>
+
+ <!-- Screen Wake Keys
+ Determines whether the specified key groups can be used to wake up the device. -->
+ <bool name="config_wakeOnDpadKeyPress">true</bool>
+ <bool name="config_wakeOnAssistKeyPress">true</bool>
+
+ <!-- Whether to default to an expanded list of users on the lock screen user switcher. -->
+ <bool name="config_expandLockScreenUserSwitcher">false</bool>
</resources>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index 0b5082cdaf94..22abedcac2a7 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -33,9 +33,11 @@
<dimen name="toast_y_offset">24dp</dimen>
<!-- Height of the status bar -->
<dimen name="status_bar_height">@dimen/status_bar_height_portrait</dimen>
- <!-- Height of the status bar in portrait -->
+ <!-- Height of the status bar in portrait. The height should be
+ Max((status bar content height + waterfall top size), top cutout size) -->
<dimen name="status_bar_height_portrait">24dp</dimen>
- <!-- Height of the status bar in landscape -->
+ <!-- Height of the status bar in landscape. The height should be
+ Max((status bar content height + waterfall top size), top cutout size) -->
<dimen name="status_bar_height_landscape">@dimen/status_bar_height_portrait</dimen>
<!-- Height of area above QQS where battery/time go -->
<dimen name="quick_qs_offset_height">48dp</dimen>
diff --git a/core/res/res/values/ids.xml b/core/res/res/values/ids.xml
index 51ed08b88111..bddda1bf6f6f 100644
--- a/core/res/res/values/ids.xml
+++ b/core/res/res/values/ids.xml
@@ -226,4 +226,7 @@
<!-- Accessibility action identifier for {@link android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction#ACTION_PRESS_AND_HOLD}. -->
<item type="id" name="accessibilityActionPressAndHold" />
+
+ <!-- Accessibility action identifier for {@link android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction#ACTION_IME_ENTER}. -->
+ <item type="id" name="accessibilityActionImeEnter" />
</resources>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 4f61730ad2e2..4172044dfa13 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -3066,6 +3066,7 @@
<public name="accessibilitySystemActionToggleSplitScreen" />
<public name="accessibilitySystemActionLockScreen" />
<public name="accessibilitySystemActionTakeScreenshot" />
+ <public name="accessibilityActionImeEnter" />
</public-group>
<public-group type="array" first-id="0x01070006">
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 11cc36544632..a54566cfed17 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -4936,6 +4936,13 @@
<!-- Title for button to turn on work profile. [CHAR LIMIT=NONE] -->
<string name="work_mode_turn_on">Turn on</string>
+ <!-- Title of the dialog that is shown when the user tries to launch a blocked application [CHAR LIMIT=50] -->
+ <string name="app_blocked_title">App is not available</string>
+ <!-- Default message shown in the dialog that is shown when the user tries to launch a blocked application [CHAR LIMIT=NONE] -->
+ <string name="app_blocked_message">
+ <xliff:g id="app_name" example="Gmail">%1$s</xliff:g> is not available right now.
+ </string>
+
<!-- Message displayed in dialog when app is too old to run on this verison of android. [CHAR LIMIT=NONE] -->
<string name="deprecated_target_sdk_message">This app was built for an older version of Android and may not work properly. Try checking for updates, or contact the developer.</string>
<!-- Title for button to see application detail in app store which it came from - it may allow user to update to newer version. [CHAR LIMIT=50] -->
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 21128e33b6e5..2453bb18577f 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1266,6 +1266,7 @@
<java-symbol type="array" name="vendor_disallowed_apps_managed_profile" />
<java-symbol type="array" name="vendor_disallowed_apps_managed_device" />
<java-symbol type="array" name="cross_profile_apps" />
+ <java-symbol type="array" name="vendor_cross_profile_apps" />
<java-symbol type="drawable" name="default_wallpaper" />
<java-symbol type="drawable" name="default_lock_wallpaper" />
@@ -2142,6 +2143,7 @@
<java-symbol type="string" name="config_customAdbPublicKeyConfirmationSecondaryUserComponent" />
<java-symbol type="string" name="config_customVpnConfirmDialogComponent" />
<java-symbol type="string" name="config_customVpnAlwaysOnDisconnectedDialogComponent" />
+ <java-symbol type="string" name="config_platformVpnConfirmDialogComponent" />
<java-symbol type="string" name="config_carrierAppInstallDialogComponent" />
<java-symbol type="string" name="config_defaultNetworkScorerPackageName" />
<java-symbol type="string" name="config_persistentDataPackageName" />
@@ -3026,6 +3028,10 @@
<java-symbol type="id" name="notification_action_list_margin_target" />
<java-symbol type="dimen" name="notification_action_disabled_alpha" />
+ <!-- Override Wake Key Behavior When Screen is Off -->
+ <java-symbol type="bool" name="config_wakeOnDpadKeyPress" />
+ <java-symbol type="bool" name="config_wakeOnAssistKeyPress" />
+
<!-- Pinner Service -->
<java-symbol type="array" name="config_defaultPinnerServiceFiles" />
<java-symbol type="bool" name="config_pinnerCameraApp" />
@@ -3042,6 +3048,9 @@
<java-symbol type="string" name="app_suspended_unsuspend_message" />
<java-symbol type="string" name="app_suspended_default_message" />
+ <java-symbol type="string" name="app_blocked_title" />
+ <java-symbol type="string" name="app_blocked_message" />
+
<!-- Used internally for assistant to launch activity transitions -->
<java-symbol type="id" name="cross_task_transition" />
@@ -3225,7 +3234,6 @@
<java-symbol type="drawable" name="ic_accessibility_magnification" />
<java-symbol type="drawable" name="ic_delete_item" />
- <java-symbol type="drawable" name="ic_open_in_new" />
<!-- com.android.internal.widget.RecyclerView -->
<java-symbol type="id" name="item_touch_helper_previous_elevation"/>
@@ -3385,7 +3393,6 @@
<java-symbol type="string" name="notification_channel_do_not_disturb" />
<java-symbol type="string" name="config_defaultAutofillService" />
<java-symbol type="string" name="config_defaultTextClassifierPackage" />
- <java-symbol type="array" name="config_defaultTextClassifierPackages" />
<java-symbol type="string" name="config_defaultWellbeingPackage" />
<java-symbol type="string" name="config_telephonyPackages" />
<java-symbol type="string" name="config_defaultContentCaptureService" />
@@ -3395,6 +3402,8 @@
<java-symbol type="string" name="config_defaultAttentionService" />
<java-symbol type="string" name="config_defaultSystemCaptionsService" />
<java-symbol type="string" name="config_defaultSystemCaptionsManagerService" />
+ <java-symbol type="string" name="config_retailDemoPackage" />
+ <java-symbol type="string" name="config_retailDemoPackageSignature" />
<java-symbol type="string" name="notification_channel_foreground_service" />
<java-symbol type="string" name="foreground_service_app_in_background" />
@@ -3854,4 +3863,7 @@
<!-- Toast message for background started foreground service while-in-use permission restriction feature -->
<java-symbol type="string" name="allow_while_in_use_permission_in_fgs" />
+
+ <!-- Whether to expand the lock screen user switcher by default -->
+ <java-symbol type="bool" name="config_expandLockScreenUserSwitcher" />
</resources>
diff --git a/core/res/res/values/vendor_cross_profile_apps.xml b/core/res/res/values/vendor_cross_profile_apps.xml
new file mode 100644
index 000000000000..32839cd17e1d
--- /dev/null
+++ b/core/res/res/values/vendor_cross_profile_apps.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<resources>
+ <!--
+ A collection of apps that have been pre-approved for cross-profile communication.
+ These will not require admin consent, but will still require user consent during provisioning.
+ -->
+ <string-array translatable="false" name="vendor_cross_profile_apps">
+ </string-array>
+</resources>
diff --git a/core/res/res/xml/default_zen_mode_config.xml b/core/res/res/xml/default_zen_mode_config.xml
index 6cf6a8273f5f..9110661536e2 100644
--- a/core/res/res/xml/default_zen_mode_config.xml
+++ b/core/res/res/xml/default_zen_mode_config.xml
@@ -18,9 +18,10 @@
-->
<!-- Default configuration for zen mode. See android.service.notification.ZenModeConfig. -->
-<zen version="8">
+<zen version="9">
<allow alarms="true" media="true" system="false" calls="true" callsFrom="2" messages="false"
- reminders="false" events="false" repeatCallers="true" />
+ reminders="false" events="false" repeatCallers="true" conversations="true"
+ conversationsFrom="2"/>
<automatic ruleId="EVENTS_DEFAULT_RULE" enabled="false" snoozing="false" name="Event" zen="1"
component="android/com.android.server.notification.EventConditionProvider"
conditionId="condition://android/event?userId=-10000&amp;calendar=&amp;reply=1"/>
diff --git a/core/res/res/xml/sms_short_codes.xml b/core/res/res/xml/sms_short_codes.xml
index 2d1c61cc22fc..70917e76f8b4 100644
--- a/core/res/res/xml/sms_short_codes.xml
+++ b/core/res/res/xml/sms_short_codes.xml
@@ -34,11 +34,14 @@
http://smscoin.net/software/engine/WordPress/Paid+SMS-registration/ -->
<!-- Arab Emirates -->
- <shortcode country="ae" pattern="\\d{1,5}" free="3214|1017" />
+ <shortcode country="ae" pattern="\\d{1,5}" free="1017|1355|3214" />
<!-- Albania: 5 digits, known short codes listed -->
<shortcode country="al" pattern="\\d{5}" premium="15191|55[56]00" />
+ <!-- Argentia: 5 digits, known short codes listed -->
+ <shortcode country="ar" pattern="\\d{5}" free="11711|28291" />
+
<!-- Armenia: 3-4 digits, emergency numbers 10[123] -->
<shortcode country="am" pattern="\\d{3,4}" premium="11[2456]1|3024" free="10[123]" />
@@ -80,7 +83,7 @@
<shortcode country="cn" premium="1066.*" free="1065.*" />
<!-- Colombia: 1-6 digits (not confirmed) -->
- <shortcode country="co" pattern="\\d{1,6}" free="890350|908160" />
+ <shortcode country="co" pattern="\\d{1,6}" free="890350|908160|892255|898002|898880|899960" />
<!-- Cyprus: 4-6 digits (not confirmed), known premium codes listed, plus EU -->
<shortcode country="cy" pattern="\\d{4,6}" premium="7510" free="116\\d{3}" />
@@ -181,7 +184,7 @@
<shortcode country="mk" pattern="\\d{1,6}" free="129005|122" />
<!-- Mexico: 4-5 digits (not confirmed), known premium codes listed -->
- <shortcode country="mx" pattern="\\d{4,5}" premium="53035|7766" free="46645|5050|26259|50025|50052|9963|76551" />
+ <shortcode country="mx" pattern="\\d{4,5}" premium="53035|7766" free="26259|46645|50025|50052|5050|76551|88778|9963" />
<!-- Malaysia: 5 digits: http://www.skmm.gov.my/attachment/Consumer_Regulation/Mobile_Content_Services_FAQs.pdf -->
<shortcode country="my" pattern="\\d{5}" premium="32298|33776" free="22099|28288" />
@@ -196,7 +199,7 @@
<shortcode country="no" pattern="\\d{4,5}" premium="2201|222[67]" free="2171" />
<!-- New Zealand: 3-4 digits, known premium codes listed -->
- <shortcode country="nz" pattern="\\d{3,4}" premium="3903|8995|4679" free="1737|2141|3067|3068|3110|4006|4053|4061|4062|4202|4300|4334|4412|4575|5626|8006|8681" />
+ <shortcode country="nz" pattern="\\d{3,4}" premium="3903|8995|4679" free="1737|176|2141|3067|3068|3110|4006|4053|4061|4062|4202|4300|4334|4412|4575|5626|8006|8681" />
<!-- Peru: 4-5 digits (not confirmed), known premium codes listed -->
<shortcode country="pe" pattern="\\d{4,5}" free="9963" />
@@ -264,4 +267,7 @@
<!-- Mayotte (French Territory): 1-5 digits (not confirmed) -->
<shortcode country="yt" pattern="\\d{1,5}" free="38600,36300,36303,959" />
+ <!-- South Africa -->
+ <shortcode country="za" pattern="\d{1,5}" free="44136" />
+
</shortcodes>
diff --git a/core/tests/PlatformCompatFramework/src/com/android/internal/compat/ChangeReporterTest.java b/core/tests/PlatformCompatFramework/src/com/android/internal/compat/ChangeReporterTest.java
index 09bbe37bf292..a052543c6446 100644
--- a/core/tests/PlatformCompatFramework/src/com/android/internal/compat/ChangeReporterTest.java
+++ b/core/tests/PlatformCompatFramework/src/com/android/internal/compat/ChangeReporterTest.java
@@ -24,10 +24,10 @@ import org.junit.Test;
public class ChangeReporterTest {
@Test
public void testStatsLogOnce() {
- ChangeReporter reporter = new ChangeReporter(0);
+ ChangeReporter reporter = new ChangeReporter(ChangeReporter.SOURCE_UNKNOWN_SOURCE);
int myUid = 1022, otherUid = 1023;
long myChangeId = 500L, otherChangeId = 600L;
- int myState = 1, otherState = 2;
+ int myState = ChangeReporter.STATE_ENABLED, otherState = ChangeReporter.STATE_DISABLED;
assertTrue(reporter.shouldWriteToStatsLog(myUid, myChangeId, myState));
reporter.reportChange(myUid, myChangeId, myState);
@@ -42,10 +42,10 @@ public class ChangeReporterTest {
@Test
public void testStatsLogAfterReset() {
- ChangeReporter reporter = new ChangeReporter(0);
+ ChangeReporter reporter = new ChangeReporter(ChangeReporter.SOURCE_UNKNOWN_SOURCE);
int myUid = 1022;
long myChangeId = 500L;
- int myState = 1;
+ int myState = ChangeReporter.STATE_ENABLED;
assertTrue(reporter.shouldWriteToStatsLog(myUid, myChangeId, myState));
reporter.reportChange(myUid, myChangeId, myState);
@@ -60,10 +60,10 @@ public class ChangeReporterTest {
@Test
public void testDebugLogOnce() {
- ChangeReporter reporter = new ChangeReporter(0);
+ ChangeReporter reporter = new ChangeReporter(ChangeReporter.SOURCE_UNKNOWN_SOURCE);
int myUid = 1022, otherUid = 1023;
long myChangeId = 500L, otherChangeId = 600L;
- int myState = 1, otherState = 2;
+ int myState = ChangeReporter.STATE_ENABLED, otherState = ChangeReporter.STATE_DISABLED;
assertTrue(reporter.shouldWriteToDebug(myUid, myChangeId, myState));
reporter.reportChange(myUid, myChangeId, myState);
@@ -78,10 +78,10 @@ public class ChangeReporterTest {
@Test
public void testDebugLogAfterReset() {
- ChangeReporter reporter = new ChangeReporter(0);
+ ChangeReporter reporter = new ChangeReporter(ChangeReporter.SOURCE_UNKNOWN_SOURCE);
int myUid = 1022;
long myChangeId = 500L;
- int myState = 1;
+ int myState = ChangeReporter.STATE_ENABLED;
assertTrue(reporter.shouldWriteToDebug(myUid, myChangeId, myState));
reporter.reportChange(myUid, myChangeId, myState);
@@ -96,10 +96,10 @@ public class ChangeReporterTest {
@Test
public void testDebugLogWithLogAll() {
- ChangeReporter reporter = new ChangeReporter(0);
+ ChangeReporter reporter = new ChangeReporter(ChangeReporter.SOURCE_UNKNOWN_SOURCE);
int myUid = 1022;
long myChangeId = 500L;
- int myState = 1;
+ int myState = ChangeReporter.STATE_ENABLED;
assertTrue(reporter.shouldWriteToDebug(myUid, myChangeId, myState));
reporter.reportChange(myUid, myChangeId, myState);
diff --git a/core/tests/coretests/Android.bp b/core/tests/coretests/Android.bp
index 38454ecb6111..9f15fafe2bf1 100644
--- a/core/tests/coretests/Android.bp
+++ b/core/tests/coretests/Android.bp
@@ -38,6 +38,7 @@ android_test {
"mockito-target-minus-junit4",
"ub-uiautomator",
"platform-test-annotations",
+ "platform-compat-test-rules",
"truth-prebuilt",
"print-test-util-lib",
"testng",
diff --git a/core/tests/coretests/AndroidManifest.xml b/core/tests/coretests/AndroidManifest.xml
index 23f9f90248df..59335a595334 100644
--- a/core/tests/coretests/AndroidManifest.xml
+++ b/core/tests/coretests/AndroidManifest.xml
@@ -111,6 +111,10 @@
<uses-permission android:name="android.permission.MOVE_PACKAGE" />
<uses-permission android:name="android.permission.PACKAGE_VERIFICATION_AGENT" />
+ <!-- gating and logging permissions -->
+ <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE" />
+ <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
+
<!-- os storage test permissions -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.ASEC_ACCESS" />
@@ -1341,6 +1345,10 @@
<service android:name="android.os.BinderWorkSourceNestedService"
android:process=":BinderWorkSourceNestedService" />
+ <!-- Used by BinderProxyTest -->
+ <service android:name="android.os.BinderProxyService"
+ android:process=":BinderProxyService" />
+
<!-- Application components used for search manager tests -->
<activity android:name="android.app.activity.SearchableActivity"
diff --git a/core/tests/coretests/BstatsTestApp/src/com/android/coretests/apps/bstatstestapp/TestService.java b/core/tests/coretests/BstatsTestApp/src/com/android/coretests/apps/bstatstestapp/TestService.java
index 8a22aca6464d..a027f9eb3a4e 100644
--- a/core/tests/coretests/BstatsTestApp/src/com/android/coretests/apps/bstatstestapp/TestService.java
+++ b/core/tests/coretests/BstatsTestApp/src/com/android/coretests/apps/bstatstestapp/TestService.java
@@ -22,12 +22,12 @@ import android.app.NotificationManager;
import android.app.Service;
import android.content.Intent;
import android.graphics.Color;
-import android.graphics.Point;
import android.os.Handler;
import android.os.IBinder;
import android.os.Process;
import android.os.RemoteException;
import android.util.Log;
+import android.util.Size;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
@@ -108,16 +108,15 @@ public class TestService extends Service {
@Override
public void showApplicationOverlay() throws RemoteException {
final WindowManager wm = TestService.this.getSystemService(WindowManager.class);
- final Point size = new Point();
- wm.getDefaultDisplay().getSize(size);
+ final Size size = wm.getCurrentWindowMetrics().getSize();
final WindowManager.LayoutParams wmlp = new WindowManager.LayoutParams(
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
- wmlp.width = size.x / 2;
- wmlp.height = size.y / 2;
+ wmlp.width = size.getWidth() / 2;
+ wmlp.height = size.getHeight() / 2;
wmlp.gravity = Gravity.CENTER | Gravity.LEFT;
wmlp.setTitle(TAG);
diff --git a/core/tests/coretests/src/android/app/activity/ActivityManagerTest.java b/core/tests/coretests/src/android/app/activity/ActivityManagerTest.java
index 6c5d5485664e..02be557c01bd 100644
--- a/core/tests/coretests/src/android/app/activity/ActivityManagerTest.java
+++ b/core/tests/coretests/src/android/app/activity/ActivityManagerTest.java
@@ -24,6 +24,9 @@ import android.app.ActivityManager.TaskDescription;
import android.content.Context;
import android.content.pm.ConfigurationInfo;
import android.content.res.Configuration;
+import android.graphics.Bitmap;
+import android.os.Parcel;
+import android.os.Parcelable;
import android.test.AndroidTestCase;
import androidx.test.filters.SmallTest;
@@ -137,21 +140,7 @@ public class ActivityManagerTest extends AndroidTestCase {
// Must overwrite all the fields
td2.copyFrom(td1);
- assertEquals(td1.getLabel(), td2.getLabel());
- assertEquals(td1.getInMemoryIcon(), td2.getInMemoryIcon());
- assertEquals(td1.getIconFilename(), td2.getIconFilename());
- assertEquals(td1.getIconResource(), td2.getIconResource());
- assertEquals(td1.getPrimaryColor(), td2.getPrimaryColor());
- assertEquals(td1.getBackgroundColor(), td2.getBackgroundColor());
- assertEquals(td1.getStatusBarColor(), td2.getStatusBarColor());
- assertEquals(td1.getNavigationBarColor(), td2.getNavigationBarColor());
- assertEquals(td1.getEnsureStatusBarContrastWhenTransparent(),
- td2.getEnsureStatusBarContrastWhenTransparent());
- assertEquals(td1.getEnsureNavigationBarContrastWhenTransparent(),
- td2.getEnsureNavigationBarContrastWhenTransparent());
- assertEquals(td1.getResizeMode(), td2.getResizeMode());
- assertEquals(td1.getMinWidth(), td2.getMinWidth());
- assertEquals(td1.getMinHeight(), td2.getMinHeight());
+ assertTaskDescriptionEqual(td1, td2, true, true);
}
@SmallTest
@@ -191,44 +180,101 @@ public class ActivityManagerTest extends AndroidTestCase {
// Must overwrite all public and hidden fields, since other has all fields set.
td2.copyFromPreserveHiddenFields(td1);
- assertEquals(td1.getLabel(), td2.getLabel());
- assertEquals(td1.getInMemoryIcon(), td2.getInMemoryIcon());
- assertEquals(td1.getIconFilename(), td2.getIconFilename());
- assertEquals(td1.getIconResource(), td2.getIconResource());
- assertEquals(td1.getPrimaryColor(), td2.getPrimaryColor());
- assertEquals(td1.getBackgroundColor(), td2.getBackgroundColor());
- assertEquals(td1.getStatusBarColor(), td2.getStatusBarColor());
- assertEquals(td1.getNavigationBarColor(), td2.getNavigationBarColor());
- assertEquals(td1.getEnsureStatusBarContrastWhenTransparent(),
- td2.getEnsureStatusBarContrastWhenTransparent());
- assertEquals(td1.getEnsureNavigationBarContrastWhenTransparent(),
- td2.getEnsureNavigationBarContrastWhenTransparent());
- assertEquals(td1.getResizeMode(), td2.getResizeMode());
- assertEquals(td1.getMinWidth(), td2.getMinWidth());
- assertEquals(td1.getMinHeight(), td2.getMinHeight());
+ assertTaskDescriptionEqual(td1, td2, true, true);
TaskDescription td3 = new TaskDescription();
// Must overwrite only public fields, and preserve hidden fields.
td2.copyFromPreserveHiddenFields(td3);
- // Overwritten fields
- assertEquals(td3.getLabel(), td2.getLabel());
- assertEquals(td3.getInMemoryIcon(), td2.getInMemoryIcon());
- assertEquals(td3.getIconFilename(), td2.getIconFilename());
- assertEquals(td3.getIconResource(), td2.getIconResource());
- assertEquals(td3.getPrimaryColor(), td2.getPrimaryColor());
- assertEquals(td3.getEnsureStatusBarContrastWhenTransparent(),
- td2.getEnsureStatusBarContrastWhenTransparent());
- assertEquals(td3.getEnsureNavigationBarContrastWhenTransparent(),
- td2.getEnsureNavigationBarContrastWhenTransparent());
-
- // Preserved fields
- assertEquals(td1.getBackgroundColor(), td2.getBackgroundColor());
- assertEquals(td1.getStatusBarColor(), td2.getStatusBarColor());
- assertEquals(td1.getNavigationBarColor(), td2.getNavigationBarColor());
- assertEquals(td1.getResizeMode(), td2.getResizeMode());
- assertEquals(td1.getMinWidth(), td2.getMinWidth());
- assertEquals(td1.getMinHeight(), td2.getMinHeight());
+ assertTaskDescriptionEqual(td3, td2, true, false);
+ assertTaskDescriptionEqual(td1, td2, false, true);
+ }
+
+ @SmallTest
+ public void testTaskDescriptionParceling() throws Exception {
+ TaskDescription tdBitmapNull = new TaskDescription(
+ "test label", // label
+ null, // bitmap
+ 21, // iconRes
+ "dummy file", // iconFilename
+ 0x111111, // colorPrimary
+ 0x222222, // colorBackground
+ 0x333333, // statusBarColor
+ 0x444444, // navigationBarColor
+ false, // ensureStatusBarContrastWhenTransparent
+ false, // ensureNavigationBarContrastWhenTransparent
+ RESIZE_MODE_UNRESIZEABLE, // resizeMode
+ 10, // minWidth
+ 20 // minHeight
+ );
+
+ // Normal parceling should keep everything the same.
+ TaskDescription tdParcelled = new TaskDescription(parcelingRoundTrip(tdBitmapNull));
+ assertTaskDescriptionEqual(tdBitmapNull, tdParcelled, true, true);
+
+ Bitmap recycledBitmap = Bitmap.createBitmap(100, 200, Bitmap.Config.ARGB_8888);
+ recycledBitmap.recycle();
+ assertTrue(recycledBitmap.isRecycled());
+ TaskDescription tdBitmapRecycled = new TaskDescription(
+ "test label", // label
+ recycledBitmap, // bitmap
+ 21, // iconRes
+ "dummy file", // iconFilename
+ 0x111111, // colorPrimary
+ 0x222222, // colorBackground
+ 0x333333, // statusBarColor
+ 0x444444, // navigationBarColor
+ false, // ensureStatusBarContrastWhenTransparent
+ false, // ensureNavigationBarContrastWhenTransparent
+ RESIZE_MODE_UNRESIZEABLE, // resizeMode
+ 10, // minWidth
+ 20 // minHeight
+ );
+ // Recycled bitmap will be ignored while parceling.
+ tdParcelled = new TaskDescription(parcelingRoundTrip(tdBitmapRecycled));
+ assertTaskDescriptionEqual(tdBitmapNull, tdParcelled, true, true);
+
+ }
+
+ private void assertTaskDescriptionEqual(TaskDescription td1, TaskDescription td2,
+ boolean checkOverwrittenFields, boolean checkPreservedFields) {
+ if (checkOverwrittenFields) {
+ assertEquals(td1.getLabel(), td2.getLabel());
+ assertEquals(td1.getInMemoryIcon(), td2.getInMemoryIcon());
+ assertEquals(td1.getIconFilename(), td2.getIconFilename());
+ assertEquals(td1.getIconResource(), td2.getIconResource());
+ assertEquals(td1.getPrimaryColor(), td2.getPrimaryColor());
+ assertEquals(td1.getEnsureStatusBarContrastWhenTransparent(),
+ td2.getEnsureStatusBarContrastWhenTransparent());
+ assertEquals(td1.getEnsureNavigationBarContrastWhenTransparent(),
+ td2.getEnsureNavigationBarContrastWhenTransparent());
+ }
+ if (checkPreservedFields) {
+ assertEquals(td1.getBackgroundColor(), td2.getBackgroundColor());
+ assertEquals(td1.getStatusBarColor(), td2.getStatusBarColor());
+ assertEquals(td1.getNavigationBarColor(), td2.getNavigationBarColor());
+ assertEquals(td1.getResizeMode(), td2.getResizeMode());
+ assertEquals(td1.getMinWidth(), td2.getMinWidth());
+ assertEquals(td1.getMinHeight(), td2.getMinHeight());
+ }
+ }
+
+ private <T extends Parcelable> T parcelingRoundTrip(final T in) throws Exception {
+ final Parcel p = Parcel.obtain();
+ in.writeToParcel(p, /* flags */ 0);
+ p.setDataPosition(0);
+ final byte[] marshalledData = p.marshall();
+ p.recycle();
+
+ final Parcel q = Parcel.obtain();
+ q.unmarshall(marshalledData, 0, marshalledData.length);
+ q.setDataPosition(0);
+
+ final Parcelable.Creator<T> creator = (Parcelable.Creator<T>)
+ in.getClass().getField("CREATOR").get(null); // static object, so null receiver
+ final T unmarshalled = (T) creator.createFromParcel(q);
+ q.recycle();
+ return unmarshalled;
}
// If any entries in appear in the list, sanity check them against all running applications
diff --git a/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java b/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java
index c986db8b2a83..c328d720426d 100644
--- a/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java
+++ b/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java
@@ -504,15 +504,17 @@ public class ActivityThreadTest {
}
@Override
- public void onPictureInPictureRequested() {
+ public boolean onPictureInPictureRequested() {
mPipRequested = true;
if (getIntent().getBooleanExtra(PIP_REQUESTED_OVERRIDE_ENTER, false)) {
enterPictureInPictureMode(new PictureInPictureParams.Builder().build());
mPipEntered = true;
+ return true;
} else if (getIntent().getBooleanExtra(PIP_REQUESTED_OVERRIDE_SKIP, false)) {
mPipEnterSkipped = true;
+ return false;
}
- super.onPictureInPictureRequested();
+ return super.onPictureInPictureRequested();
}
boolean pipRequested() {
diff --git a/core/tests/coretests/src/android/app/compat/CompatChangesTest.java b/core/tests/coretests/src/android/app/compat/CompatChangesTest.java
new file mode 100644
index 000000000000..fbd02eddbcf8
--- /dev/null
+++ b/core/tests/coretests/src/android/app/compat/CompatChangesTest.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app.compat;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.Instrumentation;
+import android.compat.testing.PlatformCompatChangeRule;
+import android.os.Process;
+import android.os.UserHandle;
+import android.platform.test.annotations.Presubmit;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+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.rules.TestRule;
+import org.junit.runner.RunWith;
+
+/**
+ * {@link CompatChanges} tests.
+ */
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+@Presubmit
+public class CompatChangesTest {
+ static final long CHANGE_ID = 1L;
+
+ private Instrumentation mInstrumentation;
+
+ @Rule
+ public TestRule compatChangeRule = new PlatformCompatChangeRule();
+
+ @Before
+ public void setup() {
+ mInstrumentation = InstrumentationRegistry.getInstrumentation();
+ }
+
+
+ private String getPackageName() {
+ return mInstrumentation.getTargetContext().getPackageName();
+ }
+
+ @Test
+ @EnableCompatChanges(CHANGE_ID)
+ public void testEnabledChange() {
+ assertThat(CompatChanges.isChangeEnabled(CHANGE_ID)).isTrue();
+ assertThat(CompatChanges.isChangeEnabled(CHANGE_ID, Process.myUid())).isTrue();
+ assertThat(CompatChanges.isChangeEnabled(CHANGE_ID, getPackageName(),
+ UserHandle.of(UserHandle.myUserId()))).isTrue();
+ }
+
+ @Test
+ @DisableCompatChanges(CHANGE_ID)
+ public void testDisabledChange() {
+ assertThat(CompatChanges.isChangeEnabled(CHANGE_ID)).isFalse();
+ assertThat(CompatChanges.isChangeEnabled(CHANGE_ID, Process.myUid())).isFalse();
+ assertThat(CompatChanges.isChangeEnabled(CHANGE_ID, getPackageName(),
+ UserHandle.of(UserHandle.myUserId()))).isFalse();
+ }
+}
diff --git a/core/tests/coretests/src/android/app/timedetector/PhoneTimeSuggestionTest.java b/core/tests/coretests/src/android/app/timedetector/TelephonyTimeSuggestionTest.java
index ba29a97b55ab..4b64dfc84fb7 100644
--- a/core/tests/coretests/src/android/app/timedetector/PhoneTimeSuggestionTest.java
+++ b/core/tests/coretests/src/android/app/timedetector/TelephonyTimeSuggestionTest.java
@@ -26,44 +26,45 @@ import android.os.TimestampedValue;
import org.junit.Test;
-public class PhoneTimeSuggestionTest {
- private static final int PHONE_ID = 99999;
+public class TelephonyTimeSuggestionTest {
+ private static final int SLOT_INDEX = 99999;
@Test
public void testEquals() {
- PhoneTimeSuggestion.Builder builder1 = new PhoneTimeSuggestion.Builder(PHONE_ID);
+ TelephonyTimeSuggestion.Builder builder1 = new TelephonyTimeSuggestion.Builder(SLOT_INDEX);
{
- PhoneTimeSuggestion one = builder1.build();
+ TelephonyTimeSuggestion one = builder1.build();
assertEquals(one, one);
}
- PhoneTimeSuggestion.Builder builder2 = new PhoneTimeSuggestion.Builder(PHONE_ID);
+ TelephonyTimeSuggestion.Builder builder2 = new TelephonyTimeSuggestion.Builder(SLOT_INDEX);
{
- PhoneTimeSuggestion one = builder1.build();
- PhoneTimeSuggestion two = builder2.build();
+ TelephonyTimeSuggestion one = builder1.build();
+ TelephonyTimeSuggestion two = builder2.build();
assertEquals(one, two);
assertEquals(two, one);
}
builder1.setUtcTime(new TimestampedValue<>(1111L, 2222L));
{
- PhoneTimeSuggestion one = builder1.build();
+ TelephonyTimeSuggestion one = builder1.build();
assertEquals(one, one);
}
builder2.setUtcTime(new TimestampedValue<>(1111L, 2222L));
{
- PhoneTimeSuggestion one = builder1.build();
- PhoneTimeSuggestion two = builder2.build();
+ TelephonyTimeSuggestion one = builder1.build();
+ TelephonyTimeSuggestion two = builder2.build();
assertEquals(one, two);
assertEquals(two, one);
}
- PhoneTimeSuggestion.Builder builder3 = new PhoneTimeSuggestion.Builder(PHONE_ID + 1);
+ TelephonyTimeSuggestion.Builder builder3 =
+ new TelephonyTimeSuggestion.Builder(SLOT_INDEX + 1);
builder3.setUtcTime(new TimestampedValue<>(1111L, 2222L));
{
- PhoneTimeSuggestion one = builder1.build();
- PhoneTimeSuggestion three = builder3.build();
+ TelephonyTimeSuggestion one = builder1.build();
+ TelephonyTimeSuggestion three = builder3.build();
assertNotEquals(one, three);
assertNotEquals(three, one);
}
@@ -72,15 +73,15 @@ public class PhoneTimeSuggestionTest {
builder1.addDebugInfo("Debug info 1");
builder2.addDebugInfo("Debug info 2");
{
- PhoneTimeSuggestion one = builder1.build();
- PhoneTimeSuggestion two = builder2.build();
+ TelephonyTimeSuggestion one = builder1.build();
+ TelephonyTimeSuggestion two = builder2.build();
assertEquals(one, two);
}
}
@Test
public void testParcelable() {
- PhoneTimeSuggestion.Builder builder = new PhoneTimeSuggestion.Builder(PHONE_ID);
+ TelephonyTimeSuggestion.Builder builder = new TelephonyTimeSuggestion.Builder(SLOT_INDEX);
assertRoundTripParcelable(builder.build());
builder.setUtcTime(new TimestampedValue<>(1111L, 2222L));
@@ -88,9 +89,9 @@ public class PhoneTimeSuggestionTest {
// DebugInfo should also be stored (but is not checked by equals()
{
- PhoneTimeSuggestion suggestion1 = builder.build();
+ TelephonyTimeSuggestion suggestion1 = builder.build();
builder.addDebugInfo("This is debug info");
- PhoneTimeSuggestion rtSuggestion1 = roundTripParcelable(suggestion1);
+ TelephonyTimeSuggestion rtSuggestion1 = roundTripParcelable(suggestion1);
assertEquals(suggestion1.getDebugInfo(), rtSuggestion1.getDebugInfo());
}
}
diff --git a/core/tests/coretests/src/android/app/timezonedetector/PhoneTimeZoneSuggestionTest.java b/core/tests/coretests/src/android/app/timezonedetector/PhoneTimeZoneSuggestionTest.java
deleted file mode 100644
index 0108a0bbab47..000000000000
--- a/core/tests/coretests/src/android/app/timezonedetector/PhoneTimeZoneSuggestionTest.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.app.timezonedetector;
-
-import static android.app.timezonedetector.ParcelableTestSupport.assertRoundTripParcelable;
-import static android.app.timezonedetector.ParcelableTestSupport.roundTripParcelable;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertTrue;
-
-import org.junit.Test;
-
-public class PhoneTimeZoneSuggestionTest {
- private static final int PHONE_ID = 99999;
-
- @Test
- public void testEquals() {
- PhoneTimeZoneSuggestion.Builder builder1 = new PhoneTimeZoneSuggestion.Builder(PHONE_ID);
- {
- PhoneTimeZoneSuggestion one = builder1.build();
- assertEquals(one, one);
- }
-
- PhoneTimeZoneSuggestion.Builder builder2 = new PhoneTimeZoneSuggestion.Builder(PHONE_ID);
- {
- PhoneTimeZoneSuggestion one = builder1.build();
- PhoneTimeZoneSuggestion two = builder2.build();
- assertEquals(one, two);
- assertEquals(two, one);
- }
-
- PhoneTimeZoneSuggestion.Builder builder3 =
- new PhoneTimeZoneSuggestion.Builder(PHONE_ID + 1);
- {
- PhoneTimeZoneSuggestion one = builder1.build();
- PhoneTimeZoneSuggestion three = builder3.build();
- assertNotEquals(one, three);
- assertNotEquals(three, one);
- }
-
- builder1.setZoneId("Europe/London");
- builder1.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY);
- builder1.setQuality(PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
- {
- PhoneTimeZoneSuggestion one = builder1.build();
- PhoneTimeZoneSuggestion two = builder2.build();
- assertNotEquals(one, two);
- }
-
- builder2.setZoneId("Europe/Paris");
- builder2.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY);
- builder2.setQuality(PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
- {
- PhoneTimeZoneSuggestion one = builder1.build();
- PhoneTimeZoneSuggestion two = builder2.build();
- assertNotEquals(one, two);
- }
-
- builder1.setZoneId("Europe/Paris");
- {
- PhoneTimeZoneSuggestion one = builder1.build();
- PhoneTimeZoneSuggestion two = builder2.build();
- assertEquals(one, two);
- }
-
- builder1.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_EMULATOR_ZONE_ID);
- builder2.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY);
- {
- PhoneTimeZoneSuggestion one = builder1.build();
- PhoneTimeZoneSuggestion two = builder2.build();
- assertNotEquals(one, two);
- }
-
- builder1.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY);
- {
- PhoneTimeZoneSuggestion one = builder1.build();
- PhoneTimeZoneSuggestion two = builder2.build();
- assertEquals(one, two);
- }
-
- builder1.setQuality(PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
- builder2.setQuality(PhoneTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS);
- {
- PhoneTimeZoneSuggestion one = builder1.build();
- PhoneTimeZoneSuggestion two = builder2.build();
- assertNotEquals(one, two);
- }
-
- builder1.setQuality(PhoneTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS);
- {
- PhoneTimeZoneSuggestion one = builder1.build();
- PhoneTimeZoneSuggestion two = builder2.build();
- assertEquals(one, two);
- }
-
- // DebugInfo must not be considered in equals().
- {
- PhoneTimeZoneSuggestion one = builder1.build();
- PhoneTimeZoneSuggestion two = builder2.build();
- one.addDebugInfo("Debug info 1");
- two.addDebugInfo("Debug info 2");
- assertEquals(one, two);
- }
- }
-
- @Test(expected = RuntimeException.class)
- public void testBuilderValidates_emptyZone_badMatchType() {
- PhoneTimeZoneSuggestion.Builder builder = new PhoneTimeZoneSuggestion.Builder(PHONE_ID);
- // No zone ID, so match type should be left unset.
- builder.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET);
- builder.build();
- }
-
- @Test(expected = RuntimeException.class)
- public void testBuilderValidates_zoneSet_badMatchType() {
- PhoneTimeZoneSuggestion.Builder builder = new PhoneTimeZoneSuggestion.Builder(PHONE_ID);
- builder.setZoneId("Europe/London");
- builder.setQuality(PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
- builder.build();
- }
-
- @Test
- public void testParcelable() {
- PhoneTimeZoneSuggestion.Builder builder = new PhoneTimeZoneSuggestion.Builder(PHONE_ID);
- assertRoundTripParcelable(builder.build());
-
- builder.setZoneId("Europe/London");
- builder.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_EMULATOR_ZONE_ID);
- builder.setQuality(PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
- PhoneTimeZoneSuggestion suggestion1 = builder.build();
- assertRoundTripParcelable(suggestion1);
-
- // DebugInfo should also be stored (but is not checked by equals()
- String debugString = "This is debug info";
- suggestion1.addDebugInfo(debugString);
- PhoneTimeZoneSuggestion suggestion1_2 = roundTripParcelable(suggestion1);
- assertEquals(suggestion1, suggestion1_2);
- assertTrue(suggestion1_2.getDebugInfo().contains(debugString));
- }
-}
diff --git a/core/tests/coretests/src/android/app/timezonedetector/TelephonyTimeZoneSuggestionTest.java b/core/tests/coretests/src/android/app/timezonedetector/TelephonyTimeZoneSuggestionTest.java
new file mode 100644
index 000000000000..59d55b79157c
--- /dev/null
+++ b/core/tests/coretests/src/android/app/timezonedetector/TelephonyTimeZoneSuggestionTest.java
@@ -0,0 +1,162 @@
+/*
+ * Copyright 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app.timezonedetector;
+
+import static android.app.timezonedetector.ParcelableTestSupport.assertRoundTripParcelable;
+import static android.app.timezonedetector.ParcelableTestSupport.roundTripParcelable;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+public class TelephonyTimeZoneSuggestionTest {
+ private static final int SLOT_INDEX = 99999;
+
+ @Test
+ public void testEquals() {
+ TelephonyTimeZoneSuggestion.Builder builder1 =
+ new TelephonyTimeZoneSuggestion.Builder(SLOT_INDEX);
+ {
+ TelephonyTimeZoneSuggestion one = builder1.build();
+ assertEquals(one, one);
+ }
+
+ TelephonyTimeZoneSuggestion.Builder builder2 =
+ new TelephonyTimeZoneSuggestion.Builder(SLOT_INDEX);
+ {
+ TelephonyTimeZoneSuggestion one = builder1.build();
+ TelephonyTimeZoneSuggestion two = builder2.build();
+ assertEquals(one, two);
+ assertEquals(two, one);
+ }
+
+ TelephonyTimeZoneSuggestion.Builder builder3 =
+ new TelephonyTimeZoneSuggestion.Builder(SLOT_INDEX + 1);
+ {
+ TelephonyTimeZoneSuggestion one = builder1.build();
+ TelephonyTimeZoneSuggestion three = builder3.build();
+ assertNotEquals(one, three);
+ assertNotEquals(three, one);
+ }
+
+ builder1.setZoneId("Europe/London");
+ builder1.setMatchType(TelephonyTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY);
+ builder1.setQuality(TelephonyTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
+ {
+ TelephonyTimeZoneSuggestion one = builder1.build();
+ TelephonyTimeZoneSuggestion two = builder2.build();
+ assertNotEquals(one, two);
+ }
+
+ builder2.setZoneId("Europe/Paris");
+ builder2.setMatchType(TelephonyTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY);
+ builder2.setQuality(TelephonyTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
+ {
+ TelephonyTimeZoneSuggestion one = builder1.build();
+ TelephonyTimeZoneSuggestion two = builder2.build();
+ assertNotEquals(one, two);
+ }
+
+ builder1.setZoneId("Europe/Paris");
+ {
+ TelephonyTimeZoneSuggestion one = builder1.build();
+ TelephonyTimeZoneSuggestion two = builder2.build();
+ assertEquals(one, two);
+ }
+
+ builder1.setMatchType(TelephonyTimeZoneSuggestion.MATCH_TYPE_EMULATOR_ZONE_ID);
+ builder2.setMatchType(TelephonyTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY);
+ {
+ TelephonyTimeZoneSuggestion one = builder1.build();
+ TelephonyTimeZoneSuggestion two = builder2.build();
+ assertNotEquals(one, two);
+ }
+
+ builder1.setMatchType(TelephonyTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY);
+ {
+ TelephonyTimeZoneSuggestion one = builder1.build();
+ TelephonyTimeZoneSuggestion two = builder2.build();
+ assertEquals(one, two);
+ }
+
+ builder1.setQuality(TelephonyTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
+ builder2.setQuality(
+ TelephonyTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS);
+ {
+ TelephonyTimeZoneSuggestion one = builder1.build();
+ TelephonyTimeZoneSuggestion two = builder2.build();
+ assertNotEquals(one, two);
+ }
+
+ builder1.setQuality(
+ TelephonyTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS);
+ {
+ TelephonyTimeZoneSuggestion one = builder1.build();
+ TelephonyTimeZoneSuggestion two = builder2.build();
+ assertEquals(one, two);
+ }
+
+ // DebugInfo must not be considered in equals().
+ {
+ TelephonyTimeZoneSuggestion one = builder1.build();
+ TelephonyTimeZoneSuggestion two = builder2.build();
+ one.addDebugInfo("Debug info 1");
+ two.addDebugInfo("Debug info 2");
+ assertEquals(one, two);
+ }
+ }
+
+ @Test(expected = RuntimeException.class)
+ public void testBuilderValidates_emptyZone_badMatchType() {
+ TelephonyTimeZoneSuggestion.Builder builder =
+ new TelephonyTimeZoneSuggestion.Builder(SLOT_INDEX);
+ // No zone ID, so match type should be left unset.
+ builder.setMatchType(TelephonyTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET);
+ builder.build();
+ }
+
+ @Test(expected = RuntimeException.class)
+ public void testBuilderValidates_zoneSet_badMatchType() {
+ TelephonyTimeZoneSuggestion.Builder builder =
+ new TelephonyTimeZoneSuggestion.Builder(SLOT_INDEX);
+ builder.setZoneId("Europe/London");
+ builder.setQuality(TelephonyTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
+ builder.build();
+ }
+
+ @Test
+ public void testParcelable() {
+ TelephonyTimeZoneSuggestion.Builder builder =
+ new TelephonyTimeZoneSuggestion.Builder(SLOT_INDEX);
+ assertRoundTripParcelable(builder.build());
+
+ builder.setZoneId("Europe/London");
+ builder.setMatchType(TelephonyTimeZoneSuggestion.MATCH_TYPE_EMULATOR_ZONE_ID);
+ builder.setQuality(TelephonyTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
+ TelephonyTimeZoneSuggestion suggestion1 = builder.build();
+ assertRoundTripParcelable(suggestion1);
+
+ // DebugInfo should also be stored (but is not checked by equals()
+ String debugString = "This is debug info";
+ suggestion1.addDebugInfo(debugString);
+ TelephonyTimeZoneSuggestion suggestion1_2 = roundTripParcelable(suggestion1);
+ assertEquals(suggestion1, suggestion1_2);
+ assertTrue(suggestion1_2.getDebugInfo().contains(debugString));
+ }
+}
diff --git a/core/tests/coretests/src/android/content/ContextTest.java b/core/tests/coretests/src/android/content/ContextTest.java
index b1a54dcced46..f074233070d1 100644
--- a/core/tests/coretests/src/android/content/ContextTest.java
+++ b/core/tests/coretests/src/android/content/ContextTest.java
@@ -48,6 +48,7 @@ public class ContextTest {
assertEquals(testContext.getDisplay().getDisplayId(), testContext.getDisplayId());
}
+ // TODO(b/128338354): Re-visit this test after introducing WindowContext
@Test
public void testDisplayIdForDefaultDisplayContext() {
final Context testContext =
diff --git a/core/tests/coretests/src/android/content/integrity/AtomicFormulaTest.java b/core/tests/coretests/src/android/content/integrity/AtomicFormulaTest.java
index bf782034c8f1..3273e5dd32ba 100644
--- a/core/tests/coretests/src/android/content/integrity/AtomicFormulaTest.java
+++ b/core/tests/coretests/src/android/content/integrity/AtomicFormulaTest.java
@@ -90,18 +90,18 @@ public class AtomicFormulaTest {
}
@Test
- public void testValidAtomicFormula_stringValue_appCertificateAutoHashed() {
+ public void testValidAtomicFormula_stringValue_appCertificateIsNotAutoHashed() {
String appCert = "cert";
StringAtomicFormula stringAtomicFormula =
new StringAtomicFormula(AtomicFormula.APP_CERTIFICATE, appCert);
assertThat(stringAtomicFormula.getKey()).isEqualTo(AtomicFormula.APP_CERTIFICATE);
- assertThat(stringAtomicFormula.getValue()).doesNotMatch(appCert);
+ assertThat(stringAtomicFormula.getValue()).matches(appCert);
assertThat(stringAtomicFormula.getIsHashedValue()).isTrue();
}
@Test
- public void testValidAtomicFormula_stringValue_installerCertificateAutoHashed() {
+ public void testValidAtomicFormula_stringValue_installerCertificateIsNotAutoHashed() {
String installerCert = "cert";
StringAtomicFormula stringAtomicFormula =
new StringAtomicFormula(AtomicFormula.INSTALLER_CERTIFICATE,
@@ -109,7 +109,7 @@ public class AtomicFormulaTest {
assertThat(stringAtomicFormula.getKey()).isEqualTo(
AtomicFormula.INSTALLER_CERTIFICATE);
- assertThat(stringAtomicFormula.getValue()).doesNotMatch(installerCert);
+ assertThat(stringAtomicFormula.getValue()).matches(installerCert);
assertThat(stringAtomicFormula.getIsHashedValue()).isTrue();
}
diff --git a/core/tests/coretests/src/android/content/integrity/IntegrityFormulaTest.java b/core/tests/coretests/src/android/content/integrity/IntegrityFormulaTest.java
index c1806028f75b..75ef1f22b819 100644
--- a/core/tests/coretests/src/android/content/integrity/IntegrityFormulaTest.java
+++ b/core/tests/coretests/src/android/content/integrity/IntegrityFormulaTest.java
@@ -40,7 +40,7 @@ public class IntegrityFormulaTest {
assertThat(stringAtomicFormula.getKey()).isEqualTo(AtomicFormula.PACKAGE_NAME);
assertThat(stringAtomicFormula.getValue()).isEqualTo(packageName);
- assertThat(stringAtomicFormula.getIsHashedValue()).isEqualTo(false);
+ assertThat(stringAtomicFormula.getIsHashedValue()).isFalse();
}
@Test
@@ -53,8 +53,8 @@ public class IntegrityFormulaTest {
(AtomicFormula.StringAtomicFormula) formula;
assertThat(stringAtomicFormula.getKey()).isEqualTo(AtomicFormula.APP_CERTIFICATE);
- assertThat(stringAtomicFormula.getValue()).doesNotMatch(appCertificate);
- assertThat(stringAtomicFormula.getIsHashedValue()).isEqualTo(true);
+ assertThat(stringAtomicFormula.getValue()).matches(appCertificate);
+ assertThat(stringAtomicFormula.getIsHashedValue()).isTrue();
}
@Test
@@ -68,7 +68,7 @@ public class IntegrityFormulaTest {
assertThat(stringAtomicFormula.getKey()).isEqualTo(AtomicFormula.INSTALLER_NAME);
assertThat(stringAtomicFormula.getValue()).isEqualTo(installerName);
- assertThat(stringAtomicFormula.getIsHashedValue()).isEqualTo(false);
+ assertThat(stringAtomicFormula.getIsHashedValue()).isFalse();
}
@Test
@@ -81,8 +81,8 @@ public class IntegrityFormulaTest {
(AtomicFormula.StringAtomicFormula) formula;
assertThat(stringAtomicFormula.getKey()).isEqualTo(AtomicFormula.INSTALLER_CERTIFICATE);
- assertThat(stringAtomicFormula.getValue()).doesNotMatch(installerCertificate);
- assertThat(stringAtomicFormula.getIsHashedValue()).isEqualTo(true);
+ assertThat(stringAtomicFormula.getValue()).matches(installerCertificate);
+ assertThat(stringAtomicFormula.getIsHashedValue()).isTrue();
}
@Test
diff --git a/core/tests/coretests/src/android/os/BinderProxyService.java b/core/tests/coretests/src/android/os/BinderProxyService.java
new file mode 100644
index 000000000000..bf1fbc555d8b
--- /dev/null
+++ b/core/tests/coretests/src/android/os/BinderProxyService.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.os;
+
+import android.app.Service;
+import android.content.Intent;
+
+public class BinderProxyService extends Service {
+ private final Binder mBinder = new Binder();
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ mBinder.setExtension(new Binder());
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ return mBinder;
+ }
+}
diff --git a/core/tests/coretests/src/android/os/BinderProxyTest.java b/core/tests/coretests/src/android/os/BinderProxyTest.java
index aceda2d0524b..3567d17ea874 100644
--- a/core/tests/coretests/src/android/os/BinderProxyTest.java
+++ b/core/tests/coretests/src/android/os/BinderProxyTest.java
@@ -17,11 +17,17 @@
package android.os;
import android.annotation.Nullable;
+import android.content.ComponentName;
import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
import android.test.AndroidTestCase;
import androidx.test.filters.MediumTest;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
public class BinderProxyTest extends AndroidTestCase {
private static class CountingListener implements Binder.ProxyTransactListener {
int mStartedCount;
@@ -86,4 +92,41 @@ public class BinderProxyTest extends AndroidTestCase {
// Check it does not throw..
mPowerManager.isInteractive();
}
+
+ private IBinder mRemoteBinder = null;
+
+ @MediumTest
+ public void testGetExtension() throws Exception {
+ final CountDownLatch bindLatch = new CountDownLatch(1);
+ ServiceConnection connection =
+ new ServiceConnection() {
+ @Override
+ public void onServiceConnected(ComponentName name, IBinder service) {
+ mRemoteBinder = service;
+ bindLatch.countDown();
+ }
+
+ @Override
+ public void onServiceDisconnected(ComponentName name) {}
+ };
+ try {
+ mContext.bindService(
+ new Intent(mContext, BinderProxyService.class),
+ connection,
+ Context.BIND_AUTO_CREATE);
+ if (!bindLatch.await(500, TimeUnit.MILLISECONDS)) {
+ fail(
+ "Timed out while binding service: "
+ + BinderProxyService.class.getSimpleName());
+ }
+ assertTrue(mRemoteBinder instanceof BinderProxy);
+ assertNotNull(mRemoteBinder);
+
+ IBinder extension = mRemoteBinder.getExtension();
+ assertNotNull(extension);
+ assertTrue(extension.pingBinder());
+ } finally {
+ mContext.unbindService(connection);
+ }
+ }
}
diff --git a/core/tests/coretests/src/android/os/BinderTest.java b/core/tests/coretests/src/android/os/BinderTest.java
index a354195c75a3..99dbe6445662 100644
--- a/core/tests/coretests/src/android/os/BinderTest.java
+++ b/core/tests/coretests/src/android/os/BinderTest.java
@@ -52,4 +52,18 @@ public class BinderTest extends TestCase {
} catch (IllegalStateException expected) {
}
}
+
+ @SmallTest
+ public void testGetExtension() throws Exception {
+ Binder binder = new Binder();
+ assertNull(binder.getExtension());
+
+ IBinder extension = new Binder();
+ binder.setExtension(extension);
+ assertNotNull(binder.getExtension());
+ assertSame(binder.getExtension(), extension);
+
+ binder.setExtension(null);
+ assertNull(binder.getExtension());
+ }
}
diff --git a/core/tests/coretests/src/android/os/BuildTest.java b/core/tests/coretests/src/android/os/BuildTest.java
index decc76869a53..2295eb989108 100644
--- a/core/tests/coretests/src/android/os/BuildTest.java
+++ b/core/tests/coretests/src/android/os/BuildTest.java
@@ -60,7 +60,7 @@ public class BuildTest extends TestCase {
assertNotEmpty("BRAND", Build.BRAND);
assertNotEmpty("MODEL", Build.MODEL);
assertNotEmpty("VERSION.INCREMENTAL", Build.VERSION.INCREMENTAL);
- assertNotEmpty("VERSION.RELEASE", Build.VERSION.RELEASE);
+ assertNotEmpty("VERSION.RELEASE", Build.VERSION.RELEASE_OR_CODENAME);
assertNotEmpty("TYPE", Build.TYPE);
Assert.assertNotNull("TAGS", Build.TAGS); // TAGS is allowed to be empty.
assertNotEmpty("FINGERPRINT", Build.FINGERPRINT);
diff --git a/core/tests/coretests/src/android/os/PowerManagerTest.java b/core/tests/coretests/src/android/os/PowerManagerTest.java
index 5cb7852f7acc..ea0a0fd49f9f 100644
--- a/core/tests/coretests/src/android/os/PowerManagerTest.java
+++ b/core/tests/coretests/src/android/os/PowerManagerTest.java
@@ -214,6 +214,9 @@ public class PowerManagerTest extends AndroidTestCase {
}
// Add listener2 on main thread.
mPm.addThermalStatusListener(mListener2);
+ verify(mListener2, timeout(CALLBACK_TIMEOUT_MILLI_SEC)
+ .times(1)).onThermalStatusChanged(status);
+ reset(mListener2);
status = PowerManager.THERMAL_STATUS_MODERATE;
mUiDevice.executeShellCommand("cmd thermalservice override-status "
+ Integer.toString(status));
diff --git a/core/tests/coretests/src/android/provider/DeviceConfigTest.java b/core/tests/coretests/src/android/provider/DeviceConfigTest.java
index 84c42dbc14e7..d649b945492b 100644
--- a/core/tests/coretests/src/android/provider/DeviceConfigTest.java
+++ b/core/tests/coretests/src/android/provider/DeviceConfigTest.java
@@ -376,6 +376,24 @@ public class DeviceConfigTest {
}
@Test
+ public void resetToDefault_makeDefault() {
+ DeviceConfig.setProperty(NAMESPACE, KEY, VALUE, true);
+ assertThat(DeviceConfig.getProperty(NAMESPACE, KEY)).isEqualTo(VALUE);
+
+ DeviceConfig.resetToDefaults(Settings.RESET_MODE_PACKAGE_DEFAULTS, NAMESPACE);
+ assertThat(DeviceConfig.getProperty(NAMESPACE, KEY)).isEqualTo(VALUE);
+ }
+
+ @Test
+ public void resetToDefault_doNotMakeDefault() {
+ DeviceConfig.setProperty(NAMESPACE, KEY, VALUE, false);
+ assertThat(DeviceConfig.getProperty(NAMESPACE, KEY)).isEqualTo(VALUE);
+
+ DeviceConfig.resetToDefaults(Settings.RESET_MODE_PACKAGE_DEFAULTS, NAMESPACE);
+ assertThat(DeviceConfig.getProperty(NAMESPACE, KEY)).isNull();
+ }
+
+ @Test
public void getProperties_fullNamespace() {
Properties properties = DeviceConfig.getProperties(NAMESPACE);
assertThat(properties.getKeyset()).isEmpty();
diff --git a/core/tests/coretests/src/android/util/GridScenario.java b/core/tests/coretests/src/android/util/GridScenario.java
index 0f1730e207d5..4809a213ab48 100644
--- a/core/tests/coretests/src/android/util/GridScenario.java
+++ b/core/tests/coretests/src/android/util/GridScenario.java
@@ -233,7 +233,7 @@ public abstract class GridScenario extends Activity {
// turn off title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);
- mScreenHeight = getWindowManager().getDefaultDisplay().getHeight();
+ mScreenHeight = getWindowManager().getCurrentWindowMetrics().getSize().getHeight();
final Params params = new Params();
init(params);
diff --git a/core/tests/coretests/src/android/util/ListScenario.java b/core/tests/coretests/src/android/util/ListScenario.java
index 129484af75de..d4e5a438d855 100644
--- a/core/tests/coretests/src/android/util/ListScenario.java
+++ b/core/tests/coretests/src/android/util/ListScenario.java
@@ -306,7 +306,7 @@ public abstract class ListScenario extends Activity {
requestWindowFeature(Window.FEATURE_NO_TITLE);
- mScreenHeight = getWindowManager().getDefaultDisplay().getHeight();
+ mScreenHeight = getWindowManager().getCurrentWindowMetrics().getSize().getHeight();
final Params params = createParams();
init(params);
diff --git a/core/tests/coretests/src/android/util/ScrollViewScenario.java b/core/tests/coretests/src/android/util/ScrollViewScenario.java
index e9eb978805bf..2c0aa7362dfa 100644
--- a/core/tests/coretests/src/android/util/ScrollViewScenario.java
+++ b/core/tests/coretests/src/android/util/ScrollViewScenario.java
@@ -239,7 +239,7 @@ public abstract class ScrollViewScenario extends Activity {
// for test stability, turn off title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);
- int screenHeight = getWindowManager().getDefaultDisplay().getHeight()
+ int screenHeight = getWindowManager().getCurrentWindowMetrics().getSize().getHeight()
- 25;
mLinearLayout = new LinearLayout(this);
mLinearLayout.setOrientation(LinearLayout.VERTICAL);
diff --git a/core/tests/coretests/src/android/view/BigCache.java b/core/tests/coretests/src/android/view/BigCache.java
index 6a1bcaaf2d00..e465a859218a 100644
--- a/core/tests/coretests/src/android/view/BigCache.java
+++ b/core/tests/coretests/src/android/view/BigCache.java
@@ -18,6 +18,7 @@ package android.view;
import android.app.Activity;
import android.os.Bundle;
+import android.util.Size;
import android.widget.LinearLayout;
import android.widget.ScrollView;
@@ -38,9 +39,9 @@ public class BigCache extends Activity {
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
final int cacheSize = ViewConfiguration.getMaximumDrawingCacheSize();
- final Display display = getWindowManager().getDefaultDisplay();
- final int screenWidth = display.getWidth();
- final int screenHeight = display.getHeight();
+ final Size windowSize = getWindowManager().getCurrentWindowMetrics().getSize();
+ final int screenWidth = windowSize.getWidth();
+ final int screenHeight = windowSize.getHeight();
final View tiny = new View(this);
tiny.setId(R.id.a);
diff --git a/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java b/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java
index 169716f99dea..bdb802195d8b 100644
--- a/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java
+++ b/core/tests/coretests/src/android/view/InsetsAnimationControlImplTest.java
@@ -109,13 +109,14 @@ public class InsetsAnimationControlImplTest {
InsetsSourceConsumer topConsumer = new InsetsSourceConsumer(ITYPE_STATUS_BAR, mInsetsState,
() -> mMockTransaction, mMockController);
topConsumer.setControl(
- new InsetsSourceControl(ITYPE_STATUS_BAR, mTopLeash, new Point(0, 0)));
+ new InsetsSourceControl(ITYPE_STATUS_BAR, mTopLeash, new Point(0, 0)),
+ new int[1], new int[1]);
InsetsSourceConsumer navConsumer = new InsetsSourceConsumer(ITYPE_NAVIGATION_BAR,
mInsetsState, () -> mMockTransaction, mMockController);
- navConsumer.hide();
navConsumer.setControl(new InsetsSourceControl(ITYPE_NAVIGATION_BAR, mNavLeash,
- new Point(400, 0)));
+ new Point(400, 0)), new int[1], new int[1]);
+ navConsumer.hide();
SparseArray<InsetsSourceControl> controls = new SparseArray<>();
controls.put(ITYPE_STATUS_BAR, topConsumer.getControl());
diff --git a/core/tests/coretests/src/android/view/InsetsControllerTest.java b/core/tests/coretests/src/android/view/InsetsControllerTest.java
index e68c4b8d2ab3..2c9dba1d59fd 100644
--- a/core/tests/coretests/src/android/view/InsetsControllerTest.java
+++ b/core/tests/coretests/src/android/view/InsetsControllerTest.java
@@ -121,9 +121,20 @@ public class InsetsControllerTest {
if (type == ITYPE_IME) {
return new InsetsSourceConsumer(type, controller.getState(),
Transaction::new, controller) {
+
+ private boolean mImeRequestedShow;
+
+ @Override
+ public void show(boolean fromIme) {
+ super.show(fromIme);
+ if (fromIme) {
+ mImeRequestedShow = true;
+ }
+ }
+
@Override
public int requestShow(boolean fromController) {
- if (fromController) {
+ if (fromController || mImeRequestedShow) {
return SHOW_IMMEDIATELY;
} else {
return IME_SHOW_DELAYED;
@@ -399,6 +410,84 @@ public class InsetsControllerTest {
}
@Test
+ public void testRestoreStartsAnimation() {
+ InsetsSourceControl control =
+ new InsetsSourceControl(ITYPE_STATUS_BAR, mLeash, new Point());
+ mController.onControlsChanged(new InsetsSourceControl[]{control});
+
+ InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
+ mController.hide(Type.statusBars());
+ mController.cancelExistingAnimation();
+ assertFalse(mController.getSourceConsumer(ITYPE_STATUS_BAR).isRequestedVisible());
+ assertFalse(mController.getState().getSource(ITYPE_STATUS_BAR).isVisible());
+
+ // Loosing control
+ InsetsState state = new InsetsState(mController.getState());
+ state.setSourceVisible(ITYPE_STATUS_BAR, true);
+ mController.onStateChanged(state);
+ mController.onControlsChanged(new InsetsSourceControl[0]);
+ assertFalse(mController.getSourceConsumer(ITYPE_STATUS_BAR).isRequestedVisible());
+ assertTrue(mController.getState().getSource(ITYPE_STATUS_BAR).isVisible());
+
+ // Gaining control
+ mController.onControlsChanged(new InsetsSourceControl[]{control});
+ assertEquals(ANIMATION_TYPE_HIDE, mController.getAnimationType(ITYPE_STATUS_BAR));
+ mController.cancelExistingAnimation();
+ assertFalse(mController.getSourceConsumer(ITYPE_STATUS_BAR).isRequestedVisible());
+ assertFalse(mController.getState().getSource(ITYPE_STATUS_BAR).isVisible());
+ });
+ InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+ }
+
+ @Test
+ public void testStartImeAnimationAfterGettingControl() {
+ InsetsSourceControl control =
+ new InsetsSourceControl(ITYPE_IME, mLeash, new Point());
+
+ InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
+
+ mController.show(ime());
+ assertFalse(mController.getState().getSource(ITYPE_IME).isVisible());
+
+ // Pretend IME is calling
+ mController.show(ime(), true /* fromIme */);
+
+ // Gaining control shortly after
+ mController.onControlsChanged(new InsetsSourceControl[]{control});
+
+ assertEquals(ANIMATION_TYPE_SHOW, mController.getAnimationType(ITYPE_IME));
+ mController.cancelExistingAnimation();
+ assertTrue(mController.getSourceConsumer(ITYPE_IME).isRequestedVisible());
+ assertTrue(mController.getState().getSource(ITYPE_IME).isVisible());
+ });
+ InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+ }
+
+ @Test
+ public void testStartImeAnimationAfterGettingControl_imeLater() {
+ InsetsSourceControl control =
+ new InsetsSourceControl(ITYPE_IME, mLeash, new Point());
+
+ InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
+
+ mController.show(ime());
+ assertFalse(mController.getState().getSource(ITYPE_IME).isVisible());
+
+ // Gaining control shortly after
+ mController.onControlsChanged(new InsetsSourceControl[]{control});
+
+ // Pretend IME is calling
+ mController.show(ime(), true /* fromIme */);
+
+ assertEquals(ANIMATION_TYPE_SHOW, mController.getAnimationType(ITYPE_IME));
+ mController.cancelExistingAnimation();
+ assertTrue(mController.getSourceConsumer(ITYPE_IME).isRequestedVisible());
+ assertTrue(mController.getState().getSource(ITYPE_IME).isVisible());
+ });
+ InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+ }
+
+ @Test
public void testAnimationEndState_controller() throws Exception {
InsetsSourceControl control =
new InsetsSourceControl(ITYPE_STATUS_BAR, mLeash, new Point());
@@ -432,7 +521,7 @@ public class InsetsControllerTest {
InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
WindowInsetsAnimationControlListener listener =
mock(WindowInsetsAnimationControlListener.class);
- mController.controlInputMethodAnimation(0, new LinearInterpolator(), listener);
+ mController.controlWindowInsetsAnimation(ime(), 0, new LinearInterpolator(), listener);
// Ready gets deferred until next predraw
mViewRoot.getView().getViewTreeObserver().dispatchOnPreDraw();
@@ -456,7 +545,7 @@ public class InsetsControllerTest {
InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
WindowInsetsAnimationControlListener listener =
mock(WindowInsetsAnimationControlListener.class);
- mController.controlInputMethodAnimation(0, new LinearInterpolator(), listener);
+ mController.controlWindowInsetsAnimation(ime(), 0, new LinearInterpolator(), listener);
// Ready gets deferred until next predraw
mViewRoot.getView().getViewTreeObserver().dispatchOnPreDraw();
@@ -476,7 +565,7 @@ public class InsetsControllerTest {
InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
WindowInsetsAnimationControlListener listener =
mock(WindowInsetsAnimationControlListener.class);
- mController.controlInputMethodAnimation(0, new LinearInterpolator(), listener);
+ mController.controlWindowInsetsAnimation(ime(), 0, new LinearInterpolator(), listener);
// Ready gets deferred until next predraw
mViewRoot.getView().getViewTreeObserver().dispatchOnPreDraw();
diff --git a/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java b/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java
index 492c03653990..5e9e2f0065ed 100644
--- a/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java
+++ b/core/tests/coretests/src/android/view/InsetsSourceConsumerTest.java
@@ -18,6 +18,8 @@ package android.view;
import static android.view.InsetsState.ITYPE_STATUS_BAR;
+import static android.view.WindowInsets.Type.statusBars;
+import static junit.framework.Assert.assertEquals;
import static junit.framework.TestCase.assertFalse;
import static junit.framework.TestCase.assertTrue;
@@ -90,34 +92,44 @@ public class InsetsSourceConsumerTest {
});
instrumentation.waitForIdleSync();
- mConsumer.setControl(new InsetsSourceControl(ITYPE_STATUS_BAR, mLeash, new Point()));
+ mConsumer.setControl(new InsetsSourceControl(ITYPE_STATUS_BAR, mLeash, new Point()),
+ new int[1], new int[1]);
}
@Test
public void testHide() {
- mConsumer.hide();
- assertFalse("Consumer should not be visible", mConsumer.isRequestedVisible());
- verify(mSpyInsetsSource).setVisible(eq(false));
+ InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
+ mConsumer.hide();
+ assertFalse("Consumer should not be visible", mConsumer.isRequestedVisible());
+ verify(mSpyInsetsSource).setVisible(eq(false));
+ });
+
}
@Test
public void testShow() {
+ InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
+ // Insets source starts out visible
+ mConsumer.hide();
+ mConsumer.show(false /* fromIme */);
+ assertTrue("Consumer should be visible", mConsumer.isRequestedVisible());
+ verify(mSpyInsetsSource).setVisible(eq(false));
+ verify(mSpyInsetsSource).setVisible(eq(true));
+ });
- // Insets source starts out visible
- mConsumer.hide();
- mConsumer.show();
- assertTrue("Consumer should be visible", mConsumer.isRequestedVisible());
- verify(mSpyInsetsSource).setVisible(eq(false));
- verify(mSpyInsetsSource).setVisible(eq(true));
}
@Test
public void testRestore() {
- mConsumer.setControl(null);
- reset(mMockTransaction);
- mConsumer.hide();
- verifyZeroInteractions(mMockTransaction);
- mConsumer.setControl(new InsetsSourceControl(ITYPE_STATUS_BAR, mLeash, new Point()));
- verify(mMockTransaction).hide(eq(mLeash));
+ InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
+ mConsumer.setControl(null, new int[1], new int[1]);
+ reset(mMockTransaction);
+ mConsumer.hide();
+ verifyZeroInteractions(mMockTransaction);
+ int[] hideTypes = new int[1];
+ mConsumer.setControl(new InsetsSourceControl(ITYPE_STATUS_BAR, mLeash, new Point()),
+ new int[1], hideTypes);
+ assertEquals(statusBars(), hideTypes[0]);
+ });
}
}
diff --git a/core/tests/coretests/src/android/view/InsetsStateTest.java b/core/tests/coretests/src/android/view/InsetsStateTest.java
index 20be8c22ccfc..79ac2b77dda5 100644
--- a/core/tests/coretests/src/android/view/InsetsStateTest.java
+++ b/core/tests/coretests/src/android/view/InsetsStateTest.java
@@ -213,6 +213,7 @@ public class InsetsStateTest {
@Test
public void testParcelUnparcel() {
mState.getSource(ITYPE_IME).setFrame(new Rect(0, 0, 100, 100));
+ mState.getSource(ITYPE_IME).setVisibleFrame(new Rect(0, 0, 50, 10));
mState.getSource(ITYPE_IME).setVisible(true);
mState.getSource(ITYPE_STATUS_BAR).setFrame(new Rect(0, 0, 100, 100));
Parcel p = Parcel.obtain();
@@ -224,6 +225,16 @@ public class InsetsStateTest {
}
@Test
+ public void testCopy() {
+ mState.getSource(ITYPE_IME).setFrame(new Rect(0, 0, 100, 100));
+ mState.getSource(ITYPE_IME).setVisibleFrame(new Rect(0, 0, 50, 10));
+ mState.getSource(ITYPE_IME).setVisible(true);
+ mState.getSource(ITYPE_STATUS_BAR).setFrame(new Rect(0, 0, 100, 100));
+ mState2.set(mState, true);
+ assertEquals(mState, mState2);
+ }
+
+ @Test
public void testGetDefaultVisibility() {
assertTrue(InsetsState.getDefaultVisibility(ITYPE_STATUS_BAR));
assertTrue(InsetsState.getDefaultVisibility(ITYPE_NAVIGATION_BAR));
diff --git a/core/tests/coretests/src/android/view/ScaleGestureDetectorTest.java b/core/tests/coretests/src/android/view/ScaleGestureDetectorTest.java
index f63a4548b478..039387c85b11 100644
--- a/core/tests/coretests/src/android/view/ScaleGestureDetectorTest.java
+++ b/core/tests/coretests/src/android/view/ScaleGestureDetectorTest.java
@@ -22,8 +22,7 @@ import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-import android.content.Context;
-import android.util.DisplayMetrics;
+import android.util.Size;
import android.widget.TextView;
import androidx.test.filters.LargeTest;
@@ -54,25 +53,23 @@ public class ScaleGestureDetectorTest {
final float initialScaleFactor = 1.0f;
assertEquals(initialScaleFactor, mScaleGestureActivity.getScaleFactor(), 0f);
- // Specify start and end coordinates, irrespective of device display size.
- final DisplayMetrics dm = new DisplayMetrics();
- final WindowManager wm = (WindowManager) (mScaleGestureActivity.getApplicationContext())
- .getSystemService(Context.WINDOW_SERVICE);
- wm.getDefaultDisplay().getMetrics(dm);
- final int displayWidth = dm.widthPixels;
- final int displayHeight = dm.heightPixels;
+ // Specify start and end coordinates with respect to the window size.
+ final WindowManager wm = mScaleGestureActivity.getSystemService(WindowManager.class);
+ final Size windowSize = wm.getCurrentWindowMetrics().getSize();
+ final int windowWidth = windowSize.getWidth();
+ final int windowHeight = windowSize.getHeight();
// Obtain coordinates to perform pinch and zoom from the center, to 75% of the display.
- final int centerX = displayWidth / 2;
- final int centerY = displayHeight / 2;
+ final int centerX = windowWidth / 2;
+ final int centerY = windowHeight / 2;
// Offset center coordinates by one, so that the two starting points are different.
final float[] firstFingerStartCoords = new float[] {centerX + 1.0f, centerY - 1.0f};
final float[] firstFingerEndCoords =
- new float[] {0.75f * displayWidth, 0.25f * displayHeight};
+ new float[] {0.75f * windowWidth, 0.25f * windowHeight};
final float[] secondFingerStartCoords = new float[] {centerX - 1.0f, centerY + 1.0f};
final float[] secondFingerEndCoords =
- new float[] {0.25f * displayWidth, 0.75f * displayHeight};
+ new float[] {0.25f * windowWidth, 0.75f * windowHeight};
onView(withId(R.id.article)).perform(new PinchZoomAction(firstFingerStartCoords,
firstFingerEndCoords, secondFingerStartCoords, secondFingerEndCoords,
diff --git a/core/tests/coretests/src/android/view/accessibility/AccessibilityServiceConnectionImpl.java b/core/tests/coretests/src/android/view/accessibility/AccessibilityServiceConnectionImpl.java
index 8b8e9ea4c6ee..b71c5800161e 100644
--- a/core/tests/coretests/src/android/view/accessibility/AccessibilityServiceConnectionImpl.java
+++ b/core/tests/coretests/src/android/view/accessibility/AccessibilityServiceConnectionImpl.java
@@ -19,7 +19,6 @@ package android.view.accessibility;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.accessibilityservice.IAccessibilityServiceConnection;
import android.content.pm.ParceledListSlice;
-import android.graphics.Bitmap;
import android.graphics.Region;
import android.os.Bundle;
import android.os.IBinder;
@@ -157,9 +156,5 @@ public class AccessibilityServiceConnectionImpl extends IAccessibilityServiceCon
return -1;
}
- public Bitmap takeScreenshot(int displayId) {
- return null;
- }
-
- public void takeScreenshotWithCallback(int displayId, RemoteCallback callback) {}
+ public void takeScreenshot(int displayId, RemoteCallback callback) {}
}
diff --git a/core/tests/coretests/src/android/view/inputmethod/InputMethodManagerTest.java b/core/tests/coretests/src/android/view/inputmethod/InputMethodManagerTest.java
index 9f259a841319..d70572444128 100644
--- a/core/tests/coretests/src/android/view/inputmethod/InputMethodManagerTest.java
+++ b/core/tests/coretests/src/android/view/inputmethod/InputMethodManagerTest.java
@@ -16,11 +16,13 @@
package android.view.inputmethod;
+import static android.view.Display.DEFAULT_DISPLAY;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import android.content.Context;
-import android.view.WindowManager;
+import android.hardware.display.DisplayManager;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
@@ -43,9 +45,9 @@ public class InputMethodManagerTest {
final Context testContext = InstrumentationRegistry.getInstrumentation()
.getTargetContext();
- final WindowManager wm = testContext.getSystemService(WindowManager.class);
+ final DisplayManager dm = testContext.getSystemService(DisplayManager.class);
final Context defaultDisplayContext =
- testContext.createDisplayContext(wm.getDefaultDisplay());
+ testContext.createDisplayContext(dm.getDisplay(DEFAULT_DISPLAY));
final InputMethodManager imm =
defaultDisplayContext.getSystemService(InputMethodManager.class);
assertEquals("InputMethodManager.getInstance() always returns the instance for the default"
diff --git a/core/tests/coretests/src/android/view/menu/ContextMenuTest.java b/core/tests/coretests/src/android/view/menu/ContextMenuTest.java
index ba85d765ceda..d5825e20163c 100644
--- a/core/tests/coretests/src/android/view/menu/ContextMenuTest.java
+++ b/core/tests/coretests/src/android/view/menu/ContextMenuTest.java
@@ -16,11 +16,9 @@
package android.view.menu;
-import android.content.Context;
-import android.graphics.Point;
import android.test.ActivityInstrumentationTestCase;
import android.util.PollingCheck;
-import android.view.Display;
+import android.util.Size;
import android.view.View;
import android.view.WindowManager;
import android.widget.espresso.ContextMenuUtils;
@@ -82,12 +80,9 @@ public class ContextMenuTest extends ActivityInstrumentationTestCase<ContextMenu
* Returns the minimum of the default display's width and height.
*/
private int getMinScreenDimension() {
- final WindowManager windowManager = (WindowManager) getActivity().getSystemService(
- Context.WINDOW_SERVICE);
- final Display display = windowManager.getDefaultDisplay();
- final Point displaySize = new Point();
- display.getRealSize(displaySize);
- return Math.min(displaySize.x, displaySize.y);
+ final WindowManager windowManager = getActivity().getSystemService(WindowManager.class);
+ final Size maxWindowSize = windowManager.getMaximumWindowMetrics().getSize();
+ return Math.min(maxWindowSize.getWidth(), maxWindowSize.getHeight());
}
/**
diff --git a/core/tests/coretests/src/android/view/textclassifier/TextClassificationManagerTest.java b/core/tests/coretests/src/android/view/textclassifier/TextClassificationManagerTest.java
index 8faf790549d5..1ca46491b363 100644
--- a/core/tests/coretests/src/android/view/textclassifier/TextClassificationManagerTest.java
+++ b/core/tests/coretests/src/android/view/textclassifier/TextClassificationManagerTest.java
@@ -25,7 +25,6 @@ import static org.mockito.Mockito.mock;
import android.content.Context;
import android.content.Intent;
import android.os.LocaleList;
-import android.service.textclassifier.TextClassifierService;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
@@ -64,9 +63,7 @@ public class TextClassificationManagerTest {
@Test
public void testGetSystemTextClassifier() {
- assertTrue(
- TextClassifierService.getServiceComponentName(mContext) == null
- || mTcm.getTextClassifier(TextClassifier.SYSTEM) instanceof SystemTextClassifier);
+ assertTrue(mTcm.getTextClassifier(TextClassifier.SYSTEM) instanceof SystemTextClassifier);
}
@Test
diff --git a/core/tests/coretests/src/android/view/textclassifier/TextClassifierTest.java b/core/tests/coretests/src/android/view/textclassifier/TextClassifierTest.java
index 2304ba6f6da4..372a4787cf1a 100644
--- a/core/tests/coretests/src/android/view/textclassifier/TextClassifierTest.java
+++ b/core/tests/coretests/src/android/view/textclassifier/TextClassifierTest.java
@@ -27,6 +27,7 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.LocaleList;
+import android.service.textclassifier.TextClassifierService;
import android.text.Spannable;
import android.text.SpannableString;
@@ -58,11 +59,12 @@ import java.util.List;
public class TextClassifierTest {
private static final String LOCAL = "local";
private static final String SESSION = "session";
+ private static final String DEFAULT = "default";
// TODO: Add SYSTEM, which tests TextClassifier.SYSTEM.
@Parameterized.Parameters(name = "{0}")
public static Iterable<Object> textClassifierTypes() {
- return Arrays.asList(LOCAL, SESSION);
+ return Arrays.asList(LOCAL, SESSION, DEFAULT);
}
@Parameterized.Parameter
@@ -84,13 +86,15 @@ public class TextClassifierTest {
if (mTextClassifierType.equals(LOCAL)) {
mClassifier = mTcm.getTextClassifier(TextClassifier.LOCAL);
- } else {
+ } else if (mTextClassifierType.equals(SESSION)) {
mClassifier = mTcm.createTextClassificationSession(
new TextClassificationContext.Builder(
"android",
TextClassifier.WIDGET_TYPE_NOTIFICATION)
.build(),
mTcm.getTextClassifier(TextClassifier.LOCAL));
+ } else {
+ mClassifier = TextClassifierService.getDefaultTextClassifierImplementation(mContext);
}
}
@@ -369,16 +373,14 @@ public class TextClassifierTest {
mClassifier.generateLinks(request).apply(url, 0, null));
}
-
- @Test(expected = IllegalArgumentException.class)
+ @Test
public void testGenerateLinks_tooLong() {
- if (isTextClassifierDisabled()) {
- throw new IllegalArgumentException("pass if disabled");
- }
+ if (isTextClassifierDisabled()) return;
char[] manySpaces = new char[mClassifier.getMaxGenerateLinksTextLength() + 1];
Arrays.fill(manySpaces, ' ');
TextLinks.Request request = new TextLinks.Request.Builder(new String(manySpaces)).build();
- mClassifier.generateLinks(request);
+ TextLinks links = mClassifier.generateLinks(request);
+ assertTrue(links.getLinks().isEmpty());
}
@Test
diff --git a/core/tests/coretests/src/android/widget/focus/ListOfInternalSelectionViews.java b/core/tests/coretests/src/android/widget/focus/ListOfInternalSelectionViews.java
index 73e4ea8f718d..8e90a824c873 100644
--- a/core/tests/coretests/src/android/widget/focus/ListOfInternalSelectionViews.java
+++ b/core/tests/coretests/src/android/widget/focus/ListOfInternalSelectionViews.java
@@ -17,7 +17,6 @@
package android.widget.focus;
import android.app.Activity;
-import android.graphics.Point;
import android.os.Bundle;
import android.util.InternalSelectionView;
import android.view.View;
@@ -112,9 +111,7 @@ public class ListOfInternalSelectionViews extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
- Point size = new Point();
- getWindowManager().getDefaultDisplay().getSize(size);
- mScreenHeight = size.y;
+ mScreenHeight = getWindowManager().getCurrentWindowMetrics().getSize().getHeight();
Bundle extras = getIntent().getExtras();
if (extras != null) {
diff --git a/core/tests/coretests/src/android/widget/gridview/touch/GridTouchVerticalSpacingStackFromBottomTest.java b/core/tests/coretests/src/android/widget/gridview/touch/GridTouchVerticalSpacingStackFromBottomTest.java
index 0d3092cbc2f3..fd1dbfc63708 100644
--- a/core/tests/coretests/src/android/widget/gridview/touch/GridTouchVerticalSpacingStackFromBottomTest.java
+++ b/core/tests/coretests/src/android/widget/gridview/touch/GridTouchVerticalSpacingStackFromBottomTest.java
@@ -106,9 +106,10 @@ public class GridTouchVerticalSpacingStackFromBottomTest extends ActivityInstrum
int firstTop = firstChild.getTop();
+ int windowHeight = mActivity.getWindowManager().getCurrentWindowMetrics().getSize()
+ .getHeight();
int distance = TouchUtils.dragViewBy(this, firstChild,
- Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0,
- (int) (mActivity.getWindowManager().getDefaultDisplay().getHeight() * 0.75f));
+ Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, (int) (windowHeight * 0.75f));
assertEquals("View scrolled to wrong position", firstTop
+ (distance - mViewConfig.getScaledTouchSlop() - 1), firstChild.getTop());
diff --git a/core/tests/coretests/src/android/widget/listview/AdjacentListsWithAdjacentISVsInside.java b/core/tests/coretests/src/android/widget/listview/AdjacentListsWithAdjacentISVsInside.java
index 9e49719c6527..e6195b147045 100644
--- a/core/tests/coretests/src/android/widget/listview/AdjacentListsWithAdjacentISVsInside.java
+++ b/core/tests/coretests/src/android/widget/listview/AdjacentListsWithAdjacentISVsInside.java
@@ -65,7 +65,8 @@ public class AdjacentListsWithAdjacentISVsInside extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- final int desiredHeight = (int) (0.8 * getWindowManager().getDefaultDisplay().getHeight());
+ final int desiredHeight =
+ (int) (0.8 * getWindowManager().getCurrentWindowMetrics().getSize().getHeight());
mLeftListView = new ListView(this);
mLeftListView.setAdapter(new AdjacentISVAdapter(desiredHeight));
diff --git a/core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java b/core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java
index df6b9066ea5c..ce71bebfc455 100644
--- a/core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java
+++ b/core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java
@@ -38,6 +38,7 @@ import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
@@ -355,6 +356,7 @@ public class ChooserActivityTest {
// enable the work tab feature flag
ResolverActivity.ENABLE_TABBED_VIEW = true;
+ markWorkProfileUserAvailable();
Intent sendIntent = createSendTextIntent();
List<ResolvedComponentInfo> resolvedComponentInfos =
createResolvedComponentsForTestWithOtherProfile(2);
@@ -1209,17 +1211,24 @@ public class ChooserActivityTest {
// enable the work tab feature flag
ResolverActivity.ENABLE_TABBED_VIEW = true;
int personalProfileTargets = 3;
+ int otherProfileTargets = 1;
List<ResolvedComponentInfo> personalResolvedComponentInfos =
- createResolvedComponentsForTest(personalProfileTargets);
+ createResolvedComponentsForTestWithOtherProfile(
+ personalProfileTargets + otherProfileTargets, /* userID */ 10);
int workProfileTargets = 4;
List<ResolvedComponentInfo> workResolvedComponentInfos = createResolvedComponentsForTest(
workProfileTargets);
when(sOverrides.resolverListController.getResolversForIntent(Mockito.anyBoolean(),
Mockito.anyBoolean(),
- Mockito.isA(List.class))).thenReturn(personalResolvedComponentInfos);
+ Mockito.isA(List.class)))
+ .thenReturn(new ArrayList<>(personalResolvedComponentInfos));
when(sOverrides.workResolverListController.getResolversForIntent(Mockito.anyBoolean(),
Mockito.anyBoolean(),
- Mockito.isA(List.class))).thenReturn(workResolvedComponentInfos);
+ Mockito.isA(List.class))).thenReturn(new ArrayList<>(workResolvedComponentInfos));
+ when(sOverrides.workResolverListController.getResolversForIntentAsUser(Mockito.anyBoolean(),
+ Mockito.anyBoolean(),
+ Mockito.isA(List.class),
+ eq(UserHandle.SYSTEM))).thenReturn(new ArrayList<>(personalResolvedComponentInfos));
Intent sendIntent = createSendTextIntent();
sendIntent.setType("TestType");
markWorkProfileUserAvailable();
@@ -1229,8 +1238,6 @@ public class ChooserActivityTest {
waitForIdle();
assertThat(activity.getCurrentUserHandle().getIdentifier(), is(0));
- // The work list adapter must only be filled when we open the work tab
- assertThat(activity.getWorkListAdapter().getCount(), is(0));
onView(withText(R.string.resolver_work_tab)).perform(click());
assertThat(activity.getCurrentUserHandle().getIdentifier(), is(10));
assertThat(activity.getPersonalListAdapter().getCount(), is(personalProfileTargets));
@@ -1243,11 +1250,22 @@ public class ChooserActivityTest {
ResolverActivity.ENABLE_TABBED_VIEW = true;
markWorkProfileUserAvailable();
int workProfileTargets = 4;
+ List<ResolvedComponentInfo> personalResolvedComponentInfos =
+ createResolvedComponentsForTestWithOtherProfile(3, /* userId */ 10);
List<ResolvedComponentInfo> workResolvedComponentInfos =
createResolvedComponentsForTest(workProfileTargets);
+ when(sOverrides.resolverListController.getResolversForIntent(Mockito.anyBoolean(),
+ Mockito.anyBoolean(),
+ Mockito.isA(List.class)))
+ .thenReturn(new ArrayList<>(personalResolvedComponentInfos));
when(sOverrides.workResolverListController.getResolversForIntent(Mockito.anyBoolean(),
Mockito.anyBoolean(),
Mockito.isA(List.class))).thenReturn(workResolvedComponentInfos);
+ when(sOverrides.workResolverListController.getResolversForIntentAsUser(Mockito.anyBoolean(),
+ Mockito.anyBoolean(),
+ Mockito.isA(List.class),
+ eq(UserHandle.SYSTEM)))
+ .thenReturn(new ArrayList<>(personalResolvedComponentInfos));
Intent sendIntent = createSendTextIntent();
sendIntent.setType("TestType");
@@ -1357,6 +1375,20 @@ public class ChooserActivityTest {
return infoList;
}
+ private List<ResolvedComponentInfo> createResolvedComponentsForTestWithOtherProfile(
+ int numberOfResults, int userId) {
+ List<ResolvedComponentInfo> infoList = new ArrayList<>(numberOfResults);
+ for (int i = 0; i < numberOfResults; i++) {
+ if (i == 0) {
+ infoList.add(
+ ResolverDataProvider.createResolvedComponentInfoWithOtherId(i, userId));
+ } else {
+ infoList.add(ResolverDataProvider.createResolvedComponentInfo(i));
+ }
+ }
+ return infoList;
+ }
+
private List<ResolvedComponentInfo> createResolvedComponentsForTestWithUserId(
int numberOfResults, int userId) {
List<ResolvedComponentInfo> infoList = new ArrayList<>(numberOfResults);
diff --git a/core/tests/coretests/src/com/android/internal/app/ChooserWrapperActivity.java b/core/tests/coretests/src/com/android/internal/app/ChooserWrapperActivity.java
index eee62bb791bf..a68b59086d42 100644
--- a/core/tests/coretests/src/com/android/internal/app/ChooserWrapperActivity.java
+++ b/core/tests/coretests/src/com/android/internal/app/ChooserWrapperActivity.java
@@ -16,10 +16,15 @@
package com.android.internal.app;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import android.annotation.Nullable;
+import android.app.prediction.AppPredictionContext;
+import android.app.prediction.AppPredictionManager;
+import android.app.prediction.AppPredictor;
import android.app.usage.UsageStatsManager;
import android.content.ContentResolver;
import android.content.Context;
@@ -40,6 +45,8 @@ import com.android.internal.app.chooser.TargetInfo;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import org.mockito.Mockito;
+
import java.util.function.Function;
public class ChooserWrapperActivity extends ChooserActivity {
@@ -173,6 +180,12 @@ public class ChooserWrapperActivity extends ChooserActivity {
return mMultiProfilePagerAdapter.getCurrentUserHandle();
}
+ @Override
+ public Context createContextAsUser(UserHandle user, int flags) {
+ // return the current context as a work profile doesn't really exist in these tests
+ return getApplicationContext();
+ }
+
/**
* We cannot directly mock the activity created since instrumentation creates it.
* <p>
diff --git a/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java b/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java
index 911490f30799..5f4194aa51e3 100644
--- a/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java
+++ b/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java
@@ -225,6 +225,7 @@ public class ResolverActivityTest {
// enable the work tab feature flag
ResolverActivity.ENABLE_TABBED_VIEW = true;
+ markWorkProfileUserAvailable();
Intent sendIntent = createSendImageIntent();
List<ResolvedComponentInfo> resolvedComponentInfos =
createResolvedComponentsForTestWithOtherProfile(2);
@@ -246,7 +247,6 @@ public class ResolverActivityTest {
chosen[0] = targetInfo.getResolveInfo();
return true;
};
-
// Make a stable copy of the components as the original list may be modified
List<ResolvedComponentInfo> stableCopy =
createResolvedComponentsForTestWithOtherProfile(2);
@@ -443,7 +443,7 @@ public class ResolverActivityTest {
// enable the work tab feature flag
ResolverActivity.ENABLE_TABBED_VIEW = true;
List<ResolvedComponentInfo> personalResolvedComponentInfos =
- createResolvedComponentsForTest(3);
+ createResolvedComponentsForTestWithOtherProfile(3, /* userId */ 10);
List<ResolvedComponentInfo> workResolvedComponentInfos = createResolvedComponentsForTest(4);
when(sOverrides.resolverListController.getResolversForIntent(Mockito.anyBoolean(),
Mockito.anyBoolean(),
@@ -451,6 +451,11 @@ public class ResolverActivityTest {
when(sOverrides.workResolverListController.getResolversForIntent(Mockito.anyBoolean(),
Mockito.anyBoolean(),
Mockito.isA(List.class))).thenReturn(workResolvedComponentInfos);
+ when(sOverrides.workResolverListController.getResolversForIntentAsUser(Mockito.anyBoolean(),
+ Mockito.anyBoolean(),
+ Mockito.isA(List.class),
+ eq(UserHandle.SYSTEM)))
+ .thenReturn(new ArrayList<>(personalResolvedComponentInfos));
Intent sendIntent = createSendImageIntent();
markWorkProfileUserAvailable();
@@ -478,17 +483,20 @@ public class ResolverActivityTest {
Mockito.anyBoolean(),
Mockito.anyBoolean(),
Mockito.isA(List.class),
- eq(sOverrides.workProfileUserHandle))).thenReturn(new ArrayList<>(workResolvedComponentInfos));
+ eq(sOverrides.workProfileUserHandle)))
+ .thenReturn(new ArrayList<>(workResolvedComponentInfos));
when(sOverrides.workResolverListController.getResolversForIntentAsUser(Mockito.anyBoolean(),
Mockito.anyBoolean(),
Mockito.isA(List.class),
- eq(sOverrides.workProfileUserHandle))).thenReturn(new ArrayList<>(workResolvedComponentInfos));
+ eq(sOverrides.workProfileUserHandle)))
+ .thenReturn(new ArrayList<>(workResolvedComponentInfos));
when(sOverrides.workResolverListController.getResolversForIntent(Mockito.anyBoolean(),
Mockito.anyBoolean(),
Mockito.isA(List.class))).thenReturn(new ArrayList<>(workResolvedComponentInfos));
when(sOverrides.resolverListController.getResolversForIntent(Mockito.anyBoolean(),
Mockito.anyBoolean(),
- Mockito.isA(List.class))).thenReturn(new ArrayList<>(personalResolvedComponentInfos));
+ Mockito.isA(List.class)))
+ .thenReturn(new ArrayList<>(personalResolvedComponentInfos));
when(sOverrides.workResolverListController.getResolversForIntentAsUser(Mockito.anyBoolean(),
Mockito.anyBoolean(),
Mockito.isA(List.class),
@@ -502,7 +510,7 @@ public class ResolverActivityTest {
onView(withText(R.string.resolver_work_tab)).perform(click());
assertThat(activity.getCurrentUserHandle().getIdentifier(), is(10));
- assertThat(activity.getPersonalListAdapter().getCount(), is(3));
+ assertThat(activity.getPersonalListAdapter().getCount(), is(2));
}
@Test
@@ -511,14 +519,20 @@ public class ResolverActivityTest {
ResolverActivity.ENABLE_TABBED_VIEW = true;
markWorkProfileUserAvailable();
List<ResolvedComponentInfo> personalResolvedComponentInfos =
- createResolvedComponentsForTest(3);
+ createResolvedComponentsForTestWithOtherProfile(3, /* userId */ 10);
List<ResolvedComponentInfo> workResolvedComponentInfos = createResolvedComponentsForTest(4);
when(sOverrides.resolverListController.getResolversForIntent(Mockito.anyBoolean(),
Mockito.anyBoolean(),
- Mockito.isA(List.class))).thenReturn(personalResolvedComponentInfos);
+ Mockito.isA(List.class)))
+ .thenReturn(new ArrayList<>(personalResolvedComponentInfos));
when(sOverrides.workResolverListController.getResolversForIntent(Mockito.anyBoolean(),
Mockito.anyBoolean(),
Mockito.isA(List.class))).thenReturn(workResolvedComponentInfos);
+ when(sOverrides.workResolverListController.getResolversForIntentAsUser(Mockito.anyBoolean(),
+ Mockito.anyBoolean(),
+ Mockito.isA(List.class),
+ eq(UserHandle.SYSTEM)))
+ .thenReturn(new ArrayList<>(personalResolvedComponentInfos));
Intent sendIntent = createSendImageIntent();
final ResolverWrapperActivity activity = mActivityRule.launchActivity(sendIntent);
@@ -536,14 +550,20 @@ public class ResolverActivityTest {
ResolverActivity.ENABLE_TABBED_VIEW = true;
markWorkProfileUserAvailable();
List<ResolvedComponentInfo> personalResolvedComponentInfos =
- createResolvedComponentsForTest(3);
+ createResolvedComponentsForTestWithOtherProfile(3, /* userId */ 10);
List<ResolvedComponentInfo> workResolvedComponentInfos = createResolvedComponentsForTest(4);
when(sOverrides.resolverListController.getResolversForIntent(Mockito.anyBoolean(),
Mockito.anyBoolean(),
- Mockito.isA(List.class))).thenReturn(personalResolvedComponentInfos);
+ Mockito.isA(List.class)))
+ .thenReturn(new ArrayList<>(personalResolvedComponentInfos));
when(sOverrides.workResolverListController.getResolversForIntent(Mockito.anyBoolean(),
Mockito.anyBoolean(),
Mockito.isA(List.class))).thenReturn(workResolvedComponentInfos);
+ when(sOverrides.workResolverListController.getResolversForIntentAsUser(Mockito.anyBoolean(),
+ Mockito.anyBoolean(),
+ Mockito.isA(List.class),
+ eq(UserHandle.SYSTEM)))
+ .thenReturn(new ArrayList<>(personalResolvedComponentInfos));
Intent sendIntent = createSendImageIntent();
ResolveInfo[] chosen = new ResolveInfo[1];
sOverrides.onSafelyStartCallback = targetInfo -> {
@@ -587,17 +607,20 @@ public class ResolverActivityTest {
Mockito.anyBoolean(),
Mockito.anyBoolean(),
Mockito.isA(List.class),
- eq(sOverrides.workProfileUserHandle))).thenReturn(new ArrayList<>(workResolvedComponentInfos));
+ eq(sOverrides.workProfileUserHandle)))
+ .thenReturn(new ArrayList<>(workResolvedComponentInfos));
when(sOverrides.workResolverListController.getResolversForIntentAsUser(Mockito.anyBoolean(),
Mockito.anyBoolean(),
Mockito.isA(List.class),
- eq(sOverrides.workProfileUserHandle))).thenReturn(new ArrayList<>(workResolvedComponentInfos));
+ eq(sOverrides.workProfileUserHandle)))
+ .thenReturn(new ArrayList<>(workResolvedComponentInfos));
when(sOverrides.workResolverListController.getResolversForIntent(Mockito.anyBoolean(),
Mockito.anyBoolean(),
Mockito.isA(List.class))).thenReturn(new ArrayList<>(workResolvedComponentInfos));
when(sOverrides.resolverListController.getResolversForIntent(Mockito.anyBoolean(),
Mockito.anyBoolean(),
- Mockito.isA(List.class))).thenReturn(new ArrayList<>(personalResolvedComponentInfos));
+ Mockito.isA(List.class)))
+ .thenReturn(new ArrayList<>(personalResolvedComponentInfos));
when(sOverrides.workResolverListController.getResolversForIntentAsUser(Mockito.anyBoolean(),
Mockito.anyBoolean(),
Mockito.isA(List.class),
@@ -678,6 +701,20 @@ public class ResolverActivityTest {
return infoList;
}
+ private List<ResolvedComponentInfo> createResolvedComponentsForTestWithOtherProfile(
+ int numberOfResults, int userId) {
+ List<ResolvedComponentInfo> infoList = new ArrayList<>(numberOfResults);
+ for (int i = 0; i < numberOfResults; i++) {
+ if (i == 0) {
+ infoList.add(
+ ResolverDataProvider.createResolvedComponentInfoWithOtherId(i, userId));
+ } else {
+ infoList.add(ResolverDataProvider.createResolvedComponentInfo(i));
+ }
+ }
+ return infoList;
+ }
+
private void waitForIdle() {
InstrumentationRegistry.getInstrumentation().waitForIdleSync();
}
diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryStatsHelperTest.java b/core/tests/coretests/src/com/android/internal/os/BatteryStatsHelperTest.java
index 355601ca05ed..fbe16f2c39d1 100644
--- a/core/tests/coretests/src/com/android/internal/os/BatteryStatsHelperTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/BatteryStatsHelperTest.java
@@ -37,12 +37,13 @@ import android.content.pm.PackageManager;
import android.os.BatteryStats;
import android.os.Process;
import android.text.format.DateUtils;
-import android.util.StatsLog;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
+import com.android.internal.util.FrameworkStatsLog;
+
import junit.framework.TestCase;
import org.junit.Before;
@@ -262,31 +263,31 @@ public class BatteryStatsHelperTest extends TestCase {
@Test
public void testDrainTypesSyncedWithProto() {
assertEquals(BatterySipper.DrainType.AMBIENT_DISPLAY.ordinal(),
- StatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__AMBIENT_DISPLAY);
+ FrameworkStatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__AMBIENT_DISPLAY);
// AtomsProto has no "APP"
assertEquals(BatterySipper.DrainType.BLUETOOTH.ordinal(),
- StatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__BLUETOOTH);
+ FrameworkStatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__BLUETOOTH);
assertEquals(BatterySipper.DrainType.CAMERA.ordinal(),
- StatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__CAMERA);
+ FrameworkStatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__CAMERA);
assertEquals(BatterySipper.DrainType.CELL.ordinal(),
- StatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__CELL);
+ FrameworkStatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__CELL);
assertEquals(BatterySipper.DrainType.FLASHLIGHT.ordinal(),
- StatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__FLASHLIGHT);
+ FrameworkStatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__FLASHLIGHT);
assertEquals(BatterySipper.DrainType.IDLE.ordinal(),
- StatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__IDLE);
+ FrameworkStatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__IDLE);
assertEquals(BatterySipper.DrainType.MEMORY.ordinal(),
- StatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__MEMORY);
+ FrameworkStatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__MEMORY);
assertEquals(BatterySipper.DrainType.OVERCOUNTED.ordinal(),
- StatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__OVERCOUNTED);
+ FrameworkStatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__OVERCOUNTED);
assertEquals(BatterySipper.DrainType.PHONE.ordinal(),
- StatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__PHONE);
+ FrameworkStatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__PHONE);
assertEquals(BatterySipper.DrainType.SCREEN.ordinal(),
- StatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__SCREEN);
+ FrameworkStatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__SCREEN);
assertEquals(BatterySipper.DrainType.UNACCOUNTED.ordinal(),
- StatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__UNACCOUNTED);
+ FrameworkStatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__UNACCOUNTED);
// AtomsProto has no "USER"
assertEquals(BatterySipper.DrainType.WIFI.ordinal(),
- StatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__WIFI);
+ FrameworkStatsLog.DEVICE_CALCULATED_POWER_BLAME_OTHER__DRAIN_TYPE__WIFI);
}
private BatterySipper createTestSmearBatterySipper(long activityTime, double totalPowerMah,
diff --git a/core/tests/coretests/src/com/android/internal/policy/DecorContextTest.java b/core/tests/coretests/src/com/android/internal/policy/DecorContextTest.java
index cd706089929e..cdcf23fc10bb 100644
--- a/core/tests/coretests/src/com/android/internal/policy/DecorContextTest.java
+++ b/core/tests/coretests/src/com/android/internal/policy/DecorContextTest.java
@@ -26,7 +26,6 @@ import android.platform.test.annotations.Presubmit;
import android.view.Display;
import android.view.DisplayAdjustments;
import android.view.DisplayInfo;
-import android.view.WindowManager;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
@@ -71,8 +70,7 @@ public final class DecorContextTest {
private static void assertDecorContextDisplay(int expectedDisplayId,
DecorContext decorContext) {
- WindowManager wm = (WindowManager) decorContext.getSystemService(Context.WINDOW_SERVICE);
- Display associatedDisplay = wm.getDefaultDisplay();
+ Display associatedDisplay = decorContext.getDisplay();
assertEquals(expectedDisplayId, associatedDisplay.getDisplayId());
}
}
diff --git a/core/tests/utiltests/src/com/android/internal/util/LocationPermissionCheckerTest.java b/core/tests/utiltests/src/com/android/internal/util/LocationPermissionCheckerTest.java
index 6010f3962d68..4c3eaeb1730b 100644
--- a/core/tests/utiltests/src/com/android/internal/util/LocationPermissionCheckerTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/LocationPermissionCheckerTest.java
@@ -15,6 +15,7 @@
*/
package com.android.internal.util;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -121,6 +122,7 @@ public class LocationPermissionCheckerTest {
private void setupTestCase() throws Exception {
setupMocks();
setupMockInterface();
+ mChecker = new LocationPermissionChecker(mMockContext);
}
private void initTestVars() {
@@ -136,7 +138,6 @@ public class LocationPermissionCheckerTest {
mFineLocationPermission = PackageManager.PERMISSION_DENIED;
mAllowCoarseLocationApps = AppOpsManager.MODE_ERRORED;
mAllowFineLocationApps = AppOpsManager.MODE_ERRORED;
- mChecker = new LocationPermissionChecker(mMockContext);
}
private void setupMockInterface() {
@@ -180,7 +181,11 @@ public class LocationPermissionCheckerTest {
mWifiScanAllowApps = AppOpsManager.MODE_ALLOWED;
mUid = mCurrentUser;
setupTestCase();
- mChecker.enforceLocationPermission(TEST_PKG_NAME, TEST_FEATURE_ID, mUid, null);
+
+ final int result =
+ mChecker.checkLocationPermissionWithDetailInfo(
+ TEST_PKG_NAME, TEST_FEATURE_ID, mUid, null);
+ assertEquals(LocationPermissionChecker.SUCCEEDED, result);
}
@Test
@@ -193,7 +198,11 @@ public class LocationPermissionCheckerTest {
mAllowFineLocationApps = AppOpsManager.MODE_ALLOWED;
mWifiScanAllowApps = AppOpsManager.MODE_ALLOWED;
setupTestCase();
- mChecker.enforceLocationPermission(TEST_PKG_NAME, TEST_FEATURE_ID, mUid, null);
+
+ final int result =
+ mChecker.checkLocationPermissionWithDetailInfo(
+ TEST_PKG_NAME, TEST_FEATURE_ID, mUid, null);
+ assertEquals(LocationPermissionChecker.SUCCEEDED, result);
}
@Test
@@ -206,7 +215,7 @@ public class LocationPermissionCheckerTest {
setupTestCase();
assertThrows(SecurityException.class,
- () -> mChecker.enforceLocationPermission(
+ () -> mChecker.checkLocationPermissionWithDetailInfo(
TEST_PKG_NAME, TEST_FEATURE_ID, mUid, null));
}
@@ -215,9 +224,11 @@ public class LocationPermissionCheckerTest {
mThrowSecurityException = false;
mIsLocationEnabled = true;
setupTestCase();
- assertThrows(SecurityException.class,
- () -> mChecker.enforceLocationPermission(
- TEST_PKG_NAME, TEST_FEATURE_ID, mUid, null));
+
+ final int result =
+ mChecker.checkLocationPermissionWithDetailInfo(
+ TEST_PKG_NAME, TEST_FEATURE_ID, mUid, null);
+ assertEquals(LocationPermissionChecker.ERROR_LOCATION_PERMISSION_MISSING, result);
}
@Test
@@ -230,9 +241,10 @@ public class LocationPermissionCheckerTest {
mUid = MANAGED_PROFILE_UID;
setupTestCase();
- assertThrows(SecurityException.class,
- () -> mChecker.enforceLocationPermission(
- TEST_PKG_NAME, TEST_FEATURE_ID, mUid, null));
+ final int result =
+ mChecker.checkLocationPermissionWithDetailInfo(
+ TEST_PKG_NAME, TEST_FEATURE_ID, mUid, null);
+ assertEquals(LocationPermissionChecker.ERROR_LOCATION_PERMISSION_MISSING, result);
verify(mMockAppOps, never()).noteOp(anyInt(), anyInt(), anyString());
}
@@ -246,9 +258,10 @@ public class LocationPermissionCheckerTest {
setupTestCase();
- assertThrows(SecurityException.class,
- () -> mChecker.enforceLocationPermission(
- TEST_PKG_NAME, TEST_FEATURE_ID, mUid, null));
+ final int result =
+ mChecker.checkLocationPermissionWithDetailInfo(
+ TEST_PKG_NAME, TEST_FEATURE_ID, mUid, null);
+ assertEquals(LocationPermissionChecker.ERROR_LOCATION_MODE_OFF, result);
}
private static void assertThrows(Class<? extends Exception> exceptionClass, Runnable r) {
diff --git a/data/etc/car/com.android.car.secondaryhome.xml b/data/etc/car/com.android.car.secondaryhome.xml
new file mode 100644
index 000000000000..c74b86ed8ae1
--- /dev/null
+++ b/data/etc/car/com.android.car.secondaryhome.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<permissions>
+ <privapp-permissions package="com.android.car.secondaryhome">
+ <!-- Required to launch app in ActivityView -->
+ <permission name="android.permission.ACTIVITY_EMBEDDING"/>
+ <!-- Required to send notification to current user-->
+ <permission name="android.permission.MANAGE_USERS"/>
+ </privapp-permissions>
+</permissions>
diff --git a/data/etc/com.android.settings.xml b/data/etc/com.android.settings.xml
index a200a510cf12..fe1182ecad4f 100644
--- a/data/etc/com.android.settings.xml
+++ b/data/etc/com.android.settings.xml
@@ -26,6 +26,7 @@
<permission name="android.permission.DELETE_PACKAGES"/>
<permission name="android.permission.FORCE_STOP_PACKAGES"/>
<permission name="android.permission.LOCAL_MAC_ADDRESS"/>
+ <permission name="android.permission.LOG_COMPAT_CHANGE" />
<permission name="android.permission.MANAGE_DEBUGGING"/>
<permission name="android.permission.MANAGE_DEVICE_ADMINS"/>
<permission name="android.permission.MANAGE_FINGERPRINT"/>
@@ -37,8 +38,10 @@
<permission name="android.permission.MODIFY_PHONE_STATE"/>
<permission name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<permission name="android.permission.MOVE_PACKAGE"/>
+ <permission name="android.permission.OVERRIDE_COMPAT_CHANGE_CONFIG" />
<permission name="android.permission.OVERRIDE_WIFI_CONFIG"/>
<permission name="android.permission.PACKAGE_USAGE_STATS"/>
+ <permission name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.READ_SEARCH_INDEXABLES"/>
<permission name="android.permission.REBOOT"/>
diff --git a/data/etc/framework-sysconfig.xml b/data/etc/framework-sysconfig.xml
index 7296cfdfbec7..3d78eb9c59b7 100644
--- a/data/etc/framework-sysconfig.xml
+++ b/data/etc/framework-sysconfig.xml
@@ -19,11 +19,29 @@
<!-- Broadcast actions that are currently exempted from O+ background
delivery restrictions. -->
- <allow-implicit-broadcast action="android.intent.action.SIM_STATE_CHANGED" />
- <allow-implicit-broadcast action="android.intent.action.PACKAGE_CHANGED" />
+ <allow-implicit-broadcast action="android.intent.action.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED" />
+ <allow-implicit-broadcast action="android.intent.action.ACTION_DEFAULT_VOICE_SUBSCRIPTION_CHANGED" />
+ <allow-implicit-broadcast action="android.intent.action.DATA_SMS_RECEIVED" />
<allow-implicit-broadcast action="android.intent.action.MEDIA_SCANNER_SCAN_FILE" />
- <allow-implicit-broadcast action="android.media.action.OPEN_AUDIO_EFFECT_CONTROL_SESSION" />
+ <allow-implicit-broadcast action="android.intent.action.PACKAGE_CHANGED" />
+ <allow-implicit-broadcast action="android.intent.action.SIM_STATE_CHANGED" />
<allow-implicit-broadcast action="android.media.action.CLOSE_AUDIO_EFFECT_CONTROL_SESSION" />
+ <allow-implicit-broadcast action="android.media.action.OPEN_AUDIO_EFFECT_CONTROL_SESSION" />
+ <allow-implicit-broadcast action="android.provider.Telephony.SECRET_CODE" />
+ <allow-implicit-broadcast action="android.provider.Telephony.SMS_CB_RECEIVED" />
+ <allow-implicit-broadcast action="android.provider.Telephony.SMS_DELIVER" />
+ <allow-implicit-broadcast action="android.provider.Telephony.SMS_RECEIVED" />
+ <allow-implicit-broadcast action="android.provider.Telephony.SMS_REJECTED" />
+ <allow-implicit-broadcast action="android.provider.Telephony.WAP_PUSH_DELIVER" />
+ <allow-implicit-broadcast action="android.provider.Telephony.WAP_PUSH_RECEIVED" />
+ <allow-implicit-broadcast action="android.telephony.action.CARRIER_CONFIG_CHANGED" />
+ <allow-implicit-broadcast action="android.telephony.action.DEFAULT_SMS_SUBSCRIPTION_CHANGED" />
+ <allow-implicit-broadcast action="android.telephony.action.DEFAULT_SUBSCRIPTION_CHANGED" />
+ <allow-implicit-broadcast action="android.telephony.action.SECRET_CODE" />
+ <allow-implicit-broadcast action="android.telephony.action.SIM_APPLICATION_STATE_CHANGED" />
+ <allow-implicit-broadcast action="android.telephony.action.SIM_CARD_STATE_CHANGED" />
+ <allow-implicit-broadcast action="android.telephony.action.SIM_SLOT_STATUS_CHANGED" />
+
<!-- Whitelist of what components are permitted as backup data transports. The
'service' attribute here is a flattened ComponentName string. -->
diff --git a/data/etc/platform.xml b/data/etc/platform.xml
index da505505628e..6929d0d1879d 100644
--- a/data/etc/platform.xml
+++ b/data/etc/platform.xml
@@ -72,6 +72,11 @@
<group gid="net_admin" />
</permission>
+ <permission name="android.permission.MAINLINE_NETWORK_STACK" >
+ <group gid="net_admin" />
+ <group gid="net_raw" />
+ </permission>
+
<!-- The group that /cache belongs to, linked to the permission
set on the applications that can access /cache -->
<permission name="android.permission.ACCESS_CACHE_FILESYSTEM" >
diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml
index aabd4125d0ed..f83fb3f312e9 100644
--- a/data/etc/privapp-permissions-platform.xml
+++ b/data/etc/privapp-permissions-platform.xml
@@ -132,6 +132,7 @@ applications that come with the platform
<permission name="android.permission.APPROVE_INCIDENT_REPORTS"/>
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
+ <permission name="android.permission.PACKAGE_USAGE_STATS" />
</privapp-permissions>
<privapp-permissions package="com.android.phone">
@@ -168,7 +169,7 @@ applications that come with the platform
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
<permission name="android.permission.STATUS_BAR"/>
<permission name="android.permission.STOP_APP_SWITCHES"/>
- <permission name="android.permission.SUGGEST_PHONE_TIME_AND_ZONE"/>
+ <permission name="android.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE"/>
<permission name="android.permission.UPDATE_APP_OPS_STATS"/>
<permission name="android.permission.UPDATE_DEVICE_STATS"/>
<permission name="android.permission.UPDATE_LOCK"/>
@@ -306,6 +307,7 @@ applications that come with the platform
<permission name="android.permission.LOCAL_MAC_ADDRESS"/>
<permission name="android.permission.MANAGE_ACCESSIBILITY"/>
<permission name="android.permission.MANAGE_DEVICE_ADMINS"/>
+ <permission name="android.permission.MANAGE_ROLLBACKS"/>
<permission name="android.permission.MANAGE_USB"/>
<permission name="android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS"/>
<permission name="android.permission.MODIFY_PHONE_STATE"/>
@@ -364,11 +366,18 @@ applications that come with the platform
<permission name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
<!-- Permission required for Tethering CTS tests. -->
<permission name="android.permission.TETHER_PRIVILEGED"/>
+ <!-- Permissions required for ganting and logging -->
+ <permission name="android.permission.LOG_COMPAT_CHANGE" />
+ <permission name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
+ <permission name="android.permission.OVERRIDE_COMPAT_CHANGE_CONFIG" />
<!-- Permissions required to test ambient display. -->
<permission name="android.permission.READ_DREAM_STATE" />
<permission name="android.permission.WRITE_DREAM_STATE" />
<!-- Permission required to test lights control APIs. -->
<permission name="android.permission.CONTROL_DEVICE_LIGHTS" />
+ <!-- Permission required for ShortcutManagerUsageTest CTS test. -->
+ <permission name="android.permission.ACCESS_SHORTCUTS"/>
+ <permission name="android.permission.REBOOT"/>
</privapp-permissions>
<privapp-permissions package="com.android.statementservice">
@@ -396,5 +405,6 @@ applications that come with the platform
</privapp-permissions>
<privapp-permissions package="com.android.settings">
<permission name="android.permission.INSTALL_DYNAMIC_SYSTEM"/>
+ <permission name="android.permission.BIND_CELL_BROADCAST_SERVICE"/>
</privapp-permissions>
</permissions>
diff --git a/data/etc/services.core.protolog.json b/data/etc/services.core.protolog.json
index 79589bf13853..9da185b95279 100644
--- a/data/etc/services.core.protolog.json
+++ b/data/etc/services.core.protolog.json
@@ -331,6 +331,12 @@
"group": "WM_DEBUG_RECENTS_ANIMATIONS",
"at": "com\/android\/server\/wm\/RecentsAnimation.java"
},
+ "-1410260105": {
+ "message": "Schedule IME show for %s",
+ "level": "DEBUG",
+ "group": "WM_DEBUG_IME",
+ "at": "com\/android\/server\/wm\/ImeInsetsSourceProvider.java"
+ },
"-1391944764": {
"message": "SURFACE DESTROY: %s. %s",
"level": "INFO",
@@ -733,12 +739,6 @@
"group": "WM_DEBUG_ORIENTATION",
"at": "com\/android\/server\/wm\/DisplayRotation.java"
},
- "-554834595": {
- "message": "Display id=%d is frozen, return %d",
- "level": "VERBOSE",
- "group": "WM_DEBUG_ORIENTATION",
- "at": "com\/android\/server\/wm\/DisplayContent.java"
- },
"-549028919": {
"message": "enableScreenIfNeededLocked: mDisplayEnabled=%b mForceDisplayEnabled=%b mShowingBootMessages=%b mSystemBooted=%b. %s",
"level": "INFO",
@@ -1063,6 +1063,12 @@
"group": "WM_SHOW_TRANSACTIONS",
"at": "com\/android\/server\/wm\/WindowSurfaceController.java"
},
+ "140319294": {
+ "message": "IME target changed within ActivityRecord",
+ "level": "DEBUG",
+ "group": "WM_DEBUG_IME",
+ "at": "com\/android\/server\/wm\/ImeInsetsSourceProvider.java"
+ },
"146871307": {
"message": "Tried to remove starting window but startingWindow was null: %s",
"level": "VERBOSE",
@@ -1177,12 +1183,6 @@
"group": "WM_DEBUG_APP_TRANSITIONS",
"at": "com\/android\/server\/wm\/AppTransitionController.java"
},
- "292555239": {
- "message": "ScreenRotation sill animating: mDisplayAnimator: %s\nmEnterBlackFrameAnimator: %s\nmRotateScreenAnimator: %s\nmScreenshotRotationAnimator: %s",
- "level": "VERBOSE",
- "group": "WM_DEBUG_ORIENTATION",
- "at": "com\/android\/server\/wm\/ScreenRotationAnimation.java"
- },
"292904800": {
"message": "Deferring rotation, animation in progress.",
"level": "VERBOSE",
@@ -1267,6 +1267,12 @@
"group": "WM_ERROR",
"at": "com\/android\/server\/wm\/WindowManagerService.java"
},
+ "438102669": {
+ "message": "call showInsets(ime) on %s",
+ "level": "DEBUG",
+ "group": "WM_DEBUG_IME",
+ "at": "com\/android\/server\/wm\/ImeInsetsSourceProvider.java"
+ },
"457951957": {
"message": "\tNot visible=%s",
"level": "DEBUG",
@@ -1387,6 +1393,12 @@
"group": "WM_ERROR",
"at": "com\/android\/server\/wm\/WindowManagerService.java"
},
+ "632168013": {
+ "message": "dcTarget: %s mImeTargetFromIme: %s",
+ "level": "DEBUG",
+ "group": "WM_DEBUG_IME",
+ "at": "com\/android\/server\/wm\/ImeInsetsSourceProvider.java"
+ },
"633654009": {
"message": "SURFACE POS (setPositionInTransaction) @ (%f,%f): %s",
"level": "INFO",
@@ -1555,12 +1567,6 @@
"group": "WM_ERROR",
"at": "com\/android\/server\/wm\/WindowManagerService.java"
},
- "1004585481": {
- "message": "%s forcing orientation to %d for display id=%d",
- "level": "VERBOSE",
- "group": "WM_DEBUG_ORIENTATION",
- "at": "com\/android\/server\/wm\/DisplayContent.java"
- },
"1051545910": {
"message": "Exit animation finished in %s: remove=%b",
"level": "VERBOSE",
@@ -1681,6 +1687,12 @@
"group": "WM_ERROR",
"at": "com\/android\/server\/wm\/WindowManagerService.java"
},
+ "1346895820": {
+ "message": "ScreenRotation still animating: type: %d\nmDisplayAnimator: %s\nmEnterBlackFrameAnimator: %s\nmRotateScreenAnimator: %s\nmScreenshotRotationAnimator: %s",
+ "level": "VERBOSE",
+ "group": "WM_DEBUG_ORIENTATION",
+ "at": "com\/android\/server\/wm\/ScreenRotationAnimation.java"
+ },
"1358462645": {
"message": "Looking for focus: %s, flags=%d, canReceive=%b",
"level": "VERBOSE",
@@ -1693,6 +1705,18 @@
"group": "WM_DEBUG_ADD_REMOVE",
"at": "com\/android\/server\/wm\/ActivityRecord.java"
},
+ "1373000889": {
+ "message": "abortShowImePostLayout",
+ "level": "DEBUG",
+ "group": "WM_DEBUG_IME",
+ "at": "com\/android\/server\/wm\/ImeInsetsSourceProvider.java"
+ },
+ "1389009035": {
+ "message": "NonAppWindowContainer cannot set orientation: %s",
+ "level": "WARN",
+ "group": "WM_DEBUG_ORIENTATION",
+ "at": "com\/android\/server\/wm\/DisplayContent.java"
+ },
"1401700824": {
"message": "Window drawn win=%s",
"level": "DEBUG",
@@ -1867,6 +1891,12 @@
"group": "WM_DEBUG_STARTING_WINDOW",
"at": "com\/android\/server\/wm\/ActivityRecord.java"
},
+ "1674747211": {
+ "message": "%s forcing orientation to %d for display id=%d",
+ "level": "VERBOSE",
+ "group": "WM_DEBUG_ORIENTATION",
+ "at": "com\/android\/server\/wm\/DisplayArea.java"
+ },
"1677260366": {
"message": "Finish starting %s: first real window is shown, no animation",
"level": "VERBOSE",
@@ -1987,6 +2017,12 @@
"group": "WM_DEBUG_ADD_REMOVE",
"at": "com\/android\/server\/wm\/WindowState.java"
},
+ "1928325128": {
+ "message": "Run showImeRunner",
+ "level": "DEBUG",
+ "group": "WM_DEBUG_IME",
+ "at": "com\/android\/server\/wm\/ImeInsetsSourceProvider.java"
+ },
"1947239194": {
"message": "Deferring rotation, still finishing previous rotation",
"level": "VERBOSE",
@@ -2139,6 +2175,9 @@
"WM_DEBUG_FOCUS_LIGHT": {
"tag": "WindowManager"
},
+ "WM_DEBUG_IME": {
+ "tag": "WindowManager"
+ },
"WM_DEBUG_KEEP_SCREEN_ON": {
"tag": "WindowManager"
},
diff --git a/graphics/java/android/graphics/HardwareRenderer.java b/graphics/java/android/graphics/HardwareRenderer.java
index 3b864139cf71..d08bfcf45a5c 100644
--- a/graphics/java/android/graphics/HardwareRenderer.java
+++ b/graphics/java/android/graphics/HardwareRenderer.java
@@ -157,7 +157,7 @@ public class HardwareRenderer {
public HardwareRenderer() {
mRootNode = RenderNode.adopt(nCreateRootRenderNode());
mRootNode.setClipToBounds(false);
- mNativeProxy = nCreateProxy(!mOpaque, mRootNode.mNativeRenderNode);
+ mNativeProxy = nCreateProxy(!mOpaque, mIsWideGamut, mRootNode.mNativeRenderNode);
if (mNativeProxy == 0) {
throw new OutOfMemoryError("Unable to create hardware renderer");
}
@@ -1085,7 +1085,8 @@ public class HardwareRenderer {
private static native long nCreateRootRenderNode();
- private static native long nCreateProxy(boolean translucent, long rootRenderNode);
+ private static native long nCreateProxy(boolean translucent, boolean isWideGamut,
+ long rootRenderNode);
private static native void nDeleteProxy(long nativeProxy);
diff --git a/graphics/java/android/graphics/Outline.java b/graphics/java/android/graphics/Outline.java
index 91a60c327bf0..c12159cfd7a4 100644
--- a/graphics/java/android/graphics/Outline.java
+++ b/graphics/java/android/graphics/Outline.java
@@ -43,7 +43,7 @@ public final class Outline {
/** @hide */
public static final int MODE_ROUND_RECT = 1;
/** @hide */
- public static final int MODE_CONVEX_PATH = 2;
+ public static final int MODE_PATH = 2;
/** @hide */
@Retention(RetentionPolicy.SOURCE)
@@ -51,7 +51,7 @@ public final class Outline {
value = {
MODE_EMPTY,
MODE_ROUND_RECT,
- MODE_CONVEX_PATH,
+ MODE_PATH,
})
public @interface Mode {}
@@ -60,7 +60,7 @@ public final class Outline {
public int mMode = MODE_EMPTY;
/**
- * Only guaranteed to be non-null when mode == MODE_CONVEX_PATH
+ * Only guaranteed to be non-null when mode == MODE_PATH
*
* @hide
*/
@@ -124,7 +124,7 @@ public final class Outline {
* @see android.view.View#setClipToOutline(boolean)
*/
public boolean canClip() {
- return mMode != MODE_CONVEX_PATH;
+ return mMode != MODE_PATH;
}
/**
@@ -157,7 +157,7 @@ public final class Outline {
*/
public void set(@NonNull Outline src) {
mMode = src.mMode;
- if (src.mMode == MODE_CONVEX_PATH) {
+ if (src.mMode == MODE_PATH) {
if (mPath == null) {
mPath = new Path();
}
@@ -194,7 +194,7 @@ public final class Outline {
return;
}
- if (mMode == MODE_CONVEX_PATH) {
+ if (mMode == MODE_PATH) {
// rewind here to avoid thrashing the allocations, but could alternately clear ref
mPath.rewind();
}
@@ -213,7 +213,7 @@ public final class Outline {
/**
* Populates {@code outBounds} with the outline bounds, if set, and returns
* {@code true}. If no outline bounds are set, or if a path has been set
- * via {@link #setConvexPath(Path)}, returns {@code false}.
+ * via {@link #setPath(Path)}, returns {@code false}.
*
* @param outRect the rect to populate with the outline bounds, if set
* @return {@code true} if {@code outBounds} was populated with outline
@@ -229,7 +229,7 @@ public final class Outline {
/**
* Returns the rounded rect radius, if set, or a value less than 0 if a path has
- * been set via {@link #setConvexPath(Path)}. A return value of {@code 0}
+ * been set via {@link #setPath(Path)}. A return value of {@code 0}
* indicates a non-rounded rect.
*
* @return the rounded rect radius, or value < 0
@@ -259,7 +259,7 @@ public final class Outline {
mPath.rewind();
}
- mMode = MODE_CONVEX_PATH;
+ mMode = MODE_PATH;
mPath.addOval(left, top, right, bottom, Path.Direction.CW);
mRect.setEmpty();
mRadius = RADIUS_UNDEFINED;
@@ -279,9 +279,21 @@ public final class Outline {
* @param convexPath used to construct the Outline. As of
* {@link android.os.Build.VERSION_CODES#Q}, it is no longer required to be
* convex.
+ *
+ * @deprecated The path is no longer required to be convex. Use {@link #setPath} instead.
*/
+ @Deprecated
public void setConvexPath(@NonNull Path convexPath) {
- if (convexPath.isEmpty()) {
+ setPath(convexPath);
+ }
+
+ /**
+ * Sets the Outline to a {@link android.graphics.Path path}.
+ *
+ * @param path used to construct the Outline.
+ */
+ public void setPath(@NonNull Path path) {
+ if (path.isEmpty()) {
setEmpty();
return;
}
@@ -290,8 +302,8 @@ public final class Outline {
mPath = new Path();
}
- mMode = MODE_CONVEX_PATH;
- mPath.set(convexPath);
+ mMode = MODE_PATH;
+ mPath.set(path);
mRect.setEmpty();
mRadius = RADIUS_UNDEFINED;
}
@@ -302,7 +314,7 @@ public final class Outline {
public void offset(int dx, int dy) {
if (mMode == MODE_ROUND_RECT) {
mRect.offset(dx, dy);
- } else if (mMode == MODE_CONVEX_PATH) {
+ } else if (mMode == MODE_PATH) {
mPath.offset(dx, dy);
}
}
diff --git a/graphics/java/android/graphics/RenderNode.java b/graphics/java/android/graphics/RenderNode.java
index 17e3b4465130..3835b2d493c5 100644
--- a/graphics/java/android/graphics/RenderNode.java
+++ b/graphics/java/android/graphics/RenderNode.java
@@ -687,8 +687,8 @@ public final class RenderNode {
outline.mRect.left, outline.mRect.top,
outline.mRect.right, outline.mRect.bottom,
outline.mRadius, outline.mAlpha);
- case Outline.MODE_CONVEX_PATH:
- return nSetOutlineConvexPath(mNativeRenderNode, outline.mPath.mNativePath,
+ case Outline.MODE_PATH:
+ return nSetOutlinePath(mNativeRenderNode, outline.mPath.mNativePath,
outline.mAlpha);
}
@@ -1620,7 +1620,7 @@ public final class RenderNode {
int right, int bottom, float radius, float alpha);
@CriticalNative
- private static native boolean nSetOutlineConvexPath(long renderNode, long nativePath,
+ private static native boolean nSetOutlinePath(long renderNode, long nativePath,
float alpha);
@CriticalNative
diff --git a/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java b/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java
index 928e607abbbe..746378e10bc7 100644
--- a/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java
+++ b/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java
@@ -387,7 +387,7 @@ public class AdaptiveIconDrawable extends Drawable implements Drawable.Callback
@Override
public void getOutline(@NonNull Outline outline) {
- outline.setConvexPath(mMask);
+ outline.setPath(mMask);
}
/** @hide */
diff --git a/graphics/java/android/graphics/drawable/GradientDrawable.java b/graphics/java/android/graphics/drawable/GradientDrawable.java
index 3881955d2632..f053f392b97e 100644
--- a/graphics/java/android/graphics/drawable/GradientDrawable.java
+++ b/graphics/java/android/graphics/drawable/GradientDrawable.java
@@ -1915,7 +1915,7 @@ public class GradientDrawable extends Drawable {
case RECTANGLE:
if (st.mRadiusArray != null) {
buildPathIfDirty();
- outline.setConvexPath(mPath);
+ outline.setPath(mPath);
return;
}
diff --git a/graphics/java/android/graphics/drawable/shapes/RoundRectShape.java b/graphics/java/android/graphics/drawable/shapes/RoundRectShape.java
index 475e0bb70f2b..28ba60577fb1 100644
--- a/graphics/java/android/graphics/drawable/shapes/RoundRectShape.java
+++ b/graphics/java/android/graphics/drawable/shapes/RoundRectShape.java
@@ -94,7 +94,7 @@ public class RoundRectShape extends RectShape {
for (int i = 1; i < 8; i++) {
if (mOuterRadii[i] != radius) {
// can't call simple constructors, use path
- outline.setConvexPath(mPath);
+ outline.setPath(mPath);
return;
}
}
diff --git a/identity/java/android/security/identity/CredstoreIdentityCredentialStore.java b/identity/java/android/security/identity/CredstoreIdentityCredentialStore.java
index dcc6b95aec02..129063361b35 100644
--- a/identity/java/android/security/identity/CredstoreIdentityCredentialStore.java
+++ b/identity/java/android/security/identity/CredstoreIdentityCredentialStore.java
@@ -38,6 +38,10 @@ class CredstoreIdentityCredentialStore extends IdentityCredentialStore {
ICredentialStoreFactory storeFactory =
ICredentialStoreFactory.Stub.asInterface(
ServiceManager.getService("android.security.identity"));
+ if (storeFactory == null) {
+ // This can happen if credstore is not running or not installed.
+ return null;
+ }
ICredentialStore credStore = null;
try {
diff --git a/libs/hwui/HardwareBitmapUploader.cpp b/libs/hwui/HardwareBitmapUploader.cpp
index 3681c69e912b..a3d552faeb0a 100644
--- a/libs/hwui/HardwareBitmapUploader.cpp
+++ b/libs/hwui/HardwareBitmapUploader.cpp
@@ -187,7 +187,9 @@ private:
EGLSyncKHR fence = mUploadThread->queue().runSync([&]() -> EGLSyncKHR {
AutoSkiaGlTexture glTexture;
glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, autoImage.image);
- GL_CHECKPOINT(MODERATE);
+ if (GLUtils::dumpGLErrors()) {
+ return EGL_NO_SYNC_KHR;
+ }
// glTexSubImage2D is synchronous in sense that it memcpy() from pointer that we
// provide.
@@ -195,19 +197,26 @@ private:
// when we first use it in drawing
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, bitmap.width(), bitmap.height(),
format.format, format.type, bitmap.getPixels());
- GL_CHECKPOINT(MODERATE);
+ if (GLUtils::dumpGLErrors()) {
+ return EGL_NO_SYNC_KHR;
+ }
EGLSyncKHR uploadFence =
eglCreateSyncKHR(eglGetCurrentDisplay(), EGL_SYNC_FENCE_KHR, NULL);
- LOG_ALWAYS_FATAL_IF(uploadFence == EGL_NO_SYNC_KHR,
- "Could not create sync fence %#x", eglGetError());
+ if (uploadFence == EGL_NO_SYNC_KHR) {
+ ALOGW("Could not create sync fence %#x", eglGetError());
+ };
glFlush();
+ GLUtils::dumpGLErrors();
return uploadFence;
});
+ if (fence == EGL_NO_SYNC_KHR) {
+ return false;
+ }
EGLint waitStatus = eglClientWaitSyncKHR(display, fence, 0, FENCE_TIMEOUT);
- LOG_ALWAYS_FATAL_IF(waitStatus != EGL_CONDITION_SATISFIED_KHR,
- "Failed to wait for the fence %#x", eglGetError());
+ ALOGE_IF(waitStatus != EGL_CONDITION_SATISFIED_KHR,
+ "Failed to wait for the fence %#x", eglGetError());
eglDestroySyncKHR(display, fence);
}
diff --git a/libs/hwui/Outline.h b/libs/hwui/Outline.h
index f1c38031980e..2eb2c7c7e299 100644
--- a/libs/hwui/Outline.h
+++ b/libs/hwui/Outline.h
@@ -26,7 +26,7 @@ namespace uirenderer {
class Outline {
public:
- enum class Type { None = 0, Empty = 1, ConvexPath = 2, RoundRect = 3 };
+ enum class Type { None = 0, Empty = 1, Path = 2, RoundRect = 3 };
Outline() : mShouldClip(false), mType(Type::None), mRadius(0), mAlpha(0.0f) {}
@@ -57,12 +57,12 @@ public:
}
}
- void setConvexPath(const SkPath* outline, float alpha) {
+ void setPath(const SkPath* outline, float alpha) {
if (!outline) {
setEmpty();
return;
}
- mType = Type::ConvexPath;
+ mType = Type::Path;
mPath = *outline;
mBounds.set(outline->getBounds());
mAlpha = alpha;
diff --git a/libs/hwui/pipeline/skia/ATraceMemoryDump.cpp b/libs/hwui/pipeline/skia/ATraceMemoryDump.cpp
index 551bdc63121d..234f42d79cb7 100644
--- a/libs/hwui/pipeline/skia/ATraceMemoryDump.cpp
+++ b/libs/hwui/pipeline/skia/ATraceMemoryDump.cpp
@@ -39,14 +39,13 @@ namespace skiapipeline {
* ATraceMemoryDump calculates memory category first by looking at the "type" string passed to
* dumpStringValue and then by looking at "backingType" passed to setMemoryBacking.
* Only GPU Texture memory is tracked separately and everything else is grouped as one
- * "GPU Memory" category.
+ * "Misc Memory" category.
*/
static std::unordered_map<const char*, const char*> sResourceMap = {
{"malloc", "HWUI CPU Memory"}, // taken from setMemoryBacking(backingType)
{"gl_texture", "HWUI Texture Memory"}, // taken from setMemoryBacking(backingType)
- {"Texture",
- "HWUI Texture Memory"}, // taken from dumpStringValue(value, valueName="type")
- // Uncomment categories below to split "GPU Memory" into more brackets for debugging.
+ {"Texture", "HWUI Texture Memory"}, // taken from dumpStringValue(value, valueName="type")
+ // Uncomment categories below to split "Misc Memory" into more brackets for debugging.
/*{"vk_buffer", "vk_buffer"},
{"gl_renderbuffer", "gl_renderbuffer"},
{"gl_buffer", "gl_buffer"},
@@ -169,8 +168,8 @@ void ATraceMemoryDump::resetCurrentCounter(const char* dumpName) {
mLastDumpValue = 0;
mLastPurgeableDumpValue = INVALID_MEMORY_SIZE;
mLastDumpName = dumpName;
- // Categories not listed in sResourceMap are reported as "GPU memory"
- mCategory = "HWUI GPU Memory";
+ // Categories not listed in sResourceMap are reported as "Misc Memory"
+ mCategory = "HWUI Misc Memory";
}
} /* namespace skiapipeline */
diff --git a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp
index e7efe2ff798b..8d5acc631274 100644
--- a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp
+++ b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp
@@ -171,17 +171,15 @@ static void setBufferCount(ANativeWindow* window, uint32_t extraBuffers) {
}
bool SkiaOpenGLPipeline::setSurface(ANativeWindow* surface, SwapBehavior swapBehavior,
- ColorMode colorMode, uint32_t extraBuffers) {
+ uint32_t extraBuffers) {
if (mEglSurface != EGL_NO_SURFACE) {
mEglManager.destroySurface(mEglSurface);
mEglSurface = EGL_NO_SURFACE;
}
- setSurfaceColorProperties(colorMode);
-
if (surface) {
mRenderThread.requireGlContext();
- auto newSurface = mEglManager.createSurface(surface, colorMode, mSurfaceColorSpace);
+ auto newSurface = mEglManager.createSurface(surface, mColorMode, mSurfaceColorSpace);
if (!newSurface) {
return false;
}
diff --git a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.h b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.h
index 3fe0f92b1924..e482cad6c953 100644
--- a/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.h
+++ b/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.h
@@ -44,7 +44,7 @@ public:
FrameInfo* currentFrameInfo, bool* requireSwap) override;
DeferredLayerUpdater* createTextureLayer() override;
bool setSurface(ANativeWindow* surface, renderthread::SwapBehavior swapBehavior,
- renderthread::ColorMode colorMode, uint32_t extraBuffers) override;
+ uint32_t extraBuffers) override;
void onStop() override;
bool isSurfaceReady() override;
bool isContextReady() override;
diff --git a/libs/hwui/pipeline/skia/SkiaPipeline.cpp b/libs/hwui/pipeline/skia/SkiaPipeline.cpp
index b940cff04713..29b4dd7f32e7 100644
--- a/libs/hwui/pipeline/skia/SkiaPipeline.cpp
+++ b/libs/hwui/pipeline/skia/SkiaPipeline.cpp
@@ -24,6 +24,7 @@
#include <SkOverdrawColorFilter.h>
#include <SkPicture.h>
#include <SkPictureRecorder.h>
+#include <SkTypeface.h>
#include <SkSerialProcs.h>
#include "LightingInfo.h"
#include "VectorDrawable.h"
@@ -43,6 +44,7 @@ namespace uirenderer {
namespace skiapipeline {
SkiaPipeline::SkiaPipeline(RenderThread& thread) : mRenderThread(thread) {
+ setSurfaceColorProperties(mColorMode);
}
SkiaPipeline::~SkiaPipeline() {
@@ -264,6 +266,9 @@ bool SkiaPipeline::setupMultiFrameCapture() {
SkSerialProcs procs;
procs.fImageProc = SkSharingSerialContext::serializeImage;
procs.fImageCtx = mSerialContext.get();
+ procs.fTypefaceProc = [](SkTypeface* tf, void* ctx){
+ return tf->serialize(SkTypeface::SerializeBehavior::kDoIncludeData);
+ };
// SkDocuments don't take owership of the streams they write.
// we need to keep it until after mMultiPic.close()
// procs is passed as a pointer, but just as a method of having an optional default.
@@ -405,6 +410,10 @@ void SkiaPipeline::endCapture(SkSurface* surface) {
std::invoke(mPictureCapturedCallback, std::move(picture));
} else {
// single frame skp to file
+ SkSerialProcs procs;
+ procs.fTypefaceProc = [](SkTypeface* tf, void* ctx){
+ return tf->serialize(SkTypeface::SerializeBehavior::kDoIncludeData);
+ };
auto data = picture->serialize();
savePictureAsync(data, mCapturedFile);
mCaptureSequence = 0;
@@ -576,6 +585,7 @@ void SkiaPipeline::dumpResourceCacheUsage() const {
}
void SkiaPipeline::setSurfaceColorProperties(ColorMode colorMode) {
+ mColorMode = colorMode;
if (colorMode == ColorMode::SRGB) {
mSurfaceColorType = SkColorType::kN32_SkColorType;
mSurfaceColorSpace = SkColorSpace::MakeSRGB();
diff --git a/libs/hwui/pipeline/skia/SkiaPipeline.h b/libs/hwui/pipeline/skia/SkiaPipeline.h
index af8414de4bc1..8341164edc19 100644
--- a/libs/hwui/pipeline/skia/SkiaPipeline.h
+++ b/libs/hwui/pipeline/skia/SkiaPipeline.h
@@ -50,6 +50,7 @@ public:
bool createOrUpdateLayer(RenderNode* node, const DamageAccumulator& damageAccumulator,
ErrorHandler* errorHandler) override;
+ void setSurfaceColorProperties(renderthread::ColorMode colorMode) override;
SkColorType getSurfaceColorType() const override { return mSurfaceColorType; }
sk_sp<SkColorSpace> getSurfaceColorSpace() override { return mSurfaceColorSpace; }
@@ -72,9 +73,10 @@ public:
protected:
void dumpResourceCacheUsage() const;
- void setSurfaceColorProperties(renderthread::ColorMode colorMode);
renderthread::RenderThread& mRenderThread;
+
+ renderthread::ColorMode mColorMode = renderthread::ColorMode::SRGB;
SkColorType mSurfaceColorType;
sk_sp<SkColorSpace> mSurfaceColorSpace;
diff --git a/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp b/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp
index ad7c70614239..535a19956e03 100644
--- a/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp
+++ b/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp
@@ -117,17 +117,16 @@ DeferredLayerUpdater* SkiaVulkanPipeline::createTextureLayer() {
void SkiaVulkanPipeline::onStop() {}
bool SkiaVulkanPipeline::setSurface(ANativeWindow* surface, SwapBehavior swapBehavior,
- ColorMode colorMode, uint32_t extraBuffers) {
+ uint32_t extraBuffers) {
if (mVkSurface) {
mVkManager.destroySurface(mVkSurface);
mVkSurface = nullptr;
}
- setSurfaceColorProperties(colorMode);
if (surface) {
mRenderThread.requireVkContext();
mVkSurface =
- mVkManager.createSurface(surface, colorMode, mSurfaceColorSpace, mSurfaceColorType,
+ mVkManager.createSurface(surface, mColorMode, mSurfaceColorSpace, mSurfaceColorType,
mRenderThread.getGrContext(), extraBuffers);
}
diff --git a/libs/hwui/pipeline/skia/SkiaVulkanPipeline.h b/libs/hwui/pipeline/skia/SkiaVulkanPipeline.h
index 31734783de7f..c8bf233d8e1c 100644
--- a/libs/hwui/pipeline/skia/SkiaVulkanPipeline.h
+++ b/libs/hwui/pipeline/skia/SkiaVulkanPipeline.h
@@ -43,7 +43,7 @@ public:
FrameInfo* currentFrameInfo, bool* requireSwap) override;
DeferredLayerUpdater* createTextureLayer() override;
bool setSurface(ANativeWindow* surface, renderthread::SwapBehavior swapBehavior,
- renderthread::ColorMode colorMode, uint32_t extraBuffers) override;
+ uint32_t extraBuffers) override;
void onStop() override;
bool isSurfaceReady() override;
bool isContextReady() override;
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 5993e176f0b8..91f9447a3d59 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -143,10 +143,11 @@ void CanvasContext::setSurface(sp<Surface>&& surface, bool enableTimeout) {
ATRACE_CALL();
if (surface) {
- mNativeSurface = new ReliableSurface{std::move(surface)};
+ mNativeSurface = std::make_unique<ReliableSurface>(std::move(surface));
+ mNativeSurface->init();
if (enableTimeout) {
// TODO: Fix error handling & re-shorten timeout
- ANativeWindow_setDequeueTimeout(mNativeSurface.get(), 4000_ms);
+ ANativeWindow_setDequeueTimeout(mNativeSurface->getNativeWindow(), 4000_ms);
}
} else {
mNativeSurface = nullptr;
@@ -160,9 +161,9 @@ void CanvasContext::setSurface(sp<Surface>&& surface, bool enableTimeout) {
mRenderAheadCapacity = mRenderAheadDepth;
}
- ColorMode colorMode = mWideColorGamut ? ColorMode::WideColorGamut : ColorMode::SRGB;
- bool hasSurface = mRenderPipeline->setSurface(mNativeSurface.get(), mSwapBehavior, colorMode,
- mRenderAheadCapacity);
+ bool hasSurface = mRenderPipeline->setSurface(
+ mNativeSurface ? mNativeSurface->getNativeWindow() : nullptr, mSwapBehavior,
+ mRenderAheadCapacity);
mFrameNumber = -1;
@@ -172,7 +173,7 @@ void CanvasContext::setSurface(sp<Surface>&& surface, bool enableTimeout) {
// Enable frame stats after the surface has been bound to the appropriate graphics API.
// Order is important when new and old surfaces are the same, because old surface has
// its frame stats disabled automatically.
- mNativeSurface->enableFrameTimestamps(true);
+ native_window_enable_frame_timestamps(mNativeSurface->getNativeWindow(), true);
} else {
mRenderThread.removeFrameCallback(this);
mGenerationID++;
@@ -203,7 +204,8 @@ void CanvasContext::setStopped(bool stopped) {
void CanvasContext::allocateBuffers() {
if (mNativeSurface) {
- mNativeSurface->allocateBuffers();
+ ANativeWindow* anw = mNativeSurface->getNativeWindow();
+ ANativeWindow_allocateBuffers(anw);
}
}
@@ -222,7 +224,8 @@ void CanvasContext::setOpaque(bool opaque) {
}
void CanvasContext::setWideGamut(bool wideGamut) {
- mWideColorGamut = wideGamut;
+ ColorMode colorMode = wideGamut ? ColorMode::WideColorGamut : ColorMode::SRGB;
+ mRenderPipeline->setSurfaceColorProperties(colorMode);
}
bool CanvasContext::makeCurrent() {
@@ -426,9 +429,10 @@ void CanvasContext::setPresentTime() {
if (renderAhead) {
presentTime = mCurrentFrameInfo->get(FrameInfoIndex::Vsync) +
- (frameIntervalNanos * (renderAhead + 1));
+ (frameIntervalNanos * (renderAhead + 1)) - DeviceInfo::get()->getAppOffset() +
+ (frameIntervalNanos / 2);
}
- native_window_set_buffers_timestamp(mNativeSurface.get(), presentTime);
+ native_window_set_buffers_timestamp(mNativeSurface->getNativeWindow(), presentTime);
}
void CanvasContext::draw() {
@@ -489,16 +493,18 @@ void CanvasContext::draw() {
swap.swapCompletedTime = systemTime(SYSTEM_TIME_MONOTONIC);
swap.vsyncTime = mRenderThread.timeLord().latestVsync();
if (didDraw) {
- nsecs_t dequeueStart = ANativeWindow_getLastDequeueStartTime(mNativeSurface.get());
+ nsecs_t dequeueStart =
+ ANativeWindow_getLastDequeueStartTime(mNativeSurface->getNativeWindow());
if (dequeueStart < mCurrentFrameInfo->get(FrameInfoIndex::SyncStart)) {
// Ignoring dequeue duration as it happened prior to frame render start
// and thus is not part of the frame.
swap.dequeueDuration = 0;
} else {
swap.dequeueDuration =
- ANativeWindow_getLastDequeueDuration(mNativeSurface.get());
+ ANativeWindow_getLastDequeueDuration(mNativeSurface->getNativeWindow());
}
- swap.queueDuration = ANativeWindow_getLastQueueDuration(mNativeSurface.get());
+ swap.queueDuration =
+ ANativeWindow_getLastQueueDuration(mNativeSurface->getNativeWindow());
} else {
swap.dequeueDuration = 0;
swap.queueDuration = 0;
@@ -550,8 +556,9 @@ void CanvasContext::draw() {
FrameInfo* forthBehind = mLast4FrameInfos.front().first;
int64_t composedFrameId = mLast4FrameInfos.front().second;
nsecs_t acquireTime = -1;
- mNativeSurface->getFrameTimestamps(composedFrameId, nullptr, &acquireTime, nullptr, nullptr,
- nullptr, nullptr, nullptr, nullptr, nullptr);
+ native_window_get_frame_timestamps(mNativeSurface->getNativeWindow(), composedFrameId,
+ nullptr, &acquireTime, nullptr, nullptr, nullptr,
+ nullptr, nullptr, nullptr, nullptr);
// Ignore default -1, NATIVE_WINDOW_TIMESTAMP_INVALID and NATIVE_WINDOW_TIMESTAMP_PENDING
forthBehind->set(FrameInfoIndex::GpuCompleted) = acquireTime > 0 ? acquireTime : -1;
mJankTracker.finishGpuDraw(*forthBehind);
@@ -567,14 +574,16 @@ void CanvasContext::doFrame() {
}
SkISize CanvasContext::getNextFrameSize() const {
- ReliableSurface* surface = mNativeSurface.get();
- if (surface) {
- SkISize size;
- size.fWidth = ANativeWindow_getWidth(surface);
- size.fHeight = ANativeWindow_getHeight(surface);
- return size;
+ static constexpr SkISize defaultFrameSize = {INT32_MAX, INT32_MAX};
+ if (mNativeSurface == nullptr) {
+ return defaultFrameSize;
}
- return {INT32_MAX, INT32_MAX};
+ ANativeWindow* anw = mNativeSurface->getNativeWindow();
+
+ SkISize size;
+ size.fWidth = ANativeWindow_getWidth(anw);
+ size.fHeight = ANativeWindow_getHeight(anw);
+ return size;
}
void CanvasContext::prepareAndDraw(RenderNode* node) {
@@ -693,7 +702,7 @@ void CanvasContext::enqueueFrameWork(std::function<void()>&& func) {
int64_t CanvasContext::getFrameNumber() {
// mFrameNumber is reset to -1 when the surface changes or we swap buffers
if (mFrameNumber == -1 && mNativeSurface.get()) {
- mFrameNumber = static_cast<int64_t>(mNativeSurface->getNextFrameNumber());
+ mFrameNumber = ANativeWindow_getNextFrameId(mNativeSurface->getNativeWindow());
}
return mFrameNumber;
}
@@ -702,11 +711,9 @@ bool CanvasContext::surfaceRequiresRedraw() {
if (!mNativeSurface) return false;
if (mHaveNewSurface) return true;
- int width = -1;
- int height = -1;
- ReliableSurface* surface = mNativeSurface.get();
- surface->query(NATIVE_WINDOW_WIDTH, &width);
- surface->query(NATIVE_WINDOW_HEIGHT, &height);
+ ANativeWindow* anw = mNativeSurface->getNativeWindow();
+ const int width = ANativeWindow_getWidth(anw);
+ const int height = ANativeWindow_getHeight(anw);
return width != mLastFrameWidth || height != mLastFrameHeight;
}
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index 4490f80eb8af..629c741e8757 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -220,7 +220,7 @@ private:
int32_t mLastFrameHeight = 0;
RenderThread& mRenderThread;
- sp<ReliableSurface> mNativeSurface;
+ std::unique_ptr<ReliableSurface> mNativeSurface;
// stopped indicates the CanvasContext will reject actual redraw operations,
// and defer repaint until it is un-stopped
bool mStopped = false;
@@ -251,7 +251,6 @@ private:
nsecs_t mLastDropVsync = 0;
bool mOpaque;
- bool mWideColorGamut = false;
bool mUseForceDark = false;
LightInfo mLightInfo;
LightGeometry mLightGeometry = {{0, 0, 0}, 0};
diff --git a/libs/hwui/renderthread/IRenderPipeline.h b/libs/hwui/renderthread/IRenderPipeline.h
index ef0aa98d4220..ba0d64c5492d 100644
--- a/libs/hwui/renderthread/IRenderPipeline.h
+++ b/libs/hwui/renderthread/IRenderPipeline.h
@@ -66,7 +66,7 @@ public:
virtual bool swapBuffers(const Frame& frame, bool drew, const SkRect& screenDirty,
FrameInfo* currentFrameInfo, bool* requireSwap) = 0;
virtual DeferredLayerUpdater* createTextureLayer() = 0;
- virtual bool setSurface(ANativeWindow* window, SwapBehavior swapBehavior, ColorMode colorMode,
+ virtual bool setSurface(ANativeWindow* window, SwapBehavior swapBehavior,
uint32_t extraBuffers) = 0;
virtual void onStop() = 0;
virtual bool isSurfaceReady() = 0;
@@ -80,6 +80,8 @@ public:
virtual bool pinImages(std::vector<SkImage*>& mutableImages) = 0;
virtual bool pinImages(LsaVector<sk_sp<Bitmap>>& images) = 0;
virtual void unpinImages() = 0;
+
+ virtual void setSurfaceColorProperties(ColorMode colorMode) = 0;
virtual SkColorType getSurfaceColorType() const = 0;
virtual sk_sp<SkColorSpace> getSurfaceColorSpace() = 0;
virtual GrSurfaceOrigin getSurfaceOrigin() = 0;
diff --git a/libs/hwui/renderthread/ReliableSurface.cpp b/libs/hwui/renderthread/ReliableSurface.cpp
index 864780fb6ae8..e92500f5be51 100644
--- a/libs/hwui/renderthread/ReliableSurface.cpp
+++ b/libs/hwui/renderthread/ReliableSurface.cpp
@@ -26,64 +26,38 @@ namespace android::uirenderer::renderthread {
// to propagate this error back to the caller
constexpr bool DISABLE_BUFFER_PREFETCH = true;
-// TODO: Make surface less protected
-// This exists because perform is a varargs, and ANativeWindow has no va_list perform.
-// So wrapping/chaining that is hard. Telling the compiler to ignore protected is easy, so we do
-// that instead
-struct SurfaceExposer : Surface {
- // Make warnings happy
- SurfaceExposer() = delete;
-
- using Surface::cancelBuffer;
- using Surface::dequeueBuffer;
- using Surface::lockBuffer_DEPRECATED;
- using Surface::perform;
- using Surface::queueBuffer;
- using Surface::setBufferCount;
- using Surface::setSwapInterval;
-};
-
-#define callProtected(surface, func, ...) ((*surface).*&SurfaceExposer::func)(__VA_ARGS__)
-
ReliableSurface::ReliableSurface(sp<Surface>&& surface) : mSurface(std::move(surface)) {
LOG_ALWAYS_FATAL_IF(!mSurface, "Error, unable to wrap a nullptr");
-
- ANativeWindow::setSwapInterval = hook_setSwapInterval;
- ANativeWindow::dequeueBuffer = hook_dequeueBuffer;
- ANativeWindow::cancelBuffer = hook_cancelBuffer;
- ANativeWindow::queueBuffer = hook_queueBuffer;
- ANativeWindow::query = hook_query;
- ANativeWindow::perform = hook_perform;
-
- ANativeWindow::dequeueBuffer_DEPRECATED = hook_dequeueBuffer_DEPRECATED;
- ANativeWindow::cancelBuffer_DEPRECATED = hook_cancelBuffer_DEPRECATED;
- ANativeWindow::lockBuffer_DEPRECATED = hook_lockBuffer_DEPRECATED;
- ANativeWindow::queueBuffer_DEPRECATED = hook_queueBuffer_DEPRECATED;
}
ReliableSurface::~ReliableSurface() {
clearReservedBuffer();
+ // Clear out the interceptors for proper hygiene.
+ // As a concrete example, if the underlying ANativeWindow is associated with
+ // an EGLSurface that is still in use, then if we don't clear out the
+ // interceptors then we walk into undefined behavior.
+ ANativeWindow_setCancelBufferInterceptor(mSurface.get(), nullptr, nullptr);
+ ANativeWindow_setDequeueBufferInterceptor(mSurface.get(), nullptr, nullptr);
+ ANativeWindow_setQueueBufferInterceptor(mSurface.get(), nullptr, nullptr);
+ ANativeWindow_setPerformInterceptor(mSurface.get(), nullptr, nullptr);
}
-void ReliableSurface::perform(int operation, va_list args) {
- std::lock_guard _lock{mMutex};
+void ReliableSurface::init() {
+ int result = ANativeWindow_setCancelBufferInterceptor(mSurface.get(), hook_cancelBuffer, this);
+ LOG_ALWAYS_FATAL_IF(result != NO_ERROR, "Failed to set cancelBuffer interceptor: error = %d",
+ result);
- switch (operation) {
- case NATIVE_WINDOW_SET_USAGE:
- mUsage = va_arg(args, uint32_t);
- break;
- case NATIVE_WINDOW_SET_USAGE64:
- mUsage = va_arg(args, uint64_t);
- break;
- case NATIVE_WINDOW_SET_BUFFERS_GEOMETRY:
- /* width */ va_arg(args, uint32_t);
- /* height */ va_arg(args, uint32_t);
- mFormat = va_arg(args, PixelFormat);
- break;
- case NATIVE_WINDOW_SET_BUFFERS_FORMAT:
- mFormat = va_arg(args, PixelFormat);
- break;
- }
+ result = ANativeWindow_setDequeueBufferInterceptor(mSurface.get(), hook_dequeueBuffer, this);
+ LOG_ALWAYS_FATAL_IF(result != NO_ERROR, "Failed to set dequeueBuffer interceptor: error = %d",
+ result);
+
+ result = ANativeWindow_setQueueBufferInterceptor(mSurface.get(), hook_queueBuffer, this);
+ LOG_ALWAYS_FATAL_IF(result != NO_ERROR, "Failed to set queueBuffer interceptor: error = %d",
+ result);
+
+ result = ANativeWindow_setPerformInterceptor(mSurface.get(), hook_perform, this);
+ LOG_ALWAYS_FATAL_IF(result != NO_ERROR, "Failed to set perform interceptor: error = %d",
+ result);
}
int ReliableSurface::reserveNext() {
@@ -111,7 +85,9 @@ int ReliableSurface::reserveNext() {
int fenceFd = -1;
ANativeWindowBuffer* buffer = nullptr;
- int result = callProtected(mSurface, dequeueBuffer, &buffer, &fenceFd);
+
+ // Note that this calls back into our own hooked method.
+ int result = ANativeWindow_dequeueBuffer(mSurface.get(), &buffer, &fenceFd);
{
std::lock_guard _lock{mMutex};
@@ -138,59 +114,11 @@ void ReliableSurface::clearReservedBuffer() {
mHasDequeuedBuffer = false;
}
if (buffer) {
- callProtected(mSurface, cancelBuffer, buffer, releaseFd);
- }
-}
-
-int ReliableSurface::cancelBuffer(ANativeWindowBuffer* buffer, int fenceFd) {
- clearReservedBuffer();
- if (isFallbackBuffer(buffer)) {
- if (fenceFd > 0) {
- close(fenceFd);
- }
- return OK;
- }
- int result = callProtected(mSurface, cancelBuffer, buffer, fenceFd);
- return result;
-}
-
-int ReliableSurface::dequeueBuffer(ANativeWindowBuffer** buffer, int* fenceFd) {
- {
- std::lock_guard _lock{mMutex};
- if (mReservedBuffer) {
- *buffer = mReservedBuffer;
- *fenceFd = mReservedFenceFd.release();
- mReservedBuffer = nullptr;
- return OK;
- }
- }
-
-
- int result = callProtected(mSurface, dequeueBuffer, buffer, fenceFd);
- if (result != OK) {
- ALOGW("dequeueBuffer failed, error = %d; switching to fallback", result);
- *buffer = acquireFallbackBuffer(result);
- *fenceFd = -1;
- return *buffer ? OK : INVALID_OPERATION;
- } else {
- std::lock_guard _lock{mMutex};
- mHasDequeuedBuffer = true;
- }
- return OK;
-}
-
-int ReliableSurface::queueBuffer(ANativeWindowBuffer* buffer, int fenceFd) {
- clearReservedBuffer();
-
- if (isFallbackBuffer(buffer)) {
- if (fenceFd > 0) {
- close(fenceFd);
- }
- return OK;
+ // Note that clearReservedBuffer may be reentrant here, so
+ // mReservedBuffer must be cleared once we reach here to avoid recursing
+ // forever.
+ ANativeWindow_cancelBuffer(mSurface.get(), buffer, releaseFd);
}
-
- int result = callProtected(mSurface, queueBuffer, buffer, fenceFd);
- return result;
}
bool ReliableSurface::isFallbackBuffer(const ANativeWindowBuffer* windowBuffer) const {
@@ -229,82 +157,95 @@ ANativeWindowBuffer* ReliableSurface::acquireFallbackBuffer(int error) {
return AHardwareBuffer_to_ANativeWindowBuffer(newBuffer);
}
-Surface* ReliableSurface::getWrapped(const ANativeWindow* window) {
- return getSelf(window)->mSurface.get();
-}
-
-int ReliableSurface::hook_setSwapInterval(ANativeWindow* window, int interval) {
- return callProtected(getWrapped(window), setSwapInterval, interval);
-}
-
-int ReliableSurface::hook_dequeueBuffer(ANativeWindow* window, ANativeWindowBuffer** buffer,
- int* fenceFd) {
- return getSelf(window)->dequeueBuffer(buffer, fenceFd);
-}
-
-int ReliableSurface::hook_cancelBuffer(ANativeWindow* window, ANativeWindowBuffer* buffer,
- int fenceFd) {
- return getSelf(window)->cancelBuffer(buffer, fenceFd);
-}
-
-int ReliableSurface::hook_queueBuffer(ANativeWindow* window, ANativeWindowBuffer* buffer,
- int fenceFd) {
- return getSelf(window)->queueBuffer(buffer, fenceFd);
-}
+int ReliableSurface::hook_dequeueBuffer(ANativeWindow* window,
+ ANativeWindow_dequeueBufferFn dequeueBuffer, void* data,
+ ANativeWindowBuffer** buffer, int* fenceFd) {
+ ReliableSurface* rs = reinterpret_cast<ReliableSurface*>(data);
+ {
+ std::lock_guard _lock{rs->mMutex};
+ if (rs->mReservedBuffer) {
+ *buffer = rs->mReservedBuffer;
+ *fenceFd = rs->mReservedFenceFd.release();
+ rs->mReservedBuffer = nullptr;
+ return OK;
+ }
+ }
-int ReliableSurface::hook_dequeueBuffer_DEPRECATED(ANativeWindow* window,
- ANativeWindowBuffer** buffer) {
- ANativeWindowBuffer* buf;
- int fenceFd = -1;
- int result = window->dequeueBuffer(window, &buf, &fenceFd);
+ int result = dequeueBuffer(window, buffer, fenceFd);
if (result != OK) {
- return result;
- }
- sp<Fence> fence(new Fence(fenceFd));
- int waitResult = fence->waitForever("dequeueBuffer_DEPRECATED");
- if (waitResult != OK) {
- ALOGE("dequeueBuffer_DEPRECATED: Fence::wait returned an error: %d", waitResult);
- window->cancelBuffer(window, buf, -1);
- return waitResult;
+ ALOGW("dequeueBuffer failed, error = %d; switching to fallback", result);
+ *buffer = rs->acquireFallbackBuffer(result);
+ *fenceFd = -1;
+ return *buffer ? OK : INVALID_OPERATION;
+ } else {
+ std::lock_guard _lock{rs->mMutex};
+ rs->mHasDequeuedBuffer = true;
}
- *buffer = buf;
- return result;
+ return OK;
}
-int ReliableSurface::hook_cancelBuffer_DEPRECATED(ANativeWindow* window,
- ANativeWindowBuffer* buffer) {
- return window->cancelBuffer(window, buffer, -1);
+int ReliableSurface::hook_cancelBuffer(ANativeWindow* window,
+ ANativeWindow_cancelBufferFn cancelBuffer, void* data,
+ ANativeWindowBuffer* buffer, int fenceFd) {
+ ReliableSurface* rs = reinterpret_cast<ReliableSurface*>(data);
+ rs->clearReservedBuffer();
+ if (rs->isFallbackBuffer(buffer)) {
+ if (fenceFd > 0) {
+ close(fenceFd);
+ }
+ return OK;
+ }
+ return cancelBuffer(window, buffer, fenceFd);
}
-int ReliableSurface::hook_lockBuffer_DEPRECATED(ANativeWindow* window,
- ANativeWindowBuffer* buffer) {
- // This method is a no-op in Surface as well
- return OK;
-}
+int ReliableSurface::hook_queueBuffer(ANativeWindow* window,
+ ANativeWindow_queueBufferFn queueBuffer, void* data,
+ ANativeWindowBuffer* buffer, int fenceFd) {
+ ReliableSurface* rs = reinterpret_cast<ReliableSurface*>(data);
+ rs->clearReservedBuffer();
-int ReliableSurface::hook_queueBuffer_DEPRECATED(ANativeWindow* window,
- ANativeWindowBuffer* buffer) {
- return window->queueBuffer(window, buffer, -1);
-}
+ if (rs->isFallbackBuffer(buffer)) {
+ if (fenceFd > 0) {
+ close(fenceFd);
+ }
+ return OK;
+ }
-int ReliableSurface::hook_query(const ANativeWindow* window, int what, int* value) {
- return getWrapped(window)->query(what, value);
+ return queueBuffer(window, buffer, fenceFd);
}
-int ReliableSurface::hook_perform(ANativeWindow* window, int operation, ...) {
+int ReliableSurface::hook_perform(ANativeWindow* window, ANativeWindow_performFn perform,
+ void* data, int operation, va_list args) {
// Drop the reserved buffer if there is one since this (probably) mutated buffer dimensions
// TODO: Filter to things that only affect the reserved buffer
// TODO: Can we mutate the reserved buffer in some cases?
- getSelf(window)->clearReservedBuffer();
- va_list args;
- va_start(args, operation);
- int result = callProtected(getWrapped(window), perform, operation, args);
- va_end(args);
+ ReliableSurface* rs = reinterpret_cast<ReliableSurface*>(data);
+ rs->clearReservedBuffer();
- va_start(args, operation);
- getSelf(window)->perform(operation, args);
- va_end(args);
+ va_list argsCopy;
+ va_copy(argsCopy, args);
+ int result = perform(window, operation, argsCopy);
+ {
+ std::lock_guard _lock{rs->mMutex};
+
+ switch (operation) {
+ case ANATIVEWINDOW_PERFORM_SET_USAGE:
+ rs->mUsage = va_arg(args, uint32_t);
+ break;
+ case ANATIVEWINDOW_PERFORM_SET_USAGE64:
+ rs->mUsage = va_arg(args, uint64_t);
+ break;
+ case ANATIVEWINDOW_PERFORM_SET_BUFFERS_GEOMETRY:
+ /* width */ va_arg(args, uint32_t);
+ /* height */ va_arg(args, uint32_t);
+ rs->mFormat = va_arg(args, PixelFormat);
+ break;
+ case ANATIVEWINDOW_PERFORM_SET_BUFFERS_FORMAT:
+ rs->mFormat = va_arg(args, PixelFormat);
+ break;
+ }
+ }
return result;
}
diff --git a/libs/hwui/renderthread/ReliableSurface.h b/libs/hwui/renderthread/ReliableSurface.h
index f768df37ba7d..e3cd8c019a23 100644
--- a/libs/hwui/renderthread/ReliableSurface.h
+++ b/libs/hwui/renderthread/ReliableSurface.h
@@ -16,6 +16,7 @@
#pragma once
+#include <apex/window.h>
#include <gui/Surface.h>
#include <utils/Macros.h>
#include <utils/StrongPointer.h>
@@ -24,20 +25,23 @@
namespace android::uirenderer::renderthread {
-class ReliableSurface : public ANativeObjectBase<ANativeWindow, ReliableSurface, RefBase> {
+class ReliableSurface {
PREVENT_COPY_AND_ASSIGN(ReliableSurface);
public:
ReliableSurface(sp<Surface>&& surface);
~ReliableSurface();
- int reserveNext();
+ // Performs initialization that is not safe to do in the constructor.
+ // For instance, registering ANativeWindow interceptors with ReliableSurface
+ // passed as the data pointer is not safe.
+ void init();
- void allocateBuffers() { mSurface->allocateBuffers(); }
+ ANativeWindow* getNativeWindow() { return mSurface.get(); }
- int query(int what, int* value) const { return mSurface->query(what, value); }
+ int reserveNext();
- uint64_t getNextFrameNumber() const { return mSurface->getNextFrameNumber(); }
+ int query(int what, int* value) const { return mSurface->query(what, value); }
int getAndClearError() {
int ret = mBufferQueueState;
@@ -45,23 +49,8 @@ public:
return ret;
}
- status_t getFrameTimestamps(uint64_t frameNumber,
- nsecs_t* outRequestedPresentTime, nsecs_t* outAcquireTime,
- nsecs_t* outLatchTime, nsecs_t* outFirstRefreshStartTime,
- nsecs_t* outLastRefreshStartTime, nsecs_t* outGlCompositionDoneTime,
- nsecs_t* outDisplayPresentTime, nsecs_t* outDequeueReadyTime,
- nsecs_t* outReleaseTime) {
- return mSurface->getFrameTimestamps(frameNumber, outRequestedPresentTime, outAcquireTime,
- outLatchTime, outFirstRefreshStartTime, outLastRefreshStartTime,
- outGlCompositionDoneTime, outDisplayPresentTime, outDequeueReadyTime, outReleaseTime);
- }
-
- void enableFrameTimestamps(bool enable) {
- return mSurface->enableFrameTimestamps(enable);
- }
-
private:
- const sp<Surface> mSurface;
+ sp<Surface> mSurface;
mutable std::mutex mMutex;
@@ -78,27 +67,20 @@ private:
ANativeWindowBuffer* acquireFallbackBuffer(int error);
void clearReservedBuffer();
- void perform(int operation, va_list args);
- int cancelBuffer(ANativeWindowBuffer* buffer, int fenceFd);
- int dequeueBuffer(ANativeWindowBuffer** buffer, int* fenceFd);
- int queueBuffer(ANativeWindowBuffer* buffer, int fenceFd);
-
- static Surface* getWrapped(const ANativeWindow*);
-
- // ANativeWindow hooks
- static int hook_cancelBuffer(ANativeWindow* window, ANativeWindowBuffer* buffer, int fenceFd);
- static int hook_dequeueBuffer(ANativeWindow* window, ANativeWindowBuffer** buffer,
- int* fenceFd);
- static int hook_queueBuffer(ANativeWindow* window, ANativeWindowBuffer* buffer, int fenceFd);
-
- static int hook_perform(ANativeWindow* window, int operation, ...);
- static int hook_query(const ANativeWindow* window, int what, int* value);
- static int hook_setSwapInterval(ANativeWindow* window, int interval);
-
- static int hook_cancelBuffer_DEPRECATED(ANativeWindow* window, ANativeWindowBuffer* buffer);
- static int hook_dequeueBuffer_DEPRECATED(ANativeWindow* window, ANativeWindowBuffer** buffer);
- static int hook_lockBuffer_DEPRECATED(ANativeWindow* window, ANativeWindowBuffer* buffer);
- static int hook_queueBuffer_DEPRECATED(ANativeWindow* window, ANativeWindowBuffer* buffer);
+ // ANativeWindow hooks. When an ANativeWindow_* method is called on the
+ // underlying ANativeWindow, these methods will intercept the original call.
+ // For example, an EGL driver would call into these hooks instead of the
+ // original methods.
+ static int hook_cancelBuffer(ANativeWindow* window, ANativeWindow_cancelBufferFn cancelBuffer,
+ void* data, ANativeWindowBuffer* buffer, int fenceFd);
+ static int hook_dequeueBuffer(ANativeWindow* window,
+ ANativeWindow_dequeueBufferFn dequeueBuffer, void* data,
+ ANativeWindowBuffer** buffer, int* fenceFd);
+ static int hook_queueBuffer(ANativeWindow* window, ANativeWindow_queueBufferFn queueBuffer,
+ void* data, ANativeWindowBuffer* buffer, int fenceFd);
+
+ static int hook_perform(ANativeWindow* window, ANativeWindow_performFn perform, void* data,
+ int operation, va_list args);
};
}; // namespace android::uirenderer::renderthread
diff --git a/libs/hwui/tests/common/TestContext.cpp b/libs/hwui/tests/common/TestContext.cpp
index e075d806126b..06f158f25fc5 100644
--- a/libs/hwui/tests/common/TestContext.cpp
+++ b/libs/hwui/tests/common/TestContext.cpp
@@ -22,43 +22,50 @@ namespace android {
namespace uirenderer {
namespace test {
-static const int IDENT_DISPLAYEVENT = 1;
-
-static android::DisplayInfo DUMMY_DISPLAY{
- 1080, // w
- 1920, // h
- 320.0, // xdpi
- 320.0, // ydpi
- 60.0, // fps
- 2.0, // density
- ui::ROTATION_0, // orientation
- false, // secure?
- 0, // appVsyncOffset
- 0, // presentationDeadline
-};
-
-DisplayInfo getInternalDisplay() {
-#if !HWUI_NULL_GPU
- DisplayInfo display;
- const sp<IBinder> token = SurfaceComposerClient::getInternalDisplayToken();
- LOG_ALWAYS_FATAL_IF(token == nullptr,
- "Failed to get display info because internal display is disconnected\n");
- status_t status = SurfaceComposerClient::getDisplayInfo(token, &display);
- LOG_ALWAYS_FATAL_IF(status, "Failed to get display info\n");
- return display;
+const DisplayInfo& getDisplayInfo() {
+ static DisplayInfo info = [] {
+ DisplayInfo info;
+#if HWUI_NULL_GPU
+ info.density = 2.f;
#else
- return DUMMY_DISPLAY;
+ const sp<IBinder> token = SurfaceComposerClient::getInternalDisplayToken();
+ LOG_ALWAYS_FATAL_IF(!token, "%s: No internal display", __FUNCTION__);
+
+ const status_t status = SurfaceComposerClient::getDisplayInfo(token, &info);
+ LOG_ALWAYS_FATAL_IF(status, "%s: Failed to get display info", __FUNCTION__);
#endif
+ return info;
+ }();
+
+ return info;
}
-// Initialize to a dummy default
-android::DisplayInfo gDisplay = DUMMY_DISPLAY;
+const DisplayConfig& getActiveDisplayConfig() {
+ static DisplayConfig config = [] {
+ DisplayConfig config;
+#if HWUI_NULL_GPU
+ config.resolution = ui::Size(1080, 1920);
+ config.xDpi = config.yDpi = 320.f;
+ config.refreshRate = 60.f;
+#else
+ const sp<IBinder> token = SurfaceComposerClient::getInternalDisplayToken();
+ LOG_ALWAYS_FATAL_IF(!token, "%s: No internal display", __FUNCTION__);
+
+ const status_t status = SurfaceComposerClient::getActiveDisplayConfig(token, &config);
+ LOG_ALWAYS_FATAL_IF(status, "%s: Failed to get active display config", __FUNCTION__);
+#endif
+ return config;
+ }();
+
+ return config;
+}
TestContext::TestContext() {
mLooper = new Looper(true);
mSurfaceComposerClient = new SurfaceComposerClient();
- mLooper->addFd(mDisplayEventReceiver.getFd(), IDENT_DISPLAYEVENT, Looper::EVENT_INPUT, nullptr,
- nullptr);
+
+ constexpr int EVENT_ID = 1;
+ mLooper->addFd(mDisplayEventReceiver.getFd(), EVENT_ID, Looper::EVENT_INPUT, nullptr, nullptr);
}
TestContext::~TestContext() {}
@@ -79,8 +86,10 @@ void TestContext::createSurface() {
}
void TestContext::createWindowSurface() {
- mSurfaceControl = mSurfaceComposerClient->createSurface(String8("HwuiTest"), gDisplay.w,
- gDisplay.h, PIXEL_FORMAT_RGBX_8888);
+ const ui::Size& resolution = getActiveDisplayResolution();
+ mSurfaceControl =
+ mSurfaceComposerClient->createSurface(String8("HwuiTest"), resolution.getWidth(),
+ resolution.getHeight(), PIXEL_FORMAT_RGBX_8888);
SurfaceComposerClient::Transaction t;
t.setLayer(mSurfaceControl, 0x7FFFFFF).show(mSurfaceControl).apply();
@@ -94,7 +103,8 @@ void TestContext::createOffscreenSurface() {
producer->setMaxDequeuedBufferCount(3);
producer->setAsyncMode(true);
mConsumer = new BufferItemConsumer(consumer, GRALLOC_USAGE_HW_COMPOSER, 4);
- mConsumer->setDefaultBufferSize(gDisplay.w, gDisplay.h);
+ const ui::Size& resolution = getActiveDisplayResolution();
+ mConsumer->setDefaultBufferSize(resolution.getWidth(), resolution.getHeight());
mSurface = new Surface(producer);
}
diff --git a/libs/hwui/tests/common/TestContext.h b/libs/hwui/tests/common/TestContext.h
index 116d4de8090a..a012ecb1a1d3 100644
--- a/libs/hwui/tests/common/TestContext.h
+++ b/libs/hwui/tests/common/TestContext.h
@@ -23,20 +23,25 @@
#include <gui/Surface.h>
#include <gui/SurfaceComposerClient.h>
#include <gui/SurfaceControl.h>
+#include <ui/DisplayConfig.h>
#include <ui/DisplayInfo.h>
#include <utils/Looper.h>
#include <atomic>
#include <thread>
+#define dp(x) ((x) * android::uirenderer::test::getDisplayInfo().density)
+
namespace android {
namespace uirenderer {
namespace test {
-extern DisplayInfo gDisplay;
-#define dp(x) ((x)*android::uirenderer::test::gDisplay.density)
+const DisplayInfo& getDisplayInfo();
+const DisplayConfig& getActiveDisplayConfig();
-DisplayInfo getInternalDisplay();
+inline const ui::Size& getActiveDisplayResolution() {
+ return getActiveDisplayConfig().resolution;
+}
class TestContext {
public:
diff --git a/libs/hwui/tests/macrobench/TestSceneRunner.cpp b/libs/hwui/tests/macrobench/TestSceneRunner.cpp
index 22d5abbd3dbc..3b6baa70db9a 100644
--- a/libs/hwui/tests/macrobench/TestSceneRunner.cpp
+++ b/libs/hwui/tests/macrobench/TestSceneRunner.cpp
@@ -109,16 +109,14 @@ void outputBenchmarkReport(const TestScene::Info& info, const TestScene::Options
void run(const TestScene::Info& info, const TestScene::Options& opts,
benchmark::BenchmarkReporter* reporter) {
- // Switch to the real display
- gDisplay = getInternalDisplay();
-
Properties::forceDrawFrame = true;
TestContext testContext;
testContext.setRenderOffscreen(opts.renderOffscreen);
// create the native surface
- const int width = gDisplay.w;
- const int height = gDisplay.h;
+ const ui::Size& resolution = getActiveDisplayResolution();
+ const int width = resolution.getWidth();
+ const int height = resolution.getHeight();
sp<Surface> surface = testContext.surface();
std::unique_ptr<TestScene> scene(info.createScene(opts));
diff --git a/libs/hwui/tests/unit/SkiaPipelineTests.cpp b/libs/hwui/tests/unit/SkiaPipelineTests.cpp
index 307d13606cb8..90bcd1c0e370 100644
--- a/libs/hwui/tests/unit/SkiaPipelineTests.cpp
+++ b/libs/hwui/tests/unit/SkiaPipelineTests.cpp
@@ -398,7 +398,7 @@ RENDERTHREAD_SKIA_PIPELINE_TEST(SkiaPipeline, context_lost) {
auto surface = context.surface();
auto pipeline = std::make_unique<SkiaOpenGLPipeline>(renderThread);
EXPECT_FALSE(pipeline->isSurfaceReady());
- EXPECT_TRUE(pipeline->setSurface(surface.get(), SwapBehavior::kSwap_default, ColorMode::SRGB, 0));
+ EXPECT_TRUE(pipeline->setSurface(surface.get(), SwapBehavior::kSwap_default, 0));
EXPECT_TRUE(pipeline->isSurfaceReady());
renderThread.destroyRenderingContext();
EXPECT_FALSE(pipeline->isSurfaceReady());
diff --git a/libs/incident/Android.bp b/libs/incident/Android.bp
index 150f6dcde5d0..512b8c439dcf 100644
--- a/libs/incident/Android.bp
+++ b/libs/incident/Android.bp
@@ -12,8 +12,9 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-cc_library_shared {
- name: "libincident",
+
+cc_defaults {
+ name: "libincidentpriv_defaults",
cflags: [
"-Wall",
@@ -50,6 +51,70 @@ cc_library_shared {
":libincident_aidl",
"src/IncidentReportArgs.cpp",
],
+}
+
+cc_library_shared {
+ name: "libincidentpriv",
+ defaults: ["libincidentpriv_defaults"],
+ export_include_dirs: ["include_priv"],
+}
+
+cc_library_shared {
+ name: "libincident",
+
+ cflags: [
+ "-Wall",
+ "-Werror",
+ "-Wno-missing-field-initializers",
+ "-Wno-unused-variable",
+ "-Wunused-parameter",
+ ],
+
+ shared_libs: [
+ "libbinder",
+ "liblog",
+ "libutils",
+ "libincidentpriv",
+ ],
+
+ srcs: [
+ "src/incident_report.cpp",
+ ],
export_include_dirs: ["include"],
+
+ stubs: {
+ symbol_file: "libincident.map.txt",
+ versions: [
+ "30",
+ ],
+ },
}
+
+cc_test {
+ name: "libincident_test",
+ defaults: ["libincidentpriv_defaults"],
+ test_suites: ["device-tests"],
+
+ include_dirs: [
+ "frameworks/base/libs/incident/include",
+ "frameworks/base/libs/incident/include_priv",
+ ],
+
+ srcs: [
+ "tests/IncidentReportArgs_test.cpp",
+ "tests/IncidentReportRequest_test.cpp",
+ "tests/c_api_compile_test.c",
+ ],
+
+ shared_libs: [
+ "libincident",
+ ],
+
+ static_libs: [
+ "libgmock",
+ ],
+}
+
+
+
diff --git a/libs/incident/include/incident/incident_report.h b/libs/incident/include/incident/incident_report.h
new file mode 100644
index 000000000000..49fe5b9b73b4
--- /dev/null
+++ b/libs/incident/include/incident/incident_report.h
@@ -0,0 +1,192 @@
+/**
+ * Copyright (c) 2020, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @file incident_report.h
+ */
+
+#ifndef ANDROID_INCIDENT_INCIDENT_REPORT_H
+#define ANDROID_INCIDENT_INCIDENT_REPORT_H
+
+#include <stdbool.h>
+
+#if __cplusplus
+#include <set>
+#include <string>
+#include <vector>
+
+extern "C" {
+#endif // __cplusplus
+
+struct AIncidentReportArgs;
+/**
+ * Opaque class to represent the arguments to an incident report request.
+ * Incident reports contain debugging data about the device at runtime.
+ * For more information see the android.os.IncidentManager java class.
+ */
+typedef struct AIncidentReportArgs AIncidentReportArgs;
+
+// Privacy policy enum value, sync with frameworks/base/core/proto/android/privacy.proto,
+// IncidentReportArgs.h and IncidentReportArgs.java.
+enum {
+ /**
+ * Flag marking fields and incident reports than can be taken
+ * off the device only via adb.
+ */
+ INCIDENT_REPORT_PRIVACY_POLICY_LOCAL = 0,
+
+ /**
+ * Flag marking fields and incident reports than can be taken
+ * off the device with contemporary consent.
+ */
+ INCIDENT_REPORT_PRIVACY_POLICY_EXPLICIT = 100,
+
+ /**
+ * Flag marking fields and incident reports than can be taken
+ * off the device with prior consent.
+ */
+ INCIDENT_REPORT_PRIVACY_POLICY_AUTOMATIC = 200,
+
+ /**
+ * Flag to indicate that a given field has not been marked
+ * with a privacy policy.
+ */
+ INCIDENT_REPORT_PRIVACY_POLICY_UNSET = 255
+};
+
+/**
+ * Allocate and initialize an AIncidentReportArgs object.
+ */
+AIncidentReportArgs* AIncidentReportArgs_init();
+
+/**
+ * Duplicate an existing AIncidentReportArgs object.
+ */
+AIncidentReportArgs* AIncidentReportArgs_clone(AIncidentReportArgs* that);
+
+/**
+ * Clean up and delete an AIncidentReportArgs object.
+ */
+void AIncidentReportArgs_delete(AIncidentReportArgs* args);
+
+/**
+ * Set this incident report to include all sections.
+ */
+void AIncidentReportArgs_setAll(AIncidentReportArgs* args, bool all);
+
+/**
+ * Set this incident report privacy policy spec.
+ */
+void AIncidentReportArgs_setPrivacyPolicy(AIncidentReportArgs* args, int privacyPolicy);
+
+/**
+ * Add this section to the incident report. The section IDs are the field numbers
+ * from the android.os.IncidentProto protobuf message.
+ */
+void AIncidentReportArgs_addSection(AIncidentReportArgs* args, int section);
+
+/**
+ * Set the apk package name that will be sent a broadcast when the incident
+ * report completes. Must be called in conjunction with AIncidentReportArgs_setReceiverClass.
+ */
+void AIncidentReportArgs_setReceiverPackage(AIncidentReportArgs* args, char const* pkg);
+
+/**
+ * Set the fully qualified class name of the java BroadcastReceiver class that will be
+ * sent a broadcast when the report completes. Must be called in conjunction with
+ * AIncidentReportArgs_setReceiverPackage.
+ */
+void AIncidentReportArgs_setReceiverClass(AIncidentReportArgs* args, char const* cls);
+
+/**
+ * Add protobuf data as a header to the incident report. The buffer should be a serialized
+ * android.os.IncidentHeaderProto object.
+ */
+void AIncidentReportArgs_addHeader(AIncidentReportArgs* args, uint8_t const* buf, size_t size);
+
+/**
+ * Initiate taking the report described in the args object. Returns 0 on success,
+ * and non-zero otherwise.
+ */
+int AIncidentReportArgs_takeReport(AIncidentReportArgs* args);
+
+#if __cplusplus
+} // extern "C"
+
+namespace android {
+namespace os {
+
+class IncidentReportRequest {
+public:
+ inline IncidentReportRequest() {
+ mImpl = AIncidentReportArgs_init();
+ }
+
+ inline IncidentReportRequest(const IncidentReportRequest& that) {
+ mImpl = AIncidentReportArgs_clone(that.mImpl);
+ }
+
+ inline ~IncidentReportRequest() {
+ AIncidentReportArgs_delete(mImpl);
+ }
+
+ inline AIncidentReportArgs* getImpl() {
+ return mImpl;
+ }
+
+ inline void setAll(bool all) {
+ AIncidentReportArgs_setAll(mImpl, all);
+ }
+
+ inline void setPrivacyPolicy(int privacyPolicy) {
+ AIncidentReportArgs_setPrivacyPolicy(mImpl, privacyPolicy);
+ }
+
+ inline void addSection(int section) {
+ AIncidentReportArgs_addSection(mImpl, section);
+ }
+
+ inline void setReceiverPackage(const std::string& pkg) {
+ AIncidentReportArgs_setReceiverPackage(mImpl, pkg.c_str());
+ };
+
+ inline void setReceiverClass(const std::string& cls) {
+ AIncidentReportArgs_setReceiverClass(mImpl, cls.c_str());
+ };
+
+ inline void addHeader(const std::vector<uint8_t>& headerProto) {
+ AIncidentReportArgs_addHeader(mImpl, headerProto.data(), headerProto.size());
+ };
+
+ inline void addHeader(const uint8_t* buf, size_t size) {
+ AIncidentReportArgs_addHeader(mImpl, buf, size);
+ };
+
+ // returns a status_t
+ inline int takeReport() {
+ return AIncidentReportArgs_takeReport(mImpl);
+ }
+
+private:
+ AIncidentReportArgs* mImpl;
+};
+
+} // namespace os
+} // namespace android
+
+#endif // __cplusplus
+
+#endif // ANDROID_INCIDENT_INCIDENT_REPORT_H
diff --git a/libs/incident/include/android/os/IncidentReportArgs.h b/libs/incident/include_priv/android/os/IncidentReportArgs.h
index 94b4ad6eae31..0e6159032e45 100644
--- a/libs/incident/include/android/os/IncidentReportArgs.h
+++ b/libs/incident/include_priv/android/os/IncidentReportArgs.h
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-#ifndef ANDROID_OS_DUMPSTATE_ARGS_H_
-#define ANDROID_OS_DUMPSTATE_ARGS_H_
+#ifndef ANDROID_OS_INCIDENT_REPORT_ARGS_H
+#define ANDROID_OS_INCIDENT_REPORT_ARGS_H
+#include <binder/IServiceManager.h>
#include <binder/Parcel.h>
#include <binder/Parcelable.h>
#include <utils/String16.h>
@@ -29,7 +30,8 @@ namespace os {
using namespace std;
-// DESTINATION enum value, sync with frameworks/base/core/proto/android/privacy.proto
+// DESTINATION enum value, sync with frameworks/base/core/proto/android/privacy.proto,
+// incident/incident_report.h and IncidentReportArgs.java
const uint8_t PRIVACY_POLICY_LOCAL = 0;
const uint8_t PRIVACY_POLICY_EXPLICIT = 100;
const uint8_t PRIVACY_POLICY_AUTOMATIC = 200;
@@ -74,4 +76,4 @@ private:
}
}
-#endif // ANDROID_OS_DUMPSTATE_ARGS_H_
+#endif // ANDROID_OS_INCIDENT_REPORT_ARGS_H
diff --git a/libs/incident/libincident.map.txt b/libs/incident/libincident.map.txt
new file mode 100644
index 000000000000..f157763f1a03
--- /dev/null
+++ b/libs/incident/libincident.map.txt
@@ -0,0 +1,15 @@
+LIBINCIDENT {
+ global:
+ AIncidentReportArgs_init; # apex # introduced=30
+ AIncidentReportArgs_clone; # apex # introduced=30
+ AIncidentReportArgs_delete; # apex # introduced=30
+ AIncidentReportArgs_setAll; # apex # introduced=30
+ AIncidentReportArgs_setPrivacyPolicy; # apex # introduced=30
+ AIncidentReportArgs_addSection; # apex # introduced=30
+ AIncidentReportArgs_setReceiverPackage; # apex # introduced=30
+ AIncidentReportArgs_setReceiverClass; # apex # introduced=30
+ AIncidentReportArgs_addHeader; # apex # introduced=30
+ AIncidentReportArgs_takeReport; # apex # introduced=30
+ local:
+ *;
+};
diff --git a/libs/incident/src/incident_report.cpp b/libs/incident/src/incident_report.cpp
new file mode 100644
index 000000000000..7897ddf6d251
--- /dev/null
+++ b/libs/incident/src/incident_report.cpp
@@ -0,0 +1,83 @@
+/**
+ * Copyright (c) 2020, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "libincident"
+
+#include <incident/incident_report.h>
+
+#include <android/os/IIncidentManager.h>
+#include <android/os/IncidentReportArgs.h>
+#include <binder/IServiceManager.h>
+#include <binder/Status.h>
+#include <log/log.h>
+
+using android::sp;
+using android::binder::Status;
+using android::os::IncidentReportArgs;
+using android::os::IIncidentManager;
+using std::string;
+using std::vector;
+
+AIncidentReportArgs* AIncidentReportArgs_init() {
+ return reinterpret_cast<AIncidentReportArgs*>(new IncidentReportArgs());
+}
+
+AIncidentReportArgs* AIncidentReportArgs_clone(AIncidentReportArgs* that) {
+ return reinterpret_cast<AIncidentReportArgs*>(
+ new IncidentReportArgs(*reinterpret_cast<IncidentReportArgs*>(that)));
+}
+
+void AIncidentReportArgs_delete(AIncidentReportArgs* args) {
+ delete reinterpret_cast<IncidentReportArgs*>(args);
+}
+
+void AIncidentReportArgs_setAll(AIncidentReportArgs* args, bool all) {
+ reinterpret_cast<IncidentReportArgs*>(args)->setAll(all);
+}
+
+void AIncidentReportArgs_setPrivacyPolicy(AIncidentReportArgs* args, int privacyPolicy) {
+ reinterpret_cast<IncidentReportArgs*>(args)->setPrivacyPolicy(privacyPolicy);
+}
+
+void AIncidentReportArgs_addSection(AIncidentReportArgs* args, int section) {
+ reinterpret_cast<IncidentReportArgs*>(args)->addSection(section);
+}
+
+void AIncidentReportArgs_setReceiverPackage(AIncidentReportArgs* args, char const* pkg) {
+ reinterpret_cast<IncidentReportArgs*>(args)->setReceiverPkg(string(pkg));
+}
+
+void AIncidentReportArgs_setReceiverClass(AIncidentReportArgs* args, char const* cls) {
+ reinterpret_cast<IncidentReportArgs*>(args)->setReceiverCls(string(cls));
+}
+
+void AIncidentReportArgs_addHeader(AIncidentReportArgs* args, uint8_t const* buf, size_t size) {
+ vector<uint8_t> vec(buf, buf+size);
+ reinterpret_cast<IncidentReportArgs*>(args)->addHeader(vec);
+}
+
+int AIncidentReportArgs_takeReport(AIncidentReportArgs* argp) {
+ IncidentReportArgs* args = reinterpret_cast<IncidentReportArgs*>(argp);
+
+ sp<IIncidentManager> service = android::interface_cast<IIncidentManager>(
+ android::defaultServiceManager()->getService(android::String16("incident")));
+ if (service == nullptr) {
+ ALOGW("Failed to fetch incident service.");
+ return false;
+ }
+ Status s = service->reportIncident(*args);
+ return s.transactionError();
+}
diff --git a/cmds/statsd/tests/external/IncidentReportArgs_test.cpp b/libs/incident/tests/IncidentReportArgs_test.cpp
index 38bc19452afa..224b343c554a 100644
--- a/cmds/statsd/tests/external/IncidentReportArgs_test.cpp
+++ b/libs/incident/tests/IncidentReportArgs_test.cpp
@@ -20,6 +20,8 @@ namespace android {
namespace os {
namespace statsd {
+// Checks that all of the inline methods on IncidentReportRequest and the real C functions
+// result in a working IncidentReportArgs.
TEST(IncidentReportArgsTest, testSerialization) {
IncidentReportArgs args;
args.setAll(0);
diff --git a/libs/incident/tests/IncidentReportRequest_test.cpp b/libs/incident/tests/IncidentReportRequest_test.cpp
new file mode 100644
index 000000000000..6d218b6682a3
--- /dev/null
+++ b/libs/incident/tests/IncidentReportRequest_test.cpp
@@ -0,0 +1,65 @@
+// 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.
+
+#include <android/os/IncidentReportArgs.h>
+#include <incident/incident_report.h>
+
+#include <gtest/gtest.h>
+
+namespace android {
+namespace os {
+namespace statsd {
+
+TEST(IncidentReportRequestTest, testWrite) {
+ IncidentReportRequest request;
+ request.setAll(0);
+ request.addSection(1000);
+ request.addSection(1001);
+
+ vector<uint8_t> header1;
+ header1.push_back(0x1);
+ header1.push_back(0x2);
+ vector<uint8_t> header2;
+ header1.push_back(0x22);
+ header1.push_back(0x33);
+
+ request.addHeader(header1);
+ request.addHeader(header2);
+
+ request.setPrivacyPolicy(1);
+
+ request.setReceiverPackage("com.android.os");
+ request.setReceiverClass("com.android.os.Receiver");
+
+ IncidentReportArgs* args = reinterpret_cast<IncidentReportArgs*>(request.getImpl());
+
+ EXPECT_EQ(0, args->all());
+ set<int> sections;
+ sections.insert(1000);
+ sections.insert(1001);
+ EXPECT_EQ(sections, args->sections());
+ EXPECT_EQ(1, args->getPrivacyPolicy());
+
+ EXPECT_EQ(string("com.android.os"), args->receiverPkg());
+ EXPECT_EQ(string("com.android.os.Receiver"), args->receiverCls());
+
+ vector<vector<uint8_t>> headers;
+ headers.push_back(header1);
+ headers.push_back(header2);
+ EXPECT_EQ(headers, args->headers());
+}
+
+} // namespace statsd
+} // namespace os
+} // namespace android
diff --git a/libs/incident/tests/c_api_compile_test.c b/libs/incident/tests/c_api_compile_test.c
new file mode 100644
index 000000000000..e1620dfe3280
--- /dev/null
+++ b/libs/incident/tests/c_api_compile_test.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+#include <incident/incident_report.h>
+
+/*
+ * This file ensures that incident/incident_report.h actually compiles with C,
+ * since there is no other place in the tree that actually uses it from C.
+ */
+int not_called() {
+ return 0;
+}
+
diff --git a/location/java/android/location/Location.java b/location/java/android/location/Location.java
index 7a12cee899d8..eb76c29301c6 100644
--- a/location/java/android/location/Location.java
+++ b/location/java/android/location/Location.java
@@ -16,7 +16,6 @@
package android.location;
-import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.compat.annotation.UnsupportedAppUsage;
@@ -1214,23 +1213,6 @@ public class Location implements Parcelable {
}
/**
- * Attaches an extra {@link Location} to this Location. This is useful for location providers
- * to set the {@link #EXTRA_NO_GPS_LOCATION} extra to provide coarse locations for clients.
- *
- * @param key the key associated with the Location extra
- * @param value the Location to attach
- * @hide
- */
- @TestApi
- @SystemApi
- public void setExtraLocation(@Nullable String key, @Nullable Location value) {
- if (mExtras == null) {
- mExtras = new Bundle();
- }
- mExtras.putParcelable(key, value);
- }
-
- /**
* Returns true if the Location came from a mock provider.
*
* @return true if this Location came from a mock provider, false otherwise
diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java
index 197787e5b6e6..1c10edb11293 100644
--- a/location/java/android/location/LocationManager.java
+++ b/location/java/android/location/LocationManager.java
@@ -33,6 +33,9 @@ import android.annotation.SystemService;
import android.annotation.TestApi;
import android.app.AlarmManager;
import android.app.PendingIntent;
+import android.compat.Compatibility;
+import android.compat.annotation.ChangeId;
+import android.compat.annotation.EnabledAfter;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.content.pm.PackageManager;
@@ -50,7 +53,6 @@ import android.os.SystemClock;
import android.os.UserHandle;
import android.provider.Settings;
import android.util.ArrayMap;
-import android.util.Log;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.location.ProviderProperties;
@@ -82,6 +84,36 @@ public class LocationManager {
private static final String TAG = "LocationManager";
/**
+ * For apps targeting Android K and above, supplied {@link PendingIntent}s must be targeted to a
+ * specific package.
+ *
+ * @hide
+ */
+ @ChangeId
+ @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.JELLY_BEAN)
+ public static final long TARGETED_PENDING_INTENT = 148963590L;
+
+ /**
+ * For apps targeting Android K and above, incomplete locations may not be passed to
+ * {@link #setTestProviderLocation}.
+ *
+ * @hide
+ */
+ @ChangeId
+ @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.JELLY_BEAN)
+ private static final long INCOMPLETE_LOCATION = 148964793L;
+
+ /**
+ * For apps targeting Android S and above, all {@link GpsStatus} API usage must be replaced with
+ * {@link GnssStatus} APIs.
+ *
+ * @hide
+ */
+ @ChangeId
+ @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.R)
+ private static final long GPS_STATUS_USAGE = 144027538L;
+
+ /**
* Name of the network location provider.
*
* <p>This provider determines location based on nearby of cell tower and WiFi access points.
@@ -771,7 +803,6 @@ public class LocationManager {
public void requestSingleUpdate(@NonNull String provider,
@NonNull PendingIntent pendingIntent) {
Preconditions.checkArgument(provider != null, "invalid null provider");
- checkPendingIntent(pendingIntent);
LocationRequest request = LocationRequest.createFromDeprecatedProvider(
provider, 0, 0, true);
@@ -800,7 +831,6 @@ public class LocationManager {
public void requestSingleUpdate(@NonNull Criteria criteria,
@NonNull PendingIntent pendingIntent) {
Preconditions.checkArgument(criteria != null, "invalid null criteria");
- checkPendingIntent(pendingIntent);
LocationRequest request = LocationRequest.createFromDeprecatedCriteria(
criteria, 0, 0, true);
@@ -1021,7 +1051,6 @@ public class LocationManager {
public void requestLocationUpdates(@NonNull String provider, long minTimeMs, float minDistanceM,
@NonNull PendingIntent pendingIntent) {
Preconditions.checkArgument(provider != null, "invalid null provider");
- checkPendingIntent(pendingIntent);
LocationRequest request = LocationRequest.createFromDeprecatedProvider(
provider, minTimeMs, minDistanceM, false);
@@ -1048,7 +1077,6 @@ public class LocationManager {
public void requestLocationUpdates(long minTimeMs, float minDistanceM,
@NonNull Criteria criteria, @NonNull PendingIntent pendingIntent) {
Preconditions.checkArgument(criteria != null, "invalid null criteria");
- checkPendingIntent(pendingIntent);
LocationRequest request = LocationRequest.createFromDeprecatedCriteria(
criteria, minTimeMs, minDistanceM, false);
@@ -1164,9 +1192,9 @@ public class LocationManager {
@NonNull PendingIntent pendingIntent) {
Preconditions.checkArgument(locationRequest != null, "invalid null location request");
Preconditions.checkArgument(pendingIntent != null, "invalid null pending intent");
- if (mContext.getApplicationInfo().targetSdkVersion > Build.VERSION_CODES.JELLY_BEAN) {
+ if (Compatibility.isChangeEnabled(TARGETED_PENDING_INTENT)) {
Preconditions.checkArgument(pendingIntent.isTargetedToPackage(),
- "pending intent must be targeted to package");
+ "pending intent must be targeted to a package");
}
try {
@@ -1198,15 +1226,9 @@ public class LocationManager {
*/
@RequiresPermission(allOf = {LOCATION_HARDWARE, ACCESS_FINE_LOCATION})
public boolean injectLocation(@NonNull Location location) {
- if (location == null) {
- IllegalArgumentException e = new IllegalArgumentException("invalid null location");
- if (mContext.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.R) {
- throw e;
- } else {
- Log.w(TAG, e);
- return false;
- }
- }
+ Preconditions.checkArgument(location != null, "invalid null location");
+ Preconditions.checkArgument(location.isComplete(),
+ "incomplete location object, missing timestamp or accuracy?");
try {
return mService.injectLocation(location);
@@ -1487,15 +1509,11 @@ public class LocationManager {
Preconditions.checkArgument(provider != null, "invalid null provider");
Preconditions.checkArgument(location != null, "invalid null location");
- if (!location.isComplete()) {
- IllegalArgumentException e = new IllegalArgumentException(
- "Incomplete location object, missing timestamp or accuracy? " + location);
- if (mContext.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.JELLY_BEAN) {
- Log.w(TAG, e);
- location.makeComplete();
- } else {
- throw e;
- }
+ if (Compatibility.isChangeEnabled(INCOMPLETE_LOCATION)) {
+ Preconditions.checkArgument(location.isComplete(),
+ "incomplete location object, missing timestamp or accuracy?");
+ } else {
+ location.makeComplete();
}
try {
@@ -1629,7 +1647,11 @@ public class LocationManager {
@RequiresPermission(anyOf = {ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION})
public void addProximityAlert(double latitude, double longitude, float radius, long expiration,
@NonNull PendingIntent intent) {
- checkPendingIntent(intent);
+ Preconditions.checkArgument(intent != null, "invalid null pending intent");
+ if (Compatibility.isChangeEnabled(TARGETED_PENDING_INTENT)) {
+ Preconditions.checkArgument(intent.isTargetedToPackage(),
+ "pending intent must be targeted to a package");
+ }
if (expiration < 0) expiration = Long.MAX_VALUE;
Geofence fence = Geofence.createCircle(latitude, longitude, radius);
@@ -1659,7 +1681,11 @@ public class LocationManager {
* permission is not present
*/
public void removeProximityAlert(@NonNull PendingIntent intent) {
- checkPendingIntent(intent);
+ Preconditions.checkArgument(intent != null, "invalid null pending intent");
+ if (Compatibility.isChangeEnabled(TARGETED_PENDING_INTENT)) {
+ Preconditions.checkArgument(intent.isTargetedToPackage(),
+ "pending intent must be targeted to a package");
+ }
try {
mService.removeGeofence(null, intent, mContext.getPackageName());
@@ -1709,8 +1735,13 @@ public class LocationManager {
@NonNull LocationRequest request,
@NonNull Geofence fence,
@NonNull PendingIntent intent) {
- checkPendingIntent(intent);
+ Preconditions.checkArgument(request != null, "invalid null location request");
Preconditions.checkArgument(fence != null, "invalid null geofence");
+ Preconditions.checkArgument(intent != null, "invalid null pending intent");
+ if (Compatibility.isChangeEnabled(TARGETED_PENDING_INTENT)) {
+ Preconditions.checkArgument(intent.isTargetedToPackage(),
+ "pending intent must be targeted to a package");
+ }
try {
mService.requestGeofence(request, fence, intent, mContext.getPackageName(),
@@ -1737,8 +1768,12 @@ public class LocationManager {
* @hide
*/
public void removeGeofence(@NonNull Geofence fence, @NonNull PendingIntent intent) {
- checkPendingIntent(intent);
Preconditions.checkArgument(fence != null, "invalid null geofence");
+ Preconditions.checkArgument(intent != null, "invalid null pending intent");
+ if (Compatibility.isChangeEnabled(TARGETED_PENDING_INTENT)) {
+ Preconditions.checkArgument(intent.isTargetedToPackage(),
+ "pending intent must be targeted to a package");
+ }
try {
mService.removeGeofence(fence, intent, mContext.getPackageName());
@@ -1759,7 +1794,11 @@ public class LocationManager {
* @hide
*/
public void removeAllGeofences(@NonNull PendingIntent intent) {
- checkPendingIntent(intent);
+ Preconditions.checkArgument(intent != null, "invalid null pending intent");
+ if (Compatibility.isChangeEnabled(TARGETED_PENDING_INTENT)) {
+ Preconditions.checkArgument(intent.isTargetedToPackage(),
+ "pending intent must be targeted to a package");
+ }
try {
mService.removeGeofence(null, intent, mContext.getPackageName());
@@ -1833,14 +1872,15 @@ public class LocationManager {
* @param status object containing GPS status details, or null.
* @return status object containing updated GPS status.
*
- * @deprecated GpsStatus APIs are deprecated, use {@link GnssStatus} APIs instead.
+ * @deprecated GpsStatus APIs are deprecated, use {@link GnssStatus} APIs instead. No longer
+ * supported in apps targeting S and above.
*/
@Deprecated
@RequiresPermission(ACCESS_FINE_LOCATION)
public @Nullable GpsStatus getGpsStatus(@Nullable GpsStatus status) {
- if (mContext.getApplicationInfo().targetSdkVersion > Build.VERSION_CODES.R) {
+ if (Compatibility.isChangeEnabled(GPS_STATUS_USAGE)) {
throw new UnsupportedOperationException(
- "GpsStatus APIs not supported in S and above, use GnssStatus APIs instead");
+ "GpsStatus APIs not supported, please use GnssStatus APIs instead");
}
GnssStatus gnssStatus = mGnssStatusListenerManager.getGnssStatus();
@@ -1863,17 +1903,14 @@ public class LocationManager {
* @throws SecurityException if the ACCESS_FINE_LOCATION permission is not present
*
* @deprecated use {@link #registerGnssStatusCallback(GnssStatus.Callback)} instead. No longer
- * supported in apps targeting R and above.
+ * supported in apps targeting S and above.
*/
@Deprecated
@RequiresPermission(ACCESS_FINE_LOCATION)
public boolean addGpsStatusListener(GpsStatus.Listener listener) {
- UnsupportedOperationException ex = new UnsupportedOperationException(
- "GpsStatus APIs not supported in S and above, use GnssStatus APIs instead");
- if (mContext.getApplicationInfo().targetSdkVersion > Build.VERSION_CODES.R) {
- throw ex;
- } else {
- Log.w(TAG, ex);
+ if (Compatibility.isChangeEnabled(GPS_STATUS_USAGE)) {
+ throw new UnsupportedOperationException(
+ "GpsStatus APIs not supported, please use GnssStatus APIs instead");
}
try {
@@ -1889,16 +1926,13 @@ public class LocationManager {
* @param listener GPS status listener object to remove
*
* @deprecated use {@link #unregisterGnssStatusCallback(GnssStatus.Callback)} instead. No longer
- * supported in apps targeting R and above.
+ * supported in apps targeting S and above.
*/
@Deprecated
public void removeGpsStatusListener(GpsStatus.Listener listener) {
- UnsupportedOperationException ex = new UnsupportedOperationException(
- "GpsStatus APIs not supported in S and above, use GnssStatus APIs instead");
- if (mContext.getApplicationInfo().targetSdkVersion > Build.VERSION_CODES.R) {
- throw ex;
- } else {
- Log.w(TAG, ex);
+ if (Compatibility.isChangeEnabled(GPS_STATUS_USAGE)) {
+ throw new UnsupportedOperationException(
+ "GpsStatus APIs not supported, please use GnssStatus APIs instead");
}
try {
@@ -2397,19 +2431,6 @@ public class LocationManager {
}
}
- private void checkPendingIntent(PendingIntent pendingIntent) {
- Preconditions.checkArgument(pendingIntent != null, "invalid null pending intent");
- if (!pendingIntent.isTargetedToPackage()) {
- IllegalArgumentException e = new IllegalArgumentException(
- "invalid pending intent - must be targeted to package");
- if (mContext.getApplicationInfo().targetSdkVersion > Build.VERSION_CODES.JELLY_BEAN) {
- throw e;
- } else {
- Log.w(TAG, e);
- }
- }
- }
-
private static class GetCurrentLocationTransport extends ILocationListener.Stub implements
AlarmManager.OnAlarmListener {
diff --git a/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java b/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java
index 127d00c0afe2..d57148092754 100644
--- a/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java
+++ b/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java
@@ -24,12 +24,12 @@ import android.server.location.ServerLocationProtoEnums;
import android.text.format.DateUtils;
import android.util.Base64;
import android.util.Log;
-import android.util.StatsLog;
import android.util.TimeUtils;
import com.android.internal.app.IBatteryStats;
import com.android.internal.location.nano.GnssLogsProto.GnssLog;
import com.android.internal.location.nano.GnssLogsProto.PowerMetrics;
+import com.android.internal.util.FrameworkStatsLog;
import java.util.ArrayList;
import java.util.Arrays;
@@ -540,7 +540,7 @@ public class GnssMetrics {
}
int signalLevel = getSignalLevel(avgCn0);
if (signalLevel != mLastSignalLevel) {
- StatsLog.write(StatsLog.GPS_SIGNAL_QUALITY_CHANGED, signalLevel);
+ FrameworkStatsLog.write(FrameworkStatsLog.GPS_SIGNAL_QUALITY_CHANGED, signalLevel);
mLastSignalLevel = signalLevel;
}
try {
diff --git a/media/java/android/media/AudioAttributes.java b/media/java/android/media/AudioAttributes.java
index 114c0f1f6bf3..fe0c2d21d442 100644
--- a/media/java/android/media/AudioAttributes.java
+++ b/media/java/android/media/AudioAttributes.java
@@ -1427,7 +1427,10 @@ public final class AudioAttributes implements Parcelable {
}
}
- static int capturePolicyToFlags(@CapturePolicy int capturePolicy, int flags) {
+ /**
+ * @hide
+ */
+ public static int capturePolicyToFlags(@CapturePolicy int capturePolicy, int flags) {
switch (capturePolicy) {
case ALLOW_CAPTURE_BY_NONE:
flags |= FLAG_NO_MEDIA_PROJECTION | FLAG_NO_SYSTEM_CAPTURE;
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index 861b76d2b153..7b17f9f764fb 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -1547,23 +1547,22 @@ public class AudioManager {
* {@link AudioAttributes#ALLOW_CAPTURE_BY_ALL},
* {@link AudioAttributes#ALLOW_CAPTURE_BY_SYSTEM},
* {@link AudioAttributes#ALLOW_CAPTURE_BY_NONE}.
- * @throws IllegalArgumentException if the argument is not a valid value.
+ * @throws RuntimeException if the argument is not a valid value.
*/
public void setAllowedCapturePolicy(@AudioAttributes.CapturePolicy int capturePolicy) {
- int flags = AudioAttributes.capturePolicyToFlags(capturePolicy, 0x0);
- // TODO: got trough AudioService and save a cache to restore in case of AP crash
// TODO: also pass the package in case multiple packages have the same UID
- int result = AudioSystem.setAllowedCapturePolicy(Process.myUid(), flags);
- if (result != AudioSystem.AUDIO_STATUS_OK) {
- Log.e(TAG, "Could not setAllowedCapturePolicy: " + result);
- return;
+ final IAudioService service = getService();
+ try {
+ int result = service.setAllowedCapturePolicy(capturePolicy);
+ if (result != AudioSystem.AUDIO_STATUS_OK) {
+ Log.e(TAG, "Could not setAllowedCapturePolicy: " + result);
+ return;
+ }
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
}
- mCapturePolicy = capturePolicy;
}
- @AudioAttributes.CapturePolicy
- private int mCapturePolicy = AudioAttributes.ALLOW_CAPTURE_BY_ALL;
-
/**
* Return the capture policy.
* @return the capture policy set by {@link #setAllowedCapturePolicy(int)} or
@@ -1571,7 +1570,13 @@ public class AudioManager {
*/
@AudioAttributes.CapturePolicy
public int getAllowedCapturePolicy() {
- return mCapturePolicy;
+ int result = AudioAttributes.ALLOW_CAPTURE_BY_ALL;
+ try {
+ result = getService().getAllowedCapturePolicy();
+ } catch (RemoteException e) {
+ Log.e(TAG, "Failed to query allowed capture policy: " + e);
+ }
+ return result;
}
//====================================================================
diff --git a/media/java/android/media/AudioRecordingConfiguration.java b/media/java/android/media/AudioRecordingConfiguration.java
index f3613d3665ca..42841d178401 100644
--- a/media/java/android/media/AudioRecordingConfiguration.java
+++ b/media/java/android/media/AudioRecordingConfiguration.java
@@ -18,6 +18,7 @@ package android.media;
import android.annotation.IntDef;
import android.annotation.NonNull;
+import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.compat.annotation.UnsupportedAppUsage;
@@ -229,13 +230,19 @@ public final class AudioRecordingConfiguration implements Parcelable {
* <p>This information is only available if the caller has the
* {@link android.Manifest.permission.MODIFY_AUDIO_ROUTING}
* permission.
- * <br>The result is -1 without the permission.
* @return the user id
+ * @throws SecurityException Thrown if the caller is missing the MODIFY_AUDIO_ROUTING permission
*
* @hide
*/
@SystemApi
- public int getClientUid() { return mClientUid; }
+ @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
+ public int getClientUid() {
+ if (mClientUid == -1) {
+ throw new SecurityException("MODIFY_AUDIO_ROUTING permission is missing");
+ }
+ return mClientUid;
+ }
/**
* Returns information about the audio input device used for this recording.
diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl
index 1f97be5c3f4d..64c5c05b5621 100644
--- a/media/java/android/media/IAudioService.aidl
+++ b/media/java/android/media/IAudioService.aidl
@@ -282,6 +282,10 @@ interface IAudioService {
List<AudioDeviceAddress> getDevicesForAttributes(in AudioAttributes attributes);
+ int setAllowedCapturePolicy(in int capturePolicy);
+
+ int getAllowedCapturePolicy();
+
// WARNING: read warning at top of file, new methods that need to be used by native
// code via IAudioManager.h need to be added to the top section.
}
diff --git a/media/java/android/media/IMediaRoute2Provider.aidl b/media/java/android/media/IMediaRoute2Provider.aidl
index a25aff6611ca..9131f3bc960d 100644
--- a/media/java/android/media/IMediaRoute2Provider.aidl
+++ b/media/java/android/media/IMediaRoute2Provider.aidl
@@ -18,6 +18,7 @@ package android.media;
import android.content.Intent;
import android.media.IMediaRoute2ProviderClient;
+import android.media.RouteDiscoveryPreference;
import android.os.Bundle;
/**
@@ -28,6 +29,7 @@ oneway interface IMediaRoute2Provider {
void requestCreateSession(String packageName, String routeId, long requestId,
in @nullable Bundle sessionHints);
void releaseSession(String sessionId);
+ void updateDiscoveryPreference(in RouteDiscoveryPreference discoveryPreference);
void selectRoute(String sessionId, String routeId);
void deselectRoute(String sessionId, String routeId);
@@ -35,5 +37,4 @@ oneway interface IMediaRoute2Provider {
void notifyControlRequestSent(String id, in Intent request);
void requestSetVolume(String id, int volume);
- void requestUpdateVolume(String id, int delta);
}
diff --git a/media/java/android/media/IMediaRouterService.aidl b/media/java/android/media/IMediaRouterService.aidl
index dac0fba876be..6fef46889742 100644
--- a/media/java/android/media/IMediaRouterService.aidl
+++ b/media/java/android/media/IMediaRouterService.aidl
@@ -52,7 +52,6 @@ interface IMediaRouterService {
void sendControlRequest(IMediaRouter2Client client, in MediaRoute2Info route,
in Intent request);
void requestSetVolume2(IMediaRouter2Client client, in MediaRoute2Info route, int volume);
- void requestUpdateVolume2(IMediaRouter2Client client, in MediaRoute2Info route, int direction);
void requestCreateSession(IMediaRouter2Client client, in MediaRoute2Info route, int requestId,
in @nullable Bundle sessionHints);
@@ -70,8 +69,6 @@ interface IMediaRouterService {
void requestSetVolume2Manager(IMediaRouter2Manager manager,
in MediaRoute2Info route, int volume);
- void requestUpdateVolume2Manager(IMediaRouter2Manager manager,
- in MediaRoute2Info route, int direction);
List<RoutingSessionInfo> getActiveSessions(IMediaRouter2Manager manager);
void selectClientRoute(IMediaRouter2Manager manager,
diff --git a/media/java/android/media/MediaRoute2Info.java b/media/java/android/media/MediaRoute2Info.java
index dd01243629c3..0e88c75e6d25 100644
--- a/media/java/android/media/MediaRoute2Info.java
+++ b/media/java/android/media/MediaRoute2Info.java
@@ -21,6 +21,7 @@ import static android.media.MediaRouter2Utils.toUniqueId;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.TestApi;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcel;
@@ -197,6 +198,7 @@ public final class MediaRoute2Info implements Parcelable {
final List<String> mFeatures;
@DeviceType
final int mDeviceType;
+ final boolean mIsSystem;
final Uri mIconUri;
final CharSequence mDescription;
@ConnectionState
@@ -213,6 +215,7 @@ public final class MediaRoute2Info implements Parcelable {
mName = builder.mName;
mFeatures = builder.mFeatures;
mDeviceType = builder.mDeviceType;
+ mIsSystem = builder.mIsSystem;
mIconUri = builder.mIconUri;
mDescription = builder.mDescription;
mConnectionState = builder.mConnectionState;
@@ -229,6 +232,7 @@ public final class MediaRoute2Info implements Parcelable {
mName = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in);
mFeatures = in.createStringArrayList();
mDeviceType = in.readInt();
+ mIsSystem = in.readBoolean();
mIconUri = in.readParcelable(null);
mDescription = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in);
mConnectionState = in.readInt();
@@ -287,6 +291,17 @@ public final class MediaRoute2Info implements Parcelable {
}
/**
+ * Returns whether the route is a system route or not.
+ * <p>
+ * System routes are media routes directly controlled by the system
+ * such as phone speaker, wired headset, and Bluetooth devices.
+ * </p>
+ */
+ public boolean isSystemRoute() {
+ return mIsSystem;
+ }
+
+ /**
* Gets the URI of the icon representing this route.
* <p>
* This icon will be used in picker UIs if available.
@@ -360,6 +375,7 @@ public final class MediaRoute2Info implements Parcelable {
* @hide
*/
@NonNull
+ @TestApi
public String getOriginalId() {
return mId;
}
@@ -423,6 +439,7 @@ public final class MediaRoute2Info implements Parcelable {
&& Objects.equals(mName, other.mName)
&& Objects.equals(mFeatures, other.mFeatures)
&& (mDeviceType == other.mDeviceType)
+ && (mIsSystem == other.mIsSystem)
&& Objects.equals(mIconUri, other.mIconUri)
&& Objects.equals(mDescription, other.mDescription)
&& (mConnectionState == other.mConnectionState)
@@ -436,7 +453,7 @@ public final class MediaRoute2Info implements Parcelable {
@Override
public int hashCode() {
// Note: mExtras is not included.
- return Objects.hash(mId, mName, mFeatures, mDeviceType, mIconUri, mDescription,
+ return Objects.hash(mId, mName, mFeatures, mDeviceType, mIsSystem, mIconUri, mDescription,
mConnectionState, mClientPackageName, mVolumeHandling, mVolumeMax, mVolume,
mProviderId);
}
@@ -473,6 +490,7 @@ public final class MediaRoute2Info implements Parcelable {
TextUtils.writeToParcel(mName, dest, flags);
dest.writeStringList(mFeatures);
dest.writeInt(mDeviceType);
+ dest.writeBoolean(mIsSystem);
dest.writeParcelable(mIconUri, flags);
TextUtils.writeToParcel(mDescription, dest, flags);
dest.writeInt(mConnectionState);
@@ -494,6 +512,7 @@ public final class MediaRoute2Info implements Parcelable {
@DeviceType
int mDeviceType = DEVICE_TYPE_UNKNOWN;
+ boolean mIsSystem;
Uri mIconUri;
CharSequence mDescription;
@ConnectionState
@@ -540,6 +559,7 @@ public final class MediaRoute2Info implements Parcelable {
mName = routeInfo.mName;
mFeatures = new ArrayList<>(routeInfo.mFeatures);
mDeviceType = routeInfo.mDeviceType;
+ mIsSystem = routeInfo.mIsSystem;
mIconUri = routeInfo.mIconUri;
mDescription = routeInfo.mDescription;
mConnectionState = routeInfo.mConnectionState;
@@ -608,6 +628,16 @@ public final class MediaRoute2Info implements Parcelable {
}
/**
+ * Sets whether the route is a system route or not.
+ * @hide
+ */
+ @NonNull
+ public Builder setSystemRoute(boolean isSystem) {
+ mIsSystem = isSystem;
+ return this;
+ }
+
+ /**
* Sets the URI of the icon representing this route.
* <p>
* This icon will be used in picker UIs if available.
diff --git a/media/java/android/media/MediaRoute2ProviderInfo.java b/media/java/android/media/MediaRoute2ProviderInfo.java
index c9a2ec7ed095..afe002edfbcd 100644
--- a/media/java/android/media/MediaRoute2ProviderInfo.java
+++ b/media/java/android/media/MediaRoute2ProviderInfo.java
@@ -180,6 +180,23 @@ public final class MediaRoute2ProviderInfo implements Parcelable {
}
/**
+ * Sets whether the provider provides system routes or not
+ */
+ @NonNull
+ public Builder setSystemRouteProvider(boolean isSystem) {
+ int count = mRoutes.size();
+ for (int i = 0; i < count; i++) {
+ MediaRoute2Info route = mRoutes.valueAt(i);
+ if (route.isSystemRoute() != isSystem) {
+ mRoutes.setValueAt(i, new MediaRoute2Info.Builder(route)
+ .setSystemRoute(isSystem)
+ .build());
+ }
+ }
+ return this;
+ }
+
+ /**
* Adds a route to the provider
*/
@NonNull
diff --git a/media/java/android/media/MediaRoute2ProviderService.java b/media/java/android/media/MediaRoute2ProviderService.java
index e39b7bc59148..20a59bba54c6 100644
--- a/media/java/android/media/MediaRoute2ProviderService.java
+++ b/media/java/android/media/MediaRoute2ProviderService.java
@@ -46,13 +46,20 @@ import java.util.concurrent.atomic.AtomicBoolean;
/**
* Base class for media route provider services.
* <p>
+ * Media route provider services are used to publish {@link MediaRoute2Info media routes} such as
+ * speakers, TVs, etc. The routes are published by calling {@link #notifyRoutes(Collection)}.
+ * Media apps which use {@link MediaRouter2} can request to play their media on the routes.
+ * </p><p>
+ * When {@link MediaRouter2 media router} wants to play media on a route,
+ * {@link #onCreateSession(String, String, long, Bundle)} will be called to handle the request.
+ * A session can be considered as a group of currently selected routes for each connection.
+ * Create and manage the sessions by yourself, and notify the {@link RoutingSessionInfo
+ * session infos} when there are any changes.
+ * </p><p>
* The system media router service will bind to media route provider services when a
* {@link RouteDiscoveryPreference discovery preference} is registered via
- * a {@link MediaRouter2 media router} by an application.
- * </p><p>
- * To implement your own media route provider service, extend this class and
- * override {@link #onDiscoveryPreferenceChanged(RouteDiscoveryPreference)} to publish
- * {@link MediaRoute2Info routes}.
+ * a {@link MediaRouter2 media router} by an application. See
+ * {@link #onDiscoveryPreferenceChanged(RouteDiscoveryPreference)} for the details.
* </p>
*/
public abstract class MediaRoute2ProviderService extends Service {
@@ -118,22 +125,15 @@ public abstract class MediaRoute2ProviderService extends Service {
public abstract void onControlRequest(@NonNull String routeId, @NonNull Intent request);
/**
- * Called when requestSetVolume is called on a route of the provider
+ * Called when requestSetVolume is called on a route of the provider.
*
* @param routeId the id of the route
* @param volume the target volume
+ * @see MediaRoute2Info#getVolumeMax()
*/
public abstract void onSetVolume(@NonNull String routeId, int volume);
/**
- * Called when requestUpdateVolume is called on a route of the provider
- *
- * @param routeId id of the route
- * @param delta the delta to add to the current volume
- */
- public abstract void onUpdateVolume(@NonNull String routeId, int delta);
-
- /**
* Gets information of the session with the given id.
*
* @param sessionId id of the session
@@ -370,7 +370,6 @@ public abstract class MediaRoute2ProviderService extends Service {
*
* @param preference the new discovery preference
*/
- // TODO: This method needs tests.
public void onDiscoveryPreferenceChanged(@NonNull RouteDiscoveryPreference preference) {}
/**
@@ -456,6 +455,16 @@ public abstract class MediaRoute2ProviderService extends Service {
}
@Override
+ public void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference) {
+ if (!checkCallerisSystem()) {
+ return;
+ }
+ mHandler.sendMessage(obtainMessage(
+ MediaRoute2ProviderService::onDiscoveryPreferenceChanged,
+ MediaRoute2ProviderService.this, discoveryPreference));
+ }
+
+ @Override
public void selectRoute(@NonNull String sessionId, String routeId) {
if (!checkCallerisSystem()) {
return;
@@ -511,14 +520,5 @@ public abstract class MediaRoute2ProviderService extends Service {
mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onSetVolume,
MediaRoute2ProviderService.this, routeId, volume));
}
-
- @Override
- public void requestUpdateVolume(String routeId, int delta) {
- if (!checkCallerisSystem()) {
- return;
- }
- mHandler.sendMessage(obtainMessage(MediaRoute2ProviderService::onUpdateVolume,
- MediaRoute2ProviderService.this, routeId, delta));
- }
}
}
diff --git a/media/java/android/media/MediaRouter2.java b/media/java/android/media/MediaRouter2.java
index 7b9a44f71473..d7b74df0a5e6 100644
--- a/media/java/android/media/MediaRouter2.java
+++ b/media/java/android/media/MediaRouter2.java
@@ -182,11 +182,16 @@ public class MediaRouter2 {
Client2 client = new Client2();
try {
mMediaRouterService.registerClient2(client, mPackageName);
- updateDiscoveryRequestLocked();
- mMediaRouterService.setDiscoveryRequest2(client, mDiscoveryPreference);
mClient = client;
} catch (RemoteException ex) {
- Log.e(TAG, "Unable to register media router.", ex);
+ Log.e(TAG, "registerRouteCallback: Unable to register client.", ex);
+ }
+ }
+ if (mClient != null && updateDiscoveryPreferenceIfNeededLocked()) {
+ try {
+ mMediaRouterService.setDiscoveryRequest2(mClient, mDiscoveryPreference);
+ } catch (RemoteException ex) {
+ Log.e(TAG, "registerRouteCallback: Unable to set discovery request.");
}
}
}
@@ -209,28 +214,47 @@ public class MediaRouter2 {
}
synchronized (sRouterLock) {
- if (mRouteCallbackRecords.size() == 0 && mClient != null) {
- try {
- mMediaRouterService.unregisterClient2(mClient);
- } catch (RemoteException ex) {
- Log.e(TAG, "Unable to unregister media router.", ex);
+ if (mClient != null) {
+ if (updateDiscoveryPreferenceIfNeededLocked()) {
+ try {
+ mMediaRouterService.setDiscoveryRequest2(mClient, mDiscoveryPreference);
+ } catch (RemoteException ex) {
+ Log.e(TAG, "unregisterRouteCallback: Unable to set discovery request.");
+ }
+ }
+ if (mRouteCallbackRecords.size() == 0) {
+ try {
+ mMediaRouterService.unregisterClient2(mClient);
+ } catch (RemoteException ex) {
+ Log.e(TAG, "Unable to unregister media router.", ex);
+ }
}
- //TODO: Clean up mRoutes. (onHandler?)
+ mShouldUpdateRoutes = true;
mClient = null;
}
}
}
- private void updateDiscoveryRequestLocked() {
- mDiscoveryPreference = new RouteDiscoveryPreference.Builder(
+ private boolean updateDiscoveryPreferenceIfNeededLocked() {
+ RouteDiscoveryPreference newDiscoveryPreference = new RouteDiscoveryPreference.Builder(
mRouteCallbackRecords.stream().map(record -> record.mPreference).collect(
Collectors.toList())).build();
+ if (Objects.equals(mDiscoveryPreference, newDiscoveryPreference)) {
+ return false;
+ }
+ mDiscoveryPreference = newDiscoveryPreference;
+ mShouldUpdateRoutes = true;
+ return true;
}
/**
* Gets the unmodifiable list of {@link MediaRoute2Info routes} currently
* known to the media router.
+ * <p>
+ * {@link MediaRoute2Info#isSystemRoute() System routes} such as phone speaker,
+ * Bluetooth devices are always included in the list.
* Please note that the list can be changed before callbacks are invoked.
+ * </p>
*
* @return the list of routes that contains at least one of the route features in discovery
* preferences registered by the application
@@ -243,7 +267,8 @@ public class MediaRouter2 {
List<MediaRoute2Info> filteredRoutes = new ArrayList<>();
for (MediaRoute2Info route : mRoutes.values()) {
- if (route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
+ if (route.isSystemRoute()
+ || route.hasAnyFeatures(mDiscoveryPreference.getPreferredFeatures())) {
filteredRoutes.add(route);
}
}
@@ -307,12 +332,18 @@ public class MediaRouter2 {
* with the given route.
*
* @param route the route you want to create a controller with.
+ * @throws IllegalArgumentException if the given route is
+ * {@link MediaRoute2Info#isSystemRoute() system route}
*
* @see RoutingControllerCallback#onControllerCreated
* @see RoutingControllerCallback#onControllerCreationFailed
*/
public void requestCreateController(@NonNull MediaRoute2Info route) {
Objects.requireNonNull(route, "route must not be null");
+ if (route.isSystemRoute()) {
+ throw new IllegalArgumentException("Can't create a route controller with "
+ + "a system route. Use getSystemController().");
+ }
// TODO: Check the given route exists
final int requestId;
@@ -431,31 +462,6 @@ public class MediaRouter2 {
}
}
- /**
- * Requests an incremental volume update for the route asynchronously.
- * <p>
- * It may have no effect if the route is currently not selected.
- * </p>
- *
- * @param delta The delta to add to the current volume.
- * @hide
- */
- public void requestUpdateVolume(@NonNull MediaRoute2Info route, int delta) {
- Objects.requireNonNull(route, "route must not be null");
-
- Client2 client;
- synchronized (sRouterLock) {
- client = mClient;
- }
- if (client != null) {
- try {
- mMediaRouterService.requestUpdateVolume2(client, route, delta);
- } catch (RemoteException ex) {
- Log.e(TAG, "Unable to send control request.", ex);
- }
- }
- }
-
void addRoutesOnHandler(List<MediaRoute2Info> routes) {
// TODO: When onRoutesAdded is first called,
// 1) clear mRoutes before adding the routes
diff --git a/media/java/android/media/MediaRouter2Manager.java b/media/java/android/media/MediaRouter2Manager.java
index 61e2f77b7d2e..b1f930d0f2cc 100644
--- a/media/java/android/media/MediaRouter2Manager.java
+++ b/media/java/android/media/MediaRouter2Manager.java
@@ -161,14 +161,15 @@ public class MediaRouter2Manager {
public List<MediaRoute2Info> getAvailableRoutes(@NonNull String packageName) {
Objects.requireNonNull(packageName, "packageName must not be null");
+ List<MediaRoute2Info> routes = new ArrayList<>();
+
List<String> preferredFeatures = mPreferredFeaturesMap.get(packageName);
if (preferredFeatures == null) {
- return Collections.emptyList();
+ preferredFeatures = Collections.emptyList();
}
- List<MediaRoute2Info> routes = new ArrayList<>();
synchronized (mRoutesLock) {
for (MediaRoute2Info route : mRoutes.values()) {
- if (route.hasAnyFeatures(preferredFeatures)) {
+ if (route.isSystemRoute() || route.hasAnyFeatures(preferredFeatures)) {
routes.add(route);
}
}
@@ -293,30 +294,6 @@ public class MediaRouter2Manager {
}
}
- /**
- * Requests an incremental volume update for the route asynchronously.
- * <p>
- * It may have no effect if the route is currently not selected.
- * </p>
- *
- * @param delta The delta to add to the current volume.
- */
- public void requestUpdateVolume(@NonNull MediaRoute2Info route, int delta) {
- Objects.requireNonNull(route, "route must not be null");
-
- Client client;
- synchronized (sLock) {
- client = mClient;
- }
- if (client != null) {
- try {
- mMediaRouterService.requestUpdateVolume2Manager(client, route, delta);
- } catch (RemoteException ex) {
- Log.e(TAG, "Unable to send control request.", ex);
- }
- }
- }
-
void addRoutesOnHandler(List<MediaRoute2Info> routes) {
synchronized (mRoutesLock) {
for (MediaRoute2Info route : routes) {
diff --git a/media/java/android/media/RouteDiscoveryPreference.java b/media/java/android/media/RouteDiscoveryPreference.java
index 7ec1123ee19c..ebcb9ed342e5 100644
--- a/media/java/android/media/RouteDiscoveryPreference.java
+++ b/media/java/android/media/RouteDiscoveryPreference.java
@@ -31,7 +31,7 @@ import java.util.Objects;
import java.util.Set;
/**
- * A media route discovery preference describing the kinds of routes that media router
+ * A media route discovery preference describing the kinds of routes that media router
* would like to discover and whether to perform active scanning.
*
* @see MediaRouter2#registerRouteCallback
@@ -58,6 +58,7 @@ public final class RouteDiscoveryPreference implements Parcelable {
private final Bundle mExtras;
/**
+ * An empty discovery preference.
* @hide
*/
public static final RouteDiscoveryPreference EMPTY =
diff --git a/media/java/android/media/audiopolicy/AudioVolumeGroupChangeHandler.java b/media/java/android/media/audiopolicy/AudioVolumeGroupChangeHandler.java
index 074188e01000..adf4d3dcfa09 100644
--- a/media/java/android/media/audiopolicy/AudioVolumeGroupChangeHandler.java
+++ b/media/java/android/media/audiopolicy/AudioVolumeGroupChangeHandler.java
@@ -157,9 +157,7 @@ public class AudioVolumeGroupChangeHandler {
Handler handler = eventHandler.handler();
if (handler != null) {
Message m = handler.obtainMessage(what, arg1, arg2, obj);
- if (what != AUDIOVOLUMEGROUP_EVENT_NEW_LISTENER) {
- handler.removeMessages(what);
- }
+ // Do not remove previous messages, as we would lose notification of group changes
handler.sendMessage(m);
}
}
diff --git a/media/java/android/media/session/MediaSessionManager.java b/media/java/android/media/session/MediaSessionManager.java
index 5ef466dfd0e9..69be8b307950 100644
--- a/media/java/android/media/session/MediaSessionManager.java
+++ b/media/java/android/media/session/MediaSessionManager.java
@@ -61,6 +61,7 @@ import java.util.concurrent.Executor;
* @see MediaSession
* @see MediaController
*/
+// TODO: (jinpark) Add API for getting and setting session policies from MediaSessionService.
@SystemService(Context.MEDIA_SESSION_SERVICE)
public final class MediaSessionManager {
private static final String TAG = "SessionManager";
diff --git a/media/java/android/media/soundtrigger/SoundTriggerDetector.java b/media/java/android/media/soundtrigger/SoundTriggerDetector.java
index 118f65c214e1..08953392ca18 100644
--- a/media/java/android/media/soundtrigger/SoundTriggerDetector.java
+++ b/media/java/android/media/soundtrigger/SoundTriggerDetector.java
@@ -113,7 +113,7 @@ public final class SoundTriggerDetector {
* This capability may or may not be supported by the system, and support can be queried
* by calling {@link SoundTriggerManager#getModuleProperties()} and checking
* {@link ModuleProperties#audioCapabilities}. The corresponding capabilities field for
- * this flag is {@link SoundTrigger.ModuleProperties#CAPABILITY_ECHO_CANCELLATION}.
+ * this flag is {@link SoundTrigger.ModuleProperties#AUDIO_CAPABILITY_ECHO_CANCELLATION}.
* If this flag is passed without the audio capability supported, there will be no audio effect
* applied.
*/
@@ -125,8 +125,9 @@ public final class SoundTriggerDetector {
* This capability may or may not be supported by the system, and support can be queried
* by calling {@link SoundTriggerManager#getModuleProperties()} and checking
* {@link ModuleProperties#audioCapabilities}. The corresponding capabilities field for
- * this flag is {@link SoundTrigger.ModuleProperties#CAPABILITY_NOISE_SUPPRESSION}. If this flag
- * is passed without the audio capability supported, there will be no audio effect applied.
+ * this flag is {@link SoundTrigger.ModuleProperties#AUDIO_CAPABILITY_NOISE_SUPPRESSION}.
+ * If this flag is passed without the audio capability supported, there will be no audio effect
+ * applied.
*/
public static final int RECOGNITION_FLAG_ENABLE_AUDIO_NOISE_SUPPRESSION = 0x8;
@@ -296,10 +297,10 @@ public final class SoundTriggerDetector {
int audioCapabilities = 0;
if ((recognitionFlags & RECOGNITION_FLAG_ENABLE_AUDIO_ECHO_CANCELLATION) != 0) {
- audioCapabilities |= SoundTrigger.ModuleProperties.CAPABILITY_ECHO_CANCELLATION;
+ audioCapabilities |= SoundTrigger.ModuleProperties.AUDIO_CAPABILITY_ECHO_CANCELLATION;
}
if ((recognitionFlags & RECOGNITION_FLAG_ENABLE_AUDIO_NOISE_SUPPRESSION) != 0) {
- audioCapabilities |= SoundTrigger.ModuleProperties.CAPABILITY_NOISE_SUPPRESSION;
+ audioCapabilities |= SoundTrigger.ModuleProperties.AUDIO_CAPABILITY_NOISE_SUPPRESSION;
}
int status;
diff --git a/media/java/android/media/soundtrigger/SoundTriggerManager.java b/media/java/android/media/soundtrigger/SoundTriggerManager.java
index dd4dac223a86..6a8483c58276 100644
--- a/media/java/android/media/soundtrigger/SoundTriggerManager.java
+++ b/media/java/android/media/soundtrigger/SoundTriggerManager.java
@@ -173,8 +173,13 @@ public final class SoundTriggerManager {
}
/**
- * Factory constructor to create a SoundModel instance for use with methods in this
- * class.
+ * Factory constructor to a voice model to be used with {@link SoundTriggerManager}
+ *
+ * @param modelUuid Unique identifier associated with the model.
+ * @param vendorUuid Unique identifier associated the calling vendor.
+ * @param data Model's data.
+ * @param version Version identifier for the model.
+ * @return Voice model
*/
@NonNull
public static Model create(@NonNull UUID modelUuid, @NonNull UUID vendorUuid,
@@ -186,8 +191,12 @@ public final class SoundTriggerManager {
}
/**
- * Factory constructor to create a SoundModel instance for use with methods in this
- * class.
+ * Factory constructor to a voice model to be used with {@link SoundTriggerManager}
+ *
+ * @param modelUuid Unique identifier associated with the model.
+ * @param vendorUuid Unique identifier associated the calling vendor.
+ * @param data Model's data.
+ * @return Voice model
*/
@NonNull
public static Model create(@NonNull UUID modelUuid, @NonNull UUID vendorUuid,
@@ -195,20 +204,40 @@ public final class SoundTriggerManager {
return create(modelUuid, vendorUuid, data, -1);
}
+ /**
+ * Get the model's unique identifier
+ *
+ * @return UUID associated with the model
+ */
@NonNull
public UUID getModelUuid() {
return mGenericSoundModel.uuid;
}
+ /**
+ * Get the model's vendor identifier
+ *
+ * @return UUID associated with the vendor of the model
+ */
@NonNull
public UUID getVendorUuid() {
return mGenericSoundModel.vendorUuid;
}
+ /**
+ * Get the model's version
+ *
+ * @return Version associated with the model
+ */
public int getVersion() {
return mGenericSoundModel.version;
}
+ /**
+ * Get the underlying model data
+ *
+ * @return Backing data of the model
+ */
@Nullable
public byte[] getModelData() {
return mGenericSoundModel.data;
diff --git a/media/java/android/media/tv/TvContract.java b/media/java/android/media/tv/TvContract.java
index 09b755912c43..433c6227cd5f 100644
--- a/media/java/android/media/tv/TvContract.java
+++ b/media/java/android/media/tv/TvContract.java
@@ -1109,6 +1109,24 @@ public final class TvContract {
* <p>Type: TEXT
*/
String COLUMN_SERIES_ID = "series_id";
+
+ /**
+ * The split ID of this TV program for multi-part content, as a URI.
+ *
+ * <p>A content may consist of multiple programs within the same channel or over several
+ * channels. For example, a film might be divided into two parts interrupted by a news in
+ * the middle or a longer sport event might be split into several parts over several
+ * channels. The split ID is used to identify all the programs in the same multi-part
+ * content. Suitable URIs include
+ * <ul>
+ * <li>{@code crid://<CRIDauthority>/<data>#<IMI>} from ETSI TS 102 323
+ * </ul>
+ *
+ * <p>Can be empty.
+ *
+ * <p>Type: TEXT
+ */
+ String COLUMN_SPLIT_ID = "split_id";
}
/**
@@ -1677,6 +1695,7 @@ public final class TvContract {
TYPE_ATSC_T,
TYPE_ATSC_C,
TYPE_ATSC_M_H,
+ TYPE_ATSC3_T,
TYPE_ISDB_T,
TYPE_ISDB_TB,
TYPE_ISDB_S,
@@ -1801,6 +1820,13 @@ public final class TvContract {
public static final String TYPE_ATSC_M_H = "TYPE_ATSC_M_H";
/**
+ * The channel type for ATSC3.0 (terrestrial).
+ *
+ * @see #COLUMN_TYPE
+ */
+ public static final String TYPE_ATSC3_T = "TYPE_ATSC3_T";
+
+ /**
* The channel type for ISDB-T (terrestrial).
*
* @see #COLUMN_TYPE
@@ -2022,6 +2048,7 @@ public final class TvContract {
* {@link #TYPE_ATSC_C},
* {@link #TYPE_ATSC_M_H},
* {@link #TYPE_ATSC_T},
+ * {@link #TYPE_ATSC3_T},
* {@link #TYPE_CMMB},
* {@link #TYPE_DTMB},
* {@link #TYPE_DVB_C},
@@ -2407,6 +2434,22 @@ public final class TvContract {
*/
public static final String COLUMN_TRANSIENT = "transient";
+ /**
+ * The global content ID of this TV channel, as a URI.
+ *
+ * <p>A globally unique URI that identifies this TV channel, if applicable. Suitable URIs
+ * include
+ * <ul>
+ * <li>{@code globalServiceId} from ATSC A/331. ex {@code https://doi.org/10.5239/7E4E-B472}
+ * <li>Other broadcast ID provider. ex {@code http://example.com/tv_channel/1234}
+ * </ul>
+ *
+ * <p>Can be empty.
+ *
+ * <p>Type: TEXT
+ */
+ public static final String COLUMN_GLOBAL_CONTENT_ID = "global_content_id";
+
private Channels() {}
/**
@@ -2562,6 +2605,37 @@ public final class TvContract {
*/
public static final String COLUMN_RECORDING_PROHIBITED = "recording_prohibited";
+ /**
+ * The event ID of this TV program.
+ *
+ * <p>It is used to identify the current TV program in the same channel, if applicable.
+ * Use the same coding for {@code event_id} in the underlying broadcast standard if it
+ * is defined there (e.g. ATSC A/65, ETSI EN 300 468 and ARIB STD-B10).
+ *
+ * <p>This is a required field only if the underlying broadcast standard defines the same
+ * name field. Otherwise, leave empty.
+ *
+ * <p>Type: INTEGER
+ */
+ public static final String COLUMN_EVENT_ID = "event_id";
+
+ /**
+ * The global content ID of this TV program, as a URI.
+ *
+ * <p>A globally unique ID that identifies this TV program, if applicable. Suitable URIs
+ * include
+ * <ul>
+ * <li>{@code crid://<CRIDauthority>/<data>} from ETSI TS 102 323
+ * <li>{@code globalContentId} from ATSC A/332
+ * <li>Other broadcast ID provider. ex {@code http://example.com/tv_program/1234}
+ * </ul>
+ *
+ * <p>Can be empty.
+ *
+ * <p>Type: TEXT
+ */
+ public static final String COLUMN_GLOBAL_CONTENT_ID = "global_content_id";
+
private Programs() {}
/** Canonical genres for TV programs. */
diff --git a/media/java/android/media/tv/TvInputManager.java b/media/java/android/media/tv/TvInputManager.java
index 2589521ca370..6bf9e19ae079 100644
--- a/media/java/android/media/tv/TvInputManager.java
+++ b/media/java/android/media/tv/TvInputManager.java
@@ -358,7 +358,6 @@ public final class TvInputManager {
*
* @hide
*/
- @SystemApi
public static final int UNKNOWN_CLIENT_PID = -1;
/**
@@ -1588,7 +1587,6 @@ public final class TvInputManager {
*
* @hide
*/
- @SystemApi
@RequiresPermission(android.Manifest.permission.TUNER_RESOURCE_ACCESS)
public int getClientPid(@NonNull String sessionId) {
return getClientPidInternal(sessionId);
diff --git a/media/java/android/media/tv/tuner/Tuner.java b/media/java/android/media/tv/tuner/Tuner.java
index 5e012447e9dd..3561f8393eea 100644
--- a/media/java/android/media/tv/tuner/Tuner.java
+++ b/media/java/android/media/tv/tuner/Tuner.java
@@ -74,6 +74,8 @@ public class Tuner implements AutoCloseable {
private List<Integer> mFrontendIds;
private Frontend mFrontend;
private EventHandler mHandler;
+ @Nullable
+ private FrontendInfo mFrontendInfo;
private List<Integer> mLnbIds;
private Lnb mLnb;
@@ -97,6 +99,7 @@ public class Tuner implements AutoCloseable {
public Tuner(@NonNull Context context, @NonNull String tvInputSessionId,
@TvInputService.PriorityHintUseCaseType int useCase,
@Nullable OnResourceLostListener listener) {
+ nativeSetup();
mContext = context;
}
@@ -185,7 +188,7 @@ public class Tuner implements AutoCloseable {
/**
* Listener for resource lost.
*
- * <p>Resource is reclaimed and tuner instance is forced to close.
+ * <p>Insufficient resources are reclaimed by higher priority clients.
*/
public interface OnResourceLostListener {
/**
@@ -292,6 +295,7 @@ public class Tuner implements AutoCloseable {
@Result
public int tune(@NonNull FrontendSettings settings) {
TunerUtils.checkTunerPermission(mContext);
+ mFrontendInfo = null;
return nativeTune(settings.getType(), settings);
}
@@ -333,6 +337,7 @@ public class Tuner implements AutoCloseable {
}
mScanCallback = scanCallback;
mScanCallbackExecutor = executor;
+ mFrontendInfo = null;
return nativeScan(settings.getType(), settings, scanType);
}
@@ -468,7 +473,10 @@ public class Tuner implements AutoCloseable {
if (mFrontend == null) {
throw new IllegalStateException("frontend is not initialized");
}
- return nativeGetFrontendInfo(mFrontend.mId);
+ if (mFrontendInfo == null) {
+ mFrontendInfo = nativeGetFrontendInfo(mFrontend.mId);
+ }
+ return mFrontendInfo;
}
/**
diff --git a/media/java/android/media/tv/tuner/frontend/Atsc3FrontendSettings.java b/media/java/android/media/tv/tuner/frontend/Atsc3FrontendSettings.java
index 85f3f72020d0..b40ab00afb30 100644
--- a/media/java/android/media/tv/tuner/frontend/Atsc3FrontendSettings.java
+++ b/media/java/android/media/tv/tuner/frontend/Atsc3FrontendSettings.java
@@ -327,7 +327,7 @@ public class Atsc3FrontendSettings extends FrontendSettings {
*/
public static class Builder extends FrontendSettings.Builder<Builder> {
private int mBandwidth;
- private byte mDemodOutputFormat;
+ private int mDemodOutputFormat;
private Atsc3PlpSettings[] mPlpSettings;
private Builder() {
@@ -345,7 +345,7 @@ public class Atsc3FrontendSettings extends FrontendSettings {
* Sets Demod Output Format.
*/
@NonNull
- public Builder setDemodOutputFormat(byte demodOutputFormat) {
+ public Builder setDemodOutputFormat(@DemodOutputFormat int demodOutputFormat) {
mDemodOutputFormat = demodOutputFormat;
return this;
}
diff --git a/media/java/android/media/tv/tuner/frontend/DvbcFrontendSettings.java b/media/java/android/media/tv/tuner/frontend/DvbcFrontendSettings.java
index bfa4f3f027a4..705d5207cc5f 100644
--- a/media/java/android/media/tv/tuner/frontend/DvbcFrontendSettings.java
+++ b/media/java/android/media/tv/tuner/frontend/DvbcFrontendSettings.java
@@ -147,11 +147,11 @@ public class DvbcFrontendSettings extends FrontendSettings {
private final long mFec;
private final int mSymbolRate;
private final int mOuterFec;
- private final byte mAnnex;
+ private final int mAnnex;
private final int mSpectralInversion;
private DvbcFrontendSettings(int frequency, int modulation, long fec, int symbolRate,
- int outerFec, byte annex, int spectralInversion) {
+ int outerFec, int annex, int spectralInversion) {
super(frequency);
mModulation = modulation;
mFec = fec;
@@ -192,7 +192,7 @@ public class DvbcFrontendSettings extends FrontendSettings {
* Gets Annex.
*/
@Annex
- public byte getAnnex() {
+ public int getAnnex() {
return mAnnex;
}
/**
@@ -223,7 +223,7 @@ public class DvbcFrontendSettings extends FrontendSettings {
private long mFec;
private int mSymbolRate;
private int mOuterFec;
- private byte mAnnex;
+ private int mAnnex;
private int mSpectralInversion;
private Builder() {
@@ -265,7 +265,7 @@ public class DvbcFrontendSettings extends FrontendSettings {
* Sets Annex.
*/
@NonNull
- public Builder setAnnex(@Annex byte annex) {
+ public Builder setAnnex(@Annex int annex) {
mAnnex = annex;
return this;
}
diff --git a/media/java/android/mtp/MtpDatabase.java b/media/java/android/mtp/MtpDatabase.java
index f3c071a06eba..e6962a14a2d0 100755
--- a/media/java/android/mtp/MtpDatabase.java
+++ b/media/java/android/mtp/MtpDatabase.java
@@ -27,7 +27,9 @@ import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
+import android.graphics.Bitmap;
import android.media.ExifInterface;
+import android.media.ThumbnailUtils;
import android.net.Uri;
import android.os.BatteryManager;
import android.os.RemoteException;
@@ -49,6 +51,7 @@ import dalvik.system.CloseGuard;
import com.google.android.collect.Sets;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
@@ -71,6 +74,7 @@ import java.util.stream.IntStream;
*/
public class MtpDatabase implements AutoCloseable {
private static final String TAG = MtpDatabase.class.getSimpleName();
+ private static final int MAX_THUMB_SIZE = (200 * 1024);
private final Context mContext;
private final ContentProviderClient mMediaProvider;
@@ -722,6 +726,7 @@ public class MtpDatabase implements AutoCloseable {
return MtpConstants.RESPONSE_OK;
case MtpConstants.DEVICE_PROPERTY_IMAGE_SIZE:
// use screen size as max image size
+ // TODO(b/147721765): Add support for foldables/multi-display devices.
Display display = ((WindowManager) mContext.getSystemService(
Context.WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getMaximumSizeDimension();
@@ -802,6 +807,28 @@ public class MtpDatabase implements AutoCloseable {
return obj.getFormat();
}
+ private byte[] getThumbnailProcess(String path, Bitmap bitmap) {
+ try {
+ if (bitmap == null) {
+ Log.d(TAG, "getThumbnailProcess: Fail to generate thumbnail. Probably unsupported or corrupted image");
+ return null;
+ }
+
+ ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
+ bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteStream);
+
+ if (byteStream.size() > MAX_THUMB_SIZE)
+ return null;
+
+ byte[] byteArray = byteStream.toByteArray();
+
+ return byteArray;
+ } catch (OutOfMemoryError oomEx) {
+ Log.w(TAG, "OutOfMemoryError:" + oomEx);
+ }
+ return null;
+ }
+
@VisibleForNative
private boolean getThumbnailInfo(int handle, long[] outLongs) {
MtpStorageManager.MtpObject obj = mManager.getObject(handle);
@@ -824,6 +851,16 @@ public class MtpDatabase implements AutoCloseable {
} catch (IOException e) {
// ignore and fall through
}
+
+// Note: above formats will fall through and go on below thumbnail generation if Exif processing fails
+ case MtpConstants.FORMAT_PNG:
+ case MtpConstants.FORMAT_GIF:
+ case MtpConstants.FORMAT_BMP:
+ outLongs[0] = MAX_THUMB_SIZE;
+ // only non-zero Width & Height needed. Actual size will be retrieved upon getThumbnailData by Host
+ outLongs[1] = 320;
+ outLongs[2] = 240;
+ return true;
}
return false;
}
@@ -846,6 +883,17 @@ public class MtpDatabase implements AutoCloseable {
} catch (IOException e) {
// ignore and fall through
}
+
+// Note: above formats will fall through and go on below thumbnail generation if Exif processing fails
+ case MtpConstants.FORMAT_PNG:
+ case MtpConstants.FORMAT_GIF:
+ case MtpConstants.FORMAT_BMP:
+ {
+ Bitmap bitmap = ThumbnailUtils.createImageThumbnail(path, MediaStore.Images.Thumbnails.MINI_KIND);
+ byte[] byteArray = getThumbnailProcess(path, bitmap);
+
+ return byteArray;
+ }
}
return null;
}
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp
index 9b37f955fa17..71ba59c8a707 100644
--- a/media/jni/android_media_MediaCodec.cpp
+++ b/media/jni/android_media_MediaCodec.cpp
@@ -724,18 +724,21 @@ status_t JMediaCodec::getOutputFrame(
}
if (buffer->size() > 0) {
- // asC2Buffer clears internal reference, so set the reference again.
std::shared_ptr<C2Buffer> c2Buffer = buffer->asC2Buffer();
- buffer->copy(c2Buffer);
if (c2Buffer) {
+ // asC2Buffer clears internal reference, so set the reference again.
+ buffer->copy(c2Buffer);
switch (c2Buffer->data().type()) {
case C2BufferData::LINEAR: {
std::unique_ptr<JMediaCodecLinearBlock> context{new JMediaCodecLinearBlock};
context->mBuffer = c2Buffer;
ScopedLocalRef<jobject> linearBlock{env, env->NewObject(
gLinearBlockInfo.clazz, gLinearBlockInfo.ctorId)};
- env->SetLongField(
- linearBlock.get(), gLinearBlockInfo.contextId, (jlong)context.release());
+ env->CallVoidMethod(
+ linearBlock.get(),
+ gLinearBlockInfo.setInternalStateId,
+ (jlong)context.release(),
+ true);
env->SetObjectField(frame, gFields.outputFrameLinearBlockID, linearBlock.get());
break;
}
@@ -744,8 +747,11 @@ status_t JMediaCodec::getOutputFrame(
context->mBuffer = c2Buffer;
ScopedLocalRef<jobject> graphicBlock{env, env->NewObject(
gGraphicBlockInfo.clazz, gGraphicBlockInfo.ctorId)};
- env->SetLongField(
- graphicBlock.get(), gGraphicBlockInfo.contextId, (jlong)context.release());
+ env->CallVoidMethod(
+ graphicBlock.get(),
+ gGraphicBlockInfo.setInternalStateId,
+ (jlong)context.release(),
+ true);
env->SetObjectField(frame, gFields.outputFrameGraphicBlockID, graphicBlock.get());
break;
}
@@ -761,16 +767,22 @@ status_t JMediaCodec::getOutputFrame(
context->mLegacyBuffer = buffer;
ScopedLocalRef<jobject> linearBlock{env, env->NewObject(
gLinearBlockInfo.clazz, gLinearBlockInfo.ctorId)};
- env->SetLongField(
- linearBlock.get(), gLinearBlockInfo.contextId, (jlong)context.release());
+ env->CallVoidMethod(
+ linearBlock.get(),
+ gLinearBlockInfo.setInternalStateId,
+ (jlong)context.release(),
+ true);
env->SetObjectField(frame, gFields.outputFrameLinearBlockID, linearBlock.get());
} else {
std::unique_ptr<JMediaCodecGraphicBlock> context{new JMediaCodecGraphicBlock};
context->mLegacyBuffer = buffer;
ScopedLocalRef<jobject> graphicBlock{env, env->NewObject(
gGraphicBlockInfo.clazz, gGraphicBlockInfo.ctorId)};
- env->SetLongField(
- graphicBlock.get(), gGraphicBlockInfo.contextId, (jlong)context.release());
+ env->CallVoidMethod(
+ graphicBlock.get(),
+ gGraphicBlockInfo.setInternalStateId,
+ (jlong)context.release(),
+ true);
env->SetObjectField(frame, gFields.outputFrameGraphicBlockID, graphicBlock.get());
}
}
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp
index 1fbe7f42fff3..08c3f988e85e 100644
--- a/media/jni/android_media_tv_Tuner.cpp
+++ b/media/jni/android_media_tv_Tuner.cpp
@@ -322,6 +322,179 @@ jobject JTuner::openFrontendById(int id) {
(jint) jId);
}
+jobject JTuner::getAnalogFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps) {
+ jclass clazz = env->FindClass("android/media/tv/tuner/frontend/AnalogFrontendCapabilities");
+ jmethodID capsInit = env->GetMethodID(clazz, "<init>", "(II)V");
+
+ jint typeCap = caps.analogCaps().typeCap;
+ jint sifStandardCap = caps.analogCaps().sifStandardCap;
+ return env->NewObject(clazz, capsInit, typeCap, sifStandardCap);
+}
+
+jobject JTuner::getAtsc3FrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps) {
+ jclass clazz = env->FindClass("android/media/tv/tuner/frontend/Atsc3FrontendCapabilities");
+ jmethodID capsInit = env->GetMethodID(clazz, "<init>", "(IIIIII)V");
+
+ jint bandwidthCap = caps.atsc3Caps().bandwidthCap;
+ jint modulationCap = caps.atsc3Caps().modulationCap;
+ jint timeInterleaveModeCap = caps.atsc3Caps().timeInterleaveModeCap;
+ jint codeRateCap = caps.atsc3Caps().codeRateCap;
+ jint fecCap = caps.atsc3Caps().fecCap;
+ jint demodOutputFormatCap = caps.atsc3Caps().demodOutputFormatCap;
+
+ return env->NewObject(clazz, capsInit, bandwidthCap, modulationCap, timeInterleaveModeCap,
+ codeRateCap, fecCap, demodOutputFormatCap);
+}
+
+jobject JTuner::getAtscFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps) {
+ jclass clazz = env->FindClass("android/media/tv/tuner/frontend/AtscFrontendCapabilities");
+ jmethodID capsInit = env->GetMethodID(clazz, "<init>", "(I)V");
+
+ jint modulationCap = caps.atscCaps().modulationCap;
+
+ return env->NewObject(clazz, capsInit, modulationCap);
+}
+
+jobject JTuner::getDvbcFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps) {
+ jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbcFrontendCapabilities");
+ jmethodID capsInit = env->GetMethodID(clazz, "<init>", "(III)V");
+
+ jint modulationCap = caps.dvbcCaps().modulationCap;
+ jint fecCap = caps.dvbcCaps().fecCap;
+ jint annexCap = caps.dvbcCaps().annexCap;
+
+ return env->NewObject(clazz, capsInit, modulationCap, fecCap, annexCap);
+}
+
+jobject JTuner::getDvbsFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps) {
+ jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbsFrontendCapabilities");
+ jmethodID capsInit = env->GetMethodID(clazz, "<init>", "(IJI)V");
+
+ jint modulationCap = caps.dvbsCaps().modulationCap;
+ jlong innerfecCap = caps.dvbsCaps().innerfecCap;
+ jint standard = caps.dvbsCaps().standard;
+
+ return env->NewObject(clazz, capsInit, modulationCap, innerfecCap, standard);
+}
+
+jobject JTuner::getDvbtFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps) {
+ jclass clazz = env->FindClass("android/media/tv/tuner/frontend/DvbtFrontendCapabilities");
+ jmethodID capsInit = env->GetMethodID(clazz, "<init>", "(IIIIIIZZ)V");
+
+ jint transmissionModeCap = caps.dvbtCaps().transmissionModeCap;
+ jint bandwidthCap = caps.dvbtCaps().bandwidthCap;
+ jint constellationCap = caps.dvbtCaps().constellationCap;
+ jint coderateCap = caps.dvbtCaps().coderateCap;
+ jint hierarchyCap = caps.dvbtCaps().hierarchyCap;
+ jint guardIntervalCap = caps.dvbtCaps().guardIntervalCap;
+ jboolean isT2Supported = caps.dvbtCaps().isT2Supported;
+ jboolean isMisoSupported = caps.dvbtCaps().isMisoSupported;
+
+ return env->NewObject(clazz, capsInit, transmissionModeCap, bandwidthCap, constellationCap,
+ coderateCap, hierarchyCap, guardIntervalCap, isT2Supported, isMisoSupported);
+}
+
+jobject JTuner::getIsdbs3FrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps) {
+ jclass clazz = env->FindClass("android/media/tv/tuner/frontend/Isdbs3FrontendCapabilities");
+ jmethodID capsInit = env->GetMethodID(clazz, "<init>", "(II)V");
+
+ jint modulationCap = caps.isdbs3Caps().modulationCap;
+ jint coderateCap = caps.isdbs3Caps().coderateCap;
+
+ return env->NewObject(clazz, capsInit, modulationCap, coderateCap);
+}
+
+jobject JTuner::getIsdbsFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps) {
+ jclass clazz = env->FindClass("android/media/tv/tuner/frontend/IsdbsFrontendCapabilities");
+ jmethodID capsInit = env->GetMethodID(clazz, "<init>", "(II)V");
+
+ jint modulationCap = caps.isdbsCaps().modulationCap;
+ jint coderateCap = caps.isdbsCaps().coderateCap;
+
+ return env->NewObject(clazz, capsInit, modulationCap, coderateCap);
+}
+
+jobject JTuner::getIsdbtFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps) {
+ jclass clazz = env->FindClass("android/media/tv/tuner/frontend/IsdbtFrontendCapabilities");
+ jmethodID capsInit = env->GetMethodID(clazz, "<init>", "(IIIII)V");
+
+ jint modeCap = caps.isdbtCaps().modeCap;
+ jint bandwidthCap = caps.isdbtCaps().bandwidthCap;
+ jint modulationCap = caps.isdbtCaps().modulationCap;
+ jint coderateCap = caps.isdbtCaps().coderateCap;
+ jint guardIntervalCap = caps.isdbtCaps().guardIntervalCap;
+
+ return env->NewObject(clazz, capsInit, modeCap, bandwidthCap, modulationCap, coderateCap,
+ guardIntervalCap);
+}
+
+jobject JTuner::getFrontendInfo(int id) {
+ FrontendInfo feInfo;
+ Result res;
+ mTuner->getFrontendInfo(id, [&](Result r, const FrontendInfo& info) {
+ feInfo = info;
+ res = r;
+ });
+ if (res != Result::SUCCESS) {
+ return NULL;
+ }
+
+ JNIEnv *env = AndroidRuntime::getJNIEnv();
+ jclass clazz = env->FindClass("android/media/tv/tuner/frontend/FrontendInfo");
+ jmethodID infoInit = env->GetMethodID(clazz, "<init>",
+ "(IIIIIIII[ILandroid/media/tv/tuner/frontend/FrontendCapabilities;)V");
+
+ jint type = (jint) feInfo.type;
+ jint minFrequency = feInfo.minFrequency;
+ jint maxFrequency = feInfo.maxFrequency;
+ jint minSymbolRate = feInfo.minSymbolRate;
+ jint maxSymbolRate = feInfo.maxSymbolRate;
+ jint acquireRange = feInfo.acquireRange;
+ jint exclusiveGroupId = feInfo.exclusiveGroupId;
+ jintArray statusCaps = env->NewIntArray(feInfo.statusCaps.size());
+ env->SetIntArrayRegion(
+ statusCaps, 0, feInfo.statusCaps.size(),
+ reinterpret_cast<jint*>(&feInfo.statusCaps[0]));
+ FrontendInfo::FrontendCapabilities caps = feInfo.frontendCaps;
+
+ jobject jcaps = NULL;
+ switch(feInfo.type) {
+ case FrontendType::ANALOG:
+ jcaps = getAnalogFrontendCaps(env, caps);
+ break;
+ case FrontendType::ATSC3:
+ jcaps = getAtsc3FrontendCaps(env, caps);
+ break;
+ case FrontendType::ATSC:
+ jcaps = getAtscFrontendCaps(env, caps);
+ break;
+ case FrontendType::DVBC:
+ jcaps = getDvbcFrontendCaps(env, caps);
+ break;
+ case FrontendType::DVBS:
+ jcaps = getDvbsFrontendCaps(env, caps);
+ break;
+ case FrontendType::DVBT:
+ jcaps = getDvbtFrontendCaps(env, caps);
+ break;
+ case FrontendType::ISDBS:
+ jcaps = getIsdbsFrontendCaps(env, caps);
+ break;
+ case FrontendType::ISDBS3:
+ jcaps = getIsdbs3FrontendCaps(env, caps);
+ break;
+ case FrontendType::ISDBT:
+ jcaps = getIsdbtFrontendCaps(env, caps);
+ break;
+ default:
+ break;
+ }
+
+ return env->NewObject(
+ clazz, infoInit, (jint) id, type, minFrequency, maxFrequency, minSymbolRate,
+ maxSymbolRate, acquireRange, exclusiveGroupId, statusCaps, jcaps);
+}
+
jobject JTuner::getLnbIds() {
ALOGD("JTuner::getLnbIds()");
mTuner->getLnbIds([&](Result, const hidl_vec<FrontendId>& lnbIds) {
@@ -377,6 +550,15 @@ int JTuner::tune(const FrontendSettings& settings) {
return (int)result;
}
+int JTuner::stopTune() {
+ if (mFe == NULL) {
+ ALOGE("frontend is not initialized");
+ return (int)Result::INVALID_STATE;
+ }
+ Result result = mFe->stopTune();
+ return (int)result;
+}
+
int JTuner::scan(const FrontendSettings& settings, FrontendScanType scanType) {
if (mFe == NULL) {
ALOGE("frontend is not initialized");
@@ -386,6 +568,33 @@ int JTuner::scan(const FrontendSettings& settings, FrontendScanType scanType) {
return (int)result;
}
+int JTuner::stopScan() {
+ if (mFe == NULL) {
+ ALOGE("frontend is not initialized");
+ return (int)Result::INVALID_STATE;
+ }
+ Result result = mFe->stopScan();
+ return (int)result;
+}
+
+int JTuner::setLnb(int id) {
+ if (mFe == NULL) {
+ ALOGE("frontend is not initialized");
+ return (int)Result::INVALID_STATE;
+ }
+ Result result = mFe->setLnb(id);
+ return (int)result;
+}
+
+int JTuner::setLna(bool enable) {
+ if (mFe == NULL) {
+ ALOGE("frontend is not initialized");
+ return (int)Result::INVALID_STATE;
+ }
+ Result result = mFe->setLna(enable);
+ return (int)result;
+}
+
bool JTuner::openDemux() {
if (mTuner == nullptr) {
return false;
@@ -1079,8 +1288,9 @@ static int android_media_tv_Tuner_tune(JNIEnv *env, jobject thiz, jint type, job
return tuner->tune(getFrontendSettings(env, type, settings));
}
-static int android_media_tv_Tuner_stop_tune(JNIEnv*, jobject) {
- return 0;
+static int android_media_tv_Tuner_stop_tune(JNIEnv *env, jobject thiz) {
+ sp<JTuner> tuner = getTuner(env, thiz);
+ return tuner->stopTune();
}
static int android_media_tv_Tuner_scan(
@@ -1090,16 +1300,19 @@ static int android_media_tv_Tuner_scan(
env, settingsType, settings), static_cast<FrontendScanType>(scanType));
}
-static int android_media_tv_Tuner_stop_scan(JNIEnv*, jobject) {
- return 0;
+static int android_media_tv_Tuner_stop_scan(JNIEnv *env, jobject thiz) {
+ sp<JTuner> tuner = getTuner(env, thiz);
+ return tuner->stopScan();
}
-static int android_media_tv_Tuner_set_lnb(JNIEnv*, jobject, jint) {
- return 0;
+static int android_media_tv_Tuner_set_lnb(JNIEnv *env, jobject thiz, jint id) {
+ sp<JTuner> tuner = getTuner(env, thiz);
+ return tuner->setLnb(id);
}
-static int android_media_tv_Tuner_set_lna(JNIEnv*, jobject, jint, jboolean) {
- return 0;
+static int android_media_tv_Tuner_set_lna(JNIEnv *env, jobject thiz, jboolean enable) {
+ sp<JTuner> tuner = getTuner(env, thiz);
+ return tuner->setLna(enable);
}
static jobject android_media_tv_Tuner_get_frontend_status(JNIEnv, jobject, jintArray) {
@@ -1122,8 +1335,9 @@ static int android_media_tv_Tuner_disconnect_cicam(JNIEnv*, jobject) {
return 0;
}
-static jobject android_media_tv_Tuner_get_frontend_info(JNIEnv*, jobject, jint) {
- return NULL;
+static jobject android_media_tv_Tuner_get_frontend_info(JNIEnv *env, jobject thiz, jint id) {
+ sp<JTuner> tuner = getTuner(env, thiz);
+ return tuner->getFrontendInfo(id);
}
static jobject android_media_tv_Tuner_get_lnb_ids(JNIEnv *env, jobject thiz) {
diff --git a/media/jni/android_media_tv_Tuner.h b/media/jni/android_media_tv_Tuner.h
index 5c012bbebb9d..cfe99b399979 100644
--- a/media/jni/android_media_tv_Tuner.h
+++ b/media/jni/android_media_tv_Tuner.h
@@ -39,6 +39,7 @@ using ::android::hardware::tv::tuner::V1_0::DemuxPid;
using ::android::hardware::tv::tuner::V1_0::DvrType;
using ::android::hardware::tv::tuner::V1_0::FrontendEventType;
using ::android::hardware::tv::tuner::V1_0::FrontendId;
+using ::android::hardware::tv::tuner::V1_0::FrontendInfo;
using ::android::hardware::tv::tuner::V1_0::FrontendScanMessage;
using ::android::hardware::tv::tuner::V1_0::FrontendScanMessageType;
using ::android::hardware::tv::tuner::V1_0::FrontendScanType;
@@ -132,8 +133,13 @@ struct JTuner : public RefBase {
sp<ITuner> getTunerService();
jobject getFrontendIds();
jobject openFrontendById(int id);
+ jobject getFrontendInfo(int id);
int tune(const FrontendSettings& settings);
+ int stopTune();
int scan(const FrontendSettings& settings, FrontendScanType scanType);
+ int stopScan();
+ int setLnb(int id);
+ int setLna(bool enable);
jobject getLnbIds();
jobject openLnbById(int id);
jobject openFilter(DemuxFilterType type, int bufferSize);
@@ -154,6 +160,15 @@ private:
sp<ILnb> mLnb;
sp<IDemux> mDemux;
int mDemuxId;
+ static jobject getAnalogFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps);
+ static jobject getAtsc3FrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps);
+ static jobject getAtscFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps);
+ static jobject getDvbcFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps);
+ static jobject getDvbsFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps);
+ static jobject getDvbtFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps);
+ static jobject getIsdbs3FrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps);
+ static jobject getIsdbsFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps);
+ static jobject getIsdbtFrontendCaps(JNIEnv *env, FrontendInfo::FrontendCapabilities caps);
};
} // namespace android
diff --git a/media/jni/android_mtp_MtpDatabase.cpp b/media/jni/android_mtp_MtpDatabase.cpp
index 0a3b47b6f901..17189fd08688 100644
--- a/media/jni/android_mtp_MtpDatabase.cpp
+++ b/media/jni/android_mtp_MtpDatabase.cpp
@@ -820,7 +820,10 @@ MtpResponseCode MtpDatabase::getObjectInfo(MtpObjectHandle handle,
switch (info.mFormat) {
case MTP_FORMAT_EXIF_JPEG:
case MTP_FORMAT_HEIF:
- case MTP_FORMAT_JFIF: {
+ case MTP_FORMAT_JFIF:
+ case MTP_FORMAT_PNG:
+ case MTP_FORMAT_BMP:
+ case MTP_FORMAT_GIF: {
env = AndroidRuntime::getJNIEnv();
if (env->CallBooleanMethod(
mDatabase, method_getThumbnailInfo, (jint)handle, mLongBuffer)) {
@@ -881,7 +884,10 @@ void* MtpDatabase::getThumbnail(MtpObjectHandle handle, size_t& outThumbSize) {
switch (format) {
case MTP_FORMAT_EXIF_JPEG:
case MTP_FORMAT_HEIF:
- case MTP_FORMAT_JFIF: {
+ case MTP_FORMAT_JFIF:
+ case MTP_FORMAT_PNG:
+ case MTP_FORMAT_BMP:
+ case MTP_FORMAT_GIF: {
JNIEnv* env = AndroidRuntime::getJNIEnv();
jbyteArray thumbData = (jbyteArray) env->CallObjectMethod(
mDatabase, method_getThumbnailData, (jint)handle);
diff --git a/media/tests/MediaFrameworkTest/AndroidManifest.xml b/media/tests/MediaFrameworkTest/AndroidManifest.xml
index fb2d630faaf6..070ed72e533e 100644
--- a/media/tests/MediaFrameworkTest/AndroidManifest.xml
+++ b/media/tests/MediaFrameworkTest/AndroidManifest.xml
@@ -71,6 +71,11 @@
android:label="MediaRecorder stress tests InstrumentationRunner">
</instrumentation>
+ <instrumentation android:name=".AudioTestHarnessTemplateRunner"
+ android:targetPackage="com.android.mediaframeworktest"
+ android:label="Audio Test Harness tests InstrumentationRunner">
+ </instrumentation>
+
<instrumentation android:name=".MediaFrameworkPowerTestRunner"
android:targetPackage="com.android.mediaframeworktest"
android:label="Media Power tests InstrumentationRunner">
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/AudioTestHarnessTemplateRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/AudioTestHarnessTemplateRunner.java
new file mode 100644
index 000000000000..a33ab4c15467
--- /dev/null
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/AudioTestHarnessTemplateRunner.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.mediaframeworktest;
+
+import android.os.Bundle;
+import android.test.InstrumentationTestRunner;
+import android.test.InstrumentationTestSuite;
+
+import com.android.mediaframeworktest.template.AudioTestHarnessTemplateAndroidTest;
+
+import junit.framework.TestSuite;
+
+/**
+ * Runner class for Audio Test Harness.
+ *
+ * This will add all test methods defined in AudioTestHarnessTemplateAndroidTest class to the test
+ * suite and execute them.
+ */
+public class AudioTestHarnessTemplateRunner extends InstrumentationTestRunner {
+
+ @Override
+ public TestSuite getAllTests() {
+ TestSuite suite = new InstrumentationTestSuite(this);
+ suite.addTestSuite(AudioTestHarnessTemplateAndroidTest.class);
+ return suite;
+ }
+
+ @Override
+ public ClassLoader getLoader() {
+ return AudioTestHarnessTemplateRunner.class.getClassLoader();
+ }
+
+ @Override
+ public void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+ }
+
+}
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/helpers/CameraTestUtils.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/helpers/CameraTestUtils.java
index 0ae640dd7910..25220951dd7b 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/helpers/CameraTestUtils.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/helpers/CameraTestUtils.java
@@ -58,7 +58,6 @@ import android.os.Handler;
import android.util.Log;
import android.util.Pair;
import android.util.Size;
-import android.view.Display;
import android.view.Surface;
import android.view.WindowManager;
@@ -2211,14 +2210,14 @@ public class CameraTestUtils extends Assert {
}
public static Size getPreviewSizeBound(WindowManager windowManager, Size bound) {
- Display display = windowManager.getDefaultDisplay();
+ Size windowSize = windowManager.getCurrentWindowMetrics().getSize();
- int width = display.getWidth();
- int height = display.getHeight();
+ int width = windowSize.getWidth();
+ int height = windowSize.getHeight();
if (height > width) {
height = width;
- width = display.getHeight();
+ width = windowSize.getHeight();
}
if (bound.getWidth() <= width &&
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/template/AudioTestHarnessTemplateAndroidTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/template/AudioTestHarnessTemplateAndroidTest.java
new file mode 100644
index 000000000000..6c2a3f72edc8
--- /dev/null
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/template/AudioTestHarnessTemplateAndroidTest.java
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.mediaframeworktest.template;
+
+import android.media.AudioAttributes;
+import android.media.MediaPlayer;
+import android.os.Bundle;
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.suitebuilder.annotation.LargeTest;
+import android.util.Log;
+
+import com.android.mediaframeworktest.AudioTestHarnessTemplateRunner;
+import com.android.mediaframeworktest.MediaFrameworkTest;
+
+import java.io.IOException;
+
+/**
+ * Junit / Instrumentation test case for Audio Test Harness.
+ *
+ * This test class is the place where Android APIs are invoked. Any public method that starts with
+ * prefix test will be added to test suite and get executed.
+ */
+public class AudioTestHarnessTemplateAndroidTest extends
+ ActivityInstrumentationTestCase2<MediaFrameworkTest> {
+
+ private static final String TAG = "AudioTestHarnessTemplateAndroidTest";
+
+ private static final String AUDIO_FILE_KEY = "audioFile";
+ private static final String AUDIO_PLAY_DURATION_KEY = "audioPlayDuration";
+
+ private String mAudioFile = "";
+ private int mAudioPlayDuration;
+
+ public AudioTestHarnessTemplateAndroidTest() {
+ super("com.android.mediaframeworktest", MediaFrameworkTest.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ extractArguments();
+ }
+
+
+ // Extracts test params from passed in arguments.
+ private void extractArguments() {
+ AudioTestHarnessTemplateRunner runner =
+ (AudioTestHarnessTemplateRunner) getInstrumentation();
+ Bundle arguments = runner.getArguments();
+ mAudioFile = arguments.getString(AUDIO_FILE_KEY);
+ mAudioPlayDuration = Integer.parseInt(arguments.getString(AUDIO_PLAY_DURATION_KEY));
+ Log.i(TAG, String
+ .format("Extracted arguments from runner. Audio file: %s, play duration: %d",
+ mAudioFile,
+ mAudioPlayDuration));
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ // Here is where you can put custom methods at tearDown method.
+ }
+
+ /**
+ * Plays audio file for given amount of time.
+ *
+ * Instantiates a MediaPlayer and plays the passed in audioFile for audioPlayDuration
+ * milliseconds. If the player fails to instantiate or any exception happened during the play,
+ * the test will fail.
+ */
+ private static void playAudioFile(String audioFile, int audioPlayDuration) {
+ Log.v(TAG, String.format("Playing audio file: %s", audioFile));
+ MediaPlayer mp = new MediaPlayer();
+ try {
+ mp.setAudioAttributes(
+ new AudioAttributes.Builder()
+ .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
+ .setUsage(AudioAttributes.USAGE_MEDIA)
+ .build());
+ mp.setDataSource(audioFile);
+ mp.prepare();
+ int duration = mp.getDuration();
+ if (duration <= 0) {
+ Log.e(TAG, "Failed to grab duration from audio file.");
+ fail("AudioFileWithNegativeDuration");
+ }
+ mp.start();
+ // This test demonstrates how to play the audio file from device for certain amount of
+ // time, and the test actually runs on host machine so the listener is not adapted here.
+ Log.v(TAG,
+ String.format("Wait for audio file to play for duration: %d",
+ audioPlayDuration));
+ Thread.sleep(audioPlayDuration);
+ } catch (IOException | InterruptedException e) {
+ Log.e(TAG, String.format("Exception happened while playing audio file: %s", audioFile),
+ e);
+ fail("FailedToPlayAudioFile");
+ } finally {
+ if (mp != null) {
+ Log.v(TAG, "Release media player.");
+ mp.release();
+ }
+ }
+ }
+
+ // This test method will play the audioFile for audioPlayDuration milliseconds as passed in from
+ // AudioTestHarnessTemplateTest class.
+ @LargeTest
+ public void testPlayAudioFile() throws Exception {
+ playAudioFile(mAudioFile, mAudioPlayDuration);
+ }
+
+}
diff --git a/media/tests/MediaRouteProvider/Android.bp b/media/tests/MediaRouteProvider/Android.bp
deleted file mode 100644
index da4282495ac2..000000000000
--- a/media/tests/MediaRouteProvider/Android.bp
+++ /dev/null
@@ -1,18 +0,0 @@
-android_test {
- name: "mediarouteprovider",
-
- srcs: ["**/*.java"],
-
- libs: [
- "android.test.runner",
- "android.test.base",
- ],
-
- static_libs: [
- "android-support-test",
- "mockito-target-minus-junit4",
- ],
-
- platform_apis: true,
- certificate: "platform",
-} \ No newline at end of file
diff --git a/media/tests/MediaRouteProvider/res/values/strings.xml b/media/tests/MediaRouteProvider/res/values/strings.xml
deleted file mode 100644
index bb970641ffda..000000000000
--- a/media/tests/MediaRouteProvider/res/values/strings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <!-- name of the app [CHAR LIMIT=25]-->
- <string name="app_name">SampleMediaRouteProvider</string>
-</resources> \ No newline at end of file
diff --git a/media/tests/MediaRouter/AndroidManifest.xml b/media/tests/MediaRouter/AndroidManifest.xml
index a34a264e1247..95465007d5ea 100644
--- a/media/tests/MediaRouter/AndroidManifest.xml
+++ b/media/tests/MediaRouter/AndroidManifest.xml
@@ -17,10 +17,14 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.mediaroutertest">
- <uses-permission android:name="android.permission.CONTROL_MEDIA_ROUTE" />
-
<application android:label="@string/app_name">
<uses-library android:name="android.test.runner" />
+ <service android:name=".SampleMediaRoute2ProviderService"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="android.media.MediaRoute2ProviderService" />
+ </intent-filter>
+ </service>
</application>
<instrumentation android:name="android.support.test.runner.AndroidJUnitRunner"
diff --git a/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRoute2InfoTest.java b/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRoute2InfoTest.java
deleted file mode 100644
index c46966fdc6d8..000000000000
--- a/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRoute2InfoTest.java
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- * Copyright 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.mediaroutertest;
-
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.testng.Assert.assertThrows;
-
-import android.media.MediaRoute2Info;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Parcel;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Tests {@link MediaRoute2Info} and its {@link MediaRoute2Info.Builder builder}.
- */
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class MediaRoute2InfoTest {
-
- public static final String TEST_ID = "test_id";
- public static final String TEST_NAME = "test_name";
- public static final String TEST_ROUTE_TYPE_0 = "test_route_type_0";
- public static final String TEST_ROUTE_TYPE_1 = "test_route_type_1";
- public static final int TEST_DEVICE_TYPE = MediaRoute2Info.DEVICE_TYPE_REMOTE_SPEAKER;
- public static final Uri TEST_ICON_URI = Uri.parse("https://developer.android.com");
- public static final String TEST_DESCRIPTION = "test_description";
- public static final int TEST_CONNECTION_STATE = MediaRoute2Info.CONNECTION_STATE_CONNECTING;
- public static final String TEST_CLIENT_PACKAGE_NAME = "com.test.client.package.name";
- public static final int TEST_VOLUME_HANDLING = MediaRoute2Info.PLAYBACK_VOLUME_VARIABLE;
- public static final int TEST_VOLUME_MAX = 100;
- public static final int TEST_VOLUME = 65;
-
- public static final String TEST_KEY = "test_key";
- public static final String TEST_VALUE = "test_value";
-
- @Test
- public void testBuilderConstructorWithInvalidValues() {
- final String nullId = null;
- final String nullName = null;
- final String emptyId = "";
- final String emptyName = "";
- final String validId = "valid_id";
- final String validName = "valid_name";
-
- // ID is invalid
- assertThrows(IllegalArgumentException.class,
- () -> new MediaRoute2Info.Builder(nullId, validName));
- assertThrows(IllegalArgumentException.class,
- () -> new MediaRoute2Info.Builder(emptyId, validName));
-
- // name is invalid
- assertThrows(IllegalArgumentException.class,
- () -> new MediaRoute2Info.Builder(validId, nullName));
- assertThrows(IllegalArgumentException.class,
- () -> new MediaRoute2Info.Builder(validId, emptyName));
-
- // Both are invalid
- assertThrows(IllegalArgumentException.class,
- () -> new MediaRoute2Info.Builder(nullId, nullName));
- assertThrows(IllegalArgumentException.class,
- () -> new MediaRoute2Info.Builder(nullId, emptyName));
- assertThrows(IllegalArgumentException.class,
- () -> new MediaRoute2Info.Builder(emptyId, nullName));
- assertThrows(IllegalArgumentException.class,
- () -> new MediaRoute2Info.Builder(emptyId, emptyName));
-
-
- // Null RouteInfo (1-argument constructor)
- final MediaRoute2Info nullRouteInfo = null;
- assertThrows(NullPointerException.class,
- () -> new MediaRoute2Info.Builder(nullRouteInfo));
- }
-
- @Test
- public void testBuilderBuildWithEmptyRouteTypesShouldThrowIAE() {
- MediaRoute2Info.Builder builder = new MediaRoute2Info.Builder(TEST_ID, TEST_NAME);
- assertThrows(IllegalArgumentException.class, () -> builder.build());
- }
-
- @Test
- public void testBuilderAndGettersOfMediaRoute2Info() {
- Bundle extras = new Bundle();
- extras.putString(TEST_KEY, TEST_VALUE);
-
- MediaRoute2Info routeInfo = new MediaRoute2Info.Builder(TEST_ID, TEST_NAME)
- .addFeature(TEST_ROUTE_TYPE_0)
- .addFeature(TEST_ROUTE_TYPE_1)
- .setDeviceType(TEST_DEVICE_TYPE)
- .setIconUri(TEST_ICON_URI)
- .setDescription(TEST_DESCRIPTION)
- .setConnectionState(TEST_CONNECTION_STATE)
- .setClientPackageName(TEST_CLIENT_PACKAGE_NAME)
- .setVolumeHandling(TEST_VOLUME_HANDLING)
- .setVolumeMax(TEST_VOLUME_MAX)
- .setVolume(TEST_VOLUME)
- .setExtras(extras)
- .build();
-
- assertEquals(TEST_ID, routeInfo.getId());
- assertEquals(TEST_NAME, routeInfo.getName());
-
- assertEquals(2, routeInfo.getFeatures().size());
- assertEquals(TEST_ROUTE_TYPE_0, routeInfo.getFeatures().get(0));
- assertEquals(TEST_ROUTE_TYPE_1, routeInfo.getFeatures().get(1));
-
- assertEquals(TEST_DEVICE_TYPE, routeInfo.getDeviceType());
- assertEquals(TEST_ICON_URI, routeInfo.getIconUri());
- assertEquals(TEST_DESCRIPTION, routeInfo.getDescription());
- assertEquals(TEST_CONNECTION_STATE, routeInfo.getConnectionState());
- assertEquals(TEST_CLIENT_PACKAGE_NAME, routeInfo.getClientPackageName());
- assertEquals(TEST_VOLUME_HANDLING, routeInfo.getVolumeHandling());
- assertEquals(TEST_VOLUME_MAX, routeInfo.getVolumeMax());
- assertEquals(TEST_VOLUME, routeInfo.getVolume());
-
- Bundle extrasOut = routeInfo.getExtras();
- assertNotNull(extrasOut);
- assertTrue(extrasOut.containsKey(TEST_KEY));
- assertEquals(TEST_VALUE, extrasOut.getString(TEST_KEY));
- }
-
- @Test
- public void testBuilderSetExtrasWithNull() {
- MediaRoute2Info routeInfo = new MediaRoute2Info.Builder(TEST_ID, TEST_NAME)
- .addFeature(TEST_ROUTE_TYPE_0)
- .setExtras(null)
- .build();
-
- assertNull(routeInfo.getExtras());
- }
-
- @Test
- public void testBuilderaddFeatures() {
- List<String> routeTypes = new ArrayList<>();
- routeTypes.add(TEST_ROUTE_TYPE_0);
- routeTypes.add(TEST_ROUTE_TYPE_1);
-
- MediaRoute2Info routeInfo = new MediaRoute2Info.Builder(TEST_ID, TEST_NAME)
- .addFeatures(routeTypes)
- .build();
-
- assertEquals(routeTypes, routeInfo.getFeatures());
- }
-
- @Test
- public void testBuilderclearFeatures() {
- MediaRoute2Info routeInfo = new MediaRoute2Info.Builder(TEST_ID, TEST_NAME)
- .addFeature(TEST_ROUTE_TYPE_0)
- .addFeature(TEST_ROUTE_TYPE_1)
- // clearFeatures should clear the route types.
- .clearFeatures()
- .addFeature(TEST_ROUTE_TYPE_1)
- .build();
-
- assertEquals(1, routeInfo.getFeatures().size());
- assertEquals(TEST_ROUTE_TYPE_1, routeInfo.getFeatures().get(0));
- }
-
- @Test
- public void testhasAnyFeaturesReturnsFalse() {
- MediaRoute2Info routeInfo = new MediaRoute2Info.Builder(TEST_ID, TEST_NAME)
- .addFeature(TEST_ROUTE_TYPE_0)
- .addFeature(TEST_ROUTE_TYPE_1)
- .build();
-
- List<String> testRouteTypes = new ArrayList<>();
- testRouteTypes.add("non_matching_route_type_1");
- testRouteTypes.add("non_matching_route_type_2");
- testRouteTypes.add("non_matching_route_type_3");
- testRouteTypes.add("non_matching_route_type_4");
-
- assertFalse(routeInfo.hasAnyFeatures(testRouteTypes));
- }
-
- @Test
- public void testhasAnyFeaturesReturnsTrue() {
- MediaRoute2Info routeInfo = new MediaRoute2Info.Builder(TEST_ID, TEST_NAME)
- .addFeature(TEST_ROUTE_TYPE_0)
- .addFeature(TEST_ROUTE_TYPE_1)
- .build();
-
- List<String> testRouteTypes = new ArrayList<>();
- testRouteTypes.add("non_matching_route_type_1");
- testRouteTypes.add("non_matching_route_type_2");
- testRouteTypes.add("non_matching_route_type_3");
- testRouteTypes.add(TEST_ROUTE_TYPE_1);
-
- assertTrue(routeInfo.hasAnyFeatures(testRouteTypes));
- }
-
- @Test
- public void testEqualsCreatedWithSameArguments() {
- Bundle extras = new Bundle();
- extras.putString(TEST_KEY, TEST_VALUE);
-
- MediaRoute2Info routeInfo1 = new MediaRoute2Info.Builder(TEST_ID, TEST_NAME)
- .addFeature(TEST_ROUTE_TYPE_0)
- .addFeature(TEST_ROUTE_TYPE_1)
- .setDeviceType(TEST_DEVICE_TYPE)
- .setIconUri(TEST_ICON_URI)
- .setDescription(TEST_DESCRIPTION)
- .setConnectionState(TEST_CONNECTION_STATE)
- .setClientPackageName(TEST_CLIENT_PACKAGE_NAME)
- .setVolumeHandling(TEST_VOLUME_HANDLING)
- .setVolumeMax(TEST_VOLUME_MAX)
- .setVolume(TEST_VOLUME)
- .setExtras(extras)
- .build();
-
- MediaRoute2Info routeInfo2 = new MediaRoute2Info.Builder(TEST_ID, TEST_NAME)
- .addFeature(TEST_ROUTE_TYPE_0)
- .addFeature(TEST_ROUTE_TYPE_1)
- .setDeviceType(TEST_DEVICE_TYPE)
- .setIconUri(TEST_ICON_URI)
- .setDescription(TEST_DESCRIPTION)
- .setConnectionState(TEST_CONNECTION_STATE)
- .setClientPackageName(TEST_CLIENT_PACKAGE_NAME)
- .setVolumeHandling(TEST_VOLUME_HANDLING)
- .setVolumeMax(TEST_VOLUME_MAX)
- .setVolume(TEST_VOLUME)
- .setExtras(extras)
- .build();
-
- assertEquals(routeInfo1, routeInfo2);
- assertEquals(routeInfo1.hashCode(), routeInfo2.hashCode());
- }
-
- @Test
- public void testEqualsCreatedWithBuilderCopyConstructor() {
- Bundle extras = new Bundle();
- extras.putString(TEST_KEY, TEST_VALUE);
-
- MediaRoute2Info routeInfo1 = new MediaRoute2Info.Builder(TEST_ID, TEST_NAME)
- .addFeature(TEST_ROUTE_TYPE_0)
- .addFeature(TEST_ROUTE_TYPE_1)
- .setDeviceType(TEST_DEVICE_TYPE)
- .setIconUri(TEST_ICON_URI)
- .setDescription(TEST_DESCRIPTION)
- .setConnectionState(TEST_CONNECTION_STATE)
- .setClientPackageName(TEST_CLIENT_PACKAGE_NAME)
- .setVolumeHandling(TEST_VOLUME_HANDLING)
- .setVolumeMax(TEST_VOLUME_MAX)
- .setVolume(TEST_VOLUME)
- .setExtras(extras)
- .build();
-
- MediaRoute2Info routeInfo2 = new MediaRoute2Info.Builder(routeInfo1).build();
-
- assertEquals(routeInfo1, routeInfo2);
- assertEquals(routeInfo1.hashCode(), routeInfo2.hashCode());
- }
-
- @Test
- public void testEqualsReturnFalse() {
- Bundle extras = new Bundle();
- extras.putString(TEST_KEY, TEST_VALUE);
-
- MediaRoute2Info routeInfo = new MediaRoute2Info.Builder(TEST_ID, TEST_NAME)
- .addFeature(TEST_ROUTE_TYPE_0)
- .addFeature(TEST_ROUTE_TYPE_1)
- .setDeviceType(TEST_DEVICE_TYPE)
- .setIconUri(TEST_ICON_URI)
- .setDescription(TEST_DESCRIPTION)
- .setConnectionState(TEST_CONNECTION_STATE)
- .setClientPackageName(TEST_CLIENT_PACKAGE_NAME)
- .setVolumeHandling(TEST_VOLUME_HANDLING)
- .setVolumeMax(TEST_VOLUME_MAX)
- .setVolume(TEST_VOLUME)
- .setExtras(extras)
- .build();
-
- // Now, we will use copy constructor
- assertNotEquals(routeInfo, new MediaRoute2Info.Builder(routeInfo)
- .addFeature("randomRouteType")
- .build());
- assertNotEquals(routeInfo, new MediaRoute2Info.Builder(routeInfo)
- .setDeviceType(TEST_DEVICE_TYPE + 1)
- .build());
- assertNotEquals(routeInfo, new MediaRoute2Info.Builder(routeInfo)
- .setIconUri(Uri.parse("randomUri"))
- .build());
- assertNotEquals(routeInfo, new MediaRoute2Info.Builder(routeInfo)
- .setDescription("randomDescription")
- .build());
- assertNotEquals(routeInfo, new MediaRoute2Info.Builder(routeInfo)
- .setConnectionState(TEST_CONNECTION_STATE + 1)
- .build());
- assertNotEquals(routeInfo, new MediaRoute2Info.Builder(routeInfo)
- .setClientPackageName("randomPackageName")
- .build());
- assertNotEquals(routeInfo, new MediaRoute2Info.Builder(routeInfo)
- .setVolumeHandling(TEST_VOLUME_HANDLING + 1)
- .build());
- assertNotEquals(routeInfo, new MediaRoute2Info.Builder(routeInfo)
- .setVolumeMax(TEST_VOLUME_MAX + 100)
- .build());
- assertNotEquals(routeInfo, new MediaRoute2Info.Builder(routeInfo)
- .setVolume(TEST_VOLUME + 10)
- .build());
- // Note: Extras will not affect the equals.
- }
-
- @Test
- public void testParcelingAndUnParceling() {
- Bundle extras = new Bundle();
- extras.putString(TEST_KEY, TEST_VALUE);
-
- MediaRoute2Info routeInfo = new MediaRoute2Info.Builder(TEST_ID, TEST_NAME)
- .addFeature(TEST_ROUTE_TYPE_0)
- .addFeature(TEST_ROUTE_TYPE_1)
- .setDeviceType(TEST_DEVICE_TYPE)
- .setIconUri(TEST_ICON_URI)
- .setDescription(TEST_DESCRIPTION)
- .setConnectionState(TEST_CONNECTION_STATE)
- .setClientPackageName(TEST_CLIENT_PACKAGE_NAME)
- .setVolumeHandling(TEST_VOLUME_HANDLING)
- .setVolumeMax(TEST_VOLUME_MAX)
- .setVolume(TEST_VOLUME)
- .setExtras(extras)
- .build();
-
- Parcel parcel = Parcel.obtain();
- routeInfo.writeToParcel(parcel, 0);
- parcel.setDataPosition(0);
-
- MediaRoute2Info routeInfoFromParcel = MediaRoute2Info.CREATOR.createFromParcel(parcel);
- assertEquals(routeInfo, routeInfoFromParcel);
- assertEquals(routeInfo.hashCode(), routeInfoFromParcel.hashCode());
-
- // Check extras
- Bundle extrasOut = routeInfoFromParcel.getExtras();
- assertNotNull(extrasOut);
- assertTrue(extrasOut.containsKey(TEST_KEY));
- assertEquals(TEST_VALUE, extrasOut.getString(TEST_KEY));
- }
-}
diff --git a/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2Test.java b/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2Test.java
deleted file mode 100644
index e0b454559456..000000000000
--- a/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2Test.java
+++ /dev/null
@@ -1,780 +0,0 @@
-/*
- * Copyright 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.mediaroutertest;
-
-import static android.media.MediaRoute2Info.CONNECTION_STATE_CONNECTING;
-import static android.media.MediaRoute2Info.DEVICE_TYPE_REMOTE_SPEAKER;
-import static android.media.MediaRoute2Info.PLAYBACK_VOLUME_VARIABLE;
-
-import static com.android.mediaroutertest.MediaRouterManagerTest.FEATURES_ALL;
-import static com.android.mediaroutertest.MediaRouterManagerTest.FEATURES_SPECIAL;
-import static com.android.mediaroutertest.MediaRouterManagerTest.FEATURE_SAMPLE;
-import static com.android.mediaroutertest.MediaRouterManagerTest.ROUTE_ID1;
-import static com.android.mediaroutertest.MediaRouterManagerTest.ROUTE_ID2;
-import static com.android.mediaroutertest.MediaRouterManagerTest.ROUTE_ID3_SESSION_CREATION_FAILED;
-import static com.android.mediaroutertest.MediaRouterManagerTest.ROUTE_ID4_TO_SELECT_AND_DESELECT;
-import static com.android.mediaroutertest.MediaRouterManagerTest.ROUTE_ID5_TO_TRANSFER_TO;
-import static com.android.mediaroutertest.MediaRouterManagerTest.ROUTE_ID_SPECIAL_FEATURE;
-import static com.android.mediaroutertest.MediaRouterManagerTest.ROUTE_ID_VARIABLE_VOLUME;
-import static com.android.mediaroutertest.MediaRouterManagerTest.SYSTEM_PROVIDER_ID;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.testng.Assert.assertThrows;
-
-import android.annotation.NonNull;
-import android.content.Context;
-import android.media.MediaRoute2Info;
-import android.media.MediaRouter2;
-import android.media.MediaRouter2.OnGetControllerHintsListener;
-import android.media.MediaRouter2.RouteCallback;
-import android.media.MediaRouter2.RoutingController;
-import android.media.MediaRouter2.RoutingControllerCallback;
-import android.media.RouteDiscoveryPreference;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Parcel;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-import android.text.TextUtils;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.Executor;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-import java.util.function.Predicate;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class MediaRouter2Test {
- private static final String TAG = "MediaRouter2Test";
- Context mContext;
- private MediaRouter2 mRouter2;
- private Executor mExecutor;
-
- private static final int TIMEOUT_MS = 5000;
-
- private static final String TEST_KEY = "test_key";
- private static final String TEST_VALUE = "test_value";
-
- @Before
- public void setUp() throws Exception {
- mContext = InstrumentationRegistry.getTargetContext();
- mRouter2 = MediaRouter2.getInstance(mContext);
- mExecutor = Executors.newSingleThreadExecutor();
- }
-
- @After
- public void tearDown() throws Exception {
- }
-
- /**
- * Tests if we get proper routes for application that has special route type.
- */
- @Test
- public void testGetRoutes() throws Exception {
- Map<String, MediaRoute2Info> routes = waitAndGetRoutes(FEATURES_SPECIAL);
-
- assertEquals(1, routes.size());
- assertNotNull(routes.get(ROUTE_ID_SPECIAL_FEATURE));
- }
-
- @Test
- public void testRouteInfoEquality() {
- MediaRoute2Info routeInfo = new MediaRoute2Info.Builder("id", "name")
- .setDescription("description")
- .setClientPackageName("com.android.mediaroutertest")
- .setConnectionState(CONNECTION_STATE_CONNECTING)
- .setIconUri(new Uri.Builder().path("icon").build())
- .setVolume(5)
- .setVolumeMax(20)
- .addFeature(FEATURE_SAMPLE)
- .setVolumeHandling(PLAYBACK_VOLUME_VARIABLE)
- .setDeviceType(DEVICE_TYPE_REMOTE_SPEAKER)
- .build();
-
- MediaRoute2Info routeInfoRebuilt = new MediaRoute2Info.Builder(routeInfo).build();
- assertEquals(routeInfo, routeInfoRebuilt);
-
- Parcel parcel = Parcel.obtain();
- parcel.writeParcelable(routeInfo, 0);
- parcel.setDataPosition(0);
- MediaRoute2Info routeInfoFromParcel = parcel.readParcelable(null);
-
- assertEquals(routeInfo, routeInfoFromParcel);
- }
-
- @Test
- public void testControlVolumeWithRouter() throws Exception {
- Map<String, MediaRoute2Info> routes = waitAndGetRoutes(FEATURES_ALL);
-
- MediaRoute2Info volRoute = routes.get(ROUTE_ID_VARIABLE_VOLUME);
- assertNotNull(volRoute);
-
- int originalVolume = volRoute.getVolume();
- int deltaVolume = (originalVolume == volRoute.getVolumeMax() ? -1 : 1);
-
- awaitOnRouteChanged(
- () -> mRouter2.requestUpdateVolume(volRoute, deltaVolume),
- ROUTE_ID_VARIABLE_VOLUME,
- (route -> route.getVolume() == originalVolume + deltaVolume),
- FEATURES_ALL);
-
- awaitOnRouteChanged(
- () -> mRouter2.requestSetVolume(volRoute, originalVolume),
- ROUTE_ID_VARIABLE_VOLUME,
- (route -> route.getVolume() == originalVolume),
- FEATURES_ALL);
- }
-
- @Test
- public void testRegisterControllerCallbackWithInvalidArguments() {
- Executor executor = mExecutor;
- RoutingControllerCallback callback = new RoutingControllerCallback();
-
- // Tests null executor
- assertThrows(NullPointerException.class,
- () -> mRouter2.registerControllerCallback(null, callback));
-
- // Tests null callback
- assertThrows(NullPointerException.class,
- () -> mRouter2.registerControllerCallback(executor, null));
- }
-
- @Test
- public void testUnregisterControllerCallbackWithNullCallback() {
- // Tests null callback
- assertThrows(NullPointerException.class,
- () -> mRouter2.unregisterControllerCallback(null));
- }
-
- @Test
- public void testRequestCreateControllerWithNullRoute() {
- assertThrows(NullPointerException.class,
- () -> mRouter2.requestCreateController(null));
- }
-
- @Test
- public void testRequestCreateControllerSuccess() throws Exception {
- final List<String> sampleRouteFeature = new ArrayList<>();
- sampleRouteFeature.add(FEATURE_SAMPLE);
-
- Map<String, MediaRoute2Info> routes = waitAndGetRoutes(sampleRouteFeature);
- MediaRoute2Info route = routes.get(ROUTE_ID1);
- assertNotNull(route);
-
- final CountDownLatch successLatch = new CountDownLatch(1);
- final CountDownLatch failureLatch = new CountDownLatch(1);
- final List<RoutingController> controllers = new ArrayList<>();
-
- // Create session with this route
- RoutingControllerCallback controllerCallback = new RoutingControllerCallback() {
- @Override
- public void onControllerCreated(RoutingController controller) {
- assertNotNull(controller);
- assertTrue(createRouteMap(controller.getSelectedRoutes()).containsKey(ROUTE_ID1));
- controllers.add(controller);
- successLatch.countDown();
- }
-
- @Override
- public void onControllerCreationFailed(MediaRoute2Info requestedRoute) {
- failureLatch.countDown();
- }
- };
-
- // TODO: Remove this once the MediaRouter2 becomes always connected to the service.
- RouteCallback routeCallback = new RouteCallback();
- mRouter2.registerRouteCallback(mExecutor, routeCallback, RouteDiscoveryPreference.EMPTY);
-
- try {
- mRouter2.registerControllerCallback(mExecutor, controllerCallback);
- mRouter2.requestCreateController(route);
- assertTrue(successLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
-
- // onSessionCreationFailed should not be called.
- assertFalse(failureLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- } finally {
- releaseControllers(controllers);
- mRouter2.unregisterRouteCallback(routeCallback);
- mRouter2.unregisterControllerCallback(controllerCallback);
- }
- }
-
- @Test
- public void testRequestCreateControllerFailure() throws Exception {
- final List<String> sampleRouteType = new ArrayList<>();
- sampleRouteType.add(FEATURE_SAMPLE);
-
- Map<String, MediaRoute2Info> routes = waitAndGetRoutes(sampleRouteType);
- MediaRoute2Info route = routes.get(ROUTE_ID3_SESSION_CREATION_FAILED);
- assertNotNull(route);
-
- final CountDownLatch successLatch = new CountDownLatch(1);
- final CountDownLatch failureLatch = new CountDownLatch(1);
- final List<RoutingController> controllers = new ArrayList<>();
-
- // Create session with this route
- RoutingControllerCallback controllerCallback = new RoutingControllerCallback() {
- @Override
- public void onControllerCreated(RoutingController controller) {
- controllers.add(controller);
- successLatch.countDown();
- }
-
- @Override
- public void onControllerCreationFailed(MediaRoute2Info requestedRoute) {
- assertEquals(route, requestedRoute);
- failureLatch.countDown();
- }
- };
-
- // TODO: Remove this once the MediaRouter2 becomes always connected to the service.
- RouteCallback routeCallback = new RouteCallback();
- mRouter2.registerRouteCallback(mExecutor, routeCallback, RouteDiscoveryPreference.EMPTY);
-
- try {
- mRouter2.registerControllerCallback(mExecutor, controllerCallback);
- mRouter2.requestCreateController(route);
- assertTrue(failureLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
-
- // onSessionCreated should not be called.
- assertFalse(successLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- } finally {
- releaseControllers(controllers);
- mRouter2.unregisterRouteCallback(routeCallback);
- mRouter2.unregisterControllerCallback(controllerCallback);
- }
- }
-
- @Test
- public void testRequestCreateControllerMultipleSessions() throws Exception {
- final List<String> sampleRouteType = new ArrayList<>();
- sampleRouteType.add(FEATURE_SAMPLE);
-
- final CountDownLatch successLatch = new CountDownLatch(2);
- final CountDownLatch failureLatch = new CountDownLatch(1);
- final List<RoutingController> createdControllers = new ArrayList<>();
-
- // Create session with this route
- RoutingControllerCallback controllerCallback = new RoutingControllerCallback() {
- @Override
- public void onControllerCreated(RoutingController controller) {
- createdControllers.add(controller);
- successLatch.countDown();
- }
-
- @Override
- public void onControllerCreationFailed(MediaRoute2Info requestedRoute) {
- failureLatch.countDown();
- }
- };
-
- Map<String, MediaRoute2Info> routes = waitAndGetRoutes(sampleRouteType);
- MediaRoute2Info route1 = routes.get(ROUTE_ID1);
- MediaRoute2Info route2 = routes.get(ROUTE_ID2);
- assertNotNull(route1);
- assertNotNull(route2);
-
- // TODO: Remove this once the MediaRouter2 becomes always connected to the service.
- RouteCallback routeCallback = new RouteCallback();
- mRouter2.registerRouteCallback(mExecutor, routeCallback, RouteDiscoveryPreference.EMPTY);
-
- try {
- mRouter2.registerControllerCallback(mExecutor, controllerCallback);
- mRouter2.requestCreateController(route1);
- mRouter2.requestCreateController(route2);
- assertTrue(successLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
-
- // onSessionCreationFailed should not be called.
- assertFalse(failureLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
-
- // Created controllers should have proper info
- assertEquals(2, createdControllers.size());
- RoutingController controller1 = createdControllers.get(0);
- RoutingController controller2 = createdControllers.get(1);
-
- assertNotEquals(controller1.getId(), controller2.getId());
- assertTrue(createRouteMap(controller1.getSelectedRoutes()).containsKey(ROUTE_ID1));
- assertTrue(createRouteMap(controller2.getSelectedRoutes()).containsKey(ROUTE_ID2));
-
- } finally {
- releaseControllers(createdControllers);
- mRouter2.unregisterRouteCallback(routeCallback);
- mRouter2.unregisterControllerCallback(controllerCallback);
- }
- }
-
- @Test
- public void testSetOnGetControllerHintsListener() throws Exception {
- final List<String> sampleRouteFeature = new ArrayList<>();
- sampleRouteFeature.add(FEATURE_SAMPLE);
-
- Map<String, MediaRoute2Info> routes = waitAndGetRoutes(sampleRouteFeature);
- MediaRoute2Info route = routes.get(ROUTE_ID1);
- assertNotNull(route);
-
- final Bundle createSessionHints = new Bundle();
- createSessionHints.putString(TEST_KEY, TEST_VALUE);
- final OnGetControllerHintsListener listener = new OnGetControllerHintsListener() {
- @Override
- public Bundle onGetControllerHints(MediaRoute2Info route) {
- return createSessionHints;
- }
- };
-
- final CountDownLatch successLatch = new CountDownLatch(1);
- final CountDownLatch failureLatch = new CountDownLatch(1);
- final List<RoutingController> controllers = new ArrayList<>();
-
- // Create session with this route
- RoutingControllerCallback controllerCallback = new RoutingControllerCallback() {
- @Override
- public void onControllerCreated(RoutingController controller) {
- assertNotNull(controller);
- assertTrue(createRouteMap(controller.getSelectedRoutes()).containsKey(ROUTE_ID1));
-
- // The SampleMediaRoute2ProviderService supposed to set control hints
- // with the given creationSessionHints.
- Bundle controlHints = controller.getControlHints();
- assertNotNull(controlHints);
- assertTrue(controlHints.containsKey(TEST_KEY));
- assertEquals(TEST_VALUE, controlHints.getString(TEST_KEY));
-
- controllers.add(controller);
- successLatch.countDown();
- }
-
- @Override
- public void onControllerCreationFailed(MediaRoute2Info requestedRoute) {
- failureLatch.countDown();
- }
- };
-
- // TODO: Remove this once the MediaRouter2 becomes always connected to the service.
- RouteCallback routeCallback = new RouteCallback();
- mRouter2.registerRouteCallback(mExecutor, routeCallback, RouteDiscoveryPreference.EMPTY);
-
- try {
- mRouter2.registerControllerCallback(mExecutor, controllerCallback);
-
- // The SampleMediaRoute2ProviderService supposed to set control hints
- // with the given creationSessionHints.
- mRouter2.setOnGetControllerHintsListener(listener);
- mRouter2.requestCreateController(route);
- assertTrue(successLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
-
- // onSessionCreationFailed should not be called.
- assertFalse(failureLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- } finally {
- releaseControllers(controllers);
- mRouter2.unregisterRouteCallback(routeCallback);
- mRouter2.unregisterControllerCallback(controllerCallback);
- }
- }
-
- @Test
- public void testRoutingControllerCallbackIsNotCalledAfterUnregistered() throws Exception {
- final List<String> sampleRouteType = new ArrayList<>();
- sampleRouteType.add(FEATURE_SAMPLE);
-
- Map<String, MediaRoute2Info> routes = waitAndGetRoutes(sampleRouteType);
- MediaRoute2Info route = routes.get(ROUTE_ID1);
- assertNotNull(route);
-
- final CountDownLatch successLatch = new CountDownLatch(1);
- final CountDownLatch failureLatch = new CountDownLatch(1);
- final List<RoutingController> controllers = new ArrayList<>();
-
- // Create session with this route
- RoutingControllerCallback controllerCallback = new RoutingControllerCallback() {
- @Override
- public void onControllerCreated(RoutingController controller) {
- controllers.add(controller);
- successLatch.countDown();
- }
-
- @Override
- public void onControllerCreationFailed(MediaRoute2Info requestedRoute) {
- failureLatch.countDown();
- }
- };
-
- // TODO: Remove this once the MediaRouter2 becomes always connected to the service.
- RouteCallback routeCallback = new RouteCallback();
- mRouter2.registerRouteCallback(mExecutor, routeCallback, RouteDiscoveryPreference.EMPTY);
-
- try {
- mRouter2.registerControllerCallback(mExecutor, controllerCallback);
- mRouter2.requestCreateController(route);
-
- // Unregisters session callback
- mRouter2.unregisterControllerCallback(controllerCallback);
-
- // No session callback methods should be called.
- assertFalse(successLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- assertFalse(failureLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- } finally {
- releaseControllers(controllers);
- mRouter2.unregisterRouteCallback(routeCallback);
- mRouter2.unregisterControllerCallback(controllerCallback);
- }
- }
-
- // TODO: Add tests for illegal inputs if needed (e.g. selecting already selected route)
- @Test
- public void testRoutingControllerSelectAndDeselectRoute() throws Exception {
- final List<String> sampleRouteType = new ArrayList<>();
- sampleRouteType.add(FEATURE_SAMPLE);
-
- Map<String, MediaRoute2Info> routes = waitAndGetRoutes(sampleRouteType);
- MediaRoute2Info routeToCreateSessionWith = routes.get(ROUTE_ID1);
- assertNotNull(routeToCreateSessionWith);
-
- final CountDownLatch onControllerCreatedLatch = new CountDownLatch(1);
- final CountDownLatch onControllerUpdatedLatchForSelect = new CountDownLatch(1);
- final CountDownLatch onControllerUpdatedLatchForDeselect = new CountDownLatch(1);
- final List<RoutingController> controllers = new ArrayList<>();
-
- // Create session with ROUTE_ID1
- RoutingControllerCallback controllerCallback = new RoutingControllerCallback() {
- @Override
- public void onControllerCreated(RoutingController controller) {
- assertNotNull(controller);
- assertTrue(getRouteIds(controller.getSelectedRoutes()).contains(ROUTE_ID1));
- controllers.add(controller);
- onControllerCreatedLatch.countDown();
- }
-
- @Override
- public void onControllerUpdated(RoutingController controller) {
- if (onControllerCreatedLatch.getCount() != 0
- || !TextUtils.equals(
- controllers.get(0).getId(), controller.getId())) {
- return;
- }
-
- if (onControllerUpdatedLatchForSelect.getCount() != 0) {
- assertEquals(2, controller.getSelectedRoutes().size());
- assertTrue(getRouteIds(controller.getSelectedRoutes())
- .contains(ROUTE_ID1));
- assertTrue(getRouteIds(controller.getSelectedRoutes())
- .contains(ROUTE_ID4_TO_SELECT_AND_DESELECT));
- assertFalse(getRouteIds(controller.getSelectableRoutes())
- .contains(ROUTE_ID4_TO_SELECT_AND_DESELECT));
-
- onControllerUpdatedLatchForSelect.countDown();
- } else {
- assertEquals(1, controller.getSelectedRoutes().size());
- assertTrue(getRouteIds(controller.getSelectedRoutes())
- .contains(ROUTE_ID1));
- assertFalse(getRouteIds(controller.getSelectedRoutes())
- .contains(ROUTE_ID4_TO_SELECT_AND_DESELECT));
- assertTrue(getRouteIds(controller.getSelectableRoutes())
- .contains(ROUTE_ID4_TO_SELECT_AND_DESELECT));
-
- onControllerUpdatedLatchForDeselect.countDown();
- }
- }
- };
-
- // TODO: Remove this once the MediaRouter2 becomes always connected to the service.
- RouteCallback routeCallback = new RouteCallback();
- mRouter2.registerRouteCallback(mExecutor, routeCallback, RouteDiscoveryPreference.EMPTY);
-
- try {
- mRouter2.registerControllerCallback(mExecutor, controllerCallback);
- mRouter2.requestCreateController(routeToCreateSessionWith);
- assertTrue(onControllerCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
-
- assertEquals(1, controllers.size());
- RoutingController controller = controllers.get(0);
- assertTrue(getRouteIds(controller.getSelectableRoutes())
- .contains(ROUTE_ID4_TO_SELECT_AND_DESELECT));
-
- // Select ROUTE_ID4_TO_SELECT_AND_DESELECT
- MediaRoute2Info routeToSelectAndDeselect = routes.get(
- ROUTE_ID4_TO_SELECT_AND_DESELECT);
- assertNotNull(routeToSelectAndDeselect);
-
- controller.selectRoute(routeToSelectAndDeselect);
- assertTrue(onControllerUpdatedLatchForSelect.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
-
- controller.deselectRoute(routeToSelectAndDeselect);
- assertTrue(onControllerUpdatedLatchForDeselect.await(
- TIMEOUT_MS, TimeUnit.MILLISECONDS));
- } finally {
- releaseControllers(controllers);
- mRouter2.unregisterRouteCallback(routeCallback);
- mRouter2.unregisterControllerCallback(controllerCallback);
- }
- }
-
- @Test
- public void testRoutingControllerTransferToRoute() throws Exception {
- final List<String> sampleRouteType = new ArrayList<>();
- sampleRouteType.add(FEATURE_SAMPLE);
-
- Map<String, MediaRoute2Info> routes = waitAndGetRoutes(sampleRouteType);
- MediaRoute2Info routeToCreateSessionWith = routes.get(ROUTE_ID1);
- assertNotNull(routeToCreateSessionWith);
-
- final CountDownLatch onControllerCreatedLatch = new CountDownLatch(1);
- final CountDownLatch onControllerUpdatedLatch = new CountDownLatch(1);
- final List<RoutingController> controllers = new ArrayList<>();
-
- // Create session with ROUTE_ID1
- RoutingControllerCallback controllerCallback = new RoutingControllerCallback() {
- @Override
- public void onControllerCreated(RoutingController controller) {
- assertNotNull(controller);
- assertTrue(getRouteIds(controller.getSelectedRoutes()).contains(ROUTE_ID1));
- controllers.add(controller);
- onControllerCreatedLatch.countDown();
- }
-
- @Override
- public void onControllerUpdated(RoutingController controller) {
- if (onControllerCreatedLatch.getCount() != 0
- || !TextUtils.equals(
- controllers.get(0).getId(), controller.getId())) {
- return;
- }
- assertEquals(1, controller.getSelectedRoutes().size());
- assertFalse(getRouteIds(controller.getSelectedRoutes()).contains(ROUTE_ID1));
- assertTrue(getRouteIds(controller.getSelectedRoutes())
- .contains(ROUTE_ID5_TO_TRANSFER_TO));
- assertFalse(getRouteIds(controller.getTransferrableRoutes())
- .contains(ROUTE_ID5_TO_TRANSFER_TO));
-
- onControllerUpdatedLatch.countDown();
- }
- };
-
- // TODO: Remove this once the MediaRouter2 becomes always connected to the service.
- RouteCallback routeCallback = new RouteCallback();
- mRouter2.registerRouteCallback(mExecutor, routeCallback, RouteDiscoveryPreference.EMPTY);
-
- try {
- mRouter2.registerControllerCallback(mExecutor, controllerCallback);
- mRouter2.requestCreateController(routeToCreateSessionWith);
- assertTrue(onControllerCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
-
- assertEquals(1, controllers.size());
- RoutingController controller = controllers.get(0);
- assertTrue(getRouteIds(controller.getTransferrableRoutes())
- .contains(ROUTE_ID5_TO_TRANSFER_TO));
-
- // Transfer to ROUTE_ID5_TO_TRANSFER_TO
- MediaRoute2Info routeToTransferTo = routes.get(ROUTE_ID5_TO_TRANSFER_TO);
- assertNotNull(routeToTransferTo);
-
- controller.transferToRoute(routeToTransferTo);
- assertTrue(onControllerUpdatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- } finally {
- releaseControllers(controllers);
- mRouter2.unregisterRouteCallback(routeCallback);
- mRouter2.unregisterControllerCallback(controllerCallback);
- }
- }
-
- // TODO: Add tests for onSessionReleased() when provider releases the session.
-
- @Test
- public void testRoutingControllerRelease() throws Exception {
- final List<String> sampleRouteType = new ArrayList<>();
- sampleRouteType.add(FEATURE_SAMPLE);
-
- Map<String, MediaRoute2Info> routes = waitAndGetRoutes(sampleRouteType);
- MediaRoute2Info routeToCreateSessionWith = routes.get(ROUTE_ID1);
- assertNotNull(routeToCreateSessionWith);
-
- final CountDownLatch onControllerCreatedLatch = new CountDownLatch(1);
- final CountDownLatch onControllerUpdatedLatch = new CountDownLatch(1);
- final CountDownLatch onControllerReleasedLatch = new CountDownLatch(1);
- final List<RoutingController> controllers = new ArrayList<>();
-
- // Create session with ROUTE_ID1
- RoutingControllerCallback controllerCallback = new RoutingControllerCallback() {
- @Override
- public void onControllerCreated(RoutingController controller) {
- assertNotNull(controller);
- assertTrue(getRouteIds(controller.getSelectedRoutes()).contains(ROUTE_ID1));
- controllers.add(controller);
- onControllerCreatedLatch.countDown();
- }
-
- @Override
- public void onControllerUpdated(RoutingController controller) {
- if (onControllerCreatedLatch.getCount() != 0
- || !TextUtils.equals(controllers.get(0).getId(), controller.getId())) {
- return;
- }
- onControllerUpdatedLatch.countDown();
- }
-
- @Override
- public void onControllerReleased(RoutingController controller) {
- if (onControllerCreatedLatch.getCount() != 0
- || !TextUtils.equals(controllers.get(0).getId(), controller.getId())) {
- return;
- }
- onControllerReleasedLatch.countDown();
- }
- };
-
- // TODO: Remove this once the MediaRouter2 becomes always connected to the service.
- RouteCallback routeCallback = new RouteCallback();
- mRouter2.registerRouteCallback(mExecutor, routeCallback, RouteDiscoveryPreference.EMPTY);
-
- try {
- mRouter2.registerControllerCallback(mExecutor, controllerCallback);
- mRouter2.requestCreateController(routeToCreateSessionWith);
- assertTrue(onControllerCreatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
-
- assertEquals(1, controllers.size());
- RoutingController controller = controllers.get(0);
- assertTrue(getRouteIds(controller.getTransferrableRoutes())
- .contains(ROUTE_ID5_TO_TRANSFER_TO));
-
- // Release controller. Future calls should be ignored.
- controller.release();
-
- // Transfer to ROUTE_ID5_TO_TRANSFER_TO
- MediaRoute2Info routeToTransferTo = routes.get(ROUTE_ID5_TO_TRANSFER_TO);
- assertNotNull(routeToTransferTo);
-
- // This call should be ignored.
- // The onSessionInfoChanged() shouldn't be called.
- controller.transferToRoute(routeToTransferTo);
- assertFalse(onControllerUpdatedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
-
- // onControllerReleased should be called.
- assertTrue(onControllerReleasedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- } finally {
- releaseControllers(controllers);
- mRouter2.unregisterRouteCallback(routeCallback);
- mRouter2.unregisterControllerCallback(controllerCallback);
- }
- }
-
- // TODO: Consider adding tests with bluetooth connection/disconnection.
- @Test
- public void testGetSystemController() {
- final RoutingController systemController = mRouter2.getSystemController();
- assertNotNull(systemController);
- assertFalse(systemController.isReleased());
- }
-
- @Test
- public void testControllers() {
- List<RoutingController> controllers = mRouter2.getControllers();
- assertNotNull(controllers);
- assertFalse(controllers.isEmpty());
- assertSame(mRouter2.getSystemController(), controllers.get(0));
- }
-
- // Helper for getting routes easily
- static Map<String, MediaRoute2Info> createRouteMap(List<MediaRoute2Info> routes) {
- Map<String, MediaRoute2Info> routeMap = new HashMap<>();
- for (MediaRoute2Info route : routes) {
- routeMap.put(route.getId(), route);
- }
- return routeMap;
- }
-
- Map<String, MediaRoute2Info> waitAndGetRoutes(List<String> routeTypes)
- throws Exception {
- CountDownLatch latch = new CountDownLatch(1);
-
- // A dummy callback is required to send route type info.
- RouteCallback routeCallback = new RouteCallback() {
- @Override
- public void onRoutesAdded(List<MediaRoute2Info> routes) {
- for (int i = 0; i < routes.size(); i++) {
- //TODO: use isSystem() or similar method when it's ready
- if (!TextUtils.equals(routes.get(i).getProviderId(), SYSTEM_PROVIDER_ID)) {
- latch.countDown();
- }
- }
- }
- };
-
- mRouter2.registerRouteCallback(mExecutor, routeCallback,
- new RouteDiscoveryPreference.Builder(routeTypes, true).build());
- try {
- latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS);
- return createRouteMap(mRouter2.getRoutes());
- } finally {
- mRouter2.unregisterRouteCallback(routeCallback);
- }
- }
-
- static void releaseControllers(@NonNull List<RoutingController> controllers) {
- for (RoutingController controller : controllers) {
- controller.release();
- }
- }
-
- /**
- * Returns a list of IDs of the given route list.
- */
- List<String> getRouteIds(@NonNull List<MediaRoute2Info> routes) {
- List<String> result = new ArrayList<>();
- for (MediaRoute2Info route : routes) {
- result.add(route.getId());
- }
- return result;
- }
-
- void awaitOnRouteChanged(Runnable task, String routeId,
- Predicate<MediaRoute2Info> predicate,
- List<String> routeTypes) throws Exception {
- CountDownLatch latch = new CountDownLatch(1);
- RouteCallback routeCallback = new RouteCallback() {
- @Override
- public void onRoutesChanged(List<MediaRoute2Info> changed) {
- MediaRoute2Info route = createRouteMap(changed).get(routeId);
- if (route != null && predicate.test(route)) {
- latch.countDown();
- }
- }
- };
- mRouter2.registerRouteCallback(mExecutor, routeCallback,
- new RouteDiscoveryPreference.Builder(routeTypes, true).build());
- try {
- task.run();
- assertTrue(latch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
- } finally {
- mRouter2.unregisterRouteCallback(routeCallback);
- }
- }
-}
diff --git a/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouterManagerTest.java b/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouterManagerTest.java
index 4a2044af0431..f10e5ebb5d3e 100644
--- a/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouterManagerTest.java
+++ b/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouterManagerTest.java
@@ -16,9 +16,23 @@
package com.android.mediaroutertest;
+import static android.media.MediaRoute2Info.FEATURE_LIVE_AUDIO;
import static android.media.MediaRoute2Info.PLAYBACK_VOLUME_FIXED;
import static android.media.MediaRoute2Info.PLAYBACK_VOLUME_VARIABLE;
+import static com.android.mediaroutertest.SampleMediaRoute2ProviderService.ACTION_REMOVE_ROUTE;
+import static com.android.mediaroutertest.SampleMediaRoute2ProviderService.FEATURE_SAMPLE;
+import static com.android.mediaroutertest.SampleMediaRoute2ProviderService.FEATURE_SPECIAL;
+import static com.android.mediaroutertest.SampleMediaRoute2ProviderService.ROUTE_ID1;
+import static com.android.mediaroutertest.SampleMediaRoute2ProviderService.ROUTE_ID2;
+import static com.android.mediaroutertest.SampleMediaRoute2ProviderService.ROUTE_ID5_TO_TRANSFER_TO;
+import static com.android.mediaroutertest.SampleMediaRoute2ProviderService.ROUTE_ID_FIXED_VOLUME;
+import static com.android.mediaroutertest.SampleMediaRoute2ProviderService.ROUTE_ID_SPECIAL_FEATURE;
+import static com.android.mediaroutertest.SampleMediaRoute2ProviderService.ROUTE_ID_VARIABLE_VOLUME;
+import static com.android.mediaroutertest.SampleMediaRoute2ProviderService.ROUTE_NAME1;
+import static com.android.mediaroutertest.SampleMediaRoute2ProviderService.ROUTE_NAME2;
+import static com.android.mediaroutertest.SampleMediaRoute2ProviderService.VOLUME_MAX;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -56,50 +70,6 @@ import java.util.function.Predicate;
@SmallTest
public class MediaRouterManagerTest {
private static final String TAG = "MediaRouterManagerTest";
-
- public static final String SAMPLE_PROVIDER_ROUTES_ID_PREFIX =
- "com.android.mediarouteprovider.example/.SampleMediaRoute2ProviderService:";
-
- // Must be the same as SampleMediaRoute2ProviderService except the prefix of IDs.
- public static final String ROUTE_ID1 = SAMPLE_PROVIDER_ROUTES_ID_PREFIX + "route_id1";
- public static final String ROUTE_NAME1 = "Sample Route 1";
- public static final String ROUTE_ID2 = SAMPLE_PROVIDER_ROUTES_ID_PREFIX + "route_id2";
- public static final String ROUTE_NAME2 = "Sample Route 2";
- public static final String ROUTE_ID3_SESSION_CREATION_FAILED =
- SAMPLE_PROVIDER_ROUTES_ID_PREFIX + "route_id3_session_creation_failed";
- public static final String ROUTE_NAME3 = "Sample Route 3 - Session creation failed";
- public static final String ROUTE_ID4_TO_SELECT_AND_DESELECT =
- SAMPLE_PROVIDER_ROUTES_ID_PREFIX + "route_id4_to_select_and_deselect";
- public static final String ROUTE_NAME4 = "Sample Route 4 - Route to select and deselect";
- public static final String ROUTE_ID5_TO_TRANSFER_TO =
- SAMPLE_PROVIDER_ROUTES_ID_PREFIX + "route_id5_to_transfer_to";
- public static final String ROUTE_NAME5 = "Sample Route 5 - Route to transfer to";
-
- public static final String ROUTE_ID_SPECIAL_FEATURE =
- SAMPLE_PROVIDER_ROUTES_ID_PREFIX + "route_special_feature";
- public static final String ROUTE_NAME_SPECIAL_FEATURE = "Special Feature Route";
-
- public static final String SYSTEM_PROVIDER_ID =
- "com.android.server.media/.SystemMediaRoute2Provider";
-
- public static final int VOLUME_MAX = 100;
- public static final String ROUTE_ID_FIXED_VOLUME =
- SAMPLE_PROVIDER_ROUTES_ID_PREFIX + "route_fixed_volume";
- public static final String ROUTE_NAME_FIXED_VOLUME = "Fixed Volume Route";
- public static final String ROUTE_ID_VARIABLE_VOLUME =
- SAMPLE_PROVIDER_ROUTES_ID_PREFIX + "route_variable_volume";
- public static final String ROUTE_NAME_VARIABLE_VOLUME = "Variable Volume Route";
-
- public static final String ACTION_REMOVE_ROUTE =
- "com.android.mediarouteprovider.action_remove_route";
-
- public static final String FEATURE_SAMPLE =
- "com.android.mediarouteprovider.FEATURE_SAMPLE";
- public static final String FEATURE_SPECIAL =
- "com.android.mediarouteprovider.FEATURE_SPECIAL";
-
- private static final String FEATURE_LIVE_AUDIO = "android.media.intent.route.LIVE_AUDIO";
-
private static final int TIMEOUT_MS = 5000;
private Context mContext;
@@ -155,7 +125,8 @@ public class MediaRouterManagerTest {
public void onRoutesAdded(List<MediaRoute2Info> routes) {
assertTrue(routes.size() > 0);
for (MediaRoute2Info route : routes) {
- if (route.getId().equals(ROUTE_ID1) && route.getName().equals(ROUTE_NAME1)) {
+ if (route.getOriginalId().equals(ROUTE_ID1)
+ && route.getName().equals(ROUTE_NAME1)) {
latch.countDown();
}
}
@@ -176,7 +147,8 @@ public class MediaRouterManagerTest {
public void onRoutesRemoved(List<MediaRoute2Info> routes) {
assertTrue(routes.size() > 0);
for (MediaRoute2Info route : routes) {
- if (route.getId().equals(ROUTE_ID2) && route.getName().equals(ROUTE_NAME2)) {
+ if (route.getOriginalId().equals(ROUTE_ID2)
+ && route.getName().equals(ROUTE_NAME2)) {
latch.countDown();
}
}
@@ -196,7 +168,14 @@ public class MediaRouterManagerTest {
public void testRouteFeatures() throws Exception {
Map<String, MediaRoute2Info> routes = waitAndGetRoutesWithManager(FEATURES_SPECIAL);
- assertEquals(1, routes.size());
+ int routeCount = 0;
+ for (MediaRoute2Info route : routes.values()) {
+ if (!route.isSystemRoute()) {
+ routeCount++;
+ }
+ }
+
+ assertEquals(1, routeCount);
assertNotNull(routes.get(ROUTE_ID_SPECIAL_FEATURE));
}
@@ -310,12 +289,13 @@ public class MediaRouterManagerTest {
MediaRoute2Info volRoute = routes.get(ROUTE_ID_VARIABLE_VOLUME);
int originalVolume = volRoute.getVolume();
- int deltaVolume = (originalVolume == volRoute.getVolumeMax() ? -1 : 1);
+ int targetVolume = originalVolume == volRoute.getVolumeMax()
+ ? originalVolume - 1 : originalVolume + 1;
awaitOnRouteChangedManager(
- () -> mManager.requestUpdateVolume(volRoute, deltaVolume),
+ () -> mManager.requestSetVolume(volRoute, targetVolume),
ROUTE_ID_VARIABLE_VOLUME,
- (route -> route.getVolume() == originalVolume + deltaVolume));
+ (route -> route.getVolume() == targetVolume));
awaitOnRouteChangedManager(
() -> mManager.requestSetVolume(volRoute, originalVolume),
@@ -345,8 +325,7 @@ public class MediaRouterManagerTest {
@Override
public void onRoutesAdded(List<MediaRoute2Info> routes) {
for (int i = 0; i < routes.size(); i++) {
- //TODO: use isSystem() or similar method when it's ready
- if (!TextUtils.equals(routes.get(i).getProviderId(), SYSTEM_PROVIDER_ID)) {
+ if (!routes.get(i).isSystemRoute()) {
latch.countDown();
break;
}
@@ -399,7 +378,7 @@ public class MediaRouterManagerTest {
static Map<String, MediaRoute2Info> createRouteMap(List<MediaRoute2Info> routes) {
Map<String, MediaRoute2Info> routeMap = new HashMap<>();
for (MediaRoute2Info route : routes) {
- routeMap.put(route.getId(), route);
+ routeMap.put(route.getOriginalId(), route);
}
return routeMap;
}
diff --git a/media/tests/MediaRouter/src/com/android/mediaroutertest/RouteDiscoveryPreferenceTest.java b/media/tests/MediaRouter/src/com/android/mediaroutertest/RouteDiscoveryPreferenceTest.java
deleted file mode 100644
index fa129350ed8b..000000000000
--- a/media/tests/MediaRouter/src/com/android/mediaroutertest/RouteDiscoveryPreferenceTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.mediaroutertest;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-
-import android.media.RouteDiscoveryPreference;
-import android.os.Parcel;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class RouteDiscoveryPreferenceTest {
- @Before
- public void setUp() throws Exception { }
-
- @After
- public void tearDown() throws Exception { }
-
- @Test
- public void testEquality() {
- List<String> testTypes = new ArrayList<>();
- testTypes.add("TEST_TYPE_1");
- testTypes.add("TEST_TYPE_2");
- RouteDiscoveryPreference request = new RouteDiscoveryPreference.Builder(testTypes, true)
- .build();
-
- RouteDiscoveryPreference requestRebuilt = new RouteDiscoveryPreference.Builder(request)
- .build();
-
- assertEquals(request, requestRebuilt);
-
- Parcel parcel = Parcel.obtain();
- parcel.writeParcelable(request, 0);
- parcel.setDataPosition(0);
- RouteDiscoveryPreference requestFromParcel = parcel.readParcelable(null);
-
- assertEquals(request, requestFromParcel);
- }
-
- @Test
- public void testInequality() {
- List<String> testTypes = new ArrayList<>();
- testTypes.add("TEST_TYPE_1");
- testTypes.add("TEST_TYPE_2");
-
- List<String> testTypes2 = new ArrayList<>();
- testTypes.add("TEST_TYPE_3");
-
- RouteDiscoveryPreference request = new RouteDiscoveryPreference.Builder(testTypes, true)
- .build();
-
- RouteDiscoveryPreference requestTypes = new RouteDiscoveryPreference.Builder(request)
- .setPreferredFeatures(testTypes2)
- .build();
- assertNotEquals(request, requestTypes);
-
- RouteDiscoveryPreference requestActiveScan = new RouteDiscoveryPreference.Builder(request)
- .setActiveScan(false)
- .build();
- assertNotEquals(request, requestActiveScan);
- }
-}
diff --git a/media/tests/MediaRouter/src/com/android/mediaroutertest/RoutingSessionInfoTest.java b/media/tests/MediaRouter/src/com/android/mediaroutertest/RoutingSessionInfoTest.java
deleted file mode 100644
index 704dca0427ed..000000000000
--- a/media/tests/MediaRouter/src/com/android/mediaroutertest/RoutingSessionInfoTest.java
+++ /dev/null
@@ -1,526 +0,0 @@
-/*
- * Copyright 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.mediaroutertest;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.testng.Assert.assertThrows;
-
-import android.media.RoutingSessionInfo;
-import android.os.Bundle;
-import android.os.Parcel;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-/**
- * Tests {@link RoutingSessionInfo} and its {@link RoutingSessionInfo.Builder builder}.
- */
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class RoutingSessionInfoTest {
- public static final String TEST_ID = "test_id";
- public static final String TEST_CLIENT_PACKAGE_NAME = "com.test.client.package.name";
- public static final String TEST_ROUTE_FEATURE = "test_route_feature";
-
- public static final String TEST_ROUTE_ID_0 = "test_route_type_0";
- public static final String TEST_ROUTE_ID_1 = "test_route_type_1";
- public static final String TEST_ROUTE_ID_2 = "test_route_type_2";
- public static final String TEST_ROUTE_ID_3 = "test_route_type_3";
- public static final String TEST_ROUTE_ID_4 = "test_route_type_4";
- public static final String TEST_ROUTE_ID_5 = "test_route_type_5";
- public static final String TEST_ROUTE_ID_6 = "test_route_type_6";
- public static final String TEST_ROUTE_ID_7 = "test_route_type_7";
-
- public static final String TEST_KEY = "test_key";
- public static final String TEST_VALUE = "test_value";
-
- @Test
- public void testBuilderConstructorWithInvalidValues() {
- final String nullId = null;
- final String nullClientPackageName = null;
-
- final String emptyId = "";
- // Note: An empty string as client package name is valid.
-
- final String validId = TEST_ID;
- final String validClientPackageName = TEST_CLIENT_PACKAGE_NAME;
-
- // ID is invalid
- assertThrows(IllegalArgumentException.class, () -> new RoutingSessionInfo.Builder(
- nullId, validClientPackageName));
- assertThrows(IllegalArgumentException.class, () -> new RoutingSessionInfo.Builder(
- emptyId, validClientPackageName));
-
- // client package name is invalid (null)
- assertThrows(NullPointerException.class, () -> new RoutingSessionInfo.Builder(
- validId, nullClientPackageName));
-
- // Both are invalid
- assertThrows(IllegalArgumentException.class, () -> new RoutingSessionInfo.Builder(
- nullId, nullClientPackageName));
- assertThrows(IllegalArgumentException.class, () -> new RoutingSessionInfo.Builder(
- emptyId, nullClientPackageName));
- }
-
- @Test
- public void testBuilderCopyConstructorWithNull() {
- // Null RouteInfo (1-argument constructor)
- final RoutingSessionInfo nullRoutingSessionInfo = null;
- assertThrows(NullPointerException.class,
- () -> new RoutingSessionInfo.Builder(nullRoutingSessionInfo));
- }
-
- @Test
- public void testBuilderConstructorWithEmptyClientPackageName() {
- // An empty string for client package name is valid. (for unknown cases)
- // Creating builder with it should not throw any exception.
- RoutingSessionInfo.Builder builder = new RoutingSessionInfo.Builder(
- TEST_ID, "" /* clientPackageName*/);
- }
-
- @Test
- public void testBuilderBuildWithEmptySelectedRoutesThrowsIAE() {
- RoutingSessionInfo.Builder builder = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME);
- // Note: Calling build() without adding any selected routes.
- assertThrows(IllegalArgumentException.class, () -> builder.build());
- }
-
- @Test
- public void testBuilderAddRouteMethodsWithIllegalArgumentsThrowsIAE() {
- RoutingSessionInfo.Builder builder = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME);
-
- final String nullRouteId = null;
- final String emptyRouteId = "";
-
- assertThrows(IllegalArgumentException.class,
- () -> builder.addSelectedRoute(nullRouteId));
- assertThrows(IllegalArgumentException.class,
- () -> builder.addSelectableRoute(nullRouteId));
- assertThrows(IllegalArgumentException.class,
- () -> builder.addDeselectableRoute(nullRouteId));
- assertThrows(IllegalArgumentException.class,
- () -> builder.addTransferrableRoute(nullRouteId));
-
- assertThrows(IllegalArgumentException.class,
- () -> builder.addSelectedRoute(emptyRouteId));
- assertThrows(IllegalArgumentException.class,
- () -> builder.addSelectableRoute(emptyRouteId));
- assertThrows(IllegalArgumentException.class,
- () -> builder.addDeselectableRoute(emptyRouteId));
- assertThrows(IllegalArgumentException.class,
- () -> builder.addTransferrableRoute(emptyRouteId));
- }
-
- @Test
- public void testBuilderRemoveRouteMethodsWithIllegalArgumentsThrowsIAE() {
- RoutingSessionInfo.Builder builder = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME);
-
- final String nullRouteId = null;
- final String emptyRouteId = "";
-
- assertThrows(IllegalArgumentException.class,
- () -> builder.removeSelectedRoute(nullRouteId));
- assertThrows(IllegalArgumentException.class,
- () -> builder.removeSelectableRoute(nullRouteId));
- assertThrows(IllegalArgumentException.class,
- () -> builder.removeDeselectableRoute(nullRouteId));
- assertThrows(IllegalArgumentException.class,
- () -> builder.removeTransferrableRoute(nullRouteId));
-
- assertThrows(IllegalArgumentException.class,
- () -> builder.removeSelectedRoute(emptyRouteId));
- assertThrows(IllegalArgumentException.class,
- () -> builder.removeSelectableRoute(emptyRouteId));
- assertThrows(IllegalArgumentException.class,
- () -> builder.removeDeselectableRoute(emptyRouteId));
- assertThrows(IllegalArgumentException.class,
- () -> builder.removeTransferrableRoute(emptyRouteId));
- }
-
- @Test
- public void testBuilderAndGettersOfRoutingSessionInfo() {
- Bundle controlHints = new Bundle();
- controlHints.putString(TEST_KEY, TEST_VALUE);
-
- RoutingSessionInfo sessionInfo = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME)
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .addSelectedRoute(TEST_ROUTE_ID_1)
- .addSelectableRoute(TEST_ROUTE_ID_2)
- .addSelectableRoute(TEST_ROUTE_ID_3)
- .addDeselectableRoute(TEST_ROUTE_ID_4)
- .addDeselectableRoute(TEST_ROUTE_ID_5)
- .addTransferrableRoute(TEST_ROUTE_ID_6)
- .addTransferrableRoute(TEST_ROUTE_ID_7)
- .setControlHints(controlHints)
- .build();
-
- assertEquals(TEST_ID, sessionInfo.getId());
- assertEquals(TEST_CLIENT_PACKAGE_NAME, sessionInfo.getClientPackageName());
-
- assertEquals(2, sessionInfo.getSelectedRoutes().size());
- assertEquals(TEST_ROUTE_ID_0, sessionInfo.getSelectedRoutes().get(0));
- assertEquals(TEST_ROUTE_ID_1, sessionInfo.getSelectedRoutes().get(1));
-
- assertEquals(2, sessionInfo.getSelectableRoutes().size());
- assertEquals(TEST_ROUTE_ID_2, sessionInfo.getSelectableRoutes().get(0));
- assertEquals(TEST_ROUTE_ID_3, sessionInfo.getSelectableRoutes().get(1));
-
- assertEquals(2, sessionInfo.getDeselectableRoutes().size());
- assertEquals(TEST_ROUTE_ID_4, sessionInfo.getDeselectableRoutes().get(0));
- assertEquals(TEST_ROUTE_ID_5, sessionInfo.getDeselectableRoutes().get(1));
-
- assertEquals(2, sessionInfo.getTransferrableRoutes().size());
- assertEquals(TEST_ROUTE_ID_6, sessionInfo.getTransferrableRoutes().get(0));
- assertEquals(TEST_ROUTE_ID_7, sessionInfo.getTransferrableRoutes().get(1));
-
- Bundle controlHintsOut = sessionInfo.getControlHints();
- assertNotNull(controlHintsOut);
- assertTrue(controlHintsOut.containsKey(TEST_KEY));
- assertEquals(TEST_VALUE, controlHintsOut.getString(TEST_KEY));
- }
-
- @Test
- public void testBuilderAddRouteMethodsWithBuilderCopyConstructor() {
- RoutingSessionInfo sessionInfo = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME)
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .addSelectableRoute(TEST_ROUTE_ID_2)
- .addDeselectableRoute(TEST_ROUTE_ID_4)
- .addTransferrableRoute(TEST_ROUTE_ID_6)
- .build();
-
- RoutingSessionInfo newSessionInfo = new RoutingSessionInfo.Builder(sessionInfo)
- .addSelectedRoute(TEST_ROUTE_ID_1)
- .addSelectableRoute(TEST_ROUTE_ID_3)
- .addDeselectableRoute(TEST_ROUTE_ID_5)
- .addTransferrableRoute(TEST_ROUTE_ID_7)
- .build();
-
- assertEquals(2, newSessionInfo.getSelectedRoutes().size());
- assertEquals(TEST_ROUTE_ID_0, newSessionInfo.getSelectedRoutes().get(0));
- assertEquals(TEST_ROUTE_ID_1, newSessionInfo.getSelectedRoutes().get(1));
-
- assertEquals(2, newSessionInfo.getSelectableRoutes().size());
- assertEquals(TEST_ROUTE_ID_2, newSessionInfo.getSelectableRoutes().get(0));
- assertEquals(TEST_ROUTE_ID_3, newSessionInfo.getSelectableRoutes().get(1));
-
- assertEquals(2, newSessionInfo.getDeselectableRoutes().size());
- assertEquals(TEST_ROUTE_ID_4, newSessionInfo.getDeselectableRoutes().get(0));
- assertEquals(TEST_ROUTE_ID_5, newSessionInfo.getDeselectableRoutes().get(1));
-
- assertEquals(2, newSessionInfo.getTransferrableRoutes().size());
- assertEquals(TEST_ROUTE_ID_6, newSessionInfo.getTransferrableRoutes().get(0));
- assertEquals(TEST_ROUTE_ID_7, newSessionInfo.getTransferrableRoutes().get(1));
- }
-
- @Test
- public void testBuilderRemoveRouteMethods() {
- RoutingSessionInfo sessionInfo = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME)
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .addSelectedRoute(TEST_ROUTE_ID_1)
- .removeSelectedRoute(TEST_ROUTE_ID_1)
-
- .addSelectableRoute(TEST_ROUTE_ID_2)
- .addSelectableRoute(TEST_ROUTE_ID_3)
- .removeSelectableRoute(TEST_ROUTE_ID_3)
-
- .addDeselectableRoute(TEST_ROUTE_ID_4)
- .addDeselectableRoute(TEST_ROUTE_ID_5)
- .removeDeselectableRoute(TEST_ROUTE_ID_5)
-
- .addTransferrableRoute(TEST_ROUTE_ID_6)
- .addTransferrableRoute(TEST_ROUTE_ID_7)
- .removeTransferrableRoute(TEST_ROUTE_ID_7)
-
- .build();
-
- assertEquals(1, sessionInfo.getSelectedRoutes().size());
- assertEquals(TEST_ROUTE_ID_0, sessionInfo.getSelectedRoutes().get(0));
-
- assertEquals(1, sessionInfo.getSelectableRoutes().size());
- assertEquals(TEST_ROUTE_ID_2, sessionInfo.getSelectableRoutes().get(0));
-
- assertEquals(1, sessionInfo.getDeselectableRoutes().size());
- assertEquals(TEST_ROUTE_ID_4, sessionInfo.getDeselectableRoutes().get(0));
-
- assertEquals(1, sessionInfo.getTransferrableRoutes().size());
- assertEquals(TEST_ROUTE_ID_6, sessionInfo.getTransferrableRoutes().get(0));
- }
-
- @Test
- public void testBuilderRemoveRouteMethodsWithBuilderCopyConstructor() {
- RoutingSessionInfo sessionInfo = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME)
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .addSelectedRoute(TEST_ROUTE_ID_1)
- .addSelectableRoute(TEST_ROUTE_ID_2)
- .addSelectableRoute(TEST_ROUTE_ID_3)
- .addDeselectableRoute(TEST_ROUTE_ID_4)
- .addDeselectableRoute(TEST_ROUTE_ID_5)
- .addTransferrableRoute(TEST_ROUTE_ID_6)
- .addTransferrableRoute(TEST_ROUTE_ID_7)
- .build();
-
- RoutingSessionInfo newSessionInfo = new RoutingSessionInfo.Builder(sessionInfo)
- .removeSelectedRoute(TEST_ROUTE_ID_1)
- .removeSelectableRoute(TEST_ROUTE_ID_3)
- .removeDeselectableRoute(TEST_ROUTE_ID_5)
- .removeTransferrableRoute(TEST_ROUTE_ID_7)
- .build();
-
- assertEquals(1, newSessionInfo.getSelectedRoutes().size());
- assertEquals(TEST_ROUTE_ID_0, newSessionInfo.getSelectedRoutes().get(0));
-
- assertEquals(1, newSessionInfo.getSelectableRoutes().size());
- assertEquals(TEST_ROUTE_ID_2, newSessionInfo.getSelectableRoutes().get(0));
-
- assertEquals(1, newSessionInfo.getDeselectableRoutes().size());
- assertEquals(TEST_ROUTE_ID_4, newSessionInfo.getDeselectableRoutes().get(0));
-
- assertEquals(1, newSessionInfo.getTransferrableRoutes().size());
- assertEquals(TEST_ROUTE_ID_6, newSessionInfo.getTransferrableRoutes().get(0));
- }
-
- @Test
- public void testBuilderClearRouteMethods() {
- RoutingSessionInfo sessionInfo = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME)
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .addSelectedRoute(TEST_ROUTE_ID_1)
- .clearSelectedRoutes()
-
- .addSelectableRoute(TEST_ROUTE_ID_2)
- .addSelectableRoute(TEST_ROUTE_ID_3)
- .clearSelectableRoutes()
-
- .addDeselectableRoute(TEST_ROUTE_ID_4)
- .addDeselectableRoute(TEST_ROUTE_ID_5)
- .clearDeselectableRoutes()
-
- .addTransferrableRoute(TEST_ROUTE_ID_6)
- .addTransferrableRoute(TEST_ROUTE_ID_7)
- .clearTransferrableRoutes()
-
- // SelectedRoutes must not be empty
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .build();
-
- assertEquals(1, sessionInfo.getSelectedRoutes().size());
- assertEquals(TEST_ROUTE_ID_0, sessionInfo.getSelectedRoutes().get(0));
-
- assertTrue(sessionInfo.getSelectableRoutes().isEmpty());
- assertTrue(sessionInfo.getDeselectableRoutes().isEmpty());
- assertTrue(sessionInfo.getTransferrableRoutes().isEmpty());
- }
-
- @Test
- public void testBuilderClearRouteMethodsWithBuilderCopyConstructor() {
- RoutingSessionInfo sessionInfo = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME)
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .addSelectedRoute(TEST_ROUTE_ID_1)
- .addSelectableRoute(TEST_ROUTE_ID_2)
- .addSelectableRoute(TEST_ROUTE_ID_3)
- .addDeselectableRoute(TEST_ROUTE_ID_4)
- .addDeselectableRoute(TEST_ROUTE_ID_5)
- .addTransferrableRoute(TEST_ROUTE_ID_6)
- .addTransferrableRoute(TEST_ROUTE_ID_7)
- .build();
-
- RoutingSessionInfo newSessionInfo = new RoutingSessionInfo.Builder(sessionInfo)
- .clearSelectedRoutes()
- .clearSelectableRoutes()
- .clearDeselectableRoutes()
- .clearTransferrableRoutes()
- // SelectedRoutes must not be empty
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .build();
-
- assertEquals(1, newSessionInfo.getSelectedRoutes().size());
- assertEquals(TEST_ROUTE_ID_0, newSessionInfo.getSelectedRoutes().get(0));
-
- assertTrue(newSessionInfo.getSelectableRoutes().isEmpty());
- assertTrue(newSessionInfo.getDeselectableRoutes().isEmpty());
- assertTrue(newSessionInfo.getTransferrableRoutes().isEmpty());
- }
-
- @Test
- public void testEqualsCreatedWithSameArguments() {
- Bundle controlHints = new Bundle();
- controlHints.putString(TEST_KEY, TEST_VALUE);
-
- RoutingSessionInfo sessionInfo1 = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME)
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .addSelectedRoute(TEST_ROUTE_ID_1)
- .addSelectableRoute(TEST_ROUTE_ID_2)
- .addSelectableRoute(TEST_ROUTE_ID_3)
- .addDeselectableRoute(TEST_ROUTE_ID_4)
- .addDeselectableRoute(TEST_ROUTE_ID_5)
- .addTransferrableRoute(TEST_ROUTE_ID_6)
- .addTransferrableRoute(TEST_ROUTE_ID_7)
- .setControlHints(controlHints)
- .build();
-
- RoutingSessionInfo sessionInfo2 = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME)
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .addSelectedRoute(TEST_ROUTE_ID_1)
- .addSelectableRoute(TEST_ROUTE_ID_2)
- .addSelectableRoute(TEST_ROUTE_ID_3)
- .addDeselectableRoute(TEST_ROUTE_ID_4)
- .addDeselectableRoute(TEST_ROUTE_ID_5)
- .addTransferrableRoute(TEST_ROUTE_ID_6)
- .addTransferrableRoute(TEST_ROUTE_ID_7)
- .setControlHints(controlHints)
- .build();
-
- assertEquals(sessionInfo1, sessionInfo2);
- assertEquals(sessionInfo1.hashCode(), sessionInfo2.hashCode());
- }
-
- @Test
- public void testEqualsCreatedWithBuilderCopyConstructor() {
- Bundle controlHints = new Bundle();
- controlHints.putString(TEST_KEY, TEST_VALUE);
-
- RoutingSessionInfo sessionInfo1 = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME)
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .addSelectedRoute(TEST_ROUTE_ID_1)
- .addSelectableRoute(TEST_ROUTE_ID_2)
- .addSelectableRoute(TEST_ROUTE_ID_3)
- .addDeselectableRoute(TEST_ROUTE_ID_4)
- .addDeselectableRoute(TEST_ROUTE_ID_5)
- .addTransferrableRoute(TEST_ROUTE_ID_6)
- .addTransferrableRoute(TEST_ROUTE_ID_7)
- .setControlHints(controlHints)
- .build();
-
- RoutingSessionInfo sessionInfo2 = new RoutingSessionInfo.Builder(sessionInfo1).build();
-
- assertEquals(sessionInfo1, sessionInfo2);
- assertEquals(sessionInfo1.hashCode(), sessionInfo2.hashCode());
- }
-
- @Test
- public void testEqualsReturnFalse() {
- Bundle controlHints = new Bundle();
- controlHints.putString(TEST_KEY, TEST_VALUE);
-
- RoutingSessionInfo sessionInfo = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME)
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .addSelectedRoute(TEST_ROUTE_ID_1)
- .addSelectableRoute(TEST_ROUTE_ID_2)
- .addSelectableRoute(TEST_ROUTE_ID_3)
- .addDeselectableRoute(TEST_ROUTE_ID_4)
- .addDeselectableRoute(TEST_ROUTE_ID_5)
- .addTransferrableRoute(TEST_ROUTE_ID_6)
- .addTransferrableRoute(TEST_ROUTE_ID_7)
- .setControlHints(controlHints)
- .build();
-
- // Now, we will use copy constructor
- assertNotEquals(sessionInfo, new RoutingSessionInfo.Builder(sessionInfo)
- .addSelectedRoute("randomRoute")
- .build());
- assertNotEquals(sessionInfo, new RoutingSessionInfo.Builder(sessionInfo)
- .addSelectableRoute("randomRoute")
- .build());
- assertNotEquals(sessionInfo, new RoutingSessionInfo.Builder(sessionInfo)
- .addDeselectableRoute("randomRoute")
- .build());
- assertNotEquals(sessionInfo, new RoutingSessionInfo.Builder(sessionInfo)
- .addTransferrableRoute("randomRoute")
- .build());
-
- assertNotEquals(sessionInfo, new RoutingSessionInfo.Builder(sessionInfo)
- .removeSelectedRoute(TEST_ROUTE_ID_1)
- .build());
- assertNotEquals(sessionInfo, new RoutingSessionInfo.Builder(sessionInfo)
- .removeSelectableRoute(TEST_ROUTE_ID_3)
- .build());
- assertNotEquals(sessionInfo, new RoutingSessionInfo.Builder(sessionInfo)
- .removeDeselectableRoute(TEST_ROUTE_ID_5)
- .build());
- assertNotEquals(sessionInfo, new RoutingSessionInfo.Builder(sessionInfo)
- .removeTransferrableRoute(TEST_ROUTE_ID_7)
- .build());
-
- assertNotEquals(sessionInfo, new RoutingSessionInfo.Builder(sessionInfo)
- .clearSelectedRoutes()
- // Note: Calling build() with empty selected routes will throw IAE.
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .build());
- assertNotEquals(sessionInfo, new RoutingSessionInfo.Builder(sessionInfo)
- .clearSelectableRoutes()
- .build());
- assertNotEquals(sessionInfo, new RoutingSessionInfo.Builder(sessionInfo)
- .clearDeselectableRoutes()
- .build());
- assertNotEquals(sessionInfo, new RoutingSessionInfo.Builder(sessionInfo)
- .clearTransferrableRoutes()
- .build());
-
- // Note: ControlHints will not affect the equals.
- }
-
- @Test
- public void testParcelingAndUnParceling() {
- Bundle controlHints = new Bundle();
- controlHints.putString(TEST_KEY, TEST_VALUE);
-
- RoutingSessionInfo sessionInfo = new RoutingSessionInfo.Builder(
- TEST_ID, TEST_CLIENT_PACKAGE_NAME)
- .addSelectedRoute(TEST_ROUTE_ID_0)
- .addSelectedRoute(TEST_ROUTE_ID_1)
- .addSelectableRoute(TEST_ROUTE_ID_2)
- .addSelectableRoute(TEST_ROUTE_ID_3)
- .addDeselectableRoute(TEST_ROUTE_ID_4)
- .addDeselectableRoute(TEST_ROUTE_ID_5)
- .addTransferrableRoute(TEST_ROUTE_ID_6)
- .addTransferrableRoute(TEST_ROUTE_ID_7)
- .setControlHints(controlHints)
- .build();
-
- Parcel parcel = Parcel.obtain();
- sessionInfo.writeToParcel(parcel, 0);
- parcel.setDataPosition(0);
-
- RoutingSessionInfo sessionInfoFromParcel =
- RoutingSessionInfo.CREATOR.createFromParcel(parcel);
- assertEquals(sessionInfo, sessionInfoFromParcel);
- assertEquals(sessionInfo.hashCode(), sessionInfoFromParcel.hashCode());
-
- // Check controlHints
- Bundle controlHintsOut = sessionInfoFromParcel.getControlHints();
- assertNotNull(controlHintsOut);
- assertTrue(controlHintsOut.containsKey(TEST_KEY));
- assertEquals(TEST_VALUE, controlHintsOut.getString(TEST_KEY));
- }
-}
diff --git a/media/tests/MediaRouteProvider/src/com/android/mediarouteprovider/example/SampleMediaRoute2ProviderService.java b/media/tests/MediaRouter/src/com/android/mediaroutertest/SampleMediaRoute2ProviderService.java
index 6595cae3c028..1a866cafff90 100644
--- a/media/tests/MediaRouteProvider/src/com/android/mediarouteprovider/example/SampleMediaRoute2ProviderService.java
+++ b/media/tests/MediaRouter/src/com/android/mediaroutertest/SampleMediaRoute2ProviderService.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.mediarouteprovider.example;
+package com.android.mediaroutertest;
import static android.media.MediaRoute2Info.DEVICE_TYPE_REMOTE_SPEAKER;
import static android.media.MediaRoute2Info.DEVICE_TYPE_REMOTE_TV;
@@ -154,21 +154,6 @@ public class SampleMediaRoute2ProviderService extends MediaRoute2ProviderService
}
@Override
- public void onUpdateVolume(String routeId, int delta) {
- android.util.Log.d(TAG, "onUpdateVolume routeId= " + routeId + "delta=" + delta);
- MediaRoute2Info route = mRoutes.get(routeId);
- if (route == null) {
- return;
- }
- int volume = route.getVolume() + delta;
- volume = Math.min(volume, Math.max(0, route.getVolumeMax()));
- mRoutes.put(routeId, new MediaRoute2Info.Builder(route)
- .setVolume(volume)
- .build());
- publishRoutes();
- }
-
- @Override
public void onCreateSession(String packageName, String routeId, long requestId,
@Nullable Bundle sessionHints) {
MediaRoute2Info route = mRoutes.get(routeId);
diff --git a/native/android/libandroid.map.txt b/native/android/libandroid.map.txt
index 97b861b390ad..a8f1d2c7bbba 100644
--- a/native/android/libandroid.map.txt
+++ b/native/android/libandroid.map.txt
@@ -23,6 +23,8 @@ LIBANDROID {
AChoreographer_postFrameCallbackDelayed; # introduced=24
AChoreographer_postFrameCallback64; # introduced=29
AChoreographer_postFrameCallbackDelayed64; # introduced=29
+ AChoreographer_registerRefreshRateCallback; # introduced=30
+ AChoreographer_unregisterRefreshRateCallback; # introduced=30
AConfiguration_copy;
AConfiguration_delete;
AConfiguration_diff;
diff --git a/native/android/surface_control.cpp b/native/android/surface_control.cpp
index 392c9f6404ba..ba793e83f1fb 100644
--- a/native/android/surface_control.cpp
+++ b/native/android/surface_control.cpp
@@ -294,7 +294,7 @@ void ASurfaceTransaction_setOnComplete(ASurfaceTransaction* aSurfaceTransaction,
auto& aSurfaceControlStats = aSurfaceTransactionStats.aSurfaceControlStats;
- for (const auto& [surfaceControl, acquireTime, previousReleaseFence, transformHint] : surfaceControlStats) {
+ for (const auto& [surfaceControl, latchTime, acquireTime, presentFence, previousReleaseFence, transformHint, frameEvents] : surfaceControlStats) {
ASurfaceControl* aSurfaceControl = reinterpret_cast<ASurfaceControl*>(surfaceControl.get());
aSurfaceControlStats[aSurfaceControl].acquireTime = acquireTime;
aSurfaceControlStats[aSurfaceControl].previousReleaseFence = previousReleaseFence;
diff --git a/packages/CarSystemUI/res/values/config.xml b/packages/CarSystemUI/res/values/config.xml
index e2297e44fdfe..d2f514c6c0ca 100644
--- a/packages/CarSystemUI/res/values/config.xml
+++ b/packages/CarSystemUI/res/values/config.xml
@@ -29,6 +29,9 @@
<bool name="config_enableRightNavigationBar">false</bool>
<bool name="config_enableBottomNavigationBar">true</bool>
+ <!-- Disable normal notification rendering; we handle that ourselves -->
+ <bool name="config_renderNotifications">false</bool>
+
<!-- Whether heads-up notifications should be shown when shade is open. -->
<bool name="config_enableHeadsUpNotificationWhenNotificationShadeOpen">true</bool>
diff --git a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java
index cf4ee7d97409..585acfec410a 100644
--- a/packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java
+++ b/packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java
@@ -22,7 +22,6 @@ import static com.android.systemui.Dependency.LEAK_REPORT_EMAIL_NAME;
import android.content.Context;
import com.android.systemui.car.CarDeviceProvisionedControllerImpl;
-import com.android.systemui.car.CarNotificationEntryManager;
import com.android.systemui.car.CarNotificationInterruptionStateProvider;
import com.android.systemui.dagger.SystemUIRootComponent;
import com.android.systemui.dock.DockManager;
@@ -73,13 +72,6 @@ abstract class CarSystemUIModule {
return false;
}
- /**
- * Use {@link CarNotificationEntryManager}, which does nothing when adding a notification.
- */
- @Binds
- abstract NotificationEntryManager bindNotificationEntryManager(
- CarNotificationEntryManager notificationEntryManager);
-
@Singleton
@Provides
static HeadsUpManagerPhone provideHeadsUpManagerPhone(Context context,
diff --git a/packages/CarSystemUI/src/com/android/systemui/car/CarNotificationEntryManager.java b/packages/CarSystemUI/src/com/android/systemui/car/CarNotificationEntryManager.java
deleted file mode 100644
index cfe1c702663e..000000000000
--- a/packages/CarSystemUI/src/com/android/systemui/car/CarNotificationEntryManager.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.systemui.car;
-
-import android.service.notification.NotificationListenerService;
-import android.service.notification.StatusBarNotification;
-
-import com.android.systemui.statusbar.FeatureFlags;
-import com.android.systemui.statusbar.NotificationRemoteInputManager;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
-import com.android.systemui.statusbar.notification.collection.NotificationRankingManager;
-import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinder;
-import com.android.systemui.statusbar.notification.logging.NotifLog;
-import com.android.systemui.statusbar.phone.NotificationGroupManager;
-import com.android.systemui.util.leak.LeakDetector;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import dagger.Lazy;
-
-/**
- * Car specific notification entry manager that does nothing when adding a notification.
- *
- * <p> This is because system UI notifications are disabled and we have a different implementation.
- * Please see {@link com.android.car.notification}.
- */
-@Singleton
-public class CarNotificationEntryManager extends NotificationEntryManager {
-
- @Inject
- public CarNotificationEntryManager(
- NotifLog notifLog,
- NotificationGroupManager groupManager,
- NotificationRankingManager rankingManager,
- KeyguardEnvironment keyguardEnvironment,
- FeatureFlags featureFlags,
- Lazy<NotificationRowBinder> notificationRowBinderLazy,
- Lazy<NotificationRemoteInputManager> notificationRemoteInputManagerLazy,
- LeakDetector leakDetector) {
- super(notifLog, groupManager, rankingManager, keyguardEnvironment, featureFlags,
- notificationRowBinderLazy, notificationRemoteInputManagerLazy, leakDetector);
- }
-
- @Override
- public void addNotification(
- StatusBarNotification notification, NotificationListenerService.RankingMap ranking) {
- }
-}
diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
index 76e9ec64e2f2..210dd321933a 100644
--- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java
@@ -87,10 +87,8 @@ import com.android.systemui.recents.ScreenPinningRequest;
import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
-import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.FlingAnimationUtils;
import com.android.systemui.statusbar.NavigationBarController;
-import com.android.systemui.statusbar.NotificationListener;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationMediaManager;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
@@ -103,12 +101,10 @@ import com.android.systemui.statusbar.VibratorHelper;
import com.android.systemui.statusbar.notification.BypassHeadsUpNotifier;
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
import com.android.systemui.statusbar.notification.NotificationAlertingManager;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider;
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
import com.android.systemui.statusbar.notification.VisualStabilityManager;
-import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl;
-import com.android.systemui.statusbar.notification.collection.init.NotifPipelineInitializer;
+import com.android.systemui.statusbar.notification.init.NotificationsController;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.phone.AutoHideController;
@@ -124,7 +120,6 @@ import com.android.systemui.statusbar.phone.LightBarController;
import com.android.systemui.statusbar.phone.LightsOutNotifController;
import com.android.systemui.statusbar.phone.LockscreenLockIconController;
import com.android.systemui.statusbar.phone.LockscreenWallpaper;
-import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.ScrimController;
@@ -141,7 +136,6 @@ import com.android.systemui.statusbar.policy.ExtensionController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
-import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.volume.VolumeComponent;
@@ -257,7 +251,7 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
public CarStatusBar(
Context context,
- FeatureFlags featureFlags,
+ NotificationsController notificationsController,
LightBarController lightBarController,
AutoHideController autoHideController,
KeyguardUpdateMonitor keyguardUpdateMonitor,
@@ -269,13 +263,11 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
HeadsUpManagerPhone headsUpManagerPhone,
DynamicPrivacyController dynamicPrivacyController,
BypassHeadsUpNotifier bypassHeadsUpNotifier,
- Lazy<NotifPipelineInitializer> notifPipelineInitializer,
FalsingManager falsingManager,
BroadcastDispatcher broadcastDispatcher,
RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler,
NotificationGutsManager notificationGutsManager,
NotificationLogger notificationLogger,
- NotificationEntryManager notificationEntryManager,
NotificationInterruptionStateProvider notificationInterruptionStateProvider,
NotificationViewHierarchyManager notificationViewHierarchyManager,
KeyguardViewMediator keyguardViewMediator,
@@ -296,12 +288,10 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
VibratorHelper vibratorHelper,
BubbleController bubbleController,
NotificationGroupManager groupManager,
- NotificationGroupAlertTransferHelper groupAlertTransferHelper,
VisualStabilityManager visualStabilityManager,
DeviceProvisionedController deviceProvisionedController,
NavigationBarController navigationBarController,
Lazy<AssistManager> assistManagerLazy,
- NotificationListener notificationListener,
ConfigurationController configurationController,
NotificationShadeWindowController notificationShadeWindowController,
LockscreenLockIconController lockscreenLockIconController,
@@ -318,7 +308,6 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
Optional<Recents> recents,
Provider<StatusBarComponent.Builder> statusBarComponentBuilder,
PluginManager pluginManager,
- RemoteInputUriController remoteInputUriController,
Optional<Divider> dividerOptional,
SuperStatusBarViewFactory superStatusBarViewFactory,
LightsOutNotifController lightsOutNotifController,
@@ -334,7 +323,6 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
KeyguardDismissUtil keyguardDismissUtil,
ExtensionController extensionController,
UserInfoControllerImpl userInfoControllerImpl,
- NotificationRowBinderImpl notificationRowBinder,
DismissCallbackRegistry dismissCallbackRegistry,
/* Car Settings injected components. */
CarServiceProvider carServiceProvider,
@@ -345,7 +333,7 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
FlingAnimationUtils.Builder flingAnimationUtilsBuilder) {
super(
context,
- featureFlags,
+ notificationsController,
lightBarController,
autoHideController,
keyguardUpdateMonitor,
@@ -357,13 +345,11 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
headsUpManagerPhone,
dynamicPrivacyController,
bypassHeadsUpNotifier,
- notifPipelineInitializer,
falsingManager,
broadcastDispatcher,
remoteInputQuickSettingsDisabler,
notificationGutsManager,
notificationLogger,
- notificationEntryManager,
notificationInterruptionStateProvider,
notificationViewHierarchyManager,
keyguardViewMediator,
@@ -384,12 +370,10 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
vibratorHelper,
bubbleController,
groupManager,
- groupAlertTransferHelper,
visualStabilityManager,
deviceProvisionedController,
navigationBarController,
assistManagerLazy,
- notificationListener,
configurationController,
notificationShadeWindowController,
lockscreenLockIconController,
@@ -407,7 +391,6 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
recents,
statusBarComponentBuilder,
pluginManager,
- remoteInputUriController,
dividerOptional,
lightsOutNotifController,
statusBarNotificationActivityStarterBuilder,
@@ -422,7 +405,6 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
keyguardDismissUtil,
extensionController,
userInfoControllerImpl,
- notificationRowBinder,
dismissCallbackRegistry);
mUserSwitcherController = userSwitcherController;
mScrimController = scrimController;
diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java
index 45da8223943b..498bd8780f29 100644
--- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java
+++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarModule.java
@@ -47,10 +47,8 @@ import com.android.systemui.recents.ScreenPinningRequest;
import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
-import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.FlingAnimationUtils;
import com.android.systemui.statusbar.NavigationBarController;
-import com.android.systemui.statusbar.NotificationListener;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationMediaManager;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
@@ -63,12 +61,10 @@ import com.android.systemui.statusbar.VibratorHelper;
import com.android.systemui.statusbar.notification.BypassHeadsUpNotifier;
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
import com.android.systemui.statusbar.notification.NotificationAlertingManager;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider;
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
import com.android.systemui.statusbar.notification.VisualStabilityManager;
-import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl;
-import com.android.systemui.statusbar.notification.collection.init.NotifPipelineInitializer;
+import com.android.systemui.statusbar.notification.init.NotificationsController;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.phone.AutoHideController;
@@ -83,7 +79,6 @@ import com.android.systemui.statusbar.phone.LightBarController;
import com.android.systemui.statusbar.phone.LightsOutNotifController;
import com.android.systemui.statusbar.phone.LockscreenLockIconController;
import com.android.systemui.statusbar.phone.LockscreenWallpaper;
-import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.ScrimController;
@@ -99,7 +94,6 @@ import com.android.systemui.statusbar.policy.ExtensionController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
-import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.volume.VolumeComponent;
@@ -127,7 +121,7 @@ public class CarStatusBarModule {
@Singleton
static CarStatusBar provideStatusBar(
Context context,
- FeatureFlags featureFlags,
+ NotificationsController notificationsController,
LightBarController lightBarController,
AutoHideController autoHideController,
KeyguardUpdateMonitor keyguardUpdateMonitor,
@@ -139,13 +133,11 @@ public class CarStatusBarModule {
HeadsUpManagerPhone headsUpManagerPhone,
DynamicPrivacyController dynamicPrivacyController,
BypassHeadsUpNotifier bypassHeadsUpNotifier,
- Lazy<NotifPipelineInitializer> notifPipelineInitializer,
FalsingManager falsingManager,
BroadcastDispatcher broadcastDispatcher,
RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler,
NotificationGutsManager notificationGutsManager,
NotificationLogger notificationLogger,
- NotificationEntryManager notificationEntryManager,
NotificationInterruptionStateProvider notificationInterruptionStateProvider,
NotificationViewHierarchyManager notificationViewHierarchyManager,
KeyguardViewMediator keyguardViewMediator,
@@ -166,12 +158,10 @@ public class CarStatusBarModule {
VibratorHelper vibratorHelper,
BubbleController bubbleController,
NotificationGroupManager groupManager,
- NotificationGroupAlertTransferHelper groupAlertTransferHelper,
VisualStabilityManager visualStabilityManager,
DeviceProvisionedController deviceProvisionedController,
NavigationBarController navigationBarController,
Lazy<AssistManager> assistManagerLazy,
- NotificationListener notificationListener,
ConfigurationController configurationController,
NotificationShadeWindowController notificationShadeWindowController,
LockscreenLockIconController lockscreenLockIconController,
@@ -188,7 +178,6 @@ public class CarStatusBarModule {
Optional<Recents> recentsOptional,
Provider<StatusBarComponent.Builder> statusBarComponentBuilder,
PluginManager pluginManager,
- RemoteInputUriController remoteInputUriController,
Optional<Divider> dividerOptional,
SuperStatusBarViewFactory superStatusBarViewFactory,
LightsOutNotifController lightsOutNotifController,
@@ -204,7 +193,6 @@ public class CarStatusBarModule {
KeyguardDismissUtil keyguardDismissUtil,
ExtensionController extensionController,
UserInfoControllerImpl userInfoControllerImpl,
- NotificationRowBinderImpl notificationRowBinder,
DismissCallbackRegistry dismissCallbackRegistry,
CarServiceProvider carServiceProvider,
Lazy<PowerManagerHelper> powerManagerHelperLazy,
@@ -214,7 +202,7 @@ public class CarStatusBarModule {
FlingAnimationUtils.Builder flingAnimationUtilsBuilder) {
return new CarStatusBar(
context,
- featureFlags,
+ notificationsController,
lightBarController,
autoHideController,
keyguardUpdateMonitor,
@@ -226,13 +214,11 @@ public class CarStatusBarModule {
headsUpManagerPhone,
dynamicPrivacyController,
bypassHeadsUpNotifier,
- notifPipelineInitializer,
falsingManager,
broadcastDispatcher,
remoteInputQuickSettingsDisabler,
notificationGutsManager,
notificationLogger,
- notificationEntryManager,
notificationInterruptionStateProvider,
notificationViewHierarchyManager,
keyguardViewMediator,
@@ -253,12 +239,10 @@ public class CarStatusBarModule {
vibratorHelper,
bubbleController,
groupManager,
- groupAlertTransferHelper,
visualStabilityManager,
deviceProvisionedController,
navigationBarController,
assistManagerLazy,
- notificationListener,
configurationController,
notificationShadeWindowController,
lockscreenLockIconController,
@@ -275,7 +259,6 @@ public class CarStatusBarModule {
recentsOptional,
statusBarComponentBuilder,
pluginManager,
- remoteInputUriController,
dividerOptional,
superStatusBarViewFactory,
lightsOutNotifController,
@@ -290,7 +273,6 @@ public class CarStatusBarModule {
keyguardDismissUtil,
extensionController,
userInfoControllerImpl,
- notificationRowBinder,
dismissCallbackRegistry,
carServiceProvider,
powerManagerHelperLazy,
diff --git a/packages/CarrierDefaultApp/res/values-ky/strings.xml b/packages/CarrierDefaultApp/res/values-ky/strings.xml
index 066e8f6bcbaf..199476f47be0 100644
--- a/packages/CarrierDefaultApp/res/values-ky/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-ky/strings.xml
@@ -12,6 +12,6 @@
<string name="mobile_data_status_notification_channel_name" msgid="833999690121305708">"Мобилдик Интернеттин абалы"</string>
<string name="action_bar_label" msgid="4290345990334377177">"Мобилдик тармакка кирүү"</string>
<string name="ssl_error_warning" msgid="3127935140338254180">"Кошулайын деген тармагыңызда коопсуздук көйгөйлөрү бар."</string>
- <string name="ssl_error_example" msgid="6188711843183058764">"Мисалы, каттоо эсебине кирүү баракчасы көрсөтүлгөн уюмга таандык эмес болушу мүмкүн."</string>
+ <string name="ssl_error_example" msgid="6188711843183058764">"Мисалы, аккаунтка кирүү баракчасы көрсөтүлгөн уюмга таандык эмес болушу мүмкүн."</string>
<string name="ssl_error_continue" msgid="1138548463994095584">"Баары бир серепчи аркылуу улантуу"</string>
</resources>
diff --git a/packages/DynamicSystemInstallationService/res/values/strings.xml b/packages/DynamicSystemInstallationService/res/values/strings.xml
index 9bd5be7b0dd7..7595d2b1eea3 100644
--- a/packages/DynamicSystemInstallationService/res/values/strings.xml
+++ b/packages/DynamicSystemInstallationService/res/values/strings.xml
@@ -35,4 +35,7 @@
<!-- Toast when we fail to launch into Dynamic System [CHAR LIMIT=64] -->
<string name="toast_failed_to_reboot_to_dynsystem">Can\u2019t restart or load dynamic system</string>
+ <!-- URL of Dynamic System Key Revocation List [DO NOT TRANSLATE] -->
+ <string name="key_revocation_list_url" translatable="false">https://dl.google.com/developers/android/gsi/gsi-keyblacklist.json</string>
+
</resources>
diff --git a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java
index 9ccb837cf613..9bae223a0a3e 100644
--- a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java
+++ b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java
@@ -46,6 +46,7 @@ import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
+import android.net.http.HttpResponseCache;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
@@ -60,6 +61,8 @@ import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
+import java.io.File;
+import java.io.IOException;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
@@ -146,10 +149,26 @@ public class DynamicSystemInstallationService extends Service
prepareNotification();
mDynSystem = (DynamicSystemManager) getSystemService(Context.DYNAMIC_SYSTEM_SERVICE);
+
+ // Install an HttpResponseCache in the application cache directory so we can cache
+ // gsi key revocation list. The http(s) protocol handler uses this cache transparently.
+ // The cache size is chosen heuristically. Since we don't have too much traffic right now,
+ // a moderate size of 1MiB should be enough.
+ try {
+ File httpCacheDir = new File(getCacheDir(), "httpCache");
+ long httpCacheSize = 1 * 1024 * 1024; // 1 MiB
+ HttpResponseCache.install(httpCacheDir, httpCacheSize);
+ } catch (IOException e) {
+ Log.d(TAG, "HttpResponseCache.install() failed: " + e);
+ }
}
@Override
public void onDestroy() {
+ HttpResponseCache cache = HttpResponseCache.getInstalled();
+ if (cache != null) {
+ cache.flush();
+ }
// Cancel the persistent notification.
mNM.cancel(NOTIFICATION_ID);
}
diff --git a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/InstallationAsyncTask.java b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/InstallationAsyncTask.java
index 9aea0e713179..438c435ef0e4 100644
--- a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/InstallationAsyncTask.java
+++ b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/InstallationAsyncTask.java
@@ -25,6 +25,8 @@ import android.os.image.DynamicSystemManager;
import android.util.Log;
import android.webkit.URLUtil;
+import org.json.JSONException;
+
import java.io.BufferedInputStream;
import java.io.File;
import java.io.IOException;
@@ -100,7 +102,9 @@ class InstallationAsyncTask extends AsyncTask<String, InstallationAsyncTask.Prog
private final Context mContext;
private final DynamicSystemManager mDynSystem;
private final ProgressListener mListener;
+ private final boolean mIsNetworkUrl;
private DynamicSystemManager.Session mInstallationSession;
+ private KeyRevocationList mKeyRevocationList;
private boolean mIsZip;
private boolean mIsCompleted;
@@ -123,6 +127,7 @@ class InstallationAsyncTask extends AsyncTask<String, InstallationAsyncTask.Prog
mContext = context;
mDynSystem = dynSystem;
mListener = listener;
+ mIsNetworkUrl = URLUtil.isNetworkUrl(mUrl);
}
@Override
@@ -152,9 +157,11 @@ class InstallationAsyncTask extends AsyncTask<String, InstallationAsyncTask.Prog
return null;
}
+ // TODO(yochiang): do post-install public key check (revocation list / boot-ramdisk)
+
mDynSystem.finishInstallation();
} catch (Exception e) {
- e.printStackTrace();
+ Log.e(TAG, e.toString(), e);
mDynSystem.remove();
return e;
} finally {
@@ -220,7 +227,7 @@ class InstallationAsyncTask extends AsyncTask<String, InstallationAsyncTask.Prog
String.format(Locale.US, "Unsupported file format: %s", mUrl));
}
- if (URLUtil.isNetworkUrl(mUrl)) {
+ if (mIsNetworkUrl) {
mStream = new URL(mUrl).openStream();
} else if (URLUtil.isFileUrl(mUrl)) {
if (mIsZip) {
@@ -234,6 +241,25 @@ class InstallationAsyncTask extends AsyncTask<String, InstallationAsyncTask.Prog
throw new UnsupportedUrlException(
String.format(Locale.US, "Unsupported URL: %s", mUrl));
}
+
+ // TODO(yochiang): Bypass this check if device is unlocked
+ try {
+ String listUrl = mContext.getString(R.string.key_revocation_list_url);
+ mKeyRevocationList = KeyRevocationList.fromUrl(new URL(listUrl));
+ } catch (IOException | JSONException e) {
+ Log.d(TAG, "Failed to fetch Dynamic System Key Revocation List");
+ mKeyRevocationList = new KeyRevocationList();
+ keyRevocationThrowOrWarning(e);
+ }
+ }
+
+ private void keyRevocationThrowOrWarning(Exception e) throws Exception {
+ if (mIsNetworkUrl) {
+ throw e;
+ } else {
+ // If DSU is being installed from a local file URI, then be permissive
+ Log.w(TAG, e.toString());
+ }
}
private void installUserdata() throws Exception {
diff --git a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/KeyRevocationList.java b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/KeyRevocationList.java
new file mode 100644
index 000000000000..522bc547325b
--- /dev/null
+++ b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/KeyRevocationList.java
@@ -0,0 +1,148 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dynsystem;
+
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.HashMap;
+
+class KeyRevocationList {
+
+ private static final String TAG = "KeyRevocationList";
+
+ private static final String JSON_ENTRIES = "entries";
+ private static final String JSON_PUBLIC_KEY = "public_key";
+ private static final String JSON_STATUS = "status";
+ private static final String JSON_REASON = "reason";
+
+ private static final String STATUS_REVOKED = "REVOKED";
+
+ @VisibleForTesting
+ HashMap<String, RevocationStatus> mEntries;
+
+ static class RevocationStatus {
+ final String mStatus;
+ final String mReason;
+
+ RevocationStatus(String status, String reason) {
+ mStatus = status;
+ mReason = reason;
+ }
+ }
+
+ KeyRevocationList() {
+ mEntries = new HashMap<String, RevocationStatus>();
+ }
+
+ /**
+ * Returns the revocation status of a public key.
+ *
+ * @return a RevocationStatus for |publicKey|, null if |publicKey| doesn't exist.
+ */
+ RevocationStatus getRevocationStatusForKey(String publicKey) {
+ return mEntries.get(publicKey);
+ }
+
+ /** Test if a public key is revoked or not. */
+ boolean isRevoked(String publicKey) {
+ RevocationStatus entry = getRevocationStatusForKey(publicKey);
+ return entry != null && TextUtils.equals(entry.mStatus, STATUS_REVOKED);
+ }
+
+ @VisibleForTesting
+ void addEntry(String publicKey, String status, String reason) {
+ mEntries.put(publicKey, new RevocationStatus(status, reason));
+ }
+
+ /**
+ * Creates a KeyRevocationList from a JSON String.
+ *
+ * @param jsonString the revocation list, for example:
+ * <pre>{@code
+ * {
+ * "entries": [
+ * {
+ * "public_key": "00fa2c6637c399afa893fe83d85f3569998707d5",
+ * "status": "REVOKED",
+ * "reason": "Revocation Reason"
+ * }
+ * ]
+ * }
+ * }</pre>
+ *
+ * @throws JSONException if |jsonString| is malformed.
+ */
+ static KeyRevocationList fromJsonString(String jsonString) throws JSONException {
+ JSONObject jsonObject = new JSONObject(jsonString);
+ KeyRevocationList list = new KeyRevocationList();
+ Log.d(TAG, "Begin of revocation list");
+ if (jsonObject.has(JSON_ENTRIES)) {
+ JSONArray entries = jsonObject.getJSONArray(JSON_ENTRIES);
+ for (int i = 0; i < entries.length(); ++i) {
+ JSONObject entry = entries.getJSONObject(i);
+ String publicKey = entry.getString(JSON_PUBLIC_KEY);
+ String status = entry.getString(JSON_STATUS);
+ String reason = entry.has(JSON_REASON) ? entry.getString(JSON_REASON) : "";
+ list.addEntry(publicKey, status, reason);
+ Log.d(TAG, "Revocation entry: " + entry.toString());
+ }
+ }
+ Log.d(TAG, "End of revocation list");
+ return list;
+ }
+
+ /**
+ * Creates a KeyRevocationList from a URL.
+ *
+ * @throws IOException if |url| is inaccessible.
+ * @throws JSONException if fetched content is malformed.
+ */
+ static KeyRevocationList fromUrl(URL url) throws IOException, JSONException {
+ Log.d(TAG, "Fetch from URL: " + url.toString());
+ // Force "conditional GET"
+ // Force validate the cached result with server each time, and use the cached result
+ // only if it is validated by server, else fetch new data from server.
+ // Ref: https://developer.android.com/reference/android/net/http/HttpResponseCache#force-a-network-response
+ URLConnection connection = url.openConnection();
+ connection.setUseCaches(true);
+ connection.addRequestProperty("Cache-Control", "max-age=0");
+ try (InputStream stream = connection.getInputStream()) {
+ return fromJsonString(readFully(stream));
+ }
+ }
+
+ private static String readFully(InputStream in) throws IOException {
+ int n;
+ byte[] buffer = new byte[4096];
+ StringBuilder builder = new StringBuilder();
+ while ((n = in.read(buffer, 0, 4096)) > -1) {
+ builder.append(new String(buffer, 0, n));
+ }
+ return builder.toString();
+ }
+}
diff --git a/packages/DynamicSystemInstallationService/tests/Android.bp b/packages/DynamicSystemInstallationService/tests/Android.bp
new file mode 100644
index 000000000000..3bdf82966889
--- /dev/null
+++ b/packages/DynamicSystemInstallationService/tests/Android.bp
@@ -0,0 +1,15 @@
+android_test {
+ name: "DynamicSystemInstallationServiceTests",
+
+ srcs: ["src/**/*.java"],
+ static_libs: [
+ "androidx.test.runner",
+ "androidx.test.rules",
+ "mockito-target-minus-junit4",
+ ],
+
+ resource_dirs: ["res"],
+ platform_apis: true,
+ instrumentation_for: "DynamicSystemInstallationService",
+ certificate: "platform",
+}
diff --git a/packages/DynamicSystemInstallationService/tests/AndroidManifest.xml b/packages/DynamicSystemInstallationService/tests/AndroidManifest.xml
new file mode 100644
index 000000000000..f5f0ae6adaba
--- /dev/null
+++ b/packages/DynamicSystemInstallationService/tests/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.dynsystem.tests">
+
+ <application>
+ <uses-library android:name="android.test.runner" />
+ </application>
+
+ <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
+ android:targetPackage="com.android.dynsystem"
+ android:label="Tests for DynamicSystemInstallationService" />
+
+</manifest>
diff --git a/packages/DynamicSystemInstallationService/tests/res/values/strings.xml b/packages/DynamicSystemInstallationService/tests/res/values/strings.xml
new file mode 100644
index 000000000000..fdb620bfe094
--- /dev/null
+++ b/packages/DynamicSystemInstallationService/tests/res/values/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- testFromJsonString -->
+ <string name="blacklist_json_string" translatable="false">
+ {
+ \"entries\":[
+ {
+ \"public_key\":\"00fa2c6637c399afa893fe83d85f3569998707d5\",
+ \"status\":\"REVOKED\",
+ \"reason\":\"Key revocation test key\"
+ },
+ {
+ \"public_key\":\"key2\",
+ \"status\":\"REVOKED\"
+ }
+ ]
+ }
+ </string>
+</resources>
diff --git a/packages/DynamicSystemInstallationService/tests/src/com/android/dynsystem/KeyRevocationListTest.java b/packages/DynamicSystemInstallationService/tests/src/com/android/dynsystem/KeyRevocationListTest.java
new file mode 100644
index 000000000000..82ce542cf5de
--- /dev/null
+++ b/packages/DynamicSystemInstallationService/tests/src/com/android/dynsystem/KeyRevocationListTest.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dynsystem;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+
+import android.content.Context;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.json.JSONException;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+
+/**
+ * A test for KeyRevocationList.java
+ */
+@RunWith(AndroidJUnit4.class)
+public class KeyRevocationListTest {
+
+ private static final String TAG = "KeyRevocationListTest";
+
+ private static Context sContext;
+
+ private static String sBlacklistJsonString;
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+ sContext = InstrumentationRegistry.getInstrumentation().getContext();
+ sBlacklistJsonString =
+ sContext.getString(com.android.dynsystem.tests.R.string.blacklist_json_string);
+ }
+
+ @Test
+ @SmallTest
+ public void testFromJsonString() throws JSONException {
+ KeyRevocationList blacklist;
+ blacklist = KeyRevocationList.fromJsonString(sBlacklistJsonString);
+ Assert.assertNotNull(blacklist);
+ Assert.assertFalse(blacklist.mEntries.isEmpty());
+ blacklist = KeyRevocationList.fromJsonString("{}");
+ Assert.assertNotNull(blacklist);
+ Assert.assertTrue(blacklist.mEntries.isEmpty());
+ }
+
+ @Test
+ @SmallTest
+ public void testFromUrl() throws IOException, JSONException {
+ URLConnection mockConnection = mock(URLConnection.class);
+ doReturn(new ByteArrayInputStream(sBlacklistJsonString.getBytes()))
+ .when(mockConnection).getInputStream();
+ URL mockUrl = new URL(
+ "http", // protocol
+ "foo.bar", // host
+ 80, // port
+ "baz", // file
+ new URLStreamHandler() {
+ @Override
+ protected URLConnection openConnection(URL url) {
+ return mockConnection;
+ }
+ });
+ URL mockBadUrl = new URL(
+ "http", // protocol
+ "foo.bar", // host
+ 80, // port
+ "baz", // file
+ new URLStreamHandler() {
+ @Override
+ protected URLConnection openConnection(URL url) throws IOException {
+ throw new IOException();
+ }
+ });
+
+ KeyRevocationList blacklist = KeyRevocationList.fromUrl(mockUrl);
+ Assert.assertNotNull(blacklist);
+ Assert.assertFalse(blacklist.mEntries.isEmpty());
+
+ blacklist = null;
+ try {
+ blacklist = KeyRevocationList.fromUrl(mockBadUrl);
+ // Up should throw, down should be unreachable
+ Assert.fail("Expected IOException not thrown");
+ } catch (IOException e) {
+ // This is expected, do nothing
+ }
+ Assert.assertNull(blacklist);
+ }
+
+ @Test
+ @SmallTest
+ public void testIsRevoked() {
+ KeyRevocationList blacklist = new KeyRevocationList();
+ blacklist.addEntry("key1", "REVOKED", "reason for key1");
+
+ KeyRevocationList.RevocationStatus revocationStatus =
+ blacklist.getRevocationStatusForKey("key1");
+ Assert.assertNotNull(revocationStatus);
+ Assert.assertEquals(revocationStatus.mReason, "reason for key1");
+
+ revocationStatus = blacklist.getRevocationStatusForKey("key2");
+ Assert.assertNull(revocationStatus);
+
+ Assert.assertTrue(blacklist.isRevoked("key1"));
+ Assert.assertFalse(blacklist.isRevoked("key2"));
+ }
+}
diff --git a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
index ec445d4dcbee..38cf5ab9afe6 100644
--- a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
+++ b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java
@@ -318,6 +318,16 @@ public class ExternalStorageProvider extends FileSystemProvider {
return false;
}
+ // Allow all directories on USB, including the root.
+ try {
+ RootInfo rootInfo = getRootFromDocId(docId);
+ if ((rootInfo.flags & Root.FLAG_REMOVABLE_USB) == Root.FLAG_REMOVABLE_USB) {
+ return false;
+ }
+ } catch (FileNotFoundException e) {
+ Log.e(TAG, "Failed to determine rootInfo for docId");
+ }
+
final String path = getPathFromDocId(docId);
// Block the root of the storage
diff --git a/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeApp.java b/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeApp.java
index c9e0d0ab351d..d4eb2a9c75d0 100644
--- a/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeApp.java
+++ b/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeApp.java
@@ -16,6 +16,9 @@
package com.android.fakeoemfeatures;
+import static android.view.Display.DEFAULT_DISPLAY;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
+
import android.app.ActivityManager;
import android.app.ActivityThread;
import android.app.AlertDialog;
@@ -25,9 +28,11 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
+import android.hardware.display.DisplayManager;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
+import android.util.Size;
import android.util.Slog;
import android.view.Display;
import android.view.ViewGroup;
@@ -94,8 +99,13 @@ public class FakeApp extends Application {
return;
}
- final WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
- final Display display = wm.getDefaultDisplay();
+ // Construct an instance of WindowManager to add the window of TYPE_APPLICATION_OVERLAY to
+ // the default display.
+ final DisplayManager dm = getSystemService(DisplayManager.class);
+ final Display defaultDisplay = dm.getDisplay(DEFAULT_DISPLAY);
+ final Context windowContext = createDisplayContext(defaultDisplay)
+ .createWindowContext(TYPE_APPLICATION_OVERLAY, null /* options */);
+ final WindowManager wm = windowContext.getSystemService(WindowManager.class);
// Check to make sure we are not running on a user build. If this
// is a user build, WARN! Do not want!
@@ -108,14 +118,14 @@ public class FakeApp extends Application {
builder.setCancelable(false);
builder.setPositiveButton("I understand", null);
Dialog dialog = builder.create();
- dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
+ dialog.getWindow().setType(TYPE_APPLICATION_OVERLAY);
dialog.show();
}
// Make a fake window that is always around eating graphics resources.
FakeView view = new FakeView(this);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
- WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
+ TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
@@ -124,7 +134,8 @@ public class FakeApp extends Application {
}
lp.width = ViewGroup.LayoutParams.MATCH_PARENT;
lp.height = ViewGroup.LayoutParams.MATCH_PARENT;
- int maxSize = display.getMaximumSizeDimension();
+ Size maxWindowSize = wm.getMaximumWindowMetrics().getSize();
+ int maxSize = Math.max(maxWindowSize.getWidth(), maxWindowSize.getHeight());
maxSize *= 2;
lp.x = maxSize;
lp.y = maxSize;
diff --git a/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeBackgroundService.java b/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeBackgroundService.java
index ff09000b7bbd..df00eee63b50 100644
--- a/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeBackgroundService.java
+++ b/packages/FakeOemFeatures/src/com/android/fakeoemfeatures/FakeBackgroundService.java
@@ -16,6 +16,9 @@
package com.android.fakeoemfeatures;
+import static android.view.Display.DEFAULT_DISPLAY;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
+
import java.util.ArrayList;
import java.util.Random;
@@ -23,9 +26,11 @@ import android.app.Dialog;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
+import android.hardware.display.DisplayManager;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
+import android.util.Size;
import android.view.Display;
import android.view.ViewGroup;
import android.view.WindowManager;
@@ -68,13 +73,15 @@ public class FakeBackgroundService extends Service {
super.onCreate();
mHandler.sendEmptyMessageDelayed(MSG_TICK, TICK_DELAY);
- final WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
- final Display display = wm.getDefaultDisplay();
+ final DisplayManager dm = getSystemService(DisplayManager.class);
+ final Display display = dm.getDisplay(DEFAULT_DISPLAY);
+ final Context windowContext = createDisplayContext(display)
+ .createWindowContext(TYPE_APPLICATION_OVERLAY, null /* options */);
// Make a fake window that is always around eating graphics resources.
- FakeView view = new FakeView(this);
- Dialog dialog = new Dialog(this, android.R.style.Theme_Holo_Dialog);
- dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
+ FakeView view = new FakeView(windowContext);
+ Dialog dialog = new Dialog(windowContext, android.R.style.Theme_Holo_Dialog);
+ dialog.getWindow().setType(TYPE_APPLICATION_OVERLAY);
dialog.getWindow().setFlags(
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
@@ -89,7 +96,11 @@ public class FakeBackgroundService extends Service {
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
- int maxSize = display.getMaximumSizeDimension();
+ // Create an instance of WindowManager that is adjusted to the area of the display dedicated
+ // for windows with type TYPE_APPLICATION_OVERLAY.
+ final WindowManager wm = windowContext.getSystemService(WindowManager.class);
+ Size maxWindowSize = wm.getMaximumWindowMetrics().getSize();
+ int maxSize = Math.max(maxWindowSize.getWidth(), maxWindowSize.getHeight());
maxSize *= 2;
lp.x = maxSize;
lp.y = maxSize;
diff --git a/packages/SettingsLib/Android.bp b/packages/SettingsLib/Android.bp
index 9c8345dafbc8..62124934f416 100644
--- a/packages/SettingsLib/Android.bp
+++ b/packages/SettingsLib/Android.bp
@@ -10,6 +10,7 @@ android_library {
"androidx.appcompat_appcompat",
"androidx.lifecycle_lifecycle-runtime",
"androidx.mediarouter_mediarouter-nodeps",
+ "iconloader",
"SettingsLibHelpUtils",
"SettingsLibRestrictedLockUtils",
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index 2b143e425589..b31841d82d0e 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Gekoppel via <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Beskikbaar via %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Tik om aan te meld"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Gekoppel, geen internet nie"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Daar kan nie by private DNS-bediener ingegaan word nie"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Beperkte verbinding"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Geen internet nie"</string>
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index 2a93e01765bb..4955ad8fda29 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"በ <xliff:g id="NAME">%1$s</xliff:g> በኩል ተገናኝተዋል"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"በ%1$s በኩል የሚገኝ"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"ለመመዝገብ መታ ያድርጉ"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"ተገናኝቷል፣ ምንም በይነመረብ የለም"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"የግል ዲኤንኤስ አገልጋይ ሊደረስበት አይችልም"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"የተገደበ ግንኙነት"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"ምንም በይነመረብ የለም"</string>
diff --git a/packages/SettingsLib/res/values-ar/arrays.xml b/packages/SettingsLib/res/values-ar/arrays.xml
index 851a3d8f136a..d65d821e71ab 100644
--- a/packages/SettingsLib/res/values-ar/arrays.xml
+++ b/packages/SettingsLib/res/values-ar/arrays.xml
@@ -252,7 +252,7 @@
<item msgid="3474333938380896988">"عرض مناطق العجز في رؤية اللونين الأخضر والأحمر"</item>
</string-array>
<string-array name="app_process_limit_entries">
- <item msgid="794656271086646068">"الحد القياسي"</item>
+ <item msgid="794656271086646068">"الحدّ العادي"</item>
<item msgid="8628438298170567201">"ليست هناك عمليات بالخلفية"</item>
<item msgid="915752993383950932">"عملية واحدة بحد أقصى"</item>
<item msgid="8554877790859095133">"عمليتان بحد أقصى"</item>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index 54856566e021..7b26be4f4c14 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"تم الاتصال عبر <xliff:g id="NAME">%1$s</xliff:g>."</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"‏متوفرة عبر %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"انقر للاشتراك."</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"متصلة ولكن بلا إنترنت"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"لا يمكن الوصول إلى خادم أسماء نظام نطاقات خاص"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"اتصال محدود"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"لا يتوفر اتصال إنترنت."</string>
@@ -124,7 +125,7 @@
<string name="bluetooth_talkback_headset" msgid="3406852564400882682">"سماعة رأس"</string>
<string name="bluetooth_talkback_phone" msgid="868393783858123880">"هاتف"</string>
<string name="bluetooth_talkback_imaging" msgid="8781682986822514331">"تصوير"</string>
- <string name="bluetooth_talkback_headphone" msgid="8613073829180337091">"سماعة أذن"</string>
+ <string name="bluetooth_talkback_headphone" msgid="8613073829180337091">"السمّاعة"</string>
<string name="bluetooth_talkback_input_peripheral" msgid="5133944817800149942">"جهاز إدخال طرفي"</string>
<string name="bluetooth_talkback_bluetooth" msgid="1143241359781999989">"بلوتوث"</string>
<string name="bluetooth_hearingaid_left_pairing_message" msgid="8561855779703533591">"جارٍ إقران سماعة الأذن الطبية اليسرى…"</string>
@@ -157,7 +158,7 @@
<string name="tts_settings" msgid="8130616705989351312">"إعدادات تحويل النص إلى كلام"</string>
<string name="tts_settings_title" msgid="7602210956640483039">"تحويل النص إلى كلام"</string>
<string name="tts_default_rate_title" msgid="3964187817364304022">"معدل سرعة الكلام"</string>
- <string name="tts_default_rate_summary" msgid="3781937042151716987">"سرعة نطق الكلام"</string>
+ <string name="tts_default_rate_summary" msgid="3781937042151716987">"سرعة قول الكلام"</string>
<string name="tts_default_pitch_title" msgid="6988592215554485479">"درجة الصوت"</string>
<string name="tts_default_pitch_summary" msgid="9132719475281551884">"للتأثير في نبرة الكلام المُرَكَّب"</string>
<string name="tts_default_lang_title" msgid="4698933575028098940">"اللغة"</string>
@@ -181,7 +182,7 @@
<string name="tts_engine_preference_section_title" msgid="3861562305498624904">"المحرّك المفضّل"</string>
<string name="tts_general_section_title" msgid="8919671529502364567">"عامة"</string>
<string name="tts_reset_speech_pitch_title" msgid="7149398585468413246">"إعادة ضبط طبقة صوت الكلام"</string>
- <string name="tts_reset_speech_pitch_summary" msgid="6822904157021406449">"إعادة ضبط طبقة الصوت التي يتم نطق النص بها على الإعداد التلقائي."</string>
+ <string name="tts_reset_speech_pitch_summary" msgid="6822904157021406449">"إعادة ضبط طبقة الصوت التي يتم قول النص بها على الإعداد التلقائي."</string>
<string-array name="tts_rate_entries">
<item msgid="9004239613505400644">"بطيء جدًا"</item>
<item msgid="1815382991399815061">"بطيء"</item>
@@ -353,7 +354,7 @@
<string-array name="color_mode_names">
<item msgid="3836559907767149216">"نابض بالحياة (تلقائي)"</item>
<item msgid="9112200311983078311">"طبيعي"</item>
- <item msgid="6564241960833766170">"قياسي"</item>
+ <item msgid="6564241960833766170">"عادي"</item>
</string-array>
<string-array name="color_mode_descriptions">
<item msgid="6828141153199944847">"ألوان محسَّنة"</item>
diff --git a/packages/SettingsLib/res/values-as/strings.xml b/packages/SettingsLib/res/values-as/strings.xml
index fa26b9b93ef6..dcebe5bd9b6c 100644
--- a/packages/SettingsLib/res/values-as/strings.xml
+++ b/packages/SettingsLib/res/values-as/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g>ৰ জৰিয়তে সংযুক্ত"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$sৰ মাধ্যমেৰে উপলব্ধ"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"ছাইন আপ কৰিবলৈ টিপক"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"সংযোজিত, ইণ্টাৰনেট নাই"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"ব্যক্তিগত DNS ছাৰ্ভাৰ এক্সেছ কৰিব নোৱাৰি"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"ইণ্টাৰনেট সংযোগ সীমিত"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"ইণ্টাৰনেট সংযোগ নাই"</string>
diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml
index 2e80fdcb8972..7f3db37f2a25 100644
--- a/packages/SettingsLib/res/values-az/strings.xml
+++ b/packages/SettingsLib/res/values-az/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> ilə qoşulub"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s vasitəsilə əlçatandır"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Qeydiyyatdan keçmək üçün klikləyin"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Qoşuludur, internet yoxdur"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Özəl DNS serverinə giriş mümkün deyil"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Məhdud bağlantı"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"İnternet yoxdur"</string>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index ae5c93670644..b789cb0dbe5a 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Povezano preko: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Dostupna je preko pristupne tačke %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Dodirnite da biste se registrovali"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Veza je uspostavljena, nema interneta"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Pristup privatnom DNS serveru nije uspeo"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Ograničena veza"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Nema interneta"</string>
diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml
index ad201d081fce..ce191eb59676 100644
--- a/packages/SettingsLib/res/values-be/strings.xml
+++ b/packages/SettingsLib/res/values-be/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Падключана праз праграму \"<xliff:g id="NAME">%1$s</xliff:g>\""</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Даступна праз %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Націсніце, каб зарэгістравацца"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Падключана, без доступу да інтэрнэту"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Не ўдалося атрымаць доступ да прыватнага DNS-сервера"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Абмежаваныя магчымасці падключэння"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Не падключана да інтэрнэту"</string>
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index 94f78ad30a67..3e6f77db29c1 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Установена е връзка през <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Мрежата е достъпна през „%1$s“"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Докоснете, за да се регистрирате"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Установена е връзка – няма достъп до интернет"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Не може да се осъществи достъп до частния DNS сървър"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Ограничена връзка"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Няма връзка с интернет"</string>
diff --git a/packages/SettingsLib/res/values-bn/strings.xml b/packages/SettingsLib/res/values-bn/strings.xml
index 517191601d2f..7f6938ac8de2 100644
--- a/packages/SettingsLib/res/values-bn/strings.xml
+++ b/packages/SettingsLib/res/values-bn/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g>-এর মাধ্যমে কানেক্ট করা আছে"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s এর মাধ্যমে উপলব্ধ"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"সাইন-আপ করতে ট্যাপ করুন"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"কানেক্ট, ইন্টারনেট নেই"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"ব্যক্তিগত ডিএনএস সার্ভার অ্যাক্সেস করা যাবে না"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"সীমিত কানেকশন"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"ইন্টারনেট কানেকশন নেই"</string>
diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml
index f74bcee6fd08..0563abd66311 100644
--- a/packages/SettingsLib/res/values-bs/strings.xml
+++ b/packages/SettingsLib/res/values-bs/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Povezano preko <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Dostupan preko %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Dodirnite za prijavu"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Povezano, nema interneta"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Nije moguće pristupiti privatnom DNS serveru"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Ograničena veza"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Nema internetske veze"</string>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index 1b23ecfd904b..71b2c5d85f84 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Connectat mitjançant <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Disponible mitjançant %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Toca per registrar-te"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Connectada, sense Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"No es pot accedir al servidor DNS privat"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Connexió limitada"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Sense connexió a Internet"</string>
diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml
index 22603ccdd804..a381772970aa 100644
--- a/packages/SettingsLib/res/values-cs/strings.xml
+++ b/packages/SettingsLib/res/values-cs/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Připojeno přes <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Dostupné prostřednictvím %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Klepnutím se zaregistrujete"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Připojeno, není k dispozici internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Nelze získat přístup k soukromému serveru DNS"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Omezené připojení"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Nejste připojeni k internetu"</string>
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index bef1855570a1..f6e8576117d9 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Forbundet via <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Tilgængelig via %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Tryk for at registrere dig"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Tilsluttet – intet internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Der er ikke adgang til den private DNS-server"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Begrænset forbindelse"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Intet internet"</string>
diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml
index c8c97bdf3d42..99a091093463 100644
--- a/packages/SettingsLib/res/values-de/strings.xml
+++ b/packages/SettingsLib/res/values-de/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Verbunden über <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Verfügbar über %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Zum Anmelden tippen"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Verbunden, kein Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Auf den privaten DNS-Server kann nicht zugegriffen werden"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Eingeschränkte Verbindung"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Kein Internet"</string>
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index 371075c7acc0..d37ea4409124 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Συνδέθηκε μέσω <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Διαθέσιμο μέσω %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Πατήστε για εγγραφή"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Συνδέθηκε, χωρίς σύνδεση στο διαδίκτυο"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Δεν είναι δυνατή η πρόσβαση στον ιδιωτικό διακομιστή DNS."</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Περιορισμένη σύνδεση"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Δεν υπάρχει σύνδεση στο διαδίκτυο"</string>
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index b314d1782585..429cd3edd60b 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Connected via <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Available via %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Tap to sign up"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Connected, no Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Private DNS server cannot be accessed"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Limited connection"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"No Internet"</string>
diff --git a/packages/SettingsLib/res/values-en-rCA/strings.xml b/packages/SettingsLib/res/values-en-rCA/strings.xml
index b314d1782585..429cd3edd60b 100644
--- a/packages/SettingsLib/res/values-en-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-en-rCA/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Connected via <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Available via %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Tap to sign up"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Connected, no Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Private DNS server cannot be accessed"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Limited connection"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"No Internet"</string>
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index b314d1782585..429cd3edd60b 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Connected via <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Available via %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Tap to sign up"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Connected, no Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Private DNS server cannot be accessed"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Limited connection"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"No Internet"</string>
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index b314d1782585..429cd3edd60b 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Connected via <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Available via %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Tap to sign up"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Connected, no Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Private DNS server cannot be accessed"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Limited connection"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"No Internet"</string>
diff --git a/packages/SettingsLib/res/values-en-rXC/strings.xml b/packages/SettingsLib/res/values-en-rXC/strings.xml
index 95944dc9eae1..1aa6cdba32fb 100644
--- a/packages/SettingsLib/res/values-en-rXC/strings.xml
+++ b/packages/SettingsLib/res/values-en-rXC/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‏‎‏‎‎‏‎‎‎‏‎‏‎‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‎‎‏‏‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎‏‎‎‎‎Connected via ‎‏‎‎‏‏‎<xliff:g id="NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‎‏‎‎‏‎‏‎‏‎‏‎‎‏‎‏‏‎‏‏‏‎‎‏‏‎‏‏‎‎‎‎‎‏‎‎‎‏‎‎Available via %1$s‎‏‎‎‏‎"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‎‏‎‏‏‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‏‏‏‎‎‎‏‏‎‏‏‏‏‏‎‏‎‏‏‎Tap to sign up‎‏‎‎‏‎"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‎‏‏‎‏‏‎‎‏‏‎‎‏‏‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‎‏‏‎Connected, no internet‎‏‎‎‏‎"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‎‎‏‎‎‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‏‎‎‏‎‎‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎‎‎‎‎‎‎‏‏‎Private DNS server cannot be accessed‎‏‎‎‏‎"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‏‏‏‎‎‎‏‎‎‏‎‏‏‎‏‏‎‎‏‎‎‏‎‏‏‎‎‏‎‏‏‎‏‎‏‏‎‎‎‏‎‎‎‏‏‏‎‎‏‎‎‏‎‏‎‎Limited connection‎‏‎‎‏‎"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‎‏‏‏‏‎‎‎‎‎‏‎‎‏‏‏‎‏‏‏‎‏‎‎‎‏‏‎‎‎‎‎‏‎‎‏‎‎‏‏‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎No internet‎‏‎‎‏‎"</string>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index c6dfdd3e3ac2..7d28a3255a7b 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Conexión a través de <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Disponible a través de %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Presiona para registrarte"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Conectado pero sin conexión a Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"No se puede acceder al servidor DNS privado"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Conexión limitada"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Sin Internet"</string>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index ba4a9ff9b245..b35696f54cdc 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Conectado a través de <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Disponible a través de %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Toca para registrarte"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Conexión sin Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"No se ha podido acceder al servidor DNS privado"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Conexión limitada"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Sin Internet"</string>
diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml
index df3b792b0e05..b6c112b94da7 100644
--- a/packages/SettingsLib/res/values-et/strings.xml
+++ b/packages/SettingsLib/res/values-et/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Ühendatud võrgu <xliff:g id="NAME">%1$s</xliff:g> kaudu"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Saadaval üksuse %1$s kaudu"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Puudutage registreerumiseks"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Ühendatud, Interneti-ühendus puudub"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Privaatsele DNS-serverile ei pääse juurde"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Piiratud ühendus"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Interneti-ühendus puudub"</string>
diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml
index fcb320ffe61f..4fd9add70470 100644
--- a/packages/SettingsLib/res/values-eu/strings.xml
+++ b/packages/SettingsLib/res/values-eu/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> bidez konektatuta"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s bidez erabilgarri"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Sakatu erregistratzeko"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Konektatuta; ezin da atzitu Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Ezin da atzitu DNS zerbitzari pribatua"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Konexio mugatua"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Ez dago Interneteko konexiorik"</string>
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index 261a438a4774..32a98be394cb 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"متصل شده ازطریق <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"‏در دسترس از طریق %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"برای ثبت‌نام ضربه بزنید"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"متصل، بدون اینترنت"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"‏سرور DNS خصوصی قابل دسترسی نیست"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"اتصال محدود"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"عدم دسترسی به اینترنت"</string>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index 4ccf430131af..84c53723d6c6 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Yhdistetty (<xliff:g id="NAME">%1$s</xliff:g>)"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Käytettävissä seuraavan kautta: %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Rekisteröidy napauttamalla"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Yhdistetty, ei internetyhteyttä"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Ei pääsyä yksityiselle DNS-palvelimelle"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Rajallinen yhteys"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Ei internetyhteyttä"</string>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index 84a97973d7c4..995eab641719 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Connecté sur le réseau <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Accessible par %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Toucher pour vous connecter"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Connecté, aucun accès à Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Impossible d\'accéder au serveur DNS privé"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Connexion limitée"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Aucune connexion Internet"</string>
diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml
index 030a7f9b3b48..2afacab43f8d 100644
--- a/packages/SettingsLib/res/values-fr/strings.xml
+++ b/packages/SettingsLib/res/values-fr/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Connecté via <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Disponible via %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Appuyez ici pour vous connecter"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Connecté, aucun accès à Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Impossible d\'accéder au serveur DNS privé"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Connexion limitée"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Aucun accès à Internet"</string>
@@ -57,7 +58,7 @@
<string name="osu_sign_up_complete" msgid="7640183358878916847">"Inscription terminée. Connexion…"</string>
<string name="speed_label_very_slow" msgid="8526005255731597666">"Très lente"</string>
<string name="speed_label_slow" msgid="6069917670665664161">"Lente"</string>
- <string name="speed_label_okay" msgid="1253594383880810424">"Correct"</string>
+ <string name="speed_label_okay" msgid="1253594383880810424">"Correcte"</string>
<string name="speed_label_medium" msgid="9078405312828606976">"Moyenne"</string>
<string name="speed_label_fast" msgid="2677719134596044051">"Élevée"</string>
<string name="speed_label_very_fast" msgid="8215718029533182439">"Très rapide"</string>
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index af033cf43328..a106e60203e3 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Wifi conectada a través de <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Dispoñible a través de %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Toca para rexistrarte"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Conexión sen Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Non se puido acceder ao servidor DNS privado"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Pouca conexión"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Non hai conexión a Internet"</string>
@@ -316,7 +317,7 @@
<string name="usb_audio_disable_routing" msgid="3367656923544254975">"Desactivar encamiñamento audio USB"</string>
<string name="usb_audio_disable_routing_summary" msgid="8768242894849534699">"Desactiva o encamiñamento automático a periféricos de audio USB"</string>
<string name="debug_layout" msgid="1659216803043339741">"Mostrar límites de deseño"</string>
- <string name="debug_layout_summary" msgid="8825829038287321978">"Mostra os límites dos clips, as marxes, etc."</string>
+ <string name="debug_layout_summary" msgid="8825829038287321978">"Mostra os límites dos clips, as marxes etc."</string>
<string name="force_rtl_layout_all_locales" msgid="8690762598501599796">"Forzar dirección do deseño RTL"</string>
<string name="force_rtl_layout_all_locales_summary" msgid="6663016859517239880">"Forza a dirección de pantalla a RTL (dereita a esquerda) para todas as configuración rexionais"</string>
<string name="force_msaa" msgid="4081288296137775550">"Forzar MSAA 4x"</string>
diff --git a/packages/SettingsLib/res/values-gu/strings.xml b/packages/SettingsLib/res/values-gu/strings.xml
index 87fd8767b326..5f2d5cde3198 100644
--- a/packages/SettingsLib/res/values-gu/strings.xml
+++ b/packages/SettingsLib/res/values-gu/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> દ્વારા કનેક્ટ થયેલ"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s દ્વારા ઉપલબ્ધ"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"સાઇન અપ કરવા માટે ટૅપ કરો"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"કનેક્ટ કર્યું, કોઈ ઇન્ટરનેટ નથી"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"ખાનગી DNS સર્વર ઍક્સેસ કરી શકાતા નથી"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"મર્યાદિત કનેક્શન"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"ઇન્ટરનેટ ઍક્સેસ નથી"</string>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index 02b5c9601ab4..d60eeadac7a6 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> के ज़रिए कनेक्ट किया गया"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s के द्वारा उपलब्ध"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"साइन अप करने के लिए टैप करें"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"कनेक्ट हो गया है, लेकिन इंटरनेट नहीं है"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"निजी डीएनएस सर्वर को ऐक्सेस नहीं किया जा सकता"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"सीमित कनेक्शन"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"इंटरनेट कनेक्शन नहीं है"</string>
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index 598cfe2aadb2..28e34601444c 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Povezan putem mreže <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Dostupno putem %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Dodirnite da biste se registrirali"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Povezano, bez interneta"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Nije moguće pristupiti privatnom DNS poslužitelju"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Ograničena veza"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Nema interneta"</string>
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index d970c737c3d6..22e03a779545 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Kapcsolódva a következőn keresztül: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Elérhető a következőn keresztül: %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Koppintson a regisztrációhoz"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Csatlakozva, nincs internet-hozzáférés"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"A privát DNS-kiszolgálóhoz nem lehet hozzáférni"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Korlátozott kapcsolat"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Nincs internetkapcsolat"</string>
diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml
index 908693439de0..ecb615a40cc2 100644
--- a/packages/SettingsLib/res/values-hy/strings.xml
+++ b/packages/SettingsLib/res/values-hy/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Միացված է <xliff:g id="NAME">%1$s</xliff:g>-ի միջոցով"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Հասանելի է %1$s-ի միջոցով"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Հպեք՝ գրանցվելու համար"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Միացված է, սակայն ինտերնետ կապ չկա"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Մասնավոր DNS սերվերն անհասանելի է"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Սահմանափակ կապ"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Ինտերնետ կապ չկա"</string>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index 3c1504c7f14a..cfbda04f176d 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Tersambung melalui <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Tersedia melalui %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Ketuk untuk mendaftar"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Tersambung, tidak ada internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Server DNS pribadi tidak dapat diakses"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Koneksi terbatas"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Tidak ada internet"</string>
diff --git a/packages/SettingsLib/res/values-is/strings.xml b/packages/SettingsLib/res/values-is/strings.xml
index 438e900be4ba..ba4c00976ccb 100644
--- a/packages/SettingsLib/res/values-is/strings.xml
+++ b/packages/SettingsLib/res/values-is/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Tenging í gegnum <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Í boði í gegnum %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Ýttu til að skrá þig"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Tengt, enginn netaðgangur"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Ekki næst í DNS-einkaþjón"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Takmörkuð tenging"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Engin nettenging"</string>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index 114b33b49206..50e5777ed9d9 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Connesso tramite <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Disponibile tramite %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Tocca per registrarti"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Connesso, senza Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Non è possibile accedere al server DNS privato"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Connessione limitata"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Nessuna connessione a Internet"</string>
diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml
index 62085a85e243..9f1e457383e1 100644
--- a/packages/SettingsLib/res/values-iw/strings.xml
+++ b/packages/SettingsLib/res/values-iw/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"מחוברת באמצעות <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"‏זמינה דרך %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"יש להקיש כדי להירשם"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"מחובר. אין אינטרנט"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"‏לא ניתן לגשת לשרת DNS הפרטי"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"חיבור מוגבל"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"אין אינטרנט"</string>
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index 28b98ee7c387..47020ed45794 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> で接続しました"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s経由で使用可能"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"タップして登録してください"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"接続済み、インターネット接続なし"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"プライベート DNS サーバーにアクセスできません"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"接続が制限されています"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"インターネット未接続"</string>
diff --git a/packages/SettingsLib/res/values-ka/strings.xml b/packages/SettingsLib/res/values-ka/strings.xml
index 6f5d0b39fc1f..116488d1c151 100644
--- a/packages/SettingsLib/res/values-ka/strings.xml
+++ b/packages/SettingsLib/res/values-ka/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"დაკავშირებულია <xliff:g id="NAME">%1$s</xliff:g>-ით"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"ხელმისაწვდომია %1$s-ით"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"შეეხეთ რეგისტრაციისთვის"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"დაკავშირებულია, ინტერნეტის გარეშე"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"პირად DNS სერვერზე წვდომა შეუძლებელია"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"შეზღუდული კავშირი"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"ინტერნეტ-კავშირი არ არის"</string>
diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml
index 3fe426e6d027..3c4fdb739ef5 100644
--- a/packages/SettingsLib/res/values-kk/strings.xml
+++ b/packages/SettingsLib/res/values-kk/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> арқылы жалғанған"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s арқылы қолжетімді"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Тіркелу үшін түртіңіз."</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Қосылған, интернет жоқ"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Жеке DNS серверіне кіру мүмкін емес."</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Шектеулі байланыс"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Интернетпен байланыс жоқ"</string>
diff --git a/packages/SettingsLib/res/values-km/strings.xml b/packages/SettingsLib/res/values-km/strings.xml
index 24bfa35d2368..87a4f19f3d67 100644
--- a/packages/SettingsLib/res/values-km/strings.xml
+++ b/packages/SettingsLib/res/values-km/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"ភ្ជាប់​តាម <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"មានតាមរយៈ %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"ចុច​ដើម្បី​ចុះឈ្មោះ"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"បាន​ភ្ជាប់ ប៉ុន្តែ​គ្មាន​អ៊ីនធឺណិត​ទេ"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"មិនអាច​ចូលប្រើ​ម៉ាស៊ីនមេ DNS ឯកជន​បានទេ"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"ការតភ្ជាប់មានកម្រិត"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"គ្មាន​អ៊ីនធឺណិតទេ"</string>
diff --git a/packages/SettingsLib/res/values-kn/strings.xml b/packages/SettingsLib/res/values-kn/strings.xml
index 0699bbcd007a..144dddb1f7ff 100644
--- a/packages/SettingsLib/res/values-kn/strings.xml
+++ b/packages/SettingsLib/res/values-kn/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> ಆ್ಯಪ್ ಮೂಲಕ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s ಮೂಲಕ ಲಭ್ಯವಿದೆ"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"ಸೈನ್ ಅಪ್ ಮಾಡಲು ಟ್ಯಾಪ್‌ ಮಾಡಿ"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ, ಇಂಟರ್ನೆಟ್ ಇಲ್ಲ"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"ಖಾಸಗಿ DNS ಸರ್ವರ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"ಸೀಮಿತ ಸಂಪರ್ಕ"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"ಇಂಟರ್ನೆಟ್ ಇಲ್ಲ"</string>
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index 25e9cfe8fa1a..df9f21d800ef 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g>을(를) 통해 연결됨"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s을(를) 통해 사용 가능"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"탭하여 가입"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"연결됨, 인터넷 사용 불가"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"비공개 DNS 서버에 액세스할 수 없습니다."</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"제한된 연결"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"인터넷 연결 없음"</string>
diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml
index 3dfce1eb2a8a..13c414404da2 100644
--- a/packages/SettingsLib/res/values-ky/strings.xml
+++ b/packages/SettingsLib/res/values-ky/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> аркылуу туташты"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s аркылуу жеткиликтүү"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Катталуу үчүн таптап коюңуз"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Туташып турат, Интернет жок"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Жеке DNS сервери жеткиликсиз"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Байланыш чектелген"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Интернет жок"</string>
diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml
index 48e50933c0ce..48224f4c2f81 100644
--- a/packages/SettingsLib/res/values-lo/strings.xml
+++ b/packages/SettingsLib/res/values-lo/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"ເຊື່ອມ​ຕໍ່​ຜ່ານ <xliff:g id="NAME">%1$s</xliff:g> ແລ້ວ"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"ມີ​ໃຫ້​ຜ່ານ %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"ແຕະເພື່ອສະໝັກ"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"ເຊື່ອມຕໍ່ແລ້ວ, ບໍ່ມີອິນເຕີເນັດ"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"ບໍ່ສາມາດເຂົ້າເຖິງເຊີບເວີ DNS ສ່ວນຕົວໄດ້"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"ການເຊື່ອມຕໍ່ຈຳກັດ"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"ບໍ່ມີອິນເຕີເນັດ"</string>
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index 8b3fbadbfb39..d080334062ad 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Prisijungta naudojant programą „<xliff:g id="NAME">%1$s</xliff:g>“"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Pasiekiama naudojant „%1$s“"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Palieskite, kad prisiregistruotumėte"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Prisijungta, nėra interneto"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Privataus DNS serverio negalima pasiekti"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Ribotas ryšys"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Nėra interneto ryšio"</string>
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index 4fc5b223c384..e13a50d990a7 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Savienojums ar <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Pieejams, izmantojot %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Pieskarieties, lai reģistrētos"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Savienojums izveidots, nav piekļuves internetam"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Nevar piekļūt privātam DNS serverim."</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Ierobežots savienojums"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Nav piekļuves internetam"</string>
diff --git a/packages/SettingsLib/res/values-mk/strings.xml b/packages/SettingsLib/res/values-mk/strings.xml
index 288e526be4c9..d027ffe4f44f 100644
--- a/packages/SettingsLib/res/values-mk/strings.xml
+++ b/packages/SettingsLib/res/values-mk/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Поврзано преку <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Достапно преку %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Допрете за да се регистрирате"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Поврзана, нема интернет"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Не може да се пристапи до приватниот DNS-сервер"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Ограничена врска"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Нема интернет"</string>
diff --git a/packages/SettingsLib/res/values-ml/strings.xml b/packages/SettingsLib/res/values-ml/strings.xml
index e775297982fd..e2a3d9fbd4ba 100644
--- a/packages/SettingsLib/res/values-ml/strings.xml
+++ b/packages/SettingsLib/res/values-ml/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> മുഖേന കണക്‌റ്റ് ചെയ്‌തു"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s വഴി ലഭ്യം"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"സൈൻ അപ്പ് ചെയ്യാൻ ടാപ്പ് ചെയ്യുക"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"കണക്റ്റ് ചെയ്‌തു, ഇന്റർനെറ്റ് ഇല്ല"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"സ്വകാര്യ DNS സെർവർ ആക്‌സസ് ചെയ്യാനാവില്ല"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"പരിമിത കണക്‌ഷൻ"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"ഇന്റർനെറ്റ് ഇല്ല"</string>
diff --git a/packages/SettingsLib/res/values-mn/strings.xml b/packages/SettingsLib/res/values-mn/strings.xml
index ba69f9b654ab..dd08c9e9fdfc 100644
--- a/packages/SettingsLib/res/values-mn/strings.xml
+++ b/packages/SettingsLib/res/values-mn/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g>-р холбогдсон"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s-р боломжтой"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Бүртгүүлэхийн тулд товшино уу"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Холбогдсон хэдий ч интернет алга"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Хувийн DNS серверт хандах боломжгүй байна"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Хязгаарлагдмал холболт"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Интернэт алга"</string>
diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml
index 1930cdf75e38..fb7cd1f3cf31 100644
--- a/packages/SettingsLib/res/values-mr/strings.xml
+++ b/packages/SettingsLib/res/values-mr/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> द्वारे कनेक्ट केले"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s द्वारे उपलब्‍ध"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"साइन अप करण्यासाठी टॅप करा"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"कनेक्‍ट केले, इंटरनेट नाही"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"खाजगी DNS सर्व्हर ॲक्सेस करू शकत नाही"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"मर्यादित कनेक्शन"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"इंटरनेट नाही"</string>
diff --git a/packages/SettingsLib/res/values-ms/strings.xml b/packages/SettingsLib/res/values-ms/strings.xml
index e4931883bacd..72b15ff2a172 100644
--- a/packages/SettingsLib/res/values-ms/strings.xml
+++ b/packages/SettingsLib/res/values-ms/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Disambungkan melalui <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Tersedia melalui %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Ketik untuk daftar"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Disambungkan, tiada Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Pelayan DNS peribadi tidak boleh diakses"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Sambungan terhad"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Tiada Internet"</string>
diff --git a/packages/SettingsLib/res/values-my/strings.xml b/packages/SettingsLib/res/values-my/strings.xml
index 2c4b32c04107..24017ecd8196 100644
--- a/packages/SettingsLib/res/values-my/strings.xml
+++ b/packages/SettingsLib/res/values-my/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> မှတစ်ဆင့် ချိတ်ဆက်ထားသည်"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s မှတစ်ဆင့်ရနိုင်သည်"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"အကောင့်ဖွင့်ရန် တို့ပါ"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"ချိတ်ဆက်ထားသည်၊ အင်တာနက်မရှိ"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"သီးသန့် ဒီအန်အက်စ် (DNS) ဆာဗာကို သုံး၍မရပါ။"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"ချိတ်ဆက်မှု ကန့်သတ်ထားသည်"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"အင်တာနက် မရှိပါ"</string>
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index 093c06f20132..aca13a78c453 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Tilkoblet via <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Tilgjengelig via %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Trykk for å registrere deg"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Tilkoblet – ingen Internett-tilgang"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Den private DNS-tjeneren kan ikke nås"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Begrenset tilkobling"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Ingen internettilkobling"</string>
diff --git a/packages/SettingsLib/res/values-ne/strings.xml b/packages/SettingsLib/res/values-ne/strings.xml
index fb8b7377e35d..b2c7518eb8d6 100644
--- a/packages/SettingsLib/res/values-ne/strings.xml
+++ b/packages/SettingsLib/res/values-ne/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> मार्फत जडान गरिएको"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s मार्फत उपलब्ध"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"साइन अप गर्न ट्याप गर्नुहोस्"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"जडान गरियो तर इन्टरनेट छैन"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"निजी DNS सर्भरमाथि पहुँच प्राप्त गर्न सकिँदैन"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"सीमित जडान"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"इन्टरनेटमाथिको पहुँच छैन"</string>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index 267dab4cdee8..c74683bdf238 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Verbonden via <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Beschikbaar via %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Tik om aan te melden"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Verbonden, geen internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Geen toegang tot privé-DNS-server"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Beperkte verbinding"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Geen internet"</string>
diff --git a/packages/SettingsLib/res/values-or/strings.xml b/packages/SettingsLib/res/values-or/strings.xml
index d8ae3bfb9a72..704fc42e7ddf 100644
--- a/packages/SettingsLib/res/values-or/strings.xml
+++ b/packages/SettingsLib/res/values-or/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> ଦ୍ବାରା ସଂଯୋଗ କରାଯାଇଛି"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s ମାଧ୍ୟମରେ ଉପଲବ୍ଧ"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"ସାଇନ୍ ଅପ୍ ପାଇଁ ଟାପ୍ କରନ୍ତୁ"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"ସଂଯୁକ୍ତ, ଇଣ୍ଟର୍‌ନେଟ୍‌ ନାହିଁ"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"ବ୍ୟକ୍ତିଗତ DNS ସର୍ଭର୍ ଆକ୍ସେସ୍ କରିହେବ ନାହିଁ"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"ସୀମିତ ସଂଯୋଗ"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"କୌଣସି ଇଣ୍ଟରନେଟ୍‌ ନାହିଁ"</string>
diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml
index 6a784865b12c..bf5a32cd33b5 100644
--- a/packages/SettingsLib/res/values-pa/strings.xml
+++ b/packages/SettingsLib/res/values-pa/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> ਰਾਹੀਂ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s ਰਾਹੀਂ ਉਪਲਬਧ"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"ਸਾਈਨ-ਅੱਪ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"ਕਨੈਕਟ ਕੀਤਾ, ਕੋਈ ਇੰਟਰਨੈੱਟ ਨਹੀਂ"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"ਨਿੱਜੀ ਡੋਮੇਨ ਨਾਮ ਪ੍ਰਣਾਲੀ (DNS) ਸਰਵਰ \'ਤੇ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"ਸੀਮਤ ਕਨੈਕਸ਼ਨ"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"ਇੰਟਰਨੈੱਟ ਨਹੀਂ"</string>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index 8c5547c2791d..d907760c5567 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Połączenie przez: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Dostępne przez %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Kliknij, by się zarejestrować"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Połączono, brak internetu"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Brak dostępu do prywatnego serwera DNS"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Ograniczone połączenie"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Brak internetu"</string>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index 8c036164e140..e61c84e01179 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Conectado via <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Disponível via %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Toque para se inscrever"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Conectada, sem Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Não é possível acessar o servidor DNS privado"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Conexão limitada"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Sem Internet"</string>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index 6aeff1cb271c..8ceeb6333210 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Ligado via <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Disponível através de %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Toque para se inscrever"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Ligado, sem Internet."</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Não é possível aceder ao servidor DNS."</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Ligação limitada"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Sem Internet"</string>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index 8c036164e140..e61c84e01179 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Conectado via <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Disponível via %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Toque para se inscrever"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Conectada, sem Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Não é possível acessar o servidor DNS privado"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Conexão limitada"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Sem Internet"</string>
diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml
index 387441f32b56..5ad8dfd136de 100644
--- a/packages/SettingsLib/res/values-ro/strings.xml
+++ b/packages/SettingsLib/res/values-ro/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Conectat prin <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Disponibilă prin %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Atingeți pentru a vă înscrie"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Conectată, fără internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Serverul DNS privat nu poate fi accesat"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Conexiune limitată"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Fără conexiune la internet"</string>
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index 361e29ff452e..104efdc57b45 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Подключено через приложение \"<xliff:g id="NAME">%1$s</xliff:g>\"."</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Доступно через %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Нажмите, чтобы зарегистрироваться"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Подключено, без доступа к Интернету"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Доступа к частному DNS-серверу нет."</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Подключение к сети ограничено."</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Нет подключения к Интернету"</string>
diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml
index faa848fec830..f5dad8748b24 100644
--- a/packages/SettingsLib/res/values-si/strings.xml
+++ b/packages/SettingsLib/res/values-si/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> හරහා සම්බන්ධයි"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s හරහා ලබා ගැනීමට හැකිය"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"ලියාපදිංචි වීමට තට්ටු කරන්න"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"සම්බන්ධයි, අන්තර්ජාලය නැත"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"පුද්ගලික DNS සේවාදායකයට ප්‍රවේශ වීමට නොහැකිය"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"සීමිත සම්බන්ධතාව"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"අන්තර්ජාලය නැත"</string>
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index 2035d88c75f0..527dafb95a2e 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Pripojené prostredníctvom siete <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"K dispozícii prostredníctvom %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Prihláste sa klepnutím"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Pripojené, žiadny internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"K súkromnému serveru DNS sa nepodarilo získať prístup"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Obmedzené pripojenie"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Žiadny internet"</string>
diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml
index 288961947269..481695046625 100644
--- a/packages/SettingsLib/res/values-sl/strings.xml
+++ b/packages/SettingsLib/res/values-sl/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Povezava vzpostavljena prek omrežja <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Na voljo prek: %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Dotaknite se, če se želite registrirati"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Vzpostavljena povezava, brez interneta"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Do zasebnega strežnika DNS ni mogoče dostopati"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Omejena povezava"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Brez internetne povezave"</string>
diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml
index ccd4e3066d9f..12511dd3582c 100644
--- a/packages/SettingsLib/res/values-sq/strings.xml
+++ b/packages/SettingsLib/res/values-sq/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Lidhur përmes <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"E mundshme përmes %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Trokit për t\'u regjistruar"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"U lidh, por nuk ka internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Serveri privat DNS nuk mund të qaset"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Lidhje e kufizuar"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Nuk ka internet"</string>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index 08e2bc85db4e..4724be52f87c 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Повезано преко: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Доступна је преко приступне тачке %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Додирните да бисте се регистровали"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Веза је успостављена, нема интернета"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Приступ приватном DNS серверу није успео"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Ограничена веза"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Нема интернета"</string>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index c0cdbc913aea..9d1bc42b613a 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Anslutet via <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Tillgängligt via %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Tryck för att logga in"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Ansluten, inget internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Det går inte att komma åt den privata DNS-servern."</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Begränsad anslutning"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Inget internet"</string>
diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml
index f00dea3822cf..1e2489f89ff6 100644
--- a/packages/SettingsLib/res/values-sw/strings.xml
+++ b/packages/SettingsLib/res/values-sw/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Imeunganishwa kupitia <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Inapatikana kupitia %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Gusa ili ujisajili"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Imeunganishwa, hakuna intaneti"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Seva ya faragha ya DNS haiwezi kufikiwa"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Muunganisho hafifu"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Hakuna intaneti"</string>
diff --git a/packages/SettingsLib/res/values-ta/strings.xml b/packages/SettingsLib/res/values-ta/strings.xml
index 52e0363147da..fcb801b112a0 100644
--- a/packages/SettingsLib/res/values-ta/strings.xml
+++ b/packages/SettingsLib/res/values-ta/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> மூலம் இணைக்கப்பட்டது"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s வழியாகக் கிடைக்கிறது"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"பதிவு செய்யத் தட்டவும்"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"இணைக்கப்பட்டுள்ளது, ஆனால் இண்டர்நெட் இல்லை"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"தனிப்பட்ட DNS சேவையகத்தை அணுக இயலாது"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"வரம்பிற்கு உட்பட்ட இணைப்பு"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"இணைய இணைப்பு இல்லை"</string>
diff --git a/packages/SettingsLib/res/values-te/strings.xml b/packages/SettingsLib/res/values-te/strings.xml
index a39c4e14cddd..7a8045111baa 100644
--- a/packages/SettingsLib/res/values-te/strings.xml
+++ b/packages/SettingsLib/res/values-te/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> ద్వారా కనెక్ట్ చేయబడింది"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s ద్వారా అందుబాటులో ఉంది"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"సైన్ అప్ చేయడానికి నొక్కండి"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"కనెక్ట్ చేయబడింది, ఇంటర్నెట్ లేదు"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"ప్రైవేట్ DNS సర్వర్‌ను యాక్సెస్ చేయడం సాధ్యపడదు"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"పరిమిత కనెక్షన్"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"ఇంటర్నెట్ లేదు"</string>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index 635d77a77a35..130e1c4318a1 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"เชื่อมต่อแล้วผ่าน <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"พร้อมใช้งานผ่านทาง %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"แตะเพื่อลงชื่อสมัครใช้"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"เชื่อมต่อแล้ว ไม่พบอินเทอร์เน็ต"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"เข้าถึงเซิร์ฟเวอร์ DNS ไม่ได้"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"การเชื่อมต่อที่จำกัด"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"ไม่มีอินเทอร์เน็ต"</string>
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index 3f7f0ff56f8a..bc1a40560df0 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Nakakonekta sa pamamagitan ng <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Available sa pamamagitan ng %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"I-tap para mag-sign up"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Nakakonekta, walang internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Hindi ma-access ang pribadong DNS server"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Limitadong koneksyon"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Walang internet"</string>
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index 7ad6fcd24ea1..4e263ef86cd5 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> ile bağlandı"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s üzerinden kullanılabilir"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Kaydolmak için dokunun"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Bağlı, internet yok"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Gizli DNS sunucusuna erişilemiyor"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Sınırlı bağlantı"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"İnternet yok"</string>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index b5dd61898470..ad9f600ae74d 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Підключено через додаток <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Доступ через %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Торкніться, щоб увійти"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Під’єднано, але немає доступу до Інтернету"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Немає доступу до приватного DNS-сервера"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Обмежене з’єднання"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Немає Інтернету"</string>
diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml
index ef9b2a1b294e..b995da1ad37b 100644
--- a/packages/SettingsLib/res/values-ur/strings.xml
+++ b/packages/SettingsLib/res/values-ur/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> کے ذریعے منسلک"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"‏دستیاب بذریعہ ‎%1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"سائن اپ کے لیے تھپتھپائیں"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"منسلک، انٹرنیٹ نہیں ہے"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"‏نجی DNS سرور تک رسائی حاصل نہیں کی جا سکی"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"محدود کنکشن"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"انٹرنیٹ نہیں ہے"</string>
diff --git a/packages/SettingsLib/res/values-uz/strings.xml b/packages/SettingsLib/res/values-uz/strings.xml
index b202d6444965..f02b63940115 100644
--- a/packages/SettingsLib/res/values-uz/strings.xml
+++ b/packages/SettingsLib/res/values-uz/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"<xliff:g id="NAME">%1$s</xliff:g> orqali ulandi"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"%1$s orqali ishlaydi"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Yozilish uchun bosing"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Ulangan, lekin internet aloqasi yo‘q"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Xususiy DNS server ishlamayapti"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Cheklangan aloqa"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Internet yo‘q"</string>
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index cda42d348c45..8fcf1f2ef21c 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Đã kết nối qua <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Có sẵn qua %1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Nhấn để đăng ký"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Đã kết nối, không có Internet"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Không thể truy cập máy chủ DNS riêng tư"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Kết nối giới hạn"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Không có Internet"</string>
@@ -201,7 +202,7 @@
<string name="development_settings_summary" msgid="8718917813868735095">"Đặt tùy chọn cho phát triển ứng dụng"</string>
<string name="development_settings_not_available" msgid="355070198089140951">"Tùy chọn dành cho nhà phát triển không khả dụng cho người dùng này"</string>
<string name="vpn_settings_not_available" msgid="2894137119965668920">"Cài đặt VPN không khả dụng cho người dùng này"</string>
- <string name="tethering_settings_not_available" msgid="266821736434699780">"Cài đặt chia sẻ kết nối không khả dụng cho người dùng này"</string>
+ <string name="tethering_settings_not_available" msgid="266821736434699780">"Cài đặt cách chia sẻ kết nối không khả dụng cho người dùng này"</string>
<string name="apn_settings_not_available" msgid="1147111671403342300">"Cài đặt tên điểm truy cập không khả dụng cho người dùng này"</string>
<string name="enable_adb" msgid="8072776357237289039">"Gỡ lỗi qua USB"</string>
<string name="enable_adb_summary" msgid="3711526030096574316">"Bật chế độ gỡ lỗi khi kết nối USB"</string>
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index 418370b916e6..755cbeee3499 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"已通过<xliff:g id="NAME">%1$s</xliff:g>连接到网络"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"可通过%1$s连接"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"点按即可注册"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"已连接,但无法访问互联网"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"无法访问私人 DNS 服务器"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"网络连接受限"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"无法访问互联网"</string>
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index 79b55796bda2..e50acf5004fa 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"已透過「<xliff:g id="NAME">%1$s</xliff:g>」連線"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"可透過 %1$s 連線"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"輕按即可登入"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"已連線,但沒有互聯網"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"無法存取私人 DNS 伺服器"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"連線受限"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"沒有互聯網連線"</string>
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index 47ab7641b7ad..7df6fed4d8fd 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"透過「<xliff:g id="NAME">%1$s</xliff:g>」連線"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"可透過 %1$s 使用"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"輕觸即可註冊"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"已連線,沒有網際網路"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"無法存取私人 DNS 伺服器"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"連線能力受限"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"沒有網際網路連線"</string>
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index 87f45de36c58..46dffbe3aa33 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -42,7 +42,8 @@
<string name="connected_via_app" msgid="3532267661404276584">"Ixhumeke nge-<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="available_via_passpoint" msgid="1716000261192603682">"Iyatholakala nge-%1$s"</string>
<string name="tap_to_sign_up" msgid="5356397741063740395">"Thepha ukuze ubhalisele"</string>
- <string name="wifi_connected_no_internet" msgid="2381729074310543563">"Kuxhunyiwe, ayikho i-inthanethi"</string>
+ <!-- no translation found for wifi_connected_no_internet (5087420713443350646) -->
+ <skip />
<string name="private_dns_broken" msgid="1984159464346556931">"Iseva eyimfihlo ye-DNS ayikwazi ukufinyelelwa"</string>
<string name="wifi_limited_connection" msgid="1184778285475204682">"Iqoqo elikhawulelwe"</string>
<string name="wifi_status_no_internet" msgid="3799933875988829048">"Ayikho i-inthanethi"</string>
diff --git a/packages/SettingsLib/res/values/config.xml b/packages/SettingsLib/res/values/config.xml
new file mode 100644
index 000000000000..332d6c7bc0fa
--- /dev/null
+++ b/packages/SettingsLib/res/values/config.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<!-- These resources are around just to allow their values to be customized -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Threshold in micro watts below which a charger is rated as "slow"; 1A @ 5V -->
+ <integer name="config_chargingSlowlyThreshold">5000000</integer>
+
+ <!-- Threshold in micro watts above which a charger is rated as "fast"; 1.5A @ 5V -->
+ <integer name="config_chargingFastThreshold">7500000</integer>
+</resources> \ No newline at end of file
diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml
index a7df6db3d31f..2e7a3c0eb263 100644
--- a/packages/SettingsLib/res/values/strings.xml
+++ b/packages/SettingsLib/res/values/strings.xml
@@ -129,7 +129,7 @@
<string name="certinstaller_package" translatable="false">com.android.certinstaller</string>
<!-- Summary for Connected wifi network without internet -->
- <string name="wifi_connected_no_internet">Connected, no internet</string>
+ <string name="wifi_connected_no_internet">No internet</string>
<!-- Summary for connected network without internet due to private dns validation failed [CHAR LIMIT=NONE] -->
<string name="private_dns_broken">Private DNS server cannot be accessed</string>
@@ -1034,8 +1034,10 @@
<string name="battery_info_status_unknown">Unknown</string>
<!-- [CHAR_LIMIT=20] Battery use screen. Battery status shown in chart label when charging from an unknown source. -->
<string name="battery_info_status_charging">Charging</string>
- <!-- [CHAR_LIMIT=20] Battery use screen with lower case. Battery status shown in chart label when charging from an unknown source. -->
- <string name="battery_info_status_charging_lower">charging</string>
+ <!-- [CHAR_LIMIT=20] Battery use screen. Battery status shown in chart label when charging speed is fast. -->
+ <string name="battery_info_status_charging_fast">Charging rapidly</string>
+ <!-- [CHAR_LIMIT=20] Battery use screen. Battery status shown in chart label when charging speed is slow. -->
+ <string name="battery_info_status_charging_slow">Charging slowly</string>
<!-- Battery Info screen. Value for a status item. Used for diagnostic info screens, precise translation isn't needed -->
<string name="battery_info_status_discharging">Not charging</string>
<!-- Battery Info screen. Value for a status item. Used for diagnostic info screens, precise translation isn't needed -->
diff --git a/packages/SettingsLib/src/com/android/settingslib/Utils.java b/packages/SettingsLib/src/com/android/settingslib/Utils.java
index de523d9f9bc8..f4857932064f 100644
--- a/packages/SettingsLib/src/com/android/settingslib/Utils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/Utils.java
@@ -3,6 +3,7 @@ package com.android.settingslib;
import android.annotation.ColorInt;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
@@ -13,6 +14,7 @@ import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Color;
+import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.location.LocationManager;
import android.media.AudioManager;
@@ -27,9 +29,13 @@ import android.telephony.AccessNetworkConstants;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.ServiceState;
+import androidx.annotation.NonNull;
+
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.UserIcons;
+import com.android.launcher3.icons.IconFactory;
import com.android.settingslib.drawable.UserIconDrawable;
+import com.android.settingslib.fuelgauge.BatteryStatus;
import java.text.NumberFormat;
@@ -117,7 +123,7 @@ public class Utils {
public static Drawable getUserIcon(Context context, UserManager um, UserInfo user) {
final int iconSize = UserIconDrawable.getSizeForList(context);
if (user.isManagedProfile()) {
- Drawable drawable = UserIconDrawable.getManagedUserDrawable(context);
+ Drawable drawable = UserIconDrawable.getManagedUserDrawable(context);
drawable.setBounds(0, 0, iconSize, iconSize);
return drawable;
}
@@ -159,20 +165,43 @@ public class Utils {
return (level * 100) / scale;
}
- public static String getBatteryStatus(Resources res, Intent batteryChangedIntent) {
- int status = batteryChangedIntent.getIntExtra(BatteryManager.EXTRA_STATUS,
+ /**
+ * Get battery status string
+ *
+ * @param context the context
+ * @param batteryChangedIntent battery broadcast intent received from {@link
+ * Intent.ACTION_BATTERY_CHANGED}.
+ * @return battery status string
+ */
+ public static String getBatteryStatus(Context context, Intent batteryChangedIntent) {
+ final int status = batteryChangedIntent.getIntExtra(BatteryManager.EXTRA_STATUS,
BatteryManager.BATTERY_STATUS_UNKNOWN);
- String statusString;
- if (status == BatteryManager.BATTERY_STATUS_CHARGING) {
- statusString = res.getString(R.string.battery_info_status_charging);
- } else if (status == BatteryManager.BATTERY_STATUS_DISCHARGING) {
- statusString = res.getString(R.string.battery_info_status_discharging);
- } else if (status == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
- statusString = res.getString(R.string.battery_info_status_not_charging);
- } else if (status == BatteryManager.BATTERY_STATUS_FULL) {
+ final Resources res = context.getResources();
+
+ String statusString = res.getString(R.string.battery_info_status_unknown);
+ final BatteryStatus batteryStatus = new BatteryStatus(batteryChangedIntent);
+
+ if (batteryStatus.isCharged()) {
statusString = res.getString(R.string.battery_info_status_full);
} else {
- statusString = res.getString(R.string.battery_info_status_unknown);
+ if (status == BatteryManager.BATTERY_STATUS_CHARGING) {
+ switch (batteryStatus.getChargingSpeed(context)) {
+ case BatteryStatus.CHARGING_FAST:
+ statusString = res.getString(R.string.battery_info_status_charging_fast);
+ break;
+ case BatteryStatus.CHARGING_SLOWLY:
+ statusString = res.getString(R.string.battery_info_status_charging_slow);
+ break;
+ default:
+ statusString = res.getString(R.string.battery_info_status_charging);
+ break;
+ }
+
+ } else if (status == BatteryManager.BATTERY_STATUS_DISCHARGING) {
+ statusString = res.getString(R.string.battery_info_status_discharging);
+ } else if (status == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
+ statusString = res.getString(R.string.battery_info_status_not_charging);
+ }
}
return statusString;
@@ -206,7 +235,7 @@ public class Utils {
/**
* This method computes disabled color from normal color
*
- * @param context
+ * @param context the context
* @param inputColor normal color.
* @return disabled color.
*/
@@ -424,6 +453,19 @@ public class Utils {
return state;
}
+ /**
+ * Get the {@link Drawable} that represents the app icon
+ */
+ public static @NonNull Drawable getBadgedIcon(
+ @NonNull Context context, @NonNull ApplicationInfo appInfo) {
+ final UserHandle user = UserHandle.getUserHandleForUid(appInfo.uid);
+ try (IconFactory iconFactory = IconFactory.obtain(context)) {
+ final Bitmap iconBmp = iconFactory.createBadgedIconBitmap(
+ appInfo.loadUnbadgedIcon(context.getPackageManager()), user, false).icon;
+ return new BitmapDrawable(context.getResources(), iconBmp);
+ }
+ }
+
private static boolean isNotInIwlan(ServiceState serviceState) {
final NetworkRegistrationInfo networkRegWlan = serviceState.getNetworkRegistrationInfo(
NetworkRegistrationInfo.DOMAIN_PS,
diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java
index 19c666459723..af728887c917 100644
--- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java
+++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java
@@ -59,6 +59,7 @@ import androidx.lifecycle.OnLifecycleEvent;
import com.android.internal.R;
import com.android.internal.util.ArrayUtils;
+import com.android.settingslib.Utils;
import java.io.File;
import java.io.IOException;
@@ -495,7 +496,7 @@ public class ApplicationsState {
return;
}
synchronized (entry) {
- entry.ensureIconLocked(mContext, mDrawableFactory);
+ entry.ensureIconLocked(mContext);
}
}
@@ -1216,7 +1217,7 @@ public class ApplicationsState {
AppEntry entry = mAppEntries.get(i);
if (entry.icon == null || !entry.mounted) {
synchronized (entry) {
- if (entry.ensureIconLocked(mContext, mDrawableFactory)) {
+ if (entry.ensureIconLocked(mContext)) {
if (!mRunning) {
mRunning = true;
Message m = mMainHandler.obtainMessage(
@@ -1587,10 +1588,10 @@ public class ApplicationsState {
}
}
- boolean ensureIconLocked(Context context, IconDrawableFactory drawableFactory) {
+ boolean ensureIconLocked(Context context) {
if (this.icon == null) {
if (this.apkFile.exists()) {
- this.icon = drawableFactory.getBadgedIcon(info);
+ this.icon = Utils.getBadgedIcon(context, info);
return true;
} else {
this.mounted = false;
@@ -1601,7 +1602,7 @@ public class ApplicationsState {
// its icon.
if (this.apkFile.exists()) {
this.mounted = true;
- this.icon = drawableFactory.getBadgedIcon(info);
+ this.icon = Utils.getBadgedIcon(context, info);
return true;
}
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java
index a784e04ee6a0..1ebe91736ba1 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java
@@ -16,6 +16,7 @@
package com.android.settingslib.bluetooth;
+import static android.bluetooth.BluetoothAdapter.ACTIVE_DEVICE_AUDIO;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
@@ -45,6 +46,7 @@ public class A2dpProfile implements LocalBluetoothProfile {
private boolean mIsProfileReady;
private final CachedBluetoothDeviceManager mDeviceManager;
+ private final BluetoothAdapter mBluetoothAdapter;
static final ParcelUuid[] SINK_UUIDS = {
BluetoothUuid.A2DP_SINK,
@@ -99,7 +101,8 @@ public class A2dpProfile implements LocalBluetoothProfile {
mContext = context;
mDeviceManager = deviceManager;
mProfileManager = profileManager;
- BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, new A2dpServiceListener(),
+ mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+ mBluetoothAdapter.getProfileProxy(context, new A2dpServiceListener(),
BluetoothProfile.A2DP);
}
@@ -150,21 +153,6 @@ public class A2dpProfile implements LocalBluetoothProfile {
return mService.getDevicesMatchingConnectionStates(states);
}
- public boolean connect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
- }
-
- public boolean disconnect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
-
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
- }
-
public int getConnectionStatus(BluetoothDevice device) {
if (mService == null) {
return BluetoothProfile.STATE_DISCONNECTED;
@@ -173,8 +161,10 @@ public class A2dpProfile implements LocalBluetoothProfile {
}
public boolean setActiveDevice(BluetoothDevice device) {
- if (mService == null) return false;
- return mService.setActiveDevice(device);
+ if (mBluetoothAdapter == null) {
+ return false;
+ }
+ return mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_AUDIO);
}
public BluetoothDevice getActiveDevice() {
@@ -182,31 +172,37 @@ public class A2dpProfile implements LocalBluetoothProfile {
return mService.getActiveDevice();
}
- public boolean isPreferred(BluetoothDevice device) {
+ @Override
+ public boolean isEnabled(BluetoothDevice device) {
if (mService == null) {
return false;
}
return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
}
- public int getPreferred(BluetoothDevice device) {
+ @Override
+ public int getConnectionPolicy(BluetoothDevice device) {
if (mService == null) {
return CONNECTION_POLICY_FORBIDDEN;
}
return mService.getConnectionPolicy(device);
}
- public void setPreferred(BluetoothDevice device, boolean preferred) {
+ @Override
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ boolean isEnabled = false;
if (mService == null) {
- return;
+ return false;
}
- if (preferred) {
+ if (enabled) {
if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
}
} else {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
}
+
+ return isEnabled;
}
boolean isA2dpPlaying() {
if (mService == null) return false;
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpSinkProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpSinkProfile.java
index 8ca5a74652dc..c7a5bd86c1cd 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpSinkProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpSinkProfile.java
@@ -115,21 +115,6 @@ final class A2dpSinkProfile implements LocalBluetoothProfile {
BluetoothProfile.STATE_DISCONNECTING});
}
- public boolean connect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
- }
-
- public boolean disconnect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
-
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
- }
-
public int getConnectionStatus(BluetoothDevice device) {
if (mService == null) {
return BluetoothProfile.STATE_DISCONNECTED;
@@ -137,31 +122,37 @@ final class A2dpSinkProfile implements LocalBluetoothProfile {
return mService.getConnectionState(device);
}
- public boolean isPreferred(BluetoothDevice device) {
+ @Override
+ public boolean isEnabled(BluetoothDevice device) {
if (mService == null) {
return false;
}
return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
}
- public int getPreferred(BluetoothDevice device) {
+ @Override
+ public int getConnectionPolicy(BluetoothDevice device) {
if (mService == null) {
return CONNECTION_POLICY_FORBIDDEN;
}
return mService.getConnectionPolicy(device);
}
- public void setPreferred(BluetoothDevice device, boolean preferred) {
+ @Override
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ boolean isEnabled = false;
if (mService == null) {
- return;
+ return false;
}
- if (preferred) {
+ if (enabled) {
if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
}
} else {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
}
+
+ return isEnabled;
}
boolean isAudioPlaying() {
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
index 50d3a5daeb84..3aa35cb48c38 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
@@ -195,7 +195,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
if (newProfileState == BluetoothProfile.STATE_CONNECTED) {
if (profile instanceof MapProfile) {
- profile.setPreferred(mDevice, true);
+ profile.setEnabled(mDevice, true);
}
if (!mProfiles.contains(profile)) {
mRemovedProfiles.remove(profile);
@@ -208,7 +208,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
}
} else if (profile instanceof MapProfile
&& newProfileState == BluetoothProfile.STATE_DISCONNECTED) {
- profile.setPreferred(mDevice, false);
+ profile.setEnabled(mDevice, false);
} else if (mLocalNapRoleConnected && profile instanceof PanProfile
&& ((PanProfile) profile).isLocalRoleNap(mDevice)
&& newProfileState == BluetoothProfile.STATE_DISCONNECTED) {
@@ -250,12 +250,12 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
PbapServerProfile PbapProfile = mProfileManager.getPbapProfile();
if (PbapProfile != null && isConnectedProfile(PbapProfile))
{
- PbapProfile.disconnect(mDevice);
+ PbapProfile.setEnabled(mDevice, false);
}
}
public void disconnect(LocalBluetoothProfile profile) {
- if (profile.disconnect(mDevice)) {
+ if (profile.setEnabled(mDevice, false)) {
if (BluetoothUtils.D) {
Log.d(TAG, "Command sent successfully:DISCONNECT " + describe(profile));
}
@@ -342,7 +342,7 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice>
if (!ensurePaired()) {
return;
}
- if (profile.connect(mDevice)) {
+ if (profile.setEnabled(mDevice, true)) {
if (BluetoothUtils.D) {
Log.d(TAG, "Command sent successfully:CONNECT " + describe(profile));
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java
index d65b5da22056..9dfc4d986745 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HeadsetProfile.java
@@ -16,6 +16,7 @@
package com.android.settingslib.bluetooth;
+import static android.bluetooth.BluetoothAdapter.ACTIVE_DEVICE_PHONE_CALL;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
@@ -45,6 +46,7 @@ public class HeadsetProfile implements LocalBluetoothProfile {
private final CachedBluetoothDeviceManager mDeviceManager;
private final LocalBluetoothProfileManager mProfileManager;
+ private final BluetoothAdapter mBluetoothAdapter;
static final ParcelUuid[] UUIDS = {
BluetoothUuid.HSP,
@@ -99,7 +101,8 @@ public class HeadsetProfile implements LocalBluetoothProfile {
LocalBluetoothProfileManager profileManager) {
mDeviceManager = deviceManager;
mProfileManager = profileManager;
- BluetoothAdapter.getDefaultAdapter().getProfileProxy(context, new HeadsetServiceListener(),
+ mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+ mBluetoothAdapter.getProfileProxy(context, new HeadsetServiceListener(),
BluetoothProfile.HEADSET);
}
@@ -111,21 +114,6 @@ public class HeadsetProfile implements LocalBluetoothProfile {
return true;
}
- public boolean connect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
- }
-
- public boolean disconnect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
-
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
- }
-
public int getConnectionStatus(BluetoothDevice device) {
if (mService == null) {
return BluetoothProfile.STATE_DISCONNECTED;
@@ -134,10 +122,10 @@ public class HeadsetProfile implements LocalBluetoothProfile {
}
public boolean setActiveDevice(BluetoothDevice device) {
- if (mService == null) {
+ if (mBluetoothAdapter == null) {
return false;
}
- return mService.setActiveDevice(device);
+ return mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_PHONE_CALL);
}
public BluetoothDevice getActiveDevice() {
@@ -161,31 +149,37 @@ public class HeadsetProfile implements LocalBluetoothProfile {
return mService.getAudioState(device);
}
- public boolean isPreferred(BluetoothDevice device) {
+ @Override
+ public boolean isEnabled(BluetoothDevice device) {
if (mService == null) {
return false;
}
return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
}
- public int getPreferred(BluetoothDevice device) {
+ @Override
+ public int getConnectionPolicy(BluetoothDevice device) {
if (mService == null) {
return CONNECTION_POLICY_FORBIDDEN;
}
return mService.getConnectionPolicy(device);
}
- public void setPreferred(BluetoothDevice device, boolean preferred) {
+ @Override
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ boolean isEnabled = false;
if (mService == null) {
- return;
+ return false;
}
- if (preferred) {
+ if (enabled) {
if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
}
} else {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
}
+
+ return isEnabled;
}
public List<BluetoothDevice> getConnectedDevices() {
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java
index 9f1af669c708..a3b68b4b90b3 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HearingAidProfile.java
@@ -16,6 +16,7 @@
package com.android.settingslib.bluetooth;
+import static android.bluetooth.BluetoothAdapter.ACTIVE_DEVICE_ALL;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
@@ -45,6 +46,7 @@ public class HearingAidProfile implements LocalBluetoothProfile {
static final String NAME = "HearingAid";
private final LocalBluetoothProfileManager mProfileManager;
+ private final BluetoothAdapter mBluetoothAdapter;
// Order of this profile in device profiles list
private static final int ORDINAL = 1;
@@ -97,7 +99,8 @@ public class HearingAidProfile implements LocalBluetoothProfile {
mContext = context;
mDeviceManager = deviceManager;
mProfileManager = profileManager;
- BluetoothAdapter.getDefaultAdapter().getProfileProxy(context,
+ mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+ mBluetoothAdapter.getProfileProxy(context,
new HearingAidServiceListener(), BluetoothProfile.HEARING_AID);
}
@@ -148,21 +151,6 @@ public class HearingAidProfile implements LocalBluetoothProfile {
return mService.getDevicesMatchingConnectionStates(states);
}
- public boolean connect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
- }
-
- public boolean disconnect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
-
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
- }
-
public int getConnectionStatus(BluetoothDevice device) {
if (mService == null) {
return BluetoothProfile.STATE_DISCONNECTED;
@@ -171,8 +159,10 @@ public class HearingAidProfile implements LocalBluetoothProfile {
}
public boolean setActiveDevice(BluetoothDevice device) {
- if (mService == null) return false;
- return mService.setActiveDevice(device);
+ if (mBluetoothAdapter == null) {
+ return false;
+ }
+ return mBluetoothAdapter.setActiveDevice(device, ACTIVE_DEVICE_ALL);
}
public List<BluetoothDevice> getActiveDevices() {
@@ -180,31 +170,37 @@ public class HearingAidProfile implements LocalBluetoothProfile {
return mService.getActiveDevices();
}
- public boolean isPreferred(BluetoothDevice device) {
+ @Override
+ public boolean isEnabled(BluetoothDevice device) {
if (mService == null) {
return false;
}
return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
}
- public int getPreferred(BluetoothDevice device) {
+ @Override
+ public int getConnectionPolicy(BluetoothDevice device) {
if (mService == null) {
return CONNECTION_POLICY_FORBIDDEN;
}
return mService.getConnectionPolicy(device);
}
- public void setPreferred(BluetoothDevice device, boolean preferred) {
+ @Override
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ boolean isEnabled = false;
if (mService == null) {
- return;
+ return false;
}
- if (preferred) {
+ if (enabled) {
if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
}
} else {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
}
+
+ return isEnabled;
}
public void setVolume(int volume) {
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HfpClientProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HfpClientProfile.java
index 678f2e37c6bf..66225a2bffca 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HfpClientProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HfpClientProfile.java
@@ -125,23 +125,6 @@ final class HfpClientProfile implements LocalBluetoothProfile {
}
@Override
- public boolean connect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
- }
-
- @Override
- public boolean disconnect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
-
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
- }
-
- @Override
public int getConnectionStatus(BluetoothDevice device) {
if (mService == null) {
return BluetoothProfile.STATE_DISCONNECTED;
@@ -150,7 +133,7 @@ final class HfpClientProfile implements LocalBluetoothProfile {
}
@Override
- public boolean isPreferred(BluetoothDevice device) {
+ public boolean isEnabled(BluetoothDevice device) {
if (mService == null) {
return false;
}
@@ -158,7 +141,7 @@ final class HfpClientProfile implements LocalBluetoothProfile {
}
@Override
- public int getPreferred(BluetoothDevice device) {
+ public int getConnectionPolicy(BluetoothDevice device) {
if (mService == null) {
return CONNECTION_POLICY_FORBIDDEN;
}
@@ -166,17 +149,20 @@ final class HfpClientProfile implements LocalBluetoothProfile {
}
@Override
- public void setPreferred(BluetoothDevice device, boolean preferred) {
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ boolean isEnabled = false;
if (mService == null) {
- return;
+ return false;
}
- if (preferred) {
+ if (enabled) {
if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
}
} else {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
}
+
+ return isEnabled;
}
@Override
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidDeviceProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidDeviceProfile.java
index 35600b538d4d..8a2c4f8a1230 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidDeviceProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidDeviceProfile.java
@@ -16,6 +16,8 @@
package com.android.settingslib.bluetooth;
+import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
+
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothDevice;
@@ -102,20 +104,6 @@ public class HidDeviceProfile implements LocalBluetoothProfile {
}
@Override
- public boolean connect(BluetoothDevice device) {
- // Don't invoke method in service because settings is not allowed to connect this profile.
- return false;
- }
-
- @Override
- public boolean disconnect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
- return mService.disconnect(device);
- }
-
- @Override
public int getConnectionStatus(BluetoothDevice device) {
if (mService == null) {
return BluetoothProfile.STATE_DISCONNECTED;
@@ -124,21 +112,24 @@ public class HidDeviceProfile implements LocalBluetoothProfile {
}
@Override
- public boolean isPreferred(BluetoothDevice device) {
+ public boolean isEnabled(BluetoothDevice device) {
return getConnectionStatus(device) != BluetoothProfile.STATE_DISCONNECTED;
}
@Override
- public int getPreferred(BluetoothDevice device) {
+ public int getConnectionPolicy(BluetoothDevice device) {
return PREFERRED_VALUE;
}
@Override
- public void setPreferred(BluetoothDevice device, boolean preferred) {
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ boolean isEnabled = false;
// if set preferred to false, then disconnect to the current device
- if (!preferred) {
- mService.disconnect(device);
+ if (!enabled) {
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
}
+
+ return isEnabled;
}
@Override
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidProfile.java
index 588083e73481..3c24b4a095b9 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/HidProfile.java
@@ -101,20 +101,6 @@ public class HidProfile implements LocalBluetoothProfile {
return true;
}
- public boolean connect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
- }
-
- public boolean disconnect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
- }
-
public int getConnectionStatus(BluetoothDevice device) {
if (mService == null) {
return BluetoothProfile.STATE_DISCONNECTED;
@@ -122,29 +108,37 @@ public class HidProfile implements LocalBluetoothProfile {
return mService.getConnectionState(device);
}
- public boolean isPreferred(BluetoothDevice device) {
+ @Override
+ public boolean isEnabled(BluetoothDevice device) {
if (mService == null) {
return false;
}
return mService.getConnectionPolicy(device) != CONNECTION_POLICY_FORBIDDEN;
}
- public int getPreferred(BluetoothDevice device) {
+ @Override
+ public int getConnectionPolicy(BluetoothDevice device) {
if (mService == null) {
return CONNECTION_POLICY_FORBIDDEN;
}
return mService.getConnectionPolicy(device);
}
- public void setPreferred(BluetoothDevice device, boolean preferred) {
- if (mService == null) return;
- if (preferred) {
+ @Override
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ boolean isEnabled = false;
+ if (mService == null) {
+ return false;
+ }
+ if (enabled) {
if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
}
} else {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
}
+
+ return isEnabled;
}
public String toString() {
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfile.java
index 4b0ca7434f9a..f609e4311082 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfile.java
@@ -35,17 +35,26 @@ public interface LocalBluetoothProfile {
*/
boolean isAutoConnectable();
- boolean connect(BluetoothDevice device);
-
- boolean disconnect(BluetoothDevice device);
-
int getConnectionStatus(BluetoothDevice device);
- boolean isPreferred(BluetoothDevice device);
+ /**
+ * Return {@code true} if the profile is enabled, otherwise return {@code false}.
+ * @param device the device to query for enable status
+ */
+ boolean isEnabled(BluetoothDevice device);
- int getPreferred(BluetoothDevice device);
+ /**
+ * Get the connection policy of the profile.
+ * @param device the device to query for enable status
+ */
+ int getConnectionPolicy(BluetoothDevice device);
- void setPreferred(BluetoothDevice device, boolean preferred);
+ /**
+ * Enable the profile if {@code enabled} is {@code true}, otherwise disable profile.
+ * @param device the device to set profile status
+ * @param enabled {@code true} for enable profile, otherwise disable profile.
+ */
+ boolean setEnabled(BluetoothDevice device, boolean enabled);
boolean isProfileReady();
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java
index ae2acbea8e4d..c72efb7eec83 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothProfileManager.java
@@ -528,14 +528,14 @@ public class LocalBluetoothProfileManager {
(mMapProfile.getConnectionStatus(device) == BluetoothProfile.STATE_CONNECTED)) {
profiles.add(mMapProfile);
removedProfiles.remove(mMapProfile);
- mMapProfile.setPreferred(device, true);
+ mMapProfile.setEnabled(device, true);
}
if ((mPbapProfile != null) &&
(mPbapProfile.getConnectionStatus(device) == BluetoothProfile.STATE_CONNECTED)) {
profiles.add(mPbapProfile);
removedProfiles.remove(mPbapProfile);
- mPbapProfile.setPreferred(device, true);
+ mPbapProfile.setEnabled(device, true);
}
if (mMapClientProfile != null) {
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapClientProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapClientProfile.java
index 7d121aaa1ad1..19cb2f59f321 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapClientProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapClientProfile.java
@@ -114,21 +114,6 @@ public final class MapClientProfile implements LocalBluetoothProfile {
return true;
}
- public boolean connect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
- }
-
- public boolean disconnect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
-
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
- }
-
public int getConnectionStatus(BluetoothDevice device) {
if (mService == null) {
return BluetoothProfile.STATE_DISCONNECTED;
@@ -136,31 +121,37 @@ public final class MapClientProfile implements LocalBluetoothProfile {
return mService.getConnectionState(device);
}
- public boolean isPreferred(BluetoothDevice device) {
+ @Override
+ public boolean isEnabled(BluetoothDevice device) {
if (mService == null) {
return false;
}
return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
}
- public int getPreferred(BluetoothDevice device) {
+ @Override
+ public int getConnectionPolicy(BluetoothDevice device) {
if (mService == null) {
return CONNECTION_POLICY_FORBIDDEN;
}
return mService.getConnectionPolicy(device);
}
- public void setPreferred(BluetoothDevice device, boolean preferred) {
+ @Override
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ boolean isEnabled = false;
if (mService == null) {
- return;
+ return false;
}
- if (preferred) {
+ if (enabled) {
if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
}
} else {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
}
+
+ return isEnabled;
}
public List<BluetoothDevice> getConnectedDevices() {
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapProfile.java
index a96a4e73feea..75c1926683ef 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/MapProfile.java
@@ -16,6 +16,7 @@
package com.android.settingslib.bluetooth;
+import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
import android.bluetooth.BluetoothAdapter;
@@ -112,19 +113,6 @@ public class MapProfile implements LocalBluetoothProfile {
return true;
}
- public boolean connect(BluetoothDevice device) {
- Log.d(TAG, "connect() - should not get called");
- return false; // MAP never connects out
- }
-
- public boolean disconnect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
-
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
- }
-
public int getConnectionStatus(BluetoothDevice device) {
if (mService == null) {
return BluetoothProfile.STATE_DISCONNECTED;
@@ -132,31 +120,37 @@ public class MapProfile implements LocalBluetoothProfile {
return mService.getConnectionState(device);
}
- public boolean isPreferred(BluetoothDevice device) {
+ @Override
+ public boolean isEnabled(BluetoothDevice device) {
if (mService == null) {
return false;
}
return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
}
- public int getPreferred(BluetoothDevice device) {
+ @Override
+ public int getConnectionPolicy(BluetoothDevice device) {
if (mService == null) {
return CONNECTION_POLICY_FORBIDDEN;
}
return mService.getConnectionPolicy(device);
}
- public void setPreferred(BluetoothDevice device, boolean preferred) {
+ @Override
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ boolean isEnabled = false;
if (mService == null) {
- return;
+ return false;
}
- if (preferred) {
- if (mService.getConnectionPolicy(device) < BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
- mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_ALLOWED);
+ if (enabled) {
+ if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
}
} else {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
}
+
+ return isEnabled;
}
public List<BluetoothDevice> getConnectedDevices() {
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/OppProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/OppProfile.java
index 8e3f3edcef10..5a6e6e8b830d 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/OppProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/OppProfile.java
@@ -40,27 +40,23 @@ final class OppProfile implements LocalBluetoothProfile {
return false;
}
- public boolean connect(BluetoothDevice device) {
- return false;
- }
-
- public boolean disconnect(BluetoothDevice device) {
- return false;
- }
-
public int getConnectionStatus(BluetoothDevice device) {
return BluetoothProfile.STATE_DISCONNECTED; // Settings app doesn't handle OPP
}
- public boolean isPreferred(BluetoothDevice device) {
+ @Override
+ public boolean isEnabled(BluetoothDevice device) {
return false;
}
- public int getPreferred(BluetoothDevice device) {
+ @Override
+ public int getConnectionPolicy(BluetoothDevice device) {
return BluetoothProfile.CONNECTION_POLICY_FORBIDDEN; // Settings app doesn't handle OPP
}
- public void setPreferred(BluetoothDevice device, boolean preferred) {
+ @Override
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ return false;
}
public boolean isProfileReady() {
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/PanProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/PanProfile.java
index 6638592e8be5..767df352b70f 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/PanProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/PanProfile.java
@@ -16,6 +16,9 @@
package com.android.settingslib.bluetooth;
+import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
+import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
+
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothDevice;
@@ -83,22 +86,6 @@ public class PanProfile implements LocalBluetoothProfile {
return false;
}
- public boolean connect(BluetoothDevice device) {
- if (mService == null) return false;
- List<BluetoothDevice> sinks = mService.getConnectedDevices();
- if (sinks != null) {
- for (BluetoothDevice sink : sinks) {
- mService.disconnect(sink);
- }
- }
- return mService.connect(device);
- }
-
- public boolean disconnect(BluetoothDevice device) {
- if (mService == null) return false;
- return mService.disconnect(device);
- }
-
public int getConnectionStatus(BluetoothDevice device) {
if (mService == null) {
return BluetoothProfile.STATE_DISCONNECTED;
@@ -106,16 +93,36 @@ public class PanProfile implements LocalBluetoothProfile {
return mService.getConnectionState(device);
}
- public boolean isPreferred(BluetoothDevice device) {
+ @Override
+ public boolean isEnabled(BluetoothDevice device) {
return true;
}
- public int getPreferred(BluetoothDevice device) {
+ @Override
+ public int getConnectionPolicy(BluetoothDevice device) {
return -1;
}
- public void setPreferred(BluetoothDevice device, boolean preferred) {
- // ignore: isPreferred is always true for PAN
+ @Override
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ boolean isEnabled = false;
+ if (mService == null) {
+ return false;
+ }
+
+ if (enabled) {
+ final List<BluetoothDevice> sinks = mService.getConnectedDevices();
+ if (sinks != null) {
+ for (BluetoothDevice sink : sinks) {
+ mService.setConnectionPolicy(sink, CONNECTION_POLICY_FORBIDDEN);
+ }
+ }
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
+ } else {
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
+ }
+
+ return isEnabled;
}
public String toString() {
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapClientProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapClientProfile.java
index 56267fc596cf..0d11293a01b7 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapClientProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapClientProfile.java
@@ -126,23 +126,6 @@ public final class PbapClientProfile implements LocalBluetoothProfile {
BluetoothProfile.STATE_DISCONNECTING});
}
- public boolean connect(BluetoothDevice device) {
- Log.d(TAG,"PBAPClientProfile got connect request");
- if (mService == null) {
- return false;
- }
- Log.d(TAG,"PBAPClientProfile attempting to connect to " + device.getAddress());
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
- }
-
- public boolean disconnect(BluetoothDevice device) {
- Log.d(TAG,"PBAPClientProfile got disconnect request");
- if (mService == null) {
- return false;
- }
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
- }
-
public int getConnectionStatus(BluetoothDevice device) {
if (mService == null) {
return BluetoothProfile.STATE_DISCONNECTED;
@@ -150,31 +133,37 @@ public final class PbapClientProfile implements LocalBluetoothProfile {
return mService.getConnectionState(device);
}
- public boolean isPreferred(BluetoothDevice device) {
+ @Override
+ public boolean isEnabled(BluetoothDevice device) {
if (mService == null) {
return false;
}
return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
}
- public int getPreferred(BluetoothDevice device) {
+ @Override
+ public int getConnectionPolicy(BluetoothDevice device) {
if (mService == null) {
return CONNECTION_POLICY_FORBIDDEN;
}
return mService.getConnectionPolicy(device);
}
- public void setPreferred(BluetoothDevice device, boolean preferred) {
+ @Override
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ boolean isEnabled = false;
if (mService == null) {
- return;
+ return false;
}
- if (preferred) {
+ if (enabled) {
if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
}
} else {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
}
+
+ return isEnabled;
}
public String toString() {
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapServerProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapServerProfile.java
index f7c0bf5c8c9d..9e2e4a14124a 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapServerProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/PbapServerProfile.java
@@ -91,34 +91,33 @@ public class PbapServerProfile implements LocalBluetoothProfile {
return false;
}
- public boolean connect(BluetoothDevice device) {
- /*Can't connect from server */
- return false;
-
- }
-
- public boolean disconnect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
- }
-
public int getConnectionStatus(BluetoothDevice device) {
if (mService == null) return BluetoothProfile.STATE_DISCONNECTED;
return mService.getConnectionState(device);
}
- public boolean isPreferred(BluetoothDevice device) {
+ @Override
+ public boolean isEnabled(BluetoothDevice device) {
return false;
}
- public int getPreferred(BluetoothDevice device) {
+ @Override
+ public int getConnectionPolicy(BluetoothDevice device) {
return -1;
}
- public void setPreferred(BluetoothDevice device, boolean preferred) {
- // ignore: isPreferred is always true for PBAP
+ @Override
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ boolean isEnabled = false;
+ if (mService == null) {
+ return false;
+ }
+
+ if (!enabled) {
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
+ }
+
+ return isEnabled;
}
public String toString() {
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/SapProfile.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/SapProfile.java
index 3022c5b566eb..104f1d738000 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/SapProfile.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/SapProfile.java
@@ -111,21 +111,6 @@ final class SapProfile implements LocalBluetoothProfile {
return true;
}
- public boolean connect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
- }
-
- public boolean disconnect(BluetoothDevice device) {
- if (mService == null) {
- return false;
- }
-
- return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
- }
-
public int getConnectionStatus(BluetoothDevice device) {
if (mService == null) {
return BluetoothProfile.STATE_DISCONNECTED;
@@ -133,31 +118,37 @@ final class SapProfile implements LocalBluetoothProfile {
return mService.getConnectionState(device);
}
- public boolean isPreferred(BluetoothDevice device) {
+ @Override
+ public boolean isEnabled(BluetoothDevice device) {
if (mService == null) {
return false;
}
return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
}
- public int getPreferred(BluetoothDevice device) {
+ @Override
+ public int getConnectionPolicy(BluetoothDevice device) {
if (mService == null) {
return CONNECTION_POLICY_FORBIDDEN;
}
return mService.getConnectionPolicy(device);
}
- public void setPreferred(BluetoothDevice device, boolean preferred) {
+ @Override
+ public boolean setEnabled(BluetoothDevice device, boolean enabled) {
+ boolean isEnabled = false;
if (mService == null) {
- return;
+ return false;
}
- if (preferred) {
+ if (enabled) {
if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
}
} else {
- mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
+ isEnabled = mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
}
+
+ return isEnabled;
}
public List<BluetoothDevice> getConnectedDevices() {
diff --git a/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java b/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java
index aac7fc3c927a..d48aa246ecba 100644
--- a/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java
+++ b/packages/SettingsLib/src/com/android/settingslib/datetime/ZoneGetter.java
@@ -402,7 +402,7 @@ public class ZoneGetter {
private static List<String> extractTimeZoneIds(List<TimeZoneMapping> timeZoneMappings) {
final List<String> zoneIds = new ArrayList<>(timeZoneMappings.size());
for (TimeZoneMapping timeZoneMapping : timeZoneMappings) {
- zoneIds.add(timeZoneMapping.timeZoneId);
+ zoneIds.add(timeZoneMapping.getTimeZoneId());
}
return Collections.unmodifiableList(zoneIds);
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java
new file mode 100644
index 000000000000..bc40903d88e4
--- /dev/null
+++ b/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settingslib.fuelgauge;
+
+import static android.os.BatteryManager.BATTERY_HEALTH_UNKNOWN;
+import static android.os.BatteryManager.BATTERY_STATUS_FULL;
+import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN;
+import static android.os.BatteryManager.EXTRA_HEALTH;
+import static android.os.BatteryManager.EXTRA_LEVEL;
+import static android.os.BatteryManager.EXTRA_MAX_CHARGING_CURRENT;
+import static android.os.BatteryManager.EXTRA_MAX_CHARGING_VOLTAGE;
+import static android.os.BatteryManager.EXTRA_PLUGGED;
+import static android.os.BatteryManager.EXTRA_STATUS;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.BatteryManager;
+
+import com.android.settingslib.R;
+
+/**
+ * Stores and computes some battery information.
+ */
+public class BatteryStatus {
+ private static final int LOW_BATTERY_THRESHOLD = 20;
+ private static final int DEFAULT_CHARGING_VOLTAGE_MICRO_VOLT = 5000000;
+
+ public static final int CHARGING_UNKNOWN = -1;
+ public static final int CHARGING_SLOWLY = 0;
+ public static final int CHARGING_REGULAR = 1;
+ public static final int CHARGING_FAST = 2;
+
+ public final int status;
+ public final int level;
+ public final int plugged;
+ public final int health;
+ public final int maxChargingWattage;
+
+ public BatteryStatus(int status, int level, int plugged, int health,
+ int maxChargingWattage) {
+ this.status = status;
+ this.level = level;
+ this.plugged = plugged;
+ this.health = health;
+ this.maxChargingWattage = maxChargingWattage;
+ }
+
+ public BatteryStatus(Intent batteryChangedIntent) {
+ status = batteryChangedIntent.getIntExtra(EXTRA_STATUS, BATTERY_STATUS_UNKNOWN);
+ plugged = batteryChangedIntent.getIntExtra(EXTRA_PLUGGED, 0);
+ level = batteryChangedIntent.getIntExtra(EXTRA_LEVEL, 0);
+ health = batteryChangedIntent.getIntExtra(EXTRA_HEALTH, BATTERY_HEALTH_UNKNOWN);
+
+ final int maxChargingMicroAmp = batteryChangedIntent.getIntExtra(EXTRA_MAX_CHARGING_CURRENT,
+ -1);
+ int maxChargingMicroVolt = batteryChangedIntent.getIntExtra(EXTRA_MAX_CHARGING_VOLTAGE, -1);
+
+ if (maxChargingMicroVolt <= 0) {
+ maxChargingMicroVolt = DEFAULT_CHARGING_VOLTAGE_MICRO_VOLT;
+ }
+ if (maxChargingMicroAmp > 0) {
+ // Calculating muW = muA * muV / (10^6 mu^2 / mu); splitting up the divisor
+ // to maintain precision equally on both factors.
+ maxChargingWattage = (maxChargingMicroAmp / 1000)
+ * (maxChargingMicroVolt / 1000);
+ } else {
+ maxChargingWattage = -1;
+ }
+ }
+
+ /**
+ * Determine whether the device is plugged in (USB, power, or wireless).
+ *
+ * @return true if the device is plugged in.
+ */
+ public boolean isPluggedIn() {
+ return plugged == BatteryManager.BATTERY_PLUGGED_AC
+ || plugged == BatteryManager.BATTERY_PLUGGED_USB
+ || plugged == BatteryManager.BATTERY_PLUGGED_WIRELESS;
+ }
+
+ /**
+ * Determine whether the device is plugged in (USB, power).
+ *
+ * @return true if the device is plugged in wired (as opposed to wireless)
+ */
+ public boolean isPluggedInWired() {
+ return plugged == BatteryManager.BATTERY_PLUGGED_AC
+ || plugged == BatteryManager.BATTERY_PLUGGED_USB;
+ }
+
+ /**
+ * Whether or not the device is charged. Note that some devices never return 100% for
+ * battery level, so this allows either battery level or status to determine if the
+ * battery is charged.
+ *
+ * @return true if the device is charged
+ */
+ public boolean isCharged() {
+ return status == BATTERY_STATUS_FULL || level >= 100;
+ }
+
+ /**
+ * Whether battery is low and needs to be charged.
+ *
+ * @return true if battery is low
+ */
+ public boolean isBatteryLow() {
+ return level < LOW_BATTERY_THRESHOLD;
+ }
+
+ /**
+ * Return current chargin speed is fast, slow or normal.
+ *
+ * @return the charing speed
+ */
+ public final int getChargingSpeed(Context context) {
+ final int slowThreshold = context.getResources().getInteger(
+ R.integer.config_chargingSlowlyThreshold);
+ final int fastThreshold = context.getResources().getInteger(
+ R.integer.config_chargingFastThreshold);
+ return maxChargingWattage <= 0 ? CHARGING_UNKNOWN :
+ maxChargingWattage < slowThreshold ? CHARGING_SLOWLY :
+ maxChargingWattage > fastThreshold ? CHARGING_FAST :
+ CHARGING_REGULAR;
+ }
+
+ @Override
+ public String toString() {
+ return "BatteryStatus{status=" + status + ",level=" + level + ",plugged=" + plugged
+ + ",health=" + health + ",maxChargingWattage=" + maxChargingWattage + "}";
+ }
+}
diff --git a/packages/SettingsLib/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXml.java b/packages/SettingsLib/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXml.java
index 9db4a35c1d78..b4c95e6ee2df 100644
--- a/packages/SettingsLib/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXml.java
+++ b/packages/SettingsLib/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXml.java
@@ -35,8 +35,10 @@ import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.zip.GZIPInputStream;
/**
@@ -84,7 +86,7 @@ class LicenseHtmlGeneratorFromXml {
* "9645f39e9db895a4aa6e02cb57294595". Here "9645f39e9db895a4aa6e02cb57294595" is a MD5 sum
* of the content of packages/services/Telephony/MODULE_LICENSE_APACHE2.
*/
- private final Map<String, String> mFileNameToContentIdMap = new HashMap();
+ private final Map<String, Set<String>> mFileNameToContentIdMap = new HashMap();
/*
* A map from a content id (MD5 sum of file content) to a license file content.
@@ -186,10 +188,10 @@ class LicenseHtmlGeneratorFromXml {
* </licenses>
*/
@VisibleForTesting
- static void parse(InputStreamReader in, Map<String, String> outFileNameToContentIdMap,
+ static void parse(InputStreamReader in, Map<String, Set<String>> outFileNameToContentIdMap,
Map<String, String> outContentIdToFileContentMap)
throws XmlPullParserException, IOException {
- Map<String, String> fileNameToContentIdMap = new HashMap<String, String>();
+ Map<String, Set<String>> fileNameToContentIdMap = new HashMap<String, Set<String>>();
Map<String, String> contentIdToFileContentMap = new HashMap<String, String>();
XmlPullParser parser = Xml.newPullParser();
@@ -206,7 +208,10 @@ class LicenseHtmlGeneratorFromXml {
if (!TextUtils.isEmpty(contentId)) {
String fileName = readText(parser).trim();
if (!TextUtils.isEmpty(fileName)) {
- fileNameToContentIdMap.put(fileName, contentId);
+ Set<String> contentIds =
+ fileNameToContentIdMap.computeIfAbsent(
+ fileName, k -> new HashSet<>());
+ contentIds.add(contentId);
}
}
} else if (TAG_FILE_CONTENT.equals(parser.getName())) {
@@ -224,7 +229,13 @@ class LicenseHtmlGeneratorFromXml {
state = parser.next();
}
- outFileNameToContentIdMap.putAll(fileNameToContentIdMap);
+ for (Map.Entry<String, Set<String>> entry : fileNameToContentIdMap.entrySet()) {
+ outFileNameToContentIdMap.merge(
+ entry.getKey(), entry.getValue(), (s1, s2) -> {
+ s1.addAll(s2);
+ return s1;
+ });
+ }
outContentIdToFileContentMap.putAll(contentIdToFileContentMap);
}
@@ -240,7 +251,7 @@ class LicenseHtmlGeneratorFromXml {
}
@VisibleForTesting
- static void generateHtml(Map<String, String> fileNameToContentIdMap,
+ static void generateHtml(Map<String, Set<String>> fileNameToContentIdMap,
Map<String, String> contentIdToFileContentMap, PrintWriter writer,
String noticeHeader) {
List<String> fileNameList = new ArrayList();
@@ -259,19 +270,20 @@ class LicenseHtmlGeneratorFromXml {
// Prints all the file list with a link to its license file content.
for (String fileName : fileNameList) {
- String contentId = fileNameToContentIdMap.get(fileName);
- // Assigns an id to a newly referred license file content.
- if (!contentIdToOrderMap.containsKey(contentId)) {
- contentIdToOrderMap.put(contentId, count);
-
- // An index in contentIdAndFileNamesList is the order of each element.
- contentIdAndFileNamesList.add(new ContentIdAndFileNames(contentId));
- count++;
- }
+ for (String contentId : fileNameToContentIdMap.get(fileName)) {
+ // Assigns an id to a newly referred license file content.
+ if (!contentIdToOrderMap.containsKey(contentId)) {
+ contentIdToOrderMap.put(contentId, count);
+
+ // An index in contentIdAndFileNamesList is the order of each element.
+ contentIdAndFileNamesList.add(new ContentIdAndFileNames(contentId));
+ count++;
+ }
- int id = contentIdToOrderMap.get(contentId);
- contentIdAndFileNamesList.get(id).mFileNameList.add(fileName);
- writer.format("<li><a href=\"#id%d\">%s</a></li>\n", id, fileName);
+ int id = contentIdToOrderMap.get(contentId);
+ contentIdAndFileNamesList.get(id).mFileNameList.add(fileName);
+ writer.format("<li><a href=\"#id%d\">%s</a></li>\n", id, fileName);
+ }
}
writer.println(HTML_MIDDLE_STRING);
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/BluetoothMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/BluetoothMediaManager.java
index 12d054e307ba..3a807c9b9b77 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/BluetoothMediaManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/BluetoothMediaManager.java
@@ -108,9 +108,9 @@ public class BluetoothMediaManager extends MediaManager implements BluetoothCall
Log.d(TAG, "addConnectableA2dpDevices() device : " + cachedDevice.getName()
+ ", is connected : " + cachedDevice.isConnected()
- + ", is preferred : " + a2dpProfile.isPreferred(device));
+ + ", is enabled : " + a2dpProfile.isEnabled(device));
- if (a2dpProfile.isPreferred(device)
+ if (a2dpProfile.isEnabled(device)
&& BluetoothDevice.BOND_BONDED == cachedDevice.getBondState()) {
addMediaDevice(cachedDevice);
}
@@ -143,9 +143,9 @@ public class BluetoothMediaManager extends MediaManager implements BluetoothCall
Log.d(TAG, "addConnectableHearingAidDevices() device : " + cachedDevice.getName()
+ ", is connected : " + cachedDevice.isConnected()
- + ", is preferred : " + hapProfile.isPreferred(device));
+ + ", is enabled : " + hapProfile.isEnabled(device));
- if (hapProfile.isPreferred(device)
+ if (hapProfile.isEnabled(device)
&& BluetoothDevice.BOND_BONDED == cachedDevice.getBondState()) {
addMediaDevice(cachedDevice);
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java
index 99c7dcf52818..ba741396a6bf 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaDevice.java
@@ -16,9 +16,12 @@
package com.android.settingslib.media;
import android.content.Context;
+import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.media.MediaRoute2Info;
import android.media.MediaRouter2Manager;
+import android.text.TextUtils;
+import android.util.Log;
import com.android.settingslib.R;
import com.android.settingslib.bluetooth.BluetoothUtils;
@@ -74,6 +77,46 @@ public class InfoMediaDevice extends MediaDevice {
}
@Override
+ public void requestSetVolume(int volume) {
+ mRouterManager.requestSetVolume(mRouteInfo, volume);
+ }
+
+ @Override
+ public int getMaxVolume() {
+ return mRouteInfo.getVolumeMax();
+ }
+
+ @Override
+ public int getCurrentVolume() {
+ return mRouteInfo.getVolume();
+ }
+
+ @Override
+ public String getClientPackageName() {
+ return mRouteInfo.getClientPackageName();
+ }
+
+ @Override
+ public String getClientAppLabel() {
+ final String packageName = mRouteInfo.getClientPackageName();
+ if (TextUtils.isEmpty(packageName)) {
+ Log.d(TAG, "Client package name is empty");
+ return mContext.getResources().getString(R.string.unknown);
+ }
+ try {
+ final PackageManager packageManager = mContext.getPackageManager();
+ final String appLabel = packageManager.getApplicationLabel(
+ packageManager.getApplicationInfo(packageName, 0)).toString();
+ if (!TextUtils.isEmpty(appLabel)) {
+ return appLabel;
+ }
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.e(TAG, "unable to find " + packageName);
+ }
+ return mContext.getResources().getString(R.string.unknown);
+ }
+
+ @Override
public void disconnect() {
//TODO(b/144535188): disconnected last select device
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
index e008cd038317..a4be46cf1f63 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/InfoMediaManager.java
@@ -40,15 +40,16 @@ public class InfoMediaManager extends MediaManager {
final Executor mExecutor = Executors.newSingleThreadExecutor();
@VisibleForTesting
MediaRouter2Manager mRouterManager;
+ @VisibleForTesting
+ String mPackageName;
- private String mPackageName;
private MediaDevice mCurrentConnectedDevice;
public InfoMediaManager(Context context, String packageName, Notification notification) {
super(context, notification);
mRouterManager = MediaRouter2Manager.getInstance(context);
- if (packageName != null) {
+ if (!TextUtils.isEmpty(packageName)) {
mPackageName = packageName;
}
}
@@ -57,6 +58,7 @@ public class InfoMediaManager extends MediaManager {
public void startScan() {
mMediaDevices.clear();
mRouterManager.registerCallback(mExecutor, mMediaRouterCallback);
+ refreshDevices();
}
@VisibleForTesting
@@ -79,21 +81,37 @@ public class InfoMediaManager extends MediaManager {
return mCurrentConnectedDevice;
}
- class RouterManagerCallback extends MediaRouter2Manager.Callback {
+ private void refreshDevices() {
+ mMediaDevices.clear();
+ mCurrentConnectedDevice = null;
+ if (TextUtils.isEmpty(mPackageName)) {
+ buildAllRoutes();
+ } else {
+ buildAvailableRoutes();
+ }
+ dispatchDeviceListAdded();
+ }
- private void refreshDevices() {
- mMediaDevices.clear();
- mCurrentConnectedDevice = null;
- for (MediaRoute2Info route : mRouterManager.getAvailableRoutes(mPackageName)) {
- final MediaDevice device = new InfoMediaDevice(mContext, mRouterManager, route,
- mPackageName);
- if (TextUtils.equals(route.getClientPackageName(), mPackageName)) {
- mCurrentConnectedDevice = device;
- }
- mMediaDevices.add(device);
+ private void buildAllRoutes() {
+ for (MediaRoute2Info route : mRouterManager.getAllRoutes()) {
+ final MediaDevice device = new InfoMediaDevice(mContext, mRouterManager, route,
+ mPackageName);
+ mMediaDevices.add(device);
+ }
+ }
+
+ private void buildAvailableRoutes() {
+ for (MediaRoute2Info route : mRouterManager.getAvailableRoutes(mPackageName)) {
+ final MediaDevice device = new InfoMediaDevice(mContext, mRouterManager, route,
+ mPackageName);
+ if (TextUtils.equals(route.getClientPackageName(), mPackageName)) {
+ mCurrentConnectedDevice = device;
}
- dispatchDeviceListAdded();
+ mMediaDevices.add(device);
}
+ }
+
+ class RouterManagerCallback extends MediaRouter2Manager.Callback {
@Override
public void onRoutesAdded(List<MediaRoute2Info> routes) {
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java
index e85a102294d8..96d72e755026 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/LocalMediaManager.java
@@ -18,7 +18,6 @@ package com.android.settingslib.media;
import android.app.Notification;
import android.bluetooth.BluetoothProfile;
import android.content.Context;
-import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.IntDef;
@@ -162,10 +161,8 @@ public class LocalMediaManager implements BluetoothCallback {
mMediaDevices.clear();
mBluetoothMediaManager.registerCallback(mMediaDeviceCallback);
mBluetoothMediaManager.startScan();
- if (!TextUtils.isEmpty(mPackageName)) {
- mInfoMediaManager.registerCallback(mMediaDeviceCallback);
- mInfoMediaManager.startScan();
- }
+ mInfoMediaManager.registerCallback(mMediaDeviceCallback);
+ mInfoMediaManager.startScan();
}
private void addPhoneDeviceIfNecessary() {
@@ -208,10 +205,8 @@ public class LocalMediaManager implements BluetoothCallback {
public void stopScan() {
mBluetoothMediaManager.unregisterCallback(mMediaDeviceCallback);
mBluetoothMediaManager.stopScan();
- if (!TextUtils.isEmpty(mPackageName)) {
- mInfoMediaManager.unregisterCallback(mMediaDeviceCallback);
- mInfoMediaManager.stopScan();
- }
+ mInfoMediaManager.unregisterCallback(mMediaDeviceCallback);
+ mInfoMediaManager.stopScan();
}
/**
@@ -240,6 +235,22 @@ public class LocalMediaManager implements BluetoothCallback {
return mCurrentConnectedDevice;
}
+ /**
+ * Find the active MediaDevice.
+ *
+ * @param type the media device type.
+ * @return MediaDevice list
+ */
+ public List<MediaDevice> getActiveMediaDevice(@MediaDevice.MediaDeviceType int type) {
+ final List<MediaDevice> devices = new ArrayList<>();
+ for (MediaDevice device : mMediaDevices) {
+ if (type == device.mType && device.getClientPackageName() != null) {
+ devices.add(device);
+ }
+ }
+ return devices;
+ }
+
private MediaDevice updateCurrentConnectedDevice() {
for (MediaDevice device : mMediaDevices) {
if (device instanceof BluetoothMediaDevice) {
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java b/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java
index 53a852069478..839d528406cd 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java
@@ -109,6 +109,59 @@ public abstract class MediaDevice implements Comparable<MediaDevice> {
public abstract boolean isConnected();
/**
+ * Request to set volume.
+ *
+ * @param volume is the new value.
+ */
+ public void requestSetVolume(int volume) {
+ }
+
+ /**
+ * Get max volume from MediaDevice.
+ *
+ * @return max volume.
+ */
+ public int getMaxVolume() {
+ return 100;
+ }
+
+ /**
+ * Get current volume from MediaDevice.
+ *
+ * @return current volume.
+ */
+ public int getCurrentVolume() {
+ return 0;
+ }
+
+ /**
+ * Get application package name.
+ *
+ * @return package name.
+ */
+ public String getClientPackageName() {
+ return null;
+ }
+
+ /**
+ * Get application label from MediaDevice.
+ *
+ * @return application label.
+ */
+ public String getClientAppLabel() {
+ return null;
+ }
+
+ /**
+ * Get application label from MediaDevice.
+ *
+ * @return application label.
+ */
+ public int getDeviceType() {
+ return mType;
+ }
+
+ /**
* Rules:
* 1. If there is one of the connected devices identified as a carkit, this carkit will
* be always on the top of the device list. Rule 2 and Rule 3 can’t overrule this rule.
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
index 84dde05afb2e..bfb79c05a432 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
@@ -16,6 +16,9 @@
package com.android.settingslib.wifi;
+import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.NETWORK_SELECTION_ENABLED;
+import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.NETWORK_SELECTION_PERMANENTLY_DISABLED;
+
import android.annotation.IntDef;
import android.annotation.MainThread;
import android.annotation.Nullable;
@@ -654,7 +657,7 @@ public class AccessPoint implements Comparable<AccessPoint> {
}
}
}
- return oldMetering == mIsScoredNetworkMetered;
+ return oldMetering != mIsScoredNetworkMetered;
}
/**
@@ -1144,11 +1147,15 @@ public class AccessPoint implements Comparable<AccessPoint> {
mInfo != null ? mInfo.getRequestingPackageName() : null));
} else { // not active
if (mConfig != null && mConfig.hasNoInternetAccess()) {
- int messageID = mConfig.getNetworkSelectionStatus().isNetworkPermanentlyDisabled()
+ int messageID =
+ mConfig.getNetworkSelectionStatus().getNetworkSelectionStatus()
+ == NETWORK_SELECTION_PERMANENTLY_DISABLED
? R.string.wifi_no_internet_no_reconnect
: R.string.wifi_no_internet;
summary.append(mContext.getString(messageID));
- } else if (mConfig != null && !mConfig.getNetworkSelectionStatus().isNetworkEnabled()) {
+ } else if (mConfig != null
+ && (mConfig.getNetworkSelectionStatus().getNetworkSelectionStatus()
+ != NETWORK_SELECTION_ENABLED)) {
WifiConfiguration.NetworkSelectionStatus networkStatus =
mConfig.getNetworkSelectionStatus();
switch (networkStatus.getNetworkSelectionDisableReason()) {
@@ -1170,8 +1177,8 @@ public class AccessPoint implements Comparable<AccessPoint> {
} else { // In range, not disabled.
if (mConfig != null) { // Is saved network
// Last attempt to connect to this failed. Show reason why
- switch (mConfig.recentFailure.getAssociationStatus()) {
- case WifiConfiguration.RecentFailure.STATUS_AP_UNABLE_TO_HANDLE_NEW_STA:
+ switch (mConfig.getRecentFailureReason()) {
+ case WifiConfiguration.RECENT_FAILURE_AP_UNABLE_TO_HANDLE_NEW_STA:
summary.append(mContext.getString(
R.string.wifi_ap_unable_to_handle_new_sta));
break;
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java
index 78ccba02fb04..d23364952357 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java
@@ -16,9 +16,13 @@
package com.android.settingslib.wifi;
+import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.NETWORK_SELECTION_ENABLED;
+import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.getMaxNetworkSelectionDisableReason;
+
import android.content.Context;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiConfiguration.NetworkSelectionStatus;
import android.net.wifi.WifiInfo;
import android.os.SystemClock;
@@ -41,7 +45,9 @@ public class WifiUtils {
summary.append(" f=" + Integer.toString(info.getFrequency()));
}
summary.append(" " + getVisibilityStatus(accessPoint));
- if (config != null && !config.getNetworkSelectionStatus().isNetworkEnabled()) {
+ if (config != null
+ && (config.getNetworkSelectionStatus().getNetworkSelectionStatus()
+ != NETWORK_SELECTION_ENABLED)) {
summary.append(" (" + config.getNetworkSelectionStatus().getNetworkStatusString());
if (config.getNetworkSelectionStatus().getDisableTime() > 0) {
long now = System.currentTimeMillis();
@@ -58,15 +64,13 @@ public class WifiUtils {
}
if (config != null) {
- WifiConfiguration.NetworkSelectionStatus networkStatus =
- config.getNetworkSelectionStatus();
- for (int index = WifiConfiguration.NetworkSelectionStatus.NETWORK_SELECTION_ENABLE;
- index < WifiConfiguration.NetworkSelectionStatus
- .NETWORK_SELECTION_DISABLED_MAX; index++) {
- if (networkStatus.getDisableReasonCounter(index) != 0) {
- summary.append(" " + WifiConfiguration.NetworkSelectionStatus
- .getNetworkDisableReasonString(index) + "="
- + networkStatus.getDisableReasonCounter(index));
+ NetworkSelectionStatus networkStatus = config.getNetworkSelectionStatus();
+ for (int reason = 0; reason <= getMaxNetworkSelectionDisableReason(); reason++) {
+ if (networkStatus.getDisableReasonCounter(reason) != 0) {
+ summary.append(" ")
+ .append(NetworkSelectionStatus.getNetworkDisableReasonString(reason))
+ .append("=")
+ .append(networkStatus.getDisableReasonCounter(reason));
}
}
}
diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java
index 42f3cbb04cf8..bcabec858487 100644
--- a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java
+++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java
@@ -465,6 +465,8 @@ public class AccessPointTest {
WifiConfiguration.NetworkSelectionStatus status =
mock(WifiConfiguration.NetworkSelectionStatus.class);
when(configuration.getNetworkSelectionStatus()).thenReturn(status);
+ when(status.getNetworkSelectionStatus()).thenReturn(
+ WifiConfiguration.NetworkSelectionStatus.NETWORK_SELECTION_TEMPORARY_DISABLED);
when(status.getNetworkSelectionDisableReason()).thenReturn(
WifiConfiguration.NetworkSelectionStatus.DISABLED_BY_WRONG_PASSWORD);
AccessPoint ap = new AccessPoint(mContext, configuration);
@@ -1370,13 +1372,13 @@ public class AccessPointTest {
public void testOsuAccessPointSummary_showsProvisioningUpdates() {
OsuProvider provider = createOsuProvider();
Context spyContext = spy(new ContextWrapper(mContext));
- AccessPoint osuAccessPoint = new AccessPoint(spyContext, provider,
- mScanResults);
+ when(spyContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mMockWifiManager);
Map<OsuProvider, PasspointConfiguration> osuProviderConfigMap = new HashMap<>();
osuProviderConfigMap.put(provider, null);
- when(spyContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mMockWifiManager);
when(mMockWifiManager.getMatchingPasspointConfigsForOsuProviders(
Collections.singleton(provider))).thenReturn(osuProviderConfigMap);
+ AccessPoint osuAccessPoint = new AccessPoint(spyContext, provider,
+ mScanResults);
osuAccessPoint.setListener(mMockAccessPointListener);
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java
index 11829451f640..6307caf5e02b 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java
@@ -31,6 +31,7 @@ import android.content.Intent;
import android.content.res.Resources;
import android.location.LocationManager;
import android.media.AudioManager;
+import android.os.BatteryManager;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.provider.Settings;
@@ -122,12 +123,12 @@ public class UtilsTest {
public void testGetDefaultStorageManagerDaysToRetain_storageManagerDaysToRetainUsesResources() {
Resources resources = mock(Resources.class);
when(resources.getInteger(
- eq(
- com.android
- .internal
- .R
- .integer
- .config_storageManagerDaystoRetainDefault)))
+ eq(
+ com.android
+ .internal
+ .R
+ .integer
+ .config_storageManagerDaystoRetainDefault)))
.thenReturn(60);
assertThat(Utils.getDefaultStorageManagerDaysToRetain(resources)).isEqualTo(60);
}
@@ -147,7 +148,8 @@ public class UtilsTest {
private static Map<String, Integer> map = new HashMap<>();
@Implementation
- public static boolean putIntForUser(ContentResolver cr, String name, int value, int userHandle) {
+ public static boolean putIntForUser(ContentResolver cr, String name, int value,
+ int userHandle) {
map.put(name, value);
return true;
}
@@ -312,4 +314,33 @@ public class UtilsTest {
assertThat(Utils.getCombinedServiceState(mServiceState)).isEqualTo(
ServiceState.STATE_OUT_OF_SERVICE);
}
+
+ @Test
+ public void getBatteryStatus_statusIsFull_returnFullString() {
+ final Intent intent = new Intent().putExtra(BatteryManager.EXTRA_LEVEL, 100);
+ final Resources resources = mContext.getResources();
+
+ assertThat(Utils.getBatteryStatus(mContext, intent)).isEqualTo(
+ resources.getString(R.string.battery_info_status_full));
+ }
+
+ @Test
+ public void getBatteryStatus_batteryLevelIs100_returnFullString() {
+ final Intent intent = new Intent().putExtra(BatteryManager.EXTRA_STATUS,
+ BatteryManager.BATTERY_STATUS_FULL);
+ final Resources resources = mContext.getResources();
+
+ assertThat(Utils.getBatteryStatus(mContext, intent)).isEqualTo(
+ resources.getString(R.string.battery_info_status_full));
+ }
+
+ @Test
+ public void getBatteryStatus_batteryLevel99_returnChargingString() {
+ final Intent intent = new Intent().putExtra(BatteryManager.EXTRA_STATUS,
+ BatteryManager.BATTERY_STATUS_CHARGING);
+ final Resources resources = mContext.getResources();
+
+ assertThat(Utils.getBatteryStatus(mContext, intent)).isEqualTo(
+ resources.getString(R.string.battery_info_status_charging));
+ }
}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpSinkProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpSinkProfileTest.java
index ccb6646cf683..9bb2f22ddbcf 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpSinkProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/A2dpSinkProfileTest.java
@@ -16,12 +16,8 @@
package com.android.settingslib.bluetooth;
-import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
-import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
-
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.bluetooth.BluetoothA2dpSink;
@@ -68,18 +64,6 @@ public class A2dpSinkProfileTest {
}
@Test
- public void connect_shouldConnectBluetoothA2dpSink() {
- mProfile.connect(mBluetoothDevice);
- verify(mService).setConnectionPolicy(mBluetoothDevice, CONNECTION_POLICY_ALLOWED);
- }
-
- @Test
- public void disconnect_shouldDisconnectBluetoothA2dpSink() {
- mProfile.disconnect(mBluetoothDevice);
- verify(mService).setConnectionPolicy(mBluetoothDevice, CONNECTION_POLICY_FORBIDDEN);
- }
-
- @Test
public void getConnectionStatus_shouldReturnConnectionState() {
when(mService.getConnectionState(mBluetoothDevice)).
thenReturn(BluetoothProfile.STATE_CONNECTED);
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HfpClientProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HfpClientProfileTest.java
index 91807609df1a..d121e0b2d2fb 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HfpClientProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HfpClientProfileTest.java
@@ -16,12 +16,8 @@
package com.android.settingslib.bluetooth;
-import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
-import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
-
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.bluetooth.BluetoothAdapter;
@@ -68,18 +64,6 @@ public class HfpClientProfileTest {
}
@Test
- public void connect_shouldConnectBluetoothHeadsetClient() {
- mProfile.connect(mBluetoothDevice);
- verify(mService).setConnectionPolicy(mBluetoothDevice, CONNECTION_POLICY_ALLOWED);
- }
-
- @Test
- public void disconnect_shouldDisconnectBluetoothHeadsetClient() {
- mProfile.disconnect(mBluetoothDevice);
- verify(mService).setConnectionPolicy(mBluetoothDevice, CONNECTION_POLICY_FORBIDDEN);
- }
-
- @Test
public void getConnectionStatus_shouldReturnConnectionState() {
when(mService.getConnectionState(mBluetoothDevice)).
thenReturn(BluetoothProfile.STATE_CONNECTED);
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HidDeviceProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HidDeviceProfileTest.java
index f38af70c7498..3665d9c10165 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HidDeviceProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HidDeviceProfileTest.java
@@ -18,7 +18,6 @@ package com.android.settingslib.bluetooth;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.bluetooth.BluetoothAdapter;
@@ -65,17 +64,6 @@ public class HidDeviceProfileTest {
}
@Test
- public void connect_shouldReturnFalse() {
- assertThat(mProfile.connect(mBluetoothDevice)).isFalse();
- }
-
- @Test
- public void disconnect_shouldDisconnectBluetoothHidDevice() {
- mProfile.disconnect(mBluetoothDevice);
- verify(mService).disconnect(mBluetoothDevice);
- }
-
- @Test
public void getConnectionStatus_shouldReturnConnectionState() {
when(mService.getConnectionState(mBluetoothDevice)).
thenReturn(BluetoothProfile.STATE_CONNECTED);
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/MapClientProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/MapClientProfileTest.java
index 1425c381256b..25031a62294c 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/MapClientProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/MapClientProfileTest.java
@@ -16,12 +16,8 @@
package com.android.settingslib.bluetooth;
-import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
-import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
-
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.bluetooth.BluetoothAdapter;
@@ -68,18 +64,6 @@ public class MapClientProfileTest {
}
@Test
- public void connect_shouldConnectBluetoothMapClient() {
- mProfile.connect(mBluetoothDevice);
- verify(mService).setConnectionPolicy(mBluetoothDevice, CONNECTION_POLICY_ALLOWED);
- }
-
- @Test
- public void disconnect_shouldDisconnectBluetoothMapClient() {
- mProfile.disconnect(mBluetoothDevice);
- verify(mService).setConnectionPolicy(mBluetoothDevice, CONNECTION_POLICY_FORBIDDEN);
- }
-
- @Test
public void getConnectionStatus_shouldReturnConnectionState() {
when(mService.getConnectionState(mBluetoothDevice)).
thenReturn(BluetoothProfile.STATE_CONNECTED);
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/PbapClientProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/PbapClientProfileTest.java
index 15f560bef73e..4305a3bc25a3 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/PbapClientProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/PbapClientProfileTest.java
@@ -16,12 +16,8 @@
package com.android.settingslib.bluetooth;
-import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
-import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
-
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.bluetooth.BluetoothAdapter;
@@ -68,18 +64,6 @@ public class PbapClientProfileTest {
}
@Test
- public void connect_shouldConnectBluetoothPbapClient() {
- mProfile.connect(mBluetoothDevice);
- verify(mService).setConnectionPolicy(mBluetoothDevice, CONNECTION_POLICY_ALLOWED);
- }
-
- @Test
- public void disconnect_shouldDisconnectBluetoothPbapClient() {
- mProfile.disconnect(mBluetoothDevice);
- verify(mService).setConnectionPolicy(mBluetoothDevice, CONNECTION_POLICY_FORBIDDEN);
- }
-
- @Test
public void getConnectionStatus_shouldReturnConnectionState() {
when(mService.getConnectionState(mBluetoothDevice)).
thenReturn(BluetoothProfile.STATE_CONNECTED);
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/SapProfileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/SapProfileTest.java
index 4f978a822890..e460eaf16bbf 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/SapProfileTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/SapProfileTest.java
@@ -16,12 +16,8 @@
package com.android.settingslib.bluetooth;
-import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
-import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
-
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.bluetooth.BluetoothAdapter;
@@ -67,18 +63,6 @@ public class SapProfileTest {
}
@Test
- public void connect_shouldConnectBluetoothSap() {
- mProfile.connect(mBluetoothDevice);
- verify(mService).setConnectionPolicy(mBluetoothDevice, CONNECTION_POLICY_ALLOWED);
- }
-
- @Test
- public void disconnect_shouldDisconnectBluetoothSap() {
- mProfile.disconnect(mBluetoothDevice);
- verify(mService).setConnectionPolicy(mBluetoothDevice, CONNECTION_POLICY_FORBIDDEN);
- }
-
- @Test
public void getConnectionStatus_shouldReturnConnectionState() {
when(mService.getConnectionState(mBluetoothDevice)).
thenReturn(BluetoothProfile.STATE_CONNECTED);
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXmlTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXmlTest.java
index 4b5e9097b3fe..e87461f85762 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXmlTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/license/LicenseHtmlGeneratorFromXmlTest.java
@@ -28,8 +28,11 @@ import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
@RunWith(RobolectricTestRunner.class)
public class LicenseHtmlGeneratorFromXmlTest {
@@ -68,6 +71,7 @@ public class LicenseHtmlGeneratorFromXmlTest {
private static final String HTML_BODY_STRING =
"<li><a href=\"#id0\">/file0</a></li>\n"
+ + "<li><a href=\"#id1\">/file0</a></li>\n"
+ "<li><a href=\"#id0\">/file1</a></li>\n"
+ "</ul>\n"
+ "</div><!-- table of contents -->\n"
@@ -82,6 +86,15 @@ public class LicenseHtmlGeneratorFromXmlTest {
+ "license content #0\n"
+ "</pre><!-- license-text -->\n"
+ "</td></tr><!-- same-license -->\n"
+ + "<tr id=\"id1\"><td class=\"same-license\">\n"
+ + "<div class=\"label\">Notices for file(s):</div>\n"
+ + "<div class=\"file-list\">\n"
+ + "/file0 <br/>\n"
+ + "</div><!-- file-list -->\n"
+ + "<pre class=\"license-text\">\n"
+ + "license content #1\n"
+ + "</pre><!-- license-text -->\n"
+ + "</td></tr><!-- same-license -->\n"
+ "</table></body></html>\n";
private static final String EXPECTED_HTML_STRING = HTML_HEAD_STRING + HTML_BODY_STRING;
@@ -91,22 +104,22 @@ public class LicenseHtmlGeneratorFromXmlTest {
@Test
public void testParseValidXmlStream() throws XmlPullParserException, IOException {
- Map<String, String> fileNameToContentIdMap = new HashMap<>();
+ Map<String, Set<String>> fileNameToContentIdMap = new HashMap<>();
Map<String, String> contentIdToFileContentMap = new HashMap<>();
LicenseHtmlGeneratorFromXml.parse(
new InputStreamReader(new ByteArrayInputStream(VALILD_XML_STRING.getBytes())),
fileNameToContentIdMap, contentIdToFileContentMap);
assertThat(fileNameToContentIdMap.size()).isEqualTo(2);
- assertThat(fileNameToContentIdMap.get("/file0")).isEqualTo("0");
- assertThat(fileNameToContentIdMap.get("/file1")).isEqualTo("0");
+ assertThat(fileNameToContentIdMap.get("/file0")).containsExactly("0");
+ assertThat(fileNameToContentIdMap.get("/file1")).containsExactly("0");
assertThat(contentIdToFileContentMap.size()).isEqualTo(1);
assertThat(contentIdToFileContentMap.get("0")).isEqualTo("license content #0");
}
@Test(expected = XmlPullParserException.class)
public void testParseInvalidXmlStream() throws XmlPullParserException, IOException {
- Map<String, String> fileNameToContentIdMap = new HashMap<>();
+ Map<String, Set<String>> fileNameToContentIdMap = new HashMap<>();
Map<String, String> contentIdToFileContentMap = new HashMap<>();
LicenseHtmlGeneratorFromXml.parse(
@@ -116,12 +129,13 @@ public class LicenseHtmlGeneratorFromXmlTest {
@Test
public void testGenerateHtml() {
- Map<String, String> fileNameToContentIdMap = new HashMap<>();
+ Map<String, Set<String>> fileNameToContentIdMap = new HashMap<>();
Map<String, String> contentIdToFileContentMap = new HashMap<>();
- fileNameToContentIdMap.put("/file0", "0");
- fileNameToContentIdMap.put("/file1", "0");
+ fileNameToContentIdMap.put("/file0", new HashSet<String>(Arrays.asList("0", "1")));
+ fileNameToContentIdMap.put("/file1", new HashSet<String>(Arrays.asList("0")));
contentIdToFileContentMap.put("0", "license content #0");
+ contentIdToFileContentMap.put("1", "license content #1");
StringWriter output = new StringWriter();
LicenseHtmlGeneratorFromXml.generateHtml(
@@ -131,12 +145,13 @@ public class LicenseHtmlGeneratorFromXmlTest {
@Test
public void testGenerateHtmlWithCustomHeading() {
- Map<String, String> fileNameToContentIdMap = new HashMap<>();
+ Map<String, Set<String>> fileNameToContentIdMap = new HashMap<>();
Map<String, String> contentIdToFileContentMap = new HashMap<>();
- fileNameToContentIdMap.put("/file0", "0");
- fileNameToContentIdMap.put("/file1", "0");
+ fileNameToContentIdMap.put("/file0", new HashSet<String>(Arrays.asList("0", "1")));
+ fileNameToContentIdMap.put("/file1", new HashSet<String>(Arrays.asList("0")));
contentIdToFileContentMap.put("0", "license content #0");
+ contentIdToFileContentMap.put("1", "license content #1");
StringWriter output = new StringWriter();
LicenseHtmlGeneratorFromXml.generateHtml(
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/BluetoothMediaManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/BluetoothMediaManagerTest.java
index f27cef9620c5..0ee5ea8a2eed 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/BluetoothMediaManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/BluetoothMediaManagerTest.java
@@ -96,7 +96,7 @@ public class BluetoothMediaManagerTest {
when(mA2dpProfile.getConnectableDevices()).thenReturn(devices);
when(mCachedDeviceManager.findDevice(bluetoothDevice)).thenReturn(cachedDevice);
when(cachedDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
- when(mA2dpProfile.isPreferred(bluetoothDevice)).thenReturn(true);
+ when(mA2dpProfile.isEnabled(bluetoothDevice)).thenReturn(true);
assertThat(mMediaManager.mMediaDevices).isEmpty();
mMediaManager.startScan();
@@ -113,7 +113,7 @@ public class BluetoothMediaManagerTest {
when(mA2dpProfile.getConnectableDevices()).thenReturn(devices);
when(mCachedDeviceManager.findDevice(bluetoothDevice)).thenReturn(cachedDevice);
when(cachedDevice.getBondState()).thenReturn(BluetoothDevice.BOND_NONE);
- when(mA2dpProfile.isPreferred(bluetoothDevice)).thenReturn(true);
+ when(mA2dpProfile.isEnabled(bluetoothDevice)).thenReturn(true);
assertThat(mMediaManager.mMediaDevices).isEmpty();
mMediaManager.startScan();
@@ -141,7 +141,7 @@ public class BluetoothMediaManagerTest {
when(mHapProfile.getConnectableDevices()).thenReturn(devices);
when(mCachedDeviceManager.findDevice(bluetoothDevice)).thenReturn(cachedDevice);
when(cachedDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
- when(mHapProfile.isPreferred(bluetoothDevice)).thenReturn(true);
+ when(mHapProfile.isEnabled(bluetoothDevice)).thenReturn(true);
assertThat(mMediaManager.mMediaDevices).isEmpty();
mMediaManager.startScan();
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaDeviceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaDeviceTest.java
index c9db0d13a7e7..2e304dcd58aa 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaDeviceTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/InfoMediaDeviceTest.java
@@ -22,6 +22,9 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageStats;
import android.media.MediaRoute2Info;
import android.media.MediaRouter2Manager;
@@ -34,11 +37,14 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.shadows.ShadowPackageManager;
@RunWith(RobolectricTestRunner.class)
public class InfoMediaDeviceTest {
private static final String TEST_PACKAGE_NAME = "com.test.packagename";
+ private static final String TEST_PACKAGE_NAME2 = "com.test.packagename2";
private static final String TEST_ID = "test_id";
private static final String TEST_NAME = "test_name";
@@ -50,11 +56,24 @@ public class InfoMediaDeviceTest {
private Context mContext;
private InfoMediaDevice mInfoMediaDevice;
+ private ShadowPackageManager mShadowPackageManager;
+ private ApplicationInfo mAppInfo;
+ private PackageInfo mPackageInfo;
+ private PackageStats mPackageStats;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
+ mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
+ mAppInfo = new ApplicationInfo();
+ mAppInfo.flags = ApplicationInfo.FLAG_INSTALLED;
+ mAppInfo.packageName = TEST_PACKAGE_NAME;
+ mAppInfo.name = TEST_NAME;
+ mPackageInfo = new PackageInfo();
+ mPackageInfo.packageName = TEST_PACKAGE_NAME;
+ mPackageInfo.applicationInfo = mAppInfo;
+ mPackageStats = new PackageStats(TEST_PACKAGE_NAME);
mInfoMediaDevice = new InfoMediaDevice(mContext, mRouterManager, mRouteInfo,
TEST_PACKAGE_NAME);
@@ -95,4 +114,32 @@ public class InfoMediaDeviceTest {
verify(mRouterManager).selectRoute(TEST_PACKAGE_NAME, mRouteInfo);
}
+
+ @Test
+ public void getClientPackageName_returnPackageName() {
+ when(mRouteInfo.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
+
+ assertThat(mInfoMediaDevice.getClientPackageName()).isEqualTo(TEST_PACKAGE_NAME);
+ }
+
+ @Test
+ public void getClientAppLabel_matchedPackageName_returnLabel() {
+ when(mRouteInfo.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
+
+ assertThat(mInfoMediaDevice.getClientAppLabel()).isEqualTo(
+ mContext.getResources().getString(R.string.unknown));
+
+ mShadowPackageManager.addPackage(mPackageInfo, mPackageStats);
+
+ assertThat(mInfoMediaDevice.getClientAppLabel()).isEqualTo(TEST_NAME);
+ }
+
+ @Test
+ public void getClientAppLabel_noMatchedPackageName_returnDefault() {
+ mShadowPackageManager.addPackage(mPackageInfo, mPackageStats);
+ when(mRouteInfo.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME2);
+
+ assertThat(mInfoMediaDevice.getClientAppLabel()).isEqualTo(
+ mContext.getResources().getString(R.string.unknown));
+ }
}
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 67f6dd903841..3726fb24479a 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
@@ -74,7 +74,7 @@ public class InfoMediaManagerTest {
}
@Test
- public void onRouteAdded_shouldAddMediaDevice() {
+ public void onRouteAdded_getAvailableRoutes_shouldAddMediaDevice() {
final MediaRoute2Info info = mock(MediaRoute2Info.class);
when(info.getId()).thenReturn(TEST_ID);
when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
@@ -95,6 +95,27 @@ public class InfoMediaManagerTest {
}
@Test
+ public void onRouteAdded_buildAllRoutes_shouldAddMediaDevice() {
+ final MediaRoute2Info info = mock(MediaRoute2Info.class);
+ when(info.getId()).thenReturn(TEST_ID);
+ when(info.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
+
+ final List<MediaRoute2Info> routes = new ArrayList<>();
+ routes.add(info);
+ when(mRouterManager.getAllRoutes()).thenReturn(routes);
+
+ final MediaDevice mediaDevice = mInfoMediaManager.findMediaDevice(TEST_ID);
+ assertThat(mediaDevice).isNull();
+
+ mInfoMediaManager.mPackageName = "";
+ mInfoMediaManager.mMediaRouterCallback.onRoutesAdded(routes);
+
+ final MediaDevice infoDevice = mInfoMediaManager.mMediaDevices.get(0);
+ assertThat(infoDevice.getId()).isEqualTo(TEST_ID);
+ assertThat(mInfoMediaManager.mMediaDevices).hasSize(routes.size());
+ }
+
+ @Test
public void onControlCategoriesChanged_samePackageName_shouldAddMediaDevice() {
final MediaRoute2Info info = mock(MediaRoute2Info.class);
when(info.getId()).thenReturn(TEST_ID);
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java
index c780a64c2fb4..15aaa8219269 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/media/LocalMediaManagerTest.java
@@ -384,4 +384,38 @@ public class LocalMediaManagerTest {
verify(mCallback).onDeviceAttributesChanged();
}
+
+ @Test
+ public void getActiveMediaDevice_checkList() {
+ final List<MediaDevice> devices = new ArrayList<>();
+ final MediaDevice device1 = mock(MediaDevice.class);
+ final MediaDevice device2 = mock(MediaDevice.class);
+ final MediaDevice device3 = mock(MediaDevice.class);
+ device1.mType = MediaDevice.MediaDeviceType.TYPE_PHONE_DEVICE;
+ device2.mType = MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE;
+ device3.mType = MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE;
+ when(device1.getClientPackageName()).thenReturn(TEST_DEVICE_ID_1);
+ when(device2.getClientPackageName()).thenReturn(TEST_DEVICE_ID_2);
+ when(device3.getClientPackageName()).thenReturn(TEST_DEVICE_ID_3);
+ when(device1.getId()).thenReturn(TEST_DEVICE_ID_1);
+ when(device2.getId()).thenReturn(TEST_DEVICE_ID_2);
+ when(device3.getId()).thenReturn(TEST_DEVICE_ID_3);
+ devices.add(device1);
+ devices.add(device2);
+ devices.add(device3);
+ mLocalMediaManager.registerCallback(mCallback);
+ mLocalMediaManager.mMediaDeviceCallback.onDeviceListAdded(devices);
+
+ List<MediaDevice> activeDevices = mLocalMediaManager.getActiveMediaDevice(
+ MediaDevice.MediaDeviceType.TYPE_PHONE_DEVICE);
+ assertThat(activeDevices).containsExactly(device1);
+
+ activeDevices = mLocalMediaManager.getActiveMediaDevice(
+ MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
+ assertThat(activeDevices).containsExactly(device2);
+
+ activeDevices = mLocalMediaManager.getActiveMediaDevice(
+ MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE);
+ assertThat(activeDevices).containsExactly(device3);
+ }
}
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java
index cdf97285a16f..44864a61ade6 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java
@@ -45,6 +45,7 @@ import android.provider.settings.validators.Validator;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.BackupUtils;
+import android.util.FeatureFlagUtils;
import android.util.Log;
import android.util.Slog;
import android.view.Display;
@@ -280,6 +281,16 @@ public class SettingsBackupAgent extends BackupAgentHelper {
Settings.Secure.getMovedToGlobalSettings(movedToGlobal);
Set<String> movedToSecure = getMovedToSecureSettings();
+ Set<String> preservedGlobalSettings = getSettingsToPreserveInRestore(
+ Settings.Global.CONTENT_URI);
+ Set<String> preservedSecureSettings = getSettingsToPreserveInRestore(
+ Settings.Secure.CONTENT_URI);
+ Set<String> preservedSystemSettings = getSettingsToPreserveInRestore(
+ Settings.System.CONTENT_URI);
+ Set<String> preservedSettings = new HashSet<>(preservedGlobalSettings);
+ preservedSettings.addAll(preservedSecureSettings);
+ preservedSettings.addAll(preservedSystemSettings);
+
byte[] restoredWifiSupplicantData = null;
byte[] restoredWifiIpConfigData = null;
@@ -300,7 +311,8 @@ public class SettingsBackupAgent extends BackupAgentHelper {
case KEY_SYSTEM :
restoreSettings(data, Settings.System.CONTENT_URI, movedToGlobal,
movedToSecure, R.array.restore_blocked_system_settings,
- dynamicBlockList);
+ dynamicBlockList,
+ preservedSystemSettings);
mSettingsHelper.applyAudioSettings();
break;
@@ -311,7 +323,8 @@ public class SettingsBackupAgent extends BackupAgentHelper {
movedToGlobal,
null,
R.array.restore_blocked_secure_settings,
- dynamicBlockList);
+ dynamicBlockList,
+ preservedSecureSettings);
break;
case KEY_GLOBAL :
@@ -321,7 +334,8 @@ public class SettingsBackupAgent extends BackupAgentHelper {
null,
movedToSecure,
R.array.restore_blocked_global_settings,
- dynamicBlockList);
+ dynamicBlockList,
+ preservedGlobalSettings);
break;
case KEY_WIFI_SUPPLICANT :
@@ -368,7 +382,8 @@ public class SettingsBackupAgent extends BackupAgentHelper {
restoreDeviceSpecificConfig(
restoredDeviceSpecificConfig,
R.array.restore_blocked_device_specific_settings,
- dynamicBlockList);
+ dynamicBlockList,
+ preservedSettings);
break;
default :
@@ -418,7 +433,7 @@ public class SettingsBackupAgent extends BackupAgentHelper {
in.readFully(buffer, 0, nBytes);
restoreSettings(buffer, nBytes, Settings.System.CONTENT_URI, movedToGlobal,
movedToSecure, R.array.restore_blocked_system_settings,
- Collections.emptySet());
+ Collections.emptySet(), Collections.emptySet());
// secure settings
nBytes = in.readInt();
@@ -432,7 +447,7 @@ public class SettingsBackupAgent extends BackupAgentHelper {
movedToGlobal,
null,
R.array.restore_blocked_secure_settings,
- Collections.emptySet());
+ Collections.emptySet(), Collections.emptySet());
// Global only if sufficiently new
if (version >= FULL_BACKUP_ADDED_GLOBAL) {
@@ -443,7 +458,7 @@ public class SettingsBackupAgent extends BackupAgentHelper {
movedToGlobal.clear(); // no redirection; this *is* the global namespace
restoreSettings(buffer, nBytes, Settings.Global.CONTENT_URI, movedToGlobal,
movedToSecure, R.array.restore_blocked_global_settings,
- Collections.emptySet());
+ Collections.emptySet(), Collections.emptySet());
}
// locale
@@ -608,6 +623,40 @@ public class SettingsBackupAgent extends BackupAgentHelper {
}
/**
+ * Get names of the settings for which the current value should be preserved during restore.
+ */
+ private Set<String> getSettingsToPreserveInRestore(Uri settingsUri) {
+ if (!FeatureFlagUtils.isEnabled(getBaseContext(),
+ FeatureFlagUtils.SETTINGS_DO_NOT_RESTORE_PRESERVED)) {
+ return Collections.emptySet();
+ }
+
+ Cursor cursor = getContentResolver().query(settingsUri, new String[] {
+ Settings.NameValueTable.NAME, Settings.NameValueTable.IS_PRESERVED_IN_RESTORE },
+ /* selection */ null, /* selectionArgs */ null, /* sortOrder */ null);
+
+ if (!cursor.moveToFirst()) {
+ Slog.i(TAG, "No settings to be preserved in restore");
+ return Collections.emptySet();
+ }
+
+ int nameIndex = cursor.getColumnIndex(Settings.NameValueTable.NAME);
+ int isPreservedIndex = cursor.getColumnIndex(
+ Settings.NameValueTable.IS_PRESERVED_IN_RESTORE);
+
+ Set<String> preservedSettings = new HashSet<>();
+ while (!cursor.isAfterLast()) {
+ if (Boolean.parseBoolean(cursor.getString(isPreservedIndex))) {
+ preservedSettings.add(getQualifiedKeyForSetting(cursor.getString(nameIndex),
+ settingsUri));
+ }
+ cursor.moveToNext();
+ }
+
+ return preservedSettings;
+ }
+
+ /**
* Serialize the owner info and other lock settings
*/
private byte[] getLockSettings(@UserIdInt int userId) {
@@ -650,7 +699,8 @@ public class SettingsBackupAgent extends BackupAgentHelper {
HashSet<String> movedToGlobal,
Set<String> movedToSecure,
int blockedSettingsArrayId,
- Set<String> dynamicBlockList) {
+ Set<String> dynamicBlockList,
+ Set<String> settingsToPreserve) {
byte[] settings = new byte[data.getDataSize()];
try {
data.readEntityData(settings, 0, settings.length);
@@ -665,7 +715,8 @@ public class SettingsBackupAgent extends BackupAgentHelper {
movedToGlobal,
movedToSecure,
blockedSettingsArrayId,
- dynamicBlockList);
+ dynamicBlockList,
+ settingsToPreserve);
}
private void restoreSettings(
@@ -675,7 +726,8 @@ public class SettingsBackupAgent extends BackupAgentHelper {
HashSet<String> movedToGlobal,
Set<String> movedToSecure,
int blockedSettingsArrayId,
- Set<String> dynamicBlockList) {
+ Set<String> dynamicBlockList,
+ Set<String> settingsToPreserve) {
restoreSettings(
settings,
0,
@@ -684,10 +736,12 @@ public class SettingsBackupAgent extends BackupAgentHelper {
movedToGlobal,
movedToSecure,
blockedSettingsArrayId,
- dynamicBlockList);
+ dynamicBlockList,
+ settingsToPreserve);
}
- private void restoreSettings(
+ @VisibleForTesting
+ void restoreSettings(
byte[] settings,
int pos,
int bytes,
@@ -695,31 +749,13 @@ public class SettingsBackupAgent extends BackupAgentHelper {
HashSet<String> movedToGlobal,
Set<String> movedToSecure,
int blockedSettingsArrayId,
- Set<String> dynamicBlockList) {
+ Set<String> dynamicBlockList,
+ Set<String> settingsToPreserve) {
if (DEBUG) {
Log.i(TAG, "restoreSettings: " + contentUri);
}
- // Figure out the white list and redirects to the global table. We restore anything
- // in either the backup whitelist or the legacy-restore whitelist for this table.
- final String[] whitelist;
- Map<String, Validator> validators = null;
- if (contentUri.equals(Settings.Secure.CONTENT_URI)) {
- whitelist = ArrayUtils.concatElements(String.class, SecureSettings.SETTINGS_TO_BACKUP,
- Settings.Secure.LEGACY_RESTORE_SETTINGS,
- DeviceSpecificSettings.DEVICE_SPECIFIC_SETTINGS_TO_BACKUP);
- validators = SecureSettingsValidators.VALIDATORS;
- } else if (contentUri.equals(Settings.System.CONTENT_URI)) {
- whitelist = ArrayUtils.concatElements(String.class, SystemSettings.SETTINGS_TO_BACKUP,
- Settings.System.LEGACY_RESTORE_SETTINGS);
- validators = SystemSettingsValidators.VALIDATORS;
- } else if (contentUri.equals(Settings.Global.CONTENT_URI)) {
- whitelist = ArrayUtils.concatElements(String.class, GlobalSettings.SETTINGS_TO_BACKUP,
- Settings.Global.LEGACY_RESTORE_SETTINGS);
- validators = GlobalSettingsValidators.VALIDATORS;
- } else {
- throw new IllegalArgumentException("Unknown URI: " + contentUri);
- }
+ SettingsBackupWhitelist whitelist = getBackupWhitelist(contentUri);
// Restore only the white list data.
final ArrayMap<String, String> cachedEntries = new ArrayMap<>();
@@ -729,7 +765,7 @@ public class SettingsBackupAgent extends BackupAgentHelper {
Set<String> blockedSettings = getBlockedSettings(blockedSettingsArrayId);
- for (String key : whitelist) {
+ for (String key : whitelist.mSettingsWhitelist) {
boolean isBlockedBySystem = blockedSettings != null && blockedSettings.contains(key);
if (isBlockedBySystem || isBlockedByDynamicList(dynamicBlockList, contentUri, key)) {
Log.i(
@@ -742,6 +778,12 @@ public class SettingsBackupAgent extends BackupAgentHelper {
continue;
}
+ if (settingsToPreserve.contains(getQualifiedKeyForSetting(key, contentUri))) {
+ Log.i(TAG, "Skipping restore for setting " + key + " as it is marked as "
+ + "preserved");
+ continue;
+ }
+
String value = null;
boolean hasValueToRestore = false;
if (cachedEntries.indexOfKey(key) >= 0) {
@@ -775,7 +817,7 @@ public class SettingsBackupAgent extends BackupAgentHelper {
}
// only restore the settings that have valid values
- if (!isValidSettingValue(key, value, validators)) {
+ if (!isValidSettingValue(key, value, whitelist.mSettingsValidators)) {
Log.w(TAG, "Attempted restore of " + key + " setting, but its value didn't pass"
+ " validation, value: " + value);
continue;
@@ -798,11 +840,42 @@ public class SettingsBackupAgent extends BackupAgentHelper {
}
}
+ @VisibleForTesting
+ SettingsBackupWhitelist getBackupWhitelist(Uri contentUri) {
+ // Figure out the white list and redirects to the global table. We restore anything
+ // in either the backup whitelist or the legacy-restore whitelist for this table.
+ String[] whitelist;
+ Map<String, Validator> validators = null;
+ if (contentUri.equals(Settings.Secure.CONTENT_URI)) {
+ whitelist = ArrayUtils.concatElements(String.class, SecureSettings.SETTINGS_TO_BACKUP,
+ Settings.Secure.LEGACY_RESTORE_SETTINGS,
+ DeviceSpecificSettings.DEVICE_SPECIFIC_SETTINGS_TO_BACKUP);
+ validators = SecureSettingsValidators.VALIDATORS;
+ } else if (contentUri.equals(Settings.System.CONTENT_URI)) {
+ whitelist = ArrayUtils.concatElements(String.class, SystemSettings.SETTINGS_TO_BACKUP,
+ Settings.System.LEGACY_RESTORE_SETTINGS);
+ validators = SystemSettingsValidators.VALIDATORS;
+ } else if (contentUri.equals(Settings.Global.CONTENT_URI)) {
+ whitelist = ArrayUtils.concatElements(String.class, GlobalSettings.SETTINGS_TO_BACKUP,
+ Settings.Global.LEGACY_RESTORE_SETTINGS);
+ validators = GlobalSettingsValidators.VALIDATORS;
+ } else {
+ throw new IllegalArgumentException("Unknown URI: " + contentUri);
+ }
+
+ return new SettingsBackupWhitelist(whitelist, validators);
+ }
+
private boolean isBlockedByDynamicList(Set<String> dynamicBlockList, Uri areaUri, String key) {
String contentKey = Uri.withAppendedPath(areaUri, key).toString();
return dynamicBlockList.contains(contentKey);
}
+ @VisibleForTesting
+ static String getQualifiedKeyForSetting(String settingName, Uri settingUri) {
+ return Uri.withAppendedPath(settingUri, settingName).toString();
+ }
+
// There may be other sources of blocked settings, so I'm separating out this
// code to make it easy to modify in the future.
@VisibleForTesting
@@ -1089,7 +1162,7 @@ public class SettingsBackupAgent extends BackupAgentHelper {
*/
@VisibleForTesting
boolean restoreDeviceSpecificConfig(byte[] data, int blockedSettingsArrayId,
- Set<String> dynamicBlocklist) {
+ Set<String> dynamicBlocklist, Set<String> preservedSettings) {
// We're using an AtomicInteger to wrap the position int and allow called methods to
// modify it.
AtomicInteger pos = new AtomicInteger(0);
@@ -1108,7 +1181,8 @@ public class SettingsBackupAgent extends BackupAgentHelper {
null,
null,
blockedSettingsArrayId,
- dynamicBlocklist);
+ dynamicBlocklist,
+ preservedSettings);
updateWindowManagerIfNeeded(originalDensity);
@@ -1240,4 +1314,20 @@ public class SettingsBackupAgent extends BackupAgentHelper {
| ((in[pos + 3] & 0xFF) << 0);
return result;
}
+
+ /**
+ * Store the whitelist of settings to be backed up and validators for them.
+ */
+ @VisibleForTesting
+ static class SettingsBackupWhitelist {
+ final String[] mSettingsWhitelist;
+ final Map<String, Validator> mSettingsValidators;
+
+
+ SettingsBackupWhitelist(String[] settingsWhitelist,
+ Map<String, Validator> settingsValidators) {
+ mSettingsWhitelist = settingsWhitelist;
+ mSettingsValidators = settingsValidators;
+ }
+ }
}
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
index 1bec826897c0..78b9f16ef355 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java
@@ -2185,13 +2185,14 @@ class SettingsProtoDumpUtil {
Settings.Secure.NAVIGATION_MODE,
SecureSettingsProto.NAVIGATION_MODE);
+ final long gestureNavToken = p.start(SecureSettingsProto.GESTURE_NAVIGATION);
dumpSetting(s, p,
Settings.Secure.BACK_GESTURE_INSET_SCALE_LEFT,
SecureSettingsProto.GestureNavigation.BACK_GESTURE_INSET_SCALE_LEFT);
-
dumpSetting(s, p,
Settings.Secure.BACK_GESTURE_INSET_SCALE_RIGHT,
SecureSettingsProto.GestureNavigation.BACK_GESTURE_INSET_SCALE_RIGHT);
+ p.end(gestureNavToken);
final long nfcPaymentToken = p.start(SecureSettingsProto.NFC_PAYMENT);
dumpSetting(s, p,
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 874e29940202..c969bfd193b5 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -180,10 +180,17 @@ public class SettingsProvider extends ContentProvider {
private static final int MUTATION_OPERATION_UPDATE = 3;
private static final int MUTATION_OPERATION_RESET = 4;
+ private static final String[] LEGACY_SQL_COLUMNS = new String[] {
+ Settings.NameValueTable._ID,
+ Settings.NameValueTable.NAME,
+ Settings.NameValueTable.VALUE,
+ };
+
private static final String[] ALL_COLUMNS = new String[] {
Settings.NameValueTable._ID,
Settings.NameValueTable.NAME,
- Settings.NameValueTable.VALUE
+ Settings.NameValueTable.VALUE,
+ Settings.NameValueTable.IS_PRESERVED_IN_RESTORE,
};
public static final int SETTINGS_TYPE_GLOBAL = SettingsState.SETTINGS_TYPE_GLOBAL;
@@ -2353,6 +2360,10 @@ public class SettingsProvider extends ContentProvider {
case Settings.NameValueTable.VALUE: {
values[i] = setting.getValue();
} break;
+
+ case Settings.NameValueTable.IS_PRESERVED_IN_RESTORE: {
+ values[i] = String.valueOf(setting.isValuePreservedInRestore());
+ } break;
}
}
@@ -3097,7 +3108,7 @@ public class SettingsProvider extends ContentProvider {
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setTables(table);
- Cursor cursor = queryBuilder.query(database, ALL_COLUMNS,
+ Cursor cursor = queryBuilder.query(database, LEGACY_SQL_COLUMNS,
null, null, null, null, null);
if (cursor == null) {
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
index db18213a3599..cd62420f39ac 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java
@@ -41,13 +41,13 @@ import android.util.AtomicFile;
import android.util.Base64;
import android.util.Slog;
import android.util.SparseIntArray;
-import android.util.StatsLog;
import android.util.TimeUtils;
import android.util.Xml;
import android.util.proto.ProtoOutputStream;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.FrameworkStatsLog;
import libcore.io.IoUtils;
@@ -425,12 +425,14 @@ final class SettingsState {
}
newState = oldState;
} else {
- newState = new Setting(name, value, makeDefault, packageName, tag);
+ newState = new Setting(name, value, makeDefault, packageName, tag,
+ forceNonSystemPackage);
mSettings.put(name, newState);
}
- StatsLog.write(StatsLog.SETTING_CHANGED, name, value, newState.value, oldValue, tag,
- makeDefault, getUserIdFromKey(mKey), StatsLog.SETTING_CHANGED__REASON__UPDATED);
+ FrameworkStatsLog.write(FrameworkStatsLog.SETTING_CHANGED, name, value, newState.value,
+ oldValue, tag, makeDefault, getUserIdFromKey(mKey),
+ FrameworkStatsLog.SETTING_CHANGED__REASON__UPDATED);
addHistoricalOperationLocked(HISTORICAL_OPERATION_UPDATE, newState);
@@ -489,9 +491,9 @@ final class SettingsState {
if (key.startsWith(prefix) && !keyValues.containsKey(key)) {
Setting oldState = mSettings.remove(key);
- StatsLog.write(StatsLog.SETTING_CHANGED, key, /* value= */ "", /* newValue= */ "",
- oldState.value, /* tag */ "", false, getUserIdFromKey(mKey),
- StatsLog.SETTING_CHANGED__REASON__DELETED);
+ FrameworkStatsLog.write(FrameworkStatsLog.SETTING_CHANGED, key,
+ /* value= */ "", /* newValue= */ "", oldState.value, /* tag */ "", false,
+ getUserIdFromKey(mKey), FrameworkStatsLog.SETTING_CHANGED__REASON__DELETED);
addHistoricalOperationLocked(HISTORICAL_OPERATION_DELETE, oldState);
changedKeys.add(key); // key was removed
}
@@ -516,9 +518,9 @@ final class SettingsState {
continue;
}
- StatsLog.write(StatsLog.SETTING_CHANGED, key, value, state.value, oldValue,
- /* tag */ null, /* make default */ false,
- getUserIdFromKey(mKey), StatsLog.SETTING_CHANGED__REASON__UPDATED);
+ FrameworkStatsLog.write(FrameworkStatsLog.SETTING_CHANGED, key, value, state.value,
+ oldValue, /* tag */ null, /* make default */ false,
+ getUserIdFromKey(mKey), FrameworkStatsLog.SETTING_CHANGED__REASON__UPDATED);
addHistoricalOperationLocked(HISTORICAL_OPERATION_UPDATE, state);
}
@@ -544,9 +546,9 @@ final class SettingsState {
Setting oldState = mSettings.remove(name);
- StatsLog.write(StatsLog.SETTING_CHANGED, name, /* value= */ "", /* newValue= */ "",
- oldState.value, /* tag */ "", false, getUserIdFromKey(mKey),
- StatsLog.SETTING_CHANGED__REASON__DELETED);
+ FrameworkStatsLog.write(FrameworkStatsLog.SETTING_CHANGED, name, /* value= */ "",
+ /* newValue= */ "", oldState.value, /* tag */ "", false, getUserIdFromKey(mKey),
+ FrameworkStatsLog.SETTING_CHANGED__REASON__DELETED);
updateMemoryUsagePerPackageLocked(oldState.packageName, oldState.value,
null, oldState.defaultValue, null);
@@ -1172,11 +1174,15 @@ final class SettingsState {
public Setting(String name, String value, boolean makeDefault, String packageName,
String tag) {
+ this(name, value, makeDefault, packageName, tag, false);
+ }
+
+ Setting(String name, String value, boolean makeDefault, String packageName,
+ String tag, boolean forceNonSystemPackage) {
this.name = name;
// overrideableByRestore = true as the first initialization isn't considered a
// modification.
- update(value, makeDefault, packageName, tag, false,
- /* overrideableByRestore */ true);
+ update(value, makeDefault, packageName, tag, forceNonSystemPackage, true);
}
public Setting(String name, String value, String defaultValue,
diff --git a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsBackupAgentTest.java b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsBackupAgentTest.java
index e6508823c7e3..f5334fb7e6ea 100644
--- a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsBackupAgentTest.java
+++ b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsBackupAgentTest.java
@@ -32,6 +32,8 @@ import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
+import android.provider.settings.validators.SettingsValidators;
+import android.provider.settings.validators.Validator;
import android.test.mock.MockContentProvider;
import android.test.mock.MockContentResolver;
@@ -43,6 +45,7 @@ import org.junit.runner.RunWith;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
@@ -55,12 +58,24 @@ import java.util.concurrent.atomic.AtomicInteger;
/** Tests for the SettingsHelperTest */
@RunWith(AndroidJUnit4.class)
public class SettingsBackupAgentTest extends BaseSettingsProviderTest {
-
+ private static final Uri TEST_URI = Uri.EMPTY;
private static final String TEST_DISPLAY_DENSITY_FORCED = "123";
+ private static final String OVERRIDDEN_TEST_SETTING = "overridden_setting";
+ private static final String PRESERVED_TEST_SETTING = "preserved_setting";
+ private static final Map<String, String> DEVICE_SPECIFIC_TEST_VALUES = new HashMap<>();
private static final Map<String, String> TEST_VALUES = new HashMap<>();
+ private static final Map<String, Validator> TEST_VALUES_VALIDATORS = new HashMap<>();
static {
- TEST_VALUES.put(Settings.Secure.DISPLAY_DENSITY_FORCED, TEST_DISPLAY_DENSITY_FORCED);
+ DEVICE_SPECIFIC_TEST_VALUES.put(Settings.Secure.DISPLAY_DENSITY_FORCED,
+ TEST_DISPLAY_DENSITY_FORCED);
+
+ TEST_VALUES.put(OVERRIDDEN_TEST_SETTING, "123");
+ TEST_VALUES.put(PRESERVED_TEST_SETTING, "124");
+
+ TEST_VALUES_VALIDATORS.put(OVERRIDDEN_TEST_SETTING,
+ SettingsValidators.ANY_STRING_VALIDATOR);
+ TEST_VALUES_VALIDATORS.put(PRESERVED_TEST_SETTING, SettingsValidators.ANY_STRING_VALIDATOR);
}
private TestFriendlySettingsBackupAgent mAgentUnderTest;
@@ -83,14 +98,15 @@ public class SettingsBackupAgentTest extends BaseSettingsProviderTest {
byte[] settingsBackup = mAgentUnderTest.getDeviceSpecificConfiguration();
- assertEquals("Not all values backed up.", TEST_VALUES.keySet(), helper.mReadEntries);
+ assertEquals("Not all values backed up.", DEVICE_SPECIFIC_TEST_VALUES.keySet(), helper.mReadEntries);
mAgentUnderTest.restoreDeviceSpecificConfig(
settingsBackup,
R.array.restore_blocked_device_specific_settings,
+ Collections.emptySet(),
Collections.emptySet());
- assertEquals("Not all values were restored.", TEST_VALUES, helper.mWrittenValues);
+ assertEquals("Not all values were restored.", DEVICE_SPECIFIC_TEST_VALUES, helper.mWrittenValues);
}
@Test
@@ -100,12 +116,13 @@ public class SettingsBackupAgentTest extends BaseSettingsProviderTest {
byte[] settingsBackup = mAgentUnderTest.getDeviceSpecificConfiguration();
- assertEquals("Not all values backed up.", TEST_VALUES.keySet(), helper.mReadEntries);
- mAgentUnderTest.setBlockedSettings(TEST_VALUES.keySet().toArray(new String[0]));
+ assertEquals("Not all values backed up.", DEVICE_SPECIFIC_TEST_VALUES.keySet(), helper.mReadEntries);
+ mAgentUnderTest.setBlockedSettings(DEVICE_SPECIFIC_TEST_VALUES.keySet().toArray(new String[0]));
mAgentUnderTest.restoreDeviceSpecificConfig(
settingsBackup,
R.array.restore_blocked_device_specific_settings,
+ Collections.emptySet(),
Collections.emptySet());
assertTrue("Not all values were blocked.", helper.mWrittenValues.isEmpty());
@@ -172,9 +189,50 @@ public class SettingsBackupAgentTest extends BaseSettingsProviderTest {
mAgentUnderTest.restoreDeviceSpecificConfig(
data,
R.array.restore_blocked_device_specific_settings,
+ Collections.emptySet(),
Collections.emptySet()));
}
+ @Test
+ public void testOnRestore_preservedSettingsAreNotRestored() {
+ SettingsBackupAgent.SettingsBackupWhitelist whitelist =
+ new SettingsBackupAgent.SettingsBackupWhitelist(
+ new String[] { OVERRIDDEN_TEST_SETTING, PRESERVED_TEST_SETTING },
+ TEST_VALUES_VALIDATORS);
+ mAgentUnderTest.setSettingsWhitelist(whitelist);
+ mAgentUnderTest.setBlockedSettings();
+ TestSettingsHelper settingsHelper = new TestSettingsHelper(mContext);
+ mAgentUnderTest.mSettingsHelper = settingsHelper;
+
+ byte[] backupData = generateBackupData(TEST_VALUES);
+ mAgentUnderTest.restoreSettings(backupData, /* pos */ 0, backupData.length, TEST_URI, new HashSet<>(),
+ Collections.emptySet(), /* blockedSettingsArrayId */ 0, Collections.emptySet(),
+ new HashSet<>(Collections.singletonList(SettingsBackupAgent.getQualifiedKeyForSetting(PRESERVED_TEST_SETTING, TEST_URI))));
+
+ assertTrue(settingsHelper.mWrittenValues.containsKey(OVERRIDDEN_TEST_SETTING));
+ assertFalse(settingsHelper.mWrittenValues.containsKey(PRESERVED_TEST_SETTING));
+ }
+
+ private byte[] generateBackupData(Map<String, String> keyValueData) {
+ int totalBytes = 0;
+ for (String key : keyValueData.keySet()) {
+ totalBytes += 2 * Integer.BYTES + key.getBytes().length
+ + keyValueData.get(key).getBytes().length;
+ }
+
+ ByteBuffer buffer = ByteBuffer.allocate(totalBytes);
+ for (String key : keyValueData.keySet()) {
+ byte[] keyBytes = key.getBytes();
+ byte[] valueBytes = keyValueData.get(key).getBytes();
+ buffer.putInt(keyBytes.length);
+ buffer.put(keyBytes);
+ buffer.putInt(valueBytes.length);
+ buffer.put(valueBytes);
+ }
+
+ return buffer.array();
+ }
+
private byte[] generateUncorruptedHeader() throws IOException {
try (ByteArrayOutputStream os = new ByteArrayOutputStream()) {
mAgentUnderTest.writeHeader(os);
@@ -219,6 +277,7 @@ public class SettingsBackupAgentTest extends BaseSettingsProviderTest {
private static class TestFriendlySettingsBackupAgent extends SettingsBackupAgent {
private Boolean mForcedDeviceInfoRestoreAcceptability = null;
private String[] mBlockedSettings = null;
+ private SettingsBackupWhitelist mSettingsWhitelist = null;
void setForcedDeviceInfoRestoreAcceptability(boolean value) {
mForcedDeviceInfoRestoreAcceptability = value;
@@ -228,6 +287,10 @@ public class SettingsBackupAgentTest extends BaseSettingsProviderTest {
mBlockedSettings = blockedSettings;
}
+ void setSettingsWhitelist(SettingsBackupWhitelist settingsWhitelist) {
+ mSettingsWhitelist = settingsWhitelist;
+ }
+
@Override
protected Set<String> getBlockedSettings(int blockedSettingsArrayId) {
return mBlockedSettings == null
@@ -241,6 +304,15 @@ public class SettingsBackupAgentTest extends BaseSettingsProviderTest {
? super.isSourceAcceptable(data, pos)
: mForcedDeviceInfoRestoreAcceptability;
}
+
+ @Override
+ SettingsBackupWhitelist getBackupWhitelist(Uri contentUri) {
+ if (mSettingsWhitelist == null) {
+ return super.getBackupWhitelist(contentUri);
+ }
+
+ return mSettingsWhitelist;
+ }
}
/** The TestSettingsHelper tracks which values have been backed up and/or restored. */
@@ -257,7 +329,7 @@ public class SettingsBackupAgentTest extends BaseSettingsProviderTest {
@Override
public String onBackupValue(String key, String value) {
mReadEntries.add(key);
- String readValue = TEST_VALUES.get(key);
+ String readValue = DEVICE_SPECIFIC_TEST_VALUES.get(key);
assert readValue != null;
return readValue;
}
diff --git a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsProviderTest.java b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsProviderTest.java
index d67a9bc97cb8..8ff595b3bc53 100644
--- a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsProviderTest.java
+++ b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsProviderTest.java
@@ -33,7 +33,6 @@ import android.os.UserHandle;
import android.provider.Settings;
import android.util.Log;
-import org.junit.Ignore;
import org.junit.Test;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -692,125 +691,4 @@ public class SettingsProviderTest extends BaseSettingsProviderTest {
cursor.close();
}
}
-
- @Test
- @Ignore("b/140250974")
- public void testLocationModeChanges_viaFrontEndApi() throws Exception {
- setStringViaFrontEndApiSetting(
- SETTING_TYPE_SECURE,
- Settings.Secure.LOCATION_MODE,
- String.valueOf(Settings.Secure.LOCATION_MODE_OFF),
- UserHandle.USER_SYSTEM);
- assertEquals(
- "Wrong location providers",
- "",
- getStringViaFrontEndApiSetting(
- SETTING_TYPE_SECURE,
- Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
- UserHandle.USER_SYSTEM));
-
- setStringViaFrontEndApiSetting(
- SETTING_TYPE_SECURE,
- Settings.Secure.LOCATION_MODE,
- String.valueOf(Settings.Secure.LOCATION_MODE_BATTERY_SAVING),
- UserHandle.USER_SYSTEM);
- assertEquals(
- "Wrong location providers",
- "network",
- getStringViaFrontEndApiSetting(
- SETTING_TYPE_SECURE,
- Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
- UserHandle.USER_SYSTEM));
-
- setStringViaFrontEndApiSetting(
- SETTING_TYPE_SECURE,
- Settings.Secure.LOCATION_MODE,
- String.valueOf(Settings.Secure.LOCATION_MODE_HIGH_ACCURACY),
- UserHandle.USER_SYSTEM);
- assertEquals(
- "Wrong location providers",
- "gps,network",
- getStringViaFrontEndApiSetting(
- SETTING_TYPE_SECURE,
- Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
- UserHandle.USER_SYSTEM));
- }
-
- @Test
- @Ignore("b/140250974")
- public void testLocationProvidersAllowed_disableProviders() throws Exception {
- setStringViaFrontEndApiSetting(
- SETTING_TYPE_SECURE,
- Settings.Secure.LOCATION_MODE,
- String.valueOf(Settings.Secure.LOCATION_MODE_HIGH_ACCURACY),
- UserHandle.USER_SYSTEM);
-
- // Disable providers that were enabled
- updateStringViaProviderApiSetting(
- SETTING_TYPE_SECURE,
- Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
- "-gps,-network");
- assertEquals(
- "Wrong location providers",
- "",
- queryStringViaProviderApi(
- SETTING_TYPE_SECURE, Settings.Secure.LOCATION_PROVIDERS_ALLOWED));
-
- // Disable a provider that was not enabled
- updateStringViaProviderApiSetting(
- SETTING_TYPE_SECURE,
- Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
- "-test");
- assertEquals(
- "Wrong location providers",
- "",
- queryStringViaProviderApi(
- SETTING_TYPE_SECURE, Settings.Secure.LOCATION_PROVIDERS_ALLOWED));
- }
-
- @Test
- @Ignore("b/140250974")
- public void testLocationProvidersAllowed_enableAndDisable() throws Exception {
- setStringViaFrontEndApiSetting(
- SETTING_TYPE_SECURE,
- Settings.Secure.LOCATION_MODE,
- String.valueOf(Settings.Secure.LOCATION_MODE_OFF),
- UserHandle.USER_SYSTEM);
-
- updateStringViaProviderApiSetting(
- SETTING_TYPE_SECURE,
- Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
- "+gps,+network,+test");
- updateStringViaProviderApiSetting(
- SETTING_TYPE_SECURE, Settings.Secure.LOCATION_PROVIDERS_ALLOWED, "-test");
-
- assertEquals(
- "Wrong location providers",
- "gps,network",
- queryStringViaProviderApi(
- SETTING_TYPE_SECURE, Settings.Secure.LOCATION_PROVIDERS_ALLOWED));
- }
-
- @Test
- @Ignore("b/140250974")
- public void testLocationProvidersAllowedLocked_invalidInput() throws Exception {
- setStringViaFrontEndApiSetting(
- SETTING_TYPE_SECURE,
- Settings.Secure.LOCATION_MODE,
- String.valueOf(Settings.Secure.LOCATION_MODE_OFF),
- UserHandle.USER_SYSTEM);
-
- // update providers with a invalid string
- updateStringViaProviderApiSetting(
- SETTING_TYPE_SECURE,
- Settings.Secure.LOCATION_PROVIDERS_ALLOWED,
- "+gps, invalid-string");
-
- // Verifies providers list does not change
- assertEquals(
- "Wrong location providers",
- "",
- queryStringViaProviderApi(
- SETTING_TYPE_SECURE, Settings.Secure.LOCATION_PROVIDERS_ALLOWED));
- }
}
diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml
index 0f3585303ed8..1d679c7bcbdd 100644
--- a/packages/Shell/AndroidManifest.xml
+++ b/packages/Shell/AndroidManifest.xml
@@ -91,6 +91,7 @@
<uses-permission android:name="android.permission.TEST_MANAGE_ROLLBACKS" />
<uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
+ <uses-permission android:name="android.permission.REBOOT" />
<uses-permission android:name="android.permission.DEVICE_POWER" />
<uses-permission android:name="android.permission.POWER_SAVER" />
<uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER" />
@@ -219,6 +220,14 @@
<!-- Permission required for CTS test - CrossProfileAppsHostSideTest -->
<uses-permission android:name="android.permission.INTERACT_ACROSS_PROFILES"/>
+ <!-- permissions required for CTS test - PhoneStateListenerTest -->
+ <uses-permission android:name="android.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH" />
+
+ <!-- Permissions required for ganting and logging -->
+ <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE"/>
+ <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/>
+ <uses-permission android:name="android.permission.OVERRIDE_COMPAT_CHANGE_CONFIG"/>
+
<!-- Permission required for CTS test - UiModeManagerTest -->
<uses-permission android:name="android.permission.ENTER_CAR_MODE_PRIORITIZED"/>
@@ -240,6 +249,9 @@
<!-- Allows setting brightness from the shell -->
<uses-permission android:name="android.permission.CONTROL_DISPLAY_BRIGHTNESS"/>
+ <!-- Permission required for CTS test - ShortcutManagerUsageTest -->
+ <uses-permission android:name="android.permission.ACCESS_SHORTCUTS"/>
+
<!-- Permissions required to test ambient display. -->
<uses-permission android:name="android.permission.READ_DREAM_STATE"/>
<uses-permission android:name="android.permission.WRITE_DREAM_STATE"/>
@@ -247,6 +259,9 @@
<!-- Permission required for CTS test - CtsLightsManagerTest -->
<uses-permission android:name="android.permission.CONTROL_DEVICE_LIGHTS" />
+ <!-- Permission needed to test mainline permission module rollback -->
+ <uses-permission android:name="android.permission.UPGRADE_RUNTIME_PERMISSIONS" />
+
<application android:label="@string/app_label"
android:theme="@android:style/Theme.DeviceDefault.DayNight"
android:defaultToDeviceProtectedStorage="true"
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml
index 26fa1cf46974..1fe967b4750d 100644
--- a/packages/SystemUI/AndroidManifest.xml
+++ b/packages/SystemUI/AndroidManifest.xml
@@ -644,8 +644,8 @@
<activity android:name=".controls.management.ControlsProviderSelectorActivity"
android:label="Controls Providers"
- android:theme="@style/Theme.SystemUI"
- android:exported="true"
+ android:theme="@style/Theme.ControlsManagement"
+ android:showForAllUsers="true"
android:excludeFromRecents="true"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|keyboard|keyboardHidden"
android:visibleToInstantApps="true">
@@ -653,8 +653,9 @@
<activity android:name=".controls.management.ControlsFavoritingActivity"
android:parentActivityName=".controls.management.ControlsProviderSelectorActivity"
- android:theme="@style/Theme.SystemUI"
+ android:theme="@style/Theme.ControlsManagement"
android:excludeFromRecents="true"
+ android:showForAllUsers="true"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|keyboard|keyboardHidden"
android:visibleToInstantApps="true">
</activity>
diff --git a/packages/SystemUI/docs/plugin_hooks.md b/packages/SystemUI/docs/plugin_hooks.md
index 2fb0c996111a..9fe2e181971a 100644
--- a/packages/SystemUI/docs/plugin_hooks.md
+++ b/packages/SystemUI/docs/plugin_hooks.md
@@ -56,11 +56,6 @@ Expected interface: [ClockPlugin](/packages/SystemUI/plugin/src/com/android/syst
Use: Allows replacement of the keyguard main clock.
-### Action: com.android.systemui.action.PLUGIN_NPV
-Expected interface: [NPVPlugin](/packages/SystemUI/plugin/src/com/android/systemui/plugins/NPVPlugin.java)
-
-Use: Attach a view under QQS for prototyping.
-
# Global plugin dependencies
These classes can be accessed by any plugin using PluginDependency as long as they @Requires them.
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/HomeControlsPlugin.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/HomeControlsPlugin.java
deleted file mode 100644
index c1d4b03b6620..000000000000
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/HomeControlsPlugin.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.systemui.plugins;
-
-import android.view.ViewGroup;
-
-import com.android.systemui.plugins.annotations.ProvidesInterface;
-
-/**
- * Test plugin for home controls
- */
-@ProvidesInterface(action = HomeControlsPlugin.ACTION, version = HomeControlsPlugin.VERSION)
-public interface HomeControlsPlugin extends Plugin {
-
- String ACTION = "com.android.systemui.action.PLUGIN_HOME_CONTROLS";
- int VERSION = 1;
-
- /**
- * Pass the container for the plugin to use however it wants. Ideally the plugin impl
- * will add home controls to this space.
- */
- void sendParentGroup(ViewGroup group);
-
- /**
- * When visible, will poll for updates.
- */
- void setVisible(boolean visible);
-}
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/NPVPlugin.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/NPVPlugin.java
deleted file mode 100644
index 1426266a7048..000000000000
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/NPVPlugin.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.plugins;
-
-import android.view.View;
-import android.widget.FrameLayout;
-
-import com.android.systemui.plugins.annotations.ProvidesInterface;
-
-/**
- * Plugin to attach custom views under QQS.
- *
- * A parent view is provided to the plugin to which they can add Views.
- * <br>
- * The parent is a {@link FrameLayout} with same background as QS and 96dp height.
- *
- * {@see NPVPluginManager}
- * {@see status_bar_expanded_plugin_frame}
- */
-@ProvidesInterface(action = NPVPlugin.ACTION, version = NPVPlugin.VERSION)
-public interface NPVPlugin extends Plugin {
- String ACTION = "com.android.systemui.action.PLUGIN_NPV";
- int VERSION = 1;
-
- /**
- * Attach views to the parent.
- *
- * @param parent a {@link FrameLayout} to which to attach views. Preferably a root view.
- * @return a view attached to parent.
- */
- View attachToRoot(FrameLayout parent);
-
- /**
- * Indicate to the plugin when it is listening (QS expanded)
- * @param listening
- */
- default void setListening(boolean listening) {};
-}
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java
index 17f2f476c9f2..01811e9cdced 100644
--- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java
+++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTile.java
@@ -14,9 +14,6 @@
package com.android.systemui.plugins.qs;
-import static java.lang.annotation.RetentionPolicy.SOURCE;
-
-import android.annotation.IntDef;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.metrics.LogMaker;
@@ -28,7 +25,6 @@ import com.android.systemui.plugins.qs.QSTile.Callback;
import com.android.systemui.plugins.qs.QSTile.Icon;
import com.android.systemui.plugins.qs.QSTile.State;
-import java.lang.annotation.Retention;
import java.util.Objects;
import java.util.function.Supplier;
@@ -84,17 +80,6 @@ public interface QSTile {
return logMaker;
}
- @Retention(SOURCE)
- @IntDef({COLOR_TILE_ACCENT, COLOR_TILE_RED, COLOR_TILE_BLUE, COLOR_TILE_YELLOW,
- COLOR_TILE_GREEN})
- @interface ColorTile {}
- int COLOR_TILE_ACCENT = 0;
- int COLOR_TILE_RED = 1;
- int COLOR_TILE_BLUE = 2;
- int COLOR_TILE_YELLOW = 3;
- int COLOR_TILE_GREEN = 4;
- default void setColor(@ColorTile int color) {}
-
@ProvidesInterface(version = Callback.VERSION)
public interface Callback {
public static final int VERSION = 1;
@@ -133,7 +118,6 @@ public interface QSTile {
public CharSequence label;
public CharSequence secondaryLabel;
public CharSequence contentDescription;
- public CharSequence stateDescription;
public CharSequence dualLabelContentDescription;
public boolean disabledByPolicy;
public boolean dualTarget = false;
@@ -142,7 +126,6 @@ public interface QSTile {
public SlashState slash;
public boolean handlesLongClick = true;
public boolean showRippleEffect = true;
- public int colorActive = -1;
public boolean copyTo(State other) {
if (other == null) throw new IllegalArgumentException();
@@ -152,7 +135,6 @@ public interface QSTile {
|| !Objects.equals(other.label, label)
|| !Objects.equals(other.secondaryLabel, secondaryLabel)
|| !Objects.equals(other.contentDescription, contentDescription)
- || !Objects.equals(other.stateDescription, stateDescription)
|| !Objects.equals(other.dualLabelContentDescription,
dualLabelContentDescription)
|| !Objects.equals(other.expandedAccessibilityClassName,
@@ -163,14 +145,12 @@ public interface QSTile {
|| !Objects.equals(other.dualTarget, dualTarget)
|| !Objects.equals(other.slash, slash)
|| !Objects.equals(other.handlesLongClick, handlesLongClick)
- || !Objects.equals(other.showRippleEffect, showRippleEffect)
- || !Objects.equals(other.colorActive, colorActive);
+ || !Objects.equals(other.showRippleEffect, showRippleEffect);
other.icon = icon;
other.iconSupplier = iconSupplier;
other.label = label;
other.secondaryLabel = secondaryLabel;
other.contentDescription = contentDescription;
- other.stateDescription = stateDescription;
other.dualLabelContentDescription = dualLabelContentDescription;
other.expandedAccessibilityClassName = expandedAccessibilityClassName;
other.disabledByPolicy = disabledByPolicy;
@@ -180,7 +160,6 @@ public interface QSTile {
other.slash = slash != null ? slash.copy() : null;
other.handlesLongClick = handlesLongClick;
other.showRippleEffect = showRippleEffect;
- other.colorActive = colorActive;
return changed;
}
@@ -198,7 +177,6 @@ public interface QSTile {
sb.append(",label=").append(label);
sb.append(",secondaryLabel=").append(secondaryLabel);
sb.append(",contentDescription=").append(contentDescription);
- sb.append(",stateDescription=").append(stateDescription);
sb.append(",dualLabelContentDescription=").append(dualLabelContentDescription);
sb.append(",expandedAccessibilityClassName=").append(expandedAccessibilityClassName);
sb.append(",disabledByPolicy=").append(disabledByPolicy);
diff --git a/packages/SystemUI/proguard.flags b/packages/SystemUI/proguard.flags
index 3e74970ee725..2a2ba1b0ccaa 100644
--- a/packages/SystemUI/proguard.flags
+++ b/packages/SystemUI/proguard.flags
@@ -16,6 +16,7 @@
-keep class com.android.systemui.statusbar.tv.TvStatusBar
-keep class com.android.systemui.car.CarSystemUIFactory
-keep class com.android.systemui.SystemUIFactory
+-keep class com.android.systemui.tv.TvSystemUIFactory
-keep class * extends com.android.systemui.SystemUI
-keep class * implements com.android.systemui.SystemUI$Injector
diff --git a/packages/SystemUI/res-keyguard/layout/controls_management.xml b/packages/SystemUI/res-keyguard/layout/controls_management.xml
new file mode 100644
index 000000000000..8330258e2456
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/layout/controls_management.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center_horizontal"
+ android:paddingTop="@dimen/controls_management_top_padding"
+ android:paddingStart="@dimen/controls_management_side_padding"
+ android:paddingEnd="@dimen/controls_management_side_padding" >
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ android:textSize="@dimen/controls_title_size"
+ android:textAlignment="center" />
+
+ <TextView
+ android:id="@+id/subtitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/controls_management_titles_margin"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textAlignment="center" />
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/list"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/controls_management_list_margin" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/packages/SystemUI/res-keyguard/values/config.xml b/packages/SystemUI/res-keyguard/values/config.xml
index bde6ed531353..8d9d6ee68c67 100644
--- a/packages/SystemUI/res-keyguard/values/config.xml
+++ b/packages/SystemUI/res-keyguard/values/config.xml
@@ -22,10 +22,4 @@
<!-- Allow the menu hard key to be disabled in LockScreen on some devices [DO NOT TRANSLATE] -->
<bool name="config_disableMenuKeyInLockScreen">false</bool>
-
- <!-- Threshold in micro watts below which a charger is rated as "slow"; 1A @ 5V -->
- <integer name="config_chargingSlowlyThreshold">5000000</integer>
-
- <!-- Threshold in micro watts above which a charger is rated as "fast"; 1.5A @ 5V -->
- <integer name="config_chargingFastThreshold">7500000</integer>
</resources>
diff --git a/packages/SystemUI/res/color/lock_background.xml b/packages/SystemUI/res/color/control_background.xml
index 646fe5dfe712..646fe5dfe712 100644
--- a/packages/SystemUI/res/color/lock_background.xml
+++ b/packages/SystemUI/res/color/control_background.xml
diff --git a/packages/SystemUI/res/color/unknown_foreground.xml b/packages/SystemUI/res/color/control_foreground.xml
index bf028f18a7de..bf028f18a7de 100644
--- a/packages/SystemUI/res/color/unknown_foreground.xml
+++ b/packages/SystemUI/res/color/control_foreground.xml
diff --git a/packages/SystemUI/res/color/thermo_cool_background.xml b/packages/SystemUI/res/color/thermo_cool_background.xml
new file mode 100644
index 000000000000..646fe5dfe712
--- /dev/null
+++ b/packages/SystemUI/res/color/thermo_cool_background.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_enabled="false"
+ android:color="@color/control_default_background" />
+ <item android:color="@color/GM2_blue_50" />
+</selector>
diff --git a/packages/SystemUI/res/color/thermo_cool_foreground.xml b/packages/SystemUI/res/color/thermo_cool_foreground.xml
new file mode 100644
index 000000000000..bf028f18a7de
--- /dev/null
+++ b/packages/SystemUI/res/color/thermo_cool_foreground.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_enabled="false"
+ android:color="@color/control_default_foreground" />
+ <item android:color="@color/GM2_blue_700" />
+ </selector>
diff --git a/packages/SystemUI/res/color/thermo_heat_background.xml b/packages/SystemUI/res/color/thermo_heat_background.xml
new file mode 100644
index 000000000000..6f29ed5f60ac
--- /dev/null
+++ b/packages/SystemUI/res/color/thermo_heat_background.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_enabled="false"
+ android:color="@color/control_default_background" />
+ <item android:color="@color/GM2_red_50" />
+</selector>
diff --git a/packages/SystemUI/res/color/lock_foreground.xml b/packages/SystemUI/res/color/thermo_heat_foreground.xml
index 3e05653bce92..72f4b8d13458 100644
--- a/packages/SystemUI/res/color/lock_foreground.xml
+++ b/packages/SystemUI/res/color/thermo_heat_foreground.xml
@@ -2,5 +2,5 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false"
android:color="@color/control_default_foreground" />
- <item android:color="@color/GM2_blue_700" />
+ <item android:color="@color/GM2_red_700" />
</selector>
diff --git a/packages/SystemUI/res/drawable/auth_dialog_enterprise.xml b/packages/SystemUI/res/drawable/auth_dialog_enterprise.xml
new file mode 100644
index 000000000000..c547c52a4077
--- /dev/null
+++ b/packages/SystemUI/res/drawable/auth_dialog_enterprise.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:pathData="M20,6h-4L16,4c0,-1.11 -0.89,-2 -2,-2h-4c-1.11,0 -2,0.89 -2,2v2L4,6c-1.11,0 -1.99,0.89 -1.99,2L2,19c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,8c0,-1.11 -0.89,-2 -2,-2zM12,15c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM14,6h-4L10,4h4v2z"
+ android:fillColor="?android:attr/colorAccent"/>
+</vector> \ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/control_no_favorites_background.xml b/packages/SystemUI/res/drawable/control_no_favorites_background.xml
index 1e282ad0eec7..947c77b4e39e 100644
--- a/packages/SystemUI/res/drawable/control_no_favorites_background.xml
+++ b/packages/SystemUI/res/drawable/control_no_favorites_background.xml
@@ -17,6 +17,6 @@
*/
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
- <stroke android:width="1dp" android:color="?android:attr/colorBackgroundFloating"/>
+ <stroke android:width="1dp" android:color="@*android:color/foreground_material_dark"/>
<corners android:radius="@dimen/control_corner_radius" />
</shape>
diff --git a/packages/SystemUI/res/drawable/ic_device_unknown_gm2_24px.xml b/packages/SystemUI/res/drawable/ic_device_unknown_gm2_24px.xml
new file mode 100644
index 000000000000..24e063506250
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_device_unknown_gm2_24px.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M12,2l-5.5,9h11L12,2zM12,5.84L13.93,9h-3.87L12,5.84zM17.5,13c-2.49,0 -4.5,2.01 -4.5,4.5s2.01,4.5 4.5,4.5 4.5,-2.01 4.5,-4.5 -2.01,-4.5 -4.5,-4.5zM17.5,20c-1.38,0 -2.5,-1.12 -2.5,-2.5s1.12,-2.5 2.5,-2.5 2.5,1.12 2.5,2.5 -1.12,2.5 -2.5,2.5zM3,21.5h8v-8L3,13.5v8zM5,15.5h4v4L5,19.5v-4z"/>
+</vector>
diff --git a/packages/SystemUI/res/drawable/ic_touch.xml b/packages/SystemUI/res/drawable/ic_touch.xml
new file mode 100644
index 000000000000..4f6698de5251
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_touch.xml
@@ -0,0 +1,26 @@
+<!--
+Copyright (C) 2020 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- maybe need android:fillType="evenOdd" -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M9,7.5V11.24C7.79,10.43 7,9.06 7,7.5C7,5.01 9.01,3 11.5,3C13.99,3 16,5.01 16,7.5C16,9.06 15.21,10.43 14,11.24V7.5C14,6.12 12.88,5 11.5,5C10.12,5 9,6.12 9,7.5ZM14.3,13.61L18.84,15.87C19.37,16.09 19.75,16.63 19.75,17.25C19.75,17.31 19.74,17.38 19.73,17.45L18.98,22.72C18.87,23.45 18.29,24 17.54,24H10.75C10.34,24 9.96,23.83 9.69,23.56L4.75,18.62L5.54,17.82C5.74,17.62 6.02,17.49 6.33,17.49C6.39,17.49 6.4411,17.4989 6.4922,17.5078C6.5178,17.5122 6.5433,17.5167 6.57,17.52L10,18.24V7.5C10,6.67 10.67,6 11.5,6C12.33,6 13,6.67 13,7.5V13.5H13.76C13.95,13.5 14.13,13.54 14.3,13.61Z"
+ />
+</vector>
diff --git a/packages/SystemUI/res/drawable/notif_dungeon_bg_gradient.xml b/packages/SystemUI/res/drawable/notif_dungeon_bg_gradient.xml
new file mode 100644
index 000000000000..e456e2965d21
--- /dev/null
+++ b/packages/SystemUI/res/drawable/notif_dungeon_bg_gradient.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<shape
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <gradient
+ android:angle="90"
+ android:startColor="#ff000000"
+ android:endColor="#00000000"
+ android:type="linear" />
+</shape>
diff --git a/packages/SystemUI/res/drawable/qs_media_background.xml b/packages/SystemUI/res/drawable/qs_media_background.xml
new file mode 100644
index 000000000000..2821e4c28bab
--- /dev/null
+++ b/packages/SystemUI/res/drawable/qs_media_background.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="?android:attr/colorBackgroundFloating" />
+ <corners
+ android:bottomLeftRadius="@dimen/qs_media_corner_radius"
+ android:topLeftRadius="@dimen/qs_media_corner_radius"
+ android:bottomRightRadius="@dimen/qs_media_corner_radius"
+ android:topRightRadius="@dimen/qs_media_corner_radius"
+ />
+</shape> \ No newline at end of file
diff --git a/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml b/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml
index c3fa39e5a87f..c40e47df9a55 100644
--- a/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml
+++ b/packages/SystemUI/res/layout-land/auth_credential_pattern_view.xml
@@ -34,20 +34,15 @@
android:layout_weight="1"/>
<ImageView
- android:layout_width="32dp"
- android:layout_height="32dp"
- android:background="@drawable/auth_dialog_lock"/>
+ android:id="@+id/icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"/>
<TextView
android:id="@+id/title"
- android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginHorizontal="24dp"
- android:layout_marginTop="12dp"
- android:textSize="20sp"
- android:gravity="center"
- android:textColor="?android:attr/textColorPrimary"/>
+ style="@style/TextAppearance.AuthCredential.Title"/>
<TextView
android:id="@+id/subtitle"
@@ -63,17 +58,41 @@
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginHorizontal="24dp"
- android:layout_marginTop="8dp"
- android:gravity="center"
- android:textSize="16sp"
- android:textColor="?android:attr/textColorPrimary"/>
+ style="@style/TextAppearance.AuthCredential.Description"/>
<Space
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center"
+ android:paddingLeft="0dp"
+ android:paddingRight="0dp"
+ android:paddingTop="0dp"
+ android:paddingBottom="16dp"
+ android:clipToPadding="false">
+
+ <FrameLayout
+ android:layout_width="wrap_content"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ style="@style/LockPatternContainerStyle">
+
+ <com.android.internal.widget.LockPatternView
+ android:id="@+id/lockPattern"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center"
+ style="@style/LockPatternStyleBiometricPrompt"/>
+
+ </FrameLayout>
+
<TextView
android:id="@+id/error"
android:layout_width="match_parent"
@@ -90,24 +109,4 @@
</LinearLayout>
- <LinearLayout
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:orientation="vertical"
- android:gravity="center">
-
- <com.android.internal.widget.LockPatternView
- android:id="@+id/lockPattern"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="40dp"
- android:layout_marginRight="40dp"
- android:layout_gravity="center"
- android:clipChildren="false"
- android:clipToPadding="false"
- style="@style/LockPatternStyleBiometricPrompt"/>
-
- </LinearLayout>
-
</com.android.systemui.biometrics.AuthCredentialPatternView> \ No newline at end of file
diff --git a/packages/SystemUI/res/layout/app_item.xml b/packages/SystemUI/res/layout/app_item.xml
deleted file mode 100644
index 83e788731442..000000000000
--- a/packages/SystemUI/res/layout/app_item.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2019 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="?android:attr/selectableItemBackground"
- android:gravity="center_vertical"
- android:minHeight="?android:attr/listPreferredItemHeightSmall"
- android:paddingStart="?android:attr/listPreferredItemPaddingStart"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
-
- <LinearLayout
- android:id="@+id/icon_frame"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:gravity="start|center_vertical"
- android:minWidth="56dp"
- android:orientation="horizontal"
- android:paddingEnd="8dp"
- android:paddingTop="4dp"
- android:paddingBottom="4dp">
- <ImageView
- android:id="@android:id/icon"
- android:layout_width="@dimen/app_icon_size"
- android:layout_height="@dimen/app_icon_size"/>
- </LinearLayout>
-
- <LinearLayout
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:orientation="vertical"
- android:paddingTop="16dp"
- android:paddingBottom="16dp">
-
- <TextView
- android:id="@android:id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:ellipsize="marquee"
- android:fadingEdge="horizontal"
- android:singleLine="true"
- android:textAppearance="?android:attr/textAppearanceListItem"/>
-
- </LinearLayout>
-
- <LinearLayout
- android:id="@android:id/widget_frame"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:gravity="center_vertical|end"
- android:minWidth="64dp"
- android:orientation="vertical"/>
-
-</LinearLayout> \ No newline at end of file
diff --git a/packages/SystemUI/res/layout/auth_credential_password_view.xml b/packages/SystemUI/res/layout/auth_credential_password_view.xml
index 4aed0333e9ca..b14bc7de06c4 100644
--- a/packages/SystemUI/res/layout/auth_credential_password_view.xml
+++ b/packages/SystemUI/res/layout/auth_credential_password_view.xml
@@ -28,20 +28,15 @@
android:layout_weight="1"/>
<ImageView
- android:layout_width="32dp"
- android:layout_height="32dp"
- android:background="@drawable/auth_dialog_lock"/>
+ android:id="@+id/icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"/>
<TextView
android:id="@+id/title"
- android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginHorizontal="24dp"
- android:layout_marginTop="12dp"
- android:textSize="20sp"
- android:gravity="center"
- android:textColor="?android:attr/textColorPrimary"/>
+ style="@style/TextAppearance.AuthCredential.Title"/>
<TextView
android:id="@+id/subtitle"
@@ -57,11 +52,7 @@
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginHorizontal="24dp"
- android:layout_marginTop="8dp"
- android:gravity="center"
- android:textSize="16sp"
- android:textColor="?android:attr/textColorPrimary"/>
+ style="@style/TextAppearance.AuthCredential.Description"/>
<Space
android:layout_width="0dp"
@@ -79,19 +70,15 @@
<EditText
android:id="@+id/lockPassword"
- android:layout_marginBottom="20dp"
- android:layout_marginLeft="100dp"
- android:layout_marginRight="100dp"
android:layout_width="208dp"
android:layout_height="wrap_content"
- android:layout_gravity="center"
+ android:layout_gravity="center_horizontal"
+ android:minHeight="48dp"
android:gravity="center"
android:inputType="textPassword"
android:maxLength="500"
- android:textSize="16sp"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:imeOptions="flagForceAscii"
- style="@style/LockPatternStyleBiometricPrompt"/>
+ android:imeOptions="actionNext|flagNoFullscreen|flagForceAscii"
+ style="@style/TextAppearance.AuthCredential.PasswordEntry"/>
<Space
android:layout_width="0dp"
diff --git a/packages/SystemUI/res/layout/auth_credential_pattern_view.xml b/packages/SystemUI/res/layout/auth_credential_pattern_view.xml
index c9edcd606277..eda5ecbf7f8c 100644
--- a/packages/SystemUI/res/layout/auth_credential_pattern_view.xml
+++ b/packages/SystemUI/res/layout/auth_credential_pattern_view.xml
@@ -28,20 +28,15 @@
android:layout_weight="1"/>
<ImageView
- android:layout_width="32dp"
- android:layout_height="32dp"
- android:background="@drawable/auth_dialog_lock"/>
+ android:id="@+id/icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"/>
<TextView
android:id="@+id/title"
- android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginHorizontal="24dp"
- android:layout_marginTop="12dp"
- android:textSize="20sp"
- android:gravity="center"
- android:textColor="?android:attr/textColorPrimary"/>
+ style="@style/TextAppearance.AuthCredential.Title"/>
<TextView
android:id="@+id/subtitle"
@@ -57,37 +52,49 @@
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginHorizontal="24dp"
- android:layout_marginTop="8dp"
- android:gravity="center"
- android:textSize="16sp"
- android:textColor="?android:attr/textColorPrimary"/>
+ style="@style/TextAppearance.AuthCredential.Description"/>
<Space
android:layout_width="0dp"
android:layout_height="0dp"
- android:layout_weight="3"/>
+ android:layout_weight="1"/>
- <TextView
- android:id="@+id/error"
+ <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginHorizontal="24dp"
- android:textSize="16sp"
+ android:orientation="vertical"
android:gravity="center"
- android:textColor="?android:attr/colorError"/>
+ android:paddingLeft="0dp"
+ android:paddingRight="0dp"
+ android:paddingTop="0dp"
+ android:paddingBottom="16dp"
+ android:clipToPadding="false">
- <com.android.internal.widget.LockPatternView
- android:id="@+id/lockPattern"
- android:layout_marginBottom="20dp"
- android:layout_marginLeft="40dp"
- android:layout_marginRight="40dp"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:clipChildren="false"
- android:clipToPadding="false"
- style="@style/LockPatternStyleBiometricPrompt"/>
+ <FrameLayout
+ android:layout_width="wrap_content"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ style="@style/LockPatternContainerStyle">
+
+ <com.android.internal.widget.LockPatternView
+ android:id="@+id/lockPattern"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center"
+ style="@style/LockPatternStyleBiometricPrompt"/>
+
+ </FrameLayout>
+
+ <TextView
+ android:id="@+id/error"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginHorizontal="24dp"
+ android:textSize="16sp"
+ android:gravity="center"
+ android:textColor="?android:attr/colorError"/>
+
+ </LinearLayout>
<Space
android:layout_width="0dp"
diff --git a/packages/SystemUI/res/layout/control_item.xml b/packages/SystemUI/res/layout/control_item.xml
deleted file mode 100644
index 85701aaca41d..000000000000
--- a/packages/SystemUI/res/layout/control_item.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2020 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<androidx.constraintlayout.widget.ConstraintLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="100dp"
- android:padding="15dp"
- android:clickable="true"
- android:focusable="true">
-
- <ImageView
- android:id="@+id/icon"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
-
- <TextView
- android:id="@+id/status"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="12sp"
- android:textColor="?android:attr/textColorPrimary"
- android:fontFamily="@*android:string/config_bodyFontFamily"
- android:paddingLeft="3dp"
- app:layout_constraintBottom_toBottomOf="@+id/icon"
- app:layout_constraintStart_toEndOf="@+id/icon" />
-
- <TextView
- android:id="@+id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="18sp"
- android:textColor="?android:attr/textColorPrimary"
- android:fontFamily="@*android:string/config_headlineFontFamily"
- app:layout_constraintBottom_toTopOf="@+id/subtitle"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/icon" />
-
- <TextView
- android:id="@+id/subtitle"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="16sp"
- android:textColor="?android:attr/textColorSecondary"
- android:fontFamily="@*android:string/config_headlineFontFamily"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent" />
-
- <CheckBox
- android:id="@+id/favorite"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintBottom_toBottomOf="parent"/>
-</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/packages/SystemUI/res/layout/controls_app_item.xml b/packages/SystemUI/res/layout/controls_app_item.xml
new file mode 100644
index 000000000000..d54cd6db867a
--- /dev/null
+++ b/packages/SystemUI/res/layout/controls_app_item.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="?android:attr/selectableItemBackground">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="start|top"
+ android:gravity="center_vertical"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:layout_marginBottom="@dimen/controls_app_bottom_margin">
+
+ <FrameLayout
+ android:id="@+id/icon_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="start|center_vertical"
+ android:minWidth="56dp"
+ android:orientation="horizontal"
+ android:paddingTop="@dimen/controls_app_icon_frame_top_padding"
+ android:paddingBottom="@dimen/controls_app_icon_frame_top_padding"
+ android:paddingEnd="@dimen/controls_app_icon_frame_side_padding"
+ android:paddingStart="@dimen/controls_app_icon_frame_side_padding" >
+
+ <ImageView
+ android:id="@android:id/icon"
+ android:layout_width="@dimen/controls_app_icon_size"
+ android:layout_height="@dimen/controls_app_icon_size" />
+ </FrameLayout>
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:orientation="vertical"
+ android:paddingTop="@dimen/controls_app_text_padding"
+ android:paddingBottom="@dimen/controls_app_text_padding">
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:fadingEdge="horizontal"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="?android:attr/textColorPrimary"/>
+
+ <TextView
+ android:id="@+id/favorites"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:fadingEdge="horizontal"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/controls_app_divider_height"
+ android:layout_gravity="center_horizontal|bottom"
+ android:layout_marginStart="@dimen/controls_app_divider_side_margin"
+ android:layout_marginEnd="@dimen/controls_app_divider_side_margin"
+ android:background="?android:attr/listDivider" />
+</FrameLayout> \ No newline at end of file
diff --git a/packages/SystemUI/res/layout/controls_base_item.xml b/packages/SystemUI/res/layout/controls_base_item.xml
index 3c4c61e30bc1..68c824698b2d 100644
--- a/packages/SystemUI/res/layout/controls_base_item.xml
+++ b/packages/SystemUI/res/layout/controls_base_item.xml
@@ -23,8 +23,8 @@
android:padding="@dimen/control_padding"
android:clickable="true"
android:focusable="true"
- android:layout_marginLeft="3dp"
- android:layout_marginRight="3dp"
+ android:layout_marginLeft="@dimen/control_base_item_margin"
+ android:layout_marginRight="@dimen/control_base_item_margin"
android:background="@drawable/control_background">
<ImageView
@@ -38,10 +38,8 @@
android:id="@+id/status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textSize="@dimen/control_status_normal"
- android:textColor="?android:attr/textColorPrimary"
- android:fontFamily="@*android:string/config_bodyFontFamily"
- android:paddingLeft="3dp"
+ android:textAppearance="@style/TextAppearance.Control.Status"
+ android:paddingStart="@dimen/control_status_padding"
app:layout_constraintBottom_toBottomOf="@+id/icon"
app:layout_constraintStart_toEndOf="@+id/icon" />
@@ -49,10 +47,8 @@
android:id="@+id/status_extra"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textSize="@dimen/control_status_normal"
- android:textColor="?android:attr/textColorPrimary"
- android:fontFamily="@*android:string/config_bodyFontFamily"
- android:paddingLeft="3dp"
+ android:textAppearance="@style/TextAppearance.Control.Status"
+ android:paddingStart="@dimen/control_status_padding"
app:layout_constraintBottom_toBottomOf="@+id/icon"
app:layout_constraintStart_toEndOf="@+id/status" />
@@ -60,9 +56,7 @@
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textSize="18sp"
- android:textColor="?android:attr/textColorPrimary"
- android:fontFamily="@*android:string/config_headlineFontFamily"
+ android:textAppearance="@style/TextAppearance.Control.Title"
app:layout_constraintBottom_toTopOf="@+id/subtitle"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/icon" />
@@ -71,9 +65,15 @@
android:id="@+id/subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textSize="16sp"
- android:textColor="?android:attr/textColorSecondary"
- android:fontFamily="@*android:string/config_headlineFontFamily"
+ android:textAppearance="@style/TextAppearance.Control.Subtitle"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
+
+ <CheckBox
+ android:id="@+id/favorite"
+ android:visibility="gone"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/packages/SystemUI/res/layout/controls_no_favorites.xml b/packages/SystemUI/res/layout/controls_no_favorites.xml
index 79672caed61b..096f1f49aaba 100644
--- a/packages/SystemUI/res/layout/controls_no_favorites.xml
+++ b/packages/SystemUI/res/layout/controls_no_favorites.xml
@@ -12,7 +12,7 @@
android:paddingBottom="40dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
- android:textColor="?android:attr/textColorPrimary"
+ android:textColor="@*android:color/foreground_material_dark"
android:fontFamily="@*android:string/config_headlineFontFamily"
android:background="@drawable/control_no_favorites_background"/>
</merge>
diff --git a/packages/SystemUI/res/layout/controls_row.xml b/packages/SystemUI/res/layout/controls_row.xml
index 13a6b36accd3..4cc461a28187 100644
--- a/packages/SystemUI/res/layout/controls_row.xml
+++ b/packages/SystemUI/res/layout/controls_row.xml
@@ -16,7 +16,7 @@
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- orientation="horizontal"
+ android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/control_spacing" />
diff --git a/packages/SystemUI/res/layout/controls_with_favorites.xml b/packages/SystemUI/res/layout/controls_with_favorites.xml
index 7804fe6b6272..40b2476941c2 100644
--- a/packages/SystemUI/res/layout/controls_with_favorites.xml
+++ b/packages/SystemUI/res/layout/controls_with_favorites.xml
@@ -4,7 +4,8 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:paddingBottom="20dp">
<TextView
android:text="@string/quick_controls_title"
@@ -12,18 +13,24 @@
android:layout_height="wrap_content"
android:singleLine="true"
android:gravity="center"
- android:textSize="25dp"
- android:textColor="?android:attr/textColorPrimary"
+ android:textSize="25sp"
+ android:textColor="@*android:color/foreground_material_dark"
android:fontFamily="@*android:string/config_headlineFontFamily"
- app:layout_constraintLeft_toLeftOf="parent"
- app:layout_constraintRight_toRightOf="parent"/>
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
<ImageView
android:id="@+id/controls_more"
android:src="@drawable/ic_more_vert"
android:layout_width="34dp"
android:layout_height="24dp"
android:layout_marginEnd="10dp"
- app:layout_constraintEnd_toEndOf="parent"/>
+ android:tint="@*android:color/foreground_material_dark"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/packages/SystemUI/res/layout/foreground_service_dungeon.xml b/packages/SystemUI/res/layout/foreground_service_dungeon.xml
new file mode 100644
index 000000000000..d4e98e217213
--- /dev/null
+++ b/packages/SystemUI/res/layout/foreground_service_dungeon.xml
@@ -0,0 +1,61 @@
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<com.android.systemui.statusbar.notification.row.ForegroundServiceDungeonView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/foreground_service_dungeon"
+ android:layout_width="@dimen/qs_panel_width"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal|bottom"
+ android:visibility="visible"
+>
+ <LinearLayout
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:orientation="vertical"
+ android:gravity="bottom"
+ android:visibility="visible"
+ android:background="@drawable/notif_dungeon_bg_gradient"
+ >
+
+ <!-- divider view -->
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:background="@color/GM2_grey_200"
+ android:visibility="visible"
+ />
+
+ <TextView
+ android:id="@+id/dungeon_title"
+ android:layout_height="48dp"
+ android:layout_width="match_parent"
+ android:padding="8dp"
+ android:text="Apps active in background"
+ android:textColor="@color/GM2_grey_200"
+ />
+
+ <!-- List containing the actual foreground service notifications -->
+ <LinearLayout
+ android:id="@+id/entry_list"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="bottom"
+ android:orientation="vertical" >
+ </LinearLayout>
+
+ </LinearLayout>
+</com.android.systemui.statusbar.notification.row.ForegroundServiceDungeonView>
diff --git a/packages/SystemUI/res/layout/foreground_service_dungeon_row.xml b/packages/SystemUI/res/layout/foreground_service_dungeon_row.xml
new file mode 100644
index 000000000000..a6f1638a1d89
--- /dev/null
+++ b/packages/SystemUI/res/layout/foreground_service_dungeon_row.xml
@@ -0,0 +1,43 @@
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<com.android.systemui.statusbar.notification.row.DungeonRow
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/foreground_service_dungeon_row"
+ android:layout_width="match_parent"
+ android:layout_height="48dp"
+ android:padding="8dp"
+ android:clickable="true"
+ android:orientation="horizontal" >
+
+ <com.android.systemui.statusbar.StatusBarIconView
+ android:id="@+id/icon"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:padding="4dp" />
+
+ <TextView
+ android:id="@+id/app_name"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:layout_height="wrap_content"
+ android:paddingStart="4dp"
+ android:gravity="center_vertical"
+ android:layout_gravity="center_vertical"
+ android:textColor="@color/GM2_grey_200"
+ />
+
+</com.android.systemui.statusbar.notification.row.DungeonRow>
diff --git a/packages/SystemUI/res/layout/global_actions_grid_v2.xml b/packages/SystemUI/res/layout/global_actions_grid_v2.xml
index 674148495478..f90012d790e0 100644
--- a/packages/SystemUI/res/layout/global_actions_grid_v2.xml
+++ b/packages/SystemUI/res/layout/global_actions_grid_v2.xml
@@ -96,18 +96,18 @@
app:layout_constraintTop_toBottomOf="@id/global_actions_view">
<FrameLayout
- android:translationY="@dimen/global_actions_plugin_offset"
android:id="@+id/global_actions_panel_container"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
- android:translationY="@dimen/global_actions_plugin_offset"
android:id="@+id/global_actions_controls"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
+ android:layout_marginRight="@dimen/global_actions_grid_horizontal_padding"
+ android:layout_marginLeft="@dimen/global_actions_grid_horizontal_padding"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/global_actions_panel">
diff --git a/packages/SystemUI/res/layout/home_controls.xml b/packages/SystemUI/res/layout/home_controls.xml
deleted file mode 100644
index 69a0e872dc8c..000000000000
--- a/packages/SystemUI/res/layout/home_controls.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/home_controls_layout"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="@integer/notification_panel_layout_gravity"
- android:visibility="gone"
- android:padding="8dp"
- android:layout_margin="5dp"
- android:background="?android:attr/colorBackgroundFloating">
-</FrameLayout>
diff --git a/packages/SystemUI/res/layout/media_carousel.xml b/packages/SystemUI/res/layout/media_carousel.xml
index e91f840fe238..149446c55fc5 100644
--- a/packages/SystemUI/res/layout/media_carousel.xml
+++ b/packages/SystemUI/res/layout/media_carousel.xml
@@ -19,7 +19,7 @@
<HorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="@dimen/qs_media_height"
+ android:layout_height="wrap_content"
android:padding="@dimen/qs_media_padding"
android:scrollbars="none"
android:visibility="gone"
diff --git a/packages/SystemUI/res/layout/qqs_media_panel.xml b/packages/SystemUI/res/layout/qqs_media_panel.xml
index 1189371fc7f1..403b5dc3a427 100644
--- a/packages/SystemUI/res/layout/qqs_media_panel.xml
+++ b/packages/SystemUI/res/layout/qqs_media_panel.xml
@@ -23,20 +23,25 @@
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
- android:padding="10dp"
+ android:paddingTop="16dp"
+ android:paddingLeft="16dp"
+ android:paddingRight="16dp"
+ android:paddingBottom="12dp"
+ android:background="@drawable/qs_media_background"
>
- <!-- Top line: icon + artist name -->
+ <!-- Top line: icon + song name -->
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clipChildren="false"
android:gravity="center"
+ android:layout_marginBottom="12dp"
>
<com.android.internal.widget.CachingIconView
android:id="@+id/icon"
- android:layout_width="15dp"
- android:layout_height="15dp"
+ android:layout_width="14dp"
+ android:layout_height="14dp"
android:layout_marginEnd="5dp"
/>
<TextView
@@ -48,15 +53,6 @@
/>
</LinearLayout>
- <!-- Second line: song name -->
- <TextView
- android:id="@+id/header_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:singleLine="true"
- android:fontFamily="@*android:string/config_bodyFontFamily"
- android:gravity="center"/>
-
<!-- Bottom section: controls -->
<LinearLayout
android:id="@+id/media_actions"
@@ -70,8 +66,6 @@
style="@android:style/Widget.Material.Button.Borderless.Small"
android:layout_width="48dp"
android:layout_height="48dp"
- android:padding="8dp"
- android:layout_marginEnd="2dp"
android:gravity="center"
android:visibility="gone"
android:id="@+id/action0"
@@ -80,8 +74,6 @@
style="@android:style/Widget.Material.Button.Borderless.Small"
android:layout_width="48dp"
android:layout_height="48dp"
- android:padding="8dp"
- android:layout_marginEnd="2dp"
android:gravity="center"
android:visibility="gone"
android:id="@+id/action1"
@@ -90,8 +82,6 @@
style="@android:style/Widget.Material.Button.Borderless.Small"
android:layout_width="48dp"
android:layout_height="48dp"
- android:padding="8dp"
- android:layout_marginEnd="2dp"
android:gravity="center"
android:visibility="gone"
android:id="@+id/action2"
diff --git a/packages/SystemUI/res/layout/qs_footer_impl.xml b/packages/SystemUI/res/layout/qs_footer_impl.xml
index a02962e5e1e6..0c9ce3938420 100644
--- a/packages/SystemUI/res/layout/qs_footer_impl.xml
+++ b/packages/SystemUI/res/layout/qs_footer_impl.xml
@@ -130,9 +130,10 @@
</LinearLayout>
<View
android:id="@+id/qs_drag_handle_view"
- android:layout_width="24dp"
+ android:layout_width="48dp"
android:layout_height="4dp"
- android:layout_marginBottom="16dp"
+ android:layout_marginTop="8dp"
+ android:layout_marginBottom="8dp"
android:layout_gravity="center_horizontal|bottom"
android:background="@drawable/qs_footer_drag_handle" />
diff --git a/packages/SystemUI/res/layout/qs_media_panel.xml b/packages/SystemUI/res/layout/qs_media_panel.xml
index dd422766c153..22303dc1d8d2 100644
--- a/packages/SystemUI/res/layout/qs_media_panel.xml
+++ b/packages/SystemUI/res/layout/qs_media_panel.xml
@@ -23,50 +23,116 @@
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal|fill_vertical"
- android:padding="10dp"
+ android:padding="16dp"
+ android:background="@drawable/qs_media_background"
>
- <!-- placeholder for notification header -->
+ <!-- Header section -->
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/header"
- android:padding="3dp"
- android:layout_marginEnd="-12dp"
+ android:layout_marginBottom="16dp"
+ >
+
+ <ImageView
+ android:id="@+id/album_art"
+ android:layout_width="@dimen/qs_media_album_size"
+ android:layout_height="@dimen/qs_media_album_size"
+ android:layout_marginRight="16dp"
+ android:layout_weight="0"
/>
- <!-- Top line: artist name -->
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:gravity="center"
+ <LinearLayout
+ android:orientation="vertical"
+ android:layout_width="0dp"
+ android:layout_height="@dimen/qs_media_album_size"
+ android:layout_weight="1"
>
- <TextView
- android:id="@+id/header_title"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ >
+ <com.android.internal.widget.CachingIconView
+ android:id="@+id/icon"
+ android:layout_width="16dp"
+ android:layout_height="16dp"
+ android:layout_marginEnd="5dp"
+ />
+ <TextView
+ android:id="@+id/app_name"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="14sp"
+ android:singleLine="true"
+ />
+ </LinearLayout>
+
+ <!-- Song name -->
+ <TextView
+ android:id="@+id/header_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:singleLine="true"
+ android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
+ android:textSize="18sp"
+ android:paddingBottom="6dp"
+ android:gravity="center"/>
+
+ <!-- Artist name -->
+ <TextView
+ android:id="@+id/header_artist"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:fontFamily="@*android:string/config_bodyFontFamily"
+ android:textSize="14sp"
+ android:singleLine="true"
+ />
+ </LinearLayout>
+
+ <!-- Output chip -->
+ <LinearLayout
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
- android:singleLine="true"
- />
+ android:orientation="horizontal"
+ android:visibility="gone"
+ android:paddingTop="6dp"
+ android:paddingBottom="6dp"
+ android:paddingLeft="12dp"
+ android:paddingRight="12dp"
+ android:gravity="center"
+ android:id="@+id/media_seamless"
+ android:background="@*android:drawable/media_seamless_background"
+ android:layout_weight="1"
+ >
+ <ImageView
+ android:layout_width="@dimen/qs_seamless_icon_size"
+ android:layout_height="@dimen/qs_seamless_icon_size"
+ android:src="@*android:drawable/ic_media_seamless"
+ android:layout_marginRight="8dp"
+ android:id="@+id/media_seamless_image"
+ />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:fontFamily="@*android:string/config_bodyFontFamily"
+ android:text="@*android:string/ext_media_seamless_action"
+ android:textSize="14sp"
+ android:id="@+id/media_seamless_text"
+ android:singleLine="true"
+ />
+ </LinearLayout>
</LinearLayout>
- <!-- Second line: song name -->
- <TextView
- android:id="@+id/header_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:singleLine="true"
- android:fontFamily="@*android:string/config_bodyFontFamily"
- android:gravity="center"/>
-
- <!-- Bottom section: controls -->
+ <!-- Controls -->
<LinearLayout
android:id="@+id/media_actions"
android:orientation="horizontal"
android:layoutDirection="ltr"
- android:layout_width="wrap_content"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
>
@@ -74,8 +140,8 @@
style="@android:style/Widget.Material.Button.Borderless.Small"
android:layout_width="48dp"
android:layout_height="48dp"
- android:padding="8dp"
- android:layout_marginEnd="2dp"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
android:gravity="center"
android:visibility="gone"
android:id="@+id/action0"
@@ -84,18 +150,18 @@
style="@android:style/Widget.Material.Button.Borderless.Small"
android:layout_width="48dp"
android:layout_height="48dp"
- android:padding="8dp"
- android:layout_marginEnd="2dp"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
android:gravity="center"
android:visibility="gone"
android:id="@+id/action1"
/>
<ImageButton
style="@android:style/Widget.Material.Button.Borderless.Small"
- android:layout_width="48dp"
- android:layout_height="48dp"
- android:padding="8dp"
- android:layout_marginEnd="2dp"
+ android:layout_width="52dp"
+ android:layout_height="52dp"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
android:gravity="center"
android:visibility="gone"
android:id="@+id/action2"
@@ -104,8 +170,8 @@
style="@android:style/Widget.Material.Button.Borderless.Small"
android:layout_width="48dp"
android:layout_height="48dp"
- android:padding="8dp"
- android:layout_marginEnd="2dp"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
android:gravity="center"
android:visibility="gone"
android:id="@+id/action3"
@@ -114,8 +180,8 @@
style="@android:style/Widget.Material.Button.Borderless.Small"
android:layout_width="48dp"
android:layout_height="48dp"
- android:padding="8dp"
- android:layout_marginEnd="2dp"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
android:gravity="center"
android:visibility="gone"
android:id="@+id/action4"
diff --git a/packages/SystemUI/res/layout/screen_record_dialog.xml b/packages/SystemUI/res/layout/screen_record_dialog.xml
new file mode 100644
index 000000000000..df576d83323f
--- /dev/null
+++ b/packages/SystemUI/res/layout/screen_record_dialog.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2020 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:background="@drawable/rounded_bg_full">
+
+ <!-- Header -->
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:gravity="center"
+ android:padding="@dimen/screenrecord_dialog_padding">
+ <ImageView
+ android:layout_width="@dimen/screenrecord_logo_size"
+ android:layout_height="@dimen/screenrecord_logo_size"
+ android:src="@drawable/ic_screenrecord"
+ android:tint="@color/GM2_red_500"
+ android:layout_marginBottom="@dimen/screenrecord_dialog_padding"/>
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ android:text="@string/screenrecord_start_label"/>
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/screenrecord_description"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:paddingTop="@dimen/screenrecord_dialog_padding"
+ android:paddingBottom="@dimen/screenrecord_dialog_padding"/>
+
+ <!-- Options -->
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <ImageView
+ android:layout_width="@dimen/screenrecord_logo_size"
+ android:layout_height="@dimen/screenrecord_logo_size"
+ android:src="@drawable/ic_mic_26dp"
+ android:tint="@color/GM2_grey_700"
+ android:layout_gravity="center"
+ android:layout_weight="0"
+ android:layout_marginRight="@dimen/screenrecord_dialog_padding"/>
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:layout_weight="1">
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center_vertical"
+ android:text="@string/screenrecord_audio_label"
+ android:textColor="?android:attr/textColorPrimary"
+ android:textAppearance="?android:attr/textAppearanceMedium"/>
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:id="@+id/audio_type"
+ android:text="@string/screenrecord_mic_label"
+ android:textAppearance="?android:attr/textAppearanceSmall"/>
+ </LinearLayout>
+ <Switch
+ android:layout_width="wrap_content"
+ android:layout_height="48dp"
+ android:layout_weight="0"
+ android:id="@+id/screenrecord_audio_switch"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+ <ImageView
+ android:layout_width="@dimen/screenrecord_logo_size"
+ android:layout_height="@dimen/screenrecord_logo_size"
+ android:src="@drawable/ic_touch"
+ android:tint="@color/GM2_grey_700"
+ android:layout_gravity="center"
+ android:layout_marginRight="@dimen/screenrecord_dialog_padding"/>
+ <Switch
+ android:layout_width="match_parent"
+ android:layout_height="48dp"
+ android:id="@+id/screenrecord_taps_switch"
+ android:text="@string/screenrecord_taps_label"
+ android:textColor="?android:attr/textColorPrimary"
+ android:textAppearance="?android:attr/textAppearanceMedium"/>
+ </LinearLayout>
+ </LinearLayout>
+
+ <!-- hr -->
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:background="@color/GM2_grey_300"/>
+
+ <!-- Buttons -->
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:padding="@dimen/screenrecord_dialog_padding">
+ <Button
+ android:id="@+id/button_cancel"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_weight="0"
+ android:layout_gravity="start"
+ android:text="@string/cancel"
+ style="@android:style/Widget.DeviceDefault.Button.Borderless.Colored"/>
+ <Space
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"/>
+ <Button
+ android:id="@+id/button_start"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_weight="0"
+ android:layout_gravity="end"
+ android:text="@string/screenrecord_start"
+ style="@android:style/Widget.DeviceDefault.Button.Colored"/>
+ </LinearLayout>
+</LinearLayout> \ No newline at end of file
diff --git a/packages/SystemUI/res/layout/status_bar.xml b/packages/SystemUI/res/layout/status_bar.xml
index 76c1045ef1dd..4fae3c500a45 100644
--- a/packages/SystemUI/res/layout/status_bar.xml
+++ b/packages/SystemUI/res/layout/status_bar.xml
@@ -42,32 +42,6 @@
android:visibility="gone"
/>
- <LinearLayout
- android:id="@+id/divider_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="horizontal"
- android:background="@color/transparent" >
-
- <android.widget.Space
- android:layout_height="match_parent"
- android:layout_width="0dp"
- android:layout_weight="@integer/qqs_split_fraction" />
-
- <com.android.systemui.DarkReceiverImpl
- android:id="@+id/divider"
- android:layout_height="match_parent"
- android:layout_width="1dp"
- android:layout_marginTop="4dp"
- android:layout_marginBottom="4dp" />
-
- <android.widget.Space
- android:layout_height="match_parent"
- android:layout_width="0dp"
- android:layout_weight="@integer/qs_split_fraction" />
-
- </LinearLayout>
-
<LinearLayout android:id="@+id/status_bar_contents"
android:layout_width="match_parent"
android:layout_height="match_parent"
diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml
index 479f255b7e44..115b4a86b86d 100644
--- a/packages/SystemUI/res/layout/status_bar_expanded.xml
+++ b/packages/SystemUI/res/layout/status_bar_expanded.xml
@@ -55,9 +55,6 @@
android:clipChildren="false"
systemui:viewType="com.android.systemui.plugins.qs.QS" />
- <!-- Temporary area to test out home controls -->
- <include layout="@layout/home_controls" />
-
<com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout
android:id="@+id/notification_stack_scroller"
android:layout_marginTop="@dimen/notification_panel_margin_top"
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 823685e15807..478a93de1427 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Vergrotingoorleggervenster"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Vergrotingvenster"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Vergrotingvensterkontroles"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Vinnige kontroles"</string>
</resources>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index c3248249ebb6..08a655a67faa 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"የማጉያ ንብርብር መስኮት"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"የማጉያ መስኮት"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"የማጉያ መስኮት መቆጣጠሪያዎች"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"ፈጣን መቆጣጠሪያዎች"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 113d705d7f31..6ceb6cdca3bc 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -984,4 +984,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"نافذة تراكب التكبير"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"نافذة التكبير"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"عناصر التحكم في نافذة التكبير"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-as/strings.xml b/packages/SystemUI/res/values-as/strings.xml
index 975d639c2ea4..ffefb48438c5 100644
--- a/packages/SystemUI/res/values-as/strings.xml
+++ b/packages/SystemUI/res/values-as/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"বিবৰ্ধন অ’ভাৰলে’ৰ ৱিণ্ড’"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"বিবৰ্ধন ৱিণ্ড’"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"বিবৰ্ধন ৱিণ্ড’ৰ নিয়ন্ত্ৰণসমূহ"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml
index d98d939da47a..2caffffc7ca1 100644
--- a/packages/SystemUI/res/values-az/strings.xml
+++ b/packages/SystemUI/res/values-az/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Böyütmə Üst-üstə Düşən Pəncərəsi"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Böyütmə Pəncərəsi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Böyütmə Pəncərəsi Kontrolları"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
index ff03bb9726ae..aaa35ffd7058 100644
--- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml
+++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml
@@ -969,4 +969,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Preklopni prozor za uvećanje"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Prozor za uvećanje"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrole prozora za uvećanje"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Brze kontrole"</string>
</resources>
diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml
index 1ebbb5ea100c..619fd1c79a26 100644
--- a/packages/SystemUI/res/values-be/strings.xml
+++ b/packages/SystemUI/res/values-be/strings.xml
@@ -976,4 +976,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Акно-накладка з павелічэннем"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Акно павелічэння"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Налады акна павелічэння"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 5cfea60f901f..99c1fecef526 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Прозорец с наслагване за ниво на мащаба"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Прозорец за ниво на мащаба"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Контроли за прозореца за ниво на мащаба"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Бързи контроли"</string>
</resources>
diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml
index f1e49ce57ce8..1327cf40fa55 100644
--- a/packages/SystemUI/res/values-bn/strings.xml
+++ b/packages/SystemUI/res/values-bn/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"ওভারলে উইন্ডো বড় করে দেখা"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"উইন্ডো বড় করে দেখা"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"উইন্ডো কন্ট্রোল বড় করে দেখা"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml
index cabe87f4a0b0..7bce70a92485 100644
--- a/packages/SystemUI/res/values-bs/strings.xml
+++ b/packages/SystemUI/res/values-bs/strings.xml
@@ -971,4 +971,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Preklopni prozor za uvećavanje"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Prozor za uvećavanje"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrole prozora za uvećavanje"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Brze kontrole"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index 3e257952050a..5597f51066e2 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Finestra superposada d\'ampliació"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Finestra d\'ampliació"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Finestra de controls d\'ampliació"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Controls ràpids"</string>
</resources>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index 3c85880eaaf8..a608c5b77735 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -974,4 +974,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Překryvné zvětšovací okno"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Zvětšovací okno"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Ovládací prvky zvětšovacího okna"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Rychlé ovládací prvky"</string>
</resources>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index f2ffdaac0e37..9fb778354bda 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Vindue med overlejret forstørrelse"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Vindue med forstørrelse"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Vindue med forstørrelsesstyring"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Hurtig betjening"</string>
</resources>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index 58caef2b46bb..9d83e9cf55e7 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -968,4 +968,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Overlay-Vergrößerungsfenster"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Vergrößerungsfenster"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Einstellungen für Vergrößerungsfenster"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index d3686c834882..b94d10c2a741 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Παράθυρο επικάλυψης μεγέθυνσης"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Παράθυρο μεγέθυνσης"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Στοιχεία ελέγχου παραθύρου μεγέθυνσης"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Στοιχεία γρήγορου ελέγχου"</string>
</resources>
diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml
index 4f61daa2bf18..df2496951be7 100644
--- a/packages/SystemUI/res/values-en-rAU/strings.xml
+++ b/packages/SystemUI/res/values-en-rAU/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Magnification overlay window"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification window controls"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Quick controls"</string>
</resources>
diff --git a/packages/SystemUI/res/values-en-rCA/strings.xml b/packages/SystemUI/res/values-en-rCA/strings.xml
index 34a2f1975d75..2d087c92b2d6 100644
--- a/packages/SystemUI/res/values-en-rCA/strings.xml
+++ b/packages/SystemUI/res/values-en-rCA/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Magnification overlay window"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification window controls"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Quick controls"</string>
</resources>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 4f61daa2bf18..df2496951be7 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Magnification overlay window"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification window controls"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Quick controls"</string>
</resources>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index 4f61daa2bf18..df2496951be7 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Magnification overlay window"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Magnification window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Magnification window controls"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Quick controls"</string>
</resources>
diff --git a/packages/SystemUI/res/values-en-rXC/strings.xml b/packages/SystemUI/res/values-en-rXC/strings.xml
index 2bb51311aa0a..9d4e1622ede4 100644
--- a/packages/SystemUI/res/values-en-rXC/strings.xml
+++ b/packages/SystemUI/res/values-en-rXC/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎‏‎‎‎‏‎‎‏‏‏‎‏‎‎‎‎‏‏‏‎‏‏‏‏‎‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎Magnification Overlay Window‎‏‎‎‏‎"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‎‎‎‎‏‏‎‎‎‎‏‎‏‎‏‏‏‎‏‎‏‎‎‎‎‎‎‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‎‏‎Magnification Window‎‏‎‎‏‎"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‎‎‏‎‎‏‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎Magnification Window Controls‎‏‎‎‏‎"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‏‏‎‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‎‏‎‎‎‏‏‎‎‏‎‎‏‎‏‎Quick Controls‎‏‎‎‏‎"</string>
</resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index e2bf6efa538e..33689a1ac7d2 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Ventana superpuesta de ampliación"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Ventana de ampliación"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controles de ampliación de la ventana"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Controles rápidos"</string>
</resources>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 40d7fe3bdf25..458df31e2231 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Ventana de superposición de ampliación"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Ventana de ampliación"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Ventana de controles de ampliación"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Controles rápidos"</string>
</resources>
diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml
index d8f546ce48d4..4729a0d6787a 100644
--- a/packages/SystemUI/res/values-et/strings.xml
+++ b/packages/SystemUI/res/values-et/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Suurendamisakna ülekate"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Suurendamisaken"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Suurendamisakna juhtelemendid"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml
index 9dceb5fe3f05..470a410aa88d 100644
--- a/packages/SystemUI/res/values-eu/strings.xml
+++ b/packages/SystemUI/res/values-eu/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Lupa-leiho gainjarria"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Lupa-leihoa"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Lupa-leihoaren aukerak"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Kontrol bizkorrak"</string>
</resources>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index d27b420c0e9c..ae85a260eaf3 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"پنجره همپوشانی بزرگ‌نمایی"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"پنجره بزرگ‌نمایی"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"کنترل‌های پنجره بزرگ‌نمایی"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index cf01efd933d0..da22e1c502e5 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Suurennuksen peittoikkuna"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Suurennusikkuna"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Suurennusikkunan ohjaimet"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Pikasäätimet"</string>
</resources>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index 5f7a358239c7..d5d3f56286cb 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Fenêtre d\'agrandissement superposée"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Fenêtre d\'agrandissement"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Commandes pour la fenêtre d\'agrandissement"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index 3c12f668d2b9..5c5d353e4103 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Fenêtre de superposition de l\'agrandissement"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Fenêtre d\'agrandissement"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Fenêtre des commandes d\'agrandissement"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml
index 0c444e48aee3..2c0eef659a60 100644
--- a/packages/SystemUI/res/values-gl/strings.xml
+++ b/packages/SystemUI/res/values-gl/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Ampliación da ventá de superposición"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Ventá de superposición"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controis de ampliación da ventá"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml
index 9dde523d9a89..df4254ca4e0f 100644
--- a/packages/SystemUI/res/values-gu/strings.xml
+++ b/packages/SystemUI/res/values-gu/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"વિસ્તૃતીકરણ ઓવરલે વિંડો"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"વિસ્તૃતીકરણ વિંડો"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"વિસ્તૃતીકરણ વિંડોના નિયંત્રણો"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index 5522605cd0f4..b62a45eb7747 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -390,8 +390,8 @@
<string name="quick_settings_dark_mode_secondary_label_battery_saver" msgid="4990712734503013251">"बैटरी सेवर"</string>
<string name="quick_settings_dark_mode_secondary_label_on_at_sunset" msgid="6017379738102015710">"शाम को चालू होगा"</string>
<string name="quick_settings_dark_mode_secondary_label_until_sunrise" msgid="4404885070316716472">"सुबह तक चालू रहेगी"</string>
- <string name="quick_settings_dark_mode_secondary_label_on_at" msgid="5128758823486361279">"<xliff:g id="TIME">%s</xliff:g> बजे चालू हाेगी"</string>
- <string name="quick_settings_dark_mode_secondary_label_until" msgid="2289774641256492437">"<xliff:g id="TIME">%s</xliff:g> बजे तक चालू रहेगी"</string>
+ <string name="quick_settings_dark_mode_secondary_label_on_at" msgid="5128758823486361279">"<xliff:g id="TIME">%s</xliff:g> पर चालू हाेगी"</string>
+ <string name="quick_settings_dark_mode_secondary_label_until" msgid="2289774641256492437">"<xliff:g id="TIME">%s</xliff:g> तक चालू रहेगी"</string>
<string name="quick_settings_nfc_label" msgid="1054317416221168085">"एनएफ़सी"</string>
<string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC बंद है"</string>
<string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC चालू है"</string>
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Magnification Overlay Window"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"स्क्रीन को बड़ा करके दिखाने वाली विंडो"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"स्क्रीन को बड़ा करके दिखाने वाली विंडो के नियंत्रण"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 55a0e788581a..5eefc79a35f2 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -969,4 +969,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Prozor preklapanja povećavanja"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Prozor za povećavanje"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrole prozora za povećavanje"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Brze kontrole"</string>
</resources>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index a9b2d036ebcc..5ce235dccce0 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Nagyítási fedvény ablaka"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Nagyítás ablaka"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Nagyítási vezérlők ablaka"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Gyorsvezérlők"</string>
</resources>
diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml
index 78acb2ed164e..4fa7096217be 100644
--- a/packages/SystemUI/res/values-hy/strings.xml
+++ b/packages/SystemUI/res/values-hy/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Խոշորացման պատուհանի վրադրում"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Խոշորացման պատուհան"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Խոշորացման պատուհանի կառավարման տարրեր"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Արագ կառավարման տարրեր"</string>
</resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 95c16c87dc1a..b3db0f3fd30b 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Jendela Overlay Pembesaran"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Jendela Pembesaran"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrol Jendela Pembesaran"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Kontrol Cepat"</string>
</resources>
diff --git a/packages/SystemUI/res/values-is/strings.xml b/packages/SystemUI/res/values-is/strings.xml
index 985f62d3e936..56e67ef3e0ff 100644
--- a/packages/SystemUI/res/values-is/strings.xml
+++ b/packages/SystemUI/res/values-is/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Stækkun yfirglugga"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Stækkunargluggi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Stækkunarstillingar glugga"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Flýtistýringar"</string>
</resources>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 870e6b7a75e7..423067713aa8 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Finestra overlay ingrandimento"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Finestra ingrandimento"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Finestra controlli di ingrandimento"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Controlli rapidi"</string>
</resources>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index 775be02e20e9..b20b10f227ba 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -974,4 +974,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"חלון ליצירת שכבת-על להגדלה"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"חלון הגדלה"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"בקרות של חלון ההגדלה"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index 7af3f8631f03..b5189732a11b 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"拡大オーバーレイ ウィンドウ"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"拡大ウィンドウ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"拡大ウィンドウ コントロール"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"クイック コントロール"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ka/strings.xml b/packages/SystemUI/res/values-ka/strings.xml
index 2433f9e32e8f..ab0dba829107 100644
--- a/packages/SystemUI/res/values-ka/strings.xml
+++ b/packages/SystemUI/res/values-ka/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"გადიდების გადაფარვის ფანჯარა"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"გადიდების ფანჯარა"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"გადიდების კონტროლის ფანჯარა"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml
index be93c18006b9..3c44cabb2f2f 100644
--- a/packages/SystemUI/res/values-kk/strings.xml
+++ b/packages/SystemUI/res/values-kk/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Ұлғайту терезесін қабаттастыру"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Ұлғайту терезесі"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Ұлғайту терезесінің басқару элементтері"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml
index 413125cefb92..480b69490252 100644
--- a/packages/SystemUI/res/values-km/strings.xml
+++ b/packages/SystemUI/res/values-km/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"វិនដូ​ត្រួតគ្នា​លើ​ការពង្រីក"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"វិនដូ​ការពង្រីក"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"វិនដូគ្រប់គ្រង​​ការពង្រីក"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"ការគ្រប់គ្រង​រហ័ស"</string>
</resources>
diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml
index 0b98e0655a7e..c65e653f0f51 100644
--- a/packages/SystemUI/res/values-kn/strings.xml
+++ b/packages/SystemUI/res/values-kn/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"ವರ್ಧನೆಯ ಓವರ್‌ಲೇ ವಿಂಡೋ"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"ವರ್ಧನೆಯ ವಿಂಡೋ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ವರ್ಧನೆಯ ವಿಂಡೋ ನಿಯಂತ್ರಣಗಳು"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 54b055dd674b..fb5818c710dc 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"확대 오버레이 창"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"확대 창"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"확대 창 컨트롤"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml
index ed6b9186cdba..53d780ea488f 100644
--- a/packages/SystemUI/res/values-ky/strings.xml
+++ b/packages/SystemUI/res/values-ky/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Чоңойтуу терезесин үстүнө коюу"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Чоңойтуу терезеси"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Чоңойтуу терезесин башкаруу каражаттары"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-lo/strings.xml b/packages/SystemUI/res/values-lo/strings.xml
index 11c4f7c45433..48166f394289 100644
--- a/packages/SystemUI/res/values-lo/strings.xml
+++ b/packages/SystemUI/res/values-lo/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"ໜ້າຈໍວາງທັບການຂະຫຍາຍ"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"ໜ້າຈໍການຂະຫຍາຍ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ການຄວບຄຸມໜ້າຈໍການຂະຫຍາຍ"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"ການຄວບຄຸມດ່ວນ"</string>
</resources>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index 7da1174c0878..70bcf372d895 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -974,4 +974,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Didinimo perdangos langas"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Didinimo langas"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Didinimo lango valdikliai"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Spartieji valdikliai"</string>
</resources>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index fed86b324c78..6c28b103748f 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -969,4 +969,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Palielināšanas pārklājuma logs"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Palielināšanas logs"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Palielināšanas loga vadīklas"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml
index a02f38ed267b..f81c5ff6fc64 100644
--- a/packages/SystemUI/res/values-mk/strings.xml
+++ b/packages/SystemUI/res/values-mk/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Прозорец за преклопување на зголемувањето"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Прозорец за зголемување"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Контроли на прозорец за зголемување"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Брзи контроли"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml
index 2d3f73fc5978..3ffcbc278bac 100644
--- a/packages/SystemUI/res/values-ml/strings.xml
+++ b/packages/SystemUI/res/values-ml/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"മാഗ്നിഫിക്കേഷൻ ഓവർലേ വിൻഡോ"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"മാഗ്നിഫിക്കേഷൻ വിൻഡോ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"മാഗ്നിഫിക്കേഷൻ വിൻഡോ നിയന്ത്രണങ്ങൾ"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml
index 85d7eadce349..87d5fbffb1bc 100644
--- a/packages/SystemUI/res/values-mn/strings.xml
+++ b/packages/SystemUI/res/values-mn/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Томруулалтыг давхарласан цонх"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Томруулалтын цонх"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Томруулалтын цонхны хяналт"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Шуурхай хяналтууд"</string>
</resources>
diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml
index 3406edf3f1bd..d67c0ef05c6d 100644
--- a/packages/SystemUI/res/values-mr/strings.xml
+++ b/packages/SystemUI/res/values-mr/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"मॅग्निफिकेशन ओव्हरले विंडो"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"मॅग्निफिकेशन विंडो"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"मॅग्निफिकेशन विंडो नियंत्रणे"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index eeaaceae0669..e3e9746d728a 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Tetingkap Tindanan Pembesaran"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Tetingkap Pembesaran"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kawalan Tetingkap Pembesaran"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml
index 5ae82eafbcf9..99075709a62a 100644
--- a/packages/SystemUI/res/values-my/strings.xml
+++ b/packages/SystemUI/res/values-my/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"ဝင်းဒိုး ထပ်ပိုးလွှာ ချဲ့ခြင်း"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"ဝင်းဒိုး ချဲ့ခြင်း"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ဝင်းဒိုး ထိန်းချုပ်မှုများ ချဲ့ခြင်း"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index 463b95c0107e..c273cc9c4bf2 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Overleggsvindu for forstørring"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Forstørringsvindu"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontroller for forstørringsvindu"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Hurtigkontroller"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml
index 21a76a3a86d0..dea3311e558e 100644
--- a/packages/SystemUI/res/values-ne/strings.xml
+++ b/packages/SystemUI/res/values-ne/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"म्याग्निफिकेसन ओभरले विन्डो"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"म्याग्निफिकेसन विन्डो"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"म्याग्निफिकेसन विन्डोका नियन्त्रणहरू"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index 3c040154437c..8b015ab3c048 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Overlay voor vergrotingsvenster"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Vergrotingsvenster"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Bediening van vergrotingsvenster"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Snelle bedieningselementen"</string>
</resources>
diff --git a/packages/SystemUI/res/values-or/strings.xml b/packages/SystemUI/res/values-or/strings.xml
index 42302756debd..e274f2720d58 100644
--- a/packages/SystemUI/res/values-or/strings.xml
+++ b/packages/SystemUI/res/values-or/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"ମ୍ୟାଗ୍ନିଫିକେସନ୍ ଓଭର୍‌ଲେ ୱିଣ୍ଡୋ"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"ମ୍ୟାଗ୍ନିଫିକେସନ୍ ୱିଣ୍ଡୋ"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ମ୍ୟାଗ୍ନିଫିକେସନ୍ ୱିଣ୍ଡୋ ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml
index f345d6a8f7aa..28da4edbe50d 100644
--- a/packages/SystemUI/res/values-pa/strings.xml
+++ b/packages/SystemUI/res/values-pa/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"ਵੱਡਦਰਸ਼ੀਕਰਨ ਓਵਰਲੇ Window"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"ਵੱਡਦਰਸ਼ੀਕਰਨ Window"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"ਵੱਡਦਰਸ਼ੀਕਰਨ Window ਦੇ ਕੰਟਰੋਲ"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 68cb14eb32b3..fd48b9721e52 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -909,7 +909,7 @@
<string name="notification_channel_battery" msgid="9219995638046695106">"Bateria"</string>
<string name="notification_channel_screenshot" msgid="7665814998932211997">"Zrzuty ekranu"</string>
<string name="notification_channel_general" msgid="4384774889645929705">"Wiadomości"</string>
- <string name="notification_channel_storage" msgid="2720725707628094977">"Pamięć"</string>
+ <string name="notification_channel_storage" msgid="2720725707628094977">"Pamięć wewnętrzna"</string>
<string name="notification_channel_hints" msgid="7703783206000346876">"Wskazówki"</string>
<string name="instant_apps" msgid="8337185853050247304">"Aplikacje błyskawiczne"</string>
<string name="instant_apps_title" msgid="8942706782103036910">"Aplikacja <xliff:g id="APP">%1$s</xliff:g> działa"</string>
@@ -974,4 +974,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Okno nakładki powiększenia"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Okno powiększenia"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Elementy sterujące okna powiększenia"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Szybkie sterowanie"</string>
</resources>
diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml
index a9101d74706f..6f616626a633 100644
--- a/packages/SystemUI/res/values-pt-rBR/strings.xml
+++ b/packages/SystemUI/res/values-pt-rBR/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Janela de sobreposição de ampliação"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Janela de ampliação"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controles da janela de ampliação"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Controles rápidos"</string>
</resources>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 1a6e6739e7ff..be534ae205c4 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Janela de sobreposição da ampliação"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Janela de ampliação"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controlos da janela de ampliação"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Controlos rápidos"</string>
</resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index a9101d74706f..6f616626a633 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Janela de sobreposição de ampliação"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Janela de ampliação"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Controles da janela de ampliação"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Controles rápidos"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index e34fa2de54d2..44940bf84a77 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -969,4 +969,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Fereastra de suprapunere pentru mărire"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Fereastra de mărire"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Comenzi pentru fereastra de mărire"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Comenzi rapide"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index 0ee159d0c648..6fe20944448c 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -974,4 +974,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Наложение окна увеличения"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Окно увеличения"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Настройки окна увеличения"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml
index 2c5e1d8ba117..38933ad6c46a 100644
--- a/packages/SystemUI/res/values-si/strings.xml
+++ b/packages/SystemUI/res/values-si/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"විශාලන උඩැතිරි කවුළුව"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"විශාලන කවුළුව"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"විශාලනය කිරීමේ කවුළු පාලන"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"ඉක්මන් පාලන"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 93f93a2860a9..5bd709c7142a 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -974,4 +974,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Okno prekrytia priblíženia"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Okno priblíženia"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Ovládacie prvky okna priblíženia"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Rýchle ovládacie prvky"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index 452827fa362f..7c06fa7da3cb 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -974,4 +974,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Prekrivno povečevalno okno"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Povečevalno okno"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrolniki povečevalnega okna"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Hitro upravljanje"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml
index 2dc3cc8b1cd2..7549611ec071 100644
--- a/packages/SystemUI/res/values-sq/strings.xml
+++ b/packages/SystemUI/res/values-sq/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Dritarja e mbivendosjes së zmadhimit"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Dritarja e zmadhimit"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kontrollet e dritares së zmadhimit"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index 4127806f9cd3..6b2d971df6ed 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -969,4 +969,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Преклопни прозор за увећање"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Прозор за увећање"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Контроле прозора за увећање"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Брзе контроле"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index 3e29fa6e6749..33c20789dc2b 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Överlagrat förstoringsfönster"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Förstoringsfönster"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Inställningar för förstoringsfönster"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Snabbinställningar"</string>
</resources>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 9fd4284710d1..bf2640f41042 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -958,10 +958,11 @@
<string name="bubble_accessibility_action_move_bottom_left" msgid="6339015902495504715">"Sogeza chini kushoto"</string>
<string name="bubble_accessibility_action_move_bottom_right" msgid="7471571700628346212">"Sogeza chini kulia"</string>
<string name="bubble_dismiss_text" msgid="7071770411580452911">"Ondoa"</string>
- <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Umesasisha usogezaji kwenye mfumo. Ili ufanye mabadiliko, nenda kwenye Mipangilio."</string>
+ <string name="notification_content_system_nav_changed" msgid="5077913144844684544">"Umesasisha usogezaji kwenye mfumo. Ili ubadilishe, nenda kwenye Mipangilio."</string>
<string name="notification_content_gesture_nav_available" msgid="4431460803004659888">"Nenda kwenye mipangilio ili usasishe usogezaji kwenye mfumo"</string>
<string name="inattentive_sleep_warning_title" msgid="3891371591713990373">"Hali tuli"</string>
<string name="magnification_overlay_title" msgid="6584179429612427958">"Dirisha la Kuwekelea Linalokuza"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Dirisha la Ukuzaji"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Vidhibiti vya Dirisha la Ukuzaji"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Vidhibiti vya Haraka"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml
index 55bd472a7889..c5289ec55c50 100644
--- a/packages/SystemUI/res/values-ta/strings.xml
+++ b/packages/SystemUI/res/values-ta/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Magnification Overlay Window"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"பெரிதாக்கல் சாளரம்"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"பெரிதாக்கல் சாளரக் கட்டுப்பாடுகள்"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml
index 8b9c07ce0264..ed562f3d7377 100644
--- a/packages/SystemUI/res/values-te/strings.xml
+++ b/packages/SystemUI/res/values-te/strings.xml
@@ -71,7 +71,7 @@
<string name="compat_mode_on" msgid="4963711187149440884">"స్క్రీన్‌కు నింపేలా జూమ్ చేయండి"</string>
<string name="compat_mode_off" msgid="7682459748279487945">"స్క్రీన్‌కు నింపేలా విస్తరించండి"</string>
<string name="global_action_screenshot" msgid="2760267567509131654">"స్క్రీన్‌షాట్"</string>
- <string name="remote_input_image_insertion_text" msgid="4613177882724332877">"చిత్రం చొప్పించబడింది"</string>
+ <string name="remote_input_image_insertion_text" msgid="4613177882724332877">"ఇమేజ్ చొప్పించబడింది"</string>
<string name="screenshot_saving_ticker" msgid="6519186952674544916">"స్క్రీన్‌షాట్‌ను సేవ్ చేస్తోంది…"</string>
<string name="screenshot_saving_title" msgid="2298349784913287333">"స్క్రీన్‌షాట్‌ను సేవ్ చేస్తోంది…"</string>
<string name="screenshot_saved_title" msgid="8893267638659083153">"స్క్రీన్‌షాట్ సేవ్ చేయబడింది"</string>
@@ -390,7 +390,7 @@
<string name="quick_settings_dark_mode_secondary_label_battery_saver" msgid="4990712734503013251">"బ్యాటరీ సేవర్"</string>
<string name="quick_settings_dark_mode_secondary_label_on_at_sunset" msgid="6017379738102015710">"సూర్యాస్తమయానికి"</string>
<string name="quick_settings_dark_mode_secondary_label_until_sunrise" msgid="4404885070316716472">"సూర్యోదయం వరకు"</string>
- <string name="quick_settings_dark_mode_secondary_label_on_at" msgid="5128758823486361279">"<xliff:g id="TIME">%s</xliff:g> వద్ద"</string>
+ <string name="quick_settings_dark_mode_secondary_label_on_at" msgid="5128758823486361279">"<xliff:g id="TIME">%s</xliff:g> కు ఆన్ అవుతుంది"</string>
<string name="quick_settings_dark_mode_secondary_label_until" msgid="2289774641256492437">"<xliff:g id="TIME">%s</xliff:g> వరకు"</string>
<string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string>
<string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC నిలిపివేయబడింది"</string>
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"మాగ్నిఫికేషన్ ఓవర్‌లే విండో"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"మాగ్నిఫికేషన్ విండో"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"మాగ్నిఫికేషన్ నియంత్రణల విండో"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-television/config.xml b/packages/SystemUI/res/values-television/config.xml
index dd4c3210922a..bb4999453d4f 100644
--- a/packages/SystemUI/res/values-television/config.xml
+++ b/packages/SystemUI/res/values-television/config.xml
@@ -20,6 +20,9 @@
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources>
+ <!-- SystemUIFactory component -->
+ <string name="config_systemUIFactoryComponent" translatable="false">com.android.systemui.tv.TvSystemUIFactory</string>
+
<!-- SystemUI Services: The classes of the stuff to start. -->
<string-array name="config_systemUIServiceComponents" translatable="false">
<item>com.android.systemui.util.NotificationChannels</item>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index c5e01236912d..9e5b2dbaf18b 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"หน้าต่างการขยายที่วางซ้อน"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"หน้าต่างการขยาย"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"การควบคุมหน้าต่างการขยาย"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"การควบคุมอย่างรวดเร็ว"</string>
</resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index 3d343c5b4c0b..9485a2bf3cc2 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Window ng Overlay sa Pag-magnify"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Window ng Pag-magnify"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Mga Kontrol sa Pag-magnify ng Window"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Mga Mabilisang Kontrol"</string>
</resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 46e583fb5124..950b66b11dbf 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Yer Paylaşımlı Büyütme Penceresi"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Büyütme Penceresi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Büyütme Penceresi Kontrolleri"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Hızlı Kontroller"</string>
</resources>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 7baad0df2e55..3e1e4a96fb5c 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -974,4 +974,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Вікно збільшення з накладанням"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Вікно збільшення"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Елементи керування вікна збільшення"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Елементи швидкого керування"</string>
</resources>
diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml
index 97d0a5d1d2a3..6f3e7ab02ff3 100644
--- a/packages/SystemUI/res/values-ur/strings.xml
+++ b/packages/SystemUI/res/values-ur/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"میگنیفیکیشن اوورلے ونڈو"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"میگنیفکیشن ونڈو"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"میگنیفکیشن ونڈو کنٹرولز"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"فوری کنٹرولز"</string>
</resources>
diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml
index b514f1e9754c..618463e91040 100644
--- a/packages/SystemUI/res/values-uz/strings.xml
+++ b/packages/SystemUI/res/values-uz/strings.xml
@@ -390,7 +390,7 @@
<string name="quick_settings_dark_mode_secondary_label_battery_saver" msgid="4990712734503013251">"Quvvat tejash"</string>
<string name="quick_settings_dark_mode_secondary_label_on_at_sunset" msgid="6017379738102015710">"Kunbotarda yoqish"</string>
<string name="quick_settings_dark_mode_secondary_label_until_sunrise" msgid="4404885070316716472">"Quyosh chiqqunicha"</string>
- <string name="quick_settings_dark_mode_secondary_label_on_at" msgid="5128758823486361279">"<xliff:g id="TIME">%s</xliff:g> da yoqish"</string>
+ <string name="quick_settings_dark_mode_secondary_label_on_at" msgid="5128758823486361279">"<xliff:g id="TIME">%s</xliff:g> da yoqiladi"</string>
<string name="quick_settings_dark_mode_secondary_label_until" msgid="2289774641256492437">"<xliff:g id="TIME">%s</xliff:g> gacha"</string>
<string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string>
<string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC o‘chiq"</string>
@@ -477,9 +477,9 @@
<string name="media_projection_remember_text" msgid="6896767327140422951">"Boshqa ko‘rsatilmasin"</string>
<string name="clear_all_notifications_text" msgid="348312370303046130">"Hammasini tozalash"</string>
<string name="manage_notifications_text" msgid="6885645344647733116">"Boshqarish"</string>
- <string name="notification_section_header_gentle" msgid="3044910806569985386">"Tovushsiz bildirishnomalar"</string>
+ <string name="notification_section_header_gentle" msgid="3044910806569985386">"Sokin bildirishnomalar"</string>
<string name="notification_section_header_conversations" msgid="821834744538345661">"Suhbatlar"</string>
- <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Barcha tovushsiz bildirishnomalarni tozalash"</string>
+ <string name="accessibility_notification_section_header_gentle_clear_all" msgid="6490207897764933919">"Barcha sokin bildirishnomalarni tozalash"</string>
<string name="dnd_suppressing_shade_text" msgid="5588252250634464042">"Bezovta qilinmasin rejimida bildirishnomalar pauza qilingan"</string>
<string name="media_projection_action_text" msgid="3634906766918186440">"Boshlash"</string>
<string name="empty_shade_text" msgid="8935967157319717412">"Bildirishnomalar yo‘q"</string>
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Kattalashtirish oynasining ustidan ochilishi"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Kattalashtirish oynasi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Kattalashtirish oynasi sozlamalari"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Tezkor tugmalar"</string>
</resources>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index c4d76187c817..6be05aab1583 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Cửa sổ lớp phủ phóng to"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Cửa sổ phóng to"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Các tùy chọn điều khiển cửa sổ phóng to"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index 56edb64fd798..e10abbb342a0 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -964,4 +964,6 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"放大叠加窗口"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"放大窗口"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"放大窗口控件"</string>
+ <!-- no translation found for quick_controls_title (525285759614231333) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index 251e23d1526b..a83ce53ca1e4 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"放大重疊視窗"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"放大視窗"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"放大視窗控制項"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"快速控制介面"</string>
</resources>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index a7ec5985a745..903259593765 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"放大重疊視窗"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"放大視窗"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"放大視窗控制項"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"快速控制項"</string>
</resources>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index 1203b579c52f..019128b0ab5b 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -964,4 +964,5 @@
<string name="magnification_overlay_title" msgid="6584179429612427958">"Iwindi Lembondela Lesikhulisi"</string>
<string name="magnification_window_title" msgid="4863914360847258333">"Iwindi Lesikhulisi"</string>
<string name="magnification_controls_title" msgid="8421106606708891519">"Izilawuli Zewindi Lesikhulisi"</string>
+ <string name="quick_controls_title" msgid="525285759614231333">"Izilawuli Ezisheshayo"</string>
</resources>
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 2aa6d9512898..d72ce5eea78d 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -328,6 +328,10 @@
<item type="id" name="action_toggle_overview"/>
+ <!-- Whether or not to show notifications to the user. If disabled, SystemUI will still be
+ registered as a notification listener, but will ignore all notification events. -->
+ <bool name="config_renderNotifications">true</bool>
+
<!-- Whether or not the gear icon on notifications should be shown. The gear is shown when the
the notification is not swiped enough to dismiss it. -->
<bool name="config_showNotificationGear">true</bool>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index cc58b2014496..c4fa4e5d4ef3 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -972,7 +972,6 @@
<!-- Global actions power menu -->
<dimen name="global_actions_top_margin">12dp</dimen>
- <dimen name="global_actions_plugin_offset">-145dp</dimen>
<dimen name="global_actions_panel_width">120dp</dimen>
<dimen name="global_actions_padding">12dp</dimen>
@@ -1091,7 +1090,7 @@
<!-- Blur radius on status bar window and power menu -->
<dimen name="min_window_blur_radius">1px</dimen>
- <dimen name="max_window_blur_radius">100px</dimen>
+ <dimen name="max_window_blur_radius">250px</dimen>
<!-- How much into a DisplayCutout's bounds we can go, on each side -->
<dimen name="display_cutout_margin_consumption">0px</dimen>
@@ -1165,10 +1164,12 @@
<dimen name="new_qs_vertical_margin">8dp</dimen>
<!-- Size of media cards in the QSPanel carousel -->
- <dimen name="qs_media_height">150dp</dimen>
<dimen name="qs_media_width">350dp</dimen>
<dimen name="qs_media_padding">8dp</dimen>
<dimen name="qs_media_corner_radius">10dp</dimen>
+ <dimen name="qs_media_album_size">72dp</dimen>
+ <dimen name="qs_seamless_icon_size">20dp</dimen>
+ <dimen name="qqs_media_spacing">8dp</dimen>
<dimen name="magnification_border_size">5dp</dimen>
<dimen name="magnification_frame_move_short">5dp</dimen>
@@ -1182,11 +1183,33 @@
<dimen name="magnifier_up_down_controls_height">40dp</dimen>
<!-- Home Controls -->
- <dimen name="control_spacing">5dp</dimen>
+ <dimen name="control_spacing">4dp</dimen>
<dimen name="control_corner_radius">15dp</dimen>
<dimen name="control_height">100dp</dimen>
<dimen name="control_padding">15dp</dimen>
- <dimen name="control_status_normal">12dp</dimen>
- <dimen name="control_status_expanded">18dp</dimen>
- <dimen name="app_icon_size">32dp</dimen>
+ <dimen name="control_status_normal">12sp</dimen>
+ <dimen name="control_status_expanded">18sp</dimen>
+ <dimen name="control_base_item_margin">2dp</dimen>
+ <dimen name="control_status_padding">3dp</dimen>
+
+ <!-- Home Controls management screens -->
+ <dimen name="controls_management_top_padding">48dp</dimen>
+ <dimen name="controls_management_side_padding">8dp</dimen>
+ <dimen name="controls_management_titles_margin">8dp</dimen>
+ <dimen name="controls_management_list_margin">16dp</dimen>
+ <dimen name="controls_title_size">26sp</dimen>
+
+ <dimen name="controls_app_icon_size">32dp</dimen>
+ <dimen name="controls_app_icon_frame_side_padding">8dp</dimen>
+ <dimen name="controls_app_icon_frame_top_padding">4dp</dimen>
+ <dimen name="controls_app_bottom_margin">8dp</dimen>
+ <dimen name="controls_app_text_padding">8dp</dimen>
+ <dimen name="controls_app_divider_height">2dp</dimen>
+ <dimen name="controls_app_divider_side_margin">32dp</dimen>
+
+ <dimen name="controls_card_margin">2dp</dimen>
+
+ <!-- Screen Record -->
+ <dimen name="screenrecord_dialog_padding">18dp</dimen>
+ <dimen name="screenrecord_logo_size">24dp</dimen>
</resources>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 8d935ecc691d..b85b51e4f2cc 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -196,7 +196,7 @@
<!-- text to show in place of RemoteInput images when they cannot be shown.
[CHAR LIMIT=50] -->
- <string name="remote_input_image_insertion_text">Image inserted</string>
+ <string name="remote_input_image_insertion_text">sent an image</string>
<!-- Notification ticker displayed when a screenshot is being saved to the Gallery. [CHAR LIMIT=30] -->
<string name="screenshot_saving_ticker">Saving screenshot\u2026</string>
@@ -217,15 +217,31 @@
your organization</string>
<!-- Notification title displayed for screen recording [CHAR LIMIT=50]-->
- <string name="screenrecord_name">Screen Recording</string>
+ <string name="screenrecord_name">Screen Recorder</string>
<!-- Description of the screen recording notification channel [CHAR LIMIT=NONE]-->
<string name="screenrecord_channel_description">Ongoing notification for a screen record session</string>
- <!-- Label for the button to begin screen recording [CHAR LIMIT=NONE]-->
- <string name="screenrecord_start_label">Start Recording</string>
- <!-- Label for the checkbox to enable microphone input during screen recording [CHAR LIMIT=NONE]-->
- <string name="screenrecord_mic_label">Record voiceover</string>
+ <!-- Title for the screen prompting the user to begin recording their screen [CHAR LIMIT=NONE]-->
+ <string name="screenrecord_start_label">Start Recording?</string>
+ <!-- Message reminding the user that sensitive information may be captured during a screen recording [CHAR_LIMIT=NONE]-->
+ <string name="screenrecord_description">While recording, Android System can capture any sensitive information that\u2019s visible on your screen or played on your device. This includes passwords, payment info, photos, messages, and audio.</string>
+ <!-- Label for a switch to enable recording audio [CHAR LIMIT=NONE]-->
+ <string name="screenrecord_audio_label">Record audio</string>
+ <!-- Label for the option to record audio from the device [CHAR LIMIT=NONE]-->
+ <string name="screenrecord_device_audio_label">Device audio</string>
+ <!-- Description of what audio may be captured from the device [CHAR LIMIT=NONE]-->
+ <string name="screenrecord_device_audio_description">Sound from your device, like music, calls, and ringtones</string>
+ <!-- Label for the option to enable microphone input during screen recording [CHAR LIMIT=NONE]-->
+ <string name="screenrecord_mic_label">Microphone</string>
+ <!-- Label for an option to record audio from both device and microphone [CHAR LIMIT=NONE]-->
+ <string name="screenrecord_device_audio_and_mic_label">Device audio and microphone</string>
+ <!-- Button to start a screen recording [CHAR LIMIT=50]-->
+ <string name="screenrecord_start">Start</string>
+ <!-- Notification text displayed when we are recording the screen [CHAR LIMIT=100]-->
+ <string name="screenrecord_ongoing_screen_only">Recording screen</string>
+ <!-- Notification text displayed when we are recording both the screen and audio [CHAR LIMIT=100]-->
+ <string name="screenrecord_ongoing_screen_and_audio">Recording screen and audio</string>
<!-- Label for the checkbox to enable showing location of touches during screen recording [CHAR LIMIT=NONE]-->
- <string name="screenrecord_taps_label">Show taps</string>
+ <string name="screenrecord_taps_label">Show touches on screen</string>
<!-- Label for notification that the user can tap to stop and save the screen recording [CHAR LIMIT=NONE] -->
<string name="screenrecord_stop_text">Tap to stop</string>
<!-- Label for notification action to stop and save the screen recording [CHAR LIMIT=35] -->
@@ -250,6 +266,8 @@
<string name="screenrecord_delete_error">Error deleting screen recording</string>
<!-- A toast message shown when the screen recording cannot be started due to insufficient permissions [CHAR LIMIT=NONE] -->
<string name="screenrecord_permission_error">Failed to get permissions</string>
+ <!-- A toast message shown when the screen recording cannot be started due to a generic error [CHAR LIMIT=NONE] -->
+ <string name="screenrecord_start_error">Error starting screen recording</string>
<!-- Title for the USB function chooser in UsbPreferenceActivity. [CHAR LIMIT=30] -->
<string name="usb_preference_title">USB file transfer options</string>
@@ -1812,16 +1830,16 @@
<string name="demote">Mark this notification as not a conversation</string>
<!-- [CHAR LIMIT=100] Mark this conversation as a favorite -->
- <string name="notification_conversation_favorite">Favorite</string>
+ <string name="notification_conversation_favorite">Mark as important</string>
<!-- [CHAR LIMIT=100] Unmark this conversation as a favorite -->
- <string name="notification_conversation_unfavorite">Unfavorite</string>
+ <string name="notification_conversation_unfavorite">Mark as unimportant</string>
<!-- [CHAR LIMIT=100] Mute this conversation -->
- <string name="notification_conversation_mute">Mute</string>
+ <string name="notification_conversation_mute">Silence</string>
<!-- [CHAR LIMIT=100] Umute this conversation -->
- <string name="notification_conversation_unmute">Unmute</string>
+ <string name="notification_conversation_unmute">Alerting</string>
<!-- [CHAR LIMIT=100] Show notification as bubble -->
<string name="notification_conversation_bubble">Show as bubble</string>
@@ -2547,9 +2565,24 @@
<!-- Title for Magnification Controls Window [CHAR LIMIT=NONE] -->
<string name="magnification_controls_title">Magnification Window Controls</string>
- <!-- Quick Controls strings [CHAR LIMIT=30] -->
+ <!-- Quick Controls strings -->
+ <!-- Quick Controls view header [CHAR LIMIT=30] -->
<string name="quick_controls_title">Quick Controls</string>
- <!-- The tile in quick settings is unavailable. [CHAR LIMIT=32] -->
- <string name="tile_unavailable">Unvailable</string>
+ <!-- Controls management providers screen title [CHAR LIMIT=30]-->
+ <string name="controls_providers_title">Add Controls</string>
+ <!-- Controls management providers screen subtitle [CHAR LIMIT=NONE] -->
+ <string name="controls_providers_subtitle">Choose an app from which to add controls</string>
+ <!-- Number of favorites for controls management screen [CHAR LIMIT=NONE]-->
+ <plurals name="controls_number_of_favorites">
+ <item quantity="one"><xliff:g id="number" example="1">%s</xliff:g> current favorite.</item>
+ <item quantity="other"><xliff:g id="number" example="3">%s</xliff:g> current favorites.</item>
+ </plurals>
+
+ <!-- Controls management controls screen default title [CHAR LIMIT=30] -->
+ <string name="controls_favorite_default_title">Controls</string>
+ <!-- Controls management controls screen subtitle [CHAR LIMIT=NONE] -->
+ <string name="controls_favorite_subtitle">Choose controls for quick access</string>
+
+
</resources>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index 10f59a423805..bcffa8d0feea 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -234,6 +234,37 @@
<style name="TextAppearance.DeviceManagementDialog.Title" parent="@android:style/TextAppearance.DeviceDefault.DialogWindowTitle"/>
+ <style name="TextAppearance.AuthCredential">
+ <item name="android:gravity">center_horizontal</item>
+ <item name="android:fontFamily">google-sans</item>
+ <item name="android:textAlignment">gravity</item>
+ <item name="android:layout_gravity">top</item>
+ <item name="android:textColor">?android:attr/textColorPrimary</item>
+ </style>
+
+ <style name="TextAppearance.AuthCredential.Title">
+ <item name="android:layout_marginBottom">2dp</item>
+ <item name="android:layout_marginLeft">24dp</item>
+ <item name="android:layout_marginRight">24dp</item>
+ <item name="android:layout_marginTop">16dp</item>
+ <item name="android:textSize">24sp</item>
+ </style>
+
+ <style name="TextAppearance.AuthCredential.Description">
+ <item name="android:layout_marginBottom">12dp</item>
+ <item name="android:layout_marginStart">40dp</item>
+ <item name="android:layout_marginEnd">40dp</item>
+ <item name="android:layout_marginTop">3dp</item>
+ <item name="android:textSize">16sp</item>
+ </style>
+
+ <style name="TextAppearance.AuthCredential.PasswordEntry" parent="@android:style/TextAppearance.DeviceDefault">
+ <item name="android:gravity">center</item>
+ <item name="android:singleLine">true</item>
+ <item name="android:textColor">?android:attr/colorForeground</item>
+ <item name="android:textSize">24sp</item>
+ </style>
+
<style name="DeviceManagementDialogTitle">
<item name="android:gravity">center</item>
<item name="android:textAppearance">@style/TextAppearance.DeviceManagementDialog.Title</item>
@@ -297,6 +328,16 @@
<item name="android:textColor">?attr/wallpaperTextColor</item>
</style>
+ <style name="LockPatternContainerStyle">
+ <item name="android:maxHeight">400dp</item>
+ <item name="android:maxWidth">420dp</item>
+ <item name="android:minHeight">0dp</item>
+ <item name="android:minWidth">0dp</item>
+ <item name="android:paddingBottom">0dp</item>
+ <item name="android:paddingHorizontal">44dp</item>
+ <item name="android:paddingTop">0dp</item>
+ </style>
+
<style name="LockPatternStyle">
<item name="*android:regularColor">?attr/wallpaperTextColor</item>
<item name="*android:successColor">?attr/wallpaperTextColor</item>
@@ -583,4 +624,28 @@
<item name="android:background">?android:attr/selectableItemBackground</item>
<item name="android:textColor">?android:attr/textColorPrimary</item>
</style>
+
+ <!-- Controls styles -->
+ <style name="Theme.ControlsManagement" parent="@android:style/Theme.DeviceDefault.NoActionBar">
+ <item name="android:windowIsTranslucent">false</item>
+ </style>
+
+ <style name="TextAppearance.Control">
+ <item name="android:fontFamily">@*android:string/config_bodyFontFamily</item>
+ </style>
+
+ <style name="TextAppearance.Control.Status">
+ <item name="android:textSize">12sp</item>
+ <item name="android:textColor">?android:attr/textColorPrimary</item>
+ </style>
+
+ <style name="TextAppearance.Control.Title">
+ <item name="android:textSize">14sp</item>
+ <item name="android:textColor">?android:attr/textColorPrimary</item>
+ </style>
+ <style name="TextAppearance.Control.Subtitle">
+ <item name="android:textSize">12sp</item>
+ <item name="android:textColor">?android:attr/textColorSecondary</item>
+ </style>
+
</resources>
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/IconLoader.java b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/IconLoader.java
deleted file mode 100644
index 78b1b26140d5..000000000000
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/IconLoader.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.systemui.shared.recents.model;
-
-import static android.content.pm.PackageManager.MATCH_ANY_USER;
-
-import android.app.ActivityManager;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.pm.ActivityInfo;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.res.Resources;
-import android.graphics.Bitmap;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
-import android.os.UserHandle;
-import android.util.IconDrawableFactory;
-import android.util.Log;
-import android.util.LruCache;
-
-import com.android.systemui.shared.system.PackageManagerWrapper;
-
-public abstract class IconLoader {
-
- private static final String TAG = "IconLoader";
-
- protected final Context mContext;
- protected final TaskKeyLruCache<Drawable> mIconCache;
- protected final LruCache<ComponentName, ActivityInfo> mActivityInfoCache;
-
- public IconLoader(Context context, TaskKeyLruCache<Drawable> iconCache, LruCache<ComponentName,
- ActivityInfo> activityInfoCache) {
- mContext = context;
- mIconCache = iconCache;
- mActivityInfoCache = activityInfoCache;
- }
-
- /**
- * Returns the activity info for the given task key, retrieving one from the system if the
- * task key is expired.
- *
- * TODO: Move this to an ActivityInfoCache class
- */
- public ActivityInfo getAndUpdateActivityInfo(Task.TaskKey taskKey) {
- ComponentName cn = taskKey.getComponent();
- ActivityInfo activityInfo = mActivityInfoCache.get(cn);
- if (activityInfo == null) {
- activityInfo = PackageManagerWrapper.getInstance().getActivityInfo(cn, taskKey.userId);
- if (cn == null || activityInfo == null) {
- Log.e(TAG, "Unexpected null component name or activity info: " + cn + ", " +
- activityInfo);
- return null;
- }
- mActivityInfoCache.put(cn, activityInfo);
- }
- return activityInfo;
- }
-
- public Drawable getIcon(Task t) {
- Drawable cachedIcon = mIconCache.get(t.key);
- if (cachedIcon == null) {
- cachedIcon = createNewIconForTask(t.key, t.taskDescription, true /* returnDefault */);
- mIconCache.put(t.key, cachedIcon);
- }
- return cachedIcon;
- }
-
- /**
- * Returns the cached task icon if the task key is not expired, updating the cache if it is.
- */
- public Drawable getAndInvalidateIfModified(Task.TaskKey taskKey,
- ActivityManager.TaskDescription td, boolean loadIfNotCached) {
- // Return the cached activity icon if it exists
- Drawable icon = mIconCache.getAndInvalidateIfModified(taskKey);
- if (icon != null) {
- return icon;
- }
-
- if (loadIfNotCached) {
- icon = createNewIconForTask(taskKey, td, false /* returnDefault */);
- if (icon != null) {
- mIconCache.put(taskKey, icon);
- return icon;
- }
- }
-
- // We couldn't load any icon
- return null;
- }
-
- private Drawable createNewIconForTask(Task.TaskKey taskKey,
- ActivityManager.TaskDescription desc, boolean returnDefault) {
- int userId = taskKey.userId;
- Bitmap tdIcon = desc.getInMemoryIcon();
- if (tdIcon != null) {
- return createDrawableFromBitmap(tdIcon, userId, desc);
- }
- if (desc.getIconResource() != 0) {
- try {
- PackageManager pm = mContext.getPackageManager();
- ApplicationInfo appInfo = pm.getApplicationInfo(taskKey.getPackageName(),
- MATCH_ANY_USER);
- Resources res = pm.getResourcesForApplication(appInfo);
- return createBadgedDrawable(res.getDrawable(desc.getIconResource(), null), userId,
- desc);
- } catch (Resources.NotFoundException|PackageManager.NameNotFoundException e) {
- Log.e(TAG, "Could not find icon drawable from resource", e);
- }
- }
-
- tdIcon = ActivityManager.TaskDescription.loadTaskDescriptionIcon(
- desc.getIconFilename(), userId);
- if (tdIcon != null) {
- return createDrawableFromBitmap(tdIcon, userId, desc);
- }
-
- // Load the icon from the activity info and cache it
- ActivityInfo activityInfo = getAndUpdateActivityInfo(taskKey);
- if (activityInfo != null) {
- Drawable icon = getBadgedActivityIcon(activityInfo, userId, desc);
- if (icon != null) {
- return icon;
- }
- }
-
- // At this point, even if we can't load the icon, we will set the default icon.
- return returnDefault ? getDefaultIcon(userId) : null;
- }
-
- public abstract Drawable getDefaultIcon(int userId);
-
- protected Drawable createDrawableFromBitmap(Bitmap icon, int userId,
- ActivityManager.TaskDescription desc) {
- return createBadgedDrawable(
- new BitmapDrawable(mContext.getResources(), icon), userId, desc);
- }
-
- protected abstract Drawable createBadgedDrawable(Drawable icon, int userId,
- ActivityManager.TaskDescription desc);
-
- /**
- * @return the activity icon for the ActivityInfo for a user, badging if necessary.
- */
- protected abstract Drawable getBadgedActivityIcon(ActivityInfo info, int userId,
- ActivityManager.TaskDescription desc);
-
- public static class DefaultIconLoader extends IconLoader {
-
- private final BitmapDrawable mDefaultIcon;
- private final IconDrawableFactory mDrawableFactory;
-
- public DefaultIconLoader(Context context, TaskKeyLruCache<Drawable> iconCache,
- LruCache<ComponentName, ActivityInfo> activityInfoCache) {
- super(context, iconCache, activityInfoCache);
-
- // Create the default assets
- Bitmap icon = Bitmap.createBitmap(1, 1, Bitmap.Config.ALPHA_8);
- icon.eraseColor(0);
- mDefaultIcon = new BitmapDrawable(context.getResources(), icon);
- mDrawableFactory = IconDrawableFactory.newInstance(context);
- }
-
- @Override
- public Drawable getDefaultIcon(int userId) {
- return mDefaultIcon;
- }
-
- @Override
- protected Drawable createBadgedDrawable(Drawable icon, int userId,
- ActivityManager.TaskDescription desc) {
- if (userId != UserHandle.myUserId()) {
- icon = mContext.getPackageManager().getUserBadgedIcon(icon, new UserHandle(userId));
- }
- return icon;
- }
-
- @Override
- protected Drawable getBadgedActivityIcon(ActivityInfo info, int userId,
- ActivityManager.TaskDescription desc) {
- return mDrawableFactory.getBadgedIcon(info, info.applicationInfo, userId);
- }
- }
-}
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/TaskKeyCache.java b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/TaskKeyCache.java
deleted file mode 100644
index 8a244bf81c7c..000000000000
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/TaskKeyCache.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.systemui.shared.recents.model;
-
-import android.util.Log;
-import android.util.SparseArray;
-
-import com.android.systemui.shared.recents.model.Task.TaskKey;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-/**
- * Base class for both strong and LRU task key cache.
- */
-public abstract class TaskKeyCache<V> {
-
- protected static final String TAG = "TaskKeyCache";
-
- protected final SparseArray<TaskKey> mKeys = new SparseArray<>();
-
- /**
- * Gets a specific entry in the cache with the specified key, regardless of whether the cached
- * value is valid or not.
- */
- public final synchronized V get(TaskKey key) {
- return getCacheEntry(key.id);
- }
-
- /**
- * Returns the value only if the key is valid (has not been updated since the last time it was
- * in the cache)
- */
- public final synchronized V getAndInvalidateIfModified(TaskKey key) {
- TaskKey lastKey = mKeys.get(key.id);
- if (lastKey != null) {
- if ((lastKey.windowingMode != key.windowingMode) ||
- (lastKey.lastActiveTime != key.lastActiveTime)) {
- // The task has updated (been made active since the last time it was put into the
- // LRU cache) or the stack id for the task has changed, invalidate that cache item
- remove(key);
- return null;
- }
- }
- // Either the task does not exist in the cache, or the last active time is the same as
- // the key specified, so return what is in the cache
- return getCacheEntry(key.id);
- }
-
- /** Puts an entry in the cache for a specific key. */
- public final synchronized void put(TaskKey key, V value) {
- if (key == null || value == null) {
- Log.e(TAG, "Unexpected null key or value: " + key + ", " + value);
- return;
- }
- mKeys.put(key.id, key);
- putCacheEntry(key.id, value);
- }
-
-
- /** Removes a cache entry for a specific key. */
- public final synchronized void remove(TaskKey key) {
- // Remove the key after the cache value because we need it to make the callback
- removeCacheEntry(key.id);
- mKeys.remove(key.id);
- }
-
- /** @return {@link Collection} of {@link TaskKey} */
- public Collection<TaskKey> getValues() {
- Collection<TaskKey> result = new ArrayList<>(mKeys.size());
- for (int i = 0; i < mKeys.size(); i++) {
- result.add(mKeys.valueAt(i));
- }
- return result;
- }
-
- /** Removes all the entries in the cache. */
- public final synchronized void evictAll() {
- evictAllCache();
- mKeys.clear();
- }
-
- protected abstract V getCacheEntry(int id);
- protected abstract void putCacheEntry(int id, V value);
- protected abstract void removeCacheEntry(int id);
- protected abstract void evictAllCache();
-}
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/TaskKeyLruCache.java b/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/TaskKeyLruCache.java
deleted file mode 100644
index bc57b08236cf..000000000000
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/TaskKeyLruCache.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.shared.recents.model;
-
-import android.util.LruCache;
-
-import com.android.systemui.shared.recents.model.Task.TaskKey;
-
-import java.io.PrintWriter;
-
-/**
- * A mapping of {@link TaskKey} to value, with additional LRU functionality where the least
- * recently referenced key/values will be evicted as more values than the given cache size are
- * inserted.
- *
- * In addition, this also allows the caller to invalidate cached values for keys that have since
- * changed.
- */
-public class TaskKeyLruCache<V> extends TaskKeyCache<V> {
-
- public interface EvictionCallback {
- void onEntryEvicted(TaskKey key);
- }
-
- private final LruCache<Integer, V> mCache;
- private final EvictionCallback mEvictionCallback;
-
- public TaskKeyLruCache(int cacheSize) {
- this(cacheSize, null);
- }
-
- public TaskKeyLruCache(int cacheSize, EvictionCallback evictionCallback) {
- mEvictionCallback = evictionCallback;
- mCache = new LruCache<Integer, V>(cacheSize) {
-
- @Override
- protected void entryRemoved(boolean evicted, Integer taskId, V oldV, V newV) {
- if (mEvictionCallback != null && evicted) {
- mEvictionCallback.onEntryEvicted(mKeys.get(taskId));
- }
-
- // Only remove from mKeys on cache remove, not a cache update.
- if (newV == null) {
- mKeys.remove(taskId);
- }
- }
- };
- }
-
- /** Trims the cache to a specific size */
- public final void trimToSize(int cacheSize) {
- mCache.trimToSize(cacheSize);
- }
-
- public void dump(String prefix, PrintWriter writer) {
- String innerPrefix = prefix + " ";
-
- writer.print(prefix); writer.print(TAG);
- writer.print(" numEntries="); writer.print(mKeys.size());
- writer.println();
- int keyCount = mKeys.size();
- for (int i = 0; i < keyCount; i++) {
- writer.print(innerPrefix); writer.println(mKeys.get(mKeys.keyAt(i)));
- }
- }
-
- @Override
- protected V getCacheEntry(int id) {
- return mCache.get(id);
- }
-
- @Override
- protected void putCacheEntry(int id, V value) {
- mCache.put(id, value);
- }
-
- @Override
- protected void removeCacheEntry(int id) {
- mCache.remove(id);
- }
-
- @Override
- protected void evictAllCache() {
- mCache.evictAll();
- }
-}
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/tracing/FrameProtoTracer.java b/packages/SystemUI/shared/src/com/android/systemui/shared/tracing/FrameProtoTracer.java
index 557845c34bf2..356e0ca7193c 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/shared/tracing/FrameProtoTracer.java
+++ b/packages/SystemUI/shared/src/com/android/systemui/shared/tracing/FrameProtoTracer.java
@@ -40,7 +40,7 @@ import java.util.function.Consumer;
* @param <R> The proto class type of the entry root proto in the buffer
*/
public class FrameProtoTracer<P, S extends P, T extends P, R>
- implements TraceBuffer.ProtoProvider<P, S, T>, Choreographer.FrameCallback {
+ implements Choreographer.FrameCallback {
private static final String TAG = "FrameProtoTracer";
private static final int BUFFER_CAPACITY = 1024 * 1024;
@@ -57,6 +57,25 @@ public class FrameProtoTracer<P, S extends P, T extends P, R>
private volatile boolean mEnabled;
private boolean mFrameScheduled;
+ private final TraceBuffer.ProtoProvider<P, S, T> mProvider =
+ new TraceBuffer.ProtoProvider<P, S, T>() {
+ @Override
+ public int getItemSize(P proto) {
+ return mParams.getProtoSize(proto);
+ }
+
+ @Override
+ public byte[] getBytes(P proto) {
+ return mParams.getProtoBytes(proto);
+ }
+
+ @Override
+ public void write(S encapsulatingProto, Queue<T> buffer, OutputStream os)
+ throws IOException {
+ os.write(mParams.serializeEncapsulatingProto(encapsulatingProto, buffer));
+ }
+ };
+
public interface ProtoTraceParams<P, S, T, R> {
File getTraceFile();
S getEncapsulatingTraceProto();
@@ -68,7 +87,7 @@ public class FrameProtoTracer<P, S extends P, T extends P, R>
public FrameProtoTracer(ProtoTraceParams<P, S, T, R> params) {
mParams = params;
- mBuffer = new TraceBuffer<>(BUFFER_CAPACITY, this, new Consumer<T>() {
+ mBuffer = new TraceBuffer<>(BUFFER_CAPACITY, mProvider, new Consumer<T>() {
@Override
public void accept(T t) {
onProtoDequeued(t);
@@ -78,21 +97,6 @@ public class FrameProtoTracer<P, S extends P, T extends P, R>
mChoreographer = Choreographer.getMainThreadInstance();
}
- @Override
- public int getItemSize(P proto) {
- return mParams.getProtoSize(proto);
- }
-
- @Override
- public byte[] getBytes(P proto) {
- return mParams.getProtoBytes(proto);
- }
-
- @Override
- public void write(S encapsulatingProto, Queue<T> buffer, OutputStream os) throws IOException {
- os.write(mParams.serializeEncapsulatingProto(encapsulatingProto, buffer));
- }
-
public void start() {
synchronized (mLock) {
if (mEnabled) {
diff --git a/packages/SystemUI/src/com/android/keyguard/AdminSecondaryLockScreenController.java b/packages/SystemUI/src/com/android/keyguard/AdminSecondaryLockScreenController.java
index b2423b9bf252..85724a969fed 100644
--- a/packages/SystemUI/src/com/android/keyguard/AdminSecondaryLockScreenController.java
+++ b/packages/SystemUI/src/com/android/keyguard/AdminSecondaryLockScreenController.java
@@ -27,7 +27,7 @@ import android.os.IBinder;
import android.os.RemoteException;
import android.os.UserHandle;
import android.util.Log;
-import android.view.SurfaceControl;
+import android.view.SurfaceControlViewHost;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.ViewGroup;
@@ -47,7 +47,6 @@ public class AdminSecondaryLockScreenController {
private Handler mHandler;
private IKeyguardClient mClient;
private KeyguardSecurityCallback mKeyguardCallback;
- private SurfaceControl.Transaction mTransaction;
private final ServiceConnection mConnection = new ServiceConnection() {
@Override
@@ -84,13 +83,13 @@ public class AdminSecondaryLockScreenController {
}
@Override
- public void onSurfaceControlCreated(@Nullable SurfaceControl remoteSurfaceControl) {
+ public void onRemoteContentReady(
+ @Nullable SurfaceControlViewHost.SurfacePackage surfacePackage) {
if (mHandler != null) {
mHandler.removeCallbacksAndMessages(null);
}
- if (remoteSurfaceControl != null) {
- mTransaction.reparent(remoteSurfaceControl, mView.getSurfaceControl())
- .apply();
+ if (surfacePackage != null) {
+ mView.setChildSurfacePackage(surfacePackage);
} else {
dismiss(KeyguardUpdateMonitor.getCurrentUser());
}
@@ -138,11 +137,10 @@ public class AdminSecondaryLockScreenController {
public AdminSecondaryLockScreenController(Context context, ViewGroup parent,
KeyguardUpdateMonitor updateMonitor, KeyguardSecurityCallback callback,
- Handler handler, SurfaceControl.Transaction transaction) {
+ Handler handler) {
mContext = context;
mHandler = handler;
mParent = parent;
- mTransaction = transaction;
mUpdateMonitor = updateMonitor;
mKeyguardCallback = callback;
mView = new AdminSecurityView(mContext, mSurfaceHolderCallback);
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java
index ed1cd8191092..d5a08dda9853 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardHostView.java
@@ -409,15 +409,6 @@ public class KeyguardHostView extends FrameLayout implements SecurityCallback {
mAudioManager.dispatchMediaKeyEvent(keyEvent);
}
- @Override
- public void dispatchSystemUiVisibilityChanged(int visibility) {
- super.dispatchSystemUiVisibilityChanged(visibility);
-
- if (!(mContext instanceof Activity)) {
- setSystemUiVisibility(STATUS_BAR_DISABLE_BACK);
- }
- }
-
/**
* In general, we enable unlocking the insecure keyguard with the menu key. However, there are
* some cases where we wish to disable it, notably when the menu button placement or technology
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
index ae787260adca..ba8a1a945a77 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSecurityContainer.java
@@ -15,7 +15,12 @@
*/
package com.android.keyguard;
+import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL;
+import static android.view.ViewRootImpl.sNewInsetsMode;
+import static android.view.WindowInsets.Type.ime;
+import static android.view.WindowInsets.Type.systemBars;
import static com.android.systemui.DejankUtils.whitelistIpcs;
+import static java.lang.Integer.max;
import android.app.Activity;
import android.app.AlertDialog;
@@ -34,10 +39,10 @@ import android.util.Slog;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.MotionEvent;
-import android.view.SurfaceControl;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewConfiguration;
+import android.view.WindowInsets;
import android.view.WindowManager;
import android.widget.FrameLayout;
@@ -143,8 +148,7 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
mViewConfiguration = ViewConfiguration.get(context);
mKeyguardStateController = Dependency.get(KeyguardStateController.class);
mSecondaryLockScreenController = new AdminSecondaryLockScreenController(context, this,
- mUpdateMonitor, mCallback, new Handler(Looper.myLooper()),
- new SurfaceControl.Transaction());
+ mUpdateMonitor, mCallback, new Handler(Looper.myLooper()));
}
public void setSecurityCallback(SecurityCallback callback) {
@@ -339,13 +343,22 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
}
@Override
- protected boolean fitSystemWindows(Rect insets) {
+ public WindowInsets onApplyWindowInsets(WindowInsets insets) {
+
// Consume bottom insets because we're setting the padding locally (for IME and navbar.)
- setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight(), insets.bottom);
- insets.bottom = 0;
- return false;
+ int inset;
+ if (sNewInsetsMode == NEW_INSETS_MODE_FULL) {
+ int bottomInset = insets.getInsetsIgnoringVisibility(systemBars()).bottom;
+ int imeInset = insets.getInsets(ime()).bottom;
+ inset = max(bottomInset, imeInset);
+ } else {
+ inset = insets.getSystemWindowInsetBottom();
+ }
+ setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight(), inset);
+ return insets.inset(0, 0, 0, inset);
}
+
private void showDialog(String title, String message) {
if (mAlertDialog != null) {
mAlertDialog.dismiss();
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 4e2f7d4ee862..e5f6d3c90eb7 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -21,15 +21,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
import static android.content.Intent.ACTION_USER_REMOVED;
import static android.content.Intent.ACTION_USER_STOPPED;
import static android.content.Intent.ACTION_USER_UNLOCKED;
-import static android.os.BatteryManager.BATTERY_HEALTH_UNKNOWN;
-import static android.os.BatteryManager.BATTERY_STATUS_FULL;
import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN;
-import static android.os.BatteryManager.EXTRA_HEALTH;
-import static android.os.BatteryManager.EXTRA_LEVEL;
-import static android.os.BatteryManager.EXTRA_MAX_CHARGING_CURRENT;
-import static android.os.BatteryManager.EXTRA_MAX_CHARGING_VOLTAGE;
-import static android.os.BatteryManager.EXTRA_PLUGGED;
-import static android.os.BatteryManager.EXTRA_STATUS;
import static android.telephony.PhoneStateListener.LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE;
import static android.telephony.TelephonyManager.MODEM_COUNT_DUAL_MODEM;
@@ -67,7 +59,6 @@ import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.FingerprintManager.AuthenticationCallback;
import android.hardware.fingerprint.FingerprintManager.AuthenticationResult;
import android.media.AudioManager;
-import android.os.BatteryManager;
import android.os.CancellationSignal;
import android.os.Handler;
import android.os.IRemoteCallback;
@@ -94,6 +85,7 @@ import android.util.SparseBooleanArray;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.widget.LockPatternUtils;
import com.android.settingslib.WirelessUtils;
+import com.android.settingslib.fuelgauge.BatteryStatus;
import com.android.systemui.DejankUtils;
import com.android.systemui.DumpController;
import com.android.systemui.Dumpable;
@@ -1059,29 +1051,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
MSG_TIMEZONE_UPDATE, intent.getStringExtra("time-zone"));
mHandler.sendMessage(msg);
} else if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
- final int status = intent.getIntExtra(EXTRA_STATUS, BATTERY_STATUS_UNKNOWN);
- final int plugged = intent.getIntExtra(EXTRA_PLUGGED, 0);
- final int level = intent.getIntExtra(EXTRA_LEVEL, 0);
- final int health = intent.getIntExtra(EXTRA_HEALTH, BATTERY_HEALTH_UNKNOWN);
- final int maxChargingMicroAmp = intent.getIntExtra(EXTRA_MAX_CHARGING_CURRENT, -1);
- int maxChargingMicroVolt = intent.getIntExtra(EXTRA_MAX_CHARGING_VOLTAGE, -1);
- final int maxChargingMicroWatt;
-
- if (maxChargingMicroVolt <= 0) {
- maxChargingMicroVolt = DEFAULT_CHARGING_VOLTAGE_MICRO_VOLT;
- }
- if (maxChargingMicroAmp > 0) {
- // Calculating muW = muA * muV / (10^6 mu^2 / mu); splitting up the divisor
- // to maintain precision equally on both factors.
- maxChargingMicroWatt = (maxChargingMicroAmp / 1000)
- * (maxChargingMicroVolt / 1000);
- } else {
- maxChargingMicroWatt = -1;
- }
final Message msg = mHandler.obtainMessage(
- MSG_BATTERY_UPDATE, new BatteryStatus(status, level, plugged, health,
- maxChargingMicroWatt));
+ MSG_BATTERY_UPDATE, new BatteryStatus(intent));
mHandler.sendMessage(msg);
} else if (Intent.ACTION_SIM_STATE_CHANGED.equals(action)) {
SimData args = SimData.fromIntent(intent);
@@ -1323,82 +1295,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
}
}
- public static class BatteryStatus {
- public static final int CHARGING_UNKNOWN = -1;
- public static final int CHARGING_SLOWLY = 0;
- public static final int CHARGING_REGULAR = 1;
- public static final int CHARGING_FAST = 2;
-
- public final int status;
- public final int level;
- public final int plugged;
- public final int health;
- public final int maxChargingWattage;
-
- public BatteryStatus(int status, int level, int plugged, int health,
- int maxChargingWattage) {
- this.status = status;
- this.level = level;
- this.plugged = plugged;
- this.health = health;
- this.maxChargingWattage = maxChargingWattage;
- }
-
- /**
- * Determine whether the device is plugged in (USB, power, or wireless).
- *
- * @return true if the device is plugged in.
- */
- public boolean isPluggedIn() {
- return plugged == BatteryManager.BATTERY_PLUGGED_AC
- || plugged == BatteryManager.BATTERY_PLUGGED_USB
- || plugged == BatteryManager.BATTERY_PLUGGED_WIRELESS;
- }
-
- /**
- * Determine whether the device is plugged in (USB, power).
- *
- * @return true if the device is plugged in wired (as opposed to wireless)
- */
- public boolean isPluggedInWired() {
- return plugged == BatteryManager.BATTERY_PLUGGED_AC
- || plugged == BatteryManager.BATTERY_PLUGGED_USB;
- }
-
- /**
- * Whether or not the device is charged. Note that some devices never return 100% for
- * battery level, so this allows either battery level or status to determine if the
- * battery is charged.
- *
- * @return true if the device is charged
- */
- public boolean isCharged() {
- return status == BATTERY_STATUS_FULL || level >= 100;
- }
-
- /**
- * Whether battery is low and needs to be charged.
- *
- * @return true if battery is low
- */
- public boolean isBatteryLow() {
- return level < LOW_BATTERY_THRESHOLD;
- }
-
- public final int getChargingSpeed(int slowThreshold, int fastThreshold) {
- return maxChargingWattage <= 0 ? CHARGING_UNKNOWN :
- maxChargingWattage < slowThreshold ? CHARGING_SLOWLY :
- maxChargingWattage > fastThreshold ? CHARGING_FAST :
- CHARGING_REGULAR;
- }
-
- @Override
- public String toString() {
- return "BatteryStatus{status=" + status + ",level=" + level + ",plugged=" + plugged
- + ",health=" + health + ",maxChargingWattage=" + maxChargingWattage + "}";
- }
- }
-
public static class StrongAuthTracker extends LockPatternUtils.StrongAuthTracker {
private final Consumer<Integer> mStrongAuthRequiredChangedCallback;
@@ -1883,9 +1779,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
final boolean awakeKeyguard = mKeyguardIsVisible && mDeviceInteractive && !mGoingToSleep;
final int user = getCurrentUser();
final int strongAuth = mStrongAuthTracker.getStrongAuthForUser(user);
- final boolean isLockOutOrLockDown =
- containsFlag(strongAuth, STRONG_AUTH_REQUIRED_AFTER_LOCKOUT)
- || containsFlag(strongAuth, STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW)
+ final boolean isLockDown =
+ containsFlag(strongAuth, STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW)
|| containsFlag(strongAuth, STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN);
final boolean isEncryptedOrTimedOut =
containsFlag(strongAuth, STRONG_AUTH_REQUIRED_AFTER_BOOT)
@@ -1899,9 +1794,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
boolean becauseCannotSkipBouncer = !getUserCanSkipBouncer(user) || canBypass;
// Scan even when encrypted or timeout to show a preemptive bouncer when bypassing.
- // Lockout/lockdown modes shouldn't scan, since they are more explicit.
+ // Lock-down mode shouldn't scan, since it is more explicit.
boolean strongAuthAllowsScanning = (!isEncryptedOrTimedOut || canBypass && !mBouncer)
- && !isLockOutOrLockDown;
+ && !isLockDown;
// Only listen if this KeyguardUpdateMonitor belongs to the primary user. There is an
// instance of KeyguardUpdateMonitor for each user but KeyguardUpdateMonitor is user-aware.
@@ -2641,9 +2536,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab
*/
private boolean refreshSimState(int subId, int slotId) {
final TelephonyManager tele =
- (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
+ (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
int state = (tele != null) ?
- tele.getSimState(slotId) : TelephonyManager.SIM_STATE_UNKNOWN;
+ tele.getSimState(slotId) : TelephonyManager.SIM_STATE_UNKNOWN;
SimData data = mSimDatas.get(subId);
final boolean changed;
if (data == null) {
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
index 8e87b7ad45b9..49f72a925a0e 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
@@ -23,6 +23,7 @@ import android.os.SystemClock;
import android.telephony.TelephonyManager;
import android.view.WindowManagerPolicyConstants;
+import com.android.settingslib.fuelgauge.BatteryStatus;
import com.android.systemui.statusbar.KeyguardIndicationController;
import java.util.TimeZone;
@@ -42,7 +43,7 @@ public class KeyguardUpdateMonitorCallback {
*
* @param status current battery status
*/
- public void onRefreshBatteryInfo(KeyguardUpdateMonitor.BatteryStatus status) { }
+ public void onRefreshBatteryInfo(BatteryStatus status) { }
/**
* Called once per minute or when the time changes.
diff --git a/packages/SystemUI/src/com/android/systemui/DejankUtils.java b/packages/SystemUI/src/com/android/systemui/DejankUtils.java
index 97578e19ccd1..3fce55f6e515 100644
--- a/packages/SystemUI/src/com/android/systemui/DejankUtils.java
+++ b/packages/SystemUI/src/com/android/systemui/DejankUtils.java
@@ -61,19 +61,21 @@ public class DejankUtils {
|| !isMainThread() || sTemporarilyIgnoreStrictMode) {
return null;
}
+ }
- try {
- String description = binder.getInterfaceDescriptor();
+ try {
+ String description = binder.getInterfaceDescriptor();
+ synchronized (sLock) {
if (sWhitelistedFrameworkClasses.contains(description)) {
return null;
}
- } catch (RemoteException e) {
- e.printStackTrace();
}
-
- StrictMode.noteSlowCall("IPC detected on critical path: " + sBlockingIpcs.peek());
- return null;
+ } catch (RemoteException e) {
+ e.printStackTrace();
}
+
+ StrictMode.noteSlowCall("IPC detected on critical path: " + sBlockingIpcs.peek());
+ return null;
}
@Override
@@ -126,9 +128,11 @@ public class DejankUtils {
if (STRICT_MODE_ENABLED && sBlockingIpcs.empty()) {
synchronized (sLock) {
sBlockingIpcs.push("detectBlockingIpcs");
- try {
- runnable.run();
- } finally {
+ }
+ try {
+ runnable.run();
+ } finally {
+ synchronized (sLock) {
sBlockingIpcs.pop();
}
}
@@ -177,9 +181,11 @@ public class DejankUtils {
if (STRICT_MODE_ENABLED && !sTemporarilyIgnoreStrictMode) {
synchronized (sLock) {
sTemporarilyIgnoreStrictMode = true;
- try {
- runnable.run();
- } finally {
+ }
+ try {
+ runnable.run();
+ } finally {
+ synchronized (sLock) {
sTemporarilyIgnoreStrictMode = false;
}
}
@@ -196,14 +202,16 @@ public class DejankUtils {
if (STRICT_MODE_ENABLED && !sTemporarilyIgnoreStrictMode) {
synchronized (sLock) {
sTemporarilyIgnoreStrictMode = true;
- final T val;
- try {
- val = supplier.get();
- } finally {
+ }
+ final T val;
+ try {
+ val = supplier.get();
+ } finally {
+ synchronized (sLock) {
sTemporarilyIgnoreStrictMode = false;
}
- return val;
}
+ return val;
} else {
return supplier.get();
}
diff --git a/packages/SystemUI/src/com/android/systemui/ForegroundServiceNotificationListener.java b/packages/SystemUI/src/com/android/systemui/ForegroundServiceNotificationListener.java
index eab970626bf1..924d16dd27d7 100644
--- a/packages/SystemUI/src/com/android/systemui/ForegroundServiceNotificationListener.java
+++ b/packages/SystemUI/src/com/android/systemui/ForegroundServiceNotificationListener.java
@@ -89,7 +89,7 @@ public class ForegroundServiceNotificationListener {
}
@Override
- public void onEntryRemoved(NotificationEntry entry, int reason, boolean removedByUser) {
+ public void onEntryRemoved(NotificationEntry entry, int reason) {
removeNotification(entry.getSbn());
}
});
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java
index 044c5a027dac..7dea7f83f0c6 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java
@@ -664,6 +664,7 @@ public abstract class AuthBiometricView extends LinearLayout {
setTextOrHide(mSubtitleView,
mBiometricPromptBundle.getString(BiometricPrompt.KEY_SUBTITLE));
+
setTextOrHide(mDescriptionView,
mBiometricPromptBundle.getString(BiometricPrompt.KEY_DESCRIPTION));
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java
index b8d32aec30e3..8a492a83b3df 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java
@@ -87,7 +87,7 @@ public class AuthContainerView extends LinearLayout
@VisibleForTesting @Nullable AuthBiometricView mBiometricView;
@VisibleForTesting @Nullable AuthCredentialView mCredentialView;
- private final ImageView mBackgroundView;
+ @VisibleForTesting final ImageView mBackgroundView;
@VisibleForTesting final ScrollView mBiometricScrollView;
private final View mPanelView;
@@ -333,6 +333,12 @@ public class AuthContainerView extends LinearLayout
throw new IllegalStateException("Unknown credential type: " + credentialType);
}
+ // The background is used for detecting taps / cancelling authentication. Since the
+ // credential view is full-screen and should not be canceled from background taps,
+ // disable it.
+ mBackgroundView.setOnClickListener(null);
+ mBackgroundView.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO);
+
mCredentialView.setContainerView(this);
mCredentialView.setEffectiveUserId(mEffectiveUserId);
mCredentialView.setCredentialType(credentialType);
@@ -583,11 +589,13 @@ public class AuthContainerView extends LinearLayout
* @return
*/
public static WindowManager.LayoutParams getLayoutParams(IBinder windowToken) {
+ final int windowFlags = WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED
+ | WindowManager.LayoutParams.FLAG_SECURE;
final WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL,
- WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
+ windowFlags,
PixelFormat.TRANSLUCENT);
lp.privateFlags |= WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS;
lp.setTitle("BiometricPrompt");
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java
index 8f2cf70a8184..68b05e358786 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthCredentialView.java
@@ -17,6 +17,7 @@
package com.android.systemui.biometrics;
import android.content.Context;
+import android.graphics.drawable.Drawable;
import android.hardware.biometrics.BiometricPrompt;
import android.os.AsyncTask;
import android.os.Bundle;
@@ -28,6 +29,7 @@ import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.view.accessibility.AccessibilityManager;
+import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
@@ -56,6 +58,7 @@ public abstract class AuthCredentialView extends LinearLayout {
private TextView mTitleView;
private TextView mSubtitleView;
private TextView mDescriptionView;
+ private ImageView mIconView;
protected TextView mErrorView;
protected @Utils.CredentialType int mCredentialType;
@@ -176,6 +179,16 @@ public abstract class AuthCredentialView extends LinearLayout {
setTextOrHide(mDescriptionView,
mBiometricPromptBundle.getString(BiometricPrompt.KEY_DESCRIPTION));
+ final boolean isManagedProfile = Utils.isManagedProfile(mContext, mEffectiveUserId);
+ final Drawable image;
+ if (isManagedProfile) {
+ image = getResources().getDrawable(R.drawable.auth_dialog_enterprise,
+ mContext.getTheme());
+ } else {
+ image = getResources().getDrawable(R.drawable.auth_dialog_lock, mContext.getTheme());
+ }
+ mIconView.setImageDrawable(image);
+
// Only animate this if we're transitioning from a biometric view.
if (mShouldAnimateContents) {
setTranslationY(getResources()
@@ -207,6 +220,7 @@ public abstract class AuthCredentialView extends LinearLayout {
mTitleView = findViewById(R.id.title);
mSubtitleView = findViewById(R.id.subtitle);
mDescriptionView = findViewById(R.id.description);
+ mIconView = findViewById(R.id.icon);
mErrorView = findViewById(R.id.error);
}
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
index e954163d51aa..2f1e4b41bd2d 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleController.java
@@ -414,7 +414,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
mNotificationEntryManager.addNotificationEntryListener(
new NotificationEntryListener() {
@Override
- public void onNotificationAdded(NotificationEntry entry) {
+ public void onPendingEntryAdded(NotificationEntry entry) {
onEntryAdded(entry);
}
@@ -429,12 +429,11 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
}
});
- mNotificationEntryManager.setNotificationRemoveInterceptor(
+ mNotificationEntryManager.addNotificationRemoveInterceptor(
new NotificationRemoveInterceptor() {
@Override
- public boolean onNotificationRemoveRequested(String key, int reason) {
- NotificationEntry entry =
- mNotificationEntryManager.getActiveNotificationUnfiltered(key);
+ public boolean onNotificationRemoveRequested(
+ String key, NotificationEntry entry, int reason) {
return shouldInterceptDismissal(entry, reason);
}
});
@@ -971,7 +970,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
* The cancellation of summaries with children associated with bubbles are also handled in this
* method. User-cancelled summaries are tracked by {@link BubbleData#addSummaryToSuppress}.
*
- * @return true if we want to intercept the dismissal of the entry, else false
+ * @return true if we want to intercept the dismissal of the entry, else false.
*/
public boolean shouldInterceptDismissal(NotificationEntry entry, int dismissReason) {
if (entry == null) {
@@ -1011,7 +1010,8 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
// The bubble notification sticks around in the data as long as the bubble is
// not dismissed and the app hasn't cancelled the notification.
Bubble bubble = mBubbleData.getBubbleWithKey(key);
- boolean bubbleExtended = entry != null && entry.isBubble() && userRemovedNotif;
+ boolean bubbleExtended = entry != null && entry.isBubble()
+ && (userRemovedNotif || isUserCreatedBubble(bubble.getKey()));
if (bubbleExtended) {
bubble.setSuppressNotification(true);
bubble.setShowDot(false /* show */, true /* animate */);
@@ -1020,8 +1020,7 @@ public class BubbleController implements ConfigurationController.ConfigurationLi
+ ".shouldInterceptDismissal");
}
return true;
- } else if (!userRemovedNotif && entry != null
- && !isUserCreatedBubble(bubble.getKey())) {
+ } else if (!userRemovedNotif && entry != null) {
// This wasn't a user removal so we should remove the bubble as well
mBubbleData.notificationEntryRemoved(entry, DISMISS_NOTIF_CANCEL);
return false;
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java
index fa1392644735..50a50633f43c 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleExpandedView.java
@@ -448,12 +448,8 @@ public class BubbleExpandedView extends LinearLayout implements View.OnClickList
int bottomInset = getRootWindowInsets() != null
? getRootWindowInsets().getStableInsetBottom()
: 0;
- int mh = mDisplaySize.y - windowLocation[1] - mSettingsIconHeight - mPointerHeight
+ return mDisplaySize.y - windowLocation[1] - mSettingsIconHeight - mPointerHeight
- mPointerMargin - bottomInset;
- Log.i(TAG, "max exp height: " + mh);
-// return mDisplaySize.y - windowLocation[1] - mSettingsIconHeight - mPointerHeight
-// - mPointerMargin - bottomInset;
- return mh;
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java
index 4194352f93bd..5b9ea7dd5e3a 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java
@@ -431,7 +431,7 @@ public class BubbleFlyoutView extends FrameLayout {
final float interpolatedRadius = getInterpolatedRadius();
rectPath.addRoundRect(mBgRect, interpolatedRadius,
interpolatedRadius, Path.Direction.CW);
- outline.setConvexPath(rectPath);
+ outline.setPath(rectPath);
// Get rid of the triangle path once it has disappeared behind the flyout.
if (mPercentStillFlyout > 0.5f) {
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java
index 6062a3d45be0..20d19ece575c 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java
@@ -533,10 +533,6 @@ public class BubbleStackView extends FrameLayout {
mBubbleContainer.addView(mOverflowBtn, 0,
new FrameLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
- mOverflowBtn.setOnClickListener(v -> {
- setSelectedBubble(null);
- });
-
TypedArray ta = mContext.obtainStyledAttributes(
new int[]{android.R.attr.colorBackgroundFloating});
int bgColor = ta.getColor(0, Color.WHITE /* default */);
@@ -856,6 +852,10 @@ public class BubbleStackView extends FrameLayout {
updateBubbleZOrdersAndDotPosition(false /* animate */);
}
+ void showOverflow() {
+ setSelectedBubble(null);
+ }
+
/**
* Changes the currently selected bubble. If the stack is already expanded, the newly selected
* bubble will be shown immediately. This does not change the expanded state or change the
@@ -950,6 +950,10 @@ public class BubbleStackView extends FrameLayout {
}
if (mIsExpanded) {
if (isIntersecting(mBubbleContainer, x, y)) {
+ if (BubbleExperimentConfig.allowBubbleOverflow(mContext)
+ && isIntersecting(mOverflowBtn, x, y)) {
+ return mOverflowBtn;
+ }
// Could be tapping or dragging a bubble while expanded
for (int i = 0; i < getBubbleCount(); i++) {
BadgedImageView view = (BadgedImageView) mBubbleContainer.getChildAt(i);
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleTouchHandler.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleTouchHandler.java
index fdeaf1f016c3..5a9d44b6da2c 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleTouchHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleTouchHandler.java
@@ -24,6 +24,7 @@ import android.view.View;
import android.view.ViewConfiguration;
import com.android.systemui.Dependency;
+import com.android.systemui.R;
/**
* Handles interpreting touches on a {@link BubbleStackView}. This includes expanding, collapsing,
@@ -109,6 +110,10 @@ class BubbleTouchHandler implements View.OnTouchListener {
if (!(mTouchedView instanceof BadgedImageView)
&& !(mTouchedView instanceof BubbleStackView)
&& !(mTouchedView instanceof BubbleFlyoutView)) {
+
+ if (mTouchedView.getId() == R.id.bubble_overflow_button) {
+ mStack.showOverflow();
+ }
// Not touching anything touchable, but we shouldn't collapse (e.g. touching edge
// of expanded view).
mStack.hideBubbleMenu();
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/animation/ExpandedAnimationController.java b/packages/SystemUI/src/com/android/systemui/bubbles/animation/ExpandedAnimationController.java
index aa549dc23f9b..607b5ef9b2c2 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/animation/ExpandedAnimationController.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/animation/ExpandedAnimationController.java
@@ -388,8 +388,11 @@ public class ExpandedAnimationController
mBubblesMaxRendered = res.getInteger(R.integer.bubbles_max_rendered);
// Includes overflow button.
- float totalGapWidth = getWidthForDisplayingBubbles() - (mExpandedViewPadding * 2)
- - (mBubblesMaxRendered + 1) * mBubbleSizePx;
+ // TODO(b/148675523) this is a temporary work around; change back once we have proper fix.
+// float totalGapWidth = getWidthForDisplayingBubbles() - (mExpandedViewPadding * 2)
+// - (mBubblesMaxRendered + 1) * mBubbleSizePx;
+ float totalGapWidth = getAvailableScreenWidth(true /* includeStableInsets */)
+ - (mExpandedViewPadding * 2) - (mBubblesMaxRendered + 1) * mBubbleSizePx;
mSpaceBetweenBubbles = totalGapWidth / mBubblesMaxRendered;
// Ensure that all child views are at 1x scale, and visible, in case they were animating
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ControlStatus.kt b/packages/SystemUI/src/com/android/systemui/controls/ControlStatus.kt
index e6cdf50580d8..53841e2f144b 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ControlStatus.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ControlStatus.kt
@@ -18,4 +18,8 @@ package com.android.systemui.controls
import android.service.controls.Control
-data class ControlStatus(val control: Control, val favorite: Boolean, val removed: Boolean = false) \ No newline at end of file
+data class ControlStatus(
+ val control: Control,
+ val favorite: Boolean,
+ val removed: Boolean = false
+) \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ControlsServiceInfo.kt b/packages/SystemUI/src/com/android/systemui/controls/ControlsServiceInfo.kt
index 265ddd8043b6..588ef5c4e68f 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ControlsServiceInfo.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ControlsServiceInfo.kt
@@ -22,7 +22,7 @@ import com.android.settingslib.applications.DefaultAppInfo
class ControlsServiceInfo(
context: Context,
- serviceInfo: ServiceInfo
+ val serviceInfo: ServiceInfo
) : DefaultAppInfo(
context,
context.packageManager,
diff --git a/packages/SystemUI/src/com/android/systemui/controls/UserAwareController.kt b/packages/SystemUI/src/com/android/systemui/controls/UserAwareController.kt
new file mode 100644
index 000000000000..4f39f2255a75
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/controls/UserAwareController.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.controls
+
+import android.os.UserHandle
+
+interface UserAwareController {
+
+ fun changeUser(newUser: UserHandle) {}
+ val currentUserId: Int
+} \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingController.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingController.kt
index 6b7fc4b7e827..12c3ce9c69ee 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingController.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingController.kt
@@ -19,8 +19,9 @@ package com.android.systemui.controls.controller
import android.content.ComponentName
import android.service.controls.Control
import android.service.controls.actions.ControlAction
+import com.android.systemui.controls.UserAwareController
-interface ControlsBindingController {
+interface ControlsBindingController : UserAwareController {
fun bindAndLoad(component: ComponentName, callback: (List<Control>) -> Unit)
fun bindServices(components: List<ComponentName>)
fun subscribe(controls: List<ControlInfo>)
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt
index 2db2cf1af191..0a2a9255c3ea 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsBindingControllerImpl.kt
@@ -19,6 +19,7 @@ package com.android.systemui.controls.controller
import android.content.ComponentName
import android.content.Context
import android.os.IBinder
+import android.os.UserHandle
import android.service.controls.Control
import android.service.controls.IControlsActionCallback
import android.service.controls.IControlsLoadCallback
@@ -50,12 +51,17 @@ open class ControlsBindingControllerImpl @Inject constructor(
private val refreshing = AtomicBoolean(false)
+ private var currentUser = context.user
+
+ override val currentUserId: Int
+ get() = currentUser.identifier
+
@GuardedBy("componentMap")
private val tokenMap: MutableMap<IBinder, ControlsProviderLifecycleManager> =
ArrayMap<IBinder, ControlsProviderLifecycleManager>()
@GuardedBy("componentMap")
- private val componentMap: MutableMap<ComponentName, ControlsProviderLifecycleManager> =
- ArrayMap<ComponentName, ControlsProviderLifecycleManager>()
+ private val componentMap: MutableMap<Key, ControlsProviderLifecycleManager> =
+ ArrayMap<Key, ControlsProviderLifecycleManager>()
private val loadCallbackService = object : IControlsLoadCallback.Stub() {
override fun accept(token: IBinder, controls: MutableList<Control>) {
@@ -103,6 +109,7 @@ open class ControlsBindingControllerImpl @Inject constructor(
loadCallbackService,
actionCallbackService,
subscriberService,
+ currentUser,
component
)
}
@@ -110,7 +117,7 @@ open class ControlsBindingControllerImpl @Inject constructor(
private fun retrieveLifecycleManager(component: ComponentName):
ControlsProviderLifecycleManager {
synchronized(componentMap) {
- val provider = componentMap.getOrPut(component) {
+ val provider = componentMap.getOrPut(Key(component, currentUser)) {
createProviderManager(component)
}
tokenMap.putIfAbsent(provider.token, provider)
@@ -137,7 +144,7 @@ open class ControlsBindingControllerImpl @Inject constructor(
val providersWithFavorites = controlsByComponentName.keys
synchronized(componentMap) {
componentMap.forEach {
- if (it.key !in providersWithFavorites) {
+ if (it.key.component !in providersWithFavorites) {
backgroundExecutor.execute { it.value.unbindService() }
}
}
@@ -163,8 +170,38 @@ open class ControlsBindingControllerImpl @Inject constructor(
override fun bindServices(components: List<ComponentName>) {
components.forEach {
val provider = retrieveLifecycleManager(it)
- backgroundExecutor.execute { provider.bindPermanently() }
+ backgroundExecutor.execute { provider.bindService() }
+ }
+ }
+
+ override fun changeUser(newUser: UserHandle) {
+ if (newUser == currentUser) return
+ synchronized(componentMap) {
+ unbindAllProvidersLocked() // unbind all providers from the old user
}
+ refreshing.set(false)
+ currentUser = newUser
+ }
+
+ private fun unbindAllProvidersLocked() {
+ componentMap.values.forEach {
+ if (it.user == currentUser) {
+ it.unbindService()
+ }
+ }
+ }
+
+ override fun toString(): String {
+ return StringBuilder(" ControlsBindingController:\n").apply {
+ append(" refreshing=${refreshing.get()}\n")
+ append(" currentUser=$currentUser\n")
+ append(" Providers:\n")
+ synchronized(componentMap) {
+ componentMap.values.forEach {
+ append(" $it\n")
+ }
+ }
+ }.toString()
}
private abstract inner class CallbackRunnable(val token: IBinder) : Runnable {
@@ -183,6 +220,10 @@ open class ControlsBindingControllerImpl @Inject constructor(
Log.e(TAG, "No provider found for token:$token")
return
}
+ if (provider.user != currentUser) {
+ Log.e(TAG, "User ${provider.user} is not current user")
+ return
+ }
synchronized(componentMap) {
if (token !in tokenMap.keys) {
Log.e(TAG, "Provider for token:$token does not exist anymore")
@@ -192,7 +233,7 @@ open class ControlsBindingControllerImpl @Inject constructor(
provider.lastLoadCallback?.invoke(list) ?: run {
Log.w(TAG, "Null callback")
}
- provider.maybeUnbindAndRemoveCallback()
+ provider.unbindService()
}
}
@@ -204,6 +245,10 @@ open class ControlsBindingControllerImpl @Inject constructor(
if (!refreshing.get()) {
Log.d(TAG, "onRefresh outside of window from:${provider?.componentName}")
}
+ if (provider?.user != currentUser) {
+ Log.e(TAG, "User ${provider?.user} is not current user")
+ return
+ }
provider?.let {
lazyController.get().refreshStatus(it.componentName, control)
}
@@ -229,7 +274,7 @@ open class ControlsBindingControllerImpl @Inject constructor(
) : CallbackRunnable(token) {
override fun run() {
provider?.let {
- Log.i(TAG, "onComplete receive from '${provider?.componentName}'")
+ Log.i(TAG, "onComplete receive from '${provider.componentName}'")
}
}
}
@@ -240,7 +285,7 @@ open class ControlsBindingControllerImpl @Inject constructor(
) : CallbackRunnable(token) {
override fun run() {
provider?.let {
- Log.e(TAG, "onError receive from '${provider?.componentName}': $error")
+ Log.e(TAG, "onError receive from '${provider.componentName}': $error")
}
}
}
@@ -251,9 +296,15 @@ open class ControlsBindingControllerImpl @Inject constructor(
@ControlAction.ResponseResult val response: Int
) : CallbackRunnable(token) {
override fun run() {
+ if (provider?.user != currentUser) {
+ Log.e(TAG, "User ${provider?.user} is not current user")
+ return
+ }
provider?.let {
lazyController.get().onActionResponse(it.componentName, controlId, response)
}
}
}
}
+
+private data class Key(val component: ComponentName, val user: UserHandle) \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsController.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsController.kt
index e098faa00d03..b3ba2b22f6df 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsController.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsController.kt
@@ -20,14 +20,16 @@ import android.content.ComponentName
import android.service.controls.Control
import android.service.controls.actions.ControlAction
import com.android.systemui.controls.ControlStatus
+import com.android.systemui.controls.UserAwareController
-interface ControlsController {
+interface ControlsController : UserAwareController {
val available: Boolean
fun getFavoriteControls(): List<ControlInfo>
fun loadForComponent(componentName: ComponentName, callback: (List<ControlStatus>) -> Unit)
fun subscribeToFavorites()
fun changeFavoriteStatus(controlInfo: ControlInfo, state: Boolean)
+ fun countFavoritesForComponent(componentName: ComponentName): Int = 0
fun unsubscribe()
fun action(controlInfo: ControlInfo, action: ControlAction)
fun refreshStatus(componentName: ComponentName, control: Control)
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt
index d5b5b5f0442e..7de1557ebc65 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsControllerImpl.kt
@@ -17,26 +17,36 @@
package com.android.systemui.controls.controller
import android.app.PendingIntent
+import android.content.BroadcastReceiver
import android.content.ComponentName
+import android.content.ContentResolver
import android.content.Context
import android.content.Intent
+import android.content.IntentFilter
+import android.database.ContentObserver
+import android.net.Uri
import android.os.Environment
+import android.os.UserHandle
import android.provider.Settings
import android.service.controls.Control
import android.service.controls.actions.ControlAction
import android.util.ArrayMap
import android.util.Log
import com.android.internal.annotations.GuardedBy
+import com.android.internal.annotations.VisibleForTesting
import com.android.systemui.DumpController
import com.android.systemui.Dumpable
+import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.controls.ControlStatus
import com.android.systemui.controls.management.ControlsFavoritingActivity
+import com.android.systemui.controls.management.ControlsListingController
import com.android.systemui.controls.ui.ControlsUiController
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.util.concurrency.DelayableExecutor
import java.io.FileDescriptor
import java.io.PrintWriter
import java.util.Optional
+import java.util.concurrent.TimeUnit
import javax.inject.Inject
import javax.inject.Singleton
@@ -46,35 +56,124 @@ class ControlsControllerImpl @Inject constructor (
@Background private val executor: DelayableExecutor,
private val uiController: ControlsUiController,
private val bindingController: ControlsBindingController,
- private val optionalWrapper: Optional<ControlsFavoritePersistenceWrapper>,
+ private val listingController: ControlsListingController,
+ private val broadcastDispatcher: BroadcastDispatcher,
+ optionalWrapper: Optional<ControlsFavoritePersistenceWrapper>,
dumpController: DumpController
) : Dumpable, ControlsController {
companion object {
private const val TAG = "ControlsControllerImpl"
- const val CONTROLS_AVAILABLE = "systemui.controls_available"
+ internal const val CONTROLS_AVAILABLE = "systemui.controls_available"
+ internal val URI = Settings.Secure.getUriFor(CONTROLS_AVAILABLE)
+ private const val USER_CHANGE_RETRY_DELAY = 500L // ms
}
- override val available = Settings.Secure.getInt(
- context.contentResolver, CONTROLS_AVAILABLE, 0) != 0
- val persistenceWrapper = optionalWrapper.orElseGet {
+ // Map of map: ComponentName -> (String -> ControlInfo).
+ // Only for current user
+ @GuardedBy("currentFavorites")
+ private val currentFavorites = ArrayMap<ComponentName, MutableMap<String, ControlInfo>>()
+
+ private var userChanging: Boolean = true
+
+ private val contentResolver: ContentResolver
+ get() = context.contentResolver
+ override var available = Settings.Secure.getInt(contentResolver, CONTROLS_AVAILABLE, 0) != 0
+ private set
+
+ private var currentUser = context.user
+ override val currentUserId
+ get() = currentUser.identifier
+
+ private val persistenceWrapper = optionalWrapper.orElseGet {
ControlsFavoritePersistenceWrapper(
Environment.buildPath(
- context.filesDir,
- ControlsFavoritePersistenceWrapper.FILE_NAME),
+ context.filesDir,
+ ControlsFavoritePersistenceWrapper.FILE_NAME
+ ),
executor
)
}
- // Map of map: ComponentName -> (String -> ControlInfo)
- @GuardedBy("currentFavorites")
- private val currentFavorites = ArrayMap<ComponentName, MutableMap<String, ControlInfo>>()
+ private fun setValuesForUser(newUser: UserHandle) {
+ Log.d(TAG, "Changing to user: $newUser")
+ currentUser = newUser
+ val userContext = context.createContextAsUser(currentUser, 0)
+ val fileName = Environment.buildPath(
+ userContext.filesDir, ControlsFavoritePersistenceWrapper.FILE_NAME)
+ persistenceWrapper.changeFile(fileName)
+ available = Settings.Secure.getIntForUser(contentResolver, CONTROLS_AVAILABLE,
+ /* default */ 0, newUser.identifier) != 0
+ synchronized(currentFavorites) {
+ currentFavorites.clear()
+ }
+ if (available) {
+ loadFavorites()
+ }
+ bindingController.changeUser(newUser)
+ listingController.changeUser(newUser)
+ userChanging = false
+ }
+
+ private val userSwitchReceiver = object : BroadcastReceiver() {
+ override fun onReceive(context: Context, intent: Intent) {
+ if (intent.action == Intent.ACTION_USER_SWITCHED) {
+ userChanging = true
+ val newUser =
+ UserHandle.of(intent.getIntExtra(Intent.EXTRA_USER_HANDLE, sendingUserId))
+ if (currentUser == newUser) {
+ userChanging = false
+ return
+ }
+ setValuesForUser(newUser)
+ }
+ }
+ }
+
+ @VisibleForTesting
+ internal val settingObserver = object : ContentObserver(null) {
+ override fun onChange(selfChange: Boolean, uri: Uri, userId: Int) {
+ // Do not listen to changes in the middle of user change, those will be read by the
+ // user-switch receiver.
+ if (userChanging || userId != currentUserId) {
+ return
+ }
+ available = Settings.Secure.getIntForUser(contentResolver, CONTROLS_AVAILABLE,
+ /* default */ 0, currentUserId) != 0
+ synchronized(currentFavorites) {
+ currentFavorites.clear()
+ }
+ if (available) {
+ loadFavorites()
+ }
+ }
+ }
init {
+ dumpController.registerDumpable(this)
if (available) {
- dumpController.registerDumpable(this)
loadFavorites()
}
+ userChanging = false
+ broadcastDispatcher.registerReceiver(
+ userSwitchReceiver,
+ IntentFilter(Intent.ACTION_USER_SWITCHED),
+ executor,
+ UserHandle.ALL
+ )
+ contentResolver.registerContentObserver(URI, false, settingObserver, UserHandle.USER_ALL)
+ }
+
+ private fun confirmAvailability(): Boolean {
+ if (userChanging) {
+ Log.w(TAG, "Controls not available while user is changing")
+ return false
+ }
+ if (!available) {
+ Log.d(TAG, "Controls not available")
+ return false
+ }
+ return true
}
private fun loadFavorites() {
@@ -91,8 +190,18 @@ class ControlsControllerImpl @Inject constructor (
componentName: ComponentName,
callback: (List<ControlStatus>) -> Unit
) {
- if (!available) {
- Log.d(TAG, "Controls not available")
+ if (!confirmAvailability()) {
+ if (userChanging) {
+ // Try again later, userChanging should not last forever. If so, we have bigger
+ // problems
+ executor.executeDelayed(
+ { loadForComponent(componentName, callback) },
+ USER_CHANGE_RETRY_DELAY,
+ TimeUnit.MILLISECONDS
+ )
+ } else {
+ callback(emptyList())
+ }
return
}
bindingController.bindAndLoad(componentName) {
@@ -158,10 +267,7 @@ class ControlsControllerImpl @Inject constructor (
}
override fun subscribeToFavorites() {
- if (!available) {
- Log.d(TAG, "Controls not available")
- return
- }
+ if (!confirmAvailability()) return
// Make a copy of the favorites list
val favorites = synchronized(currentFavorites) {
currentFavorites.flatMap { it.value.values.toList() }
@@ -170,18 +276,12 @@ class ControlsControllerImpl @Inject constructor (
}
override fun unsubscribe() {
- if (!available) {
- Log.d(TAG, "Controls not available")
- return
- }
+ if (!confirmAvailability()) return
bindingController.unsubscribe()
}
override fun changeFavoriteStatus(controlInfo: ControlInfo, state: Boolean) {
- if (!available) {
- Log.d(TAG, "Controls not available")
- return
- }
+ if (!confirmAvailability()) return
var changed = false
val listOfControls = synchronized(currentFavorites) {
if (state) {
@@ -211,7 +311,7 @@ class ControlsControllerImpl @Inject constructor (
}
override fun refreshStatus(componentName: ComponentName, control: Control) {
- if (!available) {
+ if (!confirmAvailability()) {
Log.d(TAG, "Controls not available")
return
}
@@ -227,28 +327,24 @@ class ControlsControllerImpl @Inject constructor (
}
override fun onActionResponse(componentName: ComponentName, controlId: String, response: Int) {
- if (!available) {
- Log.d(TAG, "Controls not available")
- return
- }
+ if (!confirmAvailability()) return
uiController.onActionResponse(componentName, controlId, response)
}
override fun getFavoriteControls(): List<ControlInfo> {
- if (!available) {
- Log.d(TAG, "Controls not available")
- return emptyList()
- }
+ if (!confirmAvailability()) return emptyList()
synchronized(currentFavorites) {
return favoritesAsListLocked()
}
}
override fun action(controlInfo: ControlInfo, action: ControlAction) {
+ if (!confirmAvailability()) return
bindingController.action(controlInfo, action)
}
override fun clearFavorites() {
+ if (!confirmAvailability()) return
val changed = synchronized(currentFavorites) {
currentFavorites.isNotEmpty().also {
currentFavorites.clear()
@@ -259,8 +355,17 @@ class ControlsControllerImpl @Inject constructor (
}
}
+ override fun countFavoritesForComponent(componentName: ComponentName): Int {
+ return synchronized(currentFavorites) {
+ currentFavorites.get(componentName)?.size ?: 0
+ }
+ }
+
override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<out String>) {
pw.println("ControlsController state:")
+ pw.println(" Available: $available")
+ pw.println(" Changing users: $userChanging")
+ pw.println(" Current user: ${currentUser.identifier}")
pw.println(" Favorites:")
synchronized(currentFavorites) {
currentFavorites.forEach {
@@ -269,5 +374,6 @@ class ControlsControllerImpl @Inject constructor (
}
}
}
+ pw.println(bindingController.toString())
}
-}
+} \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt
index 6f2d71fd0f59..7d1df14bbf1b 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt
@@ -16,7 +16,6 @@
package com.android.systemui.controls.controller
-import android.app.ActivityManager
import android.content.ComponentName
import android.util.AtomicFile
import android.util.Log
@@ -32,8 +31,8 @@ import java.io.FileNotFoundException
import java.io.IOException
class ControlsFavoritePersistenceWrapper(
- val file: File,
- val executor: DelayableExecutor
+ private var file: File,
+ private var executor: DelayableExecutor
) {
companion object {
@@ -47,11 +46,13 @@ class ControlsFavoritePersistenceWrapper(
private const val TAG_TYPE = "type"
}
- val currentUser: Int
- get() = ActivityManager.getCurrentUser()
+ fun changeFile(fileName: File) {
+ file = fileName
+ }
fun storeFavorites(list: List<ControlInfo>) {
executor.execute {
+ Log.d(TAG, "Saving data to file: $file")
val atomicFile = AtomicFile(file)
val writer = try {
atomicFile.startWrite()
@@ -98,6 +99,7 @@ class ControlsFavoritePersistenceWrapper(
return emptyList()
}
try {
+ Log.d(TAG, "Reading data from file: $file")
val parser = Xml.newPullParser()
parser.setInput(reader, null)
return parseXml(parser)
@@ -111,7 +113,7 @@ class ControlsFavoritePersistenceWrapper(
}
private fun parseXml(parser: XmlPullParser): List<ControlInfo> {
- var type: Int = 0
+ var type = 0
val infos = mutableListOf<ControlInfo>()
while (parser.next().also { type = it } != XmlPullParser.END_DOCUMENT) {
if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
@@ -123,9 +125,9 @@ class ControlsFavoritePersistenceWrapper(
parser.getAttributeValue(null, TAG_COMPONENT))
val id = parser.getAttributeValue(null, TAG_ID)
val title = parser.getAttributeValue(null, TAG_TITLE)
- val type = parser.getAttributeValue(null, TAG_TYPE)?.toInt()
- if (component != null && id != null && title != null && type != null) {
- infos.add(ControlInfo(component, id, title, type))
+ val deviceType = parser.getAttributeValue(null, TAG_TYPE)?.toInt()
+ if (component != null && id != null && title != null && deviceType != null) {
+ infos.add(ControlInfo(component, id, title, deviceType))
}
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManager.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManager.kt
index 99aa3601ba30..b4bd82c84e1a 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManager.kt
@@ -24,6 +24,7 @@ import android.os.Binder
import android.os.Bundle
import android.os.IBinder
import android.os.RemoteException
+import android.os.UserHandle
import android.service.controls.Control
import android.service.controls.ControlsProviderService.CALLBACK_BUNDLE
import android.service.controls.ControlsProviderService.CALLBACK_TOKEN
@@ -46,6 +47,7 @@ class ControlsProviderLifecycleManager(
private val loadCallbackService: IControlsLoadCallback.Stub,
private val actionCallbackService: IControlsActionCallback.Stub,
private val subscriberService: IControlsSubscriber.Stub,
+ val user: UserHandle,
val componentName: ComponentName
) : IBinder.DeathRecipient {
@@ -54,9 +56,7 @@ class ControlsProviderLifecycleManager(
val token: IBinder = Binder()
@GuardedBy("subscriptions")
private val subscriptions = mutableListOf<IControlsSubscription>()
- private var unbindImmediate = false
private var requiresBound = false
- private var isBound = false
@GuardedBy("queuedMessages")
private val queuedMessages: MutableSet<Message> = ArraySet()
private var wrapper: ServiceWrapper? = null
@@ -96,30 +96,22 @@ class ControlsProviderLifecycleManager(
}
bindTryCount++
try {
- isBound = context.bindService(intent, serviceConnection, BIND_FLAGS)
+ context.bindServiceAsUser(intent, serviceConnection, BIND_FLAGS, user)
} catch (e: SecurityException) {
Log.e(TAG, "Failed to bind to service", e)
- isBound = false
}
} else {
if (DEBUG) {
Log.d(TAG, "Unbinding service $intent")
}
bindTryCount = 0
- wrapper = null
- if (isBound) {
+ wrapper?.run {
context.unbindService(serviceConnection)
- isBound = false
}
+ wrapper = null
}
}
- fun bindPermanently() {
- unbindImmediate = false
- unqueueMessage(Message.Unbind)
- bindService(true)
- }
-
private val serviceConnection = object : ServiceConnection {
override fun onServiceConnected(name: ComponentName, service: IBinder) {
if (DEBUG) Log.d(TAG, "onServiceConnected $name")
@@ -133,7 +125,7 @@ class ControlsProviderLifecycleManager(
override fun onServiceDisconnected(name: ComponentName?) {
if (DEBUG) Log.d(TAG, "onServiceDisconnected $name")
- isBound = false
+ wrapper = null
bindService(false)
}
}
@@ -152,7 +144,9 @@ class ControlsProviderLifecycleManager(
load()
}
queue.filter { it is Message.Subscribe }.flatMap { (it as Message.Subscribe).list }.run {
- subscribe(this)
+ if (this.isNotEmpty()) {
+ subscribe(this)
+ }
}
queue.filter { it is Message.Action }.forEach {
val msg = it as Message.Action
@@ -193,6 +187,15 @@ class ControlsProviderLifecycleManager(
}
}
+ private fun invokeOrQueue(f: () -> Unit, msg: Message) {
+ wrapper?.run {
+ f()
+ } ?: run {
+ queueMessage(msg)
+ bindService(true)
+ }
+ }
+
fun maybeBindAndLoad(callback: LoadCallback) {
unqueueMessage(Message.Unbind)
lastLoadCallback = callback
@@ -201,22 +204,12 @@ class ControlsProviderLifecycleManager(
Log.d(TAG, "Timeout waiting onLoad for $componentName")
loadCallbackService.accept(token, emptyList())
}, LOAD_TIMEOUT, TimeUnit.MILLISECONDS)
- if (isBound) {
- load()
- } else {
- queueMessage(Message.Load)
- unbindImmediate = true
- bindService(true)
- }
+
+ invokeOrQueue(::load, Message.Load)
}
fun maybeBindAndSubscribe(controlIds: List<String>) {
- if (isBound) {
- subscribe(controlIds)
- } else {
- queueMessage(Message.Subscribe(controlIds))
- bindService(true)
- }
+ invokeOrQueue({ subscribe(controlIds) }, Message.Subscribe(controlIds))
}
private fun subscribe(controlIds: List<String>) {
@@ -230,12 +223,7 @@ class ControlsProviderLifecycleManager(
}
fun maybeBindAndSendAction(controlId: String, action: ControlAction) {
- if (isBound) {
- action(controlId, action)
- } else {
- queueMessage(Message.Action(controlId, action))
- bindService(true)
- }
+ invokeOrQueue({ action(controlId, action) }, Message.Action(controlId, action))
}
private fun action(controlId: String, action: ControlAction) {
@@ -272,18 +260,25 @@ class ControlsProviderLifecycleManager(
}
}
- fun maybeUnbindAndRemoveCallback() {
+ fun bindService() {
+ unqueueMessage(Message.Unbind)
+ bindService(true)
+ }
+
+ fun unbindService() {
lastLoadCallback = null
onLoadCanceller?.run()
onLoadCanceller = null
- if (unbindImmediate) {
- bindService(false)
- }
+
+ bindService(false)
}
- fun unbindService() {
- unbindImmediate = true
- maybeUnbindAndRemoveCallback()
+ override fun toString(): String {
+ return StringBuilder("ControlsProviderLifecycleManager(").apply {
+ append("component=$componentName")
+ append(", user=$user")
+ append(")")
+ }.toString()
}
sealed class Message {
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/AppAdapter.kt b/packages/SystemUI/src/com/android/systemui/controls/management/AppAdapter.kt
index d62bb4def3aa..b12243964fc1 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/AppAdapter.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/AppAdapter.kt
@@ -17,13 +17,16 @@
package com.android.systemui.controls.management
import android.content.ComponentName
+import android.content.res.Resources
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleOwner
import androidx.recyclerview.widget.RecyclerView
+import com.android.settingslib.applications.DefaultAppInfo
import com.android.settingslib.widget.CandidateInfo
import com.android.systemui.R
import java.util.concurrent.Executor
@@ -45,7 +48,8 @@ class AppAdapter(
lifecycle: Lifecycle,
controlsListingController: ControlsListingController,
private val layoutInflater: LayoutInflater,
- private val onAppSelected: (ComponentName?) -> Unit = {}
+ private val onAppSelected: (ComponentName?) -> Unit = {},
+ private val favoritesRenderer: FavoritesRenderer
) : RecyclerView.Adapter<AppAdapter.Holder>() {
private var listOfServices = emptyList<CandidateInfo>()
@@ -53,7 +57,9 @@ class AppAdapter(
private val callback = object : ControlsListingController.ControlsListingCallback {
override fun onServicesUpdated(list: List<CandidateInfo>) {
uiExecutor.execute {
- listOfServices = list
+ listOfServices = list.sortedBy {
+ it.loadLabel().toString()
+ }
notifyDataSetChanged()
}
}
@@ -64,7 +70,8 @@ class AppAdapter(
}
override fun onCreateViewHolder(parent: ViewGroup, i: Int): Holder {
- return Holder(layoutInflater.inflate(R.layout.app_item, parent, false))
+ return Holder(layoutInflater.inflate(R.layout.controls_app_item, parent, false),
+ favoritesRenderer)
}
override fun getItemCount() = listOfServices.size
@@ -79,9 +86,10 @@ class AppAdapter(
/**
* Holder for binding views in the [RecyclerView]-
*/
- class Holder(view: View) : RecyclerView.ViewHolder(view) {
+ class Holder(view: View, val favRenderer: FavoritesRenderer) : RecyclerView.ViewHolder(view) {
private val icon: ImageView = itemView.requireViewById(com.android.internal.R.id.icon)
private val title: TextView = itemView.requireViewById(com.android.internal.R.id.title)
+ private val favorites: TextView = itemView.requireViewById(R.id.favorites)
/**
* Bind data to the view
@@ -90,6 +98,19 @@ class AppAdapter(
fun bindData(data: CandidateInfo) {
icon.setImageDrawable(data.loadIcon())
title.text = data.loadLabel()
+ favorites.text = favRenderer.renderFavoritesForComponent(
+ (data as DefaultAppInfo).componentName)
}
}
+}
+
+class FavoritesRenderer(
+ private val resources: Resources,
+ private val favoriteFunction: (ComponentName) -> Int
+) {
+
+ fun renderFavoritesForComponent(component: ComponentName): String {
+ val qty = favoriteFunction(component)
+ return resources.getQuantityString(R.plurals.controls_number_of_favorites, qty, qty)
+ }
} \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt
index e6d3c26ea7b8..65dcc2b193d5 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlAdapter.kt
@@ -16,15 +16,20 @@
package com.android.systemui.controls.management
+import android.graphics.Rect
+import android.graphics.drawable.Icon
+import android.service.controls.DeviceTypes
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.CheckBox
+import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.android.systemui.R
import com.android.systemui.controls.ControlStatus
import com.android.systemui.controls.controller.ControlInfo
+import com.android.systemui.controls.ui.RenderInfo
/**
* Adapter for binding [Control] information to views.
@@ -43,7 +48,12 @@ class ControlAdapter(
var listOfControls = emptyList<ControlStatus>()
override fun onCreateViewHolder(parent: ViewGroup, i: Int): Holder {
- return Holder(layoutInflater.inflate(R.layout.control_item, parent, false))
+ return Holder(layoutInflater.inflate(R.layout.controls_base_item, parent, false).apply {
+ layoutParams.apply {
+ width = ViewGroup.LayoutParams.MATCH_PARENT
+ }
+ elevation = 15f
+ })
}
override fun getItemCount() = listOfControls.size
@@ -56,9 +66,13 @@ class ControlAdapter(
* Holder for binding views in the [RecyclerView]-
*/
class Holder(view: View) : RecyclerView.ViewHolder(view) {
+ private val icon: ImageView = itemView.requireViewById(R.id.icon)
private val title: TextView = itemView.requireViewById(R.id.title)
private val subtitle: TextView = itemView.requireViewById(R.id.subtitle)
- private val favorite: CheckBox = itemView.requireViewById(R.id.favorite)
+ private val removed: TextView = itemView.requireViewById(R.id.status)
+ private val favorite: CheckBox = itemView.requireViewById<CheckBox>(R.id.favorite).apply {
+ visibility = View.VISIBLE
+ }
/**
* Bind data to the view
@@ -68,9 +82,11 @@ class ControlAdapter(
* pre-populated with the [Control] information and the new favorite status.
*/
fun bindData(data: ControlStatus, callback: (ControlInfo.Builder, Boolean) -> Unit) {
+ val renderInfo = getRenderInfo(data.control.deviceType, data.favorite)
title.text = data.control.title
subtitle.text = data.control.subtitle
favorite.isChecked = data.favorite
+ removed.text = if (data.removed) "Removed" else ""
favorite.setOnClickListener {
val infoBuilder = ControlInfo.Builder().apply {
controlId = data.control.controlId
@@ -79,6 +95,25 @@ class ControlAdapter(
}
callback(infoBuilder, favorite.isChecked)
}
+ itemView.setOnClickListener {
+ favorite.performClick()
+ }
+ applyRenderInfo(renderInfo)
+ }
+
+ private fun getRenderInfo(
+ @DeviceTypes.DeviceType deviceType: Int,
+ favorite: Boolean
+ ): RenderInfo {
+ return RenderInfo.lookup(deviceType, favorite)
+ }
+
+ private fun applyRenderInfo(ri: RenderInfo) {
+ val context = itemView.context
+ val fg = context.getResources().getColorStateList(ri.foreground, context.getTheme())
+
+ icon.setImageIcon(Icon.createWithResource(context, ri.iconResourceId))
+ icon.setImageTintList(fg)
}
}
@@ -86,4 +121,23 @@ class ControlAdapter(
listOfControls = list
notifyDataSetChanged()
}
+}
+
+class MarginItemDecorator(
+ private val topMargin: Int,
+ private val sideMargins: Int
+) : RecyclerView.ItemDecoration() {
+
+ override fun getItemOffsets(
+ outRect: Rect,
+ view: View,
+ parent: RecyclerView,
+ state: RecyclerView.State
+ ) {
+ outRect.apply {
+ top = topMargin
+ left = sideMargins
+ right = sideMargins
+ }
+ }
} \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsFavoritingActivity.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsFavoritingActivity.kt
index 01c4fef67fd4..be5258344492 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsFavoritingActivity.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsFavoritingActivity.kt
@@ -20,17 +20,22 @@ import android.app.Activity
import android.content.ComponentName
import android.os.Bundle
import android.view.LayoutInflater
-import androidx.recyclerview.widget.LinearLayoutManager
+import android.widget.TextView
+import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import com.android.systemui.R
+import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.controls.controller.ControlInfo
import com.android.systemui.controls.controller.ControlsControllerImpl
import com.android.systemui.dagger.qualifiers.Main
+import com.android.systemui.settings.CurrentUserTracker
import java.util.concurrent.Executor
import javax.inject.Inject
class ControlsFavoritingActivity @Inject constructor(
@Main private val executor: Executor,
- private val controller: ControlsControllerImpl
+ private val controller: ControlsControllerImpl,
+ broadcastDispatcher: BroadcastDispatcher
) : Activity() {
companion object {
@@ -41,12 +46,25 @@ class ControlsFavoritingActivity @Inject constructor(
private lateinit var recyclerView: RecyclerView
private lateinit var adapter: ControlAdapter
+ private var component: ComponentName? = null
+
+ private val currentUserTracker = object : CurrentUserTracker(broadcastDispatcher) {
+ private val startingUser = controller.currentUserId
+
+ override fun onUserSwitched(newUserId: Int) {
+ if (newUserId != startingUser) {
+ stopTracking()
+ finish()
+ }
+ }
+ }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+ setContentView(R.layout.controls_management)
val app = intent.getCharSequenceExtra(EXTRA_APP)
- val component = intent.getParcelableExtra<ComponentName>(EXTRA_COMPONENT)
+ component = intent.getParcelableExtra<ComponentName>(EXTRA_COMPONENT)
// If we have no component name, there's not much we can do.
val callback = component?.let {
@@ -56,18 +74,23 @@ class ControlsFavoritingActivity @Inject constructor(
}
} ?: { _, _ -> Unit }
- recyclerView = RecyclerView(applicationContext)
+ recyclerView = requireViewById(R.id.list)
adapter = ControlAdapter(LayoutInflater.from(applicationContext), callback)
recyclerView.adapter = adapter
- recyclerView.layoutManager = LinearLayoutManager(applicationContext)
+ recyclerView.layoutManager = GridLayoutManager(applicationContext, 2)
+ val margin = resources.getDimensionPixelSize(R.dimen.controls_card_margin)
+ recyclerView.addItemDecoration(MarginItemDecorator(margin, margin))
- if (app != null) {
- setTitle("Controls for $app")
- } else {
- setTitle("Controls")
- }
- setContentView(recyclerView)
+ requireViewById<TextView>(R.id.title).text = app?.let { it }
+ ?: resources.getText(R.string.controls_favorite_default_title)
+ requireViewById<TextView>(R.id.subtitle).text =
+ resources.getText(R.string.controls_favorite_subtitle)
+
+ currentUserTracker.startTracking()
+ }
+ override fun onResume() {
+ super.onResume()
component?.let {
controller.loadForComponent(it) {
executor.execute {
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingController.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingController.kt
index 09e0ce9fea8d..34db684022fb 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingController.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingController.kt
@@ -18,14 +18,17 @@ package com.android.systemui.controls.management
import android.content.ComponentName
import com.android.settingslib.widget.CandidateInfo
+import com.android.systemui.controls.UserAwareController
import com.android.systemui.statusbar.policy.CallbackController
interface ControlsListingController :
- CallbackController<ControlsListingController.ControlsListingCallback> {
+ CallbackController<ControlsListingController.ControlsListingCallback>,
+ UserAwareController {
fun getCurrentServices(): List<CandidateInfo>
fun getAppLabel(name: ComponentName): CharSequence? = ""
+ @FunctionalInterface
interface ControlsListingCallback {
fun onServicesUpdated(list: List<CandidateInfo>)
}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt
index 3949c5929a85..882382cc4ade 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsListingControllerImpl.kt
@@ -19,6 +19,7 @@ package com.android.systemui.controls.management
import android.content.ComponentName
import android.content.Context
import android.content.pm.ServiceInfo
+import android.os.UserHandle
import android.service.controls.ControlsProviderService
import android.util.Log
import com.android.internal.annotations.VisibleForTesting
@@ -31,6 +32,16 @@ import java.util.concurrent.Executor
import javax.inject.Inject
import javax.inject.Singleton
+private fun createServiceListing(context: Context): ServiceListing {
+ return ServiceListing.Builder(context).apply {
+ setIntentAction(ControlsProviderService.SERVICE_CONTROLS)
+ setPermission("android.permission.BIND_CONTROLS")
+ setNoun("Controls Provider")
+ setSetting("controls_providers")
+ setTag("controls_providers")
+ }.build()
+}
+
/**
* Provides a listing of components to be used as ControlsServiceProvider.
*
@@ -43,41 +54,55 @@ import javax.inject.Singleton
class ControlsListingControllerImpl @VisibleForTesting constructor(
private val context: Context,
@Background private val backgroundExecutor: Executor,
- private val serviceListing: ServiceListing
+ private val serviceListingBuilder: (Context) -> ServiceListing
) : ControlsListingController {
@Inject
constructor(context: Context, executor: Executor): this(
context,
executor,
- ServiceListing.Builder(context)
- .setIntentAction(ControlsProviderService.SERVICE_CONTROLS)
- .setPermission("android.permission.BIND_CONTROLS")
- .setNoun("Controls Provider")
- .setSetting("controls_providers")
- .setTag("controls_providers")
- .build()
+ ::createServiceListing
)
+ private var serviceListing = serviceListingBuilder(context)
+
companion object {
private const val TAG = "ControlsListingControllerImpl"
}
private var availableServices = emptyList<ServiceInfo>()
- init {
- serviceListing.addCallback {
- Log.d(TAG, "ServiceConfig reloaded")
- availableServices = it.toList()
-
- backgroundExecutor.execute {
- callbacks.forEach {
- it.onServicesUpdated(getCurrentServices())
- }
+ override var currentUserId = context.userId
+ private set
+
+ private val serviceListingCallback = ServiceListing.Callback {
+ Log.d(TAG, "ServiceConfig reloaded")
+ availableServices = it.toList()
+
+ backgroundExecutor.execute {
+ callbacks.forEach {
+ it.onServicesUpdated(getCurrentServices())
}
}
}
+ init {
+ serviceListing.addCallback(serviceListingCallback)
+ }
+
+ override fun changeUser(newUser: UserHandle) {
+ backgroundExecutor.execute {
+ callbacks.clear()
+ availableServices = emptyList()
+ serviceListing.setListening(false)
+ serviceListing.removeCallback(serviceListingCallback)
+ currentUserId = newUser.identifier
+ val contextForUser = context.createContextAsUser(newUser, 0)
+ serviceListing = serviceListingBuilder(contextForUser)
+ serviceListing.addCallback(serviceListingCallback)
+ }
+ }
+
// All operations in background thread
private val callbacks = mutableSetOf<ControlsListingController.ControlsListingCallback>()
@@ -91,6 +116,7 @@ class ControlsListingControllerImpl @VisibleForTesting constructor(
*/
override fun addCallback(listener: ControlsListingController.ControlsListingCallback) {
backgroundExecutor.execute {
+ Log.d(TAG, "Subscribing callback")
callbacks.add(listener)
if (callbacks.size == 1) {
serviceListing.setListening(true)
@@ -108,6 +134,7 @@ class ControlsListingControllerImpl @VisibleForTesting constructor(
*/
override fun removeCallback(listener: ControlsListingController.ControlsListingCallback) {
backgroundExecutor.execute {
+ Log.d(TAG, "Unsubscribing callback")
callbacks.remove(listener)
if (callbacks.size == 0) {
serviceListing.setListening(false)
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt
index 69af516b4ac9..645e929d6a10 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt
@@ -20,9 +20,15 @@ import android.content.ComponentName
import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
+import android.widget.TextView
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import com.android.systemui.R
+import com.android.systemui.broadcast.BroadcastDispatcher
+import com.android.systemui.controls.controller.ControlsController
+import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main
+import com.android.systemui.settings.CurrentUserTracker
import com.android.systemui.util.LifecycleActivity
import java.util.concurrent.Executor
import javax.inject.Inject
@@ -32,7 +38,10 @@ import javax.inject.Inject
*/
class ControlsProviderSelectorActivity @Inject constructor(
@Main private val executor: Executor,
- private val listingController: ControlsListingController
+ @Background private val backExecutor: Executor,
+ private val listingController: ControlsListingController,
+ private val controlsController: ControlsController,
+ broadcastDispatcher: BroadcastDispatcher
) : LifecycleActivity() {
companion object {
@@ -40,16 +49,33 @@ class ControlsProviderSelectorActivity @Inject constructor(
}
private lateinit var recyclerView: RecyclerView
+ private val currentUserTracker = object : CurrentUserTracker(broadcastDispatcher) {
+ private val startingUser = listingController.currentUserId
+
+ override fun onUserSwitched(newUserId: Int) {
+ if (newUserId != startingUser) {
+ stopTracking()
+ finish()
+ }
+ }
+ }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+ setContentView(R.layout.controls_management)
- recyclerView = RecyclerView(applicationContext)
+ recyclerView = requireViewById(R.id.list)
recyclerView.adapter = AppAdapter(executor, lifecycle, listingController,
- LayoutInflater.from(this), ::launchFavoritingActivity)
+ LayoutInflater.from(this), ::launchFavoritingActivity,
+ FavoritesRenderer(resources, controlsController::countFavoritesForComponent))
recyclerView.layoutManager = LinearLayoutManager(applicationContext)
- setContentView(recyclerView)
+ requireViewById<TextView>(R.id.title).text =
+ resources.getText(R.string.controls_providers_title)
+ requireViewById<TextView>(R.id.subtitle).text =
+ resources.getText(R.string.controls_providers_subtitle)
+
+ currentUserTracker.startTracking()
}
/**
@@ -57,13 +83,17 @@ class ControlsProviderSelectorActivity @Inject constructor(
* @param component a component name for a [ControlsProviderService]
*/
fun launchFavoritingActivity(component: ComponentName?) {
- component?.let {
- val intent = Intent(applicationContext, ControlsFavoritingActivity::class.java).apply {
- putExtra(ControlsFavoritingActivity.EXTRA_APP, listingController.getAppLabel(it))
- putExtra(ControlsFavoritingActivity.EXTRA_COMPONENT, it)
- flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_SINGLE_TOP
+ backExecutor.execute {
+ component?.let {
+ val intent = Intent(applicationContext, ControlsFavoritingActivity::class.java)
+ .apply {
+ putExtra(ControlsFavoritingActivity.EXTRA_APP,
+ listingController.getAppLabel(it))
+ putExtra(ControlsFavoritingActivity.EXTRA_COMPONENT, it)
+ flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_SINGLE_TOP
+ }
+ startActivity(intent)
}
- startActivity(intent)
}
}
} \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/Behavior.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/Behavior.kt
new file mode 100644
index 000000000000..44f3fbc58eaf
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/Behavior.kt
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.controls.ui
+
+interface Behavior {
+ fun apply(cvh: ControlViewHolder, cws: ControlWithState)
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt
index 81b5f3698567..88b19b58a453 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlViewHolder.kt
@@ -17,36 +17,34 @@
package com.android.systemui.controls.ui
import android.content.Context
+import android.content.Intent
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
import android.service.controls.Control
-import android.service.controls.DeviceTypes
-import android.service.controls.actions.BooleanAction
import android.service.controls.actions.ControlAction
-import android.service.controls.actions.FloatAction
import android.service.controls.templates.ControlTemplate
-import android.service.controls.templates.RangeTemplate
+import android.service.controls.templates.TemperatureControlTemplate
import android.service.controls.templates.ToggleRangeTemplate
import android.service.controls.templates.ToggleTemplate
-import android.util.TypedValue
-import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import com.android.systemui.controls.controller.ControlsController
+import com.android.systemui.util.concurrency.DelayableExecutor
import com.android.systemui.R
-private const val MIN_LEVEL = 0
-private const val MAX_LEVEL = 10000
+const val MIN_LEVEL = 0
+const val MAX_LEVEL = 10000
+private const val UPDATE_DELAY_IN_MILLIS = 2000L
class ControlViewHolder(
val layout: ViewGroup,
- val controlsController: ControlsController
+ val controlsController: ControlsController,
+ val uiExecutor: DelayableExecutor
) {
val icon: ImageView = layout.requireViewById(R.id.icon)
val status: TextView = layout.requireViewById(R.id.status)
@@ -57,6 +55,7 @@ class ControlViewHolder(
val clipLayer: ClipDrawable
val gd: GradientDrawable
lateinit var cws: ControlWithState
+ var cancelUpdate: Runnable? = null
init {
val ld = layout.getBackground() as LayerDrawable
@@ -68,6 +67,8 @@ class ControlViewHolder(
fun bindData(cws: ControlWithState) {
this.cws = cws
+ cancelUpdate?.run()
+
val (status, template) = cws.control?.let {
title.setText(it.getTitle())
subtitle.setText(it.getSubtitle())
@@ -78,9 +79,40 @@ class ControlViewHolder(
Pair(Control.STATUS_UNKNOWN, ControlTemplate.NO_TEMPLATE)
}
+ cws.control?.let { c ->
+ layout.setOnLongClickListener(View.OnLongClickListener() {
+ val closeDialog = Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)
+ context.sendBroadcast(closeDialog)
+
+ c.getAppIntent().send()
+ true
+ })
+ }
+
findBehavior(status, template).apply(this, cws)
}
+ fun actionResponse(@ControlAction.ResponseResult response: Int) {
+ val text = when (response) {
+ ControlAction.RESPONSE_OK -> "Success"
+ ControlAction.RESPONSE_FAIL -> "Error"
+ else -> ""
+ }
+
+ if (!text.isEmpty()) {
+ val previousText = status.getText()
+ val previousTextExtra = statusExtra.getText()
+
+ cancelUpdate = uiExecutor.executeDelayed({
+ status.setText(previousText)
+ statusExtra.setText(previousTextExtra)
+ }, UPDATE_DELAY_IN_MILLIS)
+
+ status.setText(text)
+ statusExtra.setText("")
+ }
+ }
+
fun action(action: ControlAction) {
controlsController.action(cws.ci, action)
}
@@ -88,13 +120,14 @@ class ControlViewHolder(
private fun findBehavior(status: Int, template: ControlTemplate): Behavior {
return when {
status == Control.STATUS_UNKNOWN -> UnknownBehavior()
- template is ToggleTemplate -> ToggleTemplateBehavior()
- template is ToggleRangeTemplate -> ToggleRangeTemplateBehavior()
+ template is ToggleTemplate -> ToggleBehavior()
+ template is ToggleRangeTemplate -> ToggleRangeBehavior()
+ template is TemperatureControlTemplate -> TemperatureControlBehavior()
else -> {
object : Behavior {
override fun apply(cvh: ControlViewHolder, cws: ControlWithState) {
cvh.status.setText(cws.control?.getStatusText())
- cvh.applyRenderInfo(findRenderInfo(cws.ci.deviceType, false))
+ cvh.applyRenderInfo(RenderInfo.lookup(cws.ci.deviceType, false))
}
}
}
@@ -118,283 +151,3 @@ class ControlViewHolder(
icon.setEnabled(enabled)
}
}
-
-private interface Behavior {
- fun apply(cvh: ControlViewHolder, cws: ControlWithState)
-
- fun findRenderInfo(deviceType: Int, isActive: Boolean): RenderInfo =
- deviceRenderMap.getOrDefault(deviceType, unknownDeviceMap).getValue(isActive)
-}
-
-private class UnknownBehavior : Behavior {
- override fun apply(cvh: ControlViewHolder, cws: ControlWithState) {
- cvh.status.setText("Loading...")
- cvh.applyRenderInfo(findRenderInfo(cws.ci.deviceType, false))
- }
-}
-
-private class ToggleRangeTemplateBehavior : Behavior {
- lateinit var clipLayer: Drawable
- lateinit var template: ToggleRangeTemplate
- lateinit var control: Control
- lateinit var cvh: ControlViewHolder
- lateinit var rangeTemplate: RangeTemplate
- lateinit var statusExtra: TextView
- lateinit var status: TextView
- lateinit var context: Context
-
- override fun apply(cvh: ControlViewHolder, cws: ControlWithState) {
- this.control = cws.control!!
- this.cvh = cvh
-
- statusExtra = cvh.statusExtra
- status = cvh.status
-
- status.setText(control.getStatusText())
-
- context = status.getContext()
-
- cvh.layout.setOnTouchListener(ToggleRangeTouchListener())
-
- val ld = cvh.layout.getBackground() as LayerDrawable
- clipLayer = ld.findDrawableByLayerId(R.id.clip_layer)
-
- template = control.getControlTemplate() as ToggleRangeTemplate
- rangeTemplate = template.getRange()
-
- val checked = template.isChecked()
- val deviceType = control.getDeviceType()
-
- updateRange((rangeTemplate.getCurrentValue() / 100.0f), checked)
-
- cvh.setEnabled(checked)
- cvh.applyRenderInfo(findRenderInfo(deviceType, checked))
- }
-
- fun toggle() {
- cvh.action(BooleanAction(template.getTemplateId(), !template.isChecked()))
-
- val nextLevel = if (template.isChecked()) MIN_LEVEL else MAX_LEVEL
- clipLayer.setLevel(nextLevel)
- }
-
- fun beginUpdateRange() {
- status.setVisibility(View.GONE)
- statusExtra.setTextSize(TypedValue.COMPLEX_UNIT_PX, context.getResources()
- .getDimensionPixelSize(R.dimen.control_status_expanded).toFloat())
- }
-
- fun updateRange(f: Float, checked: Boolean) {
- clipLayer.setLevel(if (checked) (MAX_LEVEL * f).toInt() else MIN_LEVEL)
-
- if (checked && f < 100.0f && f > 0.0f) {
- statusExtra.setText("" + (f * 100.0).toInt() + "%")
- statusExtra.setVisibility(View.VISIBLE)
- } else {
- statusExtra.setText("")
- statusExtra.setVisibility(View.GONE)
- }
- }
-
- fun endUpdateRange(f: Float) {
- statusExtra.setText(" - " + (f * 100.0).toInt() + "%")
-
- val newValue = rangeTemplate.getMinValue() +
- (f * (rangeTemplate.getMaxValue() - rangeTemplate.getMinValue()))
-
- statusExtra.setTextSize(TypedValue.COMPLEX_UNIT_PX, context.getResources()
- .getDimensionPixelSize(R.dimen.control_status_normal).toFloat())
- status.setVisibility(View.VISIBLE)
-
- cvh.action(FloatAction(rangeTemplate.getTemplateId(), findNearestStep(newValue)))
- }
-
- fun findNearestStep(value: Float): Float {
- var minDiff = 1000f
-
- var f = rangeTemplate.getMinValue()
- while (f <= rangeTemplate.getMaxValue()) {
- val currentDiff = Math.abs(value - f)
- if (currentDiff < minDiff) {
- minDiff = currentDiff
- } else {
- return f - rangeTemplate.getStepValue()
- }
-
- f += rangeTemplate.getStepValue()
- }
-
- return rangeTemplate.getMaxValue()
- }
-
- inner class ToggleRangeTouchListener() : View.OnTouchListener {
- private var initialTouchX: Float = 0.0f
- private var initialTouchY: Float = 0.0f
- private var isDragging: Boolean = false
- private val minDragDiff = 20
-
- override fun onTouch(v: View, e: MotionEvent): Boolean {
- when (e.getActionMasked()) {
- MotionEvent.ACTION_DOWN -> setupTouch(e)
- MotionEvent.ACTION_MOVE -> detectDrag(v, e)
- MotionEvent.ACTION_UP -> endTouch(v, e)
- }
-
- return true
- }
-
- private fun setupTouch(e: MotionEvent) {
- initialTouchX = e.getX()
- initialTouchY = e.getY()
- }
-
- private fun detectDrag(v: View, e: MotionEvent) {
- val xDiff = Math.abs(e.getX() - initialTouchX)
- val yDiff = Math.abs(e.getY() - initialTouchY)
-
- if (xDiff < minDragDiff) {
- isDragging = false
- } else {
- if (!isDragging) {
- this@ToggleRangeTemplateBehavior.beginUpdateRange()
- }
- v.getParent().requestDisallowInterceptTouchEvent(true)
- isDragging = true
- if (yDiff > xDiff) {
- endTouch(v, e)
- } else {
- val percent = Math.max(0.0f, Math.min(1.0f, e.getX() / v.getWidth()))
- this@ToggleRangeTemplateBehavior.updateRange(percent, true)
- }
- }
- }
-
- private fun endTouch(v: View, e: MotionEvent) {
- if (!isDragging) {
- this@ToggleRangeTemplateBehavior.toggle()
- } else {
- val percent = Math.max(0.0f, Math.min(1.0f, e.getX() / v.getWidth()))
- this@ToggleRangeTemplateBehavior.endUpdateRange(percent)
- }
-
- initialTouchX = 0.0f
- initialTouchY = 0.0f
- isDragging = false
- }
- }
-}
-
-private class ToggleTemplateBehavior : Behavior {
- lateinit var clipLayer: Drawable
- lateinit var template: ToggleTemplate
- lateinit var control: Control
- lateinit var cvh: ControlViewHolder
- lateinit var context: Context
- lateinit var status: TextView
-
- override fun apply(cvh: ControlViewHolder, cws: ControlWithState) {
- this.control = cws.control!!
- this.cvh = cvh
- status = cvh.status
-
- status.setText(control.getStatusText())
-
- cvh.layout.setOnClickListener(View.OnClickListener() { toggle() })
-
- val ld = cvh.layout.getBackground() as LayerDrawable
- clipLayer = ld.findDrawableByLayerId(R.id.clip_layer)
-
- template = control.getControlTemplate() as ToggleTemplate
-
- val checked = template.isChecked()
- val deviceType = control.getDeviceType()
-
- clipLayer.setLevel(if (checked) MAX_LEVEL else MIN_LEVEL)
- cvh.setEnabled(checked)
- cvh.applyRenderInfo(findRenderInfo(deviceType, checked))
- }
-
- fun toggle() {
- cvh.action(BooleanAction(template.getTemplateId(), !template.isChecked()))
-
- val nextLevel = if (template.isChecked()) MIN_LEVEL else MAX_LEVEL
- clipLayer.setLevel(nextLevel)
- }
-}
-
-internal data class RenderInfo(val iconResourceId: Int, val foreground: Int, val background: Int)
-
-private val unknownDeviceMap = mapOf(
- false to RenderInfo(
- R.drawable.ic_light_off_gm2_24px,
- R.color.unknown_foreground,
- R.color.unknown_foreground),
- true to RenderInfo(
- R.drawable.ic_lightbulb_outline_gm2_24px,
- R.color.unknown_foreground,
- R.color.unknown_foreground)
-)
-
-private val deviceRenderMap = mapOf<Int, Map<Boolean, RenderInfo>>(
- DeviceTypes.TYPE_UNKNOWN to unknownDeviceMap,
- DeviceTypes.TYPE_LIGHT to mapOf(
- false to RenderInfo(
- R.drawable.ic_light_off_gm2_24px,
- R.color.light_foreground,
- R.color.light_background),
- true to RenderInfo(
- R.drawable.ic_lightbulb_outline_gm2_24px,
- R.color.light_foreground,
- R.color.light_background)
- ),
- DeviceTypes.TYPE_THERMOSTAT to mapOf(
- false to RenderInfo(
- R.drawable.ic_device_thermostat_gm2_24px,
- R.color.light_foreground,
- R.color.light_background),
- true to RenderInfo(
- R.drawable.ic_device_thermostat_gm2_24px,
- R.color.light_foreground,
- R.color.light_background)
- ),
- DeviceTypes.TYPE_CAMERA to mapOf(
- false to RenderInfo(
- R.drawable.ic_videocam_gm2_24px,
- R.color.light_foreground,
- R.color.light_background),
- true to RenderInfo(
- R.drawable.ic_videocam_gm2_24px,
- R.color.light_foreground,
- R.color.light_background)
- ),
- DeviceTypes.TYPE_LOCK to mapOf(
- false to RenderInfo(
- R.drawable.ic_lock_open_gm2_24px,
- R.color.lock_foreground,
- R.color.lock_background),
- true to RenderInfo(
- R.drawable.ic_lock_gm2_24px,
- R.color.lock_foreground,
- R.color.lock_background)
- ),
- DeviceTypes.TYPE_SWITCH to mapOf(
- false to RenderInfo(
- R.drawable.ic_switches_gm2_24px,
- R.color.lock_foreground,
- R.color.lock_background),
- true to RenderInfo(
- R.drawable.ic_switches_gm2_24px,
- R.color.lock_foreground,
- R.color.lock_background)
- ),
- DeviceTypes.TYPE_OUTLET to mapOf(
- false to RenderInfo(
- R.drawable.ic_power_off_gm2_24px,
- R.color.lock_foreground,
- R.color.lock_background),
- true to RenderInfo(
- R.drawable.ic_power_gm2_24px,
- R.color.lock_foreground,
- R.color.lock_background)
- )
-)
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiController.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiController.kt
index b07a75d5e757..d70c86fc3266 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiController.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiController.kt
@@ -22,6 +22,8 @@ import android.service.controls.actions.ControlAction
import android.view.ViewGroup
interface ControlsUiController {
+ val available: Boolean
+
fun show(parent: ViewGroup)
fun hide()
fun onRefreshState(componentName: ComponentName, controls: List<Control>)
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt
index 926fb6e75594..ed521e3be535 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ControlsUiControllerImpl.kt
@@ -29,6 +29,8 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.Space
import android.widget.TextView
import com.android.systemui.controls.controller.ControlsController
@@ -36,10 +38,10 @@ import com.android.systemui.controls.controller.ControlInfo
import com.android.systemui.controls.management.ControlsProviderSelectorActivity
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.R
+import com.android.systemui.util.concurrency.DelayableExecutor
import dagger.Lazy
-import java.util.concurrent.Executor
import javax.inject.Inject
import javax.inject.Singleton
@@ -102,18 +104,23 @@ class TokenProviderConnection(val cc: ControlsController, val context: Context)
}
}
+private data class ControlKey(val componentName: ComponentName, val controlId: String)
+
@Singleton
class ControlsUiControllerImpl @Inject constructor (
val controlsController: Lazy<ControlsController>,
val context: Context,
- @Main val uiExecutor: Executor
+ @Main val uiExecutor: DelayableExecutor
) : ControlsUiController {
private lateinit var controlInfos: List<ControlInfo>
- private val controlsById = mutableMapOf<Pair<ComponentName, String>, ControlWithState>()
- private val controlViewsById = mutableMapOf<String, ControlViewHolder>()
+ private val controlsById = mutableMapOf<ControlKey, ControlWithState>()
+ private val controlViewsById = mutableMapOf<ControlKey, ControlViewHolder>()
private lateinit var parent: ViewGroup
+ override val available: Boolean
+ get() = controlsController.get().available
+
override fun show(parent: ViewGroup) {
Log.d(TAG, "show()")
@@ -123,7 +130,7 @@ class ControlsUiControllerImpl @Inject constructor (
controlInfos.map {
ControlWithState(it, null)
- }.associateByTo(controlsById) { Pair(it.ci.component, it.ci.controlId) }
+ }.associateByTo(controlsById) { ControlKey(it.ci.component, it.ci.controlId) }
if (controlInfos.isEmpty()) {
showInitialSetupView()
@@ -136,7 +143,10 @@ class ControlsUiControllerImpl @Inject constructor (
val serviceIntent = Intent()
serviceIntent.setComponent(ComponentName("com.android.systemui.home.mock",
"com.android.systemui.home.mock.AuthService"))
- context.bindService(serviceIntent, tokenProviderConnection!!, Context.BIND_AUTO_CREATE)
+ if (!context.bindService(serviceIntent, tokenProviderConnection!!,
+ Context.BIND_AUTO_CREATE)) {
+ controlsController.get().subscribeToFavorites()
+ }
}
private fun showInitialSetupView() {
@@ -144,10 +154,17 @@ class ControlsUiControllerImpl @Inject constructor (
inflater.inflate(R.layout.controls_no_favorites, parent, true)
val textView = parent.requireViewById(R.id.controls_title) as TextView
- textView.setOnClickListener {
+ textView.setOnClickListener(launchSelectorActivityListener(context))
+ }
+
+ private fun launchSelectorActivityListener(context: Context): (View) -> Unit {
+ return { _ ->
+ val closeDialog = Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)
+ context.sendBroadcast(closeDialog)
+
val i = Intent()
i.setComponent(ComponentName(context, ControlsProviderSelectorActivity::class.java))
- i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
+ i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK)
context.startActivity(i)
}
}
@@ -166,18 +183,18 @@ class ControlsUiControllerImpl @Inject constructor (
val item = inflater.inflate(
R.layout.controls_base_item, lastRow, false) as ViewGroup
lastRow.addView(item)
- val cvh = ControlViewHolder(item, controlsController.get())
- cvh.bindData(controlsById.get(Pair(it.component, it.controlId))!!)
- controlViewsById.put(it.controlId, cvh)
+ val cvh = ControlViewHolder(item, controlsController.get(), uiExecutor)
+ val key = ControlKey(it.component, it.controlId)
+ cvh.bindData(controlsById.getValue(key))
+ controlViewsById.put(key, cvh)
}
- val moreImageView = parent.requireViewById(R.id.controls_more) as View
- moreImageView.setOnClickListener {
- val i = Intent()
- i.setComponent(ComponentName(context, ControlsProviderSelectorActivity::class.java))
- i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
- context.startActivity(i)
+ if ((controlInfos.size % 2) == 1) {
+ lastRow.addView(Space(context), LinearLayout.LayoutParams(0, 0, 1f))
}
+
+ val moreImageView = parent.requireViewById(R.id.controls_more) as View
+ moreImageView.setOnClickListener(launchSelectorActivityListener(context))
}
override fun hide() {
@@ -194,21 +211,24 @@ class ControlsUiControllerImpl @Inject constructor (
override fun onRefreshState(componentName: ComponentName, controls: List<Control>) {
Log.d(TAG, "onRefreshState()")
controls.forEach { c ->
- controlsById.get(Pair(componentName, c.getControlId()))?.let {
+ controlsById.get(ControlKey(componentName, c.getControlId()))?.let {
Log.d(TAG, "onRefreshState() for id: " + c.getControlId())
val cws = ControlWithState(it.ci, c)
- controlsById.put(Pair(componentName, c.getControlId()), cws)
+ val key = ControlKey(componentName, c.getControlId())
+ controlsById.put(key, cws)
uiExecutor.execute {
- controlViewsById.get(c.getControlId())?.bindData(cws)
+ controlViewsById.get(key)?.bindData(cws)
}
}
}
}
override fun onActionResponse(componentName: ComponentName, controlId: String, response: Int) {
- Log.d(TAG, "onActionResponse()")
- TODO("not implemented")
+ val key = ControlKey(componentName, controlId)
+ uiExecutor.execute {
+ controlViewsById.get(key)?.actionResponse(response)
+ }
}
private fun createRow(inflater: LayoutInflater, parent: ViewGroup): ViewGroup {
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/RenderInfo.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/RenderInfo.kt
new file mode 100644
index 000000000000..da52c6f8ee21
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/RenderInfo.kt
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.controls.ui
+
+import android.service.controls.DeviceTypes
+import android.service.controls.templates.TemperatureControlTemplate
+
+import com.android.systemui.R
+
+data class IconState(val disabledResourceId: Int, val enabledResourceId: Int) {
+ operator fun get(state: Boolean): Int {
+ return if (state) {
+ enabledResourceId
+ } else {
+ disabledResourceId
+ }
+ }
+}
+
+data class RenderInfo(val iconResourceId: Int, val foreground: Int, val background: Int) {
+
+ companion object {
+ fun lookup(deviceType: Int, enabled: Boolean): RenderInfo {
+ val iconState = deviceIconMap.getValue(deviceType)
+ val (fg, bg) = deviceColorMap.getValue(deviceType)
+ return RenderInfo(iconState[enabled], fg, bg)
+ }
+
+ fun lookup(deviceType: Int, offset: Int, enabled: Boolean): RenderInfo {
+ val key = deviceType * BUCKET_SIZE + offset
+ return lookup(key, enabled)
+ }
+ }
+}
+
+private const val BUCKET_SIZE = 1000
+private const val THERMOSTAT_RANGE = DeviceTypes.TYPE_THERMOSTAT * BUCKET_SIZE
+
+private val deviceColorMap = mapOf<Int, Pair<Int, Int>>(
+ (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_HEAT) to
+ Pair(R.color.thermo_heat_foreground, R.color.thermo_heat_background),
+ (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_COOL) to
+ Pair(R.color.thermo_cool_foreground, R.color.thermo_cool_background),
+ DeviceTypes.TYPE_LIGHT to Pair(R.color.light_foreground, R.color.light_background)
+).withDefault {
+ Pair(R.color.control_foreground, R.color.control_background)
+}
+
+private val deviceIconMap = mapOf<Int, IconState>(
+ THERMOSTAT_RANGE to IconState(
+ R.drawable.ic_device_thermostat_gm2_24px,
+ R.drawable.ic_device_thermostat_gm2_24px
+ ),
+ (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_OFF) to IconState(
+ R.drawable.ic_device_thermostat_gm2_24px,
+ R.drawable.ic_device_thermostat_gm2_24px
+ ),
+ (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_HEAT) to IconState(
+ R.drawable.ic_device_thermostat_gm2_24px,
+ R.drawable.ic_device_thermostat_gm2_24px
+ ),
+ (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_COOL) to IconState(
+ R.drawable.ic_device_thermostat_gm2_24px,
+ R.drawable.ic_device_thermostat_gm2_24px
+ ),
+ (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_HEAT_COOL) to IconState(
+ R.drawable.ic_device_thermostat_gm2_24px,
+ R.drawable.ic_device_thermostat_gm2_24px
+ ),
+ (THERMOSTAT_RANGE + TemperatureControlTemplate.MODE_ECO) to IconState(
+ R.drawable.ic_device_thermostat_gm2_24px,
+ R.drawable.ic_device_thermostat_gm2_24px
+ ),
+ DeviceTypes.TYPE_THERMOSTAT to IconState(
+ R.drawable.ic_device_thermostat_gm2_24px,
+ R.drawable.ic_device_thermostat_gm2_24px
+ ),
+ DeviceTypes.TYPE_LIGHT to IconState(
+ R.drawable.ic_light_off_gm2_24px,
+ R.drawable.ic_lightbulb_outline_gm2_24px
+ ),
+ DeviceTypes.TYPE_CAMERA to IconState(
+ R.drawable.ic_videocam_gm2_24px,
+ R.drawable.ic_videocam_gm2_24px
+ ),
+ DeviceTypes.TYPE_LOCK to IconState(
+ R.drawable.ic_lock_open_gm2_24px,
+ R.drawable.ic_lock_gm2_24px
+ ),
+ DeviceTypes.TYPE_SWITCH to IconState(
+ R.drawable.ic_switches_gm2_24px,
+ R.drawable.ic_switches_gm2_24px
+ ),
+ DeviceTypes.TYPE_OUTLET to IconState(
+ R.drawable.ic_power_off_gm2_24px,
+ R.drawable.ic_power_gm2_24px
+ ),
+ DeviceTypes.TYPE_VACUUM to IconState(
+ R.drawable.ic_vacuum_gm2_24px,
+ R.drawable.ic_vacuum_gm2_24px
+ ),
+ DeviceTypes.TYPE_MOP to IconState(
+ R.drawable.ic_vacuum_gm2_24px,
+ R.drawable.ic_vacuum_gm2_24px
+ )
+).withDefault {
+ IconState(
+ R.drawable.ic_device_unknown_gm2_24px,
+ R.drawable.ic_device_unknown_gm2_24px
+ )
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/TemperatureControlBehavior.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/TemperatureControlBehavior.kt
new file mode 100644
index 000000000000..ae0ebbb9e1bb
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/TemperatureControlBehavior.kt
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.controls.ui
+
+import android.content.Context
+import android.graphics.drawable.Drawable
+import android.graphics.drawable.LayerDrawable
+import android.service.controls.Control
+import android.service.controls.templates.TemperatureControlTemplate
+import android.widget.TextView
+
+import com.android.systemui.R
+
+class TemperatureControlBehavior : Behavior {
+ lateinit var clipLayer: Drawable
+ lateinit var control: Control
+ lateinit var cvh: ControlViewHolder
+ lateinit var template: TemperatureControlTemplate
+ lateinit var status: TextView
+ lateinit var context: Context
+
+ override fun apply(cvh: ControlViewHolder, cws: ControlWithState) {
+ this.control = cws.control!!
+ this.cvh = cvh
+ status = cvh.status
+
+ status.setText(control.getStatusText())
+
+ val ld = cvh.layout.getBackground() as LayerDrawable
+ clipLayer = ld.findDrawableByLayerId(R.id.clip_layer)
+
+ template = control.getControlTemplate() as TemperatureControlTemplate
+
+ val activeMode = template.getCurrentActiveMode()
+ val enabled = activeMode != 0 && activeMode != TemperatureControlTemplate.MODE_OFF
+ val deviceType = control.getDeviceType()
+
+ clipLayer.setLevel(if (enabled) MAX_LEVEL else MIN_LEVEL)
+ cvh.setEnabled(enabled)
+ cvh.applyRenderInfo(RenderInfo.lookup(deviceType, activeMode, enabled))
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ToggleBehavior.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ToggleBehavior.kt
new file mode 100644
index 000000000000..7cd3ab795678
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ToggleBehavior.kt
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.controls.ui
+
+import android.content.Context
+import android.graphics.drawable.Drawable
+import android.graphics.drawable.LayerDrawable
+import android.view.View
+import android.widget.TextView
+import android.service.controls.Control
+import android.service.controls.actions.BooleanAction
+import android.service.controls.templates.ToggleTemplate
+
+import com.android.systemui.R
+
+class ToggleBehavior : Behavior {
+ lateinit var clipLayer: Drawable
+ lateinit var template: ToggleTemplate
+ lateinit var control: Control
+ lateinit var cvh: ControlViewHolder
+ lateinit var context: Context
+ lateinit var status: TextView
+
+ override fun apply(cvh: ControlViewHolder, cws: ControlWithState) {
+ this.control = cws.control!!
+ this.cvh = cvh
+ status = cvh.status
+
+ status.setText(control.getStatusText())
+
+ cvh.layout.setOnClickListener(View.OnClickListener() { toggle() })
+
+ val ld = cvh.layout.getBackground() as LayerDrawable
+ clipLayer = ld.findDrawableByLayerId(R.id.clip_layer)
+
+ template = control.getControlTemplate() as ToggleTemplate
+
+ val checked = template.isChecked()
+ val deviceType = control.getDeviceType()
+
+ clipLayer.setLevel(if (checked) MAX_LEVEL else MIN_LEVEL)
+ cvh.setEnabled(checked)
+ cvh.applyRenderInfo(RenderInfo.lookup(deviceType, checked))
+ }
+
+ fun toggle() {
+ cvh.action(BooleanAction(template.getTemplateId(), !template.isChecked()))
+
+ val nextLevel = if (template.isChecked()) MIN_LEVEL else MAX_LEVEL
+ clipLayer.setLevel(nextLevel)
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/ToggleRangeBehavior.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/ToggleRangeBehavior.kt
new file mode 100644
index 000000000000..a6918f50a977
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/ToggleRangeBehavior.kt
@@ -0,0 +1,183 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.controls.ui
+
+import android.content.Context
+import android.graphics.drawable.Drawable
+import android.graphics.drawable.LayerDrawable
+import android.view.MotionEvent
+import android.view.View
+import android.widget.TextView
+import android.service.controls.Control
+import android.service.controls.actions.BooleanAction
+import android.service.controls.actions.FloatAction
+import android.service.controls.templates.RangeTemplate
+import android.service.controls.templates.ToggleRangeTemplate
+import android.util.TypedValue
+
+import com.android.systemui.R
+
+class ToggleRangeBehavior : Behavior {
+ lateinit var clipLayer: Drawable
+ lateinit var template: ToggleRangeTemplate
+ lateinit var control: Control
+ lateinit var cvh: ControlViewHolder
+ lateinit var rangeTemplate: RangeTemplate
+ lateinit var statusExtra: TextView
+ lateinit var status: TextView
+ lateinit var context: Context
+
+ override fun apply(cvh: ControlViewHolder, cws: ControlWithState) {
+ this.control = cws.control!!
+ this.cvh = cvh
+
+ statusExtra = cvh.statusExtra
+ status = cvh.status
+
+ status.setText(control.getStatusText())
+
+ context = status.getContext()
+
+ cvh.layout.setOnTouchListener(ToggleRangeTouchListener())
+
+ val ld = cvh.layout.getBackground() as LayerDrawable
+ clipLayer = ld.findDrawableByLayerId(R.id.clip_layer)
+
+ template = control.getControlTemplate() as ToggleRangeTemplate
+ rangeTemplate = template.getRange()
+
+ val checked = template.isChecked()
+ val deviceType = control.getDeviceType()
+
+ updateRange((rangeTemplate.getCurrentValue() / 100.0f), checked)
+
+ cvh.setEnabled(checked)
+ cvh.applyRenderInfo(RenderInfo.lookup(deviceType, checked))
+ }
+
+ fun toggle() {
+ cvh.action(BooleanAction(template.getTemplateId(), !template.isChecked()))
+
+ val nextLevel = if (template.isChecked()) MIN_LEVEL else MAX_LEVEL
+ clipLayer.setLevel(nextLevel)
+ }
+
+ fun beginUpdateRange() {
+ status.setVisibility(View.GONE)
+ statusExtra.setTextSize(TypedValue.COMPLEX_UNIT_PX, context.getResources()
+ .getDimensionPixelSize(R.dimen.control_status_expanded).toFloat())
+ }
+
+ fun updateRange(f: Float, checked: Boolean) {
+ clipLayer.setLevel(if (checked) (MAX_LEVEL * f).toInt() else MIN_LEVEL)
+
+ if (checked && f < 100.0f && f > 0.0f) {
+ statusExtra.setText("" + (f * 100.0).toInt() + "%")
+ statusExtra.setVisibility(View.VISIBLE)
+ } else {
+ statusExtra.setText("")
+ statusExtra.setVisibility(View.GONE)
+ }
+ }
+
+ fun endUpdateRange(f: Float) {
+ statusExtra.setText(" - " + (f * 100.0).toInt() + "%")
+
+ val newValue = rangeTemplate.getMinValue() +
+ (f * (rangeTemplate.getMaxValue() - rangeTemplate.getMinValue()))
+
+ statusExtra.setTextSize(TypedValue.COMPLEX_UNIT_PX, context.getResources()
+ .getDimensionPixelSize(R.dimen.control_status_normal).toFloat())
+ status.setVisibility(View.VISIBLE)
+
+ cvh.action(FloatAction(rangeTemplate.getTemplateId(), findNearestStep(newValue)))
+ }
+
+ fun findNearestStep(value: Float): Float {
+ var minDiff = 1000f
+
+ var f = rangeTemplate.getMinValue()
+ while (f <= rangeTemplate.getMaxValue()) {
+ val currentDiff = Math.abs(value - f)
+ if (currentDiff < minDiff) {
+ minDiff = currentDiff
+ } else {
+ return f - rangeTemplate.getStepValue()
+ }
+
+ f += rangeTemplate.getStepValue()
+ }
+
+ return rangeTemplate.getMaxValue()
+ }
+
+ inner class ToggleRangeTouchListener() : View.OnTouchListener {
+ private var initialTouchX: Float = 0.0f
+ private var initialTouchY: Float = 0.0f
+ private var isDragging: Boolean = false
+ private val minDragDiff = 20
+
+ override fun onTouch(v: View, e: MotionEvent): Boolean {
+ when (e.getActionMasked()) {
+ MotionEvent.ACTION_DOWN -> setupTouch(e)
+ MotionEvent.ACTION_MOVE -> detectDrag(v, e)
+ MotionEvent.ACTION_UP -> endTouch(v, e)
+ }
+
+ return true
+ }
+
+ private fun setupTouch(e: MotionEvent) {
+ initialTouchX = e.getX()
+ initialTouchY = e.getY()
+ }
+
+ private fun detectDrag(v: View, e: MotionEvent) {
+ val xDiff = Math.abs(e.getX() - initialTouchX)
+ val yDiff = Math.abs(e.getY() - initialTouchY)
+
+ if (xDiff < minDragDiff) {
+ isDragging = false
+ } else {
+ if (!isDragging) {
+ this@ToggleRangeBehavior.beginUpdateRange()
+ }
+ v.getParent().requestDisallowInterceptTouchEvent(true)
+ isDragging = true
+ if (yDiff > xDiff) {
+ endTouch(v, e)
+ } else {
+ val percent = Math.max(0.0f, Math.min(1.0f, e.getX() / v.getWidth()))
+ this@ToggleRangeBehavior.updateRange(percent, true)
+ }
+ }
+ }
+
+ private fun endTouch(v: View, e: MotionEvent) {
+ if (!isDragging) {
+ this@ToggleRangeBehavior.toggle()
+ } else {
+ val percent = Math.max(0.0f, Math.min(1.0f, e.getX() / v.getWidth()))
+ this@ToggleRangeBehavior.endUpdateRange(percent)
+ }
+
+ initialTouchX = 0.0f
+ initialTouchY = 0.0f
+ isDragging = false
+ }
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/controls/ui/UnknownBehavior.kt b/packages/SystemUI/src/com/android/systemui/controls/ui/UnknownBehavior.kt
new file mode 100644
index 000000000000..5a6e5b481544
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/controls/ui/UnknownBehavior.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.controls.ui
+
+class UnknownBehavior : Behavior {
+ override fun apply(cvh: ControlViewHolder, cws: ControlWithState) {
+ cvh.status.setText("Loading...")
+ cvh.setEnabled(false)
+ cvh.applyRenderInfo(RenderInfo.lookup(cws.ci.deviceType, false))
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/DefaultComponentBinder.java b/packages/SystemUI/src/com/android/systemui/dagger/DefaultComponentBinder.java
index 18fe3ec92827..50252460d5c1 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/DefaultComponentBinder.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/DefaultComponentBinder.java
@@ -25,7 +25,6 @@ import dagger.Module;
*/
@Module(includes = {DefaultActivityBinder.class,
DefaultBroadcastReceiverBinder.class,
- DefaultServiceBinder.class,
- SystemUIBinder.class})
+ DefaultServiceBinder.class})
public abstract class DefaultComponentBinder {
}
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java
index 5c171e41db41..a57ec5b483dd 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java
@@ -56,7 +56,7 @@ import dagger.Provides;
* overridden by the System UI implementation.
*/
@Module(includes = {DividerModule.class})
-abstract class SystemUIDefaultModule {
+public abstract class SystemUIDefaultModule {
@Singleton
@Provides
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
index f793b3df92a4..7b541991088c 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java
@@ -38,6 +38,7 @@ import com.android.systemui.statusbar.StatusBarWindowBlurController;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinder;
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl;
+import com.android.systemui.statusbar.notification.dagger.NotificationsModule;
import com.android.systemui.statusbar.notification.people.PeopleHubModule;
import com.android.systemui.statusbar.notification.row.dagger.NotificationRowComponent;
import com.android.systemui.statusbar.phone.KeyguardLiftController;
@@ -64,6 +65,7 @@ import dagger.Provides;
AssistModule.class,
ConcurrencyModule.class,
LogModule.class,
+ NotificationsModule.class,
PeopleHubModule.class,
},
subcomponents = {StatusBarComponent.class, NotificationRowComponent.class})
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIRootComponent.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIRootComponent.java
index e8509b366c5b..3bf5ad759267 100644
--- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIRootComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIRootComponent.java
@@ -45,6 +45,7 @@ import dagger.Component;
DependencyBinder.class,
SystemServicesModule.class,
SystemUIFactory.ContextHolder.class,
+ SystemUIBinder.class,
SystemUIModule.class,
SystemUIDefaultModule.class})
public interface SystemUIRootComponent {
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
index 43db85bd91ec..6f655bb0b209 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java
@@ -118,6 +118,7 @@ public class DozeFactory {
new DozeWallpaperState(mWallpaperManager, mBiometricUnlockController,
mDozeParameters),
new DozeDockHandler(config, machine, mDockManager),
+ new DozeSuppressedHandler(dozeService, config, machine),
new DozeAuthRemover(dozeService)
});
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
index 8afdf1aeb023..96ae6c9ec4a2 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java
@@ -266,6 +266,14 @@ public class DozeLog implements Dumpable {
mLogger.logSensorTriggered(reason);
}
+ /**
+ * Appends doze suppressed event to the logs
+ * @param suppressedState The {@link DozeMachine.State} that was suppressed
+ */
+ public void traceDozeSuppressed(DozeMachine.State suppressedState) {
+ mLogger.logDozeSuppressed(suppressedState);
+ }
+
private class SummaryStats {
private int mCount;
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt b/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt
index 42decd592071..732745a1158b 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt
@@ -194,6 +194,14 @@ class DozeLogger @Inject constructor(
"Sensor triggered, type=${reasonToString(int1)}"
})
}
+
+ fun logDozeSuppressed(state: DozeMachine.State) {
+ buffer.log(TAG, INFO, {
+ str1 = state.name
+ }, {
+ "Doze state suppressed, state=$str1"
+ })
+ }
}
private const val TAG = "DozeLog"
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java
index 03c25eee4f6f..6e81d3a11098 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java
@@ -102,6 +102,10 @@ public class DozeMachine {
}
}
+ boolean isAlwaysOn() {
+ return this == DOZE_AOD || this == DOZE_AOD_DOCKED;
+ }
+
int screenState(DozeParameters parameters) {
switch (this) {
case UNINITIALIZED:
@@ -324,6 +328,11 @@ public class DozeMachine {
if (mState == State.FINISH) {
return State.FINISH;
}
+ if (mConfig.dozeSuppressed(UserHandle.USER_CURRENT) && requestedState.isAlwaysOn()) {
+ Log.i(TAG, "Doze is suppressed. Suppressing state: " + requestedState);
+ mDozeLog.traceDozeSuppressed(requestedState);
+ return State.DOZE;
+ }
if ((mState == State.DOZE_AOD_PAUSED || mState == State.DOZE_AOD_PAUSING
|| mState == State.DOZE_AOD || mState == State.DOZE)
&& requestedState == State.DOZE_PULSE_DONE) {
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java
index 3abeea91cdee..e50f1fb2a3ee 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenState.java
@@ -18,7 +18,6 @@ package com.android.systemui.doze;
import static com.android.systemui.doze.DozeMachine.State.DOZE;
import static com.android.systemui.doze.DozeMachine.State.DOZE_AOD;
-import static com.android.systemui.doze.DozeMachine.State.DOZE_AOD_DOCKED;
import static com.android.systemui.doze.DozeMachine.State.DOZE_AOD_PAUSED;
import static com.android.systemui.doze.DozeMachine.State.DOZE_AOD_PAUSING;
import static com.android.systemui.doze.DozeMachine.State.DOZE_PULSE_DONE;
@@ -90,10 +89,10 @@ public class DozeScreenState implements DozeMachine.Part {
}
final boolean messagePending = mHandler.hasCallbacks(mApplyPendingScreenState);
- final boolean pulseEnding = oldState == DOZE_PULSE_DONE && isAlwaysOnState(newState);
+ final boolean pulseEnding = oldState == DOZE_PULSE_DONE && newState.isAlwaysOn();
final boolean turningOn = (oldState == DOZE_AOD_PAUSED || oldState == DOZE)
- && isAlwaysOnState(newState);
- final boolean turningOff = (isAlwaysOnState(oldState) && newState == DOZE)
+ && newState.isAlwaysOn();
+ final boolean turningOff = (newState.isAlwaysOn() && newState == DOZE)
|| (oldState == DOZE_AOD_PAUSING && newState == DOZE_AOD_PAUSED);
final boolean justInitialized = oldState == DozeMachine.State.INITIALIZED;
if (messagePending || justInitialized || pulseEnding || turningOn) {
@@ -132,10 +131,6 @@ public class DozeScreenState implements DozeMachine.Part {
}
}
- private boolean isAlwaysOnState(DozeMachine.State state) {
- return state == DOZE_AOD || state == DOZE_AOD_DOCKED;
- }
-
private void applyPendingScreenState() {
applyScreenState(mPendingScreenState);
mPendingScreenState = Display.STATE_UNKNOWN;
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeSuppressedHandler.java b/packages/SystemUI/src/com/android/systemui/doze/DozeSuppressedHandler.java
new file mode 100644
index 000000000000..3a5c1a0890f9
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeSuppressedHandler.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.doze;
+
+import static java.util.Objects.requireNonNull;
+
+import android.app.ActivityManager;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.hardware.display.AmbientDisplayConfiguration;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+/** Handles updating the doze state when doze is suppressed. */
+public final class DozeSuppressedHandler implements DozeMachine.Part {
+
+ private static final String TAG = DozeSuppressedHandler.class.getSimpleName();
+ private static final boolean DEBUG = DozeService.DEBUG;
+
+ private final ContentResolver mResolver;
+ private final AmbientDisplayConfiguration mConfig;
+ private final DozeMachine mMachine;
+ private final DozeSuppressedSettingObserver mSettingObserver;
+ private final Handler mHandler = new Handler();
+
+ public DozeSuppressedHandler(Context context, AmbientDisplayConfiguration config,
+ DozeMachine machine) {
+ this(context, config, machine, null);
+ }
+
+ @VisibleForTesting
+ DozeSuppressedHandler(Context context, AmbientDisplayConfiguration config, DozeMachine machine,
+ DozeSuppressedSettingObserver observer) {
+ mResolver = context.getContentResolver();
+ mConfig = requireNonNull(config);
+ mMachine = requireNonNull(machine);
+ if (observer == null) {
+ mSettingObserver = new DozeSuppressedSettingObserver(mHandler);
+ } else {
+ mSettingObserver = observer;
+ }
+ }
+
+ @Override
+ public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) {
+ switch (newState) {
+ case INITIALIZED:
+ mSettingObserver.register();
+ break;
+ case FINISH:
+ mSettingObserver.unregister();
+ break;
+ default:
+ // no-op
+ }
+ }
+
+ /**
+ * Listens to changes to the DOZE_SUPPRESSED secure setting and updates the doze state
+ * accordingly.
+ */
+ final class DozeSuppressedSettingObserver extends ContentObserver {
+ private boolean mRegistered;
+
+ private DozeSuppressedSettingObserver(Handler handler) {
+ super(handler);
+ }
+
+ @Override
+ public void onChange(boolean selfChange, Uri uri, int userId) {
+ if (userId != ActivityManager.getCurrentUser()) {
+ return;
+ }
+ final DozeMachine.State nextState;
+ if (mConfig.alwaysOnEnabled(UserHandle.USER_CURRENT)
+ && !mConfig.dozeSuppressed(UserHandle.USER_CURRENT)) {
+ nextState = DozeMachine.State.DOZE_AOD;
+ } else {
+ nextState = DozeMachine.State.DOZE;
+ }
+ mMachine.requestState(nextState);
+ }
+
+ void register() {
+ if (mRegistered) {
+ return;
+ }
+ mResolver.registerContentObserver(
+ Settings.Secure.getUriFor(Settings.Secure.SUPPRESS_DOZE),
+ false, this, UserHandle.USER_CURRENT);
+ Log.d(TAG, "Register");
+ mRegistered = true;
+ }
+
+ void unregister() {
+ if (!mRegistered) {
+ return;
+ }
+ mResolver.unregisterContentObserver(this);
+ Log.d(TAG, "Unregister");
+ mRegistered = false;
+ }
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
index b9c056df89a1..305a4c870d91 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
@@ -127,6 +127,11 @@ public class DozeTriggers implements DozeMachine.Part {
mDozeLog.tracePulseDropped("pulseOnNotificationsDisabled");
return;
}
+ if (mConfig.dozeSuppressed(UserHandle.USER_CURRENT)) {
+ runIfNotNull(onPulseSuppressedListener);
+ mDozeLog.tracePulseDropped("dozeSuppressed");
+ return;
+ }
requestPulse(DozeLog.PULSE_REASON_NOTIFICATION, false /* performedProxCheck */,
onPulseSuppressedListener);
mDozeLog.traceNotificationPulse();
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
index 80d776a59235..b3fc027d1ac7 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
@@ -40,6 +40,7 @@ import android.content.IntentFilter;
import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.database.ContentObserver;
+import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.media.AudioManager;
import android.net.ConnectivityManager;
@@ -100,7 +101,6 @@ import com.android.systemui.plugins.GlobalActions.GlobalActionsManager;
import com.android.systemui.plugins.GlobalActionsPanelPlugin;
import com.android.systemui.statusbar.BlurUtils;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
-import com.android.systemui.statusbar.phone.ScrimController;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.EmergencyDialerConstants;
@@ -459,12 +459,10 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
mKeyguardManager.isDeviceLocked())
: null;
- boolean showControls = !mKeyguardManager.isDeviceLocked() && isControlsEnabled(mContext);
-
ActionsDialog dialog = new ActionsDialog(mContext, mAdapter, panelViewController,
mBlurUtils, mSysuiColorExtractor, mStatusBarService,
mNotificationShadeWindowController,
- showControls ? mControlsUiController : null);
+ shouldShowControls() ? mControlsUiController : null);
dialog.setCanceledOnTouchOutside(false); // Handled by the custom class.
dialog.setKeyguardShowing(mKeyguardShowing);
@@ -538,7 +536,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
@Override
public boolean shouldBeSeparated() {
- return !isControlsEnabled(mContext);
+ return !shouldShowControls();
}
@Override
@@ -1135,7 +1133,8 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
* A single press action maintains no state, just responds to a press
* and takes an action.
*/
- private static abstract class SinglePressAction implements Action {
+
+ private abstract class SinglePressAction implements Action {
private final int mIconResId;
private final Drawable mIcon;
private final int mMessageResId;
@@ -1174,7 +1173,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
}
protected int getActionLayoutId(Context context) {
- if (isControlsEnabled(context)) {
+ if (shouldShowControls()) {
return com.android.systemui.R.layout.global_actions_grid_item_v2;
}
return com.android.systemui.R.layout.global_actions_grid_item;
@@ -1640,8 +1639,6 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
FrameLayout.LayoutParams.MATCH_PARENT,
FrameLayout.LayoutParams.MATCH_PARENT);
panelContainer.addView(mPanelController.getPanelContent(), panelParams);
- mBackgroundDrawable = mPanelController.getBackgroundDrawable();
- mScrimAlpha = 1f;
}
}
@@ -1669,7 +1666,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
}
if (mBackgroundDrawable == null) {
mBackgroundDrawable = new ScrimDrawable();
- mScrimAlpha = ScrimController.GRADIENT_SCRIM_ALPHA;
+ mScrimAlpha = 0.8f;
}
getWindow().setBackgroundDrawable(mBackgroundDrawable);
}
@@ -1728,7 +1725,8 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
if (!(mBackgroundDrawable instanceof ScrimDrawable)) {
return;
}
- ((ScrimDrawable) mBackgroundDrawable).setColor(colors.getMainColor(), animate);
+ ((ScrimDrawable) mBackgroundDrawable).setColor(colors.supportsDarkText() ? Color.WHITE
+ : Color.BLACK, animate);
View decorView = getWindow().getDecorView();
if (colors.supportsDarkText()) {
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR |
@@ -1804,6 +1802,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
void dismissImmediately() {
mShowing = false;
+ if (mControlsUiController != null) mControlsUiController.hide();
dismissPanel();
resetOrientation();
completeDismiss();
@@ -1900,8 +1899,8 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
return true;
}
- private static boolean isControlsEnabled(Context context) {
- return Settings.Secure.getInt(
- context.getContentResolver(), "systemui.controls_available", 0) == 1;
+ private boolean shouldShowControls() {
+ return !mKeyguardManager.isDeviceLocked()
+ && mControlsUiController.getAvailable();
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java
index dd1856a93d2e..c9c38d31e865 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsImpl.java
@@ -30,17 +30,17 @@ import android.widget.ProgressBar;
import android.widget.TextView;
import com.android.internal.R;
-import com.android.internal.colorextraction.ColorExtractor.GradientColors;
import com.android.internal.colorextraction.drawable.ScrimDrawable;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.settingslib.Utils;
import com.android.systemui.Dependency;
-import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.plugins.GlobalActions;
import com.android.systemui.plugins.GlobalActionsPanelPlugin;
import com.android.systemui.plugins.PluginListener;
import com.android.systemui.shared.plugins.PluginManager;
+import com.android.systemui.statusbar.BlurUtils;
import com.android.systemui.statusbar.CommandQueue;
+import com.android.systemui.statusbar.phone.ScrimController;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.ExtensionController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -59,6 +59,7 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks,
private final KeyguardStateController mKeyguardStateController;
private final DeviceProvisionedController mDeviceProvisionedController;
private final ExtensionController.Extension<GlobalActionsPanelPlugin> mPanelExtension;
+ private final BlurUtils mBlurUtils;
private GlobalActionsPanelPlugin mPlugin;
private final CommandQueue mCommandQueue;
private GlobalActionsDialog mGlobalActionsDialog;
@@ -68,13 +69,14 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks,
@Inject
public GlobalActionsImpl(Context context, CommandQueue commandQueue,
- Lazy<GlobalActionsDialog> globalActionsDialogLazy) {
+ Lazy<GlobalActionsDialog> globalActionsDialogLazy, BlurUtils blurUtils) {
mContext = context;
mGlobalActionsDialogLazy = globalActionsDialogLazy;
mKeyguardStateController = Dependency.get(KeyguardStateController.class);
mDeviceProvisionedController = Dependency.get(DeviceProvisionedController.class);
mPluginManager = Dependency.get(PluginManager.class);
mCommandQueue = commandQueue;
+ mBlurUtils = blurUtils;
mCommandQueue.addCallback(this);
mPanelExtension = Dependency.get(ExtensionController.class)
.newExtension(GlobalActionsPanelPlugin.class)
@@ -110,7 +112,6 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks,
@Override
public void showShutdownUi(boolean isReboot, String reason) {
ScrimDrawable background = new ScrimDrawable();
- background.setAlpha((int) (SHUTDOWN_SCRIM_ALPHA * 255));
Dialog d = new Dialog(mContext,
com.android.systemui.R.style.Theme_SystemUI_Dialog_GlobalActions);
@@ -160,8 +161,13 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks,
reasonView.setText(rebootReasonMessage);
}
- GradientColors colors = Dependency.get(SysuiColorExtractor.class).getNeutralColors();
- background.setColor(colors.getMainColor(), false);
+ if (mBlurUtils.supportsBlursOnWindows()) {
+ background.setAlpha((int) (ScrimController.GRADIENT_SCRIM_ALPHA_BUSY * 255));
+ mBlurUtils.applyBlur(d.getWindow().getDecorView().getViewRootImpl(),
+ mBlurUtils.radiusForRatio(1));
+ } else {
+ background.setAlpha((int) (SHUTDOWN_SCRIM_ALPHA * 255));
+ }
d.show();
}
diff --git a/packages/SystemUI/src/com/android/systemui/log/Event.java b/packages/SystemUI/src/com/android/systemui/log/Event.java
deleted file mode 100644
index 7bc1abfbb0d8..000000000000
--- a/packages/SystemUI/src/com/android/systemui/log/Event.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.log;
-
-import android.annotation.IntDef;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * Stores information about an event that occurred in SystemUI to be used for debugging and triage.
- * Every event has a time stamp, log level and message.
- * Events are stored in {@link SysuiLog} and can be printed in a dumpsys.
- */
-public class Event {
- public static final int UNINITIALIZED = -1;
-
- @IntDef({ERROR, WARN, INFO, DEBUG, VERBOSE})
- @Retention(RetentionPolicy.SOURCE)
- public @interface Level {}
- public static final int VERBOSE = 2;
- public static final int DEBUG = 3;
- public static final int INFO = 4;
- public static final int WARN = 5;
- public static final int ERROR = 6;
- public static final @Level int DEFAULT_LOG_LEVEL = DEBUG;
-
- private long mTimestamp;
- private @Level int mLogLevel = DEFAULT_LOG_LEVEL;
- private String mMessage = "";
-
- /**
- * initialize an event with a message
- */
- public Event init(String message) {
- init(DEFAULT_LOG_LEVEL, message);
- return this;
- }
-
- /**
- * initialize an event with a logLevel and message
- */
- public Event init(@Level int logLevel, String message) {
- mTimestamp = System.currentTimeMillis();
- mLogLevel = logLevel;
- mMessage = message;
- return this;
- }
-
- public String getMessage() {
- return mMessage;
- }
-
- public long getTimestamp() {
- return mTimestamp;
- }
-
- public @Level int getLogLevel() {
- return mLogLevel;
- }
-
- /**
- * Recycle this event
- */
- void recycle() {
- mTimestamp = -1;
- mLogLevel = DEFAULT_LOG_LEVEL;
- mMessage = "";
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/log/RichEvent.java b/packages/SystemUI/src/com/android/systemui/log/RichEvent.java
deleted file mode 100644
index 470f2b0d1b98..000000000000
--- a/packages/SystemUI/src/com/android/systemui/log/RichEvent.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.log;
-
-/**
- * Stores information about an event that occurred in SystemUI to be used for debugging and triage.
- * Every rich event has a time stamp, event type, and log level, with the option to provide the
- * reason this event was triggered.
- * Events are stored in {@link SysuiLog} and can be printed in a dumpsys.
- */
-public abstract class RichEvent extends Event {
- private int mType;
-
- /**
- * Initializes a rich event that includes an event type that matches with an index in the array
- * getEventLabels().
- */
- public RichEvent init(@Event.Level int logLevel, int type, String reason) {
- final int numEvents = getEventLabels().length;
- if (type < 0 || type >= numEvents) {
- throw new IllegalArgumentException("Unsupported event type. Events only supported"
- + " from 0 to " + (numEvents - 1) + ", but given type=" + type);
- }
- mType = type;
- super.init(logLevel, getEventLabels()[mType] + " " + reason);
- return this;
- }
-
- /**
- * Returns an array of the event labels. The index represents the event type and the
- * corresponding String stored at that index is the user-readable representation of that event.
- * @return array of user readable events, where the index represents its event type constant
- */
- public abstract String[] getEventLabels();
-
- @Override
- public void recycle() {
- super.recycle();
- mType = -1;
- }
-
- public int getType() {
- return mType;
- }
-
- /**
- * Builder to build a RichEvent.
- * @param <B> Log specific builder that is extending this builder
- * @param <E> Type of event we'll be building
- */
- public abstract static class Builder<B extends Builder<B, E>, E extends RichEvent> {
- public static final int UNINITIALIZED = -1;
-
- public final SysuiLog mLog;
- private B mBuilder = getBuilder();
- protected int mType;
- protected String mReason;
- protected @Level int mLogLevel;
-
- public Builder(SysuiLog sysuiLog) {
- mLog = sysuiLog;
- reset();
- }
-
- /**
- * Reset this builder's parameters so it can be reused to build another RichEvent.
- */
- public void reset() {
- mType = UNINITIALIZED;
- mReason = null;
- mLogLevel = VERBOSE;
- }
-
- /**
- * Get the log-specific builder.
- */
- public abstract B getBuilder();
-
- /**
- * Build the log-specific event given an event to populate.
- */
- public abstract E build(E e);
-
- /**
- * Optional - set the log level. Defaults to DEBUG.
- */
- public B setLogLevel(@Level int logLevel) {
- mLogLevel = logLevel;
- return mBuilder;
- }
-
- /**
- * Required - set the event type. These events must correspond with the events from
- * getEventLabels().
- */
- public B setType(int type) {
- mType = type;
- return mBuilder;
- }
-
- /**
- * Optional - set the reason why this event was triggered.
- */
- public B setReason(String reason) {
- mReason = reason;
- return mBuilder;
- }
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/log/SysuiLog.java b/packages/SystemUI/src/com/android/systemui/log/SysuiLog.java
deleted file mode 100644
index 9ee3e6765e4a..000000000000
--- a/packages/SystemUI/src/com/android/systemui/log/SysuiLog.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.log;
-
-import android.os.Build;
-import android.os.SystemProperties;
-import android.util.Log;
-
-import com.android.internal.annotations.GuardedBy;
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.systemui.DumpController;
-import com.android.systemui.Dumpable;
-
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-import java.text.SimpleDateFormat;
-import java.util.ArrayDeque;
-import java.util.Locale;
-
-/**
- * Thread-safe logger in SystemUI which prints logs to logcat and stores logs to be
- * printed by the DumpController. This is an alternative to printing directly
- * to avoid logs being deleted by chatty. The number of logs retained is varied based on
- * whether the build is {@link Build.IS_DEBUGGABLE}.
- *
- * To manually view the logs via adb:
- * adb shell dumpsys activity service com.android.systemui/.SystemUIService \
- * dependency DumpController <SysuiLogId>
- *
- * Logs can be disabled by setting the following SystemProperty and then restarting the device:
- * adb shell setprop persist.sysui.log.enabled.<id> true/false && adb reboot
- *
- * @param <E> Type of event we'll be logging
- */
-public class SysuiLog<E extends Event> implements Dumpable {
- public static final SimpleDateFormat DATE_FORMAT =
- new SimpleDateFormat("MM-dd HH:mm:ss.S", Locale.US);
-
- protected final Object mDataLock = new Object();
- private final String mId;
- private final int mMaxLogs;
- protected boolean mEnabled;
- protected boolean mLogToLogcatEnabled;
-
- @VisibleForTesting protected ArrayDeque<E> mTimeline;
-
- /**
- * Creates a SysuiLog
- * @param dumpController where to register this logger's dumpsys
- * @param id user-readable tag for this logger
- * @param maxDebugLogs maximum number of logs to retain when {@link sDebuggable} is true
- * @param maxLogs maximum number of logs to retain when {@link sDebuggable} is false
- */
- public SysuiLog(DumpController dumpController, String id, int maxDebugLogs, int maxLogs) {
- this(dumpController, id, sDebuggable ? maxDebugLogs : maxLogs,
- SystemProperties.getBoolean(SYSPROP_ENABLED_PREFIX + id, DEFAULT_ENABLED),
- SystemProperties.getBoolean(SYSPROP_LOGCAT_ENABLED_PREFIX + id,
- DEFAULT_LOGCAT_ENABLED));
- }
-
- @VisibleForTesting
- protected SysuiLog(DumpController dumpController, String id, int maxLogs, boolean enabled,
- boolean logcatEnabled) {
- mId = id;
- mMaxLogs = maxLogs;
- mEnabled = enabled;
- mLogToLogcatEnabled = logcatEnabled;
- mTimeline = mEnabled ? new ArrayDeque<>(mMaxLogs) : null;
- dumpController.registerDumpable(mId, this);
- }
-
- /**
- * Logs an event to the timeline which can be printed by the dumpsys.
- * May also log to logcat if enabled.
- * @return the last event that was discarded from the Timeline (can be recycled)
- */
- public E log(E event) {
- if (!mEnabled) {
- return null;
- }
-
- E recycledEvent = null;
- synchronized (mDataLock) {
- if (mTimeline.size() >= mMaxLogs) {
- recycledEvent = mTimeline.removeFirst();
- }
-
- mTimeline.add(event);
- }
-
- if (mLogToLogcatEnabled) {
- final String strEvent = eventToString(event);
- switch (event.getLogLevel()) {
- case Event.VERBOSE:
- Log.v(mId, strEvent);
- break;
- case Event.DEBUG:
- Log.d(mId, strEvent);
- break;
- case Event.ERROR:
- Log.e(mId, strEvent);
- break;
- case Event.INFO:
- Log.i(mId, strEvent);
- break;
- case Event.WARN:
- Log.w(mId, strEvent);
- break;
- }
- }
-
- if (recycledEvent != null) {
- recycledEvent.recycle();
- }
-
- return recycledEvent;
- }
-
- /**
- * @return user-readable string of the given event with timestamp
- */
- private String eventToTimestampedString(Event event) {
- StringBuilder sb = new StringBuilder();
- sb.append(SysuiLog.DATE_FORMAT.format(event.getTimestamp()));
- sb.append(" ");
- sb.append(event.getMessage());
- return sb.toString();
- }
-
- /**
- * @return user-readable string of the given event without a timestamp
- */
- public String eventToString(Event event) {
- return event.getMessage();
- }
-
- @GuardedBy("mDataLock")
- private void dumpTimelineLocked(PrintWriter pw) {
- pw.println("\tTimeline:");
-
- for (Event event : mTimeline) {
- pw.println("\t" + eventToTimestampedString(event));
- }
- }
-
- @Override
- public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- pw.println(mId + ":");
-
- if (mEnabled) {
- synchronized (mDataLock) {
- dumpTimelineLocked(pw);
- }
- } else {
- pw.print(" - Logging disabled.");
- }
- }
-
- private static boolean sDebuggable = Build.IS_DEBUGGABLE;
- private static final String SYSPROP_ENABLED_PREFIX = "persist.sysui.log.enabled.";
- private static final String SYSPROP_LOGCAT_ENABLED_PREFIX = "persist.sysui.log.enabled.logcat.";
- private static final boolean DEFAULT_ENABLED = sDebuggable;
- private static final boolean DEFAULT_LOGCAT_ENABLED = false;
- private static final int DEFAULT_MAX_DEBUG_LOGS = 100;
- private static final int DEFAULT_MAX_LOGS = 50;
-}
diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
index eba2e7874574..3ae627d27def 100644
--- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipMotionHelper.java
@@ -19,10 +19,6 @@ package com.android.systemui.pip.phone;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
-import android.animation.AnimationHandler;
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.TimeAnimator;
import android.annotation.Nullable;
import android.app.ActivityManager.StackInfo;
import android.app.IActivityManager;
@@ -36,6 +32,7 @@ import android.os.Handler;
import android.os.Message;
import android.os.RemoteException;
import android.util.Log;
+import android.view.Choreographer;
import androidx.dynamicanimation.animation.SpringForce;
@@ -88,9 +85,11 @@ public class PipMotionHelper implements Handler.Callback, PipAppOpsListener.Call
/** PIP's current bounds on the screen. */
private final Rect mBounds = new Rect();
+ private final SfVsyncFrameCallbackProvider mSfVsyncFrameProvider =
+ new SfVsyncFrameCallbackProvider();
+
/**
- * Bounds that are animated using the physics animator. PIP is moved to these bounds whenever
- * the {@link #mVsyncTimeAnimator} ticks.
+ * Bounds that are animated using the physics animator.
*/
private final Rect mAnimatedBounds = new Rect();
@@ -100,12 +99,16 @@ public class PipMotionHelper implements Handler.Callback, PipAppOpsListener.Call
private PhysicsAnimator<Rect> mAnimatedBoundsPhysicsAnimator = PhysicsAnimator.getInstance(
mAnimatedBounds);
+ /** Callback that re-sizes PIP to the animated bounds. */
+ private final Choreographer.FrameCallback mResizePipVsyncCallback =
+ l -> resizePipUnchecked(mAnimatedBounds);
+
/**
- * Time animator whose frame timing comes from the SurfaceFlinger vsync frame provider. At each
- * frame, PIP is moved to {@link #mAnimatedBounds}, which are animated asynchronously using
- * physics animations.
+ * Update listener that posts a vsync frame callback to resize PIP to {@link #mAnimatedBounds}.
*/
- private TimeAnimator mVsyncTimeAnimator;
+ private final PhysicsAnimator.UpdateListener<Rect> mResizePipVsyncUpdateListener =
+ (target, values) ->
+ mSfVsyncFrameProvider.postFrameCallback(mResizePipVsyncCallback);
/** FlingConfig instances provided to PhysicsAnimator for fling gestures. */
private PhysicsAnimator.FlingConfig mFlingConfigX;
@@ -126,39 +129,7 @@ public class PipMotionHelper implements Handler.Callback, PipAppOpsListener.Call
mMenuController = menuController;
mSnapAlgorithm = snapAlgorithm;
mFlingAnimationUtils = flingAnimationUtils;
- final AnimationHandler vsyncFrameCallbackProvider = new AnimationHandler();
- vsyncFrameCallbackProvider.setProvider(new SfVsyncFrameCallbackProvider());
-
onConfigurationChanged();
-
- // Construct a time animator that uses the vsync frame provider. Physics animations can't
- // use custom frame providers, since they rely on constant time between frames to run the
- // physics simulations. To work around this, we physically-animate a second set of bounds,
- // and apply those animating bounds to the PIP in-sync via this TimeAnimator.
- mVsyncTimeAnimator = new TimeAnimator() {
- @Override
- public AnimationHandler getAnimationHandler() {
- return vsyncFrameCallbackProvider;
- }
- };
-
- // When the time animator ticks, move PIP to the animated bounds.
- mVsyncTimeAnimator.setTimeListener(
- (animation, totalTime, deltaTime) ->
- resizePipUnchecked(mAnimatedBounds));
-
- // Add a listener for cancel/end events that moves PIP to the final animated bounds.
- mVsyncTimeAnimator.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationCancel(Animator animation) {
- resizePipUnchecked(mAnimatedBounds);
- }
-
- @Override
- public void onAnimationEnd(Animator animation) {
- resizePipUnchecked(mAnimatedBounds);
- }
- });
}
/**
@@ -429,7 +400,6 @@ public class PipMotionHelper implements Handler.Callback, PipAppOpsListener.Call
*/
private void cancelAnimations() {
mAnimatedBoundsPhysicsAnimator.cancel();
- mVsyncTimeAnimator.cancel();
}
/**
@@ -457,10 +427,8 @@ public class PipMotionHelper implements Handler.Callback, PipAppOpsListener.Call
cancelAnimations();
mAnimatedBoundsPhysicsAnimator
- .withEndActions(
- mVsyncTimeAnimator::cancel)
+ .addUpdateListener(mResizePipVsyncUpdateListener)
.start();
- mVsyncTimeAnimator.start();
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/qs/DoubleLineTileLayout.kt b/packages/SystemUI/src/com/android/systemui/qs/DoubleLineTileLayout.kt
index f66a1ece1868..f710f7fc47e2 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/DoubleLineTileLayout.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/DoubleLineTileLayout.kt
@@ -68,7 +68,7 @@ class DoubleLineTileLayout(context: Context) : ViewGroup(context), QSPanel.QSTil
override fun updateResources(): Boolean {
with(mContext.resources) {
smallTileSize = getDimensionPixelSize(R.dimen.qs_quick_tile_size)
- cellMarginHorizontal = getDimensionPixelSize(R.dimen.qs_tile_margin_horizontal) / 2
+ cellMarginHorizontal = getDimensionPixelSize(R.dimen.qs_tile_margin_horizontal)
cellMarginVertical = getDimensionPixelSize(R.dimen.new_qs_vertical_margin)
}
requestLayout()
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSCarrier.java b/packages/SystemUI/src/com/android/systemui/qs/QSCarrier.java
index 4c7d82e99d06..5a9c360e3104 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSCarrier.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSCarrier.java
@@ -30,6 +30,8 @@ import com.android.settingslib.graph.SignalDrawable;
import com.android.systemui.DualToneHandler;
import com.android.systemui.R;
+import java.util.Objects;
+
public class QSCarrier extends LinearLayout {
private View mMobileGroup;
@@ -39,6 +41,7 @@ public class QSCarrier extends LinearLayout {
private DualToneHandler mDualToneHandler;
private ColorStateList mColorForegroundStateList;
private float mColorForegroundIntensity;
+ private QSCarrierGroupController.CellSignalState mLastSignalState;
public QSCarrier(Context context) {
super(context);
@@ -74,6 +77,8 @@ public class QSCarrier extends LinearLayout {
}
public void updateState(QSCarrierGroupController.CellSignalState state) {
+ if (Objects.equals(state, mLastSignalState)) return;
+ mLastSignalState = state;
mMobileGroup.setVisibility(state.visible ? View.VISIBLE : View.GONE);
if (state.visible) {
mMobileRoaming.setVisibility(state.roaming ? View.VISIBLE : View.GONE);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroupController.java b/packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroupController.java
index fb106425ec63..86fccd7f9d52 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroupController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroupController.java
@@ -29,6 +29,7 @@ import android.util.Log;
import android.view.View;
import android.widget.TextView;
+import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import com.android.keyguard.CarrierTextController;
@@ -37,6 +38,7 @@ import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.statusbar.policy.NetworkController;
+import java.util.Objects;
import java.util.function.Consumer;
import javax.inject.Inject;
@@ -297,6 +299,27 @@ public class QSCarrierGroupController {
String contentDescription;
String typeContentDescription;
boolean roaming;
+
+ @Override
+ public boolean equals(@Nullable Object obj) {
+ if (this == obj) return true;
+ if (!(obj instanceof CellSignalState)) return false;
+ CellSignalState other = (CellSignalState) obj;
+ return this.visible == other.visible
+ && this.mobileSignalIconId == other.mobileSignalIconId
+ && Objects.equals(this.contentDescription, other.contentDescription)
+ && Objects.equals(this.typeContentDescription, other.typeContentDescription)
+ && this.roaming == other.roaming;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(visible,
+ mobileSignalIconId,
+ contentDescription,
+ typeContentDescription,
+ roaming);
+ }
}
public static class Builder {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSColorController.kt b/packages/SystemUI/src/com/android/systemui/qs/QSColorController.kt
deleted file mode 100644
index 3f0c5bb7f620..000000000000
--- a/packages/SystemUI/src/com/android/systemui/qs/QSColorController.kt
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.qs
-
-import android.content.ContentResolver
-import android.database.ContentObserver
-import android.net.Uri
-import android.os.Handler
-import android.os.Looper
-import android.provider.Settings
-import android.util.Log
-import com.android.systemui.plugins.qs.QSTile
-
-private const val TAG = "QSColorController"
-private const val QS_COLOR_ICON = "qs_color_icon"
-private const val QS_COLOR_ENABLED = "qs_color_enabled"
-private const val QS_COLOR_OVERRIDDEN_TILES = "qs_color_overridden_tiles"
-private val qsColorIconUri = Settings.System.getUriFor(QS_COLOR_ICON)
-private val qsColorEnabledUri = Settings.System.getUriFor(QS_COLOR_ENABLED)
-class QSColorController private constructor() {
-
- private var overrideColor = false
- private var colorIcon = false
- private lateinit var colorCache: SettingBackedMap
-
- companion object {
- val instance = QSColorController()
- internal fun overrideColor() = instance.overrideColor
- internal fun colorIcon() = instance.colorIcon
-
- @QSTile.ColorTile
- private fun getColorFromSetting(setting: String): Int {
- return when (setting.toLowerCase()) {
- "red" -> QSTile.COLOR_TILE_RED
- "blue" -> QSTile.COLOR_TILE_BLUE
- "green" -> QSTile.COLOR_TILE_GREEN
- "yellow" -> QSTile.COLOR_TILE_YELLOW
- else -> QSTile.COLOR_TILE_ACCENT
- }
- }
- }
-
- private fun getBooleanSetting(key: String, default: Boolean = false): Boolean =
- try {
- Settings.System.getInt(contentResolver, key) != 0
- } catch (_: Settings.SettingNotFoundException) {
- default
- }
-
- private lateinit var tileHost: QSHost
- private lateinit var contentResolver: ContentResolver
-
- fun initQSTileHost(host: QSHost) {
- tileHost = host
- contentResolver = tileHost.context.contentResolver
- colorCache = SettingBackedMap(contentResolver, mutableMapOf())
- colorIcon = getBooleanSetting(QS_COLOR_ICON)
- overrideColor = getBooleanSetting(QS_COLOR_ENABLED)
- readExistingSettings()
- contentResolver.registerContentObserver(qsColorEnabledUri, true, settingsListener)
- contentResolver.registerContentObserver(qsColorIconUri, false, settingsListener)
- }
-
- private fun readExistingSettings() {
- Settings.System.getString(contentResolver, QS_COLOR_OVERRIDDEN_TILES)?.split(",")
- ?.mapNotNull { spec ->
- Settings.System.getString(contentResolver, "$QS_COLOR_ENABLED/$spec")?.let {
- spec to it
- }
- }?.forEach {
- modifyTileColor(it.first, getColorFromSetting(it.second))
- }
- }
-
- private val settingsListener = object : ContentObserver(Handler(Looper.getMainLooper())) {
- override fun onChange(selfChange: Boolean, uri: Uri) {
- super.onChange(selfChange, uri)
- when (uri) {
- qsColorIconUri -> colorIcon = getBooleanSetting(QS_COLOR_ICON)
- qsColorEnabledUri -> overrideColor = getBooleanSetting(QS_COLOR_ENABLED)
- else -> {
- uri.path?.drop("/system/".length)?.let {
- val color = getColorFromSetting(
- Settings.System.getString(contentResolver, it) ?: "accent")
- val tileSpec = uri.lastPathSegment ?: ""
- modifyTileColor(tileSpec, color)
- }
- }
- }
- }
- }
-
- private fun modifyTileColor(spec: String, @QSTile.ColorTile color: Int) {
- Log.w(TAG, "Setting color of tile $spec to $color")
- colorCache.put(spec, color)
- tileHost.tiles.firstOrNull { it.tileSpec == spec }?.setColor(color)
- }
-
- fun applyColorToTile(tile: QSTile) {
- colorCache.get(tile.tileSpec)?.let {
- modifyTileColor(tile.tileSpec, it)
- }
- }
-
- fun applyColorToAllTiles() = tileHost.tiles.forEach(::applyColorToTile)
-
- fun destroy() {
- contentResolver.unregisterContentObserver(settingsListener)
- }
-
- class SettingBackedMap(
- private val contentResolver: ContentResolver,
- private val map: MutableMap<String, Int>
- ) : MutableMap<String, @QSTile.ColorTile Int> by map {
- override fun put(key: String, @QSTile.ColorTile value: Int): Int? {
- return map.put(key, value).also {
- Settings.System.putString(contentResolver, QS_COLOR_OVERRIDDEN_TILES,
- map.filterValues { it != QSTile.COLOR_TILE_ACCENT }
- .keys
- .joinToString(","))
- }
- }
- }
-}
-fun overrideColor() = QSColorController.overrideColor()
-fun colorIcon() = QSColorController.colorIcon() \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java b/packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java
index 0134aa3a15df..5de6d1c42b4f 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSFooterImpl.java
@@ -169,7 +169,7 @@ public class QSFooterImpl extends FrameLayout implements QSFooter,
if (DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)) {
v.setText(mContext.getString(
com.android.internal.R.string.bugreport_status,
- Build.VERSION.RELEASE,
+ Build.VERSION.RELEASE_OR_CODENAME,
Build.ID));
v.setVisibility(View.VISIBLE);
} else {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSMediaPlayer.java b/packages/SystemUI/src/com/android/systemui/qs/QSMediaPlayer.java
index 1077834e7146..6c697184f082 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSMediaPlayer.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSMediaPlayer.java
@@ -36,7 +36,7 @@ import android.media.MediaMetadata;
import android.media.session.MediaController;
import android.media.session.MediaSession;
import android.media.session.PlaybackState;
-import android.text.TextUtils;
+import android.os.Handler;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
@@ -45,7 +45,6 @@ import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
-import android.widget.RemoteViews;
import android.widget.TextView;
import androidx.core.graphics.drawable.RoundedBitmapDrawable;
@@ -72,8 +71,6 @@ public class QSMediaPlayer {
private View mSeamless;
private MediaSession.Token mToken;
private MediaController mController;
- private int mWidth;
- private int mHeight;
private int mForegroundColor;
private int mBackgroundColor;
private ComponentName mRecvComponent;
@@ -158,16 +155,11 @@ public class QSMediaPlayer {
*
* @param context
* @param parent
- * @param width
- * @param height
*/
- public QSMediaPlayer(Context context, ViewGroup parent, int width, int height) {
+ public QSMediaPlayer(Context context, ViewGroup parent) {
mContext = context;
LayoutInflater inflater = LayoutInflater.from(mContext);
mMediaNotifView = (LinearLayout) inflater.inflate(R.layout.qs_media_panel, parent, false);
-
- mWidth = width;
- mHeight = height;
}
public View getView() {
@@ -217,27 +209,18 @@ public class QSMediaPlayer {
Notification.Builder builder = Notification.Builder.recoverBuilder(mContext, notif);
// Album art
- addAlbumArtBackground(mMediaMetadata, bgColor, mWidth, mHeight);
+ addAlbumArt(mMediaMetadata, bgColor);
- // Reuse notification header instead of reimplementing everything
- RemoteViews headerRemoteView = builder.makeNotificationHeader();
LinearLayout headerView = mMediaNotifView.findViewById(R.id.header);
- View result = headerRemoteView.apply(mContext, headerView);
- result.setPadding(0, 0, 0, 0);
- LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
- ViewGroup.LayoutParams.WRAP_CONTENT, 75);
- result.setLayoutParams(lp);
- headerView.removeAllViews();
- headerView.addView(result);
// App icon
- ImageView appIcon = headerView.findViewById(com.android.internal.R.id.icon);
+ ImageView appIcon = headerView.findViewById(R.id.icon);
Drawable iconDrawable = icon.loadDrawable(mContext);
iconDrawable.setTint(iconColor);
appIcon.setImageDrawable(iconDrawable);
// App title
- TextView appName = headerView.findViewById(com.android.internal.R.id.app_name_text);
+ TextView appName = headerView.findViewById(R.id.app_name);
String appNameString = builder.loadHeaderAppName();
appName.setText(appNameString);
appName.setTextColor(iconColor);
@@ -254,25 +237,8 @@ public class QSMediaPlayer {
}
});
- // Separator
- TextView separator = headerView.findViewById(com.android.internal.R.id.header_text_divider);
- separator.setTextColor(iconColor);
-
- // Album name
- TextView albumName = headerView.findViewById(com.android.internal.R.id.header_text);
- String albumString = mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ALBUM);
- if (TextUtils.isEmpty(albumString)) {
- albumName.setVisibility(View.GONE);
- separator.setVisibility(View.GONE);
- } else {
- albumName.setText(albumString);
- albumName.setTextColor(iconColor);
- albumName.setVisibility(View.VISIBLE);
- separator.setVisibility(View.VISIBLE);
- }
-
// Transfer chip
- mSeamless = headerView.findViewById(com.android.internal.R.id.media_seamless);
+ mSeamless = headerView.findViewById(R.id.media_seamless);
mSeamless.setVisibility(View.VISIBLE);
updateChip(device);
ActivityStarter mActivityStarter = Dependency.get(ActivityStarter.class);
@@ -284,13 +250,13 @@ public class QSMediaPlayer {
});
// Artist name
- TextView artistText = mMediaNotifView.findViewById(R.id.header_title);
+ TextView artistText = headerView.findViewById(R.id.header_artist);
String artistName = mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ARTIST);
artistText.setText(artistName);
artistText.setTextColor(iconColor);
// Song name
- TextView titleText = mMediaNotifView.findViewById(R.id.header_text);
+ TextView titleText = headerView.findViewById(R.id.header_text);
String songName = mMediaMetadata.getString(MediaMetadata.METADATA_KEY_TITLE);
titleText.setText(songName);
titleText.setTextColor(iconColor);
@@ -363,34 +329,25 @@ public class QSMediaPlayer {
return (state.getState() == PlaybackState.STATE_PLAYING);
}
- private void addAlbumArtBackground(MediaMetadata metadata, int bgColor, int width, int height) {
+ private void addAlbumArt(MediaMetadata metadata, int bgColor) {
Bitmap albumArt = metadata.getBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART);
float radius = mContext.getResources().getDimension(R.dimen.qs_media_corner_radius);
+ ImageView albumView = mMediaNotifView.findViewById(R.id.album_art);
if (albumArt != null) {
Log.d(TAG, "updating album art");
Bitmap original = albumArt.copy(Bitmap.Config.ARGB_8888, true);
- Bitmap scaled = scaleBitmap(original, width, height);
- Canvas canvas = new Canvas(scaled);
-
- // Add translucent layer over album art to improve contrast
- Paint p = new Paint();
- p.setStyle(Paint.Style.FILL);
- p.setColor(bgColor);
- p.setAlpha(200);
- canvas.drawRect(0, 0, canvas.getWidth(), canvas.getHeight(), p);
-
+ int albumSize = (int) mContext.getResources().getDimension(R.dimen.qs_media_album_size);
+ Bitmap scaled = scaleBitmap(original, albumSize, albumSize);
RoundedBitmapDrawable roundedDrawable = RoundedBitmapDrawableFactory.create(
mContext.getResources(), scaled);
roundedDrawable.setCornerRadius(radius);
-
- mMediaNotifView.setBackground(roundedDrawable);
+ albumView.setImageDrawable(roundedDrawable);
} else {
Log.e(TAG, "No album art available");
- GradientDrawable rect = new GradientDrawable();
- rect.setCornerRadius(radius);
- rect.setColor(bgColor);
- mMediaNotifView.setBackground(rect);
+ albumView.setImageDrawable(null);
}
+
+ mMediaNotifView.setBackgroundTintList(ColorStateList.valueOf(bgColor));
}
private Bitmap scaleBitmap(Bitmap original, int width, int height) {
@@ -414,6 +371,13 @@ public class QSMediaPlayer {
if (mSeamless == null) {
return;
}
+ Handler handler = mSeamless.getHandler();
+ handler.post(() -> {
+ updateChipInternal(device);
+ });
+ }
+
+ private void updateChipInternal(MediaDevice device) {
ColorStateList fgTintList = ColorStateList.valueOf(mForegroundColor);
// Update the outline color
@@ -423,8 +387,8 @@ public class QSMediaPlayer {
rect.setStroke(2, mForegroundColor);
rect.setColor(mBackgroundColor);
- ImageView iconView = mSeamless.findViewById(com.android.internal.R.id.media_seamless_image);
- TextView deviceName = mSeamless.findViewById(com.android.internal.R.id.media_seamless_text);
+ ImageView iconView = mSeamless.findViewById(R.id.media_seamless_image);
+ TextView deviceName = mSeamless.findViewById(R.id.media_seamless_text);
deviceName.setTextColor(fgTintList);
if (device != null) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
index 35b8312ba25c..14a117ca40a1 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
@@ -31,7 +31,6 @@ import android.metrics.LogMaker;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
-import android.provider.Settings;
import android.service.notification.StatusBarNotification;
import android.service.quicksettings.Tile;
import android.util.AttributeSet;
@@ -62,7 +61,6 @@ import com.android.systemui.qs.external.CustomTile;
import com.android.systemui.settings.BrightnessController;
import com.android.systemui.settings.ToggleSliderView;
import com.android.systemui.shared.plugins.PluginManager;
-import com.android.systemui.statusbar.phone.NPVPluginManager;
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
import com.android.systemui.statusbar.policy.BrightnessMirrorController.BrightnessMirrorListener;
import com.android.systemui.tuner.TunerService;
@@ -97,6 +95,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
private final ArrayList<QSMediaPlayer> mMediaPlayers = new ArrayList<>();
private LocalMediaManager mLocalMediaManager;
private MediaDevice mDevice;
+ private boolean mUpdateCarousel = false;
protected boolean mExpanded;
protected boolean mListening;
@@ -120,7 +119,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
private FrameLayout mPluginFrame;
private final PluginManager mPluginManager;
- private NPVPluginManager mNPVPluginManager;
private final LocalMediaManager.DeviceCallback mDeviceCallback =
new LocalMediaManager.DeviceCallback() {
@@ -187,7 +185,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
HorizontalScrollView mediaScrollView = (HorizontalScrollView) LayoutInflater.from(
mContext).inflate(R.layout.media_carousel, this, false);
mMediaCarousel = mediaScrollView.findViewById(R.id.media_carousel);
- addView(mediaScrollView);
+ addView(mediaScrollView, 0);
} else {
mMediaCarousel = null;
}
@@ -201,14 +199,23 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
findViewById(R.id.brightness_slider), broadcastDispatcher);
mDumpController = dumpController;
mPluginManager = pluginManager;
- if (mPluginManager != null && Settings.System.getInt(
- mContext.getContentResolver(), "npv_plugin_flag", 0) == 2) {
- mPluginFrame = (FrameLayout) LayoutInflater.from(mContext).inflate(
- R.layout.status_bar_expanded_plugin_frame, this, false);
- addView(mPluginFrame);
- mNPVPluginManager = new NPVPluginManager(mPluginFrame, mPluginManager);
- }
+ }
+ @Override
+ public void onVisibilityAggregated(boolean isVisible) {
+ super.onVisibilityAggregated(isVisible);
+ if (!isVisible && mUpdateCarousel) {
+ for (QSMediaPlayer player : mMediaPlayers) {
+ if (player.isPlaying()) {
+ LayoutParams lp = (LayoutParams) player.getView().getLayoutParams();
+ mMediaCarousel.removeView(player.getView());
+ mMediaCarousel.addView(player.getView(), 0, lp);
+ ((HorizontalScrollView) mMediaCarousel.getParent()).fullScroll(View.FOCUS_LEFT);
+ mUpdateCarousel = false;
+ break;
+ }
+ }
+ }
}
/**
@@ -248,7 +255,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
}
}
- int playerHeight = (int) getResources().getDimension(R.dimen.qs_media_height);
int playerWidth = (int) getResources().getDimension(R.dimen.qs_media_width);
int padding = (int) getResources().getDimension(R.dimen.qs_media_padding);
LayoutParams lp = new LayoutParams(playerWidth, ViewGroup.LayoutParams.MATCH_PARENT);
@@ -257,8 +263,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
if (player == null) {
Log.d(TAG, "creating new player");
-
- player = new QSMediaPlayer(mContext, this, playerWidth, playerHeight);
+ player = new QSMediaPlayer(mContext, this);
if (player.isPlaying()) {
mMediaCarousel.addView(player.getView(), 0, lp); // add in front
@@ -267,9 +272,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
}
mMediaPlayers.add(player);
} else if (player.isPlaying()) {
- // move it to the front
- mMediaCarousel.removeView(player.getView());
- mMediaCarousel.addView(player.getView(), 0, lp);
+ mUpdateCarousel = true;
}
Log.d(TAG, "setting player session");
@@ -556,7 +559,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
if (mListening) {
refreshAllTiles();
}
- if (mNPVPluginManager != null) mNPVPluginManager.setListening(listening);
}
public void setListening(boolean listening, boolean expanded) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java b/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java
index 3fcd1c19370f..476af20b78f4 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSSecurityFooter.java
@@ -116,6 +116,7 @@ public class QSSecurityFooter implements OnClickListener, DialogInterface.OnClic
@Override
public void onClick(View v) {
+ if (!hasFooter()) return;
mHandler.sendEmptyMessage(H.CLICK);
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
index f71150fc348c..00e09f8d4725 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSTileHost.java
@@ -90,8 +90,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
private int mCurrentUser;
private final Optional<StatusBar> mStatusBarOptional;
- private QSColorController mQSColorController = QSColorController.Companion.getInstance();
-
@Inject
public QSTileHost(Context context,
StatusBarIconController iconController,
@@ -127,8 +125,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
// AutoTileManager can modify mTiles so make sure mTiles has already been initialized.
mAutoTiles = autoTiles.get();
});
-
- mQSColorController.initQSTileHost(this);
}
public StatusBarIconController getIconController() {
@@ -142,8 +138,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
mServices.destroy();
mPluginManager.removePluginListener(this);
mDumpController.unregisterDumpable(this);
-
- mQSColorController.destroy();
}
@Override
@@ -280,8 +274,6 @@ public class QSTileHost implements QSHost, Tunable, PluginListener<QSFactory>, D
mCallbacks.get(i).onTilesChanged();
}
}
-
- mQSColorController.applyColorToAllTiles();
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSMediaPlayer.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSMediaPlayer.java
index cec1cb2fb53b..9018a375c365 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSMediaPlayer.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSMediaPlayer.java
@@ -23,13 +23,7 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.ColorStateList;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.Matrix;
-import android.graphics.Paint;
-import android.graphics.Rect;
import android.graphics.drawable.Drawable;
-import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.Icon;
import android.media.MediaMetadata;
import android.media.session.MediaController;
@@ -45,9 +39,6 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
-import androidx.core.graphics.drawable.RoundedBitmapDrawable;
-import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
-
import com.android.systemui.R;
import java.util.List;
@@ -63,7 +54,6 @@ public class QuickQSMediaPlayer {
private LinearLayout mMediaNotifView;
private MediaSession.Token mToken;
private MediaController mController;
- private int mBackgroundColor;
private int mForegroundColor;
private ComponentName mRecvComponent;
@@ -142,7 +132,6 @@ public class QuickQSMediaPlayer {
View actionsContainer, int[] actionsToShow, PendingIntent contentIntent) {
mToken = token;
mForegroundColor = iconColor;
- mBackgroundColor = bgColor;
String oldPackage = "";
if (mController != null) {
@@ -185,8 +174,7 @@ public class QuickQSMediaPlayer {
}
});
- // Album art
- addAlbumArtBackground(mMediaMetadata, mBackgroundColor);
+ mMediaNotifView.setBackgroundTintList(ColorStateList.valueOf(bgColor));
// App icon
ImageView appIcon = mMediaNotifView.findViewById(R.id.icon);
@@ -194,14 +182,8 @@ public class QuickQSMediaPlayer {
iconDrawable.setTint(mForegroundColor);
appIcon.setImageDrawable(iconDrawable);
- // Artist name
- TextView appText = mMediaNotifView.findViewById(R.id.header_title);
- String artistName = mMediaMetadata.getString(MediaMetadata.METADATA_KEY_ARTIST);
- appText.setText(artistName);
- appText.setTextColor(mForegroundColor);
-
// Song name
- TextView titleText = mMediaNotifView.findViewById(R.id.header_text);
+ TextView titleText = mMediaNotifView.findViewById(R.id.header_title);
String songName = mMediaMetadata.getString(MediaMetadata.METADATA_KEY_TITLE);
titleText.setText(songName);
titleText.setTextColor(mForegroundColor);
@@ -277,54 +259,4 @@ public class QuickQSMediaPlayer {
public boolean hasMediaSession() {
return mController != null && mController.getPlaybackState() != null;
}
-
- private void addAlbumArtBackground(MediaMetadata metadata, int bgColor) {
- Bitmap albumArt = metadata.getBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART);
- float radius = mContext.getResources().getDimension(R.dimen.qs_media_corner_radius);
- Rect bounds = new Rect();
- mMediaNotifView.getBoundsOnScreen(bounds);
- int width = bounds.width();
- int height = bounds.height();
- if (albumArt != null && width > 0 && height > 0) {
- Bitmap original = albumArt.copy(Bitmap.Config.ARGB_8888, true);
- Bitmap scaled = scaleBitmap(original, width, height);
- Canvas canvas = new Canvas(scaled);
-
- // Add translucent layer over album art to improve contrast
- Paint p = new Paint();
- p.setStyle(Paint.Style.FILL);
- p.setColor(bgColor);
- p.setAlpha(200);
- canvas.drawRect(0, 0, canvas.getWidth(), canvas.getHeight(), p);
-
- RoundedBitmapDrawable roundedDrawable = RoundedBitmapDrawableFactory.create(
- mContext.getResources(), scaled);
- roundedDrawable.setCornerRadius(radius);
-
- mMediaNotifView.setBackground(roundedDrawable);
- } else {
- Log.e(TAG, "No album art available");
- GradientDrawable rect = new GradientDrawable();
- rect.setCornerRadius(radius);
- rect.setColor(bgColor);
- mMediaNotifView.setBackground(rect);
- }
- }
-
- private Bitmap scaleBitmap(Bitmap original, int width, int height) {
- Bitmap cropped = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
- Canvas canvas = new Canvas(cropped);
-
- float scale = (float) cropped.getWidth() / (float) original.getWidth();
- float dy = (cropped.getHeight() - original.getHeight() * scale) / 2.0f;
- Matrix transformation = new Matrix();
- transformation.postTranslate(0, dy);
- transformation.preScale(scale, scale);
-
- Paint paint = new Paint();
- paint.setFilterBitmap(true);
- canvas.drawBitmap(original, transformation, paint);
-
- return cropped;
- }
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
index b05d4fdf7db7..e9207016eb68 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
@@ -85,20 +85,21 @@ public class QuickQSPanel extends QSPanel {
mHorizontalLinearLayout.setClipChildren(false);
mHorizontalLinearLayout.setClipToPadding(false);
+ int marginSize = (int) mContext.getResources().getDimension(R.dimen.qqs_media_spacing);
+ mMediaPlayer = new QuickQSMediaPlayer(mContext, mHorizontalLinearLayout);
+ LayoutParams lp2 = new LayoutParams(0, LayoutParams.MATCH_PARENT, 1);
+ lp2.setMarginEnd(marginSize);
+ lp2.setMarginStart(0);
+ mHorizontalLinearLayout.addView(mMediaPlayer.getView(), lp2);
+
mTileLayout = new DoubleLineTileLayout(context);
mMediaTileLayout = mTileLayout;
mRegularTileLayout = new HeaderTileLayout(context);
LayoutParams lp = new LayoutParams(0, LayoutParams.MATCH_PARENT, 1);
- lp.setMarginEnd(10);
- lp.setMarginStart(0);
+ lp.setMarginEnd(0);
+ lp.setMarginStart(marginSize);
mHorizontalLinearLayout.addView((View) mTileLayout, lp);
- mMediaPlayer = new QuickQSMediaPlayer(mContext, mHorizontalLinearLayout);
- LayoutParams lp2 = new LayoutParams(0, LayoutParams.MATCH_PARENT, 1);
- lp2.setMarginEnd(0);
- lp2.setMarginStart(25);
- mHorizontalLinearLayout.addView(mMediaPlayer.getView(), lp2);
-
sDefaultMaxTiles = getResources().getInteger(R.integer.quick_qs_panel_max_columns);
mTileLayout.setListening(mListening);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/TileLayout.java b/packages/SystemUI/src/com/android/systemui/qs/TileLayout.java
index 37743ec55517..9f59277c918a 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/TileLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/TileLayout.java
@@ -1,5 +1,7 @@
package com.android.systemui.qs;
+import static com.android.systemui.util.Utils.useQsMediaPlayer;
+
import android.content.Context;
import android.content.res.Resources;
import android.provider.Settings;
@@ -42,7 +44,8 @@ public class TileLayout extends ViewGroup implements QSTileLayout {
public TileLayout(Context context, AttributeSet attrs) {
super(context, attrs);
setFocusableInTouchMode(true);
- mLessRows = Settings.System.getInt(context.getContentResolver(), "qs_less_rows", 0) != 0;
+ mLessRows = (Settings.System.getInt(context.getContentResolver(), "qs_less_rows", 0) != 0)
+ || useQsMediaPlayer(context);
updateResources();
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java b/packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java
index 557c64b7dfb9..411980b399bd 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java
@@ -191,7 +191,6 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener
mTile.setLabel(tile.getLabel());
mTile.setSubtitle(tile.getSubtitle());
mTile.setContentDescription(tile.getContentDescription());
- mTile.setStateDescription(tile.getStateDescription());
mTile.setState(tile.getState());
}
@@ -346,12 +345,6 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener
state.contentDescription = state.label;
}
- if (mTile.getStateDescription() != null) {
- state.stateDescription = mTile.getStateDescription();
- } else {
- state.stateDescription = null;
- }
-
if (state instanceof BooleanState) {
state.expandedAccessibilityClassName = Switch.class.getName();
((BooleanState) state).value = (state.state == Tile.STATE_ACTIVE);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java
index 2b53727f237e..554672d88052 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java
@@ -16,7 +16,6 @@ package com.android.systemui.qs.tileimpl;
import android.content.Context;
import android.os.Build;
-import android.provider.Settings;
import android.util.Log;
import android.view.ContextThemeWrapper;
@@ -33,7 +32,6 @@ import com.android.systemui.qs.tiles.BluetoothTile;
import com.android.systemui.qs.tiles.CastTile;
import com.android.systemui.qs.tiles.CellularTile;
import com.android.systemui.qs.tiles.ColorInversionTile;
-import com.android.systemui.qs.tiles.ControlsTile;
import com.android.systemui.qs.tiles.DataSaverTile;
import com.android.systemui.qs.tiles.DndTile;
import com.android.systemui.qs.tiles.FlashlightTile;
@@ -60,7 +58,6 @@ public class QSFactoryImpl implements QSFactory {
private final Provider<WifiTile> mWifiTileProvider;
private final Provider<BluetoothTile> mBluetoothTileProvider;
- private final Provider<ControlsTile> mControlsTileProvider;
private final Provider<CellularTile> mCellularTileProvider;
private final Provider<DndTile> mDndTileProvider;
private final Provider<ColorInversionTile> mColorInversionTileProvider;
@@ -85,7 +82,6 @@ public class QSFactoryImpl implements QSFactory {
@Inject
public QSFactoryImpl(Provider<WifiTile> wifiTileProvider,
Provider<BluetoothTile> bluetoothTileProvider,
- Provider<ControlsTile> controlsTileProvider,
Provider<CellularTile> cellularTileProvider,
Provider<DndTile> dndTileProvider,
Provider<ColorInversionTile> colorInversionTileProvider,
@@ -106,7 +102,6 @@ public class QSFactoryImpl implements QSFactory {
Provider<ScreenRecordTile> screenRecordTileProvider) {
mWifiTileProvider = wifiTileProvider;
mBluetoothTileProvider = bluetoothTileProvider;
- mControlsTileProvider = controlsTileProvider;
mCellularTileProvider = cellularTileProvider;
mDndTileProvider = dndTileProvider;
mColorInversionTileProvider = colorInversionTileProvider;
@@ -146,11 +141,6 @@ public class QSFactoryImpl implements QSFactory {
return mWifiTileProvider.get();
case "bt":
return mBluetoothTileProvider.get();
- case "controls":
- if (Settings.System.getInt(mHost.getContext().getContentResolver(),
- "npv_plugin_flag", 0) == 3) {
- return mControlsTileProvider.get();
- } else return null;
case "cell":
return mCellularTileProvider.get();
case "dnd":
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java
index 88c7964144c1..31526bf8f5e1 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java
@@ -14,12 +14,10 @@
package com.android.systemui.qs.tileimpl;
-import static com.android.systemui.qs.QSColorControllerKt.colorIcon;
import static com.android.systemui.qs.tileimpl.QSTileImpl.getColorForState;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
-import android.animation.ArgbEvaluator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.ColorStateList;
@@ -150,15 +148,10 @@ public class QSIconViewImpl extends QSIconView {
iv.clearColorFilter();
}
if (state.state != mState) {
- int color = getColor(state.state, state.colorActive);
+ int color = getColor(state.state);
mState = state.state;
if (mTint != 0 && allowAnimations && shouldAnimate(iv)) {
- if (colorIcon()) {
- animateColor(mTint, color, iv, () -> updateIcon(iv, state, allowAnimations));
- } else {
- animateGrayScale(mTint, color, iv,
- () -> updateIcon(iv, state, allowAnimations));
- }
+ animateGrayScale(mTint, color, iv, () -> updateIcon(iv, state, allowAnimations));
mTint = color;
} else {
if (iv instanceof AlphaControlledSlashImageView) {
@@ -175,12 +168,8 @@ public class QSIconViewImpl extends QSIconView {
}
}
- protected int getColor(int state, int colorActive) {
- return getColorForState(getContext(), state, colorActive);
- }
-
protected int getColor(int state) {
- return getColor(state, -1);
+ return getColorForState(getContext(), state);
}
private void animateGrayScale(int fromColor, int toColor, ImageView iv,
@@ -217,37 +206,6 @@ public class QSIconViewImpl extends QSIconView {
}
}
- private void animateColor(int fromColor, int toColor, ImageView iv,
- final Runnable endRunnable) {
- if (iv instanceof AlphaControlledSlashImageView) {
- ((AlphaControlledSlashImageView) iv)
- .setFinalImageTintList(ColorStateList.valueOf(toColor));
- }
- if (mAnimationEnabled && ValueAnimator.areAnimatorsEnabled()) {
-
-
- ValueAnimator anim = ValueAnimator.ofFloat(0, 1);
- anim.setDuration(QS_ANIM_LENGTH);
- anim.addUpdateListener(animation -> {
- float fraction = animation.getAnimatedFraction();
- int color = (int) ArgbEvaluator.getInstance().evaluate(fraction, fromColor,
- toColor);
-
- setTint(iv, color);
- });
- anim.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- endRunnable.run();
- }
- });
- anim.start();
- } else {
- setTint(iv, toColor);
- endRunnable.run();
- }
- }
-
public static void setTint(ImageView iv, int color) {
iv.setImageTintList(ColorStateList.valueOf(color));
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java
index fda9e5b1f1ef..2fe64d26f3ac 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java
@@ -13,8 +13,6 @@
*/
package com.android.systemui.qs.tileimpl;
-import static com.android.systemui.qs.QSColorControllerKt.colorIcon;
-import static com.android.systemui.qs.QSColorControllerKt.overrideColor;
import static com.android.systemui.qs.tileimpl.QSIconViewImpl.QS_ANIM_LENGTH;
import android.animation.ValueAnimator;
@@ -65,6 +63,7 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
private String mAccessibilityClass;
private boolean mTileState;
private boolean mCollapsedView;
+ private boolean mClicked;
private boolean mShowRippleEffect = true;
private final ImageView mBg;
@@ -75,8 +74,6 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
private int mCircleColor;
private int mBgSize;
- private final boolean mQsColors = overrideColor();
- private final boolean mQSIcons = colorIcon();
public QSTileBaseView(Context context, QSIconView icon) {
this(context, icon, false);
@@ -211,7 +208,7 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
}
protected void handleStateChanged(QSTile.State state) {
- int circleColor = getCircleColor(state.state, mQsColors ? state.colorActive : -1);
+ int circleColor = getCircleColor(state.state);
boolean allowAnimations = animationsEnabled();
if (circleColor != mCircleColor) {
if (allowAnimations) {
@@ -233,35 +230,13 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
setLongClickable(state.handlesLongClick);
mIcon.setIcon(state, allowAnimations);
setContentDescription(state.contentDescription);
- final StringBuilder stateDescription = new StringBuilder();
- switch (state.state) {
- case Tile.STATE_UNAVAILABLE:
- stateDescription.append(mContext.getString(R.string.tile_unavailable));
- break;
- case Tile.STATE_INACTIVE:
- if (state instanceof QSTile.BooleanState) {
- stateDescription.append(mContext.getString(R.string.switch_bar_off));
- }
- break;
- case Tile.STATE_ACTIVE:
- if (state instanceof QSTile.BooleanState) {
- stateDescription.append(mContext.getString(R.string.switch_bar_on));
- }
- break;
- default:
- break;
- }
- if (!TextUtils.isEmpty(state.stateDescription)) {
- stateDescription.append(", ");
- stateDescription.append(state.stateDescription);
- }
- setStateDescription(stateDescription.toString());
mAccessibilityClass =
state.state == Tile.STATE_UNAVAILABLE ? null : state.expandedAccessibilityClassName;
if (state instanceof QSTile.BooleanState) {
boolean newState = ((BooleanState) state).value;
if (mTileState != newState) {
+ mClicked = false;
mTileState = newState;
}
}
@@ -280,11 +255,10 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
return mLocInScreen[1] >= -getHeight();
}
- private int getCircleColor(int state, int colorActive) {
+ private int getCircleColor(int state) {
switch (state) {
case Tile.STATE_ACTIVE:
- int color = (colorActive == -1) ? mColorActive : colorActive;
- return mQsColors && mQSIcons ? Utils.applyAlpha(0.5f, color) : color;
+ return mColorActive;
case Tile.STATE_INACTIVE:
case Tile.STATE_UNAVAILABLE:
return mColorDisabled;
@@ -294,10 +268,6 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
}
}
- private int getCircleColor(int state) {
- return getCircleColor(state, -1);
- }
-
@Override
public void setClickable(boolean clickable) {
super.setClickable(clickable);
@@ -318,10 +288,23 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
}
@Override
+ public boolean performClick() {
+ mClicked = true;
+ return super.performClick();
+ }
+
+ @Override
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(event);
if (!TextUtils.isEmpty(mAccessibilityClass)) {
event.setClassName(mAccessibilityClass);
+ if (Switch.class.getName().equals(mAccessibilityClass)) {
+ boolean b = mClicked ? !mTileState : mTileState;
+ String label = getResources()
+ .getString(b ? R.string.switch_bar_on : R.string.switch_bar_off);
+ event.setContentDescription(label);
+ event.setChecked(b);
+ }
}
}
@@ -333,6 +316,11 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
if (!TextUtils.isEmpty(mAccessibilityClass)) {
info.setClassName(mAccessibilityClass);
if (Switch.class.getName().equals(mAccessibilityClass)) {
+ boolean b = mClicked ? !mTileState : mTileState;
+ String label = getResources()
+ .getString(b ? R.string.switch_bar_on : R.string.switch_bar_off);
+ info.setText(label);
+ info.setChecked(b);
info.setCheckable(true);
if (isLongClickable()) {
info.addAction(
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java
index 1d379110325a..e1b61c670a12 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileImpl.java
@@ -26,7 +26,6 @@ import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_STATUS_BAR_STATE;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_ACTION;
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-import static com.android.systemui.qs.QSColorControllerKt.colorIcon;
import android.app.ActivityManager;
import android.content.Context;
@@ -55,7 +54,6 @@ import com.android.settingslib.Utils;
import com.android.systemui.Dependency;
import com.android.systemui.Dumpable;
import com.android.systemui.Prefs;
-import com.android.systemui.R;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.qs.DetailAdapter;
import com.android.systemui.plugins.qs.QSIconView;
@@ -432,10 +430,6 @@ public abstract class QSTileImpl<TState extends State> implements QSTile, Lifecy
public abstract CharSequence getTileLabel();
public static int getColorForState(Context context, int state) {
- return getColorForState(context, state, -1);
- }
-
- public static int getColorForState(Context context, int state, int colorActive) {
switch (state) {
case Tile.STATE_UNAVAILABLE:
return Utils.getDisabled(context,
@@ -443,25 +437,13 @@ public abstract class QSTileImpl<TState extends State> implements QSTile, Lifecy
case Tile.STATE_INACTIVE:
return Utils.getColorAttrDefaultColor(context, android.R.attr.textColorSecondary);
case Tile.STATE_ACTIVE:
- return getActiveColor(context, colorActive);
+ return Utils.getColorAttrDefaultColor(context, android.R.attr.colorPrimary);
default:
Log.e("QSTile", "Invalid state " + state);
return 0;
}
}
- private static int getActiveColor(Context context, int colorActive) {
- if (colorIcon()) {
- if (colorActive == -1) {
- return Utils.getColorAccentDefaultColor(context);
- } else {
- return colorActive;
- }
- } else {
- return Utils.getColorAttrDefaultColor(context, android.R.attr.colorPrimary);
- }
- }
-
protected final class H extends Handler {
private static final int ADD_CALLBACK = 1;
private static final int CLICK = 2;
@@ -645,27 +627,4 @@ public abstract class QSTileImpl<TState extends State> implements QSTile, Lifecy
pw.println(this.getClass().getSimpleName() + ":");
pw.print(" "); pw.println(getState().toString());
}
-
- @Override
- public void setColor(@ColorTile int color) {
- int resId;
- switch(color) {
- case COLOR_TILE_RED:
- resId = R.color.GM2_red_500;
- break;
- case COLOR_TILE_BLUE:
- resId = R.color.GM2_blue_500;
- break;
- case COLOR_TILE_GREEN:
- resId = R.color.GM2_green_500;
- break;
- case COLOR_TILE_YELLOW:
- resId = R.color.GM2_yellow_500;
- break;
- default:
- resId = -1;
- }
- mTmpState.colorActive = resId == -1 ? -1 : mContext.getColor(resId);
- refreshState();
- }
}
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 361b6c1b1260..9282a2e3b312 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/BluetoothTile.java
@@ -134,27 +134,25 @@ public class BluetoothTile extends QSTileImpl<BooleanState> {
state.label = mContext.getString(R.string.quick_settings_bluetooth_label);
state.secondaryLabel = TextUtils.emptyIfNull(
getSecondaryLabel(enabled, connecting, connected, state.isTransient));
- state.contentDescription = state.label;
- state.stateDescription = "";
if (enabled) {
if (connected) {
state.icon = new BluetoothConnectedTileIcon();
if (!TextUtils.isEmpty(mController.getConnectedDeviceName())) {
state.label = mController.getConnectedDeviceName();
}
- state.stateDescription =
+ state.contentDescription =
mContext.getString(R.string.accessibility_bluetooth_name, state.label)
+ ", " + state.secondaryLabel;
} else if (state.isTransient) {
state.icon = ResourceIcon.get(
com.android.internal.R.drawable.ic_bluetooth_transient_animation);
- state.stateDescription = state.secondaryLabel;
+ state.contentDescription = state.secondaryLabel;
} else {
state.icon =
ResourceIcon.get(com.android.internal.R.drawable.ic_qs_bluetooth);
state.contentDescription = mContext.getString(
- R.string.accessibility_quick_settings_bluetooth);
- state.stateDescription = mContext.getString(R.string.accessibility_not_connected);
+ R.string.accessibility_quick_settings_bluetooth) + ","
+ + mContext.getString(R.string.accessibility_not_connected);
}
state.state = Tile.STATE_ACTIVE;
} else {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java
index 58de0575fa75..32b051e35604 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java
@@ -183,7 +183,6 @@ public class CastTile extends QSTileImpl<BooleanState> {
protected void handleUpdateState(BooleanState state, Object arg) {
state.label = mContext.getString(R.string.quick_settings_cast_title);
state.contentDescription = state.label;
- state.stateDescription = "";
state.value = false;
final List<CastDevice> devices = mController.getCastDevices();
boolean connecting = false;
@@ -193,9 +192,8 @@ public class CastTile extends QSTileImpl<BooleanState> {
if (device.state == CastDevice.STATE_CONNECTED) {
state.value = true;
state.secondaryLabel = getDeviceName(device);
- state.stateDescription = state.stateDescription + ","
- + mContext.getString(
- R.string.accessibility_cast_name, state.label);
+ state.contentDescription = state.contentDescription + ","
+ + mContext.getString(R.string.accessibility_cast_name, state.label);
connecting = false;
break;
} else if (device.state == CastDevice.STATE_CONNECTING) {
@@ -219,8 +217,9 @@ public class CastTile extends QSTileImpl<BooleanState> {
state.state = Tile.STATE_UNAVAILABLE;
String noWifi = mContext.getString(R.string.quick_settings_cast_no_wifi);
state.secondaryLabel = noWifi;
+ state.contentDescription = state.contentDescription + ", " + mContext.getString(
+ R.string.accessibility_quick_settings_not_available, noWifi);
}
- state.stateDescription = state.stateDescription + ", " + state.secondaryLabel;
mDetailAdapter.updateItems(devices);
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java
index d5f86c951407..22470c7f5af5 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java
@@ -194,13 +194,17 @@ public class CellularTile extends QSTileImpl<SignalState> {
state.secondaryLabel = r.getString(R.string.cell_data_off);
}
- state.contentDescription = state.label;
+
+ // TODO(b/77881974): Instead of switching out the description via a string check for
+ // we need to have two strings provided by the MobileIconGroup.
+ final CharSequence contentDescriptionSuffix;
if (state.state == Tile.STATE_INACTIVE) {
- // This information is appended later by converting the Tile.STATE_INACTIVE state.
- state.stateDescription = "";
+ contentDescriptionSuffix = r.getString(R.string.cell_data_off_content_description);
} else {
- state.stateDescription = state.secondaryLabel;
+ contentDescriptionSuffix = state.secondaryLabel;
}
+
+ state.contentDescription = state.label + ", " + contentDescriptionSuffix;
}
private CharSequence appendMobileDataType(CharSequence current, CharSequence dataType) {
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/ControlsTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/ControlsTile.java
deleted file mode 100644
index 39ae66e7607a..000000000000
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/ControlsTile.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.tiles;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.FrameLayout;
-
-import com.android.systemui.R;
-import com.android.systemui.plugins.ActivityStarter;
-import com.android.systemui.plugins.NPVPlugin;
-import com.android.systemui.plugins.PluginListener;
-import com.android.systemui.plugins.qs.DetailAdapter;
-import com.android.systemui.plugins.qs.QSTile.BooleanState;
-import com.android.systemui.qs.QSHost;
-import com.android.systemui.qs.tileimpl.QSTileImpl;
-import com.android.systemui.shared.plugins.PluginManager;
-
-import javax.inject.Inject;
-
-
-/**
- * Temporary control test for prototyping
- */
-public class ControlsTile extends QSTileImpl<BooleanState> {
- private ControlsDetailAdapter mDetailAdapter;
- private final ActivityStarter mActivityStarter;
- private PluginManager mPluginManager;
- private NPVPlugin mPlugin;
- private Intent mHomeAppIntent;
-
- @Inject
- public ControlsTile(QSHost host,
- ActivityStarter activityStarter,
- PluginManager pluginManager) {
- super(host);
- mActivityStarter = activityStarter;
- mPluginManager = pluginManager;
- mDetailAdapter = (ControlsDetailAdapter) createDetailAdapter();
-
- mHomeAppIntent = new Intent(Intent.ACTION_VIEW);
- mHomeAppIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- mHomeAppIntent.setComponent(new ComponentName("com.google.android.apps.chromecast.app",
- "com.google.android.apps.chromecast.app.DiscoveryActivity"));
- }
-
- @Override
- public DetailAdapter getDetailAdapter() {
- return mDetailAdapter;
- }
-
- @Override
- public BooleanState newTileState() {
- return new BooleanState();
- }
-
- @Override
- public void handleSetListening(boolean listening) {
-
- }
-
- @Override
- public void setDetailListening(boolean listening) {
- if (mPlugin == null) return;
-
- mPlugin.setListening(listening);
- }
-
- @Override
- protected void handleClick() {
- showDetail(true);
- }
-
- @Override
- public Intent getLongClickIntent() {
- return mHomeAppIntent;
- }
-
- @Override
- protected void handleSecondaryClick() {
- showDetail(true);
- }
-
- @Override
- public CharSequence getTileLabel() {
- return "Controls";
- }
-
- @Override
- protected void handleUpdateState(BooleanState state, Object arg) {
- state.icon = ResourceIcon.get(R.drawable.ic_lightbulb_outline_gm2_24px);
- state.label = "Controls";
- }
-
- @Override
- public boolean supportsDetailView() {
- return getDetailAdapter() != null && mQSSettingsPanelOption == QSSettingsPanel.OPEN_CLICK;
- }
-
- @Override
- public int getMetricsCategory() {
- return -1;
- }
-
- @Override
- protected String composeChangeAnnouncement() {
- if (mState.value) {
- return "On";
- } else {
- return "Off";
- }
- }
-
- @Override
- public boolean isAvailable() {
- return true;
- }
-
- @Override
- protected DetailAdapter createDetailAdapter() {
- mDetailAdapter = new ControlsDetailAdapter();
- return mDetailAdapter;
- }
-
- private class ControlsDetailAdapter implements DetailAdapter {
- private View mDetailView;
- protected FrameLayout mHomeControlsLayout;
-
- public CharSequence getTitle() {
- return "Controls";
- }
-
- public Boolean getToggleState() {
- return null;
- }
-
- public boolean getToggleEnabled() {
- return false;
- }
-
- public View createDetailView(Context context, View convertView, final ViewGroup parent) {
- if (convertView != null) return convertView;
-
- mHomeControlsLayout = (FrameLayout) LayoutInflater.from(context).inflate(
- R.layout.home_controls, parent, false);
- mHomeControlsLayout.setVisibility(View.VISIBLE);
- parent.addView(mHomeControlsLayout);
-
- mPluginManager.addPluginListener(
- new PluginListener<NPVPlugin>() {
- @Override
- public void onPluginConnected(NPVPlugin plugin,
- Context pluginContext) {
- mPlugin = plugin;
- mPlugin.attachToRoot(mHomeControlsLayout);
- mPlugin.setListening(true);
- }
-
- @Override
- public void onPluginDisconnected(NPVPlugin plugin) {
- mPlugin.setListening(false);
- mHomeControlsLayout.removeAllViews();
-
- }
- }, NPVPlugin.class, false);
- return mHomeControlsLayout;
- }
-
- public Intent getSettingsIntent() {
- return mHomeAppIntent;
- }
-
- public void setToggleState(boolean state) {
-
- }
-
- public int getMetricsCategory() {
- return -1;
- }
-
- public boolean hasHeader() {
- return false;
- }
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java
index 9215da4cda9a..52d1a5b3b991 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/DndTile.java
@@ -240,8 +240,6 @@ public class DndTile extends QSTileImpl<BooleanState> {
zen != Global.ZEN_MODE_OFF, mController.getConfig(), false));
state.icon = ResourceIcon.get(com.android.internal.R.drawable.ic_qs_dnd);
checkIfRestrictionEnforcedByAdminOnly(state, UserManager.DISALLOW_ADJUST_VOLUME);
- // Keeping the secondaryLabel in contentDescription instead of stateDescription is easier
- // to understand.
switch (zen) {
case Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS:
state.contentDescription =
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/FlashlightTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/FlashlightTile.java
index 792c36477962..dafdd89ee62c 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/FlashlightTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/FlashlightTile.java
@@ -102,13 +102,14 @@ public class FlashlightTile extends QSTileImpl<BooleanState> implements
}
state.label = mHost.getContext().getString(R.string.quick_settings_flashlight_label);
state.secondaryLabel = "";
- state.stateDescription = "";
if (!mFlashlightController.isAvailable()) {
state.icon = mIcon;
state.slash.isSlashed = true;
state.secondaryLabel = mContext.getString(
R.string.quick_settings_flashlight_camera_in_use);
- state.stateDescription = state.secondaryLabel;
+ state.contentDescription = mContext.getString(
+ R.string.accessibility_quick_settings_flashlight_unavailable)
+ + ", " + state.secondaryLabel;
state.state = Tile.STATE_UNAVAILABLE;
return;
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java
index fd6b936d71c0..001e09406e3a 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java
@@ -147,7 +147,6 @@ public class HotspotTile extends QSTileImpl<BooleanState> {
state.secondaryLabel = getSecondaryLabel(
isTileActive, isTransient, isDataSaverEnabled, numConnectedDevices);
- state.stateDescription = state.secondaryLabel;
}
@Nullable
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/LocationTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/LocationTile.java
index e617867eb10e..fbdca3ba1c7b 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/LocationTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/LocationTile.java
@@ -105,8 +105,15 @@ public class LocationTile extends QSTileImpl<BooleanState> {
}
state.icon = mIcon;
state.slash.isSlashed = !state.value;
- state.label = mContext.getString(R.string.quick_settings_location_label);
- state.contentDescription = state.label;
+ if (locationEnabled) {
+ state.label = mContext.getString(R.string.quick_settings_location_label);
+ state.contentDescription = mContext.getString(
+ R.string.accessibility_quick_settings_location_on);
+ } else {
+ state.label = mContext.getString(R.string.quick_settings_location_label);
+ state.contentDescription = mContext.getString(
+ R.string.accessibility_quick_settings_location_off);
+ }
state.state = state.value ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE;
state.expandedAccessibilityClassName = Switch.class.getName();
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java
index 6e8dcf36bacc..b7ce101cacab 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java
@@ -195,7 +195,6 @@ public class WifiTile extends QSTileImpl<SignalState> {
state.activityIn = cb.enabled && cb.activityIn;
state.activityOut = cb.enabled && cb.activityOut;
final StringBuffer minimalContentDescription = new StringBuffer();
- final StringBuffer minimalStateDescription = new StringBuffer();
final Resources r = mContext.getResources();
if (isTransient) {
state.icon = ResourceIcon.get(
@@ -220,14 +219,13 @@ public class WifiTile extends QSTileImpl<SignalState> {
mContext.getString(R.string.quick_settings_wifi_label)).append(",");
if (state.value) {
if (wifiConnected) {
- minimalStateDescription.append(cb.wifiSignalContentDescription);
+ minimalContentDescription.append(cb.wifiSignalContentDescription).append(",");
minimalContentDescription.append(removeDoubleQuotes(cb.ssid));
if (!TextUtils.isEmpty(state.secondaryLabel)) {
minimalContentDescription.append(",").append(state.secondaryLabel);
}
}
}
- state.stateDescription = minimalStateDescription.toString();
state.contentDescription = minimalContentDescription.toString();
state.dualLabelContentDescription = r.getString(
R.string.accessibility_quick_settings_open_settings, getTileLabel());
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java
index e54ee51fb9d4..7853dc388bcb 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/WorkModeTile.java
@@ -103,11 +103,14 @@ public class WorkModeTile extends QSTileImpl<BooleanState> implements
state.icon = mIcon;
if (state.value) {
state.slash.isSlashed = false;
+ state.contentDescription = mContext.getString(
+ R.string.accessibility_quick_settings_work_mode_on);
} else {
state.slash.isSlashed = true;
+ state.contentDescription = mContext.getString(
+ R.string.accessibility_quick_settings_work_mode_off);
}
state.label = mContext.getString(R.string.quick_settings_work_mode_label);
- state.contentDescription = state.label;
state.expandedAccessibilityClassName = Switch.class.getName();
state.state = state.value ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE;
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/TriangleShape.java b/packages/SystemUI/src/com/android/systemui/recents/TriangleShape.java
index de8e6ea4a0cb..7ebebaaef122 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/TriangleShape.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/TriangleShape.java
@@ -70,6 +70,6 @@ public class TriangleShape extends PathShape {
@Override
public void getOutline(@NonNull Outline outline) {
- outline.setConvexPath(mTriangularPath);
+ outline.setPath(mTriangularPath);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingService.java b/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingService.java
index b091ad8c0db8..626f298055a0 100644
--- a/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingService.java
+++ b/packages/SystemUI/src/com/android/systemui/screenrecord/RecordingService.java
@@ -16,7 +16,6 @@
package com.android.systemui.screenrecord;
-import android.app.Activity;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
@@ -26,16 +25,21 @@ import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.drawable.Icon;
import android.hardware.display.DisplayManager;
import android.hardware.display.VirtualDisplay;
import android.media.MediaRecorder;
+import android.media.projection.IMediaProjection;
+import android.media.projection.IMediaProjectionManager;
import android.media.projection.MediaProjection;
import android.media.projection.MediaProjectionManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.IBinder;
+import android.os.RemoteException;
+import android.os.ServiceManager;
import android.provider.MediaStore;
import android.provider.Settings;
import android.util.DisplayMetrics;
@@ -83,7 +87,6 @@ public class RecordingService extends Service {
private static final int AUDIO_SAMPLE_RATE = 44100;
private final RecordingController mController;
- private MediaProjectionManager mMediaProjectionManager;
private MediaProjection mMediaProjection;
private Surface mInputSurface;
private VirtualDisplay mVirtualDisplay;
@@ -134,13 +137,30 @@ public class RecordingService extends Service {
switch (action) {
case ACTION_START:
- int resultCode = intent.getIntExtra(EXTRA_RESULT_CODE, Activity.RESULT_CANCELED);
mUseAudio = intent.getBooleanExtra(EXTRA_USE_AUDIO, false);
mShowTaps = intent.getBooleanExtra(EXTRA_SHOW_TAPS, false);
- Intent data = intent.getParcelableExtra(EXTRA_DATA);
- if (data != null) {
- mMediaProjection = mMediaProjectionManager.getMediaProjection(resultCode, data);
+ try {
+ IBinder b = ServiceManager.getService(MEDIA_PROJECTION_SERVICE);
+ IMediaProjectionManager mediaService =
+ IMediaProjectionManager.Stub.asInterface(b);
+ IMediaProjection proj = mediaService.createProjection(getUserId(),
+ getPackageName(),
+ MediaProjectionManager.TYPE_SCREEN_CAPTURE, false);
+ IBinder projection = proj.asBinder();
+ if (projection == null) {
+ Log.e(TAG, "Projection was null");
+ Toast.makeText(this, R.string.screenrecord_start_error, Toast.LENGTH_LONG)
+ .show();
+ return Service.START_NOT_STICKY;
+ }
+ mMediaProjection = new MediaProjection(getApplicationContext(),
+ IMediaProjection.Stub.asInterface(projection));
startRecording();
+ } catch (RemoteException e) {
+ e.printStackTrace();
+ Toast.makeText(this, R.string.screenrecord_start_error, Toast.LENGTH_LONG)
+ .show();
+ return Service.START_NOT_STICKY;
}
break;
@@ -195,9 +215,6 @@ public class RecordingService extends Service {
@Override
public void onCreate() {
super.onCreate();
-
- mMediaProjectionManager =
- (MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE);
}
/**
@@ -269,6 +286,7 @@ public class RecordingService extends Service {
}
private void createRecordingNotification() {
+ Resources res = getResources();
NotificationChannel channel = new NotificationChannel(
CHANNEL_ID,
getString(R.string.screenrecord_name),
@@ -281,11 +299,15 @@ public class RecordingService extends Service {
Bundle extras = new Bundle();
extras.putString(Notification.EXTRA_SUBSTITUTE_APP_NAME,
- getResources().getString(R.string.screenrecord_name));
+ res.getString(R.string.screenrecord_name));
+
+ String notificationTitle = mUseAudio
+ ? res.getString(R.string.screenrecord_ongoing_screen_and_audio)
+ : res.getString(R.string.screenrecord_ongoing_screen_only);
mRecordingNotificationBuilder = new Notification.Builder(this, CHANNEL_ID)
.setSmallIcon(R.drawable.ic_screenrecord)
- .setContentTitle(getResources().getString(R.string.screenrecord_name))
+ .setContentTitle(notificationTitle)
.setContentText(getResources().getString(R.string.screenrecord_stop_text))
.setUsesChronometer(true)
.setColorized(true)
@@ -332,8 +354,7 @@ public class RecordingService extends Service {
Notification.Builder builder = new Notification.Builder(this, CHANNEL_ID)
.setSmallIcon(R.drawable.ic_screenrecord)
- .setContentTitle(getResources().getString(R.string.screenrecord_name))
- .setContentText(getResources().getString(R.string.screenrecord_save_message))
+ .setContentTitle(getResources().getString(R.string.screenrecord_save_message))
.setContentIntent(PendingIntent.getActivity(
this,
REQUEST_CODE,
diff --git a/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordDialog.java b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordDialog.java
index 8324986123bd..566f12b42795 100644
--- a/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordDialog.java
+++ b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordDialog.java
@@ -16,15 +16,14 @@
package com.android.systemui.screenrecord;
-import android.Manifest;
import android.app.Activity;
import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.media.projection.MediaProjectionManager;
import android.os.Bundle;
-import android.widget.Toast;
+import android.view.Gravity;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.widget.Button;
+import android.widget.Switch;
import com.android.systemui.R;
@@ -34,15 +33,11 @@ import javax.inject.Inject;
* Activity to select screen recording options
*/
public class ScreenRecordDialog extends Activity {
- private static final int REQUEST_CODE_VIDEO_ONLY = 200;
- private static final int REQUEST_CODE_VIDEO_TAPS = 201;
- private static final int REQUEST_CODE_PERMISSIONS = 299;
- private static final int REQUEST_CODE_VIDEO_AUDIO = 300;
- private static final int REQUEST_CODE_VIDEO_AUDIO_TAPS = 301;
- private static final int REQUEST_CODE_PERMISSIONS_AUDIO = 399;
private static final long DELAY_MS = 3000;
private final RecordingController mController;
+ private Switch mAudioSwitch;
+ private Switch mTapsSwitch;
@Inject
public ScreenRecordDialog(RecordingController controller) {
@@ -52,81 +47,42 @@ public class ScreenRecordDialog extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- requestScreenCapture();
- }
- private void requestScreenCapture() {
- MediaProjectionManager mediaProjectionManager = (MediaProjectionManager) getSystemService(
- Context.MEDIA_PROJECTION_SERVICE);
- Intent permissionIntent = mediaProjectionManager.createScreenCaptureIntent();
+ Window window = getWindow();
+ // Inflate the decor view, so the attributes below are not overwritten by the theme.
+ window.getDecorView();
+ window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ window.setGravity(Gravity.TOP);
+
+ setContentView(R.layout.screen_record_dialog);
+
+ Button cancelBtn = findViewById(R.id.button_cancel);
+ cancelBtn.setOnClickListener(v -> {
+ finish();
+ });
- // TODO get saved settings
- boolean useAudio = false;
- boolean showTaps = false;
- if (useAudio) {
- startActivityForResult(permissionIntent,
- showTaps ? REQUEST_CODE_VIDEO_AUDIO_TAPS : REQUEST_CODE_VIDEO_AUDIO);
- } else {
- startActivityForResult(permissionIntent,
- showTaps ? REQUEST_CODE_VIDEO_TAPS : REQUEST_CODE_VIDEO_ONLY);
- }
+ Button startBtn = findViewById(R.id.button_start);
+ startBtn.setOnClickListener(v -> {
+ requestScreenCapture();
+ finish();
+ });
+
+ mAudioSwitch = findViewById(R.id.screenrecord_audio_switch);
+ mTapsSwitch = findViewById(R.id.screenrecord_taps_switch);
}
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- boolean showTaps = (requestCode == REQUEST_CODE_VIDEO_TAPS
- || requestCode == REQUEST_CODE_VIDEO_AUDIO_TAPS);
- boolean useAudio = (requestCode == REQUEST_CODE_VIDEO_AUDIO
- || requestCode == REQUEST_CODE_VIDEO_AUDIO_TAPS);
- switch (requestCode) {
- case REQUEST_CODE_VIDEO_TAPS:
- case REQUEST_CODE_VIDEO_AUDIO_TAPS:
- case REQUEST_CODE_VIDEO_ONLY:
- case REQUEST_CODE_VIDEO_AUDIO:
- if (resultCode == RESULT_OK) {
- PendingIntent startIntent = PendingIntent.getForegroundService(
- this, RecordingService.REQUEST_CODE, RecordingService.getStartIntent(
- ScreenRecordDialog.this, resultCode, data, useAudio,
- showTaps),
- PendingIntent.FLAG_UPDATE_CURRENT
- );
- PendingIntent stopIntent = PendingIntent.getService(
- this, RecordingService.REQUEST_CODE,
- RecordingService.getStopIntent(this),
- PendingIntent.FLAG_UPDATE_CURRENT);
- mController.startCountdown(DELAY_MS, startIntent, stopIntent);
- } else {
- Toast.makeText(this,
- getResources().getString(R.string.screenrecord_permission_error),
- Toast.LENGTH_SHORT).show();
- }
- finish();
- break;
- case REQUEST_CODE_PERMISSIONS:
- int permission = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
- if (permission != PackageManager.PERMISSION_GRANTED) {
- Toast.makeText(this,
- getResources().getString(R.string.screenrecord_permission_error),
- Toast.LENGTH_SHORT).show();
- finish();
- } else {
- requestScreenCapture();
- }
- break;
- case REQUEST_CODE_PERMISSIONS_AUDIO:
- int videoPermission = checkSelfPermission(
- Manifest.permission.WRITE_EXTERNAL_STORAGE);
- int audioPermission = checkSelfPermission(Manifest.permission.RECORD_AUDIO);
- if (videoPermission != PackageManager.PERMISSION_GRANTED
- || audioPermission != PackageManager.PERMISSION_GRANTED) {
- Toast.makeText(this,
- getResources().getString(R.string.screenrecord_permission_error),
- Toast.LENGTH_SHORT).show();
- finish();
- } else {
- requestScreenCapture();
- }
- break;
- }
+ private void requestScreenCapture() {
+ boolean useAudio = mAudioSwitch.isChecked();
+ boolean showTaps = mTapsSwitch.isChecked();
+ PendingIntent startIntent = PendingIntent.getForegroundService(this,
+ RecordingService.REQUEST_CODE,
+ RecordingService.getStartIntent(
+ ScreenRecordDialog.this, RESULT_OK, null, useAudio, showTaps),
+ PendingIntent.FLAG_UPDATE_CURRENT);
+ PendingIntent stopIntent = PendingIntent.getService(this,
+ RecordingService.REQUEST_CODE,
+ RecordingService.getStopIntent(this),
+ PendingIntent.FLAG_UPDATE_CURRENT);
+ mController.startCountdown(DELAY_MS, startIntent, stopIntent);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/SaveImageInBackgroundTask.java b/packages/SystemUI/src/com/android/systemui/screenshot/SaveImageInBackgroundTask.java
index e6082dddd6c7..e7e1ba8c28b4 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/SaveImageInBackgroundTask.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/SaveImageInBackgroundTask.java
@@ -106,7 +106,7 @@ class SaveImageInBackgroundTask extends AsyncTask<Void, Void, Void> {
// Initialize screenshot notification smart actions provider.
mSmartActionsEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SYSTEMUI,
- SystemUiDeviceConfigFlags.ENABLE_SCREENSHOT_NOTIFICATION_SMART_ACTIONS, false);
+ SystemUiDeviceConfigFlags.ENABLE_SCREENSHOT_NOTIFICATION_SMART_ACTIONS, true);
if (mSmartActionsEnabled) {
mSmartActionsProvider =
SystemUIFactory.getInstance()
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/InflationTask.java b/packages/SystemUI/src/com/android/systemui/statusbar/InflationTask.java
index 22fd37ceaebd..eb580c450730 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/InflationTask.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/InflationTask.java
@@ -22,11 +22,4 @@ package com.android.systemui.statusbar;
*/
public interface InflationTask {
void abort();
-
- /**
- * Supersedes an existing task. i.e another task was superceeded by this.
- *
- * @param task the task that was previously running
- */
- default void supersedeTask(InflationTask task) {}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
index 7ad07c266cc3..7d3d4061014b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java
@@ -20,7 +20,6 @@ import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.content.Context;
import android.content.res.ColorStateList;
-import android.content.res.Resources;
import android.graphics.Color;
import android.hardware.biometrics.BiometricSourceType;
import android.hardware.face.FaceManager;
@@ -46,6 +45,7 @@ import com.android.internal.widget.ViewClippingUtil;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.settingslib.Utils;
+import com.android.settingslib.fuelgauge.BatteryStatus;
import com.android.systemui.Dependency;
import com.android.systemui.Interpolators;
import com.android.systemui.R;
@@ -97,8 +97,6 @@ public class KeyguardIndicationController implements StateListener,
private final LockPatternUtils mLockPatternUtils;
private final DockManager mDockManager;
- private final int mSlowThreshold;
- private final int mFastThreshold;
private final LockIcon mLockIcon;
private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger();
@@ -178,10 +176,6 @@ public class KeyguardIndicationController implements StateListener,
mWakeLock = new SettableWakeLock(wakeLock, TAG);
mLockPatternUtils = lockPatternUtils;
- Resources res = context.getResources();
- mSlowThreshold = res.getInteger(R.integer.config_chargingSlowlyThreshold);
- mFastThreshold = res.getInteger(R.integer.config_chargingFastThreshold);
-
mUserManager = context.getSystemService(UserManager.class);
mBatteryInfo = iBatteryStats;
@@ -484,12 +478,12 @@ public class KeyguardIndicationController implements StateListener,
int chargingId;
if (mPowerPluggedInWired) {
switch (mChargingSpeed) {
- case KeyguardUpdateMonitor.BatteryStatus.CHARGING_FAST:
+ case BatteryStatus.CHARGING_FAST:
chargingId = hasChargingTime
? R.string.keyguard_indication_charging_time_fast
: R.string.keyguard_plugged_in_charging_fast;
break;
- case KeyguardUpdateMonitor.BatteryStatus.CHARGING_SLOWLY:
+ case BatteryStatus.CHARGING_SLOWLY:
chargingId = hasChargingTime
? R.string.keyguard_indication_charging_time_slowly
: R.string.keyguard_plugged_in_charging_slowly;
@@ -620,7 +614,7 @@ public class KeyguardIndicationController implements StateListener,
public static final int HIDE_DELAY_MS = 5000;
@Override
- public void onRefreshBatteryInfo(KeyguardUpdateMonitor.BatteryStatus status) {
+ public void onRefreshBatteryInfo(BatteryStatus status) {
boolean isChargingOrFull = status.status == BatteryManager.BATTERY_STATUS_CHARGING
|| status.status == BatteryManager.BATTERY_STATUS_FULL;
boolean wasPluggedIn = mPowerPluggedIn;
@@ -628,7 +622,7 @@ public class KeyguardIndicationController implements StateListener,
mPowerPluggedIn = status.isPluggedIn() && isChargingOrFull;
mPowerCharged = status.isCharged();
mChargingWattage = status.maxChargingWattage;
- mChargingSpeed = status.getChargingSpeed(mSlowThreshold, mFastThreshold);
+ mChargingSpeed = status.getChargingSpeed(mContext);
mBatteryLevel = status.level;
try {
mChargingTimeRemaining = mPowerPluggedIn
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
index d38f1b99cb9a..12298817d5a6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationLockscreenUserManagerImpl.java
@@ -282,7 +282,8 @@ public class NotificationLockscreenUserManagerImpl implements
filter.addAction(Intent.ACTION_USER_UNLOCKED);
filter.addAction(Intent.ACTION_MANAGED_PROFILE_AVAILABLE);
filter.addAction(Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE);
- mBroadcastDispatcher.registerReceiver(mBaseBroadcastReceiver, filter);
+ mBroadcastDispatcher.registerReceiver(mBaseBroadcastReceiver, filter,
+ null /* executor */, UserHandle.ALL);
IntentFilter internalFilter = new IntentFilter();
internalFilter.addAction(NOTIFICATION_UNLOCKED_BY_WORK_CHALLENGE_ACTION);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoveInterceptor.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoveInterceptor.java
index 930116ee4ae7..caa1e2db6ac0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoveInterceptor.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoveInterceptor.java
@@ -16,8 +16,12 @@
package com.android.systemui.statusbar;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.service.notification.NotificationListenerService;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+
/**
* Interface for anything that may need to prevent notifications from being removed. This is
* similar to a {@link NotificationLifetimeExtender} in the sense that it extends the life of
@@ -30,11 +34,15 @@ public interface NotificationRemoveInterceptor {
/**
* Called when a notification has been removed.
*
- * @param key the entry key of the notification being removed.
+ * @param key the key of the notification being removed. Never null
+ * @param entry the entry of the notification being removed.
* @param removeReason why the notification is being removed, e.g.
* {@link NotificationListenerService#REASON_CANCEL} or 0 if unknown.
*
* @return true if the removal should be ignored, false otherwise.
*/
- boolean onNotificationRemoveRequested(String key, int removeReason);
+ boolean onNotificationRemoveRequested(
+ @NonNull String key,
+ @Nullable NotificationEntry entry,
+ int removeReason);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java
index 8d4a9efbcd7a..37f9f88f6328 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java
@@ -34,6 +34,7 @@ import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.VisualStabilityManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.stack.ForegroundServiceSectionController;
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
@@ -81,6 +82,7 @@ public class NotificationViewHierarchyManager implements DynamicPrivacyControlle
private final BubbleController mBubbleController;
private final DynamicPrivacyController mDynamicPrivacyController;
private final KeyguardBypassController mBypassController;
+ private final ForegroundServiceSectionController mFgsSectionController;
private final Context mContext;
private NotificationPresenter mPresenter;
@@ -101,7 +103,9 @@ public class NotificationViewHierarchyManager implements DynamicPrivacyControlle
NotificationEntryManager notificationEntryManager,
KeyguardBypassController bypassController,
BubbleController bubbleController,
- DynamicPrivacyController privacyController) {
+ DynamicPrivacyController privacyController,
+ ForegroundServiceSectionController fgsSectionController
+ ) {
mContext = context;
mHandler = mainHandler;
mLockscreenUserManager = notificationLockscreenUserManager;
@@ -110,6 +114,7 @@ public class NotificationViewHierarchyManager implements DynamicPrivacyControlle
mVisualStabilityManager = visualStabilityManager;
mStatusBarStateController = (SysuiStatusBarStateController) statusBarStateController;
mEntryManager = notificationEntryManager;
+ mFgsSectionController = fgsSectionController;
Resources res = context.getResources();
mAlwaysExpandNonGroupedNotification =
res.getBoolean(R.bool.config_alwaysExpandNonGroupedNotifications);
@@ -140,7 +145,8 @@ public class NotificationViewHierarchyManager implements DynamicPrivacyControlle
boolean hideMedia = Utils.useQsMediaPlayer(mContext);
if (ent.isRowDismissed() || ent.isRowRemoved()
|| (ent.isMediaNotification() && hideMedia)
- || mBubbleController.isBubbleNotificationSuppressedFromShade(ent)) {
+ || mBubbleController.isBubbleNotificationSuppressedFromShade(ent)
+ || mFgsSectionController.hasEntry(ent)) {
// we don't want to update removed notifications because they could
// temporarily become children if they were isolated before.
continue;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/BypassHeadsUpNotifier.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/BypassHeadsUpNotifier.kt
index 015c32348bb0..269a7a59f1b7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/BypassHeadsUpNotifier.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/BypassHeadsUpNotifier.kt
@@ -43,10 +43,10 @@ class BypassHeadsUpNotifier @Inject constructor(
private val headsUpManager: HeadsUpManagerPhone,
private val notificationLockscreenUserManager: NotificationLockscreenUserManager,
private val mediaManager: NotificationMediaManager,
+ private val entryManager: NotificationEntryManager,
tunerService: TunerService
) : StatusBarStateController.StateListener, NotificationMediaManager.MediaListener {
- private lateinit var entryManager: NotificationEntryManager
private var currentMediaEntry: NotificationEntry? = null
private var enabled = true
@@ -70,8 +70,7 @@ class BypassHeadsUpNotifier @Inject constructor(
}, Settings.Secure.SHOW_MEDIA_WHEN_BYPASSING)
}
- fun setUp(entryManager: NotificationEntryManager) {
- this.entryManager = entryManager
+ fun setUp() {
mediaManager.addCallback(this)
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/ForegroundServiceDismissalFeatureController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ForegroundServiceDismissalFeatureController.kt
new file mode 100644
index 000000000000..b1d6b40fcc1e
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/ForegroundServiceDismissalFeatureController.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification
+
+import android.content.Context
+import android.provider.DeviceConfig
+import com.android.internal.config.sysui.SystemUiDeviceConfigFlags.NOTIFICATIONS_ALLOW_FGS_DISMISSAL
+import com.android.systemui.util.DeviceConfigProxy
+import javax.inject.Inject
+import javax.inject.Singleton
+
+private var sIsEnabled: Boolean? = null
+
+/**
+ * Feature controller for NOTIFICATIONS_ALLOW_FGS_DISMISSAL config.
+ */
+// TODO: this is really boilerplatey, make a base class that just wraps the device config
+@Singleton
+class ForegroundServiceDismissalFeatureController @Inject constructor(
+ val proxy: DeviceConfigProxy,
+ val context: Context
+) {
+ fun isForegroundServiceDismissalEnabled(): Boolean {
+ return isEnabled(proxy)
+ }
+}
+
+private fun isEnabled(proxy: DeviceConfigProxy): Boolean {
+ if (sIsEnabled == null) {
+ sIsEnabled = proxy.getBoolean(
+ DeviceConfig.NAMESPACE_SYSTEMUI, NOTIFICATIONS_ALLOW_FGS_DISMISSAL, false)
+ }
+
+ return sIsEnabled!!
+} \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationAlertingManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationAlertingManager.java
index 81833a4022a9..d0e238a66330 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationAlertingManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationAlertingManager.java
@@ -28,7 +28,6 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.NotificationListener;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
-import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
import com.android.systemui.statusbar.policy.HeadsUpManager;
import javax.inject.Inject;
@@ -64,8 +63,8 @@ public class NotificationAlertingManager {
notificationEntryManager.addNotificationEntryListener(new NotificationEntryListener() {
@Override
- public void onEntryInflated(NotificationEntry entry, int inflatedFlags) {
- showAlertingView(entry, inflatedFlags);
+ public void onEntryInflated(NotificationEntry entry) {
+ showAlertingView(entry);
}
@Override
@@ -90,12 +89,11 @@ public class NotificationAlertingManager {
/**
* Adds the entry to the respective alerting manager if the content view was inflated and
* the entry should still alert.
- *
- * @param entry entry to add
- * @param inflatedFlags flags representing content views that were inflated
*/
- private void showAlertingView(NotificationEntry entry, @InflationFlag int inflatedFlags) {
- if ((inflatedFlags & FLAG_CONTENT_VIEW_HEADS_UP) != 0) {
+ private void showAlertingView(NotificationEntry entry) {
+ // TODO: Instead of this back and forth, we should listen to changes in heads up and
+ // cancel on-going heads up view inflation using the bind pipeline.
+ if (entry.getRow().getPrivateLayout().getHeadsUpChild() != null) {
// Possible for shouldHeadsUp to change between the inflation starting and ending.
// If it does and we no longer need to heads up, we should free the view.
if (mNotificationInterruptionStateProvider.shouldHeadsUp(entry)) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryListener.java
index f6b55838989c..25253a15b125 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryListener.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryListener.java
@@ -24,7 +24,6 @@ import androidx.annotation.NonNull;
import com.android.internal.statusbar.NotificationVisibility;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
-import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
/**
* Listener interface for changes sent by NotificationEntryManager.
@@ -62,7 +61,7 @@ public interface NotificationEntryListener {
/**
* Called when a notification's views are inflated for the first time.
*/
- default void onEntryInflated(NotificationEntry entry, @InflationFlag int inflatedFlags) {
+ default void onEntryInflated(NotificationEntry entry) {
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java
index 4a2283171694..916da6eca0c9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManager.java
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.notification;
import static android.service.notification.NotificationListenerService.REASON_CANCEL;
import static android.service.notification.NotificationListenerService.REASON_ERROR;
+import static com.android.systemui.statusbar.notification.collection.NotifCollection.REASON_UNKNOWN;
import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationCallback;
import android.annotation.NonNull;
@@ -44,10 +45,9 @@ import com.android.systemui.statusbar.NotificationUiAdjustment;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationRankingManager;
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinder;
-import com.android.systemui.statusbar.notification.logging.NotifEvent;
-import com.android.systemui.statusbar.notification.logging.NotifLog;
+import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection;
+import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
-import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.policy.HeadsUpManager;
@@ -96,6 +96,7 @@ import dagger.Lazy;
*/
@Singleton
public class NotificationEntryManager implements
+ CommonNotifCollection,
Dumpable,
InflationCallback,
VisualStabilityManager.Callback {
@@ -126,25 +127,28 @@ public class NotificationEntryManager implements
private final Map<NotificationEntry, NotificationLifetimeExtender> mRetainedNotifications =
new ArrayMap<>();
+ private final NotificationEntryManagerLogger mLogger;
+
// Lazily retrieved dependencies
private final Lazy<NotificationRowBinder> mNotificationRowBinderLazy;
private final Lazy<NotificationRemoteInputManager> mRemoteInputManagerLazy;
private final LeakDetector mLeakDetector;
+ private final List<NotifCollectionListener> mNotifCollectionListeners = new ArrayList<>();
private final KeyguardEnvironment mKeyguardEnvironment;
private final NotificationGroupManager mGroupManager;
private final NotificationRankingManager mRankingManager;
private final FeatureFlags mFeatureFlags;
+ private final ForegroundServiceDismissalFeatureController mFgsFeatureController;
private NotificationPresenter mPresenter;
private RankingMap mLatestRankingMap;
- private NotifLog mNotifLog;
@VisibleForTesting
final ArrayList<NotificationLifetimeExtender> mNotificationLifetimeExtenders
= new ArrayList<>();
private final List<NotificationEntryListener> mNotificationEntryListeners = new ArrayList<>();
- private NotificationRemoveInterceptor mRemoveInterceptor;
+ private final List<NotificationRemoveInterceptor> mRemoveInterceptors = new ArrayList<>();
@Override
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
@@ -157,6 +161,14 @@ public class NotificationEntryManager implements
pw.println(entry.getSbn());
}
}
+ pw.println(" Remove interceptors registered:");
+ for (NotificationRemoveInterceptor interceptor : mRemoveInterceptors) {
+ pw.println(" " + interceptor.getClass().getSimpleName());
+ }
+ pw.println(" Lifetime extenders registered:");
+ for (NotificationLifetimeExtender extender : mNotificationLifetimeExtenders) {
+ pw.println(" " + extender.getClass().getSimpleName());
+ }
pw.println(" Lifetime-extended notifications:");
if (mRetainedNotifications.isEmpty()) {
pw.println(" None");
@@ -171,15 +183,16 @@ public class NotificationEntryManager implements
@Inject
public NotificationEntryManager(
- NotifLog notifLog,
+ NotificationEntryManagerLogger logger,
NotificationGroupManager groupManager,
NotificationRankingManager rankingManager,
KeyguardEnvironment keyguardEnvironment,
FeatureFlags featureFlags,
Lazy<NotificationRowBinder> notificationRowBinderLazy,
Lazy<NotificationRemoteInputManager> notificationRemoteInputManagerLazy,
- LeakDetector leakDetector) {
- mNotifLog = notifLog;
+ LeakDetector leakDetector,
+ ForegroundServiceDismissalFeatureController fgsFeatureController) {
+ mLogger = logger;
mGroupManager = groupManager;
mRankingManager = rankingManager;
mKeyguardEnvironment = keyguardEnvironment;
@@ -187,6 +200,7 @@ public class NotificationEntryManager implements
mNotificationRowBinderLazy = notificationRowBinderLazy;
mRemoteInputManagerLazy = notificationRemoteInputManagerLazy;
mLeakDetector = leakDetector;
+ mFgsFeatureController = fgsFeatureController;
}
/** Once called, the NEM will start processing notification events from system server. */
@@ -207,9 +221,14 @@ public class NotificationEntryManager implements
mNotificationEntryListeners.remove(listener);
}
- /** Sets the {@link NotificationRemoveInterceptor}. */
- public void setNotificationRemoveInterceptor(NotificationRemoveInterceptor interceptor) {
- mRemoveInterceptor = interceptor;
+ /** Add a {@link NotificationRemoveInterceptor}. */
+ public void addNotificationRemoveInterceptor(NotificationRemoveInterceptor interceptor) {
+ mRemoveInterceptors.add(interceptor);
+ }
+
+ /** Remove a {@link NotificationRemoveInterceptor} */
+ public void removeNotificationRemoveInterceptor(NotificationRemoveInterceptor interceptor) {
+ mRemoveInterceptors.remove(interceptor);
}
public void setUpWithPresenter(NotificationPresenter presenter,
@@ -271,13 +290,12 @@ public class NotificationEntryManager implements
NotificationEntry entry = mPendingNotifications.get(key);
entry.abortTask();
mPendingNotifications.remove(key);
- mNotifLog.log(NotifEvent.INFLATION_ABORTED, entry, "PendingNotification aborted"
- + " reason=" + reason);
+ mLogger.logInflationAborted(key, "pending", reason);
}
NotificationEntry addedEntry = getActiveNotificationUnfiltered(key);
if (addedEntry != null) {
addedEntry.abortTask();
- mNotifLog.log(NotifEvent.INFLATION_ABORTED, addedEntry.getKey() + " " + reason);
+ mLogger.logInflationAborted(key, "active", reason);
}
}
@@ -302,17 +320,16 @@ public class NotificationEntryManager implements
}
@Override
- public void onAsyncInflationFinished(NotificationEntry entry,
- @InflationFlag int inflatedFlags) {
+ public void onAsyncInflationFinished(NotificationEntry entry) {
mPendingNotifications.remove(entry.getKey());
// If there was an async task started after the removal, we don't want to add it back to
// the list, otherwise we might get leaks.
if (!entry.isRowRemoved()) {
boolean isNew = getActiveNotificationUnfiltered(entry.getKey()) == null;
+ mLogger.logNotifInflated(entry.getKey(), isNew);
if (isNew) {
for (NotificationEntryListener listener : mNotificationEntryListeners) {
- mNotifLog.log(NotifEvent.INFLATED, entry);
- listener.onEntryInflated(entry, inflatedFlags);
+ listener.onEntryInflated(entry);
}
addActiveNotification(entry);
updateNotifications("onAsyncInflationFinished");
@@ -321,7 +338,6 @@ public class NotificationEntryManager implements
}
} else {
for (NotificationEntryListener listener : mNotificationEntryListeners) {
- mNotifLog.log(NotifEvent.INFLATED, entry);
listener.onEntryReinflated(entry);
}
}
@@ -398,14 +414,16 @@ public class NotificationEntryManager implements
boolean removedByUser,
int reason) {
- if (mRemoveInterceptor != null
- && mRemoveInterceptor.onNotificationRemoveRequested(key, reason)) {
- // Remove intercepted; log and skip
- mNotifLog.log(NotifEvent.REMOVE_INTERCEPTED);
- return;
+ final NotificationEntry entry = getActiveNotificationUnfiltered(key);
+
+ for (NotificationRemoveInterceptor interceptor : mRemoveInterceptors) {
+ if (interceptor.onNotificationRemoveRequested(key, entry, reason)) {
+ // Remove intercepted; log and skip
+ mLogger.logRemovalIntercepted(key);
+ return;
+ }
}
- final NotificationEntry entry = getActiveNotificationUnfiltered(key);
boolean lifetimeExtended = false;
// Notification was canceled before it got inflated
@@ -416,10 +434,7 @@ public class NotificationEntryManager implements
if (extender.shouldExtendLifetimeForPendingNotification(pendingEntry)) {
extendLifetime(pendingEntry, extender);
lifetimeExtended = true;
- mNotifLog.log(
- NotifEvent.LIFETIME_EXTENDED,
- pendingEntry.getSbn(),
- "pendingEntry extendedBy=" + extender.toString());
+ mLogger.logLifetimeExtended(key, extender.getClass().getName(), "pending");
}
}
}
@@ -439,10 +454,7 @@ public class NotificationEntryManager implements
mLatestRankingMap = ranking;
extendLifetime(entry, extender);
lifetimeExtended = true;
- mNotifLog.log(
- NotifEvent.LIFETIME_EXTENDED,
- entry.getSbn(),
- "entry extendedBy=" + extender.toString());
+ mLogger.logLifetimeExtended(key, extender.getClass().getName(), "active");
break;
}
}
@@ -465,11 +477,17 @@ public class NotificationEntryManager implements
mLeakDetector.trackGarbage(entry);
removedByUser |= entryDismissed;
- mNotifLog.log(NotifEvent.NOTIF_REMOVED, entry.getSbn(),
- "removedByUser=" + removedByUser);
+ mLogger.logNotifRemoved(entry.getKey(), removedByUser);
for (NotificationEntryListener listener : mNotificationEntryListeners) {
listener.onEntryRemoved(entry, visibility, removedByUser);
}
+ for (NotifCollectionListener listener : mNotifCollectionListeners) {
+ // NEM doesn't have a good knowledge of reasons so defaulting to unknown.
+ listener.onEntryRemoved(entry, REASON_UNKNOWN);
+ }
+ for (NotifCollectionListener listener : mNotifCollectionListeners) {
+ listener.onEntryCleanUp(entry);
+ }
}
}
}
@@ -528,10 +546,17 @@ public class NotificationEntryManager implements
Ranking ranking = new Ranking();
rankingMap.getRanking(key, ranking);
- NotificationEntry entry = new NotificationEntry(notification, ranking);
+ NotificationEntry entry = new NotificationEntry(
+ notification,
+ ranking,
+ mFgsFeatureController.isForegroundServiceDismissalEnabled());
mLeakDetector.trackInstance(entry);
+ for (NotifCollectionListener listener : mNotifCollectionListeners) {
+ listener.onEntryInit(entry);
+ }
+
// Construct the expanded view.
if (!mFeatureFlags.isNewNotifPipelineRenderingEnabled()) {
mNotificationRowBinderLazy.get()
@@ -541,10 +566,13 @@ public class NotificationEntryManager implements
abortExistingInflation(key, "addNotification");
mPendingNotifications.put(key, entry);
- mNotifLog.log(NotifEvent.NOTIF_ADDED, entry);
+ mLogger.logNotifAdded(entry.getKey());
for (NotificationEntryListener listener : mNotificationEntryListeners) {
listener.onPendingEntryAdded(entry);
}
+ for (NotifCollectionListener listener : mNotifCollectionListeners) {
+ listener.onEntryAdded(entry);
+ }
}
public void addNotification(StatusBarNotification notification, RankingMap ranking) {
@@ -575,10 +603,13 @@ public class NotificationEntryManager implements
entry.setSbn(notification);
mGroupManager.onEntryUpdated(entry, oldSbn);
- mNotifLog.log(NotifEvent.NOTIF_UPDATED, entry);
+ mLogger.logNotifUpdated(entry.getKey());
for (NotificationEntryListener listener : mNotificationEntryListeners) {
listener.onPreEntryUpdated(entry);
}
+ for (NotifCollectionListener listener : mNotifCollectionListeners) {
+ listener.onEntryUpdated(entry);
+ }
if (!mFeatureFlags.isNewNotifPipelineRenderingEnabled()) {
mNotificationRowBinderLazy.get()
@@ -653,6 +684,9 @@ public class NotificationEntryManager implements
for (NotificationEntryListener listener : mNotificationEntryListeners) {
listener.onNotificationRankingUpdated(rankingMap);
}
+ for (NotifCollectionListener listener : mNotifCollectionListeners) {
+ listener.onRankingUpdate(rankingMap);
+ }
}
private void updateRankingOfPendingNotifications(@Nullable RankingMap rankingMap) {
@@ -764,7 +798,7 @@ public class NotificationEntryManager implements
//TODO: Get rid of this in favor of NotificationUpdateHandler#updateNotificationRanking
/**
* @param rankingMap the {@link RankingMap} to apply to the current notification list
- * @param reason the reason for calling this method, for {@link NotifLog}
+ * @param reason the reason for calling this method, which will be logged
*/
public void updateRanking(RankingMap rankingMap, String reason) {
updateRankingAndSort(rankingMap, reason);
@@ -841,6 +875,11 @@ public class NotificationEntryManager implements
return mReadOnlyNotifications.size() != 0;
}
+ @Override
+ public void addCollectionListener(NotifCollectionListener listener) {
+ mNotifCollectionListeners.add(listener);
+ }
+
/*
* End annexation
* -----
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManagerLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManagerLogger.kt
new file mode 100644
index 000000000000..4382ab50390a
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationEntryManagerLogger.kt
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification
+
+import com.android.systemui.log.LogBuffer
+import com.android.systemui.log.LogLevel.DEBUG
+import com.android.systemui.log.LogLevel.INFO
+import com.android.systemui.log.dagger.NotificationLog
+import javax.inject.Inject
+
+/** Logger for [NotificationEntryManager]. */
+class NotificationEntryManagerLogger @Inject constructor(
+ @NotificationLog private val buffer: LogBuffer
+) {
+ fun logNotifAdded(key: String) {
+ buffer.log(TAG, INFO, {
+ str1 = key
+ }, {
+ "NOTIF ADDED $str1"
+ })
+ }
+
+ fun logNotifUpdated(key: String) {
+ buffer.log(TAG, INFO, {
+ str1 = key
+ }, {
+ "NOTIF UPDATED $str1"
+ })
+ }
+
+ fun logInflationAborted(key: String, status: String, reason: String) {
+ buffer.log(TAG, DEBUG, {
+ str1 = key
+ str2 = status
+ str3 = reason
+ }, {
+ "NOTIF INFLATION ABORTED $str1 notifStatus=$str2 reason=$str3"
+ })
+ }
+
+ fun logNotifInflated(key: String, isNew: Boolean) {
+ buffer.log(TAG, DEBUG, {
+ str1 = key
+ bool1 = isNew
+ }, {
+ "NOTIF INFLATED $str1 isNew=$bool1}"
+ })
+ }
+
+ fun logRemovalIntercepted(key: String) {
+ buffer.log(TAG, INFO, {
+ str1 = key
+ }, {
+ "NOTIF REMOVE INTERCEPTED for $str1"
+ })
+ }
+
+ fun logLifetimeExtended(key: String, extenderName: String, status: String) {
+ buffer.log(TAG, INFO, {
+ str1 = key
+ str2 = extenderName
+ str3 = status
+ }, {
+ "NOTIF LIFETIME EXTENDED $str1 extender=$str2 status=$str3"
+ })
+ }
+
+ fun logNotifRemoved(key: String, removedByUser: Boolean) {
+ buffer.log(TAG, INFO, {
+ str1 = key
+ bool1 = removedByUser
+ }, {
+ "NOTIF REMOVED $str1 removedByUser=$bool1"
+ })
+ }
+
+ fun logFilterAndSort(reason: String) {
+ buffer.log(TAG, INFO, {
+ str1 = reason
+ }, {
+ "FILTER AND SORT reason=$str1"
+ })
+ }
+}
+
+private const val TAG = "NotificationEntryMgr" \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListDumper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListDumper.java
index eaa9d78c08f4..7fe229c26f3a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListDumper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListDumper.java
@@ -16,6 +16,9 @@
package com.android.systemui.statusbar.notification.collection;
+import static com.android.systemui.statusbar.notification.collection.NotifCollection.REASON_NOT_CANCELED;
+import static com.android.systemui.statusbar.notification.collection.NotificationEntry.DismissState.NOT_DISMISSED;
+
import java.util.Arrays;
import java.util.List;
@@ -132,8 +135,20 @@ public class ListDumper {
.append(" ");
}
+ if (notifEntry.mCancellationReason != REASON_NOT_CANCELED) {
+ rksb.append("cancellationReason=")
+ .append(notifEntry.mCancellationReason)
+ .append(" ");
+ }
+
if (notifEntry.hasInflationError()) {
- rksb.append("hasInflationError ");
+ rksb.append("(!)hasInflationError ");
+ }
+
+ if (notifEntry.getDismissState() != NOT_DISMISSED) {
+ rksb.append("dismissState=")
+ .append(notifEntry.getDismissState())
+ .append(" ");
}
String rkString = rksb.toString();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java
index 8ac4d3008179..3b2fe9441c32 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java
@@ -35,9 +35,14 @@ import static android.service.notification.NotificationListenerService.REASON_TI
import static android.service.notification.NotificationListenerService.REASON_UNAUTOBUNDLED;
import static android.service.notification.NotificationListenerService.REASON_USER_STOPPED;
+import static com.android.systemui.statusbar.notification.collection.NotificationEntry.DismissState.DISMISSED;
+import static com.android.systemui.statusbar.notification.collection.NotificationEntry.DismissState.NOT_DISMISSED;
+import static com.android.systemui.statusbar.notification.collection.NotificationEntry.DismissState.PARENT_DISMISSED;
+
+import static java.util.Objects.requireNonNull;
+
import android.annotation.IntDef;
import android.annotation.MainThread;
-import android.annotation.NonNull;
import android.annotation.Nullable;
import android.os.RemoteException;
import android.service.notification.NotificationListenerService.Ranking;
@@ -45,6 +50,8 @@ import android.service.notification.NotificationListenerService.RankingMap;
import android.service.notification.StatusBarNotification;
import android.util.ArrayMap;
+import androidx.annotation.NonNull;
+
import com.android.internal.statusbar.IStatusBarService;
import com.android.systemui.DumpController;
import com.android.systemui.Dumpable;
@@ -92,8 +99,8 @@ import javax.inject.Singleton;
* {@link #addNotificationLifetimeExtender(NotifLifetimeExtender)}).
*
* Interested parties can register listeners
- * ({@link #addCollectionListener(NotifCollectionListener)}) to be informed when notifications are
- * added, updated, or removed.
+ * ({@link #addCollectionListener(NotifCollectionListener)}) to be informed when notifications
+ * events occur.
*/
@MainThread
@Singleton
@@ -172,15 +179,65 @@ public class NotifCollection implements Dumpable {
/**
* Dismiss a notification on behalf of the user.
*/
- void dismissNotification(
- NotificationEntry entry,
- @CancellationReason int reason,
- @NonNull DismissedByUserStats stats) {
+ void dismissNotification(NotificationEntry entry, @NonNull DismissedByUserStats stats) {
Assert.isMainThread();
- Objects.requireNonNull(stats);
+ requireNonNull(stats);
checkForReentrantCall();
- removeNotification(entry.getKey(), null, reason, stats);
+ if (entry != mNotificationSet.get(entry.getKey())) {
+ throw new IllegalStateException("Invalid entry: " + entry.getKey());
+ }
+
+ if (entry.getDismissState() == DISMISSED) {
+ return;
+ }
+
+ // Optimistically mark the notification as dismissed -- we'll wait for the signal from
+ // system server before removing it from our notification set.
+ entry.setDismissState(DISMISSED);
+ mLogger.logNotifDismissed(entry.getKey());
+
+ List<NotificationEntry> canceledEntries = new ArrayList<>();
+
+ if (isCanceled(entry)) {
+ canceledEntries.add(entry);
+ } else {
+ // Ask system server to remove it for us
+ try {
+ mStatusBarService.onNotificationClear(
+ entry.getSbn().getPackageName(),
+ entry.getSbn().getTag(),
+ entry.getSbn().getId(),
+ entry.getSbn().getUser().getIdentifier(),
+ entry.getSbn().getKey(),
+ stats.dismissalSurface,
+ stats.dismissalSentiment,
+ stats.notificationVisibility);
+ } catch (RemoteException e) {
+ // system process is dead if we're here.
+ }
+
+ // Also mark any children as dismissed as system server will auto-dismiss them as well
+ if (entry.getSbn().getNotification().isGroupSummary()) {
+ for (NotificationEntry otherEntry : mNotificationSet.values()) {
+ if (otherEntry.getSbn().getGroupKey().equals(entry.getSbn().getGroupKey())
+ && otherEntry.getDismissState() != DISMISSED) {
+ otherEntry.setDismissState(PARENT_DISMISSED);
+ if (isCanceled(otherEntry)) {
+ canceledEntries.add(otherEntry);
+ }
+ }
+ }
+ }
+ }
+
+ // Immediately remove any dismissed notifs that have already been canceled by system server
+ // (probably due to being lifetime-extended up until this point).
+ for (NotificationEntry canceledEntry : canceledEntries) {
+ tryRemoveNotification(canceledEntry);
+ }
+
+ rebuildList();
}
private void onNotificationPosted(StatusBarNotification sbn, RankingMap rankingMap) {
@@ -208,7 +265,15 @@ public class NotifCollection implements Dumpable {
Assert.isMainThread();
mLogger.logNotifRemoved(sbn.getKey(), reason);
- removeNotification(sbn.getKey(), rankingMap, reason, null);
+
+ final NotificationEntry entry = mNotificationSet.get(sbn.getKey());
+ if (entry == null) {
+ throw new IllegalStateException("No notification to remove with key " + sbn.getKey());
+ }
+ entry.mCancellationReason = reason;
+ applyRanking(rankingMap);
+ tryRemoveNotification(entry);
+ rebuildList();
}
private void onNotificationRankingUpdate(RankingMap rankingMap) {
@@ -230,6 +295,8 @@ public class NotifCollection implements Dumpable {
entry = new NotificationEntry(sbn, ranking);
mNotificationSet.put(sbn.getKey(), entry);
+ dispatchOnEntryInit(entry);
+
if (rankingMap != null) {
applyRanking(rankingMap);
}
@@ -240,9 +307,12 @@ public class NotifCollection implements Dumpable {
// Update to an existing entry
mLogger.logNotifUpdated(sbn.getKey());
- // Notification is updated so it is essentially re-added and thus alive again. Don't
+ cancelLocalDismissal(entry);
+
+ // Notification is updated so it is essentially re-added and thus alive again. Don't
// need to keep its lifetime extended.
cancelLifetimeExtension(entry);
+ entry.mCancellationReason = REASON_NOT_CANCELED;
entry.setSbn(sbn);
if (rankingMap != null) {
@@ -253,70 +323,62 @@ public class NotifCollection implements Dumpable {
}
}
- private void removeNotification(
- String key,
- @Nullable RankingMap rankingMap,
- @CancellationReason int reason,
- @Nullable DismissedByUserStats dismissedByUserStats) {
+ /**
+ * Tries to remove a notification from the notification set. This removal may be blocked by
+ * lifetime extenders. Does not trigger a rebuild of the list; caller must do that manually.
+ *
+ * @return True if the notification was removed, false otherwise.
+ */
+ private boolean tryRemoveNotification(NotificationEntry entry) {
+ if (mNotificationSet.get(entry.getKey()) != entry) {
+ throw new IllegalStateException("No notification to remove with key " + entry.getKey());
+ }
- NotificationEntry entry = mNotificationSet.get(key);
- if (entry == null) {
- throw new IllegalStateException("No notification to remove with key " + key);
+ if (!isCanceled(entry)) {
+ throw new IllegalStateException("Cannot remove notification " + entry.getKey()
+ + ": has not been marked for removal");
}
- entry.mLifetimeExtenders.clear();
- mAmDispatchingToOtherCode = true;
- for (NotifLifetimeExtender extender : mLifetimeExtenders) {
- if (extender.shouldExtendLifetime(entry, reason)) {
- entry.mLifetimeExtenders.add(extender);
- }
+ if (isDismissedByUser(entry)) {
+ // User-dismissed notifications cannot be lifetime-extended
+ cancelLifetimeExtension(entry);
+ } else {
+ updateLifetimeExtension(entry);
}
- mAmDispatchingToOtherCode = false;
if (!isLifetimeExtended(entry)) {
mNotificationSet.remove(entry.getKey());
-
- if (dismissedByUserStats != null) {
- try {
- mStatusBarService.onNotificationClear(
- entry.getSbn().getPackageName(),
- entry.getSbn().getTag(),
- entry.getSbn().getId(),
- entry.getSbn().getUser().getIdentifier(),
- entry.getSbn().getKey(),
- dismissedByUserStats.dismissalSurface,
- dismissedByUserStats.dismissalSentiment,
- dismissedByUserStats.notificationVisibility);
- } catch (RemoteException e) {
- // system process is dead if we're here.
- }
- }
-
- if (rankingMap != null) {
- applyRanking(rankingMap);
- }
-
- dispatchOnEntryRemoved(entry, reason, dismissedByUserStats != null /* removedByUser */);
+ dispatchOnEntryRemoved(entry, entry.mCancellationReason);
+ dispatchOnEntryCleanUp(entry);
+ return true;
+ } else {
+ return false;
}
-
- rebuildList();
}
private void applyRanking(@NonNull RankingMap rankingMap) {
for (NotificationEntry entry : mNotificationSet.values()) {
- if (!isLifetimeExtended(entry)) {
- Ranking ranking = requireRanking(rankingMap, entry.getKey());
- entry.setRanking(ranking);
-
- // TODO: (b/145659174) update the sbn's overrideGroupKey in
- // NotificationEntry.setRanking instead of here once we fully migrate to the
- // NewNotifPipeline
- if (mFeatureFlags.isNewNotifPipelineRenderingEnabled()) {
- final String newOverrideGroupKey = ranking.getOverrideGroupKey();
- if (!Objects.equals(entry.getSbn().getOverrideGroupKey(),
- newOverrideGroupKey)) {
- entry.getSbn().setOverrideGroupKey(newOverrideGroupKey);
+ if (!isCanceled(entry)) {
+
+ // TODO: (b/148791039) We should crash if we are ever handed a ranking with
+ // incomplete entries. Right now, there's a race condition in NotificationListener
+ // that means this might occur when SystemUI is starting up.
+ Ranking ranking = new Ranking();
+ if (rankingMap.getRanking(entry.getKey(), ranking)) {
+ entry.setRanking(ranking);
+
+ // TODO: (b/145659174) update the sbn's overrideGroupKey in
+ // NotificationEntry.setRanking instead of here once we fully migrate to the
+ // NewNotifPipeline
+ if (mFeatureFlags.isNewNotifPipelineRenderingEnabled()) {
+ final String newOverrideGroupKey = ranking.getOverrideGroupKey();
+ if (!Objects.equals(entry.getSbn().getOverrideGroupKey(),
+ newOverrideGroupKey)) {
+ entry.getSbn().setOverrideGroupKey(newOverrideGroupKey);
+ }
}
+ } else {
+ mLogger.logRankingMissing(entry.getKey(), rankingMap);
}
}
}
@@ -344,9 +406,9 @@ public class NotifCollection implements Dumpable {
}
if (!isLifetimeExtended(entry)) {
- // TODO: This doesn't need to be undefined -- we can set either EXTENDER_EXPIRED or
- // save the original reason
- removeNotification(entry.getKey(), null, REASON_UNKNOWN, null);
+ if (tryRemoveNotification(entry)) {
+ rebuildList();
+ }
}
}
@@ -363,6 +425,31 @@ public class NotifCollection implements Dumpable {
return entry.mLifetimeExtenders.size() > 0;
}
+ private void updateLifetimeExtension(NotificationEntry entry) {
+ entry.mLifetimeExtenders.clear();
+ mAmDispatchingToOtherCode = true;
+ for (NotifLifetimeExtender extender : mLifetimeExtenders) {
+ if (extender.shouldExtendLifetime(entry, entry.mCancellationReason)) {
+ entry.mLifetimeExtenders.add(extender);
+ }
+ }
+ mAmDispatchingToOtherCode = false;
+ }
+
+ private void cancelLocalDismissal(NotificationEntry entry) {
+ if (isDismissedByUser(entry)) {
+ entry.setDismissState(NOT_DISMISSED);
+ if (entry.getSbn().getNotification().isGroupSummary()) {
+ for (NotificationEntry otherEntry : mNotificationSet.values()) {
+ if (otherEntry.getSbn().getGroupKey().equals(entry.getSbn().getGroupKey())
+ && otherEntry.getDismissState() == PARENT_DISMISSED) {
+ otherEntry.setDismissState(NOT_DISMISSED);
+ }
+ }
+ }
+ }
+ }
+
private void checkForReentrantCall() {
if (mAmDispatchingToOtherCode) {
throw new IllegalStateException("Reentrant call detected");
@@ -378,6 +465,27 @@ public class NotifCollection implements Dumpable {
return ranking;
}
+ /**
+ * True if the notification has been canceled by system server. Usually, such notifications are
+ * immediately removed from the collection, but can sometimes stick around due to lifetime
+ * extenders.
+ */
+ private static boolean isCanceled(NotificationEntry entry) {
+ return entry.mCancellationReason != REASON_NOT_CANCELED;
+ }
+
+ private static boolean isDismissedByUser(NotificationEntry entry) {
+ return entry.getDismissState() != NOT_DISMISSED;
+ }
+
+ private void dispatchOnEntryInit(NotificationEntry entry) {
+ mAmDispatchingToOtherCode = true;
+ for (NotifCollectionListener listener : mNotifCollectionListeners) {
+ listener.onEntryInit(entry);
+ }
+ mAmDispatchingToOtherCode = false;
+ }
+
private void dispatchOnEntryAdded(NotificationEntry entry) {
mAmDispatchingToOtherCode = true;
for (NotifCollectionListener listener : mNotifCollectionListeners) {
@@ -402,16 +510,35 @@ public class NotifCollection implements Dumpable {
mAmDispatchingToOtherCode = false;
}
- private void dispatchOnEntryRemoved(
- NotificationEntry entry,
- @CancellationReason int reason,
- boolean removedByUser) {
+ private void dispatchOnEntryRemoved(NotificationEntry entry, @CancellationReason int reason) {
+ mAmDispatchingToOtherCode = true;
+ for (NotifCollectionListener listener : mNotifCollectionListeners) {
+ listener.onEntryRemoved(entry, reason);
+ }
+ mAmDispatchingToOtherCode = false;
+ }
+
+ private void dispatchOnEntryCleanUp(NotificationEntry entry) {
mAmDispatchingToOtherCode = true;
for (NotifCollectionListener listener : mNotifCollectionListeners) {
- listener.onEntryRemoved(entry, reason, removedByUser);
+ listener.onEntryCleanUp(entry);
}
mAmDispatchingToOtherCode = false;
}
+ @Override
+ public void dump(@NonNull FileDescriptor fd, PrintWriter pw, @NonNull String[] args) {
+ final List<NotificationEntry> entries = new ArrayList<>(getActiveNotifs());
+
+ pw.println("\t" + TAG + " unsorted/unfiltered notifications:");
+ if (entries.size() == 0) {
+ pw.println("\t\t None");
+ }
+ pw.println(
+ ListDumper.dumpList(
+ entries,
+ true,
+ "\t\t"));
+ }
private final BatchableNotificationHandler mNotifHandler = new BatchableNotificationHandler() {
@Override
@@ -467,20 +594,6 @@ public class NotifCollection implements Dumpable {
@Retention(RetentionPolicy.SOURCE)
public @interface CancellationReason {}
+ public static final int REASON_NOT_CANCELED = -1;
public static final int REASON_UNKNOWN = 0;
-
- @Override
- public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- final List<NotificationEntry> entries = new ArrayList<>(getActiveNotifs());
-
- pw.println("\t" + TAG + " unsorted/unfiltered notifications:");
- if (entries.size() == 0) {
- pw.println("\t\t None");
- }
- pw.println(
- ListDumper.dumpList(
- entries,
- true,
- "\t\t"));
- }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifInflaterImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifInflaterImpl.java
index e7b772f1c7b2..9272e51b6aa0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifInflaterImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifInflaterImpl.java
@@ -98,13 +98,12 @@ public class NotifInflaterImpl implements NotifInflater {
@Override
public void run() {
int dismissalSurface = NotificationStats.DISMISSAL_SHADE;
- /**
+ /*
* TODO: determine dismissal surface (ie: shade / headsup / aod)
* see {@link NotificationLogger#logNotificationClear}
*/
mNotifCollection.dismissNotification(
entry,
- 0,
new DismissedByUserStats(
dismissalSurface,
DISMISS_SENTIMENT_NEUTRAL,
@@ -150,9 +149,7 @@ public class NotifInflaterImpl implements NotifInflater {
}
@Override
- public void onAsyncInflationFinished(
- NotificationEntry entry,
- int inflatedFlags) {
+ public void onAsyncInflationFinished(NotificationEntry entry) {
if (mExternalInflationCallback != null) {
mExternalInflationCallback.onInflationFinished(entry);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifPipeline.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifPipeline.java
index 0377f57a7a9c..5767ad93014e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifPipeline.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifPipeline.java
@@ -23,6 +23,7 @@ import com.android.systemui.statusbar.notification.collection.listbuilder.plugga
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSection;
+import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection;
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender;
@@ -66,7 +67,7 @@ import javax.inject.Singleton;
* 9. The list is handed off to the view layer to be rendered
*/
@Singleton
-public class NotifPipeline {
+public class NotifPipeline implements CommonNotifCollection {
private final NotifCollection mNotifCollection;
private final ShadeListBuilder mShadeListBuilder;
@@ -89,9 +90,7 @@ public class NotifPipeline {
return mNotifCollection.getActiveNotifs();
}
- /**
- * Registers a listener to be informed when notifications are added, removed or updated.
- */
+ @Override
public void addCollectionListener(NotifCollectionListener listener) {
mNotifCollection.addCollectionListener(listener);
}
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 1f77ec229041..5dbf47e29407 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
@@ -22,6 +22,7 @@ import static android.app.Notification.CATEGORY_EVENT;
import static android.app.Notification.CATEGORY_MESSAGE;
import static android.app.Notification.CATEGORY_REMINDER;
import static android.app.Notification.FLAG_BUBBLE;
+import static android.app.Notification.FLAG_FOREGROUND_SERVICE;
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_AMBIENT;
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_BADGE;
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_FULL_SCREEN_INTENT;
@@ -29,9 +30,11 @@ import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_NOTIFICAT
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK;
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_STATUS_BAR;
+import static com.android.systemui.statusbar.notification.collection.NotifCollection.REASON_NOT_CANCELED;
import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_ALERTING;
-import android.annotation.NonNull;
+import static java.util.Objects.requireNonNull;
+
import android.app.Notification;
import android.app.Notification.MessagingStyle.Message;
import android.app.NotificationChannel;
@@ -50,6 +53,7 @@ import android.util.ArraySet;
import android.view.View;
import android.widget.ImageView;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.android.internal.annotations.VisibleForTesting;
@@ -59,6 +63,7 @@ import com.android.internal.util.ContrastColorUtil;
import com.android.systemui.statusbar.InflationTask;
import com.android.systemui.statusbar.StatusBarIconView;
import com.android.systemui.statusbar.notification.InflationException;
+import com.android.systemui.statusbar.notification.collection.NotifCollection.CancellationReason;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter;
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender;
@@ -105,9 +110,18 @@ public final class NotificationEntry extends ListEntry {
/** If this was a group child that was promoted to the top level, then who did the promoting. */
@Nullable NotifPromoter mNotifPromoter;
- /** If this notification had an issue with inflating. Only used with the NewNotifPipeline **/
+ /**
+ * If this notification was cancelled by system server, then the reason that was supplied.
+ * Uncancelled notifications always have REASON_NOT_CANCELED. Note that lifetime-extended
+ * notifications will have this set even though they are still in the active notification set.
+ */
+ @CancellationReason int mCancellationReason = REASON_NOT_CANCELED;
+
+ /** @see #hasInflationError() */
private boolean mHasInflationError;
+ /** @see #getDismissState() */
+ @NonNull private DismissState mDismissState = DismissState.NOT_DISMISSED;
/*
* Old members
@@ -164,18 +178,29 @@ public final class NotificationEntry extends ListEntry {
private Runnable mOnSensitiveChangedListener;
private boolean mAutoHeadsUp;
private boolean mPulseSupressed;
+ private boolean mAllowFgsDismissal;
private int mBucket = BUCKET_ALERTING;
public NotificationEntry(
@NonNull StatusBarNotification sbn,
@NonNull Ranking ranking) {
- super(Objects.requireNonNull(Objects.requireNonNull(sbn).getKey()));
+ this(sbn, ranking, false);
+ }
+
+ public NotificationEntry(
+ @NonNull StatusBarNotification sbn,
+ @NonNull Ranking ranking,
+ boolean allowFgsDismissal
+ ) {
+ super(requireNonNull(Objects.requireNonNull(sbn).getKey()));
- Objects.requireNonNull(ranking);
+ requireNonNull(ranking);
mKey = sbn.getKey();
setSbn(sbn);
setRanking(ranking);
+
+ mAllowFgsDismissal = allowFgsDismissal;
}
@Override
@@ -201,8 +226,8 @@ public final class NotificationEntry extends ListEntry {
* TODO: Make this package-private
*/
public void setSbn(@NonNull StatusBarNotification sbn) {
- Objects.requireNonNull(sbn);
- Objects.requireNonNull(sbn.getKey());
+ requireNonNull(sbn);
+ requireNonNull(sbn.getKey());
if (!sbn.getKey().equals(mKey)) {
throw new IllegalArgumentException("New key " + sbn.getKey()
@@ -227,8 +252,8 @@ public final class NotificationEntry extends ListEntry {
* TODO: Make this package-private
*/
public void setRanking(@NonNull Ranking ranking) {
- Objects.requireNonNull(ranking);
- Objects.requireNonNull(ranking.getKey());
+ requireNonNull(ranking);
+ requireNonNull(ranking.getKey());
if (!ranking.getKey().equals(mKey)) {
throw new IllegalArgumentException("New key " + ranking.getKey()
@@ -239,6 +264,39 @@ public final class NotificationEntry extends ListEntry {
}
/*
+ * Bookkeeping getters and setters
+ */
+
+ /**
+ * Whether this notification had an error when attempting to inflate. This is only used in
+ * the NewNotifPipeline
+ */
+ public boolean hasInflationError() {
+ return mHasInflationError;
+ }
+
+ /**
+ * Set whether the notification has an error while inflating.
+ *
+ * TODO: Move this into an inflation error manager class.
+ */
+ public void setHasInflationError(boolean hasError) {
+ mHasInflationError = hasError;
+ }
+
+ /**
+ * Set if the user has dismissed this notif but we haven't yet heard back from system server to
+ * confirm the dismissal.
+ */
+ @NonNull public DismissState getDismissState() {
+ return mDismissState;
+ }
+
+ void setDismissState(@NonNull DismissState dismissState) {
+ mDismissState = requireNonNull(dismissState);
+ }
+
+ /*
* Convenience getters for SBN and Ranking members
*/
@@ -275,7 +333,6 @@ public final class NotificationEntry extends ListEntry {
return mRanking.canBubble();
}
-
public @NonNull List<Notification.Action> getSmartActions() {
return mRanking.getSmartActions();
}
@@ -543,12 +600,8 @@ public final class NotificationEntry extends ListEntry {
public void setInflationTask(InflationTask abortableTask) {
// abort any existing inflation
- InflationTask existing = mRunningTask;
abortTask();
mRunningTask = abortableTask;
- if (existing != null && mRunningTask != null) {
- mRunningTask.supersedeTask(existing);
- }
}
public void onInflationTaskFinished() {
@@ -578,18 +631,6 @@ public final class NotificationEntry extends ListEntry {
remoteInputTextWhenReset = null;
}
- void setHasInflationError(boolean hasError) {
- mHasInflationError = hasError;
- }
-
- /**
- * Whether this notification had an error when attempting to inflate. This is only used in
- * the NewNotifPipeline
- */
- public boolean hasInflationError() {
- return mHasInflationError;
- }
-
public void setHasSentReply() {
hasSentReply = true;
}
@@ -799,8 +840,11 @@ public final class NotificationEntry extends ListEntry {
* notification can be dismissed in case notifications are sensitive on the lockscreen.
* @see #canViewBeDismissed()
*/
+ // TOOD: This logic doesn't belong on NotificationEntry. It should be moved to the
+ // ForegroundsServiceDismissalFeatureController or some other controller that can be added
+ // as a dependency to any class that needs to answer this question.
public boolean isClearable() {
- if (!mSbn.isClearable()) {
+ if (!isDismissable()) {
return false;
}
@@ -808,7 +852,7 @@ public final class NotificationEntry extends ListEntry {
if (children != null && children.size() > 0) {
for (int i = 0; i < children.size(); i++) {
NotificationEntry child = children.get(i);
- if (!child.isClearable()) {
+ if (!child.isDismissable()) {
return false;
}
}
@@ -816,6 +860,31 @@ public final class NotificationEntry extends ListEntry {
return true;
}
+ /**
+ * Notifications might have any combination of flags:
+ * - FLAG_ONGOING_EVENT
+ * - FLAG_NO_CLEAR
+ * - FLAG_FOREGROUND_SERVICE
+ *
+ * We want to allow dismissal of notifications that represent foreground services, which may
+ * have all 3 flags set. If we only find NO_CLEAR though, we don't want to allow dismissal
+ */
+ private boolean isDismissable() {
+ boolean ongoing = ((mSbn.getNotification().flags & Notification.FLAG_ONGOING_EVENT) != 0);
+ boolean noclear = ((mSbn.getNotification().flags & Notification.FLAG_NO_CLEAR) != 0);
+ boolean fgs = ((mSbn.getNotification().flags & FLAG_FOREGROUND_SERVICE) != 0);
+
+ if (mAllowFgsDismissal) {
+ if (noclear && !ongoing && !fgs) {
+ return false;
+ }
+ return true;
+ } else {
+ return mSbn.isClearable();
+ }
+
+ }
+
public boolean canViewBeDismissed() {
if (row == null) return true;
return row.canViewBeDismissed();
@@ -974,6 +1043,16 @@ public final class NotificationEntry extends ListEntry {
}
}
+ /** @see #getDismissState() */
+ public enum DismissState {
+ /** User has not dismissed this notif or its parent */
+ NOT_DISMISSED,
+ /** User has dismissed this notif specifically */
+ DISMISSED,
+ /** User has dismissed this notif's parent (which implicitly dismisses this one as well) */
+ PARENT_DISMISSED,
+ }
+
private static final long LAUNCH_COOLDOWN = 2000;
private static final long REMOTE_INPUT_COOLDOWN = 500;
private static final long INITIALIZATION_DELAY = 400;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManager.kt
index 1eeeab3e93cb..2981252f148c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManager.kt
@@ -22,11 +22,10 @@ import android.service.notification.NotificationListenerService.Ranking
import android.service.notification.NotificationListenerService.RankingMap
import android.service.notification.StatusBarNotification
import com.android.systemui.statusbar.NotificationMediaManager
+import com.android.systemui.statusbar.notification.NotificationEntryManagerLogger
import com.android.systemui.statusbar.notification.NotificationFilter
import com.android.systemui.statusbar.notification.NotificationSectionsFeatureManager
import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider
-import com.android.systemui.statusbar.notification.logging.NotifEvent
-import com.android.systemui.statusbar.notification.logging.NotifLog
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier
import com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_ALERTING
import com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_PEOPLE
@@ -53,7 +52,7 @@ open class NotificationRankingManager @Inject constructor(
private val groupManager: NotificationGroupManager,
private val headsUpManager: HeadsUpManager,
private val notifFilter: NotificationFilter,
- private val notifLog: NotifLog,
+ private val logger: NotificationEntryManagerLogger,
sectionsFeatureManager: NotificationSectionsFeatureManager,
private val peopleNotificationIdentifier: PeopleNotificationIdentifier,
private val highPriorityProvider: HighPriorityProvider
@@ -134,7 +133,7 @@ open class NotificationRankingManager @Inject constructor(
entries: Sequence<NotificationEntry>,
reason: String
): Sequence<NotificationEntry> {
- notifLog.log(NotifEvent.FILTER_AND_SORT, reason)
+ logger.logFilterAndSort(reason)
return entries.filter { !notifFilter.shouldFilterOut(it) }
.sortedWith(rankingComparator)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HideLocallyDismissedNotifsCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HideLocallyDismissedNotifsCoordinator.java
new file mode 100644
index 000000000000..0059e7baa3c2
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/HideLocallyDismissedNotifsCoordinator.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.collection.coordinator;
+
+import static com.android.systemui.statusbar.notification.collection.NotificationEntry.DismissState.NOT_DISMISSED;
+
+import com.android.systemui.statusbar.notification.collection.NotifPipeline;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
+
+/**
+ * Filters out notifications that have been dismissed locally (by the user) but that system server
+ * hasn't yet confirmed the removal of.
+ */
+public class HideLocallyDismissedNotifsCoordinator implements Coordinator {
+ @Override
+ public void attach(NotifPipeline pipeline) {
+ pipeline.addPreGroupFilter(mFilter);
+ }
+
+ private final NotifFilter mFilter = new NotifFilter("HideLocallyDismissedNotifsFilter") {
+ @Override
+ public boolean shouldFilterOut(NotificationEntry entry, long now) {
+ return entry.getDismissState() != NOT_DISMISSED;
+ }
+ };
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/NotifCoordinators.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/NotifCoordinators.java
index 8d0dd5b111ba..0a1e09f4c99d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/NotifCoordinators.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/NotifCoordinators.java
@@ -56,6 +56,7 @@ public class NotifCoordinators implements Dumpable {
PreparationCoordinator preparationCoordinator) {
dumpController.registerDumpable(TAG, this);
+ mCoordinators.add(new HideLocallyDismissedNotifsCoordinator());
mCoordinators.add(keyguardCoordinator);
mCoordinators.add(rankingCoordinator);
mCoordinators.add(foregroundCoordinator);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java
index 20c9cbc8790d..1e5946a85cfa 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java
@@ -22,8 +22,6 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.inflation.NotifInflater;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
-import com.android.systemui.statusbar.notification.logging.NotifEvent;
-import com.android.systemui.statusbar.notification.logging.NotifLog;
import java.util.ArrayList;
import java.util.List;
@@ -42,13 +40,15 @@ import javax.inject.Singleton;
public class PreparationCoordinator implements Coordinator {
private static final String TAG = "PreparationCoordinator";
- private final NotifLog mNotifLog;
+ private final PreparationCoordinatorLogger mLogger;
private final NotifInflater mNotifInflater;
private final List<NotificationEntry> mPendingNotifications = new ArrayList<>();
@Inject
- public PreparationCoordinator(NotifLog notifLog, NotifInflaterImpl notifInflater) {
- mNotifLog = notifLog;
+ public PreparationCoordinator(
+ PreparationCoordinatorLogger logger,
+ NotifInflaterImpl notifInflater) {
+ mLogger = logger;
mNotifInflater = notifInflater;
mNotifInflater.setInflationCallback(mInflationCallback);
}
@@ -72,7 +72,7 @@ public class PreparationCoordinator implements Coordinator {
}
@Override
- public void onEntryRemoved(NotificationEntry entry, int reason, boolean removedByUser) {
+ public void onEntryRemoved(NotificationEntry entry, int reason) {
abortInflation(entry, "entryRemoved reason=" + reason);
}
};
@@ -106,7 +106,7 @@ public class PreparationCoordinator implements Coordinator {
new NotifInflater.InflationCallback() {
@Override
public void onInflationFinished(NotificationEntry entry) {
- mNotifLog.log(NotifEvent.INFLATED, entry);
+ mLogger.logNotifInflated(entry.getKey());
mPendingNotifications.remove(entry);
mNotifInflatingFilter.invalidateList();
}
@@ -123,7 +123,7 @@ public class PreparationCoordinator implements Coordinator {
}
private void abortInflation(NotificationEntry entry, String reason) {
- mNotifLog.log(NotifEvent.INFLATION_ABORTED, reason);
+ mLogger.logInflationAborted(entry.getKey(), reason);
entry.abortTask();
mPendingNotifications.remove(entry);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorLogger.kt
new file mode 100644
index 000000000000..75e7bc9b79a2
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorLogger.kt
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.collection.coordinator
+
+import com.android.systemui.log.LogBuffer
+import com.android.systemui.log.LogLevel
+import com.android.systemui.log.dagger.NotificationLog
+import javax.inject.Inject
+
+class PreparationCoordinatorLogger @Inject constructor(
+ @NotificationLog private val buffer: LogBuffer
+) {
+ fun logNotifInflated(key: String) {
+ buffer.log(TAG, LogLevel.DEBUG, {
+ str1 = key
+ }, {
+ "NOTIF INFLATED $str1"
+ })
+ }
+
+ fun logInflationAborted(key: String, reason: String) {
+ buffer.log(TAG, LogLevel.DEBUG, {
+ str1 = key
+ str2 = reason
+ }, {
+ "NOTIF INFLATION ABORTED $str1 reason=$str2"
+ })
+ }
+}
+
+private const val TAG = "PreparationCoordinator" \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotificationRowBinderImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotificationRowBinderImpl.java
index 2a7683a8c7c2..ecf62db4680b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotificationRowBinderImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/inflation/NotificationRowBinderImpl.java
@@ -42,8 +42,11 @@ import com.android.systemui.statusbar.notification.NotificationInterruptionState
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotifBindPipeline;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder;
+import com.android.systemui.statusbar.notification.row.RowContentBindParams;
+import com.android.systemui.statusbar.notification.row.RowContentBindStage;
import com.android.systemui.statusbar.notification.row.RowInflaterTask;
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
@@ -67,8 +70,10 @@ public class NotificationRowBinderImpl implements NotificationRowBinder {
private final NotificationGroupManager mGroupManager;
private final NotificationGutsManager mGutsManager;
private final NotificationInterruptionStateProvider mNotificationInterruptionStateProvider;
+
private final Context mContext;
- private final NotificationRowContentBinder mRowContentBinder;
+ private final NotifBindPipeline mNotifBindPipeline;
+ private final RowContentBindStage mRowContentBindStage;
private final NotificationMessagingUtil mMessagingUtil;
private final ExpandableNotificationRow.ExpansionLogger mExpansionLogger =
this::logNotificationExpansion;
@@ -93,7 +98,8 @@ public class NotificationRowBinderImpl implements NotificationRowBinder {
Context context,
NotificationRemoteInputManager notificationRemoteInputManager,
NotificationLockscreenUserManager notificationLockscreenUserManager,
- NotificationRowContentBinder rowContentBinder,
+ NotifBindPipeline notifBindPipeline,
+ RowContentBindStage rowContentBindStage,
@Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) boolean allowLongPress,
KeyguardBypassController keyguardBypassController,
StatusBarStateController statusBarStateController,
@@ -103,7 +109,8 @@ public class NotificationRowBinderImpl implements NotificationRowBinder {
Provider<RowInflaterTask> rowInflaterTaskProvider,
NotificationLogger logger) {
mContext = context;
- mRowContentBinder = rowContentBinder;
+ mNotifBindPipeline = notifBindPipeline;
+ mRowContentBindStage = rowContentBindStage;
mMessagingUtil = new NotificationMessagingUtil(context);
mNotificationRemoteInputManager = notificationRemoteInputManager;
mNotificationLockscreenUserManager = notificationLockscreenUserManager;
@@ -167,6 +174,7 @@ public class NotificationRowBinderImpl implements NotificationRowBinder {
}
}
+ //TODO: This method associates a row with an entry, but eventually needs to not do that
private void bindRow(NotificationEntry entry, PackageManager pmUser,
StatusBarNotification sbn, ExpandableNotificationRow row,
Runnable onDismissRunnable) {
@@ -195,12 +203,11 @@ public class NotificationRowBinderImpl implements NotificationRowBinder {
mKeyguardBypassController,
mGroupManager,
mHeadsUpManager,
- mRowContentBinder,
+ mRowContentBindStage,
mPresenter);
// TODO: Either move these into ExpandableNotificationRow#initialize or out of row entirely
row.setStatusBarStateController(mStatusBarStateController);
- row.setInflationCallback(mInflationCallback);
row.setAppOpsOnClickListener(mOnAppOpsClickListener);
if (mAllowLongPress) {
row.setLongPressListener(mGutsManager::openGuts);
@@ -214,6 +221,10 @@ public class NotificationRowBinderImpl implements NotificationRowBinder {
row.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
}
+ entry.setRow(row);
+ row.setEntry(entry);
+ mNotifBindPipeline.manageRow(entry, row);
+
mBindRowCallback.onBindRow(entry, pmUser, sbn, row);
}
@@ -247,13 +258,11 @@ public class NotificationRowBinderImpl implements NotificationRowBinder {
}
}
- //TODO: This method associates a row with an entry, but eventually needs to not do that
private void updateNotification(
NotificationEntry entry,
PackageManager pmUser,
StatusBarNotification sbn,
ExpandableNotificationRow row) {
- row.setIsLowPriority(entry.isAmbient());
// Extract target SDK version.
try {
@@ -268,22 +277,31 @@ public class NotificationRowBinderImpl implements NotificationRowBinder {
// TODO: should updates to the entry be happening somewhere else?
entry.setIconTag(R.id.icon_is_pre_L, entry.targetSdk < Build.VERSION_CODES.LOLLIPOP);
- entry.setRow(row);
row.setOnActivatedListener(mPresenter);
- boolean useIncreasedCollapsedHeight =
+ final boolean useIncreasedCollapsedHeight =
mMessagingUtil.isImportantMessaging(sbn, entry.getImportance());
- boolean useIncreasedHeadsUp = useIncreasedCollapsedHeight
+ final boolean useIncreasedHeadsUp = useIncreasedCollapsedHeight
&& !mPresenter.isPresenterFullyCollapsed();
- row.setUseIncreasedCollapsedHeight(useIncreasedCollapsedHeight);
- row.setUseIncreasedHeadsUpHeight(useIncreasedHeadsUp);
- row.setEntry(entry);
+ final boolean isLowPriority = entry.isAmbient();
+
+ RowContentBindParams params = mRowContentBindStage.getStageParams(entry);
+ params.setUseIncreasedCollapsedHeight(useIncreasedCollapsedHeight);
+ params.setUseIncreasedHeadsUpHeight(useIncreasedHeadsUp);
+ params.setUseLowPriority(entry.isAmbient());
if (mNotificationInterruptionStateProvider.shouldHeadsUp(entry)) {
- row.setInflationFlags(FLAG_CONTENT_VIEW_HEADS_UP);
+ params.requireContentViews(FLAG_CONTENT_VIEW_HEADS_UP);
}
+ //TODO: Replace this API with RowContentBindParams directly
row.setNeedsRedaction(mNotificationLockscreenUserManager.needsRedaction(entry));
- row.inflateViews();
+ params.rebindAllContentViews();
+ mRowContentBindStage.requestRebind(entry, en -> {
+ row.setUsesIncreasedCollapsedHeight(useIncreasedCollapsedHeight);
+ row.setUsesIncreasedHeadsUpHeight(useIncreasedHeadsUp);
+ row.setIsLowPriority(isLowPriority);
+ mInflationCallback.onAsyncInflationFinished(en);
+ });
// bind the click event to the content area
Objects.requireNonNull(mNotificationClicker).register(row, sbn);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/CommonNotifCollection.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/CommonNotifCollection.java
new file mode 100644
index 000000000000..171816fd28da
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/CommonNotifCollection.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.collection.notifcollection;
+
+import com.android.systemui.statusbar.notification.NotificationEntryManager;
+import com.android.systemui.statusbar.notification.collection.NotifPipeline;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+
+/**
+ * A notification collection that manages the list of {@link NotificationEntry}s that will be
+ * rendered.
+ *
+ * TODO: (b/145659174) Once we fully switch off {@link NotificationEntryManager} to
+ * {@link NotifPipeline}, we probably won't need this, but having it for now makes it easy to
+ * switch between the two.
+ */
+public interface CommonNotifCollection {
+ /**
+ * Registers a listener to be informed when notifications are created, added, updated, removed,
+ * or deleted.
+ */
+ void addCollectionListener(NotifCollectionListener listener);
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionListener.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionListener.java
index 6adcabd86fe6..b2c53dae16cd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionListener.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionListener.java
@@ -18,15 +18,25 @@ package com.android.systemui.statusbar.notification.collection.notifcollection;
import android.service.notification.NotificationListenerService;
-import com.android.systemui.statusbar.notification.collection.NotifCollection;
import com.android.systemui.statusbar.notification.collection.NotifCollection.CancellationReason;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
/**
- * Listener interface for {@link NotifCollection}.
+ * Listener interface for {@link NotificationEntry} events.
*/
public interface NotifCollectionListener {
/**
+ * Called whenever a new {@link NotificationEntry} is initialized. This should be used for
+ * initializing any decorated state tied to the notification.
+ *
+ * Do not reference other registered {@link NotifCollectionListener} implementations here as
+ * there is no guarantee of order and they may not have had a chance to initialize yet. Instead,
+ * use {@link #onEntryAdded} which is called after all initialization.
+ */
+ default void onEntryInit(NotificationEntry entry) {
+ }
+
+ /**
* Called whenever a notification with a new key is posted.
*/
default void onEntryAdded(NotificationEntry entry) {
@@ -44,10 +54,19 @@ public interface NotifCollectionListener {
* immediately after a user dismisses a notification: we wait until we receive confirmation from
* system server before considering the notification removed.
*/
- default void onEntryRemoved(
- NotificationEntry entry,
- @CancellationReason int reason,
- boolean removedByUser) {
+ default void onEntryRemoved(NotificationEntry entry, @CancellationReason int reason) {
+ }
+
+ /**
+ * Called whenever a {@link NotificationEntry} is considered deleted. This should be used for
+ * cleaning up any state tied to the notification.
+ *
+ * This is the deletion parallel of {@link #onEntryInit} and similarly means that you cannot
+ * expect other {@link NotifCollectionListener} implementations to still have valid state for
+ * the entry during this call. Instead, use {@link #onEntryRemoved} which will be called before
+ * deletion.
+ */
+ default void onEntryCleanUp(NotificationEntry entry) {
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt
index bd1bd860f80c..14e15031056f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt
@@ -16,8 +16,11 @@
package com.android.systemui.statusbar.notification.collection.notifcollection
+import android.service.notification.NotificationListenerService.RankingMap
import com.android.systemui.log.LogBuffer
-import com.android.systemui.log.LogLevel
+import com.android.systemui.log.LogLevel.DEBUG
+import com.android.systemui.log.LogLevel.INFO
+import com.android.systemui.log.LogLevel.WARNING
import com.android.systemui.log.dagger.NotificationLog
import javax.inject.Inject
@@ -25,7 +28,7 @@ class NotifCollectionLogger @Inject constructor(
@NotificationLog private val buffer: LogBuffer
) {
fun logNotifPosted(key: String) {
- buffer.log(TAG, LogLevel.INFO, {
+ buffer.log(TAG, INFO, {
str1 = key
}, {
"POSTED $str1"
@@ -33,7 +36,7 @@ class NotifCollectionLogger @Inject constructor(
}
fun logNotifGroupPosted(groupKey: String, batchSize: Int) {
- buffer.log(TAG, LogLevel.INFO, {
+ buffer.log(TAG, INFO, {
str1 = groupKey
int1 = batchSize
}, {
@@ -42,7 +45,7 @@ class NotifCollectionLogger @Inject constructor(
}
fun logNotifUpdated(key: String) {
- buffer.log(TAG, LogLevel.INFO, {
+ buffer.log(TAG, INFO, {
str1 = key
}, {
"UPDATED $str1"
@@ -50,13 +53,29 @@ class NotifCollectionLogger @Inject constructor(
}
fun logNotifRemoved(key: String, reason: Int) {
- buffer.log(TAG, LogLevel.INFO, {
+ buffer.log(TAG, INFO, {
str1 = key
int1 = reason
}, {
"REMOVED $str1 reason=$int1"
})
}
+
+ fun logNotifDismissed(key: String) {
+ buffer.log(TAG, INFO, {
+ str1 = key
+ }, {
+ "DISMISSED $str1"
+ })
+ }
+
+ fun logRankingMissing(key: String, rankingMap: RankingMap) {
+ buffer.log(TAG, WARNING, { str1 = key }, { "Ranking update is missing ranking for $str1" })
+ buffer.log(TAG, DEBUG, {}, { "Ranking map contents:" })
+ for (entry in rankingMap.orderedKeys) {
+ buffer.log(TAG, DEBUG, { str1 = entry }, { " $str1" })
+ }
+ }
}
private const val TAG = "NotifCollection" \ No newline at end of file
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
new file mode 100644
index 000000000000..39f4dfacc2c5
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/dagger/NotificationsModule.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.dagger;
+
+import android.content.Context;
+
+import com.android.systemui.R;
+import com.android.systemui.statusbar.FeatureFlags;
+import com.android.systemui.statusbar.notification.NotificationEntryManager;
+import com.android.systemui.statusbar.notification.collection.NotifPipeline;
+import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection;
+import com.android.systemui.statusbar.notification.init.NotificationsController;
+import com.android.systemui.statusbar.notification.init.NotificationsControllerImpl;
+import com.android.systemui.statusbar.notification.init.NotificationsControllerStub;
+
+import javax.inject.Singleton;
+
+import dagger.Lazy;
+import dagger.Module;
+import dagger.Provides;
+
+/** Module for classes related to the notifications data pipeline */
+@Module
+public class NotificationsModule {
+ /** Initializes the notification data pipeline (can be disabled via config). */
+ @Singleton
+ @Provides
+ static NotificationsController provideNotificationsController(
+ Context context,
+ Lazy<NotificationsControllerImpl> realController,
+ Lazy<NotificationsControllerStub> stubController) {
+ if (context.getResources().getBoolean(R.bool.config_renderNotifications)) {
+ return realController.get();
+ } else {
+ return stubController.get();
+ }
+ }
+
+ /**
+ * Provide the active notification collection managing the notifications to render.
+ */
+ @Provides
+ @Singleton
+ public CommonNotifCollection provideCommonNotifCollection(
+ FeatureFlags featureFlags,
+ Lazy<NotifPipeline> pipeline,
+ NotificationEntryManager entryManager) {
+ return featureFlags.isNewNotifPipelineRenderingEnabled() ? pipeline.get() : entryManager;
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsController.kt
new file mode 100644
index 000000000000..9da8b8a3fd92
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsController.kt
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.init
+
+import android.service.notification.StatusBarNotification
+import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper.SnoozeOption
+import com.android.systemui.statusbar.NotificationPresenter
+import com.android.systemui.statusbar.notification.NotificationActivityStarter
+import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl
+import com.android.systemui.statusbar.notification.stack.NotificationListContainer
+import com.android.systemui.statusbar.phone.StatusBar
+import java.io.FileDescriptor
+import java.io.PrintWriter
+
+/**
+ * The master controller for all notifications-related work
+ *
+ * Split into two implementations: [NotificationsControllerImpl] (most cases) and
+ * [NotificationsControllerStub] (for builds that disable notification rendering).
+ */
+interface NotificationsController {
+ fun initialize(
+ statusBar: StatusBar,
+ presenter: NotificationPresenter,
+ listContainer: NotificationListContainer,
+ notificationActivityStarter: NotificationActivityStarter,
+ bindRowCallback: NotificationRowBinderImpl.BindRowCallback
+ )
+
+ fun requestNotificationUpdate(reason: String)
+ fun resetUserExpandedStates()
+ fun setNotificationSnoozed(sbn: StatusBarNotification, snoozeOption: SnoozeOption)
+ fun getActiveNotificationsCount(): Int
+ fun setNotificationSnoozed(sbn: StatusBarNotification, hoursToSnooze: Int)
+ fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<String>, dumpTruck: Boolean)
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsControllerImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsControllerImpl.kt
new file mode 100644
index 000000000000..254b64ffcd90
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsControllerImpl.kt
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.init
+
+import android.service.notification.StatusBarNotification
+import com.android.systemui.bubbles.BubbleController
+import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper.SnoozeOption
+import com.android.systemui.statusbar.FeatureFlags
+import com.android.systemui.statusbar.NotificationListener
+import com.android.systemui.statusbar.NotificationPresenter
+import com.android.systemui.statusbar.notification.NotificationActivityStarter
+import com.android.systemui.statusbar.notification.NotificationClicker
+import com.android.systemui.statusbar.notification.NotificationEntryManager
+import com.android.systemui.statusbar.notification.NotificationListController
+import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl
+import com.android.systemui.statusbar.notification.collection.init.NotifPipelineInitializer
+import com.android.systemui.statusbar.notification.row.NotifBindPipelineInitializer
+import com.android.systemui.statusbar.notification.stack.NotificationListContainer
+import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper
+import com.android.systemui.statusbar.phone.NotificationGroupManager
+import com.android.systemui.statusbar.phone.StatusBar
+import com.android.systemui.statusbar.policy.DeviceProvisionedController
+import com.android.systemui.statusbar.policy.HeadsUpManager
+import com.android.systemui.statusbar.policy.RemoteInputUriController
+import dagger.Lazy
+import java.io.FileDescriptor
+import java.io.PrintWriter
+import java.util.Optional
+import javax.inject.Inject
+import javax.inject.Singleton
+
+/**
+ * Master controller for all notifications-related work
+ *
+ * At the moment exposes a number of event-handler-esque methods; these are for historical reasons.
+ * Once we migrate away from the need for such things, this class becomes primarily a place to do
+ * any initialization work that notifications require.
+ */
+@Singleton
+class NotificationsControllerImpl @Inject constructor(
+ private val featureFlags: FeatureFlags,
+ private val notificationListener: NotificationListener,
+ private val entryManager: NotificationEntryManager,
+ private val newNotifPipeline: Lazy<NotifPipelineInitializer>,
+ private val notifBindPipelineInitializer: NotifBindPipelineInitializer,
+ private val deviceProvisionedController: DeviceProvisionedController,
+ private val notificationRowBinder: NotificationRowBinderImpl,
+ private val remoteInputUriController: RemoteInputUriController,
+ private val bubbleController: BubbleController,
+ private val groupManager: NotificationGroupManager,
+ private val groupAlertTransferHelper: NotificationGroupAlertTransferHelper,
+ private val headsUpManager: HeadsUpManager
+) : NotificationsController {
+
+ override fun initialize(
+ statusBar: StatusBar,
+ presenter: NotificationPresenter,
+ listContainer: NotificationListContainer,
+ notificationActivityStarter: NotificationActivityStarter,
+ bindRowCallback: NotificationRowBinderImpl.BindRowCallback
+ ) {
+ notificationListener.registerAsSystemService()
+
+ val listController =
+ NotificationListController(
+ entryManager,
+ listContainer,
+ deviceProvisionedController)
+ listController.bind()
+
+ notificationRowBinder.setNotificationClicker(
+ NotificationClicker(
+ Optional.of(statusBar),
+ bubbleController,
+ notificationActivityStarter))
+ notificationRowBinder.setUpWithPresenter(
+ presenter,
+ listContainer,
+ headsUpManager,
+ bindRowCallback)
+
+ if (featureFlags.isNewNotifPipelineEnabled) {
+ newNotifPipeline.get().initialize(notificationListener, notificationRowBinder)
+ }
+
+ if (featureFlags.isNewNotifPipelineRenderingEnabled) {
+ // TODO
+ } else {
+ notifBindPipelineInitializer.initialize()
+ notificationRowBinder.setInflationCallback(entryManager)
+
+ remoteInputUriController.attach(entryManager)
+ groupAlertTransferHelper.bind(entryManager, groupManager)
+ headsUpManager.addListener(groupManager)
+ headsUpManager.addListener(groupAlertTransferHelper)
+ groupManager.setHeadsUpManager(headsUpManager)
+ groupAlertTransferHelper.setHeadsUpManager(headsUpManager)
+
+ entryManager.attach(notificationListener)
+ }
+ }
+
+ override fun dump(
+ fd: FileDescriptor,
+ pw: PrintWriter,
+ args: Array<String>,
+ dumpTruck: Boolean
+ ) {
+ if (dumpTruck) {
+ entryManager.dump(pw, " ")
+ }
+ groupManager.dump(fd, pw, args)
+ }
+
+ // TODO: Convert all functions below this line into listeners instead of public methods
+
+ override fun requestNotificationUpdate(reason: String) {
+ entryManager.updateNotifications(reason)
+ }
+
+ override fun resetUserExpandedStates() {
+ for (entry in entryManager.visibleNotifications) {
+ entry.resetUserExpansion()
+ }
+ }
+
+ override fun setNotificationSnoozed(sbn: StatusBarNotification, snoozeOption: SnoozeOption) {
+ if (snoozeOption.snoozeCriterion != null) {
+ notificationListener.snoozeNotification(sbn.key, snoozeOption.snoozeCriterion.id)
+ } else {
+ notificationListener.snoozeNotification(
+ sbn.key,
+ snoozeOption.minutesToSnoozeFor * 60 * 1000.toLong())
+ }
+ }
+
+ override fun getActiveNotificationsCount(): Int {
+ return entryManager.activeNotificationsCount
+ }
+
+ override fun setNotificationSnoozed(sbn: StatusBarNotification, hoursToSnooze: Int) {
+ notificationListener.snoozeNotification(
+ sbn.key,
+ hoursToSnooze * 60 * 60 * 1000.toLong())
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsControllerStub.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsControllerStub.kt
new file mode 100644
index 000000000000..ded855dd84f9
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/init/NotificationsControllerStub.kt
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.init
+
+import android.service.notification.StatusBarNotification
+import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper.SnoozeOption
+import com.android.systemui.statusbar.NotificationListener
+import com.android.systemui.statusbar.NotificationPresenter
+import com.android.systemui.statusbar.notification.NotificationActivityStarter
+import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl
+import com.android.systemui.statusbar.notification.stack.NotificationListContainer
+import com.android.systemui.statusbar.phone.StatusBar
+import java.io.FileDescriptor
+import java.io.PrintWriter
+import javax.inject.Inject
+
+/**
+ * Implementation of [NotificationsController] that's used when notifications rendering is disabled.
+ */
+class NotificationsControllerStub @Inject constructor(
+ private val notificationListener: NotificationListener
+) : NotificationsController {
+
+ override fun initialize(
+ statusBar: StatusBar,
+ presenter: NotificationPresenter,
+ listContainer: NotificationListContainer,
+ notificationActivityStarter: NotificationActivityStarter,
+ bindRowCallback: NotificationRowBinderImpl.BindRowCallback
+ ) {
+ // Always connect the listener even if notification-handling is disabled. Being a listener
+ // grants special permissions and it's not clear if other things will break if we lose those
+ notificationListener.registerAsSystemService()
+ }
+
+ override fun requestNotificationUpdate(reason: String) {
+ }
+
+ override fun resetUserExpandedStates() {
+ }
+
+ override fun setNotificationSnoozed(sbn: StatusBarNotification, snoozeOption: SnoozeOption) {
+ }
+
+ override fun setNotificationSnoozed(sbn: StatusBarNotification, hoursToSnooze: Int) {
+ }
+
+ override fun getActiveNotificationsCount(): Int {
+ return 0
+ }
+
+ override fun dump(
+ fd: FileDescriptor,
+ pw: PrintWriter,
+ args: Array<String>,
+ dumpTruck: Boolean
+ ) {
+ pw.println()
+ pw.println("Notification handling disabled")
+ pw.println()
+ }
+} \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotifEvent.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotifEvent.java
deleted file mode 100644
index 9adceb78c249..000000000000
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotifEvent.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.notification.logging;
-
-import android.annotation.IntDef;
-import android.service.notification.NotificationListenerService;
-import android.service.notification.StatusBarNotification;
-
-import com.android.systemui.log.RichEvent;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
-import com.android.systemui.statusbar.notification.collection.ShadeListBuilder;
-import com.android.systemui.statusbar.notification.collection.coalescer.GroupCoalescer;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * An event related to notifications. {@link NotifLog} stores and prints these events for debugging
- * and triaging purposes. We do not store a copy of the status bar notification nor ranking
- * here to mitigate memory usage.
- */
-public class NotifEvent extends RichEvent {
- /**
- * Initializes a rich event that includes an event type that matches with an index in the array
- * getEventLabels().
- */
- public NotifEvent init(@EventType int type, StatusBarNotification sbn,
- NotificationListenerService.Ranking ranking, String reason) {
- StringBuilder extraInfo = new StringBuilder(reason);
- if (sbn != null) {
- extraInfo.append(" " + sbn.getKey());
- }
-
- if (ranking != null) {
- extraInfo.append(" Ranking=");
- extraInfo.append(ranking.getRank());
- }
- super.init(INFO, type, extraInfo.toString());
- return this;
- }
-
- /**
- * Event labels for ListBuilderEvents
- * Index corresponds to an # in {@link EventType}
- */
- @Override
- public String[] getEventLabels() {
- assert (TOTAL_EVENT_LABELS
- == (TOTAL_NEM_EVENT_TYPES
- + TOTAL_LIST_BUILDER_EVENT_TYPES
- + TOTAL_COALESCER_EVENT_TYPES));
- return EVENT_LABELS;
- }
-
- /**
- * @return if this event occurred in {@link ShadeListBuilder}
- */
- static boolean isListBuilderEvent(@EventType int type) {
- return isBetweenInclusive(type, 0, TOTAL_LIST_BUILDER_EVENT_TYPES);
- }
-
- /**
- * @return if this event occurred in {@link NotificationEntryManager}
- */
- static boolean isNemEvent(@EventType int type) {
- return isBetweenInclusive(type, TOTAL_LIST_BUILDER_EVENT_TYPES,
- TOTAL_LIST_BUILDER_EVENT_TYPES + TOTAL_NEM_EVENT_TYPES);
- }
-
- private static boolean isBetweenInclusive(int x, int a, int b) {
- return x >= a && x <= b;
- }
-
- @IntDef({
- // NotifListBuilder events:
- WARN,
- ON_BUILD_LIST,
- START_BUILD_LIST,
- DISPATCH_FINAL_LIST,
- LIST_BUILD_COMPLETE,
- PRE_GROUP_FILTER_INVALIDATED,
- PROMOTER_INVALIDATED,
- SECTION_INVALIDATED,
- COMPARATOR_INVALIDATED,
- PARENT_CHANGED,
- FILTER_CHANGED,
- PROMOTER_CHANGED,
- PRE_RENDER_FILTER_INVALIDATED,
-
- // NotificationEntryManager events:
- NOTIF_ADDED,
- NOTIF_REMOVED,
- NOTIF_UPDATED,
- FILTER,
- SORT,
- FILTER_AND_SORT,
- NOTIF_VISIBILITY_CHANGED,
- LIFETIME_EXTENDED,
- REMOVE_INTERCEPTED,
- INFLATION_ABORTED,
- INFLATED,
-
- // GroupCoalescer
- COALESCED_EVENT,
- EARLY_BATCH_EMIT,
- EMIT_EVENT_BATCH
- })
- @Retention(RetentionPolicy.SOURCE)
- public @interface EventType {}
-
- private static final String[] EVENT_LABELS =
- new String[]{
- // NotifListBuilder labels:
- "Warning",
- "OnBuildList",
- "StartBuildList",
- "DispatchFinalList",
- "ListBuildComplete",
- "FilterInvalidated",
- "PromoterInvalidated",
- "SectionInvalidated",
- "ComparatorInvalidated",
- "ParentChanged",
- "FilterChanged",
- "PromoterChanged",
- "FinalFilterInvalidated",
- "SectionerChanged",
-
- // NEM event labels:
- "NotifAdded",
- "NotifRemoved",
- "NotifUpdated",
- "Filter",
- "Sort",
- "FilterAndSort",
- "NotifVisibilityChanged",
- "LifetimeExtended",
- "RemoveIntercepted",
- "InflationAborted",
- "Inflated",
-
- // GroupCoalescer labels:
- "CoalescedEvent",
- "EarlyBatchEmit",
- "EmitEventBatch",
- "BatchMaxTimeout"
- };
-
- private static final int TOTAL_EVENT_LABELS = EVENT_LABELS.length;
-
- /**
- * Events related to {@link ShadeListBuilder}
- */
- public static final int WARN = 0;
- public static final int ON_BUILD_LIST = 1;
- public static final int START_BUILD_LIST = 2;
- public static final int DISPATCH_FINAL_LIST = 3;
- public static final int LIST_BUILD_COMPLETE = 4;
- public static final int PRE_GROUP_FILTER_INVALIDATED = 5;
- public static final int PROMOTER_INVALIDATED = 6;
- public static final int SECTION_INVALIDATED = 7;
- public static final int COMPARATOR_INVALIDATED = 8;
- public static final int PARENT_CHANGED = 9;
- public static final int FILTER_CHANGED = 10;
- public static final int PROMOTER_CHANGED = 11;
- public static final int PRE_RENDER_FILTER_INVALIDATED = 12;
- public static final int SECTION_CHANGED = 13;
- private static final int TOTAL_LIST_BUILDER_EVENT_TYPES = 14;
-
- /**
- * Events related to {@link NotificationEntryManager}
- */
- private static final int NEM_EVENT_START_INDEX = TOTAL_LIST_BUILDER_EVENT_TYPES;
- public static final int NOTIF_ADDED = NEM_EVENT_START_INDEX;
- public static final int NOTIF_REMOVED = NEM_EVENT_START_INDEX + 1;
- public static final int NOTIF_UPDATED = NEM_EVENT_START_INDEX + 2;
- public static final int FILTER = NEM_EVENT_START_INDEX + 3;
- public static final int SORT = NEM_EVENT_START_INDEX + 4;
- public static final int FILTER_AND_SORT = NEM_EVENT_START_INDEX + 5;
- public static final int NOTIF_VISIBILITY_CHANGED = NEM_EVENT_START_INDEX + 6;
- public static final int LIFETIME_EXTENDED = NEM_EVENT_START_INDEX + 7;
- // unable to remove notif - removal intercepted by {@link NotificationRemoveInterceptor}
- public static final int REMOVE_INTERCEPTED = NEM_EVENT_START_INDEX + 8;
- public static final int INFLATION_ABORTED = NEM_EVENT_START_INDEX + 9;
- public static final int INFLATED = NEM_EVENT_START_INDEX + 10;
- private static final int TOTAL_NEM_EVENT_TYPES = 11;
-
- /**
- * Events related to {@link GroupCoalescer}
- */
- private static final int COALESCER_EVENT_START_INDEX = NEM_EVENT_START_INDEX
- + TOTAL_NEM_EVENT_TYPES;
- public static final int COALESCED_EVENT = COALESCER_EVENT_START_INDEX;
- public static final int EARLY_BATCH_EMIT = COALESCER_EVENT_START_INDEX + 1;
- public static final int EMIT_EVENT_BATCH = COALESCER_EVENT_START_INDEX + 2;
- public static final int BATCH_MAX_TIMEOUT = COALESCER_EVENT_START_INDEX + 3;
- private static final int TOTAL_COALESCER_EVENT_TYPES = 3;
-}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotifLog.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotifLog.java
deleted file mode 100644
index 299d628d0fd2..000000000000
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/logging/NotifLog.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.notification.logging;
-
-import android.os.SystemProperties;
-import android.service.notification.NotificationListenerService.Ranking;
-import android.service.notification.StatusBarNotification;
-
-import com.android.systemui.DumpController;
-import com.android.systemui.log.SysuiLog;
-import com.android.systemui.statusbar.notification.collection.NotificationEntry;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-/**
- * Logs systemui notification events for debugging and triaging purposes. Logs are dumped in
- * bugreports or on demand:
- * adb shell dumpsys activity service com.android.systemui/.SystemUIService \
- * dependency DumpController NotifLog
- */
-@Singleton
-public class NotifLog extends SysuiLog<NotifEvent> {
- private static final String TAG = "NotifLog";
- private static final boolean SHOW_NEM_LOGS =
- SystemProperties.getBoolean("persist.sysui.log.notif.nem", true);
- private static final boolean SHOW_LIST_BUILDER_LOGS =
- SystemProperties.getBoolean("persist.sysui.log.notif.listbuilder", true);
-
- private static final int MAX_DOZE_DEBUG_LOGS = 400;
- private static final int MAX_DOZE_LOGS = 50;
-
- private NotifEvent mRecycledEvent;
-
- @Inject
- public NotifLog(DumpController dumpController) {
- super(dumpController, TAG, MAX_DOZE_DEBUG_LOGS, MAX_DOZE_LOGS);
- }
-
- /**
- * Logs a {@link NotifEvent} with a notification, ranking and message.
- * Uses the last recycled event if available.
- * @return true if successfully logged, else false
- */
- public void log(@NotifEvent.EventType int eventType,
- StatusBarNotification sbn, Ranking ranking, String msg) {
- if (!mEnabled
- || (NotifEvent.isListBuilderEvent(eventType) && !SHOW_LIST_BUILDER_LOGS)
- || (NotifEvent.isNemEvent(eventType) && !SHOW_NEM_LOGS)) {
- return;
- }
-
- if (mRecycledEvent != null) {
- mRecycledEvent = log(mRecycledEvent.init(eventType, sbn, ranking, msg));
- } else {
- mRecycledEvent = log(new NotifEvent().init(eventType, sbn, ranking, msg));
- }
- }
-
- /**
- * Logs a {@link NotifEvent} with no extra information aside from the event type
- */
- public void log(@NotifEvent.EventType int eventType) {
- log(eventType, null, null, "");
- }
-
- /**
- * Logs a {@link NotifEvent} with a message
- */
- public void log(@NotifEvent.EventType int eventType, String msg) {
- log(eventType, null, null, msg);
- }
-
- /**
- * Logs a {@link NotifEvent} with a entry
- */
- public void log(@NotifEvent.EventType int eventType, NotificationEntry entry) {
- log(eventType, entry.getSbn(), entry.getRanking(), "");
- }
-
- /**
- * Logs a {@link NotifEvent} with a NotificationEntry and message
- */
- public void log(@NotifEvent.EventType int eventType, NotificationEntry entry, String msg) {
- log(eventType, entry.getSbn(), entry.getRanking(), msg);
- }
-
- /**
- * Logs a {@link NotifEvent} with a notification and message
- */
- public void log(@NotifEvent.EventType int eventType, StatusBarNotification sbn, String msg) {
- log(eventType, sbn, null, msg);
- }
-
- /**
- * Logs a {@link NotifEvent} with a ranking and message
- */
- public void log(@NotifEvent.EventType int eventType, Ranking ranking, String msg) {
- log(eventType, null, ranking, msg);
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHubNotificationListener.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHubNotificationListener.kt
index 88b41471a063..fc221d43b3dd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHubNotificationListener.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/people/PeopleHubNotificationListener.kt
@@ -93,8 +93,7 @@ class PeopleHubDataSourceImpl @Inject constructor(
private val peopleHubManagerForUser = SparseArray<PeopleHubManager>()
private val notificationEntryListener = object : NotificationEntryListener {
- override fun onEntryInflated(entry: NotificationEntry, inflatedFlags: Int) =
- addVisibleEntry(entry)
+ override fun onEntryInflated(entry: NotificationEntry) = addVisibleEntry(entry)
override fun onEntryReinflated(entry: NotificationEntry) = addVisibleEntry(entry)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/BindRequester.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/BindRequester.java
new file mode 100644
index 000000000000..1cf6b4f2321c
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/BindRequester.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.os.CancellationSignal;
+
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.row.NotifBindPipeline.BindCallback;
+
+/**
+ * A {@link BindRequester} is a general superclass for something that notifies
+ * {@link NotifBindPipeline} when it needs it to kick off a bind run.
+ */
+public abstract class BindRequester {
+ private @Nullable BindRequestListener mBindRequestListener;
+
+ /**
+ * Notifies the listener that some parameters/state has changed for some notification and that
+ * content needs to be bound again.
+ *
+ * The caller can also specify a callback for when the entire bind pipeline completes, i.e.
+ * when the change is fully propagated to the final view. The caller can cancel this
+ * callback with the returned cancellation signal.
+ *
+ * @param callback callback after bind completely finishes
+ * @return cancellation signal to cancel callback
+ */
+ public final CancellationSignal requestRebind(
+ @NonNull NotificationEntry entry,
+ @Nullable BindCallback callback) {
+ CancellationSignal signal = new CancellationSignal();
+ if (mBindRequestListener != null) {
+ mBindRequestListener.onBindRequest(entry, signal, callback);
+ }
+ return signal;
+ }
+
+ final void setBindRequestListener(BindRequestListener listener) {
+ mBindRequestListener = listener;
+ }
+
+ /**
+ * Listener interface for when content needs to be bound again.
+ */
+ public interface BindRequestListener {
+
+ /**
+ * Called when {@link #requestRebind} is called.
+ *
+ * @param entry notification that has outdated content
+ * @param signal cancellation signal to cancel callback
+ * @param callback callback after content is fully updated
+ */
+ void onBindRequest(
+ @NonNull NotificationEntry entry,
+ @NonNull CancellationSignal signal,
+ @Nullable BindCallback callback);
+
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/BindStage.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/BindStage.java
new file mode 100644
index 000000000000..29447caa1240
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/BindStage.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row;
+
+import android.annotation.MainThread;
+import android.util.ArrayMap;
+
+import androidx.annotation.NonNull;
+
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+
+import java.util.Map;
+
+/**
+ * A {@link BindStage} is an abstraction for a unit of work in inflating/binding/unbinding
+ * views to a notification. Used by {@link NotifBindPipeline}.
+ *
+ * Clients may also use {@link #getStageParams} to provide parameters for this stage for a given
+ * notification and request a rebind.
+ *
+ * @param <Params> params to do this stage
+ */
+@MainThread
+public abstract class BindStage<Params> extends BindRequester {
+
+ private Map<NotificationEntry, Params> mContentParams = new ArrayMap<>();
+
+ /**
+ * Execute the stage asynchronously.
+ *
+ * @param row notification top-level view to bind views to
+ * @param callback callback after stage finishes
+ */
+ protected abstract void executeStage(
+ @NonNull NotificationEntry entry,
+ @NonNull ExpandableNotificationRow row,
+ @NonNull StageCallback callback);
+
+ /**
+ * Abort the stage if in progress.
+ *
+ * @param row notification top-level view to bind views to
+ */
+ protected abstract void abortStage(
+ @NonNull NotificationEntry entry,
+ @NonNull ExpandableNotificationRow row);
+
+ /**
+ * Get the stage parameters for the entry. Clients should use this to modify how the stage
+ * handles the notification content.
+ */
+ public final Params getStageParams(@NonNull NotificationEntry entry) {
+ Params params = mContentParams.get(entry);
+ if (params == null) {
+ throw new IllegalStateException(
+ String.format("Entry does not have any stage parameters. key: %s",
+ entry.getKey()));
+ }
+ return params;
+ }
+
+ /**
+ * Create a params entry for the notification for this stage.
+ */
+ final void createStageParams(@NonNull NotificationEntry entry) {
+ mContentParams.put(entry, newStageParams());
+ }
+
+ /**
+ * Delete params entry for notification.
+ */
+ final void deleteStageParams(@NonNull NotificationEntry entry) {
+ mContentParams.remove(entry);
+ }
+
+ /**
+ * Create a new, empty stage params object.
+ */
+ protected abstract Params newStageParams();
+
+ /**
+ * Interface for callback.
+ */
+ interface StageCallback {
+ /**
+ * Callback for when the stage is complete.
+ */
+ void onStageFinished(NotificationEntry entry);
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/DungeonRow.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/DungeonRow.kt
new file mode 100644
index 000000000000..373457d4e336
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/DungeonRow.kt
@@ -0,0 +1,43 @@
+/*
+* Copyright (C) 2020 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+package com.android.systemui.statusbar.notification.row
+
+import android.content.Context
+import android.util.AttributeSet
+import android.widget.LinearLayout
+import android.widget.TextView
+import com.android.systemui.R
+import com.android.systemui.statusbar.StatusBarIconView
+import com.android.systemui.statusbar.notification.collection.NotificationEntry
+
+class DungeonRow(context: Context, attrs: AttributeSet) : LinearLayout(context, attrs) {
+ var entry: NotificationEntry? = null
+ set(value) {
+ field = value
+ update()
+ }
+
+ private fun update() {
+ (findViewById(R.id.app_name) as TextView).apply {
+ text = entry?.row?.appName
+ }
+
+ (findViewById(R.id.icon) as StatusBarIconView).apply {
+ set(entry?.icon?.statusBarIcon)
+ }
+ }
+}
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 b71bedaca707..c34bba782ad5 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
@@ -19,8 +19,6 @@ package com.android.systemui.statusbar.notification.row;
import static com.android.systemui.statusbar.notification.ActivityLaunchAnimator.ExpandAnimationParameters;
import static com.android.systemui.statusbar.notification.row.NotificationContentView.VISIBLE_TYPE_CONTRACTED;
import static com.android.systemui.statusbar.notification.row.NotificationContentView.VISIBLE_TYPE_HEADSUP;
-import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_CONTRACTED;
-import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_EXPANDED;
import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_HEADS_UP;
import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_PUBLIC;
@@ -88,8 +86,6 @@ import com.android.systemui.statusbar.notification.NotificationUtils;
import com.android.systemui.statusbar.notification.VisualStabilityManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.logging.NotificationCounters;
-import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.BindParams;
-import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationCallback;
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationViewWrapper;
import com.android.systemui.statusbar.notification.stack.AmbientState;
@@ -127,14 +123,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
public static final float DEFAULT_HEADER_VISIBLE_AMOUNT = 1.0f;
private static final long RECENTLY_ALERTED_THRESHOLD_MS = TimeUnit.SECONDS.toMillis(30);
- /**
- * Content views that must be inflated at all times.
- */
- @InflationFlag
- static final int REQUIRED_INFLATION_FLAGS =
- FLAG_CONTENT_VIEW_CONTRACTED
- | FLAG_CONTENT_VIEW_EXPANDED;
-
private boolean mUpdateBackgroundOnUpdate;
private boolean mNotificationTranslationFinished = false;
@@ -149,7 +137,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
private StatusBarStateController mStatusbarStateController;
private KeyguardBypassController mBypassController;
private LayoutListener mLayoutListener;
- private NotificationRowContentBinder mNotificationContentBinder;
+ private RowContentBindStage mRowContentBindStage;
private int mIconTransformContentShift;
private int mIconTransformContentShiftNoIcon;
private int mMaxHeadsUpHeightBeforeN;
@@ -244,10 +232,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
private ExpandableNotificationRow mNotificationParent;
private OnExpandClickListener mOnExpandClickListener;
private View.OnClickListener mOnAppOpsClickListener;
- private InflationCallback mInflationCallback;
private boolean mIsChildInGroup;
- private @InflationFlag int mInflationFlags = REQUIRED_INFLATION_FLAGS;
- private final BindParams mBindParams = new BindParams();
// Listener will be called when receiving a long click event.
// Use #setLongPressPosition to optionally assign positional data with the long press.
@@ -460,24 +445,25 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
}
/**
- * Inflate views based off the inflation flags set. Inflation happens asynchronously.
- */
- public void inflateViews() {
- mNotificationContentBinder.bindContent(mEntry, this, mInflationFlags, mBindParams,
- false /* forceInflate */, mInflationCallback);
- }
-
- /**
* Marks a content view as freeable, setting it so that future inflations do not reinflate
* and ensuring that the view is freed when it is safe to remove.
*
+ * TODO: This should be moved to the respective coordinator and call
+ * {@link RowContentBindParams#freeContentViews} directly after disappear animation
+ * finishes instead of depending on binding API to know when it's "safe".
+ *
* @param inflationFlag flag corresponding to the content view to be freed
*/
public void freeContentViewWhenSafe(@InflationFlag int inflationFlag) {
// View should not be reinflated in the future
- clearInflationFlags(inflationFlag);
- Runnable freeViewRunnable =
- () -> mNotificationContentBinder.unbindContent(mEntry, this, inflationFlag);
+ Runnable freeViewRunnable = () -> {
+ // Possible for notification to be removed after free request.
+ if (!isRemoved()) {
+ RowContentBindParams params = mRowContentBindStage.getStageParams(mEntry);
+ params.freeContentViews(inflationFlag);
+ mRowContentBindStage.requestRebind(mEntry, null /* callback */);
+ }
+ };
switch (inflationFlag) {
case FLAG_CONTENT_VIEW_HEADS_UP:
getPrivateLayout().performWhenContentInactive(VISIBLE_TYPE_HEADSUP,
@@ -492,35 +478,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
}
/**
- * Set flags for content views that should be inflated
- *
- * @param flags flags to inflate
- */
- public void setInflationFlags(@InflationFlag int flags) {
- mInflationFlags |= flags;
- }
-
- /**
- * Clear flags for content views that should not be inflated
- *
- * @param flags flags that should not be inflated
- */
- public void clearInflationFlags(@InflationFlag int flags) {
- mInflationFlags &= ~flags;
- mInflationFlags |= REQUIRED_INFLATION_FLAGS;
- }
-
- /**
- * Whether or not a content view should be inflated.
- *
- * @param flag the flag corresponding to the content view
- * @return true if the flag is set, false otherwise
- */
- public boolean isInflationFlagSet(@InflationFlag int flag) {
- return ((mInflationFlags & flag) != 0);
- }
-
- /**
* Caches whether or not this row contains a system notification. Note, this is only cached
* once per notification as the packageInfo can't technically change for a notification row.
*/
@@ -745,6 +702,11 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
mPrivateLayout.setRemoteInputController(r);
}
+
+ String getAppName() {
+ return mAppName;
+ }
+
public void addChildNotification(ExpandableNotificationRow row) {
addChildNotification(row, -1);
}
@@ -833,13 +795,13 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
}
mNotificationParent = isChildInGroup ? parent : null;
mPrivateLayout.setIsChildInGroup(isChildInGroup);
- mBindParams.isChildInGroup = isChildInGroup;
+ // TODO: Move inflation logic out of this call
if (mIsChildInGroup != isChildInGroup) {
mIsChildInGroup = isChildInGroup;
if (mIsLowPriority) {
- int flags = FLAG_CONTENT_VIEW_CONTRACTED | FLAG_CONTENT_VIEW_EXPANDED;
- mNotificationContentBinder.bindContent(mEntry, this, flags, mBindParams,
- false /* forceInflate */, mInflationCallback);
+ RowContentBindParams params = mRowContentBindStage.getStageParams(mEntry);
+ params.setUseLowPriority(mIsLowPriority);
+ mRowContentBindStage.requestRebind(mEntry, null /* callback */);
}
}
resetBackgroundAlpha();
@@ -1238,8 +1200,10 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
l.reInflateViews();
}
mEntry.getSbn().clearPackageContext();
- mNotificationContentBinder.bindContent(mEntry, this, mInflationFlags, mBindParams,
- true /* forceInflate */, mInflationCallback);
+ // TODO: Move content inflation logic out of this call
+ RowContentBindParams params = mRowContentBindStage.getStageParams(mEntry);
+ params.setNeedsReinflation(true);
+ mRowContentBindStage.requestRebind(mEntry, null /* callback */);
}
@Override
@@ -1593,7 +1557,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
public void setIsLowPriority(boolean isLowPriority) {
mIsLowPriority = isLowPriority;
mPrivateLayout.setIsLowPriority(isLowPriority);
- mBindParams.isLowPriority = mIsLowPriority;
if (mChildrenContainer != null) {
mChildrenContainer.setIsLowPriority(isLowPriority);
}
@@ -1603,36 +1566,25 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
return mIsLowPriority;
}
- public void setUseIncreasedCollapsedHeight(boolean use) {
+ public void setUsesIncreasedCollapsedHeight(boolean use) {
mUseIncreasedCollapsedHeight = use;
- mBindParams.usesIncreasedHeight = use;
}
- public void setUseIncreasedHeadsUpHeight(boolean use) {
+ public void setUsesIncreasedHeadsUpHeight(boolean use) {
mUseIncreasedHeadsUpHeight = use;
- mBindParams.usesIncreasedHeadsUpHeight = use;
- }
-
- /**
- * Set callback for notification content inflation
- *
- * @param callback inflation callback
- */
- public void setInflationCallback(InflationCallback callback) {
- mInflationCallback = callback;
}
public void setNeedsRedaction(boolean needsRedaction) {
+ // TODO: Move inflation logic out of this call and remove this method
if (mNeedsRedaction != needsRedaction) {
mNeedsRedaction = needsRedaction;
+ RowContentBindParams params = mRowContentBindStage.getStageParams(mEntry);
if (needsRedaction) {
- setInflationFlags(FLAG_CONTENT_VIEW_PUBLIC);
- mNotificationContentBinder.bindContent(mEntry, this, FLAG_CONTENT_VIEW_PUBLIC,
- mBindParams, false /* forceInflate */, mInflationCallback);
+ params.requireContentViews(FLAG_CONTENT_VIEW_PUBLIC);
} else {
- clearInflationFlags(FLAG_CONTENT_VIEW_PUBLIC);
- freeContentViewWhenSafe(FLAG_CONTENT_VIEW_PUBLIC);
+ params.freeContentViews(FLAG_CONTENT_VIEW_PUBLIC);
}
+ mRowContentBindStage.requestRebind(mEntry, null /* callback */);
}
}
@@ -1659,7 +1611,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
KeyguardBypassController bypassController,
NotificationGroupManager groupManager,
HeadsUpManager headsUpManager,
- NotificationRowContentBinder rowContentBinder,
+ RowContentBindStage rowContentBindStage,
OnExpandClickListener onExpandClickListener) {
mAppName = appName;
if (mMenuRow != null && mMenuRow.getMenuView() != null) {
@@ -1671,7 +1623,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
mGroupManager = groupManager;
mPrivateLayout.setGroupManager(groupManager);
mHeadsUpManager = headsUpManager;
- mNotificationContentBinder = rowContentBinder;
+ mRowContentBindStage = rowContentBindStage;
mOnExpandClickListener = onExpandClickListener;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java
index 28f4136d5ecb..049cafa4ccde 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java
@@ -93,7 +93,7 @@ public abstract class ExpandableOutlineView extends ExpandableView {
} else {
Path clipPath = getClipPath(false /* ignoreTranslation */);
if (clipPath != null) {
- outline.setConvexPath(clipPath);
+ outline.setPath(clipPath);
}
}
outline.setAlpha(mOutlineAlpha);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ForegroundServiceDungeonView.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ForegroundServiceDungeonView.kt
new file mode 100644
index 000000000000..17396ad31ba2
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ForegroundServiceDungeonView.kt
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.View
+
+import com.android.systemui.R
+
+class ForegroundServiceDungeonView(context: Context, attrs: AttributeSet)
+ : StackScrollerDecorView(context, attrs) {
+ override fun findContentView(): View? {
+ return findViewById(R.id.foreground_service_dungeon)
+ }
+
+ override fun findSecondaryView(): View? {
+ return null
+ }
+
+ override fun setVisible(visible: Boolean, animate: Boolean) {
+ // Visibility is controlled by the ForegroundServiceSectionController
+ }
+} \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipeline.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipeline.java
new file mode 100644
index 000000000000..af2d0844412a
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipeline.java
@@ -0,0 +1,207 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row;
+
+import android.util.ArrayMap;
+import android.util.ArraySet;
+import android.widget.FrameLayout;
+
+import androidx.annotation.MainThread;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.os.CancellationSignal;
+
+import com.android.internal.statusbar.NotificationVisibility;
+import com.android.systemui.statusbar.notification.NotificationEntryListener;
+import com.android.systemui.statusbar.notification.NotificationEntryManager;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinder;
+import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
+
+import java.util.Map;
+import java.util.Set;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+/**
+ * {@link NotifBindPipeline} is responsible for converting notifications from their data form to
+ * their actual inflated views. It is essentially a control class that composes notification view
+ * binding logic (i.e. {@link BindStage}) in response to explicit bind requests. At the end of the
+ * pipeline, the notification's bound views are guaranteed to be correct and up-to-date, and any
+ * registered callbacks will be called.
+ *
+ * The pipeline ensures that a notification's top-level view and its content views are bound.
+ * Currently, a notification's top-level view, the {@link ExpandableNotificationRow} is essentially
+ * just a {@link FrameLayout} for various different content views that are switched in and out as
+ * appropriate. These include a contracted view, expanded view, heads up view, and sensitive view on
+ * keyguard. See {@link InflationFlag}. These content views themselves can have child views added
+ * on depending on different factors. For example, notification actions and smart replies are views
+ * that are dynamically added to these content views after they're inflated. Finally, aside from
+ * the app provided content views, System UI itself also provides some content views that are shown
+ * occasionally (e.g. {@link NotificationGuts}). Many of these are business logic specific views
+ * and the requirements surrounding them may change over time, so the pipeline must handle
+ * composing the logic as necessary.
+ *
+ * Note that bind requests do not only occur from add/updates from updates from the app. For
+ * example, the user may make changes to device settings (e.g. sensitive notifications on lock
+ * screen) or we may want to make certain optimizations for the sake of memory or performance (e.g
+ * freeing views when not visible). Oftentimes, we also need to wait for these changes to complete
+ * before doing something else (e.g. moving a notification to the top of the screen to heads up).
+ * The pipeline thus handles bind requests from across the system and provides a way for
+ * requesters to know when the change is propagated to the view.
+ *
+ * Right now, we only support one attached {@link BindStage} which just does all the binding but we
+ * should eventually support multiple stages once content inflation is made more modular.
+ * In particular, row inflation/binding, which is handled by {@link NotificationRowBinder} should
+ * probably be moved here in the future as a stage. Right now, the pipeline just manages content
+ * views and assumes that a row is given to it when it's inflated.
+ */
+@MainThread
+@Singleton
+public final class NotifBindPipeline {
+ private final Map<NotificationEntry, BindEntry> mBindEntries = new ArrayMap<>();
+ private BindStage mStage;
+
+ @Inject
+ NotifBindPipeline(NotificationEntryManager entryManager) {
+ entryManager.addNotificationEntryListener(mEntryListener);
+ }
+
+ /**
+ * Set the bind stage for binding notification row content.
+ */
+ public void setStage(
+ BindStage stage) {
+ mStage = stage;
+ mStage.setBindRequestListener(this::onBindRequested);
+ }
+
+ /**
+ * Start managing the row's content for a given notification.
+ */
+ public void manageRow(
+ @NonNull NotificationEntry entry,
+ @NonNull ExpandableNotificationRow row) {
+ final BindEntry bindEntry = getBindEntry(entry);
+ bindEntry.row = row;
+ if (bindEntry.invalidated) {
+ startPipeline(entry);
+ }
+ }
+
+ private void onBindRequested(
+ @NonNull NotificationEntry entry,
+ @NonNull CancellationSignal signal,
+ @Nullable BindCallback callback) {
+ final BindEntry bindEntry = getBindEntry(entry);
+ if (bindEntry == null) {
+ // Invalidating views for a notification that is not active.
+ return;
+ }
+
+ bindEntry.invalidated = true;
+
+ // Put in new callback.
+ if (callback != null) {
+ final Set<BindCallback> callbacks = bindEntry.callbacks;
+ callbacks.add(callback);
+ signal.setOnCancelListener(() -> callbacks.remove(callback));
+ }
+
+ startPipeline(entry);
+ }
+
+ /**
+ * Run the pipeline for the notification, ensuring all views are bound when finished. Call all
+ * callbacks when the run finishes. If a run is already in progress, it is restarted.
+ */
+ private void startPipeline(NotificationEntry entry) {
+ if (mStage == null) {
+ throw new IllegalStateException("No stage was ever set on the pipeline");
+ }
+
+ final BindEntry bindEntry = mBindEntries.get(entry);
+ final ExpandableNotificationRow row = bindEntry.row;
+ if (row == null) {
+ // Row is not managed yet but may be soon. Stop for now.
+ return;
+ }
+
+ mStage.abortStage(entry, row);
+ mStage.executeStage(entry, row, (en) -> onPipelineComplete(en));
+ }
+
+ private void onPipelineComplete(NotificationEntry entry) {
+ final BindEntry bindEntry = getBindEntry(entry);
+
+ bindEntry.invalidated = false;
+
+ final Set<BindCallback> callbacks = bindEntry.callbacks;
+ for (BindCallback cb : callbacks) {
+ cb.onBindFinished(entry);
+ }
+ callbacks.clear();
+ }
+
+ //TODO: Move this to onManageEntry hook when we split that from add/remove
+ private final NotificationEntryListener mEntryListener = new NotificationEntryListener() {
+ @Override
+ public void onPendingEntryAdded(NotificationEntry entry) {
+ mBindEntries.put(entry, new BindEntry());
+ mStage.createStageParams(entry);
+ }
+
+ @Override
+ public void onEntryRemoved(NotificationEntry entry,
+ @Nullable NotificationVisibility visibility,
+ boolean removedByUser) {
+ BindEntry bindEntry = mBindEntries.remove(entry);
+ ExpandableNotificationRow row = bindEntry.row;
+ if (row != null) {
+ mStage.abortStage(entry, row);
+ }
+ mStage.deleteStageParams(entry);
+ }
+ };
+
+ private @NonNull BindEntry getBindEntry(NotificationEntry entry) {
+ final BindEntry bindEntry = mBindEntries.get(entry);
+ if (bindEntry == null) {
+ throw new IllegalStateException(
+ String.format("Attempting bind on an inactive notification. key: %s",
+ entry.getKey()));
+ }
+ return bindEntry;
+ }
+
+ /**
+ * Interface for bind callback.
+ */
+ public interface BindCallback {
+ /**
+ * Called when all views are fully bound on the notification.
+ */
+ void onBindFinished(NotificationEntry entry);
+ }
+
+ private class BindEntry {
+ public ExpandableNotificationRow row;
+ public final Set<BindCallback> callbacks = new ArraySet<>();
+ public boolean invalidated;
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineInitializer.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineInitializer.java
new file mode 100644
index 000000000000..7754991557ea
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineInitializer.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row;
+
+import javax.inject.Inject;
+
+/**
+ * Initialize {@link NotifBindPipeline} with all its mandatory stages and dynamically added stages.
+ *
+ * In the future, coordinators should be able to register their own {@link BindStage} to the
+ * {@link NotifBindPipeline}.
+ */
+public class NotifBindPipelineInitializer {
+ NotifBindPipeline mNotifBindPipeline;
+ RowContentBindStage mRowContentBindStage;
+
+ @Inject
+ NotifBindPipelineInitializer(
+ NotifBindPipeline pipeline,
+ RowContentBindStage stage) {
+ mNotifBindPipeline = pipeline;
+ mRowContentBindStage = stage;
+ // TODO: Inject coordinators and allow them to add BindStages in initialize
+ }
+
+ /**
+ * Hooks up stages to the pipeline.
+ */
+ public void initialize() {
+ // Mandatory bind stages
+ mNotifBindPipeline.setStage(mRowContentBindStage);
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifRemoteViewCacheImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifRemoteViewCacheImpl.java
index a6e5c2b79968..b62dfa8a20f9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifRemoteViewCacheImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifRemoteViewCacheImpl.java
@@ -22,10 +22,9 @@ import android.widget.RemoteViews;
import androidx.annotation.Nullable;
-import com.android.internal.statusbar.NotificationVisibility;
-import com.android.systemui.statusbar.notification.NotificationEntryListener;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection;
+import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
import java.util.Map;
@@ -40,8 +39,8 @@ public class NotifRemoteViewCacheImpl implements NotifRemoteViewCache {
new ArrayMap<>();
@Inject
- NotifRemoteViewCacheImpl(NotificationEntryManager entryManager) {
- entryManager.addNotificationEntryListener(mEntryListener);
+ NotifRemoteViewCacheImpl(CommonNotifCollection collection) {
+ collection.addCollectionListener(mCollectionListener);
}
@Override
@@ -93,17 +92,14 @@ public class NotifRemoteViewCacheImpl implements NotifRemoteViewCache {
contentViews.clear();
}
- private final NotificationEntryListener mEntryListener = new NotificationEntryListener() {
+ private final NotifCollectionListener mCollectionListener = new NotifCollectionListener() {
@Override
- public void onPendingEntryAdded(NotificationEntry entry) {
+ public void onEntryInit(NotificationEntry entry) {
mNotifCachedContentViews.put(entry, new SparseArray<>());
}
@Override
- public void onEntryRemoved(
- NotificationEntry entry,
- @Nullable NotificationVisibility visibility,
- boolean removedByUser) {
+ public void onEntryCleanUp(NotificationEntry entry) {
mNotifCachedContentViews.remove(entry);
}
};
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 e1a6747b5398..566da65e37f3 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
@@ -68,7 +68,7 @@ public class NotificationContentInflater implements NotificationRowContentBinder
private final NotifRemoteViewCache mRemoteViewCache;
@Inject
- public NotificationContentInflater(
+ NotificationContentInflater(
NotifRemoteViewCache remoteViewCache,
NotificationRemoteInputManager remoteInputManager) {
mRemoteViewCache = remoteViewCache;
@@ -575,7 +575,7 @@ public class NotificationContentInflater implements NotificationRowContentBinder
entry.headsUpStatusBarText = result.headsUpStatusBarText;
entry.headsUpStatusBarTextPublic = result.headsUpStatusBarTextPublic;
if (endListener != null) {
- endListener.onAsyncInflationFinished(entry, reInflateFlags);
+ endListener.onAsyncInflationFinished(entry);
}
return true;
}
@@ -641,7 +641,7 @@ public class NotificationContentInflater implements NotificationRowContentBinder
private final boolean mUsesIncreasedHeight;
private final InflationCallback mCallback;
private final boolean mUsesIncreasedHeadsUpHeight;
- private @InflationFlag int mReInflateFlags;
+ private final @InflationFlag int mReInflateFlags;
private final NotifRemoteViewCache mRemoteViewCache;
private ExpandableNotificationRow mRow;
private Exception mError;
@@ -739,25 +739,16 @@ public class NotificationContentInflater implements NotificationRowContentBinder
}
@Override
- public void supersedeTask(InflationTask task) {
- if (task instanceof AsyncInflationTask) {
- // We want to inflate all flags of the previous task as well
- mReInflateFlags |= ((AsyncInflationTask) task).mReInflateFlags;
- }
- }
-
- @Override
public void handleInflationException(NotificationEntry entry, Exception e) {
handleError(e);
}
@Override
- public void onAsyncInflationFinished(NotificationEntry entry,
- @InflationFlag int inflatedFlags) {
+ public void onAsyncInflationFinished(NotificationEntry entry) {
mEntry.onInflationTaskFinished();
mRow.onNotificationUpdated();
if (mCallback != null) {
- mCallback.onAsyncInflationFinished(mEntry, inflatedFlags);
+ mCallback.onAsyncInflationFinished(mEntry);
}
// Notify the resolver that the inflation task has finished,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java
index 6045524f30b6..bb0681ce8a44 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java
@@ -280,7 +280,7 @@ public class NotificationConversationInfo extends LinearLayout implements
Button favorite = findViewById(R.id.fave);
favorite.setOnClickListener(mOnFavoriteClick);
- if (mNotificationChannel.canBypassDnd()) {
+ if (mNotificationChannel.isImportantConversation()) {
favorite.setText(R.string.notification_conversation_unfavorite);
favorite.setCompoundDrawablesRelative(
mContext.getDrawable(R.drawable.ic_star), null, null, null);
@@ -621,8 +621,8 @@ public class NotificationConversationInfo extends LinearLayout implements
}
break;
case ACTION_FAVORITE:
- // TODO: extend beyond DND
- mChannelToUpdate.setBypassDnd(!mChannelToUpdate.canBypassDnd());
+ mChannelToUpdate.setImportantConversation(
+ !mChannelToUpdate.isImportantConversation());
break;
case ACTION_MUTE:
if (mChannelToUpdate.getImportance() == IMPORTANCE_UNSPECIFIED
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinder.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinder.java
index 9b95bff4921c..9bd8d4782672 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinder.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowContentBinder.java
@@ -101,7 +101,7 @@ public interface NotificationRowContentBinder {
*/
int FLAG_CONTENT_VIEW_PUBLIC = 1 << 3;
- int FLAG_CONTENT_VIEW_ALL = ~0;
+ int FLAG_CONTENT_VIEW_ALL = (1 << 4) - 1;
/**
* Parameters for content view binding
@@ -146,9 +146,7 @@ public interface NotificationRowContentBinder {
* Callback for after the content views finish inflating.
*
* @param entry the entry with the content views set
- * @param inflatedFlags the flags associated with the content views that were inflated
*/
- void onAsyncInflationFinished(NotificationEntry entry,
- @InflationFlag int inflatedFlags);
+ void onAsyncInflationFinished(NotificationEntry entry);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindParams.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindParams.java
new file mode 100644
index 000000000000..5170d0b85b17
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindParams.java
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row;
+
+import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_CONTRACTED;
+import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_EXPANDED;
+import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_HEADS_UP;
+
+import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
+
+/**
+ * Parameters for {@link RowContentBindStage}.
+ */
+public final class RowContentBindParams {
+ private boolean mUseLowPriority;
+ private boolean mUseChildInGroup;
+ private boolean mUseIncreasedHeight;
+ private boolean mUseIncreasedHeadsUpHeight;
+ private boolean mViewsNeedReinflation;
+ private @InflationFlag int mContentViews = DEFAULT_INFLATION_FLAGS;
+
+ /**
+ * Content views that are out of date and need to be rebound.
+ *
+ * TODO: This should go away once {@link NotificationContentInflater} is broken down into
+ * smaller stages as then the stage itself would be invalidated.
+ */
+ private @InflationFlag int mDirtyContentViews = mContentViews;
+
+ /**
+ * Set whether content should use a low priority version of its content views.
+ */
+ public void setUseLowPriority(boolean useLowPriority) {
+ if (mUseLowPriority != useLowPriority) {
+ mDirtyContentViews |= (FLAG_CONTENT_VIEW_CONTRACTED | FLAG_CONTENT_VIEW_EXPANDED);
+ }
+ mUseLowPriority = useLowPriority;
+ }
+
+ public boolean useLowPriority() {
+ return mUseLowPriority;
+ }
+
+ /**
+ * Set whether content should use group child version of its content views.
+ */
+ public void setUseChildInGroup(boolean useChildInGroup) {
+ if (mUseChildInGroup != useChildInGroup) {
+ mDirtyContentViews |= (FLAG_CONTENT_VIEW_CONTRACTED | FLAG_CONTENT_VIEW_EXPANDED);
+ }
+ mUseChildInGroup = useChildInGroup;
+ }
+
+ public boolean useChildInGroup() {
+ return mUseChildInGroup;
+ }
+
+ /**
+ * Set whether content should use an increased height version of its contracted view.
+ */
+ public void setUseIncreasedCollapsedHeight(boolean useIncreasedHeight) {
+ if (mUseIncreasedHeight != useIncreasedHeight) {
+ mDirtyContentViews |= FLAG_CONTENT_VIEW_CONTRACTED;
+ }
+ mUseIncreasedHeight = useIncreasedHeight;
+ }
+
+ public boolean useIncreasedHeight() {
+ return mUseIncreasedHeight;
+ }
+
+ /**
+ * Set whether content should use an increased height version of its heads up view.
+ */
+ public void setUseIncreasedHeadsUpHeight(boolean useIncreasedHeadsUpHeight) {
+ if (mUseIncreasedHeadsUpHeight != useIncreasedHeadsUpHeight) {
+ mDirtyContentViews |= FLAG_CONTENT_VIEW_HEADS_UP;
+ }
+ mUseIncreasedHeadsUpHeight = useIncreasedHeadsUpHeight;
+ }
+
+ public boolean useIncreasedHeadsUpHeight() {
+ return mUseIncreasedHeadsUpHeight;
+ }
+
+ /**
+ * Require the specified content views to be bound after the rebind request.
+ *
+ * @see InflationFlag
+ */
+ public void requireContentViews(@InflationFlag int contentViews) {
+ @InflationFlag int newContentViews = contentViews &= ~mContentViews;
+ mContentViews |= contentViews;
+ mDirtyContentViews |= newContentViews;
+ }
+
+ /**
+ * Free the content view so that it will no longer be bound after the rebind request.
+ *
+ * @see InflationFlag
+ */
+ public void freeContentViews(@InflationFlag int contentViews) {
+ mContentViews &= ~contentViews;
+ mDirtyContentViews &= ~contentViews;
+ }
+
+ public @InflationFlag int getContentViews() {
+ return mContentViews;
+ }
+
+ /**
+ * Request that all content views be rebound. This may happen if, for example, the underlying
+ * layout has changed.
+ */
+ public void rebindAllContentViews() {
+ mDirtyContentViews = mContentViews;
+ }
+
+ /**
+ * Clears all dirty content views so that they no longer need to be rebound.
+ */
+ void clearDirtyContentViews() {
+ mDirtyContentViews = 0;
+ }
+
+ public @InflationFlag int getDirtyContentViews() {
+ return mDirtyContentViews;
+ }
+
+ /**
+ * Set whether all content views need to be reinflated even if cached.
+ *
+ * TODO: This should probably be a more global config on {@link NotifBindPipeline} since this
+ * generally corresponds to a Context/Configuration change that all stages should know about.
+ */
+ public void setNeedsReinflation(boolean needsReinflation) {
+ mViewsNeedReinflation = needsReinflation;
+ @InflationFlag int currentContentViews = mContentViews;
+ mDirtyContentViews |= currentContentViews;
+ }
+
+ public boolean needsReinflation() {
+ return mViewsNeedReinflation;
+ }
+
+ /**
+ * Content views that should be inflated by default for all notifications.
+ */
+ @InflationFlag private static final int DEFAULT_INFLATION_FLAGS =
+ FLAG_CONTENT_VIEW_CONTRACTED | FLAG_CONTENT_VIEW_EXPANDED;
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStage.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStage.java
new file mode 100644
index 000000000000..f1241799d3d1
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStage.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row;
+
+import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_ALL;
+
+import android.os.RemoteException;
+import android.service.notification.StatusBarNotification;
+
+import androidx.annotation.NonNull;
+
+import com.android.internal.statusbar.IStatusBarService;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.BindParams;
+import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationCallback;
+import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+/**
+ * A stage that binds all content views for an already inflated {@link ExpandableNotificationRow}.
+ *
+ * In the farther future, the binder logic and consequently this stage should be broken into
+ * smaller stages.
+ */
+@Singleton
+public class RowContentBindStage extends BindStage<RowContentBindParams> {
+ private final NotificationRowContentBinder mBinder;
+ private final IStatusBarService mStatusBarService;
+
+ @Inject
+ RowContentBindStage(
+ NotificationRowContentBinder binder,
+ IStatusBarService statusBarService) {
+ mBinder = binder;
+ mStatusBarService = statusBarService;
+ }
+
+ @Override
+ protected void executeStage(
+ @NonNull NotificationEntry entry,
+ @NonNull ExpandableNotificationRow row,
+ @NonNull StageCallback callback) {
+ RowContentBindParams params = getStageParams(entry);
+
+ // Resolve content to bind/unbind.
+ @InflationFlag int inflationFlags = params.getContentViews();
+ @InflationFlag int invalidatedFlags = params.getDirtyContentViews();
+
+ @InflationFlag int contentToBind = invalidatedFlags & inflationFlags;
+ @InflationFlag int contentToUnbind = inflationFlags ^ FLAG_CONTENT_VIEW_ALL;
+
+ // Bind/unbind with parameters
+ mBinder.unbindContent(entry, row, contentToUnbind);
+
+ BindParams bindParams = new BindParams();
+ bindParams.isLowPriority = params.useLowPriority();
+ bindParams.isChildInGroup = params.useChildInGroup();
+ bindParams.usesIncreasedHeight = params.useIncreasedHeight();
+ bindParams.usesIncreasedHeadsUpHeight = params.useIncreasedHeadsUpHeight();
+ boolean forceInflate = params.needsReinflation();
+
+ InflationCallback inflationCallback = new InflationCallback() {
+ @Override
+ public void handleInflationException(NotificationEntry entry, Exception e) {
+ entry.setHasInflationError(true);
+ try {
+ final StatusBarNotification sbn = entry.getSbn();
+ mStatusBarService.onNotificationError(
+ sbn.getPackageName(),
+ sbn.getTag(),
+ sbn.getId(),
+ sbn.getUid(),
+ sbn.getInitialPid(),
+ e.getMessage(),
+ sbn.getUserId());
+ } catch (RemoteException ex) {
+ }
+ }
+
+ @Override
+ public void onAsyncInflationFinished(NotificationEntry entry) {
+ entry.setHasInflationError(false);
+ getStageParams(entry).clearDirtyContentViews();
+ callback.onStageFinished(entry);
+ }
+ };
+ mBinder.cancelBind(entry, row);
+ mBinder.bindContent(entry, row, contentToBind, bindParams, forceInflate, inflationCallback);
+ }
+
+ @Override
+ protected void abortStage(
+ @NonNull NotificationEntry entry,
+ @NonNull ExpandableNotificationRow row) {
+ mBinder.cancelBind(entry, row);
+ }
+
+ @Override
+ protected RowContentBindParams newStageParams() {
+ return new RowContentBindParams();
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ForegroundServiceSectionController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ForegroundServiceSectionController.kt
new file mode 100644
index 000000000000..5757fe8040f0
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/ForegroundServiceSectionController.kt
@@ -0,0 +1,171 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.stack
+
+import android.content.Context
+import android.service.notification.NotificationListenerService.REASON_APP_CANCEL
+import android.service.notification.NotificationListenerService.REASON_APP_CANCEL_ALL
+import android.service.notification.NotificationListenerService.REASON_CANCEL
+import android.service.notification.NotificationListenerService.REASON_CANCEL_ALL
+import android.service.notification.NotificationListenerService.REASON_CLICK
+import android.service.notification.NotificationListenerService.REASON_GROUP_SUMMARY_CANCELED
+import android.view.LayoutInflater
+import android.view.View
+import android.widget.LinearLayout
+
+import com.android.systemui.statusbar.notification.collection.NotificationEntry
+import com.android.systemui.R
+import com.android.systemui.statusbar.notification.ForegroundServiceDismissalFeatureController
+import com.android.systemui.statusbar.notification.NotificationEntryListener
+import com.android.systemui.statusbar.notification.NotificationEntryManager
+import com.android.systemui.statusbar.notification.row.DungeonRow
+import com.android.systemui.util.Assert
+
+import javax.inject.Inject
+import javax.inject.Singleton
+
+/**
+ * Controller for the bottom area of NotificationStackScrollLayout. It owns swiped-away foreground
+ * service notifications and can reinstantiate them when requested.
+ */
+@Singleton
+class ForegroundServiceSectionController @Inject constructor(
+ val entryManager: NotificationEntryManager,
+ val featureController: ForegroundServiceDismissalFeatureController
+) {
+ private val TAG = "FgsSectionController"
+ private var context: Context? = null
+
+ private val entries = mutableSetOf<NotificationEntry>()
+
+ private var entriesView: View? = null
+
+ init {
+ if (featureController.isForegroundServiceDismissalEnabled()) {
+ entryManager.addNotificationRemoveInterceptor(this::shouldInterceptRemoval)
+
+ entryManager.addNotificationEntryListener(object : NotificationEntryListener {
+ override fun onPostEntryUpdated(entry: NotificationEntry) {
+ if (entries.contains(entry)) {
+ removeEntry(entry)
+ addEntry(entry)
+ update()
+ }
+ }
+ })
+ }
+ }
+
+ private fun shouldInterceptRemoval(
+ key: String,
+ entry: NotificationEntry?,
+ reason: Int
+ ): Boolean {
+ Assert.isMainThread()
+ val isClearAll = reason == REASON_CANCEL_ALL
+ val isUserDismiss = reason == REASON_CANCEL || reason == REASON_CLICK
+ val isAppCancel = reason == REASON_APP_CANCEL || reason == REASON_APP_CANCEL_ALL
+ val isSummaryCancel = reason == REASON_GROUP_SUMMARY_CANCELED
+
+ if (entry == null) return false
+
+ // We only want to retain notifications that the user dismissed
+ // TODO: centralize the entry.isClearable logic and this so that it's clear when a notif is
+ // clearable
+ if (isUserDismiss && !entry.sbn.isClearable) {
+ if (!hasEntry(entry)) {
+ addEntry(entry)
+ update()
+ }
+ // TODO: This isn't ideal. Slightly better would at least be to have NEM update the
+ // notif list when an entry gets intercepted
+ entryManager.updateNotifications(
+ "FgsSectionController.onNotificationRemoveRequested")
+ return true
+ } else if ((isClearAll || isSummaryCancel) && !entry.sbn.isClearable) {
+ // In the case where a FGS notification is part of a group that is cleared or a clear
+ // all, we actually want to stop its removal but also not put it into the dungeon
+ return true
+ } else if (hasEntry(entry)) {
+ removeEntry(entry)
+ update()
+ return false
+ }
+
+ return false
+ }
+
+ private fun removeEntry(entry: NotificationEntry) {
+ Assert.isMainThread()
+ entries.remove(entry)
+ }
+
+ private fun addEntry(entry: NotificationEntry) {
+ Assert.isMainThread()
+ entries.add(entry)
+ }
+
+ fun hasEntry(entry: NotificationEntry): Boolean {
+ Assert.isMainThread()
+ return entries.contains(entry)
+ }
+
+ fun initialize(context: Context) {
+ this.context = context
+ }
+
+ fun createView(li: LayoutInflater): View {
+ entriesView = li.inflate(R.layout.foreground_service_dungeon, null)
+ // Start out gone
+ entriesView!!.visibility = View.GONE
+ return entriesView!!
+ }
+
+ private fun update() {
+ Assert.isMainThread()
+ if (entriesView == null) {
+ throw IllegalStateException("ForegroundServiceSectionController is trying to show " +
+ "dismissed fgs notifications without having been initialized!")
+ }
+
+ // TODO: these views should be recycled and not inflating on the main thread
+ (entriesView!!.findViewById(R.id.entry_list) as LinearLayout).apply {
+ removeAllViews()
+ entries.sortedBy { it.ranking.rank }.forEach { entry ->
+ val child = LayoutInflater.from(context)
+ .inflate(R.layout.foreground_service_dungeon_row, null) as DungeonRow
+
+ child.entry = entry
+ child.setOnClickListener {
+ removeEntry(child.entry!!)
+ update()
+ entry.row.unDismiss()
+ entry.row.resetTranslation()
+ entryManager.updateNotifications("ForegroundServiceSectionController.onClick")
+ }
+
+ addView(child)
+ }
+ }
+
+ if (entries.isEmpty()) {
+ entriesView?.visibility = View.GONE
+ } else {
+ entriesView?.visibility = View.VISIBLE
+ }
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
index 11ead8bd2576..4b9976cc2097 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
@@ -99,6 +99,7 @@ import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.DragDownHelper.DragDownCallback;
import com.android.systemui.statusbar.EmptyShadeView;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
+import com.android.systemui.statusbar.NotificationLockscreenUserManager.UserChangedListener;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
import com.android.systemui.statusbar.NotificationShelf;
import com.android.systemui.statusbar.RemoteInputController;
@@ -106,6 +107,7 @@ import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
import com.android.systemui.statusbar.notification.FakeShadowView;
+import com.android.systemui.statusbar.notification.ForegroundServiceDismissalFeatureController;
import com.android.systemui.statusbar.notification.NotificationEntryListener;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationUtils;
@@ -118,6 +120,7 @@ import com.android.systemui.statusbar.notification.row.ActivatableNotificationVi
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.ExpandableView;
import com.android.systemui.statusbar.notification.row.FooterView;
+import com.android.systemui.statusbar.notification.row.ForegroundServiceDungeonView;
import com.android.systemui.statusbar.notification.row.NotificationBlockingHelperManager;
import com.android.systemui.statusbar.notification.row.NotificationGuts;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
@@ -328,6 +331,12 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
return true;
}
};
+ private final UserChangedListener mLockscreenUserChangeListener = new UserChangedListener() {
+ @Override
+ public void onUserChanged(int userId) {
+ updateSensitiveness(false /* animated */);
+ }
+ };
private StatusBar mStatusBar;
private int[] mTempInt2 = new int[2];
private boolean mGenerateChildOrderChangedEvent;
@@ -497,6 +506,8 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
private final NotificationGutsManager mNotificationGutsManager;
private final NotificationSectionsManager mSectionsManager;
+ private final ForegroundServiceSectionController mFgsSectionController;
+ private ForegroundServiceDungeonView mFgsSectionView;
private boolean mAnimateBottomOnLayout;
private float mLastSentAppear;
private float mLastSentExpandedHeight;
@@ -516,7 +527,10 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
NotificationLockscreenUserManager notificationLockscreenUserManager,
NotificationGutsManager notificationGutsManager,
ZenModeController zenController,
- NotificationSectionsManager notificationSectionsManager) {
+ NotificationSectionsManager notificationSectionsManager,
+ ForegroundServiceSectionController fgsSectionController,
+ ForegroundServiceDismissalFeatureController fgsFeatureController
+ ) {
super(context, attrs, 0, 0);
Resources res = getResources();
@@ -532,6 +546,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
mKeyguardBypassController = keyguardBypassController;
mFalsingManager = falsingManager;
mZenController = zenController;
+ mFgsSectionController = fgsSectionController;
mSectionsManager = notificationSectionsManager;
mSectionsManager.initialize(this, LayoutInflater.from(context));
@@ -561,6 +576,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
mRoundnessManager.setAnimatedChildren(mChildrenToAddAnimated);
mRoundnessManager.setOnRoundingChangedCallback(this::invalidate);
addOnExpandedHeightChangedListener(mRoundnessManager::setExpanded);
+ mLockscreenUserManager.addUserChangedListener(mLockscreenUserChangeListener);
setOutlineProvider(mOutlineProvider);
// Blocking helper manager wants to know the expanded state, update as well.
@@ -604,6 +620,17 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
dynamicPrivacyController.addListener(this);
mDynamicPrivacyController = dynamicPrivacyController;
mStatusbarStateController = statusBarStateController;
+ initializeForegroundServiceSection(fgsFeatureController);
+ }
+
+ private void initializeForegroundServiceSection(
+ ForegroundServiceDismissalFeatureController featureController) {
+ if (featureController.isForegroundServiceDismissalEnabled()) {
+ LayoutInflater li = LayoutInflater.from(mContext);
+ mFgsSectionView =
+ (ForegroundServiceDungeonView) mFgsSectionController.createView(li);
+ addView(mFgsSectionView, -1);
+ }
}
private void updateDismissRtlSetting(boolean dismissRtl) {
@@ -3364,7 +3391,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
if (currentIndex == -1) {
boolean isTransient = false;
if (child instanceof ExpandableNotificationRow
- && ((ExpandableNotificationRow) child).getTransientContainer() != null) {
+ && child.getTransientContainer() != null) {
isTransient = true;
}
Log.e(TAG, "Attempting to re-position "
@@ -3377,10 +3404,10 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
if (child != null && child.getParent() == this && currentIndex != newIndex) {
mChangePositionInProgress = true;
- ((ExpandableView) child).setChangingPosition(true);
+ child.setChangingPosition(true);
removeView(child);
addView(child, newIndex);
- ((ExpandableView) child).setChangingPosition(false);
+ child.setChangingPosition(false);
mChangePositionInProgress = false;
if (mIsExpanded && mAnimationsEnabled && child.getVisibility() != View.GONE) {
mChildrenChangingPositions.add(child);
@@ -4611,7 +4638,8 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
}
@ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
- private void setHideSensitive(boolean hideSensitive, boolean animate) {
+ private void updateSensitiveness(boolean animate) {
+ boolean hideSensitive = mLockscreenUserManager.isAnyProfilePublicMode();
if (hideSensitive != mAmbientState.isHideSensitive()) {
int childCount = getChildCount();
for (int i = 0; i < childCount; i++) {
@@ -5306,7 +5334,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
private void onStatePostChange() {
boolean onKeyguard = onKeyguard();
- boolean publicMode = mLockscreenUserManager.isAnyProfilePublicMode();
if (mHeadsUpAppearanceController != null) {
mHeadsUpAppearanceController.onStateChanged();
@@ -5314,7 +5341,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
SysuiStatusBarStateController state = (SysuiStatusBarStateController)
Dependency.get(StatusBarStateController.class);
- setHideSensitive(publicMode, state.goingToFullShade() /* animate */);
+ updateSensitiveness(state.goingToFullShade() /* animate */);
setDimmed(onKeyguard, state.fromShadeLocked() /* animate */);
setExpandingEnabled(!onKeyguard);
ActivatableNotificationView activatedChild = getActivatedChild();
@@ -5627,15 +5654,17 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
*/
@ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
public void onUpdateRowStates() {
- changeViewPosition(mFooterView, -1);
// The following views will be moved to the end of mStackScroller. This counter represents
// the offset from the last child. Initialized to 1 for the very last position. It is post-
// incremented in the following "changeViewPosition" calls so that its value is correct for
// subsequent calls.
int offsetFromEnd = 1;
- changeViewPosition(mEmptyShadeView,
- getChildCount() - offsetFromEnd++);
+ if (mFgsSectionView != null) {
+ changeViewPosition(mFgsSectionView, getChildCount() - offsetFromEnd++);
+ }
+ changeViewPosition(mFooterView, getChildCount() - offsetFromEnd++);
+ changeViewPosition(mEmptyShadeView, getChildCount() - offsetFromEnd++);
// No post-increment for this call because it is the last one. Make sure to add one if
// another "changeViewPosition" call is ever added.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NPVPluginManager.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NPVPluginManager.kt
deleted file mode 100644
index 53601babfd56..000000000000
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NPVPluginManager.kt
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.phone
-
-import android.content.Context
-import android.view.View
-import android.view.ViewGroup.MarginLayoutParams
-import android.widget.FrameLayout
-import com.android.systemui.plugins.NPVPlugin
-import com.android.systemui.plugins.PluginListener
-import com.android.systemui.qs.TouchAnimator
-import com.android.systemui.shared.plugins.PluginManager
-
-/**
- * Manages the NPVPlugin view and state
- *
- * Abstracts NPVPlugin from NPV and helps animate on expansion and respond to changes in Config.
- */
-class NPVPluginManager(
- var parent: FrameLayout,
- val pluginManager: PluginManager
-) : PluginListener<NPVPlugin> {
-
- private var plugin: NPVPlugin? = null
- private var animator = createAnimator()
- private var yOffset = 0f
-
- private fun createAnimator() = TouchAnimator.Builder()
- .addFloat(parent, "alpha", 1f, 0f)
- .addFloat(parent, "scaleY", 1f, 0f)
- .build()
-
- init {
- pluginManager.addPluginListener(NPVPlugin.ACTION, this, NPVPlugin::class.java, false)
- parent.pivotY = 0f
- }
-
- override fun onPluginConnected(plugin: NPVPlugin, pluginContext: Context) {
- parent.removeAllViews()
- plugin.attachToRoot(parent)
- this.plugin = plugin
- parent.visibility = View.VISIBLE
- }
-
- fun changeVisibility(visibility: Int) {
- parent.visibility = if (plugin != null) visibility else View.GONE
- }
-
- fun destroy() {
- plugin?.onDestroy()
- pluginManager.removePluginListener(this)
- }
-
- override fun onPluginDisconnected(plugin: NPVPlugin) {
- if (this.plugin == plugin) {
- this.plugin = null
- parent.removeAllViews()
- parent.visibility = View.GONE
- }
- }
-
- fun setListening(listening: Boolean) {
- plugin?.setListening(listening)
- }
-
- fun setExpansion(expansion: Float, headerTranslation: Float, heightDiff: Float) {
- parent.setTranslationY(expansion * heightDiff + headerTranslation + yOffset)
- if (!expansion.isNaN()) animator.setPosition(expansion)
- }
-
- fun replaceFrameLayout(newParent: FrameLayout) {
- newParent.visibility = parent.visibility
- parent.removeAllViews()
- plugin?.attachToRoot(newParent)
- parent = newParent
- animator = createAnimator()
- }
-
- fun getHeight() =
- if (plugin != null) {
- parent.height + (parent.getLayoutParams() as MarginLayoutParams).topMargin
- } else 0
-
- fun setYOffset(y: Float) {
- yOffset = y
- parent.setTranslationY(yOffset)
- }
-}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java
index 896b6e570da2..bdca9a452484 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelper.java
@@ -28,11 +28,12 @@ import com.android.systemui.Dependency;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
import com.android.systemui.statusbar.AlertingNotificationManager;
-import com.android.systemui.statusbar.InflationTask;
import com.android.systemui.statusbar.notification.NotificationEntryListener;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
+import com.android.systemui.statusbar.notification.row.RowContentBindParams;
+import com.android.systemui.statusbar.notification.row.RowContentBindStage;
import com.android.systemui.statusbar.phone.NotificationGroupManager.NotificationGroup;
import com.android.systemui.statusbar.phone.NotificationGroupManager.OnGroupChangeListener;
import com.android.systemui.statusbar.policy.HeadsUpManager;
@@ -67,6 +68,7 @@ public class NotificationGroupAlertTransferHelper implements OnHeadsUpChangedLis
private final ArrayMap<String, PendingAlertInfo> mPendingAlerts = new ArrayMap<>();
private HeadsUpManager mHeadsUpManager;
+ private final RowContentBindStage mRowContentBindStage;
private final NotificationGroupManager mGroupManager =
Dependency.get(NotificationGroupManager.class);
@@ -75,8 +77,9 @@ public class NotificationGroupAlertTransferHelper implements OnHeadsUpChangedLis
private boolean mIsDozing;
@Inject
- public NotificationGroupAlertTransferHelper() {
+ public NotificationGroupAlertTransferHelper(RowContentBindStage bindStage) {
Dependency.get(StatusBarStateController.class).addCallback(this);
+ mRowContentBindStage = bindStage;
}
/** Causes the TransferHelper to register itself as a listener to the appropriate classes. */
@@ -190,21 +193,6 @@ public class NotificationGroupAlertTransferHelper implements OnHeadsUpChangedLis
}
}
- // Called when the entry's reinflation has finished. If there is an alert pending, we
- // then show the alert.
- @Override
- public void onEntryReinflated(NotificationEntry entry) {
- PendingAlertInfo alertInfo = mPendingAlerts.remove(entry.getKey());
- if (alertInfo != null) {
- if (alertInfo.isStillValid()) {
- alertNotificationWhenPossible(entry, mHeadsUpManager);
- } else {
- // The transfer is no longer valid. Free the content.
- entry.getRow().freeContentViewWhenSafe(mHeadsUpManager.getContentFlag());
- }
- }
- }
-
@Override
public void onEntryRemoved(
@Nullable NotificationEntry entry,
@@ -392,10 +380,21 @@ public class NotificationGroupAlertTransferHelper implements OnHeadsUpChangedLis
private void alertNotificationWhenPossible(@NonNull NotificationEntry entry,
@NonNull AlertingNotificationManager alertManager) {
@InflationFlag int contentFlag = alertManager.getContentFlag();
- if (!entry.getRow().isInflationFlagSet(contentFlag)) {
+ final RowContentBindParams params = mRowContentBindStage.getStageParams(entry);
+ if ((params.getContentViews() & contentFlag) == 0) {
mPendingAlerts.put(entry.getKey(), new PendingAlertInfo(entry));
- entry.getRow().setInflationFlags(contentFlag);
- entry.getRow().inflateViews();
+ params.requireContentViews(contentFlag);
+ mRowContentBindStage.requestRebind(entry, en -> {
+ PendingAlertInfo alertInfo = mPendingAlerts.remove(entry.getKey());
+ if (alertInfo != null) {
+ if (alertInfo.isStillValid()) {
+ alertNotificationWhenPossible(entry, mHeadsUpManager);
+ } else {
+ // The transfer is no longer valid. Free the content.
+ entry.getRow().freeContentViewWhenSafe(mHeadsUpManager.getContentFlag());
+ }
+ }
+ });
return;
}
if (alertManager.isAlerting(entry.getKey())) {
@@ -426,9 +425,9 @@ public class NotificationGroupAlertTransferHelper implements OnHeadsUpChangedLis
/**
* The notification is still pending inflation but we've decided that we no longer need
* the content view (e.g. suppression might have changed and we decided we need to transfer
- * back). However, there is no way to abort just this inflation if other inflation requests
- * have started (see {@link InflationTask#supersedeTask(InflationTask)}). So instead
- * we just flag it as aborted and free when it's inflated.
+ * back).
+ *
+ * TODO: Replace this entire structure with {@link RowContentBindStage#requestRebind)}.
*/
boolean mAbortOnInflation;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
index 6112ae88f634..d2186f959aba 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
@@ -25,10 +25,8 @@ import android.animation.ValueAnimator;
import android.app.ActivityManager;
import android.app.Fragment;
import android.app.StatusBarManager;
-import android.content.Context;
import android.content.pm.ResolveInfo;
import android.content.res.Configuration;
-import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
@@ -40,8 +38,6 @@ import android.graphics.drawable.Drawable;
import android.hardware.biometrics.BiometricSourceType;
import android.os.PowerManager;
import android.os.SystemClock;
-import android.provider.DeviceConfig;
-import android.provider.Settings;
import android.util.Log;
import android.util.MathUtils;
import android.view.LayoutInflater;
@@ -57,7 +53,6 @@ import android.widget.FrameLayout;
import android.widget.TextView;
import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.util.LatencyTracker;
@@ -73,13 +68,10 @@ import com.android.systemui.doze.DozeLog;
import com.android.systemui.fragments.FragmentHostManager;
import com.android.systemui.fragments.FragmentHostManager.FragmentListener;
import com.android.systemui.plugins.FalsingManager;
-import com.android.systemui.plugins.HomeControlsPlugin;
-import com.android.systemui.plugins.PluginListener;
import com.android.systemui.plugins.qs.QS;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
import com.android.systemui.qs.QSFragment;
-import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.FlingAnimationUtils;
import com.android.systemui.statusbar.GestureRecorder;
@@ -113,7 +105,6 @@ import com.android.systemui.statusbar.policy.KeyguardUserSwitcher;
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
import com.android.systemui.statusbar.policy.ZenModeController;
import com.android.systemui.util.InjectionInflationController;
-import com.android.systemui.util.Utils;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -173,8 +164,6 @@ public class NotificationPanelViewController extends PanelViewController {
private final ConfigurationController mConfigurationController;
private final FlingAnimationUtils.Builder mFlingAnimationUtilsBuilder;
- private double mQqsSplitFraction;
-
// Cap and total height of Roboto font. Needs to be adjusted when font for the big clock is
// changed.
private static final int CAP_HEIGHT = 1456;
@@ -258,7 +247,6 @@ public class NotificationPanelViewController extends PanelViewController {
private View mQsNavbarScrim;
private NotificationsQuickSettingsContainer mNotificationContainerParent;
private NotificationStackScrollLayout mNotificationStackScroller;
- private FrameLayout mHomeControlsLayout;
private boolean mAnimateNextPositionUpdate;
private int mTrackingPointer;
@@ -446,9 +434,6 @@ public class NotificationPanelViewController extends PanelViewController {
*/
private boolean mDelayShowingKeyguardStatusBar;
- private PluginManager mPluginManager;
- private FrameLayout mPluginFrame;
- private NPVPluginManager mNPVPluginManager;
private int mOldLayoutDirection;
@Inject
@@ -457,7 +442,7 @@ public class NotificationPanelViewController extends PanelViewController {
NotificationWakeUpCoordinator coordinator, PulseExpansionHandler pulseExpansionHandler,
DynamicPrivacyController dynamicPrivacyController,
KeyguardBypassController bypassController, FalsingManager falsingManager,
- PluginManager pluginManager, ShadeController shadeController,
+ ShadeController shadeController,
NotificationLockscreenUserManager notificationLockscreenUserManager,
NotificationEntryManager notificationEntryManager,
KeyguardStateController keyguardStateController,
@@ -523,7 +508,6 @@ public class NotificationPanelViewController extends PanelViewController {
});
mBottomAreaShadeAlphaAnimator.setDuration(160);
mBottomAreaShadeAlphaAnimator.setInterpolator(Interpolators.ALPHA_OUT);
- mPluginManager = pluginManager;
mShadeController = shadeController;
mLockscreenUserManager = notificationLockscreenUserManager;
mEntryManager = notificationEntryManager;
@@ -553,7 +537,6 @@ public class NotificationPanelViewController extends PanelViewController {
mBigClockContainer = mView.findViewById(R.id.big_clock_container);
keyguardClockSwitch.setBigClockContainer(mBigClockContainer);
- mHomeControlsLayout = mView.findViewById(R.id.home_controls_layout);
mNotificationContainerParent = mView.findViewById(R.id.notification_container_parent);
mNotificationStackScroller = mView.findViewById(R.id.notification_stack_scroller);
mNotificationStackScroller.setOnHeightChangedListener(mOnHeightChangedListener);
@@ -563,12 +546,6 @@ public class NotificationPanelViewController extends PanelViewController {
mKeyguardBottomArea = mView.findViewById(R.id.keyguard_bottom_area);
mQsNavbarScrim = mView.findViewById(R.id.qs_navbar_scrim);
mLastOrientation = mResources.getConfiguration().orientation;
- mPluginFrame = mView.findViewById(R.id.plugin_frame);
- if (Settings.System.getInt(mView.getContext().getContentResolver(), "npv_plugin_flag", 0)
- == 1) {
- mNPVPluginManager = new NPVPluginManager(mPluginFrame, mPluginManager);
- }
-
initBottomArea();
@@ -592,19 +569,6 @@ public class NotificationPanelViewController extends PanelViewController {
}
});
- mPluginManager.addPluginListener(new PluginListener<HomeControlsPlugin>() {
-
- @Override
- public void onPluginConnected(HomeControlsPlugin plugin, Context pluginContext) {
- plugin.sendParentGroup(mHomeControlsLayout);
- }
-
- @Override
- public void onPluginDisconnected(HomeControlsPlugin plugin) {
-
- }
- }, HomeControlsPlugin.class, false);
-
mView.setRtlChangeListener(layoutDirection -> {
if (layoutDirection != mOldLayoutDirection) {
mAffordanceHelper.onRtlPropertiesChanged();
@@ -637,9 +601,6 @@ public class NotificationPanelViewController extends PanelViewController {
com.android.internal.R.dimen.status_bar_height);
mHeadsUpInset = statusbarHeight + mResources.getDimensionPixelSize(
R.dimen.heads_up_status_bar_padding);
- mQqsSplitFraction = ((float) mResources.getInteger(R.integer.qqs_split_fraction)) / (
- mResources.getInteger(R.integer.qqs_split_fraction) + mResources.getInteger(
- R.integer.qs_split_fraction));
}
/**
@@ -679,18 +640,6 @@ public class NotificationPanelViewController extends PanelViewController {
lp.gravity = panelGravity;
mNotificationStackScroller.setLayoutParams(lp);
}
- int sideMargin = mResources.getDimensionPixelOffset(R.dimen.notification_side_paddings);
- int topMargin = sideMargin;
- lp = (FrameLayout.LayoutParams) mPluginFrame.getLayoutParams();
- if (lp.width != qsWidth || lp.gravity != panelGravity || lp.leftMargin != sideMargin
- || lp.rightMargin != sideMargin || lp.topMargin != topMargin) {
- lp.width = qsWidth;
- lp.gravity = panelGravity;
- lp.leftMargin = sideMargin;
- lp.rightMargin = sideMargin;
- lp.topMargin = topMargin;
- mPluginFrame.setLayoutParams(lp);
- }
}
private void reInflateViews() {
@@ -732,41 +681,6 @@ public class NotificationPanelViewController extends PanelViewController {
if (mOnReinflationListener != null) {
mOnReinflationListener.run();
}
- reinflatePluginContainer();
- }
-
- private void reinflatePluginContainer() {
- int index = mView.indexOfChild(mPluginFrame);
- mView.removeView(mPluginFrame);
- mPluginFrame = (FrameLayout) mInjectionInflationController.injectable(
- LayoutInflater.from(mView.getContext())).inflate(
- R.layout.status_bar_expanded_plugin_frame, mView, false);
- mView.addView(mPluginFrame, index);
-
- Resources res = mView.getResources();
- int qsWidth = res.getDimensionPixelSize(R.dimen.qs_panel_width);
- int panelGravity = mView.getResources().getInteger(
- R.integer.notification_panel_layout_gravity);
- FrameLayout.LayoutParams lp;
- int sideMargin = res.getDimensionPixelOffset(R.dimen.notification_side_paddings);
- int topMargin = res.getDimensionPixelOffset(
- com.android.internal.R.dimen.quick_qs_total_height);
- if (Utils.useQsMediaPlayer(mView.getContext())) {
- topMargin = res.getDimensionPixelOffset(
- com.android.internal.R.dimen.quick_qs_total_height_with_media);
- }
- lp = (FrameLayout.LayoutParams) mPluginFrame.getLayoutParams();
- if (lp.width != qsWidth || lp.gravity != panelGravity || lp.leftMargin != sideMargin
- || lp.rightMargin != sideMargin || lp.topMargin != topMargin) {
- lp.width = qsWidth;
- lp.gravity = panelGravity;
- lp.leftMargin = sideMargin;
- lp.rightMargin = sideMargin;
- lp.topMargin = topMargin;
- mPluginFrame.setLayoutParams(lp);
- }
-
- if (mNPVPluginManager != null) mNPVPluginManager.replaceFrameLayout(mPluginFrame);
}
private void initBottomArea() {
@@ -1266,17 +1180,6 @@ public class NotificationPanelViewController extends PanelViewController {
// earlier so the state is already up to date when dragging down.
setListening(true);
}
- if (isQsSplitEnabled() && !mKeyguardShowing) {
- if (mQsExpandImmediate) {
- mNotificationStackScroller.setVisibility(View.GONE);
- mQsFrame.setVisibility(View.VISIBLE);
- mHomeControlsLayout.setVisibility(View.VISIBLE);
- } else {
- mNotificationStackScroller.setVisibility(View.VISIBLE);
- mQsFrame.setVisibility(View.GONE);
- mHomeControlsLayout.setVisibility(View.GONE);
- }
- }
return false;
}
@@ -1286,17 +1189,6 @@ public class NotificationPanelViewController extends PanelViewController {
|| y <= mQs.getView().getY() + mQs.getView().getHeight());
}
- private boolean isOnQsEndArea(float x) {
- if (!isQsSplitEnabled()) return false;
- if (mView.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR) {
- return x >= mQsFrame.getX() + mQqsSplitFraction * mQsFrame.getWidth()
- && x <= mQsFrame.getX() + mQsFrame.getWidth();
- } else {
- return x >= mQsFrame.getX()
- && x <= mQsFrame.getX() + (1 - mQqsSplitFraction) * mQsFrame.getWidth();
- }
- }
-
private boolean isOpenQsEvent(MotionEvent event) {
final int pointerCount = event.getPointerCount();
final int action = event.getActionMasked();
@@ -1317,9 +1209,7 @@ public class NotificationPanelViewController extends PanelViewController {
MotionEvent.BUTTON_SECONDARY) || event.isButtonPressed(
MotionEvent.BUTTON_TERTIARY));
- final boolean onHeaderRight = isOnQsEndArea(event.getX());
-
- return twoFingerDrag || stylusButtonClickDrag || mouseButtonClickDrag || onHeaderRight;
+ return twoFingerDrag || stylusButtonClickDrag || mouseButtonClickDrag;
}
private void handleQsDown(MotionEvent event) {
@@ -1659,10 +1549,7 @@ public class NotificationPanelViewController extends PanelViewController {
mBarState != StatusBarState.KEYGUARD && (!mQsExpanded
|| mQsExpansionFromOverscroll));
updateEmptyShadeView();
- if (mNPVPluginManager != null) {
- mNPVPluginManager.changeVisibility(
- (mBarState != StatusBarState.KEYGUARD) ? View.VISIBLE : View.INVISIBLE);
- }
+
mQsNavbarScrim.setVisibility(
mBarState == StatusBarState.SHADE && mQsExpanded && !mStackScrollerOverscrolling
&& mQsScrimEnabled ? View.VISIBLE : View.INVISIBLE);
@@ -1718,9 +1605,6 @@ public class NotificationPanelViewController extends PanelViewController {
float qsExpansionFraction = getQsExpansionFraction();
mQs.setQsExpansion(qsExpansionFraction, getHeaderTranslation());
int heightDiff = mQs.getDesiredHeight() - mQs.getQsMinExpansionHeight();
- if (mNPVPluginManager != null) {
- mNPVPluginManager.setExpansion(qsExpansionFraction, getHeaderTranslation(), heightDiff);
- }
mNotificationStackScroller.setQsExpansionFraction(qsExpansionFraction);
}
@@ -2015,7 +1899,6 @@ public class NotificationPanelViewController extends PanelViewController {
targetHeight =
mQsMinExpansionHeight + t * (mQsMaxExpansionHeight - mQsMinExpansionHeight);
setQsExpansion(targetHeight);
- mHomeControlsLayout.setTranslationY(targetHeight);
}
updateExpandedHeight(expandedHeight);
updateHeader();
@@ -2150,7 +2033,6 @@ public class NotificationPanelViewController extends PanelViewController {
appearAmount = mNotificationStackScroller.calculateAppearFractionBypass();
}
startHeight = -mQs.getQsMinExpansionHeight();
- if (mNPVPluginManager != null) startHeight -= mNPVPluginManager.getHeight();
}
float translation = MathUtils.lerp(startHeight, 0, Math.min(1.0f, appearAmount))
+ mExpandOffset;
@@ -2294,7 +2176,6 @@ public class NotificationPanelViewController extends PanelViewController {
mKeyguardStatusBar.setListening(listening);
if (mQs == null) return;
mQs.setListening(listening);
- if (mNPVPluginManager != null) mNPVPluginManager.setListening(listening);
}
@Override
@@ -3029,11 +2910,6 @@ public class NotificationPanelViewController extends PanelViewController {
mOnReinflationListener = onReinflationListener;
}
- public static boolean isQsSplitEnabled() {
- return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SYSTEMUI,
- SystemUiDeviceConfigFlags.QS_SPLIT_ENABLED, false);
- }
-
public void setAlpha(float alpha) {
mView.setAlpha(alpha);
}
@@ -3500,9 +3376,7 @@ public class NotificationPanelViewController extends PanelViewController {
}
@Override
- public void onUiModeChanged() {
- reinflatePluginContainer();
- }
+ public void onUiModeChanged() {}
}
private class StatusBarStateListener implements StateListener {
@@ -3517,11 +3391,6 @@ public class NotificationPanelViewController extends PanelViewController {
mBarState = statusBarState;
mKeyguardShowing = keyguardShowing;
- if (mKeyguardShowing && isQsSplitEnabled()) {
- mNotificationStackScroller.setVisibility(View.VISIBLE);
- mQsFrame.setVisibility(View.VISIBLE);
- mHomeControlsLayout.setVisibility(View.GONE);
- }
if (oldState == StatusBarState.KEYGUARD && (goingToFullShade
|| statusBarState == StatusBarState.SHADE_LOCKED)) {
@@ -3544,7 +3413,6 @@ public class NotificationPanelViewController extends PanelViewController {
} else {
mKeyguardStatusBar.setAlpha(1f);
mKeyguardStatusBar.setVisibility(keyguardShowing ? View.VISIBLE : View.INVISIBLE);
- ((PhoneStatusBarView) mBar).maybeShowDivider(keyguardShowing);
if (keyguardShowing && oldState != mBarState) {
if (mQs != null) {
mQs.hideImmediately();
@@ -3622,10 +3490,6 @@ public class NotificationPanelViewController extends PanelViewController {
int oldMaxHeight = mQsMaxExpansionHeight;
if (mQs != null) {
mQsMinExpansionHeight = mKeyguardShowing ? 0 : mQs.getQsMinExpansionHeight();
- if (mNPVPluginManager != null) {
- mNPVPluginManager.setYOffset(mQsMinExpansionHeight);
- mQsMinExpansionHeight += mNPVPluginManager.getHeight();
- }
mQsMaxExpansionHeight = mQs.getDesiredHeight();
mNotificationStackScroller.setMaxTopPadding(
mQsMaxExpansionHeight + mQsNotificationTopPadding);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowController.java
index 3af80387778b..10b68b9a518d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationShadeWindowController.java
@@ -16,8 +16,10 @@
package com.android.systemui.statusbar.phone;
+import static android.view.WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE;
import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_BEHAVIOR_CONTROLLED;
import static com.android.systemui.DejankUtils.whitelistIpcs;
import static com.android.systemui.statusbar.NotificationRemoteInputManager.ENABLE_REMOTE_INPUT;
@@ -180,6 +182,13 @@ public class NotificationShadeWindowController implements Callback, Dumpable,
mLp.setTitle("NotificationShade");
mLp.packageName = mContext.getPackageName();
mLp.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
+
+ // We use BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE here, however, there is special logic in
+ // window manager which disables the transient show behavior.
+ // TODO: Clean this up once that behavior moves into the Shell.
+ mLp.privateFlags |= PRIVATE_FLAG_BEHAVIOR_CONTROLLED;
+ mLp.insetsFlags.behavior = BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE;
+
mWindowManager.addView(mNotificationShadeView, mLp);
mLpChanged.copyFrom(mLp);
onThemeChanged();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarTransitions.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarTransitions.java
index 96b4b22d0580..e8bc2f58adb4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarTransitions.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarTransitions.java
@@ -32,7 +32,7 @@ public final class PhoneStatusBarTransitions extends BarTransitions {
private final PhoneStatusBarView mView;
private final float mIconAlphaWhenOpaque;
- private View mLeftSide, mStatusIcons, mBattery, mClock, mDivider;
+ private View mLeftSide, mStatusIcons, mBattery, mClock;
private Animator mCurrentAnimation;
public PhoneStatusBarTransitions(PhoneStatusBarView view) {
@@ -46,7 +46,6 @@ public final class PhoneStatusBarTransitions extends BarTransitions {
mLeftSide = mView.findViewById(R.id.status_bar_left_side);
mStatusIcons = mView.findViewById(R.id.statusIcons);
mBattery = mView.findViewById(R.id.battery);
- mDivider = mView.findViewById(R.id.divider);
applyModeBackground(-1, getMode(), false /*animate*/);
applyMode(getMode(), false /*animate*/);
}
@@ -89,7 +88,6 @@ public final class PhoneStatusBarTransitions extends BarTransitions {
anims.playTogether(
animateTransitionTo(mLeftSide, newAlpha),
animateTransitionTo(mStatusIcons, newAlpha),
- animateTransitionTo(mDivider, newAlpha),
animateTransitionTo(mBattery, newAlphaBC)
);
if (isLightsOut(mode)) {
@@ -100,8 +98,7 @@ public final class PhoneStatusBarTransitions extends BarTransitions {
} else {
mLeftSide.setAlpha(newAlpha);
mStatusIcons.setAlpha(newAlpha);
- mDivider.setAlpha(newAlpha);
mBattery.setAlpha(newAlphaBC);
}
}
-} \ No newline at end of file
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
index ffbbffc0d8d9..f3b0a79f9518 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java
@@ -25,7 +25,6 @@ import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Point;
import android.graphics.Rect;
-import android.provider.DeviceConfig;
import android.util.AttributeSet;
import android.util.EventLog;
import android.util.Pair;
@@ -40,8 +39,6 @@ import android.view.accessibility.AccessibilityEvent;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
-import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
-import com.android.systemui.DarkReceiverImpl;
import com.android.systemui.Dependency;
import com.android.systemui.EventLogTags;
import com.android.systemui.R;
@@ -81,9 +78,6 @@ public class PhoneStatusBarView extends PanelBar {
@Nullable
private DisplayCutout mDisplayCutout;
- private DarkReceiverImpl mSplitDivider;
- private View mDividerContainer;
- private QsSplitPropertyListener mPropertyListener;
/**
* Draw this many pixels into the left/right side of the cutout to optimally use the space
*/
@@ -115,10 +109,6 @@ public class PhoneStatusBarView extends PanelBar {
mBattery = findViewById(R.id.battery);
mCutoutSpace = findViewById(R.id.cutout_space_view);
mCenterIconSpace = findViewById(R.id.centered_icon_area);
- mSplitDivider = findViewById(R.id.divider);
- mDividerContainer = findViewById(R.id.divider_container);
- maybeShowDivider(true);
- mPropertyListener = new QsSplitPropertyListener(mDividerContainer);
updateResources();
}
@@ -128,26 +118,16 @@ public class PhoneStatusBarView extends PanelBar {
super.onAttachedToWindow();
// Always have Battery meters in the status bar observe the dark/light modes.
Dependency.get(DarkIconDispatcher.class).addDarkReceiver(mBattery);
- Dependency.get(DarkIconDispatcher.class).addDarkReceiver(mSplitDivider);
- maybeShowDivider(true);
if (updateOrientationAndCutout(getResources().getConfiguration().orientation)) {
updateLayoutForCutout();
}
- if (mPropertyListener != null) {
- DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_SYSTEMUI,
- mContext.getMainExecutor(), mPropertyListener);
- }
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
Dependency.get(DarkIconDispatcher.class).removeDarkReceiver(mBattery);
- Dependency.get(DarkIconDispatcher.class).removeDarkReceiver(mSplitDivider);
mDisplayCutout = null;
- if (mPropertyListener != null) {
- DeviceConfig.removeOnPropertiesChangedListener(mPropertyListener);
- }
}
@Override
@@ -216,7 +196,6 @@ public class PhoneStatusBarView extends PanelBar {
public void onPanelPeeked() {
super.onPanelPeeked();
mBar.makeExpandedVisible(false);
- maybeShowDivider(!mBar.mPanelExpanded);
}
@Override
@@ -225,7 +204,6 @@ public class PhoneStatusBarView extends PanelBar {
// Close the status bar in the next frame so we can show the end of the animation.
post(mHideExpandedRunnable);
mIsFullyOpenedPanel = false;
- maybeShowDivider(!mBar.mPanelExpanded);
}
public void removePendingHideExpandedRunnables() {
@@ -239,7 +217,6 @@ public class PhoneStatusBarView extends PanelBar {
mPanel.getView().sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
}
mIsFullyOpenedPanel = true;
- maybeShowDivider(!mBar.mPanelExpanded);
}
@Override
@@ -263,28 +240,24 @@ public class PhoneStatusBarView extends PanelBar {
mBar.onTrackingStarted();
mScrimController.onTrackingStarted();
removePendingHideExpandedRunnables();
- maybeShowDivider(!mBar.mPanelExpanded);
}
@Override
public void onClosingFinished() {
super.onClosingFinished();
mBar.onClosingFinished();
- maybeShowDivider(!mBar.mPanelExpanded);
}
@Override
public void onTrackingStopped(boolean expand) {
super.onTrackingStopped(expand);
mBar.onTrackingStopped(expand);
- maybeShowDivider(!mBar.mPanelExpanded);
}
@Override
public void onExpandingFinished() {
super.onExpandingFinished();
mScrimController.onExpandingFinished();
- maybeShowDivider(!mBar.mPanelExpanded);
}
@Override
@@ -416,31 +389,4 @@ public class PhoneStatusBarView extends PanelBar {
protected boolean shouldPanelBeVisible() {
return mHeadsUpVisible || super.shouldPanelBeVisible();
}
-
- void maybeShowDivider(boolean showDivider) {
- int state =
- showDivider && NotificationPanelViewController.isQsSplitEnabled()
- ? View.VISIBLE : View.GONE;
- mDividerContainer.setVisibility(state);
- }
-
- private static class QsSplitPropertyListener implements
- DeviceConfig.OnPropertiesChangedListener {
- private final View mDivider;
-
- QsSplitPropertyListener(View divider) {
- mDivider = divider;
- }
-
- @Override
- public void onPropertiesChanged(DeviceConfig.Properties properties) {
- if (properties.getNamespace().equals(DeviceConfig.NAMESPACE_SYSTEMUI)
- && properties.getKeyset().contains(
- SystemUiDeviceConfigFlags.QS_SPLIT_ENABLED)) {
- boolean splitEnabled = properties.getBoolean(
- SystemUiDeviceConfigFlags.QS_SPLIT_ENABLED, false);
- mDivider.setVisibility(splitEnabled ? VISIBLE : GONE);
- }
- }
- }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index 1726b4884aff..11f70796748c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -168,12 +168,10 @@ import com.android.systemui.statusbar.BackDropView;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.CrossFadeHelper;
import com.android.systemui.statusbar.EmptyShadeView;
-import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.GestureRecorder;
import com.android.systemui.statusbar.KeyboardShortcuts;
import com.android.systemui.statusbar.KeyguardIndicationController;
import com.android.systemui.statusbar.NavigationBarController;
-import com.android.systemui.statusbar.NotificationListener;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationMediaManager;
import com.android.systemui.statusbar.NotificationPresenter;
@@ -191,15 +189,11 @@ import com.android.systemui.statusbar.notification.BypassHeadsUpNotifier;
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
import com.android.systemui.statusbar.notification.NotificationActivityStarter;
import com.android.systemui.statusbar.notification.NotificationAlertingManager;
-import com.android.systemui.statusbar.notification.NotificationClicker;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider;
-import com.android.systemui.statusbar.notification.NotificationListController;
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
import com.android.systemui.statusbar.notification.VisualStabilityManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
-import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl;
-import com.android.systemui.statusbar.notification.collection.init.NotifPipelineInitializer;
+import com.android.systemui.statusbar.notification.init.NotificationsController;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
@@ -218,7 +212,6 @@ import com.android.systemui.statusbar.policy.KeyguardUserSwitcher;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
-import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.volume.VolumeComponent;
@@ -356,7 +349,6 @@ public class StatusBar extends SystemUI implements DemoMode,
private final Object mQueueLock = new Object();
- private final FeatureFlags mFeatureFlags;
private final StatusBarIconController mIconController;
private final PulseExpansionHandler mPulseExpansionHandler;
private final NotificationWakeUpCoordinator mWakeUpCoordinator;
@@ -365,7 +357,6 @@ public class StatusBar extends SystemUI implements DemoMode,
private final HeadsUpManagerPhone mHeadsUpManager;
private final DynamicPrivacyController mDynamicPrivacyController;
private final BypassHeadsUpNotifier mBypassHeadsUpNotifier;
- private final Lazy<NotifPipelineInitializer> mNewNotifPipeline;
private final FalsingManager mFalsingManager;
private final BroadcastDispatcher mBroadcastDispatcher;
private final ConfigurationController mConfigurationController;
@@ -374,7 +365,6 @@ public class StatusBar extends SystemUI implements DemoMode,
private final Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy;
private final Provider<StatusBarComponent.Builder> mStatusBarComponentBuilder;
private final PluginManager mPluginManager;
- private final RemoteInputUriController mRemoteInputUriController;
private final Optional<Divider> mDividerOptional;
private final StatusBarNotificationActivityStarter.Builder
mStatusBarNotificationActivityStarterBuilder;
@@ -387,8 +377,8 @@ public class StatusBar extends SystemUI implements DemoMode,
private final KeyguardDismissUtil mKeyguardDismissUtil;
private final ExtensionController mExtensionController;
private final UserInfoControllerImpl mUserInfoControllerImpl;
- private final NotificationRowBinderImpl mNotificationRowBinder;
private final DismissCallbackRegistry mDismissCallbackRegistry;
+ private NotificationsController mNotificationsController;
// expanded notifications
// the sliding/resizing panel within the notification window
@@ -412,8 +402,6 @@ public class StatusBar extends SystemUI implements DemoMode,
private final NotificationGutsManager mGutsManager;
private final NotificationLogger mNotificationLogger;
- private final NotificationEntryManager mEntryManager;
- private NotificationListController mNotificationListController;
private final NotificationInterruptionStateProvider mNotificationInterruptionStateProvider;
private final NotificationViewHierarchyManager mViewHierarchyManager;
private final KeyguardViewMediator mKeyguardViewMediator;
@@ -589,7 +577,7 @@ public class StatusBar extends SystemUI implements DemoMode,
@Override
public void onStrongAuthStateChanged(int userId) {
super.onStrongAuthStateChanged(userId);
- mEntryManager.updateNotifications("onStrongAuthStateChanged");
+ mNotificationsController.requestNotificationUpdate("onStrongAuthStateChanged");
}
};
private final Handler mMainThreadHandler = new Handler(Looper.getMainLooper());
@@ -614,7 +602,7 @@ public class StatusBar extends SystemUI implements DemoMode,
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
public StatusBar(
Context context,
- FeatureFlags featureFlags,
+ NotificationsController notificationsController,
LightBarController lightBarController,
AutoHideController autoHideController,
KeyguardUpdateMonitor keyguardUpdateMonitor,
@@ -626,13 +614,11 @@ public class StatusBar extends SystemUI implements DemoMode,
HeadsUpManagerPhone headsUpManagerPhone,
DynamicPrivacyController dynamicPrivacyController,
BypassHeadsUpNotifier bypassHeadsUpNotifier,
- Lazy<NotifPipelineInitializer> newNotifPipeline,
FalsingManager falsingManager,
BroadcastDispatcher broadcastDispatcher,
RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler,
NotificationGutsManager notificationGutsManager,
NotificationLogger notificationLogger,
- NotificationEntryManager notificationEntryManager,
NotificationInterruptionStateProvider notificationInterruptionStateProvider,
NotificationViewHierarchyManager notificationViewHierarchyManager,
KeyguardViewMediator keyguardViewMediator,
@@ -653,12 +639,10 @@ public class StatusBar extends SystemUI implements DemoMode,
VibratorHelper vibratorHelper,
BubbleController bubbleController,
NotificationGroupManager groupManager,
- NotificationGroupAlertTransferHelper groupAlertTransferHelper,
VisualStabilityManager visualStabilityManager,
DeviceProvisionedController deviceProvisionedController,
NavigationBarController navigationBarController,
Lazy<AssistManager> assistManagerLazy,
- NotificationListener notificationListener,
ConfigurationController configurationController,
NotificationShadeWindowController notificationShadeWindowController,
LockscreenLockIconController lockscreenLockIconController,
@@ -676,7 +660,6 @@ public class StatusBar extends SystemUI implements DemoMode,
Optional<Recents> recentsOptional,
Provider<StatusBarComponent.Builder> statusBarComponentBuilder,
PluginManager pluginManager,
- RemoteInputUriController remoteInputUriController,
Optional<Divider> dividerOptional,
LightsOutNotifController lightsOutNotifController,
StatusBarNotificationActivityStarter.Builder
@@ -692,10 +675,9 @@ public class StatusBar extends SystemUI implements DemoMode,
KeyguardDismissUtil keyguardDismissUtil,
ExtensionController extensionController,
UserInfoControllerImpl userInfoControllerImpl,
- NotificationRowBinderImpl notificationRowBinder,
DismissCallbackRegistry dismissCallbackRegistry) {
super(context);
- mFeatureFlags = featureFlags;
+ mNotificationsController = notificationsController;
mLightBarController = lightBarController;
mAutoHideController = autoHideController;
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
@@ -707,13 +689,11 @@ public class StatusBar extends SystemUI implements DemoMode,
mHeadsUpManager = headsUpManagerPhone;
mDynamicPrivacyController = dynamicPrivacyController;
mBypassHeadsUpNotifier = bypassHeadsUpNotifier;
- mNewNotifPipeline = newNotifPipeline;
mFalsingManager = falsingManager;
mBroadcastDispatcher = broadcastDispatcher;
mRemoteInputQuickSettingsDisabler = remoteInputQuickSettingsDisabler;
mGutsManager = notificationGutsManager;
mNotificationLogger = notificationLogger;
- mEntryManager = notificationEntryManager;
mNotificationInterruptionStateProvider = notificationInterruptionStateProvider;
mViewHierarchyManager = notificationViewHierarchyManager;
mKeyguardViewMediator = keyguardViewMediator;
@@ -734,12 +714,10 @@ public class StatusBar extends SystemUI implements DemoMode,
mVibratorHelper = vibratorHelper;
mBubbleController = bubbleController;
mGroupManager = groupManager;
- mGroupAlertTransferHelper = groupAlertTransferHelper;
mVisualStabilityManager = visualStabilityManager;
mDeviceProvisionedController = deviceProvisionedController;
mNavigationBarController = navigationBarController;
mAssistManagerLazy = assistManagerLazy;
- mNotificationListener = notificationListener;
mConfigurationController = configurationController;
mNotificationShadeWindowController = notificationShadeWindowController;
mLockscreenLockIconController = lockscreenLockIconController;
@@ -757,7 +735,6 @@ public class StatusBar extends SystemUI implements DemoMode,
mRecentsOptional = recentsOptional;
mStatusBarComponentBuilder = statusBarComponentBuilder;
mPluginManager = pluginManager;
- mRemoteInputUriController = remoteInputUriController;
mDividerOptional = dividerOptional;
mStatusBarNotificationActivityStarterBuilder = statusBarNotificationActivityStarterBuilder;
mShadeController = shadeController;
@@ -771,12 +748,11 @@ public class StatusBar extends SystemUI implements DemoMode,
mKeyguardDismissUtil = keyguardDismissUtil;
mExtensionController = extensionController;
mUserInfoControllerImpl = userInfoControllerImpl;
- mNotificationRowBinder = notificationRowBinder;
mDismissCallbackRegistry = dismissCallbackRegistry;
mBubbleExpandListener =
(isExpanding, key) -> {
- mEntryManager.updateNotifications("onBubbleExpandChanged");
+ mNotificationsController.requestNotificationUpdate("onBubbleExpandChanged");
updateScrimController();
};
@@ -786,11 +762,10 @@ public class StatusBar extends SystemUI implements DemoMode,
@Override
public void start() {
- mNotificationListener.registerAsSystemService();
mScreenLifecycle.addObserver(mScreenObserver);
mWakefulnessLifecycle.addObserver(mWakefulnessObserver);
mUiModeManager = mContext.getSystemService(UiModeManager.class);
- mBypassHeadsUpNotifier.setUp(mEntryManager);
+ mBypassHeadsUpNotifier.setUp();
mBubbleController.setExpandListener(mBubbleExpandListener);
mActivityIntentHelper = new ActivityIntentHelper(mContext);
@@ -1060,12 +1035,8 @@ public class StatusBar extends SystemUI implements DemoMode,
mConfigurationController.addCallback(mHeadsUpManager);
mHeadsUpManager.addListener(this);
mHeadsUpManager.addListener(mNotificationPanelViewController.getOnHeadsUpChangedListener());
- mHeadsUpManager.addListener(mGroupManager);
- mHeadsUpManager.addListener(mGroupAlertTransferHelper);
mHeadsUpManager.addListener(mVisualStabilityManager);
mNotificationPanelViewController.setHeadsUpManager(mHeadsUpManager);
- mGroupManager.setHeadsUpManager(mHeadsUpManager);
- mGroupAlertTransferHelper.setHeadsUpManager(mHeadsUpManager);
mNotificationLogger.setHeadsUpManager(mHeadsUpManager);
createNavigationBar(result);
@@ -1243,16 +1214,10 @@ public class StatusBar extends SystemUI implements DemoMode,
mPresenter = new StatusBarNotificationPresenter(mContext, mNotificationPanelViewController,
mHeadsUpManager, mNotificationShadeWindowView, mStackScroller, mDozeScrimController,
mScrimController, mActivityLaunchAnimator, mDynamicPrivacyController,
- mNotificationAlertingManager, mNotificationRowBinder, mKeyguardStateController,
+ mNotificationAlertingManager, mKeyguardStateController,
mKeyguardIndicationController,
this /* statusBar */, mShadeController, mCommandQueue, mInitController);
- mNotificationListController =
- new NotificationListController(
- mEntryManager,
- (NotificationListContainer) mStackScroller,
- mDeviceProvisionedController);
-
mNotificationShelf.setOnActivatedListener(mPresenter);
mRemoteInputManager.getController().addCallback(mNotificationShadeWindowController);
@@ -1266,22 +1231,12 @@ public class StatusBar extends SystemUI implements DemoMode,
mGutsManager.setNotificationActivityStarter(mNotificationActivityStarter);
- if (!mFeatureFlags.isNewNotifPipelineRenderingEnabled()) {
- mNotificationRowBinder.setInflationCallback(mEntryManager);
- }
-
- mRemoteInputUriController.attach(mEntryManager);
-
- mNotificationRowBinder.setNotificationClicker(new NotificationClicker(
- Optional.of(this), mBubbleController, mNotificationActivityStarter));
-
- mGroupAlertTransferHelper.bind(mEntryManager, mGroupManager);
- mNotificationListController.bind();
-
- if (mFeatureFlags.isNewNotifPipelineEnabled()) {
- mNewNotifPipeline.get().initialize(mNotificationListener, mNotificationRowBinder);
- }
- mEntryManager.attach(mNotificationListener);
+ mNotificationsController.initialize(
+ this,
+ mPresenter,
+ (NotificationListContainer) mStackScroller,
+ mNotificationActivityStarter,
+ mPresenter);
}
/**
@@ -1518,7 +1473,7 @@ public class StatusBar extends SystemUI implements DemoMode,
* @param reason why we're requesting a notification update
*/
public void requestNotificationUpdate(String reason) {
- mEntryManager.updateNotifications(reason);
+ mNotificationsController.requestNotificationUpdate(reason);
}
/**
@@ -1726,7 +1681,7 @@ public class StatusBar extends SystemUI implements DemoMode,
@Override
public void onHeadsUpStateChanged(NotificationEntry entry, boolean isHeadsUp) {
- mEntryManager.updateNotifications("onHeadsUpStateChanged");
+ mNotificationsController.requestNotificationUpdate("onHeadsUpStateChanged");
if (mStatusBarStateController.isDozing() && isHeadsUp) {
entry.setPulseSuppressed(false);
mDozeServiceHost.fireNotificationPulse(entry);
@@ -2485,11 +2440,9 @@ public class StatusBar extends SystemUI implements DemoMode,
mStatusBarKeyguardViewManager.dump(pw);
}
- if (DUMPTRUCK) {
- synchronized (mEntryManager) {
- mEntryManager.dump(pw, " ");
- }
+ mNotificationsController.dump(fd, pw, args, DUMPTRUCK);
+ if (DUMPTRUCK) {
if (false) {
pw.println("see the logcat for a dump of the views we have created.");
// must happen on ui thread
@@ -2512,11 +2465,6 @@ public class StatusBar extends SystemUI implements DemoMode,
} else {
pw.println(" mHeadsUpManager: null");
}
- if (mGroupManager != null) {
- mGroupManager.dump(fd, pw, args);
- } else {
- pw.println(" mGroupManager: null");
- }
if (mBubbleController != null) {
mBubbleController.dump(fd, pw, args);
@@ -2747,9 +2695,7 @@ public class StatusBar extends SystemUI implements DemoMode,
};
public void resetUserExpandedStates() {
- for (NotificationEntry entry : mEntryManager.getVisibleNotifications()) {
- entry.resetUserExpansion();
- }
+ mNotificationsController.resetUserExpandedStates();
}
private void executeWhenUnlocked(OnDismissAction action, boolean requiresShadeOpen) {
@@ -2855,7 +2801,7 @@ public class StatusBar extends SystemUI implements DemoMode,
try {
// consider the transition from peek to expanded to be a panel open,
// but not one that clears notification effects.
- int notificationLoad = mEntryManager.getActiveNotificationsCount();
+ int notificationLoad = mNotificationsController.getActiveNotificationsCount();
mBarService.onPanelRevealed(false, notificationLoad);
} catch (RemoteException ex) {
// Won't fail unless the world has ended.
@@ -2873,7 +2819,7 @@ public class StatusBar extends SystemUI implements DemoMode,
!mPresenter.isPresenterFullyCollapsed() &&
(mState == StatusBarState.SHADE
|| mState == StatusBarState.SHADE_LOCKED);
- int notificationLoad = mEntryManager.getActiveNotificationsCount();
+ int notificationLoad = mNotificationsController.getActiveNotificationsCount();
if (pinnedHeadsUp && mPresenter.isPresenterFullyCollapsed()) {
notificationLoad = 1;
}
@@ -3514,7 +3460,7 @@ public class StatusBar extends SystemUI implements DemoMode,
updateQsExpansionEnabled();
mKeyguardViewMediator.setDozing(mDozing);
- mEntryManager.updateNotifications("onDozingChanged");
+ mNotificationsController.requestNotificationUpdate("onDozingChanged");
updateDozingState();
mDozeServiceHost.updateDozing();
updateScrimController();
@@ -3965,7 +3911,6 @@ public class StatusBar extends SystemUI implements DemoMode,
protected ViewGroup mStackScroller;
private final NotificationGroupManager mGroupManager;
- private final NotificationGroupAlertTransferHelper mGroupAlertTransferHelper;
// handling reordering
private final VisualStabilityManager mVisualStabilityManager;
@@ -4032,21 +3977,12 @@ public class StatusBar extends SystemUI implements DemoMode,
}
};
- private final NotificationListener mNotificationListener;
-
public void setNotificationSnoozed(StatusBarNotification sbn, SnoozeOption snoozeOption) {
- if (snoozeOption.getSnoozeCriterion() != null) {
- mNotificationListener.snoozeNotification(sbn.getKey(),
- snoozeOption.getSnoozeCriterion().getId());
- } else {
- mNotificationListener.snoozeNotification(sbn.getKey(),
- snoozeOption.getMinutesToSnoozeFor() * 60 * 1000);
- }
+ mNotificationsController.setNotificationSnoozed(sbn, snoozeOption);
}
public void setNotificationSnoozed(StatusBarNotification sbn, int hoursToSnooze) {
- mNotificationListener.snoozeNotification(sbn.getKey(),
- hoursToSnooze * 60 * 60 * 1000);
+ mNotificationsController.setNotificationSnoozed(sbn, hoursToSnooze);
}
@Override
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 86a81ce3d1f1..6a046884e835 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -16,6 +16,9 @@
package com.android.systemui.statusbar.phone;
+import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL;
+import static android.view.ViewRootImpl.sNewInsetsMode;
+import static android.view.WindowInsets.Type.navigationBars;
import static com.android.systemui.plugins.ActivityStarter.OnDismissAction;
import static com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_UNLOCK_FADING;
import static com.android.systemui.statusbar.phone.BiometricUnlockController.MODE_WAKE_AND_UNLOCK;
@@ -789,7 +792,12 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
private Runnable mMakeNavigationBarVisibleRunnable = new Runnable() {
@Override
public void run() {
- mStatusBar.getNavigationBarView().getRootView().setVisibility(View.VISIBLE);
+ if (ViewRootImpl.sNewInsetsMode == NEW_INSETS_MODE_FULL) {
+ mStatusBar.getNotificationShadeWindowView().getWindowInsetsController()
+ .show(navigationBars());
+ } else {
+ mStatusBar.getNavigationBarView().getRootView().setVisibility(View.VISIBLE);
+ }
}
};
@@ -856,7 +864,12 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
}
} else {
mContainer.removeCallbacks(mMakeNavigationBarVisibleRunnable);
- mStatusBar.getNavigationBarView().getRootView().setVisibility(View.GONE);
+ if (sNewInsetsMode == NEW_INSETS_MODE_FULL) {
+ mStatusBar.getNotificationShadeWindowView().getWindowInsetsController()
+ .hide(navigationBars());
+ } else {
+ mStatusBar.getNavigationBarView().getRootView().setVisibility(View.GONE);
+ }
}
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java
index 7615bf826287..15a0e08e285f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarModule.java
@@ -46,9 +46,7 @@ import com.android.systemui.recents.ScreenPinningRequest;
import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
-import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.NavigationBarController;
-import com.android.systemui.statusbar.NotificationListener;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationMediaManager;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
@@ -61,12 +59,10 @@ import com.android.systemui.statusbar.VibratorHelper;
import com.android.systemui.statusbar.notification.BypassHeadsUpNotifier;
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
import com.android.systemui.statusbar.notification.NotificationAlertingManager;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider;
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
import com.android.systemui.statusbar.notification.VisualStabilityManager;
-import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl;
-import com.android.systemui.statusbar.notification.collection.init.NotifPipelineInitializer;
+import com.android.systemui.statusbar.notification.init.NotificationsController;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
@@ -77,7 +73,6 @@ import com.android.systemui.statusbar.policy.ExtensionController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
-import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.volume.VolumeComponent;
@@ -105,7 +100,7 @@ public class StatusBarModule {
@Singleton
static StatusBar provideStatusBar(
Context context,
- FeatureFlags featureFlags,
+ NotificationsController notificationsController,
LightBarController lightBarController,
AutoHideController autoHideController,
KeyguardUpdateMonitor keyguardUpdateMonitor,
@@ -117,13 +112,11 @@ public class StatusBarModule {
HeadsUpManagerPhone headsUpManagerPhone,
DynamicPrivacyController dynamicPrivacyController,
BypassHeadsUpNotifier bypassHeadsUpNotifier,
- Lazy<NotifPipelineInitializer> newNotifPipeline,
FalsingManager falsingManager,
BroadcastDispatcher broadcastDispatcher,
RemoteInputQuickSettingsDisabler remoteInputQuickSettingsDisabler,
NotificationGutsManager notificationGutsManager,
NotificationLogger notificationLogger,
- NotificationEntryManager notificationEntryManager,
NotificationInterruptionStateProvider notificationInterruptionStateProvider,
NotificationViewHierarchyManager notificationViewHierarchyManager,
KeyguardViewMediator keyguardViewMediator,
@@ -144,12 +137,10 @@ public class StatusBarModule {
VibratorHelper vibratorHelper,
BubbleController bubbleController,
NotificationGroupManager groupManager,
- NotificationGroupAlertTransferHelper groupAlertTransferHelper,
VisualStabilityManager visualStabilityManager,
DeviceProvisionedController deviceProvisionedController,
NavigationBarController navigationBarController,
Lazy<AssistManager> assistManagerLazy,
- NotificationListener notificationListener,
ConfigurationController configurationController,
NotificationShadeWindowController notificationShadeWindowController,
LockscreenLockIconController lockscreenLockIconController,
@@ -167,7 +158,6 @@ public class StatusBarModule {
Optional<Recents> recentsOptional,
Provider<StatusBarComponent.Builder> statusBarComponentBuilder,
PluginManager pluginManager,
- RemoteInputUriController remoteInputUriController,
Optional<Divider> dividerOptional,
LightsOutNotifController lightsOutNotifController,
StatusBarNotificationActivityStarter.Builder
@@ -183,11 +173,10 @@ public class StatusBarModule {
KeyguardDismissUtil keyguardDismissUtil,
ExtensionController extensionController,
UserInfoControllerImpl userInfoControllerImpl,
- NotificationRowBinderImpl notificationRowBinder,
DismissCallbackRegistry dismissCallbackRegistry) {
return new StatusBar(
context,
- featureFlags,
+ notificationsController,
lightBarController,
autoHideController,
keyguardUpdateMonitor,
@@ -199,13 +188,11 @@ public class StatusBarModule {
headsUpManagerPhone,
dynamicPrivacyController,
bypassHeadsUpNotifier,
- newNotifPipeline,
falsingManager,
broadcastDispatcher,
remoteInputQuickSettingsDisabler,
notificationGutsManager,
notificationLogger,
- notificationEntryManager,
notificationInterruptionStateProvider,
notificationViewHierarchyManager,
keyguardViewMediator,
@@ -226,12 +213,10 @@ public class StatusBarModule {
vibratorHelper,
bubbleController,
groupManager,
- groupAlertTransferHelper,
visualStabilityManager,
deviceProvisionedController,
navigationBarController,
assistManagerLazy,
- notificationListener,
configurationController,
notificationShadeWindowController,
lockscreenLockIconController,
@@ -249,7 +234,6 @@ public class StatusBarModule {
recentsOptional,
statusBarComponentBuilder,
pluginManager,
- remoteInputUriController,
dividerOptional,
lightsOutNotifController,
statusBarNotificationActivityStarterBuilder,
@@ -264,7 +248,6 @@ public class StatusBarModule {
keyguardDismissUtil,
extensionController,
userInfoControllerImpl,
- notificationRowBinder,
dismissCallbackRegistry);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
index 1336b2de82d3..2485513abba5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenter.java
@@ -141,7 +141,6 @@ public class StatusBarNotificationPresenter implements NotificationPresenter,
ActivityLaunchAnimator activityLaunchAnimator,
DynamicPrivacyController dynamicPrivacyController,
NotificationAlertingManager notificationAlertingManager,
- NotificationRowBinderImpl notificationRowBinder,
KeyguardStateController keyguardStateController,
KeyguardIndicationController keyguardIndicationController,
StatusBar statusBar,
@@ -216,8 +215,6 @@ public class StatusBarNotificationPresenter implements NotificationPresenter,
mEntryManager.addNotificationLifetimeExtender(mGutsManager);
mEntryManager.addNotificationLifetimeExtenders(
remoteInputManager.getLifetimeExtenders());
- notificationRowBinder.setUpWithPresenter(this, notifListContainer, mHeadsUpManager,
- this);
mNotificationInterruptionStateProvider.setUpWithPresenter(
this, mHeadsUpManager, this::canHeadsUp);
mLockscreenUserManager.setUpWithPresenter(this);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
index 2907cd41a0db..8dfcb0ac215d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
@@ -134,6 +134,8 @@ public class UserSwitcherController implements Dumpable {
mBroadcastDispatcher.registerReceiver(
mReceiver, filter, null /* handler */, UserHandle.SYSTEM);
+ mSimpleUserSwitcher = shouldUseSimpleUserSwitcher();
+
mSecondaryUserServiceIntent = new Intent(context, SystemUISecondaryUserService.class);
filter = new IntentFilter();
@@ -258,22 +260,20 @@ public class UserSwitcherController implements Dumpable {
&& mUserManager.canAddMoreUsers();
boolean createIsRestricted = !addUsersWhenLocked;
- if (!mSimpleUserSwitcher) {
- if (guestRecord == null) {
- if (canCreateGuest) {
- guestRecord = new UserRecord(null /* info */, null /* picture */,
- true /* isGuest */, false /* isCurrent */,
- false /* isAddUser */, createIsRestricted, canSwitchUsers);
- checkIfAddUserDisallowedByAdminOnly(guestRecord);
- records.add(guestRecord);
- }
- } else {
- int index = guestRecord.isCurrent ? 0 : records.size();
- records.add(index, guestRecord);
+ if (guestRecord == null) {
+ if (canCreateGuest) {
+ guestRecord = new UserRecord(null /* info */, null /* picture */,
+ true /* isGuest */, false /* isCurrent */,
+ false /* isAddUser */, createIsRestricted, canSwitchUsers);
+ checkIfAddUserDisallowedByAdminOnly(guestRecord);
+ records.add(guestRecord);
}
+ } else {
+ int index = guestRecord.isCurrent ? 0 : records.size();
+ records.add(index, guestRecord);
}
- if (!mSimpleUserSwitcher && canCreateUser) {
+ if (canCreateUser) {
UserRecord addUserRecord = new UserRecord(null /* info */, null /* picture */,
false /* isGuest */, false /* isCurrent */, true /* isAddUser */,
createIsRestricted, canSwitchUsers);
@@ -562,8 +562,7 @@ public class UserSwitcherController implements Dumpable {
private final ContentObserver mSettingsObserver = new ContentObserver(new Handler()) {
public void onChange(boolean selfChange) {
- mSimpleUserSwitcher = Settings.Global.getInt(mContext.getContentResolver(),
- SIMPLE_USER_SWITCHER_GLOBAL_SETTING, 0) != 0;
+ mSimpleUserSwitcher = shouldUseSimpleUserSwitcher();
mAddUsersWhenLocked = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.ADD_USERS_WHEN_LOCKED, 0) != 0;
refreshUsers(UserHandle.USER_NULL);
@@ -579,6 +578,7 @@ public class UserSwitcherController implements Dumpable {
final UserRecord u = mUsers.get(i);
pw.print(" "); pw.println(u.toString());
}
+ pw.println("mSimpleUserSwitcher=" + mSimpleUserSwitcher);
}
public String getCurrentUserName(Context context) {
@@ -717,6 +717,13 @@ public class UserSwitcherController implements Dumpable {
}
}
+ private boolean shouldUseSimpleUserSwitcher() {
+ int defaultSimpleUserSwitcher = mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_expandLockScreenUserSwitcher) ? 1 : 0;
+ return Settings.Global.getInt(mContext.getContentResolver(),
+ SIMPLE_USER_SWITCHER_GLOBAL_SETTING, defaultSimpleUserSwitcher) != 0;
+ }
+
public void startActivity(Intent intent) {
mActivityStarter.startActivity(intent, true);
}
diff --git a/packages/SystemUI/src/com/android/systemui/tracing/sysui_trace.proto b/packages/SystemUI/src/com/android/systemui/tracing/sysui_trace.proto
index 08ae99ceb7a1..d940a6b5c460 100644
--- a/packages/SystemUI/src/com/android/systemui/tracing/sysui_trace.proto
+++ b/packages/SystemUI/src/com/android/systemui/tracing/sysui_trace.proto
@@ -29,3 +29,29 @@ message EdgeBackGestureHandlerProto {
optional bool allow_gesture = 1;
}
+
+/* represents a file full of system ui trace entries.
+ Encoded, it should start with 0x9 0x53 0x59 0x53 0x55 0x49 0x54 0x52 0x43 (.SYSUITRC), such
+ that they can be easily identified. */
+message SystemUiTraceFileProto {
+
+ /* constant; MAGIC_NUMBER = (long) MAGIC_NUMBER_H << 32 | MagicNumber.MAGIC_NUMBER_L
+ (this is needed because enums have to be 32 bits and there's no nice way to put 64bit
+ constants into .proto files. */
+ enum MagicNumber {
+ INVALID = 0;
+ MAGIC_NUMBER_L = 0x55535953; /* SYSU (little-endian ASCII) */
+ MAGIC_NUMBER_H = 0x43525449; /* ITRC (little-endian ASCII) */
+ }
+
+ optional fixed64 magic_number = 1; /* Must be the first field, set to value in MagicNumber */
+ repeated SystemUiTraceEntryProto entry = 2;
+}
+
+/* one system ui trace entry. */
+message SystemUiTraceEntryProto {
+ /* required: elapsed realtime in nanos since boot of when this entry was logged */
+ optional fixed64 elapsed_realtime_nanos = 1;
+
+ optional SystemUiTraceProto system_ui = 3;
+}
diff --git a/packages/SystemUI/src/com/android/systemui/tracing/sysui_trace_file.proto b/packages/SystemUI/src/com/android/systemui/tracing/sysui_trace_file.proto
deleted file mode 100644
index d1523ef13501..000000000000
--- a/packages/SystemUI/src/com/android/systemui/tracing/sysui_trace_file.proto
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto2";
-
-import "frameworks/base/packages/SystemUI/src/com/android/systemui/tracing/sysui_trace.proto";
-
-package com.android.systemui.tracing;
-
-option java_multiple_files = true;
-
-/* represents a file full of system ui trace entries.
- Encoded, it should start with 0x9 0x53 0x59 0x53 0x55 0x49 0x54 0x52 0x43 (.SYSUITRC), such
- that they can be easily identified. */
-message SystemUiTraceFileProto {
-
- /* constant; MAGIC_NUMBER = (long) MAGIC_NUMBER_H << 32 | MagicNumber.MAGIC_NUMBER_L
- (this is needed because enums have to be 32 bits and there's no nice way to put 64bit
- constants into .proto files. */
- enum MagicNumber {
- INVALID = 0;
- MAGIC_NUMBER_L = 0x55535953; /* SYSU (little-endian ASCII) */
- MAGIC_NUMBER_H = 0x43525449; /* ITRC (little-endian ASCII) */
- }
-
- optional fixed64 magic_number = 1; /* Must be the first field, set to value in MagicNumber */
- repeated SystemUiTraceEntryProto entry = 2;
-}
-
-/* one system ui trace entry. */
-message SystemUiTraceEntryProto {
- /* required: elapsed realtime in nanos since boot of when this entry was logged */
- optional fixed64 elapsed_realtime_nanos = 1;
-
- optional SystemUiTraceProto system_ui = 3;
-}
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/DemoModeFragment.java b/packages/SystemUI/src/com/android/systemui/tuner/DemoModeFragment.java
index a60ca6201419..49ada1a5e41e 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/DemoModeFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/DemoModeFragment.java
@@ -158,7 +158,7 @@ public class DemoModeFragment extends PreferenceFragment implements OnPreference
String demoTime = "1010"; // 10:10, a classic choice of horologists
try {
- String[] versionParts = android.os.Build.VERSION.RELEASE.split("\\.");
+ String[] versionParts = android.os.Build.VERSION.RELEASE_OR_CODENAME.split("\\.");
int majorVersion = Integer.valueOf(versionParts[0]);
demoTime = String.format("%02d00", majorVersion % 24);
} catch (IllegalArgumentException ex) {
diff --git a/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIBinder.java b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIBinder.java
new file mode 100644
index 000000000000..264ddc026781
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIBinder.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.tv;
+
+import com.android.systemui.dagger.SystemUIRootComponent;
+
+import dagger.Binds;
+import dagger.Module;
+
+@Module
+interface TvSystemUIBinder {
+ @Binds
+ SystemUIRootComponent bindSystemUIRootComponent(TvSystemUIRootComponent systemUIRootComponent);
+}
diff --git a/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIFactory.java
new file mode 100644
index 000000000000..7d3ec678fd5f
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIFactory.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.tv;
+
+import android.content.Context;
+
+import com.android.systemui.SystemUIFactory;
+import com.android.systemui.dagger.SystemUIRootComponent;
+
+/**
+ * TV variant {@link SystemUIFactory}, that substitutes default {@link SystemUIRootComponent} for
+ * {@link TvSystemUIRootComponent}
+ */
+public class TvSystemUIFactory extends SystemUIFactory {
+ @Override
+ protected SystemUIRootComponent buildSystemUIRootComponent(Context context) {
+ return DaggerTvSystemUIRootComponent.builder()
+ .context(context)
+ .build();
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIRootComponent.java b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIRootComponent.java
new file mode 100644
index 000000000000..fcf27009883a
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIRootComponent.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.tv;
+
+import android.content.Context;
+
+import com.android.systemui.dagger.DefaultComponentBinder;
+import com.android.systemui.dagger.DependencyBinder;
+import com.android.systemui.dagger.DependencyProvider;
+import com.android.systemui.dagger.SystemServicesModule;
+import com.android.systemui.dagger.SystemUIBinder;
+import com.android.systemui.dagger.SystemUIDefaultModule;
+import com.android.systemui.dagger.SystemUIModule;
+import com.android.systemui.dagger.SystemUIRootComponent;
+
+import javax.inject.Singleton;
+
+import dagger.BindsInstance;
+import dagger.Component;
+
+/**
+ * Root component for Dagger injection.
+ */
+@Singleton
+@Component(modules = {
+ DefaultComponentBinder.class,
+ DependencyProvider.class,
+ DependencyBinder.class,
+ SystemServicesModule.class,
+ SystemUIBinder.class,
+ SystemUIModule.class,
+ SystemUIDefaultModule.class,
+ TvSystemUIBinder.class})
+public interface TvSystemUIRootComponent extends SystemUIRootComponent {
+ /**
+ * Component Builder interface. This allows to bind Context instance in the component
+ */
+ @Component.Builder
+ interface Builder {
+ @BindsInstance Builder context(Context context);
+
+ TvSystemUIRootComponent build();
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/util/FloatingContentCoordinator.kt b/packages/SystemUI/src/com/android/systemui/util/FloatingContentCoordinator.kt
new file mode 100644
index 000000000000..70bcc21426b1
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/util/FloatingContentCoordinator.kt
@@ -0,0 +1,320 @@
+package com.android.systemui.util
+
+import android.graphics.Rect
+import android.util.Log
+import com.android.systemui.util.FloatingContentCoordinator.FloatingContent
+import java.util.HashMap
+import javax.inject.Inject
+import javax.inject.Singleton
+
+/** Tag for debug logging. */
+private const val TAG = "FloatingCoordinator"
+
+/**
+ * Coordinates the positions and movement of floating content, such as PIP and Bubbles, to ensure
+ * that they don't overlap. If content does overlap due to content appearing or moving, the
+ * coordinator will ask content to move to resolve the conflict.
+ *
+ * After implementing [FloatingContent], content should call [onContentAdded] to begin coordination.
+ * Subsequently, call [onContentMoved] whenever the content moves, and the coordinator will move
+ * other content out of the way. [onContentRemoved] should be called when the content is removed or
+ * no longer visible.
+ */
+@Singleton
+class FloatingContentCoordinator @Inject constructor() {
+
+ /**
+ * Represents a piece of floating content, such as PIP or the Bubbles stack. Provides methods
+ * that allow the [FloatingContentCoordinator] to determine the current location of the content,
+ * as well as the ability to ask it to move out of the way of other content.
+ *
+ * The default implementation of [calculateNewBoundsOnOverlap] moves the content up or down,
+ * depending on the position of the conflicting content. You can override this method if you
+ * want your own custom conflict resolution logic.
+ */
+ interface FloatingContent {
+
+ /**
+ * Return the bounds claimed by this content. This should include the bounds occupied by the
+ * content itself, as well as any padding, if desired. The coordinator will ensure that no
+ * other content is located within these bounds.
+ *
+ * If the content is animating, this method should return the bounds to which the content is
+ * animating. If that animation is cancelled, or updated, be sure that your implementation
+ * of this method returns the appropriate bounds, and call [onContentMoved] so that the
+ * coordinator moves other content out of the way.
+ */
+ fun getFloatingBoundsOnScreen(): Rect
+
+ /**
+ * Return the area within which this floating content is allowed to move. When resolving
+ * conflicts, the coordinator will never ask your content to move to a position where any
+ * part of the content would be out of these bounds.
+ */
+ fun getAllowedFloatingBoundsRegion(): Rect
+
+ /**
+ * Called when the coordinator needs this content to move to the given bounds. It's up to
+ * you how to do that.
+ *
+ * Note that if you start an animation to these bounds, [getFloatingBoundsOnScreen] should
+ * return the destination bounds, not the in-progress animated bounds. This is so the
+ * coordinator knows where floating content is going to be and can resolve conflicts
+ * accordingly.
+ */
+ fun moveToBounds(bounds: Rect)
+
+ /**
+ * Called by the coordinator when it needs to find a new home for this floating content,
+ * because a new or moving piece of content is now overlapping with it.
+ *
+ * [findAreaForContentVertically] and [findAreaForContentAboveOrBelow] are helpful utility
+ * functions that will find new bounds for your content automatically. Unless you require
+ * specific conflict resolution logic, these should be sufficient. By default, this method
+ * delegates to [findAreaForContentVertically].
+ *
+ * @param overlappingContentBounds The bounds of the other piece of content, which
+ * necessitated this content's relocation. Your new position must not overlap with these
+ * bounds.
+ * @param otherContentBounds The bounds of any other pieces of floating content. Your new
+ * position must not overlap with any of these either. These bounds are guaranteed to be
+ * non-overlapping.
+ * @return The new bounds for this content.
+ */
+ @JvmDefault
+ fun calculateNewBoundsOnOverlap(
+ overlappingContentBounds: Rect,
+ otherContentBounds: List<Rect>
+ ): Rect {
+ return findAreaForContentVertically(
+ getFloatingBoundsOnScreen(),
+ overlappingContentBounds,
+ otherContentBounds,
+ getAllowedFloatingBoundsRegion())
+ }
+ }
+
+ /** The bounds of all pieces of floating content added to the coordinator. */
+ private val allContentBounds: MutableMap<FloatingContent, Rect> = HashMap()
+
+ /**
+ * Makes the coordinator aware of a new piece of floating content, and moves any existing
+ * content out of the way, if necessary.
+ *
+ * If you don't want your new content to move existing content, use [getOccupiedBounds] to find
+ * an unoccupied area, and move the content there before calling this method.
+ */
+ fun onContentAdded(newContent: FloatingContent) {
+ updateContentBounds()
+ allContentBounds[newContent] = newContent.getFloatingBoundsOnScreen()
+ maybeMoveConflictingContent(newContent)
+ }
+
+ /**
+ * Called to notify the coordinator that a piece of floating content has moved (or is animating)
+ * to a new position, and that any conflicting floating content should be moved out of the way.
+ *
+ * The coordinator will call [FloatingContent.getFloatingBoundsOnScreen] to find the new bounds
+ * for the moving content. If you're animating the content, be sure that your implementation of
+ * getFloatingBoundsOnScreen returns the bounds to which it's animating, not the content's
+ * current bounds.
+ *
+ * If the animation moving this content is cancelled or updated, you'll need to call this method
+ * again, to ensure that content is moved out of the way of the latest bounds.
+ *
+ * @param content The content that has moved.
+ */
+ @JvmOverloads
+ fun onContentMoved(content: FloatingContent) {
+ if (!allContentBounds.containsKey(content)) {
+ Log.wtf(TAG, "Received onContentMoved call before onContentAdded! " +
+ "This should never happen.")
+ return
+ }
+
+ updateContentBounds()
+ maybeMoveConflictingContent(content)
+ }
+
+ /**
+ * Called to notify the coordinator that a piece of floating content has been removed or is no
+ * longer visible.
+ */
+ fun onContentRemoved(removedContent: FloatingContent) {
+ allContentBounds.remove(removedContent)
+ }
+
+ /**
+ * Returns a set of Rects that represent the bounds of all of the floating content on the
+ * screen.
+ *
+ * [onContentAdded] will move existing content out of the way if the added content intersects
+ * existing content. That's fine - but if your specific starting position is not important, you
+ * can use this function to find unoccupied space for your content before calling
+ * [onContentAdded], so that moving existing content isn't necessary.
+ */
+ fun getOccupiedBounds(): Collection<Rect> {
+ return allContentBounds.values
+ }
+
+ /**
+ * Identifies any pieces of content that are now overlapping with the given content, and asks
+ * them to move out of the way.
+ */
+ private fun maybeMoveConflictingContent(fromContent: FloatingContent) {
+ val conflictingNewBounds = allContentBounds[fromContent]!!
+ allContentBounds
+ // Filter to content that intersects with the new bounds. That's content that needs
+ // to move.
+ .filter { (content, bounds) ->
+ content != fromContent && Rect.intersects(conflictingNewBounds, bounds) }
+ // Tell that content to get out of the way, and save the bounds it says it's moving
+ // (or animating) to.
+ .forEach { (content, bounds) ->
+ content.moveToBounds(
+ content.calculateNewBoundsOnOverlap(
+ conflictingNewBounds,
+ // Pass all of the content bounds except the bounds of the
+ // content we're asking to move, and the conflicting new bounds
+ // (since those are passed separately).
+ otherContentBounds = allContentBounds.values
+ .minus(bounds)
+ .minus(conflictingNewBounds)))
+ allContentBounds[content] = content.getFloatingBoundsOnScreen()
+ }
+ }
+
+ /**
+ * Update [allContentBounds] by calling [FloatingContent.getFloatingBoundsOnScreen] for all
+ * content and saving the result.
+ */
+ private fun updateContentBounds() {
+ allContentBounds.keys.forEach { allContentBounds[it] = it.getFloatingBoundsOnScreen() }
+ }
+
+ companion object {
+ /**
+ * Finds new bounds for the given content, either above or below its current position. The
+ * new bounds won't intersect with the newly overlapping rect or the exclusion rects, and
+ * will be within the allowed bounds unless no possible position exists.
+ *
+ * You can use this method to help find a new position for your content when the coordinator
+ * calls [FloatingContent.moveToAreaExcluding].
+ *
+ * @param contentRect The bounds of the content for which we're finding a new home.
+ * @param newlyOverlappingRect The bounds of the content that forced this relocation by
+ * intersecting with the content we now need to move. If the overlapping content is
+ * overlapping the top half of this content, we'll try to move this content downward if
+ * possible (since the other content is 'pushing' it down), and vice versa.
+ * @param exclusionRects Any other areas that we need to avoid when finding a new home for
+ * the content. These areas must be non-overlapping with each other.
+ * @param allowedBounds The area within which we're allowed to find new bounds for the
+ * content.
+ * @return New bounds for the content that don't intersect the exclusion rects or the
+ * newly overlapping rect, and that is within bounds unless no possible in-bounds position
+ * exists.
+ */
+ @JvmStatic
+ fun findAreaForContentVertically(
+ contentRect: Rect,
+ newlyOverlappingRect: Rect,
+ exclusionRects: Collection<Rect>,
+ allowedBounds: Rect
+ ): Rect {
+ // If the newly overlapping Rect's center is above the content's center, we'll prefer to
+ // find a space for this content that is below the overlapping content, since it's
+ // 'pushing' it down. This may not be possible due to to screen bounds, in which case
+ // we'll find space in the other direction.
+ val overlappingContentPushingDown =
+ newlyOverlappingRect.centerY() < contentRect.centerY()
+
+ // Filter to exclusion rects that are above or below the content that we're finding a
+ // place for. Then, split into two lists - rects above the content, and rects below it.
+ var (rectsToAvoidAbove, rectsToAvoidBelow) = exclusionRects
+ .filter { rectToAvoid -> rectsIntersectVertically(rectToAvoid, contentRect) }
+ .partition { rectToAvoid -> rectToAvoid.top < contentRect.top }
+
+ // Lazily calculate the closest possible new tops for the content, above and below its
+ // current location.
+ val newContentBoundsAbove by lazy { findAreaForContentAboveOrBelow(
+ contentRect,
+ exclusionRects = rectsToAvoidAbove.plus(newlyOverlappingRect),
+ findAbove = true) }
+ val newContentBoundsBelow by lazy { findAreaForContentAboveOrBelow(
+ contentRect,
+ exclusionRects = rectsToAvoidBelow.plus(newlyOverlappingRect),
+ findAbove = false) }
+
+ val positionAboveInBounds by lazy { allowedBounds.contains(newContentBoundsAbove) }
+ val positionBelowInBounds by lazy { allowedBounds.contains(newContentBoundsBelow) }
+
+ // Use the 'below' position if the content is being overlapped from the top, unless it's
+ // out of bounds. Also use it if the content is being overlapped from the bottom, but
+ // the 'above' position is out of bounds. Otherwise, use the 'above' position.
+ val usePositionBelow =
+ overlappingContentPushingDown && positionBelowInBounds ||
+ !overlappingContentPushingDown && !positionAboveInBounds
+
+ // Return the content rect, but offset to reflect the new position.
+ return if (usePositionBelow) newContentBoundsBelow else newContentBoundsAbove
+ }
+
+ /**
+ * Finds a new position for the given content, either above or below its current position
+ * depending on whether [findAbove] is true or false, respectively. This new position will
+ * not intersect with any of the [exclusionRects].
+ *
+ * This method is useful as a helper method for implementing your own conflict resolution
+ * logic. Otherwise, you'd want to use [findAreaForContentVertically], which takes screen
+ * bounds and conflicting bounds' location into account when deciding whether to move to new
+ * bounds above or below the current bounds.
+ *
+ * @param contentRect The content we're finding an area for.
+ * @param exclusionRects The areas we need to avoid when finding a new area for the content.
+ * These areas must be non-overlapping with each other.
+ * @param findAbove Whether we are finding an area above the content's current position,
+ * rather than an area below it.
+ */
+ fun findAreaForContentAboveOrBelow(
+ contentRect: Rect,
+ exclusionRects: Collection<Rect>,
+ findAbove: Boolean
+ ): Rect {
+ // Sort the rects, since we want to move the content as little as possible. We'll
+ // start with the rects closest to the content and move outward. If we're finding an
+ // area above the content, that means we sort in reverse order to search the rects
+ // from highest to lowest y-value.
+ val sortedExclusionRects =
+ exclusionRects.sortedBy { if (findAbove) -it.top else it.top }
+
+ val proposedNewBounds = Rect(contentRect)
+ for (exclusionRect in sortedExclusionRects) {
+ // If the proposed new bounds don't intersect with this exclusion rect, that
+ // means there's room for the content here. We know this because the rects are
+ // sorted and non-overlapping, so any subsequent exclusion rects would be higher
+ // (or lower) than this one and can't possibly intersect if this one doesn't.
+ if (!Rect.intersects(proposedNewBounds, exclusionRect)) {
+ break
+ } else {
+ // Otherwise, we need to keep searching for new bounds. If we're finding an
+ // area above, propose new bounds that place the content just above the
+ // exclusion rect. If we're finding an area below, propose new bounds that
+ // place the content just below the exclusion rect.
+ val verticalOffset =
+ if (findAbove) -contentRect.height() else exclusionRect.height()
+ proposedNewBounds.offsetTo(
+ proposedNewBounds.left,
+ exclusionRect.top + verticalOffset)
+ }
+ }
+
+ return proposedNewBounds
+ }
+
+ /** Returns whether or not the two Rects share any of the same space on the X axis. */
+ private fun rectsIntersectVertically(r1: Rect, r2: Rect): Boolean {
+ return (r1.left >= r2.left && r1.left <= r2.right) ||
+ (r1.right <= r2.right && r1.right >= r2.left)
+ }
+ }
+} \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/util/Utils.java b/packages/SystemUI/src/com/android/systemui/util/Utils.java
index 47454cb5aca1..cfa2947eb862 100644
--- a/packages/SystemUI/src/com/android/systemui/util/Utils.java
+++ b/packages/SystemUI/src/com/android/systemui/util/Utils.java
@@ -129,8 +129,6 @@ public class Utils {
*/
public static boolean useQsMediaPlayer(Context context) {
int flag = Settings.System.getInt(context.getContentResolver(), "qs_media_player", 0);
- flag |= Settings.System.getInt(context.getContentResolver(), "npv_plugin_flag", 0);
-
return flag > 0;
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/wm/DisplayLayout.java b/packages/SystemUI/src/com/android/systemui/wm/DisplayLayout.java
index 264a683f6a3d..64b0b66a47a9 100644
--- a/packages/SystemUI/src/com/android/systemui/wm/DisplayLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/wm/DisplayLayout.java
@@ -31,9 +31,11 @@ import android.annotation.NonNull;
import android.content.ContentResolver;
import android.content.Context;
import android.content.res.Resources;
+import android.graphics.Insets;
import android.graphics.Rect;
import android.os.SystemProperties;
import android.provider.Settings;
+import android.util.RotationUtils;
import android.util.Size;
import android.view.Display;
import android.view.DisplayCutout;
@@ -43,8 +45,6 @@ import android.view.Surface;
import com.android.internal.R;
-import java.util.List;
-
/**
* Contains information about the layout-properties of a display. This refers to internal layout
* like insets/cutout/rotation. In general, this can be thought of as the System-UI analog to
@@ -323,28 +323,38 @@ public class DisplayLayout {
if (cutout == null || cutout == DisplayCutout.NO_CUTOUT) {
return null;
}
+ final Insets waterfallInsets =
+ RotationUtils.rotateInsets(cutout.getWaterfallInsets(), rotation);
if (rotation == ROTATION_0) {
- return computeSafeInsets(
- cutout, displayWidth, displayHeight);
+ return computeSafeInsets(cutout, displayWidth, displayHeight);
}
final boolean rotated = (rotation == ROTATION_90 || rotation == ROTATION_270);
- Rect[] cutoutRects = computeSafeInsets(cutout, displayWidth, displayHeight)
- .getBoundingRectsAll();
+ Rect[] cutoutRects = cutout.getBoundingRectsAll();
final Rect[] newBounds = new Rect[cutoutRects.length];
final Rect displayBounds = new Rect(0, 0, displayWidth, displayHeight);
for (int i = 0; i < cutoutRects.length; ++i) {
- newBounds[i] = new Rect(cutoutRects[i]);
- rotateBounds(newBounds[i], displayBounds, rotation);
+ final Rect rect = new Rect(cutoutRects[i]);
+ if (!rect.isEmpty()) {
+ rotateBounds(rect, displayBounds, rotation);
+ }
+ newBounds[getBoundIndexFromRotation(i, rotation)] = rect;
}
- return computeSafeInsets(DisplayCutout.fromBounds(newBounds),
+ return computeSafeInsets(
+ DisplayCutout.fromBoundsAndWaterfall(newBounds, waterfallInsets),
rotated ? displayHeight : displayWidth,
rotated ? displayWidth : displayHeight);
}
+ private static int getBoundIndexFromRotation(int index, int rotation) {
+ return (index - rotation) < 0
+ ? index - rotation + DisplayCutout.BOUNDS_POSITION_LENGTH
+ : index - rotation;
+ }
+
/** Calculate safe insets. */
public static DisplayCutout computeSafeInsets(DisplayCutout inner,
int displayWidth, int displayHeight) {
- if (inner == DisplayCutout.NO_CUTOUT || inner.isBoundsEmpty()) {
+ if (inner == DisplayCutout.NO_CUTOUT) {
return null;
}
@@ -353,58 +363,44 @@ public class DisplayLayout {
return inner.replaceSafeInsets(safeInsets);
}
- private static Rect computeSafeInsets(Size displaySize, DisplayCutout cutout) {
- if (displaySize.getWidth() < displaySize.getHeight()) {
- final List<Rect> boundingRects = cutout.replaceSafeInsets(
- new Rect(0, displaySize.getHeight() / 2, 0, displaySize.getHeight() / 2))
- .getBoundingRects();
- int topInset = findInsetForSide(displaySize, boundingRects, Gravity.TOP);
- int bottomInset = findInsetForSide(displaySize, boundingRects, Gravity.BOTTOM);
- return new Rect(0, topInset, 0, bottomInset);
- } else if (displaySize.getWidth() > displaySize.getHeight()) {
- final List<Rect> boundingRects = cutout.replaceSafeInsets(
- new Rect(displaySize.getWidth() / 2, 0, displaySize.getWidth() / 2, 0))
- .getBoundingRects();
- int leftInset = findInsetForSide(displaySize, boundingRects, Gravity.LEFT);
- int right = findInsetForSide(displaySize, boundingRects, Gravity.RIGHT);
- return new Rect(leftInset, 0, right, 0);
- } else {
+ private static Rect computeSafeInsets(
+ Size displaySize, DisplayCutout cutout) {
+ if (displaySize.getWidth() == displaySize.getHeight()) {
throw new UnsupportedOperationException("not implemented: display=" + displaySize
+ " cutout=" + cutout);
}
+
+ int leftInset = Math.max(cutout.getWaterfallInsets().left,
+ findCutoutInsetForSide(displaySize, cutout.getBoundingRectLeft(), Gravity.LEFT));
+ int topInset = Math.max(cutout.getWaterfallInsets().top,
+ findCutoutInsetForSide(displaySize, cutout.getBoundingRectTop(), Gravity.TOP));
+ int rightInset = Math.max(cutout.getWaterfallInsets().right,
+ findCutoutInsetForSide(displaySize, cutout.getBoundingRectRight(), Gravity.RIGHT));
+ int bottomInset = Math.max(cutout.getWaterfallInsets().bottom,
+ findCutoutInsetForSide(displaySize, cutout.getBoundingRectBottom(),
+ Gravity.BOTTOM));
+
+ return new Rect(leftInset, topInset, rightInset, bottomInset);
}
- private static int findInsetForSide(Size display, List<Rect> boundingRects, int gravity) {
+ private static int findCutoutInsetForSide(Size display, Rect boundingRect, int gravity) {
+ if (boundingRect.isEmpty()) {
+ return 0;
+ }
+
int inset = 0;
- final int size = boundingRects.size();
- for (int i = 0; i < size; i++) {
- Rect boundingRect = boundingRects.get(i);
- switch (gravity) {
- case Gravity.TOP:
- if (boundingRect.top == 0) {
- inset = Math.max(inset, boundingRect.bottom);
- }
- break;
- case Gravity.BOTTOM:
- if (boundingRect.bottom == display.getHeight()) {
- inset = Math.max(inset, display.getHeight() - boundingRect.top);
- }
- break;
- case Gravity.LEFT:
- if (boundingRect.left == 0) {
- inset = Math.max(inset, boundingRect.right);
- }
- break;
- case Gravity.RIGHT:
- if (boundingRect.right == display.getWidth()) {
- inset = Math.max(inset, display.getWidth() - boundingRect.left);
- }
- break;
- default:
- throw new IllegalArgumentException("unknown gravity: " + gravity);
- }
+ switch (gravity) {
+ case Gravity.TOP:
+ return Math.max(inset, boundingRect.bottom);
+ case Gravity.BOTTOM:
+ return Math.max(inset, display.getHeight() - boundingRect.top);
+ case Gravity.LEFT:
+ return Math.max(inset, boundingRect.right);
+ case Gravity.RIGHT:
+ return Math.max(inset, display.getWidth() - boundingRect.left);
+ default:
+ throw new IllegalArgumentException("unknown gravity: " + gravity);
}
- return inset;
}
static boolean hasNavigationBar(DisplayInfo info, Context context, int displayId) {
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/AdminSecondaryLockScreenControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/AdminSecondaryLockScreenControllerTest.java
index 1954b3936376..0e9a245d5be6 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/AdminSecondaryLockScreenControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/AdminSecondaryLockScreenControllerTest.java
@@ -39,7 +39,7 @@ import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
import android.testing.TestableLooper.RunWithLooper;
import android.testing.ViewUtils;
-import android.view.SurfaceControl;
+import android.view.SurfaceControlViewHost;
import android.view.SurfaceView;
import android.view.ViewGroup;
import android.widget.FrameLayout;
@@ -54,7 +54,6 @@ import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.mockito.Spy;
@RunWithLooper
@RunWith(AndroidTestingRunner.class)
@@ -77,8 +76,8 @@ public class AdminSecondaryLockScreenControllerTest extends SysuiTestCase {
private KeyguardSecurityCallback mKeyguardCallback;
@Mock
private KeyguardUpdateMonitor mUpdateMonitor;
- @Spy
- private StubTransaction mTransaction;
+ @Mock
+ private SurfaceControlViewHost.SurfacePackage mSurfacePackage;
@Before
public void setUp() {
@@ -97,21 +96,20 @@ public class AdminSecondaryLockScreenControllerTest extends SysuiTestCase {
when(mKeyguardClient.asBinder()).thenReturn(mKeyguardClient);
mTestController = new AdminSecondaryLockScreenController(
- mContext, mParent, mUpdateMonitor, mKeyguardCallback, mHandler, mTransaction);
+ mContext, mParent, mUpdateMonitor, mKeyguardCallback, mHandler);
}
@Test
public void testShow() throws Exception {
doAnswer(invocation -> {
IKeyguardCallback callback = (IKeyguardCallback) invocation.getArguments()[1];
- callback.onSurfaceControlCreated(new SurfaceControl());
+ callback.onRemoteContentReady(mSurfacePackage);
return null;
}).when(mKeyguardClient).onSurfaceReady(any(), any(IKeyguardCallback.class));
mTestController.show(mServiceIntent);
verifySurfaceReady();
- verify(mTransaction).reparent(any(), any());
assertThat(mContext.isBound(mComponentName)).isTrue();
}
@@ -133,7 +131,7 @@ public class AdminSecondaryLockScreenControllerTest extends SysuiTestCase {
// Show the view first, then hide.
doAnswer(invocation -> {
IKeyguardCallback callback = (IKeyguardCallback) invocation.getArguments()[1];
- callback.onSurfaceControlCreated(new SurfaceControl());
+ callback.onRemoteContentReady(mSurfacePackage);
return null;
}).when(mKeyguardClient).onSurfaceReady(any(), any(IKeyguardCallback.class));
@@ -189,19 +187,4 @@ public class AdminSecondaryLockScreenControllerTest extends SysuiTestCase {
verify(mKeyguardCallback).dismiss(true, TARGET_USER_ID);
assertThat(mContext.isBound(mComponentName)).isFalse();
}
-
- /**
- * Stubbed {@link SurfaceControl.Transaction} class that can be used when unit testing to
- * avoid calls to native code.
- */
- private class StubTransaction extends SurfaceControl.Transaction {
- @Override
- public void apply() {
- }
-
- @Override
- public SurfaceControl.Transaction reparent(SurfaceControl sc, SurfaceControl newParent) {
- return this;
- }
- }
}
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
index 795cbb92fefe..7e4ba92301aa 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardUpdateMonitorTest.java
@@ -437,14 +437,14 @@ public class KeyguardUpdateMonitorTest extends SysuiTestCase {
}
@Test
- public void testIgnoresAuth_whenLockout() {
+ public void testTriesToAuthenticate_whenLockout() {
mKeyguardUpdateMonitor.dispatchStartedWakingUp();
mTestableLooper.processAllMessages();
when(mStrongAuthTracker.getStrongAuthForUser(anyInt())).thenReturn(
KeyguardUpdateMonitor.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT);
mKeyguardUpdateMonitor.onKeyguardVisibilityChanged(true);
- verify(mFaceManager, never()).authenticate(any(), any(), anyInt(), any(), any(), anyInt());
+ verify(mFaceManager).authenticate(any(), any(), anyInt(), any(), any(), anyInt());
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/ExpandHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/ExpandHelperTest.java
index 364ee666e17d..ffe8c285b4f1 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/ExpandHelperTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/ExpandHelperTest.java
@@ -31,8 +31,8 @@ import androidx.test.filters.SmallTest;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.statusbar.NotificationMediaManager;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.util.Assert;
import org.junit.Before;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.java
index f2642594802d..c6c7b87da544 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/AuthContainerViewTest.java
@@ -36,6 +36,7 @@ import android.content.Context;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricPrompt;
import android.os.Bundle;
+import android.os.IBinder;
import android.os.UserManager;
import android.test.suitebuilder.annotation.SmallTest;
import android.testing.AndroidTestingRunner;
@@ -43,6 +44,7 @@ import android.testing.TestableLooper.RunWithLooper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.ScrollView;
@@ -175,6 +177,28 @@ public class AuthContainerViewTest extends SysuiTestCase {
assertEquals(Utils.CREDENTIAL_PATTERN, mAuthContainer.mCredentialView.mCredentialType);
}
+ @Test
+ public void testCredentialUI_disablesClickingOnBackground() {
+ // In the credential view, clicking on the background (to cancel authentication) is not
+ // valid. Thus, the listener should be null, and it should not be in the accessibility
+ // hierarchy.
+ initializeContainer(Authenticators.DEVICE_CREDENTIAL);
+
+ mAuthContainer.onAttachedToWindowInternal();
+
+ verify(mAuthContainer.mBackgroundView).setOnClickListener(eq(null));
+ verify(mAuthContainer.mBackgroundView).setImportantForAccessibility(
+ eq(View.IMPORTANT_FOR_ACCESSIBILITY_NO));
+ }
+
+ @Test
+ public void testLayoutParams_hasSecureWindowFlag() {
+ final IBinder windowToken = mock(IBinder.class);
+ final WindowManager.LayoutParams layoutParams =
+ AuthContainerView.getLayoutParams(windowToken);
+ assertTrue((layoutParams.flags & WindowManager.LayoutParams.FLAG_SECURE) != 0);
+ }
+
private void initializeContainer(int authenticators) {
AuthContainerView.Config config = new AuthContainerView.Config();
config.mContext = mContext;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java
index 5cfb4b39b16b..d7f0f50d66db 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleControllerTest.java
@@ -62,7 +62,6 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationPresenter;
import com.android.systemui.statusbar.NotificationRemoveInterceptor;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.SuperStatusBarViewFactory;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.notification.NotificationEntryListener;
@@ -72,6 +71,7 @@ import com.android.systemui.statusbar.notification.NotificationInterruptionState
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.statusbar.notification.row.dagger.NotificationRowComponent;
import com.android.systemui.statusbar.phone.DozeParameters;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
@@ -237,7 +237,7 @@ public class BubbleControllerTest extends SysuiTestCase {
mEntryListener = mEntryListenerCaptor.getValue();
// And the remove interceptor
verify(mNotificationEntryManager, atLeastOnce())
- .setNotificationRemoveInterceptor(mRemoveInterceptorCaptor.capture());
+ .addNotificationRemoveInterceptor(mRemoveInterceptorCaptor.capture());
mRemoveInterceptor = mRemoveInterceptorCaptor.getValue();
}
@@ -274,7 +274,7 @@ public class BubbleControllerTest extends SysuiTestCase {
@Test
public void testRemoveBubble_withDismissedNotif() {
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
assertTrue(mBubbleController.hasBubbles());
@@ -317,7 +317,7 @@ public class BubbleControllerTest extends SysuiTestCase {
assertFalse(mBubbleController.isStackExpanded());
// Mark it as a bubble and add it explicitly
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
// We should have bubbles & their notifs should not be suppressed
@@ -347,8 +347,8 @@ public class BubbleControllerTest extends SysuiTestCase {
@Test
public void testCollapseAfterChangingExpandedBubble() {
// Mark it as a bubble and add it explicitly
- mEntryListener.onNotificationAdded(mRow.getEntry());
- mEntryListener.onNotificationAdded(mRow2.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow2.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
mBubbleController.updateBubble(mRow2.getEntry());
@@ -390,7 +390,7 @@ public class BubbleControllerTest extends SysuiTestCase {
@Test
public void testExpansionRemovesShowInShadeAndDot() {
// Mark it as a bubble and add it explicitly
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
// We should have bubbles & their notifs should not be suppressed
@@ -416,7 +416,7 @@ public class BubbleControllerTest extends SysuiTestCase {
@Test
public void testUpdateWhileExpanded_DoesntChangeShowInShadeAndDot() {
// Mark it as a bubble and add it explicitly
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
// We should have bubbles & their notifs should not be suppressed
@@ -452,8 +452,8 @@ public class BubbleControllerTest extends SysuiTestCase {
@Test
public void testRemoveLastExpandedCollapses() {
// Mark it as a bubble and add it explicitly
- mEntryListener.onNotificationAdded(mRow.getEntry());
- mEntryListener.onNotificationAdded(mRow2.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow2.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
mBubbleController.updateBubble(mRow2.getEntry());
verify(mBubbleStateChangeListener).onHasBubblesChanged(true);
@@ -496,7 +496,7 @@ public class BubbleControllerTest extends SysuiTestCase {
Notification.BubbleMetadata.FLAG_AUTO_EXPAND_BUBBLE, false /* enableFlag */);
// Add the auto expand bubble
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
// Expansion shouldn't change
@@ -514,7 +514,7 @@ public class BubbleControllerTest extends SysuiTestCase {
Notification.BubbleMetadata.FLAG_AUTO_EXPAND_BUBBLE, true /* enableFlag */);
// Add the auto expand bubble
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
// Expansion should change
@@ -532,7 +532,7 @@ public class BubbleControllerTest extends SysuiTestCase {
Notification.BubbleMetadata.FLAG_SUPPRESS_NOTIFICATION, true /* enableFlag */);
// Add the suppress notif bubble
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
// Notif should be suppressed because we were foreground
@@ -576,19 +576,19 @@ public class BubbleControllerTest extends SysuiTestCase {
public void testExpandStackAndSelectBubble_removedFirst() {
final String key = mRow.getEntry().getKey();
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
// Simulate notification cancellation.
mRemoveInterceptor.onNotificationRemoveRequested(
- mRow.getEntry().getKey(), REASON_APP_CANCEL);
+ mRow.getEntry().getKey(), mRow.getEntry(), REASON_APP_CANCEL);
mBubbleController.expandStackAndSelectBubble(key);
}
@Test
public void testMarkNewNotificationAsShowInShade() {
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
assertFalse(mBubbleController.isBubbleNotificationSuppressedFromShade(
mRow.getEntry()));
@@ -598,7 +598,7 @@ public class BubbleControllerTest extends SysuiTestCase {
@Test
public void testAddNotif_notBubble() {
- mEntryListener.onNotificationAdded(mNonBubbleNotifRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mNonBubbleNotifRow.getEntry());
mEntryListener.onPreEntryUpdated(mNonBubbleNotifRow.getEntry());
verify(mBubbleStateChangeListener, never()).onHasBubblesChanged(anyBoolean());
@@ -643,13 +643,13 @@ public class BubbleControllerTest extends SysuiTestCase {
@Test
public void testRemoveBubble_succeeds_appCancel() {
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
assertTrue(mBubbleController.hasBubbles());
boolean intercepted = mRemoveInterceptor.onNotificationRemoveRequested(
- mRow.getEntry().getKey(), REASON_APP_CANCEL);
+ mRow.getEntry().getKey(), mRow.getEntry(), REASON_APP_CANCEL);
// Cancels always remove so no need to intercept
assertFalse(intercepted);
@@ -658,7 +658,7 @@ public class BubbleControllerTest extends SysuiTestCase {
@Test
public void removeBubble_fails_clearAll() {
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
assertTrue(mBubbleController.hasBubbles());
@@ -666,7 +666,7 @@ public class BubbleControllerTest extends SysuiTestCase {
mRow.getEntry()));
boolean intercepted = mRemoveInterceptor.onNotificationRemoveRequested(
- mRow.getEntry().getKey(), REASON_CANCEL_ALL);
+ mRow.getEntry().getKey(), mRow.getEntry(), REASON_CANCEL_ALL);
// Intercept!
assertTrue(intercepted);
@@ -681,7 +681,7 @@ public class BubbleControllerTest extends SysuiTestCase {
@Test
public void removeBubble_fails_userDismissNotif() {
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
assertTrue(mBubbleController.hasBubbles());
@@ -689,7 +689,7 @@ public class BubbleControllerTest extends SysuiTestCase {
mRow.getEntry()));
boolean intercepted = mRemoveInterceptor.onNotificationRemoveRequested(
- mRow.getEntry().getKey(), REASON_CANCEL);
+ mRow.getEntry().getKey(), mRow.getEntry(), REASON_CANCEL);
// Intercept!
assertTrue(intercepted);
@@ -704,7 +704,7 @@ public class BubbleControllerTest extends SysuiTestCase {
@Test
public void removeBubble_succeeds_userDismissBubble_userDimissNotif() {
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
mBubbleController.updateBubble(mRow.getEntry());
assertTrue(mBubbleController.hasBubbles());
@@ -718,7 +718,7 @@ public class BubbleControllerTest extends SysuiTestCase {
// Dismiss the notification
boolean intercepted = mRemoveInterceptor.onNotificationRemoveRequested(
- mRow.getEntry().getKey(), REASON_CANCEL);
+ mRow.getEntry().getKey(), mRow.getEntry(), REASON_CANCEL);
// It's no longer a bubble so we shouldn't intercept
assertFalse(intercepted);
@@ -730,13 +730,14 @@ public class BubbleControllerTest extends SysuiTestCase {
mock(BubbleController.NotificationSuppressionChangedListener.class);
mBubbleData.setSuppressionChangedListener(listener);
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
assertTrue(mBubbleController.hasBubbles());
assertFalse(mBubbleController.isBubbleNotificationSuppressedFromShade(
mRow.getEntry()));
- mRemoveInterceptor.onNotificationRemoveRequested(mRow.getEntry().getKey(), REASON_CANCEL);
+ mRemoveInterceptor.onNotificationRemoveRequested(
+ mRow.getEntry().getKey(), mRow.getEntry(), REASON_CANCEL);
// Should update show in shade state
assertTrue(mBubbleController.isBubbleNotificationSuppressedFromShade(
@@ -753,7 +754,7 @@ public class BubbleControllerTest extends SysuiTestCase {
mock(BubbleController.NotificationSuppressionChangedListener.class);
mBubbleData.setSuppressionChangedListener(listener);
- mEntryListener.onNotificationAdded(mRow.getEntry());
+ mEntryListener.onPendingEntryAdded(mRow.getEntry());
assertTrue(mBubbleController.hasBubbles());
assertFalse(mBubbleController.isBubbleNotificationSuppressedFromShade(
diff --git a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java
index c9f5b40e8f9f..f40fc94763ab 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/bubbles/BubbleDataTest.java
@@ -39,10 +39,10 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.bubbles.BubbleData.TimeSource;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.google.common.collect.ImmutableList;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsBindingControllerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsBindingControllerImplTest.kt
index 7c8c7c8f7be6..89c1636e953f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsBindingControllerImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsBindingControllerImplTest.kt
@@ -19,6 +19,7 @@ package com.android.systemui.controls.controller
import android.content.ComponentName
import android.content.Context
import android.os.Binder
+import android.os.UserHandle
import android.service.controls.Control
import android.service.controls.DeviceTypes
import android.testing.AndroidTestingRunner
@@ -38,6 +39,7 @@ import org.mockito.Mockito
import org.mockito.Mockito.`when`
import org.mockito.Mockito.mock
import org.mockito.Mockito.never
+import org.mockito.Mockito.reset
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations
@@ -55,6 +57,9 @@ class ControlsBindingControllerTest : SysuiTestCase() {
@Mock
private lateinit var mockControlsController: ControlsController
+ private val user = UserHandle.of(mContext.userId)
+ private val otherUser = UserHandle.of(user.identifier + 1)
+
private val executor = FakeExecutor(FakeSystemClock())
private lateinit var controller: ControlsBindingController
private val providers = TestableControlsBindingControllerImpl.providers
@@ -75,6 +80,11 @@ class ControlsBindingControllerTest : SysuiTestCase() {
}
@Test
+ fun testStartOnUser() {
+ assertEquals(user.identifier, controller.currentUserId)
+ }
+
+ @Test
fun testBindAndLoad() {
val callback: (List<Control>) -> Unit = {}
controller.bindAndLoad(TEST_COMPONENT_NAME_1, callback)
@@ -93,7 +103,7 @@ class ControlsBindingControllerTest : SysuiTestCase() {
assertEquals(setOf(TEST_COMPONENT_NAME_1, TEST_COMPONENT_NAME_2),
providers.map { it.componentName }.toSet())
providers.forEach {
- verify(it).bindPermanently()
+ verify(it).bindService()
}
}
@@ -145,6 +155,41 @@ class ControlsBindingControllerTest : SysuiTestCase() {
verify(it).unsubscribe()
}
}
+
+ @Test
+ fun testCurrentUserId() {
+ controller.changeUser(otherUser)
+ assertEquals(otherUser.identifier, controller.currentUserId)
+ }
+
+ @Test
+ fun testChangeUsers_providersHaveCorrectUser() {
+ controller.bindServices(listOf(TEST_COMPONENT_NAME_1))
+ controller.changeUser(otherUser)
+ controller.bindServices(listOf(TEST_COMPONENT_NAME_2))
+
+ val provider1 = providers.first { it.componentName == TEST_COMPONENT_NAME_1 }
+ assertEquals(user, provider1.user)
+ val provider2 = providers.first { it.componentName == TEST_COMPONENT_NAME_2 }
+ assertEquals(otherUser, provider2.user)
+ }
+
+ @Test
+ fun testChangeUsers_providersUnbound() {
+ controller.bindServices(listOf(TEST_COMPONENT_NAME_1))
+ controller.changeUser(otherUser)
+
+ val provider1 = providers.first { it.componentName == TEST_COMPONENT_NAME_1 }
+ verify(provider1).unbindService()
+
+ controller.bindServices(listOf(TEST_COMPONENT_NAME_2))
+ controller.changeUser(user)
+
+ reset(provider1)
+ val provider2 = providers.first { it.componentName == TEST_COMPONENT_NAME_2 }
+ verify(provider2).unbindService()
+ verify(provider1, never()).unbindService()
+ }
}
class TestableControlsBindingControllerImpl(
@@ -157,13 +202,17 @@ class TestableControlsBindingControllerImpl(
val providers = mutableSetOf<ControlsProviderLifecycleManager>()
}
+ // Replaces the real provider with a mock and puts the mock in a visible set.
+ // The mock has the same componentName and user as the real one would have
override fun createProviderManager(component: ComponentName):
ControlsProviderLifecycleManager {
+ val realProvider = super.createProviderManager(component)
val provider = mock(ControlsProviderLifecycleManager::class.java)
val token = Binder()
- `when`(provider.componentName).thenReturn(component)
+ `when`(provider.componentName).thenReturn(realProvider.componentName)
`when`(provider.token).thenReturn(token)
+ `when`(provider.user).thenReturn(realProvider.user)
providers.add(provider)
return provider
}
-} \ No newline at end of file
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsControllerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsControllerImplTest.kt
index be86a9c15e5f..e3bcdc8b0b60 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsControllerImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsControllerImplTest.kt
@@ -17,7 +17,12 @@
package com.android.systemui.controls.controller
import android.app.PendingIntent
+import android.content.BroadcastReceiver
import android.content.ComponentName
+import android.content.Context
+import android.content.ContextWrapper
+import android.content.Intent
+import android.os.UserHandle
import android.provider.Settings
import android.service.controls.Control
import android.service.controls.DeviceTypes
@@ -26,21 +31,25 @@ import android.testing.AndroidTestingRunner
import androidx.test.filters.SmallTest
import com.android.systemui.DumpController
import com.android.systemui.SysuiTestCase
+import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.controls.ControlStatus
+import com.android.systemui.controls.management.ControlsListingController
import com.android.systemui.controls.ui.ControlsUiController
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.time.FakeSystemClock
import org.junit.Assert.assertEquals
+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.ArgumentCaptor
import org.mockito.ArgumentMatchers
-import org.mockito.ArgumentMatchers.eq
import org.mockito.Captor
import org.mockito.Mock
+import org.mockito.Mockito
import org.mockito.Mockito.`when`
+import org.mockito.Mockito.mock
import org.mockito.Mockito.never
import org.mockito.Mockito.reset
import org.mockito.Mockito.verify
@@ -61,18 +70,25 @@ class ControlsControllerImplTest : SysuiTestCase() {
private lateinit var pendingIntent: PendingIntent
@Mock
private lateinit var persistenceWrapper: ControlsFavoritePersistenceWrapper
+ @Mock
+ private lateinit var broadcastDispatcher: BroadcastDispatcher
+ @Mock
+ private lateinit var listingController: ControlsListingController
@Captor
private lateinit var controlInfoListCaptor: ArgumentCaptor<List<ControlInfo>>
@Captor
private lateinit var controlLoadCallbackCaptor: ArgumentCaptor<(List<Control>) -> Unit>
+ @Captor
+ private lateinit var broadcastReceiverCaptor: ArgumentCaptor<BroadcastReceiver>
private lateinit var delayableExecutor: FakeExecutor
- private lateinit var controller: ControlsController
+ private lateinit var controller: ControlsControllerImpl
companion object {
fun <T> capture(argumentCaptor: ArgumentCaptor<T>): T = argumentCaptor.capture()
- fun <T : Any> safeEq(value: T): T = eq(value) ?: value
+ fun <T> eq(value: T): T = Mockito.eq(value) ?: value
+ fun <T> any(): T = Mockito.any<T>()
private val TEST_COMPONENT = ComponentName("test.pkg", "test.class")
private const val TEST_CONTROL_ID = "control1"
@@ -89,24 +105,39 @@ class ControlsControllerImplTest : SysuiTestCase() {
TEST_COMPONENT_2, TEST_CONTROL_ID_2, TEST_CONTROL_TITLE_2, TEST_DEVICE_TYPE_2)
}
+ private val user = mContext.userId
+ private val otherUser = user + 1
+
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
Settings.Secure.putInt(mContext.contentResolver,
ControlsControllerImpl.CONTROLS_AVAILABLE, 1)
+ Settings.Secure.putIntForUser(mContext.contentResolver,
+ ControlsControllerImpl.CONTROLS_AVAILABLE, 1, otherUser)
delayableExecutor = FakeExecutor(FakeSystemClock())
+ val wrapper = object : ContextWrapper(mContext) {
+ override fun createContextAsUser(user: UserHandle, flags: Int): Context {
+ return baseContext
+ }
+ }
+
controller = ControlsControllerImpl(
- mContext,
+ wrapper,
delayableExecutor,
uiController,
bindingController,
+ listingController,
+ broadcastDispatcher,
Optional.of(persistenceWrapper),
dumpController
)
assertTrue(controller.available)
+ verify(broadcastDispatcher).registerReceiver(
+ capture(broadcastReceiverCaptor), any(), any(), eq(UserHandle.ALL))
}
private fun builderFromInfo(controlInfo: ControlInfo): Control.StatelessBuilder {
@@ -115,6 +146,11 @@ class ControlsControllerImplTest : SysuiTestCase() {
}
@Test
+ fun testStartOnUser() {
+ assertEquals(user, controller.currentUserId)
+ }
+
+ @Test
fun testStartWithoutFavorites() {
assertTrue(controller.getFavoriteControls().isEmpty())
}
@@ -127,6 +163,8 @@ class ControlsControllerImplTest : SysuiTestCase() {
delayableExecutor,
uiController,
bindingController,
+ listingController,
+ broadcastDispatcher,
Optional.of(persistenceWrapper),
dumpController
)
@@ -190,7 +228,7 @@ class ControlsControllerImplTest : SysuiTestCase() {
controller.loadForComponent(TEST_COMPONENT) {}
reset(persistenceWrapper)
- verify(bindingController).bindAndLoad(safeEq(TEST_COMPONENT),
+ verify(bindingController).bindAndLoad(eq(TEST_COMPONENT),
capture(controlLoadCallbackCaptor))
controlLoadCallbackCaptor.value.invoke(listOf(control))
@@ -262,7 +300,7 @@ class ControlsControllerImplTest : SysuiTestCase() {
assertEquals(ControlStatus(control, false), controlStatus)
}
- verify(bindingController).bindAndLoad(safeEq(TEST_COMPONENT),
+ verify(bindingController).bindAndLoad(eq(TEST_COMPONENT),
capture(controlLoadCallbackCaptor))
controlLoadCallbackCaptor.value.invoke(listOf(control))
@@ -287,7 +325,7 @@ class ControlsControllerImplTest : SysuiTestCase() {
assertEquals(ControlStatus(control2, false), controlStatus2)
}
- verify(bindingController).bindAndLoad(safeEq(TEST_COMPONENT),
+ verify(bindingController).bindAndLoad(eq(TEST_COMPONENT),
capture(controlLoadCallbackCaptor))
controlLoadCallbackCaptor.value.invoke(listOf(control, control2))
@@ -309,7 +347,7 @@ class ControlsControllerImplTest : SysuiTestCase() {
assertTrue(controlStatus.removed)
}
- verify(bindingController).bindAndLoad(safeEq(TEST_COMPONENT),
+ verify(bindingController).bindAndLoad(eq(TEST_COMPONENT),
capture(controlLoadCallbackCaptor))
controlLoadCallbackCaptor.value.invoke(emptyList())
@@ -325,7 +363,7 @@ class ControlsControllerImplTest : SysuiTestCase() {
controller.loadForComponent(TEST_COMPONENT) {}
- verify(bindingController).bindAndLoad(safeEq(TEST_COMPONENT),
+ verify(bindingController).bindAndLoad(eq(TEST_COMPONENT),
capture(controlLoadCallbackCaptor))
controlLoadCallbackCaptor.value.invoke(listOf(control))
@@ -358,4 +396,91 @@ class ControlsControllerImplTest : SysuiTestCase() {
controller.clearFavorites()
assertTrue(controller.getFavoriteControls().isEmpty())
}
+
+ @Test
+ fun testSwitchUsers() {
+ controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+
+ reset(persistenceWrapper)
+ val intent = Intent(Intent.ACTION_USER_SWITCHED).apply {
+ putExtra(Intent.EXTRA_USER_HANDLE, otherUser)
+ }
+ val pendingResult = mock(BroadcastReceiver.PendingResult::class.java)
+ `when`(pendingResult.sendingUserId).thenReturn(otherUser)
+ broadcastReceiverCaptor.value.pendingResult = pendingResult
+
+ broadcastReceiverCaptor.value.onReceive(mContext, intent)
+
+ verify(persistenceWrapper).changeFile(any())
+ verify(persistenceWrapper).readFavorites()
+ verify(bindingController).changeUser(UserHandle.of(otherUser))
+ verify(listingController).changeUser(UserHandle.of(otherUser))
+ assertTrue(controller.getFavoriteControls().isEmpty())
+ assertEquals(otherUser, controller.currentUserId)
+ assertTrue(controller.available)
+ }
+
+ @Test
+ fun testDisableFeature_notAvailable() {
+ Settings.Secure.putIntForUser(mContext.contentResolver,
+ ControlsControllerImpl.CONTROLS_AVAILABLE, 0, user)
+ controller.settingObserver.onChange(false, ControlsControllerImpl.URI, 0)
+ assertFalse(controller.available)
+ }
+
+ @Test
+ fun testDisableFeature_clearFavorites() {
+ controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+ assertFalse(controller.getFavoriteControls().isEmpty())
+
+ Settings.Secure.putIntForUser(mContext.contentResolver,
+ ControlsControllerImpl.CONTROLS_AVAILABLE, 0, user)
+ controller.settingObserver.onChange(false, ControlsControllerImpl.URI, user)
+ assertTrue(controller.getFavoriteControls().isEmpty())
+ }
+
+ @Test
+ fun testDisableFeature_noChangeForNotCurrentUser() {
+ controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+ Settings.Secure.putIntForUser(mContext.contentResolver,
+ ControlsControllerImpl.CONTROLS_AVAILABLE, 0, otherUser)
+ controller.settingObserver.onChange(false, ControlsControllerImpl.URI, otherUser)
+
+ assertTrue(controller.available)
+ assertFalse(controller.getFavoriteControls().isEmpty())
+ }
+
+ @Test
+ fun testCorrectUserSettingOnUserChange() {
+ Settings.Secure.putIntForUser(mContext.contentResolver,
+ ControlsControllerImpl.CONTROLS_AVAILABLE, 0, otherUser)
+
+ val intent = Intent(Intent.ACTION_USER_SWITCHED).apply {
+ putExtra(Intent.EXTRA_USER_HANDLE, otherUser)
+ }
+ val pendingResult = mock(BroadcastReceiver.PendingResult::class.java)
+ `when`(pendingResult.sendingUserId).thenReturn(otherUser)
+ broadcastReceiverCaptor.value.pendingResult = pendingResult
+
+ broadcastReceiverCaptor.value.onReceive(mContext, intent)
+
+ assertFalse(controller.available)
+ }
+
+ @Test
+ fun testCountFavoritesForComponent_singleComponent() {
+ controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+
+ assertEquals(1, controller.countFavoritesForComponent(TEST_COMPONENT))
+ assertEquals(0, controller.countFavoritesForComponent(TEST_COMPONENT_2))
+ }
+
+ @Test
+ fun testCountFavoritesForComponent_multipleComponents() {
+ controller.changeFavoriteStatus(TEST_CONTROL_INFO, true)
+ controller.changeFavoriteStatus(TEST_CONTROL_INFO_2, true)
+
+ assertEquals(1, controller.countFavoritesForComponent(TEST_COMPONENT))
+ assertEquals(1, controller.countFavoritesForComponent(TEST_COMPONENT_2))
+ }
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManagerTest.kt
index 4fc1cca76be6..40566dc39c9e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManagerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsProviderLifecycleManagerTest.kt
@@ -17,6 +17,7 @@
package com.android.systemui.controls.controller
import android.content.ComponentName
+import android.os.UserHandle
import android.service.controls.Control
import android.service.controls.IControlsActionCallback
import android.service.controls.IControlsLoadCallback
@@ -86,6 +87,7 @@ class ControlsProviderLifecycleManagerTest : SysuiTestCase() {
loadCallback,
actionCallback,
subscriber,
+ UserHandle.of(0),
componentName
)
}
@@ -97,13 +99,13 @@ class ControlsProviderLifecycleManagerTest : SysuiTestCase() {
@Test
fun testBindService() {
- manager.bindPermanently()
+ manager.bindService()
assertTrue(mContext.isBound(componentName))
}
@Test
fun testUnbindService() {
- manager.bindPermanently()
+ manager.bindService()
manager.unbindService()
assertFalse(mContext.isBound(componentName))
}
@@ -123,7 +125,7 @@ class ControlsProviderLifecycleManagerTest : SysuiTestCase() {
fun testMaybeUnbind_bindingAndCallback() {
manager.maybeBindAndLoad {}
- manager.maybeUnbindAndRemoveCallback()
+ manager.unbindService()
assertFalse(mContext.isBound(componentName))
assertNull(manager.lastLoadCallback)
}
@@ -148,4 +150,4 @@ class ControlsProviderLifecycleManagerTest : SysuiTestCase() {
eq(actionCallback))
assertEquals(action, wrapperCaptor.getValue().getWrappedAction())
}
-}
+} \ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsListingControllerImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsListingControllerImplTest.kt
index f09aab97a219..85e937e40acd 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsListingControllerImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsListingControllerImplTest.kt
@@ -17,12 +17,15 @@
package com.android.systemui.controls.management
import android.content.ComponentName
+import android.content.Context
+import android.content.ContextWrapper
import android.content.pm.ServiceInfo
+import android.os.UserHandle
import android.testing.AndroidTestingRunner
import androidx.test.filters.SmallTest
import com.android.settingslib.applications.ServiceListing
-import com.android.settingslib.widget.CandidateInfo
import com.android.systemui.SysuiTestCase
+import com.android.systemui.controls.ControlsServiceInfo
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.time.FakeSystemClock
import org.junit.After
@@ -69,13 +72,22 @@ class ControlsListingControllerImplTest : SysuiTestCase() {
private var serviceListingCallbackCaptor =
ArgumentCaptor.forClass(ServiceListing.Callback::class.java)
+ private val user = mContext.userId
+ private val otherUser = user + 1
+
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
`when`(serviceInfo.componentName).thenReturn(componentName)
- controller = ControlsListingControllerImpl(mContext, executor, mockSL)
+ val wrapper = object : ContextWrapper(mContext) {
+ override fun createContextAsUser(user: UserHandle, flags: Int): Context {
+ return baseContext
+ }
+ }
+
+ controller = ControlsListingControllerImpl(wrapper, executor, { mockSL })
verify(mockSL).addCallback(capture(serviceListingCallbackCaptor))
}
@@ -86,6 +98,11 @@ class ControlsListingControllerImplTest : SysuiTestCase() {
}
@Test
+ fun testStartsOnUser() {
+ assertEquals(user, controller.currentUserId)
+ }
+
+ @Test
fun testNoServices_notListening() {
assertTrue(controller.getCurrentServices().isEmpty())
}
@@ -167,8 +184,9 @@ class ControlsListingControllerImplTest : SysuiTestCase() {
controller.addCallback(mockCallbackOther)
@Suppress("unchecked_cast")
- val captor: ArgumentCaptor<List<CandidateInfo>> =
- ArgumentCaptor.forClass(List::class.java) as ArgumentCaptor<List<CandidateInfo>>
+ val captor: ArgumentCaptor<List<ControlsServiceInfo>> =
+ ArgumentCaptor.forClass(List::class.java)
+ as ArgumentCaptor<List<ControlsServiceInfo>>
executor.runAllReady()
reset(mockCallback)
@@ -185,4 +203,11 @@ class ControlsListingControllerImplTest : SysuiTestCase() {
assertEquals(1, captor.value.size)
assertEquals(componentName.flattenToString(), captor.value[0].key)
}
+
+ @Test
+ fun testChangeUser() {
+ controller.changeUser(UserHandle.of(otherUser))
+ executor.runAllReady()
+ assertEquals(otherUser, controller.currentUserId)
+ }
} \ No newline at end of file
diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeConfigurationUtil.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeConfigurationUtil.java
index 752e145d79bd..00d333fb593b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeConfigurationUtil.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeConfigurationUtil.java
@@ -53,6 +53,7 @@ public class DozeConfigurationUtil {
when(config.pickupGestureEnabled(anyInt())).thenReturn(false);
when(config.pulseOnNotificationEnabled(anyInt())).thenReturn(true);
when(config.alwaysOnEnabled(anyInt())).thenReturn(false);
+ when(config.dozeSuppressed(anyInt())).thenReturn(false);
when(config.enabled(anyInt())).thenReturn(true);
when(config.getWakeLockScreenDebounce()).thenReturn(0L);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java
index f4cf314aa8fd..63cbca9255a6 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java
@@ -139,6 +139,65 @@ public class DozeMachineTest extends SysuiTestCase {
}
@Test
+ public void testInitialize_dozeSuppressed_alwaysOnDisabled_goesToDoze() {
+ when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+ when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(false);
+
+ mMachine.requestState(INITIALIZED);
+
+ verify(mPartMock).transitionTo(INITIALIZED, DOZE);
+ assertEquals(DOZE, mMachine.getState());
+ }
+
+ @Test
+ public void testInitialize_dozeSuppressed_alwaysOnEnabled_goesToDoze() {
+ when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+ when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true);
+
+ mMachine.requestState(INITIALIZED);
+
+ verify(mPartMock).transitionTo(INITIALIZED, DOZE);
+ assertEquals(DOZE, mMachine.getState());
+ }
+
+ @Test
+ public void testInitialize_dozeSuppressed_afterDocked_goesToDoze() {
+ when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+ when(mDockManager.isDocked()).thenReturn(true);
+
+ mMachine.requestState(INITIALIZED);
+
+ verify(mPartMock).transitionTo(INITIALIZED, DOZE);
+ assertEquals(DOZE, mMachine.getState());
+ }
+
+ @Test
+ public void testInitialize_dozeSuppressed_alwaysOnDisabled_afterDockPaused_goesToDoze() {
+ when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+ when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(false);
+ when(mDockManager.isDocked()).thenReturn(true);
+ when(mDockManager.isHidden()).thenReturn(true);
+
+ mMachine.requestState(INITIALIZED);
+
+ verify(mPartMock).transitionTo(INITIALIZED, DOZE);
+ assertEquals(DOZE, mMachine.getState());
+ }
+
+ @Test
+ public void testInitialize_dozeSuppressed_alwaysOnEnabled_afterDockPaused_goesToDoze() {
+ when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+ when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true);
+ when(mDockManager.isDocked()).thenReturn(true);
+ when(mDockManager.isHidden()).thenReturn(true);
+
+ mMachine.requestState(INITIALIZED);
+
+ verify(mPartMock).transitionTo(INITIALIZED, DOZE);
+ assertEquals(DOZE, mMachine.getState());
+ }
+
+ @Test
public void testPulseDone_goesToDoze() {
when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(false);
mMachine.requestState(INITIALIZED);
@@ -165,6 +224,20 @@ public class DozeMachineTest extends SysuiTestCase {
}
@Test
+ public void testPulseDone_dozeSuppressed_goesToSuppressed() {
+ when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+ when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true);
+ mMachine.requestState(INITIALIZED);
+ mMachine.requestPulse(DozeLog.PULSE_REASON_NOTIFICATION);
+ mMachine.requestState(DOZE_PULSING);
+
+ mMachine.requestState(DOZE_PULSE_DONE);
+
+ verify(mPartMock).transitionTo(DOZE_PULSE_DONE, DOZE);
+ assertEquals(DOZE, mMachine.getState());
+ }
+
+ @Test
public void testPulseDone_afterDocked_goesToDockedAoD() {
when(mDockManager.isDocked()).thenReturn(true);
mMachine.requestState(INITIALIZED);
@@ -178,6 +251,20 @@ public class DozeMachineTest extends SysuiTestCase {
}
@Test
+ public void testPulseDone_dozeSuppressed_afterDocked_goesToDoze() {
+ when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+ when(mDockManager.isDocked()).thenReturn(true);
+ mMachine.requestState(INITIALIZED);
+ mMachine.requestPulse(DozeLog.PULSE_REASON_NOTIFICATION);
+ mMachine.requestState(DOZE_PULSING);
+
+ mMachine.requestState(DOZE_PULSE_DONE);
+
+ verify(mPartMock).transitionTo(DOZE_PULSE_DONE, DOZE);
+ assertEquals(DOZE, mMachine.getState());
+ }
+
+ @Test
public void testPulseDone_afterDockPaused_goesToDoze() {
when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true);
when(mDockManager.isDocked()).thenReturn(true);
@@ -193,6 +280,22 @@ public class DozeMachineTest extends SysuiTestCase {
}
@Test
+ public void testPulseDone_dozeSuppressed_afterDockPaused_goesToDoze() {
+ when(mConfigMock.dozeSuppressed(anyInt())).thenReturn(true);
+ when(mConfigMock.alwaysOnEnabled(anyInt())).thenReturn(true);
+ when(mDockManager.isDocked()).thenReturn(true);
+ when(mDockManager.isHidden()).thenReturn(true);
+ mMachine.requestState(INITIALIZED);
+ mMachine.requestPulse(DozeLog.PULSE_REASON_NOTIFICATION);
+ mMachine.requestState(DOZE_PULSING);
+
+ mMachine.requestState(DOZE_PULSE_DONE);
+
+ verify(mPartMock).transitionTo(DOZE_PULSE_DONE, DOZE);
+ assertEquals(DOZE, mMachine.getState());
+ }
+
+ @Test
public void testFinished_staysFinished() {
mMachine.requestState(INITIALIZED);
mMachine.requestState(FINISH);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuppressedHandlerTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuppressedHandlerTest.java
new file mode 100644
index 000000000000..5bdca76d449c
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuppressedHandlerTest.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.doze;
+
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+import android.hardware.display.AmbientDisplayConfiguration;
+import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper.RunWithLooper;
+
+import androidx.test.filters.SmallTest;
+
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.doze.DozeSuppressedHandler.DozeSuppressedSettingObserver;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+@SmallTest
+@RunWith(AndroidTestingRunner.class)
+@RunWithLooper
+public class DozeSuppressedHandlerTest extends SysuiTestCase {
+ @Mock private DozeMachine mMachine;
+ @Mock private DozeSuppressedSettingObserver mObserver;
+ private AmbientDisplayConfiguration mConfig;
+ private DozeSuppressedHandler mSuppressedHandler;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ mConfig = DozeConfigurationUtil.createMockConfig();
+ mSuppressedHandler = new DozeSuppressedHandler(mContext, mConfig, mMachine, mObserver);
+ }
+
+ @Test
+ public void transitionTo_initialized_registersObserver() throws Exception {
+ mSuppressedHandler.transitionTo(DozeMachine.State.UNINITIALIZED,
+ DozeMachine.State.INITIALIZED);
+
+ verify(mObserver).register();
+ }
+
+ @Test
+ public void transitionTo_finish_unregistersObserver() throws Exception {
+ mSuppressedHandler.transitionTo(DozeMachine.State.INITIALIZED,
+ DozeMachine.State.FINISH);
+
+ verify(mObserver).unregister();
+ }
+
+ @Test
+ public void transitionTo_doze_doesNothing() throws Exception {
+ mSuppressedHandler.transitionTo(DozeMachine.State.INITIALIZED,
+ DozeMachine.State.DOZE);
+
+ verify(mObserver, never()).register();
+ verify(mObserver, never()).unregister();
+ }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/log/RichEventTest.java b/packages/SystemUI/tests/src/com/android/systemui/log/RichEventTest.java
deleted file mode 100644
index 4a90bb91ca37..000000000000
--- a/packages/SystemUI/tests/src/com/android/systemui/log/RichEventTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.log;
-
-import static junit.framework.Assert.assertEquals;
-
-import android.testing.AndroidTestingRunner;
-
-import androidx.test.filters.SmallTest;
-
-import com.android.systemui.SysuiTestCase;
-
-import junit.framework.Assert;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@SmallTest
-@RunWith(AndroidTestingRunner.class)
-public class RichEventTest extends SysuiTestCase {
-
- private static final int TOTAL_EVENT_TYPES = 1;
-
- @Test
- public void testCreateRichEvent_invalidType() {
- try {
- // indexing for events starts at 0, so TOTAL_EVENT_TYPES is an invalid type
- new TestableRichEvent(Event.DEBUG, TOTAL_EVENT_TYPES, "msg");
- } catch (IllegalArgumentException e) {
- // expected
- return;
- }
-
- Assert.fail("Expected an invalidArgumentException since the event type was invalid.");
- }
-
- @Test
- public void testCreateRichEvent() {
- final int eventType = 0;
- RichEvent e = new TestableRichEvent(Event.DEBUG, eventType, "msg");
- assertEquals(e.getType(), eventType);
- }
-
- class TestableRichEvent extends RichEvent {
- TestableRichEvent(int logLevel, int type, String reason) {
- init(logLevel, type, reason);
- }
-
- @Override
- public String[] getEventLabels() {
- return new String[]{"ACTION_NAME"};
- }
- }
-
-}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/log/SysuiLogTest.java b/packages/SystemUI/tests/src/com/android/systemui/log/SysuiLogTest.java
deleted file mode 100644
index e7b317e882ef..000000000000
--- a/packages/SystemUI/tests/src/com/android/systemui/log/SysuiLogTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.log;
-
-import static junit.framework.Assert.assertEquals;
-
-import android.testing.AndroidTestingRunner;
-
-import androidx.test.filters.SmallTest;
-
-import com.android.systemui.DumpController;
-import com.android.systemui.SysuiTestCase;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-@SmallTest
-@RunWith(AndroidTestingRunner.class)
-public class SysuiLogTest extends SysuiTestCase {
- private static final String TEST_ID = "TestLogger";
- private static final String TEST_MSG = "msg";
- private static final int MAX_LOGS = 5;
-
- @Mock
- private DumpController mDumpController;
- private SysuiLog<Event> mSysuiLog;
-
- @Before
- public void setup() {
- MockitoAnnotations.initMocks(this);
- }
-
- @Test
- public void testLogDisabled_noLogsWritten() {
- mSysuiLog = new TestSysuiLog(mDumpController, TEST_ID, MAX_LOGS, false);
- assertEquals(null, mSysuiLog.mTimeline);
-
- mSysuiLog.log(createEvent(TEST_MSG));
- assertEquals(null, mSysuiLog.mTimeline);
- }
-
- @Test
- public void testLogEnabled_logWritten() {
- mSysuiLog = new TestSysuiLog(mDumpController, TEST_ID, MAX_LOGS, true);
- assertEquals(0, mSysuiLog.mTimeline.size());
-
- mSysuiLog.log(createEvent(TEST_MSG));
- assertEquals(1, mSysuiLog.mTimeline.size());
- }
-
- @Test
- public void testMaxLogs() {
- mSysuiLog = new TestSysuiLog(mDumpController, TEST_ID, MAX_LOGS, true);
- assertEquals(mSysuiLog.mTimeline.size(), 0);
-
- for (int i = 0; i < MAX_LOGS + 1; i++) {
- mSysuiLog.log(createEvent(TEST_MSG + i));
- }
-
- assertEquals(MAX_LOGS, mSysuiLog.mTimeline.size());
-
- // check the first message (msg0) was replaced with msg1:
- assertEquals(TEST_MSG + "1", mSysuiLog.mTimeline.getFirst().getMessage());
- }
-
- @Test
- public void testRecycleLogs() {
- // GIVEN a SysuiLog with one log
- mSysuiLog = new TestSysuiLog(mDumpController, TEST_ID, MAX_LOGS, true);
- Event e = createEvent(TEST_MSG); // msg
- mSysuiLog.log(e); // Logs: [msg]
-
- Event recycledEvent = null;
- // WHEN we add MAX_LOGS after the first log
- for (int i = 0; i < MAX_LOGS; i++) {
- recycledEvent = mSysuiLog.log(createEvent(TEST_MSG + i));
- }
- // Logs: [msg1, msg2, msg3, msg4]
-
- // THEN we see the recycledEvent is e
- assertEquals(e, recycledEvent);
- }
-
- private Event createEvent(String msg) {
- return new Event().init(msg);
- }
-
- public class TestSysuiLog extends SysuiLog<Event> {
- protected TestSysuiLog(DumpController dumpController, String id, int maxLogs,
- boolean enabled) {
- super(dumpController, id, maxLogs, enabled, false);
- }
- }
-}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSSecurityFooterTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSSecurityFooterTest.java
index 47933ba9fdaa..e58a3a6bf5d7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSSecurityFooterTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSSecurityFooterTest.java
@@ -16,8 +16,11 @@ package com.android.systemui.qs;
import static junit.framework.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.mockito.ArgumentMatchers.anyInt;
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.content.Context;
@@ -447,6 +450,21 @@ public class QSSecurityFooterTest extends SysuiTestCase {
view.findViewById(R.id.vpn_subtitle).getVisibility());
}
+ @Test
+ public void testNoClickWhenGone() {
+ QSTileHost mockHost = mock(QSTileHost.class);
+ mFooter.setHostEnvironment(mockHost);
+ mFooter.refreshState();
+
+ TestableLooper.get(this).processAllMessages();
+
+ assertFalse(mFooter.hasFooter());
+ mFooter.onClick(mFooter.getView());
+
+ // Proxy for dialog being created
+ verify(mockHost, never()).collapsePanels();
+ }
+
private CharSequence addLink(CharSequence description) {
final SpannableStringBuilder message = new SpannableStringBuilder();
message.append(description);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shared/recents/model/TaskKeyLruCacheTest.java b/packages/SystemUI/tests/src/com/android/systemui/shared/recents/model/TaskKeyLruCacheTest.java
deleted file mode 100644
index de6c87c7ff01..000000000000
--- a/packages/SystemUI/tests/src/com/android/systemui/shared/recents/model/TaskKeyLruCacheTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.shared.recents.model;
-
-
-import static junit.framework.TestCase.assertEquals;
-import static junit.framework.TestCase.assertNull;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import android.test.suitebuilder.annotation.SmallTest;
-
-import com.android.systemui.SysuiTestCase;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnitRunner;
-
-@SmallTest
-@RunWith(MockitoJUnitRunner.class)
-public class TaskKeyLruCacheTest extends SysuiTestCase {
- private static int sCacheSize = 3;
- private static int sIdTask1 = 1;
- private static int sIdTask2 = 2;
- private static int sIdTask3 = 3;
- private static int sIdUser1 = 1;
-
- TaskKeyLruCache.EvictionCallback mEvictionCallback;
-
- TaskKeyLruCache<Integer> mCache;
- private Task.TaskKey mKey1;
- private Task.TaskKey mKey2;
- private Task.TaskKey mKey3;
-
- @Before
- public void setup() {
- mEvictionCallback = mock(TaskKeyLruCache.EvictionCallback.class);
- mCache = new TaskKeyLruCache<>(sCacheSize, mEvictionCallback);
-
- mKey1 = new Task.TaskKey(sIdTask1, 0, null, null, sIdUser1, System.currentTimeMillis());
- mKey2 = new Task.TaskKey(sIdTask2, 0, null, null, sIdUser1, System.currentTimeMillis());
- mKey3 = new Task.TaskKey(sIdTask3, 0, null, null, sIdUser1, System.currentTimeMillis());
- }
-
- @Test
- public void addSingleItem_get_success() {
- mCache.put(mKey1, 1);
-
- assertEquals(1, (int) mCache.get(mKey1));
- }
-
- @Test
- public void addSingleItem_getUninsertedItem_returnsNull() {
- mCache.put(mKey1, 1);
-
- assertNull(mCache.get(mKey2));
- }
-
- @Test
- public void emptyCache_get_returnsNull() {
- assertNull(mCache.get(mKey1));
- }
-
- @Test
- public void updateItem_get_returnsSecond() {
- mCache.put(mKey1, 1);
- mCache.put(mKey1, 2);
-
- assertEquals(2, (int) mCache.get(mKey1));
- assertEquals(1, mCache.mKeys.size());
- }
-
- @Test
- public void fillCache_put_evictsOldest() {
- mCache.put(mKey1, 1);
- mCache.put(mKey2, 2);
- mCache.put(mKey3, 3);
- Task.TaskKey key4 = new Task.TaskKey(sIdTask3 + 1, 0,
- null, null, sIdUser1, System.currentTimeMillis());
- mCache.put(key4, 4);
-
- assertNull(mCache.get(mKey1));
- assertEquals(3, mCache.mKeys.size());
- assertEquals(mKey2, mCache.mKeys.valueAt(0));
- verify(mEvictionCallback, times(1)).onEntryEvicted(mKey1);
- }
-
- @Test
- public void fillCache_remove_success() {
- mCache.put(mKey1, 1);
- mCache.put(mKey2, 2);
- mCache.put(mKey3, 3);
-
- mCache.remove(mKey2);
-
- assertNull(mCache.get(mKey2));
- assertEquals(2, mCache.mKeys.size());
- verify(mEvictionCallback, times(0)).onEntryEvicted(mKey2);
- }
-
- @Test
- public void put_evictionCallback_notCalled() {
- mCache.put(mKey1, 1);
- verify(mEvictionCallback, times(0)).onEntryEvicted(mKey1);
- }
-
- @Test
- public void evictAll_evictionCallback_called() {
- mCache.put(mKey1, 1);
- mCache.evictAllCache();
- verify(mEvictionCallback, times(1)).onEntryEvicted(mKey1);
- }
-
- @Test
- public void trimAll_evictionCallback_called() {
- mCache.put(mKey1, 1);
- mCache.put(mKey2, 2);
- mCache.trimToSize(-1);
- verify(mEvictionCallback, times(1)).onEntryEvicted(mKey1);
- verify(mEvictionCallback, times(1)).onEntryEvicted(mKey2);
-
- }
-}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
index 0a3bc6def160..1d4b4be9e683 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/KeyguardIndicationControllerTest.java
@@ -53,8 +53,8 @@ import androidx.test.runner.AndroidJUnit4;
import com.android.internal.app.IBatteryStats;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardUpdateMonitor;
-import com.android.keyguard.KeyguardUpdateMonitor.BatteryStatus;
import com.android.settingslib.Utils;
+import com.android.settingslib.fuelgauge.BatteryStatus;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.dock.DockManager;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java
index c97813de8c0c..60163f26bb2b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java
@@ -49,6 +49,8 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntryB
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.ExpandableView;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
+import com.android.systemui.statusbar.notification.stack.ForegroundServiceSectionController;
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
@@ -104,7 +106,8 @@ public class NotificationViewHierarchyManagerTest extends SysuiTestCase {
mock(StatusBarStateControllerImpl.class), mEntryManager,
mock(KeyguardBypassController.class),
mock(BubbleController.class),
- mock(DynamicPrivacyController.class));
+ mock(DynamicPrivacyController.class),
+ mock(ForegroundServiceSectionController.class));
mViewHierarchyManager.setUpWithPresenter(mPresenter, mListContainer);
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/AboveShelfObserverTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/AboveShelfObserverTest.java
index 4103edee6255..9d667a9a91c8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/AboveShelfObserverTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/AboveShelfObserverTest.java
@@ -26,8 +26,8 @@ import android.testing.TestableLooper.RunWithLooper;
import android.widget.FrameLayout;
import com.android.systemui.SysuiTestCase;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import org.junit.Assert;
import org.junit.Before;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationEntryManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationEntryManagerTest.java
index 296d0cef715c..07f6936ece07 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationEntryManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationEntryManagerTest.java
@@ -79,14 +79,14 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntryB
import com.android.systemui.statusbar.notification.collection.NotificationRankingManager;
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl;
import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider;
-import com.android.systemui.statusbar.notification.logging.NotifLog;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
import com.android.systemui.statusbar.notification.row.ActivatableNotificationViewController;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
-import com.android.systemui.statusbar.notification.row.NotifRemoteViewCache;
-import com.android.systemui.statusbar.notification.row.NotificationContentInflater;
+import com.android.systemui.statusbar.notification.row.NotifBindPipeline;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
+import com.android.systemui.statusbar.notification.row.RowContentBindParams;
+import com.android.systemui.statusbar.notification.row.RowContentBindStage;
import com.android.systemui.statusbar.notification.row.RowInflaterTask;
import com.android.systemui.statusbar.notification.row.dagger.NotificationRowComponent;
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
@@ -99,6 +99,7 @@ import com.android.systemui.util.leak.LeakDetector;
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -137,7 +138,7 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
@Mock private NotificationRemoteInputManager mRemoteInputManager;
@Mock private DeviceProvisionedController mDeviceProvisionedController;
@Mock private RowInflaterTask mAsyncInflationTask;
- @Mock private NotifLog mNotifLog;
+ @Mock private NotificationEntryManagerLogger mLogger;
@Mock private FeatureFlags mFeatureFlags;
@Mock private LeakDetector mLeakDetector;
@Mock private ActivatableNotificationViewController mActivatableNotificationViewController;
@@ -206,20 +207,20 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
mEntry.expandedIcon = mock(StatusBarIconView.class);
- NotificationContentInflater contentBinder = new NotificationContentInflater(
- mock(NotifRemoteViewCache.class),
- mRemoteInputManager);
- contentBinder.setInflateSynchronously(true);
-
when(mNotificationRowComponentBuilder.activatableNotificationView(any()))
.thenReturn(mNotificationRowComponentBuilder);
when(mNotificationRowComponentBuilder.build()).thenReturn(
() -> mActivatableNotificationViewController);
+
+ RowContentBindStage bindStage = mock(RowContentBindStage.class);
+ when(bindStage.getStageParams(any())).thenReturn(new RowContentBindParams());
+
NotificationRowBinderImpl notificationRowBinder =
new NotificationRowBinderImpl(mContext,
mRemoteInputManager,
mLockscreenUserManager,
- contentBinder,
+ mock(NotifBindPipeline.class),
+ bindStage,
true, /* allowLongPress */
mock(KeyguardBypassController.class),
mock(StatusBarStateController.class),
@@ -232,14 +233,14 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
when(mFeatureFlags.isNewNotifPipelineEnabled()).thenReturn(false);
when(mFeatureFlags.isNewNotifPipelineRenderingEnabled()).thenReturn(false);
mEntryManager = new TestableNotificationEntryManager(
- mNotifLog,
+ mLogger,
mGroupManager,
new NotificationRankingManager(
() -> mock(NotificationMediaManager.class),
mGroupManager,
mHeadsUpManager,
mock(NotificationFilter.class),
- mNotifLog,
+ mLogger,
mock(NotificationSectionsFeatureManager.class),
mock(PeopleNotificationIdentifier.class),
mock(HighPriorityProvider.class)),
@@ -247,11 +248,12 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
mFeatureFlags,
() -> notificationRowBinder,
() -> mRemoteInputManager,
- mLeakDetector
+ mLeakDetector,
+ mock(ForegroundServiceDismissalFeatureController.class)
);
mEntryManager.setUpWithPresenter(mPresenter, mListContainer, mHeadsUpManager);
mEntryManager.addNotificationEntryListener(mEntryListener);
- mEntryManager.setNotificationRemoveInterceptor(mRemoveInterceptor);
+ mEntryManager.addNotificationRemoveInterceptor(mRemoveInterceptor);
notificationRowBinder.setUpWithPresenter(
mPresenter, mListContainer, mHeadsUpManager, mBindCallback);
@@ -268,7 +270,10 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
mEntry.abortTask();
}
+ // TODO: These tests are closer to functional tests and we should move them to their own file.
+ // and also strip some of the verifies that make the test too complex
@Test
+ @Ignore
public void testAddNotification() throws Exception {
TestableLooper.get(this).processAllMessages();
@@ -305,6 +310,7 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
}
@Test
+ @Ignore
public void testUpdateNotification() throws Exception {
TestableLooper.get(this).processAllMessages();
@@ -330,6 +336,7 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
}
@Test
+ @Ignore
public void testUpdateNotification_prePostEntryOrder() throws Exception {
TestableLooper.get(this).processAllMessages();
@@ -398,7 +405,6 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
setSmartActions(mEntry.getKey(), new ArrayList<>(Arrays.asList(createAction())));
mEntryManager.updateNotificationRanking(mRankingMap);
- verify(mRow).setEntry(eq(mEntry));
assertEquals(1, mEntry.getSmartActions().size());
assertEquals("action", mEntry.getSmartActions().get(0).title);
verify(mEntryListener).onNotificationRankingUpdated(mRankingMap);
@@ -546,7 +552,8 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
mEntryManager.addActiveNotificationForTest(mEntry);
// GIVEN interceptor that intercepts that entry
- when(mRemoveInterceptor.onNotificationRemoveRequested(eq(mEntry.getKey()), anyInt()))
+ when(mRemoveInterceptor.onNotificationRemoveRequested(
+ eq(mEntry.getKey()), eq(mEntry), anyInt()))
.thenReturn(true);
// WHEN the notification is removed
@@ -564,7 +571,8 @@ public class NotificationEntryManagerTest extends SysuiTestCase {
mEntryManager.addActiveNotificationForTest(mEntry);
// GIVEN interceptor that doesn't intercept
- when(mRemoveInterceptor.onNotificationRemoveRequested(eq(mEntry.getKey()), anyInt()))
+ when(mRemoveInterceptor.onNotificationRemoveRequested(
+ eq(mEntry.getKey()), eq(mEntry), anyInt()))
.thenReturn(false);
// WHEN the notification is removed
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationFilterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationFilterTest.java
index 5aed61b98ad9..1116a333125e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationFilterTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationFilterTest.java
@@ -42,11 +42,11 @@ import com.android.systemui.ForegroundServiceController;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.NotificationEntryManager.KeyguardEnvironment;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.phone.ShadeController;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/TestableNotificationEntryManager.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/TestableNotificationEntryManager.kt
index 29ce92074027..0e730e5c3ffb 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/TestableNotificationEntryManager.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/TestableNotificationEntryManager.kt
@@ -22,7 +22,6 @@ import com.android.systemui.statusbar.NotificationRemoteInputManager
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.NotificationRankingManager
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinder
-import com.android.systemui.statusbar.notification.logging.NotifLog
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
import com.android.systemui.statusbar.phone.HeadsUpManagerPhone
import com.android.systemui.statusbar.phone.NotificationGroupManager
@@ -34,21 +33,22 @@ import java.util.concurrent.CountDownLatch
* Enable some test capabilities for NEM without making everything public on the base class
*/
class TestableNotificationEntryManager(
- log: NotifLog,
+ logger: NotificationEntryManagerLogger,
gm: NotificationGroupManager,
rm: NotificationRankingManager,
ke: KeyguardEnvironment,
ff: FeatureFlags,
rb: dagger.Lazy<NotificationRowBinder>,
notificationRemoteInputManagerLazy: dagger.Lazy<NotificationRemoteInputManager>,
- leakDetector: LeakDetector
-) : NotificationEntryManager(log, gm, rm, ke, ff, rb,
- notificationRemoteInputManagerLazy, leakDetector) {
+ leakDetector: LeakDetector,
+ fgsFeatureController: ForegroundServiceDismissalFeatureController
+) : NotificationEntryManager(logger, gm, rm, ke, ff, rb,
+ notificationRemoteInputManagerLazy, leakDetector, fgsFeatureController) {
public var countDownLatch: CountDownLatch = CountDownLatch(1)
- override fun onAsyncInflationFinished(entry: NotificationEntry?, inflatedFlags: Int) {
- super.onAsyncInflationFinished(entry, inflatedFlags)
+ override fun onAsyncInflationFinished(entry: NotificationEntry) {
+ super.onAsyncInflationFinished(entry)
countDownLatch.countDown()
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java
index 9a7e97b5d55a..7c94ed20e95a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotifCollectionTest.java
@@ -17,9 +17,16 @@
package com.android.systemui.statusbar.notification.collection;
import static android.service.notification.NotificationListenerService.REASON_APP_CANCEL;
+import static android.service.notification.NotificationListenerService.REASON_CANCEL;
import static android.service.notification.NotificationListenerService.REASON_CLICK;
+import static android.service.notification.NotificationStats.DISMISSAL_SHADE;
+import static android.service.notification.NotificationStats.DISMISS_SENTIMENT_NEUTRAL;
+import static com.android.systemui.statusbar.notification.collection.NotifCollection.REASON_NOT_CANCELED;
import static com.android.systemui.statusbar.notification.collection.NotifCollection.REASON_UNKNOWN;
+import static com.android.systemui.statusbar.notification.collection.NotificationEntry.DismissState.DISMISSED;
+import static com.android.systemui.statusbar.notification.collection.NotificationEntry.DismissState.NOT_DISMISSED;
+import static com.android.systemui.statusbar.notification.collection.NotificationEntry.DismissState.PARENT_DISMISSED;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -40,7 +47,6 @@ import static java.util.Objects.requireNonNull;
import android.annotation.Nullable;
import android.os.RemoteException;
import android.service.notification.NotificationListenerService.Ranking;
-import android.service.notification.NotificationStats;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
import android.util.ArrayMap;
@@ -77,6 +83,7 @@ import org.mockito.Spy;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -139,9 +146,10 @@ public class NotifCollectionTest extends SysuiTestCase {
.setRank(4747));
// THEN the listener is notified
- verify(mCollectionListener).onEntryAdded(mEntryCaptor.capture());
-
+ verify(mCollectionListener).onEntryInit(mEntryCaptor.capture());
NotificationEntry entry = mEntryCaptor.getValue();
+
+ verify(mCollectionListener).onEntryAdded(entry);
assertEquals(notif1.key, entry.getKey());
assertEquals(notif1.sbn, entry.getSbn());
assertEquals(notif1.ranking, entry.getRanking());
@@ -235,7 +243,8 @@ public class NotifCollectionTest extends SysuiTestCase {
mNoMan.retractNotif(notif.sbn, REASON_APP_CANCEL);
// THEN the listener is notified
- verify(mCollectionListener).onEntryRemoved(entry, REASON_APP_CANCEL, false);
+ verify(mCollectionListener).onEntryRemoved(entry, REASON_APP_CANCEL);
+ verify(mCollectionListener).onEntryCleanUp(entry);
assertEquals(notif.sbn, entry.getSbn());
assertEquals(notif.ranking, entry.getRanking());
}
@@ -320,24 +329,15 @@ public class NotifCollectionTest extends SysuiTestCase {
}
@Test
- public void testDismissNotification() throws RemoteException {
- // GIVEN a collection with a couple notifications and a lifetime extender
- mCollection.addNotificationLifetimeExtender(mExtender1);
-
+ public void testDismissNotificationSentToSystemServer() throws RemoteException {
+ // GIVEN a collection with a couple notifications
NotifEvent notif1 = mNoMan.postNotif(buildNotif(TEST_PACKAGE, 47, "myTag"));
NotifEvent notif2 = mNoMan.postNotif(buildNotif(TEST_PACKAGE2, 88, "barTag"));
NotificationEntry entry2 = mCollectionListener.getEntry(notif2.key);
// WHEN a notification is manually dismissed
- DismissedByUserStats stats = new DismissedByUserStats(
- NotificationStats.DISMISSAL_SHADE,
- NotificationStats.DISMISS_SENTIMENT_NEUTRAL,
- NotificationVisibility.obtain(entry2.getKey(), 7, 2, true));
-
- mCollection.dismissNotification(entry2, REASON_CLICK, stats);
-
- // THEN we check for lifetime extension
- verify(mExtender1).shouldExtendLifetime(entry2, REASON_CLICK);
+ DismissedByUserStats stats = defaultStats(entry2);
+ mCollection.dismissNotification(entry2, defaultStats(entry2));
// THEN we send the dismissal to system server
verify(mStatusBarService).onNotificationClear(
@@ -349,9 +349,96 @@ public class NotifCollectionTest extends SysuiTestCase {
stats.dismissalSurface,
stats.dismissalSentiment,
stats.notificationVisibility);
+ }
+
+ @Test
+ public void testDismissedNotificationsAreMarkedAsDismissedLocally() {
+ // GIVEN a collection with a notification
+ NotifEvent notif1 = mNoMan.postNotif(buildNotif(TEST_PACKAGE, 47, "myTag"));
+ NotificationEntry entry1 = mCollectionListener.getEntry(notif1.key);
+
+ // WHEN a notification is manually dismissed
+ mCollection.dismissNotification(entry1, defaultStats(entry1));
- // THEN we fire a remove event
- verify(mCollectionListener).onEntryRemoved(entry2, REASON_CLICK, true);
+ // THEN the entry is marked as dismissed locally
+ assertEquals(DISMISSED, entry1.getDismissState());
+ }
+
+ @Test
+ public void testDismissedNotificationsCannotBeLifetimeExtended() {
+ // GIVEN a collection with a notification and a lifetime extender
+ mCollection.addNotificationLifetimeExtender(mExtender1);
+ NotifEvent notif1 = mNoMan.postNotif(buildNotif(TEST_PACKAGE, 47, "myTag"));
+ NotificationEntry entry1 = mCollectionListener.getEntry(notif1.key);
+
+ // WHEN a notification is manually dismissed
+ mCollection.dismissNotification(entry1, defaultStats(entry1));
+
+ // THEN lifetime extenders are never queried
+ verify(mExtender1, never()).shouldExtendLifetime(eq(entry1), anyInt());
+ }
+
+ @Test
+ public void testDismissedNotificationsDoNotTriggerRemovalEvents() {
+ // GIVEN a collection with a notification
+ NotifEvent notif1 = mNoMan.postNotif(buildNotif(TEST_PACKAGE, 47, "myTag"));
+ NotificationEntry entry1 = mCollectionListener.getEntry(notif1.key);
+
+ // WHEN a notification is manually dismissed
+ mCollection.dismissNotification(entry1, defaultStats(entry1));
+
+ // THEN onEntryRemoved is not called
+ verify(mCollectionListener, never()).onEntryRemoved(eq(entry1), anyInt());
+ }
+
+ @Test
+ public void testDismissedNotificationsStillAppearInNotificationSet() {
+ // GIVEN a collection with a notification
+ NotifEvent notif1 = mNoMan.postNotif(buildNotif(TEST_PACKAGE, 47, "myTag"));
+ NotificationEntry entry1 = mCollectionListener.getEntry(notif1.key);
+
+ // WHEN a notification is manually dismissed
+ mCollection.dismissNotification(entry1, defaultStats(entry1));
+
+ // THEN the dismissed entry still appears in the notification set
+ assertEquals(
+ new ArraySet<>(Collections.singletonList(entry1)),
+ new ArraySet<>(mCollection.getActiveNotifs()));
+ }
+
+ @Test
+ public void testDismissingLifetimeExtendedSummaryDoesNotDismissChildren() {
+ // GIVEN A notif group with one summary and two children
+ mCollection.addNotificationLifetimeExtender(mExtender1);
+ NotifEvent notif1 = mNoMan.postNotif(buildNotif(TEST_PACKAGE, 1, "myTag")
+ .setGroup(mContext, GROUP_1)
+ .setGroupSummary(mContext, true));
+ NotifEvent notif2 = mNoMan.postNotif(buildNotif(TEST_PACKAGE, 2, "myTag")
+ .setGroup(mContext, GROUP_1));
+ NotifEvent notif3 = mNoMan.postNotif(buildNotif(TEST_PACKAGE, 3, "myTag")
+ .setGroup(mContext, GROUP_1));
+
+ NotificationEntry entry1 = mCollectionListener.getEntry(notif1.key);
+ NotificationEntry entry2 = mCollectionListener.getEntry(notif2.key);
+ NotificationEntry entry3 = mCollectionListener.getEntry(notif3.key);
+
+ // GIVEN that the summary and one child are retracted, but both are lifetime-extended
+ mExtender1.shouldExtendLifetime = true;
+ mNoMan.retractNotif(notif1.sbn, REASON_CANCEL);
+ mNoMan.retractNotif(notif2.sbn, REASON_CANCEL);
+ assertEquals(
+ new ArraySet<>(List.of(entry1, entry2, entry3)),
+ new ArraySet<>(mCollection.getActiveNotifs()));
+
+ // WHEN the summary is dismissed by the user
+ mCollection.dismissNotification(entry1, defaultStats(entry1));
+
+ // THEN the summary is removed, but both children stick around
+ assertEquals(
+ new ArraySet<>(List.of(entry2, entry3)),
+ new ArraySet<>(mCollection.getActiveNotifs()));
+ assertEquals(NOT_DISMISSED, entry2.getDismissState());
+ assertEquals(NOT_DISMISSED, entry3.getDismissState());
}
@Test(expected = IllegalStateException.class)
@@ -364,15 +451,115 @@ public class NotifCollectionTest extends SysuiTestCase {
mNoMan.retractNotif(notif2.sbn, REASON_UNKNOWN);
// WHEN we try to dismiss a notification that isn't present
- mCollection.dismissNotification(
- entry2,
- REASON_CLICK,
- new DismissedByUserStats(0, 0, NotificationVisibility.obtain("foo", 47, 3, true)));
+ mCollection.dismissNotification(entry2, defaultStats(entry2));
// THEN an exception is thrown
}
@Test
+ public void testGroupChildrenAreDismissedLocallyWhenSummaryIsDismissed() {
+ // GIVEN a collection with two grouped notifs in it
+ NotifEvent notif0 = mNoMan.postNotif(
+ buildNotif(TEST_PACKAGE, 0)
+ .setGroup(mContext, GROUP_1)
+ .setGroupSummary(mContext, true));
+ NotifEvent notif1 = mNoMan.postNotif(
+ buildNotif(TEST_PACKAGE, 1)
+ .setGroup(mContext, GROUP_1));
+ NotificationEntry entry0 = mCollectionListener.getEntry(notif0.key);
+ NotificationEntry entry1 = mCollectionListener.getEntry(notif1.key);
+
+ // WHEN the summary is dismissed
+ mCollection.dismissNotification(entry0, defaultStats(entry0));
+
+ // THEN all members of the group are marked as dismissed locally
+ assertEquals(DISMISSED, entry0.getDismissState());
+ assertEquals(PARENT_DISMISSED, entry1.getDismissState());
+ }
+
+ @Test
+ public void testUpdatingDismissedSummaryBringsChildrenBack() {
+ // GIVEN a collection with two grouped notifs in it
+ NotifEvent notif0 = mNoMan.postNotif(
+ buildNotif(TEST_PACKAGE, 0)
+ .setGroup(mContext, GROUP_1)
+ .setGroupSummary(mContext, true));
+ NotifEvent notif1 = mNoMan.postNotif(
+ buildNotif(TEST_PACKAGE, 1)
+ .setGroup(mContext, GROUP_1));
+ NotificationEntry entry0 = mCollectionListener.getEntry(notif0.key);
+ NotificationEntry entry1 = mCollectionListener.getEntry(notif1.key);
+
+ // WHEN the summary is dismissed but then reposted without a group
+ mCollection.dismissNotification(entry0, defaultStats(entry0));
+ NotifEvent notif0a = mNoMan.postNotif(
+ buildNotif(TEST_PACKAGE, 0));
+
+ // THEN it and all of its previous children are no longer dismissed locally
+ assertEquals(NOT_DISMISSED, entry0.getDismissState());
+ assertEquals(NOT_DISMISSED, entry1.getDismissState());
+ }
+
+ @Test
+ public void testDismissedChildrenAreNotResetByParentUpdate() {
+ // GIVEN a collection with three grouped notifs in it
+ NotifEvent notif0 = mNoMan.postNotif(
+ buildNotif(TEST_PACKAGE, 0)
+ .setGroup(mContext, GROUP_1)
+ .setGroupSummary(mContext, true));
+ NotifEvent notif1 = mNoMan.postNotif(
+ buildNotif(TEST_PACKAGE, 1)
+ .setGroup(mContext, GROUP_1));
+ NotifEvent notif2 = mNoMan.postNotif(
+ buildNotif(TEST_PACKAGE, 2)
+ .setGroup(mContext, GROUP_1));
+ NotificationEntry entry0 = mCollectionListener.getEntry(notif0.key);
+ NotificationEntry entry1 = mCollectionListener.getEntry(notif1.key);
+ NotificationEntry entry2 = mCollectionListener.getEntry(notif2.key);
+
+ // WHEN a child is dismissed, then the parent is dismissed, then the parent is updated
+ mCollection.dismissNotification(entry1, defaultStats(entry1));
+ mCollection.dismissNotification(entry0, defaultStats(entry0));
+ NotifEvent notif0a = mNoMan.postNotif(
+ buildNotif(TEST_PACKAGE, 0));
+
+ // THEN the manually-dismissed child is still marked as dismissed
+ assertEquals(NOT_DISMISSED, entry0.getDismissState());
+ assertEquals(DISMISSED, entry1.getDismissState());
+ assertEquals(NOT_DISMISSED, entry2.getDismissState());
+ }
+
+ @Test
+ public void testUpdatingGroupKeyOfDismissedSummaryBringsChildrenBack() {
+ // GIVEN a collection with two grouped notifs in it
+ NotifEvent notif0 = mNoMan.postNotif(
+ buildNotif(TEST_PACKAGE, 0)
+ .setOverrideGroupKey(GROUP_1)
+ .setGroupSummary(mContext, true));
+ NotifEvent notif1 = mNoMan.postNotif(
+ buildNotif(TEST_PACKAGE, 1)
+ .setOverrideGroupKey(GROUP_1));
+ NotificationEntry entry0 = mCollectionListener.getEntry(notif0.key);
+ NotificationEntry entry1 = mCollectionListener.getEntry(notif1.key);
+
+ // WHEN the summary is dismissed but then reposted AND in the same update one of the
+ // children's ranking loses its override group
+ mCollection.dismissNotification(entry0, defaultStats(entry0));
+ mNoMan.setRanking(entry1.getKey(), new RankingBuilder()
+ .setKey(entry1.getKey())
+ .build());
+ mNoMan.postNotif(
+ buildNotif(TEST_PACKAGE, 0)
+ .setOverrideGroupKey(GROUP_1)
+ .setGroupSummary(mContext, true));
+
+ // THEN it and all of its previous children are no longer dismissed locally, including the
+ // child that is no longer part of the group
+ assertEquals(NOT_DISMISSED, entry0.getDismissState());
+ assertEquals(NOT_DISMISSED, entry1.getDismissState());
+ }
+
+ @Test
public void testLifetimeExtendersAreQueriedWhenNotifRemoved() {
// GIVEN a couple notifications and a few lifetime extenders
mExtender1.shouldExtendLifetime = true;
@@ -387,12 +574,12 @@ public class NotifCollectionTest extends SysuiTestCase {
NotificationEntry entry2 = mCollectionListener.getEntry(notif2.key);
// WHEN a notification is removed
- mNoMan.retractNotif(notif2.sbn, REASON_UNKNOWN);
+ mNoMan.retractNotif(notif2.sbn, REASON_CLICK);
// THEN each extender is asked whether to extend, even if earlier ones return true
- verify(mExtender1).shouldExtendLifetime(entry2, REASON_UNKNOWN);
- verify(mExtender2).shouldExtendLifetime(entry2, REASON_UNKNOWN);
- verify(mExtender3).shouldExtendLifetime(entry2, REASON_UNKNOWN);
+ verify(mExtender1).shouldExtendLifetime(entry2, REASON_CLICK);
+ verify(mExtender2).shouldExtendLifetime(entry2, REASON_CLICK);
+ verify(mExtender3).shouldExtendLifetime(entry2, REASON_CLICK);
// THEN the entry is not removed
assertTrue(mCollection.getActiveNotifs().contains(entry2));
@@ -426,9 +613,9 @@ public class NotifCollectionTest extends SysuiTestCase {
mExtender2.callback.onEndLifetimeExtension(mExtender2, entry2);
// THEN each extender is re-queried
- verify(mExtender1).shouldExtendLifetime(entry2, REASON_UNKNOWN);
- verify(mExtender2).shouldExtendLifetime(entry2, REASON_UNKNOWN);
- verify(mExtender3).shouldExtendLifetime(entry2, REASON_UNKNOWN);
+ verify(mExtender1).shouldExtendLifetime(entry2, REASON_APP_CANCEL);
+ verify(mExtender2).shouldExtendLifetime(entry2, REASON_APP_CANCEL);
+ verify(mExtender3).shouldExtendLifetime(entry2, REASON_APP_CANCEL);
// THEN the entry is not removed
assertTrue(mCollection.getActiveNotifs().contains(entry2));
@@ -464,9 +651,9 @@ public class NotifCollectionTest extends SysuiTestCase {
assertTrue(mCollection.getActiveNotifs().contains(entry2));
// THEN we don't re-query the extenders
- verify(mExtender1, never()).shouldExtendLifetime(eq(entry2), anyInt());
- verify(mExtender2, never()).shouldExtendLifetime(eq(entry2), anyInt());
- verify(mExtender3, never()).shouldExtendLifetime(eq(entry2), anyInt());
+ verify(mExtender1, never()).shouldExtendLifetime(entry2, REASON_APP_CANCEL);
+ verify(mExtender2, never()).shouldExtendLifetime(entry2, REASON_APP_CANCEL);
+ verify(mExtender3, never()).shouldExtendLifetime(entry2, REASON_APP_CANCEL);
// THEN the entry properly records all extenders that returned true
assertEquals(Arrays.asList(mExtender1), entry2.mLifetimeExtenders);
@@ -499,7 +686,7 @@ public class NotifCollectionTest extends SysuiTestCase {
// THEN the entry removed
assertFalse(mCollection.getActiveNotifs().contains(entry2));
- verify(mCollectionListener).onEntryRemoved(entry2, REASON_UNKNOWN, false);
+ verify(mCollectionListener).onEntryRemoved(entry2, REASON_UNKNOWN);
}
@Test
@@ -589,6 +776,36 @@ public class NotifCollectionTest extends SysuiTestCase {
assertEquals(notif2a.ranking, entry2.getRanking());
}
+ @Test
+ public void testCancellationReasonIsSetWhenNotifIsCancelled() {
+ // GIVEN a notification
+ NotifEvent notif0 = mNoMan.postNotif(buildNotif(TEST_PACKAGE, 3));
+ NotificationEntry entry0 = mCollectionListener.getEntry(notif0.key);
+
+ // WHEN the notification is retracted
+ mNoMan.retractNotif(notif0.sbn, REASON_APP_CANCEL);
+
+ // THEN the retraction reason is stored on the notif
+ assertEquals(REASON_APP_CANCEL, entry0.mCancellationReason);
+ }
+
+ @Test
+ public void testCancellationReasonIsClearedWhenNotifIsUpdated() {
+ // GIVEN a notification and a lifetime extender that will preserve it
+ NotifEvent notif0 = mNoMan.postNotif(buildNotif(TEST_PACKAGE, 3));
+ NotificationEntry entry0 = mCollectionListener.getEntry(notif0.key);
+ mCollection.addNotificationLifetimeExtender(mExtender1);
+ mExtender1.shouldExtendLifetime = true;
+
+ // WHEN the notification is retracted and subsequently reposted
+ mNoMan.retractNotif(notif0.sbn, REASON_APP_CANCEL);
+ assertEquals(REASON_APP_CANCEL, entry0.mCancellationReason);
+ mNoMan.postNotif(buildNotif(TEST_PACKAGE, 3));
+
+ // THEN the notification has its cancellation reason cleared
+ assertEquals(REASON_NOT_CANCELED, entry0.mCancellationReason);
+ }
+
private static NotificationEntryBuilder buildNotif(String pkg, int id, String tag) {
return new NotificationEntryBuilder()
.setPkg(pkg)
@@ -602,10 +819,21 @@ public class NotifCollectionTest extends SysuiTestCase {
.setId(id);
}
+ private static DismissedByUserStats defaultStats(NotificationEntry entry) {
+ return new DismissedByUserStats(
+ DISMISSAL_SHADE,
+ DISMISS_SENTIMENT_NEUTRAL,
+ NotificationVisibility.obtain(entry.getKey(), 7, 2, true));
+ }
+
private static class RecordingCollectionListener implements NotifCollectionListener {
private final Map<String, NotificationEntry> mLastSeenEntries = new ArrayMap<>();
@Override
+ public void onEntryInit(NotificationEntry entry) {
+ }
+
+ @Override
public void onEntryAdded(NotificationEntry entry) {
mLastSeenEntries.put(entry.getKey(), entry);
}
@@ -615,7 +843,11 @@ public class NotifCollectionTest extends SysuiTestCase {
}
@Override
- public void onEntryRemoved(NotificationEntry entry, int reason, boolean removedByUser) {
+ public void onEntryRemoved(NotificationEntry entry, int reason) {
+ }
+
+ @Override
+ public void onEntryCleanUp(NotificationEntry entry) {
}
public NotificationEntry getEntry(String key) {
@@ -664,4 +896,6 @@ public class NotifCollectionTest extends SysuiTestCase {
private static final String TEST_PACKAGE = "com.android.test.collection";
private static final String TEST_PACKAGE2 = "com.android.test.collection2";
+
+ private static final String GROUP_1 = "group_1";
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManagerTest.kt
index 7ab4846ea066..c6b496dd8215 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManagerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/NotificationRankingManagerTest.kt
@@ -27,10 +27,10 @@ import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.statusbar.NotificationEntryHelper.modifyRanking
import com.android.systemui.statusbar.NotificationMediaManager
+import com.android.systemui.statusbar.notification.NotificationEntryManagerLogger
import com.android.systemui.statusbar.notification.NotificationFilter
import com.android.systemui.statusbar.notification.NotificationSectionsFeatureManager
import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider
-import com.android.systemui.statusbar.notification.logging.NotifLog
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier
import com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_ALERTING
import com.android.systemui.statusbar.notification.stack.NotificationSectionsManager.BUCKET_SILENT
@@ -62,7 +62,7 @@ class NotificationRankingManagerTest : SysuiTestCase() {
mock(NotificationGroupManager::class.java),
mock(HeadsUpManager::class.java),
mock(NotificationFilter::class.java),
- mock(NotifLog::class.java),
+ mock(NotificationEntryManagerLogger::class.java),
mock(NotificationSectionsFeatureManager::class.java),
personNotificationIdentifier,
HighPriorityProvider(personNotificationIdentifier)
@@ -189,7 +189,7 @@ class NotificationRankingManagerTest : SysuiTestCase() {
groupManager: NotificationGroupManager,
headsUpManager: HeadsUpManager,
filter: NotificationFilter,
- notifLog: NotifLog,
+ logger: NotificationEntryManagerLogger,
sectionsFeatureManager: NotificationSectionsFeatureManager,
peopleNotificationIdentifier: PeopleNotificationIdentifier,
highPriorityProvider: HighPriorityProvider
@@ -198,7 +198,7 @@ class NotificationRankingManagerTest : SysuiTestCase() {
groupManager,
headsUpManager,
filter,
- notifLog,
+ logger,
sectionsFeatureManager,
peopleNotificationIdentifier,
highPriorityProvider
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java
index 3d79ce15bfb6..d8cf6ed9a47b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowTest.java
@@ -21,7 +21,6 @@ import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
import static com.android.systemui.statusbar.NotificationEntryHelper.modifyRanking;
import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_ALL;
import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_HEADS_UP;
-import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_PUBLIC;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -51,7 +50,6 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.AboveShelfChangedListener;
import com.android.systemui.statusbar.notification.stack.NotificationChildrenContainer;
@@ -147,15 +145,6 @@ public class ExpandableNotificationRowTest extends SysuiTestCase {
}
@Test
- public void setNeedsRedactionSetsInflationFlag() throws Exception {
- ExpandableNotificationRow row = mNotificationTestHelper.createRow();
-
- row.setNeedsRedaction(true);
-
- assertTrue(row.isInflationFlagSet(FLAG_CONTENT_VIEW_PUBLIC));
- }
-
- @Test
public void setNeedsRedactionFreesViewWhenFalse() throws Exception {
ExpandableNotificationRow row = mNotificationTestHelper.createRow(FLAG_CONTENT_VIEW_ALL);
row.setNeedsRedaction(true);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineTest.java
new file mode 100644
index 000000000000..8f9f65d12762
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineTest.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper;
+
+import androidx.annotation.NonNull;
+import androidx.core.os.CancellationSignal;
+import androidx.test.filters.SmallTest;
+
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.statusbar.notification.NotificationEntryListener;
+import com.android.systemui.statusbar.notification.NotificationEntryManager;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.row.NotifBindPipeline.BindCallback;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@SmallTest
+@RunWith(AndroidTestingRunner.class)
+@TestableLooper.RunWithLooper
+public class NotifBindPipelineTest extends SysuiTestCase {
+
+ private NotifBindPipeline mBindPipeline;
+ private TestBindStage mStage = new TestBindStage();
+
+ @Mock private NotificationEntry mEntry;
+ @Mock private ExpandableNotificationRow mRow;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ NotificationEntryManager entryManager = mock(NotificationEntryManager.class);
+
+ mBindPipeline = new NotifBindPipeline(entryManager);
+ mBindPipeline.setStage(mStage);
+
+ ArgumentCaptor<NotificationEntryListener> entryListenerCaptor =
+ ArgumentCaptor.forClass(NotificationEntryListener.class);
+ verify(entryManager).addNotificationEntryListener(entryListenerCaptor.capture());
+ NotificationEntryListener entryListener = entryListenerCaptor.getValue();
+
+ entryListener.onPendingEntryAdded(mEntry);
+ }
+
+ @Test
+ public void testCallbackCalled() {
+ // GIVEN a bound row
+ mBindPipeline.manageRow(mEntry, mRow);
+
+ // WHEN content is invalidated
+ BindCallback callback = mock(BindCallback.class);
+ mStage.requestRebind(mEntry, callback);
+
+ // WHEN stage finishes its work
+ mStage.doWorkSynchronously();
+
+ // THEN the callback is called when bind finishes
+ verify(callback).onBindFinished(mEntry);
+ }
+
+ @Test
+ public void testCallbackCancelled() {
+ // GIVEN a bound row
+ mBindPipeline.manageRow(mEntry, mRow);
+
+ // GIVEN an in-progress pipeline run
+ BindCallback callback = mock(BindCallback.class);
+ CancellationSignal signal = mStage.requestRebind(mEntry, callback);
+
+ // WHEN the callback is cancelled.
+ signal.cancel();
+
+ // WHEN the stage finishes all its work
+ mStage.doWorkSynchronously();
+
+ // THEN the callback is not called when bind finishes
+ verify(callback, never()).onBindFinished(mEntry);
+ }
+
+ @Test
+ public void testMultipleCallbacks() {
+ // GIVEN a bound row
+ mBindPipeline.manageRow(mEntry, mRow);
+
+ // WHEN the pipeline is invalidated.
+ BindCallback callback = mock(BindCallback.class);
+ mStage.requestRebind(mEntry, callback);
+
+ // WHEN the pipeline is invalidated again before the work completes.
+ BindCallback callback2 = mock(BindCallback.class);
+ mStage.requestRebind(mEntry, callback2);
+
+ // WHEN the stage finishes all work.
+ mStage.doWorkSynchronously();
+
+ // THEN both callbacks are called when the bind finishes
+ verify(callback).onBindFinished(mEntry);
+ verify(callback2).onBindFinished(mEntry);
+ }
+
+ /**
+ * Bind stage for testing where asynchronous work can be synchronously controlled.
+ */
+ private static class TestBindStage extends BindStage {
+ private List<Runnable> mExecutionRequests = new ArrayList<>();
+
+ @Override
+ protected void executeStage(@NonNull NotificationEntry entry,
+ @NonNull ExpandableNotificationRow row, @NonNull StageCallback callback) {
+ mExecutionRequests.add(() -> callback.onStageFinished(entry));
+ }
+
+ @Override
+ protected void abortStage(@NonNull NotificationEntry entry,
+ @NonNull ExpandableNotificationRow row) {
+
+ }
+
+ @Override
+ protected Object newStageParams() {
+ return null;
+ }
+
+ public void doWorkSynchronously() {
+ for (Runnable work: mExecutionRequests) {
+ work.run();
+ }
+ }
+ }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotifRemoteViewCacheImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotifRemoteViewCacheImplTest.java
index d7214f3b9228..20cc01accbc3 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotifRemoteViewCacheImplTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotifRemoteViewCacheImplTest.java
@@ -32,10 +32,10 @@ import android.widget.RemoteViews;
import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
-import com.android.systemui.statusbar.notification.NotificationEntryListener;
-import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
+import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection;
+import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
import org.junit.Before;
import org.junit.Test;
@@ -50,7 +50,7 @@ public class NotifRemoteViewCacheImplTest extends SysuiTestCase {
private NotifRemoteViewCacheImpl mNotifRemoteViewCache;
private NotificationEntry mEntry;
- private NotificationEntryListener mEntryListener;
+ private NotifCollectionListener mEntryListener;
@Mock private RemoteViews mRemoteViews;
@Before
@@ -58,19 +58,17 @@ public class NotifRemoteViewCacheImplTest extends SysuiTestCase {
MockitoAnnotations.initMocks(this);
mEntry = new NotificationEntryBuilder().build();
- NotificationEntryManager entryManager = mock(NotificationEntryManager.class);
- mNotifRemoteViewCache = new NotifRemoteViewCacheImpl(entryManager);
- ArgumentCaptor<NotificationEntryListener> entryListenerCaptor =
- ArgumentCaptor.forClass(NotificationEntryListener.class);
- verify(entryManager).addNotificationEntryListener(entryListenerCaptor.capture());
+ CommonNotifCollection collection = mock(CommonNotifCollection.class);
+ mNotifRemoteViewCache = new NotifRemoteViewCacheImpl(collection);
+ ArgumentCaptor<NotifCollectionListener> entryListenerCaptor =
+ ArgumentCaptor.forClass(NotifCollectionListener.class);
+ verify(collection).addCollectionListener(entryListenerCaptor.capture());
mEntryListener = entryListenerCaptor.getValue();
+ mEntryListener.onEntryInit(mEntry);
}
@Test
public void testPutCachedView() {
- // GIVEN an initialized cache for an entry.
- mEntryListener.onPendingEntryAdded(mEntry);
-
// WHEN a notification's cached remote views is put in.
mNotifRemoteViewCache.putCachedView(mEntry, FLAG_CONTENT_VIEW_CONTRACTED, mRemoteViews);
@@ -85,7 +83,6 @@ public class NotifRemoteViewCacheImplTest extends SysuiTestCase {
@Test
public void testRemoveCachedView() {
// GIVEN a cache with a cached view.
- mEntryListener.onPendingEntryAdded(mEntry);
mNotifRemoteViewCache.putCachedView(mEntry, FLAG_CONTENT_VIEW_CONTRACTED, mRemoteViews);
// WHEN we remove the cached view.
@@ -98,7 +95,6 @@ public class NotifRemoteViewCacheImplTest extends SysuiTestCase {
@Test
public void testClearCache() {
// GIVEN a non-empty cache.
- mEntryListener.onPendingEntryAdded(mEntry);
mNotifRemoteViewCache.putCachedView(mEntry, FLAG_CONTENT_VIEW_CONTRACTED, mRemoteViews);
mNotifRemoteViewCache.putCachedView(mEntry, FLAG_CONTENT_VIEW_EXPANDED, mRemoteViews);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationBlockingHelperManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationBlockingHelperManagerTest.java
index 444a6e5b4b13..1dfe7bc33373 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationBlockingHelperManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationBlockingHelperManagerTest.java
@@ -46,7 +46,6 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.util.Assert;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java
index cb9da6a40cb9..8a42e5fb4ea0 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationContentInflaterTest.java
@@ -49,9 +49,7 @@ import androidx.test.filters.SmallTest;
import androidx.test.filters.Suppress;
import com.android.systemui.SysuiTestCase;
-import com.android.systemui.statusbar.InflationTask;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.BindParams;
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationCallback;
@@ -200,8 +198,7 @@ public class NotificationContentInflaterTest extends SysuiTestCase {
}
@Override
- public void onAsyncInflationFinished(NotificationEntry entry,
- @InflationFlag int inflatedFlags) {
+ public void onAsyncInflationFinished(NotificationEntry entry) {
countDownLatch.countDown();
}
}, mRow.getPrivateLayout(), null, null, new HashMap<>(),
@@ -219,34 +216,6 @@ public class NotificationContentInflaterTest extends SysuiTestCase {
assertTrue(countDownLatch.await(500, TimeUnit.MILLISECONDS));
}
- /* Cancelling requires us to be on the UI thread otherwise we might have a race */
- @Test
- public void testSupersedesExistingTask() {
- mNotificationInflater.bindContent(
- mRow.getEntry(),
- mRow,
- FLAG_CONTENT_VIEW_ALL,
- new BindParams(),
- false /* forceInflate */,
- null /* callback */);
-
- // Trigger inflation of contracted only.
- mNotificationInflater.bindContent(
- mRow.getEntry(),
- mRow,
- FLAG_CONTENT_VIEW_CONTRACTED,
- new BindParams(),
- false /* forceInflate */,
- null /* callback */);
-
- InflationTask runningTask = mRow.getEntry().getRunningTask();
- NotificationContentInflater.AsyncInflationTask asyncInflationTask =
- (NotificationContentInflater.AsyncInflationTask) runningTask;
- assertEquals("Successive inflations don't inherit the previous flags!",
- FLAG_CONTENT_VIEW_ALL, asyncInflationTask.getReInflateFlags());
- runningTask.abort();
- }
-
@Test
public void doesntReapplyDisallowedRemoteView() throws Exception {
mBuilder.setStyle(new Notification.MediaStyle());
@@ -349,8 +318,7 @@ public class NotificationContentInflaterTest extends SysuiTestCase {
}
@Override
- public void onAsyncInflationFinished(NotificationEntry entry,
- @InflationFlag int inflatedFlags) {
+ public void onAsyncInflationFinished(NotificationEntry entry) {
if (expectingException) {
exceptionHolder.setException(new RuntimeException(
"Inflation finished even though there should be an error"));
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java
index 20a089f97f51..f080d67bfffb 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java
@@ -655,13 +655,13 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
ArgumentCaptor.forClass(NotificationChannel.class);
verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
anyString(), anyInt(), captor.capture());
- assertTrue(captor.getValue().canBypassDnd());
+ assertTrue(captor.getValue().isImportantConversation());
}
@Test
public void testFavorite_unfavorite() throws Exception {
- mNotificationChannel.setBypassDnd(true);
- mConversationChannel.setBypassDnd(true);
+ mNotificationChannel.setImportantConversation(true);
+ mConversationChannel.setImportantConversation(true);
mNotificationInfo.bindNotification(
mShortcutManager,
@@ -688,7 +688,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase {
ArgumentCaptor.forClass(NotificationChannel.class);
verify(mMockINotificationManager, times(1)).updateNotificationChannelForPackage(
anyString(), anyInt(), captor.capture());
- assertFalse(captor.getValue().canBypassDnd());
+ assertFalse(captor.getValue().isImportantConversation());
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java
index 4e27770982e5..bbb6723135a6 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.java
@@ -66,7 +66,6 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationPresenter;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.NotificationActivityStarter;
import com.android.systemui.statusbar.notification.VisualStabilityManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java
index 457bbe23334b..3d9832de417a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationTestHelper.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,10 +11,10 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License
+ * limitations under the License.
*/
-package com.android.systemui.statusbar;
+package com.android.systemui.statusbar.notification.row;
import static android.app.Notification.FLAG_BUBBLE;
import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
@@ -24,6 +24,7 @@ import static com.android.systemui.statusbar.NotificationEntryHelper.modifyRanki
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
import android.annotation.Nullable;
import android.app.ActivityManager;
@@ -40,17 +41,20 @@ import android.text.TextUtils;
import android.view.LayoutInflater;
import android.widget.RemoteViews;
+import com.android.internal.statusbar.IStatusBarService;
import com.android.systemui.TestableDependency;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.bubbles.BubblesTestActivity;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
+import com.android.systemui.statusbar.NotificationMediaManager;
+import com.android.systemui.statusbar.NotificationRemoteInputManager;
+import com.android.systemui.statusbar.SmartReplyController;
+import com.android.systemui.statusbar.notification.NotificationEntryListener;
+import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
-import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow.ExpansionLogger;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow.OnExpandClickListener;
-import com.android.systemui.statusbar.notification.row.NotifRemoteViewCache;
-import com.android.systemui.statusbar.notification.row.NotificationContentInflater;
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
@@ -58,6 +62,8 @@ import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
import com.android.systemui.tests.R;
+import org.mockito.ArgumentCaptor;
+
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
@@ -82,6 +88,9 @@ public class NotificationTestHelper {
private final NotificationGroupManager mGroupManager;
private ExpandableNotificationRow mRow;
private HeadsUpManagerPhone mHeadsUpManager;
+ private final NotifBindPipeline mBindPipeline;
+ private final NotificationEntryListener mBindPipelineEntryListener;
+ private final RowContentBindStage mBindStage;
public NotificationTestHelper(Context context, TestableDependency dependency) {
mContext = context;
@@ -95,6 +104,23 @@ public class NotificationTestHelper {
mock(KeyguardBypassController.class));
mHeadsUpManager.setUp(null, mGroupManager, null, null);
mGroupManager.setHeadsUpManager(mHeadsUpManager);
+
+
+ NotificationContentInflater contentBinder = new NotificationContentInflater(
+ mock(NotifRemoteViewCache.class),
+ mock(NotificationRemoteInputManager.class));
+ contentBinder.setInflateSynchronously(true);
+ mBindStage = new RowContentBindStage(contentBinder, mock(IStatusBarService.class));
+
+ NotificationEntryManager entryManager = mock(NotificationEntryManager.class);
+
+ mBindPipeline = new NotifBindPipeline(entryManager);
+ mBindPipeline.setStage(mBindStage);
+
+ ArgumentCaptor<NotificationEntryListener> entryListenerCaptor =
+ ArgumentCaptor.forClass(NotificationEntryListener.class);
+ verify(entryManager).addNotificationEntryListener(entryListenerCaptor.capture());
+ mBindPipelineEntryListener = entryListenerCaptor.getValue();
}
/**
@@ -331,10 +357,8 @@ public class NotificationTestHelper {
entry.createIcons(mContext, entry.getSbn());
row.setEntry(entry);
- NotificationContentInflater contentBinder = new NotificationContentInflater(
- mock(NotifRemoteViewCache.class),
- mock(NotificationRemoteInputManager.class));
- contentBinder.setInflateSynchronously(true);
+ mBindPipelineEntryListener.onPendingEntryAdded(entry);
+ mBindPipeline.manageRow(entry, row);
row.initialize(
APP_NAME,
@@ -343,12 +367,11 @@ public class NotificationTestHelper {
mock(KeyguardBypassController.class),
mGroupManager,
mHeadsUpManager,
- contentBinder,
+ mBindStage,
mock(OnExpandClickListener.class));
row.setAboveShelfChangedListener(aboveShelf -> { });
-
- row.setInflationFlags(extraInflationFlags);
- inflateAndWait(row);
+ mBindStage.getStageParams(entry).requireContentViews(extraInflationFlags);
+ inflateAndWait(entry, mBindStage);
// This would be done as part of onAsyncInflationFinished, but we skip large amounts of
// the callback chain, so we need to make up for not adding it to the group manager
@@ -357,24 +380,10 @@ public class NotificationTestHelper {
return row;
}
- private static void inflateAndWait(ExpandableNotificationRow row) throws Exception {
+ private static void inflateAndWait(NotificationEntry entry, RowContentBindStage stage)
+ throws Exception {
CountDownLatch countDownLatch = new CountDownLatch(1);
- NotificationContentInflater.InflationCallback callback =
- new NotificationContentInflater.InflationCallback() {
- @Override
- public void handleInflationException(NotificationEntry entry,
- Exception e) {
- countDownLatch.countDown();
- }
-
- @Override
- public void onAsyncInflationFinished(NotificationEntry entry,
- int inflatedFlags) {
- countDownLatch.countDown();
- }
- };
- row.setInflationCallback(callback);
- row.inflateViews();
+ stage.requestRebind(entry, en -> countDownLatch.countDown());
assertTrue(countDownLatch.await(500, TimeUnit.MILLISECONDS));
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/RowContentBindStageTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/RowContentBindStageTest.java
new file mode 100644
index 000000000000..775f722b13f9
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/RowContentBindStageTest.java
@@ -0,0 +1,269 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.statusbar.notification.row;
+
+import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_ALL;
+import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_CONTRACTED;
+import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_EXPANDED;
+import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_HEADS_UP;
+
+import static junit.framework.Assert.assertTrue;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper;
+
+import androidx.test.filters.SmallTest;
+
+import com.android.internal.statusbar.IStatusBarService;
+import com.android.systemui.SysuiTestCase;
+import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.BindParams;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+@SmallTest
+@RunWith(AndroidTestingRunner.class)
+@TestableLooper.RunWithLooper
+public class RowContentBindStageTest extends SysuiTestCase {
+
+ private RowContentBindStage mRowContentBindStage;
+
+ @Mock private NotificationRowContentBinder mBinder;
+ @Mock private NotificationEntry mEntry;
+ @Mock private ExpandableNotificationRow mRow;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mRowContentBindStage = new RowContentBindStage(mBinder,
+ mock(IStatusBarService.class));
+ mRowContentBindStage.createStageParams(mEntry);
+ }
+
+ @Test
+ public void testRequireContentViews() {
+ // WHEN inflation flags are set and pipeline is invalidated.
+ final int flags = FLAG_CONTENT_VIEW_CONTRACTED | FLAG_CONTENT_VIEW_EXPANDED;
+ RowContentBindParams params = mRowContentBindStage.getStageParams(mEntry);
+ params.requireContentViews(flags);
+ mRowContentBindStage.executeStage(mEntry, mRow, (en) -> { });
+
+ // THEN binder binds inflation flags.
+ verify(mBinder).bindContent(
+ eq(mEntry),
+ any(),
+ eq(flags),
+ any(),
+ anyBoolean(),
+ any());
+ }
+
+ @Test
+ public void testFreeContentViews() {
+ // GIVEN a view with all content bound.
+ RowContentBindParams params = mRowContentBindStage.getStageParams(mEntry);
+ params.requireContentViews(FLAG_CONTENT_VIEW_ALL);
+
+ // WHEN inflation flags are cleared and stage executed.
+ final int flags = FLAG_CONTENT_VIEW_CONTRACTED | FLAG_CONTENT_VIEW_EXPANDED;
+ params.freeContentViews(flags);
+ mRowContentBindStage.executeStage(mEntry, mRow, (en) -> { });
+
+ // THEN binder unbinds flags.
+ verify(mBinder).unbindContent(eq(mEntry), any(), eq(flags));
+ }
+
+ @Test
+ public void testRebindAllContentViews() {
+ // GIVEN a view with content bound.
+ RowContentBindParams params = mRowContentBindStage.getStageParams(mEntry);
+ final int flags = FLAG_CONTENT_VIEW_CONTRACTED | FLAG_CONTENT_VIEW_EXPANDED;
+ params.requireContentViews(flags);
+ params.clearDirtyContentViews();
+
+ // WHEN we request rebind and stage executed.
+ params.rebindAllContentViews();
+ mRowContentBindStage.executeStage(mEntry, mRow, (en) -> { });
+
+ // THEN binder binds inflation flags.
+ verify(mBinder).bindContent(
+ eq(mEntry),
+ any(),
+ eq(flags),
+ any(),
+ anyBoolean(),
+ any());
+ }
+
+ @Test
+ public void testSetUseLowPriority() {
+ // GIVEN a view with all content bound.
+ RowContentBindParams params = mRowContentBindStage.getStageParams(mEntry);
+ params.requireContentViews(FLAG_CONTENT_VIEW_ALL);
+ params.clearDirtyContentViews();
+
+ // WHEN low priority is set and stage executed.
+ params.setUseLowPriority(true);
+ mRowContentBindStage.executeStage(mEntry, mRow, (en) -> { });
+
+ // THEN binder is called with use low priority and contracted/expanded are called to bind.
+ ArgumentCaptor<BindParams> bindParamsCaptor = ArgumentCaptor.forClass(BindParams.class);
+ verify(mBinder).bindContent(
+ eq(mEntry),
+ any(),
+ eq(FLAG_CONTENT_VIEW_CONTRACTED | FLAG_CONTENT_VIEW_EXPANDED),
+ bindParamsCaptor.capture(),
+ anyBoolean(),
+ any());
+ BindParams usedParams = bindParamsCaptor.getValue();
+ assertTrue(usedParams.isLowPriority);
+ }
+
+ @Test
+ public void testSetUseGroupInChild() {
+ // GIVEN a view with all content bound.
+ RowContentBindParams params = mRowContentBindStage.getStageParams(mEntry);
+ params.requireContentViews(FLAG_CONTENT_VIEW_ALL);
+ params.clearDirtyContentViews();
+
+ // WHEN use group is set and stage executed.
+ params.setUseChildInGroup(true);
+ mRowContentBindStage.executeStage(mEntry, mRow, (en) -> { });
+
+ // THEN binder is called with use group view and contracted/expanded are called to bind.
+ ArgumentCaptor<BindParams> bindParamsCaptor = ArgumentCaptor.forClass(BindParams.class);
+ verify(mBinder).bindContent(
+ eq(mEntry),
+ any(),
+ eq(FLAG_CONTENT_VIEW_CONTRACTED | FLAG_CONTENT_VIEW_EXPANDED),
+ bindParamsCaptor.capture(),
+ anyBoolean(),
+ any());
+ BindParams usedParams = bindParamsCaptor.getValue();
+ assertTrue(usedParams.isChildInGroup);
+ }
+
+ @Test
+ public void testSetUseIncreasedHeight() {
+ // GIVEN a view with all content bound.
+ RowContentBindParams params = mRowContentBindStage.getStageParams(mEntry);
+ params.requireContentViews(FLAG_CONTENT_VIEW_ALL);
+ params.clearDirtyContentViews();
+
+ // WHEN use increased height is set and stage executed.
+ params.setUseIncreasedCollapsedHeight(true);
+ mRowContentBindStage.executeStage(mEntry, mRow, (en) -> { });
+
+ // THEN binder is called with group view and contracted is bound.
+ ArgumentCaptor<BindParams> bindParamsCaptor = ArgumentCaptor.forClass(BindParams.class);
+ verify(mBinder).bindContent(
+ eq(mEntry),
+ any(),
+ eq(FLAG_CONTENT_VIEW_CONTRACTED),
+ bindParamsCaptor.capture(),
+ anyBoolean(),
+ any());
+ BindParams usedParams = bindParamsCaptor.getValue();
+ assertTrue(usedParams.usesIncreasedHeight);
+ }
+
+ @Test
+ public void testSetUseIncreasedHeadsUpHeight() {
+ // GIVEN a view with all content bound.
+ RowContentBindParams params = mRowContentBindStage.getStageParams(mEntry);
+ params.requireContentViews(FLAG_CONTENT_VIEW_ALL);
+ params.clearDirtyContentViews();
+
+ // WHEN use increased heads up height is set and stage executed.
+ params.setUseIncreasedHeadsUpHeight(true);
+ mRowContentBindStage.executeStage(mEntry, mRow, (en) -> { });
+
+ // THEN binder is called with use group view and heads up is bound.
+ ArgumentCaptor<BindParams> bindParamsCaptor = ArgumentCaptor.forClass(BindParams.class);
+ verify(mBinder).bindContent(
+ eq(mEntry),
+ any(),
+ eq(FLAG_CONTENT_VIEW_HEADS_UP),
+ bindParamsCaptor.capture(),
+ anyBoolean(),
+ any());
+ BindParams usedParams = bindParamsCaptor.getValue();
+ assertTrue(usedParams.usesIncreasedHeadsUpHeight);
+ }
+
+ @Test
+ public void testSetNeedsReinflation() {
+ // GIVEN a view with all content bound.
+ RowContentBindParams params = mRowContentBindStage.getStageParams(mEntry);
+ params.requireContentViews(FLAG_CONTENT_VIEW_ALL);
+ params.clearDirtyContentViews();
+
+ // WHEN needs reinflation is set.
+ params.setNeedsReinflation(true);
+ mRowContentBindStage.executeStage(mEntry, mRow, (en) -> { });
+
+ // THEN binder is called with forceInflate and all views are requested to bind.
+ verify(mBinder).bindContent(
+ eq(mEntry),
+ any(),
+ eq(FLAG_CONTENT_VIEW_ALL),
+ any(),
+ eq(true),
+ any());
+ }
+
+ @Test
+ public void testSupersedesPreviousContentViews() {
+ // GIVEN a view with content view bind already in progress.
+ RowContentBindParams params = mRowContentBindStage.getStageParams(mEntry);
+ int defaultFlags = FLAG_CONTENT_VIEW_CONTRACTED | FLAG_CONTENT_VIEW_EXPANDED;
+ params.requireContentViews(defaultFlags);
+ mRowContentBindStage.executeStage(mEntry, mRow, (en) -> { });
+
+ // WHEN we bind with another content view before the first finishes.
+ params.requireContentViews(FLAG_CONTENT_VIEW_HEADS_UP);
+ mRowContentBindStage.executeStage(mEntry, mRow, (en) -> { });
+
+ // THEN binder is called with BOTH content views.
+ verify(mBinder).bindContent(
+ eq(mEntry),
+ any(),
+ eq(defaultFlags),
+ any(),
+ anyBoolean(),
+ any());
+ verify(mBinder).bindContent(
+ eq(mEntry),
+ any(),
+ eq(defaultFlags | FLAG_CONTENT_VIEW_HEADS_UP),
+ any(),
+ anyBoolean(),
+ any());
+ }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationCustomViewWrapperTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationCustomViewWrapperTest.java
index d280f185edd3..0790cb7ca6c4 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationCustomViewWrapperTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationCustomViewWrapperTest.java
@@ -25,8 +25,8 @@ import android.widget.RemoteViews;
import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.tests.R;
import org.junit.Assert;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationMediaTemplateViewWrapperTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationMediaTemplateViewWrapperTest.java
index 4f45f680f475..038eff7fa5dc 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationMediaTemplateViewWrapperTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationMediaTemplateViewWrapperTest.java
@@ -38,8 +38,8 @@ import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import org.junit.Before;
import org.junit.Test;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationViewWrapperTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationViewWrapperTest.java
index 14e2fded6cdc..9567f3386dda 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationViewWrapperTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationViewWrapperTest.java
@@ -29,8 +29,8 @@ import android.widget.TextView;
import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.util.Assert;
import org.junit.Before;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainerTest.java
index ddd2884ec311..1773175450ff 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationChildrenContainerTest.java
@@ -25,8 +25,8 @@ import android.view.View;
import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import org.junit.Assert;
import org.junit.Before;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManagerTest.java
index 34a309f1d80c..e84f14a6a2c1 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationRoundnessManagerTest.java
@@ -31,11 +31,11 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.NotificationSectionsFeatureManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.ExpandableView;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
import com.android.systemui.util.DeviceConfigProxy;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
index 7602e45c1672..b16e52ce7bd4 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java
@@ -54,6 +54,7 @@ import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
import com.android.systemui.statusbar.EmptyShadeView;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
+import com.android.systemui.statusbar.NotificationLockscreenUserManager.UserChangedListener;
import com.android.systemui.statusbar.NotificationMediaManager;
import com.android.systemui.statusbar.NotificationPresenter;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
@@ -62,7 +63,9 @@ import com.android.systemui.statusbar.RemoteInputController;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
+import com.android.systemui.statusbar.notification.ForegroundServiceDismissalFeatureController;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
+import com.android.systemui.statusbar.notification.NotificationEntryManagerLogger;
import com.android.systemui.statusbar.notification.NotificationFilter;
import com.android.systemui.statusbar.notification.NotificationSectionsFeatureManager;
import com.android.systemui.statusbar.notification.TestableNotificationEntryManager;
@@ -72,7 +75,6 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntryB
import com.android.systemui.statusbar.notification.collection.NotificationRankingManager;
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinder;
import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider;
-import com.android.systemui.statusbar.notification.logging.NotifLog;
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.FooterView;
@@ -130,6 +132,8 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
@Mock private ZenModeController mZenModeController;
@Mock private NotificationSectionsManager mNotificationSectionsManager;
@Mock private NotificationSection mNotificationSection;
+ @Mock private NotificationLockscreenUserManager mLockscreenUserManager;
+ private UserChangedListener mUserChangedListener;
private TestableNotificationEntryManager mEntryManager;
private int mOriginalInterruptionModelSetting;
@@ -156,15 +160,17 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
mDependency.injectMockDependency(ShadeController.class);
when(mRemoteInputManager.getController()).thenReturn(mRemoteInputController);
+ ArgumentCaptor<UserChangedListener> userChangedCaptor = ArgumentCaptor
+ .forClass(UserChangedListener.class);
mEntryManager = new TestableNotificationEntryManager(
- mock(NotifLog.class),
+ mock(NotificationEntryManagerLogger.class),
mock(NotificationGroupManager.class),
new NotificationRankingManager(
() -> mock(NotificationMediaManager.class),
mGroupManager,
mHeadsUpManager,
mock(NotificationFilter.class),
- mock(NotifLog.class),
+ mock(NotificationEntryManagerLogger.class),
mock(NotificationSectionsFeatureManager.class),
mock(PeopleNotificationIdentifier.class),
mock(HighPriorityProvider.class)
@@ -173,7 +179,9 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
mock(FeatureFlags.class),
() -> mock(NotificationRowBinder.class),
() -> mRemoteInputManager,
- mock(LeakDetector.class));
+ mock(LeakDetector.class),
+ mock(ForegroundServiceDismissalFeatureController.class)
+ );
mDependency.injectTestDependency(NotificationEntryManager.class, mEntryManager);
mEntryManager.setUpForTest(mock(NotificationPresenter.class), null, mHeadsUpManager);
@@ -195,10 +203,15 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
mHeadsUpManager,
mKeyguardBypassController,
new FalsingManagerFake(),
- mock(NotificationLockscreenUserManager.class),
+ mLockscreenUserManager,
mock(NotificationGutsManager.class),
mZenModeController,
- mNotificationSectionsManager);
+ mNotificationSectionsManager,
+ mock(ForegroundServiceSectionController.class),
+ mock(ForegroundServiceDismissalFeatureController.class)
+ );
+ verify(mLockscreenUserManager).addUserChangedListener(userChangedCaptor.capture());
+ mUserChangedListener = userChangedCaptor.getValue();
mStackScroller = spy(mStackScrollerInternal);
mStackScroller.setShelf(notificationShelf);
mStackScroller.setStatusBar(mBar);
@@ -279,6 +292,12 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
}
@Test
+ public void testOnStatePostChange_verifyIfProfileIsPublic() {
+ mUserChangedListener.onUserChanged(0);
+ verify(mLockscreenUserManager).isAnyProfilePublicMode();
+ }
+
+ @Test
public void manageNotifications_visible() {
FooterView view = mock(FooterView.class);
mStackScroller.setFooterView(view);
@@ -381,8 +400,11 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase {
mStackScroller.onUpdateRowStates();
+ // Expecting the footer to be the last child
+ int expected = mStackScroller.getChildCount() - 1;
+
// move footer to end
- verify(mStackScroller).changeViewPosition(any(FooterView.class), eq(-1 /* end */));
+ verify(mStackScroller).changeViewPosition(any(FooterView.class), eq(expected));
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java
index 7448dbd0d116..f71d0fc4b43e 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/HeadsUpAppearanceControllerTest.java
@@ -35,9 +35,9 @@ import com.android.systemui.plugins.DarkIconDispatcher;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.HeadsUpStatusBarView;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.policy.KeyguardStateController;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java
index 5b54fba5b3b5..e171a2894d2c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupAlertTransferHelperTest.java
@@ -16,8 +16,12 @@
package com.android.systemui.statusbar.phone;
+import static com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.FLAG_CONTENT_VIEW_HEADS_UP;
+
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
@@ -38,6 +42,9 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.notification.NotificationEntryListener;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
+import com.android.systemui.statusbar.notification.row.NotifBindPipeline.BindCallback;
+import com.android.systemui.statusbar.notification.row.RowContentBindParams;
+import com.android.systemui.statusbar.notification.row.RowContentBindStage;
import com.android.systemui.statusbar.policy.HeadsUpManager;
import org.junit.Before;
@@ -47,6 +54,7 @@ import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
@@ -62,8 +70,8 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
private NotificationGroupManager mGroupManager;
private HeadsUpManager mHeadsUpManager;
@Mock private NotificationEntryManager mNotificationEntryManager;
- @Captor
- private ArgumentCaptor<NotificationEntryListener> mListenerCaptor;
+ @Mock private RowContentBindStage mBindStage;
+ @Captor private ArgumentCaptor<NotificationEntryListener> mListenerCaptor;
private NotificationEntryListener mNotificationEntryListener;
private final HashMap<String, NotificationEntry> mPendingEntries = new HashMap<>();
private final NotificationGroupTestHelper mGroupTestHelper =
@@ -72,6 +80,7 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
@Before
public void setup() {
+ MockitoAnnotations.initMocks(this);
mDependency.injectMockDependency(BubbleController.class);
mHeadsUpManager = new HeadsUpManager(mContext) {};
@@ -82,7 +91,9 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
mDependency.injectTestDependency(NotificationGroupManager.class, mGroupManager);
mGroupManager.setHeadsUpManager(mHeadsUpManager);
- mGroupAlertTransferHelper = new NotificationGroupAlertTransferHelper();
+ when(mBindStage.getStageParams(any())).thenReturn(new RowContentBindParams());
+
+ mGroupAlertTransferHelper = new NotificationGroupAlertTransferHelper(mBindStage);
mGroupAlertTransferHelper.setHeadsUpManager(mHeadsUpManager);
mGroupAlertTransferHelper.bind(mNotificationEntryManager, mGroupManager);
@@ -97,6 +108,10 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
mHeadsUpManager.showNotification(summaryEntry);
NotificationEntry childEntry = mGroupTestHelper.createChildNotification();
+ RowContentBindParams params = new RowContentBindParams();
+ params.requireContentViews(FLAG_CONTENT_VIEW_HEADS_UP);
+ when(mBindStage.getStageParams(eq(childEntry))).thenReturn(params);
+
// Summary will be suppressed because there is only one child.
mGroupManager.onEntryAdded(summaryEntry);
mGroupManager.onEntryAdded(childEntry);
@@ -160,8 +175,8 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
NotificationEntry summaryEntry = mGroupTestHelper.createSummaryNotification();
mHeadsUpManager.showNotification(summaryEntry);
NotificationEntry childEntry = mGroupTestHelper.createChildNotification();
- when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
- .thenReturn(false);
+ RowContentBindParams params = new RowContentBindParams();
+ when(mBindStage.getStageParams(eq(childEntry))).thenReturn(params);
mGroupManager.onEntryAdded(summaryEntry);
mGroupManager.onEntryAdded(childEntry);
@@ -178,15 +193,16 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
NotificationEntry summaryEntry = mGroupTestHelper.createSummaryNotification();
mHeadsUpManager.showNotification(summaryEntry);
NotificationEntry childEntry = mGroupTestHelper.createChildNotification();
- when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
- .thenReturn(false);
+ RowContentBindParams params = new RowContentBindParams();
+ when(mBindStage.getStageParams(eq(childEntry))).thenReturn(params);
mGroupManager.onEntryAdded(summaryEntry);
mGroupManager.onEntryAdded(childEntry);
- when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
- .thenReturn(true);
- mNotificationEntryListener.onEntryReinflated(childEntry);
+ // Child entry finishes its inflation.
+ ArgumentCaptor<BindCallback> callbackCaptor = ArgumentCaptor.forClass(BindCallback.class);
+ verify(mBindStage).requestRebind(eq(childEntry), callbackCaptor.capture());
+ callbackCaptor.getValue().onBindFinished(childEntry);
// Alert is immediately removed from summary, and we show child as its content is inflated.
assertFalse(mHeadsUpManager.isAlerting(summaryEntry.getKey()));
@@ -199,8 +215,9 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
mGroupTestHelper.createSummaryNotification(Notification.GROUP_ALERT_SUMMARY);
NotificationEntry childEntry =
mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY);
- when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
- .thenReturn(false);
+ RowContentBindParams params = new RowContentBindParams();
+ when(mBindStage.getStageParams(eq(childEntry))).thenReturn(params);
+
NotificationEntry childEntry2 =
mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY);
mHeadsUpManager.showNotification(summaryEntry);
@@ -214,9 +231,9 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
mGroupManager.onEntryAdded(childEntry2);
// Child entry finishes its inflation.
- when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
- .thenReturn(true);
- mNotificationEntryListener.onEntryReinflated(childEntry);
+ ArgumentCaptor<BindCallback> callbackCaptor = ArgumentCaptor.forClass(BindCallback.class);
+ verify(mBindStage).requestRebind(eq(childEntry), callbackCaptor.capture());
+ callbackCaptor.getValue().onBindFinished(childEntry);
verify(childEntry.getRow(), times(1)).freeContentViewWhenSafe(mHeadsUpManager
.getContentFlag());
@@ -229,8 +246,9 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
mGroupTestHelper.createSummaryNotification(Notification.GROUP_ALERT_SUMMARY);
NotificationEntry childEntry =
mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY);
- when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
- .thenReturn(false);
+ RowContentBindParams params = new RowContentBindParams();
+ when(mBindStage.getStageParams(eq(childEntry))).thenReturn(params);
+
mHeadsUpManager.showNotification(summaryEntry);
// Trigger a transfer of alert state from summary to child.
mGroupManager.onEntryAdded(summaryEntry);
@@ -247,8 +265,9 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
mGroupTestHelper.createSummaryNotification(Notification.GROUP_ALERT_SUMMARY);
NotificationEntry childEntry =
mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY);
- when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
- .thenReturn(false);
+ RowContentBindParams params = new RowContentBindParams();
+ when(mBindStage.getStageParams(eq(childEntry))).thenReturn(params);
+
mHeadsUpManager.showNotification(summaryEntry);
// Trigger a transfer of alert state from summary to child.
mGroupManager.onEntryAdded(summaryEntry);
@@ -270,8 +289,9 @@ public class NotificationGroupAlertTransferHelperTest extends SysuiTestCase {
mGroupTestHelper.createSummaryNotification(Notification.GROUP_ALERT_SUMMARY);
NotificationEntry childEntry =
mGroupTestHelper.createChildNotification(Notification.GROUP_ALERT_SUMMARY, 47);
- when(childEntry.getRow().isInflationFlagSet(mHeadsUpManager.getContentFlag()))
- .thenReturn(false);
+ RowContentBindParams params = new RowContentBindParams();
+ when(mBindStage.getStageParams(eq(childEntry))).thenReturn(params);
+
mHeadsUpManager.showNotification(summaryEntry);
// Trigger a transfer of alert state from summary to child.
mGroupManager.onEntryAdded(summaryEntry);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupTestHelper.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupTestHelper.java
index 54dc728e0c8b..d405fea78170 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupTestHelper.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationGroupTestHelper.java
@@ -16,7 +16,6 @@
package com.android.systemui.statusbar.phone;
-import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -87,7 +86,6 @@ public final class NotificationGroupTestHelper {
ExpandableNotificationRow row = mock(ExpandableNotificationRow.class);
entry.setRow(row);
when(row.getEntry()).thenReturn(entry);
- when(row.isInflationFlagSet(anyInt())).thenReturn(true);
return entry;
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java
index 1f37ad8b2b1c..5fb71599e2a0 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java
@@ -55,7 +55,6 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.doze.DozeLog;
import com.android.systemui.plugins.FalsingManager;
-import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.FlingAnimationUtils;
import com.android.systemui.statusbar.KeyguardAffordanceView;
@@ -133,8 +132,6 @@ public class NotificationPanelViewTest extends SysuiTestCase {
@Mock
private DynamicPrivacyController mDynamicPrivacyController;
@Mock
- private PluginManager mPluginManager;
- @Mock
private ShadeController mShadeController;
@Mock
private NotificationLockscreenUserManager mNotificationLockscreenUserManager;
@@ -218,7 +215,7 @@ public class NotificationPanelViewTest extends SysuiTestCase {
mNotificationPanelViewController = new NotificationPanelViewController(mView,
mInjectionInflationController,
coordinator, expansionHandler, mDynamicPrivacyController, mKeyguardBypassController,
- mFalsingManager, mPluginManager, mShadeController,
+ mFalsingManager, mShadeController,
mNotificationLockscreenUserManager, mNotificationEntryManager,
mKeyguardStateController, mStatusBarStateController, mDozeLog,
mDozeParameters, mCommandQueue, mVibratorHelper,
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 fea4b8bbbb04..50276106f8d4 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
@@ -61,7 +61,6 @@ import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationPresenter;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.RemoteInputController;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.notification.ActivityLaunchAnimator;
@@ -70,6 +69,7 @@ import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.concurrency.FakeExecutor;
import com.android.systemui.util.time.FakeSystemClock;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java
index dd896be0e120..b9d2d229cd69 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarNotificationPresenterTest.java
@@ -54,7 +54,6 @@ import com.android.systemui.statusbar.notification.NotificationInterruptionState
import com.android.systemui.statusbar.notification.VisualStabilityManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
-import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl;
import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.notification.stack.NotificationListContainer;
@@ -113,10 +112,9 @@ public class StatusBarNotificationPresenterTest extends SysuiTestCase {
notificationShadeWindowView, mock(NotificationListContainerViewGroup.class),
mock(DozeScrimController.class), mock(ScrimController.class),
mock(ActivityLaunchAnimator.class), mock(DynamicPrivacyController.class),
- mock(NotificationAlertingManager.class),
- mock(NotificationRowBinderImpl.class), mock(KeyguardStateController.class),
- mock(KeyguardIndicationController.class),
- mStatusBar, mock(ShadeControllerImpl.class), mCommandQueue, mInitController);
+ mock(NotificationAlertingManager.class), mock(KeyguardStateController.class),
+ mock(KeyguardIndicationController.class), mStatusBar,
+ mock(ShadeControllerImpl.class), mCommandQueue, mInitController);
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
index e90e398ba061..db17a6e106b4 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
@@ -95,7 +95,6 @@ import com.android.systemui.recents.ScreenPinningRequest;
import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
-import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.KeyguardIndicationController;
import com.android.systemui.statusbar.NavigationBarController;
import com.android.systemui.statusbar.NotificationListener;
@@ -120,8 +119,7 @@ import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator
import com.android.systemui.statusbar.notification.VisualStabilityManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
-import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl;
-import com.android.systemui.statusbar.notification.collection.init.NotifPipelineInitializer;
+import com.android.systemui.statusbar.notification.init.NotificationsController;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
@@ -133,10 +131,8 @@ import com.android.systemui.statusbar.policy.ExtensionController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
-import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
import com.android.systemui.statusbar.policy.UserSwitcherController;
-import com.android.systemui.statusbar.policy.ZenModeController;
import com.android.systemui.util.concurrency.FakeExecutor;
import com.android.systemui.util.time.FakeSystemClock;
import com.android.systemui.volume.VolumeComponent;
@@ -149,7 +145,6 @@ import org.mockito.MockitoAnnotations;
import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
-import java.util.ArrayList;
import java.util.Optional;
import javax.inject.Provider;
@@ -166,7 +161,7 @@ public class StatusBarTest extends SysuiTestCase {
private PowerManager mPowerManager;
private TestableNotificationInterruptionStateProvider mNotificationInterruptionStateProvider;
- @Mock private FeatureFlags mFeatureFlags;
+ @Mock private NotificationsController mNotificationsController;
@Mock private LightBarController mLightBarController;
@Mock private StatusBarIconController mStatusBarIconController;
@Mock private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
@@ -180,7 +175,6 @@ public class StatusBarTest extends SysuiTestCase {
@Mock private IDreamManager mDreamManager;
@Mock private ScrimController mScrimController;
@Mock private DozeScrimController mDozeScrimController;
- @Mock private ArrayList<NotificationEntry> mNotificationList;
@Mock private Lazy<BiometricUnlockController> mBiometricUnlockControllerLazy;
@Mock private BiometricUnlockController mBiometricUnlockController;
@Mock private NotificationInterruptionStateProvider.HeadsUpSuppressor mHeadsUpSuppressor;
@@ -190,7 +184,6 @@ public class StatusBarTest extends SysuiTestCase {
@Mock private NotificationLockscreenUserManager mLockscreenUserManager;
@Mock private NotificationRemoteInputManager mRemoteInputManager;
@Mock private RemoteInputController mRemoteInputController;
- @Mock private RemoteInputUriController mRemoteInputUriController;
@Mock private StatusBarStateControllerImpl mStatusBarStateController;
@Mock private BatteryController mBatteryController;
@Mock private DeviceProvisionedController mDeviceProvisionedController;
@@ -214,8 +207,6 @@ public class StatusBarTest extends SysuiTestCase {
@Mock private NotificationWakeUpCoordinator mNotificationWakeUpCoordinator;
@Mock private KeyguardBypassController mKeyguardBypassController;
@Mock private DynamicPrivacyController mDynamicPrivacyController;
- @Mock private NotifPipelineInitializer mNewNotifPipeline;
- @Mock private ZenModeController mZenModeController;
@Mock private AutoHideController mAutoHideController;
@Mock private NotificationViewHierarchyManager mNotificationViewHierarchyManager;
@Mock private UserSwitcherController mUserSwitcherController;
@@ -223,7 +214,6 @@ public class StatusBarTest extends SysuiTestCase {
@Mock private VibratorHelper mVibratorHelper;
@Mock private BubbleController mBubbleController;
@Mock private NotificationGroupManager mGroupManager;
- @Mock private NotificationGroupAlertTransferHelper mGroupAlertTransferHelper;
@Mock private NotificationShadeWindowController mNotificationShadeWindowController;
@Mock private NotificationIconAreaController mNotificationIconAreaController;
@Mock private NotificationShadeWindowViewController mNotificationShadeWindowViewController;
@@ -247,7 +237,6 @@ public class StatusBarTest extends SysuiTestCase {
@Mock private ViewMediatorCallback mViewMediatorCallback;
@Mock private DismissCallbackRegistry mDismissCallbackRegistry;
@Mock private ScreenPinningRequest mScreenPinningRequest;
- @Mock private NotificationEntryManager mEntryManager;
@Mock private LockscreenLockIconController mLockscreenLockIconController;
@Mock private StatusBarNotificationActivityStarter.Builder
mStatusBarNotificationActivityStarterBuilder;
@@ -256,7 +245,6 @@ public class StatusBarTest extends SysuiTestCase {
@Mock private KeyguardDismissUtil mKeyguardDismissUtil;
@Mock private ExtensionController mExtensionController;
@Mock private UserInfoControllerImpl mUserInfoControllerImpl;
- @Mock private NotificationRowBinderImpl mNotificationRowBinder;
private ShadeController mShadeController;
private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock());
private InitController mInitController = new InitController();
@@ -280,7 +268,7 @@ public class StatusBarTest extends SysuiTestCase {
mMetricsLogger = new FakeMetricsLogger();
NotificationLogger notificationLogger = new NotificationLogger(mNotificationListener,
- mUiBgExecutor, mEntryManager, mStatusBarStateController,
+ mUiBgExecutor, mock(NotificationEntryManager.class), mStatusBarStateController,
mExpansionStateLogger);
notificationLogger.setVisibilityReporter(mock(Runnable.class));
@@ -334,7 +322,7 @@ public class StatusBarTest extends SysuiTestCase {
mStatusBar = new StatusBar(
mContext,
- mFeatureFlags,
+ mNotificationsController,
mLightBarController,
mAutoHideController,
mKeyguardUpdateMonitor,
@@ -346,7 +334,6 @@ public class StatusBarTest extends SysuiTestCase {
mHeadsUpManager,
mDynamicPrivacyController,
mBypassHeadsUpNotifier,
- () -> mNewNotifPipeline,
new FalsingManagerFake(),
mBroadcastDispatcher,
new RemoteInputQuickSettingsDisabler(
@@ -356,7 +343,6 @@ public class StatusBarTest extends SysuiTestCase {
),
mNotificationGutsManager,
notificationLogger,
- mEntryManager,
mNotificationInterruptionStateProvider,
mNotificationViewHierarchyManager,
mKeyguardViewMediator,
@@ -377,12 +363,10 @@ public class StatusBarTest extends SysuiTestCase {
mVibratorHelper,
mBubbleController,
mGroupManager,
- mGroupAlertTransferHelper,
mVisualStabilityManager,
mDeviceProvisionedController,
mNavigationBarController,
() -> mAssistManager,
- mNotificationListener,
configurationController,
mNotificationShadeWindowController,
mLockscreenLockIconController,
@@ -399,7 +383,6 @@ public class StatusBarTest extends SysuiTestCase {
Optional.of(mRecents),
mStatusBarComponentBuilderProvider,
mPluginManager,
- mRemoteInputUriController,
Optional.of(mDivider),
mLightsOutNotifController,
mStatusBarNotificationActivityStarterBuilder,
@@ -414,7 +397,6 @@ public class StatusBarTest extends SysuiTestCase {
mKeyguardDismissUtil,
mExtensionController,
mUserInfoControllerImpl,
- mNotificationRowBinder,
mDismissCallbackRegistry);
when(mNotificationShadeWindowView.findViewById(R.id.lock_icon_container)).thenReturn(
@@ -675,7 +657,7 @@ public class StatusBarTest extends SysuiTestCase {
public void testPanelOpenForHeadsUp() {
when(mDeviceProvisionedController.isDeviceProvisioned()).thenReturn(true);
when(mHeadsUpManager.hasPinnedHeadsUp()).thenReturn(true);
- when(mEntryManager.getActiveNotificationsCount()).thenReturn(5);
+ when(mNotificationsController.getActiveNotificationsCount()).thenReturn(5);
when(mNotificationPresenter.isPresenterFullyCollapsed()).thenReturn(true);
mStatusBar.setBarStateForTest(StatusBarState.SHADE);
@@ -693,7 +675,7 @@ public class StatusBarTest extends SysuiTestCase {
@Test
public void testPanelOpenAndClear() {
when(mHeadsUpManager.hasPinnedHeadsUp()).thenReturn(false);
- when(mEntryManager.getActiveNotificationsCount()).thenReturn(5);
+ when(mNotificationsController.getActiveNotificationsCount()).thenReturn(5);
when(mNotificationPresenter.isPresenterFullyCollapsed()).thenReturn(false);
mStatusBar.setBarStateForTest(StatusBarState.SHADE);
@@ -712,7 +694,7 @@ public class StatusBarTest extends SysuiTestCase {
@Test
public void testPanelOpenAndNoClear() {
when(mHeadsUpManager.hasPinnedHeadsUp()).thenReturn(false);
- when(mEntryManager.getActiveNotificationsCount()).thenReturn(5);
+ when(mNotificationsController.getActiveNotificationsCount()).thenReturn(5);
when(mNotificationPresenter.isPresenterFullyCollapsed()).thenReturn(false);
mStatusBar.setBarStateForTest(StatusBarState.KEYGUARD);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputViewTest.java
index 390e812b3613..df622542e22c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/RemoteInputViewTest.java
@@ -39,9 +39,9 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
-import com.android.systemui.statusbar.NotificationTestHelper;
import com.android.systemui.statusbar.RemoteInputController;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
+import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.statusbar.phone.LightBarController;
import com.android.systemui.util.Assert;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/FloatingContentCoordinatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/util/FloatingContentCoordinatorTest.kt
new file mode 100644
index 000000000000..8eecde1f4f7c
--- /dev/null
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/FloatingContentCoordinatorTest.kt
@@ -0,0 +1,218 @@
+package com.android.systemui.util
+
+import android.graphics.Rect
+import android.testing.AndroidTestingRunner
+import android.testing.TestableLooper
+import androidx.test.filters.SmallTest
+import com.android.systemui.SysuiTestCase
+import org.junit.After
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertFalse
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@TestableLooper.RunWithLooper
+@RunWith(AndroidTestingRunner::class)
+@SmallTest
+class FloatingContentCoordinatorTest : SysuiTestCase() {
+
+ private val screenBounds = Rect(0, 0, 1000, 1000)
+
+ private val rect100px = Rect()
+ private val rect100pxFloating = FloatingRect(rect100px)
+
+ private val rect200px = Rect()
+ private val rect200pxFloating = FloatingRect(rect200px)
+
+ private val rect300px = Rect()
+ private val rect300pxFloating = FloatingRect(rect300px)
+
+ private val floatingCoordinator = FloatingContentCoordinator()
+
+ @Before
+ fun setup() {
+ rect100px.set(0, 0, 100, 100)
+ rect200px.set(0, 0, 200, 200)
+ rect300px.set(0, 0, 300, 300)
+ }
+
+ @After
+ fun tearDown() {
+ // We need to remove this stuff since it's a singleton object and it'll be there for the
+ // next test.
+ floatingCoordinator.onContentRemoved(rect100pxFloating)
+ floatingCoordinator.onContentRemoved(rect200pxFloating)
+ floatingCoordinator.onContentRemoved(rect300pxFloating)
+ }
+
+ @Test
+ fun testOnContentAdded() {
+ // Add rect1, and verify that the coordinator didn't move it.
+ floatingCoordinator.onContentAdded(rect100pxFloating)
+ assertEquals(rect100px.top, 0)
+
+ // Add rect2, which intersects rect1. Verify that rect2 was not moved, since newly added
+ // content is allowed to remain where it is. rect1 should have been moved below rect2
+ // since it was in the way.
+ floatingCoordinator.onContentAdded(rect200pxFloating)
+ assertEquals(rect200px.top, 0)
+ assertEquals(rect100px.top, 200)
+
+ verifyRectSizes()
+ }
+
+ @Test
+ fun testOnContentRemoved() {
+ // Add rect1, and remove it. Then add rect2. Since rect1 was removed before that, it should
+ // no longer be considered in the way, so it shouldn't move when rect2 is added.
+ floatingCoordinator.onContentAdded(rect100pxFloating)
+ floatingCoordinator.onContentRemoved(rect100pxFloating)
+ floatingCoordinator.onContentAdded(rect200pxFloating)
+
+ assertEquals(rect100px.top, 0)
+ assertEquals(rect200px.top, 0)
+
+ verifyRectSizes()
+ }
+
+ @Test
+ fun testOnContentMoved_twoRects() {
+ // Add rect1, which is at y = 0.
+ floatingCoordinator.onContentAdded(rect100pxFloating)
+
+ // Move rect2 down to 500px, where it won't conflict with rect1.
+ rect200px.offsetTo(0, 500)
+ floatingCoordinator.onContentAdded(rect200pxFloating)
+
+ // Then, move it to 0px where it will absolutely conflict with rect1.
+ rect200px.offsetTo(0, 0)
+ floatingCoordinator.onContentMoved(rect200pxFloating)
+
+ // The coordinator should have left rect2 alone, and moved rect1 below it. rect1 should now
+ // be at y = 200.
+ assertEquals(rect200px.top, 0)
+ assertEquals(rect100px.top, 200)
+
+ verifyRectSizes()
+
+ // Move rect2 to y = 275px. Since this puts it at the bottom half of rect1, it should push
+ // rect1 upward and leave rect2 alone.
+ rect200px.offsetTo(0, 275)
+ floatingCoordinator.onContentMoved(rect200pxFloating)
+
+ assertEquals(rect200px.top, 275)
+ assertEquals(rect100px.top, 175)
+
+ verifyRectSizes()
+
+ // Move rect2 to y = 110px. This makes it intersect rect1 again, but above its center of
+ // mass. That means rect1 should be pushed downward.
+ rect200px.offsetTo(0, 110)
+ floatingCoordinator.onContentMoved(rect200pxFloating)
+
+ assertEquals(rect200px.top, 110)
+ assertEquals(rect100px.top, 310)
+
+ verifyRectSizes()
+ }
+
+ @Test
+ fun testOnContentMoved_threeRects() {
+ floatingCoordinator.onContentAdded(rect100pxFloating)
+
+ // Add rect2, which should displace rect1 to y = 200
+ floatingCoordinator.onContentAdded(rect200pxFloating)
+ assertEquals(rect200px.top, 0)
+ assertEquals(rect100px.top, 200)
+
+ // Add rect3, which should completely cover both rect1 and rect2. That should cause them to
+ // move away. The order in which they do so is non-deterministic, so just make sure none of
+ // the three Rects intersect.
+ floatingCoordinator.onContentAdded(rect300pxFloating)
+
+ assertFalse(Rect.intersects(rect100px, rect200px))
+ assertFalse(Rect.intersects(rect100px, rect300px))
+ assertFalse(Rect.intersects(rect200px, rect300px))
+
+ // Move rect2 to intersect both rect1 and rect3.
+ rect200px.offsetTo(0, 150)
+ floatingCoordinator.onContentMoved(rect200pxFloating)
+
+ assertFalse(Rect.intersects(rect100px, rect200px))
+ assertFalse(Rect.intersects(rect100px, rect300px))
+ assertFalse(Rect.intersects(rect200px, rect300px))
+ }
+
+ @Test
+ fun testOnContentMoved_respectsUpperBounds() {
+ // Add rect1, which is at y = 0.
+ floatingCoordinator.onContentAdded(rect100pxFloating)
+
+ // Move rect2 down to 500px, where it won't conflict with rect1.
+ rect200px.offsetTo(0, 500)
+ floatingCoordinator.onContentAdded(rect200pxFloating)
+
+ // Then, move it to 90px where it will conflict with rect1, but with a center of mass below
+ // that of rect1's. This would normally mean that rect1 moves upward. However, since it's at
+ // the top of the screen, it should go downward instead.
+ rect200px.offsetTo(0, 90)
+ floatingCoordinator.onContentMoved(rect200pxFloating)
+
+ // rect2 should have been left alone, rect1 is now below rect2 at y = 290px even though it
+ // was intersected from below.
+ assertEquals(rect200px.top, 90)
+ assertEquals(rect100px.top, 290)
+ }
+
+ @Test
+ fun testOnContentMoved_respectsLowerBounds() {
+ // Put rect1 at the bottom of the screen and add it.
+ rect100px.offsetTo(0, screenBounds.bottom - 100)
+ floatingCoordinator.onContentAdded(rect100pxFloating)
+
+ // Put rect2 at the bottom as well. Since its center of mass is above rect1's, rect1 would
+ // normally move downward. Since it's at the bottom of the screen, it should go upward
+ // instead.
+ rect200px.offsetTo(0, 800)
+ floatingCoordinator.onContentAdded(rect200pxFloating)
+
+ assertEquals(rect200px.top, 800)
+ assertEquals(rect100px.top, 700)
+ }
+
+ /**
+ * Tests that the rect sizes didn't change when the coordinator manipulated them. This allows us
+ * to assert only the value of rect.top in tests, since if top, width, and height are correct,
+ * that means top/left/right/bottom are all correct.
+ */
+ private fun verifyRectSizes() {
+ assertEquals(100, rect100px.width())
+ assertEquals(200, rect200px.width())
+ assertEquals(300, rect300px.width())
+
+ assertEquals(100, rect100px.height())
+ assertEquals(200, rect200px.height())
+ assertEquals(300, rect300px.height())
+ }
+
+ /**
+ * Helper class that uses [floatingCoordinator.findAreaForContentVertically] to move a
+ * Rect when needed.
+ */
+ inner class FloatingRect(
+ private val underlyingRect: Rect
+ ) : FloatingContentCoordinator.FloatingContent {
+ override fun moveToBounds(bounds: Rect) {
+ underlyingRect.set(bounds)
+ }
+
+ override fun getAllowedFloatingBoundsRegion(): Rect {
+ return screenBounds
+ }
+
+ override fun getFloatingBoundsOnScreen(): Rect {
+ return underlyingRect
+ }
+ }
+} \ No newline at end of file
diff --git a/packages/Tethering/common/TetheringLib/jarjar-rules.txt b/packages/Tethering/common/TetheringLib/jarjar-rules.txt
index 35e0f88e70fa..1403bba3445a 100644
--- a/packages/Tethering/common/TetheringLib/jarjar-rules.txt
+++ b/packages/Tethering/common/TetheringLib/jarjar-rules.txt
@@ -1 +1,2 @@
rule android.annotation.** com.android.networkstack.tethering.annotation.@1
+rule com.android.internal.annotations.** com.android.networkstack.tethering.annotation.@1 \ No newline at end of file
diff --git a/packages/Tethering/common/TetheringLib/src/android/net/TetheringManager.java b/packages/Tethering/common/TetheringLib/src/android/net/TetheringManager.java
index 37ce1d57da36..53a358f29a97 100644
--- a/packages/Tethering/common/TetheringLib/src/android/net/TetheringManager.java
+++ b/packages/Tethering/common/TetheringLib/src/android/net/TetheringManager.java
@@ -30,6 +30,9 @@ import android.os.ResultReceiver;
import android.util.ArrayMap;
import android.util.Log;
+import com.android.internal.annotations.GuardedBy;
+
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -37,6 +40,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.Executor;
+import java.util.function.Supplier;
/**
* This class provides the APIs to control the tethering service.
@@ -50,17 +54,23 @@ import java.util.concurrent.Executor;
public class TetheringManager {
private static final String TAG = TetheringManager.class.getSimpleName();
private static final int DEFAULT_TIMEOUT_MS = 60_000;
+ private static final long CONNECTOR_POLL_INTERVAL_MILLIS = 200L;
- private static TetheringManager sInstance;
+ @GuardedBy("mConnectorWaitQueue")
+ @Nullable
+ private ITetheringConnector mConnector;
+ @GuardedBy("mConnectorWaitQueue")
+ @NonNull
+ private final List<ConnectorConsumer> mConnectorWaitQueue = new ArrayList<>();
+ private final Supplier<IBinder> mConnectorSupplier;
- private final ITetheringConnector mConnector;
private final TetheringCallbackInternal mCallback;
private final Context mContext;
private final ArrayMap<TetheringEventCallback, ITetheringEventCallback>
mTetheringEventCallbacks = new ArrayMap<>();
- private TetheringConfigurationParcel mTetheringConfiguration;
- private TetherStatesParcel mTetherStatesParcel;
+ private volatile TetheringConfigurationParcel mTetheringConfiguration;
+ private volatile TetherStatesParcel mTetherStatesParcel;
/**
* Broadcast Action: A tetherable connection has come or gone.
@@ -162,29 +172,139 @@ public class TetheringManager {
/**
* Create a TetheringManager object for interacting with the tethering service.
*
+ * @param context Context for the manager.
+ * @param connectorSupplier Supplier for the manager connector; may return null while the
+ * service is not connected.
* {@hide}
*/
- public TetheringManager(@NonNull final Context context, @NonNull final IBinder service) {
+ public TetheringManager(@NonNull final Context context,
+ @NonNull Supplier<IBinder> connectorSupplier) {
mContext = context;
- mConnector = ITetheringConnector.Stub.asInterface(service);
mCallback = new TetheringCallbackInternal();
+ mConnectorSupplier = connectorSupplier;
final String pkgName = mContext.getOpPackageName();
+
+ final IBinder connector = mConnectorSupplier.get();
+ // If the connector is available on start, do not start a polling thread. This introduces
+ // differences in the thread that sends the oneway binder calls to the service between the
+ // first few seconds after boot and later, but it avoids always having differences between
+ // the first usage of TetheringManager from a process and subsequent usages (so the
+ // difference is only on boot). On boot binder calls may be queued until the service comes
+ // up and be sent from a worker thread; later, they are always sent from the caller thread.
+ // Considering that it's just oneway binder calls, and ordering is preserved, this seems
+ // better than inconsistent behavior persisting after boot.
+ if (connector != null) {
+ mConnector = ITetheringConnector.Stub.asInterface(connector);
+ } else {
+ startPollingForConnector();
+ }
+
Log.i(TAG, "registerTetheringEventCallback:" + pkgName);
+ getConnector(c -> c.registerTetheringEventCallback(mCallback, pkgName));
+ }
+
+ private void startPollingForConnector() {
+ new Thread(() -> {
+ while (true) {
+ try {
+ Thread.sleep(200);
+ } catch (InterruptedException e) {
+ // Not much to do here, the system needs to wait for the connector
+ }
+
+ final IBinder connector = mConnectorSupplier.get();
+ if (connector != null) {
+ onTetheringConnected(ITetheringConnector.Stub.asInterface(connector));
+ return;
+ }
+ }
+ }).start();
+ }
+
+ private interface ConnectorConsumer {
+ void onConnectorAvailable(ITetheringConnector connector) throws RemoteException;
+ }
+
+ private void onTetheringConnected(ITetheringConnector connector) {
+ // Process the connector wait queue in order, including any items that are added
+ // while processing.
+ //
+ // 1. Copy the queue to a local variable under lock.
+ // 2. Drain the local queue with the lock released (otherwise, enqueuing future commands
+ // would block on the lock).
+ // 3. Acquire the lock again. If any new tasks were queued during step 2, goto 1.
+ // If not, set mConnector to non-null so future tasks are run immediately, not queued.
+ //
+ // For this to work, all calls to the tethering service must use getConnector(), which
+ // ensures that tasks are added to the queue with the lock held.
+ //
+ // Once mConnector is set to non-null, it will never be null again. If the network stack
+ // process crashes, no recovery is possible.
+ // TODO: evaluate whether it is possible to recover from network stack process crashes
+ // (though in most cases the system will have crashed when the network stack process
+ // crashes).
+ do {
+ final List<ConnectorConsumer> localWaitQueue;
+ synchronized (mConnectorWaitQueue) {
+ localWaitQueue = new ArrayList<>(mConnectorWaitQueue);
+ mConnectorWaitQueue.clear();
+ }
+
+ // Allow more tasks to be added at the end without blocking while draining the queue.
+ for (ConnectorConsumer task : localWaitQueue) {
+ try {
+ task.onConnectorAvailable(connector);
+ } catch (RemoteException e) {
+ // Most likely the network stack process crashed, which is likely to crash the
+ // system. Keep processing other requests but report the error loudly.
+ Log.wtf(TAG, "Error processing request for the tethering connector", e);
+ }
+ }
+
+ synchronized (mConnectorWaitQueue) {
+ if (mConnectorWaitQueue.size() == 0) {
+ mConnector = connector;
+ return;
+ }
+ }
+ } while (true);
+ }
+
+ /**
+ * Asynchronously get the ITetheringConnector to execute some operation.
+ *
+ * <p>If the connector is already available, the operation will be executed on the caller's
+ * thread. Otherwise it will be queued and executed on a worker thread. The operation should be
+ * limited to performing oneway binder calls to minimize differences due to threading.
+ */
+ private void getConnector(ConnectorConsumer consumer) {
+ final ITetheringConnector connector;
+ synchronized (mConnectorWaitQueue) {
+ connector = mConnector;
+ if (connector == null) {
+ mConnectorWaitQueue.add(consumer);
+ return;
+ }
+ }
+
try {
- mConnector.registerTetheringEventCallback(mCallback, pkgName);
+ consumer.onConnectorAvailable(connector);
} catch (RemoteException e) {
throw new IllegalStateException(e);
}
}
private interface RequestHelper {
- void runRequest(IIntResultListener listener);
+ void runRequest(ITetheringConnector connector, IIntResultListener listener);
}
+ // Used to dispatch legacy ConnectivityManager methods that expect tethering to be able to
+ // return results and perform operations synchronously.
+ // TODO: remove once there are no callers of these legacy methods.
private class RequestDispatcher {
private final ConditionVariable mWaiting;
- public int mRemoteResult;
+ public volatile int mRemoteResult;
private final IIntResultListener mListener = new IIntResultListener.Stub() {
@Override
@@ -199,7 +319,7 @@ public class TetheringManager {
}
int waitForResult(final RequestHelper request) {
- request.runRequest(mListener);
+ getConnector(c -> request.runRequest(c, mListener));
if (!mWaiting.block(DEFAULT_TIMEOUT_MS)) {
throw new IllegalStateException("Callback timeout");
}
@@ -222,7 +342,7 @@ public class TetheringManager {
}
private class TetheringCallbackInternal extends ITetheringEventCallback.Stub {
- private int mError = TETHER_ERROR_NO_ERROR;
+ private volatile int mError = TETHER_ERROR_NO_ERROR;
private final ConditionVariable mWaitForCallback = new ConditionVariable();
@Override
@@ -280,9 +400,9 @@ public class TetheringManager {
Log.i(TAG, "tether caller:" + callerPkg);
final RequestDispatcher dispatcher = new RequestDispatcher();
- return dispatcher.waitForResult(listener -> {
+ return dispatcher.waitForResult((connector, listener) -> {
try {
- mConnector.tether(iface, callerPkg, listener);
+ connector.tether(iface, callerPkg, listener);
} catch (RemoteException e) {
throw new IllegalStateException(e);
}
@@ -304,9 +424,9 @@ public class TetheringManager {
final RequestDispatcher dispatcher = new RequestDispatcher();
- return dispatcher.waitForResult(listener -> {
+ return dispatcher.waitForResult((connector, listener) -> {
try {
- mConnector.untether(iface, callerPkg, listener);
+ connector.untether(iface, callerPkg, listener);
} catch (RemoteException e) {
throw new IllegalStateException(e);
}
@@ -330,9 +450,9 @@ public class TetheringManager {
final RequestDispatcher dispatcher = new RequestDispatcher();
- return dispatcher.waitForResult(listener -> {
+ return dispatcher.waitForResult((connector, listener) -> {
try {
- mConnector.setUsbTethering(enable, callerPkg, listener);
+ connector.setUsbTethering(enable, callerPkg, listener);
} catch (RemoteException e) {
throw new IllegalStateException(e);
}
@@ -467,11 +587,7 @@ public class TetheringManager {
});
}
};
- try {
- mConnector.startTethering(request.getParcel(), callerPkg, listener);
- } catch (RemoteException e) {
- throw new IllegalStateException(e);
- }
+ getConnector(c -> c.startTethering(request.getParcel(), callerPkg, listener));
}
/**
@@ -509,15 +625,15 @@ public class TetheringManager {
final String callerPkg = mContext.getOpPackageName();
Log.i(TAG, "stopTethering caller:" + callerPkg);
- final RequestDispatcher dispatcher = new RequestDispatcher();
-
- dispatcher.waitForResult(listener -> {
- try {
- mConnector.stopTethering(type, callerPkg, listener);
- } catch (RemoteException e) {
- throw new IllegalStateException(e);
+ getConnector(c -> c.stopTethering(type, callerPkg, new IIntResultListener.Stub() {
+ @Override
+ public void onResult(int resultCode) {
+ // TODO: provide an API to obtain result
+ // This has never been possible as stopTethering has always been void and never
+ // taken a callback object. The only indication that callers have is if the call
+ // results in a TETHER_STATE_CHANGE broadcast.
}
- });
+ }));
}
/**
@@ -591,12 +707,8 @@ public class TetheringManager {
final String callerPkg = mContext.getOpPackageName();
Log.i(TAG, "getLatestTetheringEntitlementResult caller:" + callerPkg);
- try {
- mConnector.requestLatestTetheringEntitlementResult(type, receiver, showEntitlementUi,
- callerPkg);
- } catch (RemoteException e) {
- throw new IllegalStateException(e);
- }
+ getConnector(c -> c.requestLatestTetheringEntitlementResult(
+ type, receiver, showEntitlementUi, callerPkg));
}
/**
@@ -832,11 +944,7 @@ public class TetheringManager {
});
}
};
- try {
- mConnector.registerTetheringEventCallback(remoteCallback, callerPkg);
- } catch (RemoteException e) {
- throw new IllegalStateException(e);
- }
+ getConnector(c -> c.registerTetheringEventCallback(remoteCallback, callerPkg));
mTetheringEventCallbacks.put(callback, remoteCallback);
}
}
@@ -860,11 +968,8 @@ public class TetheringManager {
if (remoteCallback == null) {
throw new IllegalArgumentException("callback was not registered.");
}
- try {
- mConnector.unregisterTetheringEventCallback(remoteCallback, callerPkg);
- } catch (RemoteException e) {
- throw new IllegalStateException(e);
- }
+
+ getConnector(c -> c.unregisterTetheringEventCallback(remoteCallback, callerPkg));
}
}
@@ -1002,9 +1107,9 @@ public class TetheringManager {
final String callerPkg = mContext.getOpPackageName();
final RequestDispatcher dispatcher = new RequestDispatcher();
- final int ret = dispatcher.waitForResult(listener -> {
+ final int ret = dispatcher.waitForResult((connector, listener) -> {
try {
- mConnector.isTetheringSupported(callerPkg, listener);
+ connector.isTetheringSupported(callerPkg, listener);
} catch (RemoteException e) {
throw new IllegalStateException(e);
}
@@ -1027,13 +1132,14 @@ public class TetheringManager {
final String callerPkg = mContext.getOpPackageName();
Log.i(TAG, "stopAllTethering caller:" + callerPkg);
- final RequestDispatcher dispatcher = new RequestDispatcher();
- dispatcher.waitForResult(listener -> {
- try {
- mConnector.stopAllTethering(callerPkg, listener);
- } catch (RemoteException e) {
- throw new IllegalStateException(e);
+ getConnector(c -> c.stopAllTethering(callerPkg, new IIntResultListener.Stub() {
+ @Override
+ public void onResult(int resultCode) {
+ // TODO: add an API parameter to send result to caller.
+ // This has never been possible as stopAllTethering has always been void and never
+ // taken a callback object. The only indication that callers have is if the call
+ // results in a TETHER_STATE_CHANGE broadcast.
}
- });
+ }));
}
}
diff --git a/packages/Tethering/res/values/config.xml b/packages/Tethering/res/values/config.xml
index c489cbcd5a1c..4af5c5371952 100644
--- a/packages/Tethering/res/values/config.xml
+++ b/packages/Tethering/res/values/config.xml
@@ -47,6 +47,7 @@
should be empty. An example would be "p2p-p2p\\d-.*" -->
<string-array translatable="false" name="config_tether_wifi_p2p_regexs">
<item>"p2p-p2p\\d-.*"</item>
+ <item>"p2p\\d"</item>
</string-array>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
diff --git a/packages/Tethering/src/com/android/server/connectivity/tethering/Tethering.java b/packages/Tethering/src/com/android/server/connectivity/tethering/Tethering.java
index 07abe1adeb52..39c402be84a3 100644
--- a/packages/Tethering/src/com/android/server/connectivity/tethering/Tethering.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/Tethering.java
@@ -272,13 +272,6 @@ public class Tethering {
mStateReceiver = new StateReceiver();
- mNetdCallback = new NetdCallback();
- try {
- mNetd.registerUnsolicitedEventListener(mNetdCallback);
- } catch (RemoteException e) {
- mLog.e("Unable to register netd UnsolicitedEventListener");
- }
-
final UserManager userManager = (UserManager) mContext.getSystemService(
Context.USER_SERVICE);
mTetheringRestriction = new UserRestrictionActionListener(userManager, this);
@@ -287,6 +280,14 @@ public class Tethering {
// Load tethering configuration.
updateConfiguration();
+ // NetdCallback should be registered after updateConfiguration() to ensure
+ // TetheringConfiguration is created.
+ mNetdCallback = new NetdCallback();
+ try {
+ mNetd.registerUnsolicitedEventListener(mNetdCallback);
+ } catch (RemoteException e) {
+ mLog.e("Unable to register netd UnsolicitedEventListener");
+ }
startStateMachineUpdaters(mHandler);
startTrackDefaultNetwork();
diff --git a/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringService.java b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringService.java
index 7dc5c5f2db8a..020b32adcfd7 100644
--- a/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringService.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringService.java
@@ -77,8 +77,8 @@ public class TetheringService extends Service {
mLog.mark("onCreate");
mDeps = getTetheringDependencies();
mContext = mDeps.getContext();
- mTethering = makeTethering(mDeps);
mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
+ mTethering = makeTethering(mDeps);
}
/**
diff --git a/packages/VpnDialogs/AndroidManifest.xml b/packages/VpnDialogs/AndroidManifest.xml
index e4de6259e07d..693ca52b4ed1 100644
--- a/packages/VpnDialogs/AndroidManifest.xml
+++ b/packages/VpnDialogs/AndroidManifest.xml
@@ -34,6 +34,13 @@
</intent-filter>
</activity>
+ <activity android:name=".PlatformVpnConfirmDialog"
+ android:theme="@*android:style/Theme.DeviceDefault.Dialog.Alert.DayNight"
+ android:noHistory="true"
+ android:excludeFromRecents="true"
+ android:exported="true">
+ </activity>
+
<activity android:name=".ManageDialog"
android:theme="@*android:style/Theme.DeviceDefault.Dialog.Alert.DayNight"
android:noHistory="true"
diff --git a/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java b/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java
index 48adb9ba3f63..e66f2cc17a7f 100644
--- a/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java
+++ b/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java
@@ -23,6 +23,7 @@ import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.net.IConnectivityManager;
+import android.net.VpnManager;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -43,10 +44,20 @@ public class ConfirmDialog extends AlertActivity
implements DialogInterface.OnClickListener, ImageGetter {
private static final String TAG = "VpnConfirm";
+ @VpnManager.VpnType private final int mVpnType;
+
private String mPackage;
private IConnectivityManager mService;
+ public ConfirmDialog() {
+ this(VpnManager.TYPE_VPN_SERVICE);
+ }
+
+ public ConfirmDialog(@VpnManager.VpnType int vpnType) {
+ mVpnType = vpnType;
+ }
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -138,7 +149,7 @@ public class ConfirmDialog extends AlertActivity
if (mService.prepareVpn(null, mPackage, UserHandle.myUserId())) {
// Authorize this app to initiate VPN connections in the future without user
// intervention.
- mService.setVpnPackageAuthorization(mPackage, UserHandle.myUserId(), true);
+ mService.setVpnPackageAuthorization(mPackage, UserHandle.myUserId(), mVpnType);
setResult(RESULT_OK);
}
} catch (Exception e) {
diff --git a/packages/VpnDialogs/src/com/android/vpndialogs/PlatformVpnConfirmDialog.java b/packages/VpnDialogs/src/com/android/vpndialogs/PlatformVpnConfirmDialog.java
new file mode 100644
index 000000000000..e2e297caad14
--- /dev/null
+++ b/packages/VpnDialogs/src/com/android/vpndialogs/PlatformVpnConfirmDialog.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.vpndialogs;
+
+import android.net.VpnManager;
+
+/**
+ * PlatformVpnConfirmDialog is a minimal subclass for requesting user consent for platform VPN
+ * profiles.
+ */
+public class PlatformVpnConfirmDialog extends ConfirmDialog {
+ public PlatformVpnConfirmDialog() {
+ super(VpnManager.TYPE_VPN_PLATFORM);
+ }
+}
diff --git a/packages/WallpaperCropper/src/com/android/photos/views/TiledImageRenderer.java b/packages/WallpaperCropper/src/com/android/photos/views/TiledImageRenderer.java
index 950107301af3..fcb113e90720 100644
--- a/packages/WallpaperCropper/src/com/android/photos/views/TiledImageRenderer.java
+++ b/packages/WallpaperCropper/src/com/android/photos/views/TiledImageRenderer.java
@@ -26,7 +26,6 @@ import android.util.Log;
import android.util.Pools.Pool;
import android.util.Pools.SynchronizedPool;
import android.view.View;
-import android.view.WindowManager;
import com.android.gallery3d.common.Utils;
import com.android.gallery3d.glrenderer.BasicTexture;
@@ -164,9 +163,7 @@ public class TiledImageRenderer {
private static boolean isHighResolution(Context context) {
DisplayMetrics metrics = new DisplayMetrics();
- WindowManager wm = (WindowManager)
- context.getSystemService(Context.WINDOW_SERVICE);
- wm.getDefaultDisplay().getMetrics(metrics);
+ context.getDisplay().getMetrics(metrics);
return metrics.heightPixels > 2048 || metrics.widthPixels > 2048;
}
diff --git a/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java b/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java
index f878b4d11f72..6112da5cd13b 100644
--- a/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java
+++ b/packages/WallpaperCropper/src/com/android/wallpapercropper/WallpaperCropActivity.java
@@ -37,9 +37,9 @@ import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
+import android.util.Size;
import android.view.Display;
import android.view.View;
-import android.view.WindowManager;
import android.widget.Toast;
import com.android.gallery3d.common.Utils;
@@ -231,18 +231,18 @@ public class WallpaperCropActivity extends Activity {
return x * aspectRatio + y;
}
- static protected Point getDefaultWallpaperSize(Resources res, WindowManager windowManager) {
+ static protected Point getDefaultWallpaperSize(Resources res, Display display) {
if (sDefaultWallpaperSize == null) {
Point minDims = new Point();
Point maxDims = new Point();
- windowManager.getDefaultDisplay().getCurrentSizeRange(minDims, maxDims);
+ display.getCurrentSizeRange(minDims, maxDims);
int maxDim = Math.max(maxDims.x, maxDims.y);
int minDim = Math.max(minDims.x, minDims.y);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
Point realSize = new Point();
- windowManager.getDefaultDisplay().getRealSize(realSize);
+ display.getRealSize(realSize);
maxDim = Math.max(realSize.x, realSize.y);
minDim = Math.min(realSize.x, realSize.y);
}
@@ -331,8 +331,7 @@ public class WallpaperCropActivity extends Activity {
// this device
int rotation = getRotationFromExif(res, resId);
Point inSize = mCropView.getSourceDimensions();
- Point outSize = getDefaultWallpaperSize(getResources(),
- getWindowManager());
+ Point outSize = getDefaultWallpaperSize(getResources(), getDisplay());
RectF crop = getMaxCropRect(
inSize.x, inSize.y, outSize.x, outSize.y, false);
Runnable onEndCrop = new Runnable() {
@@ -359,14 +358,11 @@ public class WallpaperCropActivity extends Activity {
// Get the crop
boolean ltr = mCropView.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR;
- Display d = getWindowManager().getDefaultDisplay();
-
- Point displaySize = new Point();
- d.getSize(displaySize);
- boolean isPortrait = displaySize.x < displaySize.y;
+ Size windowSize = getWindowManager().getCurrentWindowMetrics().getSize();
+ boolean isPortrait = windowSize.getWidth() < windowSize.getHeight();
Point defaultWallpaperSize = getDefaultWallpaperSize(getResources(),
- getWindowManager());
+ getDisplay());
// Get the crop
RectF cropRect = mCropView.getCrop();
diff --git a/packages/overlays/Android.mk b/packages/overlays/Android.mk
index 8a3ac9404408..dcdb80b497d0 100644
--- a/packages/overlays/Android.mk
+++ b/packages/overlays/Android.mk
@@ -26,7 +26,9 @@ LOCAL_REQUIRED_MODULES := \
AccentColorPurpleOverlay \
DisplayCutoutEmulationCornerOverlay \
DisplayCutoutEmulationDoubleOverlay \
+ DisplayCutoutEmulationHoleOverlay \
DisplayCutoutEmulationTallOverlay \
+ DisplayCutoutEmulationWaterfallOverlay \
FontNotoSerifSourceOverlay \
IconPackCircularAndroidOverlay \
IconPackCircularLauncherOverlay \
@@ -47,7 +49,6 @@ LOCAL_REQUIRED_MODULES := \
IconShapeSquircleOverlay \
IconShapeTeardropOverlay \
NavigationBarMode3ButtonOverlay \
- NavigationBarMode2ButtonOverlay \
NavigationBarModeGesturalOverlay \
NavigationBarModeGesturalOverlayNarrowBack \
NavigationBarModeGesturalOverlayWideBack \
diff --git a/packages/overlays/DisplayCutoutEmulationHoleOverlay/Android.mk b/packages/overlays/DisplayCutoutEmulationHoleOverlay/Android.mk
new file mode 100644
index 000000000000..6d8fc2493506
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationHoleOverlay/Android.mk
@@ -0,0 +1,14 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_RRO_THEME := DisplayCutoutEmulationHole
+
+
+LOCAL_PRODUCT_MODULE := true
+
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+
+LOCAL_PACKAGE_NAME := DisplayCutoutEmulationHoleOverlay
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_RRO_PACKAGE)
diff --git a/packages/overlays/DisplayCutoutEmulationHoleOverlay/AndroidManifest.xml b/packages/overlays/DisplayCutoutEmulationHoleOverlay/AndroidManifest.xml
new file mode 100644
index 000000000000..9fd82abd6c8c
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationHoleOverlay/AndroidManifest.xml
@@ -0,0 +1,26 @@
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.internal.display.cutout.emulation.hole"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <overlay android:targetPackage="android"
+ android:category="com.android.internal.display_cutout_emulation"
+ android:priority="1"/>
+
+ <application android:label="@string/display_cutout_emulation_overlay" android:hasCode="false"/>
+</manifest>
diff --git a/packages/overlays/DisplayCutoutEmulationHoleOverlay/res/values-land/config.xml b/packages/overlays/DisplayCutoutEmulationHoleOverlay/res/values-land/config.xml
new file mode 100644
index 000000000000..2e971ded2256
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationHoleOverlay/res/values-land/config.xml
@@ -0,0 +1,22 @@
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources>
+ <!-- Can't link to other dimensions here, but this should be status_bar_height_landscape -->
+ <dimen name="quick_qs_offset_height">28dp</dimen>
+ <!-- Total height of QQS in landscape; quick_qs_offset_height + 128 -->
+ <dimen name="quick_qs_total_height">156dp</dimen>
+</resources>
diff --git a/packages/overlays/DisplayCutoutEmulationHoleOverlay/res/values/config.xml b/packages/overlays/DisplayCutoutEmulationHoleOverlay/res/values/config.xml
new file mode 100644
index 000000000000..9f558d0e2bd5
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationHoleOverlay/res/values/config.xml
@@ -0,0 +1,61 @@
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- The bounding path of the cutout region of the main built-in display.
+ Must either be empty if there is no cutout region, or a string that is parsable by
+ {@link android.util.PathParser}.
+
+ The path is assumed to be specified in display coordinates with pixel units and in
+ the display's native orientation, with the origin of the coordinate system at the
+ center top of the display.
+
+ To facilitate writing device-independent emulation overlays, the marker `@dp` can be
+ appended after the path string to interpret coordinates in dp instead of px units.
+ Note that a physical cutout should be configured in pixels for the best results.
+ -->
+ <!-- Display cutout configuration -->
+ <string translatable="false" name="config_mainBuiltInDisplayCutout">
+ M 128,83 A 44,44 0 0 1 84,127 44,44 0 0 1 40,83 44,44 0 0 1 84,39 44,44 0 0 1 128,83 Z
+ @left
+ </string>
+
+ <string translatable="false" name="config_mainBuiltInDisplayCutoutRectApproximation">
+ M 0.0,0.0
+ h 136
+ v 136
+ h -136
+ Z
+ @left
+ </string>
+
+ <!-- Whether the display cutout region of the main built-in display should be forced to
+ black in software (to avoid aliasing or emulate a cutout that is not physically existent).
+ -->
+ <bool name="config_fillMainBuiltInDisplayCutout">true</bool>
+
+ <!-- Height of the status bar -->
+ <dimen name="status_bar_height_portrait">136px</dimen>
+ <dimen name="status_bar_height_landscape">28dp</dimen>
+ <!-- Height of area above QQS where battery/time go (equal to status bar) -->
+ <dimen name="quick_qs_offset_height">136px</dimen>
+ <!-- Total height of QQS (quick_qs_offset_height + 128) -->
+ <dimen name="quick_qs_total_height">488px</dimen>
+
+</resources>
+
+
diff --git a/packages/overlays/DisplayCutoutEmulationHoleOverlay/res/values/strings.xml b/packages/overlays/DisplayCutoutEmulationHoleOverlay/res/values/strings.xml
new file mode 100644
index 000000000000..ab25695e7289
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationHoleOverlay/res/values/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <string name="display_cutout_emulation_overlay">Punch Hole cutout</string>
+
+</resources>
+
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/Android.mk b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/Android.mk
new file mode 100644
index 000000000000..b6b6dd1c25bc
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/Android.mk
@@ -0,0 +1,14 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_RRO_THEME := DisplayCutoutEmulationWaterfall
+
+
+LOCAL_PRODUCT_MODULE := true
+
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+
+LOCAL_PACKAGE_NAME := DisplayCutoutEmulationWaterfallOverlay
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_RRO_PACKAGE)
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/AndroidManifest.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/AndroidManifest.xml
new file mode 100644
index 000000000000..2d5bb14f4dd3
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/AndroidManifest.xml
@@ -0,0 +1,26 @@
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.internal.display.cutout.emulation.waterfall"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <overlay android:targetPackage="android"
+ android:category="com.android.internal.display_cutout_emulation"
+ android:priority="1"/>
+
+ <application android:label="@string/display_cutout_emulation_overlay" android:hasCode="false"/>
+</manifest>
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-land/config.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-land/config.xml
new file mode 100644
index 000000000000..df2f3d19626e
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values-land/config.xml
@@ -0,0 +1,22 @@
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources>
+ <!-- Can't link to other dimensions here, but this should be status_bar_height_landscape -->
+ <dimen name="quick_qs_offset_height">48dp</dimen>
+ <!-- Total height of QQS in landscape; quick_qs_offset_height + 128 -->
+ <dimen name="quick_qs_total_height">176dp</dimen>
+</resources> \ No newline at end of file
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values/config.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values/config.xml
new file mode 100644
index 000000000000..6f692c8021c0
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values/config.xml
@@ -0,0 +1,35 @@
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Height of the status bar in portrait. The height should be
+ Max((status bar content height + waterfall top size), top cutout size) -->
+ <dimen name="status_bar_height_portrait">28dp</dimen>
+ <!-- Max((28 + 20), 0) = 48 -->
+ <dimen name="status_bar_height_landscape">48dp</dimen>
+ <!-- Height of area above QQS where battery/time go (equal to status bar height if > 48dp) -->
+ <dimen name="quick_qs_offset_height">28dp</dimen>
+ <!-- Total height of QQS (quick_qs_offset_height + 128) -->
+ <dimen name="quick_qs_total_height">156dp</dimen>
+
+ <dimen name="waterfall_display_left_edge_size">20dp</dimen>
+ <dimen name="waterfall_display_top_edge_size">0dp</dimen>
+ <dimen name="waterfall_display_right_edge_size">20dp</dimen>
+ <dimen name="waterfall_display_bottom_edge_size">0dp</dimen>
+</resources>
+
+
diff --git a/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values/strings.xml b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values/strings.xml
new file mode 100644
index 000000000000..ed073d0e244e
--- /dev/null
+++ b/packages/overlays/DisplayCutoutEmulationWaterfallOverlay/res/values/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2020 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <string name="display_cutout_emulation_overlay">Waterfall cutout</string>
+
+</resources> \ No newline at end of file
diff --git a/packages/overlays/IconShapePebbleOverlay/Android.mk b/packages/overlays/IconShapePebbleOverlay/Android.mk
new file mode 100644
index 000000000000..c163bb91f76a
--- /dev/null
+++ b/packages/overlays/IconShapePebbleOverlay/Android.mk
@@ -0,0 +1,29 @@
+#
+# Copyright 2020, The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_RRO_THEME := IconShapePebble
+
+LOCAL_PRODUCT_MODULE := true
+
+LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
+
+LOCAL_PACKAGE_NAME := IconShapePebbleOverlay
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_RRO_PACKAGE)
diff --git a/packages/overlays/IconShapePebbleOverlay/AndroidManifest.xml b/packages/overlays/IconShapePebbleOverlay/AndroidManifest.xml
new file mode 100644
index 000000000000..6842dde36264
--- /dev/null
+++ b/packages/overlays/IconShapePebbleOverlay/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<!--
+/**
+ * Copyright (c) 2020, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.theme.icon.pebble"
+ android:versionCode="1"
+ android:versionName="1.0">
+<overlay
+ android:targetPackage="android"
+ android:targetName="IconShapeCustomization"
+ android:category="android.theme.customization.adaptive_icon_shape"
+ android:priority="1"/>
+
+ <application android:label="@string/icon_shape_pebble_overlay" android:hasCode="false"/>
+</manifest>
diff --git a/packages/overlays/IconShapePebbleOverlay/res/values/config.xml b/packages/overlays/IconShapePebbleOverlay/res/values/config.xml
new file mode 100644
index 000000000000..2465fe015538
--- /dev/null
+++ b/packages/overlays/IconShapePebbleOverlay/res/values/config.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2019, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Specifies the path that is used by AdaptiveIconDrawable class to crop launcher icons. -->
+ <string name="config_icon_mask" translatable="false">"MM55,0 C25,0 0,25 0,50 0,78 28,100 55,100 85,100 100,85 100,58 100,30 86,0 55,0 Z"</string>
+ <!-- Flag indicating whether round icons should be parsed from the application manifest. -->
+ <bool name="config_useRoundIcon">false</bool>
+ <!-- Corner radius of system dialogs -->
+ <dimen name="config_dialogCornerRadius">8dp</dimen>
+ <!-- Corner radius for bottom sheet system dialogs -->
+ <dimen name="config_bottomDialogCornerRadius">16dp</dimen>
+
+</resources>
+
diff --git a/packages/overlays/IconShapePebbleOverlay/res/values/strings.xml b/packages/overlays/IconShapePebbleOverlay/res/values/strings.xml
new file mode 100644
index 000000000000..aec4a82a6ba4
--- /dev/null
+++ b/packages/overlays/IconShapePebbleOverlay/res/values/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2019, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Heart icon overlay -->
+ <string name="icon_shape_pebble_overlay" translatable="false">Pebble</string>
+
+</resources>
diff --git a/services/Android.bp b/services/Android.bp
index a58245361939..28c8aeea4e53 100644
--- a/services/Android.bp
+++ b/services/Android.bp
@@ -114,7 +114,7 @@ droidstubs {
srcs: [":services-all-sources"],
installable: false,
// TODO: remove the --hide options below
- args: " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.MODULE_LIBRARIES,process=android.annotation.SystemApi.Process.SYSTEM_SERVER\\)" +
+ args: " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.SYSTEM_SERVER\\)" +
" --hide-annotation android.annotation.Hide" +
" --hide-package com.google.android.startop.iorap" +
" --hide ReferencesHidden" +
diff --git a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
index a5877ccbde7c..565ee63d89ab 100644
--- a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
+++ b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
@@ -16,6 +16,8 @@
package com.android.server.accessibility;
+import static android.accessibilityservice.AccessibilityService.KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE_ID;
+import static android.accessibilityservice.AccessibilityService.KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER;
import static android.accessibilityservice.AccessibilityServiceInfo.DEFAULT;
import static android.view.WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
import static android.view.accessibility.AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS;
@@ -36,10 +38,11 @@ import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.PackageManager;
import android.content.pm.ParceledListSlice;
-import android.graphics.Bitmap;
+import android.graphics.GraphicBuffer;
import android.graphics.Point;
import android.graphics.Rect;
import android.graphics.Region;
+import android.hardware.HardwareBuffer;
import android.hardware.display.DisplayManager;
import android.hardware.display.DisplayManagerGlobal;
import android.os.Binder;
@@ -50,6 +53,7 @@ import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.os.PowerManager;
+import android.os.RemoteCallback;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemClock;
@@ -71,6 +75,7 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.compat.IPlatformCompat;
import com.android.internal.os.SomeArgs;
import com.android.internal.util.DumpUtils;
+import com.android.internal.util.function.pooled.PooledLambda;
import com.android.server.LocalServices;
import com.android.server.accessibility.AccessibilityWindowManager.RemoteAccessibilityConnection;
import com.android.server.wm.ActivityTaskManagerInternal;
@@ -106,6 +111,8 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ
private final PowerManager mPowerManager;
private final IPlatformCompat mIPlatformCompat;
+ private final Handler mMainHandler;
+
// Handler for scheduling method invocations on the main thread.
public final InvocationHandler mInvocationHandler;
@@ -238,6 +245,7 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ
mSecurityPolicy = securityPolicy;
mSystemActionPerformer = systemActionPerfomer;
mSystemSupport = systemSupport;
+ mMainHandler = mainHandler;
mInvocationHandler = new InvocationHandler(mainHandler.getLooper());
mA11yWindowManager = a11yWindowManager;
mDisplayManager = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE);
@@ -959,52 +967,72 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ
mInvocationHandler.setSoftKeyboardCallbackEnabled(enabled);
}
- @Nullable
@Override
- public Bitmap takeScreenshot(int displayId) {
+ public void takeScreenshot(int displayId, RemoteCallback callback) {
synchronized (mLock) {
if (!hasRightsToCurrentUserLocked()) {
- return null;
+ sendScreenshotResult(true, null, callback);
+ return;
}
if (!mSecurityPolicy.canTakeScreenshotLocked(this)) {
- return null;
+ sendScreenshotResult(true, null, callback);
+ throw new SecurityException("Services don't have the capability of taking"
+ + " the screenshot.");
}
}
if (!mSecurityPolicy.checkAccessibilityAccess(this)) {
- return null;
+ sendScreenshotResult(true, null, callback);
+ return;
}
final Display display = DisplayManagerGlobal.getInstance()
.getRealDisplay(displayId);
if (display == null) {
- return null;
+ sendScreenshotResult(true, null, callback);
+ return;
}
- final Point displaySize = new Point();
- display.getRealSize(displaySize);
- final int rotation = display.getRotation();
- Bitmap screenShot = null;
+ sendScreenshotResult(false, display, callback);
+ }
+ private void sendScreenshotResult(boolean noResult, Display display, RemoteCallback callback) {
+ final boolean noScreenshot = noResult;
final long identity = Binder.clearCallingIdentity();
try {
- final Rect crop = new Rect(0, 0, displaySize.x, displaySize.y);
- // TODO (b/145893483): calling new API with the display as a parameter
- // when surface control supported.
- screenShot = SurfaceControl.screenshot(crop, displaySize.x, displaySize.y,
- rotation);
- if (screenShot != null) {
- // Optimization for telling the bitmap that all of the pixels are known to be
- // opaque (false). This is meant as a drawing hint, as in some cases a bitmap
- // that is known to be opaque can take a faster drawing case than one that may
- // have non-opaque per-pixel alpha values.
- screenShot.setHasAlpha(false);
- }
+ mMainHandler.post(PooledLambda.obtainRunnable((nonArg) -> {
+ if (noScreenshot) {
+ callback.sendResult(null);
+ return;
+ }
+ final Point displaySize = new Point();
+ // TODO (b/145893483): calling new API with the display as a parameter
+ // when surface control supported.
+ final IBinder token = SurfaceControl.getInternalDisplayToken();
+ final Rect crop = new Rect(0, 0, displaySize.x, displaySize.y);
+ final int rotation = display.getRotation();
+ display.getRealSize(displaySize);
+
+ final SurfaceControl.ScreenshotGraphicBuffer screenshotBuffer =
+ SurfaceControl.screenshotToBufferWithSecureLayersUnsafe(token, crop,
+ displaySize.x, displaySize.y, false,
+ rotation);
+ final GraphicBuffer graphicBuffer = screenshotBuffer.getGraphicBuffer();
+ final HardwareBuffer hardwareBuffer =
+ HardwareBuffer.createFromGraphicBuffer(graphicBuffer);
+ final int colorSpaceId = screenshotBuffer.getColorSpace().getId();
+
+ // Send back the result.
+ final Bundle payload = new Bundle();
+ payload.putParcelable(KEY_ACCESSIBILITY_SCREENSHOT_HARDWAREBUFFER,
+ hardwareBuffer);
+ payload.putInt(KEY_ACCESSIBILITY_SCREENSHOT_COLORSPACE_ID, colorSpaceId);
+ callback.sendResult(payload);
+ }, null).recycleOnUse());
} finally {
Binder.restoreCallingIdentity(identity);
}
- return screenShot;
}
@Override
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java
index 25911a7ed0ea..edb4445151d5 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java
@@ -16,8 +16,6 @@
package com.android.server.accessibility;
-import static android.accessibilityservice.AccessibilityService.KEY_ACCESSIBILITY_SCREENSHOT;
-
import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
import android.Manifest;
@@ -27,20 +25,16 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ParceledListSlice;
-import android.graphics.Bitmap;
import android.os.Binder;
-import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Process;
-import android.os.RemoteCallback;
import android.os.RemoteException;
import android.os.UserHandle;
import android.provider.Settings;
import android.util.Slog;
import android.view.Display;
-import com.android.internal.util.function.pooled.PooledLambda;
import com.android.server.inputmethod.InputMethodManagerInternal;
import com.android.server.wm.ActivityTaskManagerInternal;
import com.android.server.wm.WindowManagerInternal;
@@ -393,15 +387,4 @@ class AccessibilityServiceConnection extends AbstractAccessibilityServiceConnect
}
}
}
-
- @Override
- public void takeScreenshotWithCallback(int displayId, RemoteCallback callback) {
- mMainHandler.post(PooledLambda.obtainRunnable((nonArg) -> {
- final Bitmap screenshot = super.takeScreenshot(displayId);
- // Send back the result.
- final Bundle payload = new Bundle();
- payload.putParcelable(KEY_ACCESSIBILITY_SCREENSHOT, screenshot);
- callback.sendResult(payload);
- }, null).recycleOnUse());
- }
}
diff --git a/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java b/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java
index 5d9af26a8339..d1c3a02c6761 100644
--- a/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java
+++ b/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java
@@ -328,6 +328,6 @@ class UiAutomationManager {
public void onFingerprintGesture(int gesture) {}
@Override
- public void takeScreenshotWithCallback(int displayId, RemoteCallback callback) {}
+ public void takeScreenshot(int displayId, RemoteCallback callback) {}
}
}
diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/EventDispatcher.java b/services/accessibility/java/com/android/server/accessibility/gestures/EventDispatcher.java
index 5ac3b69549c1..667364c9c901 100644
--- a/services/accessibility/java/com/android/server/accessibility/gestures/EventDispatcher.java
+++ b/services/accessibility/java/com/android/server/accessibility/gestures/EventDispatcher.java
@@ -301,7 +301,7 @@ class EventDispatcher {
* @param policyFlags The policy flags associated with the event.
*/
void sendUpForInjectedDownPointers(MotionEvent prototype, int policyFlags) {
- int pointerIdBits = 0;
+ int pointerIdBits = prototype.getPointerIdBits();
final int pointerCount = prototype.getPointerCount();
for (int i = 0; i < pointerCount; i++) {
final int pointerId = prototype.getPointerId(i);
@@ -309,10 +309,10 @@ class EventDispatcher {
if (!isInjectedPointerDown(pointerId)) {
continue;
}
- pointerIdBits |= (1 << pointerId);
- final int action = computeInjectionAction(MotionEvent.ACTION_UP, i);
+ final int action = computeInjectionAction(MotionEvent.ACTION_POINTER_UP, i);
sendMotionEvent(
prototype, action, mState.getLastReceivedEvent(), pointerIdBits, policyFlags);
+ pointerIdBits &= ~(1 << pointerId);
}
}
}
diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/GestureManifold.java b/services/accessibility/java/com/android/server/accessibility/gestures/GestureManifold.java
index 1fe162c86408..b74be7e3f345 100644
--- a/services/accessibility/java/com/android/server/accessibility/gestures/GestureManifold.java
+++ b/services/accessibility/java/com/android/server/accessibility/gestures/GestureManifold.java
@@ -18,10 +18,25 @@ package com.android.server.accessibility.gestures;
import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_DOUBLE_TAP;
import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_SINGLE_TAP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_SWIPE_DOWN;
+import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_SWIPE_LEFT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_SWIPE_RIGHT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_SWIPE_UP;
import static android.accessibilityservice.AccessibilityService.GESTURE_2_FINGER_TRIPLE_TAP;
import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_DOUBLE_TAP;
import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_SINGLE_TAP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_SWIPE_DOWN;
+import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_SWIPE_LEFT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_SWIPE_RIGHT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_SWIPE_UP;
import static android.accessibilityservice.AccessibilityService.GESTURE_3_FINGER_TRIPLE_TAP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_DOUBLE_TAP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_SINGLE_TAP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_SWIPE_DOWN;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_SWIPE_LEFT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_SWIPE_RIGHT;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_SWIPE_UP;
+import static android.accessibilityservice.AccessibilityService.GESTURE_4_FINGER_TRIPLE_TAP;
import static android.accessibilityservice.AccessibilityService.GESTURE_DOUBLE_TAP;
import static android.accessibilityservice.AccessibilityService.GESTURE_DOUBLE_TAP_AND_HOLD;
import static android.accessibilityservice.AccessibilityService.GESTURE_SWIPE_DOWN;
@@ -110,6 +125,7 @@ class GestureManifold implements GestureMatcher.StateChangeListener {
mGestures.add(new Swipe(context, UP, DOWN, GESTURE_SWIPE_UP_AND_DOWN, this));
mGestures.add(new Swipe(context, UP, LEFT, GESTURE_SWIPE_UP_AND_LEFT, this));
mGestures.add(new Swipe(context, UP, RIGHT, GESTURE_SWIPE_UP_AND_RIGHT, this));
+ // Set up multi-finger gestures to be enabled later.
// Two-finger taps.
mMultiFingerGestures.add(
new MultiFingerMultiTap(mContext, 2, 1, GESTURE_2_FINGER_SINGLE_TAP, this));
@@ -124,6 +140,40 @@ class GestureManifold implements GestureMatcher.StateChangeListener {
new MultiFingerMultiTap(mContext, 3, 2, GESTURE_3_FINGER_DOUBLE_TAP, this));
mMultiFingerGestures.add(
new MultiFingerMultiTap(mContext, 3, 3, GESTURE_3_FINGER_TRIPLE_TAP, this));
+ // Four-finger taps.
+ mMultiFingerGestures.add(
+ new MultiFingerMultiTap(mContext, 4, 1, GESTURE_4_FINGER_SINGLE_TAP, this));
+ mMultiFingerGestures.add(
+ new MultiFingerMultiTap(mContext, 4, 2, GESTURE_4_FINGER_DOUBLE_TAP, this));
+ mMultiFingerGestures.add(
+ new MultiFingerMultiTap(mContext, 4, 3, GESTURE_4_FINGER_TRIPLE_TAP, this));
+ // Two-finger swipes.
+ mMultiFingerGestures.add(
+ new MultiFingerSwipe(context, 2, DOWN, GESTURE_2_FINGER_SWIPE_DOWN, this));
+ mMultiFingerGestures.add(
+ new MultiFingerSwipe(context, 2, LEFT, GESTURE_2_FINGER_SWIPE_LEFT, this));
+ mMultiFingerGestures.add(
+ new MultiFingerSwipe(context, 2, RIGHT, GESTURE_2_FINGER_SWIPE_RIGHT, this));
+ mMultiFingerGestures.add(
+ new MultiFingerSwipe(context, 2, UP, GESTURE_2_FINGER_SWIPE_UP, this));
+ // Three-finger swipes.
+ mMultiFingerGestures.add(
+ new MultiFingerSwipe(context, 3, DOWN, GESTURE_3_FINGER_SWIPE_DOWN, this));
+ mMultiFingerGestures.add(
+ new MultiFingerSwipe(context, 3, LEFT, GESTURE_3_FINGER_SWIPE_LEFT, this));
+ mMultiFingerGestures.add(
+ new MultiFingerSwipe(context, 3, RIGHT, GESTURE_3_FINGER_SWIPE_RIGHT, this));
+ mMultiFingerGestures.add(
+ new MultiFingerSwipe(context, 3, UP, GESTURE_3_FINGER_SWIPE_UP, this));
+ // Four-finger swipes.
+ mMultiFingerGestures.add(
+ new MultiFingerSwipe(context, 4, DOWN, GESTURE_4_FINGER_SWIPE_DOWN, this));
+ mMultiFingerGestures.add(
+ new MultiFingerSwipe(context, 4, LEFT, GESTURE_4_FINGER_SWIPE_LEFT, this));
+ mMultiFingerGestures.add(
+ new MultiFingerSwipe(context, 4, RIGHT, GESTURE_4_FINGER_SWIPE_RIGHT, this));
+ mMultiFingerGestures.add(
+ new MultiFingerSwipe(context, 4, UP, GESTURE_4_FINGER_SWIPE_UP, this));
}
/**
diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/GestureUtils.java b/services/accessibility/java/com/android/server/accessibility/gestures/GestureUtils.java
index 0f5dd08e02b4..ac6748089314 100644
--- a/services/accessibility/java/com/android/server/accessibility/gestures/GestureUtils.java
+++ b/services/accessibility/java/com/android/server/accessibility/gestures/GestureUtils.java
@@ -8,6 +8,9 @@ import android.view.MotionEvent;
*/
public final class GestureUtils {
+ public static int MM_PER_CM = 10;
+ public static float CM_PER_INCH = 2.54f;
+
private GestureUtils() {
/* cannot be instantiated */
}
@@ -85,4 +88,12 @@ public final class GestureUtils {
return true;
}
+
+ /**
+ * Gets the index of the pointer that went up or down from a motion event.
+ */
+ public static int getActionIndex(MotionEvent event) {
+ return (event.getAction()
+ & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
+ }
}
diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/MultiFingerSwipe.java b/services/accessibility/java/com/android/server/accessibility/gestures/MultiFingerSwipe.java
new file mode 100644
index 000000000000..a14584a63bb2
--- /dev/null
+++ b/services/accessibility/java/com/android/server/accessibility/gestures/MultiFingerSwipe.java
@@ -0,0 +1,514 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.accessibility.gestures;
+
+import static android.view.MotionEvent.INVALID_POINTER_ID;
+
+import static com.android.server.accessibility.gestures.GestureUtils.MM_PER_CM;
+import static com.android.server.accessibility.gestures.GestureUtils.getActionIndex;
+import static com.android.server.accessibility.gestures.Swipe.CANCEL_ON_PAUSE_THRESHOLD_NOT_STARTED_MS;
+import static com.android.server.accessibility.gestures.Swipe.CANCEL_ON_PAUSE_THRESHOLD_STARTED_MS;
+import static com.android.server.accessibility.gestures.Swipe.GESTURE_CONFIRM_CM;
+import static com.android.server.accessibility.gestures.TouchExplorer.DEBUG;
+
+import android.content.Context;
+import android.graphics.PointF;
+import android.os.Handler;
+import android.util.DisplayMetrics;
+import android.util.Slog;
+import android.util.TypedValue;
+import android.view.MotionEvent;
+import android.view.ViewConfiguration;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+/**
+ * This class is responsible for matching one-finger swipe gestures. Each instance matches one swipe
+ * gesture. A swipe is specified as a series of one or more directions e.g. left, left and up, etc.
+ * At this time swipes with more than two directions are not supported.
+ */
+class MultiFingerSwipe extends GestureMatcher {
+
+ // Direction constants.
+ public static final int LEFT = 0;
+ public static final int RIGHT = 1;
+ public static final int UP = 2;
+ public static final int DOWN = 3;
+ // This is the calculated movement threshold used track if the user is still
+ // moving their finger.
+ private final float mGestureDetectionThresholdPixels;
+
+ // Buffer for storing points for gesture detection.
+ private final ArrayList<PointF>[] mStrokeBuffers;
+
+ // The swipe direction for this matcher.
+ private int mDirection;
+ private int[] mPointerIds;
+ // The starting point of each finger's path in the gesture.
+ private PointF[] mBase;
+ // The most recent entry in each finger's gesture path.
+ private PointF[] mPreviousGesturePoint;
+ private int mTargetFingerCount;
+ private int mCurrentFingerCount;
+ // Whether the appropriate number of fingers have gone down at some point. This is reset only on
+ // clear.
+ private boolean mTargetFingerCountReached = false;
+ // Constants for sampling motion event points.
+ // We sample based on a minimum distance between points, primarily to improve accuracy by
+ // reducing noisy minor changes in direction.
+ private static final float MIN_CM_BETWEEN_SAMPLES = 0.25f;
+ private final float mMinPixelsBetweenSamplesX;
+ private final float mMinPixelsBetweenSamplesY;
+ // The minmimum distance the finger must travel before we evaluate the initial direction of the
+ // swipe.
+ // Anything less is still considered a touch.
+ private int mTouchSlop;
+
+ MultiFingerSwipe(
+ Context context,
+ int fingerCount,
+ int direction,
+ int gesture,
+ GestureMatcher.StateChangeListener listener) {
+ super(gesture, new Handler(context.getMainLooper()), listener);
+ mTargetFingerCount = fingerCount;
+ mPointerIds = new int[mTargetFingerCount];
+ mBase = new PointF[mTargetFingerCount];
+ mPreviousGesturePoint = new PointF[mTargetFingerCount];
+ mStrokeBuffers = new ArrayList[mTargetFingerCount];
+ mDirection = direction;
+ DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
+ mGestureDetectionThresholdPixels =
+ TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, MM_PER_CM, displayMetrics)
+ * GESTURE_CONFIRM_CM;
+ // Calculate minimum gesture velocity
+ final float pixelsPerCmX = displayMetrics.xdpi / GestureUtils.CM_PER_INCH;
+ final float pixelsPerCmY = displayMetrics.ydpi / GestureUtils.CM_PER_INCH;
+ mMinPixelsBetweenSamplesX = MIN_CM_BETWEEN_SAMPLES * pixelsPerCmX;
+ mMinPixelsBetweenSamplesY = MIN_CM_BETWEEN_SAMPLES * pixelsPerCmY;
+ mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
+ clear();
+ }
+
+ @Override
+ protected void clear() {
+ mTargetFingerCountReached = false;
+ mCurrentFingerCount = 0;
+ for (int i = 0; i < mTargetFingerCount; ++i) {
+ mPointerIds[i] = INVALID_POINTER_ID;
+ if (mBase[i] == null) {
+ mBase[i] = new PointF();
+ }
+ mBase[i].x = Float.NaN;
+ mBase[i].y = Float.NaN;
+ if (mPreviousGesturePoint[i] == null) {
+ mPreviousGesturePoint[i] = new PointF();
+ }
+ mPreviousGesturePoint[i].x = Float.NaN;
+ mPreviousGesturePoint[i].y = Float.NaN;
+ if (mStrokeBuffers[i] == null) {
+ mStrokeBuffers[i] = new ArrayList<>(100);
+ }
+ mStrokeBuffers[i].clear();
+ }
+ super.clear();
+ }
+
+ @Override
+ protected void onDown(MotionEvent event, MotionEvent rawEvent, int policyFlags) {
+ if (mCurrentFingerCount > 0) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ mCurrentFingerCount = 1;
+ final int actionIndex = getActionIndex(rawEvent);
+ final int pointerId = rawEvent.getPointerId(actionIndex);
+ int pointerIndex = rawEvent.getPointerCount() - 1;
+ if (pointerId < 0) {
+ // Nonsensical pointer id.
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ if (mPointerIds[pointerIndex] != INVALID_POINTER_ID) {
+ // Inconsistent event stream.
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ mPointerIds[pointerIndex] = pointerId;
+ cancelAfterPauseThreshold(event, rawEvent, policyFlags);
+ if (Float.isNaN(mBase[pointerIndex].x) && Float.isNaN(mBase[pointerIndex].y)) {
+ final float x = rawEvent.getX(actionIndex);
+ final float y = rawEvent.getY(actionIndex);
+ if (x < 0f || y < 0f) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ mBase[pointerIndex].x = x;
+ mBase[pointerIndex].y = y;
+ mPreviousGesturePoint[pointerIndex].x = x;
+ mPreviousGesturePoint[pointerIndex].y = y;
+ } else {
+ // This event doesn't make sense in the middle of a gesture.
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ }
+
+ @Override
+ protected void onPointerDown(MotionEvent event, MotionEvent rawEvent, int policyFlags) {
+ if (event.getPointerCount() > mTargetFingerCount) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ mCurrentFingerCount += 1;
+ if (mCurrentFingerCount != rawEvent.getPointerCount()) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ if (mCurrentFingerCount == mTargetFingerCount) {
+ mTargetFingerCountReached = true;
+ }
+ final int actionIndex = getActionIndex(rawEvent);
+ final int pointerId = rawEvent.getPointerId(actionIndex);
+ if (pointerId < 0) {
+ // Nonsensical pointer id.
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ int pointerIndex = mCurrentFingerCount - 1;
+ if (mPointerIds[pointerIndex] != INVALID_POINTER_ID) {
+ // Inconsistent event stream.
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ mPointerIds[pointerIndex] = pointerId;
+ cancelAfterPauseThreshold(event, rawEvent, policyFlags);
+ if (Float.isNaN(mBase[pointerIndex].x) && Float.isNaN(mBase[pointerIndex].y)) {
+ final float x = rawEvent.getX(actionIndex);
+ final float y = rawEvent.getY(actionIndex);
+ if (x < 0f || y < 0f) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ mBase[pointerIndex].x = x;
+ mBase[pointerIndex].y = y;
+ mPreviousGesturePoint[pointerIndex].x = x;
+ mPreviousGesturePoint[pointerIndex].y = y;
+ } else {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ }
+
+ @Override
+ protected void onPointerUp(MotionEvent event, MotionEvent rawEvent, int policyFlags) {
+ if (!mTargetFingerCountReached) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ mCurrentFingerCount -= 1;
+ final int actionIndex = getActionIndex(event);
+ final int pointerId = event.getPointerId(actionIndex);
+ if (pointerId < 0) {
+ // Nonsensical pointer id.
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ final int pointerIndex = Arrays.binarySearch(mPointerIds, pointerId);
+ if (pointerIndex < 0) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ final float x = rawEvent.getX(actionIndex);
+ final float y = rawEvent.getY(actionIndex);
+ if (x < 0f || y < 0f) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ final float dX = Math.abs(x - mPreviousGesturePoint[pointerIndex].x);
+ final float dY = Math.abs(y - mPreviousGesturePoint[pointerIndex].y);
+ if (dX >= mMinPixelsBetweenSamplesX || dY >= mMinPixelsBetweenSamplesY) {
+ mStrokeBuffers[pointerIndex].add(new PointF(x, y));
+ }
+ // We will evaluate all the paths on ACTION_UP.
+ }
+
+ @Override
+ protected void onMove(MotionEvent event, MotionEvent rawEvent, int policyFlags) {
+ for (int pointerIndex = 0; pointerIndex < mTargetFingerCount; ++pointerIndex) {
+ if (mPointerIds[pointerIndex] == INVALID_POINTER_ID) {
+ // Fingers have started to move before the required number of fingers are down.
+ // However, they can still move less than the touch slop and still be considered
+ // touching, not moving.
+ // So we just ignore fingers that haven't been assigned a pointer id and process
+ // those who have.
+ continue;
+ }
+ if (DEBUG) {
+ Slog.d(getGestureName(), "Processing move on finger " + pointerIndex);
+ }
+ int index = rawEvent.findPointerIndex(mPointerIds[pointerIndex]);
+ if (index < 0) {
+ // This finger is not present in this event. It could have gone up just before this
+ // movement.
+ if (DEBUG) {
+ Slog.d(
+ getGestureName(),
+ "Finger " + pointerIndex + " not found in this event. skipping.");
+ }
+ continue;
+ }
+ final float x = rawEvent.getX(index);
+ final float y = rawEvent.getY(index);
+ if (x < 0f || y < 0f) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ final float dX = Math.abs(x - mPreviousGesturePoint[pointerIndex].x);
+ final float dY = Math.abs(y - mPreviousGesturePoint[pointerIndex].y);
+ final double moveDelta =
+ Math.hypot(
+ Math.abs(x - mBase[pointerIndex].x),
+ Math.abs(y - mBase[pointerIndex].y));
+ if (DEBUG) {
+ Slog.d(
+ getGestureName(),
+ "moveDelta:"
+ + Double.toString(moveDelta)
+ + " mGestureDetectionThreshold: "
+ + Float.toString(mGestureDetectionThresholdPixels));
+ }
+ if (getState() == STATE_CLEAR) {
+ if (moveDelta < mTouchSlop) {
+ // This still counts as a touch not a swipe.
+ continue;
+ } else if (mStrokeBuffers[pointerIndex].size() == 0) {
+ // First, make sure we have the right number of fingers down.
+ if (mCurrentFingerCount != mTargetFingerCount) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ // Then, make sure the pointer is going in the right direction.
+ int direction =
+ toDirection(x - mBase[pointerIndex].x, y - mBase[pointerIndex].y);
+ if (direction != mDirection) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ } else {
+ // This is confirmed to be some kind of swipe so start tracking points.
+ cancelAfterPauseThreshold(event, rawEvent, policyFlags);
+ for (int i = 0; i < mTargetFingerCount; ++i) {
+ mStrokeBuffers[i].add(new PointF(mBase[i]));
+ }
+ }
+ }
+ if (moveDelta > mGestureDetectionThresholdPixels) {
+ // Try to cancel if the finger starts to go the wrong way.
+ // Note that this only works because this matcher assumes one direction.
+ int direction =
+ toDirection(x - mBase[pointerIndex].x, y - mBase[pointerIndex].y);
+ if (direction != mDirection) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ // If the pointer has moved more than the threshold,
+ // update the stored values.
+ mBase[pointerIndex].x = x;
+ mBase[pointerIndex].y = y;
+ mPreviousGesturePoint[pointerIndex].x = x;
+ mPreviousGesturePoint[pointerIndex].y = y;
+ if (getState() == STATE_CLEAR) {
+ startGesture(event, rawEvent, policyFlags);
+ cancelAfterPauseThreshold(event, rawEvent, policyFlags);
+ }
+ }
+ }
+ if (getState() == STATE_GESTURE_STARTED) {
+ if (dX >= mMinPixelsBetweenSamplesX || dY >= mMinPixelsBetweenSamplesY) {
+ // Sample every 2.5 MM in order to guard against minor variations in path.
+ mPreviousGesturePoint[pointerIndex].x = x;
+ mPreviousGesturePoint[pointerIndex].y = y;
+ mStrokeBuffers[pointerIndex].add(new PointF(x, y));
+ cancelAfterPauseThreshold(event, rawEvent, policyFlags);
+ }
+ }
+ }
+ }
+
+ @Override
+ protected void onUp(MotionEvent event, MotionEvent rawEvent, int policyFlags) {
+ if (getState() != STATE_GESTURE_STARTED) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ mCurrentFingerCount = 0;
+ final int actionIndex = getActionIndex(event);
+ final int pointerId = event.getPointerId(actionIndex);
+ final int pointerIndex = Arrays.binarySearch(mPointerIds, pointerId);
+ if (pointerIndex < 0) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ final float x = rawEvent.getX(actionIndex);
+ final float y = rawEvent.getY(actionIndex);
+ if (x < 0f || y < 0f) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ final float dX = Math.abs(x - mPreviousGesturePoint[pointerIndex].x);
+ final float dY = Math.abs(y - mPreviousGesturePoint[pointerIndex].y);
+ if (dX >= mMinPixelsBetweenSamplesX || dY >= mMinPixelsBetweenSamplesY) {
+ mStrokeBuffers[pointerIndex].add(new PointF(x, y));
+ }
+ recognizeGesture(event, rawEvent, policyFlags);
+ }
+
+ /**
+ * queues a transition to STATE_GESTURE_CANCEL based on the current state. If we have
+ * transitioned to STATE_GESTURE_STARTED the delay is longer.
+ */
+ private void cancelAfterPauseThreshold(
+ MotionEvent event, MotionEvent rawEvent, int policyFlags) {
+ cancelPendingTransitions();
+ switch (getState()) {
+ case STATE_CLEAR:
+ cancelAfter(CANCEL_ON_PAUSE_THRESHOLD_NOT_STARTED_MS, event, rawEvent, policyFlags);
+ break;
+ case STATE_GESTURE_STARTED:
+ cancelAfter(CANCEL_ON_PAUSE_THRESHOLD_STARTED_MS, event, rawEvent, policyFlags);
+ break;
+ default:
+ break;
+ }
+ }
+ /**
+ * Looks at the sequence of motions in mStrokeBuffer, classifies the gesture, then transitions
+ * to the complete or cancel state depending on the result.
+ */
+ private void recognizeGesture(MotionEvent event, MotionEvent rawEvent, int policyFlags) {
+ // Check the path of each finger against the specified direction.
+ // Note that we sample every 2.5 MMm, and the direction matching is extremely tolerant (each
+ // direction has a 90-degree arch of tolerance) meaning that minor perpendicular movements
+ // should not create false negatives.
+ for (int i = 0; i < mTargetFingerCount; ++i) {
+ if (DEBUG) {
+ Slog.d(getGestureName(), "Recognizing finger: " + i);
+ }
+ if (mStrokeBuffers[i].size() < 2) {
+ Slog.d(getGestureName(), "Too few points.");
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ ArrayList<PointF> path = mStrokeBuffers[i];
+
+ if (DEBUG) {
+ Slog.d(getGestureName(), "path=" + path.toString());
+ }
+ // Classify line segments, and call Listener callbacks.
+ if (!recognizeGesturePath(event, rawEvent, policyFlags, path)) {
+ cancelGesture(event, rawEvent, policyFlags);
+ return;
+ }
+ }
+ // If we reach this point then all paths match.
+ completeGesture(event, rawEvent, policyFlags);
+ }
+
+ /**
+ * Tests the path of a given finger against the direction specified in this matcher.
+ *
+ * @return True if the path matches the specified direction for this matcher, otherwise false.
+ */
+ private boolean recognizeGesturePath(
+ MotionEvent event, MotionEvent rawEvent, int policyFlags, ArrayList<PointF> path) {
+
+ final int displayId = event.getDisplayId();
+ for (int i = 0; i < path.size() - 1; ++i) {
+ PointF start = path.get(i);
+ PointF end = path.get(i + 1);
+
+ float dX = end.x - start.x;
+ float dY = end.y - start.y;
+ int direction = toDirection(dX, dY);
+ if (direction != mDirection) {
+ if (DEBUG) {
+ Slog.d(
+ getGestureName(),
+ "Found direction "
+ + directionToString(direction)
+ + " when expecting "
+ + directionToString(mDirection));
+ }
+ return false;
+ }
+ }
+ if (DEBUG) {
+ Slog.d(getGestureName(), "Completed.");
+ }
+ return true;
+ }
+
+ private static int toDirection(float dX, float dY) {
+ if (Math.abs(dX) > Math.abs(dY)) {
+ // Horizontal
+ return (dX < 0) ? LEFT : RIGHT;
+ } else {
+ // Vertical
+ return (dY < 0) ? UP : DOWN;
+ }
+ }
+
+ public static String directionToString(int direction) {
+ switch (direction) {
+ case LEFT:
+ return "left";
+ case RIGHT:
+ return "right";
+ case UP:
+ return "up";
+ case DOWN:
+ return "down";
+ default:
+ return "Unknown Direction";
+ }
+ }
+
+ @Override
+ String getGestureName() {
+ StringBuilder builder = new StringBuilder();
+ builder.append(mTargetFingerCount).append("-finger ");
+ builder.append("Swipe ").append(directionToString(mDirection));
+ return builder.toString();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder(super.toString());
+ if (getState() != STATE_GESTURE_CANCELED) {
+ builder.append(", mBase: ")
+ .append(mBase.toString())
+ .append(", mGestureDetectionThreshold:")
+ .append(mGestureDetectionThresholdPixels)
+ .append(", mMinPixelsBetweenSamplesX:")
+ .append(mMinPixelsBetweenSamplesX)
+ .append(", mMinPixelsBetweenSamplesY:")
+ .append(mMinPixelsBetweenSamplesY);
+ }
+ return builder.toString();
+ }
+}
diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/SecondFingerMultiTap.java b/services/accessibility/java/com/android/server/accessibility/gestures/SecondFingerMultiTap.java
index 8a566fcdb48a..ada251f2363c 100644
--- a/services/accessibility/java/com/android/server/accessibility/gestures/SecondFingerMultiTap.java
+++ b/services/accessibility/java/com/android/server/accessibility/gestures/SecondFingerMultiTap.java
@@ -18,6 +18,8 @@ package com.android.server.accessibility.gestures;
import static android.view.MotionEvent.INVALID_POINTER_ID;
+import static com.android.server.accessibility.gestures.GestureUtils.getActionIndex;
+
import android.content.Context;
import android.os.Handler;
import android.view.MotionEvent;
@@ -155,11 +157,6 @@ class SecondFingerMultiTap extends GestureMatcher {
return moveDelta <= slop;
}
- private int getActionIndex(MotionEvent event) {
- return event.getAction()
- & MotionEvent.ACTION_POINTER_INDEX_MASK << MotionEvent.ACTION_POINTER_INDEX_SHIFT;
- }
-
@Override
public String toString() {
return super.toString()
diff --git a/services/accessibility/java/com/android/server/accessibility/gestures/Swipe.java b/services/accessibility/java/com/android/server/accessibility/gestures/Swipe.java
index a285c10cc6ff..9108c69ce1f6 100644
--- a/services/accessibility/java/com/android/server/accessibility/gestures/Swipe.java
+++ b/services/accessibility/java/com/android/server/accessibility/gestures/Swipe.java
@@ -16,10 +16,10 @@
package com.android.server.accessibility.gestures;
+import static com.android.server.accessibility.gestures.GestureUtils.MM_PER_CM;
import static com.android.server.accessibility.gestures.TouchExplorer.DEBUG;
import android.content.Context;
-import android.gesture.GesturePoint;
import android.graphics.PointF;
import android.os.Handler;
import android.util.DisplayMetrics;
@@ -44,10 +44,10 @@ class Swipe extends GestureMatcher {
public static final int DOWN = 3;
// This is the calculated movement threshold used track if the user is still
// moving their finger.
- private final float mGestureDetectionThreshold;
+ private final float mGestureDetectionThresholdPixels;
// Buffer for storing points for gesture detection.
- private final ArrayList<GesturePoint> mStrokeBuffer = new ArrayList<GesturePoint>(100);
+ private final ArrayList<PointF> mStrokeBuffer = new ArrayList<>(100);
// The minimal delta between moves to add a gesture point.
private static final int TOUCH_TOLERANCE_PIX = 3;
@@ -56,7 +56,7 @@ class Swipe extends GestureMatcher {
private static final float MIN_PREDICTION_SCORE = 2.0f;
// Distance a finger must travel before we decide if it is a gesture or not.
- private static final int GESTURE_CONFIRM_CM = 1;
+ public static final int GESTURE_CONFIRM_CM = 1;
// Time threshold used to determine if an interaction is a gesture or not.
// If the first movement of 1cm takes longer than this value, we assume it's
@@ -67,17 +67,16 @@ class Swipe extends GestureMatcher {
// all gestures started with the initial movement taking less than 100ms.
// When touch exploring, the first movement almost always takes longer than
// 200ms.
- private static final long CANCEL_ON_PAUSE_THRESHOLD_NOT_STARTED_MS = 150;
+ public static final long CANCEL_ON_PAUSE_THRESHOLD_NOT_STARTED_MS = 150;
// Time threshold used to determine if a gesture should be cancelled. If
// the finger takes more than this time to move 1cm, the ongoing gesture is
// cancelled.
- private static final long CANCEL_ON_PAUSE_THRESHOLD_STARTED_MS = 300;
+ public static final long CANCEL_ON_PAUSE_THRESHOLD_STARTED_MS = 300;
private int[] mDirections;
private float mBaseX;
private float mBaseY;
- private long mBaseTime;
private float mPreviousGestureX;
private float mPreviousGestureY;
// Constants for sampling motion event points.
@@ -119,8 +118,8 @@ class Swipe extends GestureMatcher {
super(gesture, new Handler(context.getMainLooper()), listener);
mDirections = directions;
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
- mGestureDetectionThreshold =
- TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 10, displayMetrics)
+ mGestureDetectionThresholdPixels =
+ TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, MM_PER_CM, displayMetrics)
* GESTURE_CONFIRM_CM;
// Calculate minimum gesture velocity
final float pixelsPerCmX = displayMetrics.xdpi / 2.54f;
@@ -135,18 +134,16 @@ class Swipe extends GestureMatcher {
protected void clear() {
mBaseX = Float.NaN;
mBaseY = Float.NaN;
- mBaseTime = 0;
mStrokeBuffer.clear();
super.clear();
}
@Override
protected void onDown(MotionEvent event, MotionEvent rawEvent, int policyFlags) {
- cancelAfterDelay(event, rawEvent, policyFlags);
+ cancelAfterPauseThreshold(event, rawEvent, policyFlags);
if (Float.isNaN(mBaseX) && Float.isNaN(mBaseY)) {
mBaseX = rawEvent.getX();
mBaseY = rawEvent.getY();
- mBaseTime = event.getEventTime();
mPreviousGestureX = mBaseX;
mPreviousGestureY = mBaseY;
}
@@ -157,10 +154,8 @@ class Swipe extends GestureMatcher {
protected void onMove(MotionEvent event, MotionEvent rawEvent, int policyFlags) {
final float x = rawEvent.getX();
final float y = rawEvent.getY();
- final long time = event.getEventTime();
final float dX = Math.abs(x - mPreviousGestureX);
final float dY = Math.abs(y - mPreviousGestureY);
- final long timeDelta = time - mBaseTime;
final double moveDelta = Math.hypot(Math.abs(x - mBaseX), Math.abs(y - mBaseY));
if (DEBUG) {
Slog.d(
@@ -168,7 +163,7 @@ class Swipe extends GestureMatcher {
"moveDelta:"
+ Double.toString(moveDelta)
+ " mGestureDetectionThreshold: "
- + Float.toString(mGestureDetectionThreshold));
+ + Float.toString(mGestureDetectionThresholdPixels));
}
if (getState() == STATE_CLEAR) {
if (moveDelta < mTouchSlop) {
@@ -176,25 +171,24 @@ class Swipe extends GestureMatcher {
return;
} else if (mStrokeBuffer.size() == 0) {
// First, make sure the pointer is going in the right direction.
- cancelAfterDelay(event, rawEvent, policyFlags);
+ cancelAfterPauseThreshold(event, rawEvent, policyFlags);
int direction = toDirection(x - mBaseX, y - mBaseY);
if (direction != mDirections[0]) {
cancelGesture(event, rawEvent, policyFlags);
return;
} else {
// This is confirmed to be some kind of swipe so start tracking points.
- mStrokeBuffer.add(new GesturePoint(mBaseX, mBaseY, mBaseTime));
+ mStrokeBuffer.add(new PointF(mBaseX, mBaseY));
}
}
- if (moveDelta > mGestureDetectionThreshold) {
+ if (moveDelta > mGestureDetectionThresholdPixels) {
// If the pointer has moved more than the threshold,
// update the stored values.
mBaseX = x;
mBaseY = y;
- mBaseTime = time;
if (getState() == STATE_CLEAR) {
startGesture(event, rawEvent, policyFlags);
- cancelAfterDelay(event, rawEvent, policyFlags);
+ cancelAfterPauseThreshold(event, rawEvent, policyFlags);
}
}
}
@@ -202,8 +196,8 @@ class Swipe extends GestureMatcher {
if (dX >= mMinPixelsBetweenSamplesX || dY >= mMinPixelsBetweenSamplesY) {
mPreviousGestureX = x;
mPreviousGestureY = y;
- mStrokeBuffer.add(new GesturePoint(x, y, time));
- cancelAfterDelay(event, rawEvent, policyFlags);
+ mStrokeBuffer.add(new PointF(x, y));
+ cancelAfterPauseThreshold(event, rawEvent, policyFlags);
}
}
}
@@ -217,11 +211,10 @@ class Swipe extends GestureMatcher {
final float x = rawEvent.getX();
final float y = rawEvent.getY();
- final long time = event.getEventTime();
final float dX = Math.abs(x - mPreviousGestureX);
final float dY = Math.abs(y - mPreviousGestureY);
if (dX >= mMinPixelsBetweenSamplesX || dY >= mMinPixelsBetweenSamplesY) {
- mStrokeBuffer.add(new GesturePoint(x, y, time));
+ mStrokeBuffer.add(new PointF(x, y));
}
recognizeGesture(event, rawEvent, policyFlags);
}
@@ -240,7 +233,8 @@ class Swipe extends GestureMatcher {
* queues a transition to STATE_GESTURE_CANCEL based on the current state. If we have
* transitioned to STATE_GESTURE_STARTED the delay is longer.
*/
- private void cancelAfterDelay(MotionEvent event, MotionEvent rawEvent, int policyFlags) {
+ private void cancelAfterPauseThreshold(
+ MotionEvent event, MotionEvent rawEvent, int policyFlags) {
cancelPendingTransitions();
switch (getState()) {
case STATE_CLEAR:
@@ -275,7 +269,7 @@ class Swipe extends GestureMatcher {
// 90 degrees.
ArrayList<PointF> path = new ArrayList<>();
- PointF lastDelimiter = new PointF(mStrokeBuffer.get(0).x, mStrokeBuffer.get(0).y);
+ PointF lastDelimiter = mStrokeBuffer.get(0);
path.add(lastDelimiter);
float dX = 0; // Sum of unit vectors from last delimiter to each following point
@@ -283,9 +277,9 @@ class Swipe extends GestureMatcher {
int count = 0; // Number of points since last delimiter
float length = 0; // Vector length from delimiter to most recent point
- PointF next = new PointF();
+ PointF next = null;
for (int i = 1; i < mStrokeBuffer.size(); ++i) {
- next = new PointF(mStrokeBuffer.get(i).x, mStrokeBuffer.get(i).y);
+ next = mStrokeBuffer.get(i);
if (count > 0) {
// Average of unit vectors from delimiter to following points
float currentDX = dX / count;
@@ -428,7 +422,7 @@ class Swipe extends GestureMatcher {
.append(", mBaseY: ")
.append(mBaseY)
.append(", mGestureDetectionThreshold:")
- .append(mGestureDetectionThreshold)
+ .append(mGestureDetectionThresholdPixels)
.append(", mMinPixelsBetweenSamplesX:")
.append(mMinPixelsBetweenSamplesX)
.append(", mMinPixelsBetweenSamplesY:")
diff --git a/services/appprediction/java/com/android/server/appprediction/AppPredictionPerUserService.java b/services/appprediction/java/com/android/server/appprediction/AppPredictionPerUserService.java
index 4f49fb7578a1..48d976b1504d 100644
--- a/services/appprediction/java/com/android/server/appprediction/AppPredictionPerUserService.java
+++ b/services/appprediction/java/com/android/server/appprediction/AppPredictionPerUserService.java
@@ -32,11 +32,14 @@ import android.os.RemoteCallbackList;
import android.os.RemoteException;
import android.service.appprediction.AppPredictionService;
import android.util.ArrayMap;
+import android.util.ArraySet;
import android.util.Slog;
import com.android.internal.annotations.GuardedBy;
import com.android.server.infra.AbstractPerUserSystemService;
+import java.util.Map;
+import java.util.Set;
import java.util.function.Consumer;
/**
@@ -48,9 +51,13 @@ public class AppPredictionPerUserService extends
private static final String TAG = AppPredictionPerUserService.class.getSimpleName();
- @Nullable
+ /**
+ * A lookup of remote services in respect to their {@link ComponentName}.
+ */
+ @NonNull
@GuardedBy("mLock")
- private RemoteAppPredictionService mRemoteService;
+ private final ArrayMap<ComponentName, RemoteAppPredictionService> mRemoteServices =
+ new ArrayMap<>();
/**
* When {@code true}, remote service died but service state is kept so it's restored after
@@ -92,7 +99,7 @@ public class AppPredictionPerUserService extends
if (enabledChanged) {
if (!isEnabledLocked()) {
// Clear the remote service for the next call
- mRemoteService = null;
+ mRemoteServices.clear();
}
}
return enabledChanged;
@@ -104,14 +111,14 @@ public class AppPredictionPerUserService extends
@GuardedBy("mLock")
public void onCreatePredictionSessionLocked(@NonNull AppPredictionContext context,
@NonNull AppPredictionSessionId sessionId) {
- final RemoteAppPredictionService service = getRemoteServiceLocked();
+ if (!mSessionInfos.containsKey(sessionId)) {
+ mSessionInfos.put(sessionId, new AppPredictionSessionInfo(sessionId, context,
+ resolveComponentName(context), this::removeAppPredictionSessionInfo));
+ }
+ final RemoteAppPredictionService service = getRemoteServiceLocked(
+ getComponentName(sessionId));
if (service != null) {
service.onCreatePredictionSession(context, sessionId);
-
- if (!mSessionInfos.containsKey(sessionId)) {
- mSessionInfos.put(sessionId, new AppPredictionSessionInfo(sessionId, context,
- this::removeAppPredictionSessionInfo));
- }
}
}
@@ -121,7 +128,8 @@ public class AppPredictionPerUserService extends
@GuardedBy("mLock")
public void notifyAppTargetEventLocked(@NonNull AppPredictionSessionId sessionId,
@NonNull AppTargetEvent event) {
- final RemoteAppPredictionService service = getRemoteServiceLocked();
+ final RemoteAppPredictionService service = getRemoteServiceLocked(
+ getComponentName(sessionId));
if (service != null) {
service.notifyAppTargetEvent(sessionId, event);
}
@@ -133,7 +141,8 @@ public class AppPredictionPerUserService extends
@GuardedBy("mLock")
public void notifyLaunchLocationShownLocked(@NonNull AppPredictionSessionId sessionId,
@NonNull String launchLocation, @NonNull ParceledListSlice targetIds) {
- final RemoteAppPredictionService service = getRemoteServiceLocked();
+ final RemoteAppPredictionService service = getRemoteServiceLocked(
+ getComponentName(sessionId));
if (service != null) {
service.notifyLaunchLocationShown(sessionId, launchLocation, targetIds);
}
@@ -145,7 +154,8 @@ public class AppPredictionPerUserService extends
@GuardedBy("mLock")
public void sortAppTargetsLocked(@NonNull AppPredictionSessionId sessionId,
@NonNull ParceledListSlice targets, @NonNull IPredictionCallback callback) {
- final RemoteAppPredictionService service = getRemoteServiceLocked();
+ final RemoteAppPredictionService service = getRemoteServiceLocked(
+ getComponentName(sessionId));
if (service != null) {
service.sortAppTargets(sessionId, targets, callback);
}
@@ -157,7 +167,8 @@ public class AppPredictionPerUserService extends
@GuardedBy("mLock")
public void registerPredictionUpdatesLocked(@NonNull AppPredictionSessionId sessionId,
@NonNull IPredictionCallback callback) {
- final RemoteAppPredictionService service = getRemoteServiceLocked();
+ final RemoteAppPredictionService service = getRemoteServiceLocked(
+ getComponentName(sessionId));
if (service != null) {
service.registerPredictionUpdates(sessionId, callback);
@@ -174,7 +185,8 @@ public class AppPredictionPerUserService extends
@GuardedBy("mLock")
public void unregisterPredictionUpdatesLocked(@NonNull AppPredictionSessionId sessionId,
@NonNull IPredictionCallback callback) {
- final RemoteAppPredictionService service = getRemoteServiceLocked();
+ final RemoteAppPredictionService service = getRemoteServiceLocked(
+ getComponentName(sessionId));
if (service != null) {
service.unregisterPredictionUpdates(sessionId, callback);
@@ -190,7 +202,8 @@ public class AppPredictionPerUserService extends
*/
@GuardedBy("mLock")
public void requestPredictionUpdateLocked(@NonNull AppPredictionSessionId sessionId) {
- final RemoteAppPredictionService service = getRemoteServiceLocked();
+ final RemoteAppPredictionService service = getRemoteServiceLocked(
+ getComponentName(sessionId));
if (service != null) {
service.requestPredictionUpdate(sessionId);
}
@@ -201,7 +214,8 @@ public class AppPredictionPerUserService extends
*/
@GuardedBy("mLock")
public void onDestroyPredictionSessionLocked(@NonNull AppPredictionSessionId sessionId) {
- final RemoteAppPredictionService service = getRemoteServiceLocked();
+ final RemoteAppPredictionService service = getRemoteServiceLocked(
+ getComponentName(sessionId));
if (service != null) {
service.onDestroyPredictionSession(sessionId);
@@ -229,7 +243,7 @@ public class AppPredictionPerUserService extends
synchronized (mLock) {
if (mZombie) {
// Sanity check - shouldn't happen
- if (mRemoteService == null) {
+ if (mRemoteServices.isEmpty()) {
Slog.w(TAG, "Cannot resurrect sessions because remote service is null");
return;
}
@@ -266,22 +280,30 @@ public class AppPredictionPerUserService extends
}
private void destroyAndRebindRemoteService() {
- if (mRemoteService == null) {
+ if (mRemoteServices.isEmpty()) {
return;
}
if (isDebug()) {
Slog.d(TAG, "Destroying the old remote service.");
}
- mRemoteService.destroy();
- mRemoteService = null;
+ final Set<Map.Entry<ComponentName, RemoteAppPredictionService>> services =
+ new ArraySet<>(mRemoteServices.entrySet());
+ mRemoteServices.clear();
+ services.stream().forEach(entry -> destroyAndRebindRemoteService(
+ entry.getKey(), entry.getValue()));
+ }
- mRemoteService = getRemoteServiceLocked();
- if (mRemoteService != null) {
+ private void destroyAndRebindRemoteService(
+ @NonNull final ComponentName component,
+ @NonNull final RemoteAppPredictionService service) {
+ service.destroy();
+ final RemoteAppPredictionService newService = getRemoteServiceLocked(component);
+ if (newService != null) {
if (isDebug()) {
Slog.d(TAG, "Rebinding to the new remote service.");
}
- mRemoteService.reconnect();
+ newService.reconnect();
}
}
@@ -292,7 +314,7 @@ public class AppPredictionPerUserService extends
private void resurrectSessionsLocked() {
final int numSessions = mSessionInfos.size();
if (isDebug()) {
- Slog.d(TAG, "Resurrecting remote service (" + mRemoteService + ") on "
+ Slog.d(TAG, "Resurrecting remote service (" + mRemoteServices + ") on "
+ numSessions + " sessions.");
}
@@ -310,32 +332,49 @@ public class AppPredictionPerUserService extends
}
}
- @GuardedBy("mLock")
@Nullable
- private RemoteAppPredictionService getRemoteServiceLocked() {
- if (mRemoteService == null) {
- final String serviceName = getComponentNameLocked();
- if (serviceName == null) {
- if (mMaster.verbose) {
- Slog.v(TAG, "getRemoteServiceLocked(): not set");
- }
- return null;
+ private ComponentName resolveComponentName(@NonNull final AppPredictionContext context) {
+ // TODO: add logic to determine serviceName based on context
+ final String serviceName = getComponentNameLocked();
+ if (serviceName == null) {
+ if (mMaster.verbose) {
+ Slog.v(TAG, "getRemoteServiceLocked(): not set, context = " + context);
}
- ComponentName serviceComponent = ComponentName.unflattenFromString(serviceName);
+ return null;
+ }
+ return ComponentName.unflattenFromString(serviceName);
+ }
+
+ @Nullable
+ private ComponentName getComponentName(@NonNull final AppPredictionSessionId sessionId) {
+ AppPredictionSessionInfo sessionInfo = mSessionInfos.get(sessionId);
+ return sessionInfo == null ? null : sessionInfo.mComponentName;
+ }
- mRemoteService = new RemoteAppPredictionService(getContext(),
+ @GuardedBy("mLock")
+ @Nullable
+ private RemoteAppPredictionService getRemoteServiceLocked(
+ @Nullable final ComponentName serviceComponent) {
+ if (serviceComponent == null) return null;
+ if (!mRemoteServices.containsKey(serviceComponent)) {
+ mRemoteServices.put(serviceComponent, new RemoteAppPredictionService(getContext(),
AppPredictionService.SERVICE_INTERFACE, serviceComponent, mUserId, this,
- mMaster.isBindInstantServiceAllowed(), mMaster.verbose);
+ mMaster.isBindInstantServiceAllowed(), mMaster.verbose));
}
- return mRemoteService;
+ return mRemoteServices.get(serviceComponent);
}
private static final class AppPredictionSessionInfo {
private static final boolean DEBUG = false; // Do not submit with true
+ @NonNull
private final AppPredictionSessionId mSessionId;
+ @NonNull
private final AppPredictionContext mPredictionContext;
+ @Nullable
+ private final ComponentName mComponentName;
+ @NonNull
private final Consumer<AppPredictionSessionId> mRemoveSessionInfoAction;
private final RemoteCallbackList<IPredictionCallback> mCallbacks =
@@ -352,13 +391,17 @@ public class AppPredictionPerUserService extends
}
};
- AppPredictionSessionInfo(AppPredictionSessionId id, AppPredictionContext predictionContext,
- Consumer<AppPredictionSessionId> removeSessionInfoAction) {
+ AppPredictionSessionInfo(
+ @NonNull final AppPredictionSessionId id,
+ @NonNull final AppPredictionContext predictionContext,
+ @Nullable final ComponentName componentName,
+ @NonNull final Consumer<AppPredictionSessionId> removeSessionInfoAction) {
if (DEBUG) {
Slog.d(TAG, "Creating AppPredictionSessionInfo for session Id=" + id);
}
mSessionId = id;
mPredictionContext = predictionContext;
+ mComponentName = componentName;
mRemoveSessionInfoAction = removeSessionInfoAction;
}
@@ -390,8 +433,8 @@ public class AppPredictionPerUserService extends
void resurrectSessionLocked(AppPredictionPerUserService service) {
int callbackCount = mCallbacks.getRegisteredCallbackCount();
if (DEBUG) {
- Slog.d(TAG, "Resurrecting remote service (" + service.getRemoteServiceLocked()
- + ") for session Id=" + mSessionId + " and "
+ Slog.d(TAG, "Resurrecting remote service (" + service.getRemoteServiceLocked(
+ mComponentName) + ") for session Id=" + mSessionId + " and "
+ callbackCount + " callbacks.");
}
service.onCreatePredictionSessionLocked(mPredictionContext, mSessionId);
diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
index 97f27caaad48..7151d2b86e83 100644
--- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
+++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
@@ -98,7 +98,6 @@ import android.util.Xml;
import android.util.proto.ProtoOutputStream;
import android.view.Display;
import android.view.View;
-import android.view.WindowManager;
import android.widget.RemoteViews;
import com.android.internal.R;
@@ -282,8 +281,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
}
private void computeMaximumWidgetBitmapMemory() {
- WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
- Display display = wm.getDefaultDisplay();
+ Display display = mContext.getDisplay();
Point size = new Point();
display.getRealSize(size);
// Cap memory usage at 1.5 times the size of the display
diff --git a/services/art-profile b/services/art-profile
index a712d2b5e414..73a4208d25ba 100644
--- a/services/art-profile
+++ b/services/art-profile
@@ -1,121 +1,131 @@
-PLandroid/app/usage/UsageStatsManagerInternal;-><init>()V
+HSPLandroid/app/usage/UsageStatsManagerInternal;-><init>()V
PLandroid/content/pm/PackageManagerInternal$PackageListObserver;->onPackageChanged(Ljava/lang/String;I)V
HSPLandroid/content/pm/PackageManagerInternal;-><init>()V
-PLandroid/hardware/authsecret/V1_0/IAuthSecret$Proxy;-><init>(Landroid/os/IHwBinder;)V
-PLandroid/hardware/authsecret/V1_0/IAuthSecret$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/authsecret/V1_0/IAuthSecret$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HSPLandroid/hardware/authsecret/V1_0/IAuthSecret$Proxy;->interfaceChain()Ljava/util/ArrayList;
PLandroid/hardware/authsecret/V1_0/IAuthSecret$Proxy;->primaryUserCredential(Ljava/util/ArrayList;)V
-PLandroid/hardware/authsecret/V1_0/IAuthSecret;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/authsecret/V1_0/IAuthSecret;
-PLandroid/hardware/authsecret/V1_0/IAuthSecret;->getService()Landroid/hardware/authsecret/V1_0/IAuthSecret;
-PLandroid/hardware/authsecret/V1_0/IAuthSecret;->getService(Ljava/lang/String;)Landroid/hardware/authsecret/V1_0/IAuthSecret;
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint$Proxy;-><init>(Landroid/os/IHwBinder;)V
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint$Proxy;->asBinder()Landroid/os/IHwBinder;
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint$Proxy;->authenticate(JI)I
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint$Proxy;->cancel()I
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint$Proxy;->enumerate()I
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint$Proxy;->getAuthenticatorId()J
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint$Proxy;->interfaceChain()Ljava/util/ArrayList;
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint$Proxy;->setActiveGroup(ILjava/lang/String;)I
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint$Proxy;->setNotify(Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprintClientCallback;)J
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint;
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint;->getService()Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint;
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint;->getService(Ljava/lang/String;)Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint;
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprintClientCallback$Stub;-><init>()V
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprintClientCallback$Stub;->asBinder()Landroid/os/IHwBinder;
-PLandroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprintClientCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
-PLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;-><init>(Landroid/os/IHwBinder;)V
-PLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;->hasHDRDisplay()Landroid/hardware/configstore/V1_0/OptionalBool;
-PLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;->hasWideColorDisplay()Landroid/hardware/configstore/V1_0/OptionalBool;
-PLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;->interfaceChain()Ljava/util/ArrayList;
-PLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;
-PLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;->getService()Landroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;
-PLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;->getService(Ljava/lang/String;)Landroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;
-PLandroid/hardware/configstore/V1_0/OptionalBool;-><init>()V
-PLandroid/hardware/configstore/V1_0/OptionalBool;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
-PLandroid/hardware/configstore/V1_0/OptionalBool;->readFromParcel(Landroid/os/HwParcel;)V
-PLandroid/hardware/health/V1_0/HealthInfo;-><init>()V
-PLandroid/hardware/health/V1_0/HealthInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
-PLandroid/hardware/health/V2_0/DiskStats;-><init>()V
-PLandroid/hardware/health/V2_0/DiskStats;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
-PLandroid/hardware/health/V2_0/HealthInfo;-><init>()V
-PLandroid/hardware/health/V2_0/HealthInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
-PLandroid/hardware/health/V2_0/HealthInfo;->readFromParcel(Landroid/os/HwParcel;)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
+HSPLandroid/hardware/authsecret/V1_0/IAuthSecret;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/authsecret/V1_0/IAuthSecret;
+HSPLandroid/hardware/authsecret/V1_0/IAuthSecret;->getService()Landroid/hardware/authsecret/V1_0/IAuthSecret;
+HSPLandroid/hardware/authsecret/V1_0/IAuthSecret;->getService(Ljava/lang/String;)Landroid/hardware/authsecret/V1_0/IAuthSecret;
+HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->asBinder()Landroid/os/IHwBinder;
+HPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->authenticate(J)I
+HPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->cancel()I
+PLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->enumerate()I
+PLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->generateChallenge(I)Landroid/hardware/biometrics/face/V1_0/OptionalUint64;
+HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->getAuthenticatorId()Landroid/hardware/biometrics/face/V1_0/OptionalUint64;
+HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->interfaceChain()Ljava/util/ArrayList;
+PLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->resetLockout(Ljava/util/ArrayList;)I
+PLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->revokeChallenge()I
+HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->setActiveUser(ILjava/lang/String;)I
+HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;->setCallback(Landroid/hardware/biometrics/face/V1_0/IBiometricsFaceClientCallback;)Landroid/hardware/biometrics/face/V1_0/OptionalUint64;
+HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
+HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace;->getService()Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
+HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFace;->getService(Ljava/lang/String;)Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
+HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFaceClientCallback$Stub;-><init>()V
+HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFaceClientCallback$Stub;->asBinder()Landroid/os/IHwBinder;
+HSPLandroid/hardware/biometrics/face/V1_0/IBiometricsFaceClientCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
+HSPLandroid/hardware/biometrics/face/V1_0/OptionalUint64;-><init>()V
+HSPLandroid/hardware/biometrics/face/V1_0/OptionalUint64;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/biometrics/face/V1_0/OptionalUint64;->readFromParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HSPLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;->hasHDRDisplay()Landroid/hardware/configstore/V1_0/OptionalBool;
+HSPLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;->hasWideColorDisplay()Landroid/hardware/configstore/V1_0/OptionalBool;
+HSPLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;
+HSPLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;->getService()Landroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;
+HSPLandroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;->getService(Ljava/lang/String;)Landroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;
+HSPLandroid/hardware/configstore/V1_0/OptionalBool;-><init>()V
+HSPLandroid/hardware/configstore/V1_0/OptionalBool;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/configstore/V1_0/OptionalBool;->readFromParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/health/V1_0/HealthInfo;-><init>()V
+HSPLandroid/hardware/health/V1_0/HealthInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/health/V2_0/DiskStats;-><init>()V
+HSPLandroid/hardware/health/V2_0/DiskStats;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/health/V2_0/HealthInfo;-><init>()V
+HSPLandroid/hardware/health/V2_0/HealthInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/health/V2_0/HealthInfo;->readFromParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/health/V2_0/IHealth$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HSPLandroid/hardware/health/V2_0/IHealth$Proxy;->asBinder()Landroid/os/IHwBinder;
+HSPLandroid/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;->getChargeCounter(Landroid/hardware/health/V2_0/IHealth$getChargeCounterCallback;)V
PLandroid/hardware/health/V2_0/IHealth$Proxy;->getCurrentAverage(Landroid/hardware/health/V2_0/IHealth$getCurrentAverageCallback;)V
PLandroid/hardware/health/V2_0/IHealth$Proxy;->getEnergyCounter(Landroid/hardware/health/V2_0/IHealth$getEnergyCounterCallback;)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_0/IHealthInfoCallback$Stub;-><init>()V
-PLandroid/hardware/health/V2_0/IHealthInfoCallback$Stub;->asBinder()Landroid/os/IHwBinder;
-PLandroid/hardware/health/V2_0/IHealthInfoCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
-PLandroid/hardware/health/V2_0/StorageAttribute;-><init>()V
-PLandroid/hardware/health/V2_0/StorageAttribute;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
-PLandroid/hardware/health/V2_0/StorageInfo;-><init>()V
-PLandroid/hardware/health/V2_0/StorageInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
-PLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;-><init>(Landroid/os/IHwBinder;)V
-PLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;->interfaceChain()Ljava/util/ArrayList;
-PLandroid/hardware/oemlock/V1_0/IOemLock;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/oemlock/V1_0/IOemLock;
-PLandroid/hardware/oemlock/V1_0/IOemLock;->getService()Landroid/hardware/oemlock/V1_0/IOemLock;
-PLandroid/hardware/oemlock/V1_0/IOemLock;->getService(Ljava/lang/String;)Landroid/hardware/oemlock/V1_0/IOemLock;
-PLandroid/hardware/usb/V1_0/IUsb$Proxy;-><init>(Landroid/os/IHwBinder;)V
-PLandroid/hardware/usb/V1_0/IUsb$Proxy;->interfaceChain()Ljava/util/ArrayList;
-PLandroid/hardware/usb/V1_0/IUsb$Proxy;->linkToDeath(Landroid/os/IHwBinder$DeathRecipient;J)Z
-PLandroid/hardware/usb/V1_0/IUsb$Proxy;->queryPortStatus()V
-PLandroid/hardware/usb/V1_0/IUsb$Proxy;->setCallback(Landroid/hardware/usb/V1_0/IUsbCallback;)V
-PLandroid/hardware/usb/V1_0/IUsb;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/usb/V1_0/IUsb;
-PLandroid/hardware/usb/V1_0/IUsb;->getService()Landroid/hardware/usb/V1_0/IUsb;
-PLandroid/hardware/usb/V1_0/IUsb;->getService(Ljava/lang/String;)Landroid/hardware/usb/V1_0/IUsb;
-PLandroid/hardware/usb/V1_0/PortStatus;-><init>()V
-PLandroid/hardware/usb/V1_0/PortStatus;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
-PLandroid/hardware/usb/V1_1/PortStatus_1_1;-><init>()V
-PLandroid/hardware/usb/V1_1/PortStatus_1_1;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
-PLandroid/hardware/usb/V1_1/PortStatus_1_1;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
-PLandroid/hardware/usb/V1_2/IUsbCallback$Stub;-><init>()V
-PLandroid/hardware/usb/V1_2/IUsbCallback$Stub;->asBinder()Landroid/os/IHwBinder;
-PLandroid/hardware/usb/V1_2/IUsbCallback$Stub;->interfaceChain()Ljava/util/ArrayList;
-PLandroid/hardware/usb/V1_2/IUsbCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
-PLandroid/hardware/weaver/V1_0/IWeaver$Proxy;-><init>(Landroid/os/IHwBinder;)V
-PLandroid/hardware/weaver/V1_0/IWeaver$Proxy;->getConfig(Landroid/hardware/weaver/V1_0/IWeaver$getConfigCallback;)V
-PLandroid/hardware/weaver/V1_0/IWeaver$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/health/V2_0/IHealth$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/health/V2_0/IHealth$Proxy;->registerCallback(Landroid/hardware/health/V2_0/IHealthInfoCallback;)I
+HSPLandroid/hardware/health/V2_0/IHealth$Proxy;->update()I
+HSPLandroid/hardware/health/V2_0/IHealth;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/health/V2_0/IHealth;
+HSPLandroid/hardware/health/V2_0/IHealth;->getService(Ljava/lang/String;Z)Landroid/hardware/health/V2_0/IHealth;
+HSPLandroid/hardware/health/V2_0/IHealthInfoCallback$Stub;-><init>()V
+HSPLandroid/hardware/health/V2_0/IHealthInfoCallback$Stub;->asBinder()Landroid/os/IHwBinder;
+HSPLandroid/hardware/health/V2_0/IHealthInfoCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
+HSPLandroid/hardware/health/V2_0/StorageAttribute;-><init>()V
+HSPLandroid/hardware/health/V2_0/StorageAttribute;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/health/V2_0/StorageInfo;-><init>()V
+HSPLandroid/hardware/health/V2_0/StorageInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HSPLandroid/hardware/oemlock/V1_0/IOemLock$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/oemlock/V1_0/IOemLock;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/oemlock/V1_0/IOemLock;
+HSPLandroid/hardware/oemlock/V1_0/IOemLock;->getService()Landroid/hardware/oemlock/V1_0/IOemLock;
+HSPLandroid/hardware/oemlock/V1_0/IOemLock;->getService(Ljava/lang/String;)Landroid/hardware/oemlock/V1_0/IOemLock;
+HSPLandroid/hardware/usb/V1_0/IUsb$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HSPLandroid/hardware/usb/V1_0/IUsb$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/usb/V1_0/IUsb$Proxy;->linkToDeath(Landroid/os/IHwBinder$DeathRecipient;J)Z
+HSPLandroid/hardware/usb/V1_0/IUsb$Proxy;->queryPortStatus()V
+HSPLandroid/hardware/usb/V1_0/IUsb$Proxy;->setCallback(Landroid/hardware/usb/V1_0/IUsbCallback;)V
+HSPLandroid/hardware/usb/V1_0/IUsb;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/usb/V1_0/IUsb;
+HSPLandroid/hardware/usb/V1_0/IUsb;->getService()Landroid/hardware/usb/V1_0/IUsb;
+HSPLandroid/hardware/usb/V1_0/IUsb;->getService(Ljava/lang/String;)Landroid/hardware/usb/V1_0/IUsb;
+HSPLandroid/hardware/usb/V1_0/PortStatus;-><init>()V
+HSPLandroid/hardware/usb/V1_0/PortStatus;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/usb/V1_1/PortStatus_1_1;-><init>()V
+HSPLandroid/hardware/usb/V1_1/PortStatus_1_1;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/usb/V1_2/IUsbCallback$Stub;-><init>()V
+HSPLandroid/hardware/usb/V1_2/IUsbCallback$Stub;->asBinder()Landroid/os/IHwBinder;
+HSPLandroid/hardware/usb/V1_2/IUsbCallback$Stub;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hardware/usb/V1_2/IUsbCallback$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
+HSPLandroid/hardware/usb/V1_2/PortStatus;-><init>()V
+HSPLandroid/hardware/usb/V1_2/PortStatus;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/usb/V1_2/PortStatus;->readVectorFromParcel(Landroid/os/HwParcel;)Ljava/util/ArrayList;
+HSPLandroid/hardware/weaver/V1_0/IWeaver$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HSPLandroid/hardware/weaver/V1_0/IWeaver$Proxy;->getConfig(Landroid/hardware/weaver/V1_0/IWeaver$getConfigCallback;)V
+HSPLandroid/hardware/weaver/V1_0/IWeaver$Proxy;->interfaceChain()Ljava/util/ArrayList;
PLandroid/hardware/weaver/V1_0/IWeaver$Proxy;->read(ILjava/util/ArrayList;Landroid/hardware/weaver/V1_0/IWeaver$readCallback;)V
-PLandroid/hardware/weaver/V1_0/IWeaver;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/weaver/V1_0/IWeaver;
-PLandroid/hardware/weaver/V1_0/IWeaver;->getService()Landroid/hardware/weaver/V1_0/IWeaver;
-PLandroid/hardware/weaver/V1_0/IWeaver;->getService(Ljava/lang/String;)Landroid/hardware/weaver/V1_0/IWeaver;
-PLandroid/hardware/weaver/V1_0/WeaverConfig;-><init>()V
-PLandroid/hardware/weaver/V1_0/WeaverConfig;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
-PLandroid/hardware/weaver/V1_0/WeaverConfig;->readFromParcel(Landroid/os/HwParcel;)V
+HSPLandroid/hardware/weaver/V1_0/IWeaver;->asInterface(Landroid/os/IHwBinder;)Landroid/hardware/weaver/V1_0/IWeaver;
+HSPLandroid/hardware/weaver/V1_0/IWeaver;->getService()Landroid/hardware/weaver/V1_0/IWeaver;
+HSPLandroid/hardware/weaver/V1_0/IWeaver;->getService(Ljava/lang/String;)Landroid/hardware/weaver/V1_0/IWeaver;
+HSPLandroid/hardware/weaver/V1_0/WeaverConfig;-><init>()V
+HSPLandroid/hardware/weaver/V1_0/WeaverConfig;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/hardware/weaver/V1_0/WeaverConfig;->readFromParcel(Landroid/os/HwParcel;)V
PLandroid/hardware/weaver/V1_0/WeaverReadResponse;-><init>()V
PLandroid/hardware/weaver/V1_0/WeaverReadResponse;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
PLandroid/hardware/weaver/V1_0/WeaverReadResponse;->readFromParcel(Landroid/os/HwParcel;)V
-PLandroid/hidl/manager/V1_0/IServiceManager$InstanceDebugInfo;-><init>()V
-HPLandroid/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;
-PLandroid/hidl/manager/V1_0/IServiceManager$Proxy;-><init>(Landroid/os/IHwBinder;)V
-PLandroid/hidl/manager/V1_0/IServiceManager$Proxy;->debugDump()Ljava/util/ArrayList;
-PLandroid/hidl/manager/V1_0/IServiceManager$Proxy;->getTransport(Ljava/lang/String;Ljava/lang/String;)B
-PLandroid/hidl/manager/V1_0/IServiceManager$Proxy;->interfaceChain()Ljava/util/ArrayList;
-PLandroid/hidl/manager/V1_0/IServiceManager$Proxy;->linkToDeath(Landroid/os/IHwBinder$DeathRecipient;J)Z
-PLandroid/hidl/manager/V1_0/IServiceManager$Proxy;->registerForNotifications(Ljava/lang/String;Ljava/lang/String;Landroid/hidl/manager/V1_0/IServiceNotification;)Z
-PLandroid/hidl/manager/V1_0/IServiceManager;->asInterface(Landroid/os/IHwBinder;)Landroid/hidl/manager/V1_0/IServiceManager;
-PLandroid/hidl/manager/V1_0/IServiceManager;->getService()Landroid/hidl/manager/V1_0/IServiceManager;
-PLandroid/hidl/manager/V1_0/IServiceManager;->getService(Ljava/lang/String;)Landroid/hidl/manager/V1_0/IServiceManager;
-PLandroid/hidl/manager/V1_0/IServiceNotification$Stub;-><init>()V
-PLandroid/hidl/manager/V1_0/IServiceNotification$Stub;->asBinder()Landroid/os/IHwBinder;
-PLandroid/hidl/manager/V1_0/IServiceNotification$Stub;->onTransact(ILandroid/os/HwParcel;Landroid/os/HwParcel;I)V
-PLandroid/hidl/manager/V1_2/IServiceManager$Proxy;-><init>(Landroid/os/IHwBinder;)V
-PLandroid/hidl/manager/V1_2/IServiceManager$Proxy;->interfaceChain()Ljava/util/ArrayList;
-PLandroid/hidl/manager/V1_2/IServiceManager$Proxy;->linkToDeath(Landroid/os/IHwBinder$DeathRecipient;J)Z
-PLandroid/hidl/manager/V1_2/IServiceManager$Proxy;->listManifestByInterface(Ljava/lang/String;)Ljava/util/ArrayList;
-PLandroid/hidl/manager/V1_2/IServiceManager$Proxy;->registerForNotifications(Ljava/lang/String;Ljava/lang/String;Landroid/hidl/manager/V1_0/IServiceNotification;)Z
-PLandroid/hidl/manager/V1_2/IServiceManager;->asInterface(Landroid/os/IHwBinder;)Landroid/hidl/manager/V1_2/IServiceManager;
-PLandroid/hidl/manager/V1_2/IServiceManager;->getService()Landroid/hidl/manager/V1_2/IServiceManager;
-PLandroid/hidl/manager/V1_2/IServiceManager;->getService(Ljava/lang/String;)Landroid/hidl/manager/V1_2/IServiceManager;
+HSPLandroid/hidl/manager/V1_0/IServiceManager$InstanceDebugInfo;-><init>()V
+HSPLandroid/hidl/manager/V1_0/IServiceManager$InstanceDebugInfo;->readEmbeddedFromParcel(Landroid/os/HwParcel;Landroid/os/HwBlob;J)V
+HSPLandroid/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
+HSPLandroid/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
+HSPLandroid/hidl/manager/V1_0/IServiceManager$Proxy;->interfaceChain()Ljava/util/ArrayList;
+HSPLandroid/hidl/manager/V1_0/IServiceManager$Proxy;->linkToDeath(Landroid/os/IHwBinder$DeathRecipient;J)Z
+HSPLandroid/hidl/manager/V1_0/IServiceManager$Proxy;->registerForNotifications(Ljava/lang/String;Ljava/lang/String;Landroid/hidl/manager/V1_0/IServiceNotification;)Z
+HSPLandroid/hidl/manager/V1_0/IServiceManager;->asInterface(Landroid/os/IHwBinder;)Landroid/hidl/manager/V1_0/IServiceManager;
+HSPLandroid/hidl/manager/V1_0/IServiceManager;->getService()Landroid/hidl/manager/V1_0/IServiceManager;
+HSPLandroid/hidl/manager/V1_0/IServiceManager;->getService(Ljava/lang/String;)Landroid/hidl/manager/V1_0/IServiceManager;
+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/hidl/manager/V1_2/IServiceManager$Proxy;-><init>(Landroid/os/IHwBinder;)V
+HSPLandroid/hidl/manager/V1_2/IServiceManager$Proxy;->interfaceChain()Ljava/util/ArrayList;
+PLandroid/hidl/manager/V1_2/IServiceManager$Proxy;->interfaceDescriptor()Ljava/lang/String;
+HSPLandroid/hidl/manager/V1_2/IServiceManager$Proxy;->linkToDeath(Landroid/os/IHwBinder$DeathRecipient;J)Z
+HSPLandroid/hidl/manager/V1_2/IServiceManager$Proxy;->listManifestByInterface(Ljava/lang/String;)Ljava/util/ArrayList;
+HSPLandroid/hidl/manager/V1_2/IServiceManager$Proxy;->registerForNotifications(Ljava/lang/String;Ljava/lang/String;Landroid/hidl/manager/V1_0/IServiceNotification;)Z
+PLandroid/hidl/manager/V1_2/IServiceManager$Proxy;->toString()Ljava/lang/String;
+HSPLandroid/hidl/manager/V1_2/IServiceManager;->asInterface(Landroid/os/IHwBinder;)Landroid/hidl/manager/V1_2/IServiceManager;
+HSPLandroid/hidl/manager/V1_2/IServiceManager;->getService()Landroid/hidl/manager/V1_2/IServiceManager;
+HSPLandroid/hidl/manager/V1_2/IServiceManager;->getService(Ljava/lang/String;)Landroid/hidl/manager/V1_2/IServiceManager;
PLandroid/net/-$$Lambda$IpMemoryStore$LPW97BoNSL4rh_RVPiAHfCbmGHU;-><init>(Ljava/util/function/Consumer;)V
PLandroid/net/-$$Lambda$IpMemoryStore$LPW97BoNSL4rh_RVPiAHfCbmGHU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
PLandroid/net/-$$Lambda$IpMemoryStore$pFctTFAvh_Nxb_aTb0gjNsixGeM;-><init>(Ljava/util/function/Consumer;)V
@@ -130,39 +140,41 @@ PLandroid/net/-$$Lambda$IpMemoryStoreClient$OI4Zw2djhZoG0D4IE2ujC0Iv6G4;-><init>
PLandroid/net/-$$Lambda$IpMemoryStoreClient$OI4Zw2djhZoG0D4IE2ujC0Iv6G4;->accept(Ljava/lang/Object;)V
PLandroid/net/-$$Lambda$NetworkStackClient$8Y7GJyozK7_xixdmgfHS4QSif-A;-><init>(Landroid/net/Network;Ljava/lang/String;Landroid/net/INetworkMonitorCallbacks;)V
PLandroid/net/-$$Lambda$NetworkStackClient$8Y7GJyozK7_xixdmgfHS4QSif-A;->onNetworkStackConnected(Landroid/net/INetworkStackConnector;)V
-PLandroid/net/-$$Lambda$NetworkStackClient$EsrnifYD8E-HxTwVQsf45HJKvtM;-><init>(Ljava/lang/String;Landroid/net/ip/IIpClientCallbacks;)V
+HSPLandroid/net/-$$Lambda$NetworkStackClient$EsrnifYD8E-HxTwVQsf45HJKvtM;-><init>(Ljava/lang/String;Landroid/net/ip/IIpClientCallbacks;)V
PLandroid/net/-$$Lambda$NetworkStackClient$EsrnifYD8E-HxTwVQsf45HJKvtM;->onNetworkStackConnected(Landroid/net/INetworkStackConnector;)V
PLandroid/net/-$$Lambda$NetworkStackClient$qInwLPrclXOFvKSYRjcCaCSeEhw;-><init>(Landroid/net/IIpMemoryStoreCallbacks;)V
PLandroid/net/-$$Lambda$NetworkStackClient$qInwLPrclXOFvKSYRjcCaCSeEhw;->onNetworkStackConnected(Landroid/net/INetworkStackConnector;)V
HSPLandroid/net/ConnectivityModuleConnector$DependenciesImpl;-><init>()V
HSPLandroid/net/ConnectivityModuleConnector$DependenciesImpl;-><init>(Landroid/net/ConnectivityModuleConnector$1;)V
-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$1;)V
+HSPLandroid/net/ConnectivityModuleConnector$DependenciesImpl;->getModuleServiceIntent(Landroid/content/pm/PackageManager;Ljava/lang/String;Ljava/lang/String;Z)Landroid/content/Intent;
+HSPLandroid/net/ConnectivityModuleConnector$ModuleServiceConnection;-><init>(Landroid/net/ConnectivityModuleConnector;Ljava/lang/String;Landroid/net/ConnectivityModuleConnector$ModuleServiceCallback;)V
+HSPLandroid/net/ConnectivityModuleConnector$ModuleServiceConnection;-><init>(Landroid/net/ConnectivityModuleConnector;Ljava/lang/String;Landroid/net/ConnectivityModuleConnector$ModuleServiceCallback;Landroid/net/ConnectivityModuleConnector$1;)V
PLandroid/net/ConnectivityModuleConnector$ModuleServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
HSPLandroid/net/ConnectivityModuleConnector;-><clinit>()V
HSPLandroid/net/ConnectivityModuleConnector;-><init>()V
HSPLandroid/net/ConnectivityModuleConnector;-><init>(Landroid/net/ConnectivityModuleConnector$Dependencies;)V
-PLandroid/net/ConnectivityModuleConnector;->access$100(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;Ljava/lang/String;)V
+HSPLandroid/net/ConnectivityModuleConnector;->access$100(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;Ljava/lang/String;)V
PLandroid/net/ConnectivityModuleConnector;->access$300(Landroid/net/ConnectivityModuleConnector;Ljava/lang/String;)V
-PLandroid/net/ConnectivityModuleConnector;->checkModuleServicePermission(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;Ljava/lang/String;)V
+HSPLandroid/net/ConnectivityModuleConnector;->checkModuleServicePermission(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;Ljava/lang/String;)V
HSPLandroid/net/ConnectivityModuleConnector;->getInstance()Landroid/net/ConnectivityModuleConnector;
-PLandroid/net/ConnectivityModuleConnector;->init(Landroid/content/Context;)V
-PLandroid/net/ConnectivityModuleConnector;->log(Ljava/lang/String;)V
+HSPLandroid/net/ConnectivityModuleConnector;->init(Landroid/content/Context;)V
+HSPLandroid/net/ConnectivityModuleConnector;->log(Ljava/lang/String;)V
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
+HSPLandroid/net/ConnectivityModuleConnector;->registerHealthListener(Landroid/net/ConnectivityModuleConnector$ConnectivityModuleHealthListener;)V
+HSPLandroid/net/ConnectivityModuleConnector;->startModuleService(Ljava/lang/String;Ljava/lang/String;Landroid/net/ConnectivityModuleConnector$ModuleServiceCallback;)V
PLandroid/net/DhcpResultsParcelable$1;-><init>()V
PLandroid/net/DhcpResultsParcelable$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/DhcpResultsParcelable;
PLandroid/net/DhcpResultsParcelable$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
PLandroid/net/DhcpResultsParcelable;-><clinit>()V
-PLandroid/net/DhcpResultsParcelable;-><init>()V
+HPLandroid/net/DhcpResultsParcelable;-><init>()V
PLandroid/net/DhcpResultsParcelable;->readFromParcel(Landroid/os/Parcel;)V
-PLandroid/net/IDnsResolver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/IDnsResolver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
PLandroid/net/IDnsResolver$Stub$Proxy;->createNetworkCache(I)V
PLandroid/net/IDnsResolver$Stub$Proxy;->destroyNetworkCache(I)V
-PLandroid/net/IDnsResolver$Stub$Proxy;->setResolverConfiguration(Landroid/net/ResolverParamsParcel;)V
-PLandroid/net/IDnsResolver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IDnsResolver;
+HPLandroid/net/IDnsResolver$Stub$Proxy;->setResolverConfiguration(Landroid/net/ResolverParamsParcel;)V
+PLandroid/net/IDnsResolver$Stub$Proxy;->startPrefix64Discovery(I)V
+PLandroid/net/IDnsResolver$Stub$Proxy;->stopPrefix64Discovery(I)V
+HSPLandroid/net/IDnsResolver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IDnsResolver;
PLandroid/net/IIpMemoryStore$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
PLandroid/net/IIpMemoryStore$Stub$Proxy;->retrieveBlob(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/IOnBlobRetrievedListener;)V
PLandroid/net/IIpMemoryStore$Stub$Proxy;->storeBlob(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/Blob;Landroid/net/ipmemorystore/IOnStatusListener;)V
@@ -170,40 +182,47 @@ PLandroid/net/IIpMemoryStore$Stub;->asInterface(Landroid/os/IBinder;)Landroid/ne
PLandroid/net/IIpMemoryStoreCallbacks$Stub;-><init>()V
PLandroid/net/IIpMemoryStoreCallbacks$Stub;->asBinder()Landroid/os/IBinder;
PLandroid/net/IIpMemoryStoreCallbacks$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-PLandroid/net/INetd$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/net/INetd$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
PLandroid/net/INetd$Stub$Proxy;->bandwidthAddNiceApp(I)V
-PLandroid/net/INetd$Stub$Proxy;->bandwidthSetGlobalAlert(J)V
-PLandroid/net/INetd$Stub$Proxy;->firewallEnableChildChain(IZ)V
-PLandroid/net/INetd$Stub$Proxy;->firewallReplaceUidChain(Ljava/lang/String;Z[I)Z
-PLandroid/net/INetd$Stub$Proxy;->firewallSetFirewallType(I)V
-PLandroid/net/INetd$Stub$Proxy;->firewallSetUidRule(III)V
+PLandroid/net/INetd$Stub$Proxy;->bandwidthRemoveInterfaceQuota(Ljava/lang/String;)V
+HSPLandroid/net/INetd$Stub$Proxy;->bandwidthSetGlobalAlert(J)V
+PLandroid/net/INetd$Stub$Proxy;->bandwidthSetInterfaceQuota(Ljava/lang/String;J)V
+HSPLandroid/net/INetd$Stub$Proxy;->firewallEnableChildChain(IZ)V
+HSPLandroid/net/INetd$Stub$Proxy;->firewallReplaceUidChain(Ljava/lang/String;Z[I)Z
+HSPLandroid/net/INetd$Stub$Proxy;->firewallSetFirewallType(I)V
+HPLandroid/net/INetd$Stub$Proxy;->firewallSetUidRule(III)V
PLandroid/net/INetd$Stub$Proxy;->idletimerAddInterface(Ljava/lang/String;ILjava/lang/String;)V
PLandroid/net/INetd$Stub$Proxy;->idletimerRemoveInterface(Ljava/lang/String;ILjava/lang/String;)V
-PLandroid/net/INetd$Stub$Proxy;->interfaceGetCfg(Ljava/lang/String;)Landroid/net/InterfaceConfigurationParcel;
-PLandroid/net/INetd$Stub$Proxy;->interfaceGetList()[Ljava/lang/String;
-PLandroid/net/INetd$Stub$Proxy;->isAlive()Z
+HSPLandroid/net/INetd$Stub$Proxy;->interfaceGetCfg(Ljava/lang/String;)Landroid/net/InterfaceConfigurationParcel;
+HSPLandroid/net/INetd$Stub$Proxy;->interfaceGetList()[Ljava/lang/String;
+HSPLandroid/net/INetd$Stub$Proxy;->isAlive()Z
PLandroid/net/INetd$Stub$Proxy;->networkAddInterface(ILjava/lang/String;)V
PLandroid/net/INetd$Stub$Proxy;->networkAddRoute(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
PLandroid/net/INetd$Stub$Proxy;->networkClearPermissionForUser([I)V
PLandroid/net/INetd$Stub$Proxy;->networkCreatePhysical(II)V
PLandroid/net/INetd$Stub$Proxy;->networkDestroy(I)V
+PLandroid/net/INetd$Stub$Proxy;->networkRemoveRoute(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
PLandroid/net/INetd$Stub$Proxy;->networkSetDefault(I)V
-PLandroid/net/INetd$Stub$Proxy;->networkSetPermissionForUser(I[I)V
-PLandroid/net/INetd$Stub$Proxy;->registerUnsolicitedEventListener(Landroid/net/INetdUnsolicitedEventListener;)V
+HSPLandroid/net/INetd$Stub$Proxy;->networkSetPermissionForUser(I[I)V
+HSPLandroid/net/INetd$Stub$Proxy;->registerUnsolicitedEventListener(Landroid/net/INetdUnsolicitedEventListener;)V
PLandroid/net/INetd$Stub$Proxy;->setTcpRWmemorySize(Ljava/lang/String;Ljava/lang/String;)V
-PLandroid/net/INetd$Stub$Proxy;->socketDestroy([Landroid/net/UidRangeParcel;[I)V
-PLandroid/net/INetd$Stub$Proxy;->tetherGetStats()[Landroid/net/TetherStatsParcel;
-PLandroid/net/INetd$Stub$Proxy;->trafficSetNetPermForUids(I[I)V
-HPLandroid/net/INetd$Stub$Proxy;->trafficSwapActiveStatsMap()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
+HSPLandroid/net/INetd$Stub$Proxy;->socketDestroy([Landroid/net/UidRangeParcel;[I)V
+HSPLandroid/net/INetd$Stub$Proxy;->tetherGetStats()[Landroid/net/TetherStatsParcel;
+HSPLandroid/net/INetd$Stub$Proxy;->trafficSetNetPermForUids(I[I)V
+HSPLandroid/net/INetd$Stub$Proxy;->trafficSwapActiveStatsMap()V
+PLandroid/net/INetd$Stub$Proxy;->wakeupAddInterface(Ljava/lang/String;Ljava/lang/String;II)V
+PLandroid/net/INetd$Stub$Proxy;->wakeupDelInterface(Ljava/lang/String;Ljava/lang/String;II)V
+HSPLandroid/net/INetd$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetd;
+HSPLandroid/net/INetdUnsolicitedEventListener$Stub;-><init>()V
+HSPLandroid/net/INetdUnsolicitedEventListener$Stub;->asBinder()Landroid/os/IBinder;
+HSPLandroid/net/INetdUnsolicitedEventListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
PLandroid/net/INetworkMonitor$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
PLandroid/net/INetworkMonitor$Stub$Proxy;->forceReevaluation(I)V
-PLandroid/net/INetworkMonitor$Stub$Proxy;->notifyDnsResponse(I)V
-PLandroid/net/INetworkMonitor$Stub$Proxy;->notifyLinkPropertiesChanged(Landroid/net/LinkProperties;)V
-PLandroid/net/INetworkMonitor$Stub$Proxy;->notifyNetworkCapabilitiesChanged(Landroid/net/NetworkCapabilities;)V
+PLandroid/net/INetworkMonitor$Stub$Proxy;->launchCaptivePortalApp()V
+PLandroid/net/INetworkMonitor$Stub$Proxy;->notifyCaptivePortalAppFinished(I)V
+HPLandroid/net/INetworkMonitor$Stub$Proxy;->notifyDnsResponse(I)V
+HPLandroid/net/INetworkMonitor$Stub$Proxy;->notifyLinkPropertiesChanged(Landroid/net/LinkProperties;)V
+HPLandroid/net/INetworkMonitor$Stub$Proxy;->notifyNetworkCapabilitiesChanged(Landroid/net/NetworkCapabilities;)V
PLandroid/net/INetworkMonitor$Stub$Proxy;->notifyNetworkConnected(Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;)V
PLandroid/net/INetworkMonitor$Stub$Proxy;->notifyNetworkDisconnected()V
PLandroid/net/INetworkMonitor$Stub$Proxy;->notifyPrivateDnsChanged(Landroid/net/PrivateDnsConfigParcel;)V
@@ -211,7 +230,7 @@ PLandroid/net/INetworkMonitor$Stub$Proxy;->start()V
PLandroid/net/INetworkMonitor$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkMonitor;
PLandroid/net/INetworkMonitorCallbacks$Stub;-><init>()V
PLandroid/net/INetworkMonitorCallbacks$Stub;->asBinder()Landroid/os/IBinder;
-PLandroid/net/INetworkMonitorCallbacks$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/net/INetworkMonitorCallbacks$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
PLandroid/net/INetworkStackConnector$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
PLandroid/net/INetworkStackConnector$Stub$Proxy;->fetchIpMemoryStore(Landroid/net/IIpMemoryStoreCallbacks;)V
PLandroid/net/INetworkStackConnector$Stub$Proxy;->makeIpClient(Ljava/lang/String;Landroid/net/ip/IIpClientCallbacks;)V
@@ -223,12 +242,12 @@ PLandroid/net/ITetherInternalCallback$Stub;->onTransact(ILandroid/os/Parcel;Land
PLandroid/net/ITetheringConnector$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
PLandroid/net/ITetheringConnector$Stub$Proxy;->registerTetherInternalCallback(Landroid/net/ITetherInternalCallback;)V
PLandroid/net/ITetheringConnector$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/ITetheringConnector;
-PLandroid/net/InterfaceConfigurationParcel$1;-><init>()V
-PLandroid/net/InterfaceConfigurationParcel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/InterfaceConfigurationParcel;
-PLandroid/net/InterfaceConfigurationParcel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
-PLandroid/net/InterfaceConfigurationParcel;-><clinit>()V
-PLandroid/net/InterfaceConfigurationParcel;-><init>()V
-PLandroid/net/InterfaceConfigurationParcel;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/net/InterfaceConfigurationParcel$1;-><init>()V
+HSPLandroid/net/InterfaceConfigurationParcel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/InterfaceConfigurationParcel;
+HSPLandroid/net/InterfaceConfigurationParcel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+HSPLandroid/net/InterfaceConfigurationParcel;-><clinit>()V
+HSPLandroid/net/InterfaceConfigurationParcel;-><init>()V
+HSPLandroid/net/InterfaceConfigurationParcel;->readFromParcel(Landroid/os/Parcel;)V
PLandroid/net/IpMemoryStore$1;-><init>(Landroid/net/IpMemoryStore;)V
PLandroid/net/IpMemoryStore$1;->getInterfaceVersion()I
PLandroid/net/IpMemoryStore$1;->onIpMemoryStoreFetched(Landroid/net/IIpMemoryStore;)V
@@ -252,39 +271,41 @@ PLandroid/net/IpMemoryStoreClient;->retrieveBlob(Ljava/lang/String;Ljava/lang/St
PLandroid/net/IpMemoryStoreClient;->storeBlob(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/ipmemorystore/Blob;Landroid/net/ipmemorystore/OnStatusListener;)V
PLandroid/net/NetworkMonitorManager;-><init>(Landroid/net/INetworkMonitor;)V
PLandroid/net/NetworkMonitorManager;-><init>(Landroid/net/INetworkMonitor;Ljava/lang/String;)V
-PLandroid/net/NetworkMonitorManager;->forceReevaluation(I)Z
+HPLandroid/net/NetworkMonitorManager;->forceReevaluation(I)Z
+PLandroid/net/NetworkMonitorManager;->launchCaptivePortalApp()Z
+PLandroid/net/NetworkMonitorManager;->notifyCaptivePortalAppFinished(I)Z
HPLandroid/net/NetworkMonitorManager;->notifyDnsResponse(I)Z
-PLandroid/net/NetworkMonitorManager;->notifyLinkPropertiesChanged(Landroid/net/LinkProperties;)Z
-PLandroid/net/NetworkMonitorManager;->notifyNetworkCapabilitiesChanged(Landroid/net/NetworkCapabilities;)Z
+HPLandroid/net/NetworkMonitorManager;->notifyLinkPropertiesChanged(Landroid/net/LinkProperties;)Z
+HPLandroid/net/NetworkMonitorManager;->notifyNetworkCapabilitiesChanged(Landroid/net/NetworkCapabilities;)Z
PLandroid/net/NetworkMonitorManager;->notifyNetworkConnected(Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;)Z
PLandroid/net/NetworkMonitorManager;->notifyNetworkDisconnected()Z
PLandroid/net/NetworkMonitorManager;->notifyPrivateDnsChanged(Landroid/net/PrivateDnsConfigParcel;)Z
-PLandroid/net/NetworkStackClient$DependenciesImpl;-><init>()V
-PLandroid/net/NetworkStackClient$DependenciesImpl;-><init>(Landroid/net/NetworkStackClient$1;)V
+HSPLandroid/net/NetworkStackClient$DependenciesImpl;-><init>()V
+HSPLandroid/net/NetworkStackClient$DependenciesImpl;-><init>(Landroid/net/NetworkStackClient$1;)V
PLandroid/net/NetworkStackClient$DependenciesImpl;->addToServiceManager(Landroid/os/IBinder;)V
-PLandroid/net/NetworkStackClient$DependenciesImpl;->checkCallerUid()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$1;)V
+HSPLandroid/net/NetworkStackClient$DependenciesImpl;->checkCallerUid()V
+HSPLandroid/net/NetworkStackClient$DependenciesImpl;->getConnectivityModuleConnector()Landroid/net/ConnectivityModuleConnector;
+HSPLandroid/net/NetworkStackClient$NetworkStackConnection;-><init>(Landroid/net/NetworkStackClient;)V
+HSPLandroid/net/NetworkStackClient$NetworkStackConnection;-><init>(Landroid/net/NetworkStackClient;Landroid/net/NetworkStackClient$1;)V
PLandroid/net/NetworkStackClient$NetworkStackConnection;->onModuleServiceConnected(Landroid/os/IBinder;)V
-PLandroid/net/NetworkStackClient;-><clinit>()V
-PLandroid/net/NetworkStackClient;-><init>()V
-PLandroid/net/NetworkStackClient;-><init>(Landroid/net/NetworkStackClient$Dependencies;)V
+HSPLandroid/net/NetworkStackClient;-><clinit>()V
+HSPLandroid/net/NetworkStackClient;-><init>()V
+HSPLandroid/net/NetworkStackClient;-><init>(Landroid/net/NetworkStackClient$Dependencies;)V
PLandroid/net/NetworkStackClient;->access$100(Landroid/net/NetworkStackClient;Ljava/lang/String;)V
PLandroid/net/NetworkStackClient;->access$200(Landroid/net/NetworkStackClient;Landroid/os/IBinder;)V
+PLandroid/net/NetworkStackClient;->dump(Ljava/io/PrintWriter;)V
PLandroid/net/NetworkStackClient;->fetchIpMemoryStore(Landroid/net/IIpMemoryStoreCallbacks;)V
-PLandroid/net/NetworkStackClient;->getInstance()Landroid/net/NetworkStackClient;
-PLandroid/net/NetworkStackClient;->init()V
+HSPLandroid/net/NetworkStackClient;->getInstance()Landroid/net/NetworkStackClient;
+HSPLandroid/net/NetworkStackClient;->init()V
PLandroid/net/NetworkStackClient;->lambda$fetchIpMemoryStore$3(Landroid/net/IIpMemoryStoreCallbacks;Landroid/net/INetworkStackConnector;)V
PLandroid/net/NetworkStackClient;->lambda$makeIpClient$1(Ljava/lang/String;Landroid/net/ip/IIpClientCallbacks;Landroid/net/INetworkStackConnector;)V
PLandroid/net/NetworkStackClient;->lambda$makeNetworkMonitor$2(Landroid/net/Network;Ljava/lang/String;Landroid/net/INetworkMonitorCallbacks;Landroid/net/INetworkStackConnector;)V
-PLandroid/net/NetworkStackClient;->log(Ljava/lang/String;)V
+HSPLandroid/net/NetworkStackClient;->log(Ljava/lang/String;)V
PLandroid/net/NetworkStackClient;->logi(Ljava/lang/String;)V
-PLandroid/net/NetworkStackClient;->makeIpClient(Ljava/lang/String;Landroid/net/ip/IIpClientCallbacks;)V
-PLandroid/net/NetworkStackClient;->makeNetworkMonitor(Landroid/net/Network;Ljava/lang/String;Landroid/net/INetworkMonitorCallbacks;)V
+HSPLandroid/net/NetworkStackClient;->makeIpClient(Ljava/lang/String;Landroid/net/ip/IIpClientCallbacks;)V
PLandroid/net/NetworkStackClient;->registerNetworkStackService(Landroid/os/IBinder;)V
-PLandroid/net/NetworkStackClient;->requestConnector(Landroid/net/NetworkStackClient$NetworkStackCallback;)V
-PLandroid/net/NetworkStackClient;->start()V
+HSPLandroid/net/NetworkStackClient;->requestConnector(Landroid/net/NetworkStackClient$NetworkStackCallback;)V
+HSPLandroid/net/NetworkStackClient;->start()V
PLandroid/net/PrivateDnsConfigParcel$1;-><init>()V
PLandroid/net/PrivateDnsConfigParcel;-><clinit>()V
PLandroid/net/PrivateDnsConfigParcel;-><init>()V
@@ -296,94 +317,91 @@ PLandroid/net/ProvisioningConfigurationParcelable;->writeToParcel(Landroid/os/Pa
PLandroid/net/ResolverParamsParcel$1;-><init>()V
PLandroid/net/ResolverParamsParcel;-><clinit>()V
PLandroid/net/ResolverParamsParcel;-><init>()V
-PLandroid/net/ResolverParamsParcel;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/net/ResolverParamsParcel;->writeToParcel(Landroid/os/Parcel;I)V
PLandroid/net/TetherStatesParcel$1;-><init>()V
PLandroid/net/TetherStatesParcel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/TetherStatesParcel;
PLandroid/net/TetherStatesParcel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
PLandroid/net/TetherStatesParcel;-><clinit>()V
PLandroid/net/TetherStatesParcel;-><init>()V
PLandroid/net/TetherStatesParcel;->readFromParcel(Landroid/os/Parcel;)V
-PLandroid/net/TetherStatsParcel$1;-><init>()V
-PLandroid/net/TetherStatsParcel$1;->newArray(I)[Landroid/net/TetherStatsParcel;
-HPLandroid/net/TetherStatsParcel$1;->newArray(I)[Ljava/lang/Object;
-PLandroid/net/TetherStatsParcel;-><clinit>()V
+HSPLandroid/net/TetherStatsParcel$1;-><init>()V
+HSPLandroid/net/TetherStatsParcel$1;->newArray(I)[Landroid/net/TetherStatsParcel;
+HSPLandroid/net/TetherStatsParcel$1;->newArray(I)[Ljava/lang/Object;
+HSPLandroid/net/TetherStatsParcel;-><clinit>()V
PLandroid/net/TetheringConfigurationParcel$1;-><init>()V
PLandroid/net/TetheringConfigurationParcel$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/TetheringConfigurationParcel;
PLandroid/net/TetheringConfigurationParcel$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
PLandroid/net/TetheringConfigurationParcel;-><clinit>()V
PLandroid/net/TetheringConfigurationParcel;-><init>()V
-PLandroid/net/TetheringConfigurationParcel;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/net/TetheringConfigurationParcel;->readFromParcel(Landroid/os/Parcel;)V
PLandroid/net/TetheringManager$TetherInternalCallback;-><init>(Landroid/net/TetheringManager;)V
PLandroid/net/TetheringManager$TetherInternalCallback;-><init>(Landroid/net/TetheringManager;Landroid/net/TetheringManager$1;)V
-PLandroid/net/TetheringManager$TetherInternalCallback;->awaitCallbackCreation()Z
+HPLandroid/net/TetheringManager$TetherInternalCallback;->awaitCallbackCreation()Z
PLandroid/net/TetheringManager$TetherInternalCallback;->onCallbackCreated(Landroid/net/Network;Landroid/net/TetheringConfigurationParcel;Landroid/net/TetherStatesParcel;)V
PLandroid/net/TetheringManager$TetherInternalCallback;->onConfigurationChanged(Landroid/net/TetheringConfigurationParcel;)V
PLandroid/net/TetheringManager$TetherInternalCallback;->onTetherStatesChanged(Landroid/net/TetherStatesParcel;)V
-PLandroid/net/TetheringManager$TetheringConnection;-><init>(Landroid/net/TetheringManager;)V
-PLandroid/net/TetheringManager$TetheringConnection;-><init>(Landroid/net/TetheringManager;Landroid/net/TetheringManager$1;)V
+HSPLandroid/net/TetheringManager$TetheringConnection;-><init>(Landroid/net/TetheringManager;)V
+HSPLandroid/net/TetheringManager$TetheringConnection;-><init>(Landroid/net/TetheringManager;Landroid/net/TetheringManager$1;)V
PLandroid/net/TetheringManager$TetheringConnection;->onModuleServiceConnected(Landroid/os/IBinder;)V
-PLandroid/net/TetheringManager;-><clinit>()V
-PLandroid/net/TetheringManager;-><init>()V
+HSPLandroid/net/TetheringManager;-><clinit>()V
+HSPLandroid/net/TetheringManager;-><init>()V
PLandroid/net/TetheringManager;->access$000(Landroid/net/TetheringManager;Ljava/lang/String;)V
PLandroid/net/TetheringManager;->access$100(Landroid/net/TetheringManager;Landroid/os/IBinder;)V
PLandroid/net/TetheringManager;->access$302(Landroid/net/TetheringManager;Landroid/net/Network;)Landroid/net/Network;
PLandroid/net/TetheringManager;->access$502(Landroid/net/TetheringManager;Landroid/net/TetheringConfigurationParcel;)Landroid/net/TetheringConfigurationParcel;
PLandroid/net/TetheringManager;->access$602(Landroid/net/TetheringManager;Landroid/net/TetherStatesParcel;)Landroid/net/TetherStatesParcel;
-PLandroid/net/TetheringManager;->getInstance()Landroid/net/TetheringManager;
+PLandroid/net/TetheringManager;->dump(Ljava/io/PrintWriter;)V
+PLandroid/net/TetheringManager;->dumpStringArray(Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;)V
+HSPLandroid/net/TetheringManager;->getInstance()Landroid/net/TetheringManager;
PLandroid/net/TetheringManager;->getTetherableWifiRegexs()[Ljava/lang/String;
-PLandroid/net/TetheringManager;->hasTetherableConfiguration()Z
-PLandroid/net/TetheringManager;->log(Ljava/lang/String;)V
+HPLandroid/net/TetheringManager;->hasTetherableConfiguration()Z
+HSPLandroid/net/TetheringManager;->log(Ljava/lang/String;)V
PLandroid/net/TetheringManager;->logi(Ljava/lang/String;)V
PLandroid/net/TetheringManager;->registerTetheringService(Landroid/os/IBinder;)V
-PLandroid/net/TetheringManager;->start()V
+HSPLandroid/net/TetheringManager;->start()V
PLandroid/net/UidRangeParcel$1;-><init>()V
PLandroid/net/UidRangeParcel;-><clinit>()V
PLandroid/net/UidRangeParcel;-><init>()V
-PLandroid/net/UidRangeParcel;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/net/UidRangeParcel;->writeToParcel(Landroid/os/Parcel;I)V
PLandroid/net/ip/IIpClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
PLandroid/net/ip/IIpClient$Stub$Proxy;->completedPreDhcpAction()V
PLandroid/net/ip/IIpClient$Stub$Proxy;->confirmConfiguration()V
PLandroid/net/ip/IIpClient$Stub$Proxy;->setHttpProxy(Landroid/net/ProxyInfo;)V
-PLandroid/net/ip/IIpClient$Stub$Proxy;->setL2KeyAndGroupHint(Ljava/lang/String;Ljava/lang/String;)V
+HPLandroid/net/ip/IIpClient$Stub$Proxy;->setL2KeyAndGroupHint(Ljava/lang/String;Ljava/lang/String;)V
PLandroid/net/ip/IIpClient$Stub$Proxy;->setMulticastFilter(Z)V
PLandroid/net/ip/IIpClient$Stub$Proxy;->setTcpBufferSizes(Ljava/lang/String;)V
+PLandroid/net/ip/IIpClient$Stub$Proxy;->shutdown()V
PLandroid/net/ip/IIpClient$Stub$Proxy;->startProvisioning(Landroid/net/ProvisioningConfigurationParcelable;)V
PLandroid/net/ip/IIpClient$Stub$Proxy;->stop()V
PLandroid/net/ip/IIpClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/ip/IIpClient;
-PLandroid/net/ip/IIpClientCallbacks$Stub;-><init>()V
+HSPLandroid/net/ip/IIpClientCallbacks$Stub;-><init>()V
PLandroid/net/ip/IIpClientCallbacks$Stub;->asBinder()Landroid/os/IBinder;
PLandroid/net/ip/IIpClientCallbacks$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-PLandroid/net/ip/IpClientCallbacks;-><init>()V
+HSPLandroid/net/ip/IpClientCallbacks;-><init>()V
PLandroid/net/ip/IpClientManager;-><init>(Landroid/net/ip/IIpClient;Ljava/lang/String;)V
-PLandroid/net/ip/IpClientManager;->completedPreDhcpAction()Z
+HPLandroid/net/ip/IpClientManager;->completedPreDhcpAction()Z
PLandroid/net/ip/IpClientManager;->confirmConfiguration()Z
PLandroid/net/ip/IpClientManager;->setHttpProxy(Landroid/net/ProxyInfo;)Z
-PLandroid/net/ip/IpClientManager;->setL2KeyAndGroupHint(Ljava/lang/String;Ljava/lang/String;)Z
+HPLandroid/net/ip/IpClientManager;->setL2KeyAndGroupHint(Ljava/lang/String;Ljava/lang/String;)Z
PLandroid/net/ip/IpClientManager;->setMulticastFilter(Z)Z
PLandroid/net/ip/IpClientManager;->setTcpBufferSizes(Ljava/lang/String;)Z
+PLandroid/net/ip/IpClientManager;->shutdown()Z
PLandroid/net/ip/IpClientManager;->startProvisioning(Landroid/net/shared/ProvisioningConfiguration;)Z
PLandroid/net/ip/IpClientManager;->stop()Z
-PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;-><init>(Landroid/net/ip/IpClientCallbacks;)V
+HSPLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;-><init>(Landroid/net/ip/IpClientCallbacks;)V
PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->getInterfaceVersion()I
-PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->installPacketFilter([B)V
PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onIpClientCreated(Landroid/net/ip/IIpClient;)V
-PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onLinkPropertiesChange(Landroid/net/LinkProperties;)V
-PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onNewDhcpResults(Landroid/net/DhcpResultsParcelable;)V
-PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onPostDhcpAction()V
-PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onPreDhcpAction()V
-PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->onProvisioningSuccess(Landroid/net/LinkProperties;)V
-PLandroid/net/ip/IpClientUtil$IpClientCallbacksProxy;->setNeighborDiscoveryOffload(Z)V
-PLandroid/net/ip/IpClientUtil;->makeIpClient(Landroid/content/Context;Ljava/lang/String;Landroid/net/ip/IpClientCallbacks;)V
+HSPLandroid/net/ip/IpClientUtil;->makeIpClient(Landroid/content/Context;Ljava/lang/String;Landroid/net/ip/IpClientCallbacks;)V
PLandroid/net/ipmemorystore/Blob$1;-><init>()V
PLandroid/net/ipmemorystore/Blob$1;->createFromParcel(Landroid/os/Parcel;)Landroid/net/ipmemorystore/Blob;
PLandroid/net/ipmemorystore/Blob$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
PLandroid/net/ipmemorystore/Blob;-><clinit>()V
PLandroid/net/ipmemorystore/Blob;-><init>()V
-PLandroid/net/ipmemorystore/Blob;->readFromParcel(Landroid/os/Parcel;)V
-PLandroid/net/ipmemorystore/Blob;->writeToParcel(Landroid/os/Parcel;I)V
+HPLandroid/net/ipmemorystore/Blob;->readFromParcel(Landroid/os/Parcel;)V
+HPLandroid/net/ipmemorystore/Blob;->writeToParcel(Landroid/os/Parcel;I)V
PLandroid/net/ipmemorystore/IOnBlobRetrievedListener$Stub;-><init>()V
PLandroid/net/ipmemorystore/IOnBlobRetrievedListener$Stub;->asBinder()Landroid/os/IBinder;
-PLandroid/net/ipmemorystore/IOnBlobRetrievedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/net/ipmemorystore/IOnBlobRetrievedListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
PLandroid/net/ipmemorystore/IOnStatusListener$Stub;-><init>()V
PLandroid/net/ipmemorystore/IOnStatusListener$Stub;->asBinder()Landroid/os/IBinder;
PLandroid/net/ipmemorystore/IOnStatusListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
@@ -401,9 +419,9 @@ PLandroid/net/ipmemorystore/StatusParcelable$1;->createFromParcel(Landroid/os/Pa
PLandroid/net/ipmemorystore/StatusParcelable$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
PLandroid/net/ipmemorystore/StatusParcelable;-><clinit>()V
PLandroid/net/ipmemorystore/StatusParcelable;-><init>()V
-PLandroid/net/ipmemorystore/StatusParcelable;->readFromParcel(Landroid/os/Parcel;)V
-PLandroid/net/metrics/INetdEventListener$Stub;-><init>()V
-PLandroid/net/metrics/INetdEventListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HPLandroid/net/ipmemorystore/StatusParcelable;->readFromParcel(Landroid/os/Parcel;)V
+HSPLandroid/net/metrics/INetdEventListener$Stub;-><init>()V
+HPLandroid/net/metrics/INetdEventListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
PLandroid/net/shared/-$$Lambda$OsobWheG5dMvEj_cOJtueqUBqBI;-><clinit>()V
PLandroid/net/shared/-$$Lambda$OsobWheG5dMvEj_cOJtueqUBqBI;-><init>()V
PLandroid/net/shared/InitialConfiguration;-><clinit>()V
@@ -412,10 +430,9 @@ PLandroid/net/shared/IpConfigurationParcelableUtil;->fromStableParcelable(Landro
PLandroid/net/shared/IpConfigurationParcelableUtil;->unparcelAddress(Ljava/lang/String;)Ljava/net/InetAddress;
PLandroid/net/shared/NetworkMonitorUtils;->isPrivateDnsValidationRequired(Landroid/net/NetworkCapabilities;)Z
PLandroid/net/shared/ParcelableUtil;->toParcelableArray(Ljava/util/Collection;Ljava/util/function/Function;Ljava/lang/Class;)[Ljava/lang/Object;
-PLandroid/net/shared/PrivateDnsConfig;-><init>()V
-PLandroid/net/shared/PrivateDnsConfig;-><init>(Z)V
+HSPLandroid/net/shared/PrivateDnsConfig;-><init>()V
+HSPLandroid/net/shared/PrivateDnsConfig;-><init>(Z)V
PLandroid/net/shared/PrivateDnsConfig;->inStrictMode()Z
-PLandroid/net/shared/PrivateDnsConfig;->toParcel()Landroid/net/PrivateDnsConfigParcel;
PLandroid/net/shared/PrivateDnsConfig;->toString()Ljava/lang/String;
PLandroid/net/shared/ProvisioningConfiguration$Builder;-><init>()V
PLandroid/net/shared/ProvisioningConfiguration$Builder;->build()Landroid/net/shared/ProvisioningConfiguration;
@@ -426,58 +443,66 @@ PLandroid/net/shared/ProvisioningConfiguration$Builder;->withPreDhcpAction()Land
PLandroid/net/shared/ProvisioningConfiguration;-><init>()V
PLandroid/net/shared/ProvisioningConfiguration;-><init>(Landroid/net/shared/ProvisioningConfiguration;)V
PLandroid/net/shared/ProvisioningConfiguration;->toStableParcelable()Landroid/net/ProvisioningConfigurationParcelable;
-PLandroid/net/util/NetdService;-><clinit>()V
-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;
-PLandroid/net/util/SharedLog$Category;-><clinit>()V
-PLandroid/net/util/SharedLog$Category;-><init>(Ljava/lang/String;I)V
+HSPLandroid/net/util/NetdService;-><clinit>()V
+HSPLandroid/net/util/NetdService;->get()Landroid/net/INetd;
+HSPLandroid/net/util/NetdService;->get(J)Landroid/net/INetd;
+HSPLandroid/net/util/NetdService;->getInstance()Landroid/net/INetd;
+HSPLandroid/net/util/SharedLog$Category;-><clinit>()V
+HSPLandroid/net/util/SharedLog$Category;-><init>(Ljava/lang/String;I)V
HSPLandroid/net/util/SharedLog;-><init>(ILjava/lang/String;)V
HSPLandroid/net/util/SharedLog;-><init>(Landroid/util/LocalLog;Ljava/lang/String;Ljava/lang/String;)V
HSPLandroid/net/util/SharedLog;-><init>(Ljava/lang/String;)V
+PLandroid/net/util/SharedLog;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLandroid/net/util/SharedLog;->i(Ljava/lang/String;)V
-PLandroid/net/util/SharedLog;->isRootLogInstance()Z
-PLandroid/net/util/SharedLog;->log(Ljava/lang/String;)V
-PLandroid/net/util/SharedLog;->logLine(Landroid/net/util/SharedLog$Category;Ljava/lang/String;)Ljava/lang/String;
-PLandroid/net/util/SharedLog;->record(Landroid/net/util/SharedLog$Category;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/net/util/SharedLog;->isRootLogInstance()Z
+HSPLandroid/net/util/SharedLog;->log(Ljava/lang/String;)V
+HSPLandroid/net/util/SharedLog;->logLine(Landroid/net/util/SharedLog$Category;Ljava/lang/String;)Ljava/lang/String;
+HSPLandroid/net/util/SharedLog;->record(Landroid/net/util/SharedLog$Category;Ljava/lang/String;)Ljava/lang/String;
HSPLandroid/os/BatteryStatsInternal;-><init>()V
-PLandroid/os/IIdmap2$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLandroid/os/IIdmap2$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
PLandroid/os/IIdmap2$Stub$Proxy;->createIdmap(Ljava/lang/String;Ljava/lang/String;IZI)Ljava/lang/String;
-PLandroid/os/IIdmap2$Stub$Proxy;->getIdmapPath(Ljava/lang/String;I)Ljava/lang/String;
-PLandroid/os/IIdmap2$Stub$Proxy;->verifyIdmap(Ljava/lang/String;IZI)Z
-PLandroid/os/IIdmap2$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IIdmap2;
+HSPLandroid/os/IIdmap2$Stub$Proxy;->getIdmapPath(Ljava/lang/String;I)Ljava/lang/String;
+HSPLandroid/os/IIdmap2$Stub$Proxy;->verifyIdmap(Ljava/lang/String;IZI)Z
+HSPLandroid/os/IIdmap2$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IIdmap2;
HSPLandroid/os/UserManagerInternal;-><init>()V
-PLcom/android/server/-$$Lambda$1xUIIN0BU8izGcnYWT-VzczLBFU;-><clinit>()V
-PLcom/android/server/-$$Lambda$1xUIIN0BU8izGcnYWT-VzczLBFU;-><init>()V
-PLcom/android/server/-$$Lambda$1xUIIN0BU8izGcnYWT-VzczLBFU;->get(Lcom/android/server/NsdService$NativeCallbackReceiver;)Lcom/android/server/NsdService$DaemonConnection;
+HSPLcom/android/server/-$$Lambda$1xUIIN0BU8izGcnYWT-VzczLBFU;-><clinit>()V
+HSPLcom/android/server/-$$Lambda$1xUIIN0BU8izGcnYWT-VzczLBFU;-><init>()V
+HSPLcom/android/server/-$$Lambda$1xUIIN0BU8izGcnYWT-VzczLBFU;->get(Lcom/android/server/NsdService$NativeCallbackReceiver;)Lcom/android/server/NsdService$DaemonConnection;
PLcom/android/server/-$$Lambda$AlarmManagerService$2$Eo-D98J-N9R2METkD-12gPs320c;-><init>(Lcom/android/server/AlarmManagerService$2;Landroid/app/IAlarmCompleteListener;)V
PLcom/android/server/-$$Lambda$AlarmManagerService$2$Eo-D98J-N9R2METkD-12gPs320c;->run()V
-PLcom/android/server/-$$Lambda$AlarmManagerService$Batch$Xltkj5RTKUMuFVeuavpuY7-Ogzc;-><init>(Lcom/android/server/AlarmManagerService$Alarm;)V
+HPLcom/android/server/-$$Lambda$AlarmManagerService$Batch$Xltkj5RTKUMuFVeuavpuY7-Ogzc;-><init>(Lcom/android/server/AlarmManagerService$Alarm;)V
PLcom/android/server/-$$Lambda$AlarmManagerService$Batch$Xltkj5RTKUMuFVeuavpuY7-Ogzc;->test(Ljava/lang/Object;)Z
-PLcom/android/server/-$$Lambda$AlarmManagerService$ZVedZIeWdB3G6AGM0_-9P_GEO24;-><init>(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
-HPLcom/android/server/-$$Lambda$AlarmManagerService$ZVedZIeWdB3G6AGM0_-9P_GEO24;->test(Ljava/lang/Object;)Z
-PLcom/android/server/-$$Lambda$AlarmManagerService$gKXZ864LsHRTGbnNeLAgHKL2YPk;-><init>(Lcom/android/server/AlarmManagerService;)V
+HSPLcom/android/server/-$$Lambda$AlarmManagerService$ZVedZIeWdB3G6AGM0_-9P_GEO24;-><init>(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
+HSPLcom/android/server/-$$Lambda$AlarmManagerService$ZVedZIeWdB3G6AGM0_-9P_GEO24;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/-$$Lambda$AlarmManagerService$gKXZ864LsHRTGbnNeLAgHKL2YPk;-><init>(Lcom/android/server/AlarmManagerService;)V
PLcom/android/server/-$$Lambda$AlarmManagerService$gKXZ864LsHRTGbnNeLAgHKL2YPk;->run()V
-PLcom/android/server/-$$Lambda$AlarmManagerService$qehVSjTLWvtJYPGgKh2mkJ6ePnk;-><init>(I)V
-PLcom/android/server/-$$Lambda$AlarmManagerService$qehVSjTLWvtJYPGgKh2mkJ6ePnk;->test(Ljava/lang/Object;)Z
-PLcom/android/server/-$$Lambda$AppStateTracker$zzioY8jvEm-1GnJ13CUiQGauPEE;-><init>(Lcom/android/server/AppStateTracker;)V
-PLcom/android/server/-$$Lambda$BatteryService$2x73lvpB0jctMSVP4qb9sHAqRPw;-><init>(Landroid/content/Intent;)V
+HSPLcom/android/server/-$$Lambda$AppStateTracker$zzioY8jvEm-1GnJ13CUiQGauPEE;-><init>(Lcom/android/server/AppStateTracker;)V
+HSPLcom/android/server/-$$Lambda$BatteryService$2x73lvpB0jctMSVP4qb9sHAqRPw;-><init>(Landroid/content/Intent;)V
PLcom/android/server/-$$Lambda$BatteryService$2x73lvpB0jctMSVP4qb9sHAqRPw;->run()V
-PLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$7Y-B9O7NDYgUY9hQvFzC2FQ2V5w;-><init>(Landroid/util/MutableInt;Landroid/os/BatteryProperty;)V
+HPLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$7Y-B9O7NDYgUY9hQvFzC2FQ2V5w;-><init>(Landroid/util/MutableInt;Landroid/os/BatteryProperty;)V
PLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$7Y-B9O7NDYgUY9hQvFzC2FQ2V5w;->onValues(II)V
-PLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$9z3zqgxtPzBN8Qoni5nHVb0m8EY;-><init>(Landroid/util/MutableInt;Landroid/os/BatteryProperty;)V
+HPLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$9z3zqgxtPzBN8Qoni5nHVb0m8EY;-><init>(Landroid/util/MutableInt;Landroid/os/BatteryProperty;)V
PLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$9z3zqgxtPzBN8Qoni5nHVb0m8EY;->onValues(IJ)V
-PLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$DM4ow6LC--JYWBfhHp2f1JW8nww;-><init>(Landroid/util/MutableInt;Landroid/os/BatteryProperty;)V
+HPLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$DM4ow6LC--JYWBfhHp2f1JW8nww;-><init>(Landroid/util/MutableInt;Landroid/os/BatteryProperty;)V
PLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$DM4ow6LC--JYWBfhHp2f1JW8nww;->onValues(II)V
-PLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$KZAu97wwr_7_MI0awCjQTzdIuAI;-><init>(Landroid/util/MutableInt;Landroid/os/BatteryProperty;)V
+HPLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$KZAu97wwr_7_MI0awCjQTzdIuAI;-><init>(Landroid/util/MutableInt;Landroid/os/BatteryProperty;)V
PLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$KZAu97wwr_7_MI0awCjQTzdIuAI;->onValues(II)V
-PLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$muNPoFqxU6pF6un7sF70iW4-Fus;-><init>(Lcom/android/server/BatteryService$BatteryPropertiesRegistrar;)V
-PLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$muNPoFqxU6pF6un7sF70iW4-Fus;->run()V
-PLcom/android/server/-$$Lambda$BatteryService$D1kwd7L7yyqN5niz3KWkTepVmUk;-><init>(Lcom/android/server/BatteryService;)V
+HSPLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$muNPoFqxU6pF6un7sF70iW4-Fus;-><init>(Lcom/android/server/BatteryService$BatteryPropertiesRegistrar;)V
+HSPLcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$muNPoFqxU6pF6un7sF70iW4-Fus;->run()V
+HSPLcom/android/server/-$$Lambda$BatteryService$D1kwd7L7yyqN5niz3KWkTepVmUk;-><init>(Lcom/android/server/BatteryService;)V
PLcom/android/server/-$$Lambda$BatteryService$D1kwd7L7yyqN5niz3KWkTepVmUk;->run()V
-PLcom/android/server/-$$Lambda$ConnectivityService$SFqiR4Pfksb1C7csMC3uNxCllR8;-><init>(Lcom/android/server/ConnectivityService;)V
-PLcom/android/server/-$$Lambda$ContextHubSystemService$q-5gSEKm3he-4vIHcay4DLtf85E;-><init>(Lcom/android/server/ContextHubSystemService;Landroid/content/Context;)V
-PLcom/android/server/-$$Lambda$ContextHubSystemService$q-5gSEKm3he-4vIHcay4DLtf85E;->run()V
+PLcom/android/server/-$$Lambda$ConnectivityService$OIhIcUZjeJ-ci4rP6veezE8o67U;-><init>(Lcom/android/server/ConnectivityService;Landroid/net/Network;)V
+PLcom/android/server/-$$Lambda$ConnectivityService$OIhIcUZjeJ-ci4rP6veezE8o67U;->run()V
+HSPLcom/android/server/-$$Lambda$ConnectivityService$SFqiR4Pfksb1C7csMC3uNxCllR8;-><init>(Lcom/android/server/ConnectivityService;)V
+PLcom/android/server/-$$Lambda$ConnectivityService$_NU7EIcPVS-uF_gWH_NWN_gBL4w;-><clinit>()V
+PLcom/android/server/-$$Lambda$ConnectivityService$_NU7EIcPVS-uF_gWH_NWN_gBL4w;-><init>()V
+PLcom/android/server/-$$Lambda$ConnectivityService$iOdlQdHoQM14teTS-EPRH-RRL3k;-><clinit>()V
+PLcom/android/server/-$$Lambda$ConnectivityService$iOdlQdHoQM14teTS-EPRH-RRL3k;-><init>()V
+PLcom/android/server/-$$Lambda$ConnectivityService$iOdlQdHoQM14teTS-EPRH-RRL3k;->applyAsInt(Ljava/lang/Object;)I
+PLcom/android/server/-$$Lambda$ConnectivityService$vGRhfNpFTw0hellWUlmBolfzRy8;-><init>(Lcom/android/server/ConnectivityService;Landroid/content/Intent;)V
+PLcom/android/server/-$$Lambda$ConnectivityService$vGRhfNpFTw0hellWUlmBolfzRy8;->runOrThrow()V
+HSPLcom/android/server/-$$Lambda$ContextHubSystemService$q-5gSEKm3he-4vIHcay4DLtf85E;-><init>(Lcom/android/server/ContextHubSystemService;Landroid/content/Context;)V
+HSPLcom/android/server/-$$Lambda$ContextHubSystemService$q-5gSEKm3he-4vIHcay4DLtf85E;->run()V
PLcom/android/server/-$$Lambda$ExplicitHealthCheckController$6YGiVtgCnlJ0hMIeX5TzlFUaNrY;-><init>(Lcom/android/server/ExplicitHealthCheckController;)V
PLcom/android/server/-$$Lambda$ExplicitHealthCheckController$MJhpX-SveTcXQEYQTQa3k6RpjzU;-><init>(Ljava/util/function/Consumer;)V
PLcom/android/server/-$$Lambda$ExplicitHealthCheckController$MJhpX-SveTcXQEYQTQa3k6RpjzU;->onResult(Landroid/os/Bundle;)V
@@ -489,515 +514,592 @@ PLcom/android/server/-$$Lambda$ExplicitHealthCheckController$fE2pZ6ZhwFEJPuOl0oc
PLcom/android/server/-$$Lambda$ExplicitHealthCheckController$ucIBQc_IW2iYt6j4dngAncLT6nQ;-><init>(Lcom/android/server/ExplicitHealthCheckController;)V
PLcom/android/server/-$$Lambda$ExplicitHealthCheckController$x4g41SYVR_nHQxV-RQY6VIfh1zs;-><init>(Lcom/android/server/ExplicitHealthCheckController;Ljava/util/Set;)V
PLcom/android/server/-$$Lambda$ExplicitHealthCheckController$x4g41SYVR_nHQxV-RQY6VIfh1zs;->accept(Ljava/lang/Object;)V
-PLcom/android/server/-$$Lambda$GnssManagerService$a17GVVAgEci0VYD4EMvKwuPLhdQ;-><init>(Lcom/android/server/GnssManagerService;)V
-PLcom/android/server/-$$Lambda$GnssManagerService$a17GVVAgEci0VYD4EMvKwuPLhdQ;->onUidImportance(II)V
+HSPLcom/android/server/-$$Lambda$GnssManagerService$a17GVVAgEci0VYD4EMvKwuPLhdQ;-><init>(Lcom/android/server/GnssManagerService;)V
+HPLcom/android/server/-$$Lambda$GnssManagerService$a17GVVAgEci0VYD4EMvKwuPLhdQ;->onUidImportance(II)V
PLcom/android/server/-$$Lambda$GnssManagerService$mZAgy7PA5q3tB1aq7tHsX4xM14E;-><init>(Lcom/android/server/GnssManagerService;II)V
-PLcom/android/server/-$$Lambda$GnssManagerService$mZAgy7PA5q3tB1aq7tHsX4xM14E;->run()V
+HPLcom/android/server/-$$Lambda$GnssManagerService$mZAgy7PA5q3tB1aq7tHsX4xM14E;->run()V
PLcom/android/server/-$$Lambda$GraphicsStatsService$2EDVu98hsJvSwNgKvijVLSR3IrQ;-><init>(Lcom/android/server/GraphicsStatsService;)V
PLcom/android/server/-$$Lambda$GraphicsStatsService$2EDVu98hsJvSwNgKvijVLSR3IrQ;->onAlarm()V
PLcom/android/server/-$$Lambda$HALkbmbB2IPr_wdFkPjiIWCzJsY;-><clinit>()V
PLcom/android/server/-$$Lambda$HALkbmbB2IPr_wdFkPjiIWCzJsY;-><init>()V
-PLcom/android/server/-$$Lambda$IpSecService$AnqunmSwm_yQvDDEPg-gokhVs5M;-><clinit>()V
-PLcom/android/server/-$$Lambda$IpSecService$AnqunmSwm_yQvDDEPg-gokhVs5M;-><init>()V
+HSPLcom/android/server/-$$Lambda$IpSecService$AnqunmSwm_yQvDDEPg-gokhVs5M;-><clinit>()V
+HSPLcom/android/server/-$$Lambda$IpSecService$AnqunmSwm_yQvDDEPg-gokhVs5M;-><init>()V
PLcom/android/server/-$$Lambda$LocationManagerService$1$HAAnoF9DI9FvCHK_geH89--2z2I;-><init>(Lcom/android/server/LocationManagerService$1;)V
PLcom/android/server/-$$Lambda$LocationManagerService$1$HAAnoF9DI9FvCHK_geH89--2z2I;->run()V
-PLcom/android/server/-$$Lambda$LocationManagerService$56u_uxjuANYKBEJg0XAb0TfpovM;-><init>(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/-$$Lambda$LocationManagerService$BQNQ1vKVv2dgsjR1d4p8xU8o1us;-><init>(Lcom/android/server/LocationManagerService;)V
-HPLcom/android/server/-$$Lambda$LocationManagerService$BQNQ1vKVv2dgsjR1d4p8xU8o1us;->onUidImportance(II)V
-PLcom/android/server/-$$Lambda$LocationManagerService$C9tKV14EC-5lshjotTKSFyTMBDc;-><init>(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/-$$Lambda$LocationManagerService$DJ4kMod0tVB-vqSawrWCXTCoPAM;-><init>(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/-$$Lambda$LocationManagerService$GnHas6J3gXGjXx6KfNuV_GzNl9w;-><init>(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/-$$Lambda$LocationManagerService$HFEIyPdjr9Q7EqNSfKbvCg7C3nU;-><init>(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/-$$Lambda$LocationManagerService$HFEIyPdjr9Q7EqNSfKbvCg7C3nU;->onSettingChanged(I)V
-PLcom/android/server/-$$Lambda$LocationManagerService$HZIPtgYCt4b4zdEJtC8qjcHStVE;-><init>(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/-$$Lambda$LocationManagerService$LocationProvider$2z6Xnvlf9BP5BZjVuP0wuKI1OtQ;-><init>(Lcom/android/server/LocationManagerService$LocationProvider;Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
-PLcom/android/server/-$$Lambda$LocationManagerService$LocationProvider$2z6Xnvlf9BP5BZjVuP0wuKI1OtQ;->run()V
-PLcom/android/server/-$$Lambda$LocationManagerService$Nht7c6P7I1-MJqXp4qiS_HUIjzY;-><init>(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/-$$Lambda$LocationManagerService$QVf9Y4g7BmVBQBlkUO5oHLmMW2o;-><init>(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/-$$Lambda$LocationManagerService$QVf9Y4g7BmVBQBlkUO5oHLmMW2o;->run()V
-HPLcom/android/server/-$$Lambda$LocationManagerService$V3FRncuMEn-4R6Dd2zsTs4m0dWM;-><init>(Lcom/android/server/LocationManagerService;II)V
-HPLcom/android/server/-$$Lambda$LocationManagerService$V3FRncuMEn-4R6Dd2zsTs4m0dWM;->run()V
-PLcom/android/server/-$$Lambda$LocationManagerService$es-cu7rp_R0xbJzDRj4qpZNL7vc;-><init>(Lcom/android/server/LocationManagerService;)V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$56u_uxjuANYKBEJg0XAb0TfpovM;-><init>(Lcom/android/server/LocationManagerService;)V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$BQNQ1vKVv2dgsjR1d4p8xU8o1us;-><init>(Lcom/android/server/LocationManagerService;)V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$BQNQ1vKVv2dgsjR1d4p8xU8o1us;->onUidImportance(II)V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$BY2uqgE48i0Shvo1FGLa9toRxBA;-><init>(Lcom/android/server/LocationManagerService;)V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$DJ4kMod0tVB-vqSawrWCXTCoPAM;-><init>(Lcom/android/server/LocationManagerService;)V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$GnHas6J3gXGjXx6KfNuV_GzNl9w;-><init>(Lcom/android/server/LocationManagerService;)V
+PLcom/android/server/-$$Lambda$LocationManagerService$GnHas6J3gXGjXx6KfNuV_GzNl9w;->getPackages(I)[Ljava/lang/String;
+HSPLcom/android/server/-$$Lambda$LocationManagerService$HZIPtgYCt4b4zdEJtC8qjcHStVE;-><init>(Lcom/android/server/LocationManagerService;)V
+PLcom/android/server/-$$Lambda$LocationManagerService$HZIPtgYCt4b4zdEJtC8qjcHStVE;->getPackages(I)[Ljava/lang/String;
+HSPLcom/android/server/-$$Lambda$LocationManagerService$LocationProviderManager$neXVKsR0MS1O6DaHXSdf3TVC-rc;-><init>(Lcom/android/server/LocationManagerService$LocationProviderManager;Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$LocationProviderManager$neXVKsR0MS1O6DaHXSdf3TVC-rc;->run()V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$Nht7c6P7I1-MJqXp4qiS_HUIjzY;-><init>(Lcom/android/server/LocationManagerService;)V
+HPLcom/android/server/-$$Lambda$LocationManagerService$QVf9Y4g7BmVBQBlkUO5oHLmMW2o;-><init>(Lcom/android/server/LocationManagerService;)V
+HPLcom/android/server/-$$Lambda$LocationManagerService$QVf9Y4g7BmVBQBlkUO5oHLmMW2o;->run()V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$V3FRncuMEn-4R6Dd2zsTs4m0dWM;-><init>(Lcom/android/server/LocationManagerService;II)V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$V3FRncuMEn-4R6Dd2zsTs4m0dWM;->run()V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$es-cu7rp_R0xbJzDRj4qpZNL7vc;-><init>(Lcom/android/server/LocationManagerService;)V
PLcom/android/server/-$$Lambda$LocationManagerService$es-cu7rp_R0xbJzDRj4qpZNL7vc;->onPermissionsChanged(I)V
-PLcom/android/server/-$$Lambda$LocationManagerService$qbZh8GXCTpZ1wNP3qw1VXZxlKQg;-><init>(Lcom/android/server/LocationManagerService;)V
+HSPLcom/android/server/-$$Lambda$LocationManagerService$qbZh8GXCTpZ1wNP3qw1VXZxlKQg;-><init>(Lcom/android/server/LocationManagerService;)V
PLcom/android/server/-$$Lambda$LocationManagerService$qbZh8GXCTpZ1wNP3qw1VXZxlKQg;->onSettingChanged(I)V
+PLcom/android/server/-$$Lambda$LooperStatsService$Byo6QAxZpVXDCMtjrcYJc6YLAks;-><clinit>()V
+PLcom/android/server/-$$Lambda$LooperStatsService$Byo6QAxZpVXDCMtjrcYJc6YLAks;-><init>()V
+PLcom/android/server/-$$Lambda$LooperStatsService$Byo6QAxZpVXDCMtjrcYJc6YLAks;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/-$$Lambda$LooperStatsService$Vzysuo2tO86qjfcWeh1Rdb47NQQ;-><clinit>()V
+PLcom/android/server/-$$Lambda$LooperStatsService$Vzysuo2tO86qjfcWeh1Rdb47NQQ;-><init>()V
+PLcom/android/server/-$$Lambda$LooperStatsService$Vzysuo2tO86qjfcWeh1Rdb47NQQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/-$$Lambda$LooperStatsService$XjYmSR91xdWG1Xgt-Gj9GBZZbjk;-><clinit>()V
+PLcom/android/server/-$$Lambda$LooperStatsService$XjYmSR91xdWG1Xgt-Gj9GBZZbjk;-><init>()V
+PLcom/android/server/-$$Lambda$LooperStatsService$XjYmSR91xdWG1Xgt-Gj9GBZZbjk;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/-$$Lambda$LooperStatsService$XtFJEDeyYRT79ZkVP96XkHribxg;-><clinit>()V
+PLcom/android/server/-$$Lambda$LooperStatsService$XtFJEDeyYRT79ZkVP96XkHribxg;-><init>()V
+PLcom/android/server/-$$Lambda$LooperStatsService$XtFJEDeyYRT79ZkVP96XkHribxg;->apply(Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/-$$Lambda$NetworkManagementService$15DusjG2gzn5UASV-lMS3BUUn9c;-><init>(Lcom/android/server/NetworkManagementService;Lcom/android/server/NetworkManagementService$IdleTimerParams;)V
PLcom/android/server/-$$Lambda$NetworkManagementService$15DusjG2gzn5UASV-lMS3BUUn9c;->run()V
-PLcom/android/server/-$$Lambda$NetworkManagementService$D43p3Tqq7B3qaMs9AGb_3j0KZd0;-><init>(IZJ)V
-PLcom/android/server/-$$Lambda$NetworkManagementService$D43p3Tqq7B3qaMs9AGb_3j0KZd0;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
-PLcom/android/server/-$$Lambda$NetworkManagementService$JKmkb4AIm_PPzQp1XOHOgPPRswo;-><init>(Landroid/net/RouteInfo;)V
-PLcom/android/server/-$$Lambda$NetworkManagementService$JKmkb4AIm_PPzQp1XOHOgPPRswo;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
+HPLcom/android/server/-$$Lambda$NetworkManagementService$D43p3Tqq7B3qaMs9AGb_3j0KZd0;-><init>(IZJ)V
+HPLcom/android/server/-$$Lambda$NetworkManagementService$D43p3Tqq7B3qaMs9AGb_3j0KZd0;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
+PLcom/android/server/-$$Lambda$NetworkManagementService$FsR_UD5xfj4hgrwGdX74wq881Bk;-><init>(Ljava/lang/String;)V
+PLcom/android/server/-$$Lambda$NetworkManagementService$FsR_UD5xfj4hgrwGdX74wq881Bk;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$JKmkb4AIm_PPzQp1XOHOgPPRswo;-><init>(Landroid/net/RouteInfo;)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$JKmkb4AIm_PPzQp1XOHOgPPRswo;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
HPLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$0xWa9DGxTnoGVHppsM-nng2PygE;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;IZJI)V
-PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$0xWa9DGxTnoGVHppsM-nng2PygE;->run()V
-PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$KpFpi2qBs2OPscTclZ3JRRr-G-g;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$KpFpi2qBs2OPscTclZ3JRRr-G-g;->run()V
-PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$L7i_Z-ii6zMptHCt2_Igy3iBvKk;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$0xWa9DGxTnoGVHppsM-nng2PygE;->run()V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$KpFpi2qBs2OPscTclZ3JRRr-G-g;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Landroid/net/LinkAddress;)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$KpFpi2qBs2OPscTclZ3JRRr-G-g;->run()V
+HPLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$L7i_Z-ii6zMptHCt2_Igy3iBvKk;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$L7i_Z-ii6zMptHCt2_Igy3iBvKk;->run()V
-PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$QjjL0oku3yfQh6xuCG2xu7lWiSM;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;ZLandroid/net/RouteInfo;)V
-PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$QjjL0oku3yfQh6xuCG2xu7lWiSM;->run()V
-PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$hh3pIkVnnzeRGeDRAOOmVvc6VxE;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;J[Ljava/lang/String;)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$QjjL0oku3yfQh6xuCG2xu7lWiSM;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;ZLandroid/net/RouteInfo;)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$QjjL0oku3yfQh6xuCG2xu7lWiSM;->run()V
+PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$h2iz-IbnHpQ97mlJ7G62W2mmanw;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;)V
+PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$h2iz-IbnHpQ97mlJ7G62W2mmanw;->run()V
+HPLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$hh3pIkVnnzeRGeDRAOOmVvc6VxE;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;J[Ljava/lang/String;)V
PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$hh3pIkVnnzeRGeDRAOOmVvc6VxE;->run()V
-PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$pOV71EYm5PphEVG1PGQnV_c6XiA;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Z)V
-PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$pOV71EYm5PphEVG1PGQnV_c6XiA;->run()V
-PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$praKgcnQG9FTHNMGfCVPTVY8mK8;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Landroid/net/LinkAddress;)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$ne4qDQiQuX7-WNuF8Q_c7HnWnG0;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$ne4qDQiQuX7-WNuF8Q_c7HnWnG0;->run()V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$pOV71EYm5PphEVG1PGQnV_c6XiA;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Z)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$pOV71EYm5PphEVG1PGQnV_c6XiA;->run()V
+HPLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$praKgcnQG9FTHNMGfCVPTVY8mK8;-><init>(Lcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;Ljava/lang/String;Landroid/net/LinkAddress;)V
PLcom/android/server/-$$Lambda$NetworkManagementService$NetdUnsolicitedEventListener$praKgcnQG9FTHNMGfCVPTVY8mK8;->run()V
-PLcom/android/server/-$$Lambda$NetworkManagementService$RVCc8O9RWjyrynN9cyM7inAv-fk;-><init>(Ljava/lang/String;J[Ljava/lang/String;)V
+HPLcom/android/server/-$$Lambda$NetworkManagementService$RVCc8O9RWjyrynN9cyM7inAv-fk;-><init>(Ljava/lang/String;J[Ljava/lang/String;)V
PLcom/android/server/-$$Lambda$NetworkManagementService$RVCc8O9RWjyrynN9cyM7inAv-fk;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
PLcom/android/server/-$$Lambda$NetworkManagementService$VhSl9D6THA_3jE0unleMmkHavJ0;-><init>(Landroid/net/RouteInfo;)V
PLcom/android/server/-$$Lambda$NetworkManagementService$VhSl9D6THA_3jE0unleMmkHavJ0;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
PLcom/android/server/-$$Lambda$NetworkManagementService$YKgmK-4MuJjN-VLuMBhmJy1eWj4;-><init>(Lcom/android/server/NetworkManagementService;I)V
PLcom/android/server/-$$Lambda$NetworkManagementService$YKgmK-4MuJjN-VLuMBhmJy1eWj4;->run()V
-PLcom/android/server/-$$Lambda$NetworkManagementService$Yw12yNgo43yul34SibAKDtttAK8;-><init>(Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/-$$Lambda$NetworkManagementService$Yw12yNgo43yul34SibAKDtttAK8;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
-PLcom/android/server/-$$Lambda$NetworkManagementService$_L953cbquVj0BMBP1MZlSTm0Umg;-><init>(Ljava/lang/String;Z)V
-PLcom/android/server/-$$Lambda$NetworkManagementService$_L953cbquVj0BMBP1MZlSTm0Umg;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
-PLcom/android/server/-$$Lambda$NetworkManagementService$hs6djmKbGd8sG4u1TMglrogNP_s;-><init>(Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/-$$Lambda$NetworkManagementService$hs6djmKbGd8sG4u1TMglrogNP_s;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
-PLcom/android/server/-$$Lambda$NetworkManagementService$xer7k2RLU4mODjrkZqaX89S9gD8;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/-$$Lambda$NetworkManagementService$Yw12yNgo43yul34SibAKDtttAK8;-><init>(Ljava/lang/String;Landroid/net/LinkAddress;)V
+HPLcom/android/server/-$$Lambda$NetworkManagementService$Yw12yNgo43yul34SibAKDtttAK8;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$_L953cbquVj0BMBP1MZlSTm0Umg;-><init>(Ljava/lang/String;Z)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$_L953cbquVj0BMBP1MZlSTm0Umg;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$hs6djmKbGd8sG4u1TMglrogNP_s;-><init>(Ljava/lang/String;Landroid/net/LinkAddress;)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$hs6djmKbGd8sG4u1TMglrogNP_s;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$vX8dVVYxxv3YT9jQuN34bgGgRa8;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/-$$Lambda$NetworkManagementService$vX8dVVYxxv3YT9jQuN34bgGgRa8;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
+HPLcom/android/server/-$$Lambda$NetworkManagementService$xer7k2RLU4mODjrkZqaX89S9gD8;-><init>(Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/-$$Lambda$NetworkManagementService$xer7k2RLU4mODjrkZqaX89S9gD8;->sendCallback(Landroid/net/INetworkManagementEventObserver;)V
-PLcom/android/server/-$$Lambda$NetworkScoreService$vwytA23Qz3U83FJaKiA52aJ1mts;-><init>(Lcom/android/server/NetworkScoreService;)V
-PLcom/android/server/-$$Lambda$PackageWatchdog$07YAng9lcuyRJuBYy9Jk3p2pWVY;-><init>(Lcom/android/server/PackageWatchdog;)V
+HSPLcom/android/server/-$$Lambda$NetworkScoreService$vwytA23Qz3U83FJaKiA52aJ1mts;-><init>(Lcom/android/server/NetworkScoreService;)V
+PLcom/android/server/-$$Lambda$NetworkScoreService$vwytA23Qz3U83FJaKiA52aJ1mts;->getPackages(I)[Ljava/lang/String;
+HSPLcom/android/server/-$$Lambda$PackageWatchdog$07YAng9lcuyRJuBYy9Jk3p2pWVY;-><init>(Lcom/android/server/PackageWatchdog;)V
PLcom/android/server/-$$Lambda$PackageWatchdog$07YAng9lcuyRJuBYy9Jk3p2pWVY;->run()V
+HSPLcom/android/server/-$$Lambda$PackageWatchdog$9whbrgN2UsbVDUUSdkrctYqoh5M;-><init>(Lcom/android/server/PackageWatchdog;)V
+PLcom/android/server/-$$Lambda$PackageWatchdog$9whbrgN2UsbVDUUSdkrctYqoh5M;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
HSPLcom/android/server/-$$Lambda$PackageWatchdog$CQuOnXthwwBaxcS5WoAlJJAz8Tk;-><init>(Lcom/android/server/PackageWatchdog;)V
PLcom/android/server/-$$Lambda$PackageWatchdog$CQuOnXthwwBaxcS5WoAlJJAz8Tk;->run()V
-PLcom/android/server/-$$Lambda$PackageWatchdog$Jw3j5MJV779MFM4_82knw6ZMoQk;-><init>(Lcom/android/server/PackageWatchdog;)V
HSPLcom/android/server/-$$Lambda$PackageWatchdog$Q0WI2EJpRFO1jF_7_YDaj1eGHas;-><init>(Lcom/android/server/PackageWatchdog;)V
-PLcom/android/server/-$$Lambda$PackageWatchdog$Q0WI2EJpRFO1jF_7_YDaj1eGHas;->run()V
-PLcom/android/server/-$$Lambda$PackageWatchdog$dGAIdmdAmYvybYvlZcbaTbRfu2A;-><init>(Lcom/android/server/PackageWatchdog;Ljava/util/List;)V
-PLcom/android/server/-$$Lambda$PackageWatchdog$dGAIdmdAmYvybYvlZcbaTbRfu2A;->run()V
-PLcom/android/server/-$$Lambda$PackageWatchdog$f6jHIORczwNnfI1tpkrUzpu9mDk;-><init>(Lcom/android/server/PackageWatchdog;)V
-PLcom/android/server/-$$Lambda$PackageWatchdog$nOS9OaZO4hPsSe0I8skPT1UgQoo;-><init>(Lcom/android/server/PackageWatchdog;)V
-PLcom/android/server/-$$Lambda$PackageWatchdog$uFI2R7Ip9Bh1wQPJqJ5H5A0soVU;-><init>(Lcom/android/server/PackageWatchdog;)V
+HSPLcom/android/server/-$$Lambda$PackageWatchdog$Q0WI2EJpRFO1jF_7_YDaj1eGHas;->run()V
+PLcom/android/server/-$$Lambda$PackageWatchdog$hFdPWF73rahpzi1hJ-d9hNfUNrY;-><init>(Lcom/android/server/PackageWatchdog;ILjava/util/List;)V
+PLcom/android/server/-$$Lambda$PackageWatchdog$hFdPWF73rahpzi1hJ-d9hNfUNrY;->run()V
+HSPLcom/android/server/-$$Lambda$PackageWatchdog$nOS9OaZO4hPsSe0I8skPT1UgQoo;-><init>(Lcom/android/server/PackageWatchdog;)V
+HSPLcom/android/server/-$$Lambda$PackageWatchdog$oAoA92I4TtJeqztFu3XBOLEs7gE;-><init>(Lcom/android/server/PackageWatchdog;)V
+HSPLcom/android/server/-$$Lambda$PackageWatchdog$uFI2R7Ip9Bh1wQPJqJ5H5A0soVU;-><init>(Lcom/android/server/PackageWatchdog;)V
PLcom/android/server/-$$Lambda$PackageWatchdog$uFI2R7Ip9Bh1wQPJqJ5H5A0soVU;->accept(Ljava/lang/Object;)V
HSPLcom/android/server/-$$Lambda$PackageWatchdog$vRKcIrucEj03dz6ypRVINZtns1s;-><init>(Lcom/android/server/PackageWatchdog;)V
-PLcom/android/server/-$$Lambda$PersistentDataBlockService$EZl9OYaT2eNL7kfSr2nKUBjxidk;-><init>(Lcom/android/server/PersistentDataBlockService;)V
-PLcom/android/server/-$$Lambda$PersistentDataBlockService$EZl9OYaT2eNL7kfSr2nKUBjxidk;->run()V
-PLcom/android/server/-$$Lambda$PinnerService$3$3Ta6TX4Jq9YbpUYE5Y0r8Xt8rBw;-><clinit>()V
-PLcom/android/server/-$$Lambda$PinnerService$3$3Ta6TX4Jq9YbpUYE5Y0r8Xt8rBw;-><init>()V
-PLcom/android/server/-$$Lambda$PinnerService$3$3Ta6TX4Jq9YbpUYE5Y0r8Xt8rBw;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/-$$Lambda$PinnerService$3$RQBbrt9b8esLBxJImxDgVTsP34I;-><clinit>()V
-PLcom/android/server/-$$Lambda$PinnerService$3$RQBbrt9b8esLBxJImxDgVTsP34I;-><init>()V
-PLcom/android/server/-$$Lambda$PinnerService$3$RQBbrt9b8esLBxJImxDgVTsP34I;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/-$$Lambda$PersistentDataBlockService$EZl9OYaT2eNL7kfSr2nKUBjxidk;-><init>(Lcom/android/server/PersistentDataBlockService;)V
+HSPLcom/android/server/-$$Lambda$PersistentDataBlockService$EZl9OYaT2eNL7kfSr2nKUBjxidk;->run()V
+HSPLcom/android/server/-$$Lambda$PinnerService$3$3Ta6TX4Jq9YbpUYE5Y0r8Xt8rBw;-><clinit>()V
+HSPLcom/android/server/-$$Lambda$PinnerService$3$3Ta6TX4Jq9YbpUYE5Y0r8Xt8rBw;-><init>()V
+HSPLcom/android/server/-$$Lambda$PinnerService$3$3Ta6TX4Jq9YbpUYE5Y0r8Xt8rBw;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/-$$Lambda$PinnerService$3$RQBbrt9b8esLBxJImxDgVTsP34I;-><clinit>()V
+HSPLcom/android/server/-$$Lambda$PinnerService$3$RQBbrt9b8esLBxJImxDgVTsP34I;-><init>()V
+HSPLcom/android/server/-$$Lambda$PinnerService$3$RQBbrt9b8esLBxJImxDgVTsP34I;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/-$$Lambda$PinnerService$6bekYOn4YXi0x7vYNWO40QyA-s8;-><clinit>()V
PLcom/android/server/-$$Lambda$PinnerService$6bekYOn4YXi0x7vYNWO40QyA-s8;-><init>()V
PLcom/android/server/-$$Lambda$PinnerService$6bekYOn4YXi0x7vYNWO40QyA-s8;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/-$$Lambda$PinnerService$GeEX-8XoHeV0LEszxat7jOSlrs4;-><clinit>()V
-PLcom/android/server/-$$Lambda$PinnerService$GeEX-8XoHeV0LEszxat7jOSlrs4;-><init>()V
-PLcom/android/server/-$$Lambda$PinnerService$GeEX-8XoHeV0LEszxat7jOSlrs4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/-$$Lambda$PinnerService$GeEX-8XoHeV0LEszxat7jOSlrs4;-><clinit>()V
+HSPLcom/android/server/-$$Lambda$PinnerService$GeEX-8XoHeV0LEszxat7jOSlrs4;-><init>()V
+HSPLcom/android/server/-$$Lambda$PinnerService$GeEX-8XoHeV0LEszxat7jOSlrs4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/-$$Lambda$PruneInstantAppsJobService$i4sLSJdxcTXdgPAQZFbP66ZRprE;-><init>(Lcom/android/server/PruneInstantAppsJobService;Landroid/app/job/JobParameters;)V
PLcom/android/server/-$$Lambda$PruneInstantAppsJobService$i4sLSJdxcTXdgPAQZFbP66ZRprE;->run()V
PLcom/android/server/-$$Lambda$QDIfseHi3OqlANfwpoMGUUJDtAQ;-><init>(Lcom/android/server/GnssManagerService;)V
PLcom/android/server/-$$Lambda$QDIfseHi3OqlANfwpoMGUUJDtAQ;->accept(Ljava/lang/Object;)V
-PLcom/android/server/-$$Lambda$QTLvklqCTz22VSzZPEWJs-o0bv4;-><clinit>()V
-PLcom/android/server/-$$Lambda$QTLvklqCTz22VSzZPEWJs-o0bv4;-><init>()V
+HSPLcom/android/server/-$$Lambda$QTLvklqCTz22VSzZPEWJs-o0bv4;-><clinit>()V
+HSPLcom/android/server/-$$Lambda$QTLvklqCTz22VSzZPEWJs-o0bv4;-><init>()V
PLcom/android/server/-$$Lambda$QTLvklqCTz22VSzZPEWJs-o0bv4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/-$$Lambda$ServiceWatcher$IP3HV4ye72eH3YxzGb9dMfcGWPE;-><init>(Lcom/android/server/ServiceWatcher;)V
-PLcom/android/server/-$$Lambda$ServiceWatcher$IP3HV4ye72eH3YxzGb9dMfcGWPE;->run()V
-PLcom/android/server/-$$Lambda$ServiceWatcher$gVk2fFkq2-aamIua2kIpukAFtf8;-><init>(Lcom/android/server/ServiceWatcher;Lcom/android/server/ServiceWatcher$BinderRunner;)V
+HSPLcom/android/server/-$$Lambda$ServiceWatcher$IP3HV4ye72eH3YxzGb9dMfcGWPE;-><init>(Lcom/android/server/ServiceWatcher;)V
+HSPLcom/android/server/-$$Lambda$ServiceWatcher$IP3HV4ye72eH3YxzGb9dMfcGWPE;->run()V
+HPLcom/android/server/-$$Lambda$ServiceWatcher$gVk2fFkq2-aamIua2kIpukAFtf8;-><init>(Lcom/android/server/ServiceWatcher;Lcom/android/server/ServiceWatcher$BinderRunner;)V
PLcom/android/server/-$$Lambda$ServiceWatcher$gVk2fFkq2-aamIua2kIpukAFtf8;->run()V
+PLcom/android/server/-$$Lambda$ServiceWatcher$uCZpuTwrOz-CS9PQS2NY1ZXaU8U;-><init>(Lcom/android/server/ServiceWatcher;Landroid/content/ComponentName;)V
+PLcom/android/server/-$$Lambda$ServiceWatcher$uCZpuTwrOz-CS9PQS2NY1ZXaU8U;->run()V
PLcom/android/server/-$$Lambda$ServiceWatcher$uru7j1zD-GiN8rndFZ3KWaTrxYo;-><init>(Lcom/android/server/ServiceWatcher;Landroid/content/ComponentName;Landroid/os/IBinder;)V
PLcom/android/server/-$$Lambda$ServiceWatcher$uru7j1zD-GiN8rndFZ3KWaTrxYo;->run()V
-PLcom/android/server/-$$Lambda$StorageManagerService$js3bHvdd2Mf8gztNxvL27JoT034;-><init>(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/-$$Lambda$SystemServer$NlJmG18aPrQduhRqASIdcn7G0z8;-><clinit>()V
-PLcom/android/server/-$$Lambda$SystemServer$NlJmG18aPrQduhRqASIdcn7G0z8;-><init>()V
-PLcom/android/server/-$$Lambda$SystemServer$NlJmG18aPrQduhRqASIdcn7G0z8;->run()V
-PLcom/android/server/-$$Lambda$SystemServer$TEbRm_G0ejorrajBEvke8XmHuQU;-><init>(Lcom/android/server/SystemServer;Lcom/android/server/utils/TimingsTraceAndSlog;Landroid/content/Context;Lcom/android/server/wm/WindowManagerService;ZLcom/android/server/ConnectivityService;Lcom/android/server/NetworkManagementService;Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/IpSecService;Lcom/android/server/net/NetworkStatsService;Lcom/android/server/CountryDetectorService;Lcom/android/server/NetworkTimeUpdateService;Lcom/android/server/input/InputManagerService;Lcom/android/server/TelephonyRegistry;Lcom/android/server/media/MediaRouterService;Lcom/android/server/MmsServiceBroker;)V
-PLcom/android/server/-$$Lambda$SystemServer$TEbRm_G0ejorrajBEvke8XmHuQU;->run()V
-PLcom/android/server/-$$Lambda$SystemServer$UyrPns7R814g-ZEylCbDKhe8It4;-><clinit>()V
-PLcom/android/server/-$$Lambda$SystemServer$UyrPns7R814g-ZEylCbDKhe8It4;-><init>()V
-PLcom/android/server/-$$Lambda$SystemServer$UyrPns7R814g-ZEylCbDKhe8It4;->run()V
-PLcom/android/server/-$$Lambda$SystemServer$VBGb9VpEls6bUcVBPwYLtX7qDTs;-><clinit>()V
-PLcom/android/server/-$$Lambda$SystemServer$VBGb9VpEls6bUcVBPwYLtX7qDTs;-><init>()V
-PLcom/android/server/-$$Lambda$SystemServer$VBGb9VpEls6bUcVBPwYLtX7qDTs;->run()V
-PLcom/android/server/-$$Lambda$SystemServer$Y1gEdKr_Hb7K7cbTDAo_WOJ-SYI;-><init>(Lcom/android/server/SystemServer;)V
-PLcom/android/server/-$$Lambda$SystemServer$Y1gEdKr_Hb7K7cbTDAo_WOJ-SYI;->run()V
+HSPLcom/android/server/-$$Lambda$StorageManagerService$js3bHvdd2Mf8gztNxvL27JoT034;-><init>(Lcom/android/server/StorageManagerService;)V
+PLcom/android/server/-$$Lambda$StorageManagerService$js3bHvdd2Mf8gztNxvL27JoT034;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+HSPLcom/android/server/-$$Lambda$SystemServer$NlJmG18aPrQduhRqASIdcn7G0z8;-><clinit>()V
+HSPLcom/android/server/-$$Lambda$SystemServer$NlJmG18aPrQduhRqASIdcn7G0z8;-><init>()V
+HSPLcom/android/server/-$$Lambda$SystemServer$NlJmG18aPrQduhRqASIdcn7G0z8;->run()V
+HSPLcom/android/server/-$$Lambda$SystemServer$TEbRm_G0ejorrajBEvke8XmHuQU;-><init>(Lcom/android/server/SystemServer;Lcom/android/server/utils/TimingsTraceAndSlog;Landroid/content/Context;Lcom/android/server/wm/WindowManagerService;ZLcom/android/server/ConnectivityService;Lcom/android/server/NetworkManagementService;Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/IpSecService;Lcom/android/server/net/NetworkStatsService;Lcom/android/server/CountryDetectorService;Lcom/android/server/NetworkTimeUpdateService;Lcom/android/server/input/InputManagerService;Lcom/android/server/TelephonyRegistry;Lcom/android/server/media/MediaRouterService;Lcom/android/server/MmsServiceBroker;)V
+HSPLcom/android/server/-$$Lambda$SystemServer$TEbRm_G0ejorrajBEvke8XmHuQU;->run()V
+HSPLcom/android/server/-$$Lambda$SystemServer$UyrPns7R814g-ZEylCbDKhe8It4;-><clinit>()V
+HSPLcom/android/server/-$$Lambda$SystemServer$UyrPns7R814g-ZEylCbDKhe8It4;-><init>()V
+HSPLcom/android/server/-$$Lambda$SystemServer$UyrPns7R814g-ZEylCbDKhe8It4;->run()V
+HSPLcom/android/server/-$$Lambda$SystemServer$VBGb9VpEls6bUcVBPwYLtX7qDTs;-><clinit>()V
+HSPLcom/android/server/-$$Lambda$SystemServer$VBGb9VpEls6bUcVBPwYLtX7qDTs;-><init>()V
+HSPLcom/android/server/-$$Lambda$SystemServer$VBGb9VpEls6bUcVBPwYLtX7qDTs;->run()V
+HSPLcom/android/server/-$$Lambda$SystemServer$Y1gEdKr_Hb7K7cbTDAo_WOJ-SYI;-><init>(Lcom/android/server/SystemServer;)V
+HSPLcom/android/server/-$$Lambda$SystemServer$Y1gEdKr_Hb7K7cbTDAo_WOJ-SYI;->run()V
HSPLcom/android/server/-$$Lambda$SystemServerInitThreadPool$o2_GLo0lnkotYmRdTfg66UETEwQ;-><init>(Lcom/android/server/SystemServerInitThreadPool;Ljava/lang/String;Ljava/lang/Runnable;)V
HSPLcom/android/server/-$$Lambda$SystemServerInitThreadPool$o2_GLo0lnkotYmRdTfg66UETEwQ;->run()V
-PLcom/android/server/-$$Lambda$UiModeManagerService$vYS4_RzjAavNRF50rrGN0tXI5JM;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/-$$Lambda$UiModeManagerService$vuGxqIEDBezs_Xyz-NAh0Bonp5g;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/-$$Lambda$UiModeManagerService$vuGxqIEDBezs_Xyz-NAh0Bonp5g;->run()V
+HSPLcom/android/server/-$$Lambda$UiModeManagerService$vYS4_RzjAavNRF50rrGN0tXI5JM;-><init>(Lcom/android/server/UiModeManagerService;)V
+HSPLcom/android/server/-$$Lambda$UiModeManagerService$vuGxqIEDBezs_Xyz-NAh0Bonp5g;-><init>(Lcom/android/server/UiModeManagerService;)V
+HSPLcom/android/server/-$$Lambda$UiModeManagerService$vuGxqIEDBezs_Xyz-NAh0Bonp5g;->run()V
HSPLcom/android/server/-$$Lambda$YWiwiKm_Qgqb55C6tTuq_n2JzdY;-><clinit>()V
HSPLcom/android/server/-$$Lambda$YWiwiKm_Qgqb55C6tTuq_n2JzdY;-><init>()V
HSPLcom/android/server/-$$Lambda$YWiwiKm_Qgqb55C6tTuq_n2JzdY;->run()V
PLcom/android/server/-$$Lambda$hu439-4T6QBT8QyZnspMtXqICWs;-><clinit>()V
PLcom/android/server/-$$Lambda$hu439-4T6QBT8QyZnspMtXqICWs;-><init>()V
PLcom/android/server/-$$Lambda$hu439-4T6QBT8QyZnspMtXqICWs;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/-$$Lambda$jMDA_C1bkT6orVkYqrEdgiGSDI0;-><init>(Lcom/android/server/GnssManagerService;)V
PLcom/android/server/-$$Lambda$qoNbXUvSu3yuTPVXPUfZW_HDrTQ;-><clinit>()V
PLcom/android/server/-$$Lambda$qoNbXUvSu3yuTPVXPUfZW_HDrTQ;-><init>()V
+PLcom/android/server/-$$Lambda$qoNbXUvSu3yuTPVXPUfZW_HDrTQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
HSPLcom/android/server/-$$Lambda$u6uWKONNslLDvDcMfFfe2etQmKg;-><clinit>()V
HSPLcom/android/server/-$$Lambda$u6uWKONNslLDvDcMfFfe2etQmKg;-><init>()V
-PLcom/android/server/AlarmManagerService$1;-><init>(Lcom/android/server/AlarmManagerService;)V
-PLcom/android/server/AlarmManagerService$1;->compare(Lcom/android/server/AlarmManagerService$Alarm;Lcom/android/server/AlarmManagerService$Alarm;)I
-PLcom/android/server/AlarmManagerService$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/AlarmManagerService$2;-><init>(Lcom/android/server/AlarmManagerService;)V
+HSPLcom/android/server/AlarmManagerService$1;-><init>(Lcom/android/server/AlarmManagerService;)V
+HPLcom/android/server/AlarmManagerService$1;->compare(Lcom/android/server/AlarmManagerService$Alarm;Lcom/android/server/AlarmManagerService$Alarm;)I
+HPLcom/android/server/AlarmManagerService$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/AlarmManagerService$2;-><init>(Lcom/android/server/AlarmManagerService;)V
PLcom/android/server/AlarmManagerService$2;->doAlarm(Landroid/app/IAlarmCompleteListener;)V
PLcom/android/server/AlarmManagerService$2;->lambda$doAlarm$0$AlarmManagerService$2(Landroid/app/IAlarmCompleteListener;)V
-PLcom/android/server/AlarmManagerService$3;-><init>(Lcom/android/server/AlarmManagerService;)V
-PLcom/android/server/AlarmManagerService$3;->currentNetworkTimeMillis()J
-PLcom/android/server/AlarmManagerService$3;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo;
+HSPLcom/android/server/AlarmManagerService$3;-><init>(Lcom/android/server/AlarmManagerService;)V
+HSPLcom/android/server/AlarmManagerService$3;->currentNetworkTimeMillis()J
+PLcom/android/server/AlarmManagerService$3;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/AlarmManagerService$3;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo;
PLcom/android/server/AlarmManagerService$3;->getNextWakeFromIdleTime()J
-PLcom/android/server/AlarmManagerService$3;->remove(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
-HPLcom/android/server/AlarmManagerService$3;->set(Ljava/lang/String;IJJJILandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
-PLcom/android/server/AlarmManagerService$6;-><init>(Lcom/android/server/AlarmManagerService;)V
-HPLcom/android/server/AlarmManagerService$6;->onUidForeground(IZ)V
-PLcom/android/server/AlarmManagerService$6;->unblockAlarmsForUid(I)V
-HPLcom/android/server/AlarmManagerService$Alarm;-><init>(IJJJJJLandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;ILandroid/app/AlarmManager$AlarmClockInfo;ILjava/lang/String;)V
-HPLcom/android/server/AlarmManagerService$Alarm;->makeTag(Landroid/app/PendingIntent;Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/AlarmManagerService$Alarm;->matches(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)Z
-PLcom/android/server/AlarmManagerService$AlarmHandler;-><init>(Lcom/android/server/AlarmManagerService;)V
+HSPLcom/android/server/AlarmManagerService$3;->remove(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
+HSPLcom/android/server/AlarmManagerService$3;->set(Ljava/lang/String;IJJJILandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
+PLcom/android/server/AlarmManagerService$4;-><init>(Lcom/android/server/AlarmManagerService;)V
+PLcom/android/server/AlarmManagerService$4;->compare(Lcom/android/server/AlarmManagerService$FilterStats;Lcom/android/server/AlarmManagerService$FilterStats;)I
+PLcom/android/server/AlarmManagerService$4;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/AlarmManagerService$5;-><init>(Lcom/android/server/AlarmManagerService;)V
+PLcom/android/server/AlarmManagerService$5;->compare(Lcom/android/server/AlarmManagerService$FilterStats;Lcom/android/server/AlarmManagerService$FilterStats;)I
+PLcom/android/server/AlarmManagerService$5;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/AlarmManagerService$6;-><init>(Lcom/android/server/AlarmManagerService;)V
+HSPLcom/android/server/AlarmManagerService$6;->onUidForeground(IZ)V
+HSPLcom/android/server/AlarmManagerService$6;->unblockAlarmsForUid(I)V
+HSPLcom/android/server/AlarmManagerService$Alarm;-><init>(IJJJJJLandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;ILandroid/app/AlarmManager$AlarmClockInfo;ILjava/lang/String;)V
+PLcom/android/server/AlarmManagerService$Alarm;->dump(Ljava/io/PrintWriter;Ljava/lang/String;JJLjava/text/SimpleDateFormat;)V
+HPLcom/android/server/AlarmManagerService$Alarm;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JJJ)V
+HSPLcom/android/server/AlarmManagerService$Alarm;->makeTag(Landroid/app/PendingIntent;Ljava/lang/String;I)Ljava/lang/String;
+HSPLcom/android/server/AlarmManagerService$Alarm;->matches(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)Z
+PLcom/android/server/AlarmManagerService$Alarm;->toString()Ljava/lang/String;
+HSPLcom/android/server/AlarmManagerService$AlarmHandler;-><init>(Lcom/android/server/AlarmManagerService;)V
HPLcom/android/server/AlarmManagerService$AlarmHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/AlarmManagerService$AlarmThread;-><init>(Lcom/android/server/AlarmManagerService;)V
-PLcom/android/server/AlarmManagerService$AlarmThread;->run()V
-PLcom/android/server/AlarmManagerService$AppStandbyTracker;-><init>(Lcom/android/server/AlarmManagerService;)V
-PLcom/android/server/AlarmManagerService$AppStandbyTracker;-><init>(Lcom/android/server/AlarmManagerService;Lcom/android/server/AlarmManagerService$1;)V
+HSPLcom/android/server/AlarmManagerService$AlarmThread;-><init>(Lcom/android/server/AlarmManagerService;)V
+HSPLcom/android/server/AlarmManagerService$AlarmThread;->run()V
+HSPLcom/android/server/AlarmManagerService$AppStandbyTracker;-><init>(Lcom/android/server/AlarmManagerService;)V
+HSPLcom/android/server/AlarmManagerService$AppStandbyTracker;-><init>(Lcom/android/server/AlarmManagerService;Lcom/android/server/AlarmManagerService$1;)V
PLcom/android/server/AlarmManagerService$AppStandbyTracker;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
-PLcom/android/server/AlarmManagerService$AppWakeupHistory;-><init>(J)V
+HSPLcom/android/server/AlarmManagerService$AppWakeupHistory;-><init>(J)V
+PLcom/android/server/AlarmManagerService$AppWakeupHistory;->dump(Lcom/android/internal/util/IndentingPrintWriter;J)V
+PLcom/android/server/AlarmManagerService$AppWakeupHistory;->dump(Ljava/io/PrintWriter;Ljava/lang/String;J)V
+HPLcom/android/server/AlarmManagerService$AppWakeupHistory;->getLastWakeupForPackage(Ljava/lang/String;II)J
PLcom/android/server/AlarmManagerService$AppWakeupHistory;->getTotalWakeupsInWindow(Ljava/lang/String;I)I
-PLcom/android/server/AlarmManagerService$AppWakeupHistory;->recordAlarmForPackage(Ljava/lang/String;IJ)V
-HPLcom/android/server/AlarmManagerService$Batch;-><init>(Lcom/android/server/AlarmManagerService;Lcom/android/server/AlarmManagerService$Alarm;)V
-HPLcom/android/server/AlarmManagerService$Batch;->add(Lcom/android/server/AlarmManagerService$Alarm;)Z
-PLcom/android/server/AlarmManagerService$Batch;->canHold(JJ)Z
-PLcom/android/server/AlarmManagerService$Batch;->get(I)Lcom/android/server/AlarmManagerService$Alarm;
-PLcom/android/server/AlarmManagerService$Batch;->hasWakeups()Z
-HPLcom/android/server/AlarmManagerService$Batch;->remove(Ljava/util/function/Predicate;Z)Z
-PLcom/android/server/AlarmManagerService$Batch;->size()I
-PLcom/android/server/AlarmManagerService$BatchTimeOrder;-><init>()V
-PLcom/android/server/AlarmManagerService$BatchTimeOrder;->compare(Lcom/android/server/AlarmManagerService$Batch;Lcom/android/server/AlarmManagerService$Batch;)I
-HPLcom/android/server/AlarmManagerService$BatchTimeOrder;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HPLcom/android/server/AlarmManagerService$AppWakeupHistory;->recordAlarmForPackage(Ljava/lang/String;IJ)V
+PLcom/android/server/AlarmManagerService$AppWakeupHistory;->snapToWindow(Landroid/util/LongArrayQueue;)V
+HSPLcom/android/server/AlarmManagerService$Batch;-><init>(Lcom/android/server/AlarmManagerService;Lcom/android/server/AlarmManagerService$Alarm;)V
+HSPLcom/android/server/AlarmManagerService$Batch;->add(Lcom/android/server/AlarmManagerService$Alarm;)Z
+HSPLcom/android/server/AlarmManagerService$Batch;->canHold(JJ)Z
+HPLcom/android/server/AlarmManagerService$Batch;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JJJ)V
+HPLcom/android/server/AlarmManagerService$Batch;->get(I)Lcom/android/server/AlarmManagerService$Alarm;
+HSPLcom/android/server/AlarmManagerService$Batch;->hasWakeups()Z
+HSPLcom/android/server/AlarmManagerService$Batch;->remove(Ljava/util/function/Predicate;Z)Z
+HSPLcom/android/server/AlarmManagerService$Batch;->size()I
+PLcom/android/server/AlarmManagerService$Batch;->toString()Ljava/lang/String;
+HSPLcom/android/server/AlarmManagerService$BatchTimeOrder;-><init>()V
+HSPLcom/android/server/AlarmManagerService$BatchTimeOrder;->compare(Lcom/android/server/AlarmManagerService$Batch;Lcom/android/server/AlarmManagerService$Batch;)I
+HSPLcom/android/server/AlarmManagerService$BatchTimeOrder;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
PLcom/android/server/AlarmManagerService$BroadcastStats;-><init>(ILjava/lang/String;)V
-PLcom/android/server/AlarmManagerService$ChargingReceiver;-><init>(Lcom/android/server/AlarmManagerService;)V
+HPLcom/android/server/AlarmManagerService$BroadcastStats;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/AlarmManagerService$ChargingReceiver;-><init>(Lcom/android/server/AlarmManagerService;)V
PLcom/android/server/AlarmManagerService$ChargingReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/AlarmManagerService$ClockReceiver;-><init>(Lcom/android/server/AlarmManagerService;)V
+HSPLcom/android/server/AlarmManagerService$ClockReceiver;-><init>(Lcom/android/server/AlarmManagerService;)V
PLcom/android/server/AlarmManagerService$ClockReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/AlarmManagerService$ClockReceiver;->scheduleDateChangedEvent()V
-PLcom/android/server/AlarmManagerService$ClockReceiver;->scheduleTimeTickEvent()V
-PLcom/android/server/AlarmManagerService$Constants;-><init>(Lcom/android/server/AlarmManagerService;Landroid/os/Handler;)V
-PLcom/android/server/AlarmManagerService$Constants;->start(Landroid/content/ContentResolver;)V
-PLcom/android/server/AlarmManagerService$Constants;->updateAllowWhileIdleWhitelistDurationLocked()V
-PLcom/android/server/AlarmManagerService$Constants;->updateConstants()V
-PLcom/android/server/AlarmManagerService$DeliveryTracker;-><init>(Lcom/android/server/AlarmManagerService;)V
-PLcom/android/server/AlarmManagerService$DeliveryTracker;->alarmComplete(Landroid/os/IBinder;)V
-PLcom/android/server/AlarmManagerService$DeliveryTracker;->deliverLocked(Lcom/android/server/AlarmManagerService$Alarm;JZ)V
-PLcom/android/server/AlarmManagerService$DeliveryTracker;->onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V
-PLcom/android/server/AlarmManagerService$DeliveryTracker;->removeLocked(Landroid/app/PendingIntent;Landroid/content/Intent;)Lcom/android/server/AlarmManagerService$InFlight;
-PLcom/android/server/AlarmManagerService$DeliveryTracker;->removeLocked(Landroid/os/IBinder;)Lcom/android/server/AlarmManagerService$InFlight;
-PLcom/android/server/AlarmManagerService$DeliveryTracker;->updateStatsLocked(Lcom/android/server/AlarmManagerService$InFlight;)V
-PLcom/android/server/AlarmManagerService$DeliveryTracker;->updateTrackingLocked(Lcom/android/server/AlarmManagerService$InFlight;)V
+HSPLcom/android/server/AlarmManagerService$ClockReceiver;->scheduleDateChangedEvent()V
+HSPLcom/android/server/AlarmManagerService$ClockReceiver;->scheduleTimeTickEvent()V
+HSPLcom/android/server/AlarmManagerService$Constants;-><init>(Lcom/android/server/AlarmManagerService;Landroid/os/Handler;)V
+PLcom/android/server/AlarmManagerService$Constants;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/AlarmManagerService$Constants;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/AlarmManagerService$Constants;->dumpProto(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/AlarmManagerService$Constants;->start(Landroid/content/ContentResolver;)V
+HSPLcom/android/server/AlarmManagerService$Constants;->updateAllowWhileIdleWhitelistDurationLocked()V
+HSPLcom/android/server/AlarmManagerService$Constants;->updateConstants()V
+HSPLcom/android/server/AlarmManagerService$DeliveryTracker;-><init>(Lcom/android/server/AlarmManagerService;)V
+HPLcom/android/server/AlarmManagerService$DeliveryTracker;->alarmComplete(Landroid/os/IBinder;)V
+PLcom/android/server/AlarmManagerService$DeliveryTracker;->alarmTimedOut(Landroid/os/IBinder;)V
+HPLcom/android/server/AlarmManagerService$DeliveryTracker;->deliverLocked(Lcom/android/server/AlarmManagerService$Alarm;JZ)V
+HPLcom/android/server/AlarmManagerService$DeliveryTracker;->onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V
+HPLcom/android/server/AlarmManagerService$DeliveryTracker;->removeLocked(Landroid/app/PendingIntent;Landroid/content/Intent;)Lcom/android/server/AlarmManagerService$InFlight;
+HPLcom/android/server/AlarmManagerService$DeliveryTracker;->removeLocked(Landroid/os/IBinder;)Lcom/android/server/AlarmManagerService$InFlight;
+HPLcom/android/server/AlarmManagerService$DeliveryTracker;->updateStatsLocked(Lcom/android/server/AlarmManagerService$InFlight;)V
+HPLcom/android/server/AlarmManagerService$DeliveryTracker;->updateTrackingLocked(Lcom/android/server/AlarmManagerService$InFlight;)V
PLcom/android/server/AlarmManagerService$FilterStats;-><init>(Lcom/android/server/AlarmManagerService$BroadcastStats;Ljava/lang/String;)V
+HPLcom/android/server/AlarmManagerService$FilterStats;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HPLcom/android/server/AlarmManagerService$InFlight;-><init>(Lcom/android/server/AlarmManagerService;Lcom/android/server/AlarmManagerService$Alarm;J)V
-PLcom/android/server/AlarmManagerService$InFlight;->isBroadcast()Z
-PLcom/android/server/AlarmManagerService$IncreasingTimeOrder;-><init>()V
-PLcom/android/server/AlarmManagerService$IncreasingTimeOrder;->compare(Lcom/android/server/AlarmManagerService$Alarm;Lcom/android/server/AlarmManagerService$Alarm;)I
-HPLcom/android/server/AlarmManagerService$IncreasingTimeOrder;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/AlarmManagerService$Injector;-><init>(Landroid/content/Context;)V
-PLcom/android/server/AlarmManagerService$Injector;->getAlarmWakeLock()Landroid/os/PowerManager$WakeLock;
-PLcom/android/server/AlarmManagerService$Injector;->getClockReceiver(Lcom/android/server/AlarmManagerService;)Lcom/android/server/AlarmManagerService$ClockReceiver;
-PLcom/android/server/AlarmManagerService$Injector;->getCurrentTimeMillis()J
-HPLcom/android/server/AlarmManagerService$Injector;->getElapsedRealtime()J
-PLcom/android/server/AlarmManagerService$Injector;->getSystemUiUid()I
-PLcom/android/server/AlarmManagerService$Injector;->init()V
-PLcom/android/server/AlarmManagerService$Injector;->isAlarmDriverPresent()Z
-HPLcom/android/server/AlarmManagerService$Injector;->setAlarm(IJ)V
-PLcom/android/server/AlarmManagerService$Injector;->setKernelTimezone(I)V
-PLcom/android/server/AlarmManagerService$Injector;->waitForAlarm()I
-PLcom/android/server/AlarmManagerService$InteractiveStateReceiver;-><init>(Lcom/android/server/AlarmManagerService;)V
+HPLcom/android/server/AlarmManagerService$InFlight;->isBroadcast()Z
+HSPLcom/android/server/AlarmManagerService$IncreasingTimeOrder;-><init>()V
+HSPLcom/android/server/AlarmManagerService$IncreasingTimeOrder;->compare(Lcom/android/server/AlarmManagerService$Alarm;Lcom/android/server/AlarmManagerService$Alarm;)I
+HSPLcom/android/server/AlarmManagerService$IncreasingTimeOrder;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/AlarmManagerService$Injector;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/AlarmManagerService$Injector;->getAlarmWakeLock()Landroid/os/PowerManager$WakeLock;
+HSPLcom/android/server/AlarmManagerService$Injector;->getClockReceiver(Lcom/android/server/AlarmManagerService;)Lcom/android/server/AlarmManagerService$ClockReceiver;
+HSPLcom/android/server/AlarmManagerService$Injector;->getCurrentTimeMillis()J
+HSPLcom/android/server/AlarmManagerService$Injector;->getElapsedRealtime()J
+PLcom/android/server/AlarmManagerService$Injector;->getNextAlarm(I)J
+HSPLcom/android/server/AlarmManagerService$Injector;->getSystemUiUid()I
+HSPLcom/android/server/AlarmManagerService$Injector;->init()V
+HSPLcom/android/server/AlarmManagerService$Injector;->isAlarmDriverPresent()Z
+HSPLcom/android/server/AlarmManagerService$Injector;->setAlarm(IJ)V
+HSPLcom/android/server/AlarmManagerService$Injector;->setKernelTimezone(I)V
+HSPLcom/android/server/AlarmManagerService$Injector;->waitForAlarm()I
+HSPLcom/android/server/AlarmManagerService$InteractiveStateReceiver;-><init>(Lcom/android/server/AlarmManagerService;)V
PLcom/android/server/AlarmManagerService$InteractiveStateReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/AlarmManagerService$LocalService;-><init>(Lcom/android/server/AlarmManagerService;)V
-PLcom/android/server/AlarmManagerService$LocalService;-><init>(Lcom/android/server/AlarmManagerService;Lcom/android/server/AlarmManagerService$1;)V
+HSPLcom/android/server/AlarmManagerService$LocalService;-><init>(Lcom/android/server/AlarmManagerService;)V
+HSPLcom/android/server/AlarmManagerService$LocalService;-><init>(Lcom/android/server/AlarmManagerService;Lcom/android/server/AlarmManagerService$1;)V
PLcom/android/server/AlarmManagerService$LocalService;->isIdling()Z
-PLcom/android/server/AlarmManagerService$LocalService;->registerInFlightListener(Lcom/android/server/AlarmManagerInternal$InFlightListener;)V
-PLcom/android/server/AlarmManagerService$LocalService;->removeAlarmsForUid(I)V
+HSPLcom/android/server/AlarmManagerService$LocalService;->registerInFlightListener(Lcom/android/server/AlarmManagerInternal$InFlightListener;)V
+PLcom/android/server/AlarmManagerService$LocalService;->remove(Landroid/app/PendingIntent;)V
PLcom/android/server/AlarmManagerService$PriorityClass;-><init>(Lcom/android/server/AlarmManagerService;)V
-PLcom/android/server/AlarmManagerService$UidObserver;-><init>(Lcom/android/server/AlarmManagerService;)V
-PLcom/android/server/AlarmManagerService$UidObserver;->onUidActive(I)V
-PLcom/android/server/AlarmManagerService$UidObserver;->onUidGone(IZ)V
-PLcom/android/server/AlarmManagerService$UidObserver;->onUidIdle(IZ)V
-PLcom/android/server/AlarmManagerService$UninstallReceiver;-><init>(Lcom/android/server/AlarmManagerService;)V
+HSPLcom/android/server/AlarmManagerService$UidObserver;-><init>(Lcom/android/server/AlarmManagerService;)V
+HSPLcom/android/server/AlarmManagerService$UidObserver;->onUidActive(I)V
+HSPLcom/android/server/AlarmManagerService$UidObserver;->onUidGone(IZ)V
+HSPLcom/android/server/AlarmManagerService$UidObserver;->onUidIdle(IZ)V
+HSPLcom/android/server/AlarmManagerService$UninstallReceiver;-><init>(Lcom/android/server/AlarmManagerService;)V
PLcom/android/server/AlarmManagerService$UninstallReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/AlarmManagerService;-><clinit>()V
-PLcom/android/server/AlarmManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/AlarmManagerService;-><init>(Landroid/content/Context;Lcom/android/server/AlarmManagerService$Injector;)V
-PLcom/android/server/AlarmManagerService;->access$002(Lcom/android/server/AlarmManagerService;J)J
-HPLcom/android/server/AlarmManagerService;->access$100(Lcom/android/server/AlarmManagerService;)Lcom/android/server/AlarmManagerService$Injector;
+HSPLcom/android/server/AlarmManagerService;-><clinit>()V
+HSPLcom/android/server/AlarmManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/AlarmManagerService;-><init>(Landroid/content/Context;Lcom/android/server/AlarmManagerService$Injector;)V
+HSPLcom/android/server/AlarmManagerService;->access$002(Lcom/android/server/AlarmManagerService;J)J
+HSPLcom/android/server/AlarmManagerService;->access$100(Lcom/android/server/AlarmManagerService;)Lcom/android/server/AlarmManagerService$Injector;
PLcom/android/server/AlarmManagerService;->access$1000(Lcom/android/server/AlarmManagerService;)Z
-PLcom/android/server/AlarmManagerService;->access$1100(Lcom/android/server/AlarmManagerService;)Ljava/util/ArrayList;
-PLcom/android/server/AlarmManagerService;->access$1200(Lcom/android/server/AlarmManagerService;)Lcom/android/server/AppStateTracker;
-PLcom/android/server/AlarmManagerService;->access$1400()J
-PLcom/android/server/AlarmManagerService;->access$1500(J)I
-PLcom/android/server/AlarmManagerService;->access$1600(JIJJ)I
-PLcom/android/server/AlarmManagerService;->access$1800(JI)I
+HSPLcom/android/server/AlarmManagerService;->access$1100(Lcom/android/server/AlarmManagerService;)Ljava/util/ArrayList;
+HPLcom/android/server/AlarmManagerService;->access$1200(Lcom/android/server/AlarmManagerService;)Lcom/android/server/AppStateTracker;
+HSPLcom/android/server/AlarmManagerService;->access$1400()J
+HSPLcom/android/server/AlarmManagerService;->access$1500(J)I
+HSPLcom/android/server/AlarmManagerService;->access$1600(JIJJ)I
+HSPLcom/android/server/AlarmManagerService;->access$1800(JI)I
PLcom/android/server/AlarmManagerService;->access$200(Lcom/android/server/AlarmManagerService;II)V
-PLcom/android/server/AlarmManagerService;->access$2102(Lcom/android/server/AlarmManagerService;J)J
-PLcom/android/server/AlarmManagerService;->access$2202(Lcom/android/server/AlarmManagerService;J)J
-PLcom/android/server/AlarmManagerService;->access$2300(Lcom/android/server/AlarmManagerService;)V
-PLcom/android/server/AlarmManagerService;->access$2400(Lcom/android/server/AlarmManagerService;Lcom/android/server/AlarmManagerService$Alarm;)Z
-PLcom/android/server/AlarmManagerService;->access$2702(Lcom/android/server/AlarmManagerService;J)J
+HPLcom/android/server/AlarmManagerService;->access$2102(Lcom/android/server/AlarmManagerService;J)J
+HPLcom/android/server/AlarmManagerService;->access$2202(Lcom/android/server/AlarmManagerService;J)J
+HPLcom/android/server/AlarmManagerService;->access$2300(Lcom/android/server/AlarmManagerService;)V
+HPLcom/android/server/AlarmManagerService;->access$2400(Lcom/android/server/AlarmManagerService;Lcom/android/server/AlarmManagerService$Alarm;)Z
+HSPLcom/android/server/AlarmManagerService;->access$2702(Lcom/android/server/AlarmManagerService;J)J
+PLcom/android/server/AlarmManagerService;->access$2800(Lcom/android/server/AlarmManagerService;I)V
PLcom/android/server/AlarmManagerService;->access$2908(Lcom/android/server/AlarmManagerService;)I
+PLcom/android/server/AlarmManagerService;->access$3008(Lcom/android/server/AlarmManagerService;)I
PLcom/android/server/AlarmManagerService;->access$3100(Lcom/android/server/AlarmManagerService$Alarm;)I
+PLcom/android/server/AlarmManagerService;->access$3208(Lcom/android/server/AlarmManagerService;)I
+PLcom/android/server/AlarmManagerService;->access$3300(Lcom/android/server/AlarmManagerService;)Landroid/content/Intent;
PLcom/android/server/AlarmManagerService;->access$3408(Lcom/android/server/AlarmManagerService;)I
-PLcom/android/server/AlarmManagerService;->access$3500(Lcom/android/server/AlarmManagerService;)[J
-PLcom/android/server/AlarmManagerService;->access$3600(Lcom/android/server/AlarmManagerService;)I
-PLcom/android/server/AlarmManagerService;->access$3608(Lcom/android/server/AlarmManagerService;)I
+PLcom/android/server/AlarmManagerService;->access$3700(Lcom/android/server/AlarmManagerService;I)V
+PLcom/android/server/AlarmManagerService;->access$500(Lcom/android/server/AlarmManagerService;Landroid/app/PendingIntent;)Lcom/android/server/AlarmManagerService$BroadcastStats;
PLcom/android/server/AlarmManagerService;->access$600(Lcom/android/server/AlarmManagerService;ILjava/lang/String;)Lcom/android/server/AlarmManagerService$BroadcastStats;
-PLcom/android/server/AlarmManagerService;->access$702(Lcom/android/server/AlarmManagerService;J)J
-PLcom/android/server/AlarmManagerService;->addBatchLocked(Ljava/util/ArrayList;Lcom/android/server/AlarmManagerService$Batch;)Z
-HPLcom/android/server/AlarmManagerService;->adjustDeliveryTimeBasedOnBucketLocked(Lcom/android/server/AlarmManagerService$Alarm;)Z
-HPLcom/android/server/AlarmManagerService;->attemptCoalesceLocked(JJ)I
-PLcom/android/server/AlarmManagerService;->calculateDeliveryPriorities(Ljava/util/ArrayList;)V
-PLcom/android/server/AlarmManagerService;->checkAllowNonWakeupDelayLocked(J)Z
-PLcom/android/server/AlarmManagerService;->clampPositive(J)J
-HPLcom/android/server/AlarmManagerService;->convertToElapsed(JI)J
+HSPLcom/android/server/AlarmManagerService;->addBatchLocked(Ljava/util/ArrayList;Lcom/android/server/AlarmManagerService$Batch;)Z
+HSPLcom/android/server/AlarmManagerService;->adjustDeliveryTimeBasedOnBucketLocked(Lcom/android/server/AlarmManagerService$Alarm;)Z
+HSPLcom/android/server/AlarmManagerService;->attemptCoalesceLocked(JJ)I
+HPLcom/android/server/AlarmManagerService;->calculateDeliveryPriorities(Ljava/util/ArrayList;)V
+HPLcom/android/server/AlarmManagerService;->checkAllowNonWakeupDelayLocked(J)Z
+HSPLcom/android/server/AlarmManagerService;->clampPositive(J)J
+HSPLcom/android/server/AlarmManagerService;->convertToElapsed(JI)J
PLcom/android/server/AlarmManagerService;->currentNonWakeupFuzzLocked(J)J
HPLcom/android/server/AlarmManagerService;->decrementAlarmCount(II)V
-PLcom/android/server/AlarmManagerService;->deliverAlarmsLocked(Ljava/util/ArrayList;J)V
-PLcom/android/server/AlarmManagerService;->findFirstWakeupBatchLocked()Lcom/android/server/AlarmManagerService$Batch;
+HPLcom/android/server/AlarmManagerService;->deliverAlarmsLocked(Ljava/util/ArrayList;J)V
+PLcom/android/server/AlarmManagerService;->dumpAlarmList(Ljava/io/PrintWriter;Ljava/util/ArrayList;Ljava/lang/String;JJLjava/text/SimpleDateFormat;)V
+PLcom/android/server/AlarmManagerService;->dumpImpl(Ljava/io/PrintWriter;)V
+PLcom/android/server/AlarmManagerService;->dumpProto(Ljava/io/FileDescriptor;)V
+HSPLcom/android/server/AlarmManagerService;->findFirstWakeupBatchLocked()Lcom/android/server/AlarmManagerService$Batch;
+PLcom/android/server/AlarmManagerService;->formatNextAlarm(Landroid/content/Context;Landroid/app/AlarmManager$AlarmClockInfo;I)Ljava/lang/String;
PLcom/android/server/AlarmManagerService;->getAlarmAttributionUid(Lcom/android/server/AlarmManagerService$Alarm;)I
PLcom/android/server/AlarmManagerService;->getAlarmCount(Ljava/util/ArrayList;)I
-PLcom/android/server/AlarmManagerService;->getNextAlarmClockImpl(I)Landroid/app/AlarmManager$AlarmClockInfo;
+HSPLcom/android/server/AlarmManagerService;->getNextAlarmClockImpl(I)Landroid/app/AlarmManager$AlarmClockInfo;
PLcom/android/server/AlarmManagerService;->getNextWakeFromIdleTimeImpl()J
PLcom/android/server/AlarmManagerService;->getQuotaForBucketLocked(I)I
-PLcom/android/server/AlarmManagerService;->getStatsLocked(ILjava/lang/String;)Lcom/android/server/AlarmManagerService$BroadcastStats;
+HPLcom/android/server/AlarmManagerService;->getStatsLocked(ILjava/lang/String;)Lcom/android/server/AlarmManagerService$BroadcastStats;
+PLcom/android/server/AlarmManagerService;->getStatsLocked(Landroid/app/PendingIntent;)Lcom/android/server/AlarmManagerService$BroadcastStats;
PLcom/android/server/AlarmManagerService;->getWhileIdleMinIntervalLocked(I)J
HPLcom/android/server/AlarmManagerService;->haveAlarmsTimeTickAlarm(Ljava/util/ArrayList;)Z
PLcom/android/server/AlarmManagerService;->haveBatchesTimeTickAlarm(Ljava/util/ArrayList;)Z
-HPLcom/android/server/AlarmManagerService;->incrementAlarmCount(I)V
-HPLcom/android/server/AlarmManagerService;->insertAndBatchAlarmLocked(Lcom/android/server/AlarmManagerService$Alarm;)V
+HSPLcom/android/server/AlarmManagerService;->incrementAlarmCount(I)V
+HSPLcom/android/server/AlarmManagerService;->insertAndBatchAlarmLocked(Lcom/android/server/AlarmManagerService$Alarm;)V
PLcom/android/server/AlarmManagerService;->interactiveStateChangedLocked(Z)V
-PLcom/android/server/AlarmManagerService;->isBackgroundRestricted(Lcom/android/server/AlarmManagerService$Alarm;)Z
-PLcom/android/server/AlarmManagerService;->isExemptFromAppStandby(Lcom/android/server/AlarmManagerService$Alarm;)Z
+HPLcom/android/server/AlarmManagerService;->isBackgroundRestricted(Lcom/android/server/AlarmManagerService$Alarm;)Z
+HSPLcom/android/server/AlarmManagerService;->isExemptFromAppStandby(Lcom/android/server/AlarmManagerService$Alarm;)Z
PLcom/android/server/AlarmManagerService;->isIdlingImpl()Z
-PLcom/android/server/AlarmManagerService;->lambda$removeLocked$0(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;Lcom/android/server/AlarmManagerService$Alarm;)Z
-HPLcom/android/server/AlarmManagerService;->maxTriggerTime(JJJ)J
-PLcom/android/server/AlarmManagerService;->onBootPhase(I)V
-PLcom/android/server/AlarmManagerService;->onStart()V
+HSPLcom/android/server/AlarmManagerService;->lambda$removeLocked$0(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;Lcom/android/server/AlarmManagerService$Alarm;)Z
+HSPLcom/android/server/AlarmManagerService;->maxTriggerTime(JJJ)J
+PLcom/android/server/AlarmManagerService;->notifyBroadcastAlarmCompleteLocked(I)V
+PLcom/android/server/AlarmManagerService;->notifyBroadcastAlarmPendingLocked(I)V
+HSPLcom/android/server/AlarmManagerService;->onBootPhase(I)V
+HSPLcom/android/server/AlarmManagerService;->onStart()V
HPLcom/android/server/AlarmManagerService;->reAddAlarmLocked(Lcom/android/server/AlarmManagerService$Alarm;JZ)V
PLcom/android/server/AlarmManagerService;->rebatchAllAlarms()V
HPLcom/android/server/AlarmManagerService;->rebatchAllAlarmsLocked(Z)V
PLcom/android/server/AlarmManagerService;->removeImpl(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
-PLcom/android/server/AlarmManagerService;->removeLocked(I)V
-HPLcom/android/server/AlarmManagerService;->removeLocked(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
+HSPLcom/android/server/AlarmManagerService;->removeLocked(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
HPLcom/android/server/AlarmManagerService;->reorderAlarmsBasedOnStandbyBuckets(Landroid/util/ArraySet;)Z
-HPLcom/android/server/AlarmManagerService;->rescheduleKernelAlarmsLocked()V
-PLcom/android/server/AlarmManagerService;->restorePendingWhileIdleAlarmsLocked()V
-PLcom/android/server/AlarmManagerService;->sendPendingBackgroundAlarmsLocked(ILjava/lang/String;)V
-HPLcom/android/server/AlarmManagerService;->setImpl(IJJJLandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;ILandroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;ILjava/lang/String;)V
-HPLcom/android/server/AlarmManagerService;->setImplLocked(IJJJJJLandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;IZLandroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;ILjava/lang/String;)V
-HPLcom/android/server/AlarmManagerService;->setImplLocked(Lcom/android/server/AlarmManagerService$Alarm;ZZ)V
-HPLcom/android/server/AlarmManagerService;->setLocked(IJ)V
-PLcom/android/server/AlarmManagerService;->setTimeZoneImpl(Ljava/lang/String;)V
-PLcom/android/server/AlarmManagerService;->setWakelockWorkSource(Landroid/os/WorkSource;ILjava/lang/String;Z)V
+HSPLcom/android/server/AlarmManagerService;->rescheduleKernelAlarmsLocked()V
+HPLcom/android/server/AlarmManagerService;->restorePendingWhileIdleAlarmsLocked()V
+PLcom/android/server/AlarmManagerService;->sendNextAlarmClockChanged()V
+HSPLcom/android/server/AlarmManagerService;->sendPendingBackgroundAlarmsLocked(ILjava/lang/String;)V
+HSPLcom/android/server/AlarmManagerService;->setImpl(IJJJLandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;ILandroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;ILjava/lang/String;)V
+HSPLcom/android/server/AlarmManagerService;->setImplLocked(IJJJJJLandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;IZLandroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;ILjava/lang/String;)V
+HSPLcom/android/server/AlarmManagerService;->setImplLocked(Lcom/android/server/AlarmManagerService$Alarm;ZZ)V
+HSPLcom/android/server/AlarmManagerService;->setLocked(IJ)V
+HSPLcom/android/server/AlarmManagerService;->setTimeZoneImpl(Ljava/lang/String;)V
+HPLcom/android/server/AlarmManagerService;->setWakelockWorkSource(Landroid/os/WorkSource;ILjava/lang/String;Z)V
HPLcom/android/server/AlarmManagerService;->triggerAlarmsLocked(Ljava/util/ArrayList;J)Z
-HPLcom/android/server/AlarmManagerService;->updateNextAlarmClockLocked()V
+HSPLcom/android/server/AlarmManagerService;->updateNextAlarmClockLocked()V
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/AppStateTracker$AppOpsWatcher;-><init>(Lcom/android/server/AppStateTracker;)V
-PLcom/android/server/AppStateTracker$AppOpsWatcher;-><init>(Lcom/android/server/AppStateTracker;Lcom/android/server/AppStateTracker$1;)V
-PLcom/android/server/AppStateTracker$FeatureFlagsObserver;-><init>(Lcom/android/server/AppStateTracker;)V
-PLcom/android/server/AppStateTracker$FeatureFlagsObserver;->isForcedAppStandbyEnabled()Z
-PLcom/android/server/AppStateTracker$FeatureFlagsObserver;->isForcedAppStandbyForSmallBatteryEnabled()Z
-PLcom/android/server/AppStateTracker$FeatureFlagsObserver;->register()V
-PLcom/android/server/AppStateTracker$Listener;-><init>()V
-PLcom/android/server/AppStateTracker$Listener;->access$1000(Lcom/android/server/AppStateTracker$Listener;Lcom/android/server/AppStateTracker;I)V
-PLcom/android/server/AppStateTracker$Listener;->access$1100(Lcom/android/server/AppStateTracker$Listener;Lcom/android/server/AppStateTracker;I)V
+HSPLcom/android/server/AppStateTracker$AppOpsWatcher;-><init>(Lcom/android/server/AppStateTracker;)V
+HSPLcom/android/server/AppStateTracker$AppOpsWatcher;-><init>(Lcom/android/server/AppStateTracker;Lcom/android/server/AppStateTracker$1;)V
+HSPLcom/android/server/AppStateTracker$FeatureFlagsObserver;-><init>(Lcom/android/server/AppStateTracker;)V
+HSPLcom/android/server/AppStateTracker$FeatureFlagsObserver;->isForcedAppStandbyEnabled()Z
+HSPLcom/android/server/AppStateTracker$FeatureFlagsObserver;->isForcedAppStandbyForSmallBatteryEnabled()Z
+HSPLcom/android/server/AppStateTracker$FeatureFlagsObserver;->register()V
+HSPLcom/android/server/AppStateTracker$Listener;-><init>()V
+HSPLcom/android/server/AppStateTracker$Listener;->access$1000(Lcom/android/server/AppStateTracker$Listener;Lcom/android/server/AppStateTracker;I)V
+HSPLcom/android/server/AppStateTracker$Listener;->access$1100(Lcom/android/server/AppStateTracker$Listener;Lcom/android/server/AppStateTracker;I)V
PLcom/android/server/AppStateTracker$Listener;->access$1500(Lcom/android/server/AppStateTracker$Listener;Lcom/android/server/AppStateTracker;)V
PLcom/android/server/AppStateTracker$Listener;->onTempPowerSaveWhitelistChanged(Lcom/android/server/AppStateTracker;)V
-PLcom/android/server/AppStateTracker$Listener;->onUidActiveStateChanged(Lcom/android/server/AppStateTracker;I)V
-HPLcom/android/server/AppStateTracker$Listener;->onUidForeground(IZ)V
-PLcom/android/server/AppStateTracker$Listener;->onUidForegroundStateChanged(Lcom/android/server/AppStateTracker;I)V
-PLcom/android/server/AppStateTracker$Listener;->unblockAlarmsForUid(I)V
+HSPLcom/android/server/AppStateTracker$Listener;->onUidActiveStateChanged(Lcom/android/server/AppStateTracker;I)V
+HSPLcom/android/server/AppStateTracker$Listener;->onUidForeground(IZ)V
+HSPLcom/android/server/AppStateTracker$Listener;->onUidForegroundStateChanged(Lcom/android/server/AppStateTracker;I)V
+HSPLcom/android/server/AppStateTracker$Listener;->unblockAlarmsForUid(I)V
PLcom/android/server/AppStateTracker$Listener;->updateAllJobs()V
-PLcom/android/server/AppStateTracker$Listener;->updateJobsForUid(IZ)V
-PLcom/android/server/AppStateTracker$MyHandler;-><init>(Lcom/android/server/AppStateTracker;Landroid/os/Looper;)V
-HPLcom/android/server/AppStateTracker$MyHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/AppStateTracker$MyHandler;->handleUidActive(I)V
-PLcom/android/server/AppStateTracker$MyHandler;->handleUidGone(IZ)V
-PLcom/android/server/AppStateTracker$MyHandler;->handleUidIdle(IZ)V
-HPLcom/android/server/AppStateTracker$MyHandler;->handleUidStateChanged(II)V
-PLcom/android/server/AppStateTracker$MyHandler;->notifyAllWhitelistChanged()V
+HSPLcom/android/server/AppStateTracker$Listener;->updateJobsForUid(IZ)V
+HSPLcom/android/server/AppStateTracker$MyHandler;-><init>(Lcom/android/server/AppStateTracker;Landroid/os/Looper;)V
+HSPLcom/android/server/AppStateTracker$MyHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/AppStateTracker$MyHandler;->handleUidActive(I)V
+HSPLcom/android/server/AppStateTracker$MyHandler;->handleUidGone(IZ)V
+HSPLcom/android/server/AppStateTracker$MyHandler;->handleUidIdle(IZ)V
+HSPLcom/android/server/AppStateTracker$MyHandler;->handleUidStateChanged(II)V
+HSPLcom/android/server/AppStateTracker$MyHandler;->notifyAllWhitelistChanged()V
PLcom/android/server/AppStateTracker$MyHandler;->notifyTempWhitelistChanged()V
-PLcom/android/server/AppStateTracker$MyHandler;->notifyUidActiveStateChanged(I)V
-PLcom/android/server/AppStateTracker$MyHandler;->notifyUidForegroundStateChanged(I)V
-PLcom/android/server/AppStateTracker$MyHandler;->onUidActive(I)V
-PLcom/android/server/AppStateTracker$MyHandler;->onUidGone(IZ)V
-PLcom/android/server/AppStateTracker$MyHandler;->onUidIdle(IZ)V
-PLcom/android/server/AppStateTracker$MyHandler;->onUidStateChanged(II)V
-PLcom/android/server/AppStateTracker$MyHandler;->removeUid(IZ)V
-PLcom/android/server/AppStateTracker$MyReceiver;-><init>(Lcom/android/server/AppStateTracker;)V
-PLcom/android/server/AppStateTracker$MyReceiver;-><init>(Lcom/android/server/AppStateTracker;Lcom/android/server/AppStateTracker$1;)V
+HSPLcom/android/server/AppStateTracker$MyHandler;->notifyUidActiveStateChanged(I)V
+HSPLcom/android/server/AppStateTracker$MyHandler;->notifyUidForegroundStateChanged(I)V
+HSPLcom/android/server/AppStateTracker$MyHandler;->onUidActive(I)V
+HSPLcom/android/server/AppStateTracker$MyHandler;->onUidGone(IZ)V
+HSPLcom/android/server/AppStateTracker$MyHandler;->onUidIdle(IZ)V
+HSPLcom/android/server/AppStateTracker$MyHandler;->onUidStateChanged(II)V
+HSPLcom/android/server/AppStateTracker$MyHandler;->removeUid(IZ)V
+HSPLcom/android/server/AppStateTracker$MyReceiver;-><init>(Lcom/android/server/AppStateTracker;)V
+HSPLcom/android/server/AppStateTracker$MyReceiver;-><init>(Lcom/android/server/AppStateTracker;Lcom/android/server/AppStateTracker$1;)V
PLcom/android/server/AppStateTracker$MyReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/AppStateTracker$StandbyTracker;-><init>(Lcom/android/server/AppStateTracker;)V
+HSPLcom/android/server/AppStateTracker$StandbyTracker;-><init>(Lcom/android/server/AppStateTracker;)V
PLcom/android/server/AppStateTracker$StandbyTracker;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
-PLcom/android/server/AppStateTracker$UidObserver;-><init>(Lcom/android/server/AppStateTracker;)V
-PLcom/android/server/AppStateTracker$UidObserver;-><init>(Lcom/android/server/AppStateTracker;Lcom/android/server/AppStateTracker$1;)V
-PLcom/android/server/AppStateTracker$UidObserver;->onUidActive(I)V
-PLcom/android/server/AppStateTracker$UidObserver;->onUidGone(IZ)V
-PLcom/android/server/AppStateTracker$UidObserver;->onUidIdle(IZ)V
-HPLcom/android/server/AppStateTracker$UidObserver;->onUidStateChanged(IIJI)V
-PLcom/android/server/AppStateTracker;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-PLcom/android/server/AppStateTracker;->access$000(Lcom/android/server/AppStateTracker;)Landroid/content/Context;
-PLcom/android/server/AppStateTracker;->access$100(Lcom/android/server/AppStateTracker;)Ljava/lang/Object;
-PLcom/android/server/AppStateTracker;->access$1800(Landroid/util/SparseBooleanArray;IZ)Z
-PLcom/android/server/AppStateTracker;->access$1900(Landroid/util/SparseBooleanArray;I)Z
-PLcom/android/server/AppStateTracker;->access$200(Lcom/android/server/AppStateTracker;)Lcom/android/server/AppStateTracker$MyHandler;
+HSPLcom/android/server/AppStateTracker$UidObserver;-><init>(Lcom/android/server/AppStateTracker;)V
+HSPLcom/android/server/AppStateTracker$UidObserver;-><init>(Lcom/android/server/AppStateTracker;Lcom/android/server/AppStateTracker$1;)V
+HSPLcom/android/server/AppStateTracker$UidObserver;->onUidActive(I)V
+HSPLcom/android/server/AppStateTracker$UidObserver;->onUidGone(IZ)V
+HSPLcom/android/server/AppStateTracker$UidObserver;->onUidIdle(IZ)V
+HSPLcom/android/server/AppStateTracker$UidObserver;->onUidStateChanged(IIJI)V
+HSPLcom/android/server/AppStateTracker;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+HSPLcom/android/server/AppStateTracker;->access$000(Lcom/android/server/AppStateTracker;)Landroid/content/Context;
+HSPLcom/android/server/AppStateTracker;->access$100(Lcom/android/server/AppStateTracker;)Ljava/lang/Object;
+HSPLcom/android/server/AppStateTracker;->access$1800(Landroid/util/SparseBooleanArray;IZ)Z
+HSPLcom/android/server/AppStateTracker;->access$1900(Landroid/util/SparseBooleanArray;I)Z
+HSPLcom/android/server/AppStateTracker;->access$200(Lcom/android/server/AppStateTracker;)Lcom/android/server/AppStateTracker$MyHandler;
PLcom/android/server/AppStateTracker;->access$300(Lcom/android/server/AppStateTracker;)V
PLcom/android/server/AppStateTracker;->access$700(Lcom/android/server/AppStateTracker;)Landroid/util/SparseSetArray;
-PLcom/android/server/AppStateTracker;->access$800(Lcom/android/server/AppStateTracker;)Lcom/android/internal/util/StatLogger;
-PLcom/android/server/AppStateTracker;->access$900(Lcom/android/server/AppStateTracker;)[Lcom/android/server/AppStateTracker$Listener;
-PLcom/android/server/AppStateTracker;->addListener(Lcom/android/server/AppStateTracker$Listener;)V
-PLcom/android/server/AppStateTracker;->addUidToArray(Landroid/util/SparseBooleanArray;I)Z
+HSPLcom/android/server/AppStateTracker;->access$800(Lcom/android/server/AppStateTracker;)Lcom/android/internal/util/StatLogger;
+HSPLcom/android/server/AppStateTracker;->access$900(Lcom/android/server/AppStateTracker;)[Lcom/android/server/AppStateTracker$Listener;
+HSPLcom/android/server/AppStateTracker;->addListener(Lcom/android/server/AppStateTracker$Listener;)V
+HSPLcom/android/server/AppStateTracker;->addUidToArray(Landroid/util/SparseBooleanArray;I)Z
PLcom/android/server/AppStateTracker;->areAlarmsRestricted(ILjava/lang/String;Z)Z
-PLcom/android/server/AppStateTracker;->areJobsRestricted(ILjava/lang/String;Z)Z
-HPLcom/android/server/AppStateTracker;->cloneListeners()[Lcom/android/server/AppStateTracker$Listener;
-HPLcom/android/server/AppStateTracker;->findForcedAppStandbyUidPackageIndexLocked(ILjava/lang/String;)I
-PLcom/android/server/AppStateTracker;->injectActivityManagerInternal()Landroid/app/ActivityManagerInternal;
-PLcom/android/server/AppStateTracker;->injectAppOpsManager()Landroid/app/AppOpsManager;
-PLcom/android/server/AppStateTracker;->injectAppStandbyInternal()Lcom/android/server/usage/AppStandbyInternal;
-PLcom/android/server/AppStateTracker;->injectGetGlobalSettingInt(Ljava/lang/String;I)I
-PLcom/android/server/AppStateTracker;->injectIActivityManager()Landroid/app/IActivityManager;
-PLcom/android/server/AppStateTracker;->injectIAppOpsService()Lcom/android/internal/app/IAppOpsService;
-PLcom/android/server/AppStateTracker;->injectPowerManagerInternal()Landroid/os/PowerManagerInternal;
-PLcom/android/server/AppStateTracker;->isAnyAppIdUnwhitelisted([I[I)Z
+HSPLcom/android/server/AppStateTracker;->areJobsRestricted(ILjava/lang/String;Z)Z
+HSPLcom/android/server/AppStateTracker;->cloneListeners()[Lcom/android/server/AppStateTracker$Listener;
+PLcom/android/server/AppStateTracker;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/AppStateTracker;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/AppStateTracker;->dumpProto(Landroid/util/proto/ProtoOutputStream;J)V
+PLcom/android/server/AppStateTracker;->dumpUids(Ljava/io/PrintWriter;Landroid/util/SparseBooleanArray;)V
+HSPLcom/android/server/AppStateTracker;->findForcedAppStandbyUidPackageIndexLocked(ILjava/lang/String;)I
+HSPLcom/android/server/AppStateTracker;->injectActivityManagerInternal()Landroid/app/ActivityManagerInternal;
+HSPLcom/android/server/AppStateTracker;->injectAppOpsManager()Landroid/app/AppOpsManager;
+HSPLcom/android/server/AppStateTracker;->injectAppStandbyInternal()Lcom/android/server/usage/AppStandbyInternal;
+HSPLcom/android/server/AppStateTracker;->injectGetGlobalSettingInt(Ljava/lang/String;I)I
+HSPLcom/android/server/AppStateTracker;->injectIActivityManager()Landroid/app/IActivityManager;
+HSPLcom/android/server/AppStateTracker;->injectIAppOpsService()Lcom/android/internal/app/IAppOpsService;
+HSPLcom/android/server/AppStateTracker;->injectPowerManagerInternal()Landroid/os/PowerManagerInternal;
+HSPLcom/android/server/AppStateTracker;->isAnyAppIdUnwhitelisted([I[I)Z
PLcom/android/server/AppStateTracker;->isForceAllAppsStandbyEnabled()Z
-HPLcom/android/server/AppStateTracker;->isRestricted(ILjava/lang/String;ZZ)Z
-PLcom/android/server/AppStateTracker;->isRunAnyRestrictedLocked(ILjava/lang/String;)Z
-HPLcom/android/server/AppStateTracker;->isUidActive(I)Z
+HSPLcom/android/server/AppStateTracker;->isRestricted(ILjava/lang/String;ZZ)Z
+PLcom/android/server/AppStateTracker;->isRunAnyInBackgroundAppOpsAllowed(ILjava/lang/String;)Z
+HSPLcom/android/server/AppStateTracker;->isRunAnyRestrictedLocked(ILjava/lang/String;)Z
+HSPLcom/android/server/AppStateTracker;->isUidActive(I)Z
PLcom/android/server/AppStateTracker;->isUidActiveSynced(I)Z
-HPLcom/android/server/AppStateTracker;->isUidInForeground(I)Z
-PLcom/android/server/AppStateTracker;->isUidPowerSaveUserWhitelisted(I)Z
-PLcom/android/server/AppStateTracker;->onSystemServicesReady()V
-PLcom/android/server/AppStateTracker;->refreshForcedAppStandbyUidPackagesLocked()V
-PLcom/android/server/AppStateTracker;->removeUidFromArray(Landroid/util/SparseBooleanArray;IZ)Z
-PLcom/android/server/AppStateTracker;->setPowerSaveWhitelistAppIds([I[I[I)V
-PLcom/android/server/AppStateTracker;->toggleForceAllAppsStandbyLocked(Z)V
-PLcom/android/server/AppStateTracker;->updateForceAllAppStandbyState()V
+HSPLcom/android/server/AppStateTracker;->isUidInForeground(I)Z
+HPLcom/android/server/AppStateTracker;->isUidPowerSaveUserWhitelisted(I)Z
+HPLcom/android/server/AppStateTracker;->isUidPowerSaveWhitelisted(I)Z
+PLcom/android/server/AppStateTracker;->isUidTempPowerSaveWhitelisted(I)Z
+HSPLcom/android/server/AppStateTracker;->onSystemServicesReady()V
+HSPLcom/android/server/AppStateTracker;->refreshForcedAppStandbyUidPackagesLocked()V
+HSPLcom/android/server/AppStateTracker;->removeUidFromArray(Landroid/util/SparseBooleanArray;IZ)Z
+HSPLcom/android/server/AppStateTracker;->setPowerSaveWhitelistAppIds([I[I[I)V
+HSPLcom/android/server/AppStateTracker;->toggleForceAllAppsStandbyLocked(Z)V
+HSPLcom/android/server/AppStateTracker;->updateForceAllAppStandbyState()V
PLcom/android/server/AttributeCache$Entry;-><init>(Landroid/content/Context;Landroid/content/res/TypedArray;)V
PLcom/android/server/AttributeCache$Package;-><init>(Landroid/content/Context;)V
PLcom/android/server/AttributeCache$Package;->access$000(Lcom/android/server/AttributeCache$Package;)Landroid/util/SparseArray;
-PLcom/android/server/AttributeCache;-><clinit>()V
-PLcom/android/server/AttributeCache;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/AttributeCache;-><clinit>()V
+HSPLcom/android/server/AttributeCache;-><init>(Landroid/content/Context;)V
PLcom/android/server/AttributeCache;->get(Ljava/lang/String;I[II)Lcom/android/server/AttributeCache$Entry;
-PLcom/android/server/AttributeCache;->init(Landroid/content/Context;)V
-PLcom/android/server/AttributeCache;->instance()Lcom/android/server/AttributeCache;
+HSPLcom/android/server/AttributeCache;->init(Landroid/content/Context;)V
+HSPLcom/android/server/AttributeCache;->instance()Lcom/android/server/AttributeCache;
PLcom/android/server/AttributeCache;->removePackage(Ljava/lang/String;)V
-PLcom/android/server/AttributeCache;->updateConfiguration(Landroid/content/res/Configuration;)V
-PLcom/android/server/BatteryService$10;-><init>(Lcom/android/server/BatteryService;Landroid/content/Intent;)V
-PLcom/android/server/BatteryService$10;->run()V
-PLcom/android/server/BatteryService$2;-><init>(Lcom/android/server/BatteryService;Landroid/os/Handler;)V
-PLcom/android/server/BatteryService$3;-><init>(Lcom/android/server/BatteryService;)V
-PLcom/android/server/BatteryService$4;-><init>(Lcom/android/server/BatteryService;)V
+HSPLcom/android/server/AttributeCache;->updateConfiguration(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/BatteryService$2;-><init>(Lcom/android/server/BatteryService;Landroid/os/Handler;)V
+HSPLcom/android/server/BatteryService$3;-><init>(Lcom/android/server/BatteryService;)V
+HSPLcom/android/server/BatteryService$4;-><init>(Lcom/android/server/BatteryService;)V
PLcom/android/server/BatteryService$7;-><init>(Lcom/android/server/BatteryService;Landroid/content/Intent;)V
PLcom/android/server/BatteryService$7;->run()V
-PLcom/android/server/BatteryService$8;-><init>(Lcom/android/server/BatteryService;Landroid/content/Intent;)V
+HSPLcom/android/server/BatteryService$8;-><init>(Lcom/android/server/BatteryService;Landroid/content/Intent;)V
PLcom/android/server/BatteryService$8;->run()V
-PLcom/android/server/BatteryService$9;-><init>(Lcom/android/server/BatteryService;Landroid/content/Intent;)V
-PLcom/android/server/BatteryService$9;->run()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$1;)V
-PLcom/android/server/BatteryService$BatteryPropertiesRegistrar;->getProperty(ILandroid/os/BatteryProperty;)I
-PLcom/android/server/BatteryService$BatteryPropertiesRegistrar;->lambda$scheduleUpdate$6$BatteryService$BatteryPropertiesRegistrar()V
-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$1;)V
-PLcom/android/server/BatteryService$HealthHalCallback;-><init>(Lcom/android/server/BatteryService;)V
-PLcom/android/server/BatteryService$HealthHalCallback;-><init>(Lcom/android/server/BatteryService;Lcom/android/server/BatteryService$1;)V
-PLcom/android/server/BatteryService$HealthHalCallback;->healthInfoChanged(Landroid/hardware/health/V2_0/HealthInfo;)V
-PLcom/android/server/BatteryService$HealthHalCallback;->onRegistration(Landroid/hardware/health/V2_0/IHealth;Landroid/hardware/health/V2_0/IHealth;Ljava/lang/String;)V
-PLcom/android/server/BatteryService$HealthServiceWrapper$IHealthSupplier;->get(Ljava/lang/String;)Landroid/hardware/health/V2_0/IHealth;
-PLcom/android/server/BatteryService$HealthServiceWrapper$IServiceManagerSupplier;->get()Landroid/hidl/manager/V1_0/IServiceManager;
-PLcom/android/server/BatteryService$HealthServiceWrapper$Notification$1;-><init>(Lcom/android/server/BatteryService$HealthServiceWrapper$Notification;)V
-PLcom/android/server/BatteryService$HealthServiceWrapper$Notification$1;->run()V
-PLcom/android/server/BatteryService$HealthServiceWrapper$Notification;-><init>(Lcom/android/server/BatteryService$HealthServiceWrapper;)V
-PLcom/android/server/BatteryService$HealthServiceWrapper$Notification;-><init>(Lcom/android/server/BatteryService$HealthServiceWrapper;Lcom/android/server/BatteryService$1;)V
-PLcom/android/server/BatteryService$HealthServiceWrapper$Notification;->onRegistration(Ljava/lang/String;Ljava/lang/String;Z)V
-PLcom/android/server/BatteryService$HealthServiceWrapper;-><clinit>()V
-PLcom/android/server/BatteryService$HealthServiceWrapper;-><init>()V
-PLcom/android/server/BatteryService$HealthServiceWrapper;->access$2200(Lcom/android/server/BatteryService$HealthServiceWrapper;)Ljava/lang/String;
-PLcom/android/server/BatteryService$HealthServiceWrapper;->access$2300(Lcom/android/server/BatteryService$HealthServiceWrapper;)Lcom/android/server/BatteryService$HealthServiceWrapper$IHealthSupplier;
-PLcom/android/server/BatteryService$HealthServiceWrapper;->access$2400(Lcom/android/server/BatteryService$HealthServiceWrapper;)Ljava/util/concurrent/atomic/AtomicReference;
-PLcom/android/server/BatteryService$HealthServiceWrapper;->access$2600(Lcom/android/server/BatteryService$HealthServiceWrapper;)Landroid/os/HandlerThread;
-PLcom/android/server/BatteryService$HealthServiceWrapper;->getLastService()Landroid/hardware/health/V2_0/IHealth;
-PLcom/android/server/BatteryService$HealthServiceWrapper;->init(Lcom/android/server/BatteryService$HealthServiceWrapper$Callback;Lcom/android/server/BatteryService$HealthServiceWrapper$IServiceManagerSupplier;Lcom/android/server/BatteryService$HealthServiceWrapper$IHealthSupplier;)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$1;)V
+HSPLcom/android/server/BatteryService$BatteryPropertiesRegistrar;-><init>(Lcom/android/server/BatteryService;)V
+HSPLcom/android/server/BatteryService$BatteryPropertiesRegistrar;-><init>(Lcom/android/server/BatteryService;Lcom/android/server/BatteryService$1;)V
+HPLcom/android/server/BatteryService$BatteryPropertiesRegistrar;->getProperty(ILandroid/os/BatteryProperty;)I
+HSPLcom/android/server/BatteryService$BatteryPropertiesRegistrar;->lambda$scheduleUpdate$6$BatteryService$BatteryPropertiesRegistrar()V
+HSPLcom/android/server/BatteryService$BatteryPropertiesRegistrar;->scheduleUpdate()V
+HSPLcom/android/server/BatteryService$BinderService;-><init>(Lcom/android/server/BatteryService;)V
+HSPLcom/android/server/BatteryService$BinderService;-><init>(Lcom/android/server/BatteryService;Lcom/android/server/BatteryService$1;)V
+PLcom/android/server/BatteryService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/BatteryService$HealthHalCallback;-><init>(Lcom/android/server/BatteryService;)V
+HSPLcom/android/server/BatteryService$HealthHalCallback;-><init>(Lcom/android/server/BatteryService;Lcom/android/server/BatteryService$1;)V
+HSPLcom/android/server/BatteryService$HealthHalCallback;->healthInfoChanged(Landroid/hardware/health/V2_0/HealthInfo;)V
+HSPLcom/android/server/BatteryService$HealthHalCallback;->onRegistration(Landroid/hardware/health/V2_0/IHealth;Landroid/hardware/health/V2_0/IHealth;Ljava/lang/String;)V
+HSPLcom/android/server/BatteryService$HealthServiceWrapper$IHealthSupplier;->get(Ljava/lang/String;)Landroid/hardware/health/V2_0/IHealth;
+HSPLcom/android/server/BatteryService$HealthServiceWrapper$IServiceManagerSupplier;->get()Landroid/hidl/manager/V1_0/IServiceManager;
+HSPLcom/android/server/BatteryService$HealthServiceWrapper$Notification$1;-><init>(Lcom/android/server/BatteryService$HealthServiceWrapper$Notification;)V
+HSPLcom/android/server/BatteryService$HealthServiceWrapper$Notification$1;->run()V
+HSPLcom/android/server/BatteryService$HealthServiceWrapper$Notification;-><init>(Lcom/android/server/BatteryService$HealthServiceWrapper;)V
+HSPLcom/android/server/BatteryService$HealthServiceWrapper$Notification;-><init>(Lcom/android/server/BatteryService$HealthServiceWrapper;Lcom/android/server/BatteryService$1;)V
+HSPLcom/android/server/BatteryService$HealthServiceWrapper$Notification;->onRegistration(Ljava/lang/String;Ljava/lang/String;Z)V
+HSPLcom/android/server/BatteryService$HealthServiceWrapper;-><clinit>()V
+HSPLcom/android/server/BatteryService$HealthServiceWrapper;-><init>()V
+HSPLcom/android/server/BatteryService$HealthServiceWrapper;->access$2200(Lcom/android/server/BatteryService$HealthServiceWrapper;)Ljava/lang/String;
+HSPLcom/android/server/BatteryService$HealthServiceWrapper;->access$2300(Lcom/android/server/BatteryService$HealthServiceWrapper;)Lcom/android/server/BatteryService$HealthServiceWrapper$IHealthSupplier;
+HSPLcom/android/server/BatteryService$HealthServiceWrapper;->access$2400(Lcom/android/server/BatteryService$HealthServiceWrapper;)Ljava/util/concurrent/atomic/AtomicReference;
+HSPLcom/android/server/BatteryService$HealthServiceWrapper;->access$2600(Lcom/android/server/BatteryService$HealthServiceWrapper;)Landroid/os/HandlerThread;
+HSPLcom/android/server/BatteryService$HealthServiceWrapper;->getHandlerThread()Landroid/os/HandlerThread;
+HSPLcom/android/server/BatteryService$HealthServiceWrapper;->getLastService()Landroid/hardware/health/V2_0/IHealth;
+HSPLcom/android/server/BatteryService$HealthServiceWrapper;->init(Lcom/android/server/BatteryService$HealthServiceWrapper$Callback;Lcom/android/server/BatteryService$HealthServiceWrapper$IServiceManagerSupplier;Lcom/android/server/BatteryService$HealthServiceWrapper$IHealthSupplier;)V
+HSPLcom/android/server/BatteryService$Led;-><init>(Lcom/android/server/BatteryService;Landroid/content/Context;Lcom/android/server/lights/LightsManager;)V
+HSPLcom/android/server/BatteryService$Led;->updateLightsLocked()V
+HSPLcom/android/server/BatteryService$LocalService;-><init>(Lcom/android/server/BatteryService;)V
+HSPLcom/android/server/BatteryService$LocalService;-><init>(Lcom/android/server/BatteryService;Lcom/android/server/BatteryService$1;)V
PLcom/android/server/BatteryService$LocalService;->getBatteryChargeCounter()I
-PLcom/android/server/BatteryService$LocalService;->getBatteryLevel()I
-PLcom/android/server/BatteryService$LocalService;->getBatteryLevelLow()Z
-PLcom/android/server/BatteryService$LocalService;->getPlugType()I
-PLcom/android/server/BatteryService$LocalService;->isPowered(I)Z
-PLcom/android/server/BatteryService;-><clinit>()V
-PLcom/android/server/BatteryService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/BatteryService;->access$000(Lcom/android/server/BatteryService;)Ljava/lang/Object;
-PLcom/android/server/BatteryService;->access$1000(Lcom/android/server/BatteryService;)I
-PLcom/android/server/BatteryService;->access$1100(Lcom/android/server/BatteryService;Landroid/hardware/health/V2_0/HealthInfo;)V
-PLcom/android/server/BatteryService;->access$1200(Ljava/lang/String;)V
-PLcom/android/server/BatteryService;->access$1400()V
-PLcom/android/server/BatteryService;->access$1700(Lcom/android/server/BatteryService;)Lcom/android/server/BatteryService$HealthServiceWrapper;
-PLcom/android/server/BatteryService;->access$1800(Lcom/android/server/BatteryService;I)Z
-PLcom/android/server/BatteryService;->access$1900(Lcom/android/server/BatteryService;)I
-PLcom/android/server/BatteryService;->access$2000(Lcom/android/server/BatteryService;)Z
-PLcom/android/server/BatteryService;->access$900(Lcom/android/server/BatteryService;)Landroid/hardware/health/V1_0/HealthInfo;
-PLcom/android/server/BatteryService;->getIconLocked(I)I
-PLcom/android/server/BatteryService;->isPoweredLocked(I)Z
+HSPLcom/android/server/BatteryService$LocalService;->getBatteryLevel()I
+HSPLcom/android/server/BatteryService$LocalService;->getBatteryLevelLow()Z
+HSPLcom/android/server/BatteryService$LocalService;->getPlugType()I
+HSPLcom/android/server/BatteryService$LocalService;->isPowered(I)Z
+HSPLcom/android/server/BatteryService;-><clinit>()V
+HSPLcom/android/server/BatteryService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/BatteryService;->access$000(Lcom/android/server/BatteryService;)Ljava/lang/Object;
+HSPLcom/android/server/BatteryService;->access$1000(Lcom/android/server/BatteryService;)I
+HSPLcom/android/server/BatteryService;->access$1100(Lcom/android/server/BatteryService;Landroid/hardware/health/V2_0/HealthInfo;)V
+HSPLcom/android/server/BatteryService;->access$1200(Ljava/lang/String;)V
+HSPLcom/android/server/BatteryService;->access$1400()V
+HSPLcom/android/server/BatteryService;->access$1700(Lcom/android/server/BatteryService;)Lcom/android/server/BatteryService$HealthServiceWrapper;
+HSPLcom/android/server/BatteryService;->access$1800(Lcom/android/server/BatteryService;I)Z
+HSPLcom/android/server/BatteryService;->access$1900(Lcom/android/server/BatteryService;)I
+HSPLcom/android/server/BatteryService;->access$2000(Lcom/android/server/BatteryService;)Z
+PLcom/android/server/BatteryService;->access$800(Lcom/android/server/BatteryService;)Landroid/content/Context;
+HSPLcom/android/server/BatteryService;->access$900(Lcom/android/server/BatteryService;)Landroid/hardware/health/V1_0/HealthInfo;
+PLcom/android/server/BatteryService;->dumpInternal(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/BatteryService;->dumpProto(Ljava/io/FileDescriptor;)V
+HSPLcom/android/server/BatteryService;->getIconLocked(I)I
+HSPLcom/android/server/BatteryService;->isPoweredLocked(I)Z
+PLcom/android/server/BatteryService;->lambda$D1kwd7L7yyqN5niz3KWkTepVmUk(Lcom/android/server/BatteryService;)V
PLcom/android/server/BatteryService;->lambda$sendBatteryChangedIntentLocked$0(Landroid/content/Intent;)V
PLcom/android/server/BatteryService;->logBatteryStatsLocked()V
PLcom/android/server/BatteryService;->logOutlierLocked(J)V
-PLcom/android/server/BatteryService;->onBootPhase(I)V
-PLcom/android/server/BatteryService;->onStart()V
-PLcom/android/server/BatteryService;->processValuesLocked(Z)V
-PLcom/android/server/BatteryService;->registerHealthCallback()V
-PLcom/android/server/BatteryService;->sendBatteryChangedIntentLocked()V
-PLcom/android/server/BatteryService;->sendBatteryLevelChangedIntentLocked()V
+HSPLcom/android/server/BatteryService;->onBootPhase(I)V
+HSPLcom/android/server/BatteryService;->onStart()V
+HSPLcom/android/server/BatteryService;->processValuesLocked(Z)V
+HSPLcom/android/server/BatteryService;->registerHealthCallback()V
+HSPLcom/android/server/BatteryService;->sendBatteryChangedIntentLocked()V
+HSPLcom/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
-PLcom/android/server/BatteryService;->update(Landroid/hardware/health/V2_0/HealthInfo;)V
-PLcom/android/server/BatteryService;->updateBatteryWarningLevelLocked()V
-PLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;-><init>()V
-PLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;->createAppidWhitelist(Landroid/content/Context;)Landroid/util/ArraySet;
-PLcom/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$Internal;-><init>(Lcom/android/internal/os/BinderCallsStats;)V
+HSPLcom/android/server/BatteryService;->shouldSendBatteryLowLocked()Z
+HSPLcom/android/server/BatteryService;->shouldShutdownLocked()Z
+HSPLcom/android/server/BatteryService;->shutdownIfNoPowerLocked()V
+HSPLcom/android/server/BatteryService;->shutdownIfOverTempLocked()V
+HSPLcom/android/server/BatteryService;->traceBegin(Ljava/lang/String;)V
+HSPLcom/android/server/BatteryService;->traceEnd()V
+HSPLcom/android/server/BatteryService;->update(Landroid/hardware/health/V2_0/HealthInfo;)V
+HSPLcom/android/server/BatteryService;->updateBatteryWarningLevelLocked()V
+HSPLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;-><init>()V
+HSPLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;->createAppidWhitelist(Landroid/content/Context;)Landroid/util/ArraySet;
+HSPLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;->getCallingUid()I
+HSPLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;->resolveWorkSourceUid(I)I
+HSPLcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;->systemReady(Landroid/content/Context;)V
+HSPLcom/android/server/BinderCallsStatsService$Internal;-><init>(Lcom/android/internal/os/BinderCallsStats;)V
PLcom/android/server/BinderCallsStatsService$Internal;->getExportedCallStats()Ljava/util/ArrayList;
PLcom/android/server/BinderCallsStatsService$Internal;->reset()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
-PLcom/android/server/BinderCallsStatsService$SettingsObserver;->onChange()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/BluetoothManagerService$1;-><init>(Lcom/android/server/BluetoothManagerService;)V
+HSPLcom/android/server/BinderCallsStatsService$LifeCycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/BinderCallsStatsService$LifeCycle;->onBootPhase(I)V
+HSPLcom/android/server/BinderCallsStatsService$LifeCycle;->onStart()V
+HSPLcom/android/server/BinderCallsStatsService$SettingsObserver;-><init>(Landroid/content/Context;Lcom/android/internal/os/BinderCallsStats;Lcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;)V
+HSPLcom/android/server/BinderCallsStatsService$SettingsObserver;->onChange()V
+HSPLcom/android/server/BinderCallsStatsService;-><init>(Lcom/android/internal/os/BinderCallsStats;Lcom/android/server/BinderCallsStatsService$AuthorizedWorkSourceProvider;)V
+PLcom/android/server/BinderCallsStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/BinderCallsStatsService;->systemReady(Landroid/content/Context;)V
+HSPLcom/android/server/BluetoothManagerService$1;-><init>(Lcom/android/server/BluetoothManagerService;)V
PLcom/android/server/BluetoothManagerService$1;->onBluetoothStateChange(II)V
-PLcom/android/server/BluetoothManagerService$2;-><init>(Lcom/android/server/BluetoothManagerService;)V
+HSPLcom/android/server/BluetoothManagerService$2;-><init>(Lcom/android/server/BluetoothManagerService;)V
PLcom/android/server/BluetoothManagerService$2;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
-PLcom/android/server/BluetoothManagerService$3;-><init>(Lcom/android/server/BluetoothManagerService;Landroid/os/Handler;)V
-PLcom/android/server/BluetoothManagerService$4;-><init>(Lcom/android/server/BluetoothManagerService;)V
+HSPLcom/android/server/BluetoothManagerService$3;-><init>(Lcom/android/server/BluetoothManagerService;Landroid/os/Handler;)V
+PLcom/android/server/BluetoothManagerService$3;->onChange(Z)V
+HSPLcom/android/server/BluetoothManagerService$4;-><init>(Lcom/android/server/BluetoothManagerService;)V
PLcom/android/server/BluetoothManagerService$4;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/BluetoothManagerService$5;-><init>(Lcom/android/server/BluetoothManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/BluetoothManagerService$5;-><init>(Lcom/android/server/BluetoothManagerService;Landroid/os/Handler;)V
PLcom/android/server/BluetoothManagerService$ActiveLog;-><init>(Lcom/android/server/BluetoothManagerService;ILjava/lang/String;ZJ)V
-PLcom/android/server/BluetoothManagerService$BluetoothHandler;-><init>(Lcom/android/server/BluetoothManagerService;Landroid/os/Looper;)V
-PLcom/android/server/BluetoothManagerService$BluetoothHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/BluetoothManagerService$BluetoothServiceConnection;-><init>(Lcom/android/server/BluetoothManagerService;)V
-PLcom/android/server/BluetoothManagerService$BluetoothServiceConnection;-><init>(Lcom/android/server/BluetoothManagerService;Lcom/android/server/BluetoothManagerService$1;)V
+PLcom/android/server/BluetoothManagerService$ActiveLog;->toString()Ljava/lang/String;
+HSPLcom/android/server/BluetoothManagerService$BluetoothHandler;-><init>(Lcom/android/server/BluetoothManagerService;Landroid/os/Looper;)V
+HSPLcom/android/server/BluetoothManagerService$BluetoothHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/BluetoothManagerService$BluetoothServiceConnection;-><init>(Lcom/android/server/BluetoothManagerService;)V
+HSPLcom/android/server/BluetoothManagerService$BluetoothServiceConnection;-><init>(Lcom/android/server/BluetoothManagerService;Lcom/android/server/BluetoothManagerService$1;)V
PLcom/android/server/BluetoothManagerService$BluetoothServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
PLcom/android/server/BluetoothManagerService$ClientDeathRecipient;-><init>(Lcom/android/server/BluetoothManagerService;Ljava/lang/String;)V
+PLcom/android/server/BluetoothManagerService$ClientDeathRecipient;->binderDied()V
+PLcom/android/server/BluetoothManagerService$ClientDeathRecipient;->getPackageName()Ljava/lang/String;
PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;-><init>(Lcom/android/server/BluetoothManagerService;Landroid/content/Intent;)V
PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$2000(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;)Z
+PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$2100(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
+PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$2200(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;)Z
PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->access$3500(Lcom/android/server/BluetoothManagerService$ProfileServiceConnections;Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->addProxy(Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->bindService()Z
+PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->isEmpty()Z
PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->onServiceDisconnected(Landroid/content/ComponentName;)V
PLcom/android/server/BluetoothManagerService$ProfileServiceConnections;->removeProxy(Landroid/bluetooth/IBluetoothProfileServiceConnection;)V
-PLcom/android/server/BluetoothManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/BluetoothManagerService;-><init>(Landroid/content/Context;)V
PLcom/android/server/BluetoothManagerService;->access$1000(Lcom/android/server/BluetoothManagerService;)Landroid/bluetooth/IBluetooth;
PLcom/android/server/BluetoothManagerService;->access$1002(Lcom/android/server/BluetoothManagerService;Landroid/bluetooth/IBluetooth;)Landroid/bluetooth/IBluetooth;
PLcom/android/server/BluetoothManagerService;->access$1300(Lcom/android/server/BluetoothManagerService;)Z
@@ -1009,9 +1111,11 @@ PLcom/android/server/BluetoothManagerService;->access$2502(Lcom/android/server/B
PLcom/android/server/BluetoothManagerService;->access$2700(Lcom/android/server/BluetoothManagerService;)Z
PLcom/android/server/BluetoothManagerService;->access$2702(Lcom/android/server/BluetoothManagerService;Z)Z
PLcom/android/server/BluetoothManagerService;->access$2800(Lcom/android/server/BluetoothManagerService;Z)V
+PLcom/android/server/BluetoothManagerService;->access$2900(Lcom/android/server/BluetoothManagerService;ZZ)Z
PLcom/android/server/BluetoothManagerService;->access$300(Lcom/android/server/BluetoothManagerService;IZ)V
-PLcom/android/server/BluetoothManagerService;->access$3200(Lcom/android/server/BluetoothManagerService;)Landroid/os/RemoteCallbackList;
-PLcom/android/server/BluetoothManagerService;->access$3300(Lcom/android/server/BluetoothManagerService;)Landroid/os/RemoteCallbackList;
+PLcom/android/server/BluetoothManagerService;->access$3100(Lcom/android/server/BluetoothManagerService;)V
+HSPLcom/android/server/BluetoothManagerService;->access$3200(Lcom/android/server/BluetoothManagerService;)Landroid/os/RemoteCallbackList;
+HSPLcom/android/server/BluetoothManagerService;->access$3300(Lcom/android/server/BluetoothManagerService;)Landroid/os/RemoteCallbackList;
PLcom/android/server/BluetoothManagerService;->access$3400(Lcom/android/server/BluetoothManagerService;)Ljava/util/Map;
PLcom/android/server/BluetoothManagerService;->access$3602(Lcom/android/server/BluetoothManagerService;Landroid/bluetooth/IBluetoothGatt;)Landroid/bluetooth/IBluetoothGatt;
PLcom/android/server/BluetoothManagerService;->access$3700(Lcom/android/server/BluetoothManagerService;)V
@@ -1022,147 +1126,154 @@ PLcom/android/server/BluetoothManagerService;->access$4100(Lcom/android/server/B
PLcom/android/server/BluetoothManagerService;->access$4202(Lcom/android/server/BluetoothManagerService;I)I
PLcom/android/server/BluetoothManagerService;->access$4300(Lcom/android/server/BluetoothManagerService;II)V
PLcom/android/server/BluetoothManagerService;->access$4500(Lcom/android/server/BluetoothManagerService;)I
+PLcom/android/server/BluetoothManagerService;->access$800(Lcom/android/server/BluetoothManagerService;I)V
PLcom/android/server/BluetoothManagerService;->access$900(Lcom/android/server/BluetoothManagerService;)Ljava/util/concurrent/locks/ReentrantReadWriteLock;
PLcom/android/server/BluetoothManagerService;->addActiveLog(ILjava/lang/String;Z)V
-PLcom/android/server/BluetoothManagerService;->bindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)Z
+HSPLcom/android/server/BluetoothManagerService;->bindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)Z
PLcom/android/server/BluetoothManagerService;->bluetoothStateChangeHandler(II)V
PLcom/android/server/BluetoothManagerService;->checkIfCallerIsForegroundUser()Z
PLcom/android/server/BluetoothManagerService;->checkPackage(ILjava/lang/String;)V
PLcom/android/server/BluetoothManagerService;->continueFromBleOnState()V
+PLcom/android/server/BluetoothManagerService;->disable(Ljava/lang/String;Z)Z
+PLcom/android/server/BluetoothManagerService;->disableBleScanMode()V
PLcom/android/server/BluetoothManagerService;->doBind(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/UserHandle;)Z
PLcom/android/server/BluetoothManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/BluetoothManagerService;->enable(Ljava/lang/String;)Z
PLcom/android/server/BluetoothManagerService;->getAddress()Ljava/lang/String;
PLcom/android/server/BluetoothManagerService;->getBluetoothGatt()Landroid/bluetooth/IBluetoothGatt;
+PLcom/android/server/BluetoothManagerService;->getEnableDisableReasonString(I)Ljava/lang/String;
PLcom/android/server/BluetoothManagerService;->getName()Ljava/lang/String;
+PLcom/android/server/BluetoothManagerService;->getState()I
PLcom/android/server/BluetoothManagerService;->getSystemConfigEnabledProfilesForPackage(Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/BluetoothManagerService;->handleDisable()V
PLcom/android/server/BluetoothManagerService;->handleEnable(Z)V
-PLcom/android/server/BluetoothManagerService;->handleOnBootPhase()V
+HSPLcom/android/server/BluetoothManagerService;->handleOnBootPhase()V
PLcom/android/server/BluetoothManagerService;->handleOnUnlockUser(I)V
+PLcom/android/server/BluetoothManagerService;->isBleAppPresent()Z
PLcom/android/server/BluetoothManagerService;->isBleScanAlwaysAvailable()Z
-PLcom/android/server/BluetoothManagerService;->isBluetoothDisallowed()Z
-PLcom/android/server/BluetoothManagerService;->isBluetoothPersistedStateOn()Z
+HSPLcom/android/server/BluetoothManagerService;->isBluetoothDisallowed()Z
+HSPLcom/android/server/BluetoothManagerService;->isBluetoothPersistedStateOn()Z
PLcom/android/server/BluetoothManagerService;->isBluetoothPersistedStateOnBluetooth()Z
-PLcom/android/server/BluetoothManagerService;->isHearingAidProfileSupported()Z
-PLcom/android/server/BluetoothManagerService;->isNameAndAddressSet()Z
-PLcom/android/server/BluetoothManagerService;->loadStoredNameAndAddress()V
+HSPLcom/android/server/BluetoothManagerService;->isHearingAidProfileSupported()Z
+HSPLcom/android/server/BluetoothManagerService;->isNameAndAddressSet()Z
+HSPLcom/android/server/BluetoothManagerService;->loadStoredNameAndAddress()V
PLcom/android/server/BluetoothManagerService;->persistBluetoothSetting(I)V
-PLcom/android/server/BluetoothManagerService;->registerAdapter(Landroid/bluetooth/IBluetoothManagerCallback;)Landroid/bluetooth/IBluetooth;
-PLcom/android/server/BluetoothManagerService;->registerForBleScanModeChange()V
-PLcom/android/server/BluetoothManagerService;->registerStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
+HSPLcom/android/server/BluetoothManagerService;->registerAdapter(Landroid/bluetooth/IBluetoothManagerCallback;)Landroid/bluetooth/IBluetooth;
+HSPLcom/android/server/BluetoothManagerService;->registerForBleScanModeChange()V
+HSPLcom/android/server/BluetoothManagerService;->registerStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
PLcom/android/server/BluetoothManagerService;->sendBleStateChanged(II)V
+PLcom/android/server/BluetoothManagerService;->sendBluetoothServiceDownCallback()V
PLcom/android/server/BluetoothManagerService;->sendBluetoothServiceUpCallback()V
PLcom/android/server/BluetoothManagerService;->sendBluetoothStateCallback(Z)V
+PLcom/android/server/BluetoothManagerService;->sendBrEdrDownCallback()V
PLcom/android/server/BluetoothManagerService;->sendEnableMsg(ZILjava/lang/String;)V
PLcom/android/server/BluetoothManagerService;->storeNameAndAddress(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/BluetoothManagerService;->supportBluetoothPersistedState()Z
+HSPLcom/android/server/BluetoothManagerService;->supportBluetoothPersistedState()Z
+PLcom/android/server/BluetoothManagerService;->unbindAndFinish()V
PLcom/android/server/BluetoothManagerService;->unbindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)V
PLcom/android/server/BluetoothManagerService;->unregisterStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
PLcom/android/server/BluetoothManagerService;->updateBleAppCount(Landroid/os/IBinder;ZLjava/lang/String;)I
PLcom/android/server/BluetoothManagerService;->updateOppLauncherComponentState(IZ)V
-PLcom/android/server/BluetoothService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/BluetoothService;->initialize()V
-PLcom/android/server/BluetoothService;->onBootPhase(I)V
-PLcom/android/server/BluetoothService;->onStart()V
+PLcom/android/server/BluetoothManagerService;->waitForOnOff(ZZ)Z
+HSPLcom/android/server/BluetoothService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/BluetoothService;->initialize()V
+HSPLcom/android/server/BluetoothService;->onBootPhase(I)V
+HSPLcom/android/server/BluetoothService;->onStart()V
PLcom/android/server/BluetoothService;->onUnlockUser(I)V
-PLcom/android/server/CachedDeviceStateService$1;-><init>(Lcom/android/server/CachedDeviceStateService;)V
+HSPLcom/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;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/CachedDeviceStateService;-><init>(Landroid/content/Context;)V
PLcom/android/server/CachedDeviceStateService;->access$000(Lcom/android/server/CachedDeviceStateService;)Lcom/android/internal/os/CachedDeviceState;
-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/ConnectivityService$1;-><init>(Lcom/android/server/ConnectivityService;)V
-PLcom/android/server/ConnectivityService$2;-><init>(Lcom/android/server/ConnectivityService;)V
+HSPLcom/android/server/CachedDeviceStateService;->onBootPhase(I)V
+HSPLcom/android/server/CachedDeviceStateService;->onStart()V
+HSPLcom/android/server/CachedDeviceStateService;->queryIsCharging()Z
+HSPLcom/android/server/CachedDeviceStateService;->queryScreenInteractive(Landroid/content/Context;)Z
+HSPLcom/android/server/CertBlacklister$BlacklistObserver;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentResolver;)V
+HSPLcom/android/server/CertBlacklister;-><clinit>()V
+HSPLcom/android/server/CertBlacklister;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/CertBlacklister;->buildPubkeyObserver(Landroid/content/ContentResolver;)Lcom/android/server/CertBlacklister$BlacklistObserver;
+HSPLcom/android/server/CertBlacklister;->buildSerialObserver(Landroid/content/ContentResolver;)Lcom/android/server/CertBlacklister$BlacklistObserver;
+HSPLcom/android/server/CertBlacklister;->registerObservers(Landroid/content/ContentResolver;)V
+HSPLcom/android/server/ConnectivityService$1;-><init>(Lcom/android/server/ConnectivityService;)V
+PLcom/android/server/ConnectivityService$1;->dumpHigh(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+PLcom/android/server/ConnectivityService$1;->dumpNormal(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+HSPLcom/android/server/ConnectivityService$2;-><init>(Lcom/android/server/ConnectivityService;)V
HPLcom/android/server/ConnectivityService$2;->interfaceClassDataActivityChanged(Ljava/lang/String;ZJ)V
-PLcom/android/server/ConnectivityService$3;-><init>(Lcom/android/server/ConnectivityService;)V
+HSPLcom/android/server/ConnectivityService$3;-><init>(Lcom/android/server/ConnectivityService;)V
HPLcom/android/server/ConnectivityService$3;->onDnsEvent(IIILjava/lang/String;[Ljava/lang/String;IJI)V
PLcom/android/server/ConnectivityService$3;->onPrivateDnsValidationEvent(ILjava/lang/String;Ljava/lang/String;Z)V
-PLcom/android/server/ConnectivityService$4;-><init>(Lcom/android/server/ConnectivityService;)V
-HPLcom/android/server/ConnectivityService$4;->onUidRulesChanged(II)V
-PLcom/android/server/ConnectivityService$5;-><init>(Lcom/android/server/ConnectivityService;)V
+HSPLcom/android/server/ConnectivityService$4;-><init>(Lcom/android/server/ConnectivityService;)V
+HSPLcom/android/server/ConnectivityService$4;->onUidRulesChanged(II)V
+HSPLcom/android/server/ConnectivityService$5;-><init>(Lcom/android/server/ConnectivityService;)V
HPLcom/android/server/ConnectivityService$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/ConnectivityService$6;-><init>(Lcom/android/server/ConnectivityService;)V
+HSPLcom/android/server/ConnectivityService$6;-><init>(Lcom/android/server/ConnectivityService;)V
PLcom/android/server/ConnectivityService$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
PLcom/android/server/ConnectivityService$7;-><clinit>()V
-PLcom/android/server/ConnectivityService$Dependencies;-><init>()V
+PLcom/android/server/ConnectivityService$CaptivePortalImpl;-><init>(Lcom/android/server/ConnectivityService;Landroid/net/Network;)V
+PLcom/android/server/ConnectivityService$CaptivePortalImpl;-><init>(Lcom/android/server/ConnectivityService;Landroid/net/Network;Lcom/android/server/ConnectivityService$1;)V
+PLcom/android/server/ConnectivityService$CaptivePortalImpl;->appResponse(I)V
+PLcom/android/server/ConnectivityService$CaptivePortalImpl;->logEvent(ILjava/lang/String;)V
+HSPLcom/android/server/ConnectivityService$Dependencies;-><init>()V
PLcom/android/server/ConnectivityService$Dependencies;->getBatteryStatsService()Lcom/android/internal/app/IBatteryStats;
-PLcom/android/server/ConnectivityService$Dependencies;->getIpConnectivityMetrics()Landroid/net/IIpConnectivityMetrics;
+HSPLcom/android/server/ConnectivityService$Dependencies;->getIpConnectivityMetrics()Landroid/net/IIpConnectivityMetrics;
PLcom/android/server/ConnectivityService$Dependencies;->getMetricsLogger()Lcom/android/server/connectivity/IpConnectivityMetrics$Logger;
-PLcom/android/server/ConnectivityService$Dependencies;->getNetworkStack()Landroid/net/NetworkStackClient;
-PLcom/android/server/ConnectivityService$Dependencies;->getSystemProperties()Lcom/android/server/connectivity/MockableSystemProperties;
-PLcom/android/server/ConnectivityService$Dependencies;->getTetheringManager()Landroid/net/TetheringManager;
-PLcom/android/server/ConnectivityService$Dependencies;->makeHandlerThread()Landroid/os/HandlerThread;
-PLcom/android/server/ConnectivityService$Dependencies;->makeMultinetworkPolicyTracker(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/Runnable;)Landroid/net/util/MultinetworkPolicyTracker;
-PLcom/android/server/ConnectivityService$Dependencies;->makeNetIdManager()Lcom/android/server/NetIdManager;
-PLcom/android/server/ConnectivityService$Dependencies;->makeProxyTracker(Landroid/content/Context;Landroid/os/Handler;)Lcom/android/server/connectivity/ProxyTracker;
-PLcom/android/server/ConnectivityService$Dependencies;->queryUserAccess(II)Z
-PLcom/android/server/ConnectivityService$InternalHandler;-><init>(Lcom/android/server/ConnectivityService;Landroid/os/Looper;)V
-HPLcom/android/server/ConnectivityService$InternalHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/ConnectivityService$LegacyTypeTracker;-><init>(Lcom/android/server/ConnectivityService;)V
+HSPLcom/android/server/ConnectivityService$Dependencies;->getSystemProperties()Lcom/android/server/connectivity/MockableSystemProperties;
+HSPLcom/android/server/ConnectivityService$Dependencies;->getTetheringManager()Landroid/net/TetheringManager;
+HSPLcom/android/server/ConnectivityService$Dependencies;->makeHandlerThread()Landroid/os/HandlerThread;
+HSPLcom/android/server/ConnectivityService$Dependencies;->makeMultinetworkPolicyTracker(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/Runnable;)Landroid/net/util/MultinetworkPolicyTracker;
+HSPLcom/android/server/ConnectivityService$Dependencies;->makeNetIdManager()Lcom/android/server/NetIdManager;
+HSPLcom/android/server/ConnectivityService$Dependencies;->makeProxyTracker(Landroid/content/Context;Landroid/os/Handler;)Lcom/android/server/connectivity/ProxyTracker;
+HSPLcom/android/server/ConnectivityService$InternalHandler;-><init>(Lcom/android/server/ConnectivityService;Landroid/os/Looper;)V
+HSPLcom/android/server/ConnectivityService$InternalHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/ConnectivityService$LegacyTypeTracker;-><init>(Lcom/android/server/ConnectivityService;)V
PLcom/android/server/ConnectivityService$LegacyTypeTracker;->add(ILcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService$LegacyTypeTracker;->addSupportedType(I)V
-PLcom/android/server/ConnectivityService$LegacyTypeTracker;->getNetworkForType(I)Lcom/android/server/connectivity/NetworkAgentInfo;
+HSPLcom/android/server/ConnectivityService$LegacyTypeTracker;->addSupportedType(I)V
+PLcom/android/server/ConnectivityService$LegacyTypeTracker;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+HPLcom/android/server/ConnectivityService$LegacyTypeTracker;->getNetworkForType(I)Lcom/android/server/connectivity/NetworkAgentInfo;
PLcom/android/server/ConnectivityService$LegacyTypeTracker;->isTypeSupported(I)Z
PLcom/android/server/ConnectivityService$LegacyTypeTracker;->maybeLogBroadcast(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkInfo$DetailedState;IZ)V
PLcom/android/server/ConnectivityService$LegacyTypeTracker;->remove(ILcom/android/server/connectivity/NetworkAgentInfo;Z)V
-PLcom/android/server/ConnectivityService$NetworkFactoryInfo;-><init>(Ljava/lang/String;Landroid/os/Messenger;Lcom/android/internal/util/AsyncChannel;I)V
+HSPLcom/android/server/ConnectivityService$NetworkFactoryInfo;-><init>(Ljava/lang/String;Landroid/os/Messenger;Lcom/android/internal/util/AsyncChannel;I)V
PLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;-><init>(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;-><init>(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/ConnectivityService$1;)V
PLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->getInterfaceVersion()I
PLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->hideProvisioningNotification()V
PLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->notifyNetworkTested(ILjava/lang/String;)V
-PLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->notifyProbeStatusChanged(II)V
+HPLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->notifyProbeStatusChanged(II)V
PLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->onNetworkMonitorCreated(Landroid/net/INetworkMonitor;)V
-PLcom/android/server/ConnectivityService$NetworkRequestInfo;-><init>(Lcom/android/server/ConnectivityService;Landroid/os/Messenger;Landroid/net/NetworkRequest;Landroid/os/IBinder;)V
+PLcom/android/server/ConnectivityService$NetworkMonitorCallbacks;->showProvisioningNotification(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/ConnectivityService$NetworkRequestInfo;-><init>(Lcom/android/server/ConnectivityService;Landroid/os/Messenger;Landroid/net/NetworkRequest;Landroid/os/IBinder;)V
PLcom/android/server/ConnectivityService$NetworkRequestInfo;->binderDied()V
-PLcom/android/server/ConnectivityService$NetworkRequestInfo;->enforceRequestCountLimit()V
-PLcom/android/server/ConnectivityService$NetworkRequestInfo;->toString()Ljava/lang/String;
+HSPLcom/android/server/ConnectivityService$NetworkRequestInfo;->enforceRequestCountLimit()V
+HSPLcom/android/server/ConnectivityService$NetworkRequestInfo;->toString()Ljava/lang/String;
PLcom/android/server/ConnectivityService$NetworkRequestInfo;->unlinkDeathRecipient()V
-PLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;-><init>(Lcom/android/server/ConnectivityService;Landroid/os/Looper;)V
-PLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleAsyncChannelMessage(Landroid/os/Message;)Z
-PLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleNetworkAgentInfoMessage(Landroid/os/Message;)Z
-PLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleNetworkAgentMessage(Landroid/os/Message;)V
-PLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleNetworkFactoryMessage(Landroid/os/Message;)Z
-PLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleNetworkMonitorMessage(Landroid/os/Message;)Z
-PLcom/android/server/ConnectivityService$SettingsObserver;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/ConnectivityService$SettingsObserver;->observe(Landroid/net/Uri;I)V
+HSPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;-><init>(Lcom/android/server/ConnectivityService;Landroid/os/Looper;)V
+HSPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleAsyncChannelMessage(Landroid/os/Message;)Z
+HSPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleNetworkAgentInfoMessage(Landroid/os/Message;)Z
+HSPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleNetworkAgentMessage(Landroid/os/Message;)V
+HSPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleNetworkFactoryMessage(Landroid/os/Message;)Z
+HSPLcom/android/server/ConnectivityService$NetworkStateTrackerHandler;->maybeHandleNetworkMonitorMessage(Landroid/os/Message;)Z
+HSPLcom/android/server/ConnectivityService$SettingsObserver;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/ConnectivityService$SettingsObserver;->observe(Landroid/net/Uri;I)V
PLcom/android/server/ConnectivityService$UnneededFor;-><clinit>()V
PLcom/android/server/ConnectivityService$UnneededFor;-><init>(Ljava/lang/String;I)V
PLcom/android/server/ConnectivityService$UnneededFor;->values()[Lcom/android/server/ConnectivityService$UnneededFor;
-PLcom/android/server/ConnectivityService;-><clinit>()V
-PLcom/android/server/ConnectivityService;-><init>(Landroid/content/Context;Landroid/os/INetworkManagementService;Landroid/net/INetworkStatsService;Landroid/net/INetworkPolicyManager;)V
-PLcom/android/server/ConnectivityService;-><init>(Landroid/content/Context;Landroid/os/INetworkManagementService;Landroid/net/INetworkStatsService;Landroid/net/INetworkPolicyManager;Landroid/net/IDnsResolver;Landroid/net/metrics/IpConnectivityLog;Landroid/net/INetd;Lcom/android/server/ConnectivityService$Dependencies;)V
-PLcom/android/server/ConnectivityService;->access$000(Ljava/lang/String;)V
-PLcom/android/server/ConnectivityService;->access$1000(Lcom/android/server/ConnectivityService;)Ljava/util/HashMap;
-PLcom/android/server/ConnectivityService;->access$1200()Z
-PLcom/android/server/ConnectivityService;->access$1500(Lcom/android/server/ConnectivityService;ILcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkCapabilities;)V
-PLcom/android/server/ConnectivityService;->access$1600(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkInfo;)V
-PLcom/android/server/ConnectivityService;->access$1700(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkScore;)V
+HSPLcom/android/server/ConnectivityService;-><clinit>()V
+HSPLcom/android/server/ConnectivityService;-><init>(Landroid/content/Context;Landroid/os/INetworkManagementService;Landroid/net/INetworkStatsService;Landroid/net/INetworkPolicyManager;)V
+HSPLcom/android/server/ConnectivityService;-><init>(Landroid/content/Context;Landroid/os/INetworkManagementService;Landroid/net/INetworkStatsService;Landroid/net/INetworkPolicyManager;Landroid/net/IDnsResolver;Landroid/net/metrics/IpConnectivityLog;Landroid/net/INetd;Lcom/android/server/ConnectivityService$Dependencies;)V
+HSPLcom/android/server/ConnectivityService;->access$1000(Lcom/android/server/ConnectivityService;)Ljava/util/HashMap;
+HSPLcom/android/server/ConnectivityService;->access$1200()Z
PLcom/android/server/ConnectivityService;->access$1800(I)Z
-PLcom/android/server/ConnectivityService;->access$200(Lcom/android/server/ConnectivityService;IZJ)V
-PLcom/android/server/ConnectivityService;->access$2100(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$Dependencies;
-PLcom/android/server/ConnectivityService;->access$2200(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService;->access$2300(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService;->access$2400(Lcom/android/server/ConnectivityService;)Lcom/android/server/connectivity/NetworkNotificationManager;
-PLcom/android/server/ConnectivityService;->access$2500(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService;->access$2600(Lcom/android/server/ConnectivityService;Landroid/net/Network;)V
-PLcom/android/server/ConnectivityService;->access$300(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$InternalHandler;
+HPLcom/android/server/ConnectivityService;->access$200(Lcom/android/server/ConnectivityService;IZJ)V
+HSPLcom/android/server/ConnectivityService;->access$300(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$InternalHandler;
PLcom/android/server/ConnectivityService;->access$3300(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;IZ)V
PLcom/android/server/ConnectivityService;->access$3400(Lcom/android/server/ConnectivityService;)Lcom/android/server/ConnectivityService$NetworkStateTrackerHandler;
-PLcom/android/server/ConnectivityService;->access$3900(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkFactoryInfo;)V
-PLcom/android/server/ConnectivityService;->access$4100(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/INetworkMonitor;)V
-PLcom/android/server/ConnectivityService;->access$4200(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
-PLcom/android/server/ConnectivityService;->access$4900(Lcom/android/server/ConnectivityService;)V
-PLcom/android/server/ConnectivityService;->access$500(Lcom/android/server/ConnectivityService;I)Lcom/android/server/connectivity/NetworkAgentInfo;
-PLcom/android/server/ConnectivityService;->access$5200(Lcom/android/server/ConnectivityService;Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;)V
+HSPLcom/android/server/ConnectivityService;->access$3900(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkFactoryInfo;)V
+HSPLcom/android/server/ConnectivityService;->access$4200(Lcom/android/server/ConnectivityService;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
+HSPLcom/android/server/ConnectivityService;->access$4900(Lcom/android/server/ConnectivityService;)V
+HPLcom/android/server/ConnectivityService;->access$500(Lcom/android/server/ConnectivityService;I)Lcom/android/server/connectivity/NetworkAgentInfo;
+PLcom/android/server/ConnectivityService;->access$5000(Lcom/android/server/ConnectivityService;Landroid/net/Network;IZ)V
PLcom/android/server/ConnectivityService;->access$5300(Lcom/android/server/ConnectivityService;)V
PLcom/android/server/ConnectivityService;->access$5400(Lcom/android/server/ConnectivityService;I)V
PLcom/android/server/ConnectivityService;->access$5800(Lcom/android/server/ConnectivityService;I)V
@@ -1170,97 +1281,99 @@ PLcom/android/server/ConnectivityService;->access$5900(Lcom/android/server/Conne
PLcom/android/server/ConnectivityService;->access$600(Lcom/android/server/ConnectivityService;)Landroid/net/NetworkRequest;
PLcom/android/server/ConnectivityService;->access$6000(Lcom/android/server/ConnectivityService;Ljava/lang/String;I)V
PLcom/android/server/ConnectivityService;->access$6100(Lcom/android/server/ConnectivityService;Ljava/lang/String;IZ)V
-PLcom/android/server/ConnectivityService;->access$6200(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;)V
-PLcom/android/server/ConnectivityService;->access$6300(Lcom/android/server/ConnectivityService;)Landroid/util/SparseIntArray;
-PLcom/android/server/ConnectivityService;->access$900(Lcom/android/server/ConnectivityService;Landroid/os/Message;)V
+HSPLcom/android/server/ConnectivityService;->access$6200(Lcom/android/server/ConnectivityService;Landroid/net/NetworkRequest;)V
+HSPLcom/android/server/ConnectivityService;->access$6300(Lcom/android/server/ConnectivityService;)Landroid/util/SparseIntArray;
+HSPLcom/android/server/ConnectivityService;->access$900(Lcom/android/server/ConnectivityService;Landroid/os/Message;)V
HPLcom/android/server/ConnectivityService;->addNetworkToLegacyTypeTracker(Lcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/ConnectivityService;->avoidBadWifi()Z
-PLcom/android/server/ConnectivityService;->callCallbackForRequest(Lcom/android/server/ConnectivityService$NetworkRequestInfo;Lcom/android/server/connectivity/NetworkAgentInfo;II)V
-PLcom/android/server/ConnectivityService;->checkAnyPermissionOf([Ljava/lang/String;)Z
-PLcom/android/server/ConnectivityService;->checkNetworkStackPermission()Z
-PLcom/android/server/ConnectivityService;->checkSettingsPermission()Z
-HPLcom/android/server/ConnectivityService;->checkSettingsPermission(II)Z
+HPLcom/android/server/ConnectivityService;->callCallbackForRequest(Lcom/android/server/ConnectivityService$NetworkRequestInfo;Lcom/android/server/connectivity/NetworkAgentInfo;II)V
+HSPLcom/android/server/ConnectivityService;->checkAnyPermissionOf([Ljava/lang/String;)Z
+HSPLcom/android/server/ConnectivityService;->checkSettingsPermission()Z
HPLcom/android/server/ConnectivityService;->computeRequestReassignmentForNetwork(Lcom/android/server/connectivity/NetworkAgentInfo;)Landroid/util/ArrayMap;
-PLcom/android/server/ConnectivityService;->createDefaultInternetRequestForTransport(ILandroid/net/NetworkRequest$Type;)Landroid/net/NetworkRequest;
-PLcom/android/server/ConnectivityService;->createDefaultNetworkCapabilitiesForUid(I)Landroid/net/NetworkCapabilities;
+HSPLcom/android/server/ConnectivityService;->createDefaultInternetRequestForTransport(ILandroid/net/NetworkRequest$Type;)Landroid/net/NetworkRequest;
+HSPLcom/android/server/ConnectivityService;->createDefaultNetworkCapabilitiesForUid(I)Landroid/net/NetworkCapabilities;
PLcom/android/server/ConnectivityService;->createNativeNetwork(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
PLcom/android/server/ConnectivityService;->createVpnInfo(Lcom/android/server/connectivity/Vpn;)Lcom/android/internal/net/VpnInfo;
PLcom/android/server/ConnectivityService;->destroyNativeNetwork(Lcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/ConnectivityService;->disconnectAndDestroyNetwork(Lcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService;->encodeBool(Z)I
-HPLcom/android/server/ConnectivityService;->enforceAccessPermission()V
+PLcom/android/server/ConnectivityService;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+PLcom/android/server/ConnectivityService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/ConnectivityService;->dumpAvoidBadWifiSettings(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/ConnectivityService;->dumpNetworkDiagnostics(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/ConnectivityService;->dumpNetworks(Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/ConnectivityService;->encodeBool(Z)I
+HSPLcom/android/server/ConnectivityService;->enforceAccessPermission()V
+PLcom/android/server/ConnectivityService;->enforceAnyPermissionOf([Ljava/lang/String;)V
PLcom/android/server/ConnectivityService;->enforceChangePermission()V
PLcom/android/server/ConnectivityService;->enforceControlAlwaysOnVpnPermission()V
PLcom/android/server/ConnectivityService;->enforceCrossUserPermission(I)V
+PLcom/android/server/ConnectivityService;->enforceInternetPermission()V
PLcom/android/server/ConnectivityService;->enforceMeteredApnPolicy(Landroid/net/NetworkCapabilities;)V
-PLcom/android/server/ConnectivityService;->enforceNetworkFactoryPermission()V
+HSPLcom/android/server/ConnectivityService;->enforceNetworkFactoryPermission()V
PLcom/android/server/ConnectivityService;->enforceNetworkRequestPermissions(Landroid/net/NetworkCapabilities;)V
+PLcom/android/server/ConnectivityService;->enforceNetworkStackOrSettingsPermission()V
PLcom/android/server/ConnectivityService;->enforceTetherAccessPermission()V
-PLcom/android/server/ConnectivityService;->ensureNetworkRequestHasType(Landroid/net/NetworkRequest;)V
+HSPLcom/android/server/ConnectivityService;->ensureNetworkRequestHasType(Landroid/net/NetworkRequest;)V
PLcom/android/server/ConnectivityService;->ensureNetworkTransitionWakelock(Ljava/lang/String;)V
-PLcom/android/server/ConnectivityService;->ensureRequestableCapabilities(Landroid/net/NetworkCapabilities;)V
-PLcom/android/server/ConnectivityService;->ensureRunningOnConnectivityServiceThread()V
-PLcom/android/server/ConnectivityService;->ensureSufficientPermissionsForRequest(Landroid/net/NetworkCapabilities;II)V
-PLcom/android/server/ConnectivityService;->ensureValid(Landroid/net/NetworkCapabilities;)V
-PLcom/android/server/ConnectivityService;->ensureValidNetworkSpecifier(Landroid/net/NetworkCapabilities;)V
-HPLcom/android/server/ConnectivityService;->filterNetworkStateForUid(Landroid/net/NetworkState;IZ)V
+HSPLcom/android/server/ConnectivityService;->ensureRequestableCapabilities(Landroid/net/NetworkCapabilities;)V
+HSPLcom/android/server/ConnectivityService;->ensureRunningOnConnectivityServiceThread()V
+HSPLcom/android/server/ConnectivityService;->ensureSufficientPermissionsForRequest(Landroid/net/NetworkCapabilities;II)V
+HSPLcom/android/server/ConnectivityService;->ensureValid(Landroid/net/NetworkCapabilities;)V
+HSPLcom/android/server/ConnectivityService;->ensureValidNetworkSpecifier(Landroid/net/NetworkCapabilities;)V
+HSPLcom/android/server/ConnectivityService;->filterNetworkStateForUid(Landroid/net/NetworkState;IZ)V
PLcom/android/server/ConnectivityService;->getActiveLinkProperties()Landroid/net/LinkProperties;
-PLcom/android/server/ConnectivityService;->getActiveNetwork()Landroid/net/Network;
-HPLcom/android/server/ConnectivityService;->getActiveNetworkForUid(IZ)Landroid/net/Network;
-HPLcom/android/server/ConnectivityService;->getActiveNetworkForUidInternal(IZ)Landroid/net/Network;
-HPLcom/android/server/ConnectivityService;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
+HPLcom/android/server/ConnectivityService;->getActiveNetwork()Landroid/net/Network;
+HSPLcom/android/server/ConnectivityService;->getActiveNetworkForUid(IZ)Landroid/net/Network;
+HSPLcom/android/server/ConnectivityService;->getActiveNetworkForUidInternal(IZ)Landroid/net/Network;
+HSPLcom/android/server/ConnectivityService;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
PLcom/android/server/ConnectivityService;->getAllNetworkInfo()[Landroid/net/NetworkInfo;
PLcom/android/server/ConnectivityService;->getAllNetworkState()[Landroid/net/NetworkState;
-PLcom/android/server/ConnectivityService;->getAllNetworks()[Landroid/net/Network;
+HPLcom/android/server/ConnectivityService;->getAllNetworks()[Landroid/net/Network;
PLcom/android/server/ConnectivityService;->getAllVpnInfo()[Lcom/android/internal/net/VpnInfo;
PLcom/android/server/ConnectivityService;->getAlwaysOnVpnPackage(I)Ljava/lang/String;
-PLcom/android/server/ConnectivityService;->getDefaultNetwork()Lcom/android/server/connectivity/NetworkAgentInfo;
+HSPLcom/android/server/ConnectivityService;->getDefaultNetwork()Lcom/android/server/connectivity/NetworkAgentInfo;
PLcom/android/server/ConnectivityService;->getDefaultNetworkCapabilitiesForUser(I)[Landroid/net/NetworkCapabilities;
PLcom/android/server/ConnectivityService;->getDefaultNetworks()[Landroid/net/Network;
PLcom/android/server/ConnectivityService;->getDefaultRequest()Landroid/net/NetworkRequest;
-PLcom/android/server/ConnectivityService;->getDnsResolver()Landroid/net/IDnsResolver;
-PLcom/android/server/ConnectivityService;->getFilteredNetworkState(II)Landroid/net/NetworkState;
+HSPLcom/android/server/ConnectivityService;->getDnsResolver()Landroid/net/IDnsResolver;
+HPLcom/android/server/ConnectivityService;->getFilteredNetworkState(II)Landroid/net/NetworkState;
PLcom/android/server/ConnectivityService;->getLinkProperties(Landroid/net/Network;)Landroid/net/LinkProperties;
-PLcom/android/server/ConnectivityService;->getLinkProperties(Lcom/android/server/connectivity/NetworkAgentInfo;)Landroid/net/LinkProperties;
-PLcom/android/server/ConnectivityService;->getLinkPropertiesProxyInfo(Landroid/net/Network;)Landroid/net/ProxyInfo;
-PLcom/android/server/ConnectivityService;->getNetwork(Lcom/android/server/connectivity/NetworkAgentInfo;)Landroid/net/Network;
+HPLcom/android/server/ConnectivityService;->getLinkProperties(Lcom/android/server/connectivity/NetworkAgentInfo;)Landroid/net/LinkProperties;
+HPLcom/android/server/ConnectivityService;->getLinkPropertiesProxyInfo(Landroid/net/Network;)Landroid/net/ProxyInfo;
HPLcom/android/server/ConnectivityService;->getNetworkAgentInfoForNetId(I)Lcom/android/server/connectivity/NetworkAgentInfo;
-PLcom/android/server/ConnectivityService;->getNetworkAgentInfoForNetwork(Landroid/net/Network;)Lcom/android/server/connectivity/NetworkAgentInfo;
-HPLcom/android/server/ConnectivityService;->getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;
-HPLcom/android/server/ConnectivityService;->getNetworkCapabilitiesInternal(Lcom/android/server/connectivity/NetworkAgentInfo;)Landroid/net/NetworkCapabilities;
-PLcom/android/server/ConnectivityService;->getNetworkInfo(I)Landroid/net/NetworkInfo;
-HPLcom/android/server/ConnectivityService;->getNetworkInfoForUid(Landroid/net/Network;IZ)Landroid/net/NetworkInfo;
+HSPLcom/android/server/ConnectivityService;->getNetworkAgentInfoForNetwork(Landroid/net/Network;)Lcom/android/server/connectivity/NetworkAgentInfo;
+HSPLcom/android/server/ConnectivityService;->getNetworkCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;
+HSPLcom/android/server/ConnectivityService;->getNetworkCapabilitiesInternal(Lcom/android/server/connectivity/NetworkAgentInfo;)Landroid/net/NetworkCapabilities;
+HPLcom/android/server/ConnectivityService;->getNetworkInfo(I)Landroid/net/NetworkInfo;
+HSPLcom/android/server/ConnectivityService;->getNetworkInfoForUid(Landroid/net/Network;IZ)Landroid/net/NetworkInfo;
PLcom/android/server/ConnectivityService;->getNetworkPermission(Landroid/net/NetworkCapabilities;)I
PLcom/android/server/ConnectivityService;->getNriForAppRequest(Landroid/net/NetworkRequest;ILjava/lang/String;)Lcom/android/server/ConnectivityService$NetworkRequestInfo;
-PLcom/android/server/ConnectivityService;->getProxyForNetwork(Landroid/net/Network;)Landroid/net/ProxyInfo;
+HSPLcom/android/server/ConnectivityService;->getProxyForNetwork(Landroid/net/Network;)Landroid/net/ProxyInfo;
PLcom/android/server/ConnectivityService;->getSignalStrengthThresholds(Lcom/android/server/connectivity/NetworkAgentInfo;)Ljava/util/ArrayList;
PLcom/android/server/ConnectivityService;->getTetherableBluetoothRegexs()[Ljava/lang/String;
PLcom/android/server/ConnectivityService;->getTetherableUsbRegexs()[Ljava/lang/String;
PLcom/android/server/ConnectivityService;->getTetherableWifiRegexs()[Ljava/lang/String;
-PLcom/android/server/ConnectivityService;->getUnfilteredActiveNetworkState(I)Landroid/net/NetworkState;
+PLcom/android/server/ConnectivityService;->getTetheredIfaces()[Ljava/lang/String;
+HSPLcom/android/server/ConnectivityService;->getUnfilteredActiveNetworkState(I)Landroid/net/NetworkState;
PLcom/android/server/ConnectivityService;->getVpnConfig(I)Lcom/android/internal/net/VpnConfig;
-HPLcom/android/server/ConnectivityService;->getVpnUnderlyingNetworks(I)[Landroid/net/Network;
-PLcom/android/server/ConnectivityService;->handleAlwaysOnNetworkRequest(Landroid/net/NetworkRequest;Ljava/lang/String;Z)V
-PLcom/android/server/ConnectivityService;->handleApplyDefaultProxy(Landroid/net/ProxyInfo;)V
+HSPLcom/android/server/ConnectivityService;->getVpnUnderlyingNetworks(I)[Landroid/net/Network;
+HSPLcom/android/server/ConnectivityService;->handleAlwaysOnNetworkRequest(Landroid/net/NetworkRequest;Ljava/lang/String;Z)V
PLcom/android/server/ConnectivityService;->handleAsyncChannelDisconnected(Landroid/os/Message;)V
-PLcom/android/server/ConnectivityService;->handleAsyncChannelHalfConnect(Landroid/os/Message;)V
-PLcom/android/server/ConnectivityService;->handleConfigureAlwaysOnNetworks()V
-PLcom/android/server/ConnectivityService;->handleFreshlyValidatedNetwork(Lcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService;->handlePerNetworkPrivateDnsConfig(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/shared/PrivateDnsConfig;)V
-PLcom/android/server/ConnectivityService;->handlePrivateDnsValidationUpdate(Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;)V
+HSPLcom/android/server/ConnectivityService;->handleAsyncChannelHalfConnect(Landroid/os/Message;)V
+HSPLcom/android/server/ConnectivityService;->handleConfigureAlwaysOnNetworks()V
+PLcom/android/server/ConnectivityService;->handleNetworkUnvalidated(Lcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/ConnectivityService;->handlePromptUnvalidated(Landroid/net/Network;)V
PLcom/android/server/ConnectivityService;->handleRegisterNetworkAgent(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/INetworkMonitor;)V
-PLcom/android/server/ConnectivityService;->handleRegisterNetworkFactory(Lcom/android/server/ConnectivityService$NetworkFactoryInfo;)V
-PLcom/android/server/ConnectivityService;->handleRegisterNetworkRequest(Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
+HSPLcom/android/server/ConnectivityService;->handleRegisterNetworkFactory(Lcom/android/server/ConnectivityService$NetworkFactoryInfo;)V
+HSPLcom/android/server/ConnectivityService;->handleRegisterNetworkRequest(Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
PLcom/android/server/ConnectivityService;->handleReleaseNetworkRequest(Landroid/net/NetworkRequest;IZ)V
PLcom/android/server/ConnectivityService;->handleReleaseNetworkTransitionWakelock(I)V
-PLcom/android/server/ConnectivityService;->handleRemoveNetworkRequest(Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
-PLcom/android/server/ConnectivityService;->handleReportNetworkConnectivity(Landroid/net/Network;IZ)V
-PLcom/android/server/ConnectivityService;->handleUidRulesChanged(II)V
+HPLcom/android/server/ConnectivityService;->handleRemoveNetworkRequest(Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
+HPLcom/android/server/ConnectivityService;->handleReportNetworkConnectivity(Landroid/net/Network;IZ)V
+HSPLcom/android/server/ConnectivityService;->handleUidRulesChanged(II)V
PLcom/android/server/ConnectivityService;->handleUpdateLinkProperties(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/LinkProperties;)V
-PLcom/android/server/ConnectivityService;->hasWifiNetworkListenPermission(Landroid/net/NetworkCapabilities;)Z
+HSPLcom/android/server/ConnectivityService;->hasWifiNetworkListenPermission(Landroid/net/NetworkCapabilities;)Z
HPLcom/android/server/ConnectivityService;->isActiveNetworkMetered()Z
-PLcom/android/server/ConnectivityService;->isDefaultNetwork(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
PLcom/android/server/ConnectivityService;->isDefaultRequest(Lcom/android/server/ConnectivityService$NetworkRequestInfo;)Z
PLcom/android/server/ConnectivityService;->isNetworkSupported(I)Z
HPLcom/android/server/ConnectivityService;->isNetworkWithLinkPropertiesBlocked(Landroid/net/LinkProperties;IZ)Z
@@ -1268,196 +1381,212 @@ PLcom/android/server/ConnectivityService;->isSystem(I)Z
PLcom/android/server/ConnectivityService;->isTetheringSupported()Z
PLcom/android/server/ConnectivityService;->isTetheringSupported(Ljava/lang/String;)Z
HPLcom/android/server/ConnectivityService;->isUidNetworkingWithVpnBlocked(IIZZ)Z
-PLcom/android/server/ConnectivityService;->listenForNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;Landroid/os/IBinder;)Landroid/net/NetworkRequest;
-PLcom/android/server/ConnectivityService;->log(Ljava/lang/String;)V
+PLcom/android/server/ConnectivityService;->lambda$startCaptivePortalApp$3$ConnectivityService(Landroid/net/Network;)V
+HSPLcom/android/server/ConnectivityService;->listenForNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;Landroid/os/IBinder;)Landroid/net/NetworkRequest;
+HSPLcom/android/server/ConnectivityService;->log(Ljava/lang/String;)V
PLcom/android/server/ConnectivityService;->loge(Ljava/lang/String;)V
PLcom/android/server/ConnectivityService;->makeDefault(Lcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/ConnectivityService;->makeGeneralIntent(Landroid/net/NetworkInfo;Ljava/lang/String;)Landroid/content/Intent;
-HPLcom/android/server/ConnectivityService;->maybeLogBlockedNetworkInfo(Landroid/net/NetworkInfo;I)V
-PLcom/android/server/ConnectivityService;->maybeLogBlockedStatusChanged(Lcom/android/server/ConnectivityService$NetworkRequestInfo;Landroid/net/Network;Z)V
-HPLcom/android/server/ConnectivityService;->maybeNotifyNetworkBlockedForNewUidRules(II)V
+HSPLcom/android/server/ConnectivityService;->maybeLogBlockedNetworkInfo(Landroid/net/NetworkInfo;I)V
+HPLcom/android/server/ConnectivityService;->maybeLogBlockedStatusChanged(Lcom/android/server/ConnectivityService$NetworkRequestInfo;Landroid/net/Network;Z)V
+PLcom/android/server/ConnectivityService;->maybeNotifyNetworkBlocked(Lcom/android/server/connectivity/NetworkAgentInfo;ZZZZ)V
+HSPLcom/android/server/ConnectivityService;->maybeNotifyNetworkBlockedForNewUidRules(II)V
PLcom/android/server/ConnectivityService;->mixInCapabilities(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkCapabilities;)Landroid/net/NetworkCapabilities;
HPLcom/android/server/ConnectivityService;->networkCapabilitiesRestrictedForCallerPermissions(Landroid/net/NetworkCapabilities;II)Landroid/net/NetworkCapabilities;
-PLcom/android/server/ConnectivityService;->networkRequiresPrivateDnsValidation(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
-PLcom/android/server/ConnectivityService;->nextNetworkRequestId()I
+HSPLcom/android/server/ConnectivityService;->nextNetworkRequestId()I
PLcom/android/server/ConnectivityService;->notifyIfacesChangedForNetworkStats()V
PLcom/android/server/ConnectivityService;->notifyLockdownVpn(Lcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/ConnectivityService;->notifyNetworkAvailable(Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/ConnectivityService$NetworkRequestInfo;)V
-PLcom/android/server/ConnectivityService;->notifyNetworkCallbacks(Lcom/android/server/connectivity/NetworkAgentInfo;I)V
-PLcom/android/server/ConnectivityService;->notifyNetworkCallbacks(Lcom/android/server/connectivity/NetworkAgentInfo;II)V
+HPLcom/android/server/ConnectivityService;->notifyNetworkCallbacks(Lcom/android/server/connectivity/NetworkAgentInfo;II)V
PLcom/android/server/ConnectivityService;->onPackageAdded(Ljava/lang/String;I)V
PLcom/android/server/ConnectivityService;->onPackageRemoved(Ljava/lang/String;IZ)V
PLcom/android/server/ConnectivityService;->onPackageReplaced(Ljava/lang/String;I)V
PLcom/android/server/ConnectivityService;->onUserStart(I)V
PLcom/android/server/ConnectivityService;->onUserUnlocked(I)V
-HPLcom/android/server/ConnectivityService;->processListenRequests(Lcom/android/server/connectivity/NetworkAgentInfo;Z)V
-PLcom/android/server/ConnectivityService;->putParcelable(Landroid/os/Bundle;Landroid/os/Parcelable;)V
-PLcom/android/server/ConnectivityService;->registerNetdEventCallback()V
+HPLcom/android/server/ConnectivityService;->processNewlyLostListenRequests(Lcom/android/server/connectivity/NetworkAgentInfo;)V
+HPLcom/android/server/ConnectivityService;->processNewlySatisfiedListenRequests(Lcom/android/server/connectivity/NetworkAgentInfo;)V
+HSPLcom/android/server/ConnectivityService;->registerNetdEventCallback()V
PLcom/android/server/ConnectivityService;->registerNetworkAgent(Landroid/os/Messenger;Landroid/net/NetworkInfo;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;ILandroid/net/NetworkMisc;I)I
-PLcom/android/server/ConnectivityService;->registerNetworkFactory(Landroid/os/Messenger;Ljava/lang/String;)I
-PLcom/android/server/ConnectivityService;->registerPrivateDnsSettingsCallbacks()V
-PLcom/android/server/ConnectivityService;->registerSettingsCallbacks()V
+HSPLcom/android/server/ConnectivityService;->registerNetworkFactory(Landroid/os/Messenger;Ljava/lang/String;)I
+HSPLcom/android/server/ConnectivityService;->registerPrivateDnsSettingsCallbacks()V
+HSPLcom/android/server/ConnectivityService;->registerSettingsCallbacks()V
PLcom/android/server/ConnectivityService;->releaseNetworkRequest(Landroid/net/NetworkRequest;)V
-HPLcom/android/server/ConnectivityService;->rematchAllNetworksAndRequests()V
+HSPLcom/android/server/ConnectivityService;->rematchAllNetworksAndRequests()V
HPLcom/android/server/ConnectivityService;->rematchNetworkAndRequests(Lcom/android/server/connectivity/NetworkAgentInfo;J)V
PLcom/android/server/ConnectivityService;->removeDataActivityTracking(Lcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService;->reportNetworkConnectivity(Landroid/net/Network;Z)V
-PLcom/android/server/ConnectivityService;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;I)Landroid/net/NetworkRequest;
-PLcom/android/server/ConnectivityService;->requiresVpnIsolation(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;)Z
-PLcom/android/server/ConnectivityService;->restrictBackgroundRequestForCaller(Landroid/net/NetworkCapabilities;)V
-PLcom/android/server/ConnectivityService;->restrictRequestUidsForCaller(Landroid/net/NetworkCapabilities;)V
+HPLcom/android/server/ConnectivityService;->reportNetworkConnectivity(Landroid/net/Network;Z)V
+HSPLcom/android/server/ConnectivityService;->requestNetwork(Landroid/net/NetworkCapabilities;Landroid/os/Messenger;ILandroid/os/IBinder;I)Landroid/net/NetworkRequest;
+HPLcom/android/server/ConnectivityService;->requiresVpnIsolation(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;)Z
+HSPLcom/android/server/ConnectivityService;->restrictBackgroundRequestForCaller(Landroid/net/NetworkCapabilities;)V
+HSPLcom/android/server/ConnectivityService;->restrictRequestUidsForCaller(Landroid/net/NetworkCapabilities;)V
PLcom/android/server/ConnectivityService;->scheduleReleaseNetworkTransitionWakelock()V
PLcom/android/server/ConnectivityService;->scheduleUnvalidatedPrompt(Lcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService;->sendConnectedBroadcast(Landroid/net/NetworkInfo;)V
-PLcom/android/server/ConnectivityService;->sendDataActivityBroadcast(IZJ)V
-PLcom/android/server/ConnectivityService;->sendGeneralBroadcast(Landroid/net/NetworkInfo;Ljava/lang/String;)V
-PLcom/android/server/ConnectivityService;->sendInetConditionBroadcast(Landroid/net/NetworkInfo;)V
+HPLcom/android/server/ConnectivityService;->sendDataActivityBroadcast(IZJ)V
PLcom/android/server/ConnectivityService;->sendLegacyNetworkBroadcast(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkInfo$DetailedState;I)V
PLcom/android/server/ConnectivityService;->sendStickyBroadcast(Landroid/content/Intent;)V
-PLcom/android/server/ConnectivityService;->sendUpdatedScoreToFactories(Landroid/net/NetworkRequest;Lcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService;->sendUpdatedScoreToFactories(Lcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService;->setLockdownTracker(Lcom/android/server/net/LockdownVpnTracker;)V
+HSPLcom/android/server/ConnectivityService;->sendUpdatedScoreToFactories(Landroid/net/NetworkRequest;Lcom/android/server/connectivity/NetworkAgentInfo;)V
+HPLcom/android/server/ConnectivityService;->sendUpdatedScoreToFactories(Lcom/android/server/connectivity/NetworkAgentInfo;)V
+PLcom/android/server/ConnectivityService;->setAirplaneMode(Z)V
+HSPLcom/android/server/ConnectivityService;->setLockdownTracker(Lcom/android/server/net/LockdownVpnTracker;)V
PLcom/android/server/ConnectivityService;->setupDataActivityTracking(Lcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/ConnectivityService;->shouldAvoidBadWifi()Z
PLcom/android/server/ConnectivityService;->shouldPromptUnvalidated(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
+PLcom/android/server/ConnectivityService;->showNetworkNotification(Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkNotificationManager$NotificationType;)V
PLcom/android/server/ConnectivityService;->startAlwaysOnVpn(I)Z
-PLcom/android/server/ConnectivityService;->systemReady()V
-PLcom/android/server/ConnectivityService;->toBool(I)Z
-PLcom/android/server/ConnectivityService;->unneeded(Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/ConnectivityService$UnneededFor;)Z
+PLcom/android/server/ConnectivityService;->startCaptivePortalApp(Landroid/net/Network;)V
+PLcom/android/server/ConnectivityService;->startCaptivePortalAppInternal(Landroid/net/Network;Landroid/os/Bundle;)V
+HSPLcom/android/server/ConnectivityService;->systemReady()V
+HSPLcom/android/server/ConnectivityService;->toBool(I)Z
+HPLcom/android/server/ConnectivityService;->unneeded(Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/ConnectivityService$UnneededFor;)Z
PLcom/android/server/ConnectivityService;->updateAllVpnsCapabilities()V
PLcom/android/server/ConnectivityService;->updateCapabilities(ILcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkCapabilities;)V
PLcom/android/server/ConnectivityService;->updateDataActivityTracking(Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/ConnectivityService;->updateDnses(Landroid/net/LinkProperties;Landroid/net/LinkProperties;I)V
PLcom/android/server/ConnectivityService;->updateInetCondition(Lcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService;->updateInterfaces(Landroid/net/LinkProperties;Landroid/net/LinkProperties;ILandroid/net/NetworkCapabilities;I)V
-PLcom/android/server/ConnectivityService;->updateLegacyTypeTrackerAndVpnLockdownForRematch(Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;[Lcom/android/server/connectivity/NetworkAgentInfo;)V
+HPLcom/android/server/ConnectivityService;->updateInterfaces(Landroid/net/LinkProperties;Landroid/net/LinkProperties;ILandroid/net/NetworkCapabilities;I)V
+HSPLcom/android/server/ConnectivityService;->updateLegacyTypeTrackerAndVpnLockdownForRematch(Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;[Lcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/ConnectivityService;->updateLingerState(Lcom/android/server/connectivity/NetworkAgentInfo;J)V
PLcom/android/server/ConnectivityService;->updateLinkProperties(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/LinkProperties;Landroid/net/LinkProperties;)V
-PLcom/android/server/ConnectivityService;->updateLockdownVpn()Z
+HSPLcom/android/server/ConnectivityService;->updateLockdownVpn()Z
PLcom/android/server/ConnectivityService;->updateMtu(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)V
PLcom/android/server/ConnectivityService;->updateNetworkInfo(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkInfo;)V
PLcom/android/server/ConnectivityService;->updateNetworkScore(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkScore;)V
-PLcom/android/server/ConnectivityService;->updatePrivateDns(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/shared/PrivateDnsConfig;)V
-PLcom/android/server/ConnectivityService;->updateProxy(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)V
PLcom/android/server/ConnectivityService;->updateRoutes(Landroid/net/LinkProperties;Landroid/net/LinkProperties;I)Z
PLcom/android/server/ConnectivityService;->updateSignalStrengthThresholds(Lcom/android/server/connectivity/NetworkAgentInfo;Ljava/lang/String;Landroid/net/NetworkRequest;)V
PLcom/android/server/ConnectivityService;->updateTcpBufferSizes(Ljava/lang/String;)V
PLcom/android/server/ConnectivityService;->updateUids(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/NetworkCapabilities;Landroid/net/NetworkCapabilities;)V
-PLcom/android/server/ConnectivityService;->updateVpnCapabilities(Lcom/android/server/connectivity/Vpn;Landroid/net/NetworkCapabilities;)V
-PLcom/android/server/ConnectivityService;->updateVpnFiltering(Landroid/net/LinkProperties;Landroid/net/LinkProperties;Lcom/android/server/connectivity/NetworkAgentInfo;)V
-PLcom/android/server/ConnectivityService;->updateWakeOnLan(Landroid/net/LinkProperties;)V
+HPLcom/android/server/ConnectivityService;->updateVpnFiltering(Landroid/net/LinkProperties;Landroid/net/LinkProperties;Lcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/ConnectivityService;->wakeupModifyInterface(Ljava/lang/String;Landroid/net/NetworkCapabilities;Z)V
-PLcom/android/server/ConsumerIrService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/ContextHubSystemService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/ContextHubSystemService;->lambda$new$0$ContextHubSystemService(Landroid/content/Context;)V
-PLcom/android/server/ContextHubSystemService;->onBootPhase(I)V
-PLcom/android/server/ContextHubSystemService;->onStart()V
+HSPLcom/android/server/ConsumerIrService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/ContextHubSystemService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/ContextHubSystemService;->lambda$new$0$ContextHubSystemService(Landroid/content/Context;)V
+HSPLcom/android/server/ContextHubSystemService;->onBootPhase(I)V
+HSPLcom/android/server/ContextHubSystemService;->onStart()V
PLcom/android/server/CountryDetectorService$1;-><init>(Lcom/android/server/CountryDetectorService;)V
PLcom/android/server/CountryDetectorService$2;-><init>(Lcom/android/server/CountryDetectorService;Landroid/location/CountryListener;)V
PLcom/android/server/CountryDetectorService$2;->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;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/CountryDetectorService;-><init>(Landroid/content/Context;)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;->removeListener(Landroid/os/IBinder;)V
PLcom/android/server/CountryDetectorService;->run()V
-PLcom/android/server/CountryDetectorService;->systemRunning()V
-PLcom/android/server/DiskStatsService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/DiskStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/CountryDetectorService;->setCountryListener(Landroid/location/CountryListener;)V
+HSPLcom/android/server/CountryDetectorService;->systemRunning()V
+HSPLcom/android/server/DiskStatsService;-><init>(Landroid/content/Context;)V
+HPLcom/android/server/DiskStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/DiskStatsService;->getRecentPerf()I
PLcom/android/server/DiskStatsService;->reportCachedValues(Ljava/io/PrintWriter;)V
+PLcom/android/server/DiskStatsService;->reportCachedValuesProto(Landroid/util/proto/ProtoOutputStream;)V
PLcom/android/server/DiskStatsService;->reportDiskWriteSpeed(Ljava/io/PrintWriter;)V
+PLcom/android/server/DiskStatsService;->reportDiskWriteSpeedProto(Landroid/util/proto/ProtoOutputStream;)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;-><init>()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$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$1;)V
-PLcom/android/server/DockObserver;-><init>(Landroid/content/Context;)V
-PLcom/android/server/DockObserver;->init()V
-PLcom/android/server/DockObserver;->onBootPhase(I)V
-PLcom/android/server/DockObserver;->onStart()V
+HSPLcom/android/server/DockObserver$1;-><init>(Lcom/android/server/DockObserver;Z)V
+HSPLcom/android/server/DockObserver$2;-><init>(Lcom/android/server/DockObserver;)V
+HSPLcom/android/server/DockObserver$BinderService;-><init>(Lcom/android/server/DockObserver;)V
+HSPLcom/android/server/DockObserver$BinderService;-><init>(Lcom/android/server/DockObserver;Lcom/android/server/DockObserver$1;)V
+PLcom/android/server/DockObserver$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/DockObserver;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/DockObserver;->init()V
+HSPLcom/android/server/DockObserver;->onBootPhase(I)V
+HSPLcom/android/server/DockObserver;->onStart()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
+HSPLcom/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
-PLcom/android/server/DropBoxManagerService$2;->add(Landroid/os/DropBoxManager$Entry;)V
-PLcom/android/server/DropBoxManagerService$2;->getNextEntry(Ljava/lang/String;JLjava/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;->createIntent(Ljava/lang/String;J)Landroid/content/Intent;
-PLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/DropBoxManagerService$2;-><init>(Lcom/android/server/DropBoxManagerService;)V
+HSPLcom/android/server/DropBoxManagerService$2;->add(Landroid/os/DropBoxManager$Entry;)V
+PLcom/android/server/DropBoxManagerService$2;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/DropBoxManagerService$2;->getNextEntry(Ljava/lang/String;JLjava/lang/String;)Landroid/os/DropBoxManager$Entry;
+HSPLcom/android/server/DropBoxManagerService$2;->isTagEnabled(Ljava/lang/String;)Z
+HSPLcom/android/server/DropBoxManagerService$3;-><init>(Lcom/android/server/DropBoxManagerService;Landroid/os/Handler;)V
+HPLcom/android/server/DropBoxManagerService$3;->onChange(Z)V
+HSPLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;-><init>(Lcom/android/server/DropBoxManagerService;Landroid/os/Looper;)V
+HSPLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->createIntent(Ljava/lang/String;J)Landroid/content/Intent;
+HSPLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->handleMessage(Landroid/os/Message;)V
HPLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->maybeDeferBroadcast(Ljava/lang/String;J)V
-PLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->prepareAndSendBroadcast(Landroid/content/Intent;)V
-PLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->sendBroadcast(Ljava/lang/String;J)V
-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
-HPLcom/android/server/DropBoxManagerService$EntryFile;->compareTo(Lcom/android/server/DropBoxManagerService$EntryFile;)I
-HPLcom/android/server/DropBoxManagerService$EntryFile;->compareTo(Ljava/lang/Object;)I
-PLcom/android/server/DropBoxManagerService$EntryFile;->getExtension()Ljava/lang/String;
-PLcom/android/server/DropBoxManagerService$EntryFile;->getFile(Ljava/io/File;)Ljava/io/File;
-PLcom/android/server/DropBoxManagerService$EntryFile;->getFilename()Ljava/lang/String;
-PLcom/android/server/DropBoxManagerService$EntryFile;->hasFile()Z
-PLcom/android/server/DropBoxManagerService$FileList;-><init>()V
-PLcom/android/server/DropBoxManagerService$FileList;-><init>(Lcom/android/server/DropBoxManagerService$1;)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
+HSPLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->prepareAndSendBroadcast(Landroid/content/Intent;)V
+HSPLcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;->sendBroadcast(Ljava/lang/String;J)V
+HSPLcom/android/server/DropBoxManagerService$EntryFile;-><init>(J)V
+HSPLcom/android/server/DropBoxManagerService$EntryFile;-><init>(Ljava/io/File;I)V
+HSPLcom/android/server/DropBoxManagerService$EntryFile;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;JII)V
+HSPLcom/android/server/DropBoxManagerService$EntryFile;-><init>(Ljava/io/File;Ljava/lang/String;J)V
+HSPLcom/android/server/DropBoxManagerService$EntryFile;->compareTo(Lcom/android/server/DropBoxManagerService$EntryFile;)I
+HSPLcom/android/server/DropBoxManagerService$EntryFile;->compareTo(Ljava/lang/Object;)I
+HSPLcom/android/server/DropBoxManagerService$EntryFile;->deleteFile(Ljava/io/File;)V
+HSPLcom/android/server/DropBoxManagerService$EntryFile;->getExtension()Ljava/lang/String;
+HSPLcom/android/server/DropBoxManagerService$EntryFile;->getFile(Ljava/io/File;)Ljava/io/File;
+HSPLcom/android/server/DropBoxManagerService$EntryFile;->getFilename()Ljava/lang/String;
+HSPLcom/android/server/DropBoxManagerService$EntryFile;->hasFile()Z
+HSPLcom/android/server/DropBoxManagerService$FileList;-><init>()V
+HSPLcom/android/server/DropBoxManagerService$FileList;-><init>(Lcom/android/server/DropBoxManagerService$1;)V
+HSPLcom/android/server/DropBoxManagerService$FileList;->compareTo(Lcom/android/server/DropBoxManagerService$FileList;)I
+HSPLcom/android/server/DropBoxManagerService$FileList;->compareTo(Ljava/lang/Object;)I
+HSPLcom/android/server/DropBoxManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/DropBoxManagerService;-><init>(Landroid/content/Context;Ljava/io/File;Landroid/os/Looper;)V
PLcom/android/server/DropBoxManagerService;->access$002(Lcom/android/server/DropBoxManagerService;J)J
PLcom/android/server/DropBoxManagerService;->access$100(Lcom/android/server/DropBoxManagerService;)V
PLcom/android/server/DropBoxManagerService;->access$1000(Lcom/android/server/DropBoxManagerService;)Landroid/content/BroadcastReceiver;
PLcom/android/server/DropBoxManagerService;->access$200(Lcom/android/server/DropBoxManagerService;)J
-PLcom/android/server/DropBoxManagerService;->access$800(Lcom/android/server/DropBoxManagerService;)Z
+HSPLcom/android/server/DropBoxManagerService;->access$800(Lcom/android/server/DropBoxManagerService;)Z
PLcom/android/server/DropBoxManagerService;->access$900(Lcom/android/server/DropBoxManagerService;)J
-PLcom/android/server/DropBoxManagerService;->add(Landroid/os/DropBoxManager$Entry;)V
-PLcom/android/server/DropBoxManagerService;->checkPermission(ILjava/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
+HSPLcom/android/server/DropBoxManagerService;->add(Landroid/os/DropBoxManager$Entry;)V
+HPLcom/android/server/DropBoxManagerService;->checkPermission(ILjava/lang/String;)Z
+HSPLcom/android/server/DropBoxManagerService;->createEntry(Ljava/io/File;Ljava/lang/String;I)J
+PLcom/android/server/DropBoxManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/DropBoxManagerService;->dumpProtoLocked(Ljava/io/FileDescriptor;Ljava/util/ArrayList;)V
+HSPLcom/android/server/DropBoxManagerService;->enrollEntry(Lcom/android/server/DropBoxManagerService$EntryFile;)V
+HSPLcom/android/server/DropBoxManagerService;->getLowPriorityResourceConfigs()V
HPLcom/android/server/DropBoxManagerService;->getNextEntry(Ljava/lang/String;JLjava/lang/String;)Landroid/os/DropBoxManager$Entry;
-PLcom/android/server/DropBoxManagerService;->init()V
-PLcom/android/server/DropBoxManagerService;->isTagEnabled(Ljava/lang/String;)Z
-PLcom/android/server/DropBoxManagerService;->onBootPhase(I)V
-PLcom/android/server/DropBoxManagerService;->onStart()V
-PLcom/android/server/DropBoxManagerService;->trimToFit()J
-PLcom/android/server/DynamicSystemService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/DropBoxManagerService;->init()V
+HSPLcom/android/server/DropBoxManagerService;->isTagEnabled(Ljava/lang/String;)Z
+HPLcom/android/server/DropBoxManagerService;->matchEntry(Lcom/android/server/DropBoxManagerService$EntryFile;Ljava/util/ArrayList;)Z
+HSPLcom/android/server/DropBoxManagerService;->onBootPhase(I)V
+HSPLcom/android/server/DropBoxManagerService;->onStart()V
+HSPLcom/android/server/DropBoxManagerService;->trimToFit()J
+HSPLcom/android/server/DynamicSystemService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/DynamicSystemService;->binderDied()V
PLcom/android/server/DynamicSystemService;->getGsiService()Landroid/gsi/IGsiService;
PLcom/android/server/DynamicSystemService;->isInUse()Z
-PLcom/android/server/EntropyMixer$1;-><init>(Lcom/android/server/EntropyMixer;Landroid/os/Looper;)V
-PLcom/android/server/EntropyMixer$2;-><init>(Lcom/android/server/EntropyMixer;)V
+HSPLcom/android/server/EntropyMixer$1;-><init>(Lcom/android/server/EntropyMixer;Landroid/os/Looper;)V
+PLcom/android/server/EntropyMixer$1;->handleMessage(Landroid/os/Message;)V
+HSPLcom/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/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/EntropyMixer;->addDeviceSpecificEntropy()V
-PLcom/android/server/EntropyMixer;->addHwRandomEntropy()V
-PLcom/android/server/EntropyMixer;->getSystemDir()Ljava/lang/String;
-PLcom/android/server/EntropyMixer;->loadInitialEntropy()V
-PLcom/android/server/EntropyMixer;->scheduleEntropyWriter()V
-PLcom/android/server/EntropyMixer;->writeEntropy()V
+HSPLcom/android/server/EntropyMixer;-><clinit>()V
+HSPLcom/android/server/EntropyMixer;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/EntropyMixer;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/EntropyMixer;->addDeviceSpecificEntropy()V
+HSPLcom/android/server/EntropyMixer;->addHwRandomEntropy()V
+HSPLcom/android/server/EntropyMixer;->getSystemDir()Ljava/lang/String;
+HSPLcom/android/server/EntropyMixer;->loadInitialEntropy()V
+HSPLcom/android/server/EntropyMixer;->scheduleEntropyWriter()V
+HSPLcom/android/server/EntropyMixer;->writeEntropy()V
PLcom/android/server/EventLogTags;->writeBatterySavingStats(IIIJIIJII)V
-PLcom/android/server/EventLogTags;->writeDeviceIdle(ILjava/lang/String;)V
-PLcom/android/server/EventLogTags;->writeDeviceIdleLight(ILjava/lang/String;)V
+HPLcom/android/server/EventLogTags;->writeDeviceIdle(ILjava/lang/String;)V
+HPLcom/android/server/EventLogTags;->writeDeviceIdleLight(ILjava/lang/String;)V
PLcom/android/server/EventLogTags;->writeDeviceIdleLightStep()V
PLcom/android/server/EventLogTags;->writeDeviceIdleOffComplete()V
PLcom/android/server/EventLogTags;->writeDeviceIdleOffStart(Ljava/lang/String;)V
PLcom/android/server/EventLogTags;->writeDeviceIdleOnComplete()V
PLcom/android/server/EventLogTags;->writeDeviceIdleOnStart()V
PLcom/android/server/EventLogTags;->writeDeviceIdleStep()V
+PLcom/android/server/EventLogTags;->writeDeviceIdleWakeFromIdle(ILjava/lang/String;)V
PLcom/android/server/EventLogTags;->writeNetstatsMobileSample(JJJJJJJJJJJJJ)V
PLcom/android/server/EventLogTags;->writeNetstatsWifiSample(JJJJJJJJJJJJJ)V
+PLcom/android/server/EventLogTags;->writeNotificationActionClicked(Ljava/lang/String;IIIIII)V
PLcom/android/server/EventLogTags;->writeNotificationAlert(Ljava/lang/String;III)V
+PLcom/android/server/EventLogTags;->writeNotificationCancel(IILjava/lang/String;ILjava/lang/String;IIIILjava/lang/String;)V
PLcom/android/server/EventLogTags;->writeNotificationCancelAll(IILjava/lang/String;IIIILjava/lang/String;)V
PLcom/android/server/EventLogTags;->writeNotificationCanceled(Ljava/lang/String;IIIIIILjava/lang/String;)V
+PLcom/android/server/EventLogTags;->writeNotificationClicked(Ljava/lang/String;IIIII)V
PLcom/android/server/EventLogTags;->writeNotificationEnqueue(IILjava/lang/String;ILjava/lang/String;ILjava/lang/String;I)V
PLcom/android/server/EventLogTags;->writeNotificationPanelHidden()V
PLcom/android/server/EventLogTags;->writeNotificationPanelRevealed(I)V
@@ -1465,8 +1594,8 @@ PLcom/android/server/EventLogTags;->writeNotificationVisibility(Ljava/lang/Strin
HSPLcom/android/server/EventLogTags;->writePmCriticalInfo(Ljava/lang/String;)V
PLcom/android/server/EventLogTags;->writePowerScreenState(IIJII)V
PLcom/android/server/EventLogTags;->writePowerSleepRequested(I)V
-PLcom/android/server/EventLogTags;->writeStorageState(Ljava/lang/String;IIJJ)V
-PLcom/android/server/EventLogTags;->writeStreamDevicesChanged(III)V
+HSPLcom/android/server/EventLogTags;->writeStorageState(Ljava/lang/String;IIJJ)V
+HSPLcom/android/server/EventLogTags;->writeStreamDevicesChanged(III)V
PLcom/android/server/EventLogTags;->writeUserActivityTimeoutOverride(J)V
PLcom/android/server/EventLogTags;->writeVolumeChanged(IIIILjava/lang/String;)V
PLcom/android/server/ExplicitHealthCheckController$1;-><init>(Lcom/android/server/ExplicitHealthCheckController;)V
@@ -1485,77 +1614,84 @@ PLcom/android/server/ExplicitHealthCheckController;->lambda$getSupportedPackages
PLcom/android/server/ExplicitHealthCheckController;->lambda$syncRequests$2$ExplicitHealthCheckController(Ljava/util/List;Ljava/util/Set;Ljava/util/List;)V
PLcom/android/server/ExplicitHealthCheckController;->lambda$syncRequests$3$ExplicitHealthCheckController(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
+HSPLcom/android/server/ExplicitHealthCheckController;->setCallbacks(Ljava/util/function/Consumer;Ljava/util/function/Consumer;Ljava/lang/Runnable;)V
+HSPLcom/android/server/ExplicitHealthCheckController;->setEnabled(Z)V
PLcom/android/server/ExplicitHealthCheckController;->syncRequests(Ljava/util/Set;)V
PLcom/android/server/ExplicitHealthCheckController;->unbindService()V
-PLcom/android/server/ExtconStateObserver;-><init>()V
-PLcom/android/server/ExtconUEventObserver$ExtconInfo;->getExtconInfos(Ljava/lang/String;)Ljava/util/List;
-PLcom/android/server/ExtconUEventObserver;-><init>()V
-PLcom/android/server/ExtconUEventObserver;->extconExists()Z
-PLcom/android/server/ExtconUEventObserver;->namedExtconDirExists(Ljava/lang/String;)Z
+HSPLcom/android/server/ExtconStateObserver;-><init>()V
+HSPLcom/android/server/ExtconUEventObserver$ExtconInfo;->getExtconInfos(Ljava/lang/String;)Ljava/util/List;
+HSPLcom/android/server/ExtconUEventObserver;-><init>()V
+HSPLcom/android/server/ExtconUEventObserver;->extconExists()Z
+HSPLcom/android/server/ExtconUEventObserver;->namedExtconDirExists(Ljava/lang/String;)Z
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;->getExecutor()Ljava/util/concurrent/Executor;
HSPLcom/android/server/FgThread;->getHandler()Landroid/os/Handler;
-PLcom/android/server/GestureLauncherService$1;-><init>(Lcom/android/server/GestureLauncherService;)V
+HSPLcom/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$CameraLiftTriggerEventListener;-><init>(Lcom/android/server/GestureLauncherService;)V
-PLcom/android/server/GestureLauncherService$CameraLiftTriggerEventListener;-><init>(Lcom/android/server/GestureLauncherService;Lcom/android/server/GestureLauncherService$1;)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$1;)V
-PLcom/android/server/GestureLauncherService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/GestureLauncherService;-><init>(Landroid/content/Context;Lcom/android/internal/logging/MetricsLogger;)V
+HSPLcom/android/server/GestureLauncherService$2;-><init>(Lcom/android/server/GestureLauncherService;Landroid/os/Handler;)V
+HSPLcom/android/server/GestureLauncherService$CameraLiftTriggerEventListener;-><init>(Lcom/android/server/GestureLauncherService;)V
+HSPLcom/android/server/GestureLauncherService$CameraLiftTriggerEventListener;-><init>(Lcom/android/server/GestureLauncherService;Lcom/android/server/GestureLauncherService$1;)V
+HSPLcom/android/server/GestureLauncherService$GestureEventListener;-><init>(Lcom/android/server/GestureLauncherService;)V
+HSPLcom/android/server/GestureLauncherService$GestureEventListener;-><init>(Lcom/android/server/GestureLauncherService;Lcom/android/server/GestureLauncherService$1;)V
+HSPLcom/android/server/GestureLauncherService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/GestureLauncherService;-><init>(Landroid/content/Context;Lcom/android/internal/logging/MetricsLogger;)V
PLcom/android/server/GestureLauncherService;->access$202(Lcom/android/server/GestureLauncherService;I)I
PLcom/android/server/GestureLauncherService;->access$300(Lcom/android/server/GestureLauncherService;)Landroid/database/ContentObserver;
PLcom/android/server/GestureLauncherService;->access$400(Lcom/android/server/GestureLauncherService;)Landroid/content/Context;
PLcom/android/server/GestureLauncherService;->access$500(Lcom/android/server/GestureLauncherService;)V
PLcom/android/server/GestureLauncherService;->access$600(Lcom/android/server/GestureLauncherService;)V
+PLcom/android/server/GestureLauncherService;->handleCameraGesture(ZI)Z
PLcom/android/server/GestureLauncherService;->interceptPowerKeyDown(Landroid/view/KeyEvent;ZLandroid/util/MutableBoolean;)Z
-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;->isGestureLauncherEnabled(Landroid/content/res/Resources;)Z
-PLcom/android/server/GestureLauncherService;->onBootPhase(I)V
-PLcom/android/server/GestureLauncherService;->onStart()V
-PLcom/android/server/GestureLauncherService;->registerContentObservers()V
-PLcom/android/server/GestureLauncherService;->unregisterCameraLaunchGesture()V
-PLcom/android/server/GestureLauncherService;->unregisterCameraLiftTrigger()V
-PLcom/android/server/GestureLauncherService;->updateCameraDoubleTapPowerEnabled()V
-PLcom/android/server/GestureLauncherService;->updateCameraRegistered()V
-PLcom/android/server/GnssManagerService;-><clinit>()V
-PLcom/android/server/GnssManagerService;-><init>(Lcom/android/server/LocationManagerService;Landroid/content/Context;Lcom/android/server/location/AbstractLocationProvider$LocationProviderManager;Lcom/android/server/LocationUsageLogger;)V
-PLcom/android/server/GnssManagerService;-><init>(Lcom/android/server/LocationManagerService;Landroid/content/Context;Lcom/android/server/location/GnssLocationProvider;Lcom/android/server/LocationUsageLogger;)V
+HSPLcom/android/server/GestureLauncherService;->isCameraDoubleTapPowerEnabled(Landroid/content/res/Resources;)Z
+HSPLcom/android/server/GestureLauncherService;->isCameraDoubleTapPowerSettingEnabled(Landroid/content/Context;I)Z
+HSPLcom/android/server/GestureLauncherService;->isCameraLaunchEnabled(Landroid/content/res/Resources;)Z
+HSPLcom/android/server/GestureLauncherService;->isCameraLaunchSettingEnabled(Landroid/content/Context;I)Z
+HSPLcom/android/server/GestureLauncherService;->isCameraLiftTriggerEnabled(Landroid/content/res/Resources;)Z
+HSPLcom/android/server/GestureLauncherService;->isCameraLiftTriggerSettingEnabled(Landroid/content/Context;I)Z
+HSPLcom/android/server/GestureLauncherService;->isGestureLauncherEnabled(Landroid/content/res/Resources;)Z
+HSPLcom/android/server/GestureLauncherService;->onBootPhase(I)V
+HSPLcom/android/server/GestureLauncherService;->onStart()V
+HSPLcom/android/server/GestureLauncherService;->registerContentObservers()V
+HSPLcom/android/server/GestureLauncherService;->unregisterCameraLaunchGesture()V
+HSPLcom/android/server/GestureLauncherService;->unregisterCameraLiftTrigger()V
+HSPLcom/android/server/GestureLauncherService;->updateCameraDoubleTapPowerEnabled()V
+HSPLcom/android/server/GestureLauncherService;->updateCameraRegistered()V
+HSPLcom/android/server/GnssManagerService;-><clinit>()V
+HSPLcom/android/server/GnssManagerService;-><init>(Lcom/android/server/LocationManagerService;Landroid/content/Context;Lcom/android/server/location/AbstractLocationProvider$LocationProviderManager;Lcom/android/server/location/LocationUsageLogger;)V
+HSPLcom/android/server/GnssManagerService;-><init>(Lcom/android/server/LocationManagerService;Landroid/content/Context;Lcom/android/server/location/GnssLocationProvider;Lcom/android/server/location/LocationUsageLogger;)V
PLcom/android/server/GnssManagerService;->addGnssDataListenerLocked(Landroid/os/IInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/location/RemoteListenerHelper;Landroid/util/ArrayMap;Ljava/util/function/Consumer;)Z
+PLcom/android/server/GnssManagerService;->addGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
PLcom/android/server/GnssManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-PLcom/android/server/GnssManagerService;->getGnssLocationProvider()Lcom/android/server/location/GnssLocationProvider;
-PLcom/android/server/GnssManagerService;->getGpsGeofenceProxy()Landroid/location/IGpsGeofenceHardware;
+HSPLcom/android/server/GnssManagerService;->getGnssLocationProvider()Lcom/android/server/location/GnssLocationProvider;
+HSPLcom/android/server/GnssManagerService;->getGpsGeofenceProxy()Landroid/location/IGpsGeofenceHardware;
PLcom/android/server/GnssManagerService;->hasGnssPermissions(Ljava/lang/String;)Z
-PLcom/android/server/GnssManagerService;->isGnssSupported()Z
+HSPLcom/android/server/GnssManagerService;->isGnssSupported()Z
PLcom/android/server/GnssManagerService;->lambda$registerUidListener$1$GnssManagerService(II)V
PLcom/android/server/GnssManagerService;->lambda$registerUidListener$2$GnssManagerService(II)V
-PLcom/android/server/GnssManagerService;->onForegroundChanged(IZ)V
+HPLcom/android/server/GnssManagerService;->onForegroundChanged(IZ)V
PLcom/android/server/GnssManagerService;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;Ljava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/GnssManagerService;->registerUidListener()V
+HSPLcom/android/server/GnssManagerService;->registerUidListener()V
PLcom/android/server/GnssManagerService;->removeGnssDataListener(Landroid/os/IInterface;Lcom/android/server/location/RemoteListenerHelper;Landroid/util/ArrayMap;)V
+PLcom/android/server/GnssManagerService;->removeGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;)V
PLcom/android/server/GnssManagerService;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
HPLcom/android/server/GnssManagerService;->updateListenersOnForegroundChangedLocked(Landroid/util/ArrayMap;Lcom/android/server/location/RemoteListenerHelper;Ljava/util/function/Function;IZ)V
-PLcom/android/server/GraphicsStatsService$1;-><init>(Lcom/android/server/GraphicsStatsService;)V
+HSPLcom/android/server/GraphicsStatsService$1;-><init>(Lcom/android/server/GraphicsStatsService;)V
PLcom/android/server/GraphicsStatsService$1;->handleMessage(Landroid/os/Message;)Z
PLcom/android/server/GraphicsStatsService$ActiveBuffer;-><init>(Lcom/android/server/GraphicsStatsService;Landroid/view/IGraphicsStatsCallback;IILjava/lang/String;J)V
PLcom/android/server/GraphicsStatsService$ActiveBuffer;->binderDied()V
PLcom/android/server/GraphicsStatsService$BufferInfo;-><init>(Lcom/android/server/GraphicsStatsService;Ljava/lang/String;JJ)V
PLcom/android/server/GraphicsStatsService$HistoricalBuffer;-><init>(Lcom/android/server/GraphicsStatsService;Lcom/android/server/GraphicsStatsService$ActiveBuffer;)V
-PLcom/android/server/GraphicsStatsService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/GraphicsStatsService;-><init>(Landroid/content/Context;)V
PLcom/android/server/GraphicsStatsService;->access$200(Lcom/android/server/GraphicsStatsService;)I
PLcom/android/server/GraphicsStatsService;->access$300(Lcom/android/server/GraphicsStatsService;)[B
PLcom/android/server/GraphicsStatsService;->addToSaveQueue(Lcom/android/server/GraphicsStatsService$ActiveBuffer;)V
PLcom/android/server/GraphicsStatsService;->deleteOldBuffers()V
+PLcom/android/server/GraphicsStatsService;->deleteRecursiveLocked(Ljava/io/File;)V
+PLcom/android/server/GraphicsStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/GraphicsStatsService;->dumpActiveLocked(JLjava/util/ArrayList;)Ljava/util/HashSet;
+PLcom/android/server/GraphicsStatsService;->dumpHistoricalLocked(JLjava/util/HashSet;)V
PLcom/android/server/GraphicsStatsService;->fetchActiveBuffersLocked(Landroid/view/IGraphicsStatsCallback;IILjava/lang/String;J)Lcom/android/server/GraphicsStatsService$ActiveBuffer;
PLcom/android/server/GraphicsStatsService;->getPfd(Landroid/os/MemoryFile;)Landroid/os/ParcelFileDescriptor;
PLcom/android/server/GraphicsStatsService;->normalizeDate(J)Ljava/util/Calendar;
@@ -1566,372 +1702,395 @@ PLcom/android/server/GraphicsStatsService;->requestBufferForProcess(Ljava/lang/S
PLcom/android/server/GraphicsStatsService;->requestBufferForProcessLocked(Landroid/view/IGraphicsStatsCallback;IILjava/lang/String;J)Landroid/os/ParcelFileDescriptor;
PLcom/android/server/GraphicsStatsService;->saveBuffer(Lcom/android/server/GraphicsStatsService$HistoricalBuffer;)V
PLcom/android/server/GraphicsStatsService;->scheduleRotateLocked()V
-PLcom/android/server/HardwarePropertiesManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/HardwarePropertiesManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/HardwarePropertiesManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/HardwarePropertiesManagerService;->dumpTempValues(Ljava/lang/String;Ljava/io/PrintWriter;ILjava/lang/String;)V
PLcom/android/server/HardwarePropertiesManagerService;->enforceHardwarePropertiesRetrievalAllowed(Ljava/lang/String;)V
+PLcom/android/server/HardwarePropertiesManagerService;->getCpuUsages(Ljava/lang/String;)[Landroid/os/CpuUsageInfo;
PLcom/android/server/HardwarePropertiesManagerService;->getDeviceTemperatures(Ljava/lang/String;II)[F
+PLcom/android/server/HardwarePropertiesManagerService;->getFanSpeeds(Ljava/lang/String;)[F
HSPLcom/android/server/IntentResolver$1;-><init>()V
-HPLcom/android/server/IntentResolver$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/IntentResolver$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/IntentResolver$IteratorWrapper;-><init>(Lcom/android/server/IntentResolver;Ljava/util/Iterator;)V
+PLcom/android/server/IntentResolver$IteratorWrapper;->hasNext()Z
+PLcom/android/server/IntentResolver$IteratorWrapper;->next()Landroid/content/IntentFilter;
+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/content/IntentFilter;)V
HSPLcom/android/server/IntentResolver;->addFilter(Landroid/util/ArrayMap;Ljava/lang/String;Landroid/content/IntentFilter;)V
-PLcom/android/server/IntentResolver;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
+HSPLcom/android/server/IntentResolver;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
HSPLcom/android/server/IntentResolver;->buildResolveList(Landroid/content/Intent;Landroid/util/FastImmutableArraySet;ZZLjava/lang/String;Ljava/lang/String;[Landroid/content/IntentFilter;Ljava/util/List;I)V
HSPLcom/android/server/IntentResolver;->collectFilters([Landroid/content/IntentFilter;Landroid/content/IntentFilter;)Ljava/util/ArrayList;
+PLcom/android/server/IntentResolver;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)Z
+PLcom/android/server/IntentResolver;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+PLcom/android/server/IntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/content/IntentFilter;)V
+HPLcom/android/server/IntentResolver;->dumpMap(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArrayMap;Ljava/lang/String;ZZ)Z
HSPLcom/android/server/IntentResolver;->filterEquals(Landroid/content/IntentFilter;Landroid/content/IntentFilter;)Z
+PLcom/android/server/IntentResolver;->filterIterator()Ljava/util/Iterator;
HSPLcom/android/server/IntentResolver;->filterResults(Ljava/util/List;)V
HSPLcom/android/server/IntentResolver;->filterSet()Ljava/util/Set;
HSPLcom/android/server/IntentResolver;->findFilters(Landroid/content/IntentFilter;)Ljava/util/ArrayList;
HSPLcom/android/server/IntentResolver;->getFastIntentCategories(Landroid/content/Intent;)Landroid/util/FastImmutableArraySet;
-HPLcom/android/server/IntentResolver;->isFilterStopped(Landroid/content/IntentFilter;I)Z
-PLcom/android/server/IntentResolver;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
+HSPLcom/android/server/IntentResolver;->isFilterStopped(Landroid/content/IntentFilter;I)Z
+HSPLcom/android/server/IntentResolver;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
HSPLcom/android/server/IntentResolver;->queryIntent(Landroid/content/Intent;Ljava/lang/String;ZI)Ljava/util/List;
-HPLcom/android/server/IntentResolver;->queryIntentFromList(Landroid/content/Intent;Ljava/lang/String;ZLjava/util/ArrayList;I)Ljava/util/List;
+HSPLcom/android/server/IntentResolver;->queryIntentFromList(Landroid/content/Intent;Ljava/lang/String;ZLjava/util/ArrayList;I)Ljava/util/List;
HSPLcom/android/server/IntentResolver;->register_intent_filter(Landroid/content/IntentFilter;Ljava/util/Iterator;Landroid/util/ArrayMap;Ljava/lang/String;)I
HSPLcom/android/server/IntentResolver;->register_mime_types(Landroid/content/IntentFilter;Ljava/lang/String;)I
PLcom/android/server/IntentResolver;->removeFilter(Landroid/content/IntentFilter;)V
HPLcom/android/server/IntentResolver;->removeFilterInternal(Landroid/content/IntentFilter;)V
HPLcom/android/server/IntentResolver;->remove_all_objects(Landroid/util/ArrayMap;Ljava/lang/String;Ljava/lang/Object;)V
-HPLcom/android/server/IntentResolver;->sortResults(Ljava/util/List;)V
+HSPLcom/android/server/IntentResolver;->sortResults(Ljava/util/List;)V
HPLcom/android/server/IntentResolver;->unregister_intent_filter(Landroid/content/IntentFilter;Ljava/util/Iterator;Landroid/util/ArrayMap;Ljava/lang/String;)I
HPLcom/android/server/IntentResolver;->unregister_mime_types(Landroid/content/IntentFilter;Ljava/lang/String;)I
+HPLcom/android/server/IntentResolver;->writeProtoMap(Landroid/util/proto/ProtoOutputStream;JLandroid/util/ArrayMap;)V
HSPLcom/android/server/IoThread;-><init>()V
HSPLcom/android/server/IoThread;->ensureThreadLocked()V
HSPLcom/android/server/IoThread;->get()Lcom/android/server/IoThread;
HSPLcom/android/server/IoThread;->getHandler()Landroid/os/Handler;
-PLcom/android/server/IpSecService$1;-><init>(Lcom/android/server/IpSecService;)V
-PLcom/android/server/IpSecService$1;->run()V
-PLcom/android/server/IpSecService$IpSecServiceConfiguration$1;-><init>()V
-PLcom/android/server/IpSecService$IpSecServiceConfiguration$1;->getNetdInstance()Landroid/net/INetd;
-PLcom/android/server/IpSecService$IpSecServiceConfiguration;-><clinit>()V
-PLcom/android/server/IpSecService$UserResourceTracker;-><init>()V
-PLcom/android/server/IpSecService;-><clinit>()V
-PLcom/android/server/IpSecService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/IpSecService;-><init>(Landroid/content/Context;Lcom/android/server/IpSecService$IpSecServiceConfiguration;)V
-PLcom/android/server/IpSecService;-><init>(Landroid/content/Context;Lcom/android/server/IpSecService$IpSecServiceConfiguration;Lcom/android/server/IpSecService$UidFdTagger;)V
-PLcom/android/server/IpSecService;->connectNativeNetdService()V
-PLcom/android/server/IpSecService;->create(Landroid/content/Context;)Lcom/android/server/IpSecService;
-PLcom/android/server/IpSecService;->isNetdAlive()Z
-PLcom/android/server/IpSecService;->systemReady()V
-PLcom/android/server/LocationManagerService$1;-><init>(Lcom/android/server/LocationManagerService;)V
+HSPLcom/android/server/IpSecService$1;-><init>(Lcom/android/server/IpSecService;)V
+HSPLcom/android/server/IpSecService$1;->run()V
+HSPLcom/android/server/IpSecService$IpSecServiceConfiguration$1;-><init>()V
+HSPLcom/android/server/IpSecService$IpSecServiceConfiguration$1;->getNetdInstance()Landroid/net/INetd;
+HSPLcom/android/server/IpSecService$IpSecServiceConfiguration;-><clinit>()V
+HSPLcom/android/server/IpSecService$UserResourceTracker;-><init>()V
+PLcom/android/server/IpSecService$UserResourceTracker;->toString()Ljava/lang/String;
+HSPLcom/android/server/IpSecService;-><clinit>()V
+HSPLcom/android/server/IpSecService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/IpSecService;-><init>(Landroid/content/Context;Lcom/android/server/IpSecService$IpSecServiceConfiguration;)V
+HSPLcom/android/server/IpSecService;-><init>(Landroid/content/Context;Lcom/android/server/IpSecService$IpSecServiceConfiguration;Lcom/android/server/IpSecService$UidFdTagger;)V
+HSPLcom/android/server/IpSecService;->connectNativeNetdService()V
+HSPLcom/android/server/IpSecService;->create(Landroid/content/Context;)Lcom/android/server/IpSecService;
+PLcom/android/server/IpSecService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/IpSecService;->isNetdAlive()Z
+HSPLcom/android/server/IpSecService;->systemReady()V
+HSPLcom/android/server/LocationManagerService$1;-><init>(Lcom/android/server/LocationManagerService;)V
PLcom/android/server/LocationManagerService$1;->lambda$onOpChanged$0$LocationManagerService$1()V
PLcom/android/server/LocationManagerService$1;->onOpChanged(ILjava/lang/String;)V
-PLcom/android/server/LocationManagerService$2;-><init>(Lcom/android/server/LocationManagerService;)V
+HSPLcom/android/server/LocationManagerService$2;-><init>(Lcom/android/server/LocationManagerService;)V
PLcom/android/server/LocationManagerService$2;->onPackageDisappeared(Ljava/lang/String;I)V
-PLcom/android/server/LocationManagerService$3;-><init>(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/LocationManagerService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/LocationManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
-PLcom/android/server/LocationManagerService$Lifecycle;->onBootPhase(I)V
-PLcom/android/server/LocationManagerService$Lifecycle;->onStart()V
-PLcom/android/server/LocationManagerService$LocationProvider;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
-PLcom/android/server/LocationManagerService$LocationProvider;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;Lcom/android/server/LocationManagerService$1;)V
-PLcom/android/server/LocationManagerService$LocationProvider;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;Z)V
-PLcom/android/server/LocationManagerService$LocationProvider;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;ZLcom/android/server/LocationManagerService$1;)V
-PLcom/android/server/LocationManagerService$LocationProvider;->attachLocked(Lcom/android/server/location/AbstractLocationProvider;)V
-PLcom/android/server/LocationManagerService$LocationProvider;->getName()Ljava/lang/String;
-PLcom/android/server/LocationManagerService$LocationProvider;->getPropertiesLocked()Lcom/android/internal/location/ProviderProperties;
-PLcom/android/server/LocationManagerService$LocationProvider;->isPassiveLocked()Z
-PLcom/android/server/LocationManagerService$LocationProvider;->isUseableForUserLocked(I)Z
-PLcom/android/server/LocationManagerService$LocationProvider;->isUseableIgnoringAllowedLocked()Z
-PLcom/android/server/LocationManagerService$LocationProvider;->isUseableLocked()Z
-PLcom/android/server/LocationManagerService$LocationProvider;->lambda$setRequest$0$LocationManagerService$LocationProvider(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
-PLcom/android/server/LocationManagerService$LocationProvider;->onAllowedChangedLocked()V
-PLcom/android/server/LocationManagerService$LocationProvider;->onLocationModeChangedLocked()V
-PLcom/android/server/LocationManagerService$LocationProvider;->onReportLocation(Landroid/location/Location;)V
-PLcom/android/server/LocationManagerService$LocationProvider;->onSetEnabled(Z)V
-PLcom/android/server/LocationManagerService$LocationProvider;->onSetProperties(Lcom/android/internal/location/ProviderProperties;)V
-PLcom/android/server/LocationManagerService$LocationProvider;->onUseableChangedLocked(Z)V
-PLcom/android/server/LocationManagerService$LocationProvider;->setRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
-PLcom/android/server/LocationManagerService$Receiver;-><init>(Lcom/android/server/LocationManagerService;Landroid/location/ILocationListener;Landroid/app/PendingIntent;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;ZLjava/lang/String;)V
-PLcom/android/server/LocationManagerService$Receiver;-><init>(Lcom/android/server/LocationManagerService;Landroid/location/ILocationListener;Landroid/app/PendingIntent;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;ZLjava/lang/String;Lcom/android/server/LocationManagerService$1;)V
-PLcom/android/server/LocationManagerService$Receiver;->access$3600(Lcom/android/server/LocationManagerService$Receiver;)I
+HSPLcom/android/server/LocationManagerService$3;-><init>(Lcom/android/server/LocationManagerService;)V
+HPLcom/android/server/LocationManagerService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/LocationManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/LocationManagerService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/LocationManagerService$Lifecycle;->onStart()V
+HSPLcom/android/server/LocationManagerService$LocationProviderManager;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
+HSPLcom/android/server/LocationManagerService$LocationProviderManager;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;Lcom/android/server/LocationManagerService$1;)V
+HSPLcom/android/server/LocationManagerService$LocationProviderManager;->attachLocked(Lcom/android/server/location/AbstractLocationProvider;)V
+PLcom/android/server/LocationManagerService$LocationProviderManager;->dumpLocked(Ljava/io/FileDescriptor;Lcom/android/internal/util/IndentingPrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/LocationManagerService$LocationProviderManager;->getName()Ljava/lang/String;
+PLcom/android/server/LocationManagerService$LocationProviderManager;->getPropertiesLocked()Lcom/android/internal/location/ProviderProperties;
+PLcom/android/server/LocationManagerService$LocationProviderManager;->isMock()Z
+HPLcom/android/server/LocationManagerService$LocationProviderManager;->isPassiveLocked()Z
+HSPLcom/android/server/LocationManagerService$LocationProviderManager;->isUseableLocked()Z
+HSPLcom/android/server/LocationManagerService$LocationProviderManager;->isUseableLocked(I)Z
+HSPLcom/android/server/LocationManagerService$LocationProviderManager;->lambda$setRequest$0$LocationManagerService$LocationProviderManager(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
+HPLcom/android/server/LocationManagerService$LocationProviderManager;->onReportLocation(Landroid/location/Location;)V
+HSPLcom/android/server/LocationManagerService$LocationProviderManager;->onSetEnabled(Z)V
+HSPLcom/android/server/LocationManagerService$LocationProviderManager;->onSetProperties(Lcom/android/internal/location/ProviderProperties;)V
+HSPLcom/android/server/LocationManagerService$LocationProviderManager;->onUseableChangedLocked(I)V
+HSPLcom/android/server/LocationManagerService$LocationProviderManager;->setRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
+HSPLcom/android/server/LocationManagerService$Receiver;-><init>(Lcom/android/server/LocationManagerService;Landroid/location/ILocationListener;Landroid/app/PendingIntent;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;ZLjava/lang/String;)V
+HSPLcom/android/server/LocationManagerService$Receiver;-><init>(Lcom/android/server/LocationManagerService;Landroid/location/ILocationListener;Landroid/app/PendingIntent;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;ZLjava/lang/String;Lcom/android/server/LocationManagerService$1;)V
+PLcom/android/server/LocationManagerService$Receiver;->access$3200(Lcom/android/server/LocationManagerService$Receiver;Ljava/lang/String;Z)Z
+HSPLcom/android/server/LocationManagerService$Receiver;->access$3300(Lcom/android/server/LocationManagerService$Receiver;)I
PLcom/android/server/LocationManagerService$Receiver;->binderDied()V
-PLcom/android/server/LocationManagerService$Receiver;->callLocationChangedLocked(Landroid/location/Location;)Z
+HPLcom/android/server/LocationManagerService$Receiver;->callLocationChangedLocked(Landroid/location/Location;)Z
PLcom/android/server/LocationManagerService$Receiver;->callProviderEnabledLocked(Ljava/lang/String;Z)Z
PLcom/android/server/LocationManagerService$Receiver;->callRemovedLocked()V
PLcom/android/server/LocationManagerService$Receiver;->clearPendingBroadcastsLocked()V
-PLcom/android/server/LocationManagerService$Receiver;->decrementPendingBroadcastsLocked()V
-PLcom/android/server/LocationManagerService$Receiver;->getListener()Landroid/location/ILocationListener;
-PLcom/android/server/LocationManagerService$Receiver;->incrementPendingBroadcastsLocked()V
+HPLcom/android/server/LocationManagerService$Receiver;->decrementPendingBroadcastsLocked()V
+HSPLcom/android/server/LocationManagerService$Receiver;->getListener()Landroid/location/ILocationListener;
+HPLcom/android/server/LocationManagerService$Receiver;->incrementPendingBroadcastsLocked()V
PLcom/android/server/LocationManagerService$Receiver;->toString()Ljava/lang/String;
-PLcom/android/server/LocationManagerService$Receiver;->updateMonitoring(Z)V
+HSPLcom/android/server/LocationManagerService$Receiver;->updateMonitoring(Z)V
PLcom/android/server/LocationManagerService$Receiver;->updateMonitoring(ZZI)Z
-PLcom/android/server/LocationManagerService$UpdateRecord;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;Landroid/location/LocationRequest;Lcom/android/server/LocationManagerService$Receiver;)V
-PLcom/android/server/LocationManagerService$UpdateRecord;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;Landroid/location/LocationRequest;Lcom/android/server/LocationManagerService$Receiver;Lcom/android/server/LocationManagerService$1;)V
-PLcom/android/server/LocationManagerService$UpdateRecord;->access$1000(Lcom/android/server/LocationManagerService$UpdateRecord;)Lcom/android/server/LocationManagerService$Receiver;
+HSPLcom/android/server/LocationManagerService$UpdateRecord;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;Landroid/location/LocationRequest;Lcom/android/server/LocationManagerService$Receiver;)V
+HSPLcom/android/server/LocationManagerService$UpdateRecord;-><init>(Lcom/android/server/LocationManagerService;Ljava/lang/String;Landroid/location/LocationRequest;Lcom/android/server/LocationManagerService$Receiver;Lcom/android/server/LocationManagerService$1;)V
+HSPLcom/android/server/LocationManagerService$UpdateRecord;->access$1000(Lcom/android/server/LocationManagerService$UpdateRecord;)Lcom/android/server/LocationManagerService$Receiver;
PLcom/android/server/LocationManagerService$UpdateRecord;->access$1100(Lcom/android/server/LocationManagerService$UpdateRecord;)Z
-PLcom/android/server/LocationManagerService$UpdateRecord;->access$3700(Lcom/android/server/LocationManagerService$UpdateRecord;)Landroid/location/LocationRequest;
-PLcom/android/server/LocationManagerService$UpdateRecord;->access$4400(Lcom/android/server/LocationManagerService$UpdateRecord;Z)V
-PLcom/android/server/LocationManagerService$UpdateRecord;->access$4600(Lcom/android/server/LocationManagerService$UpdateRecord;)J
-PLcom/android/server/LocationManagerService$UpdateRecord;->access$4700(Lcom/android/server/LocationManagerService$UpdateRecord;)Landroid/location/Location;
-PLcom/android/server/LocationManagerService$UpdateRecord;->access$4702(Lcom/android/server/LocationManagerService$UpdateRecord;Landroid/location/Location;)Landroid/location/Location;
+HSPLcom/android/server/LocationManagerService$UpdateRecord;->access$3400(Lcom/android/server/LocationManagerService$UpdateRecord;)Landroid/location/LocationRequest;
+PLcom/android/server/LocationManagerService$UpdateRecord;->access$4100(Lcom/android/server/LocationManagerService$UpdateRecord;Z)V
+HPLcom/android/server/LocationManagerService$UpdateRecord;->access$4300(Lcom/android/server/LocationManagerService$UpdateRecord;)J
+HPLcom/android/server/LocationManagerService$UpdateRecord;->access$4400(Lcom/android/server/LocationManagerService$UpdateRecord;)Landroid/location/Location;
+PLcom/android/server/LocationManagerService$UpdateRecord;->access$4402(Lcom/android/server/LocationManagerService$UpdateRecord;Landroid/location/Location;)Landroid/location/Location;
PLcom/android/server/LocationManagerService$UpdateRecord;->disposeLocked(Z)V
PLcom/android/server/LocationManagerService$UpdateRecord;->toString()Ljava/lang/String;
-PLcom/android/server/LocationManagerService;-><clinit>()V
-PLcom/android/server/LocationManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/LocationManagerService;-><init>(Landroid/content/Context;Lcom/android/server/LocationManagerService$1;)V
-PLcom/android/server/LocationManagerService;->access$100(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/LocationManagerService;->access$1500(Lcom/android/server/LocationManagerService;)Landroid/content/Context;
-PLcom/android/server/LocationManagerService;->access$1600(Lcom/android/server/LocationManagerService;)I
-PLcom/android/server/LocationManagerService;->access$200(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/LocationManagerService;->access$2000(Lcom/android/server/LocationManagerService;Ljava/lang/String;)Lcom/android/server/LocationManagerService$LocationProvider;
-PLcom/android/server/LocationManagerService;->access$2100(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/LocationSettingsStore;
-PLcom/android/server/LocationManagerService;->access$2200(Lcom/android/server/LocationManagerService;I)Z
-PLcom/android/server/LocationManagerService;->access$2300(Lcom/android/server/LocationManagerService;)Ljava/util/ArrayList;
-PLcom/android/server/LocationManagerService;->access$2400(Lcom/android/server/LocationManagerService;)Z
-PLcom/android/server/LocationManagerService;->access$2700(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$LocationProvider;)V
-PLcom/android/server/LocationManagerService;->access$2800(Lcom/android/server/LocationManagerService;II)I
-PLcom/android/server/LocationManagerService;->access$2900(Lcom/android/server/LocationManagerService;)Landroid/os/PowerManager;
-PLcom/android/server/LocationManagerService;->access$300(Lcom/android/server/LocationManagerService;)Landroid/os/Handler;
-PLcom/android/server/LocationManagerService;->access$3100(Lcom/android/server/LocationManagerService;)Landroid/app/AppOpsManager;
-PLcom/android/server/LocationManagerService;->access$3800(Lcom/android/server/LocationManagerService;)Landroid/app/ActivityManager;
-PLcom/android/server/LocationManagerService;->access$3900(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
-PLcom/android/server/LocationManagerService;->access$400(Lcom/android/server/LocationManagerService;)Ljava/lang/Object;
-PLcom/android/server/LocationManagerService;->access$4000(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/LocationRequestStatistics;
+HSPLcom/android/server/LocationManagerService;-><clinit>()V
+HSPLcom/android/server/LocationManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/LocationManagerService;-><init>(Landroid/content/Context;Lcom/android/server/LocationManagerService$1;)V
+HSPLcom/android/server/LocationManagerService;->access$100(Lcom/android/server/LocationManagerService;)V
+HSPLcom/android/server/LocationManagerService;->access$1400(Lcom/android/server/LocationManagerService;)Landroid/content/Context;
+HSPLcom/android/server/LocationManagerService;->access$1500(Lcom/android/server/LocationManagerService;)I
+PLcom/android/server/LocationManagerService;->access$1600(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/PassiveProvider;
+HPLcom/android/server/LocationManagerService;->access$1700(Lcom/android/server/LocationManagerService;Landroid/location/Location;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
+PLcom/android/server/LocationManagerService;->access$1900(Lcom/android/server/LocationManagerService;Ljava/lang/String;)Lcom/android/server/LocationManagerService$LocationProviderManager;
+HSPLcom/android/server/LocationManagerService;->access$200(Lcom/android/server/LocationManagerService;)V
+HSPLcom/android/server/LocationManagerService;->access$2000(Lcom/android/server/LocationManagerService;)Ljava/util/ArrayList;
+HSPLcom/android/server/LocationManagerService;->access$2100(Lcom/android/server/LocationManagerService;I)Z
+PLcom/android/server/LocationManagerService;->access$2200(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
+PLcom/android/server/LocationManagerService;->access$2300(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
+HSPLcom/android/server/LocationManagerService;->access$2400(Lcom/android/server/LocationManagerService;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
+HSPLcom/android/server/LocationManagerService;->access$2500(Lcom/android/server/LocationManagerService;II)I
+HSPLcom/android/server/LocationManagerService;->access$2600(Lcom/android/server/LocationManagerService;)Landroid/os/PowerManager;
+PLcom/android/server/LocationManagerService;->access$2800(Lcom/android/server/LocationManagerService;)Landroid/app/AppOpsManager;
+HSPLcom/android/server/LocationManagerService;->access$300(Lcom/android/server/LocationManagerService;)Landroid/os/Handler;
+HSPLcom/android/server/LocationManagerService;->access$3500(Lcom/android/server/LocationManagerService;)Landroid/app/ActivityManager;
+HSPLcom/android/server/LocationManagerService;->access$3600(Lcom/android/server/LocationManagerService;)Ljava/util/HashMap;
+HSPLcom/android/server/LocationManagerService;->access$3700(Lcom/android/server/LocationManagerService;)Lcom/android/server/location/LocationRequestStatistics;
+HSPLcom/android/server/LocationManagerService;->access$400(Lcom/android/server/LocationManagerService;)Ljava/lang/Object;
PLcom/android/server/LocationManagerService;->access$500(Lcom/android/server/LocationManagerService;)V
PLcom/android/server/LocationManagerService;->access$600(Lcom/android/server/LocationManagerService;Ljava/lang/String;)V
PLcom/android/server/LocationManagerService;->access$700(Lcom/android/server/LocationManagerService;I)V
PLcom/android/server/LocationManagerService;->access$900(Lcom/android/server/LocationManagerService;)V
-PLcom/android/server/LocationManagerService;->addProviderLocked(Lcom/android/server/LocationManagerService$LocationProvider;)V
-PLcom/android/server/LocationManagerService;->applyRequirementsLocked(Lcom/android/server/LocationManagerService$LocationProvider;)V
-PLcom/android/server/LocationManagerService;->applyRequirementsLocked(Ljava/lang/String;)V
-PLcom/android/server/LocationManagerService;->checkLocationAccess(IILjava/lang/String;I)Z
-PLcom/android/server/LocationManagerService;->checkPackageName(Ljava/lang/String;)V
-PLcom/android/server/LocationManagerService;->checkResolutionLevelIsSufficientForProviderUseLocked(ILjava/lang/String;)V
-PLcom/android/server/LocationManagerService;->createSanitizedRequest(Landroid/location/LocationRequest;IZ)Landroid/location/LocationRequest;
+PLcom/android/server/LocationManagerService;->addGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/server/LocationManagerService;->addProviderLocked(Lcom/android/server/LocationManagerService$LocationProviderManager;)V
+HSPLcom/android/server/LocationManagerService;->applyRequirementsLocked(Lcom/android/server/LocationManagerService$LocationProviderManager;)V
+HSPLcom/android/server/LocationManagerService;->applyRequirementsLocked(Ljava/lang/String;)V
+HSPLcom/android/server/LocationManagerService;->checkLocationAccess(IILjava/lang/String;I)Z
+HSPLcom/android/server/LocationManagerService;->checkPackageName(Ljava/lang/String;)V
+HSPLcom/android/server/LocationManagerService;->checkResolutionLevelIsSufficientForProviderUseLocked(ILjava/lang/String;)V
+HSPLcom/android/server/LocationManagerService;->createSanitizedRequest(Landroid/location/LocationRequest;IZ)Landroid/location/LocationRequest;
PLcom/android/server/LocationManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-PLcom/android/server/LocationManagerService;->ensureFallbackFusedProviderPresentLocked([Ljava/lang/String;)V
+HSPLcom/android/server/LocationManagerService;->ensureFallbackFusedProviderPresentLocked([Ljava/lang/String;)V
PLcom/android/server/LocationManagerService;->geocoderIsPresent()Z
PLcom/android/server/LocationManagerService;->getAllProviders()Ljava/util/List;
-PLcom/android/server/LocationManagerService;->getAllowedResolutionLevel(II)I
-PLcom/android/server/LocationManagerService;->getCallerAllowedResolutionLevel()I
+HSPLcom/android/server/LocationManagerService;->getAllowedResolutionLevel(II)I
+HSPLcom/android/server/LocationManagerService;->getCallerAllowedResolutionLevel()I
PLcom/android/server/LocationManagerService;->getExtraLocationControllerPackage()Ljava/lang/String;
-PLcom/android/server/LocationManagerService;->getLastLocation(Landroid/location/LocationRequest;Ljava/lang/String;Ljava/lang/String;)Landroid/location/Location;
-PLcom/android/server/LocationManagerService;->getLocationProviderLocked(Ljava/lang/String;)Lcom/android/server/LocationManagerService$LocationProvider;
-PLcom/android/server/LocationManagerService;->getMinimumResolutionLevelForProviderUseLocked(Ljava/lang/String;)I
+HPLcom/android/server/LocationManagerService;->getLastLocation(Landroid/location/LocationRequest;Ljava/lang/String;Ljava/lang/String;)Landroid/location/Location;
+HSPLcom/android/server/LocationManagerService;->getLocationProviderLocked(Ljava/lang/String;)Lcom/android/server/LocationManagerService$LocationProviderManager;
+HSPLcom/android/server/LocationManagerService;->getMinimumResolutionLevelForProviderUseLocked(Ljava/lang/String;)I
PLcom/android/server/LocationManagerService;->getProviderProperties(Ljava/lang/String;)Lcom/android/internal/location/ProviderProperties;
PLcom/android/server/LocationManagerService;->getProviders(Landroid/location/Criteria;Z)Ljava/util/List;
-PLcom/android/server/LocationManagerService;->getReceiverLocked(Landroid/location/ILocationListener;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;ZLjava/lang/String;)Lcom/android/server/LocationManagerService$Receiver;
-PLcom/android/server/LocationManagerService;->handleLocationChangedLocked(Landroid/location/Location;Lcom/android/server/LocationManagerService$LocationProvider;)V
-PLcom/android/server/LocationManagerService;->initializeProvidersLocked()V
-PLcom/android/server/LocationManagerService;->isCurrentProfileLocked(I)Z
-PLcom/android/server/LocationManagerService;->isLocationEnabled()Z
-HPLcom/android/server/LocationManagerService;->isLocationEnabledForUser(I)Z
-PLcom/android/server/LocationManagerService;->isProviderEnabledForUser(Ljava/lang/String;I)Z
-PLcom/android/server/LocationManagerService;->isProviderPackage(Ljava/lang/String;)Z
+HSPLcom/android/server/LocationManagerService;->getReceiverLocked(Landroid/location/ILocationListener;IILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;ZLjava/lang/String;)Lcom/android/server/LocationManagerService$Receiver;
+HPLcom/android/server/LocationManagerService;->handleLocationChangedLocked(Landroid/location/Location;Lcom/android/server/LocationManagerService$LocationProviderManager;)V
+HSPLcom/android/server/LocationManagerService;->initializeProvidersLocked()V
+HSPLcom/android/server/LocationManagerService;->isCurrentProfileLocked(I)Z
+PLcom/android/server/LocationManagerService;->isExtraLocationControllerPackageEnabled()Z
+HSPLcom/android/server/LocationManagerService;->isLocationEnabledForUser(I)Z
+HSPLcom/android/server/LocationManagerService;->isProviderEnabledForUser(Ljava/lang/String;I)Z
+HPLcom/android/server/LocationManagerService;->isProviderPackage(Ljava/lang/String;)Z
PLcom/android/server/LocationManagerService;->isSettingsExemptLocked(Lcom/android/server/LocationManagerService$UpdateRecord;)Z
-PLcom/android/server/LocationManagerService;->isThrottlingExemptLocked(Lcom/android/server/location/CallerIdentity;)Z
+HSPLcom/android/server/LocationManagerService;->isThrottlingExemptLocked(Lcom/android/server/location/CallerIdentity;)Z
PLcom/android/server/LocationManagerService;->isValidWorkSource(Landroid/os/WorkSource;)Z
-PLcom/android/server/LocationManagerService;->lambda$onSystemReady$2$LocationManagerService()V
-PLcom/android/server/LocationManagerService;->lambda$onSystemReady$3$LocationManagerService(I)V
-HPLcom/android/server/LocationManagerService;->lambda$onSystemReady$4$LocationManagerService(II)V
-HPLcom/android/server/LocationManagerService;->lambda$onSystemReady$5$LocationManagerService(II)V
+PLcom/android/server/LocationManagerService;->lambda$new$0$LocationManagerService(I)[Ljava/lang/String;
+PLcom/android/server/LocationManagerService;->lambda$new$1$LocationManagerService(I)[Ljava/lang/String;
+HPLcom/android/server/LocationManagerService;->lambda$onSystemReady$2$LocationManagerService()V
+HPLcom/android/server/LocationManagerService;->lambda$onSystemReady$3$LocationManagerService(I)V
+HSPLcom/android/server/LocationManagerService;->lambda$onSystemReady$4$LocationManagerService(II)V
+HSPLcom/android/server/LocationManagerService;->lambda$onSystemReady$5$LocationManagerService(II)V
PLcom/android/server/LocationManagerService;->lambda$onSystemReady$8$LocationManagerService(I)V
-PLcom/android/server/LocationManagerService;->lambda$onSystemReady$9$LocationManagerService(I)V
-PLcom/android/server/LocationManagerService;->locationCallbackFinished(Landroid/location/ILocationListener;)V
+HPLcom/android/server/LocationManagerService;->locationCallbackFinished(Landroid/location/ILocationListener;)V
PLcom/android/server/LocationManagerService;->onAppOpChangedLocked()V
-PLcom/android/server/LocationManagerService;->onLocationModeChangedLocked(IZ)V
+PLcom/android/server/LocationManagerService;->onLocationModeChangedLocked(I)V
PLcom/android/server/LocationManagerService;->onPackageDisappearedLocked(Ljava/lang/String;)V
-PLcom/android/server/LocationManagerService;->onPermissionsChangedLocked()V
-PLcom/android/server/LocationManagerService;->onProviderAllowedChangedLocked(I)V
+HPLcom/android/server/LocationManagerService;->onPermissionsChangedLocked()V
PLcom/android/server/LocationManagerService;->onScreenStateChangedLocked()V
-PLcom/android/server/LocationManagerService;->onSystemReady()V
-PLcom/android/server/LocationManagerService;->onSystemThirdPartyAppsCanStart()V
-HPLcom/android/server/LocationManagerService;->onUidImportanceChangedLocked(II)V
-PLcom/android/server/LocationManagerService;->onUserChangedLocked(I)V
-PLcom/android/server/LocationManagerService;->onUserProfilesChangedLocked()V
+HSPLcom/android/server/LocationManagerService;->onSystemReady()V
+HSPLcom/android/server/LocationManagerService;->onSystemThirdPartyAppsCanStart()V
+HSPLcom/android/server/LocationManagerService;->onUidImportanceChangedLocked(II)V
+HSPLcom/android/server/LocationManagerService;->onUserChangedLocked(I)V
+HSPLcom/android/server/LocationManagerService;->onUserProfilesChangedLocked()V
PLcom/android/server/LocationManagerService;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/LocationManagerService;->removeGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;)V
PLcom/android/server/LocationManagerService;->removeUpdates(Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;)V
PLcom/android/server/LocationManagerService;->removeUpdatesLocked(Lcom/android/server/LocationManagerService$Receiver;)V
-PLcom/android/server/LocationManagerService;->reportLocationAccessNoThrow(IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;)Z
-PLcom/android/server/LocationManagerService;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/LocationManagerService;->requestLocationUpdatesLocked(Landroid/location/LocationRequest;Lcom/android/server/LocationManagerService$Receiver;ILjava/lang/String;)V
-PLcom/android/server/LocationManagerService;->resolutionLevelToOp(I)I
+HPLcom/android/server/LocationManagerService;->reportLocationAccessNoThrow(IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;)Z
+HSPLcom/android/server/LocationManagerService;->requestLocationUpdates(Landroid/location/LocationRequest;Landroid/location/ILocationListener;Landroid/app/PendingIntent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/LocationManagerService;->requestLocationUpdatesLocked(Landroid/location/LocationRequest;Lcom/android/server/LocationManagerService$Receiver;ILjava/lang/String;)V
+HSPLcom/android/server/LocationManagerService;->resolutionLevelToOp(I)I
PLcom/android/server/LocationManagerService;->resolutionLevelToOpStr(I)Ljava/lang/String;
PLcom/android/server/LocationManagerService;->setExtraLocationControllerPackage(Ljava/lang/String;)V
-PLcom/android/server/LocationManagerService;->setExtraLocationControllerPackageEnabled(Z)V
-PLcom/android/server/LocationManagerService;->shouldBroadcastSafeLocked(Landroid/location/Location;Landroid/location/Location;Lcom/android/server/LocationManagerService$UpdateRecord;J)Z
+HPLcom/android/server/LocationManagerService;->setExtraLocationControllerPackageEnabled(Z)V
+HPLcom/android/server/LocationManagerService;->shouldBroadcastSafeLocked(Landroid/location/Location;Landroid/location/Location;Lcom/android/server/LocationManagerService$UpdateRecord;J)Z
PLcom/android/server/LocationManagerService;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
PLcom/android/server/LocationManagerService;->updateLastLocationLocked(Landroid/location/Location;Ljava/lang/String;)V
-PLcom/android/server/LocationManagerService;->updateProviderUseableLocked(Lcom/android/server/LocationManagerService$LocationProvider;)V
+HSPLcom/android/server/LocationManagerService;->updateProviderUseableLocked(Lcom/android/server/LocationManagerService$LocationProviderManager;)V
PLcom/android/server/LocationManagerServiceUtils$LinkedListener;-><init>(Ljava/lang/Object;Ljava/lang/String;Lcom/android/server/location/CallerIdentity;Ljava/util/function/Consumer;)V
PLcom/android/server/LocationManagerServiceUtils$LinkedListener;->binderDied()V
-PLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;-><init>(Lcom/android/server/location/CallerIdentity;Ljava/lang/String;)V
+HSPLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;-><init>(Lcom/android/server/location/CallerIdentity;Ljava/lang/String;)V
PLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;->getCallerIdentity()Lcom/android/server/location/CallerIdentity;
-PLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;->linkToListenerDeathNotificationLocked(Landroid/os/IBinder;)Z
-PLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;->unlinkFromListenerDeathNotificationLocked(Landroid/os/IBinder;)Z
-PLcom/android/server/LocationManagerServiceUtils;-><clinit>()V
+HSPLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;->linkToListenerDeathNotificationLocked(Landroid/os/IBinder;)Z
+PLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;->toString()Ljava/lang/String;
+HPLcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;->unlinkFromListenerDeathNotificationLocked(Landroid/os/IBinder;)Z
+HSPLcom/android/server/LocationManagerServiceUtils;-><clinit>()V
PLcom/android/server/LocationManagerServiceUtils;->access$000()Z
PLcom/android/server/LocationManagerServiceUtils;->getPackageImportance(Ljava/lang/String;Landroid/content/Context;)I
-PLcom/android/server/LocationManagerServiceUtils;->isImportanceForeground(I)Z
-PLcom/android/server/LocationUsageLogger;-><clinit>()V
-PLcom/android/server/LocationUsageLogger;-><init>()V
-PLcom/android/server/LocationUsageLogger;->bucketizeIntervalToStatsdEnum(J)I
-PLcom/android/server/LocationUsageLogger;->bucketizeSmallestDisplacementToStatsdEnum(F)I
-PLcom/android/server/LocationUsageLogger;->categorizeActivityImportance(I)I
-PLcom/android/server/LocationUsageLogger;->checkApiUsageLogCap()Z
-PLcom/android/server/LocationUsageLogger;->getBucketizedExpireIn(J)I
-PLcom/android/server/LocationUsageLogger;->getCallbackType(IZZ)I
-PLcom/android/server/LocationUsageLogger;->logLocationApiUsage(IILjava/lang/String;Landroid/location/LocationRequest;ZZLandroid/location/Geofence;I)V
-PLcom/android/server/LocationUsageLogger;->providerNameToStatsdEnum(Ljava/lang/String;)I
+HSPLcom/android/server/LocationManagerServiceUtils;->isImportanceForeground(I)Z
HSPLcom/android/server/LockGuard$LockInfo;-><init>()V
HSPLcom/android/server/LockGuard$LockInfo;-><init>(Lcom/android/server/LockGuard$1;)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;->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;->lockToString(I)Ljava/lang/String;
-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;-><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$1;)V
-PLcom/android/server/LooperStatsService;->access$200(Lcom/android/server/LooperStatsService;)V
-PLcom/android/server/LooperStatsService;->initFromSettings()V
-PLcom/android/server/LooperStatsService;->setEnabled(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$1;)V
-PLcom/android/server/MmsServiceBroker;-><clinit>()V
-PLcom/android/server/MmsServiceBroker;-><init>(Landroid/content/Context;)V
-PLcom/android/server/MmsServiceBroker;->onStart()V
+HSPLcom/android/server/LooperStatsService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/LooperStatsService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/LooperStatsService$Lifecycle;->onStart()V
+HSPLcom/android/server/LooperStatsService$SettingsObserver;-><init>(Lcom/android/server/LooperStatsService;)V
+HSPLcom/android/server/LooperStatsService;-><init>(Landroid/content/Context;Lcom/android/internal/os/LooperStats;)V
+HSPLcom/android/server/LooperStatsService;-><init>(Landroid/content/Context;Lcom/android/internal/os/LooperStats;Lcom/android/server/LooperStatsService$1;)V
+HSPLcom/android/server/LooperStatsService;->access$200(Lcom/android/server/LooperStatsService;)V
+PLcom/android/server/LooperStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/LooperStatsService;->initFromSettings()V
+HSPLcom/android/server/LooperStatsService;->setEnabled(Z)V
+HSPLcom/android/server/LooperStatsService;->setSamplingInterval(I)V
+HSPLcom/android/server/LooperStatsService;->setTrackScreenInteractive(Z)V
+HSPLcom/android/server/MmsServiceBroker$1;-><init>(Lcom/android/server/MmsServiceBroker;)V
+HSPLcom/android/server/MmsServiceBroker$2;-><init>(Lcom/android/server/MmsServiceBroker;)V
+HSPLcom/android/server/MmsServiceBroker$3;-><init>(Lcom/android/server/MmsServiceBroker;)V
+HSPLcom/android/server/MmsServiceBroker$BinderService;-><init>(Lcom/android/server/MmsServiceBroker;)V
+HSPLcom/android/server/MmsServiceBroker$BinderService;-><init>(Lcom/android/server/MmsServiceBroker;Lcom/android/server/MmsServiceBroker$1;)V
+HSPLcom/android/server/MmsServiceBroker;-><clinit>()V
+HSPLcom/android/server/MmsServiceBroker;-><init>(Landroid/content/Context;)V
+HSPLcom/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/NativeDaemonConnector$ResponseQueue;-><init>(I)V
-PLcom/android/server/NativeDaemonConnector;-><init>(Lcom/android/server/INativeDaemonConnectorCallbacks;Ljava/lang/String;ILjava/lang/String;ILandroid/os/PowerManager$WakeLock;)V
-PLcom/android/server/NativeDaemonConnector;-><init>(Lcom/android/server/INativeDaemonConnectorCallbacks;Ljava/lang/String;ILjava/lang/String;ILandroid/os/PowerManager$WakeLock;Landroid/os/Looper;)V
-PLcom/android/server/NativeDaemonConnector;->determineSocketAddress()Landroid/net/LocalSocketAddress;
-PLcom/android/server/NativeDaemonConnector;->isShuttingDown()Z
-PLcom/android/server/NativeDaemonConnector;->listenToSocket()V
-PLcom/android/server/NativeDaemonConnector;->run()V
-PLcom/android/server/NetIdManager;-><init>()V
-PLcom/android/server/NetIdManager;-><init>(I)V
+PLcom/android/server/MountServiceIdler$1;-><init>(Lcom/android/server/MountServiceIdler;)V
+PLcom/android/server/MountServiceIdler$1;->run()V
+HSPLcom/android/server/MountServiceIdler;-><clinit>()V
+PLcom/android/server/MountServiceIdler;-><init>()V
+HSPLcom/android/server/MountServiceIdler;->offsetFromTodayMidnight(II)Ljava/util/Calendar;
+PLcom/android/server/MountServiceIdler;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/MountServiceIdler;->onStopJob(Landroid/app/job/JobParameters;)Z
+HSPLcom/android/server/MountServiceIdler;->scheduleIdlePass(Landroid/content/Context;)V
+HSPLcom/android/server/NativeDaemonConnector$ResponseQueue;-><init>(I)V
+HSPLcom/android/server/NativeDaemonConnector;-><init>(Lcom/android/server/INativeDaemonConnectorCallbacks;Ljava/lang/String;ILjava/lang/String;ILandroid/os/PowerManager$WakeLock;)V
+HSPLcom/android/server/NativeDaemonConnector;-><init>(Lcom/android/server/INativeDaemonConnectorCallbacks;Ljava/lang/String;ILjava/lang/String;ILandroid/os/PowerManager$WakeLock;Landroid/os/Looper;)V
+HSPLcom/android/server/NativeDaemonConnector;->determineSocketAddress()Landroid/net/LocalSocketAddress;
+HSPLcom/android/server/NativeDaemonConnector;->isShuttingDown()Z
+HSPLcom/android/server/NativeDaemonConnector;->listenToSocket()V
+HSPLcom/android/server/NativeDaemonConnector;->run()V
+HSPLcom/android/server/NetIdManager;-><init>()V
+HSPLcom/android/server/NetIdManager;-><init>(I)V
PLcom/android/server/NetIdManager;->getNextAvailableNetIdLocked(ILandroid/util/SparseBooleanArray;)I
PLcom/android/server/NetIdManager;->releaseNetId(I)V
PLcom/android/server/NetIdManager;->reserveNetId()I
-PLcom/android/server/NetworkManagementInternal;-><init>()V
+HSPLcom/android/server/NetworkManagementInternal;-><init>()V
PLcom/android/server/NetworkManagementService$IdleTimerParams;-><init>(II)V
-PLcom/android/server/NetworkManagementService$LocalService;-><init>(Lcom/android/server/NetworkManagementService;)V
-PLcom/android/server/NetworkManagementService$LocalService;->isNetworkRestrictedForUid(I)Z
-PLcom/android/server/NetworkManagementService$NetdTetheringStatsProvider;-><init>(Lcom/android/server/NetworkManagementService;)V
-PLcom/android/server/NetworkManagementService$NetdTetheringStatsProvider;-><init>(Lcom/android/server/NetworkManagementService;Lcom/android/server/NetworkManagementService$1;)V
-PLcom/android/server/NetworkManagementService$NetdTetheringStatsProvider;->getTetherStats(I)Landroid/net/NetworkStats;
-PLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;-><init>(Lcom/android/server/NetworkManagementService;)V
-PLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;-><init>(Lcom/android/server/NetworkManagementService;Lcom/android/server/NetworkManagementService$1;)V
-PLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->lambda$onInterfaceAddressUpdated$3$NetworkManagementService$NetdUnsolicitedEventListener(Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->lambda$onInterfaceDnsServerInfo$2$NetworkManagementService$NetdUnsolicitedEventListener(Ljava/lang/String;J[Ljava/lang/String;)V
-PLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->lambda$onInterfaceLinkStateChanged$8$NetworkManagementService$NetdUnsolicitedEventListener(Ljava/lang/String;Z)V
-PLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->lambda$onRouteChanged$9$NetworkManagementService$NetdUnsolicitedEventListener(ZLandroid/net/RouteInfo;)V
+HSPLcom/android/server/NetworkManagementService$LocalService;-><init>(Lcom/android/server/NetworkManagementService;)V
+HSPLcom/android/server/NetworkManagementService$LocalService;->isNetworkRestrictedForUid(I)Z
+HSPLcom/android/server/NetworkManagementService$NetdTetheringStatsProvider;-><init>(Lcom/android/server/NetworkManagementService;)V
+HSPLcom/android/server/NetworkManagementService$NetdTetheringStatsProvider;-><init>(Lcom/android/server/NetworkManagementService;Lcom/android/server/NetworkManagementService$1;)V
+HSPLcom/android/server/NetworkManagementService$NetdTetheringStatsProvider;->getTetherStats(I)Landroid/net/NetworkStats;
+PLcom/android/server/NetworkManagementService$NetdTetheringStatsProvider;->setInterfaceQuota(Ljava/lang/String;J)V
+HSPLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;-><init>(Lcom/android/server/NetworkManagementService;)V
+HSPLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;-><init>(Lcom/android/server/NetworkManagementService;Lcom/android/server/NetworkManagementService$1;)V
+HSPLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->lambda$onInterfaceAdded$5$NetworkManagementService$NetdUnsolicitedEventListener(Ljava/lang/String;)V
+HSPLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->lambda$onInterfaceAddressRemoved$4$NetworkManagementService$NetdUnsolicitedEventListener(Ljava/lang/String;Landroid/net/LinkAddress;)V
+HSPLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->lambda$onInterfaceLinkStateChanged$8$NetworkManagementService$NetdUnsolicitedEventListener(Ljava/lang/String;Z)V
+HSPLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->lambda$onRouteChanged$9$NetworkManagementService$NetdUnsolicitedEventListener(ZLandroid/net/RouteInfo;)V
+HSPLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceAdded(Ljava/lang/String;)V
+HSPLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceAddressRemoved(Ljava/lang/String;Ljava/lang/String;II)V
PLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceAddressUpdated(Ljava/lang/String;Ljava/lang/String;II)V
-PLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceClassActivityChanged(ZIJI)V
+HPLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceClassActivityChanged(ZIJI)V
PLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceDnsServerInfo(Ljava/lang/String;J[Ljava/lang/String;)V
-PLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceLinkStateChanged(Ljava/lang/String;Z)V
-PLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->onRouteChanged(ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/NetworkManagementService$SystemServices;-><init>()V
-PLcom/android/server/NetworkManagementService$SystemServices;->getNetd()Landroid/net/INetd;
-PLcom/android/server/NetworkManagementService$SystemServices;->getService(Ljava/lang/String;)Landroid/os/IBinder;
-PLcom/android/server/NetworkManagementService$SystemServices;->registerLocalService(Lcom/android/server/NetworkManagementInternal;)V
-PLcom/android/server/NetworkManagementService;-><clinit>()V
-PLcom/android/server/NetworkManagementService;-><init>(Landroid/content/Context;Lcom/android/server/NetworkManagementService$SystemServices;)V
-PLcom/android/server/NetworkManagementService;->access$1000(Lcom/android/server/NetworkManagementService;Ljava/lang/String;J[Ljava/lang/String;)V
-PLcom/android/server/NetworkManagementService;->access$1300(Lcom/android/server/NetworkManagementService;)Landroid/net/INetd;
-PLcom/android/server/NetworkManagementService;->access$1400(Lcom/android/server/NetworkManagementService;I)Z
-PLcom/android/server/NetworkManagementService;->access$200(Lcom/android/server/NetworkManagementService;)Landroid/os/Handler;
-PLcom/android/server/NetworkManagementService;->access$300(Lcom/android/server/NetworkManagementService;ZLandroid/net/RouteInfo;)V
-PLcom/android/server/NetworkManagementService;->access$400(Lcom/android/server/NetworkManagementService;Ljava/lang/String;Z)V
-PLcom/android/server/NetworkManagementService;->access$900(Lcom/android/server/NetworkManagementService;Ljava/lang/String;Landroid/net/LinkAddress;)V
+HSPLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceLinkStateChanged(Ljava/lang/String;Z)V
+PLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->onInterfaceRemoved(Ljava/lang/String;)V
+PLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->onQuotaLimitReached(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/NetworkManagementService$NetdUnsolicitedEventListener;->onRouteChanged(ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/NetworkManagementService$SystemServices;-><init>()V
+HSPLcom/android/server/NetworkManagementService$SystemServices;->getNetd()Landroid/net/INetd;
+HSPLcom/android/server/NetworkManagementService$SystemServices;->getService(Ljava/lang/String;)Landroid/os/IBinder;
+HSPLcom/android/server/NetworkManagementService$SystemServices;->registerLocalService(Lcom/android/server/NetworkManagementInternal;)V
+HSPLcom/android/server/NetworkManagementService;-><clinit>()V
+HSPLcom/android/server/NetworkManagementService;-><init>(Landroid/content/Context;Lcom/android/server/NetworkManagementService$SystemServices;)V
+HSPLcom/android/server/NetworkManagementService;->access$1300(Lcom/android/server/NetworkManagementService;)Landroid/net/INetd;
+HSPLcom/android/server/NetworkManagementService;->access$1400(Lcom/android/server/NetworkManagementService;I)Z
+HSPLcom/android/server/NetworkManagementService;->access$200(Lcom/android/server/NetworkManagementService;)Landroid/os/Handler;
+HSPLcom/android/server/NetworkManagementService;->access$300(Lcom/android/server/NetworkManagementService;ZLandroid/net/RouteInfo;)V
+HSPLcom/android/server/NetworkManagementService;->access$400(Lcom/android/server/NetworkManagementService;Ljava/lang/String;Z)V
+HSPLcom/android/server/NetworkManagementService;->access$700(Lcom/android/server/NetworkManagementService;Ljava/lang/String;)V
+HSPLcom/android/server/NetworkManagementService;->access$800(Lcom/android/server/NetworkManagementService;Ljava/lang/String;Landroid/net/LinkAddress;)V
PLcom/android/server/NetworkManagementService;->addIdleTimer(Ljava/lang/String;II)V
PLcom/android/server/NetworkManagementService;->addInterfaceToNetwork(Ljava/lang/String;I)V
PLcom/android/server/NetworkManagementService;->addRoute(ILandroid/net/RouteInfo;)V
-PLcom/android/server/NetworkManagementService;->closeSocketsForFirewallChainLocked(ILjava/lang/String;)V
-PLcom/android/server/NetworkManagementService;->connectNativeNetdService()V
-PLcom/android/server/NetworkManagementService;->create(Landroid/content/Context;)Lcom/android/server/NetworkManagementService;
-PLcom/android/server/NetworkManagementService;->create(Landroid/content/Context;Lcom/android/server/NetworkManagementService$SystemServices;)Lcom/android/server/NetworkManagementService;
-PLcom/android/server/NetworkManagementService;->enforceSystemUid()V
-PLcom/android/server/NetworkManagementService;->fromStableParcel(Landroid/net/InterfaceConfigurationParcel;)Landroid/net/InterfaceConfiguration;
-PLcom/android/server/NetworkManagementService;->getBatteryStats()Lcom/android/internal/app/IBatteryStats;
-PLcom/android/server/NetworkManagementService;->getFirewallChainName(I)Ljava/lang/String;
-HPLcom/android/server/NetworkManagementService;->getFirewallChainState(I)Z
-HPLcom/android/server/NetworkManagementService;->getFirewallRuleName(II)Ljava/lang/String;
-PLcom/android/server/NetworkManagementService;->getFirewallType(I)I
-PLcom/android/server/NetworkManagementService;->getInterfaceConfig(Ljava/lang/String;)Landroid/net/InterfaceConfiguration;
-PLcom/android/server/NetworkManagementService;->getNetworkStatsTethering(I)Landroid/net/NetworkStats;
-HPLcom/android/server/NetworkManagementService;->getUidFirewallRulesLR(I)Landroid/util/SparseIntArray;
-HPLcom/android/server/NetworkManagementService;->invokeForAllObservers(Lcom/android/server/NetworkManagementService$NetworkManagementEventCallback;)V
-PLcom/android/server/NetworkManagementService;->isBandwidthControlEnabled()Z
-PLcom/android/server/NetworkManagementService;->isNetworkActive()Z
-HPLcom/android/server/NetworkManagementService;->isNetworkRestrictedInternal(I)Z
-PLcom/android/server/NetworkManagementService;->lambda$addIdleTimer$12$NetworkManagementService(I)V
-PLcom/android/server/NetworkManagementService;->lambda$notifyAddressUpdated$7(Ljava/lang/String;Landroid/net/LinkAddress;Landroid/net/INetworkManagementEventObserver;)V
-PLcom/android/server/NetworkManagementService;->lambda$notifyInterfaceClassActivity$5(IZJLandroid/net/INetworkManagementEventObserver;)V
-PLcom/android/server/NetworkManagementService;->lambda$notifyInterfaceDnsServerInfo$9(Ljava/lang/String;J[Ljava/lang/String;Landroid/net/INetworkManagementEventObserver;)V
-PLcom/android/server/NetworkManagementService;->lambda$notifyInterfaceLinkStateChanged$1(Ljava/lang/String;ZLandroid/net/INetworkManagementEventObserver;)V
-PLcom/android/server/NetworkManagementService;->lambda$notifyRouteChange$10(Landroid/net/RouteInfo;Landroid/net/INetworkManagementEventObserver;)V
-PLcom/android/server/NetworkManagementService;->listInterfaces()[Ljava/lang/String;
+HSPLcom/android/server/NetworkManagementService;->closeSocketsForFirewallChainLocked(ILjava/lang/String;)V
+HSPLcom/android/server/NetworkManagementService;->connectNativeNetdService()V
+HSPLcom/android/server/NetworkManagementService;->create(Landroid/content/Context;)Lcom/android/server/NetworkManagementService;
+HSPLcom/android/server/NetworkManagementService;->create(Landroid/content/Context;Lcom/android/server/NetworkManagementService$SystemServices;)Lcom/android/server/NetworkManagementService;
+PLcom/android/server/NetworkManagementService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/NetworkManagementService;->dumpUidFirewallRule(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/SparseIntArray;)V
+PLcom/android/server/NetworkManagementService;->dumpUidRuleOnQuotaLocked(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/SparseBooleanArray;)V
+HSPLcom/android/server/NetworkManagementService;->enforceSystemUid()V
+HSPLcom/android/server/NetworkManagementService;->getBatteryStats()Lcom/android/internal/app/IBatteryStats;
+HSPLcom/android/server/NetworkManagementService;->getFirewallChainName(I)Ljava/lang/String;
+HSPLcom/android/server/NetworkManagementService;->getFirewallChainState(I)Z
+HSPLcom/android/server/NetworkManagementService;->getFirewallRuleName(II)Ljava/lang/String;
+PLcom/android/server/NetworkManagementService;->getFirewallRuleType(II)I
+HSPLcom/android/server/NetworkManagementService;->getFirewallType(I)I
+HSPLcom/android/server/NetworkManagementService;->getNetworkStatsTethering(I)Landroid/net/NetworkStats;
+HSPLcom/android/server/NetworkManagementService;->getUidFirewallRulesLR(I)Landroid/util/SparseIntArray;
+HSPLcom/android/server/NetworkManagementService;->invokeForAllObservers(Lcom/android/server/NetworkManagementService$NetworkManagementEventCallback;)V
+HSPLcom/android/server/NetworkManagementService;->isBandwidthControlEnabled()Z
+HPLcom/android/server/NetworkManagementService;->isNetworkActive()Z
+HSPLcom/android/server/NetworkManagementService;->isNetworkRestrictedInternal(I)Z
+HSPLcom/android/server/NetworkManagementService;->lambda$notifyAddressRemoved$8(Ljava/lang/String;Landroid/net/LinkAddress;Landroid/net/INetworkManagementEventObserver;)V
+HSPLcom/android/server/NetworkManagementService;->lambda$notifyInterfaceAdded$2(Ljava/lang/String;Landroid/net/INetworkManagementEventObserver;)V
+HSPLcom/android/server/NetworkManagementService;->lambda$notifyInterfaceLinkStateChanged$1(Ljava/lang/String;ZLandroid/net/INetworkManagementEventObserver;)V
+HSPLcom/android/server/NetworkManagementService;->lambda$notifyRouteChange$11(Landroid/net/RouteInfo;Landroid/net/INetworkManagementEventObserver;)V
+HSPLcom/android/server/NetworkManagementService;->listInterfaces()[Ljava/lang/String;
PLcom/android/server/NetworkManagementService;->modifyInterfaceInNetwork(ZILjava/lang/String;)V
PLcom/android/server/NetworkManagementService;->modifyRoute(ZILandroid/net/RouteInfo;)V
-PLcom/android/server/NetworkManagementService;->notifyAddressUpdated(Ljava/lang/String;Landroid/net/LinkAddress;)V
-PLcom/android/server/NetworkManagementService;->notifyInterfaceClassActivity(IZJIZ)V
-PLcom/android/server/NetworkManagementService;->notifyInterfaceDnsServerInfo(Ljava/lang/String;J[Ljava/lang/String;)V
-PLcom/android/server/NetworkManagementService;->notifyInterfaceLinkStateChanged(Ljava/lang/String;Z)V
-PLcom/android/server/NetworkManagementService;->notifyRouteChange(ZLandroid/net/RouteInfo;)V
-PLcom/android/server/NetworkManagementService;->prepareNativeDaemon()V
+HSPLcom/android/server/NetworkManagementService;->notifyAddressRemoved(Ljava/lang/String;Landroid/net/LinkAddress;)V
+HSPLcom/android/server/NetworkManagementService;->notifyInterfaceAdded(Ljava/lang/String;)V
+HPLcom/android/server/NetworkManagementService;->notifyInterfaceClassActivity(IZJIZ)V
+HSPLcom/android/server/NetworkManagementService;->notifyInterfaceLinkStateChanged(Ljava/lang/String;Z)V
+HSPLcom/android/server/NetworkManagementService;->notifyRouteChange(ZLandroid/net/RouteInfo;)V
+HSPLcom/android/server/NetworkManagementService;->prepareNativeDaemon()V
PLcom/android/server/NetworkManagementService;->registerNetworkActivityListener(Landroid/os/INetworkActivityListener;)V
-PLcom/android/server/NetworkManagementService;->registerObserver(Landroid/net/INetworkManagementEventObserver;)V
+HSPLcom/android/server/NetworkManagementService;->registerObserver(Landroid/net/INetworkManagementEventObserver;)V
PLcom/android/server/NetworkManagementService;->registerTetheringStatsProvider(Landroid/net/ITetheringStatsProvider;Ljava/lang/String;)V
PLcom/android/server/NetworkManagementService;->removeIdleTimer(Ljava/lang/String;)V
-PLcom/android/server/NetworkManagementService;->reportNetworkActive()V
-PLcom/android/server/NetworkManagementService;->setDataSaverModeEnabled(Z)Z
+PLcom/android/server/NetworkManagementService;->removeInterfaceQuota(Ljava/lang/String;)V
+PLcom/android/server/NetworkManagementService;->removeRoute(ILandroid/net/RouteInfo;)V
+HPLcom/android/server/NetworkManagementService;->reportNetworkActive()V
+HSPLcom/android/server/NetworkManagementService;->setDataSaverModeEnabled(Z)Z
PLcom/android/server/NetworkManagementService;->setDefaultNetId(I)V
-PLcom/android/server/NetworkManagementService;->setFirewallChainEnabled(IZ)V
-PLcom/android/server/NetworkManagementService;->setFirewallChainState(IZ)V
-PLcom/android/server/NetworkManagementService;->setFirewallEnabled(Z)V
+HSPLcom/android/server/NetworkManagementService;->setFirewallChainEnabled(IZ)V
+HSPLcom/android/server/NetworkManagementService;->setFirewallChainState(IZ)V
+HSPLcom/android/server/NetworkManagementService;->setFirewallEnabled(Z)V
HPLcom/android/server/NetworkManagementService;->setFirewallUidRule(III)V
HPLcom/android/server/NetworkManagementService;->setFirewallUidRuleLocked(III)V
-PLcom/android/server/NetworkManagementService;->setFirewallUidRules(I[I[I)V
-PLcom/android/server/NetworkManagementService;->setGlobalAlert(J)V
-PLcom/android/server/NetworkManagementService;->setUidCleartextNetworkPolicy(II)V
+HSPLcom/android/server/NetworkManagementService;->setFirewallUidRules(I[I[I)V
+HSPLcom/android/server/NetworkManagementService;->setGlobalAlert(J)V
+PLcom/android/server/NetworkManagementService;->setInterfaceQuota(Ljava/lang/String;J)V
+HSPLcom/android/server/NetworkManagementService;->setUidCleartextNetworkPolicy(II)V
HPLcom/android/server/NetworkManagementService;->setUidMeteredNetworkWhitelist(IZ)V
HPLcom/android/server/NetworkManagementService;->setUidOnMeteredNetworkList(IZZ)V
-PLcom/android/server/NetworkManagementService;->syncFirewallChainLocked(ILjava/lang/String;)V
-PLcom/android/server/NetworkManagementService;->systemReady()V
-HPLcom/android/server/NetworkManagementService;->updateFirewallUidRuleLocked(III)Z
-PLcom/android/server/NetworkScoreService$1;-><init>(Lcom/android/server/NetworkScoreService;)V
+HSPLcom/android/server/NetworkManagementService;->syncFirewallChainLocked(ILjava/lang/String;)V
+HSPLcom/android/server/NetworkManagementService;->systemReady()V
+PLcom/android/server/NetworkManagementService;->unregisterObserver(Landroid/net/INetworkManagementEventObserver;)V
+HSPLcom/android/server/NetworkManagementService;->updateFirewallUidRuleLocked(III)Z
+HSPLcom/android/server/NetworkScoreService$1;-><init>(Lcom/android/server/NetworkScoreService;)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
+HSPLcom/android/server/NetworkScoreService$2;-><init>(Lcom/android/server/NetworkScoreService;)V
PLcom/android/server/NetworkScoreService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/NetworkScoreService$3;-><init>(Lcom/android/server/NetworkScoreService;Landroid/os/Handler;)V
+HSPLcom/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$4;->accept(Landroid/net/INetworkScoreCache;Ljava/lang/Object;)V
PLcom/android/server/NetworkScoreService$4;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/NetworkScoreService$CurrentNetworkScoreCacheFilter;-><init>(Ljava/util/function/Supplier;)V
PLcom/android/server/NetworkScoreService$CurrentNetworkScoreCacheFilter;->apply(Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/NetworkScoreService$CurrentNetworkScoreCacheFilter;->apply(Ljava/util/List;)Ljava/util/List;
-PLcom/android/server/NetworkScoreService$DispatchingContentObserver;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/NetworkScoreService$DispatchingContentObserver;->observe(Landroid/net/Uri;I)V
+HSPLcom/android/server/NetworkScoreService$DispatchingContentObserver;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/NetworkScoreService$DispatchingContentObserver;->observe(Landroid/net/Uri;I)V
PLcom/android/server/NetworkScoreService$DispatchingContentObserver;->onChange(ZLandroid/net/Uri;)V
PLcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer;-><init>(Landroid/content/Context;Ljava/util/List;ILjava/util/function/UnaryOperator;Ljava/util/function/UnaryOperator;)V
PLcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer;->accept(Landroid/net/INetworkScoreCache;Ljava/lang/Object;)V
PLcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer;->create(Landroid/content/Context;Ljava/util/List;I)Lcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer;
PLcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer;->filterScores(Ljava/util/List;I)Ljava/util/List;
-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
+HSPLcom/android/server/NetworkScoreService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/NetworkScoreService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/NetworkScoreService$Lifecycle;->onStart()V
PLcom/android/server/NetworkScoreService$NetworkScorerPackageMonitor;-><init>(Lcom/android/server/NetworkScoreService;Ljava/lang/String;)V
PLcom/android/server/NetworkScoreService$NetworkScorerPackageMonitor;-><init>(Lcom/android/server/NetworkScoreService;Ljava/lang/String;Lcom/android/server/NetworkScoreService$1;)V
PLcom/android/server/NetworkScoreService$NetworkScorerPackageMonitor;->evaluateBinding(Ljava/lang/String;Z)V
-PLcom/android/server/NetworkScoreService$NetworkScorerPackageMonitor;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
PLcom/android/server/NetworkScoreService$NetworkScorerPackageMonitor;->onPackageAdded(Ljava/lang/String;I)V
PLcom/android/server/NetworkScoreService$NetworkScorerPackageMonitor;->onPackageModified(Ljava/lang/String;)V
PLcom/android/server/NetworkScoreService$NetworkScorerPackageMonitor;->onPackageUpdateFinished(Ljava/lang/String;I)V
@@ -1943,50 +2102,56 @@ PLcom/android/server/NetworkScoreService$ScanResultsSupplier;->get()Ljava/lang/O
PLcom/android/server/NetworkScoreService$ScanResultsSupplier;->get()Ljava/util/List;
PLcom/android/server/NetworkScoreService$ScoringServiceConnection;-><init>(Landroid/net/NetworkScorerAppData;)V
PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->bind(Landroid/content/Context;)V
+PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->getAppData()Landroid/net/NetworkScorerAppData;
HPLcom/android/server/NetworkScoreService$ScoringServiceConnection;->getPackageName()Ljava/lang/String;
PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->getRecommendationProvider()Landroid/net/INetworkRecommendationProvider;
PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/NetworkScoreService$ServiceHandler;-><init>(Lcom/android/server/NetworkScoreService;Landroid/os/Looper;)V
+PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
+PLcom/android/server/NetworkScoreService$ScoringServiceConnection;->unbind(Landroid/content/Context;)V
+HSPLcom/android/server/NetworkScoreService$ServiceHandler;-><init>(Lcom/android/server/NetworkScoreService;Landroid/os/Looper;)V
PLcom/android/server/NetworkScoreService$ServiceHandler;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/NetworkScoreService$WifiInfoSupplier;-><init>(Landroid/content/Context;)V
PLcom/android/server/NetworkScoreService$WifiInfoSupplier;->get()Landroid/net/wifi/WifiInfo;
PLcom/android/server/NetworkScoreService$WifiInfoSupplier;->get()Ljava/lang/Object;
-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
+HSPLcom/android/server/NetworkScoreService;-><clinit>()V
+HSPLcom/android/server/NetworkScoreService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/NetworkScoreService;-><init>(Landroid/content/Context;Lcom/android/server/NetworkScorerAppManager;Ljava/util/function/Function;Landroid/os/Looper;)V
PLcom/android/server/NetworkScoreService;->access$000()Z
PLcom/android/server/NetworkScoreService;->access$100(Lcom/android/server/NetworkScoreService;)V
PLcom/android/server/NetworkScoreService;->bindToScoringServiceIfNeeded()V
PLcom/android/server/NetworkScoreService;->bindToScoringServiceIfNeeded(Landroid/net/NetworkScorerAppData;)V
PLcom/android/server/NetworkScoreService;->clearInternal()V
-PLcom/android/server/NetworkScoreService;->enforceSystemOnly()V
-HPLcom/android/server/NetworkScoreService;->enforceSystemOrHasScoreNetworks()V
+PLcom/android/server/NetworkScoreService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/NetworkScoreService;->enforceSystemOnly()V
+HSPLcom/android/server/NetworkScoreService;->enforceSystemOrHasScoreNetworks()V
PLcom/android/server/NetworkScoreService;->getActiveScorer()Landroid/net/NetworkScorerAppData;
-HPLcom/android/server/NetworkScoreService;->getActiveScorerPackage()Ljava/lang/String;
+HSPLcom/android/server/NetworkScoreService;->getActiveScorerPackage()Ljava/lang/String;
PLcom/android/server/NetworkScoreService;->getRecommendationProvider()Landroid/net/INetworkRecommendationProvider;
PLcom/android/server/NetworkScoreService;->getScoreCacheLists()Ljava/util/Collection;
PLcom/android/server/NetworkScoreService;->isCallerActiveScorer(I)Z
+PLcom/android/server/NetworkScoreService;->lambda$new$0$NetworkScoreService(I)[Ljava/lang/String;
PLcom/android/server/NetworkScoreService;->onUserUnlocked(I)V
PLcom/android/server/NetworkScoreService;->refreshBinding()V
-PLcom/android/server/NetworkScoreService;->registerNetworkScoreCache(ILandroid/net/INetworkScoreCache;I)V
+HSPLcom/android/server/NetworkScoreService;->registerNetworkScoreCache(ILandroid/net/INetworkScoreCache;I)V
PLcom/android/server/NetworkScoreService;->registerPackageMonitorIfNeeded()V
-PLcom/android/server/NetworkScoreService;->registerRecommendationSettingsObserver()V
+HSPLcom/android/server/NetworkScoreService;->registerRecommendationSettingsObserver()V
PLcom/android/server/NetworkScoreService;->requestScores([Landroid/net/NetworkKey;)Z
PLcom/android/server/NetworkScoreService;->sendCacheUpdateCallback(Ljava/util/function/BiConsumer;Ljava/util/Collection;)V
-PLcom/android/server/NetworkScoreService;->systemReady()V
+HSPLcom/android/server/NetworkScoreService;->systemReady()V
PLcom/android/server/NetworkScoreService;->systemRunning()V
PLcom/android/server/NetworkScoreService;->unbindFromScoringServiceIfNeeded()V
PLcom/android/server/NetworkScoreService;->unregisterNetworkScoreCache(ILandroid/net/INetworkScoreCache;)V
PLcom/android/server/NetworkScoreService;->updateScores([Landroid/net/ScoredNetwork;)Z
-PLcom/android/server/NetworkScorerAppManager$SettingsFacade;-><init>()V
+HSPLcom/android/server/NetworkScorerAppManager$SettingsFacade;-><init>()V
PLcom/android/server/NetworkScorerAppManager$SettingsFacade;->getInt(Landroid/content/Context;Ljava/lang/String;I)I
PLcom/android/server/NetworkScorerAppManager$SettingsFacade;->getSecureInt(Landroid/content/Context;Ljava/lang/String;I)I
PLcom/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
+HSPLcom/android/server/NetworkScorerAppManager;-><clinit>()V
+HSPLcom/android/server/NetworkScorerAppManager;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/NetworkScorerAppManager;-><init>(Landroid/content/Context;Lcom/android/server/NetworkScorerAppManager$SettingsFacade;)V
+PLcom/android/server/NetworkScorerAppManager;->canAccessLocation(ILjava/lang/String;)Z
PLcom/android/server/NetworkScorerAppManager;->findUseOpenWifiNetworksActivity(Landroid/content/pm/ServiceInfo;)Landroid/content/ComponentName;
PLcom/android/server/NetworkScorerAppManager;->getActiveScorer()Landroid/net/NetworkScorerAppData;
PLcom/android/server/NetworkScorerAppManager;->getAllValidScorers()Ljava/util/List;
@@ -1994,363 +2159,430 @@ PLcom/android/server/NetworkScorerAppManager;->getDefaultPackageSetting()Ljava/l
PLcom/android/server/NetworkScorerAppManager;->getNetworkAvailableNotificationChannelId(Landroid/content/pm/ServiceInfo;)Ljava/lang/String;
PLcom/android/server/NetworkScorerAppManager;->getNetworkRecommendationsEnabledSetting()I
PLcom/android/server/NetworkScorerAppManager;->getNetworkRecommendationsPackage()Ljava/lang/String;
+PLcom/android/server/NetworkScorerAppManager;->getRecommendationServiceLabel(Landroid/content/pm/ServiceInfo;Landroid/content/pm/PackageManager;)Ljava/lang/String;
PLcom/android/server/NetworkScorerAppManager;->getScorer(Ljava/lang/String;)Landroid/net/NetworkScorerAppData;
+PLcom/android/server/NetworkScorerAppManager;->hasPermissions(ILjava/lang/String;)Z
+PLcom/android/server/NetworkScorerAppManager;->hasScoreNetworksPermission(Ljava/lang/String;)Z
+PLcom/android/server/NetworkScorerAppManager;->isLocationModeEnabled()Z
PLcom/android/server/NetworkScorerAppManager;->migrateNetworkScorerAppSettingIfNeeded()V
PLcom/android/server/NetworkScorerAppManager;->setNetworkRecommendationsEnabledSetting(I)V
PLcom/android/server/NetworkScorerAppManager;->updateState()V
-PLcom/android/server/NetworkTimeUpdateServiceImpl$1;-><init>(Lcom/android/server/NetworkTimeUpdateServiceImpl;)V
+HSPLcom/android/server/NetworkTimeUpdateServiceImpl$1;-><init>(Lcom/android/server/NetworkTimeUpdateServiceImpl;)V
PLcom/android/server/NetworkTimeUpdateServiceImpl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/NetworkTimeUpdateServiceImpl$2;-><init>(Lcom/android/server/NetworkTimeUpdateServiceImpl;)V
-PLcom/android/server/NetworkTimeUpdateServiceImpl$MyHandler;-><init>(Lcom/android/server/NetworkTimeUpdateServiceImpl;Landroid/os/Looper;)V
+HSPLcom/android/server/NetworkTimeUpdateServiceImpl$2;-><init>(Lcom/android/server/NetworkTimeUpdateServiceImpl;)V
+HSPLcom/android/server/NetworkTimeUpdateServiceImpl$MyHandler;-><init>(Lcom/android/server/NetworkTimeUpdateServiceImpl;Landroid/os/Looper;)V
PLcom/android/server/NetworkTimeUpdateServiceImpl$MyHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/NetworkTimeUpdateServiceImpl$NetworkTimeUpdateCallback;-><init>(Lcom/android/server/NetworkTimeUpdateServiceImpl;)V
-PLcom/android/server/NetworkTimeUpdateServiceImpl$NetworkTimeUpdateCallback;-><init>(Lcom/android/server/NetworkTimeUpdateServiceImpl;Lcom/android/server/NetworkTimeUpdateServiceImpl$1;)V
+HSPLcom/android/server/NetworkTimeUpdateServiceImpl$NetworkTimeUpdateCallback;-><init>(Lcom/android/server/NetworkTimeUpdateServiceImpl;)V
+HSPLcom/android/server/NetworkTimeUpdateServiceImpl$NetworkTimeUpdateCallback;-><init>(Lcom/android/server/NetworkTimeUpdateServiceImpl;Lcom/android/server/NetworkTimeUpdateServiceImpl$1;)V
PLcom/android/server/NetworkTimeUpdateServiceImpl$NetworkTimeUpdateCallback;->onAvailable(Landroid/net/Network;)V
PLcom/android/server/NetworkTimeUpdateServiceImpl$NetworkTimeUpdateCallback;->onLost(Landroid/net/Network;)V
-PLcom/android/server/NetworkTimeUpdateServiceImpl$SettingsObserver;-><init>(Landroid/os/Handler;I)V
-PLcom/android/server/NetworkTimeUpdateServiceImpl$SettingsObserver;->observe(Landroid/content/Context;)V
-PLcom/android/server/NetworkTimeUpdateServiceImpl;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/NetworkTimeUpdateServiceImpl$SettingsObserver;-><init>(Landroid/os/Handler;I)V
+HSPLcom/android/server/NetworkTimeUpdateServiceImpl$SettingsObserver;->observe(Landroid/content/Context;)V
+HSPLcom/android/server/NetworkTimeUpdateServiceImpl;-><init>(Landroid/content/Context;)V
PLcom/android/server/NetworkTimeUpdateServiceImpl;->access$100(Lcom/android/server/NetworkTimeUpdateServiceImpl;)Landroid/os/Handler;
PLcom/android/server/NetworkTimeUpdateServiceImpl;->access$300(Lcom/android/server/NetworkTimeUpdateServiceImpl;I)V
PLcom/android/server/NetworkTimeUpdateServiceImpl;->access$400(Lcom/android/server/NetworkTimeUpdateServiceImpl;)Landroid/net/Network;
PLcom/android/server/NetworkTimeUpdateServiceImpl;->access$402(Lcom/android/server/NetworkTimeUpdateServiceImpl;Landroid/net/Network;)Landroid/net/Network;
+PLcom/android/server/NetworkTimeUpdateServiceImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/NetworkTimeUpdateServiceImpl;->getNitzAge()J
PLcom/android/server/NetworkTimeUpdateServiceImpl;->isAutomaticTimeRequested()Z
PLcom/android/server/NetworkTimeUpdateServiceImpl;->onPollNetworkTime(I)V
PLcom/android/server/NetworkTimeUpdateServiceImpl;->onPollNetworkTimeUnderWakeLock(I)V
-PLcom/android/server/NetworkTimeUpdateServiceImpl;->registerForAlarms()V
-PLcom/android/server/NetworkTimeUpdateServiceImpl;->registerForTelephonyIntents()V
+HSPLcom/android/server/NetworkTimeUpdateServiceImpl;->registerForAlarms()V
+HSPLcom/android/server/NetworkTimeUpdateServiceImpl;->registerForTelephonyIntents()V
PLcom/android/server/NetworkTimeUpdateServiceImpl;->resetAlarm(J)V
-PLcom/android/server/NetworkTimeUpdateServiceImpl;->systemRunning()V
+HSPLcom/android/server/NetworkTimeUpdateServiceImpl;->systemRunning()V
PLcom/android/server/NetworkTimeUpdateServiceImpl;->updateSystemClock(I)V
-PLcom/android/server/NsdService$DaemonConnection;-><init>(Lcom/android/server/NsdService$NativeCallbackReceiver;)V
-PLcom/android/server/NsdService$NativeCallbackReceiver;-><init>(Lcom/android/server/NsdService;)V
-PLcom/android/server/NsdService$NativeCallbackReceiver;->awaitConnection()V
-PLcom/android/server/NsdService$NativeCallbackReceiver;->onDaemonConnected()V
-PLcom/android/server/NsdService$NsdSettings$1;-><init>(Landroid/content/ContentResolver;)V
-PLcom/android/server/NsdService$NsdSettings$1;->isEnabled()Z
-PLcom/android/server/NsdService$NsdSettings$1;->registerContentObserver(Landroid/net/Uri;Landroid/database/ContentObserver;)V
-PLcom/android/server/NsdService$NsdSettings;->makeDefault(Landroid/content/Context;)Lcom/android/server/NsdService$NsdSettings;
-PLcom/android/server/NsdService$NsdStateMachine$1;-><init>(Lcom/android/server/NsdService$NsdStateMachine;Landroid/os/Handler;)V
-PLcom/android/server/NsdService$NsdStateMachine$DefaultState;-><init>(Lcom/android/server/NsdService$NsdStateMachine;)V
-PLcom/android/server/NsdService$NsdStateMachine$DisabledState;-><init>(Lcom/android/server/NsdService$NsdStateMachine;)V
-PLcom/android/server/NsdService$NsdStateMachine$EnabledState;-><init>(Lcom/android/server/NsdService$NsdStateMachine;)V
-PLcom/android/server/NsdService$NsdStateMachine$EnabledState;->enter()V
-PLcom/android/server/NsdService$NsdStateMachine;-><init>(Lcom/android/server/NsdService;Ljava/lang/String;Landroid/os/Handler;)V
-PLcom/android/server/NsdService$NsdStateMachine;->registerForNsdSetting()V
-PLcom/android/server/NsdService;-><init>(Landroid/content/Context;Lcom/android/server/NsdService$NsdSettings;Landroid/os/Handler;Lcom/android/server/NsdService$DaemonConnectionSupplier;)V
-PLcom/android/server/NsdService;->access$000(Lcom/android/server/NsdService;)Z
-PLcom/android/server/NsdService;->access$200(Lcom/android/server/NsdService;)Lcom/android/server/NsdService$NsdSettings;
-PLcom/android/server/NsdService;->access$400(Lcom/android/server/NsdService;)Ljava/util/HashMap;
-PLcom/android/server/NsdService;->access$900(Lcom/android/server/NsdService;Z)V
-PLcom/android/server/NsdService;->create(Landroid/content/Context;)Lcom/android/server/NsdService;
-PLcom/android/server/NsdService;->isNsdEnabled()Z
-PLcom/android/server/NsdService;->sendNsdStateChangeBroadcast(Z)V
-PLcom/android/server/PackageWatchdog$ObserverInternal;-><init>(Ljava/lang/String;Ljava/util/List;)V
+HSPLcom/android/server/NsdService$DaemonConnection;-><init>(Lcom/android/server/NsdService$NativeCallbackReceiver;)V
+HSPLcom/android/server/NsdService$NativeCallbackReceiver;-><init>(Lcom/android/server/NsdService;)V
+HSPLcom/android/server/NsdService$NativeCallbackReceiver;->awaitConnection()V
+HSPLcom/android/server/NsdService$NativeCallbackReceiver;->onDaemonConnected()V
+HSPLcom/android/server/NsdService$NsdSettings$1;-><init>(Landroid/content/ContentResolver;)V
+HSPLcom/android/server/NsdService$NsdSettings$1;->isEnabled()Z
+HSPLcom/android/server/NsdService$NsdSettings$1;->registerContentObserver(Landroid/net/Uri;Landroid/database/ContentObserver;)V
+HSPLcom/android/server/NsdService$NsdSettings;->makeDefault(Landroid/content/Context;)Lcom/android/server/NsdService$NsdSettings;
+HSPLcom/android/server/NsdService$NsdStateMachine$1;-><init>(Lcom/android/server/NsdService$NsdStateMachine;Landroid/os/Handler;)V
+HSPLcom/android/server/NsdService$NsdStateMachine$DefaultState;-><init>(Lcom/android/server/NsdService$NsdStateMachine;)V
+HSPLcom/android/server/NsdService$NsdStateMachine$DisabledState;-><init>(Lcom/android/server/NsdService$NsdStateMachine;)V
+HSPLcom/android/server/NsdService$NsdStateMachine$EnabledState;-><init>(Lcom/android/server/NsdService$NsdStateMachine;)V
+HSPLcom/android/server/NsdService$NsdStateMachine$EnabledState;->enter()V
+HSPLcom/android/server/NsdService$NsdStateMachine;-><init>(Lcom/android/server/NsdService;Ljava/lang/String;Landroid/os/Handler;)V
+HSPLcom/android/server/NsdService$NsdStateMachine;->registerForNsdSetting()V
+HSPLcom/android/server/NsdService;-><init>(Landroid/content/Context;Lcom/android/server/NsdService$NsdSettings;Landroid/os/Handler;Lcom/android/server/NsdService$DaemonConnectionSupplier;)V
+HSPLcom/android/server/NsdService;->access$000(Lcom/android/server/NsdService;)Z
+HSPLcom/android/server/NsdService;->access$200(Lcom/android/server/NsdService;)Lcom/android/server/NsdService$NsdSettings;
+HSPLcom/android/server/NsdService;->access$400(Lcom/android/server/NsdService;)Ljava/util/HashMap;
+HSPLcom/android/server/NsdService;->access$900(Lcom/android/server/NsdService;Z)V
+HSPLcom/android/server/NsdService;->create(Landroid/content/Context;)Lcom/android/server/NsdService;
+PLcom/android/server/NsdService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/NsdService;->isNsdEnabled()Z
+HSPLcom/android/server/NsdService;->sendNsdStateChangeBroadcast(Z)V
+HSPLcom/android/server/PackageWatchdog$ObserverInternal;-><init>(Ljava/lang/String;Ljava/util/List;)V
+PLcom/android/server/PackageWatchdog$ObserverInternal;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
PLcom/android/server/PackageWatchdog$ObserverInternal;->onPackageFailureLocked(Ljava/lang/String;)Z
HSPLcom/android/server/PackageWatchdog$ObserverInternal;->read(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/PackageWatchdog;)Lcom/android/server/PackageWatchdog$ObserverInternal;
-PLcom/android/server/PackageWatchdog$ObserverInternal;->updatePackagesLocked(Ljava/util/List;)V
-PLcom/android/server/PackageWatchdog$ObserverInternal;->writeLocked(Lorg/xmlpull/v1/XmlSerializer;)Z
+HSPLcom/android/server/PackageWatchdog$ObserverInternal;->updatePackagesLocked(Ljava/util/List;)V
+HSPLcom/android/server/PackageWatchdog$ObserverInternal;->writeLocked(Lorg/xmlpull/v1/XmlSerializer;)Z
+PLcom/android/server/PackageWatchdog$PackageHealthObserver;->isPersistent()Z
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
+PLcom/android/server/PackageWatchdog;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
HSPLcom/android/server/PackageWatchdog;->getInstance(Landroid/content/Context;)Lcom/android/server/PackageWatchdog;
-PLcom/android/server/PackageWatchdog;->getNextStateSyncMillisLocked()J
+HSPLcom/android/server/PackageWatchdog;->getNextStateSyncMillisLocked()J
PLcom/android/server/PackageWatchdog;->getPackagesPendingHealthChecksLocked()Ljava/util/Set;
PLcom/android/server/PackageWatchdog;->lambda$CQuOnXthwwBaxcS5WoAlJJAz8Tk(Lcom/android/server/PackageWatchdog;)V
-PLcom/android/server/PackageWatchdog;->lambda$Q0WI2EJpRFO1jF_7_YDaj1eGHas(Lcom/android/server/PackageWatchdog;)Z
-PLcom/android/server/PackageWatchdog;->lambda$onPackageFailure$3$PackageWatchdog(Ljava/util/List;)V
+HSPLcom/android/server/PackageWatchdog;->lambda$Q0WI2EJpRFO1jF_7_YDaj1eGHas(Lcom/android/server/PackageWatchdog;)Z
+PLcom/android/server/PackageWatchdog;->lambda$onPackageFailure$3$PackageWatchdog(ILjava/util/List;)V
PLcom/android/server/PackageWatchdog;->lambda$onPackagesReady$1$PackageWatchdog(Ljava/util/List;)V
PLcom/android/server/PackageWatchdog;->lambda$onPackagesReady$2$PackageWatchdog()V
+PLcom/android/server/PackageWatchdog;->lambda$setPropertyChangedListenerLocked$7$PackageWatchdog(Landroid/provider/DeviceConfig$Properties;)V
HSPLcom/android/server/PackageWatchdog;->loadFromFile()V
-PLcom/android/server/PackageWatchdog;->onPackagesReady()V
+PLcom/android/server/PackageWatchdog;->onPackageFailure(Ljava/util/List;I)V
+HSPLcom/android/server/PackageWatchdog;->onPackagesReady()V
PLcom/android/server/PackageWatchdog;->onSupportedPackages(Ljava/util/List;)V
-PLcom/android/server/PackageWatchdog;->pruneObserversLocked()V
-PLcom/android/server/PackageWatchdog;->registerConnectivityModuleHealthListener()V
-PLcom/android/server/PackageWatchdog;->registerHealthObserver(Lcom/android/server/PackageWatchdog$PackageHealthObserver;)V
-PLcom/android/server/PackageWatchdog;->saveToFile()Z
-PLcom/android/server/PackageWatchdog;->saveToFileAsync()V
-PLcom/android/server/PackageWatchdog;->scheduleNextSyncStateLocked()V
-PLcom/android/server/PackageWatchdog;->setExplicitHealthCheckEnabled(Z)V
-PLcom/android/server/PackageWatchdog;->setPropertyChangedListenerLocked()V
+HSPLcom/android/server/PackageWatchdog;->pruneObserversLocked()V
+HSPLcom/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
+HSPLcom/android/server/PackageWatchdog;->setExplicitHealthCheckEnabled(Z)V
+HSPLcom/android/server/PackageWatchdog;->setPropertyChangedListenerLocked()V
PLcom/android/server/PackageWatchdog;->syncRequests()V
-PLcom/android/server/PackageWatchdog;->syncRequestsAsync()V
-PLcom/android/server/PackageWatchdog;->syncState(Ljava/lang/String;)V
-PLcom/android/server/PackageWatchdog;->updateConfigs()V
-PLcom/android/server/PersistentDataBlockService$1;-><init>(Lcom/android/server/PersistentDataBlockService;)V
+HSPLcom/android/server/PackageWatchdog;->syncRequestsAsync()V
+HSPLcom/android/server/PackageWatchdog;->syncState(Ljava/lang/String;)V
+HSPLcom/android/server/PackageWatchdog;->updateConfigs()V
+HSPLcom/android/server/PersistentDataBlockService$1;-><init>(Lcom/android/server/PersistentDataBlockService;)V
PLcom/android/server/PersistentDataBlockService$1;->getFlashLockState()I
PLcom/android/server/PersistentDataBlockService$1;->getMaximumDataBlockSize()J
PLcom/android/server/PersistentDataBlockService$1;->read()[B
PLcom/android/server/PersistentDataBlockService$1;->write([B)I
-PLcom/android/server/PersistentDataBlockService$2;-><init>(Lcom/android/server/PersistentDataBlockService;)V
-PLcom/android/server/PersistentDataBlockService$2;->getTestHarnessModeData()[B
-PLcom/android/server/PersistentDataBlockService$2;->readInternal(JI)[B
-PLcom/android/server/PersistentDataBlockService;-><clinit>()V
-PLcom/android/server/PersistentDataBlockService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/PersistentDataBlockService;->access$1900(Lcom/android/server/PersistentDataBlockService;)J
-PLcom/android/server/PersistentDataBlockService;->access$200(Lcom/android/server/PersistentDataBlockService;)Ljava/lang/String;
-PLcom/android/server/PersistentDataBlockService;->access$400(Lcom/android/server/PersistentDataBlockService;)Ljava/lang/Object;
-PLcom/android/server/PersistentDataBlockService;->access$700(Lcom/android/server/PersistentDataBlockService;)Z
+HSPLcom/android/server/PersistentDataBlockService$2;-><init>(Lcom/android/server/PersistentDataBlockService;)V
+HSPLcom/android/server/PersistentDataBlockService$2;->getTestHarnessModeData()[B
+HSPLcom/android/server/PersistentDataBlockService$2;->readInternal(JI)[B
+HSPLcom/android/server/PersistentDataBlockService;-><clinit>()V
+HSPLcom/android/server/PersistentDataBlockService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/PersistentDataBlockService;->access$1900(Lcom/android/server/PersistentDataBlockService;)J
+HSPLcom/android/server/PersistentDataBlockService;->access$200(Lcom/android/server/PersistentDataBlockService;)Ljava/lang/String;
+HSPLcom/android/server/PersistentDataBlockService;->access$400(Lcom/android/server/PersistentDataBlockService;)Ljava/lang/Object;
+HSPLcom/android/server/PersistentDataBlockService;->access$700(Lcom/android/server/PersistentDataBlockService;)Z
PLcom/android/server/PersistentDataBlockService;->access$800(Lcom/android/server/PersistentDataBlockService;Ljava/io/DataInputStream;)I
-PLcom/android/server/PersistentDataBlockService;->computeAndWriteDigestLocked()Z
-PLcom/android/server/PersistentDataBlockService;->computeDigestLocked([B)[B
-PLcom/android/server/PersistentDataBlockService;->doGetOemUnlockEnabled()Z
-PLcom/android/server/PersistentDataBlockService;->enforceChecksumValidity()Z
+HSPLcom/android/server/PersistentDataBlockService;->computeAndWriteDigestLocked()Z
+HSPLcom/android/server/PersistentDataBlockService;->computeDigestLocked([B)[B
+HSPLcom/android/server/PersistentDataBlockService;->doGetOemUnlockEnabled()Z
+HSPLcom/android/server/PersistentDataBlockService;->doSetOemUnlockEnabledLocked(Z)V
+HSPLcom/android/server/PersistentDataBlockService;->enforceChecksumValidity()Z
PLcom/android/server/PersistentDataBlockService;->enforceUid(I)V
-PLcom/android/server/PersistentDataBlockService;->formatIfOemUnlockEnabled()V
-PLcom/android/server/PersistentDataBlockService;->getAllowedUid(I)I
-PLcom/android/server/PersistentDataBlockService;->getBlockDeviceSize()J
-PLcom/android/server/PersistentDataBlockService;->getFrpCredentialDataOffset()J
-PLcom/android/server/PersistentDataBlockService;->getTestHarnessModeDataOffset()J
+HSPLcom/android/server/PersistentDataBlockService;->formatIfOemUnlockEnabled()V
+HSPLcom/android/server/PersistentDataBlockService;->formatPartitionLocked(Z)V
+HSPLcom/android/server/PersistentDataBlockService;->getAllowedUid(I)I
+HSPLcom/android/server/PersistentDataBlockService;->getBlockDeviceSize()J
+HSPLcom/android/server/PersistentDataBlockService;->getFrpCredentialDataOffset()J
+HSPLcom/android/server/PersistentDataBlockService;->getTestHarnessModeDataOffset()J
PLcom/android/server/PersistentDataBlockService;->getTotalDataSizeLocked(Ljava/io/DataInputStream;)I
-PLcom/android/server/PersistentDataBlockService;->lambda$onStart$0$PersistentDataBlockService()V
-PLcom/android/server/PersistentDataBlockService;->onBootPhase(I)V
-PLcom/android/server/PersistentDataBlockService;->onStart()V
-PLcom/android/server/PinnerService$1;-><init>(Lcom/android/server/PinnerService;)V
+HSPLcom/android/server/PersistentDataBlockService;->lambda$onStart$0$PersistentDataBlockService()V
+HSPLcom/android/server/PersistentDataBlockService;->onBootPhase(I)V
+HSPLcom/android/server/PersistentDataBlockService;->onStart()V
+HSPLcom/android/server/PinnerService$1;-><init>(Lcom/android/server/PinnerService;)V
PLcom/android/server/PinnerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/PinnerService$2;-><init>(Lcom/android/server/PinnerService;Landroid/os/Handler;Landroid/net/Uri;)V
-PLcom/android/server/PinnerService$3;-><init>(Lcom/android/server/PinnerService;)V
-PLcom/android/server/PinnerService$3;->lambda$onUidActive$1(Ljava/lang/Object;I)V
-PLcom/android/server/PinnerService$3;->lambda$onUidGone$0(Ljava/lang/Object;I)V
-PLcom/android/server/PinnerService$3;->onUidActive(I)V
-PLcom/android/server/PinnerService$3;->onUidGone(IZ)V
-PLcom/android/server/PinnerService$BinderService;-><init>(Lcom/android/server/PinnerService;)V
-PLcom/android/server/PinnerService$BinderService;-><init>(Lcom/android/server/PinnerService;Lcom/android/server/PinnerService$1;)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$1;)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$PinRangeSourceStream;-><init>(Ljava/io/InputStream;)V
-PLcom/android/server/PinnerService$PinRangeSourceStream;->read(Lcom/android/server/PinnerService$PinRange;)Z
-PLcom/android/server/PinnerService$PinnedApp;-><init>(Lcom/android/server/PinnerService;Landroid/content/pm/ApplicationInfo;)V
-PLcom/android/server/PinnerService$PinnedApp;-><init>(Lcom/android/server/PinnerService;Landroid/content/pm/ApplicationInfo;Lcom/android/server/PinnerService$1;)V
-PLcom/android/server/PinnerService$PinnedFile;-><init>(JILjava/lang/String;I)V
-PLcom/android/server/PinnerService$PinnedFile;->close()V
-PLcom/android/server/PinnerService$PinnedFile;->finalize()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;-><clinit>()V
-PLcom/android/server/PinnerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/PinnerService;->access$1200(JJ)V
-PLcom/android/server/PinnerService;->access$1300(Lcom/android/server/PinnerService;)Landroid/app/ActivityManagerInternal;
-PLcom/android/server/PinnerService;->access$1400(Lcom/android/server/PinnerService;)V
-PLcom/android/server/PinnerService;->access$200(Lcom/android/server/PinnerService;)Lcom/android/server/PinnerService$PinnerHandler;
-PLcom/android/server/PinnerService;->access$300(Lcom/android/server/PinnerService;I)V
-PLcom/android/server/PinnerService;->access$400(Lcom/android/server/PinnerService;I)V
-HPLcom/android/server/PinnerService;->clamp(III)I
-PLcom/android/server/PinnerService;->getApplicationInfoForIntent(Landroid/content/Intent;IZ)Landroid/content/pm/ApplicationInfo;
-PLcom/android/server/PinnerService;->getCameraInfo(I)Landroid/content/pm/ApplicationInfo;
-PLcom/android/server/PinnerService;->getHomeInfo(I)Landroid/content/pm/ApplicationInfo;
-PLcom/android/server/PinnerService;->getInfoForKey(II)Landroid/content/pm/ApplicationInfo;
-PLcom/android/server/PinnerService;->getSizeLimitForKey(I)I
-PLcom/android/server/PinnerService;->getUidForKey(I)I
-PLcom/android/server/PinnerService;->handlePinOnStart()V
-PLcom/android/server/PinnerService;->handleUidActive(I)V
-PLcom/android/server/PinnerService;->handleUidGone(I)V
-PLcom/android/server/PinnerService;->isResolverActivity(Landroid/content/pm/ActivityInfo;)Z
-PLcom/android/server/PinnerService;->lambda$GeEX-8XoHeV0LEszxat7jOSlrs4(Lcom/android/server/PinnerService;I)V
-PLcom/android/server/PinnerService;->maybeOpenPinMetaInZip(Ljava/util/zip/ZipFile;Ljava/lang/String;)Ljava/io/InputStream;
-PLcom/android/server/PinnerService;->maybeOpenZip(Ljava/lang/String;)Ljava/util/zip/ZipFile;
-PLcom/android/server/PinnerService;->onBootPhase(I)V
-PLcom/android/server/PinnerService;->onStart()V
+HSPLcom/android/server/PinnerService$2;-><init>(Lcom/android/server/PinnerService;Landroid/os/Handler;Landroid/net/Uri;)V
+HSPLcom/android/server/PinnerService$3;-><init>(Lcom/android/server/PinnerService;)V
+HSPLcom/android/server/PinnerService$3;->lambda$onUidActive$1(Ljava/lang/Object;I)V
+HSPLcom/android/server/PinnerService$3;->lambda$onUidGone$0(Ljava/lang/Object;I)V
+HSPLcom/android/server/PinnerService$3;->onUidActive(I)V
+HSPLcom/android/server/PinnerService$3;->onUidGone(IZ)V
+HSPLcom/android/server/PinnerService$BinderService;-><init>(Lcom/android/server/PinnerService;)V
+HSPLcom/android/server/PinnerService$BinderService;-><init>(Lcom/android/server/PinnerService;Lcom/android/server/PinnerService$1;)V
+PLcom/android/server/PinnerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/PinnerService$PinRange;-><init>()V
+HSPLcom/android/server/PinnerService$PinRangeSource;-><init>()V
+HSPLcom/android/server/PinnerService$PinRangeSource;-><init>(Lcom/android/server/PinnerService$1;)V
+HSPLcom/android/server/PinnerService$PinRangeSourceStatic;-><init>(II)V
+HSPLcom/android/server/PinnerService$PinRangeSourceStatic;->read(Lcom/android/server/PinnerService$PinRange;)Z
+HSPLcom/android/server/PinnerService$PinnedApp;-><init>(Lcom/android/server/PinnerService;Landroid/content/pm/ApplicationInfo;)V
+HSPLcom/android/server/PinnerService$PinnedApp;-><init>(Lcom/android/server/PinnerService;Landroid/content/pm/ApplicationInfo;Lcom/android/server/PinnerService$1;)V
+HSPLcom/android/server/PinnerService$PinnedFile;-><init>(JILjava/lang/String;I)V
+HSPLcom/android/server/PinnerService$PinnedFile;->close()V
+HSPLcom/android/server/PinnerService$PinnedFile;->finalize()V
+HSPLcom/android/server/PinnerService$PinnerHandler;-><init>(Lcom/android/server/PinnerService;Landroid/os/Looper;)V
+HSPLcom/android/server/PinnerService$PinnerHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/PinnerService;-><clinit>()V
+HSPLcom/android/server/PinnerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/PinnerService;->access$1200(JJ)V
+HSPLcom/android/server/PinnerService;->access$1300(Lcom/android/server/PinnerService;)Landroid/app/ActivityManagerInternal;
+HSPLcom/android/server/PinnerService;->access$1400(Lcom/android/server/PinnerService;)V
+HSPLcom/android/server/PinnerService;->access$200(Lcom/android/server/PinnerService;)Lcom/android/server/PinnerService$PinnerHandler;
+HSPLcom/android/server/PinnerService;->access$300(Lcom/android/server/PinnerService;I)V
+HSPLcom/android/server/PinnerService;->access$400(Lcom/android/server/PinnerService;I)V
+HSPLcom/android/server/PinnerService;->clamp(III)I
+HSPLcom/android/server/PinnerService;->getApplicationInfoForIntent(Landroid/content/Intent;IZ)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/PinnerService;->getHomeInfo(I)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/PinnerService;->getInfoForKey(II)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/PinnerService;->getSizeLimitForKey(I)I
+HSPLcom/android/server/PinnerService;->getUidForKey(I)I
+HSPLcom/android/server/PinnerService;->handlePinOnStart()V
+HSPLcom/android/server/PinnerService;->handleUidActive(I)V
+HSPLcom/android/server/PinnerService;->handleUidGone(I)V
+HSPLcom/android/server/PinnerService;->isResolverActivity(Landroid/content/pm/ActivityInfo;)Z
+HSPLcom/android/server/PinnerService;->lambda$GeEX-8XoHeV0LEszxat7jOSlrs4(Lcom/android/server/PinnerService;I)V
+HSPLcom/android/server/PinnerService;->maybeOpenPinMetaInZip(Ljava/util/zip/ZipFile;Ljava/lang/String;)Ljava/io/InputStream;
+HSPLcom/android/server/PinnerService;->maybeOpenZip(Ljava/lang/String;)Ljava/util/zip/ZipFile;
+HSPLcom/android/server/PinnerService;->onBootPhase(I)V
+HSPLcom/android/server/PinnerService;->onStart()V
PLcom/android/server/PinnerService;->onUnlockUser(I)V
-PLcom/android/server/PinnerService;->pinApp(IIZ)V
-PLcom/android/server/PinnerService;->pinApp(ILandroid/content/pm/ApplicationInfo;)V
-PLcom/android/server/PinnerService;->pinApps(I)V
-PLcom/android/server/PinnerService;->pinFile(Ljava/lang/String;IZ)Lcom/android/server/PinnerService$PinnedFile;
-PLcom/android/server/PinnerService;->pinFileRanges(Ljava/lang/String;ILcom/android/server/PinnerService$PinRangeSource;)Lcom/android/server/PinnerService$PinnedFile;
-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;->safeMunmap(JJ)V
-PLcom/android/server/PinnerService;->sendPinAppsMessage(I)V
-PLcom/android/server/PinnerService;->unpinApp(I)V
+HSPLcom/android/server/PinnerService;->pinApp(IIZ)V
+HSPLcom/android/server/PinnerService;->pinApp(ILandroid/content/pm/ApplicationInfo;)V
+HSPLcom/android/server/PinnerService;->pinApps(I)V
+HSPLcom/android/server/PinnerService;->pinFile(Ljava/lang/String;IZ)Lcom/android/server/PinnerService$PinnedFile;
+HSPLcom/android/server/PinnerService;->pinFileRanges(Ljava/lang/String;ILcom/android/server/PinnerService$PinRangeSource;)Lcom/android/server/PinnerService$PinnedFile;
+HSPLcom/android/server/PinnerService;->registerUidListener()V
+HSPLcom/android/server/PinnerService;->registerUserSetupCompleteListener()V
+HSPLcom/android/server/PinnerService;->safeClose(Ljava/io/Closeable;)V
+HSPLcom/android/server/PinnerService;->safeClose(Ljava/io/FileDescriptor;)V
+HSPLcom/android/server/PinnerService;->safeMunmap(JJ)V
+HSPLcom/android/server/PinnerService;->sendPinAppsMessage(I)V
+HSPLcom/android/server/PinnerService;->unpinApp(I)V
PLcom/android/server/PinnerService;->update(Landroid/util/ArraySet;Z)V
-PLcom/android/server/PinnerService;->updateActiveState(IZ)V
-PLcom/android/server/PruneInstantAppsJobService;-><clinit>()V
+HSPLcom/android/server/PinnerService;->updateActiveState(IZ)V
+HSPLcom/android/server/PruneInstantAppsJobService;-><clinit>()V
PLcom/android/server/PruneInstantAppsJobService;-><init>()V
PLcom/android/server/PruneInstantAppsJobService;->onStartJob(Landroid/app/job/JobParameters;)Z
-PLcom/android/server/PruneInstantAppsJobService;->schedule(Landroid/content/Context;)V
-PLcom/android/server/RandomBlock;-><init>()V
-PLcom/android/server/RandomBlock;->close(Ljava/io/Closeable;)V
-PLcom/android/server/RandomBlock;->fromFile(Ljava/lang/String;)Lcom/android/server/RandomBlock;
-PLcom/android/server/RandomBlock;->fromStream(Ljava/io/InputStream;)Lcom/android/server/RandomBlock;
-PLcom/android/server/RandomBlock;->toDataOut(Ljava/io/DataOutput;)V
-PLcom/android/server/RandomBlock;->toFile(Ljava/lang/String;Z)V
-PLcom/android/server/RandomBlock;->truncateIfPossible(Ljava/io/RandomAccessFile;)V
+PLcom/android/server/PruneInstantAppsJobService;->onStopJob(Landroid/app/job/JobParameters;)Z
+HSPLcom/android/server/PruneInstantAppsJobService;->schedule(Landroid/content/Context;)V
+HSPLcom/android/server/RandomBlock;-><init>()V
+HSPLcom/android/server/RandomBlock;->close(Ljava/io/Closeable;)V
+HSPLcom/android/server/RandomBlock;->fromFile(Ljava/lang/String;)Lcom/android/server/RandomBlock;
+HSPLcom/android/server/RandomBlock;->fromStream(Ljava/io/InputStream;)Lcom/android/server/RandomBlock;
+HSPLcom/android/server/RandomBlock;->toDataOut(Ljava/io/DataOutput;)V
+HSPLcom/android/server/RandomBlock;->toFile(Ljava/lang/String;Z)V
+HSPLcom/android/server/RandomBlock;->truncateIfPossible(Ljava/io/RandomAccessFile;)V
HSPLcom/android/server/RescueParty$BootThreshold;-><init>()V
HSPLcom/android/server/RescueParty$Threshold;-><init>(IIJ)V
HSPLcom/android/server/RescueParty;-><clinit>()V
-PLcom/android/server/RescueParty;->executeRescueLevel(Landroid/content/Context;)V
-PLcom/android/server/RescueParty;->handleNativeRescuePartyResets()V
+HSPLcom/android/server/RescueParty;->executeRescueLevel(Landroid/content/Context;)V
+HSPLcom/android/server/RescueParty;->handleNativeRescuePartyResets()V
HSPLcom/android/server/RescueParty;->isDisabled()Z
HSPLcom/android/server/RescueParty;->isUsbActive()Z
HSPLcom/android/server/RescueParty;->noteBoot(Landroid/content/Context;)V
-PLcom/android/server/RescueParty;->onSettingsProviderPublished(Landroid/content/Context;)V
-PLcom/android/server/RuntimeService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/SensorNotificationService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/SensorNotificationService;->onBootPhase(I)V
+HSPLcom/android/server/RescueParty;->onSettingsProviderPublished(Landroid/content/Context;)V
+HSPLcom/android/server/RuntimeService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/RuntimeService;->addDistroVersionDebugInfo(Ljava/lang/String;Ljava/lang/String;Llibcore/util/DebugInfo;)V
+PLcom/android/server/RuntimeService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/RuntimeService;->reportTimeZoneInfo(Llibcore/util/DebugInfo;Ljava/io/PrintWriter;)V
+HSPLcom/android/server/SensorNotificationService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/SensorNotificationService;->onBootPhase(I)V
PLcom/android/server/SensorNotificationService;->onLocationChanged(Landroid/location/Location;)V
-PLcom/android/server/SensorNotificationService;->onStart()V
-PLcom/android/server/SensorPrivacyService$DeathRecipient;-><init>(Lcom/android/server/SensorPrivacyService;Landroid/hardware/ISensorPrivacyListener;)V
-PLcom/android/server/SensorPrivacyService$SensorPrivacyHandler;-><init>(Lcom/android/server/SensorPrivacyService;Landroid/os/Looper;Landroid/content/Context;)V
-PLcom/android/server/SensorPrivacyService$SensorPrivacyHandler;->addListener(Landroid/hardware/ISensorPrivacyListener;)V
-PLcom/android/server/SensorPrivacyService$SensorPrivacyServiceImpl;-><init>(Lcom/android/server/SensorPrivacyService;Landroid/content/Context;)V
-PLcom/android/server/SensorPrivacyService$SensorPrivacyServiceImpl;->addSensorPrivacyListener(Landroid/hardware/ISensorPrivacyListener;)V
-PLcom/android/server/SensorPrivacyService$SensorPrivacyServiceImpl;->isSensorPrivacyEnabled()Z
-PLcom/android/server/SensorPrivacyService$SensorPrivacyServiceImpl;->readPersistedSensorPrivacyEnabledLocked()Z
-PLcom/android/server/SensorPrivacyService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/SensorPrivacyService;->onStart()V
-PLcom/android/server/SerialService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/SensorNotificationService;->onStart()V
+HSPLcom/android/server/SensorPrivacyService$DeathRecipient;-><init>(Lcom/android/server/SensorPrivacyService;Landroid/hardware/ISensorPrivacyListener;)V
+HSPLcom/android/server/SensorPrivacyService$SensorPrivacyHandler;-><init>(Lcom/android/server/SensorPrivacyService;Landroid/os/Looper;Landroid/content/Context;)V
+HSPLcom/android/server/SensorPrivacyService$SensorPrivacyHandler;->addListener(Landroid/hardware/ISensorPrivacyListener;)V
+HSPLcom/android/server/SensorPrivacyService$SensorPrivacyServiceImpl;-><init>(Lcom/android/server/SensorPrivacyService;Landroid/content/Context;)V
+HSPLcom/android/server/SensorPrivacyService$SensorPrivacyServiceImpl;->addSensorPrivacyListener(Landroid/hardware/ISensorPrivacyListener;)V
+HSPLcom/android/server/SensorPrivacyService$SensorPrivacyServiceImpl;->isSensorPrivacyEnabled()Z
+HSPLcom/android/server/SensorPrivacyService$SensorPrivacyServiceImpl;->readPersistedSensorPrivacyEnabledLocked()Z
+HSPLcom/android/server/SensorPrivacyService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/SensorPrivacyService;->onStart()V
+HSPLcom/android/server/SerialService;-><init>(Landroid/content/Context;)V
HSPLcom/android/server/ServiceThread;-><init>(Ljava/lang/String;IZ)V
HSPLcom/android/server/ServiceThread;->run()V
-PLcom/android/server/ServiceWatcher$1;-><init>(Lcom/android/server/ServiceWatcher;)V
+HSPLcom/android/server/ServiceWatcher$1;-><init>(Lcom/android/server/ServiceWatcher;)V
PLcom/android/server/ServiceWatcher$1;->onPackageAdded(Ljava/lang/String;I)V
PLcom/android/server/ServiceWatcher$1;->onPackageChanged(Ljava/lang/String;I[Ljava/lang/String;)Z
PLcom/android/server/ServiceWatcher$1;->onPackageUpdateFinished(Ljava/lang/String;I)V
-PLcom/android/server/ServiceWatcher$2;-><init>(Lcom/android/server/ServiceWatcher;)V
+HSPLcom/android/server/ServiceWatcher$2;-><init>(Lcom/android/server/ServiceWatcher;)V
PLcom/android/server/ServiceWatcher$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/ServiceWatcher;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;IIILandroid/os/Handler;)V
+HSPLcom/android/server/ServiceWatcher;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;IIILandroid/os/Handler;)V
PLcom/android/server/ServiceWatcher;->access$000(Lcom/android/server/ServiceWatcher;Z)V
+PLcom/android/server/ServiceWatcher;->access$100(Lcom/android/server/ServiceWatcher;)I
PLcom/android/server/ServiceWatcher;->access$102(Lcom/android/server/ServiceWatcher;I)I
-PLcom/android/server/ServiceWatcher;->bind(Landroid/content/ComponentName;II)V
-PLcom/android/server/ServiceWatcher;->bindBestPackage(Z)V
+HSPLcom/android/server/ServiceWatcher;->bind(Landroid/content/ComponentName;II)V
+HSPLcom/android/server/ServiceWatcher;->bindBestPackage(Z)V
PLcom/android/server/ServiceWatcher;->getCurrentPackageName()Ljava/lang/String;
-PLcom/android/server/ServiceWatcher;->getSignatureSets(Landroid/content/Context;[Ljava/lang/String;)Ljava/util/ArrayList;
-PLcom/android/server/ServiceWatcher;->isServiceMissing()Z
-PLcom/android/server/ServiceWatcher;->isSignatureMatch([Landroid/content/pm/Signature;Ljava/util/List;)Z
+HSPLcom/android/server/ServiceWatcher;->getSignatureSets(Landroid/content/Context;[Ljava/lang/String;)Ljava/util/ArrayList;
+HSPLcom/android/server/ServiceWatcher;->isServiceMissing()Z
+HSPLcom/android/server/ServiceWatcher;->isSignatureMatch([Landroid/content/pm/Signature;Ljava/util/List;)Z
PLcom/android/server/ServiceWatcher;->lambda$onServiceConnected$3$ServiceWatcher(Landroid/content/ComponentName;Landroid/os/IBinder;)V
PLcom/android/server/ServiceWatcher;->lambda$runOnBinder$1$ServiceWatcher(Lcom/android/server/ServiceWatcher$BinderRunner;)V
-PLcom/android/server/ServiceWatcher;->lambda$start$0$ServiceWatcher()V
+HSPLcom/android/server/ServiceWatcher;->lambda$start$0$ServiceWatcher()V
PLcom/android/server/ServiceWatcher;->onBind()V
PLcom/android/server/ServiceWatcher;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/ServiceWatcher;->runOnBinder(Lcom/android/server/ServiceWatcher$BinderRunner;)V
-PLcom/android/server/ServiceWatcher;->runOnHandler(Ljava/lang/Runnable;)V
-PLcom/android/server/ServiceWatcher;->start()Z
-PLcom/android/server/ServiceWatcher;->unbind()V
-PLcom/android/server/StorageManagerService$13;-><init>(Lcom/android/server/StorageManagerService;)V
+PLcom/android/server/ServiceWatcher;->onServiceDisconnected(Landroid/content/ComponentName;)V
+PLcom/android/server/ServiceWatcher;->onUnbind()V
+HPLcom/android/server/ServiceWatcher;->runOnBinder(Lcom/android/server/ServiceWatcher$BinderRunner;)V
+HPLcom/android/server/ServiceWatcher;->runOnHandler(Ljava/lang/Runnable;)V
+HSPLcom/android/server/ServiceWatcher;->start()Z
+PLcom/android/server/ServiceWatcher;->toString()Ljava/lang/String;
+HSPLcom/android/server/ServiceWatcher;->unbind()V
+PLcom/android/server/StorageManagerService$10;-><init>(Lcom/android/server/StorageManagerService;Ljava/lang/Runnable;)V
+PLcom/android/server/StorageManagerService$10;->onFinished(ILandroid/os/PersistableBundle;)V
+PLcom/android/server/StorageManagerService$11;-><init>(Lcom/android/server/StorageManagerService;Ljava/lang/Runnable;)V
+PLcom/android/server/StorageManagerService$11;->onFinished(ILandroid/os/PersistableBundle;)V
+HSPLcom/android/server/StorageManagerService$13;-><init>(Lcom/android/server/StorageManagerService;)V
PLcom/android/server/StorageManagerService$13;->opChanged(IILjava/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$3;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Handler;)V
-PLcom/android/server/StorageManagerService$4;-><init>(Lcom/android/server/StorageManagerService;)V
+HSPLcom/android/server/StorageManagerService$1;-><init>(Lcom/android/server/StorageManagerService;)V
+HSPLcom/android/server/StorageManagerService$2;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/StorageManagerService$3;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/StorageManagerService$4;-><init>(Lcom/android/server/StorageManagerService;)V
PLcom/android/server/StorageManagerService$4;->onVolumeCreated(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V
PLcom/android/server/StorageManagerService$4;->onVolumeDestroyed(Ljava/lang/String;)V
PLcom/android/server/StorageManagerService$4;->onVolumeInternalPathChanged(Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/StorageManagerService$4;->onVolumePathChanged(Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/StorageManagerService$4;->onVolumeStateChanged(Ljava/lang/String;I)V
-PLcom/android/server/StorageManagerService$5;-><init>(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService$6;-><init>(Lcom/android/server/StorageManagerService;)V
+HSPLcom/android/server/StorageManagerService$5;-><init>(Lcom/android/server/StorageManagerService;)V
+HSPLcom/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$Callbacks;-><init>(Landroid/os/Looper;)V
+HSPLcom/android/server/StorageManagerService$9;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;)V
+HSPLcom/android/server/StorageManagerService$9;->onFinished(ILandroid/os/PersistableBundle;)V
+HSPLcom/android/server/StorageManagerService$9;->onStatus(ILandroid/os/PersistableBundle;)V
+PLcom/android/server/StorageManagerService$AppFuseMountScope;-><init>(Lcom/android/server/StorageManagerService;II)V
+PLcom/android/server/StorageManagerService$AppFuseMountScope;->close()V
+PLcom/android/server/StorageManagerService$AppFuseMountScope;->open()Landroid/os/ParcelFileDescriptor;
+PLcom/android/server/StorageManagerService$AppFuseMountScope;->openFile(III)Landroid/os/ParcelFileDescriptor;
+HSPLcom/android/server/StorageManagerService$Callbacks;-><init>(Landroid/os/Looper;)V
+PLcom/android/server/StorageManagerService$Callbacks;->access$2700(Lcom/android/server/StorageManagerService$Callbacks;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/StorageManagerService$Callbacks;->access$3700(Lcom/android/server/StorageManagerService$Callbacks;Landroid/os/storage/VolumeInfo;II)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;->register(Landroid/os/storage/IStorageEventListener;)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$Callbacks;->notifyStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/StorageManagerService$Callbacks;->notifyVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
+HSPLcom/android/server/StorageManagerService$Callbacks;->register(Landroid/os/storage/IStorageEventListener;)V
+HSPLcom/android/server/StorageManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/StorageManagerService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/StorageManagerService$Lifecycle;->onStart()V
PLcom/android/server/StorageManagerService$Lifecycle;->onUnlockUser(I)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$1;)V
-PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->addExternalStoragePolicy(Landroid/os/storage/StorageManagerInternal$ExternalStorageMountPolicy;)V
-PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->getExternalStorageMountMode(ILjava/lang/String;)I
-PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->hasExternalStorage(ILjava/lang/String;)Z
+HSPLcom/android/server/StorageManagerService$ObbActionHandler;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Looper;)V
+HSPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;-><init>(Lcom/android/server/StorageManagerService;)V
+HSPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;-><init>(Lcom/android/server/StorageManagerService;Lcom/android/server/StorageManagerService$1;)V
+HSPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->addExternalStoragePolicy(Landroid/os/storage/StorageManagerInternal$ExternalStorageMountPolicy;)V
+HSPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->getExternalStorageMountMode(ILjava/lang/String;)I
+HSPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->hasExternalStorage(ILjava/lang/String;)Z
HPLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->onAppOpsChanged(IILjava/lang/String;I)V
+PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->onExternalStoragePolicyChanged(ILjava/lang/String;)V
PLcom/android/server/StorageManagerService$StorageManagerInternalImpl;->onReset(Landroid/os/IVold;)V
-PLcom/android/server/StorageManagerService$StorageManagerServiceHandler;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Looper;)V
-PLcom/android/server/StorageManagerService$StorageManagerServiceHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/StorageManagerService;-><clinit>()V
-PLcom/android/server/StorageManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/StorageManagerService;->access$000(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService;->access$100(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService;->access$1000(Lcom/android/server/StorageManagerService;)V
+HSPLcom/android/server/StorageManagerService$StorageManagerServiceHandler;-><init>(Lcom/android/server/StorageManagerService;Landroid/os/Looper;)V
+HSPLcom/android/server/StorageManagerService$StorageManagerServiceHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/StorageManagerService;-><clinit>()V
+HSPLcom/android/server/StorageManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/StorageManagerService;->abortIdleMaint(Ljava/lang/Runnable;)V
+HSPLcom/android/server/StorageManagerService;->access$000(Lcom/android/server/StorageManagerService;)V
+HSPLcom/android/server/StorageManagerService;->access$100(Lcom/android/server/StorageManagerService;)V
+HSPLcom/android/server/StorageManagerService;->access$1000(Lcom/android/server/StorageManagerService;)V
PLcom/android/server/StorageManagerService;->access$1100(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService;->access$200(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService;->access$2200(Lcom/android/server/StorageManagerService;)Landroid/util/ArrayMap;
-PLcom/android/server/StorageManagerService;->access$2700(Lcom/android/server/StorageManagerService;)Ljava/lang/Object;
-PLcom/android/server/StorageManagerService;->access$2800(Lcom/android/server/StorageManagerService;)Landroid/util/ArrayMap;
+HSPLcom/android/server/StorageManagerService;->access$1200(Lcom/android/server/StorageManagerService;)V
+HSPLcom/android/server/StorageManagerService;->access$1300(Lcom/android/server/StorageManagerService;)J
+HSPLcom/android/server/StorageManagerService;->access$1302(Lcom/android/server/StorageManagerService;J)J
+HSPLcom/android/server/StorageManagerService;->access$1400(Lcom/android/server/StorageManagerService;)Ljava/io/File;
+PLcom/android/server/StorageManagerService;->access$1600(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)Z
+PLcom/android/server/StorageManagerService;->access$1700(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V
+HSPLcom/android/server/StorageManagerService;->access$1900(Lcom/android/server/StorageManagerService;)Landroid/content/Context;
+HSPLcom/android/server/StorageManagerService;->access$200(Lcom/android/server/StorageManagerService;)V
+PLcom/android/server/StorageManagerService;->access$2200(Lcom/android/server/StorageManagerService;I)V
+PLcom/android/server/StorageManagerService;->access$2300(Lcom/android/server/StorageManagerService;)Landroid/util/ArrayMap;
+HSPLcom/android/server/StorageManagerService;->access$2800(Lcom/android/server/StorageManagerService;)Ljava/lang/Object;
+PLcom/android/server/StorageManagerService;->access$2900(Lcom/android/server/StorageManagerService;)Landroid/util/ArrayMap;
PLcom/android/server/StorageManagerService;->access$300(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService;->access$3200(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V
-PLcom/android/server/StorageManagerService;->access$4800()Z
-PLcom/android/server/StorageManagerService;->access$4900(Lcom/android/server/StorageManagerService;ILjava/lang/String;)I
-PLcom/android/server/StorageManagerService;->access$5000(Lcom/android/server/StorageManagerService;II)V
-PLcom/android/server/StorageManagerService;->access$900(Lcom/android/server/StorageManagerService;)V
-PLcom/android/server/StorageManagerService;->addInternalVolumeLocked()V
+PLcom/android/server/StorageManagerService;->access$3300(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;)V
+PLcom/android/server/StorageManagerService;->access$3400(Lcom/android/server/StorageManagerService;Landroid/os/storage/VolumeInfo;II)V
+HSPLcom/android/server/StorageManagerService;->access$4100(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V
+HSPLcom/android/server/StorageManagerService;->access$4200(Lcom/android/server/StorageManagerService;Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V
+HSPLcom/android/server/StorageManagerService;->access$4300(Lcom/android/server/StorageManagerService;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/StorageManagerService;->access$4400(Lcom/android/server/StorageManagerService;Ljava/lang/String;)Landroid/os/storage/VolumeRecord;
+HSPLcom/android/server/StorageManagerService;->access$4900()Z
+PLcom/android/server/StorageManagerService;->access$500(Lcom/android/server/StorageManagerService;I)V
+HSPLcom/android/server/StorageManagerService;->access$5000(Lcom/android/server/StorageManagerService;ILjava/lang/String;)I
+PLcom/android/server/StorageManagerService;->access$5100(Lcom/android/server/StorageManagerService;II)V
+HSPLcom/android/server/StorageManagerService;->addInternalVolumeLocked()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;->bootCompleted()V
PLcom/android/server/StorageManagerService;->clearPassword()V
PLcom/android/server/StorageManagerService;->commitChanges()V
PLcom/android/server/StorageManagerService;->completeUnlockUser(I)V
-PLcom/android/server/StorageManagerService;->connectStoraged()V
-PLcom/android/server/StorageManagerService;->connectVold()V
-PLcom/android/server/StorageManagerService;->copyLocaleFromMountService()V
+HSPLcom/android/server/StorageManagerService;->connectStoraged()V
+HSPLcom/android/server/StorageManagerService;->connectVold()V
+HSPLcom/android/server/StorageManagerService;->copyLocaleFromMountService()V
+HSPLcom/android/server/StorageManagerService;->dispatchOnFinished(Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V
+HSPLcom/android/server/StorageManagerService;->dispatchOnStatus(Landroid/os/IVoldTaskListener;ILandroid/os/PersistableBundle;)V
+PLcom/android/server/StorageManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/StorageManagerService;->encodeBytes([B)Ljava/lang/String;
-PLcom/android/server/StorageManagerService;->enforcePermission(Ljava/lang/String;)V
+HSPLcom/android/server/StorageManagerService;->enforcePermission(Ljava/lang/String;)V
+HSPLcom/android/server/StorageManagerService;->findRecordForPath(Ljava/lang/String;)Landroid/os/storage/VolumeRecord;
+HSPLcom/android/server/StorageManagerService;->fstrim(ILandroid/os/IVoldTaskListener;)V
PLcom/android/server/StorageManagerService;->getAllocatableBytes(Ljava/lang/String;ILjava/lang/String;)J
-PLcom/android/server/StorageManagerService;->getDefaultPrimaryStorageUuid()Ljava/lang/String;
+PLcom/android/server/StorageManagerService;->getCacheQuotaBytes(Ljava/lang/String;I)J
+PLcom/android/server/StorageManagerService;->getCacheSizeBytes(Ljava/lang/String;I)J
+HSPLcom/android/server/StorageManagerService;->getDefaultPrimaryStorageUuid()Ljava/lang/String;
PLcom/android/server/StorageManagerService;->getDisks()[Landroid/os/storage/DiskInfo;
-PLcom/android/server/StorageManagerService;->getField(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/StorageManagerService;->getMountMode(ILjava/lang/String;)I
-HPLcom/android/server/StorageManagerService;->getMountModeInternal(ILjava/lang/String;)I
+HSPLcom/android/server/StorageManagerService;->getField(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/StorageManagerService;->getMountMode(ILjava/lang/String;)I
+HSPLcom/android/server/StorageManagerService;->getMountModeInternal(ILjava/lang/String;)I
PLcom/android/server/StorageManagerService;->getPassword()Ljava/lang/String;
-HPLcom/android/server/StorageManagerService;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume;
+PLcom/android/server/StorageManagerService;->getPrimaryStorageUuid()Ljava/lang/String;
+HSPLcom/android/server/StorageManagerService;->getVolumeList(ILjava/lang/String;I)[Landroid/os/storage/StorageVolume;
PLcom/android/server/StorageManagerService;->getVolumeRecords(I)[Landroid/os/storage/VolumeRecord;
-HPLcom/android/server/StorageManagerService;->getVolumes(I)[Landroid/os/storage/VolumeInfo;
+HSPLcom/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;->initIfBootedAndConnected()V
+HSPLcom/android/server/StorageManagerService;->handleDaemonConnected()V
+HSPLcom/android/server/StorageManagerService;->handleSystemReady()V
+HSPLcom/android/server/StorageManagerService;->initIfBootedAndConnected()V
PLcom/android/server/StorageManagerService;->isBroadcastWorthy(Landroid/os/storage/VolumeInfo;)Z
PLcom/android/server/StorageManagerService;->isMountDisallowed(Landroid/os/storage/VolumeInfo;)Z
-HPLcom/android/server/StorageManagerService;->isSystemUnlocked(I)Z
-HPLcom/android/server/StorageManagerService;->isUserKeyUnlocked(I)Z
+HSPLcom/android/server/StorageManagerService;->isSystemUnlocked(I)Z
+HSPLcom/android/server/StorageManagerService;->isUserKeyUnlocked(I)Z
PLcom/android/server/StorageManagerService;->killMediaProvider(Ljava/util/List;)V
-PLcom/android/server/StorageManagerService;->lastMaintenance()J
+PLcom/android/server/StorageManagerService;->lambda$handleSystemReady$0$StorageManagerService(Landroid/provider/DeviceConfig$Properties;)V
+HSPLcom/android/server/StorageManagerService;->lastMaintenance()J
PLcom/android/server/StorageManagerService;->maybeLogMediaMount(Landroid/os/storage/VolumeInfo;I)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;->mountProxyFileDescriptorBridge()Lcom/android/internal/os/AppFuseMount;
+HSPLcom/android/server/StorageManagerService;->needsCheckpoint()Z
PLcom/android/server/StorageManagerService;->onAwakeStateChanged(Z)V
-PLcom/android/server/StorageManagerService;->onDaemonConnected()V
+HSPLcom/android/server/StorageManagerService;->onDaemonConnected()V
PLcom/android/server/StorageManagerService;->onKeyguardStateChanged(Z)V
PLcom/android/server/StorageManagerService;->onUnlockUser(I)V
PLcom/android/server/StorageManagerService;->onVolumeCreatedLocked(Landroid/os/storage/VolumeInfo;)V
PLcom/android/server/StorageManagerService;->onVolumeStateChangedLocked(Landroid/os/storage/VolumeInfo;II)V
+PLcom/android/server/StorageManagerService;->openProxyFileDescriptor(III)Landroid/os/ParcelFileDescriptor;
PLcom/android/server/StorageManagerService;->prepareUserStorage(Ljava/lang/String;III)V
-PLcom/android/server/StorageManagerService;->readSettingsLocked()V
-PLcom/android/server/StorageManagerService;->refreshIsolatedStorageSettings()V
-PLcom/android/server/StorageManagerService;->refreshZramSettings()V
-PLcom/android/server/StorageManagerService;->registerListener(Landroid/os/storage/IStorageEventListener;)V
+HSPLcom/android/server/StorageManagerService;->readSettingsLocked()V
+PLcom/android/server/StorageManagerService;->refreshFuseSettings()V
+HSPLcom/android/server/StorageManagerService;->refreshIsolatedStorageSettings()V
+HSPLcom/android/server/StorageManagerService;->refreshZramSettings()V
+HSPLcom/android/server/StorageManagerService;->registerListener(Landroid/os/storage/IStorageEventListener;)V
PLcom/android/server/StorageManagerService;->remountUidExternalStorage(II)V
-PLcom/android/server/StorageManagerService;->resetIfBootedAndConnected()V
-PLcom/android/server/StorageManagerService;->servicesReady()V
-PLcom/android/server/StorageManagerService;->start()V
-PLcom/android/server/StorageManagerService;->systemReady()V
+HSPLcom/android/server/StorageManagerService;->resetIfBootedAndConnected()V
+PLcom/android/server/StorageManagerService;->runIdleMaint(Ljava/lang/Runnable;)V
+HSPLcom/android/server/StorageManagerService;->runIdleMaintenance(Ljava/lang/Runnable;)V
+HSPLcom/android/server/StorageManagerService;->runMaintenance()V
+HSPLcom/android/server/StorageManagerService;->scrubPath(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/StorageManagerService;->servicesReady()V
+HSPLcom/android/server/StorageManagerService;->start()V
+PLcom/android/server/StorageManagerService;->supportsBlockCheckpoint()Z
+HSPLcom/android/server/StorageManagerService;->systemReady()V
PLcom/android/server/StorageManagerService;->unlockUserKey(II[B[B)V
PLcom/android/server/StorageManagerService;->updateFusePropFromSettings()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;->isFirstBootOrUpgrade()Z
-PLcom/android/server/SystemServer;->lambda$startBootstrapServices$0()V
-PLcom/android/server/SystemServer;->lambda$startOtherServices$1()V
-PLcom/android/server/SystemServer;->lambda$startOtherServices$2()V
-PLcom/android/server/SystemServer;->lambda$startOtherServices$3$SystemServer()V
-PLcom/android/server/SystemServer;->lambda$startOtherServices$4$SystemServer(Lcom/android/server/utils/TimingsTraceAndSlog;Landroid/content/Context;Lcom/android/server/wm/WindowManagerService;ZLcom/android/server/ConnectivityService;Lcom/android/server/NetworkManagementService;Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/IpSecService;Lcom/android/server/net/NetworkStatsService;Lcom/android/server/CountryDetectorService;Lcom/android/server/NetworkTimeUpdateService;Lcom/android/server/input/InputManagerService;Lcom/android/server/TelephonyRegistry;Lcom/android/server/media/MediaRouterService;Lcom/android/server/MmsServiceBroker;)V
+HSPLcom/android/server/SystemServer;->deviceHasConfigString(Landroid/content/Context;I)Z
+HSPLcom/android/server/SystemServer;->isFirstBootOrUpgrade()Z
+HSPLcom/android/server/SystemServer;->lambda$startBootstrapServices$0()V
+HSPLcom/android/server/SystemServer;->lambda$startOtherServices$1()V
+HSPLcom/android/server/SystemServer;->lambda$startOtherServices$2()V
+HSPLcom/android/server/SystemServer;->lambda$startOtherServices$3$SystemServer()V
+HSPLcom/android/server/SystemServer;->lambda$startOtherServices$4$SystemServer(Lcom/android/server/utils/TimingsTraceAndSlog;Landroid/content/Context;Lcom/android/server/wm/WindowManagerService;ZLcom/android/server/ConnectivityService;Lcom/android/server/NetworkManagementService;Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/IpSecService;Lcom/android/server/net/NetworkStatsService;Lcom/android/server/CountryDetectorService;Lcom/android/server/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
-PLcom/android/server/SystemServer;->startAttentionService(Landroid/content/Context;Lcom/android/server/utils/TimingsTraceAndSlog;)V
+HSPLcom/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
-PLcom/android/server/SystemServer;->startCoreServices(Lcom/android/server/utils/TimingsTraceAndSlog;)V
-PLcom/android/server/SystemServer;->startOtherServices(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
+HSPLcom/android/server/SystemServer;->startContentCaptureService(Landroid/content/Context;Lcom/android/server/utils/TimingsTraceAndSlog;)V
+HSPLcom/android/server/SystemServer;->startCoreServices(Lcom/android/server/utils/TimingsTraceAndSlog;)V
+HSPLcom/android/server/SystemServer;->startOtherServices(Lcom/android/server/utils/TimingsTraceAndSlog;)V
+HSPLcom/android/server/SystemServer;->startSystemCaptionsManagerService(Landroid/content/Context;Lcom/android/server/utils/TimingsTraceAndSlog;)V
+HSPLcom/android/server/SystemServer;->startSystemUi(Landroid/content/Context;Lcom/android/server/wm/WindowManagerService;)V
HSPLcom/android/server/SystemServerInitThreadPool;-><clinit>()V
HSPLcom/android/server/SystemServerInitThreadPool;-><init>()V
HSPLcom/android/server/SystemServerInitThreadPool;->lambda$submitTask$0$SystemServerInitThreadPool(Ljava/lang/String;Ljava/lang/Runnable;)V
@@ -2359,12 +2591,12 @@ HSPLcom/android/server/SystemServerInitThreadPool;->start()V
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;
HSPLcom/android/server/SystemService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/SystemService;->getBinderService(Ljava/lang/String;)Landroid/os/IBinder;
+HSPLcom/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;
-PLcom/android/server/SystemService;->getManager()Lcom/android/server/SystemServiceManager;
-PLcom/android/server/SystemService;->isSafeMode()Z
-PLcom/android/server/SystemService;->isSupported(Landroid/content/pm/UserInfo;)Z
+HSPLcom/android/server/SystemService;->getLocalService(Ljava/lang/Class;)Ljava/lang/Object;
+HSPLcom/android/server/SystemService;->getManager()Lcom/android/server/SystemServiceManager;
+HSPLcom/android/server/SystemService;->isSafeMode()Z
+HSPLcom/android/server/SystemService;->isSupported(Landroid/content/pm/UserInfo;)Z
HSPLcom/android/server/SystemService;->onBootPhase(I)V
PLcom/android/server/SystemService;->onStartUser(I)V
PLcom/android/server/SystemService;->onStartUser(Landroid/content/pm/UserInfo;)V
@@ -2376,67 +2608,85 @@ HSPLcom/android/server/SystemService;->publishBinderService(Ljava/lang/String;La
HSPLcom/android/server/SystemService;->publishLocalService(Ljava/lang/Class;Ljava/lang/Object;)V
HSPLcom/android/server/SystemServiceManager;-><init>(Landroid/content/Context;)V
HSPLcom/android/server/SystemServiceManager;->ensureSystemDir()Ljava/io/File;
+PLcom/android/server/SystemServiceManager;->getRuntimeStartElapsedTime()J
+PLcom/android/server/SystemServiceManager;->getRuntimeStartUptime()J
PLcom/android/server/SystemServiceManager;->getUserInfo(I)Landroid/content/pm/UserInfo;
-PLcom/android/server/SystemServiceManager;->isBootCompleted()Z
-PLcom/android/server/SystemServiceManager;->isRuntimeRestarted()Z
-PLcom/android/server/SystemServiceManager;->isSafeMode()Z
+HSPLcom/android/server/SystemServiceManager;->isBootCompleted()Z
+HSPLcom/android/server/SystemServiceManager;->isRuntimeRestarted()Z
+HSPLcom/android/server/SystemServiceManager;->isSafeMode()Z
PLcom/android/server/SystemServiceManager;->onUser(Lcom/android/server/utils/TimingsTraceAndSlog;Ljava/lang/String;I)V
HPLcom/android/server/SystemServiceManager;->onUser(Lcom/android/server/utils/TimingsTraceAndSlog;Ljava/lang/String;II)V
-PLcom/android/server/SystemServiceManager;->preSystemReady()V
-PLcom/android/server/SystemServiceManager;->setSafeMode(Z)V
+PLcom/android/server/SystemServiceManager;->onUser(Ljava/lang/String;I)V
+HSPLcom/android/server/SystemServiceManager;->preSystemReady()V
+HSPLcom/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;
-PLcom/android/server/SystemServiceManager;->startService(Ljava/lang/String;)Lcom/android/server/SystemService;
+HSPLcom/android/server/SystemServiceManager;->startService(Ljava/lang/String;)Lcom/android/server/SystemService;
PLcom/android/server/SystemServiceManager;->startUser(Lcom/android/server/utils/TimingsTraceAndSlog;I)V
+PLcom/android/server/SystemServiceManager;->unlockUser(I)V
HSPLcom/android/server/SystemServiceManager;->warnIfTooLong(JLcom/android/server/SystemService;Ljava/lang/String;)V
-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/TelephonyRegistry$1;-><init>(Lcom/android/server/TelephonyRegistry;)V
+HSPLcom/android/server/SystemUpdateManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/SystemUpdateManagerService;->getBootCount()I
+HSPLcom/android/server/SystemUpdateManagerService;->loadSystemUpdateInfoLocked()Landroid/os/Bundle;
+HSPLcom/android/server/SystemUpdateManagerService;->readInfoFileLocked(Lorg/xmlpull/v1/XmlPullParser;)Landroid/os/PersistableBundle;
+HSPLcom/android/server/SystemUpdateManagerService;->removeInfoFileAndGetDefaultInfoBundleLocked()Landroid/os/Bundle;
+PLcom/android/server/SystemUpdateManagerService;->retrieveSystemUpdateInfo()Landroid/os/Bundle;
+PLcom/android/server/SystemUpdateManagerService;->saveSystemUpdateInfoLocked(Landroid/os/PersistableBundle;I)V
+PLcom/android/server/SystemUpdateManagerService;->updateSystemUpdateInfo(Landroid/os/PersistableBundle;)V
+PLcom/android/server/SystemUpdateManagerService;->writeInfoFileLocked(Landroid/os/PersistableBundle;)Z
+HSPLcom/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
+HSPLcom/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$3;-><clinit>()V
-PLcom/android/server/TelephonyRegistry$Record;-><init>()V
-PLcom/android/server/TelephonyRegistry$Record;-><init>(Lcom/android/server/TelephonyRegistry$1;)V
+HSPLcom/android/server/TelephonyRegistry$3;-><clinit>()V
+HSPLcom/android/server/TelephonyRegistry$Record;-><init>()V
+HSPLcom/android/server/TelephonyRegistry$Record;-><init>(Lcom/android/server/TelephonyRegistry$1;)V
PLcom/android/server/TelephonyRegistry$Record;->matchOnSubscriptionsChangedListener()Z
PLcom/android/server/TelephonyRegistry$Record;->matchPhoneStateListenerEvent(I)Z
-PLcom/android/server/TelephonyRegistry$TelephonyRegistryDeathRecipient;-><init>(Lcom/android/server/TelephonyRegistry;Landroid/os/IBinder;)V
+PLcom/android/server/TelephonyRegistry$Record;->toString()Ljava/lang/String;
+HSPLcom/android/server/TelephonyRegistry$TelephonyRegistryDeathRecipient;-><init>(Lcom/android/server/TelephonyRegistry;Landroid/os/IBinder;)V
PLcom/android/server/TelephonyRegistry$TelephonyRegistryDeathRecipient;->binderDied()V
-PLcom/android/server/TelephonyRegistry;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/TelephonyRegistry;-><init>(Landroid/content/Context;)V
PLcom/android/server/TelephonyRegistry;->access$000(Lcom/android/server/TelephonyRegistry;)Landroid/telephony/TelephonyManager;
PLcom/android/server/TelephonyRegistry;->access$100(Lcom/android/server/TelephonyRegistry;)[Landroid/os/Bundle;
PLcom/android/server/TelephonyRegistry;->access$1000(Lcom/android/server/TelephonyRegistry;I)Z
PLcom/android/server/TelephonyRegistry;->access$900(Lcom/android/server/TelephonyRegistry;)Landroid/os/Handler;
-HPLcom/android/server/TelephonyRegistry;->add(Landroid/os/IBinder;)Lcom/android/server/TelephonyRegistry$Record;
+HSPLcom/android/server/TelephonyRegistry;->add(Landroid/os/IBinder;)Lcom/android/server/TelephonyRegistry$Record;
PLcom/android/server/TelephonyRegistry;->addOnOpportunisticSubscriptionsChangedListener(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
-PLcom/android/server/TelephonyRegistry;->addOnSubscriptionsChangedListener(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
+HSPLcom/android/server/TelephonyRegistry;->addOnSubscriptionsChangedListener(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
+PLcom/android/server/TelephonyRegistry;->broadcastDataConnectionStateChanged(IZLjava/lang/String;Ljava/lang/String;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;ZI)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(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/server/TelephonyRegistry;->checkListenerPermission(IILjava/lang/String;Ljava/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;->getTelephonyManager()Landroid/telephony/TelephonyManager;
+HSPLcom/android/server/TelephonyRegistry;->createCallQuality()Landroid/telephony/CallQuality;
+PLcom/android/server/TelephonyRegistry;->dataStateToString(I)Ljava/lang/String;
+PLcom/android/server/TelephonyRegistry;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/TelephonyRegistry;->getNetworkTypeName(I)Ljava/lang/String;
+HSPLcom/android/server/TelephonyRegistry;->getTelephonyManager()Landroid/telephony/TelephonyManager;
PLcom/android/server/TelephonyRegistry;->handleRemoveListLocked()V
PLcom/android/server/TelephonyRegistry;->idMatch(III)Z
-HPLcom/android/server/TelephonyRegistry;->listen(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;IZI)V
-PLcom/android/server/TelephonyRegistry;->listenForSubscriber(ILjava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;IZ)V
-PLcom/android/server/TelephonyRegistry;->log(Ljava/lang/String;)V
+HSPLcom/android/server/TelephonyRegistry;->listen(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;IZI)V
+HSPLcom/android/server/TelephonyRegistry;->listenForSubscriber(ILjava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;IZ)V
+HSPLcom/android/server/TelephonyRegistry;->log(Ljava/lang/String;)V
PLcom/android/server/TelephonyRegistry;->notifyActiveDataSubIdChanged(I)V
PLcom/android/server/TelephonyRegistry;->notifyCellInfoForSubscriber(ILjava/util/List;)V
PLcom/android/server/TelephonyRegistry;->notifyCellLocationForSubscriber(ILandroid/os/Bundle;)V
PLcom/android/server/TelephonyRegistry;->notifyDataActivityForSubscriber(II)V
-PLcom/android/server/TelephonyRegistry;->notifyEmergencyNumberList(II)V
+HPLcom/android/server/TelephonyRegistry;->notifyDataConnectionForSubscriber(IIIZLjava/lang/String;Ljava/lang/String;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;IZ)V
+HPLcom/android/server/TelephonyRegistry;->notifyEmergencyNumberList(II)V
PLcom/android/server/TelephonyRegistry;->notifyOtaspChanged(II)V
PLcom/android/server/TelephonyRegistry;->notifyPhoneCapabilityChanged(Landroid/telephony/PhoneCapability;)V
-PLcom/android/server/TelephonyRegistry;->notifyRadioPowerStateChanged(III)V
+HPLcom/android/server/TelephonyRegistry;->notifyPreciseCallState(IIIII)V
+HPLcom/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
PLcom/android/server/TelephonyRegistry;->notifySimActivationStateChangedForPhoneId(IIII)V
PLcom/android/server/TelephonyRegistry;->notifySubscriptionInfoChanged()V
-PLcom/android/server/TelephonyRegistry;->remove(Landroid/os/IBinder;)V
+HPLcom/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
@@ -2449,63 +2699,73 @@ HSPLcom/android/server/ThreadPriorityBooster;-><init>(II)V
HSPLcom/android/server/ThreadPriorityBooster;->boost()V
HSPLcom/android/server/ThreadPriorityBooster;->reset()V
PLcom/android/server/ThreadPriorityBooster;->setBoostToPriority(I)V
-PLcom/android/server/UiModeManagerInternal;-><init>()V
-PLcom/android/server/UiModeManagerService$1;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$2;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$3;-><init>(Lcom/android/server/UiModeManagerService;)V
+HSPLcom/android/server/UiModeManagerInternal;-><init>()V
+HSPLcom/android/server/UiModeManagerService$1;-><init>(Lcom/android/server/UiModeManagerService;)V
+HSPLcom/android/server/UiModeManagerService$2;-><init>(Lcom/android/server/UiModeManagerService;)V
+HSPLcom/android/server/UiModeManagerService$3;-><init>(Lcom/android/server/UiModeManagerService;)V
PLcom/android/server/UiModeManagerService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/UiModeManagerService$4;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$5;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$6;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$7;-><init>(Lcom/android/server/UiModeManagerService;Landroid/os/Handler;)V
-PLcom/android/server/UiModeManagerService$8;-><init>(Lcom/android/server/UiModeManagerService;Landroid/os/Handler;)V
-PLcom/android/server/UiModeManagerService$9;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$9;->getCurrentModeType()I
+HSPLcom/android/server/UiModeManagerService$4;-><init>(Lcom/android/server/UiModeManagerService;)V
+HSPLcom/android/server/UiModeManagerService$5;-><init>(Lcom/android/server/UiModeManagerService;)V
+HSPLcom/android/server/UiModeManagerService$6;-><init>(Lcom/android/server/UiModeManagerService;)V
+HSPLcom/android/server/UiModeManagerService$7;-><init>(Lcom/android/server/UiModeManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/UiModeManagerService$8;-><init>(Lcom/android/server/UiModeManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/UiModeManagerService$9;-><init>(Lcom/android/server/UiModeManagerService;)V
+PLcom/android/server/UiModeManagerService$9;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/UiModeManagerService$9;->getCurrentModeType()I
PLcom/android/server/UiModeManagerService$9;->getNightMode()I
-PLcom/android/server/UiModeManagerService$LocalService;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$UserSwitchedReceiver;-><init>(Lcom/android/server/UiModeManagerService;)V
-PLcom/android/server/UiModeManagerService$UserSwitchedReceiver;-><init>(Lcom/android/server/UiModeManagerService;Lcom/android/server/UiModeManagerService$1;)V
+PLcom/android/server/UiModeManagerService$9;->isNightModeLocked()Z
+PLcom/android/server/UiModeManagerService$9;->setNightMode(I)V
+HSPLcom/android/server/UiModeManagerService$LocalService;-><init>(Lcom/android/server/UiModeManagerService;)V
+PLcom/android/server/UiModeManagerService$LocalService;->isNightMode()Z
+PLcom/android/server/UiModeManagerService$Shell;->access$2200(I)Ljava/lang/String;
+PLcom/android/server/UiModeManagerService$Shell;->nightModeToStr(I)Ljava/lang/String;
+HSPLcom/android/server/UiModeManagerService$UserSwitchedReceiver;-><init>(Lcom/android/server/UiModeManagerService;)V
+HSPLcom/android/server/UiModeManagerService$UserSwitchedReceiver;-><init>(Lcom/android/server/UiModeManagerService;Lcom/android/server/UiModeManagerService$1;)V
PLcom/android/server/UiModeManagerService$UserSwitchedReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/UiModeManagerService;-><clinit>()V
-PLcom/android/server/UiModeManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/UiModeManagerService;-><clinit>()V
+HSPLcom/android/server/UiModeManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/UiModeManagerService;->access$1100(Lcom/android/server/UiModeManagerService;Landroid/content/Context;Landroid/content/res/Resources;I)Z
+PLcom/android/server/UiModeManagerService;->access$1300()Ljava/lang/String;
+PLcom/android/server/UiModeManagerService;->access$1800(Lcom/android/server/UiModeManagerService;)Z
PLcom/android/server/UiModeManagerService;->access$202(Lcom/android/server/UiModeManagerService;Z)Z
PLcom/android/server/UiModeManagerService;->access$300(Lcom/android/server/UiModeManagerService;)I
-PLcom/android/server/UiModeManagerService;->access$900(Lcom/android/server/UiModeManagerService;Landroid/content/Context;Landroid/content/res/Resources;I)Z
-PLcom/android/server/UiModeManagerService;->isDeskDockState(I)Z
-PLcom/android/server/UiModeManagerService;->lambda$onStart$1$UiModeManagerService()V
-PLcom/android/server/UiModeManagerService;->onBootPhase(I)V
-PLcom/android/server/UiModeManagerService;->onStart()V
-PLcom/android/server/UiModeManagerService;->registerVrStateListener()V
-PLcom/android/server/UiModeManagerService;->sendConfigurationAndStartDreamOrDockAppLocked(Ljava/lang/String;)V
-PLcom/android/server/UiModeManagerService;->sendConfigurationLocked()V
-PLcom/android/server/UiModeManagerService;->setupWizardCompleteForCurrentUser()Z
-PLcom/android/server/UiModeManagerService;->updateComputedNightModeLocked()V
-PLcom/android/server/UiModeManagerService;->updateConfigurationLocked()V
-PLcom/android/server/UiModeManagerService;->updateLocked(II)V
-PLcom/android/server/UiModeManagerService;->updateNightModeFromSettings(Landroid/content/Context;Landroid/content/res/Resources;I)Z
-PLcom/android/server/UiModeManagerService;->verifySetupWizardCompleted()V
+HSPLcom/android/server/UiModeManagerService;->applyConfigurationExternallyLocked()V
+PLcom/android/server/UiModeManagerService;->dumpImpl(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/UiModeManagerService;->isDeskDockState(I)Z
+HSPLcom/android/server/UiModeManagerService;->lambda$onStart$1$UiModeManagerService()V
+HSPLcom/android/server/UiModeManagerService;->onBootPhase(I)V
+HSPLcom/android/server/UiModeManagerService;->onStart()V
+HSPLcom/android/server/UiModeManagerService;->registerVrStateListener()V
+HSPLcom/android/server/UiModeManagerService;->sendConfigurationAndStartDreamOrDockAppLocked(Ljava/lang/String;)V
+HSPLcom/android/server/UiModeManagerService;->setupWizardCompleteForCurrentUser()Z
+HSPLcom/android/server/UiModeManagerService;->updateComputedNightModeLocked()V
+HSPLcom/android/server/UiModeManagerService;->updateConfigurationLocked()V
+HSPLcom/android/server/UiModeManagerService;->updateLocked(II)V
+HSPLcom/android/server/UiModeManagerService;->updateNightModeFromSettings(Landroid/content/Context;Landroid/content/res/Resources;I)Z
+HSPLcom/android/server/UiModeManagerService;->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;-><init>(Landroid/content/Context;)V
-PLcom/android/server/UpdateLockService;->sendLockChangedBroadcast(Z)V
-PLcom/android/server/VibratorService$1;-><init>(Lcom/android/server/VibratorService;)V
-PLcom/android/server/VibratorService$1;->onUidGone(IZ)V
-HPLcom/android/server/VibratorService$1;->onUidStateChanged(IIJI)V
-PLcom/android/server/VibratorService$2;-><init>(Lcom/android/server/VibratorService;)V
-PLcom/android/server/VibratorService$3;-><init>(Lcom/android/server/VibratorService;)V
+HSPLcom/android/server/UpdateLockService$LockWatcher;-><init>(Lcom/android/server/UpdateLockService;Landroid/os/Handler;Ljava/lang/String;)V
+HSPLcom/android/server/UpdateLockService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/UpdateLockService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/UpdateLockService;->sendLockChangedBroadcast(Z)V
+HSPLcom/android/server/VibratorService$1;-><init>(Lcom/android/server/VibratorService;)V
+HSPLcom/android/server/VibratorService$1;->onUidGone(IZ)V
+HSPLcom/android/server/VibratorService$1;->onUidStateChanged(IIJI)V
+HSPLcom/android/server/VibratorService$2;-><init>(Lcom/android/server/VibratorService;)V
+HSPLcom/android/server/VibratorService$3;-><init>(Lcom/android/server/VibratorService;)V
PLcom/android/server/VibratorService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/VibratorService$4;-><init>(Lcom/android/server/VibratorService;)V
+HSPLcom/android/server/VibratorService$4;-><init>(Lcom/android/server/VibratorService;)V
PLcom/android/server/VibratorService$4;->run()V
-PLcom/android/server/VibratorService$5;-><init>(Lcom/android/server/VibratorService;)V
+HSPLcom/android/server/VibratorService$5;-><init>(Lcom/android/server/VibratorService;)V
PLcom/android/server/VibratorService$5;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/VibratorService$ExternalVibratorService;-><init>(Lcom/android/server/VibratorService;)V
-PLcom/android/server/VibratorService$ScaleLevel;-><init>(F)V
-PLcom/android/server/VibratorService$ScaleLevel;-><init>(FI)V
-PLcom/android/server/VibratorService$SettingsObserver;-><init>(Lcom/android/server/VibratorService;Landroid/os/Handler;)V
+HSPLcom/android/server/VibratorService$ExternalVibratorService;-><init>(Lcom/android/server/VibratorService;)V
+HSPLcom/android/server/VibratorService$ScaleLevel;-><init>(F)V
+HSPLcom/android/server/VibratorService$ScaleLevel;-><init>(FI)V
+HSPLcom/android/server/VibratorService$SettingsObserver;-><init>(Lcom/android/server/VibratorService;Landroid/os/Handler;)V
PLcom/android/server/VibratorService$VibrateThread;-><init>(Lcom/android/server/VibratorService;Landroid/os/VibrationEffect$Waveform;ILandroid/media/AudioAttributes;)V
PLcom/android/server/VibratorService$VibrateThread;->cancel()V
PLcom/android/server/VibratorService$VibrateThread;->delayLocked(J)J
@@ -2513,45 +2773,76 @@ PLcom/android/server/VibratorService$VibrateThread;->getTotalOnDuration([J[III)J
PLcom/android/server/VibratorService$VibrateThread;->playWaveform()Z
PLcom/android/server/VibratorService$VibrateThread;->run()V
PLcom/android/server/VibratorService$Vibration;-><init>(Lcom/android/server/VibratorService;Landroid/os/IBinder;Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/VibratorService$Vibration;-><init>(Lcom/android/server/VibratorService;Landroid/os/IBinder;Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;ILjava/lang/String;Ljava/lang/String;Lcom/android/server/VibratorService$1;)V
+PLcom/android/server/VibratorService$Vibration;->isAlarm()Z
PLcom/android/server/VibratorService$Vibration;->isHapticFeedback()Z
+PLcom/android/server/VibratorService$Vibration;->isNotification()Z
+PLcom/android/server/VibratorService$Vibration;->isRingtone()Z
+PLcom/android/server/VibratorService$Vibration;->onComplete()V
+PLcom/android/server/VibratorService$Vibration;->toInfo()Lcom/android/server/VibratorService$VibrationInfo;
PLcom/android/server/VibratorService$VibrationInfo;-><init>(JLandroid/os/VibrationEffect;Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;ILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/VibratorService;-><clinit>()V
-PLcom/android/server/VibratorService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/VibratorService;->access$000(Lcom/android/server/VibratorService;)Landroid/util/SparseArray;
+PLcom/android/server/VibratorService$VibrationInfo;->toString()Ljava/lang/String;
+PLcom/android/server/VibratorService$VibratorShellCommand$CommonOptions;-><init>(Lcom/android/server/VibratorService$VibratorShellCommand;)V
+PLcom/android/server/VibratorService$VibratorShellCommand$CommonOptions;-><init>(Lcom/android/server/VibratorService$VibratorShellCommand;Lcom/android/server/VibratorService$1;)V
+PLcom/android/server/VibratorService$VibratorShellCommand$CommonOptions;->check(Ljava/lang/String;)V
+PLcom/android/server/VibratorService$VibratorShellCommand;-><init>(Lcom/android/server/VibratorService;Landroid/os/IBinder;)V
+PLcom/android/server/VibratorService$VibratorShellCommand;-><init>(Lcom/android/server/VibratorService;Landroid/os/IBinder;Lcom/android/server/VibratorService$1;)V
+PLcom/android/server/VibratorService$VibratorShellCommand;->checkDoNotDisturb(Lcom/android/server/VibratorService$VibratorShellCommand$CommonOptions;)Z
+PLcom/android/server/VibratorService$VibratorShellCommand;->createAudioAttributes(Lcom/android/server/VibratorService$VibratorShellCommand$CommonOptions;)Landroid/media/AudioAttributes;
+PLcom/android/server/VibratorService$VibratorShellCommand;->onCommand(Ljava/lang/String;)I
+PLcom/android/server/VibratorService$VibratorShellCommand;->runVibrate()I
+HSPLcom/android/server/VibratorService;-><clinit>()V
+HSPLcom/android/server/VibratorService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/VibratorService;->access$000(Lcom/android/server/VibratorService;)Landroid/util/SparseArray;
PLcom/android/server/VibratorService;->access$100(Lcom/android/server/VibratorService;)Ljava/lang/Object;
PLcom/android/server/VibratorService;->access$1000(Lcom/android/server/VibratorService;)Landroid/os/WorkSource;
PLcom/android/server/VibratorService;->access$1100(Lcom/android/server/VibratorService;)Landroid/os/PowerManager$WakeLock;
PLcom/android/server/VibratorService;->access$200(Lcom/android/server/VibratorService;)Lcom/android/server/VibratorService$Vibration;
+PLcom/android/server/VibratorService;->access$300(Lcom/android/server/VibratorService;)V
+PLcom/android/server/VibratorService;->access$400(I)Z
+PLcom/android/server/VibratorService;->access$500(I)Z
+PLcom/android/server/VibratorService;->access$600(I)Z
+PLcom/android/server/VibratorService;->access$700(I)Z
PLcom/android/server/VibratorService;->access$800(Lcom/android/server/VibratorService;)V
PLcom/android/server/VibratorService;->addToPreviousVibrationsLocked(Lcom/android/server/VibratorService$Vibration;)V
PLcom/android/server/VibratorService;->applyVibrationIntensityScalingLocked(Lcom/android/server/VibratorService$Vibration;I)V
PLcom/android/server/VibratorService;->cancelVibrate(Landroid/os/IBinder;)V
-PLcom/android/server/VibratorService;->createEffectFromResource(I)Landroid/os/VibrationEffect;
-PLcom/android/server/VibratorService;->createEffectFromTimings([J)Landroid/os/VibrationEffect;
+HSPLcom/android/server/VibratorService;->createEffectFromResource(I)Landroid/os/VibrationEffect;
+HSPLcom/android/server/VibratorService;->createEffectFromTimings([J)Landroid/os/VibrationEffect;
PLcom/android/server/VibratorService;->doCancelVibrateLocked()V
-PLcom/android/server/VibratorService;->doVibratorExists()Z
+HSPLcom/android/server/VibratorService;->doVibratorExists()Z
PLcom/android/server/VibratorService;->doVibratorOff()V
-PLcom/android/server/VibratorService;->doVibratorOn(JIILandroid/media/AudioAttributes;)V
+HPLcom/android/server/VibratorService;->doVibratorOn(JIILandroid/media/AudioAttributes;)V
PLcom/android/server/VibratorService;->doVibratorPrebakedEffectLocked(Lcom/android/server/VibratorService$Vibration;)J
PLcom/android/server/VibratorService;->doVibratorSetAmplitude(I)V
+PLcom/android/server/VibratorService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/VibratorService;->getAppOpMode(Lcom/android/server/VibratorService$Vibration;)I
PLcom/android/server/VibratorService;->getCurrentIntensityLocked(Lcom/android/server/VibratorService$Vibration;)I
-PLcom/android/server/VibratorService;->getLongIntArray(Landroid/content/res/Resources;I)[J
-PLcom/android/server/VibratorService;->hasVibrator()Z
+HSPLcom/android/server/VibratorService;->getLongIntArray(Landroid/content/res/Resources;I)[J
+PLcom/android/server/VibratorService;->hasPermission(Ljava/lang/String;)Z
+HSPLcom/android/server/VibratorService;->hasVibrator()Z
PLcom/android/server/VibratorService;->intensityToEffectStrength(I)I
+PLcom/android/server/VibratorService;->isAlarm(I)Z
PLcom/android/server/VibratorService;->isAllowedToVibrateLocked(Lcom/android/server/VibratorService$Vibration;)Z
+PLcom/android/server/VibratorService;->isHapticFeedback(I)Z
+PLcom/android/server/VibratorService;->isNotification(I)Z
+PLcom/android/server/VibratorService;->isRepeatingVibration(Landroid/os/VibrationEffect;)Z
+PLcom/android/server/VibratorService;->isRingtone(I)Z
PLcom/android/server/VibratorService;->linkVibration(Lcom/android/server/VibratorService$Vibration;)V
PLcom/android/server/VibratorService;->noteVibratorOffLocked()V
PLcom/android/server/VibratorService;->noteVibratorOnLocked(IJ)V
+PLcom/android/server/VibratorService;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
PLcom/android/server/VibratorService;->onVibrationFinished()V
PLcom/android/server/VibratorService;->reportFinishVibrationLocked()V
+PLcom/android/server/VibratorService;->shouldBypassDnd(Landroid/media/AudioAttributes;)Z
PLcom/android/server/VibratorService;->startVibrationInnerLocked(Lcom/android/server/VibratorService$Vibration;)V
PLcom/android/server/VibratorService;->startVibrationLocked(Lcom/android/server/VibratorService$Vibration;)V
-PLcom/android/server/VibratorService;->systemReady()V
-PLcom/android/server/VibratorService;->updateInputDeviceVibratorsLocked()Z
-PLcom/android/server/VibratorService;->updateLowPowerModeLocked()Z
-PLcom/android/server/VibratorService;->updateVibrationIntensityLocked()V
-PLcom/android/server/VibratorService;->updateVibrators()V
+HSPLcom/android/server/VibratorService;->systemReady()V
+PLcom/android/server/VibratorService;->unlinkVibration(Lcom/android/server/VibratorService$Vibration;)V
+HSPLcom/android/server/VibratorService;->updateInputDeviceVibratorsLocked()Z
+HSPLcom/android/server/VibratorService;->updateLowPowerModeLocked()Z
+HSPLcom/android/server/VibratorService;->updateVibrationIntensityLocked()V
+HSPLcom/android/server/VibratorService;->updateVibrators()V
PLcom/android/server/VibratorService;->verifyIncomingUid(I)V
PLcom/android/server/VibratorService;->verifyVibrationEffect(Landroid/os/VibrationEffect;)Z
PLcom/android/server/VibratorService;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;Ljava/lang/String;Landroid/os/IBinder;)V
@@ -2560,16 +2851,16 @@ HSPLcom/android/server/Watchdog$BinderThreadMonitor;-><init>(Lcom/android/server
HSPLcom/android/server/Watchdog$BinderThreadMonitor;->monitor()V
HSPLcom/android/server/Watchdog$HandlerChecker;-><init>(Lcom/android/server/Watchdog;Landroid/os/Handler;Ljava/lang/String;J)V
HSPLcom/android/server/Watchdog$HandlerChecker;->addMonitorLocked(Lcom/android/server/Watchdog$Monitor;)V
-PLcom/android/server/Watchdog$HandlerChecker;->getCompletionStateLocked()I
+HPLcom/android/server/Watchdog$HandlerChecker;->getCompletionStateLocked()I
HSPLcom/android/server/Watchdog$HandlerChecker;->getThread()Ljava/lang/Thread;
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;->resumeLocked(Ljava/lang/String;)V
HSPLcom/android/server/Watchdog$HandlerChecker;->run()V
HSPLcom/android/server/Watchdog$HandlerChecker;->scheduleCheckLocked()V
HSPLcom/android/server/Watchdog$OpenFdMonitor;-><init>(Ljava/io/File;Ljava/io/File;)V
HSPLcom/android/server/Watchdog$OpenFdMonitor;->create()Lcom/android/server/Watchdog$OpenFdMonitor;
-PLcom/android/server/Watchdog$OpenFdMonitor;->monitor()Z
-PLcom/android/server/Watchdog$RebootRequestReceiver;-><init>(Lcom/android/server/Watchdog;)V
+HPLcom/android/server/Watchdog$OpenFdMonitor;->monitor()Z
+HSPLcom/android/server/Watchdog$RebootRequestReceiver;-><init>(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
@@ -2577,34 +2868,34 @@ HSPLcom/android/server/Watchdog;->addThread(Landroid/os/Handler;)V
HSPLcom/android/server/Watchdog;->addThread(Landroid/os/Handler;J)V
HPLcom/android/server/Watchdog;->evaluateCheckerCompletionLocked()I
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;->getInterestingHalPids()Ljava/util/ArrayList;
+PLcom/android/server/Watchdog;->getInterestingNativePids()Ljava/util/ArrayList;
+HSPLcom/android/server/Watchdog;->init(Landroid/content/Context;Lcom/android/server/am/ActivityManagerService;)V
HSPLcom/android/server/Watchdog;->pauseWatchingCurrentThread(Ljava/lang/String;)V
-PLcom/android/server/Watchdog;->processStarted(Ljava/lang/String;I)V
-PLcom/android/server/Watchdog;->resumeWatchingCurrentThread(Ljava/lang/String;)V
+HSPLcom/android/server/Watchdog;->processStarted(Ljava/lang/String;I)V
+HSPLcom/android/server/Watchdog;->resumeWatchingCurrentThread(Ljava/lang/String;)V
HSPLcom/android/server/Watchdog;->run()V
-PLcom/android/server/WiredAccessoryManager$1;-><init>(Lcom/android/server/WiredAccessoryManager;Landroid/os/Looper;Landroid/os/Handler$Callback;Z)V
+HSPLcom/android/server/WiredAccessoryManager$1;-><init>(Lcom/android/server/WiredAccessoryManager;Landroid/os/Looper;Landroid/os/Handler$Callback;Z)V
PLcom/android/server/WiredAccessoryManager$1;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/WiredAccessoryManager$WiredAccessoryExtconObserver;-><init>(Lcom/android/server/WiredAccessoryManager;)V
+HSPLcom/android/server/WiredAccessoryManager$WiredAccessoryExtconObserver;-><init>(Lcom/android/server/WiredAccessoryManager;)V
PLcom/android/server/WiredAccessoryManager$WiredAccessoryExtconObserver;->access$000(Lcom/android/server/WiredAccessoryManager$WiredAccessoryExtconObserver;)V
PLcom/android/server/WiredAccessoryManager$WiredAccessoryExtconObserver;->init()V
-PLcom/android/server/WiredAccessoryManager$WiredAccessoryObserver$UEventInfo;-><init>(Lcom/android/server/WiredAccessoryManager$WiredAccessoryObserver;Ljava/lang/String;III)V
-PLcom/android/server/WiredAccessoryManager$WiredAccessoryObserver$UEventInfo;->checkSwitchExists()Z
-PLcom/android/server/WiredAccessoryManager$WiredAccessoryObserver$UEventInfo;->getSwitchStatePath()Ljava/lang/String;
-PLcom/android/server/WiredAccessoryManager$WiredAccessoryObserver;-><init>(Lcom/android/server/WiredAccessoryManager;)V
-PLcom/android/server/WiredAccessoryManager$WiredAccessoryObserver;->makeObservedUEventList()Ljava/util/List;
-PLcom/android/server/WiredAccessoryManager;-><clinit>()V
-PLcom/android/server/WiredAccessoryManager;-><init>(Landroid/content/Context;Lcom/android/server/input/InputManagerService;)V
+HSPLcom/android/server/WiredAccessoryManager$WiredAccessoryObserver$UEventInfo;-><init>(Lcom/android/server/WiredAccessoryManager$WiredAccessoryObserver;Ljava/lang/String;III)V
+HSPLcom/android/server/WiredAccessoryManager$WiredAccessoryObserver$UEventInfo;->checkSwitchExists()Z
+HSPLcom/android/server/WiredAccessoryManager$WiredAccessoryObserver$UEventInfo;->getSwitchStatePath()Ljava/lang/String;
+HSPLcom/android/server/WiredAccessoryManager$WiredAccessoryObserver;-><init>(Lcom/android/server/WiredAccessoryManager;)V
+HSPLcom/android/server/WiredAccessoryManager$WiredAccessoryObserver;->makeObservedUEventList()Ljava/util/List;
+HSPLcom/android/server/WiredAccessoryManager;-><clinit>()V
+HSPLcom/android/server/WiredAccessoryManager;-><init>(Landroid/content/Context;Lcom/android/server/input/InputManagerService;)V
PLcom/android/server/WiredAccessoryManager;->access$200(Lcom/android/server/WiredAccessoryManager;)Landroid/os/PowerManager$WakeLock;
PLcom/android/server/WiredAccessoryManager;->access$300(Lcom/android/server/WiredAccessoryManager;)V
-PLcom/android/server/WiredAccessoryManager;->access$500()Ljava/lang/String;
-PLcom/android/server/WiredAccessoryManager;->access$600(Lcom/android/server/WiredAccessoryManager;)Z
-PLcom/android/server/WiredAccessoryManager;->notifyWiredAccessoryChanged(JII)V
+HSPLcom/android/server/WiredAccessoryManager;->access$500()Ljava/lang/String;
+HSPLcom/android/server/WiredAccessoryManager;->access$600(Lcom/android/server/WiredAccessoryManager;)Z
PLcom/android/server/WiredAccessoryManager;->onSystemReady()V
PLcom/android/server/WiredAccessoryManager;->systemReady()V
-PLcom/android/server/WiredAccessoryManager;->updateLocked(Ljava/lang/String;I)V
PLcom/android/server/ZramWriteback$1;-><init>(Lcom/android/server/ZramWriteback;Ljava/lang/String;Landroid/app/job/JobParameters;)V
PLcom/android/server/ZramWriteback$1;->run()V
-PLcom/android/server/ZramWriteback;-><clinit>()V
+HSPLcom/android/server/ZramWriteback;-><clinit>()V
PLcom/android/server/ZramWriteback;-><init>()V
PLcom/android/server/ZramWriteback;->flushIdlePages()V
PLcom/android/server/ZramWriteback;->getWrittenPageCount()I
@@ -2614,22 +2905,28 @@ PLcom/android/server/ZramWriteback;->markPagesAsIdle()V
PLcom/android/server/ZramWriteback;->onStartJob(Landroid/app/job/JobParameters;)Z
PLcom/android/server/ZramWriteback;->onStopJob(Landroid/app/job/JobParameters;)Z
PLcom/android/server/ZramWriteback;->schedNextWriteback(Landroid/content/Context;)V
-PLcom/android/server/ZramWriteback;->scheduleZramWriteback(Landroid/content/Context;)V
+HSPLcom/android/server/ZramWriteback;->scheduleZramWriteback(Landroid/content/Context;)V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$1$49HMbWlhAK8DBFFzhu5wH_-EQaM;-><init>(Ljava/lang/String;)V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$1$J4pGG-UiTxhxH1VLNWBa7KLTh48;-><init>(Ljava/lang/String;)V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4A2E7YnYuU3-mDj4eBvmxi8PEpA;-><clinit>()V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4A2E7YnYuU3-mDj4eBvmxi8PEpA;-><init>()V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4X8DTUSf9fNVgqvhoZcnlny0VlE;-><init>(Lcom/android/server/accessibility/AccessibilityUserState;)V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$4X8DTUSf9fNVgqvhoZcnlny0VlE;->test(Ljava/lang/Object;)Z
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$5vwr6qV-eqdCr73CeDmVnsJlZHM;-><clinit>()V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$5vwr6qV-eqdCr73CeDmVnsJlZHM;-><init>()V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$5vwr6qV-eqdCr73CeDmVnsJlZHM;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$Gu-W_dQ2mWyy8l4tm19TzFxGbeM;-><clinit>()V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$Gu-W_dQ2mWyy8l4tm19TzFxGbeM;-><init>()V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$Gu-W_dQ2mWyy8l4tm19TzFxGbeM;->accept(Ljava/lang/Object;)V
-PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$K4sS36agT2_B03tVUTy8mldugxY;-><init>(I)V
-PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$K4sS36agT2_B03tVUTy8mldugxY;->acceptOrThrow(Ljava/lang/Object;)V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$LBcFUTzQoOf533NwD2ZIwFqFJYg;-><clinit>()V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$LBcFUTzQoOf533NwD2ZIwFqFJYg;-><init>()V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$NCeV24lEcO5W6ZZr1GqGK-ylU9g;-><clinit>()V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$NCeV24lEcO5W6ZZr1GqGK-ylU9g;-><init>()V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$NCeV24lEcO5W6ZZr1GqGK-ylU9g;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$_rvRsbhZRBJitXrpMqI0NptLUa8;-><init>(J)V
-PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$_rvRsbhZRBJitXrpMqI0NptLUa8;->acceptOrThrow(Ljava/lang/Object;)V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$PPQodQ1oFD7RLj5c4axXJBoCbR8;-><init>(J)V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$PPQodQ1oFD7RLj5c4axXJBoCbR8;->acceptOrThrow(Ljava/lang/Object;)V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$he8-7PL6YxfY9L7x0CLg6DATNxg;-><clinit>()V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$he8-7PL6YxfY9L7x0CLg6DATNxg;-><init>()V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$heq1MRdQjg8BGWFbpV3PEpnDVcg;-><clinit>()V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$heq1MRdQjg8BGWFbpV3PEpnDVcg;-><init>()V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$heq1MRdQjg8BGWFbpV3PEpnDVcg;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
@@ -2640,76 +2937,85 @@ PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$luI_C3Q
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$luI_C3QiJWsM08i8m3lx484SyyY;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$mu7O1RAujG8e8HXPylcZ6hd_kNU;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$mu7O1RAujG8e8HXPylcZ6hd_kNU;->run()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/-$$Lambda$AccessibilityManagerService$vOsKAMFlSRp8W9N5pJiqJ7ToRQA;-><init>(I)V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$vOsKAMFlSRp8W9N5pJiqJ7ToRQA;->acceptOrThrow(Ljava/lang/Object;)V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$zXJtauhUptSkQJSF-M55-grAVbo;-><clinit>()V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$zXJtauhUptSkQJSF-M55-grAVbo;-><init>()V
+PLcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$zXJtauhUptSkQJSF-M55-grAVbo;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService$1;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
PLcom/android/server/accessibility/AccessibilityManagerService$1;->onPackageUpdateFinished(Ljava/lang/String;I)V
PLcom/android/server/accessibility/AccessibilityManagerService$1;->onSomePackagesChanged()V
-PLcom/android/server/accessibility/AccessibilityManagerService$2;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService$2;-><init>(Lcom/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;Lcom/android/server/accessibility/AccessibilityManagerService$MainHandler;)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityContentObserver;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityContentObserver;->register(Landroid/content/ContentResolver;)V
+HSPLcom/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;->getValidDisplayList()Ljava/util/ArrayList;
-PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->initializeDisplayList()V
-PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->isValidDisplay(Landroid/view/Display;)Z
+HSPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->initializeDisplayList()V
+HSPLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->isValidDisplay(Landroid/view/Display;)Z
PLcom/android/server/accessibility/AccessibilityManagerService$AccessibilityDisplayListener;->onDisplayChanged(I)V
-PLcom/android/server/accessibility/AccessibilityManagerService$Client;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/view/accessibility/IAccessibilityManagerClient;ILcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService$Client;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/view/accessibility/IAccessibilityManagerClient;ILcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$1;)V
-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$MainHandler;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/os/Looper;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;-><clinit>()V
-PLcom/android/server/accessibility/AccessibilityManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->access$000(Lcom/android/server/accessibility/AccessibilityManagerService;I)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->access$100(Lcom/android/server/accessibility/AccessibilityManagerService;)Ljava/lang/Object;
-PLcom/android/server/accessibility/AccessibilityManagerService;->access$2400(Lcom/android/server/accessibility/AccessibilityManagerService;)Landroid/content/pm/PackageManager;
-PLcom/android/server/accessibility/AccessibilityManagerService;->access$2500(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)I
+HSPLcom/android/server/accessibility/AccessibilityManagerService$Client;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/view/accessibility/IAccessibilityManagerClient;ILcom/android/server/accessibility/AccessibilityUserState;)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService$Client;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/view/accessibility/IAccessibilityManagerClient;ILcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$1;)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService$Lifecycle;->onStart()V
+HSPLcom/android/server/accessibility/AccessibilityManagerService$MainHandler;-><init>(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/os/Looper;)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService;-><clinit>()V
+HSPLcom/android/server/accessibility/AccessibilityManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$000(Lcom/android/server/accessibility/AccessibilityManagerService;I)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$100(Lcom/android/server/accessibility/AccessibilityManagerService;)Ljava/lang/Object;
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$2400(Lcom/android/server/accessibility/AccessibilityManagerService;)Landroid/content/pm/PackageManager;
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->access$2500(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)I
PLcom/android/server/accessibility/AccessibilityManagerService;->access$700(Lcom/android/server/accessibility/AccessibilityManagerService;I)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->addClient(Landroid/view/accessibility/IAccessibilityManagerClient;I)J
+PLcom/android/server/accessibility/AccessibilityManagerService;->access$800(Lcom/android/server/accessibility/AccessibilityManagerService;I)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->addClient(Landroid/view/accessibility/IAccessibilityManagerClient;I)J
PLcom/android/server/accessibility/AccessibilityManagerService;->announceNewUserIfNeeded()V
PLcom/android/server/accessibility/AccessibilityManagerService;->broadcastToClients(Lcom/android/server/accessibility/AccessibilityUserState;Ljava/util/function/Consumer;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->computeRelevantEventTypesLocked(Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)I
-PLcom/android/server/accessibility/AccessibilityManagerService;->getClientStateLocked(Lcom/android/server/accessibility/AccessibilityUserState;)I
-PLcom/android/server/accessibility/AccessibilityManagerService;->getCurrentUserIdLocked()I
-PLcom/android/server/accessibility/AccessibilityManagerService;->getCurrentUserStateLocked()Lcom/android/server/accessibility/AccessibilityUserState;
-PLcom/android/server/accessibility/AccessibilityManagerService;->getEnabledAccessibilityServiceList(II)Ljava/util/List;
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->computeRelevantEventTypesLocked(Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)I
+PLcom/android/server/accessibility/AccessibilityManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->getClientStateLocked(Lcom/android/server/accessibility/AccessibilityUserState;)I
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->getCurrentUserIdLocked()I
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->getCurrentUserStateLocked()Lcom/android/server/accessibility/AccessibilityUserState;
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->getEnabledAccessibilityServiceList(II)Ljava/util/List;
PLcom/android/server/accessibility/AccessibilityManagerService;->getInstalledAccessibilityServiceList(I)Ljava/util/List;
-PLcom/android/server/accessibility/AccessibilityManagerService;->getRecommendedTimeoutMillis()J
-PLcom/android/server/accessibility/AccessibilityManagerService;->getRecommendedTimeoutMillisLocked(Lcom/android/server/accessibility/AccessibilityUserState;)J
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->getRecommendedTimeoutMillis()J
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->getRecommendedTimeoutMillisLocked(Lcom/android/server/accessibility/AccessibilityUserState;)J
PLcom/android/server/accessibility/AccessibilityManagerService;->getUserState(I)Lcom/android/server/accessibility/AccessibilityUserState;
-PLcom/android/server/accessibility/AccessibilityManagerService;->getUserStateLocked(I)Lcom/android/server/accessibility/AccessibilityUserState;
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->getUserStateLocked(I)Lcom/android/server/accessibility/AccessibilityUserState;
PLcom/android/server/accessibility/AccessibilityManagerService;->getValidDisplayList()Ljava/util/ArrayList;
-PLcom/android/server/accessibility/AccessibilityManagerService;->isClientInPackageWhitelist(Landroid/accessibilityservice/AccessibilityServiceInfo;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)Z
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->isClientInPackageWhitelist(Landroid/accessibilityservice/AccessibilityServiceInfo;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)Z
PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$5vwr6qV-eqdCr73CeDmVnsJlZHM(Lcom/android/server/accessibility/AccessibilityManagerService;II)V
PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$Gu-W_dQ2mWyy8l4tm19TzFxGbeM(Lcom/android/server/accessibility/AccessibilityManagerService;)V
PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$NCeV24lEcO5W6ZZr1GqGK-ylU9g(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$heq1MRdQjg8BGWFbpV3PEpnDVcg(Lcom/android/server/accessibility/AccessibilityManagerService;Landroid/os/RemoteCallbackList;J)V
PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$luI_C3QiJWsM08i8m3lx484SyyY(Lcom/android/server/accessibility/AccessibilityManagerService;Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$notifyClientsOfServicesStateChange$3(JLandroid/view/accessibility/IAccessibilityManagerClient;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$sendStateToClients$2(ILandroid/view/accessibility/IAccessibilityManagerClient;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$notifyClientsOfServicesStateChange$6(JLandroid/view/accessibility/IAccessibilityManagerClient;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$sendStateToClients$5(ILandroid/view/accessibility/IAccessibilityManagerClient;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$updateAccessibilityShortcutKeyTargetsLocked$9(Lcom/android/server/accessibility/AccessibilityUserState;Ljava/lang/String;)Z
HPLcom/android/server/accessibility/AccessibilityManagerService;->lambda$updateRelevantEventsLocked$0$AccessibilityManagerService(Lcom/android/server/accessibility/AccessibilityUserState;Lcom/android/server/accessibility/AccessibilityManagerService$Client;)V
PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$updateRelevantEventsLocked$1$AccessibilityManagerService(Lcom/android/server/accessibility/AccessibilityUserState;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->lambda$zXJtauhUptSkQJSF-M55-grAVbo(Lcom/android/server/accessibility/AccessibilityManagerService;II)V
PLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonVisibilityChanged(Z)V
PLcom/android/server/accessibility/AccessibilityManagerService;->notifyAccessibilityButtonVisibilityChangedLocked(Z)V
PLcom/android/server/accessibility/AccessibilityManagerService;->notifyClientsOfServicesStateChange(Landroid/os/RemoteCallbackList;J)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->onBootPhase(I)V
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->onBootPhase(I)V
PLcom/android/server/accessibility/AccessibilityManagerService;->onUserStateChangedLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->readAccessibilityButtonSettingsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readAccessibilityShortcutSettingLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
+HPLcom/android/server/accessibility/AccessibilityManagerService;->readAccessibilityButtonSettingsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
+HPLcom/android/server/accessibility/AccessibilityManagerService;->readAccessibilityShortcutKeySettingLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
PLcom/android/server/accessibility/AccessibilityManagerService;->readAutoclickEnabledSettingLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
-HPLcom/android/server/accessibility/AccessibilityManagerService;->readComponentNamesFromSettingLocked(Ljava/lang/String;ILjava/util/Set;)V
-PLcom/android/server/accessibility/AccessibilityManagerService;->readComponentNamesFromStringLocked(Ljava/lang/String;Ljava/util/Set;Z)V
+HPLcom/android/server/accessibility/AccessibilityManagerService;->readColonDelimitedSettingToSet(Ljava/lang/String;ILjava/util/Set;Ljava/util/function/Function;)V
+HPLcom/android/server/accessibility/AccessibilityManagerService;->readColonDelimitedStringToSet(Ljava/lang/String;Ljava/util/Set;ZLjava/util/function/Function;)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;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readEnabledAccessibilityServicesLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
+HPLcom/android/server/accessibility/AccessibilityManagerService;->readEnabledAccessibilityServicesLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
PLcom/android/server/accessibility/AccessibilityManagerService;->readHighTextContrastEnabledSettingLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
HPLcom/android/server/accessibility/AccessibilityManagerService;->readInstalledAccessibilityServiceLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
PLcom/android/server/accessibility/AccessibilityManagerService;->readInstalledAccessibilityShortcutLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
-PLcom/android/server/accessibility/AccessibilityManagerService;->readMagnificationEnabledSettingsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
+HPLcom/android/server/accessibility/AccessibilityManagerService;->readMagnificationEnabledSettingsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
PLcom/android/server/accessibility/AccessibilityManagerService;->readTouchExplorationEnabledSettingLocked(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
+HPLcom/android/server/accessibility/AccessibilityManagerService;->readTouchExplorationGrantedAccessibilityServicesLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
+HPLcom/android/server/accessibility/AccessibilityManagerService;->readUserRecommendedUiTimeoutSettingsLocked(Lcom/android/server/accessibility/AccessibilityUserState;)Z
+HSPLcom/android/server/accessibility/AccessibilityManagerService;->registerBroadcastReceivers()V
PLcom/android/server/accessibility/AccessibilityManagerService;->scheduleNotifyClientsOfServicesStateChangeLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
PLcom/android/server/accessibility/AccessibilityManagerService;->scheduleUpdateClientsIfNeededLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
PLcom/android/server/accessibility/AccessibilityManagerService;->scheduleUpdateFingerprintGestureHandling(Lcom/android/server/accessibility/AccessibilityUserState;)V
@@ -2723,12 +3029,12 @@ 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
-HPLcom/android/server/accessibility/AccessibilityManagerService;->updateAccessibilityShortcutLocked(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;->updateInputFilter(Lcom/android/server/accessibility/AccessibilityUserState;)V
HPLcom/android/server/accessibility/AccessibilityManagerService;->updateLegacyCapabilitiesLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
-HPLcom/android/server/accessibility/AccessibilityManagerService;->updateMagnificationLocked(Lcom/android/server/accessibility/AccessibilityUserState;)V
+PLcom/android/server/accessibility/AccessibilityManagerService;->updateMagnificationLocked(Lcom/android/server/accessibility/AccessibilityUserState;)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
@@ -2737,36 +3043,38 @@ PLcom/android/server/accessibility/AccessibilityManagerService;->updateTouchExpl
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/AccessibilitySecurityPolicy;-><clinit>()V
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilitySecurityPolicy$AccessibilityUserManager;)V
+HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;-><clinit>()V
+HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;-><init>(Landroid/content/Context;Lcom/android/server/accessibility/AccessibilitySecurityPolicy$AccessibilityUserManager;)V
HPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->canRegisterService(Landroid/content/pm/ServiceInfo;)Z
PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->hasPermission(Ljava/lang/String;)Z
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isCallerInteractingAcrossUsers(I)Z
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->resolveCallingUserIdEnforcingPermissionsLocked(I)I
+HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->isCallerInteractingAcrossUsers(I)Z
+HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->resolveCallingUserIdEnforcingPermissionsLocked(I)I
PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->resolveProfileParentLocked(I)I
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->setAccessibilityWindowManager(Lcom/android/server/accessibility/AccessibilityWindowManager;)V
-PLcom/android/server/accessibility/AccessibilitySecurityPolicy;->setAppWidgetManager(Landroid/appwidget/AppWidgetManagerInternal;)V
-PLcom/android/server/accessibility/AccessibilityUserState;-><clinit>()V
-PLcom/android/server/accessibility/AccessibilityUserState;-><init>(ILandroid/content/Context;Lcom/android/server/accessibility/AccessibilityUserState$ServiceInfoChangeListener;)V
+HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->setAccessibilityWindowManager(Lcom/android/server/accessibility/AccessibilityWindowManager;)V
+HSPLcom/android/server/accessibility/AccessibilitySecurityPolicy;->setAppWidgetManager(Landroid/appwidget/AppWidgetManagerInternal;)V
+HSPLcom/android/server/accessibility/AccessibilityUserState;-><clinit>()V
+HSPLcom/android/server/accessibility/AccessibilityUserState;-><init>(ILandroid/content/Context;Lcom/android/server/accessibility/AccessibilityUserState$ServiceInfoChangeListener;)V
+PLcom/android/server/accessibility/AccessibilityUserState;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/accessibility/AccessibilityUserState;->getBindInstantServiceAllowedLocked()Z
PLcom/android/server/accessibility/AccessibilityUserState;->getBindingServicesLocked()Ljava/util/Set;
-PLcom/android/server/accessibility/AccessibilityUserState;->getClientStateLocked(Z)I
+HSPLcom/android/server/accessibility/AccessibilityUserState;->getClientStateLocked(Z)I
PLcom/android/server/accessibility/AccessibilityUserState;->getCrashedServicesLocked()Ljava/util/Set;
-PLcom/android/server/accessibility/AccessibilityUserState;->getInteractiveUiTimeoutLocked()I
+HPLcom/android/server/accessibility/AccessibilityUserState;->getInstalledServiceInfoLocked(Landroid/content/ComponentName;)Landroid/accessibilityservice/AccessibilityServiceInfo;
+HSPLcom/android/server/accessibility/AccessibilityUserState;->getInteractiveUiTimeoutLocked()I
PLcom/android/server/accessibility/AccessibilityUserState;->getLastSentClientStateLocked()I
-PLcom/android/server/accessibility/AccessibilityUserState;->getNonInteractiveUiTimeoutLocked()I
-PLcom/android/server/accessibility/AccessibilityUserState;->getServiceAssignedToAccessibilityButtonLocked()Landroid/content/ComponentName;
-PLcom/android/server/accessibility/AccessibilityUserState;->getServiceToEnableWithShortcutLocked()Landroid/content/ComponentName;
+HSPLcom/android/server/accessibility/AccessibilityUserState;->getNonInteractiveUiTimeoutLocked()I
+PLcom/android/server/accessibility/AccessibilityUserState;->getShortcutTargetsLocked(I)Landroid/util/ArraySet;
PLcom/android/server/accessibility/AccessibilityUserState;->getUserInteractiveUiTimeoutLocked()I
PLcom/android/server/accessibility/AccessibilityUserState;->getUserNonInteractiveUiTimeoutLocked()I
PLcom/android/server/accessibility/AccessibilityUserState;->isAutoclickEnabledLocked()Z
PLcom/android/server/accessibility/AccessibilityUserState;->isDisplayMagnificationEnabledLocked()Z
PLcom/android/server/accessibility/AccessibilityUserState;->isFilterKeyEventsEnabledLocked()Z
-HPLcom/android/server/accessibility/AccessibilityUserState;->isHandlingAccessibilityEventsLocked()Z
-PLcom/android/server/accessibility/AccessibilityUserState;->isNavBarMagnificationAssignedToAccessibilityButtonLocked()Z
+HSPLcom/android/server/accessibility/AccessibilityUserState;->isHandlingAccessibilityEventsLocked()Z
PLcom/android/server/accessibility/AccessibilityUserState;->isNavBarMagnificationEnabledLocked()Z
PLcom/android/server/accessibility/AccessibilityUserState;->isPerformGesturesEnabledLocked()Z
+PLcom/android/server/accessibility/AccessibilityUserState;->isShortcutKeyMagnificationEnabledLocked()Z
+PLcom/android/server/accessibility/AccessibilityUserState;->isShortcutTargetInstalledLocked(Ljava/lang/String;)Z
PLcom/android/server/accessibility/AccessibilityUserState;->isTextHighContrastEnabledLocked()Z
PLcom/android/server/accessibility/AccessibilityUserState;->isTouchExplorationEnabledLocked()Z
PLcom/android/server/accessibility/AccessibilityUserState;->onSwitchToAnotherUserLocked()V
@@ -2775,245 +3083,240 @@ PLcom/android/server/accessibility/AccessibilityUserState;->setInteractiveUiTime
PLcom/android/server/accessibility/AccessibilityUserState;->setLastSentClientStateLocked(I)V
PLcom/android/server/accessibility/AccessibilityUserState;->setNonInteractiveUiTimeoutLocked(I)V
PLcom/android/server/accessibility/AccessibilityUserState;->setPerformGesturesEnabledLocked(Z)V
-PLcom/android/server/accessibility/AccessibilityUserState;->setServiceToEnableWithShortcutLocked(Landroid/content/ComponentName;)V
PLcom/android/server/accessibility/AccessibilityUserState;->unbindAllServicesLocked()V
-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;)V
+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;->linkToDeath()V
+PLcom/android/server/accessibility/AccessibilityWindowManager$RemoteAccessibilityConnection;->unlinkToDeath()V
+HSPLcom/android/server/accessibility/AccessibilityWindowManager;-><init>(Ljava/lang/Object;Landroid/os/Handler;Lcom/android/server/wm/WindowManagerInternal;Lcom/android/server/accessibility/AccessibilityWindowManager$AccessibilityEventSender;Lcom/android/server/accessibility/AccessibilitySecurityPolicy;Lcom/android/server/accessibility/AccessibilitySecurityPolicy$AccessibilityUserManager;)V
PLcom/android/server/accessibility/AccessibilityWindowManager;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
PLcom/android/server/accessibility/AccessibilityWindowManager;->stopTrackingWindows(I)V
-PLcom/android/server/accessibility/SystemActionPerformer;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerInternal;)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;)V
-PLcom/android/server/accessibility/UiAutomationManager$1;-><init>(Lcom/android/server/accessibility/UiAutomationManager;)V
-PLcom/android/server/accessibility/UiAutomationManager;-><clinit>()V
-PLcom/android/server/accessibility/UiAutomationManager;-><init>(Ljava/lang/Object;)V
+HSPLcom/android/server/accessibility/SystemActionPerformer;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerInternal;)V
+HSPLcom/android/server/accessibility/SystemActionPerformer;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerInternal;Ljava/util/function/Supplier;Lcom/android/server/accessibility/SystemActionPerformer$SystemActionsChangedListener;)V
+HSPLcom/android/server/accessibility/UiAutomationManager$1;-><init>(Lcom/android/server/accessibility/UiAutomationManager;)V
+HSPLcom/android/server/accessibility/UiAutomationManager;-><clinit>()V
+HSPLcom/android/server/accessibility/UiAutomationManager;-><init>(Ljava/lang/Object;)V
PLcom/android/server/accessibility/UiAutomationManager;->canRetrieveInteractiveWindowsLocked()Z
-PLcom/android/server/accessibility/UiAutomationManager;->getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;
+HSPLcom/android/server/accessibility/UiAutomationManager;->getServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;
PLcom/android/server/accessibility/UiAutomationManager;->isTouchExplorationEnabledLocked()Z
-PLcom/android/server/accessibility/UiAutomationManager;->isUiAutomationRunningLocked()Z
-PLcom/android/server/accessibility/UiAutomationManager;->suppressingAccessibilityServicesLocked()Z
-PLcom/android/server/accounts/-$$Lambda$AccountManagerService$c6GExIY3Vh2fORdBziuAPJbExac;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
+HSPLcom/android/server/accessibility/UiAutomationManager;->isUiAutomationRunningLocked()Z
+HSPLcom/android/server/accessibility/UiAutomationManager;->suppressingAccessibilityServicesLocked()Z
+HSPLcom/android/server/accounts/-$$Lambda$AccountManagerService$c6GExIY3Vh2fORdBziuAPJbExac;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
PLcom/android/server/accounts/-$$Lambda$AccountManagerService$c6GExIY3Vh2fORdBziuAPJbExac;->onPermissionsChanged(I)V
-PLcom/android/server/accounts/-$$Lambda$AccountManagerService$nCdu9dc3c8qBwJIwS0ZQk2waXfY;-><init>(Landroid/accounts/AccountManagerInternal$OnAppPermissionChangeListener;Landroid/accounts/Account;I)V
-PLcom/android/server/accounts/-$$Lambda$AccountManagerService$nCdu9dc3c8qBwJIwS0ZQk2waXfY;->run()V
PLcom/android/server/accounts/-$$Lambda$AccountManagerService$ncg6hlXg7I0Ee1EZqbXw8fQH9bY;-><init>(Lcom/android/server/accounts/AccountManagerService;I)V
PLcom/android/server/accounts/-$$Lambda$AccountManagerService$ncg6hlXg7I0Ee1EZqbXw8fQH9bY;->run()V
-PLcom/android/server/accounts/AccountAuthenticatorCache$MySerializer;-><init>()V
-PLcom/android/server/accounts/AccountAuthenticatorCache$MySerializer;-><init>(Lcom/android/server/accounts/AccountAuthenticatorCache$1;)V
-PLcom/android/server/accounts/AccountAuthenticatorCache$MySerializer;->createFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/accounts/AuthenticatorDescription;
-PLcom/android/server/accounts/AccountAuthenticatorCache$MySerializer;->createFromXml(Lorg/xmlpull/v1/XmlPullParser;)Ljava/lang/Object;
-PLcom/android/server/accounts/AccountAuthenticatorCache$MySerializer;->writeAsXml(Ljava/lang/Object;Lorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/accounts/AccountAuthenticatorCache;-><clinit>()V
-PLcom/android/server/accounts/AccountAuthenticatorCache;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/accounts/AccountAuthenticatorCache$MySerializer;-><init>()V
+HSPLcom/android/server/accounts/AccountAuthenticatorCache$MySerializer;-><init>(Lcom/android/server/accounts/AccountAuthenticatorCache$1;)V
+HSPLcom/android/server/accounts/AccountAuthenticatorCache$MySerializer;->createFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/accounts/AuthenticatorDescription;
+HSPLcom/android/server/accounts/AccountAuthenticatorCache$MySerializer;->createFromXml(Lorg/xmlpull/v1/XmlPullParser;)Ljava/lang/Object;
+HSPLcom/android/server/accounts/AccountAuthenticatorCache;-><clinit>()V
+HSPLcom/android/server/accounts/AccountAuthenticatorCache;-><init>(Landroid/content/Context;)V
PLcom/android/server/accounts/AccountAuthenticatorCache;->getServiceInfo(Landroid/accounts/AuthenticatorDescription;I)Landroid/content/pm/RegisteredServicesCache$ServiceInfo;
-PLcom/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;
+HSPLcom/android/server/accounts/AccountAuthenticatorCache;->parseServiceAttributes(Landroid/content/res/Resources;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/accounts/AuthenticatorDescription;
+HSPLcom/android/server/accounts/AccountAuthenticatorCache;->parseServiceAttributes(Landroid/content/res/Resources;Ljava/lang/String;Landroid/util/AttributeSet;)Ljava/lang/Object;
PLcom/android/server/accounts/AccountManagerBackupHelper;-><init>(Lcom/android/server/accounts/AccountManagerService;Landroid/accounts/AccountManagerInternal;)V
PLcom/android/server/accounts/AccountManagerBackupHelper;->backupAccountAccessPermissions(I)[B
-PLcom/android/server/accounts/AccountManagerService$18;-><init>(Lcom/android/server/accounts/AccountManagerService;Landroid/accounts/Account;ILjava/lang/String;Landroid/os/RemoteCallback;)V
-PLcom/android/server/accounts/AccountManagerService$1;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
+HSPLcom/android/server/accounts/AccountManagerService$1;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
PLcom/android/server/accounts/AccountManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/accounts/AccountManagerService$2;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
-PLcom/android/server/accounts/AccountManagerService$3;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
+HSPLcom/android/server/accounts/AccountManagerService$2;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
+HSPLcom/android/server/accounts/AccountManagerService$3;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
PLcom/android/server/accounts/AccountManagerService$3;->onPackageAdded(Ljava/lang/String;I)V
PLcom/android/server/accounts/AccountManagerService$3;->onPackageUpdateFinished(Ljava/lang/String;I)V
-PLcom/android/server/accounts/AccountManagerService$4;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
+HSPLcom/android/server/accounts/AccountManagerService$4;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
PLcom/android/server/accounts/AccountManagerService$4;->onOpChanged(ILjava/lang/String;)V
PLcom/android/server/accounts/AccountManagerService$8;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;ZZLjava/lang/String;ZLandroid/os/Bundle;Landroid/accounts/Account;Ljava/lang/String;ZZIZLjava/lang/String;[BLcom/android/server/accounts/AccountManagerService$UserAccounts;)V
PLcom/android/server/accounts/AccountManagerService$8;->onResult(Landroid/os/Bundle;)V
PLcom/android/server/accounts/AccountManagerService$8;->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$1;)V
-PLcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl;->addOnAppPermissionChangeListener(Landroid/accounts/AccountManagerInternal$OnAppPermissionChangeListener;)V
+HSPLcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl;-><init>(Lcom/android/server/accounts/AccountManagerService;)V
+HSPLcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$1;)V
+HSPLcom/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$AccountManagerInternalImpl;->requestAccountAccess(Landroid/accounts/Account;Ljava/lang/String;ILandroid/os/RemoteCallback;)V
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
PLcom/android/server/accounts/AccountManagerService$GetAccountsByTypeAndFeatureSession;->onResult(Landroid/os/Bundle;)V
PLcom/android/server/accounts/AccountManagerService$GetAccountsByTypeAndFeatureSession;->run()V
PLcom/android/server/accounts/AccountManagerService$GetAccountsByTypeAndFeatureSession;->sendResult()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;
+HSPLcom/android/server/accounts/AccountManagerService$Injector;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/accounts/AccountManagerService$Injector;->addLocalService(Landroid/accounts/AccountManagerInternal;)V
+HSPLcom/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
+HSPLcom/android/server/accounts/AccountManagerService$Injector;->getContext()Landroid/content/Context;
+HSPLcom/android/server/accounts/AccountManagerService$Injector;->getDeDatabaseName(I)Ljava/lang/String;
+HSPLcom/android/server/accounts/AccountManagerService$Injector;->getMessageHandlerLooper()Landroid/os/Looper;
+PLcom/android/server/accounts/AccountManagerService$Injector;->getNotificationManager()Landroid/app/INotificationManager;
+HSPLcom/android/server/accounts/AccountManagerService$Injector;->getPreNDatabaseName(I)Ljava/lang/String;
+HSPLcom/android/server/accounts/AccountManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/accounts/AccountManagerService$Lifecycle;->onStart()V
PLcom/android/server/accounts/AccountManagerService$Lifecycle;->onUnlockUser(I)V
-PLcom/android/server/accounts/AccountManagerService$MessageHandler;-><init>(Lcom/android/server/accounts/AccountManagerService;Landroid/os/Looper;)V
+HSPLcom/android/server/accounts/AccountManagerService$MessageHandler;-><init>(Lcom/android/server/accounts/AccountManagerService;Landroid/os/Looper;)V
PLcom/android/server/accounts/AccountManagerService$NotificationId;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/accounts/AccountManagerService$NotificationId;->access$3600(Lcom/android/server/accounts/AccountManagerService$NotificationId;)I
+HPLcom/android/server/accounts/AccountManagerService$NotificationId;->access$3600(Lcom/android/server/accounts/AccountManagerService$NotificationId;)I
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$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
PLcom/android/server/accounts/AccountManagerService$Session;->bindToAuthenticator(Ljava/lang/String;)Z
+PLcom/android/server/accounts/AccountManagerService$Session;->binderDied()V
PLcom/android/server/accounts/AccountManagerService$Session;->cancelTimeout()V
PLcom/android/server/accounts/AccountManagerService$Session;->close()V
PLcom/android/server/accounts/AccountManagerService$Session;->getResponseAndClose()Landroid/accounts/IAccountManagerResponse;
+PLcom/android/server/accounts/AccountManagerService$Session;->onError(ILjava/lang/String;)V
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;->onServiceDisconnected(Landroid/content/ComponentName;)V
HPLcom/android/server/accounts/AccountManagerService$Session;->unbind()V
-PLcom/android/server/accounts/AccountManagerService$TestFeaturesSession;-><init>(Lcom/android/server/accounts/AccountManagerService;Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;[Ljava/lang/String;)V
+HPLcom/android/server/accounts/AccountManagerService$TestFeaturesSession;-><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$TestFeaturesSession;->onResult(Landroid/os/Bundle;)V
PLcom/android/server/accounts/AccountManagerService$TestFeaturesSession;->run()V
-PLcom/android/server/accounts/AccountManagerService$UserAccounts;-><init>(Landroid/content/Context;ILjava/io/File;Ljava/io/File;)V
-PLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$800(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)I
-PLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$900(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/Map;
-PLcom/android/server/accounts/AccountManagerService;-><clinit>()V
-PLcom/android/server/accounts/AccountManagerService;-><init>(Lcom/android/server/accounts/AccountManagerService$Injector;)V
-PLcom/android/server/accounts/AccountManagerService;->access$4000(Lcom/android/server/accounts/AccountManagerService;)Ljava/util/concurrent/CopyOnWriteArrayList;
+HSPLcom/android/server/accounts/AccountManagerService$UserAccounts;-><init>(Landroid/content/Context;ILjava/io/File;Ljava/io/File;)V
+PLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$1000(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/Map;
+HPLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$1600(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/HashMap;
+HSPLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$800(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)I
+HSPLcom/android/server/accounts/AccountManagerService$UserAccounts;->access$900(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/Map;
+HSPLcom/android/server/accounts/AccountManagerService;-><clinit>()V
+HSPLcom/android/server/accounts/AccountManagerService;-><init>(Lcom/android/server/accounts/AccountManagerService$Injector;)V
+HSPLcom/android/server/accounts/AccountManagerService;->access$4000(Lcom/android/server/accounts/AccountManagerService;)Ljava/util/concurrent/CopyOnWriteArrayList;
PLcom/android/server/accounts/AccountManagerService;->access$500(Lcom/android/server/accounts/AccountManagerService;)Landroid/content/pm/PackageManager;
PLcom/android/server/accounts/AccountManagerService;->access$600(Lcom/android/server/accounts/AccountManagerService;)Landroid/app/AppOpsManager;
PLcom/android/server/accounts/AccountManagerService;->access$700(Lcom/android/server/accounts/AccountManagerService;Ljava/lang/String;IZ)V
-PLcom/android/server/accounts/AccountManagerService;->accountExistsCache(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;)Z
+HPLcom/android/server/accounts/AccountManagerService;->accountExistsCache(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;)Z
HPLcom/android/server/accounts/AccountManagerService;->accountTypeManagesContacts(Ljava/lang/String;I)Z
-PLcom/android/server/accounts/AccountManagerService;->calculatePackageSignatureDigest(Ljava/lang/String;)[B
-PLcom/android/server/accounts/AccountManagerService;->cancelAccountAccessRequestNotificationIfNeeded(Landroid/accounts/Account;ILjava/lang/String;Z)V
+HPLcom/android/server/accounts/AccountManagerService;->calculatePackageSignatureDigest(Ljava/lang/String;)[B
+HPLcom/android/server/accounts/AccountManagerService;->cancelAccountAccessRequestNotificationIfNeeded(Landroid/accounts/Account;ILjava/lang/String;Z)V
PLcom/android/server/accounts/AccountManagerService;->cancelAccountAccessRequestNotificationIfNeeded(Ljava/lang/String;IZ)V
-PLcom/android/server/accounts/AccountManagerService;->cancelNotification(Lcom/android/server/accounts/AccountManagerService$NotificationId;Ljava/lang/String;Landroid/os/UserHandle;)V
-PLcom/android/server/accounts/AccountManagerService;->checkGetAccountsPermission(Ljava/lang/String;I)Z
+HPLcom/android/server/accounts/AccountManagerService;->cancelNotification(Lcom/android/server/accounts/AccountManagerService$NotificationId;Ljava/lang/String;Landroid/os/UserHandle;)V
HPLcom/android/server/accounts/AccountManagerService;->checkPackageSignature(Ljava/lang/String;II)I
PLcom/android/server/accounts/AccountManagerService;->checkReadAccountsPermitted(ILjava/lang/String;ILjava/lang/String;)V
PLcom/android/server/accounts/AccountManagerService;->checkReadContactsPermission(Ljava/lang/String;I)Z
-PLcom/android/server/accounts/AccountManagerService;->createNoCredentialsPermissionNotification(Landroid/accounts/Account;Landroid/content/Intent;Ljava/lang/String;I)V
-PLcom/android/server/accounts/AccountManagerService;->doNotification(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/CharSequence;Landroid/content/Intent;Ljava/lang/String;I)V
PLcom/android/server/accounts/AccountManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/accounts/AccountManagerService;->dumpUser(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
-HPLcom/android/server/accounts/AccountManagerService;->filterAccounts(Lcom/android/server/accounts/AccountManagerService$UserAccounts;[Landroid/accounts/Account;ILjava/lang/String;Z)[Landroid/accounts/Account;
-HPLcom/android/server/accounts/AccountManagerService;->filterSharedAccounts(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/util/Map;ILjava/lang/String;)Ljava/util/Map;
+HSPLcom/android/server/accounts/AccountManagerService;->filterAccounts(Lcom/android/server/accounts/AccountManagerService$UserAccounts;[Landroid/accounts/Account;ILjava/lang/String;Z)[Landroid/accounts/Account;
+HSPLcom/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;->getAccountVisibility(Landroid/accounts/Account;Ljava/lang/String;)I
HPLcom/android/server/accounts/AccountManagerService;->getAccountVisibilityFromCache(Landroid/accounts/Account;Ljava/lang/String;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)I
-PLcom/android/server/accounts/AccountManagerService;->getAccounts(ILjava/lang/String;)[Landroid/accounts/Account;
+HPLcom/android/server/accounts/AccountManagerService;->getAccounts(ILjava/lang/String;)[Landroid/accounts/Account;
PLcom/android/server/accounts/AccountManagerService;->getAccounts(Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
PLcom/android/server/accounts/AccountManagerService;->getAccounts([I)[Landroid/accounts/AccountAndUser;
-PLcom/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;
+HSPLcom/android/server/accounts/AccountManagerService;->getAccountsAsUser(Ljava/lang/String;ILjava/lang/String;)[Landroid/accounts/Account;
+HSPLcom/android/server/accounts/AccountManagerService;->getAccountsAsUserForPackage(Ljava/lang/String;ILjava/lang/String;ILjava/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
HPLcom/android/server/accounts/AccountManagerService;->getAccountsByTypeForPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Landroid/accounts/Account;
-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;
+HSPLcom/android/server/accounts/AccountManagerService;->getAccountsFromCache(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Ljava/lang/String;ILjava/lang/String;Z)[Landroid/accounts/Account;
+HSPLcom/android/server/accounts/AccountManagerService;->getAccountsInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;ILjava/lang/String;Ljava/util/List;Z)[Landroid/accounts/Account;
PLcom/android/server/accounts/AccountManagerService;->getAllAccounts()[Landroid/accounts/AccountAndUser;
PLcom/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/IAccountAuthenticatorCache;I)Ljava/util/HashMap;
+HSPLcom/android/server/accounts/AccountManagerService;->getAuthenticatorTypeAndUIDForUser(Lcom/android/server/accounts/IAccountAuthenticatorCache;I)Ljava/util/HashMap;
PLcom/android/server/accounts/AccountManagerService;->getAuthenticatorTypes(I)[Landroid/accounts/AuthenticatorDescription;
HPLcom/android/server/accounts/AccountManagerService;->getAuthenticatorTypesInternal(I)[Landroid/accounts/AuthenticatorDescription;
-PLcom/android/server/accounts/AccountManagerService;->getContextForUser(Landroid/os/UserHandle;)Landroid/content/Context;
PLcom/android/server/accounts/AccountManagerService;->getCredentialPermissionNotificationId(Landroid/accounts/Account;Ljava/lang/String;I)Lcom/android/server/accounts/AccountManagerService$NotificationId;
-PLcom/android/server/accounts/AccountManagerService;->getPackageNameForUid(I)Ljava/lang/String;
+HPLcom/android/server/accounts/AccountManagerService;->getPackageNameForUid(I)Ljava/lang/String;
HPLcom/android/server/accounts/AccountManagerService;->getPackagesAndVisibilityForAccountLocked(Landroid/accounts/Account;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/util/Map;
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;->getRunningAccounts()[Landroid/accounts/AccountAndUser;
PLcom/android/server/accounts/AccountManagerService;->getSharedAccountsAsUser(I)[Landroid/accounts/Account;
-PLcom/android/server/accounts/AccountManagerService;->getSigninRequiredNotificationId(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;)Lcom/android/server/accounts/AccountManagerService$NotificationId;
-HPLcom/android/server/accounts/AccountManagerService;->getTypesForCaller(IIZ)Ljava/util/List;
-PLcom/android/server/accounts/AccountManagerService;->getTypesManagedByCaller(II)Ljava/util/List;
-PLcom/android/server/accounts/AccountManagerService;->getTypesVisibleToCaller(IILjava/lang/String;)Ljava/util/List;
-HPLcom/android/server/accounts/AccountManagerService;->getUserAccounts(I)Lcom/android/server/accounts/AccountManagerService$UserAccounts;
-PLcom/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;->grantAppPermission(Landroid/accounts/Account;Ljava/lang/String;I)V
+HPLcom/android/server/accounts/AccountManagerService;->getSigninRequiredNotificationId(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;)Lcom/android/server/accounts/AccountManagerService$NotificationId;
+PLcom/android/server/accounts/AccountManagerService;->getSingleton()Lcom/android/server/accounts/AccountManagerService;
+HSPLcom/android/server/accounts/AccountManagerService;->getTypesForCaller(IIZ)Ljava/util/List;
+HSPLcom/android/server/accounts/AccountManagerService;->getTypesManagedByCaller(II)Ljava/util/List;
+HSPLcom/android/server/accounts/AccountManagerService;->getTypesVisibleToCaller(IILjava/lang/String;)Ljava/util/List;
+HSPLcom/android/server/accounts/AccountManagerService;->getUserAccounts(I)Lcom/android/server/accounts/AccountManagerService$UserAccounts;
+HSPLcom/android/server/accounts/AccountManagerService;->getUserAccountsNotChecked(I)Lcom/android/server/accounts/AccountManagerService$UserAccounts;
+HPLcom/android/server/accounts/AccountManagerService;->getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/accounts/AccountManagerService;->getUserManager()Landroid/os/UserManager;
PLcom/android/server/accounts/AccountManagerService;->handleIncomingUser(I)I
-PLcom/android/server/accounts/AccountManagerService;->hasAccountAccess(Landroid/accounts/Account;Ljava/lang/String;I)Z
+HPLcom/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;->hasExplicitlyGrantedPermission(Landroid/accounts/Account;Ljava/lang/String;I)Z
PLcom/android/server/accounts/AccountManagerService;->hasFeatures(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;[Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/accounts/AccountManagerService;->installNotification(Lcom/android/server/accounts/AccountManagerService$NotificationId;Landroid/app/Notification;Ljava/lang/String;I)V
PLcom/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(Ljava/lang/String;II)Z
-PLcom/android/server/accounts/AccountManagerService;->isLocalUnlockedUser(I)Z
+HSPLcom/android/server/accounts/AccountManagerService;->isLocalUnlockedUser(I)Z
HPLcom/android/server/accounts/AccountManagerService;->isPermittedForPackage(Ljava/lang/String;I[Ljava/lang/String;)Z
-PLcom/android/server/accounts/AccountManagerService;->isPreOApplication(Ljava/lang/String;)Z
-PLcom/android/server/accounts/AccountManagerService;->isPrivileged(I)Z
+HPLcom/android/server/accounts/AccountManagerService;->isPreOApplication(Ljava/lang/String;)Z
+HPLcom/android/server/accounts/AccountManagerService;->isPrivileged(I)Z
PLcom/android/server/accounts/AccountManagerService;->isProfileOwner(I)Z
PLcom/android/server/accounts/AccountManagerService;->lambda$new$0$AccountManagerService(I)V
-PLcom/android/server/accounts/AccountManagerService;->newGrantCredentialsPermissionIntent(Landroid/accounts/Account;Ljava/lang/String;ILandroid/accounts/AccountAuthenticatorResponse;Ljava/lang/String;Z)Landroid/content/Intent;
-PLcom/android/server/accounts/AccountManagerService;->onAccountAccessed(Ljava/lang/String;)V
+PLcom/android/server/accounts/AccountManagerService;->lambda$onUnlockUser$1$AccountManagerService(I)V
+HPLcom/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;->onServiceChanged(Landroid/accounts/AuthenticatorDescription;IZ)V
-PLcom/android/server/accounts/AccountManagerService;->onServiceChanged(Ljava/lang/Object;IZ)V
HPLcom/android/server/accounts/AccountManagerService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
PLcom/android/server/accounts/AccountManagerService;->onUnlockUser(I)V
-PLcom/android/server/accounts/AccountManagerService;->peekAuthToken(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
-PLcom/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
-PLcom/android/server/accounts/AccountManagerService;->readAuthTokenInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
+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
+HSPLcom/android/server/accounts/AccountManagerService;->purgeOldGrants(Lcom/android/server/accounts/AccountManagerService$UserAccounts;)V
+HPLcom/android/server/accounts/AccountManagerService;->readAuthTokenInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;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)Ljava/lang/String;
PLcom/android/server/accounts/AccountManagerService;->readPasswordInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;)Ljava/lang/String;
PLcom/android/server/accounts/AccountManagerService;->readPreviousNameInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;)Ljava/lang/String;
-PLcom/android/server/accounts/AccountManagerService;->readUserDataInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/accounts/AccountManagerService;->readUserDataInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;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;Ljava/lang/String;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/lang/Integer;
+HSPLcom/android/server/accounts/AccountManagerService;->resolveAccountVisibility(Landroid/accounts/Account;Ljava/lang/String;Lcom/android/server/accounts/AccountManagerService$UserAccounts;)Ljava/lang/Integer;
PLcom/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;->saveCachedToken(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;[BLjava/lang/String;Ljava/lang/String;J)V
PLcom/android/server/accounts/AccountManagerService;->setAuthToken(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/accounts/AccountManagerService;->setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/accounts/AccountManagerService;->setUserdataInternal(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/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;->syncSharedAccounts(I)V
-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;->validateAccounts(I)V
+HSPLcom/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/AccountManagerService;->writeUserDataIntoCacheLocked(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/accounts/AccountManagerService;->writeUserDataIntoCacheLocked(Lcom/android/server/accounts/AccountManagerService$UserAccounts;Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)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/AccountsDb$CeDatabaseHelper;->onOpen(Landroid/database/sqlite/SQLiteDatabase;)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$1;)V
-PLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;->access$700(Lcom/android/server/accounts/AccountsDb$DeDatabaseHelper;)Z
-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
+HSPLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;-><init>(Landroid/content/Context;ILjava/lang/String;)V
+HSPLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;-><init>(Landroid/content/Context;ILjava/lang/String;Lcom/android/server/accounts/AccountsDb$1;)V
+HSPLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;->access$700(Lcom/android/server/accounts/AccountsDb$DeDatabaseHelper;)Z
+PLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;->access$702(Lcom/android/server/accounts/AccountsDb$DeDatabaseHelper;Z)Z
+HPLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;->getReadableDatabaseUserIsUnlocked()Landroid/database/sqlite/SQLiteDatabase;
+HPLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;->getWritableDatabaseUserIsUnlocked()Landroid/database/sqlite/SQLiteDatabase;
+HSPLcom/android/server/accounts/AccountsDb$DeDatabaseHelper;->onOpen(Landroid/database/sqlite/SQLiteDatabase;)V
+HSPLcom/android/server/accounts/AccountsDb;-><clinit>()V
+HSPLcom/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;->create(Landroid/content/Context;ILjava/io/File;Ljava/io/File;)Lcom/android/server/accounts/AccountsDb;
+HSPLcom/android/server/accounts/AccountsDb;->create(Landroid/content/Context;ILjava/io/File;Ljava/io/File;)Lcom/android/server/accounts/AccountsDb;
PLcom/android/server/accounts/AccountsDb;->dumpDeAccountsTable(Ljava/io/PrintWriter;)V
+PLcom/android/server/accounts/AccountsDb;->dumpDebugTable(Ljava/io/PrintWriter;)V
PLcom/android/server/accounts/AccountsDb;->findAccountPasswordByNameAndType(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
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;
+HSPLcom/android/server/accounts/AccountsDb;->findAllDeAccounts()Ljava/util/Map;
+HSPLcom/android/server/accounts/AccountsDb;->findAllUidGrants()Ljava/util/List;
+HSPLcom/android/server/accounts/AccountsDb;->findAllVisibilityValues()Ljava/util/Map;
HPLcom/android/server/accounts/AccountsDb;->findAuthTokensByAccount(Landroid/accounts/Account;)Ljava/util/Map;
PLcom/android/server/accounts/AccountsDb;->findCeAccountsNotInDe()Ljava/util/List;
-PLcom/android/server/accounts/AccountsDb;->findDeAccountId(Landroid/accounts/Account;)J
+HPLcom/android/server/accounts/AccountsDb;->findDeAccountId(Landroid/accounts/Account;)J
PLcom/android/server/accounts/AccountsDb;->findDeAccountPreviousName(Landroid/accounts/Account;)Ljava/lang/String;
-PLcom/android/server/accounts/AccountsDb;->findExtrasIdByAccountId(JLjava/lang/String;)J
+HPLcom/android/server/accounts/AccountsDb;->findExtrasIdByAccountId(JLjava/lang/String;)J
PLcom/android/server/accounts/AccountsDb;->findMatchingGrantsCountAnyToken(ILandroid/accounts/Account;)J
-PLcom/android/server/accounts/AccountsDb;->findMetaAuthUid()Ljava/util/Map;
+HSPLcom/android/server/accounts/AccountsDb;->findMetaAuthUid()Ljava/util/Map;
HPLcom/android/server/accounts/AccountsDb;->findUserExtrasForAccount(Landroid/accounts/Account;)Ljava/util/Map;
PLcom/android/server/accounts/AccountsDb;->getSharedAccounts()Ljava/util/List;
PLcom/android/server/accounts/AccountsDb;->insertAuthToken(JLjava/lang/String;Ljava/lang/String;)J
PLcom/android/server/accounts/AccountsDb;->insertExtra(JLjava/lang/String;Ljava/lang/String;)J
-PLcom/android/server/accounts/AccountsDb;->insertGrant(JLjava/lang/String;I)J
-PLcom/android/server/accounts/AccountsDb;->insertOrReplaceMetaAuthTypeAndUid(Ljava/lang/String;I)J
-PLcom/android/server/accounts/AccountsDb;->isCeDatabaseAttached()Z
-PLcom/android/server/accounts/AccountsDb;->updateExtra(JLjava/lang/String;)Z
+HSPLcom/android/server/accounts/AccountsDb;->isCeDatabaseAttached()Z
+HPLcom/android/server/accounts/AccountsDb;->updateExtra(JLjava/lang/String;)Z
HPLcom/android/server/accounts/TokenCache$Key;-><init>(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;[B)V
HPLcom/android/server/accounts/TokenCache$Key;->equals(Ljava/lang/Object;)Z
HPLcom/android/server/accounts/TokenCache$Key;->hashCode()I
-PLcom/android/server/accounts/TokenCache$TokenLruCache$Evictor;-><init>(Lcom/android/server/accounts/TokenCache$TokenLruCache;)V
+HPLcom/android/server/accounts/TokenCache$TokenLruCache$Evictor;-><init>(Lcom/android/server/accounts/TokenCache$TokenLruCache;)V
PLcom/android/server/accounts/TokenCache$TokenLruCache$Evictor;->add(Lcom/android/server/accounts/TokenCache$Key;)V
PLcom/android/server/accounts/TokenCache$TokenLruCache$Evictor;->evict()V
-PLcom/android/server/accounts/TokenCache$TokenLruCache;-><init>()V
+HSPLcom/android/server/accounts/TokenCache$TokenLruCache;-><init>()V
PLcom/android/server/accounts/TokenCache$TokenLruCache;->entryRemoved(ZLjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/accounts/TokenCache$TokenLruCache;->putToken(Lcom/android/server/accounts/TokenCache$Key;Lcom/android/server/accounts/TokenCache$Value;)V
PLcom/android/server/accounts/TokenCache$TokenLruCache;->sizeOf(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/accounts/TokenCache$Value;-><init>(Ljava/lang/String;J)V
-PLcom/android/server/accounts/TokenCache;-><init>()V
+HPLcom/android/server/accounts/TokenCache$Value;-><init>(Ljava/lang/String;J)V
+HSPLcom/android/server/accounts/TokenCache;-><init>()V
PLcom/android/server/accounts/TokenCache;->get(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;[B)Ljava/lang/String;
-PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler$1;-><init>(Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;Landroid/os/Handler;)V
-PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;-><init>(Lcom/android/server/adb/AdbDebuggingManager;Landroid/os/Looper;)V
+HSPLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler$1;-><init>(Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;Landroid/os/Handler;)V
+HSPLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;-><init>(Lcom/android/server/adb/AdbDebuggingManager;Landroid/os/Looper;)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;->logAdbConnectionChanged(Ljava/lang/String;IZ)V
PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->registerForAuthTimeChanges()V
PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;->scheduleJobToUpdateAdbKeyStore()J
PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;-><init>(Lcom/android/server/adb/AdbDebuggingManager;)V
-PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->closeSocketLocked()V
PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->listenToSocket()V
PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->openSocketLocked()V
PLcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;->run()V
@@ -3022,71 +3325,76 @@ PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->addUserKeysToKeyStore
PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->filterOutOldKeys()Z
PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getAllowedConnectionTime()J
PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->getKeyMap()Ljava/util/Map;
-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;->init()V
PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->initKeyFile()V
PLcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;->updateKeyStore()V
-PLcom/android/server/adb/AdbDebuggingManager;-><init>(Landroid/content/Context;)V
-PLcom/android/server/adb/AdbDebuggingManager;->access$000(Lcom/android/server/adb/AdbDebuggingManager;)Landroid/os/Handler;
+HSPLcom/android/server/adb/AdbDebuggingManager;-><init>(Landroid/content/Context;)V
PLcom/android/server/adb/AdbDebuggingManager;->access$100(Lcom/android/server/adb/AdbDebuggingManager;)Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;
PLcom/android/server/adb/AdbDebuggingManager;->access$102(Lcom/android/server/adb/AdbDebuggingManager;Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;)Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;
PLcom/android/server/adb/AdbDebuggingManager;->access$200(Lcom/android/server/adb/AdbDebuggingManager;)Z
PLcom/android/server/adb/AdbDebuggingManager;->access$202(Lcom/android/server/adb/AdbDebuggingManager;Z)Z
-PLcom/android/server/adb/AdbDebuggingManager;->access$300(Lcom/android/server/adb/AdbDebuggingManager;)Ljava/util/List;
PLcom/android/server/adb/AdbDebuggingManager;->access$800(Lcom/android/server/adb/AdbDebuggingManager;)Landroid/content/Context;
+PLcom/android/server/adb/AdbDebuggingManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
PLcom/android/server/adb/AdbDebuggingManager;->getAdbFile(Ljava/lang/String;)Ljava/io/File;
PLcom/android/server/adb/AdbDebuggingManager;->getAdbTempKeysFile()Ljava/io/File;
PLcom/android/server/adb/AdbDebuggingManager;->getUserKeyFile()Ljava/io/File;
PLcom/android/server/adb/AdbDebuggingManager;->setAdbEnabled(Z)V
-PLcom/android/server/adb/AdbService$AdbHandler;-><init>(Lcom/android/server/adb/AdbService;Landroid/os/Looper;)V
-PLcom/android/server/adb/AdbService$AdbHandler;->containsFunction(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/server/adb/AdbService$AdbHandler;-><init>(Lcom/android/server/adb/AdbService;Landroid/os/Looper;)V
+HSPLcom/android/server/adb/AdbService$AdbHandler;->containsFunction(Ljava/lang/String;Ljava/lang/String;)Z
PLcom/android/server/adb/AdbService$AdbHandler;->handleMessage(Landroid/os/Message;)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$1;)V
+HSPLcom/android/server/adb/AdbService$AdbManagerInternalImpl;-><init>(Lcom/android/server/adb/AdbService;)V
+HSPLcom/android/server/adb/AdbService$AdbManagerInternalImpl;-><init>(Lcom/android/server/adb/AdbService;Lcom/android/server/adb/AdbService$1;)V
PLcom/android/server/adb/AdbService$AdbManagerInternalImpl;->isAdbEnabled()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;-><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;-><init>(Landroid/content/Context;)V
-PLcom/android/server/adb/AdbService;-><init>(Landroid/content/Context;Lcom/android/server/adb/AdbService$1;)V
-PLcom/android/server/adb/AdbService;->access$100(Lcom/android/server/adb/AdbService;)Landroid/util/ArrayMap;
+HSPLcom/android/server/adb/AdbService$AdbManagerInternalImpl;->registerTransport(Landroid/debug/IAdbTransport;)V
+HSPLcom/android/server/adb/AdbService$AdbSettingsObserver;-><init>(Lcom/android/server/adb/AdbService;)V
+HSPLcom/android/server/adb/AdbService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/adb/AdbService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/adb/AdbService$Lifecycle;->onStart()V
+HSPLcom/android/server/adb/AdbService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/adb/AdbService;-><init>(Landroid/content/Context;Lcom/android/server/adb/AdbService$1;)V
+HSPLcom/android/server/adb/AdbService;->access$100(Lcom/android/server/adb/AdbService;)Landroid/util/ArrayMap;
PLcom/android/server/adb/AdbService;->access$200(Lcom/android/server/adb/AdbService;)Z
-PLcom/android/server/adb/AdbService;->access$202(Lcom/android/server/adb/AdbService;Z)Z
+HSPLcom/android/server/adb/AdbService;->access$202(Lcom/android/server/adb/AdbService;Z)Z
PLcom/android/server/adb/AdbService;->access$300(Lcom/android/server/adb/AdbService;)Lcom/android/server/adb/AdbDebuggingManager;
-PLcom/android/server/adb/AdbService;->access$400(Lcom/android/server/adb/AdbService;)Landroid/content/ContentResolver;
+HSPLcom/android/server/adb/AdbService;->access$400(Lcom/android/server/adb/AdbService;)Landroid/content/ContentResolver;
PLcom/android/server/adb/AdbService;->bootCompleted()V
-PLcom/android/server/adb/AdbService;->systemReady()V
-PLcom/android/server/am/-$$Lambda$ActivityManagerService$2afaFERxNQEnSdevJxY5plp1fS4;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/adb/AdbService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/adb/AdbService;->systemReady()V
+HSPLcom/android/server/am/-$$Lambda$ActivityManagerService$2afaFERxNQEnSdevJxY5plp1fS4;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;)V
PLcom/android/server/am/-$$Lambda$ActivityManagerService$5$BegFiGFfKLYS7VRmiWluczgOC5k;-><clinit>()V
PLcom/android/server/am/-$$Lambda$ActivityManagerService$5$BegFiGFfKLYS7VRmiWluczgOC5k;-><init>()V
HPLcom/android/server/am/-$$Lambda$ActivityManagerService$5$BegFiGFfKLYS7VRmiWluczgOC5k;->needed(Lcom/android/internal/os/ProcessCpuTracker$Stats;)Z
-PLcom/android/server/am/-$$Lambda$ActivityManagerService$Z3G4KWA2tlTOhqhFtAvVby1SjyQ;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+HSPLcom/android/server/am/-$$Lambda$ActivityManagerService$Z3G4KWA2tlTOhqhFtAvVby1SjyQ;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+HSPLcom/android/server/am/-$$Lambda$ActivityManagerService$dLQ66dH4nIti4hweaVJTGHj2tMU;-><clinit>()V
+HSPLcom/android/server/am/-$$Lambda$ActivityManagerService$dLQ66dH4nIti4hweaVJTGHj2tMU;-><init>()V
+HSPLcom/android/server/am/-$$Lambda$ActivityManagerService$dLQ66dH4nIti4hweaVJTGHj2tMU;->needed(Lcom/android/internal/os/ProcessCpuTracker$Stats;)Z
PLcom/android/server/am/-$$Lambda$ActivityManagerService$edxAPEC3muKzJql6X4RKsKcgmvo;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/-$$Lambda$ActivityManagerService$w5jCshLsk1jfv4UDTmEfq_HU0OQ;-><init>(Landroid/os/DropBoxManager;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/-$$Lambda$ActivityManagerService$w5jCshLsk1jfv4UDTmEfq_HU0OQ;->run()V
+HSPLcom/android/server/am/-$$Lambda$ActivityManagerService$w5jCshLsk1jfv4UDTmEfq_HU0OQ;-><init>(Landroid/os/DropBoxManager;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/-$$Lambda$ActivityManagerService$w5jCshLsk1jfv4UDTmEfq_HU0OQ;->run()V
PLcom/android/server/am/-$$Lambda$AppErrors$Ziph9zXnTzhEV6frMYJe_IEvvfY;-><init>(Lcom/android/server/am/AppErrors;Landroid/app/ApplicationErrorReport$CrashInfo;Ljava/lang/String;ILcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
PLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$MJXTdtPzBwRCdTjCDCE77VXPHBk;-><init>(Landroid/os/SynchronousResultReceiver;)V
-PLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$MJXTdtPzBwRCdTjCDCE77VXPHBk;->onWifiActivityEnergyInfo(Landroid/os/connectivity/WifiActivityEnergyInfo;)V
+HPLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$MJXTdtPzBwRCdTjCDCE77VXPHBk;->onWifiActivityEnergyInfo(Landroid/os/connectivity/WifiActivityEnergyInfo;)V
HSPLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$ML8sXrbYk0MflPvsY2cfCYlcU0w;-><clinit>()V
HSPLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$ML8sXrbYk0MflPvsY2cfCYlcU0w;-><init>()V
HSPLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$ML8sXrbYk0MflPvsY2cfCYlcU0w;->newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;
-PLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$PpNEY15dspg9oLlkg1OsyjrPTqw;-><init>(Lcom/android/server/am/BatteryExternalStatsWorker;)V
-PLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$PpNEY15dspg9oLlkg1OsyjrPTqw;->run()V
+HSPLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$PpNEY15dspg9oLlkg1OsyjrPTqw;-><init>(Lcom/android/server/am/BatteryExternalStatsWorker;)V
+HSPLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$PpNEY15dspg9oLlkg1OsyjrPTqw;->run()V
HSPLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$ddVY5lmqswnSjXppAxPTOHbuzzQ;-><init>(Ljava/lang/Runnable;)V
HSPLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$ddVY5lmqswnSjXppAxPTOHbuzzQ;->run()V
-PLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$r3x3xYmhrLG8kgeNVPXl5EILHwU;-><init>(Lcom/android/server/am/BatteryExternalStatsWorker;)V
-PLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$r3x3xYmhrLG8kgeNVPXl5EILHwU;->run()V
+HSPLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$r3x3xYmhrLG8kgeNVPXl5EILHwU;-><init>(Lcom/android/server/am/BatteryExternalStatsWorker;)V
+HSPLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$r3x3xYmhrLG8kgeNVPXl5EILHwU;->run()V
PLcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$xR3yCbbVfCo3oq_xPiH7j5l5uac;-><init>(Lcom/android/server/am/BatteryExternalStatsWorker;)V
-PLcom/android/server/am/-$$Lambda$BatteryStatsService$ZxbqtJ7ozYmzYFkkNV3m_QRd0Sk;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIII)V
-PLcom/android/server/am/-$$Lambda$BatteryStatsService$ZxbqtJ7ozYmzYFkkNV3m_QRd0Sk;->run()V
-PLcom/android/server/am/-$$Lambda$BatteryStatsService$rRONgIFHr4sujxPESRmo9P5RJ6w;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIII)V
-PLcom/android/server/am/-$$Lambda$BatteryStatsService$rRONgIFHr4sujxPESRmo9P5RJ6w;->run()V
+HSPLcom/android/server/am/-$$Lambda$BatteryStatsService$ZxbqtJ7ozYmzYFkkNV3m_QRd0Sk;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIII)V
+HSPLcom/android/server/am/-$$Lambda$BatteryStatsService$ZxbqtJ7ozYmzYFkkNV3m_QRd0Sk;->run()V
+HSPLcom/android/server/am/-$$Lambda$BatteryStatsService$rRONgIFHr4sujxPESRmo9P5RJ6w;-><init>(Lcom/android/server/am/BatteryStatsService;IIIIIIII)V
+HSPLcom/android/server/am/-$$Lambda$BatteryStatsService$rRONgIFHr4sujxPESRmo9P5RJ6w;->run()V
PLcom/android/server/am/-$$Lambda$BroadcastQueue$-Rc4kAs41vmqWweLcJR0YLxZ0dM;-><init>(Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;)V
PLcom/android/server/am/-$$Lambda$BroadcastQueue$-Rc4kAs41vmqWweLcJR0YLxZ0dM;->run()V
+PLcom/android/server/am/-$$Lambda$HKoBBTwYfMTyX1rzuzxIXu0s2cc;-><clinit>()V
+PLcom/android/server/am/-$$Lambda$HKoBBTwYfMTyX1rzuzxIXu0s2cc;-><init>()V
+PLcom/android/server/am/-$$Lambda$HKoBBTwYfMTyX1rzuzxIXu0s2cc;->apply(Ljava/lang/Object;)Ljava/lang/Object;
HSPLcom/android/server/am/-$$Lambda$OomAdjProfiler$oLbVP84ACmxo_1QlnwlSuhi91W4;-><clinit>()V
HSPLcom/android/server/am/-$$Lambda$OomAdjProfiler$oLbVP84ACmxo_1QlnwlSuhi91W4;-><init>()V
HSPLcom/android/server/am/-$$Lambda$OomAdjProfiler$oLbVP84ACmxo_1QlnwlSuhi91W4;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
@@ -3095,54 +3403,74 @@ HSPLcom/android/server/am/-$$Lambda$OomAdjuster$OVkqAAacT5-taN3pgDzyZj3Ymvk;-><i
HPLcom/android/server/am/-$$Lambda$OomAdjuster$OVkqAAacT5-taN3pgDzyZj3Ymvk;->handleMessage(Landroid/os/Message;)Z
PLcom/android/server/am/-$$Lambda$PendingIntentRecord$hlEHdgdG_SS5n3v7IRr7e6QZgLQ;-><clinit>()V
PLcom/android/server/am/-$$Lambda$PendingIntentRecord$hlEHdgdG_SS5n3v7IRr7e6QZgLQ;-><init>()V
-PLcom/android/server/am/-$$Lambda$PendingIntentRecord$hlEHdgdG_SS5n3v7IRr7e6QZgLQ;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/am/-$$Lambda$PendingIntentRecord$hlEHdgdG_SS5n3v7IRr7e6QZgLQ;->accept(Ljava/lang/Object;)V
PLcom/android/server/am/-$$Lambda$PersistentConnection$rkvbuN0FQdQUv1hqSwDvmwwh6Uk;-><init>(Lcom/android/server/am/PersistentConnection;)V
PLcom/android/server/am/-$$Lambda$PersistentConnection$rkvbuN0FQdQUv1hqSwDvmwwh6Uk;->run()V
PLcom/android/server/am/-$$Lambda$PersistentConnection$xTW-hnA2hSnEFuF87mUe85RYnfE;-><init>(Lcom/android/server/am/PersistentConnection;)V
-PLcom/android/server/am/-$$Lambda$PersistentConnection$xTW-hnA2hSnEFuF87mUe85RYnfE;->run()V
-PLcom/android/server/am/-$$Lambda$ProcessList$vtq7LF5jIHO4t5NE03c8g7BT7Jc;-><init>(Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
-PLcom/android/server/am/-$$Lambda$ProcessList$vtq7LF5jIHO4t5NE03c8g7BT7Jc;->run()V
-PLcom/android/server/am/-$$Lambda$SettingsToPropertiesMapper$oP9A7vTPRZcZgLdy43KKEveF4zQ;-><init>(Lcom/android/server/am/SettingsToPropertiesMapper;)V
+HSPLcom/android/server/am/-$$Lambda$ProcessList$vtq7LF5jIHO4t5NE03c8g7BT7Jc;-><init>(Lcom/android/server/am/ProcessList;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
+HSPLcom/android/server/am/-$$Lambda$ProcessList$vtq7LF5jIHO4t5NE03c8g7BT7Jc;->run()V
+PLcom/android/server/am/-$$Lambda$ProcessRecord$1qn6-pj5yWgiSnKANZpVz3gwd30;-><init>(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/-$$Lambda$ProcessRecord$2DImTokd0AWNTECl3WgBxJkOOqs;-><init>(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/-$$Lambda$ProcessRecord$Cb3MKja7_iTlaFQrvQTzPvLyoT8;-><init>(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/-$$Lambda$ServiceRecord$LibDrdWU9t_vgStZ6swd0FNzHXc;-><init>(Lcom/android/server/am/ServiceRecord;)V
+PLcom/android/server/am/-$$Lambda$ServiceRecord$LibDrdWU9t_vgStZ6swd0FNzHXc;->run()V
+HSPLcom/android/server/am/-$$Lambda$SettingsToPropertiesMapper$oP9A7vTPRZcZgLdy43KKEveF4zQ;-><init>(Lcom/android/server/am/SettingsToPropertiesMapper;)V
+PLcom/android/server/am/-$$Lambda$SettingsToPropertiesMapper$oP9A7vTPRZcZgLdy43KKEveF4zQ;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
PLcom/android/server/am/-$$Lambda$UserController$G0WJmqt4X_QG30fRlvXobn18mrE;-><init>(Lcom/android/server/am/UserController;)V
PLcom/android/server/am/-$$Lambda$UserController$G0WJmqt4X_QG30fRlvXobn18mrE;->run()V
PLcom/android/server/am/-$$Lambda$UserController$I0p0bKjuvsSPLZB71mKQFfdUjZ4;-><init>(Lcom/android/server/am/UserController;Landroid/content/Intent;III)V
PLcom/android/server/am/-$$Lambda$UserController$I0p0bKjuvsSPLZB71mKQFfdUjZ4;->run()V
PLcom/android/server/am/-$$Lambda$UserController$Injector$MYTLl7MOQKjyMJknWdxPeBLoPCc;-><init>(Landroid/appwidget/AppWidgetManagerInternal;I)V
PLcom/android/server/am/-$$Lambda$UserController$Injector$MYTLl7MOQKjyMJknWdxPeBLoPCc;->run()V
+PLcom/android/server/am/-$$Lambda$UserController$K71HFCIuD0iCwrDTKYnIUDyAeWg;-><init>(Lcom/android/server/am/UserController;Lcom/android/server/am/UserState;)V
+PLcom/android/server/am/-$$Lambda$UserController$K71HFCIuD0iCwrDTKYnIUDyAeWg;->run()V
PLcom/android/server/am/-$$Lambda$UserController$avTAix2Aub5zSKSBBofMYY2qXyk;-><init>(Lcom/android/server/am/UserController;I)V
PLcom/android/server/am/-$$Lambda$UserController$avTAix2Aub5zSKSBBofMYY2qXyk;->run()V
PLcom/android/server/am/-$$Lambda$UserController$stQk1028ON105v_u-VMykVjcxLk;-><init>(Lcom/android/server/am/UserController;ILcom/android/server/am/UserState;)V
PLcom/android/server/am/-$$Lambda$UserController$stQk1028ON105v_u-VMykVjcxLk;->run()V
PLcom/android/server/am/-$$Lambda$Y_KRxxoOXfy-YceuDG7WHd46Y_I;-><clinit>()V
PLcom/android/server/am/-$$Lambda$Y_KRxxoOXfy-YceuDG7WHd46Y_I;-><init>()V
-PLcom/android/server/am/-$$Lambda$gATL8uvTPRd405IfefK1RL9bNqA;-><init>(Landroid/hardware/display/DisplayManagerInternal;)V
+PLcom/android/server/am/-$$Lambda$Y_KRxxoOXfy-YceuDG7WHd46Y_I;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/am/-$$Lambda$gATL8uvTPRd405IfefK1RL9bNqA;-><init>(Landroid/hardware/display/DisplayManagerInternal;)V
PLcom/android/server/am/-$$Lambda$gATL8uvTPRd405IfefK1RL9bNqA;->run()V
+PLcom/android/server/am/-$$Lambda$yk1Ms9fVlF6PvprMwF2rru-dw4Q;-><clinit>()V
+PLcom/android/server/am/-$$Lambda$yk1Ms9fVlF6PvprMwF2rru-dw4Q;-><init>()V
+HPLcom/android/server/am/-$$Lambda$yk1Ms9fVlF6PvprMwF2rru-dw4Q;->applyAsLong(Ljava/lang/Object;)J
HSPLcom/android/server/am/ActiveServices$1;-><init>(Lcom/android/server/am/ActiveServices;)V
PLcom/android/server/am/ActiveServices$ActiveForegroundApp;-><init>()V
-PLcom/android/server/am/ActiveServices$ForcedStandbyListener;-><init>(Lcom/android/server/am/ActiveServices;)V
-HPLcom/android/server/am/ActiveServices$ServiceLookupResult;-><init>(Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ServiceRecord;Ljava/lang/String;)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
+HSPLcom/android/server/am/ActiveServices$ForcedStandbyListener;-><init>(Lcom/android/server/am/ActiveServices;)V
+HSPLcom/android/server/am/ActiveServices$ServiceDumper;-><init>(Lcom/android/server/am/ActiveServices;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)V
+HSPLcom/android/server/am/ActiveServices$ServiceDumper;->dumpHeaderLocked()V
+HSPLcom/android/server/am/ActiveServices$ServiceDumper;->dumpLocked()V
+HSPLcom/android/server/am/ActiveServices$ServiceDumper;->dumpRemainsLocked()V
+HSPLcom/android/server/am/ActiveServices$ServiceDumper;->dumpServiceLocalLocked(Lcom/android/server/am/ServiceRecord;)V
+HSPLcom/android/server/am/ActiveServices$ServiceDumper;->dumpUserHeaderLocked(I)V
+HSPLcom/android/server/am/ActiveServices$ServiceDumper;->dumpUserRemainsLocked(I)V
+HSPLcom/android/server/am/ActiveServices$ServiceLookupResult;-><init>(Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ServiceRecord;Ljava/lang/String;)V
+HSPLcom/android/server/am/ActiveServices$ServiceMap;-><init>(Lcom/android/server/am/ActiveServices;Landroid/os/Looper;I)V
+HSPLcom/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
-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$1;)V
+HSPLcom/android/server/am/ActiveServices$ServiceRestarter;-><init>(Lcom/android/server/am/ActiveServices;)V
+HSPLcom/android/server/am/ActiveServices$ServiceRestarter;-><init>(Lcom/android/server/am/ActiveServices;Lcom/android/server/am/ActiveServices$1;)V
PLcom/android/server/am/ActiveServices$ServiceRestarter;->run()V
-PLcom/android/server/am/ActiveServices$ServiceRestarter;->setService(Lcom/android/server/am/ServiceRecord;)V
+HSPLcom/android/server/am/ActiveServices$ServiceRestarter;->setService(Lcom/android/server/am/ServiceRecord;)V
HSPLcom/android/server/am/ActiveServices;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActiveServices;->appRestrictedAnyInBackground(ILjava/lang/String;)Z
-PLcom/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;ILjava/lang/String;Ljava/lang/String;I)I
+HSPLcom/android/server/am/ActiveServices;->access$200(Lcom/android/server/am/ActiveServices;I)Lcom/android/server/am/ActiveServices$ServiceMap;
+HPLcom/android/server/am/ActiveServices;->appRestrictedAnyInBackground(ILjava/lang/String;)Z
+HSPLcom/android/server/am/ActiveServices;->attachApplicationLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)Z
+HSPLcom/android/server/am/ActiveServices;->bindServiceLocked(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;ILjava/lang/String;Ljava/lang/String;I)I
PLcom/android/server/am/ActiveServices;->bringDownDisabledPackageServicesLocked(Ljava/lang/String;Ljava/util/Set;IZZ)Z
PLcom/android/server/am/ActiveServices;->bringDownServiceIfNeededLocked(Lcom/android/server/am/ServiceRecord;ZZ)V
HPLcom/android/server/am/ActiveServices;->bringDownServiceLocked(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ActiveServices;->bringUpServiceLocked(Lcom/android/server/am/ServiceRecord;IZZZ)Ljava/lang/String;
-HPLcom/android/server/am/ActiveServices;->bumpServiceExecutingLocked(Lcom/android/server/am/ServiceRecord;ZLjava/lang/String;)V
+HSPLcom/android/server/am/ActiveServices;->bringUpServiceLocked(Lcom/android/server/am/ServiceRecord;IZZZ)Ljava/lang/String;
+HSPLcom/android/server/am/ActiveServices;->bumpServiceExecutingLocked(Lcom/android/server/am/ServiceRecord;ZLjava/lang/String;)V
HPLcom/android/server/am/ActiveServices;->cancelForegroundNotificationLocked(Lcom/android/server/am/ServiceRecord;)V
-PLcom/android/server/am/ActiveServices;->cleanUpServices(ILandroid/content/ComponentName;Landroid/content/Intent;)V
+HPLcom/android/server/am/ActiveServices;->cleanUpServices(ILandroid/content/ComponentName;Landroid/content/Intent;)V
PLcom/android/server/am/ActiveServices;->clearRestartingIfNeededLocked(Lcom/android/server/am/ServiceRecord;)V
HPLcom/android/server/am/ActiveServices;->collectPackageServicesLocked(Ljava/lang/String;Ljava/util/Set;ZZLandroid/util/ArrayMap;)Z
PLcom/android/server/am/ActiveServices;->decActiveForegroundAppLocked(Lcom/android/server/am/ActiveServices$ServiceMap;Lcom/android/server/am/ServiceRecord;)V
+HPLcom/android/server/am/ActiveServices;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
PLcom/android/server/am/ActiveServices;->dumpService(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;IZ)Z
PLcom/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;->findServiceLocked(Landroid/content/ComponentName;Landroid/os/IBinder;I)Lcom/android/server/am/ServiceRecord;
@@ -3151,66 +3479,70 @@ PLcom/android/server/am/ActiveServices;->foregroundAppShownEnoughLocked(Lcom/and
PLcom/android/server/am/ActiveServices;->foregroundServiceProcStateChangedLocked(Lcom/android/server/am/UidRecord;)V
HPLcom/android/server/am/ActiveServices;->getRunningServiceInfoLocked(IIIZZ)Ljava/util/List;
PLcom/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;
+HSPLcom/android/server/am/ActiveServices;->getServiceMapLocked(I)Lcom/android/server/am/ActiveServices$ServiceMap;
PLcom/android/server/am/ActiveServices;->getServicesLocked(I)Landroid/util/ArrayMap;
PLcom/android/server/am/ActiveServices;->hasBackgroundServicesLocked(I)Z
-PLcom/android/server/am/ActiveServices;->isServiceNeededLocked(Lcom/android/server/am/ServiceRecord;ZZ)Z
-PLcom/android/server/am/ActiveServices;->killServicesLocked(Lcom/android/server/am/ProcessRecord;Z)V
+HSPLcom/android/server/am/ActiveServices;->isServiceNeededLocked(Lcom/android/server/am/ServiceRecord;ZZ)Z
+HSPLcom/android/server/am/ActiveServices;->killServicesLocked(Lcom/android/server/am/ProcessRecord;Z)V
HPLcom/android/server/am/ActiveServices;->makeRunningServiceInfoLocked(Lcom/android/server/am/ServiceRecord;)Landroid/app/ActivityManager$RunningServiceInfo;
+HSPLcom/android/server/am/ActiveServices;->newServiceDumperLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)Lcom/android/server/am/ActiveServices$ServiceDumper;
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;Z)V
+HSPLcom/android/server/am/ActiveServices;->publishServiceLocked(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent;Landroid/os/IBinder;)V
+HSPLcom/android/server/am/ActiveServices;->realStartServiceLocked(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/ProcessRecord;Z)V
HPLcom/android/server/am/ActiveServices;->removeConnectionLocked(Lcom/android/server/am/ConnectionRecord;Lcom/android/server/am/ProcessRecord;Lcom/android/server/wm/ActivityServiceConnectionsHolder;)V
-HPLcom/android/server/am/ActiveServices;->requestServiceBindingLocked(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/IntentBindRecord;ZZ)Z
-PLcom/android/server/am/ActiveServices;->requestServiceBindingsLocked(Lcom/android/server/am/ServiceRecord;Z)V
-HPLcom/android/server/am/ActiveServices;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;ILandroid/content/Intent;ZI)Z
+HSPLcom/android/server/am/ActiveServices;->requestServiceBindingLocked(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/IntentBindRecord;ZZ)Z
+HSPLcom/android/server/am/ActiveServices;->requestServiceBindingsLocked(Lcom/android/server/am/ServiceRecord;Z)V
+HSPLcom/android/server/am/ActiveServices;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;ILandroid/content/Intent;ZI)Z
PLcom/android/server/am/ActiveServices;->requestUpdateActiveForegroundAppsLocked(Lcom/android/server/am/ActiveServices$ServiceMap;J)V
-HPLcom/android/server/am/ActiveServices;->retrieveServiceLocked(Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIZZZZ)Lcom/android/server/am/ActiveServices$ServiceLookupResult;
+HSPLcom/android/server/am/ActiveServices;->retrieveServiceLocked(Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIZZZZ)Lcom/android/server/am/ActiveServices$ServiceLookupResult;
PLcom/android/server/am/ActiveServices;->scheduleServiceForegroundTransitionTimeoutLocked(Lcom/android/server/am/ServiceRecord;)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;III)V
-HPLcom/android/server/am/ActiveServices;->serviceDoneExecutingLocked(Lcom/android/server/am/ServiceRecord;ZZ)V
+HSPLcom/android/server/am/ActiveServices;->scheduleServiceTimeoutLocked(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ActiveServices;->sendServiceArgsLocked(Lcom/android/server/am/ServiceRecord;ZZ)V
+HSPLcom/android/server/am/ActiveServices;->serviceDoneExecutingLocked(Lcom/android/server/am/ServiceRecord;III)V
+HSPLcom/android/server/am/ActiveServices;->serviceDoneExecutingLocked(Lcom/android/server/am/ServiceRecord;ZZ)V
PLcom/android/server/am/ActiveServices;->serviceProcessGoneLocked(Lcom/android/server/am/ServiceRecord;)V
PLcom/android/server/am/ActiveServices;->serviceTimeout(Lcom/android/server/am/ProcessRecord;)V
PLcom/android/server/am/ActiveServices;->setServiceForegroundInnerLocked(Lcom/android/server/am/ServiceRecord;ILandroid/app/Notification;II)V
PLcom/android/server/am/ActiveServices;->setServiceForegroundLocked(Landroid/content/ComponentName;Landroid/os/IBinder;ILandroid/app/Notification;II)V
-HPLcom/android/server/am/ActiveServices;->startServiceInnerLocked(Lcom/android/server/am/ActiveServices$ServiceMap;Landroid/content/Intent;Lcom/android/server/am/ServiceRecord;ZZ)Landroid/content/ComponentName;
-PLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;I)Landroid/content/ComponentName;
-HPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;IZ)Landroid/content/ComponentName;
-HPLcom/android/server/am/ActiveServices;->stopInBackgroundLocked(I)V
+HSPLcom/android/server/am/ActiveServices;->startServiceInnerLocked(Lcom/android/server/am/ActiveServices$ServiceMap;Landroid/content/Intent;Lcom/android/server/am/ServiceRecord;ZZ)Landroid/content/ComponentName;
+HSPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;I)Landroid/content/ComponentName;
+HSPLcom/android/server/am/ActiveServices;->startServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;IIZLjava/lang/String;IZ)Landroid/content/ComponentName;
+HSPLcom/android/server/am/ActiveServices;->stopInBackgroundLocked(I)V
PLcom/android/server/am/ActiveServices;->stopServiceLocked(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;I)I
PLcom/android/server/am/ActiveServices;->stopServiceLocked(Lcom/android/server/am/ServiceRecord;)V
HPLcom/android/server/am/ActiveServices;->stopServiceTokenLocked(Landroid/content/ComponentName;Landroid/os/IBinder;I)Z
-PLcom/android/server/am/ActiveServices;->systemServicesReady()V
+HSPLcom/android/server/am/ActiveServices;->systemServicesReady()V
PLcom/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
+HSPLcom/android/server/am/ActiveServices;->unscheduleServiceRestartLocked(Lcom/android/server/am/ServiceRecord;IZ)Z
PLcom/android/server/am/ActiveServices;->updateForegroundApps(Lcom/android/server/am/ActiveServices$ServiceMap;)V
PLcom/android/server/am/ActiveServices;->updateScreenStateLocked(Z)V
HPLcom/android/server/am/ActiveServices;->updateServiceApplicationInfoLocked(Landroid/content/pm/ApplicationInfo;)V
-HPLcom/android/server/am/ActiveServices;->updateServiceClientActivitiesLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ConnectionRecord;Z)Z
-PLcom/android/server/am/ActiveServices;->updateServiceConnectionActivitiesLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ActiveServices;->updateServiceForegroundLocked(Lcom/android/server/am/ProcessRecord;Z)V
-PLcom/android/server/am/ActiveServices;->updateWhitelistManagerLocked(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ActiveServices;->updateServiceClientActivitiesLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ConnectionRecord;Z)Z
+HSPLcom/android/server/am/ActiveServices;->updateServiceConnectionActivitiesLocked(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ActiveServices;->updateServiceForegroundLocked(Lcom/android/server/am/ProcessRecord;Z)V
+HPLcom/android/server/am/ActiveServices;->updateWhitelistManagerLocked(Lcom/android/server/am/ProcessRecord;)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
-PLcom/android/server/am/ActiveUids;->remove(I)V
+HSPLcom/android/server/am/ActiveUids;->get(I)Lcom/android/server/am/UidRecord;
+HSPLcom/android/server/am/ActiveUids;->put(ILcom/android/server/am/UidRecord;)V
+HSPLcom/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/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/ActivityManagerConstants$1;->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
-PLcom/android/server/am/ActivityManagerConstants;->computeEmptyProcessLimit(I)I
-PLcom/android/server/am/ActivityManagerConstants;->start(Landroid/content/ContentResolver;)V
-PLcom/android/server/am/ActivityManagerConstants;->updateActivityStartsLoggingEnabled()V
-PLcom/android/server/am/ActivityManagerConstants;->updateBackgroundActivityStarts()V
-PLcom/android/server/am/ActivityManagerConstants;->updateConstants()V
-PLcom/android/server/am/ActivityManagerConstants;->updateMaxCachedProcesses()V
-PLcom/android/server/am/ActivityManagerConstants;->updateOomAdjUpdatePolicy()V
+PLcom/android/server/am/ActivityManagerConstants;->access$000(Lcom/android/server/am/ActivityManagerConstants;)V
+HSPLcom/android/server/am/ActivityManagerConstants;->computeEmptyProcessLimit(I)I
+PLcom/android/server/am/ActivityManagerConstants;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/am/ActivityManagerConstants;->start(Landroid/content/ContentResolver;)V
+HSPLcom/android/server/am/ActivityManagerConstants;->updateActivityStartsLoggingEnabled()V
+HSPLcom/android/server/am/ActivityManagerConstants;->updateBackgroundActivityStarts()V
+HSPLcom/android/server/am/ActivityManagerConstants;->updateConstants()V
+HSPLcom/android/server/am/ActivityManagerConstants;->updateMaxCachedProcesses()V
+HSPLcom/android/server/am/ActivityManagerConstants;->updateOomAdjUpdatePolicy()V
PLcom/android/server/am/ActivityManagerService$10;-><init>(Lcom/android/server/am/ActivityManagerService;)V
PLcom/android/server/am/ActivityManagerService$11;-><init>(Lcom/android/server/am/ActivityManagerService;)V
PLcom/android/server/am/ActivityManagerService$11;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
@@ -3222,54 +3554,73 @@ PLcom/android/server/am/ActivityManagerService$19;-><init>(Lcom/android/server/a
PLcom/android/server/am/ActivityManagerService$19;->run()V
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$20;-><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;Landroid/os/DropBoxManager;)V
-HPLcom/android/server/am/ActivityManagerService$20;->run()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$20;-><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;Landroid/os/DropBoxManager;)V
+HSPLcom/android/server/am/ActivityManagerService$20;->run()V
+HSPLcom/android/server/am/ActivityManagerService$21;-><init>()V
+HSPLcom/android/server/am/ActivityManagerService$21;->compare(Landroid/util/Pair;Landroid/util/Pair;)I
+HSPLcom/android/server/am/ActivityManagerService$21;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/am/ActivityManagerService$22;-><init>(Z)V
+PLcom/android/server/am/ActivityManagerService$22;->compare(Lcom/android/server/am/ActivityManagerService$MemItem;Lcom/android/server/am/ActivityManagerService$MemItem;)I
+HPLcom/android/server/am/ActivityManagerService$22;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/am/ActivityManagerService$23;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+HSPLcom/android/server/am/ActivityManagerService$23;->compare(Lcom/android/server/am/ProcessMemInfo;Lcom/android/server/am/ProcessMemInfo;)I
+HSPLcom/android/server/am/ActivityManagerService$23;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLcom/android/server/am/ActivityManagerService$2;-><init>(Lcom/android/server/am/ActivityManagerService;)V
PLcom/android/server/am/ActivityManagerService$2;->onActivityLaunchCancelled([B)V
PLcom/android/server/am/ActivityManagerService$2;->onActivityLaunchFinished([BJ)V
PLcom/android/server/am/ActivityManagerService$2;->onActivityLaunched([BI)V
PLcom/android/server/am/ActivityManagerService$2;->onIntentFailed()V
PLcom/android/server/am/ActivityManagerService$2;->onIntentStarted(Landroid/content/Intent;J)V
+PLcom/android/server/am/ActivityManagerService$2;->onReportFullyDrawn([BJ)V
HSPLcom/android/server/am/ActivityManagerService$3;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+PLcom/android/server/am/ActivityManagerService$3;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
HSPLcom/android/server/am/ActivityManagerService$4;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-HPLcom/android/server/am/ActivityManagerService$4;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
-HPLcom/android/server/am/ActivityManagerService$4;->allowFilterResult(Lcom/android/server/am/BroadcastFilter;Ljava/util/List;)Z
+HSPLcom/android/server/am/ActivityManagerService$4;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
+HSPLcom/android/server/am/ActivityManagerService$4;->allowFilterResult(Lcom/android/server/am/BroadcastFilter;Ljava/util/List;)Z
HPLcom/android/server/am/ActivityManagerService$4;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
PLcom/android/server/am/ActivityManagerService$4;->isPackageForFilter(Ljava/lang/String;Lcom/android/server/am/BroadcastFilter;)Z
-PLcom/android/server/am/ActivityManagerService$4;->newArray(I)[Landroid/content/IntentFilter;
-PLcom/android/server/am/ActivityManagerService$4;->newArray(I)[Lcom/android/server/am/BroadcastFilter;
-HPLcom/android/server/am/ActivityManagerService$4;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
-PLcom/android/server/am/ActivityManagerService$4;->newResult(Lcom/android/server/am/BroadcastFilter;II)Lcom/android/server/am/BroadcastFilter;
+HSPLcom/android/server/am/ActivityManagerService$4;->newArray(I)[Landroid/content/IntentFilter;
+HSPLcom/android/server/am/ActivityManagerService$4;->newArray(I)[Lcom/android/server/am/BroadcastFilter;
+HSPLcom/android/server/am/ActivityManagerService$4;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
+HSPLcom/android/server/am/ActivityManagerService$4;->newResult(Lcom/android/server/am/BroadcastFilter;II)Lcom/android/server/am/BroadcastFilter;
HSPLcom/android/server/am/ActivityManagerService$5;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Looper;)V
HPLcom/android/server/am/ActivityManagerService$5;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/am/ActivityManagerService$5;->lambda$handleMessage$0(Lcom/android/internal/os/ProcessCpuTracker$Stats;)Z
-PLcom/android/server/am/ActivityManagerService$6;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+HSPLcom/android/server/am/ActivityManagerService$6;-><init>(Lcom/android/server/am/ActivityManagerService;)V
HSPLcom/android/server/am/ActivityManagerService$7;-><init>(Lcom/android/server/am/ActivityManagerService;Ljava/lang/String;)V
HSPLcom/android/server/am/ActivityManagerService$7;->run()V
-PLcom/android/server/am/ActivityManagerService$8;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/pm/ApplicationInfo;IZIILandroid/content/pm/IPackageDataObserver;)V
-PLcom/android/server/am/ActivityManagerService$8;->onRemoveCompleted(Ljava/lang/String;Z)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$CpuBinder$1;-><init>(Lcom/android/server/am/ActivityManagerService$CpuBinder;)V
-PLcom/android/server/am/ActivityManagerService$CpuBinder;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$DbBinder;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$DevelopmentSettingsObserver;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$DevelopmentSettingsObserver;->onChange()V
-PLcom/android/server/am/ActivityManagerService$GraphicsBinder;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+HSPLcom/android/server/am/ActivityManagerService$AppDeathRecipient;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;ILandroid/app/IApplicationThread;)V
+HSPLcom/android/server/am/ActivityManagerService$AppDeathRecipient;->binderDied()V
+HSPLcom/android/server/am/ActivityManagerService$CpuBinder$1;-><init>(Lcom/android/server/am/ActivityManagerService$CpuBinder;)V
+PLcom/android/server/am/ActivityManagerService$CpuBinder$1;->dumpCritical(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+HSPLcom/android/server/am/ActivityManagerService$CpuBinder;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+PLcom/android/server/am/ActivityManagerService$CpuBinder;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService$DbBinder;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+PLcom/android/server/am/ActivityManagerService$DbBinder;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService$DevelopmentSettingsObserver;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+HSPLcom/android/server/am/ActivityManagerService$DevelopmentSettingsObserver;->onChange()V
+HSPLcom/android/server/am/ActivityManagerService$GraphicsBinder;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+PLcom/android/server/am/ActivityManagerService$GraphicsBinder;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)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
-PLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->update()V
+HSPLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->getPolicy()I
+HSPLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->getValidEnforcementPolicy(Ljava/lang/String;)I
+HSPLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->isDisabled()Z
+PLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+HSPLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->registerObserver()V
+HSPLcom/android/server/am/ActivityManagerService$HiddenApiSettings;->update()V
PLcom/android/server/am/ActivityManagerService$ImportanceToken;-><init>(Lcom/android/server/am/ActivityManagerService;ILandroid/os/IBinder;Ljava/lang/String;)V
HSPLcom/android/server/am/ActivityManagerService$Injector;-><init>(Landroid/content/Context;)V
PLcom/android/server/am/ActivityManagerService$Injector;->ensureHasNetworkManagementInternal()Z
HSPLcom/android/server/am/ActivityManagerService$Injector;->getAppOpsService(Ljava/io/File;Landroid/os/Handler;)Lcom/android/server/appop/AppOpsService;
HSPLcom/android/server/am/ActivityManagerService$Injector;->getUiHandler(Lcom/android/server/am/ActivityManagerService;)Landroid/os/Handler;
-HPLcom/android/server/am/ActivityManagerService$Injector;->isNetworkRestrictedForUid(I)Z
+HSPLcom/android/server/am/ActivityManagerService$Injector;->isNetworkRestrictedForUid(I)Z
HSPLcom/android/server/am/ActivityManagerService$IntentFirewallInterface;-><init>(Lcom/android/server/am/ActivityManagerService;)V
HSPLcom/android/server/am/ActivityManagerService$IntentFirewallInterface;->getAMSLock()Ljava/lang/Object;
+HSPLcom/android/server/am/ActivityManagerService$ItemMatcher;-><init>()V
+HSPLcom/android/server/am/ActivityManagerService$ItemMatcher;->build([Ljava/lang/String;I)I
+HSPLcom/android/server/am/ActivityManagerService$ItemMatcher;->match(Ljava/lang/Object;Landroid/content/ComponentName;)Z
HSPLcom/android/server/am/ActivityManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
HSPLcom/android/server/am/ActivityManagerService$Lifecycle;->getService()Lcom/android/server/am/ActivityManagerService;
HSPLcom/android/server/am/ActivityManagerService$Lifecycle;->onBootPhase(I)V
@@ -3277,45 +3628,53 @@ 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;
HSPLcom/android/server/am/ActivityManagerService$LocalService;-><init>(Lcom/android/server/am/ActivityManagerService;)V
PLcom/android/server/am/ActivityManagerService$LocalService;->broadcastCloseSystemDialogs(Ljava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService$LocalService;->broadcastGlobalConfigurationChanged(IZ)V
-PLcom/android/server/am/ActivityManagerService$LocalService;->broadcastIntentInPackage(Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZ)I
-HPLcom/android/server/am/ActivityManagerService$LocalService;->checkContentProviderAccess(Ljava/lang/String;I)Ljava/lang/String;
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->broadcastGlobalConfigurationChanged(IZ)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->broadcastIntentInPackage(Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZ)I
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->checkContentProviderAccess(Ljava/lang/String;I)Ljava/lang/String;
PLcom/android/server/am/ActivityManagerService$LocalService;->cleanUpServices(ILandroid/content/ComponentName;Landroid/content/Intent;)V
-PLcom/android/server/am/ActivityManagerService$LocalService;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->clearPendingBackup(I)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->clearPendingIntentAllowBgActivityStarts(Landroid/content/IIntentSender;Landroid/os/IBinder;)V
+HSPLcom/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;->getActivityInfoForUser(Landroid/content/pm/ActivityInfo;I)Landroid/content/pm/ActivityInfo;
+PLcom/android/server/am/ActivityManagerService$LocalService;->getActivityPresentationInfo(Landroid/os/IBinder;)Landroid/content/pm/ActivityPresentationInfo;
PLcom/android/server/am/ActivityManagerService$LocalService;->getCurrentProfileIds()[I
-PLcom/android/server/am/ActivityManagerService$LocalService;->getCurrentUserId()I
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->getCurrentUserId()I
HPLcom/android/server/am/ActivityManagerService$LocalService;->getMemoryStateForProcesses()Ljava/util/List;
-HPLcom/android/server/am/ActivityManagerService$LocalService;->getUidProcessState(I)I
+PLcom/android/server/am/ActivityManagerService$LocalService;->getTaskIdForActivity(Landroid/os/IBinder;Z)I
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->getUidProcessState(I)I
PLcom/android/server/am/ActivityManagerService$LocalService;->handleIncomingUser(IIIZILjava/lang/String;Ljava/lang/String;)I
PLcom/android/server/am/ActivityManagerService$LocalService;->hasStartedUserState(I)Z
HPLcom/android/server/am/ActivityManagerService$LocalService;->isAppBad(Landroid/content/pm/ApplicationInfo;)Z
+PLcom/android/server/am/ActivityManagerService$LocalService;->isAppForeground(I)Z
PLcom/android/server/am/ActivityManagerService$LocalService;->isBooted()Z
PLcom/android/server/am/ActivityManagerService$LocalService;->isBooting()Z
HPLcom/android/server/am/ActivityManagerService$LocalService;->isCurrentProfile(I)Z
-PLcom/android/server/am/ActivityManagerService$LocalService;->isRuntimeRestarted()Z
-PLcom/android/server/am/ActivityManagerService$LocalService;->isSplitConfigurationChange(I)Z
-PLcom/android/server/am/ActivityManagerService$LocalService;->isSystemReady()Z
-HPLcom/android/server/am/ActivityManagerService$LocalService;->isUidActive(I)Z
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->isRuntimeRestarted()Z
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->isSplitConfigurationChange(I)Z
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->isSystemReady()Z
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->isUidActive(I)Z
HPLcom/android/server/am/ActivityManagerService$LocalService;->isUserRunning(II)Z
-PLcom/android/server/am/ActivityManagerService$LocalService;->killAllBackgroundProcessesExcept(II)V
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->killAllBackgroundProcessesExcept(II)V
+PLcom/android/server/am/ActivityManagerService$LocalService;->killProcessesForRemovedTask(Ljava/util/ArrayList;)V
HPLcom/android/server/am/ActivityManagerService$LocalService;->notifyNetworkPolicyRulesUpdated(IJ)V
PLcom/android/server/am/ActivityManagerService$LocalService;->onWakefulnessChanged(I)V
-PLcom/android/server/am/ActivityManagerService$LocalService;->registerProcessObserver(Landroid/app/IProcessObserver;)V
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->registerProcessObserver(Landroid/app/IProcessObserver;)V
PLcom/android/server/am/ActivityManagerService$LocalService;->reportCurKeyguardUsageEvent(Z)V
PLcom/android/server/am/ActivityManagerService$LocalService;->scheduleAppGcs()V
PLcom/android/server/am/ActivityManagerService$LocalService;->sendForegroundProfileChanged(I)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;->setDeviceIdleWhitelist([I[I)V
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->setDeviceIdleWhitelist([I[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;->setPendingIntentWhitelistDuration(Landroid/content/IIntentSender;Landroid/os/IBinder;J)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->setPendingIntentAllowBgActivityStarts(Landroid/content/IIntentSender;Landroid/os/IBinder;I)V
+HPLcom/android/server/am/ActivityManagerService$LocalService;->setPendingIntentWhitelistDuration(Landroid/content/IIntentSender;Landroid/os/IBinder;J)V
PLcom/android/server/am/ActivityManagerService$LocalService;->shouldConfirmCredentials(I)Z
-PLcom/android/server/am/ActivityManagerService$LocalService;->startIsolatedProcess(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Runnable;)Z
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->startIsolatedProcess(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Runnable;)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;IZ)Landroid/content/ComponentName;
+HPLcom/android/server/am/ActivityManagerService$LocalService;->startServiceInPackage(ILandroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;IZ)Landroid/content/ComponentName;
+PLcom/android/server/am/ActivityManagerService$LocalService;->tempWhitelistForPendingIntent(IIIJLjava/lang/String;)V
PLcom/android/server/am/ActivityManagerService$LocalService;->trimApplications()V
PLcom/android/server/am/ActivityManagerService$LocalService;->updateActivityUsageStats(Landroid/content/ComponentName;IILandroid/os/IBinder;Landroid/content/ComponentName;)V
PLcom/android/server/am/ActivityManagerService$LocalService;->updateBatteryStats(Landroid/content/ComponentName;IIZ)V
@@ -3323,263 +3682,339 @@ PLcom/android/server/am/ActivityManagerService$LocalService;->updateCpuStats()V
PLcom/android/server/am/ActivityManagerService$LocalService;->updateDeviceIdleTempWhitelist([IIZ)V
PLcom/android/server/am/ActivityManagerService$LocalService;->updateForegroundTimeIfOnBattery(Ljava/lang/String;IJ)V
PLcom/android/server/am/ActivityManagerService$LocalService;->updateOomAdj()V
-PLcom/android/server/am/ActivityManagerService$LocalService;->updateOomLevelsForDisplay(I)V
+HSPLcom/android/server/am/ActivityManagerService$LocalService;->updateOomLevelsForDisplay(I)V
+HSPLcom/android/server/am/ActivityManagerService$MainHandler$1;-><init>(Lcom/android/server/am/ActivityManagerService$MainHandler;Ljava/util/ArrayList;)V
+HSPLcom/android/server/am/ActivityManagerService$MainHandler$1;->run()V
HSPLcom/android/server/am/ActivityManagerService$MainHandler;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Looper;)V
-PLcom/android/server/am/ActivityManagerService$MainHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/am/ActivityManagerService$MemBinder$1;-><init>(Lcom/android/server/am/ActivityManagerService$MemBinder;)V
-PLcom/android/server/am/ActivityManagerService$MemBinder;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$PackageAssociationInfo;-><init>(Lcom/android/server/am/ActivityManagerService;Ljava/lang/String;Landroid/util/ArraySet;Z)V
-PLcom/android/server/am/ActivityManagerService$PendingTempWhitelist;-><init>(IJLjava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService$PermissionController;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$PermissionController;->checkPermission(Ljava/lang/String;II)Z
+HSPLcom/android/server/am/ActivityManagerService$MainHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/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
+HSPLcom/android/server/am/ActivityManagerService$MemBinder;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+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;JJJI)V
+HPLcom/android/server/am/ActivityManagerService$MemItem;-><init>(Ljava/lang/String;Ljava/lang/String;JJJIZ)V
+PLcom/android/server/am/ActivityManagerService$MemoryUsageDumpOptions;-><init>()V
+PLcom/android/server/am/ActivityManagerService$MemoryUsageDumpOptions;-><init>(Lcom/android/server/am/ActivityManagerService$1;)V
+HSPLcom/android/server/am/ActivityManagerService$PackageAssociationInfo;-><init>(Lcom/android/server/am/ActivityManagerService;Ljava/lang/String;Landroid/util/ArraySet;Z)V
+HPLcom/android/server/am/ActivityManagerService$PackageAssociationInfo;->isPackageAssociationAllowed(Ljava/lang/String;)Z
+HPLcom/android/server/am/ActivityManagerService$PendingTempWhitelist;-><init>(IJLjava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService$PermissionController;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+HSPLcom/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$PermissionController;->isRuntimePermission(Ljava/lang/String;)Z
+HSPLcom/android/server/am/ActivityManagerService$PermissionController;->isRuntimePermission(Ljava/lang/String;)Z
PLcom/android/server/am/ActivityManagerService$PermissionController;->noteOp(Ljava/lang/String;ILjava/lang/String;)I
HSPLcom/android/server/am/ActivityManagerService$PidMap;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$PidMap;->get(I)Lcom/android/server/am/ProcessRecord;
-PLcom/android/server/am/ActivityManagerService$PidMap;->indexOfKey(I)I
-PLcom/android/server/am/ActivityManagerService$PidMap;->put(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ActivityManagerService$PidMap;->remove(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ActivityManagerService$PidMap;->size()I
-PLcom/android/server/am/ActivityManagerService$PidMap;->valueAt(I)Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ActivityManagerService$PidMap;->get(I)Lcom/android/server/am/ProcessRecord;
+HPLcom/android/server/am/ActivityManagerService$PidMap;->indexOfKey(I)I
+PLcom/android/server/am/ActivityManagerService$PidMap;->keyAt(I)I
+HSPLcom/android/server/am/ActivityManagerService$PidMap;->put(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ActivityManagerService$PidMap;->remove(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ActivityManagerService$PidMap;->size()I
+HSPLcom/android/server/am/ActivityManagerService$PidMap;->valueAt(I)Lcom/android/server/am/ProcessRecord;
PLcom/android/server/am/ActivityManagerService$ProcStatsRunnable;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessStatsService;)V
PLcom/android/server/am/ActivityManagerService$ProcStatsRunnable;->run()V
PLcom/android/server/am/ActivityManagerService$ProcessChangeItem;-><init>()V
-PLcom/android/server/am/ActivityManagerService$ProcessInfoService;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+HSPLcom/android/server/am/ActivityManagerService$ProcessInfoService;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+PLcom/android/server/am/ActivityManagerService$ProcessInfoService;->getProcessStatesAndOomScoresFromPids([I[I[I)V
HSPLcom/android/server/am/ActivityManagerService$ProfileData;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService$ProfileData;->getProfileApp()Ljava/lang/String;
-PLcom/android/server/am/ActivityManagerService$ProfileData;->getProfileProc()Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ActivityManagerService$ProfileData;->getProfileApp()Ljava/lang/String;
+HSPLcom/android/server/am/ActivityManagerService$ProfileData;->getProfileProc()Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ActivityManagerService$ProfileData;->getProfilerInfo()Landroid/app/ProfilerInfo;
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$UidObserverRegistration;-><clinit>()V
-PLcom/android/server/am/ActivityManagerService$UidObserverRegistration;-><init>(ILjava/lang/String;II)V
+HSPLcom/android/server/am/ActivityManagerService$UiHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/am/ActivityManagerService$UidObserverRegistration;-><clinit>()V
+HSPLcom/android/server/am/ActivityManagerService$UidObserverRegistration;-><init>(ILjava/lang/String;II)V
+HPLcom/android/server/am/ActivityManagerService$UidObserverRegistration;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)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;->access$100(Lcom/android/server/am/ActivityManagerService;)J
HSPLcom/android/server/am/ActivityManagerService;->access$1000(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService;->access$1100(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService;->access$1200(Lcom/android/server/am/ActivityManagerService;Ljava/lang/String;I)V
+PLcom/android/server/am/ActivityManagerService;->access$102(Lcom/android/server/am/ActivityManagerService;J)J
+HSPLcom/android/server/am/ActivityManagerService;->access$1100(Lcom/android/server/am/ActivityManagerService;)V
PLcom/android/server/am/ActivityManagerService;->access$1700(Lcom/android/server/am/ActivityManagerService;Landroid/content/pm/ApplicationInfo;)Z
+PLcom/android/server/am/ActivityManagerService;->access$1800(Lcom/android/server/am/ActivityManagerService;I)V
PLcom/android/server/am/ActivityManagerService;->access$200(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/ActivityManagerService;->access$300(Lcom/android/server/am/ActivityManagerService;II)V
+HSPLcom/android/server/am/ActivityManagerService;->access$300(Lcom/android/server/am/ActivityManagerService;II)V
PLcom/android/server/am/ActivityManagerService;->access$500(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;)V
PLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZLjava/lang/String;)Lcom/android/server/am/ProcessRecord;
PLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZZZLjava/lang/String;)Lcom/android/server/am/ProcessRecord;
PLcom/android/server/am/ActivityManagerService;->addAppLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZZZZLjava/lang/String;)Lcom/android/server/am/ProcessRecord;
-PLcom/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
-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;)V
-PLcom/android/server/am/ActivityManagerService;->addPackageDependency(Ljava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->addServiceToMap(Landroid/util/ArrayMap;Ljava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->appDiedLocked(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ActivityManagerService;->appDiedLocked(Lcom/android/server/am/ProcessRecord;ILandroid/app/IApplicationThread;Z)V
-HPLcom/android/server/am/ActivityManagerService;->appRestrictedInBackgroundLocked(ILjava/lang/String;I)I
+HSPLcom/android/server/am/ActivityManagerService;->addBackgroundCheckViolationLocked(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService;->addBroadcastStatLocked(Ljava/lang/String;Ljava/lang/String;IIJ)V
+HSPLcom/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;)V
+HSPLcom/android/server/am/ActivityManagerService;->addPackageDependency(Ljava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService;->addProcessToGcListLocked(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ActivityManagerService;->addServiceToMap(Landroid/util/ArrayMap;Ljava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService;->appDiedLocked(Lcom/android/server/am/ProcessRecord;ILandroid/app/IApplicationThread;Z)V
+HSPLcom/android/server/am/ActivityManagerService;->appRestrictedInBackgroundLocked(ILjava/lang/String;I)I
PLcom/android/server/am/ActivityManagerService;->appServicesRestrictedInBackgroundLocked(ILjava/lang/String;I)I
-PLcom/android/server/am/ActivityManagerService;->appendDropBoxProcessHeaders(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/StringBuilder;)V
-PLcom/android/server/am/ActivityManagerService;->attachApplication(Landroid/app/IApplicationThread;J)V
-PLcom/android/server/am/ActivityManagerService;->attachApplicationLocked(Landroid/app/IApplicationThread;IIJ)Z
+HSPLcom/android/server/am/ActivityManagerService;->appendBasicMemEntry(Ljava/lang/StringBuilder;IIJJLjava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService;->appendDropBoxProcessHeaders(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/StringBuilder;)V
+HSPLcom/android/server/am/ActivityManagerService;->appendMemBucket(Ljava/lang/StringBuilder;JLjava/lang/String;Z)V
+HSPLcom/android/server/am/ActivityManagerService;->appendMemInfo(Ljava/lang/StringBuilder;Lcom/android/server/am/ProcessMemInfo;)V
+HSPLcom/android/server/am/ActivityManagerService;->attachApplication(Landroid/app/IApplicationThread;J)V
+HSPLcom/android/server/am/ActivityManagerService;->attachApplicationLocked(Landroid/app/IApplicationThread;IIJ)Z
PLcom/android/server/am/ActivityManagerService;->backgroundServicesFinishedLocked(I)V
PLcom/android/server/am/ActivityManagerService;->backupAgentCreated(Ljava/lang/String;Landroid/os/IBinder;I)V
-PLcom/android/server/am/ActivityManagerService;->batteryNeedsCpuUpdate()V
-PLcom/android/server/am/ActivityManagerService;->batteryPowerChanged(Z)V
-PLcom/android/server/am/ActivityManagerService;->batterySendBroadcast(Landroid/content/Intent;)V
+HSPLcom/android/server/am/ActivityManagerService;->batteryNeedsCpuUpdate()V
+HSPLcom/android/server/am/ActivityManagerService;->batteryPowerChanged(Z)V
+HSPLcom/android/server/am/ActivityManagerService;->batterySendBroadcast(Landroid/content/Intent;)V
+HSPLcom/android/server/am/ActivityManagerService;->batteryStatsReset()V
PLcom/android/server/am/ActivityManagerService;->bindBackupAgent(Ljava/lang/String;II)Z
-HPLcom/android/server/am/ActivityManagerService;->bindIsolatedService(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;ILjava/lang/String;Ljava/lang/String;I)I
-HPLcom/android/server/am/ActivityManagerService;->boostPriorityForLockedSection()V
+HSPLcom/android/server/am/ActivityManagerService;->bindIsolatedService(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IServiceConnection;ILjava/lang/String;Ljava/lang/String;I)I
+HSPLcom/android/server/am/ActivityManagerService;->boostPriorityForLockedSection()V
PLcom/android/server/am/ActivityManagerService;->bootAnimationComplete()V
-HPLcom/android/server/am/ActivityManagerService;->broadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
-PLcom/android/server/am/ActivityManagerService;->broadcastIntentInPackage(Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZ)I
-HPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIII)I
-HPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIIIZ)I
-HPLcom/android/server/am/ActivityManagerService;->broadcastQueueForIntent(Landroid/content/Intent;)Lcom/android/server/am/BroadcastQueue;
-PLcom/android/server/am/ActivityManagerService;->cancelIntentSender(Landroid/content/IIntentSender;)V
-PLcom/android/server/am/ActivityManagerService;->checkAppInLaunchingProvidersLocked(Lcom/android/server/am/ProcessRecord;)Z
-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;->checkCallingPermission(Ljava/lang/String;)I
-HPLcom/android/server/am/ActivityManagerService;->checkComponentPermission(Ljava/lang/String;IIIZ)I
-HPLcom/android/server/am/ActivityManagerService;->checkContentProviderAccess(Ljava/lang/String;I)Ljava/lang/String;
-HPLcom/android/server/am/ActivityManagerService;->checkContentProviderAssociation(Lcom/android/server/am/ProcessRecord;ILandroid/content/pm/ProviderInfo;)Ljava/lang/String;
-HPLcom/android/server/am/ActivityManagerService;->checkContentProviderPermissionLocked(Landroid/content/pm/ProviderInfo;Lcom/android/server/am/ProcessRecord;IZ)Ljava/lang/String;
-PLcom/android/server/am/ActivityManagerService;->checkExcessivePowerUsageLocked()V
-HPLcom/android/server/am/ActivityManagerService;->checkPermission(Ljava/lang/String;II)I
+HSPLcom/android/server/am/ActivityManagerService;->broadcastIntent(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZI)I
+HPLcom/android/server/am/ActivityManagerService;->broadcastIntentInPackage(Ljava/lang/String;IIILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;ZZIZ)I
+HSPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIII)I
+HSPLcom/android/server/am/ActivityManagerService;->broadcastIntentLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;[Ljava/lang/String;ILandroid/os/Bundle;ZZIIIIIZ)I
+HSPLcom/android/server/am/ActivityManagerService;->broadcastQueueForIntent(Landroid/content/Intent;)Lcom/android/server/am/BroadcastQueue;
+PLcom/android/server/am/ActivityManagerService;->canClearIdentity(III)Z
+PLcom/android/server/am/ActivityManagerService;->canGcNowLocked()Z
+HPLcom/android/server/am/ActivityManagerService;->cancelIntentSender(Landroid/content/IIntentSender;)V
+HSPLcom/android/server/am/ActivityManagerService;->checkAppInLaunchingProvidersLocked(Lcom/android/server/am/ProcessRecord;)Z
+HSPLcom/android/server/am/ActivityManagerService;->checkBroadcastFromSystem(Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;IZLjava/util/List;)V
+HSPLcom/android/server/am/ActivityManagerService;->checkCallingPermission(Ljava/lang/String;)I
+HSPLcom/android/server/am/ActivityManagerService;->checkComponentPermission(Ljava/lang/String;IIIZ)I
+HSPLcom/android/server/am/ActivityManagerService;->checkContentProviderAccess(Ljava/lang/String;I)Ljava/lang/String;
+HSPLcom/android/server/am/ActivityManagerService;->checkContentProviderAssociation(Lcom/android/server/am/ProcessRecord;ILandroid/content/pm/ProviderInfo;)Ljava/lang/String;
+HSPLcom/android/server/am/ActivityManagerService;->checkContentProviderPermissionLocked(Landroid/content/pm/ProviderInfo;Lcom/android/server/am/ProcessRecord;IZ)Ljava/lang/String;
+HPLcom/android/server/am/ActivityManagerService;->checkExcessivePowerUsageLocked()V
+HSPLcom/android/server/am/ActivityManagerService;->checkPermission(Ljava/lang/String;II)I
HPLcom/android/server/am/ActivityManagerService;->checkPermissionWithToken(Ljava/lang/String;IILandroid/os/IBinder;)I
-HPLcom/android/server/am/ActivityManagerService;->checkTime(JLjava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->checkUriPermission(Landroid/net/Uri;IIIILandroid/os/IBinder;)I
-HPLcom/android/server/am/ActivityManagerService;->cleanUpApplicationRecordLocked(Lcom/android/server/am/ProcessRecord;ZZIZ)Z
-PLcom/android/server/am/ActivityManagerService;->cleanupAppInLaunchingProvidersLocked(Lcom/android/server/am/ProcessRecord;Z)Z
+HSPLcom/android/server/am/ActivityManagerService;->checkTime(JLjava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService;->checkUriPermission(Landroid/net/Uri;IIIILandroid/os/IBinder;)I
+HSPLcom/android/server/am/ActivityManagerService;->cleanUpApplicationRecordLocked(Lcom/android/server/am/ProcessRecord;ZZIZ)Z
+HSPLcom/android/server/am/ActivityManagerService;->cleanupAppInLaunchingProvidersLocked(Lcom/android/server/am/ProcessRecord;Z)Z
PLcom/android/server/am/ActivityManagerService;->cleanupDisabledPackageComponentsLocked(Ljava/lang/String;I[Ljava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->clearApplicationUserData(Ljava/lang/String;ZLandroid/content/pm/IPackageDataObserver;I)Z
+PLcom/android/server/am/ActivityManagerService;->clearPendingBackup(I)V
PLcom/android/server/am/ActivityManagerService;->closeSystemDialogs(Ljava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->collectReceiverComponents(Landroid/content/Intent;Ljava/lang/String;I[I)Ljava/util/List;
-PLcom/android/server/am/ActivityManagerService;->compatibilityInfoForPackage(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
-PLcom/android/server/am/ActivityManagerService;->decProviderCountLocked(Lcom/android/server/am/ContentProviderConnection;Lcom/android/server/am/ContentProviderRecord;Landroid/os/IBinder;Z)Z
-PLcom/android/server/am/ActivityManagerService;->dispatchProcessDied(II)V
+PLcom/android/server/am/ActivityManagerService;->collectProcesses(Ljava/io/PrintWriter;IZ[Ljava/lang/String;)Ljava/util/ArrayList;
+HSPLcom/android/server/am/ActivityManagerService;->collectReceiverComponents(Landroid/content/Intent;Ljava/lang/String;I[I)Ljava/util/List;
+HSPLcom/android/server/am/ActivityManagerService;->compatibilityInfoForPackage(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
+PLcom/android/server/am/ActivityManagerService;->createAnrDumpFile(Ljava/io/File;)Ljava/io/File;
+HPLcom/android/server/am/ActivityManagerService;->decProviderCountLocked(Lcom/android/server/am/ContentProviderConnection;Lcom/android/server/am/ContentProviderRecord;Landroid/os/IBinder;Z)Z
+HSPLcom/android/server/am/ActivityManagerService;->dispatchProcessDied(II)V
HPLcom/android/server/am/ActivityManagerService;->dispatchProcessesChanged()V
-HPLcom/android/server/am/ActivityManagerService;->dispatchUidsChanged()V
-HPLcom/android/server/am/ActivityManagerService;->dispatchUidsChangedForObserver(Landroid/app/IUidObserver;Lcom/android/server/am/ActivityManagerService$UidObserverRegistration;I)V
+HSPLcom/android/server/am/ActivityManagerService;->dispatchUidsChanged()V
+HSPLcom/android/server/am/ActivityManagerService;->dispatchUidsChangedForObserver(Landroid/app/IUidObserver;Lcom/android/server/am/ActivityManagerService$UidObserverRegistration;I)V
PLcom/android/server/am/ActivityManagerService;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
-PLcom/android/server/am/ActivityManagerService;->doLowMemReportIfNeededLocked(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ActivityManagerService;->doLowMemReportIfNeededLocked(Lcom/android/server/am/ProcessRecord;)V
PLcom/android/server/am/ActivityManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->dumpAllowedAssociationsLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService;->dumpApplicationMemoryUsage(Ljava/io/FileDescriptor;Lcom/android/server/am/ActivityManagerService$MemoryUsageDumpOptions;[Ljava/lang/String;ZLjava/util/ArrayList;)V
+HPLcom/android/server/am/ActivityManagerService;->dumpApplicationMemoryUsage(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/am/ActivityManagerService$MemoryUsageDumpOptions;[Ljava/lang/String;ZLjava/util/ArrayList;Ljava/io/PrintWriter;)V
+PLcom/android/server/am/ActivityManagerService;->dumpApplicationMemoryUsage(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;ZLjava/io/PrintWriter;Z)V
+PLcom/android/server/am/ActivityManagerService;->dumpApplicationMemoryUsageHeader(Ljava/io/PrintWriter;JJZZ)V
+PLcom/android/server/am/ActivityManagerService;->dumpBinderProxies(Ljava/io/PrintWriter;I)V
+PLcom/android/server/am/ActivityManagerService;->dumpBinderProxiesCounts(Ljava/io/PrintWriter;Ljava/lang/String;)Z
PLcom/android/server/am/ActivityManagerService;->dumpBroadcastStatsCheckinLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->enforceNotIsolatedCaller(Ljava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->dumpBroadcastStatsLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->dumpBroadcastsLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/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;ZZI)V
+PLcom/android/server/am/ActivityManagerService;->dumpGraphicsHardwareUsage(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService;->dumpJavaTracesTombstoned(ILjava/lang/String;J)J
+PLcom/android/server/am/ActivityManagerService;->dumpLmkLocked(Ljava/io/PrintWriter;)Z
+PLcom/android/server/am/ActivityManagerService;->dumpLruEntryLocked(Ljava/io/PrintWriter;ILcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/ActivityManagerService;->dumpLruLocked(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService;->dumpMemItems(Landroid/util/proto/ProtoOutputStream;JLjava/lang/String;Ljava/util/ArrayList;ZZZ)V
+HPLcom/android/server/am/ActivityManagerService;->dumpMemItems(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;ZZZZ)V
+HSPLcom/android/server/am/ActivityManagerService;->dumpProcessList(Ljava/io/PrintWriter;Lcom/android/server/am/ActivityManagerService;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/server/am/ActivityManagerService;->dumpProcessOomList(Ljava/io/PrintWriter;Lcom/android/server/am/ActivityManagerService;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Z
+HSPLcom/android/server/am/ActivityManagerService;->dumpProcessesLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;I)V
+HSPLcom/android/server/am/ActivityManagerService;->dumpProcessesToGc(Ljava/io/PrintWriter;ZLjava/lang/String;)Z
+PLcom/android/server/am/ActivityManagerService;->dumpProvider(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;IZ)Z
+PLcom/android/server/am/ActivityManagerService;->dumpProviderProto(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;)Z
+PLcom/android/server/am/ActivityManagerService;->dumpProvidersLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->dumpStackTraces(Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V
+PLcom/android/server/am/ActivityManagerService;->dumpStackTraces(Ljava/util/ArrayList;Lcom/android/internal/os/ProcessCpuTracker;Landroid/util/SparseArray;Ljava/util/ArrayList;)Ljava/io/File;
+HSPLcom/android/server/am/ActivityManagerService;->dumpUids(Ljava/io/PrintWriter;Ljava/lang/String;ILcom/android/server/am/ActiveUids;Ljava/lang/String;Z)Z
+HSPLcom/android/server/am/ActivityManagerService;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService;->enforceNotIsolatedCaller(Ljava/lang/String;)V
PLcom/android/server/am/ActivityManagerService;->enforcePermission(Ljava/lang/String;IILjava/lang/String;)V
HPLcom/android/server/am/ActivityManagerService;->enqueueProcessChangeItemLocked(II)Lcom/android/server/am/ActivityManagerService$ProcessChangeItem;
-HPLcom/android/server/am/ActivityManagerService;->enqueueUidChangeLocked(Lcom/android/server/am/UidRecord;II)V
-HPLcom/android/server/am/ActivityManagerService;->ensureAllowedAssociations()V
+HSPLcom/android/server/am/ActivityManagerService;->enqueueUidChangeLocked(Lcom/android/server/am/UidRecord;II)V
+HSPLcom/android/server/am/ActivityManagerService;->ensureAllowedAssociations()V
PLcom/android/server/am/ActivityManagerService;->ensureBootCompleted()V
-PLcom/android/server/am/ActivityManagerService;->findAppProcess(Landroid/os/IBinder;Ljava/lang/String;)Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ActivityManagerService;->findAppProcess(Landroid/os/IBinder;Ljava/lang/String;)Lcom/android/server/am/ProcessRecord;
PLcom/android/server/am/ActivityManagerService;->finishBooting()V
-PLcom/android/server/am/ActivityManagerService;->finishForceStopPackageLocked(Ljava/lang/String;I)V
HPLcom/android/server/am/ActivityManagerService;->finishReceiver(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/Bundle;ZI)V
-PLcom/android/server/am/ActivityManagerService;->forceStopPackageLocked(Ljava/lang/String;ILjava/lang/String;)V
PLcom/android/server/am/ActivityManagerService;->forceStopPackageLocked(Ljava/lang/String;IZZZZZILjava/lang/String;)Z
-PLcom/android/server/am/ActivityManagerService;->generateApplicationProvidersLocked(Lcom/android/server/am/ProcessRecord;)Ljava/util/List;
-PLcom/android/server/am/ActivityManagerService;->getActivityInfoForUser(Landroid/content/pm/ActivityInfo;I)Landroid/content/pm/ActivityInfo;
+HSPLcom/android/server/am/ActivityManagerService;->generateApplicationProvidersLocked(Lcom/android/server/am/ProcessRecord;)Ljava/util/List;
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;
-PLcom/android/server/am/ActivityManagerService;->getAppOpsService()Lcom/android/internal/app/IAppOpsService;
-HPLcom/android/server/am/ActivityManagerService;->getAppStartModeLocked(ILjava/lang/String;IIZZZ)I
-HPLcom/android/server/am/ActivityManagerService;->getBackgroundLaunchBroadcasts()Landroid/util/ArraySet;
-PLcom/android/server/am/ActivityManagerService;->getCommonServicesLocked(Z)Landroid/util/ArrayMap;
+HPLcom/android/server/am/ActivityManagerService;->getAppInfoForUser(Landroid/content/pm/ApplicationInfo;I)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/am/ActivityManagerService;->getAppOpsService()Lcom/android/internal/app/IAppOpsService;
+HSPLcom/android/server/am/ActivityManagerService;->getAppStartModeLocked(ILjava/lang/String;IIZZZ)I
+HSPLcom/android/server/am/ActivityManagerService;->getBackgroundLaunchBroadcasts()Landroid/util/ArraySet;
+HSPLcom/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;
-HPLcom/android/server/am/ActivityManagerService;->getContentProviderImpl(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;ZI)Landroid/app/ContentProviderHolder;
-HPLcom/android/server/am/ActivityManagerService;->getCurrentUser()Landroid/content/pm/UserInfo;
-HPLcom/android/server/am/ActivityManagerService;->getIntentSender(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender;
-PLcom/android/server/am/ActivityManagerService;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V
-PLcom/android/server/am/ActivityManagerService;->getMemoryTrimLevel()I
+HSPLcom/android/server/am/ActivityManagerService;->getContentProvider(Landroid/app/IApplicationThread;Ljava/lang/String;Ljava/lang/String;IZ)Landroid/app/ContentProviderHolder;
+PLcom/android/server/am/ActivityManagerService;->getContentProviderExternalUnchecked(Ljava/lang/String;Landroid/os/IBinder;ILjava/lang/String;I)Landroid/app/ContentProviderHolder;
+HSPLcom/android/server/am/ActivityManagerService;->getContentProviderImpl(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;ZI)Landroid/app/ContentProviderHolder;
+HSPLcom/android/server/am/ActivityManagerService;->getCurrentUser()Landroid/content/pm/UserInfo;
+PLcom/android/server/am/ActivityManagerService;->getIntentForIntentSender(Landroid/content/IIntentSender;)Landroid/content/Intent;
+HSPLcom/android/server/am/ActivityManagerService;->getIntentSender(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;I)Landroid/content/IIntentSender;
+HSPLcom/android/server/am/ActivityManagerService;->getKsmInfo()[J
+PLcom/android/server/am/ActivityManagerService;->getLowRamTimeSinceIdle(J)J
+HSPLcom/android/server/am/ActivityManagerService;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V
+HPLcom/android/server/am/ActivityManagerService;->getMemoryTrimLevel()I
PLcom/android/server/am/ActivityManagerService;->getMyMemoryState(Landroid/app/ActivityManager$RunningAppProcessInfo;)V
-HPLcom/android/server/am/ActivityManagerService;->getPackageForIntentSender(Landroid/content/IIntentSender;)Ljava/lang/String;
-HPLcom/android/server/am/ActivityManagerService;->getPackageManagerInternalLocked()Landroid/content/pm/PackageManagerInternal;
-HPLcom/android/server/am/ActivityManagerService;->getPackageProcessState(Ljava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/server/am/ActivityManagerService;->getPackageForIntentSender(Landroid/content/IIntentSender;)Ljava/lang/String;
+HSPLcom/android/server/am/ActivityManagerService;->getPackageManagerInternalLocked()Landroid/content/pm/PackageManagerInternal;
+HSPLcom/android/server/am/ActivityManagerService;->getPackageProcessState(Ljava/lang/String;Ljava/lang/String;)I
PLcom/android/server/am/ActivityManagerService;->getProcessMemoryInfo([I)[Landroid/os/Debug$MemoryInfo;
-HPLcom/android/server/am/ActivityManagerService;->getProcessRecordLocked(Ljava/lang/String;IZ)Lcom/android/server/am/ProcessRecord;
+PLcom/android/server/am/ActivityManagerService;->getProcessNames()Lcom/android/internal/app/ProcessMap;
+HSPLcom/android/server/am/ActivityManagerService;->getProcessRecordLocked(Ljava/lang/String;IZ)Lcom/android/server/am/ProcessRecord;
+PLcom/android/server/am/ActivityManagerService;->getProcessStatesAndOomScoresForPIDs([I[I[I)V
+HPLcom/android/server/am/ActivityManagerService;->getProcessesInErrorState()Ljava/util/List;
PLcom/android/server/am/ActivityManagerService;->getProviderInfoLocked(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
-PLcom/android/server/am/ActivityManagerService;->getProviderMimeType(Landroid/net/Uri;I)Ljava/lang/String;
-HPLcom/android/server/am/ActivityManagerService;->getRecordForAppLocked(Landroid/app/IApplicationThread;)Lcom/android/server/am/ProcessRecord;
-PLcom/android/server/am/ActivityManagerService;->getRunningAppProcesses()Ljava/util/List;
+HPLcom/android/server/am/ActivityManagerService;->getProviderMimeType(Landroid/net/Uri;I)Ljava/lang/String;
+HSPLcom/android/server/am/ActivityManagerService;->getRecordForAppLocked(Landroid/app/IApplicationThread;)Lcom/android/server/am/ProcessRecord;
+HPLcom/android/server/am/ActivityManagerService;->getRunningAppProcesses()Ljava/util/List;
PLcom/android/server/am/ActivityManagerService;->getRunningUserIds()[I
PLcom/android/server/am/ActivityManagerService;->getServices(II)Ljava/util/List;
-PLcom/android/server/am/ActivityManagerService;->getTagForIntentSender(Landroid/content/IIntentSender;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/am/ActivityManagerService;->getTagForIntentSenderLocked(Lcom/android/server/am/PendingIntentRecord;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/am/ActivityManagerService;->getTagForIntentSender(Landroid/content/IIntentSender;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/am/ActivityManagerService;->getTagForIntentSenderLocked(Lcom/android/server/am/PendingIntentRecord;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/am/ActivityManagerService;->getTasks(I)Ljava/util/List;
HSPLcom/android/server/am/ActivityManagerService;->getTopAppLocked()Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ActivityManagerService;->getUidForIntentSender(Landroid/content/IIntentSender;)I
+HSPLcom/android/server/am/ActivityManagerService;->getUidForIntentSender(Landroid/content/IIntentSender;)I
PLcom/android/server/am/ActivityManagerService;->getUidFromIntent(Landroid/content/Intent;)I
PLcom/android/server/am/ActivityManagerService;->getUidProcessState(ILjava/lang/String;)I
-HPLcom/android/server/am/ActivityManagerService;->getUidState(I)I
-HPLcom/android/server/am/ActivityManagerService;->grantImplicitAccess(ILandroid/content/Intent;II)V
+HSPLcom/android/server/am/ActivityManagerService;->getUidState(I)I
+HSPLcom/android/server/am/ActivityManagerService;->grantImplicitAccess(ILandroid/content/Intent;II)V
PLcom/android/server/am/ActivityManagerService;->grantUriPermission(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/net/Uri;II)V
-PLcom/android/server/am/ActivityManagerService;->handleAppDiedLocked(Lcom/android/server/am/ProcessRecord;ZZ)V
+HSPLcom/android/server/am/ActivityManagerService;->handleAppDiedLocked(Lcom/android/server/am/ProcessRecord;ZZ)V
PLcom/android/server/am/ActivityManagerService;->handleApplicationCrash(Landroid/os/IBinder;Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;)V
PLcom/android/server/am/ActivityManagerService;->handleApplicationCrashInner(Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Landroid/app/ApplicationErrorReport$CrashInfo;)V
-PLcom/android/server/am/ActivityManagerService;->handleApplicationStrictModeViolation(Landroid/os/IBinder;ILandroid/os/StrictMode$ViolationInfo;)V
+HSPLcom/android/server/am/ActivityManagerService;->handleApplicationStrictModeViolation(Landroid/os/IBinder;ILandroid/os/StrictMode$ViolationInfo;)V
PLcom/android/server/am/ActivityManagerService;->handleApplicationWtf(Landroid/os/IBinder;Ljava/lang/String;ZLandroid/app/ApplicationErrorReport$ParcelableCrashInfo;)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;->hasUsageStatsPermission(Ljava/lang/String;)Z
+HSPLcom/android/server/am/ActivityManagerService;->handleIncomingUser(IIIZZLjava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/server/am/ActivityManagerService;->hasUsageStatsPermission(Ljava/lang/String;)Z
PLcom/android/server/am/ActivityManagerService;->idleUids()V
-HPLcom/android/server/am/ActivityManagerService;->incProviderCountLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ContentProviderRecord;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Z)Lcom/android/server/am/ContentProviderConnection;
+HSPLcom/android/server/am/ActivityManagerService;->incProviderCountLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ContentProviderRecord;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Z)Lcom/android/server/am/ContentProviderConnection;
HSPLcom/android/server/am/ActivityManagerService;->initPowerManagement()V
PLcom/android/server/am/ActivityManagerService;->installEncryptionUnawareProviders(I)V
-PLcom/android/server/am/ActivityManagerService;->installSystemProviders()V
-PLcom/android/server/am/ActivityManagerService;->isAllowedWhileBooting(Landroid/content/pm/ApplicationInfo;)Z
+HSPLcom/android/server/am/ActivityManagerService;->installSystemProviders()V
+HSPLcom/android/server/am/ActivityManagerService;->isAllowedWhileBooting(Landroid/content/pm/ApplicationInfo;)Z
HPLcom/android/server/am/ActivityManagerService;->isAppBad(Landroid/content/pm/ApplicationInfo;)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;->isIntentSenderABroadcast(Landroid/content/IIntentSender;)Z
-PLcom/android/server/am/ActivityManagerService;->isIntentSenderAForegroundService(Landroid/content/IIntentSender;)Z
-PLcom/android/server/am/ActivityManagerService;->isIntentSenderAnActivity(Landroid/content/IIntentSender;)Z
+PLcom/android/server/am/ActivityManagerService;->isAppForeground(I)Z
+HSPLcom/android/server/am/ActivityManagerService;->isAppStartModeDisabled(ILjava/lang/String;)Z
+PLcom/android/server/am/ActivityManagerService;->isBackgroundRestricted(Ljava/lang/String;)Z
+HSPLcom/android/server/am/ActivityManagerService;->isDeviceProvisioned(Landroid/content/Context;)Z
+HSPLcom/android/server/am/ActivityManagerService;->isInstantApp(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;I)Z
+HPLcom/android/server/am/ActivityManagerService;->isIntentSenderABroadcast(Landroid/content/IIntentSender;)Z
+HPLcom/android/server/am/ActivityManagerService;->isIntentSenderAForegroundService(Landroid/content/IIntentSender;)Z
+HPLcom/android/server/am/ActivityManagerService;->isIntentSenderAnActivity(Landroid/content/IIntentSender;)Z
HPLcom/android/server/am/ActivityManagerService;->isOnDeviceIdleWhitelistLocked(IZ)Z
-PLcom/android/server/am/ActivityManagerService;->isOnOffloadQueue(I)Z
-PLcom/android/server/am/ActivityManagerService;->isPendingBroadcastProcessLocked(I)Z
-PLcom/android/server/am/ActivityManagerService;->isProcessAliveLocked(Lcom/android/server/am/ProcessRecord;)Z
+HSPLcom/android/server/am/ActivityManagerService;->isOnOffloadQueue(I)Z
+HSPLcom/android/server/am/ActivityManagerService;->isPendingBroadcastProcessLocked(I)Z
+HSPLcom/android/server/am/ActivityManagerService;->isProcessAliveLocked(Lcom/android/server/am/ProcessRecord;)Z
HPLcom/android/server/am/ActivityManagerService;->isReceivingBroadcastLocked(Lcom/android/server/am/ProcessRecord;Landroid/util/ArraySet;)Z
-HPLcom/android/server/am/ActivityManagerService;->isSingleton(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;I)Z
+HSPLcom/android/server/am/ActivityManagerService;->isSingleton(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;I)Z
HPLcom/android/server/am/ActivityManagerService;->isUidActive(ILjava/lang/String;)Z
-HPLcom/android/server/am/ActivityManagerService;->isUidActiveLocked(I)Z
+HSPLcom/android/server/am/ActivityManagerService;->isUidActiveLocked(I)Z
PLcom/android/server/am/ActivityManagerService;->isUserAMonkey()Z
-PLcom/android/server/am/ActivityManagerService;->isUserRunning(II)Z
+HSPLcom/android/server/am/ActivityManagerService;->isUserRunning(II)Z
PLcom/android/server/am/ActivityManagerService;->isValidSingletonCall(II)Z
-PLcom/android/server/am/ActivityManagerService;->killAllBackgroundProcessesExcept(II)V
+HSPLcom/android/server/am/ActivityManagerService;->killAllBackgroundProcessesExcept(II)V
+PLcom/android/server/am/ActivityManagerService;->killAppAtUsersRequest(Lcom/android/server/am/ProcessRecord;Landroid/app/Dialog;)V
PLcom/android/server/am/ActivityManagerService;->killApplication(Ljava/lang/String;IILjava/lang/String;)V
PLcom/android/server/am/ActivityManagerService;->killApplicationProcess(Ljava/lang/String;I)V
-PLcom/android/server/am/ActivityManagerService;->killUid(IILjava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->lambda$logStrictModeViolationToDropBox$3(Landroid/os/DropBoxManager;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->logStrictModeViolationToDropBox(Lcom/android/server/am/ProcessRecord;Landroid/os/StrictMode$ViolationInfo;)V
-HPLcom/android/server/am/ActivityManagerService;->maybeUpdateProviderUsageStatsLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService;->lambda$logStrictModeViolationToDropBox$3(Landroid/os/DropBoxManager;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService;->lambda$reportMemUsage$4(Lcom/android/internal/os/ProcessCpuTracker$Stats;)Z
+HSPLcom/android/server/am/ActivityManagerService;->logStrictModeViolationToDropBox(Lcom/android/server/am/ProcessRecord;Landroid/os/StrictMode$ViolationInfo;)V
+PLcom/android/server/am/ActivityManagerService;->maybePruneOldTraces(Ljava/io/File;)V
+HSPLcom/android/server/am/ActivityManagerService;->maybeUpdateProviderUsageStatsLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;)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;->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;->notifyPackageUse(Ljava/lang/String;I)V
-PLcom/android/server/am/ActivityManagerService;->onCoreSettingsChange(Landroid/os/Bundle;)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
+HSPLcom/android/server/am/ActivityManagerService;->noteUidProcessState(III)V
+HPLcom/android/server/am/ActivityManagerService;->noteWakeupAlarm(Landroid/content/IIntentSender;Landroid/os/WorkSource;ILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService;->notifyPackageUse(Ljava/lang/String;I)V
+HSPLcom/android/server/am/ActivityManagerService;->onCoreSettingsChange(Landroid/os/Bundle;)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
+HSPLcom/android/server/am/ActivityManagerService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
PLcom/android/server/am/ActivityManagerService;->onWakefulnessChanged(I)V
-PLcom/android/server/am/ActivityManagerService;->processClass(Lcom/android/server/am/ProcessRecord;)Ljava/lang/String;
+PLcom/android/server/am/ActivityManagerService;->performAppGcLocked(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/ActivityManagerService;->performAppGcsIfAppropriateLocked()V
+PLcom/android/server/am/ActivityManagerService;->performAppGcsLocked()V
+PLcom/android/server/am/ActivityManagerService;->performIdleMaintenance()V
+HSPLcom/android/server/am/ActivityManagerService;->processClass(Lcom/android/server/am/ProcessRecord;)Ljava/lang/String;
PLcom/android/server/am/ActivityManagerService;->processContentProviderPublishTimedOutLocked(Lcom/android/server/am/ProcessRecord;)V
-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
+HSPLcom/android/server/am/ActivityManagerService;->publishContentProviders(Landroid/app/IApplicationThread;Ljava/util/List;)V
+HSPLcom/android/server/am/ActivityManagerService;->publishService(Landroid/os/IBinder;Landroid/content/Intent;Landroid/os/IBinder;)V
PLcom/android/server/am/ActivityManagerService;->pushTempWhitelist()V
-PLcom/android/server/am/ActivityManagerService;->recordPssSampleLocked(Lcom/android/server/am/ProcessRecord;IJJJJIJJ)V
+HPLcom/android/server/am/ActivityManagerService;->recordPssSampleLocked(Lcom/android/server/am/ProcessRecord;IJJJJIJJ)V
HPLcom/android/server/am/ActivityManagerService;->refContentProvider(Landroid/os/IBinder;II)Z
-HPLcom/android/server/am/ActivityManagerService;->registerIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
-PLcom/android/server/am/ActivityManagerService;->registerProcessObserver(Landroid/app/IProcessObserver;)V
-HPLcom/android/server/am/ActivityManagerService;->registerReceiver(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
-PLcom/android/server/am/ActivityManagerService;->registerUidObserver(Landroid/app/IUidObserver;IILjava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V
-PLcom/android/server/am/ActivityManagerService;->removeContentProvider(Landroid/os/IBinder;Z)V
+PLcom/android/server/am/ActivityManagerService;->registerIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
+HSPLcom/android/server/am/ActivityManagerService;->registerProcessObserver(Landroid/app/IProcessObserver;)V
+HSPLcom/android/server/am/ActivityManagerService;->registerReceiver(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/IIntentReceiver;Landroid/content/IntentFilter;Ljava/lang/String;II)Landroid/content/Intent;
+PLcom/android/server/am/ActivityManagerService;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
+HSPLcom/android/server/am/ActivityManagerService;->registerUidObserver(Landroid/app/IUidObserver;IILjava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V
+HPLcom/android/server/am/ActivityManagerService;->removeContentProvider(Landroid/os/IBinder;Z)V
PLcom/android/server/am/ActivityManagerService;->removeContentProviderExternalUnchecked(Ljava/lang/String;Landroid/os/IBinder;I)V
HPLcom/android/server/am/ActivityManagerService;->removeDyingProviderLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ContentProviderRecord;Z)Z
-PLcom/android/server/am/ActivityManagerService;->removeLruProcessLocked(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ActivityManagerService;->removeLruProcessLocked(Lcom/android/server/am/ProcessRecord;)V
HPLcom/android/server/am/ActivityManagerService;->removeReceiverLocked(Lcom/android/server/am/ReceiverList;)V
-PLcom/android/server/am/ActivityManagerService;->reportCurWakefulnessUsageEventLocked()V
-PLcom/android/server/am/ActivityManagerService;->reportGlobalUsageEventLocked(I)V
-PLcom/android/server/am/ActivityManagerService;->reportUidInfoMessageLocked(Ljava/lang/String;Ljava/lang/String;I)V
+HSPLcom/android/server/am/ActivityManagerService;->reportCurWakefulnessUsageEventLocked()V
+HSPLcom/android/server/am/ActivityManagerService;->reportGlobalUsageEventLocked(I)V
+PLcom/android/server/am/ActivityManagerService;->reportLmkKillAtOrBelow(Ljava/io/PrintWriter;I)Z
+HSPLcom/android/server/am/ActivityManagerService;->reportMemUsage(Ljava/util/ArrayList;)V
+HSPLcom/android/server/am/ActivityManagerService;->reportUidInfoMessageLocked(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/am/ActivityManagerService;->requestBugReportWithDescription(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/am/ActivityManagerService;->requestInteractiveBugReportWithDescription(Ljava/lang/String;Ljava/lang/String;)V
HSPLcom/android/server/am/ActivityManagerService;->requestPssAllProcsLocked(JZZ)V
-PLcom/android/server/am/ActivityManagerService;->requestPssLocked(Lcom/android/server/am/ProcessRecord;I)Z
+HPLcom/android/server/am/ActivityManagerService;->requestPssLocked(Lcom/android/server/am/ProcessRecord;I)Z
PLcom/android/server/am/ActivityManagerService;->requestTargetProviderPermissionsReviewIfNeededLocked(Landroid/content/pm/ProviderInfo;Lcom/android/server/am/ProcessRecord;I)Z
PLcom/android/server/am/ActivityManagerService;->requireAllowedAssociationsLocked(Ljava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->resetPriorityAfterLockedSection()V
-PLcom/android/server/am/ActivityManagerService;->retrieveSettings()V
+HSPLcom/android/server/am/ActivityManagerService;->resetPriorityAfterLockedSection()V
+PLcom/android/server/am/ActivityManagerService;->resumeAppSwitches()V
+HSPLcom/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;->scheduleAppGcsLocked()V
-PLcom/android/server/am/ActivityManagerService;->scheduleApplicationInfoChanged(Ljava/util/List;I)V
-PLcom/android/server/am/ActivityManagerService;->sendIntentSender(Landroid/content/IIntentSender;Landroid/os/IBinder;ILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)I
+HSPLcom/android/server/am/ActivityManagerService;->rotateBroadcastStatsIfNeededLocked()V
+HSPLcom/android/server/am/ActivityManagerService;->scheduleAppGcsLocked()V
+HSPLcom/android/server/am/ActivityManagerService;->scheduleApplicationInfoChanged(Ljava/util/List;I)V
+HPLcom/android/server/am/ActivityManagerService;->sendIntentSender(Landroid/content/IIntentSender;Landroid/os/IBinder;ILandroid/content/Intent;Ljava/lang/String;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)I
PLcom/android/server/am/ActivityManagerService;->sendPackageBroadcastLocked(I[Ljava/lang/String;I)V
-PLcom/android/server/am/ActivityManagerService;->sendPendingBroadcastsLocked(Lcom/android/server/am/ProcessRecord;)Z
-HPLcom/android/server/am/ActivityManagerService;->serviceDoneExecuting(Landroid/os/IBinder;III)V
+HPLcom/android/server/am/ActivityManagerService;->sendPendingBroadcastsLocked(Lcom/android/server/am/ProcessRecord;)Z
+HSPLcom/android/server/am/ActivityManagerService;->serviceDoneExecuting(Landroid/os/IBinder;III)V
PLcom/android/server/am/ActivityManagerService;->setAppIdTempWhitelistStateLocked(IZ)V
-PLcom/android/server/am/ActivityManagerService;->setContentCaptureManager(Lcom/android/server/contentcapture/ContentCaptureManagerInternal;)V
+HSPLcom/android/server/am/ActivityManagerService;->setContentCaptureManager(Lcom/android/server/contentcapture/ContentCaptureManagerInternal;)V
PLcom/android/server/am/ActivityManagerService;->setHasTopUi(Z)V
HSPLcom/android/server/am/ActivityManagerService;->setInstaller(Lcom/android/server/pm/Installer;)V
PLcom/android/server/am/ActivityManagerService;->setProcessImportant(Landroid/os/IBinder;IZLjava/lang/String;)V
HPLcom/android/server/am/ActivityManagerService;->setProcessTrackerStateLocked(Lcom/android/server/am/ProcessRecord;IJ)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
-PLcom/android/server/am/ActivityManagerService;->setSystemProcess()V
+HSPLcom/android/server/am/ActivityManagerService;->setSystemProcess()V
HSPLcom/android/server/am/ActivityManagerService;->setSystemServiceManager(Lcom/android/server/SystemServiceManager;)V
-PLcom/android/server/am/ActivityManagerService;->setUsageStatsManager(Landroid/app/usage/UsageStatsManagerInternal;)V
-PLcom/android/server/am/ActivityManagerService;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/am/ActivityManagerService;->setUidTempWhitelistStateLocked(IZ)V
+HSPLcom/android/server/am/ActivityManagerService;->setUsageStatsManager(Landroid/app/usage/UsageStatsManagerInternal;)V
+HSPLcom/android/server/am/ActivityManagerService;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
PLcom/android/server/am/ActivityManagerService;->showConsoleNotificationIfActive()V
-PLcom/android/server/am/ActivityManagerService;->skipCurrentReceiverLocked(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ActivityManagerService;->skipCurrentReceiverLocked(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/ActivityManagerService;->sortMemItems(Ljava/util/List;Z)V
+HSPLcom/android/server/am/ActivityManagerService;->sortProcessOomList(Ljava/util/List;Ljava/lang/String;)Ljava/util/ArrayList;
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
-PLcom/android/server/am/ActivityManagerService;->startIsolatedProcess(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Runnable;)Z
-PLcom/android/server/am/ActivityManagerService;->startObservingNativeCrashes()V
+HSPLcom/android/server/am/ActivityManagerService;->startAssociationLocked(ILjava/lang/String;IIJLandroid/content/ComponentName;Ljava/lang/String;)Lcom/android/server/am/ActivityManagerService$Association;
+HSPLcom/android/server/am/ActivityManagerService;->startBroadcastObservers()V
+HSPLcom/android/server/am/ActivityManagerService;->startIsolatedProcess(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Runnable;)Z
+HSPLcom/android/server/am/ActivityManagerService;->startObservingNativeCrashes()V
PLcom/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;ZZZ)Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ActivityManagerService;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;I)Landroid/content/ComponentName;
-PLcom/android/server/am/ActivityManagerService;->stopAppSwitches()V
+HSPLcom/android/server/am/ActivityManagerService;->startProcessLocked(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;ZILcom/android/server/am/HostingRecord;ZZZ)Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ActivityManagerService;->startService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;ZLjava/lang/String;I)Landroid/content/ComponentName;
HPLcom/android/server/am/ActivityManagerService;->stopAssociationLocked(ILjava/lang/String;IJLandroid/content/ComponentName;Ljava/lang/String;)V
PLcom/android/server/am/ActivityManagerService;->stopService(Landroid/app/IApplicationThread;Landroid/content/Intent;Ljava/lang/String;I)I
HPLcom/android/server/am/ActivityManagerService;->stopServiceToken(Landroid/content/ComponentName;Landroid/os/IBinder;I)Z
-PLcom/android/server/am/ActivityManagerService;->systemReady(Ljava/lang/Runnable;Lcom/android/server/utils/TimingsTraceAndSlog;)V
+HSPLcom/android/server/am/ActivityManagerService;->stringifyKBSize(J)Ljava/lang/String;
+HSPLcom/android/server/am/ActivityManagerService;->stringifySize(JI)Ljava/lang/String;
+HSPLcom/android/server/am/ActivityManagerService;->systemReady(Ljava/lang/Runnable;Lcom/android/server/utils/TimingsTraceAndSlog;)V
+PLcom/android/server/am/ActivityManagerService;->tempWhitelistForPendingIntentLocked(IIIJLjava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->tempWhitelistUidLocked(IJLjava/lang/String;)V
PLcom/android/server/am/ActivityManagerService;->trimApplications(Ljava/lang/String;)V
HPLcom/android/server/am/ActivityManagerService;->trimApplicationsLocked(Ljava/lang/String;)V
PLcom/android/server/am/ActivityManagerService;->uidOnBackgroundWhitelist(I)Z
@@ -3587,28 +4022,33 @@ PLcom/android/server/am/ActivityManagerService;->unbindBackupAgent(Landroid/cont
PLcom/android/server/am/ActivityManagerService;->unbindFinished(Landroid/os/IBinder;Landroid/content/Intent;Z)V
HPLcom/android/server/am/ActivityManagerService;->unbindService(Landroid/app/IServiceConnection;)Z
PLcom/android/server/am/ActivityManagerService;->unlockUser(I[B[BLandroid/os/IProgressListener;)Z
-HPLcom/android/server/am/ActivityManagerService;->unregisterIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
-PLcom/android/server/am/ActivityManagerService;->unregisterReceiver(Landroid/content/IIntentReceiver;)V
+PLcom/android/server/am/ActivityManagerService;->unregisterIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
+HPLcom/android/server/am/ActivityManagerService;->unregisterReceiver(Landroid/content/IIntentReceiver;)V
PLcom/android/server/am/ActivityManagerService;->unregisterUidObserver(Landroid/app/IUidObserver;)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;)V
-PLcom/android/server/am/ActivityManagerService;->updateApplicationInfoLocked(Ljava/util/List;I)V
+HSPLcom/android/server/am/ActivityManagerService;->updateApplicationInfoLocked(Ljava/util/List;I)V
PLcom/android/server/am/ActivityManagerService;->updateAssociationForApp(Landroid/content/pm/ApplicationInfo;)V
PLcom/android/server/am/ActivityManagerService;->updateBatteryStats(Landroid/content/ComponentName;IIZ)V
-HPLcom/android/server/am/ActivityManagerService;->updateCpuStats()V
-HPLcom/android/server/am/ActivityManagerService;->updateCpuStatsNow()V
-PLcom/android/server/am/ActivityManagerService;->updateForceBackgroundCheck(Z)V
+HSPLcom/android/server/am/ActivityManagerService;->updateCpuStats()V
+HSPLcom/android/server/am/ActivityManagerService;->updateCpuStatsNow()V
+HSPLcom/android/server/am/ActivityManagerService;->updateForceBackgroundCheck(Z)V
PLcom/android/server/am/ActivityManagerService;->updateForegroundServiceUsageStats(Landroid/content/ComponentName;IZ)V
-PLcom/android/server/am/ActivityManagerService;->updateLockTaskPackages(I[Ljava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService;->updateLockTaskPackages(I[Ljava/lang/String;)V
HSPLcom/android/server/am/ActivityManagerService;->updateLowMemStateLocked(III)Z
-HPLcom/android/server/am/ActivityManagerService;->updateLruProcessLocked(Lcom/android/server/am/ProcessRecord;ZLcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ActivityManagerService;->updateOomAdjLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->updateOomAdjLocked(Lcom/android/server/am/ProcessRecord;ZLjava/lang/String;)Z
+HSPLcom/android/server/am/ActivityManagerService;->updateLruProcessLocked(Lcom/android/server/am/ProcessRecord;ZLcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ActivityManagerService;->updateOomAdjLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V
+HSPLcom/android/server/am/ActivityManagerService;->updateOomAdjLocked(Lcom/android/server/am/ProcessRecord;ZLjava/lang/String;)Z
HSPLcom/android/server/am/ActivityManagerService;->updateOomAdjLocked(Ljava/lang/String;)V
-HPLcom/android/server/am/ActivityManagerService;->updateProcessForegroundLocked(Lcom/android/server/am/ProcessRecord;ZIZ)V
-HPLcom/android/server/am/ActivityManagerService;->validateAssociationAllowedLocked(Ljava/lang/String;ILjava/lang/String;I)Z
-HPLcom/android/server/am/ActivityManagerService;->verifyBroadcastLocked(Landroid/content/Intent;)Landroid/content/Intent;
-PLcom/android/server/am/ActivityManagerService;->watchDeviceProvisioning(Landroid/content/Context;)V
+HSPLcom/android/server/am/ActivityManagerService;->updateProcessForegroundLocked(Lcom/android/server/am/ProcessRecord;ZIZ)V
+HSPLcom/android/server/am/ActivityManagerService;->validateAssociationAllowedLocked(Ljava/lang/String;ILjava/lang/String;I)Z
+HSPLcom/android/server/am/ActivityManagerService;->verifyBroadcastLocked(Landroid/content/Intent;)Landroid/content/Intent;
+PLcom/android/server/am/ActivityManagerService;->waitForNetworkStateUpdate(J)V
+HSPLcom/android/server/am/ActivityManagerService;->watchDeviceProvisioning(Landroid/content/Context;)V
+PLcom/android/server/am/ActivityManagerService;->writeBroadcastsToProtoLocked(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/am/ActivityManagerService;->writeProcessOomListToProto(Landroid/util/proto/ProtoOutputStream;JLcom/android/server/am/ActivityManagerService;Ljava/util/List;ZLjava/lang/String;)Z
+PLcom/android/server/am/ActivityManagerService;->writeProcessesToGcToProto(Landroid/util/proto/ProtoOutputStream;JLjava/lang/String;)V
+PLcom/android/server/am/ActivityManagerService;->writeProcessesToProtoLocked(Landroid/util/proto/ProtoOutputStream;Ljava/lang/String;)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
@@ -3617,47 +4057,60 @@ PLcom/android/server/am/ActivityManagerShellCommand$IntentReceiver;->waitForFini
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;->access$1002(Lcom/android/server/am/ActivityManagerShellCommand;I)I
+PLcom/android/server/am/ActivityManagerShellCommand;->access$1102(Lcom/android/server/am/ActivityManagerShellCommand;Ljava/lang/String;)Ljava/lang/String;
PLcom/android/server/am/ActivityManagerShellCommand;->makeIntent(I)Landroid/content/Intent;
PLcom/android/server/am/ActivityManagerShellCommand;->onCommand(Ljava/lang/String;)I
PLcom/android/server/am/ActivityManagerShellCommand;->runSendBroadcast(Ljava/io/PrintWriter;)I
-PLcom/android/server/am/AppBindRecord;-><init>(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/IntentBindRecord;Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/AppBindRecord;-><init>(Lcom/android/server/am/ServiceRecord;Lcom/android/server/am/IntentBindRecord;Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/AppBindRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/am/AppBindRecord;->dumpInIntentBind(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/AppBindRecord;->toString()Ljava/lang/String;
HSPLcom/android/server/am/AppCompactor$1;-><init>(Lcom/android/server/am/AppCompactor;)V
+PLcom/android/server/am/AppCompactor$1;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
HSPLcom/android/server/am/AppCompactor$2;-><init>(Lcom/android/server/am/AppCompactor;)V
HPLcom/android/server/am/AppCompactor$2;->removeEldestEntry(Ljava/util/Map$Entry;)Z
HPLcom/android/server/am/AppCompactor$LastCompactionStats;-><init>([J)V
PLcom/android/server/am/AppCompactor$LastCompactionStats;->getRssAfterCompaction()[J
-PLcom/android/server/am/AppCompactor$MemCompactionHandler;-><init>(Lcom/android/server/am/AppCompactor;)V
-PLcom/android/server/am/AppCompactor$MemCompactionHandler;-><init>(Lcom/android/server/am/AppCompactor;Lcom/android/server/am/AppCompactor$1;)V
+HSPLcom/android/server/am/AppCompactor$MemCompactionHandler;-><init>(Lcom/android/server/am/AppCompactor;)V
+HSPLcom/android/server/am/AppCompactor$MemCompactionHandler;-><init>(Lcom/android/server/am/AppCompactor;Lcom/android/server/am/AppCompactor$1;)V
HPLcom/android/server/am/AppCompactor$MemCompactionHandler;->handleMessage(Landroid/os/Message;)V
HSPLcom/android/server/am/AppCompactor;-><clinit>()V
HSPLcom/android/server/am/AppCompactor;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+PLcom/android/server/am/AppCompactor;->access$000(Lcom/android/server/am/AppCompactor;)Ljava/lang/Object;
+PLcom/android/server/am/AppCompactor;->access$100(Lcom/android/server/am/AppCompactor;)V
HPLcom/android/server/am/AppCompactor;->access$1000(Lcom/android/server/am/AppCompactor;)Lcom/android/server/am/ActivityManagerService;
HPLcom/android/server/am/AppCompactor;->access$1100(Lcom/android/server/am/AppCompactor;)Ljava/util/ArrayList;
HPLcom/android/server/am/AppCompactor;->access$1200(Lcom/android/server/am/AppCompactor;)Ljava/util/Map;
HPLcom/android/server/am/AppCompactor;->access$1308(Lcom/android/server/am/AppCompactor;)I
HPLcom/android/server/am/AppCompactor;->access$1408(Lcom/android/server/am/AppCompactor;)I
-PLcom/android/server/am/AppCompactor;->access$1508(Lcom/android/server/am/AppCompactor;)I
-PLcom/android/server/am/AppCompactor;->access$1608(Lcom/android/server/am/AppCompactor;)I
+HPLcom/android/server/am/AppCompactor;->access$1508(Lcom/android/server/am/AppCompactor;)I
+HPLcom/android/server/am/AppCompactor;->access$1608(Lcom/android/server/am/AppCompactor;)I
HPLcom/android/server/am/AppCompactor;->access$1700(Lcom/android/server/am/AppCompactor;)Ljava/util/Random;
PLcom/android/server/am/AppCompactor;->access$1800(Lcom/android/server/am/AppCompactor;)V
+PLcom/android/server/am/AppCompactor;->access$400(Lcom/android/server/am/AppCompactor;)V
+PLcom/android/server/am/AppCompactor;->access$500(Lcom/android/server/am/AppCompactor;)V
+PLcom/android/server/am/AppCompactor;->access$600(Lcom/android/server/am/AppCompactor;)V
+PLcom/android/server/am/AppCompactor;->access$700(Lcom/android/server/am/AppCompactor;)V
+PLcom/android/server/am/AppCompactor;->access$800(Lcom/android/server/am/AppCompactor;)Lcom/android/server/am/AppCompactor$PropertyChangedCallbackForTest;
HSPLcom/android/server/am/AppCompactor;->compactActionIntToString(I)Ljava/lang/String;
PLcom/android/server/am/AppCompactor;->compactAllSystem()V
PLcom/android/server/am/AppCompactor;->compactAppBfgs(Lcom/android/server/am/ProcessRecord;)V
PLcom/android/server/am/AppCompactor;->compactAppFull(Lcom/android/server/am/ProcessRecord;)V
PLcom/android/server/am/AppCompactor;->compactAppPersistent(Lcom/android/server/am/ProcessRecord;)V
PLcom/android/server/am/AppCompactor;->compactAppSome(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/AppCompactor;->init()V
-PLcom/android/server/am/AppCompactor;->parseProcStateThrottle(Ljava/lang/String;)Z
+PLcom/android/server/am/AppCompactor;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/am/AppCompactor;->init()V
+HSPLcom/android/server/am/AppCompactor;->parseProcStateThrottle(Ljava/lang/String;)Z
PLcom/android/server/am/AppCompactor;->shouldCompactBFGS(Lcom/android/server/am/ProcessRecord;J)Z
PLcom/android/server/am/AppCompactor;->shouldCompactPersistent(Lcom/android/server/am/ProcessRecord;J)Z
-PLcom/android/server/am/AppCompactor;->updateCompactionActions()V
-PLcom/android/server/am/AppCompactor;->updateCompactionThrottles()V
-PLcom/android/server/am/AppCompactor;->updateFullDeltaRssThrottle()V
-PLcom/android/server/am/AppCompactor;->updateFullRssThrottle()V
-PLcom/android/server/am/AppCompactor;->updateProcStateThrottle()V
-PLcom/android/server/am/AppCompactor;->updateStatsdSampleRate()V
-PLcom/android/server/am/AppCompactor;->updateUseCompaction()V
-HPLcom/android/server/am/AppCompactor;->useCompaction()Z
+HSPLcom/android/server/am/AppCompactor;->updateCompactionActions()V
+HSPLcom/android/server/am/AppCompactor;->updateCompactionThrottles()V
+HSPLcom/android/server/am/AppCompactor;->updateFullDeltaRssThrottle()V
+HSPLcom/android/server/am/AppCompactor;->updateFullRssThrottle()V
+HSPLcom/android/server/am/AppCompactor;->updateProcStateThrottle()V
+HSPLcom/android/server/am/AppCompactor;->updateStatsdSampleRate()V
+HSPLcom/android/server/am/AppCompactor;->updateUseCompaction()V
+HSPLcom/android/server/am/AppCompactor;->useCompaction()Z
PLcom/android/server/am/AppErrorDialog$Data;-><init>()V
PLcom/android/server/am/AppErrorDialog;-><clinit>()V
PLcom/android/server/am/AppErrorResult;-><init>()V
@@ -3666,21 +4119,43 @@ PLcom/android/server/am/AppErrorResult;->set(I)V
HSPLcom/android/server/am/AppErrors;-><init>(Landroid/content/Context;Lcom/android/server/am/ActivityManagerService;Lcom/android/server/PackageWatchdog;)V
PLcom/android/server/am/AppErrors;->crashApplication(Lcom/android/server/am/ProcessRecord;Landroid/app/ApplicationErrorReport$CrashInfo;)V
PLcom/android/server/am/AppErrors;->crashApplicationInner(Lcom/android/server/am/ProcessRecord;Landroid/app/ApplicationErrorReport$CrashInfo;II)V
+PLcom/android/server/am/AppErrors;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JLjava/lang/String;)V
+HSPLcom/android/server/am/AppErrors;->dumpLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;ZLjava/lang/String;)Z
+PLcom/android/server/am/AppErrors;->generateProcessError(Lcom/android/server/am/ProcessRecord;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/app/ActivityManager$ProcessErrorStateInfo;
PLcom/android/server/am/AppErrors;->handleAppCrashInActivityController(Lcom/android/server/am/ProcessRecord;Landroid/app/ApplicationErrorReport$CrashInfo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JII)Z
PLcom/android/server/am/AppErrors;->handleAppCrashLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/am/AppErrorDialog$Data;)Z
+PLcom/android/server/am/AppErrors;->handleShowAnrUi(Landroid/os/Message;)V
PLcom/android/server/am/AppErrors;->handleShowAppErrorUi(Landroid/os/Message;)V
-PLcom/android/server/am/AppErrors;->isBadProcessLocked(Landroid/content/pm/ApplicationInfo;)Z
-PLcom/android/server/am/AppErrors;->loadAppsNotReportingCrashesFromConfigLocked(Ljava/lang/String;)V
+HSPLcom/android/server/am/AppErrors;->isBadProcessLocked(Landroid/content/pm/ApplicationInfo;)Z
+PLcom/android/server/am/AppErrors;->killAppAtUserRequestLocked(Lcom/android/server/am/ProcessRecord;Landroid/app/Dialog;)V
+PLcom/android/server/am/AppErrors;->killAppImmediateLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/AppErrors;->loadAppsNotReportingCrashesFromConfigLocked(Ljava/lang/String;)V
PLcom/android/server/am/AppErrors;->makeAppCrashingLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/am/AppErrorDialog$Data;)Z
-PLcom/android/server/am/AppErrors;->resetProcessCrashTimeLocked(Landroid/content/pm/ApplicationInfo;)V
+HSPLcom/android/server/am/AppErrors;->resetProcessCrashTimeLocked(Landroid/content/pm/ApplicationInfo;)V
PLcom/android/server/am/AppErrors;->resetProcessCrashTimeLocked(ZII)V
-PLcom/android/server/am/BackupRecord;-><init>(Landroid/content/pm/ApplicationInfo;II)V
+PLcom/android/server/am/AppNotRespondingDialog$Data;-><init>(Lcom/android/server/am/ProcessRecord;Landroid/content/pm/ApplicationInfo;Z)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;II)V
+PLcom/android/server/am/AssistDataRequester;->cancel()V
+PLcom/android/server/am/AssistDataRequester;->dispatchAssistDataReceived(Landroid/os/Bundle;)V
+PLcom/android/server/am/AssistDataRequester;->dispatchAssistScreenshotReceived(Landroid/graphics/Bitmap;)V
+PLcom/android/server/am/AssistDataRequester;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/am/AssistDataRequester;->flushPendingAssistData()V
+PLcom/android/server/am/AssistDataRequester;->getPendingDataCount()I
+PLcom/android/server/am/AssistDataRequester;->getPendingScreenshotCount()I
+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;->processPendingAssistData()V
+PLcom/android/server/am/AssistDataRequester;->requestAssistData(Ljava/util/List;ZZZZILjava/lang/String;)V
+PLcom/android/server/am/AssistDataRequester;->requestData(Ljava/util/List;ZZZZZILjava/lang/String;)V
+PLcom/android/server/am/AssistDataRequester;->tryDispatchRequestComplete()V
+HPLcom/android/server/am/BackupRecord;-><init>(Landroid/content/pm/ApplicationInfo;II)V
HSPLcom/android/server/am/BatteryExternalStatsWorker$1;-><init>(Lcom/android/server/am/BatteryExternalStatsWorker;)V
HSPLcom/android/server/am/BatteryExternalStatsWorker$1;->run()V
HSPLcom/android/server/am/BatteryExternalStatsWorker$2;-><init>(Lcom/android/server/am/BatteryExternalStatsWorker;)V
HSPLcom/android/server/am/BatteryExternalStatsWorker$2;->run()V
PLcom/android/server/am/BatteryExternalStatsWorker$3;-><init>(Lcom/android/server/am/BatteryExternalStatsWorker;)V
-PLcom/android/server/am/BatteryExternalStatsWorker$3;->execute(Ljava/lang/Runnable;)V
+HPLcom/android/server/am/BatteryExternalStatsWorker$3;->execute(Ljava/lang/Runnable;)V
HSPLcom/android/server/am/BatteryExternalStatsWorker;-><init>(Landroid/content/Context;Lcom/android/internal/os/BatteryStatsImpl;)V
HSPLcom/android/server/am/BatteryExternalStatsWorker;->access$000(Lcom/android/server/am/BatteryExternalStatsWorker;)I
HSPLcom/android/server/am/BatteryExternalStatsWorker;->access$002(Lcom/android/server/am/BatteryExternalStatsWorker;I)I
@@ -3704,21 +4179,21 @@ HPLcom/android/server/am/BatteryExternalStatsWorker;->extractDeltaLocked(Landroi
PLcom/android/server/am/BatteryExternalStatsWorker;->getLastCollectionTimeStamp()J
HSPLcom/android/server/am/BatteryExternalStatsWorker;->lambda$new$0(Ljava/lang/Runnable;)V
HSPLcom/android/server/am/BatteryExternalStatsWorker;->lambda$new$1(Ljava/lang/Runnable;)Ljava/lang/Thread;
-PLcom/android/server/am/BatteryExternalStatsWorker;->lambda$scheduleCpuSyncDueToWakelockChange$2$BatteryExternalStatsWorker()V
-PLcom/android/server/am/BatteryExternalStatsWorker;->lambda$scheduleCpuSyncDueToWakelockChange$3$BatteryExternalStatsWorker()V
+HSPLcom/android/server/am/BatteryExternalStatsWorker;->lambda$scheduleCpuSyncDueToWakelockChange$2$BatteryExternalStatsWorker()V
+HSPLcom/android/server/am/BatteryExternalStatsWorker;->lambda$scheduleCpuSyncDueToWakelockChange$3$BatteryExternalStatsWorker()V
HPLcom/android/server/am/BatteryExternalStatsWorker;->lambda$updateExternalStatsLocked$5(Landroid/os/SynchronousResultReceiver;Landroid/os/connectivity/WifiActivityEnergyInfo;)V
-PLcom/android/server/am/BatteryExternalStatsWorker;->scheduleCpuSyncDueToRemovedUid(I)Ljava/util/concurrent/Future;
-PLcom/android/server/am/BatteryExternalStatsWorker;->scheduleCpuSyncDueToScreenStateChange(ZZ)Ljava/util/concurrent/Future;
-HPLcom/android/server/am/BatteryExternalStatsWorker;->scheduleCpuSyncDueToWakelockChange(J)Ljava/util/concurrent/Future;
-HPLcom/android/server/am/BatteryExternalStatsWorker;->scheduleDelayedSyncLocked(Ljava/util/concurrent/Future;Ljava/lang/Runnable;J)Ljava/util/concurrent/Future;
-PLcom/android/server/am/BatteryExternalStatsWorker;->scheduleRunnable(Ljava/lang/Runnable;)V
-PLcom/android/server/am/BatteryExternalStatsWorker;->scheduleSync(Ljava/lang/String;I)Ljava/util/concurrent/Future;
+HSPLcom/android/server/am/BatteryExternalStatsWorker;->scheduleCpuSyncDueToRemovedUid(I)Ljava/util/concurrent/Future;
+HSPLcom/android/server/am/BatteryExternalStatsWorker;->scheduleCpuSyncDueToScreenStateChange(ZZ)Ljava/util/concurrent/Future;
+HSPLcom/android/server/am/BatteryExternalStatsWorker;->scheduleCpuSyncDueToWakelockChange(J)Ljava/util/concurrent/Future;
+HSPLcom/android/server/am/BatteryExternalStatsWorker;->scheduleDelayedSyncLocked(Ljava/util/concurrent/Future;Ljava/lang/Runnable;J)Ljava/util/concurrent/Future;
+HSPLcom/android/server/am/BatteryExternalStatsWorker;->scheduleRunnable(Ljava/lang/Runnable;)V
+HSPLcom/android/server/am/BatteryExternalStatsWorker;->scheduleSync(Ljava/lang/String;I)Ljava/util/concurrent/Future;
PLcom/android/server/am/BatteryExternalStatsWorker;->scheduleSyncDueToBatteryLevelChange(J)Ljava/util/concurrent/Future;
HSPLcom/android/server/am/BatteryExternalStatsWorker;->scheduleSyncLocked(Ljava/lang/String;I)Ljava/util/concurrent/Future;
HSPLcom/android/server/am/BatteryExternalStatsWorker;->scheduleWrite()Ljava/util/concurrent/Future;
HSPLcom/android/server/am/BatteryExternalStatsWorker;->updateExternalStatsLocked(Ljava/lang/String;IZZZ)V
HSPLcom/android/server/am/BatteryStatsService$1;-><init>(Lcom/android/server/am/BatteryStatsService;)V
-PLcom/android/server/am/BatteryStatsService$1;->getUserIds()[I
+HSPLcom/android/server/am/BatteryStatsService$1;->getUserIds()[I
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$1;)V
PLcom/android/server/am/BatteryStatsService$LocalService;->getMobileIfaces()[Ljava/lang/String;
@@ -3729,29 +4204,30 @@ HSPLcom/android/server/am/BatteryStatsService$WakeupReasonThread;->run()V
HSPLcom/android/server/am/BatteryStatsService$WakeupReasonThread;->waitWakeup()Ljava/lang/String;
HSPLcom/android/server/am/BatteryStatsService;-><init>(Landroid/content/Context;Ljava/io/File;Landroid/os/Handler;)V
HSPLcom/android/server/am/BatteryStatsService;->access$100(Ljava/nio/ByteBuffer;)I
-PLcom/android/server/am/BatteryStatsService;->addIsolatedUid(II)V
+HSPLcom/android/server/am/BatteryStatsService;->addIsolatedUid(II)V
PLcom/android/server/am/BatteryStatsService;->awaitUninterruptibly(Ljava/util/concurrent/Future;)V
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(Ljava/io/PrintWriter;)V
-HPLcom/android/server/am/BatteryStatsService;->enforceCallingPermission()V
+HSPLcom/android/server/am/BatteryStatsService;->enforceCallingPermission()V
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/internal/os/BatteryStatsImpl;
PLcom/android/server/am/BatteryStatsService;->getCellularBatteryStats()Landroid/os/connectivity/CellularBatteryStats;
PLcom/android/server/am/BatteryStatsService;->getGpsBatteryStats()Landroid/os/connectivity/GpsBatteryStats;
PLcom/android/server/am/BatteryStatsService;->getHealthStatsForUidLocked(I)Landroid/os/health/HealthStatsParceler;
-PLcom/android/server/am/BatteryStatsService;->getPlatformLowPowerStats()Ljava/lang/String;
-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;->getPlatformLowPowerStats()Ljava/lang/String;
+HSPLcom/android/server/am/BatteryStatsService;->getService()Lcom/android/internal/app/IBatteryStats;
+PLcom/android/server/am/BatteryStatsService;->getStatisticsStream()Landroid/os/ParcelFileDescriptor;
+HSPLcom/android/server/am/BatteryStatsService;->getSubsystemLowPowerStats()Ljava/lang/String;
PLcom/android/server/am/BatteryStatsService;->getWifiBatteryStats()Landroid/os/connectivity/WifiBatteryStats;
HSPLcom/android/server/am/BatteryStatsService;->initPowerManagement()V
PLcom/android/server/am/BatteryStatsService;->isCharging()Z
PLcom/android/server/am/BatteryStatsService;->isOnBattery()Z
-PLcom/android/server/am/BatteryStatsService;->lambda$setBatteryState$0$BatteryStatsService(IIIIIIII)V
-PLcom/android/server/am/BatteryStatsService;->lambda$setBatteryState$1$BatteryStatsService(IIIIIIII)V
-PLcom/android/server/am/BatteryStatsService;->noteAlarmFinish(Ljava/lang/String;Landroid/os/WorkSource;I)V
-PLcom/android/server/am/BatteryStatsService;->noteAlarmStart(Ljava/lang/String;Landroid/os/WorkSource;I)V
+HSPLcom/android/server/am/BatteryStatsService;->lambda$setBatteryState$0$BatteryStatsService(IIIIIIII)V
+HSPLcom/android/server/am/BatteryStatsService;->lambda$setBatteryState$1$BatteryStatsService(IIIIIIII)V
+HPLcom/android/server/am/BatteryStatsService;->noteAlarmFinish(Ljava/lang/String;Landroid/os/WorkSource;I)V
+HPLcom/android/server/am/BatteryStatsService;->noteAlarmStart(Ljava/lang/String;Landroid/os/WorkSource;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
@@ -3763,7 +4239,7 @@ PLcom/android/server/am/BatteryStatsService;->noteFullWifiLockAcquiredFromSource
PLcom/android/server/am/BatteryStatsService;->noteFullWifiLockReleasedFromSource(Landroid/os/WorkSource;)V
PLcom/android/server/am/BatteryStatsService;->noteGpsChanged(Landroid/os/WorkSource;Landroid/os/WorkSource;)V
PLcom/android/server/am/BatteryStatsService;->noteGpsSignalQuality(I)V
-PLcom/android/server/am/BatteryStatsService;->noteInteractive(Z)V
+HSPLcom/android/server/am/BatteryStatsService;->noteInteractive(Z)V
HPLcom/android/server/am/BatteryStatsService;->noteJobFinish(Ljava/lang/String;IIII)V
HPLcom/android/server/am/BatteryStatsService;->noteJobStart(Ljava/lang/String;III)V
PLcom/android/server/am/BatteryStatsService;->noteJobsDeferred(IIJ)V
@@ -3772,204 +4248,247 @@ PLcom/android/server/am/BatteryStatsService;->noteLongPartialWakelockFinishFromS
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;->noteNetworkInterfaceType(Ljava/lang/String;I)V
-PLcom/android/server/am/BatteryStatsService;->noteNetworkStatsEnabled()V
+HSPLcom/android/server/am/BatteryStatsService;->noteNetworkStatsEnabled()V
PLcom/android/server/am/BatteryStatsService;->notePackageInstalled(Ljava/lang/String;J)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
PLcom/android/server/am/BatteryStatsService;->noteProcessCrash(Ljava/lang/String;I)V
-PLcom/android/server/am/BatteryStatsService;->noteProcessFinish(Ljava/lang/String;I)V
-PLcom/android/server/am/BatteryStatsService;->noteProcessStart(Ljava/lang/String;I)V
+HSPLcom/android/server/am/BatteryStatsService;->noteProcessFinish(Ljava/lang/String;I)V
+HSPLcom/android/server/am/BatteryStatsService;->noteProcessStart(Ljava/lang/String;I)V
PLcom/android/server/am/BatteryStatsService;->noteResetBleScan()V
-PLcom/android/server/am/BatteryStatsService;->noteScreenBrightness(I)V
-PLcom/android/server/am/BatteryStatsService;->noteScreenState(I)V
+HSPLcom/android/server/am/BatteryStatsService;->noteScreenBrightness(I)V
+HSPLcom/android/server/am/BatteryStatsService;->noteScreenState(I)V
PLcom/android/server/am/BatteryStatsService;->noteStartAudio(I)V
-PLcom/android/server/am/BatteryStatsService;->noteStartSensor(II)V
-HPLcom/android/server/am/BatteryStatsService;->noteStartWakelock(IILjava/lang/String;Ljava/lang/String;IZ)V
+PLcom/android/server/am/BatteryStatsService;->noteStartCamera(I)V
+HSPLcom/android/server/am/BatteryStatsService;->noteStartSensor(II)V
+PLcom/android/server/am/BatteryStatsService;->noteStartVideo(I)V
+HSPLcom/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;->noteStopWakelock(IILjava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/am/BatteryStatsService;->noteStopCamera(I)V
+HPLcom/android/server/am/BatteryStatsService;->noteStopSensor(II)V
+PLcom/android/server/am/BatteryStatsService;->noteStopVideo(I)V
+HSPLcom/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
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;->noteUidProcessState(II)V
-PLcom/android/server/am/BatteryStatsService;->noteUserActivity(II)V
+HSPLcom/android/server/am/BatteryStatsService;->noteUidProcessState(II)V
+HPLcom/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;->noteWakeUp(Ljava/lang/String;I)V
-PLcom/android/server/am/BatteryStatsService;->noteWakupAlarm(Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;)V
-PLcom/android/server/am/BatteryStatsService;->noteWifiOn()V
-PLcom/android/server/am/BatteryStatsService;->noteWifiRadioPowerState(IJI)V
+HPLcom/android/server/am/BatteryStatsService;->noteWakupAlarm(Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;)V
+PLcom/android/server/am/BatteryStatsService;->noteWifiMulticastDisabled(I)V
+PLcom/android/server/am/BatteryStatsService;->noteWifiMulticastEnabled(I)V
+PLcom/android/server/am/BatteryStatsService;->noteWifiOff()V
+HSPLcom/android/server/am/BatteryStatsService;->noteWifiOn()V
+HPLcom/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
HSPLcom/android/server/am/BatteryStatsService;->publish()V
-PLcom/android/server/am/BatteryStatsService;->removeIsolatedUid(II)V
+HSPLcom/android/server/am/BatteryStatsService;->removeIsolatedUid(II)V
HSPLcom/android/server/am/BatteryStatsService;->scheduleWriteToDisk()V
-PLcom/android/server/am/BatteryStatsService;->setBatteryState(IIIIIIII)V
+HSPLcom/android/server/am/BatteryStatsService;->setBatteryState(IIIIIIII)V
PLcom/android/server/am/BatteryStatsService;->syncStats(Ljava/lang/String;I)V
-PLcom/android/server/am/BatteryStatsService;->systemServicesReady()V
+HSPLcom/android/server/am/BatteryStatsService;->systemServicesReady()V
PLcom/android/server/am/BatteryStatsService;->takeUidSnapshot(I)Landroid/os/health/HealthStatsParceler;
-PLcom/android/server/am/BroadcastConstants$SettingsObserver;-><init>(Lcom/android/server/am/BroadcastConstants;Landroid/os/Handler;)V
+HSPLcom/android/server/am/BroadcastConstants$SettingsObserver;-><init>(Lcom/android/server/am/BroadcastConstants;Landroid/os/Handler;)V
HSPLcom/android/server/am/BroadcastConstants;-><init>(Ljava/lang/String;)V
-PLcom/android/server/am/BroadcastConstants;->startObserving(Landroid/os/Handler;Landroid/content/ContentResolver;)V
-PLcom/android/server/am/BroadcastConstants;->updateConstants()V
+PLcom/android/server/am/BroadcastConstants;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/am/BroadcastConstants;->startObserving(Landroid/os/Handler;Landroid/content/ContentResolver;)V
+HSPLcom/android/server/am/BroadcastConstants;->updateConstants()V
HSPLcom/android/server/am/BroadcastDispatcher$1;-><init>(Lcom/android/server/am/BroadcastDispatcher;)V
-PLcom/android/server/am/BroadcastDispatcher$1;->broadcastAlarmComplete(I)V
-PLcom/android/server/am/BroadcastDispatcher$1;->broadcastAlarmPending(I)V
+HPLcom/android/server/am/BroadcastDispatcher$1;->broadcastAlarmComplete(I)V
+HPLcom/android/server/am/BroadcastDispatcher$1;->broadcastAlarmPending(I)V
HSPLcom/android/server/am/BroadcastDispatcher$2;-><init>(Lcom/android/server/am/BroadcastDispatcher;)V
PLcom/android/server/am/BroadcastDispatcher$2;->run()V
PLcom/android/server/am/BroadcastDispatcher$Deferrals;-><init>(IJJI)V
PLcom/android/server/am/BroadcastDispatcher$Deferrals;->add(Lcom/android/server/am/BroadcastRecord;)V
+PLcom/android/server/am/BroadcastDispatcher$Deferrals;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+PLcom/android/server/am/BroadcastDispatcher$Deferrals;->size()I
HSPLcom/android/server/am/BroadcastDispatcher;-><init>(Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/BroadcastConstants;Landroid/os/Handler;Ljava/lang/Object;)V
+PLcom/android/server/am/BroadcastDispatcher;->access$000(Lcom/android/server/am/BroadcastDispatcher;)Ljava/lang/Object;
+PLcom/android/server/am/BroadcastDispatcher;->access$100(Lcom/android/server/am/BroadcastDispatcher;)Ljava/util/ArrayList;
+PLcom/android/server/am/BroadcastDispatcher;->access$200(Lcom/android/server/am/BroadcastDispatcher;)Ljava/util/ArrayList;
PLcom/android/server/am/BroadcastDispatcher;->addDeferredBroadcast(ILcom/android/server/am/BroadcastRecord;)V
-PLcom/android/server/am/BroadcastDispatcher;->calculateDeferral(J)J
PLcom/android/server/am/BroadcastDispatcher;->cleanupBroadcastListDisabledReceiversLocked(Ljava/util/ArrayList;Ljava/lang/String;Ljava/util/Set;IZ)Z
PLcom/android/server/am/BroadcastDispatcher;->cleanupDeferralsListDisabledReceiversLocked(Ljava/util/ArrayList;Ljava/lang/String;Ljava/util/Set;IZ)Z
PLcom/android/server/am/BroadcastDispatcher;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
-PLcom/android/server/am/BroadcastDispatcher;->enqueueOrderedBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V
-PLcom/android/server/am/BroadcastDispatcher;->findUidLocked(I)Lcom/android/server/am/BroadcastDispatcher$Deferrals;
-PLcom/android/server/am/BroadcastDispatcher;->findUidLocked(ILjava/util/ArrayList;)Lcom/android/server/am/BroadcastDispatcher$Deferrals;
-PLcom/android/server/am/BroadcastDispatcher;->getActiveBroadcastLocked()Lcom/android/server/am/BroadcastRecord;
-HPLcom/android/server/am/BroadcastDispatcher;->getNextBroadcastLocked(J)Lcom/android/server/am/BroadcastRecord;
-PLcom/android/server/am/BroadcastDispatcher;->insertLocked(Ljava/util/ArrayList;Lcom/android/server/am/BroadcastDispatcher$Deferrals;)V
-HPLcom/android/server/am/BroadcastDispatcher;->isDeferringLocked(I)Z
+PLcom/android/server/am/BroadcastDispatcher;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/am/BroadcastDispatcher;->enqueueOrderedBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V
+HSPLcom/android/server/am/BroadcastDispatcher;->findUidLocked(I)Lcom/android/server/am/BroadcastDispatcher$Deferrals;
+HSPLcom/android/server/am/BroadcastDispatcher;->findUidLocked(ILjava/util/ArrayList;)Lcom/android/server/am/BroadcastDispatcher$Deferrals;
+HSPLcom/android/server/am/BroadcastDispatcher;->getActiveBroadcastLocked()Lcom/android/server/am/BroadcastRecord;
+HSPLcom/android/server/am/BroadcastDispatcher;->getNextBroadcastLocked(J)Lcom/android/server/am/BroadcastRecord;
+PLcom/android/server/am/BroadcastDispatcher;->isDeferralsListEmpty(Ljava/util/ArrayList;)Z
+HSPLcom/android/server/am/BroadcastDispatcher;->isDeferringLocked(I)Z
PLcom/android/server/am/BroadcastDispatcher;->isEmpty()Z
-PLcom/android/server/am/BroadcastDispatcher;->replaceBroadcastLocked(Lcom/android/server/am/BroadcastRecord;Ljava/lang/String;)Lcom/android/server/am/BroadcastRecord;
-PLcom/android/server/am/BroadcastDispatcher;->replaceBroadcastLocked(Ljava/util/ArrayList;Lcom/android/server/am/BroadcastRecord;Ljava/lang/String;)Lcom/android/server/am/BroadcastRecord;
-PLcom/android/server/am/BroadcastDispatcher;->replaceDeferredBroadcastLocked(Ljava/util/ArrayList;Lcom/android/server/am/BroadcastRecord;Ljava/lang/String;)Lcom/android/server/am/BroadcastRecord;
-HPLcom/android/server/am/BroadcastDispatcher;->retireBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V
-PLcom/android/server/am/BroadcastDispatcher;->scheduleDeferralCheckLocked(Z)V
-PLcom/android/server/am/BroadcastDispatcher;->start()V
+PLcom/android/server/am/BroadcastDispatcher;->pendingInDeferralsList(Ljava/util/ArrayList;)I
+HPLcom/android/server/am/BroadcastDispatcher;->replaceBroadcastLocked(Ljava/util/ArrayList;Lcom/android/server/am/BroadcastRecord;Ljava/lang/String;)Lcom/android/server/am/BroadcastRecord;
+HSPLcom/android/server/am/BroadcastDispatcher;->retireBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V
+HSPLcom/android/server/am/BroadcastDispatcher;->scheduleDeferralCheckLocked(Z)V
+HSPLcom/android/server/am/BroadcastDispatcher;->start()V
PLcom/android/server/am/BroadcastDispatcher;->startDeferring(I)V
-PLcom/android/server/am/BroadcastFilter;-><init>(Landroid/content/IntentFilter;Lcom/android/server/am/ReceiverList;Ljava/lang/String;Ljava/lang/String;IIZZ)V
+HSPLcom/android/server/am/BroadcastFilter;-><init>(Landroid/content/IntentFilter;Lcom/android/server/am/ReceiverList;Ljava/lang/String;Ljava/lang/String;IIZZ)V
+HPLcom/android/server/am/BroadcastFilter;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLcom/android/server/am/BroadcastFilter;->toString()Ljava/lang/String;
+PLcom/android/server/am/BroadcastQueue$AppNotResponding;-><init>(Lcom/android/server/am/BroadcastQueue;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V
+PLcom/android/server/am/BroadcastQueue$AppNotResponding;->run()V
HSPLcom/android/server/am/BroadcastQueue$BroadcastHandler;-><init>(Lcom/android/server/am/BroadcastQueue;Landroid/os/Looper;)V
-HPLcom/android/server/am/BroadcastQueue$BroadcastHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/am/BroadcastQueue$BroadcastHandler;->handleMessage(Landroid/os/Message;)V
HSPLcom/android/server/am/BroadcastQueue;-><clinit>()V
HSPLcom/android/server/am/BroadcastQueue;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/os/Handler;Ljava/lang/String;Lcom/android/server/am/BroadcastConstants;Z)V
-HPLcom/android/server/am/BroadcastQueue;->addBroadcastToHistoryLocked(Lcom/android/server/am/BroadcastRecord;)V
+HSPLcom/android/server/am/BroadcastQueue;->addBroadcastToHistoryLocked(Lcom/android/server/am/BroadcastRecord;)V
HPLcom/android/server/am/BroadcastQueue;->backgroundServicesFinishedLocked(I)V
PLcom/android/server/am/BroadcastQueue;->broadcastTimeoutLocked(Z)V
-HPLcom/android/server/am/BroadcastQueue;->cancelBroadcastTimeoutLocked()V
+HSPLcom/android/server/am/BroadcastQueue;->cancelBroadcastTimeoutLocked()V
PLcom/android/server/am/BroadcastQueue;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
-HPLcom/android/server/am/BroadcastQueue;->deliverToRegisteredReceiverLocked(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastFilter;ZI)V
-HPLcom/android/server/am/BroadcastQueue;->enqueueBroadcastHelper(Lcom/android/server/am/BroadcastRecord;)V
-HPLcom/android/server/am/BroadcastQueue;->enqueueOrderedBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V
-PLcom/android/server/am/BroadcastQueue;->enqueueParallelBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V
+HPLcom/android/server/am/BroadcastQueue;->createBroadcastTraceTitle(Lcom/android/server/am/BroadcastRecord;I)Ljava/lang/String;
+HSPLcom/android/server/am/BroadcastQueue;->deliverToRegisteredReceiverLocked(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/BroadcastFilter;ZI)V
+HPLcom/android/server/am/BroadcastQueue;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+PLcom/android/server/am/BroadcastQueue;->dumpLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;Z)Z
+HSPLcom/android/server/am/BroadcastQueue;->enqueueBroadcastHelper(Lcom/android/server/am/BroadcastRecord;)V
+HSPLcom/android/server/am/BroadcastQueue;->enqueueOrderedBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V
+HSPLcom/android/server/am/BroadcastQueue;->enqueueParallelBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)V
HPLcom/android/server/am/BroadcastQueue;->finishReceiverLocked(Lcom/android/server/am/BroadcastRecord;ILjava/lang/String;Landroid/os/Bundle;ZZ)Z
PLcom/android/server/am/BroadcastQueue;->getMatchingOrderedReceiver(Landroid/os/IBinder;)Lcom/android/server/am/BroadcastRecord;
-PLcom/android/server/am/BroadcastQueue;->isPendingBroadcastProcessLocked(I)Z
-PLcom/android/server/am/BroadcastQueue;->isSignaturePerm([Ljava/lang/String;)Z
+HSPLcom/android/server/am/BroadcastQueue;->isPendingBroadcastProcessLocked(I)Z
+HSPLcom/android/server/am/BroadcastQueue;->isSignaturePerm([Ljava/lang/String;)Z
PLcom/android/server/am/BroadcastQueue;->lambda$postActivityStartTokenRemoval$0$BroadcastQueue(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;)V
PLcom/android/server/am/BroadcastQueue;->logBroadcastReceiverDiscardLocked(Lcom/android/server/am/BroadcastRecord;)V
-HPLcom/android/server/am/BroadcastQueue;->maybeAddAllowBackgroundActivityStartsToken(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;)V
+HSPLcom/android/server/am/BroadcastQueue;->maybeAddAllowBackgroundActivityStartsToken(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;)V
PLcom/android/server/am/BroadcastQueue;->nextSplitTokenLocked()I
-HPLcom/android/server/am/BroadcastQueue;->performReceiveLocked(Lcom/android/server/am/ProcessRecord;Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
-PLcom/android/server/am/BroadcastQueue;->postActivityStartTokenRemoval(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;)V
+HSPLcom/android/server/am/BroadcastQueue;->performReceiveLocked(Lcom/android/server/am/ProcessRecord;Landroid/content/IIntentReceiver;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
+HPLcom/android/server/am/BroadcastQueue;->postActivityStartTokenRemoval(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/BroadcastRecord;)V
HPLcom/android/server/am/BroadcastQueue;->processCurBroadcastLocked(Lcom/android/server/am/BroadcastRecord;Lcom/android/server/am/ProcessRecord;Z)V
-HPLcom/android/server/am/BroadcastQueue;->processNextBroadcast(Z)V
-HPLcom/android/server/am/BroadcastQueue;->processNextBroadcastLocked(ZZ)V
-PLcom/android/server/am/BroadcastQueue;->replaceBroadcastLocked(Ljava/util/ArrayList;Lcom/android/server/am/BroadcastRecord;Ljava/lang/String;)Lcom/android/server/am/BroadcastRecord;
+HSPLcom/android/server/am/BroadcastQueue;->processNextBroadcast(Z)V
+HSPLcom/android/server/am/BroadcastQueue;->processNextBroadcastLocked(ZZ)V
+HSPLcom/android/server/am/BroadcastQueue;->replaceBroadcastLocked(Ljava/util/ArrayList;Lcom/android/server/am/BroadcastRecord;Ljava/lang/String;)Lcom/android/server/am/BroadcastRecord;
PLcom/android/server/am/BroadcastQueue;->replaceOrderedBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)Lcom/android/server/am/BroadcastRecord;
-PLcom/android/server/am/BroadcastQueue;->replaceParallelBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)Lcom/android/server/am/BroadcastRecord;
-HPLcom/android/server/am/BroadcastQueue;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/BroadcastRecord;Ljava/lang/String;I)Z
-PLcom/android/server/am/BroadcastQueue;->ringAdvance(III)I
-HPLcom/android/server/am/BroadcastQueue;->scheduleBroadcastsLocked()V
+HSPLcom/android/server/am/BroadcastQueue;->replaceParallelBroadcastLocked(Lcom/android/server/am/BroadcastRecord;)Lcom/android/server/am/BroadcastRecord;
+HSPLcom/android/server/am/BroadcastQueue;->requestStartTargetPermissionsReviewIfNeededLocked(Lcom/android/server/am/BroadcastRecord;Ljava/lang/String;I)Z
+HSPLcom/android/server/am/BroadcastQueue;->ringAdvance(III)I
+HSPLcom/android/server/am/BroadcastQueue;->scheduleBroadcastsLocked()V
PLcom/android/server/am/BroadcastQueue;->scheduleTempWhitelistLocked(IJLcom/android/server/am/BroadcastRecord;)V
PLcom/android/server/am/BroadcastQueue;->sendPendingBroadcastsLocked(Lcom/android/server/am/ProcessRecord;)Z
-HPLcom/android/server/am/BroadcastQueue;->setBroadcastTimeoutLocked(J)V
-PLcom/android/server/am/BroadcastQueue;->skipCurrentReceiverLocked(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/BroadcastQueue;->setBroadcastTimeoutLocked(J)V
+HSPLcom/android/server/am/BroadcastQueue;->skipCurrentReceiverLocked(Lcom/android/server/am/ProcessRecord;)V
PLcom/android/server/am/BroadcastQueue;->skipReceiverLocked(Lcom/android/server/am/BroadcastRecord;)V
-PLcom/android/server/am/BroadcastQueue;->start(Landroid/content/ContentResolver;)V
-PLcom/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;IIZLjava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;Ljava/util/List;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;ZZZIZZ)V
-PLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastRecord;Landroid/content/Intent;)V
-PLcom/android/server/am/BroadcastRecord;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
-HPLcom/android/server/am/BroadcastRecord;->getReceiverUid(Ljava/lang/Object;)I
-PLcom/android/server/am/BroadcastRecord;->maybeStripForHistory()Lcom/android/server/am/BroadcastRecord;
+HSPLcom/android/server/am/BroadcastQueue;->start(Landroid/content/ContentResolver;)V
+HSPLcom/android/server/am/BroadcastRecord;-><clinit>()V
+HSPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastQueue;Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;IIZLjava/lang/String;[Ljava/lang/String;ILandroid/app/BroadcastOptions;Ljava/util/List;Landroid/content/IIntentReceiver;ILjava/lang/String;Landroid/os/Bundle;ZZZIZZ)V
+HPLcom/android/server/am/BroadcastRecord;-><init>(Lcom/android/server/am/BroadcastRecord;Landroid/content/Intent;)V
+HPLcom/android/server/am/BroadcastRecord;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
+PLcom/android/server/am/BroadcastRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/text/SimpleDateFormat;)V
+PLcom/android/server/am/BroadcastRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/am/BroadcastRecord;->getReceiverUid(Ljava/lang/Object;)I
+HSPLcom/android/server/am/BroadcastRecord;->maybeStripForHistory()Lcom/android/server/am/BroadcastRecord;
PLcom/android/server/am/BroadcastRecord;->splitRecipientsLocked(II)Lcom/android/server/am/BroadcastRecord;
PLcom/android/server/am/BroadcastRecord;->toString()Ljava/lang/String;
-PLcom/android/server/am/BroadcastStats$1;-><init>()V
-PLcom/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/BroadcastStats;-><clinit>()V
-PLcom/android/server/am/BroadcastStats;-><init>()V
-PLcom/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
+HSPLcom/android/server/am/BroadcastStats$1;-><init>()V
+PLcom/android/server/am/BroadcastStats$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/am/BroadcastStats$ActionEntry;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/am/BroadcastStats$PackageEntry;-><init>()V
+HSPLcom/android/server/am/BroadcastStats$ViolationEntry;-><init>()V
+HSPLcom/android/server/am/BroadcastStats;-><clinit>()V
+HSPLcom/android/server/am/BroadcastStats;-><init>()V
+HSPLcom/android/server/am/BroadcastStats;->addBackgroundCheckViolation(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/BroadcastStats;->addBroadcast(Ljava/lang/String;Ljava/lang/String;IIJ)V
HPLcom/android/server/am/BroadcastStats;->dumpCheckinStats(Ljava/io/PrintWriter;Ljava/lang/String;)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;IILandroid/app/PendingIntent;ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/BroadcastStats;->dumpStats(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/server/am/ConnectionRecord;-><clinit>()V
+HSPLcom/android/server/am/ConnectionRecord;-><init>(Lcom/android/server/am/AppBindRecord;Lcom/android/server/wm/ActivityServiceConnectionsHolder;Landroid/app/IServiceConnection;IILandroid/app/PendingIntent;ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/am/ConnectionRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/am/ConnectionRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HPLcom/android/server/am/ConnectionRecord;->hasFlag(I)Z
HPLcom/android/server/am/ConnectionRecord;->notHasFlag(I)Z
-HPLcom/android/server/am/ConnectionRecord;->startAssociationIfNeeded()V
+HSPLcom/android/server/am/ConnectionRecord;->startAssociationIfNeeded()V
PLcom/android/server/am/ConnectionRecord;->stopAssociation()V
+HSPLcom/android/server/am/ConnectionRecord;->toString()Ljava/lang/String;
HPLcom/android/server/am/ConnectionRecord;->trackProcState(IIJ)V
-PLcom/android/server/am/ContentProviderConnection;-><init>(Lcom/android/server/am/ContentProviderRecord;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V
-HPLcom/android/server/am/ContentProviderConnection;->startAssociationIfNeeded()V
+HSPLcom/android/server/am/ContentProviderConnection;-><init>(Lcom/android/server/am/ContentProviderRecord;Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)V
+HSPLcom/android/server/am/ContentProviderConnection;->startAssociationIfNeeded()V
PLcom/android/server/am/ContentProviderConnection;->stopAssociation()V
+PLcom/android/server/am/ContentProviderConnection;->toClientString(Ljava/lang/StringBuilder;)V
+PLcom/android/server/am/ContentProviderConnection;->toShortString()Ljava/lang/String;
HPLcom/android/server/am/ContentProviderConnection;->trackProcState(IIJ)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
+HSPLcom/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;->addExternalProcessHandleLocked(Landroid/os/IBinder;ILjava/lang/String;)V
-HPLcom/android/server/am/ContentProviderRecord;->canRunHere(Lcom/android/server/am/ProcessRecord;)Z
+HSPLcom/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;)Landroid/app/ContentProviderHolder;
+HSPLcom/android/server/am/ContentProviderRecord;->newHolder(Lcom/android/server/am/ContentProviderConnection;)Landroid/app/ContentProviderHolder;
PLcom/android/server/am/ContentProviderRecord;->removeExternalProcessHandleLocked(Landroid/os/IBinder;)Z
-HPLcom/android/server/am/ContentProviderRecord;->setProcess(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/CoreSettingsObserver;-><clinit>()V
-PLcom/android/server/am/CoreSettingsObserver;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/CoreSettingsObserver;->beginObserveCoreSettings()V
-PLcom/android/server/am/CoreSettingsObserver;->getCoreSettingsLocked()Landroid/os/Bundle;
-PLcom/android/server/am/CoreSettingsObserver;->populateSettings(Landroid/os/Bundle;Ljava/util/Map;)V
-PLcom/android/server/am/CoreSettingsObserver;->sendCoreSettings()V
+HSPLcom/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;
+HSPLcom/android/server/am/CoreSettingsObserver;-><clinit>()V
+HSPLcom/android/server/am/CoreSettingsObserver;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+HSPLcom/android/server/am/CoreSettingsObserver;->beginObserveCoreSettings()V
+HSPLcom/android/server/am/CoreSettingsObserver;->getCoreSettingsLocked()Landroid/os/Bundle;
+HSPLcom/android/server/am/CoreSettingsObserver;->populateSettings(Landroid/os/Bundle;Ljava/util/Map;)V
+HSPLcom/android/server/am/CoreSettingsObserver;->sendCoreSettings()V
PLcom/android/server/am/EventLogTags;->writeAmCrash(IILjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/am/EventLogTags;->writeAmLowMemory(I)V
+PLcom/android/server/am/EventLogTags;->writeAmDropProcess(I)V
+HSPLcom/android/server/am/EventLogTags;->writeAmLowMemory(I)V
+PLcom/android/server/am/EventLogTags;->writeAmMemFactor(II)V
PLcom/android/server/am/EventLogTags;->writeAmMeminfo(JJJJJ)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;->writeAmPss(IILjava/lang/String;JJJJIIJ)V
-PLcom/android/server/am/EventLogTags;->writeAmUidActive(I)V
-PLcom/android/server/am/EventLogTags;->writeAmUidRunning(I)V
-PLcom/android/server/am/EventLogTags;->writeAmUidStopped(I)V
+HSPLcom/android/server/am/EventLogTags;->writeAmProcBound(IILjava/lang/String;)V
+HSPLcom/android/server/am/EventLogTags;->writeAmProcDied(IILjava/lang/String;II)V
+HPLcom/android/server/am/EventLogTags;->writeAmPss(IILjava/lang/String;JJJJIIJ)V
+HSPLcom/android/server/am/EventLogTags;->writeAmUidActive(I)V
+HSPLcom/android/server/am/EventLogTags;->writeAmUidRunning(I)V
+HSPLcom/android/server/am/EventLogTags;->writeAmUidStopped(I)V
PLcom/android/server/am/EventLogTags;->writeAmUserStateChanged(II)V
-PLcom/android/server/am/EventLogTags;->writeAmWtf(IILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/EventLogTags;->writeBootProgressAmsReady(J)V
+HPLcom/android/server/am/EventLogTags;->writeAmWtf(IILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/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/HealthStatsBatteryStatsWriter;-><init>()V
-PLcom/android/server/am/HealthStatsBatteryStatsWriter;->addTimer(Landroid/os/health/HealthStatsWriter;ILandroid/os/BatteryStats$Timer;)V
+HSPLcom/android/server/am/EventLogTags;->writeConfigurationChanged(I)V
+HPLcom/android/server/am/HealthStatsBatteryStatsWriter;-><init>()V
+HPLcom/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/HealthStatsBatteryStatsWriter;->writePid(Landroid/os/health/HealthStatsWriter;Landroid/os/BatteryStats$Uid$Pid;)V
PLcom/android/server/am/HealthStatsBatteryStatsWriter;->writePkg(Landroid/os/health/HealthStatsWriter;Landroid/os/BatteryStats$Uid$Pkg;)V
PLcom/android/server/am/HealthStatsBatteryStatsWriter;->writeProc(Landroid/os/health/HealthStatsWriter;Landroid/os/BatteryStats$Uid$Proc;)V
PLcom/android/server/am/HealthStatsBatteryStatsWriter;->writeServ(Landroid/os/health/HealthStatsWriter;Landroid/os/BatteryStats$Uid$Pkg$Serv;)V
-PLcom/android/server/am/HealthStatsBatteryStatsWriter;->writeUid(Landroid/os/health/HealthStatsWriter;Landroid/os/BatteryStats;Landroid/os/BatteryStats$Uid;)V
+HPLcom/android/server/am/HealthStatsBatteryStatsWriter;->writeUid(Landroid/os/health/HealthStatsWriter;Landroid/os/BatteryStats;Landroid/os/BatteryStats$Uid;)V
HSPLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;)V
-HPLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Landroid/content/ComponentName;)V
-HPLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Landroid/content/ComponentName;I)V
+HSPLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Landroid/content/ComponentName;)V
+HSPLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Landroid/content/ComponentName;I)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;I)V
HSPLcom/android/server/am/HostingRecord;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;IZ)V
PLcom/android/server/am/HostingRecord;->getDefiningPackageName()Ljava/lang/String;
PLcom/android/server/am/HostingRecord;->getDefiningUid()I
-PLcom/android/server/am/HostingRecord;->getName()Ljava/lang/String;
-PLcom/android/server/am/HostingRecord;->getType()Ljava/lang/String;
-PLcom/android/server/am/HostingRecord;->isTopApp()Z
-PLcom/android/server/am/HostingRecord;->usesAppZygote()Z
-PLcom/android/server/am/HostingRecord;->usesWebviewZygote()Z
+HSPLcom/android/server/am/HostingRecord;->getName()Ljava/lang/String;
+HSPLcom/android/server/am/HostingRecord;->getType()Ljava/lang/String;
+HSPLcom/android/server/am/HostingRecord;->isTopApp()Z
+HSPLcom/android/server/am/HostingRecord;->usesAppZygote()Z
+HSPLcom/android/server/am/HostingRecord;->usesWebviewZygote()Z
HSPLcom/android/server/am/InstrumentationReporter;-><init>()V
-PLcom/android/server/am/IntentBindRecord;-><init>(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent$FilterComparison;)V
-PLcom/android/server/am/LmkdConnection$1;-><init>(Lcom/android/server/am/LmkdConnection;)V
+HSPLcom/android/server/am/IntentBindRecord;-><init>(Lcom/android/server/am/ServiceRecord;Landroid/content/Intent$FilterComparison;)V
+HSPLcom/android/server/am/IntentBindRecord;->collectFlags()I
+HPLcom/android/server/am/IntentBindRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/am/IntentBindRecord;->dumpInService(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/am/LmkdConnection$1;-><init>(Lcom/android/server/am/LmkdConnection;)V
+PLcom/android/server/am/LmkdConnection$1;->onFileDescriptorEvents(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
-HPLcom/android/server/am/LmkdConnection;->isConnected()Z
-PLcom/android/server/am/LmkdConnection;->openSocket()Landroid/net/LocalSocket;
-PLcom/android/server/am/LmkdConnection;->waitForConnection(J)Z
-HPLcom/android/server/am/LmkdConnection;->write(Ljava/nio/ByteBuffer;)Z
+PLcom/android/server/am/LmkdConnection;->access$000(Lcom/android/server/am/LmkdConnection;Ljava/io/FileDescriptor;I)I
+HSPLcom/android/server/am/LmkdConnection;->connect()Z
+HSPLcom/android/server/am/LmkdConnection;->exchange(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Z
+PLcom/android/server/am/LmkdConnection;->fileDescriptorEventHandler(Ljava/io/FileDescriptor;I)I
+HSPLcom/android/server/am/LmkdConnection;->isConnected()Z
+HSPLcom/android/server/am/LmkdConnection;->openSocket()Landroid/net/LocalSocket;
+PLcom/android/server/am/LmkdConnection;->processIncomingData()V
+PLcom/android/server/am/LmkdConnection;->read(Ljava/nio/ByteBuffer;)I
+HSPLcom/android/server/am/LmkdConnection;->waitForConnection(J)Z
+HSPLcom/android/server/am/LmkdConnection;->write(Ljava/nio/ByteBuffer;)Z
HSPLcom/android/server/am/LowMemDetector$LowMemThread;-><init>(Lcom/android/server/am/LowMemDetector;)V
HSPLcom/android/server/am/LowMemDetector$LowMemThread;-><init>(Lcom/android/server/am/LowMemDetector;Lcom/android/server/am/LowMemDetector$1;)V
HSPLcom/android/server/am/LowMemDetector$LowMemThread;->run()V
@@ -3979,78 +4498,101 @@ PLcom/android/server/am/LowMemDetector;->access$300(Lcom/android/server/am/LowMe
PLcom/android/server/am/LowMemDetector;->access$402(Lcom/android/server/am/LowMemDetector;I)I
HSPLcom/android/server/am/LowMemDetector;->getMemFactor()I
HSPLcom/android/server/am/LowMemDetector;->isAvailable()Z
-PLcom/android/server/am/MemoryStatUtil$MemoryStat;-><init>()V
-PLcom/android/server/am/MemoryStatUtil;-><clinit>()V
-PLcom/android/server/am/MemoryStatUtil;->hasMemcg()Z
+HPLcom/android/server/am/MemoryStatUtil$MemoryStat;-><init>()V
+HSPLcom/android/server/am/MemoryStatUtil;-><clinit>()V
+HSPLcom/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/NativeCrashListener;-><init>(Lcom/android/server/am/ActivityManagerService;)V
+PLcom/android/server/am/NativeCrashListener$NativeCrashReporter;-><init>(Lcom/android/server/am/NativeCrashListener;Lcom/android/server/am/ProcessRecord;ILjava/lang/String;)V
+PLcom/android/server/am/NativeCrashListener$NativeCrashReporter;->run()V
+HSPLcom/android/server/am/NativeCrashListener;-><init>(Lcom/android/server/am/ActivityManagerService;)V
PLcom/android/server/am/NativeCrashListener;->consumeNativeCrashData(Ljava/io/FileDescriptor;)V
-PLcom/android/server/am/NativeCrashListener;->run()V
+HSPLcom/android/server/am/NativeCrashListener;->run()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$1;)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$CpuTimes;->isEmpty()Z
+PLcom/android/server/am/OomAdjProfiler$CpuTimes;->toString()Ljava/lang/String;
HSPLcom/android/server/am/OomAdjProfiler;-><init>()V
HSPLcom/android/server/am/OomAdjProfiler;->access$100(Lcom/android/server/am/OomAdjProfiler;)Z
HSPLcom/android/server/am/OomAdjProfiler;->access$200(Lcom/android/server/am/OomAdjProfiler;)Z
HSPLcom/android/server/am/OomAdjProfiler;->batteryPowerChanged(Z)V
+PLcom/android/server/am/OomAdjProfiler;->dump(Ljava/io/PrintWriter;)V
HSPLcom/android/server/am/OomAdjProfiler;->lambda$oLbVP84ACmxo_1QlnwlSuhi91W4(Lcom/android/server/am/OomAdjProfiler;ZZZ)V
PLcom/android/server/am/OomAdjProfiler;->onWakefulnessChanged(I)V
HSPLcom/android/server/am/OomAdjProfiler;->oomAdjEnded()V
HSPLcom/android/server/am/OomAdjProfiler;->oomAdjStarted()V
+HSPLcom/android/server/am/OomAdjProfiler;->reset()V
HSPLcom/android/server/am/OomAdjProfiler;->scheduleSystemServerCpuTimeUpdate()V
HSPLcom/android/server/am/OomAdjProfiler;->updateSystemServerCpuTime(ZZZ)V
HSPLcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;-><init>(Lcom/android/server/am/OomAdjuster;)V
+PLcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;->initialize(Lcom/android/server/am/ProcessRecord;IZIIIII)V
HPLcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;->onOtherActivity()V
PLcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;->onPausedActivity()V
PLcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;->onStoppingActivity(Z)V
PLcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;->onVisibleActivity()V
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;->applyOomAdjLocked(Lcom/android/server/am/ProcessRecord;ZJJ)Z
+HSPLcom/android/server/am/OomAdjuster;->applyOomAdjLocked(Lcom/android/server/am/ProcessRecord;ZJJ)Z
HSPLcom/android/server/am/OomAdjuster;->assignCachedAdjIfNecessary(Ljava/util/ArrayList;)V
-HPLcom/android/server/am/OomAdjuster;->computeOomAdjLocked(Lcom/android/server/am/ProcessRecord;ILcom/android/server/am/ProcessRecord;ZJZZ)Z
+HSPLcom/android/server/am/OomAdjuster;->computeOomAdjLocked(Lcom/android/server/am/ProcessRecord;ILcom/android/server/am/ProcessRecord;ZJZZ)Z
HSPLcom/android/server/am/OomAdjuster;->createAdjusterThread()Lcom/android/server/ServiceThread;
+PLcom/android/server/am/OomAdjuster;->dumpProcCountsLocked(Ljava/io/PrintWriter;)V
+PLcom/android/server/am/OomAdjuster;->dumpProcessListVariablesLocked(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/am/OomAdjuster;->dumpSequenceNumbersLocked(Ljava/io/PrintWriter;)V
HPLcom/android/server/am/OomAdjuster;->idleUidsLocked()V
-PLcom/android/server/am/OomAdjuster;->initSettings()V
+HSPLcom/android/server/am/OomAdjuster;->initSettings()V
HPLcom/android/server/am/OomAdjuster;->lambda$new$0(Landroid/os/Message;)Z
PLcom/android/server/am/OomAdjuster;->maybeUpdateLastTopTime(Lcom/android/server/am/ProcessRecord;J)V
-HPLcom/android/server/am/OomAdjuster;->maybeUpdateUsageStatsLocked(Lcom/android/server/am/ProcessRecord;J)V
+HSPLcom/android/server/am/OomAdjuster;->maybeUpdateUsageStatsLocked(Lcom/android/server/am/ProcessRecord;J)V
HPLcom/android/server/am/OomAdjuster;->setAppIdTempWhitelistStateLocked(IZ)V
-PLcom/android/server/am/OomAdjuster;->setAttachingSchedGroupLocked(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/OomAdjuster;->setAttachingSchedGroupLocked(Lcom/android/server/am/ProcessRecord;)V
+PLcom/android/server/am/OomAdjuster;->setUidTempWhitelistStateLocked(IZ)V
HPLcom/android/server/am/OomAdjuster;->shouldSkipDueToCycle(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/ProcessRecord;IIZ)Z
HSPLcom/android/server/am/OomAdjuster;->updateAndTrimProcessLocked(JJJLcom/android/server/am/ActiveUids;)Z
-HPLcom/android/server/am/OomAdjuster;->updateAppUidRecLocked(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/OomAdjuster;->updateOomAdjLocked(Lcom/android/server/am/ProcessRecord;ILcom/android/server/am/ProcessRecord;ZJ)Z
-HPLcom/android/server/am/OomAdjuster;->updateOomAdjLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)Z
-HPLcom/android/server/am/OomAdjuster;->updateOomAdjLocked(Lcom/android/server/am/ProcessRecord;ZLjava/lang/String;)Z
+HSPLcom/android/server/am/OomAdjuster;->updateAppUidRecLocked(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/OomAdjuster;->updateOomAdjLocked(Lcom/android/server/am/ProcessRecord;ILcom/android/server/am/ProcessRecord;ZJ)Z
+HSPLcom/android/server/am/OomAdjuster;->updateOomAdjLocked(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;)Z
+HSPLcom/android/server/am/OomAdjuster;->updateOomAdjLocked(Lcom/android/server/am/ProcessRecord;ZLjava/lang/String;)Z
HSPLcom/android/server/am/OomAdjuster;->updateOomAdjLocked(Ljava/lang/String;)V
HSPLcom/android/server/am/OomAdjuster;->updateOomAdjLockedInner(Ljava/lang/String;Lcom/android/server/am/ProcessRecord;Ljava/util/ArrayList;Lcom/android/server/am/ActiveUids;ZZ)V
HSPLcom/android/server/am/OomAdjuster;->updateUidsLocked(Lcom/android/server/am/ActiveUids;J)V
HSPLcom/android/server/am/PendingIntentController;-><init>(Landroid/os/Looper;Lcom/android/server/am/UserController;)V
-PLcom/android/server/am/PendingIntentController;->cancelIntentSender(Landroid/content/IIntentSender;)V
-PLcom/android/server/am/PendingIntentController;->cancelIntentSender(Lcom/android/server/am/PendingIntentRecord;Z)V
-HPLcom/android/server/am/PendingIntentController;->getIntentSender(ILjava/lang/String;IILandroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;)Lcom/android/server/am/PendingIntentRecord;
-PLcom/android/server/am/PendingIntentController;->makeIntentSenderCanceled(Lcom/android/server/am/PendingIntentRecord;)V
+HPLcom/android/server/am/PendingIntentController;->cancelIntentSender(Landroid/content/IIntentSender;)V
+HPLcom/android/server/am/PendingIntentController;->cancelIntentSender(Lcom/android/server/am/PendingIntentRecord;Z)V
+PLcom/android/server/am/PendingIntentController;->dumpPendingIntents(Ljava/io/PrintWriter;ZLjava/lang/String;)V
+HSPLcom/android/server/am/PendingIntentController;->getIntentSender(ILjava/lang/String;IILandroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILandroid/os/Bundle;)Lcom/android/server/am/PendingIntentRecord;
+HPLcom/android/server/am/PendingIntentController;->makeIntentSenderCanceled(Lcom/android/server/am/PendingIntentRecord;)V
HSPLcom/android/server/am/PendingIntentController;->onActivityManagerInternalAdded()V
-HPLcom/android/server/am/PendingIntentController;->registerIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
+PLcom/android/server/am/PendingIntentController;->registerIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
HPLcom/android/server/am/PendingIntentController;->setPendingIntentWhitelistDuration(Landroid/content/IIntentSender;Landroid/os/IBinder;J)V
HPLcom/android/server/am/PendingIntentController;->unregisterIntentSenderCancelListener(Landroid/content/IIntentSender;Lcom/android/internal/os/IResultReceiver;)V
-HPLcom/android/server/am/PendingIntentRecord$Key;-><init>(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILcom/android/server/wm/SafeActivityOptions;I)V
-HPLcom/android/server/am/PendingIntentRecord$Key;->equals(Ljava/lang/Object;)Z
-HPLcom/android/server/am/PendingIntentRecord$Key;->hashCode()I
-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
+HSPLcom/android/server/am/PendingIntentRecord$Key;-><init>(ILjava/lang/String;Landroid/os/IBinder;Ljava/lang/String;I[Landroid/content/Intent;[Ljava/lang/String;ILcom/android/server/wm/SafeActivityOptions;I)V
+HSPLcom/android/server/am/PendingIntentRecord$Key;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/server/am/PendingIntentRecord$Key;->hashCode()I
+PLcom/android/server/am/PendingIntentRecord$Key;->typeName()Ljava/lang/String;
+HSPLcom/android/server/am/PendingIntentRecord;-><init>(Lcom/android/server/am/PendingIntentController;Lcom/android/server/am/PendingIntentRecord$Key;I)V
+PLcom/android/server/am/PendingIntentRecord;->clearAllowBgActivityStarts(Landroid/os/IBinder;)V
+HPLcom/android/server/am/PendingIntentRecord;->completeFinalize()V
+PLcom/android/server/am/PendingIntentRecord;->detachCancelListenersLocked()Landroid/os/RemoteCallbackList;
+PLcom/android/server/am/PendingIntentRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
HPLcom/android/server/am/PendingIntentRecord;->finalize()V
PLcom/android/server/am/PendingIntentRecord;->lambda$hlEHdgdG_SS5n3v7IRr7e6QZgLQ(Lcom/android/server/am/PendingIntentRecord;)V
-PLcom/android/server/am/PendingIntentRecord;->sendInner(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;->setWhitelistDurationLocked(Landroid/os/IBinder;J)V
+HPLcom/android/server/am/PendingIntentRecord;->sendInner(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(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
+HPLcom/android/server/am/PendingIntentRecord;->setWhitelistDurationLocked(Landroid/os/IBinder;J)V
+HPLcom/android/server/am/PendingIntentRecord;->toString()Ljava/lang/String;
HPLcom/android/server/am/PendingIntentRecord;->unregisterCancelListenerLocked(Lcom/android/internal/os/IResultReceiver;)V
HSPLcom/android/server/am/PendingTempWhitelists;-><init>(Lcom/android/server/am/ActivityManagerService;)V
-PLcom/android/server/am/PendingTempWhitelists;->indexOfKey(I)I
+HSPLcom/android/server/am/PendingTempWhitelists;->indexOfKey(I)I
+PLcom/android/server/am/PendingTempWhitelists;->put(ILcom/android/server/am/ActivityManagerService$PendingTempWhitelist;)V
+PLcom/android/server/am/PendingTempWhitelists;->removeAt(I)V
+PLcom/android/server/am/PendingTempWhitelists;->size()I
+PLcom/android/server/am/PendingTempWhitelists;->valueAt(I)Lcom/android/server/am/ActivityManagerService$PendingTempWhitelist;
PLcom/android/server/am/PersistentConnection$1;-><init>(Lcom/android/server/am/PersistentConnection;)V
PLcom/android/server/am/PersistentConnection$1;->onBindingDied(Landroid/content/ComponentName;)V
PLcom/android/server/am/PersistentConnection$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
@@ -4070,202 +4612,236 @@ PLcom/android/server/am/PersistentConnection;->access$702(Lcom/android/server/am
PLcom/android/server/am/PersistentConnection;->access$802(Lcom/android/server/am/PersistentConnection;Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/am/PersistentConnection;->access$900(Lcom/android/server/am/PersistentConnection;)V
PLcom/android/server/am/PersistentConnection;->bind()V
-PLcom/android/server/am/PersistentConnection;->bindForBackoff()V
PLcom/android/server/am/PersistentConnection;->bindInnerLocked(Z)V
PLcom/android/server/am/PersistentConnection;->cleanUpConnectionLocked()V
+PLcom/android/server/am/PersistentConnection;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
PLcom/android/server/am/PersistentConnection;->injectPostAtTime(Ljava/lang/Runnable;J)V
PLcom/android/server/am/PersistentConnection;->injectRemoveCallbacks(Ljava/lang/Runnable;)V
PLcom/android/server/am/PersistentConnection;->injectUptimeMillis()J
-PLcom/android/server/am/PersistentConnection;->lambda$new$0$PersistentConnection()V
PLcom/android/server/am/PersistentConnection;->lambda$rkvbuN0FQdQUv1hqSwDvmwwh6Uk(Lcom/android/server/am/PersistentConnection;)V
PLcom/android/server/am/PersistentConnection;->resetBackoffLocked()V
PLcom/android/server/am/PersistentConnection;->scheduleRebindLocked()V
PLcom/android/server/am/PersistentConnection;->scheduleStableCheckLocked()V
PLcom/android/server/am/PersistentConnection;->stableConnectionCheck()V
+PLcom/android/server/am/PersistentConnection;->unbind()V
PLcom/android/server/am/PersistentConnection;->unbindLocked()V
PLcom/android/server/am/PersistentConnection;->unscheduleRebindLocked()V
PLcom/android/server/am/PersistentConnection;->unscheduleStableCheckLocked()V
+PLcom/android/server/am/PreBootBroadcaster$1;-><init>(Lcom/android/server/am/PreBootBroadcaster;Landroid/os/Looper;Landroid/os/Handler$Callback;Z)V
+PLcom/android/server/am/PreBootBroadcaster$1;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/am/PreBootBroadcaster;-><init>(Lcom/android/server/am/ActivityManagerService;ILcom/android/internal/util/ProgressReporter;Z)V
+PLcom/android/server/am/PreBootBroadcaster;->access$000(Lcom/android/server/am/PreBootBroadcaster;)Lcom/android/server/am/ActivityManagerService;
+PLcom/android/server/am/PreBootBroadcaster;->access$100(Lcom/android/server/am/PreBootBroadcaster;)I
+PLcom/android/server/am/PreBootBroadcaster;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
+PLcom/android/server/am/PreBootBroadcaster;->sendNext()V
HSPLcom/android/server/am/ProcessList$1;-><init>(Lcom/android/server/am/ProcessList;)V
-PLcom/android/server/am/ProcessList$1;->onConnect(Ljava/io/OutputStream;)Z
+PLcom/android/server/am/ProcessList$1;->handleUnsolicitedMessage(Ljava/nio/ByteBuffer;I)Z
+PLcom/android/server/am/ProcessList$1;->isReplyExpected(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;I)Z
+HSPLcom/android/server/am/ProcessList$1;->onConnect(Ljava/io/OutputStream;)Z
HSPLcom/android/server/am/ProcessList$IsolatedUidRange;-><init>(Lcom/android/server/am/ProcessList;II)V
PLcom/android/server/am/ProcessList$IsolatedUidRange;->allocateIsolatedUidLocked(I)I
-PLcom/android/server/am/ProcessList$IsolatedUidRange;->freeIsolatedUidLocked(I)V
+HSPLcom/android/server/am/ProcessList$IsolatedUidRange;->freeIsolatedUidLocked(I)V
HSPLcom/android/server/am/ProcessList$IsolatedUidRangeAllocator;-><init>(Lcom/android/server/am/ProcessList;III)V
PLcom/android/server/am/ProcessList$IsolatedUidRangeAllocator;->freeUidRangeLocked(Landroid/content/pm/ApplicationInfo;)V
PLcom/android/server/am/ProcessList$IsolatedUidRangeAllocator;->getIsolatedUidRangeLocked(Ljava/lang/String;I)Lcom/android/server/am/ProcessList$IsolatedUidRange;
PLcom/android/server/am/ProcessList$IsolatedUidRangeAllocator;->getOrCreateIsolatedUidRangeLocked(Ljava/lang/String;I)Lcom/android/server/am/ProcessList$IsolatedUidRange;
HSPLcom/android/server/am/ProcessList$KillHandler;-><init>(Lcom/android/server/am/ProcessList;Landroid/os/Looper;)V
-PLcom/android/server/am/ProcessList$KillHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/am/ProcessList$KillHandler;->handleMessage(Landroid/os/Message;)V
HSPLcom/android/server/am/ProcessList$MyProcessMap;-><init>(Lcom/android/server/am/ProcessList;)V
-PLcom/android/server/am/ProcessList$MyProcessMap;->put(Ljava/lang/String;ILcom/android/server/am/ProcessRecord;)Lcom/android/server/am/ProcessRecord;
-PLcom/android/server/am/ProcessList$MyProcessMap;->remove(Ljava/lang/String;I)Lcom/android/server/am/ProcessRecord;
-PLcom/android/server/am/ProcessList$ProcStateMemTracker;-><init>()V
+HSPLcom/android/server/am/ProcessList$MyProcessMap;->put(Ljava/lang/String;ILcom/android/server/am/ProcessRecord;)Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ProcessList$MyProcessMap;->remove(Ljava/lang/String;I)Lcom/android/server/am/ProcessRecord;
+HSPLcom/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
-PLcom/android/server/am/ProcessList;->abortNextPssTime(Lcom/android/server/am/ProcessList$ProcStateMemTracker;)V
-PLcom/android/server/am/ProcessList;->access$000()Lcom/android/server/am/LmkdConnection;
-HPLcom/android/server/am/ProcessList;->addProcessNameLocked(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ProcessList;->applyDisplaySize(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/am/ProcessList;->buildOomTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIZ)Ljava/lang/String;
-HPLcom/android/server/am/ProcessList;->checkSlow(JLjava/lang/String;)V
-PLcom/android/server/am/ProcessList;->clearAllDnsCacheLocked()V
-PLcom/android/server/am/ProcessList;->commitNextPssTime(Lcom/android/server/am/ProcessList$ProcStateMemTracker;)V
-HPLcom/android/server/am/ProcessList;->computeNextPssTime(ILcom/android/server/am/ProcessList$ProcStateMemTracker;ZZJ)J
-PLcom/android/server/am/ProcessList;->createAppZygoteForProcessIfNeeded(Lcom/android/server/am/ProcessRecord;)Landroid/os/AppZygote;
+HSPLcom/android/server/am/ProcessList;->abortNextPssTime(Lcom/android/server/am/ProcessList$ProcStateMemTracker;)V
+HSPLcom/android/server/am/ProcessList;->access$000()Lcom/android/server/am/LmkdConnection;
+HSPLcom/android/server/am/ProcessList;->addProcessNameLocked(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ProcessList;->appendRamKb(Ljava/lang/StringBuilder;J)V
+HSPLcom/android/server/am/ProcessList;->applyDisplaySize(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/am/ProcessList;->buildOomTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIZ)Ljava/lang/String;
+HSPLcom/android/server/am/ProcessList;->checkSlow(JLjava/lang/String;)V
+HPLcom/android/server/am/ProcessList;->clearAllDnsCacheLocked()V
+PLcom/android/server/am/ProcessList;->collectProcessesLocked(IZ[Ljava/lang/String;)Ljava/util/ArrayList;
+HPLcom/android/server/am/ProcessList;->commitNextPssTime(Lcom/android/server/am/ProcessList$ProcStateMemTracker;)V
+HSPLcom/android/server/am/ProcessList;->computeNextPssTime(ILcom/android/server/am/ProcessList$ProcStateMemTracker;ZZJ)J
+HPLcom/android/server/am/ProcessList;->createAppZygoteForProcessIfNeeded(Lcom/android/server/am/ProcessRecord;)Landroid/os/AppZygote;
+HSPLcom/android/server/am/ProcessList;->dumpLruListHeaderLocked(Ljava/io/PrintWriter;)V
HPLcom/android/server/am/ProcessList;->fillInProcMemInfoLocked(Lcom/android/server/am/ProcessRecord;Landroid/app/ActivityManager$RunningAppProcessInfo;I)V
-PLcom/android/server/am/ProcessList;->findAppProcessLocked(Landroid/os/IBinder;Ljava/lang/String;)Lcom/android/server/am/ProcessRecord;
-HPLcom/android/server/am/ProcessList;->getBlockStateForUid(Lcom/android/server/am/UidRecord;)I
+HPLcom/android/server/am/ProcessList;->findAppProcessLocked(Landroid/os/IBinder;Ljava/lang/String;)Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ProcessList;->getBlockStateForUid(Lcom/android/server/am/UidRecord;)I
PLcom/android/server/am/ProcessList;->getCachedRestoreThresholdKb()J
-HPLcom/android/server/am/ProcessList;->getLRURecordForAppLocked(Landroid/app/IApplicationThread;)Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ProcessList;->getLRURecordForAppLocked(Landroid/app/IApplicationThread;)Lcom/android/server/am/ProcessRecord;
+PLcom/android/server/am/ProcessList;->getLmkdKillCount(II)Ljava/lang/Integer;
HSPLcom/android/server/am/ProcessList;->getLruSizeLocked()I
HSPLcom/android/server/am/ProcessList;->getMemLevel(I)J
-HPLcom/android/server/am/ProcessList;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V
-HPLcom/android/server/am/ProcessList;->getProcessRecordLocked(Ljava/lang/String;IZ)Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ProcessList;->getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V
+HSPLcom/android/server/am/ProcessList;->getProcessRecordLocked(Ljava/lang/String;IZ)Lcom/android/server/am/ProcessRecord;
HPLcom/android/server/am/ProcessList;->getRunningAppProcessesLocked(ZIZII)Ljava/util/List;
-PLcom/android/server/am/ProcessList;->getUidProcStateLocked(I)I
-HPLcom/android/server/am/ProcessList;->getUidRecordLocked(I)Lcom/android/server/am/UidRecord;
-PLcom/android/server/am/ProcessList;->handleProcessStartedLocked(Lcom/android/server/am/ProcessRecord;IZJZ)Z
-PLcom/android/server/am/ProcessList;->handleProcessStartedLocked(Lcom/android/server/am/ProcessRecord;Landroid/os/Process$ProcessStartResult;J)Z
-PLcom/android/server/am/ProcessList;->haveBackgroundProcessLocked()Z
+HSPLcom/android/server/am/ProcessList;->getUidProcStateLocked(I)I
+HSPLcom/android/server/am/ProcessList;->getUidRecordLocked(I)Lcom/android/server/am/UidRecord;
+PLcom/android/server/am/ProcessList;->handleLmkdProcKilled(II)V
+HSPLcom/android/server/am/ProcessList;->handleProcessStartedLocked(Lcom/android/server/am/ProcessRecord;IZJZ)Z
+HSPLcom/android/server/am/ProcessList;->handleProcessStartedLocked(Lcom/android/server/am/ProcessRecord;Landroid/os/Process$ProcessStartResult;J)Z
+HSPLcom/android/server/am/ProcessList;->haveBackgroundProcessLocked()Z
HSPLcom/android/server/am/ProcessList;->incrementProcStateSeqAndNotifyAppsLocked(Lcom/android/server/am/ActiveUids;)V
-HSPLcom/android/server/am/ProcessList;->init(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActiveUids;)V
-PLcom/android/server/am/ProcessList;->isProcStartValidLocked(Lcom/android/server/am/ProcessRecord;J)Ljava/lang/String;
-PLcom/android/server/am/ProcessList;->killAllBackgroundProcessesExceptLocked(II)V
+HSPLcom/android/server/am/ProcessList;->init(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ActiveUids;Lcom/android/server/compat/PlatformCompat;)V
+HSPLcom/android/server/am/ProcessList;->isProcStartValidLocked(Lcom/android/server/am/ProcessRecord;J)Ljava/lang/String;
+HPLcom/android/server/am/ProcessList;->isProcessAliveLiteLocked(Lcom/android/server/am/ProcessRecord;)Z
+HSPLcom/android/server/am/ProcessList;->killAllBackgroundProcessesExceptLocked(II)V
PLcom/android/server/am/ProcessList;->killAppZygoteIfNeededLocked(Landroid/os/AppZygote;)V
-PLcom/android/server/am/ProcessList;->killPackageProcessesLocked(Ljava/lang/String;IIILjava/lang/String;)Z
HPLcom/android/server/am/ProcessList;->killPackageProcessesLocked(Ljava/lang/String;IIIZZZZZLjava/lang/String;)Z
-PLcom/android/server/am/ProcessList;->killProcessGroup(II)V
-PLcom/android/server/am/ProcessList;->lambda$startProcessLocked$0$ProcessList(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
-PLcom/android/server/am/ProcessList;->makeOomAdjString(IZ)Ljava/lang/String;
-PLcom/android/server/am/ProcessList;->makeProcStateString(I)Ljava/lang/String;
-PLcom/android/server/am/ProcessList;->newProcessRecordLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZILcom/android/server/am/HostingRecord;)Lcom/android/server/am/ProcessRecord;
-PLcom/android/server/am/ProcessList;->onLmkdConnect(Ljava/io/OutputStream;)Z
+HPLcom/android/server/am/ProcessList;->killProcAndWaitIfNecessaryLocked(Lcom/android/server/am/ProcessRecord;ZZLjava/lang/String;J)V
+HSPLcom/android/server/am/ProcessList;->killProcessGroup(II)V
+HSPLcom/android/server/am/ProcessList;->lambda$startProcessLocked$0$ProcessList(Lcom/android/server/am/ProcessRecord;Ljava/lang/String;[IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
+HSPLcom/android/server/am/ProcessList;->makeOomAdjString(IZ)Ljava/lang/String;
+PLcom/android/server/am/ProcessList;->makeProcStateProtoEnum(I)I
+HSPLcom/android/server/am/ProcessList;->makeProcStateString(I)Ljava/lang/String;
+HSPLcom/android/server/am/ProcessList;->newProcessRecordLocked(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;ZILcom/android/server/am/HostingRecord;)Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ProcessList;->onLmkdConnect(Ljava/io/OutputStream;)Z
PLcom/android/server/am/ProcessList;->procStateToImportance(IILandroid/app/ActivityManager$RunningAppProcessInfo;I)I
-PLcom/android/server/am/ProcessList;->procStatesDifferForMem(II)Z
-PLcom/android/server/am/ProcessList;->remove(I)V
-PLcom/android/server/am/ProcessList;->removeLruProcessLocked(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ProcessList;->removeProcessFromAppZygoteLocked(Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/ProcessList;->procStatesDifferForMem(II)Z
+HSPLcom/android/server/am/ProcessList;->remove(I)V
+HSPLcom/android/server/am/ProcessList;->removeLruProcessLocked(Lcom/android/server/am/ProcessRecord;)V
+HPLcom/android/server/am/ProcessList;->removeProcessFromAppZygoteLocked(Lcom/android/server/am/ProcessRecord;)V
PLcom/android/server/am/ProcessList;->removeProcessLocked(Lcom/android/server/am/ProcessRecord;ZZLjava/lang/String;)Z
-PLcom/android/server/am/ProcessList;->removeProcessNameLocked(Ljava/lang/String;I)Lcom/android/server/am/ProcessRecord;
-PLcom/android/server/am/ProcessList;->removeProcessNameLocked(Ljava/lang/String;ILcom/android/server/am/ProcessRecord;)Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ProcessList;->removeProcessNameLocked(Ljava/lang/String;I)Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ProcessList;->removeProcessNameLocked(Ljava/lang/String;ILcom/android/server/am/ProcessRecord;)Lcom/android/server/am/ProcessRecord;
HPLcom/android/server/am/ProcessList;->sendPackageBroadcastLocked(I[Ljava/lang/String;I)V
-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[IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Landroid/os/Process$ProcessStartResult;
-PLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/HostingRecord;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;I[IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Z
+HSPLcom/android/server/am/ProcessList;->setOomAdj(III)V
+HSPLcom/android/server/am/ProcessList;->startProcess(Lcom/android/server/am/HostingRecord;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;I[IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Landroid/os/Process$ProcessStartResult;
+HSPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/HostingRecord;Ljava/lang/String;Lcom/android/server/am/ProcessRecord;I[IIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Z
PLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;)V
-PLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;Ljava/lang/String;)Z
-HPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;ZZZLjava/lang/String;)Z
-PLcom/android/server/am/ProcessList;->startProcessLocked(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;ZILcom/android/server/am/HostingRecord;ZZIZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/Runnable;)Lcom/android/server/am/ProcessRecord;
-PLcom/android/server/am/ProcessList;->updateApplicationInfoLocked(Ljava/util/List;IZ)V
-HPLcom/android/server/am/ProcessList;->updateClientActivitiesOrdering(Lcom/android/server/am/ProcessRecord;III)V
-PLcom/android/server/am/ProcessList;->updateCoreSettingsLocked(Landroid/os/Bundle;)V
+HSPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;Ljava/lang/String;)Z
+HSPLcom/android/server/am/ProcessList;->startProcessLocked(Lcom/android/server/am/ProcessRecord;Lcom/android/server/am/HostingRecord;ZZZLjava/lang/String;)Z
+HSPLcom/android/server/am/ProcessList;->startProcessLocked(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;ZILcom/android/server/am/HostingRecord;ZZIZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/Runnable;)Lcom/android/server/am/ProcessRecord;
+HSPLcom/android/server/am/ProcessList;->updateApplicationInfoLocked(Ljava/util/List;IZ)V
+HSPLcom/android/server/am/ProcessList;->updateClientActivitiesOrdering(Lcom/android/server/am/ProcessRecord;III)V
+HSPLcom/android/server/am/ProcessList;->updateCoreSettingsLocked(Landroid/os/Bundle;)V
HPLcom/android/server/am/ProcessList;->updateLruProcessInternalLocked(Lcom/android/server/am/ProcessRecord;JIILjava/lang/String;Ljava/lang/Object;Lcom/android/server/am/ProcessRecord;)I
-HPLcom/android/server/am/ProcessList;->updateLruProcessLocked(Lcom/android/server/am/ProcessRecord;ZLcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ProcessList;->updateLruProcessLocked(Lcom/android/server/am/ProcessRecord;ZLcom/android/server/am/ProcessRecord;)V
HSPLcom/android/server/am/ProcessList;->updateOomLevels(IIZ)V
-HPLcom/android/server/am/ProcessList;->writeLmkd(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Z
-PLcom/android/server/am/ProcessRecord$PackageList;-><init>(Lcom/android/server/am/ProcessRecord;)V
-HPLcom/android/server/am/ProcessRecord$PackageList;->containsKey(Ljava/lang/Object;)Z
-PLcom/android/server/am/ProcessRecord$PackageList;->get(Ljava/lang/String;)Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;
-PLcom/android/server/am/ProcessRecord$PackageList;->keyAt(I)Ljava/lang/String;
-PLcom/android/server/am/ProcessRecord$PackageList;->put(Ljava/lang/String;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;
-PLcom/android/server/am/ProcessRecord$PackageList;->size()I
-PLcom/android/server/am/ProcessRecord$PackageList;->valueAt(I)Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;
-PLcom/android/server/am/ProcessRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;I)V
-PLcom/android/server/am/ProcessRecord;->access$000(Lcom/android/server/am/ProcessRecord;)Lcom/android/server/wm/WindowProcessController;
+HSPLcom/android/server/am/ProcessList;->writeLmkd(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Z
+HSPLcom/android/server/am/ProcessMemInfo;-><init>(Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/ProcessRecord$PackageList;-><init>(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ProcessRecord$PackageList;->containsKey(Ljava/lang/Object;)Z
+HSPLcom/android/server/am/ProcessRecord$PackageList;->get(Ljava/lang/String;)Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;
+HSPLcom/android/server/am/ProcessRecord$PackageList;->keyAt(I)Ljava/lang/String;
+HSPLcom/android/server/am/ProcessRecord$PackageList;->put(Ljava/lang/String;Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;)Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;
+HSPLcom/android/server/am/ProcessRecord$PackageList;->size()I
+HSPLcom/android/server/am/ProcessRecord$PackageList;->valueAt(I)Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;
+HSPLcom/android/server/am/ProcessRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;I)V
+HSPLcom/android/server/am/ProcessRecord;->access$000(Lcom/android/server/am/ProcessRecord;)Lcom/android/server/wm/WindowProcessController;
PLcom/android/server/am/ProcessRecord;->addAllowBackgroundActivityStartsToken(Landroid/os/Binder;)V
-PLcom/android/server/am/ProcessRecord;->addBoundClientUid(I)V
-HPLcom/android/server/am/ProcessRecord;->addBoundClientUidsOfNewService(Lcom/android/server/am/ServiceRecord;)V
-HPLcom/android/server/am/ProcessRecord;->addPackage(Ljava/lang/String;JLcom/android/server/am/ProcessStatsService;)Z
-PLcom/android/server/am/ProcessRecord;->appDied()V
-PLcom/android/server/am/ProcessRecord;->clearBoundClientUids()V
+HSPLcom/android/server/am/ProcessRecord;->addBoundClientUid(I)V
+HSPLcom/android/server/am/ProcessRecord;->addBoundClientUidsOfNewService(Lcom/android/server/am/ServiceRecord;)V
+HSPLcom/android/server/am/ProcessRecord;->addPackage(Ljava/lang/String;JLcom/android/server/am/ProcessStatsService;)Z
+PLcom/android/server/am/ProcessRecord;->appNotResponding(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/wm/WindowProcessController;ZLjava/lang/String;)V
+HSPLcom/android/server/am/ProcessRecord;->clearBoundClientUids()V
HPLcom/android/server/am/ProcessRecord;->computeOomAdjFromActivitiesIfNecessary(Lcom/android/server/am/OomAdjuster$ComputeOomAdjWindowCallback;IZIIIII)V
-HPLcom/android/server/am/ProcessRecord;->forceProcessStateUpTo(I)V
-HPLcom/android/server/am/ProcessRecord;->getActiveInstrumentation()Lcom/android/server/am/ActiveInstrumentation;
+PLcom/android/server/am/ProcessRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/am/ProcessRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLcom/android/server/am/ProcessRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+HSPLcom/android/server/am/ProcessRecord;->forceProcessStateUpTo(I)V
+HSPLcom/android/server/am/ProcessRecord;->getActiveInstrumentation()Lcom/android/server/am/ActiveInstrumentation;
HPLcom/android/server/am/ProcessRecord;->getCachedHasActivities()Z
HPLcom/android/server/am/ProcessRecord;->getCachedHasRecentTasks()Z
-HPLcom/android/server/am/ProcessRecord;->getCachedHasVisibleActivities()Z
+HSPLcom/android/server/am/ProcessRecord;->getCachedHasVisibleActivities()Z
HPLcom/android/server/am/ProcessRecord;->getCachedIsHeavyWeight()Z
HPLcom/android/server/am/ProcessRecord;->getCachedIsHomeProcess()Z
HPLcom/android/server/am/ProcessRecord;->getCachedIsPreviousProcess()Z
HPLcom/android/server/am/ProcessRecord;->getCachedIsReceivingBroadcast(Landroid/util/ArraySet;)Z
PLcom/android/server/am/ProcessRecord;->getCpuTime()J
-HPLcom/android/server/am/ProcessRecord;->getCurProcState()I
-HPLcom/android/server/am/ProcessRecord;->getCurRawAdj()I
+HSPLcom/android/server/am/ProcessRecord;->getCurProcState()I
+HSPLcom/android/server/am/ProcessRecord;->getCurRawAdj()I
HPLcom/android/server/am/ProcessRecord;->getCurRawProcState()I
-HPLcom/android/server/am/ProcessRecord;->getCurrentSchedulingGroup()I
-PLcom/android/server/am/ProcessRecord;->getFgInteractionTime()J
-PLcom/android/server/am/ProcessRecord;->getForegroundServiceTypes()I
-PLcom/android/server/am/ProcessRecord;->getInteractionEventTime()J
-HPLcom/android/server/am/ProcessRecord;->getPackageList()[Ljava/lang/String;
+HSPLcom/android/server/am/ProcessRecord;->getCurrentSchedulingGroup()I
+HSPLcom/android/server/am/ProcessRecord;->getFgInteractionTime()J
+HSPLcom/android/server/am/ProcessRecord;->getForegroundServiceTypes()I
+HSPLcom/android/server/am/ProcessRecord;->getInteractionEventTime()J
+PLcom/android/server/am/ProcessRecord;->getLruProcessList()Ljava/util/List;
+HSPLcom/android/server/am/ProcessRecord;->getPackageList()[Ljava/lang/String;
PLcom/android/server/am/ProcessRecord;->getPackageListWithVersionCode()Ljava/util/List;
PLcom/android/server/am/ProcessRecord;->getProcessClassEnum()I
-PLcom/android/server/am/ProcessRecord;->getReportedProcState()I
-HPLcom/android/server/am/ProcessRecord;->getWindowProcessController()Lcom/android/server/wm/WindowProcessController;
-PLcom/android/server/am/ProcessRecord;->hasActivities()Z
-HPLcom/android/server/am/ProcessRecord;->hasActivitiesOrRecentTasks()Z
-HPLcom/android/server/am/ProcessRecord;->hasClientActivities()Z
-PLcom/android/server/am/ProcessRecord;->hasForegroundActivities()Z
-HPLcom/android/server/am/ProcessRecord;->hasForegroundServices()Z
+HSPLcom/android/server/am/ProcessRecord;->getReportedProcState()I
+PLcom/android/server/am/ProcessRecord;->getSetAdjWithServices()I
+HSPLcom/android/server/am/ProcessRecord;->getWindowProcessController()Lcom/android/server/wm/WindowProcessController;
+HSPLcom/android/server/am/ProcessRecord;->hasActivities()Z
+HSPLcom/android/server/am/ProcessRecord;->hasActivitiesOrRecentTasks()Z
+HSPLcom/android/server/am/ProcessRecord;->hasClientActivities()Z
+HSPLcom/android/server/am/ProcessRecord;->hasForegroundActivities()Z
+HSPLcom/android/server/am/ProcessRecord;->hasForegroundServices()Z
HPLcom/android/server/am/ProcessRecord;->hasLocationForegroundServices()Z
HPLcom/android/server/am/ProcessRecord;->hasOverlayUi()Z
-PLcom/android/server/am/ProcessRecord;->hasPendingUiClean()Z
-HPLcom/android/server/am/ProcessRecord;->hasTopUi()Z
-HPLcom/android/server/am/ProcessRecord;->isCrashing()Z
+HSPLcom/android/server/am/ProcessRecord;->hasPendingUiClean()Z
+HSPLcom/android/server/am/ProcessRecord;->hasTopUi()Z
+HSPLcom/android/server/am/ProcessRecord;->isCrashing()Z
+PLcom/android/server/am/ProcessRecord;->isInterestingForBackgroundTraces()Z
PLcom/android/server/am/ProcessRecord;->isInterestingToUserLocked()Z
-HPLcom/android/server/am/ProcessRecord;->isPersistent()Z
-PLcom/android/server/am/ProcessRecord;->isRemoved()Z
+PLcom/android/server/am/ProcessRecord;->isNotResponding()Z
+HSPLcom/android/server/am/ProcessRecord;->isPersistent()Z
+HSPLcom/android/server/am/ProcessRecord;->isRemoved()Z
+PLcom/android/server/am/ProcessRecord;->isSilentAnr()Z
PLcom/android/server/am/ProcessRecord;->isUsingWrapper()Z
-PLcom/android/server/am/ProcessRecord;->kill(Ljava/lang/String;Z)V
-PLcom/android/server/am/ProcessRecord;->makeActive(Landroid/app/IApplicationThread;Lcom/android/server/am/ProcessStatsService;)V
-PLcom/android/server/am/ProcessRecord;->makeInactive(Lcom/android/server/am/ProcessStatsService;)V
+HPLcom/android/server/am/ProcessRecord;->kill(Ljava/lang/String;Z)V
+HSPLcom/android/server/am/ProcessRecord;->makeActive(Landroid/app/IApplicationThread;Lcom/android/server/am/ProcessStatsService;)V
+HSPLcom/android/server/am/ProcessRecord;->makeAdjReason()Ljava/lang/String;
+PLcom/android/server/am/ProcessRecord;->makeAppNotRespondingLocked(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/ProcessRecord;->makeInactive(Lcom/android/server/am/ProcessStatsService;)V
HPLcom/android/server/am/ProcessRecord;->modifyRawOomAdj(I)I
PLcom/android/server/am/ProcessRecord;->onStartActivity(IZLjava/lang/String;J)V
-PLcom/android/server/am/ProcessRecord;->removeAllowBackgroundActivityStartsToken(Landroid/os/Binder;)V
-PLcom/android/server/am/ProcessRecord;->resetCachedInfo()V
-PLcom/android/server/am/ProcessRecord;->resetPackageList(Lcom/android/server/am/ProcessStatsService;)V
-PLcom/android/server/am/ProcessRecord;->setCrashing(Z)V
-HPLcom/android/server/am/ProcessRecord;->setCurProcState(I)V
-HPLcom/android/server/am/ProcessRecord;->setCurRawAdj(I)V
-HPLcom/android/server/am/ProcessRecord;->setCurRawProcState(I)V
-HPLcom/android/server/am/ProcessRecord;->setCurrentSchedulingGroup(I)V
-PLcom/android/server/am/ProcessRecord;->setDebugging(Z)V
-PLcom/android/server/am/ProcessRecord;->setFgInteractionTime(J)V
-PLcom/android/server/am/ProcessRecord;->setHasClientActivities(Z)V
-HPLcom/android/server/am/ProcessRecord;->setHasForegroundActivities(Z)V
+HSPLcom/android/server/am/ProcessRecord;->removeAllowBackgroundActivityStartsToken(Landroid/os/Binder;)V
+HSPLcom/android/server/am/ProcessRecord;->resetCachedInfo()V
+HSPLcom/android/server/am/ProcessRecord;->resetPackageList(Lcom/android/server/am/ProcessStatsService;)V
+HSPLcom/android/server/am/ProcessRecord;->setCrashing(Z)V
+HSPLcom/android/server/am/ProcessRecord;->setCurProcState(I)V
+HSPLcom/android/server/am/ProcessRecord;->setCurRawAdj(I)V
+HSPLcom/android/server/am/ProcessRecord;->setCurRawProcState(I)V
+HSPLcom/android/server/am/ProcessRecord;->setCurrentSchedulingGroup(I)V
+HSPLcom/android/server/am/ProcessRecord;->setDebugging(Z)V
+HSPLcom/android/server/am/ProcessRecord;->setFgInteractionTime(J)V
+HSPLcom/android/server/am/ProcessRecord;->setHasClientActivities(Z)V
+HSPLcom/android/server/am/ProcessRecord;->setHasForegroundActivities(Z)V
PLcom/android/server/am/ProcessRecord;->setHasTopUi(Z)V
-PLcom/android/server/am/ProcessRecord;->setInteractionEventTime(J)V
-PLcom/android/server/am/ProcessRecord;->setNotResponding(Z)V
-PLcom/android/server/am/ProcessRecord;->setPendingUiClean(Z)V
+HSPLcom/android/server/am/ProcessRecord;->setInteractionEventTime(J)V
+HSPLcom/android/server/am/ProcessRecord;->setNotResponding(Z)V
+HPLcom/android/server/am/ProcessRecord;->setPendingUiClean(Z)V
PLcom/android/server/am/ProcessRecord;->setPendingUiCleanAndForceProcessStateUpTo(I)V
-PLcom/android/server/am/ProcessRecord;->setPersistent(Z)V
-PLcom/android/server/am/ProcessRecord;->setPid(I)V
-HPLcom/android/server/am/ProcessRecord;->setReportedProcState(I)V
-PLcom/android/server/am/ProcessRecord;->setRequiredAbi(Ljava/lang/String;)V
+HSPLcom/android/server/am/ProcessRecord;->setPersistent(Z)V
+HSPLcom/android/server/am/ProcessRecord;->setPid(I)V
+HSPLcom/android/server/am/ProcessRecord;->setReportedProcState(I)V
+HSPLcom/android/server/am/ProcessRecord;->setRequiredAbi(Ljava/lang/String;)V
PLcom/android/server/am/ProcessRecord;->setRunningRemoteAnimation(Z)V
-PLcom/android/server/am/ProcessRecord;->setStartParams(ILcom/android/server/am/HostingRecord;Ljava/lang/String;J)V
-PLcom/android/server/am/ProcessRecord;->setUsingWrapper(Z)V
-PLcom/android/server/am/ProcessRecord;->setWhenUnimportant(J)V
+HSPLcom/android/server/am/ProcessRecord;->setStartParams(ILcom/android/server/am/HostingRecord;Ljava/lang/String;J)V
+HSPLcom/android/server/am/ProcessRecord;->setUsingWrapper(Z)V
+HPLcom/android/server/am/ProcessRecord;->setWhenUnimportant(J)V
PLcom/android/server/am/ProcessRecord;->startAppProblemLocked()V
-PLcom/android/server/am/ProcessRecord;->toShortString()Ljava/lang/String;
-PLcom/android/server/am/ProcessRecord;->toShortString(Ljava/lang/StringBuilder;)V
-PLcom/android/server/am/ProcessRecord;->toString()Ljava/lang/String;
-PLcom/android/server/am/ProcessRecord;->unlinkDeathRecipient()V
-HPLcom/android/server/am/ProcessRecord;->updateBoundClientUids()V
+HSPLcom/android/server/am/ProcessRecord;->toShortString()Ljava/lang/String;
+HSPLcom/android/server/am/ProcessRecord;->toShortString(Ljava/lang/StringBuilder;)V
+HSPLcom/android/server/am/ProcessRecord;->toString()Ljava/lang/String;
+HSPLcom/android/server/am/ProcessRecord;->unlinkDeathRecipient()V
+HSPLcom/android/server/am/ProcessRecord;->updateBoundClientUids()V
PLcom/android/server/am/ProcessRecord;->updateProcessInfo(ZZZ)V
PLcom/android/server/am/ProcessRecord;->updateServiceConnectionActivities()V
HSPLcom/android/server/am/ProcessStatsService$1;-><init>(Lcom/android/server/am/ProcessStatsService;)V
HPLcom/android/server/am/ProcessStatsService$1;->run()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>(Lcom/android/server/am/ProcessStatsService;Ljava/lang/String;[Landroid/os/ParcelFileDescriptor;[B)V
+PLcom/android/server/am/ProcessStatsService$4;->run()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;->addSysMemUsageLocked(JJJJJ)V
PLcom/android/server/am/ProcessStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/am/ProcessStatsService;->dumpAggregatedStats(Landroid/util/proto/ProtoOutputStream;JIJ)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;->dumpProto(Ljava/io/FileDescriptor;)V
PLcom/android/server/am/ProcessStatsService;->getCommittedFiles(IZZ)Ljava/util/ArrayList;
HSPLcom/android/server/am/ProcessStatsService;->getMemFactorLocked()I
-PLcom/android/server/am/ProcessStatsService;->getProcessStateLocked(Ljava/lang/String;IJLjava/lang/String;)Lcom/android/internal/app/procstats/ProcessState;
-PLcom/android/server/am/ProcessStatsService;->getServiceStateLocked(Ljava/lang/String;IJLjava/lang/String;Ljava/lang/String;)Lcom/android/internal/app/procstats/ServiceState;
+HSPLcom/android/server/am/ProcessStatsService;->getProcessStateLocked(Ljava/lang/String;IJLjava/lang/String;)Lcom/android/internal/app/procstats/ProcessState;
+HSPLcom/android/server/am/ProcessStatsService;->getServiceStateLocked(Ljava/lang/String;IJLjava/lang/String;Ljava/lang/String;)Lcom/android/internal/app/procstats/ServiceState;
+PLcom/android/server/am/ProcessStatsService;->getStatsOverTime(J)Landroid/os/ParcelFileDescriptor;
HSPLcom/android/server/am/ProcessStatsService;->isMemFactorLowered()Z
PLcom/android/server/am/ProcessStatsService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
PLcom/android/server/am/ProcessStatsService;->performWriteState(J)V
@@ -4274,94 +4850,122 @@ HSPLcom/android/server/am/ProcessStatsService;->setMemFactorLocked(IZJ)Z
HSPLcom/android/server/am/ProcessStatsService;->shouldWriteNowLocked(J)Z
PLcom/android/server/am/ProcessStatsService;->trimHistoricStatesWriteLocked()V
HSPLcom/android/server/am/ProcessStatsService;->updateFile()V
-PLcom/android/server/am/ProcessStatsService;->updateProcessStateHolderLocked(Lcom/android/internal/app/procstats/ProcessStats$ProcessStateHolder;Ljava/lang/String;IJLjava/lang/String;)V
+HSPLcom/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(ZZ)V
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
HPLcom/android/server/am/ProviderMap;->collectPackageProvidersLocked(Ljava/lang/String;Ljava/util/Set;ZZLjava/util/HashMap;Ljava/util/ArrayList;)Z
-PLcom/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;
-HPLcom/android/server/am/ProviderMap;->getProvidersByName(I)Ljava/util/HashMap;
-PLcom/android/server/am/ProviderMap;->putProviderByClass(Landroid/content/ComponentName;Lcom/android/server/am/ContentProviderRecord;)V
-PLcom/android/server/am/ProviderMap;->putProviderByName(Ljava/lang/String;Lcom/android/server/am/ContentProviderRecord;)V
-PLcom/android/server/am/ProviderMap;->removeProviderByClass(Landroid/content/ComponentName;I)V
-PLcom/android/server/am/ProviderMap;->removeProviderByName(Ljava/lang/String;I)V
-PLcom/android/server/am/ReceiverList;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;IIILandroid/content/IIntentReceiver;)V
-PLcom/android/server/am/ReceiverList;->containsFilter(Landroid/content/IntentFilter;)Z
-PLcom/android/server/am/ReceiverList;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/am/ReceiverList;->hashCode()I
+PLcom/android/server/am/ProviderMap;->dumpProvider(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;IZ)Z
+PLcom/android/server/am/ProviderMap;->dumpProvider(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/am/ContentProviderRecord;[Ljava/lang/String;Z)V
+PLcom/android/server/am/ProviderMap;->dumpProviderProto(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;)Z
+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;->dumpProvidersLocked(Ljava/io/PrintWriter;ZLjava/lang/String;)Z
+PLcom/android/server/am/ProviderMap;->dumpToTransferPipe(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/am/ContentProviderRecord;[Ljava/lang/String;)V
+HSPLcom/android/server/am/ProviderMap;->getProviderByClass(Landroid/content/ComponentName;I)Lcom/android/server/am/ContentProviderRecord;
+HSPLcom/android/server/am/ProviderMap;->getProviderByName(Ljava/lang/String;I)Lcom/android/server/am/ContentProviderRecord;
+HSPLcom/android/server/am/ProviderMap;->getProvidersByClass(I)Ljava/util/HashMap;
+HSPLcom/android/server/am/ProviderMap;->getProvidersByName(I)Ljava/util/HashMap;
+PLcom/android/server/am/ProviderMap;->getProvidersForName(Ljava/lang/String;)Ljava/util/ArrayList;
+HSPLcom/android/server/am/ProviderMap;->putProviderByClass(Landroid/content/ComponentName;Lcom/android/server/am/ContentProviderRecord;)V
+HSPLcom/android/server/am/ProviderMap;->putProviderByName(Ljava/lang/String;Lcom/android/server/am/ContentProviderRecord;)V
+HPLcom/android/server/am/ProviderMap;->removeProviderByClass(Landroid/content/ComponentName;I)V
+HPLcom/android/server/am/ProviderMap;->removeProviderByName(Ljava/lang/String;I)V
+HSPLcom/android/server/am/ReceiverList;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/server/am/ProcessRecord;IIILandroid/content/IIntentReceiver;)V
+HSPLcom/android/server/am/ReceiverList;->containsFilter(Landroid/content/IntentFilter;)Z
+HPLcom/android/server/am/ReceiverList;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/am/ReceiverList;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+PLcom/android/server/am/ReceiverList;->dumpLocal(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/am/ReceiverList;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/server/am/ReceiverList;->hashCode()I
+HPLcom/android/server/am/ReceiverList;->toString()Ljava/lang/String;
PLcom/android/server/am/ServiceRecord$1;-><init>(Lcom/android/server/am/ServiceRecord;Landroid/app/Notification;Ljava/lang/String;IIILcom/android/server/am/ServiceRecord;)V
PLcom/android/server/am/ServiceRecord$1;->run()V
PLcom/android/server/am/ServiceRecord$2;-><init>(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;III)V
PLcom/android/server/am/ServiceRecord$2;->run()V
-HPLcom/android/server/am/ServiceRecord$StartItem;-><init>(Lcom/android/server/am/ServiceRecord;ZILandroid/content/Intent;Lcom/android/server/uri/NeededUriGrants;I)V
+PLcom/android/server/am/ServiceRecord$3;-><init>(Lcom/android/server/am/ServiceRecord;Ljava/lang/String;II)V
+PLcom/android/server/am/ServiceRecord$3;->run()V
+HSPLcom/android/server/am/ServiceRecord$StartItem;-><init>(Lcom/android/server/am/ServiceRecord;ZILandroid/content/Intent;Lcom/android/server/uri/NeededUriGrants;I)V
PLcom/android/server/am/ServiceRecord$StartItem;->removeUriPermissionsLocked()V
-HPLcom/android/server/am/ServiceRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;Landroid/content/ComponentName;Landroid/content/ComponentName;Ljava/lang/String;ILandroid/content/Intent$FilterComparison;Landroid/content/pm/ServiceInfo;ZLjava/lang/Runnable;)V
-HPLcom/android/server/am/ServiceRecord;->addConnection(Landroid/os/IBinder;Lcom/android/server/am/ConnectionRecord;)V
+HSPLcom/android/server/am/ServiceRecord;-><init>(Lcom/android/server/am/ActivityManagerService;Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;Landroid/content/ComponentName;Landroid/content/ComponentName;Ljava/lang/String;ILandroid/content/Intent$FilterComparison;Landroid/content/pm/ServiceInfo;ZLjava/lang/Runnable;)V
+HSPLcom/android/server/am/ServiceRecord;->addConnection(Landroid/os/IBinder;Lcom/android/server/am/ConnectionRecord;)V
PLcom/android/server/am/ServiceRecord;->cancelNotification()V
PLcom/android/server/am/ServiceRecord;->clearDeliveredStartsLocked()V
+HSPLcom/android/server/am/ServiceRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/am/ServiceRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+PLcom/android/server/am/ServiceRecord;->dumpStartList(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/List;J)V
HPLcom/android/server/am/ServiceRecord;->findDeliveredStart(IZZ)Lcom/android/server/am/ServiceRecord$StartItem;
-PLcom/android/server/am/ServiceRecord;->getComponentName()Landroid/content/ComponentName;
-HPLcom/android/server/am/ServiceRecord;->getConnections()Landroid/util/ArrayMap;
+HSPLcom/android/server/am/ServiceRecord;->getComponentName()Landroid/content/ComponentName;
+HSPLcom/android/server/am/ServiceRecord;->getConnections()Landroid/util/ArrayMap;
PLcom/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;->makeNextStartId()I
+HSPLcom/android/server/am/ServiceRecord;->getTracker()Lcom/android/internal/app/procstats/ServiceState;
+HSPLcom/android/server/am/ServiceRecord;->hasAutoCreateConnections()Z
+PLcom/android/server/am/ServiceRecord;->lambda$whitelistBgActivityStartsOnServiceStart$0$ServiceRecord()V
+HSPLcom/android/server/am/ServiceRecord;->makeNextStartId()I
PLcom/android/server/am/ServiceRecord;->makeRestarting(IJ)V
-HPLcom/android/server/am/ServiceRecord;->postNotification()V
+HSPLcom/android/server/am/ServiceRecord;->postNotification()V
PLcom/android/server/am/ServiceRecord;->removeConnection(Landroid/os/IBinder;)V
PLcom/android/server/am/ServiceRecord;->resetRestartCounter()V
-HPLcom/android/server/am/ServiceRecord;->retrieveAppBindingLocked(Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;)Lcom/android/server/am/AppBindRecord;
+HSPLcom/android/server/am/ServiceRecord;->retrieveAppBindingLocked(Landroid/content/Intent;Lcom/android/server/am/ProcessRecord;)Lcom/android/server/am/AppBindRecord;
PLcom/android/server/am/ServiceRecord;->setHasBindingWhitelistingBgActivityStarts(Z)V
-HPLcom/android/server/am/ServiceRecord;->setProcess(Lcom/android/server/am/ProcessRecord;)V
-PLcom/android/server/am/ServiceRecord;->toString()Ljava/lang/String;
+PLcom/android/server/am/ServiceRecord;->setHasStartedWhitelistingBgActivityStarts(Z)V
+HSPLcom/android/server/am/ServiceRecord;->setProcess(Lcom/android/server/am/ProcessRecord;)V
+HSPLcom/android/server/am/ServiceRecord;->toString()Ljava/lang/String;
PLcom/android/server/am/ServiceRecord;->updateHasBindingWhitelistingBgActivityStarts()V
+PLcom/android/server/am/ServiceRecord;->updateParentProcessBgActivityStartsWhitelistingToken()V
PLcom/android/server/am/ServiceRecord;->updateWhitelistManager()V
-PLcom/android/server/am/SettingsToPropertiesMapper$1;-><init>(Lcom/android/server/am/SettingsToPropertiesMapper;Landroid/os/Handler;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;)V
-PLcom/android/server/am/SettingsToPropertiesMapper;->isNativeFlagsResetPerformed()Z
-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;
-PLcom/android/server/am/SettingsToPropertiesMapper;->updatePropertiesFromSettings()V
-PLcom/android/server/am/SettingsToPropertiesMapper;->updatePropertyFromSetting(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/am/UidRecord$ChangeItem;-><init>()V
-PLcom/android/server/am/UidRecord;-><clinit>()V
-PLcom/android/server/am/UidRecord;-><init>(I)V
-HPLcom/android/server/am/UidRecord;->getCurProcState()I
-HPLcom/android/server/am/UidRecord;->reset()V
-HPLcom/android/server/am/UidRecord;->setCurProcState(I)V
-HPLcom/android/server/am/UidRecord;->toString()Ljava/lang/String;
-PLcom/android/server/am/UidRecord;->updateHasInternetPermission()V
-PLcom/android/server/am/UidRecord;->updateLastDispatchedProcStateSeq(I)V
+PLcom/android/server/am/ServiceRecord;->whitelistBgActivityStartsOnServiceStart()V
+HSPLcom/android/server/am/SettingsToPropertiesMapper$1;-><init>(Lcom/android/server/am/SettingsToPropertiesMapper;Landroid/os/Handler;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/SettingsToPropertiesMapper;-><clinit>()V
+HSPLcom/android/server/am/SettingsToPropertiesMapper;-><init>(Landroid/content/ContentResolver;[Ljava/lang/String;[Ljava/lang/String;)V
+HSPLcom/android/server/am/SettingsToPropertiesMapper;->isNativeFlagsResetPerformed()Z
+PLcom/android/server/am/SettingsToPropertiesMapper;->lambda$updatePropertiesFromSettings$0$SettingsToPropertiesMapper(Landroid/provider/DeviceConfig$Properties;)V
+HSPLcom/android/server/am/SettingsToPropertiesMapper;->makePropertyName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/am/SettingsToPropertiesMapper;->setProperty(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/SettingsToPropertiesMapper;->start(Landroid/content/ContentResolver;)Lcom/android/server/am/SettingsToPropertiesMapper;
+HSPLcom/android/server/am/SettingsToPropertiesMapper;->updatePropertiesFromSettings()V
+HSPLcom/android/server/am/SettingsToPropertiesMapper;->updatePropertyFromSetting(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/UidRecord$ChangeItem;-><init>()V
+HSPLcom/android/server/am/UidRecord;-><clinit>()V
+HSPLcom/android/server/am/UidRecord;-><init>(I)V
+HPLcom/android/server/am/UidRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/am/UidRecord;->getCurProcState()I
+HSPLcom/android/server/am/UidRecord;->reset()V
+HSPLcom/android/server/am/UidRecord;->setCurProcState(I)V
+HSPLcom/android/server/am/UidRecord;->toString()Ljava/lang/String;
+HSPLcom/android/server/am/UidRecord;->updateHasInternetPermission()V
+HSPLcom/android/server/am/UidRecord;->updateLastDispatchedProcStateSeq(I)V
PLcom/android/server/am/UserController$2;-><init>(Lcom/android/server/am/UserController;I)V
PLcom/android/server/am/UserController$2;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
PLcom/android/server/am/UserController$6;-><init>(Lcom/android/server/am/UserController;)V
PLcom/android/server/am/UserController$6;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
+PLcom/android/server/am/UserController$Injector$1;-><init>(Lcom/android/server/am/UserController$Injector;Lcom/android/server/am/ActivityManagerService;ILcom/android/internal/util/ProgressReporter;ZLjava/lang/Runnable;)V
+PLcom/android/server/am/UserController$Injector$1;->onFinished()V
HSPLcom/android/server/am/UserController$Injector;-><init>(Lcom/android/server/am/ActivityManagerService;)V
PLcom/android/server/am/UserController$Injector;->batteryStatsServiceNoteEvent(ILjava/lang/String;I)V
PLcom/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
-PLcom/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;->checkCallingPermission(Ljava/lang/String;)I
+HPLcom/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;->getStorageManager()Landroid/os/storage/IStorageManager;
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;->getUserManager()Lcom/android/server/pm/UserManagerService;
+HSPLcom/android/server/am/UserController$Injector;->getUserManager()Lcom/android/server/pm/UserManagerService;
PLcom/android/server/am/UserController$Injector;->getUserManagerInternal()Landroid/os/UserManagerInternal;
PLcom/android/server/am/UserController$Injector;->getWindowManager()Lcom/android/server/wm/WindowManagerService;
PLcom/android/server/am/UserController$Injector;->installEncryptionUnawareProviders(I)V
-PLcom/android/server/am/UserController$Injector;->isCallerRecents(I)Z
+HPLcom/android/server/am/UserController$Injector;->isCallerRecents(I)Z
PLcom/android/server/am/UserController$Injector;->isFirstBootOrUpgrade()Z
PLcom/android/server/am/UserController$Injector;->isRuntimeRestarted()Z
+PLcom/android/server/am/UserController$Injector;->lambda$startUserWidgets$0(Landroid/appwidget/AppWidgetManagerInternal;I)V
PLcom/android/server/am/UserController$Injector;->loadUserRecents(I)V
-PLcom/android/server/am/UserController$Injector;->reportCurWakefulnessUsageEvent()V
+HSPLcom/android/server/am/UserController$Injector;->reportCurWakefulnessUsageEvent()V
+PLcom/android/server/am/UserController$Injector;->sendPreBootBroadcast(IZLjava/lang/Runnable;)V
PLcom/android/server/am/UserController$Injector;->startPersistentApps(I)V
+PLcom/android/server/am/UserController$Injector;->startUserWidgets(I)V
HSPLcom/android/server/am/UserController$UserProgressListener;-><init>()V
HSPLcom/android/server/am/UserController$UserProgressListener;-><init>(Lcom/android/server/am/UserController$1;)V
PLcom/android/server/am/UserController$UserProgressListener;->onFinished(ILandroid/os/Bundle;)V
@@ -4369,38 +4973,40 @@ PLcom/android/server/am/UserController$UserProgressListener;->onProgress(IILandr
PLcom/android/server/am/UserController$UserProgressListener;->onStarted(ILandroid/os/Bundle;)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;->checkCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/am/UserController;->checkCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/am/UserController;->dispatchForegroundProfileChanged(I)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;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/am/UserController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/am/UserController;->ensureNotSpecialUser(I)V
+HSPLcom/android/server/am/UserController;->exists(I)Z
PLcom/android/server/am/UserController;->finishUserBoot(Lcom/android/server/am/UserState;)V
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;->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
-HPLcom/android/server/am/UserController;->getCurrentUser()Landroid/content/pm/UserInfo;
-PLcom/android/server/am/UserController;->getCurrentUserId()I
-PLcom/android/server/am/UserController;->getStartedUserArray()[I
-HPLcom/android/server/am/UserController;->getStartedUserState(I)Lcom/android/server/am/UserState;
-PLcom/android/server/am/UserController;->getUserInfo(I)Landroid/content/pm/UserInfo;
-PLcom/android/server/am/UserController;->getUsers()[I
-HPLcom/android/server/am/UserController;->handleIncomingUser(IIIZILjava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/server/am/UserController;->getCurrentProfileIds()[I
+HSPLcom/android/server/am/UserController;->getCurrentUser()Landroid/content/pm/UserInfo;
+HSPLcom/android/server/am/UserController;->getCurrentUserId()I
+HSPLcom/android/server/am/UserController;->getStartedUserArray()[I
+HSPLcom/android/server/am/UserController;->getStartedUserState(I)Lcom/android/server/am/UserState;
+HSPLcom/android/server/am/UserController;->getUserInfo(I)Landroid/content/pm/UserInfo;
+HSPLcom/android/server/am/UserController;->getUsers()[I
+HSPLcom/android/server/am/UserController;->handleIncomingUser(IIIZILjava/lang/String;Ljava/lang/String;)I
PLcom/android/server/am/UserController;->handleMessage(Landroid/os/Message;)Z
-HPLcom/android/server/am/UserController;->hasStartedUserState(I)Z
+HSPLcom/android/server/am/UserController;->hasStartedUserState(I)Z
HPLcom/android/server/am/UserController;->isCurrentProfile(I)Z
-PLcom/android/server/am/UserController;->isSameProfileGroup(II)Z
-HPLcom/android/server/am/UserController;->isUserOrItsParentRunning(I)Z
-HPLcom/android/server/am/UserController;->isUserRunning(II)Z
+HSPLcom/android/server/am/UserController;->isSameProfileGroup(II)Z
+HSPLcom/android/server/am/UserController;->isUserOrItsParentRunning(I)Z
+HSPLcom/android/server/am/UserController;->isUserRunning(II)Z
PLcom/android/server/am/UserController;->lambda$finishUserUnlockedCompleted$3$UserController(Landroid/content/Intent;III)V
PLcom/android/server/am/UserController;->lambda$finishUserUnlocking$1$UserController(ILcom/android/server/am/UserState;)V
PLcom/android/server/am/UserController;->lambda$handleMessage$9$UserController(I)V
PLcom/android/server/am/UserController;->lambda$scheduleStartProfiles$7$UserController()V
PLcom/android/server/am/UserController;->maybeUnlockUser(I)Z
PLcom/android/server/am/UserController;->notifyFinished(ILandroid/os/IProgressListener;)V
-PLcom/android/server/am/UserController;->onSystemReady()V
-PLcom/android/server/am/UserController;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V
+HSPLcom/android/server/am/UserController;->onSystemReady()V
+HSPLcom/android/server/am/UserController;->registerUserSwitchObserver(Landroid/app/IUserSwitchObserver;Ljava/lang/String;)V
PLcom/android/server/am/UserController;->scheduleStartProfiles()V
PLcom/android/server/am/UserController;->sendBootCompleted(Landroid/content/IIntentReceiver;)V
PLcom/android/server/am/UserController;->sendUserSwitchBroadcasts(II)V
@@ -4411,77 +5017,87 @@ PLcom/android/server/am/UserController;->startUser(IZLandroid/os/IProgressListen
PLcom/android/server/am/UserController;->startUserInternal(IZLandroid/os/IProgressListener;Lcom/android/server/utils/TimingsTraceAndSlog;)Z
PLcom/android/server/am/UserController;->unlockUser(I[B[BLandroid/os/IProgressListener;)Z
PLcom/android/server/am/UserController;->unlockUserCleared(I[B[BLandroid/os/IProgressListener;)Z
-PLcom/android/server/am/UserController;->unsafeConvertIncomingUser(I)I
-PLcom/android/server/am/UserController;->updateCurrentProfileIds()V
+HSPLcom/android/server/am/UserController;->unsafeConvertIncomingUser(I)I
+HSPLcom/android/server/am/UserController;->updateCurrentProfileIds()V
HSPLcom/android/server/am/UserController;->updateStartedUserArrayLU()V
HSPLcom/android/server/am/UserState;-><init>(Landroid/os/UserHandle;)V
+PLcom/android/server/am/UserState;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/am/UserState;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
PLcom/android/server/am/UserState;->setState(I)V
PLcom/android/server/am/UserState;->setState(II)Z
+PLcom/android/server/am/UserState;->stateToProtoEnum(I)I
PLcom/android/server/am/UserState;->stateToString(I)Ljava/lang/String;
-PLcom/android/server/appbinding/-$$Lambda$AppBindingService$D_3boeCn8eAANOp2ZDk6OC2rNaI;-><init>(Lcom/android/server/appbinding/AppBindingService;)V
-PLcom/android/server/appbinding/-$$Lambda$xkEFYM78dwFMyAjWJXkB7AxgA2c;-><clinit>()V
-PLcom/android/server/appbinding/-$$Lambda$xkEFYM78dwFMyAjWJXkB7AxgA2c;-><init>()V
-PLcom/android/server/appbinding/-$$Lambda$xkEFYM78dwFMyAjWJXkB7AxgA2c;->accept(Ljava/lang/Object;)V
-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/AppBindingService$1;-><init>(Lcom/android/server/appbinding/AppBindingService;Landroid/os/Handler;)V
-PLcom/android/server/appbinding/AppBindingService$2;-><init>(Lcom/android/server/appbinding/AppBindingService;)V
+PLcom/android/server/appbinding/-$$Lambda$AppBindingService$C9KbqX5cmsR3luJhFKt2Gpj0uLc;-><init>(Ljava/io/PrintWriter;)V
+PLcom/android/server/appbinding/-$$Lambda$AppBindingService$C9KbqX5cmsR3luJhFKt2Gpj0uLc;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/appbinding/-$$Lambda$AppBindingService$D_3boeCn8eAANOp2ZDk6OC2rNaI;-><init>(Lcom/android/server/appbinding/AppBindingService;)V
+PLcom/android/server/appbinding/-$$Lambda$AppBindingService$D_3boeCn8eAANOp2ZDk6OC2rNaI;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/appbinding/-$$Lambda$xkEFYM78dwFMyAjWJXkB7AxgA2c;-><clinit>()V
+HSPLcom/android/server/appbinding/-$$Lambda$xkEFYM78dwFMyAjWJXkB7AxgA2c;-><init>()V
+HSPLcom/android/server/appbinding/-$$Lambda$xkEFYM78dwFMyAjWJXkB7AxgA2c;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/appbinding/AppBindingConstants;-><init>(Ljava/lang/String;)V
+PLcom/android/server/appbinding/AppBindingConstants;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HSPLcom/android/server/appbinding/AppBindingConstants;->initializeFromString(Ljava/lang/String;)Lcom/android/server/appbinding/AppBindingConstants;
+HSPLcom/android/server/appbinding/AppBindingService$1;-><init>(Lcom/android/server/appbinding/AppBindingService;Landroid/os/Handler;)V
+HSPLcom/android/server/appbinding/AppBindingService$2;-><init>(Lcom/android/server/appbinding/AppBindingService;)V
PLcom/android/server/appbinding/AppBindingService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/appbinding/AppBindingService$AppServiceConnection;-><init>(Landroid/content/Context;ILcom/android/server/appbinding/AppBindingConstants;Landroid/os/Handler;Lcom/android/server/appbinding/finders/AppServiceFinder;Landroid/content/ComponentName;)V
-PLcom/android/server/appbinding/AppBindingService$AppServiceConnection;->asInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
-PLcom/android/server/appbinding/AppBindingService$AppServiceConnection;->asInterface(Landroid/os/IBinder;)Ljava/lang/Object;
-PLcom/android/server/appbinding/AppBindingService$AppServiceConnection;->getBindFlags()I
-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$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
+HSPLcom/android/server/appbinding/AppBindingService$Injector;-><init>()V
+HSPLcom/android/server/appbinding/AppBindingService$Injector;->getGlobalSettingString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/appbinding/AppBindingService$Injector;->getIPackageManager()Landroid/content/pm/IPackageManager;
+HSPLcom/android/server/appbinding/AppBindingService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/appbinding/AppBindingService$Lifecycle;-><init>(Landroid/content/Context;Lcom/android/server/appbinding/AppBindingService$Injector;)V
+HSPLcom/android/server/appbinding/AppBindingService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/appbinding/AppBindingService$Lifecycle;->onStart()V
PLcom/android/server/appbinding/AppBindingService$Lifecycle;->onStartUser(I)V
PLcom/android/server/appbinding/AppBindingService$Lifecycle;->onUnlockUser(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$1;)V
-PLcom/android/server/appbinding/AppBindingService;->access$100(Lcom/android/server/appbinding/AppBindingService;I)V
+HSPLcom/android/server/appbinding/AppBindingService;-><init>(Lcom/android/server/appbinding/AppBindingService$Injector;Landroid/content/Context;)V
+HSPLcom/android/server/appbinding/AppBindingService;-><init>(Lcom/android/server/appbinding/AppBindingService$Injector;Landroid/content/Context;Lcom/android/server/appbinding/AppBindingService$1;)V
+HSPLcom/android/server/appbinding/AppBindingService;->access$100(Lcom/android/server/appbinding/AppBindingService;I)V
PLcom/android/server/appbinding/AppBindingService;->access$200(Lcom/android/server/appbinding/AppBindingService;I)V
+PLcom/android/server/appbinding/AppBindingService;->access$300(Lcom/android/server/appbinding/AppBindingService;I)V
PLcom/android/server/appbinding/AppBindingService;->bindServicesLocked(ILcom/android/server/appbinding/finders/AppServiceFinder;Ljava/lang/String;)V
+PLcom/android/server/appbinding/AppBindingService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[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;->findFinderLocked(ILjava/lang/String;)Lcom/android/server/appbinding/finders/AppServiceFinder;
-PLcom/android/server/appbinding/AppBindingService;->forAllAppsLocked(Ljava/util/function/Consumer;)V
+HSPLcom/android/server/appbinding/AppBindingService;->forAllAppsLocked(Ljava/util/function/Consumer;)V
PLcom/android/server/appbinding/AppBindingService;->handlePackageAddedReplacing(Ljava/lang/String;I)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;->lambda$D_3boeCn8eAANOp2ZDk6OC2rNaI(Lcom/android/server/appbinding/AppBindingService;Lcom/android/server/appbinding/finders/AppServiceFinder;I)V
+PLcom/android/server/appbinding/AppBindingService;->lambda$dump$1(Ljava/io/PrintWriter;Lcom/android/server/appbinding/finders/AppServiceFinder;)V
+PLcom/android/server/appbinding/AppBindingService;->onAppChanged(Lcom/android/server/appbinding/finders/AppServiceFinder;I)V
+HSPLcom/android/server/appbinding/AppBindingService;->onBootPhase(I)V
+HSPLcom/android/server/appbinding/AppBindingService;->onPhaseActivityManagerReady()V
+HSPLcom/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
+HSPLcom/android/server/appbinding/AppBindingService;->rebindAllLocked(Ljava/lang/String;)V
+HSPLcom/android/server/appbinding/AppBindingService;->refreshConstants()V
PLcom/android/server/appbinding/AppBindingService;->unbindServicesLocked(ILcom/android/server/appbinding/finders/AppServiceFinder;Ljava/lang/String;)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/-$$Lambda$CarrierMessagingClientServiceFinder$HEVyQ3IEZ8Eseze74Vyp3NHEREg;-><init>(Lcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;)V
-PLcom/android/server/appbinding/finders/AppServiceFinder;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;Landroid/os/Handler;)V
+HSPLcom/android/server/appbinding/finders/-$$Lambda$CarrierMessagingClientServiceFinder$HEVyQ3IEZ8Eseze74Vyp3NHEREg;-><init>(Lcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;)V
+PLcom/android/server/appbinding/finders/-$$Lambda$CarrierMessagingClientServiceFinder$HEVyQ3IEZ8Eseze74Vyp3NHEREg;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
+HSPLcom/android/server/appbinding/finders/AppServiceFinder;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;Landroid/os/Handler;)V
+PLcom/android/server/appbinding/finders/AppServiceFinder;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)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;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;Landroid/os/Handler;)V
-PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;->asInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
-PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;->asInterface(Landroid/os/IBinder;)Landroid/service/carrier/ICarrierMessagingClientService;
+HSPLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;-><init>(Landroid/content/Context;Ljava/util/function/BiConsumer;Landroid/os/Handler;)V
PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;->getAppDescription()Ljava/lang/String;
-PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;->getBindFlags(Lcom/android/server/appbinding/AppBindingConstants;)I
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/appbinding/finders/CarrierMessagingClientServiceFinder;->validateService(Landroid/content/pm/ServiceInfo;)Ljava/lang/String;
+PLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;->lambda$new$0$CarrierMessagingClientServiceFinder(Ljava/lang/String;Landroid/os/UserHandle;)V
+HSPLcom/android/server/appbinding/finders/CarrierMessagingClientServiceFinder;->startMonitoring()V
PLcom/android/server/appop/-$$Lambda$AppOpsService$AfBLuTvVESlqN91IyRX84hMV5nE;-><clinit>()V
PLcom/android/server/appop/-$$Lambda$AppOpsService$AfBLuTvVESlqN91IyRX84hMV5nE;-><init>()V
-PLcom/android/server/appop/-$$Lambda$AppOpsService$AfBLuTvVESlqN91IyRX84hMV5nE;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/appop/-$$Lambda$AppOpsService$AfBLuTvVESlqN91IyRX84hMV5nE;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/appop/-$$Lambda$AppOpsService$FYLTtxqrHmv8Y5UdZ9ybXKsSJhs;-><clinit>()V
PLcom/android/server/appop/-$$Lambda$AppOpsService$FYLTtxqrHmv8Y5UdZ9ybXKsSJhs;-><init>()V
HPLcom/android/server/appop/-$$Lambda$AppOpsService$FYLTtxqrHmv8Y5UdZ9ybXKsSJhs;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/appop/-$$Lambda$AppOpsService$GUeKjlbzT65s86vaxy5gvOajuhw;-><clinit>()V
-PLcom/android/server/appop/-$$Lambda$AppOpsService$GUeKjlbzT65s86vaxy5gvOajuhw;-><init>()V
-PLcom/android/server/appop/-$$Lambda$AppOpsService$GUeKjlbzT65s86vaxy5gvOajuhw;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/appop/-$$Lambda$AppOpsService$GUeKjlbzT65s86vaxy5gvOajuhw;-><clinit>()V
+HSPLcom/android/server/appop/-$$Lambda$AppOpsService$GUeKjlbzT65s86vaxy5gvOajuhw;-><init>()V
+HSPLcom/android/server/appop/-$$Lambda$AppOpsService$GUeKjlbzT65s86vaxy5gvOajuhw;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/appop/-$$Lambda$AppOpsService$ac4Ra3Yhj0OQzvkaL2dLbsuLAmQ;-><clinit>()V
+PLcom/android/server/appop/-$$Lambda$AppOpsService$ac4Ra3Yhj0OQzvkaL2dLbsuLAmQ;-><init>()V
+PLcom/android/server/appop/-$$Lambda$AppOpsService$ac4Ra3Yhj0OQzvkaL2dLbsuLAmQ;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/appop/-$$Lambda$HistoricalRegistry$dJrtb4M71TzV6sx9vPEImQG_akU;-><clinit>()V
PLcom/android/server/appop/-$$Lambda$HistoricalRegistry$dJrtb4M71TzV6sx9vPEImQG_akU;-><init>()V
PLcom/android/server/appop/-$$Lambda$HistoricalRegistry$dJrtb4M71TzV6sx9vPEImQG_akU;->accept(Ljava/lang/Object;)V
@@ -4490,97 +5106,110 @@ PLcom/android/server/appop/AppOpsService$1$1;->doInBackground([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
PLcom/android/server/appop/AppOpsService$1;->run()V
-PLcom/android/server/appop/AppOpsService$2;-><init>(Lcom/android/server/appop/AppOpsService;)V
-PLcom/android/server/appop/AppOpsService$3;-><init>(Lcom/android/server/appop/AppOpsService;)V
+HSPLcom/android/server/appop/AppOpsService$2;-><init>(Lcom/android/server/appop/AppOpsService;)V
+HPLcom/android/server/appop/AppOpsService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/appop/AppOpsService$3;-><init>(Lcom/android/server/appop/AppOpsService;)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;->binderDied()V
+PLcom/android/server/appop/AppOpsService$ActiveCallback;->toString()Ljava/lang/String;
HSPLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;-><init>(Lcom/android/server/appop/AppOpsService;)V
HSPLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;-><init>(Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService$1;)V
-PLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;->setDeviceAndProfileOwners(Landroid/util/SparseIntArray;)V
+HSPLcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;->setDeviceAndProfileOwners(Landroid/util/SparseIntArray;)V
PLcom/android/server/appop/AppOpsService$ClientRestrictionState;-><init>(Lcom/android/server/appop/AppOpsService;Landroid/os/IBinder;)V
PLcom/android/server/appop/AppOpsService$ClientRestrictionState;->destroy()V
HPLcom/android/server/appop/AppOpsService$ClientRestrictionState;->hasRestriction(ILjava/lang/String;I)Z
PLcom/android/server/appop/AppOpsService$ClientRestrictionState;->isDefault()Z
PLcom/android/server/appop/AppOpsService$ClientRestrictionState;->setRestriction(IZ[Ljava/lang/String;I)Z
-PLcom/android/server/appop/AppOpsService$ClientState;-><init>(Lcom/android/server/appop/AppOpsService;Landroid/os/IBinder;)V
+HSPLcom/android/server/appop/AppOpsService$ClientState;-><init>(Lcom/android/server/appop/AppOpsService;Landroid/os/IBinder;)V
PLcom/android/server/appop/AppOpsService$ClientState;->binderDied()V
+PLcom/android/server/appop/AppOpsService$ClientState;->toString()Ljava/lang/String;
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;->startMonitoring(Landroid/content/ContentResolver;)V
HSPLcom/android/server/appop/AppOpsService$Constants;->updateConstants()V
HSPLcom/android/server/appop/AppOpsService$FeatureOp;-><init>(Lcom/android/server/appop/AppOpsService$Op;)V
HSPLcom/android/server/appop/AppOpsService$FeatureOp;->accessed(JILjava/lang/String;Ljava/lang/String;II)V
PLcom/android/server/appop/AppOpsService$FeatureOp;->continuing(JII)V
PLcom/android/server/appop/AppOpsService$FeatureOp;->createFeatureEntryBuilderLocked()Landroid/app/AppOpsManager$OpFeatureEntry$Builder;
-HPLcom/android/server/appop/AppOpsService$FeatureOp;->finished(JJII)V
+HSPLcom/android/server/appop/AppOpsService$FeatureOp;->finished(JJII)V
HSPLcom/android/server/appop/AppOpsService$FeatureOp;->rejected(JILjava/lang/String;Ljava/lang/String;II)V
HSPLcom/android/server/appop/AppOpsService$FeatureOp;->running(JJII)V
-HPLcom/android/server/appop/AppOpsService$FeatureOp;->started(JII)V
+HSPLcom/android/server/appop/AppOpsService$FeatureOp;->started(JII)V
HSPLcom/android/server/appop/AppOpsService$FeatureOp;->updateAccessTimeAndDuration(JJII)V
HSPLcom/android/server/appop/AppOpsService$FeatureOp;->updateProxyState(JILjava/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
+HSPLcom/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;->isWatchingUid(I)Z
-PLcom/android/server/appop/AppOpsService$ModeCallback;->unlinkToDeath()V
+HSPLcom/android/server/appop/AppOpsService$ModeCallback;->isWatchingUid(I)Z
+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
+PLcom/android/server/appop/AppOpsService$NotedCallback;->toString()Ljava/lang/String;
HSPLcom/android/server/appop/AppOpsService$Op;-><init>(Lcom/android/server/appop/AppOpsService$UidState;Ljava/lang/String;I)V
HSPLcom/android/server/appop/AppOpsService$Op;->access$100(Lcom/android/server/appop/AppOpsService$Op;)I
HSPLcom/android/server/appop/AppOpsService$Op;->access$102(Lcom/android/server/appop/AppOpsService$Op;I)I
HSPLcom/android/server/appop/AppOpsService$Op;->access$500(Lcom/android/server/appop/AppOpsService$Op;Lcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;)Lcom/android/server/appop/AppOpsService$FeatureOp;
HPLcom/android/server/appop/AppOpsService$Op;->createEntryLocked()Landroid/app/AppOpsManager$OpEntry;
HPLcom/android/server/appop/AppOpsService$Op;->createSingleFeatureEntryLocked(Ljava/lang/String;)Landroid/app/AppOpsManager$OpEntry;
-HPLcom/android/server/appop/AppOpsService$Op;->evalMode()I
+HSPLcom/android/server/appop/AppOpsService$Op;->evalMode()I
HSPLcom/android/server/appop/AppOpsService$Op;->getOrCreateFeature(Lcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;)Lcom/android/server/appop/AppOpsService$FeatureOp;
HSPLcom/android/server/appop/AppOpsService$Ops;-><init>(Ljava/lang/String;Lcom/android/server/appop/AppOpsService$UidState;Z)V
HSPLcom/android/server/appop/AppOpsService$UidState;-><init>(I)V
-PLcom/android/server/appop/AppOpsService$UidState;->clear()V
+HSPLcom/android/server/appop/AppOpsService$UidState;->clear()V
HSPLcom/android/server/appop/AppOpsService$UidState;->evalForegroundOps(Landroid/util/SparseArray;)V
HSPLcom/android/server/appop/AppOpsService$UidState;->evalForegroundWatchers(ILandroid/util/SparseArray;Landroid/util/SparseBooleanArray;)V
-HPLcom/android/server/appop/AppOpsService$UidState;->evalMode(II)I
-PLcom/android/server/appop/AppOpsService$UidState;->isDefault()Z
+HSPLcom/android/server/appop/AppOpsService$UidState;->evalMode(II)I
+HSPLcom/android/server/appop/AppOpsService$UidState;->isDefault()Z
HSPLcom/android/server/appop/AppOpsService;-><clinit>()V
HSPLcom/android/server/appop/AppOpsService;-><init>(Ljava/io/File;Landroid/os/Handler;)V
-PLcom/android/server/appop/AppOpsService;->checkAudioOperation(IIILjava/lang/String;)I
+PLcom/android/server/appop/AppOpsService;->access$300()[I
+HPLcom/android/server/appop/AppOpsService;->access$400(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;)V
+HPLcom/android/server/appop/AppOpsService;->checkAudioOperation(IIILjava/lang/String;)I
PLcom/android/server/appop/AppOpsService;->checkAudioOperationImpl(IIILjava/lang/String;)I
-HPLcom/android/server/appop/AppOpsService;->checkOperation(IILjava/lang/String;)I
+HSPLcom/android/server/appop/AppOpsService;->checkOperation(IILjava/lang/String;)I
HPLcom/android/server/appop/AppOpsService;->checkOperationImpl(IILjava/lang/String;Z)I
-HPLcom/android/server/appop/AppOpsService;->checkOperationInternal(IILjava/lang/String;Z)I
-HPLcom/android/server/appop/AppOpsService;->checkOperationRaw(IILjava/lang/String;)I
-HPLcom/android/server/appop/AppOpsService;->checkOperationUnchecked(IILjava/lang/String;Z)I
-HPLcom/android/server/appop/AppOpsService;->checkPackage(ILjava/lang/String;)I
+HSPLcom/android/server/appop/AppOpsService;->checkOperationInternal(IILjava/lang/String;Z)I
+HSPLcom/android/server/appop/AppOpsService;->checkOperationRaw(IILjava/lang/String;)I
+HSPLcom/android/server/appop/AppOpsService;->checkOperationUnchecked(IILjava/lang/String;Z)I
+HSPLcom/android/server/appop/AppOpsService;->checkPackage(ILjava/lang/String;)I
PLcom/android/server/appop/AppOpsService;->checkSystemUid(Ljava/lang/String;)V
-HPLcom/android/server/appop/AppOpsService;->collectOps(Lcom/android/server/appop/AppOpsService$Ops;[I)Ljava/util/ArrayList;
-HPLcom/android/server/appop/AppOpsService;->commitUidPendingStateLocked(Lcom/android/server/appop/AppOpsService$UidState;)V
-PLcom/android/server/appop/AppOpsService;->enforceManageAppOpsModes(III)V
-HPLcom/android/server/appop/AppOpsService;->evalAllForegroundOpsLocked()V
-HPLcom/android/server/appop/AppOpsService;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/appop/AppOpsService;->finishOperationLocked(Lcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;Z)V
+HSPLcom/android/server/appop/AppOpsService;->collectOps(Lcom/android/server/appop/AppOpsService$Ops;[I)Ljava/util/ArrayList;
+HSPLcom/android/server/appop/AppOpsService;->commitUidPendingStateLocked(Lcom/android/server/appop/AppOpsService$UidState;)V
+PLcom/android/server/appop/AppOpsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/appop/AppOpsService;->dumpStatesLocked(Ljava/io/PrintWriter;JLcom/android/server/appop/AppOpsService$Op;JLjava/text/SimpleDateFormat;Ljava/util/Date;Ljava/lang/String;)V
+HPLcom/android/server/appop/AppOpsService;->dumpStatesLocked(Ljava/io/PrintWriter;JLcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;JLjava/text/SimpleDateFormat;Ljava/util/Date;Ljava/lang/String;)V
+HSPLcom/android/server/appop/AppOpsService;->enforceManageAppOpsModes(III)V
+HSPLcom/android/server/appop/AppOpsService;->evalAllForegroundOpsLocked()V
+HSPLcom/android/server/appop/AppOpsService;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/appop/AppOpsService;->finishOperationLocked(Lcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;Z)V
PLcom/android/server/appop/AppOpsService;->getAsyncNotedOpsKey(Ljava/lang/String;I)Landroid/util/Pair;
-PLcom/android/server/appop/AppOpsService;->getOpEntryForResult(Lcom/android/server/appop/AppOpsService$Op;J)Landroid/app/AppOpsManager$OpEntry;
-PLcom/android/server/appop/AppOpsService;->getOpLocked(IILjava/lang/String;ZZ)Lcom/android/server/appop/AppOpsService$Op;
-HPLcom/android/server/appop/AppOpsService;->getOpLocked(Lcom/android/server/appop/AppOpsService$Ops;IZ)Lcom/android/server/appop/AppOpsService$Op;
+PLcom/android/server/appop/AppOpsService;->getHistoricalOps(ILjava/lang/String;Ljava/util/List;JJILandroid/os/RemoteCallback;)V
+HPLcom/android/server/appop/AppOpsService;->getOpEntryForResult(Lcom/android/server/appop/AppOpsService$Op;J)Landroid/app/AppOpsManager$OpEntry;
+HSPLcom/android/server/appop/AppOpsService;->getOpLocked(IILjava/lang/String;ZZ)Lcom/android/server/appop/AppOpsService$Op;
+HSPLcom/android/server/appop/AppOpsService;->getOpLocked(Lcom/android/server/appop/AppOpsService$Ops;IZ)Lcom/android/server/appop/AppOpsService$Op;
PLcom/android/server/appop/AppOpsService;->getOpsForPackage(ILjava/lang/String;[I)Ljava/util/List;
-HPLcom/android/server/appop/AppOpsService;->getOpsRawLocked(ILjava/lang/String;ZZ)Lcom/android/server/appop/AppOpsService$Ops;
-HPLcom/android/server/appop/AppOpsService;->getOpsRawNoVerifyLocked(ILjava/lang/String;ZZ)Lcom/android/server/appop/AppOpsService$Ops;
-HPLcom/android/server/appop/AppOpsService;->getPackagesForOps([I)Ljava/util/List;
-PLcom/android/server/appop/AppOpsService;->getPackagesForUid(I)[Ljava/lang/String;
-PLcom/android/server/appop/AppOpsService;->getToken(Landroid/os/IBinder;)Landroid/os/IBinder;
+HSPLcom/android/server/appop/AppOpsService;->getOpsRawLocked(ILjava/lang/String;ZZ)Lcom/android/server/appop/AppOpsService$Ops;
+HSPLcom/android/server/appop/AppOpsService;->getOpsRawNoVerifyLocked(ILjava/lang/String;ZZ)Lcom/android/server/appop/AppOpsService$Ops;
+HSPLcom/android/server/appop/AppOpsService;->getPackagesForOps([I)Ljava/util/List;
+HSPLcom/android/server/appop/AppOpsService;->getPackagesForUid(I)[Ljava/lang/String;
+HSPLcom/android/server/appop/AppOpsService;->getToken(Landroid/os/IBinder;)Landroid/os/IBinder;
HSPLcom/android/server/appop/AppOpsService;->getUidStateLocked(IZ)Lcom/android/server/appop/AppOpsService$UidState;
HPLcom/android/server/appop/AppOpsService;->isOpRestrictedDueToSuspend(ILjava/lang/String;I)Z
-HPLcom/android/server/appop/AppOpsService;->isOpRestrictedLocked(IILjava/lang/String;Z)Z
+HSPLcom/android/server/appop/AppOpsService;->isOpRestrictedLocked(IILjava/lang/String;Z)Z
HPLcom/android/server/appop/AppOpsService;->isOperationActive(IILjava/lang/String;)Z
+PLcom/android/server/appop/AppOpsService;->lambda$AfBLuTvVESlqN91IyRX84hMV5nE(Lcom/android/server/appop/AppOpsService;Landroid/util/ArraySet;IILjava/lang/String;I)V
PLcom/android/server/appop/AppOpsService;->lambda$FYLTtxqrHmv8Y5UdZ9ybXKsSJhs(Lcom/android/server/appop/AppOpsService;Lcom/android/server/appop/AppOpsService$ModeCallback;IILjava/lang/String;)V
-PLcom/android/server/appop/AppOpsService;->lambda$GUeKjlbzT65s86vaxy5gvOajuhw(Lcom/android/server/appop/AppOpsService;II)V
+HSPLcom/android/server/appop/AppOpsService;->lambda$GUeKjlbzT65s86vaxy5gvOajuhw(Lcom/android/server/appop/AppOpsService;II)V
HPLcom/android/server/appop/AppOpsService;->noteAsyncOp(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/appop/AppOpsService;->noteOperation(IILjava/lang/String;Ljava/lang/String;)I
-PLcom/android/server/appop/AppOpsService;->noteOperationImpl(IILjava/lang/String;Ljava/lang/String;)I
-HPLcom/android/server/appop/AppOpsService;->noteOperationUnchecked(IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)I
+HSPLcom/android/server/appop/AppOpsService;->noteOperation(IILjava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/server/appop/AppOpsService;->noteOperationImpl(IILjava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/server/appop/AppOpsService;->noteOperationUnchecked(IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)I
HPLcom/android/server/appop/AppOpsService;->noteProxyOperation(IILjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)I
-PLcom/android/server/appop/AppOpsService;->notifyOpChanged(Landroid/util/ArraySet;IILjava/lang/String;)V
+PLcom/android/server/appop/AppOpsService;->notifyOpActiveChanged(Landroid/util/ArraySet;IILjava/lang/String;Z)V
+HPLcom/android/server/appop/AppOpsService;->notifyOpChanged(Landroid/util/ArraySet;IILjava/lang/String;)V
HPLcom/android/server/appop/AppOpsService;->notifyOpChanged(Lcom/android/server/appop/AppOpsService$ModeCallback;IILjava/lang/String;)V
-PLcom/android/server/appop/AppOpsService;->notifyOpChangedSync(IILjava/lang/String;I)V
-PLcom/android/server/appop/AppOpsService;->notifyOpChecked(Landroid/util/ArraySet;IILjava/lang/String;I)V
-PLcom/android/server/appop/AppOpsService;->notifyWatchersOfChange(II)V
-PLcom/android/server/appop/AppOpsService;->permissionToOpCode(Ljava/lang/String;)I
+HPLcom/android/server/appop/AppOpsService;->notifyOpChangedSync(IILjava/lang/String;I)V
+HPLcom/android/server/appop/AppOpsService;->notifyOpChecked(Landroid/util/ArraySet;IILjava/lang/String;I)V
+HSPLcom/android/server/appop/AppOpsService;->notifyWatchersOfChange(II)V
+HSPLcom/android/server/appop/AppOpsService;->permissionToOpCode(Ljava/lang/String;)I
HSPLcom/android/server/appop/AppOpsService;->publish(Landroid/content/Context;)V
HSPLcom/android/server/appop/AppOpsService;->readFeatureOp(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/appop/AppOpsService$Op;Ljava/lang/String;)V
HSPLcom/android/server/appop/AppOpsService;->readOp(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/appop/AppOpsService$UidState;Ljava/lang/String;Z)V
@@ -4588,57 +5217,60 @@ HSPLcom/android/server/appop/AppOpsService;->readPackage(Lorg/xmlpull/v1/XmlPull
HSPLcom/android/server/appop/AppOpsService;->readState()V
HSPLcom/android/server/appop/AppOpsService;->readUid(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)V
HSPLcom/android/server/appop/AppOpsService;->readUidOps(Lorg/xmlpull/v1/XmlPullParser;)V
-HPLcom/android/server/appop/AppOpsService;->resolvePackageName(ILjava/lang/String;)Ljava/lang/String;
-PLcom/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;Z)V
-HPLcom/android/server/appop/AppOpsService;->scheduleOpNotedIfNeededLocked(IILjava/lang/String;I)V
+HSPLcom/android/server/appop/AppOpsService;->resolvePackageName(ILjava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/appop/AppOpsService;->resolveUid(Ljava/lang/String;)I
+HSPLcom/android/server/appop/AppOpsService;->scheduleFastWriteLocked()V
+HSPLcom/android/server/appop/AppOpsService;->scheduleOpActiveChangedIfNeededLocked(IILjava/lang/String;Z)V
+HSPLcom/android/server/appop/AppOpsService;->scheduleOpNotedIfNeededLocked(IILjava/lang/String;I)V
PLcom/android/server/appop/AppOpsService;->scheduleWriteLocked()V
-PLcom/android/server/appop/AppOpsService;->setAudioRestriction(IIII[Ljava/lang/String;)V
-PLcom/android/server/appop/AppOpsService;->setCameraAudioRestriction(I)V
+HSPLcom/android/server/appop/AppOpsService;->setAudioRestriction(IIII[Ljava/lang/String;)V
+HSPLcom/android/server/appop/AppOpsService;->setCameraAudioRestriction(I)V
PLcom/android/server/appop/AppOpsService;->setMode(IILjava/lang/String;I)V
HPLcom/android/server/appop/AppOpsService;->setUidMode(III)V
PLcom/android/server/appop/AppOpsService;->setUserRestrictionNoCheck(IZLandroid/os/IBinder;I[Ljava/lang/String;)V
PLcom/android/server/appop/AppOpsService;->setUserRestrictions(Landroid/os/Bundle;Landroid/os/IBinder;I)V
-HPLcom/android/server/appop/AppOpsService;->shouldCollectNotes(I)Z
-HPLcom/android/server/appop/AppOpsService;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;Z)I
+HSPLcom/android/server/appop/AppOpsService;->shouldCollectNotes(I)Z
+HSPLcom/android/server/appop/AppOpsService;->startOperation(Landroid/os/IBinder;IILjava/lang/String;Ljava/lang/String;Z)I
PLcom/android/server/appop/AppOpsService;->startWatchingActive([ILcom/android/internal/app/IAppOpsActiveCallback;)V
-PLcom/android/server/appop/AppOpsService;->startWatchingMode(ILjava/lang/String;Lcom/android/internal/app/IAppOpsCallback;)V
-PLcom/android/server/appop/AppOpsService;->startWatchingModeWithFlags(ILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
+HSPLcom/android/server/appop/AppOpsService;->startWatchingMode(ILjava/lang/String;Lcom/android/internal/app/IAppOpsCallback;)V
+HSPLcom/android/server/appop/AppOpsService;->startWatchingModeWithFlags(ILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
PLcom/android/server/appop/AppOpsService;->startWatchingNoted([ILcom/android/internal/app/IAppOpsNotedCallback;)V
PLcom/android/server/appop/AppOpsService;->stopWatchingActive(Lcom/android/internal/app/IAppOpsActiveCallback;)V
-PLcom/android/server/appop/AppOpsService;->stopWatchingMode(Lcom/android/internal/app/IAppOpsCallback;)V
-PLcom/android/server/appop/AppOpsService;->systemReady()V
+HPLcom/android/server/appop/AppOpsService;->stopWatchingMode(Lcom/android/internal/app/IAppOpsCallback;)V
+HSPLcom/android/server/appop/AppOpsService;->systemReady()V
HPLcom/android/server/appop/AppOpsService;->updatePermissionRevokedCompat(III)V
-HPLcom/android/server/appop/AppOpsService;->updateUidProcState(III)V
+HSPLcom/android/server/appop/AppOpsService;->updateUidProcState(III)V
HSPLcom/android/server/appop/AppOpsService;->upgradeLocked(I)V
-HPLcom/android/server/appop/AppOpsService;->verifyAndGetIsPrivileged(ILjava/lang/String;)Z
-HPLcom/android/server/appop/AppOpsService;->verifyIncomingOp(I)V
-HPLcom/android/server/appop/AppOpsService;->verifyIncomingUid(I)V
+HSPLcom/android/server/appop/AppOpsService;->verifyAndGetIsPrivileged(ILjava/lang/String;)Z
+HSPLcom/android/server/appop/AppOpsService;->verifyIncomingOp(I)V
+HSPLcom/android/server/appop/AppOpsService;->verifyIncomingUid(I)V
HPLcom/android/server/appop/AppOpsService;->writeState()V
-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$1;)V
+HSPLcom/android/server/appop/AudioRestrictionManager$Restriction;-><clinit>()V
+HSPLcom/android/server/appop/AudioRestrictionManager$Restriction;-><init>()V
+HSPLcom/android/server/appop/AudioRestrictionManager$Restriction;-><init>(Lcom/android/server/appop/AudioRestrictionManager$1;)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
-PLcom/android/server/appop/AudioRestrictionManager;->checkZenModeRestrictionLocked(IIILjava/lang/String;)I
-PLcom/android/server/appop/AudioRestrictionManager;->setCameraAudioRestriction(I)V
-HPLcom/android/server/appop/AudioRestrictionManager;->setZenModeAudioRestriction(IIII[Ljava/lang/String;)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;-><clinit>()V
-PLcom/android/server/appop/HistoricalRegistry$Persistence;-><init>(JJ)V
+HPLcom/android/server/appop/AudioRestrictionManager;->checkAudioOperation(IIILjava/lang/String;)I
+HPLcom/android/server/appop/AudioRestrictionManager;->checkZenModeRestrictionLocked(IIILjava/lang/String;)I
+PLcom/android/server/appop/AudioRestrictionManager;->hasActiveRestrictions()Z
+HSPLcom/android/server/appop/AudioRestrictionManager;->setCameraAudioRestriction(I)V
+HSPLcom/android/server/appop/AudioRestrictionManager;->setZenModeAudioRestriction(IIII[Ljava/lang/String;)V
+HSPLcom/android/server/appop/HistoricalRegistry$1;-><init>(Lcom/android/server/appop/HistoricalRegistry;Landroid/os/Handler;Landroid/content/ContentResolver;)V
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;-><clinit>()V
+HSPLcom/android/server/appop/HistoricalRegistry$Persistence;-><init>(JJ)V
+PLcom/android/server/appop/HistoricalRegistry$Persistence;->access$100(Lcom/android/server/appop/HistoricalRegistry$Persistence;Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;[Ljava/lang/String;JJI)V
PLcom/android/server/appop/HistoricalRegistry$Persistence;->clearHistoryDLocked()V
PLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsBaseDLocked(ILjava/lang/String;[Ljava/lang/String;JJI)Ljava/util/LinkedList;
-PLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsRecursiveDLocked(Ljava/io/File;ILjava/lang/String;[Ljava/lang/String;JJI[JLjava/util/LinkedList;ILjava/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
-PLcom/android/server/appop/HistoricalRegistry$Persistence;->handlePersistHistoricalOpsRecursiveDLocked(Ljava/io/File;Ljava/io/File;Ljava/util/List;Ljava/util/Set;I)V
-PLcom/android/server/appop/HistoricalRegistry$Persistence;->normalizeSnapshotForSlotDuration(Ljava/util/List;J)V
+PLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;[Ljava/lang/String;JJI)V
+HPLcom/android/server/appop/HistoricalRegistry$Persistence;->collectHistoricalOpsRecursiveDLocked(Ljava/io/File;ILjava/lang/String;[Ljava/lang/String;JJI[JLjava/util/LinkedList;ILjava/util/Set;)Ljava/util/LinkedList;
+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;
+HSPLcom/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
PLcom/android/server/appop/HistoricalRegistry$Persistence;->persistHistoricalOpsDLocked(Ljava/util/List;)V
HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILjava/lang/String;Lorg/xmlpull/v1/XmlPullParser;[Ljava/lang/String;ID)Landroid/app/AppOpsManager$HistoricalOps;
-PLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;ILjava/lang/String;[Ljava/lang/String;JJI[J)Ljava/util/List;
+HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;ILjava/lang/String;[Ljava/lang/String;JJI[J)Ljava/util/List;
PLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalOpsLocked(Ljava/io/File;JJILjava/lang/String;[Ljava/lang/String;JJI[JILjava/util/Set;)Ljava/util/List;
HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalPackageOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;ILorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;[Ljava/lang/String;ID)Landroid/app/AppOpsManager$HistoricalOps;
HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readHistoricalUidOpsDLocked(Landroid/app/AppOpsManager$HistoricalOps;Lorg/xmlpull/v1/XmlPullParser;ILjava/lang/String;[Ljava/lang/String;ID)Landroid/app/AppOpsManager$HistoricalOps;
@@ -4646,7 +5278,7 @@ HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readStateDLocked(La
HPLcom/android/server/appop/HistoricalRegistry$Persistence;->readeHistoricalOpsDLocked(Lorg/xmlpull/v1/XmlPullParser;ILjava/lang/String;[Ljava/lang/String;JJI[J)Landroid/app/AppOpsManager$HistoricalOps;
HPLcom/android/server/appop/HistoricalRegistry$Persistence;->writeHistoricalOpDLocked(Landroid/app/AppOpsManager$HistoricalOp;Lorg/xmlpull/v1/XmlSerializer;)V
HPLcom/android/server/appop/HistoricalRegistry$Persistence;->writeHistoricalOpDLocked(Landroid/app/AppOpsManager$HistoricalOps;Lorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/appop/HistoricalRegistry$Persistence;->writeHistoricalOpsDLocked(Ljava/util/List;JLjava/io/File;)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;Lorg/xmlpull/v1/XmlSerializer;)V
HPLcom/android/server/appop/HistoricalRegistry$Persistence;->writeHistoricalUidOpsDLocked(Landroid/app/AppOpsManager$HistoricalUidOps;Lorg/xmlpull/v1/XmlSerializer;)V
HPLcom/android/server/appop/HistoricalRegistry$Persistence;->writeStateOnLocked(Landroid/app/AppOpsManager$HistoricalOp;JLorg/xmlpull/v1/XmlSerializer;)V
@@ -4654,22 +5286,28 @@ HSPLcom/android/server/appop/HistoricalRegistry;-><clinit>()V
HSPLcom/android/server/appop/HistoricalRegistry;-><init>(Ljava/lang/Object;)V
PLcom/android/server/appop/HistoricalRegistry;->clearHistory()V
PLcom/android/server/appop/HistoricalRegistry;->clearHistoryOnDiskDLocked()V
-HPLcom/android/server/appop/HistoricalRegistry;->getUpdatedPendingHistoricalOpsMLocked(J)Landroid/app/AppOpsManager$HistoricalOps;
-HPLcom/android/server/appop/HistoricalRegistry;->increaseOpAccessDuration(IILjava/lang/String;IIJ)V
-HPLcom/android/server/appop/HistoricalRegistry;->incrementOpAccessedCount(IILjava/lang/String;II)V
-HPLcom/android/server/appop/HistoricalRegistry;->incrementOpRejected(IILjava/lang/String;II)V
-PLcom/android/server/appop/HistoricalRegistry;->isPersistenceInitializedMLocked()Z
+PLcom/android/server/appop/HistoricalRegistry;->getHistoricalOps(ILjava/lang/String;[Ljava/lang/String;JJILandroid/os/RemoteCallback;)V
+HSPLcom/android/server/appop/HistoricalRegistry;->getUpdatedPendingHistoricalOpsMLocked(J)Landroid/app/AppOpsManager$HistoricalOps;
+HSPLcom/android/server/appop/HistoricalRegistry;->increaseOpAccessDuration(IILjava/lang/String;IIJ)V
+HSPLcom/android/server/appop/HistoricalRegistry;->incrementOpAccessedCount(IILjava/lang/String;II)V
+HSPLcom/android/server/appop/HistoricalRegistry;->incrementOpRejected(IILjava/lang/String;II)V
+PLcom/android/server/appop/HistoricalRegistry;->isApiEnabled()Z
+HSPLcom/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
+HSPLcom/android/server/appop/HistoricalRegistry;->systemReady(Landroid/content/ContentResolver;)V
+HSPLcom/android/server/appop/HistoricalRegistry;->updateParametersFromSetting(Landroid/content/ContentResolver;)V
PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$40EK4qcr-rG55ENTthOaXAXWDA4;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$40EK4qcr-rG55ENTthOaXAXWDA4;->accept(Ljava/lang/Object;)V
PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$4yDhFef-19aMlJ-Y7O6RdjSAvnk;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$4yDhFef-19aMlJ-Y7O6RdjSAvnk;->accept(Ljava/lang/Object;)V
PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$NmwmTMZXXS4S7viVNKzU2genXA8;-><init>(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;)V
PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$NmwmTMZXXS4S7viVNKzU2genXA8;->accept(Ljava/lang/Object;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$gV-NT40YbIbIqIJKiNGjlZGVJjc;-><init>(Landroid/app/prediction/AppPredictionSessionId;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$gV-NT40YbIbIqIJKiNGjlZGVJjc;->accept(Ljava/lang/Object;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$s2vrDOHz5x1TW_6jMihxp1iCAvg;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
+PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$s2vrDOHz5x1TW_6jMihxp1iCAvg;->accept(Ljava/lang/Object;)V
PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$vSY20eQq5y5FXrxhhqOTcEmezTs;-><init>(Landroid/app/prediction/AppPredictionSessionId;)V
PLcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$vSY20eQq5y5FXrxhhqOTcEmezTs;->accept(Ljava/lang/Object;)V
PLcom/android/server/appprediction/-$$Lambda$AppPredictionPerUserService$ot809pjFOVEJ6shAJalMZ9_QhCo;-><init>(Lcom/android/server/appprediction/AppPredictionPerUserService;)V
@@ -4680,19 +5318,29 @@ PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$Ikwq62LQ
PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$Ikwq62LQ8mos7hCBmykUhqvUq2Y;->run(Landroid/os/IInterface;)V
PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$UaZoW5Y9AD8L3ktnyw-25jtnxhA;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$UaZoW5Y9AD8L3ktnyw-25jtnxhA;->run(Landroid/os/IInterface;)V
+PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$dsYLGE9YRnrxNNkC1jG8ymCUr5Q;-><init>(Landroid/app/prediction/AppPredictionSessionId;)V
+PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$dsYLGE9YRnrxNNkC1jG8ymCUr5Q;->run(Landroid/os/IInterface;)V
PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$qroIh2ewx0BLP-J9XIAX2CaX8J4;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$qroIh2ewx0BLP-J9XIAX2CaX8J4;->run(Landroid/os/IInterface;)V
-PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;-><init>(Lcom/android/server/appprediction/AppPredictionManagerService;)V
-PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;-><init>(Lcom/android/server/appprediction/AppPredictionManagerService;Lcom/android/server/appprediction/AppPredictionManagerService$1;)V
+PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$sQgYVaCXRIosCYaNa7w5ZuNn7u8;-><init>(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
+PLcom/android/server/appprediction/-$$Lambda$RemoteAppPredictionService$sQgYVaCXRIosCYaNa7w5ZuNn7u8;->run(Landroid/os/IInterface;)V
+HSPLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;-><init>(Lcom/android/server/appprediction/AppPredictionManagerService;)V
+HSPLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;-><init>(Lcom/android/server/appprediction/AppPredictionManagerService;Lcom/android/server/appprediction/AppPredictionManagerService$1;)V
PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->createPredictionSession(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;)V
+PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->lambda$onDestroyPredictionSession$7(Landroid/app/prediction/AppPredictionSessionId;Lcom/android/server/appprediction/AppPredictionPerUserService;)V
+PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->lambda$unregisterPredictionUpdates$5(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;Lcom/android/server/appprediction/AppPredictionPerUserService;)V
PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->notifyAppTargetEvent(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
+PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->onDestroyPredictionSession(Landroid/app/prediction/AppPredictionSessionId;)V
PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->registerPredictionUpdates(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->requestPredictionUpdate(Landroid/app/prediction/AppPredictionSessionId;)V
PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->runForUserLocked(Ljava/lang/String;Ljava/util/function/Consumer;)V
-PLcom/android/server/appprediction/AppPredictionManagerService;-><clinit>()V
-PLcom/android/server/appprediction/AppPredictionManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/appprediction/AppPredictionManagerService$PredictionManagerServiceStub;->unregisterPredictionUpdates(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
+HSPLcom/android/server/appprediction/AppPredictionManagerService;-><clinit>()V
+HSPLcom/android/server/appprediction/AppPredictionManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/appprediction/AppPredictionManagerService;->newServiceLocked(IZ)Lcom/android/server/appprediction/AppPredictionPerUserService;
PLcom/android/server/appprediction/AppPredictionManagerService;->newServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService;
-PLcom/android/server/appprediction/AppPredictionManagerService;->onStart()V
+PLcom/android/server/appprediction/AppPredictionManagerService;->onServicePackageUpdatedLocked(I)V
+HSPLcom/android/server/appprediction/AppPredictionManagerService;->onStart()V
PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo$1;-><init>(Lcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;)V
PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo$1;->onCallbackDied(Landroid/app/prediction/IPredictionCallback;)V
PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo$1;->onCallbackDied(Landroid/os/IInterface;)V
@@ -4700,17 +5348,22 @@ PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSess
PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->access$000(Lcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;)Landroid/os/RemoteCallbackList;
PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->addCallbackLocked(Landroid/app/prediction/IPredictionCallback;)V
PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->destroy()V
+PLcom/android/server/appprediction/AppPredictionPerUserService$AppPredictionSessionInfo;->removeCallbackLocked(Landroid/app/prediction/IPredictionCallback;)V
PLcom/android/server/appprediction/AppPredictionPerUserService;-><clinit>()V
PLcom/android/server/appprediction/AppPredictionPerUserService;-><init>(Lcom/android/server/appprediction/AppPredictionManagerService;Ljava/lang/Object;I)V
+PLcom/android/server/appprediction/AppPredictionPerUserService;->destroyAndRebindRemoteService()V
PLcom/android/server/appprediction/AppPredictionPerUserService;->getRemoteServiceLocked()Lcom/android/server/appprediction/RemoteAppPredictionService;
PLcom/android/server/appprediction/AppPredictionPerUserService;->lambda$ot809pjFOVEJ6shAJalMZ9_QhCo(Lcom/android/server/appprediction/AppPredictionPerUserService;Landroid/app/prediction/AppPredictionSessionId;)V
PLcom/android/server/appprediction/AppPredictionPerUserService;->newServiceInfoLocked(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
PLcom/android/server/appprediction/AppPredictionPerUserService;->notifyAppTargetEventLocked(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
PLcom/android/server/appprediction/AppPredictionPerUserService;->onConnectedStateChanged(Z)V
PLcom/android/server/appprediction/AppPredictionPerUserService;->onCreatePredictionSessionLocked(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;)V
+PLcom/android/server/appprediction/AppPredictionPerUserService;->onDestroyPredictionSessionLocked(Landroid/app/prediction/AppPredictionSessionId;)V
+PLcom/android/server/appprediction/AppPredictionPerUserService;->onPackageUpdatedLocked()V
PLcom/android/server/appprediction/AppPredictionPerUserService;->registerPredictionUpdatesLocked(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
PLcom/android/server/appprediction/AppPredictionPerUserService;->removeAppPredictionSessionInfo(Landroid/app/prediction/AppPredictionSessionId;)V
PLcom/android/server/appprediction/AppPredictionPerUserService;->requestPredictionUpdateLocked(Landroid/app/prediction/AppPredictionSessionId;)V
+PLcom/android/server/appprediction/AppPredictionPerUserService;->unregisterPredictionUpdatesLocked(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
PLcom/android/server/appprediction/AppPredictionPerUserService;->updateLocked(Z)Z
PLcom/android/server/appprediction/RemoteAppPredictionService;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/content/ComponentName;ILcom/android/server/appprediction/RemoteAppPredictionService$RemoteAppPredictionServiceCallbacks;ZZ)V
PLcom/android/server/appprediction/RemoteAppPredictionService;->getServiceInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
@@ -4719,35 +5372,38 @@ PLcom/android/server/appprediction/RemoteAppPredictionService;->getTimeoutIdleBi
PLcom/android/server/appprediction/RemoteAppPredictionService;->handleOnConnectedStateChanged(Z)V
PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$notifyAppTargetEvent$1(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;Landroid/service/appprediction/IPredictionService;)V
PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$onCreatePredictionSession$0(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;Landroid/service/appprediction/IPredictionService;)V
+PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$onDestroyPredictionSession$7(Landroid/app/prediction/AppPredictionSessionId;Landroid/service/appprediction/IPredictionService;)V
PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$registerPredictionUpdates$4(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;Landroid/service/appprediction/IPredictionService;)V
PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$requestPredictionUpdate$6(Landroid/app/prediction/AppPredictionSessionId;Landroid/service/appprediction/IPredictionService;)V
+PLcom/android/server/appprediction/RemoteAppPredictionService;->lambda$unregisterPredictionUpdates$5(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;Landroid/service/appprediction/IPredictionService;)V
PLcom/android/server/appprediction/RemoteAppPredictionService;->notifyAppTargetEvent(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/AppTargetEvent;)V
PLcom/android/server/appprediction/RemoteAppPredictionService;->onCreatePredictionSession(Landroid/app/prediction/AppPredictionContext;Landroid/app/prediction/AppPredictionSessionId;)V
+PLcom/android/server/appprediction/RemoteAppPredictionService;->onDestroyPredictionSession(Landroid/app/prediction/AppPredictionSessionId;)V
PLcom/android/server/appprediction/RemoteAppPredictionService;->registerPredictionUpdates(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
PLcom/android/server/appprediction/RemoteAppPredictionService;->requestPredictionUpdate(Landroid/app/prediction/AppPredictionSessionId;)V
-PLcom/android/server/appwidget/AppWidgetService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/appwidget/AppWidgetService;->onBootPhase(I)V
-PLcom/android/server/appwidget/AppWidgetService;->onStart()V
-PLcom/android/server/appwidget/AppWidgetServiceImpl$1;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;)V
+PLcom/android/server/appprediction/RemoteAppPredictionService;->unregisterPredictionUpdates(Landroid/app/prediction/AppPredictionSessionId;Landroid/app/prediction/IPredictionCallback;)V
+HSPLcom/android/server/appwidget/AppWidgetService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/appwidget/AppWidgetService;->onBootPhase(I)V
+HSPLcom/android/server/appwidget/AppWidgetService;->onStart()V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl$1;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;)V
PLcom/android/server/appwidget/AppWidgetServiceImpl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl$AppWidgetManagerLocal;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl$AppWidgetManagerLocal;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl$1;)V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl$AppWidgetManagerLocal;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;)V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl$AppWidgetManagerLocal;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl$1;)V
PLcom/android/server/appwidget/AppWidgetServiceImpl$AppWidgetManagerLocal;->unlockUser(I)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl$BackupRestoreController;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl$BackupRestoreController;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl$1;)V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl$BackupRestoreController;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;)V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl$BackupRestoreController;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl$1;)V
PLcom/android/server/appwidget/AppWidgetServiceImpl$BackupRestoreController;->getWidgetState(Ljava/lang/String;I)[B
PLcom/android/server/appwidget/AppWidgetServiceImpl$BackupRestoreController;->packageNeedsWidgetBackupLocked(Ljava/lang/String;I)Z
PLcom/android/server/appwidget/AppWidgetServiceImpl$BackupRestoreController;->restoreFinished(I)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl$CallbackHandler;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;Landroid/os/Looper;)V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl$CallbackHandler;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;Landroid/os/Looper;)V
PLcom/android/server/appwidget/AppWidgetServiceImpl$CallbackHandler;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/appwidget/AppWidgetServiceImpl$Host;-><init>()V
PLcom/android/server/appwidget/AppWidgetServiceImpl$Host;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl$1;)V
PLcom/android/server/appwidget/AppWidgetServiceImpl$Host;->getUserId()I
PLcom/android/server/appwidget/AppWidgetServiceImpl$HostId;-><init>(IILjava/lang/String;)V
PLcom/android/server/appwidget/AppWidgetServiceImpl$HostId;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/appwidget/AppWidgetServiceImpl$HostId;->toString()Ljava/lang/String;
-PLcom/android/server/appwidget/AppWidgetServiceImpl$Provider;-><init>()V
-PLcom/android/server/appwidget/AppWidgetServiceImpl$Provider;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl$1;)V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl$Provider;-><init>()V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl$Provider;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl$1;)V
HPLcom/android/server/appwidget/AppWidgetServiceImpl$Provider;->getUserId()I
PLcom/android/server/appwidget/AppWidgetServiceImpl$Provider;->isMaskedLocked()Z
PLcom/android/server/appwidget/AppWidgetServiceImpl$Provider;->setMaskedByLockedProfileLocked(Z)Z
@@ -4758,50 +5414,65 @@ PLcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;-><init>(ILandroi
HPLcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;-><init>(ILandroid/content/ComponentName;Lcom/android/server/appwidget/AppWidgetServiceImpl$1;)V
HPLcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;->equals(Ljava/lang/Object;)Z
PLcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;->hashCode()I
+PLcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;->toString()Ljava/lang/String;
PLcom/android/server/appwidget/AppWidgetServiceImpl$SaveStateRunnable;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;I)V
PLcom/android/server/appwidget/AppWidgetServiceImpl$SaveStateRunnable;->run()V
-PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl$1;)V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;)V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;-><init>(Lcom/android/server/appwidget/AppWidgetServiceImpl;Lcom/android/server/appwidget/AppWidgetServiceImpl$1;)V
+PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->enforceCallFromPackage(Ljava/lang/String;)V
PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->getEnabledGroupProfileIds(I)[I
+PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->getGroupParent(I)I
PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->getProfileParent(I)I
PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->isCallerInstantAppLocked()Z
PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->isInstantAppLocked(Ljava/lang/String;I)Z
PLcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;->isProfileEnabled(I)Z
-PLcom/android/server/appwidget/AppWidgetServiceImpl;-><clinit>()V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl;-><clinit>()V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl;-><init>(Landroid/content/Context;)V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$000()Z
PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$100(Lcom/android/server/appwidget/AppWidgetServiceImpl;)V
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2100(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Landroid/os/UserManager;
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2200(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Landroid/content/pm/IPackageManager;
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2300(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Landroid/app/AppOpsManager;
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->access$2800(Lcom/android/server/appwidget/AppWidgetServiceImpl;)Lcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;
PLcom/android/server/appwidget/AppWidgetServiceImpl;->addProviderLocked(Landroid/content/pm/ResolveInfo;)Z
PLcom/android/server/appwidget/AppWidgetServiceImpl;->bindLoadedWidgetsLocked(Ljava/util/List;)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->cancelBroadcastsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->clearProvidersAndHostsTagsLocked()V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->computeMaximumWidgetBitmapMemory()V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->deleteWidgetsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;I)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->ensureGroupStateLoadedLocked(IZ)V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->computeMaximumWidgetBitmapMemory()V
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->dumpInternal(Ljava/io/PrintWriter;)V
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->dumpProvider(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;ILjava/io/PrintWriter;)V
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->ensureGroupStateLoadedLocked(I)V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->ensureGroupStateLoadedLocked(IZ)V
HPLcom/android/server/appwidget/AppWidgetServiceImpl;->getAppWidgetIds(Landroid/content/ComponentName;)[I
PLcom/android/server/appwidget/AppWidgetServiceImpl;->getInstalledProvidersForProfile(IILjava/lang/String;)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/appwidget/AppWidgetServiceImpl;->getSavedStateFile(I)Landroid/util/AtomicFile;
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->getStateFile(I)Ljava/io/File;
PLcom/android/server/appwidget/AppWidgetServiceImpl;->getUidForPackage(Ljava/lang/String;I)I
PLcom/android/server/appwidget/AppWidgetServiceImpl;->getWidgetState(Ljava/lang/String;I)[B
PLcom/android/server/appwidget/AppWidgetServiceImpl;->handleNotifyProvidersChanged(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;Lcom/android/internal/appwidget/IAppWidgetHost;)V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->handleUserUnlocked(I)V
-HPLcom/android/server/appwidget/AppWidgetServiceImpl;->isBoundWidgetPackage(Ljava/lang/String;I)Z
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->isBoundWidgetPackage(Ljava/lang/String;I)Z
PLcom/android/server/appwidget/AppWidgetServiceImpl;->isProfileWithLockedParent(I)Z
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->isProfileWithUnlockedParent(I)Z
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->isProfileWithUnlockedParent(I)Z
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->isUserRunningAndUnlocked(I)Z
PLcom/android/server/appwidget/AppWidgetServiceImpl;->loadGroupStateLocked([I)V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->loadGroupWidgetProvidersLocked([I)V
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->lookupHostLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$HostId;)Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;
+PLcom/android/server/appwidget/AppWidgetServiceImpl;->lookupOrAddHostLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$HostId;)Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->lookupProviderLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;)Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;
PLcom/android/server/appwidget/AppWidgetServiceImpl;->maskWidgetsViewsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;Lcom/android/server/appwidget/AppWidgetServiceImpl$Widget;)V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->onConfigurationChanged()V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->onCrossProfileWidgetProvidersChanged(ILjava/util/List;)V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->onPackageBroadcastReceived(Landroid/content/Intent;I)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->onStart()V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->onStart()V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->parseAppWidgetProviderInfo(Lcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;Landroid/content/pm/ActivityInfo;Ljava/lang/String;)Landroid/appwidget/AppWidgetProviderInfo;
PLcom/android/server/appwidget/AppWidgetServiceImpl;->parseProviderInfoXml(Lcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;Landroid/content/pm/ResolveInfo;Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;
PLcom/android/server/appwidget/AppWidgetServiceImpl;->performUpgradeLocked(I)V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->pruneHostLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->queryIntentReceivers(Landroid/content/Intent;I)Ljava/util/List;
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->queryIntentReceivers(Landroid/content/Intent;I)Ljava/util/List;
PLcom/android/server/appwidget/AppWidgetServiceImpl;->readProfileStateFromFileLocked(Ljava/io/FileInputStream;ILjava/util/List;)I
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->registerBroadcastReceiver()V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->registerOnCrossProfileProvidersChangedListener()V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->registerBroadcastReceiver()V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->registerOnCrossProfileProvidersChangedListener()V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->reloadWidgetsMaskedState(I)V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->reloadWidgetsMaskedStateForGroup(I)V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->resolveHostUidLocked(Ljava/lang/String;I)V
@@ -4809,166 +5480,271 @@ PLcom/android/server/appwidget/AppWidgetServiceImpl;->restoreFinished(I)V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->saveStateLocked(I)V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->scheduleNotifyGroupHostsForProvidersChangedLocked(I)V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->serializeHost(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/appwidget/AppWidgetServiceImpl$Host;)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->setSafeMode(Z)V
+HSPLcom/android/server/appwidget/AppWidgetServiceImpl;->setSafeMode(Z)V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->startListening(Lcom/android/internal/appwidget/IAppWidgetHost;Ljava/lang/String;I[I)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/appwidget/AppWidgetServiceImpl;->stopListening(Ljava/lang/String;I)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->tagProvidersAndHosts()V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->tagProvidersAndHosts()V
PLcom/android/server/appwidget/AppWidgetServiceImpl;->unmaskWidgetsViewsLocked(Lcom/android/server/appwidget/AppWidgetServiceImpl$Provider;)V
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetProvider(Landroid/content/ComponentName;Landroid/widget/RemoteViews;)V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateAppWidgetProvider(Landroid/content/ComponentName;Landroid/widget/RemoteViews;)V
HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateProvidersForPackageLocked(Ljava/lang/String;ILjava/util/Set;)Z
-PLcom/android/server/appwidget/AppWidgetServiceImpl;->writeProfileStateToFileLocked(Ljava/io/FileOutputStream;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/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;-><clinit>()V
-PLcom/android/server/audio/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;-><init>()V
-PLcom/android/server/audio/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;->applyAsInt(Ljava/lang/Object;)I
-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$1;)V
-PLcom/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;-><clinit>()V
-PLcom/android/server/audio/AudioDeviceBroker;-><init>(Landroid/content/Context;Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioDeviceBroker;->access$002(Lcom/android/server/audio/AudioDeviceBroker;Lcom/android/server/audio/AudioDeviceBroker$BrokerHandler;)Lcom/android/server/audio/AudioDeviceBroker$BrokerHandler;
-PLcom/android/server/audio/AudioDeviceBroker;->access$200(Lcom/android/server/audio/AudioDeviceBroker;)Ljava/lang/Object;
-PLcom/android/server/audio/AudioDeviceBroker;->access$400(Lcom/android/server/audio/AudioDeviceBroker;)Lcom/android/server/audio/BtHelper;
-PLcom/android/server/audio/AudioDeviceBroker;->access$500(Lcom/android/server/audio/AudioDeviceBroker;IILjava/lang/String;)V
-PLcom/android/server/audio/AudioDeviceBroker;->access$800(I)Z
-PLcom/android/server/audio/AudioDeviceBroker;->getContext()Landroid/content/Context;
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->updateWidgetPackageSuspensionMaskedState(Landroid/content/Intent;ZI)V
+HPLcom/android/server/appwidget/AppWidgetServiceImpl;->writeProfileStateToFileLocked(Ljava/io/FileOutputStream;I)Z
+HSPLcom/android/server/attention/AttentionManagerService$AttentionHandler;-><init>(Lcom/android/server/attention/AttentionManagerService;)V
+HSPLcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand$TestableAttentionCallbackInternal;-><init>(Lcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand;)V
+HSPLcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand;-><init>(Lcom/android/server/attention/AttentionManagerService;)V
+HSPLcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand;-><init>(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$1;)V
+HSPLcom/android/server/attention/AttentionManagerService$BinderService;-><init>(Lcom/android/server/attention/AttentionManagerService;)V
+HSPLcom/android/server/attention/AttentionManagerService$BinderService;-><init>(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$1;)V
+PLcom/android/server/attention/AttentionManagerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/attention/AttentionManagerService$LocalService;-><init>(Lcom/android/server/attention/AttentionManagerService;)V
+HSPLcom/android/server/attention/AttentionManagerService$LocalService;-><init>(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$1;)V
+PLcom/android/server/attention/AttentionManagerService$LocalService;->isAttentionServiceSupported()Z
+HSPLcom/android/server/attention/AttentionManagerService$ScreenStateReceiver;-><init>(Lcom/android/server/attention/AttentionManagerService;)V
+HSPLcom/android/server/attention/AttentionManagerService$ScreenStateReceiver;-><init>(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$1;)V
+HPLcom/android/server/attention/AttentionManagerService$ScreenStateReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/attention/AttentionManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/attention/AttentionManagerService;-><init>(Landroid/content/Context;Landroid/os/PowerManager;Ljava/lang/Object;Lcom/android/server/attention/AttentionManagerService$AttentionHandler;)V
+PLcom/android/server/attention/AttentionManagerService;->access$1300(Lcom/android/server/attention/AttentionManagerService;)Z
+PLcom/android/server/attention/AttentionManagerService;->access$2000(Lcom/android/server/attention/AttentionManagerService;Lcom/android/server/attention/AttentionManagerService$UserState;)V
+PLcom/android/server/attention/AttentionManagerService;->access$2400(Lcom/android/server/attention/AttentionManagerService;)Landroid/content/Context;
+PLcom/android/server/attention/AttentionManagerService;->access$2700(Lcom/android/server/attention/AttentionManagerService;Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/attention/AttentionManagerService;->cancelAndUnbindLocked(Lcom/android/server/attention/AttentionManagerService$UserState;)V
+PLcom/android/server/attention/AttentionManagerService;->dumpInternal(Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/attention/AttentionManagerService;->getServiceConfigPackage(Landroid/content/Context;)Ljava/lang/String;
+PLcom/android/server/attention/AttentionManagerService;->isAttentionServiceSupported()Z
+PLcom/android/server/attention/AttentionManagerService;->isServiceAvailable()Z
+HSPLcom/android/server/attention/AttentionManagerService;->isServiceConfigured(Landroid/content/Context;)Z
+PLcom/android/server/attention/AttentionManagerService;->isServiceEnabled()Z
+HSPLcom/android/server/attention/AttentionManagerService;->onBootPhase(I)V
+HSPLcom/android/server/attention/AttentionManagerService;->onStart()V
+PLcom/android/server/attention/AttentionManagerService;->peekCurrentUserStateLocked()Lcom/android/server/attention/AttentionManagerService$UserState;
+PLcom/android/server/attention/AttentionManagerService;->peekUserStateLocked(I)Lcom/android/server/attention/AttentionManagerService$UserState;
+PLcom/android/server/attention/AttentionManagerService;->resolveAttentionService(Landroid/content/Context;)Landroid/content/ComponentName;
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$2HRlO1Fuzgf97A2Y249yqOtNAlc;-><init>(Landroid/util/ArraySet;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$7CtpUHI2aS8Sdar40vc2ScvU1zA;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$7CtpUHI2aS8Sdar40vc2ScvU1zA;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$A06w_GDNkrLVK3IhlqiuSJkZdos;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$BMFj2tw2PdB9dFQB6gMjDjefzwg;-><init>(Landroid/util/ArraySet;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$BMFj2tw2PdB9dFQB6gMjDjefzwg;->accept(Ljava/lang/Object;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$Jg62meZgoWI_a0zxOvpWdJWRPfI;-><init>(Lcom/android/server/audio/AudioDeviceInventory;I)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$Jg62meZgoWI_a0zxOvpWdJWRPfI;->accept(Ljava/lang/Object;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$Kq15BolmuFXaWWabjDNQiScRxjo;-><init>(Landroid/util/ArraySet;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$Nads7_S1eD53QDofbK9CuYO9Fok;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$YxgcWZ4jspoxzltUgvW9l8k40io;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$YxgcWZ4jspoxzltUgvW9l8k40io;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/audio/-$$Lambda$AudioDeviceInventory$_CdHBhvBDErZWSm39GafCXJiOqQ;-><init>(Lcom/android/server/audio/AudioDeviceInventory;)V
+HSPLcom/android/server/audio/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;-><clinit>()V
+HSPLcom/android/server/audio/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;-><init>()V
+HSPLcom/android/server/audio/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;->applyAsInt(Ljava/lang/Object;)I
+HSPLcom/android/server/audio/AudioDeviceBroker$BrokerHandler;-><init>(Lcom/android/server/audio/AudioDeviceBroker;)V
+HSPLcom/android/server/audio/AudioDeviceBroker$BrokerHandler;-><init>(Lcom/android/server/audio/AudioDeviceBroker;Lcom/android/server/audio/AudioDeviceBroker$1;)V
+HSPLcom/android/server/audio/AudioDeviceBroker$BrokerHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/audio/AudioDeviceBroker$BrokerThread;-><init>(Lcom/android/server/audio/AudioDeviceBroker;)V
+HSPLcom/android/server/audio/AudioDeviceBroker$BrokerThread;->run()V
+PLcom/android/server/audio/AudioDeviceBroker$BtDeviceConnectionInfo;-><init>(Landroid/bluetooth/BluetoothDevice;IIZI)V
+HSPLcom/android/server/audio/AudioDeviceBroker;-><clinit>()V
+HSPLcom/android/server/audio/AudioDeviceBroker;-><init>(Landroid/content/Context;Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioDeviceBroker;->access$002(Lcom/android/server/audio/AudioDeviceBroker;Lcom/android/server/audio/AudioDeviceBroker$BrokerHandler;)Lcom/android/server/audio/AudioDeviceBroker$BrokerHandler;
+HSPLcom/android/server/audio/AudioDeviceBroker;->access$200(Lcom/android/server/audio/AudioDeviceBroker;)Ljava/lang/Object;
+PLcom/android/server/audio/AudioDeviceBroker;->access$300(Lcom/android/server/audio/AudioDeviceBroker;)Lcom/android/server/audio/AudioDeviceInventory;
+HSPLcom/android/server/audio/AudioDeviceBroker;->access$400(Lcom/android/server/audio/AudioDeviceBroker;)Lcom/android/server/audio/BtHelper;
+HSPLcom/android/server/audio/AudioDeviceBroker;->access$500(Lcom/android/server/audio/AudioDeviceBroker;IILjava/lang/String;)V
+HSPLcom/android/server/audio/AudioDeviceBroker;->access$800(I)Z
+PLcom/android/server/audio/AudioDeviceBroker;->access$900(Lcom/android/server/audio/AudioDeviceBroker;)Landroid/os/PowerManager$WakeLock;
+PLcom/android/server/audio/AudioDeviceBroker;->disconnectAllBluetoothProfiles()V
+PLcom/android/server/audio/AudioDeviceBroker;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceBroker;->getA2dpCodec(Landroid/bluetooth/BluetoothDevice;)I
+HSPLcom/android/server/audio/AudioDeviceBroker;->getContext()Landroid/content/Context;
+PLcom/android/server/audio/AudioDeviceBroker;->getCurAudioRoutes()Landroid/media/AudioRoutesInfo;
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;->isAvrcpAbsoluteVolumeSupported()Z
-PLcom/android/server/audio/AudioDeviceBroker;->isBluetoothScoOnForApp()Z
-PLcom/android/server/audio/AudioDeviceBroker;->isMessageHandledUnderWakelock(I)Z
-PLcom/android/server/audio/AudioDeviceBroker;->onSetForceUse(IILjava/lang/String;)V
-PLcom/android/server/audio/AudioDeviceBroker;->onSystemReady()V
-PLcom/android/server/audio/AudioDeviceBroker;->postBroadcastScoConnectionState(I)V
+PLcom/android/server/audio/AudioDeviceBroker;->handleDeviceConnection(ZILjava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/server/audio/AudioDeviceBroker;->handleFailureToConnectToBtHeadsetService(I)V
+PLcom/android/server/audio/AudioDeviceBroker;->hasScheduledA2dpSinkConnectionState(Landroid/bluetooth/BluetoothDevice;)Z
+HSPLcom/android/server/audio/AudioDeviceBroker;->init()V
+HSPLcom/android/server/audio/AudioDeviceBroker;->isAvrcpAbsoluteVolumeSupported()Z
+PLcom/android/server/audio/AudioDeviceBroker;->isBluetoothA2dpOn()Z
+HSPLcom/android/server/audio/AudioDeviceBroker;->isBluetoothScoOnForApp()Z
+HSPLcom/android/server/audio/AudioDeviceBroker;->isMessageHandledUnderWakelock(I)Z
+PLcom/android/server/audio/AudioDeviceBroker;->isSpeakerphoneOn()Z
+HSPLcom/android/server/audio/AudioDeviceBroker;->onSetForceUse(IILjava/lang/String;)V
+HSPLcom/android/server/audio/AudioDeviceBroker;->onSystemReady()V
+HSPLcom/android/server/audio/AudioDeviceBroker;->postBroadcastScoConnectionState(I)V
PLcom/android/server/audio/AudioDeviceBroker;->postBtA2dpProfileConnected(Landroid/bluetooth/BluetoothA2dp;)V
PLcom/android/server/audio/AudioDeviceBroker;->postBtHearingAidProfileConnected(Landroid/bluetooth/BluetoothHearingAid;)V
PLcom/android/server/audio/AudioDeviceBroker;->postBtHeasetProfileConnected(Landroid/bluetooth/BluetoothHeadset;)V
-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;->sendIMsgNoDelay(III)V
+PLcom/android/server/audio/AudioDeviceBroker;->postSetAvrcpAbsoluteVolumeIndex(I)V
+PLcom/android/server/audio/AudioDeviceBroker;->receiveBtEvent(Landroid/content/Intent;)V
+PLcom/android/server/audio/AudioDeviceBroker;->sendBroadcastToAll(Landroid/content/Intent;)V
+HSPLcom/android/server/audio/AudioDeviceBroker;->sendIILMsg(IIIILjava/lang/Object;I)V
+HSPLcom/android/server/audio/AudioDeviceBroker;->sendIILMsgNoDelay(IIIILjava/lang/Object;)V
+PLcom/android/server/audio/AudioDeviceBroker;->sendILMsg(IIILjava/lang/Object;I)V
+HSPLcom/android/server/audio/AudioDeviceBroker;->sendIMsgNoDelay(III)V
PLcom/android/server/audio/AudioDeviceBroker;->sendLMsgNoDelay(IILjava/lang/Object;)V
-PLcom/android/server/audio/AudioDeviceBroker;->sendMsg(III)V
-PLcom/android/server/audio/AudioDeviceBroker;->setBluetoothScoOn(ZLjava/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;->waitForBrokerHandlerCreation()V
-PLcom/android/server/audio/AudioDeviceInventory;-><clinit>()V
-PLcom/android/server/audio/AudioDeviceInventory;-><init>(Lcom/android/server/audio/AudioDeviceBroker;)V
-PLcom/android/server/audio/AudioDeviceInventory;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo;
-PLcom/android/server/audio/AudioEventLogger$Event;-><clinit>()V
-PLcom/android/server/audio/AudioEventLogger$Event;-><init>()V
+HSPLcom/android/server/audio/AudioDeviceBroker;->sendMsg(III)V
+PLcom/android/server/audio/AudioDeviceBroker;->setA2dpTimeout(Ljava/lang/String;II)V
+PLcom/android/server/audio/AudioDeviceBroker;->setAvrcpAbsoluteVolumeSupported(Z)V
+PLcom/android/server/audio/AudioDeviceBroker;->setBluetoothA2dpOnInt(ZLjava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceBroker;->setBluetoothA2dpOn_Async(ZLjava/lang/String;)V
+HSPLcom/android/server/audio/AudioDeviceBroker;->setBluetoothScoOn(ZLjava/lang/String;)V
+HSPLcom/android/server/audio/AudioDeviceBroker;->setForceUse_Async(IILjava/lang/String;)V
+HSPLcom/android/server/audio/AudioDeviceBroker;->setupMessaging(Landroid/content/Context;)V
+HSPLcom/android/server/audio/AudioDeviceBroker;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo;
+HSPLcom/android/server/audio/AudioDeviceBroker;->waitForBrokerHandlerCreation()V
+PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;-><init>(ILjava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;->access$000(ILjava/lang/String;)Ljava/lang/String;
+PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;->getKey()Ljava/lang/String;
+PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;->makeDeviceListKey(ILjava/lang/String;)Ljava/lang/String;
+PLcom/android/server/audio/AudioDeviceInventory$DeviceInfo;->toString()Ljava/lang/String;
+HSPLcom/android/server/audio/AudioDeviceInventory;-><clinit>()V
+HSPLcom/android/server/audio/AudioDeviceInventory;-><init>(Lcom/android/server/audio/AudioDeviceBroker;)V
+PLcom/android/server/audio/AudioDeviceInventory;->checkSendBecomingNoisyIntentInt(III)I
+PLcom/android/server/audio/AudioDeviceInventory;->disconnectA2dp()V
+PLcom/android/server/audio/AudioDeviceInventory;->disconnectA2dpSink()V
+PLcom/android/server/audio/AudioDeviceInventory;->disconnectHearingAid()V
+PLcom/android/server/audio/AudioDeviceInventory;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceInventory;->handleDeviceConnection(ZILjava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/audio/AudioDeviceInventory;->lambda$disconnectA2dp$4(Landroid/util/ArraySet;Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)V
+PLcom/android/server/audio/AudioDeviceInventory;->lambda$disconnectA2dp$5$AudioDeviceInventory(ILjava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceInventory;->lambda$dump$1(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/audio/AudioDeviceInventory$DeviceInfo;)V
+PLcom/android/server/audio/AudioDeviceInventory;->lambda$dump$2(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;)V
+PLcom/android/server/audio/AudioDeviceInventory;->makeA2dpDeviceAvailable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/audio/AudioDeviceInventory;->makeA2dpDeviceUnavailableLater(Ljava/lang/String;I)V
+PLcom/android/server/audio/AudioDeviceInventory;->makeA2dpDeviceUnavailableNow(Ljava/lang/String;I)V
+PLcom/android/server/audio/AudioDeviceInventory;->onBluetoothA2dpActiveDeviceChange(Lcom/android/server/audio/BtHelper$BluetoothA2dpDeviceInfo;I)V
+PLcom/android/server/audio/AudioDeviceInventory;->onMakeA2dpDeviceUnavailableNow(Ljava/lang/String;I)V
+PLcom/android/server/audio/AudioDeviceInventory;->onReportNewRoutes()V
+PLcom/android/server/audio/AudioDeviceInventory;->onSetA2dpSinkConnectionState(Lcom/android/server/audio/BtHelper$BluetoothA2dpDeviceInfo;I)V
+PLcom/android/server/audio/AudioDeviceInventory;->setBluetoothA2dpDeviceConnectionState(Landroid/bluetooth/BluetoothDevice;IIZII)V
+PLcom/android/server/audio/AudioDeviceInventory;->setCurrentAudioRouteNameIfPossible(Ljava/lang/String;)V
+HSPLcom/android/server/audio/AudioDeviceInventory;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo;
+HSPLcom/android/server/audio/AudioEventLogger$Event;-><clinit>()V
+HSPLcom/android/server/audio/AudioEventLogger$Event;-><init>()V
PLcom/android/server/audio/AudioEventLogger$Event;->printLog(Ljava/lang/String;)Lcom/android/server/audio/AudioEventLogger$Event;
-PLcom/android/server/audio/AudioEventLogger$StringEvent;-><init>(Ljava/lang/String;)V
+PLcom/android/server/audio/AudioEventLogger$Event;->toString()Ljava/lang/String;
+HSPLcom/android/server/audio/AudioEventLogger$StringEvent;-><init>(Ljava/lang/String;)V
PLcom/android/server/audio/AudioEventLogger$StringEvent;->eventToString()Ljava/lang/String;
-PLcom/android/server/audio/AudioEventLogger;-><init>(ILjava/lang/String;)V
-PLcom/android/server/audio/AudioEventLogger;->log(Lcom/android/server/audio/AudioEventLogger$Event;)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
-PLcom/android/server/audio/AudioService$3;-><init>(Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioEventLogger;-><init>(ILjava/lang/String;)V
+PLcom/android/server/audio/AudioEventLogger;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/audio/AudioEventLogger;->log(Lcom/android/server/audio/AudioEventLogger$Event;)V
+HSPLcom/android/server/audio/AudioService$1;-><init>(Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioService$1;->onError(I)V
+HSPLcom/android/server/audio/AudioService$2;-><init>(Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioService$3;-><init>(Lcom/android/server/audio/AudioService;)V
PLcom/android/server/audio/AudioService$4;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/IVolumeController;)V
-PLcom/android/server/audio/AudioService$5;-><init>(Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioService$5;-><init>(Lcom/android/server/audio/AudioService;)V
PLcom/android/server/audio/AudioService$AsdProxy;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/IAudioServerStateDispatcher;)V
-PLcom/android/server/audio/AudioService$AudioHandler;-><init>(Lcom/android/server/audio/AudioService;)V
-PLcom/android/server/audio/AudioService$AudioHandler;-><init>(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$1;)V
-PLcom/android/server/audio/AudioService$AudioHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/audio/AudioService$AudioHandler;-><init>(Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioService$AudioHandler;-><init>(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$1;)V
+HSPLcom/android/server/audio/AudioService$AudioHandler;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/audio/AudioService$AudioHandler;->onPersistSafeVolumeState(I)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
-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$1;)V
+HSPLcom/android/server/audio/AudioService$AudioHandler;->setAllVolumes(Lcom/android/server/audio/AudioService$VolumeStreamState;)V
+PLcom/android/server/audio/AudioService$AudioPolicyProxy;-><init>(Lcom/android/server/audio/AudioService;Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;ZZZZLandroid/media/projection/IMediaProjection;)V
+PLcom/android/server/audio/AudioService$AudioPolicyProxy;->connectMixes()I
+PLcom/android/server/audio/AudioService$AudioPolicyProxy;->getRegistrationId()Ljava/lang/String;
+PLcom/android/server/audio/AudioService$AudioPolicyProxy;->release()V
+HSPLcom/android/server/audio/AudioService$AudioServiceBroadcastReceiver;-><init>(Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioService$AudioServiceBroadcastReceiver;-><init>(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$1;)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
+HSPLcom/android/server/audio/AudioService$AudioServiceInternal;-><init>(Lcom/android/server/audio/AudioService;)V
PLcom/android/server/audio/AudioService$AudioServiceInternal;->adjustSuggestedStreamVolumeForUid(IIILjava/lang/String;I)V
-PLcom/android/server/audio/AudioService$AudioServiceInternal;->getRingerModeInternal()I
+HSPLcom/android/server/audio/AudioService$AudioServiceInternal;->getRingerModeInternal()I
PLcom/android/server/audio/AudioService$AudioServiceInternal;->setAccessibilityServiceUids(Landroid/util/IntArray;)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$1;)V
+HSPLcom/android/server/audio/AudioService$AudioServiceInternal;->setRingerModeDelegate(Landroid/media/AudioManagerInternal$RingerModeDelegate;)V
+HSPLcom/android/server/audio/AudioService$AudioServiceInternal;->setRingerModeInternal(ILjava/lang/String;)V
+HSPLcom/android/server/audio/AudioService$AudioServiceInternal;->updateRingerModeAffectedStreamsInternal()V
+HSPLcom/android/server/audio/AudioService$AudioServiceUserRestrictionsListener;-><init>(Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioService$AudioServiceUserRestrictionsListener;-><init>(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$1;)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
+HSPLcom/android/server/audio/AudioService$AudioSystemThread;-><init>(Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioService$AudioSystemThread;->run()V
+PLcom/android/server/audio/AudioService$DeviceVolumeUpdate;-><init>(IIILjava/lang/String;)V
+PLcom/android/server/audio/AudioService$DeviceVolumeUpdate;->getVolumeIndex()I
+PLcom/android/server/audio/AudioService$DeviceVolumeUpdate;->hasVolumeIndex()Z
PLcom/android/server/audio/AudioService$ForceControlStreamClient;-><init>(Lcom/android/server/audio/AudioService;Landroid/os/IBinder;)V
PLcom/android/server/audio/AudioService$ForceControlStreamClient;->release()V
-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$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$1;)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;->register()V
-PLcom/android/server/audio/AudioService$SettingsObserver;-><init>(Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/audio/AudioService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/audio/AudioService$Lifecycle;->onStart()V
+HSPLcom/android/server/audio/AudioService$MyHdmiControlStatusChangeListenerCallback;-><init>(Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioService$MyHdmiControlStatusChangeListenerCallback;-><init>(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$1;)V
+PLcom/android/server/audio/AudioService$RmtSbmxFullVolDeathHandler;-><init>(Lcom/android/server/audio/AudioService;Landroid/os/IBinder;)V
+PLcom/android/server/audio/AudioService$RmtSbmxFullVolDeathHandler;->forget()V
+PLcom/android/server/audio/AudioService$RmtSbmxFullVolDeathHandler;->isHandlerFor(Landroid/os/IBinder;)Z
+HSPLcom/android/server/audio/AudioService$RoleObserver;-><init>(Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioService$RoleObserver;->getAssistantRoleHolder()Ljava/lang/String;
+PLcom/android/server/audio/AudioService$RoleObserver;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
+HSPLcom/android/server/audio/AudioService$RoleObserver;->register()V
+HSPLcom/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$VolumeController;-><init>()V
+HSPLcom/android/server/audio/AudioService$VolumeController;-><init>()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
+HSPLcom/android/server/audio/AudioService$VolumeController;->loadSettings(Landroid/content/ContentResolver;)V
PLcom/android/server/audio/AudioService$VolumeController;->postDismiss()V
PLcom/android/server/audio/AudioService$VolumeController;->postVolumeChanged(II)V
PLcom/android/server/audio/AudioService$VolumeController;->setController(Landroid/media/IVolumeController;)V
PLcom/android/server/audio/AudioService$VolumeController;->setLayoutDirection(I)V
PLcom/android/server/audio/AudioService$VolumeController;->setVisible(Z)V
PLcom/android/server/audio/AudioService$VolumeController;->suppressAdjustment(IIZ)Z
-PLcom/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$1;)V
-PLcom/android/server/audio/AudioService$VolumeStreamState;->access$1000(Lcom/android/server/audio/AudioService$VolumeStreamState;)Z
-PLcom/android/server/audio/AudioService$VolumeStreamState;->access$1100(Lcom/android/server/audio/AudioService$VolumeStreamState;)I
-PLcom/android/server/audio/AudioService$VolumeStreamState;->access$800(Lcom/android/server/audio/AudioService$VolumeStreamState;)I
-PLcom/android/server/audio/AudioService$VolumeStreamState;->applyAllVolumes()V
-PLcom/android/server/audio/AudioService$VolumeStreamState;->applyDeviceVolume_syncVSS(IZ)V
-PLcom/android/server/audio/AudioService$VolumeStreamState;->checkFixedVolumeDevices()V
-PLcom/android/server/audio/AudioService$VolumeStreamState;->getIndex(I)I
-PLcom/android/server/audio/AudioService$VolumeStreamState;->getMaxIndex()I
-PLcom/android/server/audio/AudioService$VolumeStreamState;->getMinIndex()I
-PLcom/android/server/audio/AudioService$VolumeStreamState;->getSettingNameForDevice(I)Ljava/lang/String;
-PLcom/android/server/audio/AudioService$VolumeStreamState;->getStreamType()I
-PLcom/android/server/audio/AudioService$VolumeStreamState;->getValidIndex(I)I
-HPLcom/android/server/audio/AudioService$VolumeStreamState;->hasValidSettingsName()Z
-PLcom/android/server/audio/AudioService$VolumeStreamState;->mute(Z)Z
-PLcom/android/server/audio/AudioService$VolumeStreamState;->observeDevicesForStream_syncVSS(Z)I
-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
-PLcom/android/server/audio/AudioService$VolumeStreamState;->setIndex(IILjava/lang/String;)Z
-PLcom/android/server/audio/AudioService$VolumeStreamState;->setStreamVolumeIndex(II)V
-PLcom/android/server/audio/AudioService;-><clinit>()V
-PLcom/android/server/audio/AudioService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/audio/AudioService$VolumeController;->toString()Ljava/lang/String;
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;-><init>(Lcom/android/server/audio/AudioService;Ljava/lang/String;I)V
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;-><init>(Lcom/android/server/audio/AudioService;Ljava/lang/String;ILcom/android/server/audio/AudioService$1;)V
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->access$1000(Lcom/android/server/audio/AudioService$VolumeStreamState;)Z
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->access$1100(Lcom/android/server/audio/AudioService$VolumeStreamState;)I
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->access$800(Lcom/android/server/audio/AudioService$VolumeStreamState;)I
+PLcom/android/server/audio/AudioService$VolumeStreamState;->adjustIndex(IILjava/lang/String;)Z
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->applyAllVolumes()V
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->applyDeviceVolume_syncVSS(IZ)V
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->checkFixedVolumeDevices()V
+PLcom/android/server/audio/AudioService$VolumeStreamState;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/audio/AudioService$VolumeStreamState;->getAbsoluteVolumeIndex(I)I
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->getIndex(I)I
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->getMaxIndex()I
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->getMinIndex()I
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->getSettingNameForDevice(I)Ljava/lang/String;
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->getStreamType()I
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->getValidIndex(I)I
+PLcom/android/server/audio/AudioService$VolumeStreamState;->hasIndexForDevice(I)Z
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->hasValidSettingsName()Z
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->mute(Z)Z
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->observeDevicesForStream_syncVSS(Z)I
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->readSettings()V
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->setAllIndexes(Lcom/android/server/audio/AudioService$VolumeStreamState;Ljava/lang/String;)V
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->setIndex(IILjava/lang/String;)Z
+HSPLcom/android/server/audio/AudioService$VolumeStreamState;->setStreamVolumeIndex(II)V
+HSPLcom/android/server/audio/AudioService;-><clinit>()V
+HSPLcom/android/server/audio/AudioService;-><init>(Landroid/content/Context;)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;->access$100(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/AudioService$AudioHandler;
-PLcom/android/server/audio/AudioService;->access$102(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$AudioHandler;)Lcom/android/server/audio/AudioService$AudioHandler;
-PLcom/android/server/audio/AudioService;->access$200(Landroid/os/Handler;IIIILjava/lang/Object;I)V
-PLcom/android/server/audio/AudioService;->access$2000(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/AudioDeviceBroker;
-PLcom/android/server/audio/AudioService;->access$2300(Lcom/android/server/audio/AudioService;I)V
-PLcom/android/server/audio/AudioService;->access$2400(Lcom/android/server/audio/AudioService;Landroid/content/Intent;)V
-PLcom/android/server/audio/AudioService;->access$2500(Lcom/android/server/audio/AudioService;)Ljava/lang/Object;
-PLcom/android/server/audio/AudioService;->access$2600(Lcom/android/server/audio/AudioService;)Z
-PLcom/android/server/audio/AudioService;->access$2700(Lcom/android/server/audio/AudioService;)Z
-PLcom/android/server/audio/AudioService;->access$2800(Lcom/android/server/audio/AudioService;)Landroid/content/ContentResolver;
-PLcom/android/server/audio/AudioService;->access$3000(Lcom/android/server/audio/AudioService;)[Lcom/android/server/audio/AudioService$VolumeStreamState;
-PLcom/android/server/audio/AudioService;->access$3100(Lcom/android/server/audio/AudioService;III)I
-PLcom/android/server/audio/AudioService;->access$3700(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/SoundEffectsHelper;
-PLcom/android/server/audio/AudioService;->access$3800(Lcom/android/server/audio/AudioService;)Z
+HSPLcom/android/server/audio/AudioService;->access$100(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/AudioService$AudioHandler;
+HSPLcom/android/server/audio/AudioService;->access$102(Lcom/android/server/audio/AudioService;Lcom/android/server/audio/AudioService$AudioHandler;)Lcom/android/server/audio/AudioService$AudioHandler;
+HSPLcom/android/server/audio/AudioService;->access$200(Landroid/os/Handler;IIIILjava/lang/Object;I)V
+HSPLcom/android/server/audio/AudioService;->access$2000(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/AudioDeviceBroker;
+HSPLcom/android/server/audio/AudioService;->access$2300(Lcom/android/server/audio/AudioService;I)V
+HSPLcom/android/server/audio/AudioService;->access$2400(Lcom/android/server/audio/AudioService;Landroid/content/Intent;)V
+HSPLcom/android/server/audio/AudioService;->access$2500(Lcom/android/server/audio/AudioService;)Ljava/lang/Object;
+HSPLcom/android/server/audio/AudioService;->access$2600(Lcom/android/server/audio/AudioService;)Z
+HSPLcom/android/server/audio/AudioService;->access$2700(Lcom/android/server/audio/AudioService;)Z
+HSPLcom/android/server/audio/AudioService;->access$2800(Lcom/android/server/audio/AudioService;)Landroid/content/ContentResolver;
+HSPLcom/android/server/audio/AudioService;->access$3000(Lcom/android/server/audio/AudioService;)[Lcom/android/server/audio/AudioService$VolumeStreamState;
+HSPLcom/android/server/audio/AudioService;->access$3100(Lcom/android/server/audio/AudioService;III)I
+HSPLcom/android/server/audio/AudioService;->access$3700(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/SoundEffectsHelper;
+HSPLcom/android/server/audio/AudioService;->access$3800(Lcom/android/server/audio/AudioService;)Z
PLcom/android/server/audio/AudioService;->access$4200(Lcom/android/server/audio/AudioService;ZLjava/lang/String;)V
-PLcom/android/server/audio/AudioService;->access$4700(Lcom/android/server/audio/AudioService;)V
+HSPLcom/android/server/audio/AudioService;->access$4700(Lcom/android/server/audio/AudioService;)V
PLcom/android/server/audio/AudioService;->access$5200(Lcom/android/server/audio/AudioService;)I
-PLcom/android/server/audio/AudioService;->access$5202(Lcom/android/server/audio/AudioService;I)I
-PLcom/android/server/audio/AudioService;->access$5302(Lcom/android/server/audio/AudioService;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/audio/AudioService;->access$5400(Lcom/android/server/audio/AudioService;)Z
+HSPLcom/android/server/audio/AudioService;->access$5202(Lcom/android/server/audio/AudioService;I)I
+HSPLcom/android/server/audio/AudioService;->access$5302(Lcom/android/server/audio/AudioService;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/audio/AudioService;->access$5400(Lcom/android/server/audio/AudioService;)Z
+PLcom/android/server/audio/AudioService;->access$5500(Lcom/android/server/audio/AudioService;IZ)V
PLcom/android/server/audio/AudioService;->access$5600(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;)V
PLcom/android/server/audio/AudioService;->access$5700(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;)V
PLcom/android/server/audio/AudioService;->access$5800(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;)V
PLcom/android/server/audio/AudioService;->access$5900(Lcom/android/server/audio/AudioService;)Z
PLcom/android/server/audio/AudioService;->access$5902(Lcom/android/server/audio/AudioService;Z)Z
-PLcom/android/server/audio/AudioService;->access$600(Lcom/android/server/audio/AudioService;)Landroid/content/Context;
+HSPLcom/android/server/audio/AudioService;->access$600(Lcom/android/server/audio/AudioService;)Landroid/content/Context;
PLcom/android/server/audio/AudioService;->access$6000(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;Z)V
PLcom/android/server/audio/AudioService;->access$6100(Lcom/android/server/audio/AudioService;Landroid/content/ContentResolver;)V
PLcom/android/server/audio/AudioService;->access$6400(Lcom/android/server/audio/AudioService;)Z
@@ -4977,349 +5753,644 @@ PLcom/android/server/audio/AudioService;->access$6600(Lcom/android/server/audio/
PLcom/android/server/audio/AudioService;->access$6602(Lcom/android/server/audio/AudioService;Z)Z
PLcom/android/server/audio/AudioService;->access$6700(Lcom/android/server/audio/AudioService;)Lcom/android/server/audio/MediaFocusControl;
PLcom/android/server/audio/AudioService;->access$6800(Lcom/android/server/audio/AudioService;Z)V
-PLcom/android/server/audio/AudioService;->access$700(Lcom/android/server/audio/AudioService;Z)V
-PLcom/android/server/audio/AudioService;->access$7900(Lcom/android/server/audio/AudioService;)Landroid/media/AudioManagerInternal$RingerModeDelegate;
-PLcom/android/server/audio/AudioService;->access$7902(Lcom/android/server/audio/AudioService;Landroid/media/AudioManagerInternal$RingerModeDelegate;)Landroid/media/AudioManagerInternal$RingerModeDelegate;
+HSPLcom/android/server/audio/AudioService;->access$700(Lcom/android/server/audio/AudioService;Z)V
+HSPLcom/android/server/audio/AudioService;->access$7900(Lcom/android/server/audio/AudioService;)Landroid/media/AudioManagerInternal$RingerModeDelegate;
+HSPLcom/android/server/audio/AudioService;->access$7902(Lcom/android/server/audio/AudioService;Landroid/media/AudioManagerInternal$RingerModeDelegate;)Landroid/media/AudioManagerInternal$RingerModeDelegate;
PLcom/android/server/audio/AudioService;->access$8200(Lcom/android/server/audio/AudioService;)Ljava/lang/Object;
PLcom/android/server/audio/AudioService;->access$8300(Lcom/android/server/audio/AudioService;)[I
PLcom/android/server/audio/AudioService;->access$8302(Lcom/android/server/audio/AudioService;[I)[I
+PLcom/android/server/audio/AudioService;->access$8408(Lcom/android/server/audio/AudioService;)I
PLcom/android/server/audio/AudioService;->adjustStreamVolume(IIILjava/lang/String;Ljava/lang/String;I)V
PLcom/android/server/audio/AudioService;->adjustSuggestedStreamVolume(IIILjava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/audio/AudioService;->broadcastMasterMuteStatus(Z)V
-PLcom/android/server/audio/AudioService;->broadcastRingerMode(Ljava/lang/String;I)V
-PLcom/android/server/audio/AudioService;->broadcastVibrateSetting(I)V
-PLcom/android/server/audio/AudioService;->checkAllAliasStreamVolumes()V
-PLcom/android/server/audio/AudioService;->checkAllFixedVolumeDevices()V
+PLcom/android/server/audio/AudioService;->avrcpSupportsAbsoluteVolume(Ljava/lang/String;Z)V
+HSPLcom/android/server/audio/AudioService;->broadcastMasterMuteStatus(Z)V
+HSPLcom/android/server/audio/AudioService;->broadcastRingerMode(Ljava/lang/String;I)V
+HSPLcom/android/server/audio/AudioService;->broadcastVibrateSetting(I)V
+PLcom/android/server/audio/AudioService;->callerHasPermission(Ljava/lang/String;)Z
+HSPLcom/android/server/audio/AudioService;->checkAllAliasStreamVolumes()V
+HSPLcom/android/server/audio/AudioService;->checkAllFixedVolumeDevices()V
PLcom/android/server/audio/AudioService;->checkMonitorAudioServerStatePermission()V
-PLcom/android/server/audio/AudioService;->checkMuteAffectedStreams()V
+HSPLcom/android/server/audio/AudioService;->checkMuteAffectedStreams()V
PLcom/android/server/audio/AudioService;->checkSafeMediaVolume(III)Z
-PLcom/android/server/audio/AudioService;->createAudioSystemThread()V
-PLcom/android/server/audio/AudioService;->createStreamStates()V
+HSPLcom/android/server/audio/AudioService;->createAudioSystemThread()V
+HSPLcom/android/server/audio/AudioService;->createStreamStates()V
+PLcom/android/server/audio/AudioService;->discardRmtSbmxFullVolDeathHandlerFor(Landroid/os/IBinder;)Z
+PLcom/android/server/audio/AudioService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)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;->dumpRingerMode(Ljava/io/PrintWriter;)V
+PLcom/android/server/audio/AudioService;->dumpRingerModeStreams(Ljava/io/PrintWriter;Ljava/lang/String;I)V
+PLcom/android/server/audio/AudioService;->dumpStreamStates(Ljava/io/PrintWriter;)V
PLcom/android/server/audio/AudioService;->enforceSafeMediaVolume(Ljava/lang/String;)V
-PLcom/android/server/audio/AudioService;->enforceVolumeController(Ljava/lang/String;)V
+HSPLcom/android/server/audio/AudioService;->enforceVolumeController(Ljava/lang/String;)V
PLcom/android/server/audio/AudioService;->ensureValidDirection(I)V
-PLcom/android/server/audio/AudioService;->ensureValidRingerMode(I)V
-PLcom/android/server/audio/AudioService;->ensureValidStreamType(I)V
+HSPLcom/android/server/audio/AudioService;->ensureValidRingerMode(I)V
+HSPLcom/android/server/audio/AudioService;->ensureValidStreamType(I)V
PLcom/android/server/audio/AudioService;->forceFocusDuckingForAccessibility(Landroid/media/AudioAttributes;II)Z
+PLcom/android/server/audio/AudioService;->forceRemoteSubmixFullVolume(ZLandroid/os/IBinder;)V
PLcom/android/server/audio/AudioService;->forceVolumeControlStream(ILandroid/os/IBinder;)V
+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;->getAudioHalPids()Ljava/util/Set;
+HSPLcom/android/server/audio/AudioService;->getAudioHalPids()Ljava/util/Set;
PLcom/android/server/audio/AudioService;->getCurrentAudioFocus()I
-PLcom/android/server/audio/AudioService;->getCurrentUserId()I
-PLcom/android/server/audio/AudioService;->getDeviceForStream(I)I
-PLcom/android/server/audio/AudioService;->getDevicesForStream(I)I
-PLcom/android/server/audio/AudioService;->getDevicesForStream(IZ)I
+HSPLcom/android/server/audio/AudioService;->getCurrentUserId()I
+HSPLcom/android/server/audio/AudioService;->getDeviceForStream(I)I
+HSPLcom/android/server/audio/AudioService;->getDevicesForStream(I)I
+HSPLcom/android/server/audio/AudioService;->getDevicesForStream(IZ)I
PLcom/android/server/audio/AudioService;->getFocusRampTimeMs(ILandroid/media/AudioAttributes;)I
-PLcom/android/server/audio/AudioService;->getIndexRange(I)I
+HSPLcom/android/server/audio/AudioService;->getIndexRange(I)I
PLcom/android/server/audio/AudioService;->getLastAudibleStreamVolume(I)I
-PLcom/android/server/audio/AudioService;->getMode()I
+HSPLcom/android/server/audio/AudioService;->getMode()I
PLcom/android/server/audio/AudioService;->getNewRingerMode(III)I
-PLcom/android/server/audio/AudioService;->getRingerModeExternal()I
-PLcom/android/server/audio/AudioService;->getRingerModeInternal()I
+HSPLcom/android/server/audio/AudioService;->getRingerModeExternal()I
+HSPLcom/android/server/audio/AudioService;->getRingerModeInternal()I
PLcom/android/server/audio/AudioService;->getRingtonePlayer()Landroid/media/IRingtonePlayer;
-PLcom/android/server/audio/AudioService;->getSafeUsbMediaVolumeIndex()I
+HSPLcom/android/server/audio/AudioService;->getSafeUsbMediaVolumeIndex()I
PLcom/android/server/audio/AudioService;->getStreamMaxVolume(I)I
PLcom/android/server/audio/AudioService;->getStreamMinVolume(I)I
PLcom/android/server/audio/AudioService;->getStreamVolume(I)I
PLcom/android/server/audio/AudioService;->getUiSoundsStreamType()I
PLcom/android/server/audio/AudioService;->getVibrateSetting(I)I
+PLcom/android/server/audio/AudioService;->handleBluetoothA2dpDeviceConfigChange(Landroid/bluetooth/BluetoothDevice;)V
PLcom/android/server/audio/AudioService;->handleConfigurationChanged(Landroid/content/Context;)V
-PLcom/android/server/audio/AudioService;->initA11yMonitoring()V
+PLcom/android/server/audio/AudioService;->hasMediaDynamicPolicy()Z
+HSPLcom/android/server/audio/AudioService;->initA11yMonitoring()V
PLcom/android/server/audio/AudioService;->isAndroidNPlus(Ljava/lang/String;)Z
-PLcom/android/server/audio/AudioService;->isBluetoothScoOn()Z
+PLcom/android/server/audio/AudioService;->isAudioServerRunning()Z
+PLcom/android/server/audio/AudioService;->isBluetoothA2dpOn()Z
+HSPLcom/android/server/audio/AudioService;->isBluetoothScoOn()Z
PLcom/android/server/audio/AudioService;->isCameraSoundForced()Z
-PLcom/android/server/audio/AudioService;->isInCommunication()Z
-PLcom/android/server/audio/AudioService;->isMicrophoneMuted()Z
-PLcom/android/server/audio/AudioService;->isPlatformTelevision()Z
+HSPLcom/android/server/audio/AudioService;->isInCommunication()Z
+HSPLcom/android/server/audio/AudioService;->isMicrophoneMuted()Z
+HSPLcom/android/server/audio/AudioService;->isPlatformTelevision()Z
+PLcom/android/server/audio/AudioService;->isPolicyRegisterAllowed(Landroid/media/audiopolicy/AudioPolicyConfig;ZZLandroid/media/projection/IMediaProjection;)Z
+PLcom/android/server/audio/AudioService;->isSpeakerphoneOn()Z
PLcom/android/server/audio/AudioService;->isStreamAffectedByMute(I)Z
+HSPLcom/android/server/audio/AudioService;->isStreamAffectedByRingerMode(I)Z
PLcom/android/server/audio/AudioService;->isStreamMute(I)Z
-PLcom/android/server/audio/AudioService;->isStreamMutedByRingerOrZenMode(I)Z
-PLcom/android/server/audio/AudioService;->isValidRingerMode(I)Z
+HSPLcom/android/server/audio/AudioService;->isStreamMutedByRingerOrZenMode(I)Z
+HSPLcom/android/server/audio/AudioService;->isSystem(I)Z
+HSPLcom/android/server/audio/AudioService;->isValidRingerMode(I)Z
PLcom/android/server/audio/AudioService;->maybeSendSystemAudioStatusCommand(Z)V
-PLcom/android/server/audio/AudioService;->muteRingerModeStreams()V
+HSPLcom/android/server/audio/AudioService;->muteRingerModeStreams()V
PLcom/android/server/audio/AudioService;->notifyVolumeControllerVisible(Landroid/media/IVolumeController;Z)V
-PLcom/android/server/audio/AudioService;->observeDevicesForStreams(I)V
+HSPLcom/android/server/audio/AudioService;->observeDevicesForStreams(I)V
PLcom/android/server/audio/AudioService;->onAccessibilityServicesStateChanged(Landroid/view/accessibility/AccessibilityManager;)V
+PLcom/android/server/audio/AudioService;->onAccessoryPlugMediaUnmute(I)V
PLcom/android/server/audio/AudioService;->onConfigureSafeVolume(ZLjava/lang/String;)V
-PLcom/android/server/audio/AudioService;->onIndicateSystemReady()V
+HSPLcom/android/server/audio/AudioService;->onIndicateSystemReady()V
PLcom/android/server/audio/AudioService;->onSetStreamVolume(IIIILjava/lang/String;)V
-PLcom/android/server/audio/AudioService;->onSystemReady()V
-PLcom/android/server/audio/AudioService;->onUpdateRingerModeServiceInt()V
+PLcom/android/server/audio/AudioService;->onSetVolumeIndexOnDevice(Lcom/android/server/audio/AudioService$DeviceVolumeUpdate;)V
+HSPLcom/android/server/audio/AudioService;->onSystemReady()V
+HSPLcom/android/server/audio/AudioService;->onUpdateRingerModeServiceInt()V
+PLcom/android/server/audio/AudioService;->playSoundEffect(I)V
+PLcom/android/server/audio/AudioService;->playSoundEffectVolume(IF)V
PLcom/android/server/audio/AudioService;->playerAttributes(ILandroid/media/AudioAttributes;)V
PLcom/android/server/audio/AudioService;->playerEvent(II)V
-PLcom/android/server/audio/AudioService;->postUpdateRingerModeServiceInt()V
-PLcom/android/server/audio/AudioService;->readAndSetLowRamDevice()V
+HSPLcom/android/server/audio/AudioService;->postUpdateRingerModeServiceInt()V
+HSPLcom/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
-PLcom/android/server/audio/AudioService;->readPersistedSettings()V
-PLcom/android/server/audio/AudioService;->readUserRestrictions()V
+HSPLcom/android/server/audio/AudioService;->readCameraSoundForced()Z
+HSPLcom/android/server/audio/AudioService;->readDockAudioSettings(Landroid/content/ContentResolver;)V
+HSPLcom/android/server/audio/AudioService;->readPersistedSettings()V
+HSPLcom/android/server/audio/AudioService;->readUserRestrictions()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;)Ljava/lang/String;
PLcom/android/server/audio/AudioService;->registerAudioServerStateDispatcher(Landroid/media/IAudioServerStateDispatcher;)V
-PLcom/android/server/audio/AudioService;->registerPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
+HSPLcom/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;->requestAudioFocus(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;ILandroid/media/audiopolicy/IAudioPolicyCallback;I)I
-PLcom/android/server/audio/AudioService;->rescaleIndex(III)I
+HSPLcom/android/server/audio/AudioService;->rescaleIndex(III)I
PLcom/android/server/audio/AudioService;->rescaleStep(III)I
PLcom/android/server/audio/AudioService;->safeMediaVolumeIndex(I)I
-PLcom/android/server/audio/AudioService;->scheduleLoadSoundEffects()V
-PLcom/android/server/audio/AudioService;->sendBroadcastToAll(Landroid/content/Intent;)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
-PLcom/android/server/audio/AudioService;->sendMsg(Landroid/os/Handler;IIIILjava/lang/Object;I)V
-PLcom/android/server/audio/AudioService;->sendStickyBroadcastToAll(Landroid/content/Intent;)V
-PLcom/android/server/audio/AudioService;->sendVolumeUpdate(IIIII)V
+HSPLcom/android/server/audio/AudioService;->scheduleLoadSoundEffects()V
+HSPLcom/android/server/audio/AudioService;->sendBroadcastToAll(Landroid/content/Intent;)V
+HSPLcom/android/server/audio/AudioService;->sendEnabledSurroundFormats(Landroid/content/ContentResolver;Z)V
+HSPLcom/android/server/audio/AudioService;->sendEncodedSurroundMode(ILjava/lang/String;)V
+HSPLcom/android/server/audio/AudioService;->sendEncodedSurroundMode(Landroid/content/ContentResolver;Ljava/lang/String;)V
+HSPLcom/android/server/audio/AudioService;->sendMsg(Landroid/os/Handler;IIIILjava/lang/Object;I)V
+HSPLcom/android/server/audio/AudioService;->sendStickyBroadcastToAll(Landroid/content/Intent;)V
+HPLcom/android/server/audio/AudioService;->sendVolumeUpdate(IIIII)V
+PLcom/android/server/audio/AudioService;->setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(Landroid/bluetooth/BluetoothDevice;IIZI)V
+PLcom/android/server/audio/AudioService;->setBluetoothA2dpOn(Z)V
PLcom/android/server/audio/AudioService;->setDeviceVolume(Lcom/android/server/audio/AudioService$VolumeStreamState;I)V
-PLcom/android/server/audio/AudioService;->setMicMuteFromSwitchInput()V
-PLcom/android/server/audio/AudioService;->setMicrophoneMuteNoCallerCheck(I)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
+HSPLcom/android/server/audio/AudioService;->setMicMuteFromSwitchInput()V
+HSPLcom/android/server/audio/AudioService;->setMicrophoneMuteNoCallerCheck(I)V
+HSPLcom/android/server/audio/AudioService;->setRingerMode(ILjava/lang/String;Z)V
+HSPLcom/android/server/audio/AudioService;->setRingerModeExt(I)V
+HSPLcom/android/server/audio/AudioService;->setRingerModeInt(IZ)V
+HSPLcom/android/server/audio/AudioService;->setRingerModeInternal(ILjava/lang/String;)V
PLcom/android/server/audio/AudioService;->setRingtonePlayer(Landroid/media/IRingtonePlayer;)V
PLcom/android/server/audio/AudioService;->setStreamVolume(IIILjava/lang/String;)V
PLcom/android/server/audio/AudioService;->setStreamVolume(IIILjava/lang/String;Ljava/lang/String;I)V
PLcom/android/server/audio/AudioService;->setStreamVolumeInt(IIIZLjava/lang/String;)V
-PLcom/android/server/audio/AudioService;->setSystemAudioMute(Z)V
+HSPLcom/android/server/audio/AudioService;->setSystemAudioMute(Z)V
PLcom/android/server/audio/AudioService;->setSystemAudioVolume(IIII)V
PLcom/android/server/audio/AudioService;->setVolumeController(Landroid/media/IVolumeController;)V
PLcom/android/server/audio/AudioService;->setVolumePolicy(Landroid/media/VolumePolicy;)V
-PLcom/android/server/audio/AudioService;->shouldZenMuteStream(I)Z
-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
-PLcom/android/server/audio/AudioService;->updateA11yVolumeAlias(Z)V
-PLcom/android/server/audio/AudioService;->updateAssistantUId(Z)V
-PLcom/android/server/audio/AudioService;->updateAudioHalPids()V
-PLcom/android/server/audio/AudioService;->updateDefaultStreamOverrideDelay(Z)V
-PLcom/android/server/audio/AudioService;->updateDefaultVolumes()V
+HSPLcom/android/server/audio/AudioService;->shouldZenMuteStream(I)Z
+HSPLcom/android/server/audio/AudioService;->startWatchingRoutes(Landroid/media/IAudioRoutesObserver;)Landroid/media/AudioRoutesInfo;
+HSPLcom/android/server/audio/AudioService;->systemReady()V
+HSPLcom/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;->unregisterAudioPolicyAsync(Landroid/media/audiopolicy/IAudioPolicyCallback;)V
+PLcom/android/server/audio/AudioService;->unregisterAudioPolicyInt(Landroid/media/audiopolicy/IAudioPolicyCallback;)V
+PLcom/android/server/audio/AudioService;->unregisterPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
+PLcom/android/server/audio/AudioService;->unregisterRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V
+HSPLcom/android/server/audio/AudioService;->updateA11yVolumeAlias(Z)V
+HSPLcom/android/server/audio/AudioService;->updateAssistantUId(Z)V
+HSPLcom/android/server/audio/AudioService;->updateAudioHalPids()V
+HSPLcom/android/server/audio/AudioService;->updateDefaultStreamOverrideDelay(Z)V
+HSPLcom/android/server/audio/AudioService;->updateDefaultVolumes()V
PLcom/android/server/audio/AudioService;->updateFlagsForTvPlatform(I)I
-PLcom/android/server/audio/AudioService;->updateMasterBalance(Landroid/content/ContentResolver;)V
-PLcom/android/server/audio/AudioService;->updateMasterMono(Landroid/content/ContentResolver;)V
-PLcom/android/server/audio/AudioService;->updateRingerAndZenModeAffectedStreams()Z
-PLcom/android/server/audio/AudioService;->updateRttEanbled(Landroid/content/ContentResolver;)V
-PLcom/android/server/audio/AudioService;->updateStreamVolumeAlias(ZLjava/lang/String;)V
-PLcom/android/server/audio/AudioService;->updateZenModeAffectedStreams()Z
+HSPLcom/android/server/audio/AudioService;->updateMasterBalance(Landroid/content/ContentResolver;)V
+HSPLcom/android/server/audio/AudioService;->updateMasterMono(Landroid/content/ContentResolver;)V
+HSPLcom/android/server/audio/AudioService;->updateRingerAndZenModeAffectedStreams()Z
+HSPLcom/android/server/audio/AudioService;->updateRttEanbled(Landroid/content/ContentResolver;)V
+HSPLcom/android/server/audio/AudioService;->updateStreamVolumeAlias(ZLjava/lang/String;)V
+HSPLcom/android/server/audio/AudioService;->updateZenModeAffectedStreams()Z
PLcom/android/server/audio/AudioService;->volumeAdjustmentAllowedByDnd(II)Z
-PLcom/android/server/audio/AudioService;->waitForAudioHandlerCreation()V
-PLcom/android/server/audio/AudioServiceEvents$ForceUseEvent;-><init>(IILjava/lang/String;)V
+HSPLcom/android/server/audio/AudioService;->waitForAudioHandlerCreation()V
+HSPLcom/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$VolumeEvent;-><init>(II)V
PLcom/android/server/audio/AudioServiceEvents$VolumeEvent;-><init>(IIIILjava/lang/String;)V
-PLcom/android/server/audio/BtHelper$1;-><init>(Lcom/android/server/audio/BtHelper;)V
+PLcom/android/server/audio/AudioServiceEvents$VolumeEvent;->eventToString()Ljava/lang/String;
+HSPLcom/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;-><init>(Lcom/android/server/audio/AudioDeviceBroker;)V
+PLcom/android/server/audio/BtHelper$1;->onServiceDisconnected(I)V
+PLcom/android/server/audio/BtHelper$BluetoothA2dpDeviceInfo;-><init>(Landroid/bluetooth/BluetoothDevice;)V
+PLcom/android/server/audio/BtHelper$BluetoothA2dpDeviceInfo;-><init>(Landroid/bluetooth/BluetoothDevice;II)V
+PLcom/android/server/audio/BtHelper$BluetoothA2dpDeviceInfo;->getBtDevice()Landroid/bluetooth/BluetoothDevice;
+PLcom/android/server/audio/BtHelper$BluetoothA2dpDeviceInfo;->getCodec()I
+PLcom/android/server/audio/BtHelper$BluetoothA2dpDeviceInfo;->getVolume()I
+HSPLcom/android/server/audio/BtHelper;-><init>(Lcom/android/server/audio/AudioDeviceBroker;)V
+PLcom/android/server/audio/BtHelper;->a2dpDeviceEventToString(I)Ljava/lang/String;
PLcom/android/server/audio/BtHelper;->access$000(Lcom/android/server/audio/BtHelper;)Lcom/android/server/audio/AudioDeviceBroker;
-PLcom/android/server/audio/BtHelper;->broadcastScoConnectionState(I)V
+HSPLcom/android/server/audio/BtHelper;->broadcastScoConnectionState(I)V
PLcom/android/server/audio/BtHelper;->checkScoAudioState()V
-PLcom/android/server/audio/BtHelper;->clearAllScoClients(IZ)V
-PLcom/android/server/audio/BtHelper;->getBluetoothHeadset()Z
-PLcom/android/server/audio/BtHelper;->isAvrcpAbsoluteVolumeSupported()Z
+HSPLcom/android/server/audio/BtHelper;->clearAllScoClients(IZ)V
+PLcom/android/server/audio/BtHelper;->disconnectAllBluetoothProfiles()V
+PLcom/android/server/audio/BtHelper;->disconnectHeadset()V
+PLcom/android/server/audio/BtHelper;->getA2dpCodec(Landroid/bluetooth/BluetoothDevice;)I
+HSPLcom/android/server/audio/BtHelper;->getBluetoothHeadset()Z
+PLcom/android/server/audio/BtHelper;->handleBtScoActiveDeviceChange(Landroid/bluetooth/BluetoothDevice;Z)Z
+HSPLcom/android/server/audio/BtHelper;->isAvrcpAbsoluteVolumeSupported()Z
PLcom/android/server/audio/BtHelper;->onA2dpProfileConnected(Landroid/bluetooth/BluetoothA2dp;)V
-PLcom/android/server/audio/BtHelper;->onBroadcastScoConnectionState(I)V
+HSPLcom/android/server/audio/BtHelper;->onBroadcastScoConnectionState(I)V
PLcom/android/server/audio/BtHelper;->onHeadsetProfileConnected(Landroid/bluetooth/BluetoothHeadset;)V
PLcom/android/server/audio/BtHelper;->onHearingAidProfileConnected(Landroid/bluetooth/BluetoothHearingAid;)V
-PLcom/android/server/audio/BtHelper;->onSystemReady()V
-PLcom/android/server/audio/BtHelper;->resetBluetoothSco()V
-PLcom/android/server/audio/BtHelper;->sendStickyBroadcastToAll(Landroid/content/Intent;)V
+HSPLcom/android/server/audio/BtHelper;->onSystemReady()V
+PLcom/android/server/audio/BtHelper;->receiveBtEvent(Landroid/content/Intent;)V
+HSPLcom/android/server/audio/BtHelper;->resetBluetoothSco()V
+HSPLcom/android/server/audio/BtHelper;->sendStickyBroadcastToAll(Landroid/content/Intent;)V
+PLcom/android/server/audio/BtHelper;->setAvrcpAbsoluteVolumeIndex(I)V
+PLcom/android/server/audio/BtHelper;->setAvrcpAbsoluteVolumeSupported(Z)V
PLcom/android/server/audio/BtHelper;->setBtScoActiveDevice(Landroid/bluetooth/BluetoothDevice;)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;->finalize()V
+PLcom/android/server/audio/FocusRequester;->focusLossForGainRequest(I)I
+PLcom/android/server/audio/FocusRequester;->frameworkHandleFocusLoss(ILcom/android/server/audio/FocusRequester;Z)Z
PLcom/android/server/audio/FocusRequester;->getClientUid()I
+PLcom/android/server/audio/FocusRequester;->getGainRequest()I
+PLcom/android/server/audio/FocusRequester;->getGrantFlags()I
PLcom/android/server/audio/FocusRequester;->handleFocusGainFromRequest(I)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;->isLockedFocusOwner()Z
PLcom/android/server/audio/FocusRequester;->release()V
PLcom/android/server/audio/FocusRequester;->toAudioFocusInfo()Landroid/media/AudioFocusInfo;
PLcom/android/server/audio/MediaFocusControl$AudioFocusDeathHandler;-><init>(Lcom/android/server/audio/MediaFocusControl;Landroid/os/IBinder;)V
-PLcom/android/server/audio/MediaFocusControl;-><clinit>()V
-PLcom/android/server/audio/MediaFocusControl;-><init>(Landroid/content/Context;Lcom/android/server/audio/PlayerFocusEnforcer;)V
+HSPLcom/android/server/audio/MediaFocusControl;-><clinit>()V
+HSPLcom/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;->discardAudioFocusOwner()V
+PLcom/android/server/audio/MediaFocusControl;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/audio/MediaFocusControl;->dumpFocusStack(Ljava/io/PrintWriter;)V
PLcom/android/server/audio/MediaFocusControl;->getCurrentAudioFocus()I
-PLcom/android/server/audio/MediaFocusControl;->getFocusRampTimeMs(ILandroid/media/AudioAttributes;)I
+HSPLcom/android/server/audio/MediaFocusControl;->getFocusRampTimeMs(ILandroid/media/AudioAttributes;)I
+PLcom/android/server/audio/MediaFocusControl;->hasAudioFocusUsers()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;->removeFocusStackEntry(Ljava/lang/String;ZZ)V
PLcom/android/server/audio/MediaFocusControl;->requestAudioFocus(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;IIZ)I
-PLcom/android/server/audio/MediaFocusControl;->unduckPlayers(Lcom/android/server/audio/FocusRequester;)V
PLcom/android/server/audio/PlaybackActivityMonitor$AudioAttrEvent;-><init>(ILandroid/media/AudioAttributes;)V
-PLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager;-><init>()V
-PLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager;-><init>(Lcom/android/server/audio/PlaybackActivityMonitor$1;)V
+PLcom/android/server/audio/PlaybackActivityMonitor$AudioAttrEvent;->eventToString()Ljava/lang/String;
+HSPLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager;-><init>()V
+HSPLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager;-><init>(Lcom/android/server/audio/PlaybackActivityMonitor$1;)V
PLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager;->checkDuck(Landroid/media/AudioPlaybackConfiguration;)V
+PLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager;->dump(Ljava/io/PrintWriter;)V
PLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager;->removeReleased(Landroid/media/AudioPlaybackConfiguration;)V
PLcom/android/server/audio/PlaybackActivityMonitor$DuckingManager;->unduckUid(ILjava/util/HashMap;)V
-PLcom/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$PlayMonitorClient;->init()Z
-PLcom/android/server/audio/PlaybackActivityMonitor$PlayerEvent;-><init>(II)V
-PLcom/android/server/audio/PlaybackActivityMonitor;-><clinit>()V
-PLcom/android/server/audio/PlaybackActivityMonitor;-><init>(Landroid/content/Context;I)V
+HSPLcom/android/server/audio/PlaybackActivityMonitor$NewPlayerEvent;-><init>(Landroid/media/AudioPlaybackConfiguration;)V
+PLcom/android/server/audio/PlaybackActivityMonitor$NewPlayerEvent;->eventToString()Ljava/lang/String;
+HSPLcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;-><init>(Landroid/media/IPlaybackConfigDispatcher;Z)V
+PLcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;->binderDied()V
+HSPLcom/android/server/audio/PlaybackActivityMonitor$PlayMonitorClient;->init()Z
+HPLcom/android/server/audio/PlaybackActivityMonitor$PlayerEvent;-><init>(II)V
+PLcom/android/server/audio/PlaybackActivityMonitor$PlayerEvent;->eventToString()Ljava/lang/String;
+HSPLcom/android/server/audio/PlaybackActivityMonitor;-><clinit>()V
+HSPLcom/android/server/audio/PlaybackActivityMonitor;-><init>(Landroid/content/Context;I)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;->getActivePlaybackConfigurations(Z)Ljava/util/List;
PLcom/android/server/audio/PlaybackActivityMonitor;->playerAttributes(ILandroid/media/AudioAttributes;I)V
PLcom/android/server/audio/PlaybackActivityMonitor;->playerDeath(I)V
PLcom/android/server/audio/PlaybackActivityMonitor;->playerEvent(III)V
-PLcom/android/server/audio/PlaybackActivityMonitor;->registerPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;Z)V
+HSPLcom/android/server/audio/PlaybackActivityMonitor;->registerPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;Z)V
PLcom/android/server/audio/PlaybackActivityMonitor;->releasePlayer(II)V
-PLcom/android/server/audio/PlaybackActivityMonitor;->trackPlayer(Landroid/media/PlayerBase$PlayerIdCard;)I
+HSPLcom/android/server/audio/PlaybackActivityMonitor;->trackPlayer(Landroid/media/PlayerBase$PlayerIdCard;)I
PLcom/android/server/audio/PlaybackActivityMonitor;->unduckPlayers(Lcom/android/server/audio/FocusRequester;)V
-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/RotationHelper$AudioDisplayListener;-><init>()V
-PLcom/android/server/audio/RotationHelper$AudioDisplayListener;->onDisplayChanged(I)V
-PLcom/android/server/audio/RotationHelper;-><clinit>()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;->binderDied()V
+PLcom/android/server/audio/RecordingActivityMonitor$RecMonitorClient;->init()Z
+PLcom/android/server/audio/RecordingActivityMonitor$RecMonitorClient;->release()V
+PLcom/android/server/audio/RecordingActivityMonitor$RecorderDeathHandler;-><init>(ILandroid/os/IBinder;)V
+PLcom/android/server/audio/RecordingActivityMonitor$RecorderDeathHandler;->init()Z
+PLcom/android/server/audio/RecordingActivityMonitor$RecorderDeathHandler;->release()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$RecordingEvent;->recordEventToString(I)Ljava/lang/String;
+PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;-><init>(ILcom/android/server/audio/RecordingActivityMonitor$RecorderDeathHandler;)V
+PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->getConfig()Landroid/media/AudioRecordingConfiguration;
+PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->getRiid()I
+PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->hasDeathHandler()Z
+PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->isActiveConfiguration()Z
+PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->release()V
+PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->setActive(Z)Z
+PLcom/android/server/audio/RecordingActivityMonitor$RecordingState;->setConfig(Landroid/media/AudioRecordingConfiguration;)Z
+HSPLcom/android/server/audio/RecordingActivityMonitor;-><clinit>()V
+HSPLcom/android/server/audio/RecordingActivityMonitor;-><init>(Landroid/content/Context;)V
+PLcom/android/server/audio/RecordingActivityMonitor;->anonymizeForPublicConsumption(Ljava/util/List;)Ljava/util/ArrayList;
+PLcom/android/server/audio/RecordingActivityMonitor;->createRecordingConfiguration(III[IIZI[Landroid/media/audiofx/AudioEffect$Descriptor;[Landroid/media/audiofx/AudioEffect$Descriptor;)Landroid/media/AudioRecordingConfiguration;
+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;->findStateByRiid(I)I
+PLcom/android/server/audio/RecordingActivityMonitor;->getActiveRecordingConfigurations(Z)Ljava/util/List;
+HSPLcom/android/server/audio/RecordingActivityMonitor;->initMonitor()V
+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;->recorderEvent(II)V
+PLcom/android/server/audio/RecordingActivityMonitor;->registerRecordingCallback(Landroid/media/IRecordingConfigDispatcher;Z)V
+PLcom/android/server/audio/RecordingActivityMonitor;->releaseRecorder(I)V
+PLcom/android/server/audio/RecordingActivityMonitor;->trackRecorder(Landroid/os/IBinder;)I
+PLcom/android/server/audio/RecordingActivityMonitor;->unregisterRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V
+PLcom/android/server/audio/RecordingActivityMonitor;->updateSnapshot(IILandroid/media/AudioRecordingConfiguration;)Ljava/util/List;
+HSPLcom/android/server/audio/RotationHelper$AudioDisplayListener;-><init>()V
+HSPLcom/android/server/audio/RotationHelper$AudioDisplayListener;->onDisplayChanged(I)V
+HSPLcom/android/server/audio/RotationHelper;-><clinit>()V
PLcom/android/server/audio/RotationHelper;->disable()V
-PLcom/android/server/audio/RotationHelper;->enable()V
-PLcom/android/server/audio/RotationHelper;->init(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/audio/RotationHelper;->updateOrientation()V
-PLcom/android/server/audio/SoundEffectsHelper$1;-><init>(Lcom/android/server/audio/SoundEffectsHelper;)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$1;)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$SoundPoolLoader;->onLoadComplete(Landroid/media/SoundPool;II)V
-PLcom/android/server/audio/SoundEffectsHelper;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/audio/RotationHelper;->enable()V
+HSPLcom/android/server/audio/RotationHelper;->init(Landroid/content/Context;Landroid/os/Handler;)V
+PLcom/android/server/audio/RotationHelper;->publishRotation(I)V
+HSPLcom/android/server/audio/RotationHelper;->updateOrientation()V
+HSPLcom/android/server/audio/SoundEffectsHelper$1;-><init>(Lcom/android/server/audio/SoundEffectsHelper;)V
+HSPLcom/android/server/audio/SoundEffectsHelper$1;->run(Z)V
+HSPLcom/android/server/audio/SoundEffectsHelper$Resource;-><init>(Ljava/lang/String;)V
+PLcom/android/server/audio/SoundEffectsHelper$SfxHandler$1;-><init>(Lcom/android/server/audio/SoundEffectsHelper$SfxHandler;Landroid/os/Message;)V
+PLcom/android/server/audio/SoundEffectsHelper$SfxHandler$1;->run(Z)V
+HSPLcom/android/server/audio/SoundEffectsHelper$SfxHandler;-><init>(Lcom/android/server/audio/SoundEffectsHelper;)V
+HSPLcom/android/server/audio/SoundEffectsHelper$SfxHandler;-><init>(Lcom/android/server/audio/SoundEffectsHelper;Lcom/android/server/audio/SoundEffectsHelper$1;)V
+HSPLcom/android/server/audio/SoundEffectsHelper$SfxHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/audio/SoundEffectsHelper$SfxWorker;-><init>(Lcom/android/server/audio/SoundEffectsHelper;)V
+HSPLcom/android/server/audio/SoundEffectsHelper$SfxWorker;->run()V
+HSPLcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;-><init>(Lcom/android/server/audio/SoundEffectsHelper;)V
+HSPLcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;->addHandler(Lcom/android/server/audio/SoundEffectsHelper$OnEffectsLoadCompleteHandler;)V
+HSPLcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;->onComplete(Z)V
+HSPLcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;->onLoadComplete(Landroid/media/SoundPool;II)V
+HSPLcom/android/server/audio/SoundEffectsHelper;-><init>(Landroid/content/Context;)V
PLcom/android/server/audio/SoundEffectsHelper;->access$000(Lcom/android/server/audio/SoundEffectsHelper;)Lcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;
-PLcom/android/server/audio/SoundEffectsHelper;->access$002(Lcom/android/server/audio/SoundEffectsHelper;Lcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;)Lcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;
-PLcom/android/server/audio/SoundEffectsHelper;->access$202(Lcom/android/server/audio/SoundEffectsHelper;Lcom/android/server/audio/SoundEffectsHelper$SfxHandler;)Lcom/android/server/audio/SoundEffectsHelper$SfxHandler;
-PLcom/android/server/audio/SoundEffectsHelper;->access$400(Lcom/android/server/audio/SoundEffectsHelper;Lcom/android/server/audio/SoundEffectsHelper$OnEffectsLoadCompleteHandler;)V
-PLcom/android/server/audio/SoundEffectsHelper;->access$500(Lcom/android/server/audio/SoundEffectsHelper;)Landroid/media/SoundPool;
-PLcom/android/server/audio/SoundEffectsHelper;->access$600(Lcom/android/server/audio/SoundEffectsHelper;)Ljava/util/List;
-PLcom/android/server/audio/SoundEffectsHelper;->access$700(Lcom/android/server/audio/SoundEffectsHelper;Ljava/lang/String;)V
-PLcom/android/server/audio/SoundEffectsHelper;->findOrAddResourceByFileName(Ljava/lang/String;)I
-PLcom/android/server/audio/SoundEffectsHelper;->getResourceFilePath(Lcom/android/server/audio/SoundEffectsHelper$Resource;)Ljava/lang/String;
-PLcom/android/server/audio/SoundEffectsHelper;->loadSoundEffects(Lcom/android/server/audio/SoundEffectsHelper$OnEffectsLoadCompleteHandler;)V
-PLcom/android/server/audio/SoundEffectsHelper;->loadTouchSoundAssetDefaults()V
-PLcom/android/server/audio/SoundEffectsHelper;->loadTouchSoundAssets()V
-PLcom/android/server/audio/SoundEffectsHelper;->logEvent(Ljava/lang/String;)V
-PLcom/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
+HSPLcom/android/server/audio/SoundEffectsHelper;->access$002(Lcom/android/server/audio/SoundEffectsHelper;Lcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;)Lcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;
+HSPLcom/android/server/audio/SoundEffectsHelper;->access$202(Lcom/android/server/audio/SoundEffectsHelper;Lcom/android/server/audio/SoundEffectsHelper$SfxHandler;)Lcom/android/server/audio/SoundEffectsHelper$SfxHandler;
+HSPLcom/android/server/audio/SoundEffectsHelper;->access$400(Lcom/android/server/audio/SoundEffectsHelper;Lcom/android/server/audio/SoundEffectsHelper$OnEffectsLoadCompleteHandler;)V
+HSPLcom/android/server/audio/SoundEffectsHelper;->access$500(Lcom/android/server/audio/SoundEffectsHelper;)Landroid/media/SoundPool;
+HSPLcom/android/server/audio/SoundEffectsHelper;->access$600(Lcom/android/server/audio/SoundEffectsHelper;)Ljava/util/List;
+HSPLcom/android/server/audio/SoundEffectsHelper;->access$700(Lcom/android/server/audio/SoundEffectsHelper;Ljava/lang/String;)V
+PLcom/android/server/audio/SoundEffectsHelper;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/audio/SoundEffectsHelper;->findOrAddResourceByFileName(Ljava/lang/String;)I
+HSPLcom/android/server/audio/SoundEffectsHelper;->getResourceFilePath(Lcom/android/server/audio/SoundEffectsHelper$Resource;)Ljava/lang/String;
+HSPLcom/android/server/audio/SoundEffectsHelper;->loadSoundEffects(Lcom/android/server/audio/SoundEffectsHelper$OnEffectsLoadCompleteHandler;)V
+HSPLcom/android/server/audio/SoundEffectsHelper;->loadTouchSoundAssetDefaults()V
+HSPLcom/android/server/audio/SoundEffectsHelper;->loadTouchSoundAssets()V
+HSPLcom/android/server/audio/SoundEffectsHelper;->logEvent(Ljava/lang/String;)V
+HSPLcom/android/server/audio/SoundEffectsHelper;->onLoadSoundEffects(Lcom/android/server/audio/SoundEffectsHelper$OnEffectsLoadCompleteHandler;)V
+PLcom/android/server/audio/SoundEffectsHelper;->onPlaySoundEffect(II)V
+HSPLcom/android/server/audio/SoundEffectsHelper;->sendMsg(IIILjava/lang/Object;I)V
+HSPLcom/android/server/audio/SoundEffectsHelper;->startWorker()V
PLcom/android/server/autofill/-$$Lambda$AutofillManagerService$1$1-WNu3tTkxodB_LsZ7dGIlvrPN0;-><clinit>()V
PLcom/android/server/autofill/-$$Lambda$AutofillManagerService$1$1-WNu3tTkxodB_LsZ7dGIlvrPN0;-><init>()V
PLcom/android/server/autofill/-$$Lambda$AutofillManagerService$1$1-WNu3tTkxodB_LsZ7dGIlvrPN0;->visit(Ljava/lang/Object;)V
-PLcom/android/server/autofill/-$$Lambda$AutofillManagerService$6afarI-dhLaYDLGebVyDMPu2nok;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
-PLcom/android/server/autofill/-$$Lambda$AutofillManagerService$AjdnAnVaegTp2pojE30m5yjqZx8;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
+HSPLcom/android/server/autofill/-$$Lambda$AutofillManagerService$6afarI-dhLaYDLGebVyDMPu2nok;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
+HSPLcom/android/server/autofill/-$$Lambda$AutofillManagerService$AjdnAnVaegTp2pojE30m5yjqZx8;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
+PLcom/android/server/autofill/-$$Lambda$AutofillManagerService$AjdnAnVaegTp2pojE30m5yjqZx8;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/autofill/-$$Lambda$FieldClassificationStrategy$NQQgQ63vxhPkiwOWrnwRyuYSHTM;-><clinit>()V
+PLcom/android/server/autofill/-$$Lambda$FieldClassificationStrategy$NQQgQ63vxhPkiwOWrnwRyuYSHTM;-><init>()V
+PLcom/android/server/autofill/-$$Lambda$FieldClassificationStrategy$NQQgQ63vxhPkiwOWrnwRyuYSHTM;->get(Landroid/content/res/Resources;I)Ljava/lang/Object;
+PLcom/android/server/autofill/-$$Lambda$FieldClassificationStrategy$vGIL1YGX_9ksoSV74T7gO4fkEBE;-><clinit>()V
+PLcom/android/server/autofill/-$$Lambda$FieldClassificationStrategy$vGIL1YGX_9ksoSV74T7gO4fkEBE;-><init>()V
+PLcom/android/server/autofill/-$$Lambda$FieldClassificationStrategy$vGIL1YGX_9ksoSV74T7gO4fkEBE;->get(Landroid/content/res/Resources;I)Ljava/lang/Object;
+PLcom/android/server/autofill/-$$Lambda$Q-iZrXrDBZAnj-gnbNOhH00i8uU;-><clinit>()V
+PLcom/android/server/autofill/-$$Lambda$Q-iZrXrDBZAnj-gnbNOhH00i8uU;-><init>()V
+PLcom/android/server/autofill/-$$Lambda$Q-iZrXrDBZAnj-gnbNOhH00i8uU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$qEoykSLvIU1PeokaPDuPOb0M5U0;-><clinit>()V
PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$qEoykSLvIU1PeokaPDuPOb0M5U0;-><init>()V
PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$qEoykSLvIU1PeokaPDuPOb0M5U0;->runNoResult(Ljava/lang/Object;)V
+PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$yudIvtYKB9W2eb_t3RT2S1y3KiI;-><init>(Landroid/os/ICancellationSignal;)V
+PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$yudIvtYKB9W2eb_t3RT2S1y3KiI;->run()V
+PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$z12itmuXxuVLV0rq4Wi5vlNsa0k;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Landroid/view/autofill/IAutoFillManagerClient;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLjava/util/concurrent/atomic/AtomicReference;)V
+PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$z12itmuXxuVLV0rq4Wi5vlNsa0k;->run(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$zt04rV6kTquQwdDYqT9tjLbRn14;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Ljava/util/concurrent/atomic/AtomicReference;Landroid/content/ComponentName;I)V
+PLcom/android/server/autofill/-$$Lambda$RemoteAugmentedAutofillService$zt04rV6kTquQwdDYqT9tjLbRn14;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/autofill/-$$Lambda$RemoteFillService$MaYOnIAubd8qKbTq0eWkOchXAJk;-><init>(Lcom/android/server/autofill/RemoteFillService;Landroid/service/autofill/FillRequest;Ljava/util/concurrent/atomic/AtomicReference;)V
+PLcom/android/server/autofill/-$$Lambda$RemoteFillService$MaYOnIAubd8qKbTq0eWkOchXAJk;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/autofill/-$$Lambda$RemoteFillService$RkgpxnfvOIHus8aiIIO_Tqgio1E;-><init>(Lcom/android/server/autofill/RemoteFillService;Ljava/lang/Throwable;Landroid/service/autofill/FillRequest;Landroid/service/autofill/FillResponse;Ljava/util/concurrent/atomic/AtomicReference;)V
+PLcom/android/server/autofill/-$$Lambda$RemoteFillService$RkgpxnfvOIHus8aiIIO_Tqgio1E;->run()V
+PLcom/android/server/autofill/-$$Lambda$RemoteFillService$V3RTZXH5ru6fNYPwjZcEmEQQ9-4;-><init>(Lcom/android/server/autofill/RemoteFillService;Landroid/service/autofill/FillRequest;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;)V
+PLcom/android/server/autofill/-$$Lambda$RemoteFillService$V3RTZXH5ru6fNYPwjZcEmEQQ9-4;->run(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/autofill/-$$Lambda$Session$eVloK5PeyeuPZn1G52SC-fXIsjk;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)V
+PLcom/android/server/autofill/-$$Lambda$Session$eVloK5PeyeuPZn1G52SC-fXIsjk;->run()V
+PLcom/android/server/autofill/-$$Lambda$Session$v6ZVyksJuHdWgJ1F8aoa_1LJWPo;-><clinit>()V
+PLcom/android/server/autofill/-$$Lambda$Session$v6ZVyksJuHdWgJ1F8aoa_1LJWPo;-><init>()V
+PLcom/android/server/autofill/-$$Lambda$Session$v6ZVyksJuHdWgJ1F8aoa_1LJWPo;->accept(Ljava/lang/Object;)V
+PLcom/android/server/autofill/-$$Lambda$Session$xw4trZ-LA7gCvZvpKJ93vf377ak;-><init>(Lcom/android/server/autofill/Session;)V
+PLcom/android/server/autofill/-$$Lambda$Session$xw4trZ-LA7gCvZvpKJ93vf377ak;->binderDied()V
PLcom/android/server/autofill/-$$Lambda$sdnPz1IsKKVKSEXwI7z4h2-SxiM;-><clinit>()V
PLcom/android/server/autofill/-$$Lambda$sdnPz1IsKKVKSEXwI7z4h2-SxiM;-><init>()V
PLcom/android/server/autofill/-$$Lambda$sdnPz1IsKKVKSEXwI7z4h2-SxiM;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/autofill/AutofillManagerService$1;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
+HSPLcom/android/server/autofill/AutofillManagerService$1;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
PLcom/android/server/autofill/AutofillManagerService$1;->lambda$onReceive$0(Lcom/android/server/autofill/AutofillManagerServiceImpl;)V
PLcom/android/server/autofill/AutofillManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;-><init>()V
-PLcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;->access$400(Lcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;ILjava/lang/String;Z)V
-PLcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;->injectAugmentedAutofillInfo(Landroid/content/AutofillOptions;ILjava/lang/String;)V
-PLcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;->setServiceInfo(ILjava/lang/String;Z)V
-PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
+HSPLcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;-><init>()V
+HSPLcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;->access$400(Lcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;ILjava/lang/String;Z)V
+PLcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HSPLcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;->injectAugmentedAutofillInfo(Landroid/content/AutofillOptions;ILjava/lang/String;)V
+PLcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;->isWhitelisted(ILandroid/content/ComponentName;)Z
+HSPLcom/android/server/autofill/AutofillManagerService$AugmentedAutofillState;->setServiceInfo(ILjava/lang/String;Z)V
+HSPLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->addClient(Landroid/view/autofill/IAutoFillManagerClient;Landroid/content/ComponentName;ILcom/android/internal/os/IResultReceiver;)V
+PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->cancelSession(II)V
+PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->finishSession(II)V
PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->getAutofillServiceComponentName(Lcom/android/internal/os/IResultReceiver;)V
+PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->getFillEventHistory(Lcom/android/internal/os/IResultReceiver;)V
PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->isServiceSupported(ILcom/android/internal/os/IResultReceiver;)V
PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->removeClient(Landroid/view/autofill/IAutoFillManagerClient;I)V
PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->setAugmentedAutofillWhitelist(Ljava/util/List;Ljava/util/List;Lcom/android/internal/os/IResultReceiver;)V
-PLcom/android/server/autofill/AutofillManagerService$AutofillCompatState;-><init>()V
-PLcom/android/server/autofill/AutofillManagerService$AutofillCompatState;->isCompatibilityModeRequested(Ljava/lang/String;JI)Z
-PLcom/android/server/autofill/AutofillManagerService$AutofillCompatState;->reset(I)V
-PLcom/android/server/autofill/AutofillManagerService$LocalService;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
-PLcom/android/server/autofill/AutofillManagerService$LocalService;-><init>(Lcom/android/server/autofill/AutofillManagerService;Lcom/android/server/autofill/AutofillManagerService$1;)V
-PLcom/android/server/autofill/AutofillManagerService$LocalService;->getAutofillOptions(Ljava/lang/String;JI)Landroid/content/AutofillOptions;
-PLcom/android/server/autofill/AutofillManagerService$LocalService;->injectDisableAppInfo(Landroid/content/AutofillOptions;ILjava/lang/String;)V
+PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->setHasCallback(IIZ)V
+PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->setUserData(Landroid/service/autofill/UserData;)V
+PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->startSession(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;IZILandroid/content/ComponentName;ZLcom/android/internal/os/IResultReceiver;)V
+PLcom/android/server/autofill/AutofillManagerService$AutoFillManagerServiceStub;->updateSession(ILandroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;III)V
+HSPLcom/android/server/autofill/AutofillManagerService$AutofillCompatState;-><init>()V
+PLcom/android/server/autofill/AutofillManagerService$AutofillCompatState;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HSPLcom/android/server/autofill/AutofillManagerService$AutofillCompatState;->isCompatibilityModeRequested(Ljava/lang/String;JI)Z
+PLcom/android/server/autofill/AutofillManagerService$AutofillCompatState;->removeCompatibilityModeRequests(I)V
+HSPLcom/android/server/autofill/AutofillManagerService$AutofillCompatState;->reset(I)V
+HSPLcom/android/server/autofill/AutofillManagerService$LocalService;-><init>(Lcom/android/server/autofill/AutofillManagerService;)V
+HSPLcom/android/server/autofill/AutofillManagerService$LocalService;-><init>(Lcom/android/server/autofill/AutofillManagerService;Lcom/android/server/autofill/AutofillManagerService$1;)V
+HSPLcom/android/server/autofill/AutofillManagerService$LocalService;->getAutofillOptions(Ljava/lang/String;JI)Landroid/content/AutofillOptions;
+HSPLcom/android/server/autofill/AutofillManagerService$LocalService;->injectDisableAppInfo(Landroid/content/AutofillOptions;ILjava/lang/String;)V
+PLcom/android/server/autofill/AutofillManagerService$LocalService;->isAugmentedAutofillServiceForUser(II)Z
PLcom/android/server/autofill/AutofillManagerService$LocalService;->onBackKeyPressed()V
-PLcom/android/server/autofill/AutofillManagerService;-><clinit>()V
-PLcom/android/server/autofill/AutofillManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/autofill/AutofillManagerService;-><clinit>()V
+HSPLcom/android/server/autofill/AutofillManagerService;-><init>(Landroid/content/Context;)V
PLcom/android/server/autofill/AutofillManagerService;->access$100(Lcom/android/server/autofill/AutofillManagerService;)Ljava/lang/Object;
-PLcom/android/server/autofill/AutofillManagerService;->access$1000(Lcom/android/server/autofill/AutofillManagerService;)Ljava/lang/Object;
-PLcom/android/server/autofill/AutofillManagerService;->access$1100(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+HSPLcom/android/server/autofill/AutofillManagerService;->access$1000(Lcom/android/server/autofill/AutofillManagerService;)Ljava/lang/Object;
+HSPLcom/android/server/autofill/AutofillManagerService;->access$1100(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+PLcom/android/server/autofill/AutofillManagerService;->access$1600(Lcom/android/server/autofill/AutofillManagerService;Lcom/android/internal/os/IResultReceiver;I)V
PLcom/android/server/autofill/AutofillManagerService;->access$200(Lcom/android/server/autofill/AutofillManagerService;Lcom/android/server/infra/AbstractMasterSystemService$Visitor;)V
+PLcom/android/server/autofill/AutofillManagerService;->access$2300(Lcom/android/server/autofill/AutofillManagerService;)Landroid/app/ActivityManagerInternal;
+PLcom/android/server/autofill/AutofillManagerService;->access$2400(Lcom/android/server/autofill/AutofillManagerService;)Ljava/lang/Object;
+PLcom/android/server/autofill/AutofillManagerService;->access$2500(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+PLcom/android/server/autofill/AutofillManagerService;->access$2600(Lcom/android/server/autofill/AutofillManagerService;)Z
+PLcom/android/server/autofill/AutofillManagerService;->access$2700(Lcom/android/server/autofill/AutofillManagerService;Lcom/android/internal/os/IResultReceiver;II)V
PLcom/android/server/autofill/AutofillManagerService;->access$300(Lcom/android/server/autofill/AutofillManagerService;)Lcom/android/server/autofill/ui/AutoFillUI;
PLcom/android/server/autofill/AutofillManagerService;->access$3000(Lcom/android/server/autofill/AutofillManagerService;Lcom/android/internal/os/IResultReceiver;Landroid/os/Parcelable;)V
+PLcom/android/server/autofill/AutofillManagerService;->access$4300(Lcom/android/server/autofill/AutofillManagerService;)Ljava/lang/Object;
+PLcom/android/server/autofill/AutofillManagerService;->access$4400(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
PLcom/android/server/autofill/AutofillManagerService;->access$4800(Lcom/android/server/autofill/AutofillManagerService;)Ljava/lang/Object;
PLcom/android/server/autofill/AutofillManagerService;->access$4900(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
-PLcom/android/server/autofill/AutofillManagerService;->access$700(Lcom/android/server/autofill/AutofillManagerService;)Lcom/android/server/autofill/AutofillManagerService$AutofillCompatState;
-PLcom/android/server/autofill/AutofillManagerService;->addCompatibilityModeRequestsLocked(Lcom/android/server/autofill/AutofillManagerServiceImpl;I)V
-PLcom/android/server/autofill/AutofillManagerService;->getServiceSettingsProperty()Ljava/lang/String;
-PLcom/android/server/autofill/AutofillManagerService;->isSupported(Landroid/content/pm/UserInfo;)Z
-PLcom/android/server/autofill/AutofillManagerService;->newServiceLocked(IZ)Lcom/android/server/autofill/AutofillManagerServiceImpl;
-PLcom/android/server/autofill/AutofillManagerService;->newServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService;
-PLcom/android/server/autofill/AutofillManagerService;->onServiceEnabledLocked(Lcom/android/server/autofill/AutofillManagerServiceImpl;I)V
-PLcom/android/server/autofill/AutofillManagerService;->onServiceEnabledLocked(Lcom/android/server/infra/AbstractPerUserSystemService;I)V
-PLcom/android/server/autofill/AutofillManagerService;->onStart()V
-PLcom/android/server/autofill/AutofillManagerService;->registerForExtraSettingsChanges(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
+HSPLcom/android/server/autofill/AutofillManagerService;->access$700(Lcom/android/server/autofill/AutofillManagerService;)Lcom/android/server/autofill/AutofillManagerService$AutofillCompatState;
+PLcom/android/server/autofill/AutofillManagerService;->access$800(Lcom/android/server/autofill/AutofillManagerService;)Ljava/lang/Object;
+PLcom/android/server/autofill/AutofillManagerService;->access$900(Lcom/android/server/autofill/AutofillManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+HSPLcom/android/server/autofill/AutofillManagerService;->addCompatibilityModeRequestsLocked(Lcom/android/server/autofill/AutofillManagerServiceImpl;I)V
+HSPLcom/android/server/autofill/AutofillManagerService;->getServiceSettingsProperty()Ljava/lang/String;
+PLcom/android/server/autofill/AutofillManagerService;->isInstantServiceAllowed()Z
+HSPLcom/android/server/autofill/AutofillManagerService;->isSupported(Landroid/content/pm/UserInfo;)Z
+PLcom/android/server/autofill/AutofillManagerService;->lambda$new$0$AutofillManagerService(Landroid/provider/DeviceConfig$Properties;)V
+HSPLcom/android/server/autofill/AutofillManagerService;->newServiceLocked(IZ)Lcom/android/server/autofill/AutofillManagerServiceImpl;
+HSPLcom/android/server/autofill/AutofillManagerService;->newServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService;
+PLcom/android/server/autofill/AutofillManagerService;->onDeviceConfigChange(Ljava/util/Set;)V
+HSPLcom/android/server/autofill/AutofillManagerService;->onServiceEnabledLocked(Lcom/android/server/autofill/AutofillManagerServiceImpl;I)V
+HSPLcom/android/server/autofill/AutofillManagerService;->onServiceEnabledLocked(Lcom/android/server/infra/AbstractPerUserSystemService;I)V
+PLcom/android/server/autofill/AutofillManagerService;->onServiceRemoved(Lcom/android/server/infra/AbstractPerUserSystemService;I)V
+HSPLcom/android/server/autofill/AutofillManagerService;->onStart()V
+HSPLcom/android/server/autofill/AutofillManagerService;->registerForExtraSettingsChanges(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
PLcom/android/server/autofill/AutofillManagerService;->send(Lcom/android/internal/os/IResultReceiver;I)V
+PLcom/android/server/autofill/AutofillManagerService;->send(Lcom/android/internal/os/IResultReceiver;II)V
PLcom/android/server/autofill/AutofillManagerService;->send(Lcom/android/internal/os/IResultReceiver;Landroid/os/Bundle;)V
PLcom/android/server/autofill/AutofillManagerService;->send(Lcom/android/internal/os/IResultReceiver;Landroid/os/Parcelable;)V
-PLcom/android/server/autofill/AutofillManagerService;->setDeviceConfigProperties()V
-PLcom/android/server/autofill/AutofillManagerService;->setLogLevelFromSettings()V
-PLcom/android/server/autofill/AutofillManagerService;->setLoggingLevelsLocked(ZZ)V
-PLcom/android/server/autofill/AutofillManagerService;->setMaxPartitionsFromSettings()V
-PLcom/android/server/autofill/AutofillManagerService;->setMaxVisibleDatasetsFromSettings()V
+HSPLcom/android/server/autofill/AutofillManagerService;->setDeviceConfigProperties()V
+HSPLcom/android/server/autofill/AutofillManagerService;->setLogLevelFromSettings()V
+HSPLcom/android/server/autofill/AutofillManagerService;->setLoggingLevelsLocked(ZZ)V
+HSPLcom/android/server/autofill/AutofillManagerService;->setMaxPartitionsFromSettings()V
+HSPLcom/android/server/autofill/AutofillManagerService;->setMaxVisibleDatasetsFromSettings()V
PLcom/android/server/autofill/AutofillManagerServiceImpl$1;-><init>(Lcom/android/server/autofill/AutofillManagerServiceImpl;)V
-PLcom/android/server/autofill/AutofillManagerServiceImpl;-><clinit>()V
-PLcom/android/server/autofill/AutofillManagerServiceImpl;-><init>(Lcom/android/server/autofill/AutofillManagerService;Ljava/lang/Object;Landroid/util/LocalLog;Landroid/util/LocalLog;ILcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/AutofillManagerService$AutofillCompatState;Z)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl$PruneTask;-><init>(Lcom/android/server/autofill/AutofillManagerServiceImpl;)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl$PruneTask;-><init>(Lcom/android/server/autofill/AutofillManagerServiceImpl;Lcom/android/server/autofill/AutofillManagerServiceImpl$1;)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl$PruneTask;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/autofill/AutofillManagerServiceImpl$PruneTask;->doInBackground([Ljava/lang/Void;)Ljava/lang/Void;
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl;-><clinit>()V
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl;-><init>(Lcom/android/server/autofill/AutofillManagerService;Ljava/lang/Object;Landroid/util/LocalLog;Landroid/util/LocalLog;ILcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/AutofillManagerService$AutofillCompatState;Z)V
PLcom/android/server/autofill/AutofillManagerServiceImpl;->addClientLocked(Landroid/view/autofill/IAutoFillManagerClient;Landroid/content/ComponentName;)I
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->assertCallerLocked(Landroid/content/ComponentName;Z)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->cancelSessionLocked(II)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->createSessionByTokenLocked(Landroid/os/IBinder;IILandroid/os/IBinder;ZLandroid/content/ComponentName;ZZZI)Lcom/android/server/autofill/Session;
PLcom/android/server/autofill/AutofillManagerServiceImpl;->destroyFinishedSessionsLocked()V
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->destroySessionsLocked()V
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->getAppDisabledActivitiesLocked(Ljava/lang/String;)Landroid/util/ArrayMap;
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->getAppDisabledExpirationLocked(Ljava/lang/String;)J
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->getCompatibilityPackagesLocked()Landroid/util/ArrayMap;
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->getRemoteAugmentedAutofillServiceLocked()Lcom/android/server/autofill/RemoteAugmentedAutofillService;
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->destroyLocked()V
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->destroySessionsLocked()V
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->finishSessionLocked(II)V
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->getAppDisabledActivitiesLocked(Ljava/lang/String;)Landroid/util/ArrayMap;
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->getAppDisabledExpirationLocked(Ljava/lang/String;)J
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->getAugmentedAutofillServiceUidLocked()I
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->getCompatibilityPackagesLocked()Landroid/util/ArrayMap;
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->getFillEventHistory(I)Landroid/service/autofill/FillEventHistory;
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->getPreviousSessionsLocked(Lcom/android/server/autofill/Session;)Ljava/util/ArrayList;
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->getRemoteAugmentedAutofillServiceLocked()Lcom/android/server/autofill/RemoteAugmentedAutofillService;
PLcom/android/server/autofill/AutofillManagerServiceImpl;->handlePackageUpdateLocked(Ljava/lang/String;)V
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->isAugmentedAutofillServiceAvailableLocked()Z
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->isAugmentedAutofillServiceAvailableLocked()Z
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->isAugmentedAutofillServiceForUserLocked(I)Z
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->isAutofillDisabledLocked(Landroid/content/ComponentName;)Z
PLcom/android/server/autofill/AutofillManagerServiceImpl;->isCalledByAugmentedAutofillServiceLocked(Ljava/lang/String;I)Z
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->isCalledByServiceLocked(Ljava/lang/String;I)Z
PLcom/android/server/autofill/AutofillManagerServiceImpl;->newServiceInfoLocked(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->pruneAbandonedSessionsLocked()V
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->resetLastResponse()V
PLcom/android/server/autofill/AutofillManagerServiceImpl;->sendStateToClients(Z)V
PLcom/android/server/autofill/AutofillManagerServiceImpl;->setAugmentedAutofillWhitelistLocked(Ljava/util/List;Ljava/util/List;I)Z
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->updateLocked(Z)Z
-PLcom/android/server/autofill/AutofillManagerServiceImpl;->updateRemoteAugmentedAutofillService()V
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->setHasCallback(IIZ)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->setUserData(ILandroid/service/autofill/UserData;)V
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->startSessionLocked(Landroid/os/IBinder;IILandroid/os/IBinder;Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;ZLandroid/content/ComponentName;ZZI)J
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->updateLocked(Z)Z
+HSPLcom/android/server/autofill/AutofillManagerServiceImpl;->updateRemoteAugmentedAutofillService()V
+PLcom/android/server/autofill/AutofillManagerServiceImpl;->updateSessionLocked(IILandroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;II)Z
PLcom/android/server/autofill/AutofillManagerServiceImpl;->whitelistForAugmentedAutofillPackages(Ljava/util/List;Ljava/util/List;)V
-PLcom/android/server/autofill/FieldClassificationStrategy;-><init>(Landroid/content/Context;I)V
+HSPLcom/android/server/autofill/FieldClassificationStrategy;-><init>(Landroid/content/Context;I)V
+PLcom/android/server/autofill/FieldClassificationStrategy;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/autofill/FieldClassificationStrategy;->getMetadataValue(Ljava/lang/String;Lcom/android/server/autofill/FieldClassificationStrategy$MetadataParser;)Ljava/lang/Object;
+PLcom/android/server/autofill/FieldClassificationStrategy;->getServiceComponentName()Landroid/content/ComponentName;
PLcom/android/server/autofill/FieldClassificationStrategy;->getServiceInfo()Landroid/content/pm/ServiceInfo;
-PLcom/android/server/autofill/Helper;-><clinit>()V
-PLcom/android/server/autofill/RemoteAugmentedAutofillService;-><clinit>()V
+PLcom/android/server/autofill/FieldClassificationStrategy;->reset()V
+HSPLcom/android/server/autofill/Helper;-><clinit>()V
+HPLcom/android/server/autofill/Helper;->addAutofillableIds(Landroid/app/assist/AssistStructure$ViewNode;Ljava/util/ArrayList;Z)V
+PLcom/android/server/autofill/Helper;->getNumericValue(Landroid/metrics/LogMaker;I)I
+PLcom/android/server/autofill/Helper;->newLogMaker(ILandroid/content/ComponentName;Ljava/lang/String;IZ)Landroid/metrics/LogMaker;
+PLcom/android/server/autofill/Helper;->newLogMaker(ILjava/lang/String;IZ)Landroid/metrics/LogMaker;
+PLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService$1;)V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->cancel()V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->isCompleted()Z
+PLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->onCancellable(Landroid/os/ICancellationSignal;)V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService$1$1;->onSuccess()V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService$1;-><init>(Lcom/android/server/autofill/RemoteAugmentedAutofillService;Landroid/service/autofill/augmented/IAugmentedAutofillService;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLcom/android/internal/infra/AndroidFuture;Ljava/util/concurrent/atomic/AtomicReference;)V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService$1;->send(ILandroid/os/Bundle;)V
+HSPLcom/android/server/autofill/RemoteAugmentedAutofillService;-><clinit>()V
PLcom/android/server/autofill/RemoteAugmentedAutofillService;-><init>(Landroid/content/Context;Landroid/content/ComponentName;ILcom/android/server/autofill/RemoteAugmentedAutofillService$RemoteAugmentedAutofillServiceCallbacks;ZZII)V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService;->dispatchCancellation(Landroid/os/ICancellationSignal;)V
PLcom/android/server/autofill/RemoteAugmentedAutofillService;->getAutoDisconnectTimeoutMs()J
-PLcom/android/server/autofill/RemoteAugmentedAutofillService;->getComponentName(Ljava/lang/String;IZ)Landroid/util/Pair;
+HSPLcom/android/server/autofill/RemoteAugmentedAutofillService;->getComponentName(Ljava/lang/String;IZ)Landroid/util/Pair;
+PLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$dispatchCancellation$2(Landroid/os/ICancellationSignal;)V
PLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onDestroyAutofillWindowsRequest$3(Landroid/service/autofill/augmented/IAugmentedAutofillService;)V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onRequestAutofillLocked$0$RemoteAugmentedAutofillService(Landroid/view/autofill/IAutoFillManagerClient;IILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;JLjava/util/concurrent/atomic/AtomicReference;Landroid/service/autofill/augmented/IAugmentedAutofillService;)Ljava/util/concurrent/CompletableFuture;
+PLcom/android/server/autofill/RemoteAugmentedAutofillService;->lambda$onRequestAutofillLocked$1$RemoteAugmentedAutofillService(Ljava/util/concurrent/atomic/AtomicReference;Landroid/content/ComponentName;ILjava/lang/Void;Ljava/lang/Throwable;)V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService;->onDestroyAutofillWindowsRequest()V
+PLcom/android/server/autofill/RemoteAugmentedAutofillService;->onRequestAutofillLocked(ILandroid/view/autofill/IAutoFillManagerClient;ILandroid/content/ComponentName;Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;)V
PLcom/android/server/autofill/RemoteAugmentedAutofillService;->onServiceConnectionStatusChanged(Landroid/os/IInterface;Z)V
PLcom/android/server/autofill/RemoteAugmentedAutofillService;->onServiceConnectionStatusChanged(Landroid/service/autofill/augmented/IAugmentedAutofillService;Z)V
+PLcom/android/server/autofill/RemoteFillService$1;-><init>(Lcom/android/server/autofill/RemoteFillService;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/CompletableFuture;)V
+PLcom/android/server/autofill/RemoteFillService$1;->onCancellable(Landroid/os/ICancellationSignal;)V
+PLcom/android/server/autofill/RemoteFillService$1;->onSuccess(Landroid/service/autofill/FillResponse;)V
+PLcom/android/server/autofill/RemoteFillService;-><init>(Landroid/content/Context;Landroid/content/ComponentName;ILcom/android/server/autofill/RemoteFillService$FillServiceCallbacks;Z)V
+PLcom/android/server/autofill/RemoteFillService;->addLast(Lcom/android/internal/infra/ServiceConnector$Job;)V
+PLcom/android/server/autofill/RemoteFillService;->addLast(Ljava/lang/Object;)V
+PLcom/android/server/autofill/RemoteFillService;->cancelCurrentRequest()I
+PLcom/android/server/autofill/RemoteFillService;->destroy()V
+PLcom/android/server/autofill/RemoteFillService;->dispatchCancellationSignal(Landroid/os/ICancellationSignal;)V
+PLcom/android/server/autofill/RemoteFillService;->getAutoDisconnectTimeoutMs()J
+PLcom/android/server/autofill/RemoteFillService;->lambda$onFillRequest$0$RemoteFillService(Landroid/service/autofill/FillRequest;Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicReference;Landroid/service/autofill/IAutoFillService;)Ljava/util/concurrent/CompletableFuture;
+PLcom/android/server/autofill/RemoteFillService;->lambda$onFillRequest$1$RemoteFillService(Ljava/lang/Throwable;Landroid/service/autofill/FillRequest;Landroid/service/autofill/FillResponse;Ljava/util/concurrent/atomic/AtomicReference;)V
+PLcom/android/server/autofill/RemoteFillService;->lambda$onFillRequest$2$RemoteFillService(Landroid/service/autofill/FillRequest;Ljava/util/concurrent/atomic/AtomicReference;Landroid/service/autofill/FillResponse;Ljava/lang/Throwable;)V
+PLcom/android/server/autofill/RemoteFillService;->onFillRequest(Landroid/service/autofill/FillRequest;)V
+PLcom/android/server/autofill/RemoteFillService;->onServiceConnectionStatusChanged(Landroid/os/IInterface;Z)V
+PLcom/android/server/autofill/RemoteFillService;->onServiceConnectionStatusChanged(Landroid/service/autofill/IAutoFillService;Z)V
+PLcom/android/server/autofill/Session$1;-><init>(Lcom/android/server/autofill/Session;)V
+PLcom/android/server/autofill/Session$1;->onHandleAssistData(Landroid/os/Bundle;)V
+PLcom/android/server/autofill/Session;-><clinit>()V
+PLcom/android/server/autofill/Session;-><init>(Lcom/android/server/autofill/AutofillManagerServiceImpl;Lcom/android/server/autofill/ui/AutoFillUI;Landroid/content/Context;Landroid/os/Handler;ILjava/lang/Object;IIILandroid/os/IBinder;Landroid/os/IBinder;ZLandroid/util/LocalLog;Landroid/util/LocalLog;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZI)V
+PLcom/android/server/autofill/Session;->access$000(Lcom/android/server/autofill/Session;)Lcom/android/server/autofill/RemoteFillService;
+PLcom/android/server/autofill/Session;->access$1000(Lcom/android/server/autofill/Session;)Ljava/util/ArrayList;
+PLcom/android/server/autofill/Session;->access$1002(Lcom/android/server/autofill/Session;Ljava/util/ArrayList;)Ljava/util/ArrayList;
+PLcom/android/server/autofill/Session;->access$1100(Lcom/android/server/autofill/Session;)V
+PLcom/android/server/autofill/Session;->access$1200(Lcom/android/server/autofill/Session;Landroid/service/autofill/FillContext;I)V
+PLcom/android/server/autofill/Session;->access$1300(Lcom/android/server/autofill/Session;Z)Ljava/util/ArrayList;
+PLcom/android/server/autofill/Session;->access$1400(Lcom/android/server/autofill/Session;)Landroid/os/Bundle;
+PLcom/android/server/autofill/Session;->access$300(Lcom/android/server/autofill/Session;)Landroid/view/autofill/AutofillId;
+PLcom/android/server/autofill/Session;->access$400(Lcom/android/server/autofill/Session;)Ljava/lang/Object;
+PLcom/android/server/autofill/Session;->access$500(Lcom/android/server/autofill/Session;)Z
+PLcom/android/server/autofill/Session;->cancelAugmentedAutofillLocked()V
+PLcom/android/server/autofill/Session;->cancelCurrentRequestLocked()V
+HPLcom/android/server/autofill/Session;->destroyAugmentedAutofillWindowsLocked()V
+PLcom/android/server/autofill/Session;->destroyLocked()Lcom/android/server/autofill/RemoteFillService;
+PLcom/android/server/autofill/Session;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/autofill/Session;->dumpNumericValue(Ljava/io/PrintWriter;Landroid/metrics/LogMaker;Ljava/lang/String;I)V
+PLcom/android/server/autofill/Session;->dumpRequestLog(Ljava/io/PrintWriter;Landroid/metrics/LogMaker;)V
+PLcom/android/server/autofill/Session;->fillContextWithAllowedValuesLocked(Landroid/service/autofill/FillContext;I)V
+PLcom/android/server/autofill/Session;->getActivityTokenLocked()Landroid/os/IBinder;
+PLcom/android/server/autofill/Session;->getFillContextByRequestIdLocked(I)Landroid/service/autofill/FillContext;
+PLcom/android/server/autofill/Session;->getIdsOfAllViewStatesLocked()[Landroid/view/autofill/AutofillId;
+PLcom/android/server/autofill/Session;->getLastResponseLocked(Ljava/lang/String;)Landroid/service/autofill/FillResponse;
+PLcom/android/server/autofill/Session;->getUiForShowing()Lcom/android/server/autofill/ui/AutoFillUI;
+PLcom/android/server/autofill/Session;->handleLogContextCommitted()V
+PLcom/android/server/autofill/Session;->hideAugmentedAutofillLocked(Lcom/android/server/autofill/ViewState;)V
+PLcom/android/server/autofill/Session;->isIgnoredLocked(Landroid/view/autofill/AutofillId;)Z
+PLcom/android/server/autofill/Session;->isSaveUiPendingLocked()Z
+HPLcom/android/server/autofill/Session;->isSavingLocked()Z
+PLcom/android/server/autofill/Session;->lambda$setClientLocked$0$Session()V
+PLcom/android/server/autofill/Session;->lambda$triggerAugmentedAutofillLocked$2(Lcom/android/server/autofill/RemoteAugmentedAutofillService;)V
+PLcom/android/server/autofill/Session;->lambda$v6ZVyksJuHdWgJ1F8aoa_1LJWPo(Lcom/android/server/autofill/Session;)V
+PLcom/android/server/autofill/Session;->logContextCommitted()V
+PLcom/android/server/autofill/Session;->mergePreviousSessionLocked(Z)Ljava/util/ArrayList;
+PLcom/android/server/autofill/Session;->newLogMaker(I)Landroid/metrics/LogMaker;
+PLcom/android/server/autofill/Session;->newLogMaker(ILjava/lang/String;)Landroid/metrics/LogMaker;
+PLcom/android/server/autofill/Session;->onFillRequestSuccess(ILandroid/service/autofill/FillResponse;Ljava/lang/String;I)V
+PLcom/android/server/autofill/Session;->processNullResponseLocked(II)V
+PLcom/android/server/autofill/Session;->removeSelfLocked()V
+PLcom/android/server/autofill/Session;->requestNewFillResponseLocked(Lcom/android/server/autofill/ViewState;II)V
+PLcom/android/server/autofill/Session;->requestNewFillResponseOnViewEnteredIfNecessaryLocked(Landroid/view/autofill/AutofillId;Lcom/android/server/autofill/ViewState;I)V
+PLcom/android/server/autofill/Session;->setClientLocked(Landroid/os/IBinder;)V
+PLcom/android/server/autofill/Session;->setHasCallbackLocked(Z)V
+PLcom/android/server/autofill/Session;->shouldStartNewPartitionLocked(Landroid/view/autofill/AutofillId;)Z
+PLcom/android/server/autofill/Session;->showSaveLocked()Z
+PLcom/android/server/autofill/Session;->triggerAugmentedAutofillLocked()Ljava/lang/Runnable;
+PLcom/android/server/autofill/Session;->unlinkClientVultureLocked()V
+PLcom/android/server/autofill/Session;->updateLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;II)V
+PLcom/android/server/autofill/ViewState;-><init>(Landroid/view/autofill/AutofillId;Lcom/android/server/autofill/ViewState$Listener;I)V
+PLcom/android/server/autofill/ViewState;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/autofill/ViewState;->getAutofilledValue()Landroid/view/autofill/AutofillValue;
+PLcom/android/server/autofill/ViewState;->getCurrentValue()Landroid/view/autofill/AutofillValue;
+PLcom/android/server/autofill/ViewState;->getState()I
+PLcom/android/server/autofill/ViewState;->getStateAsString()Ljava/lang/String;
+PLcom/android/server/autofill/ViewState;->getStateAsString(I)Ljava/lang/String;
+PLcom/android/server/autofill/ViewState;->maybeCallOnFillReady(I)V
+PLcom/android/server/autofill/ViewState;->resetState(I)V
+PLcom/android/server/autofill/ViewState;->setCurrentValue(Landroid/view/autofill/AutofillValue;)V
+PLcom/android/server/autofill/ViewState;->setState(I)V
+PLcom/android/server/autofill/ViewState;->update(Landroid/view/autofill/AutofillValue;Landroid/graphics/Rect;I)V
PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$56AC3ykfo4h_e2LSjdkJ3XQn370;-><init>(Lcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$56AC3ykfo4h_e2LSjdkJ3XQn370;->run()V
-PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$XWhvh2-Jd9NLMoEos-e8RkZdQaI;-><init>(Lcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/ui/PendingUi;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Z)V
-PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$XWhvh2-Jd9NLMoEos-e8RkZdQaI;->run()V
-PLcom/android/server/autofill/ui/AutoFillUI;-><init>(Landroid/content/Context;)V
-PLcom/android/server/autofill/ui/AutoFillUI;->destroyAll(Lcom/android/server/autofill/ui/PendingUi;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Z)V
-PLcom/android/server/autofill/ui/AutoFillUI;->destroyAllUiThread(Lcom/android/server/autofill/ui/PendingUi;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Z)V
-PLcom/android/server/autofill/ui/AutoFillUI;->destroySaveUiUiThread(Lcom/android/server/autofill/ui/PendingUi;Z)V
+PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$LjywPhTUqjU0ZUlG1crxBg8qhRA;-><init>(Lcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Ljava/lang/String;)V
+PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$LjywPhTUqjU0ZUlG1crxBg8qhRA;->run()V
+PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$VF2EbGE70QNyGDbklN9Uz5xHqyQ;-><init>(Lcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
+PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$VF2EbGE70QNyGDbklN9Uz5xHqyQ;->run()V
+HSPLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$XWhvh2-Jd9NLMoEos-e8RkZdQaI;-><init>(Lcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/ui/PendingUi;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Z)V
+HSPLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$XWhvh2-Jd9NLMoEos-e8RkZdQaI;->run()V
+PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$Z-Di7CGd-L0nOI4i7_RO1FYbhgU;-><init>(Lcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
+PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$Z-Di7CGd-L0nOI4i7_RO1FYbhgU;->run()V
+PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$i7qTc5vqiej5Psbl-bIkD7js-Ao;-><init>(Lcom/android/server/autofill/ui/AutoFillUI;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
+PLcom/android/server/autofill/ui/-$$Lambda$AutoFillUI$i7qTc5vqiej5Psbl-bIkD7js-Ao;->run()V
+HSPLcom/android/server/autofill/ui/AutoFillUI;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/autofill/ui/AutoFillUI;->destroyAll(Lcom/android/server/autofill/ui/PendingUi;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Z)V
+HSPLcom/android/server/autofill/ui/AutoFillUI;->destroyAllUiThread(Lcom/android/server/autofill/ui/PendingUi;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Z)V
+HSPLcom/android/server/autofill/ui/AutoFillUI;->destroySaveUiUiThread(Lcom/android/server/autofill/ui/PendingUi;Z)V
+PLcom/android/server/autofill/ui/AutoFillUI;->dump(Ljava/io/PrintWriter;)V
PLcom/android/server/autofill/ui/AutoFillUI;->hideAll(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
PLcom/android/server/autofill/ui/AutoFillUI;->hideAllUiThread(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
-PLcom/android/server/autofill/ui/AutoFillUI;->hideFillUiUiThread(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Z)V
+HSPLcom/android/server/autofill/ui/AutoFillUI;->hideFillUiUiThread(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Z)V
PLcom/android/server/autofill/ui/AutoFillUI;->hideSaveUiUiThread(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)Lcom/android/server/autofill/ui/PendingUi;
-PLcom/android/server/autofill/ui/AutoFillUI;->lambda$destroyAll$9$AutoFillUI(Lcom/android/server/autofill/ui/PendingUi;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Z)V
+HSPLcom/android/server/autofill/ui/AutoFillUI;->lambda$destroyAll$9$AutoFillUI(Lcom/android/server/autofill/ui/PendingUi;Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;Z)V
PLcom/android/server/autofill/ui/AutoFillUI;->lambda$hideAll$8$AutoFillUI(Lcom/android/server/autofill/ui/AutoFillUI$AutoFillUiCallback;)V
-PLcom/android/server/autofill/ui/OverlayControl;-><init>(Landroid/content/Context;)V
-PLcom/android/server/backup/-$$Lambda$-xfpm33S8Jqv3KpU_-llxhj8ZPI;-><init>(Ljava/util/Set;)V
+HSPLcom/android/server/autofill/ui/OverlayControl;-><init>(Landroid/content/Context;)V
+HPLcom/android/server/backup/-$$Lambda$-xfpm33S8Jqv3KpU_-llxhj8ZPI;-><init>(Ljava/util/Set;)V
PLcom/android/server/backup/-$$Lambda$-xfpm33S8Jqv3KpU_-llxhj8ZPI;->test(Ljava/lang/Object;)Z
PLcom/android/server/backup/-$$Lambda$BackupManagerService$6P4GQiH-FZ5t_w1XVcGR55OdSL4;-><init>(Lcom/android/server/backup/BackupManagerService;I)V
PLcom/android/server/backup/-$$Lambda$BackupManagerService$6P4GQiH-FZ5t_w1XVcGR55OdSL4;->run()V
PLcom/android/server/backup/-$$Lambda$TransportManager$4ND1hZMerK5gHU67okq6DZjKDQw;-><clinit>()V
PLcom/android/server/backup/-$$Lambda$TransportManager$4ND1hZMerK5gHU67okq6DZjKDQw;-><init>()V
+PLcom/android/server/backup/-$$Lambda$TransportManager$4ND1hZMerK5gHU67okq6DZjKDQw;->test(Ljava/lang/Object;)Z
PLcom/android/server/backup/-$$Lambda$TransportManager$Qbutmzd17ICwZdy0UzRrO-3_VK0;-><clinit>()V
PLcom/android/server/backup/-$$Lambda$TransportManager$Qbutmzd17ICwZdy0UzRrO-3_VK0;-><init>()V
PLcom/android/server/backup/-$$Lambda$TransportManager$Qbutmzd17ICwZdy0UzRrO-3_VK0;->test(Ljava/lang/Object;)Z
PLcom/android/server/backup/-$$Lambda$TransportManager$Z9ckpFUW2V4jkdHnyXIEiLuAoBc;-><clinit>()V
PLcom/android/server/backup/-$$Lambda$TransportManager$Z9ckpFUW2V4jkdHnyXIEiLuAoBc;-><init>()V
-PLcom/android/server/backup/-$$Lambda$TransportManager$_dxJobf45tWiMkaNlKY-z26kB2Q;-><init>(Ljava/lang/String;)V
+HPLcom/android/server/backup/-$$Lambda$TransportManager$_dxJobf45tWiMkaNlKY-z26kB2Q;-><init>(Ljava/lang/String;)V
PLcom/android/server/backup/-$$Lambda$TransportManager$_dxJobf45tWiMkaNlKY-z26kB2Q;->test(Ljava/lang/Object;)Z
PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$2$9w65wn45YYtTkXbyQZdj_7K5LSs;-><init>(Lcom/android/server/backup/UserBackupManagerService$2;Ljava/lang/String;)V
PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$2$9w65wn45YYtTkXbyQZdj_7K5LSs;->run()V
@@ -5335,12 +6406,14 @@ PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$W51Aw9Pu9AOsFVYQg
PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$W51Aw9Pu9AOsFVYQgIZy31INmwI;->accept(Ljava/lang/Object;)V
PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$_gNqJq9Ygtc0ZVwYhCSDKCUKrKY;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$_gNqJq9Ygtc0ZVwYhCSDKCUKrKY;->run()V
+HPLcom/android/server/backup/-$$Lambda$UserBackupManagerService$sAYsrY5C5zAl7EgKgwo188kx6JE;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/transport/TransportClient;)V
+PLcom/android/server/backup/-$$Lambda$UserBackupManagerService$sAYsrY5C5zAl7EgKgwo188kx6JE;->onFinished(Ljava/lang/String;)V
PLcom/android/server/backup/-$$Lambda$pM_c5tVAGDtxjxLF_ONtACWWq6Q;-><init>(Lcom/android/server/backup/TransportManager;)V
PLcom/android/server/backup/-$$Lambda$pM_c5tVAGDtxjxLF_ONtACWWq6Q;->run()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;->getRestoreAgentFinishedTimeoutMillis()J
-PLcom/android/server/backup/BackupAgentTimeoutParameters;->getRestoreAgentTimeoutMillis()J
+PLcom/android/server/backup/BackupAgentTimeoutParameters;->getQuotaExceededTimeoutMillis()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/BackupManagerConstants;-><init>(Landroid/os/Handler;Landroid/content/ContentResolver;)V
@@ -5354,51 +6427,64 @@ PLcom/android/server/backup/BackupManagerConstants;->getKeyValueBackupRequireCha
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;-><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;->onStart()V
+HSPLcom/android/server/backup/BackupManagerService$1;-><init>(Lcom/android/server/backup/BackupManagerService;)V
+HSPLcom/android/server/backup/BackupManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/backup/BackupManagerService$Lifecycle;-><init>(Landroid/content/Context;Lcom/android/server/backup/BackupManagerService;)V
+HSPLcom/android/server/backup/BackupManagerService$Lifecycle;->onStart()V
PLcom/android/server/backup/BackupManagerService$Lifecycle;->onUnlockUser(I)V
-PLcom/android/server/backup/BackupManagerService$Lifecycle;->publishService(Ljava/lang/String;Landroid/os/IBinder;)V
-PLcom/android/server/backup/BackupManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/backup/BackupManagerService;-><init>(Landroid/content/Context;Landroid/util/SparseArray;)V
+HSPLcom/android/server/backup/BackupManagerService$Lifecycle;->publishService(Ljava/lang/String;Landroid/os/IBinder;)V
+HSPLcom/android/server/backup/BackupManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/backup/BackupManagerService;-><init>(Landroid/content/Context;Landroid/util/SparseArray;)V
PLcom/android/server/backup/BackupManagerService;->activateBackupForUserLocked(I)V
PLcom/android/server/backup/BackupManagerService;->agentConnected(ILjava/lang/String;Landroid/os/IBinder;)V
-PLcom/android/server/backup/BackupManagerService;->agentConnectedForUser(ILjava/lang/String;Landroid/os/IBinder;)V
+HPLcom/android/server/backup/BackupManagerService;->agentConnectedForUser(ILjava/lang/String;Landroid/os/IBinder;)V
PLcom/android/server/backup/BackupManagerService;->binderGetCallingUid()I
-HPLcom/android/server/backup/BackupManagerService;->binderGetCallingUserId()I
-PLcom/android/server/backup/BackupManagerService;->createFile(Ljava/io/File;)V
+HSPLcom/android/server/backup/BackupManagerService;->binderGetCallingUserId()I
+HPLcom/android/server/backup/BackupManagerService;->createFile(Ljava/io/File;)V
PLcom/android/server/backup/BackupManagerService;->dataChanged(ILjava/lang/String;)V
-HPLcom/android/server/backup/BackupManagerService;->dataChanged(Ljava/lang/String;)V
-HPLcom/android/server/backup/BackupManagerService;->dataChangedForUser(ILjava/lang/String;)V
+HSPLcom/android/server/backup/BackupManagerService;->dataChanged(Ljava/lang/String;)V
+HSPLcom/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;->enforceCallingPermissionOnUserId(ILjava/lang/String;)V
PLcom/android/server/backup/BackupManagerService;->enforcePermissionsOnUser(I)V
PLcom/android/server/backup/BackupManagerService;->getActivatedFileForNonSystemUser(I)Ljava/io/File;
-PLcom/android/server/backup/BackupManagerService;->getCurrentTransport()Ljava/lang/String;
+HPLcom/android/server/backup/BackupManagerService;->getCurrentTransport()Ljava/lang/String;
PLcom/android/server/backup/BackupManagerService;->getCurrentTransport(I)Ljava/lang/String;
-PLcom/android/server/backup/BackupManagerService;->getCurrentTransportForUser(I)Ljava/lang/String;
+HPLcom/android/server/backup/BackupManagerService;->getCurrentTransportForUser(I)Ljava/lang/String;
PLcom/android/server/backup/BackupManagerService;->getDataManagementIntent(ILjava/lang/String;)Landroid/content/Intent;
PLcom/android/server/backup/BackupManagerService;->getDataManagementIntent(Ljava/lang/String;)Landroid/content/Intent;
PLcom/android/server/backup/BackupManagerService;->getDataManagementIntentForUser(ILjava/lang/String;)Landroid/content/Intent;
PLcom/android/server/backup/BackupManagerService;->getRememberActivatedFileForNonSystemUser(I)Ljava/io/File;
-PLcom/android/server/backup/BackupManagerService;->getServiceForUserIfCallerHasPermission(ILjava/lang/String;)Lcom/android/server/backup/UserBackupManagerService;
+HPLcom/android/server/backup/BackupManagerService;->getServiceForUserIfCallerHasPermission(ILjava/lang/String;)Lcom/android/server/backup/UserBackupManagerService;
PLcom/android/server/backup/BackupManagerService;->getSuppressFileForSystemUser()Ljava/io/File;
PLcom/android/server/backup/BackupManagerService;->getUserManager()Landroid/os/UserManager;
+PLcom/android/server/backup/BackupManagerService;->isAppEligibleForBackup(ILjava/lang/String;)Z
+HPLcom/android/server/backup/BackupManagerService;->isAppEligibleForBackupForUser(ILjava/lang/String;)Z
PLcom/android/server/backup/BackupManagerService;->isBackupActivatedForUser(I)Z
-PLcom/android/server/backup/BackupManagerService;->isBackupDisabled()Z
+HSPLcom/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
+HSPLcom/android/server/backup/BackupManagerService;->isUserReadyForBackup(I)Z
PLcom/android/server/backup/BackupManagerService;->lambda$onUnlockUser$0$BackupManagerService(I)V
+PLcom/android/server/backup/BackupManagerService;->listAllTransports()[Ljava/lang/String;
+PLcom/android/server/backup/BackupManagerService;->listAllTransports(I)[Ljava/lang/String;
+PLcom/android/server/backup/BackupManagerService;->listAllTransportsForUser(I)[Ljava/lang/String;
+PLcom/android/server/backup/BackupManagerService;->onUnlockUser(I)V
PLcom/android/server/backup/BackupManagerService;->opComplete(IIJ)V
HPLcom/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
+HPLcom/android/server/backup/BackupManagerService;->requestBackup([Ljava/lang/String;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;I)I
+HPLcom/android/server/backup/BackupManagerService;->requestBackupForUser(I[Ljava/lang/String;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;I)I
PLcom/android/server/backup/BackupManagerService;->restoreAtInstall(ILjava/lang/String;I)V
PLcom/android/server/backup/BackupManagerService;->restoreAtInstallForUser(ILjava/lang/String;I)V
-PLcom/android/server/backup/BackupManagerService;->setBackupServiceActive(IZ)V
+HPLcom/android/server/backup/BackupManagerService;->setBackupServiceActive(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;->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
+HPLcom/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$1;)V
PLcom/android/server/backup/BackupPasswordManager$PasswordVersionFileCodec;-><init>()V
@@ -5419,9 +6505,12 @@ PLcom/android/server/backup/DataChangedJournal;->equals(Ljava/lang/Object;)Z
PLcom/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/FileMetadata;-><init>()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
+PLcom/android/server/backup/FullBackupJob;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/backup/FullBackupJob;->onStopJob(Landroid/app/job/JobParameters;)Z
PLcom/android/server/backup/FullBackupJob;->schedule(ILandroid/content/Context;JLcom/android/server/backup/BackupManagerConstants;)V
PLcom/android/server/backup/JobIdManager;->getJobIdForUserId(III)I
PLcom/android/server/backup/KeyValueBackupJob;-><clinit>()V
@@ -5429,41 +6518,28 @@ PLcom/android/server/backup/KeyValueBackupJob;-><init>()V
PLcom/android/server/backup/KeyValueBackupJob;->cancel(ILandroid/content/Context;)V
PLcom/android/server/backup/KeyValueBackupJob;->clearScheduledForUserId(I)V
PLcom/android/server/backup/KeyValueBackupJob;->getJobIdForUserId(I)I
+PLcom/android/server/backup/KeyValueBackupJob;->nextScheduled(I)J
PLcom/android/server/backup/KeyValueBackupJob;->onStartJob(Landroid/app/job/JobParameters;)Z
-PLcom/android/server/backup/KeyValueBackupJob;->schedule(ILandroid/content/Context;JLcom/android/server/backup/BackupManagerConstants;)V
+HPLcom/android/server/backup/KeyValueBackupJob;->schedule(ILandroid/content/Context;JLcom/android/server/backup/BackupManagerConstants;)V
HPLcom/android/server/backup/KeyValueBackupJob;->schedule(ILandroid/content/Context;Lcom/android/server/backup/BackupManagerConstants;)V
-PLcom/android/server/backup/PackageManagerBackupAgent$AncestralVersion1RestoreDataConsumer;-><init>(Lcom/android/server/backup/PackageManagerBackupAgent;)V
-PLcom/android/server/backup/PackageManagerBackupAgent$AncestralVersion1RestoreDataConsumer;-><init>(Lcom/android/server/backup/PackageManagerBackupAgent;Lcom/android/server/backup/PackageManagerBackupAgent$1;)V
-HPLcom/android/server/backup/PackageManagerBackupAgent$AncestralVersion1RestoreDataConsumer;->consumeRestoreData(Landroid/app/backup/BackupDataInput;)V
-PLcom/android/server/backup/PackageManagerBackupAgent$Metadata;-><init>(Lcom/android/server/backup/PackageManagerBackupAgent;JLjava/util/ArrayList;)V
+HPLcom/android/server/backup/PackageManagerBackupAgent$Metadata;-><init>(Lcom/android/server/backup/PackageManagerBackupAgent;JLjava/util/ArrayList;)V
PLcom/android/server/backup/PackageManagerBackupAgent;-><init>(Landroid/content/pm/PackageManager;I)V
PLcom/android/server/backup/PackageManagerBackupAgent;-><init>(Landroid/content/pm/PackageManager;Ljava/util/List;I)V
-PLcom/android/server/backup/PackageManagerBackupAgent;->access$1002(Lcom/android/server/backup/PackageManagerBackupAgent;Ljava/util/HashMap;)Ljava/util/HashMap;
-PLcom/android/server/backup/PackageManagerBackupAgent;->access$202(Lcom/android/server/backup/PackageManagerBackupAgent;I)I
-PLcom/android/server/backup/PackageManagerBackupAgent;->access$302(Lcom/android/server/backup/PackageManagerBackupAgent;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/backup/PackageManagerBackupAgent;->access$402(Lcom/android/server/backup/PackageManagerBackupAgent;Z)Z
-PLcom/android/server/backup/PackageManagerBackupAgent;->access$502(Lcom/android/server/backup/PackageManagerBackupAgent;Landroid/content/ComponentName;)Landroid/content/ComponentName;
-PLcom/android/server/backup/PackageManagerBackupAgent;->access$602(Lcom/android/server/backup/PackageManagerBackupAgent;J)J
-PLcom/android/server/backup/PackageManagerBackupAgent;->access$702(Lcom/android/server/backup/PackageManagerBackupAgent;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/backup/PackageManagerBackupAgent;->access$802(Lcom/android/server/backup/PackageManagerBackupAgent;Ljava/util/ArrayList;)Ljava/util/ArrayList;
-PLcom/android/server/backup/PackageManagerBackupAgent;->access$900(Ljava/io/DataInputStream;)Ljava/util/ArrayList;
PLcom/android/server/backup/PackageManagerBackupAgent;->evaluateStorablePackages()V
-PLcom/android/server/backup/PackageManagerBackupAgent;->getAncestralRecordVersionValue(Landroid/app/backup/BackupDataInput;)I
PLcom/android/server/backup/PackageManagerBackupAgent;->getPreferredHomeComponent()Landroid/content/ComponentName;
-PLcom/android/server/backup/PackageManagerBackupAgent;->getRestoreDataConsumer(I)Lcom/android/server/backup/PackageManagerBackupAgent$RestoreDataConsumer;
-PLcom/android/server/backup/PackageManagerBackupAgent;->getRestoredMetadata(Ljava/lang/String;)Lcom/android/server/backup/PackageManagerBackupAgent$Metadata;
-PLcom/android/server/backup/PackageManagerBackupAgent;->getStorableApplications(Landroid/content/pm/PackageManager;I)Ljava/util/List;
+HPLcom/android/server/backup/PackageManagerBackupAgent;->getStorableApplications(Landroid/content/pm/PackageManager;I)Ljava/util/List;
PLcom/android/server/backup/PackageManagerBackupAgent;->hasMetadata()Z
PLcom/android/server/backup/PackageManagerBackupAgent;->init(Landroid/content/pm/PackageManager;Ljava/util/List;I)V
-PLcom/android/server/backup/PackageManagerBackupAgent;->onBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
-PLcom/android/server/backup/PackageManagerBackupAgent;->onRestore(Landroid/app/backup/BackupDataInput;ILandroid/os/ParcelFileDescriptor;)V
-PLcom/android/server/backup/PackageManagerBackupAgent;->parseStateFile(Landroid/os/ParcelFileDescriptor;)V
+HPLcom/android/server/backup/PackageManagerBackupAgent;->onBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
+HPLcom/android/server/backup/PackageManagerBackupAgent;->parseStateFile(Landroid/os/ParcelFileDescriptor;)V
PLcom/android/server/backup/PackageManagerBackupAgent;->readSignatureHashArray(Ljava/io/DataInputStream;)Ljava/util/ArrayList;
HPLcom/android/server/backup/PackageManagerBackupAgent;->writeEntity(Landroid/app/backup/BackupDataOutput;Ljava/lang/String;[B)V
HPLcom/android/server/backup/PackageManagerBackupAgent;->writeSignatureHashArray(Ljava/io/DataOutputStream;Ljava/util/ArrayList;)V
-PLcom/android/server/backup/PackageManagerBackupAgent;->writeStateFile(Ljava/util/List;Landroid/content/ComponentName;JLjava/util/ArrayList;Landroid/os/ParcelFileDescriptor;)V
+HPLcom/android/server/backup/PackageManagerBackupAgent;->writeStateFile(Ljava/util/List;Landroid/content/ComponentName;JLjava/util/ArrayList;Landroid/os/ParcelFileDescriptor;)V
PLcom/android/server/backup/ProcessedPackagesJournal;-><init>(Ljava/io/File;)V
PLcom/android/server/backup/ProcessedPackagesJournal;->addPackage(Ljava/lang/String;)V
+PLcom/android/server/backup/ProcessedPackagesJournal;->getPackagesCopy()Ljava/util/Set;
+PLcom/android/server/backup/ProcessedPackagesJournal;->hasBeenProcessed(Ljava/lang/String;)Z
PLcom/android/server/backup/ProcessedPackagesJournal;->init()V
PLcom/android/server/backup/ProcessedPackagesJournal;->loadFromDisk()V
PLcom/android/server/backup/ProcessedPackagesJournal;->reset()V
@@ -5473,10 +6549,12 @@ PLcom/android/server/backup/SystemBackupAgent;->addHelper(Ljava/lang/String;Land
PLcom/android/server/backup/SystemBackupAgent;->onCreate(Landroid/os/UserHandle;)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;)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$1;)V
-PLcom/android/server/backup/TransportManager$TransportDescription;->access$000(Lcom/android/server/backup/TransportManager$TransportDescription;)Ljava/lang/String;
+HPLcom/android/server/backup/TransportManager$TransportDescription;->access$000(Lcom/android/server/backup/TransportManager$TransportDescription;)Ljava/lang/String;
PLcom/android/server/backup/TransportManager$TransportDescription;->access$002(Lcom/android/server/backup/TransportManager$TransportDescription;Ljava/lang/String;)Ljava/lang/String;
PLcom/android/server/backup/TransportManager$TransportDescription;->access$100(Lcom/android/server/backup/TransportManager$TransportDescription;)Ljava/lang/String;
+PLcom/android/server/backup/TransportManager$TransportDescription;->access$200(Lcom/android/server/backup/TransportManager$TransportDescription;)Landroid/content/Intent;
PLcom/android/server/backup/TransportManager$TransportDescription;->access$202(Lcom/android/server/backup/TransportManager$TransportDescription;Landroid/content/Intent;)Landroid/content/Intent;
+PLcom/android/server/backup/TransportManager$TransportDescription;->access$300(Lcom/android/server/backup/TransportManager$TransportDescription;)Ljava/lang/String;
PLcom/android/server/backup/TransportManager$TransportDescription;->access$302(Lcom/android/server/backup/TransportManager$TransportDescription;Ljava/lang/String;)Ljava/lang/String;
PLcom/android/server/backup/TransportManager$TransportDescription;->access$400(Lcom/android/server/backup/TransportManager$TransportDescription;)Landroid/content/Intent;
PLcom/android/server/backup/TransportManager$TransportDescription;->access$402(Lcom/android/server/backup/TransportManager$TransportDescription;Landroid/content/Intent;)Landroid/content/Intent;
@@ -5484,20 +6562,29 @@ PLcom/android/server/backup/TransportManager$TransportDescription;->access$502(L
PLcom/android/server/backup/TransportManager;-><init>(ILandroid/content/Context;Ljava/util/Set;Ljava/lang/String;)V
PLcom/android/server/backup/TransportManager;->checkCanUseTransport()V
PLcom/android/server/backup/TransportManager;->disposeOfTransportClient(Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;)V
+PLcom/android/server/backup/TransportManager;->dumpTransportClients(Ljava/io/PrintWriter;)V
PLcom/android/server/backup/TransportManager;->fromPackageFilter(Ljava/lang/String;)Ljava/util/function/Predicate;
PLcom/android/server/backup/TransportManager;->getCurrentTransportClient(Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
+PLcom/android/server/backup/TransportManager;->getCurrentTransportClientOrThrow(Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
PLcom/android/server/backup/TransportManager;->getCurrentTransportName()Ljava/lang/String;
-PLcom/android/server/backup/TransportManager;->getRegisteredTransportComponentLocked(Ljava/lang/String;)Landroid/content/ComponentName;
-PLcom/android/server/backup/TransportManager;->getRegisteredTransportDescriptionLocked(Ljava/lang/String;)Lcom/android/server/backup/TransportManager$TransportDescription;
+HPLcom/android/server/backup/TransportManager;->getRegisteredTransportComponentLocked(Ljava/lang/String;)Landroid/content/ComponentName;
+HPLcom/android/server/backup/TransportManager;->getRegisteredTransportDescriptionLocked(Ljava/lang/String;)Lcom/android/server/backup/TransportManager$TransportDescription;
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;
-PLcom/android/server/backup/TransportManager;->getRegisteredTransportEntryLocked(Ljava/lang/String;)Ljava/util/Map$Entry;
+HPLcom/android/server/backup/TransportManager;->getRegisteredTransportEntryLocked(Ljava/lang/String;)Ljava/util/Map$Entry;
+PLcom/android/server/backup/TransportManager;->getRegisteredTransportNames()[Ljava/lang/String;
PLcom/android/server/backup/TransportManager;->getTransportClient(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
PLcom/android/server/backup/TransportManager;->getTransportClientOrThrow(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
+PLcom/android/server/backup/TransportManager;->getTransportConfigurationIntent(Ljava/lang/String;)Landroid/content/Intent;
+PLcom/android/server/backup/TransportManager;->getTransportCurrentDestinationString(Ljava/lang/String;)Ljava/lang/String;
PLcom/android/server/backup/TransportManager;->getTransportDataManagementIntent(Ljava/lang/String;)Landroid/content/Intent;
PLcom/android/server/backup/TransportManager;->getTransportDirName(Landroid/content/ComponentName;)Ljava/lang/String;
+PLcom/android/server/backup/TransportManager;->getTransportDirName(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/backup/TransportManager;->getTransportWhitelist()Ljava/util/Set;
+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$fromPackageFilter$3(Ljava/lang/String;Landroid/content/ComponentName;)Z
+PLcom/android/server/backup/TransportManager;->lambda$onPackageAdded$1(Landroid/content/ComponentName;)Z
PLcom/android/server/backup/TransportManager;->lambda$registerTransports$2(Landroid/content/ComponentName;)Z
PLcom/android/server/backup/TransportManager;->onPackageAdded(Ljava/lang/String;)V
PLcom/android/server/backup/TransportManager;->onPackageChanged(Ljava/lang/String;[Ljava/lang/String;)V
@@ -5518,7 +6605,7 @@ PLcom/android/server/backup/UserBackupManagerFilePersistedSettings;->writeBackup
PLcom/android/server/backup/UserBackupManagerFiles;->getBaseDir(I)Ljava/io/File;
PLcom/android/server/backup/UserBackupManagerFiles;->getBaseStateDir(I)Ljava/io/File;
PLcom/android/server/backup/UserBackupManagerFiles;->getDataDir(I)Ljava/io/File;
-PLcom/android/server/backup/UserBackupManagerFiles;->getStateDirInSystemDir(I)Ljava/io/File;
+HPLcom/android/server/backup/UserBackupManagerFiles;->getStateDirInSystemDir(I)Ljava/io/File;
PLcom/android/server/backup/UserBackupManagerFiles;->getStateFileInSystemDir(Ljava/lang/String;I)Ljava/io/File;
PLcom/android/server/backup/UserBackupManagerService$1;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
HPLcom/android/server/backup/UserBackupManagerService$1;->run()V
@@ -5528,11 +6615,11 @@ PLcom/android/server/backup/UserBackupManagerService$2;->lambda$onReceive$1$User
PLcom/android/server/backup/UserBackupManagerService$2;->lambda$onReceive$2$UserBackupManagerService$2(Ljava/lang/String;)V
PLcom/android/server/backup/UserBackupManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
HPLcom/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
+HPLcom/android/server/backup/UserBackupManagerService$4;->run()V
PLcom/android/server/backup/UserBackupManagerService$BackupWakeLock;-><init>(Landroid/os/PowerManager$WakeLock;)V
PLcom/android/server/backup/UserBackupManagerService$BackupWakeLock;->access$000(Lcom/android/server/backup/UserBackupManagerService$BackupWakeLock;)Landroid/os/PowerManager$WakeLock;
-PLcom/android/server/backup/UserBackupManagerService$BackupWakeLock;->acquire()V
-PLcom/android/server/backup/UserBackupManagerService$BackupWakeLock;->release()V
+HPLcom/android/server/backup/UserBackupManagerService$BackupWakeLock;->acquire()V
+HPLcom/android/server/backup/UserBackupManagerService$BackupWakeLock;->release()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;->access$100(Lcom/android/server/backup/UserBackupManagerService;)Ljava/lang/Object;
PLcom/android/server/backup/UserBackupManagerService;->access$1000(Lcom/android/server/backup/UserBackupManagerService;Ljava/lang/String;)V
@@ -5548,21 +6635,23 @@ PLcom/android/server/backup/UserBackupManagerService;->access$700(Lcom/android/s
PLcom/android/server/backup/UserBackupManagerService;->access$800(Lcom/android/server/backup/UserBackupManagerService;)I
PLcom/android/server/backup/UserBackupManagerService;->access$900(Lcom/android/server/backup/UserBackupManagerService;)Landroid/content/pm/PackageManager;
PLcom/android/server/backup/UserBackupManagerService;->addPackageParticipantsLocked([Ljava/lang/String;)V
-PLcom/android/server/backup/UserBackupManagerService;->addPackageParticipantsLockedInner(Ljava/lang/String;Ljava/util/List;)V
+HPLcom/android/server/backup/UserBackupManagerService;->addPackageParticipantsLockedInner(Ljava/lang/String;Ljava/util/List;)V
PLcom/android/server/backup/UserBackupManagerService;->agentConnected(Ljava/lang/String;Landroid/os/IBinder;)V
HPLcom/android/server/backup/UserBackupManagerService;->allAgentPackages()Ljava/util/List;
PLcom/android/server/backup/UserBackupManagerService;->backupNow()V
+PLcom/android/server/backup/UserBackupManagerService;->beginFullBackup(Lcom/android/server/backup/FullBackupJob;)Z
PLcom/android/server/backup/UserBackupManagerService;->bindToAgentSynchronous(Landroid/content/pm/ApplicationInfo;I)Landroid/app/IBackupAgent;
-PLcom/android/server/backup/UserBackupManagerService;->clearApplicationDataBeforeRestore(Ljava/lang/String;)V
-PLcom/android/server/backup/UserBackupManagerService;->clearApplicationDataSynchronous(Ljava/lang/String;ZZ)V
PLcom/android/server/backup/UserBackupManagerService;->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
+HPLcom/android/server/backup/UserBackupManagerService;->dataChanged(Ljava/lang/String;)V
PLcom/android/server/backup/UserBackupManagerService;->dataChangedImpl(Ljava/lang/String;)V
-PLcom/android/server/backup/UserBackupManagerService;->dataChangedImpl(Ljava/lang/String;Ljava/util/HashSet;)V
-PLcom/android/server/backup/UserBackupManagerService;->dataChangedTargets(Ljava/lang/String;)Ljava/util/HashSet;
+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;
HPLcom/android/server/backup/UserBackupManagerService;->dequeueFullBackupLocked(Ljava/lang/String;)V
-PLcom/android/server/backup/UserBackupManagerService;->enqueueFullBackup(Ljava/lang/String;J)V
+PLcom/android/server/backup/UserBackupManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/backup/UserBackupManagerService;->dumpInternal(Ljava/io/PrintWriter;)V
+HPLcom/android/server/backup/UserBackupManagerService;->enqueueFullBackup(Ljava/lang/String;J)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;->getAgentTimeoutParameters()Lcom/android/server/backup/BackupAgentTimeoutParameters;
@@ -5570,7 +6659,7 @@ PLcom/android/server/backup/UserBackupManagerService;->getAvailableRestoreToken(
PLcom/android/server/backup/UserBackupManagerService;->getBackupHandler()Landroid/os/Handler;
PLcom/android/server/backup/UserBackupManagerService;->getBackupManagerBinder()Landroid/app/backup/IBackupManager;
PLcom/android/server/backup/UserBackupManagerService;->getBaseStateDir()Ljava/io/File;
-PLcom/android/server/backup/UserBackupManagerService;->getClearDataLock()Ljava/lang/Object;
+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;->getCurrentOpLock()Ljava/lang/Object;
PLcom/android/server/backup/UserBackupManagerService;->getCurrentOperations()Landroid/util/SparseArray;
@@ -5590,9 +6679,11 @@ PLcom/android/server/backup/UserBackupManagerService;->getQueueLock()Ljava/lang/
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;->getWakelock()Lcom/android/server/backup/UserBackupManagerService$BackupWakeLock;
+HPLcom/android/server/backup/UserBackupManagerService;->getWakelock()Lcom/android/server/backup/UserBackupManagerService$BackupWakeLock;
+PLcom/android/server/backup/UserBackupManagerService;->handleCancel(IZ)V
PLcom/android/server/backup/UserBackupManagerService;->initPackageTracking()V
PLcom/android/server/backup/UserBackupManagerService;->initializeBackupEnableState()V
+PLcom/android/server/backup/UserBackupManagerService;->isAppEligibleForBackup(Ljava/lang/String;)Z
PLcom/android/server/backup/UserBackupManagerService;->isBackupEnabled()Z
PLcom/android/server/backup/UserBackupManagerService;->isBackupOperationInProgress()Z
PLcom/android/server/backup/UserBackupManagerService;->isBackupRunning()Z
@@ -5603,6 +6694,7 @@ PLcom/android/server/backup/UserBackupManagerService;->lambda$9cuIH_XloqtNByp_6h
PLcom/android/server/backup/UserBackupManagerService;->lambda$_gNqJq9Ygtc0ZVwYhCSDKCUKrKY(Lcom/android/server/backup/UserBackupManagerService;)V
PLcom/android/server/backup/UserBackupManagerService;->lambda$parseLeftoverJournals$0$UserBackupManagerService(Ljava/lang/String;)V
PLcom/android/server/backup/UserBackupManagerService;->lambda$restoreAtInstall$6$UserBackupManagerService(Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;)V
+PLcom/android/server/backup/UserBackupManagerService;->listAllTransports()[Ljava/lang/String;
PLcom/android/server/backup/UserBackupManagerService;->logBackupComplete(Ljava/lang/String;)V
PLcom/android/server/backup/UserBackupManagerService;->makeMetadataAgent()Landroid/app/backup/BackupAgent;
PLcom/android/server/backup/UserBackupManagerService;->makeMetadataAgent(Ljava/util/List;)Lcom/android/server/backup/PackageManagerBackupAgent;
@@ -5615,74 +6707,124 @@ PLcom/android/server/backup/UserBackupManagerService;->readFullBackupSchedule()L
PLcom/android/server/backup/UserBackupManagerService;->removeOperation(I)V
PLcom/android/server/backup/UserBackupManagerService;->removePackageFromSetLocked(Ljava/util/HashSet;Ljava/lang/String;)V
PLcom/android/server/backup/UserBackupManagerService;->removePackageParticipantsLocked([Ljava/lang/String;I)V
+PLcom/android/server/backup/UserBackupManagerService;->requestBackup([Ljava/lang/String;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;I)I
PLcom/android/server/backup/UserBackupManagerService;->resetBackupState(Ljava/io/File;)V
PLcom/android/server/backup/UserBackupManagerService;->restoreAtInstall(Ljava/lang/String;I)V
PLcom/android/server/backup/UserBackupManagerService;->scheduleNextFullBackupJob(J)V
PLcom/android/server/backup/UserBackupManagerService;->setBackupEnabled(Z)V
PLcom/android/server/backup/UserBackupManagerService;->setBackupRunning(Z)V
-PLcom/android/server/backup/UserBackupManagerService;->setClearingData(Z)V
PLcom/android/server/backup/UserBackupManagerService;->setCurrentToken(J)V
PLcom/android/server/backup/UserBackupManagerService;->setJournal(Lcom/android/server/backup/DataChangedJournal;)V
PLcom/android/server/backup/UserBackupManagerService;->setLastBackupPass(J)V
PLcom/android/server/backup/UserBackupManagerService;->setRestoreInProgress(Z)V
+PLcom/android/server/backup/UserBackupManagerService;->setRunningFullBackupTask(Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;)V
PLcom/android/server/backup/UserBackupManagerService;->setWorkSource(Landroid/os/WorkSource;)V
+PLcom/android/server/backup/UserBackupManagerService;->tearDownAgentAndKill(Landroid/content/pm/ApplicationInfo;)V
PLcom/android/server/backup/UserBackupManagerService;->unbindAgent(Landroid/content/pm/ApplicationInfo;)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
PLcom/android/server/backup/UserBackupManagerService;->waitUntilOperationComplete(I)Z
-PLcom/android/server/backup/UserBackupManagerService;->writeFullBackupScheduleAsync()V
+HPLcom/android/server/backup/UserBackupManagerService;->writeFullBackupScheduleAsync()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
PLcom/android/server/backup/UserBackupPreferences;->getExcludedRestoreKeysForPackages([Ljava/lang/String;)Ljava/util/Map;
+PLcom/android/server/backup/fullbackup/-$$Lambda$PerformFullTransportBackupTask$SinglePackageBackupPreflight$hWbC3_rWMPrteAdbbM5aSW2SKD0;-><init>(Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;Landroid/app/IBackupAgent;J)V
+PLcom/android/server/backup/fullbackup/-$$Lambda$PerformFullTransportBackupTask$SinglePackageBackupPreflight$hWbC3_rWMPrteAdbbM5aSW2SKD0;->call(Ljava/lang/Object;)V
+HPLcom/android/server/backup/fullbackup/-$$Lambda$PerformFullTransportBackupTask$ymLoQLrsEpmGaMrcudrdAgsU1Zk;-><init>(Lcom/android/server/backup/TransportManager;Lcom/android/server/backup/transport/TransportClient;)V
+PLcom/android/server/backup/fullbackup/-$$Lambda$PerformFullTransportBackupTask$ymLoQLrsEpmGaMrcudrdAgsU1Zk;->onFinished(Ljava/lang/String;)V
+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;Ljava/lang/String;Z)V
+PLcom/android/server/backup/fullbackup/AppMetadataBackupWriter;->backupManifest(Landroid/content/pm/PackageInfo;Ljava/io/File;Ljava/io/File;Z)V
+PLcom/android/server/backup/fullbackup/AppMetadataBackupWriter;->getManifestBytes(Landroid/content/pm/PackageInfo;Z)[B
+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$FullBackupRunner;->shouldWriteApk(Landroid/content/pm/ApplicationInfo;ZZ)Z
+PLcom/android/server/backup/fullbackup/FullBackupEngine;-><init>(Lcom/android/server/backup/UserBackupManagerService;Ljava/io/OutputStream;Lcom/android/server/backup/fullbackup/FullBackupPreflight;Landroid/content/pm/PackageInfo;ZLcom/android/server/backup/BackupRestoreTask;JII)V
+PLcom/android/server/backup/fullbackup/FullBackupEngine;->access$000(Lcom/android/server/backup/fullbackup/FullBackupEngine;)Lcom/android/server/backup/UserBackupManagerService;
+PLcom/android/server/backup/fullbackup/FullBackupEngine;->access$100(Lcom/android/server/backup/fullbackup/FullBackupEngine;)I
+PLcom/android/server/backup/fullbackup/FullBackupEngine;->access$200(Lcom/android/server/backup/fullbackup/FullBackupEngine;)Lcom/android/server/backup/BackupAgentTimeoutParameters;
+PLcom/android/server/backup/fullbackup/FullBackupEngine;->access$300(Lcom/android/server/backup/fullbackup/FullBackupEngine;)Lcom/android/server/backup/BackupRestoreTask;
+PLcom/android/server/backup/fullbackup/FullBackupEngine;->access$400(Lcom/android/server/backup/fullbackup/FullBackupEngine;)J
+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/FullBackupEngine;->tearDown()V
HPLcom/android/server/backup/fullbackup/FullBackupEntry;-><init>(Ljava/lang/String;J)V
PLcom/android/server/backup/fullbackup/FullBackupEntry;->compareTo(Lcom/android/server/backup/fullbackup/FullBackupEntry;)I
PLcom/android/server/backup/fullbackup/FullBackupEntry;->compareTo(Ljava/lang/Object;)I
-PLcom/android/server/backup/fullbackup/FullBackupTask;-><init>(Landroid/app/backup/IFullBackupRestoreObserver;)V
+HPLcom/android/server/backup/fullbackup/FullBackupTask;-><init>(Landroid/app/backup/IFullBackupRestoreObserver;)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;-><init>(Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;Lcom/android/server/backup/transport/TransportClient;JII)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;->getExpectedSizeOrErrorCode()J
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;->lambda$preflightFullBackup$0$PerformFullTransportBackupTask$SinglePackageBackupPreflight(Landroid/app/IBackupAgent;JLandroid/app/backup/IBackupCallback;)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;->operationComplete(J)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupPreflight;->preflightFullBackup(Landroid/content/pm/PackageInfo;Landroid/app/IBackupAgent;)I
+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/TransportClient;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;->registerTask()V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;->run()V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask$SinglePackageBackupRunner;->unregisterTask()V
PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/transport/TransportClient;Landroid/app/backup/IFullBackupRestoreObserver;[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;Z)V
-PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;->registerTask()V
+HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;->access$000(Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;)Lcom/android/server/backup/BackupAgentTimeoutParameters;
+HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;->access$100(Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;)Lcom/android/server/backup/UserBackupManagerService;
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;->cleanUpPipes([Landroid/os/ParcelFileDescriptor;)V
+HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;->lambda$newWithCurrentTransport$0(Lcom/android/server/backup/TransportManager;Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;)V
+PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;->newWithCurrentTransport(Lcom/android/server/backup/UserBackupManagerService;Landroid/app/backup/IFullBackupRestoreObserver;[Ljava/lang/String;ZLcom/android/server/backup/FullBackupJob;Ljava/util/concurrent/CountDownLatch;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;ZLjava/lang/String;)Lcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;
+HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;->registerTask()V
+HPLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;->run()V
PLcom/android/server/backup/fullbackup/PerformFullTransportBackupTask;->unregisterTask()V
PLcom/android/server/backup/internal/-$$Lambda$BackupHandler$TJcRazGYTaUxjeiX6mPLlipfZUI;-><init>(Lcom/android/server/backup/TransportManager;Lcom/android/server/backup/transport/TransportClient;)V
PLcom/android/server/backup/internal/-$$Lambda$BackupHandler$TJcRazGYTaUxjeiX6mPLlipfZUI;->onFinished(Ljava/lang/String;)V
PLcom/android/server/backup/internal/BackupHandler;-><init>(Lcom/android/server/backup/UserBackupManagerService;Landroid/os/HandlerThread;)V
PLcom/android/server/backup/internal/BackupHandler;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/backup/internal/BackupHandler;->lambda$handleMessage$0(Lcom/android/server/backup/TransportManager;Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;)V
-PLcom/android/server/backup/internal/ClearDataObserver;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
-PLcom/android/server/backup/internal/ClearDataObserver;->onRemoveCompleted(Ljava/lang/String;Z)V
HPLcom/android/server/backup/internal/Operation;-><init>(ILcom/android/server/backup/BackupRestoreTask;I)V
PLcom/android/server/backup/internal/RunBackupReceiver;-><init>(Lcom/android/server/backup/UserBackupManagerService;)V
PLcom/android/server/backup/internal/RunBackupReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)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/-$$Lambda$KeyValueBackupTask$NN2H32cNizGxrUxqHgqPqGldNsA;-><init>(Lcom/android/server/backup/keyvalue/KeyValueBackupTask;Landroid/app/IBackupAgent;JI)V
+HPLcom/android/server/backup/keyvalue/-$$Lambda$KeyValueBackupTask$NN2H32cNizGxrUxqHgqPqGldNsA;-><init>(Lcom/android/server/backup/keyvalue/KeyValueBackupTask;Landroid/app/IBackupAgent;JI)V
PLcom/android/server/backup/keyvalue/-$$Lambda$KeyValueBackupTask$NN2H32cNizGxrUxqHgqPqGldNsA;->call(Ljava/lang/Object;)V
PLcom/android/server/backup/keyvalue/AgentException;-><init>(Z)V
PLcom/android/server/backup/keyvalue/AgentException;->isTransitory()Z
PLcom/android/server/backup/keyvalue/AgentException;->permanent()Lcom/android/server/backup/keyvalue/AgentException;
PLcom/android/server/backup/keyvalue/AgentException;->transitory()Lcom/android/server/backup/keyvalue/AgentException;
PLcom/android/server/backup/keyvalue/BackupException;-><init>()V
+PLcom/android/server/backup/keyvalue/BackupException;-><init>(Ljava/lang/Exception;)V
HPLcom/android/server/backup/keyvalue/BackupRequest;-><init>(Ljava/lang/String;)V
-PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;-><init>(Lcom/android/server/backup/UserBackupManagerService;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;)V
+PLcom/android/server/backup/keyvalue/BackupRequest;->toString()Ljava/lang/String;
+HPLcom/android/server/backup/keyvalue/KeyValueBackupReporter;-><init>(Lcom/android/server/backup/UserBackupManagerService;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->getMonitor()Landroid/app/backup/IBackupManagerMonitor;
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->getObserver()Landroid/app/backup/IBackupObserver;
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->getPackageName(Landroid/content/pm/PackageInfo;)Ljava/lang/String;
+PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onAgentError(Ljava/lang/String;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onAgentFilesReady(Ljava/io/File;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onAgentResultError(Landroid/content/pm/PackageInfo;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onBackupFinished(I)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onEmptyData(Landroid/content/pm/PackageInfo;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onExtractAgentData(Ljava/lang/String;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onExtractPmAgentDataError(Ljava/lang/Exception;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onInitializeTransport(Ljava/lang/String;)V
-PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onNewThread(Ljava/lang/String;)V
+HPLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onNewThread(Ljava/lang/String;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onPackageBackupComplete(Ljava/lang/String;J)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onPackageBackupNonIncrementalRequired(Landroid/content/pm/PackageInfo;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onPackageBackupTransportError(Ljava/lang/String;Ljava/lang/Exception;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onPackageBackupTransportFailure(Ljava/lang/String;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onPackageNotEligibleForBackup(Ljava/lang/String;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onPackageStopped(Ljava/lang/String;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onQueueReady(Ljava/util/List;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onRemoteCallReturned(Lcom/android/server/backup/remote/RemoteResult;Ljava/lang/String;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onRevertTask()V
+PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onSkipBackup()V
+PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onStartFullBackup(Ljava/util/List;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onStartPackageBackup(Ljava/lang/String;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onTaskFinished()V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onTransportInitialized(I)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onTransportPerformBackup(Ljava/lang/String;)V
PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onTransportReady(Ljava/lang/String;)V
+PLcom/android/server/backup/keyvalue/KeyValueBackupReporter;->onTransportRequestBackupTimeError(Ljava/lang/Exception;)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/transport/TransportClient;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;ZZ)V
PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->applyStateTransaction(I)V
@@ -5701,11 +6843,12 @@ PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->extractPmAgentData(Lan
PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->finishTask(I)V
PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->getBackupFinishedStatus(ZI)I
PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->getPackageForBackup(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
-PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->getPerformBackupFlags(ZZ)I
+HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->getPerformBackupFlags(ZZ)I
PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->handleTransportStatus(ILjava/lang/String;J)V
PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->lambda$extractAgentData$0$KeyValueBackupTask(Landroid/app/IBackupAgent;JILandroid/app/backup/IBackupCallback;)V
-PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->registerTask()V
-PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->remoteCall(Lcom/android/server/backup/remote/RemoteCallable;JLjava/lang/String;)Lcom/android/server/backup/remote/RemoteResult;
+HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->registerTask()V
+HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->remoteCall(Lcom/android/server/backup/remote/RemoteCallable;JLjava/lang/String;)Lcom/android/server/backup/remote/RemoteResult;
+PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->revertTask()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
@@ -5713,241 +6856,217 @@ PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->start(Lcom/android/ser
PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->startTask()V
PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->transportPerformBackup(Landroid/content/pm/PackageInfo;Ljava/io/File;Z)I
PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->tryCloseFileDescriptor(Ljava/io/Closeable;Ljava/lang/String;)V
-PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->unregisterTask()V
+HPLcom/android/server/backup/keyvalue/KeyValueBackupTask;->unregisterTask()V
PLcom/android/server/backup/keyvalue/KeyValueBackupTask;->writeWidgetPayloadIfAppropriate(Ljava/io/FileDescriptor;Ljava/lang/String;)V
+PLcom/android/server/backup/keyvalue/TaskException;-><init>(Ljava/lang/Exception;ZI)V
+PLcom/android/server/backup/keyvalue/TaskException;-><init>(ZI)V
+PLcom/android/server/backup/keyvalue/TaskException;->causedBy(Ljava/lang/Exception;)Lcom/android/server/backup/keyvalue/TaskException;
+PLcom/android/server/backup/keyvalue/TaskException;->create()Lcom/android/server/backup/keyvalue/TaskException;
+PLcom/android/server/backup/keyvalue/TaskException;->forStatus(I)Lcom/android/server/backup/keyvalue/TaskException;
+PLcom/android/server/backup/keyvalue/TaskException;->getStatus()I
+PLcom/android/server/backup/keyvalue/TaskException;->isStateCompromised()Z
+PLcom/android/server/backup/keyvalue/TaskException;->stateCompromised(Ljava/lang/Exception;)Lcom/android/server/backup/keyvalue/TaskException;
+HPLcom/android/server/backup/params/BackupParams;-><init>(Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;Lcom/android/server/backup/internal/OnTaskFinishedListener;ZZ)V
PLcom/android/server/backup/params/RestoreParams;-><init>(Lcom/android/server/backup/transport/TransportClient;Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;JLandroid/content/pm/PackageInfo;IZ[Ljava/lang/String;Lcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/Map;)V
PLcom/android/server/backup/params/RestoreParams;->createForRestoreAtInstall(Lcom/android/server/backup/transport/TransportClient;Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;JLjava/lang/String;ILcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/Map;)Lcom/android/server/backup/params/RestoreParams;
-PLcom/android/server/backup/remote/-$$Lambda$RemoteCall$UZaEiTGjS9e2j04YYkGl3Y2ltU4;-><init>(Lcom/android/server/backup/remote/RemoteCall;)V
+HPLcom/android/server/backup/remote/-$$Lambda$RemoteCall$UZaEiTGjS9e2j04YYkGl3Y2ltU4;-><init>(Lcom/android/server/backup/remote/RemoteCall;)V
PLcom/android/server/backup/remote/-$$Lambda$RemoteCall$UZaEiTGjS9e2j04YYkGl3Y2ltU4;->run()V
-PLcom/android/server/backup/remote/FutureBackupCallback;-><init>(Ljava/util/concurrent/CompletableFuture;)V
+HPLcom/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;-><init>(Lcom/android/server/backup/remote/RemoteCallable;J)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/RemoteCall;->lambda$UZaEiTGjS9e2j04YYkGl3Y2ltU4(Lcom/android/server/backup/remote/RemoteCall;)V
-PLcom/android/server/backup/remote/RemoteCall;->timeOut()V
+PLcom/android/server/backup/remote/RemoteCall;->execute(Lcom/android/server/backup/remote/RemoteCallable;J)Lcom/android/server/backup/remote/RemoteResult;
+HPLcom/android/server/backup/remote/RemoteCall;->lambda$UZaEiTGjS9e2j04YYkGl3Y2ltU4(Lcom/android/server/backup/remote/RemoteCall;)V
+HPLcom/android/server/backup/remote/RemoteCall;->timeOut()V
PLcom/android/server/backup/remote/RemoteResult;-><clinit>()V
PLcom/android/server/backup/remote/RemoteResult;-><init>(IJ)V
PLcom/android/server/backup/remote/RemoteResult;->get()J
PLcom/android/server/backup/remote/RemoteResult;->isPresent()Z
-PLcom/android/server/backup/remote/RemoteResult;->of(J)Lcom/android/server/backup/remote/RemoteResult;
-PLcom/android/server/backup/restore/-$$Lambda$FullRestoreEngine$4tWYktC0BIhLX9UJcbVLlqtWGqU;-><clinit>()V
-PLcom/android/server/backup/restore/-$$Lambda$FullRestoreEngine$4tWYktC0BIhLX9UJcbVLlqtWGqU;-><init>()V
-PLcom/android/server/backup/restore/-$$Lambda$FullRestoreEngine$4tWYktC0BIhLX9UJcbVLlqtWGqU;->onBytesRead(J)V
-PLcom/android/server/backup/restore/FullRestoreEngine$1;-><clinit>()V
-PLcom/android/server/backup/restore/FullRestoreEngine;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/BackupRestoreTask;Landroid/app/backup/IFullBackupRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;Landroid/content/pm/PackageInfo;ZIZ)V
-PLcom/android/server/backup/restore/FullRestoreEngine;->getAgent()Landroid/app/IBackupAgent;
-PLcom/android/server/backup/restore/FullRestoreEngine;->getWidgetData()[B
-HPLcom/android/server/backup/restore/FullRestoreEngine;->isCanonicalFilePath(Ljava/lang/String;)Z
-HPLcom/android/server/backup/restore/FullRestoreEngine;->isRestorableFile(Lcom/android/server/backup/FileMetadata;)Z
-PLcom/android/server/backup/restore/FullRestoreEngine;->lambda$restoreOneFile$0(J)V
-HPLcom/android/server/backup/restore/FullRestoreEngine;->restoreOneFile(Ljava/io/InputStream;Z[BLandroid/content/pm/PackageInfo;ZILandroid/app/backup/IBackupManagerMonitor;)Z
-PLcom/android/server/backup/restore/FullRestoreEngine;->setUpPipes()V
-PLcom/android/server/backup/restore/FullRestoreEngine;->shouldForceClearAppDataOnFullRestore(Ljava/lang/String;)Z
-PLcom/android/server/backup/restore/FullRestoreEngine;->tearDownPipes()V
-PLcom/android/server/backup/restore/FullRestoreEngineThread;-><init>(Lcom/android/server/backup/restore/FullRestoreEngine;Landroid/os/ParcelFileDescriptor;)V
-PLcom/android/server/backup/restore/FullRestoreEngineThread;->run()V
-PLcom/android/server/backup/restore/FullRestoreEngineThread;->waitForResult()I
+HPLcom/android/server/backup/remote/RemoteResult;->of(J)Lcom/android/server/backup/remote/RemoteResult;
PLcom/android/server/backup/restore/PerformUnifiedRestoreTask$1;-><clinit>()V
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask$StreamFeederThread;-><init>(Lcom/android/server/backup/restore/PerformUnifiedRestoreTask;)V
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask$StreamFeederThread;->operationComplete(J)V
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask$StreamFeederThread;->run()V
PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;-><init>(Lcom/android/server/backup/UserBackupManagerService;Lcom/android/server/backup/transport/TransportClient;Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;JLandroid/content/pm/PackageInfo;IZ[Ljava/lang/String;Lcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/Map;)V
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->access$000(Lcom/android/server/backup/restore/PerformUnifiedRestoreTask;)Lcom/android/server/backup/UserBackupManagerService;
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->access$100(Lcom/android/server/backup/restore/PerformUnifiedRestoreTask;)Landroid/content/pm/PackageInfo;
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->access$200(Lcom/android/server/backup/restore/PerformUnifiedRestoreTask;)Landroid/app/backup/IBackupManagerMonitor;
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->access$300(Lcom/android/server/backup/restore/PerformUnifiedRestoreTask;)Lcom/android/server/backup/transport/TransportClient;
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->access$402(Lcom/android/server/backup/restore/PerformUnifiedRestoreTask;Z)Z
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->access$502(Lcom/android/server/backup/restore/PerformUnifiedRestoreTask;Landroid/app/IBackupAgent;)Landroid/app/IBackupAgent;
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->access$602(Lcom/android/server/backup/restore/PerformUnifiedRestoreTask;[B)[B
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->dispatchNextRestore()V
PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->execute()V
PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->executeNextState(Lcom/android/server/backup/restore/UnifiedRestoreState;)V
-HPLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->filterExcludedKeys(Ljava/lang/String;Landroid/app/backup/BackupDataInput;Landroid/app/backup/BackupDataOutput;)V
PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->finalizeRestore()V
-HPLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->initiateOneRestore(Landroid/content/pm/PackageInfo;J)V
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->keyValueAgentCleanup()V
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->operationComplete(J)V
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->restoreFinished()V
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->restoreFull()V
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->restoreKeyValue()V
-PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->sendOnRestorePackage(Ljava/lang/String;)V
+PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->initiateOneRestore(Landroid/content/pm/PackageInfo;J)V
PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->sendStartRestore(I)V
PLcom/android/server/backup/restore/PerformUnifiedRestoreTask;->startRestore()V
-PLcom/android/server/backup/restore/RestoreDeleteObserver;-><init>()V
-PLcom/android/server/backup/restore/RestoreEngine;-><init>()V
-PLcom/android/server/backup/restore/RestoreEngine;->getResult()I
-PLcom/android/server/backup/restore/RestoreEngine;->isRunning()Z
-PLcom/android/server/backup/restore/RestoreEngine;->setRunning(Z)V
-PLcom/android/server/backup/restore/RestoreEngine;->waitForResult()I
-PLcom/android/server/backup/restore/RestorePolicy;-><clinit>()V
-PLcom/android/server/backup/restore/RestorePolicy;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/backup/restore/RestorePolicy;->values()[Lcom/android/server/backup/restore/RestorePolicy;
PLcom/android/server/backup/restore/UnifiedRestoreState;-><clinit>()V
PLcom/android/server/backup/restore/UnifiedRestoreState;-><init>(Ljava/lang/String;I)V
PLcom/android/server/backup/restore/UnifiedRestoreState;->values()[Lcom/android/server/backup/restore/UnifiedRestoreState;
-PLcom/android/server/backup/transport/-$$Lambda$TransportClient$ciIUj0x0CRg93UETUpy2FB5aqCQ;-><init>(Lcom/android/server/backup/transport/TransportClient;Lcom/android/server/backup/transport/TransportConnectionListener;Lcom/android/internal/backup/IBackupTransport;)V
+HPLcom/android/server/backup/transport/-$$Lambda$TransportClient$ciIUj0x0CRg93UETUpy2FB5aqCQ;-><init>(Lcom/android/server/backup/transport/TransportClient;Lcom/android/server/backup/transport/TransportConnectionListener;Lcom/android/internal/backup/IBackupTransport;)V
PLcom/android/server/backup/transport/-$$Lambda$TransportClient$ciIUj0x0CRg93UETUpy2FB5aqCQ;->run()V
-PLcom/android/server/backup/transport/-$$Lambda$TransportClient$uc3fygwQjQIS_JT7mlt-yMBfJcE;-><init>(Ljava/util/concurrent/CompletableFuture;)V
+HPLcom/android/server/backup/transport/-$$Lambda$TransportClient$uc3fygwQjQIS_JT7mlt-yMBfJcE;-><init>(Ljava/util/concurrent/CompletableFuture;)V
PLcom/android/server/backup/transport/-$$Lambda$TransportClient$uc3fygwQjQIS_JT7mlt-yMBfJcE;->onTransportConnectionResult(Lcom/android/internal/backup/IBackupTransport;Lcom/android/server/backup/transport/TransportClient;)V
PLcom/android/server/backup/transport/-$$Lambda$TransportClientManager$3-d3ib7qD5oE9G-iWpfeoufnGXc;-><clinit>()V
PLcom/android/server/backup/transport/-$$Lambda$TransportClientManager$3-d3ib7qD5oE9G-iWpfeoufnGXc;-><init>()V
-PLcom/android/server/backup/transport/-$$Lambda$TransportClientManager$3-d3ib7qD5oE9G-iWpfeoufnGXc;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/backup/transport/TransportClient$TransportConnection;-><init>(Landroid/content/Context;Lcom/android/server/backup/transport/TransportClient;)V
+HPLcom/android/server/backup/transport/-$$Lambda$TransportClientManager$3-d3ib7qD5oE9G-iWpfeoufnGXc;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/backup/transport/TransportClient$TransportConnection;-><init>(Landroid/content/Context;Lcom/android/server/backup/transport/TransportClient;)V
PLcom/android/server/backup/transport/TransportClient$TransportConnection;-><init>(Landroid/content/Context;Lcom/android/server/backup/transport/TransportClient;Lcom/android/server/backup/transport/TransportClient$1;)V
+PLcom/android/server/backup/transport/TransportClient$TransportConnection;->onBindingDied(Landroid/content/ComponentName;)V
PLcom/android/server/backup/transport/TransportClient$TransportConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/backup/transport/TransportClient;-><init>(ILandroid/content/Context;Lcom/android/server/backup/transport/TransportStats;Landroid/content/Intent;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/backup/transport/TransportClient$TransportConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
+HPLcom/android/server/backup/transport/TransportClient;-><init>(ILandroid/content/Context;Lcom/android/server/backup/transport/TransportStats;Landroid/content/Intent;Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/backup/transport/TransportClient;-><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/TransportClient;->access$100(Lcom/android/server/backup/transport/TransportClient;Landroid/os/IBinder;)V
-PLcom/android/server/backup/transport/TransportClient;->checkState(ZLjava/lang/String;)V
-PLcom/android/server/backup/transport/TransportClient;->checkStateIntegrityLocked()V
-PLcom/android/server/backup/transport/TransportClient;->connect(Ljava/lang/String;)Lcom/android/internal/backup/IBackupTransport;
+HPLcom/android/server/backup/transport/TransportClient;->access$100(Lcom/android/server/backup/transport/TransportClient;Landroid/os/IBinder;)V
+PLcom/android/server/backup/transport/TransportClient;->access$200(Lcom/android/server/backup/transport/TransportClient;)V
+PLcom/android/server/backup/transport/TransportClient;->access$300(Lcom/android/server/backup/transport/TransportClient;)V
+HPLcom/android/server/backup/transport/TransportClient;->checkState(ZLjava/lang/String;)V
+HPLcom/android/server/backup/transport/TransportClient;->checkStateIntegrityLocked()V
+HPLcom/android/server/backup/transport/TransportClient;->connect(Ljava/lang/String;)Lcom/android/internal/backup/IBackupTransport;
PLcom/android/server/backup/transport/TransportClient;->connectAsync(Lcom/android/server/backup/transport/TransportConnectionListener;Ljava/lang/String;)V
PLcom/android/server/backup/transport/TransportClient;->connectOrThrow(Ljava/lang/String;)Lcom/android/internal/backup/IBackupTransport;
PLcom/android/server/backup/transport/TransportClient;->finalize()V
PLcom/android/server/backup/transport/TransportClient;->getTransportComponent()Landroid/content/ComponentName;
-PLcom/android/server/backup/transport/TransportClient;->lambda$connect$0(Ljava/util/concurrent/CompletableFuture;Lcom/android/internal/backup/IBackupTransport;Lcom/android/server/backup/transport/TransportClient;)V
+HPLcom/android/server/backup/transport/TransportClient;->lambda$connect$0(Ljava/util/concurrent/CompletableFuture;Lcom/android/internal/backup/IBackupTransport;Lcom/android/server/backup/transport/TransportClient;)V
PLcom/android/server/backup/transport/TransportClient;->lambda$notifyListener$1$TransportClient(Lcom/android/server/backup/transport/TransportConnectionListener;Lcom/android/internal/backup/IBackupTransport;)V
-PLcom/android/server/backup/transport/TransportClient;->log(ILjava/lang/String;)V
+HPLcom/android/server/backup/transport/TransportClient;->log(ILjava/lang/String;)V
HPLcom/android/server/backup/transport/TransportClient;->log(ILjava/lang/String;Ljava/lang/String;)V
PLcom/android/server/backup/transport/TransportClient;->markAsDisposed()V
PLcom/android/server/backup/transport/TransportClient;->notifyListener(Lcom/android/server/backup/transport/TransportConnectionListener;Lcom/android/internal/backup/IBackupTransport;Ljava/lang/String;)V
-PLcom/android/server/backup/transport/TransportClient;->notifyListenersAndClearLocked(Lcom/android/internal/backup/IBackupTransport;)V
+HPLcom/android/server/backup/transport/TransportClient;->notifyListenersAndClearLocked(Lcom/android/internal/backup/IBackupTransport;)V
+PLcom/android/server/backup/transport/TransportClient;->onBindingDied()V
PLcom/android/server/backup/transport/TransportClient;->onServiceConnected(Landroid/os/IBinder;)V
-PLcom/android/server/backup/transport/TransportClient;->onStateTransition(II)V
-PLcom/android/server/backup/transport/TransportClient;->saveLogEntry(Ljava/lang/String;)V
-PLcom/android/server/backup/transport/TransportClient;->setStateLocked(ILcom/android/internal/backup/IBackupTransport;)V
-PLcom/android/server/backup/transport/TransportClient;->stateToString(I)Ljava/lang/String;
-PLcom/android/server/backup/transport/TransportClient;->toString()Ljava/lang/String;
-PLcom/android/server/backup/transport/TransportClient;->transitionThroughState(III)I
+PLcom/android/server/backup/transport/TransportClient;->onServiceDisconnected()V
+HPLcom/android/server/backup/transport/TransportClient;->onStateTransition(II)V
+HPLcom/android/server/backup/transport/TransportClient;->saveLogEntry(Ljava/lang/String;)V
+HPLcom/android/server/backup/transport/TransportClient;->setStateLocked(ILcom/android/internal/backup/IBackupTransport;)V
+HPLcom/android/server/backup/transport/TransportClient;->stateToString(I)Ljava/lang/String;
+HPLcom/android/server/backup/transport/TransportClient;->toString()Ljava/lang/String;
+HPLcom/android/server/backup/transport/TransportClient;->transitionThroughState(III)I
PLcom/android/server/backup/transport/TransportClient;->unbind(Ljava/lang/String;)V
PLcom/android/server/backup/transport/TransportClientManager;-><clinit>()V
PLcom/android/server/backup/transport/TransportClientManager;-><init>(ILandroid/content/Context;Lcom/android/server/backup/transport/TransportStats;)V
PLcom/android/server/backup/transport/TransportClientManager;-><init>(ILandroid/content/Context;Lcom/android/server/backup/transport/TransportStats;Ljava/util/function/Function;)V
PLcom/android/server/backup/transport/TransportClientManager;->disposeOfTransportClient(Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;)V
-PLcom/android/server/backup/transport/TransportClientManager;->getRealTransportIntent(Landroid/content/ComponentName;)Landroid/content/Intent;
+PLcom/android/server/backup/transport/TransportClientManager;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/backup/transport/TransportClientManager;->getRealTransportIntent(Landroid/content/ComponentName;)Landroid/content/Intent;
PLcom/android/server/backup/transport/TransportClientManager;->getTransportClient(Landroid/content/ComponentName;Landroid/os/Bundle;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
PLcom/android/server/backup/transport/TransportClientManager;->getTransportClient(Landroid/content/ComponentName;Ljava/lang/String;)Lcom/android/server/backup/transport/TransportClient;
PLcom/android/server/backup/transport/TransportClientManager;->getTransportClient(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;)Lcom/android/server/backup/transport/TransportClient;
-PLcom/android/server/backup/transport/TransportClientManager;->lambda$3-d3ib7qD5oE9G-iWpfeoufnGXc(Landroid/content/ComponentName;)Landroid/content/Intent;
+HPLcom/android/server/backup/transport/TransportClientManager;->lambda$3-d3ib7qD5oE9G-iWpfeoufnGXc(Landroid/content/ComponentName;)Landroid/content/Intent;
+PLcom/android/server/backup/transport/TransportNotAvailableException;-><init>()V
PLcom/android/server/backup/transport/TransportStats$Stats;-><init>()V
-PLcom/android/server/backup/transport/TransportStats$Stats;->access$000(Lcom/android/server/backup/transport/TransportStats$Stats;J)V
+HPLcom/android/server/backup/transport/TransportStats$Stats;->access$000(Lcom/android/server/backup/transport/TransportStats$Stats;J)V
PLcom/android/server/backup/transport/TransportStats$Stats;->register(J)V
PLcom/android/server/backup/transport/TransportStats;-><init>()V
PLcom/android/server/backup/transport/TransportStats;->registerConnectionTime(Landroid/content/ComponentName;J)V
-PLcom/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
+HPLcom/android/server/backup/transport/TransportUtils;->formatMessage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/backup/transport/TransportUtils;->log(ILjava/lang/String;Ljava/lang/String;)V
PLcom/android/server/backup/utils/AppBackupUtils;-><clinit>()V
HPLcom/android/server/backup/utils/AppBackupUtils;->appGetsFullBackup(Landroid/content/pm/PackageInfo;)Z
HPLcom/android/server/backup/utils/AppBackupUtils;->appIsDisabled(Landroid/content/pm/ApplicationInfo;Landroid/content/pm/PackageManagerInternal;I)Z
HPLcom/android/server/backup/utils/AppBackupUtils;->appIsEligibleForBackup(Landroid/content/pm/ApplicationInfo;I)Z
HPLcom/android/server/backup/utils/AppBackupUtils;->appIsEligibleForBackup(Landroid/content/pm/ApplicationInfo;Landroid/content/pm/PackageManagerInternal;I)Z
-PLcom/android/server/backup/utils/AppBackupUtils;->appIsStopped(Landroid/content/pm/ApplicationInfo;)Z
-PLcom/android/server/backup/utils/AppBackupUtils;->signaturesMatch([Landroid/content/pm/Signature;Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageManagerInternal;)Z
+PLcom/android/server/backup/utils/AppBackupUtils;->appIsRunningAndEligibleForBackupWithTransport(Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;Landroid/content/pm/PackageManager;I)Z
+HPLcom/android/server/backup/utils/AppBackupUtils;->appIsStopped(Landroid/content/pm/ApplicationInfo;)Z
PLcom/android/server/backup/utils/BackupManagerMonitorUtils;->monitorEvent(Landroid/app/backup/IBackupManagerMonitor;ILandroid/content/pm/PackageInfo;ILandroid/os/Bundle;)Landroid/app/backup/IBackupManagerMonitor;
+PLcom/android/server/backup/utils/BackupManagerMonitorUtils;->putMonitoringExtra(Landroid/os/Bundle;Ljava/lang/String;J)Landroid/os/Bundle;
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
+HPLcom/android/server/backup/utils/BackupObserverUtils;->sendBackupOnUpdate(Landroid/app/backup/IBackupObserver;Ljava/lang/String;Landroid/app/backup/BackupProgress;)V
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;
-PLcom/android/server/backup/utils/FullBackupRestoreObserverUtils;->sendOnRestorePackage(Landroid/app/backup/IFullBackupRestoreObserver;Ljava/lang/String;)Landroid/app/backup/IFullBackupRestoreObserver;
+HPLcom/android/server/backup/utils/FullBackupUtils;->routeSocketDataToOutput(Landroid/os/ParcelFileDescriptor;Ljava/io/OutputStream;)V
PLcom/android/server/backup/utils/RandomAccessFileUtils;->getRandomAccessFile(Ljava/io/File;)Ljava/io/RandomAccessFile;
PLcom/android/server/backup/utils/RandomAccessFileUtils;->writeBoolean(Ljava/io/File;Z)V
HPLcom/android/server/backup/utils/SparseArrayUtils;->union(Landroid/util/SparseArray;)Ljava/util/HashSet;
-HPLcom/android/server/backup/utils/TarBackupReader;-><init>(Ljava/io/InputStream;Lcom/android/server/backup/utils/BytesReadListener;Landroid/app/backup/IBackupManagerMonitor;)V
-PLcom/android/server/backup/utils/TarBackupReader;->chooseRestorePolicy(Landroid/content/pm/PackageManager;ZLcom/android/server/backup/FileMetadata;[Landroid/content/pm/Signature;Landroid/content/pm/PackageManagerInternal;I)Lcom/android/server/backup/restore/RestorePolicy;
-HPLcom/android/server/backup/utils/TarBackupReader;->extractLine([BI[Ljava/lang/String;)I
-HPLcom/android/server/backup/utils/TarBackupReader;->extractRadix([BIII)J
-PLcom/android/server/backup/utils/TarBackupReader;->extractString([BII)Ljava/lang/String;
-PLcom/android/server/backup/utils/TarBackupReader;->readAppManifestAndReturnSignatures(Lcom/android/server/backup/FileMetadata;)[Landroid/content/pm/Signature;
-PLcom/android/server/backup/utils/TarBackupReader;->readExactly(Ljava/io/InputStream;[BII)I
-PLcom/android/server/backup/utils/TarBackupReader;->readPaxExtendedHeader(Lcom/android/server/backup/FileMetadata;)Z
-PLcom/android/server/backup/utils/TarBackupReader;->readTarHeader([B)Z
-HPLcom/android/server/backup/utils/TarBackupReader;->readTarHeaders()Lcom/android/server/backup/FileMetadata;
-PLcom/android/server/backup/utils/TarBackupReader;->skipTarPadding(J)V
-PLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$5zE_f-JKSpUWsfwvdtw36YktZZ0;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
+HSPLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$5zE_f-JKSpUWsfwvdtw36YktZZ0;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
PLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$5zE_f-JKSpUWsfwvdtw36YktZZ0;->run()V
-PLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$B1PDNz5plOtQUbeZgXMkI_dh_yQ;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/os/IBinder;Z)V
+HPLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$B1PDNz5plOtQUbeZgXMkI_dh_yQ;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/os/IBinder;Z)V
PLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$B1PDNz5plOtQUbeZgXMkI_dh_yQ;->run()V
PLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$VFT8WmkESkAnonaxJDq_GS_vB4E;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;JLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;Ljava/lang/String;)V
PLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$VFT8WmkESkAnonaxJDq_GS_vB4E;->run()V
-PLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$lM-Gght_XjLuQG2iY0xHchO8Xgk;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Lcom/android/server/biometrics/EnumerateClient;)V
+HSPLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$lM-Gght_XjLuQG2iY0xHchO8Xgk;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Lcom/android/server/biometrics/EnumerateClient;)V
PLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$lM-Gght_XjLuQG2iY0xHchO8Xgk;->run()V
PLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$rf3hjPI_nf4EvVsQV7gFCF1-HpI;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;I)V
PLcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$rf3hjPI_nf4EvVsQV7gFCF1-HpI;->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$1;)V
-PLcom/android/server/biometrics/AuthService$AuthServiceImpl;->canAuthenticate(Ljava/lang/String;I)I
+HSPLcom/android/server/biometrics/AuthService$AuthServiceImpl;-><init>(Lcom/android/server/biometrics/AuthService;)V
+HSPLcom/android/server/biometrics/AuthService$AuthServiceImpl;-><init>(Lcom/android/server/biometrics/AuthService;Lcom/android/server/biometrics/AuthService$1;)V
+HPLcom/android/server/biometrics/AuthService$AuthServiceImpl;->canAuthenticate(Ljava/lang/String;II)I
PLcom/android/server/biometrics/AuthService$AuthServiceImpl;->hasEnrolledBiometrics(ILjava/lang/String;)Z
-PLcom/android/server/biometrics/AuthService$AuthServiceImpl;->registerEnabledOnKeyguardCallback(Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;)V
+HSPLcom/android/server/biometrics/AuthService$AuthServiceImpl;->registerEnabledOnKeyguardCallback(Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;)V
PLcom/android/server/biometrics/AuthService$AuthServiceImpl;->resetLockout([B)V
PLcom/android/server/biometrics/AuthService$AuthServiceImpl;->setActiveUser(I)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;->publishBinderService(Lcom/android/server/biometrics/AuthService;Landroid/hardware/biometrics/IAuthService$Stub;)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
+HSPLcom/android/server/biometrics/AuthService$Injector;-><init>()V
+HSPLcom/android/server/biometrics/AuthService$Injector;->getBiometricService()Landroid/hardware/biometrics/IBiometricService;
+HSPLcom/android/server/biometrics/AuthService$Injector;->getConfiguration(Landroid/content/Context;)[Ljava/lang/String;
+HSPLcom/android/server/biometrics/AuthService$Injector;->publishBinderService(Lcom/android/server/biometrics/AuthService;Landroid/hardware/biometrics/IAuthService$Stub;)V
+HSPLcom/android/server/biometrics/AuthService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/biometrics/AuthService;-><init>(Landroid/content/Context;Lcom/android/server/biometrics/AuthService$Injector;)V
+HSPLcom/android/server/biometrics/AuthService;->access$000(Lcom/android/server/biometrics/AuthService;Ljava/lang/String;Landroid/os/IBinder;)V
PLcom/android/server/biometrics/AuthService;->access$100(Lcom/android/server/biometrics/AuthService;)V
-PLcom/android/server/biometrics/AuthService;->access$200(Lcom/android/server/biometrics/AuthService;)V
-PLcom/android/server/biometrics/AuthService;->access$300(Lcom/android/server/biometrics/AuthService;)Landroid/hardware/biometrics/IBiometricService;
-PLcom/android/server/biometrics/AuthService;->checkInternalPermission()V
+HSPLcom/android/server/biometrics/AuthService;->access$200(Lcom/android/server/biometrics/AuthService;)V
+HSPLcom/android/server/biometrics/AuthService;->access$300(Lcom/android/server/biometrics/AuthService;)Landroid/hardware/biometrics/IBiometricService;
+HSPLcom/android/server/biometrics/AuthService;->checkInternalPermission()V
PLcom/android/server/biometrics/AuthService;->checkPermission()V
-PLcom/android/server/biometrics/AuthService;->onStart()V
+HSPLcom/android/server/biometrics/AuthService;->onStart()V
+HSPLcom/android/server/biometrics/AuthService;->registerAuthenticator(Lcom/android/server/biometrics/SensorConfig;)V
PLcom/android/server/biometrics/AuthenticationClient;-><init>(Landroid/content/Context;Lcom/android/server/biometrics/Constants;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZ)V
+PLcom/android/server/biometrics/AuthenticationClient;->binderDied()V
+PLcom/android/server/biometrics/AuthenticationClient;->getStartTimeMs()J
PLcom/android/server/biometrics/AuthenticationClient;->isBiometricPrompt()Z
PLcom/android/server/biometrics/AuthenticationClient;->isCryptoOperation()Z
-PLcom/android/server/biometrics/AuthenticationClient;->onAuthenticated(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;ZLjava/util/ArrayList;)Z
+HPLcom/android/server/biometrics/AuthenticationClient;->onAuthenticated(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;ZLjava/util/ArrayList;)Z
PLcom/android/server/biometrics/AuthenticationClient;->onError(JII)Z
-PLcom/android/server/biometrics/AuthenticationClient;->start()I
+HPLcom/android/server/biometrics/AuthenticationClient;->start()I
PLcom/android/server/biometrics/AuthenticationClient;->statsAction()I
-PLcom/android/server/biometrics/AuthenticationClient;->stop(Z)I
-PLcom/android/server/biometrics/BiometricService$1;-><init>(Lcom/android/server/biometrics/BiometricService;Landroid/os/Looper;)V
-PLcom/android/server/biometrics/BiometricService$2;-><init>(Lcom/android/server/biometrics/BiometricService;)V
-PLcom/android/server/biometrics/BiometricService$3;-><init>(Lcom/android/server/biometrics/BiometricService;)V
-PLcom/android/server/biometrics/BiometricService$AuthenticatorWrapper;-><init>(IIILandroid/hardware/biometrics/IBiometricAuthenticator;)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$1;)V
-PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->canAuthenticate(Ljava/lang/String;I)I
+HPLcom/android/server/biometrics/AuthenticationClient;->stop(Z)I
+HSPLcom/android/server/biometrics/BiometricService$1;-><init>(Lcom/android/server/biometrics/BiometricService;Landroid/os/Looper;)V
+HSPLcom/android/server/biometrics/BiometricService$2;-><init>(Lcom/android/server/biometrics/BiometricService;)V
+HSPLcom/android/server/biometrics/BiometricService$3;-><init>(Lcom/android/server/biometrics/BiometricService;)V
+HSPLcom/android/server/biometrics/BiometricService$AuthenticatorWrapper;-><init>(IIILandroid/hardware/biometrics/IBiometricAuthenticator;)V
+PLcom/android/server/biometrics/BiometricService$AuthenticatorWrapper;->getActualStrength()I
+HSPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;-><init>(Lcom/android/server/biometrics/BiometricService;)V
+HSPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;-><init>(Lcom/android/server/biometrics/BiometricService;Lcom/android/server/biometrics/BiometricService$1;)V
+HPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->canAuthenticate(Ljava/lang/String;II)I
PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->hasEnrolledBiometrics(ILjava/lang/String;)Z
-PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->registerAuthenticator(IIILandroid/hardware/biometrics/IBiometricAuthenticator;)V
-PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->registerEnabledOnKeyguardCallback(Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;)V
+HSPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->registerAuthenticator(IIILandroid/hardware/biometrics/IBiometricAuthenticator;)V
+HSPLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->registerEnabledOnKeyguardCallback(Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;)V
PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->resetLockout([B)V
PLcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;->setActiveUser(I)V
-PLcom/android/server/biometrics/BiometricService$EnabledOnKeyguardCallback;-><init>(Lcom/android/server/biometrics/BiometricService;Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;)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;->getKeyStore()Landroid/security/KeyStore;
-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;->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;->getFaceEnabledOnKeyguard()Z
-PLcom/android/server/biometrics/BiometricService$SettingObserver;->onChange(ZLandroid/net/Uri;I)V
-PLcom/android/server/biometrics/BiometricService$SettingObserver;->updateContentObserver()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;)V
-PLcom/android/server/biometrics/BiometricService;->access$1100(Lcom/android/server/biometrics/BiometricService;)Ljava/util/List;
-PLcom/android/server/biometrics/BiometricService;->access$1200(Lcom/android/server/biometrics/BiometricService;)V
+HSPLcom/android/server/biometrics/BiometricService$EnabledOnKeyguardCallback;-><init>(Lcom/android/server/biometrics/BiometricService;Landroid/hardware/biometrics/IBiometricEnabledOnKeyguardCallback;)V
+HSPLcom/android/server/biometrics/BiometricService$Injector;-><init>()V
+HSPLcom/android/server/biometrics/BiometricService$Injector;->getActivityManagerService()Landroid/app/IActivityManager;
+HSPLcom/android/server/biometrics/BiometricService$Injector;->getBiometricStrengthController(Lcom/android/server/biometrics/BiometricService;)Lcom/android/server/biometrics/BiometricStrengthController;
+HSPLcom/android/server/biometrics/BiometricService$Injector;->getConfiguration(Landroid/content/Context;)[Ljava/lang/String;
+HSPLcom/android/server/biometrics/BiometricService$Injector;->getKeyStore()Landroid/security/KeyStore;
+HSPLcom/android/server/biometrics/BiometricService$Injector;->getSettingObserver(Landroid/content/Context;Landroid/os/Handler;Ljava/util/List;)Lcom/android/server/biometrics/BiometricService$SettingObserver;
+HSPLcom/android/server/biometrics/BiometricService$Injector;->getStatusBarService()Lcom/android/internal/statusbar/IStatusBarService;
+HSPLcom/android/server/biometrics/BiometricService$Injector;->getTrustManager()Landroid/app/trust/ITrustManager;
+HSPLcom/android/server/biometrics/BiometricService$Injector;->publishBinderService(Lcom/android/server/biometrics/BiometricService;Landroid/hardware/biometrics/IBiometricService$Stub;)V
+HSPLcom/android/server/biometrics/BiometricService$SettingObserver;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/util/List;)V
+PLcom/android/server/biometrics/BiometricService$SettingObserver;->getFaceEnabledForApps(I)Z
+HSPLcom/android/server/biometrics/BiometricService$SettingObserver;->getFaceEnabledOnKeyguard()Z
+HSPLcom/android/server/biometrics/BiometricService$SettingObserver;->onChange(ZLandroid/net/Uri;I)V
+HSPLcom/android/server/biometrics/BiometricService$SettingObserver;->updateContentObserver()V
+HSPLcom/android/server/biometrics/BiometricService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/biometrics/BiometricService;-><init>(Landroid/content/Context;Lcom/android/server/biometrics/BiometricService$Injector;)V
+HSPLcom/android/server/biometrics/BiometricService;->access$1100(Lcom/android/server/biometrics/BiometricService;)Ljava/util/List;
+HSPLcom/android/server/biometrics/BiometricService;->access$1200(Lcom/android/server/biometrics/BiometricService;)V
PLcom/android/server/biometrics/BiometricService;->access$1300(Lcom/android/server/biometrics/BiometricService;)V
-PLcom/android/server/biometrics/BiometricService;->access$1400(Lcom/android/server/biometrics/BiometricService;ILjava/lang/String;)Landroid/util/Pair;
-PLcom/android/server/biometrics/BiometricService;->access$1500(Lcom/android/server/biometrics/BiometricService;Ljava/lang/String;Landroid/os/IBinder;)V
-PLcom/android/server/biometrics/BiometricService;->checkAndGetBiometricModality(ILjava/lang/String;)Landroid/util/Pair;
-PLcom/android/server/biometrics/BiometricService;->checkInternalPermission()V
+PLcom/android/server/biometrics/BiometricService;->access$1400(Lcom/android/server/biometrics/BiometricService;ILandroid/os/Bundle;Ljava/lang/String;)Landroid/util/Pair;
+HSPLcom/android/server/biometrics/BiometricService;->access$1500(Lcom/android/server/biometrics/BiometricService;)Lcom/android/server/biometrics/BiometricService$Injector;
+HSPLcom/android/server/biometrics/BiometricService;->access$1600(Lcom/android/server/biometrics/BiometricService;Ljava/lang/String;Landroid/os/IBinder;)V
+HPLcom/android/server/biometrics/BiometricService;->checkAndGetAuthenticators(ILandroid/os/Bundle;Ljava/lang/String;)Landroid/util/Pair;
+HSPLcom/android/server/biometrics/BiometricService;->checkInternalPermission()V
PLcom/android/server/biometrics/BiometricService;->checkPermission()V
-PLcom/android/server/biometrics/BiometricService;->onStart()V
-PLcom/android/server/biometrics/BiometricServiceBase$1;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
-PLcom/android/server/biometrics/BiometricServiceBase$1;->run()V
-PLcom/android/server/biometrics/BiometricServiceBase$2;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
+PLcom/android/server/biometrics/BiometricService;->isEnabledForApp(II)Z
+HSPLcom/android/server/biometrics/BiometricService;->onStart()V
+HSPLcom/android/server/biometrics/BiometricServiceBase$1;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
+HPLcom/android/server/biometrics/BiometricServiceBase$1;->run()V
+HSPLcom/android/server/biometrics/BiometricServiceBase$2;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
PLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZ)V
PLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;->handleFailedAttempt()I
-PLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;->notifyUserActivity()V
PLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;->onStart()V
PLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;->onStop()V
PLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;->statsClient()I
-PLcom/android/server/biometrics/BiometricServiceBase$BiometricTaskStackListener;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
-PLcom/android/server/biometrics/BiometricServiceBase$BiometricTaskStackListener;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Lcom/android/server/biometrics/BiometricServiceBase$1;)V
-PLcom/android/server/biometrics/BiometricServiceBase$BiometricTaskStackListener;->onTaskStackChanged()V
-PLcom/android/server/biometrics/BiometricServiceBase$H;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
-PLcom/android/server/biometrics/BiometricServiceBase$InternalEnumerateClient;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIZLjava/lang/String;Ljava/util/List;Lcom/android/server/biometrics/BiometricUtils;)V
+HSPLcom/android/server/biometrics/BiometricServiceBase$BiometricTaskStackListener;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
+HSPLcom/android/server/biometrics/BiometricServiceBase$BiometricTaskStackListener;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Lcom/android/server/biometrics/BiometricServiceBase$1;)V
+HPLcom/android/server/biometrics/BiometricServiceBase$BiometricTaskStackListener;->onTaskStackChanged()V
+HSPLcom/android/server/biometrics/BiometricServiceBase$H;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
+HSPLcom/android/server/biometrics/BiometricServiceBase$InternalEnumerateClient;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIZLjava/lang/String;Ljava/util/List;Lcom/android/server/biometrics/BiometricUtils;)V
PLcom/android/server/biometrics/BiometricServiceBase$InternalEnumerateClient;->doTemplateCleanup()V
PLcom/android/server/biometrics/BiometricServiceBase$InternalEnumerateClient;->getUnknownHALTemplates()Ljava/util/List;
PLcom/android/server/biometrics/BiometricServiceBase$InternalEnumerateClient;->handleEnumeratedTemplate(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;)V
@@ -5956,241 +7075,366 @@ PLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor$1;-><in
PLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor$1;->sendResult(Landroid/os/Bundle;)V
PLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor$2;-><init>(Lcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor;)V
PLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
+PLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor;->access$1200(Lcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor;)V
+PLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor;->releaseWakelock()V
PLcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor;->sendLockoutReset()V
PLcom/android/server/biometrics/BiometricServiceBase$PerformanceStats;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
-PLcom/android/server/biometrics/BiometricServiceBase$ResetClientStateRunnable;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
-PLcom/android/server/biometrics/BiometricServiceBase$ResetClientStateRunnable;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Lcom/android/server/biometrics/BiometricServiceBase$1;)V
-PLcom/android/server/biometrics/BiometricServiceBase;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/biometrics/BiometricServiceBase$ResetClientStateRunnable;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;)V
+HSPLcom/android/server/biometrics/BiometricServiceBase$ResetClientStateRunnable;-><init>(Lcom/android/server/biometrics/BiometricServiceBase;Lcom/android/server/biometrics/BiometricServiceBase$1;)V
+HSPLcom/android/server/biometrics/BiometricServiceBase;-><init>(Landroid/content/Context;)V
PLcom/android/server/biometrics/BiometricServiceBase;->access$1100(Lcom/android/server/biometrics/BiometricServiceBase;)Landroid/os/PowerManager;
PLcom/android/server/biometrics/BiometricServiceBase;->access$200(Lcom/android/server/biometrics/BiometricServiceBase;Ljava/lang/String;)Z
PLcom/android/server/biometrics/BiometricServiceBase;->access$300(Lcom/android/server/biometrics/BiometricServiceBase;)Lcom/android/server/biometrics/BiometricServiceBase$BiometricTaskStackListener;
PLcom/android/server/biometrics/BiometricServiceBase;->access$400(Lcom/android/server/biometrics/BiometricServiceBase;)Landroid/app/IActivityTaskManager;
PLcom/android/server/biometrics/BiometricServiceBase;->access$700(Lcom/android/server/biometrics/BiometricServiceBase;)Lcom/android/server/biometrics/ClientMonitor;
PLcom/android/server/biometrics/BiometricServiceBase;->access$800(Lcom/android/server/biometrics/BiometricServiceBase;)Ljava/lang/Runnable;
-PLcom/android/server/biometrics/BiometricServiceBase;->addLockoutResetCallback(Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
+HSPLcom/android/server/biometrics/BiometricServiceBase;->addLockoutResetCallback(Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
PLcom/android/server/biometrics/BiometricServiceBase;->authenticateInternal(Lcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;JLjava/lang/String;)V
PLcom/android/server/biometrics/BiometricServiceBase;->authenticateInternal(Lcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;JLjava/lang/String;III)V
-PLcom/android/server/biometrics/BiometricServiceBase;->canUseBiometric(Ljava/lang/String;ZIII)Z
+HSPLcom/android/server/biometrics/BiometricServiceBase;->canUseBiometric(Ljava/lang/String;ZIII)Z
+PLcom/android/server/biometrics/BiometricServiceBase;->cancelAuthenticationInternal(Landroid/os/IBinder;Ljava/lang/String;)V
PLcom/android/server/biometrics/BiometricServiceBase;->cancelAuthenticationInternal(Landroid/os/IBinder;Ljava/lang/String;IIIZ)V
-PLcom/android/server/biometrics/BiometricServiceBase;->checkPermission(Ljava/lang/String;)V
+HSPLcom/android/server/biometrics/BiometricServiceBase;->checkPermission(Ljava/lang/String;)V
PLcom/android/server/biometrics/BiometricServiceBase;->clearEnumerateState()V
-PLcom/android/server/biometrics/BiometricServiceBase;->doTemplateCleanupForUser(I)V
-PLcom/android/server/biometrics/BiometricServiceBase;->enumerateInternal(Lcom/android/server/biometrics/EnumerateClient;)V
-PLcom/android/server/biometrics/BiometricServiceBase;->enumerateUser(I)V
+HSPLcom/android/server/biometrics/BiometricServiceBase;->doTemplateCleanupForUser(I)V
+HSPLcom/android/server/biometrics/BiometricServiceBase;->enumerateInternal(Lcom/android/server/biometrics/EnumerateClient;)V
+HSPLcom/android/server/biometrics/BiometricServiceBase;->enumerateUser(I)V
+PLcom/android/server/biometrics/BiometricServiceBase;->getAuthenticatorId(Ljava/lang/String;)J
PLcom/android/server/biometrics/BiometricServiceBase;->getCurrentClient()Lcom/android/server/biometrics/ClientMonitor;
-PLcom/android/server/biometrics/BiometricServiceBase;->getEffectiveUserId(I)I
-PLcom/android/server/biometrics/BiometricServiceBase;->getUserOrWorkProfileId(Ljava/lang/String;I)I
+HSPLcom/android/server/biometrics/BiometricServiceBase;->getEffectiveUserId(I)I
+HSPLcom/android/server/biometrics/BiometricServiceBase;->getUserOrWorkProfileId(Ljava/lang/String;I)I
PLcom/android/server/biometrics/BiometricServiceBase;->handleAcquired(JII)V
PLcom/android/server/biometrics/BiometricServiceBase;->handleAuthenticated(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;Ljava/util/ArrayList;)V
PLcom/android/server/biometrics/BiometricServiceBase;->handleEnumerate(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
PLcom/android/server/biometrics/BiometricServiceBase;->handleError(JII)V
-PLcom/android/server/biometrics/BiometricServiceBase;->hasPermission(Ljava/lang/String;)Z
+HSPLcom/android/server/biometrics/BiometricServiceBase;->hasPermission(Ljava/lang/String;)Z
PLcom/android/server/biometrics/BiometricServiceBase;->isCurrentUserOrProfile(I)Z
-PLcom/android/server/biometrics/BiometricServiceBase;->isKeyguard(Ljava/lang/String;)Z
+HSPLcom/android/server/biometrics/BiometricServiceBase;->isKeyguard(Ljava/lang/String;)Z
PLcom/android/server/biometrics/BiometricServiceBase;->isRestricted()Z
-PLcom/android/server/biometrics/BiometricServiceBase;->isWorkProfile(I)Z
+HSPLcom/android/server/biometrics/BiometricServiceBase;->isWorkProfile(I)Z
PLcom/android/server/biometrics/BiometricServiceBase;->lambda$addLockoutResetCallback$8$BiometricServiceBase(Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
-PLcom/android/server/biometrics/BiometricServiceBase;->lambda$authenticateInternal$3$BiometricServiceBase(JLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;Ljava/lang/String;)V
-PLcom/android/server/biometrics/BiometricServiceBase;->lambda$cancelAuthenticationInternal$4$BiometricServiceBase(Landroid/os/IBinder;Z)V
+HPLcom/android/server/biometrics/BiometricServiceBase;->lambda$authenticateInternal$3$BiometricServiceBase(JLcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;Ljava/lang/String;)V
+HPLcom/android/server/biometrics/BiometricServiceBase;->lambda$cancelAuthenticationInternal$4$BiometricServiceBase(Landroid/os/IBinder;Z)V
PLcom/android/server/biometrics/BiometricServiceBase;->lambda$enumerateInternal$7$BiometricServiceBase(Lcom/android/server/biometrics/EnumerateClient;)V
PLcom/android/server/biometrics/BiometricServiceBase;->lambda$setActiveUserInternal$5$BiometricServiceBase(I)V
-PLcom/android/server/biometrics/BiometricServiceBase;->listenForUserSwitches()V
-PLcom/android/server/biometrics/BiometricServiceBase;->loadAuthenticatorIds()V
-PLcom/android/server/biometrics/BiometricServiceBase;->onStart()V
+HSPLcom/android/server/biometrics/BiometricServiceBase;->listenForUserSwitches()V
+HSPLcom/android/server/biometrics/BiometricServiceBase;->loadAuthenticatorIds()V
+PLcom/android/server/biometrics/BiometricServiceBase;->notifyLockoutResetMonitors()V
+HSPLcom/android/server/biometrics/BiometricServiceBase;->onStart()V
PLcom/android/server/biometrics/BiometricServiceBase;->removeClient(Lcom/android/server/biometrics/ClientMonitor;)V
PLcom/android/server/biometrics/BiometricServiceBase;->startAuthentication(Lcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;Ljava/lang/String;)V
PLcom/android/server/biometrics/BiometricServiceBase;->startCleanupUnknownHALTemplates()V
PLcom/android/server/biometrics/BiometricServiceBase;->startClient(Lcom/android/server/biometrics/ClientMonitor;Z)V
PLcom/android/server/biometrics/BiometricServiceBase;->startCurrentClient(I)V
-PLcom/android/server/biometrics/BiometricUserState$1;-><init>(Lcom/android/server/biometrics/BiometricUserState;)V
-PLcom/android/server/biometrics/BiometricUserState;-><init>(Landroid/content/Context;I)V
-PLcom/android/server/biometrics/BiometricUserState;->getBiometrics()Ljava/util/List;
-PLcom/android/server/biometrics/BiometricUserState;->getFileForUser(I)Ljava/io/File;
-PLcom/android/server/biometrics/BiometricUserState;->parseStateLocked(Lorg/xmlpull/v1/XmlPullParser;)V
-PLcom/android/server/biometrics/BiometricUserState;->readStateSyncLocked()V
-PLcom/android/server/biometrics/ClientMonitor;-><clinit>()V
-PLcom/android/server/biometrics/ClientMonitor;-><init>(Landroid/content/Context;Lcom/android/server/biometrics/Constants;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIZLjava/lang/String;I)V
-PLcom/android/server/biometrics/ClientMonitor;->blacklistContains(II)Z
-PLcom/android/server/biometrics/ClientMonitor;->destroy()V
+HSPLcom/android/server/biometrics/BiometricStrengthController;-><clinit>()V
+HSPLcom/android/server/biometrics/BiometricStrengthController;-><init>(Lcom/android/server/biometrics/BiometricService;)V
+HSPLcom/android/server/biometrics/BiometricStrengthController;->getIdToStrengthMap()Ljava/util/Map;
+HSPLcom/android/server/biometrics/BiometricStrengthController;->startListening()V
+HSPLcom/android/server/biometrics/BiometricStrengthController;->updateStrengths()V
+HSPLcom/android/server/biometrics/BiometricUserState$1;-><init>(Lcom/android/server/biometrics/BiometricUserState;)V
+HSPLcom/android/server/biometrics/BiometricUserState;-><init>(Landroid/content/Context;I)V
+HSPLcom/android/server/biometrics/BiometricUserState;->getBiometrics()Ljava/util/List;
+HSPLcom/android/server/biometrics/BiometricUserState;->getFileForUser(I)Ljava/io/File;
+HSPLcom/android/server/biometrics/BiometricUserState;->parseStateLocked(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/server/biometrics/BiometricUserState;->readStateSyncLocked()V
+HSPLcom/android/server/biometrics/ClientMonitor;-><clinit>()V
+HSPLcom/android/server/biometrics/ClientMonitor;-><init>(Landroid/content/Context;Lcom/android/server/biometrics/Constants;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIZLjava/lang/String;I)V
+HPLcom/android/server/biometrics/ClientMonitor;->blacklistContains(II)Z
+HPLcom/android/server/biometrics/ClientMonitor;->destroy()V
PLcom/android/server/biometrics/ClientMonitor;->finalize()V
-PLcom/android/server/biometrics/ClientMonitor;->getAcquireIgnorelist()[I
+PLcom/android/server/biometrics/ClientMonitor;->getContext()Landroid/content/Context;
PLcom/android/server/biometrics/ClientMonitor;->getCookie()I
PLcom/android/server/biometrics/ClientMonitor;->getDaemonWrapper()Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;
PLcom/android/server/biometrics/ClientMonitor;->getGroupId()I
+PLcom/android/server/biometrics/ClientMonitor;->getHalDeviceId()J
+PLcom/android/server/biometrics/ClientMonitor;->getIsRestricted()Z
+PLcom/android/server/biometrics/ClientMonitor;->getListener()Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;
PLcom/android/server/biometrics/ClientMonitor;->getLogTag()Ljava/lang/String;
PLcom/android/server/biometrics/ClientMonitor;->getOwnerString()Ljava/lang/String;
PLcom/android/server/biometrics/ClientMonitor;->getTargetUserId()I
PLcom/android/server/biometrics/ClientMonitor;->getToken()Landroid/os/IBinder;
-PLcom/android/server/biometrics/ClientMonitor;->onAcquired(II)Z
-PLcom/android/server/biometrics/ClientMonitor;->onError(JII)Z
-PLcom/android/server/biometrics/EnumerateClient;-><init>(Landroid/content/Context;Lcom/android/server/biometrics/Constants;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIZLjava/lang/String;)V
+HPLcom/android/server/biometrics/ClientMonitor;->onAcquired(II)Z
+HPLcom/android/server/biometrics/ClientMonitor;->onError(JII)Z
+PLcom/android/server/biometrics/ClientMonitor;->vibrateError()V
+PLcom/android/server/biometrics/ClientMonitor;->vibrateSuccess()V
+HSPLcom/android/server/biometrics/EnumerateClient;-><init>(Landroid/content/Context;Lcom/android/server/biometrics/Constants;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIZLjava/lang/String;)V
PLcom/android/server/biometrics/EnumerateClient;->start()I
-PLcom/android/server/biometrics/LoggableMonitor;-><init>()V
-PLcom/android/server/biometrics/LoggableMonitor;->logOnAcquired(Landroid/content/Context;III)V
-PLcom/android/server/biometrics/LoggableMonitor;->logOnAuthenticated(Landroid/content/Context;ZZIZ)V
-PLcom/android/server/biometrics/LoggableMonitor;->logOnError(Landroid/content/Context;III)V
-PLcom/android/server/biometrics/Utils;->isDebugEnabled(Landroid/content/Context;I)Z
-PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$3I9ge5BoesXZUovbayCOCR754fc;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService$1;IIJI)V
-PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$3I9ge5BoesXZUovbayCOCR754fc;->run()V
-PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$7nMWCt41OE3k8ihjPNPqB0O8POU;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService$1;IIJLjava/util/ArrayList;)V
-PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$7nMWCt41OE3k8ihjPNPqB0O8POU;->run()V
-PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$N1Y2Zwqq-x5yDKQsDTj2KQ5q7g4;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService$1;JII)V
-PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$N1Y2Zwqq-x5yDKQsDTj2KQ5q7g4;->run()V
-PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$cO88ecWuvWIBecLAEccxr5yeJK4;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService$1;JII)V
-PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$cO88ecWuvWIBecLAEccxr5yeJK4;->run()V
-PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$YOMIOLvco2SvXVeJIulOSVKdX7A;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;)V
-PLcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$YOMIOLvco2SvXVeJIulOSVKdX7A;->run()V
-PLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;-><init>(Landroid/hardware/fingerprint/IFingerprintService;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->hasEnrolledTemplates(ILjava/lang/String;)Z
-PLcom/android/server/biometrics/fingerprint/FingerprintAuthenticator;->isHardwareDetected(Ljava/lang/String;)Z
-PLcom/android/server/biometrics/fingerprint/FingerprintConstants;-><init>()V
-PLcom/android/server/biometrics/fingerprint/FingerprintConstants;->acquireVendorCode()I
-PLcom/android/server/biometrics/fingerprint/FingerprintConstants;->logTag()Ljava/lang/String;
-PLcom/android/server/biometrics/fingerprint/FingerprintConstants;->tagAuthToken()Ljava/lang/String;
-PLcom/android/server/biometrics/fingerprint/FingerprintService$1;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->lambda$onEnumerate$5$FingerprintService$1(IIJI)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->lambda$onError$3$FingerprintService$1(JII)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$1;->onEnumerate(JIII)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$2;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$2;->authenticate(JI)I
-PLcom/android/server/biometrics/fingerprint/FingerprintService$2;->enumerate()I
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZ)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->handleFailedAttempt()I
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintAuthClient;->statsModality()I
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;Lcom/android/server/biometrics/fingerprint/FingerprintService$1;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->addLockoutResetCallback(Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->authenticate(Landroid/os/IBinder;JILandroid/hardware/fingerprint/IFingerprintServiceReceiver;ILjava/lang/String;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->cancelAuthentication(Landroid/os/IBinder;Ljava/lang/String;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->getEnrolledFingerprints(ILjava/lang/String;)Ljava/util/List;
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->hasEnrolledFingerprints(ILjava/lang/String;)Z
-HPLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->isHardwareDetected(Ljava/lang/String;)Z
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->resetTimeout([B)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$FingerprintServiceWrapper;->setActiveUser(I)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$LockoutReceiver;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$LockoutReceiver;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;Lcom/android/server/biometrics/fingerprint/FingerprintService$1;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$ResetFailedAttemptsForUserRunnable;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$ResetFailedAttemptsForUserRunnable;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;Lcom/android/server/biometrics/fingerprint/FingerprintService$1;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$ResetFailedAttemptsForUserRunnable;->run()V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;-><init>(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/fingerprint/IFingerprintServiceReceiver;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;->onAcquired(JII)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;->onAuthenticationFailed(J)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService$ServiceListenerImpl;->onError(JIII)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$1000(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$1600(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Z
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$1700(Lcom/android/server/biometrics/fingerprint/FingerprintService;)J
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$1800(Lcom/android/server/biometrics/fingerprint/FingerprintService;)I
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$1900(Lcom/android/server/biometrics/fingerprint/FingerprintService;Lcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;JLjava/lang/String;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$3901(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$4200(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;ZIII)Z
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$4300(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$4400(Lcom/android/server/biometrics/fingerprint/FingerprintService;)J
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$4800(Lcom/android/server/biometrics/fingerprint/FingerprintService;Ljava/lang/String;ZIII)Z
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6700(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->access$6801(Lcom/android/server/biometrics/fingerprint/FingerprintService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->checkUseBiometricPermission()V
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->getBiometricUtils()Lcom/android/server/biometrics/BiometricUtils;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->getConstants()Lcom/android/server/biometrics/Constants;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->getDaemonWrapper()Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->getEnrolledTemplates(I)Ljava/util/List;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->getFingerprintDaemon()Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->getLockoutBroadcastPermission()Ljava/lang/String;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->getLockoutMode()I
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->getLockoutResetIntent()Ljava/lang/String;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->getManageBiometricPermission()Ljava/lang/String;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->getTag()Ljava/lang/String;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->hasEnrolledBiometrics(I)Z
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->lambda$YOMIOLvco2SvXVeJIulOSVKdX7A(Lcom/android/server/biometrics/fingerprint/FingerprintService;)Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint;
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->notifyClientActiveCallbacks(Z)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->onStart()V
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->resetFailedAttemptsForUser(ZI)V
-PLcom/android/server/biometrics/fingerprint/FingerprintService;->updateActiveGroup(ILjava/lang/String;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintUserState;-><init>(Landroid/content/Context;I)V
-PLcom/android/server/biometrics/fingerprint/FingerprintUserState;->getBiometricFile()Ljava/lang/String;
-PLcom/android/server/biometrics/fingerprint/FingerprintUserState;->getBiometricsTag()Ljava/lang/String;
-PLcom/android/server/biometrics/fingerprint/FingerprintUserState;->getCopy(Ljava/util/ArrayList;)Ljava/util/ArrayList;
-PLcom/android/server/biometrics/fingerprint/FingerprintUserState;->parseBiometricsLocked(Lorg/xmlpull/v1/XmlPullParser;)V
-PLcom/android/server/biometrics/fingerprint/FingerprintUtils;-><clinit>()V
-PLcom/android/server/biometrics/fingerprint/FingerprintUtils;-><init>()V
-PLcom/android/server/biometrics/fingerprint/FingerprintUtils;->getBiometricsForUser(Landroid/content/Context;I)Ljava/util/List;
-PLcom/android/server/biometrics/fingerprint/FingerprintUtils;->getInstance()Lcom/android/server/biometrics/fingerprint/FingerprintUtils;
-PLcom/android/server/biometrics/fingerprint/FingerprintUtils;->getStateForUser(Landroid/content/Context;I)Lcom/android/server/biometrics/fingerprint/FingerprintUserState;
-PLcom/android/server/camera/CameraServiceProxy$1;-><init>(Lcom/android/server/camera/CameraServiceProxy;)V
-PLcom/android/server/camera/CameraServiceProxy$2;-><init>(Lcom/android/server/camera/CameraServiceProxy;)V
-PLcom/android/server/camera/CameraServiceProxy;-><clinit>()V
-PLcom/android/server/camera/CameraServiceProxy;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/biometrics/LoggableMonitor;-><init>()V
+HPLcom/android/server/biometrics/LoggableMonitor;->logOnAcquired(Landroid/content/Context;III)V
+HPLcom/android/server/biometrics/LoggableMonitor;->logOnAuthenticated(Landroid/content/Context;ZZIZ)V
+HPLcom/android/server/biometrics/LoggableMonitor;->logOnError(Landroid/content/Context;III)V
+HSPLcom/android/server/biometrics/SensorConfig;-><init>(Ljava/lang/String;)V
+PLcom/android/server/biometrics/Utils;->biometricConstantsToBiometricManager(I)I
+PLcom/android/server/biometrics/Utils;->getPublicBiometricStrength(I)I
+PLcom/android/server/biometrics/Utils;->getPublicBiometricStrength(Landroid/os/Bundle;)I
+PLcom/android/server/biometrics/Utils;->isAtLeastStrength(II)Z
+PLcom/android/server/biometrics/Utils;->isBiometricAllowed(Landroid/os/Bundle;)Z
+HPLcom/android/server/biometrics/Utils;->isDebugEnabled(Landroid/content/Context;I)Z
+PLcom/android/server/biometrics/Utils;->isDeviceCredentialAllowed(I)Z
+PLcom/android/server/biometrics/Utils;->isDeviceCredentialAllowed(Landroid/os/Bundle;)Z
+PLcom/android/server/biometrics/Utils;->isValidAuthenticatorConfig(I)Z
+PLcom/android/server/biometrics/face/-$$Lambda$FaceService$1$7DzDQwoPfgYi40WuB8Xi0hA3qVQ;-><init>(Lcom/android/server/biometrics/face/FaceService$1;JII)V
+HPLcom/android/server/biometrics/face/-$$Lambda$FaceService$1$7DzDQwoPfgYi40WuB8Xi0hA3qVQ;->run()V
+PLcom/android/server/biometrics/face/-$$Lambda$FaceService$1$81olYJI06zsG8LvXV_gD76jaNyg;-><init>(Lcom/android/server/biometrics/face/FaceService$1;Ljava/util/ArrayList;J)V
+PLcom/android/server/biometrics/face/-$$Lambda$FaceService$1$81olYJI06zsG8LvXV_gD76jaNyg;->run()V
+PLcom/android/server/biometrics/face/-$$Lambda$FaceService$1$GcU4ZG1fdDLhKvSxuMwfPargEnI;-><init>(Lcom/android/server/biometrics/face/FaceService$1;IJLjava/util/ArrayList;)V
+PLcom/android/server/biometrics/face/-$$Lambda$FaceService$1$GcU4ZG1fdDLhKvSxuMwfPargEnI;->run()V
+HSPLcom/android/server/biometrics/face/-$$Lambda$FaceService$1$OiHHyHFXrIcrZYUfSsf-E2as1qE;-><init>(Lcom/android/server/biometrics/face/FaceService$1;J)V
+PLcom/android/server/biometrics/face/-$$Lambda$FaceService$1$OiHHyHFXrIcrZYUfSsf-E2as1qE;->run()V
+PLcom/android/server/biometrics/face/-$$Lambda$FaceService$1$s3kBxUsmTmDZC9YLbT5yPR3KOWo;-><init>(Lcom/android/server/biometrics/face/FaceService$1;JII)V
+PLcom/android/server/biometrics/face/-$$Lambda$FaceService$1$s3kBxUsmTmDZC9YLbT5yPR3KOWo;->run()V
+HSPLcom/android/server/biometrics/face/-$$Lambda$FaceService$A0dfsVDvPu3BDJsON7widXUriSs;-><init>(Lcom/android/server/biometrics/face/FaceService;)V
+HSPLcom/android/server/biometrics/face/-$$Lambda$FaceService$A0dfsVDvPu3BDJsON7widXUriSs;->run()V
+PLcom/android/server/biometrics/face/-$$Lambda$FaceService$FaceServiceWrapper$kw0BBGgTrFveHiSJWRbNG8sygqA;-><init>(Lcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;[B)V
+PLcom/android/server/biometrics/face/-$$Lambda$FaceService$FaceServiceWrapper$kw0BBGgTrFveHiSJWRbNG8sygqA;->run()V
+PLcom/android/server/biometrics/face/-$$Lambda$FaceService$FaceServiceWrapper$oUY0TN9T4s4roMpe33Oc2nS7uzI;-><init>(Lcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;Landroid/os/IBinder;)V
+PLcom/android/server/biometrics/face/-$$Lambda$FaceService$FaceServiceWrapper$oUY0TN9T4s4roMpe33Oc2nS7uzI;->run()V
+HSPLcom/android/server/biometrics/face/-$$Lambda$FaceService$rveb67MoYJ0egfY6LL-l05KvUz8;-><init>(Lcom/android/server/biometrics/face/FaceService;)V
+PLcom/android/server/biometrics/face/-$$Lambda$FaceService$rveb67MoYJ0egfY6LL-l05KvUz8;->run()V
+HSPLcom/android/server/biometrics/face/FaceAuthenticator;-><init>(Landroid/hardware/face/IFaceService;)V
+PLcom/android/server/biometrics/face/FaceAuthenticator;->hasEnrolledTemplates(ILjava/lang/String;)Z
+PLcom/android/server/biometrics/face/FaceAuthenticator;->isHardwareDetected(Ljava/lang/String;)Z
+HSPLcom/android/server/biometrics/face/FaceConstants;-><init>()V
+PLcom/android/server/biometrics/face/FaceConstants;->acquireVendorCode()I
+PLcom/android/server/biometrics/face/FaceConstants;->actionBiometricAuth()I
+HPLcom/android/server/biometrics/face/FaceConstants;->logTag()Ljava/lang/String;
+PLcom/android/server/biometrics/face/FaceConstants;->tagAuthToken()Ljava/lang/String;
+HSPLcom/android/server/biometrics/face/FaceService$1;-><init>(Lcom/android/server/biometrics/face/FaceService;)V
+PLcom/android/server/biometrics/face/FaceService$1;->lambda$onAcquired$1$FaceService$1(JII)V
+PLcom/android/server/biometrics/face/FaceService$1;->lambda$onAuthenticated$2$FaceService$1(IJLjava/util/ArrayList;)V
+PLcom/android/server/biometrics/face/FaceService$1;->lambda$onEnumerate$5$FaceService$1(Ljava/util/ArrayList;J)V
+PLcom/android/server/biometrics/face/FaceService$1;->lambda$onError$3$FaceService$1(JII)V
+PLcom/android/server/biometrics/face/FaceService$1;->lambda$onLockoutChanged$6$FaceService$1(J)V
+PLcom/android/server/biometrics/face/FaceService$1;->onAcquired(JIII)V
+PLcom/android/server/biometrics/face/FaceService$1;->onAuthenticated(JIILjava/util/ArrayList;)V
+PLcom/android/server/biometrics/face/FaceService$1;->onEnumerate(JLjava/util/ArrayList;I)V
+PLcom/android/server/biometrics/face/FaceService$1;->onError(JIII)V
+HSPLcom/android/server/biometrics/face/FaceService$1;->onLockoutChanged(J)V
+HSPLcom/android/server/biometrics/face/FaceService$2;-><init>(Lcom/android/server/biometrics/face/FaceService;)V
+PLcom/android/server/biometrics/face/FaceService$2;->authenticate(JI)I
+PLcom/android/server/biometrics/face/FaceService$2;->cancel()I
+PLcom/android/server/biometrics/face/FaceService$2;->enumerate()I
+HPLcom/android/server/biometrics/face/FaceService$2;->resetLockout([B)V
+PLcom/android/server/biometrics/face/FaceService$AuthenticationEvent;-><init>(JJZII)V
+PLcom/android/server/biometrics/face/FaceService$AuthenticationEvent;->access$000(Lcom/android/server/biometrics/face/FaceService$AuthenticationEvent;)Z
+PLcom/android/server/biometrics/face/FaceService$AuthenticationEvent;->access$100(Lcom/android/server/biometrics/face/FaceService$AuthenticationEvent;)J
+PLcom/android/server/biometrics/face/FaceService$AuthenticationEvent;->access$200(Lcom/android/server/biometrics/face/FaceService$AuthenticationEvent;)I
+HPLcom/android/server/biometrics/face/FaceService$AuthenticationEvent;->toString(Landroid/content/Context;)Ljava/lang/String;
+PLcom/android/server/biometrics/face/FaceService$FaceAuthClient;-><init>(Lcom/android/server/biometrics/face/FaceService;Landroid/content/Context;Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;JLandroid/os/IBinder;Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;IIJZLjava/lang/String;IZ)V
+HPLcom/android/server/biometrics/face/FaceService$FaceAuthClient;->getAcquireIgnorelist()[I
+HPLcom/android/server/biometrics/face/FaceService$FaceAuthClient;->onAcquired(II)Z
+PLcom/android/server/biometrics/face/FaceService$FaceAuthClient;->onAuthenticated(Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;ZLjava/util/ArrayList;)Z
+HPLcom/android/server/biometrics/face/FaceService$FaceAuthClient;->onError(JII)Z
+PLcom/android/server/biometrics/face/FaceService$FaceAuthClient;->shouldFrameworkHandleLockout()Z
+PLcom/android/server/biometrics/face/FaceService$FaceAuthClient;->statsModality()I
+PLcom/android/server/biometrics/face/FaceService$FaceAuthClient;->wasUserDetected()Z
+HSPLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;-><init>(Lcom/android/server/biometrics/face/FaceService;)V
+HSPLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;-><init>(Lcom/android/server/biometrics/face/FaceService;Lcom/android/server/biometrics/face/FaceService$1;)V
+HSPLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->addLockoutResetCallback(Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
+HPLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->authenticate(Landroid/os/IBinder;JILandroid/hardware/face/IFaceServiceReceiver;ILjava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->cancelAuthentication(Landroid/os/IBinder;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->generateChallenge(Landroid/os/IBinder;)J
+PLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->getAuthenticatorId(Ljava/lang/String;)J
+HPLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->getEnrolledFaces(ILjava/lang/String;)Ljava/util/List;
+HSPLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->hasEnrolledFaces(ILjava/lang/String;)Z
+HSPLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->isHardwareDetected(Ljava/lang/String;)Z
+PLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->lambda$resetLockout$1$FaceService$FaceServiceWrapper([B)V
+PLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->lambda$revokeChallenge$0$FaceService$FaceServiceWrapper(Landroid/os/IBinder;)V
+PLcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;->revokeChallenge(Landroid/os/IBinder;)I
+PLcom/android/server/biometrics/face/FaceService$ServiceListenerImpl;-><init>(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/face/IFaceServiceReceiver;)V
+PLcom/android/server/biometrics/face/FaceService$ServiceListenerImpl;->onAcquired(JII)V
+PLcom/android/server/biometrics/face/FaceService$ServiceListenerImpl;->onAuthenticationFailed(J)V
+PLcom/android/server/biometrics/face/FaceService$ServiceListenerImpl;->onAuthenticationSucceeded(JLandroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
+PLcom/android/server/biometrics/face/FaceService$ServiceListenerImpl;->onError(JIII)V
+HSPLcom/android/server/biometrics/face/FaceService$UsageStats;-><init>(Lcom/android/server/biometrics/face/FaceService;Landroid/content/Context;)V
+HPLcom/android/server/biometrics/face/FaceService$UsageStats;->addEvent(Lcom/android/server/biometrics/face/FaceService$AuthenticationEvent;)V
+PLcom/android/server/biometrics/face/FaceService$UsageStats;->print(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/biometrics/face/FaceService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/biometrics/face/FaceService;->access$1000(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;)J
+HPLcom/android/server/biometrics/face/FaceService;->access$10001(Lcom/android/server/biometrics/face/FaceService;JII)V
+PLcom/android/server/biometrics/face/FaceService;->access$1100(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$1200(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/face/FaceService;->access$1500(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;
+PLcom/android/server/biometrics/face/FaceService;->access$2400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$2500(Lcom/android/server/biometrics/face/FaceService;)Z
+PLcom/android/server/biometrics/face/FaceService;->access$2600(Lcom/android/server/biometrics/face/FaceService;)J
+PLcom/android/server/biometrics/face/FaceService;->access$2700(Lcom/android/server/biometrics/face/FaceService;)I
+PLcom/android/server/biometrics/face/FaceService;->access$2800(Lcom/android/server/biometrics/face/FaceService;Lcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;JLjava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$300(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/face/FaceService$UsageStats;
+PLcom/android/server/biometrics/face/FaceService;->access$3500(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$3600(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;Ljava/lang/String;)V
+HSPLcom/android/server/biometrics/face/FaceService;->access$4900(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$500(Lcom/android/server/biometrics/face/FaceService;)[I
+HSPLcom/android/server/biometrics/face/FaceService;->access$5001(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/IBiometricServiceLockoutResetCallback;)V
+PLcom/android/server/biometrics/face/FaceService;->access$5200(Lcom/android/server/biometrics/face/FaceService;Ljava/io/PrintWriter;)V
+HSPLcom/android/server/biometrics/face/FaceService;->access$5300(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+HSPLcom/android/server/biometrics/face/FaceService;->access$5400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
+HSPLcom/android/server/biometrics/face/FaceService;->access$5500(Lcom/android/server/biometrics/face/FaceService;)Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
+HSPLcom/android/server/biometrics/face/FaceService;->access$5600(Lcom/android/server/biometrics/face/FaceService;)J
+PLcom/android/server/biometrics/face/FaceService;->access$6100(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+PLcom/android/server/biometrics/face/FaceService;->access$6200(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
+HSPLcom/android/server/biometrics/face/FaceService;->access$6300(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+HSPLcom/android/server/biometrics/face/FaceService;->access$6400(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;ZIII)Z
+PLcom/android/server/biometrics/face/FaceService;->access$6500(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)J
+PLcom/android/server/biometrics/face/FaceService;->access$7800(Lcom/android/server/biometrics/face/FaceService;)I
+PLcom/android/server/biometrics/face/FaceService;->access$7900(Lcom/android/server/biometrics/face/FaceService;)I
+PLcom/android/server/biometrics/face/FaceService;->access$8000(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/ClientMonitor;
+PLcom/android/server/biometrics/face/FaceService;->access$8100(Lcom/android/server/biometrics/face/FaceService;Landroid/os/IBinder;)I
+PLcom/android/server/biometrics/face/FaceService;->access$8202(Lcom/android/server/biometrics/face/FaceService;Z)Z
+PLcom/android/server/biometrics/face/FaceService;->access$8400(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/face/FaceService;->access$8500(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/face/FaceService;->access$8600(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/face/FaceService;->access$8800(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+HSPLcom/android/server/biometrics/face/FaceService;->access$8902(Lcom/android/server/biometrics/face/FaceService;I)I
+PLcom/android/server/biometrics/face/FaceService;->access$900(Lcom/android/server/biometrics/face/FaceService;Ljava/lang/String;)V
+HSPLcom/android/server/biometrics/face/FaceService;->access$9000(Lcom/android/server/biometrics/face/FaceService;)Lcom/android/server/biometrics/BiometricServiceBase$H;
+PLcom/android/server/biometrics/face/FaceService;->access$9100(Lcom/android/server/biometrics/face/FaceService;)V
+PLcom/android/server/biometrics/face/FaceService;->access$9201(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;I)V
+PLcom/android/server/biometrics/face/FaceService;->access$9601(Lcom/android/server/biometrics/face/FaceService;JII)V
+PLcom/android/server/biometrics/face/FaceService;->access$9901(Lcom/android/server/biometrics/face/FaceService;Landroid/hardware/biometrics/BiometricAuthenticator$Identifier;Ljava/util/ArrayList;)V
+PLcom/android/server/biometrics/face/FaceService;->checkAppOps(ILjava/lang/String;)Z
+HSPLcom/android/server/biometrics/face/FaceService;->checkUseBiometricPermission()V
+PLcom/android/server/biometrics/face/FaceService;->dumpInternal(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/biometrics/face/FaceService;->getBiometricUtils()Lcom/android/server/biometrics/BiometricUtils;
+HSPLcom/android/server/biometrics/face/FaceService;->getConstants()Lcom/android/server/biometrics/Constants;
+HSPLcom/android/server/biometrics/face/FaceService;->getDaemonWrapper()Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;
+HSPLcom/android/server/biometrics/face/FaceService;->getEnrolledTemplates(I)Ljava/util/List;
+HSPLcom/android/server/biometrics/face/FaceService;->getFaceDaemon()Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
+PLcom/android/server/biometrics/face/FaceService;->getHalDeviceId()J
+HPLcom/android/server/biometrics/face/FaceService;->getLockoutMode()I
+HSPLcom/android/server/biometrics/face/FaceService;->getManageBiometricPermission()Ljava/lang/String;
+HSPLcom/android/server/biometrics/face/FaceService;->getTag()Ljava/lang/String;
+HSPLcom/android/server/biometrics/face/FaceService;->hasEnrolledBiometrics(I)Z
+HSPLcom/android/server/biometrics/face/FaceService;->lambda$onStart$0$FaceService()V
+PLcom/android/server/biometrics/face/FaceService;->lambda$rveb67MoYJ0egfY6LL-l05KvUz8(Lcom/android/server/biometrics/face/FaceService;)Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
+HPLcom/android/server/biometrics/face/FaceService;->notifyClientActiveCallbacks(Z)V
+HSPLcom/android/server/biometrics/face/FaceService;->onStart()V
+HPLcom/android/server/biometrics/face/FaceService;->removeClient(Lcom/android/server/biometrics/ClientMonitor;)V
+PLcom/android/server/biometrics/face/FaceService;->startGenerateChallenge(Landroid/os/IBinder;)J
+PLcom/android/server/biometrics/face/FaceService;->startRevokeChallenge(Landroid/os/IBinder;)I
+PLcom/android/server/biometrics/face/FaceService;->statsModality()I
+HSPLcom/android/server/biometrics/face/FaceService;->updateActiveGroup(ILjava/lang/String;)V
+HSPLcom/android/server/biometrics/face/FaceUserState;-><init>(Landroid/content/Context;I)V
+HSPLcom/android/server/biometrics/face/FaceUserState;->getBiometricFile()Ljava/lang/String;
+HSPLcom/android/server/biometrics/face/FaceUserState;->getBiometricsTag()Ljava/lang/String;
+HSPLcom/android/server/biometrics/face/FaceUserState;->getCopy(Ljava/util/ArrayList;)Ljava/util/ArrayList;
+HSPLcom/android/server/biometrics/face/FaceUserState;->parseBiometricsLocked(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/server/biometrics/face/FaceUtils;-><clinit>()V
+HSPLcom/android/server/biometrics/face/FaceUtils;-><init>()V
+HSPLcom/android/server/biometrics/face/FaceUtils;->getBiometricsForUser(Landroid/content/Context;I)Ljava/util/List;
+HSPLcom/android/server/biometrics/face/FaceUtils;->getInstance()Lcom/android/server/biometrics/face/FaceUtils;
+HSPLcom/android/server/biometrics/face/FaceUtils;->getStateForUser(Landroid/content/Context;I)Lcom/android/server/biometrics/face/FaceUserState;
+HSPLcom/android/server/camera/CameraServiceProxy$1;-><init>(Lcom/android/server/camera/CameraServiceProxy;)V
+HSPLcom/android/server/camera/CameraServiceProxy$2;-><init>(Lcom/android/server/camera/CameraServiceProxy;)V
+PLcom/android/server/camera/CameraServiceProxy$2;->notifyCameraState(Ljava/lang/String;IILjava/lang/String;I)V
+PLcom/android/server/camera/CameraServiceProxy$CameraUsageEvent;-><init>(ILjava/lang/String;I)V
+PLcom/android/server/camera/CameraServiceProxy$CameraUsageEvent;->getDuration()J
+PLcom/android/server/camera/CameraServiceProxy$CameraUsageEvent;->markCompleted()V
+PLcom/android/server/camera/CameraServiceProxy$EventWriterTask;-><init>(Lcom/android/server/camera/CameraServiceProxy;Ljava/util/ArrayList;)V
+HPLcom/android/server/camera/CameraServiceProxy$EventWriterTask;->logCameraUsageEvent(Lcom/android/server/camera/CameraServiceProxy$CameraUsageEvent;)V
+HPLcom/android/server/camera/CameraServiceProxy$EventWriterTask;->run()V
+HSPLcom/android/server/camera/CameraServiceProxy;-><clinit>()V
+HSPLcom/android/server/camera/CameraServiceProxy;-><init>(Landroid/content/Context;)V
+PLcom/android/server/camera/CameraServiceProxy;->access$500(I)Ljava/lang/String;
+PLcom/android/server/camera/CameraServiceProxy;->access$600(I)Ljava/lang/String;
+PLcom/android/server/camera/CameraServiceProxy;->access$700(Lcom/android/server/camera/CameraServiceProxy;Ljava/lang/String;IILjava/lang/String;I)V
+PLcom/android/server/camera/CameraServiceProxy;->cameraFacingToString(I)Ljava/lang/String;
+PLcom/android/server/camera/CameraServiceProxy;->cameraStateToString(I)Ljava/lang/String;
+PLcom/android/server/camera/CameraServiceProxy;->dumpUsageEvents()V
PLcom/android/server/camera/CameraServiceProxy;->getEnabledUserHandles(I)Ljava/util/Set;
PLcom/android/server/camera/CameraServiceProxy;->notifyCameraserverLocked(ILjava/util/Set;)Z
PLcom/android/server/camera/CameraServiceProxy;->notifySwitchWithRetriesLocked(I)V
-PLcom/android/server/camera/CameraServiceProxy;->onStart()V
+HSPLcom/android/server/camera/CameraServiceProxy;->onStart()V
PLcom/android/server/camera/CameraServiceProxy;->onStartUser(I)V
PLcom/android/server/camera/CameraServiceProxy;->switchUserLocked(I)V
PLcom/android/server/camera/CameraServiceProxy;->toArray(Ljava/util/Collection;)[I
-PLcom/android/server/camera/CameraStatsJobService;-><clinit>()V
-PLcom/android/server/camera/CameraStatsJobService;->schedule(Landroid/content/Context;)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$1;)V
+PLcom/android/server/camera/CameraServiceProxy;->updateActivityCount(Ljava/lang/String;IILjava/lang/String;I)V
+HSPLcom/android/server/camera/CameraStatsJobService;-><clinit>()V
+PLcom/android/server/camera/CameraStatsJobService;-><init>()V
+PLcom/android/server/camera/CameraStatsJobService;->onStartJob(Landroid/app/job/JobParameters;)Z
+HSPLcom/android/server/camera/CameraStatsJobService;->schedule(Landroid/content/Context;)V
+HSPLcom/android/server/clipboard/ClipboardService$ClipboardImpl;-><init>(Lcom/android/server/clipboard/ClipboardService;)V
+HSPLcom/android/server/clipboard/ClipboardService$ClipboardImpl;-><init>(Lcom/android/server/clipboard/ClipboardService;Lcom/android/server/clipboard/ClipboardService$1;)V
PLcom/android/server/clipboard/ClipboardService$ClipboardImpl;->addPrimaryClipChangedListener(Landroid/content/IOnPrimaryClipChangedListener;Ljava/lang/String;I)V
+HPLcom/android/server/clipboard/ClipboardService$ClipboardImpl;->getPrimaryClip(Ljava/lang/String;I)Landroid/content/ClipData;
+PLcom/android/server/clipboard/ClipboardService$ClipboardImpl;->getPrimaryClipDescription(Ljava/lang/String;I)Landroid/content/ClipDescription;
+PLcom/android/server/clipboard/ClipboardService$ClipboardImpl;->hasPrimaryClip(Ljava/lang/String;I)Z
PLcom/android/server/clipboard/ClipboardService$ClipboardImpl;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
PLcom/android/server/clipboard/ClipboardService$ClipboardImpl;->removePrimaryClipChangedListener(Landroid/content/IOnPrimaryClipChangedListener;Ljava/lang/String;I)V
+PLcom/android/server/clipboard/ClipboardService$ClipboardImpl;->setPrimaryClip(Landroid/content/ClipData;Ljava/lang/String;I)V
PLcom/android/server/clipboard/ClipboardService$ListenerInfo;-><init>(Lcom/android/server/clipboard/ClipboardService;ILjava/lang/String;)V
PLcom/android/server/clipboard/ClipboardService$PerUserClipboard;-><init>(Lcom/android/server/clipboard/ClipboardService;I)V
-PLcom/android/server/clipboard/ClipboardService;-><clinit>()V
-PLcom/android/server/clipboard/ClipboardService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/clipboard/ClipboardService;->access$100(Lcom/android/server/clipboard/ClipboardService;I)Lcom/android/server/clipboard/ClipboardService$PerUserClipboard;
+HSPLcom/android/server/clipboard/ClipboardService;-><clinit>()V
+HSPLcom/android/server/clipboard/ClipboardService;-><init>(Landroid/content/Context;)V
+HPLcom/android/server/clipboard/ClipboardService;->access$100(Lcom/android/server/clipboard/ClipboardService;I)Lcom/android/server/clipboard/ClipboardService$PerUserClipboard;
PLcom/android/server/clipboard/ClipboardService;->access$300(Lcom/android/server/clipboard/ClipboardService;Ljava/lang/String;I)I
+PLcom/android/server/clipboard/ClipboardService;->access$400(Lcom/android/server/clipboard/ClipboardService;ILjava/lang/String;II)Z
+PLcom/android/server/clipboard/ClipboardService;->access$500(Lcom/android/server/clipboard/ClipboardService;Landroid/content/ClipData;I)V
+PLcom/android/server/clipboard/ClipboardService;->access$600(Lcom/android/server/clipboard/ClipboardService;I)Z
+PLcom/android/server/clipboard/ClipboardService;->access$700(Lcom/android/server/clipboard/ClipboardService;ILjava/lang/String;)V
PLcom/android/server/clipboard/ClipboardService;->access$800(Lcom/android/server/clipboard/ClipboardService;Ljava/lang/String;I)I
+PLcom/android/server/clipboard/ClipboardService;->addActiveOwnerLocked(ILjava/lang/String;)V
+PLcom/android/server/clipboard/ClipboardService;->checkDataOwnerLocked(Landroid/content/ClipData;I)V
+PLcom/android/server/clipboard/ClipboardService;->checkItemOwnerLocked(Landroid/content/ClipData$Item;I)V
+HPLcom/android/server/clipboard/ClipboardService;->clipboardAccessAllowed(ILjava/lang/String;II)Z
PLcom/android/server/clipboard/ClipboardService;->getClipboard(I)Lcom/android/server/clipboard/ClipboardService$PerUserClipboard;
-PLcom/android/server/clipboard/ClipboardService;->getIntendingUid(Ljava/lang/String;I)I
-PLcom/android/server/clipboard/ClipboardService;->getIntendingUserId(Ljava/lang/String;I)I
-PLcom/android/server/clipboard/ClipboardService;->onStart()V
+HPLcom/android/server/clipboard/ClipboardService;->getIntendingUid(Ljava/lang/String;I)I
+HPLcom/android/server/clipboard/ClipboardService;->getIntendingUserId(Ljava/lang/String;I)I
+PLcom/android/server/clipboard/ClipboardService;->getRelatedProfiles(I)Ljava/util/List;
+PLcom/android/server/clipboard/ClipboardService;->grantItemLocked(Landroid/content/ClipData$Item;ILjava/lang/String;I)V
+PLcom/android/server/clipboard/ClipboardService;->hasRestriction(Ljava/lang/String;I)Z
+HPLcom/android/server/clipboard/ClipboardService;->isDeviceLocked(I)Z
+PLcom/android/server/clipboard/ClipboardService;->isInternalSysWindowAppWithWindowFocus(Ljava/lang/String;)Z
+HSPLcom/android/server/clipboard/ClipboardService;->onStart()V
+PLcom/android/server/clipboard/ClipboardService;->revokeItemLocked(Landroid/content/ClipData$Item;I)V
+PLcom/android/server/clipboard/ClipboardService;->setPrimaryClipInternal(Landroid/content/ClipData;I)V
+PLcom/android/server/clipboard/ClipboardService;->setPrimaryClipInternal(Lcom/android/server/clipboard/ClipboardService$PerUserClipboard;Landroid/content/ClipData;I)V
PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$CompanionDeviceManagerImpl$bdv3Vfadbb8b9nrSgkARO4oYOXU;-><clinit>()V
PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$CompanionDeviceManagerImpl$bdv3Vfadbb8b9nrSgkARO4oYOXU;-><init>()V
PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$bh5xRJq9-CRJoXvmerYRNjK1xEQ;-><clinit>()V
PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$bh5xRJq9-CRJoXvmerYRNjK1xEQ;-><init>()V
PLcom/android/server/companion/-$$Lambda$CompanionDeviceManagerService$bh5xRJq9-CRJoXvmerYRNjK1xEQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/companion/CompanionDeviceManagerService$1;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)V
+HSPLcom/android/server/companion/CompanionDeviceManagerService$1;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)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
+HSPLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;-><init>(Lcom/android/server/companion/CompanionDeviceManagerService;)V
PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->checkCallerIsSystemOr(Ljava/lang/String;I)V
PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->checkUsesFeature(Ljava/lang/String;I)V
PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->getAssociations(Ljava/lang/String;I)Ljava/util/List;
PLcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-PLcom/android/server/companion/CompanionDeviceManagerService;-><clinit>()V
-PLcom/android/server/companion/CompanionDeviceManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/companion/CompanionDeviceManagerService;->access$100(Lcom/android/server/companion/CompanionDeviceManagerService;ILjava/lang/String;)Ljava/util/Set;
-PLcom/android/server/companion/CompanionDeviceManagerService;->access$1000()Z
-PLcom/android/server/companion/CompanionDeviceManagerService;->access$300()I
-PLcom/android/server/companion/CompanionDeviceManagerService;->getCallingUserId()I
+HSPLcom/android/server/companion/CompanionDeviceManagerService;-><clinit>()V
+HSPLcom/android/server/companion/CompanionDeviceManagerService;-><init>(Landroid/content/Context;)V
PLcom/android/server/companion/CompanionDeviceManagerService;->getStorageFileForUser(I)Landroid/util/AtomicFile;
-PLcom/android/server/companion/CompanionDeviceManagerService;->isCallerSystem()Z
PLcom/android/server/companion/CompanionDeviceManagerService;->lambda$getStorageFileForUser$5(Ljava/lang/Integer;)Landroid/util/AtomicFile;
-PLcom/android/server/companion/CompanionDeviceManagerService;->onStart()V
+HSPLcom/android/server/companion/CompanionDeviceManagerService;->onStart()V
PLcom/android/server/companion/CompanionDeviceManagerService;->onUnlockUser(I)V
PLcom/android/server/companion/CompanionDeviceManagerService;->readAllAssociations(I)Ljava/util/Set;
PLcom/android/server/companion/CompanionDeviceManagerService;->readAllAssociations(ILjava/lang/String;)Ljava/util/Set;
-PLcom/android/server/companion/CompanionDeviceManagerService;->registerPackageMonitor()V
+HSPLcom/android/server/companion/CompanionDeviceManagerService;->registerPackageMonitor()V
HSPLcom/android/server/compat/CompatChange;-><init>(Lcom/android/server/compat/config/Change;)V
HSPLcom/android/server/compat/CompatChange;->isEnabled(Landroid/content/pm/ApplicationInfo;)Z
-PLcom/android/server/compat/CompatChange;->registerListener(Lcom/android/server/compat/CompatChange$ChangeListener;)V
+HSPLcom/android/server/compat/CompatChange;->registerListener(Lcom/android/server/compat/CompatChange$ChangeListener;)V
+PLcom/android/server/compat/CompatChange;->toString()Ljava/lang/String;
HSPLcom/android/server/compat/CompatConfig;-><clinit>()V
HSPLcom/android/server/compat/CompatConfig;-><init>()V
HSPLcom/android/server/compat/CompatConfig;->addChange(Lcom/android/server/compat/CompatChange;)V
+PLcom/android/server/compat/CompatConfig;->dumpConfig(Ljava/io/PrintWriter;)V
HSPLcom/android/server/compat/CompatConfig;->get()Lcom/android/server/compat/CompatConfig;
-HPLcom/android/server/compat/CompatConfig;->getDisabledChanges(Landroid/content/pm/ApplicationInfo;)[J
+HSPLcom/android/server/compat/CompatConfig;->getDisabledChanges(Landroid/content/pm/ApplicationInfo;)[J
HSPLcom/android/server/compat/CompatConfig;->initConfigFromLib(Ljava/io/File;)Lcom/android/server/compat/CompatConfig;
HSPLcom/android/server/compat/CompatConfig;->isChangeEnabled(JLandroid/content/pm/ApplicationInfo;)Z
HSPLcom/android/server/compat/CompatConfig;->readConfig(Ljava/io/File;)V
-PLcom/android/server/compat/CompatConfig;->registerListener(JLcom/android/server/compat/CompatChange$ChangeListener;)Z
+HSPLcom/android/server/compat/CompatConfig;->registerListener(JLcom/android/server/compat/CompatChange$ChangeListener;)Z
HSPLcom/android/server/compat/PlatformCompat;-><init>(Landroid/content/Context;)V
-PLcom/android/server/compat/PlatformCompat;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
-HPLcom/android/server/compat/PlatformCompat;->getDisabledChanges(Landroid/content/pm/ApplicationInfo;)[J
+PLcom/android/server/compat/PlatformCompat;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HPLcom/android/server/compat/PlatformCompat;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/compat/PlatformCompat;->getDisabledChanges(Landroid/content/pm/ApplicationInfo;)[J
HSPLcom/android/server/compat/PlatformCompat;->isChangeEnabled(JLandroid/content/pm/ApplicationInfo;)Z
-PLcom/android/server/compat/PlatformCompat;->isChangeEnabledByPackageName(JLjava/lang/String;I)Z
-PLcom/android/server/compat/PlatformCompat;->registerListener(JLcom/android/server/compat/CompatChange$ChangeListener;)Z
+HPLcom/android/server/compat/PlatformCompat;->isChangeEnabledByPackageName(JLjava/lang/String;I)Z
+HSPLcom/android/server/compat/PlatformCompat;->registerListener(JLcom/android/server/compat/CompatChange$ChangeListener;)Z
HSPLcom/android/server/compat/PlatformCompat;->reportChange(JII)V
-PLcom/android/server/compat/PlatformCompat;->resetReporting(Landroid/content/pm/ApplicationInfo;)V
+PLcom/android/server/compat/PlatformCompat;->reportChangeByUid(JI)V
+HSPLcom/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;
@@ -6212,26 +7456,28 @@ HSPLcom/android/server/compat/config/XmlParser;->read(Ljava/io/InputStream;)Lcom
HSPLcom/android/server/compat/config/XmlParser;->readText(Lorg/xmlpull/v1/XmlPullParser;)Ljava/lang/String;
PLcom/android/server/connectivity/-$$Lambda$DnsManager$PrivateDnsValidationStatuses$_X4_M08nKysv-L4hDpqAsa4SBxI;-><init>(Landroid/net/LinkProperties;)V
PLcom/android/server/connectivity/-$$Lambda$DnsManager$PrivateDnsValidationStatuses$_X4_M08nKysv-L4hDpqAsa4SBxI;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/connectivity/-$$Lambda$IpConnectivityMetrics$B0oR30xfeM300kIzUVaV_zUNLCg;-><clinit>()V
-PLcom/android/server/connectivity/-$$Lambda$IpConnectivityMetrics$B0oR30xfeM300kIzUVaV_zUNLCg;-><init>()V
-PLcom/android/server/connectivity/-$$Lambda$IpConnectivityMetrics$B0oR30xfeM300kIzUVaV_zUNLCg;->applyAsInt(Ljava/lang/Object;)I
+HSPLcom/android/server/connectivity/-$$Lambda$IpConnectivityMetrics$B0oR30xfeM300kIzUVaV_zUNLCg;-><clinit>()V
+HSPLcom/android/server/connectivity/-$$Lambda$IpConnectivityMetrics$B0oR30xfeM300kIzUVaV_zUNLCg;-><init>()V
+HSPLcom/android/server/connectivity/-$$Lambda$IpConnectivityMetrics$B0oR30xfeM300kIzUVaV_zUNLCg;->applyAsInt(Ljava/lang/Object;)I
PLcom/android/server/connectivity/-$$Lambda$MultipathPolicyTracker$2$dvyDLfu9d6g2XoEdL3QMHx7ut6k;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker$2;)V
PLcom/android/server/connectivity/-$$Lambda$MultipathPolicyTracker$2$dvyDLfu9d6g2XoEdL3QMHx7ut6k;->run()V
PLcom/android/server/connectivity/AutodestructReference;-><init>(Ljava/lang/Object;)V
PLcom/android/server/connectivity/AutodestructReference;->getAndDestroy()Ljava/lang/Object;
-PLcom/android/server/connectivity/DataConnectionStats$PhoneStateListenerImpl;-><init>(Lcom/android/server/connectivity/DataConnectionStats;Landroid/os/Looper;)V
-PLcom/android/server/connectivity/DataConnectionStats;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/connectivity/DataConnectionStats$PhoneStateListenerImpl;-><init>(Lcom/android/server/connectivity/DataConnectionStats;Landroid/os/Looper;)V
+HSPLcom/android/server/connectivity/DataConnectionStats;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
PLcom/android/server/connectivity/DataConnectionStats;->notePhoneDataConnectionState()V
PLcom/android/server/connectivity/DataConnectionStats;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/connectivity/DataConnectionStats;->startMonitoring()V
+HSPLcom/android/server/connectivity/DataConnectionStats;->startMonitoring()V
PLcom/android/server/connectivity/DataConnectionStats;->updateSimState(Landroid/content/Intent;)V
-PLcom/android/server/connectivity/DefaultNetworkMetrics;-><init>()V
+HSPLcom/android/server/connectivity/DefaultNetworkMetrics;-><init>()V
PLcom/android/server/connectivity/DefaultNetworkMetrics;->fillLinkInfo(Landroid/net/metrics/DefaultNetworkEvent;Lcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/connectivity/DefaultNetworkMetrics;->flushEvents(Ljava/util/List;)V
+PLcom/android/server/connectivity/DefaultNetworkMetrics;->listEvents(Ljava/io/PrintWriter;)V
PLcom/android/server/connectivity/DefaultNetworkMetrics;->logCurrentDefaultNetwork(JLcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/connectivity/DefaultNetworkMetrics;->logDefaultNetworkEvent(JLcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/connectivity/DefaultNetworkMetrics;->logDefaultNetworkValidity(JZ)V
-PLcom/android/server/connectivity/DefaultNetworkMetrics;->newDefaultNetwork(JLcom/android/server/connectivity/NetworkAgentInfo;)V
+HSPLcom/android/server/connectivity/DefaultNetworkMetrics;->newDefaultNetwork(JLcom/android/server/connectivity/NetworkAgentInfo;)V
+PLcom/android/server/connectivity/DefaultNetworkMetrics;->printEvent(JLjava/io/PrintWriter;Landroid/net/metrics/DefaultNetworkEvent;)V
PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses$ValidationStatus;-><clinit>()V
PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses$ValidationStatus;-><init>(Ljava/lang/String;I)V
PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;-><init>()V
@@ -6241,20 +7487,19 @@ PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->acce
PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->access$200(Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;)V
PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->access$400(Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;[Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->fillInValidatedPrivateDns(Landroid/net/LinkProperties;)Landroid/net/LinkProperties;
-PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->hasValidatedServer()Z
+HPLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->hasValidatedServer()Z
PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->lambda$fillInValidatedPrivateDns$0(Landroid/net/LinkProperties;Landroid/util/Pair;Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses$ValidationStatus;)V
PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->updateStatus(Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;)V
PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses;->updateTrackedDnses([Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;-><init>(ILjava/net/InetAddress;Ljava/lang/String;Z)V
-PLcom/android/server/connectivity/DnsManager;-><clinit>()V
-PLcom/android/server/connectivity/DnsManager;-><init>(Landroid/content/Context;Landroid/net/IDnsResolver;Lcom/android/server/connectivity/MockableSystemProperties;)V
+HSPLcom/android/server/connectivity/DnsManager;-><clinit>()V
+HSPLcom/android/server/connectivity/DnsManager;-><init>(Landroid/content/Context;Landroid/net/IDnsResolver;Lcom/android/server/connectivity/MockableSystemProperties;)V
PLcom/android/server/connectivity/DnsManager;->flushVmDnsCache()V
PLcom/android/server/connectivity/DnsManager;->getDomainStrings(Ljava/lang/String;)[Ljava/lang/String;
PLcom/android/server/connectivity/DnsManager;->getIntSetting(Ljava/lang/String;I)I
-PLcom/android/server/connectivity/DnsManager;->getPrivateDnsConfig()Landroid/net/shared/PrivateDnsConfig;
PLcom/android/server/connectivity/DnsManager;->getPrivateDnsConfig(Landroid/content/ContentResolver;)Landroid/net/shared/PrivateDnsConfig;
PLcom/android/server/connectivity/DnsManager;->getPrivateDnsMode(Landroid/content/ContentResolver;)Ljava/lang/String;
-PLcom/android/server/connectivity/DnsManager;->getPrivateDnsSettingsUris()[Landroid/net/Uri;
+HSPLcom/android/server/connectivity/DnsManager;->getPrivateDnsSettingsUris()[Landroid/net/Uri;
PLcom/android/server/connectivity/DnsManager;->getStringSetting(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
PLcom/android/server/connectivity/DnsManager;->setDefaultDnsSystemProperties(Ljava/util/Collection;)V
PLcom/android/server/connectivity/DnsManager;->setDnsConfigurationForNetwork(ILandroid/net/LinkProperties;Z)V
@@ -6262,124 +7507,136 @@ PLcom/android/server/connectivity/DnsManager;->setNetDnsProperty(ILjava/lang/Str
PLcom/android/server/connectivity/DnsManager;->updateParametersSettings()V
PLcom/android/server/connectivity/DnsManager;->updatePrivateDns(Landroid/net/Network;Landroid/net/shared/PrivateDnsConfig;)Landroid/net/shared/PrivateDnsConfig;
PLcom/android/server/connectivity/DnsManager;->updatePrivateDnsStatus(ILandroid/net/LinkProperties;)V
-PLcom/android/server/connectivity/DnsManager;->updatePrivateDnsValidation(Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationUpdate;)V
PLcom/android/server/connectivity/IpConnectivityEventBuilder;-><clinit>()V
-PLcom/android/server/connectivity/IpConnectivityEventBuilder;->buildEvent(IJLjava/lang/String;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
-PLcom/android/server/connectivity/IpConnectivityEventBuilder;->bytesToInts([B)[I
-PLcom/android/server/connectivity/IpConnectivityEventBuilder;->ifnameToLinkLayer(Ljava/lang/String;)I
-PLcom/android/server/connectivity/IpConnectivityEventBuilder;->inferLinkLayer(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;)V
+HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->buildEvent(IJLjava/lang/String;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->bytesToInts([B)[I
+HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->ifnameToLinkLayer(Ljava/lang/String;)I
+HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->inferLinkLayer(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;)V
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->ipSupportOf(Landroid/net/metrics/DefaultNetworkEvent;)I
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->isBitSet(II)Z
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->serialize(ILjava/util/List;)[B
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->setApfProgramEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/ApfProgramEvent;)V
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->setApfStats(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/ApfStats;)V
-PLcom/android/server/connectivity/IpConnectivityEventBuilder;->setDhcpClientEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/DhcpClientEvent;)V
+HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->setDhcpClientEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/DhcpClientEvent;)V
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->setDhcpErrorEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/DhcpErrorEvent;)V
-PLcom/android/server/connectivity/IpConnectivityEventBuilder;->setEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/os/Parcelable;)Z
+HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->setEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/os/Parcelable;)Z
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->setIpManagerEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/IpManagerEvent;)V
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->setIpReachabilityEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/IpReachabilityEvent;)V
-PLcom/android/server/connectivity/IpConnectivityEventBuilder;->setNetworkEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/NetworkEvent;)V
+HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->setNetworkEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/NetworkEvent;)V
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->setRaEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/RaEvent;)V
-PLcom/android/server/connectivity/IpConnectivityEventBuilder;->setValidationProbeEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/ValidationProbeEvent;)V
+HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->setValidationProbeEvent(Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;Landroid/net/metrics/ValidationProbeEvent;)V
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->toPairArray(Landroid/util/SparseIntArray;)[Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$Pair;
-PLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/ConnectivityMetricsEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/ConnectivityMetricsEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/metrics/ConnectStats;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/metrics/DefaultNetworkEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/metrics/DnsEvent;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
+PLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Landroid/net/metrics/WakeupStats;)Lcom/android/server/connectivity/metrics/nano/IpConnectivityLogClass$IpConnectivityEvent;
HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->toProto(Ljava/util/List;)Ljava/util/List;
PLcom/android/server/connectivity/IpConnectivityEventBuilder;->transportToLinkLayer(I)I
-PLcom/android/server/connectivity/IpConnectivityEventBuilder;->transportsToLinkLayer(J)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
+HPLcom/android/server/connectivity/IpConnectivityEventBuilder;->transportsToLinkLayer(J)I
+HSPLcom/android/server/connectivity/IpConnectivityMetrics$Impl;-><init>(Lcom/android/server/connectivity/IpConnectivityMetrics;)V
+HSPLcom/android/server/connectivity/IpConnectivityMetrics$Impl;->addNetdEventCallback(ILandroid/net/INetdEventCallback;)Z
PLcom/android/server/connectivity/IpConnectivityMetrics$Impl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-PLcom/android/server/connectivity/IpConnectivityMetrics$Impl;->enforceNetdEventListeningPermission()V
-PLcom/android/server/connectivity/IpConnectivityMetrics$Impl;->logEvent(Landroid/net/ConnectivityMetricsEvent;)I
-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$1;)V
+HSPLcom/android/server/connectivity/IpConnectivityMetrics$Impl;->enforceNetdEventListeningPermission()V
+HPLcom/android/server/connectivity/IpConnectivityMetrics$Impl;->logEvent(Landroid/net/ConnectivityMetricsEvent;)I
+HSPLcom/android/server/connectivity/IpConnectivityMetrics$LoggerImpl;-><init>(Lcom/android/server/connectivity/IpConnectivityMetrics;)V
+HSPLcom/android/server/connectivity/IpConnectivityMetrics$LoggerImpl;-><init>(Lcom/android/server/connectivity/IpConnectivityMetrics;Lcom/android/server/connectivity/IpConnectivityMetrics$1;)V
PLcom/android/server/connectivity/IpConnectivityMetrics$LoggerImpl;->defaultNetworkMetrics()Lcom/android/server/connectivity/DefaultNetworkMetrics;
-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
+HSPLcom/android/server/connectivity/IpConnectivityMetrics;-><clinit>()V
+HSPLcom/android/server/connectivity/IpConnectivityMetrics;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/connectivity/IpConnectivityMetrics;-><init>(Landroid/content/Context;Ljava/util/function/ToIntFunction;)V
PLcom/android/server/connectivity/IpConnectivityMetrics;->access$100(Lcom/android/server/connectivity/IpConnectivityMetrics;Landroid/net/ConnectivityMetricsEvent;)I
-PLcom/android/server/connectivity/IpConnectivityMetrics;->append(Landroid/net/ConnectivityMetricsEvent;)I
-PLcom/android/server/connectivity/IpConnectivityMetrics;->bufferCapacity()I
+HPLcom/android/server/connectivity/IpConnectivityMetrics;->append(Landroid/net/ConnectivityMetricsEvent;)I
+HSPLcom/android/server/connectivity/IpConnectivityMetrics;->bufferCapacity()I
+PLcom/android/server/connectivity/IpConnectivityMetrics;->cmdList(Ljava/io/PrintWriter;)V
PLcom/android/server/connectivity/IpConnectivityMetrics;->flushEncodedOutput()Ljava/lang/String;
-PLcom/android/server/connectivity/IpConnectivityMetrics;->initBuffer()V
+PLcom/android/server/connectivity/IpConnectivityMetrics;->getEvents()Ljava/util/List;
+HSPLcom/android/server/connectivity/IpConnectivityMetrics;->initBuffer()V
PLcom/android/server/connectivity/IpConnectivityMetrics;->isRateLimited(Landroid/net/ConnectivityMetricsEvent;)Z
-PLcom/android/server/connectivity/IpConnectivityMetrics;->lambda$static$0(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/KeepaliveTracker;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/connectivity/IpConnectivityMetrics;->lambda$static$0(Landroid/content/Context;)I
+HSPLcom/android/server/connectivity/IpConnectivityMetrics;->makeRateLimitingBuckets()Landroid/util/ArrayMap;
+HSPLcom/android/server/connectivity/IpConnectivityMetrics;->onBootPhase(I)V
+HSPLcom/android/server/connectivity/IpConnectivityMetrics;->onStart()V
+HSPLcom/android/server/connectivity/KeepaliveTracker;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+PLcom/android/server/connectivity/KeepaliveTracker;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
PLcom/android/server/connectivity/KeepaliveTracker;->handleCheckKeepalivesStillValid(Lcom/android/server/connectivity/NetworkAgentInfo;)V
PLcom/android/server/connectivity/KeepaliveTracker;->handleStopAllKeepalives(Lcom/android/server/connectivity/NetworkAgentInfo;I)V
-PLcom/android/server/connectivity/LingerMonitor;-><clinit>()V
-PLcom/android/server/connectivity/LingerMonitor;-><init>(Landroid/content/Context;Lcom/android/server/connectivity/NetworkNotificationManager;IJ)V
+HSPLcom/android/server/connectivity/LingerMonitor;-><clinit>()V
+HSPLcom/android/server/connectivity/LingerMonitor;-><init>(Landroid/content/Context;Lcom/android/server/connectivity/NetworkNotificationManager;IJ)V
PLcom/android/server/connectivity/LingerMonitor;->getNotificationSource(Lcom/android/server/connectivity/NetworkAgentInfo;)I
-PLcom/android/server/connectivity/LingerMonitor;->makeTransportToNameMap()Ljava/util/HashMap;
-PLcom/android/server/connectivity/MockableSystemProperties;-><init>()V
+HSPLcom/android/server/connectivity/LingerMonitor;->makeTransportToNameMap()Ljava/util/HashMap;
+HSPLcom/android/server/connectivity/MockableSystemProperties;-><init>()V
PLcom/android/server/connectivity/MockableSystemProperties;->get(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/connectivity/MockableSystemProperties;->getBoolean(Ljava/lang/String;Z)Z
-PLcom/android/server/connectivity/MockableSystemProperties;->getInt(Ljava/lang/String;I)I
+HSPLcom/android/server/connectivity/MockableSystemProperties;->getBoolean(Ljava/lang/String;Z)Z
+HSPLcom/android/server/connectivity/MockableSystemProperties;->getInt(Ljava/lang/String;I)I
PLcom/android/server/connectivity/MockableSystemProperties;->set(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/connectivity/MultipathPolicyTracker$1;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;)V
-PLcom/android/server/connectivity/MultipathPolicyTracker$2;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;)V
+HSPLcom/android/server/connectivity/MultipathPolicyTracker$1;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;)V
+HSPLcom/android/server/connectivity/MultipathPolicyTracker$2;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;)V
PLcom/android/server/connectivity/MultipathPolicyTracker$2;->lambda$onMeteredIfacesChanged$0$MultipathPolicyTracker$2()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$1;)V
+HSPLcom/android/server/connectivity/MultipathPolicyTracker$ConfigChangeReceiver;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;)V
+HSPLcom/android/server/connectivity/MultipathPolicyTracker$ConfigChangeReceiver;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;Lcom/android/server/connectivity/MultipathPolicyTracker$1;)V
PLcom/android/server/connectivity/MultipathPolicyTracker$ConfigChangeReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/connectivity/MultipathPolicyTracker$Dependencies;-><init>()V
-PLcom/android/server/connectivity/MultipathPolicyTracker$Dependencies;->getClock()Ljava/time/Clock;
-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;-><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
+HSPLcom/android/server/connectivity/MultipathPolicyTracker$Dependencies;-><init>()V
+HSPLcom/android/server/connectivity/MultipathPolicyTracker$Dependencies;->getClock()Ljava/time/Clock;
+HSPLcom/android/server/connectivity/MultipathPolicyTracker$SettingsObserver;-><init>(Lcom/android/server/connectivity/MultipathPolicyTracker;Landroid/os/Handler;)V
+HSPLcom/android/server/connectivity/MultipathPolicyTracker;-><clinit>()V
+HSPLcom/android/server/connectivity/MultipathPolicyTracker;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/connectivity/MultipathPolicyTracker;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/connectivity/MultipathPolicyTracker$Dependencies;)V
PLcom/android/server/connectivity/MultipathPolicyTracker;->access$1200(Lcom/android/server/connectivity/MultipathPolicyTracker;)V
PLcom/android/server/connectivity/MultipathPolicyTracker;->access$900(Lcom/android/server/connectivity/MultipathPolicyTracker;)Landroid/os/Handler;
-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/MultipathPolicyTracker;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/connectivity/MultipathPolicyTracker;->registerNetworkPolicyListener()V
+HSPLcom/android/server/connectivity/MultipathPolicyTracker;->registerTrackMobileCallback()V
+HSPLcom/android/server/connectivity/MultipathPolicyTracker;->start()V
PLcom/android/server/connectivity/MultipathPolicyTracker;->updateAllMultipathBudgets()V
PLcom/android/server/connectivity/Nat464Xlat$State;-><clinit>()V
PLcom/android/server/connectivity/Nat464Xlat$State;-><init>(Ljava/lang/String;I)V
PLcom/android/server/connectivity/Nat464Xlat;-><clinit>()V
PLcom/android/server/connectivity/Nat464Xlat;-><init>(Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/net/INetd;Landroid/net/IDnsResolver;Landroid/os/INetworkManagementService;)V
PLcom/android/server/connectivity/Nat464Xlat;->fixupLinkProperties(Landroid/net/LinkProperties;Landroid/net/LinkProperties;)V
+PLcom/android/server/connectivity/Nat464Xlat;->getNetId()I
PLcom/android/server/connectivity/Nat464Xlat;->isPrefixDiscoveryStarted()Z
PLcom/android/server/connectivity/Nat464Xlat;->isRunning()Z
PLcom/android/server/connectivity/Nat464Xlat;->isStarted()Z
+PLcom/android/server/connectivity/Nat464Xlat;->leaveStartedState()V
PLcom/android/server/connectivity/Nat464Xlat;->requiresClat(Lcom/android/server/connectivity/NetworkAgentInfo;)Z
+PLcom/android/server/connectivity/Nat464Xlat;->startPrefixDiscovery()V
+PLcom/android/server/connectivity/Nat464Xlat;->stop()V
+PLcom/android/server/connectivity/Nat464Xlat;->stopPrefixDiscovery()V
PLcom/android/server/connectivity/Nat464Xlat;->toString()Ljava/lang/String;
PLcom/android/server/connectivity/Nat464Xlat;->update()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;-><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
-PLcom/android/server/connectivity/NetdEventListenerService;->collectPendingMetricsSnapshot(J)V
+HPLcom/android/server/connectivity/NetdEventListenerService$NetworkMetricsSnapshot;->collect(JLandroid/util/SparseArray;)Lcom/android/server/connectivity/NetdEventListenerService$NetworkMetricsSnapshot;
+PLcom/android/server/connectivity/NetdEventListenerService$NetworkMetricsSnapshot;->toString()Ljava/lang/String;
+HSPLcom/android/server/connectivity/NetdEventListenerService;-><clinit>()V
+HSPLcom/android/server/connectivity/NetdEventListenerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/connectivity/NetdEventListenerService;-><init>(Landroid/net/ConnectivityManager;)V
+HSPLcom/android/server/connectivity/NetdEventListenerService;->addNetdEventCallback(ILandroid/net/INetdEventCallback;)Z
+HPLcom/android/server/connectivity/NetdEventListenerService;->collectPendingMetricsSnapshot(J)V
PLcom/android/server/connectivity/NetdEventListenerService;->flushStatistics(Ljava/util/List;)V
PLcom/android/server/connectivity/NetdEventListenerService;->getMetricsForNetwork(JI)Landroid/net/metrics/NetworkMetrics;
PLcom/android/server/connectivity/NetdEventListenerService;->getTransports(I)J
-PLcom/android/server/connectivity/NetdEventListenerService;->isValidCallerType(I)Z
+HSPLcom/android/server/connectivity/NetdEventListenerService;->isValidCallerType(I)Z
+PLcom/android/server/connectivity/NetdEventListenerService;->list(Ljava/io/PrintWriter;)V
HPLcom/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;->onPrivateDnsValidationEvent(ILjava/lang/String;Ljava/lang/String;Z)V
-PLcom/android/server/connectivity/NetdEventListenerService;->onTcpSocketStatsEvent([I[I[I[I[I)V
+HPLcom/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/NetdEventListenerService;->projectSnapshotTime(J)J
PLcom/android/server/connectivity/NetworkAgentInfo$1;-><clinit>()V
-PLcom/android/server/connectivity/NetworkAgentInfo;-><clinit>()V
+HSPLcom/android/server/connectivity/NetworkAgentInfo;-><clinit>()V
PLcom/android/server/connectivity/NetworkAgentInfo;-><init>(Landroid/os/Messenger;Lcom/android/internal/util/AsyncChannel;Landroid/net/Network;Landroid/net/NetworkInfo;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;Landroid/net/NetworkScore;Landroid/content/Context;Landroid/os/Handler;Landroid/net/NetworkMisc;Lcom/android/server/ConnectivityService;Landroid/net/INetd;Landroid/net/IDnsResolver;Landroid/os/INetworkManagementService;I)V
PLcom/android/server/connectivity/NetworkAgentInfo;->addRequest(Landroid/net/NetworkRequest;)Z
+HPLcom/android/server/connectivity/NetworkAgentInfo;->getAndSetNetworkCapabilities(Landroid/net/NetworkCapabilities;)Landroid/net/NetworkCapabilities;
PLcom/android/server/connectivity/NetworkAgentInfo;->getCurrentScore()I
-PLcom/android/server/connectivity/NetworkAgentInfo;->getCurrentScore(Z)I
+HPLcom/android/server/connectivity/NetworkAgentInfo;->getCurrentScore(Z)I
HPLcom/android/server/connectivity/NetworkAgentInfo;->getNetworkState()Landroid/net/NetworkState;
PLcom/android/server/connectivity/NetworkAgentInfo;->ignoreWifiUnvalidationPenalty()Z
PLcom/android/server/connectivity/NetworkAgentInfo;->isBackgroundNetwork()Z
PLcom/android/server/connectivity/NetworkAgentInfo;->isLingering()Z
PLcom/android/server/connectivity/NetworkAgentInfo;->isSatisfyingRequest(I)Z
-PLcom/android/server/connectivity/NetworkAgentInfo;->isSuspended()Z
PLcom/android/server/connectivity/NetworkAgentInfo;->isVPN()Z
PLcom/android/server/connectivity/NetworkAgentInfo;->name()Ljava/lang/String;
PLcom/android/server/connectivity/NetworkAgentInfo;->netMisc()Landroid/net/NetworkMisc;
@@ -6387,67 +7644,69 @@ PLcom/android/server/connectivity/NetworkAgentInfo;->network()Landroid/net/Netwo
PLcom/android/server/connectivity/NetworkAgentInfo;->networkMonitor()Landroid/net/NetworkMonitorManager;
PLcom/android/server/connectivity/NetworkAgentInfo;->numForegroundNetworkRequests()I
PLcom/android/server/connectivity/NetworkAgentInfo;->numNetworkRequests()I
-PLcom/android/server/connectivity/NetworkAgentInfo;->numRequestNetworkRequests()I
-PLcom/android/server/connectivity/NetworkAgentInfo;->onNetworkMonitorCreated(Landroid/net/INetworkMonitor;)V
PLcom/android/server/connectivity/NetworkAgentInfo;->requestAt(I)Landroid/net/NetworkRequest;
PLcom/android/server/connectivity/NetworkAgentInfo;->satisfies(Landroid/net/NetworkRequest;)Z
-PLcom/android/server/connectivity/NetworkAgentInfo;->setNetworkCapabilities(Landroid/net/NetworkCapabilities;)V
PLcom/android/server/connectivity/NetworkAgentInfo;->setNetworkScore(Landroid/net/NetworkScore;)V
PLcom/android/server/connectivity/NetworkAgentInfo;->toString()Ljava/lang/String;
PLcom/android/server/connectivity/NetworkAgentInfo;->unlingerRequest(Landroid/net/NetworkRequest;)Z
PLcom/android/server/connectivity/NetworkAgentInfo;->updateLingerTimer()V
-PLcom/android/server/connectivity/NetworkAgentInfo;->updateRequestCounts(ZLandroid/net/NetworkRequest;)V
+HPLcom/android/server/connectivity/NetworkAgentInfo;->updateRequestCounts(ZLandroid/net/NetworkRequest;)V
+PLcom/android/server/connectivity/NetworkNotificationManager$1;-><clinit>()V
PLcom/android/server/connectivity/NetworkNotificationManager$NotificationType$Holder;-><clinit>()V
PLcom/android/server/connectivity/NetworkNotificationManager$NotificationType$Holder;->access$000()Landroid/util/SparseArray;
PLcom/android/server/connectivity/NetworkNotificationManager$NotificationType;-><clinit>()V
PLcom/android/server/connectivity/NetworkNotificationManager$NotificationType;-><init>(Ljava/lang/String;II)V
-PLcom/android/server/connectivity/NetworkNotificationManager$NotificationType;->getFromId(I)Lcom/android/server/connectivity/NetworkNotificationManager$NotificationType;
+HPLcom/android/server/connectivity/NetworkNotificationManager$NotificationType;->getFromId(I)Lcom/android/server/connectivity/NetworkNotificationManager$NotificationType;
PLcom/android/server/connectivity/NetworkNotificationManager$NotificationType;->values()[Lcom/android/server/connectivity/NetworkNotificationManager$NotificationType;
-PLcom/android/server/connectivity/NetworkNotificationManager;-><clinit>()V
-PLcom/android/server/connectivity/NetworkNotificationManager;-><init>(Landroid/content/Context;Landroid/telephony/TelephonyManager;Landroid/app/NotificationManager;)V
+HSPLcom/android/server/connectivity/NetworkNotificationManager;-><clinit>()V
+HSPLcom/android/server/connectivity/NetworkNotificationManager;-><init>(Landroid/content/Context;Landroid/telephony/TelephonyManager;Landroid/app/NotificationManager;)V
PLcom/android/server/connectivity/NetworkNotificationManager;->clearNotification(I)V
-PLcom/android/server/connectivity/NetworkNotificationManager;->clearNotification(ILcom/android/server/connectivity/NetworkNotificationManager$NotificationType;)V
-PLcom/android/server/connectivity/PacManager$1;-><init>(Lcom/android/server/connectivity/PacManager;)V
-PLcom/android/server/connectivity/PacManager$PacRefreshIntentReceiver;-><init>(Lcom/android/server/connectivity/PacManager;)V
-PLcom/android/server/connectivity/PacManager;-><init>(Landroid/content/Context;Landroid/os/Handler;I)V
-PLcom/android/server/connectivity/PermissionMonitor$PackageListObserver;-><init>(Lcom/android/server/connectivity/PermissionMonitor;)V
-PLcom/android/server/connectivity/PermissionMonitor$PackageListObserver;-><init>(Lcom/android/server/connectivity/PermissionMonitor;Lcom/android/server/connectivity/PermissionMonitor$1;)V
+PLcom/android/server/connectivity/NetworkNotificationManager;->getTransportName(I)Ljava/lang/String;
+PLcom/android/server/connectivity/NetworkNotificationManager;->priority(Lcom/android/server/connectivity/NetworkNotificationManager$NotificationType;)I
+PLcom/android/server/connectivity/NetworkNotificationManager;->showNotification(ILcom/android/server/connectivity/NetworkNotificationManager$NotificationType;Lcom/android/server/connectivity/NetworkAgentInfo;Lcom/android/server/connectivity/NetworkAgentInfo;Landroid/app/PendingIntent;Z)V
+HSPLcom/android/server/connectivity/PacManager$1;-><init>(Lcom/android/server/connectivity/PacManager;)V
+HSPLcom/android/server/connectivity/PacManager$PacRefreshIntentReceiver;-><init>(Lcom/android/server/connectivity/PacManager;)V
+HSPLcom/android/server/connectivity/PacManager;-><init>(Landroid/content/Context;Landroid/os/Handler;I)V
+HSPLcom/android/server/connectivity/PermissionMonitor$PackageListObserver;-><init>(Lcom/android/server/connectivity/PermissionMonitor;)V
+HSPLcom/android/server/connectivity/PermissionMonitor$PackageListObserver;-><init>(Lcom/android/server/connectivity/PermissionMonitor;Lcom/android/server/connectivity/PermissionMonitor$1;)V
PLcom/android/server/connectivity/PermissionMonitor$PackageListObserver;->getPermissionForUid(I)I
PLcom/android/server/connectivity/PermissionMonitor$PackageListObserver;->onPackageAdded(Ljava/lang/String;I)V
PLcom/android/server/connectivity/PermissionMonitor$PackageListObserver;->onPackageChanged(Ljava/lang/String;I)V
-PLcom/android/server/connectivity/PermissionMonitor;-><clinit>()V
-PLcom/android/server/connectivity/PermissionMonitor;-><init>(Landroid/content/Context;Landroid/net/INetd;)V
+HSPLcom/android/server/connectivity/PermissionMonitor;-><clinit>()V
+HSPLcom/android/server/connectivity/PermissionMonitor;-><init>(Landroid/content/Context;Landroid/net/INetd;)V
PLcom/android/server/connectivity/PermissionMonitor;->access$000(Lcom/android/server/connectivity/PermissionMonitor;)Landroid/content/pm/PackageManager;
PLcom/android/server/connectivity/PermissionMonitor;->access$100(Lcom/android/server/connectivity/PermissionMonitor;Ljava/lang/String;)Landroid/content/pm/PackageInfo;
PLcom/android/server/connectivity/PermissionMonitor;->access$200([Ljava/lang/String;[I)I
-PLcom/android/server/connectivity/PermissionMonitor;->getDeviceFirstSdkInt()I
-HPLcom/android/server/connectivity/PermissionMonitor;->getNetdPermissionMask([Ljava/lang/String;[I)I
+PLcom/android/server/connectivity/PermissionMonitor;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/connectivity/PermissionMonitor;->getDeviceFirstSdkInt()I
+HSPLcom/android/server/connectivity/PermissionMonitor;->getNetdPermissionMask([Ljava/lang/String;[I)I
PLcom/android/server/connectivity/PermissionMonitor;->getPackageInfo(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
-PLcom/android/server/connectivity/PermissionMonitor;->hasNetworkPermission(Landroid/content/pm/PackageInfo;)Z
-HPLcom/android/server/connectivity/PermissionMonitor;->hasPermission(Landroid/content/pm/PackageInfo;Ljava/lang/String;)Z
-PLcom/android/server/connectivity/PermissionMonitor;->hasRestrictedNetworkPermission(Landroid/content/pm/PackageInfo;)Z
-PLcom/android/server/connectivity/PermissionMonitor;->hasUseBackgroundNetworksPermission(I)Z
+HSPLcom/android/server/connectivity/PermissionMonitor;->hasNetworkPermission(Landroid/content/pm/PackageInfo;)Z
+HSPLcom/android/server/connectivity/PermissionMonitor;->hasPermission(Landroid/content/pm/PackageInfo;Ljava/lang/String;)Z
+HSPLcom/android/server/connectivity/PermissionMonitor;->hasRestrictedNetworkPermission(Landroid/content/pm/PackageInfo;)Z
+HSPLcom/android/server/connectivity/PermissionMonitor;->hasUseBackgroundNetworksPermission(I)Z
PLcom/android/server/connectivity/PermissionMonitor;->highestPermissionForUid(Ljava/lang/Boolean;Ljava/lang/String;)Ljava/lang/Boolean;
-PLcom/android/server/connectivity/PermissionMonitor;->isVendorApp(Landroid/content/pm/ApplicationInfo;)Z
-PLcom/android/server/connectivity/PermissionMonitor;->log(Ljava/lang/String;)V
+HSPLcom/android/server/connectivity/PermissionMonitor;->isVendorApp(Landroid/content/pm/ApplicationInfo;)Z
+HSPLcom/android/server/connectivity/PermissionMonitor;->log(Ljava/lang/String;)V
PLcom/android/server/connectivity/PermissionMonitor;->onPackageAdded(Ljava/lang/String;I)V
PLcom/android/server/connectivity/PermissionMonitor;->onPackageRemoved(I)V
PLcom/android/server/connectivity/PermissionMonitor;->sendPackagePermissionsForUid(II)V
-PLcom/android/server/connectivity/PermissionMonitor;->sendPackagePermissionsToNetd(Landroid/util/SparseIntArray;)V
-PLcom/android/server/connectivity/PermissionMonitor;->startMonitoring()V
-HPLcom/android/server/connectivity/PermissionMonitor;->toIntArray(Ljava/util/Collection;)[I
-PLcom/android/server/connectivity/PermissionMonitor;->update(Ljava/util/Set;Ljava/util/Map;Z)V
-PLcom/android/server/connectivity/ProxyTracker;-><clinit>()V
-PLcom/android/server/connectivity/ProxyTracker;-><init>(Landroid/content/Context;Landroid/os/Handler;I)V
+HSPLcom/android/server/connectivity/PermissionMonitor;->sendPackagePermissionsToNetd(Landroid/util/SparseIntArray;)V
+HSPLcom/android/server/connectivity/PermissionMonitor;->startMonitoring()V
+HSPLcom/android/server/connectivity/PermissionMonitor;->toIntArray(Ljava/util/Collection;)[I
+HSPLcom/android/server/connectivity/PermissionMonitor;->update(Ljava/util/Set;Ljava/util/Map;Z)V
+HSPLcom/android/server/connectivity/ProxyTracker;-><clinit>()V
+HSPLcom/android/server/connectivity/ProxyTracker;-><init>(Landroid/content/Context;Landroid/os/Handler;I)V
PLcom/android/server/connectivity/ProxyTracker;->canonicalizeProxyInfo(Landroid/net/ProxyInfo;)Landroid/net/ProxyInfo;
-PLcom/android/server/connectivity/ProxyTracker;->getGlobalProxy()Landroid/net/ProxyInfo;
-PLcom/android/server/connectivity/ProxyTracker;->loadDeprecatedGlobalHttpProxy()V
-PLcom/android/server/connectivity/ProxyTracker;->loadGlobalProxy()V
+HSPLcom/android/server/connectivity/ProxyTracker;->getGlobalProxy()Landroid/net/ProxyInfo;
+HSPLcom/android/server/connectivity/ProxyTracker;->loadDeprecatedGlobalHttpProxy()V
+HSPLcom/android/server/connectivity/ProxyTracker;->loadGlobalProxy()V
PLcom/android/server/connectivity/ProxyTracker;->proxyInfoEqual(Landroid/net/ProxyInfo;Landroid/net/ProxyInfo;)Z
PLcom/android/server/connectivity/ProxyTracker;->setDefaultProxy(Landroid/net/ProxyInfo;)V
-PLcom/android/server/connectivity/TcpKeepaliveController;-><clinit>()V
-PLcom/android/server/connectivity/TcpKeepaliveController;-><init>(Landroid/os/Handler;)V
+HSPLcom/android/server/connectivity/TcpKeepaliveController;-><clinit>()V
+HSPLcom/android/server/connectivity/TcpKeepaliveController;-><init>(Landroid/os/Handler;)V
PLcom/android/server/connectivity/Vpn$2;-><init>(Lcom/android/server/connectivity/Vpn;)V
+PLcom/android/server/connectivity/Vpn$2;->interfaceRemoved(Ljava/lang/String;)V
PLcom/android/server/connectivity/Vpn$SystemServices;-><init>(Landroid/content/Context;)V
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;
@@ -6456,13 +7715,11 @@ PLcom/android/server/connectivity/Vpn;-><init>(Landroid/os/Looper;Landroid/conte
PLcom/android/server/connectivity/Vpn;-><init>(Landroid/os/Looper;Landroid/content/Context;Landroid/os/INetworkManagementService;ILcom/android/server/connectivity/Vpn$SystemServices;)V
HPLcom/android/server/connectivity/Vpn;->appliesToUid(I)Z
PLcom/android/server/connectivity/Vpn;->doesPackageTargetAtLeastQ(Ljava/lang/String;)Z
-PLcom/android/server/connectivity/Vpn;->enforceControlPermission()V
+PLcom/android/server/connectivity/Vpn;->enforceControlPermissionOrInternalCaller()V
PLcom/android/server/connectivity/Vpn;->getAlwaysOnPackage()Ljava/lang/String;
PLcom/android/server/connectivity/Vpn;->getAppUid(Ljava/lang/String;I)I
HPLcom/android/server/connectivity/Vpn;->getLockdown()Z
-PLcom/android/server/connectivity/Vpn;->getNetId()I
PLcom/android/server/connectivity/Vpn;->getUnderlyingNetworks()[Landroid/net/Network;
-PLcom/android/server/connectivity/Vpn;->getVpnConfig()Lcom/android/internal/net/VpnConfig;
PLcom/android/server/connectivity/Vpn;->getVpnInfo()Lcom/android/internal/net/VpnInfo;
PLcom/android/server/connectivity/Vpn;->isCurrentPreparedPackage(Ljava/lang/String;)Z
PLcom/android/server/connectivity/Vpn;->isNullOrLegacyVpn(Ljava/lang/String;)Z
@@ -6474,80 +7731,102 @@ 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/Vpn;->updateCapabilities(Landroid/net/Network;)Landroid/net/NetworkCapabilities;
-PLcom/android/server/content/-$$Lambda$ContentService$5-BNVxd6JTWU9ogp3u-0kfiqgbI;-><init>(Lcom/android/server/content/ContentService;)V
-PLcom/android/server/content/-$$Lambda$SyncManager$68MEyNkTh36YmYoFlURJoRa_-cY;-><clinit>()V
-PLcom/android/server/content/-$$Lambda$SyncManager$68MEyNkTh36YmYoFlURJoRa_-cY;-><init>()V
+HSPLcom/android/server/content/-$$Lambda$ContentService$5-BNVxd6JTWU9ogp3u-0kfiqgbI;-><init>(Lcom/android/server/content/ContentService;)V
+PLcom/android/server/content/-$$Lambda$ContentService$5-BNVxd6JTWU9ogp3u-0kfiqgbI;->getPackages(Ljava/lang/String;I)[Ljava/lang/String;
+HSPLcom/android/server/content/-$$Lambda$SyncManager$68MEyNkTh36YmYoFlURJoRa_-cY;-><clinit>()V
+HSPLcom/android/server/content/-$$Lambda$SyncManager$68MEyNkTh36YmYoFlURJoRa_-cY;-><init>()V
+PLcom/android/server/content/-$$Lambda$SyncManager$68MEyNkTh36YmYoFlURJoRa_-cY;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
PLcom/android/server/content/-$$Lambda$SyncManager$6y-gkGdDn-rSLmR9G8Pz_n9zy2A;-><init>(Lcom/android/server/content/SyncManager;I)V
PLcom/android/server/content/-$$Lambda$SyncManager$6y-gkGdDn-rSLmR9G8Pz_n9zy2A;->run()V
-PLcom/android/server/content/-$$Lambda$SyncManager$BRG-YMU-C9QC6JWVXAvsoEZC6Zc;-><init>(Lcom/android/server/content/SyncManager;Landroid/accounts/AccountAndUser;IILjava/lang/String;Landroid/os/Bundle;IJIIILjava/lang/String;)V
+PLcom/android/server/content/-$$Lambda$SyncManager$9EoLpTk5JrHZn9R-uS0lqCVrpRw;-><init>(Ljava/lang/StringBuilder;Lcom/android/server/content/SyncManager$PrintTable;)V
+PLcom/android/server/content/-$$Lambda$SyncManager$9EoLpTk5JrHZn9R-uS0lqCVrpRw;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/content/-$$Lambda$SyncManager$CjX_2uO4O4xJPQnKzeqvGwd87Dc;-><init>(Lcom/android/server/content/SyncManager;I)V
PLcom/android/server/content/-$$Lambda$SyncManager$CjX_2uO4O4xJPQnKzeqvGwd87Dc;->run()V
-PLcom/android/server/content/-$$Lambda$SyncManager$HhiSFjEoPA_Hnv3xYZGfwkalc68;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/-$$Lambda$SyncManager$HhiSFjEoPA_Hnv3xYZGfwkalc68;->onAppPermissionChanged(Landroid/accounts/Account;I)V
+PLcom/android/server/content/-$$Lambda$SyncManager$EMXCZP9LDjgUTYbLsEoVu9Ccntw;-><init>(Lcom/android/server/content/SyncManager;)V
+PLcom/android/server/content/-$$Lambda$SyncManager$EMXCZP9LDjgUTYbLsEoVu9Ccntw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/content/-$$Lambda$SyncManager$HhiSFjEoPA_Hnv3xYZGfwkalc68;-><init>(Lcom/android/server/content/SyncManager;)V
PLcom/android/server/content/-$$Lambda$SyncManager$XKEiBZ17uDgUCTwf_kh9_pH7usQ;-><init>(Lcom/android/server/content/SyncManager;Landroid/accounts/AccountAndUser;ILjava/lang/String;Landroid/os/Bundle;IJIIILjava/lang/String;)V
PLcom/android/server/content/-$$Lambda$SyncManager$XKEiBZ17uDgUCTwf_kh9_pH7usQ;->onReady()V
-PLcom/android/server/content/-$$Lambda$SyncManager$bVs0A6OYdmGkOiq_lbp5MiBwelw;-><clinit>()V
-PLcom/android/server/content/-$$Lambda$SyncManager$bVs0A6OYdmGkOiq_lbp5MiBwelw;-><init>()V
+PLcom/android/server/content/-$$Lambda$SyncManager$ag0YGuZ1oL06fytmNlyErbNyYcw;-><clinit>()V
+PLcom/android/server/content/-$$Lambda$SyncManager$ag0YGuZ1oL06fytmNlyErbNyYcw;-><init>()V
+PLcom/android/server/content/-$$Lambda$SyncManager$ag0YGuZ1oL06fytmNlyErbNyYcw;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/content/-$$Lambda$SyncManager$bVs0A6OYdmGkOiq_lbp5MiBwelw;-><clinit>()V
+HSPLcom/android/server/content/-$$Lambda$SyncManager$bVs0A6OYdmGkOiq_lbp5MiBwelw;-><init>()V
+PLcom/android/server/content/-$$Lambda$SyncManager$bVs0A6OYdmGkOiq_lbp5MiBwelw;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/content/-$$Lambda$SyncManager$pdoEVnuSkmOrvULQ9M7Ic-lU5vw;-><clinit>()V
+PLcom/android/server/content/-$$Lambda$SyncManager$pdoEVnuSkmOrvULQ9M7Ic-lU5vw;-><init>()V
+PLcom/android/server/content/-$$Lambda$SyncManager$pdoEVnuSkmOrvULQ9M7Ic-lU5vw;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/content/-$$Lambda$SyncManager$rDUHWai3SU0BXk1TE0bLDap9gVc;-><clinit>()V
+PLcom/android/server/content/-$$Lambda$SyncManager$rDUHWai3SU0BXk1TE0bLDap9gVc;-><init>()V
+PLcom/android/server/content/-$$Lambda$SyncManager$rDUHWai3SU0BXk1TE0bLDap9gVc;->test(Ljava/lang/Object;)Z
PLcom/android/server/content/-$$Lambda$SyncManager$zZUXjd-GLFQgHtMQ3vq0EWHvir8;-><init>(Landroid/content/Context;Lcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;)V
PLcom/android/server/content/-$$Lambda$SyncManager$zZUXjd-GLFQgHtMQ3vq0EWHvir8;->run()V
-PLcom/android/server/content/-$$Lambda$SyncManagerConstants$qo5ldQVp10jCUY9aavBZDKP2k6Q;-><init>(Lcom/android/server/content/SyncManagerConstants;)V
-PLcom/android/server/content/-$$Lambda$SyncManagerConstants$qo5ldQVp10jCUY9aavBZDKP2k6Q;->run()V
-PLcom/android/server/content/ContentService$1;-><init>(Lcom/android/server/content/ContentService;)V
+HSPLcom/android/server/content/-$$Lambda$SyncManagerConstants$qo5ldQVp10jCUY9aavBZDKP2k6Q;-><init>(Lcom/android/server/content/SyncManagerConstants;)V
+HSPLcom/android/server/content/-$$Lambda$SyncManagerConstants$qo5ldQVp10jCUY9aavBZDKP2k6Q;->run()V
+HSPLcom/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$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$2;-><init>(Lcom/android/server/content/ContentService;Landroid/util/SparseIntArray;)V
+PLcom/android/server/content/ContentService$2;->compare(Ljava/lang/Integer;Ljava/lang/Integer;)I
+PLcom/android/server/content/ContentService$2;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/content/ContentService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/content/ContentService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/content/ContentService$Lifecycle;->onStart()V
PLcom/android/server/content/ContentService$Lifecycle;->onStartUser(I)V
PLcom/android/server/content/ContentService$Lifecycle;->onUnlockUser(I)V
PLcom/android/server/content/ContentService$ObserverCall;-><init>(Landroid/database/IContentObserver;ZLandroid/net/Uri;II)V
HPLcom/android/server/content/ContentService$ObserverCall;->run()V
-HPLcom/android/server/content/ContentService$ObserverNode$ObserverEntry;-><init>(Lcom/android/server/content/ContentService$ObserverNode;Landroid/database/IContentObserver;ZLjava/lang/Object;IIILandroid/net/Uri;)V
+HSPLcom/android/server/content/ContentService$ObserverNode$ObserverEntry;-><init>(Lcom/android/server/content/ContentService$ObserverNode;Landroid/database/IContentObserver;ZLjava/lang/Object;IIILandroid/net/Uri;)V
PLcom/android/server/content/ContentService$ObserverNode$ObserverEntry;->access$400(Lcom/android/server/content/ContentService$ObserverNode$ObserverEntry;)I
-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
-PLcom/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;ZIILjava/util/ArrayList;)V
-HPLcom/android/server/content/ContentService$ObserverNode;->collectObserversLocked(Landroid/net/Uri;ILandroid/database/IContentObserver;ZIILjava/util/ArrayList;)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$ObserverEntry;->binderDied()V
+HPLcom/android/server/content/ContentService$ObserverNode$ObserverEntry;->dumpLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/util/SparseIntArray;)V
+HSPLcom/android/server/content/ContentService$ObserverNode;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/content/ContentService$ObserverNode;->addObserverLocked(Landroid/net/Uri;ILandroid/database/IContentObserver;ZLjava/lang/Object;III)V
+HSPLcom/android/server/content/ContentService$ObserverNode;->addObserverLocked(Landroid/net/Uri;Landroid/database/IContentObserver;ZLjava/lang/Object;III)V
+HSPLcom/android/server/content/ContentService$ObserverNode;->collectMyObserversLocked(Landroid/net/Uri;ZLandroid/database/IContentObserver;ZIILjava/util/ArrayList;)V
+HSPLcom/android/server/content/ContentService$ObserverNode;->collectObserversLocked(Landroid/net/Uri;ILandroid/database/IContentObserver;ZIILjava/util/ArrayList;)V
+HSPLcom/android/server/content/ContentService$ObserverNode;->countUriSegments(Landroid/net/Uri;)I
+PLcom/android/server/content/ContentService$ObserverNode;->dumpLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[ILandroid/util/SparseIntArray;)V
+HSPLcom/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;-><clinit>()V
-PLcom/android/server/content/ContentService;-><init>(Landroid/content/Context;Z)V
-PLcom/android/server/content/ContentService;->access$200()Lcom/android/internal/os/BinderDeathDispatcher;
+HSPLcom/android/server/content/ContentService;-><clinit>()V
+HSPLcom/android/server/content/ContentService;-><init>(Landroid/content/Context;Z)V
+HSPLcom/android/server/content/ContentService;->access$200()Lcom/android/internal/os/BinderDeathDispatcher;
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;->checkUriPermission(Landroid/net/Uri;IIII)I
PLcom/android/server/content/ContentService;->clampPeriod(J)J
-PLcom/android/server/content/ContentService;->enforceCrossUserPermission(ILjava/lang/String;)V
+PLcom/android/server/content/ContentService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/content/ContentService;->enforceCrossUserPermission(ILjava/lang/String;)V
PLcom/android/server/content/ContentService;->findOrCreateCacheLocked(ILjava/lang/String;)Landroid/util/ArrayMap;
PLcom/android/server/content/ContentService;->getCache(Ljava/lang/String;Landroid/net/Uri;I)Landroid/os/Bundle;
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
+HPLcom/android/server/content/ContentService;->getMasterSyncAutomatically()Z
+HPLcom/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;
-PLcom/android/server/content/ContentService;->getProviderPackageName(Landroid/net/Uri;I)Ljava/lang/String;
-PLcom/android/server/content/ContentService;->getSyncAdapterPackagesForAuthorityAsUser(Ljava/lang/String;I)[Ljava/lang/String;
+HSPLcom/android/server/content/ContentService;->getProviderPackageName(Landroid/net/Uri;I)Ljava/lang/String;
+HSPLcom/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
-PLcom/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;->invalidateCacheLocked(ILjava/lang/String;Landroid/net/Uri;)V
+HPLcom/android/server/content/ContentService;->getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)Z
+HPLcom/android/server/content/ContentService;->getSyncAutomaticallyAsUser(Landroid/accounts/Account;Ljava/lang/String;I)Z
+HSPLcom/android/server/content/ContentService;->getSyncExemptionAndCleanUpExtrasForCaller(ILandroid/os/Bundle;)I
+HSPLcom/android/server/content/ContentService;->getSyncExemptionForCaller(I)I
+HSPLcom/android/server/content/ContentService;->getSyncManager()Lcom/android/server/content/SyncManager;
+HSPLcom/android/server/content/ContentService;->handleIncomingUser(Landroid/net/Uri;IIIZI)I
+HSPLcom/android/server/content/ContentService;->invalidateCacheLocked(ILjava/lang/String;Landroid/net/Uri;)V
PLcom/android/server/content/ContentService;->isSyncActive(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;)Z
PLcom/android/server/content/ContentService;->isSyncPendingAsUser(Landroid/accounts/Account;Ljava/lang/String;Landroid/content/ComponentName;I)Z
-HPLcom/android/server/content/ContentService;->notifyChange(Landroid/net/Uri;Landroid/database/IContentObserver;ZIIILjava/lang/String;)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;->lambda$new$0$ContentService(Ljava/lang/String;I)[Ljava/lang/String;
+HSPLcom/android/server/content/ContentService;->notifyChange(Landroid/net/Uri;Landroid/database/IContentObserver;ZIIILjava/lang/String;)V
+HSPLcom/android/server/content/ContentService;->notifyChange([Landroid/net/Uri;Landroid/database/IContentObserver;ZIIILjava/lang/String;)V
+HSPLcom/android/server/content/ContentService;->onBootPhase(I)V
PLcom/android/server/content/ContentService;->onStartUser(I)V
+PLcom/android/server/content/ContentService;->onUnlockUser(I)V
PLcom/android/server/content/ContentService;->putCache(Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;I)V
-HPLcom/android/server/content/ContentService;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/IContentObserver;II)V
+HSPLcom/android/server/content/ContentService;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/IContentObserver;II)V
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
@@ -6556,8 +7835,12 @@ PLcom/android/server/content/ContentService;->sync(Landroid/content/SyncRequest;
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/SyncAdapterStateFetcher;->getStandbyBucket(ILjava/lang/String;)I
+PLcom/android/server/content/SyncAdapterStateFetcher;->isAppActive(I)Z
PLcom/android/server/content/SyncJobService;-><clinit>()V
PLcom/android/server/content/SyncJobService;-><init>()V
+HPLcom/android/server/content/SyncJobService;->callJobFinished(IZLjava/lang/String;)V
PLcom/android/server/content/SyncJobService;->callJobFinishedInner(IZLjava/lang/String;)V
PLcom/android/server/content/SyncJobService;->getInstance()Lcom/android/server/content/SyncJobService;
PLcom/android/server/content/SyncJobService;->isReady()Z
@@ -6566,92 +7849,130 @@ PLcom/android/server/content/SyncJobService;->markSyncStarted(I)V
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/SyncJobService;->updateInstance()V
-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
-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
+HSPLcom/android/server/content/SyncLogger$RotatingFileLogger$MyHandler;-><init>(Lcom/android/server/content/SyncLogger$RotatingFileLogger;Landroid/os/Looper;)V
+HSPLcom/android/server/content/SyncLogger$RotatingFileLogger$MyHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/content/SyncLogger$RotatingFileLogger$MyHandler;->log(J[Ljava/lang/Object;)V
+HSPLcom/android/server/content/SyncLogger$RotatingFileLogger;-><clinit>()V
+HSPLcom/android/server/content/SyncLogger$RotatingFileLogger;-><init>()V
+HSPLcom/android/server/content/SyncLogger$RotatingFileLogger;->closeCurrentLogLocked()V
+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
+HSPLcom/android/server/content/SyncLogger$RotatingFileLogger;->enabled()Z
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
-PLcom/android/server/content/SyncLogger$RotatingFileLogger;->openLogLocked(J)V
+HSPLcom/android/server/content/SyncLogger$RotatingFileLogger;->log([Ljava/lang/Object;)V
+HSPLcom/android/server/content/SyncLogger$RotatingFileLogger;->logInner(J[Ljava/lang/Object;)V
+HSPLcom/android/server/content/SyncLogger$RotatingFileLogger;->openLogLocked(J)V
PLcom/android/server/content/SyncLogger$RotatingFileLogger;->purgeOldLogs()V
-PLcom/android/server/content/SyncLogger;-><init>()V
-PLcom/android/server/content/SyncLogger;->getInstance()Lcom/android/server/content/SyncLogger;
+HSPLcom/android/server/content/SyncLogger;-><init>()V
+HSPLcom/android/server/content/SyncLogger;->getInstance()Lcom/android/server/content/SyncLogger;
PLcom/android/server/content/SyncLogger;->logSafe(Lcom/android/server/content/SyncOperation;)Ljava/lang/String;
-PLcom/android/server/content/SyncManager$10;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$11;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$11;->onServiceChanged(Ljava/lang/Object;IZ)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
+HSPLcom/android/server/content/SyncManager$10;-><init>(Lcom/android/server/content/SyncManager;)V
+HSPLcom/android/server/content/SyncManager$11;-><init>(Lcom/android/server/content/SyncManager;)V
+PLcom/android/server/content/SyncManager$13;-><init>(Lcom/android/server/content/SyncManager;)V
+PLcom/android/server/content/SyncManager$13;->compare(Landroid/content/pm/RegisteredServicesCache$ServiceInfo;Landroid/content/pm/RegisteredServicesCache$ServiceInfo;)I
+PLcom/android/server/content/SyncManager$13;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/content/SyncManager$14;-><init>(Lcom/android/server/content/SyncManager;)V
+PLcom/android/server/content/SyncManager$14;->compare(Lcom/android/server/content/SyncManager$AuthoritySyncStats;Lcom/android/server/content/SyncManager$AuthoritySyncStats;)I
+PLcom/android/server/content/SyncManager$14;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/content/SyncManager$15;-><init>(Lcom/android/server/content/SyncManager;)V
+PLcom/android/server/content/SyncManager$15;->compare(Lcom/android/server/content/SyncManager$AccountSyncStats;Lcom/android/server/content/SyncManager$AccountSyncStats;)I
+PLcom/android/server/content/SyncManager$15;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/content/SyncManager$1;-><init>(Lcom/android/server/content/SyncManager;)V
+HSPLcom/android/server/content/SyncManager$2;-><init>(Lcom/android/server/content/SyncManager;)V
+HSPLcom/android/server/content/SyncManager$3;-><init>(Lcom/android/server/content/SyncManager;)V
PLcom/android/server/content/SyncManager$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/content/SyncManager$4;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$5;-><init>(Lcom/android/server/content/SyncManager;)V
+HSPLcom/android/server/content/SyncManager$4;-><init>(Lcom/android/server/content/SyncManager;)V
+HSPLcom/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$6;-><init>(Lcom/android/server/content/SyncManager;)V
+HSPLcom/android/server/content/SyncManager$6;-><init>(Lcom/android/server/content/SyncManager;)V
PLcom/android/server/content/SyncManager$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
PLcom/android/server/content/SyncManager$7;-><init>(Lcom/android/server/content/SyncManager;)V
-PLcom/android/server/content/SyncManager$7;->run()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
+HPLcom/android/server/content/SyncManager$7;->run()V
+HSPLcom/android/server/content/SyncManager$8;-><init>(Lcom/android/server/content/SyncManager;)V
+HSPLcom/android/server/content/SyncManager$9;-><init>(Lcom/android/server/content/SyncManager;)V
+PLcom/android/server/content/SyncManager$AccountSyncStats;-><init>(Ljava/lang/String;)V
+PLcom/android/server/content/SyncManager$AccountSyncStats;-><init>(Ljava/lang/String;Lcom/android/server/content/SyncManager$1;)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;->bindToSyncAdapter(Landroid/content/ComponentName;I)Z
PLcom/android/server/content/SyncManager$ActiveSyncContext;->close()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$ActiveSyncContext;->onServiceDisconnected(Landroid/content/ComponentName;)V
+HPLcom/android/server/content/SyncManager$ActiveSyncContext;->toString()Ljava/lang/String;
+HPLcom/android/server/content/SyncManager$ActiveSyncContext;->toString(Ljava/lang/StringBuilder;Z)V
+PLcom/android/server/content/SyncManager$AuthoritySyncStats;-><init>(Ljava/lang/String;)V
+PLcom/android/server/content/SyncManager$AuthoritySyncStats;-><init>(Ljava/lang/String;Lcom/android/server/content/SyncManager$1;)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$OnReadyCallback;)V
PLcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;->access$2400(Lcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;)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$ScheduleSyncMessagePayload;-><init>(Lcom/android/server/content/SyncOperation;J)V
-PLcom/android/server/content/SyncManager$ServiceConnectionData;-><init>(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncManager$ActiveSyncContext;Landroid/os/IBinder;)V
-PLcom/android/server/content/SyncManager$SyncFinishedOrCancelledMessagePayload;-><init>(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncManager$ActiveSyncContext;Landroid/content/SyncResult;)V
-PLcom/android/server/content/SyncManager$SyncHandler;-><init>(Lcom/android/server/content/SyncManager;Landroid/os/Looper;)V
+PLcom/android/server/content/SyncManager$PrintTable;-><init>(I)V
+PLcom/android/server/content/SyncManager$PrintTable;->getNumRows()I
+PLcom/android/server/content/SyncManager$PrintTable;->printRow(Ljava/io/PrintWriter;[Ljava/lang/String;[Ljava/lang/Object;)V
+HPLcom/android/server/content/SyncManager$PrintTable;->set(II[Ljava/lang/Object;)V
+HPLcom/android/server/content/SyncManager$PrintTable;->writeTo(Ljava/io/PrintWriter;)V
+HPLcom/android/server/content/SyncManager$ScheduleSyncMessagePayload;-><init>(Lcom/android/server/content/SyncOperation;J)V
+HPLcom/android/server/content/SyncManager$ServiceConnectionData;-><init>(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncManager$ActiveSyncContext;Landroid/os/IBinder;)V
+HPLcom/android/server/content/SyncManager$SyncFinishedOrCancelledMessagePayload;-><init>(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncManager$ActiveSyncContext;Landroid/content/SyncResult;)V
+HSPLcom/android/server/content/SyncManager$SyncHandler;-><init>(Lcom/android/server/content/SyncManager;Landroid/os/Looper;)V
+PLcom/android/server/content/SyncManager$SyncHandler;->access$1800(Lcom/android/server/content/SyncManager$SyncHandler;Lcom/android/server/content/SyncOperation;)Landroid/os/PowerManager$WakeLock;
PLcom/android/server/content/SyncManager$SyncHandler;->cancelActiveSyncH(Lcom/android/server/content/SyncStorageEngine$EndPoint;Landroid/os/Bundle;Ljava/lang/String;)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
+HPLcom/android/server/content/SyncManager$SyncHandler;->computeSyncOpState(Lcom/android/server/content/SyncOperation;)I
+PLcom/android/server/content/SyncManager$SyncHandler;->deferStoppedSyncH(Lcom/android/server/content/SyncOperation;J)V
PLcom/android/server/content/SyncManager$SyncHandler;->deferSyncH(Lcom/android/server/content/SyncOperation;JLjava/lang/String;)V
PLcom/android/server/content/SyncManager$SyncHandler;->dispatchSyncOperation(Lcom/android/server/content/SyncOperation;)Z
+PLcom/android/server/content/SyncManager$SyncHandler;->findActiveSyncContextH(I)Lcom/android/server/content/SyncManager$ActiveSyncContext;
PLcom/android/server/content/SyncManager$SyncHandler;->getSyncWakeLock(Lcom/android/server/content/SyncOperation;)Landroid/os/PowerManager$WakeLock;
-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;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/content/SyncManager$SyncHandler;->handleSyncMessage(Landroid/os/Message;)V
+PLcom/android/server/content/SyncManager$SyncHandler;->insertStartSyncEvent(Lcom/android/server/content/SyncOperation;)J
PLcom/android/server/content/SyncManager$SyncHandler;->isSyncNotUsingNetworkH(Lcom/android/server/content/SyncManager$ActiveSyncContext;)Z
PLcom/android/server/content/SyncManager$SyncHandler;->maybeUpdateSyncPeriodH(Lcom/android/server/content/SyncOperation;JJ)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;->removePeriodicSyncInternalH(Lcom/android/server/content/SyncOperation;Ljava/lang/String;)V
+HPLcom/android/server/content/SyncManager$SyncHandler;->removePeriodicSyncH(Lcom/android/server/content/SyncStorageEngine$EndPoint;Landroid/os/Bundle;Ljava/lang/String;)V
+HPLcom/android/server/content/SyncManager$SyncHandler;->reschedulePeriodicSyncH(Lcom/android/server/content/SyncOperation;)V
PLcom/android/server/content/SyncManager$SyncHandler;->runBoundToAdapterH(Lcom/android/server/content/SyncManager$ActiveSyncContext;Landroid/os/IBinder;)V
PLcom/android/server/content/SyncManager$SyncHandler;->runSyncFinishedOrCanceledH(Landroid/content/SyncResult;Lcom/android/server/content/SyncManager$ActiveSyncContext;)V
-PLcom/android/server/content/SyncManager$SyncHandler;->startSyncH(Lcom/android/server/content/SyncOperation;)V
+HPLcom/android/server/content/SyncManager$SyncHandler;->startSyncH(Lcom/android/server/content/SyncOperation;)V
PLcom/android/server/content/SyncManager$SyncHandler;->stopSyncEvent(JLcom/android/server/content/SyncOperation;Ljava/lang/String;IIJ)V
PLcom/android/server/content/SyncManager$SyncHandler;->syncResultToErrorNumber(Landroid/content/SyncResult;)I
-PLcom/android/server/content/SyncManager$SyncHandler;->updateOrAddPeriodicSyncH(Lcom/android/server/content/SyncStorageEngine$EndPoint;JJLandroid/os/Bundle;)V
+HPLcom/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$1;)V
-PLcom/android/server/content/SyncManager$SyncTimeTracker;->update()V
-PLcom/android/server/content/SyncManager$UpdatePeriodicSyncMessagePayload;-><init>(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncStorageEngine$EndPoint;JJLandroid/os/Bundle;)V
-PLcom/android/server/content/SyncManager;-><clinit>()V
-PLcom/android/server/content/SyncManager;-><init>(Landroid/content/Context;Z)V
+HSPLcom/android/server/content/SyncManager$SyncTimeTracker;-><init>(Lcom/android/server/content/SyncManager;)V
+HSPLcom/android/server/content/SyncManager$SyncTimeTracker;-><init>(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncManager$1;)V
+PLcom/android/server/content/SyncManager$SyncTimeTracker;->timeSpentSyncing()J
+HPLcom/android/server/content/SyncManager$SyncTimeTracker;->update()V
+HPLcom/android/server/content/SyncManager$UpdatePeriodicSyncMessagePayload;-><init>(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncStorageEngine$EndPoint;JJLandroid/os/Bundle;)V
+HSPLcom/android/server/content/SyncManager;-><clinit>()V
+HSPLcom/android/server/content/SyncManager;-><init>(Landroid/content/Context;Z)V
+PLcom/android/server/content/SyncManager;->access$000(Lcom/android/server/content/SyncManager;)Z
+PLcom/android/server/content/SyncManager;->access$1000(Lcom/android/server/content/SyncManager;I)V
PLcom/android/server/content/SyncManager;->access$1200(Lcom/android/server/content/SyncManager;)Ljava/util/List;
PLcom/android/server/content/SyncManager;->access$1300(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncOperation;Ljava/lang/String;)V
+PLcom/android/server/content/SyncManager;->access$1700(Lcom/android/server/content/SyncManager;)Lcom/android/server/content/SyncManager$SyncHandler;
+PLcom/android/server/content/SyncManager;->access$2000(Lcom/android/server/content/SyncManager;)Landroid/content/Context;
+PLcom/android/server/content/SyncManager;->access$2100(Lcom/android/server/content/SyncManager;)Lcom/android/internal/app/IBatteryStats;
PLcom/android/server/content/SyncManager;->access$2600(Lcom/android/server/content/SyncManager;)Landroid/os/PowerManager$WakeLock;
PLcom/android/server/content/SyncManager;->access$2700(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncOperation;J)V
PLcom/android/server/content/SyncManager;->access$2800(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncStorageEngine$EndPoint;)V
PLcom/android/server/content/SyncManager;->access$300(Lcom/android/server/content/SyncManager;)Z
+PLcom/android/server/content/SyncManager;->access$3000(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncManager$ActiveSyncContext;)V
PLcom/android/server/content/SyncManager;->access$302(Lcom/android/server/content/SyncManager;Z)Z
+PLcom/android/server/content/SyncManager;->access$3100(Lcom/android/server/content/SyncManager;)Landroid/os/PowerManager;
+PLcom/android/server/content/SyncManager;->access$3300(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncStorageEngine$EndPoint;)V
+PLcom/android/server/content/SyncManager;->access$3400(Lcom/android/server/content/SyncManager;)[Landroid/accounts/AccountAndUser;
+PLcom/android/server/content/SyncManager;->access$3402(Lcom/android/server/content/SyncManager;[Landroid/accounts/AccountAndUser;)[Landroid/accounts/AccountAndUser;
+PLcom/android/server/content/SyncManager;->access$3500(Lcom/android/server/content/SyncManager;)V
+PLcom/android/server/content/SyncManager;->access$3600(Lcom/android/server/content/SyncManager;[Landroid/accounts/AccountAndUser;Landroid/accounts/Account;I)Z
PLcom/android/server/content/SyncManager;->access$3700(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncOperation;)V
PLcom/android/server/content/SyncManager;->access$3800(Lcom/android/server/content/SyncManager;)V
PLcom/android/server/content/SyncManager;->access$400(Lcom/android/server/content/SyncManager;)Z
PLcom/android/server/content/SyncManager;->access$4200(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncStorageEngine$EndPoint;Ljava/lang/String;)V
PLcom/android/server/content/SyncManager;->access$4300(Lcom/android/server/content/SyncManager;)Lcom/android/server/content/SyncManagerConstants;
PLcom/android/server/content/SyncManager;->access$4400(Lcom/android/server/content/SyncManager;Landroid/content/SyncResult;Lcom/android/server/content/SyncOperation;)V
+PLcom/android/server/content/SyncManager;->access$4500(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncOperation;J)V
PLcom/android/server/content/SyncManager;->access$4600(Lcom/android/server/content/SyncManager;Lcom/android/server/content/SyncStorageEngine$EndPoint;J)V
PLcom/android/server/content/SyncManager;->access$4700(Lcom/android/server/content/SyncManager;)Landroid/app/NotificationManager;
PLcom/android/server/content/SyncManager;->access$500(Lcom/android/server/content/SyncManager;Ljava/lang/String;)V
@@ -6663,28 +7984,49 @@ PLcom/android/server/content/SyncManager;->cleanupJobs()V
PLcom/android/server/content/SyncManager;->clearAllBackoffs(Ljava/lang/String;)V
PLcom/android/server/content/SyncManager;->clearBackoffSetting(Lcom/android/server/content/SyncStorageEngine$EndPoint;Ljava/lang/String;)V
PLcom/android/server/content/SyncManager;->clearScheduledSyncOperations(Lcom/android/server/content/SyncStorageEngine$EndPoint;)V
-PLcom/android/server/content/SyncManager;->computeSyncable(Landroid/accounts/Account;ILjava/lang/String;Z)I
-PLcom/android/server/content/SyncManager;->formatDurationHMS(Ljava/lang/StringBuilder;J)Ljava/lang/StringBuilder;
+HPLcom/android/server/content/SyncManager;->computeSyncable(Landroid/accounts/Account;ILjava/lang/String;Z)I
+PLcom/android/server/content/SyncManager;->containsAccountAndUser([Landroid/accounts/AccountAndUser;Landroid/accounts/Account;I)Z
+PLcom/android/server/content/SyncManager;->dump(Ljava/io/FileDescriptor;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;->dumpDayStatistics(Ljava/io/PrintWriter;)V
+PLcom/android/server/content/SyncManager;->dumpPendingSyncs(Ljava/io/PrintWriter;Lcom/android/server/content/SyncAdapterStateFetcher;)V
+PLcom/android/server/content/SyncManager;->dumpPeriodicSyncs(Ljava/io/PrintWriter;Lcom/android/server/content/SyncAdapterStateFetcher;)V
+PLcom/android/server/content/SyncManager;->dumpRecentHistory(Ljava/io/PrintWriter;)V
+PLcom/android/server/content/SyncManager;->dumpSyncAdapters(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/content/SyncManager;->dumpSyncHistory(Ljava/io/PrintWriter;)V
+PLcom/android/server/content/SyncManager;->dumpSyncState(Ljava/io/PrintWriter;Lcom/android/server/content/SyncAdapterStateFetcher;)V
+HPLcom/android/server/content/SyncManager;->formatDurationHMS(Ljava/lang/StringBuilder;J)Ljava/lang/StringBuilder;
+PLcom/android/server/content/SyncManager;->formatTime(J)Ljava/lang/String;
PLcom/android/server/content/SyncManager;->getAdapterBindIntent(Landroid/content/Context;Landroid/content/ComponentName;I)Landroid/content/Intent;
HPLcom/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;->getIsSyncable(Landroid/accounts/Account;ILjava/lang/String;)I
+PLcom/android/server/content/SyncManager;->getAllUsers()Ljava/util/List;
+HPLcom/android/server/content/SyncManager;->getConnectivityManager()Landroid/net/ConnectivityManager;
+HPLcom/android/server/content/SyncManager;->getInstance()Lcom/android/server/content/SyncManager;
+HPLcom/android/server/content/SyncManager;->getIsSyncable(Landroid/accounts/Account;ILjava/lang/String;)I
PLcom/android/server/content/SyncManager;->getJobScheduler()Landroid/app/job/JobScheduler;
PLcom/android/server/content/SyncManager;->getJobStats()Ljava/lang/String;
PLcom/android/server/content/SyncManager;->getPeriodicSyncs(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Ljava/util/List;
-PLcom/android/server/content/SyncManager;->getSyncAdapterPackagesForAuthorityAsUser(Ljava/lang/String;I)[Ljava/lang/String;
+HSPLcom/android/server/content/SyncManager;->getSyncAdapterPackagesForAuthorityAsUser(Ljava/lang/String;I)[Ljava/lang/String;
HPLcom/android/server/content/SyncManager;->getSyncAdapterTypes(I)[Landroid/content/SyncAdapterType;
PLcom/android/server/content/SyncManager;->getSyncStorageEngine()Lcom/android/server/content/SyncStorageEngine;
+PLcom/android/server/content/SyncManager;->getTotalBytesTransferredByUid(I)J
+PLcom/android/server/content/SyncManager;->getUnusedJobIdH()I
PLcom/android/server/content/SyncManager;->increaseBackoffSetting(Lcom/android/server/content/SyncStorageEngine$EndPoint;)V
PLcom/android/server/content/SyncManager;->isAdapterDelayed(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Z
-PLcom/android/server/content/SyncManager;->isDeviceProvisioned()Z
+HSPLcom/android/server/content/SyncManager;->isDeviceProvisioned()Z
HPLcom/android/server/content/SyncManager;->isJobIdInUseLockedH(ILjava/util/List;)Z
PLcom/android/server/content/SyncManager;->isUserUnlocked(I)Z
PLcom/android/server/content/SyncManager;->jitterize(JJ)J
+PLcom/android/server/content/SyncManager;->lambda$dumpPendingSyncs$8(Lcom/android/server/content/SyncOperation;)Z
+PLcom/android/server/content/SyncManager;->lambda$dumpPeriodicSyncs$9(Lcom/android/server/content/SyncOperation;)Z
+PLcom/android/server/content/SyncManager;->lambda$dumpSyncState$10(Ljava/lang/StringBuilder;Lcom/android/server/content/SyncManager$PrintTable;Ljava/lang/String;Landroid/content/SyncStatusInfo$Stats;Ljava/util/function/Function;Ljava/lang/Integer;)V
PLcom/android/server/content/SyncManager;->lambda$onStartUser$1$SyncManager(I)V
+PLcom/android/server/content/SyncManager;->lambda$onUnlockUser$2$SyncManager(I)V
+PLcom/android/server/content/SyncManager;->lambda$scheduleSync$5$SyncManager(Landroid/accounts/AccountAndUser;ILjava/lang/String;Landroid/os/Bundle;IJIIILjava/lang/String;)V
+PLcom/android/server/content/SyncManager;->lambda$sendOnUnsyncableAccount$12(Landroid/content/Context;Lcom/android/server/content/SyncManager$OnUnsyncableAccountCheck;)V
+PLcom/android/server/content/SyncManager;->lambda$static$6(Lcom/android/server/content/SyncOperation;Lcom/android/server/content/SyncOperation;)I
PLcom/android/server/content/SyncManager;->maybeRescheduleSync(Landroid/content/SyncResult;Lcom/android/server/content/SyncOperation;)V
-PLcom/android/server/content/SyncManager;->onBootPhase(I)V
+HSPLcom/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
@@ -6695,162 +8037,215 @@ PLcom/android/server/content/SyncManager;->readDataConnectionState()Z
PLcom/android/server/content/SyncManager;->readyToSync(I)Z
PLcom/android/server/content/SyncManager;->removeStaleAccounts()V
HPLcom/android/server/content/SyncManager;->rescheduleSyncs(Lcom/android/server/content/SyncStorageEngine$EndPoint;Ljava/lang/String;)V
-HPLcom/android/server/content/SyncManager;->scheduleLocalSync(Landroid/accounts/Account;IILjava/lang/String;IIILjava/lang/String;)V
+HSPLcom/android/server/content/SyncManager;->scheduleLocalSync(Landroid/accounts/Account;IILjava/lang/String;IIILjava/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
+HSPLcom/android/server/content/SyncManager;->scheduleSync(Landroid/accounts/Account;IILjava/lang/String;Landroid/os/Bundle;IJZIIILjava/lang/String;)V
HPLcom/android/server/content/SyncManager;->scheduleSyncOperationH(Lcom/android/server/content/SyncOperation;J)V
PLcom/android/server/content/SyncManager;->sendCancelSyncsMessage(Lcom/android/server/content/SyncStorageEngine$EndPoint;Landroid/os/Bundle;Ljava/lang/String;)V
+PLcom/android/server/content/SyncManager;->sendMessage(Landroid/os/Message;)V
PLcom/android/server/content/SyncManager;->sendOnUnsyncableAccount(Landroid/content/Context;Landroid/content/pm/RegisteredServicesCache$ServiceInfo;ILcom/android/server/content/SyncManager$OnReadyCallback;)V
PLcom/android/server/content/SyncManager;->sendSyncFinishedOrCanceledMessage(Lcom/android/server/content/SyncManager$ActiveSyncContext;Landroid/content/SyncResult;)V
HPLcom/android/server/content/SyncManager;->setAuthorityPendingState(Lcom/android/server/content/SyncStorageEngine$EndPoint;)V
PLcom/android/server/content/SyncManager;->setDelayUntilTime(Lcom/android/server/content/SyncStorageEngine$EndPoint;J)V
PLcom/android/server/content/SyncManager;->syncExtrasEquals(Landroid/os/Bundle;Landroid/os/Bundle;Z)Z
-PLcom/android/server/content/SyncManager;->verifyJobScheduler()V
-PLcom/android/server/content/SyncManager;->wasPackageEverLaunched(Ljava/lang/String;I)Z
-PLcom/android/server/content/SyncManager;->whiteListExistingSyncAdaptersIfNeeded()V
-PLcom/android/server/content/SyncManagerConstants;-><init>(Landroid/content/Context;)V
+PLcom/android/server/content/SyncManager;->updateRunningAccounts(Lcom/android/server/content/SyncStorageEngine$EndPoint;)V
+HPLcom/android/server/content/SyncManager;->verifyJobScheduler()V
+HSPLcom/android/server/content/SyncManager;->whiteListExistingSyncAdaptersIfNeeded()V
+HSPLcom/android/server/content/SyncManagerConstants;-><init>(Landroid/content/Context;)V
+PLcom/android/server/content/SyncManagerConstants;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/content/SyncManagerConstants;->getInitialSyncRetryTimeInSeconds()I
PLcom/android/server/content/SyncManagerConstants;->getKeyExemptionTempWhitelistDurationInSeconds()I
PLcom/android/server/content/SyncManagerConstants;->getMaxRetriesWithAppStandbyExemption()I
PLcom/android/server/content/SyncManagerConstants;->getMaxSyncRetryTimeInSeconds()I
PLcom/android/server/content/SyncManagerConstants;->getRetryTimeIncreaseFactor()F
-PLcom/android/server/content/SyncManagerConstants;->lambda$start$0$SyncManagerConstants()V
-PLcom/android/server/content/SyncManagerConstants;->refresh()V
-PLcom/android/server/content/SyncManagerConstants;->start()V
+HSPLcom/android/server/content/SyncManagerConstants;->lambda$start$0$SyncManagerConstants()V
+HSPLcom/android/server/content/SyncManagerConstants;->refresh()V
+HSPLcom/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
-PLcom/android/server/content/SyncOperation;-><init>(Lcom/android/server/content/SyncOperation;JJ)V
+HPLcom/android/server/content/SyncOperation;-><init>(Lcom/android/server/content/SyncStorageEngine$EndPoint;ILjava/lang/String;IILandroid/os/Bundle;ZI)V
HPLcom/android/server/content/SyncOperation;-><init>(Lcom/android/server/content/SyncStorageEngine$EndPoint;ILjava/lang/String;IILandroid/os/Bundle;ZZIJJI)V
-PLcom/android/server/content/SyncOperation;->dump(Landroid/content/pm/PackageManager;ZLcom/android/server/content/SyncAdapterStateFetcher;Z)Ljava/lang/String;
+PLcom/android/server/content/SyncOperation;->createOneTimeSyncOperation()Lcom/android/server/content/SyncOperation;
+HPLcom/android/server/content/SyncOperation;->dump(Landroid/content/pm/PackageManager;ZLcom/android/server/content/SyncAdapterStateFetcher;Z)Ljava/lang/String;
+HPLcom/android/server/content/SyncOperation;->extrasToString(Landroid/os/Bundle;)Ljava/lang/String;
HPLcom/android/server/content/SyncOperation;->extrasToStringBuilder(Landroid/os/Bundle;Ljava/lang/StringBuilder;)V
PLcom/android/server/content/SyncOperation;->findPriority()I
PLcom/android/server/content/SyncOperation;->ignoreBackoff()Z
PLcom/android/server/content/SyncOperation;->isAppStandbyExempted()Z
PLcom/android/server/content/SyncOperation;->isConflict(Lcom/android/server/content/SyncOperation;)Z
+PLcom/android/server/content/SyncOperation;->isDerivedFromFailedPeriodicSync()Z
PLcom/android/server/content/SyncOperation;->isExpedited()Z
+PLcom/android/server/content/SyncOperation;->isIgnoreSettings()Z
PLcom/android/server/content/SyncOperation;->isInitialization()Z
PLcom/android/server/content/SyncOperation;->isNotAllowedOnMetered()Z
+HPLcom/android/server/content/SyncOperation;->matchesPeriodicOperation(Lcom/android/server/content/SyncOperation;)Z
HPLcom/android/server/content/SyncOperation;->maybeCreateFromJobExtras(Landroid/os/PersistableBundle;)Lcom/android/server/content/SyncOperation;
-PLcom/android/server/content/SyncOperation;->reasonToString(Landroid/content/pm/PackageManager;I)Ljava/lang/String;
+HPLcom/android/server/content/SyncOperation;->reasonToString(Landroid/content/pm/PackageManager;I)Ljava/lang/String;
PLcom/android/server/content/SyncOperation;->toEventLog(I)[Ljava/lang/Object;
-PLcom/android/server/content/SyncOperation;->toJobInfoExtras()Landroid/os/PersistableBundle;
+HPLcom/android/server/content/SyncOperation;->toJobInfoExtras()Landroid/os/PersistableBundle;
HPLcom/android/server/content/SyncOperation;->toKey()Ljava/lang/String;
-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$AccountAuthorityValidator;->isAccountValid(Landroid/accounts/Account;I)Z
-PLcom/android/server/content/SyncStorageEngine$AccountAuthorityValidator;->isAuthorityValid(Ljava/lang/String;I)Z
-PLcom/android/server/content/SyncStorageEngine$AccountInfo;-><init>(Landroid/accounts/AccountAndUser;)V
-PLcom/android/server/content/SyncStorageEngine$AuthorityInfo;-><init>(Lcom/android/server/content/SyncStorageEngine$EndPoint;I)V
-PLcom/android/server/content/SyncStorageEngine$AuthorityInfo;->defaultInitialisation()V
-PLcom/android/server/content/SyncStorageEngine$AuthorityInfo;->toString()Ljava/lang/String;
-PLcom/android/server/content/SyncStorageEngine$DayStats;-><init>(I)V
-PLcom/android/server/content/SyncStorageEngine$EndPoint;-><clinit>()V
-HPLcom/android/server/content/SyncStorageEngine$EndPoint;-><init>(Landroid/accounts/Account;Ljava/lang/String;I)V
+PLcom/android/server/content/SyncOperation;->toSafeString()Ljava/lang/String;
+HPLcom/android/server/content/SyncOperation;->toString()Ljava/lang/String;
+HPLcom/android/server/content/SyncOperation;->wakeLockName()Ljava/lang/String;
+HSPLcom/android/server/content/SyncStorageEngine$AccountAuthorityValidator;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/content/SyncStorageEngine$AccountAuthorityValidator;->isAccountValid(Landroid/accounts/Account;I)Z
+HSPLcom/android/server/content/SyncStorageEngine$AccountAuthorityValidator;->isAuthorityValid(Ljava/lang/String;I)Z
+HSPLcom/android/server/content/SyncStorageEngine$AccountInfo;-><init>(Landroid/accounts/AccountAndUser;)V
+PLcom/android/server/content/SyncStorageEngine$AuthorityInfo;-><init>(Lcom/android/server/content/SyncStorageEngine$AuthorityInfo;)V
+HSPLcom/android/server/content/SyncStorageEngine$AuthorityInfo;-><init>(Lcom/android/server/content/SyncStorageEngine$EndPoint;I)V
+HSPLcom/android/server/content/SyncStorageEngine$AuthorityInfo;->defaultInitialisation()V
+HSPLcom/android/server/content/SyncStorageEngine$AuthorityInfo;->toString()Ljava/lang/String;
+HSPLcom/android/server/content/SyncStorageEngine$DayStats;-><init>(I)V
+HSPLcom/android/server/content/SyncStorageEngine$EndPoint;-><clinit>()V
+HSPLcom/android/server/content/SyncStorageEngine$EndPoint;-><init>(Landroid/accounts/Account;Ljava/lang/String;I)V
HPLcom/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
+HSPLcom/android/server/content/SyncStorageEngine$EndPoint;->toString()Ljava/lang/String;
+HSPLcom/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
HPLcom/android/server/content/SyncStorageEngine$SyncHistoryItem;-><init>()V
-PLcom/android/server/content/SyncStorageEngine;-><clinit>()V
-PLcom/android/server/content/SyncStorageEngine;-><init>(Landroid/content/Context;Ljava/io/File;Landroid/os/Looper;)V
-PLcom/android/server/content/SyncStorageEngine;->access$000()Lcom/android/server/content/SyncStorageEngine$PeriodicSyncAddedListener;
+HSPLcom/android/server/content/SyncStorageEngine;-><clinit>()V
+HSPLcom/android/server/content/SyncStorageEngine;-><init>(Landroid/content/Context;Ljava/io/File;Landroid/os/Looper;)V
+HSPLcom/android/server/content/SyncStorageEngine;->access$000()Lcom/android/server/content/SyncStorageEngine$PeriodicSyncAddedListener;
PLcom/android/server/content/SyncStorageEngine;->addActiveSync(Lcom/android/server/content/SyncManager$ActiveSyncContext;)Landroid/content/SyncInfo;
-PLcom/android/server/content/SyncStorageEngine;->addStatusChangeListener(IILandroid/content/ISyncStatusObserver;)V
+HPLcom/android/server/content/SyncStorageEngine;->addStatusChangeListener(IILandroid/content/ISyncStatusObserver;)V
PLcom/android/server/content/SyncStorageEngine;->clearAllBackoffsLocked()V
-PLcom/android/server/content/SyncStorageEngine;->createAuthorityLocked(Lcom/android/server/content/SyncStorageEngine$EndPoint;IZ)Lcom/android/server/content/SyncStorageEngine$AuthorityInfo;
+HSPLcom/android/server/content/SyncStorageEngine;->createAuthorityLocked(Lcom/android/server/content/SyncStorageEngine$EndPoint;IZ)Lcom/android/server/content/SyncStorageEngine$AuthorityInfo;
+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;
+HPLcom/android/server/content/SyncStorageEngine;->getBackoff(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Landroid/util/Pair;
+PLcom/android/server/content/SyncStorageEngine;->getCopyOfAuthorityWithSyncStatus(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Landroid/util/Pair;
PLcom/android/server/content/SyncStorageEngine;->getCurrentDayLocked()I
PLcom/android/server/content/SyncStorageEngine;->getCurrentSyncs(I)Ljava/util/List;
+PLcom/android/server/content/SyncStorageEngine;->getCurrentSyncsLocked(I)Ljava/util/List;
+PLcom/android/server/content/SyncStorageEngine;->getDayStatistics()[Lcom/android/server/content/SyncStorageEngine$DayStats;
PLcom/android/server/content/SyncStorageEngine;->getDelayUntilTime(Lcom/android/server/content/SyncStorageEngine$EndPoint;)J
-PLcom/android/server/content/SyncStorageEngine;->getIsSyncable(Landroid/accounts/Account;ILjava/lang/String;)I
-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;
+HPLcom/android/server/content/SyncStorageEngine;->getIsSyncable(Landroid/accounts/Account;ILjava/lang/String;)I
+HPLcom/android/server/content/SyncStorageEngine;->getMasterSyncAutomatically(I)Z
+HSPLcom/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;->getSingleton()Lcom/android/server/content/SyncStorageEngine;
-PLcom/android/server/content/SyncStorageEngine;->getSyncAutomatically(Landroid/accounts/Account;ILjava/lang/String;)Z
-PLcom/android/server/content/SyncStorageEngine;->init(Landroid/content/Context;Landroid/os/Looper;)V
+HSPLcom/android/server/content/SyncStorageEngine;->getSingleton()Lcom/android/server/content/SyncStorageEngine;
+HPLcom/android/server/content/SyncStorageEngine;->getSyncAutomatically(Landroid/accounts/Account;ILjava/lang/String;)Z
+PLcom/android/server/content/SyncStorageEngine;->getSyncHistory()Ljava/util/ArrayList;
+HSPLcom/android/server/content/SyncStorageEngine;->init(Landroid/content/Context;Landroid/os/Looper;)V
PLcom/android/server/content/SyncStorageEngine;->insertStartSyncEvent(Lcom/android/server/content/SyncOperation;J)J
PLcom/android/server/content/SyncStorageEngine;->isClockValid()Z
PLcom/android/server/content/SyncStorageEngine;->isSyncActive(Lcom/android/server/content/SyncStorageEngine$EndPoint;)Z
PLcom/android/server/content/SyncStorageEngine;->isSyncPending(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;->maybeDeleteLegacyPendingInfoLocked(Ljava/io/File;)V
-PLcom/android/server/content/SyncStorageEngine;->maybeMigrateSettingsForRenamedAuthorities()Z
-PLcom/android/server/content/SyncStorageEngine;->parseAuthority(Lorg/xmlpull/v1/XmlPullParser;ILcom/android/server/content/SyncStorageEngine$AccountAuthorityValidator;)Lcom/android/server/content/SyncStorageEngine$AuthorityInfo;
-HPLcom/android/server/content/SyncStorageEngine;->parseLastEventInfoLocked(Landroid/util/proto/ProtoInputStream;)Landroid/util/Pair;
-PLcom/android/server/content/SyncStorageEngine;->parseListenForTickles(Lorg/xmlpull/v1/XmlPullParser;)V
-PLcom/android/server/content/SyncStorageEngine;->readAccountInfoLocked()V
-PLcom/android/server/content/SyncStorageEngine;->readDayStatsLocked(Ljava/io/InputStream;)V
-PLcom/android/server/content/SyncStorageEngine;->readIndividualDayStatsLocked(Landroid/util/proto/ProtoInputStream;)Lcom/android/server/content/SyncStorageEngine$DayStats;
-PLcom/android/server/content/SyncStorageEngine;->readStatisticsLocked()V
-PLcom/android/server/content/SyncStorageEngine;->readStatusInfoLocked(Ljava/io/InputStream;)V
-PLcom/android/server/content/SyncStorageEngine;->readStatusLocked()V
-HPLcom/android/server/content/SyncStorageEngine;->readSyncStatusInfoLocked(Landroid/util/proto/ProtoInputStream;)Landroid/content/SyncStatusInfo;
-HPLcom/android/server/content/SyncStorageEngine;->readSyncStatusStatsLocked(Landroid/util/proto/ProtoInputStream;Landroid/content/SyncStatusInfo$Stats;)V
+HSPLcom/android/server/content/SyncStorageEngine;->maybeDeleteLegacyPendingInfoLocked(Ljava/io/File;)V
+HSPLcom/android/server/content/SyncStorageEngine;->maybeMigrateSettingsForRenamedAuthorities()Z
+HSPLcom/android/server/content/SyncStorageEngine;->parseAuthority(Lorg/xmlpull/v1/XmlPullParser;ILcom/android/server/content/SyncStorageEngine$AccountAuthorityValidator;)Lcom/android/server/content/SyncStorageEngine$AuthorityInfo;
+HSPLcom/android/server/content/SyncStorageEngine;->parseLastEventInfoLocked(Landroid/util/proto/ProtoInputStream;)Landroid/util/Pair;
+HSPLcom/android/server/content/SyncStorageEngine;->parseListenForTickles(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/server/content/SyncStorageEngine;->readAccountInfoLocked()V
+HSPLcom/android/server/content/SyncStorageEngine;->readDayStatsLocked(Ljava/io/InputStream;)V
+HSPLcom/android/server/content/SyncStorageEngine;->readIndividualDayStatsLocked(Landroid/util/proto/ProtoInputStream;)Lcom/android/server/content/SyncStorageEngine$DayStats;
+HSPLcom/android/server/content/SyncStorageEngine;->readStatisticsLocked()V
+HSPLcom/android/server/content/SyncStorageEngine;->readStatusInfoLocked(Ljava/io/InputStream;)V
+HSPLcom/android/server/content/SyncStorageEngine;->readStatusLocked()V
+HSPLcom/android/server/content/SyncStorageEngine;->readSyncStatusInfoLocked(Landroid/util/proto/ProtoInputStream;)Landroid/content/SyncStatusInfo;
+HSPLcom/android/server/content/SyncStorageEngine;->readSyncStatusStatsLocked(Landroid/util/proto/ProtoInputStream;Landroid/content/SyncStatusInfo$Stats;)V
PLcom/android/server/content/SyncStorageEngine;->removeActiveSync(Landroid/content/SyncInfo;I)V
PLcom/android/server/content/SyncStorageEngine;->removeStaleAccounts([Landroid/accounts/Account;I)V
+PLcom/android/server/content/SyncStorageEngine;->reportActiveChange(I)V
HPLcom/android/server/content/SyncStorageEngine;->reportChange(II)V
-PLcom/android/server/content/SyncStorageEngine;->requestSync(Landroid/accounts/Account;IILjava/lang/String;Landroid/os/Bundle;III)V
-PLcom/android/server/content/SyncStorageEngine;->requestSync(Lcom/android/server/content/SyncStorageEngine$AuthorityInfo;ILandroid/os/Bundle;III)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;->setClockValid()V
PLcom/android/server/content/SyncStorageEngine;->setDelayUntilTime(Lcom/android/server/content/SyncStorageEngine$EndPoint;J)V
-PLcom/android/server/content/SyncStorageEngine;->setIsSyncable(Landroid/accounts/Account;ILjava/lang/String;III)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
+HSPLcom/android/server/content/SyncStorageEngine;->setOnAuthorityRemovedListener(Lcom/android/server/content/SyncStorageEngine$OnAuthorityRemovedListener;)V
+HSPLcom/android/server/content/SyncStorageEngine;->setOnSyncRequestListener(Lcom/android/server/content/SyncStorageEngine$OnSyncRequestListener;)V
+HSPLcom/android/server/content/SyncStorageEngine;->setPeriodicSyncAddedListener(Lcom/android/server/content/SyncStorageEngine$PeriodicSyncAddedListener;)V
PLcom/android/server/content/SyncStorageEngine;->setSyncAutomatically(Landroid/accounts/Account;ILjava/lang/String;ZIII)V
PLcom/android/server/content/SyncStorageEngine;->setSyncableStateForEndPoint(Lcom/android/server/content/SyncStorageEngine$EndPoint;III)V
-PLcom/android/server/content/SyncStorageEngine;->shouldGrantSyncAdaptersAccountAccess()Z
+HSPLcom/android/server/content/SyncStorageEngine;->shouldGrantSyncAdaptersAccountAccess()Z
HPLcom/android/server/content/SyncStorageEngine;->stopSyncEvent(JJLjava/lang/String;JJI)V
-PLcom/android/server/content/SyncStorageEngine;->upgradeStatisticsIfNeededLocked()V
-PLcom/android/server/content/SyncStorageEngine;->upgradeStatusIfNeededLocked()V
-PLcom/android/server/content/SyncStorageEngine;->writeAccountInfoLocked()V
-PLcom/android/server/content/SyncStorageEngine;->writeDayStatsLocked(Ljava/io/OutputStream;)V
+HSPLcom/android/server/content/SyncStorageEngine;->upgradeStatisticsIfNeededLocked()V
+HSPLcom/android/server/content/SyncStorageEngine;->upgradeStatusIfNeededLocked()V
+HPLcom/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
HPLcom/android/server/content/SyncStorageEngine;->writeStatusStatsLocked(Landroid/util/proto/ProtoOutputStream;Landroid/content/SyncStatusInfo$Stats;)V
-PLcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$4nadnpI0ImgQseJYN0WTE4IJ4s4;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;)V
+HSPLcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$4nadnpI0ImgQseJYN0WTE4IJ4s4;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;)V
+PLcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$4nadnpI0ImgQseJYN0WTE4IJ4s4;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
PLcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$ContentCaptureManagerServiceStub$6vI15KqJwo_ruaAABrGMvkwVRt4;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;)V
PLcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$ContentCaptureManagerServiceStub$6vI15KqJwo_ruaAABrGMvkwVRt4;->run()V
-PLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$yRaGuMutdbjMq9h32e3TC2_1a_A;-><init>(Landroid/service/contentcapture/ActivityEvent;)V
+PLcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$ContentCaptureManagerServiceStub$Qe-DhsP4OR9GyoofNgVlcOk-1so;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;Ljava/lang/String;)V
+PLcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$ContentCaptureManagerServiceStub$Qe-DhsP4OR9GyoofNgVlcOk-1so;->run()V
+PLcom/android/server/contentcapture/-$$Lambda$ContentCaptureServerSession$PKv4-aNj3xMYOeCpzUQZDD2iG0o;-><init>(Lcom/android/server/contentcapture/ContentCaptureServerSession;)V
+PLcom/android/server/contentcapture/-$$Lambda$ContentCaptureServerSession$PKv4-aNj3xMYOeCpzUQZDD2iG0o;->binderDied()V
+PLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$PMsA3CmwChlM0Qy__Uy6Yr5CFzk;-><init>(Landroid/view/contentcapture/ContentCaptureContext;IILcom/android/internal/os/IResultReceiver;I)V
+PLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$PMsA3CmwChlM0Qy__Uy6Yr5CFzk;->run(Landroid/os/IInterface;)V
+PLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$QbbzaxOFnxJI34vQptxzLE9Vvog;-><init>(I)V
+PLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$QbbzaxOFnxJI34vQptxzLE9Vvog;->run(Landroid/os/IInterface;)V
+HPLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$yRaGuMutdbjMq9h32e3TC2_1a_A;-><init>(Landroid/service/contentcapture/ActivityEvent;)V
PLcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$yRaGuMutdbjMq9h32e3TC2_1a_A;->run(Landroid/os/IInterface;)V
-PLcom/android/server/contentcapture/ContentCaptureManagerInternal;-><init>()V
-PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;)V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerInternal;-><init>()V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;)V
+PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->finishSession(I)V
+PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->getContentCaptureConditions(Ljava/lang/String;Lcom/android/internal/os/IResultReceiver;)V
+PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->getServiceComponentName(Lcom/android/internal/os/IResultReceiver;)V
PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->getServiceSettingsActivity(Lcom/android/internal/os/IResultReceiver;)V
+PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->lambda$getContentCaptureConditions$2$ContentCaptureManagerService$ContentCaptureManagerServiceStub(Ljava/lang/String;)V
PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->lambda$getServiceSettingsActivity$1$ContentCaptureManagerService$ContentCaptureManagerServiceStub()V
-PLcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;)V
-PLcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;->access$100(Lcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;ILjava/lang/String;Z)V
-PLcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;->getOptions(ILjava/lang/String;)Landroid/content/ContentCaptureOptions;
-PLcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;->setServiceInfo(ILjava/lang/String;Z)V
-PLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;)V
-PLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;Lcom/android/server/contentcapture/ContentCaptureManagerService$1;)V
-PLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->getOptionsForPackage(ILjava/lang/String;)Landroid/content/ContentCaptureOptions;
+PLcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;->startSession(Landroid/os/IBinder;Landroid/content/ComponentName;IILcom/android/internal/os/IResultReceiver;)V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;)V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;->access$100(Lcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;ILjava/lang/String;Z)V
+PLcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;->getOptions(ILjava/lang/String;)Landroid/content/ContentCaptureOptions;
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService$GlobalContentCaptureOptions;->setServiceInfo(ILjava/lang/String;Z)V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;)V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;Lcom/android/server/contentcapture/ContentCaptureManagerService$1;)V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->getOptionsForPackage(ILjava/lang/String;)Landroid/content/ContentCaptureOptions;
+PLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->isContentCaptureServiceForUser(II)Z
PLcom/android/server/contentcapture/ContentCaptureManagerService$LocalService;->notifyActivityEvent(ILandroid/content/ComponentName;I)V
-PLcom/android/server/contentcapture/ContentCaptureManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$1000(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$1600(Lcom/android/server/contentcapture/ContentCaptureManagerService;Lcom/android/internal/os/IResultReceiver;Ljava/lang/Runnable;)Z
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$200(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Landroid/app/ActivityManagerInternal;
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$2300(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$2400(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$2900(Lcom/android/server/contentcapture/ContentCaptureManagerService;Ljava/lang/String;)V
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$300(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3500(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$3600(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$400(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$500(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Z
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$700(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$800(Lcom/android/server/contentcapture/ContentCaptureManagerService;I)Lcom/android/server/infra/AbstractPerUserSystemService;
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->access$900(Lcom/android/server/contentcapture/ContentCaptureManagerService;)Ljava/lang/Object;
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
PLcom/android/server/contentcapture/ContentCaptureManagerService;->enforceCallingPermissionForManagement()V
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->getAmInternal()Landroid/app/ActivityManagerInternal;
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->isDefaultServiceLocked(I)Z
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->isDisabledBySettingsLocked(I)Z
PLcom/android/server/contentcapture/ContentCaptureManagerService;->isDisabledLocked(I)Z
-PLcom/android/server/contentcapture/ContentCaptureManagerService;->isEnabledBySettings(I)Z
-PLcom/android/server/contentcapture/ContentCaptureManagerService;->isSupported(Landroid/content/pm/UserInfo;)Z
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->isEnabledBySettings(I)Z
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->isSupported(Landroid/content/pm/UserInfo;)Z
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->lambda$new$0$ContentCaptureManagerService(Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->newServiceLocked(IZ)Lcom/android/server/contentcapture/ContentCapturePerUserService;
PLcom/android/server/contentcapture/ContentCaptureManagerService;->newServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService;
-PLcom/android/server/contentcapture/ContentCaptureManagerService;->onStart()V
-PLcom/android/server/contentcapture/ContentCaptureManagerService;->registerForExtraSettingsChanges(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
-PLcom/android/server/contentcapture/ContentCaptureManagerService;->setDeviceConfigProperties()V
-PLcom/android/server/contentcapture/ContentCaptureManagerService;->setDisabledByDeviceConfig(Ljava/lang/String;)V
-PLcom/android/server/contentcapture/ContentCaptureManagerService;->setFineTuneParamsFromDeviceConfig()V
-PLcom/android/server/contentcapture/ContentCaptureManagerService;->setLoggingLevelFromDeviceConfig()V
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->onDeviceConfigChange(Landroid/provider/DeviceConfig$Properties;)V
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->onServicePackageUpdatedLocked(I)V
+PLcom/android/server/contentcapture/ContentCaptureManagerService;->onServicePackageUpdatingLocked(I)V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->onStart()V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->registerForExtraSettingsChanges(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->setDeviceConfigProperties()V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->setDisabledByDeviceConfig(Ljava/lang/String;)V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->setFineTuneParamsFromDeviceConfig()V
+HSPLcom/android/server/contentcapture/ContentCaptureManagerService;->setLoggingLevelFromDeviceConfig()V
PLcom/android/server/contentcapture/ContentCaptureManagerService;->throwsSecurityException(Lcom/android/internal/os/IResultReceiver;Ljava/lang/Runnable;)Z
PLcom/android/server/contentcapture/ContentCaptureMetricsLogger;->writeServiceEvent(ILandroid/content/ComponentName;)V
PLcom/android/server/contentcapture/ContentCaptureMetricsLogger;->writeServiceEvent(ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/contentcapture/ContentCaptureMetricsLogger;->writeSessionEvent(IIILandroid/content/ComponentName;Landroid/content/ComponentName;Z)V
+HPLcom/android/server/contentcapture/ContentCaptureMetricsLogger;->writeSessionFlush(ILandroid/content/ComponentName;Landroid/content/ComponentName;Landroid/service/contentcapture/FlushMetrics;Landroid/content/ContentCaptureOptions;I)V
PLcom/android/server/contentcapture/ContentCaptureMetricsLogger;->writeSetWhitelistEvent(Landroid/content/ComponentName;Ljava/util/List;Ljava/util/List;)V
PLcom/android/server/contentcapture/ContentCapturePerUserService$ContentCaptureServiceRemoteCallback;-><init>(Lcom/android/server/contentcapture/ContentCapturePerUserService;)V
PLcom/android/server/contentcapture/ContentCapturePerUserService$ContentCaptureServiceRemoteCallback;-><init>(Lcom/android/server/contentcapture/ContentCapturePerUserService;Lcom/android/server/contentcapture/ContentCapturePerUserService$1;)V
PLcom/android/server/contentcapture/ContentCapturePerUserService$ContentCaptureServiceRemoteCallback;->setContentCaptureWhitelist(Ljava/util/List;Ljava/util/List;)V
+HPLcom/android/server/contentcapture/ContentCapturePerUserService$ContentCaptureServiceRemoteCallback;->writeSessionFlush(ILandroid/content/ComponentName;Landroid/service/contentcapture/FlushMetrics;Landroid/content/ContentCaptureOptions;I)V
PLcom/android/server/contentcapture/ContentCapturePerUserService;-><clinit>()V
PLcom/android/server/contentcapture/ContentCapturePerUserService;-><init>(Lcom/android/server/contentcapture/ContentCaptureManagerService;Ljava/lang/Object;ZI)V
PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$100(Lcom/android/server/contentcapture/ContentCapturePerUserService;)Lcom/android/server/infra/AbstractMasterSystemService;
@@ -6859,40 +8254,77 @@ PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$500(Lc
PLcom/android/server/contentcapture/ContentCapturePerUserService;->access$600(Lcom/android/server/contentcapture/ContentCapturePerUserService;)Landroid/util/SparseArray;
PLcom/android/server/contentcapture/ContentCapturePerUserService;->destroyLocked()V
PLcom/android/server/contentcapture/ContentCapturePerUserService;->destroySessionsLocked()V
+PLcom/android/server/contentcapture/ContentCapturePerUserService;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/contentcapture/ContentCapturePerUserService;->finishSessionLocked(I)V
+PLcom/android/server/contentcapture/ContentCapturePerUserService;->getContentCaptureConditionsLocked(Ljava/lang/String;)Landroid/util/ArraySet;
PLcom/android/server/contentcapture/ContentCapturePerUserService;->getServiceSettingsActivityLocked()Landroid/content/ComponentName;
+PLcom/android/server/contentcapture/ContentCapturePerUserService;->isContentCaptureServiceForUserLocked(I)Z
PLcom/android/server/contentcapture/ContentCapturePerUserService;->newServiceInfoLocked(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
PLcom/android/server/contentcapture/ContentCapturePerUserService;->onActivityEventLocked(Landroid/content/ComponentName;I)V
PLcom/android/server/contentcapture/ContentCapturePerUserService;->onConnected()V
+PLcom/android/server/contentcapture/ContentCapturePerUserService;->onPackageUpdatedLocked()V
+PLcom/android/server/contentcapture/ContentCapturePerUserService;->onPackageUpdatingLocked()V
+PLcom/android/server/contentcapture/ContentCapturePerUserService;->onServiceDied(Lcom/android/server/contentcapture/RemoteContentCaptureService;)V
+PLcom/android/server/contentcapture/ContentCapturePerUserService;->onServiceDied(Ljava/lang/Object;)V
+PLcom/android/server/contentcapture/ContentCapturePerUserService;->removeSessionLocked(I)V
PLcom/android/server/contentcapture/ContentCapturePerUserService;->resetContentCaptureWhitelistLocked()V
+PLcom/android/server/contentcapture/ContentCapturePerUserService;->resurrectSessionsLocked()V
+PLcom/android/server/contentcapture/ContentCapturePerUserService;->startSessionLocked(Landroid/os/IBinder;Landroid/content/pm/ActivityPresentationInfo;IIILcom/android/internal/os/IResultReceiver;)V
PLcom/android/server/contentcapture/ContentCapturePerUserService;->updateLocked(Z)Z
PLcom/android/server/contentcapture/ContentCapturePerUserService;->updateRemoteServiceLocked(Z)V
+PLcom/android/server/contentcapture/ContentCaptureServerSession;-><clinit>()V
+PLcom/android/server/contentcapture/ContentCaptureServerSession;-><init>(Ljava/lang/Object;Landroid/os/IBinder;Lcom/android/server/contentcapture/ContentCapturePerUserService;Landroid/content/ComponentName;Lcom/android/internal/os/IResultReceiver;IIIII)V
+PLcom/android/server/contentcapture/ContentCaptureServerSession;->destroyLocked(Z)V
+PLcom/android/server/contentcapture/ContentCaptureServerSession;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/contentcapture/ContentCaptureServerSession;->lambda$new$0$ContentCaptureServerSession()V
+PLcom/android/server/contentcapture/ContentCaptureServerSession;->notifySessionStartedLocked(Lcom/android/internal/os/IResultReceiver;)V
+PLcom/android/server/contentcapture/ContentCaptureServerSession;->onClientDeath()V
+PLcom/android/server/contentcapture/ContentCaptureServerSession;->removeSelfLocked(Z)V
PLcom/android/server/contentcapture/RemoteContentCaptureService;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/content/ComponentName;Landroid/service/contentcapture/IContentCaptureServiceCallback;ILcom/android/server/contentcapture/ContentCapturePerUserService;ZZI)V
PLcom/android/server/contentcapture/RemoteContentCaptureService;->ensureBoundLocked()V
PLcom/android/server/contentcapture/RemoteContentCaptureService;->getServiceInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
PLcom/android/server/contentcapture/RemoteContentCaptureService;->getServiceInterface(Landroid/os/IBinder;)Landroid/service/contentcapture/IContentCaptureService;
PLcom/android/server/contentcapture/RemoteContentCaptureService;->getTimeoutIdleBindMillis()J
PLcom/android/server/contentcapture/RemoteContentCaptureService;->handleOnConnectedStateChanged(Z)V
-PLcom/android/server/contentcapture/RemoteContentCaptureService;->lambda$onActivityLifecycleEvent$4(Landroid/service/contentcapture/ActivityEvent;Landroid/service/contentcapture/IContentCaptureService;)V
-PLcom/android/server/contentcapture/RemoteContentCaptureService;->onActivityLifecycleEvent(Landroid/service/contentcapture/ActivityEvent;)V
-PLcom/android/server/contentsuggestions/ContentSuggestionsManagerService$ContentSuggestionsManagerStub;-><init>(Lcom/android/server/contentsuggestions/ContentSuggestionsManagerService;)V
-PLcom/android/server/contentsuggestions/ContentSuggestionsManagerService$ContentSuggestionsManagerStub;-><init>(Lcom/android/server/contentsuggestions/ContentSuggestionsManagerService;Lcom/android/server/contentsuggestions/ContentSuggestionsManagerService$1;)V
-PLcom/android/server/contentsuggestions/ContentSuggestionsManagerService;-><clinit>()V
-PLcom/android/server/contentsuggestions/ContentSuggestionsManagerService;-><init>(Landroid/content/Context;)V
+HPLcom/android/server/contentcapture/RemoteContentCaptureService;->lambda$onActivityLifecycleEvent$4(Landroid/service/contentcapture/ActivityEvent;Landroid/service/contentcapture/IContentCaptureService;)V
+PLcom/android/server/contentcapture/RemoteContentCaptureService;->lambda$onSessionFinished$1(ILandroid/service/contentcapture/IContentCaptureService;)V
+PLcom/android/server/contentcapture/RemoteContentCaptureService;->lambda$onSessionStarted$0(Landroid/view/contentcapture/ContentCaptureContext;IILcom/android/internal/os/IResultReceiver;ILandroid/service/contentcapture/IContentCaptureService;)V
+HPLcom/android/server/contentcapture/RemoteContentCaptureService;->onActivityLifecycleEvent(Landroid/service/contentcapture/ActivityEvent;)V
+PLcom/android/server/contentcapture/RemoteContentCaptureService;->onSessionFinished(I)V
+PLcom/android/server/contentcapture/RemoteContentCaptureService;->onSessionStarted(Landroid/view/contentcapture/ContentCaptureContext;IILcom/android/internal/os/IResultReceiver;I)V
+HSPLcom/android/server/contentsuggestions/ContentSuggestionsManagerService$ContentSuggestionsManagerStub;-><init>(Lcom/android/server/contentsuggestions/ContentSuggestionsManagerService;)V
+HSPLcom/android/server/contentsuggestions/ContentSuggestionsManagerService$ContentSuggestionsManagerStub;-><init>(Lcom/android/server/contentsuggestions/ContentSuggestionsManagerService;Lcom/android/server/contentsuggestions/ContentSuggestionsManagerService$1;)V
+HSPLcom/android/server/contentsuggestions/ContentSuggestionsManagerService;-><clinit>()V
+HSPLcom/android/server/contentsuggestions/ContentSuggestionsManagerService;-><init>(Landroid/content/Context;)V
PLcom/android/server/contentsuggestions/ContentSuggestionsManagerService;->newServiceLocked(IZ)Lcom/android/server/contentsuggestions/ContentSuggestionsPerUserService;
PLcom/android/server/contentsuggestions/ContentSuggestionsManagerService;->newServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService;
-PLcom/android/server/contentsuggestions/ContentSuggestionsManagerService;->onStart()V
+HSPLcom/android/server/contentsuggestions/ContentSuggestionsManagerService;->onStart()V
PLcom/android/server/contentsuggestions/ContentSuggestionsPerUserService;-><clinit>()V
PLcom/android/server/contentsuggestions/ContentSuggestionsPerUserService;-><init>(Lcom/android/server/contentsuggestions/ContentSuggestionsManagerService;Ljava/lang/Object;I)V
PLcom/android/server/contentsuggestions/ContentSuggestionsPerUserService;->newServiceInfoLocked(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
PLcom/android/server/contentsuggestions/ContentSuggestionsPerUserService;->updateLocked(Z)Z
PLcom/android/server/contentsuggestions/ContentSuggestionsPerUserService;->updateRemoteServiceLocked()V
-PLcom/android/server/coverage/CoverageService;-><clinit>()V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$_Nw-YGl5ncBg-LJs8W81WNW6xoU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$_Nw-YGl5ncBg-LJs8W81WNW6xoU;->run()V
-PLcom/android/server/devicepolicy/BaseIDevicePolicyManager;-><init>()V
-PLcom/android/server/devicepolicy/CertificateMonitor$1;-><init>(Lcom/android/server/devicepolicy/CertificateMonitor;)V
+HSPLcom/android/server/coverage/CoverageService;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8nvbMteplUbtaSMuw4DWJ-MQa4g;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$8nvbMteplUbtaSMuw4DWJ-MQa4g;-><init>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$BYd2ftVebU2Ktj6tr-DFfrGE5TE;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$BYd2ftVebU2Ktj6tr-DFfrGE5TE;-><init>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CClEW-CtZQRadOocoqGh0wiKhG4;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$CClEW-CtZQRadOocoqGh0wiKhG4;-><init>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$GdvC4eub6BtkkX5BnHuPR5Ob0ag;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$GdvC4eub6BtkkX5BnHuPR5Ob0ag;-><init>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NzTaj70nEECGXhr52RbDyXK_fPU;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$NzTaj70nEECGXhr52RbDyXK_fPU;-><init>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O6O5T5aoG6MmH8aAAGYNwYhbtw8;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$O6O5T5aoG6MmH8aAAGYNwYhbtw8;-><init>()V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$_Nw-YGl5ncBg-LJs8W81WNW6xoU;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+HSPLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$_Nw-YGl5ncBg-LJs8W81WNW6xoU;->run()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tN28Me5AH2pjgYHvPnMAsCjK_NU;-><clinit>()V
+PLcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$tN28Me5AH2pjgYHvPnMAsCjK_NU;-><init>()V
+HSPLcom/android/server/devicepolicy/BaseIDevicePolicyManager;-><init>()V
+HSPLcom/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;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;Landroid/os/Handler;)V
+HSPLcom/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;->access$000(Lcom/android/server/devicepolicy/CertificateMonitor;Landroid/os/UserHandle;)V
PLcom/android/server/devicepolicy/CertificateMonitor;->getInstalledCaCertificates(Landroid/os/UserHandle;)Ljava/util/List;
PLcom/android/server/devicepolicy/CertificateMonitor;->updateInstalledCertificates(Landroid/os/UserHandle;)V
@@ -6900,280 +8332,307 @@ PLcom/android/server/devicepolicy/DeviceAdminServiceController$DevicePolicyServi
PLcom/android/server/devicepolicy/DeviceAdminServiceController$DevicePolicyServiceConnection;->asInterface(Landroid/os/IBinder;)Landroid/app/admin/IDeviceAdminService;
PLcom/android/server/devicepolicy/DeviceAdminServiceController$DevicePolicyServiceConnection;->asInterface(Landroid/os/IBinder;)Ljava/lang/Object;
PLcom/android/server/devicepolicy/DeviceAdminServiceController$DevicePolicyServiceConnection;->getBindFlags()I
-PLcom/android/server/devicepolicy/DeviceAdminServiceController;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyConstants;)V
+HSPLcom/android/server/devicepolicy/DeviceAdminServiceController;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Lcom/android/server/devicepolicy/DevicePolicyConstants;)V
+PLcom/android/server/devicepolicy/DeviceAdminServiceController;->access$000(Lcom/android/server/devicepolicy/DeviceAdminServiceController;)Landroid/os/Handler;
+PLcom/android/server/devicepolicy/DeviceAdminServiceController;->access$100(Lcom/android/server/devicepolicy/DeviceAdminServiceController;)Lcom/android/server/devicepolicy/DevicePolicyConstants;
PLcom/android/server/devicepolicy/DeviceAdminServiceController;->debug(Ljava/lang/String;[Ljava/lang/Object;)V
PLcom/android/server/devicepolicy/DeviceAdminServiceController;->disconnectServiceOnUserLocked(ILjava/lang/String;)V
+PLcom/android/server/devicepolicy/DeviceAdminServiceController;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
PLcom/android/server/devicepolicy/DeviceAdminServiceController;->findService(Ljava/lang/String;I)Landroid/content/pm/ServiceInfo;
PLcom/android/server/devicepolicy/DeviceAdminServiceController;->startServiceForOwner(Ljava/lang/String;ILjava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;-><init>()V
+HSPLcom/android/server/devicepolicy/DevicePolicyCacheImpl;-><init>()V
+PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->getPasswordQuality(I)I
PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->getScreenCaptureDisabled(I)Z
-PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->setPasswordQuality(II)V
-PLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->setScreenCaptureDisabled(IZ)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;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$1;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$2;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$3;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->setPasswordQuality(II)V
+HSPLcom/android/server/devicepolicy/DevicePolicyCacheImpl;->setScreenCaptureDisabled(IZ)V
+HSPLcom/android/server/devicepolicy/DevicePolicyConstants;-><init>(Ljava/lang/String;)V
+PLcom/android/server/devicepolicy/DevicePolicyConstants;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyConstants;->loadFromString(Ljava/lang/String;)Lcom/android/server/devicepolicy/DevicePolicyConstants;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$1;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$2;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$3;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService$4$1;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService$4;I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService$4$1;->run()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$4;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService$4;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService$4;->sendDeviceOwnerUserCommand(Ljava/lang/String;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$8;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService$8;->run()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;-><clinit>()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;-><init>(Landroid/app/admin/DeviceAdminInfo;Z)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->getParentActiveAdmin()Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->getUserHandle()Landroid/os/UserHandle;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->hasParentActiveAdmin()Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->readAttributeValues(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/util/Collection;)V
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->readFromXml(Lorg/xmlpull/v1/XmlPullParser;Z)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->readPackageList(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/util/List;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;-><clinit>()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;-><init>(Landroid/app/admin/DeviceAdminInfo;Z)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->getParentActiveAdmin()Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->getUid()I
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->getUserHandle()Landroid/os/UserHandle;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->hasParentActiveAdmin()Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->readAttributeValues(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/util/Collection;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->readFromXml(Lorg/xmlpull/v1/XmlPullParser;Z)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->readPackageList(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/util/List;
HPLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->writeAttributeValuesToXml(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V
-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$DevicePolicyData;-><init>(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;-><init>(Landroid/content/Context;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderClearCallingIdentity()J
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyConstantsObserver;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyConstantsObserver;->register()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;-><init>(I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderClearCallingIdentity()J
PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderGetCallingPid()I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderGetCallingUid()I
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderGetCallingUid()I
PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderGetCallingUserHandle()Landroid/os/UserHandle;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderIsCallingUidMyUid()Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderRestoreCallingIdentity(J)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->environmentGetUserSystemDirectory(I)Ljava/io/File;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getActivityTaskManagerInternal()Lcom/android/server/wm/ActivityTaskManagerInternal;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderIsCallingUidMyUid()Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->binderRestoreCallingIdentity(J)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->environmentGetUserSystemDirectory(I)Ljava/io/File;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getActivityTaskManagerInternal()Lcom/android/server/wm/ActivityTaskManagerInternal;
PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getConnectivityManager()Landroid/net/ConnectivityManager;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getDevicePolicyFilePathForSystemUser()Ljava/lang/String;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIActivityManager()Landroid/app/IActivityManager;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIActivityTaskManager()Landroid/app/IActivityTaskManager;
-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;->getIPlatformCompat()Lcom/android/internal/compat/IPlatformCompat;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getDevicePolicyFilePathForSystemUser()Ljava/lang/String;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIActivityManager()Landroid/app/IActivityManager;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIActivityTaskManager()Landroid/app/IActivityTaskManager;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIPackageManager()Landroid/content/pm/IPackageManager;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIPermissionManager()Landroid/permission/IPermissionManager;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIPlatformCompat()Lcom/android/internal/compat/IPlatformCompat;
PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getIWindowManager()Landroid/view/IWindowManager;
-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;->getPackageManager()Landroid/content/pm/PackageManager;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getPowerManagerInternal()Landroid/os/PowerManagerInternal;
-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()Landroid/os/UserManagerInternal;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->hasFeature()Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->newLockPatternUtils()Lcom/android/internal/widget/LockPatternUtils;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->newOwners()Lcom/android/server/devicepolicy/Owners;
-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;->settingsGlobalPutInt(Ljava/lang/String;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsSecureGetIntForUser(Ljava/lang/String;II)I
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getLockSettingsInternal()Lcom/android/internal/widget/LockSettingsInternal;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getMyLooper()Landroid/os/Looper;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getNetworkPolicyManagerInternal()Lcom/android/server/net/NetworkPolicyManagerInternal;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getNotificationManager()Landroid/app/NotificationManager;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getPackageManager()Landroid/content/pm/PackageManager;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getPackageManagerInternal()Landroid/content/pm/PackageManagerInternal;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getPowerManagerInternal()Landroid/os/PowerManagerInternal;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getTelephonyManager()Landroid/telephony/TelephonyManager;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getUsageStatsManagerInternal()Landroid/app/usage/UsageStatsManagerInternal;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getUserManager()Landroid/os/UserManager;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->getUserManagerInternal()Landroid/os/UserManagerInternal;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->hasFeature()Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->keyChainBindAsUser(Landroid/os/UserHandle;)Landroid/security/KeyChain$KeyChainConnection;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->newLockPatternUtils()Lcom/android/internal/widget/LockPatternUtils;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->newOwners()Lcom/android/server/devicepolicy/Owners;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->newTransferOwnershipMetadataManager()Lcom/android/server/devicepolicy/TransferOwnershipMetadataManager;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->postOnSystemServerInitThreadPool(Ljava/lang/Runnable;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->securityLogIsLoggingEnabled()Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsGlobalGetInt(Ljava/lang/String;I)I
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsGlobalGetString(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsGlobalPutInt(Ljava/lang/String;I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->settingsSecureGetIntForUser(Ljava/lang/String;II)I
PLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->storageManagerIsFileBasedEncryptionEnabled()Z
-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
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->systemPropertiesGet(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->systemPropertiesSet(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;->userHandleGetCallingUserId()I
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;->onStart()V
PLcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;->onStartUser(I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle;->onUnlockUser(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->addOnCrossProfileWidgetProvidersChangeListener(Landroid/app/admin/DevicePolicyManagerInternal$OnCrossProfileWidgetProvidersChangeListener;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->addOnCrossProfileWidgetProvidersChangeListener(Landroid/app/admin/DevicePolicyManagerInternal$OnCrossProfileWidgetProvidersChangeListener;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->canSilentlyInstallPackage(Ljava/lang/String;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->canUserHaveUntrustedCredentialReset(I)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->getCrossProfileWidgetProviders(I)Ljava/util/List;
PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->getDevicePolicyCache()Landroid/app/admin/DevicePolicyCache;
PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->getDeviceStateCache()Landroid/app/admin/DeviceStateCache;
HPLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->isActiveAdminWithPolicy(II)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService$RestrictionsListener;-><init>(Landroid/content/Context;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;->notifyCrossProfileProvidersChanged(ILjava/util/List;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$RestrictionsListener;-><init>(Landroid/content/Context;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService$RestrictionsListener;->onUserRestrictionsChanged(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;-><clinit>()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$SetupContentObserver;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService$SetupContentObserver;->register()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;-><clinit>()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService$Injector;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->access$1400(Lcom/android/server/devicepolicy/DevicePolicyManagerService;I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->access$1500(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Ljava/lang/String;I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->access$2800(Lcom/android/server/devicepolicy/DevicePolicyManagerService;Landroid/content/ComponentName;II)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->access$3400(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)Lcom/android/server/devicepolicy/DevicePolicyCacheImpl;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->access$3500(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)Lcom/android/server/devicepolicy/DeviceStateCacheImpl;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->addCrossProfileIntentFilter(Landroid/content/ComponentName;Landroid/content/IntentFilter;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->addOrRemoveDisableCameraRestriction(Landroid/os/Bundle;I)V
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->canProfileOwnerAccessDeviceIds(I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->access$3300(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)Lcom/android/server/devicepolicy/DevicePolicyCacheImpl;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->access$3400(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)Lcom/android/server/devicepolicy/DeviceStateCacheImpl;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->addCrossProfileIntentFilter(Landroid/content/ComponentName;Landroid/content/IntentFilter;I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->addCrossProfileWidgetProvider(Landroid/content/ComponentName;Ljava/lang/String;)Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->addOrRemoveDisableCameraRestriction(Landroid/os/Bundle;I)Landroid/os/Bundle;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->canProfileOwnerAccessDeviceIds(I)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->canUserBindToDeviceOwnerLocked(I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->canUserHaveUntrustedCredentialReset(I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->checkDeviceIdentifierAccess(Ljava/lang/String;II)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->checkDeviceIdentifierAccess(Ljava/lang/String;II)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->checkPackagesInPermittedListOrSystem(Ljava/util/List;Ljava/util/List;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->cleanUpOldUsers()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->clearCrossProfileIntentFilters(Landroid/content/ComponentName;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->cleanUpOldUsers()V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->clearCrossProfileIntentFilters(Landroid/content/ComponentName;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->doesPackageMatchUid(Ljava/lang/String;I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->dumpDevicePolicyData(Lcom/android/internal/util/IndentingPrintWriter;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceCanManageCaCerts(Landroid/content/ComponentName;Ljava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceCanManageScope(Landroid/content/ComponentName;Ljava/lang/String;ILjava/lang/String;)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceCanManageScope(Landroid/content/ComponentName;Ljava/lang/String;ILjava/lang/String;)V
HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceCanManageScopeOrCheckPermission(Landroid/content/ComponentName;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceCrossUsersPermission(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceDeviceOwnerOrManageUsers()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceFullCrossUsersPermission(I)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceDeviceOwnerOrManageUsers()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceFullCrossUsersPermission(I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceManageUsers()V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceManagedProfile(ILjava/lang/String;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceProfileOrDeviceOwner(Landroid/content/ComponentName;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceSystemUserOrPermission(Ljava/lang/String;)V
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceSystemUserOrPermissionIfCrossUser(ILjava/lang/String;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceSystemUserOrPermission(Ljava/lang/String;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->enforceSystemUserOrPermissionIfCrossUser(ILjava/lang/String;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureCallerIdentityMatchesIfNotSystem(Ljava/lang/String;II)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureCallerPackage(Ljava/lang/String;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureDeviceOwnerUserStarted()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureLocked()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureMinimumQuality(ILcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;ILjava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureUnknownSourcesRestrictionForProfileOwnerLocked(ILcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;Z)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->findAdmin(Landroid/content/ComponentName;IZ)Landroid/app/admin/DeviceAdminInfo;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->findOwnerComponentIfNecessaryLocked()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureLocked()V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureMinimumQuality(ILcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;ILjava/lang/String;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->ensureUnknownSourcesRestrictionForProfileOwnerLocked(ILcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;Z)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->findAdmin(Landroid/content/ComponentName;IZ)Landroid/app/admin/DeviceAdminInfo;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->findOwnerComponentIfNecessaryLocked()V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->generateKeyPair(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/security/keystore/ParcelableKeyGenParameterSpec;ILandroid/security/keymaster/KeymasterCertificateChain;)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAcceptedCaCertificates(Landroid/os/UserHandle;)Ljava/util/Set;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAccountTypesWithManagementDisabledAsUser(I)[Ljava/lang/String;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminForCallerLocked(Landroid/content/ComponentName;I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminForCallerLocked(Landroid/content/ComponentName;IZ)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminForUidLocked(Landroid/content/ComponentName;I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminForCallerLocked(Landroid/content/ComponentName;IZ)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminForUidLocked(Landroid/content/ComponentName;I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminOrCheckPermissionForCallerLocked(Landroid/content/ComponentName;ILjava/lang/String;)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminPackagesLocked(I)Ljava/util/Set;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminUncheckedLocked(Landroid/content/ComponentName;I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminPackagesLocked(I)Ljava/util/Set;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminUncheckedLocked(Landroid/content/ComponentName;I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminUncheckedLocked(Landroid/content/ComponentName;IZ)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminWithPolicyForUidLocked(Landroid/content/ComponentName;II)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdmins(I)Ljava/util/List;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminsForLockscreenPoliciesLocked(IZ)Ljava/util/List;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminsForAffectedUser(IZ)Ljava/util/List;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getActiveAdminsForLockscreenPoliciesLocked(IZ)Ljava/util/List;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAdminWithMinimumFailedPasswordsForWipeLocked(IZ)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAlwaysOnVpnPackage(Landroid/content/ComponentName;)Ljava/lang/String;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getAlwaysOnVpnPackage(Landroid/content/ComponentName;)Ljava/lang/String;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getBindDeviceAdminTargetUsers(Landroid/content/ComponentName;)Ljava/util/List;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getBluetoothContactSharingDisabledForUser(I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCameraDisabled(Landroid/content/ComponentName;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCameraDisabled(Landroid/content/ComponentName;IZ)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getBluetoothContactSharingDisabledForUser(I)Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCameraDisabled(Landroid/content/ComponentName;IZ)Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCameraDisabled(Landroid/content/ComponentName;IZZ)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCredentialOwner(IZ)I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCrossProfileCallerIdDisabledForUser(I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCrossProfileContactsSearchDisabledForUser(I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCrossProfileWidgetProviders(Landroid/content/ComponentName;)Ljava/util/List;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCrossProfileCallerIdDisabledForUser(I)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCrossProfileContactsSearchDisabledForUser(I)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCrossProfileWidgetProviders(Landroid/content/ComponentName;)Ljava/util/List;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getCurrentFailedPasswordAttempts(IZ)I
HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDelegatedScopes(Landroid/content/ComponentName;Ljava/lang/String;)Ljava/util/List;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerAdminLocked()Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerAdminLocked()Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerComponent(Z)Landroid/content/ComponentName;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerOrganizationName()Ljava/lang/CharSequence;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDeviceOwnerUserId()I
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getDisallowedSystemApps(Landroid/content/ComponentName;ILjava/lang/String;)Ljava/util/List;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getEncryptionStatus()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;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getEncryptionStatusName(I)Ljava/lang/String;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getKeepUninstalledPackagesLocked()Ljava/util/List;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)I
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getLockObject()Ljava/lang/Object;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;IZ)I
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMaximumTimeToLock(Landroid/content/ComponentName;IZ)J
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMaximumTimeToLockPolicyFromAdmins(Ljava/util/List;)J
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMeteredDisabledPackagesLocked(I)Ljava/util/Set;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMaximumTimeToLockPolicyFromAdmins(Ljava/util/List;)J
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getMeteredDisabledPackagesLocked(I)Ljava/util/Set;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getOrganizationNameForUser(I)Ljava/lang/CharSequence;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getOwnerComponent(I)Landroid/content/ComponentName;
+HSPLcom/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;->getPasswordExpirationTimeout(Landroid/content/ComponentName;IZ)J
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordMinimumMetrics(IZ)Landroid/app/admin/PasswordMetrics;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordQuality(Landroid/content/ComponentName;IZ)I
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordMinimumLength(Landroid/content/ComponentName;IZ)I
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordMinimumLetters(Landroid/content/ComponentName;IZ)I
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordMinimumLowerCase(Landroid/content/ComponentName;IZ)I
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordMinimumMetrics(IZ)Landroid/app/admin/PasswordMetrics;
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordMinimumNonLetter(Landroid/content/ComponentName;IZ)I
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordMinimumNumeric(Landroid/content/ComponentName;IZ)I
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordMinimumSymbols(Landroid/content/ComponentName;IZ)I
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordMinimumUpperCase(Landroid/content/ComponentName;IZ)I
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPasswordQuality(Landroid/content/ComponentName;IZ)I
HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPermissionGrantState(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPolicyFileDirectory(I)Ljava/io/File;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPowerManagerInternal()Landroid/os/PowerManagerInternal;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwner(I)Landroid/content/ComponentName;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerAdminLocked(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileParentId(I)I
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPolicyFileDirectory(I)Ljava/io/File;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getPowerManagerInternal()Landroid/os/PowerManagerInternal;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwner(I)Landroid/content/ComponentName;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerAdminLocked(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerAsUser(I)Landroid/content/ComponentName;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileOwnerOfOrganizationOwnedDeviceLocked(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getProfileParentId(I)I
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getRequiredStrongAuthTimeout(Landroid/content/ComponentName;IZ)J
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getScreenCaptureDisabled(Landroid/content/ComponentName;I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getRestrictionsProvider(I)Landroid/content/ComponentName;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getScreenCaptureDisabled(Landroid/content/ComponentName;I)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getStorageEncryptionStatus(Ljava/lang/String;I)I
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getStrictestPasswordRequirement(Landroid/content/ComponentName;IZLjava/util/function/Function;I)I
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getSystemUpdatePolicy()Landroid/app/admin/SystemUpdatePolicy;
HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getTargetSdk(Ljava/lang/String;I)I
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserData(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserDataUnchecked(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserInfo(I)Landroid/content/pm/UserInfo;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserData(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserDataUnchecked(I)Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->getUserInfo(I)Landroid/content/pm/UserInfo;
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->handlePackagesChanged(Ljava/lang/String;I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->handlePasswordExpirationNotification(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->handleStartUser(I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->handleStartUser(I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->handleUnlockUser(I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasDeviceOwner()Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->hasGrantedPolicy(Landroid/content/ComponentName;II)Z
HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isActiveAdminWithPolicyForUserLocked(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;II)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isActivePasswordSufficient(IZ)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isActivePasswordSufficientForUserLocked(ZLandroid/app/admin/PasswordMetrics;IZ)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isActivePasswordSufficientForUserLocked(ZLandroid/app/admin/PasswordMetrics;IZ)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isAdminActive(Landroid/content/ComponentName;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCallerDelegate(Ljava/lang/String;ILjava/lang/String;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCallerWithSystemUid()Z
-HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDeviceOwner(Landroid/content/ComponentName;I)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCallerDelegate(Ljava/lang/String;ILjava/lang/String;)Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isCallerWithSystemUid()Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isDeviceOwner(Landroid/content/ComponentName;I)Z
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isLimitPasswordAllowed(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;I)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isLockTaskPermitted(Ljava/lang/String;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isLogoutEnabled()Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isManagedProfile(I)Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isLogoutEnabled()Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isManagedProfile(I)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isManagedProfile(Landroid/content/ComponentName;)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isNetworkLoggingEnabled(Landroid/content/ComponentName;Ljava/lang/String;)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isNetworkLoggingEnabledInternalLocked()Z
HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isNotificationListenerServicePermitted(Ljava/lang/String;I)Z
HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isPackageSuspended(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isPasswordSufficientForUserWithoutCheckpointLocked(Landroid/app/admin/PasswordMetrics;IZ)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwner(Landroid/content/ComponentName;I)Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwner(Landroid/content/ComponentName;I)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerOfOrganizationOwnedDevice(Landroid/content/ComponentName;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isProfileOwnerOfOrganizationOwnedDevice(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isRemovedPackage(Ljava/lang/String;Ljava/lang/String;I)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSeparateProfileChallengeAllowed(I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSeparateProfileChallengeEnabled(I)Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isSeparateProfileChallengeEnabled(I)Z
HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->isUninstallBlocked(Landroid/content/ComponentName;Ljava/lang/String;)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isUserAffiliatedWithDeviceLocked(I)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->isUsingUnifiedPassword(Landroid/content/ComponentName;)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$loadAdminDataAsync$0$DevicePolicyManagerService()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/DevicePolicyManagerService$DevicePolicyData;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->makeJournaledFile(I)Lcom/android/internal/util/JournaledFile;
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeLogPasswordComplexitySet(Landroid/content/ComponentName;IZLandroid/app/admin/PasswordPolicy;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeLogStart()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->lambda$loadAdminDataAsync$0$DevicePolicyManagerService()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadAdminDataAsync()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadConstants()Lcom/android/server/devicepolicy/DevicePolicyConstants;
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadOwners()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->loadSettingsLocked(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->makeJournaledFile(I)Lcom/android/internal/util/JournaledFile;
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeLogPasswordComplexitySet(Landroid/content/ComponentName;IZLandroid/app/admin/PasswordPolicy;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeLogStart()V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeSendAdminEnabledBroadcastLocked(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeSetDefaultDeviceOwnerUserRestrictionsLocked()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeSetDefaultProfileOwnerUserRestrictions()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeSetDefaultRestrictionsForAdminLocked(ILcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;Ljava/util/Set;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeStartSecurityLogMonitorOnActivityManagerReady()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->migrateUserRestrictionsIfNecessaryLocked()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeSetDefaultDeviceOwnerUserRestrictionsLocked()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeSetDefaultProfileOwnerUserRestrictions()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeSetDefaultRestrictionsForAdminLocked(ILcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;Ljava/util/Set;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->maybeStartSecurityLogMonitorOnActivityManagerReady()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->migrateUserRestrictionsIfNecessaryLocked()V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->notifyPendingSystemUpdate(Landroid/app/admin/SystemUpdateInfo;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->onInstalledCertificatesChanged(Landroid/os/UserHandle;Ljava/util/Collection;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->onLockSettingsReady()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->packageHasActiveAdmins(Ljava/lang/String;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->passwordQualityInvocationOrderCheckEnabled(Ljava/lang/String;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->pushActiveAdminPackages()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->pushAllMeteredRestrictedPackages()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->pushUserRestrictions(I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->onLockSettingsReady()V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->packageHasActiveAdmins(Ljava/lang/String;I)Z
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->passwordQualityInvocationOrderCheckEnabled(Ljava/lang/String;I)Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->pushActiveAdminPackages()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->pushAllMeteredRestrictedPackages()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->pushUserRestrictions(I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportFailedBiometricAttempt(I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportFailedPasswordAttempt(I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportKeyguardDismissed(I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportKeyguardSecured(I)V
+PLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportSuccessfulBiometricAttempt(I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->reportSuccessfulPasswordAttempt(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->revertTransferOwnershipIfNecessaryLocked()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->saveSettingsLocked(I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->revertTransferOwnershipIfNecessaryLocked()V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->saveSettingsLocked(I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->sendAdminCommandLocked(Lcom/android/server/devicepolicy/DevicePolicyManagerService$ActiveAdmin;Ljava/lang/String;Landroid/os/Bundle;Landroid/content/BroadcastReceiver;Z)Z
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->sendAdminCommandLocked(Ljava/lang/String;IILandroid/os/Bundle;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->sendChangedNotification(I)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->sendChangedNotification(I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setApplicationRestrictions(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setAutoTimeRequired(Landroid/content/ComponentName;Z)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setBackupServiceEnabled(Landroid/content/ComponentName;Z)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setBluetoothContactSharingDisabled(Landroid/content/ComponentName;Z)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setCameraDisabled(Landroid/content/ComponentName;Z)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setBluetoothContactSharingDisabled(Landroid/content/ComponentName;Z)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setCameraDisabled(Landroid/content/ComponentName;ZZ)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setCrossProfileCallerIdDisabled(Landroid/content/ComponentName;Z)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setCrossProfileContactsSearchDisabled(Landroid/content/ComponentName;Z)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setDeviceOwnerSystemPropertyLocked()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setDeviceOwnerSystemPropertyLocked()V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setExpirationAlarmCheckLocked(Landroid/content/Context;IZ)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setKeyguardDisabledFeatures(Landroid/content/ComponentName;IZ)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setLongSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setMasterVolumeMuted(Landroid/content/ComponentName;Z)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setMasterVolumeMuted(Landroid/content/ComponentName;Z)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;IZ)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setMaximumTimeToLock(Landroid/content/ComponentName;JZ)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordExpirationTimeout(Landroid/content/ComponentName;JZ)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordExpirationTimeout(Landroid/content/ComponentName;JZ)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordHistoryLength(Landroid/content/ComponentName;IZ)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordMinimumLength(Landroid/content/ComponentName;IZ)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordMinimumLetters(Landroid/content/ComponentName;IZ)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordMinimumLowerCase(Landroid/content/ComponentName;IZ)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordMinimumNonLetter(Landroid/content/ComponentName;IZ)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordMinimumNumeric(Landroid/content/ComponentName;IZ)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordMinimumSymbols(Landroid/content/ComponentName;IZ)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordMinimumUpperCase(Landroid/content/ComponentName;IZ)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordMinimumLetters(Landroid/content/ComponentName;IZ)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordMinimumLowerCase(Landroid/content/ComponentName;IZ)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordMinimumNonLetter(Landroid/content/ComponentName;IZ)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordMinimumNumeric(Landroid/content/ComponentName;IZ)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordMinimumSymbols(Landroid/content/ComponentName;IZ)V
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordMinimumUpperCase(Landroid/content/ComponentName;IZ)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPasswordQuality(Landroid/content/ComponentName;IZ)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPermissionPolicy(Landroid/content/ComponentName;Ljava/lang/String;I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPermittedAccessibilityServices(Landroid/content/ComponentName;Ljava/util/List;)Z
@@ -7181,120 +8640,153 @@ PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setPermittedInput
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setRequiredStrongAuthTimeout(Landroid/content/ComponentName;JZ)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setScreenCaptureDisabled(Landroid/content/ComponentName;Z)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setShortSupportMessage(Landroid/content/ComponentName;Ljava/lang/CharSequence;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setStorageEncryption(Landroid/content/ComponentName;Z)I
+HPLcom/android/server/devicepolicy/DevicePolicyManagerService;->setStorageEncryption(Landroid/content/ComponentName;Z)I
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setUninstallBlocked(Landroid/content/ComponentName;Ljava/lang/String;Ljava/lang/String;Z)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->setUserRestriction(Landroid/content/ComponentName;Ljava/lang/String;Z)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->shouldOverwritePoliciesFromXml(Landroid/content/ComponentName;I)Z
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->startOwnerService(ILjava/lang/String;)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->systemReady(I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->shouldOverwritePoliciesFromXml(Landroid/content/ComponentName;I)Z
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->startOwnerService(ILjava/lang/String;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->systemReady(I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->toggleBackupServiceActive(IZ)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->translateIdAttestationFlags(I)[I
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateDeviceOwnerLocked()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateLockTaskFeaturesLocked(II)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateLockTaskPackagesLocked(Ljava/util/List;I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateMaximumTimeToLockLocked(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updatePasswordQualityCacheForUserGroup(I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateDeviceOwnerLocked()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateLockTaskFeaturesLocked(II)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateLockTaskPackagesLocked(Ljava/util/List;I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateMaximumTimeToLockLocked(I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->updatePasswordQualityCacheForUserGroup(I)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updatePasswordValidityCheckpointLocked(IZ)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateProfileLockTimeoutLocked(I)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateScreenCaptureDisabled(IZ)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateProfileLockTimeoutLocked(I)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateScreenCaptureDisabled(IZ)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateSystemUpdateFreezePeriodsRecord(Z)V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateUserSetupCompleteAndPaired()V
-PLcom/android/server/devicepolicy/DevicePolicyManagerService;->validatePasswordOwnerLocked(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->updateUserSetupCompleteAndPaired()V
+HSPLcom/android/server/devicepolicy/DevicePolicyManagerService;->validatePasswordOwnerLocked(Lcom/android/server/devicepolicy/DevicePolicyManagerService$DevicePolicyData;)V
PLcom/android/server/devicepolicy/DevicePolicyManagerService;->validateQualityConstant(I)V
-PLcom/android/server/devicepolicy/DeviceStateCacheImpl;-><init>()V
+HSPLcom/android/server/devicepolicy/DeviceStateCacheImpl;-><init>()V
+PLcom/android/server/devicepolicy/DeviceStateCacheImpl;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
PLcom/android/server/devicepolicy/DeviceStateCacheImpl;->isDeviceProvisioned()Z
-PLcom/android/server/devicepolicy/DeviceStateCacheImpl;->setDeviceProvisioned(Z)V
-PLcom/android/server/devicepolicy/OverlayPackagesProvider$DefaultInjector;-><init>()V
-PLcom/android/server/devicepolicy/OverlayPackagesProvider$DefaultInjector;-><init>(Lcom/android/server/devicepolicy/OverlayPackagesProvider$1;)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$DeviceOwnerReadWriter;-><init>(Lcom/android/server/devicepolicy/Owners;)V
-PLcom/android/server/devicepolicy/Owners$FileReadWriter;-><init>(Ljava/io/File;)V
-PLcom/android/server/devicepolicy/Owners$FileReadWriter;->readFromFileLocked()V
-PLcom/android/server/devicepolicy/Owners$Injector;-><init>()V
-PLcom/android/server/devicepolicy/Owners$Injector;->environmentGetDataSystemDirectory()Ljava/io/File;
-PLcom/android/server/devicepolicy/Owners$Injector;->environmentGetUserSystemDirectory(I)Ljava/io/File;
-PLcom/android/server/devicepolicy/Owners$OwnerInfo;-><init>(Ljava/lang/String;Landroid/content/ComponentName;ZLjava/lang/String;Ljava/lang/String;Z)V
-PLcom/android/server/devicepolicy/Owners$OwnerInfo;->readFromXml(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/devicepolicy/Owners$OwnerInfo;
-PLcom/android/server/devicepolicy/Owners$ProfileOwnerReadWriter;-><init>(Lcom/android/server/devicepolicy/Owners;I)V
-PLcom/android/server/devicepolicy/Owners$ProfileOwnerReadWriter;->readInner(Lorg/xmlpull/v1/XmlPullParser;ILjava/lang/String;)Z
-PLcom/android/server/devicepolicy/Owners;-><init>(Landroid/os/UserManager;Landroid/os/UserManagerInternal;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/wm/ActivityTaskManagerInternal;)V
-PLcom/android/server/devicepolicy/Owners;-><init>(Landroid/os/UserManager;Landroid/os/UserManagerInternal;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/devicepolicy/Owners$Injector;)V
-PLcom/android/server/devicepolicy/Owners;->access$600(Lcom/android/server/devicepolicy/Owners;)Landroid/util/ArrayMap;
-PLcom/android/server/devicepolicy/Owners;->getDeviceOwnerComponent()Landroid/content/ComponentName;
-PLcom/android/server/devicepolicy/Owners;->getDeviceOwnerFile()Ljava/io/File;
-PLcom/android/server/devicepolicy/Owners;->getDeviceOwnerUserId()I
-PLcom/android/server/devicepolicy/Owners;->getDeviceOwnerUserRestrictionsNeedsMigration()Z
-PLcom/android/server/devicepolicy/Owners;->getLegacyConfigFile()Ljava/io/File;
-HPLcom/android/server/devicepolicy/Owners;->getProfileOwnerComponent(I)Landroid/content/ComponentName;
-PLcom/android/server/devicepolicy/Owners;->getProfileOwnerFile(I)Ljava/io/File;
-PLcom/android/server/devicepolicy/Owners;->getProfileOwnerKeys()Ljava/util/Set;
-PLcom/android/server/devicepolicy/Owners;->getProfileOwnerUserRestrictionsNeedsMigration(I)Z
+HSPLcom/android/server/devicepolicy/DeviceStateCacheImpl;->setDeviceProvisioned(Z)V
+HSPLcom/android/server/devicepolicy/OverlayPackagesProvider$DefaultInjector;-><init>()V
+HSPLcom/android/server/devicepolicy/OverlayPackagesProvider$DefaultInjector;-><init>(Lcom/android/server/devicepolicy/OverlayPackagesProvider$1;)V
+HSPLcom/android/server/devicepolicy/OverlayPackagesProvider;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/devicepolicy/OverlayPackagesProvider;-><init>(Landroid/content/Context;Lcom/android/server/devicepolicy/OverlayPackagesProvider$Injector;)V
+PLcom/android/server/devicepolicy/OverlayPackagesProvider;->getDisallowedAppsSet(Ljava/lang/String;)Ljava/util/Set;
+PLcom/android/server/devicepolicy/OverlayPackagesProvider;->getLaunchableApps(I)Ljava/util/Set;
+PLcom/android/server/devicepolicy/OverlayPackagesProvider;->getRequiredAppsSet(Ljava/lang/String;)Ljava/util/Set;
+PLcom/android/server/devicepolicy/OverlayPackagesProvider;->getSystemInputMethods(I)Ljava/util/Set;
+PLcom/android/server/devicepolicy/OverlayPackagesProvider;->getVendorDisallowedAppsSet(Ljava/lang/String;)Ljava/util/Set;
+PLcom/android/server/devicepolicy/OverlayPackagesProvider;->getVendorRequiredAppsSet(Ljava/lang/String;)Ljava/util/Set;
+HSPLcom/android/server/devicepolicy/Owners$DeviceOwnerReadWriter;-><init>(Lcom/android/server/devicepolicy/Owners;)V
+HSPLcom/android/server/devicepolicy/Owners$DeviceOwnerReadWriter;->readInner(Lorg/xmlpull/v1/XmlPullParser;ILjava/lang/String;)Z
+PLcom/android/server/devicepolicy/Owners$DeviceOwnerReadWriter;->shouldWrite()Z
+PLcom/android/server/devicepolicy/Owners$DeviceOwnerReadWriter;->writeInner(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/devicepolicy/Owners$FileReadWriter;-><init>(Ljava/io/File;)V
+HSPLcom/android/server/devicepolicy/Owners$FileReadWriter;->readFromFileLocked()V
+PLcom/android/server/devicepolicy/Owners$FileReadWriter;->writeToFileLocked()V
+HSPLcom/android/server/devicepolicy/Owners$Injector;-><init>()V
+HSPLcom/android/server/devicepolicy/Owners$Injector;->environmentGetDataSystemDirectory()Ljava/io/File;
+HSPLcom/android/server/devicepolicy/Owners$Injector;->environmentGetUserSystemDirectory(I)Ljava/io/File;
+HSPLcom/android/server/devicepolicy/Owners$OwnerInfo;-><init>(Ljava/lang/String;Landroid/content/ComponentName;ZLjava/lang/String;Ljava/lang/String;Z)V
+PLcom/android/server/devicepolicy/Owners$OwnerInfo;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/devicepolicy/Owners$OwnerInfo;->readFromXml(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/devicepolicy/Owners$OwnerInfo;
+HSPLcom/android/server/devicepolicy/Owners$ProfileOwnerReadWriter;-><init>(Lcom/android/server/devicepolicy/Owners;I)V
+HSPLcom/android/server/devicepolicy/Owners$ProfileOwnerReadWriter;->readInner(Lorg/xmlpull/v1/XmlPullParser;ILjava/lang/String;)Z
+HSPLcom/android/server/devicepolicy/Owners;-><init>(Landroid/os/UserManager;Landroid/os/UserManagerInternal;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/wm/ActivityTaskManagerInternal;)V
+HSPLcom/android/server/devicepolicy/Owners;-><init>(Landroid/os/UserManager;Landroid/os/UserManagerInternal;Landroid/content/pm/PackageManagerInternal;Lcom/android/server/wm/ActivityTaskManagerInternal;Lcom/android/server/devicepolicy/Owners$Injector;)V
+PLcom/android/server/devicepolicy/Owners;->access$000(Lcom/android/server/devicepolicy/Owners;)Lcom/android/server/devicepolicy/Owners$OwnerInfo;
+PLcom/android/server/devicepolicy/Owners;->access$100(Lcom/android/server/devicepolicy/Owners;)Landroid/app/admin/SystemUpdatePolicy;
+PLcom/android/server/devicepolicy/Owners;->access$200(Lcom/android/server/devicepolicy/Owners;)Landroid/app/admin/SystemUpdateInfo;
+HSPLcom/android/server/devicepolicy/Owners;->access$202(Lcom/android/server/devicepolicy/Owners;Landroid/app/admin/SystemUpdateInfo;)Landroid/app/admin/SystemUpdateInfo;
+PLcom/android/server/devicepolicy/Owners;->access$400(Lcom/android/server/devicepolicy/Owners;)Ljava/time/LocalDate;
+PLcom/android/server/devicepolicy/Owners;->access$500(Lcom/android/server/devicepolicy/Owners;)Ljava/time/LocalDate;
+HSPLcom/android/server/devicepolicy/Owners;->access$600(Lcom/android/server/devicepolicy/Owners;)Landroid/util/ArrayMap;
+PLcom/android/server/devicepolicy/Owners;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/devicepolicy/Owners;->getDeviceOwnerComponent()Landroid/content/ComponentName;
+HSPLcom/android/server/devicepolicy/Owners;->getDeviceOwnerFile()Ljava/io/File;
+HSPLcom/android/server/devicepolicy/Owners;->getDeviceOwnerUserId()I
+HSPLcom/android/server/devicepolicy/Owners;->getDeviceOwnerUserRestrictionsNeedsMigration()Z
+HSPLcom/android/server/devicepolicy/Owners;->getLegacyConfigFile()Ljava/io/File;
+HSPLcom/android/server/devicepolicy/Owners;->getProfileOwnerComponent(I)Landroid/content/ComponentName;
+HSPLcom/android/server/devicepolicy/Owners;->getProfileOwnerFile(I)Ljava/io/File;
+HSPLcom/android/server/devicepolicy/Owners;->getProfileOwnerKeys()Ljava/util/Set;
+HSPLcom/android/server/devicepolicy/Owners;->getProfileOwnerUserRestrictionsNeedsMigration(I)Z
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;->isDeviceOwnerUserId(I)Z
-HPLcom/android/server/devicepolicy/Owners;->isProfileOwnerOfOrganizationOwnedDevice(I)Z
-PLcom/android/server/devicepolicy/Owners;->load()V
-PLcom/android/server/devicepolicy/Owners;->pushToActivityTaskManagerLocked()V
-PLcom/android/server/devicepolicy/Owners;->pushToAppOpsLocked()V
-PLcom/android/server/devicepolicy/Owners;->pushToPackageManagerLocked()V
-PLcom/android/server/devicepolicy/Owners;->readLegacyOwnerFileLocked(Ljava/io/File;)Z
-PLcom/android/server/devicepolicy/Owners;->systemReady()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/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/display/-$$Lambda$AmbientBrightnessStatsTracker$vQZYn_dAhbvzT-Un4vvpuyIATII;-><init>(Lcom/android/server/display/AmbientBrightnessStatsTracker;)V
-PLcom/android/server/display/-$$Lambda$AmbientBrightnessStatsTracker$vQZYn_dAhbvzT-Un4vvpuyIATII;->elapsedTimeMillis()J
+HSPLcom/android/server/devicepolicy/Owners;->hasDeviceOwner()Z
+HSPLcom/android/server/devicepolicy/Owners;->hasProfileOwner(I)Z
+HSPLcom/android/server/devicepolicy/Owners;->isDeviceOwnerUserId(I)Z
+HSPLcom/android/server/devicepolicy/Owners;->isProfileOwnerOfOrganizationOwnedDevice(I)Z
+HSPLcom/android/server/devicepolicy/Owners;->load()V
+HSPLcom/android/server/devicepolicy/Owners;->pushToActivityTaskManagerLocked()V
+HSPLcom/android/server/devicepolicy/Owners;->pushToAppOpsLocked()V
+HSPLcom/android/server/devicepolicy/Owners;->pushToPackageManagerLocked()V
+HSPLcom/android/server/devicepolicy/Owners;->readLegacyOwnerFileLocked(Ljava/io/File;)Z
+PLcom/android/server/devicepolicy/Owners;->saveSystemUpdateInfo(Landroid/app/admin/SystemUpdateInfo;)Z
+HSPLcom/android/server/devicepolicy/Owners;->systemReady()V
+HSPLcom/android/server/devicepolicy/SecurityLogMonitor;-><clinit>()V
+HSPLcom/android/server/devicepolicy/SecurityLogMonitor;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;)V
+HSPLcom/android/server/devicepolicy/SecurityLogMonitor;-><init>(Lcom/android/server/devicepolicy/DevicePolicyManagerService;J)V
+HSPLcom/android/server/devicepolicy/TransferOwnershipMetadataManager$Injector;-><init>()V
+HSPLcom/android/server/devicepolicy/TransferOwnershipMetadataManager$Injector;->getOwnerTransferMetadataDir()Ljava/io/File;
+HSPLcom/android/server/devicepolicy/TransferOwnershipMetadataManager;-><clinit>()V
+HSPLcom/android/server/devicepolicy/TransferOwnershipMetadataManager;-><init>()V
+HSPLcom/android/server/devicepolicy/TransferOwnershipMetadataManager;-><init>(Lcom/android/server/devicepolicy/TransferOwnershipMetadataManager$Injector;)V
+HSPLcom/android/server/devicepolicy/TransferOwnershipMetadataManager;->metadataFileExists()Z
+HSPLcom/android/server/display/-$$Lambda$AmbientBrightnessStatsTracker$vQZYn_dAhbvzT-Un4vvpuyIATII;-><init>(Lcom/android/server/display/AmbientBrightnessStatsTracker;)V
+HSPLcom/android/server/display/-$$Lambda$AmbientBrightnessStatsTracker$vQZYn_dAhbvzT-Un4vvpuyIATII;->elapsedTimeMillis()J
+PLcom/android/server/display/-$$Lambda$BrightnessTracker$_S_g5htVKYYPRPZzYSZzGdy7hM0;-><init>(Lcom/android/server/display/BrightnessTracker;Ljava/io/PrintWriter;)V
+PLcom/android/server/display/-$$Lambda$BrightnessTracker$_S_g5htVKYYPRPZzYSZzGdy7hM0;->run()V
+PLcom/android/server/display/-$$Lambda$BrightnessTracker$fmx2Mcw7OCEtRi9DwxxGQgA74fg;-><init>(Lcom/android/server/display/BrightnessTracker;)V
+PLcom/android/server/display/-$$Lambda$BrightnessTracker$fmx2Mcw7OCEtRi9DwxxGQgA74fg;->run()V
HSPLcom/android/server/display/-$$Lambda$VirtualDisplayAdapter$PFyqe-aYIEBicSVtuy5lL_bT8B0;-><clinit>()V
HSPLcom/android/server/display/-$$Lambda$VirtualDisplayAdapter$PFyqe-aYIEBicSVtuy5lL_bT8B0;-><init>()V
-PLcom/android/server/display/AmbientBrightnessStatsTracker$AmbientBrightnessStats;-><init>(Lcom/android/server/display/AmbientBrightnessStatsTracker;)V
-PLcom/android/server/display/AmbientBrightnessStatsTracker$AmbientBrightnessStats;->getOrCreateDayStats(Ljava/util/Deque;Ljava/time/LocalDate;)Landroid/hardware/display/AmbientBrightnessDayStats;
-PLcom/android/server/display/AmbientBrightnessStatsTracker$AmbientBrightnessStats;->getOrCreateUserStats(Ljava/util/Map;I)Ljava/util/Deque;
-PLcom/android/server/display/AmbientBrightnessStatsTracker$AmbientBrightnessStats;->log(ILjava/time/LocalDate;FF)V
-PLcom/android/server/display/AmbientBrightnessStatsTracker$AmbientBrightnessStats;->readFromXML(Ljava/io/InputStream;)V
-PLcom/android/server/display/AmbientBrightnessStatsTracker$Injector;-><init>()V
-PLcom/android/server/display/AmbientBrightnessStatsTracker$Injector;->elapsedRealtimeMillis()J
-PLcom/android/server/display/AmbientBrightnessStatsTracker$Injector;->getLocalDate()Ljava/time/LocalDate;
-PLcom/android/server/display/AmbientBrightnessStatsTracker$Injector;->getUserId(Landroid/os/UserManager;I)I
-PLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;-><init>(Lcom/android/server/display/AmbientBrightnessStatsTracker$Clock;)V
-PLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;->isRunning()Z
-PLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;->reset()V
-PLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;->start()V
-PLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;->totalDurationSec()F
-PLcom/android/server/display/AmbientBrightnessStatsTracker;-><clinit>()V
-PLcom/android/server/display/AmbientBrightnessStatsTracker;-><init>(Landroid/os/UserManager;Lcom/android/server/display/AmbientBrightnessStatsTracker$Injector;)V
-PLcom/android/server/display/AmbientBrightnessStatsTracker;->access$000(Lcom/android/server/display/AmbientBrightnessStatsTracker;)Lcom/android/server/display/AmbientBrightnessStatsTracker$Injector;
-PLcom/android/server/display/AmbientBrightnessStatsTracker;->access$100(Lcom/android/server/display/AmbientBrightnessStatsTracker;)Landroid/os/UserManager;
-PLcom/android/server/display/AmbientBrightnessStatsTracker;->add(IF)V
-PLcom/android/server/display/AmbientBrightnessStatsTracker;->lambda$new$0$AmbientBrightnessStatsTracker()J
-PLcom/android/server/display/AmbientBrightnessStatsTracker;->readStats(Ljava/io/InputStream;)V
-PLcom/android/server/display/AmbientBrightnessStatsTracker;->start()V
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$AmbientBrightnessStats;-><init>(Lcom/android/server/display/AmbientBrightnessStatsTracker;)V
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$AmbientBrightnessStats;->getOrCreateDayStats(Ljava/util/Deque;Ljava/time/LocalDate;)Landroid/hardware/display/AmbientBrightnessDayStats;
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$AmbientBrightnessStats;->getOrCreateUserStats(Ljava/util/Map;I)Ljava/util/Deque;
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$AmbientBrightnessStats;->log(ILjava/time/LocalDate;FF)V
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$AmbientBrightnessStats;->readFromXML(Ljava/io/InputStream;)V
+PLcom/android/server/display/AmbientBrightnessStatsTracker$AmbientBrightnessStats;->toString()Ljava/lang/String;
+PLcom/android/server/display/AmbientBrightnessStatsTracker$AmbientBrightnessStats;->writeToXML(Ljava/io/OutputStream;)V
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Injector;-><init>()V
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Injector;->elapsedRealtimeMillis()J
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Injector;->getLocalDate()Ljava/time/LocalDate;
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Injector;->getUserId(Landroid/os/UserManager;I)I
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;-><init>(Lcom/android/server/display/AmbientBrightnessStatsTracker$Clock;)V
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;->isRunning()Z
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;->reset()V
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;->start()V
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker$Timer;->totalDurationSec()F
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker;-><clinit>()V
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker;-><init>(Landroid/os/UserManager;Lcom/android/server/display/AmbientBrightnessStatsTracker$Injector;)V
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker;->access$000(Lcom/android/server/display/AmbientBrightnessStatsTracker;)Lcom/android/server/display/AmbientBrightnessStatsTracker$Injector;
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker;->access$100(Lcom/android/server/display/AmbientBrightnessStatsTracker;)Landroid/os/UserManager;
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker;->add(IF)V
+PLcom/android/server/display/AmbientBrightnessStatsTracker;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/AmbientBrightnessStatsTracker;->getUserStats(I)Ljava/util/ArrayList;
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker;->lambda$new$0$AmbientBrightnessStatsTracker()J
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker;->readStats(Ljava/io/InputStream;)V
+HSPLcom/android/server/display/AmbientBrightnessStatsTracker;->start()V
PLcom/android/server/display/AmbientBrightnessStatsTracker;->stop()V
+PLcom/android/server/display/AmbientBrightnessStatsTracker;->writeStats(Ljava/io/OutputStream;)V
PLcom/android/server/display/AutomaticBrightnessController$1;-><init>(Lcom/android/server/display/AutomaticBrightnessController;)V
-PLcom/android/server/display/AutomaticBrightnessController$1;->run()V
-PLcom/android/server/display/AutomaticBrightnessController$2;-><init>(Lcom/android/server/display/AutomaticBrightnessController;)V
+HPLcom/android/server/display/AutomaticBrightnessController$1;->run()V
+HSPLcom/android/server/display/AutomaticBrightnessController$2;-><init>(Lcom/android/server/display/AutomaticBrightnessController;)V
PLcom/android/server/display/AutomaticBrightnessController$2;->onAccuracyChanged(Landroid/hardware/Sensor;I)V
-PLcom/android/server/display/AutomaticBrightnessController$2;->onSensorChanged(Landroid/hardware/SensorEvent;)V
-PLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;-><init>(JI)V
+HPLcom/android/server/display/AutomaticBrightnessController$2;->onSensorChanged(Landroid/hardware/SensorEvent;)V
+HSPLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;-><init>(JI)V
PLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;->clear()V
PLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;->getLux(I)F
PLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;->getTime(I)J
PLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;->offsetOf(I)I
-PLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;->prune(J)V
-PLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;->push(JF)V
+HPLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;->prune(J)V
+HPLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;->push(JF)V
PLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;->size()I
-PLcom/android/server/display/AutomaticBrightnessController$AutomaticBrightnessHandler;-><init>(Lcom/android/server/display/AutomaticBrightnessController;Landroid/os/Looper;)V
-PLcom/android/server/display/AutomaticBrightnessController$AutomaticBrightnessHandler;->handleMessage(Landroid/os/Message;)V
-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$Callbacks;Landroid/os/Looper;Landroid/hardware/SensorManager;Landroid/hardware/Sensor;Lcom/android/server/display/BrightnessMappingStrategy;IIIFIIJJZLcom/android/server/display/HysteresisLevels;Lcom/android/server/display/HysteresisLevels;JLandroid/content/pm/PackageManager;)V
+PLcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;->toString()Ljava/lang/String;
+HSPLcom/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
+HSPLcom/android/server/display/AutomaticBrightnessController$Injector;-><init>()V
+PLcom/android/server/display/AutomaticBrightnessController$Injector;->getBackgroundThreadHandler()Landroid/os/Handler;
+HSPLcom/android/server/display/AutomaticBrightnessController$TaskStackListenerImpl;-><init>(Lcom/android/server/display/AutomaticBrightnessController;)V
+HPLcom/android/server/display/AutomaticBrightnessController$TaskStackListenerImpl;->onTaskStackChanged()V
+HSPLcom/android/server/display/AutomaticBrightnessController;-><init>(Lcom/android/server/display/AutomaticBrightnessController$Callbacks;Landroid/os/Looper;Landroid/hardware/SensorManager;Landroid/hardware/Sensor;Lcom/android/server/display/BrightnessMappingStrategy;IIIFIIJJZLcom/android/server/display/HysteresisLevels;Lcom/android/server/display/HysteresisLevels;JLandroid/content/pm/PackageManager;)V
+HSPLcom/android/server/display/AutomaticBrightnessController;-><init>(Lcom/android/server/display/AutomaticBrightnessController$Injector;Lcom/android/server/display/AutomaticBrightnessController$Callbacks;Landroid/os/Looper;Landroid/hardware/SensorManager;Landroid/hardware/Sensor;Lcom/android/server/display/BrightnessMappingStrategy;IIIFIIJJZLcom/android/server/display/HysteresisLevels;Lcom/android/server/display/HysteresisLevels;JLandroid/content/pm/PackageManager;)V
PLcom/android/server/display/AutomaticBrightnessController;->access$000(Lcom/android/server/display/AutomaticBrightnessController;)Landroid/app/IActivityTaskManager;
PLcom/android/server/display/AutomaticBrightnessController;->access$100(Lcom/android/server/display/AutomaticBrightnessController;)Ljava/lang/String;
PLcom/android/server/display/AutomaticBrightnessController;->access$1000(Lcom/android/server/display/AutomaticBrightnessController;)V
@@ -7305,116 +8797,131 @@ PLcom/android/server/display/AutomaticBrightnessController;->access$302(Lcom/and
PLcom/android/server/display/AutomaticBrightnessController;->access$400(Lcom/android/server/display/AutomaticBrightnessController;)Landroid/content/pm/PackageManager;
PLcom/android/server/display/AutomaticBrightnessController;->access$500(Lcom/android/server/display/AutomaticBrightnessController;)Lcom/android/server/display/AutomaticBrightnessController$AutomaticBrightnessHandler;
PLcom/android/server/display/AutomaticBrightnessController;->access$600(Lcom/android/server/display/AutomaticBrightnessController;)V
+PLcom/android/server/display/AutomaticBrightnessController;->access$900(Lcom/android/server/display/AutomaticBrightnessController;)V
PLcom/android/server/display/AutomaticBrightnessController;->adjustLightSensorRate(I)V
PLcom/android/server/display/AutomaticBrightnessController;->applyLightSensorMeasurement(JF)V
HPLcom/android/server/display/AutomaticBrightnessController;->calculateAmbientLux(JJ)F
PLcom/android/server/display/AutomaticBrightnessController;->calculateWeight(JJ)F
-PLcom/android/server/display/AutomaticBrightnessController;->clampScreenBrightness(I)I
-PLcom/android/server/display/AutomaticBrightnessController;->configure(ZLandroid/hardware/display/BrightnessConfiguration;FZFZI)V
+PLcom/android/server/display/AutomaticBrightnessController;->clampScreenBrightness(F)F
+HSPLcom/android/server/display/AutomaticBrightnessController;->configure(ZLandroid/hardware/display/BrightnessConfiguration;FZFZI)V
+PLcom/android/server/display/AutomaticBrightnessController;->dump(Ljava/io/PrintWriter;)V
PLcom/android/server/display/AutomaticBrightnessController;->getAutomaticScreenBrightness()I
PLcom/android/server/display/AutomaticBrightnessController;->getAutomaticScreenBrightnessAdjustment()F
-PLcom/android/server/display/AutomaticBrightnessController;->handleLightSensorEvent(JF)V
-PLcom/android/server/display/AutomaticBrightnessController;->hasUserDataPoints()Z
+HPLcom/android/server/display/AutomaticBrightnessController;->handleLightSensorEvent(JF)V
+HSPLcom/android/server/display/AutomaticBrightnessController;->hasUserDataPoints()Z
PLcom/android/server/display/AutomaticBrightnessController;->isDefaultConfig()Z
-PLcom/android/server/display/AutomaticBrightnessController;->isInteractivePolicy(I)Z
-PLcom/android/server/display/AutomaticBrightnessController;->nextAmbientLightBrighteningTransition(J)J
-PLcom/android/server/display/AutomaticBrightnessController;->nextAmbientLightDarkeningTransition(J)J
+HSPLcom/android/server/display/AutomaticBrightnessController;->isInteractivePolicy(I)Z
+HPLcom/android/server/display/AutomaticBrightnessController;->nextAmbientLightBrighteningTransition(J)J
+HPLcom/android/server/display/AutomaticBrightnessController;->nextAmbientLightDarkeningTransition(J)J
PLcom/android/server/display/AutomaticBrightnessController;->registerForegroundAppUpdater()V
+HSPLcom/android/server/display/AutomaticBrightnessController;->resetShortTermModel()V
PLcom/android/server/display/AutomaticBrightnessController;->setAmbientLux(F)V
-PLcom/android/server/display/AutomaticBrightnessController;->setBrightnessConfiguration(Landroid/hardware/display/BrightnessConfiguration;)Z
-PLcom/android/server/display/AutomaticBrightnessController;->setDisplayPolicy(I)Z
-PLcom/android/server/display/AutomaticBrightnessController;->setLightSensorEnabled(Z)Z
+HSPLcom/android/server/display/AutomaticBrightnessController;->setBrightnessConfiguration(Landroid/hardware/display/BrightnessConfiguration;)Z
+HSPLcom/android/server/display/AutomaticBrightnessController;->setDisplayPolicy(I)Z
+HSPLcom/android/server/display/AutomaticBrightnessController;->setLightSensorEnabled(Z)Z
PLcom/android/server/display/AutomaticBrightnessController;->unregisterForegroundAppUpdater()V
PLcom/android/server/display/AutomaticBrightnessController;->updateAmbientLux()V
-PLcom/android/server/display/AutomaticBrightnessController;->updateAmbientLux(J)V
-PLcom/android/server/display/AutomaticBrightnessController;->updateAutoBrightness(ZZ)V
+HPLcom/android/server/display/AutomaticBrightnessController;->updateAmbientLux(J)V
+HSPLcom/android/server/display/AutomaticBrightnessController;->updateAutoBrightness(ZZ)V
PLcom/android/server/display/AutomaticBrightnessController;->updateForegroundApp()V
PLcom/android/server/display/AutomaticBrightnessController;->updateForegroundAppSync()V
PLcom/android/server/display/AutomaticBrightnessController;->weightIntegral(J)F
-PLcom/android/server/display/BrightnessIdleJob;->scheduleJob(Landroid/content/Context;)V
-PLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;-><init>(Landroid/hardware/display/BrightnessConfiguration;[F[IF)V
-PLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->computeSpline()V
-PLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->convertToNits(I)F
+PLcom/android/server/display/BrightnessIdleJob;-><init>()V
+PLcom/android/server/display/BrightnessIdleJob;->onStartJob(Landroid/app/job/JobParameters;)Z
+HSPLcom/android/server/display/BrightnessIdleJob;->scheduleJob(Landroid/content/Context;)V
+HSPLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;-><init>(Landroid/hardware/display/BrightnessConfiguration;[F[IF)V
+HSPLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->clearUserDataPoints()V
+HSPLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->computeSpline()V
+HSPLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->convertToNits(I)F
PLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->correctBrightness(FLjava/lang/String;I)F
+PLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->dump(Ljava/io/PrintWriter;)V
PLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->getAutoBrightnessAdjustment()F
PLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->getBrightness(FLjava/lang/String;I)F
-PLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->hasUserDataPoints()Z
+HSPLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->hasUserDataPoints()Z
PLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->isDefaultConfig()Z
-PLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->setBrightnessConfiguration(Landroid/hardware/display/BrightnessConfiguration;)Z
-PLcom/android/server/display/BrightnessMappingStrategy;-><clinit>()V
-PLcom/android/server/display/BrightnessMappingStrategy;-><init>()V
-PLcom/android/server/display/BrightnessMappingStrategy;->create(Landroid/content/res/Resources;)Lcom/android/server/display/BrightnessMappingStrategy;
-PLcom/android/server/display/BrightnessMappingStrategy;->getAdjustedCurve([F[FFFFF)Landroid/util/Pair;
-PLcom/android/server/display/BrightnessMappingStrategy;->getFloatArray(Landroid/content/res/TypedArray;)[F
-PLcom/android/server/display/BrightnessMappingStrategy;->getLuxLevels([I)[F
-PLcom/android/server/display/BrightnessMappingStrategy;->isValidMapping([F[F)Z
-PLcom/android/server/display/BrightnessMappingStrategy;->isValidMapping([F[I)Z
-PLcom/android/server/display/BrightnessMappingStrategy;->normalizeAbsoluteBrightness(I)F
+HSPLcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;->setBrightnessConfiguration(Landroid/hardware/display/BrightnessConfiguration;)Z
+HSPLcom/android/server/display/BrightnessMappingStrategy;-><clinit>()V
+HSPLcom/android/server/display/BrightnessMappingStrategy;-><init>()V
+HSPLcom/android/server/display/BrightnessMappingStrategy;->create(Landroid/content/res/Resources;)Lcom/android/server/display/BrightnessMappingStrategy;
+HSPLcom/android/server/display/BrightnessMappingStrategy;->getAdjustedCurve([F[FFFFF)Landroid/util/Pair;
+HSPLcom/android/server/display/BrightnessMappingStrategy;->getFloatArray(Landroid/content/res/TypedArray;)[F
+HSPLcom/android/server/display/BrightnessMappingStrategy;->getLuxLevels([I)[F
+HSPLcom/android/server/display/BrightnessMappingStrategy;->isValidMapping([F[F)Z
+HSPLcom/android/server/display/BrightnessMappingStrategy;->isValidMapping([F[I)Z
+HSPLcom/android/server/display/BrightnessMappingStrategy;->normalizeAbsoluteBrightness(I)F
PLcom/android/server/display/BrightnessTracker$BrightnessChangeValues;-><init>(FFZZJ)V
-PLcom/android/server/display/BrightnessTracker$Injector;-><init>()V
-PLcom/android/server/display/BrightnessTracker$Injector;->currentTimeMillis()J
-PLcom/android/server/display/BrightnessTracker$Injector;->elapsedRealtimeNanos()J
-PLcom/android/server/display/BrightnessTracker$Injector;->getBackgroundHandler()Landroid/os/Handler;
-PLcom/android/server/display/BrightnessTracker$Injector;->getFile(Ljava/lang/String;)Landroid/util/AtomicFile;
-PLcom/android/server/display/BrightnessTracker$Injector;->isBrightnessModeAutomatic(Landroid/content/ContentResolver;)Z
-PLcom/android/server/display/BrightnessTracker$Injector;->isInteractive(Landroid/content/Context;)Z
-PLcom/android/server/display/BrightnessTracker$Injector;->registerBrightnessModeObserver(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
-PLcom/android/server/display/BrightnessTracker$Injector;->registerReceiver(Landroid/content/Context;Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)V
-PLcom/android/server/display/BrightnessTracker$Injector;->registerSensorListener(Landroid/content/Context;Landroid/hardware/SensorEventListener;Landroid/os/Handler;)V
-PLcom/android/server/display/BrightnessTracker$Injector;->scheduleIdleJob(Landroid/content/Context;)V
+HSPLcom/android/server/display/BrightnessTracker$Injector;-><init>()V
+HSPLcom/android/server/display/BrightnessTracker$Injector;->currentTimeMillis()J
+HSPLcom/android/server/display/BrightnessTracker$Injector;->elapsedRealtimeNanos()J
+HSPLcom/android/server/display/BrightnessTracker$Injector;->getBackgroundHandler()Landroid/os/Handler;
+HSPLcom/android/server/display/BrightnessTracker$Injector;->getFile(Ljava/lang/String;)Landroid/util/AtomicFile;
+HSPLcom/android/server/display/BrightnessTracker$Injector;->getUserId(Landroid/os/UserManager;I)I
+HSPLcom/android/server/display/BrightnessTracker$Injector;->isBrightnessModeAutomatic(Landroid/content/ContentResolver;)Z
+HSPLcom/android/server/display/BrightnessTracker$Injector;->isInteractive(Landroid/content/Context;)Z
+HSPLcom/android/server/display/BrightnessTracker$Injector;->registerBrightnessModeObserver(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
+HSPLcom/android/server/display/BrightnessTracker$Injector;->registerReceiver(Landroid/content/Context;Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)V
+HSPLcom/android/server/display/BrightnessTracker$Injector;->registerSensorListener(Landroid/content/Context;Landroid/hardware/SensorEventListener;Landroid/os/Handler;)V
+HSPLcom/android/server/display/BrightnessTracker$Injector;->scheduleIdleJob(Landroid/content/Context;)V
PLcom/android/server/display/BrightnessTracker$Injector;->unregisterSensorListener(Landroid/content/Context;Landroid/hardware/SensorEventListener;)V
-PLcom/android/server/display/BrightnessTracker$LightData;-><init>()V
-PLcom/android/server/display/BrightnessTracker$LightData;-><init>(Lcom/android/server/display/BrightnessTracker$1;)V
-PLcom/android/server/display/BrightnessTracker$Receiver;-><init>(Lcom/android/server/display/BrightnessTracker;)V
-PLcom/android/server/display/BrightnessTracker$Receiver;-><init>(Lcom/android/server/display/BrightnessTracker;Lcom/android/server/display/BrightnessTracker$1;)V
+HSPLcom/android/server/display/BrightnessTracker$LightData;-><init>()V
+HSPLcom/android/server/display/BrightnessTracker$LightData;-><init>(Lcom/android/server/display/BrightnessTracker$1;)V
+HSPLcom/android/server/display/BrightnessTracker$Receiver;-><init>(Lcom/android/server/display/BrightnessTracker;)V
+HSPLcom/android/server/display/BrightnessTracker$Receiver;-><init>(Lcom/android/server/display/BrightnessTracker;Lcom/android/server/display/BrightnessTracker$1;)V
PLcom/android/server/display/BrightnessTracker$Receiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/display/BrightnessTracker$SensorListener;-><init>(Lcom/android/server/display/BrightnessTracker;)V
-PLcom/android/server/display/BrightnessTracker$SensorListener;-><init>(Lcom/android/server/display/BrightnessTracker;Lcom/android/server/display/BrightnessTracker$1;)V
-PLcom/android/server/display/BrightnessTracker$SensorListener;->onAccuracyChanged(Landroid/hardware/Sensor;I)V
-PLcom/android/server/display/BrightnessTracker$SensorListener;->onSensorChanged(Landroid/hardware/SensorEvent;)V
-PLcom/android/server/display/BrightnessTracker$SettingsObserver;-><init>(Lcom/android/server/display/BrightnessTracker;Landroid/os/Handler;)V
-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/BrightnessTracker$SensorListener;-><init>(Lcom/android/server/display/BrightnessTracker;)V
+HSPLcom/android/server/display/BrightnessTracker$SensorListener;-><init>(Lcom/android/server/display/BrightnessTracker;Lcom/android/server/display/BrightnessTracker$1;)V
+HSPLcom/android/server/display/BrightnessTracker$SensorListener;->onAccuracyChanged(Landroid/hardware/Sensor;I)V
+HSPLcom/android/server/display/BrightnessTracker$SensorListener;->onSensorChanged(Landroid/hardware/SensorEvent;)V
+HSPLcom/android/server/display/BrightnessTracker$SettingsObserver;-><init>(Lcom/android/server/display/BrightnessTracker;Landroid/os/Handler;)V
+HSPLcom/android/server/display/BrightnessTracker$TrackerHandler;-><init>(Lcom/android/server/display/BrightnessTracker;Landroid/os/Looper;)V
+HSPLcom/android/server/display/BrightnessTracker$TrackerHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/display/BrightnessTracker;-><clinit>()V
+HSPLcom/android/server/display/BrightnessTracker;-><init>(Landroid/content/Context;Lcom/android/server/display/BrightnessTracker$Injector;)V
PLcom/android/server/display/BrightnessTracker;->access$1100(Lcom/android/server/display/BrightnessTracker;II)V
-PLcom/android/server/display/BrightnessTracker;->access$1200(Lcom/android/server/display/BrightnessTracker;F)V
+HSPLcom/android/server/display/BrightnessTracker;->access$1200(Lcom/android/server/display/BrightnessTracker;F)V
PLcom/android/server/display/BrightnessTracker;->access$1300(Lcom/android/server/display/BrightnessTracker;FZFZZJ)V
PLcom/android/server/display/BrightnessTracker;->access$1400(Lcom/android/server/display/BrightnessTracker;)V
PLcom/android/server/display/BrightnessTracker;->access$1500(Lcom/android/server/display/BrightnessTracker;)V
PLcom/android/server/display/BrightnessTracker;->access$1600(Lcom/android/server/display/BrightnessTracker;)V
PLcom/android/server/display/BrightnessTracker;->access$1700(Lcom/android/server/display/BrightnessTracker;)V
-PLcom/android/server/display/BrightnessTracker;->access$1800(Lcom/android/server/display/BrightnessTracker;)Landroid/hardware/display/BrightnessConfiguration;
-PLcom/android/server/display/BrightnessTracker;->access$1802(Lcom/android/server/display/BrightnessTracker;Landroid/hardware/display/BrightnessConfiguration;)Landroid/hardware/display/BrightnessConfiguration;
-PLcom/android/server/display/BrightnessTracker;->access$1900(Lcom/android/server/display/BrightnessTracker;)Z
-PLcom/android/server/display/BrightnessTracker;->access$400(Lcom/android/server/display/BrightnessTracker;Landroid/hardware/SensorEvent;)V
-PLcom/android/server/display/BrightnessTracker;->access$500(Lcom/android/server/display/BrightnessTracker;Landroid/hardware/SensorEvent;)V
+HSPLcom/android/server/display/BrightnessTracker;->access$1800(Lcom/android/server/display/BrightnessTracker;)Landroid/hardware/display/BrightnessConfiguration;
+HSPLcom/android/server/display/BrightnessTracker;->access$1802(Lcom/android/server/display/BrightnessTracker;Landroid/hardware/display/BrightnessConfiguration;)Landroid/hardware/display/BrightnessConfiguration;
+HSPLcom/android/server/display/BrightnessTracker;->access$1900(Lcom/android/server/display/BrightnessTracker;)Z
+HSPLcom/android/server/display/BrightnessTracker;->access$400(Lcom/android/server/display/BrightnessTracker;Landroid/hardware/SensorEvent;)V
+HSPLcom/android/server/display/BrightnessTracker;->access$500(Lcom/android/server/display/BrightnessTracker;Landroid/hardware/SensorEvent;)V
PLcom/android/server/display/BrightnessTracker;->access$900(Lcom/android/server/display/BrightnessTracker;)Landroid/os/Handler;
-PLcom/android/server/display/BrightnessTracker;->backgroundStart(F)V
+HSPLcom/android/server/display/BrightnessTracker;->backgroundStart(F)V
PLcom/android/server/display/BrightnessTracker;->batteryLevelChanged(II)V
PLcom/android/server/display/BrightnessTracker;->disableColorSampling()V
-PLcom/android/server/display/BrightnessTracker;->enableColorSampling()V
+PLcom/android/server/display/BrightnessTracker;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/BrightnessTracker;->dumpLocal(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/BrightnessTracker;->enableColorSampling()V
+PLcom/android/server/display/BrightnessTracker;->getEvents(IZ)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/display/BrightnessTracker;->handleBrightnessChanged(FZFZZJ)V
PLcom/android/server/display/BrightnessTracker;->notifyBrightnessChanged(FZFZZ)V
-PLcom/android/server/display/BrightnessTracker;->readAmbientBrightnessStats()V
-PLcom/android/server/display/BrightnessTracker;->readEvents()V
-PLcom/android/server/display/BrightnessTracker;->recordAmbientBrightnessStats(Landroid/hardware/SensorEvent;)V
-PLcom/android/server/display/BrightnessTracker;->recordSensorEvent(Landroid/hardware/SensorEvent;)V
-PLcom/android/server/display/BrightnessTracker;->setBrightnessConfiguration(Landroid/hardware/display/BrightnessConfiguration;)V
-PLcom/android/server/display/BrightnessTracker;->start(F)V
-PLcom/android/server/display/BrightnessTracker;->startSensorListener()V
+HSPLcom/android/server/display/BrightnessTracker;->readAmbientBrightnessStats()V
+HSPLcom/android/server/display/BrightnessTracker;->readEvents()V
+HSPLcom/android/server/display/BrightnessTracker;->readEventsLocked(Ljava/io/InputStream;)V
+HSPLcom/android/server/display/BrightnessTracker;->recordAmbientBrightnessStats(Landroid/hardware/SensorEvent;)V
+HSPLcom/android/server/display/BrightnessTracker;->recordSensorEvent(Landroid/hardware/SensorEvent;)V
+HSPLcom/android/server/display/BrightnessTracker;->setBrightnessConfiguration(Landroid/hardware/display/BrightnessConfiguration;)V
+HSPLcom/android/server/display/BrightnessTracker;->start(F)V
+HSPLcom/android/server/display/BrightnessTracker;->startSensorListener()V
PLcom/android/server/display/BrightnessTracker;->stopSensorListener()V
+PLcom/android/server/display/BrightnessTracker;->writeAmbientBrightnessStats()V
+PLcom/android/server/display/BrightnessTracker;->writeEvents()V
+PLcom/android/server/display/BrightnessTracker;->writeEventsLocked(Ljava/io/OutputStream;)V
PLcom/android/server/display/ColorFade$NaturalSurfaceLayout;-><init>(Landroid/hardware/display/DisplayManagerInternal;ILandroid/view/SurfaceControl;)V
PLcom/android/server/display/ColorFade$NaturalSurfaceLayout;->dispose()V
PLcom/android/server/display/ColorFade$NaturalSurfaceLayout;->onDisplayTransaction(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/display/ColorFade;-><init>(I)V
+HSPLcom/android/server/display/ColorFade;-><init>(I)V
PLcom/android/server/display/ColorFade;->attachEglContext()Z
PLcom/android/server/display/ColorFade;->captureScreenshotTextureAndSetViewport()Z
PLcom/android/server/display/ColorFade;->checkGlErrors(Ljava/lang/String;)Z
-PLcom/android/server/display/ColorFade;->checkGlErrors(Ljava/lang/String;Z)Z
+HPLcom/android/server/display/ColorFade;->checkGlErrors(Ljava/lang/String;Z)Z
PLcom/android/server/display/ColorFade;->createEglContext()Z
PLcom/android/server/display/ColorFade;->createEglSurface()Z
-PLcom/android/server/display/ColorFade;->createNativeFloatBuffer(I)Ljava/nio/FloatBuffer;
+HSPLcom/android/server/display/ColorFade;->createNativeFloatBuffer(I)Ljava/nio/FloatBuffer;
PLcom/android/server/display/ColorFade;->createSurface()Z
PLcom/android/server/display/ColorFade;->destroyEglSurface()V
PLcom/android/server/display/ColorFade;->destroyGLBuffers()V
@@ -7422,10 +8929,11 @@ PLcom/android/server/display/ColorFade;->destroyGLShaders()V
PLcom/android/server/display/ColorFade;->destroyScreenshotTexture()V
PLcom/android/server/display/ColorFade;->destroySurface()V
PLcom/android/server/display/ColorFade;->detachEglContext()V
-PLcom/android/server/display/ColorFade;->dismiss()V
+HSPLcom/android/server/display/ColorFade;->dismiss()V
PLcom/android/server/display/ColorFade;->dismissResources()V
-PLcom/android/server/display/ColorFade;->draw(F)Z
-PLcom/android/server/display/ColorFade;->drawFaded(FF)V
+HPLcom/android/server/display/ColorFade;->draw(F)Z
+HPLcom/android/server/display/ColorFade;->drawFaded(FF)V
+PLcom/android/server/display/ColorFade;->dump(Ljava/io/PrintWriter;)V
PLcom/android/server/display/ColorFade;->initGLBuffers()Z
PLcom/android/server/display/ColorFade;->initGLShaders(Landroid/content/Context;)Z
PLcom/android/server/display/ColorFade;->loadShader(Landroid/content/Context;II)I
@@ -7433,7 +8941,7 @@ PLcom/android/server/display/ColorFade;->ortho(FFFFFF)V
PLcom/android/server/display/ColorFade;->prepare(Landroid/content/Context;I)Z
PLcom/android/server/display/ColorFade;->readFile(Landroid/content/Context;I)Ljava/lang/String;
PLcom/android/server/display/ColorFade;->setQuad(Ljava/nio/FloatBuffer;FFFF)V
-PLcom/android/server/display/ColorFade;->showSurface(F)Z
+HPLcom/android/server/display/ColorFade;->showSurface(F)Z
HSPLcom/android/server/display/DisplayAdapter$1;-><init>(Lcom/android/server/display/DisplayAdapter;Lcom/android/server/display/DisplayDevice;I)V
HSPLcom/android/server/display/DisplayAdapter$1;->run()V
HSPLcom/android/server/display/DisplayAdapter$2;-><init>(Lcom/android/server/display/DisplayAdapter;)V
@@ -7442,19 +8950,21 @@ 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;)V
HSPLcom/android/server/display/DisplayAdapter;->access$000(Lcom/android/server/display/DisplayAdapter;)Lcom/android/server/display/DisplayAdapter$Listener;
HSPLcom/android/server/display/DisplayAdapter;->createMode(IIF)Landroid/view/Display$Mode;
-PLcom/android/server/display/DisplayAdapter;->getContext()Landroid/content/Context;
+PLcom/android/server/display/DisplayAdapter;->dumpLocked(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/DisplayAdapter;->getContext()Landroid/content/Context;
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;->getSyncRoot()Lcom/android/server/display/DisplayManagerService$SyncRoot;
HSPLcom/android/server/display/DisplayAdapter;->registerLocked()V
HSPLcom/android/server/display/DisplayAdapter;->sendDisplayDeviceEventLocked(Lcom/android/server/display/DisplayDevice;I)V
HSPLcom/android/server/display/DisplayAdapter;->sendTraversalRequestLocked()V
HSPLcom/android/server/display/DisplayDevice;-><init>(Lcom/android/server/display/DisplayAdapter;Landroid/os/IBinder;Ljava/lang/String;)V
+PLcom/android/server/display/DisplayDevice;->dumpLocked(Ljava/io/PrintWriter;)V
HSPLcom/android/server/display/DisplayDevice;->getDisplayTokenLocked()Landroid/os/IBinder;
HSPLcom/android/server/display/DisplayDevice;->getUniqueId()Ljava/lang/String;
-PLcom/android/server/display/DisplayDevice;->performTraversalLocked(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/display/DisplayDevice;->populateViewportLocked(Landroid/hardware/display/DisplayViewport;)V
-PLcom/android/server/display/DisplayDevice;->setLayerStackLocked(Landroid/view/SurfaceControl$Transaction;I)V
-PLcom/android/server/display/DisplayDevice;->setProjectionLocked(Landroid/view/SurfaceControl$Transaction;ILandroid/graphics/Rect;Landroid/graphics/Rect;)V
+HSPLcom/android/server/display/DisplayDevice;->performTraversalLocked(Landroid/view/SurfaceControl$Transaction;)V
+HSPLcom/android/server/display/DisplayDevice;->populateViewportLocked(Landroid/hardware/display/DisplayViewport;)V
+HSPLcom/android/server/display/DisplayDevice;->setLayerStackLocked(Landroid/view/SurfaceControl$Transaction;I)V
+HSPLcom/android/server/display/DisplayDevice;->setProjectionLocked(Landroid/view/SurfaceControl$Transaction;ILandroid/graphics/Rect;Landroid/graphics/Rect;)V
HSPLcom/android/server/display/DisplayDeviceInfo;-><init>()V
HSPLcom/android/server/display/DisplayDeviceInfo;->diff(Lcom/android/server/display/DisplayDeviceInfo;)I
HSPLcom/android/server/display/DisplayDeviceInfo;->equals(Lcom/android/server/display/DisplayDeviceInfo;)Z
@@ -7462,20 +8972,24 @@ HSPLcom/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;
-PLcom/android/server/display/DisplayManagerService$AllowedDisplayModeObserver;-><init>(Lcom/android/server/display/DisplayManagerService;)V
-PLcom/android/server/display/DisplayManagerService$AllowedDisplayModeObserver;->onAllowedDisplayModesChanged()V
+HSPLcom/android/server/display/DisplayManagerService$AllowedDisplayModeObserver;-><init>(Lcom/android/server/display/DisplayManagerService;)V
+HSPLcom/android/server/display/DisplayManagerService$AllowedDisplayModeObserver;->onAllowedDisplayModesChanged()V
HSPLcom/android/server/display/DisplayManagerService$BinderService;-><init>(Lcom/android/server/display/DisplayManagerService;)V
-PLcom/android/server/display/DisplayManagerService$BinderService;->getDisplayIds()[I
+PLcom/android/server/display/DisplayManagerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/display/DisplayManagerService$BinderService;->getAmbientBrightnessStats()Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/display/DisplayManagerService$BinderService;->getBrightnessEvents(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/server/display/DisplayManagerService$BinderService;->getDisplayIds()[I
HSPLcom/android/server/display/DisplayManagerService$BinderService;->getDisplayInfo(I)Landroid/view/DisplayInfo;
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;
+HSPLcom/android/server/display/DisplayManagerService$BinderService;->getWifiDisplayStatus()Landroid/hardware/display/WifiDisplayStatus;
HSPLcom/android/server/display/DisplayManagerService$BinderService;->registerCallback(Landroid/hardware/display/IDisplayManagerCallback;)V
PLcom/android/server/display/DisplayManagerService$BinderService;->setBrightnessConfigurationForUser(Landroid/hardware/display/BrightnessConfiguration;ILjava/lang/String;)V
+PLcom/android/server/display/DisplayManagerService$BinderService;->setTemporaryBrightness(I)V
PLcom/android/server/display/DisplayManagerService$BinderService;->validatePackageName(ILjava/lang/String;)Z
HSPLcom/android/server/display/DisplayManagerService$CallbackRecord;-><init>(Lcom/android/server/display/DisplayManagerService;ILandroid/hardware/display/IDisplayManagerCallback;)V
-PLcom/android/server/display/DisplayManagerService$CallbackRecord;->binderDied()V
-PLcom/android/server/display/DisplayManagerService$CallbackRecord;->notifyDisplayEventAsync(II)V
+HPLcom/android/server/display/DisplayManagerService$CallbackRecord;->binderDied()V
+HSPLcom/android/server/display/DisplayManagerService$CallbackRecord;->notifyDisplayEventAsync(II)V
HSPLcom/android/server/display/DisplayManagerService$DisplayAdapterListener;-><init>(Lcom/android/server/display/DisplayManagerService;)V
HSPLcom/android/server/display/DisplayManagerService$DisplayAdapterListener;-><init>(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/DisplayManagerService$1;)V
HSPLcom/android/server/display/DisplayManagerService$DisplayAdapterListener;->onDisplayDeviceEvent(Lcom/android/server/display/DisplayDevice;I)V
@@ -7485,297 +8999,336 @@ HSPLcom/android/server/display/DisplayManagerService$DisplayManagerHandler;->han
HSPLcom/android/server/display/DisplayManagerService$Injector;-><init>()V
HSPLcom/android/server/display/DisplayManagerService$Injector;->getDefaultDisplayDelayTimeout()J
HSPLcom/android/server/display/DisplayManagerService$Injector;->getVirtualDisplayAdapter(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;)Lcom/android/server/display/VirtualDisplayAdapter;
-PLcom/android/server/display/DisplayManagerService$LocalService$1;-><init>(Lcom/android/server/display/DisplayManagerService$LocalService;Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;)V
-PLcom/android/server/display/DisplayManagerService$LocalService$1;->requestDisplayState(II)V
+HSPLcom/android/server/display/DisplayManagerService$LocalService$1;-><init>(Lcom/android/server/display/DisplayManagerService$LocalService;Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;)V
+HSPLcom/android/server/display/DisplayManagerService$LocalService$1;->requestDisplayState(II)V
HSPLcom/android/server/display/DisplayManagerService$LocalService;-><init>(Lcom/android/server/display/DisplayManagerService;)V
HSPLcom/android/server/display/DisplayManagerService$LocalService;-><init>(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/DisplayManagerService$1;)V
-PLcom/android/server/display/DisplayManagerService$LocalService;->getDisplayInfo(I)Landroid/view/DisplayInfo;
-PLcom/android/server/display/DisplayManagerService$LocalService;->getNonOverrideDisplayInfo(ILandroid/view/DisplayInfo;)V
-PLcom/android/server/display/DisplayManagerService$LocalService;->initPowerManagement(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;Landroid/os/Handler;Landroid/hardware/SensorManager;)V
+HSPLcom/android/server/display/DisplayManagerService$LocalService;->getDisplayInfo(I)Landroid/view/DisplayInfo;
+HSPLcom/android/server/display/DisplayManagerService$LocalService;->getNonOverrideDisplayInfo(ILandroid/view/DisplayInfo;)V
+HSPLcom/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;->onOverlayChanged()V
-PLcom/android/server/display/DisplayManagerService$LocalService;->performTraversal(Landroid/view/SurfaceControl$Transaction;)V
+HSPLcom/android/server/display/DisplayManagerService$LocalService;->performTraversal(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/display/DisplayManagerService$LocalService;->persistBrightnessTrackerState()V
PLcom/android/server/display/DisplayManagerService$LocalService;->registerDisplayTransactionListener(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
-HPLcom/android/server/display/DisplayManagerService$LocalService;->requestPowerState(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Z)Z
-PLcom/android/server/display/DisplayManagerService$LocalService;->setDisplayAccessUIDs(Landroid/util/SparseArray;)V
-PLcom/android/server/display/DisplayManagerService$LocalService;->setDisplayInfoOverrideFromWindowManager(ILandroid/view/DisplayInfo;)V
-PLcom/android/server/display/DisplayManagerService$LocalService;->setDisplayProperties(IZFIZ)V
+HSPLcom/android/server/display/DisplayManagerService$LocalService;->requestPowerState(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Z)Z
+PLcom/android/server/display/DisplayManagerService$LocalService;->screenshot(I)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
+HSPLcom/android/server/display/DisplayManagerService$LocalService;->setDisplayAccessUIDs(Landroid/util/SparseArray;)V
+HSPLcom/android/server/display/DisplayManagerService$LocalService;->setDisplayInfoOverrideFromWindowManager(ILandroid/view/DisplayInfo;)V
+HSPLcom/android/server/display/DisplayManagerService$LocalService;->setDisplayProperties(IZFIZ)V
PLcom/android/server/display/DisplayManagerService$LocalService;->unregisterDisplayTransactionListener(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
HSPLcom/android/server/display/DisplayManagerService$SyncRoot;-><init>()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
-PLcom/android/server/display/DisplayManagerService;->access$1000(Lcom/android/server/display/DisplayManagerService;)V
+HSPLcom/android/server/display/DisplayManagerService;->access$1000(Lcom/android/server/display/DisplayManagerService;)V
HSPLcom/android/server/display/DisplayManagerService;->access$1100(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/DisplayDevice;)V
HSPLcom/android/server/display/DisplayManagerService;->access$1200(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/DisplayDevice;)V
HSPLcom/android/server/display/DisplayManagerService;->access$1400(Lcom/android/server/display/DisplayManagerService;Z)V
HSPLcom/android/server/display/DisplayManagerService;->access$1600(Lcom/android/server/display/DisplayManagerService;II)Landroid/view/DisplayInfo;
-PLcom/android/server/display/DisplayManagerService;->access$1700(Lcom/android/server/display/DisplayManagerService;I)[I
+HSPLcom/android/server/display/DisplayManagerService;->access$1700(Lcom/android/server/display/DisplayManagerService;I)[I
HSPLcom/android/server/display/DisplayManagerService;->access$200(Lcom/android/server/display/DisplayManagerService;)V
HSPLcom/android/server/display/DisplayManagerService;->access$2000(Lcom/android/server/display/DisplayManagerService;Landroid/hardware/display/IDisplayManagerCallback;I)V
-PLcom/android/server/display/DisplayManagerService;->access$2100(Lcom/android/server/display/DisplayManagerService;)Landroid/content/Context;
-PLcom/android/server/display/DisplayManagerService;->access$300(Lcom/android/server/display/DisplayManagerService;)V
-PLcom/android/server/display/DisplayManagerService;->access$3000(Lcom/android/server/display/DisplayManagerService;)Landroid/hardware/display/WifiDisplayStatus;
-PLcom/android/server/display/DisplayManagerService;->access$3900(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/DisplayPowerController;
-PLcom/android/server/display/DisplayManagerService;->access$3902(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/DisplayPowerController;)Lcom/android/server/display/DisplayPowerController;
+HSPLcom/android/server/display/DisplayManagerService;->access$2100(Lcom/android/server/display/DisplayManagerService;)Landroid/content/Context;
+HSPLcom/android/server/display/DisplayManagerService;->access$300(Lcom/android/server/display/DisplayManagerService;)V
+HSPLcom/android/server/display/DisplayManagerService;->access$3000(Lcom/android/server/display/DisplayManagerService;)Landroid/hardware/display/WifiDisplayStatus;
+HSPLcom/android/server/display/DisplayManagerService;->access$3900(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/DisplayPowerController;
+HSPLcom/android/server/display/DisplayManagerService;->access$3902(Lcom/android/server/display/DisplayManagerService;Lcom/android/server/display/DisplayPowerController;)Lcom/android/server/display/DisplayPowerController;
HSPLcom/android/server/display/DisplayManagerService;->access$400(Lcom/android/server/display/DisplayManagerService;II)V
-PLcom/android/server/display/DisplayManagerService;->access$4300(Lcom/android/server/display/DisplayManagerService;II)V
-PLcom/android/server/display/DisplayManagerService;->access$4402(Lcom/android/server/display/DisplayManagerService;Landroid/hardware/SensorManager;)Landroid/hardware/SensorManager;
-PLcom/android/server/display/DisplayManagerService;->access$4500(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/DisplayManagerService$DisplayManagerHandler;
+HSPLcom/android/server/display/DisplayManagerService;->access$4300(Lcom/android/server/display/DisplayManagerService;II)V
+HSPLcom/android/server/display/DisplayManagerService;->access$4402(Lcom/android/server/display/DisplayManagerService;Landroid/hardware/SensorManager;)Landroid/hardware/SensorManager;
+HSPLcom/android/server/display/DisplayManagerService;->access$4500(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/DisplayManagerService$DisplayManagerHandler;
+PLcom/android/server/display/DisplayManagerService;->access$4600(Lcom/android/server/display/DisplayManagerService;I)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
PLcom/android/server/display/DisplayManagerService;->access$4700(Lcom/android/server/display/DisplayManagerService;Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
-PLcom/android/server/display/DisplayManagerService;->access$4800(Lcom/android/server/display/DisplayManagerService;Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
-PLcom/android/server/display/DisplayManagerService;->access$4900(Lcom/android/server/display/DisplayManagerService;ILandroid/view/DisplayInfo;)V
-PLcom/android/server/display/DisplayManagerService;->access$500(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/wm/WindowManagerInternal;
-PLcom/android/server/display/DisplayManagerService;->access$5000(Lcom/android/server/display/DisplayManagerService;ILandroid/view/DisplayInfo;)V
-PLcom/android/server/display/DisplayManagerService;->access$5100(Lcom/android/server/display/DisplayManagerService;IZFIZ)V
-PLcom/android/server/display/DisplayManagerService;->access$5400(Lcom/android/server/display/DisplayManagerService;Landroid/util/SparseArray;)V
+HSPLcom/android/server/display/DisplayManagerService;->access$4900(Lcom/android/server/display/DisplayManagerService;ILandroid/view/DisplayInfo;)V
+HSPLcom/android/server/display/DisplayManagerService;->access$500(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/wm/WindowManagerInternal;
+HSPLcom/android/server/display/DisplayManagerService;->access$5000(Lcom/android/server/display/DisplayManagerService;ILandroid/view/DisplayInfo;)V
+HSPLcom/android/server/display/DisplayManagerService;->access$5100(Lcom/android/server/display/DisplayManagerService;IZFIZ)V
+HSPLcom/android/server/display/DisplayManagerService;->access$5400(Lcom/android/server/display/DisplayManagerService;Landroid/util/SparseArray;)V
PLcom/android/server/display/DisplayManagerService;->access$5500(Lcom/android/server/display/DisplayManagerService;)Ljava/util/ArrayList;
-PLcom/android/server/display/DisplayManagerService;->access$5600(Lcom/android/server/display/DisplayManagerService;)V
+HSPLcom/android/server/display/DisplayManagerService;->access$5600(Lcom/android/server/display/DisplayManagerService;)V
HSPLcom/android/server/display/DisplayManagerService;->access$600(Lcom/android/server/display/DisplayManagerService;)Lcom/android/server/display/DisplayManagerService$SyncRoot;
-PLcom/android/server/display/DisplayManagerService;->access$700(Lcom/android/server/display/DisplayManagerService;)Ljava/util/ArrayList;
-PLcom/android/server/display/DisplayManagerService;->access$800(Lcom/android/server/display/DisplayManagerService;)Ljava/util/ArrayList;
-PLcom/android/server/display/DisplayManagerService;->access$900(Lcom/android/server/display/DisplayManagerService;)Landroid/hardware/input/InputManagerInternal;
+HSPLcom/android/server/display/DisplayManagerService;->access$700(Lcom/android/server/display/DisplayManagerService;)Ljava/util/ArrayList;
+HSPLcom/android/server/display/DisplayManagerService;->access$800(Lcom/android/server/display/DisplayManagerService;)Ljava/util/ArrayList;
+HSPLcom/android/server/display/DisplayManagerService;->access$900(Lcom/android/server/display/DisplayManagerService;)Landroid/hardware/input/InputManagerInternal;
HSPLcom/android/server/display/DisplayManagerService;->addLogicalDisplayLocked(Lcom/android/server/display/DisplayDevice;)Lcom/android/server/display/LogicalDisplay;
PLcom/android/server/display/DisplayManagerService;->applyGlobalDisplayStateLocked(Ljava/util/List;)V
HSPLcom/android/server/display/DisplayManagerService;->assignDisplayIdLocked(Z)I
HSPLcom/android/server/display/DisplayManagerService;->assignLayerStackLocked(I)I
-PLcom/android/server/display/DisplayManagerService;->clearViewportsLocked()V
+HSPLcom/android/server/display/DisplayManagerService;->clearViewportsLocked()V
HSPLcom/android/server/display/DisplayManagerService;->configureColorModeLocked(Lcom/android/server/display/LogicalDisplay;Lcom/android/server/display/DisplayDevice;)V
-PLcom/android/server/display/DisplayManagerService;->configureDisplayLocked(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/display/DisplayDevice;)V
+HSPLcom/android/server/display/DisplayManagerService;->configureDisplayLocked(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/display/DisplayDevice;)V
HSPLcom/android/server/display/DisplayManagerService;->deliverDisplayEvent(II)V
-PLcom/android/server/display/DisplayManagerService;->findLogicalDisplayForDeviceLocked(Lcom/android/server/display/DisplayDevice;)Lcom/android/server/display/LogicalDisplay;
-PLcom/android/server/display/DisplayManagerService;->getDisplayIdsInternal(I)[I
+PLcom/android/server/display/DisplayManagerService;->dumpInternal(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/DisplayManagerService;->findLogicalDisplayForDeviceLocked(Lcom/android/server/display/DisplayDevice;)Lcom/android/server/display/LogicalDisplay;
+HSPLcom/android/server/display/DisplayManagerService;->getDisplayIdsInternal(I)[I
HSPLcom/android/server/display/DisplayManagerService;->getDisplayInfoInternal(II)Landroid/view/DisplayInfo;
+PLcom/android/server/display/DisplayManagerService;->getDisplayToken(I)Landroid/os/IBinder;
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;->getNonOverrideDisplayInfoInternal(ILandroid/view/DisplayInfo;)V
HSPLcom/android/server/display/DisplayManagerService;->getPreferredWideGamutColorSpaceIdInternal()I
PLcom/android/server/display/DisplayManagerService;->getStableDisplaySizeInternal()Landroid/graphics/Point;
-PLcom/android/server/display/DisplayManagerService;->getUserManager()Landroid/os/UserManager;
-PLcom/android/server/display/DisplayManagerService;->getViewportLocked(ILjava/lang/String;)Landroid/hardware/display/DisplayViewport;
-PLcom/android/server/display/DisplayManagerService;->getWifiDisplayStatusInternal()Landroid/hardware/display/WifiDisplayStatus;
+HSPLcom/android/server/display/DisplayManagerService;->getUserManager()Landroid/os/UserManager;
+HSPLcom/android/server/display/DisplayManagerService;->getViewportLocked(ILjava/lang/String;)Landroid/hardware/display/DisplayViewport;
+HSPLcom/android/server/display/DisplayManagerService;->getWifiDisplayStatusInternal()Landroid/hardware/display/WifiDisplayStatus;
HSPLcom/android/server/display/DisplayManagerService;->handleDisplayDeviceAdded(Lcom/android/server/display/DisplayDevice;)V
HSPLcom/android/server/display/DisplayManagerService;->handleDisplayDeviceAddedLocked(Lcom/android/server/display/DisplayDevice;)V
HSPLcom/android/server/display/DisplayManagerService;->handleDisplayDeviceChanged(Lcom/android/server/display/DisplayDevice;)V
HSPLcom/android/server/display/DisplayManagerService;->handleLogicalDisplayChanged(ILcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->loadBrightnessConfiguration()V
+PLcom/android/server/display/DisplayManagerService;->isBrightnessConfigurationTooDark(Landroid/hardware/display/BrightnessConfiguration;)Z
+HSPLcom/android/server/display/DisplayManagerService;->loadBrightnessConfiguration()V
HSPLcom/android/server/display/DisplayManagerService;->loadStableDisplayValuesLocked()V
-PLcom/android/server/display/DisplayManagerService;->onAllowedDisplayModesChangedInternal()V
+HSPLcom/android/server/display/DisplayManagerService;->onAllowedDisplayModesChangedInternal()V
HSPLcom/android/server/display/DisplayManagerService;->onBootPhase(I)V
-PLcom/android/server/display/DisplayManagerService;->onCallbackDied(Lcom/android/server/display/DisplayManagerService$CallbackRecord;)V
+HPLcom/android/server/display/DisplayManagerService;->onCallbackDied(Lcom/android/server/display/DisplayManagerService$CallbackRecord;)V
HSPLcom/android/server/display/DisplayManagerService;->onStart()V
-PLcom/android/server/display/DisplayManagerService;->performTraversalInternal(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/display/DisplayManagerService;->performTraversalLocked(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/display/DisplayManagerService;->populateViewportLocked(IILcom/android/server/display/DisplayDevice;Ljava/lang/String;)V
+HSPLcom/android/server/display/DisplayManagerService;->performTraversalInternal(Landroid/view/SurfaceControl$Transaction;)V
+HSPLcom/android/server/display/DisplayManagerService;->performTraversalLocked(Landroid/view/SurfaceControl$Transaction;)V
+HSPLcom/android/server/display/DisplayManagerService;->populateViewportLocked(IILcom/android/server/display/DisplayDevice;Ljava/lang/String;)V
HSPLcom/android/server/display/DisplayManagerService;->recordStableDisplayStatsIfNeededLocked(Lcom/android/server/display/LogicalDisplay;)V
HSPLcom/android/server/display/DisplayManagerService;->recordTopInsetLocked(Lcom/android/server/display/LogicalDisplay;)V
-PLcom/android/server/display/DisplayManagerService;->registerAdditionalDisplayAdapters()V
+HSPLcom/android/server/display/DisplayManagerService;->registerAdditionalDisplayAdapters()V
HSPLcom/android/server/display/DisplayManagerService;->registerCallbackInternal(Landroid/hardware/display/IDisplayManagerCallback;I)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;->registerDisplayTransactionListenerInternal(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
-PLcom/android/server/display/DisplayManagerService;->registerOverlayDisplayAdapterLocked()V
-PLcom/android/server/display/DisplayManagerService;->registerWifiDisplayAdapterLocked()V
-PLcom/android/server/display/DisplayManagerService;->requestGlobalDisplayStateInternal(II)V
+HSPLcom/android/server/display/DisplayManagerService;->registerOverlayDisplayAdapterLocked()V
+HSPLcom/android/server/display/DisplayManagerService;->registerWifiDisplayAdapterLocked()V
+HSPLcom/android/server/display/DisplayManagerService;->requestGlobalDisplayStateInternal(II)V
HSPLcom/android/server/display/DisplayManagerService;->scheduleTraversalLocked(Z)V
+PLcom/android/server/display/DisplayManagerService;->screenshotInternal(I)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
HSPLcom/android/server/display/DisplayManagerService;->sendDisplayEventLocked(II)V
PLcom/android/server/display/DisplayManagerService;->setBrightnessConfigurationForUserInternal(Landroid/hardware/display/BrightnessConfiguration;ILjava/lang/String;)V
-PLcom/android/server/display/DisplayManagerService;->setDisplayAccessUIDsInternal(Landroid/util/SparseArray;)V
-PLcom/android/server/display/DisplayManagerService;->setDisplayInfoOverrideFromWindowManagerInternal(ILandroid/view/DisplayInfo;)V
-PLcom/android/server/display/DisplayManagerService;->setDisplayPropertiesInternal(IZFIZ)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(ZZ)V
-PLcom/android/server/display/DisplayManagerService;->unregisterDisplayTransactionListenerInternal(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
+HSPLcom/android/server/display/DisplayManagerService;->setDisplayAccessUIDsInternal(Landroid/util/SparseArray;)V
+HSPLcom/android/server/display/DisplayManagerService;->setDisplayInfoOverrideFromWindowManagerInternal(ILandroid/view/DisplayInfo;)V
+HSPLcom/android/server/display/DisplayManagerService;->setDisplayPropertiesInternal(IZFIZ)V
+HSPLcom/android/server/display/DisplayManagerService;->setupSchedulerPolicies()V
+HSPLcom/android/server/display/DisplayManagerService;->shouldRegisterNonEssentialDisplayAdaptersLocked()Z
+HPLcom/android/server/display/DisplayManagerService;->stopWifiDisplayScanLocked(Lcom/android/server/display/DisplayManagerService$CallbackRecord;)V
+HSPLcom/android/server/display/DisplayManagerService;->systemReady(ZZ)V
HSPLcom/android/server/display/DisplayManagerService;->updateDisplayStateLocked(Lcom/android/server/display/DisplayDevice;)Ljava/lang/Runnable;
HSPLcom/android/server/display/DisplayManagerService;->updateLogicalDisplaysLocked()Z
-PLcom/android/server/display/DisplayManagerService;->windowManagerAndInputReady()V
+HSPLcom/android/server/display/DisplayManagerService;->windowManagerAndInputReady()V
HSPLcom/android/server/display/DisplayModeDirector$AppRequestObserver;-><init>(Lcom/android/server/display/DisplayModeDirector;)V
-PLcom/android/server/display/DisplayModeDirector$AppRequestObserver;->findModeByIdLocked(II)Landroid/view/Display$Mode;
-PLcom/android/server/display/DisplayModeDirector$AppRequestObserver;->setAppRequestedMode(II)V
-PLcom/android/server/display/DisplayModeDirector$AppRequestObserver;->setAppRequestedModeLocked(II)V
+PLcom/android/server/display/DisplayModeDirector$AppRequestObserver;->dumpLocked(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/DisplayModeDirector$AppRequestObserver;->findModeByIdLocked(II)Landroid/view/Display$Mode;
+HSPLcom/android/server/display/DisplayModeDirector$AppRequestObserver;->setAppRequestedMode(II)V
+HSPLcom/android/server/display/DisplayModeDirector$AppRequestObserver;->setAppRequestedModeLocked(II)V
HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener$1;-><init>(Lcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;)V
+HPLcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener$1;->run()V
HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;-><init>(Lcom/android/server/display/DisplayModeDirector$BrightnessObserver;)V
HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;-><init>(Lcom/android/server/display/DisplayModeDirector$BrightnessObserver;Lcom/android/server/display/DisplayModeDirector$1;)V
+PLcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;->access$1500(Lcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;J)V
+PLcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;->access$1600(Lcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;)F
+PLcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;->access$1700(Lcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;FF)Z
+PLcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;->access$1800(Lcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;)Ljava/lang/Runnable;
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;->isDifferentZone(FF)Z
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;->onAccuracyChanged(Landroid/hardware/Sensor;I)V
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;->onSensorChanged(Landroid/hardware/SensorEvent;)V
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;->processSensorData(J)V
PLcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;->removeCallbacks()V
HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;-><init>(Lcom/android/server/display/DisplayModeDirector;Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->checkShouldObserve([I)Z
-PLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->isDefaultDisplayOn()Z
-PLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->observe(Landroid/hardware/SensorManager;)V
-PLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->onDisplayChanged(I)V
-PLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->onLowPowerModeEnabledLocked(Z)V
-PLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->onRefreshRateSettingChangedLocked(FF)V
-PLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->onScreenOn(Z)V
-PLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->restartObserver()V
-PLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->updateSensorStatus()V
-PLcom/android/server/display/DisplayModeDirector$DesiredDisplayConfigSpecs;-><init>(ILcom/android/server/display/DisplayModeDirector$RefreshRateRange;[I)V
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->access$1100(Lcom/android/server/display/DisplayModeDirector$BrightnessObserver;)F
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->access$1102(Lcom/android/server/display/DisplayModeDirector$BrightnessObserver;F)F
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->access$1200(Lcom/android/server/display/DisplayModeDirector$BrightnessObserver;)Lcom/android/server/display/utils/AmbientFilter;
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->access$1300(Lcom/android/server/display/DisplayModeDirector$BrightnessObserver;)V
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->access$1400(Lcom/android/server/display/DisplayModeDirector$BrightnessObserver;)[I
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->checkShouldObserve([I)Z
+PLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->dumpLocked(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->isDefaultDisplayOn()Z
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->isInsideZone(IF)Z
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->observe(Landroid/hardware/SensorManager;)V
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->onBrightnessChangedLocked()V
+HPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->onChange(ZLandroid/net/Uri;I)V
+PLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->onDeviceConfigThresholdsChanged([I[I)V
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->onDisplayChanged(I)V
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->onLowPowerModeEnabledLocked(Z)V
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->onRefreshRateSettingChangedLocked(FF)V
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->onScreenOn(Z)V
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->restartObserver()V
+HSPLcom/android/server/display/DisplayModeDirector$BrightnessObserver;->updateSensorStatus()V
+HSPLcom/android/server/display/DisplayModeDirector$DesiredDisplayConfigSpecs;-><init>(ILcom/android/server/display/DisplayModeDirector$RefreshRateRange;[I)V
HSPLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;-><init>(Lcom/android/server/display/DisplayModeDirector;)V
-PLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;->getAmbientThresholds()[I
-PLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;->getBrightnessThresholds()[I
-PLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;->getDefaultPeakRefreshRate()Ljava/lang/Float;
-PLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;->getIntArrayProperty(Ljava/lang/String;)[I
-PLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;->getRefreshRateInZone()I
-PLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;->startListening()V
+HSPLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;->getAmbientThresholds()[I
+HSPLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;->getBrightnessThresholds()[I
+HSPLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;->getDefaultPeakRefreshRate()Ljava/lang/Float;
+HSPLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;->getIntArrayProperty(Ljava/lang/String;)[I
+HSPLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;->getRefreshRateInZone()I
+PLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+HSPLcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;->startListening()V
HSPLcom/android/server/display/DisplayModeDirector$DisplayModeDirectorHandler;-><init>(Lcom/android/server/display/DisplayModeDirector;Landroid/os/Looper;)V
-PLcom/android/server/display/DisplayModeDirector$DisplayModeDirectorHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/display/DisplayModeDirector$DisplayModeDirectorHandler;->handleMessage(Landroid/os/Message;)V
HSPLcom/android/server/display/DisplayModeDirector$DisplayObserver;-><init>(Lcom/android/server/display/DisplayModeDirector;Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/display/DisplayModeDirector$DisplayObserver;->observe()V
-PLcom/android/server/display/DisplayModeDirector$DisplayObserver;->onDisplayChanged(I)V
-PLcom/android/server/display/DisplayModeDirector$DisplayObserver;->updateDisplayModes(I)V
-PLcom/android/server/display/DisplayModeDirector$RefreshRateRange;-><init>(FF)V
+HSPLcom/android/server/display/DisplayModeDirector$DisplayObserver;->observe()V
+HSPLcom/android/server/display/DisplayModeDirector$DisplayObserver;->onDisplayChanged(I)V
+HSPLcom/android/server/display/DisplayModeDirector$DisplayObserver;->updateDisplayModes(I)V
+HSPLcom/android/server/display/DisplayModeDirector$RefreshRateRange;-><init>(FF)V
HSPLcom/android/server/display/DisplayModeDirector$SettingsObserver;-><init>(Lcom/android/server/display/DisplayModeDirector;Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/display/DisplayModeDirector$SettingsObserver;->observe()V
-PLcom/android/server/display/DisplayModeDirector$SettingsObserver;->updateLowPowerModeSettingLocked()V
-PLcom/android/server/display/DisplayModeDirector$SettingsObserver;->updateRefreshRateSettingLocked()V
-PLcom/android/server/display/DisplayModeDirector$Vote;-><init>(IIFF)V
-PLcom/android/server/display/DisplayModeDirector$Vote;->forRefreshRates(FF)Lcom/android/server/display/DisplayModeDirector$Vote;
+HSPLcom/android/server/display/DisplayModeDirector$SettingsObserver;->observe()V
+PLcom/android/server/display/DisplayModeDirector$SettingsObserver;->onDeviceConfigDefaultPeakRefreshRateChanged(Ljava/lang/Float;)V
+HSPLcom/android/server/display/DisplayModeDirector$SettingsObserver;->updateLowPowerModeSettingLocked()V
+HSPLcom/android/server/display/DisplayModeDirector$SettingsObserver;->updateRefreshRateSettingLocked()V
+HSPLcom/android/server/display/DisplayModeDirector$Vote;-><init>(IIFF)V
+HSPLcom/android/server/display/DisplayModeDirector$Vote;->forRefreshRates(FF)Lcom/android/server/display/DisplayModeDirector$Vote;
+PLcom/android/server/display/DisplayModeDirector$Vote;->forSize(II)Lcom/android/server/display/DisplayModeDirector$Vote;
+PLcom/android/server/display/DisplayModeDirector$Vote;->priorityToString(I)Ljava/lang/String;
+PLcom/android/server/display/DisplayModeDirector$Vote;->toString()Ljava/lang/String;
HSPLcom/android/server/display/DisplayModeDirector;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/display/DisplayModeDirector;->access$000(Lcom/android/server/display/DisplayModeDirector;)Lcom/android/server/display/DisplayModeDirector$BrightnessObserver;
-PLcom/android/server/display/DisplayModeDirector;->access$1000(Lcom/android/server/display/DisplayModeDirector;)Lcom/android/server/display/DisplayModeDirector$DisplayModeDirectorHandler;
-PLcom/android/server/display/DisplayModeDirector;->access$1900(Lcom/android/server/display/DisplayModeDirector;)Landroid/content/Context;
-PLcom/android/server/display/DisplayModeDirector;->access$200(Lcom/android/server/display/DisplayModeDirector;)Lcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;
-PLcom/android/server/display/DisplayModeDirector;->access$300(Lcom/android/server/display/DisplayModeDirector;)Ljava/lang/Object;
-PLcom/android/server/display/DisplayModeDirector;->access$400(Lcom/android/server/display/DisplayModeDirector;ILcom/android/server/display/DisplayModeDirector$Vote;)V
-PLcom/android/server/display/DisplayModeDirector;->access$600(Lcom/android/server/display/DisplayModeDirector;)Landroid/util/SparseArray;
-PLcom/android/server/display/DisplayModeDirector;->access$700(Lcom/android/server/display/DisplayModeDirector;)Landroid/util/SparseArray;
-PLcom/android/server/display/DisplayModeDirector;->filterModes([Landroid/view/Display$Mode;IIFF)[I
-PLcom/android/server/display/DisplayModeDirector;->getAllowedModes(I)[I
-PLcom/android/server/display/DisplayModeDirector;->getAppRequestObserver()Lcom/android/server/display/DisplayModeDirector$AppRequestObserver;
-PLcom/android/server/display/DisplayModeDirector;->getDesiredDisplayConfigSpecs(I)Lcom/android/server/display/DisplayModeDirector$DesiredDisplayConfigSpecs;
-PLcom/android/server/display/DisplayModeDirector;->getOrCreateVotesByDisplay(I)Landroid/util/SparseArray;
-PLcom/android/server/display/DisplayModeDirector;->getVotesLocked(I)Landroid/util/SparseArray;
-PLcom/android/server/display/DisplayModeDirector;->notifyAllowedModesChangedLocked()V
-PLcom/android/server/display/DisplayModeDirector;->setDisplayModeListener(Lcom/android/server/display/DisplayModeDirector$DisplayModeListener;)V
-PLcom/android/server/display/DisplayModeDirector;->start(Landroid/hardware/SensorManager;)V
-PLcom/android/server/display/DisplayModeDirector;->updateVoteLocked(IILcom/android/server/display/DisplayModeDirector$Vote;)V
-PLcom/android/server/display/DisplayModeDirector;->updateVoteLocked(ILcom/android/server/display/DisplayModeDirector$Vote;)V
-PLcom/android/server/display/DisplayPowerController$1;-><init>(Lcom/android/server/display/DisplayPowerController;)V
+HSPLcom/android/server/display/DisplayModeDirector;->access$000(Lcom/android/server/display/DisplayModeDirector;)Lcom/android/server/display/DisplayModeDirector$BrightnessObserver;
+HSPLcom/android/server/display/DisplayModeDirector;->access$1000(Lcom/android/server/display/DisplayModeDirector;)Lcom/android/server/display/DisplayModeDirector$DisplayModeDirectorHandler;
+HSPLcom/android/server/display/DisplayModeDirector;->access$1900(Lcom/android/server/display/DisplayModeDirector;)Landroid/content/Context;
+HSPLcom/android/server/display/DisplayModeDirector;->access$200(Lcom/android/server/display/DisplayModeDirector;)Lcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;
+HSPLcom/android/server/display/DisplayModeDirector;->access$300(Lcom/android/server/display/DisplayModeDirector;)Ljava/lang/Object;
+HSPLcom/android/server/display/DisplayModeDirector;->access$400(Lcom/android/server/display/DisplayModeDirector;ILcom/android/server/display/DisplayModeDirector$Vote;)V
+PLcom/android/server/display/DisplayModeDirector;->access$500(Lcom/android/server/display/DisplayModeDirector;IILcom/android/server/display/DisplayModeDirector$Vote;)V
+HSPLcom/android/server/display/DisplayModeDirector;->access$600(Lcom/android/server/display/DisplayModeDirector;)Landroid/util/SparseArray;
+HSPLcom/android/server/display/DisplayModeDirector;->access$700(Lcom/android/server/display/DisplayModeDirector;)Landroid/util/SparseArray;
+PLcom/android/server/display/DisplayModeDirector;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/DisplayModeDirector;->filterModes([Landroid/view/Display$Mode;IIFF)[I
+HSPLcom/android/server/display/DisplayModeDirector;->getAllowedModes(I)[I
+HSPLcom/android/server/display/DisplayModeDirector;->getAppRequestObserver()Lcom/android/server/display/DisplayModeDirector$AppRequestObserver;
+HSPLcom/android/server/display/DisplayModeDirector;->getDesiredDisplayConfigSpecs(I)Lcom/android/server/display/DisplayModeDirector$DesiredDisplayConfigSpecs;
+HSPLcom/android/server/display/DisplayModeDirector;->getOrCreateVotesByDisplay(I)Landroid/util/SparseArray;
+HSPLcom/android/server/display/DisplayModeDirector;->getVotesLocked(I)Landroid/util/SparseArray;
+HSPLcom/android/server/display/DisplayModeDirector;->notifyAllowedModesChangedLocked()V
+HSPLcom/android/server/display/DisplayModeDirector;->setDisplayModeListener(Lcom/android/server/display/DisplayModeDirector$DisplayModeListener;)V
+HSPLcom/android/server/display/DisplayModeDirector;->start(Landroid/hardware/SensorManager;)V
+HSPLcom/android/server/display/DisplayModeDirector;->updateVoteLocked(IILcom/android/server/display/DisplayModeDirector$Vote;)V
+HSPLcom/android/server/display/DisplayModeDirector;->updateVoteLocked(ILcom/android/server/display/DisplayModeDirector$Vote;)V
+HSPLcom/android/server/display/DisplayPowerController$1;-><init>(Lcom/android/server/display/DisplayPowerController;)V
PLcom/android/server/display/DisplayPowerController$1;->onAnimationEnd(Landroid/animation/Animator;)V
PLcom/android/server/display/DisplayPowerController$1;->onAnimationStart(Landroid/animation/Animator;)V
-PLcom/android/server/display/DisplayPowerController$2;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$2;->onAnimationEnd()V
-PLcom/android/server/display/DisplayPowerController$3;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$3;->run()V
-PLcom/android/server/display/DisplayPowerController$4;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$4;->run()V
-PLcom/android/server/display/DisplayPowerController$5;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$6;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$8;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$BrightnessReason;-><init>(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController$BrightnessReason;-><init>(Lcom/android/server/display/DisplayPowerController;Lcom/android/server/display/DisplayPowerController$1;)V
+HSPLcom/android/server/display/DisplayPowerController$2;-><init>(Lcom/android/server/display/DisplayPowerController;)V
+HSPLcom/android/server/display/DisplayPowerController$2;->onAnimationEnd()V
+HSPLcom/android/server/display/DisplayPowerController$3;-><init>(Lcom/android/server/display/DisplayPowerController;)V
+HSPLcom/android/server/display/DisplayPowerController$3;->run()V
+HSPLcom/android/server/display/DisplayPowerController$4;-><init>(Lcom/android/server/display/DisplayPowerController;)V
+HSPLcom/android/server/display/DisplayPowerController$4;->run()V
+HSPLcom/android/server/display/DisplayPowerController$5;-><init>(Lcom/android/server/display/DisplayPowerController;)V
+HSPLcom/android/server/display/DisplayPowerController$6;-><init>(Lcom/android/server/display/DisplayPowerController;)V
+PLcom/android/server/display/DisplayPowerController$7;-><init>(Lcom/android/server/display/DisplayPowerController;Ljava/io/PrintWriter;)V
+PLcom/android/server/display/DisplayPowerController$7;->run()V
+HSPLcom/android/server/display/DisplayPowerController$8;-><init>(Lcom/android/server/display/DisplayPowerController;)V
+HSPLcom/android/server/display/DisplayPowerController$BrightnessReason;-><init>(Lcom/android/server/display/DisplayPowerController;)V
+HSPLcom/android/server/display/DisplayPowerController$BrightnessReason;-><init>(Lcom/android/server/display/DisplayPowerController;Lcom/android/server/display/DisplayPowerController$1;)V
PLcom/android/server/display/DisplayPowerController$BrightnessReason;->addModifier(I)V
-PLcom/android/server/display/DisplayPowerController$BrightnessReason;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/display/DisplayPowerController$BrightnessReason;->reasonToString(I)Ljava/lang/String;
-PLcom/android/server/display/DisplayPowerController$BrightnessReason;->set(Lcom/android/server/display/DisplayPowerController$BrightnessReason;)V
-PLcom/android/server/display/DisplayPowerController$BrightnessReason;->setModifier(I)V
-PLcom/android/server/display/DisplayPowerController$BrightnessReason;->setReason(I)V
-PLcom/android/server/display/DisplayPowerController$BrightnessReason;->toString()Ljava/lang/String;
-PLcom/android/server/display/DisplayPowerController$BrightnessReason;->toString(I)Ljava/lang/String;
-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
+HSPLcom/android/server/display/DisplayPowerController$BrightnessReason;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/server/display/DisplayPowerController$BrightnessReason;->reasonToString(I)Ljava/lang/String;
+HSPLcom/android/server/display/DisplayPowerController$BrightnessReason;->set(Lcom/android/server/display/DisplayPowerController$BrightnessReason;)V
+HSPLcom/android/server/display/DisplayPowerController$BrightnessReason;->setModifier(I)V
+HSPLcom/android/server/display/DisplayPowerController$BrightnessReason;->setReason(I)V
+HSPLcom/android/server/display/DisplayPowerController$BrightnessReason;->toString()Ljava/lang/String;
+HSPLcom/android/server/display/DisplayPowerController$BrightnessReason;->toString(I)Ljava/lang/String;
+HSPLcom/android/server/display/DisplayPowerController$DisplayControllerHandler;-><init>(Lcom/android/server/display/DisplayPowerController;Landroid/os/Looper;)V
+HSPLcom/android/server/display/DisplayPowerController$DisplayControllerHandler;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/display/DisplayPowerController$ScreenOffUnblocker;-><init>(Lcom/android/server/display/DisplayPowerController;)V
PLcom/android/server/display/DisplayPowerController$ScreenOffUnblocker;-><init>(Lcom/android/server/display/DisplayPowerController;Lcom/android/server/display/DisplayPowerController$1;)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$ScreenOnUnblocker;-><init>(Lcom/android/server/display/DisplayPowerController;Lcom/android/server/display/DisplayPowerController$1;)V
PLcom/android/server/display/DisplayPowerController$ScreenOnUnblocker;->onScreenOn()V
-PLcom/android/server/display/DisplayPowerController$SettingsObserver;-><init>(Lcom/android/server/display/DisplayPowerController;Landroid/os/Handler;)V
+HSPLcom/android/server/display/DisplayPowerController$SettingsObserver;-><init>(Lcom/android/server/display/DisplayPowerController;Landroid/os/Handler;)V
PLcom/android/server/display/DisplayPowerController$SettingsObserver;->onChange(ZLandroid/net/Uri;)V
-PLcom/android/server/display/DisplayPowerController;-><clinit>()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/DisplayBlanker;)V
-PLcom/android/server/display/DisplayPowerController;->access$100(Lcom/android/server/display/DisplayPowerController;)V
+HSPLcom/android/server/display/DisplayPowerController;-><clinit>()V
+HSPLcom/android/server/display/DisplayPowerController;-><init>(Landroid/content/Context;Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;Landroid/os/Handler;Landroid/hardware/SensorManager;Lcom/android/server/display/DisplayBlanker;)V
+HSPLcom/android/server/display/DisplayPowerController;->access$100(Lcom/android/server/display/DisplayPowerController;)V
PLcom/android/server/display/DisplayPowerController;->access$1000(Lcom/android/server/display/DisplayPowerController;)Lcom/android/server/display/DisplayPowerController$ScreenOffUnblocker;
-PLcom/android/server/display/DisplayPowerController;->access$1202(Lcom/android/server/display/DisplayPowerController;Landroid/hardware/display/BrightnessConfiguration;)Landroid/hardware/display/BrightnessConfiguration;
+HSPLcom/android/server/display/DisplayPowerController;->access$1202(Lcom/android/server/display/DisplayPowerController;Landroid/hardware/display/BrightnessConfiguration;)Landroid/hardware/display/BrightnessConfiguration;
PLcom/android/server/display/DisplayPowerController;->access$1800(Lcom/android/server/display/DisplayPowerController;Z)V
PLcom/android/server/display/DisplayPowerController;->access$1900(Lcom/android/server/display/DisplayPowerController;)Lcom/android/server/display/DisplayPowerController$DisplayControllerHandler;
-PLcom/android/server/display/DisplayPowerController;->access$400(Lcom/android/server/display/DisplayPowerController;)Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;
-PLcom/android/server/display/DisplayPowerController;->access$600(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController;->access$800(Lcom/android/server/display/DisplayPowerController;)Lcom/android/server/display/DisplayPowerController$ScreenOnUnblocker;
-PLcom/android/server/display/DisplayPowerController;->access$900(Lcom/android/server/display/DisplayPowerController;)V
-PLcom/android/server/display/DisplayPowerController;->animateScreenBrightness(II)V
-PLcom/android/server/display/DisplayPowerController;->animateScreenStateChange(IZ)V
+HSPLcom/android/server/display/DisplayPowerController;->access$400(Lcom/android/server/display/DisplayPowerController;)Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;
+HSPLcom/android/server/display/DisplayPowerController;->access$600(Lcom/android/server/display/DisplayPowerController;)V
+HSPLcom/android/server/display/DisplayPowerController;->animateScreenBrightness(II)V
+HSPLcom/android/server/display/DisplayPowerController;->animateScreenStateChange(IZ)V
PLcom/android/server/display/DisplayPowerController;->blockScreenOff()V
PLcom/android/server/display/DisplayPowerController;->blockScreenOn()V
-PLcom/android/server/display/DisplayPowerController;->clampAbsoluteBrightness(I)I
-PLcom/android/server/display/DisplayPowerController;->clampAutoBrightnessAdjustment(F)F
+HSPLcom/android/server/display/DisplayPowerController;->clampAbsoluteBrightness(I)I
+HSPLcom/android/server/display/DisplayPowerController;->clampAutoBrightnessAdjustment(F)F
PLcom/android/server/display/DisplayPowerController;->clampScreenBrightness(I)I
-PLcom/android/server/display/DisplayPowerController;->clampScreenBrightnessForVr(I)I
-PLcom/android/server/display/DisplayPowerController;->convertToNits(I)F
-PLcom/android/server/display/DisplayPowerController;->findDisplayLightSensor(Ljava/lang/String;)Landroid/hardware/Sensor;
-PLcom/android/server/display/DisplayPowerController;->getAutoBrightnessAdjustmentSetting()F
-PLcom/android/server/display/DisplayPowerController;->getScreenBrightnessForVrSetting()I
-PLcom/android/server/display/DisplayPowerController;->getScreenBrightnessSetting()I
+HSPLcom/android/server/display/DisplayPowerController;->clampScreenBrightnessForVr(I)I
+HSPLcom/android/server/display/DisplayPowerController;->convertToNits(I)F
+PLcom/android/server/display/DisplayPowerController;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/DisplayPowerController;->dumpLocal(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/DisplayPowerController;->findDisplayLightSensor(Ljava/lang/String;)Landroid/hardware/Sensor;
+HSPLcom/android/server/display/DisplayPowerController;->getAutoBrightnessAdjustmentSetting()F
+HSPLcom/android/server/display/DisplayPowerController;->getScreenBrightnessForVrSetting()I
+HSPLcom/android/server/display/DisplayPowerController;->getScreenBrightnessSetting()I
PLcom/android/server/display/DisplayPowerController;->handleSettingsChange(Z)V
-PLcom/android/server/display/DisplayPowerController;->initialize()V
+HSPLcom/android/server/display/DisplayPowerController;->initialize()V
PLcom/android/server/display/DisplayPowerController;->isProximitySensorAvailable()Z
-PLcom/android/server/display/DisplayPowerController;->logDisplayPolicyChanged(I)V
-PLcom/android/server/display/DisplayPowerController;->notifyBrightnessChanged(IZZ)V
+HPLcom/android/server/display/DisplayPowerController;->logDisplayPolicyChanged(I)V
+HSPLcom/android/server/display/DisplayPowerController;->notifyBrightnessChanged(IZZ)V
PLcom/android/server/display/DisplayPowerController;->putScreenBrightnessSetting(I)V
-HPLcom/android/server/display/DisplayPowerController;->requestPowerState(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Z)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;->setBrightnessConfiguration(Landroid/hardware/display/BrightnessConfiguration;)V
-PLcom/android/server/display/DisplayPowerController;->setProximitySensorEnabled(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
+HSPLcom/android/server/display/DisplayPowerController;->requestPowerState(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;Z)Z
+HSPLcom/android/server/display/DisplayPowerController;->sendOnStateChangedWithWakelock()V
+HSPLcom/android/server/display/DisplayPowerController;->sendUpdatePowerState()V
+HSPLcom/android/server/display/DisplayPowerController;->sendUpdatePowerStateLocked()V
+HSPLcom/android/server/display/DisplayPowerController;->setBrightnessConfiguration(Landroid/hardware/display/BrightnessConfiguration;)V
+HSPLcom/android/server/display/DisplayPowerController;->setProximitySensorEnabled(Z)V
+HSPLcom/android/server/display/DisplayPowerController;->setReportedScreenState(I)V
+HSPLcom/android/server/display/DisplayPowerController;->setScreenState(I)Z
+HSPLcom/android/server/display/DisplayPowerController;->setScreenState(IZ)Z
PLcom/android/server/display/DisplayPowerController;->unblockScreenOff()V
-PLcom/android/server/display/DisplayPowerController;->unblockScreenOn()V
-PLcom/android/server/display/DisplayPowerController;->updateAutoBrightnessAdjustment()Z
+HSPLcom/android/server/display/DisplayPowerController;->unblockScreenOn()V
+HSPLcom/android/server/display/DisplayPowerController;->updateAutoBrightnessAdjustment()Z
PLcom/android/server/display/DisplayPowerController;->updateBrightness()V
-PLcom/android/server/display/DisplayPowerController;->updatePowerState()V
-PLcom/android/server/display/DisplayPowerController;->updateUserSetScreenBrightness()Z
-PLcom/android/server/display/DisplayPowerState$1;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/display/DisplayPowerController;->updatePowerState()V
+HSPLcom/android/server/display/DisplayPowerController;->updateUserSetScreenBrightness()Z
+PLcom/android/server/display/DisplayPowerController;->updateWhiteBalance()V
+HSPLcom/android/server/display/DisplayPowerState$1;-><init>(Ljava/lang/String;)V
PLcom/android/server/display/DisplayPowerState$1;->setValue(Lcom/android/server/display/DisplayPowerState;F)V
-PLcom/android/server/display/DisplayPowerState$1;->setValue(Ljava/lang/Object;F)V
-PLcom/android/server/display/DisplayPowerState$2;-><init>(Ljava/lang/String;)V
-PLcom/android/server/display/DisplayPowerState$2;->setValue(Lcom/android/server/display/DisplayPowerState;I)V
-PLcom/android/server/display/DisplayPowerState$2;->setValue(Ljava/lang/Object;I)V
-PLcom/android/server/display/DisplayPowerState$3;-><init>(Lcom/android/server/display/DisplayPowerState;)V
-PLcom/android/server/display/DisplayPowerState$3;->run()V
-PLcom/android/server/display/DisplayPowerState$4;-><init>(Lcom/android/server/display/DisplayPowerState;)V
-PLcom/android/server/display/DisplayPowerState$4;->run()V
-PLcom/android/server/display/DisplayPowerState$PhotonicModulator;-><init>(Lcom/android/server/display/DisplayPowerState;)V
-PLcom/android/server/display/DisplayPowerState$PhotonicModulator;->run()V
-PLcom/android/server/display/DisplayPowerState$PhotonicModulator;->setState(II)Z
-PLcom/android/server/display/DisplayPowerState;-><clinit>()V
-PLcom/android/server/display/DisplayPowerState;-><init>(Lcom/android/server/display/DisplayBlanker;Lcom/android/server/display/ColorFade;)V
-PLcom/android/server/display/DisplayPowerState;->access$002(Lcom/android/server/display/DisplayPowerState;Z)Z
-PLcom/android/server/display/DisplayPowerState;->access$100(Lcom/android/server/display/DisplayPowerState;)I
+HPLcom/android/server/display/DisplayPowerState$1;->setValue(Ljava/lang/Object;F)V
+HSPLcom/android/server/display/DisplayPowerState$2;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/display/DisplayPowerState$2;->setValue(Lcom/android/server/display/DisplayPowerState;I)V
+HSPLcom/android/server/display/DisplayPowerState$2;->setValue(Ljava/lang/Object;I)V
+HSPLcom/android/server/display/DisplayPowerState$3;-><init>(Lcom/android/server/display/DisplayPowerState;)V
+HSPLcom/android/server/display/DisplayPowerState$3;->run()V
+HSPLcom/android/server/display/DisplayPowerState$4;-><init>(Lcom/android/server/display/DisplayPowerState;)V
+HPLcom/android/server/display/DisplayPowerState$4;->run()V
+HSPLcom/android/server/display/DisplayPowerState$PhotonicModulator;-><init>(Lcom/android/server/display/DisplayPowerState;)V
+PLcom/android/server/display/DisplayPowerState$PhotonicModulator;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/DisplayPowerState$PhotonicModulator;->run()V
+HSPLcom/android/server/display/DisplayPowerState$PhotonicModulator;->setState(II)Z
+HSPLcom/android/server/display/DisplayPowerState;-><clinit>()V
+HSPLcom/android/server/display/DisplayPowerState;-><init>(Lcom/android/server/display/DisplayBlanker;Lcom/android/server/display/ColorFade;)V
+HSPLcom/android/server/display/DisplayPowerState;->access$002(Lcom/android/server/display/DisplayPowerState;Z)Z
+HSPLcom/android/server/display/DisplayPowerState;->access$100(Lcom/android/server/display/DisplayPowerState;)I
PLcom/android/server/display/DisplayPowerState;->access$1000(Lcom/android/server/display/DisplayPowerState;)Lcom/android/server/display/ColorFade;
PLcom/android/server/display/DisplayPowerState;->access$1100()Ljava/lang/String;
PLcom/android/server/display/DisplayPowerState;->access$1202(Lcom/android/server/display/DisplayPowerState;Z)Z
-HPLcom/android/server/display/DisplayPowerState;->access$1300(Lcom/android/server/display/DisplayPowerState;)V
-PLcom/android/server/display/DisplayPowerState;->access$1400(Lcom/android/server/display/DisplayPowerState;)Lcom/android/server/display/DisplayBlanker;
-PLcom/android/server/display/DisplayPowerState;->access$200(Lcom/android/server/display/DisplayPowerState;)F
-PLcom/android/server/display/DisplayPowerState;->access$300(Lcom/android/server/display/DisplayPowerState;)I
-PLcom/android/server/display/DisplayPowerState;->access$400(Lcom/android/server/display/DisplayPowerState;)Lcom/android/server/display/DisplayPowerState$PhotonicModulator;
-PLcom/android/server/display/DisplayPowerState;->access$500()Z
-PLcom/android/server/display/DisplayPowerState;->access$602(Lcom/android/server/display/DisplayPowerState;Z)Z
-PLcom/android/server/display/DisplayPowerState;->access$700(Lcom/android/server/display/DisplayPowerState;)V
+HSPLcom/android/server/display/DisplayPowerState;->access$1300(Lcom/android/server/display/DisplayPowerState;)V
+HSPLcom/android/server/display/DisplayPowerState;->access$1400(Lcom/android/server/display/DisplayPowerState;)Lcom/android/server/display/DisplayBlanker;
+HSPLcom/android/server/display/DisplayPowerState;->access$200(Lcom/android/server/display/DisplayPowerState;)F
+HSPLcom/android/server/display/DisplayPowerState;->access$300(Lcom/android/server/display/DisplayPowerState;)I
+HSPLcom/android/server/display/DisplayPowerState;->access$400(Lcom/android/server/display/DisplayPowerState;)Lcom/android/server/display/DisplayPowerState$PhotonicModulator;
+HSPLcom/android/server/display/DisplayPowerState;->access$500()Z
+HSPLcom/android/server/display/DisplayPowerState;->access$602(Lcom/android/server/display/DisplayPowerState;Z)Z
+HSPLcom/android/server/display/DisplayPowerState;->access$700(Lcom/android/server/display/DisplayPowerState;)V
PLcom/android/server/display/DisplayPowerState;->access$802(Lcom/android/server/display/DisplayPowerState;Z)Z
PLcom/android/server/display/DisplayPowerState;->access$900(Lcom/android/server/display/DisplayPowerState;)Z
-PLcom/android/server/display/DisplayPowerState;->dismissColorFade()V
+HSPLcom/android/server/display/DisplayPowerState;->dismissColorFade()V
PLcom/android/server/display/DisplayPowerState;->dismissColorFadeResources()V
-PLcom/android/server/display/DisplayPowerState;->getColorFadeLevel()F
-PLcom/android/server/display/DisplayPowerState;->getScreenBrightness()I
-PLcom/android/server/display/DisplayPowerState;->getScreenState()I
-PLcom/android/server/display/DisplayPowerState;->invokeCleanListenerIfNeeded()V
-HPLcom/android/server/display/DisplayPowerState;->postScreenUpdateThreadSafe()V
+PLcom/android/server/display/DisplayPowerState;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/DisplayPowerState;->getColorFadeLevel()F
+HSPLcom/android/server/display/DisplayPowerState;->getScreenBrightness()I
+HSPLcom/android/server/display/DisplayPowerState;->getScreenState()I
+HSPLcom/android/server/display/DisplayPowerState;->invokeCleanListenerIfNeeded()V
+HSPLcom/android/server/display/DisplayPowerState;->postScreenUpdateThreadSafe()V
PLcom/android/server/display/DisplayPowerState;->prepareColorFade(Landroid/content/Context;I)Z
PLcom/android/server/display/DisplayPowerState;->scheduleColorFadeDraw()V
-PLcom/android/server/display/DisplayPowerState;->scheduleScreenUpdate()V
-PLcom/android/server/display/DisplayPowerState;->setColorFadeLevel(F)V
-PLcom/android/server/display/DisplayPowerState;->setScreenBrightness(I)V
+HSPLcom/android/server/display/DisplayPowerState;->scheduleScreenUpdate()V
+HSPLcom/android/server/display/DisplayPowerState;->setColorFadeLevel(F)V
+HSPLcom/android/server/display/DisplayPowerState;->setScreenBrightness(I)V
PLcom/android/server/display/DisplayPowerState;->setScreenState(I)V
-PLcom/android/server/display/DisplayPowerState;->waitUntilClean(Ljava/lang/Runnable;)Z
-PLcom/android/server/display/HysteresisLevels;-><init>([I[I[I)V
+HSPLcom/android/server/display/DisplayPowerState;->waitUntilClean(Ljava/lang/Runnable;)Z
+HSPLcom/android/server/display/HysteresisLevels;-><init>([I[I[I)V
+PLcom/android/server/display/HysteresisLevels;->dump(Ljava/io/PrintWriter;)V
PLcom/android/server/display/HysteresisLevels;->getBrighteningThreshold(F)F
PLcom/android/server/display/HysteresisLevels;->getDarkeningThreshold(F)F
PLcom/android/server/display/HysteresisLevels;->getReferenceLevel(F[F)F
-PLcom/android/server/display/HysteresisLevels;->setArrayFormat([IF)[F
+HSPLcom/android/server/display/HysteresisLevels;->setArrayFormat([IF)[F
HSPLcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;-><init>(Landroid/view/SurfaceControl$PhysicalDisplayInfo;)V
HSPLcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;->hasMatchingMode(Landroid/view/SurfaceControl$PhysicalDisplayInfo;)Z
+PLcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;->toString()Ljava/lang/String;
HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;-><init>(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;IIZIJLandroid/os/IBinder;)V
HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->run()V
HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1;->setDisplayBrightness(I)V
@@ -7785,60 +9338,65 @@ HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;-><init>(L
HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->access$000(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;)Lcom/android/server/lights/Light;
HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->access$100(Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;)Z
HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->applyPendingDisplayDeviceInfoChangesLocked()V
+PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->dumpLocked(Ljava/io/PrintWriter;)V
HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findDisplayInfoIndexLocked(I)I
HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findDisplayModeRecord(Landroid/view/SurfaceControl$PhysicalDisplayInfo;)Lcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->findMatchingModeIdLocked(I)I
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;->hasStableUniqueId()Z
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->onActivePhysicalDisplayModeChangedLocked(I)V
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->onActivePhysicalDisplayModeChangedLocked(I)V
PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->onOverlayChangedLocked()V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->requestColorModeLocked(I)Z
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->requestColorModeLocked(I)Z
HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->requestDisplayStateLocked(II)Ljava/lang/Runnable;
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->setDesiredDisplayConfigSpecs(IFF[I)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->setRequestedColorModeLocked(I)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateActiveModeLocked(I)Z
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateAllowedModesInternalLocked([I)Z
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateAllowedModesLocked([I)V
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->setDesiredDisplayConfigSpecs(IFF[I)V
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->setRequestedColorModeLocked(I)V
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateActiveModeLocked(I)Z
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateAllowedModesInternalLocked([I)Z
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateAllowedModesLocked([I)V
HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateColorModesLocked([II)Z
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateDesiredDisplayConfigSpecs(IFF)V
-PLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateDesiredDisplayConfigSpecsInternalLocked(IFF)Z
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateDesiredDisplayConfigSpecs(IFF)V
+HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateDesiredDisplayConfigSpecsInternalLocked(IFF)Z
HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updateDeviceInfoLocked()V
HSPLcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;->updatePhysicalDisplayInfoLocked([Landroid/view/SurfaceControl$PhysicalDisplayInfo;I[I[II)Z
HSPLcom/android/server/display/LocalDisplayAdapter$PhysicalDisplayEventReceiver;-><init>(Lcom/android/server/display/LocalDisplayAdapter;Landroid/os/Looper;)V
-PLcom/android/server/display/LocalDisplayAdapter$PhysicalDisplayEventReceiver;->onConfigChanged(JJI)V
+HSPLcom/android/server/display/LocalDisplayAdapter$PhysicalDisplayEventReceiver;->onConfigChanged(JJI)V
HSPLcom/android/server/display/LocalDisplayAdapter;-><init>(Lcom/android/server/display/DisplayManagerService$SyncRoot;Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/display/DisplayAdapter$Listener;)V
-PLcom/android/server/display/LocalDisplayAdapter;->access$500(Lcom/android/server/display/LocalDisplayAdapter;)Landroid/util/LongSparseArray;
+HSPLcom/android/server/display/LocalDisplayAdapter;->access$500(Lcom/android/server/display/LocalDisplayAdapter;)Landroid/util/LongSparseArray;
HSPLcom/android/server/display/LocalDisplayAdapter;->getOverlayContext()Landroid/content/Context;
HSPLcom/android/server/display/LocalDisplayAdapter;->getPowerModeForState(I)I
HSPLcom/android/server/display/LocalDisplayAdapter;->registerLocked()V
HSPLcom/android/server/display/LocalDisplayAdapter;->tryConnectDisplayLocked(J)V
HSPLcom/android/server/display/LogicalDisplay;-><init>(IILcom/android/server/display/DisplayDevice;)V
-PLcom/android/server/display/LogicalDisplay;->configureDisplayLocked(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/display/DisplayDevice;Z)V
-PLcom/android/server/display/LogicalDisplay;->getAllowedDisplayModesLocked()[I
-PLcom/android/server/display/LogicalDisplay;->getDisplayIdLocked()I
+HSPLcom/android/server/display/LogicalDisplay;->configureDisplayLocked(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/display/DisplayDevice;Z)V
+PLcom/android/server/display/LogicalDisplay;->dumpLocked(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/LogicalDisplay;->getAllowedDisplayModesLocked()[I
+HSPLcom/android/server/display/LogicalDisplay;->getDisplayIdLocked()I
HSPLcom/android/server/display/LogicalDisplay;->getDisplayInfoLocked()Landroid/view/DisplayInfo;
-PLcom/android/server/display/LogicalDisplay;->getInsets()Landroid/graphics/Rect;
+HSPLcom/android/server/display/LogicalDisplay;->getInsets()Landroid/graphics/Rect;
HSPLcom/android/server/display/LogicalDisplay;->getMaskingInsets(Lcom/android/server/display/DisplayDeviceInfo;)Landroid/graphics/Rect;
-PLcom/android/server/display/LogicalDisplay;->getNonOverrideDisplayInfoLocked(Landroid/view/DisplayInfo;)V
+HSPLcom/android/server/display/LogicalDisplay;->getNonOverrideDisplayInfoLocked(Landroid/view/DisplayInfo;)V
HSPLcom/android/server/display/LogicalDisplay;->getPrimaryDisplayDeviceLocked()Lcom/android/server/display/DisplayDevice;
-PLcom/android/server/display/LogicalDisplay;->hasContentLocked()Z
+HSPLcom/android/server/display/LogicalDisplay;->hasContentLocked()Z
HSPLcom/android/server/display/LogicalDisplay;->isValidLocked()Z
-PLcom/android/server/display/LogicalDisplay;->setAllowedDisplayModesLocked([I)V
-PLcom/android/server/display/LogicalDisplay;->setDisplayInfoOverrideFromWindowManagerLocked(Landroid/view/DisplayInfo;)Z
+HSPLcom/android/server/display/LogicalDisplay;->setAllowedDisplayModesLocked([I)V
+HSPLcom/android/server/display/LogicalDisplay;->setDisplayInfoOverrideFromWindowManagerLocked(Landroid/view/DisplayInfo;)Z
PLcom/android/server/display/LogicalDisplay;->setHasContentLocked(Z)V
HSPLcom/android/server/display/LogicalDisplay;->setRequestedColorModeLocked(I)V
HSPLcom/android/server/display/LogicalDisplay;->updateLocked(Ljava/util/List;)V
-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;-><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;)V
-PLcom/android/server/display/OverlayDisplayAdapter;->access$000(Lcom/android/server/display/OverlayDisplayAdapter;)V
-PLcom/android/server/display/OverlayDisplayAdapter;->registerLocked()V
-PLcom/android/server/display/OverlayDisplayAdapter;->updateOverlayDisplayDevices()V
-PLcom/android/server/display/OverlayDisplayAdapter;->updateOverlayDisplayDevicesLocked()V
+HSPLcom/android/server/display/OverlayDisplayAdapter$1$1;-><init>(Lcom/android/server/display/OverlayDisplayAdapter$1;Landroid/os/Handler;)V
+HSPLcom/android/server/display/OverlayDisplayAdapter$1;-><init>(Lcom/android/server/display/OverlayDisplayAdapter;)V
+HSPLcom/android/server/display/OverlayDisplayAdapter$1;->run()V
+HSPLcom/android/server/display/OverlayDisplayAdapter;-><clinit>()V
+HSPLcom/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;)V
+HSPLcom/android/server/display/OverlayDisplayAdapter;->access$000(Lcom/android/server/display/OverlayDisplayAdapter;)V
+PLcom/android/server/display/OverlayDisplayAdapter;->dumpLocked(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/OverlayDisplayAdapter;->registerLocked()V
+HSPLcom/android/server/display/OverlayDisplayAdapter;->updateOverlayDisplayDevices()V
+HSPLcom/android/server/display/OverlayDisplayAdapter;->updateOverlayDisplayDevicesLocked()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;Ljava/lang/String;)V
+HSPLcom/android/server/display/PersistentDataStore$BrightnessConfigurations;->getBrightnessConfiguration(I)Landroid/hardware/display/BrightnessConfiguration;
HSPLcom/android/server/display/PersistentDataStore$BrightnessConfigurations;->loadFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
PLcom/android/server/display/PersistentDataStore$BrightnessConfigurations;->setBrightnessConfigurationForUser(Landroid/hardware/display/BrightnessConfiguration;ILjava/lang/String;)Z
HSPLcom/android/server/display/PersistentDataStore$Injector;-><init>()V
@@ -7846,13 +9404,15 @@ HSPLcom/android/server/display/PersistentDataStore$Injector;->openRead()Ljava/io
HSPLcom/android/server/display/PersistentDataStore$StableDeviceValues;-><init>()V
HSPLcom/android/server/display/PersistentDataStore$StableDeviceValues;-><init>(Lcom/android/server/display/PersistentDataStore$1;)V
HSPLcom/android/server/display/PersistentDataStore$StableDeviceValues;->access$100(Lcom/android/server/display/PersistentDataStore$StableDeviceValues;)Landroid/graphics/Point;
+PLcom/android/server/display/PersistentDataStore$StableDeviceValues;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
HSPLcom/android/server/display/PersistentDataStore$StableDeviceValues;->getDisplaySize()Landroid/graphics/Point;
HSPLcom/android/server/display/PersistentDataStore$StableDeviceValues;->loadFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
HSPLcom/android/server/display/PersistentDataStore$StableDeviceValues;->loadIntValue(Lorg/xmlpull/v1/XmlPullParser;)I
HSPLcom/android/server/display/PersistentDataStore;-><init>()V
HSPLcom/android/server/display/PersistentDataStore;-><init>(Lcom/android/server/display/PersistentDataStore$Injector;)V
HSPLcom/android/server/display/PersistentDataStore;->clearState()V
-PLcom/android/server/display/PersistentDataStore;->getBrightnessConfiguration(I)Landroid/hardware/display/BrightnessConfiguration;
+PLcom/android/server/display/PersistentDataStore;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/PersistentDataStore;->getBrightnessConfiguration(I)Landroid/hardware/display/BrightnessConfiguration;
HSPLcom/android/server/display/PersistentDataStore;->getColorMode(Lcom/android/server/display/DisplayDevice;)I
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;
@@ -7861,9 +9421,9 @@ HSPLcom/android/server/display/PersistentDataStore;->loadDisplaysFromXml(Lorg/xm
HSPLcom/android/server/display/PersistentDataStore;->loadFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
HSPLcom/android/server/display/PersistentDataStore;->loadIfNeeded()V
HSPLcom/android/server/display/PersistentDataStore;->loadRememberedWifiDisplaysFromXml(Lorg/xmlpull/v1/XmlPullParser;)V
-PLcom/android/server/display/RampAnimator$1;-><init>(Lcom/android/server/display/RampAnimator;)V
-PLcom/android/server/display/RampAnimator$1;->run()V
-PLcom/android/server/display/RampAnimator;-><init>(Ljava/lang/Object;Landroid/util/IntProperty;)V
+HSPLcom/android/server/display/RampAnimator$1;-><init>(Lcom/android/server/display/RampAnimator;)V
+HPLcom/android/server/display/RampAnimator$1;->run()V
+HSPLcom/android/server/display/RampAnimator;-><init>(Ljava/lang/Object;Landroid/util/IntProperty;)V
PLcom/android/server/display/RampAnimator;->access$000(Lcom/android/server/display/RampAnimator;)Landroid/view/Choreographer;
PLcom/android/server/display/RampAnimator;->access$100(Lcom/android/server/display/RampAnimator;)J
PLcom/android/server/display/RampAnimator;->access$1000(Lcom/android/server/display/RampAnimator;)Lcom/android/server/display/RampAnimator$Listener;
@@ -7878,46 +9438,55 @@ PLcom/android/server/display/RampAnimator;->access$600(Lcom/android/server/displ
PLcom/android/server/display/RampAnimator;->access$700(Lcom/android/server/display/RampAnimator;)Landroid/util/IntProperty;
PLcom/android/server/display/RampAnimator;->access$800(Lcom/android/server/display/RampAnimator;)V
PLcom/android/server/display/RampAnimator;->access$902(Lcom/android/server/display/RampAnimator;Z)Z
-PLcom/android/server/display/RampAnimator;->animateTo(II)Z
-PLcom/android/server/display/RampAnimator;->isAnimating()Z
+HSPLcom/android/server/display/RampAnimator;->animateTo(II)Z
+HSPLcom/android/server/display/RampAnimator;->isAnimating()Z
PLcom/android/server/display/RampAnimator;->postAnimationCallback()V
-PLcom/android/server/display/RampAnimator;->setListener(Lcom/android/server/display/RampAnimator$Listener;)V
+HSPLcom/android/server/display/RampAnimator;->setListener(Lcom/android/server/display/RampAnimator$Listener;)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;)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;)V
+PLcom/android/server/display/VirtualDisplayAdapter;->dumpLocked(Ljava/io/PrintWriter;)V
HSPLcom/android/server/display/VirtualDisplayAdapter;->registerLocked()V
PLcom/android/server/display/color/-$$Lambda$ColorDisplayService$3e7BuPerYILI5JPZm17hU11tDtY;-><init>(Lcom/android/server/display/color/DisplayTransformManager;Lcom/android/server/display/color/TintController;)V
-PLcom/android/server/display/color/-$$Lambda$ColorDisplayService$3e7BuPerYILI5JPZm17hU11tDtY;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V
+HPLcom/android/server/display/color/-$$Lambda$ColorDisplayService$3e7BuPerYILI5JPZm17hU11tDtY;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V
PLcom/android/server/display/color/AppSaturationController$SaturationController;-><init>()V
PLcom/android/server/display/color/AppSaturationController$SaturationController;-><init>(Lcom/android/server/display/color/AppSaturationController$1;)V
PLcom/android/server/display/color/AppSaturationController$SaturationController;->access$000(Lcom/android/server/display/color/AppSaturationController$SaturationController;Ljava/lang/ref/WeakReference;)Z
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$SaturationController;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/color/AppSaturationController;-><clinit>()V
+HSPLcom/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;->dump(Ljava/io/PrintWriter;)V
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;
+PLcom/android/server/display/color/AppSaturationController;->setSaturationLevel(Ljava/lang/String;II)Z
PLcom/android/server/display/color/ColorDisplayService$2;-><init>(Lcom/android/server/display/color/ColorDisplayService;Landroid/os/Handler;)V
PLcom/android/server/display/color/ColorDisplayService$2;->onChange(ZLandroid/net/Uri;)V
PLcom/android/server/display/color/ColorDisplayService$3;-><init>(Lcom/android/server/display/color/ColorDisplayService;Lcom/android/server/display/color/TintController;[FLcom/android/server/display/color/DisplayTransformManager;)V
PLcom/android/server/display/color/ColorDisplayService$3;->onAnimationCancel(Landroid/animation/Animator;)V
PLcom/android/server/display/color/ColorDisplayService$3;->onAnimationEnd(Landroid/animation/Animator;)V
-PLcom/android/server/display/color/ColorDisplayService$BinderService;-><init>(Lcom/android/server/display/color/ColorDisplayService;)V
+HSPLcom/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$BinderService;->getNightDisplayAutoMode()I
PLcom/android/server/display/color/ColorDisplayService$BinderService;->getNightDisplayAutoModeRaw()I
+PLcom/android/server/display/color/ColorDisplayService$BinderService;->getNightDisplayColorTemperature()I
PLcom/android/server/display/color/ColorDisplayService$BinderService;->getNightDisplayCustomEndTime()Landroid/hardware/display/Time;
PLcom/android/server/display/color/ColorDisplayService$BinderService;->getNightDisplayCustomStartTime()Landroid/hardware/display/Time;
PLcom/android/server/display/color/ColorDisplayService$BinderService;->isDeviceColorManaged()Z
PLcom/android/server/display/color/ColorDisplayService$BinderService;->isNightDisplayActivated()Z
+PLcom/android/server/display/color/ColorDisplayService$BinderService;->setAppSaturationLevel(Ljava/lang/String;I)Z
PLcom/android/server/display/color/ColorDisplayService$BinderService;->setSaturationLevel(I)Z
-PLcom/android/server/display/color/ColorDisplayService$ColorDisplayServiceInternal;-><init>(Lcom/android/server/display/color/ColorDisplayService;)V
+HSPLcom/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;->isDisplayWhiteBalanceEnabled()Z
-PLcom/android/server/display/color/ColorDisplayService$ColorDisplayServiceInternal;->setDisplayWhiteBalanceListener(Lcom/android/server/display/color/ColorDisplayService$DisplayWhiteBalanceListener;)Z
-PLcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;-><init>()V
-PLcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;-><init>(Lcom/android/server/display/color/ColorDisplayService$1;)V
-PLcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/display/color/ColorDisplayService$ColorDisplayServiceInternal;->isDisplayWhiteBalanceEnabled()Z
+HPLcom/android/server/display/color/ColorDisplayService$ColorDisplayServiceInternal;->resetDisplayWhiteBalanceColorTemperature()Z
+HPLcom/android/server/display/color/ColorDisplayService$ColorDisplayServiceInternal;->setDisplayWhiteBalanceColorTemperature(I)Z
+HSPLcom/android/server/display/color/ColorDisplayService$ColorDisplayServiceInternal;->setDisplayWhiteBalanceListener(Lcom/android/server/display/color/ColorDisplayService$DisplayWhiteBalanceListener;)Z
+HSPLcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;-><init>()V
+HSPLcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;-><init>(Lcom/android/server/display/color/ColorDisplayService$1;)V
+HPLcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;->evaluate(F[F[F)[F
PLcom/android/server/display/color/ColorDisplayService$CustomNightDisplayAutoMode$1;-><init>(Lcom/android/server/display/color/ColorDisplayService$CustomNightDisplayAutoMode;Lcom/android/server/display/color/ColorDisplayService;)V
PLcom/android/server/display/color/ColorDisplayService$CustomNightDisplayAutoMode$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
@@ -7929,8 +9498,8 @@ PLcom/android/server/display/color/ColorDisplayService$CustomNightDisplayAutoMod
PLcom/android/server/display/color/ColorDisplayService$CustomNightDisplayAutoMode;->updateNextAlarm(Ljava/lang/Boolean;Ljava/time/LocalDateTime;)V
PLcom/android/server/display/color/ColorDisplayService$NightDisplayAutoMode;-><init>(Lcom/android/server/display/color/ColorDisplayService;)V
PLcom/android/server/display/color/ColorDisplayService$NightDisplayAutoMode;-><init>(Lcom/android/server/display/color/ColorDisplayService;Lcom/android/server/display/color/ColorDisplayService$1;)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$1;)V
+HSPLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;-><init>(Lcom/android/server/display/color/ColorDisplayService;)V
+HSPLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;-><init>(Lcom/android/server/display/color/ColorDisplayService;Lcom/android/server/display/color/ColorDisplayService$1;)V
PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->clampNightDisplayColorTemperature(I)I
PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->getColorTemperatureSetting()I
PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->getLevel()I
@@ -7942,23 +9511,23 @@ PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintControlle
PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->setActivated(Ljava/lang/Boolean;Ljava/time/LocalDateTime;)V
PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->setMatrix(I)V
PLcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;->setUp(Landroid/content/Context;Z)V
-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$1;)V
+HSPLcom/android/server/display/color/ColorDisplayService$TintHandler;-><init>(Lcom/android/server/display/color/ColorDisplayService;Landroid/os/Looper;)V
+HSPLcom/android/server/display/color/ColorDisplayService$TintHandler;-><init>(Lcom/android/server/display/color/ColorDisplayService;Landroid/os/Looper;Lcom/android/server/display/color/ColorDisplayService$1;)V
PLcom/android/server/display/color/ColorDisplayService$TintHandler;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/display/color/ColorDisplayService$TintValueAnimator;-><init>()V
PLcom/android/server/display/color/ColorDisplayService$TintValueAnimator;->getMax()[F
PLcom/android/server/display/color/ColorDisplayService$TintValueAnimator;->getMin()[F
-PLcom/android/server/display/color/ColorDisplayService$TintValueAnimator;->ofMatrix(Lcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;[Ljava/lang/Object;)Lcom/android/server/display/color/ColorDisplayService$TintValueAnimator;
+HPLcom/android/server/display/color/ColorDisplayService$TintValueAnimator;->ofMatrix(Lcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;[Ljava/lang/Object;)Lcom/android/server/display/color/ColorDisplayService$TintValueAnimator;
HPLcom/android/server/display/color/ColorDisplayService$TintValueAnimator;->updateMinMaxComponents()V
-PLcom/android/server/display/color/ColorDisplayService;-><clinit>()V
-PLcom/android/server/display/color/ColorDisplayService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/display/color/ColorDisplayService;-><clinit>()V
+HSPLcom/android/server/display/color/ColorDisplayService;-><init>(Landroid/content/Context;)V
PLcom/android/server/display/color/ColorDisplayService;->access$1100(Lcom/android/server/display/color/ColorDisplayService;)Landroid/hardware/display/Time;
PLcom/android/server/display/color/ColorDisplayService;->access$1300(Lcom/android/server/display/color/ColorDisplayService;)Landroid/hardware/display/Time;
PLcom/android/server/display/color/ColorDisplayService;->access$2200(Lcom/android/server/display/color/ColorDisplayService;)Ljava/time/LocalDateTime;
PLcom/android/server/display/color/ColorDisplayService;->access$2400(Lcom/android/server/display/color/ColorDisplayService;)Landroid/os/Handler;
PLcom/android/server/display/color/ColorDisplayService;->access$2500(Lcom/android/server/display/color/ColorDisplayService;)Lcom/android/server/display/color/ColorDisplayService$NightDisplayAutoMode;
-PLcom/android/server/display/color/ColorDisplayService;->access$2602(Lcom/android/server/display/color/ColorDisplayService;Lcom/android/server/display/color/ColorDisplayService$DisplayWhiteBalanceListener;)Lcom/android/server/display/color/ColorDisplayService$DisplayWhiteBalanceListener;
-PLcom/android/server/display/color/ColorDisplayService;->access$2700(Lcom/android/server/display/color/ColorDisplayService;)Z
+HSPLcom/android/server/display/color/ColorDisplayService;->access$2602(Lcom/android/server/display/color/ColorDisplayService;Lcom/android/server/display/color/ColorDisplayService$DisplayWhiteBalanceListener;)Lcom/android/server/display/color/ColorDisplayService$DisplayWhiteBalanceListener;
+HSPLcom/android/server/display/color/ColorDisplayService;->access$2700(Lcom/android/server/display/color/ColorDisplayService;)Z
PLcom/android/server/display/color/ColorDisplayService;->access$2800(Lcom/android/server/display/color/ColorDisplayService;)Lcom/android/server/display/color/AppSaturationController;
PLcom/android/server/display/color/ColorDisplayService;->access$2900(Lcom/android/server/display/color/ColorDisplayService;)Lcom/android/server/display/color/TintController;
PLcom/android/server/display/color/ColorDisplayService;->access$300(Lcom/android/server/display/color/ColorDisplayService;)I
@@ -7967,9 +9536,9 @@ PLcom/android/server/display/color/ColorDisplayService;->access$700(Lcom/android
PLcom/android/server/display/color/ColorDisplayService;->access$800(Lcom/android/server/display/color/ColorDisplayService;)Lcom/android/server/display/color/ColorDisplayService$NightDisplayTintController;
PLcom/android/server/display/color/ColorDisplayService;->access$900(Lcom/android/server/display/color/ColorDisplayService;)I
PLcom/android/server/display/color/ColorDisplayService;->applyTint(Lcom/android/server/display/color/TintController;Z)V
+PLcom/android/server/display/color/ColorDisplayService;->dumpInternal(Ljava/io/PrintWriter;)V
PLcom/android/server/display/color/ColorDisplayService;->getColorModeInternal()I
PLcom/android/server/display/color/ColorDisplayService;->getCompositionColorSpace(I)I
-PLcom/android/server/display/color/ColorDisplayService;->getCurrentColorModeFromSystemProperties()I
PLcom/android/server/display/color/ColorDisplayService;->getDateTimeAfter(Ljava/time/LocalTime;Ljava/time/LocalDateTime;)Ljava/time/LocalDateTime;
PLcom/android/server/display/color/ColorDisplayService;->getDateTimeBefore(Ljava/time/LocalTime;Ljava/time/LocalDateTime;)Ljava/time/LocalDateTime;
PLcom/android/server/display/color/ColorDisplayService;->getNightDisplayAutoModeInternal()I
@@ -7981,80 +9550,162 @@ PLcom/android/server/display/color/ColorDisplayService;->isAccessibilityEnabled(
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;->isDisplayWhiteBalanceSettingEnabled()Z
+HSPLcom/android/server/display/color/ColorDisplayService;->isDisplayWhiteBalanceSettingEnabled()Z
PLcom/android/server/display/color/ColorDisplayService;->isUserSetupCompleted(Landroid/content/ContentResolver;I)Z
PLcom/android/server/display/color/ColorDisplayService;->lambda$applyTint$0(Lcom/android/server/display/color/DisplayTransformManager;Lcom/android/server/display/color/TintController;Landroid/animation/ValueAnimator;)V
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
+HSPLcom/android/server/display/color/ColorDisplayService;->onBootPhase(I)V
PLcom/android/server/display/color/ColorDisplayService;->onDisplayColorModeChanged(I)V
PLcom/android/server/display/color/ColorDisplayService;->onNightDisplayAutoModeChanged(I)V
-PLcom/android/server/display/color/ColorDisplayService;->onStart()V
+HSPLcom/android/server/display/color/ColorDisplayService;->onStart()V
PLcom/android/server/display/color/ColorDisplayService;->onStartUser(I)V
PLcom/android/server/display/color/ColorDisplayService;->onUserChanged(I)V
PLcom/android/server/display/color/ColorDisplayService;->setUp()V
PLcom/android/server/display/color/ColorDisplayService;->setUpDisplayCompositionColorSpaces(Landroid/content/res/Resources;)V
-PLcom/android/server/display/color/DisplayTransformManager;-><clinit>()V
-PLcom/android/server/display/color/DisplayTransformManager;-><init>()V
-PLcom/android/server/display/color/DisplayTransformManager;->applyColorMatrix([F)V
+PLcom/android/server/display/color/ColorDisplayService;->updateDisplayWhiteBalanceStatus()V
+HSPLcom/android/server/display/color/DisplayTransformManager;-><clinit>()V
+HSPLcom/android/server/display/color/DisplayTransformManager;-><init>()V
+HPLcom/android/server/display/color/DisplayTransformManager;->applyColorMatrix([F)V
PLcom/android/server/display/color/DisplayTransformManager;->applySaturation(F)V
-PLcom/android/server/display/color/DisplayTransformManager;->computeColorMatrixLocked()[F
+HPLcom/android/server/display/color/DisplayTransformManager;->computeColorMatrixLocked()[F
PLcom/android/server/display/color/DisplayTransformManager;->getColorMatrix(I)[F
PLcom/android/server/display/color/DisplayTransformManager;->isDeviceColorManaged()Z
PLcom/android/server/display/color/DisplayTransformManager;->needsLinearColorMatrix()Z
PLcom/android/server/display/color/DisplayTransformManager;->needsLinearColorMatrix(I)Z
-PLcom/android/server/display/color/DisplayTransformManager;->setColorMatrix(I[F)V
+HPLcom/android/server/display/color/DisplayTransformManager;->setColorMatrix(I[F)V
PLcom/android/server/display/color/DisplayTransformManager;->setColorMode(I[FI)Z
PLcom/android/server/display/color/DisplayTransformManager;->setDaltonizerMode(I)V
PLcom/android/server/display/color/DisplayTransformManager;->setDisplayColor(II)V
PLcom/android/server/display/color/DisplayTransformManager;->updateConfiguration()V
-PLcom/android/server/display/color/DisplayWhiteBalanceTintController;-><init>()V
+HSPLcom/android/server/display/color/DisplayWhiteBalanceTintController;-><init>()V
+PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->getDisplayColorSpaceFromSurfaceControl()Landroid/graphics/ColorSpace$Rgb;
+HPLcom/android/server/display/color/DisplayWhiteBalanceTintController;->getLevel()I
+PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->getMatrix()[F
PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->isAvailable(Landroid/content/Context;)Z
-PLcom/android/server/display/color/GlobalSaturationTintController;-><init>()V
+PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->isColorMatrixCoeffValid(F)Z
+PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->isColorMatrixValid([F)Z
+PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->makeRgbColorSpaceFromXYZ([F[F)Landroid/graphics/ColorSpace$Rgb;
+HPLcom/android/server/display/color/DisplayWhiteBalanceTintController;->setMatrix(I)V
+PLcom/android/server/display/color/DisplayWhiteBalanceTintController;->setUp(Landroid/content/Context;Z)V
+HSPLcom/android/server/display/color/GlobalSaturationTintController;-><init>()V
PLcom/android/server/display/color/GlobalSaturationTintController;->getLevel()I
PLcom/android/server/display/color/GlobalSaturationTintController;->getMatrix()[F
+PLcom/android/server/display/color/GlobalSaturationTintController;->isAvailable(Landroid/content/Context;)Z
PLcom/android/server/display/color/GlobalSaturationTintController;->setMatrix(I)V
-PLcom/android/server/display/color/TintController;-><init>()V
+HSPLcom/android/server/display/color/TintController;-><init>()V
PLcom/android/server/display/color/TintController;->cancelAnimator()V
-PLcom/android/server/display/color/TintController;->isActivated()Z
+HSPLcom/android/server/display/color/TintController;->isActivated()Z
PLcom/android/server/display/color/TintController;->isActivatedStateNotSet()Z
HPLcom/android/server/display/color/TintController;->matrixToString([FI)Ljava/lang/String;
PLcom/android/server/display/color/TintController;->setActivated(Ljava/lang/Boolean;)V
PLcom/android/server/display/color/TintController;->setAnimator(Lcom/android/server/display/color/ColorDisplayService$TintValueAnimator;)V
-PLcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;-><init>(Ljava/lang/String;IF)V
-PLcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;->validateArguments(F)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
-PLcom/android/server/display/utils/History;-><init>(I)V
-PLcom/android/server/display/utils/History;-><init>(ILjava/time/Clock;)V
-PLcom/android/server/display/utils/Plog$SystemPlog;-><init>(Ljava/lang/String;)V
-PLcom/android/server/display/utils/Plog;-><init>()V
-PLcom/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/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
-PLcom/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/display/whitebalance/DisplayWhiteBalanceSettings$DisplayWhiteBalanceSettingsHandler;-><init>(Lcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;Landroid/os/Looper;)V
-PLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;->setActive(Z)V
-PLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;->setEnabled(Z)V
-PLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;->validateArguments(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;-><init>(Ljava/lang/String;IF)V
+HSPLcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;->antiderivative(F)F
+HSPLcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;->calculateIntegral(FF)F
+PLcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;->filter(JLcom/android/server/display/utils/RollingBuffer;)F
+HSPLcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;->getWeights(JLcom/android/server/display/utils/RollingBuffer;)[F
+HSPLcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;->validateArguments(F)V
+HSPLcom/android/server/display/utils/AmbientFilter;-><init>(Ljava/lang/String;I)V
+HSPLcom/android/server/display/utils/AmbientFilter;->addValue(JF)Z
+PLcom/android/server/display/utils/AmbientFilter;->clear()V
+PLcom/android/server/display/utils/AmbientFilter;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/utils/AmbientFilter;->getEstimate(J)F
+HSPLcom/android/server/display/utils/AmbientFilter;->truncateOldValues(J)V
+HSPLcom/android/server/display/utils/AmbientFilter;->validateArguments(I)V
+HSPLcom/android/server/display/utils/AmbientFilterFactory;->createAmbientFilter(Ljava/lang/String;IF)Lcom/android/server/display/utils/AmbientFilter;
+HSPLcom/android/server/display/utils/AmbientFilterFactory;->createBrightnessFilter(Ljava/lang/String;Landroid/content/res/Resources;)Lcom/android/server/display/utils/AmbientFilter;
+HSPLcom/android/server/display/utils/AmbientFilterFactory;->createColorTemperatureFilter(Ljava/lang/String;Landroid/content/res/Resources;)Lcom/android/server/display/utils/AmbientFilter;
+HSPLcom/android/server/display/utils/AmbientFilterFactory;->getFloat(Landroid/content/res/Resources;I)F
+HSPLcom/android/server/display/utils/History;-><init>(I)V
+HSPLcom/android/server/display/utils/History;-><init>(ILjava/time/Clock;)V
+HPLcom/android/server/display/utils/History;->add(F)V
+HPLcom/android/server/display/utils/History;->toString()Ljava/lang/String;
+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;
+HSPLcom/android/server/display/utils/RollingBuffer;-><init>()V
+HSPLcom/android/server/display/utils/RollingBuffer;->add(JF)V
+HSPLcom/android/server/display/utils/RollingBuffer;->clear()V
+PLcom/android/server/display/utils/RollingBuffer;->expandBuffer()V
+HPLcom/android/server/display/utils/RollingBuffer;->getLatestIndexBefore(J)I
+HSPLcom/android/server/display/utils/RollingBuffer;->getTime(I)J
+HSPLcom/android/server/display/utils/RollingBuffer;->getValue(I)F
+HSPLcom/android/server/display/utils/RollingBuffer;->isEmpty()Z
+HSPLcom/android/server/display/utils/RollingBuffer;->offsetOf(I)I
+HSPLcom/android/server/display/utils/RollingBuffer;->size()I
+PLcom/android/server/display/utils/RollingBuffer;->toString()Ljava/lang/String;
+HSPLcom/android/server/display/utils/RollingBuffer;->truncate(J)V
+HSPLcom/android/server/display/whitebalance/AmbientSensor$1;-><init>(Lcom/android/server/display/whitebalance/AmbientSensor;)V
+PLcom/android/server/display/whitebalance/AmbientSensor$1;->onAccuracyChanged(Landroid/hardware/Sensor;I)V
+HPLcom/android/server/display/whitebalance/AmbientSensor$1;->onSensorChanged(Landroid/hardware/SensorEvent;)V
+HSPLcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;-><init>(Landroid/os/Handler;Landroid/hardware/SensorManager;I)V
+PLcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;->setCallbacks(Lcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor$Callbacks;)Z
+PLcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;->update(F)V
+HSPLcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor;-><init>(Landroid/os/Handler;Landroid/hardware/SensorManager;Ljava/lang/String;I)V
+PLcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor;->setCallbacks(Lcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor$Callbacks;)Z
+HPLcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor;->update(F)V
+HSPLcom/android/server/display/whitebalance/AmbientSensor;-><init>(Ljava/lang/String;Landroid/os/Handler;Landroid/hardware/SensorManager;I)V
+PLcom/android/server/display/whitebalance/AmbientSensor;->access$000(Lcom/android/server/display/whitebalance/AmbientSensor;F)V
+PLcom/android/server/display/whitebalance/AmbientSensor;->disable()Z
+PLcom/android/server/display/whitebalance/AmbientSensor;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/whitebalance/AmbientSensor;->enable()Z
+HPLcom/android/server/display/whitebalance/AmbientSensor;->handleNewEvent(F)V
+PLcom/android/server/display/whitebalance/AmbientSensor;->setEnabled(Z)Z
+PLcom/android/server/display/whitebalance/AmbientSensor;->startListening()V
+PLcom/android/server/display/whitebalance/AmbientSensor;->stopListening()V
+HSPLcom/android/server/display/whitebalance/AmbientSensor;->validateArguments(Landroid/os/Handler;Landroid/hardware/SensorManager;I)V
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceController;-><init>(Lcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;Lcom/android/server/display/utils/AmbientFilter;Lcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor;Lcom/android/server/display/utils/AmbientFilter;Lcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;[F[FF[F[FF[F[F)V
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceController;->disable()Z
+PLcom/android/server/display/whitebalance/DisplayWhiteBalanceController;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/whitebalance/DisplayWhiteBalanceController;->enable()Z
+PLcom/android/server/display/whitebalance/DisplayWhiteBalanceController;->onAmbientBrightnessChanged(F)V
+HPLcom/android/server/display/whitebalance/DisplayWhiteBalanceController;->onAmbientColorTemperatureChanged(F)V
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceController;->setCallbacks(Lcom/android/server/display/whitebalance/DisplayWhiteBalanceController$Callbacks;)Z
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceController;->setEnabled(Z)Z
+HPLcom/android/server/display/whitebalance/DisplayWhiteBalanceController;->updateAmbientColorTemperature()V
+HPLcom/android/server/display/whitebalance/DisplayWhiteBalanceController;->updateDisplayColorTemperature()V
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceController;->validateArguments(Lcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;Lcom/android/server/display/utils/AmbientFilter;Lcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor;Lcom/android/server/display/utils/AmbientFilter;Lcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;)V
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceFactory;->create(Landroid/os/Handler;Landroid/hardware/SensorManager;Landroid/content/res/Resources;)Lcom/android/server/display/whitebalance/DisplayWhiteBalanceController;
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceFactory;->createBrightnessSensor(Landroid/os/Handler;Landroid/hardware/SensorManager;Landroid/content/res/Resources;)Lcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceFactory;->createColorTemperatureSensor(Landroid/os/Handler;Landroid/hardware/SensorManager;Landroid/content/res/Resources;)Lcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor;
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceFactory;->createThrottler(Landroid/content/res/Resources;)Lcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceFactory;->getFloat(Landroid/content/res/Resources;I)F
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceFactory;->getFloatArray(Landroid/content/res/Resources;I)[F
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings$DisplayWhiteBalanceSettingsHandler;-><init>(Lcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;Landroid/os/Looper;)V
+PLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings$DisplayWhiteBalanceSettingsHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+PLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;->access$000(Lcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;Z)V
+PLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;->access$100(Lcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;)Lcom/android/server/display/color/ColorDisplayService$ColorDisplayServiceInternal;
+PLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;->access$200(Lcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;Z)V
+PLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;->isEnabled()Z
+PLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;->onDisplayWhiteBalanceStatusChanged(Z)V
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;->setActive(Z)V
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;->setCallbacks(Lcom/android/server/display/whitebalance/DisplayWhiteBalanceController$Callbacks;)Z
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;->setEnabled(Z)V
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;->validateArguments(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;-><init>(II[F[F[F)V
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->clear()V
+PLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->computeThresholds(F)V
+PLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->getHighestIndexBefore(F[F)I
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->isValidMapping([F[F)Z
+HPLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->throttle(F)Z
+HPLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->tooClose(F)Z
+HPLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->tooSoon(F)Z
+HSPLcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;->validateArguments(FF[F[F[F)V
PLcom/android/server/dreams/-$$Lambda$DreamManagerService$f7cEVKQvPKMm_Ir9dq0e6PSOkX8;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Binder;Landroid/content/ComponentName;ZZILandroid/os/PowerManager$WakeLock;)V
PLcom/android/server/dreams/-$$Lambda$DreamManagerService$f7cEVKQvPKMm_Ir9dq0e6PSOkX8;->run()V
PLcom/android/server/dreams/-$$Lambda$gXC4nM2f5GMCBX0ED45DCQQjqv0;-><init>(Lcom/android/server/dreams/DreamController$DreamRecord;)V
PLcom/android/server/dreams/-$$Lambda$gXC4nM2f5GMCBX0ED45DCQQjqv0;->run()V
-PLcom/android/server/dreams/DreamController$1;-><init>(Lcom/android/server/dreams/DreamController;)V
+HSPLcom/android/server/dreams/DreamController$1;-><init>(Lcom/android/server/dreams/DreamController;)V
PLcom/android/server/dreams/DreamController$1;->run()V
-PLcom/android/server/dreams/DreamController$2;-><init>(Lcom/android/server/dreams/DreamController;)V
+HSPLcom/android/server/dreams/DreamController$2;-><init>(Lcom/android/server/dreams/DreamController;)V
PLcom/android/server/dreams/DreamController$3;-><init>(Lcom/android/server/dreams/DreamController;Lcom/android/server/dreams/DreamController$DreamRecord;)V
PLcom/android/server/dreams/DreamController$3;->run()V
PLcom/android/server/dreams/DreamController$DreamRecord$2;-><init>(Lcom/android/server/dreams/DreamController$DreamRecord;Landroid/os/IBinder;)V
@@ -8064,43 +9715,47 @@ PLcom/android/server/dreams/DreamController$DreamRecord$4;->sendResult(Landroid/
PLcom/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;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/dreams/DreamController$Listener;)V
+HSPLcom/android/server/dreams/DreamController;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/dreams/DreamController$Listener;)V
PLcom/android/server/dreams/DreamController;->access$000(Lcom/android/server/dreams/DreamController;)Lcom/android/server/dreams/DreamController$DreamRecord;
PLcom/android/server/dreams/DreamController;->access$200(Lcom/android/server/dreams/DreamController;)Landroid/os/Handler;
PLcom/android/server/dreams/DreamController;->access$300(Lcom/android/server/dreams/DreamController;Landroid/service/dreams/IDreamService;)V
PLcom/android/server/dreams/DreamController;->attach(Landroid/service/dreams/IDreamService;)V
+PLcom/android/server/dreams/DreamController;->dump(Ljava/io/PrintWriter;)V
PLcom/android/server/dreams/DreamController;->startDream(Landroid/os/Binder;Landroid/content/ComponentName;ZZILandroid/os/PowerManager$WakeLock;)V
PLcom/android/server/dreams/DreamController;->stopDream(Z)V
-PLcom/android/server/dreams/DreamManagerService$1;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
+HSPLcom/android/server/dreams/DreamManagerService$1;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
PLcom/android/server/dreams/DreamManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/dreams/DreamManagerService$3;-><init>(Lcom/android/server/dreams/DreamManagerService;Z)V
+PLcom/android/server/dreams/DreamManagerService$2;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
+PLcom/android/server/dreams/DreamManagerService$2;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/dreams/DreamManagerService$3;-><init>(Lcom/android/server/dreams/DreamManagerService;Z)V
PLcom/android/server/dreams/DreamManagerService$3;->run()V
-PLcom/android/server/dreams/DreamManagerService$4;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
+HSPLcom/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;Landroid/os/Handler;)V
-PLcom/android/server/dreams/DreamManagerService$5;->onChange(Z)V
-PLcom/android/server/dreams/DreamManagerService$6;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
+HSPLcom/android/server/dreams/DreamManagerService$5;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/dreams/DreamManagerService$6;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
HPLcom/android/server/dreams/DreamManagerService$6;->run()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$1;)V
+HSPLcom/android/server/dreams/DreamManagerService$BinderService;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
+HSPLcom/android/server/dreams/DreamManagerService$BinderService;-><init>(Lcom/android/server/dreams/DreamManagerService;Lcom/android/server/dreams/DreamManagerService$1;)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;->finishSelf(Landroid/os/IBinder;Z)V
PLcom/android/server/dreams/DreamManagerService$BinderService;->forceAmbientDisplayEnabled(Z)V
PLcom/android/server/dreams/DreamManagerService$BinderService;->getDefaultDreamComponent()Landroid/content/ComponentName;
PLcom/android/server/dreams/DreamManagerService$BinderService;->getDreamComponents()[Landroid/content/ComponentName;
PLcom/android/server/dreams/DreamManagerService$BinderService;->isDreaming()Z
PLcom/android/server/dreams/DreamManagerService$BinderService;->startDozing(Landroid/os/IBinder;II)V
-PLcom/android/server/dreams/DreamManagerService$DreamHandler;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Looper;)V
-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$1;)V
-HPLcom/android/server/dreams/DreamManagerService$LocalService;->isDreaming()Z
+HSPLcom/android/server/dreams/DreamManagerService$DreamHandler;-><init>(Lcom/android/server/dreams/DreamManagerService;Landroid/os/Looper;)V
+HSPLcom/android/server/dreams/DreamManagerService$LocalService;-><init>(Lcom/android/server/dreams/DreamManagerService;)V
+HSPLcom/android/server/dreams/DreamManagerService$LocalService;-><init>(Lcom/android/server/dreams/DreamManagerService;Lcom/android/server/dreams/DreamManagerService$1;)V
+HSPLcom/android/server/dreams/DreamManagerService$LocalService;->isDreaming()Z
PLcom/android/server/dreams/DreamManagerService$LocalService;->startDream(Z)V
PLcom/android/server/dreams/DreamManagerService$LocalService;->stopDream(Z)V
-PLcom/android/server/dreams/DreamManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/dreams/DreamManagerService;-><init>(Landroid/content/Context;)V
PLcom/android/server/dreams/DreamManagerService;->access$1000(Lcom/android/server/dreams/DreamManagerService;Ljava/lang/String;)V
-PLcom/android/server/dreams/DreamManagerService;->access$1400(Lcom/android/server/dreams/DreamManagerService;)Z
+HSPLcom/android/server/dreams/DreamManagerService;->access$1400(Lcom/android/server/dreams/DreamManagerService;)Z
PLcom/android/server/dreams/DreamManagerService;->access$1900(Lcom/android/server/dreams/DreamManagerService;Landroid/os/IBinder;II)V
PLcom/android/server/dreams/DreamManagerService;->access$200(Lcom/android/server/dreams/DreamManagerService;)V
+PLcom/android/server/dreams/DreamManagerService;->access$2100(Lcom/android/server/dreams/DreamManagerService;Z)V
PLcom/android/server/dreams/DreamManagerService;->access$2200(Lcom/android/server/dreams/DreamManagerService;Z)V
PLcom/android/server/dreams/DreamManagerService;->access$2300(Lcom/android/server/dreams/DreamManagerService;Z)V
PLcom/android/server/dreams/DreamManagerService;->access$2400(Lcom/android/server/dreams/DreamManagerService;)Landroid/content/ComponentName;
@@ -8110,42 +9765,46 @@ PLcom/android/server/dreams/DreamManagerService;->access$300(Lcom/android/server
PLcom/android/server/dreams/DreamManagerService;->access$400(Lcom/android/server/dreams/DreamManagerService;Z)V
PLcom/android/server/dreams/DreamManagerService;->checkPermission(Ljava/lang/String;)V
PLcom/android/server/dreams/DreamManagerService;->chooseDreamForUser(ZI)Landroid/content/ComponentName;
+PLcom/android/server/dreams/DreamManagerService;->dumpInternal(Ljava/io/PrintWriter;)V
PLcom/android/server/dreams/DreamManagerService;->finishSelfInternal(Landroid/os/IBinder;Z)V
PLcom/android/server/dreams/DreamManagerService;->forceAmbientDisplayEnabledInternal(Z)V
-HPLcom/android/server/dreams/DreamManagerService;->getDozeComponent()Landroid/content/ComponentName;
-HPLcom/android/server/dreams/DreamManagerService;->getDozeComponent(I)Landroid/content/ComponentName;
+HSPLcom/android/server/dreams/DreamManagerService;->getDozeComponent()Landroid/content/ComponentName;
+HSPLcom/android/server/dreams/DreamManagerService;->getDozeComponent(I)Landroid/content/ComponentName;
PLcom/android/server/dreams/DreamManagerService;->getDreamComponentsForUser(I)[Landroid/content/ComponentName;
-PLcom/android/server/dreams/DreamManagerService;->getServiceInfo(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
-HPLcom/android/server/dreams/DreamManagerService;->isDreamingInternal()Z
+HSPLcom/android/server/dreams/DreamManagerService;->getServiceInfo(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
+HSPLcom/android/server/dreams/DreamManagerService;->isDreamingInternal()Z
PLcom/android/server/dreams/DreamManagerService;->lambda$startDreamLocked$0$DreamManagerService(Landroid/os/Binder;Landroid/content/ComponentName;ZZILandroid/os/PowerManager$WakeLock;)V
-PLcom/android/server/dreams/DreamManagerService;->onBootPhase(I)V
-PLcom/android/server/dreams/DreamManagerService;->onStart()V
+HSPLcom/android/server/dreams/DreamManagerService;->onBootPhase(I)V
+HSPLcom/android/server/dreams/DreamManagerService;->onStart()V
PLcom/android/server/dreams/DreamManagerService;->startDozingInternal(Landroid/os/IBinder;II)V
PLcom/android/server/dreams/DreamManagerService;->startDreamInternal(Z)V
PLcom/android/server/dreams/DreamManagerService;->startDreamLocked(Landroid/content/ComponentName;ZZI)V
PLcom/android/server/dreams/DreamManagerService;->stopDreamInternal(Z)V
PLcom/android/server/dreams/DreamManagerService;->stopDreamLocked(Z)V
-PLcom/android/server/dreams/DreamManagerService;->validateDream(Landroid/content/ComponentName;)Z
-PLcom/android/server/dreams/DreamManagerService;->writePulseGestureEnabled()V
-PLcom/android/server/emergency/EmergencyAffordanceService$1;-><init>(Lcom/android/server/emergency/EmergencyAffordanceService;)V
-PLcom/android/server/emergency/EmergencyAffordanceService$2;-><init>(Lcom/android/server/emergency/EmergencyAffordanceService;)V
-PLcom/android/server/emergency/EmergencyAffordanceService$3;-><init>(Lcom/android/server/emergency/EmergencyAffordanceService;)V
+HSPLcom/android/server/dreams/DreamManagerService;->validateDream(Landroid/content/ComponentName;)Z
+HSPLcom/android/server/dreams/DreamManagerService;->writePulseGestureEnabled()V
+HSPLcom/android/server/emergency/EmergencyAffordanceService$1;-><init>(Lcom/android/server/emergency/EmergencyAffordanceService;)V
+HSPLcom/android/server/emergency/EmergencyAffordanceService$2;-><init>(Lcom/android/server/emergency/EmergencyAffordanceService;)V
+PLcom/android/server/emergency/EmergencyAffordanceService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/emergency/EmergencyAffordanceService$3;-><init>(Lcom/android/server/emergency/EmergencyAffordanceService;)V
PLcom/android/server/emergency/EmergencyAffordanceService$3;->onSubscriptionsChanged()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;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/emergency/EmergencyAffordanceService$MyHandler;-><init>(Lcom/android/server/emergency/EmergencyAffordanceService;Landroid/os/Looper;)V
+HSPLcom/android/server/emergency/EmergencyAffordanceService$MyHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/emergency/EmergencyAffordanceService;-><init>(Landroid/content/Context;)V
PLcom/android/server/emergency/EmergencyAffordanceService;->access$300(Lcom/android/server/emergency/EmergencyAffordanceService;)Lcom/android/server/emergency/EmergencyAffordanceService$MyHandler;
-PLcom/android/server/emergency/EmergencyAffordanceService;->access$400(Lcom/android/server/emergency/EmergencyAffordanceService;)V
+HSPLcom/android/server/emergency/EmergencyAffordanceService;->access$400(Lcom/android/server/emergency/EmergencyAffordanceService;)V
PLcom/android/server/emergency/EmergencyAffordanceService;->access$600(Lcom/android/server/emergency/EmergencyAffordanceService;)Z
-PLcom/android/server/emergency/EmergencyAffordanceService;->handleInitializeState()V
-PLcom/android/server/emergency/EmergencyAffordanceService;->handleUpdateCellInfo()Z
-PLcom/android/server/emergency/EmergencyAffordanceService;->handleUpdateSimSubscriptionInfo()Z
-PLcom/android/server/emergency/EmergencyAffordanceService;->onBootPhase(I)V
-PLcom/android/server/emergency/EmergencyAffordanceService;->onStart()V
-PLcom/android/server/emergency/EmergencyAffordanceService;->setSimNeedsEmergencyAffordance(Z)V
-PLcom/android/server/emergency/EmergencyAffordanceService;->simNeededAffordanceBefore()Z
-PLcom/android/server/emergency/EmergencyAffordanceService;->startScanning()V
-PLcom/android/server/emergency/EmergencyAffordanceService;->updateEmergencyAffordanceNeeded()V
+HSPLcom/android/server/emergency/EmergencyAffordanceService;->handleInitializeState()V
+HSPLcom/android/server/emergency/EmergencyAffordanceService;->handleUpdateCellInfo()Z
+HSPLcom/android/server/emergency/EmergencyAffordanceService;->handleUpdateSimSubscriptionInfo()Z
+HSPLcom/android/server/emergency/EmergencyAffordanceService;->onBootPhase(I)V
+PLcom/android/server/emergency/EmergencyAffordanceService;->onCellScanFinishedUnsuccessful()V
+HSPLcom/android/server/emergency/EmergencyAffordanceService;->onStart()V
+PLcom/android/server/emergency/EmergencyAffordanceService;->setNetworkNeedsEmergencyAffordance(Z)V
+HSPLcom/android/server/emergency/EmergencyAffordanceService;->setSimNeedsEmergencyAffordance(Z)V
+HSPLcom/android/server/emergency/EmergencyAffordanceService;->simNeededAffordanceBefore()Z
+HSPLcom/android/server/emergency/EmergencyAffordanceService;->startScanning()V
+HSPLcom/android/server/emergency/EmergencyAffordanceService;->updateEmergencyAffordanceNeeded()V
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
@@ -8156,13 +9815,13 @@ HSPLcom/android/server/firewall/IntentFirewall$FirewallHandler;-><init>(Lcom/and
HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;-><init>()V
HSPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;-><init>(Lcom/android/server/firewall/IntentFirewall$1;)V
PLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->queryByComponent(Landroid/content/ComponentName;Ljava/util/List;)V
-HPLcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;->sortResults(Ljava/util/List;)V
+HSPLcom/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
+HSPLcom/android/server/firewall/IntentFirewall;->checkBroadcast(Landroid/content/Intent;IILjava/lang/String;I)Z
+HSPLcom/android/server/firewall/IntentFirewall;->checkIntent(Lcom/android/server/firewall/IntentFirewall$FirewallIntentResolver;Landroid/content/ComponentName;ILandroid/content/Intent;IILjava/lang/String;I)Z
+HSPLcom/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;->getRulesDir()Ljava/io/File;
HSPLcom/android/server/firewall/IntentFirewall;->readRulesDir(Ljava/io/File;)V
@@ -8194,192 +9853,245 @@ 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;-><clinit>()V
-PLcom/android/server/gpu/GpuService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/gpu/GpuService;->onBootPhase(I)V
-PLcom/android/server/gpu/GpuService;->onStart()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$1;)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
+HSPLcom/android/server/gpu/GpuService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/gpu/GpuService;->onBootPhase(I)V
+HSPLcom/android/server/gpu/GpuService;->onStart()V
+PLcom/android/server/incident/-$$Lambda$PendingReports$42Ba6ZxAFxFmqtPlfnXNpuKHOXM;-><init>(Lcom/android/server/incident/PendingReports;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/os/IIncidentAuthListener;)V
+PLcom/android/server/incident/-$$Lambda$PendingReports$42Ba6ZxAFxFmqtPlfnXNpuKHOXM;->run()V
+PLcom/android/server/incident/-$$Lambda$PendingReports$B2hwzQpyMfhPG0Cw6n_Xz1SrHR0;-><init>(Lcom/android/server/incident/PendingReports;Landroid/os/IIncidentAuthListener;Landroid/content/ComponentName;I)V
+HSPLcom/android/server/incident/IncidentCompanionService$BinderService;-><init>(Lcom/android/server/incident/IncidentCompanionService;)V
+HSPLcom/android/server/incident/IncidentCompanionService$BinderService;-><init>(Lcom/android/server/incident/IncidentCompanionService;Lcom/android/server/incident/IncidentCompanionService$1;)V
+PLcom/android/server/incident/IncidentCompanionService$BinderService;->authorizeReport(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/os/IIncidentAuthListener;)V
+PLcom/android/server/incident/IncidentCompanionService$BinderService;->deleteIncidentReports(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/incident/IncidentCompanionService$BinderService;->denyReport(Ljava/lang/String;)V
+PLcom/android/server/incident/IncidentCompanionService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/incident/IncidentCompanionService$BinderService;->enforceAccessReportsPermissions(Ljava/lang/String;)V
+PLcom/android/server/incident/IncidentCompanionService$BinderService;->enforceAuthorizePermission()V
+PLcom/android/server/incident/IncidentCompanionService$BinderService;->enforceCallerIsSameApp(Ljava/lang/String;)V
+PLcom/android/server/incident/IncidentCompanionService$BinderService;->enforceRequestAuthorizationPermission()V
+PLcom/android/server/incident/IncidentCompanionService$BinderService;->getIncidentReport(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/IncidentManager$IncidentReport;
+PLcom/android/server/incident/IncidentCompanionService$BinderService;->getIncidentReportList(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/incident/IncidentCompanionService$BinderService;->getPendingReports()Ljava/util/List;
+PLcom/android/server/incident/IncidentCompanionService$BinderService;->sendReportReadyBroadcast(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/incident/IncidentCompanionService;-><clinit>()V
+HSPLcom/android/server/incident/IncidentCompanionService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/incident/IncidentCompanionService;->access$000(Lcom/android/server/incident/IncidentCompanionService;)Lcom/android/server/incident/PendingReports;
+PLcom/android/server/incident/IncidentCompanionService;->access$100()[Ljava/lang/String;
+PLcom/android/server/incident/IncidentCompanionService;->access$200(Lcom/android/server/incident/IncidentCompanionService;)Landroid/os/IIncidentManager;
+PLcom/android/server/incident/IncidentCompanionService;->getAndValidateUser(Landroid/content/Context;)I
+PLcom/android/server/incident/IncidentCompanionService;->getIIncidentManager()Landroid/os/IIncidentManager;
+HSPLcom/android/server/incident/IncidentCompanionService;->onBootPhase(I)V
+HSPLcom/android/server/incident/IncidentCompanionService;->onStart()V
+PLcom/android/server/incident/PendingReports$PendingReportRec;-><init>(Lcom/android/server/incident/PendingReports;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/os/IIncidentAuthListener;)V
+PLcom/android/server/incident/PendingReports$PendingReportRec;->getUri()Landroid/net/Uri;
+HSPLcom/android/server/incident/PendingReports;-><init>(Landroid/content/Context;)V
+PLcom/android/server/incident/PendingReports;->access$008(Lcom/android/server/incident/PendingReports;)I
+PLcom/android/server/incident/PendingReports;->authorizeReport(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/os/IIncidentAuthListener;)V
+PLcom/android/server/incident/PendingReports;->authorizeReportImpl(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/os/IIncidentAuthListener;)V
+PLcom/android/server/incident/PendingReports;->denyReport(Ljava/lang/String;)V
+PLcom/android/server/incident/PendingReports;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/incident/PendingReports;->findAndRemovePendingReportRecLocked(Ljava/lang/String;)Lcom/android/server/incident/PendingReports$PendingReportRec;
+PLcom/android/server/incident/PendingReports;->getAndValidateUser()I
+PLcom/android/server/incident/PendingReports;->getApproverComponent(I)Landroid/content/ComponentName;
+PLcom/android/server/incident/PendingReports;->getPendingReports()Ljava/util/List;
+PLcom/android/server/incident/PendingReports;->lambda$authorizeReport$0$PendingReports(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/os/IIncidentAuthListener;)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/PendingReports;->sendBroadcast()V
+PLcom/android/server/incident/PendingReports;->sendBroadcast(Landroid/content/ComponentName;I)V
+HSPLcom/android/server/incident/RequestQueue$1;-><init>(Lcom/android/server/incident/RequestQueue;)V
+PLcom/android/server/incident/RequestQueue$1;->run()V
+PLcom/android/server/incident/RequestQueue$Rec;-><init>(Lcom/android/server/incident/RequestQueue;Landroid/os/IBinder;ZLjava/lang/Runnable;)V
+HSPLcom/android/server/incident/RequestQueue;-><init>(Landroid/os/Handler;)V
+PLcom/android/server/incident/RequestQueue;->access$000(Lcom/android/server/incident/RequestQueue;)Ljava/util/ArrayList;
+PLcom/android/server/incident/RequestQueue;->enqueue(Landroid/os/IBinder;ZLjava/lang/Runnable;)V
PLcom/android/server/incident/RequestQueue;->start()V
HPLcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$1$TLhe3_2yHs5UB69Y7lf2s7OxJCo;-><init>(Ljava/lang/String;)V
PLcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$1$TLhe3_2yHs5UB69Y7lf2s7OxJCo;->visit(Ljava/lang/Object;)V
-PLcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$_fKw-VUP0pSfcMMlgRqoT4OPhxw;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;Ljava/lang/String;)V
+HSPLcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$_fKw-VUP0pSfcMMlgRqoT4OPhxw;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;Ljava/lang/String;)V
PLcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$_fKw-VUP0pSfcMMlgRqoT4OPhxw;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
-PLcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$su3lJpEVIbL-C7doP4eboTpqjxU;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;)V
-PLcom/android/server/infra/AbstractMasterSystemService$1;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;)V
-PLcom/android/server/infra/AbstractMasterSystemService$1;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
-PLcom/android/server/infra/AbstractMasterSystemService$1;->onPackageDataCleared(Ljava/lang/String;I)V
+HSPLcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$su3lJpEVIbL-C7doP4eboTpqjxU;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;)V
+HSPLcom/android/server/infra/AbstractMasterSystemService$1;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;)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;->getServiceForUserLocked(I)Lcom/android/server/infra/AbstractPerUserSystemService;
-PLcom/android/server/infra/AbstractMasterSystemService;->getServiceSettingsProperty()Ljava/lang/String;
-PLcom/android/server/infra/AbstractMasterSystemService;->getSupportedUsers()Ljava/util/List;
-PLcom/android/server/infra/AbstractMasterSystemService;->getUserManagerInternal()Landroid/os/UserManagerInternal;
+HSPLcom/android/server/infra/AbstractMasterSystemService$SettingsObserver;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;Landroid/os/Handler;)V
+HSPLcom/android/server/infra/AbstractMasterSystemService;-><init>(Landroid/content/Context;Lcom/android/server/infra/ServiceNameResolver;Ljava/lang/String;)V
+HSPLcom/android/server/infra/AbstractMasterSystemService;-><init>(Landroid/content/Context;Lcom/android/server/infra/ServiceNameResolver;Ljava/lang/String;I)V
+PLcom/android/server/infra/AbstractMasterSystemService;->assertCalledByPackageOwner(Ljava/lang/String;)V
+PLcom/android/server/infra/AbstractMasterSystemService;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HSPLcom/android/server/infra/AbstractMasterSystemService;->getServiceForUserLocked(I)Lcom/android/server/infra/AbstractPerUserSystemService;
+HSPLcom/android/server/infra/AbstractMasterSystemService;->getServiceSettingsProperty()Ljava/lang/String;
+HSPLcom/android/server/infra/AbstractMasterSystemService;->getSupportedUsers()Ljava/util/List;
+HSPLcom/android/server/infra/AbstractMasterSystemService;->getUserManagerInternal()Landroid/os/UserManagerInternal;
PLcom/android/server/infra/AbstractMasterSystemService;->isBindInstantServiceAllowed()Z
-PLcom/android/server/infra/AbstractMasterSystemService;->isDisabledLocked(I)Z
+HSPLcom/android/server/infra/AbstractMasterSystemService;->isDisabledLocked(I)Z
PLcom/android/server/infra/AbstractMasterSystemService;->lambda$new$1$AbstractMasterSystemService(Ljava/lang/String;ILandroid/os/Bundle;Landroid/os/Bundle;)V
-PLcom/android/server/infra/AbstractMasterSystemService;->onBootPhase(I)V
+HSPLcom/android/server/infra/AbstractMasterSystemService;->onBootPhase(I)V
PLcom/android/server/infra/AbstractMasterSystemService;->onServiceEnabledLocked(Lcom/android/server/infra/AbstractPerUserSystemService;I)V
+PLcom/android/server/infra/AbstractMasterSystemService;->onServicePackageUpdatedLocked(I)V
+PLcom/android/server/infra/AbstractMasterSystemService;->onServicePackageUpdatingLocked(I)V
PLcom/android/server/infra/AbstractMasterSystemService;->onServiceRemoved(Lcom/android/server/infra/AbstractPerUserSystemService;I)V
PLcom/android/server/infra/AbstractMasterSystemService;->onUnlockUser(I)V
-PLcom/android/server/infra/AbstractMasterSystemService;->peekServiceForUserLocked(I)Lcom/android/server/infra/AbstractPerUserSystemService;
-PLcom/android/server/infra/AbstractMasterSystemService;->registerForExtraSettingsChanges(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
+HSPLcom/android/server/infra/AbstractMasterSystemService;->peekServiceForUserLocked(I)Lcom/android/server/infra/AbstractPerUserSystemService;
+HSPLcom/android/server/infra/AbstractMasterSystemService;->registerForExtraSettingsChanges(Landroid/content/ContentResolver;Landroid/database/ContentObserver;)V
PLcom/android/server/infra/AbstractMasterSystemService;->removeCachedServiceLocked(I)Lcom/android/server/infra/AbstractPerUserSystemService;
-PLcom/android/server/infra/AbstractMasterSystemService;->startTrackingPackageChanges()V
+HSPLcom/android/server/infra/AbstractMasterSystemService;->startTrackingPackageChanges()V
+PLcom/android/server/infra/AbstractMasterSystemService;->updateCachedServiceLocked(I)V
PLcom/android/server/infra/AbstractMasterSystemService;->updateCachedServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService;
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;
+HSPLcom/android/server/infra/AbstractPerUserSystemService;-><init>(Lcom/android/server/infra/AbstractMasterSystemService;Ljava/lang/Object;I)V
+PLcom/android/server/infra/AbstractPerUserSystemService;->dumpLocked(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HSPLcom/android/server/infra/AbstractPerUserSystemService;->getComponentNameLocked()Ljava/lang/String;
+HSPLcom/android/server/infra/AbstractPerUserSystemService;->getContext()Landroid/content/Context;
PLcom/android/server/infra/AbstractPerUserSystemService;->getServiceComponentName()Landroid/content/ComponentName;
+PLcom/android/server/infra/AbstractPerUserSystemService;->getServiceUidLocked()I
PLcom/android/server/infra/AbstractPerUserSystemService;->handlePackageUpdateLocked(Ljava/lang/String;)V
PLcom/android/server/infra/AbstractPerUserSystemService;->isDebug()Z
-PLcom/android/server/infra/AbstractPerUserSystemService;->isDisabledByUserRestrictionsLocked()Z
-PLcom/android/server/infra/AbstractPerUserSystemService;->isEnabledLocked()Z
-PLcom/android/server/infra/AbstractPerUserSystemService;->isSetupCompletedLocked()Z
-PLcom/android/server/infra/AbstractPerUserSystemService;->updateIsSetupComplete(I)V
-PLcom/android/server/infra/AbstractPerUserSystemService;->updateLocked(Z)Z
-PLcom/android/server/infra/AbstractPerUserSystemService;->updateServiceInfoLocked()Landroid/content/ComponentName;
-PLcom/android/server/infra/FrameworkResourcesServiceNameResolver;-><clinit>()V
-PLcom/android/server/infra/FrameworkResourcesServiceNameResolver;-><init>(Landroid/content/Context;I)V
-PLcom/android/server/infra/FrameworkResourcesServiceNameResolver;->getDefaultServiceName(I)Ljava/lang/String;
-PLcom/android/server/infra/FrameworkResourcesServiceNameResolver;->getServiceName(I)Ljava/lang/String;
-PLcom/android/server/infra/FrameworkResourcesServiceNameResolver;->isTemporary(I)Z
-PLcom/android/server/infra/FrameworkResourcesServiceNameResolver;->setOnTemporaryServiceNameChangedCallback(Lcom/android/server/infra/ServiceNameResolver$NameResolverListener;)V
-PLcom/android/server/infra/SecureSettingsServiceNameResolver;-><init>(Landroid/content/Context;Ljava/lang/String;)V
-PLcom/android/server/infra/SecureSettingsServiceNameResolver;->getDefaultServiceName(I)Ljava/lang/String;
-PLcom/android/server/infra/ServiceNameResolver;->getServiceName(I)Ljava/lang/String;
-PLcom/android/server/infra/ServiceNameResolver;->setOnTemporaryServiceNameChangedCallback(Lcom/android/server/infra/ServiceNameResolver$NameResolverListener;)V
-PLcom/android/server/input/InputManagerService$10;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/Handler;)V
-PLcom/android/server/input/InputManagerService$11;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/Handler;)V
-PLcom/android/server/input/InputManagerService$1;-><init>(Lcom/android/server/input/InputManagerService;)V
+HSPLcom/android/server/infra/AbstractPerUserSystemService;->isDisabledByUserRestrictionsLocked()Z
+HSPLcom/android/server/infra/AbstractPerUserSystemService;->isEnabledLocked()Z
+HSPLcom/android/server/infra/AbstractPerUserSystemService;->isSetupCompletedLocked()Z
+PLcom/android/server/infra/AbstractPerUserSystemService;->isTemporaryServiceSetLocked()Z
+PLcom/android/server/infra/AbstractPerUserSystemService;->isVerbose()Z
+HSPLcom/android/server/infra/AbstractPerUserSystemService;->updateIsSetupComplete(I)V
+HSPLcom/android/server/infra/AbstractPerUserSystemService;->updateLocked(Z)Z
+HSPLcom/android/server/infra/AbstractPerUserSystemService;->updateServiceInfoLocked()Landroid/content/ComponentName;
+HSPLcom/android/server/infra/FrameworkResourcesServiceNameResolver;-><clinit>()V
+HSPLcom/android/server/infra/FrameworkResourcesServiceNameResolver;-><init>(Landroid/content/Context;I)V
+PLcom/android/server/infra/FrameworkResourcesServiceNameResolver;->dumpShort(Ljava/io/PrintWriter;)V
+PLcom/android/server/infra/FrameworkResourcesServiceNameResolver;->dumpShort(Ljava/io/PrintWriter;I)V
+HSPLcom/android/server/infra/FrameworkResourcesServiceNameResolver;->getDefaultServiceName(I)Ljava/lang/String;
+HSPLcom/android/server/infra/FrameworkResourcesServiceNameResolver;->getServiceName(I)Ljava/lang/String;
+HSPLcom/android/server/infra/FrameworkResourcesServiceNameResolver;->isTemporary(I)Z
+HSPLcom/android/server/infra/FrameworkResourcesServiceNameResolver;->setOnTemporaryServiceNameChangedCallback(Lcom/android/server/infra/ServiceNameResolver$NameResolverListener;)V
+HSPLcom/android/server/infra/SecureSettingsServiceNameResolver;-><init>(Landroid/content/Context;Ljava/lang/String;)V
+PLcom/android/server/infra/SecureSettingsServiceNameResolver;->dumpShort(Ljava/io/PrintWriter;)V
+PLcom/android/server/infra/SecureSettingsServiceNameResolver;->dumpShort(Ljava/io/PrintWriter;I)V
+HSPLcom/android/server/infra/SecureSettingsServiceNameResolver;->getDefaultServiceName(I)Ljava/lang/String;
+HSPLcom/android/server/infra/ServiceNameResolver;->getServiceName(I)Ljava/lang/String;
+HSPLcom/android/server/infra/ServiceNameResolver;->setOnTemporaryServiceNameChangedCallback(Lcom/android/server/infra/ServiceNameResolver$NameResolverListener;)V
+HSPLcom/android/server/input/InputManagerService$10;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/input/InputManagerService$11;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/input/InputManagerService$1;-><init>(Lcom/android/server/input/InputManagerService;)V
PLcom/android/server/input/InputManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/input/InputManagerService$2;-><init>(Lcom/android/server/input/InputManagerService;)V
+HSPLcom/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$5;-><init>(Lcom/android/server/input/InputManagerService;Ljava/util/HashSet;)V
HPLcom/android/server/input/InputManagerService$5;->visitKeyboardLayout(Landroid/content/res/Resources;ILandroid/hardware/input/KeyboardLayout;)V
-PLcom/android/server/input/InputManagerService$9;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/input/InputManagerService$9;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/Handler;)V
PLcom/android/server/input/InputManagerService$InputDevicesChangedListenerRecord;-><init>(Lcom/android/server/input/InputManagerService;ILandroid/hardware/input/IInputDevicesChangedListener;)V
PLcom/android/server/input/InputManagerService$InputDevicesChangedListenerRecord;->binderDied()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$InputDevicesChangedListenerRecord;->notifyInputDevicesChanged([I)V
+HSPLcom/android/server/input/InputManagerService$InputManagerHandler;-><init>(Lcom/android/server/input/InputManagerService;Landroid/os/Looper;)V
+HSPLcom/android/server/input/InputManagerService$InputManagerHandler;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/input/InputManagerService$InputMonitorHost;-><init>(Lcom/android/server/input/InputManagerService;Landroid/view/InputChannel;)V
PLcom/android/server/input/InputManagerService$InputMonitorHost;->dispose()V
PLcom/android/server/input/InputManagerService$InputMonitorHost;->pilferPointers()V
PLcom/android/server/input/InputManagerService$KeyboardLayoutDescriptor;->format(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-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$1;)V
-PLcom/android/server/input/InputManagerService$LocalService;->setDisplayViewports(Ljava/util/List;)V
+HSPLcom/android/server/input/InputManagerService$LocalService;-><init>(Lcom/android/server/input/InputManagerService;)V
+HSPLcom/android/server/input/InputManagerService$LocalService;-><init>(Lcom/android/server/input/InputManagerService;Lcom/android/server/input/InputManagerService$1;)V
+HSPLcom/android/server/input/InputManagerService$LocalService;->setDisplayViewports(Ljava/util/List;)V
PLcom/android/server/input/InputManagerService$LocalService;->setInteractive(Z)V
-PLcom/android/server/input/InputManagerService$LocalService;->setPulseGestureEnabled(Z)V
-PLcom/android/server/input/InputManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/input/InputManagerService$LocalService;->setPulseGestureEnabled(Z)V
+HSPLcom/android/server/input/InputManagerService;-><init>(Landroid/content/Context;)V
PLcom/android/server/input/InputManagerService;->access$100(Lcom/android/server/input/InputManagerService;)V
PLcom/android/server/input/InputManagerService;->access$1100(JLandroid/os/IBinder;)V
PLcom/android/server/input/InputManagerService;->access$1200(JLandroid/view/InputChannel;)V
-PLcom/android/server/input/InputManagerService;->access$1500(Lcom/android/server/input/InputManagerService;Ljava/util/List;)V
+HSPLcom/android/server/input/InputManagerService;->access$1500(Lcom/android/server/input/InputManagerService;Ljava/util/List;)V
PLcom/android/server/input/InputManagerService;->access$1700(JZ)V
-PLcom/android/server/input/InputManagerService;->access$1900(Lcom/android/server/input/InputManagerService;)Ljava/io/File;
+HSPLcom/android/server/input/InputManagerService;->access$1900(Lcom/android/server/input/InputManagerService;)Ljava/io/File;
PLcom/android/server/input/InputManagerService;->access$200(Lcom/android/server/input/InputManagerService;)V
-PLcom/android/server/input/InputManagerService;->access$500(Lcom/android/server/input/InputManagerService;[Landroid/view/InputDevice;)V
+HSPLcom/android/server/input/InputManagerService;->access$500(Lcom/android/server/input/InputManagerService;[Landroid/view/InputDevice;)V
PLcom/android/server/input/InputManagerService;->access$900(Lcom/android/server/input/InputManagerService;)J
-PLcom/android/server/input/InputManagerService;->canDispatchToDisplay(II)Z
+HSPLcom/android/server/input/InputManagerService;->canDispatchToDisplay(II)Z
PLcom/android/server/input/InputManagerService;->checkCallingPermission(Ljava/lang/String;Ljava/lang/String;)Z
PLcom/android/server/input/InputManagerService;->checkInjectEventsPermission(II)Z
-PLcom/android/server/input/InputManagerService;->deliverInputDevicesChanged([Landroid/view/InputDevice;)V
+HSPLcom/android/server/input/InputManagerService;->deliverInputDevicesChanged([Landroid/view/InputDevice;)V
+PLcom/android/server/input/InputManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/input/InputManagerService;->getCurrentKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;)Ljava/lang/String;
-PLcom/android/server/input/InputManagerService;->getDeviceAlias(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/input/InputManagerService;->getDoubleTapTimeout()I
-PLcom/android/server/input/InputManagerService;->getExcludedDeviceNames()[Ljava/lang/String;
-PLcom/android/server/input/InputManagerService;->getHoverTapSlop()I
-PLcom/android/server/input/InputManagerService;->getHoverTapTimeout()I
+HSPLcom/android/server/input/InputManagerService;->getDeviceAlias(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/input/InputManagerService;->getDoubleTapTimeout()I
+HSPLcom/android/server/input/InputManagerService;->getExcludedDeviceNames()[Ljava/lang/String;
+HSPLcom/android/server/input/InputManagerService;->getHoverTapSlop()I
+HSPLcom/android/server/input/InputManagerService;->getHoverTapTimeout()I
PLcom/android/server/input/InputManagerService;->getInputDevice(I)Landroid/view/InputDevice;
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;->getKeyCodeState(III)I
-PLcom/android/server/input/InputManagerService;->getKeyRepeatDelay()I
-PLcom/android/server/input/InputManagerService;->getKeyRepeatTimeout()I
-PLcom/android/server/input/InputManagerService;->getKeyboardLayoutOverlay(Landroid/hardware/input/InputDeviceIdentifier;)[Ljava/lang/String;
+HSPLcom/android/server/input/InputManagerService;->getInputDevices()[Landroid/view/InputDevice;
+HSPLcom/android/server/input/InputManagerService;->getInputPortAssociations()[Ljava/lang/String;
+HSPLcom/android/server/input/InputManagerService;->getKeyCodeState(III)I
+HSPLcom/android/server/input/InputManagerService;->getKeyRepeatDelay()I
+HSPLcom/android/server/input/InputManagerService;->getKeyRepeatTimeout()I
+HSPLcom/android/server/input/InputManagerService;->getKeyboardLayoutOverlay(Landroid/hardware/input/InputDeviceIdentifier;)[Ljava/lang/String;
PLcom/android/server/input/InputManagerService;->getLayoutDescriptor(Landroid/hardware/input/InputDeviceIdentifier;)Ljava/lang/String;
PLcom/android/server/input/InputManagerService;->getLocalesFromLanguageTags(Ljava/lang/String;)Landroid/os/LocaleList;
-PLcom/android/server/input/InputManagerService;->getLongPressTimeout()I
-PLcom/android/server/input/InputManagerService;->getPointerDisplayId()I
-PLcom/android/server/input/InputManagerService;->getPointerSpeedSetting()I
-PLcom/android/server/input/InputManagerService;->getScanCodeState(III)I
-PLcom/android/server/input/InputManagerService;->getShowTouchesSetting(I)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;->getVirtualKeyQuietTimeMillis()I
+HSPLcom/android/server/input/InputManagerService;->getLongPressTimeout()I
+HSPLcom/android/server/input/InputManagerService;->getPointerDisplayId()I
+HSPLcom/android/server/input/InputManagerService;->getPointerSpeedSetting()I
+HSPLcom/android/server/input/InputManagerService;->getScanCodeState(III)I
+HSPLcom/android/server/input/InputManagerService;->getShowTouchesSetting(I)I
+HSPLcom/android/server/input/InputManagerService;->getSwitchState(III)I
+HSPLcom/android/server/input/InputManagerService;->getTouchCalibrationForInputDevice(Ljava/lang/String;I)Landroid/hardware/input/TouchCalibration;
+HSPLcom/android/server/input/InputManagerService;->getVirtualKeyQuietTimeMillis()I
PLcom/android/server/input/InputManagerService;->hasKeys(II[I[Z)Z
PLcom/android/server/input/InputManagerService;->injectInputEvent(Landroid/view/InputEvent;I)Z
PLcom/android/server/input/InputManagerService;->injectInputEventInternal(Landroid/view/InputEvent;I)Z
PLcom/android/server/input/InputManagerService;->interceptKeyBeforeDispatching(Landroid/os/IBinder;Landroid/view/KeyEvent;I)J
PLcom/android/server/input/InputManagerService;->interceptKeyBeforeQueueing(Landroid/view/KeyEvent;I)I
PLcom/android/server/input/InputManagerService;->interceptMotionBeforeQueueingNonInteractive(IJI)I
-PLcom/android/server/input/InputManagerService;->isMicMuted()I
+HSPLcom/android/server/input/InputManagerService;->isMicMuted()I
PLcom/android/server/input/InputManagerService;->monitor()V
PLcom/android/server/input/InputManagerService;->monitorGestureInput(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
+HSPLcom/android/server/input/InputManagerService;->monitorInput(Ljava/lang/String;I)Landroid/view/InputChannel;
+HSPLcom/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;->notifyInputDevicesChanged([Landroid/view/InputDevice;)V
+HSPLcom/android/server/input/InputManagerService;->notifyInputDevicesChanged([Landroid/view/InputDevice;)V
PLcom/android/server/input/InputManagerService;->onInputDevicesChangedListenerDied(I)V
PLcom/android/server/input/InputManagerService;->onPointerDownOutsideFocus(Landroid/os/IBinder;)V
-PLcom/android/server/input/InputManagerService;->registerAccessibilityLargePointerSettingObserver()V
+HSPLcom/android/server/input/InputManagerService;->registerAccessibilityLargePointerSettingObserver()V
PLcom/android/server/input/InputManagerService;->registerInputChannel(Landroid/view/InputChannel;)V
PLcom/android/server/input/InputManagerService;->registerInputDevicesChangedListener(Landroid/hardware/input/IInputDevicesChangedListener;)V
-PLcom/android/server/input/InputManagerService;->registerPointerSpeedSettingObserver()V
-PLcom/android/server/input/InputManagerService;->registerShowTouchesSettingObserver()V
+HSPLcom/android/server/input/InputManagerService;->registerPointerSpeedSettingObserver()V
+HSPLcom/android/server/input/InputManagerService;->registerShowTouchesSettingObserver()V
PLcom/android/server/input/InputManagerService;->reloadDeviceAliases()V
PLcom/android/server/input/InputManagerService;->reloadKeyboardLayouts()V
-PLcom/android/server/input/InputManagerService;->setDisplayViewportsInternal(Ljava/util/List;)V
+HSPLcom/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(Z)V
+HSPLcom/android/server/input/InputManagerService;->setFocusedDisplay(I)V
+HSPLcom/android/server/input/InputManagerService;->setInTouchMode(Z)V
PLcom/android/server/input/InputManagerService;->setInputDispatchMode(ZZ)V
-PLcom/android/server/input/InputManagerService;->setPointerSpeedUnchecked(I)V
+PLcom/android/server/input/InputManagerService;->setPointerIconType(I)V
+HSPLcom/android/server/input/InputManagerService;->setPointerSpeedUnchecked(I)V
PLcom/android/server/input/InputManagerService;->setSystemUiVisibility(I)V
-PLcom/android/server/input/InputManagerService;->setWindowManagerCallbacks(Lcom/android/server/input/InputManagerService$WindowManagerCallbacks;)V
-PLcom/android/server/input/InputManagerService;->setWiredAccessoryCallbacks(Lcom/android/server/input/InputManagerService$WiredAccessoryCallbacks;)V
-PLcom/android/server/input/InputManagerService;->start()V
-PLcom/android/server/input/InputManagerService;->systemRunning()V
+HSPLcom/android/server/input/InputManagerService;->setWindowManagerCallbacks(Lcom/android/server/input/InputManagerService$WindowManagerCallbacks;)V
+HSPLcom/android/server/input/InputManagerService;->setWiredAccessoryCallbacks(Lcom/android/server/input/InputManagerService$WiredAccessoryCallbacks;)V
+HSPLcom/android/server/input/InputManagerService;->start()V
+HSPLcom/android/server/input/InputManagerService;->systemRunning()V
PLcom/android/server/input/InputManagerService;->unregisterInputChannel(Landroid/view/InputChannel;)V
-PLcom/android/server/input/InputManagerService;->updateAccessibilityLargePointerFromSettings()V
+HSPLcom/android/server/input/InputManagerService;->updateAccessibilityLargePointerFromSettings()V
PLcom/android/server/input/InputManagerService;->updateKeyboardLayouts()V
-PLcom/android/server/input/InputManagerService;->updatePointerSpeedFromSettings()V
-PLcom/android/server/input/InputManagerService;->updateShowTouchesFromSettings()V
+HSPLcom/android/server/input/InputManagerService;->updatePointerSpeedFromSettings()V
+HSPLcom/android/server/input/InputManagerService;->updateShowTouchesFromSettings()V
PLcom/android/server/input/InputManagerService;->visitAllKeyboardLayouts(Lcom/android/server/input/InputManagerService$KeyboardLayoutVisitor;)V
HPLcom/android/server/input/InputManagerService;->visitKeyboardLayoutsInPackage(Landroid/content/pm/PackageManager;Landroid/content/pm/ActivityInfo;Ljava/lang/String;ILcom/android/server/input/InputManagerService$KeyboardLayoutVisitor;)V
-PLcom/android/server/input/PersistentDataStore;-><init>()V
-PLcom/android/server/input/PersistentDataStore;->clearState()V
+HSPLcom/android/server/input/PersistentDataStore;-><init>()V
+HSPLcom/android/server/input/PersistentDataStore;->clearState()V
PLcom/android/server/input/PersistentDataStore;->getCurrentKeyboardLayout(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/input/PersistentDataStore;->getInputDeviceState(Ljava/lang/String;Z)Lcom/android/server/input/PersistentDataStore$InputDeviceState;
-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
+HSPLcom/android/server/input/PersistentDataStore;->getInputDeviceState(Ljava/lang/String;Z)Lcom/android/server/input/PersistentDataStore$InputDeviceState;
+HSPLcom/android/server/input/PersistentDataStore;->getTouchCalibration(Ljava/lang/String;I)Landroid/hardware/input/TouchCalibration;
+HSPLcom/android/server/input/PersistentDataStore;->load()V
+HSPLcom/android/server/input/PersistentDataStore;->loadIfNeeded()V
PLcom/android/server/input/PersistentDataStore;->removeUninstalledKeyboardLayouts(Ljava/util/Set;)Z
PLcom/android/server/input/PersistentDataStore;->saveIfNeeded()V
-PLcom/android/server/inputmethod/-$$Lambda$InputMethodManagerService$oxpSIwENeEjKtHbxqUXuaXD0Gn8;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-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(Landroid/util/ArrayMap;I)V
+HSPLcom/android/server/inputmethod/-$$Lambda$InputMethodManagerService$oxpSIwENeEjKtHbxqUXuaXD0Gn8;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+HSPLcom/android/server/inputmethod/AdditionalSubtypeUtils;->getAdditionalSubtypeFile(Ljava/io/File;)Landroid/util/AtomicFile;
+HSPLcom/android/server/inputmethod/AdditionalSubtypeUtils;->getInputMethodDir(I)Ljava/io/File;
+HSPLcom/android/server/inputmethod/AdditionalSubtypeUtils;->load(Landroid/util/ArrayMap;I)V
PLcom/android/server/inputmethod/AdditionalSubtypeUtils;->save(Landroid/util/ArrayMap;Landroid/util/ArrayMap;I)V
-PLcom/android/server/inputmethod/InputMethodManagerInternal$1;-><init>()V
-PLcom/android/server/inputmethod/InputMethodManagerInternal;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodManagerInternal;-><init>()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;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerInternal$1;-><init>()V
+HSPLcom/android/server/inputmethod/InputMethodManagerInternal;-><clinit>()V
+HSPLcom/android/server/inputmethod/InputMethodManagerInternal;-><init>()V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$1;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$2;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
PLcom/android/server/inputmethod/InputMethodManagerService$ClientDeathRecipient;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/internal/view/IInputMethodClient;)V
PLcom/android/server/inputmethod/InputMethodManagerService$ClientDeathRecipient;->binderDied()V
PLcom/android/server/inputmethod/InputMethodManagerService$ClientState;-><init>(Lcom/android/internal/view/IInputMethodClient;Lcom/android/internal/view/IInputContext;IIILcom/android/server/inputmethod/InputMethodManagerService$ClientDeathRecipient;)V
@@ -8388,166 +10100,192 @@ PLcom/android/server/inputmethod/InputMethodManagerService$DebugFlag;-><clinit>(
PLcom/android/server/inputmethod/InputMethodManagerService$DebugFlag;-><init>(Ljava/lang/String;Z)V
PLcom/android/server/inputmethod/InputMethodManagerService$DebugFlag;->value()Z
PLcom/android/server/inputmethod/InputMethodManagerService$DebugFlags;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodManagerService$HardKeyboardListener;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$HardKeyboardListener;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$1;)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$1;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$HardKeyboardListener;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$HardKeyboardListener;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$1;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForAllUsers;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForAllUsers;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$1;)V
PLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForAllUsers;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForSystemUser;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForSystemUser;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$1;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForSystemUser;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForSystemUser;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/server/inputmethod/InputMethodManagerService$1;)V
PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;)V
+PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->hideMySoftInput(I)V
+PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->notifyUserAction()V
PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->reportFullscreenMode(Z)V
PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->reportStartInput(Landroid/os/IBinder;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onBootPhase(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onStart()V
+PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->setImeWindowStatus(II)V
+PLcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;->updateStatusIcon(Ljava/lang/String;I)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onStart()V
PLcom/android/server/inputmethod/InputMethodManagerService$Lifecycle;->onUnlockUser(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->getEnabledInputMethodListAsUser(I)Ljava/util/List;
+PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->getInputMethodListAsUser(I)Ljava/util/List;
PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->hideCurrentInputMethod()V
PLcom/android/server/inputmethod/InputMethodManagerService$LocalServiceImpl;->setInteractive(Z)V
PLcom/android/server/inputmethod/InputMethodManagerService$MethodCallback;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Lcom/android/internal/view/IInputMethod;Landroid/view/InputChannel;)V
PLcom/android/server/inputmethod/InputMethodManagerService$MethodCallback;->sessionCreated(Lcom/android/internal/view/IInputMethodSession;)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
+HSPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->addKnownImePackageNameLocked(Ljava/lang/String;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->clearKnownImePackageNamesLocked()V
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;->onPackageAppeared(Ljava/lang/String;I)V
PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onPackageDisappeared(Ljava/lang/String;I)V
PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onPackageModified(Ljava/lang/String;)V
+HPLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->onPackagesUnsuspended([Ljava/lang/String;)V
PLcom/android/server/inputmethod/InputMethodManagerService$MyPackageMonitor;->shouldRebuildInputMethodListLocked()Z
PLcom/android/server/inputmethod/InputMethodManagerService$SessionState;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService$ClientState;Lcom/android/internal/view/IInputMethod;Lcom/android/internal/view/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$SessionState;->toString()Ljava/lang/String;
+HSPLcom/android/server/inputmethod/InputMethodManagerService$SettingsObserver;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$SettingsObserver;->registerContentObserverLocked(I)V
+PLcom/android/server/inputmethod/InputMethodManagerService$SettingsObserver;->toString()Ljava/lang/String;
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$1;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;-><init>()V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;-><init>(Lcom/android/server/inputmethod/InputMethodManagerService$1;)V
PLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;->addEntry(Lcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;)V
-PLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;->getEntrySize()I
+PLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService$StartInputHistory;->getEntrySize()I
PLcom/android/server/inputmethod/InputMethodManagerService$StartInputInfo;-><clinit>()V
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;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService;-><init>(Landroid/content/Context;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->access$2500(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Landroid/os/IBinder;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->access$2700(Lcom/android/server/inputmethod/InputMethodManagerService;Landroid/os/IBinder;Z)V
PLcom/android/server/inputmethod/InputMethodManagerService;->addClient(Lcom/android/internal/view/IInputMethodClient;Lcom/android/internal/view/IInputContext;I)V
PLcom/android/server/inputmethod/InputMethodManagerService;->attachNewInputLocked(IZ)Lcom/android/internal/view/InputBindResult;
PLcom/android/server/inputmethod/InputMethodManagerService;->bindCurrentInputMethodServiceLocked(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
-PLcom/android/server/inputmethod/InputMethodManagerService;->buildInputMethodListLocked(Z)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService;->buildInputMethodListLocked(Z)V
PLcom/android/server/inputmethod/InputMethodManagerService;->calledFromValidUserLocked()Z
PLcom/android/server/inputmethod/InputMethodManagerService;->calledWithValidTokenLocked(Landroid/os/IBinder;)Z
PLcom/android/server/inputmethod/InputMethodManagerService;->clearClientSessionLocked(Lcom/android/server/inputmethod/InputMethodManagerService$ClientState;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->clearCurMethodLocked()V
PLcom/android/server/inputmethod/InputMethodManagerService;->computeImeDisplayIdForTarget(ILcom/android/server/inputmethod/InputMethodManagerService$ImeDisplayValidator;)I
+PLcom/android/server/inputmethod/InputMethodManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->executeOrSendMessage(Landroid/os/IInterface;Landroid/os/Message;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->finishSessionLocked(Lcom/android/server/inputmethod/InputMethodManagerService$SessionState;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->getActivityViewToScreenMatrixLocked(II)Landroid/graphics/Matrix;
PLcom/android/server/inputmethod/InputMethodManagerService;->getCurrentInputMethodSubtype()Landroid/view/inputmethod/InputMethodSubtype;
-PLcom/android/server/inputmethod/InputMethodManagerService;->getCurrentInputMethodSubtypeLocked()Landroid/view/inputmethod/InputMethodSubtype;
+HPLcom/android/server/inputmethod/InputMethodManagerService;->getCurrentInputMethodSubtypeLocked()Landroid/view/inputmethod/InputMethodSubtype;
PLcom/android/server/inputmethod/InputMethodManagerService;->getEnabledInputMethodList(I)Ljava/util/List;
PLcom/android/server/inputmethod/InputMethodManagerService;->getEnabledInputMethodListAsUser(I)Ljava/util/List;
PLcom/android/server/inputmethod/InputMethodManagerService;->getEnabledInputMethodListLocked(I)Ljava/util/List;
PLcom/android/server/inputmethod/InputMethodManagerService;->getEnabledInputMethodSubtypeList(Ljava/lang/String;Z)Ljava/util/List;
PLcom/android/server/inputmethod/InputMethodManagerService;->getEnabledInputMethodSubtypeListLocked(Ljava/lang/String;ZI)Ljava/util/List;
PLcom/android/server/inputmethod/InputMethodManagerService;->getInputMethodList(I)Ljava/util/List;
+PLcom/android/server/inputmethod/InputMethodManagerService;->getInputMethodListAsUser(I)Ljava/util/List;
PLcom/android/server/inputmethod/InputMethodManagerService;->getInputMethodListLocked(I)Ljava/util/List;
PLcom/android/server/inputmethod/InputMethodManagerService;->handleMessage(Landroid/os/Message;)Z
PLcom/android/server/inputmethod/InputMethodManagerService;->handleSetInteractive(Z)V
PLcom/android/server/inputmethod/InputMethodManagerService;->hideCurrentInputLocked(ILandroid/os/ResultReceiver;)Z
PLcom/android/server/inputmethod/InputMethodManagerService;->hideInputMethodMenu()V
PLcom/android/server/inputmethod/InputMethodManagerService;->hideInputMethodMenuLocked()V
+PLcom/android/server/inputmethod/InputMethodManagerService;->hideMySoftInput(Landroid/os/IBinder;I)V
PLcom/android/server/inputmethod/InputMethodManagerService;->hideSoftInput(Lcom/android/internal/view/IInputMethodClient;ILandroid/os/ResultReceiver;)Z
PLcom/android/server/inputmethod/InputMethodManagerService;->isKeyguardLocked()Z
+PLcom/android/server/inputmethod/InputMethodManagerService;->notifyUserAction(Landroid/os/IBinder;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->onServiceDisconnected(Landroid/content/ComponentName;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->onSessionCreated(Lcom/android/internal/view/IInputMethod;Lcom/android/internal/view/IInputMethodSession;Landroid/view/InputChannel;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
PLcom/android/server/inputmethod/InputMethodManagerService;->onUnlockUser(I)V
-HPLcom/android/server/inputmethod/InputMethodManagerService;->queryInputMethodServicesInternal(Landroid/content/Context;ILandroid/util/ArrayMap;Landroid/util/ArrayMap;Ljava/util/ArrayList;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService;->queryInputMethodServicesInternal(Landroid/content/Context;ILandroid/util/ArrayMap;Landroid/util/ArrayMap;Ljava/util/ArrayList;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->removeClient(Lcom/android/internal/view/IInputMethodClient;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->reportFullscreenMode(Landroid/os/IBinder;Z)V
PLcom/android/server/inputmethod/InputMethodManagerService;->reportStartInput(Landroid/os/IBinder;Landroid/os/IBinder;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->requestClientSessionLocked(Lcom/android/server/inputmethod/InputMethodManagerService$ClientState;)V
PLcom/android/server/inputmethod/InputMethodManagerService;->setEnabledSessionInMainThread(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;->setSelectedInputMethodAndSubtypeLocked(Landroid/view/inputmethod/InputMethodInfo;IZ)V
+PLcom/android/server/inputmethod/InputMethodManagerService;->setImeWindowStatus(Landroid/os/IBinder;II)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService;->setInputMethodEnabledLocked(Ljava/lang/String;Z)Z
+HSPLcom/android/server/inputmethod/InputMethodManagerService;->setInputMethodLocked(Ljava/lang/String;I)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService;->setSelectedInputMethodAndSubtypeLocked(Landroid/view/inputmethod/InputMethodInfo;IZ)V
PLcom/android/server/inputmethod/InputMethodManagerService;->shouldShowImeSwitcherLocked(I)Z
+PLcom/android/server/inputmethod/InputMethodManagerService;->showCurrentInputLocked(ILandroid/os/ResultReceiver;)Z
+PLcom/android/server/inputmethod/InputMethodManagerService;->showSoftInput(Lcom/android/internal/view/IInputMethodClient;ILandroid/os/ResultReceiver;)Z
PLcom/android/server/inputmethod/InputMethodManagerService;->startInputOrWindowGainedFocus(ILcom/android/internal/view/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/view/IInputContext;II)Lcom/android/internal/view/InputBindResult;
PLcom/android/server/inputmethod/InputMethodManagerService;->startInputOrWindowGainedFocusInternalLocked(ILcom/android/internal/view/IInputMethodClient;Landroid/os/IBinder;IIILandroid/view/inputmethod/EditorInfo;Lcom/android/internal/view/IInputContext;III)Lcom/android/internal/view/InputBindResult;
PLcom/android/server/inputmethod/InputMethodManagerService;->startInputUncheckedLocked(Lcom/android/server/inputmethod/InputMethodManagerService$ClientState;Lcom/android/internal/view/IInputContext;ILandroid/view/inputmethod/EditorInfo;II)Lcom/android/internal/view/InputBindResult;
PLcom/android/server/inputmethod/InputMethodManagerService;->switchUserLocked(I)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->systemRunning(Lcom/android/server/statusbar/StatusBarManagerService;)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->unbindCurrentClientLocked(I)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService;->systemRunning(Lcom/android/server/statusbar/StatusBarManagerService;)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService;->unbindCurrentClientLocked(I)V
PLcom/android/server/inputmethod/InputMethodManagerService;->unbindCurrentMethodLocked()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->updateCurrentProfileIds()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->updateFromSettingsLocked(Z)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->updateInputMethodsFromSettingsLocked(Z)V
-PLcom/android/server/inputmethod/InputMethodManagerService;->updateKeyboardFromSettingsLocked()V
-PLcom/android/server/inputmethod/InputMethodManagerService;->updateSystemUiLocked(II)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;-><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$1;)V
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;->access$100(Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;)Ljava/util/List;
-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/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$InputMethodAndSubtypeList;-><init>(Landroid/content/Context;Lcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;)V
-HPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$InputMethodAndSubtypeList;->getSortedInputMethodAndSubtypeList(ZZ)Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$StaticRotationList;-><init>(Ljava/util/List;)V
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$StaticRotationList;->access$300(Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$StaticRotationList;)Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;-><init>(Lcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;Landroid/content/Context;)V
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;->createInstanceLocked(Lcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;Landroid/content/Context;)Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;
-PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;->resetCircularListLocked(Landroid/content/Context;)V
-PLcom/android/server/inputmethod/InputMethodSystemProperty;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodSystemProperty;->getMultiClientImeComponentName()Landroid/content/ComponentName;
-PLcom/android/server/inputmethod/InputMethodUtils$1;-><init>()V
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;-><init>(Landroid/content/res/Resources;Landroid/content/ContentResolver;Landroid/util/ArrayMap;IZ)V
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->addSubtypeToHistory(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->buildInputMethodsAndSubtypeList(Ljava/lang/String;Landroid/text/TextUtils$SimpleStringSplitter;Landroid/text/TextUtils$SimpleStringSplitter;)Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->createEnabledInputMethodListLocked(Ljava/util/List;)Ljava/util/ArrayList;
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getBoolean(Ljava/lang/String;Z)Z
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getCurrentUserId()I
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getEnabledInputMethodListLocked()Ljava/util/ArrayList;
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getEnabledInputMethodSubtypeListLocked(Landroid/content/Context;Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List;
-HPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getEnabledInputMethodSubtypeListLocked(Landroid/view/inputmethod/InputMethodInfo;)Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getEnabledInputMethodsAndSubtypeListLocked()Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getEnabledInputMethodsStr()Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getInt(Ljava/lang/String;I)I
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getSelectedInputMethod()Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getSelectedInputMethodSubtypeHashCode()I
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getSelectedInputMethodSubtypeId(Ljava/lang/String;)I
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getSubtypeHistoryStr()Ljava/lang/String;
+HSPLcom/android/server/inputmethod/InputMethodManagerService;->updateCurrentProfileIds()V
+HSPLcom/android/server/inputmethod/InputMethodManagerService;->updateFromSettingsLocked(Z)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService;->updateInputMethodsFromSettingsLocked(Z)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService;->updateKeyboardFromSettingsLocked()V
+PLcom/android/server/inputmethod/InputMethodManagerService;->updateStatusIcon(Landroid/os/IBinder;Ljava/lang/String;I)V
+HSPLcom/android/server/inputmethod/InputMethodManagerService;->updateSystemUiLocked(II)V
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ControllerImpl;-><init>(Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$StaticRotationList;)V
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ControllerImpl;->createFrom(Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ControllerImpl;Ljava/util/List;)Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ControllerImpl;
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ControllerImpl;->filterImeSubtypeList(Ljava/util/List;Z)Ljava/util/List;
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;-><clinit>()V
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;-><init>(Ljava/util/List;)V
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;-><init>(Ljava/util/List;Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$1;)V
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;->access$100(Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;)Ljava/util/List;
+PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;->dump(Landroid/util/Printer;Ljava/lang/String;)V
+PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRotationList;->getUsageRank(Landroid/view/inputmethod/InputMethodInfo;Landroid/view/inputmethod/InputMethodSubtype;)I
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;-><init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/view/inputmethod/InputMethodInfo;ILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;->equals(Ljava/lang/Object;)Z
+PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;->toString()Ljava/lang/String;
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$InputMethodAndSubtypeList;-><init>(Landroid/content/Context;Lcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;)V
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$InputMethodAndSubtypeList;->getSortedInputMethodAndSubtypeList(ZZ)Ljava/util/List;
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$StaticRotationList;-><init>(Ljava/util/List;)V
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$StaticRotationList;->access$300(Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$StaticRotationList;)Ljava/util/List;
+PLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$StaticRotationList;->dump(Landroid/util/Printer;Ljava/lang/String;)V
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;-><clinit>()V
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;-><init>(Lcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;Landroid/content/Context;)V
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;->createInstanceLocked(Lcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;Landroid/content/Context;)Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;
+HSPLcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;->resetCircularListLocked(Landroid/content/Context;)V
+HSPLcom/android/server/inputmethod/InputMethodSystemProperty;-><clinit>()V
+HSPLcom/android/server/inputmethod/InputMethodSystemProperty;->getMultiClientImeComponentName()Landroid/content/ComponentName;
+HSPLcom/android/server/inputmethod/InputMethodUtils$1;-><init>()V
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;-><clinit>()V
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;-><init>(Landroid/content/res/Resources;Landroid/content/ContentResolver;Landroid/util/ArrayMap;IZ)V
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->addSubtypeToHistory(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->buildInputMethodsAndSubtypeList(Ljava/lang/String;Landroid/text/TextUtils$SimpleStringSplitter;Landroid/text/TextUtils$SimpleStringSplitter;)Ljava/util/List;
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->createEnabledInputMethodListLocked(Ljava/util/List;)Ljava/util/ArrayList;
+PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->dumpLocked(Landroid/util/Printer;Ljava/lang/String;)V
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getBoolean(Ljava/lang/String;Z)Z
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getCurrentUserId()I
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getEnabledInputMethodListLocked()Ljava/util/ArrayList;
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getEnabledInputMethodSubtypeListLocked(Landroid/content/Context;Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List;
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getEnabledInputMethodSubtypeListLocked(Landroid/view/inputmethod/InputMethodInfo;)Ljava/util/List;
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getEnabledInputMethodsAndSubtypeListLocked()Ljava/util/List;
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getEnabledInputMethodsStr()Ljava/lang/String;
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getInt(Ljava/lang/String;I)I
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getSelectedInputMethod()Ljava/lang/String;
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getSelectedInputMethodSubtypeHashCode()I
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getSelectedInputMethodSubtypeId(Ljava/lang/String;)I
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->getSubtypeHistoryStr()Ljava/lang/String;
PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->isCurrentProfile(I)Z
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->isShowImeWithHardKeyboardEnabled()Z
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->loadInputMethodAndSubtypeHistoryLocked()Ljava/util/List;
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->putInt(Ljava/lang/String;I)V
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->putSelectedInputMethod(Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->putSelectedSubtype(I)V
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->putString(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->putSubtypeHistoryStr(Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->saveCurrentInputMethodAndSubtypeToHistory(Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->saveSubtypeHistory(Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->setCurrentProfileIds([I)V
-PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->switchCurrentUser(IZ)V
-PLcom/android/server/inputmethod/InputMethodUtils;-><clinit>()V
-PLcom/android/server/inputmethod/InputMethodUtils;->access$300()Ljava/lang/String;
-PLcom/android/server/inputmethod/InputMethodUtils;->canAddToLastInputMethod(Landroid/view/inputmethod/InputMethodSubtype;)Z
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->isShowImeWithHardKeyboardEnabled()Z
+PLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->isSubtypeSelected()Z
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->loadInputMethodAndSubtypeHistoryLocked()Ljava/util/List;
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->putInt(Ljava/lang/String;I)V
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->putSelectedInputMethod(Ljava/lang/String;)V
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->putSelectedSubtype(I)V
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->putString(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->putSubtypeHistoryStr(Ljava/lang/String;)V
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->saveCurrentInputMethodAndSubtypeToHistory(Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->saveSubtypeHistory(Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->setCurrentProfileIds([I)V
+HSPLcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;->switchCurrentUser(IZ)V
+HSPLcom/android/server/inputmethod/InputMethodUtils;-><clinit>()V
+HSPLcom/android/server/inputmethod/InputMethodUtils;->access$300()Ljava/lang/String;
+HSPLcom/android/server/inputmethod/InputMethodUtils;->canAddToLastInputMethod(Landroid/view/inputmethod/InputMethodSubtype;)Z
PLcom/android/server/inputmethod/InputMethodUtils;->checkIfPackageBelongsToUid(Landroid/app/AppOpsManager;ILjava/lang/String;)Z
-PLcom/android/server/inputmethod/InputMethodUtils;->getImplicitlyApplicableSubtypesLocked(Landroid/content/res/Resources;Landroid/view/inputmethod/InputMethodInfo;)Ljava/util/ArrayList;
-HPLcom/android/server/inputmethod/InputMethodUtils;->getImplicitlyApplicableSubtypesLockedImpl(Landroid/content/res/Resources;Landroid/view/inputmethod/InputMethodInfo;)Ljava/util/ArrayList;
-PLcom/android/server/inputmethod/InputMethodUtils;->getSubtypeIdFromHashCode(Landroid/view/inputmethod/InputMethodInfo;I)I
-PLcom/android/server/inputmethod/InputMethodUtils;->getSubtypes(Landroid/view/inputmethod/InputMethodInfo;)Ljava/util/ArrayList;
+HSPLcom/android/server/inputmethod/InputMethodUtils;->getImplicitlyApplicableSubtypesLocked(Landroid/content/res/Resources;Landroid/view/inputmethod/InputMethodInfo;)Ljava/util/ArrayList;
+HSPLcom/android/server/inputmethod/InputMethodUtils;->getImplicitlyApplicableSubtypesLockedImpl(Landroid/content/res/Resources;Landroid/view/inputmethod/InputMethodInfo;)Ljava/util/ArrayList;
+HSPLcom/android/server/inputmethod/InputMethodUtils;->getSubtypeIdFromHashCode(Landroid/view/inputmethod/InputMethodInfo;I)I
+HSPLcom/android/server/inputmethod/InputMethodUtils;->getSubtypes(Landroid/view/inputmethod/InputMethodInfo;)Ljava/util/ArrayList;
PLcom/android/server/inputmethod/InputMethodUtils;->resolveUserId(IILjava/io/PrintWriter;)[I
-PLcom/android/server/inputmethod/InputMethodUtils;->setNonSelectedSystemImesDisabledUntilUsed(Landroid/content/pm/IPackageManager;Ljava/util/List;ILjava/lang/String;)V
+HSPLcom/android/server/inputmethod/InputMethodUtils;->setNonSelectedSystemImesDisabledUntilUsed(Landroid/content/pm/IPackageManager;Ljava/util/List;ILjava/lang/String;)V
+HSPLcom/android/server/integrity/AppIntegrityManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/integrity/AppIntegrityManagerService;->onStart()V
+HSPLcom/android/server/integrity/AppIntegrityManagerServiceImpl$1;-><init>(Lcom/android/server/integrity/AppIntegrityManagerServiceImpl;)V
+HSPLcom/android/server/integrity/AppIntegrityManagerServiceImpl;-><init>(Landroid/content/Context;)V
HSPLcom/android/server/lights/Light;-><init>()V
HSPLcom/android/server/lights/LightsManager;-><init>()V
HSPLcom/android/server/lights/LightsService$1;-><init>(Lcom/android/server/lights/LightsService;)V
@@ -8557,428 +10295,492 @@ HSPLcom/android/server/lights/LightsService$LightImpl;-><init>(Lcom/android/serv
HSPLcom/android/server/lights/LightsService$LightImpl;-><init>(Lcom/android/server/lights/LightsService;Landroid/content/Context;ILcom/android/server/lights/LightsService$1;)V
HSPLcom/android/server/lights/LightsService$LightImpl;->setBrightness(I)V
HSPLcom/android/server/lights/LightsService$LightImpl;->setBrightness(II)V
-PLcom/android/server/lights/LightsService$LightImpl;->setColor(I)V
-PLcom/android/server/lights/LightsService$LightImpl;->setFlashing(IIII)V
+HSPLcom/android/server/lights/LightsService$LightImpl;->setColor(I)V
HSPLcom/android/server/lights/LightsService$LightImpl;->setLightLocked(IIIII)V
HSPLcom/android/server/lights/LightsService$LightImpl;->shouldBeInLowPersistenceMode()Z
-PLcom/android/server/lights/LightsService$LightImpl;->turnOff()V
+HSPLcom/android/server/lights/LightsService$LightImpl;->turnOff()V
HSPLcom/android/server/lights/LightsService;-><init>(Landroid/content/Context;)V
HSPLcom/android/server/lights/LightsService;->onBootPhase(I)V
HSPLcom/android/server/lights/LightsService;->onStart()V
-PLcom/android/server/location/-$$Lambda$5U-_NhZgxqnYDZhpyacq4qBxh8k;-><init>(Lcom/android/server/location/GnssSatelliteBlacklistHelper;)V
-PLcom/android/server/location/-$$Lambda$5U-_NhZgxqnYDZhpyacq4qBxh8k;->run()V
+HSPLcom/android/server/location/-$$Lambda$5U-_NhZgxqnYDZhpyacq4qBxh8k;-><init>(Lcom/android/server/location/GnssSatelliteBlacklistHelper;)V
+HSPLcom/android/server/location/-$$Lambda$5U-_NhZgxqnYDZhpyacq4qBxh8k;->run()V
+PLcom/android/server/location/-$$Lambda$7zgzwOWgEFtr6DuyW9EYKot7bHU;-><init>(Lcom/android/server/location/NtpTimeHelper;)V
+PLcom/android/server/location/-$$Lambda$7zgzwOWgEFtr6DuyW9EYKot7bHU;->run()V
PLcom/android/server/location/-$$Lambda$ActivityRecognitionProxy$1$d2hvjp-Sk2zwb2N0mtEiubZ0jBE;-><init>(Lcom/android/server/location/ActivityRecognitionProxy;)V
PLcom/android/server/location/-$$Lambda$ActivityRecognitionProxy$1$d2hvjp-Sk2zwb2N0mtEiubZ0jBE;->run(Landroid/os/IBinder;)V
-HPLcom/android/server/location/-$$Lambda$ContextHubClientBroker$CFacmt7807NhDDkp6CgbkeGnMvQ;-><init>(Landroid/hardware/location/NanoAppMessage;)V
-PLcom/android/server/location/-$$Lambda$ContextHubClientBroker$CFacmt7807NhDDkp6CgbkeGnMvQ;->accept(Landroid/hardware/location/IContextHubClientCallback;)V
-HPLcom/android/server/location/-$$Lambda$ContextHubClientBroker$P9IUEzaG4gP8jALe00of9jdlrGw;-><init>(Lcom/android/server/location/ContextHubClientBroker;Landroid/hardware/location/NanoAppMessage;)V
-PLcom/android/server/location/-$$Lambda$ContextHubClientManager$f15OSYbsSONpkXn7GinnrBPeumw;-><init>(Landroid/hardware/location/NanoAppMessage;)V
-PLcom/android/server/location/-$$Lambda$ContextHubClientManager$f15OSYbsSONpkXn7GinnrBPeumw;->accept(Ljava/lang/Object;)V
+PLcom/android/server/location/-$$Lambda$ContextHubClientBroker$CFacmt7807NhDDkp6CgbkeGnMvQ;-><init>(Landroid/hardware/location/NanoAppMessage;)V
+HPLcom/android/server/location/-$$Lambda$ContextHubClientBroker$CFacmt7807NhDDkp6CgbkeGnMvQ;->accept(Landroid/hardware/location/IContextHubClientCallback;)V
+PLcom/android/server/location/-$$Lambda$ContextHubClientBroker$P9IUEzaG4gP8jALe00of9jdlrGw;-><init>(Lcom/android/server/location/ContextHubClientBroker;Landroid/hardware/location/NanoAppMessage;)V
+HPLcom/android/server/location/-$$Lambda$ContextHubClientBroker$P9IUEzaG4gP8jALe00of9jdlrGw;->get()Ljava/lang/Object;
+HPLcom/android/server/location/-$$Lambda$ContextHubClientManager$f15OSYbsSONpkXn7GinnrBPeumw;-><init>(Landroid/hardware/location/NanoAppMessage;)V
+HPLcom/android/server/location/-$$Lambda$ContextHubClientManager$f15OSYbsSONpkXn7GinnrBPeumw;->accept(Ljava/lang/Object;)V
+PLcom/android/server/location/-$$Lambda$ContextHubService$HPGvKluemttyVfAcSog-eXiJyHE;-><init>(Ljava/io/PrintWriter;)V
+PLcom/android/server/location/-$$Lambda$ContextHubService$HPGvKluemttyVfAcSog-eXiJyHE;->accept(Ljava/lang/Object;)V
PLcom/android/server/location/-$$Lambda$ContextHubService$yrt4Ybb62ufyqsQQMJoTJ2JMw_4;-><init>(Landroid/hardware/location/NanoAppFilter;Ljava/util/ArrayList;)V
PLcom/android/server/location/-$$Lambda$ContextHubService$yrt4Ybb62ufyqsQQMJoTJ2JMw_4;->accept(Ljava/lang/Object;)V
-PLcom/android/server/location/-$$Lambda$ContextHubTransactionManager$sHbjr4TaLEATkCX_yhD2L7ebuxE;-><init>(Lcom/android/server/location/ContextHubTransactionManager;Lcom/android/server/location/ContextHubServiceTransaction;)V
-PLcom/android/server/location/-$$Lambda$GeofenceProxy$nfSKchjbT2ANT9GbYwyAcTjzBwQ;-><init>(Lcom/android/server/location/GeofenceProxy;)V
+HSPLcom/android/server/location/-$$Lambda$ContextHubTransactionManager$sHbjr4TaLEATkCX_yhD2L7ebuxE;-><init>(Lcom/android/server/location/ContextHubTransactionManager;Lcom/android/server/location/ContextHubServiceTransaction;)V
+HSPLcom/android/server/location/-$$Lambda$GeofenceProxy$nfSKchjbT2ANT9GbYwyAcTjzBwQ;-><init>(Lcom/android/server/location/GeofenceProxy;)V
PLcom/android/server/location/-$$Lambda$GeofenceProxy$nfSKchjbT2ANT9GbYwyAcTjzBwQ;->run(Landroid/os/IBinder;)V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$384RrX20Mx6OJsRiqsQcSxYdcZc;-><clinit>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$384RrX20Mx6OJsRiqsQcSxYdcZc;-><init>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$384RrX20Mx6OJsRiqsQcSxYdcZc;->set(I)Z
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$5tBf0Ru8L994vqKbXOeOBj2A-CA;-><clinit>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$5tBf0Ru8L994vqKbXOeOBj2A-CA;-><init>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$5tBf0Ru8L994vqKbXOeOBj2A-CA;->set(I)Z
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$8lp2ukEzg_Agf73p3ka-dqhWUpE;-><clinit>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$8lp2ukEzg_Agf73p3ka-dqhWUpE;-><init>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$8lp2ukEzg_Agf73p3ka-dqhWUpE;->set(I)Z
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$9cfNUAWKKutp5KSqhvHSGJNe0ao;-><clinit>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$9cfNUAWKKutp5KSqhvHSGJNe0ao;-><init>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$9cfNUAWKKutp5KSqhvHSGJNe0ao;->set(I)Z
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$aaV8BigB_1Oil1H82EHUb0zvWPo;-><clinit>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$aaV8BigB_1Oil1H82EHUb0zvWPo;-><init>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$aaV8BigB_1Oil1H82EHUb0zvWPo;->set(I)Z
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$rRu0NBMB8DgPt3DY5__6u_WNl7A;-><clinit>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$rRu0NBMB8DgPt3DY5__6u_WNl7A;-><init>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$rRu0NBMB8DgPt3DY5__6u_WNl7A;->set(I)Z
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$sKzdHBM7V7DxdhcWx1u8hipJYFo;-><clinit>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$sKzdHBM7V7DxdhcWx1u8hipJYFo;-><init>()V
-PLcom/android/server/location/-$$Lambda$GnssConfiguration$1$sKzdHBM7V7DxdhcWx1u8hipJYFo;->set(I)Z
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$384RrX20Mx6OJsRiqsQcSxYdcZc;-><clinit>()V
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$384RrX20Mx6OJsRiqsQcSxYdcZc;-><init>()V
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$384RrX20Mx6OJsRiqsQcSxYdcZc;->set(I)Z
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$5tBf0Ru8L994vqKbXOeOBj2A-CA;-><clinit>()V
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$5tBf0Ru8L994vqKbXOeOBj2A-CA;-><init>()V
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$5tBf0Ru8L994vqKbXOeOBj2A-CA;->set(I)Z
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$8lp2ukEzg_Agf73p3ka-dqhWUpE;-><clinit>()V
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$8lp2ukEzg_Agf73p3ka-dqhWUpE;-><init>()V
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$8lp2ukEzg_Agf73p3ka-dqhWUpE;->set(I)Z
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$9cfNUAWKKutp5KSqhvHSGJNe0ao;-><clinit>()V
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$9cfNUAWKKutp5KSqhvHSGJNe0ao;-><init>()V
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$9cfNUAWKKutp5KSqhvHSGJNe0ao;->set(I)Z
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$aaV8BigB_1Oil1H82EHUb0zvWPo;-><clinit>()V
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$aaV8BigB_1Oil1H82EHUb0zvWPo;-><init>()V
+HSPLcom/android/server/location/-$$Lambda$GnssConfiguration$1$aaV8BigB_1Oil1H82EHUb0zvWPo;->set(I)Z
PLcom/android/server/location/-$$Lambda$GnssLocationProvider$3-p6UujuU3pwMrR_jYW3uvQiXNM;-><init>(Lcom/android/server/location/GnssLocationProvider;ILandroid/location/Location;)V
PLcom/android/server/location/-$$Lambda$GnssLocationProvider$3-p6UujuU3pwMrR_jYW3uvQiXNM;->run()V
-PLcom/android/server/location/-$$Lambda$GnssLocationProvider$Q6M8z_ZBiD7BNs3kvNmVrqoHSng;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$Q6M8z_ZBiD7BNs3kvNmVrqoHSng;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
PLcom/android/server/location/-$$Lambda$GnssLocationProvider$Q6M8z_ZBiD7BNs3kvNmVrqoHSng;->onNetworkAvailable()V
-PLcom/android/server/location/-$$Lambda$GnssLocationProvider$_xEBoJSNGaiPvO5kj-sfJB7tZYk;-><init>(Lcom/android/server/location/GnssLocationProvider;[I[I)V
-PLcom/android/server/location/-$$Lambda$GnssLocationProvider$_xEBoJSNGaiPvO5kj-sfJB7tZYk;->run()V
+HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$_xEBoJSNGaiPvO5kj-sfJB7tZYk;-><init>(Lcom/android/server/location/GnssLocationProvider;[I[I)V
+HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$_xEBoJSNGaiPvO5kj-sfJB7tZYk;->run()V
PLcom/android/server/location/-$$Lambda$GnssLocationProvider$adAUsgD5mK9uoxw0KEjaMYtp_Ro;-><init>(Lcom/android/server/location/GnssLocationProvider;II)V
PLcom/android/server/location/-$$Lambda$GnssLocationProvider$adAUsgD5mK9uoxw0KEjaMYtp_Ro;->run()V
-PLcom/android/server/location/-$$Lambda$GnssLocationProvider$cSSwMZHkxTRwFeOp8gWaG_qGZ5A;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$cSSwMZHkxTRwFeOp8gWaG_qGZ5A;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
PLcom/android/server/location/-$$Lambda$GnssLocationProvider$cSSwMZHkxTRwFeOp8gWaG_qGZ5A;->onDeviceStationaryChanged(Z)V
-PLcom/android/server/location/-$$Lambda$GnssLocationProvider$ecDMZdWsEh2URVlhxaEdh1Ifjc8;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$ecDMZdWsEh2URVlhxaEdh1Ifjc8;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
PLcom/android/server/location/-$$Lambda$GnssLocationProvider$ecDMZdWsEh2URVlhxaEdh1Ifjc8;->getGnssMetricsAsProtoString()Ljava/lang/String;
PLcom/android/server/location/-$$Lambda$GnssLocationProvider$iKRZ4-bb3otAVYEgv859Z4uWXAo;-><init>(Lcom/android/server/location/GnssLocationProvider;ILandroid/location/Location;IJ)V
PLcom/android/server/location/-$$Lambda$GnssLocationProvider$iKRZ4-bb3otAVYEgv859Z4uWXAo;->run()V
-PLcom/android/server/location/-$$Lambda$GnssLocationProvider$jmXMIeP-Oz1yyVRIDOicfl2ucfI;-><init>(Lcom/android/server/location/GnssLocationProvider;I)V
-PLcom/android/server/location/-$$Lambda$GnssLocationProvider$jmXMIeP-Oz1yyVRIDOicfl2ucfI;->run()V
+HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$jmXMIeP-Oz1yyVRIDOicfl2ucfI;-><init>(Lcom/android/server/location/GnssLocationProvider;I)V
+HSPLcom/android/server/location/-$$Lambda$GnssLocationProvider$jmXMIeP-Oz1yyVRIDOicfl2ucfI;->run()V
+HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$nZP4qF7PEET3HrkcVZAYhG3Bm0c;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/location/GnssMeasurementsEvent;)V
+HPLcom/android/server/location/-$$Lambda$GnssLocationProvider$nZP4qF7PEET3HrkcVZAYhG3Bm0c;->run()V
PLcom/android/server/location/-$$Lambda$GnssLocationProvider$rgfO__O6aj3JBohawF88T-AfsaY;-><init>(Lcom/android/server/location/GnssLocationProvider;II)V
PLcom/android/server/location/-$$Lambda$GnssLocationProvider$rgfO__O6aj3JBohawF88T-AfsaY;->run()V
PLcom/android/server/location/-$$Lambda$GnssLocationProvider$zDU-4stA5kbnbj2CmSK2PauyroM;-><init>(Lcom/android/server/location/GnssLocationProvider$LocationChangeListener;Ljava/lang/String;Landroid/location/LocationManager;)V
PLcom/android/server/location/-$$Lambda$GnssLocationProvider$zDU-4stA5kbnbj2CmSK2PauyroM;->run()V
+HPLcom/android/server/location/-$$Lambda$GnssMeasurementsProvider$Qlkb-fzzYggD17FlZmrylRJr2vE;-><init>(Lcom/android/server/location/GnssMeasurementsProvider;Landroid/location/GnssMeasurementsEvent;)V
+PLcom/android/server/location/-$$Lambda$GnssMeasurementsProvider$Qlkb-fzzYggD17FlZmrylRJr2vE;->execute(Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
+PLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$0MNjUouf1HJVcFD10rzoJIkzCrw;-><init>(I)V
+PLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$0MNjUouf1HJVcFD10rzoJIkzCrw;->execute(Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
PLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$6s2HBSMgP5pXrugfCvtIf9QHndI;-><clinit>()V
PLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$6s2HBSMgP5pXrugfCvtIf9QHndI;-><init>()V
PLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$6s2HBSMgP5pXrugfCvtIf9QHndI;->execute(Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
HPLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$AtHI8E6PAjonHH1N0ZGabW0VF6c;-><init>(Lcom/android/server/location/GnssStatusListenerHelper;JLjava/lang/String;)V
-PLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$AtHI8E6PAjonHH1N0ZGabW0VF6c;->execute(Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
+HPLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$AtHI8E6PAjonHH1N0ZGabW0VF6c;->execute(Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
PLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$H9Tg_OtCE9BSJiAQYs_ITHFpiHU;-><clinit>()V
PLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$H9Tg_OtCE9BSJiAQYs_ITHFpiHU;-><init>()V
PLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$H9Tg_OtCE9BSJiAQYs_ITHFpiHU;->execute(Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
-PLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$WA8CUTRQeFIyZhMJFtziHItmYNA;-><init>(Lcom/android/server/location/GnssStatusListenerHelper;I[I[F[F[F[F[F)V
-PLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$WA8CUTRQeFIyZhMJFtziHItmYNA;->execute(Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
+HPLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$WA8CUTRQeFIyZhMJFtziHItmYNA;-><init>(Lcom/android/server/location/GnssStatusListenerHelper;I[I[F[F[F[F[F)V
+HPLcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$WA8CUTRQeFIyZhMJFtziHItmYNA;->execute(Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
+HSPLcom/android/server/location/-$$Lambda$GnssVisibilityControl$FLGfeDaxF8J3CE9m-TcOXh5j6ow;-><init>(Lcom/android/server/location/GnssVisibilityControl;)V
+HSPLcom/android/server/location/-$$Lambda$GnssVisibilityControl$FLGfeDaxF8J3CE9m-TcOXh5j6ow;->run()V
+HSPLcom/android/server/location/-$$Lambda$GnssVisibilityControl$WNe_V-oiVnZtOTinPJBWWgUSctQ;-><init>(Lcom/android/server/location/GnssVisibilityControl;Z)V
+HSPLcom/android/server/location/-$$Lambda$GnssVisibilityControl$WNe_V-oiVnZtOTinPJBWWgUSctQ;->run()V
+HSPLcom/android/server/location/-$$Lambda$GnssVisibilityControl$YLPk0FuuEUrv7lfRNYvhNb6uKic;-><init>(Lcom/android/server/location/GnssVisibilityControl;Ljava/util/List;)V
+HSPLcom/android/server/location/-$$Lambda$GnssVisibilityControl$YLPk0FuuEUrv7lfRNYvhNb6uKic;->run()V
+HSPLcom/android/server/location/-$$Lambda$GnssVisibilityControl$cq648s0kLZajRjefd-RR_iUZoiQ;-><init>(Lcom/android/server/location/GnssVisibilityControl;)V
+HSPLcom/android/server/location/-$$Lambda$GnssVisibilityControl$ezKd0QctWKgyrEvPFQUXWNBxlNg;-><init>(Lcom/android/server/location/GnssVisibilityControl;Ljava/lang/Runnable;)V
+HSPLcom/android/server/location/-$$Lambda$GnssVisibilityControl$ezKd0QctWKgyrEvPFQUXWNBxlNg;->run()V
PLcom/android/server/location/-$$Lambda$LocationProviderProxy$2$QT3uzVX4fLIc1b7F_cP9P1hzluA;-><init>(Lcom/android/server/location/LocationProviderProxy;)V
PLcom/android/server/location/-$$Lambda$LocationProviderProxy$2$QT3uzVX4fLIc1b7F_cP9P1hzluA;->run(Landroid/os/IBinder;)V
-PLcom/android/server/location/-$$Lambda$LocationProviderProxy$ogMhKVFSASoXJPyFn-xsjSkNpe0;-><init>(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
-PLcom/android/server/location/-$$Lambda$LocationProviderProxy$ogMhKVFSASoXJPyFn-xsjSkNpe0;->run(Landroid/os/IBinder;)V
-PLcom/android/server/location/-$$Lambda$LocationSettingsStore$FSM6khNR8gXmFeTsAWvdXgk6aYY;-><clinit>()V
-PLcom/android/server/location/-$$Lambda$LocationSettingsStore$FSM6khNR8gXmFeTsAWvdXgk6aYY;-><init>()V
+HPLcom/android/server/location/-$$Lambda$LocationProviderProxy$ogMhKVFSASoXJPyFn-xsjSkNpe0;-><init>(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
+HPLcom/android/server/location/-$$Lambda$LocationProviderProxy$ogMhKVFSASoXJPyFn-xsjSkNpe0;->run(Landroid/os/IBinder;)V
+HSPLcom/android/server/location/-$$Lambda$LocationSettingsStore$FSM6khNR8gXmFeTsAWvdXgk6aYY;-><clinit>()V
+HSPLcom/android/server/location/-$$Lambda$LocationSettingsStore$FSM6khNR8gXmFeTsAWvdXgk6aYY;-><init>()V
PLcom/android/server/location/-$$Lambda$LocationSettingsStore$FSM6khNR8gXmFeTsAWvdXgk6aYY;->get()Ljava/lang/Object;
-PLcom/android/server/location/-$$Lambda$LocationSettingsStore$k_IS3lfsliNZ8moQnq2NpYztkWE;-><clinit>()V
-PLcom/android/server/location/-$$Lambda$LocationSettingsStore$k_IS3lfsliNZ8moQnq2NpYztkWE;-><init>()V
+HSPLcom/android/server/location/-$$Lambda$LocationSettingsStore$k_IS3lfsliNZ8moQnq2NpYztkWE;-><clinit>()V
+HSPLcom/android/server/location/-$$Lambda$LocationSettingsStore$k_IS3lfsliNZ8moQnq2NpYztkWE;-><init>()V
+PLcom/android/server/location/-$$Lambda$LocationSettingsStore$k_IS3lfsliNZ8moQnq2NpYztkWE;->get()Ljava/lang/Object;
PLcom/android/server/location/-$$Lambda$NtpTimeHelper$xPxgficKWFyuwUj60WMuiGEEjdg;-><init>(Lcom/android/server/location/NtpTimeHelper;JJJ)V
PLcom/android/server/location/-$$Lambda$NtpTimeHelper$xPxgficKWFyuwUj60WMuiGEEjdg;->run()V
PLcom/android/server/location/-$$Lambda$NtpTimeHelper$xWqlqJuq4jBJ5-xhFLCwEKGVB0k;-><init>(Lcom/android/server/location/NtpTimeHelper;)V
PLcom/android/server/location/-$$Lambda$NtpTimeHelper$xWqlqJuq4jBJ5-xhFLCwEKGVB0k;->run()V
PLcom/android/server/location/-$$Lambda$RemoteListenerHelper$0Rlnad83RE1JdiVK0ULOLm530JM;-><init>(Lcom/android/server/location/RemoteListenerHelper;)V
PLcom/android/server/location/-$$Lambda$RemoteListenerHelper$0Rlnad83RE1JdiVK0ULOLm530JM;->run()V
-PLcom/android/server/location/AbstractLocationProvider;-><init>(Landroid/content/Context;Lcom/android/server/location/AbstractLocationProvider$LocationProviderManager;)V
+HSPLcom/android/server/location/AbstractLocationProvider;-><init>(Landroid/content/Context;Lcom/android/server/location/AbstractLocationProvider$LocationProviderManager;)V
PLcom/android/server/location/AbstractLocationProvider;->getProviderPackages()Ljava/util/List;
PLcom/android/server/location/AbstractLocationProvider;->reportLocation(Landroid/location/Location;)V
-PLcom/android/server/location/AbstractLocationProvider;->setEnabled(Z)V
-PLcom/android/server/location/AbstractLocationProvider;->setProperties(Lcom/android/internal/location/ProviderProperties;)V
-PLcom/android/server/location/ActivityRecognitionProxy$1;-><init>(Lcom/android/server/location/ActivityRecognitionProxy;Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;IIILandroid/os/Handler;)V
+HSPLcom/android/server/location/AbstractLocationProvider;->setEnabled(Z)V
+HSPLcom/android/server/location/AbstractLocationProvider;->setProperties(Lcom/android/internal/location/ProviderProperties;)V
+HSPLcom/android/server/location/ActivityRecognitionProxy$1;-><init>(Lcom/android/server/location/ActivityRecognitionProxy;Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;IIILandroid/os/Handler;)V
+PLcom/android/server/location/ActivityRecognitionProxy$1;->lambda$onBind$0(Lcom/android/server/location/ActivityRecognitionProxy;Landroid/os/IBinder;)V
PLcom/android/server/location/ActivityRecognitionProxy$1;->onBind()V
-PLcom/android/server/location/ActivityRecognitionProxy;-><init>(Landroid/content/Context;ZLandroid/hardware/location/ActivityRecognitionHardware;III)V
-PLcom/android/server/location/ActivityRecognitionProxy;->createAndBind(Landroid/content/Context;ZLandroid/hardware/location/ActivityRecognitionHardware;III)Lcom/android/server/location/ActivityRecognitionProxy;
+HSPLcom/android/server/location/ActivityRecognitionProxy;-><init>(Landroid/content/Context;ZLandroid/hardware/location/ActivityRecognitionHardware;III)V
+PLcom/android/server/location/ActivityRecognitionProxy;->access$000(Lcom/android/server/location/ActivityRecognitionProxy;Landroid/os/IBinder;)V
+HSPLcom/android/server/location/ActivityRecognitionProxy;->createAndBind(Landroid/content/Context;ZLandroid/hardware/location/ActivityRecognitionHardware;III)Lcom/android/server/location/ActivityRecognitionProxy;
PLcom/android/server/location/ActivityRecognitionProxy;->initializeService(Landroid/os/IBinder;)V
-PLcom/android/server/location/CallerIdentity;-><init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/location/CallerIdentity;-><init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/location/ComprehensiveCountryDetector$1;-><init>(Lcom/android/server/location/ComprehensiveCountryDetector;)V
PLcom/android/server/location/ComprehensiveCountryDetector$2;-><init>(Lcom/android/server/location/ComprehensiveCountryDetector;Landroid/location/Country;Landroid/location/Country;ZZ)V
PLcom/android/server/location/ComprehensiveCountryDetector$2;->run()V
+PLcom/android/server/location/ComprehensiveCountryDetector$3;-><init>(Lcom/android/server/location/ComprehensiveCountryDetector;)V
PLcom/android/server/location/ComprehensiveCountryDetector$4;-><init>(Lcom/android/server/location/ComprehensiveCountryDetector;)V
PLcom/android/server/location/ComprehensiveCountryDetector;-><init>(Landroid/content/Context;)V
PLcom/android/server/location/ComprehensiveCountryDetector;->addPhoneStateListener()V
PLcom/android/server/location/ComprehensiveCountryDetector;->addToLogs(Landroid/location/Country;)V
PLcom/android/server/location/ComprehensiveCountryDetector;->cancelLocationRefresh()V
+PLcom/android/server/location/ComprehensiveCountryDetector;->detectCountry()Landroid/location/Country;
+PLcom/android/server/location/ComprehensiveCountryDetector;->detectCountry(ZZ)Landroid/location/Country;
+PLcom/android/server/location/ComprehensiveCountryDetector;->getCountry()Landroid/location/Country;
+PLcom/android/server/location/ComprehensiveCountryDetector;->getNetworkBasedCountry()Landroid/location/Country;
+PLcom/android/server/location/ComprehensiveCountryDetector;->isNetworkCountryCodeAvailable()Z
PLcom/android/server/location/ComprehensiveCountryDetector;->removePhoneStateListener()V
PLcom/android/server/location/ComprehensiveCountryDetector;->runAfterDetection(Landroid/location/Country;Landroid/location/Country;ZZ)V
+PLcom/android/server/location/ComprehensiveCountryDetector;->runAfterDetectionAsync(Landroid/location/Country;Landroid/location/Country;ZZ)V
+PLcom/android/server/location/ComprehensiveCountryDetector;->scheduleLocationRefresh()V
PLcom/android/server/location/ComprehensiveCountryDetector;->setCountryListener(Landroid/location/CountryListener;)V
PLcom/android/server/location/ComprehensiveCountryDetector;->stopLocationBasedDetector()V
-PLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;-><init>(Lcom/android/server/location/ContextHubClientBroker;)V
-PLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;->isValid()Z
-PLcom/android/server/location/ContextHubClientBroker;-><init>(Landroid/content/Context;Landroid/hardware/contexthub/V1_0/IContexthub;Lcom/android/server/location/ContextHubClientManager;Landroid/hardware/location/ContextHubInfo;SLandroid/hardware/location/IContextHubClientCallback;)V
-PLcom/android/server/location/ContextHubClientBroker;->attachDeathRecipient()V
+HSPLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;-><init>(Lcom/android/server/location/ContextHubClientBroker;)V
+PLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;-><init>(Lcom/android/server/location/ContextHubClientBroker;Landroid/app/PendingIntent;J)V
+PLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;->getNanoAppId()J
+PLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;->getPendingIntent()Landroid/app/PendingIntent;
+PLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;->hasPendingIntent()Z
+HSPLcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;->isValid()Z
+PLcom/android/server/location/ContextHubClientBroker;-><init>(Landroid/content/Context;Landroid/hardware/contexthub/V1_0/IContexthub;Lcom/android/server/location/ContextHubClientManager;Landroid/hardware/location/ContextHubInfo;SLandroid/app/PendingIntent;J)V
+HSPLcom/android/server/location/ContextHubClientBroker;-><init>(Landroid/content/Context;Landroid/hardware/contexthub/V1_0/IContexthub;Lcom/android/server/location/ContextHubClientManager;Landroid/hardware/location/ContextHubInfo;SLandroid/hardware/location/IContextHubClientCallback;)V
+HSPLcom/android/server/location/ContextHubClientBroker;->attachDeathRecipient()V
PLcom/android/server/location/ContextHubClientBroker;->binderDied()V
PLcom/android/server/location/ContextHubClientBroker;->close()V
-PLcom/android/server/location/ContextHubClientBroker;->getAttachedContextHubId()I
-PLcom/android/server/location/ContextHubClientBroker;->getHostEndPointId()S
-PLcom/android/server/location/ContextHubClientBroker;->invokeCallback(Lcom/android/server/location/ContextHubClientBroker$CallbackConsumer;)V
+HPLcom/android/server/location/ContextHubClientBroker;->createIntent(I)Landroid/content/Intent;
+HPLcom/android/server/location/ContextHubClientBroker;->createIntent(IJ)Landroid/content/Intent;
+HPLcom/android/server/location/ContextHubClientBroker;->doSendPendingIntent(Landroid/app/PendingIntent;Landroid/content/Intent;)V
+HSPLcom/android/server/location/ContextHubClientBroker;->getAttachedContextHubId()I
+HSPLcom/android/server/location/ContextHubClientBroker;->getHostEndPointId()S
+HPLcom/android/server/location/ContextHubClientBroker;->hasPendingIntent(Landroid/app/PendingIntent;J)Z
+HPLcom/android/server/location/ContextHubClientBroker;->invokeCallback(Lcom/android/server/location/ContextHubClientBroker$CallbackConsumer;)V
PLcom/android/server/location/ContextHubClientBroker;->isRegistered()Z
+PLcom/android/server/location/ContextHubClientBroker;->lambda$sendMessageToClient$0(Landroid/hardware/location/NanoAppMessage;Landroid/hardware/location/IContextHubClientCallback;)V
+HPLcom/android/server/location/ContextHubClientBroker;->lambda$sendMessageToClient$1$ContextHubClientBroker(Landroid/hardware/location/NanoAppMessage;)Landroid/content/Intent;
PLcom/android/server/location/ContextHubClientBroker;->onClientExit()V
-PLcom/android/server/location/ContextHubClientBroker;->sendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;)I
-PLcom/android/server/location/ContextHubClientBroker;->sendPendingIntent(Ljava/util/function/Supplier;J)V
-PLcom/android/server/location/ContextHubClientBroker;->toString()Ljava/lang/String;
-PLcom/android/server/location/ContextHubClientManager$ConcurrentLinkedEvictingDeque;-><init>(Lcom/android/server/location/ContextHubClientManager;I)V
-PLcom/android/server/location/ContextHubClientManager$ConcurrentLinkedEvictingDeque;->add(Ljava/lang/Object;)Z
-PLcom/android/server/location/ContextHubClientManager$RegistrationRecord;-><init>(Lcom/android/server/location/ContextHubClientManager;Ljava/lang/String;I)V
-PLcom/android/server/location/ContextHubClientManager;-><init>(Landroid/content/Context;Landroid/hardware/contexthub/V1_0/IContexthub;)V
-PLcom/android/server/location/ContextHubClientManager;->forEachClientOfHub(ILjava/util/function/Consumer;)V
-PLcom/android/server/location/ContextHubClientManager;->getHostEndPointId()S
+PLcom/android/server/location/ContextHubClientBroker;->sendMessageToClient(Landroid/hardware/location/NanoAppMessage;)V
+HPLcom/android/server/location/ContextHubClientBroker;->sendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;)I
+HPLcom/android/server/location/ContextHubClientBroker;->sendPendingIntent(Ljava/util/function/Supplier;J)V
+HSPLcom/android/server/location/ContextHubClientBroker;->toString()Ljava/lang/String;
+HSPLcom/android/server/location/ContextHubClientManager$ConcurrentLinkedEvictingDeque;-><init>(Lcom/android/server/location/ContextHubClientManager;I)V
+HSPLcom/android/server/location/ContextHubClientManager$ConcurrentLinkedEvictingDeque;->add(Ljava/lang/Object;)Z
+HSPLcom/android/server/location/ContextHubClientManager$RegistrationRecord;-><init>(Lcom/android/server/location/ContextHubClientManager;Ljava/lang/String;I)V
+PLcom/android/server/location/ContextHubClientManager$RegistrationRecord;->toString()Ljava/lang/String;
+HSPLcom/android/server/location/ContextHubClientManager;-><init>(Landroid/content/Context;Landroid/hardware/contexthub/V1_0/IContexthub;)V
+PLcom/android/server/location/ContextHubClientManager;->broadcastMessage(ILandroid/hardware/location/NanoAppMessage;)V
+HPLcom/android/server/location/ContextHubClientManager;->forEachClientOfHub(ILjava/util/function/Consumer;)V
+HPLcom/android/server/location/ContextHubClientManager;->getClientBroker(ILandroid/app/PendingIntent;J)Lcom/android/server/location/ContextHubClientBroker;
+HSPLcom/android/server/location/ContextHubClientManager;->getHostEndPointId()S
+PLcom/android/server/location/ContextHubClientManager;->lambda$broadcastMessage$4(Landroid/hardware/location/NanoAppMessage;Lcom/android/server/location/ContextHubClientBroker;)V
HPLcom/android/server/location/ContextHubClientManager;->onMessageFromNanoApp(ILandroid/hardware/contexthub/V1_0/ContextHubMsg;)V
-PLcom/android/server/location/ContextHubClientManager;->registerClient(Landroid/hardware/location/ContextHubInfo;Landroid/hardware/location/IContextHubClientCallback;)Landroid/hardware/location/IContextHubClient;
+HPLcom/android/server/location/ContextHubClientManager;->registerClient(Landroid/hardware/location/ContextHubInfo;Landroid/app/PendingIntent;J)Landroid/hardware/location/IContextHubClient;
+HSPLcom/android/server/location/ContextHubClientManager;->registerClient(Landroid/hardware/location/ContextHubInfo;Landroid/hardware/location/IContextHubClientCallback;)Landroid/hardware/location/IContextHubClient;
+PLcom/android/server/location/ContextHubClientManager;->toString()Ljava/lang/String;
PLcom/android/server/location/ContextHubClientManager;->unregisterClient(S)V
-PLcom/android/server/location/ContextHubService$1;-><init>(Lcom/android/server/location/ContextHubService;I)V
+HSPLcom/android/server/location/ContextHubService$1;-><init>(Lcom/android/server/location/ContextHubService;I)V
PLcom/android/server/location/ContextHubService$1;->onMessageFromNanoApp(Landroid/hardware/location/NanoAppMessage;)V
-PLcom/android/server/location/ContextHubService$4;-><init>(Lcom/android/server/location/ContextHubService;I)V
-PLcom/android/server/location/ContextHubService$4;->onQueryResponse(ILjava/util/List;)V
-PLcom/android/server/location/ContextHubService$ContextHubServiceCallback;-><init>(Lcom/android/server/location/ContextHubService;I)V
-PLcom/android/server/location/ContextHubService$ContextHubServiceCallback;->handleAppsInfo(Ljava/util/ArrayList;)V
+HSPLcom/android/server/location/ContextHubService$4;-><init>(Lcom/android/server/location/ContextHubService;I)V
+HSPLcom/android/server/location/ContextHubService$4;->onQueryResponse(ILjava/util/List;)V
+HSPLcom/android/server/location/ContextHubService$ContextHubServiceCallback;-><init>(Lcom/android/server/location/ContextHubService;I)V
+HSPLcom/android/server/location/ContextHubService$ContextHubServiceCallback;->handleAppsInfo(Ljava/util/ArrayList;)V
PLcom/android/server/location/ContextHubService$ContextHubServiceCallback;->handleClientMsg(Landroid/hardware/contexthub/V1_0/ContextHubMsg;)V
-PLcom/android/server/location/ContextHubService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/ContextHubService;->access$400(Lcom/android/server/location/ContextHubService;ILjava/util/List;)V
-PLcom/android/server/location/ContextHubService;->access$600(Lcom/android/server/location/ContextHubService;III[B)I
+HSPLcom/android/server/location/ContextHubService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/location/ContextHubService;->access$000(Lcom/android/server/location/ContextHubService;ILandroid/hardware/contexthub/V1_0/ContextHubMsg;)V
+HSPLcom/android/server/location/ContextHubService;->access$400(Lcom/android/server/location/ContextHubService;ILjava/util/List;)V
+PLcom/android/server/location/ContextHubService;->access$500(Lcom/android/server/location/ContextHubService;)Lcom/android/server/location/NanoAppStateManager;
+HSPLcom/android/server/location/ContextHubService;->access$600(Lcom/android/server/location/ContextHubService;III[B)I
PLcom/android/server/location/ContextHubService;->checkHalProxyAndContextHubId(ILandroid/hardware/location/IContextHubTransactionCallback;I)Z
PLcom/android/server/location/ContextHubService;->checkPermissions()V
PLcom/android/server/location/ContextHubService;->createClient(ILandroid/hardware/location/IContextHubClientCallback;)Landroid/hardware/location/IContextHubClient;
-PLcom/android/server/location/ContextHubService;->createDefaultClientCallback(I)Landroid/hardware/location/IContextHubClientCallback;
-PLcom/android/server/location/ContextHubService;->createQueryTransactionCallback(I)Landroid/hardware/location/IContextHubTransactionCallback;
+HSPLcom/android/server/location/ContextHubService;->createDefaultClientCallback(I)Landroid/hardware/location/IContextHubClientCallback;
+HPLcom/android/server/location/ContextHubService;->createPendingIntentClient(ILandroid/app/PendingIntent;J)Landroid/hardware/location/IContextHubClient;
+HSPLcom/android/server/location/ContextHubService;->createQueryTransactionCallback(I)Landroid/hardware/location/IContextHubTransactionCallback;
+PLcom/android/server/location/ContextHubService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/location/ContextHubService;->findNanoAppOnHub(ILandroid/hardware/location/NanoAppFilter;)[I
PLcom/android/server/location/ContextHubService;->getContextHubHandles()[I
PLcom/android/server/location/ContextHubService;->getContextHubInfo(I)Landroid/hardware/location/ContextHubInfo;
-PLcom/android/server/location/ContextHubService;->getContextHubProxy()Landroid/hardware/contexthub/V1_0/IContexthub;
+HSPLcom/android/server/location/ContextHubService;->getContextHubProxy()Landroid/hardware/contexthub/V1_0/IContexthub;
PLcom/android/server/location/ContextHubService;->getContextHubs()Ljava/util/List;
PLcom/android/server/location/ContextHubService;->getNanoAppInstanceInfo(I)Landroid/hardware/location/NanoAppInstanceInfo;
-PLcom/android/server/location/ContextHubService;->handleQueryAppsCallback(ILjava/util/List;)V
+PLcom/android/server/location/ContextHubService;->handleClientMessageCallback(ILandroid/hardware/contexthub/V1_0/ContextHubMsg;)V
+HSPLcom/android/server/location/ContextHubService;->handleQueryAppsCallback(ILjava/util/List;)V
PLcom/android/server/location/ContextHubService;->isValidContextHubId(I)Z
-PLcom/android/server/location/ContextHubService;->onMessageReceiptOldApi(III[B)I
+PLcom/android/server/location/ContextHubService;->lambda$findNanoAppOnHub$0(Landroid/hardware/location/NanoAppFilter;Ljava/util/ArrayList;Landroid/hardware/location/NanoAppInstanceInfo;)V
+HSPLcom/android/server/location/ContextHubService;->onMessageReceiptOldApi(III[B)I
PLcom/android/server/location/ContextHubService;->queryNanoApps(ILandroid/hardware/location/IContextHubTransactionCallback;)V
-PLcom/android/server/location/ContextHubService;->queryNanoAppsInternal(I)I
+HSPLcom/android/server/location/ContextHubService;->queryNanoAppsInternal(I)I
PLcom/android/server/location/ContextHubService;->registerCallback(Landroid/hardware/location/IContextHubCallback;)I
PLcom/android/server/location/ContextHubService;->sendMessage(IILandroid/hardware/location/ContextHubMessage;)I
-PLcom/android/server/location/ContextHubServiceTransaction;-><init>(II)V
-PLcom/android/server/location/ContextHubServiceTransaction;->getTimeout(Ljava/util/concurrent/TimeUnit;)J
-PLcom/android/server/location/ContextHubServiceTransaction;->getTransactionType()I
-PLcom/android/server/location/ContextHubServiceTransaction;->setComplete()V
+HSPLcom/android/server/location/ContextHubServiceTransaction;-><init>(II)V
+HSPLcom/android/server/location/ContextHubServiceTransaction;->getTimeout(Ljava/util/concurrent/TimeUnit;)J
+HSPLcom/android/server/location/ContextHubServiceTransaction;->getTransactionType()I
+HSPLcom/android/server/location/ContextHubServiceTransaction;->setComplete()V
PLcom/android/server/location/ContextHubServiceUtil;->checkPermissions(Landroid/content/Context;)V
-PLcom/android/server/location/ContextHubServiceUtil;->copyToByteArrayList([BLjava/util/ArrayList;)V
-PLcom/android/server/location/ContextHubServiceUtil;->createContextHubInfoMap(Ljava/util/List;)Ljava/util/HashMap;
+HPLcom/android/server/location/ContextHubServiceUtil;->copyToByteArrayList([BLjava/util/ArrayList;)V
+HSPLcom/android/server/location/ContextHubServiceUtil;->createContextHubInfoMap(Ljava/util/List;)Ljava/util/HashMap;
PLcom/android/server/location/ContextHubServiceUtil;->createHidlContextHubMessage(SLandroid/hardware/location/NanoAppMessage;)Landroid/hardware/contexthub/V1_0/ContextHubMsg;
-PLcom/android/server/location/ContextHubServiceUtil;->createNanoAppStateList(Ljava/util/List;)Ljava/util/List;
+PLcom/android/server/location/ContextHubServiceUtil;->createNanoAppMessage(Landroid/hardware/contexthub/V1_0/ContextHubMsg;)Landroid/hardware/location/NanoAppMessage;
+HSPLcom/android/server/location/ContextHubServiceUtil;->createNanoAppStateList(Ljava/util/List;)Ljava/util/List;
+HPLcom/android/server/location/ContextHubServiceUtil;->createPrimitiveByteArray(Ljava/util/ArrayList;)[B
PLcom/android/server/location/ContextHubServiceUtil;->createPrimitiveIntArray(Ljava/util/Collection;)[I
PLcom/android/server/location/ContextHubServiceUtil;->toTransactionResult(I)I
-PLcom/android/server/location/ContextHubTransactionManager$5;-><init>(Lcom/android/server/location/ContextHubTransactionManager;IIILandroid/hardware/location/IContextHubTransactionCallback;)V
-PLcom/android/server/location/ContextHubTransactionManager$5;->onQueryResponse(ILjava/util/List;)V
-PLcom/android/server/location/ContextHubTransactionManager$5;->onTransact()I
-PLcom/android/server/location/ContextHubTransactionManager;-><init>(Landroid/hardware/contexthub/V1_0/IContexthub;Lcom/android/server/location/ContextHubClientManager;Lcom/android/server/location/NanoAppStateManager;)V
-PLcom/android/server/location/ContextHubTransactionManager;->access$000(Lcom/android/server/location/ContextHubTransactionManager;)Landroid/hardware/contexthub/V1_0/IContexthub;
-PLcom/android/server/location/ContextHubTransactionManager;->addTransaction(Lcom/android/server/location/ContextHubServiceTransaction;)V
-PLcom/android/server/location/ContextHubTransactionManager;->createQueryTransaction(ILandroid/hardware/location/IContextHubTransactionCallback;)Lcom/android/server/location/ContextHubServiceTransaction;
-PLcom/android/server/location/ContextHubTransactionManager;->onQueryResponse(Ljava/util/List;)V
-PLcom/android/server/location/ContextHubTransactionManager;->removeTransactionAndStartNext()V
-PLcom/android/server/location/ContextHubTransactionManager;->startNextTransaction()V
+HSPLcom/android/server/location/ContextHubTransactionManager$5;-><init>(Lcom/android/server/location/ContextHubTransactionManager;IIILandroid/hardware/location/IContextHubTransactionCallback;)V
+HSPLcom/android/server/location/ContextHubTransactionManager$5;->onQueryResponse(ILjava/util/List;)V
+HSPLcom/android/server/location/ContextHubTransactionManager$5;->onTransact()I
+HSPLcom/android/server/location/ContextHubTransactionManager;-><init>(Landroid/hardware/contexthub/V1_0/IContexthub;Lcom/android/server/location/ContextHubClientManager;Lcom/android/server/location/NanoAppStateManager;)V
+HSPLcom/android/server/location/ContextHubTransactionManager;->access$000(Lcom/android/server/location/ContextHubTransactionManager;)Landroid/hardware/contexthub/V1_0/IContexthub;
+HSPLcom/android/server/location/ContextHubTransactionManager;->addTransaction(Lcom/android/server/location/ContextHubServiceTransaction;)V
+HSPLcom/android/server/location/ContextHubTransactionManager;->createQueryTransaction(ILandroid/hardware/location/IContextHubTransactionCallback;)Lcom/android/server/location/ContextHubServiceTransaction;
+HSPLcom/android/server/location/ContextHubTransactionManager;->onQueryResponse(Ljava/util/List;)V
+HSPLcom/android/server/location/ContextHubTransactionManager;->removeTransactionAndStartNext()V
+HSPLcom/android/server/location/ContextHubTransactionManager;->startNextTransaction()V
PLcom/android/server/location/CountryDetectorBase;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/ExponentialBackOff;-><init>(JJ)V
+HSPLcom/android/server/location/ExponentialBackOff;-><init>(JJ)V
PLcom/android/server/location/ExponentialBackOff;->reset()V
-PLcom/android/server/location/GeocoderProxy;-><init>(Landroid/content/Context;III)V
-PLcom/android/server/location/GeocoderProxy;->bind()Z
-PLcom/android/server/location/GeocoderProxy;->createAndBind(Landroid/content/Context;III)Lcom/android/server/location/GeocoderProxy;
-PLcom/android/server/location/GeofenceManager$GeofenceHandler;-><init>(Lcom/android/server/location/GeofenceManager;Landroid/os/Looper;)V
-PLcom/android/server/location/GeofenceManager$GeofenceHandler;-><init>(Lcom/android/server/location/GeofenceManager;Landroid/os/Looper;Lcom/android/server/location/GeofenceManager$1;)V
-PLcom/android/server/location/GeofenceManager;-><clinit>()V
-PLcom/android/server/location/GeofenceManager;-><init>(Landroid/content/Context;Lcom/android/server/location/LocationSettingsStore;)V
+HSPLcom/android/server/location/GeocoderProxy;-><init>(Landroid/content/Context;III)V
+HSPLcom/android/server/location/GeocoderProxy;->bind()Z
+HSPLcom/android/server/location/GeocoderProxy;->createAndBind(Landroid/content/Context;III)Lcom/android/server/location/GeocoderProxy;
+HSPLcom/android/server/location/GeofenceManager$GeofenceHandler;-><init>(Lcom/android/server/location/GeofenceManager;Landroid/os/Looper;)V
+HSPLcom/android/server/location/GeofenceManager$GeofenceHandler;-><init>(Lcom/android/server/location/GeofenceManager;Landroid/os/Looper;Lcom/android/server/location/GeofenceManager$1;)V
+HSPLcom/android/server/location/GeofenceManager;-><clinit>()V
+HSPLcom/android/server/location/GeofenceManager;-><init>(Landroid/content/Context;Lcom/android/server/location/LocationSettingsStore;)V
PLcom/android/server/location/GeofenceManager;->dump(Ljava/io/PrintWriter;)V
-PLcom/android/server/location/GeofenceProxy$1;-><init>(Lcom/android/server/location/GeofenceProxy;Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;IIILandroid/os/Handler;)V
+HSPLcom/android/server/location/GeofenceProxy$1;-><init>(Lcom/android/server/location/GeofenceProxy;Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;IIILandroid/os/Handler;)V
PLcom/android/server/location/GeofenceProxy$1;->onBind()V
-PLcom/android/server/location/GeofenceProxy$GeofenceProxyServiceConnection;-><init>(Lcom/android/server/location/GeofenceProxy;)V
-PLcom/android/server/location/GeofenceProxy$GeofenceProxyServiceConnection;-><init>(Lcom/android/server/location/GeofenceProxy;Lcom/android/server/location/GeofenceProxy$1;)V
+HSPLcom/android/server/location/GeofenceProxy$GeofenceProxyServiceConnection;-><init>(Lcom/android/server/location/GeofenceProxy;)V
+HSPLcom/android/server/location/GeofenceProxy$GeofenceProxyServiceConnection;-><init>(Lcom/android/server/location/GeofenceProxy;Lcom/android/server/location/GeofenceProxy$1;)V
PLcom/android/server/location/GeofenceProxy$GeofenceProxyServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/location/GeofenceProxy;-><init>(Landroid/content/Context;IIILandroid/location/IGpsGeofenceHardware;Landroid/location/IFusedGeofenceHardware;)V
+HSPLcom/android/server/location/GeofenceProxy;-><init>(Landroid/content/Context;IIILandroid/location/IGpsGeofenceHardware;Landroid/location/IFusedGeofenceHardware;)V
PLcom/android/server/location/GeofenceProxy;->access$000(Lcom/android/server/location/GeofenceProxy;)Lcom/android/server/ServiceWatcher$BinderRunner;
PLcom/android/server/location/GeofenceProxy;->access$200(Lcom/android/server/location/GeofenceProxy;)Landroid/location/IGpsGeofenceHardware;
PLcom/android/server/location/GeofenceProxy;->access$300(Lcom/android/server/location/GeofenceProxy;)Landroid/location/IFusedGeofenceHardware;
PLcom/android/server/location/GeofenceProxy;->access$402(Lcom/android/server/location/GeofenceProxy;Landroid/hardware/location/IGeofenceHardware;)Landroid/hardware/location/IGeofenceHardware;
PLcom/android/server/location/GeofenceProxy;->access$500(Lcom/android/server/location/GeofenceProxy;)Lcom/android/server/ServiceWatcher;
-PLcom/android/server/location/GeofenceProxy;->bind()Z
-PLcom/android/server/location/GeofenceProxy;->createAndBind(Landroid/content/Context;IIILandroid/location/IGpsGeofenceHardware;Landroid/location/IFusedGeofenceHardware;)Lcom/android/server/location/GeofenceProxy;
+HSPLcom/android/server/location/GeofenceProxy;->bind()Z
+HSPLcom/android/server/location/GeofenceProxy;->createAndBind(Landroid/content/Context;IIILandroid/location/IGpsGeofenceHardware;Landroid/location/IFusedGeofenceHardware;)Lcom/android/server/location/GeofenceProxy;
PLcom/android/server/location/GeofenceProxy;->lambda$new$0$GeofenceProxy(Landroid/os/IBinder;)V
-PLcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;-><init>()V
-PLcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;->initBatching()Z
-PLcom/android/server/location/GnssBatchingProvider;-><clinit>()V
-PLcom/android/server/location/GnssBatchingProvider;-><init>()V
-PLcom/android/server/location/GnssBatchingProvider;-><init>(Lcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;)V
-PLcom/android/server/location/GnssBatchingProvider;->access$400()Z
+HSPLcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;-><init>()V
+HSPLcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;->initBatching()Z
+HSPLcom/android/server/location/GnssBatchingProvider;-><clinit>()V
+HSPLcom/android/server/location/GnssBatchingProvider;-><init>()V
+HSPLcom/android/server/location/GnssBatchingProvider;-><init>(Lcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;)V
+HSPLcom/android/server/location/GnssBatchingProvider;->access$400()Z
PLcom/android/server/location/GnssBatchingProvider;->disable()V
-PLcom/android/server/location/GnssBatchingProvider;->enable()V
-PLcom/android/server/location/GnssBatchingProvider;->resumeIfStarted()V
-PLcom/android/server/location/GnssCapabilitiesProvider;-><clinit>()V
-PLcom/android/server/location/GnssCapabilitiesProvider;-><init>()V
-PLcom/android/server/location/GnssCapabilitiesProvider;->hasCapability(II)Z
-PLcom/android/server/location/GnssCapabilitiesProvider;->setTopHalCapabilities(I)V
-PLcom/android/server/location/GnssConfiguration$1;-><init>(Lcom/android/server/location/GnssConfiguration;Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;)V
-PLcom/android/server/location/GnssConfiguration$1;->lambda$new$0(I)Z
-PLcom/android/server/location/GnssConfiguration$1;->lambda$new$1(I)Z
-PLcom/android/server/location/GnssConfiguration$1;->lambda$new$2(I)Z
-PLcom/android/server/location/GnssConfiguration$1;->lambda$new$3(I)Z
-PLcom/android/server/location/GnssConfiguration$1;->lambda$new$4(I)Z
-PLcom/android/server/location/GnssConfiguration$1;->lambda$new$5(I)Z
-PLcom/android/server/location/GnssConfiguration$1;->lambda$new$6(I)Z
-PLcom/android/server/location/GnssConfiguration$HalInterfaceVersion;-><init>(II)V
-PLcom/android/server/location/GnssConfiguration;-><clinit>()V
-PLcom/android/server/location/GnssConfiguration;-><init>(Landroid/content/Context;)V
-PLcom/android/server/location/GnssConfiguration;->access$000(Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;)Z
-PLcom/android/server/location/GnssConfiguration;->access$100(Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;)Z
-PLcom/android/server/location/GnssConfiguration;->access$200(I)Z
-PLcom/android/server/location/GnssConfiguration;->access$300(I)Z
-PLcom/android/server/location/GnssConfiguration;->access$400(I)Z
-PLcom/android/server/location/GnssConfiguration;->access$500(I)Z
-PLcom/android/server/location/GnssConfiguration;->access$600(I)Z
-PLcom/android/server/location/GnssConfiguration;->access$700(I)Z
-PLcom/android/server/location/GnssConfiguration;->access$800(I)Z
-PLcom/android/server/location/GnssConfiguration;->getC2KHost()Ljava/lang/String;
-PLcom/android/server/location/GnssConfiguration;->getC2KPort(I)I
-PLcom/android/server/location/GnssConfiguration;->getEsExtensionSec()I
-PLcom/android/server/location/GnssConfiguration;->getIntConfig(Ljava/lang/String;I)I
-PLcom/android/server/location/GnssConfiguration;->getRangeCheckedConfigEsExtensionSec()I
-PLcom/android/server/location/GnssConfiguration;->getSuplEs(I)I
-PLcom/android/server/location/GnssConfiguration;->getSuplHost()Ljava/lang/String;
-PLcom/android/server/location/GnssConfiguration;->getSuplMode(I)I
-PLcom/android/server/location/GnssConfiguration;->getSuplPort(I)I
-PLcom/android/server/location/GnssConfiguration;->isConfigEsExtensionSecSupported(Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;)Z
-PLcom/android/server/location/GnssConfiguration;->isConfigGpsLockSupported(Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;)Z
-PLcom/android/server/location/GnssConfiguration;->isConfigSuplEsSupported(Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;)Z
-PLcom/android/server/location/GnssConfiguration;->loadPropertiesFromCarrierConfig()V
-PLcom/android/server/location/GnssConfiguration;->loadPropertiesFromGpsDebugConfig(Ljava/util/Properties;)V
-PLcom/android/server/location/GnssConfiguration;->logConfigurations()V
-PLcom/android/server/location/GnssConfiguration;->reloadGpsProperties()V
-PLcom/android/server/location/GnssConfiguration;->setSatelliteBlacklist([I[I)V
+HSPLcom/android/server/location/GnssBatchingProvider;->enable()V
+HSPLcom/android/server/location/GnssBatchingProvider;->resumeIfStarted()V
+HSPLcom/android/server/location/GnssCapabilitiesProvider;-><clinit>()V
+HSPLcom/android/server/location/GnssCapabilitiesProvider;-><init>()V
+HSPLcom/android/server/location/GnssCapabilitiesProvider;->hasCapability(II)Z
+HSPLcom/android/server/location/GnssCapabilitiesProvider;->setTopHalCapabilities(I)V
+HSPLcom/android/server/location/GnssConfiguration$1;-><init>(Lcom/android/server/location/GnssConfiguration;Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;)V
+HSPLcom/android/server/location/GnssConfiguration$1;->lambda$new$0(I)Z
+HSPLcom/android/server/location/GnssConfiguration$1;->lambda$new$1(I)Z
+HSPLcom/android/server/location/GnssConfiguration$1;->lambda$new$3(I)Z
+HSPLcom/android/server/location/GnssConfiguration$1;->lambda$new$4(I)Z
+HSPLcom/android/server/location/GnssConfiguration$1;->lambda$new$5(I)Z
+HSPLcom/android/server/location/GnssConfiguration$HalInterfaceVersion;-><init>(II)V
+HSPLcom/android/server/location/GnssConfiguration;-><clinit>()V
+HSPLcom/android/server/location/GnssConfiguration;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/location/GnssConfiguration;->access$000(Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;)Z
+HSPLcom/android/server/location/GnssConfiguration;->access$100(Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;)Z
+HSPLcom/android/server/location/GnssConfiguration;->access$300(I)Z
+HSPLcom/android/server/location/GnssConfiguration;->access$400(I)Z
+HSPLcom/android/server/location/GnssConfiguration;->access$500(I)Z
+HSPLcom/android/server/location/GnssConfiguration;->access$700(I)Z
+HSPLcom/android/server/location/GnssConfiguration;->access$800(I)Z
+HSPLcom/android/server/location/GnssConfiguration;->getC2KHost()Ljava/lang/String;
+HSPLcom/android/server/location/GnssConfiguration;->getC2KPort(I)I
+HSPLcom/android/server/location/GnssConfiguration;->getEsExtensionSec()I
+HSPLcom/android/server/location/GnssConfiguration;->getIntConfig(Ljava/lang/String;I)I
+HSPLcom/android/server/location/GnssConfiguration;->getProxyApps()Ljava/util/List;
+HSPLcom/android/server/location/GnssConfiguration;->getRangeCheckedConfigEsExtensionSec()I
+HSPLcom/android/server/location/GnssConfiguration;->getSuplEs(I)I
+HSPLcom/android/server/location/GnssConfiguration;->getSuplHost()Ljava/lang/String;
+HSPLcom/android/server/location/GnssConfiguration;->getSuplMode(I)I
+HSPLcom/android/server/location/GnssConfiguration;->getSuplPort(I)I
+HSPLcom/android/server/location/GnssConfiguration;->isConfigEsExtensionSecSupported(Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;)Z
+HSPLcom/android/server/location/GnssConfiguration;->isConfigGpsLockSupported(Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;)Z
+HSPLcom/android/server/location/GnssConfiguration;->isConfigSuplEsSupported(Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;)Z
+HSPLcom/android/server/location/GnssConfiguration;->loadPropertiesFromCarrierConfig()V
+HSPLcom/android/server/location/GnssConfiguration;->loadPropertiesFromGpsDebugConfig(Ljava/util/Properties;)V
+HSPLcom/android/server/location/GnssConfiguration;->logConfigurations()V
+HSPLcom/android/server/location/GnssConfiguration;->reloadGpsProperties()V
+HSPLcom/android/server/location/GnssConfiguration;->setSatelliteBlacklist([I[I)V
PLcom/android/server/location/GnssGeofenceProvider$GeofenceEntry;-><init>()V
PLcom/android/server/location/GnssGeofenceProvider$GeofenceEntry;-><init>(Lcom/android/server/location/GnssGeofenceProvider$1;)V
-PLcom/android/server/location/GnssGeofenceProvider$GnssGeofenceProviderNative;-><init>()V
+HSPLcom/android/server/location/GnssGeofenceProvider$GnssGeofenceProviderNative;-><init>()V
PLcom/android/server/location/GnssGeofenceProvider$GnssGeofenceProviderNative;->isGeofenceSupported()Z
-PLcom/android/server/location/GnssGeofenceProvider;-><clinit>()V
-PLcom/android/server/location/GnssGeofenceProvider;-><init>()V
-PLcom/android/server/location/GnssGeofenceProvider;-><init>(Lcom/android/server/location/GnssGeofenceProvider$GnssGeofenceProviderNative;)V
+HSPLcom/android/server/location/GnssGeofenceProvider;-><clinit>()V
+HSPLcom/android/server/location/GnssGeofenceProvider;-><init>()V
+HSPLcom/android/server/location/GnssGeofenceProvider;-><init>(Lcom/android/server/location/GnssGeofenceProvider$GnssGeofenceProviderNative;)V
PLcom/android/server/location/GnssGeofenceProvider;->access$100()Z
PLcom/android/server/location/GnssGeofenceProvider;->access$200(IDDDIIII)Z
PLcom/android/server/location/GnssGeofenceProvider;->addCircularHardwareGeofence(IDDDIIII)Z
PLcom/android/server/location/GnssGeofenceProvider;->isHardwareGeofenceSupported()Z
PLcom/android/server/location/GnssGeofenceProvider;->removeHardwareGeofence(I)Z
-PLcom/android/server/location/GnssGeofenceProvider;->resumeIfStarted()V
-PLcom/android/server/location/GnssLocationProvider$1;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/GnssGeofenceProvider;->resumeIfStarted()V
+HSPLcom/android/server/location/GnssLocationProvider$1;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
PLcom/android/server/location/GnssLocationProvider$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/location/GnssLocationProvider$2;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/location/GnssLocationProvider$2;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/content/Context;Landroid/os/Handler;)V
PLcom/android/server/location/GnssLocationProvider$2;->isAvailableInPlatform()Z
PLcom/android/server/location/GnssLocationProvider$2;->isGpsEnabled()Z
-PLcom/android/server/location/GnssLocationProvider$3;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/location/GnssLocationProvider$3;->isGpsEnabled()Z
-PLcom/android/server/location/GnssLocationProvider$4;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/location/GnssLocationProvider$4;->isGpsEnabled()Z
-PLcom/android/server/location/GnssLocationProvider$5;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
-PLcom/android/server/location/GnssLocationProvider$6;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/os/Handler;)V
+HSPLcom/android/server/location/GnssLocationProvider$3;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/location/GnssLocationProvider$3;->isGpsEnabled()Z
+HSPLcom/android/server/location/GnssLocationProvider$4;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/location/GnssLocationProvider$4;->isGpsEnabled()Z
+HSPLcom/android/server/location/GnssLocationProvider$5;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/GnssLocationProvider$6;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/os/Handler;)V
PLcom/android/server/location/GnssLocationProvider$6;->onChange(Z)V
-PLcom/android/server/location/GnssLocationProvider$7;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
-PLcom/android/server/location/GnssLocationProvider$8;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
-PLcom/android/server/location/GnssLocationProvider$FusedLocationListener;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
-PLcom/android/server/location/GnssLocationProvider$FusedLocationListener;-><init>(Lcom/android/server/location/GnssLocationProvider;Lcom/android/server/location/GnssLocationProvider$1;)V
-PLcom/android/server/location/GnssLocationProvider$GpsRequest;-><init>(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
-PLcom/android/server/location/GnssLocationProvider$LocationChangeListener;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
-PLcom/android/server/location/GnssLocationProvider$LocationChangeListener;-><init>(Lcom/android/server/location/GnssLocationProvider;Lcom/android/server/location/GnssLocationProvider$1;)V
+HSPLcom/android/server/location/GnssLocationProvider$7;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/GnssLocationProvider$8;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/GnssLocationProvider$FusedLocationListener;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/GnssLocationProvider$FusedLocationListener;-><init>(Lcom/android/server/location/GnssLocationProvider;Lcom/android/server/location/GnssLocationProvider$1;)V
+HSPLcom/android/server/location/GnssLocationProvider$GpsRequest;-><init>(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
+HSPLcom/android/server/location/GnssLocationProvider$LocationChangeListener;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/GnssLocationProvider$LocationChangeListener;-><init>(Lcom/android/server/location/GnssLocationProvider;Lcom/android/server/location/GnssLocationProvider$1;)V
PLcom/android/server/location/GnssLocationProvider$LocationChangeListener;->access$1206(Lcom/android/server/location/GnssLocationProvider$LocationChangeListener;)I
-PLcom/android/server/location/GnssLocationProvider$LocationExtras;-><init>()V
+PLcom/android/server/location/GnssLocationProvider$LocationChangeListener;->onProviderDisabled(Ljava/lang/String;)V
+HSPLcom/android/server/location/GnssLocationProvider$LocationExtras;-><init>()V
+PLcom/android/server/location/GnssLocationProvider$LocationExtras;->getBundle()Landroid/os/Bundle;
PLcom/android/server/location/GnssLocationProvider$LocationExtras;->set(III)V
PLcom/android/server/location/GnssLocationProvider$LocationExtras;->setBundle(Landroid/os/Bundle;)V
-PLcom/android/server/location/GnssLocationProvider$NetworkLocationListener;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
-PLcom/android/server/location/GnssLocationProvider$NetworkLocationListener;-><init>(Lcom/android/server/location/GnssLocationProvider;Lcom/android/server/location/GnssLocationProvider$1;)V
+HSPLcom/android/server/location/GnssLocationProvider$NetworkLocationListener;-><init>(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/GnssLocationProvider$NetworkLocationListener;-><init>(Lcom/android/server/location/GnssLocationProvider;Lcom/android/server/location/GnssLocationProvider$1;)V
PLcom/android/server/location/GnssLocationProvider$NetworkLocationListener;->onLocationChanged(Landroid/location/Location;)V
-PLcom/android/server/location/GnssLocationProvider$ProviderHandler;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/os/Looper;)V
-PLcom/android/server/location/GnssLocationProvider$ProviderHandler;->handleInitialize()V
-PLcom/android/server/location/GnssLocationProvider$ProviderHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;-><init>()V
+HSPLcom/android/server/location/GnssLocationProvider$ProviderHandler;-><init>(Lcom/android/server/location/GnssLocationProvider;Landroid/os/Looper;)V
+HSPLcom/android/server/location/GnssLocationProvider$ProviderHandler;->handleInitialize()V
+HSPLcom/android/server/location/GnssLocationProvider$ProviderHandler;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;-><init>()V
PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;-><init>(Lcom/android/server/location/GnssLocationProvider$1;)V
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1400(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)I
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1400(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)I
PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1402(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;I)I
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1500(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[I
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1500(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[I
PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1502(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[I)[I
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1600(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1600(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1602(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1700(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1700(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1702(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1800(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1800(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1802(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1900(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1900(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$1902(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
-PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$2000(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
+HPLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$2000(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)[F
PLcom/android/server/location/GnssLocationProvider$SvStatusInfo;->access$2002(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;[F)[F
-PLcom/android/server/location/GnssLocationProvider;-><clinit>()V
-PLcom/android/server/location/GnssLocationProvider;-><init>(Landroid/content/Context;Lcom/android/server/location/AbstractLocationProvider$LocationProviderManager;Landroid/os/Looper;)V
-PLcom/android/server/location/GnssLocationProvider;->access$1100(Lcom/android/server/location/GnssLocationProvider;)V
-PLcom/android/server/location/GnssLocationProvider;->access$200()Z
-PLcom/android/server/location/GnssLocationProvider;->access$2500(Lcom/android/server/location/GnssLocationProvider;Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
+HSPLcom/android/server/location/GnssLocationProvider;-><clinit>()V
+HSPLcom/android/server/location/GnssLocationProvider;-><init>(Landroid/content/Context;Lcom/android/server/location/AbstractLocationProvider$LocationProviderManager;Landroid/os/Looper;)V
+HSPLcom/android/server/location/GnssLocationProvider;->access$1100(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/GnssLocationProvider;->access$200()Z
+HSPLcom/android/server/location/GnssLocationProvider;->access$2500(Lcom/android/server/location/GnssLocationProvider;Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
PLcom/android/server/location/GnssLocationProvider;->access$3200(Lcom/android/server/location/GnssLocationProvider;)V
-PLcom/android/server/location/GnssLocationProvider;->access$3300(Lcom/android/server/location/GnssLocationProvider;)Landroid/os/PowerManager$WakeLock;
-PLcom/android/server/location/GnssLocationProvider;->access$3500(Lcom/android/server/location/GnssLocationProvider;Z)V
-PLcom/android/server/location/GnssLocationProvider;->access$3600()Z
-PLcom/android/server/location/GnssLocationProvider;->access$4000(Lcom/android/server/location/GnssLocationProvider;)V
-PLcom/android/server/location/GnssLocationProvider;->access$4100(Lcom/android/server/location/GnssLocationProvider;)Landroid/content/BroadcastReceiver;
-PLcom/android/server/location/GnssLocationProvider;->access$4200(Lcom/android/server/location/GnssLocationProvider;)Lcom/android/server/location/GnssNetworkConnectivityHandler;
+HSPLcom/android/server/location/GnssLocationProvider;->access$3300(Lcom/android/server/location/GnssLocationProvider;)Landroid/os/PowerManager$WakeLock;
+HSPLcom/android/server/location/GnssLocationProvider;->access$3500(Lcom/android/server/location/GnssLocationProvider;Z)V
+HSPLcom/android/server/location/GnssLocationProvider;->access$3600()Z
+HSPLcom/android/server/location/GnssLocationProvider;->access$3702(Lcom/android/server/location/GnssLocationProvider;Lcom/android/server/location/GnssVisibilityControl;)Lcom/android/server/location/GnssVisibilityControl;
+HSPLcom/android/server/location/GnssLocationProvider;->access$3800(Lcom/android/server/location/GnssLocationProvider;)Landroid/os/Looper;
+HSPLcom/android/server/location/GnssLocationProvider;->access$3900(Lcom/android/server/location/GnssLocationProvider;)Lcom/android/internal/location/GpsNetInitiatedHandler;
+HSPLcom/android/server/location/GnssLocationProvider;->access$4000(Lcom/android/server/location/GnssLocationProvider;)V
+HSPLcom/android/server/location/GnssLocationProvider;->access$4100(Lcom/android/server/location/GnssLocationProvider;)Landroid/content/BroadcastReceiver;
+HSPLcom/android/server/location/GnssLocationProvider;->access$4200(Lcom/android/server/location/GnssLocationProvider;)Lcom/android/server/location/GnssNetworkConnectivityHandler;
PLcom/android/server/location/GnssLocationProvider;->access$700(Lcom/android/server/location/GnssLocationProvider;)Landroid/os/Handler;
PLcom/android/server/location/GnssLocationProvider;->access$800(Lcom/android/server/location/GnssLocationProvider;)V
-PLcom/android/server/location/GnssLocationProvider;->access$900(Lcom/android/server/location/GnssLocationProvider;)Z
-PLcom/android/server/location/GnssLocationProvider;->ensureInitialized()V
+HSPLcom/android/server/location/GnssLocationProvider;->access$900(Lcom/android/server/location/GnssLocationProvider;)Z
+PLcom/android/server/location/GnssLocationProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/location/GnssLocationProvider;->ensureInitialized()V
PLcom/android/server/location/GnssLocationProvider;->getGeofenceStatus(I)I
-PLcom/android/server/location/GnssLocationProvider;->getGnssBatchingProvider()Lcom/android/server/location/GnssBatchingProvider;
-PLcom/android/server/location/GnssLocationProvider;->getGnssCapabilitiesProvider()Lcom/android/server/location/GnssCapabilitiesProvider;
-PLcom/android/server/location/GnssLocationProvider;->getGnssMeasurementCorrectionsProvider()Lcom/android/server/location/GnssMeasurementCorrectionsProvider;
-PLcom/android/server/location/GnssLocationProvider;->getGnssMeasurementsProvider()Lcom/android/server/location/GnssMeasurementsProvider;
-PLcom/android/server/location/GnssLocationProvider;->getGnssMetricsProvider()Lcom/android/server/location/GnssLocationProvider$GnssMetricsProvider;
-PLcom/android/server/location/GnssLocationProvider;->getGnssNavigationMessageProvider()Lcom/android/server/location/GnssNavigationMessageProvider;
-PLcom/android/server/location/GnssLocationProvider;->getGnssStatusProvider()Lcom/android/server/location/GnssStatusListenerHelper;
-PLcom/android/server/location/GnssLocationProvider;->getGnssSystemInfoProvider()Lcom/android/server/location/GnssLocationProvider$GnssSystemInfoProvider;
-PLcom/android/server/location/GnssLocationProvider;->getGpsGeofenceProxy()Landroid/location/IGpsGeofenceHardware;
-PLcom/android/server/location/GnssLocationProvider;->getNetInitiatedListener()Landroid/location/INetInitiatedListener;
-PLcom/android/server/location/GnssLocationProvider;->handleDisable()V
-PLcom/android/server/location/GnssLocationProvider;->handleEnable()V
-PLcom/android/server/location/GnssLocationProvider;->handleReportSvStatus(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)V
+HSPLcom/android/server/location/GnssLocationProvider;->getGnssBatchingProvider()Lcom/android/server/location/GnssBatchingProvider;
+HSPLcom/android/server/location/GnssLocationProvider;->getGnssCapabilitiesProvider()Lcom/android/server/location/GnssCapabilitiesProvider;
+HSPLcom/android/server/location/GnssLocationProvider;->getGnssMeasurementCorrectionsProvider()Lcom/android/server/location/GnssMeasurementCorrectionsProvider;
+HSPLcom/android/server/location/GnssLocationProvider;->getGnssMeasurementsProvider()Lcom/android/server/location/GnssMeasurementsProvider;
+HSPLcom/android/server/location/GnssLocationProvider;->getGnssMetricsProvider()Lcom/android/server/location/GnssLocationProvider$GnssMetricsProvider;
+HSPLcom/android/server/location/GnssLocationProvider;->getGnssNavigationMessageProvider()Lcom/android/server/location/GnssNavigationMessageProvider;
+HSPLcom/android/server/location/GnssLocationProvider;->getGnssStatusProvider()Lcom/android/server/location/GnssStatusListenerHelper;
+HSPLcom/android/server/location/GnssLocationProvider;->getGnssSystemInfoProvider()Lcom/android/server/location/GnssLocationProvider$GnssSystemInfoProvider;
+HSPLcom/android/server/location/GnssLocationProvider;->getGpsGeofenceProxy()Landroid/location/IGpsGeofenceHardware;
+HSPLcom/android/server/location/GnssLocationProvider;->getNetInitiatedListener()Landroid/location/INetInitiatedListener;
+HPLcom/android/server/location/GnssLocationProvider;->handleDisable()V
+HSPLcom/android/server/location/GnssLocationProvider;->handleEnable()V
+PLcom/android/server/location/GnssLocationProvider;->handleReportLocation(ZLandroid/location/Location;)V
+HPLcom/android/server/location/GnssLocationProvider;->handleReportSvStatus(Lcom/android/server/location/GnssLocationProvider$SvStatusInfo;)V
PLcom/android/server/location/GnssLocationProvider;->handleRequestLocation(ZZ)V
-PLcom/android/server/location/GnssLocationProvider;->handleSetRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
-PLcom/android/server/location/GnssLocationProvider;->hasCapability(I)Z
-PLcom/android/server/location/GnssLocationProvider;->injectLocation(Landroid/location/Location;)V
+HSPLcom/android/server/location/GnssLocationProvider;->handleSetRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
+HSPLcom/android/server/location/GnssLocationProvider;->hasCapability(I)Z
+HPLcom/android/server/location/GnssLocationProvider;->injectLocation(Landroid/location/Location;)V
PLcom/android/server/location/GnssLocationProvider;->injectTime(JJI)V
-PLcom/android/server/location/GnssLocationProvider;->isGpsEnabled()Z
-PLcom/android/server/location/GnssLocationProvider;->isSupported()Z
+HSPLcom/android/server/location/GnssLocationProvider;->isGpsEnabled()Z
+HSPLcom/android/server/location/GnssLocationProvider;->isSupported()Z
PLcom/android/server/location/GnssLocationProvider;->lambda$Q6M8z_ZBiD7BNs3kvNmVrqoHSng(Lcom/android/server/location/GnssLocationProvider;)V
PLcom/android/server/location/GnssLocationProvider;->lambda$getGnssMetricsProvider$9$GnssLocationProvider()Ljava/lang/String;
-PLcom/android/server/location/GnssLocationProvider;->lambda$handleRequestLocation$2(Lcom/android/server/location/GnssLocationProvider$LocationChangeListener;Ljava/lang/String;Landroid/location/LocationManager;)V
+HPLcom/android/server/location/GnssLocationProvider;->lambda$handleRequestLocation$2(Lcom/android/server/location/GnssLocationProvider$LocationChangeListener;Ljava/lang/String;Landroid/location/LocationManager;)V
PLcom/android/server/location/GnssLocationProvider;->lambda$new$0$GnssLocationProvider(Z)V
-PLcom/android/server/location/GnssLocationProvider;->lambda$onUpdateSatelliteBlacklist$1$GnssLocationProvider([I[I)V
+HSPLcom/android/server/location/GnssLocationProvider;->lambda$onUpdateSatelliteBlacklist$1$GnssLocationProvider([I[I)V
PLcom/android/server/location/GnssLocationProvider;->lambda$reportGeofenceAddStatus$12$GnssLocationProvider(II)V
PLcom/android/server/location/GnssLocationProvider;->lambda$reportGeofenceRemoveStatus$13$GnssLocationProvider(II)V
PLcom/android/server/location/GnssLocationProvider;->lambda$reportGeofenceStatus$11$GnssLocationProvider(ILandroid/location/Location;)V
PLcom/android/server/location/GnssLocationProvider;->lambda$reportGeofenceTransition$10$GnssLocationProvider(ILandroid/location/Location;IJ)V
-PLcom/android/server/location/GnssLocationProvider;->lambda$setTopHalCapabilities$6$GnssLocationProvider(I)V
+HPLcom/android/server/location/GnssLocationProvider;->lambda$reportMeasurementData$4$GnssLocationProvider(Landroid/location/GnssMeasurementsEvent;)V
+HSPLcom/android/server/location/GnssLocationProvider;->lambda$setTopHalCapabilities$6$GnssLocationProvider(I)V
PLcom/android/server/location/GnssLocationProvider;->onNetworkAvailable()V
-PLcom/android/server/location/GnssLocationProvider;->onSetRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
-PLcom/android/server/location/GnssLocationProvider;->onUpdateSatelliteBlacklist([I[I)V
-PLcom/android/server/location/GnssLocationProvider;->reloadGpsProperties()V
+HSPLcom/android/server/location/GnssLocationProvider;->onSetRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
+HSPLcom/android/server/location/GnssLocationProvider;->onUpdateSatelliteBlacklist([I[I)V
+HSPLcom/android/server/location/GnssLocationProvider;->reloadGpsProperties()V
PLcom/android/server/location/GnssLocationProvider;->reportGeofenceAddStatus(II)V
PLcom/android/server/location/GnssLocationProvider;->reportGeofenceRemoveStatus(II)V
PLcom/android/server/location/GnssLocationProvider;->reportGeofenceStatus(ILandroid/location/Location;)V
PLcom/android/server/location/GnssLocationProvider;->reportGeofenceTransition(ILandroid/location/Location;IJ)V
-PLcom/android/server/location/GnssLocationProvider;->reportNmea(J)V
+PLcom/android/server/location/GnssLocationProvider;->reportLocation(ZLandroid/location/Location;)V
+PLcom/android/server/location/GnssLocationProvider;->reportMeasurementData(Landroid/location/GnssMeasurementsEvent;)V
+HPLcom/android/server/location/GnssLocationProvider;->reportNmea(J)V
PLcom/android/server/location/GnssLocationProvider;->reportStatus(I)V
-PLcom/android/server/location/GnssLocationProvider;->reportSvStatus(I[I[F[F[F[F[F)V
+HPLcom/android/server/location/GnssLocationProvider;->reportSvStatus(I[I[F[F[F[F[F)V
PLcom/android/server/location/GnssLocationProvider;->requestLocation(ZZ)V
-PLcom/android/server/location/GnssLocationProvider;->restartLocationRequest()V
-PLcom/android/server/location/GnssLocationProvider;->restartRequests()V
-PLcom/android/server/location/GnssLocationProvider;->sendMessage(IILjava/lang/Object;)V
-PLcom/android/server/location/GnssLocationProvider;->setGnssHardwareModelName(Ljava/lang/String;)V
-PLcom/android/server/location/GnssLocationProvider;->setGnssYearOfHardware(I)V
-PLcom/android/server/location/GnssLocationProvider;->setGpsEnabled(Z)V
+HSPLcom/android/server/location/GnssLocationProvider;->restartLocationRequest()V
+HSPLcom/android/server/location/GnssLocationProvider;->restartRequests()V
+HSPLcom/android/server/location/GnssLocationProvider;->sendMessage(IILjava/lang/Object;)V
+HSPLcom/android/server/location/GnssLocationProvider;->setGnssHardwareModelName(Ljava/lang/String;)V
+HSPLcom/android/server/location/GnssLocationProvider;->setGnssYearOfHardware(I)V
+HSPLcom/android/server/location/GnssLocationProvider;->setGpsEnabled(Z)V
PLcom/android/server/location/GnssLocationProvider;->setPositionMode(IIIIIZ)Z
-PLcom/android/server/location/GnssLocationProvider;->setStarted(Z)V
-PLcom/android/server/location/GnssLocationProvider;->setSuplHostPort()V
-PLcom/android/server/location/GnssLocationProvider;->setTopHalCapabilities(I)V
-PLcom/android/server/location/GnssLocationProvider;->setupNativeGnssService(Z)V
+HSPLcom/android/server/location/GnssLocationProvider;->setStarted(Z)V
+HSPLcom/android/server/location/GnssLocationProvider;->setSuplHostPort()V
+HSPLcom/android/server/location/GnssLocationProvider;->setTopHalCapabilities(I)V
+HSPLcom/android/server/location/GnssLocationProvider;->setupNativeGnssService(Z)V
PLcom/android/server/location/GnssLocationProvider;->startNavigating()V
-PLcom/android/server/location/GnssLocationProvider;->stopNavigating()V
+HSPLcom/android/server/location/GnssLocationProvider;->stopNavigating()V
PLcom/android/server/location/GnssLocationProvider;->subscriptionOrCarrierConfigChanged()V
-PLcom/android/server/location/GnssLocationProvider;->updateClientUids(Landroid/os/WorkSource;)V
-PLcom/android/server/location/GnssLocationProvider;->updateEnabled()V
+HSPLcom/android/server/location/GnssLocationProvider;->updateClientUids(Landroid/os/WorkSource;)V
+HSPLcom/android/server/location/GnssLocationProvider;->updateEnabled()V
PLcom/android/server/location/GnssLocationProvider;->updateLowPowerMode()V
-PLcom/android/server/location/GnssLocationProvider;->updateRequirements()V
-PLcom/android/server/location/GnssMeasurementCorrectionsProvider$GnssMeasurementCorrectionsProviderNative;-><init>()V
-PLcom/android/server/location/GnssMeasurementCorrectionsProvider;-><init>(Landroid/os/Handler;)V
-PLcom/android/server/location/GnssMeasurementCorrectionsProvider;-><init>(Landroid/os/Handler;Lcom/android/server/location/GnssMeasurementCorrectionsProvider$GnssMeasurementCorrectionsProviderNative;)V
-PLcom/android/server/location/GnssMeasurementsProvider$GnssMeasurementProviderNative;-><init>()V
-PLcom/android/server/location/GnssMeasurementsProvider$GnssMeasurementProviderNative;->isMeasurementSupported()Z
-PLcom/android/server/location/GnssMeasurementsProvider;-><clinit>()V
-PLcom/android/server/location/GnssMeasurementsProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/location/GnssMeasurementsProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/location/GnssMeasurementsProvider$GnssMeasurementProviderNative;)V
-PLcom/android/server/location/GnssMeasurementsProvider;->access$000()Z
-PLcom/android/server/location/GnssMeasurementsProvider;->isAvailableInPlatform()Z
-PLcom/android/server/location/GnssMeasurementsProvider;->onCapabilitiesUpdated(Z)V
-PLcom/android/server/location/GnssMeasurementsProvider;->onGpsEnabledChanged()V
-PLcom/android/server/location/GnssMeasurementsProvider;->resumeIfStarted()V
-PLcom/android/server/location/GnssNavigationMessageProvider$GnssNavigationMessageProviderNative;-><init>()V
-PLcom/android/server/location/GnssNavigationMessageProvider$GnssNavigationMessageProviderNative;->isNavigationMessageSupported()Z
-PLcom/android/server/location/GnssNavigationMessageProvider$StatusChangedOperation;-><init>(I)V
-PLcom/android/server/location/GnssNavigationMessageProvider;-><clinit>()V
-PLcom/android/server/location/GnssNavigationMessageProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/location/GnssNavigationMessageProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/location/GnssNavigationMessageProvider$GnssNavigationMessageProviderNative;)V
-PLcom/android/server/location/GnssNavigationMessageProvider;->access$000()Z
-PLcom/android/server/location/GnssNavigationMessageProvider;->getHandlerOperation(I)Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;
-PLcom/android/server/location/GnssNavigationMessageProvider;->isAvailableInPlatform()Z
-PLcom/android/server/location/GnssNavigationMessageProvider;->onCapabilitiesUpdated(Z)V
-PLcom/android/server/location/GnssNavigationMessageProvider;->onGpsEnabledChanged()V
-PLcom/android/server/location/GnssNavigationMessageProvider;->resumeIfStarted()V
-PLcom/android/server/location/GnssNetworkConnectivityHandler$1;-><init>(Lcom/android/server/location/GnssNetworkConnectivityHandler;)V
+HSPLcom/android/server/location/GnssLocationProvider;->updateRequirements()V
+HSPLcom/android/server/location/GnssMeasurementCorrectionsProvider$GnssMeasurementCorrectionsProviderNative;-><init>()V
+HSPLcom/android/server/location/GnssMeasurementCorrectionsProvider;-><init>(Landroid/os/Handler;)V
+HSPLcom/android/server/location/GnssMeasurementCorrectionsProvider;-><init>(Landroid/os/Handler;Lcom/android/server/location/GnssMeasurementCorrectionsProvider$GnssMeasurementCorrectionsProviderNative;)V
+HSPLcom/android/server/location/GnssMeasurementsProvider$GnssMeasurementProviderNative;-><init>()V
+HSPLcom/android/server/location/GnssMeasurementsProvider$GnssMeasurementProviderNative;->isMeasurementSupported()Z
+PLcom/android/server/location/GnssMeasurementsProvider$StatusChangedOperation;-><init>(I)V
+PLcom/android/server/location/GnssMeasurementsProvider$StatusChangedOperation;->execute(Landroid/location/IGnssMeasurementsListener;Lcom/android/server/location/CallerIdentity;)V
+PLcom/android/server/location/GnssMeasurementsProvider$StatusChangedOperation;->execute(Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
+HSPLcom/android/server/location/GnssMeasurementsProvider;-><clinit>()V
+HSPLcom/android/server/location/GnssMeasurementsProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/location/GnssMeasurementsProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/location/GnssMeasurementsProvider$GnssMeasurementProviderNative;)V
+HSPLcom/android/server/location/GnssMeasurementsProvider;->access$000()Z
+PLcom/android/server/location/GnssMeasurementsProvider;->getHandlerOperation(I)Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;
+HSPLcom/android/server/location/GnssMeasurementsProvider;->isAvailableInPlatform()Z
+HSPLcom/android/server/location/GnssMeasurementsProvider;->onCapabilitiesUpdated(Z)V
+HSPLcom/android/server/location/GnssMeasurementsProvider;->onGpsEnabledChanged()V
+PLcom/android/server/location/GnssMeasurementsProvider;->onMeasurementsAvailable(Landroid/location/GnssMeasurementsEvent;)V
+PLcom/android/server/location/GnssMeasurementsProvider;->registerWithService()I
+HSPLcom/android/server/location/GnssMeasurementsProvider;->resumeIfStarted()V
+PLcom/android/server/location/GnssMeasurementsProvider;->unregisterFromService()V
+HSPLcom/android/server/location/GnssNavigationMessageProvider$GnssNavigationMessageProviderNative;-><init>()V
+HSPLcom/android/server/location/GnssNavigationMessageProvider$GnssNavigationMessageProviderNative;->isNavigationMessageSupported()Z
+HSPLcom/android/server/location/GnssNavigationMessageProvider$StatusChangedOperation;-><init>(I)V
+HSPLcom/android/server/location/GnssNavigationMessageProvider;-><clinit>()V
+HSPLcom/android/server/location/GnssNavigationMessageProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/location/GnssNavigationMessageProvider;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/location/GnssNavigationMessageProvider$GnssNavigationMessageProviderNative;)V
+HSPLcom/android/server/location/GnssNavigationMessageProvider;->access$000()Z
+HSPLcom/android/server/location/GnssNavigationMessageProvider;->getHandlerOperation(I)Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;
+HSPLcom/android/server/location/GnssNavigationMessageProvider;->isAvailableInPlatform()Z
+HSPLcom/android/server/location/GnssNavigationMessageProvider;->onCapabilitiesUpdated(Z)V
+HSPLcom/android/server/location/GnssNavigationMessageProvider;->onGpsEnabledChanged()V
+HSPLcom/android/server/location/GnssNavigationMessageProvider;->resumeIfStarted()V
+HSPLcom/android/server/location/GnssNetworkConnectivityHandler$1;-><init>(Lcom/android/server/location/GnssNetworkConnectivityHandler;)V
PLcom/android/server/location/GnssNetworkConnectivityHandler$1;->onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V
PLcom/android/server/location/GnssNetworkConnectivityHandler$1;->onLost(Landroid/net/Network;)V
-PLcom/android/server/location/GnssNetworkConnectivityHandler$2;-><init>(Lcom/android/server/location/GnssNetworkConnectivityHandler;)V
+HSPLcom/android/server/location/GnssNetworkConnectivityHandler$2;-><init>(Lcom/android/server/location/GnssNetworkConnectivityHandler;)V
PLcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;-><init>()V
PLcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;-><init>(Lcom/android/server/location/GnssNetworkConnectivityHandler$1;)V
PLcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;->access$000(Landroid/net/NetworkCapabilities;Landroid/net/NetworkCapabilities;)Z
@@ -8991,329 +10793,388 @@ PLcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;-
PLcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;->access$902(Lcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;Landroid/net/NetworkCapabilities;)Landroid/net/NetworkCapabilities;
PLcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;->getCapabilityFlags(Landroid/net/NetworkCapabilities;)S
PLcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;->hasCapabilitiesChanged(Landroid/net/NetworkCapabilities;Landroid/net/NetworkCapabilities;)Z
-PLcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;->hasCapabilityChanged(Landroid/net/NetworkCapabilities;Landroid/net/NetworkCapabilities;I)Z
-PLcom/android/server/location/GnssNetworkConnectivityHandler;-><clinit>()V
-PLcom/android/server/location/GnssNetworkConnectivityHandler;-><init>(Landroid/content/Context;Lcom/android/server/location/GnssNetworkConnectivityHandler$GnssNetworkListener;Landroid/os/Looper;)V
+HPLcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;->hasCapabilityChanged(Landroid/net/NetworkCapabilities;Landroid/net/NetworkCapabilities;I)Z
+HSPLcom/android/server/location/GnssNetworkConnectivityHandler;-><clinit>()V
+HSPLcom/android/server/location/GnssNetworkConnectivityHandler;-><init>(Landroid/content/Context;Lcom/android/server/location/GnssNetworkConnectivityHandler$GnssNetworkListener;Landroid/os/Looper;)V
PLcom/android/server/location/GnssNetworkConnectivityHandler;->access$100()Z
PLcom/android/server/location/GnssNetworkConnectivityHandler;->access$200()Z
PLcom/android/server/location/GnssNetworkConnectivityHandler;->access$300(Lcom/android/server/location/GnssNetworkConnectivityHandler;)Lcom/android/server/location/GnssNetworkConnectivityHandler$GnssNetworkListener;
PLcom/android/server/location/GnssNetworkConnectivityHandler;->access$400(Lcom/android/server/location/GnssNetworkConnectivityHandler;Landroid/net/Network;ZLandroid/net/NetworkCapabilities;)V
PLcom/android/server/location/GnssNetworkConnectivityHandler;->agpsDataConnStateAsString()Ljava/lang/String;
-PLcom/android/server/location/GnssNetworkConnectivityHandler;->createNetworkConnectivityCallback()Landroid/net/ConnectivityManager$NetworkCallback;
-PLcom/android/server/location/GnssNetworkConnectivityHandler;->createSuplConnectivityCallback()Landroid/net/ConnectivityManager$NetworkCallback;
+HSPLcom/android/server/location/GnssNetworkConnectivityHandler;->createNetworkConnectivityCallback()Landroid/net/ConnectivityManager$NetworkCallback;
+HSPLcom/android/server/location/GnssNetworkConnectivityHandler;->createSuplConnectivityCallback()Landroid/net/ConnectivityManager$NetworkCallback;
PLcom/android/server/location/GnssNetworkConnectivityHandler;->handleUpdateNetworkState(Landroid/net/Network;ZLandroid/net/NetworkCapabilities;)V
-PLcom/android/server/location/GnssNetworkConnectivityHandler;->registerNetworkCallbacks()V
+HSPLcom/android/server/location/GnssNetworkConnectivityHandler;->registerNetworkCallbacks()V
PLcom/android/server/location/GnssNetworkConnectivityHandler;->updateTrackedNetworksState(ZLandroid/net/Network;Landroid/net/NetworkCapabilities;)Lcom/android/server/location/GnssNetworkConnectivityHandler$NetworkAttributes;
PLcom/android/server/location/GnssPositionMode;-><init>(IIIIIZ)V
PLcom/android/server/location/GnssPositionMode;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/location/GnssSatelliteBlacklistHelper$1;-><init>(Lcom/android/server/location/GnssSatelliteBlacklistHelper;Landroid/os/Handler;)V
-PLcom/android/server/location/GnssSatelliteBlacklistHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/location/GnssSatelliteBlacklistHelper$GnssSatelliteBlacklistCallback;)V
-PLcom/android/server/location/GnssSatelliteBlacklistHelper;->parseSatelliteBlacklist(Ljava/lang/String;)Ljava/util/List;
-PLcom/android/server/location/GnssSatelliteBlacklistHelper;->updateSatelliteBlacklist()V
-PLcom/android/server/location/GnssStatusListenerHelper;-><clinit>()V
-PLcom/android/server/location/GnssStatusListenerHelper;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/location/GnssSatelliteBlacklistHelper$1;-><init>(Lcom/android/server/location/GnssSatelliteBlacklistHelper;Landroid/os/Handler;)V
+HSPLcom/android/server/location/GnssSatelliteBlacklistHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/location/GnssSatelliteBlacklistHelper$GnssSatelliteBlacklistCallback;)V
+HSPLcom/android/server/location/GnssSatelliteBlacklistHelper;->parseSatelliteBlacklist(Ljava/lang/String;)Ljava/util/List;
+HSPLcom/android/server/location/GnssSatelliteBlacklistHelper;->updateSatelliteBlacklist()V
+HSPLcom/android/server/location/GnssStatusListenerHelper;-><clinit>()V
+HSPLcom/android/server/location/GnssStatusListenerHelper;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
PLcom/android/server/location/GnssStatusListenerHelper;->getHandlerOperation(I)Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;
+PLcom/android/server/location/GnssStatusListenerHelper;->lambda$onFirstFix$2(ILandroid/location/IGnssStatusListener;Lcom/android/server/location/CallerIdentity;)V
PLcom/android/server/location/GnssStatusListenerHelper;->lambda$onStatusChanged$0(Landroid/location/IGnssStatusListener;Lcom/android/server/location/CallerIdentity;)V
PLcom/android/server/location/GnssStatusListenerHelper;->lambda$onStatusChanged$1(Landroid/location/IGnssStatusListener;Lcom/android/server/location/CallerIdentity;)V
-PLcom/android/server/location/GnssStatusListenerHelper;->lambda$onSvStatusChanged$3$GnssStatusListenerHelper(I[I[F[F[F[F[FLandroid/location/IGnssStatusListener;Lcom/android/server/location/CallerIdentity;)V
+HPLcom/android/server/location/GnssStatusListenerHelper;->lambda$onSvStatusChanged$3$GnssStatusListenerHelper(I[I[F[F[F[F[FLandroid/location/IGnssStatusListener;Lcom/android/server/location/CallerIdentity;)V
PLcom/android/server/location/GnssStatusListenerHelper;->registerWithService()I
PLcom/android/server/location/GnssStatusListenerHelper;->unregisterFromService()V
-PLcom/android/server/location/LocationFudger$1;-><init>(Lcom/android/server/location/LocationFudger;Landroid/os/Handler;)V
-PLcom/android/server/location/LocationFudger;-><clinit>()V
-PLcom/android/server/location/LocationFudger;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/location/GnssVisibilityControl$1;-><init>(Lcom/android/server/location/GnssVisibilityControl;)V
+HPLcom/android/server/location/GnssVisibilityControl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/location/GnssVisibilityControl;-><clinit>()V
+HSPLcom/android/server/location/GnssVisibilityControl;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/internal/location/GpsNetInitiatedHandler;)V
+PLcom/android/server/location/GnssVisibilityControl;->access$000(Lcom/android/server/location/GnssVisibilityControl;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/location/GnssVisibilityControl;->disableNfwLocationAccess()V
+HSPLcom/android/server/location/GnssVisibilityControl;->getLocationPermissionEnabledProxyApps()[Ljava/lang/String;
+HSPLcom/android/server/location/GnssVisibilityControl;->handleGpsEnabledChanged(Z)V
+HSPLcom/android/server/location/GnssVisibilityControl;->handleInitialize()V
+HPLcom/android/server/location/GnssVisibilityControl;->handleProxyAppPackageUpdate(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/location/GnssVisibilityControl;->handleUpdateProxyApps(Ljava/util/List;)V
+HSPLcom/android/server/location/GnssVisibilityControl;->isProxyAppListUpdated(Ljava/util/List;)Z
+HSPLcom/android/server/location/GnssVisibilityControl;->lambda$FLGfeDaxF8J3CE9m-TcOXh5j6ow(Lcom/android/server/location/GnssVisibilityControl;)V
+HSPLcom/android/server/location/GnssVisibilityControl;->lambda$onConfigurationUpdated$4$GnssVisibilityControl(Ljava/util/List;)V
+HSPLcom/android/server/location/GnssVisibilityControl;->lambda$onGpsEnabledChanged$2$GnssVisibilityControl(Z)V
+HSPLcom/android/server/location/GnssVisibilityControl;->lambda$runEventAndReleaseWakeLock$6$GnssVisibilityControl(Ljava/lang/Runnable;)V
+HSPLcom/android/server/location/GnssVisibilityControl;->listenForProxyAppsPackageUpdates()V
+HSPLcom/android/server/location/GnssVisibilityControl;->onConfigurationUpdated(Lcom/android/server/location/GnssConfiguration;)V
+HSPLcom/android/server/location/GnssVisibilityControl;->onGpsEnabledChanged(Z)V
+HSPLcom/android/server/location/GnssVisibilityControl;->runEventAndReleaseWakeLock(Ljava/lang/Runnable;)Ljava/lang/Runnable;
+HSPLcom/android/server/location/GnssVisibilityControl;->runOnHandler(Ljava/lang/Runnable;)V
+HSPLcom/android/server/location/GnssVisibilityControl;->setNfwLocationAccessProxyAppsInGnssHal([Ljava/lang/String;)V
+HSPLcom/android/server/location/LocationFudger$1;-><init>(Lcom/android/server/location/LocationFudger;Landroid/os/Handler;)V
+HSPLcom/android/server/location/LocationFudger;-><clinit>()V
+HSPLcom/android/server/location/LocationFudger;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
PLcom/android/server/location/LocationFudger;->createCoarseLocked(Landroid/location/Location;)Landroid/location/Location;
PLcom/android/server/location/LocationFudger;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/location/LocationFudger;->getOrCreate(Landroid/location/Location;)Landroid/location/Location;
-PLcom/android/server/location/LocationFudger;->loadCoarseAccuracy()F
-PLcom/android/server/location/LocationFudger;->nextOffsetLocked()D
-PLcom/android/server/location/LocationFudger;->setAccuracyInMetersLocked(F)V
+HSPLcom/android/server/location/LocationFudger;->loadCoarseAccuracy()F
+HSPLcom/android/server/location/LocationFudger;->nextOffsetLocked()D
+HSPLcom/android/server/location/LocationFudger;->setAccuracyInMetersLocked(F)V
PLcom/android/server/location/LocationFudger;->updateRandomOffsetLocked()V
HPLcom/android/server/location/LocationPermissionUtil;->doesCallerReportToAppOps(Landroid/content/Context;Lcom/android/server/location/CallerIdentity;)Z
HPLcom/android/server/location/LocationPermissionUtil;->hasPermissionLocationHardware(Landroid/content/Context;Lcom/android/server/location/CallerIdentity;)Z
HPLcom/android/server/location/LocationPermissionUtil;->hasPermissionUpdateAppOpsStats(Landroid/content/Context;Lcom/android/server/location/CallerIdentity;)Z
-PLcom/android/server/location/LocationProviderProxy$1;-><init>(Lcom/android/server/location/LocationProviderProxy;)V
+HSPLcom/android/server/location/LocationProviderProxy$1;-><init>(Lcom/android/server/location/LocationProviderProxy;)V
PLcom/android/server/location/LocationProviderProxy$1;->onReportLocation(Landroid/location/Location;)V
PLcom/android/server/location/LocationProviderProxy$1;->onSetEnabled(Z)V
PLcom/android/server/location/LocationProviderProxy$1;->onSetProperties(Lcom/android/internal/location/ProviderProperties;)V
-PLcom/android/server/location/LocationProviderProxy$2;-><init>(Lcom/android/server/location/LocationProviderProxy;Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;IIILandroid/os/Handler;)V
+HSPLcom/android/server/location/LocationProviderProxy$2;-><init>(Lcom/android/server/location/LocationProviderProxy;Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;IIILandroid/os/Handler;)V
PLcom/android/server/location/LocationProviderProxy$2;->lambda$onBind$0(Lcom/android/server/location/LocationProviderProxy;Landroid/os/IBinder;)V
PLcom/android/server/location/LocationProviderProxy$2;->onBind()V
-PLcom/android/server/location/LocationProviderProxy;-><clinit>()V
-PLcom/android/server/location/LocationProviderProxy;-><init>(Landroid/content/Context;Lcom/android/server/location/AbstractLocationProvider$LocationProviderManager;Ljava/lang/String;III)V
+PLcom/android/server/location/LocationProviderProxy$2;->onUnbind()V
+HSPLcom/android/server/location/LocationProviderProxy;-><clinit>()V
+HSPLcom/android/server/location/LocationProviderProxy;-><init>(Landroid/content/Context;Lcom/android/server/location/AbstractLocationProvider$LocationProviderManager;Ljava/lang/String;III)V
PLcom/android/server/location/LocationProviderProxy;->access$200(Lcom/android/server/location/LocationProviderProxy;Landroid/os/IBinder;)V
-PLcom/android/server/location/LocationProviderProxy;->bind()Z
-PLcom/android/server/location/LocationProviderProxy;->createAndBind(Landroid/content/Context;Lcom/android/server/location/AbstractLocationProvider$LocationProviderManager;Ljava/lang/String;III)Lcom/android/server/location/LocationProviderProxy;
+HSPLcom/android/server/location/LocationProviderProxy;->bind()Z
+HSPLcom/android/server/location/LocationProviderProxy;->createAndBind(Landroid/content/Context;Lcom/android/server/location/AbstractLocationProvider$LocationProviderManager;Ljava/lang/String;III)Lcom/android/server/location/LocationProviderProxy;
+PLcom/android/server/location/LocationProviderProxy;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/location/LocationProviderProxy;->getProviderPackages()Ljava/util/List;
PLcom/android/server/location/LocationProviderProxy;->initializeService(Landroid/os/IBinder;)V
-PLcom/android/server/location/LocationProviderProxy;->lambda$onSetRequest$0(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;Landroid/os/IBinder;)V
-PLcom/android/server/location/LocationProviderProxy;->onSetRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
+HPLcom/android/server/location/LocationProviderProxy;->lambda$onSetRequest$0(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;Landroid/os/IBinder;)V
+HPLcom/android/server/location/LocationProviderProxy;->onSetRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
PLcom/android/server/location/LocationProviderProxy;->resetProviderPackages(Ljava/util/List;)V
-PLcom/android/server/location/LocationRequestStatistics$PackageProviderKey;-><init>(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/location/LocationRequestStatistics$PackageProviderKey;-><init>(Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/location/LocationRequestStatistics$PackageProviderKey;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/location/LocationRequestStatistics$PackageProviderKey;->hashCode()I
-PLcom/android/server/location/LocationRequestStatistics$PackageStatistics;-><init>()V
-PLcom/android/server/location/LocationRequestStatistics$PackageStatistics;-><init>(Lcom/android/server/location/LocationRequestStatistics$1;)V
-PLcom/android/server/location/LocationRequestStatistics$PackageStatistics;->access$100(Lcom/android/server/location/LocationRequestStatistics$PackageStatistics;J)V
-PLcom/android/server/location/LocationRequestStatistics$PackageStatistics;->access$200(Lcom/android/server/location/LocationRequestStatistics$PackageStatistics;Z)V
-PLcom/android/server/location/LocationRequestStatistics$PackageStatistics;->startRequesting(J)V
+HSPLcom/android/server/location/LocationRequestStatistics$PackageProviderKey;->hashCode()I
+HSPLcom/android/server/location/LocationRequestStatistics$PackageStatistics;-><init>()V
+HSPLcom/android/server/location/LocationRequestStatistics$PackageStatistics;-><init>(Lcom/android/server/location/LocationRequestStatistics$1;)V
+HSPLcom/android/server/location/LocationRequestStatistics$PackageStatistics;->access$100(Lcom/android/server/location/LocationRequestStatistics$PackageStatistics;J)V
+HSPLcom/android/server/location/LocationRequestStatistics$PackageStatistics;->access$200(Lcom/android/server/location/LocationRequestStatistics$PackageStatistics;Z)V
+HSPLcom/android/server/location/LocationRequestStatistics$PackageStatistics;->startRequesting(J)V
PLcom/android/server/location/LocationRequestStatistics$PackageStatistics;->stopRequesting()V
PLcom/android/server/location/LocationRequestStatistics$PackageStatistics;->toString()Ljava/lang/String;
-PLcom/android/server/location/LocationRequestStatistics$PackageStatistics;->updateForeground(Z)V
-PLcom/android/server/location/LocationRequestStatistics;-><init>()V
-PLcom/android/server/location/LocationRequestStatistics;->startRequesting(Ljava/lang/String;Ljava/lang/String;JZ)V
-PLcom/android/server/location/LocationSettingsStore$IntegerSecureSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;)V
-PLcom/android/server/location/LocationSettingsStore$IntegerSecureSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;Lcom/android/server/location/LocationSettingsStore$1;)V
-PLcom/android/server/location/LocationSettingsStore$IntegerSecureSetting;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
-PLcom/android/server/location/LocationSettingsStore$IntegerSecureSetting;->getValueForUser(II)I
-PLcom/android/server/location/LocationSettingsStore$LongGlobalSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;)V
-PLcom/android/server/location/LocationSettingsStore$LongGlobalSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;Lcom/android/server/location/LocationSettingsStore$1;)V
-PLcom/android/server/location/LocationSettingsStore$LongGlobalSetting;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
-PLcom/android/server/location/LocationSettingsStore$LongGlobalSetting;->getValue(J)J
-PLcom/android/server/location/LocationSettingsStore$ObservingSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;)V
-PLcom/android/server/location/LocationSettingsStore$ObservingSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;Lcom/android/server/location/LocationSettingsStore$1;)V
-PLcom/android/server/location/LocationSettingsStore$ObservingSetting;->addListener(Lcom/android/server/location/LocationSettingsStore$UserSettingChangedListener;)V
+HSPLcom/android/server/location/LocationRequestStatistics$PackageStatistics;->updateForeground(Z)V
+HSPLcom/android/server/location/LocationRequestStatistics;-><init>()V
+HSPLcom/android/server/location/LocationRequestStatistics;->startRequesting(Ljava/lang/String;Ljava/lang/String;JZ)V
+HSPLcom/android/server/location/LocationSettingsStore$IntegerSecureSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;)V
+HSPLcom/android/server/location/LocationSettingsStore$IntegerSecureSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;Lcom/android/server/location/LocationSettingsStore$1;)V
+HSPLcom/android/server/location/LocationSettingsStore$IntegerSecureSetting;->access$400(Lcom/android/server/location/LocationSettingsStore$IntegerSecureSetting;)V
+HSPLcom/android/server/location/LocationSettingsStore$IntegerSecureSetting;->getValueForUser(II)I
+HSPLcom/android/server/location/LocationSettingsStore$IntegerSecureSetting;->register()V
+HSPLcom/android/server/location/LocationSettingsStore$LongGlobalSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;)V
+HSPLcom/android/server/location/LocationSettingsStore$LongGlobalSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;Lcom/android/server/location/LocationSettingsStore$1;)V
+HSPLcom/android/server/location/LocationSettingsStore$LongGlobalSetting;->getValue(J)J
+HSPLcom/android/server/location/LocationSettingsStore$LongGlobalSetting;->register()V
+HSPLcom/android/server/location/LocationSettingsStore$ObservingSetting;-><init>(Landroid/os/Handler;)V
+HSPLcom/android/server/location/LocationSettingsStore$ObservingSetting;-><init>(Landroid/os/Handler;Lcom/android/server/location/LocationSettingsStore$1;)V
+HSPLcom/android/server/location/LocationSettingsStore$ObservingSetting;->addListener(Lcom/android/server/location/LocationSettingsStore$UserSettingChangedListener;)V
+PLcom/android/server/location/LocationSettingsStore$ObservingSetting;->isRegistered()Z
PLcom/android/server/location/LocationSettingsStore$ObservingSetting;->onChange(ZLandroid/net/Uri;I)V
-PLcom/android/server/location/LocationSettingsStore$StringListCachedSecureSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;)V
-PLcom/android/server/location/LocationSettingsStore$StringListCachedSecureSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;Lcom/android/server/location/LocationSettingsStore$1;)V
-PLcom/android/server/location/LocationSettingsStore$StringListCachedSecureSetting;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
-PLcom/android/server/location/LocationSettingsStore$StringListCachedSecureSetting;->getValueForUser(I)Ljava/util/List;
-PLcom/android/server/location/LocationSettingsStore$StringListCachedSecureSetting;->invalidateForUser(I)V
-PLcom/android/server/location/LocationSettingsStore$StringListCachedSecureSetting;->onChange(ZLandroid/net/Uri;I)V
-PLcom/android/server/location/LocationSettingsStore$StringSetCachedGlobalSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/util/function/Supplier;Landroid/os/Handler;)V
-PLcom/android/server/location/LocationSettingsStore$StringSetCachedGlobalSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/util/function/Supplier;Landroid/os/Handler;Lcom/android/server/location/LocationSettingsStore$1;)V
-PLcom/android/server/location/LocationSettingsStore$StringSetCachedGlobalSetting;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
+HSPLcom/android/server/location/LocationSettingsStore$ObservingSetting;->register(Landroid/content/Context;Landroid/net/Uri;)V
+HSPLcom/android/server/location/LocationSettingsStore$StringListCachedSecureSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;)V
+HSPLcom/android/server/location/LocationSettingsStore$StringListCachedSecureSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/os/Handler;Lcom/android/server/location/LocationSettingsStore$1;)V
+HPLcom/android/server/location/LocationSettingsStore$StringListCachedSecureSetting;->getValueForUser(I)Ljava/util/List;
+HSPLcom/android/server/location/LocationSettingsStore$StringListCachedSecureSetting;->register()V
+HSPLcom/android/server/location/LocationSettingsStore$StringSetCachedGlobalSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/util/function/Supplier;Landroid/os/Handler;)V
+HSPLcom/android/server/location/LocationSettingsStore$StringSetCachedGlobalSetting;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/util/function/Supplier;Landroid/os/Handler;Lcom/android/server/location/LocationSettingsStore$1;)V
HPLcom/android/server/location/LocationSettingsStore$StringSetCachedGlobalSetting;->getValue()Ljava/util/Set;
-PLcom/android/server/location/LocationSettingsStore;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/location/LocationSettingsStore;->addOnBackgroundThrottleIntervalChangedListener(Lcom/android/server/location/LocationSettingsStore$GlobalSettingChangedListener;)V
-PLcom/android/server/location/LocationSettingsStore;->addOnBackgroundThrottlePackageWhitelistChangedListener(Lcom/android/server/location/LocationSettingsStore$GlobalSettingChangedListener;)V
-PLcom/android/server/location/LocationSettingsStore;->addOnIgnoreSettingsPackageWhitelistChangedListener(Lcom/android/server/location/LocationSettingsStore$GlobalSettingChangedListener;)V
-PLcom/android/server/location/LocationSettingsStore;->addOnLocationEnabledChangedListener(Lcom/android/server/location/LocationSettingsStore$UserSettingChangedListener;)V
-PLcom/android/server/location/LocationSettingsStore;->addOnLocationProvidersAllowedChangedListener(Lcom/android/server/location/LocationSettingsStore$UserSettingChangedListener;)V
+HSPLcom/android/server/location/LocationSettingsStore$StringSetCachedGlobalSetting;->register()V
+HSPLcom/android/server/location/LocationSettingsStore;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/location/LocationSettingsStore;->addOnBackgroundThrottleIntervalChangedListener(Lcom/android/server/location/LocationSettingsStore$GlobalSettingChangedListener;)V
+HSPLcom/android/server/location/LocationSettingsStore;->addOnBackgroundThrottlePackageWhitelistChangedListener(Lcom/android/server/location/LocationSettingsStore$GlobalSettingChangedListener;)V
+HSPLcom/android/server/location/LocationSettingsStore;->addOnIgnoreSettingsPackageWhitelistChangedListener(Lcom/android/server/location/LocationSettingsStore$GlobalSettingChangedListener;)V
+HSPLcom/android/server/location/LocationSettingsStore;->addOnLocationEnabledChangedListener(Lcom/android/server/location/LocationSettingsStore$UserSettingChangedListener;)V
PLcom/android/server/location/LocationSettingsStore;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-PLcom/android/server/location/LocationSettingsStore;->getBackgroundThrottleIntervalMs()J
-PLcom/android/server/location/LocationSettingsStore;->getLocationProvidersAllowed(I)Ljava/util/List;
+HSPLcom/android/server/location/LocationSettingsStore;->getBackgroundThrottleIntervalMs()J
PLcom/android/server/location/LocationSettingsStore;->getMaxLastLocationAgeMs()J
-PLcom/android/server/location/LocationSettingsStore;->isLocationEnabled(I)Z
-PLcom/android/server/location/LocationSettingsStore;->isLocationPackageBlacklisted(ILjava/lang/String;)Z
+HSPLcom/android/server/location/LocationSettingsStore;->isLocationEnabled(I)Z
+HPLcom/android/server/location/LocationSettingsStore;->isLocationPackageBlacklisted(ILjava/lang/String;)Z
PLcom/android/server/location/LocationSettingsStore;->lambda$new$0()Landroid/util/ArraySet;
-PLcom/android/server/location/NanoAppStateManager;-><init>()V
-PLcom/android/server/location/NanoAppStateManager;->addNanoAppInstance(IJI)V
+PLcom/android/server/location/LocationSettingsStore;->lambda$new$1()Landroid/util/ArraySet;
+HSPLcom/android/server/location/LocationSettingsStore;->onSystemReady()V
+HSPLcom/android/server/location/LocationUsageLogger;-><init>()V
+HSPLcom/android/server/location/LocationUsageLogger;->bucketizeDistance(F)I
+HSPLcom/android/server/location/LocationUsageLogger;->bucketizeExpireIn(J)I
+HSPLcom/android/server/location/LocationUsageLogger;->bucketizeInterval(J)I
+HSPLcom/android/server/location/LocationUsageLogger;->bucketizeProvider(Ljava/lang/String;)I
+HSPLcom/android/server/location/LocationUsageLogger;->categorizeActivityImportance(I)I
+HSPLcom/android/server/location/LocationUsageLogger;->getCallbackType(IZZ)I
+HSPLcom/android/server/location/LocationUsageLogger;->hitApiUsageLogCap()Z
+HSPLcom/android/server/location/LocationUsageLogger;->logLocationApiUsage(IILjava/lang/String;Landroid/location/LocationRequest;ZZLandroid/location/Geofence;I)V
+HSPLcom/android/server/location/NanoAppStateManager;-><init>()V
+HSPLcom/android/server/location/NanoAppStateManager;->addNanoAppInstance(IJI)V
PLcom/android/server/location/NanoAppStateManager;->foreachNanoAppInstanceInfo(Ljava/util/function/Consumer;)V
-PLcom/android/server/location/NanoAppStateManager;->getNanoAppHandle(IJ)I
+HSPLcom/android/server/location/NanoAppStateManager;->getNanoAppHandle(IJ)I
PLcom/android/server/location/NanoAppStateManager;->getNanoAppInstanceInfo(I)Landroid/hardware/location/NanoAppInstanceInfo;
-PLcom/android/server/location/NanoAppStateManager;->handleQueryAppEntry(IJI)V
-PLcom/android/server/location/NanoAppStateManager;->removeNanoAppInstance(IJ)V
-PLcom/android/server/location/NanoAppStateManager;->updateCache(ILjava/util/List;)V
-PLcom/android/server/location/NtpTimeHelper;-><clinit>()V
-PLcom/android/server/location/NtpTimeHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/location/NtpTimeHelper$InjectNtpTimeCallback;)V
-PLcom/android/server/location/NtpTimeHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/location/NtpTimeHelper$InjectNtpTimeCallback;Landroid/util/NtpTrustedTime;)V
+HSPLcom/android/server/location/NanoAppStateManager;->handleQueryAppEntry(IJI)V
+HSPLcom/android/server/location/NanoAppStateManager;->removeNanoAppInstance(IJ)V
+HSPLcom/android/server/location/NanoAppStateManager;->updateCache(ILjava/util/List;)V
+HSPLcom/android/server/location/NtpTimeHelper;-><clinit>()V
+HSPLcom/android/server/location/NtpTimeHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/location/NtpTimeHelper$InjectNtpTimeCallback;)V
+HSPLcom/android/server/location/NtpTimeHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/location/NtpTimeHelper$InjectNtpTimeCallback;Landroid/util/NtpTrustedTime;)V
PLcom/android/server/location/NtpTimeHelper;->blockingGetNtpTimeAndInject()V
PLcom/android/server/location/NtpTimeHelper;->isNetworkConnected()Z
PLcom/android/server/location/NtpTimeHelper;->lambda$blockingGetNtpTimeAndInject$0$NtpTimeHelper(JJJ)V
PLcom/android/server/location/NtpTimeHelper;->lambda$xWqlqJuq4jBJ5-xhFLCwEKGVB0k(Lcom/android/server/location/NtpTimeHelper;)V
PLcom/android/server/location/NtpTimeHelper;->onNetworkAvailable()V
PLcom/android/server/location/NtpTimeHelper;->retrieveAndInjectNtpTime()V
-PLcom/android/server/location/PassiveProvider;-><clinit>()V
-PLcom/android/server/location/PassiveProvider;-><init>(Landroid/content/Context;Lcom/android/server/location/AbstractLocationProvider$LocationProviderManager;)V
-PLcom/android/server/location/PassiveProvider;->onSetRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
+HSPLcom/android/server/location/PassiveProvider;-><clinit>()V
+HSPLcom/android/server/location/PassiveProvider;-><init>(Landroid/content/Context;Lcom/android/server/location/AbstractLocationProvider$LocationProviderManager;)V
+PLcom/android/server/location/PassiveProvider;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/location/PassiveProvider;->onSetRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
PLcom/android/server/location/PassiveProvider;->updateLocation(Landroid/location/Location;)V
PLcom/android/server/location/RemoteListenerHelper$1;-><init>(Lcom/android/server/location/RemoteListenerHelper;)V
PLcom/android/server/location/RemoteListenerHelper$1;->run()V
HPLcom/android/server/location/RemoteListenerHelper$HandlerRunnable;-><init>(Lcom/android/server/location/RemoteListenerHelper;Lcom/android/server/location/RemoteListenerHelper$IdentifiedListener;Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;)V
HPLcom/android/server/location/RemoteListenerHelper$HandlerRunnable;-><init>(Lcom/android/server/location/RemoteListenerHelper;Lcom/android/server/location/RemoteListenerHelper$IdentifiedListener;Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;Lcom/android/server/location/RemoteListenerHelper$1;)V
-PLcom/android/server/location/RemoteListenerHelper$HandlerRunnable;->run()V
+HPLcom/android/server/location/RemoteListenerHelper$HandlerRunnable;->run()V
PLcom/android/server/location/RemoteListenerHelper$IdentifiedListener;-><init>(Lcom/android/server/location/RemoteListenerHelper;Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
PLcom/android/server/location/RemoteListenerHelper$IdentifiedListener;-><init>(Lcom/android/server/location/RemoteListenerHelper;Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;Lcom/android/server/location/RemoteListenerHelper$1;)V
HPLcom/android/server/location/RemoteListenerHelper$IdentifiedListener;->access$500(Lcom/android/server/location/RemoteListenerHelper$IdentifiedListener;)Landroid/os/IInterface;
HPLcom/android/server/location/RemoteListenerHelper$IdentifiedListener;->access$600(Lcom/android/server/location/RemoteListenerHelper$IdentifiedListener;)Lcom/android/server/location/CallerIdentity;
-PLcom/android/server/location/RemoteListenerHelper;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/String;)V
+HSPLcom/android/server/location/RemoteListenerHelper;-><init>(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/String;)V
+PLcom/android/server/location/RemoteListenerHelper;->access$200(Lcom/android/server/location/RemoteListenerHelper;)Z
+PLcom/android/server/location/RemoteListenerHelper;->access$202(Lcom/android/server/location/RemoteListenerHelper;Z)Z
PLcom/android/server/location/RemoteListenerHelper;->addListener(Landroid/os/IInterface;Lcom/android/server/location/CallerIdentity;)V
-PLcom/android/server/location/RemoteListenerHelper;->calculateCurrentResultUnsafe()I
-PLcom/android/server/location/RemoteListenerHelper;->foreach(Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;)V
-PLcom/android/server/location/RemoteListenerHelper;->foreachUnsafe(Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;)V
-PLcom/android/server/location/RemoteListenerHelper;->hasPermission(Landroid/content/Context;Lcom/android/server/location/CallerIdentity;)Z
+HSPLcom/android/server/location/RemoteListenerHelper;->calculateCurrentResultUnsafe()I
+HPLcom/android/server/location/RemoteListenerHelper;->foreach(Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;)V
+HSPLcom/android/server/location/RemoteListenerHelper;->foreachUnsafe(Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;)V
+HPLcom/android/server/location/RemoteListenerHelper;->hasPermission(Landroid/content/Context;Lcom/android/server/location/CallerIdentity;)Z
+PLcom/android/server/location/RemoteListenerHelper;->post(Lcom/android/server/location/RemoteListenerHelper$IdentifiedListener;Lcom/android/server/location/RemoteListenerHelper$ListenerOperation;)V
PLcom/android/server/location/RemoteListenerHelper;->removeListener(Landroid/os/IInterface;)V
-PLcom/android/server/location/RemoteListenerHelper;->setSupported(Z)V
-PLcom/android/server/location/RemoteListenerHelper;->tryUpdateRegistrationWithService()V
-PLcom/android/server/location/RemoteListenerHelper;->updateResult()V
+HSPLcom/android/server/location/RemoteListenerHelper;->setSupported(Z)V
+PLcom/android/server/location/RemoteListenerHelper;->tryRegister()V
+HSPLcom/android/server/location/RemoteListenerHelper;->tryUpdateRegistrationWithService()V
+HSPLcom/android/server/location/RemoteListenerHelper;->updateResult()V
PLcom/android/server/locksettings/-$$Lambda$LockSettingsService$25VQEBWGuGqdc4Xjn9m8HXt9ZTI;-><init>(Lcom/android/server/locksettings/LockSettingsService;Ljava/util/ArrayList;I)V
PLcom/android/server/locksettings/-$$Lambda$LockSettingsService$25VQEBWGuGqdc4Xjn9m8HXt9ZTI;->run()V
-PLcom/android/server/locksettings/-$$Lambda$LockSettingsService$TCZYHfmf32xFYZ8VXhgwaf00Ndo;-><init>(Lcom/android/server/locksettings/LockSettingsService;I)V
-PLcom/android/server/locksettings/-$$Lambda$LockSettingsService$TCZYHfmf32xFYZ8VXhgwaf00Ndo;->run()V
-PLcom/android/server/locksettings/-$$Lambda$SyntheticPasswordManager$WjMV-qfQ1YUbeAiLzyAhyepqPFI;-><init>(Lcom/android/server/locksettings/SyntheticPasswordManager;)V
-PLcom/android/server/locksettings/-$$Lambda$SyntheticPasswordManager$WjMV-qfQ1YUbeAiLzyAhyepqPFI;->onValues(ILandroid/hardware/weaver/V1_0/WeaverConfig;)V
+HSPLcom/android/server/locksettings/-$$Lambda$SyntheticPasswordManager$WjMV-qfQ1YUbeAiLzyAhyepqPFI;-><init>(Lcom/android/server/locksettings/SyntheticPasswordManager;)V
+HSPLcom/android/server/locksettings/-$$Lambda$SyntheticPasswordManager$WjMV-qfQ1YUbeAiLzyAhyepqPFI;->onValues(ILandroid/hardware/weaver/V1_0/WeaverConfig;)V
PLcom/android/server/locksettings/-$$Lambda$SyntheticPasswordManager$aWnbfYziDTrRrLqWFePMTj6-dy0;-><init>([Lcom/android/internal/widget/VerifyCredentialResponse;I)V
PLcom/android/server/locksettings/-$$Lambda$SyntheticPasswordManager$aWnbfYziDTrRrLqWFePMTj6-dy0;->onValues(ILandroid/hardware/weaver/V1_0/WeaverReadResponse;)V
PLcom/android/server/locksettings/LockSettingsService$1;-><init>(Lcom/android/server/locksettings/LockSettingsService;I)V
PLcom/android/server/locksettings/LockSettingsService$1;->run()V
-PLcom/android/server/locksettings/LockSettingsService$2;-><init>(Lcom/android/server/locksettings/LockSettingsService;)V
+HSPLcom/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;Ljava/util/concurrent/CountDownLatch;)V
PLcom/android/server/locksettings/LockSettingsService$3;->onFinished(ILandroid/os/Bundle;)V
PLcom/android/server/locksettings/LockSettingsService$3;->onProgress(IILandroid/os/Bundle;)V
PLcom/android/server/locksettings/LockSettingsService$3;->onStarted(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;->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$1;)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;->getContext()Landroid/content/Context;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getHandler(Lcom/android/server/ServiceThread;)Landroid/os/Handler;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getKeyStore()Landroid/security/KeyStore;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getLockPatternUtils()Lcom/android/internal/widget/LockPatternUtils;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getNotificationManager()Landroid/app/NotificationManager;
-PLcom/android/server/locksettings/LockSettingsService$Injector;->getRecoverableKeyStoreManager(Landroid/security/KeyStore;)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;->getUserManager()Landroid/os/UserManager;
+HSPLcom/android/server/locksettings/LockSettingsService$DeviceProvisionedObserver;-><init>(Lcom/android/server/locksettings/LockSettingsService;)V
+HSPLcom/android/server/locksettings/LockSettingsService$DeviceProvisionedObserver;->isProvisioned()Z
+HSPLcom/android/server/locksettings/LockSettingsService$DeviceProvisionedObserver;->onSystemReady()V
+HSPLcom/android/server/locksettings/LockSettingsService$DeviceProvisionedObserver;->updateRegistration()V
+HSPLcom/android/server/locksettings/LockSettingsService$GateKeeperDiedRecipient;-><init>(Lcom/android/server/locksettings/LockSettingsService;)V
+HSPLcom/android/server/locksettings/LockSettingsService$GateKeeperDiedRecipient;-><init>(Lcom/android/server/locksettings/LockSettingsService;Lcom/android/server/locksettings/LockSettingsService$1;)V
+HSPLcom/android/server/locksettings/LockSettingsService$Injector$1;-><init>(Lcom/android/server/locksettings/LockSettingsService$Injector;Lcom/android/server/locksettings/LockSettingsStorage;)V
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getActivityManager()Landroid/app/IActivityManager;
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getContext()Landroid/content/Context;
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getHandler(Lcom/android/server/ServiceThread;)Landroid/os/Handler;
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getKeyStore()Landroid/security/KeyStore;
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getLockPatternUtils()Lcom/android/internal/widget/LockPatternUtils;
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getNotificationManager()Landroid/app/NotificationManager;
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getRecoverableKeyStoreManager(Landroid/security/KeyStore;)Lcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getServiceThread()Lcom/android/server/ServiceThread;
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getStorage()Lcom/android/server/locksettings/LockSettingsStorage;
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getStorageManager()Landroid/os/storage/IStorageManager;
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getStrongAuth()Lcom/android/server/locksettings/LockSettingsStrongAuth;
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getStrongAuthTracker()Lcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getSyntheticPasswordManager(Lcom/android/server/locksettings/LockSettingsStorage;)Lcom/android/server/locksettings/SyntheticPasswordManager;
+HSPLcom/android/server/locksettings/LockSettingsService$Injector;->getUserManager()Landroid/os/UserManager;
PLcom/android/server/locksettings/LockSettingsService$Injector;->hasEnrolledBiometrics(I)Z
-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
+HSPLcom/android/server/locksettings/LockSettingsService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/locksettings/LockSettingsService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/locksettings/LockSettingsService$Lifecycle;->onStart()V
PLcom/android/server/locksettings/LockSettingsService$Lifecycle;->onStartUser(I)V
PLcom/android/server/locksettings/LockSettingsService$Lifecycle;->onUnlockUser(I)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$1;)V
-PLcom/android/server/locksettings/LockSettingsService$LocalService;->getUserPasswordMetrics(I)Landroid/app/admin/PasswordMetrics;
+HSPLcom/android/server/locksettings/LockSettingsService$LocalService;-><init>(Lcom/android/server/locksettings/LockSettingsService;)V
+HSPLcom/android/server/locksettings/LockSettingsService$LocalService;-><init>(Lcom/android/server/locksettings/LockSettingsService;Lcom/android/server/locksettings/LockSettingsService$1;)V
+HPLcom/android/server/locksettings/LockSettingsService$LocalService;->getUserPasswordMetrics(I)Landroid/app/admin/PasswordMetrics;
PLcom/android/server/locksettings/LockSettingsService$PendingResetLockout;-><init>(Lcom/android/server/locksettings/LockSettingsService;I[B)V
-PLcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;-><init>(Landroid/content/Context;)V
+HSPLcom/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;-><clinit>()V
-PLcom/android/server/locksettings/LockSettingsService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/locksettings/LockSettingsService;-><init>(Lcom/android/server/locksettings/LockSettingsService$Injector;)V
-PLcom/android/server/locksettings/LockSettingsService;->access$000(Lcom/android/server/locksettings/LockSettingsService;)V
-PLcom/android/server/locksettings/LockSettingsService;->access$1100(Lcom/android/server/locksettings/LockSettingsService;)Landroid/content/Context;
-PLcom/android/server/locksettings/LockSettingsService;->access$1800(Lcom/android/server/locksettings/LockSettingsService;I)Z
+HSPLcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTracker;->register(Lcom/android/server/locksettings/LockSettingsStrongAuth;)V
+HSPLcom/android/server/locksettings/LockSettingsService;-><clinit>()V
+HSPLcom/android/server/locksettings/LockSettingsService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/locksettings/LockSettingsService;-><init>(Lcom/android/server/locksettings/LockSettingsService$Injector;)V
+HSPLcom/android/server/locksettings/LockSettingsService;->access$000(Lcom/android/server/locksettings/LockSettingsService;)V
+HSPLcom/android/server/locksettings/LockSettingsService;->access$1000(Lcom/android/server/locksettings/LockSettingsService;)Landroid/content/Context;
+PLcom/android/server/locksettings/LockSettingsService;->access$1700(Lcom/android/server/locksettings/LockSettingsService;I)Z
+PLcom/android/server/locksettings/LockSettingsService;->access$200(Lcom/android/server/locksettings/LockSettingsService;I)V
+PLcom/android/server/locksettings/LockSettingsService;->access$300(Lcom/android/server/locksettings/LockSettingsService;I)V
+PLcom/android/server/locksettings/LockSettingsService;->access$400(Lcom/android/server/locksettings/LockSettingsService;Landroid/os/UserHandle;)V
+PLcom/android/server/locksettings/LockSettingsService;->access$500(Lcom/android/server/locksettings/LockSettingsService;)Landroid/os/UserManager;
+PLcom/android/server/locksettings/LockSettingsService;->access$600(Lcom/android/server/locksettings/LockSettingsService;I)Z
PLcom/android/server/locksettings/LockSettingsService;->activateEscrowTokens(Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;I)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;->checkPasswordHavePermission(I)V
-PLcom/android/server/locksettings/LockSettingsService;->checkPasswordReadPermission(I)V
-HPLcom/android/server/locksettings/LockSettingsService;->checkReadPermission(Ljava/lang/String;I)V
+HSPLcom/android/server/locksettings/LockSettingsService;->checkPasswordHavePermission(I)V
+HSPLcom/android/server/locksettings/LockSettingsService;->checkPasswordReadPermission(I)V
+HSPLcom/android/server/locksettings/LockSettingsService;->checkReadPermission(Ljava/lang/String;I)V
PLcom/android/server/locksettings/LockSettingsService;->checkVoldPassword(I)Z
-PLcom/android/server/locksettings/LockSettingsService;->checkWritePermission(I)V
+HSPLcom/android/server/locksettings/LockSettingsService;->checkWritePermission(I)V
+PLcom/android/server/locksettings/LockSettingsService;->cleanupDataForReusedUserIdIfNecessary(I)V
PLcom/android/server/locksettings/LockSettingsService;->disableEscrowTokenOnNonManagedDevicesIfNeeded(I)V
PLcom/android/server/locksettings/LockSettingsService;->doVerifyCredential(Lcom/android/internal/widget/LockscreenCredential;IJILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/internal/widget/VerifyCredentialResponse;
PLcom/android/server/locksettings/LockSettingsService;->doVerifyCredential(Lcom/android/internal/widget/LockscreenCredential;IJILcom/android/internal/widget/ICheckCredentialProgressCallback;Ljava/util/ArrayList;)Lcom/android/internal/widget/VerifyCredentialResponse;
+PLcom/android/server/locksettings/LockSettingsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/locksettings/LockSettingsService;->ensureProfileKeystoreUnlocked(I)V
PLcom/android/server/locksettings/LockSettingsService;->generateKey(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/locksettings/LockSettingsService;->getBoolean(Ljava/lang/String;ZI)Z
-HPLcom/android/server/locksettings/LockSettingsService;->getBooleanUnchecked(Ljava/lang/String;ZI)Z
-HPLcom/android/server/locksettings/LockSettingsService;->getCredentialType(I)I
-HPLcom/android/server/locksettings/LockSettingsService;->getCredentialTypeInternal(I)I
+HSPLcom/android/server/locksettings/LockSettingsService;->getBoolean(Ljava/lang/String;ZI)Z
+HSPLcom/android/server/locksettings/LockSettingsService;->getBooleanUnchecked(Ljava/lang/String;ZI)Z
+HSPLcom/android/server/locksettings/LockSettingsService;->getCredentialType(I)I
+HSPLcom/android/server/locksettings/LockSettingsService;->getCredentialTypeInternal(I)I
PLcom/android/server/locksettings/LockSettingsService;->getDecryptedPasswordForTiedProfile(I)Lcom/android/internal/widget/LockscreenCredential;
-PLcom/android/server/locksettings/LockSettingsService;->getGateKeeperService()Landroid/service/gatekeeper/IGateKeeperService;
+HSPLcom/android/server/locksettings/LockSettingsService;->getGateKeeperService()Landroid/service/gatekeeper/IGateKeeperService;
+PLcom/android/server/locksettings/LockSettingsService;->getIntUnchecked(Ljava/lang/String;II)I
PLcom/android/server/locksettings/LockSettingsService;->getKey(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/locksettings/LockSettingsService;->getLong(Ljava/lang/String;JI)J
-PLcom/android/server/locksettings/LockSettingsService;->getLongUnchecked(Ljava/lang/String;JI)J
+PLcom/android/server/locksettings/LockSettingsService;->getKeyChainSnapshot()Landroid/security/keystore/recovery/KeyChainSnapshot;
+HSPLcom/android/server/locksettings/LockSettingsService;->getLong(Ljava/lang/String;JI)J
+HSPLcom/android/server/locksettings/LockSettingsService;->getLongUnchecked(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;->getSeparateProfileChallengeEnabled(I)Z
-HPLcom/android/server/locksettings/LockSettingsService;->getSeparateProfileChallengeEnabledInternal(I)Z
-PLcom/android/server/locksettings/LockSettingsService;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
-HPLcom/android/server/locksettings/LockSettingsService;->getStringUnchecked(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
-HPLcom/android/server/locksettings/LockSettingsService;->getSyntheticPasswordHandleLocked(I)J
+HSPLcom/android/server/locksettings/LockSettingsService;->getSeparateProfileChallengeEnabled(I)Z
+HSPLcom/android/server/locksettings/LockSettingsService;->getSeparateProfileChallengeEnabledInternal(I)Z
+HSPLcom/android/server/locksettings/LockSettingsService;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+HSPLcom/android/server/locksettings/LockSettingsService;->getStringUnchecked(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+PLcom/android/server/locksettings/LockSettingsService;->getStrongAuthForUser(I)I
+HSPLcom/android/server/locksettings/LockSettingsService;->getSyntheticPasswordHandleLocked(I)J
PLcom/android/server/locksettings/LockSettingsService;->getUserPasswordMetrics(I)Landroid/app/admin/PasswordMetrics;
+PLcom/android/server/locksettings/LockSettingsService;->hideEncryptionNotification(Landroid/os/UserHandle;)V
PLcom/android/server/locksettings/LockSettingsService;->initRecoveryServiceWithSigFile(Ljava/lang/String;[B[B)V
PLcom/android/server/locksettings/LockSettingsService;->isManagedProfileWithSeparatedLock(I)Z
PLcom/android/server/locksettings/LockSettingsService;->isManagedProfileWithUnifiedLock(I)Z
-PLcom/android/server/locksettings/LockSettingsService;->isSyntheticPasswordBasedCredentialLocked(I)Z
+HSPLcom/android/server/locksettings/LockSettingsService;->isSyntheticPasswordBasedCredentialLocked(I)Z
PLcom/android/server/locksettings/LockSettingsService;->isUserKeyUnlocked(I)Z
PLcom/android/server/locksettings/LockSettingsService;->isUserSecure(I)Z
-PLcom/android/server/locksettings/LockSettingsService;->lambda$tryRemoveUserFromSpCacheLater$3$LockSettingsService(I)V
PLcom/android/server/locksettings/LockSettingsService;->lambda$unlockUser$1$LockSettingsService(Ljava/util/ArrayList;I)V
PLcom/android/server/locksettings/LockSettingsService;->maybeShowEncryptionNotificationForUser(I)V
-PLcom/android/server/locksettings/LockSettingsService;->migrateOldData()V
-PLcom/android/server/locksettings/LockSettingsService;->migrateOldDataAfterSystemReady()V
+HSPLcom/android/server/locksettings/LockSettingsService;->migrateOldData()V
+HSPLcom/android/server/locksettings/LockSettingsService;->migrateOldDataAfterSystemReady()V
PLcom/android/server/locksettings/LockSettingsService;->onAuthTokenKnownForUser(ILcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;)V
PLcom/android/server/locksettings/LockSettingsService;->onStartUser(I)V
-PLcom/android/server/locksettings/LockSettingsService;->registerStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
+PLcom/android/server/locksettings/LockSettingsService;->onUnlockUser(I)V
+HSPLcom/android/server/locksettings/LockSettingsService;->registerStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
PLcom/android/server/locksettings/LockSettingsService;->sendCredentialsOnUnlockIfRequired(Lcom/android/internal/widget/LockscreenCredential;I)V
+PLcom/android/server/locksettings/LockSettingsService;->setBoolean(Ljava/lang/String;ZI)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;->setServerParams([B)V
PLcom/android/server/locksettings/LockSettingsService;->setSnapshotCreatedPendingIntent(Landroid/app/PendingIntent;)V
+PLcom/android/server/locksettings/LockSettingsService;->setStringUnchecked(Ljava/lang/String;ILjava/lang/String;)V
PLcom/android/server/locksettings/LockSettingsService;->setUserPasswordMetrics(Lcom/android/internal/widget/LockscreenCredential;I)V
-PLcom/android/server/locksettings/LockSettingsService;->shouldCacheSpForUser(I)Z
-PLcom/android/server/locksettings/LockSettingsService;->spBasedDoVerifyCredential(Lcom/android/internal/widget/LockscreenCredential;IJILcom/android/internal/widget/ICheckCredentialProgressCallback;Ljava/util/ArrayList;)Lcom/android/internal/widget/VerifyCredentialResponse;
-PLcom/android/server/locksettings/LockSettingsService;->systemReady()V
+HPLcom/android/server/locksettings/LockSettingsService;->spBasedDoVerifyCredential(Lcom/android/internal/widget/LockscreenCredential;IJILcom/android/internal/widget/ICheckCredentialProgressCallback;Ljava/util/ArrayList;)Lcom/android/internal/widget/VerifyCredentialResponse;
+HSPLcom/android/server/locksettings/LockSettingsService;->systemReady()V
PLcom/android/server/locksettings/LockSettingsService;->tieManagedProfileLockIfNecessary(ILcom/android/internal/widget/LockscreenCredential;)V
PLcom/android/server/locksettings/LockSettingsService;->tiedManagedProfileReadyToUnlock(Landroid/content/pm/UserInfo;)Z
+PLcom/android/server/locksettings/LockSettingsService;->timestampToString(J)Ljava/lang/String;
PLcom/android/server/locksettings/LockSettingsService;->unlockChildProfile(IZIJLjava/util/ArrayList;)V
PLcom/android/server/locksettings/LockSettingsService;->unlockKeystore([BI)V
PLcom/android/server/locksettings/LockSettingsService;->unlockUser(I[B[BIJLjava/util/ArrayList;)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$1;)V
-HPLcom/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$CacheKey;->set(ILjava/lang/String;I)Lcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;-><init>()V
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;-><init>(Lcom/android/server/locksettings/LockSettingsStorage$1;)V
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->access$100(Lcom/android/server/locksettings/LockSettingsStorage$Cache;)I
-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/lang/String;)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/lang/String;)[B
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->peekKeyValue(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->put(ILjava/lang/String;Ljava/lang/Object;I)V
-PLcom/android/server/locksettings/LockSettingsStorage$Cache;->putFileIfUnchanged(Ljava/lang/String;[BI)V
-PLcom/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;->setFetched(I)V
-PLcom/android/server/locksettings/LockSettingsStorage$CredentialHash;-><init>([BI)V
-PLcom/android/server/locksettings/LockSettingsStorage$CredentialHash;->createEmptyHash()Lcom/android/server/locksettings/LockSettingsStorage$CredentialHash;
-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;-><clinit>()V
-PLcom/android/server/locksettings/LockSettingsStorage;-><init>(Landroid/content/Context;)V
-PLcom/android/server/locksettings/LockSettingsStorage;->access$400()Ljava/lang/Object;
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;-><init>()V
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;-><init>(Lcom/android/server/locksettings/LockSettingsStorage$1;)V
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;->hashCode()I
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;->set(ILjava/lang/String;I)Lcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;-><init>()V
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;-><init>(Lcom/android/server/locksettings/LockSettingsStorage$1;)V
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->access$100(Lcom/android/server/locksettings/LockSettingsStorage$Cache;)I
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->contains(ILjava/lang/String;I)Z
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->copyOf([B)[B
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->getVersion()I
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->hasFile(Ljava/lang/String;)Z
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->hasKeyValue(Ljava/lang/String;I)Z
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->isFetched(I)Z
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->peek(ILjava/lang/String;I)Ljava/lang/Object;
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->peekFile(Ljava/lang/String;)[B
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->peekKeyValue(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->put(ILjava/lang/String;Ljava/lang/Object;I)V
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->putFileIfUnchanged(Ljava/lang/String;[BI)V
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->putIfUnchanged(ILjava/lang/String;Ljava/lang/Object;II)V
+PLcom/android/server/locksettings/LockSettingsStorage$Cache;->putKeyValue(Ljava/lang/String;Ljava/lang/String;I)V
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->putKeyValueIfUnchanged(Ljava/lang/String;Ljava/lang/Object;II)V
+HSPLcom/android/server/locksettings/LockSettingsStorage$Cache;->setFetched(I)V
+HSPLcom/android/server/locksettings/LockSettingsStorage$CredentialHash;-><init>([BI)V
+HSPLcom/android/server/locksettings/LockSettingsStorage$CredentialHash;->createEmptyHash()Lcom/android/server/locksettings/LockSettingsStorage$CredentialHash;
+HSPLcom/android/server/locksettings/LockSettingsStorage$DatabaseHelper;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/locksettings/LockSettingsStorage$DatabaseHelper;->setCallback(Lcom/android/server/locksettings/LockSettingsStorage$Callback;)V
+HSPLcom/android/server/locksettings/LockSettingsStorage;-><clinit>()V
+HSPLcom/android/server/locksettings/LockSettingsStorage;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/locksettings/LockSettingsStorage;->access$400()Ljava/lang/Object;
PLcom/android/server/locksettings/LockSettingsStorage;->deleteSyntheticPasswordState(IJLjava/lang/String;)V
-PLcom/android/server/locksettings/LockSettingsStorage;->getLockCredentialFilePathForUser(ILjava/lang/String;)Ljava/lang/String;
-PLcom/android/server/locksettings/LockSettingsStorage;->getLockPasswordFilename(I)Ljava/lang/String;
-PLcom/android/server/locksettings/LockSettingsStorage;->getLockPatternFilename(I)Ljava/lang/String;
-HPLcom/android/server/locksettings/LockSettingsStorage;->getSynthenticPasswordStateFilePathForUser(IJLjava/lang/String;)Ljava/lang/String;
-PLcom/android/server/locksettings/LockSettingsStorage;->getSyntheticPasswordDirectoryForUser(I)Ljava/io/File;
+PLcom/android/server/locksettings/LockSettingsStorage;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/locksettings/LockSettingsStorage;->getChildProfileLockFile(I)Ljava/lang/String;
+HSPLcom/android/server/locksettings/LockSettingsStorage;->getLockCredentialFilePathForUser(ILjava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/locksettings/LockSettingsStorage;->getLockPasswordFilename(I)Ljava/lang/String;
+HSPLcom/android/server/locksettings/LockSettingsStorage;->getLockPatternFilename(I)Ljava/lang/String;
+HSPLcom/android/server/locksettings/LockSettingsStorage;->getSynthenticPasswordStateFilePathForUser(IJLjava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/locksettings/LockSettingsStorage;->getSyntheticPasswordDirectoryForUser(I)Ljava/io/File;
PLcom/android/server/locksettings/LockSettingsStorage;->hasChildProfileLock(I)Z
-PLcom/android/server/locksettings/LockSettingsStorage;->listSyntheticPasswordHandlesForAllUsers(Ljava/lang/String;)Ljava/util/Map;
-PLcom/android/server/locksettings/LockSettingsStorage;->listSyntheticPasswordHandlesForUser(Ljava/lang/String;I)Ljava/util/List;
-PLcom/android/server/locksettings/LockSettingsStorage;->prefetchUser(I)V
+PLcom/android/server/locksettings/LockSettingsStorage;->hasFile(Ljava/lang/String;)Z
+HSPLcom/android/server/locksettings/LockSettingsStorage;->listSyntheticPasswordHandlesForAllUsers(Ljava/lang/String;)Ljava/util/Map;
+HSPLcom/android/server/locksettings/LockSettingsStorage;->listSyntheticPasswordHandlesForUser(Ljava/lang/String;I)Ljava/util/List;
+HSPLcom/android/server/locksettings/LockSettingsStorage;->prefetchUser(I)V
PLcom/android/server/locksettings/LockSettingsStorage;->readChildProfileLock(I)[B
-PLcom/android/server/locksettings/LockSettingsStorage;->readCredentialHash(I)Lcom/android/server/locksettings/LockSettingsStorage$CredentialHash;
-PLcom/android/server/locksettings/LockSettingsStorage;->readFile(Ljava/lang/String;)[B
-HPLcom/android/server/locksettings/LockSettingsStorage;->readKeyValue(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/locksettings/LockSettingsStorage;->readPasswordHashIfExists(I)Lcom/android/server/locksettings/LockSettingsStorage$CredentialHash;
-PLcom/android/server/locksettings/LockSettingsStorage;->readPatternHashIfExists(I)Lcom/android/server/locksettings/LockSettingsStorage$CredentialHash;
-PLcom/android/server/locksettings/LockSettingsStorage;->readSyntheticPasswordState(IJLjava/lang/String;)[B
-PLcom/android/server/locksettings/LockSettingsStorage;->setDatabaseOnCreateCallback(Lcom/android/server/locksettings/LockSettingsStorage$Callback;)V
-PLcom/android/server/locksettings/LockSettingsStrongAuth$1;-><init>(Lcom/android/server/locksettings/LockSettingsStrongAuth;)V
+HSPLcom/android/server/locksettings/LockSettingsStorage;->readCredentialHash(I)Lcom/android/server/locksettings/LockSettingsStorage$CredentialHash;
+HSPLcom/android/server/locksettings/LockSettingsStorage;->readFile(Ljava/lang/String;)[B
+HSPLcom/android/server/locksettings/LockSettingsStorage;->readKeyValue(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
+HSPLcom/android/server/locksettings/LockSettingsStorage;->readPasswordHashIfExists(I)Lcom/android/server/locksettings/LockSettingsStorage$CredentialHash;
+HSPLcom/android/server/locksettings/LockSettingsStorage;->readPatternHashIfExists(I)Lcom/android/server/locksettings/LockSettingsStorage$CredentialHash;
+HSPLcom/android/server/locksettings/LockSettingsStorage;->readSyntheticPasswordState(IJLjava/lang/String;)[B
+HSPLcom/android/server/locksettings/LockSettingsStorage;->setDatabaseOnCreateCallback(Lcom/android/server/locksettings/LockSettingsStorage$Callback;)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
+HSPLcom/android/server/locksettings/LockSettingsStrongAuth$1;-><init>(Lcom/android/server/locksettings/LockSettingsStrongAuth;)V
PLcom/android/server/locksettings/LockSettingsStrongAuth$1;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/locksettings/LockSettingsStrongAuth$StrongAuthTimeoutAlarmListener;-><init>(Lcom/android/server/locksettings/LockSettingsStrongAuth;I)V
-PLcom/android/server/locksettings/LockSettingsStrongAuth;-><init>(Landroid/content/Context;)V
+PLcom/android/server/locksettings/LockSettingsStrongAuth$StrongAuthTimeoutAlarmListener;->onAlarm()V
+HSPLcom/android/server/locksettings/LockSettingsStrongAuth;-><init>(Landroid/content/Context;)V
PLcom/android/server/locksettings/LockSettingsStrongAuth;->access$000(Lcom/android/server/locksettings/LockSettingsStrongAuth;Landroid/app/trust/IStrongAuthTracker;)V
PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleAddStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
PLcom/android/server/locksettings/LockSettingsStrongAuth;->handleScheduleStrongAuthTimeout(I)V
PLcom/android/server/locksettings/LockSettingsStrongAuth;->notifyStrongAuthTrackers(II)V
-PLcom/android/server/locksettings/LockSettingsStrongAuth;->registerStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
+HSPLcom/android/server/locksettings/LockSettingsStrongAuth;->registerStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V
PLcom/android/server/locksettings/LockSettingsStrongAuth;->reportSuccessfulStrongAuthUnlock(I)V
-PLcom/android/server/locksettings/PasswordSlotManager;-><init>()V
-PLcom/android/server/locksettings/PasswordSlotManager;->refreshActiveSlots(Ljava/util/Set;)V
+HSPLcom/android/server/locksettings/PasswordSlotManager;-><init>()V
+HSPLcom/android/server/locksettings/PasswordSlotManager;->refreshActiveSlots(Ljava/util/Set;)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
+HPLcom/android/server/locksettings/SP800Derive;->update32(Ljavax/crypto/Mac;I)V
PLcom/android/server/locksettings/SP800Derive;->withContext([B[B)[B
PLcom/android/server/locksettings/SyntheticPasswordCrypto;-><clinit>()V
PLcom/android/server/locksettings/SyntheticPasswordCrypto;->decrypt(Ljavax/crypto/SecretKey;[B)[B
@@ -9328,70 +11189,113 @@ PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;-
PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;->derivePassword([B)[B
PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;->deriveVendorAuthSecret()[B
PLcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;->recreateDirectly([B)V
-PLcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;-><init>()V
-PLcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;->fromBytes([B)Lcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;
-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
+HSPLcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;-><init>()V
+HSPLcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;->fromBytes([B)Lcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;
+HSPLcom/android/server/locksettings/SyntheticPasswordManager;-><clinit>()V
+HSPLcom/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;->access$000()[B
+PLcom/android/server/locksettings/SyntheticPasswordManager;->access$100()[B
+PLcom/android/server/locksettings/SyntheticPasswordManager;->access$200([B)[B
+PLcom/android/server/locksettings/SyntheticPasswordManager;->access$300()[B
+PLcom/android/server/locksettings/SyntheticPasswordManager;->access$400()[B
PLcom/android/server/locksettings/SyntheticPasswordManager;->bytesToHex([B)[B
PLcom/android/server/locksettings/SyntheticPasswordManager;->computePasswordToken(Lcom/android/internal/widget/LockscreenCredential;Lcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;)[B
-PLcom/android/server/locksettings/SyntheticPasswordManager;->getCredentialType(JI)I
+PLcom/android/server/locksettings/SyntheticPasswordManager;->decryptSPBlob(Ljava/lang/String;[B[B)[B
+PLcom/android/server/locksettings/SyntheticPasswordManager;->fromByteArrayList(Ljava/util/ArrayList;)[B
+HSPLcom/android/server/locksettings/SyntheticPasswordManager;->getCredentialType(JI)I
+PLcom/android/server/locksettings/SyntheticPasswordManager;->getHandleName(J)Ljava/lang/String;
PLcom/android/server/locksettings/SyntheticPasswordManager;->getPendingTokensForUser(I)Ljava/util/Set;
-PLcom/android/server/locksettings/SyntheticPasswordManager;->getUsedWeaverSlots()Ljava/util/Set;
-PLcom/android/server/locksettings/SyntheticPasswordManager;->getWeaverService()Landroid/hardware/weaver/V1_0/IWeaver;
-PLcom/android/server/locksettings/SyntheticPasswordManager;->initWeaverService()V
+HSPLcom/android/server/locksettings/SyntheticPasswordManager;->getUsedWeaverSlots()Ljava/util/Set;
+HSPLcom/android/server/locksettings/SyntheticPasswordManager;->getWeaverService()Landroid/hardware/weaver/V1_0/IWeaver;
+HSPLcom/android/server/locksettings/SyntheticPasswordManager;->initWeaverService()V
PLcom/android/server/locksettings/SyntheticPasswordManager;->isWeaverAvailable()Z
-PLcom/android/server/locksettings/SyntheticPasswordManager;->lambda$initWeaverService$0$SyntheticPasswordManager(ILandroid/hardware/weaver/V1_0/WeaverConfig;)V
+HSPLcom/android/server/locksettings/SyntheticPasswordManager;->lambda$initWeaverService$0$SyntheticPasswordManager(ILandroid/hardware/weaver/V1_0/WeaverConfig;)V
PLcom/android/server/locksettings/SyntheticPasswordManager;->lambda$weaverVerify$1([Lcom/android/internal/widget/VerifyCredentialResponse;IILandroid/hardware/weaver/V1_0/WeaverReadResponse;)V
-PLcom/android/server/locksettings/SyntheticPasswordManager;->loadState(Ljava/lang/String;JI)[B
-PLcom/android/server/locksettings/SyntheticPasswordManager;->loadWeaverSlot(JI)I
+HSPLcom/android/server/locksettings/SyntheticPasswordManager;->loadState(Ljava/lang/String;JI)[B
+PLcom/android/server/locksettings/SyntheticPasswordManager;->loadSyntheticPasswordHandle(I)[B
+HSPLcom/android/server/locksettings/SyntheticPasswordManager;->loadWeaverSlot(JI)I
PLcom/android/server/locksettings/SyntheticPasswordManager;->passwordTokenToWeaverKey([B)[B
PLcom/android/server/locksettings/SyntheticPasswordManager;->scrypt([B[BIIII)[B
-PLcom/android/server/locksettings/SyntheticPasswordManager;->toByteArrayList([B)Ljava/util/ArrayList;
+HPLcom/android/server/locksettings/SyntheticPasswordManager;->toByteArrayList([B)Ljava/util/ArrayList;
PLcom/android/server/locksettings/SyntheticPasswordManager;->transformUnderWeaverSecret([B[B)[B
PLcom/android/server/locksettings/SyntheticPasswordManager;->unwrapPasswordBasedSyntheticPassword(Landroid/service/gatekeeper/IGateKeeperService;JLcom/android/internal/widget/LockscreenCredential;ILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationResult;
PLcom/android/server/locksettings/SyntheticPasswordManager;->unwrapSyntheticPasswordBlob(JB[BJI)Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;
PLcom/android/server/locksettings/SyntheticPasswordManager;->verifyChallenge(Landroid/service/gatekeeper/IGateKeeperService;Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;JI)Lcom/android/internal/widget/VerifyCredentialResponse;
PLcom/android/server/locksettings/SyntheticPasswordManager;->weaverVerify(I[B)Lcom/android/internal/widget/VerifyCredentialResponse;
-PLcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;-><init>(Ljava/security/KeyStore;)V
-PLcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;->getAndLoadAndroidKeyStore()Ljava/security/KeyStore;
+HSPLcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;-><init>(Ljava/security/KeyStore;)V
+HSPLcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;->getAndLoadAndroidKeyStore()Ljava/security/KeyStore;
PLcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;->setEntry(Ljava/lang/String;Ljava/security/KeyStore$Entry;Ljava/security/KeyStore$ProtectionParameter;)V
PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;-><init>(Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;Lcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;II[BZLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;Lcom/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper;Landroid/security/Scrypt;)V
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->createApplicationKeyEntries(Ljava/util/Map;Ljava/util/Map;)Ljava/util/List;
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->generateRecoveryKey()Ljavax/crypto/SecretKey;
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->generateSalt()[B
+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;->isCustomLockScreen()Z
PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->newInstance(Landroid/content/Context;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;Lcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;II[BZ)Lcom/android/server/locksettings/recoverablekeystore/KeySyncTask;
PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->run()V
PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->shouldCreateSnapshot(I)Z
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncTask;->shouldUseScryptToHashCredential()Z
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;->calculateThmKfHash([B)[B
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncUtils;->concat([[B)[B
+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/KeySyncUtils;->packVaultParams(Ljava/security/PublicKey;JI[B)[B
+PLcom/android/server/locksettings/recoverablekeystore/KeySyncUtils;->thmEncryptRecoveryKey(Ljava/security/PublicKey;[B[BLjavax/crypto/SecretKey;)[B
PLcom/android/server/locksettings/recoverablekeystore/PlatformDecryptionKey;-><init>(ILandroid/security/keystore/AndroidKeyStoreSecretKey;)V
+PLcom/android/server/locksettings/recoverablekeystore/PlatformDecryptionKey;->getGenerationId()I
+PLcom/android/server/locksettings/recoverablekeystore/PlatformDecryptionKey;->getKey()Landroid/security/keystore/AndroidKeyStoreSecretKey;
PLcom/android/server/locksettings/recoverablekeystore/PlatformEncryptionKey;-><init>(ILandroid/security/keystore/AndroidKeyStoreSecretKey;)V
PLcom/android/server/locksettings/recoverablekeystore/PlatformEncryptionKey;->getGenerationId()I
PLcom/android/server/locksettings/recoverablekeystore/PlatformEncryptionKey;->getKey()Landroid/security/keystore/AndroidKeyStoreSecretKey;
-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;->generateAndLoadKey(II)V
-PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->getAndLoadAndroidKeyStore()Ljava/security/KeyStore;
+HSPLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;-><clinit>()V
+HSPLcom/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;->ensureDecryptionKeyIsValid(ILcom/android/server/locksettings/recoverablekeystore/PlatformDecryptionKey;)V
+HSPLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->getAndLoadAndroidKeyStore()Ljava/security/KeyStore;
PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->getDecryptAlias(II)Ljava/lang/String;
+PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->getDecryptKey(I)Lcom/android/server/locksettings/recoverablekeystore/PlatformDecryptionKey;
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;
+HSPLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->getInstance(Landroid/content/Context;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;)Lcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;
PLcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;->init(I)V
-PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator;-><init>(Ljavax/crypto/KeyGenerator;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;)V
+HSPLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator;-><init>(Ljavax/crypto/KeyGenerator;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;)V
PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator;->generateAndStoreKey(Lcom/android/server/locksettings/recoverablekeystore/PlatformEncryptionKey;IILjava/lang/String;[B)[B
-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/RecoverableKeyStoreManager;-><init>(Landroid/content/Context;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySessionStorage;Ljava/util/concurrent/ExecutorService;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;)V
+HSPLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator;->newInstance(Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;)Lcom/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator;
+HSPLcom/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/ExecutorService;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;)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;->getInstance(Landroid/content/Context;Landroid/security/KeyStore;)Lcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;
+HSPLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->getInstance(Landroid/content/Context;Landroid/security/KeyStore;)Lcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;
PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->initRecoveryService(Ljava/lang/String;[B)V
PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->initRecoveryServiceWithSigFile(Ljava/lang/String;[B[B)V
PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->lockScreenSecretAvailable(I[BI)V
PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->setRecoverySecretTypes([I)V
+PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->setRecoveryStatus(Ljava/lang/String;I)V
PLcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;->setServerParams([B)V
-PLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;-><init>()V
+HSPLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;-><init>()V
+PLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;->recoverySnapshotAvailable(I)V
PLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;->setSnapshotListener(ILandroid/app/PendingIntent;)V
-PLcom/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper;-><init>()V
+PLcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;->tryToSendIntent(ILandroid/app/PendingIntent;)V
+PLcom/android/server/locksettings/recoverablekeystore/SecureBox$AesGcmOperation;-><clinit>()V
+PLcom/android/server/locksettings/recoverablekeystore/SecureBox$AesGcmOperation;-><init>(Ljava/lang/String;I)V
+PLcom/android/server/locksettings/recoverablekeystore/SecureBox;-><clinit>()V
+PLcom/android/server/locksettings/recoverablekeystore/SecureBox;->aesGcmEncrypt(Ljavax/crypto/SecretKey;[B[B[B)[B
+PLcom/android/server/locksettings/recoverablekeystore/SecureBox;->aesGcmInternal(Lcom/android/server/locksettings/recoverablekeystore/SecureBox$AesGcmOperation;Ljavax/crypto/SecretKey;[B[B[B)[B
+PLcom/android/server/locksettings/recoverablekeystore/SecureBox;->concat([[B)[B
+PLcom/android/server/locksettings/recoverablekeystore/SecureBox;->dhComputeSecret(Ljava/security/PrivateKey;Ljava/security/PublicKey;)[B
+PLcom/android/server/locksettings/recoverablekeystore/SecureBox;->emptyByteArrayIfNull([B)[B
+PLcom/android/server/locksettings/recoverablekeystore/SecureBox;->encodePublicKey(Ljava/security/PublicKey;)[B
+PLcom/android/server/locksettings/recoverablekeystore/SecureBox;->encrypt(Ljava/security/PublicKey;[B[B[B)[B
+PLcom/android/server/locksettings/recoverablekeystore/SecureBox;->genKeyPair()Ljava/security/KeyPair;
+PLcom/android/server/locksettings/recoverablekeystore/SecureBox;->genRandomNonce()[B
+PLcom/android/server/locksettings/recoverablekeystore/SecureBox;->hkdfDeriveKey([B[B[B)Ljavax/crypto/SecretKey;
+HSPLcom/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper;-><init>()V
PLcom/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper;->getRootCertificate(Ljava/lang/String;)Ljava/security/cert/X509Certificate;
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;
@@ -9400,6 +11304,7 @@ PLcom/android/server/locksettings/recoverablekeystore/WrappedKey;->getKeyMetadat
PLcom/android/server/locksettings/recoverablekeystore/WrappedKey;->getNonce()[B
PLcom/android/server/locksettings/recoverablekeystore/WrappedKey;->getPlatformKeyGenerationId()I
PLcom/android/server/locksettings/recoverablekeystore/WrappedKey;->getRecoveryStatus()I
+PLcom/android/server/locksettings/recoverablekeystore/WrappedKey;->unwrapKeys(Lcom/android/server/locksettings/recoverablekeystore/PlatformDecryptionKey;Ljava/util/Map;)Ljava/util/Map;
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
@@ -9423,129 +11328,176 @@ PLcom/android/server/locksettings/recoverablekeystore/certificate/SigXml;->parse
PLcom/android/server/locksettings/recoverablekeystore/certificate/SigXml;->parseSignerCert(Lorg/w3c/dom/Element;)Ljava/security/cert/X509Certificate;
PLcom/android/server/locksettings/recoverablekeystore/certificate/SigXml;->verifyFileSignature(Ljava/security/cert/X509Certificate;[B)V
PLcom/android/server/locksettings/recoverablekeystore/certificate/SigXml;->verifyFileSignature(Ljava/security/cert/X509Certificate;[BLjava/util/Date;)V
-PLcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;-><init>(Lcom/android/server/locksettings/recoverablekeystore/KeyStoreProxy;Landroid/security/KeyStore;)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->deserialize(Ljava/io/InputStream;)Landroid/security/keystore/recovery/KeyChainSnapshot;
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->deserializeInternal(Ljava/io/InputStream;)Landroid/security/keystore/recovery/KeyChainSnapshot;
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readBlobTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)[B
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readCertPathTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/security/cert/CertPath;
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readIntTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)I
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readKeyChainProtectionParams(Lorg/xmlpull/v1/XmlPullParser;)Landroid/security/keystore/recovery/KeyChainProtectionParams;
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readKeyChainProtectionParamsList(Lorg/xmlpull/v1/XmlPullParser;)Ljava/util/List;
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readKeyDerivationParams(Lorg/xmlpull/v1/XmlPullParser;)Landroid/security/keystore/recovery/KeyDerivationParams;
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readLongTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)J
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readStringTag(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readText(Lorg/xmlpull/v1/XmlPullParser;)Ljava/lang/String;
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readWrappedApplicationKey(Lorg/xmlpull/v1/XmlPullParser;)Landroid/security/keystore/recovery/WrappedApplicationKey;
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;->readWrappedApplicationKeys(Lorg/xmlpull/v1/XmlPullParser;)Ljava/util/List;
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSchema;-><clinit>()V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->serialize(Landroid/security/keystore/recovery/KeyChainSnapshot;Ljava/io/OutputStream;)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->writeApplicationKeyProperties(Lorg/xmlpull/v1/XmlSerializer;Landroid/security/keystore/recovery/WrappedApplicationKey;)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->writeApplicationKeys(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/List;)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->writeKeyChainProtectionParams(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/List;)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->writeKeyChainProtectionParamsProperties(Lorg/xmlpull/v1/XmlSerializer;Landroid/security/keystore/recovery/KeyChainProtectionParams;)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->writeKeyChainSnapshotProperties(Lorg/xmlpull/v1/XmlSerializer;Landroid/security/keystore/recovery/KeyChainSnapshot;)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->writeKeyDerivationParams(Lorg/xmlpull/v1/XmlSerializer;Landroid/security/keystore/recovery/KeyDerivationParams;)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->writeKeyDerivationParamsProperties(Lorg/xmlpull/v1/XmlSerializer;Landroid/security/keystore/recovery/KeyDerivationParams;)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->writePropertyTag(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;J)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->writePropertyTag(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->writePropertyTag(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Ljava/security/cert/CertPath;)V
+PLcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;->writePropertyTag(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;[B)V
+HSPLcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;-><init>(Lcom/android/server/locksettings/recoverablekeystore/KeyStoreProxy;Landroid/security/KeyStore;)V
PLcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;->getGrantAlias(IILjava/lang/String;)Ljava/lang/String;
-PLcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;->getInstance(Landroid/security/KeyStore;)Lcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;
+HSPLcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;->getInstance(Landroid/security/KeyStore;)Lcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;
PLcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;->setSymmetricKeyEntry(IILjava/lang/String;[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>(Landroid/content/Context;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;
+HSPLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager$1;-><init>(Lcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;)V
+HSPLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;-><init>(Landroid/content/Context;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
+HSPLcom/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(II)V
-PLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;->verifyKnownUsers()V
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;-><init>(Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper;)V
+HSPLcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;->verifyKnownUsers()V
+HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;-><init>(Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper;)V
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->decodeCertPath([B)Ljava/security/cert/CertPath;
PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->ensureRecoveryServiceMetadataEntryExists(II)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;->getBytes(IILjava/lang/String;)[B
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getBytes(IILjava/lang/String;Ljava/lang/String;)[B
PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getLong(IILjava/lang/String;)Ljava/lang/Long;
PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getLong(IILjava/lang/String;Ljava/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;->getStatusForAllKeys(I)Ljava/util/Map;
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getUserSerialNumbers()Ljava/util/Map;
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getRecoveryServiceCertPath(IILjava/lang/String;)Ljava/security/cert/CertPath;
+HPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getStatusForAllKeys(I)Ljava/util/Map;
+HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->getUserSerialNumbers()Ljava/util/Map;
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;->invalidateKeysForUser(I)V
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->newInstance(Landroid/content/Context;)Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;
+HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->newInstance(Landroid/content/Context;)Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;
PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setActiveRootOfTrust(IILjava/lang/String;)J
PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setLong(IILjava/lang/String;J)J
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setPlatformKeyGenerationId(II)J
-PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper;-><init>(Landroid/content/Context;)V
-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/media/-$$Lambda$MediaSessionService$za_9dlUSlnaiZw6eCdPVEZq0XLw;-><init>(Lcom/android/server/media/MediaSessionService;)V
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;->setRecoveryStatus(ILjava/lang/String;I)I
+HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySessionStorage;-><init>()V
+HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;-><init>(Ljava/io/File;)V
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->get(I)Landroid/security/keystore/recovery/KeyChainSnapshot;
+HSPLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->newInstance()Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->put(ILandroid/security/keystore/recovery/KeyChainSnapshot;)V
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->readFromDisk(I)Landroid/security/keystore/recovery/KeyChainSnapshot;
+PLcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;->writeToDisk(ILandroid/security/keystore/recovery/KeyChainSnapshot;)V
+HSPLcom/android/server/media/-$$Lambda$MediaSessionService$za_9dlUSlnaiZw6eCdPVEZq0XLw;-><init>(Lcom/android/server/media/MediaSessionService;)V
PLcom/android/server/media/-$$Lambda$MediaSessionService$za_9dlUSlnaiZw6eCdPVEZq0XLw;->onAudioPlayerActiveStateChanged(Landroid/media/AudioPlaybackConfiguration;Z)V
-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$1;)V
+HSPLcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener;-><init>(Lcom/android/server/media/AudioPlayerStateMonitor;)V
+HSPLcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener;-><init>(Lcom/android/server/media/AudioPlayerStateMonitor;Lcom/android/server/media/AudioPlayerStateMonitor$1;)V
HPLcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener;->onPlaybackConfigChanged(Ljava/util/List;)V
-PLcom/android/server/media/AudioPlayerStateMonitor$MessageHandler;-><init>(Landroid/os/Looper;Lcom/android/server/media/AudioPlayerStateMonitor$OnAudioPlayerActiveStateChangedListener;)V
+HSPLcom/android/server/media/AudioPlayerStateMonitor$MessageHandler;-><init>(Landroid/os/Looper;Lcom/android/server/media/AudioPlayerStateMonitor$OnAudioPlayerActiveStateChangedListener;)V
PLcom/android/server/media/AudioPlayerStateMonitor$MessageHandler;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/media/AudioPlayerStateMonitor$MessageHandler;->sendAudioPlayerActiveStateChangedMessage(Landroid/media/AudioPlaybackConfiguration;Z)V
-PLcom/android/server/media/AudioPlayerStateMonitor;-><clinit>()V
-PLcom/android/server/media/AudioPlayerStateMonitor;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/media/AudioPlayerStateMonitor;-><clinit>()V
+HSPLcom/android/server/media/AudioPlayerStateMonitor;-><init>(Landroid/content/Context;)V
PLcom/android/server/media/AudioPlayerStateMonitor;->access$100(Lcom/android/server/media/AudioPlayerStateMonitor;)Ljava/lang/Object;
PLcom/android/server/media/AudioPlayerStateMonitor;->access$200()Z
PLcom/android/server/media/AudioPlayerStateMonitor;->access$400(Lcom/android/server/media/AudioPlayerStateMonitor;Landroid/media/AudioPlaybackConfiguration;Z)V
-PLcom/android/server/media/AudioPlayerStateMonitor;->getInstance(Landroid/content/Context;)Lcom/android/server/media/AudioPlayerStateMonitor;
+PLcom/android/server/media/AudioPlayerStateMonitor;->cleanUpAudioPlaybackUids(I)V
+PLcom/android/server/media/AudioPlayerStateMonitor;->dump(Landroid/content/Context;Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/media/AudioPlayerStateMonitor;->getInstance(Landroid/content/Context;)Lcom/android/server/media/AudioPlayerStateMonitor;
PLcom/android/server/media/AudioPlayerStateMonitor;->getSortedAudioPlaybackClientUids()Landroid/util/IntArray;
-PLcom/android/server/media/AudioPlayerStateMonitor;->isPlaybackActive(I)Z
-PLcom/android/server/media/AudioPlayerStateMonitor;->registerListener(Lcom/android/server/media/AudioPlayerStateMonitor$OnAudioPlayerActiveStateChangedListener;Landroid/os/Handler;)V
+HSPLcom/android/server/media/AudioPlayerStateMonitor;->isPlaybackActive(I)Z
+HSPLcom/android/server/media/AudioPlayerStateMonitor;->registerListener(Lcom/android/server/media/AudioPlayerStateMonitor$OnAudioPlayerActiveStateChangedListener;Landroid/os/Handler;)V
PLcom/android/server/media/AudioPlayerStateMonitor;->sendAudioPlayerActiveStateChangedMessageLocked(Landroid/media/AudioPlaybackConfiguration;Z)V
-PLcom/android/server/media/MediaResourceMonitorService$MediaResourceMonitorImpl;-><init>(Lcom/android/server/media/MediaResourceMonitorService;)V
-PLcom/android/server/media/MediaResourceMonitorService;-><clinit>()V
-PLcom/android/server/media/MediaResourceMonitorService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/media/MediaResourceMonitorService;->onStart()V
-PLcom/android/server/media/MediaRouter2ServiceImpl;-><clinit>()V
-PLcom/android/server/media/MediaRouter2ServiceImpl;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/media/MediaResourceMonitorService$MediaResourceMonitorImpl;-><init>(Lcom/android/server/media/MediaResourceMonitorService;)V
+PLcom/android/server/media/MediaResourceMonitorService$MediaResourceMonitorImpl;->getPackageNamesFromPid(I)[Ljava/lang/String;
+PLcom/android/server/media/MediaResourceMonitorService$MediaResourceMonitorImpl;->notifyResourceGranted(II)V
+HSPLcom/android/server/media/MediaResourceMonitorService;-><clinit>()V
+HSPLcom/android/server/media/MediaResourceMonitorService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/media/MediaResourceMonitorService;->onStart()V
+HSPLcom/android/server/media/MediaRouter2ServiceImpl;-><clinit>()V
+HSPLcom/android/server/media/MediaRouter2ServiceImpl;-><init>(Landroid/content/Context;)V
PLcom/android/server/media/MediaRouter2ServiceImpl;->switchUser()V
-PLcom/android/server/media/MediaRouterService$1$1;-><init>(Lcom/android/server/media/MediaRouterService$1;)V
+HSPLcom/android/server/media/MediaRouterService$1$1;-><init>(Lcom/android/server/media/MediaRouterService$1;)V
PLcom/android/server/media/MediaRouterService$1$1;->run()V
-PLcom/android/server/media/MediaRouterService$1;-><init>(Lcom/android/server/media/MediaRouterService;)V
+HSPLcom/android/server/media/MediaRouterService$1;-><init>(Lcom/android/server/media/MediaRouterService;)V
PLcom/android/server/media/MediaRouterService$1;->onAudioPlayerActiveStateChanged(Landroid/media/AudioPlaybackConfiguration;Z)V
-PLcom/android/server/media/MediaRouterService$2;-><init>(Lcom/android/server/media/MediaRouterService;)V
+HSPLcom/android/server/media/MediaRouterService$2;-><init>(Lcom/android/server/media/MediaRouterService;)V
+PLcom/android/server/media/MediaRouterService$2;->dispatchAudioRoutesChanged(Landroid/media/AudioRoutesInfo;)V
PLcom/android/server/media/MediaRouterService$3;-><init>(Lcom/android/server/media/MediaRouterService;)V
PLcom/android/server/media/MediaRouterService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
PLcom/android/server/media/MediaRouterService$ClientGroup;-><init>(Lcom/android/server/media/MediaRouterService;)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
+HSPLcom/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;->binderDied()V
-PLcom/android/server/media/MediaRouterService$ClientRecord;->getState()Landroid/media/MediaRouterClientState;
-PLcom/android/server/media/MediaRouterService$MediaRouterServiceBroadcastReceiver;-><init>(Lcom/android/server/media/MediaRouterService;)V
+PLcom/android/server/media/MediaRouterService$ClientRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/media/MediaRouterService$ClientRecord;->getState()Landroid/media/MediaRouterClientState;
+PLcom/android/server/media/MediaRouterService$ClientRecord;->toString()Ljava/lang/String;
+HSPLcom/android/server/media/MediaRouterService$MediaRouterServiceBroadcastReceiver;-><init>(Lcom/android/server/media/MediaRouterService;)V
PLcom/android/server/media/MediaRouterService$MediaRouterServiceBroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
PLcom/android/server/media/MediaRouterService$UserHandler$ProviderRecord;-><init>(Lcom/android/server/media/RemoteDisplayProviderProxy;)V
PLcom/android/server/media/MediaRouterService$UserHandler$ProviderRecord;->appendClientState(Landroid/media/MediaRouterClientState;)V
+PLcom/android/server/media/MediaRouterService$UserHandler$ProviderRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/media/MediaRouterService$UserHandler$ProviderRecord;->toString()Ljava/lang/String;
PLcom/android/server/media/MediaRouterService$UserHandler$ProviderRecord;->updateDescriptor(Landroid/media/RemoteDisplayState;)Z
-PLcom/android/server/media/MediaRouterService$UserHandler;-><init>(Lcom/android/server/media/MediaRouterService;Lcom/android/server/media/MediaRouterService$UserRecord;)V
+HSPLcom/android/server/media/MediaRouterService$UserHandler;-><init>(Lcom/android/server/media/MediaRouterService;Lcom/android/server/media/MediaRouterService$UserRecord;)V
PLcom/android/server/media/MediaRouterService$UserHandler;->addProvider(Lcom/android/server/media/RemoteDisplayProviderProxy;)V
+PLcom/android/server/media/MediaRouterService$UserHandler;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)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$UserHandler;->updateClientState()V
+PLcom/android/server/media/MediaRouterService$UserHandler;->updateDiscoveryRequest()V
PLcom/android/server/media/MediaRouterService$UserHandler;->updateSelectedRoute(Ljava/lang/String;)V
-PLcom/android/server/media/MediaRouterService$UserRecord;-><init>(Lcom/android/server/media/MediaRouterService;I)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
+HSPLcom/android/server/media/MediaRouterService$UserRecord;-><init>(Lcom/android/server/media/MediaRouterService;I)V
PLcom/android/server/media/MediaRouterService$UserRecord;->access$500(Lcom/android/server/media/MediaRouterService$UserRecord;)Landroid/util/ArrayMap;
PLcom/android/server/media/MediaRouterService$UserRecord;->addToGroup(Ljava/lang/String;Lcom/android/server/media/MediaRouterService$ClientRecord;)V
+PLcom/android/server/media/MediaRouterService$UserRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/media/MediaRouterService$UserRecord;->removeFromGroup(Ljava/lang/String;Lcom/android/server/media/MediaRouterService$ClientRecord;)V
-PLcom/android/server/media/MediaRouterService;-><clinit>()V
-PLcom/android/server/media/MediaRouterService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/media/MediaRouterService;->access$000(Lcom/android/server/media/MediaRouterService;)Landroid/util/IntArray;
-PLcom/android/server/media/MediaRouterService;->access$100(Lcom/android/server/media/MediaRouterService;)Landroid/util/IntArray;
-PLcom/android/server/media/MediaRouterService;->access$200(Lcom/android/server/media/MediaRouterService;)Landroid/os/Handler;
-PLcom/android/server/media/MediaRouterService;->access$300()Z
+PLcom/android/server/media/MediaRouterService$UserRecord;->toString()Ljava/lang/String;
+HSPLcom/android/server/media/MediaRouterService;-><clinit>()V
+HSPLcom/android/server/media/MediaRouterService;-><init>(Landroid/content/Context;)V
PLcom/android/server/media/MediaRouterService;->access$400(Lcom/android/server/media/MediaRouterService;)Ljava/lang/Object;
-PLcom/android/server/media/MediaRouterService;->access$600(Lcom/android/server/media/MediaRouterService;)Landroid/content/Context;
+HSPLcom/android/server/media/MediaRouterService;->access$600(Lcom/android/server/media/MediaRouterService;)Landroid/content/Context;
PLcom/android/server/media/MediaRouterService;->clientDied(Lcom/android/server/media/MediaRouterService$ClientRecord;)V
PLcom/android/server/media/MediaRouterService;->disposeClientLocked(Lcom/android/server/media/MediaRouterService$ClientRecord;Z)V
PLcom/android/server/media/MediaRouterService;->disposeUserIfNeededLocked(Lcom/android/server/media/MediaRouterService$UserRecord;)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;->isPlaybackActive(Landroid/media/IMediaRouterClient;)Z
+PLcom/android/server/media/MediaRouterService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/media/MediaRouterService;->getState(Landroid/media/IMediaRouterClient;)Landroid/media/MediaRouterClientState;
+HSPLcom/android/server/media/MediaRouterService;->getStateLocked(Landroid/media/IMediaRouterClient;)Landroid/media/MediaRouterClientState;
+HSPLcom/android/server/media/MediaRouterService;->initializeClientLocked(Lcom/android/server/media/MediaRouterService$ClientRecord;)V
+HSPLcom/android/server/media/MediaRouterService;->initializeUserLocked(Lcom/android/server/media/MediaRouterService$UserRecord;)V
+HSPLcom/android/server/media/MediaRouterService;->isPlaybackActive(Landroid/media/IMediaRouterClient;)Z
PLcom/android/server/media/MediaRouterService;->monitor()V
-PLcom/android/server/media/MediaRouterService;->registerClientAsUser(Landroid/media/IMediaRouterClient;Ljava/lang/String;I)V
+HSPLcom/android/server/media/MediaRouterService;->registerClientAsUser(Landroid/media/IMediaRouterClient;Ljava/lang/String;I)V
PLcom/android/server/media/MediaRouterService;->registerClientGroupId(Landroid/media/IMediaRouterClient;Ljava/lang/String;)V
PLcom/android/server/media/MediaRouterService;->registerClientGroupIdLocked(Landroid/media/IMediaRouterClient;Ljava/lang/String;)V
-PLcom/android/server/media/MediaRouterService;->registerClientLocked(Landroid/media/IMediaRouterClient;IILjava/lang/String;IZ)V
+HSPLcom/android/server/media/MediaRouterService;->registerClientLocked(Landroid/media/IMediaRouterClient;IILjava/lang/String;IZ)V
PLcom/android/server/media/MediaRouterService;->restoreBluetoothA2dp()V
PLcom/android/server/media/MediaRouterService;->restoreRoute(I)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
+HSPLcom/android/server/media/MediaRouterService;->setDiscoveryRequest(Landroid/media/IMediaRouterClient;IZ)V
+HSPLcom/android/server/media/MediaRouterService;->setDiscoveryRequestLocked(Landroid/media/IMediaRouterClient;IZ)V
+HSPLcom/android/server/media/MediaRouterService;->setSelectedRoute(Landroid/media/IMediaRouterClient;Ljava/lang/String;Z)V
+HSPLcom/android/server/media/MediaRouterService;->setSelectedRouteLocked(Landroid/media/IMediaRouterClient;Ljava/lang/String;Z)V
PLcom/android/server/media/MediaRouterService;->switchUser()V
PLcom/android/server/media/MediaRouterService;->systemRunning()V
PLcom/android/server/media/MediaRouterService;->unregisterClientLocked(Landroid/media/IMediaRouterClient;Z)V
-PLcom/android/server/media/MediaRouterService;->validatePackageName(ILjava/lang/String;)Z
+HSPLcom/android/server/media/MediaRouterService;->validatePackageName(ILjava/lang/String;)Z
+PLcom/android/server/media/MediaSessionRecord$2;-><init>(Lcom/android/server/media/MediaSessionRecord;ZIIILjava/lang/String;II)V
+PLcom/android/server/media/MediaSessionRecord$2;->run()V
PLcom/android/server/media/MediaSessionRecord$3;-><init>(Lcom/android/server/media/MediaSessionRecord;)V
PLcom/android/server/media/MediaSessionRecord$ControllerStub;-><init>(Lcom/android/server/media/MediaSessionRecord;)V
-PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getMetadata()Landroid/media/MediaMetadata;
+HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getMetadata()Landroid/media/MediaMetadata;
PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getPackageName()Ljava/lang/String;
-PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getPlaybackState()Landroid/media/session/PlaybackState;
-PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getQueue()Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getPlaybackState()Landroid/media/session/PlaybackState;
+HPLcom/android/server/media/MediaSessionRecord$ControllerStub;->getQueue()Landroid/content/pm/ParceledListSlice;
PLcom/android/server/media/MediaSessionRecord$ControllerStub;->getVolumeAttributes()Landroid/media/session/MediaController$PlaybackInfo;
PLcom/android/server/media/MediaSessionRecord$ControllerStub;->registerCallback(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
PLcom/android/server/media/MediaSessionRecord$ControllerStub;->unregisterCallback(Landroid/media/session/ISessionControllerCallback;)V
PLcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;-><init>(Lcom/android/server/media/MediaSessionRecord;Landroid/media/session/ISessionControllerCallback;Ljava/lang/String;I)V
-PLcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;->access$400(Lcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;)Landroid/media/session/ISessionControllerCallback;
+HPLcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;->access$400(Lcom/android/server/media/MediaSessionRecord$ISessionControllerCallbackHolder;)Landroid/media/session/ISessionControllerCallback;
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
@@ -9560,13 +11512,14 @@ PLcom/android/server/media/MediaSessionRecord$SessionStub;->setExtras(Landroid/o
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
PLcom/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$SessionStub;->setQueue(Landroid/content/pm/ParceledListSlice;)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;-><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;)V
+HPLcom/android/server/media/MediaSessionRecord;-><init>(IIILjava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;Lcom/android/server/media/MediaSessionService;Landroid/os/Looper;)V
PLcom/android/server/media/MediaSessionRecord;->access$1000(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionRecord$ControllerStub;
PLcom/android/server/media/MediaSessionRecord;->access$1202(Lcom/android/server/media/MediaSessionRecord;J)J
PLcom/android/server/media/MediaSessionRecord;->access$1500(Lcom/android/server/media/MediaSessionRecord;)Ljava/lang/Object;
@@ -9577,109 +11530,128 @@ PLcom/android/server/media/MediaSessionRecord;->access$2402(Lcom/android/server/
PLcom/android/server/media/MediaSessionRecord;->access$2502(Lcom/android/server/media/MediaSessionRecord;Landroid/media/AudioAttributes;)Landroid/media/AudioAttributes;
PLcom/android/server/media/MediaSessionRecord;->access$800(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionService;
PLcom/android/server/media/MediaSessionRecord;->access$900(Lcom/android/server/media/MediaSessionRecord;)Lcom/android/server/media/MediaSessionRecord$MessageHandler;
+PLcom/android/server/media/MediaSessionRecord;->adjustVolume(Ljava/lang/String;Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;ZIIZ)V
PLcom/android/server/media/MediaSessionRecord;->binderDied()V
+PLcom/android/server/media/MediaSessionRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/media/MediaSessionRecord;->getCallback()Landroid/media/session/ISessionCallback;
PLcom/android/server/media/MediaSessionRecord;->getControllerHolderIndexForCb(Landroid/media/session/ISessionControllerCallback;)I
PLcom/android/server/media/MediaSessionRecord;->getFlags()J
+PLcom/android/server/media/MediaSessionRecord;->getMediaButtonReceiver()Landroid/app/PendingIntent;
+PLcom/android/server/media/MediaSessionRecord;->getPackageName()Ljava/lang/String;
PLcom/android/server/media/MediaSessionRecord;->getSessionBinder()Landroid/media/session/ISession;
PLcom/android/server/media/MediaSessionRecord;->getSessionToken()Landroid/media/session/MediaSession$Token;
-PLcom/android/server/media/MediaSessionRecord;->getStateWithUpdatedPosition()Landroid/media/session/PlaybackState;
+HPLcom/android/server/media/MediaSessionRecord;->getStateWithUpdatedPosition()Landroid/media/session/PlaybackState;
PLcom/android/server/media/MediaSessionRecord;->getUserId()I
PLcom/android/server/media/MediaSessionRecord;->getVolumeAttributes()Landroid/media/session/MediaController$PlaybackInfo;
PLcom/android/server/media/MediaSessionRecord;->isActive()Z
PLcom/android/server/media/MediaSessionRecord;->onDestroy()V
+PLcom/android/server/media/MediaSessionRecord;->postAdjustLocalVolume(IIILjava/lang/String;IIZZI)V
PLcom/android/server/media/MediaSessionRecord;->pushExtrasUpdate()V
+PLcom/android/server/media/MediaSessionRecord;->pushMetadataUpdate()V
PLcom/android/server/media/MediaSessionRecord;->pushPlaybackStateUpdate()V
PLcom/android/server/media/MediaSessionRecord;->pushQueueTitleUpdate()V
PLcom/android/server/media/MediaSessionRecord;->pushQueueUpdate()V
PLcom/android/server/media/MediaSessionRecord;->pushSessionDestroyed()V
PLcom/android/server/media/MediaSessionRecord;->toString()Ljava/lang/String;
PLcom/android/server/media/MediaSessionService$FullUserRecord$CallbackRecord;-><init>(Lcom/android/server/media/MediaSessionService$FullUserRecord;Landroid/media/session/ICallback;I)V
-PLcom/android/server/media/MediaSessionService$FullUserRecord;-><init>(Lcom/android/server/media/MediaSessionService;I)V
+HSPLcom/android/server/media/MediaSessionService$FullUserRecord;-><init>(Lcom/android/server/media/MediaSessionService;I)V
PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$300(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Lcom/android/server/media/MediaSessionStack;
PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$400(Lcom/android/server/media/MediaSessionService$FullUserRecord;)I
PLcom/android/server/media/MediaSessionService$FullUserRecord;->access$500(Lcom/android/server/media/MediaSessionService$FullUserRecord;)Landroid/media/session/IOnVolumeKeyLongPressListener;
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->getComponentType(Landroid/content/ComponentName;)I
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->getMediaButtonSessionLocked()Lcom/android/server/media/MediaSessionRecord;
+HPLcom/android/server/media/MediaSessionService$FullUserRecord;->onMediaButtonSessionChanged(Lcom/android/server/media/MediaSessionRecord;Lcom/android/server/media/MediaSessionRecord;)V
+HPLcom/android/server/media/MediaSessionService$FullUserRecord;->pushAddressedPlayerChangedLocked()V
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->pushAddressedPlayerChangedLocked(Landroid/media/session/ICallback;)V
PLcom/android/server/media/MediaSessionService$FullUserRecord;->registerCallbackLocked(Landroid/media/session/ICallback;I)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(I)V
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->rememberMediaButtonReceiverLocked(Lcom/android/server/media/MediaSessionRecord;)V
+PLcom/android/server/media/MediaSessionService$FullUserRecord;->unregisterCallbackLocked(Landroid/media/session/ICallback;)V
+HSPLcom/android/server/media/MediaSessionService$MessageHandler;-><init>(Lcom/android/server/media/MediaSessionService;)V
+HPLcom/android/server/media/MediaSessionService$MessageHandler;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/media/MediaSessionService$MessageHandler;->postSessionsChanged(I)V
PLcom/android/server/media/MediaSessionService$SessionManagerImpl$3;-><init>(Lcom/android/server/media/MediaSessionService$SessionManagerImpl;ZLjava/lang/String;IIIILjava/lang/String;)V
PLcom/android/server/media/MediaSessionService$SessionManagerImpl$3;->run()V
-PLcom/android/server/media/MediaSessionService$SessionManagerImpl$4;-><init>(Lcom/android/server/media/MediaSessionService$SessionManagerImpl;)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;-><init>(Lcom/android/server/media/MediaSessionService;)V
+HSPLcom/android/server/media/MediaSessionService$SessionManagerImpl$4;-><init>(Lcom/android/server/media/MediaSessionService$SessionManagerImpl;)V
+HSPLcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;-><init>(Lcom/android/server/media/MediaSessionService$SessionManagerImpl;Landroid/os/Handler;)V
+HSPLcom/android/server/media/MediaSessionService$SessionManagerImpl;-><init>(Lcom/android/server/media/MediaSessionService;)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;->dispatchAdjustVolumeLocked(Ljava/lang/String;Ljava/lang/String;IIZIII)V
-PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dispatchVolumeKeyEvent(Ljava/lang/String;Ljava/lang/String;ZLandroid/view/KeyEvent;IZ)V
+HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->createSession(Ljava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;I)Landroid/media/session/ISession;
+HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dispatchAdjustVolumeLocked(Ljava/lang/String;Ljava/lang/String;IIZIII)V
+HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dispatchVolumeKeyEvent(Ljava/lang/String;Ljava/lang/String;ZLandroid/view/KeyEvent;IZ)V
PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dispatchVolumeKeyEventLocked(Ljava/lang/String;Ljava/lang/String;IIZLandroid/view/KeyEvent;IZ)V
+PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
HPLcom/android/server/media/MediaSessionService$SessionManagerImpl;->getSessions(Landroid/content/ComponentName;I)Ljava/util/List;
PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->hasMediaControlPermission(II)Z
PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->isValidLocalStreamType(I)Z
PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->registerCallback(Landroid/media/session/ICallback;)V
PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->registerRemoteVolumeController(Landroid/media/IRemoteVolumeController;)V
PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->removeSessionsListener(Landroid/media/session/IActiveSessionsListener;)V
+PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->unregisterCallback(Landroid/media/session/ICallback;)V
+PLcom/android/server/media/MediaSessionService$SessionManagerImpl;->unregisterRemoteVolumeController(Landroid/media/IRemoteVolumeController;)V
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$SettingsObserver;-><init>(Lcom/android/server/media/MediaSessionService;)V
-PLcom/android/server/media/MediaSessionService$SettingsObserver;-><init>(Lcom/android/server/media/MediaSessionService;Lcom/android/server/media/MediaSessionService$1;)V
-PLcom/android/server/media/MediaSessionService$SettingsObserver;->access$100(Lcom/android/server/media/MediaSessionService$SettingsObserver;)V
-PLcom/android/server/media/MediaSessionService$SettingsObserver;->observe()V
-PLcom/android/server/media/MediaSessionService$SettingsObserver;->onChange(ZLandroid/net/Uri;)V
-PLcom/android/server/media/MediaSessionService;-><clinit>()V
-PLcom/android/server/media/MediaSessionService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/media/MediaSessionService$SettingsObserver;-><init>(Lcom/android/server/media/MediaSessionService;)V
+HSPLcom/android/server/media/MediaSessionService$SettingsObserver;-><init>(Lcom/android/server/media/MediaSessionService;Lcom/android/server/media/MediaSessionService$1;)V
+HSPLcom/android/server/media/MediaSessionService$SettingsObserver;->access$100(Lcom/android/server/media/MediaSessionService$SettingsObserver;)V
+HSPLcom/android/server/media/MediaSessionService$SettingsObserver;->observe()V
+HSPLcom/android/server/media/MediaSessionService;-><clinit>()V
+HSPLcom/android/server/media/MediaSessionService;-><init>(Landroid/content/Context;)V
PLcom/android/server/media/MediaSessionService;->access$1000(Lcom/android/server/media/MediaSessionService;I)Ljava/lang/String;
+PLcom/android/server/media/MediaSessionService;->access$1100(Lcom/android/server/media/MediaSessionService;)Landroid/util/SparseArray;
PLcom/android/server/media/MediaSessionService;->access$1200(Lcom/android/server/media/MediaSessionService;)Ljava/lang/Object;
-PLcom/android/server/media/MediaSessionService;->access$1300(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$MessageHandler;
+HSPLcom/android/server/media/MediaSessionService;->access$1300(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$MessageHandler;
PLcom/android/server/media/MediaSessionService;->access$1400(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionService$FullUserRecord;
PLcom/android/server/media/MediaSessionService;->access$1500(Lcom/android/server/media/MediaSessionService;)Z
+PLcom/android/server/media/MediaSessionService;->access$1600(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/MediaSessionRecord;
PLcom/android/server/media/MediaSessionService;->access$1700(Lcom/android/server/media/MediaSessionService;)Landroid/content/Context;
PLcom/android/server/media/MediaSessionService;->access$1900(Lcom/android/server/media/MediaSessionService;)Ljava/util/ArrayList;
-PLcom/android/server/media/MediaSessionService;->access$2100(Lcom/android/server/media/MediaSessionService;)V
PLcom/android/server/media/MediaSessionService;->access$2200(Lcom/android/server/media/MediaSessionService;Ljava/lang/String;I)V
PLcom/android/server/media/MediaSessionService;->access$2300(Lcom/android/server/media/MediaSessionService;IIILjava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;)Lcom/android/server/media/MediaSessionRecord;
PLcom/android/server/media/MediaSessionService;->access$2400(Lcom/android/server/media/MediaSessionService;I)Ljava/util/List;
PLcom/android/server/media/MediaSessionService;->access$2500(Lcom/android/server/media/MediaSessionService;Landroid/media/session/IActiveSessionsListener;)I
PLcom/android/server/media/MediaSessionService;->access$3000(Lcom/android/server/media/MediaSessionService;I)Lcom/android/server/media/MediaSessionService$FullUserRecord;
PLcom/android/server/media/MediaSessionService;->access$3800(Lcom/android/server/media/MediaSessionService;Ljava/lang/String;II)V
+PLcom/android/server/media/MediaSessionService;->access$3900(Lcom/android/server/media/MediaSessionService;)Landroid/util/SparseArray;
PLcom/android/server/media/MediaSessionService;->access$4000(Lcom/android/server/media/MediaSessionService;Landroid/content/ComponentName;III)V
PLcom/android/server/media/MediaSessionService;->access$4200(Lcom/android/server/media/MediaSessionService;)Landroid/media/AudioManagerInternal;
PLcom/android/server/media/MediaSessionService;->access$5500(Lcom/android/server/media/MediaSessionService;I)V
-PLcom/android/server/media/MediaSessionService;->access$600(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/AudioPlayerStateMonitor;
-PLcom/android/server/media/MediaSessionService;->access$700(Lcom/android/server/media/MediaSessionService;)Landroid/content/ContentResolver;
+HSPLcom/android/server/media/MediaSessionService;->access$600(Lcom/android/server/media/MediaSessionService;)Lcom/android/server/media/AudioPlayerStateMonitor;
+HSPLcom/android/server/media/MediaSessionService;->access$700(Lcom/android/server/media/MediaSessionService;)Landroid/content/ContentResolver;
+PLcom/android/server/media/MediaSessionService;->access$900(Lcom/android/server/media/MediaSessionService;)Landroid/util/SparseIntArray;
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;->createSessionLocked(IIILjava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;Landroid/os/Bundle;)Lcom/android/server/media/MediaSessionRecord;
PLcom/android/server/media/MediaSessionService;->destroySession(Lcom/android/server/media/MediaSessionRecord;)V
-PLcom/android/server/media/MediaSessionService;->destroySessionLocked(Lcom/android/server/media/MediaSessionRecord;)V
+HPLcom/android/server/media/MediaSessionService;->destroySessionLocked(Lcom/android/server/media/MediaSessionRecord;)V
HPLcom/android/server/media/MediaSessionService;->enforceMediaPermissions(Landroid/content/ComponentName;III)V
PLcom/android/server/media/MediaSessionService;->enforcePackageName(Ljava/lang/String;I)V
PLcom/android/server/media/MediaSessionService;->enforcePhoneStatePermission(II)V
PLcom/android/server/media/MediaSessionService;->enforceStatusBarServicePermission(Ljava/lang/String;II)V
PLcom/android/server/media/MediaSessionService;->findIndexOfSessionsListenerLocked(Landroid/media/session/IActiveSessionsListener;)I
HPLcom/android/server/media/MediaSessionService;->getActiveSessionsLocked(I)Ljava/util/List;
-PLcom/android/server/media/MediaSessionService;->getAudioService()Landroid/media/IAudioService;
+HSPLcom/android/server/media/MediaSessionService;->getAudioService()Landroid/media/IAudioService;
PLcom/android/server/media/MediaSessionService;->getCallingPackageName(I)Ljava/lang/String;
-PLcom/android/server/media/MediaSessionService;->getFullUserRecordLocked(I)Lcom/android/server/media/MediaSessionService$FullUserRecord;
+HPLcom/android/server/media/MediaSessionService;->getFullUserRecordLocked(I)Lcom/android/server/media/MediaSessionService$FullUserRecord;
HPLcom/android/server/media/MediaSessionService;->hasStatusBarServicePermission(II)Z
-PLcom/android/server/media/MediaSessionService;->isGlobalPriorityActiveLocked()Z
-PLcom/android/server/media/MediaSessionService;->lambda$onStart$0$MediaSessionService(Landroid/media/AudioPlaybackConfiguration;Z)V
+HPLcom/android/server/media/MediaSessionService;->isGlobalPriorityActiveLocked()Z
+HPLcom/android/server/media/MediaSessionService;->lambda$onStart$0$MediaSessionService(Landroid/media/AudioPlaybackConfiguration;Z)V
PLcom/android/server/media/MediaSessionService;->monitor()V
PLcom/android/server/media/MediaSessionService;->onMediaButtonReceiverChanged(Lcom/android/server/media/MediaSessionRecord;)V
-PLcom/android/server/media/MediaSessionService;->onSessionPlaystateChanged(Lcom/android/server/media/MediaSessionRecord;II)V
-PLcom/android/server/media/MediaSessionService;->onStart()V
+HPLcom/android/server/media/MediaSessionService;->onSessionPlaystateChanged(Lcom/android/server/media/MediaSessionRecord;II)V
+HSPLcom/android/server/media/MediaSessionService;->onStart()V
PLcom/android/server/media/MediaSessionService;->onStartUser(I)V
-PLcom/android/server/media/MediaSessionService;->pushRemoteVolumeUpdateLocked(I)V
-PLcom/android/server/media/MediaSessionService;->pushSessionsChanged(I)V
+HPLcom/android/server/media/MediaSessionService;->pushRemoteVolumeUpdateLocked(I)V
+HPLcom/android/server/media/MediaSessionService;->pushSessionsChanged(I)V
PLcom/android/server/media/MediaSessionService;->sessionDied(Lcom/android/server/media/MediaSessionRecord;)V
PLcom/android/server/media/MediaSessionService;->setGlobalPrioritySession(Lcom/android/server/media/MediaSessionRecord;)V
-PLcom/android/server/media/MediaSessionService;->updateActiveSessionListeners()V
-PLcom/android/server/media/MediaSessionService;->updateSession(Lcom/android/server/media/MediaSessionRecord;)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
+HPLcom/android/server/media/MediaSessionService;->updateSession(Lcom/android/server/media/MediaSessionRecord;)V
+HSPLcom/android/server/media/MediaSessionService;->updateUser()V
+HSPLcom/android/server/media/MediaSessionStack;-><clinit>()V
+HSPLcom/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/MediaSessionRecord;)V
PLcom/android/server/media/MediaSessionStack;->clearCache(I)V
PLcom/android/server/media/MediaSessionStack;->contains(Lcom/android/server/media/MediaSessionRecord;)Z
+PLcom/android/server/media/MediaSessionStack;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/media/MediaSessionStack;->findMediaButtonSession(I)Lcom/android/server/media/MediaSessionRecord;
PLcom/android/server/media/MediaSessionStack;->getActiveSessions(I)Ljava/util/ArrayList;
PLcom/android/server/media/MediaSessionStack;->getDefaultRemoteSession(I)Lcom/android/server/media/MediaSessionRecord;
@@ -9693,6 +11665,7 @@ PLcom/android/server/media/MediaSessionStack;->updateMediaButtonSessionIfNeeded(
PLcom/android/server/media/RemoteDisplayProviderProxy$1;-><init>(Lcom/android/server/media/RemoteDisplayProviderProxy;)V
PLcom/android/server/media/RemoteDisplayProviderProxy;-><clinit>()V
PLcom/android/server/media/RemoteDisplayProviderProxy;-><init>(Landroid/content/Context;Landroid/content/ComponentName;I)V
+PLcom/android/server/media/RemoteDisplayProviderProxy;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/media/RemoteDisplayProviderProxy;->getDisplayState()Landroid/media/RemoteDisplayState;
PLcom/android/server/media/RemoteDisplayProviderProxy;->getFlattenedComponentName()Ljava/lang/String;
HPLcom/android/server/media/RemoteDisplayProviderProxy;->hasComponentName(Ljava/lang/String;Ljava/lang/String;)Z
@@ -9704,140 +11677,150 @@ PLcom/android/server/media/RemoteDisplayProviderProxy;->shouldBind()Z
PLcom/android/server/media/RemoteDisplayProviderProxy;->start()V
PLcom/android/server/media/RemoteDisplayProviderProxy;->unbind()V
PLcom/android/server/media/RemoteDisplayProviderProxy;->updateBinding()V
-PLcom/android/server/media/RemoteDisplayProviderWatcher$1;-><init>(Lcom/android/server/media/RemoteDisplayProviderWatcher;)V
+HSPLcom/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
+HSPLcom/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;-><clinit>()V
-PLcom/android/server/media/RemoteDisplayProviderWatcher;-><init>(Landroid/content/Context;Lcom/android/server/media/RemoteDisplayProviderWatcher$Callback;Landroid/os/Handler;I)V
+HSPLcom/android/server/media/RemoteDisplayProviderWatcher;-><clinit>()V
+HSPLcom/android/server/media/RemoteDisplayProviderWatcher;-><init>(Landroid/content/Context;Lcom/android/server/media/RemoteDisplayProviderWatcher$Callback;Landroid/os/Handler;I)V
PLcom/android/server/media/RemoteDisplayProviderWatcher;->access$100(Lcom/android/server/media/RemoteDisplayProviderWatcher;)V
+PLcom/android/server/media/RemoteDisplayProviderWatcher;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/media/RemoteDisplayProviderWatcher;->scanPackages()V
PLcom/android/server/media/RemoteDisplayProviderWatcher;->start()V
PLcom/android/server/media/RemoteDisplayProviderWatcher;->verifyServiceTrusted(Landroid/content/pm/ServiceInfo;)Z
-PLcom/android/server/media/projection/MediaProjectionManagerService$1;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;)V
+HSPLcom/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
+HSPLcom/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;)V
-PLcom/android/server/media/projection/MediaProjectionManagerService$BinderService;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;Lcom/android/server/media/projection/MediaProjectionManagerService$1;)V
+HSPLcom/android/server/media/projection/MediaProjectionManagerService$BinderService;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;)V
+HSPLcom/android/server/media/projection/MediaProjectionManagerService$BinderService;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;Lcom/android/server/media/projection/MediaProjectionManagerService$1;)V
PLcom/android/server/media/projection/MediaProjectionManagerService$BinderService;->addCallback(Landroid/media/projection/IMediaProjectionWatcherCallback;)V
+PLcom/android/server/media/projection/MediaProjectionManagerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/media/projection/MediaProjectionManagerService$BinderService;->getActiveProjectionInfo()Landroid/media/projection/MediaProjectionInfo;
-PLcom/android/server/media/projection/MediaProjectionManagerService$CallbackDelegate;-><init>()V
+HSPLcom/android/server/media/projection/MediaProjectionManagerService$CallbackDelegate;-><init>()V
PLcom/android/server/media/projection/MediaProjectionManagerService$CallbackDelegate;->add(Landroid/media/projection/IMediaProjectionWatcherCallback;)V
-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$1;)V
-PLcom/android/server/media/projection/MediaProjectionManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/media/projection/MediaProjectionManagerService$MediaRouterCallback;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;)V
+HSPLcom/android/server/media/projection/MediaProjectionManagerService$MediaRouterCallback;-><init>(Lcom/android/server/media/projection/MediaProjectionManagerService;Lcom/android/server/media/projection/MediaProjectionManagerService$1;)V
+HSPLcom/android/server/media/projection/MediaProjectionManagerService;-><init>(Landroid/content/Context;)V
PLcom/android/server/media/projection/MediaProjectionManagerService;->access$1000(Lcom/android/server/media/projection/MediaProjectionManagerService;Landroid/media/projection/IMediaProjectionWatcherCallback;)V
PLcom/android/server/media/projection/MediaProjectionManagerService;->access$200(Lcom/android/server/media/projection/MediaProjectionManagerService;III)V
PLcom/android/server/media/projection/MediaProjectionManagerService;->access$500(Lcom/android/server/media/projection/MediaProjectionManagerService;)Landroid/content/Context;
PLcom/android/server/media/projection/MediaProjectionManagerService;->access$800(Lcom/android/server/media/projection/MediaProjectionManagerService;)Landroid/media/projection/MediaProjectionInfo;
PLcom/android/server/media/projection/MediaProjectionManagerService;->addCallback(Landroid/media/projection/IMediaProjectionWatcherCallback;)V
+PLcom/android/server/media/projection/MediaProjectionManagerService;->dump(Ljava/io/PrintWriter;)V
PLcom/android/server/media/projection/MediaProjectionManagerService;->getActiveProjectionInfo()Landroid/media/projection/MediaProjectionInfo;
PLcom/android/server/media/projection/MediaProjectionManagerService;->handleForegroundServicesChanged(III)V
PLcom/android/server/media/projection/MediaProjectionManagerService;->linkDeathRecipientLocked(Landroid/media/projection/IMediaProjectionWatcherCallback;Landroid/os/IBinder$DeathRecipient;)V
PLcom/android/server/media/projection/MediaProjectionManagerService;->monitor()V
-PLcom/android/server/media/projection/MediaProjectionManagerService;->onStart()V
-PLcom/android/server/midi/MidiService$1;-><init>(Lcom/android/server/midi/MidiService;)V
+HSPLcom/android/server/media/projection/MediaProjectionManagerService;->onStart()V
+HSPLcom/android/server/midi/MidiService$1;-><init>(Lcom/android/server/midi/MidiService;)V
PLcom/android/server/midi/MidiService$1;->onPackageAdded(Ljava/lang/String;I)V
PLcom/android/server/midi/MidiService$1;->onPackageModified(Ljava/lang/String;)V
-PLcom/android/server/midi/MidiService$Lifecycle;-><init>(Landroid/content/Context;)V
-PLcom/android/server/midi/MidiService$Lifecycle;->onStart()V
+HSPLcom/android/server/midi/MidiService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/midi/MidiService$Lifecycle;->onStart()V
PLcom/android/server/midi/MidiService$Lifecycle;->onUnlockUser(I)V
-PLcom/android/server/midi/MidiService;-><clinit>()V
-PLcom/android/server/midi/MidiService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/midi/MidiService;->addPackageDeviceServer(Landroid/content/pm/ServiceInfo;)V
-PLcom/android/server/midi/MidiService;->addPackageDeviceServers(Ljava/lang/String;)V
+HSPLcom/android/server/midi/MidiService;-><clinit>()V
+HSPLcom/android/server/midi/MidiService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/midi/MidiService;->access$000(Lcom/android/server/midi/MidiService;)V
+HPLcom/android/server/midi/MidiService;->addPackageDeviceServer(Landroid/content/pm/ServiceInfo;)V
+HPLcom/android/server/midi/MidiService;->addPackageDeviceServers(Ljava/lang/String;)V
+PLcom/android/server/midi/MidiService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/midi/MidiService;->onUnlockUser()V
PLcom/android/server/midi/MidiService;->removePackageDeviceServers(Ljava/lang/String;)V
-PLcom/android/server/net/-$$Lambda$NetworkPolicyManagerService$HDTUqowtgL-W_V0Kq6psXLWC9ws;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/util/concurrent/CountDownLatch;)V
-PLcom/android/server/net/-$$Lambda$NetworkPolicyManagerService$HDTUqowtgL-W_V0Kq6psXLWC9ws;->run()V
-PLcom/android/server/net/DelayedDiskWrite;-><init>()V
-PLcom/android/server/net/IpConfigStore;-><init>()V
-PLcom/android/server/net/IpConfigStore;-><init>(Lcom/android/server/net/DelayedDiskWrite;)V
-PLcom/android/server/net/IpConfigStore;->loge(Ljava/lang/String;)V
-PLcom/android/server/net/IpConfigStore;->readIpConfigurations(Ljava/lang/String;)Landroid/util/ArrayMap;
-PLcom/android/server/net/LockdownVpnTracker;->isEnabled()Z
+HSPLcom/android/server/net/-$$Lambda$NetworkPolicyManagerService$HDTUqowtgL-W_V0Kq6psXLWC9ws;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/util/concurrent/CountDownLatch;)V
+HSPLcom/android/server/net/-$$Lambda$NetworkPolicyManagerService$HDTUqowtgL-W_V0Kq6psXLWC9ws;->run()V
+HSPLcom/android/server/net/DelayedDiskWrite;-><init>()V
+HSPLcom/android/server/net/IpConfigStore;-><init>()V
+HSPLcom/android/server/net/IpConfigStore;-><init>(Lcom/android/server/net/DelayedDiskWrite;)V
+HSPLcom/android/server/net/IpConfigStore;->loge(Ljava/lang/String;)V
+HSPLcom/android/server/net/IpConfigStore;->readIpConfigurations(Ljava/lang/String;)Landroid/util/ArrayMap;
+HSPLcom/android/server/net/LockdownVpnTracker;->isEnabled()Z
PLcom/android/server/net/NetworkIdentitySet;-><init>()V
-PLcom/android/server/net/NetworkIdentitySet;-><init>(Ljava/io/DataInputStream;)V
+HSPLcom/android/server/net/NetworkIdentitySet;-><init>(Ljava/io/DataInputStream;)V
HPLcom/android/server/net/NetworkIdentitySet;->areAllMembersOnDefaultNetwork()Z
+HPLcom/android/server/net/NetworkIdentitySet;->compareTo(Lcom/android/server/net/NetworkIdentitySet;)I
+HPLcom/android/server/net/NetworkIdentitySet;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HPLcom/android/server/net/NetworkIdentitySet;->isAnyMemberMetered()Z
HPLcom/android/server/net/NetworkIdentitySet;->isAnyMemberRoaming()Z
-PLcom/android/server/net/NetworkIdentitySet;->readOptionalString(Ljava/io/DataInputStream;)Ljava/lang/String;
-PLcom/android/server/net/NetworkIdentitySet;->writeToStream(Ljava/io/DataOutputStream;)V
-PLcom/android/server/net/NetworkPolicyLogger$Data;-><init>()V
-PLcom/android/server/net/NetworkPolicyLogger$Data;->reset()V
-PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;-><clinit>()V
-PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;-><init>(I)V
+HSPLcom/android/server/net/NetworkIdentitySet;->readOptionalString(Ljava/io/DataInputStream;)Ljava/lang/String;
+HPLcom/android/server/net/NetworkIdentitySet;->writeToStream(Ljava/io/DataOutputStream;)V
+HSPLcom/android/server/net/NetworkPolicyLogger$Data;-><init>()V
+HSPLcom/android/server/net/NetworkPolicyLogger$Data;->reset()V
+HSPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;-><clinit>()V
+HSPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;-><init>(I)V
PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->appIdleStateChanged(IZ)V
PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->appIdleWlChanged(IZ)V
-PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->event(Ljava/lang/String;)V
-PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->firewallChainEnabled(IZ)V
+HSPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->event(Ljava/lang/String;)V
+HSPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->firewallChainEnabled(IZ)V
+PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->getContent(Lcom/android/server/net/NetworkPolicyLogger$Data;)Ljava/lang/String;
PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->meterednessChanged(IZ)V
HPLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->networkBlocked(II)V
+PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->reverseDump(Lcom/android/internal/util/IndentingPrintWriter;)V
PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->tempPowerSaveWlChanged(IZ)V
PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->uidFirewallRuleChanged(III)V
PLcom/android/server/net/NetworkPolicyLogger$LogBuffer;->uidStateChanged(IIJ)V
-PLcom/android/server/net/NetworkPolicyLogger;-><clinit>()V
-PLcom/android/server/net/NetworkPolicyLogger;-><init>()V
+HSPLcom/android/server/net/NetworkPolicyLogger;-><clinit>()V
+HSPLcom/android/server/net/NetworkPolicyLogger;-><init>()V
PLcom/android/server/net/NetworkPolicyLogger;->appIdleStateChanged(IZ)V
-PLcom/android/server/net/NetworkPolicyLogger;->appIdleWlChanged(IZ)V
+HPLcom/android/server/net/NetworkPolicyLogger;->appIdleWlChanged(IZ)V
PLcom/android/server/net/NetworkPolicyLogger;->deviceIdleModeEnabled(Z)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;
-PLcom/android/server/net/NetworkPolicyLogger;->meteredRestrictedPkgsChanged(Ljava/util/Set;)V
+PLcom/android/server/net/NetworkPolicyLogger;->dumpLogs(Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/net/NetworkPolicyLogger;->firewallChainEnabled(IZ)V
+HSPLcom/android/server/net/NetworkPolicyLogger;->firewallRulesChanged(I[I[I)V
+PLcom/android/server/net/NetworkPolicyLogger;->getBlockedReason(I)Ljava/lang/String;
+HSPLcom/android/server/net/NetworkPolicyLogger;->getFirewallChainName(I)Ljava/lang/String;
+HSPLcom/android/server/net/NetworkPolicyLogger;->meteredRestrictedPkgsChanged(Ljava/util/Set;)V
PLcom/android/server/net/NetworkPolicyLogger;->meterednessChanged(IZ)V
HPLcom/android/server/net/NetworkPolicyLogger;->networkBlocked(II)V
PLcom/android/server/net/NetworkPolicyLogger;->tempPowerSaveWlChanged(IZ)V
HPLcom/android/server/net/NetworkPolicyLogger;->uidFirewallRuleChanged(III)V
HPLcom/android/server/net/NetworkPolicyLogger;->uidStateChanged(IIJ)V
-PLcom/android/server/net/NetworkPolicyManagerInternal;-><init>()V
-PLcom/android/server/net/NetworkPolicyManagerInternal;->isUidNetworkingBlocked(IIZZ)Z
-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$12;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerInternal;-><init>()V
+HSPLcom/android/server/net/NetworkPolicyManagerService$10;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$11;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$12;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
PLcom/android/server/net/NetworkPolicyManagerService$12;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/net/NetworkPolicyManagerService$13;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$13;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
PLcom/android/server/net/NetworkPolicyManagerService$13;->onCapabilitiesChanged(Landroid/net/Network;Landroid/net/NetworkCapabilities;)V
-PLcom/android/server/net/NetworkPolicyManagerService$14;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$14;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
PLcom/android/server/net/NetworkPolicyManagerService$14;->limitReached(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/net/NetworkPolicyManagerService$15;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$15;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
PLcom/android/server/net/NetworkPolicyManagerService$15;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/net/NetworkPolicyManagerService$16;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$16;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
PLcom/android/server/net/NetworkPolicyManagerService$16;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/net/NetworkPolicyManagerService$17;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
-HPLcom/android/server/net/NetworkPolicyManagerService$17;->handleMessage(Landroid/os/Message;)Z
-PLcom/android/server/net/NetworkPolicyManagerService$18;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$17;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$17;->handleMessage(Landroid/os/Message;)Z
+HSPLcom/android/server/net/NetworkPolicyManagerService$18;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
HPLcom/android/server/net/NetworkPolicyManagerService$18;->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$3;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/os/Looper;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$1;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$2;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$3;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/os/Looper;)V
PLcom/android/server/net/NetworkPolicyManagerService$3;->onSubscriptionsChanged()V
-PLcom/android/server/net/NetworkPolicyManagerService$4;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$4;-><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
-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
+HSPLcom/android/server/net/NetworkPolicyManagerService$5;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$6;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
PLcom/android/server/net/NetworkPolicyManagerService$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)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
+HSPLcom/android/server/net/NetworkPolicyManagerService$7;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$8;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$9;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
PLcom/android/server/net/NetworkPolicyManagerService$9;->onReceive(Landroid/content/Context;Landroid/content/Intent;)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$1;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$NetPolicyAppIdleStateChangeListener;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$NetPolicyAppIdleStateChangeListener;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService$1;)V
HPLcom/android/server/net/NetworkPolicyManagerService$NetPolicyAppIdleStateChangeListener;->onAppIdleStateChanged(Ljava/lang/String;IZII)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$1;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;-><init>(Lcom/android/server/net/NetworkPolicyManagerService;Lcom/android/server/net/NetworkPolicyManagerService$1;)V
HPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->isUidNetworkingBlocked(ILjava/lang/String;)Z
PLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->isUidRestrictedOnMeteredNetworks(I)Z
-PLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->onAdminDataAvailable()V
+HSPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->onAdminDataAvailable()V
PLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->onTempPowerSaveWhitelistChange(IZ)V
PLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->setAppIdleWhitelist(IZ)V
-PLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->setMeteredRestrictedPackagesAsync(Ljava/util/Set;I)V
-PLcom/android/server/net/NetworkPolicyManagerService;-><clinit>()V
-PLcom/android/server/net/NetworkPolicyManagerService;-><init>(Landroid/content/Context;Landroid/app/IActivityManager;Landroid/os/INetworkManagementService;)V
-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;Z)V
+HSPLcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;->setMeteredRestrictedPackagesAsync(Ljava/util/Set;I)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;-><clinit>()V
+HSPLcom/android/server/net/NetworkPolicyManagerService;-><init>(Landroid/content/Context;Landroid/app/IActivityManager;Landroid/os/INetworkManagementService;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;-><init>(Landroid/content/Context;Landroid/app/IActivityManager;Landroid/os/INetworkManagementService;Landroid/content/pm/IPackageManager;Ljava/time/Clock;Ljava/io/File;Z)V
PLcom/android/server/net/NetworkPolicyManagerService;->access$1100(Lcom/android/server/net/NetworkPolicyManagerService;)V
PLcom/android/server/net/NetworkPolicyManagerService;->access$1200(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/content/Context;
PLcom/android/server/net/NetworkPolicyManagerService;->access$1300(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
@@ -9845,562 +11828,648 @@ PLcom/android/server/net/NetworkPolicyManagerService;->access$1400(Landroid/util
PLcom/android/server/net/NetworkPolicyManagerService;->access$1500(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
PLcom/android/server/net/NetworkPolicyManagerService;->access$1600(Lcom/android/server/net/NetworkPolicyManagerService;)Lcom/android/server/net/NetworkPolicyLogger;
PLcom/android/server/net/NetworkPolicyManagerService;->access$2000(Lcom/android/server/net/NetworkPolicyManagerService;I)V
-PLcom/android/server/net/NetworkPolicyManagerService;->access$2100(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/os/RemoteCallbackList;
-PLcom/android/server/net/NetworkPolicyManagerService;->access$2200(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/INetworkPolicyListener;II)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->access$2100(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/os/RemoteCallbackList;
+HSPLcom/android/server/net/NetworkPolicyManagerService;->access$2200(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/INetworkPolicyListener;II)V
PLcom/android/server/net/NetworkPolicyManagerService;->access$2300(Lcom/android/server/net/NetworkPolicyManagerService;Landroid/net/INetworkPolicyListener;[Ljava/lang/String;)V
PLcom/android/server/net/NetworkPolicyManagerService;->access$2400(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/ArraySet;
PLcom/android/server/net/NetworkPolicyManagerService;->access$2500(Lcom/android/server/net/NetworkPolicyManagerService;)Lcom/android/server/net/NetworkStatsManagerInternal;
-PLcom/android/server/net/NetworkPolicyManagerService;->access$3300(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/util/Set;I)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->access$3300(Lcom/android/server/net/NetworkPolicyManagerService;Ljava/util/Set;I)V
PLcom/android/server/net/NetworkPolicyManagerService;->access$3700(Lcom/android/server/net/NetworkPolicyManagerService;)Landroid/util/SparseBooleanArray;
PLcom/android/server/net/NetworkPolicyManagerService;->access$3800(Lcom/android/server/net/NetworkPolicyManagerService;I)V
PLcom/android/server/net/NetworkPolicyManagerService;->access$400(Lcom/android/server/net/NetworkPolicyManagerService;)V
-PLcom/android/server/net/NetworkPolicyManagerService;->access$4200(Lcom/android/server/net/NetworkPolicyManagerService;)Ljava/util/concurrent/CountDownLatch;
-PLcom/android/server/net/NetworkPolicyManagerService;->addDefaultRestrictBackgroundWhitelistUidsUL()Z
-PLcom/android/server/net/NetworkPolicyManagerService;->addDefaultRestrictBackgroundWhitelistUidsUL(I)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->bindConnectivityManager(Landroid/net/IConnectivityManager;)V
-PLcom/android/server/net/NetworkPolicyManagerService;->checkAnyPermissionOf([Ljava/lang/String;)Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->access$4200(Lcom/android/server/net/NetworkPolicyManagerService;)Ljava/util/concurrent/CountDownLatch;
+HSPLcom/android/server/net/NetworkPolicyManagerService;->addDefaultRestrictBackgroundWhitelistUidsUL()Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->addDefaultRestrictBackgroundWhitelistUidsUL(I)Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->bindConnectivityManager(Landroid/net/IConnectivityManager;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->checkAnyPermissionOf([Ljava/lang/String;)Z
+PLcom/android/server/net/NetworkPolicyManagerService;->collectIfaces(Landroid/util/ArraySet;Landroid/net/NetworkState;)V
PLcom/android/server/net/NetworkPolicyManagerService;->defeatNullable([Landroid/net/NetworkState;)[Landroid/net/NetworkState;
PLcom/android/server/net/NetworkPolicyManagerService;->dispatchMeteredIfacesChanged(Landroid/net/INetworkPolicyListener;[Ljava/lang/String;)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->dispatchUidRulesChanged(Landroid/net/INetworkPolicyListener;II)V
-PLcom/android/server/net/NetworkPolicyManagerService;->enableFirewallChainUL(IZ)V
-PLcom/android/server/net/NetworkPolicyManagerService;->enforceAnyPermissionOf([Ljava/lang/String;)V
+PLcom/android/server/net/NetworkPolicyManagerService;->dispatchSubscriptionPlansChanged(Landroid/net/INetworkPolicyListener;I[Landroid/telephony/SubscriptionPlan;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->dispatchUidRulesChanged(Landroid/net/INetworkPolicyListener;II)V
+PLcom/android/server/net/NetworkPolicyManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->enableFirewallChainUL(IZ)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->enforceAnyPermissionOf([Ljava/lang/String;)V
+PLcom/android/server/net/NetworkPolicyManagerService;->enforceSubscriptionPlanAccess(IILjava/lang/String;)V
+PLcom/android/server/net/NetworkPolicyManagerService;->enforceSubscriptionPlanValidity([Landroid/telephony/SubscriptionPlan;)V
PLcom/android/server/net/NetworkPolicyManagerService;->ensureActiveMobilePolicyAL()V
-PLcom/android/server/net/NetworkPolicyManagerService;->getDefaultClock()Ljava/time/Clock;
-PLcom/android/server/net/NetworkPolicyManagerService;->getDefaultSystemDir()Ljava/io/File;
+HSPLcom/android/server/net/NetworkPolicyManagerService;->getDefaultClock()Ljava/time/Clock;
+HSPLcom/android/server/net/NetworkPolicyManagerService;->getDefaultSystemDir()Ljava/io/File;
PLcom/android/server/net/NetworkPolicyManagerService;->getNetworkPolicies(Ljava/lang/String;)[Landroid/net/NetworkPolicy;
PLcom/android/server/net/NetworkPolicyManagerService;->getPrimarySubscriptionPlanLocked(I)Landroid/telephony/SubscriptionPlan;
PLcom/android/server/net/NetworkPolicyManagerService;->getRestrictBackground()Z
PLcom/android/server/net/NetworkPolicyManagerService;->getRestrictBackgroundByCaller()I
PLcom/android/server/net/NetworkPolicyManagerService;->getSubIdLocked(Landroid/net/Network;)I
PLcom/android/server/net/NetworkPolicyManagerService;->getUidPolicy(I)I
-PLcom/android/server/net/NetworkPolicyManagerService;->handleRestrictedPackagesChangeUL(Ljava/util/Set;Ljava/util/Set;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->handleRestrictedPackagesChangeUL(Ljava/util/Set;Ljava/util/Set;)V
HPLcom/android/server/net/NetworkPolicyManagerService;->handleUidChanged(IIJ)V
PLcom/android/server/net/NetworkPolicyManagerService;->handleUidGone(I)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->hasInternetPermissions(I)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->hasRule(II)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->initService(Ljava/util/concurrent/CountDownLatch;)V
-PLcom/android/server/net/NetworkPolicyManagerService;->isBandwidthControlEnabled()Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isRestrictedByAdminUL(I)Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->hasInternetPermissions(I)Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->hasRule(II)Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->initService(Ljava/util/concurrent/CountDownLatch;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->isBandwidthControlEnabled()Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->isRestrictedByAdminUL(I)Z
PLcom/android/server/net/NetworkPolicyManagerService;->isSystem(I)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->isUidForegroundOnRestrictBackgroundUL(I)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->isUidForegroundOnRestrictPowerUL(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isUidIdle(I)Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->isUidForegroundOnRestrictBackgroundUL(I)Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->isUidForegroundOnRestrictPowerUL(I)Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->isUidIdle(I)Z
HPLcom/android/server/net/NetworkPolicyManagerService;->isUidNetworkingBlockedInternal(IIZZLcom/android/server/net/NetworkPolicyLogger;)Z
PLcom/android/server/net/NetworkPolicyManagerService;->isUidStateForeground(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isUidValidForBlacklistRules(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isUidValidForWhitelistRules(I)Z
-HPLcom/android/server/net/NetworkPolicyManagerService;->isWhitelistedFromPowerSaveUL(IZ)Z
-PLcom/android/server/net/NetworkPolicyManagerService;->lambda$networkScoreAndNetworkManagementServiceReady$0$NetworkPolicyManagerService(Ljava/util/concurrent/CountDownLatch;)V
-PLcom/android/server/net/NetworkPolicyManagerService;->networkScoreAndNetworkManagementServiceReady()Ljava/util/concurrent/CountDownLatch;
+HSPLcom/android/server/net/NetworkPolicyManagerService;->isUidValidForBlacklistRules(I)Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->isUidValidForWhitelistRules(I)Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->isWhitelistedFromPowerSaveUL(IZ)Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->lambda$networkScoreAndNetworkManagementServiceReady$0$NetworkPolicyManagerService(Ljava/util/concurrent/CountDownLatch;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->networkScoreAndNetworkManagementServiceReady()Ljava/util/concurrent/CountDownLatch;
PLcom/android/server/net/NetworkPolicyManagerService;->normalizePoliciesNL()V
PLcom/android/server/net/NetworkPolicyManagerService;->normalizePoliciesNL([Landroid/net/NetworkPolicy;)V
PLcom/android/server/net/NetworkPolicyManagerService;->onTetheringChanged(Ljava/lang/String;Z)V
PLcom/android/server/net/NetworkPolicyManagerService;->parseSubId(Landroid/net/NetworkState;)I
-PLcom/android/server/net/NetworkPolicyManagerService;->readPolicyAL()V
-PLcom/android/server/net/NetworkPolicyManagerService;->registerListener(Landroid/net/INetworkPolicyListener;)V
-PLcom/android/server/net/NetworkPolicyManagerService;->removeUidStateUL(I)Z
+HSPLcom/android/server/net/NetworkPolicyManagerService;->readPolicyAL()V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->registerListener(Landroid/net/INetworkPolicyListener;)V
+PLcom/android/server/net/NetworkPolicyManagerService;->removeInterfaceQuota(Ljava/lang/String;)V
+PLcom/android/server/net/NetworkPolicyManagerService;->removeInterfaceQuotaAsync(Ljava/lang/String;)V
+HPLcom/android/server/net/NetworkPolicyManagerService;->removeUidStateUL(I)Z
HPLcom/android/server/net/NetworkPolicyManagerService;->setAppIdleWhitelist(IZ)V
PLcom/android/server/net/NetworkPolicyManagerService;->setDeviceIdleMode(Z)V
+PLcom/android/server/net/NetworkPolicyManagerService;->setInterfaceQuota(Ljava/lang/String;J)V
+PLcom/android/server/net/NetworkPolicyManagerService;->setInterfaceQuotaAsync(Ljava/lang/String;J)V
HPLcom/android/server/net/NetworkPolicyManagerService;->setMeteredNetworkWhitelist(IZ)V
-PLcom/android/server/net/NetworkPolicyManagerService;->setMeteredRestrictedPackagesInternal(Ljava/util/Set;I)V
-PLcom/android/server/net/NetworkPolicyManagerService;->setRestrictBackgroundUL(Z)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->setMeteredRestrictedPackagesInternal(Ljava/util/Set;I)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->setRestrictBackgroundUL(Z)V
+PLcom/android/server/net/NetworkPolicyManagerService;->setSubscriptionPlans(I[Landroid/telephony/SubscriptionPlan;Ljava/lang/String;)V
HPLcom/android/server/net/NetworkPolicyManagerService;->setUidFirewallRule(III)V
-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
+HSPLcom/android/server/net/NetworkPolicyManagerService;->setUidFirewallRulesUL(ILandroid/util/SparseIntArray;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->setUidFirewallRulesUL(ILandroid/util/SparseIntArray;I)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->setUidPolicyUncheckedUL(IIZ)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->systemReady(Ljava/util/concurrent/CountDownLatch;)V
PLcom/android/server/net/NetworkPolicyManagerService;->unregisterListener(Landroid/net/INetworkPolicyListener;)V
PLcom/android/server/net/NetworkPolicyManagerService;->updateCapabilityChange(Landroid/util/SparseBooleanArray;ZLandroid/net/Network;)Z
PLcom/android/server/net/NetworkPolicyManagerService;->updateNetworkEnabledNL()V
PLcom/android/server/net/NetworkPolicyManagerService;->updateNetworkRulesNL()V
HPLcom/android/server/net/NetworkPolicyManagerService;->updateNetworkStats(IZ)V
PLcom/android/server/net/NetworkPolicyManagerService;->updateNetworksInternal()V
-PLcom/android/server/net/NetworkPolicyManagerService;->updateNotificationsNL()V
-PLcom/android/server/net/NetworkPolicyManagerService;->updatePowerSaveWhitelistUL()V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateNotificationsNL()V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updatePowerSaveWhitelistUL()V
PLcom/android/server/net/NetworkPolicyManagerService;->updateRestrictBackgroundRulesOnUidStatusChangedUL(III)V
HPLcom/android/server/net/NetworkPolicyManagerService;->updateRuleForAppIdleUL(I)V
PLcom/android/server/net/NetworkPolicyManagerService;->updateRuleForDeviceIdleUL(I)V
PLcom/android/server/net/NetworkPolicyManagerService;->updateRuleForRestrictPowerUL(I)V
-HPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForAllAppsUL(I)V
-PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForAppIdleUL()V
-HPLcom/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)I
-HPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForPowerRestrictionsULInner(II)I
-PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForPowerSaveUL()V
-PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForRestrictBackgroundUL()V
-PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForRestrictPowerUL()V
-PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForTempWhitelistChangeUL(I)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForAllAppsUL(I)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForAppIdleUL()V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForDataUsageRestrictionsUL(I)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForDataUsageRestrictionsULInner(I)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForDeviceIdleUL()V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForGlobalChangeAL(Z)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForPowerRestrictionsUL(I)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForPowerRestrictionsUL(II)I
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForPowerRestrictionsULInner(II)I
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForPowerSaveUL()V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForRestrictBackgroundUL()V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForRestrictPowerUL()V
+HPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForTempWhitelistChangeUL(I)V
PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForWhitelistedPowerSaveUL(IZI)V
-PLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForWhitelistedPowerSaveUL(ZILandroid/util/SparseIntArray;)V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->updateRulesForWhitelistedPowerSaveUL(ZILandroid/util/SparseIntArray;)V
PLcom/android/server/net/NetworkPolicyManagerService;->updateSubscriptions()V
HPLcom/android/server/net/NetworkPolicyManagerService;->updateUidStateUL(II)Z
PLcom/android/server/net/NetworkPolicyManagerService;->upgradeWifiMeteredOverrideAL()V
-PLcom/android/server/net/NetworkPolicyManagerService;->waitForAdminData()V
-PLcom/android/server/net/NetworkPolicyManagerService;->writePolicyAL()V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->waitForAdminData()V
+HSPLcom/android/server/net/NetworkPolicyManagerService;->writePolicyAL()V
HPLcom/android/server/net/NetworkStatsAccess;->checkAccessLevel(Landroid/content/Context;ILjava/lang/String;)I
HPLcom/android/server/net/NetworkStatsAccess;->hasAppOpsPermission(Landroid/content/Context;ILjava/lang/String;)Z
HPLcom/android/server/net/NetworkStatsAccess;->isAccessibleToUser(III)Z
-HPLcom/android/server/net/NetworkStatsCollection$Key;-><init>(Lcom/android/server/net/NetworkIdentitySet;III)V
-HPLcom/android/server/net/NetworkStatsCollection$Key;->equals(Ljava/lang/Object;)Z
-HPLcom/android/server/net/NetworkStatsCollection$Key;->hashCode()I
-PLcom/android/server/net/NetworkStatsCollection;-><init>(J)V
+HSPLcom/android/server/net/NetworkStatsCollection$Key;-><init>(Lcom/android/server/net/NetworkIdentitySet;III)V
+HPLcom/android/server/net/NetworkStatsCollection$Key;->compareTo(Lcom/android/server/net/NetworkStatsCollection$Key;)I
+HPLcom/android/server/net/NetworkStatsCollection$Key;->compareTo(Ljava/lang/Object;)I
+HSPLcom/android/server/net/NetworkStatsCollection$Key;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/server/net/NetworkStatsCollection$Key;->hashCode()I
+HSPLcom/android/server/net/NetworkStatsCollection;-><init>(J)V
+HPLcom/android/server/net/NetworkStatsCollection;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/net/NetworkStatsCollection;->dumpCheckin(Ljava/io/PrintWriter;JJ)V
+PLcom/android/server/net/NetworkStatsCollection;->dumpCheckin(Ljava/io/PrintWriter;JJLandroid/net/NetworkTemplate;Ljava/lang/String;)V
+HPLcom/android/server/net/NetworkStatsCollection;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HPLcom/android/server/net/NetworkStatsCollection;->findOrCreateHistory(Lcom/android/server/net/NetworkIdentitySet;III)Landroid/net/NetworkStatsHistory;
HPLcom/android/server/net/NetworkStatsCollection;->getHistory(Landroid/net/NetworkTemplate;Landroid/telephony/SubscriptionPlan;IIIIJJII)Landroid/net/NetworkStatsHistory;
+PLcom/android/server/net/NetworkStatsCollection;->getSortedKeys()Ljava/util/ArrayList;
HPLcom/android/server/net/NetworkStatsCollection;->getSummary(Landroid/net/NetworkTemplate;JJII)Landroid/net/NetworkStats;
PLcom/android/server/net/NetworkStatsCollection;->getTotalBytes()J
-PLcom/android/server/net/NetworkStatsCollection;->noteRecordedHistory(JJJ)V
-HPLcom/android/server/net/NetworkStatsCollection;->read(Ljava/io/DataInputStream;)V
-PLcom/android/server/net/NetworkStatsCollection;->read(Ljava/io/InputStream;)V
-PLcom/android/server/net/NetworkStatsCollection;->recordCollection(Lcom/android/server/net/NetworkStatsCollection;)V
+HSPLcom/android/server/net/NetworkStatsCollection;->noteRecordedHistory(JJJ)V
+HSPLcom/android/server/net/NetworkStatsCollection;->read(Ljava/io/DataInputStream;)V
+HSPLcom/android/server/net/NetworkStatsCollection;->read(Ljava/io/InputStream;)V
+HSPLcom/android/server/net/NetworkStatsCollection;->recordCollection(Lcom/android/server/net/NetworkStatsCollection;)V
HPLcom/android/server/net/NetworkStatsCollection;->recordData(Lcom/android/server/net/NetworkIdentitySet;IIIJJLandroid/net/NetworkStats$Entry;)V
-HPLcom/android/server/net/NetworkStatsCollection;->recordHistory(Lcom/android/server/net/NetworkStatsCollection$Key;Landroid/net/NetworkStatsHistory;)V
-PLcom/android/server/net/NetworkStatsCollection;->reset()V
-PLcom/android/server/net/NetworkStatsCollection;->templateMatches(Landroid/net/NetworkTemplate;Lcom/android/server/net/NetworkIdentitySet;)Z
+HSPLcom/android/server/net/NetworkStatsCollection;->recordHistory(Lcom/android/server/net/NetworkStatsCollection$Key;Landroid/net/NetworkStatsHistory;)V
+HSPLcom/android/server/net/NetworkStatsCollection;->reset()V
+HPLcom/android/server/net/NetworkStatsCollection;->templateMatches(Landroid/net/NetworkTemplate;Lcom/android/server/net/NetworkIdentitySet;)Z
HPLcom/android/server/net/NetworkStatsCollection;->write(Ljava/io/DataOutputStream;)V
-PLcom/android/server/net/NetworkStatsFactory;-><init>()V
-PLcom/android/server/net/NetworkStatsFactory;-><init>(Ljava/io/File;Z)V
-HPLcom/android/server/net/NetworkStatsFactory;->adjustForTunAnd464Xlat(Landroid/net/NetworkStats;Landroid/net/NetworkStats;[Lcom/android/internal/net/VpnInfo;)Landroid/net/NetworkStats;
-PLcom/android/server/net/NetworkStatsFactory;->apply464xlatAdjustments(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Z)V
+HSPLcom/android/server/net/NetworkStatsFactory;-><init>()V
+HSPLcom/android/server/net/NetworkStatsFactory;-><init>(Ljava/io/File;Z)V
+HSPLcom/android/server/net/NetworkStatsFactory;->adjustForTunAnd464Xlat(Landroid/net/NetworkStats;Landroid/net/NetworkStats;[Lcom/android/internal/net/VpnInfo;)Landroid/net/NetworkStats;
+HSPLcom/android/server/net/NetworkStatsFactory;->apply464xlatAdjustments(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Z)V
HPLcom/android/server/net/NetworkStatsFactory;->augmentWithStackedInterfaces([Ljava/lang/String;)[Ljava/lang/String;
-HPLcom/android/server/net/NetworkStatsFactory;->readBpfNetworkStatsDev()Landroid/net/NetworkStats;
-HPLcom/android/server/net/NetworkStatsFactory;->readNetworkStatsDetail(I[Ljava/lang/String;I)Landroid/net/NetworkStats;
-PLcom/android/server/net/NetworkStatsFactory;->readNetworkStatsSummaryDev()Landroid/net/NetworkStats;
-PLcom/android/server/net/NetworkStatsFactory;->readNetworkStatsSummaryXt()Landroid/net/NetworkStats;
-PLcom/android/server/net/NetworkStatsFactory;->requestSwapActiveStatsMapLocked()V
+HSPLcom/android/server/net/NetworkStatsFactory;->readBpfNetworkStatsDev()Landroid/net/NetworkStats;
+HSPLcom/android/server/net/NetworkStatsFactory;->readNetworkStatsDetail(I[Ljava/lang/String;I)Landroid/net/NetworkStats;
+HSPLcom/android/server/net/NetworkStatsFactory;->readNetworkStatsSummaryDev()Landroid/net/NetworkStats;
+HSPLcom/android/server/net/NetworkStatsFactory;->readNetworkStatsSummaryXt()Landroid/net/NetworkStats;
+HSPLcom/android/server/net/NetworkStatsFactory;->requestSwapActiveStatsMapLocked()V
PLcom/android/server/net/NetworkStatsFactory;->updateVpnInfos([Lcom/android/internal/net/VpnInfo;)V
-PLcom/android/server/net/NetworkStatsManagerInternal;-><init>()V
-PLcom/android/server/net/NetworkStatsObservers$1;-><init>(Lcom/android/server/net/NetworkStatsObservers;)V
-PLcom/android/server/net/NetworkStatsObservers$1;->handleMessage(Landroid/os/Message;)Z
-PLcom/android/server/net/NetworkStatsObservers$StatsContext;-><init>(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Landroid/util/ArrayMap;Landroid/util/ArrayMap;J)V
-PLcom/android/server/net/NetworkStatsObservers;-><init>()V
-PLcom/android/server/net/NetworkStatsObservers;->access$200(Lcom/android/server/net/NetworkStatsObservers;Lcom/android/server/net/NetworkStatsObservers$StatsContext;)V
-PLcom/android/server/net/NetworkStatsObservers;->getHandler()Landroid/os/Handler;
-PLcom/android/server/net/NetworkStatsObservers;->getHandlerLooperLocked()Landroid/os/Looper;
-PLcom/android/server/net/NetworkStatsObservers;->handleUpdateStats(Lcom/android/server/net/NetworkStatsObservers$StatsContext;)V
-PLcom/android/server/net/NetworkStatsObservers;->updateStats(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Landroid/util/ArrayMap;Landroid/util/ArrayMap;J)V
-PLcom/android/server/net/NetworkStatsRecorder$CombiningRewriter;-><init>(Lcom/android/server/net/NetworkStatsCollection;)V
+HSPLcom/android/server/net/NetworkStatsManagerInternal;-><init>()V
+HSPLcom/android/server/net/NetworkStatsObservers$1;-><init>(Lcom/android/server/net/NetworkStatsObservers;)V
+HSPLcom/android/server/net/NetworkStatsObservers$1;->handleMessage(Landroid/os/Message;)Z
+HSPLcom/android/server/net/NetworkStatsObservers$StatsContext;-><init>(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Landroid/util/ArrayMap;Landroid/util/ArrayMap;J)V
+HSPLcom/android/server/net/NetworkStatsObservers;-><init>()V
+HSPLcom/android/server/net/NetworkStatsObservers;->access$200(Lcom/android/server/net/NetworkStatsObservers;Lcom/android/server/net/NetworkStatsObservers$StatsContext;)V
+HSPLcom/android/server/net/NetworkStatsObservers;->getHandler()Landroid/os/Handler;
+HSPLcom/android/server/net/NetworkStatsObservers;->getHandlerLooperLocked()Landroid/os/Looper;
+HSPLcom/android/server/net/NetworkStatsObservers;->handleUpdateStats(Lcom/android/server/net/NetworkStatsObservers$StatsContext;)V
+HSPLcom/android/server/net/NetworkStatsObservers;->updateStats(Landroid/net/NetworkStats;Landroid/net/NetworkStats;Landroid/util/ArrayMap;Landroid/util/ArrayMap;J)V
+HSPLcom/android/server/net/NetworkStatsRecorder$CombiningRewriter;-><init>(Lcom/android/server/net/NetworkStatsCollection;)V
PLcom/android/server/net/NetworkStatsRecorder$CombiningRewriter;->read(Ljava/io/InputStream;)V
PLcom/android/server/net/NetworkStatsRecorder$CombiningRewriter;->reset()V
PLcom/android/server/net/NetworkStatsRecorder$CombiningRewriter;->shouldWrite()Z
PLcom/android/server/net/NetworkStatsRecorder$CombiningRewriter;->write(Ljava/io/OutputStream;)V
-PLcom/android/server/net/NetworkStatsRecorder;-><init>(Lcom/android/internal/util/FileRotator;Landroid/net/NetworkStats$NonMonotonicObserver;Landroid/os/DropBoxManager;Ljava/lang/String;JZ)V
+HSPLcom/android/server/net/NetworkStatsRecorder;-><init>(Lcom/android/internal/util/FileRotator;Landroid/net/NetworkStats$NonMonotonicObserver;Landroid/os/DropBoxManager;Ljava/lang/String;JZ)V
+PLcom/android/server/net/NetworkStatsRecorder;->dumpDebugLocked(Landroid/util/proto/ProtoOutputStream;J)V
+PLcom/android/server/net/NetworkStatsRecorder;->dumpLocked(Lcom/android/internal/util/IndentingPrintWriter;Z)V
PLcom/android/server/net/NetworkStatsRecorder;->forcePersistLocked(J)V
-HPLcom/android/server/net/NetworkStatsRecorder;->getOrLoadCompleteLocked()Lcom/android/server/net/NetworkStatsCollection;
-PLcom/android/server/net/NetworkStatsRecorder;->getTotalSinceBootLocked(Landroid/net/NetworkTemplate;)Landroid/net/NetworkStats$Entry;
-PLcom/android/server/net/NetworkStatsRecorder;->loadLocked(JJ)Lcom/android/server/net/NetworkStatsCollection;
+HSPLcom/android/server/net/NetworkStatsRecorder;->getOrLoadCompleteLocked()Lcom/android/server/net/NetworkStatsCollection;
+PLcom/android/server/net/NetworkStatsRecorder;->getOrLoadPartialLocked(JJ)Lcom/android/server/net/NetworkStatsCollection;
+HPLcom/android/server/net/NetworkStatsRecorder;->getTotalSinceBootLocked(Landroid/net/NetworkTemplate;)Landroid/net/NetworkStats$Entry;
+HSPLcom/android/server/net/NetworkStatsRecorder;->loadLocked(JJ)Lcom/android/server/net/NetworkStatsCollection;
PLcom/android/server/net/NetworkStatsRecorder;->maybePersistLocked(J)V
-HPLcom/android/server/net/NetworkStatsRecorder;->recordSnapshotLocked(Landroid/net/NetworkStats;Ljava/util/Map;J)V
-PLcom/android/server/net/NetworkStatsRecorder;->setPersistThreshold(J)V
+HSPLcom/android/server/net/NetworkStatsRecorder;->recordSnapshotLocked(Landroid/net/NetworkStats;Ljava/util/Map;J)V
+HSPLcom/android/server/net/NetworkStatsRecorder;->setPersistThreshold(J)V
HPLcom/android/server/net/NetworkStatsService$1;-><init>(Lcom/android/server/net/NetworkStatsService;ILjava/lang/String;I)V
HPLcom/android/server/net/NetworkStatsService$1;->close()V
+PLcom/android/server/net/NetworkStatsService$1;->getDeviceSummaryForNetwork(Landroid/net/NetworkTemplate;JJ)Landroid/net/NetworkStats;
HPLcom/android/server/net/NetworkStatsService$1;->getHistoryIntervalForUid(Landroid/net/NetworkTemplate;IIIIJJ)Landroid/net/NetworkStatsHistory;
PLcom/android/server/net/NetworkStatsService$1;->getSummaryForAllUid(Landroid/net/NetworkTemplate;JJZ)Landroid/net/NetworkStats;
PLcom/android/server/net/NetworkStatsService$1;->getUidComplete()Lcom/android/server/net/NetworkStatsCollection;
HPLcom/android/server/net/NetworkStatsService$1;->getUidTagComplete()Lcom/android/server/net/NetworkStatsCollection;
-PLcom/android/server/net/NetworkStatsService$2;-><init>(Lcom/android/server/net/NetworkStatsService;)V
+HSPLcom/android/server/net/NetworkStatsService$2;-><init>(Lcom/android/server/net/NetworkStatsService;)V
PLcom/android/server/net/NetworkStatsService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/net/NetworkStatsService$3;-><init>(Lcom/android/server/net/NetworkStatsService;)V
+HSPLcom/android/server/net/NetworkStatsService$3;-><init>(Lcom/android/server/net/NetworkStatsService;)V
PLcom/android/server/net/NetworkStatsService$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/net/NetworkStatsService$4;-><init>(Lcom/android/server/net/NetworkStatsService;)V
-PLcom/android/server/net/NetworkStatsService$5;-><init>(Lcom/android/server/net/NetworkStatsService;)V
-PLcom/android/server/net/NetworkStatsService$6;-><init>(Lcom/android/server/net/NetworkStatsService;)V
-PLcom/android/server/net/NetworkStatsService$7;-><init>(Lcom/android/server/net/NetworkStatsService;)V
+HSPLcom/android/server/net/NetworkStatsService$4;-><init>(Lcom/android/server/net/NetworkStatsService;)V
+HSPLcom/android/server/net/NetworkStatsService$5;-><init>(Lcom/android/server/net/NetworkStatsService;)V
+HSPLcom/android/server/net/NetworkStatsService$6;-><init>(Lcom/android/server/net/NetworkStatsService;)V
+HSPLcom/android/server/net/NetworkStatsService$7;-><init>(Lcom/android/server/net/NetworkStatsService;)V
PLcom/android/server/net/NetworkStatsService$7;->limitReached(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;-><init>(Landroid/content/Context;)V
-PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getDevConfig()Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;
-PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getDevPersistBytes(J)J
-PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getGlobalAlertBytes(J)J
+HSPLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getDevConfig()Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;
+HSPLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getDevPersistBytes(J)J
+HSPLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getGlobalAlertBytes(J)J
PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getGlobalBoolean(Ljava/lang/String;Z)Z
-PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getGlobalLong(Ljava/lang/String;J)J
-PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getPollInterval()J
+HSPLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getGlobalLong(Ljava/lang/String;J)J
+HSPLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getPollInterval()J
PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getSampleEnabled()Z
-PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getUidConfig()Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;
-PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getUidPersistBytes(J)J
-PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getUidTagConfig()Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;
-PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getUidTagPersistBytes(J)J
-PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getXtConfig()Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;
-PLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getXtPersistBytes(J)J
-PLcom/android/server/net/NetworkStatsService$DropBoxNonMonotonicObserver;-><init>(Lcom/android/server/net/NetworkStatsService;)V
-PLcom/android/server/net/NetworkStatsService$DropBoxNonMonotonicObserver;-><init>(Lcom/android/server/net/NetworkStatsService;Lcom/android/server/net/NetworkStatsService$1;)V
-PLcom/android/server/net/NetworkStatsService$HandlerCallback;-><init>(Lcom/android/server/net/NetworkStatsService;)V
+HSPLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getUidConfig()Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;
+HSPLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getUidPersistBytes(J)J
+HSPLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getUidTagConfig()Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;
+HSPLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getUidTagPersistBytes(J)J
+HSPLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getXtConfig()Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;
+HSPLcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;->getXtPersistBytes(J)J
+HSPLcom/android/server/net/NetworkStatsService$DropBoxNonMonotonicObserver;-><init>(Lcom/android/server/net/NetworkStatsService;)V
+HSPLcom/android/server/net/NetworkStatsService$DropBoxNonMonotonicObserver;-><init>(Lcom/android/server/net/NetworkStatsService;Lcom/android/server/net/NetworkStatsService$1;)V
+HSPLcom/android/server/net/NetworkStatsService$HandlerCallback;-><init>(Lcom/android/server/net/NetworkStatsService;)V
PLcom/android/server/net/NetworkStatsService$HandlerCallback;->handleMessage(Landroid/os/Message;)Z
-PLcom/android/server/net/NetworkStatsService$NetworkStatsHandler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V
-PLcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;-><init>(Lcom/android/server/net/NetworkStatsService;)V
-PLcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;-><init>(Lcom/android/server/net/NetworkStatsService;Lcom/android/server/net/NetworkStatsService$1;)V
+HSPLcom/android/server/net/NetworkStatsService$NetworkStatsHandler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V
+HSPLcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;-><init>(Lcom/android/server/net/NetworkStatsService;)V
+HSPLcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;-><init>(Lcom/android/server/net/NetworkStatsService;Lcom/android/server/net/NetworkStatsService$1;)V
PLcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;->advisePersistThreshold(J)V
PLcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;->setUidForeground(IZ)V
-PLcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;-><init>(JJJ)V
+HSPLcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;-><init>(JJJ)V
HSPLcom/android/server/net/NetworkStatsService;-><clinit>()V
-PLcom/android/server/net/NetworkStatsService;-><init>(Landroid/content/Context;Landroid/os/INetworkManagementService;Landroid/app/AlarmManager;Landroid/os/PowerManager$WakeLock;Ljava/time/Clock;Landroid/telephony/TelephonyManager;Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings;Lcom/android/server/net/NetworkStatsFactory;Lcom/android/server/net/NetworkStatsObservers;Ljava/io/File;Ljava/io/File;)V
+HSPLcom/android/server/net/NetworkStatsService;-><init>(Landroid/content/Context;Landroid/os/INetworkManagementService;Landroid/app/AlarmManager;Landroid/os/PowerManager$WakeLock;Ljava/time/Clock;Landroid/telephony/TelephonyManager;Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings;Lcom/android/server/net/NetworkStatsFactory;Lcom/android/server/net/NetworkStatsObservers;Ljava/io/File;Ljava/io/File;)V
PLcom/android/server/net/NetworkStatsService;->access$1800(Lcom/android/server/net/NetworkStatsService;J)V
PLcom/android/server/net/NetworkStatsService;->access$200(Lcom/android/server/net/NetworkStatsService;Ljava/lang/String;)I
PLcom/android/server/net/NetworkStatsService;->access$800(Lcom/android/server/net/NetworkStatsService;I)V
PLcom/android/server/net/NetworkStatsService;->advisePersistThreshold(J)V
-PLcom/android/server/net/NetworkStatsService;->bootstrapStatsLocked()V
-PLcom/android/server/net/NetworkStatsService;->buildRecorder(Ljava/lang/String;Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;Z)Lcom/android/server/net/NetworkStatsRecorder;
+HSPLcom/android/server/net/NetworkStatsService;->bootstrapStatsLocked()V
+HSPLcom/android/server/net/NetworkStatsService;->buildRecorder(Ljava/lang/String;Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;Z)Lcom/android/server/net/NetworkStatsRecorder;
HPLcom/android/server/net/NetworkStatsService;->checkAccessLevel(Ljava/lang/String;)I
-PLcom/android/server/net/NetworkStatsService;->create(Landroid/content/Context;Landroid/os/INetworkManagementService;)Lcom/android/server/net/NetworkStatsService;
+PLcom/android/server/net/NetworkStatsService;->checkBpfStatsEnable()Z
+HSPLcom/android/server/net/NetworkStatsService;->create(Landroid/content/Context;Landroid/os/INetworkManagementService;)Lcom/android/server/net/NetworkStatsService;
+PLcom/android/server/net/NetworkStatsService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/net/NetworkStatsService;->dumpInterfaces(Landroid/util/proto/ProtoOutputStream;JLandroid/util/ArrayMap;)V
+PLcom/android/server/net/NetworkStatsService;->dumpProtoLocked(Ljava/io/FileDescriptor;)V
PLcom/android/server/net/NetworkStatsService;->findOrCreateNetworkIdentitySet(Landroid/util/ArrayMap;Ljava/lang/Object;)Lcom/android/server/net/NetworkIdentitySet;
-PLcom/android/server/net/NetworkStatsService;->forceUpdateIfaces([Landroid/net/Network;[Landroid/net/NetworkState;Ljava/lang/String;[Lcom/android/internal/net/VpnInfo;)V
-PLcom/android/server/net/NetworkStatsService;->getDefaultBaseDir()Ljava/io/File;
-PLcom/android/server/net/NetworkStatsService;->getDefaultClock()Ljava/time/Clock;
-PLcom/android/server/net/NetworkStatsService;->getDefaultSystemDir()Ljava/io/File;
-PLcom/android/server/net/NetworkStatsService;->getDetailedUidStats([Ljava/lang/String;)Landroid/net/NetworkStats;
+HPLcom/android/server/net/NetworkStatsService;->forceUpdateIfaces([Landroid/net/Network;[Landroid/net/NetworkState;Ljava/lang/String;[Lcom/android/internal/net/VpnInfo;)V
+HSPLcom/android/server/net/NetworkStatsService;->getDefaultBaseDir()Ljava/io/File;
+HSPLcom/android/server/net/NetworkStatsService;->getDefaultClock()Ljava/time/Clock;
+HSPLcom/android/server/net/NetworkStatsService;->getDefaultSystemDir()Ljava/io/File;
+HPLcom/android/server/net/NetworkStatsService;->getDetailedUidStats([Ljava/lang/String;)Landroid/net/NetworkStats;
+PLcom/android/server/net/NetworkStatsService;->getIfaceStats(Ljava/lang/String;I)J
PLcom/android/server/net/NetworkStatsService;->getMobileIfaces()[Ljava/lang/String;
-PLcom/android/server/net/NetworkStatsService;->getNetworkStatsTethering(I)Landroid/net/NetworkStats;
-PLcom/android/server/net/NetworkStatsService;->getNetworkStatsUidDetail([Ljava/lang/String;)Landroid/net/NetworkStats;
-PLcom/android/server/net/NetworkStatsService;->getNetworkStatsXt()Landroid/net/NetworkStats;
+HSPLcom/android/server/net/NetworkStatsService;->getNetworkStatsTethering(I)Landroid/net/NetworkStats;
+HSPLcom/android/server/net/NetworkStatsService;->getNetworkStatsUidDetail([Ljava/lang/String;)Landroid/net/NetworkStats;
+HSPLcom/android/server/net/NetworkStatsService;->getNetworkStatsXt()Landroid/net/NetworkStats;
PLcom/android/server/net/NetworkStatsService;->getTetherStats(Ljava/lang/String;I)J
PLcom/android/server/net/NetworkStatsService;->getTotalStats(I)J
-PLcom/android/server/net/NetworkStatsService;->getUidStats(II)J
+HPLcom/android/server/net/NetworkStatsService;->getUidStats(II)J
PLcom/android/server/net/NetworkStatsService;->incrementOperationCount(III)V
+PLcom/android/server/net/NetworkStatsService;->internalGetHistoryForNetwork(Landroid/net/NetworkTemplate;IIII)Landroid/net/NetworkStatsHistory;
+PLcom/android/server/net/NetworkStatsService;->internalGetSummaryForNetwork(Landroid/net/NetworkTemplate;IJJII)Landroid/net/NetworkStats;
HPLcom/android/server/net/NetworkStatsService;->isRateLimitedForPoll(I)Z
-PLcom/android/server/net/NetworkStatsService;->maybeUpgradeLegacyStatsLocked()V
+HSPLcom/android/server/net/NetworkStatsService;->maybeUpgradeLegacyStatsLocked()V
HPLcom/android/server/net/NetworkStatsService;->openSessionForUsageStats(ILjava/lang/String;)Landroid/net/INetworkStatsSession;
HPLcom/android/server/net/NetworkStatsService;->openSessionInternal(ILjava/lang/String;)Landroid/net/INetworkStatsSession;
PLcom/android/server/net/NetworkStatsService;->performPoll(I)V
PLcom/android/server/net/NetworkStatsService;->performPollLocked(I)V
PLcom/android/server/net/NetworkStatsService;->performSampleLocked()V
-PLcom/android/server/net/NetworkStatsService;->readNetworkStatsSummaryDev()Landroid/net/NetworkStats;
-PLcom/android/server/net/NetworkStatsService;->readNetworkStatsSummaryXt()Landroid/net/NetworkStats;
-HPLcom/android/server/net/NetworkStatsService;->readNetworkStatsUidDetail(I[Ljava/lang/String;I)Landroid/net/NetworkStats;
-PLcom/android/server/net/NetworkStatsService;->recordSnapshotLocked(J)V
-PLcom/android/server/net/NetworkStatsService;->registerGlobalAlert()V
-PLcom/android/server/net/NetworkStatsService;->registerLocalService()V
-PLcom/android/server/net/NetworkStatsService;->setHandler(Landroid/os/Handler;Landroid/os/Handler$Callback;)V
+HSPLcom/android/server/net/NetworkStatsService;->readNetworkStatsSummaryDev()Landroid/net/NetworkStats;
+HSPLcom/android/server/net/NetworkStatsService;->readNetworkStatsSummaryXt()Landroid/net/NetworkStats;
+HSPLcom/android/server/net/NetworkStatsService;->readNetworkStatsUidDetail(I[Ljava/lang/String;I)Landroid/net/NetworkStats;
+HSPLcom/android/server/net/NetworkStatsService;->recordSnapshotLocked(J)V
+HSPLcom/android/server/net/NetworkStatsService;->registerGlobalAlert()V
+HSPLcom/android/server/net/NetworkStatsService;->registerLocalService()V
+PLcom/android/server/net/NetworkStatsService;->resolveSubscriptionPlan(Landroid/net/NetworkTemplate;I)Landroid/telephony/SubscriptionPlan;
+HSPLcom/android/server/net/NetworkStatsService;->setHandler(Landroid/os/Handler;Landroid/os/Handler$Callback;)V
HPLcom/android/server/net/NetworkStatsService;->setUidForeground(IZ)V
-PLcom/android/server/net/NetworkStatsService;->systemReady()V
-PLcom/android/server/net/NetworkStatsService;->updateIfaces([Landroid/net/Network;[Landroid/net/NetworkState;Ljava/lang/String;)V
+HSPLcom/android/server/net/NetworkStatsService;->systemReady()V
+HPLcom/android/server/net/NetworkStatsService;->updateIfaces([Landroid/net/Network;[Landroid/net/NetworkState;Ljava/lang/String;)V
PLcom/android/server/net/NetworkStatsService;->updateIfacesLocked([Landroid/net/Network;[Landroid/net/NetworkState;)V
-PLcom/android/server/net/NetworkStatsService;->updatePersistThresholdsLocked()V
-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
-PLcom/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;-><clinit>()V
-PLcom/android/server/net/watchlist/NetworkWatchlistService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/net/watchlist/NetworkWatchlistService;->access$100(Lcom/android/server/net/watchlist/NetworkWatchlistService;)V
-PLcom/android/server/net/watchlist/NetworkWatchlistService;->access$200(Lcom/android/server/net/watchlist/NetworkWatchlistService;)V
+HSPLcom/android/server/net/NetworkStatsService;->updatePersistThresholdsLocked()V
+HSPLcom/android/server/net/watchlist/-$$Lambda$WatchlistLoggingHandler$GBD0dX6RhipHIkM0Z_B5jLlwfHQ;-><init>(Lcom/android/server/net/watchlist/WatchlistLoggingHandler;I)V
+HSPLcom/android/server/net/watchlist/-$$Lambda$WatchlistLoggingHandler$GBD0dX6RhipHIkM0Z_B5jLlwfHQ;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/net/watchlist/DigestUtils;->getSha256Hash(Ljava/io/File;)[B
+HSPLcom/android/server/net/watchlist/DigestUtils;->getSha256Hash(Ljava/io/InputStream;)[B
+HSPLcom/android/server/net/watchlist/NetworkWatchlistService$1;-><init>(Lcom/android/server/net/watchlist/NetworkWatchlistService;)V
+HPLcom/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
+HSPLcom/android/server/net/watchlist/NetworkWatchlistService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/net/watchlist/NetworkWatchlistService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/net/watchlist/NetworkWatchlistService$Lifecycle;->onStart()V
+HSPLcom/android/server/net/watchlist/NetworkWatchlistService;-><clinit>()V
+HSPLcom/android/server/net/watchlist/NetworkWatchlistService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/net/watchlist/NetworkWatchlistService;->access$100(Lcom/android/server/net/watchlist/NetworkWatchlistService;)V
+HSPLcom/android/server/net/watchlist/NetworkWatchlistService;->access$200(Lcom/android/server/net/watchlist/NetworkWatchlistService;)V
PLcom/android/server/net/watchlist/NetworkWatchlistService;->access$300(Lcom/android/server/net/watchlist/NetworkWatchlistService;)Z
-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;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/net/watchlist/NetworkWatchlistService;->enforceWatchlistLoggingPermission()V
+HSPLcom/android/server/net/watchlist/NetworkWatchlistService;->init()V
+HSPLcom/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/ReportWatchlistJobService;-><clinit>()V
+HSPLcom/android/server/net/watchlist/NetworkWatchlistService;->startWatchlistLogging()Z
+HSPLcom/android/server/net/watchlist/NetworkWatchlistService;->startWatchlistLoggingImpl()Z
+HPLcom/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;->createLongitudinalReportingConfig(Ljava/lang/String;)Landroid/privacy/internal/longitudinalreporting/LongitudinalReportingConfig;
+HPLcom/android/server/net/watchlist/PrivacyUtils;->createSecureDPEncoder([BLjava/lang/String;)Landroid/privacy/DifferentialPrivacyEncoder;
+PLcom/android/server/net/watchlist/ReportEncoder;->encodeWatchlistReport(Lcom/android/server/net/watchlist/WatchlistConfig;[BLjava/util/List;Lcom/android/server/net/watchlist/WatchlistReportDbHelper$AggregatedResult;)[B
+PLcom/android/server/net/watchlist/ReportEncoder;->serializeReport(Lcom/android/server/net/watchlist/WatchlistConfig;Ljava/util/Map;)[B
+HSPLcom/android/server/net/watchlist/ReportWatchlistJobService;-><clinit>()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/ReportWatchlistJobService;->schedule(Landroid/content/Context;)V
-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
+HSPLcom/android/server/net/watchlist/ReportWatchlistJobService;->schedule(Landroid/content/Context;)V
+HSPLcom/android/server/net/watchlist/WatchlistConfig;-><clinit>()V
+HSPLcom/android/server/net/watchlist/WatchlistConfig;-><init>()V
+HSPLcom/android/server/net/watchlist/WatchlistConfig;-><init>(Ljava/io/File;)V
PLcom/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;->reloadConfig()V
-PLcom/android/server/net/watchlist/WatchlistConfig;->removeTestModeConfig()V
-PLcom/android/server/net/watchlist/WatchlistLoggingHandler;-><clinit>()V
-PLcom/android/server/net/watchlist/WatchlistLoggingHandler;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->asyncNetworkEvent(Ljava/lang/String;[Ljava/lang/String;I)V
-PLcom/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
-PLcom/android/server/net/watchlist/WatchlistLoggingHandler;->handleMessage(Landroid/os/Message;)V
+PLcom/android/server/net/watchlist/WatchlistConfig;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/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;->isConfigSecure()Z
+HSPLcom/android/server/net/watchlist/WatchlistConfig;->reloadConfig()V
+HSPLcom/android/server/net/watchlist/WatchlistConfig;->removeTestModeConfig()V
+HSPLcom/android/server/net/watchlist/WatchlistLoggingHandler;-><clinit>()V
+HSPLcom/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
+HSPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->getAllDigestsForReport(Lcom/android/server/net/watchlist/WatchlistReportDbHelper$AggregatedResult;)Ljava/util/List;
+HPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->getAllSubDomains(Ljava/lang/String;)[Ljava/lang/String;
+HSPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->getDigestFromUid(I)[B
+HSPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->getLastMidnightTime()J
+HSPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->getMidnightTimestamp(I)J
+HSPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->getPrimaryUserId()I
+HSPLcom/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
+HSPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->lambda$getDigestFromUid$0$WatchlistLoggingHandler(ILjava/lang/Integer;)[B
+HSPLcom/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;-><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/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/-$$Lambda$NotificationManagerService$12gEiRp5yhg_vLn2NsMtnAkm3GI;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->shouldReportNetworkWatchlist(J)Z
+HSPLcom/android/server/net/watchlist/WatchlistLoggingHandler;->tryAggregateRecords(J)V
+HSPLcom/android/server/net/watchlist/WatchlistReportDbHelper$AggregatedResult;-><init>(Ljava/util/Set;Ljava/lang/String;Ljava/util/HashMap;)V
+HSPLcom/android/server/net/watchlist/WatchlistReportDbHelper;-><clinit>()V
+HSPLcom/android/server/net/watchlist/WatchlistReportDbHelper;-><init>(Landroid/content/Context;)V
+PLcom/android/server/net/watchlist/WatchlistReportDbHelper;->cleanup(J)Z
+HSPLcom/android/server/net/watchlist/WatchlistReportDbHelper;->getAggregatedRecords(J)Lcom/android/server/net/watchlist/WatchlistReportDbHelper$AggregatedResult;
+HSPLcom/android/server/net/watchlist/WatchlistReportDbHelper;->getInstance(Landroid/content/Context;)Lcom/android/server/net/watchlist/WatchlistReportDbHelper;
+HSPLcom/android/server/net/watchlist/WatchlistReportDbHelper;->getSystemWatchlistDbFile()Ljava/io/File;
+HSPLcom/android/server/net/watchlist/WatchlistSettings;-><clinit>()V
+HSPLcom/android/server/net/watchlist/WatchlistSettings;-><init>()V
+HSPLcom/android/server/net/watchlist/WatchlistSettings;-><init>(Ljava/io/File;)V
+HSPLcom/android/server/net/watchlist/WatchlistSettings;->getInstance()Lcom/android/server/net/watchlist/WatchlistSettings;
+PLcom/android/server/net/watchlist/WatchlistSettings;->getPrivacySecretKey()[B
+HSPLcom/android/server/net/watchlist/WatchlistSettings;->getSystemWatchlistFile()Ljava/io/File;
+HSPLcom/android/server/net/watchlist/WatchlistSettings;->parseSecretKey(Lorg/xmlpull/v1/XmlPullParser;)[B
+HSPLcom/android/server/net/watchlist/WatchlistSettings;->reloadSettings()V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$11$zVdn9N0ybkMxz8xM8Qa1AXowlic;-><init>(Lcom/android/server/notification/NotificationManagerService$11;Ljava/lang/String;II)V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$11$zVdn9N0ybkMxz8xM8Qa1AXowlic;->run()V
+HSPLcom/android/server/notification/-$$Lambda$NotificationManagerService$12gEiRp5yhg_vLn2NsMtnAkm3GI;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$12gEiRp5yhg_vLn2NsMtnAkm3GI;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
PLcom/android/server/notification/-$$Lambda$NotificationManagerService$14$hWnH6mjUAxwVmpU3QRoPHh5_FyI;-><init>(II)V
-PLcom/android/server/notification/-$$Lambda$NotificationManagerService$14$hWnH6mjUAxwVmpU3QRoPHh5_FyI;->apply(I)Z
+HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$14$hWnH6mjUAxwVmpU3QRoPHh5_FyI;->apply(I)Z
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$1IFJYiXNBcQVsabIke0xY_TgCZI;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/os/VibrationEffect;)V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$1IFJYiXNBcQVsabIke0xY_TgCZI;->run()V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$CancelNotificationRunnable$1i8BOFS2Ap_BvazcwqssFxW6U1U;-><clinit>()V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$CancelNotificationRunnable$1i8BOFS2Ap_BvazcwqssFxW6U1U;-><init>()V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$CancelNotificationRunnable$1i8BOFS2Ap_BvazcwqssFxW6U1U;->apply(I)Z
HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$FrOqX0VMAS0gs6vhrmVEabwpi2k;-><init>(Ljava/util/function/BiConsumer;Landroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$FrOqX0VMAS0gs6vhrmVEabwpi2k;->run()V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$Rqv2CeOOOVMkVDRSXa6GcHvi5Vc;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Ljava/lang/String;Landroid/app/Notification$Action;Z)V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$Rqv2CeOOOVMkVDRSXa6GcHvi5Vc;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$h7WPxGy6WExnaTHJZiTUqSURFAU;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Ljava/lang/String;ZZ)V
PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$h7WPxGy6WExnaTHJZiTUqSURFAU;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$hdUZ_hmwLutGkIKdq7dHKjQLP4E;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/util/ArrayList;)V
PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$hdUZ_hmwLutGkIKdq7dHKjQLP4E;->run()V
-PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$xFD5w0lXKCfWgU2f03eJAOPQABs;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;ZLcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$xFD5w0lXKCfWgU2f03eJAOPQABs;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$3bretMyG2YyNFKU5plLQgmxuGr0;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$xFD5w0lXKCfWgU2f03eJAOPQABs;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;ZLcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationAssistants$xFD5w0lXKCfWgU2f03eJAOPQABs;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$3bretMyG2YyNFKU5plLQgmxuGr0;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/NotificationRecord;)V
PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$3bretMyG2YyNFKU5plLQgmxuGr0;->run()V
HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$Srt8NNqA1xJUAp_7nDU6CBZJm_0;-><init>(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/-$$Lambda$NotificationManagerService$NotificationListeners$Srt8NNqA1xJUAp_7nDU6CBZJm_0;->run()V
-PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$T5BM1IF40aMGtqZZRr6BWGjzNxA;-><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/-$$Lambda$NotificationManagerService$NotificationListeners$T5BM1IF40aMGtqZZRr6BWGjzNxA;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
PLcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$T5BM1IF40aMGtqZZRr6BWGjzNxA;->run()V
HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$PostNotificationRunnable$9JuPmiaA-c5lGdegev6EaTigwWc;-><init>(Lcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/StatusBarNotification;)V
HPLcom/android/server/notification/-$$Lambda$NotificationManagerService$PostNotificationRunnable$9JuPmiaA-c5lGdegev6EaTigwWc;->run()V
PLcom/android/server/notification/-$$Lambda$NotificationManagerService$msGTh8UV2euOI6xhjY-rx_tZTLM;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/content/pm/UserInfo;)V
PLcom/android/server/notification/-$$Lambda$NotificationManagerService$msGTh8UV2euOI6xhjY-rx_tZTLM;->run()V
-PLcom/android/server/notification/-$$Lambda$NotificationRecord$XgkrZGcjOHPHem34oE9qLGy3siA;-><init>(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/-$$Lambda$NotificationRecord$XgkrZGcjOHPHem34oE9qLGy3siA;->accept(Ljava/lang/Object;)V
-PLcom/android/server/notification/-$$Lambda$SnoozeHelper$333G5Hgba3G7RU9lYp0HmgKJBvA;-><init>(JLorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/notification/-$$Lambda$SnoozeHelper$uY_yjjODxoDQVadkBTGNFqh7pco;-><init>(Lorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/notification/-$$Lambda$V4J7df5A6vhSIuw7Ym9xgkfahto;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/-$$Lambda$V4J7df5A6vhSIuw7Ym9xgkfahto;->test(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$qSGWKI1fXQ1cTJ2fD072f_33txY;-><init>(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/CharSequence;)V
+PLcom/android/server/notification/-$$Lambda$NotificationManagerService$qSGWKI1fXQ1cTJ2fD072f_33txY;->runOrThrow()V
+HPLcom/android/server/notification/-$$Lambda$NotificationRecord$XgkrZGcjOHPHem34oE9qLGy3siA;-><init>(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/-$$Lambda$NotificationRecord$XgkrZGcjOHPHem34oE9qLGy3siA;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/notification/-$$Lambda$SnoozeHelper$333G5Hgba3G7RU9lYp0HmgKJBvA;-><init>(JLorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/notification/-$$Lambda$SnoozeHelper$uY_yjjODxoDQVadkBTGNFqh7pco;-><init>(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/notification/-$$Lambda$V4J7df5A6vhSIuw7Ym9xgkfahto;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/notification/-$$Lambda$V4J7df5A6vhSIuw7Ym9xgkfahto;->test(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
PLcom/android/server/notification/AlertRateLimiter;-><init>()V
PLcom/android/server/notification/AlertRateLimiter;->shouldRateLimitAlert(J)Z
-PLcom/android/server/notification/BadgeExtractor;-><init>()V
-PLcom/android/server/notification/BadgeExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
+HSPLcom/android/server/notification/BadgeExtractor;-><init>()V
+HSPLcom/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;
-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;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
+HSPLcom/android/server/notification/BadgeExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
+HSPLcom/android/server/notification/BadgeExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
+HSPLcom/android/server/notification/BubbleExtractor;-><init>()V
+HSPLcom/android/server/notification/BubbleExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
HPLcom/android/server/notification/BubbleExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
-PLcom/android/server/notification/BubbleExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)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
+HSPLcom/android/server/notification/BubbleExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
+HSPLcom/android/server/notification/BubbleExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
+HSPLcom/android/server/notification/CalendarTracker$1;-><init>(Lcom/android/server/notification/CalendarTracker;Landroid/os/Handler;)V
PLcom/android/server/notification/CalendarTracker$1;->onChange(ZLandroid/net/Uri;)V
PLcom/android/server/notification/CalendarTracker$CheckEventResult;-><init>()V
-PLcom/android/server/notification/CalendarTracker;-><clinit>()V
-PLcom/android/server/notification/CalendarTracker;-><init>(Landroid/content/Context;Landroid/content/Context;)V
+HSPLcom/android/server/notification/CalendarTracker;-><clinit>()V
+HSPLcom/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;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
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;->meetsAttendee(Landroid/service/notification/ZenModeConfig$EventInfo;ILjava/lang/String;)Z
+HSPLcom/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$1;)V
-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
+HSPLcom/android/server/notification/ConditionProviders$ConditionRecord;-><init>(Landroid/net/Uri;Landroid/content/ComponentName;)V
+HSPLcom/android/server/notification/ConditionProviders$ConditionRecord;-><init>(Landroid/net/Uri;Landroid/content/ComponentName;Lcom/android/server/notification/ConditionProviders$1;)V
+PLcom/android/server/notification/ConditionProviders$ConditionRecord;->toString()Ljava/lang/String;
+HSPLcom/android/server/notification/ConditionProviders;-><init>(Landroid/content/Context;Lcom/android/server/notification/ManagedServices$UserProfiles;Landroid/content/pm/IPackageManager;)V
+HSPLcom/android/server/notification/ConditionProviders;->addSystemProvider(Lcom/android/server/notification/SystemConditionProviderService;)V
PLcom/android/server/notification/ConditionProviders;->asInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
PLcom/android/server/notification/ConditionProviders;->checkServiceToken(Landroid/service/notification/IConditionProvider;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
-PLcom/android/server/notification/ConditionProviders;->ensureRecordExists(Landroid/content/ComponentName;Landroid/net/Uri;Landroid/service/notification/IConditionProvider;)V
+PLcom/android/server/notification/ConditionProviders;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+HSPLcom/android/server/notification/ConditionProviders;->ensureRecordExists(Landroid/content/ComponentName;Landroid/net/Uri;Landroid/service/notification/IConditionProvider;)V
PLcom/android/server/notification/ConditionProviders;->findCondition(Landroid/content/ComponentName;Landroid/net/Uri;)Landroid/service/notification/Condition;
-PLcom/android/server/notification/ConditionProviders;->findConditionProvider(Landroid/content/ComponentName;)Landroid/service/notification/IConditionProvider;
-PLcom/android/server/notification/ConditionProviders;->getConfig()Lcom/android/server/notification/ManagedServices$Config;
-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;->isSystemProviderEnabled(Ljava/lang/String;)Z
+HSPLcom/android/server/notification/ConditionProviders;->findConditionProvider(Landroid/content/ComponentName;)Landroid/service/notification/IConditionProvider;
+HSPLcom/android/server/notification/ConditionProviders;->getConfig()Lcom/android/server/notification/ManagedServices$Config;
+HSPLcom/android/server/notification/ConditionProviders;->getRecordLocked(Landroid/net/Uri;Landroid/content/ComponentName;Z)Lcom/android/server/notification/ConditionProviders$ConditionRecord;
+HSPLcom/android/server/notification/ConditionProviders;->getRequiredPermission()Ljava/lang/String;
+HSPLcom/android/server/notification/ConditionProviders;->getSystemProviders()Ljava/lang/Iterable;
+HSPLcom/android/server/notification/ConditionProviders;->isSystemProviderEnabled(Ljava/lang/String;)Z
PLcom/android/server/notification/ConditionProviders;->isValidEntry(Ljava/lang/String;I)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
+HSPLcom/android/server/notification/ConditionProviders;->onBootPhaseAppsCanStart()V
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
+HSPLcom/android/server/notification/ConditionProviders;->onServiceAdded(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
PLcom/android/server/notification/ConditionProviders;->onServiceRemovedLocked(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;
+HSPLcom/android/server/notification/ConditionProviders;->provider(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/IConditionProvider;
PLcom/android/server/notification/ConditionProviders;->removeDuplicateConditions(Ljava/lang/String;[Landroid/service/notification/Condition;)[Landroid/service/notification/Condition;
-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
+HSPLcom/android/server/notification/ConditionProviders;->safeSet([Ljava/lang/Object;)Landroid/util/ArraySet;
+HSPLcom/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;->unsubscribeIfNecessary(Landroid/content/ComponentName;Landroid/net/Uri;)V
-PLcom/android/server/notification/ConditionProviders;->unsubscribeLocked(Lcom/android/server/notification/ConditionProviders$ConditionRecord;)V
-HPLcom/android/server/notification/ConditionProviders;->writeDefaults(Lorg/xmlpull/v1/XmlSerializer;)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$1;)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;->isValidConditionId(Landroid/net/Uri;)Z
-PLcom/android/server/notification/CountdownConditionProvider;->onBootComplete()V
+HSPLcom/android/server/notification/ConditionProviders;->writeDefaults(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/notification/CountdownConditionProvider$Receiver;-><init>(Lcom/android/server/notification/CountdownConditionProvider;)V
+HSPLcom/android/server/notification/CountdownConditionProvider$Receiver;-><init>(Lcom/android/server/notification/CountdownConditionProvider;Lcom/android/server/notification/CountdownConditionProvider$1;)V
+HSPLcom/android/server/notification/CountdownConditionProvider;-><clinit>()V
+HSPLcom/android/server/notification/CountdownConditionProvider;-><init>()V
+HSPLcom/android/server/notification/CountdownConditionProvider;->asInterface()Landroid/service/notification/IConditionProvider;
+HSPLcom/android/server/notification/CountdownConditionProvider;->attachBase(Landroid/content/Context;)V
+PLcom/android/server/notification/CountdownConditionProvider;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+HSPLcom/android/server/notification/CountdownConditionProvider;->getComponent()Landroid/content/ComponentName;
+HSPLcom/android/server/notification/CountdownConditionProvider;->isValidConditionId(Landroid/net/Uri;)Z
+HSPLcom/android/server/notification/CountdownConditionProvider;->onBootComplete()V
PLcom/android/server/notification/CountdownConditionProvider;->onConnected()V
-PLcom/android/server/notification/CriticalNotificationExtractor;-><init>()V
-PLcom/android/server/notification/CriticalNotificationExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
+PLcom/android/server/notification/CountdownConditionProvider;->tryParseDescription(Landroid/net/Uri;)Ljava/lang/String;
+HSPLcom/android/server/notification/CriticalNotificationExtractor;-><init>()V
+HSPLcom/android/server/notification/CriticalNotificationExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
HPLcom/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/EventConditionProvider$1;-><init>(Lcom/android/server/notification/EventConditionProvider;)V
-PLcom/android/server/notification/EventConditionProvider$2;-><init>(Lcom/android/server/notification/EventConditionProvider;)V
+HSPLcom/android/server/notification/CriticalNotificationExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
+HSPLcom/android/server/notification/CriticalNotificationExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
+HSPLcom/android/server/notification/CriticalNotificationExtractor;->supportsCriticalNotifications(Landroid/content/Context;)Z
+HSPLcom/android/server/notification/EventConditionProvider$1;-><init>(Lcom/android/server/notification/EventConditionProvider;)V
+HSPLcom/android/server/notification/EventConditionProvider$2;-><init>(Lcom/android/server/notification/EventConditionProvider;)V
PLcom/android/server/notification/EventConditionProvider$2;->onChanged()V
-PLcom/android/server/notification/EventConditionProvider$3;-><init>(Lcom/android/server/notification/EventConditionProvider;)V
+HSPLcom/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;-><clinit>()V
-PLcom/android/server/notification/EventConditionProvider;-><init>()V
-PLcom/android/server/notification/EventConditionProvider;->access$500(Lcom/android/server/notification/EventConditionProvider;)V
-PLcom/android/server/notification/EventConditionProvider;->asInterface()Landroid/service/notification/IConditionProvider;
-PLcom/android/server/notification/EventConditionProvider;->attachBase(Landroid/content/Context;)V
+HSPLcom/android/server/notification/EventConditionProvider$4;-><init>(Lcom/android/server/notification/EventConditionProvider;)V
+HSPLcom/android/server/notification/EventConditionProvider$4;->run()V
+HSPLcom/android/server/notification/EventConditionProvider;-><clinit>()V
+HSPLcom/android/server/notification/EventConditionProvider;-><init>()V
+HSPLcom/android/server/notification/EventConditionProvider;->access$500(Lcom/android/server/notification/EventConditionProvider;)V
+HSPLcom/android/server/notification/EventConditionProvider;->asInterface()Landroid/service/notification/IConditionProvider;
+HSPLcom/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;->evaluateSubscriptions()V
-PLcom/android/server/notification/EventConditionProvider;->evaluateSubscriptionsW()V
-PLcom/android/server/notification/EventConditionProvider;->getComponent()Landroid/content/ComponentName;
-PLcom/android/server/notification/EventConditionProvider;->getContextForUser(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/content/Context;
-PLcom/android/server/notification/EventConditionProvider;->isValidConditionId(Landroid/net/Uri;)Z
-PLcom/android/server/notification/EventConditionProvider;->onBootComplete()V
+PLcom/android/server/notification/EventConditionProvider;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+HSPLcom/android/server/notification/EventConditionProvider;->evaluateSubscriptions()V
+HSPLcom/android/server/notification/EventConditionProvider;->evaluateSubscriptionsW()V
+HSPLcom/android/server/notification/EventConditionProvider;->getComponent()Landroid/content/ComponentName;
+HSPLcom/android/server/notification/EventConditionProvider;->getContextForUser(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/content/Context;
+HSPLcom/android/server/notification/EventConditionProvider;->isValidConditionId(Landroid/net/Uri;)Z
+HSPLcom/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;->rescheduleAlarm(JJ)V
-PLcom/android/server/notification/EventConditionProvider;->setRegistered(Z)V
-PLcom/android/server/notification/GlobalSortKeyComparator;-><init>()V
+HSPLcom/android/server/notification/EventConditionProvider;->reloadTrackers()V
+HSPLcom/android/server/notification/EventConditionProvider;->rescheduleAlarm(JJ)V
+HSPLcom/android/server/notification/EventConditionProvider;->setRegistered(Z)V
+HSPLcom/android/server/notification/GlobalSortKeyComparator;-><init>()V
HPLcom/android/server/notification/GlobalSortKeyComparator;->compare(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)I
HPLcom/android/server/notification/GlobalSortKeyComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/notification/GroupHelper;-><clinit>()V
-PLcom/android/server/notification/GroupHelper;-><init>(ILcom/android/server/notification/GroupHelper$Callback;)V
+HSPLcom/android/server/notification/GroupHelper;-><clinit>()V
+HSPLcom/android/server/notification/GroupHelper;-><init>(ILcom/android/server/notification/GroupHelper$Callback;)V
HPLcom/android/server/notification/GroupHelper;->addToOngoingGroupCount(Landroid/service/notification/StatusBarNotification;Z)V
-PLcom/android/server/notification/GroupHelper;->generatePackageGroupKey(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/notification/GroupHelper;->adjustNotificationBundling(Ljava/util/List;Z)V
+HPLcom/android/server/notification/GroupHelper;->generatePackageGroupKey(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
PLcom/android/server/notification/GroupHelper;->maybeUngroup(Landroid/service/notification/StatusBarNotification;ZI)V
PLcom/android/server/notification/GroupHelper;->onNotificationPosted(Landroid/service/notification/StatusBarNotification;Z)V
PLcom/android/server/notification/GroupHelper;->onNotificationRemoved(Landroid/service/notification/StatusBarNotification;)V
HPLcom/android/server/notification/GroupHelper;->onNotificationUpdated(Landroid/service/notification/StatusBarNotification;Z)V
-PLcom/android/server/notification/ImportanceExtractor;-><init>()V
-PLcom/android/server/notification/ImportanceExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
+HSPLcom/android/server/notification/ImportanceExtractor;-><init>()V
+HSPLcom/android/server/notification/ImportanceExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
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
-PLcom/android/server/notification/ManagedServices$1;-><init>(Lcom/android/server/notification/ManagedServices;ILandroid/util/Pair;ZI)V
+HSPLcom/android/server/notification/ImportanceExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
+HSPLcom/android/server/notification/ImportanceExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
+PLcom/android/server/notification/ManagedServices$1$1;-><init>(Lcom/android/server/notification/ManagedServices$1;Landroid/content/ComponentName;)V
+PLcom/android/server/notification/ManagedServices$1$1;->run()V
+HSPLcom/android/server/notification/ManagedServices$1;-><init>(Lcom/android/server/notification/ManagedServices;ILandroid/util/Pair;ZI)V
+PLcom/android/server/notification/ManagedServices$1;->onBindingDied(Landroid/content/ComponentName;)V
+PLcom/android/server/notification/ManagedServices$1;->onNullBinding(Landroid/content/ComponentName;)V
PLcom/android/server/notification/ManagedServices$1;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/notification/ManagedServices$Config;-><init>()V
-PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;-><init>(Lcom/android/server/notification/ManagedServices;Landroid/os/IInterface;Landroid/content/ComponentName;IZLandroid/content/ServiceConnection;I)V
+PLcom/android/server/notification/ManagedServices$1;->onServiceDisconnected(Landroid/content/ComponentName;)V
+HSPLcom/android/server/notification/ManagedServices$Config;-><init>()V
+HSPLcom/android/server/notification/ManagedServices$ManagedServiceInfo;-><init>(Lcom/android/server/notification/ManagedServices;Landroid/os/IInterface;Landroid/content/ComponentName;IZLandroid/content/ServiceConnection;I)V
PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->binderDied()V
+PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JLcom/android/server/notification/ManagedServices;)V
HPLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->enabledAndUserMatches(I)Z
PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->getOwner()Lcom/android/server/notification/ManagedServices;
HPLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->hashCode()I
PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->isEnabledForCurrentProfiles()Z
+PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->isGuest(Lcom/android/server/notification/ManagedServices;)Z
HPLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->isPermittedForProfile(I)Z
PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->isSameUser(I)Z
-PLcom/android/server/notification/ManagedServices$UserProfiles;-><init>()V
-PLcom/android/server/notification/ManagedServices$UserProfiles;->getCurrentProfileIds()Landroid/util/IntArray;
+PLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->supportsProfiles()Z
+HPLcom/android/server/notification/ManagedServices$ManagedServiceInfo;->toString()Ljava/lang/String;
+HSPLcom/android/server/notification/ManagedServices$UserProfiles;-><init>()V
+HSPLcom/android/server/notification/ManagedServices$UserProfiles;->getCurrentProfileIds()Landroid/util/IntArray;
HPLcom/android/server/notification/ManagedServices$UserProfiles;->isCurrentProfile(I)Z
HPLcom/android/server/notification/ManagedServices$UserProfiles;->isManagedProfile(I)Z
-PLcom/android/server/notification/ManagedServices$UserProfiles;->updateCache(Landroid/content/Context;)V
-PLcom/android/server/notification/ManagedServices;-><init>(Landroid/content/Context;Ljava/lang/Object;Lcom/android/server/notification/ManagedServices$UserProfiles;Landroid/content/pm/IPackageManager;)V
+HSPLcom/android/server/notification/ManagedServices$UserProfiles;->updateCache(Landroid/content/Context;)V
+HSPLcom/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;->access$000(Lcom/android/server/notification/ManagedServices;)Ljava/lang/String;
PLcom/android/server/notification/ManagedServices;->access$100(Lcom/android/server/notification/ManagedServices;)Landroid/util/ArraySet;
PLcom/android/server/notification/ManagedServices;->access$1000(Lcom/android/server/notification/ManagedServices;)Landroid/util/ArraySet;
PLcom/android/server/notification/ManagedServices;->access$200(Lcom/android/server/notification/ManagedServices;Landroid/os/IInterface;Landroid/content/ComponentName;IZLandroid/content/ServiceConnection;I)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
PLcom/android/server/notification/ManagedServices;->access$300(Lcom/android/server/notification/ManagedServices;)Ljava/util/ArrayList;
-PLcom/android/server/notification/ManagedServices;->addApprovedList(Ljava/lang/String;IZ)V
-PLcom/android/server/notification/ManagedServices;->bindToServices(Landroid/util/SparseArray;)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;->getAllowedComponents(I)Ljava/util/List;
-PLcom/android/server/notification/ManagedServices;->getAllowedComponents(Landroid/util/IntArray;)Landroid/util/SparseArray;
-PLcom/android/server/notification/ManagedServices;->getAllowedPackages()Ljava/util/Set;
-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;
-PLcom/android/server/notification/ManagedServices;->getRemovableConnectedServices()Ljava/util/Set;
-PLcom/android/server/notification/ManagedServices;->getServiceFromTokenLocked(Landroid/os/IInterface;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
-PLcom/android/server/notification/ManagedServices;->getServices()Ljava/util/List;
+PLcom/android/server/notification/ManagedServices;->access$800(Lcom/android/server/notification/ManagedServices;)Lcom/android/server/notification/ManagedServices$UserProfiles;
+HSPLcom/android/server/notification/ManagedServices;->addApprovedList(Ljava/lang/String;IZ)V
+HSPLcom/android/server/notification/ManagedServices;->bindToServices(Landroid/util/SparseArray;)V
+HSPLcom/android/server/notification/ManagedServices;->checkNotNull(Landroid/os/IInterface;)V
+HSPLcom/android/server/notification/ManagedServices;->checkServiceTokenLocked(Landroid/os/IInterface;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
+PLcom/android/server/notification/ManagedServices;->dump(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+PLcom/android/server/notification/ManagedServices;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+HSPLcom/android/server/notification/ManagedServices;->getAllowedComponents(I)Ljava/util/List;
+HSPLcom/android/server/notification/ManagedServices;->getAllowedComponents(Landroid/util/IntArray;)Landroid/util/SparseArray;
+HSPLcom/android/server/notification/ManagedServices;->getAllowedPackages()Ljava/util/Set;
+HSPLcom/android/server/notification/ManagedServices;->getApprovedValue(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/notification/ManagedServices;->getBindFlags()I
+HSPLcom/android/server/notification/ManagedServices;->getCaption()Ljava/lang/String;
+HSPLcom/android/server/notification/ManagedServices;->getDefaultComponents()Landroid/util/ArraySet;
+HSPLcom/android/server/notification/ManagedServices;->getPackageName(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/notification/ManagedServices;->getRemovableConnectedServices()Ljava/util/Set;
+HSPLcom/android/server/notification/ManagedServices;->getServiceFromTokenLocked(Landroid/os/IInterface;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
+HSPLcom/android/server/notification/ManagedServices;->getServices()Ljava/util/List;
+PLcom/android/server/notification/ManagedServices;->isComponentEnabledForCurrentProfiles(Landroid/content/ComponentName;)Z
HPLcom/android/server/notification/ManagedServices;->isPackageAllowed(Ljava/lang/String;I)Z
-PLcom/android/server/notification/ManagedServices;->isPackageOrComponentAllowed(Ljava/lang/String;I)Z
+HSPLcom/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;->isValidEntry(Ljava/lang/String;I)Z
-PLcom/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;I)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
-PLcom/android/server/notification/ManagedServices;->onBootPhaseAppsCanStart()V
-PLcom/android/server/notification/ManagedServices;->onPackagesChanged(Z[Ljava/lang/String;[I)V
+HSPLcom/android/server/notification/ManagedServices;->loadComponentNamesFromValues(Landroid/util/ArraySet;I)Landroid/util/ArraySet;
+HSPLcom/android/server/notification/ManagedServices;->newServiceInfo(Landroid/os/IInterface;Landroid/content/ComponentName;IZLandroid/content/ServiceConnection;I)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
+HSPLcom/android/server/notification/ManagedServices;->onBootPhaseAppsCanStart()V
+HPLcom/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
-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(Lorg/xmlpull/v1/XmlPullParser;)V
-PLcom/android/server/notification/ManagedServices;->readExtraAttributes(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;I)V
-PLcom/android/server/notification/ManagedServices;->readXml(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/internal/util/function/TriPredicate;ZI)V
-PLcom/android/server/notification/ManagedServices;->rebindServices(ZI)V
+HSPLcom/android/server/notification/ManagedServices;->populateComponentsToBind(Landroid/util/SparseArray;Landroid/util/IntArray;Landroid/util/SparseArray;)V
+HSPLcom/android/server/notification/ManagedServices;->populateComponentsToUnbind(ZLjava/util/Set;Landroid/util/SparseArray;Landroid/util/SparseArray;)V
+HSPLcom/android/server/notification/ManagedServices;->queryPackageForServices(Ljava/lang/String;I)Ljava/util/Set;
+HSPLcom/android/server/notification/ManagedServices;->queryPackageForServices(Ljava/lang/String;II)Landroid/util/ArraySet;
+HSPLcom/android/server/notification/ManagedServices;->readDefaults(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/server/notification/ManagedServices;->readExtraAttributes(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;I)V
+HSPLcom/android/server/notification/ManagedServices;->readXml(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/internal/util/function/TriPredicate;ZI)V
+HSPLcom/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;->registerService(Landroid/content/ComponentName;I)V
-PLcom/android/server/notification/ManagedServices;->registerService(Landroid/os/IInterface;Landroid/content/ComponentName;I)V
-PLcom/android/server/notification/ManagedServices;->registerServiceImpl(Landroid/os/IInterface;Landroid/content/ComponentName;I)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
-PLcom/android/server/notification/ManagedServices;->registerServiceLocked(Landroid/content/ComponentName;IZ)V
+HSPLcom/android/server/notification/ManagedServices;->registerService(Landroid/content/ComponentName;I)V
+HSPLcom/android/server/notification/ManagedServices;->registerService(Landroid/os/IInterface;Landroid/content/ComponentName;I)V
+HSPLcom/android/server/notification/ManagedServices;->registerServiceImpl(Landroid/os/IInterface;Landroid/content/ComponentName;I)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
+HSPLcom/android/server/notification/ManagedServices;->registerServiceImpl(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
+HSPLcom/android/server/notification/ManagedServices;->registerServiceLocked(Landroid/content/ComponentName;I)V
+HSPLcom/android/server/notification/ManagedServices;->registerServiceLocked(Landroid/content/ComponentName;IZ)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;->setComponentState(Landroid/content/ComponentName;Z)V
-PLcom/android/server/notification/ManagedServices;->setPackageOrComponentEnabled(Ljava/lang/String;IZZ)V
+HSPLcom/android/server/notification/ManagedServices;->setPackageOrComponentEnabled(Ljava/lang/String;IZZ)V
PLcom/android/server/notification/ManagedServices;->trimApprovedListsAccordingToInstalledServices(I)V
-PLcom/android/server/notification/ManagedServices;->unbindFromServices(Landroid/util/SparseArray;)V
+HSPLcom/android/server/notification/ManagedServices;->unbindFromServices(Landroid/util/SparseArray;)V
PLcom/android/server/notification/ManagedServices;->unbindService(Landroid/content/ServiceConnection;Landroid/content/ComponentName;I)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(Lorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/notification/ManagedServices;->writeExtraAttributes(Lorg/xmlpull/v1/XmlSerializer;I)V
-PLcom/android/server/notification/ManagedServices;->writeExtraXmlTags(Lorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/notification/ManagedServices;->writeXml(Lorg/xmlpull/v1/XmlSerializer;ZI)V
-PLcom/android/server/notification/NotificationAdjustmentExtractor;-><init>()V
-PLcom/android/server/notification/NotificationAdjustmentExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
+HSPLcom/android/server/notification/ManagedServices;->writeDefaults(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/notification/ManagedServices;->writeExtraAttributes(Lorg/xmlpull/v1/XmlSerializer;I)V
+HSPLcom/android/server/notification/ManagedServices;->writeExtraXmlTags(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/notification/ManagedServices;->writeXml(Lorg/xmlpull/v1/XmlSerializer;ZI)V
+HSPLcom/android/server/notification/NotificationAdjustmentExtractor;-><init>()V
+HSPLcom/android/server/notification/NotificationAdjustmentExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
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;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
-PLcom/android/server/notification/NotificationChannelExtractor;-><init>()V
-PLcom/android/server/notification/NotificationChannelExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
+HSPLcom/android/server/notification/NotificationAdjustmentExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
+HSPLcom/android/server/notification/NotificationAdjustmentExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
+HSPLcom/android/server/notification/NotificationChannelExtractor;-><init>()V
+HSPLcom/android/server/notification/NotificationChannelExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
HPLcom/android/server/notification/NotificationChannelExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
-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/NotificationComparator$1;-><init>(Lcom/android/server/notification/NotificationComparator;)V
-PLcom/android/server/notification/NotificationComparator;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/notification/NotificationChannelExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
+HSPLcom/android/server/notification/NotificationChannelExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
+HSPLcom/android/server/notification/NotificationComparator$1;-><init>(Lcom/android/server/notification/NotificationComparator;)V
+HSPLcom/android/server/notification/NotificationComparator;-><init>(Landroid/content/Context;)V
HPLcom/android/server/notification/NotificationComparator;->compare(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)I
HPLcom/android/server/notification/NotificationComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-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;->update(Landroid/net/Uri;I)V
-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;->access$000(Lcom/android/server/notification/NotificationHistoryManager;)Landroid/content/Context;
-PLcom/android/server/notification/NotificationHistoryManager;->access$100(Lcom/android/server/notification/NotificationHistoryManager;)Ljava/lang/Object;
-PLcom/android/server/notification/NotificationHistoryManager;->access$200(Lcom/android/server/notification/NotificationHistoryManager;)Landroid/os/UserManager;
+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;->isOngoing(Lcom/android/server/notification/NotificationRecord;)Z
+HSPLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;-><init>(Lcom/android/server/notification/NotificationHistoryManager;Landroid/os/Handler;)V
+HSPLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;->observe()V
+HSPLcom/android/server/notification/NotificationHistoryManager$SettingsObserver;->update(Landroid/net/Uri;I)V
+HSPLcom/android/server/notification/NotificationHistoryManager;-><clinit>()V
+HSPLcom/android/server/notification/NotificationHistoryManager;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/notification/NotificationHistoryManager;->access$000(Lcom/android/server/notification/NotificationHistoryManager;)Landroid/content/Context;
+HSPLcom/android/server/notification/NotificationHistoryManager;->access$100(Lcom/android/server/notification/NotificationHistoryManager;)Ljava/lang/Object;
+HSPLcom/android/server/notification/NotificationHistoryManager;->access$200(Lcom/android/server/notification/NotificationHistoryManager;)Landroid/os/UserManager;
HPLcom/android/server/notification/NotificationHistoryManager;->addNotification(Landroid/app/NotificationHistory$HistoricalNotification;)V
-HPLcom/android/server/notification/NotificationHistoryManager;->getUserHistoryAndInitializeIfNeededLocked(I)Lcom/android/server/notification/NotificationHistoryDatabase;
-PLcom/android/server/notification/NotificationHistoryManager;->onBootPhaseAppsCanStart()V
-PLcom/android/server/notification/NotificationHistoryManager;->onHistoryEnabledChanged(IZ)V
+HSPLcom/android/server/notification/NotificationHistoryManager;->getUserHistoryAndInitializeIfNeededLocked(I)Lcom/android/server/notification/NotificationHistoryDatabase;
+HSPLcom/android/server/notification/NotificationHistoryManager;->onBootPhaseAppsCanStart()V
+HSPLcom/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
+HSPLcom/android/server/notification/NotificationIntrusivenessExtractor;-><clinit>()V
+HSPLcom/android/server/notification/NotificationIntrusivenessExtractor;-><init>()V
+HSPLcom/android/server/notification/NotificationIntrusivenessExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
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
+HSPLcom/android/server/notification/NotificationIntrusivenessExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
+HSPLcom/android/server/notification/NotificationIntrusivenessExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
PLcom/android/server/notification/NotificationManagerService$10$1;-><init>(Lcom/android/server/notification/NotificationManagerService$10;Ljava/lang/String;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;[Landroid/service/notification/Condition;)V
PLcom/android/server/notification/NotificationManagerService$10$1;->run()V
-PLcom/android/server/notification/NotificationManagerService$10;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$10;->addAutomaticZenRule(Landroid/app/AutomaticZenRule;)Ljava/lang/String;
-PLcom/android/server/notification/NotificationManagerService$10;->applyAdjustmentsFromAssistant(Landroid/service/notification/INotificationListener;Ljava/util/List;)V
-PLcom/android/server/notification/NotificationManagerService$10;->applyEnqueuedAdjustmentFromAssistant(Landroid/service/notification/INotificationListener;Landroid/service/notification/Adjustment;)V
-PLcom/android/server/notification/NotificationManagerService$10;->areNotificationsEnabled(Ljava/lang/String;)Z
-PLcom/android/server/notification/NotificationManagerService$10;->areNotificationsEnabledForPackage(Ljava/lang/String;I)Z
-PLcom/android/server/notification/NotificationManagerService$10;->canNotifyAsPackage(Ljava/lang/String;Ljava/lang/String;I)Z
+HSPLcom/android/server/notification/NotificationManagerService$10;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+HPLcom/android/server/notification/NotificationManagerService$10;->applyAdjustmentsFromAssistant(Landroid/service/notification/INotificationListener;Ljava/util/List;)V
+HPLcom/android/server/notification/NotificationManagerService$10;->applyEnqueuedAdjustmentFromAssistant(Landroid/service/notification/INotificationListener;Landroid/service/notification/Adjustment;)V
+HPLcom/android/server/notification/NotificationManagerService$10;->areNotificationsEnabled(Ljava/lang/String;)Z
+HPLcom/android/server/notification/NotificationManagerService$10;->areNotificationsEnabledForPackage(Ljava/lang/String;I)Z
+HSPLcom/android/server/notification/NotificationManagerService$10;->canNotifyAsPackage(Ljava/lang/String;Ljava/lang/String;I)Z
PLcom/android/server/notification/NotificationManagerService$10;->cancelAllNotifications(Ljava/lang/String;I)V
HPLcom/android/server/notification/NotificationManagerService$10;->cancelNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
PLcom/android/server/notification/NotificationManagerService$10;->checkPackagePolicyAccess(Ljava/lang/String;)Z
PLcom/android/server/notification/NotificationManagerService$10;->checkPolicyAccess(Ljava/lang/String;)Z
PLcom/android/server/notification/NotificationManagerService$10;->createNotificationChannelGroups(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
-PLcom/android/server/notification/NotificationManagerService$10;->createNotificationChannels(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
-PLcom/android/server/notification/NotificationManagerService$10;->createNotificationChannelsForPackage(Ljava/lang/String;ILandroid/content/pm/ParceledListSlice;)V
-PLcom/android/server/notification/NotificationManagerService$10;->createNotificationChannelsImpl(Ljava/lang/String;ILandroid/content/pm/ParceledListSlice;)V
-PLcom/android/server/notification/NotificationManagerService$10;->deleteNotificationChannel(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/notification/NotificationManagerService$10;->createNotificationChannels(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
+HSPLcom/android/server/notification/NotificationManagerService$10;->createNotificationChannelsImpl(Ljava/lang/String;ILandroid/content/pm/ParceledListSlice;)V
+HSPLcom/android/server/notification/NotificationManagerService$10;->deleteNotificationChannel(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$10;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/notification/NotificationManagerService$10;->enforcePolicyAccess(ILjava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService$10;->enforceSystemOrSystemUI(Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService$10;->enforceSystemOrSystemUIOrSamePackage(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService$10;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;I)V
+HSPLcom/android/server/notification/NotificationManagerService$10;->enforceSystemOrSystemUI(Ljava/lang/String;)V
+HPLcom/android/server/notification/NotificationManagerService$10;->enforceSystemOrSystemUIOrSamePackage(Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/notification/NotificationManagerService$10;->enqueueNotificationWithTag(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/app/Notification;I)V
PLcom/android/server/notification/NotificationManagerService$10;->enqueueTextToast(Ljava/lang/String;Landroid/app/ITransientNotification;II)V
PLcom/android/server/notification/NotificationManagerService$10;->enqueueToast(Ljava/lang/String;Landroid/app/ITransientNotification;IIZ)V
PLcom/android/server/notification/NotificationManagerService$10;->finishToken(Ljava/lang/String;Landroid/app/ITransientNotification;)V
@@ -10411,235 +12480,272 @@ HPLcom/android/server/notification/NotificationManagerService$10;->getAppActiveN
PLcom/android/server/notification/NotificationManagerService$10;->getAppsBypassingDndCount(I)I
PLcom/android/server/notification/NotificationManagerService$10;->getAutomaticZenRule(Ljava/lang/String;)Landroid/app/AutomaticZenRule;
PLcom/android/server/notification/NotificationManagerService$10;->getBackupPayload(I)[B
-PLcom/android/server/notification/NotificationManagerService$10;->getConsolidatedNotificationPolicy()Landroid/app/NotificationManager$Policy;
+HSPLcom/android/server/notification/NotificationManagerService$10;->getConsolidatedNotificationPolicy()Landroid/app/NotificationManager$Policy;
PLcom/android/server/notification/NotificationManagerService$10;->getEffectsSuppressor()Landroid/content/ComponentName;
-PLcom/android/server/notification/NotificationManagerService$10;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;
-PLcom/android/server/notification/NotificationManagerService$10;->getNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannelGroup;
-PLcom/android/server/notification/NotificationManagerService$10;->getNotificationChannelGroups(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/server/notification/NotificationManagerService$10;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannel;
+HPLcom/android/server/notification/NotificationManagerService$10;->getNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;)Landroid/app/NotificationChannelGroup;
+HPLcom/android/server/notification/NotificationManagerService$10;->getNotificationChannelGroups(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/notification/NotificationManagerService$10;->getNotificationChannels(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/notification/NotificationManagerService$10;->getNotificationPolicy(Ljava/lang/String;)Landroid/app/NotificationManager$Policy;
PLcom/android/server/notification/NotificationManagerService$10;->getPrivateNotificationsAllowed()Z
-PLcom/android/server/notification/NotificationManagerService$10;->getZenMode()I
-PLcom/android/server/notification/NotificationManagerService$10;->getZenModeConfig()Landroid/service/notification/ZenModeConfig;
+HSPLcom/android/server/notification/NotificationManagerService$10;->getZenMode()I
+HSPLcom/android/server/notification/NotificationManagerService$10;->getZenModeConfig()Landroid/service/notification/ZenModeConfig;
PLcom/android/server/notification/NotificationManagerService$10;->getZenRules()Ljava/util/List;
PLcom/android/server/notification/NotificationManagerService$10;->isNotificationPolicyAccessGranted(Ljava/lang/String;)Z
PLcom/android/server/notification/NotificationManagerService$10;->isPackagePaused(Ljava/lang/String;)Z
PLcom/android/server/notification/NotificationManagerService$10;->notifyConditions(Ljava/lang/String;Landroid/service/notification/IConditionProvider;[Landroid/service/notification/Condition;)V
PLcom/android/server/notification/NotificationManagerService$10;->registerListener(Landroid/service/notification/INotificationListener;Landroid/content/ComponentName;I)V
-PLcom/android/server/notification/NotificationManagerService$10;->removeAutomaticZenRule(Ljava/lang/String;)Z
+PLcom/android/server/notification/NotificationManagerService$10;->requestBindListener(Landroid/content/ComponentName;)V
PLcom/android/server/notification/NotificationManagerService$10;->requestBindProvider(Landroid/content/ComponentName;)V
PLcom/android/server/notification/NotificationManagerService$10;->requestUnbindListener(Landroid/service/notification/INotificationListener;)V
PLcom/android/server/notification/NotificationManagerService$10;->requestUnbindProvider(Landroid/service/notification/IConditionProvider;)V
HPLcom/android/server/notification/NotificationManagerService$10;->sanitizeSbn(Ljava/lang/String;ILandroid/service/notification/StatusBarNotification;)Landroid/service/notification/StatusBarNotification;
-PLcom/android/server/notification/NotificationManagerService$10;->setNotificationsShownFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;)V
+HPLcom/android/server/notification/NotificationManagerService$10;->setNotificationsShownFromListener(Landroid/service/notification/INotificationListener;[Ljava/lang/String;)V
PLcom/android/server/notification/NotificationManagerService$10;->setPrivateNotificationsAllowed(Z)V
+PLcom/android/server/notification/NotificationManagerService$10;->setZenMode(ILandroid/net/Uri;Ljava/lang/String;)V
PLcom/android/server/notification/NotificationManagerService$10;->shouldHideSilentStatusIcons(Ljava/lang/String;)Z
PLcom/android/server/notification/NotificationManagerService$10;->silenceNotificationSound()V
PLcom/android/server/notification/NotificationManagerService$10;->updateAutomaticZenRule(Ljava/lang/String;Landroid/app/AutomaticZenRule;)Z
-PLcom/android/server/notification/NotificationManagerService$11;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$13;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)V
+HSPLcom/android/server/notification/NotificationManagerService$11;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/NotificationManagerService$11;->lambda$removeForegroundServiceFlagFromNotification$0$NotificationManagerService$11(Ljava/lang/String;II)V
+HPLcom/android/server/notification/NotificationManagerService$13;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)V
PLcom/android/server/notification/NotificationManagerService$13;->run()V
-PLcom/android/server/notification/NotificationManagerService$14;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;IILjava/lang/String;IIIIZLjava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService$14;->lambda$run$0(III)Z
+HSPLcom/android/server/notification/NotificationManagerService$14;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;IILjava/lang/String;IIIIZLjava/lang/String;)V
PLcom/android/server/notification/NotificationManagerService$14;->run()V
-PLcom/android/server/notification/NotificationManagerService$16;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$1;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/notification/NotificationManagerService$16;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/notification/NotificationManagerService$1;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
PLcom/android/server/notification/NotificationManagerService$1;->clearEffects()V
-PLcom/android/server/notification/NotificationManagerService$1;->clearInlineReplyUriPermissions(Ljava/lang/String;I)V
-PLcom/android/server/notification/NotificationManagerService$1;->onNotificationExpansionChanged(Ljava/lang/String;ZZI)V
+HPLcom/android/server/notification/NotificationManagerService$1;->clearInlineReplyUriPermissions(Ljava/lang/String;I)V
+PLcom/android/server/notification/NotificationManagerService$1;->onNotificationActionClick(IILjava/lang/String;ILandroid/app/Notification$Action;Lcom/android/internal/statusbar/NotificationVisibility;Z)V
+PLcom/android/server/notification/NotificationManagerService$1;->onNotificationClear(IILjava/lang/String;Ljava/lang/String;IILjava/lang/String;IILcom/android/internal/statusbar/NotificationVisibility;)V
+PLcom/android/server/notification/NotificationManagerService$1;->onNotificationClick(IILjava/lang/String;Lcom/android/internal/statusbar/NotificationVisibility;)V
+HPLcom/android/server/notification/NotificationManagerService$1;->onNotificationExpansionChanged(Ljava/lang/String;ZZI)V
+PLcom/android/server/notification/NotificationManagerService$1;->onNotificationSmartSuggestionsAdded(Ljava/lang/String;IIZZ)V
HPLcom/android/server/notification/NotificationManagerService$1;->onNotificationVisibilityChanged([Lcom/android/internal/statusbar/NotificationVisibility;[Lcom/android/internal/statusbar/NotificationVisibility;)V
PLcom/android/server/notification/NotificationManagerService$1;->onPanelHidden()V
PLcom/android/server/notification/NotificationManagerService$1;->onPanelRevealed(ZI)V
PLcom/android/server/notification/NotificationManagerService$1;->onSetDisabled(I)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
+HSPLcom/android/server/notification/NotificationManagerService$2;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/notification/NotificationManagerService$3;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/notification/NotificationManagerService$4;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/NotificationManagerService$4;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/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
+HSPLcom/android/server/notification/NotificationManagerService$6;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
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;->onAutomaticRuleStatusChanged(ILjava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/notification/NotificationManagerService$7;->onConfigChanged()V
-PLcom/android/server/notification/NotificationManagerService$7;->onPolicyChanged()V
+HSPLcom/android/server/notification/NotificationManagerService$7;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/notification/NotificationManagerService$7;->onConfigChanged()V
+HSPLcom/android/server/notification/NotificationManagerService$7;->onPolicyChanged()V
PLcom/android/server/notification/NotificationManagerService$7;->onZenModeChanged()V
-PLcom/android/server/notification/NotificationManagerService$8;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService$9;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/notification/NotificationManagerService$8;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/notification/NotificationManagerService$9;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+PLcom/android/server/notification/NotificationManagerService$9;->addAutoGroup(Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService$9;->removeAutoGroup(Ljava/lang/String;)V
PLcom/android/server/notification/NotificationManagerService$9;->removeAutoGroupSummary(ILjava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService$9;->updateAutogroupSummary(Ljava/lang/String;Z)V
-PLcom/android/server/notification/NotificationManagerService$Archive;-><init>(I)V
-PLcom/android/server/notification/NotificationManagerService$CancelNotificationRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;IILjava/lang/String;Ljava/lang/String;IIIZIIIILcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
+HPLcom/android/server/notification/NotificationManagerService$9;->updateAutogroupSummary(Ljava/lang/String;Z)V
+HSPLcom/android/server/notification/NotificationManagerService$Archive;-><init>(I)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;)V
+PLcom/android/server/notification/NotificationManagerService$CancelNotificationRunnable;->lambda$run$0(I)Z
HPLcom/android/server/notification/NotificationManagerService$CancelNotificationRunnable;->run()V
+PLcom/android/server/notification/NotificationManagerService$DumpFilter;-><init>()V
+PLcom/android/server/notification/NotificationManagerService$DumpFilter;->matches(Landroid/content/ComponentName;)Z
+PLcom/android/server/notification/NotificationManagerService$DumpFilter;->matches(Landroid/service/notification/StatusBarNotification;)Z
+HPLcom/android/server/notification/NotificationManagerService$DumpFilter;->matches(Ljava/lang/String;)Z
+PLcom/android/server/notification/NotificationManagerService$DumpFilter;->parseFromArguments([Ljava/lang/String;)Lcom/android/server/notification/NotificationManagerService$DumpFilter;
HPLcom/android/server/notification/NotificationManagerService$EnqueueNotificationRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;ILcom/android/server/notification/NotificationRecord;Z)V
PLcom/android/server/notification/NotificationManagerService$EnqueueNotificationRunnable;->run()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;->access$7700(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/NotificationRecord;)V
+HSPLcom/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;->access$7800(Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;Lcom/android/server/notification/NotificationRecord;)V
PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->asInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
-PLcom/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;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+HSPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->getConfig()Lcom/android/server/notification/ManagedServices$Config;
+HSPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->getRequiredPermission()Ljava/lang/String;
+HSPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->hasUserSet(I)Z
PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->isAdjustmentAllowed(Ljava/lang/String;)Z
PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->isEnabled()Z
PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->isVerboseLogEnabled()Z
+PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$notifyAssistantActionClicked$7$NotificationManagerService$NotificationAssistants(Ljava/lang/String;Landroid/app/Notification$Action;ZLandroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$notifyAssistantExpansionChangedLocked$4$NotificationManagerService$NotificationAssistants(Ljava/lang/String;ZZLandroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$notifyAssistantLocked$9(Ljava/util/function/BiConsumer;Landroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
HPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$onNotificationEnqueuedLocked$3$NotificationManagerService$NotificationAssistants(ZLcom/android/server/notification/NotificationRecord;Landroid/service/notification/INotificationListener;Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;)V
PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->lambda$onNotificationsSeenLocked$2$NotificationManagerService$NotificationAssistants(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/util/ArrayList;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->notifyAssistantLocked(Landroid/service/notification/StatusBarNotification;ZLjava/util/function/BiConsumer;)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->notifyAssistantLocked(Landroid/service/notification/StatusBarNotification;ZLjava/util/function/BiConsumer;)V
PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->notifySeen(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/util/ArrayList;)V
PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->onNotificationEnqueuedLocked(Lcom/android/server/notification/NotificationRecord;)V
PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->onNotificationsSeenLocked(Ljava/util/ArrayList;)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;->readExtraAttributes(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;I)V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->readExtraTag(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->resetDefaultAssistantsIfNecessary()V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->setPackageOrComponentEnabled(Ljava/lang/String;IZZ)V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->setUserSet(IZ)V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->writeExtraAttributes(Lorg/xmlpull/v1/XmlSerializer;I)V
-PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->writeExtraXmlTags(Lorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners$2;-><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$2;->run()V
+PLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->onUserUnlocked(I)V
+HSPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->readExtraAttributes(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;I)V
+HSPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->readExtraTag(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->resetDefaultAssistantsIfNecessary()V
+HSPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->setPackageOrComponentEnabled(Ljava/lang/String;IZZ)V
+HSPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->setUserSet(IZ)V
+HSPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->writeExtraAttributes(Lorg/xmlpull/v1/XmlSerializer;I)V
+HSPLcom/android/server/notification/NotificationManagerService$NotificationAssistants;->writeExtraXmlTags(Lorg/xmlpull/v1/XmlSerializer;)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$2;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$2;->run()V
HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$3;-><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$3;->run()V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners$4;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners$4;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
PLcom/android/server/notification/NotificationManagerService$NotificationListeners$4;->run()V
PLcom/android/server/notification/NotificationManagerService$NotificationListeners$6;-><init>(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
PLcom/android/server/notification/NotificationManagerService$NotificationListeners$6;->run()V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/content/pm/IPackageManager;)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$9700(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V
+HSPLcom/android/server/notification/NotificationManagerService$NotificationListeners;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/content/pm/IPackageManager;)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$10100(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
+PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->access$9800(Lcom/android/server/notification/NotificationManagerService$NotificationListeners;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)V
PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->asInterface(Landroid/os/IBinder;)Landroid/os/IInterface;
PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->checkType(Landroid/os/IInterface;)Z
PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getBindFlags()I
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getConfig()Lcom/android/server/notification/ManagedServices$Config;
+HSPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getConfig()Lcom/android/server/notification/ManagedServices$Config;
PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getOnNotificationPostedTrim(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)I
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getRequiredPermission()Ljava/lang/String;
+HSPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->getRequiredPermission()Ljava/lang/String;
HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->isListenerPackage(Ljava/lang/String;)Z
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->lambda$notifyNotificationChannelChanged$2$NotificationManagerService$NotificationListeners(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyInterruptionFilterChanged(I)V
PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyInterruptionFilterChanged(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelChanged(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
+HSPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelChanged(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;I)V
PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyNotificationChannelGroupChanged(Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;I)V
-PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyPosted(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/StatusBarNotification;Landroid/service/notification/NotificationRankingUpdate;)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;->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
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyPostedLocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;Z)V
PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyRankingUpdate(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;Landroid/service/notification/NotificationRankingUpdate;)V
PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyRankingUpdateLocked(Ljava/util/List;)V
PLcom/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
PLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyRemovedLocked(Lcom/android/server/notification/NotificationRecord;ILandroid/service/notification/NotificationStats;)V
+HPLcom/android/server/notification/NotificationManagerService$NotificationListeners;->notifyUnhiddenLocked(Ljava/util/List;)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
-PLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable$1;-><init>(Lcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;Landroid/service/notification/StatusBarNotification;)V
+HPLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable$1;-><init>(Lcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;Landroid/service/notification/StatusBarNotification;)V
PLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable$1;->run()V
-PLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
+HPLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
PLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;->lambda$run$0$NotificationManagerService$PostNotificationRunnable(Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/StatusBarNotification;)V
PLcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;->run()V
-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
+HSPLcom/android/server/notification/NotificationManagerService$RankingHandlerWorker;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Looper;)V
+HSPLcom/android/server/notification/NotificationManagerService$RankingHandlerWorker;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/notification/NotificationManagerService$RankingHandlerWorker;->requestReconsideration(Lcom/android/server/notification/RankingReconsideration;)V
-PLcom/android/server/notification/NotificationManagerService$RankingHandlerWorker;->requestSort()V
-PLcom/android/server/notification/NotificationManagerService$RoleObserver;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/app/role/RoleManager;Landroid/content/pm/IPackageManager;Ljava/util/concurrent/Executor;)V
-PLcom/android/server/notification/NotificationManagerService$RoleObserver;->getUidForPackage(Ljava/lang/String;I)I
-PLcom/android/server/notification/NotificationManagerService$RoleObserver;->init()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$1;)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
-PLcom/android/server/notification/NotificationManagerService$SettingsObserver;->update(Landroid/net/Uri;)V
-PLcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;-><init>(Landroid/service/notification/StatusBarNotification;)V
-PLcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;->get()Landroid/service/notification/StatusBarNotification;
+HSPLcom/android/server/notification/NotificationManagerService$RankingHandlerWorker;->requestSort()V
+HSPLcom/android/server/notification/NotificationManagerService$RoleObserver;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/app/role/RoleManager;Landroid/content/pm/IPackageManager;Ljava/util/concurrent/Executor;)V
+HSPLcom/android/server/notification/NotificationManagerService$RoleObserver;->getUidForPackage(Ljava/lang/String;I)I
+HSPLcom/android/server/notification/NotificationManagerService$RoleObserver;->init()V
+PLcom/android/server/notification/NotificationManagerService$RoleObserver;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
+HSPLcom/android/server/notification/NotificationManagerService$SavePolicyFileRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;)V
+HSPLcom/android/server/notification/NotificationManagerService$SavePolicyFileRunnable;-><init>(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationManagerService$1;)V
+HSPLcom/android/server/notification/NotificationManagerService$SavePolicyFileRunnable;->run()V
+HSPLcom/android/server/notification/NotificationManagerService$SettingsObserver;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/notification/NotificationManagerService$SettingsObserver;->observe()V
+HSPLcom/android/server/notification/NotificationManagerService$SettingsObserver;->update(Landroid/net/Uri;)V
+HPLcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;-><init>(Landroid/service/notification/StatusBarNotification;)V
+HPLcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;->get()Landroid/service/notification/StatusBarNotification;
PLcom/android/server/notification/NotificationManagerService$ToastRecord;-><init>(ILjava/lang/String;Landroid/app/ITransientNotification;ILandroid/os/Binder;I)V
-PLcom/android/server/notification/NotificationManagerService$TrimCache;-><init>(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)V
-PLcom/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
+HPLcom/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;
+HSPLcom/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
PLcom/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;-><clinit>()V
-PLcom/android/server/notification/NotificationManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/notification/NotificationManagerService;->access$100(Lcom/android/server/notification/NotificationManagerService;)Landroid/util/AtomicFile;
+HSPLcom/android/server/notification/NotificationManagerService;-><clinit>()V
+HSPLcom/android/server/notification/NotificationManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/notification/NotificationManagerService;->access$100(Lcom/android/server/notification/NotificationManagerService;)Landroid/util/AtomicFile;
PLcom/android/server/notification/NotificationManagerService;->access$1200(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/IPackageManager;
-PLcom/android/server/notification/NotificationManagerService;->access$1600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/PreferencesHelper;
-PLcom/android/server/notification/NotificationManagerService;->access$1700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$NotificationListeners;
-PLcom/android/server/notification/NotificationManagerService;->access$1800(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/ConditionProviders;
-PLcom/android/server/notification/NotificationManagerService;->access$200(Lcom/android/server/notification/NotificationManagerService;Ljava/io/OutputStream;ZI)V
-PLcom/android/server/notification/NotificationManagerService;->access$2100()I
-PLcom/android/server/notification/NotificationManagerService;->access$2200()I
+HSPLcom/android/server/notification/NotificationManagerService;->access$1600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/PreferencesHelper;
+HSPLcom/android/server/notification/NotificationManagerService;->access$1700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$NotificationListeners;
+HSPLcom/android/server/notification/NotificationManagerService;->access$1800(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/ConditionProviders;
+HSPLcom/android/server/notification/NotificationManagerService;->access$200(Lcom/android/server/notification/NotificationManagerService;Ljava/io/OutputStream;ZI)V
+HSPLcom/android/server/notification/NotificationManagerService;->access$2100()I
+HSPLcom/android/server/notification/NotificationManagerService;->access$2200()I
PLcom/android/server/notification/NotificationManagerService;->access$2300(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$WorkerHandler;
PLcom/android/server/notification/NotificationManagerService;->access$2400(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService;->access$2600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/ManagedServices$UserProfiles;
+PLcom/android/server/notification/NotificationManagerService;->access$2500(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/lights/Light;
+HSPLcom/android/server/notification/NotificationManagerService;->access$2600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/ManagedServices$UserProfiles;
PLcom/android/server/notification/NotificationManagerService;->access$2700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$SettingsObserver;
-PLcom/android/server/notification/NotificationManagerService;->access$2900(Lcom/android/server/notification/NotificationManagerService;)F
-PLcom/android/server/notification/NotificationManagerService;->access$2902(Lcom/android/server/notification/NotificationManagerService;F)F
-PLcom/android/server/notification/NotificationManagerService;->access$3000(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
+HSPLcom/android/server/notification/NotificationManagerService;->access$2900(Lcom/android/server/notification/NotificationManagerService;)F
+HSPLcom/android/server/notification/NotificationManagerService;->access$2902(Lcom/android/server/notification/NotificationManagerService;F)F
+HSPLcom/android/server/notification/NotificationManagerService;->access$3000(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
PLcom/android/server/notification/NotificationManagerService;->access$302(Lcom/android/server/notification/NotificationManagerService;Z)Z
+PLcom/android/server/notification/NotificationManagerService;->access$3100(Lcom/android/server/notification/NotificationManagerService;)V
PLcom/android/server/notification/NotificationManagerService;->access$3600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/wm/WindowManagerInternal;
-PLcom/android/server/notification/NotificationManagerService;->access$3700(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
+HSPLcom/android/server/notification/NotificationManagerService;->access$3700(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
PLcom/android/server/notification/NotificationManagerService;->access$3800(Lcom/android/server/notification/NotificationManagerService;)V
-PLcom/android/server/notification/NotificationManagerService;->access$3900(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
+HSPLcom/android/server/notification/NotificationManagerService;->access$3900(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;)V
PLcom/android/server/notification/NotificationManagerService;->access$400(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Ljava/lang/String;
-PLcom/android/server/notification/NotificationManagerService;->access$4100(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/PackageManager;
-PLcom/android/server/notification/NotificationManagerService;->access$4300(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/SnoozeHelper;
+PLcom/android/server/notification/NotificationManagerService;->access$4000(Lcom/android/server/notification/NotificationManagerService;Ljava/lang/String;ILandroid/app/NotificationChannelGroup;ZZ)V
+HSPLcom/android/server/notification/NotificationManagerService;->access$4100(Lcom/android/server/notification/NotificationManagerService;)Landroid/content/pm/PackageManager;
+HPLcom/android/server/notification/NotificationManagerService;->access$4300(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/SnoozeHelper;
PLcom/android/server/notification/NotificationManagerService;->access$4700(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
-PLcom/android/server/notification/NotificationManagerService;->access$5900(Lcom/android/server/notification/NotificationManagerService;)Ljava/util/List;
+PLcom/android/server/notification/NotificationManagerService;->access$4800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$500(Lcom/android/server/notification/NotificationManagerService;)V
PLcom/android/server/notification/NotificationManagerService;->access$600(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationManagerService$NotificationAssistants;
-PLcom/android/server/notification/NotificationManagerService;->access$6000(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/RankingHelper;
-PLcom/android/server/notification/NotificationManagerService;->access$6300(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/UserManager;
-PLcom/android/server/notification/NotificationManagerService;->access$6500(Lcom/android/server/notification/NotificationManagerService;)Z
-PLcom/android/server/notification/NotificationManagerService;->access$6700(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
-PLcom/android/server/notification/NotificationManagerService;->access$7200(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationUsageStats;
-PLcom/android/server/notification/NotificationManagerService;->access$7500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
-PLcom/android/server/notification/NotificationManagerService;->access$7600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
-PLcom/android/server/notification/NotificationManagerService;->access$7800(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$6000(Lcom/android/server/notification/NotificationManagerService;)Ljava/util/List;
+PLcom/android/server/notification/NotificationManagerService;->access$6100(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/RankingHelper;
+HSPLcom/android/server/notification/NotificationManagerService;->access$6400(Lcom/android/server/notification/NotificationManagerService;)Landroid/os/UserManager;
+PLcom/android/server/notification/NotificationManagerService;->access$6500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Landroid/service/notification/Adjustment;)V
+PLcom/android/server/notification/NotificationManagerService;->access$6600(Lcom/android/server/notification/NotificationManagerService;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$6700(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/NotificationUsageStats;
+HPLcom/android/server/notification/NotificationManagerService;->access$6900(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Lcom/android/server/notification/NotificationRecord;
+PLcom/android/server/notification/NotificationManagerService;->access$7600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
+PLcom/android/server/notification/NotificationManagerService;->access$7700(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;II)V
PLcom/android/server/notification/NotificationManagerService;->access$7900(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/NotificationManagerService;->access$8000(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
-PLcom/android/server/notification/NotificationManagerService;->access$8100(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
+PLcom/android/server/notification/NotificationManagerService;->access$8000(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/NotificationRecord;)Z
+HPLcom/android/server/notification/NotificationManagerService;->access$8100(Lcom/android/server/notification/NotificationManagerService;Landroid/service/notification/StatusBarNotification;)Z
+PLcom/android/server/notification/NotificationManagerService;->access$8200(Lcom/android/server/notification/NotificationManagerService;)Lcom/android/server/notification/GroupHelper;
PLcom/android/server/notification/NotificationManagerService;->access$900(Lcom/android/server/notification/NotificationManagerService;)Landroid/app/ActivityManager;
-PLcom/android/server/notification/NotificationManagerService;->access$9100(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Message;)V
-HPLcom/android/server/notification/NotificationManagerService;->access$9200(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
-PLcom/android/server/notification/NotificationManagerService;->access$9500(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
-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;->access$9100(Lcom/android/server/notification/NotificationManagerService;I)V
+PLcom/android/server/notification/NotificationManagerService;->access$9200(Lcom/android/server/notification/NotificationManagerService;Landroid/os/Message;)V
+HPLcom/android/server/notification/NotificationManagerService;->access$9300(Lcom/android/server/notification/NotificationManagerService;Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
+PLcom/android/server/notification/NotificationManagerService;->access$9600(Lcom/android/server/notification/NotificationManagerService;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
+PLcom/android/server/notification/NotificationManagerService;->addAutoGroupAdjustment(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService;->addAutogroupKeyLocked(Ljava/lang/String;)V
+HSPLcom/android/server/notification/NotificationManagerService;->allowAssistant(ILandroid/content/ComponentName;)Z
+HPLcom/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
PLcom/android/server/notification/NotificationManagerService;->buzzBeepBlinkLocked(Lcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/NotificationManagerService;->callStateToString(I)Ljava/lang/String;
HPLcom/android/server/notification/NotificationManagerService;->canBubble(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;I)Z
PLcom/android/server/notification/NotificationManagerService;->canShowLightsLocked(Lcom/android/server/notification/NotificationRecord;Z)Z
-PLcom/android/server/notification/NotificationManagerService;->canUseManagedServices(Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;)Z
+HSPLcom/android/server/notification/NotificationManagerService;->canUseManagedServices(Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;)Z
HPLcom/android/server/notification/NotificationManagerService;->cancelAllNotificationsByListLocked(Ljava/util/ArrayList;IILjava/lang/String;ZLjava/lang/String;Lcom/android/server/notification/NotificationManagerService$FlagChecker;ZIZILjava/lang/String;Z)V
-PLcom/android/server/notification/NotificationManagerService;->cancelAllNotificationsInt(IILjava/lang/String;Ljava/lang/String;IIZIILcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
+HSPLcom/android/server/notification/NotificationManagerService;->cancelAllNotificationsInt(IILjava/lang/String;Ljava/lang/String;IIZIILcom/android/server/notification/ManagedServices$ManagedServiceInfo;)V
PLcom/android/server/notification/NotificationManagerService;->cancelGroupChildrenByListLocked(Ljava/util/ArrayList;Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZZLcom/android/server/notification/NotificationManagerService$FlagChecker;)V
PLcom/android/server/notification/NotificationManagerService;->cancelGroupChildrenLocked(Lcom/android/server/notification/NotificationRecord;IILjava/lang/String;ZLcom/android/server/notification/NotificationManagerService$FlagChecker;)V
-PLcom/android/server/notification/NotificationManagerService;->cancelNotification(IILjava/lang/String;Ljava/lang/String;IIIZIIIILcom/android/server/notification/ManagedServices$ManagedServiceInfo;)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
HPLcom/android/server/notification/NotificationManagerService;->cancelNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;II)V
PLcom/android/server/notification/NotificationManagerService;->cancelNotificationLocked(Lcom/android/server/notification/NotificationRecord;ZIIIZLjava/lang/String;)V
PLcom/android/server/notification/NotificationManagerService;->cancelToastLocked(I)V
-PLcom/android/server/notification/NotificationManagerService;->checkCallerIsSameApp(Ljava/lang/String;)V
-HPLcom/android/server/notification/NotificationManagerService;->checkCallerIsSameApp(Ljava/lang/String;II)V
+HSPLcom/android/server/notification/NotificationManagerService;->checkCallerIsSameApp(Ljava/lang/String;)V
+HSPLcom/android/server/notification/NotificationManagerService;->checkCallerIsSameApp(Ljava/lang/String;II)V
PLcom/android/server/notification/NotificationManagerService;->checkCallerIsSystem()V
-PLcom/android/server/notification/NotificationManagerService;->checkCallerIsSystemOrSameApp(Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService;->checkDisqualifyingFeatures(IIILjava/lang/String;Lcom/android/server/notification/NotificationRecord;Z)Z
+HSPLcom/android/server/notification/NotificationManagerService;->checkCallerIsSystemOrSameApp(Ljava/lang/String;)V
+HPLcom/android/server/notification/NotificationManagerService;->checkDisqualifyingFeatures(IIILjava/lang/String;Lcom/android/server/notification/NotificationRecord;Z)Z
HPLcom/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
+HPLcom/android/server/notification/NotificationManagerService;->checkRestrictedCategories(Landroid/app/Notification;)V
PLcom/android/server/notification/NotificationManagerService;->clamp(III)I
PLcom/android/server/notification/NotificationManagerService;->clearAutogroupSummaryLocked(ILjava/lang/String;)V
PLcom/android/server/notification/NotificationManagerService;->clearSoundLocked()V
PLcom/android/server/notification/NotificationManagerService;->clearVibrateLocked()V
+PLcom/android/server/notification/NotificationManagerService;->createAutoGroupSummary(ILjava/lang/String;Ljava/lang/String;)V
PLcom/android/server/notification/NotificationManagerService;->createNotificationChannelGroup(Ljava/lang/String;ILandroid/app/NotificationChannelGroup;ZZ)V
HPLcom/android/server/notification/NotificationManagerService;->destroyPermissionOwner(Landroid/os/IBinder;ILjava/lang/String;)V
PLcom/android/server/notification/NotificationManagerService;->disableNotificationEffects(Lcom/android/server/notification/NotificationRecord;)Ljava/lang/String;
-PLcom/android/server/notification/NotificationManagerService;->enqueueNotificationInternal(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;ILandroid/app/Notification;I)V
+PLcom/android/server/notification/NotificationManagerService;->doChannelWarningToast(Ljava/lang/CharSequence;)V
+PLcom/android/server/notification/NotificationManagerService;->dumpImpl(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+PLcom/android/server/notification/NotificationManagerService;->dumpJson(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+PLcom/android/server/notification/NotificationManagerService;->dumpNotificationRecords(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+PLcom/android/server/notification/NotificationManagerService;->dumpProto(Ljava/io/FileDescriptor;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;I)V
+PLcom/android/server/notification/NotificationManagerService;->exitIdle()V
HPLcom/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;
+PLcom/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;->findNotificationsByListLocked(Ljava/util/ArrayList;Ljava/lang/String;Ljava/lang/String;II)Ljava/util/List;
HPLcom/android/server/notification/NotificationManagerService;->fixNotification(Landroid/app/Notification;Ljava/lang/String;Ljava/lang/String;II)V
HPLcom/android/server/notification/NotificationManagerService;->flagNotificationForBubbles(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;ILcom/android/server/notification/NotificationRecord;Z)V
-PLcom/android/server/notification/NotificationManagerService;->getCompanionManager()Landroid/companion/ICompanionDeviceManager;
-PLcom/android/server/notification/NotificationManagerService;->getGroupHelper()Lcom/android/server/notification/GroupHelper;
+HSPLcom/android/server/notification/NotificationManagerService;->getGroupHelper()Lcom/android/server/notification/GroupHelper;
HPLcom/android/server/notification/NotificationManagerService;->getHistoryText(Landroid/content/Context;Landroid/app/Notification;)Ljava/lang/String;
PLcom/android/server/notification/NotificationManagerService;->getHistoryTitle(Landroid/app/Notification;)Ljava/lang/String;
-PLcom/android/server/notification/NotificationManagerService;->getLongArray(Landroid/content/res/Resources;II[J)[J
+HSPLcom/android/server/notification/NotificationManagerService;->getLongArray(Landroid/content/res/Resources;II[J)[J
HPLcom/android/server/notification/NotificationManagerService;->getNotificationCountLocked(Ljava/lang/String;IILjava/lang/String;)I
PLcom/android/server/notification/NotificationManagerService;->getRealUserId(I)I
PLcom/android/server/notification/NotificationManagerService;->grantUriPermission(Landroid/os/IBinder;Landroid/net/Uri;ILjava/lang/String;I)V
@@ -10648,20 +12754,21 @@ PLcom/android/server/notification/NotificationManagerService;->handleGroupedNoti
PLcom/android/server/notification/NotificationManagerService;->handleKillTokenTimeout(Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
PLcom/android/server/notification/NotificationManagerService;->handleListenerInterruptionFilterChanged(I)V
HPLcom/android/server/notification/NotificationManagerService;->handleOnPackageChanged(ZI[Ljava/lang/String;[I)V
-PLcom/android/server/notification/NotificationManagerService;->handleRankingReconsideration(Landroid/os/Message;)V
-HPLcom/android/server/notification/NotificationManagerService;->handleRankingSort()V
-PLcom/android/server/notification/NotificationManagerService;->handleSavePolicyFile()V
+HPLcom/android/server/notification/NotificationManagerService;->handleRankingReconsideration(Landroid/os/Message;)V
+HSPLcom/android/server/notification/NotificationManagerService;->handleRankingSort()V
+HSPLcom/android/server/notification/NotificationManagerService;->handleSavePolicyFile()V
PLcom/android/server/notification/NotificationManagerService;->handleSendRankingUpdate()V
HPLcom/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;->indexOfNotificationLocked(Ljava/lang/String;)I
PLcom/android/server/notification/NotificationManagerService;->indexOfToastLocked(Ljava/lang/String;Landroid/app/ITransientNotification;)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;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;)V
-PLcom/android/server/notification/NotificationManagerService;->isBlocked(Lcom/android/server/notification/NotificationRecord;)Z
+HSPLcom/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;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;)V
+HPLcom/android/server/notification/NotificationManagerService;->isBlocked(Lcom/android/server/notification/NotificationRecord;)Z
PLcom/android/server/notification/NotificationManagerService;->isBlocked(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationUsageStats;)Z
+HPLcom/android/server/notification/NotificationManagerService;->isCallerAndroid(Ljava/lang/String;I)Z
PLcom/android/server/notification/NotificationManagerService;->isCallerInstantApp(II)Z
-PLcom/android/server/notification/NotificationManagerService;->isCallerSameApp(Ljava/lang/String;II)Z
-PLcom/android/server/notification/NotificationManagerService;->isCallerSystemOrPhone()Z
+HPLcom/android/server/notification/NotificationManagerService;->isCallerSameApp(Ljava/lang/String;II)Z
+HSPLcom/android/server/notification/NotificationManagerService;->isCallerSystemOrPhone()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;->isInCall()Z
@@ -10670,236 +12777,326 @@ HPLcom/android/server/notification/NotificationManagerService;->isNotificationAp
PLcom/android/server/notification/NotificationManagerService;->isNotificationForCurrentUser(Lcom/android/server/notification/NotificationRecord;)Z
HPLcom/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;->isUidSystemOrPhone(I)Z
+HSPLcom/android/server/notification/NotificationManagerService;->isUidSystemOrPhone(I)Z
HPLcom/android/server/notification/NotificationManagerService;->isVisibleToListener(Landroid/service/notification/StatusBarNotification;Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
PLcom/android/server/notification/NotificationManagerService;->isVisuallyInterruptive(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)Z
PLcom/android/server/notification/NotificationManagerService;->keepProcessAliveIfNeededLocked(I)V
+PLcom/android/server/notification/NotificationManagerService;->lambda$doChannelWarningToast$3$NotificationManagerService(Ljava/lang/CharSequence;)V
PLcom/android/server/notification/NotificationManagerService;->lambda$onUnlockUser$1$NotificationManagerService(Landroid/content/pm/UserInfo;)V
-PLcom/android/server/notification/NotificationManagerService;->listenForCallState()V
-PLcom/android/server/notification/NotificationManagerService;->loadPolicyFile()V
+PLcom/android/server/notification/NotificationManagerService;->lambda$playVibration$4$NotificationManagerService(Lcom/android/server/notification/NotificationRecord;Landroid/os/VibrationEffect;)V
+PLcom/android/server/notification/NotificationManagerService;->lambda$registerDeviceConfigChange$0$NotificationManagerService(Landroid/provider/DeviceConfig$Properties;)V
+HSPLcom/android/server/notification/NotificationManagerService;->listenForCallState()V
+HSPLcom/android/server/notification/NotificationManagerService;->loadPolicyFile()V
PLcom/android/server/notification/NotificationManagerService;->logSmartSuggestionsVisible(Lcom/android/server/notification/NotificationRecord;I)V
HPLcom/android/server/notification/NotificationManagerService;->makeRankingUpdateLocked(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Landroid/service/notification/NotificationRankingUpdate;
PLcom/android/server/notification/NotificationManagerService;->maybeRecordInterruptionLocked(Lcom/android/server/notification/NotificationRecord;)V
PLcom/android/server/notification/NotificationManagerService;->notificationMatchesUserId(Lcom/android/server/notification/NotificationRecord;I)Z
-PLcom/android/server/notification/NotificationManagerService;->onBootPhase(I)V
-PLcom/android/server/notification/NotificationManagerService;->onStart()V
+HSPLcom/android/server/notification/NotificationManagerService;->onBootPhase(I)V
+HSPLcom/android/server/notification/NotificationManagerService;->onStart()V
PLcom/android/server/notification/NotificationManagerService;->onUnlockUser(Landroid/content/pm/UserInfo;)V
PLcom/android/server/notification/NotificationManagerService;->playSound(Lcom/android/server/notification/NotificationRecord;Landroid/net/Uri;)Z
-PLcom/android/server/notification/NotificationManagerService;->readPolicyXml(Ljava/io/InputStream;ZI)V
-PLcom/android/server/notification/NotificationManagerService;->registerDeviceConfigChange()V
+PLcom/android/server/notification/NotificationManagerService;->playVibration(Lcom/android/server/notification/NotificationRecord;[JZ)Z
+HSPLcom/android/server/notification/NotificationManagerService;->readPolicyXml(Ljava/io/InputStream;ZI)V
+HSPLcom/android/server/notification/NotificationManagerService;->registerDeviceConfigChange()V
+PLcom/android/server/notification/NotificationManagerService;->removeDisabledHints(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;)Z
PLcom/android/server/notification/NotificationManagerService;->removeDisabledHints(Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;I)Z
PLcom/android/server/notification/NotificationManagerService;->removeFromNotificationListsLocked(Lcom/android/server/notification/NotificationRecord;)Z
HPLcom/android/server/notification/NotificationManagerService;->removeRemoteView(Ljava/lang/String;Ljava/lang/String;ILandroid/widget/RemoteViews;)Z
PLcom/android/server/notification/NotificationManagerService;->reportSeen(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationManagerService;->resolveNotificationUid(Ljava/lang/String;Ljava/lang/String;II)I
-PLcom/android/server/notification/NotificationManagerService;->safeBoolean(Ljava/lang/String;Z)Z
+PLcom/android/server/notification/NotificationManagerService;->reportUserInteraction(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/NotificationManagerService;->resolveNotificationUid(Ljava/lang/String;Ljava/lang/String;II)I
+HSPLcom/android/server/notification/NotificationManagerService;->safeBoolean(Ljava/lang/String;Z)Z
PLcom/android/server/notification/NotificationManagerService;->scheduleDurationReachedLocked(Lcom/android/server/notification/NotificationManagerService$ToastRecord;)V
+PLcom/android/server/notification/NotificationManagerService;->scheduleInterruptionFilterChanged(I)V
PLcom/android/server/notification/NotificationManagerService;->scheduleTimeoutLocked(Lcom/android/server/notification/NotificationRecord;)V
PLcom/android/server/notification/NotificationManagerService;->sendAccessibilityEvent(Landroid/app/Notification;Ljava/lang/CharSequence;)V
-PLcom/android/server/notification/NotificationManagerService;->sendRegisteredOnlyBroadcast(Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationManagerService;->setDefaultAssistantForUser(I)V
-PLcom/android/server/notification/NotificationManagerService;->setNotificationAssistantAccessGrantedForUserInternal(Landroid/content/ComponentName;IZ)V
+HSPLcom/android/server/notification/NotificationManagerService;->sendRegisteredOnlyBroadcast(Ljava/lang/String;)V
+HSPLcom/android/server/notification/NotificationManagerService;->setDefaultAssistantForUser(I)V
+HSPLcom/android/server/notification/NotificationManagerService;->setNotificationAssistantAccessGrantedForUserInternal(Landroid/content/ComponentName;IZ)V
PLcom/android/server/notification/NotificationManagerService;->shouldMuteNotificationLocked(Lcom/android/server/notification/NotificationRecord;)Z
PLcom/android/server/notification/NotificationManagerService;->showNextToastLocked()V
+HPLcom/android/server/notification/NotificationManagerService;->unhideNotificationsForPackages([Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationManagerService;->updateAutobundledSummaryFlags(ILjava/lang/String;ZZ)V
+PLcom/android/server/notification/NotificationManagerService;->updateInterruptionFilterLocked()V
PLcom/android/server/notification/NotificationManagerService;->updateLightsLocked()V
PLcom/android/server/notification/NotificationManagerService;->updateNotificationPulse()V
HPLcom/android/server/notification/NotificationManagerService;->updateUriPermissions(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;I)V
-PLcom/android/server/notification/NotificationManagerService;->writePolicyXml(Ljava/io/OutputStream;ZI)V
-PLcom/android/server/notification/NotificationManagerService;->writeSecureNotificationsPolicy(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/notification/NotificationManagerService;->writePolicyXml(Ljava/io/OutputStream;ZI)V
+HSPLcom/android/server/notification/NotificationManagerService;->writeSecureNotificationsPolicy(Lorg/xmlpull/v1/XmlSerializer;)V
HPLcom/android/server/notification/NotificationRecord$Light;-><init>(III)V
+PLcom/android/server/notification/NotificationRecord$Light;->toString()Ljava/lang/String;
PLcom/android/server/notification/NotificationRecord;-><clinit>()V
-PLcom/android/server/notification/NotificationRecord;-><init>(Landroid/content/Context;Landroid/service/notification/StatusBarNotification;Landroid/app/NotificationChannel;)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;->calculateAttributes()Landroid/media/AudioAttributes;
+HPLcom/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
+HPLcom/android/server/notification/NotificationRecord;->calculateLights()Lcom/android/server/notification/NotificationRecord$Light;
+HPLcom/android/server/notification/NotificationRecord;->calculateRankingTimeMs(J)J
+HPLcom/android/server/notification/NotificationRecord;->calculateSound()Landroid/net/Uri;
+HPLcom/android/server/notification/NotificationRecord;->calculateUserSentiment()V
HPLcom/android/server/notification/NotificationRecord;->calculateVibration()[J
-PLcom/android/server/notification/NotificationRecord;->canBubble()Z
-PLcom/android/server/notification/NotificationRecord;->canShowBadge()Z
+HPLcom/android/server/notification/NotificationRecord;->canBubble()Z
+HPLcom/android/server/notification/NotificationRecord;->canShowBadge()Z
PLcom/android/server/notification/NotificationRecord;->copyRankingInformation(Lcom/android/server/notification/NotificationRecord;)V
-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;->getCriticality()I
-PLcom/android/server/notification/NotificationRecord;->getExposureMs(J)I
-PLcom/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;
-PLcom/android/server/notification/NotificationRecord;->getImportance()I
+PLcom/android/server/notification/NotificationRecord;->dump(Landroid/util/proto/ProtoOutputStream;JZI)V
+PLcom/android/server/notification/NotificationRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/content/Context;Z)V
+PLcom/android/server/notification/NotificationRecord;->formatRemoteViews(Landroid/widget/RemoteViews;)Ljava/lang/String;
+HPLcom/android/server/notification/NotificationRecord;->getAudioAttributes()Landroid/media/AudioAttributes;
+HPLcom/android/server/notification/NotificationRecord;->getAuthoritativeRank()I
+HPLcom/android/server/notification/NotificationRecord;->getChannel()Landroid/app/NotificationChannel;
+HPLcom/android/server/notification/NotificationRecord;->getContactAffinity()F
+HPLcom/android/server/notification/NotificationRecord;->getCriticality()I
+PLcom/android/server/notification/NotificationRecord;->getEditChoicesBeforeSending()Z
+HPLcom/android/server/notification/NotificationRecord;->getExposureMs(J)I
+HPLcom/android/server/notification/NotificationRecord;->getFlags()I
+HPLcom/android/server/notification/NotificationRecord;->getFreshnessMs(J)I
+HPLcom/android/server/notification/NotificationRecord;->getGlobalSortKey()Ljava/lang/String;
+HPLcom/android/server/notification/NotificationRecord;->getGrantableUris()Landroid/util/ArraySet;
+HPLcom/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;->getInterruptionMs(J)I
-PLcom/android/server/notification/NotificationRecord;->getKey()Ljava/lang/String;
-PLcom/android/server/notification/NotificationRecord;->getLastAudiblyAlertedMs()J
+HPLcom/android/server/notification/NotificationRecord;->getInterruptionMs(J)I
+PLcom/android/server/notification/NotificationRecord;->getItemLogMaker()Landroid/metrics/LogMaker;
+HPLcom/android/server/notification/NotificationRecord;->getKey()Ljava/lang/String;
+HPLcom/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;->getLifespanMs(J)I
+PLcom/android/server/notification/NotificationRecord;->getLight()Lcom/android/server/notification/NotificationRecord$Light;
+HPLcom/android/server/notification/NotificationRecord;->getLogMaker()Landroid/metrics/LogMaker;
PLcom/android/server/notification/NotificationRecord;->getLogMaker(J)Landroid/metrics/LogMaker;
HPLcom/android/server/notification/NotificationRecord;->getNotification()Landroid/app/Notification;
-PLcom/android/server/notification/NotificationRecord;->getPackageVisibilityOverride()I
-PLcom/android/server/notification/NotificationRecord;->getPeopleOverride()Ljava/util/ArrayList;
-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;
-PLcom/android/server/notification/NotificationRecord;->getSuppressedVisualEffects()I
-PLcom/android/server/notification/NotificationRecord;->getSystemGeneratedSmartActions()Ljava/util/ArrayList;
-PLcom/android/server/notification/NotificationRecord;->getUid()I
-PLcom/android/server/notification/NotificationRecord;->getUser()Landroid/os/UserHandle;
+PLcom/android/server/notification/NotificationRecord;->getNumSmartActionsAdded()I
+PLcom/android/server/notification/NotificationRecord;->getNumSmartRepliesAdded()I
+HPLcom/android/server/notification/NotificationRecord;->getPackagePriority()I
+HPLcom/android/server/notification/NotificationRecord;->getPackageVisibilityOverride()I
+HPLcom/android/server/notification/NotificationRecord;->getPeopleOverride()Ljava/util/ArrayList;
+HPLcom/android/server/notification/NotificationRecord;->getRankingTimeMs()J
+HPLcom/android/server/notification/NotificationRecord;->getSmartReplies()Ljava/util/ArrayList;
+HPLcom/android/server/notification/NotificationRecord;->getSnoozeCriteria()Ljava/util/ArrayList;
+HPLcom/android/server/notification/NotificationRecord;->getSound()Landroid/net/Uri;
+HPLcom/android/server/notification/NotificationRecord;->getStats()Landroid/service/notification/NotificationStats;
+PLcom/android/server/notification/NotificationRecord;->getSuggestionsGeneratedByAssistant()Z
+HPLcom/android/server/notification/NotificationRecord;->getSuppressedVisualEffects()I
+HPLcom/android/server/notification/NotificationRecord;->getSystemGeneratedSmartActions()Ljava/util/ArrayList;
+HPLcom/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()[J
-PLcom/android/server/notification/NotificationRecord;->hasBeenVisiblyExpanded()Z
-PLcom/android/server/notification/NotificationRecord;->hasRecordedInterruption()Z
+HPLcom/android/server/notification/NotificationRecord;->getUserSentiment()I
+HPLcom/android/server/notification/NotificationRecord;->getVibration()[J
+HPLcom/android/server/notification/NotificationRecord;->hasBeenVisiblyExpanded()Z
+HPLcom/android/server/notification/NotificationRecord;->hasRecordedInterruption()Z
+PLcom/android/server/notification/NotificationRecord;->hasSeenSmartReplies()Z
+HPLcom/android/server/notification/NotificationRecord;->hasUndecoratedRemoteView()Z
+HPLcom/android/server/notification/NotificationRecord;->isAudioAttributesUsage(I)Z
HPLcom/android/server/notification/NotificationRecord;->isCategory(Ljava/lang/String;)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;->isPreChannelsNotification()Z
+HPLcom/android/server/notification/NotificationRecord;->isHidden()Z
+HPLcom/android/server/notification/NotificationRecord;->isIntercepted()Z
+HPLcom/android/server/notification/NotificationRecord;->isInterruptive()Z
+HPLcom/android/server/notification/NotificationRecord;->isPreChannelsNotification()Z
PLcom/android/server/notification/NotificationRecord;->isProxied()Z
-PLcom/android/server/notification/NotificationRecord;->isRecentlyIntrusive()Z
-PLcom/android/server/notification/NotificationRecord;->isSeen()Z
-PLcom/android/server/notification/NotificationRecord;->lambda$calculateGrantableUris$0$NotificationRecord(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;->setGlobalSortKey(Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationRecord;->setHidden(Z)V
-PLcom/android/server/notification/NotificationRecord;->setIntercepted(Z)Z
+HPLcom/android/server/notification/NotificationRecord;->isRecentlyIntrusive()Z
+HPLcom/android/server/notification/NotificationRecord;->isSeen()Z
+HPLcom/android/server/notification/NotificationRecord;->lambda$calculateGrantableUris$0$NotificationRecord(Landroid/net/Uri;)V
+PLcom/android/server/notification/NotificationRecord;->recordDismissalSentiment(I)V
+PLcom/android/server/notification/NotificationRecord;->recordDismissalSurface(I)V
+PLcom/android/server/notification/NotificationRecord;->recordExpanded()V
+HPLcom/android/server/notification/NotificationRecord;->setAllowBubble(Z)V
+HPLcom/android/server/notification/NotificationRecord;->setAudiblyAlerted(Z)V
+HPLcom/android/server/notification/NotificationRecord;->setAuthoritativeRank(I)V
+HPLcom/android/server/notification/NotificationRecord;->setContactAffinity(F)V
+PLcom/android/server/notification/NotificationRecord;->setEditChoicesBeforeSending(Z)V
+HPLcom/android/server/notification/NotificationRecord;->setGlobalSortKey(Ljava/lang/String;)V
+HPLcom/android/server/notification/NotificationRecord;->setHidden(Z)V
+HPLcom/android/server/notification/NotificationRecord;->setIntercepted(Z)Z
PLcom/android/server/notification/NotificationRecord;->setInterruptive(Z)V
HPLcom/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;->setRecentlyIntrusive(Z)V
-PLcom/android/server/notification/NotificationRecord;->setRecordedInterruption(Z)V
-PLcom/android/server/notification/NotificationRecord;->setSeen()V
-PLcom/android/server/notification/NotificationRecord;->setShowBadge(Z)V
-PLcom/android/server/notification/NotificationRecord;->setSuppressedVisualEffects(I)V
+PLcom/android/server/notification/NotificationRecord;->setNumSmartActionsAdded(I)V
+PLcom/android/server/notification/NotificationRecord;->setNumSmartRepliesAdded(I)V
+HPLcom/android/server/notification/NotificationRecord;->setPackagePriority(I)V
+HPLcom/android/server/notification/NotificationRecord;->setPackageVisibilityOverride(I)V
+HPLcom/android/server/notification/NotificationRecord;->setRecentlyIntrusive(Z)V
+HPLcom/android/server/notification/NotificationRecord;->setRecordedInterruption(Z)V
+HPLcom/android/server/notification/NotificationRecord;->setSeen()V
+PLcom/android/server/notification/NotificationRecord;->setSeenSmartReplies(Z)V
+HPLcom/android/server/notification/NotificationRecord;->setShowBadge(Z)V
+PLcom/android/server/notification/NotificationRecord;->setSmartReplies(Ljava/util/ArrayList;)V
+PLcom/android/server/notification/NotificationRecord;->setSuggestionsGeneratedByAssistant(Z)V
+HPLcom/android/server/notification/NotificationRecord;->setSuppressedVisualEffects(I)V
PLcom/android/server/notification/NotificationRecord;->setSystemImportance(I)V
+HPLcom/android/server/notification/NotificationRecord;->setTextChanged(Z)V
PLcom/android/server/notification/NotificationRecord;->setVisibility(ZII)V
-PLcom/android/server/notification/NotificationRecord;->updateNotificationChannel(Landroid/app/NotificationChannel;)V
-PLcom/android/server/notification/NotificationRecord;->visitGrantableUri(Landroid/net/Uri;Z)V
-PLcom/android/server/notification/NotificationUsageStats$1;-><init>(Lcom/android/server/notification/NotificationUsageStats;Landroid/os/Looper;)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;Z)V
+HSPLcom/android/server/notification/NotificationUsageStats$1;-><init>(Lcom/android/server/notification/NotificationUsageStats;Landroid/os/Looper;)V
+PLcom/android/server/notification/NotificationUsageStats$1;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;-><init>(Landroid/content/Context;Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->countApiUse(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->countApiUse(Lcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->dumpJson()Lorg/json/JSONObject;
+PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->emit()V
+PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->getEnqueueRate()F
+PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->getEnqueueRate(J)F
+PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->getPrevious()Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;
PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->isAlertRateLimited()Z
+PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->maybeCount(Ljava/lang/String;I)V
+PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->maybePut(Lorg/json/JSONObject;Ljava/lang/String;F)V
+HPLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->maybePut(Lorg/json/JSONObject;Ljava/lang/String;I)V
+PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->toStringWithIndent(Ljava/lang/String;)Ljava/lang/String;
PLcom/android/server/notification/NotificationUsageStats$AggregatedStats;->updateInterarrivalEstimate(J)V
PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;-><clinit>()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$SQLiteLog$1;-><init>(Lcom/android/server/notification/NotificationUsageStats$SQLiteLog;Landroid/os/Looper;)V
+HPLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->increment(I)V
+PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->maybeCount(Lcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;)V
+PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->maybePut(Lorg/json/JSONObject;Lcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;)V
+PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->toString()Ljava/lang/String;
+PLcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;->update(Lcom/android/server/notification/NotificationUsageStats$ImportanceHistogram;)V
+HSPLcom/android/server/notification/NotificationUsageStats$SQLiteLog$1;-><init>(Lcom/android/server/notification/NotificationUsageStats$SQLiteLog;Landroid/os/Looper;)V
PLcom/android/server/notification/NotificationUsageStats$SQLiteLog$1;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/notification/NotificationUsageStats$SQLiteLog$2;-><init>(Lcom/android/server/notification/NotificationUsageStats$SQLiteLog;Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V
+HSPLcom/android/server/notification/NotificationUsageStats$SQLiteLog$2;-><init>(Lcom/android/server/notification/NotificationUsageStats$SQLiteLog;Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V
PLcom/android/server/notification/NotificationUsageStats$SQLiteLog$2;->onConfigure(Landroid/database/sqlite/SQLiteDatabase;)V
-PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;-><init>(Landroid/content/Context;)V
+PLcom/android/server/notification/NotificationUsageStats$SQLiteLog$2;->onCreate(Landroid/database/sqlite/SQLiteDatabase;)V
+PLcom/android/server/notification/NotificationUsageStats$SQLiteLog$2;->onUpgrade(Landroid/database/sqlite/SQLiteDatabase;II)V
+HSPLcom/android/server/notification/NotificationUsageStats$SQLiteLog;-><init>(Landroid/content/Context;)V
PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->access$000(Lcom/android/server/notification/NotificationUsageStats$SQLiteLog;JILcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->dumpJson(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONObject;
+PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->getMidnightMs()J
+PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->jsonPostFrequencies(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONArray;
PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->logPosted(Lcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->printPostFrequencies(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->pruneIfNecessary(Landroid/database/sqlite/SQLiteDatabase;)V
PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->putNotificationDetails(Lcom/android/server/notification/NotificationRecord;Landroid/content/ContentValues;)V
PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->putNotificationIdentifiers(Lcom/android/server/notification/NotificationRecord;Landroid/content/ContentValues;)V
PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->putPosttimeVisibility(Lcom/android/server/notification/NotificationRecord;Landroid/content/ContentValues;)V
PLcom/android/server/notification/NotificationUsageStats$SQLiteLog;->writeEvent(JILcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;-><init>()V
+HPLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;-><init>()V
+PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->finish()V
+PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->getCurrentAirtimeExpandedMs()J
+PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->getCurrentAirtimeMs()J
+PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->getCurrentPosttimeMs()J
PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->hasBeenVisiblyExpanded()Z
+PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->onClick()V
+PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->onDismiss()V
+PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->onExpansionChanged(ZZ)V
+PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->onRemoved()V
PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->onVisibilityChanged(Z)V
+PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->toString()Ljava/lang/String;
PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->updateFrom(Lcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;)V
PLcom/android/server/notification/NotificationUsageStats$SingleNotificationStats;->updateVisiblyExpandedStats()V
-PLcom/android/server/notification/NotificationUsageStats;-><clinit>()V
-PLcom/android/server/notification/NotificationUsageStats;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/notification/NotificationUsageStats;-><clinit>()V
+HSPLcom/android/server/notification/NotificationUsageStats;-><init>(Landroid/content/Context;)V
+PLcom/android/server/notification/NotificationUsageStats;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+PLcom/android/server/notification/NotificationUsageStats;->dumpJson(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONObject;
+PLcom/android/server/notification/NotificationUsageStats;->emit()V
PLcom/android/server/notification/NotificationUsageStats;->getAggregatedStatsLocked(Lcom/android/server/notification/NotificationRecord;)[Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;
PLcom/android/server/notification/NotificationUsageStats;->getAggregatedStatsLocked(Ljava/lang/String;)[Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;
PLcom/android/server/notification/NotificationUsageStats;->getAppEnqueueRate(Ljava/lang/String;)F
PLcom/android/server/notification/NotificationUsageStats;->getOrCreateAggregatedStatsLocked(Ljava/lang/String;)Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;
PLcom/android/server/notification/NotificationUsageStats;->isAlertRateLimited(Ljava/lang/String;)Z
+PLcom/android/server/notification/NotificationUsageStats;->registerBlocked(Lcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/NotificationUsageStats;->registerClickedByUser(Lcom/android/server/notification/NotificationRecord;)V
+PLcom/android/server/notification/NotificationUsageStats;->registerDismissedByUser(Lcom/android/server/notification/NotificationRecord;)V
HPLcom/android/server/notification/NotificationUsageStats;->registerEnqueuedByApp(Ljava/lang/String;)V
-PLcom/android/server/notification/NotificationUsageStats;->registerOverCountQuota(Ljava/lang/String;)V
+HPLcom/android/server/notification/NotificationUsageStats;->registerOverCountQuota(Ljava/lang/String;)V
PLcom/android/server/notification/NotificationUsageStats;->registerOverRateQuota(Ljava/lang/String;)V
HPLcom/android/server/notification/NotificationUsageStats;->registerPeopleAffinity(Lcom/android/server/notification/NotificationRecord;ZZZ)V
PLcom/android/server/notification/NotificationUsageStats;->registerPostedByApp(Lcom/android/server/notification/NotificationRecord;)V
PLcom/android/server/notification/NotificationUsageStats;->registerRemovedByApp(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/NotificationUsageStats;->registerUpdatedByApp(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/NotificationUsageStats;->registerUpdatedByApp(Lcom/android/server/notification/NotificationRecord;Lcom/android/server/notification/NotificationRecord;)V
PLcom/android/server/notification/NotificationUsageStats;->releaseAggregatedStatsLocked([Lcom/android/server/notification/NotificationUsageStats$AggregatedStats;)V
-PLcom/android/server/notification/PreferencesHelper$PackagePreferences;-><init>()V
-PLcom/android/server/notification/PreferencesHelper$PackagePreferences;-><init>(Lcom/android/server/notification/PreferencesHelper$1;)V
-PLcom/android/server/notification/PreferencesHelper;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManager;Lcom/android/server/notification/RankingHandler;Lcom/android/server/notification/ZenModeHelper;)V
+HSPLcom/android/server/notification/PreferencesHelper$PackagePreferences;-><init>()V
+HSPLcom/android/server/notification/PreferencesHelper$PackagePreferences;-><init>(Lcom/android/server/notification/PreferencesHelper$1;)V
+HSPLcom/android/server/notification/PreferencesHelper;-><init>(Landroid/content/Context;Landroid/content/pm/PackageManager;Lcom/android/server/notification/RankingHandler;Lcom/android/server/notification/ZenModeHelper;)V
HPLcom/android/server/notification/PreferencesHelper;->areBubblesAllowed(Ljava/lang/String;I)Z
HPLcom/android/server/notification/PreferencesHelper;->badgingEnabled(Landroid/os/UserHandle;)Z
PLcom/android/server/notification/PreferencesHelper;->bubblesEnabled()Z
HPLcom/android/server/notification/PreferencesHelper;->canShowBadge(Ljava/lang/String;I)Z
HPLcom/android/server/notification/PreferencesHelper;->channelIsLiveLocked(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;Landroid/app/NotificationChannel;)Z
-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;ZZ)Z
+HSPLcom/android/server/notification/PreferencesHelper;->createDefaultChannelIfNeededLocked(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;)Z
+HSPLcom/android/server/notification/PreferencesHelper;->createNotificationChannel(Ljava/lang/String;ILandroid/app/NotificationChannel;ZZ)Z
PLcom/android/server/notification/PreferencesHelper;->createNotificationChannelGroup(Ljava/lang/String;ILandroid/app/NotificationChannelGroup;Z)V
-PLcom/android/server/notification/PreferencesHelper;->deleteDefaultChannelIfNeededLocked(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;)Z
-PLcom/android/server/notification/PreferencesHelper;->deleteNotificationChannel(Ljava/lang/String;ILjava/lang/String;)V
-PLcom/android/server/notification/PreferencesHelper;->getAppsBypassingDndCount(I)I
+HSPLcom/android/server/notification/PreferencesHelper;->deleteDefaultChannelIfNeededLocked(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;)Z
+HSPLcom/android/server/notification/PreferencesHelper;->deleteNotificationChannel(Ljava/lang/String;ILjava/lang/String;)V
+PLcom/android/server/notification/PreferencesHelper;->dump(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+PLcom/android/server/notification/PreferencesHelper;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
+PLcom/android/server/notification/PreferencesHelper;->dumpBansJson(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONArray;
+PLcom/android/server/notification/PreferencesHelper;->dumpChannelsJson(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONArray;
+PLcom/android/server/notification/PreferencesHelper;->dumpJson(Lcom/android/server/notification/NotificationManagerService$DumpFilter;)Lorg/json/JSONObject;
+HPLcom/android/server/notification/PreferencesHelper;->dumpPackagePreferencesLocked(Landroid/util/proto/ProtoOutputStream;JLcom/android/server/notification/NotificationManagerService$DumpFilter;Landroid/util/ArrayMap;)V
+HPLcom/android/server/notification/PreferencesHelper;->dumpPackagePreferencesLocked(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/notification/NotificationManagerService$DumpFilter;Landroid/util/ArrayMap;)V
+HPLcom/android/server/notification/PreferencesHelper;->getAppsBypassingDndCount(I)I
+PLcom/android/server/notification/PreferencesHelper;->getChannelGroupLog(Ljava/lang/String;Ljava/lang/String;)Landroid/metrics/LogMaker;
PLcom/android/server/notification/PreferencesHelper;->getChannelLog(Landroid/app/NotificationChannel;Ljava/lang/String;)Landroid/metrics/LogMaker;
-PLcom/android/server/notification/PreferencesHelper;->getImportance(Ljava/lang/String;I)I
-PLcom/android/server/notification/PreferencesHelper;->getIsAppImportanceLocked(Ljava/lang/String;I)Z
-HPLcom/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;->getImportance(Ljava/lang/String;I)I
+HPLcom/android/server/notification/PreferencesHelper;->getIsAppImportanceLocked(Ljava/lang/String;I)Z
+HSPLcom/android/server/notification/PreferencesHelper;->getNotificationChannel(Ljava/lang/String;ILjava/lang/String;Z)Landroid/app/NotificationChannel;
+HPLcom/android/server/notification/PreferencesHelper;->getNotificationChannelGroup(Ljava/lang/String;Ljava/lang/String;I)Landroid/app/NotificationChannelGroup;
HPLcom/android/server/notification/PreferencesHelper;->getNotificationChannelGroupWithChannels(Ljava/lang/String;ILjava/lang/String;Z)Landroid/app/NotificationChannelGroup;
-PLcom/android/server/notification/PreferencesHelper;->getNotificationChannelGroups(Ljava/lang/String;IZZZ)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/notification/PreferencesHelper;->getNotificationChannels(Ljava/lang/String;IZ)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/notification/PreferencesHelper;->getOrCreatePackagePreferencesLocked(Ljava/lang/String;I)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;
-HPLcom/android/server/notification/PreferencesHelper;->getOrCreatePackagePreferencesLocked(Ljava/lang/String;IIIIIZZ)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;
-PLcom/android/server/notification/PreferencesHelper;->getPackagePreferencesLocked(Ljava/lang/String;I)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;
+HPLcom/android/server/notification/PreferencesHelper;->getNotificationChannelGroups(Ljava/lang/String;IZZZ)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/notification/PreferencesHelper;->getNotificationChannels(Ljava/lang/String;IZ)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/server/notification/PreferencesHelper;->getOrCreatePackagePreferencesLocked(Ljava/lang/String;I)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;
+HSPLcom/android/server/notification/PreferencesHelper;->getOrCreatePackagePreferencesLocked(Ljava/lang/String;IIIIIZZ)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;
+PLcom/android/server/notification/PreferencesHelper;->getPackageBans()Ljava/util/Map;
+PLcom/android/server/notification/PreferencesHelper;->getPackageChannels()Ljava/util/Map;
+HSPLcom/android/server/notification/PreferencesHelper;->getPackagePreferencesLocked(Ljava/lang/String;I)Lcom/android/server/notification/PreferencesHelper$PackagePreferences;
HPLcom/android/server/notification/PreferencesHelper;->isGroupBlocked(Ljava/lang/String;ILjava/lang/String;)Z
-PLcom/android/server/notification/PreferencesHelper;->lockChannelsForOEM([Ljava/lang/String;)V
+HSPLcom/android/server/notification/PreferencesHelper;->lockChannelsForOEM([Ljava/lang/String;)V
HPLcom/android/server/notification/PreferencesHelper;->onPackagesChanged(ZI[Ljava/lang/String;[I)Z
PLcom/android/server/notification/PreferencesHelper;->onUserSwitched(I)V
+PLcom/android/server/notification/PreferencesHelper;->onUserUnlocked(I)V
PLcom/android/server/notification/PreferencesHelper;->onlyHasDefaultChannel(Ljava/lang/String;I)Z
-HPLcom/android/server/notification/PreferencesHelper;->packagePreferencesKey(Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/notification/PreferencesHelper;->readXml(Lorg/xmlpull/v1/XmlPullParser;ZI)V
-HPLcom/android/server/notification/PreferencesHelper;->shouldHaveDefaultChannel(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;)Z
+HSPLcom/android/server/notification/PreferencesHelper;->packagePreferencesKey(Ljava/lang/String;I)Ljava/lang/String;
+HSPLcom/android/server/notification/PreferencesHelper;->readXml(Lorg/xmlpull/v1/XmlPullParser;ZI)V
+HSPLcom/android/server/notification/PreferencesHelper;->shouldHaveDefaultChannel(Lcom/android/server/notification/PreferencesHelper$PackagePreferences;)Z
PLcom/android/server/notification/PreferencesHelper;->shouldHideSilentStatusIcons()Z
-PLcom/android/server/notification/PreferencesHelper;->syncChannelsBypassingDnd(I)V
+HSPLcom/android/server/notification/PreferencesHelper;->syncChannelsBypassingDnd(I)V
HPLcom/android/server/notification/PreferencesHelper;->unrestoredPackageKey(Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/notification/PreferencesHelper;->updateBadgingEnabled()V
-PLcom/android/server/notification/PreferencesHelper;->updateBubblesEnabled()V
-HPLcom/android/server/notification/PreferencesHelper;->updateChannelsBypassingDnd(I)V
-PLcom/android/server/notification/PreferencesHelper;->updateConfig()V
-HPLcom/android/server/notification/PreferencesHelper;->updateDefaultApps(ILandroid/util/ArraySet;Landroid/util/ArraySet;)V
+HSPLcom/android/server/notification/PreferencesHelper;->updateBadgingEnabled()V
+HSPLcom/android/server/notification/PreferencesHelper;->updateBubblesEnabled()V
+HSPLcom/android/server/notification/PreferencesHelper;->updateChannelsBypassingDnd(I)V
+HSPLcom/android/server/notification/PreferencesHelper;->updateConfig()V
+HSPLcom/android/server/notification/PreferencesHelper;->updateDefaultApps(ILandroid/util/ArraySet;Landroid/util/ArraySet;)V
PLcom/android/server/notification/PreferencesHelper;->updateNotificationChannel(Ljava/lang/String;ILandroid/app/NotificationChannel;Z)V
-PLcom/android/server/notification/PreferencesHelper;->wasBadgingForcedTrue(Landroid/content/Context;)Z
-HPLcom/android/server/notification/PreferencesHelper;->writeXml(Lorg/xmlpull/v1/XmlSerializer;ZI)V
-PLcom/android/server/notification/PriorityExtractor;-><init>()V
-PLcom/android/server/notification/PriorityExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
+HSPLcom/android/server/notification/PreferencesHelper;->wasBadgingForcedTrue(Landroid/content/Context;)Z
+HSPLcom/android/server/notification/PreferencesHelper;->writeXml(Lorg/xmlpull/v1/XmlSerializer;ZI)V
+HSPLcom/android/server/notification/PriorityExtractor;-><init>()V
+HSPLcom/android/server/notification/PriorityExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
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
+HSPLcom/android/server/notification/PriorityExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
+HSPLcom/android/server/notification/PriorityExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
+HSPLcom/android/server/notification/PropConfig;->getStringArray(Landroid/content/Context;Ljava/lang/String;I)[Ljava/lang/String;
+HSPLcom/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;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
HPLcom/android/server/notification/RankingHelper;->extractSignals(Lcom/android/server/notification/NotificationRecord;)V
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
+HSPLcom/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/RankingReconsideration;->run()V
+HPLcom/android/server/notification/RankingReconsideration;->run()V
PLcom/android/server/notification/RateEstimator;-><init>()V
-PLcom/android/server/notification/RateEstimator;->getInterarrivalEstimate(J)D
+HPLcom/android/server/notification/RateEstimator;->getInterarrivalEstimate(J)D
+PLcom/android/server/notification/RateEstimator;->getRate(J)F
PLcom/android/server/notification/RateEstimator;->update(J)F
-PLcom/android/server/notification/ScheduleConditionProvider$1;-><init>(Lcom/android/server/notification/ScheduleConditionProvider;)V
+HSPLcom/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;-><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
+HSPLcom/android/server/notification/ScheduleConditionProvider;-><clinit>()V
+HSPLcom/android/server/notification/ScheduleConditionProvider;-><init>()V
+PLcom/android/server/notification/ScheduleConditionProvider;->addSnoozed(Landroid/net/Uri;)V
+HSPLcom/android/server/notification/ScheduleConditionProvider;->asInterface()Landroid/service/notification/IConditionProvider;
+HSPLcom/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;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
PLcom/android/server/notification/ScheduleConditionProvider;->evaluateSubscriptionLocked(Landroid/net/Uri;Landroid/service/notification/ScheduleCalendar;JJ)Landroid/service/notification/Condition;
PLcom/android/server/notification/ScheduleConditionProvider;->evaluateSubscriptions()V
-PLcom/android/server/notification/ScheduleConditionProvider;->getComponent()Landroid/content/ComponentName;
+HSPLcom/android/server/notification/ScheduleConditionProvider;->getComponent()Landroid/content/ComponentName;
PLcom/android/server/notification/ScheduleConditionProvider;->getNextAlarm()J
-PLcom/android/server/notification/ScheduleConditionProvider;->isValidConditionId(Landroid/net/Uri;)Z
-PLcom/android/server/notification/ScheduleConditionProvider;->onBootComplete()V
+HSPLcom/android/server/notification/ScheduleConditionProvider;->isValidConditionId(Landroid/net/Uri;)Z
+HSPLcom/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
@@ -10907,24 +13104,27 @@ PLcom/android/server/notification/ScheduleConditionProvider;->removeSnoozed(Land
PLcom/android/server/notification/ScheduleConditionProvider;->saveSnoozedLocked()V
PLcom/android/server/notification/ScheduleConditionProvider;->setRegistered(Z)V
PLcom/android/server/notification/ScheduleConditionProvider;->updateAlarm(JJ)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
+HSPLcom/android/server/notification/SnoozeHelper$1;-><init>(Lcom/android/server/notification/SnoozeHelper;)V
+HSPLcom/android/server/notification/SnoozeHelper;-><clinit>()V
+HSPLcom/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
-PLcom/android/server/notification/SnoozeHelper;->cancel(ILjava/lang/String;Ljava/lang/String;I)Z
+HPLcom/android/server/notification/SnoozeHelper;->cancel(ILjava/lang/String;Ljava/lang/String;I)Z
+PLcom/android/server/notification/SnoozeHelper;->dump(Ljava/io/PrintWriter;Lcom/android/server/notification/NotificationManagerService$DumpFilter;)V
HPLcom/android/server/notification/SnoozeHelper;->getSnoozeContextForUnpostedNotification(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
HPLcom/android/server/notification/SnoozeHelper;->getSnoozeTimeForUnpostedNotification(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/Long;
+PLcom/android/server/notification/SnoozeHelper;->getSnoozed()Ljava/util/List;
PLcom/android/server/notification/SnoozeHelper;->getSnoozed(ILjava/lang/String;)Ljava/util/Collection;
PLcom/android/server/notification/SnoozeHelper;->isSnoozed(ILjava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/notification/SnoozeHelper;->readXml(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/server/notification/SnoozeHelper;->readXml(Lorg/xmlpull/v1/XmlPullParser;)V
HPLcom/android/server/notification/SnoozeHelper;->removeRecord(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Landroid/util/ArrayMap;)Ljava/lang/Object;
PLcom/android/server/notification/SnoozeHelper;->repostGroupSummary(Ljava/lang/String;ILjava/lang/String;)V
-HPLcom/android/server/notification/SnoozeHelper;->writeXml(Lorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/notification/SnoozeHelper;->writeXml(Lorg/xmlpull/v1/XmlSerializer;Landroid/util/ArrayMap;Ljava/lang/String;Lcom/android/server/notification/SnoozeHelper$Inserter;)V
-PLcom/android/server/notification/SystemConditionProviderService;-><init>()V
+HSPLcom/android/server/notification/SnoozeHelper;->writeXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/notification/SnoozeHelper;->writeXml(Lorg/xmlpull/v1/XmlSerializer;Landroid/util/ArrayMap;Ljava/lang/String;Lcom/android/server/notification/SnoozeHelper$Inserter;)V
+HSPLcom/android/server/notification/SystemConditionProviderService;-><init>()V
+PLcom/android/server/notification/SystemConditionProviderService;->dumpUpcomingTime(Ljava/io/PrintWriter;Ljava/lang/String;JJ)V
PLcom/android/server/notification/SystemConditionProviderService;->formatDuration(J)Ljava/lang/String;
PLcom/android/server/notification/SystemConditionProviderService;->ts(J)Ljava/lang/String;
-PLcom/android/server/notification/ValidateNotificationPeople$1;-><init>(Lcom/android/server/notification/ValidateNotificationPeople;Landroid/os/Handler;)V
+HSPLcom/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
HPLcom/android/server/notification/ValidateNotificationPeople$LookupResult;-><init>()V
HPLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->access$400(Lcom/android/server/notification/ValidateNotificationPeople$LookupResult;)Z
@@ -10933,393 +13133,458 @@ HPLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->isE
HPLcom/android/server/notification/ValidateNotificationPeople$LookupResult;->isInvalid()Z
HPLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;-><init>(Lcom/android/server/notification/ValidateNotificationPeople;Landroid/content/Context;Ljava/lang/String;Ljava/util/LinkedList;)V
HPLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;-><init>(Lcom/android/server/notification/ValidateNotificationPeople;Landroid/content/Context;Ljava/lang/String;Ljava/util/LinkedList;Lcom/android/server/notification/ValidateNotificationPeople$1;)V
-PLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;->applyChangesLocked(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;->setRecord(Lcom/android/server/notification/NotificationRecord;)V
-PLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;->work()V
-PLcom/android/server/notification/ValidateNotificationPeople;-><clinit>()V
-PLcom/android/server/notification/ValidateNotificationPeople;-><init>()V
+HPLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;->applyChangesLocked(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;->setRecord(Lcom/android/server/notification/NotificationRecord;)V
+HPLcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;->work()V
+HSPLcom/android/server/notification/ValidateNotificationPeople;-><clinit>()V
+HSPLcom/android/server/notification/ValidateNotificationPeople;-><init>()V
HPLcom/android/server/notification/ValidateNotificationPeople;->combineLists([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
HPLcom/android/server/notification/ValidateNotificationPeople;->getContextAsUser(Landroid/os/UserHandle;)Landroid/content/Context;
+PLcom/android/server/notification/ValidateNotificationPeople;->getExtraPeople(Landroid/os/Bundle;)[Ljava/lang/String;
HPLcom/android/server/notification/ValidateNotificationPeople;->getExtraPeopleForKey(Landroid/os/Bundle;Ljava/lang/String;)[Ljava/lang/String;
-PLcom/android/server/notification/ValidateNotificationPeople;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
+HSPLcom/android/server/notification/ValidateNotificationPeople;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
HPLcom/android/server/notification/ValidateNotificationPeople;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
-PLcom/android/server/notification/ValidateNotificationPeople;->searchContacts(Landroid/content/Context;Landroid/net/Uri;)Lcom/android/server/notification/ValidateNotificationPeople$LookupResult;
-PLcom/android/server/notification/ValidateNotificationPeople;->setConfig(Lcom/android/server/notification/RankingConfig;)V
-PLcom/android/server/notification/ValidateNotificationPeople;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
+HPLcom/android/server/notification/ValidateNotificationPeople;->searchContacts(Landroid/content/Context;Landroid/net/Uri;)Lcom/android/server/notification/ValidateNotificationPeople$LookupResult;
+HSPLcom/android/server/notification/ValidateNotificationPeople;->setConfig(Lcom/android/server/notification/RankingConfig;)V
+HSPLcom/android/server/notification/ValidateNotificationPeople;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
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;[F)Lcom/android/server/notification/ValidateNotificationPeople$PeopleRankingReconsideration;
-PLcom/android/server/notification/VisibilityExtractor;-><init>()V
-PLcom/android/server/notification/VisibilityExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
+HSPLcom/android/server/notification/VisibilityExtractor;-><init>()V
+HSPLcom/android/server/notification/VisibilityExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
HPLcom/android/server/notification/VisibilityExtractor;->process(Lcom/android/server/notification/NotificationRecord;)Lcom/android/server/notification/RankingReconsideration;
-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
-PLcom/android/server/notification/ZenLog;->append(ILjava/lang/String;)V
+HSPLcom/android/server/notification/VisibilityExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
+HSPLcom/android/server/notification/VisibilityExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
+HSPLcom/android/server/notification/ZenLog;-><clinit>()V
+HSPLcom/android/server/notification/ZenLog;->append(ILjava/lang/String;)V
+PLcom/android/server/notification/ZenLog;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/notification/ZenLog;->ringerModeToString(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;->traceConfig(Ljava/lang/String;Landroid/service/notification/ZenModeConfig;Landroid/service/notification/ZenModeConfig;)V
-PLcom/android/server/notification/ZenLog;->traceIntercepted(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;)V
-PLcom/android/server/notification/ZenLog;->traceSetConsolidatedZenPolicy(Landroid/app/NotificationManager$Policy;Ljava/lang/String;)V
-PLcom/android/server/notification/ZenLog;->traceSetRingerModeInternal(IILjava/lang/String;II)V
-PLcom/android/server/notification/ZenLog;->traceSetZenMode(ILjava/lang/String;)V
+HSPLcom/android/server/notification/ZenLog;->traceConfig(Ljava/lang/String;Landroid/service/notification/ZenModeConfig;Landroid/service/notification/ZenModeConfig;)V
+HPLcom/android/server/notification/ZenLog;->traceIntercepted(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;)V
+PLcom/android/server/notification/ZenLog;->traceNotIntercepted(Lcom/android/server/notification/NotificationRecord;Ljava/lang/String;)V
+HSPLcom/android/server/notification/ZenLog;->traceSetConsolidatedZenPolicy(Landroid/app/NotificationManager$Policy;Ljava/lang/String;)V
+HSPLcom/android/server/notification/ZenLog;->traceSetRingerModeInternal(IILjava/lang/String;II)V
+HSPLcom/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;->traceUnsubscribe(Landroid/net/Uri;Landroid/service/notification/IConditionProvider;Landroid/os/RemoteException;)V
-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
-PLcom/android/server/notification/ZenModeConditions;->evaluateConfig(Landroid/service/notification/ZenModeConfig;Landroid/content/ComponentName;Z)V
-PLcom/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/ZenLog;->typeToString(I)Ljava/lang/String;
+HSPLcom/android/server/notification/ZenLog;->zenModeToString(I)Ljava/lang/String;
+HSPLcom/android/server/notification/ZenModeConditions;-><clinit>()V
+HSPLcom/android/server/notification/ZenModeConditions;-><init>(Lcom/android/server/notification/ZenModeHelper;Lcom/android/server/notification/ConditionProviders;)V
+HSPLcom/android/server/notification/ZenModeConditions;->evaluateConfig(Landroid/service/notification/ZenModeConfig;Landroid/content/ComponentName;Z)V
+HSPLcom/android/server/notification/ZenModeConditions;->evaluateRule(Landroid/service/notification/ZenModeConfig$ZenRule;Landroid/util/ArraySet;Landroid/content/ComponentName;Z)V
+HSPLcom/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;->onServiceAdded(Landroid/content/ComponentName;)V
PLcom/android/server/notification/ZenModeConditions;->onUserSwitched()V
-PLcom/android/server/notification/ZenModeConditions;->updateSnoozing(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
-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
+HSPLcom/android/server/notification/ZenModeConditions;->updateSnoozing(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
+HSPLcom/android/server/notification/ZenModeExtractor;-><clinit>()V
+HSPLcom/android/server/notification/ZenModeExtractor;-><init>()V
+HSPLcom/android/server/notification/ZenModeExtractor;->initialize(Landroid/content/Context;Lcom/android/server/notification/NotificationUsageStats;)V
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$1;)V
+HSPLcom/android/server/notification/ZenModeExtractor;->setConfig(Lcom/android/server/notification/RankingConfig;)V
+HSPLcom/android/server/notification/ZenModeExtractor;->setZenHelper(Lcom/android/server/notification/ZenModeHelper;)V
+HSPLcom/android/server/notification/ZenModeFiltering$RepeatCallers;-><init>()V
+HSPLcom/android/server/notification/ZenModeFiltering$RepeatCallers;-><init>(Lcom/android/server/notification/ZenModeFiltering$1;)V
PLcom/android/server/notification/ZenModeFiltering$RepeatCallers;->peopleString(Landroid/os/Bundle;)Ljava/lang/String;
PLcom/android/server/notification/ZenModeFiltering$RepeatCallers;->recordCall(Landroid/content/Context;Landroid/os/Bundle;)V
-PLcom/android/server/notification/ZenModeFiltering;-><clinit>()V
-PLcom/android/server/notification/ZenModeFiltering;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/notification/ZenModeFiltering;-><clinit>()V
+HSPLcom/android/server/notification/ZenModeFiltering;-><init>(Landroid/content/Context;)V
+PLcom/android/server/notification/ZenModeFiltering;->audienceMatches(IF)Z
+PLcom/android/server/notification/ZenModeFiltering;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/notification/ZenModeFiltering;->isAlarm(Lcom/android/server/notification/NotificationRecord;)Z
PLcom/android/server/notification/ZenModeFiltering;->isCall(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/ZenModeFiltering;->isDefaultPhoneApp(Ljava/lang/String;)Z
+PLcom/android/server/notification/ZenModeFiltering;->isCritical(Lcom/android/server/notification/NotificationRecord;)Z
+HPLcom/android/server/notification/ZenModeFiltering;->isDefaultPhoneApp(Ljava/lang/String;)Z
+PLcom/android/server/notification/ZenModeFiltering;->isEvent(Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/ZenModeFiltering;->isMedia(Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/ZenModeFiltering;->isMessage(Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/ZenModeFiltering;->isReminder(Lcom/android/server/notification/NotificationRecord;)Z
+PLcom/android/server/notification/ZenModeFiltering;->isSystem(Lcom/android/server/notification/NotificationRecord;)Z
PLcom/android/server/notification/ZenModeFiltering;->recordCall(Lcom/android/server/notification/NotificationRecord;)V
HPLcom/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$Callback;->onAutomaticRuleStatusChanged(ILjava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/notification/ZenModeHelper$Callback;->onConsolidatedPolicyChanged()V
-PLcom/android/server/notification/ZenModeHelper$Callback;->onPolicyChanged()V
-PLcom/android/server/notification/ZenModeHelper$H$ConfigMessageData;-><init>(Lcom/android/server/notification/ZenModeHelper$H;Landroid/service/notification/ZenModeConfig;Ljava/lang/String;Landroid/content/ComponentName;Z)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$1;)V
-PLcom/android/server/notification/ZenModeHelper$H;->access$200(Lcom/android/server/notification/ZenModeHelper$H;)V
-PLcom/android/server/notification/ZenModeHelper$H;->access$300(Lcom/android/server/notification/ZenModeHelper$H;Landroid/service/notification/ZenModeConfig;Ljava/lang/String;Landroid/content/ComponentName;Z)V
+HSPLcom/android/server/notification/ZenModeHelper$Callback;-><init>()V
+HSPLcom/android/server/notification/ZenModeHelper$Callback;->onConsolidatedPolicyChanged()V
+HSPLcom/android/server/notification/ZenModeHelper$Callback;->onPolicyChanged()V
+HSPLcom/android/server/notification/ZenModeHelper$H$ConfigMessageData;-><init>(Lcom/android/server/notification/ZenModeHelper$H;Landroid/service/notification/ZenModeConfig;Ljava/lang/String;Landroid/content/ComponentName;Z)V
+HSPLcom/android/server/notification/ZenModeHelper$H;-><init>(Lcom/android/server/notification/ZenModeHelper;Landroid/os/Looper;)V
+HSPLcom/android/server/notification/ZenModeHelper$H;-><init>(Lcom/android/server/notification/ZenModeHelper;Landroid/os/Looper;Lcom/android/server/notification/ZenModeHelper$1;)V
+HSPLcom/android/server/notification/ZenModeHelper$H;->access$200(Lcom/android/server/notification/ZenModeHelper$H;)V
+HSPLcom/android/server/notification/ZenModeHelper$H;->access$300(Lcom/android/server/notification/ZenModeHelper$H;Landroid/service/notification/ZenModeConfig;Ljava/lang/String;Landroid/content/ComponentName;Z)V
+HSPLcom/android/server/notification/ZenModeHelper$H;->access$400(Lcom/android/server/notification/ZenModeHelper$H;)V
PLcom/android/server/notification/ZenModeHelper$H;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/notification/ZenModeHelper$H;->postApplyConfig(Landroid/service/notification/ZenModeConfig;Ljava/lang/String;Landroid/content/ComponentName;Z)V
-PLcom/android/server/notification/ZenModeHelper$H;->postMetricsTimer()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$1;)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
+HSPLcom/android/server/notification/ZenModeHelper$H;->postApplyConfig(Landroid/service/notification/ZenModeConfig;Ljava/lang/String;Landroid/content/ComponentName;Z)V
+HSPLcom/android/server/notification/ZenModeHelper$H;->postDispatchOnZenModeChanged()V
+HSPLcom/android/server/notification/ZenModeHelper$H;->postMetricsTimer()V
+HSPLcom/android/server/notification/ZenModeHelper$Metrics;-><init>(Lcom/android/server/notification/ZenModeHelper;)V
+HSPLcom/android/server/notification/ZenModeHelper$Metrics;-><init>(Lcom/android/server/notification/ZenModeHelper;Lcom/android/server/notification/ZenModeHelper$1;)V
+HSPLcom/android/server/notification/ZenModeHelper$Metrics;->emit()V
+HSPLcom/android/server/notification/ZenModeHelper$Metrics;->emitDndType()V
+HSPLcom/android/server/notification/ZenModeHelper$Metrics;->emitRules()V
+HSPLcom/android/server/notification/ZenModeHelper$Metrics;->emitZenMode()V
+HSPLcom/android/server/notification/ZenModeHelper$Metrics;->onConfigChanged()V
PLcom/android/server/notification/ZenModeHelper$Metrics;->onZenModeChanged()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$SettingsObserver;-><init>(Lcom/android/server/notification/ZenModeHelper;Landroid/os/Handler;)V
-PLcom/android/server/notification/ZenModeHelper$SettingsObserver;->observe()V
+HSPLcom/android/server/notification/ZenModeHelper$RingerModeDelegate;-><init>(Lcom/android/server/notification/ZenModeHelper;)V
+HSPLcom/android/server/notification/ZenModeHelper$RingerModeDelegate;->getRingerModeAffectedStreams(I)I
+HSPLcom/android/server/notification/ZenModeHelper$RingerModeDelegate;->onSetRingerModeInternal(IILjava/lang/String;ILandroid/media/VolumePolicy;)I
+PLcom/android/server/notification/ZenModeHelper$RingerModeDelegate;->toString()Ljava/lang/String;
+HSPLcom/android/server/notification/ZenModeHelper$SettingsObserver;-><init>(Lcom/android/server/notification/ZenModeHelper;Landroid/os/Handler;)V
+HSPLcom/android/server/notification/ZenModeHelper$SettingsObserver;->observe()V
PLcom/android/server/notification/ZenModeHelper$SettingsObserver;->onChange(ZLandroid/net/Uri;)V
-PLcom/android/server/notification/ZenModeHelper$SettingsObserver;->update(Landroid/net/Uri;)V
-PLcom/android/server/notification/ZenModeHelper;-><clinit>()V
-PLcom/android/server/notification/ZenModeHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/notification/ConditionProviders;)V
+HSPLcom/android/server/notification/ZenModeHelper$SettingsObserver;->update(Landroid/net/Uri;)V
+HSPLcom/android/server/notification/ZenModeHelper;-><clinit>()V
+HSPLcom/android/server/notification/ZenModeHelper;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/notification/ConditionProviders;)V
+PLcom/android/server/notification/ZenModeHelper;->access$1000(Lcom/android/server/notification/ZenModeHelper;)V
PLcom/android/server/notification/ZenModeHelper;->access$1300(Lcom/android/server/notification/ZenModeHelper;Landroid/service/notification/ZenModeConfig;Ljava/lang/String;Landroid/content/ComponentName;Z)V
-PLcom/android/server/notification/ZenModeHelper;->access$500(Lcom/android/server/notification/ZenModeHelper;Ljava/lang/Integer;)V
-PLcom/android/server/notification/ZenModeHelper;->access$700(Lcom/android/server/notification/ZenModeHelper;)Landroid/content/Context;
-PLcom/android/server/notification/ZenModeHelper;->access$900(Lcom/android/server/notification/ZenModeHelper;)Lcom/android/server/notification/ZenModeHelper$H;
-PLcom/android/server/notification/ZenModeHelper;->addAutomaticZenRule(Landroid/app/AutomaticZenRule;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/notification/ZenModeHelper;->addCallback(Lcom/android/server/notification/ZenModeHelper$Callback;)V
+HSPLcom/android/server/notification/ZenModeHelper;->access$500(Lcom/android/server/notification/ZenModeHelper;Ljava/lang/Integer;)V
+HSPLcom/android/server/notification/ZenModeHelper;->access$700(Lcom/android/server/notification/ZenModeHelper;)Landroid/content/Context;
+PLcom/android/server/notification/ZenModeHelper;->access$800(Lcom/android/server/notification/ZenModeHelper;)I
+HSPLcom/android/server/notification/ZenModeHelper;->access$900(Lcom/android/server/notification/ZenModeHelper;)Lcom/android/server/notification/ZenModeHelper$H;
+HSPLcom/android/server/notification/ZenModeHelper;->addCallback(Lcom/android/server/notification/ZenModeHelper$Callback;)V
PLcom/android/server/notification/ZenModeHelper;->applyConfig(Landroid/service/notification/ZenModeConfig;Ljava/lang/String;Landroid/content/ComponentName;Z)V
-PLcom/android/server/notification/ZenModeHelper;->applyCustomPolicy(Landroid/service/notification/ZenPolicy;Landroid/service/notification/ZenModeConfig$ZenRule;)V
-PLcom/android/server/notification/ZenModeHelper;->applyRestrictions()V
-PLcom/android/server/notification/ZenModeHelper;->applyRestrictions(ZZI)V
-HPLcom/android/server/notification/ZenModeHelper;->applyRestrictions(ZZII)V
-PLcom/android/server/notification/ZenModeHelper;->applyZenToRingerMode()V
+HSPLcom/android/server/notification/ZenModeHelper;->applyCustomPolicy(Landroid/service/notification/ZenPolicy;Landroid/service/notification/ZenModeConfig$ZenRule;)V
+HSPLcom/android/server/notification/ZenModeHelper;->applyRestrictions()V
+HSPLcom/android/server/notification/ZenModeHelper;->applyRestrictions(ZZI)V
+HSPLcom/android/server/notification/ZenModeHelper;->applyRestrictions(ZZII)V
+HSPLcom/android/server/notification/ZenModeHelper;->applyZenToRingerMode()V
PLcom/android/server/notification/ZenModeHelper;->canManageAutomaticZenRule(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
-PLcom/android/server/notification/ZenModeHelper;->cleanUpZenRules()V
-PLcom/android/server/notification/ZenModeHelper;->computeZenMode()I
-PLcom/android/server/notification/ZenModeHelper;->dispatchOnAutomaticRuleStatusChanged(ILjava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/notification/ZenModeHelper;->dispatchOnConfigChanged()V
-PLcom/android/server/notification/ZenModeHelper;->dispatchOnConsolidatedPolicyChanged()V
-PLcom/android/server/notification/ZenModeHelper;->dispatchOnPolicyChanged()V
-PLcom/android/server/notification/ZenModeHelper;->evaluateZenMode(Ljava/lang/String;Z)V
+HSPLcom/android/server/notification/ZenModeHelper;->cleanUpZenRules()V
+HSPLcom/android/server/notification/ZenModeHelper;->computeZenMode()I
+PLcom/android/server/notification/ZenModeHelper;->createAutomaticZenRule(Landroid/service/notification/ZenModeConfig$ZenRule;)Landroid/app/AutomaticZenRule;
+HSPLcom/android/server/notification/ZenModeHelper;->dispatchOnConfigChanged()V
+HSPLcom/android/server/notification/ZenModeHelper;->dispatchOnConsolidatedPolicyChanged()V
+HSPLcom/android/server/notification/ZenModeHelper;->dispatchOnPolicyChanged()V
+PLcom/android/server/notification/ZenModeHelper;->dispatchOnZenModeChanged()V
+PLcom/android/server/notification/ZenModeHelper;->dump(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/notification/ZenModeHelper;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/notification/ZenModeHelper;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Landroid/service/notification/ZenModeConfig;)V
+HSPLcom/android/server/notification/ZenModeHelper;->evaluateZenMode(Ljava/lang/String;Z)V
PLcom/android/server/notification/ZenModeHelper;->findMatchingRule(Landroid/service/notification/ZenModeConfig;Landroid/net/Uri;Landroid/service/notification/Condition;)Landroid/service/notification/ZenModeConfig$ZenRule;
PLcom/android/server/notification/ZenModeHelper;->getAutomaticZenRule(Ljava/lang/String;)Landroid/app/AutomaticZenRule;
-PLcom/android/server/notification/ZenModeHelper;->getConfig()Landroid/service/notification/ZenModeConfig;
-PLcom/android/server/notification/ZenModeHelper;->getConsolidatedNotificationPolicy()Landroid/app/NotificationManager$Policy;
-PLcom/android/server/notification/ZenModeHelper;->getCurrentInstanceCount(Landroid/content/ComponentName;)I
-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;->getServiceInfo(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
-PLcom/android/server/notification/ZenModeHelper;->getZenMode()I
-PLcom/android/server/notification/ZenModeHelper;->getZenModeListenerInterruptionFilter()I
+HSPLcom/android/server/notification/ZenModeHelper;->getConfig()Landroid/service/notification/ZenModeConfig;
+HSPLcom/android/server/notification/ZenModeHelper;->getConsolidatedNotificationPolicy()Landroid/app/NotificationManager$Policy;
+HSPLcom/android/server/notification/ZenModeHelper;->getNotificationPolicy()Landroid/app/NotificationManager$Policy;
+HSPLcom/android/server/notification/ZenModeHelper;->getNotificationPolicy(Landroid/service/notification/ZenModeConfig;)Landroid/app/NotificationManager$Policy;
+PLcom/android/server/notification/ZenModeHelper;->getPreviousRingerModeSetting()I
+HSPLcom/android/server/notification/ZenModeHelper;->getZenMode()I
+HSPLcom/android/server/notification/ZenModeHelper;->getZenModeListenerInterruptionFilter()I
+PLcom/android/server/notification/ZenModeHelper;->getZenModeSetting()I
PLcom/android/server/notification/ZenModeHelper;->getZenRules()Ljava/util/List;
-PLcom/android/server/notification/ZenModeHelper;->initZenMode()V
-PLcom/android/server/notification/ZenModeHelper;->isSystemRule(Landroid/app/AutomaticZenRule;)Z
+HSPLcom/android/server/notification/ZenModeHelper;->initZenMode()V
PLcom/android/server/notification/ZenModeHelper;->loadConfigForUser(ILjava/lang/String;)V
-PLcom/android/server/notification/ZenModeHelper;->onSystemReady()V
+HSPLcom/android/server/notification/ZenModeHelper;->onSystemReady()V
PLcom/android/server/notification/ZenModeHelper;->onUserSwitched(I)V
+PLcom/android/server/notification/ZenModeHelper;->onUserUnlocked(I)V
PLcom/android/server/notification/ZenModeHelper;->populateZenRule(Landroid/app/AutomaticZenRule;Landroid/service/notification/ZenModeConfig$ZenRule;Z)V
-PLcom/android/server/notification/ZenModeHelper;->readDefaultConfig(Landroid/content/res/Resources;)Landroid/service/notification/ZenModeConfig;
-PLcom/android/server/notification/ZenModeHelper;->readXml(Lorg/xmlpull/v1/XmlPullParser;ZI)V
-PLcom/android/server/notification/ZenModeHelper;->removeAutomaticZenRule(Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/server/notification/ZenModeHelper;->readDefaultConfig(Landroid/content/res/Resources;)Landroid/service/notification/ZenModeConfig;
+HSPLcom/android/server/notification/ZenModeHelper;->readXml(Lorg/xmlpull/v1/XmlPullParser;ZI)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;)V
PLcom/android/server/notification/ZenModeHelper;->setAutomaticZenRuleStateLocked(Landroid/service/notification/ZenModeConfig;Landroid/service/notification/ZenModeConfig$ZenRule;Landroid/service/notification/Condition;)V
PLcom/android/server/notification/ZenModeHelper;->setConfig(Landroid/service/notification/ZenModeConfig;Landroid/content/ComponentName;Ljava/lang/String;)V
-PLcom/android/server/notification/ZenModeHelper;->setConfigLocked(Landroid/service/notification/ZenModeConfig;Landroid/content/ComponentName;Ljava/lang/String;)Z
-PLcom/android/server/notification/ZenModeHelper;->setConfigLocked(Landroid/service/notification/ZenModeConfig;Ljava/lang/String;Landroid/content/ComponentName;Z)Z
-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;->setZenModeSetting(I)V
+HSPLcom/android/server/notification/ZenModeHelper;->setConfigLocked(Landroid/service/notification/ZenModeConfig;Landroid/content/ComponentName;Ljava/lang/String;)Z
+HSPLcom/android/server/notification/ZenModeHelper;->setConfigLocked(Landroid/service/notification/ZenModeConfig;Ljava/lang/String;Landroid/content/ComponentName;Z)Z
+PLcom/android/server/notification/ZenModeHelper;->setManualZenMode(ILandroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Z)V
+HSPLcom/android/server/notification/ZenModeHelper;->setPreviousRingerModeSetting(Ljava/lang/Integer;)V
+HSPLcom/android/server/notification/ZenModeHelper;->setPriorityOnlyDndExemptPackages([Ljava/lang/String;)V
+HSPLcom/android/server/notification/ZenModeHelper;->setZenModeSetting(I)V
HPLcom/android/server/notification/ZenModeHelper;->shouldIntercept(Lcom/android/server/notification/NotificationRecord;)Z
-PLcom/android/server/notification/ZenModeHelper;->showZenUpgradeNotification(I)V
+HSPLcom/android/server/notification/ZenModeHelper;->showZenUpgradeNotification(I)V
PLcom/android/server/notification/ZenModeHelper;->updateAutomaticZenRule(Ljava/lang/String;Landroid/app/AutomaticZenRule;Ljava/lang/String;)Z
-PLcom/android/server/notification/ZenModeHelper;->updateConsolidatedPolicy(Ljava/lang/String;)V
-PLcom/android/server/notification/ZenModeHelper;->updateDefaultAutomaticRuleNames()V
-PLcom/android/server/notification/ZenModeHelper;->updateRingerModeAffectedStreams()V
+HSPLcom/android/server/notification/ZenModeHelper;->updateConsolidatedPolicy(Ljava/lang/String;)V
+HSPLcom/android/server/notification/ZenModeHelper;->updateDefaultAutomaticRuleNames()V
+HSPLcom/android/server/notification/ZenModeHelper;->updateRingerModeAffectedStreams()V
PLcom/android/server/notification/ZenModeHelper;->updateSnoozing(Landroid/service/notification/ZenModeConfig$ZenRule;)Z
-PLcom/android/server/notification/ZenModeHelper;->writeXml(Lorg/xmlpull/v1/XmlSerializer;ZLjava/lang/Integer;I)V
-PLcom/android/server/oemlock/OemLock;-><init>()V
-PLcom/android/server/oemlock/OemLockService$1;-><init>(Lcom/android/server/oemlock/OemLockService;)V
+HSPLcom/android/server/notification/ZenModeHelper;->writeXml(Lorg/xmlpull/v1/XmlSerializer;ZLjava/lang/Integer;I)V
+HSPLcom/android/server/notification/ZenModeHelper;->zenSeverity(I)I
+HSPLcom/android/server/oemlock/OemLock;-><init>()V
+HSPLcom/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/VendorLock;-><init>(Landroid/content/Context;Landroid/hardware/oemlock/V1_0/IOemLock;)V
-PLcom/android/server/oemlock/VendorLock;->getOemLockHalService()Landroid/hardware/oemlock/V1_0/IOemLock;
-PLcom/android/server/om/-$$Lambda$IdmapDaemon$Connection$4U-n0RSv1BPv15mvu8B8zXARcpk;-><init>(Lcom/android/server/om/IdmapDaemon$Connection;)V
+HSPLcom/android/server/oemlock/OemLockService$2;-><init>(Lcom/android/server/oemlock/OemLockService;)V
+HSPLcom/android/server/oemlock/OemLockService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/oemlock/OemLockService;-><init>(Landroid/content/Context;Lcom/android/server/oemlock/OemLock;)V
+HSPLcom/android/server/oemlock/OemLockService;->getOemLock(Landroid/content/Context;)Lcom/android/server/oemlock/OemLock;
+HSPLcom/android/server/oemlock/OemLockService;->onStart()V
+HSPLcom/android/server/oemlock/VendorLock;-><init>(Landroid/content/Context;Landroid/hardware/oemlock/V1_0/IOemLock;)V
+HSPLcom/android/server/oemlock/VendorLock;->getOemLockHalService()Landroid/hardware/oemlock/V1_0/IOemLock;
+HSPLcom/android/server/om/-$$Lambda$IdmapDaemon$Connection$4U-n0RSv1BPv15mvu8B8zXARcpk;-><init>(Lcom/android/server/om/IdmapDaemon$Connection;)V
PLcom/android/server/om/-$$Lambda$IdmapDaemon$Connection$4U-n0RSv1BPv15mvu8B8zXARcpk;->run()V
-PLcom/android/server/om/-$$Lambda$IdmapDaemon$hZvlb8B5bMAnD3h9mHLjOQXKSTI;-><clinit>()V
-PLcom/android/server/om/-$$Lambda$IdmapDaemon$hZvlb8B5bMAnD3h9mHLjOQXKSTI;-><init>()V
+HSPLcom/android/server/om/-$$Lambda$IdmapDaemon$hZvlb8B5bMAnD3h9mHLjOQXKSTI;-><clinit>()V
+HSPLcom/android/server/om/-$$Lambda$IdmapDaemon$hZvlb8B5bMAnD3h9mHLjOQXKSTI;-><init>()V
PLcom/android/server/om/-$$Lambda$IdmapDaemon$hZvlb8B5bMAnD3h9mHLjOQXKSTI;->binderDied()V
-PLcom/android/server/om/-$$Lambda$IdmapDaemon$u_1qfM2VGzol3UUX0R4mwNZs9gY;-><clinit>()V
-PLcom/android/server/om/-$$Lambda$IdmapDaemon$u_1qfM2VGzol3UUX0R4mwNZs9gY;-><init>()V
-PLcom/android/server/om/-$$Lambda$IdmapDaemon$u_1qfM2VGzol3UUX0R4mwNZs9gY;->call()Ljava/lang/Object;
+HSPLcom/android/server/om/-$$Lambda$IdmapDaemon$u_1qfM2VGzol3UUX0R4mwNZs9gY;-><clinit>()V
+HSPLcom/android/server/om/-$$Lambda$IdmapDaemon$u_1qfM2VGzol3UUX0R4mwNZs9gY;-><init>()V
+HSPLcom/android/server/om/-$$Lambda$IdmapDaemon$u_1qfM2VGzol3UUX0R4mwNZs9gY;->call()Ljava/lang/Object;
PLcom/android/server/om/-$$Lambda$OverlayManagerService$OverlayChangeListener$u9oeN2C0PDMo0pYiLqfMBkwuMNA;-><init>(Lcom/android/server/om/OverlayManagerService$OverlayChangeListener;ILjava/lang/String;)V
PLcom/android/server/om/-$$Lambda$OverlayManagerService$OverlayChangeListener$u9oeN2C0PDMo0pYiLqfMBkwuMNA;->run()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerService$_WGEV7N0qhntbqqDW3A1O-TVv5o;-><init>(Lcom/android/server/om/OverlayManagerService;)V
-PLcom/android/server/om/-$$Lambda$OverlayManagerService$_WGEV7N0qhntbqqDW3A1O-TVv5o;->run()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$ATr0DZmWpSWdKD0COw4t2qS-DRk;-><clinit>()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$ATr0DZmWpSWdKD0COw4t2qS-DRk;-><init>()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$ATr0DZmWpSWdKD0COw4t2qS-DRk;->test(Ljava/lang/Object;)Z
-HPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$Fjt465P6G89HQZERZFsOEjMbtXI;-><init>(I)V
-HPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$Fjt465P6G89HQZERZFsOEjMbtXI;->test(Ljava/lang/Object;)Z
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$IkswmT9ZZJXmNAztGRVrD3hODMw;-><clinit>()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$IkswmT9ZZJXmNAztGRVrD3hODMw;-><init>()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$IkswmT9ZZJXmNAztGRVrD3hODMw;->test(Ljava/lang/Object;)Z
-HPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$L_Sj43p2Txm_KH-wT0lseBTVzh8;-><init>(Ljava/lang/String;)V
-HPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$L_Sj43p2Txm_KH-wT0lseBTVzh8;->test(Ljava/lang/Object;)Z
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$WYtPK6Ebqjgxm8_8Cot-ijv_z_8;-><clinit>()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$WYtPK6Ebqjgxm8_8Cot-ijv_z_8;-><init>()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$WYtPK6Ebqjgxm8_8Cot-ijv_z_8;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$jZUujzDxrP0hpAqUxnqEf-b-nQc;-><clinit>()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$jZUujzDxrP0hpAqUxnqEf-b-nQc;-><init>()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$jZUujzDxrP0hpAqUxnqEf-b-nQc;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$sx0Nyvq91kCH_A-4Ctf09G_0u9M;-><clinit>()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$sx0Nyvq91kCH_A-4Ctf09G_0u9M;-><init>()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$sx0Nyvq91kCH_A-4Ctf09G_0u9M;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$vXm2C4y9Q-F5yYZNimB-Lr6w-oI;-><clinit>()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$vXm2C4y9Q-F5yYZNimB-Lr6w-oI;-><init>()V
-PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$vXm2C4y9Q-F5yYZNimB-Lr6w-oI;->applyAsInt(Ljava/lang/Object;)I
-PLcom/android/server/om/-$$Lambda$bXuJGR0fITXNwGnQfQHv9KS-XgY;-><clinit>()V
-PLcom/android/server/om/-$$Lambda$bXuJGR0fITXNwGnQfQHv9KS-XgY;-><init>()V
-PLcom/android/server/om/-$$Lambda$bXuJGR0fITXNwGnQfQHv9KS-XgY;->get()Ljava/lang/Object;
-PLcom/android/server/om/IdmapDaemon$Connection;-><init>(Lcom/android/server/om/IdmapDaemon;)V
-PLcom/android/server/om/IdmapDaemon$Connection;-><init>(Lcom/android/server/om/IdmapDaemon;Lcom/android/server/om/IdmapDaemon$1;)V
-PLcom/android/server/om/IdmapDaemon$Connection;->close()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerService$_WGEV7N0qhntbqqDW3A1O-TVv5o;-><init>(Lcom/android/server/om/OverlayManagerService;)V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerService$_WGEV7N0qhntbqqDW3A1O-TVv5o;->run()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$ATr0DZmWpSWdKD0COw4t2qS-DRk;-><clinit>()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$ATr0DZmWpSWdKD0COw4t2qS-DRk;-><init>()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$ATr0DZmWpSWdKD0COw4t2qS-DRk;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$Fjt465P6G89HQZERZFsOEjMbtXI;-><init>(I)V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$Fjt465P6G89HQZERZFsOEjMbtXI;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$IkswmT9ZZJXmNAztGRVrD3hODMw;-><clinit>()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$IkswmT9ZZJXmNAztGRVrD3hODMw;-><init>()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$IkswmT9ZZJXmNAztGRVrD3hODMw;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$L_Sj43p2Txm_KH-wT0lseBTVzh8;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$L_Sj43p2Txm_KH-wT0lseBTVzh8;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$WYtPK6Ebqjgxm8_8Cot-ijv_z_8;-><clinit>()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$WYtPK6Ebqjgxm8_8Cot-ijv_z_8;-><init>()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$WYtPK6Ebqjgxm8_8Cot-ijv_z_8;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$Xr3l7ivgTflBmPTqf9hbG3i0H_I;-><init>(Lcom/android/server/om/OverlayManagerSettings;Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/om/-$$Lambda$OverlayManagerSettings$Xr3l7ivgTflBmPTqf9hbG3i0H_I;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$jZUujzDxrP0hpAqUxnqEf-b-nQc;-><clinit>()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$jZUujzDxrP0hpAqUxnqEf-b-nQc;-><init>()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$jZUujzDxrP0hpAqUxnqEf-b-nQc;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$sx0Nyvq91kCH_A-4Ctf09G_0u9M;-><clinit>()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$sx0Nyvq91kCH_A-4Ctf09G_0u9M;-><init>()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$sx0Nyvq91kCH_A-4Ctf09G_0u9M;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$vXm2C4y9Q-F5yYZNimB-Lr6w-oI;-><clinit>()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$vXm2C4y9Q-F5yYZNimB-Lr6w-oI;-><init>()V
+HSPLcom/android/server/om/-$$Lambda$OverlayManagerSettings$vXm2C4y9Q-F5yYZNimB-Lr6w-oI;->applyAsInt(Ljava/lang/Object;)I
+HSPLcom/android/server/om/-$$Lambda$bXuJGR0fITXNwGnQfQHv9KS-XgY;-><clinit>()V
+HSPLcom/android/server/om/-$$Lambda$bXuJGR0fITXNwGnQfQHv9KS-XgY;-><init>()V
+HSPLcom/android/server/om/-$$Lambda$bXuJGR0fITXNwGnQfQHv9KS-XgY;->get()Ljava/lang/Object;
+PLcom/android/server/om/DumpState;-><init>()V
+PLcom/android/server/om/DumpState;->getField()Ljava/lang/String;
+PLcom/android/server/om/DumpState;->getPackageName()Ljava/lang/String;
+PLcom/android/server/om/DumpState;->getUserId()I
+PLcom/android/server/om/DumpState;->isVerbose()Z
+PLcom/android/server/om/DumpState;->setUserId(I)V
+HSPLcom/android/server/om/IdmapDaemon$Connection;-><init>(Lcom/android/server/om/IdmapDaemon;)V
+HSPLcom/android/server/om/IdmapDaemon$Connection;-><init>(Lcom/android/server/om/IdmapDaemon;Lcom/android/server/om/IdmapDaemon$1;)V
+HSPLcom/android/server/om/IdmapDaemon$Connection;->close()V
PLcom/android/server/om/IdmapDaemon$Connection;->lambda$close$0$IdmapDaemon$Connection()V
-PLcom/android/server/om/IdmapDaemon;-><clinit>()V
-PLcom/android/server/om/IdmapDaemon;-><init>()V
-PLcom/android/server/om/IdmapDaemon;->access$000()Ljava/lang/Object;
-PLcom/android/server/om/IdmapDaemon;->access$100(Lcom/android/server/om/IdmapDaemon;)Ljava/util/concurrent/atomic/AtomicInteger;
+HSPLcom/android/server/om/IdmapDaemon;-><clinit>()V
+HSPLcom/android/server/om/IdmapDaemon;-><init>()V
+HSPLcom/android/server/om/IdmapDaemon;->access$000()Ljava/lang/Object;
+HSPLcom/android/server/om/IdmapDaemon;->access$100(Lcom/android/server/om/IdmapDaemon;)Ljava/util/concurrent/atomic/AtomicInteger;
PLcom/android/server/om/IdmapDaemon;->access$200(Lcom/android/server/om/IdmapDaemon;)Landroid/os/IIdmap2;
PLcom/android/server/om/IdmapDaemon;->access$202(Lcom/android/server/om/IdmapDaemon;Landroid/os/IIdmap2;)Landroid/os/IIdmap2;
PLcom/android/server/om/IdmapDaemon;->access$300()V
-PLcom/android/server/om/IdmapDaemon;->connect()Lcom/android/server/om/IdmapDaemon$Connection;
+HSPLcom/android/server/om/IdmapDaemon;->connect()Lcom/android/server/om/IdmapDaemon$Connection;
PLcom/android/server/om/IdmapDaemon;->createIdmap(Ljava/lang/String;Ljava/lang/String;IZI)Ljava/lang/String;
-PLcom/android/server/om/IdmapDaemon;->getIdmapPath(Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/om/IdmapDaemon;->getInstance()Lcom/android/server/om/IdmapDaemon;
-PLcom/android/server/om/IdmapDaemon;->lambda$connect$0()Landroid/os/IBinder;
+HSPLcom/android/server/om/IdmapDaemon;->getIdmapPath(Ljava/lang/String;I)Ljava/lang/String;
+HSPLcom/android/server/om/IdmapDaemon;->getInstance()Lcom/android/server/om/IdmapDaemon;
+HSPLcom/android/server/om/IdmapDaemon;->lambda$connect$0()Landroid/os/IBinder;
PLcom/android/server/om/IdmapDaemon;->lambda$connect$1()V
-PLcom/android/server/om/IdmapDaemon;->startIdmapService()V
+HSPLcom/android/server/om/IdmapDaemon;->startIdmapService()V
PLcom/android/server/om/IdmapDaemon;->stopIdmapService()V
-PLcom/android/server/om/IdmapDaemon;->verifyIdmap(Ljava/lang/String;IZI)Z
-PLcom/android/server/om/IdmapManager;-><clinit>()V
-PLcom/android/server/om/IdmapManager;-><init>(Lcom/android/server/om/OverlayManagerServiceImpl$PackageManagerHelper;)V
-PLcom/android/server/om/IdmapManager;->calculateFulfilledPolicies(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;I)I
-PLcom/android/server/om/IdmapManager;->createIdmap(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;I)Z
-PLcom/android/server/om/IdmapManager;->enforceOverlayable(Landroid/content/pm/PackageInfo;)Z
-PLcom/android/server/om/IdmapManager;->getIdmapPath(Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/om/IdmapManager;->idmapExists(Landroid/content/pm/PackageInfo;I)Z
-PLcom/android/server/om/OverlayActorEnforcer;-><init>(Lcom/android/server/om/OverlayActorEnforcer$VerifyCallback;)V
-PLcom/android/server/om/OverlayManagerService$1;-><init>(Lcom/android/server/om/OverlayManagerService;)V
+HSPLcom/android/server/om/IdmapDaemon;->verifyIdmap(Ljava/lang/String;IZI)Z
+HSPLcom/android/server/om/IdmapManager;-><clinit>()V
+HSPLcom/android/server/om/IdmapManager;-><init>(Lcom/android/server/om/OverlayManagerServiceImpl$PackageManagerHelper;)V
+HSPLcom/android/server/om/IdmapManager;->calculateFulfilledPolicies(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;I)I
+HSPLcom/android/server/om/IdmapManager;->createIdmap(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;I)Z
+HSPLcom/android/server/om/IdmapManager;->enforceOverlayable(Landroid/content/pm/PackageInfo;)Z
+HSPLcom/android/server/om/IdmapManager;->getIdmapPath(Ljava/lang/String;I)Ljava/lang/String;
+HSPLcom/android/server/om/IdmapManager;->idmapExists(Landroid/content/pm/PackageInfo;I)Z
+HSPLcom/android/server/om/OverlayActorEnforcer;-><init>(Lcom/android/server/om/OverlayActorEnforcer$VerifyCallback;)V
+HSPLcom/android/server/om/OverlayManagerService$1;-><init>(Lcom/android/server/om/OverlayManagerService;)V
+PLcom/android/server/om/OverlayManagerService$1;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/om/OverlayManagerService$1;->getDefaultOverlayPackages()[Ljava/lang/String;
PLcom/android/server/om/OverlayManagerService$1;->getOverlayInfosForTarget(Ljava/lang/String;I)Ljava/util/List;
-PLcom/android/server/om/OverlayManagerService$OverlayChangeListener;-><init>(Lcom/android/server/om/OverlayManagerService;)V
-PLcom/android/server/om/OverlayManagerService$OverlayChangeListener;-><init>(Lcom/android/server/om/OverlayManagerService;Lcom/android/server/om/OverlayManagerService$1;)V
+HSPLcom/android/server/om/OverlayManagerService$OverlayChangeListener;-><init>(Lcom/android/server/om/OverlayManagerService;)V
+HSPLcom/android/server/om/OverlayManagerService$OverlayChangeListener;-><init>(Lcom/android/server/om/OverlayManagerService;Lcom/android/server/om/OverlayManagerService$1;)V
PLcom/android/server/om/OverlayManagerService$OverlayChangeListener;->lambda$onOverlaysChanged$0$OverlayManagerService$OverlayChangeListener(ILjava/lang/String;)V
PLcom/android/server/om/OverlayManagerService$OverlayChangeListener;->onOverlaysChanged(Ljava/lang/String;I)V
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelper;-><init>(Landroid/content/Context;)V
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->cachePackageInfo(Ljava/lang/String;ILandroid/content/pm/PackageInfo;)V
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelper;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->cachePackageInfo(Ljava/lang/String;ILandroid/content/pm/PackageInfo;)V
+PLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->dump(Ljava/io/PrintWriter;Lcom/android/server/om/DumpState;)V
PLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->forgetPackageInfo(Ljava/lang/String;I)V
-HPLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->getCachedPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->getOverlayPackages(I)Ljava/util/List;
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->getPackageInfo(Ljava/lang/String;IZ)Landroid/content/pm/PackageInfo;
-PLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->signaturesMatching(Ljava/lang/String;Ljava/lang/String;I)Z
-PLcom/android/server/om/OverlayManagerService$PackageReceiver;-><init>(Lcom/android/server/om/OverlayManagerService;)V
-PLcom/android/server/om/OverlayManagerService$PackageReceiver;-><init>(Lcom/android/server/om/OverlayManagerService;Lcom/android/server/om/OverlayManagerService$1;)V
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->getCachedPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->getOverlayPackages(I)Ljava/util/List;
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->getPackageInfo(Ljava/lang/String;IZ)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/om/OverlayManagerService$PackageManagerHelper;->signaturesMatching(Ljava/lang/String;Ljava/lang/String;I)Z
+HSPLcom/android/server/om/OverlayManagerService$PackageReceiver;-><init>(Lcom/android/server/om/OverlayManagerService;)V
+HSPLcom/android/server/om/OverlayManagerService$PackageReceiver;-><init>(Lcom/android/server/om/OverlayManagerService;Lcom/android/server/om/OverlayManagerService$1;)V
PLcom/android/server/om/OverlayManagerService$PackageReceiver;->onPackageAdded(Ljava/lang/String;[I)V
PLcom/android/server/om/OverlayManagerService$PackageReceiver;->onPackageChanged(Ljava/lang/String;[I)V
-PLcom/android/server/om/OverlayManagerService$PackageReceiver;->onPackageReplaced(Ljava/lang/String;[I)V
-PLcom/android/server/om/OverlayManagerService$PackageReceiver;->onPackageReplacing(Ljava/lang/String;[I)V
+HPLcom/android/server/om/OverlayManagerService$PackageReceiver;->onPackageReplaced(Ljava/lang/String;[I)V
+HPLcom/android/server/om/OverlayManagerService$PackageReceiver;->onPackageReplacing(Ljava/lang/String;[I)V
PLcom/android/server/om/OverlayManagerService$PackageReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)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$1;)V
-PLcom/android/server/om/OverlayManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/om/OverlayManagerService$UserReceiver;-><init>(Lcom/android/server/om/OverlayManagerService;)V
+HSPLcom/android/server/om/OverlayManagerService$UserReceiver;-><init>(Lcom/android/server/om/OverlayManagerService;Lcom/android/server/om/OverlayManagerService$1;)V
+HSPLcom/android/server/om/OverlayManagerService;-><init>(Landroid/content/Context;)V
PLcom/android/server/om/OverlayManagerService;->access$400(Lcom/android/server/om/OverlayManagerService;)Ljava/lang/Object;
PLcom/android/server/om/OverlayManagerService;->access$500(Lcom/android/server/om/OverlayManagerService;)Lcom/android/server/om/OverlayManagerService$PackageManagerHelper;
PLcom/android/server/om/OverlayManagerService;->access$600(Lcom/android/server/om/OverlayManagerService;)Lcom/android/server/om/OverlayManagerServiceImpl;
-PLcom/android/server/om/OverlayManagerService;->getDefaultOverlayPackages()[Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerService;->initIfNeeded()V
-PLcom/android/server/om/OverlayManagerService;->lambda$schedulePersistSettings$0$OverlayManagerService()V
-PLcom/android/server/om/OverlayManagerService;->onStart()V
-PLcom/android/server/om/OverlayManagerService;->onSwitchUser(I)V
-PLcom/android/server/om/OverlayManagerService;->restoreSettings()V
-PLcom/android/server/om/OverlayManagerService;->schedulePersistSettings()V
-PLcom/android/server/om/OverlayManagerService;->updateAssets(ILjava/util/List;)V
-PLcom/android/server/om/OverlayManagerService;->updateOverlayPaths(ILjava/util/List;)V
-PLcom/android/server/om/OverlayManagerServiceImpl;-><init>(Lcom/android/server/om/OverlayManagerServiceImpl$PackageManagerHelper;Lcom/android/server/om/IdmapManager;Lcom/android/server/om/OverlayManagerSettings;[Ljava/lang/String;Lcom/android/server/om/OverlayManagerServiceImpl$OverlayChangeListener;)V
-PLcom/android/server/om/OverlayManagerServiceImpl;->calculateNewState(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;II)I
-PLcom/android/server/om/OverlayManagerServiceImpl;->getEnabledOverlayPackageNames(Ljava/lang/String;I)Ljava/util/List;
+HSPLcom/android/server/om/OverlayManagerService;->getDefaultOverlayPackages()[Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerService;->initIfNeeded()V
+HSPLcom/android/server/om/OverlayManagerService;->lambda$schedulePersistSettings$0$OverlayManagerService()V
+HSPLcom/android/server/om/OverlayManagerService;->onStart()V
+HSPLcom/android/server/om/OverlayManagerService;->onSwitchUser(I)V
+HSPLcom/android/server/om/OverlayManagerService;->restoreSettings()V
+HSPLcom/android/server/om/OverlayManagerService;->schedulePersistSettings()V
+HSPLcom/android/server/om/OverlayManagerService;->updateAssets(ILjava/util/List;)V
+HSPLcom/android/server/om/OverlayManagerService;->updateOverlayPaths(ILjava/util/List;)V
+HSPLcom/android/server/om/OverlayManagerServiceImpl;-><init>(Lcom/android/server/om/OverlayManagerServiceImpl$PackageManagerHelper;Lcom/android/server/om/IdmapManager;Lcom/android/server/om/OverlayManagerSettings;[Ljava/lang/String;Lcom/android/server/om/OverlayManagerServiceImpl$OverlayChangeListener;)V
+HSPLcom/android/server/om/OverlayManagerServiceImpl;->calculateNewState(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageInfo;II)I
+PLcom/android/server/om/OverlayManagerServiceImpl;->dump(Ljava/io/PrintWriter;Lcom/android/server/om/DumpState;)V
+PLcom/android/server/om/OverlayManagerServiceImpl;->getDefaultOverlayPackages()[Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerServiceImpl;->getEnabledOverlayPackageNames(Ljava/lang/String;I)Ljava/util/List;
PLcom/android/server/om/OverlayManagerServiceImpl;->getOverlayInfo(Ljava/lang/String;I)Landroid/content/om/OverlayInfo;
-PLcom/android/server/om/OverlayManagerServiceImpl;->mustReinitializeOverlay(Landroid/content/pm/PackageInfo;Landroid/content/om/OverlayInfo;)Z
+HSPLcom/android/server/om/OverlayManagerServiceImpl;->mustReinitializeOverlay(Landroid/content/pm/PackageInfo;Landroid/content/om/OverlayInfo;)Z
PLcom/android/server/om/OverlayManagerServiceImpl;->onTargetPackageReplaced(Ljava/lang/String;I)V
HPLcom/android/server/om/OverlayManagerServiceImpl;->updateAndRefreshOverlaysForTarget(Ljava/lang/String;II)V
-PLcom/android/server/om/OverlayManagerServiceImpl;->updateOverlaysForUser(I)Ljava/util/ArrayList;
-PLcom/android/server/om/OverlayManagerServiceImpl;->updateState(Ljava/lang/String;Ljava/lang/String;II)Z
-PLcom/android/server/om/OverlayManagerSettings$BadKeyException;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/om/OverlayManagerSettings$Serializer;->persist(Ljava/util/ArrayList;Ljava/io/OutputStream;)V
-PLcom/android/server/om/OverlayManagerSettings$Serializer;->persistRow(Lcom/android/internal/util/FastXmlSerializer;Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)V
-PLcom/android/server/om/OverlayManagerSettings$Serializer;->restore(Ljava/util/ArrayList;Ljava/io/InputStream;)V
-PLcom/android/server/om/OverlayManagerSettings$Serializer;->restoreRow(Lorg/xmlpull/v1/XmlPullParser;I)Lcom/android/server/om/OverlayManagerSettings$SettingsItem;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZILjava/lang/String;)V
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/String;)V
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Z)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$100(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
-HPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1100(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1400(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1500(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
-HPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1600(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1700(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1800(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1900(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$200(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$2000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$2100(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$300(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Landroid/content/om/OverlayInfo;
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$400(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Ljava/lang/String;)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$500(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Ljava/lang/String;)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$600(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$700(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$800(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;I)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$900(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getOverlayInfo()Landroid/content/om/OverlayInfo;
-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;->isStatic()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;->setEnabled(Z)Z
-PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->setState(I)Z
-PLcom/android/server/om/OverlayManagerSettings;-><init>()V
-PLcom/android/server/om/OverlayManagerSettings;->getEnabled(Ljava/lang/String;I)Z
-PLcom/android/server/om/OverlayManagerSettings;->getOverlayInfo(Ljava/lang/String;I)Landroid/content/om/OverlayInfo;
-PLcom/android/server/om/OverlayManagerSettings;->getOverlaysForTarget(Ljava/lang/String;I)Ljava/util/List;
-PLcom/android/server/om/OverlayManagerSettings;->getOverlaysForUser(I)Landroid/util/ArrayMap;
-PLcom/android/server/om/OverlayManagerSettings;->getState(Ljava/lang/String;I)I
-PLcom/android/server/om/OverlayManagerSettings;->getUsers()[I
-PLcom/android/server/om/OverlayManagerSettings;->init(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/String;)V
-PLcom/android/server/om/OverlayManagerSettings;->lambda$getOverlaysForTarget$0(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
-PLcom/android/server/om/OverlayManagerSettings;->lambda$getOverlaysForTarget$1(Ljava/lang/Object;)Landroid/content/om/OverlayInfo;
-PLcom/android/server/om/OverlayManagerSettings;->lambda$getOverlaysForUser$2(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
-PLcom/android/server/om/OverlayManagerSettings;->lambda$getOverlaysForUser$3(Ljava/lang/Object;)Landroid/content/om/OverlayInfo;
-PLcom/android/server/om/OverlayManagerSettings;->lambda$getOverlaysForUser$4(Landroid/content/om/OverlayInfo;)Ljava/lang/String;
-PLcom/android/server/om/OverlayManagerSettings;->lambda$getUsers$5(Ljava/lang/Object;)I
-HPLcom/android/server/om/OverlayManagerSettings;->lambda$selectWhereTarget$11(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(Ljava/lang/String;I)Z
-PLcom/android/server/om/OverlayManagerSettings;->restore(Ljava/io/InputStream;)V
-HPLcom/android/server/om/OverlayManagerSettings;->select(Ljava/lang/String;I)I
-PLcom/android/server/om/OverlayManagerSettings;->selectWhereTarget(Ljava/lang/String;I)Ljava/util/stream/Stream;
-PLcom/android/server/om/OverlayManagerSettings;->selectWhereUser(I)Ljava/util/stream/Stream;
-PLcom/android/server/om/OverlayManagerSettings;->setBaseCodePath(Ljava/lang/String;ILjava/lang/String;)Z
-PLcom/android/server/om/OverlayManagerSettings;->setCategory(Ljava/lang/String;ILjava/lang/String;)Z
-PLcom/android/server/om/OverlayManagerSettings;->setState(Ljava/lang/String;II)Z
-PLcom/android/server/os/-$$Lambda$SchedulingPolicyService$ao2OiSvvlyzmJ0li0c0nhHy-IDk;-><init>(Lcom/android/server/os/SchedulingPolicyService;)V
-PLcom/android/server/os/-$$Lambda$SchedulingPolicyService$ao2OiSvvlyzmJ0li0c0nhHy-IDk;->run()V
-PLcom/android/server/os/BugreportManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/os/BugreportManagerService;->onStart()V
-PLcom/android/server/os/BugreportManagerServiceImpl;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/om/OverlayManagerServiceImpl;->updateOverlaysForUser(I)Ljava/util/ArrayList;
+HSPLcom/android/server/om/OverlayManagerServiceImpl;->updateState(Ljava/lang/String;Ljava/lang/String;II)Z
+HPLcom/android/server/om/OverlayManagerSettings$BadKeyException;-><init>(Ljava/lang/String;I)V
+HSPLcom/android/server/om/OverlayManagerSettings$Serializer;->persist(Ljava/util/ArrayList;Ljava/io/OutputStream;)V
+HSPLcom/android/server/om/OverlayManagerSettings$Serializer;->persistRow(Lcom/android/internal/util/FastXmlSerializer;Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)V
+HSPLcom/android/server/om/OverlayManagerSettings$Serializer;->restore(Ljava/util/ArrayList;Ljava/io/InputStream;)V
+HSPLcom/android/server/om/OverlayManagerSettings$Serializer;->restoreRow(Lorg/xmlpull/v1/XmlPullParser;I)Lcom/android/server/om/OverlayManagerSettings$SettingsItem;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZILjava/lang/String;)V
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/String;)V
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Z)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$100(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1100(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1200(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1300(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1400(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1500(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1600(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1700(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1800(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$1900(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$200(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$2000(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$2100(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$300(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Landroid/content/om/OverlayInfo;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$400(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Ljava/lang/String;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$500(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;Ljava/lang/String;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$600(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$700(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$800(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;I)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->access$900(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)I
+PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getBaseCodePath()Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getOverlayInfo()Landroid/content/om/OverlayInfo;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getState()I
+PLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getTargetOverlayableName()Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getTargetPackageName()Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->getUserId()I
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->invalidateCache()V
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->isEnabled()Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->isStatic()Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->setBaseCodePath(Ljava/lang/String;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->setCategory(Ljava/lang/String;)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->setEnabled(Z)Z
+HSPLcom/android/server/om/OverlayManagerSettings$SettingsItem;->setState(I)Z
+HSPLcom/android/server/om/OverlayManagerSettings;-><init>()V
+PLcom/android/server/om/OverlayManagerSettings;->dump(Ljava/io/PrintWriter;Lcom/android/server/om/DumpState;)V
+HPLcom/android/server/om/OverlayManagerSettings;->dumpSettingsItem(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)V
+HSPLcom/android/server/om/OverlayManagerSettings;->getEnabled(Ljava/lang/String;I)Z
+HSPLcom/android/server/om/OverlayManagerSettings;->getOverlayInfo(Ljava/lang/String;I)Landroid/content/om/OverlayInfo;
+HSPLcom/android/server/om/OverlayManagerSettings;->getOverlaysForTarget(Ljava/lang/String;I)Ljava/util/List;
+HSPLcom/android/server/om/OverlayManagerSettings;->getOverlaysForUser(I)Landroid/util/ArrayMap;
+HSPLcom/android/server/om/OverlayManagerSettings;->getState(Ljava/lang/String;I)I
+HSPLcom/android/server/om/OverlayManagerSettings;->getUsers()[I
+HSPLcom/android/server/om/OverlayManagerSettings;->init(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/String;)V
+PLcom/android/server/om/OverlayManagerSettings;->lambda$dump$9$OverlayManagerSettings(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)V
+HSPLcom/android/server/om/OverlayManagerSettings;->lambda$getOverlaysForTarget$0(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings;->lambda$getOverlaysForTarget$1(Ljava/lang/Object;)Landroid/content/om/OverlayInfo;
+HSPLcom/android/server/om/OverlayManagerSettings;->lambda$getOverlaysForUser$2(Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings;->lambda$getOverlaysForUser$3(Ljava/lang/Object;)Landroid/content/om/OverlayInfo;
+HSPLcom/android/server/om/OverlayManagerSettings;->lambda$getOverlaysForUser$4(Landroid/content/om/OverlayInfo;)Ljava/lang/String;
+HSPLcom/android/server/om/OverlayManagerSettings;->lambda$getUsers$5(Ljava/lang/Object;)I
+HSPLcom/android/server/om/OverlayManagerSettings;->lambda$selectWhereTarget$11(Ljava/lang/String;Lcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings;->lambda$selectWhereUser$10(ILcom/android/server/om/OverlayManagerSettings$SettingsItem;)Z
+HSPLcom/android/server/om/OverlayManagerSettings;->persist(Ljava/io/OutputStream;)V
+HSPLcom/android/server/om/OverlayManagerSettings;->remove(Ljava/lang/String;I)Z
+HSPLcom/android/server/om/OverlayManagerSettings;->restore(Ljava/io/InputStream;)V
+HSPLcom/android/server/om/OverlayManagerSettings;->select(Ljava/lang/String;I)I
+HSPLcom/android/server/om/OverlayManagerSettings;->selectWhereTarget(Ljava/lang/String;I)Ljava/util/stream/Stream;
+HSPLcom/android/server/om/OverlayManagerSettings;->selectWhereUser(I)Ljava/util/stream/Stream;
+HSPLcom/android/server/om/OverlayManagerSettings;->setBaseCodePath(Ljava/lang/String;ILjava/lang/String;)Z
+HSPLcom/android/server/om/OverlayManagerSettings;->setCategory(Ljava/lang/String;ILjava/lang/String;)Z
+HSPLcom/android/server/om/OverlayManagerSettings;->setState(Ljava/lang/String;II)Z
+HSPLcom/android/server/os/-$$Lambda$SchedulingPolicyService$ao2OiSvvlyzmJ0li0c0nhHy-IDk;-><init>(Lcom/android/server/os/SchedulingPolicyService;)V
+HSPLcom/android/server/os/-$$Lambda$SchedulingPolicyService$ao2OiSvvlyzmJ0li0c0nhHy-IDk;->run()V
+HSPLcom/android/server/os/BugreportManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/os/BugreportManagerService;->onStart()V
+PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;-><init>(Lcom/android/server/os/BugreportManagerServiceImpl;Landroid/os/IDumpstateListener;Landroid/os/IDumpstate;)V
+PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;->binderDied()V
+PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;->onFinished()V
+PLcom/android/server/os/BugreportManagerServiceImpl$DumpstateListener;->onProgress(I)V
+HSPLcom/android/server/os/BugreportManagerServiceImpl;-><init>(Landroid/content/Context;)V
+PLcom/android/server/os/BugreportManagerServiceImpl;->access$000(Lcom/android/server/os/BugreportManagerServiceImpl;)Ljava/lang/Object;
+PLcom/android/server/os/BugreportManagerServiceImpl;->ensureIsPrimaryUser()V
+PLcom/android/server/os/BugreportManagerServiceImpl;->isDumpstateBinderServiceRunningLocked()Z
+PLcom/android/server/os/BugreportManagerServiceImpl;->startAndGetDumpstateBinderServiceLocked()Landroid/os/IDumpstate;
+PLcom/android/server/os/BugreportManagerServiceImpl;->startBugreport(ILjava/lang/String;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;ILandroid/os/IDumpstateListener;)V
+PLcom/android/server/os/BugreportManagerServiceImpl;->startBugreportLocked(ILjava/lang/String;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;ILandroid/os/IDumpstateListener;)V
+PLcom/android/server/os/BugreportManagerServiceImpl;->validateBugreportMode(I)V
HSPLcom/android/server/os/DeviceIdentifiersPolicyService$DeviceIdentifiersPolicy;-><init>(Landroid/content/Context;)V
-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$DeviceIdentifiersPolicy;->getSerial()Ljava/lang/String;
+HPLcom/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
-PLcom/android/server/os/SchedulingPolicyService$1;-><init>(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
+HSPLcom/android/server/os/SchedulingPolicyService$1;-><init>(Lcom/android/server/os/SchedulingPolicyService;)V
+HSPLcom/android/server/os/SchedulingPolicyService;-><clinit>()V
+HSPLcom/android/server/os/SchedulingPolicyService;-><init>()V
+HSPLcom/android/server/os/SchedulingPolicyService;->disableCpusetBoost(I)I
PLcom/android/server/os/SchedulingPolicyService;->isPermitted()Z
-PLcom/android/server/os/SchedulingPolicyService;->lambda$new$0$SchedulingPolicyService()V
+HSPLcom/android/server/os/SchedulingPolicyService;->lambda$new$0$SchedulingPolicyService()V
PLcom/android/server/os/SchedulingPolicyService;->requestPriority(IIIZ)I
PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$1$dbgKSgcSW-enjqvNAbeI3zvdw_E;-><init>(Lcom/android/server/pm/ApexManager$ApexManagerImpl$1;)V
PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$1$dbgKSgcSW-enjqvNAbeI3zvdw_E;->run()V
PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$48iOSmygOXJ0TezZTiFdfMqA4-U;-><clinit>()V
PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$48iOSmygOXJ0TezZTiFdfMqA4-U;-><init>()V
-PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$48iOSmygOXJ0TezZTiFdfMqA4-U;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$48iOSmygOXJ0TezZTiFdfMqA4-U;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$ZSnyvqMou1dicjDEP1s6HfI9AtM;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$ZSnyvqMou1dicjDEP1s6HfI9AtM;-><init>()V
+PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$ZSnyvqMou1dicjDEP1s6HfI9AtM;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$o0S1o3gtXHOOZT_0tmoPlF2FOdI;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$o0S1o3gtXHOOZT_0tmoPlF2FOdI;-><init>()V
+PLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$o0S1o3gtXHOOZT_0tmoPlF2FOdI;->test(Ljava/lang/Object;)Z
HSPLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$pQnjdbWgnVRvdOuYJTmevPGwE8s;-><clinit>()V
HSPLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$pQnjdbWgnVRvdOuYJTmevPGwE8s;-><init>()V
HSPLcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$pQnjdbWgnVRvdOuYJTmevPGwE8s;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/pm/-$$Lambda$AppsFilter$FeatureConfigImpl$n15whgPRX7bGimHq6-7mgAskIKs;-><init>(Lcom/android/server/pm/AppsFilter$FeatureConfigImpl;)V
+HSPLcom/android/server/pm/-$$Lambda$AppsFilter$FeatureConfigImpl$n15whgPRX7bGimHq6-7mgAskIKs;-><init>(Lcom/android/server/pm/AppsFilter$FeatureConfigImpl;)V
+PLcom/android/server/pm/-$$Lambda$AppsFilter$FeatureConfigImpl$n15whgPRX7bGimHq6-7mgAskIKs;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
PLcom/android/server/pm/-$$Lambda$AppsFilter$irFGkuh4mJ419pXBYKSj13ADTtA;-><init>(Landroid/util/SparseArray;Lcom/android/server/pm/PackageManagerService;)V
HSPLcom/android/server/pm/-$$Lambda$BWZi0Aa35BwEPzNacDfE_69TPS8;-><clinit>()V
HSPLcom/android/server/pm/-$$Lambda$BWZi0Aa35BwEPzNacDfE_69TPS8;-><init>()V
HSPLcom/android/server/pm/-$$Lambda$BWZi0Aa35BwEPzNacDfE_69TPS8;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/pm/-$$Lambda$BackgroundDexOptService$-KiE2NsUP--OYmoSDt9BwEQICZw;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;II)V
+PLcom/android/server/pm/-$$Lambda$BackgroundDexOptService$-KiE2NsUP--OYmoSDt9BwEQICZw;->get()Ljava/lang/Object;
+HPLcom/android/server/pm/-$$Lambda$BackgroundDexOptService$TAsfDUuoxt92xKFoSCfpMUmY2Es;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/dex/DexoptOptions;)V
+PLcom/android/server/pm/-$$Lambda$BackgroundDexOptService$TAsfDUuoxt92xKFoSCfpMUmY2Es;->get()Ljava/lang/Object;
HSPLcom/android/server/pm/-$$Lambda$ComponentResolver$PuHbZd5KEOMGjkH8xDOhOwfLtC0;-><clinit>()V
HSPLcom/android/server/pm/-$$Lambda$ComponentResolver$PuHbZd5KEOMGjkH8xDOhOwfLtC0;-><init>()V
-HPLcom/android/server/pm/-$$Lambda$ComponentResolver$PuHbZd5KEOMGjkH8xDOhOwfLtC0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/pm/-$$Lambda$ComponentResolver$PuHbZd5KEOMGjkH8xDOhOwfLtC0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/pm/-$$Lambda$FW40Da1L1EZJ_usDX0ew1qRMmtc;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$FW40Da1L1EZJ_usDX0ew1qRMmtc;-><init>()V
+PLcom/android/server/pm/-$$Lambda$FW40Da1L1EZJ_usDX0ew1qRMmtc;->test(Ljava/lang/Object;)Z
PLcom/android/server/pm/-$$Lambda$InstantAppRegistry$BuKCbLr_MGBazMPl54-pWTuGHYY;-><init>(J)V
-PLcom/android/server/pm/-$$Lambda$InstantAppRegistry$eaYsiecM_Rq6dliDvliwVtj695o;-><init>(Ljava/lang/String;)V
-PLcom/android/server/pm/-$$Lambda$InstantAppRegistry$o-Qxi7Gaam-yhhMK-IMWv499oME;-><init>(Landroid/content/pm/PackageParser$Package;)V
+PLcom/android/server/pm/-$$Lambda$InstantAppRegistry$R7XSXckXZJx-7zO-lFkgYY_-lWA;-><init>(Landroid/content/pm/parsing/AndroidPackage;)V
PLcom/android/server/pm/-$$Lambda$InstantAppResolverConnection$D-JKXi4qrYjnPQMOwj8UtfZenps;-><init>(Lcom/android/server/pm/InstantAppResolverConnection;)V
PLcom/android/server/pm/-$$Lambda$InstantAppResolverConnection$D-JKXi4qrYjnPQMOwj8UtfZenps;->run()V
PLcom/android/server/pm/-$$Lambda$K2g8Oho05j5S7zVOkoQrHzM_Gig;-><clinit>()V
PLcom/android/server/pm/-$$Lambda$K2g8Oho05j5S7zVOkoQrHzM_Gig;-><init>()V
PLcom/android/server/pm/-$$Lambda$K2g8Oho05j5S7zVOkoQrHzM_Gig;->test(Ljava/lang/Object;)Z
-PLcom/android/server/pm/-$$Lambda$LauncherAppsService$LauncherAppsImpl$MyPackageMonitor$eTair5Mvr14v4M0nq9aQEW2cp-Y;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;Ljava/lang/String;I)V
+HPLcom/android/server/pm/-$$Lambda$LauncherAppsService$LauncherAppsImpl$MyPackageMonitor$eTair5Mvr14v4M0nq9aQEW2cp-Y;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;Ljava/lang/String;I)V
PLcom/android/server/pm/-$$Lambda$LauncherAppsService$LauncherAppsImpl$MyPackageMonitor$eTair5Mvr14v4M0nq9aQEW2cp-Y;->run()V
PLcom/android/server/pm/-$$Lambda$LauncherAppsService$LauncherAppsImpl$PR6SMHDNFTsnoL92MFZskM-zN8k;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Landroid/os/UserHandle;)V
HPLcom/android/server/pm/-$$Lambda$LauncherAppsService$LauncherAppsImpl$PR6SMHDNFTsnoL92MFZskM-zN8k;->test(I)Z
-PLcom/android/server/pm/-$$Lambda$PackageInstallerService$vra5ZkE3juVvcgDBu5xv0wVzno8;-><init>(I)V
+PLcom/android/server/pm/-$$Lambda$OtaDexoptService$sAE9PLBjWsXDVkiiC_uzr0kwQ4k;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$OtaDexoptService$sAE9PLBjWsXDVkiiC_uzr0kwQ4k;-><init>()V
+PLcom/android/server/pm/-$$Lambda$OtaDexoptService$sAE9PLBjWsXDVkiiC_uzr0kwQ4k;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/pm/-$$Lambda$PackageInstallerService$vra5ZkE3juVvcgDBu5xv0wVzno8;-><init>(I)V
PLcom/android/server/pm/-$$Lambda$PackageInstallerService$vra5ZkE3juVvcgDBu5xv0wVzno8;->test(I)Z
PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$1hK7f4fIb3Je8SK1lZHBTWREMrU;-><init>(Ljava/io/FileFilter;)V
PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$1hK7f4fIb3Je8SK1lZHBTWREMrU;->test(Ljava/lang/Object;)Z
-PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$GP86uqflrxAhI39Monud3vZLkMo;-><clinit>()V
-PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$GP86uqflrxAhI39Monud3vZLkMo;-><init>()V
-PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$GP86uqflrxAhI39Monud3vZLkMo;->apply(I)Ljava/lang/Object;
PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$O9LdsceQY8NfkziFc8PltN3Zew4;-><init>(Ljava/io/File;)V
PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$O9LdsceQY8NfkziFc8PltN3Zew4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$WxRUCOlFBsKbwiMNBR7ysMEZKp4;-><clinit>()V
PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$WxRUCOlFBsKbwiMNBR7ysMEZKp4;-><init>()V
PLcom/android/server/pm/-$$Lambda$PackageInstallerSession$WxRUCOlFBsKbwiMNBR7ysMEZKp4;->apply(I)Ljava/lang/Object;
-PLcom/android/server/pm/-$$Lambda$PackageManagerService$-SI_LHw6Eiq8VNiFLLjJdCbGgSQ;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/util/List;I)V
-PLcom/android/server/pm/-$$Lambda$PackageManagerService$-SI_LHw6Eiq8VNiFLLjJdCbGgSQ;->run()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$-SI_LHw6Eiq8VNiFLLjJdCbGgSQ;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/util/List;I)V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$-SI_LHw6Eiq8VNiFLLjJdCbGgSQ;->run()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$3yxDU_uSU2kkdLuKkfPYVKvXKGw;-><clinit>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$3yxDU_uSU2kkdLuKkfPYVKvXKGw;-><init>()V
-HPLcom/android/server/pm/-$$Lambda$PackageManagerService$3yxDU_uSU2kkdLuKkfPYVKvXKGw;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$3yxDU_uSU2kkdLuKkfPYVKvXKGw;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$4lr9R3-Rfzq-VEptx-WWeRaSpd4;-><clinit>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$4lr9R3-Rfzq-VEptx-WWeRaSpd4;-><init>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$EQHzRzxse-rtXNIoVfzT15c8LHI;-><clinit>()V
@@ -11328,96 +13593,126 @@ HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$EQHzRzxse-rtXNIoVfzT15
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$FFJwRezEfCP4utcPN2U9pjn2hIo;-><clinit>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$FFJwRezEfCP4utcPN2U9pjn2hIo;-><init>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$FFJwRezEfCP4utcPN2U9pjn2hIo;->produce(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
-PLcom/android/server/pm/-$$Lambda$PackageManagerService$GtPWetD7Djhni0I_euYRPxi9pjU;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-PLcom/android/server/pm/-$$Lambda$PackageManagerService$GtPWetD7Djhni0I_euYRPxi9pjU;->onInitialized(I)V
PLcom/android/server/pm/-$$Lambda$PackageManagerService$J0eEFDuLDZBCGkS0UBLQaQGBMN8;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;ILjava/lang/String;)V
PLcom/android/server/pm/-$$Lambda$PackageManagerService$J0eEFDuLDZBCGkS0UBLQaQGBMN8;->run()V
-PLcom/android/server/pm/-$$Lambda$PackageManagerService$JqISwjRG4Nrwn7K19yITMU1WH5g;-><init>(Lcom/android/server/pm/PackageManagerService;)V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$JqISwjRG4Nrwn7K19yITMU1WH5g;-><init>(Lcom/android/server/pm/PackageManagerService;)V
HPLcom/android/server/pm/-$$Lambda$PackageManagerService$KUTG4a_t__F9-jF9uKK4m5M6ED0;-><init>(I)V
PLcom/android/server/pm/-$$Lambda$PackageManagerService$KUTG4a_t__F9-jF9uKK4m5M6ED0;->run()V
HPLcom/android/server/pm/-$$Lambda$PackageManagerService$RoklvvEqbb0_WAziY4NuUNhrlUA;-><init>(Lcom/android/server/pm/PackageManagerService;[ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I)V
-PLcom/android/server/pm/-$$Lambda$PackageManagerService$RoklvvEqbb0_WAziY4NuUNhrlUA;->run()V
+HPLcom/android/server/pm/-$$Lambda$PackageManagerService$RoklvvEqbb0_WAziY4NuUNhrlUA;->run()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$UqTOzDNpKPiIlaG4_AUlesB9I1E;-><clinit>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$UqTOzDNpKPiIlaG4_AUlesB9I1E;-><init>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$Wnf5zZuMJLUQ4GfjHtUww4l7YUg;-><clinit>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$Wnf5zZuMJLUQ4GfjHtUww4l7YUg;-><init>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$Wnf5zZuMJLUQ4GfjHtUww4l7YUg;->produce(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$Ze0Xh0iBIll5jkJ4VcmUxBuZyI8;-><init>(Lcom/android/server/pm/PackageManagerService;ZI[Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$Ze0Xh0iBIll5jkJ4VcmUxBuZyI8;->run()V
PLcom/android/server/pm/-$$Lambda$PackageManagerService$aXPYjiloRwQataUrx041SxBr5us;-><init>(Lcom/android/server/pm/PackageManagerService;ZLjava/util/List;)V
PLcom/android/server/pm/-$$Lambda$PackageManagerService$aXPYjiloRwQataUrx041SxBr5us;->run()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$cHQqBPj5vgOw-P7yhrKC9Ssq27g;-><init>(Ljava/lang/Object;)V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$cHQqBPj5vgOw-P7yhrKC9Ssq27g;->produce(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$ccz4PCOSG7fKRFBAMJv8GMQMI08;-><init>(Lcom/android/server/pm/PackageManagerService;)V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$ccz4PCOSG7fKRFBAMJv8GMQMI08;->onInitialized(I)V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$djQQrdclAlQ8ILip1OVPcBDTkW4;-><clinit>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$djQQrdclAlQ8ILip1OVPcBDTkW4;-><init>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$djQQrdclAlQ8ILip1OVPcBDTkW4;->apply(Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/pm/-$$Lambda$PackageManagerService$f5l1_UOwACQPN6qixqBmzSJzDMw;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
PLcom/android/server/pm/-$$Lambda$PackageManagerService$f5l1_UOwACQPN6qixqBmzSJzDMw;->run()V
-PLcom/android/server/pm/-$$Lambda$PackageManagerService$hy2s_cJQR-eeozeSQuK1xEmJcOU;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageParser$Package;Ljava/util/ArrayList;)V
-PLcom/android/server/pm/-$$Lambda$PackageManagerService$hy2s_cJQR-eeozeSQuK1xEmJcOU;->run()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$i6CpetYRHYknkq8R3n1zFsH2Qng;-><init>(Landroid/content/Context;Ljava/lang/Object;)V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$i6CpetYRHYknkq8R3n1zFsH2Qng;->produce(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$imyTLGZ0HLyacORSu0iPTteivzY;-><init>(Ljava/lang/Object;)V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$imyTLGZ0HLyacORSu0iPTteivzY;->produce(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$vPmwW10Lr1Zc8YoNadc7v4xmIWo;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerService$vPmwW10Lr1Zc8YoNadc7v4xmIWo;->run()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$xKD6SB7pISjc29qfmXIq5O_3OJw;-><init>(Landroid/content/Context;Lcom/android/server/pm/Installer;Ljava/lang/Object;ZLjava/lang/Object;)V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$xKD6SB7pISjc29qfmXIq5O_3OJw;->produce(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$xZAAMOZCDrDe-FJUcRmxesa8h7c;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$xZAAMOZCDrDe-FJUcRmxesa8h7c;-><init>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$zCuBGosGB1OGJ7ya2EB4X5V2jBk;-><clinit>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$zCuBGosGB1OGJ7ya2EB4X5V2jBk;-><init>()V
HSPLcom/android/server/pm/-$$Lambda$PackageManagerService$zCuBGosGB1OGJ7ya2EB4X5V2jBk;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$JqfeXEVVj9qyD-t5TtAWP5dUo_Q;-><init>(Lcom/android/server/pm/dex/DexManager;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$JqfeXEVVj9qyD-t5TtAWP5dUo_Q;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$WqWSiwN-039OE_mRd8x6F_ORqRU;-><init>(Landroid/util/ArraySet;)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$WqWSiwN-039OE_mRd8x6F_ORqRU;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$ZEbcK7yQgHqG-8Z65v9KNo4jBgU;-><init>(J)V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$ZEbcK7yQgHqG-8Z65v9KNo4jBgU;->test(Ljava/lang/Object;)Z
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$_LUs2lN_dtgmbhOTm2Ear0f91Qg;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$_LUs2lN_dtgmbhOTm2Ear0f91Qg;-><init>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$_LUs2lN_dtgmbhOTm2Ear0f91Qg;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$pak5uFueWVDXpeD0raY40AD6lPY;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$pak5uFueWVDXpeD0raY40AD6lPY;-><init>()V
+HPLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$pak5uFueWVDXpeD0raY40AD6lPY;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$qCP9hzvvo1JqZQ7mV-34TucIk2o;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$qCP9hzvvo1JqZQ7mV-34TucIk2o;-><init>()V
+PLcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$qCP9hzvvo1JqZQ7mV-34TucIk2o;->test(Ljava/lang/Object;)Z
HSPLcom/android/server/pm/-$$Lambda$ParallelPackageParser$FTtinPrp068lVeI7K6bC1tNE3iM;-><init>(Lcom/android/server/pm/ParallelPackageParser;Ljava/io/File;I)V
HSPLcom/android/server/pm/-$$Lambda$ParallelPackageParser$FTtinPrp068lVeI7K6bC1tNE3iM;->run()V
-PLcom/android/server/pm/-$$Lambda$ShortcutBitmapSaver$AUDgG57FGyGDUVDAjL-7cuiE0pM;-><init>(Lcom/android/server/pm/ShortcutBitmapSaver;)V
+HSPLcom/android/server/pm/-$$Lambda$ShortcutBitmapSaver$AUDgG57FGyGDUVDAjL-7cuiE0pM;-><init>(Lcom/android/server/pm/ShortcutBitmapSaver;)V
PLcom/android/server/pm/-$$Lambda$ShortcutBitmapSaver$AUDgG57FGyGDUVDAjL-7cuiE0pM;->run()V
PLcom/android/server/pm/-$$Lambda$ShortcutBitmapSaver$xgjvZfaiKXavxgGCSta_eIdVBnk;-><init>(Ljava/util/concurrent/CountDownLatch;)V
PLcom/android/server/pm/-$$Lambda$ShortcutBitmapSaver$xgjvZfaiKXavxgGCSta_eIdVBnk;->run()V
PLcom/android/server/pm/-$$Lambda$ShortcutDumpFiles$rwmVVp6PnQCcurF7D6VzrdNqEdk;-><init>([B)V
PLcom/android/server/pm/-$$Lambda$ShortcutDumpFiles$rwmVVp6PnQCcurF7D6VzrdNqEdk;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/-$$Lambda$ShortcutDumpFiles$stGgHzhh-NVWPgDSwmH2ybAWRE8;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$ShortcutDumpFiles$stGgHzhh-NVWPgDSwmH2ybAWRE8;-><init>()V
+PLcom/android/server/pm/-$$Lambda$ShortcutDumpFiles$stGgHzhh-NVWPgDSwmH2ybAWRE8;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/pm/-$$Lambda$ShortcutDumpFiles$v6wMz6MRa9pgSnEDM_9bjvrLaKY;-><clinit>()V
+PLcom/android/server/pm/-$$Lambda$ShortcutDumpFiles$v6wMz6MRa9pgSnEDM_9bjvrLaKY;-><init>()V
+PLcom/android/server/pm/-$$Lambda$ShortcutDumpFiles$v6wMz6MRa9pgSnEDM_9bjvrLaKY;->accept(Ljava/io/File;)Z
PLcom/android/server/pm/-$$Lambda$ShortcutPackage$ZN-r6tS0M7WKGK6nbXyJZPwNRGc;-><clinit>()V
PLcom/android/server/pm/-$$Lambda$ShortcutPackage$ZN-r6tS0M7WKGK6nbXyJZPwNRGc;-><init>()V
PLcom/android/server/pm/-$$Lambda$ShortcutPackage$hEXnzlESoRjagj8Pd9f4PrqudKE;-><clinit>()V
PLcom/android/server/pm/-$$Lambda$ShortcutPackage$hEXnzlESoRjagj8Pd9f4PrqudKE;-><init>()V
PLcom/android/server/pm/-$$Lambda$ShortcutPackage$hEXnzlESoRjagj8Pd9f4PrqudKE;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/pm/-$$Lambda$ShortcutPackage$ibOAVgfKWMZFYSeVV_hLNx6jogk;-><init>(Lcom/android/server/pm/ShortcutPackage;)V
-PLcom/android/server/pm/-$$Lambda$ShortcutPackage$ibOAVgfKWMZFYSeVV_hLNx6jogk;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$3$WghiV-HLnzJqZabObC5uHCmb960;-><init>(Lcom/android/server/pm/ShortcutService$3;I)V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$3$WghiV-HLnzJqZabObC5uHCmb960;->run()V
-HPLcom/android/server/pm/-$$Lambda$ShortcutService$3$n_VdEzyBcjs0pGZO8GnB0FoTgR0;-><init>(Lcom/android/server/pm/ShortcutService$3;II)V
-HPLcom/android/server/pm/-$$Lambda$ShortcutService$3$n_VdEzyBcjs0pGZO8GnB0FoTgR0;->run()V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$DzwraUeMWDwA0XDfFxd3sGOsA0E;-><init>(Lcom/android/server/pm/ShortcutService;ILjava/lang/String;)V
+HSPLcom/android/server/pm/-$$Lambda$ShortcutService$3$WghiV-HLnzJqZabObC5uHCmb960;-><init>(Lcom/android/server/pm/ShortcutService$3;I)V
+HSPLcom/android/server/pm/-$$Lambda$ShortcutService$3$WghiV-HLnzJqZabObC5uHCmb960;->run()V
+HSPLcom/android/server/pm/-$$Lambda$ShortcutService$3$n_VdEzyBcjs0pGZO8GnB0FoTgR0;-><init>(Lcom/android/server/pm/ShortcutService$3;II)V
+HSPLcom/android/server/pm/-$$Lambda$ShortcutService$3$n_VdEzyBcjs0pGZO8GnB0FoTgR0;->run()V
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$DzwraUeMWDwA0XDfFxd3sGOsA0E;-><init>(Lcom/android/server/pm/ShortcutService;ILjava/lang/String;)V
PLcom/android/server/pm/-$$Lambda$ShortcutService$DzwraUeMWDwA0XDfFxd3sGOsA0E;->run()V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$H1HFyb1U9E1-y03suEsi37_w-t0;-><init>(Ljava/util/List;Landroid/content/IntentFilter;)V
+PLcom/android/server/pm/-$$Lambda$ShortcutService$H1HFyb1U9E1-y03suEsi37_w-t0;->accept(Ljava/lang/Object;)V
PLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$Q0t7aDuDFJ8HWAf1NHW1dGQjOf8;-><init>(Lcom/android/server/pm/ShortcutService$LocalService;ILjava/lang/String;Ljava/util/List;JLandroid/content/ComponentName;IILjava/util/ArrayList;III)V
PLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$Q0t7aDuDFJ8HWAf1NHW1dGQjOf8;->accept(Ljava/lang/Object;)V
PLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$ltDE7qm9grkumxffFI8cLCFpNqU;-><init>(JLandroid/util/ArraySet;Landroid/content/ComponentName;ZZZZ)V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$ltDE7qm9grkumxffFI8cLCFpNqU;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/pm/-$$Lambda$ShortcutService$LocalService$ltDE7qm9grkumxffFI8cLCFpNqU;->test(Ljava/lang/Object;)Z
PLcom/android/server/pm/-$$Lambda$ShortcutService$QFWliMhWloedhnaZCwVKaqKPVb4;-><init>(Lcom/android/server/pm/ShortcutService;JI)V
PLcom/android/server/pm/-$$Lambda$ShortcutService$QFWliMhWloedhnaZCwVKaqKPVb4;->run()V
PLcom/android/server/pm/-$$Lambda$ShortcutService$TUT0CJsDhxqkpcseduaAriOs6bg;-><clinit>()V
PLcom/android/server/pm/-$$Lambda$ShortcutService$TUT0CJsDhxqkpcseduaAriOs6bg;-><init>()V
PLcom/android/server/pm/-$$Lambda$ShortcutService$TUT0CJsDhxqkpcseduaAriOs6bg;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$TVqBA9DN_h90eIcwrnmy7Mkl6jo;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$TVqBA9DN_h90eIcwrnmy7Mkl6jo;->accept(Ljava/lang/Object;)V
PLcom/android/server/pm/-$$Lambda$ShortcutService$exGcjcSQADxpLL30XenIn9sDxlI;-><clinit>()V
PLcom/android/server/pm/-$$Lambda$ShortcutService$exGcjcSQADxpLL30XenIn9sDxlI;-><init>()V
PLcom/android/server/pm/-$$Lambda$ShortcutService$exGcjcSQADxpLL30XenIn9sDxlI;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$fCl_JbVpr187Fh4_6N-IxgnU68c;-><clinit>()V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$fCl_JbVpr187Fh4_6N-IxgnU68c;-><init>()V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$fCl_JbVpr187Fh4_6N-IxgnU68c;->accept(Ljava/lang/Object;)V
PLcom/android/server/pm/-$$Lambda$ShortcutService$io6aQoSP1ibWQCoayRXJaxbmJvA;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/util/ArrayList;)V
PLcom/android/server/pm/-$$Lambda$ShortcutService$io6aQoSP1ibWQCoayRXJaxbmJvA;->accept(Ljava/lang/Object;)V
PLcom/android/server/pm/-$$Lambda$ShortcutService$l8T8kXBB-Gktym0FoX_WiKj2Glc;-><clinit>()V
PLcom/android/server/pm/-$$Lambda$ShortcutService$l8T8kXBB-Gktym0FoX_WiKj2Glc;-><init>()V
PLcom/android/server/pm/-$$Lambda$ShortcutService$l8T8kXBB-Gktym0FoX_WiKj2Glc;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$t1am7miIbc4iP6CfSL0gFgEsO0Y;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;IZ)V
-PLcom/android/server/pm/-$$Lambda$ShortcutService$t1am7miIbc4iP6CfSL0gFgEsO0Y;->accept(Ljava/lang/Object;)V
PLcom/android/server/pm/-$$Lambda$ShortcutService$y1mZhNAWeEp6GCbsOBAt4g-DS3s;-><init>(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;I)V
PLcom/android/server/pm/-$$Lambda$ShortcutService$y1mZhNAWeEp6GCbsOBAt4g-DS3s;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/-$$Lambda$ShortcutUser$XHWlvjfCvG1SoVwGHi3envhmtfM;-><init>(ILjava/lang/String;Ljava/util/function/Consumer;)V
+HPLcom/android/server/pm/-$$Lambda$ShortcutUser$XHWlvjfCvG1SoVwGHi3envhmtfM;-><init>(ILjava/lang/String;Ljava/util/function/Consumer;)V
HPLcom/android/server/pm/-$$Lambda$ShortcutUser$XHWlvjfCvG1SoVwGHi3envhmtfM;->accept(Ljava/lang/Object;)V
PLcom/android/server/pm/-$$Lambda$ShortcutUser$bsc89E_40a5X2amehalpqawQ5hY;-><clinit>()V
PLcom/android/server/pm/-$$Lambda$ShortcutUser$bsc89E_40a5X2amehalpqawQ5hY;-><init>()V
PLcom/android/server/pm/-$$Lambda$ShortcutUser$bsc89E_40a5X2amehalpqawQ5hY;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/-$$Lambda$UserManagerService$s1AxethOTPU7NQ5LXxyP4etLk7E;-><init>(Landroid/os/IUserRestrictionsListener;)V
+HSPLcom/android/server/pm/-$$Lambda$UserManagerService$s1AxethOTPU7NQ5LXxyP4etLk7E;-><init>(Landroid/os/IUserRestrictionsListener;)V
PLcom/android/server/pm/-$$Lambda$UserManagerService$s1AxethOTPU7NQ5LXxyP4etLk7E;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
-PLcom/android/server/pm/-$$Lambda$jZzCUQd1whVIqs_s1XMLbFqTP_E;-><init>(Lcom/android/server/pm/ShortcutService;)V
+HSPLcom/android/server/pm/-$$Lambda$g4P9K8aMR8DqEu0xx3BuQNeuJDI;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$g4P9K8aMR8DqEu0xx3BuQNeuJDI;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$g4P9K8aMR8DqEu0xx3BuQNeuJDI;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/pm/-$$Lambda$jZzCUQd1whVIqs_s1XMLbFqTP_E;-><init>(Lcom/android/server/pm/ShortcutService;)V
PLcom/android/server/pm/-$$Lambda$jZzCUQd1whVIqs_s1XMLbFqTP_E;->run()V
+HSPLcom/android/server/pm/-$$Lambda$k1GFoI6SobyVJslBym5uZjmuRFs;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$k1GFoI6SobyVJslBym5uZjmuRFs;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$k1GFoI6SobyVJslBym5uZjmuRFs;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/pm/-$$Lambda$o-ZLavkSzPWqIqo9vLXCsdj4Pgg;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$o-ZLavkSzPWqIqo9vLXCsdj4Pgg;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$o-ZLavkSzPWqIqo9vLXCsdj4Pgg;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/pm/-$$Lambda$p0TiQPw2ryHKkedVkMgvUcGADDo;-><clinit>()V
+HSPLcom/android/server/pm/-$$Lambda$p0TiQPw2ryHKkedVkMgvUcGADDo;-><init>()V
+HSPLcom/android/server/pm/-$$Lambda$p0TiQPw2ryHKkedVkMgvUcGADDo;->apply(Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/pm/-$$Lambda$vv6Ko6L2p38nn3EYcL5PZxcyRyk;-><clinit>()V
PLcom/android/server/pm/-$$Lambda$vv6Ko6L2p38nn3EYcL5PZxcyRyk;-><init>()V
PLcom/android/server/pm/-$$Lambda$vv6Ko6L2p38nn3EYcL5PZxcyRyk;->test(Ljava/lang/Object;)Z
@@ -11425,181 +13720,240 @@ PLcom/android/server/pm/AbstractStatsBase$1;-><init>(Lcom/android/server/pm/Abst
PLcom/android/server/pm/AbstractStatsBase$1;->run()V
HSPLcom/android/server/pm/AbstractStatsBase;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
HSPLcom/android/server/pm/AbstractStatsBase;->getFile()Landroid/util/AtomicFile;
-PLcom/android/server/pm/AbstractStatsBase;->maybeWriteAsync(Ljava/lang/Object;)Z
+HPLcom/android/server/pm/AbstractStatsBase;->maybeWriteAsync(Ljava/lang/Object;)Z
HSPLcom/android/server/pm/AbstractStatsBase;->read(Ljava/lang/Object;)V
PLcom/android/server/pm/AbstractStatsBase;->writeImpl(Ljava/lang/Object;)V
+HSPLcom/android/server/pm/ApexManager$1;-><init>()V
+HSPLcom/android/server/pm/ApexManager$1;->create()Lcom/android/server/pm/ApexManager;
+HSPLcom/android/server/pm/ApexManager$1;->create()Ljava/lang/Object;
HSPLcom/android/server/pm/ApexManager$ActiveApexInfo;-><init>(Ljava/io/File;Ljava/io/File;)V
HSPLcom/android/server/pm/ApexManager$ActiveApexInfo;-><init>(Ljava/io/File;Ljava/io/File;Lcom/android/server/pm/ApexManager$1;)V
-PLcom/android/server/pm/ApexManager$ApexManagerImpl$1;-><init>(Lcom/android/server/pm/ApexManager$ApexManagerImpl;)V
+HSPLcom/android/server/pm/ApexManager$ApexManagerImpl$1;-><init>(Lcom/android/server/pm/ApexManager$ApexManagerImpl;)V
PLcom/android/server/pm/ApexManager$ApexManagerImpl$1;->lambda$onReceive$0$ApexManager$ApexManagerImpl$1()V
PLcom/android/server/pm/ApexManager$ApexManagerImpl$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;-><init>(Landroid/content/Context;Landroid/apex/IApexService;)V
-PLcom/android/server/pm/ApexManager$ApexManagerImpl;->access$100(Lcom/android/server/pm/ApexManager$ApexManagerImpl;)Landroid/content/Context;
-PLcom/android/server/pm/ApexManager$ApexManagerImpl;->access$200(Lcom/android/server/pm/ApexManager$ApexManagerImpl;)V
+HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;-><init>(Landroid/apex/IApexService;)V
+PLcom/android/server/pm/ApexManager$ApexManagerImpl;->access$100(Lcom/android/server/pm/ApexManager$ApexManagerImpl;)V
+PLcom/android/server/pm/ApexManager$ApexManagerImpl;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/pm/ApexManager$ApexManagerImpl;->dumpFromPackagesCache(Ljava/util/List;Ljava/lang/String;Lcom/android/internal/util/IndentingPrintWriter;)V
HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->getActiveApexInfos()Ljava/util/List;
+HPLcom/android/server/pm/ApexManager$ApexManagerImpl;->getActivePackages()Ljava/util/List;
+PLcom/android/server/pm/ApexManager$ApexManagerImpl;->getFactoryPackages()Ljava/util/List;
+PLcom/android/server/pm/ApexManager$ApexManagerImpl;->getInactivePackages()Ljava/util/List;
HPLcom/android/server/pm/ApexManager$ApexManagerImpl;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
PLcom/android/server/pm/ApexManager$ApexManagerImpl;->isActive(Landroid/content/pm/PackageInfo;)Z
-HPLcom/android/server/pm/ApexManager$ApexManagerImpl;->isApexPackage(Ljava/lang/String;)Z
-PLcom/android/server/pm/ApexManager$ApexManagerImpl;->isApexSupported()Z
+HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->isApexPackage(Ljava/lang/String;)Z
+HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->isApexSupported()Z
+PLcom/android/server/pm/ApexManager$ApexManagerImpl;->isFactory(Landroid/content/pm/PackageInfo;)Z
HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->lambda$getActiveApexInfos$0(Landroid/apex/ApexInfo;)Lcom/android/server/pm/ApexManager$ActiveApexInfo;
PLcom/android/server/pm/ApexManager$ApexManagerImpl;->lambda$getActivePackages$1(Landroid/content/pm/PackageInfo;)Z
-PLcom/android/server/pm/ApexManager$ApexManagerImpl;->populateAllPackagesCacheIfNeeded()V
-PLcom/android/server/pm/ApexManager$ApexManagerImpl;->systemReady()V
+PLcom/android/server/pm/ApexManager$ApexManagerImpl;->lambda$getFactoryPackages$2(Landroid/content/pm/PackageInfo;)Z
+PLcom/android/server/pm/ApexManager$ApexManagerImpl;->lambda$getInactivePackages$3(Landroid/content/pm/PackageInfo;)Z
+HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->populateAllPackagesCacheIfNeeded()V
+HSPLcom/android/server/pm/ApexManager$ApexManagerImpl;->systemReady(Landroid/content/Context;)V
+HSPLcom/android/server/pm/ApexManager;-><clinit>()V
HSPLcom/android/server/pm/ApexManager;-><init>()V
-HSPLcom/android/server/pm/ApexManager;->create(Landroid/content/Context;)Lcom/android/server/pm/ApexManager;
+HSPLcom/android/server/pm/ApexManager;->getInstance()Lcom/android/server/pm/ApexManager;
HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;-><init>(Lcom/android/server/pm/PackageManagerService$Injector;)V
HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;-><init>(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/AppsFilter$1;)V
-HPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->isGloballyEnabled()Z
-PLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->onSystemReady()V
+HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->isGloballyEnabled()Z
+PLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->lambda$onSystemReady$0$AppsFilter$FeatureConfigImpl(Landroid/provider/DeviceConfig$Properties;)V
+HSPLcom/android/server/pm/AppsFilter$FeatureConfigImpl;->onSystemReady()V
HSPLcom/android/server/pm/AppsFilter;-><init>(Lcom/android/server/pm/AppsFilter$FeatureConfig;[Ljava/lang/String;Z)V
HSPLcom/android/server/pm/AppsFilter;->addPackage(Lcom/android/server/pm/PackageSetting;Landroid/util/ArrayMap;)V
-HSPLcom/android/server/pm/AppsFilter;->canQueryViaIntent(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageParser$Package;)Z
+HSPLcom/android/server/pm/AppsFilter;->canQueryViaIntent(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;)Z
HSPLcom/android/server/pm/AppsFilter;->create(Lcom/android/server/pm/PackageManagerService$Injector;)Lcom/android/server/pm/AppsFilter;
-PLcom/android/server/pm/AppsFilter;->dumpQueries(Ljava/io/PrintWriter;Lcom/android/server/pm/PackageManagerService;Ljava/lang/Integer;Lcom/android/server/pm/DumpState;[I)V
-HPLcom/android/server/pm/AppsFilter;->grantImplicitAccess(II)V
-PLcom/android/server/pm/AppsFilter;->onSystemReady()V
+HPLcom/android/server/pm/AppsFilter;->dumpQueries(Ljava/io/PrintWriter;Lcom/android/server/pm/PackageManagerService;Ljava/lang/Integer;Lcom/android/server/pm/DumpState;[I)V
+HSPLcom/android/server/pm/AppsFilter;->grantImplicitAccess(II)V
+HSPLcom/android/server/pm/AppsFilter;->onSystemReady()V
HPLcom/android/server/pm/AppsFilter;->removePackage(Lcom/android/server/pm/PackageSetting;[ILandroid/util/ArrayMap;)V
-HPLcom/android/server/pm/AppsFilter;->shouldFilterApplication(ILcom/android/server/pm/SettingBase;Lcom/android/server/pm/PackageSetting;I)Z
-HPLcom/android/server/pm/AppsFilter;->shouldFilterApplicationInternal(ILcom/android/server/pm/SettingBase;Lcom/android/server/pm/PackageSetting;I)Z
+HSPLcom/android/server/pm/AppsFilter;->shouldFilterApplication(ILcom/android/server/pm/SettingBase;Lcom/android/server/pm/PackageSetting;I)Z
+HSPLcom/android/server/pm/AppsFilter;->shouldFilterApplicationInternal(ILcom/android/server/pm/SettingBase;Lcom/android/server/pm/PackageSetting;I)Z
PLcom/android/server/pm/BackgroundDexOptService$1;-><init>(Lcom/android/server/pm/BackgroundDexOptService;Ljava/lang/String;Landroid/app/job/JobParameters;Lcom/android/server/pm/PackageManagerService;Landroid/util/ArraySet;)V
PLcom/android/server/pm/BackgroundDexOptService$1;->run()V
-PLcom/android/server/pm/BackgroundDexOptService;-><clinit>()V
+PLcom/android/server/pm/BackgroundDexOptService$2;-><init>(Lcom/android/server/pm/BackgroundDexOptService;Ljava/lang/String;Lcom/android/server/pm/PackageManagerService;Landroid/util/ArraySet;Landroid/app/job/JobParameters;)V
+PLcom/android/server/pm/BackgroundDexOptService$2;->run()V
+HSPLcom/android/server/pm/BackgroundDexOptService;-><clinit>()V
PLcom/android/server/pm/BackgroundDexOptService;-><init>()V
+PLcom/android/server/pm/BackgroundDexOptService;->abortIdleOptimizations(J)I
PLcom/android/server/pm/BackgroundDexOptService;->getBatteryLevel()I
-PLcom/android/server/pm/BackgroundDexOptService;->getDowngradeUnusedAppsThresholdInMillis()J
-PLcom/android/server/pm/BackgroundDexOptService;->isBackgroundDexoptDisabled()Z
+HSPLcom/android/server/pm/BackgroundDexOptService;->getDowngradeUnusedAppsThresholdInMillis()J
+PLcom/android/server/pm/BackgroundDexOptService;->idleOptimizePackages(Lcom/android/server/pm/PackageManagerService;Landroid/util/ArraySet;J)I
+HSPLcom/android/server/pm/BackgroundDexOptService;->isBackgroundDexoptDisabled()Z
PLcom/android/server/pm/BackgroundDexOptService;->notifyPackageChanged(Ljava/lang/String;)V
PLcom/android/server/pm/BackgroundDexOptService;->notifyPinService(Landroid/util/ArraySet;)V
PLcom/android/server/pm/BackgroundDexOptService;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/pm/BackgroundDexOptService;->onStopJob(Landroid/app/job/JobParameters;)Z
+PLcom/android/server/pm/BackgroundDexOptService;->optimizePackage(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;Z)Z
+HPLcom/android/server/pm/BackgroundDexOptService;->optimizePackages(Lcom/android/server/pm/PackageManagerService;Landroid/util/ArraySet;JZLandroid/util/ArraySet;)I
+HPLcom/android/server/pm/BackgroundDexOptService;->performDexOptPrimary(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;II)Z
PLcom/android/server/pm/BackgroundDexOptService;->postBootUpdate(Landroid/app/job/JobParameters;Lcom/android/server/pm/PackageManagerService;Landroid/util/ArraySet;)V
-PLcom/android/server/pm/BackgroundDexOptService;->schedule(Landroid/content/Context;)V
+PLcom/android/server/pm/BackgroundDexOptService;->reconcileSecondaryDexFiles(Lcom/android/server/pm/dex/DexManager;)I
+HSPLcom/android/server/pm/BackgroundDexOptService;->schedule(Landroid/content/Context;)V
+PLcom/android/server/pm/BackgroundDexOptService;->shouldDowngrade(J)Z
+PLcom/android/server/pm/BackgroundDexOptService;->supportSecondaryDex()Z
+PLcom/android/server/pm/BackgroundDexOptService;->trackPerformDexOpt(Ljava/lang/String;ZLjava/util/function/Supplier;)I
HSPLcom/android/server/pm/CompilerStats$PackageStats;-><init>(Ljava/lang/String;)V
+PLcom/android/server/pm/CompilerStats$PackageStats;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
HSPLcom/android/server/pm/CompilerStats$PackageStats;->getStoredPathFromCodePath(Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/server/pm/CompilerStats$PackageStats;->setCompileTime(Ljava/lang/String;J)V
HSPLcom/android/server/pm/CompilerStats;-><init>()V
HSPLcom/android/server/pm/CompilerStats;->createPackageStats(Ljava/lang/String;)Lcom/android/server/pm/CompilerStats$PackageStats;
HSPLcom/android/server/pm/CompilerStats;->getOrCreatePackageStats(Ljava/lang/String;)Lcom/android/server/pm/CompilerStats$PackageStats;
+PLcom/android/server/pm/CompilerStats;->getPackageStats(Ljava/lang/String;)Lcom/android/server/pm/CompilerStats$PackageStats;
+PLcom/android/server/pm/CompilerStats;->maybeWriteAsync()Z
HSPLcom/android/server/pm/CompilerStats;->read()V
HSPLcom/android/server/pm/CompilerStats;->read(Ljava/io/Reader;)Z
HSPLcom/android/server/pm/CompilerStats;->readInternal(Ljava/lang/Object;)V
HSPLcom/android/server/pm/CompilerStats;->readInternal(Ljava/lang/Void;)V
-HSPLcom/android/server/pm/ComponentResolver$ActionIterGenerator;-><init>()V
-HSPLcom/android/server/pm/ComponentResolver$ActionIterGenerator;->generate(Landroid/content/pm/PackageParser$ActivityIntentInfo;)Ljava/util/Iterator;
+PLcom/android/server/pm/CompilerStats;->write(Ljava/io/Writer;)V
+PLcom/android/server/pm/CompilerStats;->writeInternal(Ljava/lang/Object;)V
+PLcom/android/server/pm/CompilerStats;->writeInternal(Ljava/lang/Void;)V
HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;-><init>()V
HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;-><init>(Lcom/android/server/pm/ComponentResolver$1;)V
-PLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->access$300(Lcom/android/server/pm/ComponentResolver$ActivityIntentResolver;)Landroid/util/ArrayMap;
-HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->access$600(Lcom/android/server/pm/ComponentResolver$ActivityIntentResolver;Landroid/content/pm/PackageParser$Activity;Ljava/lang/String;Ljava/util/List;)V
-HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->addActivity(Landroid/content/pm/PackageParser$Activity;Ljava/lang/String;Ljava/util/List;)V
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->access$400(Lcom/android/server/pm/ComponentResolver$ActivityIntentResolver;)Landroid/util/ArrayMap;
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->access$700(Lcom/android/server/pm/ComponentResolver$ActivityIntentResolver;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;Ljava/lang/String;Ljava/util/List;)V
+PLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->access$800(Lcom/android/server/pm/ComponentResolver$ActivityIntentResolver;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;Ljava/lang/String;)V
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->addActivity(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;Ljava/lang/String;Ljava/util/List;)V
HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
-HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->allowFilterResult(Landroid/content/pm/PackageParser$ActivityIntentInfo;Ljava/util/List;)Z
-HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isFilterStopped(Landroid/content/IntentFilter;I)Z
-HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isFilterStopped(Landroid/content/pm/PackageParser$ActivityIntentInfo;I)Z
-HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
-HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/pm/PackageParser$ActivityIntentInfo;)Z
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->allowFilterResult(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;Ljava/util/List;)Z
+HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->dumpFilterLabel(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;I)V
+HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->filterToLabel(Landroid/content/IntentFilter;)Ljava/lang/Object;
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->getResolveList(Landroid/content/pm/parsing/AndroidPackage;)Ljava/util/List;
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isFilterStopped(Landroid/content/IntentFilter;I)Z
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isFilterStopped(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;I)Z
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)Z
HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
-HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newArray(I)[Landroid/content/pm/PackageParser$ActivityIntentInfo;
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newArray(I)[Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;
HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
-HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newResult(Landroid/content/pm/PackageParser$ActivityIntentInfo;II)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->newResult(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;II)Landroid/content/pm/ResolveInfo;
HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->queryIntent(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
-HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->queryIntentForPackage(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
-PLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->removeActivity(Landroid/content/pm/PackageParser$Activity;Ljava/lang/String;)V
+HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->queryIntentForPackage(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
+HPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->removeActivity(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;Ljava/lang/String;)V
HSPLcom/android/server/pm/ComponentResolver$ActivityIntentResolver;->sortResults(Ljava/util/List;)V
-HSPLcom/android/server/pm/ComponentResolver$AuthoritiesIterGenerator;-><init>()V
-HSPLcom/android/server/pm/ComponentResolver$AuthoritiesIterGenerator;->generate(Landroid/content/pm/PackageParser$ActivityIntentInfo;)Ljava/util/Iterator;
-HSPLcom/android/server/pm/ComponentResolver$CategoriesIterGenerator;-><init>()V
-HSPLcom/android/server/pm/ComponentResolver$CategoriesIterGenerator;->generate(Landroid/content/pm/PackageParser$ActivityIntentInfo;)Ljava/util/Iterator;
-HSPLcom/android/server/pm/ComponentResolver$IterGenerator;-><init>()V
+PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;-><init>()V
+PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->filterResults(Ljava/util/List;)V
+PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
+PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->newArray(I)[Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;
+PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
+PLcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;->newResult(Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;II)Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;
HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;-><init>()V
HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;-><init>(Lcom/android/server/pm/ComponentResolver$1;)V
-HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->access$400(Lcom/android/server/pm/ComponentResolver$ProviderIntentResolver;)Landroid/util/ArrayMap;
-HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->addProvider(Landroid/content/pm/PackageParser$Provider;)V
+HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->access$500(Lcom/android/server/pm/ComponentResolver$ProviderIntentResolver;)Landroid/util/ArrayMap;
+HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->addProvider(Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;)V
PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
-PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->allowFilterResult(Landroid/content/pm/PackageParser$ProviderIntentInfo;Ljava/util/List;)Z
+HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->allowFilterResult(Landroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;Ljava/util/List;)Z
+PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->dumpFilterLabel(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;I)V
+PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->filterToLabel(Landroid/content/IntentFilter;)Ljava/lang/Object;
PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
-HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newArray(I)[Landroid/content/pm/PackageParser$ProviderIntentInfo;
+HSPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newArray(I)[Landroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;
PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
-PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newResult(Landroid/content/pm/PackageParser$ProviderIntentInfo;II)Landroid/content/pm/ResolveInfo;
+HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->newResult(Landroid/content/pm/parsing/ComponentParseUtils$ParsedProviderIntentInfo;II)Landroid/content/pm/ResolveInfo;
PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->queryIntent(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->queryIntentForPackage(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
-PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->removeProvider(Landroid/content/pm/PackageParser$Provider;)V
+HPLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->removeProvider(Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;)V
PLcom/android/server/pm/ComponentResolver$ProviderIntentResolver;->sortResults(Ljava/util/List;)V
-HSPLcom/android/server/pm/ComponentResolver$SchemesIterGenerator;-><init>()V
-HSPLcom/android/server/pm/ComponentResolver$SchemesIterGenerator;->generate(Landroid/content/pm/PackageParser$ActivityIntentInfo;)Ljava/util/Iterator;
+HSPLcom/android/server/pm/ComponentResolver$ReceiverIntentResolver;-><init>()V
+HSPLcom/android/server/pm/ComponentResolver$ReceiverIntentResolver;-><init>(Lcom/android/server/pm/ComponentResolver$1;)V
+HSPLcom/android/server/pm/ComponentResolver$ReceiverIntentResolver;->getResolveList(Landroid/content/pm/parsing/AndroidPackage;)Ljava/util/List;
HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;-><init>()V
HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;-><init>(Lcom/android/server/pm/ComponentResolver$1;)V
-PLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->access$500(Lcom/android/server/pm/ComponentResolver$ServiceIntentResolver;)Landroid/util/ArrayMap;
-HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->addService(Landroid/content/pm/PackageParser$Service;)V
-HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
-HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->allowFilterResult(Landroid/content/pm/PackageParser$ServiceIntentInfo;Ljava/util/List;)Z
-HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
-HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/pm/PackageParser$ServiceIntentInfo;)Z
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->access$600(Lcom/android/server/pm/ComponentResolver$ServiceIntentResolver;)Landroid/util/ArrayMap;
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->addService(Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;)V
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->allowFilterResult(Landroid/content/IntentFilter;Ljava/util/List;)Z
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->allowFilterResult(Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;Ljava/util/List;)Z
+HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->dumpFilterLabel(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;I)V
+PLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->filterToLabel(Landroid/content/IntentFilter;)Ljava/lang/Object;
+PLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isFilterStopped(Landroid/content/IntentFilter;I)Z
+PLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isFilterStopped(Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;I)Z
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/IntentFilter;)Z
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->isPackageForFilter(Ljava/lang/String;Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;)Z
HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
-HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newArray(I)[Landroid/content/pm/PackageParser$ServiceIntentInfo;
-HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
-HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newResult(Landroid/content/pm/PackageParser$ServiceIntentInfo;II)Landroid/content/pm/ResolveInfo;
-PLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->queryIntent(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
-HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->queryIntentForPackage(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
-PLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->removeService(Landroid/content/pm/PackageParser$Service;)V
-HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->sortResults(Ljava/util/List;)V
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newArray(I)[Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newResult(Landroid/content/IntentFilter;II)Ljava/lang/Object;
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->newResult(Landroid/content/pm/parsing/ComponentParseUtils$ParsedServiceIntentInfo;II)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->queryIntent(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->queryIntentForPackage(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
+HPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->removeService(Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;)V
+HSPLcom/android/server/pm/ComponentResolver$ServiceIntentResolver;->sortResults(Ljava/util/List;)V
HSPLcom/android/server/pm/ComponentResolver;-><clinit>()V
HSPLcom/android/server/pm/ComponentResolver;-><init>(Lcom/android/server/pm/UserManagerService;Landroid/content/pm/PackageManagerInternal;Ljava/lang/Object;)V
-HSPLcom/android/server/pm/ComponentResolver;->access$800()Lcom/android/server/pm/UserManagerService;
-HSPLcom/android/server/pm/ComponentResolver;->access$900()Landroid/content/pm/PackageManagerInternal;
-HSPLcom/android/server/pm/ComponentResolver;->addActivitiesLocked(Landroid/content/pm/PackageParser$Package;Ljava/util/List;Z)V
-HSPLcom/android/server/pm/ComponentResolver;->addAllComponents(Landroid/content/pm/PackageParser$Package;Z)V
-HSPLcom/android/server/pm/ComponentResolver;->addProvidersLocked(Landroid/content/pm/PackageParser$Package;Z)V
-HSPLcom/android/server/pm/ComponentResolver;->addReceiversLocked(Landroid/content/pm/PackageParser$Package;Z)V
-HSPLcom/android/server/pm/ComponentResolver;->addServicesLocked(Landroid/content/pm/PackageParser$Package;Z)V
-HSPLcom/android/server/pm/ComponentResolver;->adjustPriority(Ljava/util/List;Landroid/content/pm/PackageParser$ActivityIntentInfo;Ljava/lang/String;)V
-PLcom/android/server/pm/ComponentResolver;->assertProvidersNotDefined(Landroid/content/pm/PackageParser$Package;)V
-PLcom/android/server/pm/ComponentResolver;->assertProvidersNotDefinedLocked(Landroid/content/pm/PackageParser$Package;)V
-HSPLcom/android/server/pm/ComponentResolver;->findMatchingActivity(Ljava/util/List;Landroid/content/pm/ActivityInfo;)Landroid/content/pm/PackageParser$Activity;
+HSPLcom/android/server/pm/ComponentResolver;->access$1000()Landroid/content/pm/PackageManagerInternal;
+HSPLcom/android/server/pm/ComponentResolver;->access$900()Lcom/android/server/pm/UserManagerService;
+HSPLcom/android/server/pm/ComponentResolver;->addActivitiesLocked(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/List;Z)V
+HSPLcom/android/server/pm/ComponentResolver;->addAllComponents(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/ComponentResolver;->addProvidersLocked(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/ComponentResolver;->addReceiversLocked(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/ComponentResolver;->addServicesLocked(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/ComponentResolver;->adjustPriority(Ljava/util/List;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;Ljava/lang/String;)V
+PLcom/android/server/pm/ComponentResolver;->assertProvidersNotDefined(Landroid/content/pm/parsing/AndroidPackage;)V
+HPLcom/android/server/pm/ComponentResolver;->assertProvidersNotDefinedLocked(Landroid/content/pm/parsing/AndroidPackage;)V
+PLcom/android/server/pm/ComponentResolver;->dumpActivityResolvers(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
+PLcom/android/server/pm/ComponentResolver;->dumpContentProviders(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
+PLcom/android/server/pm/ComponentResolver;->dumpProviderResolvers(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
+PLcom/android/server/pm/ComponentResolver;->dumpReceiverResolvers(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
+HPLcom/android/server/pm/ComponentResolver;->dumpServicePermissions(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;)V
+PLcom/android/server/pm/ComponentResolver;->dumpServiceResolvers(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;Ljava/lang/String;)V
+HSPLcom/android/server/pm/ComponentResolver;->findMatchingActivity(Ljava/util/List;Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
HSPLcom/android/server/pm/ComponentResolver;->fixProtectedFilterPriorities()V
-HPLcom/android/server/pm/ComponentResolver;->getActivity(Landroid/content/ComponentName;)Landroid/content/pm/PackageParser$Activity;
-HSPLcom/android/server/pm/ComponentResolver;->getIntentListSubset(Ljava/util/List;Lcom/android/server/pm/ComponentResolver$IterGenerator;Ljava/util/Iterator;)V
-HPLcom/android/server/pm/ComponentResolver;->getProvider(Landroid/content/ComponentName;)Landroid/content/pm/PackageParser$Provider;
-HPLcom/android/server/pm/ComponentResolver;->getReceiver(Landroid/content/ComponentName;)Landroid/content/pm/PackageParser$Activity;
-HPLcom/android/server/pm/ComponentResolver;->getService(Landroid/content/ComponentName;)Landroid/content/pm/PackageParser$Service;
-PLcom/android/server/pm/ComponentResolver;->isActivityDefined(Landroid/content/ComponentName;)Z
-HSPLcom/android/server/pm/ComponentResolver;->isProtectedAction(Landroid/content/pm/PackageParser$ActivityIntentInfo;)Z
-HPLcom/android/server/pm/ComponentResolver;->lambda$static$0(Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;)I
+HSPLcom/android/server/pm/ComponentResolver;->getActivity(Landroid/content/ComponentName;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+HSPLcom/android/server/pm/ComponentResolver;->getIntentListSubset(Ljava/util/List;Ljava/util/function/Function;Ljava/util/Iterator;)V
+HPLcom/android/server/pm/ComponentResolver;->getProvider(Landroid/content/ComponentName;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedProvider;
+HSPLcom/android/server/pm/ComponentResolver;->getReceiver(Landroid/content/ComponentName;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivity;
+HSPLcom/android/server/pm/ComponentResolver;->getService(Landroid/content/ComponentName;)Landroid/content/pm/parsing/ComponentParseUtils$ParsedService;
+HSPLcom/android/server/pm/ComponentResolver;->isActivityDefined(Landroid/content/ComponentName;)Z
+HSPLcom/android/server/pm/ComponentResolver;->isProtectedAction(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)Z
+HSPLcom/android/server/pm/ComponentResolver;->lambda$static$0(Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;)I
HSPLcom/android/server/pm/ComponentResolver;->queryActivities(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
-HPLcom/android/server/pm/ComponentResolver;->queryActivities(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
-HPLcom/android/server/pm/ComponentResolver;->queryProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
+HSPLcom/android/server/pm/ComponentResolver;->queryActivities(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
+HSPLcom/android/server/pm/ComponentResolver;->queryProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
PLcom/android/server/pm/ComponentResolver;->queryProviders(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
PLcom/android/server/pm/ComponentResolver;->queryProviders(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
-HPLcom/android/server/pm/ComponentResolver;->queryProviders(Ljava/lang/String;Ljava/lang/String;III)Ljava/util/List;
-HPLcom/android/server/pm/ComponentResolver;->queryReceivers(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
-PLcom/android/server/pm/ComponentResolver;->queryReceivers(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
-HPLcom/android/server/pm/ComponentResolver;->queryServices(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
-HPLcom/android/server/pm/ComponentResolver;->queryServices(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
-PLcom/android/server/pm/ComponentResolver;->removeAllComponents(Landroid/content/pm/PackageParser$Package;Z)V
-PLcom/android/server/pm/ComponentResolver;->removeAllComponentsLocked(Landroid/content/pm/PackageParser$Package;Z)V
-PLcom/android/server/pm/CrossProfileAppsService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/pm/CrossProfileAppsService;->onStart()V
-PLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;-><init>(Landroid/content/Context;)V
-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
+HSPLcom/android/server/pm/ComponentResolver;->queryProviders(Ljava/lang/String;Ljava/lang/String;III)Ljava/util/List;
+HSPLcom/android/server/pm/ComponentResolver;->queryReceivers(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
+HSPLcom/android/server/pm/ComponentResolver;->queryReceivers(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
+HSPLcom/android/server/pm/ComponentResolver;->queryServices(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
+HSPLcom/android/server/pm/ComponentResolver;->queryServices(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Ljava/util/List;
+PLcom/android/server/pm/ComponentResolver;->removeAllComponents(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HPLcom/android/server/pm/ComponentResolver;->removeAllComponentsLocked(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/CrossProfileAppsService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/pm/CrossProfileAppsService;->onStart()V
+HSPLcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/pm/CrossProfileAppsServiceImpl;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/pm/CrossProfileAppsServiceImpl;-><init>(Landroid/content/Context;Lcom/android/server/pm/CrossProfileAppsServiceImpl$Injector;)V
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->getTargetUserProfiles(Ljava/lang/String;)Ljava/util/List;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->getTargetUserProfilesUnchecked(Ljava/lang/String;I)Ljava/util/List;
+PLcom/android/server/pm/CrossProfileAppsServiceImpl;->isPackageEnabled(Ljava/lang/String;I)Z
HSPLcom/android/server/pm/CrossProfileIntentFilter;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V
+PLcom/android/server/pm/CrossProfileIntentFilter;->getFlags()I
HSPLcom/android/server/pm/CrossProfileIntentFilter;->getIntFromXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
HSPLcom/android/server/pm/CrossProfileIntentFilter;->getStringFromXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/pm/CrossProfileIntentFilter;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+PLcom/android/server/pm/CrossProfileIntentFilter;->getTargetUserId()I
+HSPLcom/android/server/pm/CrossProfileIntentFilter;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V
HSPLcom/android/server/pm/CrossProfileIntentResolver;-><init>()V
HSPLcom/android/server/pm/CrossProfileIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
HSPLcom/android/server/pm/CrossProfileIntentResolver;->newArray(I)[Lcom/android/server/pm/CrossProfileIntentFilter;
HSPLcom/android/server/pm/CrossProfileIntentResolver;->sortResults(Ljava/util/List;)V
+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
PLcom/android/server/pm/DumpState;-><init>()V
+PLcom/android/server/pm/DumpState;->getTitlePrinted()Z
PLcom/android/server/pm/DumpState;->isDumping(I)Z
PLcom/android/server/pm/DumpState;->isOptionEnabled(I)Z
PLcom/android/server/pm/DumpState;->onTitlePrinted()Z
+PLcom/android/server/pm/DumpState;->setTitlePrinted(Z)V
PLcom/android/server/pm/DynamicCodeLoggingService$AuditWatchingThread;-><init>(Lcom/android/server/pm/DynamicCodeLoggingService;Landroid/app/job/JobParameters;)V
-PLcom/android/server/pm/DynamicCodeLoggingService$AuditWatchingThread;->processAuditEvents()Z
+HPLcom/android/server/pm/DynamicCodeLoggingService$AuditWatchingThread;->processAuditEvents()Z
PLcom/android/server/pm/DynamicCodeLoggingService$AuditWatchingThread;->run()V
-PLcom/android/server/pm/DynamicCodeLoggingService;-><clinit>()V
+PLcom/android/server/pm/DynamicCodeLoggingService$IdleLoggingThread;-><init>(Lcom/android/server/pm/DynamicCodeLoggingService;Landroid/app/job/JobParameters;)V
+PLcom/android/server/pm/DynamicCodeLoggingService$IdleLoggingThread;->run()V
+HSPLcom/android/server/pm/DynamicCodeLoggingService;-><clinit>()V
PLcom/android/server/pm/DynamicCodeLoggingService;-><init>()V
PLcom/android/server/pm/DynamicCodeLoggingService;->onStartJob(Landroid/app/job/JobParameters;)Z
-PLcom/android/server/pm/DynamicCodeLoggingService;->schedule(Landroid/content/Context;)V
+PLcom/android/server/pm/DynamicCodeLoggingService;->onStopJob(Landroid/app/job/JobParameters;)Z
+HSPLcom/android/server/pm/DynamicCodeLoggingService;->schedule(Landroid/content/Context;)V
HSPLcom/android/server/pm/InstallSource;-><clinit>()V
HSPLcom/android/server/pm/InstallSource;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
HSPLcom/android/server/pm/InstallSource;->create(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lcom/android/server/pm/InstallSource;
@@ -11612,81 +13966,91 @@ PLcom/android/server/pm/Installer$InstallerException;-><init>(Ljava/lang/String;
PLcom/android/server/pm/Installer$InstallerException;->from(Ljava/lang/Exception;)Lcom/android/server/pm/Installer$InstallerException;
HSPLcom/android/server/pm/Installer;-><init>(Landroid/content/Context;)V
HSPLcom/android/server/pm/Installer;-><init>(Landroid/content/Context;Z)V
-HSPLcom/android/server/pm/Installer;->assertFsverityRootHashMatches(Ljava/lang/String;[B)V
PLcom/android/server/pm/Installer;->assertValidInstructionSet(Ljava/lang/String;)V
HSPLcom/android/server/pm/Installer;->checkBeforeRemote()Z
PLcom/android/server/pm/Installer;->clearAppData(Ljava/lang/String;Ljava/lang/String;IIJ)V
-PLcom/android/server/pm/Installer;->clearAppProfiles(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/pm/Installer;->clearAppProfiles(Ljava/lang/String;Ljava/lang/String;)V
HSPLcom/android/server/pm/Installer;->connect()V
+PLcom/android/server/pm/Installer;->copySystemProfile(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Z
HSPLcom/android/server/pm/Installer;->createAppData(Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;I)J
PLcom/android/server/pm/Installer;->createProfileSnapshot(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
PLcom/android/server/pm/Installer;->createUserData(Ljava/lang/String;III)V
+PLcom/android/server/pm/Installer;->destroyAppData(Ljava/lang/String;Ljava/lang/String;IIJ)V
PLcom/android/server/pm/Installer;->destroyProfileSnapshot(Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/pm/Installer;->dexopt(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/pm/Installer;->fixupAppData(Ljava/lang/String;I)V
-PLcom/android/server/pm/Installer;->getAppSize(Ljava/lang/String;[Ljava/lang/String;III[J[Ljava/lang/String;Landroid/content/pm/PackageStats;)V
+HSPLcom/android/server/pm/Installer;->fixupAppData(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
+PLcom/android/server/pm/Installer;->getExternalSize(Ljava/lang/String;II[I)[J
PLcom/android/server/pm/Installer;->getUserSize(Ljava/lang/String;II[ILandroid/content/pm/PackageStats;)V
-PLcom/android/server/pm/Installer;->installApkVerity(Ljava/lang/String;Ljava/io/FileDescriptor;I)V
+PLcom/android/server/pm/Installer;->hashSecondaryDexFile(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;I)[B
HSPLcom/android/server/pm/Installer;->invalidateMounts()V
PLcom/android/server/pm/Installer;->isQuotaSupported(Ljava/lang/String;)Z
PLcom/android/server/pm/Installer;->linkNativeLibraryDirectory(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
PLcom/android/server/pm/Installer;->markBootComplete(Ljava/lang/String;)V
+PLcom/android/server/pm/Installer;->mergeProfiles(ILjava/lang/String;Ljava/lang/String;)Z
PLcom/android/server/pm/Installer;->migrateLegacyObbData()Z
+PLcom/android/server/pm/Installer;->moveAb(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
HSPLcom/android/server/pm/Installer;->onStart()V
PLcom/android/server/pm/Installer;->prepareAppProfile(Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/pm/Installer;->reconcileSecondaryDexFile(Ljava/lang/String;Ljava/lang/String;I[Ljava/lang/String;Ljava/lang/String;I)Z
PLcom/android/server/pm/Installer;->rmPackageDir(Ljava/lang/String;)V
PLcom/android/server/pm/Installer;->rmdex(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/pm/Installer;->setWarnIfHeld(Ljava/lang/Object;)V
+HSPLcom/android/server/pm/Installer;->setAppQuota(Ljava/lang/String;IIJ)V
+HSPLcom/android/server/pm/Installer;->setWarnIfHeld(Ljava/lang/Object;)V
HSPLcom/android/server/pm/InstantAppRegistry$CookiePersistence;-><init>(Lcom/android/server/pm/InstantAppRegistry;Landroid/os/Looper;)V
HSPLcom/android/server/pm/InstantAppRegistry;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-PLcom/android/server/pm/InstantAppRegistry;->deleteInstantApplicationMetadataLPw(Ljava/lang/String;I)V
-PLcom/android/server/pm/InstantAppRegistry;->getInstalledInstantApplicationsLPr(I)Ljava/util/List;
+HPLcom/android/server/pm/InstantAppRegistry;->getInstalledInstantApplicationsLPr(I)Ljava/util/List;
PLcom/android/server/pm/InstantAppRegistry;->getInstantApplicationDir(Ljava/lang/String;I)Ljava/io/File;
PLcom/android/server/pm/InstantAppRegistry;->getInstantApplicationsDir(I)Ljava/io/File;
PLcom/android/server/pm/InstantAppRegistry;->getUninstalledInstantAppStatesLPr(I)Ljava/util/List;
PLcom/android/server/pm/InstantAppRegistry;->getUninstalledInstantApplicationsLPr(I)Ljava/util/List;
-PLcom/android/server/pm/InstantAppRegistry;->hasInstantAppMetadataLPr(Ljava/lang/String;I)Z
-PLcom/android/server/pm/InstantAppRegistry;->hasInstantApplicationMetadataLPr(Ljava/lang/String;I)Z
-PLcom/android/server/pm/InstantAppRegistry;->hasUninstalledInstantAppStateLPr(Ljava/lang/String;I)Z
PLcom/android/server/pm/InstantAppRegistry;->isInstantAccessGranted(III)Z
-PLcom/android/server/pm/InstantAppRegistry;->onPackageInstalledLPw(Landroid/content/pm/PackageParser$Package;[I)V
+HPLcom/android/server/pm/InstantAppRegistry;->onPackageInstalledLPw(Landroid/content/pm/parsing/AndroidPackage;[I)V
PLcom/android/server/pm/InstantAppRegistry;->parseMetadataFile(Ljava/io/File;)Lcom/android/server/pm/InstantAppRegistry$UninstalledInstantAppState;
PLcom/android/server/pm/InstantAppRegistry;->peekInstantCookieFile(Ljava/lang/String;I)Ljava/io/File;
PLcom/android/server/pm/InstantAppRegistry;->peekOrParseUninstalledInstantAppInfo(Ljava/lang/String;I)Landroid/content/pm/InstantAppInfo;
-PLcom/android/server/pm/InstantAppRegistry;->propagateInstantAppPermissionsIfNeeded(Landroid/content/pm/PackageParser$Package;I)V
+PLcom/android/server/pm/InstantAppRegistry;->propagateInstantAppPermissionsIfNeeded(Landroid/content/pm/parsing/AndroidPackage;I)V
PLcom/android/server/pm/InstantAppRegistry;->pruneInstantApps()V
PLcom/android/server/pm/InstantAppRegistry;->pruneInstantApps(JJJ)Z
PLcom/android/server/pm/InstantAppRegistry;->removeUninstalledInstantAppStateLPw(Ljava/util/function/Predicate;I)V
PLcom/android/server/pm/InstantAppResolver;-><clinit>()V
+PLcom/android/server/pm/InstantAppResolver;->computeResolveFilters(Landroid/content/Intent;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Landroid/content/pm/InstantAppResolveInfo;)Ljava/util/List;
+PLcom/android/server/pm/InstantAppResolver;->createFailureIntent(Landroid/content/Intent;Ljava/lang/String;)Landroid/content/Intent;
PLcom/android/server/pm/InstantAppResolver;->doInstantAppResolutionPhaseOne(Lcom/android/server/pm/InstantAppResolverConnection;Landroid/content/pm/InstantAppRequest;)Landroid/content/pm/AuxiliaryResolveInfo;
PLcom/android/server/pm/InstantAppResolver;->filterInstantAppIntent(Ljava/util/List;Landroid/content/Intent;Ljava/lang/String;ILjava/lang/String;Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;Ljava/lang/String;)Landroid/content/pm/AuxiliaryResolveInfo;
+PLcom/android/server/pm/InstantAppResolver;->getLogger()Lcom/android/internal/logging/MetricsLogger;
+PLcom/android/server/pm/InstantAppResolver;->logMetrics(IJLjava/lang/String;I)V
PLcom/android/server/pm/InstantAppResolver;->sanitizeIntent(Landroid/content/Intent;)Landroid/content/Intent;
-PLcom/android/server/pm/InstantAppResolverConnection$GetInstantAppResolveInfoCaller$1;-><init>(Lcom/android/server/pm/InstantAppResolverConnection$GetInstantAppResolveInfoCaller;)V
+PLcom/android/server/pm/InstantAppResolverConnection$ConnectionException;-><init>(I)V
+HSPLcom/android/server/pm/InstantAppResolverConnection$GetInstantAppResolveInfoCaller$1;-><init>(Lcom/android/server/pm/InstantAppResolverConnection$GetInstantAppResolveInfoCaller;)V
PLcom/android/server/pm/InstantAppResolverConnection$GetInstantAppResolveInfoCaller$1;->sendResult(Landroid/os/Bundle;)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$1;)V
+HSPLcom/android/server/pm/InstantAppResolverConnection$GetInstantAppResolveInfoCaller;-><init>()V
+HSPLcom/android/server/pm/InstantAppResolverConnection$MyServiceConnection;-><init>(Lcom/android/server/pm/InstantAppResolverConnection;)V
+HSPLcom/android/server/pm/InstantAppResolverConnection$MyServiceConnection;-><init>(Lcom/android/server/pm/InstantAppResolverConnection;Lcom/android/server/pm/InstantAppResolverConnection$1;)V
PLcom/android/server/pm/InstantAppResolverConnection$MyServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)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;->access$600()J
+PLcom/android/server/pm/InstantAppResolverConnection$MyServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
+HSPLcom/android/server/pm/InstantAppResolverConnection;-><clinit>()V
+HSPLcom/android/server/pm/InstantAppResolverConnection;-><init>(Landroid/content/Context;Landroid/content/ComponentName;Ljava/lang/String;)V
+HSPLcom/android/server/pm/InstantAppResolverConnection;->access$600()J
PLcom/android/server/pm/InstantAppResolverConnection;->bind(Ljava/lang/String;)Landroid/app/IInstantAppResolver;
+PLcom/android/server/pm/InstantAppResolverConnection;->binderDied()V
PLcom/android/server/pm/InstantAppResolverConnection;->getInstantAppResolveInfoList(Landroid/content/Intent;[IILjava/lang/String;)Ljava/util/List;
PLcom/android/server/pm/InstantAppResolverConnection;->getRemoteInstanceLazy(Ljava/lang/String;)Landroid/app/IInstantAppResolver;
+PLcom/android/server/pm/InstantAppResolverConnection;->handleBinderDiedLocked()V
PLcom/android/server/pm/InstantAppResolverConnection;->lambda$optimisticBind$0$InstantAppResolverConnection()V
PLcom/android/server/pm/InstantAppResolverConnection;->optimisticBind()V
PLcom/android/server/pm/InstantAppResolverConnection;->waitForBindLocked(Ljava/lang/String;)V
HSPLcom/android/server/pm/InstructionSets;-><clinit>()V
-PLcom/android/server/pm/InstructionSets;->getAllDexCodeInstructionSets()[Ljava/lang/String;
-PLcom/android/server/pm/InstructionSets;->getAppDexInstructionSets(Landroid/content/pm/ApplicationInfo;)[Ljava/lang/String;
-PLcom/android/server/pm/InstructionSets;->getDexCodeInstructionSet(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/InstructionSets;->getDexCodeInstructionSets([Ljava/lang/String;)[Ljava/lang/String;
+HSPLcom/android/server/pm/InstructionSets;->getAllDexCodeInstructionSets()[Ljava/lang/String;
+HPLcom/android/server/pm/InstructionSets;->getAppDexInstructionSets(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
+HSPLcom/android/server/pm/InstructionSets;->getDexCodeInstructionSet(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/pm/InstructionSets;->getDexCodeInstructionSets([Ljava/lang/String;)[Ljava/lang/String;
HSPLcom/android/server/pm/InstructionSets;->getPreferredInstructionSet()Ljava/lang/String;
HSPLcom/android/server/pm/InstructionSets;->getPrimaryInstructionSet(Lcom/android/server/pm/PackageAbiHelper$Abis;)Ljava/lang/String;
PLcom/android/server/pm/IntentFilterVerificationResponse;-><init>(IILjava/util/List;)V
PLcom/android/server/pm/IntentFilterVerificationState;-><clinit>()V
PLcom/android/server/pm/IntentFilterVerificationState;-><init>(IILjava/lang/String;)V
-PLcom/android/server/pm/IntentFilterVerificationState;->addFilter(Landroid/content/pm/PackageParser$ActivityIntentInfo;)V
+HPLcom/android/server/pm/IntentFilterVerificationState;->addFilter(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)V
PLcom/android/server/pm/IntentFilterVerificationState;->getFilters()Ljava/util/ArrayList;
PLcom/android/server/pm/IntentFilterVerificationState;->getHostsString()Ljava/lang/String;
PLcom/android/server/pm/IntentFilterVerificationState;->getPackageName()Ljava/lang/String;
@@ -11696,21 +14060,33 @@ PLcom/android/server/pm/IntentFilterVerificationState;->isVerified()Z
PLcom/android/server/pm/IntentFilterVerificationState;->setPendingState()V
PLcom/android/server/pm/IntentFilterVerificationState;->setState(I)V
PLcom/android/server/pm/IntentFilterVerificationState;->setVerifierResponse(II)Z
+PLcom/android/server/pm/KeySetHandle;-><init>(J)V
HSPLcom/android/server/pm/KeySetHandle;-><init>(JI)V
+HSPLcom/android/server/pm/KeySetHandle;->decrRefCountLPw()I
+PLcom/android/server/pm/KeySetHandle;->getId()J
HSPLcom/android/server/pm/KeySetHandle;->getRefCountLPr()I
+PLcom/android/server/pm/KeySetHandle;->incrRefCountLPw()V
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$1;)V
+PLcom/android/server/pm/KeySetManagerService$PublicKeyHandle;-><init>(Lcom/android/server/pm/KeySetManagerService;JLjava/security/PublicKey;)V
+HSPLcom/android/server/pm/KeySetManagerService$PublicKeyHandle;->decrRefCountLPw()J
HSPLcom/android/server/pm/KeySetManagerService$PublicKeyHandle;->getKey()Ljava/security/PublicKey;
HSPLcom/android/server/pm/KeySetManagerService$PublicKeyHandle;->incrRefCountLPw()V
HSPLcom/android/server/pm/KeySetManagerService;-><init>(Landroid/util/ArrayMap;)V
+HSPLcom/android/server/pm/KeySetManagerService;->addDefinedKeySetsToPackageLPw(Lcom/android/server/pm/PackageSetting;Ljava/util/Map;)V
PLcom/android/server/pm/KeySetManagerService;->addKeySetLPw(Landroid/util/ArraySet;)Lcom/android/server/pm/KeySetHandle;
PLcom/android/server/pm/KeySetManagerService;->addPublicKeyLPw(Ljava/security/PublicKey;)J
HSPLcom/android/server/pm/KeySetManagerService;->addRefCountsFromSavedPackagesLPw(Landroid/util/ArrayMap;)V
-HSPLcom/android/server/pm/KeySetManagerService;->addScannedPackageLPw(Landroid/content/pm/PackageParser$Package;)V
+HSPLcom/android/server/pm/KeySetManagerService;->addScannedPackageLPw(Landroid/content/pm/parsing/AndroidPackage;)V
HSPLcom/android/server/pm/KeySetManagerService;->addSigningKeySetToPackageLPw(Lcom/android/server/pm/PackageSetting;Landroid/util/ArraySet;)V
-HSPLcom/android/server/pm/KeySetManagerService;->assertScannedPackageValid(Landroid/content/pm/PackageParser$Package;)V
-PLcom/android/server/pm/KeySetManagerService;->encodePublicKey(Ljava/security/PublicKey;)Ljava/lang/String;
+HSPLcom/android/server/pm/KeySetManagerService;->assertScannedPackageValid(Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/KeySetManagerService;->decrementKeySetLPw(J)V
+HSPLcom/android/server/pm/KeySetManagerService;->decrementPublicKeyLPw(J)V
+PLcom/android/server/pm/KeySetManagerService;->dumpLPr(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/pm/DumpState;)V
+HSPLcom/android/server/pm/KeySetManagerService;->encodePublicKey(Ljava/security/PublicKey;)Ljava/lang/String;
+PLcom/android/server/pm/KeySetManagerService;->getFreeKeySetIDLPw()J
+PLcom/android/server/pm/KeySetManagerService;->getFreePublicKeyIdLPw()J
PLcom/android/server/pm/KeySetManagerService;->getIdForPublicKeyLPr(Ljava/security/PublicKey;)J
PLcom/android/server/pm/KeySetManagerService;->getIdFromKeyIdsLPr(Ljava/util/Set;)J
HSPLcom/android/server/pm/KeySetManagerService;->getPublicKeysFromKeySetLPr(J)Landroid/util/ArraySet;
@@ -11719,22 +14095,28 @@ HSPLcom/android/server/pm/KeySetManagerService;->readKeySetsLPw(Lorg/xmlpull/v1/
HSPLcom/android/server/pm/KeySetManagerService;->readKeysLPw(Lorg/xmlpull/v1/XmlPullParser;)V
HSPLcom/android/server/pm/KeySetManagerService;->readPublicKeyLPw(Lorg/xmlpull/v1/XmlPullParser;)V
HSPLcom/android/server/pm/KeySetManagerService;->shouldCheckUpgradeKeySetLocked(Lcom/android/server/pm/PackageSettingBase;I)Z
-PLcom/android/server/pm/KeySetManagerService;->writeKeySetManagerServiceLPr(Lorg/xmlpull/v1/XmlSerializer;)V
-HPLcom/android/server/pm/KeySetManagerService;->writeKeySetsLPr(Lorg/xmlpull/v1/XmlSerializer;)V
-HPLcom/android/server/pm/KeySetManagerService;->writePublicKeysLPr(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/pm/KeySetManagerService;->writeKeySetManagerServiceLPr(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/pm/KeySetManagerService;->writeKeySetsLPr(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/pm/KeySetManagerService;->writePublicKeysLPr(Lorg/xmlpull/v1/XmlSerializer;)V
PLcom/android/server/pm/LauncherAppsService$BroadcastCookie;-><init>(Landroid/os/UserHandle;Ljava/lang/String;II)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$1;)V
+HSPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)V
+HSPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Lcom/android/server/pm/LauncherAppsService$1;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->lambda$onShortcutChanged$0$LauncherAppsService$LauncherAppsImpl$MyPackageMonitor(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;->onPackageModified(Ljava/lang/String;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$MyPackageMonitor;->onPackagesUnsuspended([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
+HSPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageCallbackList;-><init>(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)V
PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageCallbackList;->onCallbackDied(Landroid/os/IInterface;Ljava/lang/Object;)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;-><init>(Landroid/content/Context;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->access$100(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl$PackageCallbackList;
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->access$200(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;Landroid/os/UserHandle;Landroid/os/UserHandle;Ljava/lang/String;)Z
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->access$300(Lcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;)Landroid/content/pm/ShortcutServiceInternal;
PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->addOnAppsChangedListener(Ljava/lang/String;Landroid/content/pm/IOnAppsChangedListener;)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->canAccessProfile(ILjava/lang/String;)Z
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->canAccessProfile(ILjava/lang/String;)Z
PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->checkCallbackCount()V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->ensureShortcutPermission(Ljava/lang/String;)V
PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getAllSessions(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getAppUsageLimit(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/LauncherApps$AppUsageLimit;
PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getApplicationInfo(Ljava/lang/String;Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo;
@@ -11744,78 +14126,128 @@ HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getLauncherActiv
PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getPackageInstallerService()Lcom/android/server/pm/PackageInstallerService;
PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcutConfigActivities(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcutIconFd(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcuts(Ljava/lang/String;JLjava/lang/String;Ljava/util/List;Landroid/content/ComponentName;ILandroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->hasDefaultEnableLauncherActivity(Ljava/lang/String;)Z
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->getShortcuts(Ljava/lang/String;JLjava/lang/String;Ljava/util/List;Landroid/content/ComponentName;ILandroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->hasDefaultEnableLauncherActivity(Ljava/lang/String;)Z
PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->hasShortcutHostPermission(Ljava/lang/String;)Z
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectBinderCallingUid()I
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectBinderCallingPid()I
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->injectBinderCallingUid()I
+HPLcom/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;->isActivityEnabled(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Z
HPLcom/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;->isPackageEnabled(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Z
HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->lambda$registerPackageInstallerCallback$0$LauncherAppsService$LauncherAppsImpl(Landroid/os/UserHandle;I)Z
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->queryActivitiesForUser(Ljava/lang/String;Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->postToPackageMonitorHandler(Ljava/lang/Runnable;)V
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->queryActivitiesForUser(Ljava/lang/String;Landroid/content/Intent;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->registerPackageInstallerCallback(Ljava/lang/String;Landroid/content/pm/IPackageInstallerCallback;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->requestsPermissions(Landroid/content/pm/parsing/AndroidPackage;)Z
PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->resolveActivity(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)Landroid/content/pm/ActivityInfo;
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->shouldHideFromSuggestions(Ljava/lang/String;Landroid/os/UserHandle;)Z
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->shouldShowSyntheticActivity(Landroid/os/UserHandle;Landroid/content/pm/ApplicationInfo;)Z
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->shouldHideFromSuggestions(Ljava/lang/String;Landroid/os/UserHandle;)Z
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->shouldShowSyntheticActivity(Landroid/os/UserHandle;Landroid/content/pm/ApplicationInfo;)Z
PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V
-PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->verifyCallingPackage(Ljava/lang/String;)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;Landroid/content/pm/IPackageManager;)V
-PLcom/android/server/pm/ModuleInfoProvider;->getInstalledModules(I)Ljava/util/List;
-PLcom/android/server/pm/ModuleInfoProvider;->loadModuleMetadata(Landroid/content/res/XmlResourceParser;Landroid/content/res/Resources;)V
-PLcom/android/server/pm/ModuleInfoProvider;->systemReady()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
-HSPLcom/android/server/pm/PackageAbiHelper$Abis;-><init>(Landroid/content/pm/PackageParser$Package;)V
+PLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->startWatchingPackageBroadcasts()V
+HPLcom/android/server/pm/LauncherAppsService$LauncherAppsImpl;->verifyCallingPackage(Ljava/lang/String;)V
+HSPLcom/android/server/pm/LauncherAppsService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/pm/LauncherAppsService;->onStart()V
+HSPLcom/android/server/pm/ModuleInfoProvider;-><init>(Landroid/content/Context;Landroid/content/pm/IPackageManager;)V
+HPLcom/android/server/pm/ModuleInfoProvider;->getInstalledModules(I)Ljava/util/List;
+PLcom/android/server/pm/ModuleInfoProvider;->getPackageName()Ljava/lang/String;
+HSPLcom/android/server/pm/ModuleInfoProvider;->loadModuleMetadata(Landroid/content/res/XmlResourceParser;Landroid/content/res/Resources;)V
+HSPLcom/android/server/pm/ModuleInfoProvider;->systemReady()V
+PLcom/android/server/pm/OtaDexoptService$1;-><init>(Lcom/android/server/pm/OtaDexoptService;Landroid/content/Context;ZLjava/util/List;)V
+HPLcom/android/server/pm/OtaDexoptService$1;->dexopt(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/pm/OtaDexoptService$1;->encodeParameter(Ljava/lang/StringBuilder;Ljava/lang/Object;)V
+PLcom/android/server/pm/OtaDexoptService$OTADexoptPackageDexOptimizer;-><init>(Lcom/android/server/pm/Installer;Ljava/lang/Object;Landroid/content/Context;)V
+HSPLcom/android/server/pm/OtaDexoptService;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;)V
+PLcom/android/server/pm/OtaDexoptService;->cleanup()V
+HPLcom/android/server/pm/OtaDexoptService;->generatePackageDexopts(Landroid/content/pm/parsing/AndroidPackage;I)Ljava/util/List;
+HPLcom/android/server/pm/OtaDexoptService;->getAvailableSpace()J
+HPLcom/android/server/pm/OtaDexoptService;->getMainLowSpaceThreshold()J
+HPLcom/android/server/pm/OtaDexoptService;->getProgress()F
+PLcom/android/server/pm/OtaDexoptService;->inMegabytes(J)I
+HPLcom/android/server/pm/OtaDexoptService;->isDone()Z
+PLcom/android/server/pm/OtaDexoptService;->lambda$prepare$0(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;)I
+HSPLcom/android/server/pm/OtaDexoptService;->main(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/OtaDexoptService;
+HSPLcom/android/server/pm/OtaDexoptService;->moveAbArtifacts(Lcom/android/server/pm/Installer;)V
+HPLcom/android/server/pm/OtaDexoptService;->nextDexoptCommand()Ljava/lang/String;
+HPLcom/android/server/pm/OtaDexoptService;->onShellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
+PLcom/android/server/pm/OtaDexoptService;->performMetricsLogging()V
+HPLcom/android/server/pm/OtaDexoptService;->prepare()V
+PLcom/android/server/pm/OtaDexoptService;->prepareMetricsLogging(IIJJ)V
+PLcom/android/server/pm/OtaDexoptShellCommand;-><init>(Lcom/android/server/pm/OtaDexoptService;)V
+HPLcom/android/server/pm/OtaDexoptShellCommand;->onCommand(Ljava/lang/String;)I
+PLcom/android/server/pm/OtaDexoptShellCommand;->runOtaDone()I
+PLcom/android/server/pm/OtaDexoptShellCommand;->runOtaNext()I
+PLcom/android/server/pm/OtaDexoptShellCommand;->runOtaPrepare()I
+PLcom/android/server/pm/OtaDexoptShellCommand;->runOtaProgress()I
+HSPLcom/android/server/pm/PackageAbiHelper$Abis;-><init>(Landroid/content/pm/parsing/AndroidPackage;)V
HSPLcom/android/server/pm/PackageAbiHelper$Abis;-><init>(Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/pm/PackageAbiHelper$Abis;->applyTo(Landroid/content/pm/PackageParser$Package;)V
+HSPLcom/android/server/pm/PackageAbiHelper$Abis;->applyTo(Landroid/content/pm/parsing/ParsedPackage;)V
+HSPLcom/android/server/pm/PackageAbiHelper$Abis;->applyTo(Lcom/android/server/pm/PackageSetting;)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(Landroid/content/pm/PackageParser$Package;)V
+HSPLcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;->applyTo(Landroid/content/pm/parsing/ParsedPackage;)V
HSPLcom/android/server/pm/PackageAbiHelperImpl;-><init>()V
HSPLcom/android/server/pm/PackageAbiHelperImpl;->calculateBundledApkRoot(Ljava/lang/String;)Ljava/lang/String;
HSPLcom/android/server/pm/PackageAbiHelperImpl;->deriveCodePathName(Ljava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/pm/PackageAbiHelperImpl;->derivePackageAbi(Landroid/content/pm/PackageParser$Package;Ljava/lang/String;Z)Landroid/util/Pair;
-HSPLcom/android/server/pm/PackageAbiHelperImpl;->getAdjustedAbiForSharedUser(Ljava/util/Set;Landroid/content/pm/PackageParser$Package;)Ljava/lang/String;
-HSPLcom/android/server/pm/PackageAbiHelperImpl;->getNativeLibraryPaths(Landroid/content/pm/PackageParser$Package;Ljava/io/File;)Lcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->derivePackageAbi(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;Z)Landroid/util/Pair;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->getAdjustedAbiForSharedUser(Ljava/util/Set;Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->getBundledAppAbi(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/pm/PackageAbiHelper$Abis;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->getBundledAppAbis(Landroid/content/pm/parsing/AndroidPackage;)Lcom/android/server/pm/PackageAbiHelper$Abis;
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->getNativeLibraryPaths(Landroid/content/pm/parsing/AndroidPackage;Ljava/io/File;)Lcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;
HSPLcom/android/server/pm/PackageAbiHelperImpl;->getNativeLibraryPaths(Lcom/android/server/pm/PackageAbiHelper$Abis;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;ZZ)Lcom/android/server/pm/PackageAbiHelper$NativeLibraryPaths;
-PLcom/android/server/pm/PackageAbiHelperImpl;->maybeThrowExceptionForMultiArchCopy(Ljava/lang/String;I)V
+HSPLcom/android/server/pm/PackageAbiHelperImpl;->maybeThrowExceptionForMultiArchCopy(Ljava/lang/String;I)V
+PLcom/android/server/pm/PackageDexOptimizer$ForcedUpdatePackageDexOptimizer;-><init>(Lcom/android/server/pm/Installer;Ljava/lang/Object;Landroid/content/Context;Ljava/lang/String;)V
+PLcom/android/server/pm/PackageDexOptimizer$ForcedUpdatePackageDexOptimizer;->adjustDexoptFlags(I)I
+PLcom/android/server/pm/PackageDexOptimizer$ForcedUpdatePackageDexOptimizer;->adjustDexoptNeeded(I)I
HSPLcom/android/server/pm/PackageDexOptimizer;-><init>(Lcom/android/server/pm/Installer;Ljava/lang/Object;Landroid/content/Context;Ljava/lang/String;)V
+HPLcom/android/server/pm/PackageDexOptimizer;->acquireWakeLockLI(I)J
PLcom/android/server/pm/PackageDexOptimizer;->adjustDexoptFlags(I)I
PLcom/android/server/pm/PackageDexOptimizer;->adjustDexoptNeeded(I)I
-PLcom/android/server/pm/PackageDexOptimizer;->dexOptPath(Landroid/content/pm/PackageParser$Package;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;IILcom/android/server/pm/CompilerStats$PackageStats;ZLjava/lang/String;Ljava/lang/String;I)I
+PLcom/android/server/pm/PackageDexOptimizer;->canOptimizePackage(Landroid/content/pm/parsing/AndroidPackage;)Z
+HPLcom/android/server/pm/PackageDexOptimizer;->dexOptPath(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;IILcom/android/server/pm/CompilerStats$PackageStats;ZLjava/lang/String;Ljava/lang/String;I)I
+PLcom/android/server/pm/PackageDexOptimizer;->dexOptSecondaryDexPath(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
+PLcom/android/server/pm/PackageDexOptimizer;->dexOptSecondaryDexPathLI(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->dumpDexoptState(Lcom/android/internal/util/IndentingPrintWriter;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)V
PLcom/android/server/pm/PackageDexOptimizer;->getAugmentedReasonName(IZ)Ljava/lang/String;
+HPLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(IILandroid/util/SparseArray;ZLjava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
PLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
-PLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(Landroid/content/pm/PackageParser$Package;Ljava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
-PLcom/android/server/pm/PackageDexOptimizer;->getDexoptNeeded(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)I
+HPLcom/android/server/pm/PackageDexOptimizer;->getDexFlags(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->getDexoptNeeded(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)I
PLcom/android/server/pm/PackageDexOptimizer;->getOatDir(Ljava/io/File;)Ljava/io/File;
-PLcom/android/server/pm/PackageDexOptimizer;->getPackageOatDirIfSupported(Landroid/content/pm/PackageParser$Package;)Ljava/lang/String;
+HPLcom/android/server/pm/PackageDexOptimizer;->getPackageOatDirIfSupported(Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
PLcom/android/server/pm/PackageDexOptimizer;->getRealCompilerFilter(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;Z)Ljava/lang/String;
+HPLcom/android/server/pm/PackageDexOptimizer;->getRealCompilerFilter(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;Z)Ljava/lang/String;
PLcom/android/server/pm/PackageDexOptimizer;->isAppImageEnabled()Z
-PLcom/android/server/pm/PackageDexOptimizer;->performDexOpt(Landroid/content/pm/PackageParser$Package;[Ljava/lang/String;Lcom/android/server/pm/CompilerStats$PackageStats;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
-PLcom/android/server/pm/PackageDexOptimizer;->performDexOptLI(Landroid/content/pm/PackageParser$Package;[Ljava/lang/String;Lcom/android/server/pm/CompilerStats$PackageStats;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->isProfileUpdated(Landroid/content/pm/parsing/AndroidPackage;ILjava/lang/String;Ljava/lang/String;)Z
+HPLcom/android/server/pm/PackageDexOptimizer;->performDexOpt(Landroid/content/pm/parsing/AndroidPackage;[Ljava/lang/String;Lcom/android/server/pm/CompilerStats$PackageStats;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageDexOptimizer;->performDexOptLI(Landroid/content/pm/parsing/AndroidPackage;[Ljava/lang/String;Lcom/android/server/pm/CompilerStats$PackageStats;Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Lcom/android/server/pm/dex/DexoptOptions;)I
PLcom/android/server/pm/PackageDexOptimizer;->printDexoptFlags(I)Ljava/lang/String;
PLcom/android/server/pm/PackageDexOptimizer;->releaseWakeLockLI(J)V
-PLcom/android/server/pm/PackageDexOptimizer;->systemReady()V
+HSPLcom/android/server/pm/PackageDexOptimizer;->systemReady()V
HSPLcom/android/server/pm/PackageInstallerService$1;-><init>()V
-PLcom/android/server/pm/PackageInstallerService$1;->accept(Ljava/io/File;Ljava/lang/String;)Z
+HSPLcom/android/server/pm/PackageInstallerService$1;->accept(Ljava/io/File;Ljava/lang/String;)Z
PLcom/android/server/pm/PackageInstallerService$2;-><init>(Lcom/android/server/pm/PackageInstallerService;)V
PLcom/android/server/pm/PackageInstallerService$2;->run()V
-PLcom/android/server/pm/PackageInstallerService$Callbacks;-><init>(Landroid/os/Looper;)V
+HSPLcom/android/server/pm/PackageInstallerService$Callbacks;-><init>(Landroid/os/Looper;)V
PLcom/android/server/pm/PackageInstallerService$Callbacks;->access$200(Lcom/android/server/pm/PackageInstallerService$Callbacks;II)V
+PLcom/android/server/pm/PackageInstallerService$Callbacks;->access$500(Lcom/android/server/pm/PackageInstallerService$Callbacks;II)V
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$Callbacks;->register(Landroid/content/pm/IPackageInstallerCallback;Ljava/util/function/IntPredicate;)V
+PLcom/android/server/pm/PackageInstallerService$Callbacks;->notifySessionBadgingChanged(II)V
+HSPLcom/android/server/pm/PackageInstallerService$Callbacks;->register(Landroid/content/pm/IPackageInstallerCallback;Ljava/util/function/IntPredicate;)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
+HSPLcom/android/server/pm/PackageInstallerService$InternalCallback;-><init>(Lcom/android/server/pm/PackageInstallerService;)V
+PLcom/android/server/pm/PackageInstallerService$InternalCallback;->onSessionBadgingChanged(Lcom/android/server/pm/PackageInstallerSession;)V
PLcom/android/server/pm/PackageInstallerService$InternalCallback;->onSessionFinished(Lcom/android/server/pm/PackageInstallerSession;Z)V
PLcom/android/server/pm/PackageInstallerService$InternalCallback;->onSessionSealedBlocking(Lcom/android/server/pm/PackageInstallerSession;)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/ApexManager;)V
+HSPLcom/android/server/pm/PackageInstallerService;-><init>(Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/ApexManager;)V
PLcom/android/server/pm/PackageInstallerService;->abandonSession(I)V
+PLcom/android/server/pm/PackageInstallerService;->access$400(Lcom/android/server/pm/PackageInstallerService;)Lcom/android/server/pm/PackageInstallerService$Callbacks;
+PLcom/android/server/pm/PackageInstallerService;->access$600(Lcom/android/server/pm/PackageInstallerService;)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;->buildAppIconFile(I)Ljava/io/File;
@@ -11823,26 +14255,30 @@ PLcom/android/server/pm/PackageInstallerService;->buildSessionDir(ILandroid/cont
PLcom/android/server/pm/PackageInstallerService;->buildTmpSessionDir(ILjava/lang/String;)Ljava/io/File;
PLcom/android/server/pm/PackageInstallerService;->createSession(Landroid/content/pm/PackageInstaller$SessionParams;Ljava/lang/String;I)I
PLcom/android/server/pm/PackageInstallerService;->createSessionInternal(Landroid/content/pm/PackageInstaller$SessionParams;Ljava/lang/String;I)I
+PLcom/android/server/pm/PackageInstallerService;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
PLcom/android/server/pm/PackageInstallerService;->getAllSessions(I)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/pm/PackageInstallerService;->getMySessions(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/pm/PackageInstallerService;->getSessionCount(Landroid/util/SparseArray;I)I
PLcom/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;->getTmpSessionDir(Ljava/lang/String;)Ljava/io/File;
+HSPLcom/android/server/pm/PackageInstallerService;->getTmpSessionDir(Ljava/lang/String;)Ljava/io/File;
+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;->newArraySet([Ljava/lang/Object;)Landroid/util/ArraySet;
+HSPLcom/android/server/pm/PackageInstallerService;->newArraySet([Ljava/lang/Object;)Landroid/util/ArraySet;
PLcom/android/server/pm/PackageInstallerService;->openSession(I)Landroid/content/pm/IPackageInstallerSession;
PLcom/android/server/pm/PackageInstallerService;->openSessionInternal(I)Landroid/content/pm/IPackageInstallerSession;
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;->restoreAndApplyStagedSessionIfNeeded()V
+HSPLcom/android/server/pm/PackageInstallerService;->readSessionsLocked()V
+HSPLcom/android/server/pm/PackageInstallerService;->reconcileStagesLocked(Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageInstallerService;->registerCallback(Landroid/content/pm/IPackageInstallerCallback;I)V
+HSPLcom/android/server/pm/PackageInstallerService;->registerCallback(Landroid/content/pm/IPackageInstallerCallback;Ljava/util/function/IntPredicate;)V
+HSPLcom/android/server/pm/PackageInstallerService;->restoreAndApplyStagedSessionIfNeeded()V
HPLcom/android/server/pm/PackageInstallerService;->sendOnPackageInstalled(Landroid/content/Context;Landroid/content/IntentSender;IZILjava/lang/String;ILjava/lang/String;Landroid/os/Bundle;)V
-PLcom/android/server/pm/PackageInstallerService;->systemReady()V
+HSPLcom/android/server/pm/PackageInstallerService;->systemReady()V
+PLcom/android/server/pm/PackageInstallerService;->updateSessionAppIcon(ILandroid/graphics/Bitmap;)V
+PLcom/android/server/pm/PackageInstallerService;->updateSessionAppLabel(ILjava/lang/String;)V
PLcom/android/server/pm/PackageInstallerService;->writeSessionsAsync()V
-HPLcom/android/server/pm/PackageInstallerService;->writeSessionsLocked()V
+HSPLcom/android/server/pm/PackageInstallerService;->writeSessionsLocked()V
PLcom/android/server/pm/PackageInstallerSession$1;-><init>()V
PLcom/android/server/pm/PackageInstallerSession$1;->accept(Ljava/io/File;)Z
PLcom/android/server/pm/PackageInstallerSession$2;-><init>()V
@@ -11854,14 +14290,20 @@ PLcom/android/server/pm/PackageInstallerSession$4;->onPackageInstalled(Ljava/lan
PLcom/android/server/pm/PackageInstallerSession;-><clinit>()V
HPLcom/android/server/pm/PackageInstallerSession;-><init>(Lcom/android/server/pm/PackageInstallerService$InternalCallback;Landroid/content/Context;Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSessionProvider;Landroid/os/Looper;Lcom/android/server/pm/StagingManager;IIILcom/android/server/pm/InstallSource;Landroid/content/pm/PackageInstaller$SessionParams;JLjava/io/File;Ljava/lang/String;ZZZ[IIZZZILjava/lang/String;)V
PLcom/android/server/pm/PackageInstallerSession;->abandon()V
+PLcom/android/server/pm/PackageInstallerSession;->access$000(Lcom/android/server/pm/PackageInstallerSession;Landroid/content/IntentSender;)V
+PLcom/android/server/pm/PackageInstallerSession;->access$100(Lcom/android/server/pm/PackageInstallerSession;)V
+PLcom/android/server/pm/PackageInstallerSession;->access$300(Lcom/android/server/pm/PackageInstallerSession;)Landroid/content/Context;
+PLcom/android/server/pm/PackageInstallerSession;->access$400(Lcom/android/server/pm/PackageInstallerSession;)Z
+PLcom/android/server/pm/PackageInstallerSession;->access$700(Lcom/android/server/pm/PackageInstallerSession;)V
+PLcom/android/server/pm/PackageInstallerSession;->access$800(Lcom/android/server/pm/PackageInstallerSession;ILjava/lang/String;Landroid/os/Bundle;)V
PLcom/android/server/pm/PackageInstallerSession;->assertApkConsistentLocked(Ljava/lang/String;Landroid/content/pm/PackageParser$ApkLite;)V
PLcom/android/server/pm/PackageInstallerSession;->assertCallerIsOwnerOrRootLocked()V
-PLcom/android/server/pm/PackageInstallerSession;->assertCanBeCommitted(Z)V
+HPLcom/android/server/pm/PackageInstallerSession;->assertCanBeCommitted(Z)V
PLcom/android/server/pm/PackageInstallerSession;->assertNoWriteFileTransfersOpenLocked()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;->buildAppIconFile(ILjava/io/File;)Ljava/io/File;
+HPLcom/android/server/pm/PackageInstallerSession;->buildAppIconFile(ILjava/io/File;)Ljava/io/File;
PLcom/android/server/pm/PackageInstallerSession;->close()V
PLcom/android/server/pm/PackageInstallerSession;->closeInternal(Z)V
PLcom/android/server/pm/PackageInstallerSession;->commit(Landroid/content/IntentSender;Z)V
@@ -11874,29 +14316,33 @@ PLcom/android/server/pm/PackageInstallerSession;->dump(Lcom/android/internal/uti
PLcom/android/server/pm/PackageInstallerSession;->dumpLocked(Lcom/android/internal/util/IndentingPrintWriter;)V
PLcom/android/server/pm/PackageInstallerSession;->extractNativeLibraries(Ljava/io/File;Ljava/lang/String;Z)V
PLcom/android/server/pm/PackageInstallerSession;->filterFiles(Ljava/io/File;[Ljava/lang/String;Ljava/io/FileFilter;)[Ljava/io/File;
+PLcom/android/server/pm/PackageInstallerSession;->generateInfo()Landroid/content/pm/PackageInstaller$SessionInfo;
PLcom/android/server/pm/PackageInstallerSession;->generateInfo(Z)Landroid/content/pm/PackageInstaller$SessionInfo;
+PLcom/android/server/pm/PackageInstallerSession;->getAddedFilesLocked()[Ljava/io/File;
PLcom/android/server/pm/PackageInstallerSession;->getChildSessionIds()[I
PLcom/android/server/pm/PackageInstallerSession;->getChildSessions()Ljava/util/List;
PLcom/android/server/pm/PackageInstallerSession;->getInstallerUid()I
PLcom/android/server/pm/PackageInstallerSession;->getNames()[Ljava/lang/String;
-PLcom/android/server/pm/PackageInstallerSession;->getNamesLocked()[Ljava/lang/String;
+HPLcom/android/server/pm/PackageInstallerSession;->getNamesLocked()[Ljava/lang/String;
+PLcom/android/server/pm/PackageInstallerSession;->getRemovedFilesLocked()[Ljava/io/File;
PLcom/android/server/pm/PackageInstallerSession;->getUpdatedMillis()J
PLcom/android/server/pm/PackageInstallerSession;->handleCommit()V
PLcom/android/server/pm/PackageInstallerSession;->handleSeal(Landroid/content/IntentSender;)V
-HPLcom/android/server/pm/PackageInstallerSession;->isCommitted()Z
+PLcom/android/server/pm/PackageInstallerSession;->hasParentSessionId()Z
+PLcom/android/server/pm/PackageInstallerSession;->isCommitted()Z
PLcom/android/server/pm/PackageInstallerSession;->isInstallerDeviceOwnerOrAffiliatedProfileOwnerLocked()Z
PLcom/android/server/pm/PackageInstallerSession;->isMultiPackage()Z
-HPLcom/android/server/pm/PackageInstallerSession;->isPrepared()Z
-HPLcom/android/server/pm/PackageInstallerSession;->isSealed()Z
+PLcom/android/server/pm/PackageInstallerSession;->isPrepared()Z
+PLcom/android/server/pm/PackageInstallerSession;->isSealed()Z
PLcom/android/server/pm/PackageInstallerSession;->isStaged()Z
PLcom/android/server/pm/PackageInstallerSession;->isStagedAndInTerminalState()Z
PLcom/android/server/pm/PackageInstallerSession;->isStagedSessionStateValid(ZZZ)Z
PLcom/android/server/pm/PackageInstallerSession;->lambda$filterFiles$0(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
PLcom/android/server/pm/PackageInstallerSession;->lambda$filterFiles$1(Ljava/io/FileFilter;Ljava/io/File;)Z
PLcom/android/server/pm/PackageInstallerSession;->lambda$filterFiles$2(I)[Ljava/io/File;
-PLcom/android/server/pm/PackageInstallerSession;->lambda$readFromXml$4(I)[Ljava/lang/String;
PLcom/android/server/pm/PackageInstallerSession;->makeSessionActiveLocked()Lcom/android/server/pm/PackageManagerService$ActiveInstallSession;
PLcom/android/server/pm/PackageInstallerSession;->markAsCommitted(Landroid/content/IntentSender;)Z
+PLcom/android/server/pm/PackageInstallerSession;->mayInheritNativeLibs()Z
PLcom/android/server/pm/PackageInstallerSession;->maybeRenameFile(Ljava/io/File;Ljava/io/File;)V
PLcom/android/server/pm/PackageInstallerSession;->needToAskForPermissionsLocked()Z
PLcom/android/server/pm/PackageInstallerSession;->open()V
@@ -11907,29 +14353,32 @@ PLcom/android/server/pm/PackageInstallerSession;->sealAndValidateIfNecessary()V
PLcom/android/server/pm/PackageInstallerSession;->sealAndValidateLocked(Ljava/util/List;)V
PLcom/android/server/pm/PackageInstallerSession;->setClientProgress(F)V
PLcom/android/server/pm/PackageInstallerSession;->validateApkInstallLocked(Landroid/content/pm/PackageInfo;)V
-HPLcom/android/server/pm/PackageInstallerSession;->write(Lorg/xmlpull/v1/XmlSerializer;Ljava/io/File;)V
-PLcom/android/server/pm/PackageInstallerSession;->writeGrantedRuntimePermissionsLocked(Lorg/xmlpull/v1/XmlSerializer;[Ljava/lang/String;)V
+PLcom/android/server/pm/PackageInstallerSession;->write(Lorg/xmlpull/v1/XmlSerializer;Ljava/io/File;)V
+HPLcom/android/server/pm/PackageInstallerSession;->writeGrantedRuntimePermissionsLocked(Lorg/xmlpull/v1/XmlSerializer;[Ljava/lang/String;)V
HPLcom/android/server/pm/PackageInstallerSession;->writeWhitelistedRestrictedPermissionsLocked(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/List;)V
HSPLcom/android/server/pm/PackageKeySetData;-><init>()V
-PLcom/android/server/pm/PackageKeySetData;->getAliases()Landroid/util/ArrayMap;
+HSPLcom/android/server/pm/PackageKeySetData;->getAliases()Landroid/util/ArrayMap;
HSPLcom/android/server/pm/PackageKeySetData;->getProperSigningKeySet()J
-PLcom/android/server/pm/PackageKeySetData;->isUsingUpgradeKeySets()Z
+HSPLcom/android/server/pm/PackageKeySetData;->isUsingUpgradeKeySets()Z
+HSPLcom/android/server/pm/PackageKeySetData;->removeAllDefinedKeySets()V
+HSPLcom/android/server/pm/PackageKeySetData;->removeAllUpgradeKeySets()V
+HSPLcom/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
+HSPLcom/android/server/pm/PackageList;-><init>(Ljava/util/List;Landroid/content/pm/PackageManagerInternal$PackageListObserver;)V
PLcom/android/server/pm/PackageList;->onPackageAdded(Ljava/lang/String;I)V
PLcom/android/server/pm/PackageList;->onPackageChanged(Ljava/lang/String;I)V
HSPLcom/android/server/pm/PackageManagerException;-><init>(ILjava/lang/String;)V
+PLcom/android/server/pm/PackageManagerException;-><init>(Ljava/lang/String;)V
HSPLcom/android/server/pm/PackageManagerService$1;-><init>(Lcom/android/server/pm/PackageManagerService;)V
PLcom/android/server/pm/PackageManagerService$1;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
-PLcom/android/server/pm/PackageManagerService$2;-><init>(Lcom/android/server/pm/PackageManagerService;ZLjava/lang/String;ILandroid/content/pm/IPackageDataObserver;)V
-PLcom/android/server/pm/PackageManagerService$2;->run()V
-PLcom/android/server/pm/PackageManagerService$3;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/os/Handler;Landroid/content/ContentResolver;)V
-PLcom/android/server/pm/PackageManagerService$3;->onChange(Z)V
-PLcom/android/server/pm/PackageManagerService$4;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-PLcom/android/server/pm/PackageManagerService$5;-><init>(Lcom/android/server/pm/PackageManagerService;)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
+PLcom/android/server/pm/PackageManagerService$2;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/util/List;)V
+HSPLcom/android/server/pm/PackageManagerService$4;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/os/Handler;Landroid/content/ContentResolver;)V
+HSPLcom/android/server/pm/PackageManagerService$4;->onChange(Z)V
+HSPLcom/android/server/pm/PackageManagerService$5;-><init>(Lcom/android/server/pm/PackageManagerService;)V
+HSPLcom/android/server/pm/PackageManagerService$6;-><init>(Lcom/android/server/pm/PackageManagerService;)V
PLcom/android/server/pm/PackageManagerService$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/pm/PackageManagerService$7;-><init>(Lcom/android/server/pm/PackageManagerService;)V
+PLcom/android/server/pm/PackageManagerService$7;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;-><init>(Ljava/lang/String;Ljava/io/File;Landroid/content/pm/IPackageInstallObserver2;Landroid/content/pm/PackageInstaller$SessionParams;ILcom/android/server/pm/InstallSource;Landroid/os/UserHandle;Landroid/content/pm/PackageParser$SigningDetails;)V
PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;->getInstallSource()Lcom/android/server/pm/InstallSource;
PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;->getInstallerUid()I
@@ -11940,6 +14389,8 @@ PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;->getStagedDi
PLcom/android/server/pm/PackageManagerService$ActiveInstallSession;->getUser()Landroid/os/UserHandle;
PLcom/android/server/pm/PackageManagerService$CommitRequest;-><init>(Ljava/util/Map;[I)V
PLcom/android/server/pm/PackageManagerService$CommitRequest;-><init>(Ljava/util/Map;[ILcom/android/server/pm/PackageManagerService$1;)V
+PLcom/android/server/pm/PackageManagerService$DeletePackageAction;-><init>(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageManagerService$PackageRemovedInfo;ILandroid/os/UserHandle;)V
+PLcom/android/server/pm/PackageManagerService$DeletePackageAction;-><init>(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageManagerService$PackageRemovedInfo;ILandroid/os/UserHandle;Lcom/android/server/pm/PackageManagerService$1;)V
PLcom/android/server/pm/PackageManagerService$FileInstallArgs;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$InstallParams;)V
PLcom/android/server/pm/PackageManagerService$FileInstallArgs;-><init>(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
PLcom/android/server/pm/PackageManagerService$FileInstallArgs;->cleanUp()Z
@@ -11949,16 +14400,16 @@ PLcom/android/server/pm/PackageManagerService$FileInstallArgs;->doCopyApk()I
PLcom/android/server/pm/PackageManagerService$FileInstallArgs;->doPostDeleteLI(Z)Z
PLcom/android/server/pm/PackageManagerService$FileInstallArgs;->doPostInstall(II)I
PLcom/android/server/pm/PackageManagerService$FileInstallArgs;->doPreInstall(I)I
-PLcom/android/server/pm/PackageManagerService$FileInstallArgs;->doRename(ILandroid/content/pm/PackageParser$Package;)Z
+HPLcom/android/server/pm/PackageManagerService$FileInstallArgs;->doRename(ILandroid/content/pm/parsing/ParsedPackage;)Z
PLcom/android/server/pm/PackageManagerService$FileInstallArgs;->getCodePath()Ljava/lang/String;
PLcom/android/server/pm/PackageManagerService$HandlerParams;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/os/UserHandle;)V
PLcom/android/server/pm/PackageManagerService$HandlerParams;->getUser()Landroid/os/UserHandle;
PLcom/android/server/pm/PackageManagerService$HandlerParams;->setTraceCookie(I)Lcom/android/server/pm/PackageManagerService$HandlerParams;
PLcom/android/server/pm/PackageManagerService$HandlerParams;->setTraceMethod(Ljava/lang/String;)Lcom/android/server/pm/PackageManagerService$HandlerParams;
PLcom/android/server/pm/PackageManagerService$HandlerParams;->startCopy()V
-PLcom/android/server/pm/PackageManagerService$IFVerificationParams;-><init>(Landroid/content/pm/PackageParser$Package;ZII)V
+PLcom/android/server/pm/PackageManagerService$IFVerificationParams;-><init>(Ljava/lang/String;ZLjava/util/List;ZII)V
HSPLcom/android/server/pm/PackageManagerService$Injector$LocalServicesProducer;-><init>(Ljava/lang/Class;)V
-PLcom/android/server/pm/PackageManagerService$Injector$LocalServicesProducer;->produce(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
+HSPLcom/android/server/pm/PackageManagerService$Injector$LocalServicesProducer;->produce(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
HSPLcom/android/server/pm/PackageManagerService$Injector$Singleton;-><init>(Lcom/android/server/pm/PackageManagerService$Injector$Producer;)V
HSPLcom/android/server/pm/PackageManagerService$Injector$Singleton;->get(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Ljava/lang/Object;
HSPLcom/android/server/pm/PackageManagerService$Injector$SystemServiceProducer;-><init>(Ljava/lang/Class;)V
@@ -11966,7 +14417,7 @@ HSPLcom/android/server/pm/PackageManagerService$Injector$SystemServiceProducer;-
HSPLcom/android/server/pm/PackageManagerService$Injector;-><init>(Landroid/content/Context;Ljava/lang/Object;Lcom/android/server/pm/Installer;Ljava/lang/Object;Lcom/android/server/pm/PackageAbiHelper;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;Lcom/android/server/pm/PackageManagerService$Injector$Producer;)V
HSPLcom/android/server/pm/PackageManagerService$Injector;->bootstrap(Lcom/android/server/pm/PackageManagerService;)V
HSPLcom/android/server/pm/PackageManagerService$Injector;->getAbiHelper()Lcom/android/server/pm/PackageAbiHelper;
-HPLcom/android/server/pm/PackageManagerService$Injector;->getActivityTaskManagerInternal()Lcom/android/server/wm/ActivityTaskManagerInternal;
+HSPLcom/android/server/pm/PackageManagerService$Injector;->getActivityTaskManagerInternal()Lcom/android/server/wm/ActivityTaskManagerInternal;
HSPLcom/android/server/pm/PackageManagerService$Injector;->getAppsFilter()Lcom/android/server/pm/AppsFilter;
HSPLcom/android/server/pm/PackageManagerService$Injector;->getCompatibility()Lcom/android/server/compat/PlatformCompat;
HSPLcom/android/server/pm/PackageManagerService$Injector;->getComponentResolver()Lcom/android/server/pm/ComponentResolver;
@@ -11977,10 +14428,10 @@ HSPLcom/android/server/pm/PackageManagerService$Injector;->getInstaller()Lcom/an
PLcom/android/server/pm/PackageManagerService$Injector;->getLocalDeviceIdleController()Lcom/android/server/DeviceIdleInternal;
HSPLcom/android/server/pm/PackageManagerService$Injector;->getLock()Ljava/lang/Object;
HSPLcom/android/server/pm/PackageManagerService$Injector;->getPermissionManagerServiceInternal()Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
-PLcom/android/server/pm/PackageManagerService$Injector;->getPermissionPolicyInternal()Lcom/android/server/policy/PermissionPolicyInternal;
+HSPLcom/android/server/pm/PackageManagerService$Injector;->getPermissionPolicyInternal()Lcom/android/server/policy/PermissionPolicyInternal;
HSPLcom/android/server/pm/PackageManagerService$Injector;->getSettings()Lcom/android/server/pm/Settings;
-PLcom/android/server/pm/PackageManagerService$Injector;->getStorageManager()Landroid/os/storage/StorageManager;
-PLcom/android/server/pm/PackageManagerService$Injector;->getStorageManagerInternal()Landroid/os/storage/StorageManagerInternal;
+HSPLcom/android/server/pm/PackageManagerService$Injector;->getStorageManager()Landroid/os/storage/StorageManager;
+HSPLcom/android/server/pm/PackageManagerService$Injector;->getStorageManagerInternal()Landroid/os/storage/StorageManagerInternal;
HSPLcom/android/server/pm/PackageManagerService$Injector;->getUserManagerInternal()Landroid/os/UserManagerInternal;
HSPLcom/android/server/pm/PackageManagerService$Injector;->getUserManagerService()Lcom/android/server/pm/UserManagerService;
PLcom/android/server/pm/PackageManagerService$InstallArgs;-><init>(Lcom/android/server/pm/PackageManagerService$InstallParams;)V
@@ -11996,8 +14447,9 @@ PLcom/android/server/pm/PackageManagerService$InstallParams;->handleVerification
PLcom/android/server/pm/PackageManagerService$InstallParams;->installLocationPolicy(Landroid/content/pm/PackageInfoLite;)I
PLcom/android/server/pm/PackageManagerService$InstallRequest;-><init>(Lcom/android/server/pm/PackageManagerService$InstallArgs;Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)V
PLcom/android/server/pm/PackageManagerService$InstallRequest;-><init>(Lcom/android/server/pm/PackageManagerService$InstallArgs;Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Lcom/android/server/pm/PackageManagerService$1;)V
-PLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/content/Context;Landroid/content/ComponentName;)V
-PLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->addOneIntentFilterVerification(IIILandroid/content/pm/PackageParser$ActivityIntentInfo;Ljava/lang/String;)Z
+HSPLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/content/Context;Landroid/content/ComponentName;)V
+PLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->addOneIntentFilterVerification(IIILandroid/content/IntentFilter;Ljava/lang/String;)Z
+HPLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->addOneIntentFilterVerification(IIILandroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;Ljava/lang/String;)Z
PLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->createDomainVerificationState(IIILjava/lang/String;)Lcom/android/server/pm/IntentFilterVerificationState;
PLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->receiveVerificationResponse(I)V
PLcom/android/server/pm/PackageManagerService$IntentVerifierProxy;->sendVerificationRequest(ILcom/android/server/pm/IntentFilterVerificationState;)V
@@ -12017,90 +14469,95 @@ PLcom/android/server/pm/PackageManagerService$PackageInstalledInfo;-><init>()V
PLcom/android/server/pm/PackageManagerService$PackageInstalledInfo;->setReturnCode(I)V
HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;-><init>(Lcom/android/server/pm/PackageManagerService;)V
HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$1;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->addIsolatedUid(II)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->areDefaultRuntimePermissionsGranted(I)Z
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->filterAppAccess(Landroid/content/pm/PackageParser$Package;II)Z
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->addIsolatedUid(II)V
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->areDefaultRuntimePermissionsGranted(I)Z
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->canAccessComponent(ILandroid/content/ComponentName;I)Z
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->canAccessInstantApps(II)Z
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->filterAppAccess(Landroid/content/pm/parsing/AndroidPackage;II)Z
PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->filterAppAccess(Ljava/lang/String;II)Z
HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->filterOnlySystemPackages([Ljava/lang/String;)[Ljava/lang/String;
PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->forEachInstalledPackage(Ljava/util/function/Consumer;I)V
HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->forEachPackage(Ljava/util/function/Consumer;)V
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getActivityInfo(Landroid/content/ComponentName;III)Landroid/content/pm/ActivityInfo;
HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getApplicationEnabledState(Ljava/lang/String;I)I
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getApplicationInfo(Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getApplicationInfo(Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDefaultHomeActivity(I)Landroid/content/ComponentName;
HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDisabledComponents(Ljava/lang/String;I)Landroid/util/ArraySet;
-HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDisabledSystemPackage(Ljava/lang/String;)Landroid/content/pm/PackageParser$Package;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDisabledSystemPackageName(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDisabledSystemPackage(Ljava/lang/String;)Ljava/lang/Object;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDisabledSystemPackageName(Ljava/lang/String;)Ljava/lang/String;
HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getDistractingPackageRestrictions(Ljava/lang/String;I)I
HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getEnabledComponents(Ljava/lang/String;I)Landroid/util/ArraySet;
PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getHomeActivitiesAsUser(Ljava/util/List;I)Landroid/content/ComponentName;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getInstantAppPackageName(I)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getInstalledApplications(III)Ljava/util/List;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getInstantAppPackageName(I)Ljava/lang/String;
HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getKnownPackageNames(II)[Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getOverlayPackages(I)Ljava/util/List;
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackage(I)Landroid/content/pm/PackageParser$Package;
-HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackage(Ljava/lang/String;)Landroid/content/pm/PackageParser$Package;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageInfo(Ljava/lang/String;III)Landroid/content/pm/PackageInfo;
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageList(Landroid/content/pm/PackageManagerInternal$PackageListObserver;)Lcom/android/server/pm/PackageList;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageTargetSdkVersion(Ljava/lang/String;)I
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageUid(Ljava/lang/String;II)I
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getOverlayPackages(I)Ljava/util/List;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackage(I)Landroid/content/pm/parsing/AndroidPackage;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackage(Ljava/lang/String;)Landroid/content/pm/parsing/AndroidPackage;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageInfo(Ljava/lang/String;III)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageList(Landroid/content/pm/PackageManagerInternal$PackageListObserver;)Lcom/android/server/pm/PackageList;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageSetting(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageSetting(Ljava/lang/String;)Ljava/lang/Object;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageTargetSdkVersion(Ljava/lang/String;)I
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackageUid(Ljava/lang/String;II)I
HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getPackagesForSharedUserId(Ljava/lang/String;I)[Ljava/lang/String;
HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getSetupWizardPackageName()Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getSharedUserIdForPackage(Ljava/lang/String;)Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getSigningDetails(I)Landroid/content/pm/PackageParser$SigningDetails;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getSigningDetails(Ljava/lang/String;)Landroid/content/pm/PackageParser$SigningDetails;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getTargetPackageNames(I)Ljava/util/List;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getUidTargetSdkVersion(I)I
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->grantImplicitAccess(ILandroid/content/Intent;II)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->hasInstantApplicationMetadata(Ljava/lang/String;I)Z
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->hasSignatureCapability(III)Z
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isCallerInstallerOfRecord(Landroid/content/pm/PackageParser$Package;I)Z
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isDataRestoreSafe(Landroid/content/pm/Signature;Ljava/lang/String;)Z
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isDataRestoreSafe([BLjava/lang/String;)Z
-HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isEnabledAndMatches(Landroid/content/pm/ComponentInfo;II)Z
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isInstantApp(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getSigningDetails(I)Landroid/content/pm/PackageParser$SigningDetails;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getTargetPackageNames(I)Ljava/util/List;
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->getUidTargetSdkVersion(I)I
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->grantImplicitAccess(ILandroid/content/Intent;II)V
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->hasSignatureCapability(III)Z
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isCallerInstallerOfRecord(Landroid/content/pm/parsing/AndroidPackage;I)Z
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isEnabledAndMatches(Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;II)Z
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isInstantApp(Ljava/lang/String;I)Z
PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isInstantAppInstallerComponent(Landroid/content/ComponentName;)Z
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackageDataProtected(ILjava/lang/String;)Z
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackageEphemeral(ILjava/lang/String;)Z
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackagePersistent(Ljava/lang/String;)Z
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackageSuspended(Ljava/lang/String;I)Z
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPermissionsReviewRequired(Ljava/lang/String;I)Z
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isOnlyCoreApps()Z
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackageEphemeral(ILjava/lang/String;)Z
+HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackagePersistent(Ljava/lang/String;)Z
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPackageSuspended(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPermissionsReviewRequired(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isPlatformSigned(Ljava/lang/String;)Z
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->isResolveActivityComponent(Landroid/content/pm/ComponentInfo;)Z
PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->migrateLegacyObbData()V
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->notifyPackageUse(Ljava/lang/String;I)V
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->notifyPackageUse(Ljava/lang/String;I)V
PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;III)Ljava/util/List;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->resolveContentProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
-HPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->resolveService(Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setDeviceAndProfileOwnerPackages(ILjava/lang/String;Landroid/util/SparseArray;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setEnabledOverlayPackages(ILjava/lang/String;Ljava/util/List;)Z
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setExternalSourcesPolicy(Landroid/content/pm/PackageManagerInternal$ExternalSourcesPolicy;)V
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->resolveContentProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->resolveService(Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setDeviceAndProfileOwnerPackages(ILjava/lang/String;Landroid/util/SparseArray;)V
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setEnabledOverlayPackages(ILjava/lang/String;Ljava/util/List;)Z
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setExternalSourcesPolicy(Landroid/content/pm/PackageManagerInternal$ExternalSourcesPolicy;)V
+PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->setRuntimePermissionsFingerPrint(Ljava/lang/String;I)V
HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->userNeedsBadging(I)Z
-PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->wasPackageEverLaunched(Ljava/lang/String;I)Z
HSPLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->writePermissionSettings([IZ)V
PLcom/android/server/pm/PackageManagerService$PackageManagerInternalImpl;->writeSettings(Z)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerNative;-><init>(Lcom/android/server/pm/PackageManagerService;)V
-PLcom/android/server/pm/PackageManagerService$PackageManagerNative;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$1;)V
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerNative;-><init>(Lcom/android/server/pm/PackageManagerService;)V
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerNative;-><init>(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$1;)V
PLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getInstallerForPackage(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getNamesForUids([I)[Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getLocationFlags(Ljava/lang/String;)I
+PLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getModuleMetadataPackageName()Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getNamesForUids([I)[Ljava/lang/String;
PLcom/android/server/pm/PackageManagerService$PackageManagerNative;->getVersionCodeForPackage(Ljava/lang/String;)J
PLcom/android/server/pm/PackageManagerService$PackageManagerNative;->isAudioPlaybackCaptureAllowed([Ljava/lang/String;)[Z
HSPLcom/android/server/pm/PackageManagerService$PackageParserCallback;-><init>(Lcom/android/server/pm/PackageManagerService;)V
HSPLcom/android/server/pm/PackageManagerService$PackageParserCallback;->hasFeature(Ljava/lang/String;)Z
PLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;-><init>(Lcom/android/server/pm/PackageSender;)V
+PLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;->populateUsers([ILcom/android/server/pm/PackageSetting;)V
PLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;->sendPackageRemovedBroadcastInternal(Z)V
PLcom/android/server/pm/PackageManagerService$PackageRemovedInfo;->sendPackageRemovedBroadcasts(Z)V
HSPLcom/android/server/pm/PackageManagerService$PendingPackageBroadcasts;-><init>()V
PLcom/android/server/pm/PackageManagerService$PendingPackageBroadcasts;->get(ILjava/lang/String;)Ljava/util/ArrayList;
PLcom/android/server/pm/PackageManagerService$PendingPackageBroadcasts;->put(ILjava/lang/String;Ljava/util/ArrayList;)V
-PLcom/android/server/pm/PackageManagerService$PendingPackageBroadcasts;->remove(ILjava/lang/String;)V
PLcom/android/server/pm/PackageManagerService$PostInstallData;-><init>(Lcom/android/server/pm/PackageManagerService$InstallArgs;Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Ljava/lang/Runnable;)V
-PLcom/android/server/pm/PackageManagerService$PrepareResult;-><init>(ZIILandroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageParser$Package;ZZLcom/android/server/pm/PackageManagerService$PackageFreezer;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;[Lcom/android/server/pm/PackageSetting;)V
-PLcom/android/server/pm/PackageManagerService$PrepareResult;-><init>(ZIILandroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageParser$Package;ZZLcom/android/server/pm/PackageManagerService$PackageFreezer;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;[Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageManagerService$1;)V
+PLcom/android/server/pm/PackageManagerService$PrepareResult;-><init>(ZIILandroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ParsedPackage;ZZLcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;)V
+PLcom/android/server/pm/PackageManagerService$PrepareResult;-><init>(ZIILandroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ParsedPackage;ZZLcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageManagerService$1;)V
HSPLcom/android/server/pm/PackageManagerService$ReconcileRequest;-><init>(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
HSPLcom/android/server/pm/PackageManagerService$ReconcileRequest;-><init>(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/pm/PackageManagerService$1;)V
HSPLcom/android/server/pm/PackageManagerService$ReconcileRequest;-><init>(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
-PLcom/android/server/pm/PackageManagerService$ReconcileRequest;-><init>(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Lcom/android/server/pm/PackageManagerService$1;)V
HSPLcom/android/server/pm/PackageManagerService$ReconciledPackage;-><init>(Lcom/android/server/pm/PackageManagerService$ReconcileRequest;Lcom/android/server/pm/PackageManagerService$InstallArgs;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Lcom/android/server/pm/PackageManagerService$PrepareResult;Lcom/android/server/pm/PackageManagerService$ScanResult;Lcom/android/server/pm/PackageManagerService$DeletePackageAction;Ljava/util/List;Landroid/content/pm/PackageParser$SigningDetails;ZZ)V
HSPLcom/android/server/pm/PackageManagerService$ReconciledPackage;-><init>(Lcom/android/server/pm/PackageManagerService$ReconcileRequest;Lcom/android/server/pm/PackageManagerService$InstallArgs;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Lcom/android/server/pm/PackageManagerService$PrepareResult;Lcom/android/server/pm/PackageManagerService$ScanResult;Lcom/android/server/pm/PackageManagerService$DeletePackageAction;Ljava/util/List;Landroid/content/pm/PackageParser$SigningDetails;ZZLcom/android/server/pm/PackageManagerService$1;)V
HSPLcom/android/server/pm/PackageManagerService$ReconciledPackage;->access$2000(Lcom/android/server/pm/PackageManagerService$ReconciledPackage;)Ljava/util/Map;
-HSPLcom/android/server/pm/PackageManagerService$ReconciledPackage;->getCombinedPackages()Ljava/util/Map;
-HSPLcom/android/server/pm/PackageManagerService$ScanRequest;-><init>(Landroid/content/pm/PackageParser$Package;Lcom/android/server/pm/SharedUserSetting;Landroid/content/pm/PackageParser$Package;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Ljava/lang/String;IIZLandroid/os/UserHandle;)V
+HSPLcom/android/server/pm/PackageManagerService$ReconciledPackage;->getCombinedAvailablePackages()Ljava/util/Map;
+HSPLcom/android/server/pm/PackageManagerService$ScanRequest;-><init>(Landroid/content/pm/parsing/ParsedPackage;Lcom/android/server/pm/SharedUserSetting;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Ljava/lang/String;IIZLandroid/os/UserHandle;)V
HSPLcom/android/server/pm/PackageManagerService$ScanResult;-><init>(Lcom/android/server/pm/PackageManagerService$ScanRequest;ZLcom/android/server/pm/PackageSetting;Ljava/util/List;ZLandroid/content/pm/SharedLibraryInfo;Ljava/util/List;)V
HSPLcom/android/server/pm/PackageManagerService$SystemPartition;-><init>(Ljava/io/File;IZ)V
HSPLcom/android/server/pm/PackageManagerService$SystemPartition;-><init>(Ljava/io/File;IZLcom/android/server/pm/PackageManagerService$1;)V
@@ -12110,104 +14567,126 @@ PLcom/android/server/pm/PackageManagerService$VerificationInfo;-><init>(Landroid
HSPLcom/android/server/pm/PackageManagerService;-><clinit>()V
HSPLcom/android/server/pm/PackageManagerService;-><init>(Lcom/android/server/pm/PackageManagerService$Injector;ZZ)V
PLcom/android/server/pm/PackageManagerService;->access$100(Lcom/android/server/pm/PackageManagerService;)J
+PLcom/android/server/pm/PackageManagerService;->access$1100(Lcom/android/server/pm/PackageManagerService;IIZLjava/lang/String;ZLjava/util/List;)V
PLcom/android/server/pm/PackageManagerService;->access$1200(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageManagerService$IntentFilterVerifier;
PLcom/android/server/pm/PackageManagerService;->access$200(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/PackageManagerService$Injector;
PLcom/android/server/pm/PackageManagerService;->access$2800(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageManagerService$InstallParams;)Lcom/android/server/pm/PackageManagerService$InstallArgs;
PLcom/android/server/pm/PackageManagerService;->access$2900(Lcom/android/server/pm/PackageManagerService;III)Z
+PLcom/android/server/pm/PackageManagerService;->access$300(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)Z
PLcom/android/server/pm/PackageManagerService;->access$3000(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIZ)Ljava/util/List;
PLcom/android/server/pm/PackageManagerService;->access$3108(Lcom/android/server/pm/PackageManagerService;)I
PLcom/android/server/pm/PackageManagerService;->access$3200(Lcom/android/server/pm/PackageManagerService;Landroid/content/pm/PackageInfoLite;Ljava/util/List;Lcom/android/server/pm/PackageVerificationState;)Ljava/util/List;
PLcom/android/server/pm/PackageManagerService;->access$3300(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;Ljava/util/List;)Landroid/content/ComponentName;
+PLcom/android/server/pm/PackageManagerService;->access$3600(Lcom/android/server/pm/PackageManagerService;Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
+PLcom/android/server/pm/PackageManagerService;->access$3700(Lcom/android/server/pm/PackageManagerService;)Landroid/os/incremental/IncrementalManager;
PLcom/android/server/pm/PackageManagerService;->access$400(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;ZLjava/util/ArrayList;ILjava/lang/String;)V
-PLcom/android/server/pm/PackageManagerService;->access$4500(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)Z
-PLcom/android/server/pm/PackageManagerService;->access$4600(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/InstantAppRegistry;
-PLcom/android/server/pm/PackageManagerService;->access$4800(Lcom/android/server/pm/PackageManagerService;)Landroid/util/SparseBooleanArray;
-PLcom/android/server/pm/PackageManagerService;->access$5800(Lcom/android/server/pm/PackageManagerService;I)Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService;->access$5900(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSetting;II)Z
+HSPLcom/android/server/pm/PackageManagerService;->access$4800(Lcom/android/server/pm/PackageManagerService;)Landroid/util/SparseBooleanArray;
+PLcom/android/server/pm/PackageManagerService;->access$5600(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ModuleInfoProvider;
+PLcom/android/server/pm/PackageManagerService;->access$5700(Lcom/android/server/pm/PackageManagerService;III)Ljava/util/List;
+HSPLcom/android/server/pm/PackageManagerService;->access$5800(Lcom/android/server/pm/PackageManagerService;I)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->access$5900(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSetting;II)Z
HSPLcom/android/server/pm/PackageManagerService;->access$6000(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;J)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->access$6100(Lcom/android/server/pm/PackageManagerService;)Landroid/util/ArraySet;
-PLcom/android/server/pm/PackageManagerService;->access$6200(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
+HSPLcom/android/server/pm/PackageManagerService;->access$6100(Lcom/android/server/pm/PackageManagerService;)Landroid/util/ArraySet;
+HSPLcom/android/server/pm/PackageManagerService;->access$6200(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
PLcom/android/server/pm/PackageManagerService;->access$6500(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;JIII)Landroid/content/pm/PackageInfo;
-PLcom/android/server/pm/PackageManagerService;->access$6600(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/pm/PackageManagerService;->access$6600(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
+PLcom/android/server/pm/PackageManagerService;->access$6700(Lcom/android/server/pm/PackageManagerService;Landroid/content/ComponentName;III)Landroid/content/pm/ActivityInfo;
PLcom/android/server/pm/PackageManagerService;->access$6800(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIIZZ)Ljava/util/List;
+PLcom/android/server/pm/PackageManagerService;->access$700(Lcom/android/server/pm/PackageManagerService;)Landroid/util/ArraySet;
+HSPLcom/android/server/pm/PackageManagerService;->access$7000(Lcom/android/server/pm/PackageManagerService;I)Landroid/content/ComponentName;
HSPLcom/android/server/pm/PackageManagerService;->access$7100(Lcom/android/server/pm/PackageManagerService;I)Z
-PLcom/android/server/pm/PackageManagerService;->access$7300(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;II)Z
-PLcom/android/server/pm/PackageManagerService;->access$7400(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/AppsFilter;
-PLcom/android/server/pm/PackageManagerService;->access$7600(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSetting;II)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/pm/PackageManagerService;->access$7300(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;II)Z
+HSPLcom/android/server/pm/PackageManagerService;->access$7400(Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/AppsFilter;
+HSPLcom/android/server/pm/PackageManagerService;->access$7600(Lcom/android/server/pm/PackageManagerService;Lcom/android/server/pm/PackageSetting;II)Landroid/content/pm/PackageInfo;
PLcom/android/server/pm/PackageManagerService;->access$7700(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;IIZI)Landroid/content/pm/ResolveInfo;
-PLcom/android/server/pm/PackageManagerService;->access$7800(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
-PLcom/android/server/pm/PackageManagerService;->access$7900(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
+HSPLcom/android/server/pm/PackageManagerService;->access$7800(Lcom/android/server/pm/PackageManagerService;Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/PackageManagerService;->access$7900(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
PLcom/android/server/pm/PackageManagerService;->access$8000(Lcom/android/server/pm/PackageManagerService;I)I
PLcom/android/server/pm/PackageManagerService;->access$8100(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;)I
HPLcom/android/server/pm/PackageManagerService;->access$8200(Lcom/android/server/pm/PackageManagerService;II)Z
-PLcom/android/server/pm/PackageManagerService;->access$8400(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)V
+HSPLcom/android/server/pm/PackageManagerService;->access$8400(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)V
HPLcom/android/server/pm/PackageManagerService;->access$8700(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;I)[Ljava/lang/String;
HSPLcom/android/server/pm/PackageManagerService;->addBuiltInSharedLibraryLocked(Ljava/lang/String;Ljava/lang/String;)Z
PLcom/android/server/pm/PackageManagerService;->addCrossProfileIntentFilter(Landroid/content/IntentFilter;Ljava/lang/String;III)V
-HSPLcom/android/server/pm/PackageManagerService;->addForInitLI(Landroid/content/pm/PackageParser$Package;IIJLandroid/os/UserHandle;)Landroid/content/pm/PackageParser$Package;
-HPLcom/android/server/pm/PackageManagerService;->addPackageHoldingPermissions(Ljava/util/ArrayList;Lcom/android/server/pm/PackageSetting;[Ljava/lang/String;[ZII)V
+HSPLcom/android/server/pm/PackageManagerService;->addForInitLI(Landroid/content/pm/parsing/ParsedPackage;IIJLandroid/os/UserHandle;)Landroid/content/pm/parsing/AndroidPackage;
+HSPLcom/android/server/pm/PackageManagerService;->addPackageHoldingPermissions(Ljava/util/ArrayList;Lcom/android/server/pm/PackageSetting;[Ljava/lang/String;[ZII)V
PLcom/android/server/pm/PackageManagerService;->addPreferredActivityInternal(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;ZILjava/lang/String;)V
-HSPLcom/android/server/pm/PackageManagerService;->addSharedLibraryLPr(Landroid/content/pm/PackageParser$Package;Ljava/util/Set;Landroid/content/pm/SharedLibraryInfo;Landroid/content/pm/PackageParser$Package;)V
+HSPLcom/android/server/pm/PackageManagerService;->addSharedLibraryLPr(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Set;Landroid/content/pm/SharedLibraryInfo;Landroid/content/pm/parsing/AndroidPackage;)V
HSPLcom/android/server/pm/PackageManagerService;->addSharedLibraryToPackageVersionMap(Ljava/util/Map;Landroid/content/pm/SharedLibraryInfo;)Z
-HSPLcom/android/server/pm/PackageManagerService;->adjustScanFlags(ILcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Landroid/os/UserHandle;Landroid/content/pm/PackageParser$Package;)I
+HSPLcom/android/server/pm/PackageManagerService;->adjustScanFlags(ILcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Landroid/os/UserHandle;Landroid/content/pm/parsing/AndroidPackage;)I
PLcom/android/server/pm/PackageManagerService;->apkHasCode(Ljava/lang/String;)Z
-HSPLcom/android/server/pm/PackageManagerService;->applyAdjustedAbiToSharedUser(Lcom/android/server/pm/SharedUserSetting;Landroid/content/pm/PackageParser$Package;Ljava/lang/String;)Ljava/util/List;
-HSPLcom/android/server/pm/PackageManagerService;->applyDefiningSharedLibraryUpdateLocked(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/SharedLibraryInfo;Ljava/util/function/BiConsumer;)V
-HSPLcom/android/server/pm/PackageManagerService;->applyPolicy(Landroid/content/pm/PackageParser$Package;IILandroid/content/pm/PackageParser$Package;)V
+HSPLcom/android/server/pm/PackageManagerService;->applyAdjustedAbiToSharedUser(Lcom/android/server/pm/SharedUserSetting;Landroid/content/pm/parsing/ParsedPackage;Ljava/lang/String;)Ljava/util/List;
+HSPLcom/android/server/pm/PackageManagerService;->applyDefiningSharedLibraryUpdateLocked(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/SharedLibraryInfo;Ljava/util/function/BiConsumer;)V
+HSPLcom/android/server/pm/PackageManagerService;->applyPolicy(Landroid/content/pm/parsing/ParsedPackage;IILandroid/content/pm/parsing/AndroidPackage;)V
PLcom/android/server/pm/PackageManagerService;->applyPostContentProviderResolutionFilter(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
HSPLcom/android/server/pm/PackageManagerService;->applyPostResolutionFilter(Ljava/util/List;Ljava/lang/String;ZIZILandroid/content/Intent;)Ljava/util/List;
-HPLcom/android/server/pm/PackageManagerService;->applyPostServiceResolutionFilter(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
-PLcom/android/server/pm/PackageManagerService;->assertCodePolicy(Landroid/content/pm/PackageParser$Package;)V
-HSPLcom/android/server/pm/PackageManagerService;->assertPackageIsValid(Landroid/content/pm/PackageParser$Package;II)V
+HSPLcom/android/server/pm/PackageManagerService;->applyPostServiceResolutionFilter(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
+HPLcom/android/server/pm/PackageManagerService;->areWebInstantAppsDisabled(I)Z
+PLcom/android/server/pm/PackageManagerService;->arrayToString([I)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->assertCodePolicy(Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->assertPackageIsValid(Landroid/content/pm/parsing/AndroidPackage;II)V
HSPLcom/android/server/pm/PackageManagerService;->assertPackageKnownAndInstalled(Ljava/lang/String;Ljava/lang/String;I)V
PLcom/android/server/pm/PackageManagerService;->broadcastPackageVerified(ILandroid/net/Uri;ILandroid/os/UserHandle;)V
HSPLcom/android/server/pm/PackageManagerService;->canSkipForcedApkVerification(Ljava/lang/String;)Z
-HSPLcom/android/server/pm/PackageManagerService;->canSkipForcedPackageVerification(Landroid/content/pm/PackageParser$Package;)Z
+HSPLcom/android/server/pm/PackageManagerService;->canSkipForcedPackageVerification(Landroid/content/pm/parsing/AndroidPackage;)Z
HPLcom/android/server/pm/PackageManagerService;->canSuspendPackageForUserInternal([Ljava/lang/String;I)[Z
-HPLcom/android/server/pm/PackageManagerService;->canViewInstantApps(II)Z
+HSPLcom/android/server/pm/PackageManagerService;->canViewInstantApps(II)Z
PLcom/android/server/pm/PackageManagerService;->canonicalToCurrentPackageNames([Ljava/lang/String;)[Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->checkDowngrade(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageInfoLite;)V
+HPLcom/android/server/pm/PackageManagerService;->checkDowngrade(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/PackageInfoLite;)V
PLcom/android/server/pm/PackageManagerService;->checkPackageFrozen(Ljava/lang/String;)V
-PLcom/android/server/pm/PackageManagerService;->checkPackageStartable(Ljava/lang/String;I)V
-HPLcom/android/server/pm/PackageManagerService;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
-HPLcom/android/server/pm/PackageManagerService;->checkSignatures(Ljava/lang/String;Ljava/lang/String;)I
-HPLcom/android/server/pm/PackageManagerService;->checkUidPermission(Ljava/lang/String;I)I
+HSPLcom/android/server/pm/PackageManagerService;->checkPackageStartable(Ljava/lang/String;I)V
+HSPLcom/android/server/pm/PackageManagerService;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLcom/android/server/pm/PackageManagerService;->checkSignatures(Ljava/lang/String;Ljava/lang/String;)I
+HSPLcom/android/server/pm/PackageManagerService;->checkUidPermission(Ljava/lang/String;I)I
PLcom/android/server/pm/PackageManagerService;->checkUidSignatures(II)I
-HPLcom/android/server/pm/PackageManagerService;->chooseBestActivity(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Landroid/content/pm/ResolveInfo;
-PLcom/android/server/pm/PackageManagerService;->cleanPackageDataStructuresLILPw(Landroid/content/pm/PackageParser$Package;Z)V
-PLcom/android/server/pm/PackageManagerService;->clearAppDataLIF(Landroid/content/pm/PackageParser$Package;II)V
-PLcom/android/server/pm/PackageManagerService;->clearAppDataLeafLIF(Landroid/content/pm/PackageParser$Package;II)V
-PLcom/android/server/pm/PackageManagerService;->clearAppProfilesLIF(Landroid/content/pm/PackageParser$Package;I)V
-PLcom/android/server/pm/PackageManagerService;->clearApplicationUserData(Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;I)V
-PLcom/android/server/pm/PackageManagerService;->clearApplicationUserDataLIF(Ljava/lang/String;I)Z
-PLcom/android/server/pm/PackageManagerService;->clearCrossProfileIntentFilters(ILjava/lang/String;)V
-PLcom/android/server/pm/PackageManagerService;->collectAbsoluteCodePaths()Ljava/util/List;
-HSPLcom/android/server/pm/PackageManagerService;->collectCertificatesLI(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/PackageParser$Package;ZZ)V
-HSPLcom/android/server/pm/PackageManagerService;->collectSharedLibraryInfos(Landroid/content/pm/PackageParser$Package;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)Ljava/util/ArrayList;
+HSPLcom/android/server/pm/PackageManagerService;->chooseBestActivity(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;I)Landroid/content/pm/ResolveInfo;
+HPLcom/android/server/pm/PackageManagerService;->cleanPackageDataStructuresLILPw(Landroid/content/pm/parsing/AndroidPackage;Z)V
+PLcom/android/server/pm/PackageManagerService;->clearAppDataLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
+HPLcom/android/server/pm/PackageManagerService;->clearAppDataLeafLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
+HSPLcom/android/server/pm/PackageManagerService;->clearAppProfilesLIF(Landroid/content/pm/parsing/AndroidPackage;I)V
+HPLcom/android/server/pm/PackageManagerService;->clearCrossProfileIntentFilters(ILjava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->collectAbsoluteCodePaths()Ljava/util/List;
+HSPLcom/android/server/pm/PackageManagerService;->collectCertificatesLI(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/parsing/ParsedPackage;ZZ)V
+HSPLcom/android/server/pm/PackageManagerService;->collectSharedLibraryInfos(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)Ljava/util/ArrayList;
HSPLcom/android/server/pm/PackageManagerService;->collectSharedLibraryInfos(Ljava/util/List;[J[[Ljava/lang/String;Ljava/lang/String;ZILjava/util/ArrayList;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)Ljava/util/ArrayList;
-HSPLcom/android/server/pm/PackageManagerService;->commitPackageSettings(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageParser$Package;Lcom/android/server/pm/PackageSetting;IZLcom/android/server/pm/PackageManagerService$ReconciledPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->commitPackageSettings(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageSetting;IZLcom/android/server/pm/PackageManagerService$ReconciledPackage;)V
PLcom/android/server/pm/PackageManagerService;->commitPackagesLocked(Lcom/android/server/pm/PackageManagerService$CommitRequest;)V
-HSPLcom/android/server/pm/PackageManagerService;->commitReconciledScanResultLocked(Lcom/android/server/pm/PackageManagerService$ReconciledPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->commitReconciledScanResultLocked(Lcom/android/server/pm/PackageManagerService$ReconciledPackage;)Landroid/content/pm/parsing/AndroidPackage;
HSPLcom/android/server/pm/PackageManagerService;->commitSharedLibraryInfoLocked(Landroid/content/pm/SharedLibraryInfo;)V
-HSPLcom/android/server/pm/PackageManagerService;->configurePackageComponents(Landroid/content/pm/PackageParser$Package;)V
-PLcom/android/server/pm/PackageManagerService;->createForwardingResolveInfo(Lcom/android/server/pm/CrossProfileIntentFilter;Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
-PLcom/android/server/pm/PackageManagerService;->createForwardingResolveInfoUnchecked(Landroid/content/IntentFilter;II)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/PackageManagerService;->configurePackageComponents(Landroid/content/pm/parsing/AndroidPackage;)V
+HPLcom/android/server/pm/PackageManagerService;->createForwardingResolveInfo(Lcom/android/server/pm/CrossProfileIntentFilter;Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
+HPLcom/android/server/pm/PackageManagerService;->createForwardingResolveInfoUnchecked(Landroid/content/IntentFilter;II)Landroid/content/pm/ResolveInfo;
PLcom/android/server/pm/PackageManagerService;->createInstallArgs(Lcom/android/server/pm/PackageManagerService$InstallParams;)Lcom/android/server/pm/PackageManagerService$InstallArgs;
+PLcom/android/server/pm/PackageManagerService;->createInstallArgsForExisting(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Lcom/android/server/pm/PackageManagerService$InstallArgs;
+PLcom/android/server/pm/PackageManagerService;->decompressPackage(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
+PLcom/android/server/pm/PackageManagerService;->deleteInstalledPackageLIF(Lcom/android/server/pm/PackageSetting;ZI[ILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;Z)V
HSPLcom/android/server/pm/PackageManagerService;->deleteTempPackageFiles()V
-PLcom/android/server/pm/PackageManagerService;->disableSkuSpecificApps()V
-PLcom/android/server/pm/PackageManagerService;->disableSystemPackageLPw(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageParser$Package;)Z
-PLcom/android/server/pm/PackageManagerService;->doSendBroadcast(Landroid/app/IActivityManager;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[IZ)V
-PLcom/android/server/pm/PackageManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->disableSkuSpecificApps()V
+HPLcom/android/server/pm/PackageManagerService;->doSendBroadcast(Landroid/app/IActivityManager;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[IZ)V
+HPLcom/android/server/pm/PackageManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService;->dumpCompilerStatsLPr(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService;->dumpDexoptStateLPr(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService;->dumpDomainString(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->dumpFeaturesProto(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/pm/PackageManagerService;->dumpProto(Ljava/io/FileDescriptor;)V
+PLcom/android/server/pm/PackageManagerService;->dumpSharedLibrariesProto(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/pm/PackageManagerService;->enforceCanSetPackagesSuspendedAsUser(Ljava/lang/String;IILjava/lang/String;)V
PLcom/android/server/pm/PackageManagerService;->enforceOwnerRights(Ljava/lang/String;I)V
-PLcom/android/server/pm/PackageManagerService;->enforceSystemOrRoot(Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->enforceSystemOrRoot(Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->ensureSystemPackageName(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->ensureSystemPackageNames([Ljava/lang/String;)[Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->executeDeletePackageLIF(Lcom/android/server/pm/PackageManagerService$DeletePackageAction;Ljava/lang/String;Z[IZLandroid/content/pm/parsing/ParsedPackage;)V
PLcom/android/server/pm/PackageManagerService;->executePostCommitSteps(Lcom/android/server/pm/PackageManagerService$CommitRequest;)V
-HSPLcom/android/server/pm/PackageManagerService;->executeSharedLibrariesUpdateLPr(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageParser$Package;Ljava/util/ArrayList;)V
+HSPLcom/android/server/pm/PackageManagerService;->executeSharedLibrariesUpdateLPr(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;)V
PLcom/android/server/pm/PackageManagerService;->extrasForInstallResult(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)Landroid/os/Bundle;
PLcom/android/server/pm/PackageManagerService;->filterCandidatesWithDomainPreferredActivitiesLPr(Landroid/content/Intent;ILjava/util/List;Lcom/android/server/pm/PackageManagerService$CrossProfileDomainInfo;I)Ljava/util/List;
HSPLcom/android/server/pm/PackageManagerService;->filterIfNotSystemUser(Ljava/util/List;I)Ljava/util/List;
-HPLcom/android/server/pm/PackageManagerService;->filterSharedLibPackageLPr(Lcom/android/server/pm/PackageSetting;III)Z
+HSPLcom/android/server/pm/PackageManagerService;->filterSharedLibPackageLPr(Lcom/android/server/pm/PackageSetting;III)Z
PLcom/android/server/pm/PackageManagerService;->findPersistentPreferredActivityLP(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;ZI)Landroid/content/pm/ResolveInfo;
HPLcom/android/server/pm/PackageManagerService;->findPreferredActivityNotLocked(Landroid/content/Intent;Ljava/lang/String;ILjava/util/List;IZZZI)Landroid/content/pm/ResolveInfo;
+HPLcom/android/server/pm/PackageManagerService;->findSharedLibraries(Landroid/content/pm/parsing/AndroidPackage;)Ljava/util/List;
+HPLcom/android/server/pm/PackageManagerService;->findSharedLibrariesRecursive(Landroid/content/pm/SharedLibraryInfo;Ljava/util/ArrayList;Ljava/util/Set;)V
+HPLcom/android/server/pm/PackageManagerService;->findSharedNonSystemLibraries(Landroid/content/pm/parsing/AndroidPackage;)Ljava/util/List;
PLcom/android/server/pm/PackageManagerService;->finishPackageInstall(IZ)V
HSPLcom/android/server/pm/PackageManagerService;->fixProcessName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
PLcom/android/server/pm/PackageManagerService;->fixUpInstallReason(Ljava/lang/String;II)I
@@ -12215,86 +14694,96 @@ HPLcom/android/server/pm/PackageManagerService;->forEachInstalledPackage(Ljava/u
HSPLcom/android/server/pm/PackageManagerService;->forEachPackage(Ljava/util/function/Consumer;)V
PLcom/android/server/pm/PackageManagerService;->freeStorage(Ljava/lang/String;JI)V
PLcom/android/server/pm/PackageManagerService;->freeStorageAndNotify(Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
-PLcom/android/server/pm/PackageManagerService;->freezePackage(Ljava/lang/String;ILjava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
-PLcom/android/server/pm/PackageManagerService;->freezePackage(Ljava/lang/String;Ljava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
PLcom/android/server/pm/PackageManagerService;->freezePackageForInstall(Ljava/lang/String;ILjava/lang/String;)Lcom/android/server/pm/PackageManagerService$PackageFreezer;
-PLcom/android/server/pm/PackageManagerService;->generateApplicationInfoFromSettingsLPw(Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
-HPLcom/android/server/pm/PackageManagerService;->generatePackageInfo(Lcom/android/server/pm/PackageSetting;II)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/pm/PackageManagerService;->generateApplicationInfoFromSettingsLPw(Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/pm/PackageManagerService;->generatePackageInfo(Lcom/android/server/pm/PackageSetting;II)Landroid/content/pm/PackageInfo;
PLcom/android/server/pm/PackageManagerService;->getActiveLauncherPackageName(I)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getActivityInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
-PLcom/android/server/pm/PackageManagerService;->getActivityInfoInternal(Landroid/content/ComponentName;III)Landroid/content/pm/ActivityInfo;
+HSPLcom/android/server/pm/PackageManagerService;->getActivityInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
+HSPLcom/android/server/pm/PackageManagerService;->getActivityInfoInternal(Landroid/content/ComponentName;III)Landroid/content/pm/ActivityInfo;
+PLcom/android/server/pm/PackageManagerService;->getAllIntentFilters(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
HSPLcom/android/server/pm/PackageManagerService;->getAllowedSharedLibInfos(Lcom/android/server/pm/PackageManagerService$ScanResult;Ljava/util/Map;)Ljava/util/List;
HSPLcom/android/server/pm/PackageManagerService;->getAppPredictionServicePackageName()Ljava/lang/String;
HPLcom/android/server/pm/PackageManagerService;->getApplicationEnabledSetting(Ljava/lang/String;I)I
-HPLcom/android/server/pm/PackageManagerService;->getApplicationInfo(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
-HPLcom/android/server/pm/PackageManagerService;->getApplicationInfoInternal(Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/pm/PackageManagerService;->getApplicationInfo(Ljava/lang/String;II)Landroid/content/pm/ApplicationInfo;
+HSPLcom/android/server/pm/PackageManagerService;->getApplicationInfoInternal(Ljava/lang/String;III)Landroid/content/pm/ApplicationInfo;
PLcom/android/server/pm/PackageManagerService;->getArtManager()Landroid/content/pm/dex/IArtManager;
-PLcom/android/server/pm/PackageManagerService;->getAttentionServicePackageName()Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getAttentionServicePackageName()Ljava/lang/String;
HPLcom/android/server/pm/PackageManagerService;->getBlockUninstallForUser(Ljava/lang/String;I)Z
PLcom/android/server/pm/PackageManagerService;->getChangedPackages(II)Landroid/content/pm/ChangedPackages;
-HPLcom/android/server/pm/PackageManagerService;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I
+HSPLcom/android/server/pm/PackageManagerService;->getComponentEnabledSetting(Landroid/content/ComponentName;I)I
+PLcom/android/server/pm/PackageManagerService;->getContentCaptureServicePackageName()Ljava/lang/String;
PLcom/android/server/pm/PackageManagerService;->getCrossProfileDomainPreferredLpr(Landroid/content/Intent;Ljava/lang/String;III)Lcom/android/server/pm/PackageManagerService$CrossProfileDomainInfo;
HPLcom/android/server/pm/PackageManagerService;->getDeclaredSharedLibraries(Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/pm/PackageManagerService;->getDefaultAppsBackup(I)[B
HSPLcom/android/server/pm/PackageManagerService;->getDefaultDisplayMetrics(Landroid/hardware/display/DisplayManager;Landroid/util/DisplayMetrics;)V
-PLcom/android/server/pm/PackageManagerService;->getDefaultHomeActivity(I)Landroid/content/ComponentName;
+HSPLcom/android/server/pm/PackageManagerService;->getDefaultHomeActivity(I)Landroid/content/ComponentName;
+HSPLcom/android/server/pm/PackageManagerService;->getDeviceConfiguratorPackageName()Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getDexManager()Lcom/android/server/pm/dex/DexManager;
HSPLcom/android/server/pm/PackageManagerService;->getDocumenterPackageName()Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getDomainVerificationStatusLPr(Lcom/android/server/pm/PackageSetting;I)J
PLcom/android/server/pm/PackageManagerService;->getHarmfulAppWarning(Ljava/lang/String;I)Ljava/lang/CharSequence;
PLcom/android/server/pm/PackageManagerService;->getHomeActivities(Ljava/util/List;)Landroid/content/ComponentName;
-PLcom/android/server/pm/PackageManagerService;->getHomeActivitiesAsUser(Ljava/util/List;I)Landroid/content/ComponentName;
-HPLcom/android/server/pm/PackageManagerService;->getHomeIntent()Landroid/content/Intent;
+HSPLcom/android/server/pm/PackageManagerService;->getHomeActivitiesAsUser(Ljava/util/List;I)Landroid/content/ComponentName;
+HSPLcom/android/server/pm/PackageManagerService;->getHomeIntent()Landroid/content/Intent;
HSPLcom/android/server/pm/PackageManagerService;->getIncidentReportApproverPackageName()Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService;->getInstallSourceLocked(Ljava/lang/String;I)Lcom/android/server/pm/InstallSource;
-PLcom/android/server/pm/PackageManagerService;->getInstalledApplications(II)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/pm/PackageManagerService;->getInstalledApplicationsListInternal(III)Ljava/util/List;
+HSPLcom/android/server/pm/PackageManagerService;->getInstallSourceLocked(Ljava/lang/String;I)Lcom/android/server/pm/InstallSource;
+HSPLcom/android/server/pm/PackageManagerService;->getInstalledApplications(II)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/server/pm/PackageManagerService;->getInstalledApplicationsListInternal(III)Ljava/util/List;
PLcom/android/server/pm/PackageManagerService;->getInstalledModules(I)Ljava/util/List;
-HPLcom/android/server/pm/PackageManagerService;->getInstalledPackages(II)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/pm/PackageManagerService;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getInstalledPackages(II)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/server/pm/PackageManagerService;->getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;
PLcom/android/server/pm/PackageManagerService;->getInstantAppAndroidId(Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getInstantAppInstallerLPr()Landroid/content/pm/ActivityInfo;
+HSPLcom/android/server/pm/PackageManagerService;->getInstantAppInstallerLPr()Landroid/content/pm/ActivityInfo;
HSPLcom/android/server/pm/PackageManagerService;->getInstantAppPackageName(I)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getInstantAppResolverLPr()Landroid/util/Pair;
+HSPLcom/android/server/pm/PackageManagerService;->getInstantAppResolverLPr()Landroid/util/Pair;
PLcom/android/server/pm/PackageManagerService;->getInstantAppResolverSettingsComponent()Landroid/content/ComponentName;
-PLcom/android/server/pm/PackageManagerService;->getInstantAppResolverSettingsLPr(Landroid/content/ComponentName;)Landroid/content/ComponentName;
+HSPLcom/android/server/pm/PackageManagerService;->getInstantAppResolverSettingsLPr(Landroid/content/ComponentName;)Landroid/content/ComponentName;
PLcom/android/server/pm/PackageManagerService;->getInstantApps(I)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/pm/PackageManagerService;->getIntentFilterVerificationBackup(I)[B
-PLcom/android/server/pm/PackageManagerService;->getIntentFilterVerifierComponentNameLPr()Landroid/content/ComponentName;
-HSPLcom/android/server/pm/PackageManagerService;->getLatestSharedLibraVersionLPr(Landroid/content/pm/PackageParser$Package;)Landroid/content/pm/SharedLibraryInfo;
+PLcom/android/server/pm/PackageManagerService;->getIntentFilterVerifications(Ljava/lang/String;)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/server/pm/PackageManagerService;->getIntentFilterVerifierComponentNameLPr()Landroid/content/ComponentName;
+PLcom/android/server/pm/PackageManagerService;->getLastChosenActivity(Landroid/content/Intent;Ljava/lang/String;I)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/PackageManagerService;->getLatestSharedLibraVersionLPr(Landroid/content/pm/parsing/AndroidPackage;)Landroid/content/pm/SharedLibraryInfo;
HSPLcom/android/server/pm/PackageManagerService;->getMatchingCrossProfileIntentFilters(Landroid/content/Intent;Ljava/lang/String;I)Ljava/util/List;
-PLcom/android/server/pm/PackageManagerService;->getModuleInfo(Ljava/lang/String;I)Landroid/content/pm/ModuleInfo;
-PLcom/android/server/pm/PackageManagerService;->getNameForUid(I)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getNamesForUids([I)[Ljava/lang/String;
+HPLcom/android/server/pm/PackageManagerService;->getModuleInfo(Ljava/lang/String;I)Landroid/content/pm/ModuleInfo;
+HSPLcom/android/server/pm/PackageManagerService;->getNameForUid(I)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getNamesForUids([I)[Ljava/lang/String;
PLcom/android/server/pm/PackageManagerService;->getNextCodePath(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
PLcom/android/server/pm/PackageManagerService;->getOptimizablePackages()Landroid/util/ArraySet;
-HSPLcom/android/server/pm/PackageManagerService;->getOriginalPackageLocked(Landroid/content/pm/PackageParser$Package;Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
-PLcom/android/server/pm/PackageManagerService;->getPackageGids(Ljava/lang/String;II)[I
-HPLcom/android/server/pm/PackageManagerService;->getPackageInfo(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
-HPLcom/android/server/pm/PackageManagerService;->getPackageInfoInternal(Ljava/lang/String;JIII)Landroid/content/pm/PackageInfo;
+PLcom/android/server/pm/PackageManagerService;->getOrCreateCompilerPackageStats(Landroid/content/pm/parsing/AndroidPackage;)Lcom/android/server/pm/CompilerStats$PackageStats;
+PLcom/android/server/pm/PackageManagerService;->getOrCreateCompilerPackageStats(Ljava/lang/String;)Lcom/android/server/pm/CompilerStats$PackageStats;
+HSPLcom/android/server/pm/PackageManagerService;->getOriginalPackageLocked(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
+HSPLcom/android/server/pm/PackageManagerService;->getPackageGids(Ljava/lang/String;II)[I
+HSPLcom/android/server/pm/PackageManagerService;->getPackageInfo(Ljava/lang/String;II)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/pm/PackageManagerService;->getPackageInfoInternal(Ljava/lang/String;JIII)Landroid/content/pm/PackageInfo;
HPLcom/android/server/pm/PackageManagerService;->getPackageInfoVersioned(Landroid/content/pm/VersionedPackage;II)Landroid/content/pm/PackageInfo;
-PLcom/android/server/pm/PackageManagerService;->getPackageInstaller()Landroid/content/pm/IPackageInstaller;
+HSPLcom/android/server/pm/PackageManagerService;->getPackageInstaller()Landroid/content/pm/IPackageInstaller;
+HSPLcom/android/server/pm/PackageManagerService;->getPackageSetting(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
PLcom/android/server/pm/PackageManagerService;->getPackageTargetSdkVersionLockedLPr(Ljava/lang/String;)I
-HPLcom/android/server/pm/PackageManagerService;->getPackageUid(Ljava/lang/String;II)I
+HSPLcom/android/server/pm/PackageManagerService;->getPackageUid(Ljava/lang/String;II)I
+PLcom/android/server/pm/PackageManagerService;->getPackages()Ljava/util/Collection;
HPLcom/android/server/pm/PackageManagerService;->getPackagesForSharedUserIdLocked(Ljava/lang/String;I)[Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService;->getPackagesForUid(I)[Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService;->getPackagesHoldingPermissions([Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/server/pm/PackageManagerService;->getPackagesForUid(I)[Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getPackagesHoldingPermissions([Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
HPLcom/android/server/pm/PackageManagerService;->getPackagesUsingSharedLibraryLPr(Landroid/content/pm/SharedLibraryInfo;II)Ljava/util/List;
-PLcom/android/server/pm/PackageManagerService;->getParentOrChildPackageChangedSharedUser(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageParser$Package;)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getPermissionControllerPackageName()Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getPermissionControllerPackageName()Ljava/lang/String;
PLcom/android/server/pm/PackageManagerService;->getPersistentApplications(I)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/pm/PackageManagerService;->getPersistentApplicationsInternal(I)Ljava/util/List;
+PLcom/android/server/pm/PackageManagerService;->getPrebuildProfilePath(Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
PLcom/android/server/pm/PackageManagerService;->getPreferredActivityBackup(I)[B
PLcom/android/server/pm/PackageManagerService;->getProfileParent(I)Landroid/content/pm/UserInfo;
PLcom/android/server/pm/PackageManagerService;->getProviderInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ProviderInfo;
-HSPLcom/android/server/pm/PackageManagerService;->getRealPackageName(Landroid/content/pm/PackageParser$Package;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getReceiverInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
-PLcom/android/server/pm/PackageManagerService;->getRequiredButNotReallyRequiredVerifierLPr()Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getRequiredInstallerLPr()Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getRequiredPermissionControllerLPr()Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getRequiredSharedLibraryLPr(Ljava/lang/String;I)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->getRequiredUninstallerLPr()Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService;->getServiceInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ServiceInfo;
+HSPLcom/android/server/pm/PackageManagerService;->getRealPackageName(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getReceiverInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ActivityInfo;
+HSPLcom/android/server/pm/PackageManagerService;->getRequiredButNotReallyRequiredVerifierLPr()Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getRequiredInstallerLPr()Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getRequiredPermissionControllerLPr()Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getRequiredSharedLibraryLPr(Ljava/lang/String;I)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->getRequiredUninstallerLPr()Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getRuntimePermissionsVersion(I)I
+HSPLcom/android/server/pm/PackageManagerService;->getServiceInfo(Landroid/content/ComponentName;II)Landroid/content/pm/ServiceInfo;
PLcom/android/server/pm/PackageManagerService;->getServicesSystemSharedLibraryPackageName()Ljava/lang/String;
-HSPLcom/android/server/pm/PackageManagerService;->getSettingsVersionForPackage(Landroid/content/pm/PackageParser$Package;)Lcom/android/server/pm/Settings$VersionInfo;
+HSPLcom/android/server/pm/PackageManagerService;->getSettingsVersionForPackage(Landroid/content/pm/parsing/AndroidPackage;)Lcom/android/server/pm/Settings$VersionInfo;
PLcom/android/server/pm/PackageManagerService;->getSetupWizardPackageName()Ljava/lang/String;
HSPLcom/android/server/pm/PackageManagerService;->getSetupWizardPackageNameImpl()Ljava/lang/String;
HSPLcom/android/server/pm/PackageManagerService;->getSharedLibLatestVersionSetting(Lcom/android/server/pm/PackageManagerService$ScanResult;)Lcom/android/server/pm/PackageSetting;
@@ -12304,59 +14793,67 @@ HSPLcom/android/server/pm/PackageManagerService;->getSharedLibraryInfoLPr(Ljava/
PLcom/android/server/pm/PackageManagerService;->getSharedSystemSharedLibraryPackageName()Ljava/lang/String;
HSPLcom/android/server/pm/PackageManagerService;->getStorageManagerPackageName()Ljava/lang/String;
PLcom/android/server/pm/PackageManagerService;->getSystemAvailableFeatures()Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/PackageManagerService;->getSystemSharedLibraryNames()[Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerService;->getSystemCaptionsServicePackageName()Ljava/lang/String;
+HPLcom/android/server/pm/PackageManagerService;->getSystemSharedLibraryNames()[Ljava/lang/String;
HSPLcom/android/server/pm/PackageManagerService;->getSystemTextClassifierPackageName()Ljava/lang/String;
HPLcom/android/server/pm/PackageManagerService;->getSystemTextClassifierPackages()[Ljava/lang/String;
HSPLcom/android/server/pm/PackageManagerService;->getTelephonyPackageNames()[Ljava/lang/String;
HPLcom/android/server/pm/PackageManagerService;->getUidTargetSdkVersionLockedLPr(I)I
PLcom/android/server/pm/PackageManagerService;->getUnknownSourcesSettings()I
-PLcom/android/server/pm/PackageManagerService;->getUnsuspendablePackagesForUser([Ljava/lang/String;I)[Ljava/lang/String;
+HPLcom/android/server/pm/PackageManagerService;->getUnsuspendablePackagesForUser([Ljava/lang/String;I)[Ljava/lang/String;
PLcom/android/server/pm/PackageManagerService;->getVerificationTimeout()J
HSPLcom/android/server/pm/PackageManagerService;->getWellbeingPackageName()Ljava/lang/String;
PLcom/android/server/pm/PackageManagerService;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
HPLcom/android/server/pm/PackageManagerService;->handlePackagePostInstall(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;ZZZ[Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;Landroid/content/pm/IPackageInstallObserver2;)V
+PLcom/android/server/pm/PackageManagerService;->hasDomainURLs(Landroid/content/pm/parsing/AndroidPackage;)Z
HSPLcom/android/server/pm/PackageManagerService;->hasNonNegativePriority(Ljava/util/List;)Z
HSPLcom/android/server/pm/PackageManagerService;->hasSystemFeature(Ljava/lang/String;I)Z
PLcom/android/server/pm/PackageManagerService;->hasSystemUidErrors()Z
+PLcom/android/server/pm/PackageManagerService;->hasValidDomains(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)Z
+PLcom/android/server/pm/PackageManagerService;->installExistingPackageAsUser(Ljava/lang/String;IIILjava/util/List;)I
+PLcom/android/server/pm/PackageManagerService;->installExistingPackageAsUser(Ljava/lang/String;IIILjava/util/List;Landroid/content/IntentSender;)I
PLcom/android/server/pm/PackageManagerService;->installPackagesLI(Ljava/util/List;)V
PLcom/android/server/pm/PackageManagerService;->installPackagesTracedLI(Ljava/util/List;)V
PLcom/android/server/pm/PackageManagerService;->installStage(Lcom/android/server/pm/PackageManagerService$ActiveInstallSession;)V
+PLcom/android/server/pm/PackageManagerService;->installStubPackageLI(Landroid/content/pm/parsing/AndroidPackage;II)Landroid/content/pm/parsing/AndroidPackage;
HSPLcom/android/server/pm/PackageManagerService;->installSystemStubPackages(Ljava/util/List;I)V
-PLcom/android/server/pm/PackageManagerService;->installWhitelistedSystemPackages()V
-HPLcom/android/server/pm/PackageManagerService;->isCallerSameApp(Ljava/lang/String;I)Z
-PLcom/android/server/pm/PackageManagerService;->isCompatSignatureUpdateNeeded(Landroid/content/pm/PackageParser$Package;)Z
+HSPLcom/android/server/pm/PackageManagerService;->installWhitelistedSystemPackages()V
+HSPLcom/android/server/pm/PackageManagerService;->isCallerSameApp(Ljava/lang/String;I)Z
+PLcom/android/server/pm/PackageManagerService;->isCompatSignatureUpdateNeeded(Landroid/content/pm/parsing/AndroidPackage;)Z
HSPLcom/android/server/pm/PackageManagerService;->isCompatSignatureUpdateNeeded(Lcom/android/server/pm/Settings$VersionInfo;)Z
HSPLcom/android/server/pm/PackageManagerService;->isDeviceUpgrading()Z
-HSPLcom/android/server/pm/PackageManagerService;->isExternal(Landroid/content/pm/PackageParser$Package;)Z
+HSPLcom/android/server/pm/PackageManagerService;->isExternal(Landroid/content/pm/parsing/AndroidPackage;)Z
HSPLcom/android/server/pm/PackageManagerService;->isExternal(Lcom/android/server/pm/PackageSetting;)Z
-PLcom/android/server/pm/PackageManagerService;->isFirstBoot()Z
+HSPLcom/android/server/pm/PackageManagerService;->isFirstBoot()Z
+PLcom/android/server/pm/PackageManagerService;->isHistoricalPackageUsageAvailable()Z
PLcom/android/server/pm/PackageManagerService;->isHomeIntent(Landroid/content/Intent;)Z
-PLcom/android/server/pm/PackageManagerService;->isInstantApp(Ljava/lang/String;I)Z
-HPLcom/android/server/pm/PackageManagerService;->isInstantAppInternal(Ljava/lang/String;II)Z
+HSPLcom/android/server/pm/PackageManagerService;->isInstantApp(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/PackageManagerService;->isInstantAppInternal(Ljava/lang/String;II)Z
HSPLcom/android/server/pm/PackageManagerService;->isInstantAppResolutionAllowed(Landroid/content/Intent;Ljava/util/List;IZ)Z
-PLcom/android/server/pm/PackageManagerService;->isOdmApp(Landroid/content/pm/PackageParser$Package;)Z
-PLcom/android/server/pm/PackageManagerService;->isOemApp(Landroid/content/pm/PackageParser$Package;)Z
-PLcom/android/server/pm/PackageManagerService;->isOnlyCoreApps()Z
-HPLcom/android/server/pm/PackageManagerService;->isPackageAvailable(Ljava/lang/String;I)Z
+PLcom/android/server/pm/PackageManagerService;->isOdmApp(Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/PackageManagerService;->isOemApp(Landroid/content/pm/parsing/AndroidPackage;)Z
+HSPLcom/android/server/pm/PackageManagerService;->isOnlyCoreApps()Z
+HSPLcom/android/server/pm/PackageManagerService;->isPackageAvailable(Ljava/lang/String;I)Z
HPLcom/android/server/pm/PackageManagerService;->isPackageDeviceAdmin(Ljava/lang/String;I)Z
-HSPLcom/android/server/pm/PackageManagerService;->isPackageRenamed(Landroid/content/pm/PackageParser$Package;Ljava/lang/String;)Z
+HSPLcom/android/server/pm/PackageManagerService;->isPackageRenamed(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Z
HPLcom/android/server/pm/PackageManagerService;->isPackageSuspendedForUser(Ljava/lang/String;I)Z
-PLcom/android/server/pm/PackageManagerService;->isPrivilegedApp(Landroid/content/pm/PackageParser$Package;)Z
-PLcom/android/server/pm/PackageManagerService;->isProductApp(Landroid/content/pm/PackageParser$Package;)Z
-HPLcom/android/server/pm/PackageManagerService;->isProtectedBroadcast(Ljava/lang/String;)Z
-HPLcom/android/server/pm/PackageManagerService;->isRecentsAccessingChildProfiles(II)Z
-PLcom/android/server/pm/PackageManagerService;->isRecoverSignatureUpdateNeeded(Landroid/content/pm/PackageParser$Package;)Z
+PLcom/android/server/pm/PackageManagerService;->isPrivilegedApp(Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/PackageManagerService;->isProductApp(Landroid/content/pm/parsing/AndroidPackage;)Z
+HSPLcom/android/server/pm/PackageManagerService;->isProtectedBroadcast(Ljava/lang/String;)Z
+HSPLcom/android/server/pm/PackageManagerService;->isRecentsAccessingChildProfiles(II)Z
+PLcom/android/server/pm/PackageManagerService;->isRecoverSignatureUpdateNeeded(Landroid/content/pm/parsing/AndroidPackage;)Z
HSPLcom/android/server/pm/PackageManagerService;->isRecoverSignatureUpdateNeeded(Lcom/android/server/pm/Settings$VersionInfo;)Z
-PLcom/android/server/pm/PackageManagerService;->isSafeMode()Z
+HSPLcom/android/server/pm/PackageManagerService;->isSafeMode()Z
PLcom/android/server/pm/PackageManagerService;->isStorageLow()Z
-HSPLcom/android/server/pm/PackageManagerService;->isSystemApp(Landroid/content/pm/PackageParser$Package;)Z
+HSPLcom/android/server/pm/PackageManagerService;->isSystemApp(Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/PackageManagerService;->isSystemApp(Lcom/android/server/pm/PackageSetting;)Z
PLcom/android/server/pm/PackageManagerService;->isUidPrivileged(I)Z
-PLcom/android/server/pm/PackageManagerService;->isUserEnabled(I)Z
+HPLcom/android/server/pm/PackageManagerService;->isUserEnabled(I)Z
PLcom/android/server/pm/PackageManagerService;->isUserRestricted(ILjava/lang/String;)Z
-PLcom/android/server/pm/PackageManagerService;->isVendorApp(Landroid/content/pm/PackageParser$Package;)Z
+PLcom/android/server/pm/PackageManagerService;->isVendorApp(Landroid/content/pm/parsing/AndroidPackage;)Z
PLcom/android/server/pm/PackageManagerService;->isVerificationEnabled(III)Z
PLcom/android/server/pm/PackageManagerService;->killApplication(Ljava/lang/String;IILjava/lang/String;)V
-PLcom/android/server/pm/PackageManagerService;->lambda$commitPackageSettings$15$PackageManagerService(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageParser$Package;Ljava/util/ArrayList;)V
+PLcom/android/server/pm/PackageManagerService;->lambda$commitPackageSettings$15$PackageManagerService(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;)V
HSPLcom/android/server/pm/PackageManagerService;->lambda$executeSharedLibrariesUpdateLPr$14(Landroid/content/pm/SharedLibraryInfo;Landroid/content/pm/SharedLibraryInfo;)V
PLcom/android/server/pm/PackageManagerService;->lambda$freeStorageAndNotify$10$PackageManagerService(Ljava/lang/String;JILandroid/content/pm/IPackageDataObserver;)V
HSPLcom/android/server/pm/PackageManagerService;->lambda$main$0(Ljava/lang/Object;Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/pm/ComponentResolver;
@@ -12367,57 +14864,65 @@ HSPLcom/android/server/pm/PackageManagerService;->lambda$main$4(Lcom/android/ser
HSPLcom/android/server/pm/PackageManagerService;->lambda$main$5(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageManagerService;)Lcom/android/server/compat/PlatformCompat;
HSPLcom/android/server/pm/PackageManagerService;->lambda$new$7(Lcom/android/server/pm/ApexManager$ActiveApexInfo;)Lcom/android/server/pm/PackageManagerService$SystemPartition;
HSPLcom/android/server/pm/PackageManagerService;->lambda$new$8(Lcom/android/server/pm/PackageManagerService$SystemPartition;)Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService;->lambda$new$9$PackageManagerService(Ljava/util/List;I)V
+HSPLcom/android/server/pm/PackageManagerService;->lambda$new$9$PackageManagerService(Ljava/util/List;I)V
PLcom/android/server/pm/PackageManagerService;->lambda$notifyFirstLaunch$22$PackageManagerService(Ljava/lang/String;ILjava/lang/String;)V
HPLcom/android/server/pm/PackageManagerService;->lambda$postPreferredActivityChangedBroadcast$30(I)V
-PLcom/android/server/pm/PackageManagerService;->lambda$processInstallRequestsAsync$21$PackageManagerService(ZLjava/util/List;)V
+HPLcom/android/server/pm/PackageManagerService;->lambda$processInstallRequestsAsync$21$PackageManagerService(ZLjava/util/List;)V
+HPLcom/android/server/pm/PackageManagerService;->lambda$sendMyPackageSuspendedOrUnsuspended$20$PackageManagerService(ZI[Ljava/lang/String;Ljava/lang/String;)V
HPLcom/android/server/pm/PackageManagerService;->lambda$sendPackageBroadcast$16$PackageManagerService([ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I)V
-PLcom/android/server/pm/PackageManagerService;->lambda$static$17(Landroid/content/pm/ProviderInfo;Landroid/content/pm/ProviderInfo;)I
-PLcom/android/server/pm/PackageManagerService;->lambda$systemReady$35$PackageManagerService(I)V
-PLcom/android/server/pm/PackageManagerService;->logAppProcessStartIfNeeded(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V
+HSPLcom/android/server/pm/PackageManagerService;->lambda$static$17(Landroid/content/pm/ProviderInfo;Landroid/content/pm/ProviderInfo;)I
+HSPLcom/android/server/pm/PackageManagerService;->lambda$systemReady$36$PackageManagerService(I)V
+HSPLcom/android/server/pm/PackageManagerService;->logAppProcessStartIfNeeded(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V
HSPLcom/android/server/pm/PackageManagerService;->main(Landroid/content/Context;Lcom/android/server/pm/Installer;ZZ)Lcom/android/server/pm/PackageManagerService;
PLcom/android/server/pm/PackageManagerService;->matchComponentForVerifier(Ljava/lang/String;Ljava/util/List;)Landroid/content/ComponentName;
PLcom/android/server/pm/PackageManagerService;->matchVerifiers(Landroid/content/pm/PackageInfoLite;Ljava/util/List;Lcom/android/server/pm/PackageVerificationState;)Ljava/util/List;
+PLcom/android/server/pm/PackageManagerService;->mayDeletePackageLocked(Lcom/android/server/pm/PackageManagerService$PackageRemovedInfo;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;ILandroid/os/UserHandle;)Lcom/android/server/pm/PackageManagerService$DeletePackageAction;
PLcom/android/server/pm/PackageManagerService;->maybeAddInstantAppInstaller(Ljava/util/List;Landroid/content/Intent;Ljava/lang/String;IIZ)Ljava/util/List;
-HSPLcom/android/server/pm/PackageManagerService;->maybeClearProfilesForUpgradesLI(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/PackageParser$Package;)V
-HSPLcom/android/server/pm/PackageManagerService;->maybeMigrateAppDataLIF(Landroid/content/pm/PackageParser$Package;I)Z
-PLcom/android/server/pm/PackageManagerService;->needsNetworkVerificationLPr(Landroid/content/pm/PackageParser$ActivityIntentInfo;)Z
+HSPLcom/android/server/pm/PackageManagerService;->maybeClearProfilesForUpgradesLI(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->maybeMigrateAppDataLIF(Landroid/content/pm/parsing/AndroidPackage;I)Z
+PLcom/android/server/pm/PackageManagerService;->needsNetworkVerificationLPr(Landroid/content/pm/parsing/ComponentParseUtils$ParsedActivityIntentInfo;)Z
HSPLcom/android/server/pm/PackageManagerService;->nonStaticSharedLibExistsLocked(Ljava/lang/String;)Z
HSPLcom/android/server/pm/PackageManagerService;->normalizePackageNameLPr(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->notifyDexLoad(Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
+HPLcom/android/server/pm/PackageManagerService;->notifyDexLoad(Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
PLcom/android/server/pm/PackageManagerService;->notifyInstallObserver(Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Landroid/content/pm/IPackageInstallObserver2;)V
PLcom/android/server/pm/PackageManagerService;->notifyPackageAdded(Ljava/lang/String;I)V
PLcom/android/server/pm/PackageManagerService;->notifyPackageChanged(Ljava/lang/String;I)V
-PLcom/android/server/pm/PackageManagerService;->notifyPackageUse(Ljava/lang/String;I)V
-PLcom/android/server/pm/PackageManagerService;->notifyPackageUseLocked(Ljava/lang/String;I)V
+HSPLcom/android/server/pm/PackageManagerService;->notifyPackageUse(Ljava/lang/String;I)V
+HSPLcom/android/server/pm/PackageManagerService;->notifyPackageUseLocked(Ljava/lang/String;I)V
HPLcom/android/server/pm/PackageManagerService;->notifyPackagesReplacedReceived([Ljava/lang/String;)V
PLcom/android/server/pm/PackageManagerService;->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;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/android/server/pm/PackageManagerService;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
HSPLcom/android/server/pm/PackageManagerService;->optimisticallyRegisterAppId(Lcom/android/server/pm/PackageManagerService$ScanResult;)Z
PLcom/android/server/pm/PackageManagerService;->packageIsBrowser(Ljava/lang/String;I)Z
-PLcom/android/server/pm/PackageManagerService;->performFstrimIfNeeded()V
-PLcom/android/server/pm/PackageManagerService;->prepareAppDataAfterInstallLIF(Landroid/content/pm/PackageParser$Package;)V
-HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataAndMigrateLIF(Landroid/content/pm/PackageParser$Package;IIZ)V
-PLcom/android/server/pm/PackageManagerService;->prepareAppDataContentsLIF(Landroid/content/pm/PackageParser$Package;II)V
-HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataContentsLeafLIF(Landroid/content/pm/PackageParser$Package;II)V
-HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataLIF(Landroid/content/pm/PackageParser$Package;II)V
-HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataLeafLIF(Landroid/content/pm/PackageParser$Package;II)V
+PLcom/android/server/pm/PackageManagerService;->performBackupManagerRestore(IILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)Z
+PLcom/android/server/pm/PackageManagerService;->performDexOpt(Lcom/android/server/pm/dex/DexoptOptions;)Z
+PLcom/android/server/pm/PackageManagerService;->performDexOptInternal(Lcom/android/server/pm/dex/DexoptOptions;)I
+HPLcom/android/server/pm/PackageManagerService;->performDexOptInternalWithDependenciesLI(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/dex/DexoptOptions;)I
+PLcom/android/server/pm/PackageManagerService;->performDexOptTraced(Lcom/android/server/pm/dex/DexoptOptions;)I
+PLcom/android/server/pm/PackageManagerService;->performDexOptUpgrade(Ljava/util/List;ZIZ)[I
+HSPLcom/android/server/pm/PackageManagerService;->performFstrimIfNeeded()V
+HPLcom/android/server/pm/PackageManagerService;->performRollbackManagerRestore(IILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Lcom/android/server/pm/PackageManagerService$PostInstallData;)Z
+HPLcom/android/server/pm/PackageManagerService;->prepareAppDataAfterInstallLIF(Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataAndMigrateLIF(Landroid/content/pm/parsing/AndroidPackage;IIZ)V
+HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataContentsLeafLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
+HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
+HSPLcom/android/server/pm/PackageManagerService;->prepareAppDataLeafLIF(Landroid/content/pm/parsing/AndroidPackage;II)V
PLcom/android/server/pm/PackageManagerService;->preparePackageLI(Lcom/android/server/pm/PackageManagerService$InstallArgs;Lcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)Lcom/android/server/pm/PackageManagerService$PrepareResult;
HSPLcom/android/server/pm/PackageManagerService;->preparePackageParserCache()Ljava/io/File;
PLcom/android/server/pm/PackageManagerService;->processPendingInstall(Lcom/android/server/pm/PackageManagerService$InstallArgs;I)V
-HPLcom/android/server/pm/PackageManagerService;->queryContentProviders(Ljava/lang/String;IILjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/server/pm/PackageManagerService;->queryContentProviders(Ljava/lang/String;IILjava/lang/String;)Landroid/content/pm/ParceledListSlice;
HSPLcom/android/server/pm/PackageManagerService;->queryCrossProfileIntents(Ljava/util/List;Landroid/content/Intent;Ljava/lang/String;IIZ)Landroid/content/pm/ResolveInfo;
HPLcom/android/server/pm/PackageManagerService;->queryIntentActivities(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
HSPLcom/android/server/pm/PackageManagerService;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
HSPLcom/android/server/pm/PackageManagerService;->queryIntentActivitiesInternal(Landroid/content/Intent;Ljava/lang/String;IIIZZ)Ljava/util/List;
PLcom/android/server/pm/PackageManagerService;->queryIntentContentProviders(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/pm/PackageManagerService;->queryIntentContentProvidersInternal(Landroid/content/Intent;Ljava/lang/String;II)Ljava/util/List;
-HPLcom/android/server/pm/PackageManagerService;->queryIntentReceivers(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/pm/PackageManagerService;->queryIntentReceiversInternal(Landroid/content/Intent;Ljava/lang/String;IIZ)Ljava/util/List;
-HPLcom/android/server/pm/PackageManagerService;->queryIntentServices(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/pm/PackageManagerService;->queryIntentServicesInternal(Landroid/content/Intent;Ljava/lang/String;IIIZ)Ljava/util/List;
+HSPLcom/android/server/pm/PackageManagerService;->queryIntentReceivers(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/server/pm/PackageManagerService;->queryIntentReceiversInternal(Landroid/content/Intent;Ljava/lang/String;IIZ)Ljava/util/List;
+HSPLcom/android/server/pm/PackageManagerService;->queryIntentServices(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ParceledListSlice;
+HSPLcom/android/server/pm/PackageManagerService;->queryIntentServicesInternal(Landroid/content/Intent;Ljava/lang/String;IIIZ)Ljava/util/List;
HSPLcom/android/server/pm/PackageManagerService;->querySkipCurrentProfileIntents(Ljava/util/List;Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
-PLcom/android/server/pm/PackageManagerService;->reconcileApps(Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->reconcileApps(Ljava/lang/String;)V
PLcom/android/server/pm/PackageManagerService;->reconcileAppsData(IIZ)V
PLcom/android/server/pm/PackageManagerService;->reconcileAppsDataLI(Ljava/lang/String;IIZ)V
HSPLcom/android/server/pm/PackageManagerService;->reconcileAppsDataLI(Ljava/lang/String;IIZZ)Ljava/util/List;
@@ -12425,72 +14930,76 @@ HSPLcom/android/server/pm/PackageManagerService;->reconcilePackagesLocked(Lcom/a
PLcom/android/server/pm/PackageManagerService;->registerMoveCallback(Landroid/content/pm/IPackageMoveObserver;)V
PLcom/android/server/pm/PackageManagerService;->removeCodePathLI(Ljava/io/File;)V
PLcom/android/server/pm/PackageManagerService;->removeDexFiles(Ljava/util/List;[Ljava/lang/String;)V
-PLcom/android/server/pm/PackageManagerService;->removeKeystoreDataIfNeeded(Landroid/os/UserManagerInternal;II)V
-PLcom/android/server/pm/PackageManagerService;->removePackageLI(Landroid/content/pm/PackageParser$Package;Z)V
+PLcom/android/server/pm/PackageManagerService;->removePackageDataLIF(Lcom/android/server/pm/PackageSetting;[ILcom/android/server/pm/PackageManagerService$PackageRemovedInfo;IZ)V
+PLcom/android/server/pm/PackageManagerService;->removePackageLI(Landroid/content/pm/parsing/AndroidPackage;Z)V
PLcom/android/server/pm/PackageManagerService;->removePackageLI(Ljava/lang/String;Z)V
-HSPLcom/android/server/pm/PackageManagerService;->renameStaticSharedLibraryPackage(Landroid/content/pm/PackageParser$Package;)V
+PLcom/android/server/pm/PackageManagerService;->removeSharedLibraryLPw(Ljava/lang/String;J)Z
+HSPLcom/android/server/pm/PackageManagerService;->renameStaticSharedLibraryPackage(Landroid/content/pm/parsing/ParsedPackage;)V
PLcom/android/server/pm/PackageManagerService;->replacePreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
HSPLcom/android/server/pm/PackageManagerService;->reportSettingsProblem(ILjava/lang/String;)V
HSPLcom/android/server/pm/PackageManagerService;->resolveApexToSystemPartition(Lcom/android/server/pm/ApexManager$ActiveApexInfo;)Lcom/android/server/pm/PackageManagerService$SystemPartition;
-HPLcom/android/server/pm/PackageManagerService;->resolveContentProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
-HPLcom/android/server/pm/PackageManagerService;->resolveContentProviderInternal(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
-HPLcom/android/server/pm/PackageManagerService;->resolveExternalPackageNameLPr(Landroid/content/pm/PackageParser$Package;)Ljava/lang/String;
-HPLcom/android/server/pm/PackageManagerService;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
-HPLcom/android/server/pm/PackageManagerService;->resolveIntentInternal(Landroid/content/Intent;Ljava/lang/String;IIZI)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/PackageManagerService;->resolveContentProvider(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
+HSPLcom/android/server/pm/PackageManagerService;->resolveContentProviderInternal(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
+HSPLcom/android/server/pm/PackageManagerService;->resolveExternalPackageNameLPr(Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/PackageManagerService;->resolveIntentInternal(Landroid/content/Intent;Ljava/lang/String;IIZI)Landroid/content/pm/ResolveInfo;
HSPLcom/android/server/pm/PackageManagerService;->resolveInternalPackageNameLPr(Ljava/lang/String;J)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerService;->resolveService(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
-HPLcom/android/server/pm/PackageManagerService;->resolveServiceInternal(Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/PackageManagerService;->resolveService(Landroid/content/Intent;Ljava/lang/String;II)Landroid/content/pm/ResolveInfo;
+HSPLcom/android/server/pm/PackageManagerService;->resolveServiceInternal(Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
+PLcom/android/server/pm/PackageManagerService;->resolveUserIds(I)[I
PLcom/android/server/pm/PackageManagerService;->restoreAndPostInstall(ILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;Lcom/android/server/pm/PackageManagerService$PostInstallData;)V
HSPLcom/android/server/pm/PackageManagerService;->scanDirLI(Ljava/io/File;IIJ)V
HSPLcom/android/server/pm/PackageManagerService;->scanDirTracedLI(Ljava/io/File;IIJ)V
-HSPLcom/android/server/pm/PackageManagerService;->scanPackageChildLI(Landroid/content/pm/PackageParser$Package;IIJLandroid/os/UserHandle;)Landroid/content/pm/PackageParser$Package;
-HSPLcom/android/server/pm/PackageManagerService;->scanPackageNewLI(Landroid/content/pm/PackageParser$Package;IIJLandroid/os/UserHandle;)Lcom/android/server/pm/PackageManagerService$ScanResult;
+PLcom/android/server/pm/PackageManagerService;->scanPackageLI(Ljava/io/File;IIJLandroid/os/UserHandle;)Landroid/content/pm/parsing/AndroidPackage;
+HSPLcom/android/server/pm/PackageManagerService;->scanPackageNewLI(Landroid/content/pm/parsing/ParsedPackage;IIJLandroid/os/UserHandle;)Lcom/android/server/pm/PackageManagerService$ScanResult;
HSPLcom/android/server/pm/PackageManagerService;->scanPackageOnlyLI(Lcom/android/server/pm/PackageManagerService$ScanRequest;Lcom/android/server/pm/PackageManagerService$Injector;ZJ)Lcom/android/server/pm/PackageManagerService$ScanResult;
-PLcom/android/server/pm/PackageManagerService;->scanPackageTracedLI(Landroid/content/pm/PackageParser$Package;IIJLandroid/os/UserHandle;)Ljava/util/List;
-PLcom/android/server/pm/PackageManagerService;->scheduleWritePackageRestrictionsLocked(I)V
+PLcom/android/server/pm/PackageManagerService;->scanPackageTracedLI(Landroid/content/pm/parsing/ParsedPackage;IIJLandroid/os/UserHandle;)Lcom/android/server/pm/PackageManagerService$ScanResult;
+PLcom/android/server/pm/PackageManagerService;->scanPackageTracedLI(Ljava/io/File;IIJLandroid/os/UserHandle;)Landroid/content/pm/parsing/AndroidPackage;
+HPLcom/android/server/pm/PackageManagerService;->scheduleWritePackageRestrictionsLocked(I)V
PLcom/android/server/pm/PackageManagerService;->scheduleWriteSettingsLocked()V
PLcom/android/server/pm/PackageManagerService;->sendFirstLaunchBroadcast(Ljava/lang/String;Ljava/lang/String;[I[I)V
+PLcom/android/server/pm/PackageManagerService;->sendMyPackageSuspendedOrUnsuspended([Ljava/lang/String;ZI)V
PLcom/android/server/pm/PackageManagerService;->sendPackageAddedForNewUsers(Ljava/lang/String;ZZI[I[I)V
PLcom/android/server/pm/PackageManagerService;->sendPackageBroadcast(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/String;Landroid/content/IIntentReceiver;[I[I)V
HPLcom/android/server/pm/PackageManagerService;->sendPackageChangedBroadcast(Ljava/lang/String;ZLjava/util/ArrayList;ILjava/lang/String;)V
+PLcom/android/server/pm/PackageManagerService;->sendPackagesSuspendedForUser([Ljava/lang/String;[IIZ)V
PLcom/android/server/pm/PackageManagerService;->sendSessionCommitBroadcast(Landroid/content/pm/PackageInstaller$SessionInfo;I)V
PLcom/android/server/pm/PackageManagerService;->setApplicationCategoryHint(Ljava/lang/String;ILjava/lang/String;)V
PLcom/android/server/pm/PackageManagerService;->setApplicationEnabledSetting(Ljava/lang/String;IIILjava/lang/String;)V
HPLcom/android/server/pm/PackageManagerService;->setBlockUninstallForUser(Ljava/lang/String;ZI)Z
-PLcom/android/server/pm/PackageManagerService;->setComponentEnabledSetting(Landroid/content/ComponentName;III)V
-PLcom/android/server/pm/PackageManagerService;->setEnabledSetting(Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V
-PLcom/android/server/pm/PackageManagerService;->setInstallAndUpdateTime(Landroid/content/pm/PackageParser$Package;JJ)V
+HSPLcom/android/server/pm/PackageManagerService;->setComponentEnabledSetting(Landroid/content/ComponentName;III)V
+HSPLcom/android/server/pm/PackageManagerService;->setEnabledSetting(Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V
HSPLcom/android/server/pm/PackageManagerService;->setInstantAppForUser(Lcom/android/server/pm/PackageManagerService$Injector;Lcom/android/server/pm/PackageSetting;IZZ)V
-HPLcom/android/server/pm/PackageManagerService;->setPackageStoppedState(Ljava/lang/String;ZI)V
-PLcom/android/server/pm/PackageManagerService;->setSystemAppHiddenUntilInstalled(Ljava/lang/String;Z)V
-PLcom/android/server/pm/PackageManagerService;->setSystemAppInstallState(Ljava/lang/String;ZI)Z
-PLcom/android/server/pm/PackageManagerService;->setUpFsVerityIfPossible(Landroid/content/pm/PackageParser$Package;)V
-PLcom/android/server/pm/PackageManagerService;->setUpInstantAppInstallerActivityLP(Landroid/content/pm/ActivityInfo;)V
+PLcom/android/server/pm/PackageManagerService;->setLastChosenActivity(Landroid/content/Intent;Ljava/lang/String;ILandroid/content/IntentFilter;ILandroid/content/ComponentName;)V
+HSPLcom/android/server/pm/PackageManagerService;->setPackageStoppedState(Ljava/lang/String;ZI)V
+HPLcom/android/server/pm/PackageManagerService;->setPackagesSuspendedAsUser([Ljava/lang/String;ZLandroid/os/PersistableBundle;Landroid/os/PersistableBundle;Landroid/content/pm/SuspendDialogInfo;Ljava/lang/String;I)[Ljava/lang/String;
+HSPLcom/android/server/pm/PackageManagerService;->setSystemAppHiddenUntilInstalled(Ljava/lang/String;Z)V
+HPLcom/android/server/pm/PackageManagerService;->setUpFsVerityIfPossible(Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->setUpInstantAppInstallerActivityLP(Landroid/content/pm/ActivityInfo;)V
HSPLcom/android/server/pm/PackageManagerService;->sharedLibExists(Ljava/lang/String;JLjava/util/Map;)Z
-HPLcom/android/server/pm/PackageManagerService;->shouldFilterApplicationLocked(Lcom/android/server/pm/PackageSetting;II)Z
-HPLcom/android/server/pm/PackageManagerService;->shouldFilterApplicationLocked(Lcom/android/server/pm/PackageSetting;ILandroid/content/ComponentName;II)Z
-PLcom/android/server/pm/PackageManagerService;->startIntentFilterVerifications(IZLandroid/content/pm/PackageParser$Package;)V
-PLcom/android/server/pm/PackageManagerService;->systemReady()V
-HSPLcom/android/server/pm/PackageManagerService;->updateAllSharedLibrariesLocked(Landroid/content/pm/PackageParser$Package;Ljava/util/Map;)Ljava/util/ArrayList;
+HSPLcom/android/server/pm/PackageManagerService;->shouldFilterApplicationLocked(Lcom/android/server/pm/PackageSetting;II)Z
+HSPLcom/android/server/pm/PackageManagerService;->shouldFilterApplicationLocked(Lcom/android/server/pm/PackageSetting;ILandroid/content/ComponentName;II)Z
+HPLcom/android/server/pm/PackageManagerService;->startIntentFilterVerifications(IZLandroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/PackageManagerService;->systemReady()V
+HSPLcom/android/server/pm/PackageManagerService;->updateAllSharedLibrariesLocked(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Map;)Ljava/util/ArrayList;
HPLcom/android/server/pm/PackageManagerService;->updateDefaultHomeNotLocked(I)Z
HSPLcom/android/server/pm/PackageManagerService;->updateFlags(II)I
-HPLcom/android/server/pm/PackageManagerService;->updateFlagsForApplication(II)I
+HSPLcom/android/server/pm/PackageManagerService;->updateFlagsForApplication(II)I
HSPLcom/android/server/pm/PackageManagerService;->updateFlagsForComponent(II)I
-HPLcom/android/server/pm/PackageManagerService;->updateFlagsForPackage(II)I
-HPLcom/android/server/pm/PackageManagerService;->updateFlagsForResolve(IIIZ)I
+HSPLcom/android/server/pm/PackageManagerService;->updateFlagsForPackage(II)I
+HSPLcom/android/server/pm/PackageManagerService;->updateFlagsForResolve(IIIZ)I
HSPLcom/android/server/pm/PackageManagerService;->updateFlagsForResolve(IIIZZ)I
-PLcom/android/server/pm/PackageManagerService;->updateInstantAppInstallerLocked(Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerService;->updateInstantAppInstallerLocked(Ljava/lang/String;)V
PLcom/android/server/pm/PackageManagerService;->updateIntentForResolve(Landroid/content/Intent;)Landroid/content/Intent;
-PLcom/android/server/pm/PackageManagerService;->updatePackagesIfNeeded()V
+HSPLcom/android/server/pm/PackageManagerService;->updatePackagesIfNeeded()V
PLcom/android/server/pm/PackageManagerService;->updateSequenceNumberLP(Lcom/android/server/pm/PackageSetting;[I)V
-HPLcom/android/server/pm/PackageManagerService;->updateSettingsInternalLI(Landroid/content/pm/PackageParser$Package;Lcom/android/server/pm/PackageManagerService$InstallArgs;[ILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)V
-PLcom/android/server/pm/PackageManagerService;->updateSettingsLI(Landroid/content/pm/PackageParser$Package;Lcom/android/server/pm/PackageManagerService$InstallArgs;[ILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)V
-HSPLcom/android/server/pm/PackageManagerService;->updateSharedLibrariesLocked(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageParser$Package;Ljava/util/Map;)V
+HPLcom/android/server/pm/PackageManagerService;->updateSettingsInternalLI(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageManagerService$InstallArgs;[ILcom/android/server/pm/PackageManagerService$PackageInstalledInfo;)V
+HSPLcom/android/server/pm/PackageManagerService;->updateSharedLibrariesLocked(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Map;)V
HSPLcom/android/server/pm/PackageManagerService;->userNeedsBadging(I)Z
PLcom/android/server/pm/PackageManagerService;->verifyIntentFilter(IILjava/util/List;)V
-PLcom/android/server/pm/PackageManagerService;->verifyIntentFiltersIfNeeded(IIZLandroid/content/pm/PackageParser$Package;)V
+HPLcom/android/server/pm/PackageManagerService;->verifyIntentFiltersIfNeeded(IIZLjava/lang/String;ZLjava/util/List;)V
PLcom/android/server/pm/PackageManagerService;->verifyPendingInstall(II)V
-PLcom/android/server/pm/PackageManagerService;->waitForAppDataPrepared()V
+HSPLcom/android/server/pm/PackageManagerService;->waitForAppDataPrepared()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;
@@ -12500,56 +15009,70 @@ HSPLcom/android/server/pm/PackageManagerServiceCompilerMapping;->getSystemProper
HSPLcom/android/server/pm/PackageManagerServiceCompilerMapping;->isFilterAllowedForReason(ILjava/lang/String;)Z
HSPLcom/android/server/pm/PackageManagerServiceUtils$1;-><init>()V
HSPLcom/android/server/pm/PackageManagerServiceUtils$1;->accept(Ljava/io/File;Ljava/lang/String;)Z
+PLcom/android/server/pm/PackageManagerServiceUtils;->applyPackageFilter(Ljava/util/function/Predicate;Ljava/util/Collection;Ljava/util/Collection;Ljava/util/List;Lcom/android/server/pm/PackageManagerService;)V
PLcom/android/server/pm/PackageManagerServiceUtils;->checkISA(Ljava/lang/String;)Z
HSPLcom/android/server/pm/PackageManagerServiceUtils;->compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
HSPLcom/android/server/pm/PackageManagerServiceUtils;->compressedFileExists(Ljava/lang/String;)Z
+PLcom/android/server/pm/PackageManagerServiceUtils;->decompressFile(Ljava/io/File;Ljava/io/File;)I
HSPLcom/android/server/pm/PackageManagerServiceUtils;->deriveAbiOverride(Ljava/lang/String;Lcom/android/server/pm/PackageSetting;)Ljava/lang/String;
-PLcom/android/server/pm/PackageManagerServiceUtils;->dumpCriticalInfo(Ljava/io/PrintWriter;Ljava/lang/String;)V
-HPLcom/android/server/pm/PackageManagerServiceUtils;->enforceShellRestriction(Landroid/os/UserManagerInternal;Ljava/lang/String;II)V
-PLcom/android/server/pm/PackageManagerServiceUtils;->enforceSystemOrPhoneCaller(Ljava/lang/String;I)V
+PLcom/android/server/pm/PackageManagerServiceUtils;->dumpCriticalInfo(Landroid/util/proto/ProtoOutputStream;)V
+HPLcom/android/server/pm/PackageManagerServiceUtils;->dumpCriticalInfo(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/pm/PackageManagerServiceUtils;->enforceShellRestriction(Landroid/os/UserManagerInternal;Ljava/lang/String;II)V
+HSPLcom/android/server/pm/PackageManagerServiceUtils;->enforceSystemOrPhoneCaller(Ljava/lang/String;I)V
HSPLcom/android/server/pm/PackageManagerServiceUtils;->getCompressedFiles(Ljava/lang/String;)[Ljava/io/File;
-HSPLcom/android/server/pm/PackageManagerServiceUtils;->getLastModifiedTime(Landroid/content/pm/PackageParser$Package;)J
+HSPLcom/android/server/pm/PackageManagerServiceUtils;->getLastModifiedTime(Landroid/content/pm/parsing/AndroidPackage;)J
PLcom/android/server/pm/PackageManagerServiceUtils;->getMinimalPackageInfo(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;)Landroid/content/pm/PackageInfoLite;
-PLcom/android/server/pm/PackageManagerServiceUtils;->getPermissionsState(Landroid/content/pm/PackageParser$Package;)Lcom/android/server/pm/permission/PermissionsState;
+PLcom/android/server/pm/PackageManagerServiceUtils;->getPackageNamesForIntent(Landroid/content/Intent;I)Landroid/util/ArraySet;
+PLcom/android/server/pm/PackageManagerServiceUtils;->getPackagesForDexopt(Ljava/util/Collection;Lcom/android/server/pm/PackageManagerService;)Ljava/util/List;
+PLcom/android/server/pm/PackageManagerServiceUtils;->getPackagesForDexopt(Ljava/util/Collection;Lcom/android/server/pm/PackageManagerService;Z)Ljava/util/List;
+HPLcom/android/server/pm/PackageManagerServiceUtils;->getPermissionsState(Landroid/content/pm/PackageManagerInternal;Landroid/content/pm/parsing/AndroidPackage;)Lcom/android/server/pm/permission/PermissionsState;
HSPLcom/android/server/pm/PackageManagerServiceUtils;->getSettingsProblemFile()Ljava/io/File;
HSPLcom/android/server/pm/PackageManagerServiceUtils;->isApkVerificationForced(Lcom/android/server/pm/PackageSetting;)Z
HSPLcom/android/server/pm/PackageManagerServiceUtils;->isApkVerityEnabled()Z
PLcom/android/server/pm/PackageManagerServiceUtils;->isDowngradePermitted(II)Z
HSPLcom/android/server/pm/PackageManagerServiceUtils;->isLegacyApkVerityEnabled()Z
+PLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$1(Landroid/content/pm/parsing/AndroidPackage;)Z
+HPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$2(Landroid/util/ArraySet;Landroid/content/pm/parsing/AndroidPackage;)Z
+HPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$3(Lcom/android/server/pm/dex/DexManager;Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$4(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;)I
+PLcom/android/server/pm/PackageManagerServiceUtils;->lambda$getPackagesForDexopt$5(JLandroid/content/pm/parsing/AndroidPackage;)Z
+HPLcom/android/server/pm/PackageManagerServiceUtils;->lambda$sortPackagesByUsageDate$0(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;)I
HSPLcom/android/server/pm/PackageManagerServiceUtils;->logCriticalInfo(ILjava/lang/String;)V
+HPLcom/android/server/pm/PackageManagerServiceUtils;->packagesToString(Ljava/util/Collection;)Ljava/lang/String;
+PLcom/android/server/pm/PackageManagerServiceUtils;->sortPackagesByUsageDate(Ljava/util/List;Lcom/android/server/pm/PackageManagerService;)V
HSPLcom/android/server/pm/PackageManagerServiceUtils;->verifySignatures(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Landroid/content/pm/PackageParser$SigningDetails;ZZ)Z
-PLcom/android/server/pm/PackageManagerShellCommand$SnapshotRuntimeProfileCallback;-><init>()V
-PLcom/android/server/pm/PackageManagerShellCommand$SnapshotRuntimeProfileCallback;-><init>(Lcom/android/server/pm/PackageManagerShellCommand$1;)V
-PLcom/android/server/pm/PackageManagerShellCommand$SnapshotRuntimeProfileCallback;->access$400(Lcom/android/server/pm/PackageManagerShellCommand$SnapshotRuntimeProfileCallback;)Landroid/os/ParcelFileDescriptor;
-PLcom/android/server/pm/PackageManagerShellCommand$SnapshotRuntimeProfileCallback;->onSuccess(Landroid/os/ParcelFileDescriptor;)V
-PLcom/android/server/pm/PackageManagerShellCommand$SnapshotRuntimeProfileCallback;->waitTillDone()Z
PLcom/android/server/pm/PackageManagerShellCommand;-><init>(Lcom/android/server/pm/PackageManagerService;Landroid/permission/IPermissionManager;)V
PLcom/android/server/pm/PackageManagerShellCommand;->onCommand(Ljava/lang/String;)I
-PLcom/android/server/pm/PackageManagerShellCommand;->runGrantRevokePermission(Z)I
-PLcom/android/server/pm/PackageManagerShellCommand;->runSnapshotProfile()I
+PLcom/android/server/pm/PackageManagerShellCommand;->runList()I
+PLcom/android/server/pm/PackageManagerShellCommand;->runListPackages(Z)I
PLcom/android/server/pm/PackageManagerShellCommand;->translateUserId(IILjava/lang/String;)I
HSPLcom/android/server/pm/PackageSetting;-><init>(Lcom/android/server/pm/PackageSetting;)V
-HSPLcom/android/server/pm/PackageSetting;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JIILjava/lang/String;Ljava/util/List;I[Ljava/lang/String;[J)V
+HSPLcom/android/server/pm/PackageSetting;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JIII[Ljava/lang/String;[J)V
HSPLcom/android/server/pm/PackageSetting;->areInstallPermissionsFixed()Z
HSPLcom/android/server/pm/PackageSetting;->doCopy(Lcom/android/server/pm/PackageSetting;)V
-PLcom/android/server/pm/PackageSetting;->getAppId()I
+HPLcom/android/server/pm/PackageSetting;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JLjava/util/List;)V
+HPLcom/android/server/pm/PackageSetting;->getAppId()I
HSPLcom/android/server/pm/PackageSetting;->getPermissionsState()Lcom/android/server/pm/permission/PermissionsState;
HSPLcom/android/server/pm/PackageSetting;->getSharedUserId()I
HSPLcom/android/server/pm/PackageSetting;->isPrivileged()Z
PLcom/android/server/pm/PackageSetting;->isSharedUser()Z
HSPLcom/android/server/pm/PackageSetting;->isSystem()Z
HSPLcom/android/server/pm/PackageSetting;->isUpdatedSystem()Z
+HSPLcom/android/server/pm/PackageSetting;->setAndroidPackage(Landroid/content/pm/parsing/AndroidPackage;)V
HSPLcom/android/server/pm/PackageSetting;->setInstallPermissionsFixed(Z)V
+HPLcom/android/server/pm/PackageSetting;->toString()Ljava/lang/String;
HSPLcom/android/server/pm/PackageSetting;->updateFrom(Lcom/android/server/pm/PackageSetting;)V
HSPLcom/android/server/pm/PackageSettingBase;-><clinit>()V
HSPLcom/android/server/pm/PackageSettingBase;-><init>(Lcom/android/server/pm/PackageSettingBase;Ljava/lang/String;)V
-HSPLcom/android/server/pm/PackageSettingBase;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JIILjava/lang/String;Ljava/util/List;[Ljava/lang/String;[J)V
+HSPLcom/android/server/pm/PackageSettingBase;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JII[Ljava/lang/String;[J)V
HPLcom/android/server/pm/PackageSettingBase;->disableComponentLPw(Ljava/lang/String;I)Z
HSPLcom/android/server/pm/PackageSettingBase;->doCopy(Lcom/android/server/pm/PackageSettingBase;)V
HPLcom/android/server/pm/PackageSettingBase;->enableComponentLPw(Ljava/lang/String;I)Z
-HPLcom/android/server/pm/PackageSettingBase;->getCurrentEnabledStateLPr(Ljava/lang/String;I)I
+PLcom/android/server/pm/PackageSettingBase;->getCeDataInode(I)J
+HSPLcom/android/server/pm/PackageSettingBase;->getCurrentEnabledStateLPr(Ljava/lang/String;I)I
PLcom/android/server/pm/PackageSettingBase;->getDisabledComponents(I)Landroid/util/ArraySet;
PLcom/android/server/pm/PackageSettingBase;->getDistractionFlags(I)I
+PLcom/android/server/pm/PackageSettingBase;->getDomainVerificationStatusForUser(I)J
HPLcom/android/server/pm/PackageSettingBase;->getEnabled(I)I
PLcom/android/server/pm/PackageSettingBase;->getEnabledComponents(I)Landroid/util/ArraySet;
HPLcom/android/server/pm/PackageSettingBase;->getHarmfulAppWarning(I)Ljava/lang/String;
@@ -12557,19 +15080,22 @@ HPLcom/android/server/pm/PackageSettingBase;->getHidden(I)Z
PLcom/android/server/pm/PackageSettingBase;->getInstallReason(I)I
HSPLcom/android/server/pm/PackageSettingBase;->getInstalled(I)Z
HSPLcom/android/server/pm/PackageSettingBase;->getInstantApp(I)Z
+PLcom/android/server/pm/PackageSettingBase;->getIntentFilterVerificationInfo()Landroid/content/pm/IntentFilterVerificationInfo;
HPLcom/android/server/pm/PackageSettingBase;->getLastDisabledAppCaller(I)Ljava/lang/String;
HSPLcom/android/server/pm/PackageSettingBase;->getNotInstalledUserIds()[I
HPLcom/android/server/pm/PackageSettingBase;->getNotLaunched(I)Z
+PLcom/android/server/pm/PackageSettingBase;->getOverlayPaths(I)[Ljava/lang/String;
HSPLcom/android/server/pm/PackageSettingBase;->getPermissionsState()Lcom/android/server/pm/permission/PermissionsState;
HSPLcom/android/server/pm/PackageSettingBase;->getSigningDetails()Landroid/content/pm/PackageParser$SigningDetails;
-HPLcom/android/server/pm/PackageSettingBase;->getStopped(I)Z
-HPLcom/android/server/pm/PackageSettingBase;->getSuspended(I)Z
+HSPLcom/android/server/pm/PackageSettingBase;->getStopped(I)Z
+HSPLcom/android/server/pm/PackageSettingBase;->getSuspended(I)Z
HSPLcom/android/server/pm/PackageSettingBase;->getVirtulalPreload(I)Z
HSPLcom/android/server/pm/PackageSettingBase;->modifyUserState(I)Landroid/content/pm/PackageUserState;
-PLcom/android/server/pm/PackageSettingBase;->modifyUserStateComponents(IZZ)Landroid/content/pm/PackageUserState;
+HSPLcom/android/server/pm/PackageSettingBase;->modifyUserStateComponents(IZZ)Landroid/content/pm/PackageUserState;
PLcom/android/server/pm/PackageSettingBase;->queryInstalledUsers([IZ)[I
HSPLcom/android/server/pm/PackageSettingBase;->readUserState(I)Landroid/content/pm/PackageUserState;
-PLcom/android/server/pm/PackageSettingBase;->restoreComponentLPw(Ljava/lang/String;I)Z
+HPLcom/android/server/pm/PackageSettingBase;->removeSuspension(Ljava/lang/String;I)V
+HSPLcom/android/server/pm/PackageSettingBase;->restoreComponentLPw(Ljava/lang/String;I)Z
HSPLcom/android/server/pm/PackageSettingBase;->setEnabled(IILjava/lang/String;)V
PLcom/android/server/pm/PackageSettingBase;->setInstallReason(II)V
PLcom/android/server/pm/PackageSettingBase;->setInstallSource(Lcom/android/server/pm/InstallSource;)V
@@ -12577,22 +15103,27 @@ PLcom/android/server/pm/PackageSettingBase;->setInstalled(ZI)V
PLcom/android/server/pm/PackageSettingBase;->setInstallerPackageName(Ljava/lang/String;)V
HSPLcom/android/server/pm/PackageSettingBase;->setIntentFilterVerificationInfo(Landroid/content/pm/IntentFilterVerificationInfo;)V
HSPLcom/android/server/pm/PackageSettingBase;->setIsOrphaned(Z)V
-HPLcom/android/server/pm/PackageSettingBase;->setOverlayPaths(Ljava/util/List;I)V
+HSPLcom/android/server/pm/PackageSettingBase;->setOverlayPaths(Ljava/util/List;I)V
HSPLcom/android/server/pm/PackageSettingBase;->setTimeStamp(J)V
HSPLcom/android/server/pm/PackageSettingBase;->setUserState(IJIZZZZIZLandroid/util/ArrayMap;ZZLjava/lang/String;Landroid/util/ArraySet;Landroid/util/ArraySet;IIILjava/lang/String;)V
HSPLcom/android/server/pm/PackageSettingBase;->updateFrom(Lcom/android/server/pm/PackageSettingBase;)Lcom/android/server/pm/PackageSettingBase;
+PLcom/android/server/pm/PackageSettingBase;->writeUsersInfoToProto(Landroid/util/proto/ProtoOutputStream;J)V
HSPLcom/android/server/pm/PackageSignatures;-><init>()V
HSPLcom/android/server/pm/PackageSignatures;->readCertsListXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/util/ArrayList;Ljava/util/ArrayList;IZLandroid/content/pm/PackageParser$SigningDetails$Builder;)I
HSPLcom/android/server/pm/PackageSignatures;->readXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/util/ArrayList;)V
-HPLcom/android/server/pm/PackageSignatures;->writeCertsListXml(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/ArrayList;[Landroid/content/pm/Signature;Z)V
-HPLcom/android/server/pm/PackageSignatures;->writeXml(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Ljava/util/ArrayList;)V
+HPLcom/android/server/pm/PackageSignatures;->toString()Ljava/lang/String;
+HSPLcom/android/server/pm/PackageSignatures;->writeCertsListXml(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/ArrayList;[Landroid/content/pm/Signature;Z)V
+HSPLcom/android/server/pm/PackageSignatures;->writeXml(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Ljava/util/ArrayList;)V
HSPLcom/android/server/pm/PackageUsage;-><init>()V
+PLcom/android/server/pm/PackageUsage;->isHistoricalPackageUsageAvailable()Z
HSPLcom/android/server/pm/PackageUsage;->parseAsLong(Ljava/lang/String;)J
HSPLcom/android/server/pm/PackageUsage;->readInternal(Ljava/lang/Object;)V
HSPLcom/android/server/pm/PackageUsage;->readInternal(Ljava/util/Map;)V
HSPLcom/android/server/pm/PackageUsage;->readLine(Ljava/io/InputStream;Ljava/lang/StringBuffer;)Ljava/lang/String;
HSPLcom/android/server/pm/PackageUsage;->readToken(Ljava/io/InputStream;Ljava/lang/StringBuffer;C)Ljava/lang/String;
HSPLcom/android/server/pm/PackageUsage;->readVersion1LP(Ljava/util/Map;Ljava/io/InputStream;Ljava/lang/StringBuffer;)V
+PLcom/android/server/pm/PackageUsage;->writeInternal(Ljava/lang/Object;)V
+HPLcom/android/server/pm/PackageUsage;->writeInternal(Ljava/util/Map;)V
PLcom/android/server/pm/PackageVerificationResponse;-><init>(II)V
PLcom/android/server/pm/PackageVerificationState;-><init>(ILcom/android/server/pm/PackageManagerService$InstallParams;)V
PLcom/android/server/pm/PackageVerificationState;->getInstallParams()Lcom/android/server/pm/PackageManagerService$InstallParams;
@@ -12603,7 +15134,7 @@ HSPLcom/android/server/pm/ParallelPackageParser$ParseResult;-><init>()V
HSPLcom/android/server/pm/ParallelPackageParser;-><init>([Ljava/lang/String;ZLandroid/util/DisplayMetrics;Ljava/io/File;Landroid/content/pm/PackageParser$Callback;)V
HSPLcom/android/server/pm/ParallelPackageParser;->close()V
HSPLcom/android/server/pm/ParallelPackageParser;->lambda$submit$0$ParallelPackageParser(Ljava/io/File;I)V
-HSPLcom/android/server/pm/ParallelPackageParser;->parsePackage(Landroid/content/pm/PackageParser;Ljava/io/File;I)Landroid/content/pm/PackageParser$Package;
+HSPLcom/android/server/pm/ParallelPackageParser;->parsePackage(Landroid/content/pm/PackageParser;Ljava/io/File;I)Landroid/content/pm/parsing/ParsedPackage;
HSPLcom/android/server/pm/ParallelPackageParser;->submit(Ljava/io/File;I)V
HSPLcom/android/server/pm/ParallelPackageParser;->take()Lcom/android/server/pm/ParallelPackageParser$ParseResult;
HSPLcom/android/server/pm/Policy$PolicyBuilder;-><init>()V
@@ -12619,7 +15150,7 @@ HSPLcom/android/server/pm/Policy;-><init>(Lcom/android/server/pm/Policy$PolicyBu
HSPLcom/android/server/pm/Policy;->access$400(Lcom/android/server/pm/Policy;)Ljava/util/Set;
HSPLcom/android/server/pm/Policy;->access$500(Lcom/android/server/pm/Policy;)Ljava/lang/String;
HSPLcom/android/server/pm/Policy;->access$600(Lcom/android/server/pm/Policy;)Ljava/util/Map;
-HSPLcom/android/server/pm/Policy;->getMatchedSeInfo(Landroid/content/pm/PackageParser$Package;)Ljava/lang/String;
+HSPLcom/android/server/pm/Policy;->getMatchedSeInfo(Landroid/content/pm/parsing/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
@@ -12628,29 +15159,31 @@ HSPLcom/android/server/pm/PolicyComparator;->compare(Ljava/lang/Object;Ljava/lan
HSPLcom/android/server/pm/PolicyComparator;->foundDuplicate()Z
HSPLcom/android/server/pm/PreferredActivity;-><init>(Lorg/xmlpull/v1/XmlPullParser;)V
HSPLcom/android/server/pm/PreferredActivity;->onReadTag(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;)Z
-PLcom/android/server/pm/PreferredActivity;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;Z)V
+HSPLcom/android/server/pm/PreferredActivity;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;Z)V
PLcom/android/server/pm/PreferredComponent;-><init>(Lcom/android/server/pm/PreferredComponent$Callbacks;I[Landroid/content/ComponentName;Landroid/content/ComponentName;Z)V
HSPLcom/android/server/pm/PreferredComponent;-><init>(Lcom/android/server/pm/PreferredComponent$Callbacks;Lorg/xmlpull/v1/XmlPullParser;)V
+PLcom/android/server/pm/PreferredComponent;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/Object;)V
HSPLcom/android/server/pm/PreferredComponent;->getParseError()Ljava/lang/String;
PLcom/android/server/pm/PreferredComponent;->sameSet(Ljava/util/List;Z)Z
HPLcom/android/server/pm/PreferredComponent;->sameSet([Landroid/content/ComponentName;)Z
-HPLcom/android/server/pm/PreferredComponent;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;Z)V
+HSPLcom/android/server/pm/PreferredComponent;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;Z)V
HSPLcom/android/server/pm/PreferredIntentResolver;-><init>()V
+PLcom/android/server/pm/PreferredIntentResolver;->dumpFilter(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/content/IntentFilter;)V
HSPLcom/android/server/pm/PreferredIntentResolver;->newArray(I)[Landroid/content/IntentFilter;
HSPLcom/android/server/pm/PreferredIntentResolver;->newArray(I)[Lcom/android/server/pm/PreferredActivity;
HSPLcom/android/server/pm/ProcessLoggingHandler;-><init>()V
PLcom/android/server/pm/ProcessLoggingHandler;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/pm/ProcessLoggingHandler;->invalidateProcessLoggingBaseApkHash(Ljava/lang/String;)V
HSPLcom/android/server/pm/ProtectedPackages;-><init>(Landroid/content/Context;)V
-PLcom/android/server/pm/ProtectedPackages;->hasDeviceOwnerOrProfileOwner(ILjava/lang/String;)Z
-PLcom/android/server/pm/ProtectedPackages;->isPackageDataProtected(ILjava/lang/String;)Z
-PLcom/android/server/pm/ProtectedPackages;->isPackageStateProtected(ILjava/lang/String;)Z
-PLcom/android/server/pm/ProtectedPackages;->isProtectedPackage(Ljava/lang/String;)Z
-PLcom/android/server/pm/ProtectedPackages;->setDeviceAndProfileOwnerPackages(ILjava/lang/String;Landroid/util/SparseArray;)V
+PLcom/android/server/pm/ProtectedPackages;->getDeviceOwnerOrProfileOwnerPackage(I)Ljava/lang/String;
+HSPLcom/android/server/pm/ProtectedPackages;->hasDeviceOwnerOrProfileOwner(ILjava/lang/String;)Z
+HSPLcom/android/server/pm/ProtectedPackages;->isPackageStateProtected(ILjava/lang/String;)Z
+HSPLcom/android/server/pm/ProtectedPackages;->isProtectedPackage(Ljava/lang/String;)Z
+HSPLcom/android/server/pm/ProtectedPackages;->setDeviceAndProfileOwnerPackages(ILjava/lang/String;Landroid/util/SparseArray;)V
HSPLcom/android/server/pm/SELinuxMMAC;-><clinit>()V
-HSPLcom/android/server/pm/SELinuxMMAC;->getSeInfo(Landroid/content/pm/PackageParser$Package;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/compat/PlatformCompat;)Ljava/lang/String;
-HSPLcom/android/server/pm/SELinuxMMAC;->getSeInfo(Landroid/content/pm/PackageParser$Package;ZI)Ljava/lang/String;
-HSPLcom/android/server/pm/SELinuxMMAC;->getTargetSdkVersionForSeInfo(Landroid/content/pm/PackageParser$Package;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/compat/PlatformCompat;)I
+HSPLcom/android/server/pm/SELinuxMMAC;->getSeInfo(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/SharedUserSetting;Lcom/android/server/compat/PlatformCompat;)Ljava/lang/String;
+HSPLcom/android/server/pm/SELinuxMMAC;->getSeInfo(Landroid/content/pm/parsing/AndroidPackage;ZI)Ljava/lang/String;
+HSPLcom/android/server/pm/SELinuxMMAC;->getTargetSdkVersionForSeInfo(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/SharedUserSetting;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;->readSignerOrThrow(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/pm/Policy;
@@ -12664,41 +15197,55 @@ HSPLcom/android/server/pm/SettingBase;->setPrivateFlags(I)V
HSPLcom/android/server/pm/Settings$KernelPackageState;-><init>()V
HSPLcom/android/server/pm/Settings$KernelPackageState;-><init>(Lcom/android/server/pm/Settings$1;)V
HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence$MyHandler;-><init>(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;)V
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence$MyHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence$MyHandler;->handleMessage(Landroid/os/Message;)V
HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;-><init>(Lcom/android/server/pm/Settings;Ljava/lang/Object;)V
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->access$300(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;I)V
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->areDefaultRuntimePermissionsGrantedLPr(I)Z
+HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->access$300(Lcom/android/server/pm/Settings$RuntimePermissionPersistence;I)V
+HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->areDefaultRuntimePermissionsGrantedLPr(I)Z
+PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->getVersionLPr(I)I
HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->parsePermissionsLPr(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/pm/permission/PermissionsState;I)V
HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->parseRuntimePermissionsLPr(Lorg/xmlpull/v1/XmlPullParser;I)V
HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->readStateForUserSyncLPr(I)V
-HPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writePermissions(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/List;)V
-PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writePermissionsForUserAsyncLPr(I)V
-HPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writePermissionsSync(I)V
+PLcom/android/server/pm/Settings$RuntimePermissionPersistence;->setRuntimePermissionsFingerPrintLPr(Ljava/lang/String;I)V
+HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writePermissions(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/List;)V
+HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writePermissionsForUserAsyncLPr(I)V
+HSPLcom/android/server/pm/Settings$RuntimePermissionPersistence;->writePermissionsSync(I)V
HSPLcom/android/server/pm/Settings$VersionInfo;-><init>()V
HSPLcom/android/server/pm/Settings;-><clinit>()V
HSPLcom/android/server/pm/Settings;-><init>(Ljava/io/File;Lcom/android/server/pm/permission/PermissionSettings;Ljava/lang/Object;)V
HSPLcom/android/server/pm/Settings;->access$200(Lcom/android/server/pm/Settings;I)Ljava/io/File;
-HPLcom/android/server/pm/Settings;->acquireAndRegisterNewAppIdLPw(Lcom/android/server/pm/SettingBase;)I
-HSPLcom/android/server/pm/Settings;->addPackageLPw(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IJIILjava/lang/String;Ljava/util/List;[Ljava/lang/String;[J)Lcom/android/server/pm/PackageSetting;
+PLcom/android/server/pm/Settings;->acquireAndRegisterNewAppIdLPw(Lcom/android/server/pm/SettingBase;)I
+HSPLcom/android/server/pm/Settings;->addPackageLPw(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IJII[Ljava/lang/String;[J)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;
-PLcom/android/server/pm/Settings;->areDefaultRuntimePermissionsGrantedLPr(I)Z
-PLcom/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/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JIILandroid/os/UserHandle;ZZZLjava/lang/String;Ljava/util/List;Lcom/android/server/pm/UserManagerService;[Ljava/lang/String;[J)Lcom/android/server/pm/PackageSetting;
+HSPLcom/android/server/pm/Settings;->areDefaultRuntimePermissionsGrantedLPr(I)Z
+PLcom/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/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JIILandroid/os/UserHandle;ZZZLcom/android/server/pm/UserManagerService;[Ljava/lang/String;[J)Lcom/android/server/pm/PackageSetting;
PLcom/android/server/pm/Settings;->disableSystemPackageLPw(Ljava/lang/String;Z)Z
+PLcom/android/server/pm/Settings;->dumpGidsLPr(Ljava/io/PrintWriter;Ljava/lang/String;[I)V
+PLcom/android/server/pm/Settings;->dumpInstallPermissionsLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/permission/PermissionsState;)V
HPLcom/android/server/pm/Settings;->dumpPackageLPr(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/PackageSetting;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;->dumpSharedUsersLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;Z)V
+PLcom/android/server/pm/Settings;->dumpPackagesProto(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/pm/Settings;->dumpPermissionsLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;)V
+PLcom/android/server/pm/Settings;->dumpReadMessagesLPr(Ljava/io/PrintWriter;Lcom/android/server/pm/DumpState;)V
+PLcom/android/server/pm/Settings;->dumpRuntimePermissionsLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Ljava/util/List;Z)V
+HPLcom/android/server/pm/Settings;->dumpSharedUsersLPr(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;Lcom/android/server/pm/DumpState;Z)V
+PLcom/android/server/pm/Settings;->dumpSharedUsersProto(Landroid/util/proto/ProtoOutputStream;)V
+HPLcom/android/server/pm/Settings;->dumpSplitNames(Ljava/io/PrintWriter;Landroid/content/pm/parsing/AndroidPackage;)V
+PLcom/android/server/pm/Settings;->dumpVersionLPr(Lcom/android/internal/util/IndentingPrintWriter;)V
HSPLcom/android/server/pm/Settings;->editCrossProfileIntentResolverLPw(I)Lcom/android/server/pm/CrossProfileIntentResolver;
HSPLcom/android/server/pm/Settings;->editPreferredActivitiesLPw(I)Lcom/android/server/pm/PreferredIntentResolver;
+PLcom/android/server/pm/Settings;->enableSystemPackageLPw(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
HSPLcom/android/server/pm/Settings;->findOrCreateVersion(Ljava/lang/String;)Lcom/android/server/pm/Settings$VersionInfo;
HSPLcom/android/server/pm/Settings;->getAllSharedUsersLPw()Ljava/util/Collection;
HSPLcom/android/server/pm/Settings;->getAllUsers(Lcom/android/server/pm/UserManagerService;)Ljava/util/List;
-PLcom/android/server/pm/Settings;->getApplicationEnabledSettingLPr(Ljava/lang/String;I)I
-PLcom/android/server/pm/Settings;->getChildSettingsLPr(Lcom/android/server/pm/PackageSetting;)[Lcom/android/server/pm/PackageSetting;
-PLcom/android/server/pm/Settings;->getComponentEnabledSettingLPr(Landroid/content/ComponentName;I)I
+HPLcom/android/server/pm/Settings;->getApplicationEnabledSettingLPr(Ljava/lang/String;I)I
+HSPLcom/android/server/pm/Settings;->getComponentEnabledSettingLPr(Landroid/content/ComponentName;I)I
+PLcom/android/server/pm/Settings;->getDefaultRuntimePermissionsVersionLPr(I)I
PLcom/android/server/pm/Settings;->getDisabledSystemPkgLPr(Lcom/android/server/pm/PackageSetting;)Lcom/android/server/pm/PackageSetting;
HSPLcom/android/server/pm/Settings;->getDisabledSystemPkgLPr(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
PLcom/android/server/pm/Settings;->getHarmfulAppWarningLPr(Ljava/lang/String;I)Ljava/lang/String;
+PLcom/android/server/pm/Settings;->getIntentFilterVerificationLPr(Ljava/lang/String;)Landroid/content/pm/IntentFilterVerificationInfo;
+HPLcom/android/server/pm/Settings;->getIntentFilterVerificationsLPr(Ljava/lang/String;)Ljava/util/List;
HSPLcom/android/server/pm/Settings;->getInternalVersion()Lcom/android/server/pm/Settings$VersionInfo;
HSPLcom/android/server/pm/Settings;->getPackageLPr(Ljava/lang/String;)Lcom/android/server/pm/PackageSetting;
HSPLcom/android/server/pm/Settings;->getRenamedPackageLPr(Ljava/lang/String;)Ljava/lang/String;
@@ -12709,9 +15256,12 @@ HSPLcom/android/server/pm/Settings;->getUserPackagesStateFile(I)Ljava/io/File;
HSPLcom/android/server/pm/Settings;->getUserRuntimePermissionsFile(I)Ljava/io/File;
HSPLcom/android/server/pm/Settings;->getUsers(Lcom/android/server/pm/UserManagerService;Z)Ljava/util/List;
HSPLcom/android/server/pm/Settings;->getVolumePackagesLPr(Ljava/lang/String;)Ljava/util/List;
-HSPLcom/android/server/pm/Settings;->insertPackageSettingLPw(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/PackageParser$Package;)V
+HSPLcom/android/server/pm/Settings;->insertPackageSettingLPw(Lcom/android/server/pm/PackageSetting;Landroid/content/pm/parsing/AndroidPackage;)V
HSPLcom/android/server/pm/Settings;->isDisabledSystemPackageLPr(Ljava/lang/String;)Z
HSPLcom/android/server/pm/Settings;->isEnabledAndMatchLPr(Landroid/content/pm/ComponentInfo;II)Z
+HSPLcom/android/server/pm/Settings;->isEnabledAndMatchLPr(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/ComponentParseUtils$ParsedComponent;II)Z
+HPLcom/android/server/pm/Settings;->permissionFlagsToString(Ljava/lang/String;I)Ljava/lang/String;
+HPLcom/android/server/pm/Settings;->printFlags(Ljava/io/PrintWriter;I[Ljava/lang/Object;)V
HSPLcom/android/server/pm/Settings;->pruneSharedUsersLPw()V
HSPLcom/android/server/pm/Settings;->readBlockUninstallPackagesLPw(Lorg/xmlpull/v1/XmlPullParser;I)V
HSPLcom/android/server/pm/Settings;->readComponentsLPr(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/ArraySet;
@@ -12730,123 +15280,132 @@ HSPLcom/android/server/pm/Settings;->readSharedUserLPw(Lorg/xmlpull/v1/XmlPullPa
HSPLcom/android/server/pm/Settings;->readUsesStaticLibLPw(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/pm/PackageSetting;)V
PLcom/android/server/pm/Settings;->registerAppIdLPw(Lcom/android/server/pm/PackageSetting;)Z
HSPLcom/android/server/pm/Settings;->registerExistingAppIdLPw(ILcom/android/server/pm/SettingBase;Ljava/lang/Object;)Z
+PLcom/android/server/pm/Settings;->removeDisabledSystemPackageLPw(Ljava/lang/String;)V
PLcom/android/server/pm/Settings;->setBlockUninstallLPw(ILjava/lang/String;Z)V
PLcom/android/server/pm/Settings;->setInstallerPackageName(Ljava/lang/String;Ljava/lang/String;)V
-HPLcom/android/server/pm/Settings;->setPackageStoppedStateLPw(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;ZZII)Z
+HSPLcom/android/server/pm/Settings;->setPackageStoppedStateLPw(Lcom/android/server/pm/PackageManagerService;Ljava/lang/String;ZZII)Z
+PLcom/android/server/pm/Settings;->setRuntimePermissionsFingerPrintLPr(Ljava/lang/String;I)V
PLcom/android/server/pm/Settings;->updateIntentFilterVerificationStatusLPw(Ljava/lang/String;II)Z
-HSPLcom/android/server/pm/Settings;->updatePackageSetting(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/SharedUserSetting;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/util/List;Lcom/android/server/pm/UserManagerService;[Ljava/lang/String;[J)V
-PLcom/android/server/pm/Settings;->wasPackageEverLaunchedLPr(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/Settings;->updatePackageSetting(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/SharedUserSetting;Ljava/io/File;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILcom/android/server/pm/UserManagerService;[Ljava/lang/String;[J)V
PLcom/android/server/pm/Settings;->writeAllDomainVerificationsLPr(Lorg/xmlpull/v1/XmlSerializer;I)V
-PLcom/android/server/pm/Settings;->writeAllRuntimePermissionsLPr()V
-PLcom/android/server/pm/Settings;->writeAllUsersPackageRestrictionsLPr()V
-PLcom/android/server/pm/Settings;->writeBlockUninstallPackagesLPr(Lorg/xmlpull/v1/XmlSerializer;I)V
-HPLcom/android/server/pm/Settings;->writeChildPackagesLPw(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/List;)V
-HPLcom/android/server/pm/Settings;->writeCrossProfileIntentFiltersLPr(Lorg/xmlpull/v1/XmlSerializer;I)V
-PLcom/android/server/pm/Settings;->writeDefaultAppsLPr(Lorg/xmlpull/v1/XmlSerializer;I)V
-HPLcom/android/server/pm/Settings;->writeDisabledSysPackageLPr(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/pm/PackageSetting;)V
-PLcom/android/server/pm/Settings;->writeDomainVerificationsLPr(Lorg/xmlpull/v1/XmlSerializer;Landroid/content/pm/IntentFilterVerificationInfo;)V
+HSPLcom/android/server/pm/Settings;->writeAllRuntimePermissionsLPr()V
+HSPLcom/android/server/pm/Settings;->writeAllUsersPackageRestrictionsLPr()V
+HSPLcom/android/server/pm/Settings;->writeBlockUninstallPackagesLPr(Lorg/xmlpull/v1/XmlSerializer;I)V
+HSPLcom/android/server/pm/Settings;->writeCrossProfileIntentFiltersLPr(Lorg/xmlpull/v1/XmlSerializer;I)V
+HSPLcom/android/server/pm/Settings;->writeDefaultAppsLPr(Lorg/xmlpull/v1/XmlSerializer;I)V
+HSPLcom/android/server/pm/Settings;->writeDisabledSysPackageLPr(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/pm/PackageSetting;)V
+HSPLcom/android/server/pm/Settings;->writeDomainVerificationsLPr(Lorg/xmlpull/v1/XmlSerializer;Landroid/content/pm/IntentFilterVerificationInfo;)V
HSPLcom/android/server/pm/Settings;->writeIntToFile(Ljava/io/File;I)V
HSPLcom/android/server/pm/Settings;->writeKernelMappingLPr()V
HSPLcom/android/server/pm/Settings;->writeKernelMappingLPr(Lcom/android/server/pm/PackageSetting;)V
HSPLcom/android/server/pm/Settings;->writeKernelMappingLPr(Ljava/lang/String;I[I)V
-HPLcom/android/server/pm/Settings;->writeKeySetAliasesLPr(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/pm/PackageKeySetData;)V
-HPLcom/android/server/pm/Settings;->writeLPr()V
-HPLcom/android/server/pm/Settings;->writePackageLPr(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/pm/PackageSetting;)V
-PLcom/android/server/pm/Settings;->writePackageListLPr()V
-PLcom/android/server/pm/Settings;->writePackageListLPr(I)V
-HPLcom/android/server/pm/Settings;->writePackageListLPrInternal(I)V
-HPLcom/android/server/pm/Settings;->writePackageRestrictionsLPr(I)V
-HPLcom/android/server/pm/Settings;->writePermissionsLPr(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/List;)V
-PLcom/android/server/pm/Settings;->writePersistentPreferredActivitiesLPr(Lorg/xmlpull/v1/XmlSerializer;I)V
-HPLcom/android/server/pm/Settings;->writePreferredActivitiesLPr(Lorg/xmlpull/v1/XmlSerializer;IZ)V
+HSPLcom/android/server/pm/Settings;->writeKeySetAliasesLPr(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/pm/PackageKeySetData;)V
+HSPLcom/android/server/pm/Settings;->writeLPr()V
+HSPLcom/android/server/pm/Settings;->writePackageLPr(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/pm/PackageSetting;)V
+HSPLcom/android/server/pm/Settings;->writePackageListLPr()V
+HSPLcom/android/server/pm/Settings;->writePackageListLPr(I)V
+HSPLcom/android/server/pm/Settings;->writePackageListLPrInternal(I)V
+HSPLcom/android/server/pm/Settings;->writePackageRestrictionsLPr(I)V
+HSPLcom/android/server/pm/Settings;->writePermissionsLPr(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/List;)V
+HSPLcom/android/server/pm/Settings;->writePersistentPreferredActivitiesLPr(Lorg/xmlpull/v1/XmlSerializer;I)V
+HSPLcom/android/server/pm/Settings;->writePreferredActivitiesLPr(Lorg/xmlpull/v1/XmlSerializer;IZ)V
PLcom/android/server/pm/Settings;->writeRuntimePermissionsForUserLPr(IZ)V
-HPLcom/android/server/pm/Settings;->writeSigningKeySetLPr(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/pm/PackageKeySetData;)V
-HPLcom/android/server/pm/Settings;->writeUpgradeKeySetsLPr(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/pm/PackageKeySetData;)V
+HSPLcom/android/server/pm/Settings;->writeSigningKeySetLPr(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/pm/PackageKeySetData;)V
+HSPLcom/android/server/pm/Settings;->writeUpgradeKeySetsLPr(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/pm/PackageKeySetData;)V
HSPLcom/android/server/pm/Settings;->writeUserRestrictionsLPw(Lcom/android/server/pm/PackageSetting;Lcom/android/server/pm/PackageSetting;)V
-HPLcom/android/server/pm/Settings;->writeUsesStaticLibLPw(Lorg/xmlpull/v1/XmlSerializer;[Ljava/lang/String;[J)V
+HSPLcom/android/server/pm/Settings;->writeUsesStaticLibLPw(Lorg/xmlpull/v1/XmlSerializer;[Ljava/lang/String;[J)V
PLcom/android/server/pm/ShareTargetInfo$TargetData;-><init>(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/ShareTargetInfo;-><init>([Lcom/android/server/pm/ShareTargetInfo$TargetData;Ljava/lang/String;[Ljava/lang/String;)V
+PLcom/android/server/pm/ShareTargetInfo;->loadFromXml(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/pm/ShareTargetInfo;
+PLcom/android/server/pm/ShareTargetInfo;->parseTargetData(Lorg/xmlpull/v1/XmlPullParser;)Lcom/android/server/pm/ShareTargetInfo$TargetData;
HPLcom/android/server/pm/ShareTargetInfo;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
HSPLcom/android/server/pm/SharedUserSetting;-><init>(Ljava/lang/String;II)V
HSPLcom/android/server/pm/SharedUserSetting;->addPackage(Lcom/android/server/pm/PackageSetting;)V
+PLcom/android/server/pm/SharedUserSetting;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
HSPLcom/android/server/pm/SharedUserSetting;->fixSeInfoLocked()V
HSPLcom/android/server/pm/SharedUserSetting;->getPackages()Ljava/util/List;
HSPLcom/android/server/pm/SharedUserSetting;->getPermissionsState()Lcom/android/server/pm/permission/PermissionsState;
HSPLcom/android/server/pm/SharedUserSetting;->isPrivileged()Z
-PLcom/android/server/pm/ShortcutBitmapSaver$PendingItem;-><init>(Landroid/content/pm/ShortcutInfo;[B)V
+PLcom/android/server/pm/SharedUserSetting;->toString()Ljava/lang/String;
+HPLcom/android/server/pm/ShortcutBitmapSaver$PendingItem;-><init>(Landroid/content/pm/ShortcutInfo;[B)V
PLcom/android/server/pm/ShortcutBitmapSaver$PendingItem;-><init>(Landroid/content/pm/ShortcutInfo;[BLcom/android/server/pm/ShortcutBitmapSaver$1;)V
-PLcom/android/server/pm/ShortcutBitmapSaver;-><init>(Lcom/android/server/pm/ShortcutService;)V
+HSPLcom/android/server/pm/ShortcutBitmapSaver;-><init>(Lcom/android/server/pm/ShortcutService;)V
+PLcom/android/server/pm/ShortcutBitmapSaver;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/pm/ShortcutBitmapSaver;->lambda$waitForAllSavesLocked$0(Ljava/util/concurrent/CountDownLatch;)V
PLcom/android/server/pm/ShortcutBitmapSaver;->processPendingItems()Z
+PLcom/android/server/pm/ShortcutBitmapSaver;->removeIcon(Landroid/content/pm/ShortcutInfo;)V
PLcom/android/server/pm/ShortcutBitmapSaver;->saveBitmapLocked(Landroid/content/pm/ShortcutInfo;ILandroid/graphics/Bitmap$CompressFormat;I)V
PLcom/android/server/pm/ShortcutBitmapSaver;->waitForAllSavesLocked()Z
-PLcom/android/server/pm/ShortcutDumpFiles;-><init>(Lcom/android/server/pm/ShortcutService;)V
+HSPLcom/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;->cleanUpPackage(Ljava/lang/String;I)Z
+PLcom/android/server/pm/ShortcutLauncher;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/pm/ShortcutService$DumpFilter;)V
PLcom/android/server/pm/ShortcutLauncher;->ensurePackageInfo()V
PLcom/android/server/pm/ShortcutLauncher;->getOwnerUserId()I
PLcom/android/server/pm/ShortcutLauncher;->getPinnedShortcutIds(Ljava/lang/String;I)Landroid/util/ArraySet;
PLcom/android/server/pm/ShortcutLauncher;->loadFromXml(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/pm/ShortcutUser;IZ)Lcom/android/server/pm/ShortcutLauncher;
PLcom/android/server/pm/ShortcutLauncher;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;Z)V
PLcom/android/server/pm/ShortcutNonPersistentUser;-><init>(Lcom/android/server/pm/ShortcutService;I)V
+PLcom/android/server/pm/ShortcutNonPersistentUser;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/pm/ShortcutService$DumpFilter;)V
+PLcom/android/server/pm/ShortcutNonPersistentUser;->getUserId()I
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/ShortcutPackage;-><init>(Lcom/android/server/pm/ShortcutUser;ILjava/lang/String;)V
+HPLcom/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;->addOrReplaceDynamicShortcut(Landroid/content/pm/ShortcutInfo;)V
-PLcom/android/server/pm/ShortcutPackage;->adjustRanks()V
+HPLcom/android/server/pm/ShortcutPackage;->adjustRanks()V
PLcom/android/server/pm/ShortcutPackage;->areAllActivitiesStillEnabled()Z
PLcom/android/server/pm/ShortcutPackage;->clearAllImplicitRanks()V
PLcom/android/server/pm/ShortcutPackage;->deleteAllDynamicShortcuts(Z)V
-PLcom/android/server/pm/ShortcutPackage;->deleteOrDisableWithId(Ljava/lang/String;ZZZI)Landroid/content/pm/ShortcutInfo;
-PLcom/android/server/pm/ShortcutPackage;->disableDynamicWithId(Ljava/lang/String;ZI)Z
-PLcom/android/server/pm/ShortcutPackage;->enforceShortcutCountsBeforeOperation(Ljava/util/List;I)V
+PLcom/android/server/pm/ShortcutPackage;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Lcom/android/server/pm/ShortcutService$DumpFilter;)V
+HPLcom/android/server/pm/ShortcutPackage;->enforceShortcutCountsBeforeOperation(Ljava/util/List;I)V
PLcom/android/server/pm/ShortcutPackage;->ensureImmutableShortcutsNotIncluded(Ljava/util/List;Z)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
+HPLcom/android/server/pm/ShortcutPackage;->ensureNotImmutable(Ljava/lang/String;Z)V
PLcom/android/server/pm/ShortcutPackage;->findAll(Ljava/util/List;Ljava/util/function/Predicate;I)V
-PLcom/android/server/pm/ShortcutPackage;->findAll(Ljava/util/List;Ljava/util/function/Predicate;ILjava/lang/String;IZ)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;->forceDeleteShortcutInner(Ljava/lang/String;)Landroid/content/pm/ShortcutInfo;
+HPLcom/android/server/pm/ShortcutPackage;->forceDeleteShortcutInner(Ljava/lang/String;)Landroid/content/pm/ShortcutInfo;
HPLcom/android/server/pm/ShortcutPackage;->forceReplaceShortcutInner(Landroid/content/pm/ShortcutInfo;)V
PLcom/android/server/pm/ShortcutPackage;->getApiCallCount(Z)I
HPLcom/android/server/pm/ShortcutPackage;->getFileName(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/pm/ShortcutPackage;->getMatchingShareTargets(Landroid/content/IntentFilter;)Ljava/util/List;
PLcom/android/server/pm/ShortcutPackage;->getOwnerUserId()I
PLcom/android/server/pm/ShortcutPackage;->getPackageResources()Landroid/content/res/Resources;
-PLcom/android/server/pm/ShortcutPackage;->getSharingShortcutCount()I
-PLcom/android/server/pm/ShortcutPackage;->getUsedBitmapFiles()Landroid/util/ArraySet;
-PLcom/android/server/pm/ShortcutPackage;->hasShareTargets()Z
-PLcom/android/server/pm/ShortcutPackage;->incrementCountForActivity(Landroid/util/ArrayMap;Landroid/content/ComponentName;I)V
+HPLcom/android/server/pm/ShortcutPackage;->getSharingShortcutCount()I
+HPLcom/android/server/pm/ShortcutPackage;->getUsedBitmapFiles()Landroid/util/ArraySet;
+HPLcom/android/server/pm/ShortcutPackage;->hasShareTargets()Z
+HPLcom/android/server/pm/ShortcutPackage;->incrementCountForActivity(Landroid/util/ArrayMap;Landroid/content/ComponentName;I)V
PLcom/android/server/pm/ShortcutPackage;->isShortcutExistsAndVisibleToPublisher(Ljava/lang/String;)Z
PLcom/android/server/pm/ShortcutPackage;->lambda$new$2(Landroid/content/pm/ShortcutInfo;Landroid/content/pm/ShortcutInfo;)I
-PLcom/android/server/pm/ShortcutPackage;->lambda$refreshPinnedFlags$0$ShortcutPackage(Lcom/android/server/pm/ShortcutLauncher;)V
PLcom/android/server/pm/ShortcutPackage;->loadFromXml(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutUser;Lorg/xmlpull/v1/XmlPullParser;Z)Lcom/android/server/pm/ShortcutPackage;
PLcom/android/server/pm/ShortcutPackage;->parseIntent(Lorg/xmlpull/v1/XmlPullParser;)Landroid/content/Intent;
PLcom/android/server/pm/ShortcutPackage;->parseShortcut(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;IZ)Landroid/content/pm/ShortcutInfo;
-PLcom/android/server/pm/ShortcutPackage;->publishManifestShortcuts(Ljava/util/List;)Z
+HPLcom/android/server/pm/ShortcutPackage;->publishManifestShortcuts(Ljava/util/List;)Z
PLcom/android/server/pm/ShortcutPackage;->pushOutExcessShortcuts()Z
-PLcom/android/server/pm/ShortcutPackage;->refreshPinnedFlags()V
PLcom/android/server/pm/ShortcutPackage;->removeOrphans()V
PLcom/android/server/pm/ShortcutPackage;->rescanPackageIfNeeded(ZZ)Z
PLcom/android/server/pm/ShortcutPackage;->resetRateLimiting()V
HPLcom/android/server/pm/ShortcutPackage;->saveShortcut(Lorg/xmlpull/v1/XmlSerializer;Landroid/content/pm/ShortcutInfo;ZZ)V
HPLcom/android/server/pm/ShortcutPackage;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;Z)V
-PLcom/android/server/pm/ShortcutPackage;->sortShortcutsToActivities()Landroid/util/ArrayMap;
+HPLcom/android/server/pm/ShortcutPackage;->sortShortcutsToActivities()Landroid/util/ArrayMap;
PLcom/android/server/pm/ShortcutPackage;->tryApiCall(Z)Z
PLcom/android/server/pm/ShortcutPackageInfo;-><init>(JJLjava/util/ArrayList;Z)V
+PLcom/android/server/pm/ShortcutPackageInfo;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/pm/ShortcutPackageInfo;->getLastUpdateTime()J
PLcom/android/server/pm/ShortcutPackageInfo;->getVersionCode()J
-PLcom/android/server/pm/ShortcutPackageInfo;->isBackupAllowed()Z
+HPLcom/android/server/pm/ShortcutPackageInfo;->isBackupAllowed()Z
HPLcom/android/server/pm/ShortcutPackageInfo;->isShadow()Z
PLcom/android/server/pm/ShortcutPackageInfo;->loadFromXml(Lorg/xmlpull/v1/XmlPullParser;Z)V
HPLcom/android/server/pm/ShortcutPackageInfo;->newEmpty()Lcom/android/server/pm/ShortcutPackageInfo;
PLcom/android/server/pm/ShortcutPackageInfo;->refreshSignature(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutPackageItem;)V
-PLcom/android/server/pm/ShortcutPackageInfo;->saveToXml(Lcom/android/server/pm/ShortcutService;Lorg/xmlpull/v1/XmlSerializer;Z)V
+HPLcom/android/server/pm/ShortcutPackageInfo;->saveToXml(Lcom/android/server/pm/ShortcutService;Lorg/xmlpull/v1/XmlSerializer;Z)V
PLcom/android/server/pm/ShortcutPackageInfo;->updateFromPackageInfo(Landroid/content/pm/PackageInfo;)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
+HPLcom/android/server/pm/ShortcutPackageItem;->attemptToRestoreIfNeededAndSave()V
HPLcom/android/server/pm/ShortcutPackageItem;->getPackageInfo()Lcom/android/server/pm/ShortcutPackageInfo;
HPLcom/android/server/pm/ShortcutPackageItem;->getPackageName()Ljava/lang/String;
HPLcom/android/server/pm/ShortcutPackageItem;->getPackageUserId()I
@@ -12860,149 +15419,220 @@ PLcom/android/server/pm/ShortcutParser;->parseShareTargetAttributes(Lcom/android
HPLcom/android/server/pm/ShortcutParser;->parseShareTargetData(Lcom/android/server/pm/ShortcutService;Landroid/util/AttributeSet;)Lcom/android/server/pm/ShareTargetInfo$TargetData;
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;
-PLcom/android/server/pm/ShortcutRequestPinProcessor;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/lang/Object;)V
-PLcom/android/server/pm/ShortcutService$1;-><init>()V
+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;
+HSPLcom/android/server/pm/ShortcutRequestPinProcessor;-><init>(Lcom/android/server/pm/ShortcutService;Ljava/lang/Object;)V
+PLcom/android/server/pm/ShortcutRequestPinProcessor;->getRequestPinConfirmationActivity(II)Landroid/util/Pair;
+HSPLcom/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;->test(Ljava/lang/Object;)Z
-PLcom/android/server/pm/ShortcutService$2;-><init>()V
+HSPLcom/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;-><init>(Lcom/android/server/pm/ShortcutService;)V
-PLcom/android/server/pm/ShortcutService$3;->lambda$onUidGone$1$ShortcutService$3(I)V
-PLcom/android/server/pm/ShortcutService$3;->lambda$onUidStateChanged$0$ShortcutService$3(II)V
-PLcom/android/server/pm/ShortcutService$3;->onUidGone(IZ)V
-HPLcom/android/server/pm/ShortcutService$3;->onUidStateChanged(IIJI)V
-PLcom/android/server/pm/ShortcutService$4;-><init>(Lcom/android/server/pm/ShortcutService;)V
-PLcom/android/server/pm/ShortcutService$5;-><init>(Lcom/android/server/pm/ShortcutService;)V
+HSPLcom/android/server/pm/ShortcutService$3;-><init>(Lcom/android/server/pm/ShortcutService;)V
+HSPLcom/android/server/pm/ShortcutService$3;->lambda$onUidGone$1$ShortcutService$3(I)V
+HSPLcom/android/server/pm/ShortcutService$3;->lambda$onUidStateChanged$0$ShortcutService$3(II)V
+HSPLcom/android/server/pm/ShortcutService$3;->onUidGone(IZ)V
+HSPLcom/android/server/pm/ShortcutService$3;->onUidStateChanged(IIJI)V
+HSPLcom/android/server/pm/ShortcutService$4;-><init>(Lcom/android/server/pm/ShortcutService;)V
+HSPLcom/android/server/pm/ShortcutService$5;-><init>(Lcom/android/server/pm/ShortcutService;)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$DumpFilter;->setDumpFiles(Z)V
+PLcom/android/server/pm/ShortcutService$DumpFilter;->setDumpUid(Z)V
+PLcom/android/server/pm/ShortcutService$DumpFilter;->shouldDumpCheckIn()Z
+PLcom/android/server/pm/ShortcutService$DumpFilter;->shouldDumpDetails()Z
+PLcom/android/server/pm/ShortcutService$DumpFilter;->shouldDumpFiles()Z
+PLcom/android/server/pm/ShortcutService$DumpFilter;->shouldDumpMain()Z
+PLcom/android/server/pm/ShortcutService$DumpFilter;->shouldDumpUid()Z
PLcom/android/server/pm/ShortcutService$FileOutputStreamWithPath;-><init>(Ljava/io/File;)V
PLcom/android/server/pm/ShortcutService$FileOutputStreamWithPath;->getFile()Ljava/io/File;
-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
+HSPLcom/android/server/pm/ShortcutService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/pm/ShortcutService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/pm/ShortcutService$Lifecycle;->onStart()V
PLcom/android/server/pm/ShortcutService$Lifecycle;->onUnlockUser(I)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$1;)V
-PLcom/android/server/pm/ShortcutService$LocalService;->addListener(Landroid/content/pm/ShortcutServiceInternal$ShortcutChangeListener;)V
+HSPLcom/android/server/pm/ShortcutService$LocalService;-><init>(Lcom/android/server/pm/ShortcutService;)V
+HSPLcom/android/server/pm/ShortcutService$LocalService;-><init>(Lcom/android/server/pm/ShortcutService;Lcom/android/server/pm/ShortcutService$1;)V
+HSPLcom/android/server/pm/ShortcutService$LocalService;->addListener(Landroid/content/pm/ShortcutServiceInternal$ShortcutChangeListener;)V
PLcom/android/server/pm/ShortcutService$LocalService;->getShortcutIconFd(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
PLcom/android/server/pm/ShortcutService$LocalService;->getShortcuts(ILjava/lang/String;JLjava/lang/String;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;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$getShortcutsInnerLocked$1(JLandroid/util/ArraySet;Landroid/content/ComponentName;ZZZZLandroid/content/pm/ShortcutInfo;)Z
+HPLcom/android/server/pm/ShortcutService$LocalService;->hasShortcutHostPermission(ILjava/lang/String;II)Z
+PLcom/android/server/pm/ShortcutService$LocalService;->lambda$getShortcuts$0$ShortcutService$LocalService(ILjava/lang/String;Ljava/util/List;JLandroid/content/ComponentName;IILjava/util/ArrayList;IIILcom/android/server/pm/ShortcutPackage;)V
+HPLcom/android/server/pm/ShortcutService$LocalService;->lambda$getShortcutsInnerLocked$1(JLandroid/util/ArraySet;Landroid/content/ComponentName;ZZZZLandroid/content/pm/ShortcutInfo;)Z
PLcom/android/server/pm/ShortcutService$LocalService;->setShortcutHostPackage(Ljava/lang/String;Ljava/lang/String;I)V
-PLcom/android/server/pm/ShortcutService;-><clinit>()V
-PLcom/android/server/pm/ShortcutService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/pm/ShortcutService;-><init>(Landroid/content/Context;Landroid/os/Looper;Z)V
-PLcom/android/server/pm/ShortcutService;->access$200(Lcom/android/server/pm/ShortcutService;)Ljava/lang/Object;
-PLcom/android/server/pm/ShortcutService;->access$300(Lcom/android/server/pm/ShortcutService;Ljava/util/List;)Ljava/util/List;
-PLcom/android/server/pm/ShortcutService;->access$400(Lcom/android/server/pm/ShortcutService;)Ljava/util/ArrayList;
-PLcom/android/server/pm/ShortcutService;->canSeeAnyPinnedShortcut(Ljava/lang/String;III)Z
+HSPLcom/android/server/pm/ShortcutService;-><clinit>()V
+HSPLcom/android/server/pm/ShortcutService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/pm/ShortcutService;-><init>(Landroid/content/Context;Landroid/os/Looper;Z)V
+PLcom/android/server/pm/ShortcutService;->access$000(Landroid/content/pm/PackageInfo;)Z
+HSPLcom/android/server/pm/ShortcutService;->access$200(Lcom/android/server/pm/ShortcutService;)Ljava/lang/Object;
+HPLcom/android/server/pm/ShortcutService;->access$300(Lcom/android/server/pm/ShortcutService;Ljava/util/List;)Ljava/util/List;
+HSPLcom/android/server/pm/ShortcutService;->access$400(Lcom/android/server/pm/ShortcutService;)Ljava/util/ArrayList;
+PLcom/android/server/pm/ShortcutService;->addDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
+HPLcom/android/server/pm/ShortcutService;->canSeeAnyPinnedShortcut(Ljava/lang/String;III)Z
PLcom/android/server/pm/ShortcutService;->checkPackageChanges(I)V
-PLcom/android/server/pm/ShortcutService;->cleanUpPackageForAllLoadedUsers(Ljava/lang/String;IZ)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;->cleanupDanglingBitmapFilesLocked(ILcom/android/server/pm/ShortcutUser;Ljava/lang/String;Ljava/io/File;)V
+HPLcom/android/server/pm/ShortcutService;->cleanupDanglingBitmapDirectoriesLocked(I)V
+HPLcom/android/server/pm/ShortcutService;->cleanupDanglingBitmapFilesLocked(ILcom/android/server/pm/ShortcutUser;Ljava/lang/String;Ljava/io/File;)V
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;->dumpDumpFiles(Ljava/io/PrintWriter;)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;->dumpUid(Ljava/io/PrintWriter;)V
PLcom/android/server/pm/ShortcutService;->enableShortcuts(Ljava/lang/String;Ljava/util/List;I)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;->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;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
PLcom/android/server/pm/ShortcutService;->getBackupPayload(I)[B
-PLcom/android/server/pm/ShortcutService;->getBaseStateFile()Landroid/util/AtomicFile;
+HSPLcom/android/server/pm/ShortcutService;->getBaseStateFile()Landroid/util/AtomicFile;
PLcom/android/server/pm/ShortcutService;->getDefaultLauncher(I)Landroid/content/ComponentName;
PLcom/android/server/pm/ShortcutService;->getDumpPath()Ljava/io/File;
PLcom/android/server/pm/ShortcutService;->getDynamicShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/pm/ShortcutService;->getIconMaxDimensions(Ljava/lang/String;I)I
PLcom/android/server/pm/ShortcutService;->getInstalledPackages(I)Ljava/util/List;
-PLcom/android/server/pm/ShortcutService;->getLastResetTimeLocked()J
+HSPLcom/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;->getManifestShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/pm/ShortcutService;->getMaxActivityShortcuts()I
+PLcom/android/server/pm/ShortcutService;->getMaxShortcutCountPerActivity(Ljava/lang/String;I)I
+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;->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;->getPinnedShortcuts(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/ShortcutService;->getShortcutsWithQueryLocked(Ljava/lang/String;IILjava/util/function/Predicate;)Landroid/content/pm/ParceledListSlice;
-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;->getShareTargets(Ljava/lang/String;Landroid/content/IntentFilter;I)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/pm/ShortcutService;->getShortcutsWithQueryLocked(Ljava/lang/String;IILjava/util/function/Predicate;)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/pm/ShortcutService;->getStatStartTime()J
+PLcom/android/server/pm/ShortcutService;->getUserBitmapFilePath(I)Ljava/io/File;
+PLcom/android/server/pm/ShortcutService;->getUserFile(I)Ljava/io/File;
+HPLcom/android/server/pm/ShortcutService;->getUserShortcutsLocked(I)Lcom/android/server/pm/ShortcutUser;
+HSPLcom/android/server/pm/ShortcutService;->handleOnUidStateChanged(II)V
PLcom/android/server/pm/ShortcutService;->handlePackageAdded(Ljava/lang/String;I)V
PLcom/android/server/pm/ShortcutService;->handlePackageChanged(Ljava/lang/String;I)V
PLcom/android/server/pm/ShortcutService;->handlePackageUpdateFinished(Ljava/lang/String;I)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;->hasShortcutHostPermission(Ljava/lang/String;III)Z
PLcom/android/server/pm/ShortcutService;->hasShortcutHostPermissionInner(Ljava/lang/String;I)Z
-PLcom/android/server/pm/ShortcutService;->initialize()V
+HSPLcom/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;->injectCurrentTimeMillis()J
-PLcom/android/server/pm/ShortcutService;->injectDipToPixel(I)I
-PLcom/android/server/pm/ShortcutService;->injectElapsedRealtime()J
+PLcom/android/server/pm/ShortcutService;->injectBinderCallingUid()I
+PLcom/android/server/pm/ShortcutService;->injectBuildFingerprint()Ljava/lang/String;
+PLcom/android/server/pm/ShortcutService;->injectClearCallingIdentity()J
+HSPLcom/android/server/pm/ShortcutService;->injectCurrentTimeMillis()J
+HSPLcom/android/server/pm/ShortcutService;->injectDipToPixel(I)I
+HSPLcom/android/server/pm/ShortcutService;->injectElapsedRealtime()J
PLcom/android/server/pm/ShortcutService;->injectGetActivityInfoWithMetadataWithUninstalled(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;
PLcom/android/server/pm/ShortcutService;->injectGetDefaultMainActivity(Ljava/lang/String;I)Landroid/content/ComponentName;
+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;->injectGetPackagesWithUninstalled(I)Ljava/util/List;
+PLcom/android/server/pm/ShortcutService;->injectGetPinConfirmationActivity(Ljava/lang/String;II)Landroid/content/ComponentName;
PLcom/android/server/pm/ShortcutService;->injectGetResourcesForApplicationAsUser(Ljava/lang/String;I)Landroid/content/res/Resources;
+PLcom/android/server/pm/ShortcutService;->injectHasAccessShortcutsPermission(II)Z
PLcom/android/server/pm/ShortcutService;->injectIsActivityEnabledAndExported(Landroid/content/ComponentName;I)Z
-PLcom/android/server/pm/ShortcutService;->injectIsLowRamDevice()Z
+HSPLcom/android/server/pm/ShortcutService;->injectIsLowRamDevice()Z
PLcom/android/server/pm/ShortcutService;->injectIsMainActivity(Landroid/content/ComponentName;I)Z
PLcom/android/server/pm/ShortcutService;->injectIsSafeModeEnabled()Z
PLcom/android/server/pm/ShortcutService;->injectPackageInfoWithUninstalled(Ljava/lang/String;IZ)Landroid/content/pm/PackageInfo;
-PLcom/android/server/pm/ShortcutService;->injectPostToHandler(Ljava/lang/Runnable;)V
-PLcom/android/server/pm/ShortcutService;->injectRegisterUidObserver(Landroid/app/IUidObserver;I)V
-PLcom/android/server/pm/ShortcutService;->injectShortcutManagerConstants()Ljava/lang/String;
-PLcom/android/server/pm/ShortcutService;->injectSystemDataPath()Ljava/io/File;
+HSPLcom/android/server/pm/ShortcutService;->injectPostToHandler(Ljava/lang/Runnable;)V
+HSPLcom/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
+HSPLcom/android/server/pm/ShortcutService;->injectShortcutManagerConstants()Ljava/lang/String;
+PLcom/android/server/pm/ShortcutService;->injectShouldPerformVerification()Z
+HSPLcom/android/server/pm/ShortcutService;->injectSystemDataPath()Ljava/io/File;
+PLcom/android/server/pm/ShortcutService;->injectUserDataPath(I)Ljava/io/File;
PLcom/android/server/pm/ShortcutService;->injectValidateIconResPackage(Landroid/content/pm/ShortcutInfo;Landroid/graphics/drawable/Icon;)V
PLcom/android/server/pm/ShortcutService;->injectXmlMetaData(Landroid/content/pm/ActivityInfo;Ljava/lang/String;)Landroid/content/res/XmlResourceParser;
+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;->isProcessStateForeground(I)Z
+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
+HSPLcom/android/server/pm/ShortcutService;->isProcessStateForeground(I)Z
+PLcom/android/server/pm/ShortcutService;->isRequestPinItemSupported(II)Z
HPLcom/android/server/pm/ShortcutService;->isUserUnlockedL(I)Z
PLcom/android/server/pm/ShortcutService;->lambda$checkPackageChanges$7$ShortcutService(Ljava/util/ArrayList;Lcom/android/server/pm/ShortcutPackageItem;)V
PLcom/android/server/pm/ShortcutService;->lambda$handleUnlockUser$0$ShortcutService(JI)V
PLcom/android/server/pm/ShortcutService;->lambda$notifyListeners$1$ShortcutService(ILjava/lang/String;)V
-PLcom/android/server/pm/ShortcutService;->loadBaseStateLocked()V
-PLcom/android/server/pm/ShortcutService;->loadConfigurationLocked()V
+PLcom/android/server/pm/ShortcutService;->lambda$rescanUpdatedPackagesLocked$8$ShortcutService(Lcom/android/server/pm/ShortcutUser;ILandroid/content/pm/ApplicationInfo;)V
+HSPLcom/android/server/pm/ShortcutService;->loadBaseStateLocked()V
+HSPLcom/android/server/pm/ShortcutService;->loadConfigurationLocked()V
PLcom/android/server/pm/ShortcutService;->loadUserInternal(ILjava/io/InputStream;Z)Lcom/android/server/pm/ShortcutUser;
PLcom/android/server/pm/ShortcutService;->loadUserLocked(I)Lcom/android/server/pm/ShortcutUser;
-PLcom/android/server/pm/ShortcutService;->onBootPhase(I)V
+PLcom/android/server/pm/ShortcutService;->logDurationStat(IJ)V
+PLcom/android/server/pm/ShortcutService;->notifyListeners(Ljava/lang/String;I)V
+HSPLcom/android/server/pm/ShortcutService;->onBootPhase(I)V
PLcom/android/server/pm/ShortcutService;->openIconFileForWrite(ILandroid/content/pm/ShortcutInfo;)Lcom/android/server/pm/ShortcutService$FileOutputStreamWithPath;
+PLcom/android/server/pm/ShortcutService;->packageShortcutsChanged(Ljava/lang/String;I)V
+PLcom/android/server/pm/ShortcutService;->parseBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Z
+PLcom/android/server/pm/ShortcutService;->parseBooleanAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Z)Z
PLcom/android/server/pm/ShortcutService;->parseComponentNameAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/content/ComponentName;
+PLcom/android/server/pm/ShortcutService;->parseDumpArgs([Ljava/lang/String;)Lcom/android/server/pm/ShortcutService$DumpFilter;
PLcom/android/server/pm/ShortcutService;->parseIntAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)I
PLcom/android/server/pm/ShortcutService;->parseIntAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
PLcom/android/server/pm/ShortcutService;->parseIntentAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/content/Intent;
PLcom/android/server/pm/ShortcutService;->parseIntentAttributeNoDefault(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Landroid/content/Intent;
-PLcom/android/server/pm/ShortcutService;->parseLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)J
-PLcom/android/server/pm/ShortcutService;->parseLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;J)J
-PLcom/android/server/pm/ShortcutService;->parseStringAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/pm/ShortcutService;->parseLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)J
+HSPLcom/android/server/pm/ShortcutService;->parseLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;J)J
+HSPLcom/android/server/pm/ShortcutService;->parseStringAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/String;
PLcom/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;->removeIconLocked(Landroid/content/pm/ShortcutInfo;)V
+PLcom/android/server/pm/ShortcutService;->reportShortcutUsed(Ljava/lang/String;Ljava/lang/String;I)V
PLcom/android/server/pm/ShortcutService;->rescanUpdatedPackagesLocked(IJ)V
+PLcom/android/server/pm/ShortcutService;->saveBaseStateLocked()V
PLcom/android/server/pm/ShortcutService;->saveDirtyInfo()V
PLcom/android/server/pm/ShortcutService;->saveIconAndFixUpShortcutLocked(Landroid/content/pm/ShortcutInfo;)V
PLcom/android/server/pm/ShortcutService;->saveUserInternalLocked(ILjava/io/OutputStream;Z)V
PLcom/android/server/pm/ShortcutService;->saveUserLocked(I)V
-PLcom/android/server/pm/ShortcutService;->scheduleSaveInner(I)V
-PLcom/android/server/pm/ShortcutService;->setDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
-PLcom/android/server/pm/ShortcutService;->setReturnedByServer(Ljava/util/List;)Ljava/util/List;
+HSPLcom/android/server/pm/ShortcutService;->scheduleSaveBaseState()V
+HSPLcom/android/server/pm/ShortcutService;->scheduleSaveInner(I)V
+PLcom/android/server/pm/ShortcutService;->scheduleSaveUser(I)V
+HPLcom/android/server/pm/ShortcutService;->setDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
+HPLcom/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;->shrinkBitmap(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
-PLcom/android/server/pm/ShortcutService;->throwIfUserLockedL(I)V
-PLcom/android/server/pm/ShortcutService;->updateConfigurationLocked(Ljava/lang/String;)Z
+HPLcom/android/server/pm/ShortcutService;->throwIfUserLockedL(I)V
+HSPLcom/android/server/pm/ShortcutService;->updateConfigurationLocked(Ljava/lang/String;)Z
PLcom/android/server/pm/ShortcutService;->updateShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
-PLcom/android/server/pm/ShortcutService;->updateTimesLocked()V
+HSPLcom/android/server/pm/ShortcutService;->updateTimesLocked()V
PLcom/android/server/pm/ShortcutService;->verifyCaller(Ljava/lang/String;I)V
PLcom/android/server/pm/ShortcutService;->verifyShortcutInfoPackage(Ljava/lang/String;Landroid/content/pm/ShortcutInfo;)V
+PLcom/android/server/pm/ShortcutService;->verifyStates()V
+PLcom/android/server/pm/ShortcutService;->writeAttr(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;J)V
+PLcom/android/server/pm/ShortcutService;->writeAttr(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Landroid/content/ComponentName;)V
+PLcom/android/server/pm/ShortcutService;->writeAttr(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Landroid/content/Intent;)V
HPLcom/android/server/pm/ShortcutService;->writeAttr(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Ljava/lang/CharSequence;)V
+PLcom/android/server/pm/ShortcutService;->writeAttr(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Z)V
+PLcom/android/server/pm/ShortcutService;->writeTagExtra(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Landroid/os/PersistableBundle;)V
+PLcom/android/server/pm/ShortcutService;->writeTagValue(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;J)V
+PLcom/android/server/pm/ShortcutService;->writeTagValue(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Landroid/content/ComponentName;)V
+PLcom/android/server/pm/ShortcutService;->writeTagValue(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Ljava/lang/String;)V
HPLcom/android/server/pm/ShortcutUser$PackageWithUser;-><init>(ILjava/lang/String;)V
-PLcom/android/server/pm/ShortcutUser$PackageWithUser;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/pm/ShortcutUser$PackageWithUser;->hashCode()I
+HPLcom/android/server/pm/ShortcutUser$PackageWithUser;->equals(Ljava/lang/Object;)Z
+HPLcom/android/server/pm/ShortcutUser$PackageWithUser;->hashCode()I
HPLcom/android/server/pm/ShortcutUser$PackageWithUser;->of(ILjava/lang/String;)Lcom/android/server/pm/ShortcutUser$PackageWithUser;
PLcom/android/server/pm/ShortcutUser;-><init>(Lcom/android/server/pm/ShortcutService;I)V
PLcom/android/server/pm/ShortcutUser;->addLauncher(Lcom/android/server/pm/ShortcutLauncher;)V
PLcom/android/server/pm/ShortcutUser;->attemptToRestoreIfNeededAndSave(Lcom/android/server/pm/ShortcutService;Ljava/lang/String;I)V
PLcom/android/server/pm/ShortcutUser;->clearLauncher()V
PLcom/android/server/pm/ShortcutUser;->detectLocaleChange()V
+PLcom/android/server/pm/ShortcutUser;->dump(Ljava/io/PrintWriter;Ljava/lang/String;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
HPLcom/android/server/pm/ShortcutUser;->forAllPackages(Ljava/util/function/Consumer;)V
@@ -13010,68 +15640,68 @@ PLcom/android/server/pm/ShortcutUser;->forPackageItem(Ljava/lang/String;ILjava/u
PLcom/android/server/pm/ShortcutUser;->getCachedLauncher()Landroid/content/ComponentName;
PLcom/android/server/pm/ShortcutUser;->getLastAppScanOsFingerprint()Ljava/lang/String;
PLcom/android/server/pm/ShortcutUser;->getLastAppScanTime()J
-PLcom/android/server/pm/ShortcutUser;->getLauncherShortcuts(Ljava/lang/String;I)Lcom/android/server/pm/ShortcutLauncher;
+HPLcom/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;
HPLcom/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;->hasPackage(Ljava/lang/String;)Z
+HPLcom/android/server/pm/ShortcutUser;->hasPackage(Ljava/lang/String;)Z
PLcom/android/server/pm/ShortcutUser;->lambda$attemptToRestoreIfNeededAndSave$2(Lcom/android/server/pm/ShortcutPackageItem;)V
HPLcom/android/server/pm/ShortcutUser;->lambda$forPackageItem$0(ILjava/lang/String;Ljava/util/function/Consumer;Lcom/android/server/pm/ShortcutPackageItem;)V
PLcom/android/server/pm/ShortcutUser;->loadFromXml(Lcom/android/server/pm/ShortcutService;Lorg/xmlpull/v1/XmlPullParser;IZ)Lcom/android/server/pm/ShortcutUser;
-PLcom/android/server/pm/ShortcutUser;->logSharingShortcutStats(Lcom/android/internal/logging/MetricsLogger;)V
+HPLcom/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;->removeLauncher(ILjava/lang/String;)Lcom/android/server/pm/ShortcutLauncher;
-PLcom/android/server/pm/ShortcutUser;->removePackage(Ljava/lang/String;)Lcom/android/server/pm/ShortcutPackage;
PLcom/android/server/pm/ShortcutUser;->rescanPackageIfNeeded(Ljava/lang/String;Z)V
HPLcom/android/server/pm/ShortcutUser;->saveShortcutPackageItem(Lorg/xmlpull/v1/XmlSerializer;Lcom/android/server/pm/ShortcutPackageItem;Z)V
-PLcom/android/server/pm/ShortcutUser;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;Z)V
+HPLcom/android/server/pm/ShortcutUser;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;Z)V
PLcom/android/server/pm/ShortcutUser;->setLastAppScanOsFingerprint(Ljava/lang/String;)V
PLcom/android/server/pm/ShortcutUser;->setLastAppScanTime(J)V
PLcom/android/server/pm/ShortcutUser;->setLauncher(Landroid/content/ComponentName;)V
HPLcom/android/server/pm/ShortcutUser;->setLauncher(Landroid/content/ComponentName;Z)V
-PLcom/android/server/pm/StagingManager$PreRebootVerificationHandler;-><init>(Lcom/android/server/pm/StagingManager;Landroid/os/Looper;)V
-PLcom/android/server/pm/StagingManager;-><init>(Lcom/android/server/pm/PackageInstallerService;Lcom/android/server/pm/ApexManager;Landroid/content/Context;)V
+HSPLcom/android/server/pm/StagingManager$PreRebootVerificationHandler;-><init>(Lcom/android/server/pm/StagingManager;Landroid/os/Looper;)V
+HSPLcom/android/server/pm/StagingManager;-><init>(Lcom/android/server/pm/PackageInstallerService;Lcom/android/server/pm/ApexManager;Landroid/content/Context;)V
PLcom/android/server/pm/StagingManager;->getSessions()Landroid/content/pm/ParceledListSlice;
HSPLcom/android/server/pm/UserDataPreparer;-><init>(Lcom/android/server/pm/Installer;Ljava/lang/Object;Landroid/content/Context;Z)V
-PLcom/android/server/pm/UserDataPreparer;->enforceSerialNumber(Ljava/io/File;I)V
+HSPLcom/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;->getDataSystemDeDirectory(I)Ljava/io/File;
+PLcom/android/server/pm/UserDataPreparer;->getDataUserCeDirectory(Ljava/lang/String;I)Ljava/io/File;
PLcom/android/server/pm/UserDataPreparer;->getDataUserDeDirectory(Ljava/lang/String;I)Ljava/io/File;
-PLcom/android/server/pm/UserDataPreparer;->getSerialNumber(Ljava/io/File;)I
-PLcom/android/server/pm/UserDataPreparer;->isFileEncryptedEmulatedOnly()Z
+HSPLcom/android/server/pm/UserDataPreparer;->getSerialNumber(Ljava/io/File;)I
+HSPLcom/android/server/pm/UserDataPreparer;->isFileEncryptedEmulatedOnly()Z
PLcom/android/server/pm/UserDataPreparer;->prepareUserData(III)V
PLcom/android/server/pm/UserDataPreparer;->prepareUserDataLI(Ljava/lang/String;IIIZ)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
-PLcom/android/server/pm/UserDataPreparer;->setSerialNumber(Ljava/io/File;I)V
+HSPLcom/android/server/pm/UserDataPreparer;->reconcileUsers(Ljava/lang/String;Ljava/util/List;)V
+HSPLcom/android/server/pm/UserDataPreparer;->reconcileUsers(Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
HSPLcom/android/server/pm/UserManagerService$1;-><init>(Lcom/android/server/pm/UserManagerService;)V
-PLcom/android/server/pm/UserManagerService$2;-><init>(Lcom/android/server/pm/UserManagerService;Landroid/os/Bundle;I)V
+HSPLcom/android/server/pm/UserManagerService$2;-><init>(Lcom/android/server/pm/UserManagerService;Landroid/os/Bundle;I)V
PLcom/android/server/pm/UserManagerService$2;->run()V
-PLcom/android/server/pm/UserManagerService$3;-><init>(Lcom/android/server/pm/UserManagerService;ILandroid/os/Bundle;Landroid/os/Bundle;)V
+HSPLcom/android/server/pm/UserManagerService$3;-><init>(Lcom/android/server/pm/UserManagerService;ILandroid/os/Bundle;Landroid/os/Bundle;)V
PLcom/android/server/pm/UserManagerService$3;->run()V
-PLcom/android/server/pm/UserManagerService$LifeCycle;-><init>(Landroid/content/Context;)V
-PLcom/android/server/pm/UserManagerService$LifeCycle;->onBootPhase(I)V
-PLcom/android/server/pm/UserManagerService$LifeCycle;->onStart()V
+HSPLcom/android/server/pm/UserManagerService$LifeCycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/pm/UserManagerService$LifeCycle;->onBootPhase(I)V
+HSPLcom/android/server/pm/UserManagerService$LifeCycle;->onStart()V
PLcom/android/server/pm/UserManagerService$LifeCycle;->onStartUser(I)V
PLcom/android/server/pm/UserManagerService$LifeCycle;->onUnlockUser(I)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$1;)V
-PLcom/android/server/pm/UserManagerService$LocalService;->addUserRestrictionsListener(Landroid/os/UserManagerInternal$UserRestrictionsListener;)V
+HSPLcom/android/server/pm/UserManagerService$LocalService;->addUserRestrictionsListener(Landroid/os/UserManagerInternal$UserRestrictionsListener;)V
HSPLcom/android/server/pm/UserManagerService$LocalService;->exists(I)Z
-PLcom/android/server/pm/UserManagerService$LocalService;->getUserIds()[I
-PLcom/android/server/pm/UserManagerService$LocalService;->getUserInfo(I)Landroid/content/pm/UserInfo;
-PLcom/android/server/pm/UserManagerService$LocalService;->getUserInfos()[Landroid/content/pm/UserInfo;
-PLcom/android/server/pm/UserManagerService$LocalService;->getUserRestriction(ILjava/lang/String;)Z
-PLcom/android/server/pm/UserManagerService$LocalService;->hasUserRestriction(Ljava/lang/String;I)Z
+PLcom/android/server/pm/UserManagerService$LocalService;->getProfileParentId(I)I
+HSPLcom/android/server/pm/UserManagerService$LocalService;->getUserIds()[I
+HSPLcom/android/server/pm/UserManagerService$LocalService;->getUserInfo(I)Landroid/content/pm/UserInfo;
+HSPLcom/android/server/pm/UserManagerService$LocalService;->getUserInfos()[Landroid/content/pm/UserInfo;
+HSPLcom/android/server/pm/UserManagerService$LocalService;->getUserRestriction(ILjava/lang/String;)Z
+HSPLcom/android/server/pm/UserManagerService$LocalService;->hasUserRestriction(Ljava/lang/String;I)Z
PLcom/android/server/pm/UserManagerService$LocalService;->isDeviceManaged()Z
-PLcom/android/server/pm/UserManagerService$LocalService;->isProfileAccessible(IILjava/lang/String;Z)Z
+HPLcom/android/server/pm/UserManagerService$LocalService;->isProfileAccessible(IILjava/lang/String;Z)Z
+PLcom/android/server/pm/UserManagerService$LocalService;->isUserInitialized(I)Z
PLcom/android/server/pm/UserManagerService$LocalService;->isUserManaged(I)Z
-PLcom/android/server/pm/UserManagerService$LocalService;->isUserRunning(I)Z
-PLcom/android/server/pm/UserManagerService$LocalService;->isUserUnlocked(I)Z
-HPLcom/android/server/pm/UserManagerService$LocalService;->isUserUnlockingOrUnlocked(I)Z
-PLcom/android/server/pm/UserManagerService$LocalService;->setDeviceManaged(Z)V
-PLcom/android/server/pm/UserManagerService$LocalService;->setDevicePolicyUserRestrictions(ILandroid/os/Bundle;I)V
-PLcom/android/server/pm/UserManagerService$LocalService;->setUserManaged(IZ)V
+HSPLcom/android/server/pm/UserManagerService$LocalService;->isUserRunning(I)Z
+HSPLcom/android/server/pm/UserManagerService$LocalService;->isUserUnlocked(I)Z
+HSPLcom/android/server/pm/UserManagerService$LocalService;->isUserUnlockingOrUnlocked(I)Z
+HSPLcom/android/server/pm/UserManagerService$LocalService;->setDeviceManaged(Z)V
+HSPLcom/android/server/pm/UserManagerService$LocalService;->setDevicePolicyUserRestrictions(ILandroid/os/Bundle;I)V
+HSPLcom/android/server/pm/UserManagerService$LocalService;->setUserManaged(IZ)V
PLcom/android/server/pm/UserManagerService$LocalService;->setUserState(II)V
HSPLcom/android/server/pm/UserManagerService$MainHandler;-><init>(Lcom/android/server/pm/UserManagerService;)V
PLcom/android/server/pm/UserManagerService$MainHandler;->handleMessage(Landroid/os/Message;)V
@@ -13085,46 +15715,46 @@ PLcom/android/server/pm/UserManagerService;->access$100(Lcom/android/server/pm/U
PLcom/android/server/pm/UserManagerService;->access$1100(Lcom/android/server/pm/UserManagerService;)Ljava/lang/Object;
PLcom/android/server/pm/UserManagerService;->access$1200(Lcom/android/server/pm/UserManagerService;I)Lcom/android/server/pm/UserManagerService$UserData;
PLcom/android/server/pm/UserManagerService;->access$1300(Lcom/android/server/pm/UserManagerService;Lcom/android/server/pm/UserManagerService$UserData;)V
-PLcom/android/server/pm/UserManagerService;->access$1400(Lcom/android/server/pm/UserManagerService;ILandroid/os/Bundle;I)V
+HSPLcom/android/server/pm/UserManagerService;->access$1400(Lcom/android/server/pm/UserManagerService;ILandroid/os/Bundle;I)V
PLcom/android/server/pm/UserManagerService;->access$1800(Lcom/android/server/pm/UserManagerService;)Z
-PLcom/android/server/pm/UserManagerService;->access$1802(Lcom/android/server/pm/UserManagerService;Z)Z
-PLcom/android/server/pm/UserManagerService;->access$1900(Lcom/android/server/pm/UserManagerService;)Landroid/util/SparseBooleanArray;
-PLcom/android/server/pm/UserManagerService;->access$200(Lcom/android/server/pm/UserManagerService;)Ljava/lang/Object;
-HPLcom/android/server/pm/UserManagerService;->access$2800(Lcom/android/server/pm/UserManagerService;)Landroid/util/SparseIntArray;
+HSPLcom/android/server/pm/UserManagerService;->access$1802(Lcom/android/server/pm/UserManagerService;Z)Z
+HSPLcom/android/server/pm/UserManagerService;->access$1900(Lcom/android/server/pm/UserManagerService;)Landroid/util/SparseBooleanArray;
+HSPLcom/android/server/pm/UserManagerService;->access$200(Lcom/android/server/pm/UserManagerService;)Ljava/lang/Object;
+PLcom/android/server/pm/UserManagerService;->access$2500(Lcom/android/server/pm/UserManagerService;I)Landroid/content/pm/UserInfo;
+HSPLcom/android/server/pm/UserManagerService;->access$2800(Lcom/android/server/pm/UserManagerService;)Landroid/util/SparseIntArray;
HSPLcom/android/server/pm/UserManagerService;->access$2900(Lcom/android/server/pm/UserManagerService;I)Landroid/content/pm/UserInfo;
PLcom/android/server/pm/UserManagerService;->access$300(Lcom/android/server/pm/UserManagerService;I)Lcom/android/server/pm/UserManagerService$UserData;
-PLcom/android/server/pm/UserManagerService;->access$3100(Lcom/android/server/pm/UserManagerService;I)Landroid/os/Bundle;
-PLcom/android/server/pm/UserManagerService;->access$3200(Lcom/android/server/pm/UserManagerService;)Landroid/util/SparseArray;
+HSPLcom/android/server/pm/UserManagerService;->access$3100(Lcom/android/server/pm/UserManagerService;I)Landroid/os/Bundle;
+HSPLcom/android/server/pm/UserManagerService;->access$3200(Lcom/android/server/pm/UserManagerService;)Landroid/util/SparseArray;
PLcom/android/server/pm/UserManagerService;->access$500()Landroid/os/IBinder;
PLcom/android/server/pm/UserManagerService;->access$600(Lcom/android/server/pm/UserManagerService;)Lcom/android/internal/app/IAppOpsService;
-PLcom/android/server/pm/UserManagerService;->access$700(Lcom/android/server/pm/UserManagerService;)Ljava/util/ArrayList;
-PLcom/android/server/pm/UserManagerService;->addUserRestrictionsListener(Landroid/os/IUserRestrictionsListener;)V
-PLcom/android/server/pm/UserManagerService;->applyUserRestrictionsLR(I)V
+HSPLcom/android/server/pm/UserManagerService;->access$700(Lcom/android/server/pm/UserManagerService;)Ljava/util/ArrayList;
+HSPLcom/android/server/pm/UserManagerService;->addUserRestrictionsListener(Landroid/os/IUserRestrictionsListener;)V
+HSPLcom/android/server/pm/UserManagerService;->applyUserRestrictionsLR(I)V
HSPLcom/android/server/pm/UserManagerService;->checkManageOrCreateUsersPermission(Ljava/lang/String;)V
-HPLcom/android/server/pm/UserManagerService;->checkManageOrInteractPermIfCallerInOtherProfileGroup(ILjava/lang/String;)V
+HSPLcom/android/server/pm/UserManagerService;->checkManageOrInteractPermIfCallerInOtherProfileGroup(ILjava/lang/String;)V
PLcom/android/server/pm/UserManagerService;->checkManageUserAndAcrossUsersFullPermission(Ljava/lang/String;)V
-PLcom/android/server/pm/UserManagerService;->checkManageUsersPermission(Ljava/lang/String;)V
+HSPLcom/android/server/pm/UserManagerService;->checkManageUsersPermission(Ljava/lang/String;)V
PLcom/android/server/pm/UserManagerService;->checkSystemOrRoot(Ljava/lang/String;)V
-PLcom/android/server/pm/UserManagerService;->cleanupPartialUsers()V
-PLcom/android/server/pm/UserManagerService;->computeEffectiveUserRestrictionsLR(I)Landroid/os/Bundle;
+HSPLcom/android/server/pm/UserManagerService;->cleanupPartialUsers()V
+HSPLcom/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
HSPLcom/android/server/pm/UserManagerService;->exists(I)Z
-PLcom/android/server/pm/UserManagerService;->findCurrentGuestUser()Landroid/content/pm/UserInfo;
PLcom/android/server/pm/UserManagerService;->getAliveUsersExcludingGuestsCountLU()I
HPLcom/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;->getCredentialOwnerProfile(I)I
-PLcom/android/server/pm/UserManagerService;->getEffectiveUserRestrictions(I)Landroid/os/Bundle;
+HSPLcom/android/server/pm/UserManagerService;->getCredentialOwnerProfile(I)I
+HSPLcom/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()Landroid/os/UserManagerInternal;
-PLcom/android/server/pm/UserManagerService;->getPrimaryUser()Landroid/content/pm/UserInfo;
-HPLcom/android/server/pm/UserManagerService;->getProfileIds(ILjava/lang/String;Z)[I
-PLcom/android/server/pm/UserManagerService;->getProfileIds(IZ)[I
-HPLcom/android/server/pm/UserManagerService;->getProfileIdsLU(ILjava/lang/String;Z)Landroid/util/IntArray;
-HPLcom/android/server/pm/UserManagerService;->getProfileParent(I)Landroid/content/pm/UserInfo;
-PLcom/android/server/pm/UserManagerService;->getProfileParentLU(I)Landroid/content/pm/UserInfo;
-PLcom/android/server/pm/UserManagerService;->getProfiles(IZ)Ljava/util/List;
-HPLcom/android/server/pm/UserManagerService;->getProfilesLU(ILjava/lang/String;ZZ)Ljava/util/List;
+HSPLcom/android/server/pm/UserManagerService;->getPrimaryUser()Landroid/content/pm/UserInfo;
+HSPLcom/android/server/pm/UserManagerService;->getProfileIds(ILjava/lang/String;Z)[I
+HSPLcom/android/server/pm/UserManagerService;->getProfileIds(IZ)[I
+HSPLcom/android/server/pm/UserManagerService;->getProfileIdsLU(ILjava/lang/String;Z)Landroid/util/IntArray;
+HSPLcom/android/server/pm/UserManagerService;->getProfileParent(I)Landroid/content/pm/UserInfo;
+HSPLcom/android/server/pm/UserManagerService;->getProfileParentLU(I)Landroid/content/pm/UserInfo;
+HSPLcom/android/server/pm/UserManagerService;->getProfiles(IZ)Ljava/util/List;
+HSPLcom/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;->getUserAccount(I)Ljava/lang/String;
HPLcom/android/server/pm/UserManagerService;->getUserBadgeColorResId(I)I
@@ -13133,7 +15763,7 @@ HPLcom/android/server/pm/UserManagerService;->getUserBadgeNoBackgroundResId(I)I
PLcom/android/server/pm/UserManagerService;->getUserCreationTime(I)J
PLcom/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;
-PLcom/android/server/pm/UserManagerService;->getUserHandle(I)I
+HSPLcom/android/server/pm/UserManagerService;->getUserHandle(I)I
PLcom/android/server/pm/UserManagerService;->getUserIcon(I)Landroid/os/ParcelFileDescriptor;
PLcom/android/server/pm/UserManagerService;->getUserIconBadgeResId(I)I
HSPLcom/android/server/pm/UserManagerService;->getUserIds()[I
@@ -13142,8 +15772,8 @@ HSPLcom/android/server/pm/UserManagerService;->getUserInfoLU(I)Landroid/content/
HSPLcom/android/server/pm/UserManagerService;->getUserInfoNoChecks(I)Landroid/content/pm/UserInfo;
PLcom/android/server/pm/UserManagerService;->getUserName()Ljava/lang/String;
PLcom/android/server/pm/UserManagerService;->getUserRestrictionSources(Ljava/lang/String;I)Ljava/util/List;
-PLcom/android/server/pm/UserManagerService;->getUserRestrictions(I)Landroid/os/Bundle;
-PLcom/android/server/pm/UserManagerService;->getUserSerialNumber(I)I
+HSPLcom/android/server/pm/UserManagerService;->getUserRestrictions(I)Landroid/os/Bundle;
+HSPLcom/android/server/pm/UserManagerService;->getUserSerialNumber(I)I
HPLcom/android/server/pm/UserManagerService;->getUserStartRealtime()J
HPLcom/android/server/pm/UserManagerService;->getUserTypeDetails(Landroid/content/pm/UserInfo;)Lcom/android/server/pm/UserTypeDetails;
HPLcom/android/server/pm/UserManagerService;->getUserTypeDetailsNoChecks(I)Lcom/android/server/pm/UserTypeDetails;
@@ -13155,92 +15785,96 @@ HPLcom/android/server/pm/UserManagerService;->hasBadge(I)Z
PLcom/android/server/pm/UserManagerService;->hasBaseUserRestriction(Ljava/lang/String;I)Z
HSPLcom/android/server/pm/UserManagerService;->hasManageOrCreateUsersPermission()Z
HSPLcom/android/server/pm/UserManagerService;->hasManageUsersOrPermission(Ljava/lang/String;)Z
-HPLcom/android/server/pm/UserManagerService;->hasManageUsersPermission()Z
-HPLcom/android/server/pm/UserManagerService;->hasManagedProfile(I)Z
-PLcom/android/server/pm/UserManagerService;->hasPermissionGranted(Ljava/lang/String;I)Z
-PLcom/android/server/pm/UserManagerService;->hasUserRestriction(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/UserManagerService;->hasManageUsersPermission()Z
+HSPLcom/android/server/pm/UserManagerService;->hasManagedProfile(I)Z
+HSPLcom/android/server/pm/UserManagerService;->hasPermissionGranted(Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/UserManagerService;->hasUserRestriction(Ljava/lang/String;I)Z
HSPLcom/android/server/pm/UserManagerService;->initDefaultGuestRestrictions()V
-PLcom/android/server/pm/UserManagerService;->installWhitelistedSystemPackages(ZZ)Z
+HSPLcom/android/server/pm/UserManagerService;->installWhitelistedSystemPackages(ZZ)Z
PLcom/android/server/pm/UserManagerService;->isDemoUser(I)Z
-PLcom/android/server/pm/UserManagerService;->isManagedProfile(I)Z
+HSPLcom/android/server/pm/UserManagerService;->isManagedProfile(I)Z
PLcom/android/server/pm/UserManagerService;->isPreCreated(I)Z
-HPLcom/android/server/pm/UserManagerService;->isProfile(I)Z
-PLcom/android/server/pm/UserManagerService;->isProfileOf(Landroid/content/pm/UserInfo;Landroid/content/pm/UserInfo;)Z
+HSPLcom/android/server/pm/UserManagerService;->isProfile(I)Z
+HSPLcom/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()Z
PLcom/android/server/pm/UserManagerService;->isSameProfileGroup(II)Z
-HPLcom/android/server/pm/UserManagerService;->isSameProfileGroupNoChecks(II)Z
-HPLcom/android/server/pm/UserManagerService;->isSettingRestrictedForUser(Ljava/lang/String;ILjava/lang/String;I)Z
+HSPLcom/android/server/pm/UserManagerService;->isSameProfileGroupNoChecks(II)Z
+HSPLcom/android/server/pm/UserManagerService;->isSettingRestrictedForUser(Ljava/lang/String;ILjava/lang/String;I)Z
PLcom/android/server/pm/UserManagerService;->isUserLimitReached()Z
-PLcom/android/server/pm/UserManagerService;->isUserRunning(I)Z
+HSPLcom/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
-PLcom/android/server/pm/UserManagerService;->isUserUnlocked(I)Z
-HPLcom/android/server/pm/UserManagerService;->isUserUnlockingOrUnlocked(I)Z
+HSPLcom/android/server/pm/UserManagerService;->isUserUnlocked(I)Z
+HSPLcom/android/server/pm/UserManagerService;->isUserUnlockingOrUnlocked(I)Z
PLcom/android/server/pm/UserManagerService;->lambda$addUserRestrictionsListener$0(Landroid/os/IUserRestrictionsListener;ILandroid/os/Bundle;Landroid/os/Bundle;)V
PLcom/android/server/pm/UserManagerService;->onBeforeStartUser(I)V
+PLcom/android/server/pm/UserManagerService;->onBeforeUnlockUser(I)V
PLcom/android/server/pm/UserManagerService;->onUserLoggedIn(I)V
-PLcom/android/server/pm/UserManagerService;->propagateUserRestrictionsLR(ILandroid/os/Bundle;Landroid/os/Bundle;)V
+PLcom/android/server/pm/UserManagerService;->packageToRestrictionsFileName(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/pm/UserManagerService;->propagateUserRestrictionsLR(ILandroid/os/Bundle;Landroid/os/Bundle;)V
HPLcom/android/server/pm/UserManagerService;->readApplicationRestrictionsLAr(Landroid/util/AtomicFile;)Landroid/os/Bundle;
-PLcom/android/server/pm/UserManagerService;->readEntry(Landroid/os/Bundle;Ljava/util/ArrayList;Lorg/xmlpull/v1/XmlPullParser;)V
+PLcom/android/server/pm/UserManagerService;->readApplicationRestrictionsLAr(Ljava/lang/String;I)Landroid/os/Bundle;
+HPLcom/android/server/pm/UserManagerService;->readEntry(Landroid/os/Bundle;Ljava/util/ArrayList;Lorg/xmlpull/v1/XmlPullParser;)V
HSPLcom/android/server/pm/UserManagerService;->readIntAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
HSPLcom/android/server/pm/UserManagerService;->readLongAttribute(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;J)J
HSPLcom/android/server/pm/UserManagerService;->readUserLP(I)Lcom/android/server/pm/UserManagerService$UserData;
HSPLcom/android/server/pm/UserManagerService;->readUserLP(ILjava/io/InputStream;)Lcom/android/server/pm/UserManagerService$UserData;
HSPLcom/android/server/pm/UserManagerService;->readUserListLP()V
-PLcom/android/server/pm/UserManagerService;->reconcileUsers(Ljava/lang/String;)V
+HSPLcom/android/server/pm/UserManagerService;->reconcileUsers(Ljava/lang/String;)V
PLcom/android/server/pm/UserManagerService;->scheduleWriteUser(Lcom/android/server/pm/UserManagerService$UserData;)V
PLcom/android/server/pm/UserManagerService;->setApplicationRestrictions(Ljava/lang/String;Landroid/os/Bundle;I)V
-PLcom/android/server/pm/UserManagerService;->setDevicePolicyUserRestrictionsInner(ILandroid/os/Bundle;I)V
+HSPLcom/android/server/pm/UserManagerService;->setDevicePolicyUserRestrictionsInner(ILandroid/os/Bundle;I)V
PLcom/android/server/pm/UserManagerService;->setUserRestriction(Ljava/lang/String;ZI)V
-PLcom/android/server/pm/UserManagerService;->systemReady()V
-HPLcom/android/server/pm/UserManagerService;->updateRestrictionsIfNeededLR(ILandroid/os/Bundle;Landroid/util/SparseArray;)Z
+HSPLcom/android/server/pm/UserManagerService;->systemReady()V
+HSPLcom/android/server/pm/UserManagerService;->updateRestrictionsIfNeededLR(ILandroid/os/Bundle;Landroid/util/SparseArray;)Z
HSPLcom/android/server/pm/UserManagerService;->updateUserIds()V
-PLcom/android/server/pm/UserManagerService;->updateUserRestrictionsInternalLR(Landroid/os/Bundle;I)V
+HSPLcom/android/server/pm/UserManagerService;->updateUserRestrictionsInternalLR(Landroid/os/Bundle;I)V
HSPLcom/android/server/pm/UserManagerService;->upgradeIfNecessaryLP(Landroid/os/Bundle;)V
HSPLcom/android/server/pm/UserManagerService;->upgradeIfNecessaryLP(Landroid/os/Bundle;I)V
HSPLcom/android/server/pm/UserManagerService;->userWithName(Landroid/content/pm/UserInfo;)Landroid/content/pm/UserInfo;
PLcom/android/server/pm/UserManagerService;->writeApplicationRestrictionsLAr(Landroid/os/Bundle;Landroid/util/AtomicFile;)V
+PLcom/android/server/pm/UserManagerService;->writeApplicationRestrictionsLAr(Ljava/lang/String;Landroid/os/Bundle;I)V
PLcom/android/server/pm/UserManagerService;->writeBundle(Landroid/os/Bundle;Lorg/xmlpull/v1/XmlSerializer;)V
PLcom/android/server/pm/UserManagerService;->writeUserLP(Lcom/android/server/pm/UserManagerService$UserData;)V
PLcom/android/server/pm/UserManagerService;->writeUserLP(Lcom/android/server/pm/UserManagerService$UserData;Ljava/io/OutputStream;)V
HSPLcom/android/server/pm/UserRestrictionsUtils;-><clinit>()V
PLcom/android/server/pm/UserRestrictionsUtils;->applyUserRestriction(Landroid/content/Context;ILjava/lang/String;Z)V
PLcom/android/server/pm/UserRestrictionsUtils;->applyUserRestrictions(Landroid/content/Context;ILandroid/os/Bundle;Landroid/os/Bundle;)V
-PLcom/android/server/pm/UserRestrictionsUtils;->areEqual(Landroid/os/Bundle;Landroid/os/Bundle;)Z
-PLcom/android/server/pm/UserRestrictionsUtils;->clone(Landroid/os/Bundle;)Landroid/os/Bundle;
-PLcom/android/server/pm/UserRestrictionsUtils;->dumpRestrictions(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/os/Bundle;)V
-PLcom/android/server/pm/UserRestrictionsUtils;->getDefaultEnabledForManagedProfiles()Ljava/util/Set;
+HSPLcom/android/server/pm/UserRestrictionsUtils;->areEqual(Landroid/os/Bundle;Landroid/os/Bundle;)Z
+HSPLcom/android/server/pm/UserRestrictionsUtils;->clone(Landroid/os/Bundle;)Landroid/os/Bundle;
+HPLcom/android/server/pm/UserRestrictionsUtils;->dumpRestrictions(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/os/Bundle;)V
+HSPLcom/android/server/pm/UserRestrictionsUtils;->getDefaultEnabledForManagedProfiles()Ljava/util/Set;
PLcom/android/server/pm/UserRestrictionsUtils;->getNewUserRestrictionSetting(Landroid/content/Context;ILjava/lang/String;Z)I
-PLcom/android/server/pm/UserRestrictionsUtils;->isEmpty(Landroid/os/Bundle;)Z
+HSPLcom/android/server/pm/UserRestrictionsUtils;->isEmpty(Landroid/os/Bundle;)Z
HPLcom/android/server/pm/UserRestrictionsUtils;->isGlobal(ILjava/lang/String;)Z
-HPLcom/android/server/pm/UserRestrictionsUtils;->isSettingRestrictedForUser(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;I)Z
-PLcom/android/server/pm/UserRestrictionsUtils;->isValidRestriction(Ljava/lang/String;)Z
-PLcom/android/server/pm/UserRestrictionsUtils;->merge(Landroid/os/Bundle;Landroid/os/Bundle;)V
-PLcom/android/server/pm/UserRestrictionsUtils;->mergeAll(Landroid/util/SparseArray;)Landroid/os/Bundle;
+HSPLcom/android/server/pm/UserRestrictionsUtils;->isSettingRestrictedForUser(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;I)Z
+HSPLcom/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;->mergeAll(Landroid/util/SparseArray;)Landroid/os/Bundle;
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;->nonNull(Landroid/os/Bundle;)Landroid/os/Bundle;
HSPLcom/android/server/pm/UserRestrictionsUtils;->readRestrictions(Lorg/xmlpull/v1/XmlPullParser;)Landroid/os/Bundle;
HSPLcom/android/server/pm/UserRestrictionsUtils;->readRestrictions(Lorg/xmlpull/v1/XmlPullParser;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;->setInstallMarketAppsRestriction(Landroid/content/ContentResolver;II)V
-HPLcom/android/server/pm/UserRestrictionsUtils;->sortToGlobalAndLocal(Landroid/os/Bundle;ILandroid/os/Bundle;Landroid/os/Bundle;)V
-PLcom/android/server/pm/UserRestrictionsUtils;->writeRestrictions(Lorg/xmlpull/v1/XmlSerializer;Landroid/os/Bundle;Ljava/lang/String;)V
+HSPLcom/android/server/pm/UserRestrictionsUtils;->sortToGlobalAndLocal(Landroid/os/Bundle;ILandroid/os/Bundle;Landroid/os/Bundle;)V
+HPLcom/android/server/pm/UserRestrictionsUtils;->writeRestrictions(Lorg/xmlpull/v1/XmlSerializer;Landroid/os/Bundle;Ljava/lang/String;)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;->checkWhitelistedSystemPackages(I)V
HSPLcom/android/server/pm/UserSystemPackageInstaller;->determineWhitelistedPackagesForUserTypes(Lcom/android/server/SystemConfig;)Landroid/util/ArrayMap;
HPLcom/android/server/pm/UserSystemPackageInstaller;->dump(Ljava/io/PrintWriter;)V
HSPLcom/android/server/pm/UserSystemPackageInstaller;->getAndSortKeysFromMap(Landroid/util/ArrayMap;)[Ljava/lang/String;
HSPLcom/android/server/pm/UserSystemPackageInstaller;->getBaseTypeBitSets()Ljava/util/Map;
HSPLcom/android/server/pm/UserSystemPackageInstaller;->getTypesBitSet(Ljava/lang/Iterable;Ljava/util/Map;)J
-PLcom/android/server/pm/UserSystemPackageInstaller;->getWhitelistMode()I
-PLcom/android/server/pm/UserSystemPackageInstaller;->getWhitelistedSystemPackages()Ljava/util/Set;
-PLcom/android/server/pm/UserSystemPackageInstaller;->installWhitelistedSystemPackages(ZZ)Z
-PLcom/android/server/pm/UserSystemPackageInstaller;->isEnforceMode(I)Z
+HSPLcom/android/server/pm/UserSystemPackageInstaller;->getWhitelistMode()I
+HSPLcom/android/server/pm/UserSystemPackageInstaller;->getWhitelistedSystemPackages()Ljava/util/Set;
+HSPLcom/android/server/pm/UserSystemPackageInstaller;->installWhitelistedSystemPackages(ZZ)Z
+HSPLcom/android/server/pm/UserSystemPackageInstaller;->isEnforceMode(I)Z
PLcom/android/server/pm/UserSystemPackageInstaller;->isIgnoreOtaMode(I)Z
-PLcom/android/server/pm/UserSystemPackageInstaller;->isImplicitWhitelistMode(I)Z
-PLcom/android/server/pm/UserSystemPackageInstaller;->isLogMode(I)Z
+HSPLcom/android/server/pm/UserSystemPackageInstaller;->isImplicitWhitelistMode(I)Z
+HSPLcom/android/server/pm/UserSystemPackageInstaller;->isLogMode(I)Z
HSPLcom/android/server/pm/UserTypeDetails$Builder;-><init>()V
HSPLcom/android/server/pm/UserTypeDetails$Builder;->createUserTypeDetails()Lcom/android/server/pm/UserTypeDetails;
HSPLcom/android/server/pm/UserTypeDetails$Builder;->hasBadge()Z
@@ -13251,14 +15885,16 @@ HSPLcom/android/server/pm/UserTypeDetails$Builder;->setBadgeLabels([I)Lcom/andro
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;->setDefaultRestrictions(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;->setIconBadge(I)Lcom/android/server/pm/UserTypeDetails$Builder;
HSPLcom/android/server/pm/UserTypeDetails$Builder;->setLabel(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;-><init>(Ljava/lang/String;ZIIIIIIII[I[ILjava/util/ArrayList;)V
-HSPLcom/android/server/pm/UserTypeDetails;-><init>(Ljava/lang/String;ZIIIIIIII[I[ILjava/util/ArrayList;Lcom/android/server/pm/UserTypeDetails$1;)V
+HSPLcom/android/server/pm/UserTypeDetails;-><init>(Ljava/lang/String;ZIIIIIIII[I[ILandroid/os/Bundle;)V
+HSPLcom/android/server/pm/UserTypeDetails;-><init>(Ljava/lang/String;ZIIIIIIII[I[ILandroid/os/Bundle;Lcom/android/server/pm/UserTypeDetails$1;)V
+HSPLcom/android/server/pm/UserTypeDetails;->addDefaultRestrictionsTo(Landroid/os/Bundle;)V
HPLcom/android/server/pm/UserTypeDetails;->dump(Ljava/io/PrintWriter;)V
PLcom/android/server/pm/UserTypeDetails;->getBadgeColor(I)I
PLcom/android/server/pm/UserTypeDetails;->getBadgeLabel(I)I
@@ -13268,174 +15904,218 @@ PLcom/android/server/pm/UserTypeDetails;->hasBadge()Z
HSPLcom/android/server/pm/UserTypeDetails;->isFull()Z
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;->getDefaultGuestUserRestrictions()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;->getDefaultTypeProfileManaged()Lcom/android/server/pm/UserTypeDetails$Builder;
-HSPLcom/android/server/pm/UserTypeFactory;->getDefaultTypeSystemFull()Lcom/android/server/pm/UserTypeDetails$Builder;
HSPLcom/android/server/pm/UserTypeFactory;->getDefaultTypeSystemHeadless()Lcom/android/server/pm/UserTypeDetails$Builder;
HSPLcom/android/server/pm/UserTypeFactory;->getUserTypes()Landroid/util/ArrayMap;
PLcom/android/server/pm/dex/-$$Lambda$ArtManagerService$MEVzU-orlv4msZVF-bA5NLti04g;-><init>(Landroid/os/ParcelFileDescriptor;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;Ljava/lang/String;)V
PLcom/android/server/pm/dex/-$$Lambda$ArtManagerService$MEVzU-orlv4msZVF-bA5NLti04g;->run()V
+PLcom/android/server/pm/dex/-$$Lambda$ArtManagerService$_rD0Y6OPSJHMdjTIOtucoGQ1xag;-><init>(Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;ILjava/lang/String;)V
+PLcom/android/server/pm/dex/-$$Lambda$ArtManagerService$_rD0Y6OPSJHMdjTIOtucoGQ1xag;->run()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$1;)V
PLcom/android/server/pm/dex/ArtManagerService$ArtManagerInternalImpl;->getPackageOptimizationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;)Landroid/content/pm/dex/PackageOptimizationInfo;
HSPLcom/android/server/pm/dex/ArtManagerService;-><clinit>()V
HSPLcom/android/server/pm/dex/ArtManagerService;-><init>(Landroid/content/Context;Landroid/content/pm/IPackageManager;Lcom/android/server/pm/Installer;Ljava/lang/Object;)V
+PLcom/android/server/pm/dex/ArtManagerService;->access$100(Ljava/lang/String;)I
+PLcom/android/server/pm/dex/ArtManagerService;->access$200(Ljava/lang/String;)I
PLcom/android/server/pm/dex/ArtManagerService;->checkAndroidPermissions(ILjava/lang/String;)Z
PLcom/android/server/pm/dex/ArtManagerService;->checkShellPermissions(ILjava/lang/String;I)Z
-PLcom/android/server/pm/dex/ArtManagerService;->clearAppProfiles(Landroid/content/pm/PackageParser$Package;)V
+HSPLcom/android/server/pm/dex/ArtManagerService;->clearAppProfiles(Landroid/content/pm/parsing/AndroidPackage;)V
PLcom/android/server/pm/dex/ArtManagerService;->createProfileSnapshot(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/content/pm/dex/ISnapshotRuntimeProfileCallback;)V
PLcom/android/server/pm/dex/ArtManagerService;->destroyProfileSnapshot(Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/pm/dex/ArtManagerService;->getCompilationFilterTronValue(Ljava/lang/String;)I
HSPLcom/android/server/pm/dex/ArtManagerService;->getCompilationReasonTronValue(Ljava/lang/String;)I
-PLcom/android/server/pm/dex/ArtManagerService;->getPackageProfileNames(Landroid/content/pm/PackageParser$Package;)Landroid/util/ArrayMap;
+HSPLcom/android/server/pm/dex/ArtManagerService;->getPackageProfileNames(Landroid/content/pm/parsing/AndroidPackage;)Landroid/util/ArrayMap;
PLcom/android/server/pm/dex/ArtManagerService;->isRuntimeProfilingEnabled(ILjava/lang/String;)Z
+PLcom/android/server/pm/dex/ArtManagerService;->lambda$postError$0(Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;ILjava/lang/String;)V
PLcom/android/server/pm/dex/ArtManagerService;->lambda$postSuccess$1(Landroid/os/ParcelFileDescriptor;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;Ljava/lang/String;)V
+PLcom/android/server/pm/dex/ArtManagerService;->postError(Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;Ljava/lang/String;I)V
PLcom/android/server/pm/dex/ArtManagerService;->postSuccess(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;)V
-PLcom/android/server/pm/dex/ArtManagerService;->prepareAppProfiles(Landroid/content/pm/PackageParser$Package;IZ)V
+HPLcom/android/server/pm/dex/ArtManagerService;->prepareAppProfiles(Landroid/content/pm/parsing/AndroidPackage;IZ)V
PLcom/android/server/pm/dex/ArtManagerService;->snapshotAppProfile(Ljava/lang/String;Ljava/lang/String;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;)V
PLcom/android/server/pm/dex/ArtManagerService;->snapshotBootImageProfile(Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;)V
PLcom/android/server/pm/dex/ArtManagerService;->snapshotRuntimeProfile(ILjava/lang/String;Ljava/lang/String;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;Ljava/lang/String;)V
HSPLcom/android/server/pm/dex/ArtManagerService;->verifyTronLoggingConstants()V
-PLcom/android/server/pm/dex/DexManager$DexSearchResult;-><init>(Lcom/android/server/pm/dex/DexManager;Ljava/lang/String;I)V
+HPLcom/android/server/pm/dex/DexManager$DexSearchResult;-><init>(Lcom/android/server/pm/dex/DexManager;Ljava/lang/String;I)V
PLcom/android/server/pm/dex/DexManager$DexSearchResult;->access$000(Lcom/android/server/pm/dex/DexManager$DexSearchResult;)I
PLcom/android/server/pm/dex/DexManager$DexSearchResult;->access$100(Lcom/android/server/pm/dex/DexManager$DexSearchResult;)Ljava/lang/String;
-PLcom/android/server/pm/dex/DexManager$PackageCodeLocations;-><init>(Landroid/content/pm/ApplicationInfo;I)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;->access$200(Lcom/android/server/pm/dex/DexManager$PackageCodeLocations;)Ljava/lang/String;
-PLcom/android/server/pm/dex/DexManager$PackageCodeLocations;->mergeAppDataDirs(Ljava/lang/String;I)V
+HPLcom/android/server/pm/dex/DexManager$PackageCodeLocations;-><init>(Landroid/content/pm/ApplicationInfo;I)V
+HSPLcom/android/server/pm/dex/DexManager$PackageCodeLocations;-><init>(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
+HPLcom/android/server/pm/dex/DexManager$PackageCodeLocations;->access$200(Lcom/android/server/pm/dex/DexManager$PackageCodeLocations;)Ljava/lang/String;
+HSPLcom/android/server/pm/dex/DexManager$PackageCodeLocations;->mergeAppDataDirs(Ljava/lang/String;I)V
HPLcom/android/server/pm/dex/DexManager$PackageCodeLocations;->searchDex(Ljava/lang/String;I)I
-PLcom/android/server/pm/dex/DexManager$PackageCodeLocations;->updateCodeLocation(Ljava/lang/String;[Ljava/lang/String;)V
+HSPLcom/android/server/pm/dex/DexManager$PackageCodeLocations;->updateCodeLocation(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;Landroid/content/pm/IPackageManager;Lcom/android/server/pm/PackageDexOptimizer;Lcom/android/server/pm/Installer;Ljava/lang/Object;)V
-HPLcom/android/server/pm/dex/DexManager;->access$300(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/pm/dex/DexManager;->access$400()I
-PLcom/android/server/pm/dex/DexManager;->access$500()I
-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;->cachePackageInfo(Landroid/content/pm/PackageInfo;I)V
+HSPLcom/android/server/pm/dex/DexManager;->access$300(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/pm/dex/DexManager;->access$400()I
+HPLcom/android/server/pm/dex/DexManager;->access$500()I
+PLcom/android/server/pm/dex/DexManager;->access$600()I
+HPLcom/android/server/pm/dex/DexManager;->access$700()I
+HSPLcom/android/server/pm/dex/DexManager;->cachePackageCodeLocation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;I)V
+HSPLcom/android/server/pm/dex/DexManager;->cachePackageInfo(Landroid/content/pm/PackageInfo;I)V
+PLcom/android/server/pm/dex/DexManager;->dexoptSecondaryDex(Lcom/android/server/pm/dex/DexoptOptions;)Z
HPLcom/android/server/pm/dex/DexManager;->getDexPackage(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;I)Lcom/android/server/pm/dex/DexManager$DexSearchResult;
-PLcom/android/server/pm/dex/DexManager;->isPackageSelectedToRunOob(Ljava/util/Collection;)Z
-HPLcom/android/server/pm/dex/DexManager;->isPackageSelectedToRunOobInternal(ZLjava/lang/String;Ljava/util/Collection;)Z
-PLcom/android/server/pm/dex/DexManager;->load(Ljava/util/Map;)V
-PLcom/android/server/pm/dex/DexManager;->loadInternal(Ljava/util/Map;)V
-PLcom/android/server/pm/dex/DexManager;->notifyDexLoad(Landroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;Ljava/lang/String;I)V
-PLcom/android/server/pm/dex/DexManager;->notifyDexLoadInternal(Landroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;Ljava/lang/String;I)V
+PLcom/android/server/pm/dex/DexManager;->getPackageUseInfoOrDefault(Ljava/lang/String;)Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;
+PLcom/android/server/pm/dex/DexManager;->isPackageSelectedToRunOob(Ljava/lang/String;)Z
+HSPLcom/android/server/pm/dex/DexManager;->isPackageSelectedToRunOob(Ljava/util/Collection;)Z
+HSPLcom/android/server/pm/dex/DexManager;->isPackageSelectedToRunOobInternal(ZLjava/lang/String;Ljava/util/Collection;)Z
+HSPLcom/android/server/pm/dex/DexManager;->load(Ljava/util/Map;)V
+HSPLcom/android/server/pm/dex/DexManager;->loadInternal(Ljava/util/Map;)V
+HPLcom/android/server/pm/dex/DexManager;->notifyDexLoad(Landroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;Ljava/lang/String;I)V
+HPLcom/android/server/pm/dex/DexManager;->notifyDexLoadInternal(Landroid/content/pm/ApplicationInfo;Ljava/util/List;Ljava/util/List;Ljava/lang/String;I)V
PLcom/android/server/pm/dex/DexManager;->notifyPackageInstalled(Landroid/content/pm/PackageInfo;I)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/DexoptOptions;-><init>(Ljava/lang/String;II)V
-PLcom/android/server/pm/dex/DexoptOptions;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V
+HSPLcom/android/server/pm/dex/DexManager;->putIfAbsent(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/pm/dex/DexManager;->reconcileSecondaryDexFiles(Ljava/lang/String;)V
+HPLcom/android/server/pm/dex/DexoptOptions;-><init>(Ljava/lang/String;II)V
+HPLcom/android/server/pm/dex/DexoptOptions;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V
PLcom/android/server/pm/dex/DexoptOptions;->getCompilationReason()I
PLcom/android/server/pm/dex/DexoptOptions;->getCompilerFilter()Ljava/lang/String;
+PLcom/android/server/pm/dex/DexoptOptions;->getFlags()I
+HPLcom/android/server/pm/dex/DexoptOptions;->getPackageName()Ljava/lang/String;
PLcom/android/server/pm/dex/DexoptOptions;->getSplitName()Ljava/lang/String;
PLcom/android/server/pm/dex/DexoptOptions;->isBootComplete()Z
PLcom/android/server/pm/dex/DexoptOptions;->isCheckForProfileUpdates()Z
PLcom/android/server/pm/dex/DexoptOptions;->isDexoptAsSharedLibrary()Z
PLcom/android/server/pm/dex/DexoptOptions;->isDexoptIdleBackgroundJob()Z
PLcom/android/server/pm/dex/DexoptOptions;->isDexoptInstallWithDexMetadata()Z
+HPLcom/android/server/pm/dex/DexoptOptions;->isDexoptOnlySecondaryDex()Z
+PLcom/android/server/pm/dex/DexoptOptions;->isDexoptOnlySharedDex()Z
PLcom/android/server/pm/dex/DexoptOptions;->isDowngrade()Z
+HPLcom/android/server/pm/dex/DexoptOptions;->isForce()Z
PLcom/android/server/pm/dex/DexoptUtils;-><clinit>()V
-PLcom/android/server/pm/dex/DexoptUtils;->encodeClassLoader(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/dex/DexoptUtils;->encodeClassLoaderChain(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/dex/DexoptUtils;->encodeClasspath(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/dex/DexoptUtils;->encodeClasspath([Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/dex/DexoptUtils;->encodeSharedLibraries(Ljava/util/List;)Ljava/lang/String;
-PLcom/android/server/pm/dex/DexoptUtils;->encodeSharedLibrary(Landroid/content/pm/SharedLibraryInfo;)Ljava/lang/String;
-PLcom/android/server/pm/dex/DexoptUtils;->getClassLoaderContexts(Landroid/content/pm/ApplicationInfo;Ljava/util/List;[Z)[Ljava/lang/String;
-PLcom/android/server/pm/dex/DexoptUtils;->getSplitRelativeCodePaths(Landroid/content/pm/ApplicationInfo;)[Ljava/lang/String;
-PLcom/android/server/pm/dex/DexoptUtils;->processContextForDexLoad(Ljava/util/List;Ljava/util/List;)[Ljava/lang/String;
+HPLcom/android/server/pm/dex/DexoptUtils;->encodeClassLoader(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/pm/dex/DexoptUtils;->encodeClassLoader(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/pm/dex/DexoptUtils;->encodeClassLoaderChain(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/pm/dex/DexoptUtils;->encodeClasspath(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/pm/dex/DexoptUtils;->encodeClasspath([Ljava/lang/String;)Ljava/lang/String;
+HPLcom/android/server/pm/dex/DexoptUtils;->encodeSharedLibraries(Ljava/util/List;)Ljava/lang/String;
+HPLcom/android/server/pm/dex/DexoptUtils;->encodeSharedLibrary(Landroid/content/pm/SharedLibraryInfo;)Ljava/lang/String;
+HPLcom/android/server/pm/dex/DexoptUtils;->getClassLoaderContexts(Landroid/content/pm/parsing/AndroidPackage;Ljava/util/List;[Z)[Ljava/lang/String;
+HPLcom/android/server/pm/dex/DexoptUtils;->getSplitRelativeCodePaths(Landroid/content/pm/parsing/AndroidPackage;)[Ljava/lang/String;
+HPLcom/android/server/pm/dex/DexoptUtils;->processContextForDexLoad(Ljava/util/List;Ljava/util/List;)[Ljava/lang/String;
HSPLcom/android/server/pm/dex/DynamicCodeLogger;-><init>(Landroid/content/pm/IPackageManager;Lcom/android/server/pm/Installer;)V
HSPLcom/android/server/pm/dex/DynamicCodeLogger;-><init>(Landroid/content/pm/IPackageManager;Lcom/android/server/pm/Installer;Lcom/android/server/pm/dex/PackageDynamicCodeLoading;)V
-PLcom/android/server/pm/dex/DynamicCodeLogger;->readAndSync(Ljava/util/Map;)V
+PLcom/android/server/pm/dex/DynamicCodeLogger;->fileIsUnder(Ljava/lang/String;Ljava/lang/String;)Z
+PLcom/android/server/pm/dex/DynamicCodeLogger;->logDynamicCodeLoading(Ljava/lang/String;)V
+HSPLcom/android/server/pm/dex/DynamicCodeLogger;->readAndSync(Ljava/util/Map;)V
+PLcom/android/server/pm/dex/DynamicCodeLogger;->recordDex(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/pm/dex/DynamicCodeLogger;->recordNative(ILjava/lang/String;)V
-PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;-><init>(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;)V
-PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;-><init>(ZILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->access$200(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;)Ljava/util/Set;
-PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->access$300(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;)I
-PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->access$700(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;)Ljava/util/Set;
+HPLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;-><init>(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;)V
+PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;-><init>(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;Lcom/android/server/pm/dex/PackageDexUsage$1;)V
+HSPLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;-><init>(ZILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->access$200(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;)Ljava/util/Set;
+HSPLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->access$300(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;)I
+PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->access$400(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;)Z
+HSPLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->access$700(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;)Ljava/util/Set;
+PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->getClassLoaderContext()Ljava/lang/String;
+PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->isUnknownClassLoaderContext()Z
+PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->isUsedByOtherApps()Z
+PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->isVariableClassLoaderContext()Z
PLcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;->merge(Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;)Z
HSPLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;-><init>()V
-PLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;-><init>(Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)V
+HPLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;-><init>(Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)V
+PLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;-><init>(Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Lcom/android/server/pm/dex/PackageDexUsage$1;)V
PLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;->access$000(Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;->access$100(Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)Ljava/util/Map;
-PLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;->access$500(Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)Ljava/util/Map;
-PLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;->access$800(Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)Z
-PLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;->isAnyCodePathUsedByOtherApps()Z
+HSPLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;->access$100(Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)Ljava/util/Map;
+HSPLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;->access$500(Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)Ljava/util/Map;
+HSPLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;->access$800(Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;)Z
+PLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;->getDexUseInfoMap()Ljava/util/Map;
+PLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;->getLoadingPackages(Ljava/lang/String;)Ljava/util/Set;
+HSPLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;->isAnyCodePathUsedByOtherApps()Z
PLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;->isUsedByOtherApps(Ljava/lang/String;)Z
PLcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;->mergeCodePathUsedByOtherApps(Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;)Z
HSPLcom/android/server/pm/dex/PackageDexUsage;-><init>()V
PLcom/android/server/pm/dex/PackageDexUsage;->clearUsedByOtherApps(Ljava/lang/String;)Z
PLcom/android/server/pm/dex/PackageDexUsage;->clonePackageUseInfoMap()Ljava/util/Map;
+PLcom/android/server/pm/dex/PackageDexUsage;->getAllPackagesWithSecondaryDexFiles()Ljava/util/Set;
PLcom/android/server/pm/dex/PackageDexUsage;->getPackageUseInfo(Ljava/lang/String;)Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;
-PLcom/android/server/pm/dex/PackageDexUsage;->isSupportedVersion(I)Z
-PLcom/android/server/pm/dex/PackageDexUsage;->maybeReadClassLoaderContext(Ljava/io/BufferedReader;I)Ljava/lang/String;
-PLcom/android/server/pm/dex/PackageDexUsage;->maybeReadLoadingPackages(Ljava/io/BufferedReader;I)Ljava/util/Set;
+HSPLcom/android/server/pm/dex/PackageDexUsage;->isSupportedVersion(I)Z
+PLcom/android/server/pm/dex/PackageDexUsage;->maybeAddLoadingPackage(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Z
+HSPLcom/android/server/pm/dex/PackageDexUsage;->maybeReadClassLoaderContext(Ljava/io/BufferedReader;I)Ljava/lang/String;
+HSPLcom/android/server/pm/dex/PackageDexUsage;->maybeReadLoadingPackages(Ljava/io/BufferedReader;I)Ljava/util/Set;
PLcom/android/server/pm/dex/PackageDexUsage;->maybeWriteAsync()V
-PLcom/android/server/pm/dex/PackageDexUsage;->read()V
-PLcom/android/server/pm/dex/PackageDexUsage;->read(Ljava/io/Reader;)V
-PLcom/android/server/pm/dex/PackageDexUsage;->readBoolean(Ljava/lang/String;)Z
-PLcom/android/server/pm/dex/PackageDexUsage;->readInternal(Ljava/lang/Object;)V
-PLcom/android/server/pm/dex/PackageDexUsage;->readInternal(Ljava/lang/Void;)V
+HSPLcom/android/server/pm/dex/PackageDexUsage;->read()V
+HSPLcom/android/server/pm/dex/PackageDexUsage;->read(Ljava/io/Reader;)V
+HSPLcom/android/server/pm/dex/PackageDexUsage;->readBoolean(Ljava/lang/String;)Z
+HSPLcom/android/server/pm/dex/PackageDexUsage;->readInternal(Ljava/lang/Object;)V
+HSPLcom/android/server/pm/dex/PackageDexUsage;->readInternal(Ljava/lang/Void;)V
PLcom/android/server/pm/dex/PackageDexUsage;->record(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;ZZLjava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/pm/dex/PackageDexUsage;->syncData(Ljava/util/Map;Ljava/util/Map;)V
-PLcom/android/server/pm/dex/PackageDexUsage;->write(Ljava/io/Writer;)V
+PLcom/android/server/pm/dex/PackageDexUsage;->removeDexFile(Ljava/lang/String;Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/dex/PackageDexUsage;->syncData(Ljava/util/Map;Ljava/util/Map;)V
+HPLcom/android/server/pm/dex/PackageDexUsage;->write(Ljava/io/Writer;)V
PLcom/android/server/pm/dex/PackageDexUsage;->writeInternal(Ljava/lang/Object;)V
PLcom/android/server/pm/dex/PackageDexUsage;->writeInternal(Ljava/lang/Void;)V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading$DynamicCodeFile;-><init>(CI[Ljava/lang/String;)V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading$DynamicCodeFile;-><init>(CI[Ljava/lang/String;Lcom/android/server/pm/dex/PackageDynamicCodeLoading$1;)V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;-><init>()V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;-><init>(Lcom/android/server/pm/dex/PackageDynamicCodeLoading$1;)V
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading$DynamicCodeFile;-><init>(CI[Ljava/lang/String;)V
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading$DynamicCodeFile;-><init>(CI[Ljava/lang/String;Lcom/android/server/pm/dex/PackageDynamicCodeLoading$1;)V
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;-><init>()V
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;-><init>(Lcom/android/server/pm/dex/PackageDynamicCodeLoading$1;)V
PLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;-><init>(Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;)V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;->access$500(Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;Ljava/util/Map;Ljava/util/Set;)V
+PLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;->access$100(Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;Ljava/lang/String;CILjava/lang/String;)Z
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;->access$500(Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;Ljava/util/Map;Ljava/util/Set;)V
PLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;->add(Ljava/lang/String;CILjava/lang/String;)Z
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;->syncData(Ljava/util/Map;Ljava/util/Set;)V
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;->syncData(Ljava/util/Map;Ljava/util/Set;)V
HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;-><clinit>()V
HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;-><init>()V
PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->escape(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->isValidFileType(I)Z
+PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->getAllPackagesWithDynamicCodeLoading()Ljava/util/Set;
+PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->getPackageDynamicCodeInfo(Ljava/lang/String;)Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->isValidFileType(I)Z
PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->maybeWriteAsync()V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->read()V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->read(Ljava/io/InputStream;)V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->read(Ljava/io/InputStream;Ljava/util/Map;)V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->readFileInfo(Ljava/lang/String;Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;)V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->readInternal(Ljava/lang/Object;)V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->readInternal(Ljava/lang/Void;)V
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->read()V
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->read(Ljava/io/InputStream;)V
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->read(Ljava/io/InputStream;Ljava/util/Map;)V
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->readFileInfo(Ljava/lang/String;Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;)V
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->readInternal(Ljava/lang/Object;)V
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->readInternal(Ljava/lang/Void;)V
PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->record(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;)Z
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->syncData(Ljava/util/Map;)V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->unescape(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->removeFile(Ljava/lang/String;Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->syncData(Ljava/util/Map;)V
+HSPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->unescape(Ljava/lang/String;)Ljava/lang/String;
PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->write(Ljava/io/OutputStream;)V
-PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->write(Ljava/io/OutputStream;Ljava/util/Map;)V
+HPLcom/android/server/pm/dex/PackageDynamicCodeLoading;->write(Ljava/io/OutputStream;Ljava/util/Map;)V
PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->writeInternal(Ljava/lang/Object;)V
PLcom/android/server/pm/dex/PackageDynamicCodeLoading;->writeInternal(Ljava/lang/Void;)V
HSPLcom/android/server/pm/dex/ViewCompiler;-><init>(Ljava/lang/Object;Lcom/android/server/pm/Installer;)V
-PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$794Zo8fGkLRkoPaG4LMCnCWTs28;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;[Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$794Zo8fGkLRkoPaG4LMCnCWTs28;->runOrThrow()V
-PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$CWTrf0CaxMnVgS2v6_iXkyamLEg;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;[Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$CWTrf0CaxMnVgS2v6_iXkyamLEg;->runOrThrow()V
-HSPLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$JT-I0Pu4aDWMzekmFWZgcoe-hoU;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/PackageParser$Package;ZLjava/lang/String;Ljava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-HSPLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$JT-I0Pu4aDWMzekmFWZgcoe-hoU;->accept(Ljava/lang/Object;)V
-PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$KE823YL9mY2J2VCjHcf5cryiwVQ;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;[Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$KE823YL9mY2J2VCjHcf5cryiwVQ;->runOrThrow()V
+PLcom/android/server/pm/permission/-$$Lambda$DefaultPermissionGrantPolicy$SHfHTWKpfBf_vZtWArm-FlNBI8k;-><clinit>()V
+PLcom/android/server/pm/permission/-$$Lambda$DefaultPermissionGrantPolicy$SHfHTWKpfBf_vZtWArm-FlNBI8k;-><init>()V
+PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$5wIJaBo3ATYcr96ofI23sjuUqoA;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/os/UserHandle;)V
+PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$5wIJaBo3ATYcr96ofI23sjuUqoA;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$BEPoV9HmbUN2-ZgCcIqC6xfzvew;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;[Ljava/lang/String;I)V
+PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$BEPoV9HmbUN2-ZgCcIqC6xfzvew;->runOrThrow()V
+PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$JcWw5txStfnrnbvcFd2durv6YOo;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;[Ljava/lang/String;I)V
+PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$JcWw5txStfnrnbvcFd2durv6YOo;->runOrThrow()V
PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$NPd9St1HBvGAtg1uhMV2Upfww4g;-><clinit>()V
PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$NPd9St1HBvGAtg1uhMV2Upfww4g;-><init>()V
HPLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$NPd9St1HBvGAtg1uhMV2Upfww4g;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$dv-s2dZ0ahAY-YUCDopdk9otvTU;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/os/UserHandle;)V
-PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$dv-s2dZ0ahAY-YUCDopdk9otvTU;->accept(Ljava/lang/Object;)V
+PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$T4uCZ9__oEXYpzLBYEW1T_BN3SU;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;[Ljava/lang/String;I)V
+PLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$T4uCZ9__oEXYpzLBYEW1T_BN3SU;->runOrThrow()V
+HSPLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$g9Bo5gFpLYyPOsp3K8Aik5xseDI;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;ZLjava/lang/String;Ljava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$g9Bo5gFpLYyPOsp3K8Aik5xseDI;->accept(Ljava/lang/Object;)V
PLcom/android/server/pm/permission/-$$Lambda$oynlBn0BbcU0KODvfUDDUHb5LKY;-><init>(Ljava/util/concurrent/CompletableFuture;)V
PLcom/android/server/pm/permission/-$$Lambda$oynlBn0BbcU0KODvfUDDUHb5LKY;->accept(Ljava/lang/Object;)V
HSPLcom/android/server/pm/permission/BasePermission;-><init>(Ljava/lang/String;Ljava/lang/String;I)V
PLcom/android/server/pm/permission/BasePermission;->addToTree(ILandroid/content/pm/PermissionInfo;Lcom/android/server/pm/permission/BasePermission;)Z
-PLcom/android/server/pm/permission/BasePermission;->comparePermissionInfos(Landroid/content/pm/PermissionInfo;Landroid/content/pm/PermissionInfo;)Z
+PLcom/android/server/pm/permission/BasePermission;->comparePermissionInfos(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;Landroid/content/pm/PermissionInfo;)Z
+PLcom/android/server/pm/permission/BasePermission;->compareStrings(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
HSPLcom/android/server/pm/permission/BasePermission;->computeGids(I)[I
-HSPLcom/android/server/pm/permission/BasePermission;->createOrUpdate(Lcom/android/server/pm/permission/BasePermission;Landroid/content/pm/PackageParser$Permission;Landroid/content/pm/PackageParser$Package;Ljava/util/Collection;Z)Lcom/android/server/pm/permission/BasePermission;
-PLcom/android/server/pm/permission/BasePermission;->enforceDeclaredUsedAndRuntimeOrDevelopment(Landroid/content/pm/PackageParser$Package;)V
+HSPLcom/android/server/pm/permission/BasePermission;->createOrUpdate(Landroid/content/pm/PackageManagerInternal;Lcom/android/server/pm/permission/BasePermission;Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/Collection;Z)Lcom/android/server/pm/permission/BasePermission;
+HPLcom/android/server/pm/permission/BasePermission;->dumpPermissionsLPr(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Set;ZZLcom/android/server/pm/DumpState;)Z
+PLcom/android/server/pm/permission/BasePermission;->enforceDeclaredUsedAndRuntimeOrDevelopment(Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/PackageSetting;)V
PLcom/android/server/pm/permission/BasePermission;->enforcePermissionTree(Ljava/util/Collection;Ljava/lang/String;I)Lcom/android/server/pm/permission/BasePermission;
HSPLcom/android/server/pm/permission/BasePermission;->findPermissionTree(Ljava/util/Collection;Ljava/lang/String;)Lcom/android/server/pm/permission/BasePermission;
-HPLcom/android/server/pm/permission/BasePermission;->generatePermissionInfo(II)Landroid/content/pm/PermissionInfo;
+HSPLcom/android/server/pm/permission/BasePermission;->generatePermissionInfo(II)Landroid/content/pm/PermissionInfo;
HPLcom/android/server/pm/permission/BasePermission;->generatePermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
HSPLcom/android/server/pm/permission/BasePermission;->getName()Ljava/lang/String;
-PLcom/android/server/pm/permission/BasePermission;->getProtectionLevel()I
+HSPLcom/android/server/pm/permission/BasePermission;->getProtectionLevel()I
HSPLcom/android/server/pm/permission/BasePermission;->getSourcePackageName()Ljava/lang/String;
HSPLcom/android/server/pm/permission/BasePermission;->getSourcePackageSetting()Lcom/android/server/pm/PackageSettingBase;
HSPLcom/android/server/pm/permission/BasePermission;->isAppOp()Z
@@ -13444,16 +16124,17 @@ HSPLcom/android/server/pm/permission/BasePermission;->isConfigurator()Z
HSPLcom/android/server/pm/permission/BasePermission;->isDevelopment()Z
HSPLcom/android/server/pm/permission/BasePermission;->isDocumenter()Z
HSPLcom/android/server/pm/permission/BasePermission;->isDynamic()Z
-HPLcom/android/server/pm/permission/BasePermission;->isHardOrSoftRestricted()Z
+PLcom/android/server/pm/permission/BasePermission;->isHardOrSoftRestricted()Z
HSPLcom/android/server/pm/permission/BasePermission;->isHardRestricted()Z
+PLcom/android/server/pm/permission/BasePermission;->isImmutablyRestricted()Z
HSPLcom/android/server/pm/permission/BasePermission;->isIncidentReportApprover()Z
HSPLcom/android/server/pm/permission/BasePermission;->isInstaller()Z
HSPLcom/android/server/pm/permission/BasePermission;->isNormal()Z
HSPLcom/android/server/pm/permission/BasePermission;->isOEM()Z
+HPLcom/android/server/pm/permission/BasePermission;->isPermission(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;)Z
HSPLcom/android/server/pm/permission/BasePermission;->isPre23()Z
HSPLcom/android/server/pm/permission/BasePermission;->isPreInstalled()Z
HSPLcom/android/server/pm/permission/BasePermission;->isPrivileged()Z
-PLcom/android/server/pm/permission/BasePermission;->isRemoved()Z
HSPLcom/android/server/pm/permission/BasePermission;->isRuntime()Z
HSPLcom/android/server/pm/permission/BasePermission;->isRuntimeOnly()Z
HSPLcom/android/server/pm/permission/BasePermission;->isSetup()Z
@@ -13467,207 +16148,233 @@ HSPLcom/android/server/pm/permission/BasePermission;->isWellbeing()Z
HSPLcom/android/server/pm/permission/BasePermission;->readInt(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/lang/String;I)I
HSPLcom/android/server/pm/permission/BasePermission;->readLPw(Ljava/util/Map;Lorg/xmlpull/v1/XmlPullParser;)Z
HSPLcom/android/server/pm/permission/BasePermission;->setGids([IZ)V
+PLcom/android/server/pm/permission/BasePermission;->setPermission(Landroid/content/pm/parsing/ComponentParseUtils$ParsedPermission;)V
+HSPLcom/android/server/pm/permission/BasePermission;->setSourcePackageSetting(Lcom/android/server/pm/PackageSettingBase;)V
HSPLcom/android/server/pm/permission/BasePermission;->updateDynamicPermission(Ljava/util/Collection;)V
-HPLcom/android/server/pm/permission/BasePermission;->writeLPr(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/pm/permission/BasePermission;->writeLPr(Lorg/xmlpull/v1/XmlSerializer;)V
HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$1;-><init>(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;Landroid/os/Looper;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$1;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$DefaultPermissionGrant;-><init>(Ljava/lang/String;ZZ)V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$1;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy$DefaultPermissionGrant;-><init>(Ljava/lang/String;ZZ)V
HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;-><clinit>()V
HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/pm/permission/PermissionManagerService;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->access$000(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;)Ljava/lang/Object;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->access$100(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;)Landroid/util/ArrayMap;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->access$102(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;Landroid/util/ArrayMap;)Landroid/util/ArrayMap;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->access$200(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;)Landroid/util/ArrayMap;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->doesPackageSupportRuntimePermissions(Landroid/content/pm/PackageInfo;)Z
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getDefaultPermissionFiles()[Ljava/io/File;
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->access$000(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;)Ljava/lang/Object;
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->access$100(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;)Landroid/util/ArrayMap;
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->access$102(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;Landroid/util/ArrayMap;)Landroid/util/ArrayMap;
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->access$200(Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;)Landroid/util/ArrayMap;
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->doesPackageSupportRuntimePermissions(Landroid/content/pm/PackageInfo;)Z
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getBackgroundPermission(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getDefaultPermissionFiles()[Ljava/io/File;
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getDefaultProviderAuthorityPackage(Ljava/lang/String;I)Ljava/lang/String;
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getDefaultSystemHandlerActivityPackage(Landroid/content/Intent;I)Ljava/lang/String;
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getDefaultSystemHandlerActivityPackage(Ljava/lang/String;I)Ljava/lang/String;
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getDefaultSystemHandlerActivityPackageForCategory(Ljava/lang/String;I)Ljava/lang/String;
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getDefaultSystemHandlerServicePackage(Landroid/content/Intent;I)Ljava/lang/String;
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getDefaultSystemHandlerServicePackage(Ljava/lang/String;I)Ljava/lang/String;
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getHeadlessSyncAdapterPackages([Ljava/lang/String;I)Ljava/util/ArrayList;
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getKnownPackages(II)[Ljava/lang/String;
PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getPackageInfo(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getSystemPackageInfo(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->getSystemPackageInfo(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantDefaultPermissionExceptions(I)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantDefaultPermissions(I)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantDefaultPermissionsToDefaultSystemDialerApp(Ljava/lang/String;I)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantDefaultPermissionsToDefaultSystemSmsApp(Ljava/lang/String;I)V
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;->grantDefaultSystemHandlerPermissions(I)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantPermissionToEachSystemPackage(Ljava/util/ArrayList;I[Ljava/util/Set;)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantPermissionsToPackage(Landroid/content/pm/PackageInfo;IZZZ[Ljava/util/Set;)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantPermissionsToPackage(Ljava/lang/String;IZZ[Ljava/util/Set;)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantPermissionsToSysComponentsAndPrivApps(I)V
PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantPermissionsToSystemPackage(Ljava/lang/String;IZ[Ljava/util/Set;)V
PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantPermissionsToSystemPackage(Ljava/lang/String;I[Ljava/util/Set;)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantRuntimePermissions(Landroid/content/pm/PackageInfo;Ljava/util/Set;ZI)V
+HPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantRuntimePermissions(Landroid/content/pm/PackageInfo;Ljava/util/Set;ZZZI)V
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantRuntimePermissionsForSystemPackage(ILandroid/content/pm/PackageInfo;)V
PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->grantSystemFixedPermissionsToSystemPackage(Ljava/lang/String;I[Ljava/util/Set;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->isSysComponentOrPersistentPlatformSignedPrivApp(Landroid/content/pm/PackageInfo;)Z
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->isSystemPackage(Landroid/content/pm/PackageInfo;)Z
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->isFixedOrUserSet(I)Z
+PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->isPermissionDangerous(Ljava/lang/String;)Z
+HPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->isPermissionRestricted(Ljava/lang/String;)Z
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->isSysComponentOrPersistentPlatformSignedPrivApp(Landroid/content/pm/PackageInfo;)Z
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->isSystemPackage(Landroid/content/pm/PackageInfo;)Z
PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->isSystemPackage(Ljava/lang/String;)Z
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->parse(Lorg/xmlpull/v1/XmlPullParser;Ljava/util/Map;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->parseExceptions(Lorg/xmlpull/v1/XmlPullParser;Ljava/util/Map;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->parsePermission(Lorg/xmlpull/v1/XmlPullParser;Ljava/util/List;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->readDefaultPermissionExceptionsLocked()Landroid/util/ArrayMap;
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->parse(Lorg/xmlpull/v1/XmlPullParser;Ljava/util/Map;)V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->parseExceptions(Lorg/xmlpull/v1/XmlPullParser;Ljava/util/Map;)V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->parsePermission(Lorg/xmlpull/v1/XmlPullParser;Ljava/util/List;)V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->readDefaultPermissionExceptionsLocked()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/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setLocationExtraPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setLocationPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setSimCallManagerPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setSmsAppPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setSyncAdapterPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$SyncAdapterPackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setUseOpenWifiAppPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setVoiceInteractionPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->wereDefaultPermissionsGrantedSinceBoot(I)Z
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->scheduleReadDefaultPermissionExceptions()V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setDialerAppPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setLocationExtraPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setLocationPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setSimCallManagerPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setSmsAppPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setSyncAdapterPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$SyncAdapterPackagesProvider;)V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setUseOpenWifiAppPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->setVoiceInteractionPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+HSPLcom/android/server/pm/permission/DefaultPermissionGrantPolicy;->wereDefaultPermissionsGrantedSinceBoot(I)Z
HSPLcom/android/server/pm/permission/PermissionManagerService$1;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;)V
-PLcom/android/server/pm/permission/PermissionManagerService$1;->onInstallPermissionGranted()V
PLcom/android/server/pm/permission/PermissionManagerService$1;->onPermissionGranted(II)V
HSPLcom/android/server/pm/permission/PermissionManagerService$1;->onPermissionUpdated([IZ)V
-PLcom/android/server/pm/permission/PermissionManagerService$1;->onPermissionUpdatedNotifyListener([IZI)V
-PLcom/android/server/pm/permission/PermissionManagerService$3;-><init>(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/util/ArraySet;Landroid/util/IntArray;Landroid/util/IntArray;[Z)V
+HPLcom/android/server/pm/permission/PermissionManagerService$1;->onPermissionUpdatedNotifyListener([IZI)V
HSPLcom/android/server/pm/permission/PermissionManagerService$OnPermissionChangeListeners;-><init>(Landroid/os/Looper;)V
-PLcom/android/server/pm/permission/PermissionManagerService$OnPermissionChangeListeners;->addListenerLocked(Landroid/permission/IOnPermissionsChangeListener;)V
-PLcom/android/server/pm/permission/PermissionManagerService$OnPermissionChangeListeners;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$OnPermissionChangeListeners;->addListenerLocked(Landroid/permission/IOnPermissionsChangeListener;)V
+HPLcom/android/server/pm/permission/PermissionManagerService$OnPermissionChangeListeners;->handleMessage(Landroid/os/Message;)V
HPLcom/android/server/pm/permission/PermissionManagerService$OnPermissionChangeListeners;->handleOnPermissionsChanged(I)V
-PLcom/android/server/pm/permission/PermissionManagerService$OnPermissionChangeListeners;->onPermissionsChanged(I)V
+HPLcom/android/server/pm/permission/PermissionManagerService$OnPermissionChangeListeners;->onPermissionsChanged(I)V
PLcom/android/server/pm/permission/PermissionManagerService$OnPermissionChangeListeners;->removeListenerLocked(Landroid/permission/IOnPermissionsChangeListener;)V
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$1;)V
-HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->addAllPermissionGroups(Landroid/content/pm/PackageParser$Package;Z)V
-HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->addAllPermissions(Landroid/content/pm/PackageParser$Package;Z)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->addOnRuntimePermissionStateChangedListener(Landroid/permission/PermissionManagerInternal$OnRuntimePermissionStateChangedListener;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->addAllPermissionGroups(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->addAllPermissions(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->addOnRuntimePermissionStateChangedListener(Landroid/permission/PermissionManagerInternal$OnRuntimePermissionStateChangedListener;)V
PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->backupRuntimePermissions(Landroid/os/UserHandle;)[B
HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->enforceCrossUserPermission(IIZZLjava/lang/String;)V
PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->enforceCrossUserPermission(IIZZZLjava/lang/String;)V
-HPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getAllPermissionWithProtection(I)Ljava/util/ArrayList;
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getDefaultBrowser(I)Ljava/lang/String;
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getAllPermissionWithProtection(I)Ljava/util/ArrayList;
+HPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getDefaultBrowser(I)Ljava/lang/String;
PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getDefaultDialer(I)Ljava/lang/String;
-HPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getDefaultHome(I)Ljava/lang/String;
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getDefaultHome(I)Ljava/lang/String;
HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getPermissionSettings()Lcom/android/server/pm/permission/PermissionSettings;
PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->getPermissionTEMP(Ljava/lang/String;)Lcom/android/server/pm/permission/BasePermission;
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->grantRequestedRuntimePermissions(Landroid/content/pm/PackageParser$Package;[I[Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->isPermissionsReviewRequired(Landroid/content/pm/PackageParser$Package;I)Z
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->resetRuntimePermissions(Landroid/content/pm/PackageParser$Package;I)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->isPermissionsReviewRequired(Landroid/content/pm/parsing/AndroidPackage;I)Z
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->removeAllPermissions(Landroid/content/pm/parsing/AndroidPackage;Z)V
PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->restoreDelayedRuntimePermissions(Ljava/lang/String;Landroid/os/UserHandle;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->revokeRuntimePermissionsIfGroupChanged(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageParser$Package;Ljava/util/ArrayList;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setDefaultBrowserProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setDefaultDialerProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultDialerProvider;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setDefaultHomeProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultHomeProvider;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setDialerAppPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setLocationExtraPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setLocationPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setSimCallManagerPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setSmsAppPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setSyncAdapterPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$SyncAdapterPackagesProvider;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setUseOpenWifiAppPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setVoiceInteractionPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setWhitelistedRestrictedPermissions(Landroid/content/pm/PackageParser$Package;[ILjava/util/List;II)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->systemReady()V
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->revokeRuntimePermissionsIfGroupChanged(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setDefaultBrowserProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setDefaultDialerProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultDialerProvider;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setDefaultHomeProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultHomeProvider;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setDialerAppPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setLocationExtraPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setLocationPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setSimCallManagerPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setSmsAppPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setSyncAdapterPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$SyncAdapterPackagesProvider;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setUseOpenWifiAppPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setVoiceInteractionPackagesProvider(Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;)V
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->setWhitelistedRestrictedPermissions(Landroid/content/pm/parsing/AndroidPackage;[ILjava/util/List;II)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->systemReady()V
HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->updateAllPermissions(Ljava/lang/String;Z)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->updatePermissions(Ljava/lang/String;Landroid/content/pm/PackageParser$Package;)V
-PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->wereDefaultPermissionsGrantedSinceBoot(I)Z
+PLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->updatePermissions(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;->wereDefaultPermissionsGrantedSinceBoot(I)Z
HSPLcom/android/server/pm/permission/PermissionManagerService;-><clinit>()V
HSPLcom/android/server/pm/permission/PermissionManagerService;-><init>(Landroid/content/Context;Ljava/lang/Object;)V
PLcom/android/server/pm/permission/PermissionManagerService;->access$100(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerService$OnPermissionChangeListeners;
-PLcom/android/server/pm/permission/PermissionManagerService;->access$1100(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/PackageParser$Package;[I[Ljava/lang/String;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-PLcom/android/server/pm/permission/PermissionManagerService;->access$1200(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/PackageParser$Package;ILjava/util/List;IILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-PLcom/android/server/pm/permission/PermissionManagerService;->access$1500(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;Landroid/content/pm/PackageParser$Package;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1600(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;ZLcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-PLcom/android/server/pm/permission/PermissionManagerService;->access$1700(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/PackageParser$Package;I)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1900(Lcom/android/server/pm/permission/PermissionManagerService;IIZZZLjava/lang/String;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->access$1000(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;Z)V
+PLcom/android/server/pm/permission/PermissionManagerService;->access$1200(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;ILjava/util/List;IILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->access$1400(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1500(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;ZLcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$1800(Lcom/android/server/pm/permission/PermissionManagerService;IIZZZLjava/lang/String;)V
HSPLcom/android/server/pm/permission/PermissionManagerService;->access$200(Lcom/android/server/pm/permission/PermissionManagerService;)Landroid/content/pm/PackageManagerInternal;
-HSPLcom/android/server/pm/permission/PermissionManagerService;->access$2100(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionSettings;
-PLcom/android/server/pm/permission/PermissionManagerService;->access$2200(Lcom/android/server/pm/permission/PermissionManagerService;)Ljava/lang/Object;
-PLcom/android/server/pm/permission/PermissionManagerService;->access$2600(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/permission/PermissionManagerInternal$OnRuntimePermissionStateChangedListener;)V
-PLcom/android/server/pm/permission/PermissionManagerService;->access$2900(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;
-PLcom/android/server/pm/permission/PermissionManagerService;->access$2902(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;
-PLcom/android/server/pm/permission/PermissionManagerService;->access$3100(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultDialerProvider;
-PLcom/android/server/pm/permission/PermissionManagerService;->access$3102(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultDialerProvider;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultDialerProvider;
-PLcom/android/server/pm/permission/PermissionManagerService;->access$3200(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultHomeProvider;
-PLcom/android/server/pm/permission/PermissionManagerService;->access$3202(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultHomeProvider;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultHomeProvider;
-PLcom/android/server/pm/permission/PermissionManagerService;->access$3300(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$2000(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionSettings;
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$2100(Lcom/android/server/pm/permission/PermissionManagerService;)Ljava/lang/Object;
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$2500(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/permission/PermissionManagerInternal$OnRuntimePermissionStateChangedListener;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->access$2800(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$2802(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;
+PLcom/android/server/pm/permission/PermissionManagerService;->access$3000(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultDialerProvider;
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$3002(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultDialerProvider;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultDialerProvider;
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$3100(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultHomeProvider;
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$3102(Lcom/android/server/pm/permission/PermissionManagerService;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultHomeProvider;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultHomeProvider;
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$3200(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;
HSPLcom/android/server/pm/permission/PermissionManagerService;->access$400(Lcom/android/server/pm/permission/PermissionManagerService;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;
-PLcom/android/server/pm/permission/PermissionManagerService;->access$500(Lcom/android/server/pm/permission/PermissionManagerService;)V
-PLcom/android/server/pm/permission/PermissionManagerService;->access$600(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/PackageParser$Package;I)Z
-PLcom/android/server/pm/permission/PermissionManagerService;->access$700(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageParser$Package;Ljava/util/ArrayList;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->access$800(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/PackageParser$Package;Z)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->access$900(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/PackageParser$Package;Z)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->addAllPermissionGroups(Landroid/content/pm/PackageParser$Package;Z)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->addAllPermissions(Landroid/content/pm/PackageParser$Package;Z)V
-PLcom/android/server/pm/permission/PermissionManagerService;->addOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
-PLcom/android/server/pm/permission/PermissionManagerService;->addOnRuntimePermissionStateChangedListener(Landroid/permission/PermissionManagerInternal$OnRuntimePermissionStateChangedListener;)V
-PLcom/android/server/pm/permission/PermissionManagerService;->addPermission(Landroid/content/pm/PermissionInfo;Z)Z
-HPLcom/android/server/pm/permission/PermissionManagerService;->adjustPermissionProtectionFlagsLocked(ILjava/lang/String;I)I
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$500(Lcom/android/server/pm/permission/PermissionManagerService;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$600(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;I)Z
+PLcom/android/server/pm/permission/PermissionManagerService;->access$700(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$800(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->access$900(Lcom/android/server/pm/permission/PermissionManagerService;Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->addAllPermissionGroups(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->addAllPermissions(Landroid/content/pm/parsing/AndroidPackage;Z)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->addOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->addOnRuntimePermissionStateChangedListener(Landroid/permission/PermissionManagerInternal$OnRuntimePermissionStateChangedListener;)V
+HPLcom/android/server/pm/permission/PermissionManagerService;->addPermission(Landroid/content/pm/PermissionInfo;Z)Z
+HPLcom/android/server/pm/permission/PermissionManagerService;->addWhitelistedRestrictedPermission(Ljava/lang/String;Ljava/lang/String;II)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->adjustPermissionProtectionFlagsLocked(ILjava/lang/String;I)I
PLcom/android/server/pm/permission/PermissionManagerService;->backupRuntimePermissions(Landroid/os/UserHandle;)[B
HSPLcom/android/server/pm/permission/PermissionManagerService;->cacheBackgroundToForegoundPermissionMapping()V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->checkIfLegacyStorageOpsNeedToBeUpdated(Landroid/content/pm/PackageParser$Package;Z[I)[I
-HPLcom/android/server/pm/permission/PermissionManagerService;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
-HPLcom/android/server/pm/permission/PermissionManagerService;->checkPermissionImpl(Ljava/lang/String;Ljava/lang/String;I)I
-HPLcom/android/server/pm/permission/PermissionManagerService;->checkPermissionInternal(Landroid/content/pm/PackageParser$Package;ZLjava/lang/String;I)I
-HPLcom/android/server/pm/permission/PermissionManagerService;->checkSinglePermissionInternal(ILcom/android/server/pm/permission/PermissionsState;Ljava/lang/String;)Z
-HPLcom/android/server/pm/permission/PermissionManagerService;->checkSingleUidPermissionInternal(ILjava/lang/String;)Z
-HPLcom/android/server/pm/permission/PermissionManagerService;->checkUidPermission(Ljava/lang/String;I)I
-HPLcom/android/server/pm/permission/PermissionManagerService;->checkUidPermissionImpl(Ljava/lang/String;I)I
-HPLcom/android/server/pm/permission/PermissionManagerService;->checkUidPermissionInternal(Landroid/content/pm/PackageParser$Package;ILjava/lang/String;)I
+HPLcom/android/server/pm/permission/PermissionManagerService;->checkExistsAndEnforceCannotModifyImmutablyRestrictedPermission(Ljava/lang/String;)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->checkIfLegacyStorageOpsNeedToBeUpdated(Landroid/content/pm/parsing/AndroidPackage;Z[I)[I
+HSPLcom/android/server/pm/permission/PermissionManagerService;->checkPermission(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLcom/android/server/pm/permission/PermissionManagerService;->checkPermissionImpl(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLcom/android/server/pm/permission/PermissionManagerService;->checkPermissionInternal(Landroid/content/pm/parsing/AndroidPackage;ZLjava/lang/String;I)I
+HSPLcom/android/server/pm/permission/PermissionManagerService;->checkSinglePermissionInternal(ILcom/android/server/pm/permission/PermissionsState;Ljava/lang/String;)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->checkSingleUidPermissionInternal(ILjava/lang/String;)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->checkUidPermission(Ljava/lang/String;I)I
+HSPLcom/android/server/pm/permission/PermissionManagerService;->checkUidPermissionImpl(Ljava/lang/String;I)I
+HSPLcom/android/server/pm/permission/PermissionManagerService;->checkUidPermissionInternal(Landroid/content/pm/parsing/AndroidPackage;ILjava/lang/String;)I
HSPLcom/android/server/pm/permission/PermissionManagerService;->create(Landroid/content/Context;Ljava/lang/Object;)Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
HPLcom/android/server/pm/permission/PermissionManagerService;->doNotifyRuntimePermissionStateChanged(Ljava/lang/String;I)V
HSPLcom/android/server/pm/permission/PermissionManagerService;->enforceCrossUserPermission(IIZZZLjava/lang/String;)V
-HPLcom/android/server/pm/permission/PermissionManagerService;->enforceGrantRevokeGetRuntimePermissionPermissions(Ljava/lang/String;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->enforceGrantRevokeGetRuntimePermissionPermissions(Ljava/lang/String;)V
PLcom/android/server/pm/permission/PermissionManagerService;->enforceGrantRevokeRuntimePermissionPermissions(Ljava/lang/String;)V
HPLcom/android/server/pm/permission/PermissionManagerService;->getAllPermissionGroups(I)Landroid/content/pm/ParceledListSlice;
-HPLcom/android/server/pm/permission/PermissionManagerService;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;I)I
-HPLcom/android/server/pm/permission/PermissionManagerService;->getPermissionFlagsInternal(Ljava/lang/String;Ljava/lang/String;II)I
+PLcom/android/server/pm/permission/PermissionManagerService;->getBackgroundPermissions()Landroid/util/ArrayMap;
+PLcom/android/server/pm/permission/PermissionManagerService;->getDefaultBrowser(I)Ljava/lang/String;
+PLcom/android/server/pm/permission/PermissionManagerService;->getPermission(Ljava/lang/String;)Lcom/android/server/pm/permission/BasePermission;
+HSPLcom/android/server/pm/permission/PermissionManagerService;->getPermissionFlags(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLcom/android/server/pm/permission/PermissionManagerService;->getPermissionFlagsInternal(Ljava/lang/String;Ljava/lang/String;II)I
HPLcom/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;
+HSPLcom/android/server/pm/permission/PermissionManagerService;->getPermissionInfo(Ljava/lang/String;Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;
HSPLcom/android/server/pm/permission/PermissionManagerService;->getSplitPermissions()Ljava/util/List;
-HSPLcom/android/server/pm/permission/PermissionManagerService;->getVolumeUuidForPackage(Landroid/content/pm/PackageParser$Package;)Ljava/lang/String;
+HSPLcom/android/server/pm/permission/PermissionManagerService;->getVolumeUuidForPackage(Landroid/content/pm/parsing/AndroidPackage;)Ljava/lang/String;
HPLcom/android/server/pm/permission/PermissionManagerService;->getWhitelistedRestrictedPermissions(Ljava/lang/String;II)Ljava/util/List;
PLcom/android/server/pm/permission/PermissionManagerService;->grantDefaultPermissionsToEnabledImsServices([Ljava/lang/String;I)V
PLcom/android/server/pm/permission/PermissionManagerService;->grantDefaultPermissionsToEnabledTelephonyDataServices([Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/PermissionManagerService;->grantRequestedRuntimePermissions(Landroid/content/pm/PackageParser$Package;[I[Ljava/lang/String;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-PLcom/android/server/pm/permission/PermissionManagerService;->grantRequestedRuntimePermissionsForUser(Landroid/content/pm/PackageParser$Package;I[Ljava/lang/String;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
PLcom/android/server/pm/permission/PermissionManagerService;->grantRuntimePermission(Ljava/lang/String;Ljava/lang/String;I)V
-HPLcom/android/server/pm/permission/PermissionManagerService;->grantRuntimePermissionInternal(Ljava/lang/String;Ljava/lang/String;ZIILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->grantSignaturePermission(Ljava/lang/String;Landroid/content/pm/PackageParser$Package;Lcom/android/server/pm/permission/BasePermission;Lcom/android/server/pm/permission/PermissionsState;)Z
-PLcom/android/server/pm/permission/PermissionManagerService;->hasPermission(Landroid/content/pm/PackageParser$Package;Ljava/lang/String;)Z
-HSPLcom/android/server/pm/permission/PermissionManagerService;->hasPrivappWhitelistEntry(Ljava/lang/String;Landroid/content/pm/PackageParser$Package;)Z
-PLcom/android/server/pm/permission/PermissionManagerService;->inheritPermissionStateToNewImplicitPermissionLocked(Landroid/util/ArraySet;Ljava/lang/String;Lcom/android/server/pm/permission/PermissionsState;Landroid/content/pm/PackageParser$Package;I)V
+PLcom/android/server/pm/permission/PermissionManagerService;->grantRuntimePermissionInternal(Ljava/lang/String;Ljava/lang/String;ZIILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->grantSignaturePermission(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/permission/BasePermission;Lcom/android/server/pm/permission/PermissionsState;)Z
+HPLcom/android/server/pm/permission/PermissionManagerService;->hasPermission(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->hasPrivappWhitelistEntry(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/permission/PermissionManagerService;->inheritPermissionStateToNewImplicitPermissionLocked(Landroid/util/ArraySet;Ljava/lang/String;Lcom/android/server/pm/permission/PermissionsState;Landroid/content/pm/parsing/AndroidPackage;I)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->isNewPlatformPermissionForPackage(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->isPackageRequestingPermission(Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;)Z
PLcom/android/server/pm/permission/PermissionManagerService;->isPermissionRevokedByPolicy(Ljava/lang/String;Ljava/lang/String;I)Z
-PLcom/android/server/pm/permission/PermissionManagerService;->isPermissionsReviewRequired(Landroid/content/pm/PackageParser$Package;I)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->isPermissionsReviewRequired(Landroid/content/pm/parsing/AndroidPackage;I)Z
PLcom/android/server/pm/permission/PermissionManagerService;->lambda$NPd9St1HBvGAtg1uhMV2Upfww4g(Lcom/android/server/pm/permission/PermissionManagerService;Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/PermissionManagerService;->lambda$grantDefaultPermissionsToEnabledImsServices$3$PermissionManagerService([Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/PermissionManagerService;->lambda$grantDefaultPermissionsToEnabledTelephonyDataServices$4$PermissionManagerService([Ljava/lang/String;I)V
-PLcom/android/server/pm/permission/PermissionManagerService;->lambda$restoreDelayedRuntimePermissions$8$PermissionManagerService(Landroid/os/UserHandle;Ljava/lang/Boolean;)V
-PLcom/android/server/pm/permission/PermissionManagerService;->lambda$revokeDefaultPermissionsFromDisabledTelephonyDataServices$5$PermissionManagerService([Ljava/lang/String;I)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->lambda$updatePermissions$9$PermissionManagerService(Landroid/content/pm/PackageParser$Package;ZLjava/lang/String;Ljava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;Landroid/content/pm/PackageParser$Package;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->lambda$grantDefaultPermissionsToEnabledImsServices$4$PermissionManagerService([Ljava/lang/String;I)V
+PLcom/android/server/pm/permission/PermissionManagerService;->lambda$grantDefaultPermissionsToEnabledTelephonyDataServices$5$PermissionManagerService([Ljava/lang/String;I)V
+PLcom/android/server/pm/permission/PermissionManagerService;->lambda$restoreDelayedRuntimePermissions$9$PermissionManagerService(Landroid/os/UserHandle;Ljava/lang/Boolean;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->lambda$revokeDefaultPermissionsFromDisabledTelephonyDataServices$6$PermissionManagerService([Ljava/lang/String;I)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->lambda$updatePermissions$10$PermissionManagerService(Landroid/content/pm/parsing/AndroidPackage;ZLjava/lang/String;Ljava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;Landroid/content/pm/parsing/AndroidPackage;)V
PLcom/android/server/pm/permission/PermissionManagerService;->logPermission(ILjava/lang/String;Ljava/lang/String;)V
HPLcom/android/server/pm/permission/PermissionManagerService;->notifyRuntimePermissionStateChanged(Ljava/lang/String;I)V
HPLcom/android/server/pm/permission/PermissionManagerService;->queryPermissionsByGroup(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
-PLcom/android/server/pm/permission/PermissionManagerService;->removeAllPermissions(Landroid/content/pm/PackageParser$Package;Z)V
+HPLcom/android/server/pm/permission/PermissionManagerService;->removeAllPermissions(Landroid/content/pm/parsing/AndroidPackage;Z)V
PLcom/android/server/pm/permission/PermissionManagerService;->removeOnPermissionsChangeListener(Landroid/permission/IOnPermissionsChangeListener;)V
-PLcom/android/server/pm/permission/PermissionManagerService;->resetRuntimePermissionsInternal(Landroid/content/pm/PackageParser$Package;I)V
PLcom/android/server/pm/permission/PermissionManagerService;->restoreDelayedRuntimePermissions(Ljava/lang/String;Landroid/os/UserHandle;)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->restorePermissionState(Landroid/content/pm/PackageParser$Package;ZLjava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->restorePermissionState(Landroid/content/pm/parsing/AndroidPackage;ZLjava/lang/String;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
PLcom/android/server/pm/permission/PermissionManagerService;->revokeDefaultPermissionsFromDisabledTelephonyDataServices([Ljava/lang/String;I)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->revokePermissionsNoLongerImplicitLocked(Lcom/android/server/pm/permission/PermissionsState;Landroid/content/pm/PackageParser$Package;[I)[I
-PLcom/android/server/pm/permission/PermissionManagerService;->revokeRuntimePermissionInternal(Ljava/lang/String;Ljava/lang/String;ZIILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-PLcom/android/server/pm/permission/PermissionManagerService;->revokeRuntimePermissionsIfGroupChanged(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PackageParser$Package;Ljava/util/ArrayList;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->revokePermissionsNoLongerImplicitLocked(Lcom/android/server/pm/permission/PermissionsState;Landroid/content/pm/parsing/AndroidPackage;[I)[I
+HPLcom/android/server/pm/permission/PermissionManagerService;->revokeRuntimePermissionsIfGroupChanged(Landroid/content/pm/parsing/AndroidPackage;Landroid/content/pm/parsing/AndroidPackage;Ljava/util/ArrayList;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
PLcom/android/server/pm/permission/PermissionManagerService;->revokeUnusedSharedUserPermissionsLocked(Lcom/android/server/pm/SharedUserSetting;[I)[I
-HSPLcom/android/server/pm/permission/PermissionManagerService;->setInitialGrantForNewImplicitPermissionsLocked(Lcom/android/server/pm/permission/PermissionsState;Lcom/android/server/pm/permission/PermissionsState;Landroid/content/pm/PackageParser$Package;Landroid/util/ArraySet;[I)[I
-HPLcom/android/server/pm/permission/PermissionManagerService;->setWhitelistedRestrictedPermissionsForUser(Landroid/content/pm/PackageParser$Package;ILjava/util/List;IILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-PLcom/android/server/pm/permission/PermissionManagerService;->systemReady()V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->setInitialGrantForNewImplicitPermissionsLocked(Lcom/android/server/pm/permission/PermissionsState;Lcom/android/server/pm/permission/PermissionsState;Landroid/content/pm/parsing/AndroidPackage;Landroid/util/ArraySet;[I)[I
+HPLcom/android/server/pm/permission/PermissionManagerService;->setWhitelistedRestrictedPermissionsForUser(Landroid/content/pm/parsing/AndroidPackage;ILjava/util/List;IILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+PLcom/android/server/pm/permission/PermissionManagerService;->setWhitelistedRestrictedPermissionsInternal(Ljava/lang/String;Ljava/util/List;II)Z
+PLcom/android/server/pm/permission/PermissionManagerService;->shouldShowRequestPermissionRationale(Ljava/lang/String;Ljava/lang/String;I)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->systemReady()V
HSPLcom/android/server/pm/permission/PermissionManagerService;->updateAllPermissions(Ljava/lang/String;ZLcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
HPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissionFlags(Ljava/lang/String;Ljava/lang/String;IIZI)V
HPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissionFlagsInternal(Ljava/lang/String;Ljava/lang/String;IIIIZLcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissionSourcePackage(Ljava/lang/String;Landroid/content/pm/PackageParser$Package;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)Z
-HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissionTreeSourcePackage(Ljava/lang/String;Landroid/content/pm/PackageParser$Package;)Z
-PLcom/android/server/pm/permission/PermissionManagerService;->updatePermissions(Ljava/lang/String;Landroid/content/pm/PackageParser$Package;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
-HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissions(Ljava/lang/String;Landroid/content/pm/PackageParser$Package;Ljava/lang/String;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissionSourcePackage(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)Z
+HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissionTreeSourcePackage(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;)Z
+PLcom/android/server/pm/permission/PermissionManagerService;->updatePermissions(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
+HSPLcom/android/server/pm/permission/PermissionManagerService;->updatePermissions(Ljava/lang/String;Landroid/content/pm/parsing/AndroidPackage;Ljava/lang/String;ILcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;)V
HSPLcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;-><init>()V
HSPLcom/android/server/pm/permission/PermissionManagerServiceInternal;-><init>()V
HSPLcom/android/server/pm/permission/PermissionSettings;-><init>(Ljava/lang/Object;)V
HSPLcom/android/server/pm/permission/PermissionSettings;->addAppOpPackage(Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/pm/permission/PermissionSettings;->dumpPermissions(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArraySet;ZLcom/android/server/pm/DumpState;)V
PLcom/android/server/pm/permission/PermissionSettings;->enforcePermissionTree(Ljava/lang/String;I)Lcom/android/server/pm/permission/BasePermission;
HSPLcom/android/server/pm/permission/PermissionSettings;->getAllPermissionTreesLocked()Ljava/util/Collection;
HSPLcom/android/server/pm/permission/PermissionSettings;->getAllPermissionsLocked()Ljava/util/Collection;
HSPLcom/android/server/pm/permission/PermissionSettings;->getPermission(Ljava/lang/String;)Lcom/android/server/pm/permission/BasePermission;
HSPLcom/android/server/pm/permission/PermissionSettings;->getPermissionLocked(Ljava/lang/String;)Lcom/android/server/pm/permission/BasePermission;
-HSPLcom/android/server/pm/permission/PermissionSettings;->getPermissionTreeLocked(Ljava/lang/String;)Lcom/android/server/pm/permission/BasePermission;
PLcom/android/server/pm/permission/PermissionSettings;->isPermissionAppOp(Ljava/lang/String;)Z
HSPLcom/android/server/pm/permission/PermissionSettings;->putPermissionLocked(Ljava/lang/String;Lcom/android/server/pm/permission/BasePermission;)V
-HSPLcom/android/server/pm/permission/PermissionSettings;->putPermissionTreeLocked(Ljava/lang/String;Lcom/android/server/pm/permission/BasePermission;)V
HSPLcom/android/server/pm/permission/PermissionSettings;->readPermissionTrees(Lorg/xmlpull/v1/XmlPullParser;)V
HSPLcom/android/server/pm/permission/PermissionSettings;->readPermissions(Landroid/util/ArrayMap;Lorg/xmlpull/v1/XmlPullParser;)V
HSPLcom/android/server/pm/permission/PermissionSettings;->readPermissions(Lorg/xmlpull/v1/XmlPullParser;)V
-PLcom/android/server/pm/permission/PermissionSettings;->writePermissionTrees(Lorg/xmlpull/v1/XmlSerializer;)V
-HPLcom/android/server/pm/permission/PermissionSettings;->writePermissions(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/pm/permission/PermissionSettings;->writePermissionTrees(Lorg/xmlpull/v1/XmlSerializer;)V
+HSPLcom/android/server/pm/permission/PermissionSettings;->writePermissions(Lorg/xmlpull/v1/XmlSerializer;)V
HSPLcom/android/server/pm/permission/PermissionsState$PermissionData;-><init>(Lcom/android/server/pm/permission/BasePermission;)V
HSPLcom/android/server/pm/permission/PermissionsState$PermissionData;-><init>(Lcom/android/server/pm/permission/PermissionsState$PermissionData;)V
HSPLcom/android/server/pm/permission/PermissionsState$PermissionData;->computeGids(I)[I
@@ -13688,7 +16395,7 @@ HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->access$0
HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->access$100(Lcom/android/server/pm/permission/PermissionsState$PermissionState;)I
HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->access$102(Lcom/android/server/pm/permission/PermissionsState$PermissionState;I)I
HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->getFlags()I
-HPLcom/android/server/pm/permission/PermissionsState$PermissionState;->getName()Ljava/lang/String;
+HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->getName()Ljava/lang/String;
HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->isDefault()Z
HSPLcom/android/server/pm/permission/PermissionsState$PermissionState;->isGranted()Z
HSPLcom/android/server/pm/permission/PermissionsState;-><clinit>()V
@@ -13696,19 +16403,19 @@ HSPLcom/android/server/pm/permission/PermissionsState;-><init>()V
PLcom/android/server/pm/permission/PermissionsState;-><init>(Lcom/android/server/pm/permission/PermissionsState;)V
HSPLcom/android/server/pm/permission/PermissionsState;->appendInts([I[I)[I
HSPLcom/android/server/pm/permission/PermissionsState;->computeGids(I)[I
-HPLcom/android/server/pm/permission/PermissionsState;->computeGids([I)[I
+HSPLcom/android/server/pm/permission/PermissionsState;->computeGids([I)[I
HSPLcom/android/server/pm/permission/PermissionsState;->copyFrom(Lcom/android/server/pm/permission/PermissionsState;)V
HSPLcom/android/server/pm/permission/PermissionsState;->enforceValidUserId(I)V
HSPLcom/android/server/pm/permission/PermissionsState;->ensureNoPermissionData(Ljava/lang/String;)V
HSPLcom/android/server/pm/permission/PermissionsState;->ensurePermissionData(Lcom/android/server/pm/permission/BasePermission;)Lcom/android/server/pm/permission/PermissionsState$PermissionData;
HSPLcom/android/server/pm/permission/PermissionsState;->getInstallPermissionState(Ljava/lang/String;)Lcom/android/server/pm/permission/PermissionsState$PermissionState;
-PLcom/android/server/pm/permission/PermissionsState;->getInstallPermissionStates()Ljava/util/List;
+HSPLcom/android/server/pm/permission/PermissionsState;->getInstallPermissionStates()Ljava/util/List;
HSPLcom/android/server/pm/permission/PermissionsState;->getPermissionFlags(Ljava/lang/String;I)I
HSPLcom/android/server/pm/permission/PermissionsState;->getPermissionState(Ljava/lang/String;I)Lcom/android/server/pm/permission/PermissionsState$PermissionState;
-HPLcom/android/server/pm/permission/PermissionsState;->getPermissionStatesInternal(I)Ljava/util/List;
+HSPLcom/android/server/pm/permission/PermissionsState;->getPermissionStatesInternal(I)Ljava/util/List;
HSPLcom/android/server/pm/permission/PermissionsState;->getPermissions(I)Ljava/util/Set;
HSPLcom/android/server/pm/permission/PermissionsState;->getRuntimePermissionState(Ljava/lang/String;I)Lcom/android/server/pm/permission/PermissionsState$PermissionState;
-HPLcom/android/server/pm/permission/PermissionsState;->getRuntimePermissionStates(I)Ljava/util/List;
+HSPLcom/android/server/pm/permission/PermissionsState;->getRuntimePermissionStates(I)Ljava/util/List;
HSPLcom/android/server/pm/permission/PermissionsState;->grantInstallPermission(Lcom/android/server/pm/permission/BasePermission;)I
HSPLcom/android/server/pm/permission/PermissionsState;->grantPermission(Lcom/android/server/pm/permission/BasePermission;I)I
HSPLcom/android/server/pm/permission/PermissionsState;->grantRuntimePermission(Lcom/android/server/pm/permission/BasePermission;I)I
@@ -13720,253 +16427,285 @@ HSPLcom/android/server/pm/permission/PermissionsState;->hasRuntimePermission(Lja
PLcom/android/server/pm/permission/PermissionsState;->reset()V
HSPLcom/android/server/pm/permission/PermissionsState;->revokeInstallPermission(Lcom/android/server/pm/permission/BasePermission;)I
HSPLcom/android/server/pm/permission/PermissionsState;->revokePermission(Lcom/android/server/pm/permission/BasePermission;I)I
+PLcom/android/server/pm/permission/PermissionsState;->revokeRuntimePermission(Lcom/android/server/pm/permission/BasePermission;I)I
HSPLcom/android/server/pm/permission/PermissionsState;->setGlobalGids([I)V
HSPLcom/android/server/pm/permission/PermissionsState;->updatePermissionFlags(Lcom/android/server/pm/permission/BasePermission;III)Z
-PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$K1QpWYLKz7rfj4y4fthPQy64Pek;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
-PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$K1QpWYLKz7rfj4y4fthPQy64Pek;->accept(Ljava/lang/Object;)V
+PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$8D9Zbki65ND_Q20M-Trexl6cHcQ;-><init>(Ljava/util/concurrent/CountDownLatch;)V
+PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$8D9Zbki65ND_Q20M-Trexl6cHcQ;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$EOXe1_laAw9FFgJquDg6Qy2DagQ;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
+HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$EOXe1_laAw9FFgJquDg6Qy2DagQ;->accept(Ljava/lang/Object;)V
PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$RYery4oeHNcS8uZ6BgM2MtZIvKw;-><clinit>()V
PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$RYery4oeHNcS8uZ6BgM2MtZIvKw;-><init>()V
HPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$RYery4oeHNcS8uZ6BgM2MtZIvKw;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$V2gOjn4rTBH_rbxagOz-eOTvNfc;-><init>(Lcom/android/server/policy/PermissionPolicyService;)V
+HSPLcom/android/server/policy/-$$Lambda$PermissionPolicyService$V2gOjn4rTBH_rbxagOz-eOTvNfc;-><init>(Lcom/android/server/policy/PermissionPolicyService;)V
PLcom/android/server/policy/-$$Lambda$PermissionPolicyService$V2gOjn4rTBH_rbxagOz-eOTvNfc;->onRuntimePermissionStateChanged(Ljava/lang/String;I)V
-PLcom/android/server/policy/-$$Lambda$PhoneWindowManager$DisplayHomeButtonHandler$ljCIzo7y96OZCYYMVaAi6LAwRAE;-><init>(Lcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;)V
-PLcom/android/server/policy/-$$Lambda$PhoneWindowManager$DisplayHomeButtonHandler$ljCIzo7y96OZCYYMVaAi6LAwRAE;->run()V
PLcom/android/server/policy/-$$Lambda$oXa0y3A-00RiQs6-KTPBgpkGtgw;-><init>(Lcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;)V
PLcom/android/server/policy/-$$Lambda$oXa0y3A-00RiQs6-KTPBgpkGtgw;->run()V
-PLcom/android/server/policy/EventLogTags;->writeInterceptPower(Ljava/lang/String;II)V
+HPLcom/android/server/policy/EventLogTags;->writeInterceptPower(Ljava/lang/String;II)V
PLcom/android/server/policy/EventLogTags;->writeScreenToggled(I)V
-PLcom/android/server/policy/GlobalKeyManager;-><init>(Landroid/content/Context;)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/GlobalActions;->onGlobalActionsDismissed()V
+PLcom/android/server/policy/GlobalActions;->onGlobalActionsShown()V
+PLcom/android/server/policy/GlobalActions;->showDialog(ZZ)V
+HSPLcom/android/server/policy/GlobalKeyManager;-><init>(Landroid/content/Context;)V
+PLcom/android/server/policy/GlobalKeyManager;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
PLcom/android/server/policy/GlobalKeyManager;->handleGlobalKey(Landroid/content/Context;ILandroid/view/KeyEvent;)Z
-PLcom/android/server/policy/GlobalKeyManager;->loadGlobalKeys(Landroid/content/Context;)V
-PLcom/android/server/policy/IconUtilities;-><init>(Landroid/content/Context;)V
-PLcom/android/server/policy/LogDecelerateInterpolator;-><init>(II)V
-PLcom/android/server/policy/LogDecelerateInterpolator;->computeLog(FII)F
+HSPLcom/android/server/policy/GlobalKeyManager;->loadGlobalKeys(Landroid/content/Context;)V
+PLcom/android/server/policy/GlobalKeyManager;->shouldHandleGlobalKey(ILandroid/view/KeyEvent;)Z
+HSPLcom/android/server/policy/IconUtilities;-><init>(Landroid/content/Context;)V
+PLcom/android/server/policy/IconUtilities;->createIconBitmap(Landroid/graphics/drawable/Drawable;)Landroid/graphics/Bitmap;
+HSPLcom/android/server/policy/LogDecelerateInterpolator;-><init>(II)V
+HSPLcom/android/server/policy/LogDecelerateInterpolator;->computeLog(FII)F
PLcom/android/server/policy/LogDecelerateInterpolator;->getInterpolation(F)F
-PLcom/android/server/policy/PermissionPolicyInternal;-><init>()V
-PLcom/android/server/policy/PermissionPolicyService$1;-><init>(Lcom/android/server/policy/PermissionPolicyService;)V
+HSPLcom/android/server/policy/PermissionPolicyInternal;-><init>()V
+HSPLcom/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(Ljava/lang/String;I)V
-PLcom/android/server/policy/PermissionPolicyService$2;-><init>(Lcom/android/server/policy/PermissionPolicyService;)V
+HSPLcom/android/server/policy/PermissionPolicyService$2;-><init>(Lcom/android/server/policy/PermissionPolicyService;)V
HPLcom/android/server/policy/PermissionPolicyService$2;->opChanged(IILjava/lang/String;)V
-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$1;)V
+HSPLcom/android/server/policy/PermissionPolicyService$Internal;-><init>(Lcom/android/server/policy/PermissionPolicyService;)V
+HSPLcom/android/server/policy/PermissionPolicyService$Internal;-><init>(Lcom/android/server/policy/PermissionPolicyService;Lcom/android/server/policy/PermissionPolicyService$1;)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;->isInitialized(I)Z
-PLcom/android/server/policy/PermissionPolicyService$Internal;->setOnInitializedCallback(Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;)V
-PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;ILjava/lang/String;I)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;-><init>(Landroid/content/Context;)V
-PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->access$400(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addAppOps(Landroid/content/pm/PackageInfo;Ljava/lang/String;)V
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addExtraAppOp(Landroid/content/pm/PackageInfo;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;Landroid/content/pm/PermissionInfo;)V
-HPLcom/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
-PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnored(IILjava/lang/String;)V
-PLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnoredIfNotAllowed(IILjava/lang/String;)Z
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->shouldGrantAppOp(Landroid/content/pm/PackageInfo;Landroid/content/pm/PermissionInfo;)Z
-HPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->syncPackages()V
-PLcom/android/server/policy/PermissionPolicyService;-><clinit>()V
-PLcom/android/server/policy/PermissionPolicyService;-><init>(Landroid/content/Context;)V
-HPLcom/android/server/policy/PermissionPolicyService;->access$100(Lcom/android/server/policy/PermissionPolicyService;I)Z
+HSPLcom/android/server/policy/PermissionPolicyService$Internal;->isInitialized(I)Z
+HSPLcom/android/server/policy/PermissionPolicyService$Internal;->setOnInitializedCallback(Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;-><init>(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;ILjava/lang/String;I)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->access$400(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addAppOps(Landroid/content/pm/PackageInfo;Ljava/lang/String;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addExtraAppOp(Landroid/content/pm/PackageInfo;Landroid/content/pm/PermissionInfo;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addPackage(Ljava/lang/String;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->addPermissionAppOp(Landroid/content/pm/PackageInfo;Landroid/content/pm/PermissionInfo;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidMode(IIILjava/lang/String;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeAllowed(IILjava/lang/String;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeForeground(IILjava/lang/String;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnored(IILjava/lang/String;)V
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->setUidModeIgnoredIfNotAllowed(IILjava/lang/String;)Z
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->shouldGrantAppOp(Landroid/content/pm/PackageInfo;Landroid/content/pm/PermissionInfo;)Z
+HSPLcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;->syncPackages()V
+HSPLcom/android/server/policy/PermissionPolicyService;-><clinit>()V
+HSPLcom/android/server/policy/PermissionPolicyService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/policy/PermissionPolicyService;->access$100(Lcom/android/server/policy/PermissionPolicyService;I)Z
PLcom/android/server/policy/PermissionPolicyService;->access$200(Lcom/android/server/policy/PermissionPolicyService;Ljava/lang/String;I)V
-PLcom/android/server/policy/PermissionPolicyService;->access$300(Lcom/android/server/policy/PermissionPolicyService;Ljava/lang/String;I)V
-PLcom/android/server/policy/PermissionPolicyService;->access$500(Ljava/lang/String;)I
-PLcom/android/server/policy/PermissionPolicyService;->access$700(Lcom/android/server/policy/PermissionPolicyService;)Ljava/lang/Object;
-PLcom/android/server/policy/PermissionPolicyService;->access$802(Lcom/android/server/policy/PermissionPolicyService;Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;)Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;
-HPLcom/android/server/policy/PermissionPolicyService;->getSwitchOp(Ljava/lang/String;)I
-HPLcom/android/server/policy/PermissionPolicyService;->getUserContext(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/content/Context;
-PLcom/android/server/policy/PermissionPolicyService;->grantOrUpgradeDefaultRuntimePermissionsIfNeeded(I)V
-HPLcom/android/server/policy/PermissionPolicyService;->isStarted(I)Z
-PLcom/android/server/policy/PermissionPolicyService;->lambda$RYery4oeHNcS8uZ6BgM2MtZIvKw(Lcom/android/server/policy/PermissionPolicyService;Ljava/lang/String;I)V
+HPLcom/android/server/policy/PermissionPolicyService;->access$300(Lcom/android/server/policy/PermissionPolicyService;Ljava/lang/String;I)V
+HSPLcom/android/server/policy/PermissionPolicyService;->access$500(Ljava/lang/String;)I
+HSPLcom/android/server/policy/PermissionPolicyService;->access$700(Lcom/android/server/policy/PermissionPolicyService;)Ljava/lang/Object;
+HSPLcom/android/server/policy/PermissionPolicyService;->access$802(Lcom/android/server/policy/PermissionPolicyService;Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;)Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;
+HSPLcom/android/server/policy/PermissionPolicyService;->getSwitchOp(Ljava/lang/String;)I
+HSPLcom/android/server/policy/PermissionPolicyService;->getUserContext(Landroid/content/Context;Landroid/os/UserHandle;)Landroid/content/Context;
+HSPLcom/android/server/policy/PermissionPolicyService;->grantOrUpgradeDefaultRuntimePermissionsIfNeeded(I)V
+HSPLcom/android/server/policy/PermissionPolicyService;->isStarted(I)Z
+HPLcom/android/server/policy/PermissionPolicyService;->lambda$RYery4oeHNcS8uZ6BgM2MtZIvKw(Lcom/android/server/policy/PermissionPolicyService;Ljava/lang/String;I)V
PLcom/android/server/policy/PermissionPolicyService;->lambda$V2gOjn4rTBH_rbxagOz-eOTvNfc(Lcom/android/server/policy/PermissionPolicyService;Ljava/lang/String;I)V
-HPLcom/android/server/policy/PermissionPolicyService;->lambda$synchronizePermissionsAndAppOpsForUser$1(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;Landroid/content/pm/PackageParser$Package;)V
-PLcom/android/server/policy/PermissionPolicyService;->onBootPhase(I)V
-PLcom/android/server/policy/PermissionPolicyService;->onStart()V
-PLcom/android/server/policy/PermissionPolicyService;->onStartUser(I)V
+PLcom/android/server/policy/PermissionPolicyService;->lambda$grantOrUpgradeDefaultRuntimePermissionsIfNeeded$0(Ljava/util/concurrent/CountDownLatch;Ljava/lang/Boolean;)V
+HSPLcom/android/server/policy/PermissionPolicyService;->lambda$synchronizePermissionsAndAppOpsForUser$1(Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;Landroid/content/pm/parsing/AndroidPackage;)V
+HSPLcom/android/server/policy/PermissionPolicyService;->onBootPhase(I)V
+HSPLcom/android/server/policy/PermissionPolicyService;->onStart()V
+HSPLcom/android/server/policy/PermissionPolicyService;->onStartUser(I)V
HPLcom/android/server/policy/PermissionPolicyService;->synchronizePackagePermissionsAndAppOpsAsyncForUser(Ljava/lang/String;I)V
HPLcom/android/server/policy/PermissionPolicyService;->synchronizePackagePermissionsAndAppOpsForUser(Ljava/lang/String;I)V
-PLcom/android/server/policy/PermissionPolicyService;->synchronizePermissionsAndAppOpsForUser(I)V
-PLcom/android/server/policy/PhoneWindowManager$10;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$11;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PermissionPolicyService;->synchronizePermissionsAndAppOpsForUser(I)V
+HSPLcom/android/server/policy/PhoneWindowManager$10;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$11;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
PLcom/android/server/policy/PhoneWindowManager$11;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/policy/PhoneWindowManager$12;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$12;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
PLcom/android/server/policy/PhoneWindowManager$12;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/policy/PhoneWindowManager$13;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$13;->run()V
-PLcom/android/server/policy/PhoneWindowManager$1;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$13;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$13;->run()V
+HSPLcom/android/server/policy/PhoneWindowManager$1;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
PLcom/android/server/policy/PhoneWindowManager$1;->run()V
-PLcom/android/server/policy/PhoneWindowManager$2;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$2;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
PLcom/android/server/policy/PhoneWindowManager$2;->onDrawn()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$5;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$6;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$7;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$3;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$4;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$5;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$6;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$7;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+PLcom/android/server/policy/PhoneWindowManager$7;->onAppTransitionCancelledLocked(I)V
PLcom/android/server/policy/PhoneWindowManager$7;->onAppTransitionStartingLocked(IJJJ)I
-PLcom/android/server/policy/PhoneWindowManager$8;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$8;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
PLcom/android/server/policy/PhoneWindowManager$8;->onShowingChanged()V
PLcom/android/server/policy/PhoneWindowManager$8;->onTrustedChanged()V
-PLcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler$1;-><init>(Lcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;)V
-PLcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;-><init>(Lcom/android/server/policy/PhoneWindowManager;I)V
-PLcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;->handleHomeButton(Landroid/os/IBinder;Landroid/view/KeyEvent;)I
-PLcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;->lambda$handleHomeButton$0$PhoneWindowManager$DisplayHomeButtonHandler()V
-PLcom/android/server/policy/PhoneWindowManager$MyWakeGestureListener;-><init>(Lcom/android/server/policy/PhoneWindowManager;Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/policy/PhoneWindowManager$PolicyHandler;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$PolicyHandler;-><init>(Lcom/android/server/policy/PhoneWindowManager;Lcom/android/server/policy/PhoneWindowManager$1;)V
+HSPLcom/android/server/policy/PhoneWindowManager$MyWakeGestureListener;-><init>(Lcom/android/server/policy/PhoneWindowManager;Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/policy/PhoneWindowManager$PolicyHandler;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$PolicyHandler;-><init>(Lcom/android/server/policy/PhoneWindowManager;Lcom/android/server/policy/PhoneWindowManager$1;)V
PLcom/android/server/policy/PhoneWindowManager$PolicyHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/policy/PhoneWindowManager$ScreenLockTimeout;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$ScreenshotRunnable;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager$ScreenshotRunnable;-><init>(Lcom/android/server/policy/PhoneWindowManager;Lcom/android/server/policy/PhoneWindowManager$1;)V
-PLcom/android/server/policy/PhoneWindowManager$SettingsObserver;-><init>(Lcom/android/server/policy/PhoneWindowManager;Landroid/os/Handler;)V
-PLcom/android/server/policy/PhoneWindowManager$SettingsObserver;->observe()V
+HSPLcom/android/server/policy/PhoneWindowManager$ScreenLockTimeout;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$ScreenshotRunnable;-><init>(Lcom/android/server/policy/PhoneWindowManager;)V
+HSPLcom/android/server/policy/PhoneWindowManager$ScreenshotRunnable;-><init>(Lcom/android/server/policy/PhoneWindowManager;Lcom/android/server/policy/PhoneWindowManager$1;)V
+PLcom/android/server/policy/PhoneWindowManager$ScreenshotRunnable;->run()V
+HSPLcom/android/server/policy/PhoneWindowManager$SettingsObserver;-><init>(Lcom/android/server/policy/PhoneWindowManager;Landroid/os/Handler;)V
+HSPLcom/android/server/policy/PhoneWindowManager$SettingsObserver;->observe()V
PLcom/android/server/policy/PhoneWindowManager$SettingsObserver;->onChange(Z)V
-PLcom/android/server/policy/PhoneWindowManager;-><clinit>()V
-PLcom/android/server/policy/PhoneWindowManager;-><init>()V
+HSPLcom/android/server/policy/PhoneWindowManager;-><clinit>()V
+HSPLcom/android/server/policy/PhoneWindowManager;-><init>()V
PLcom/android/server/policy/PhoneWindowManager;->access$100(Lcom/android/server/policy/PhoneWindowManager;)V
+PLcom/android/server/policy/PhoneWindowManager;->access$1500(Lcom/android/server/policy/PhoneWindowManager;I)V
PLcom/android/server/policy/PhoneWindowManager;->access$200(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager;->access$2800(Lcom/android/server/policy/PhoneWindowManager;I)V
-PLcom/android/server/policy/PhoneWindowManager;->access$2900(Lcom/android/server/policy/PhoneWindowManager;)V
-PLcom/android/server/policy/PhoneWindowManager;->access$3000(Lcom/android/server/policy/PhoneWindowManager;)I
-PLcom/android/server/policy/PhoneWindowManager;->access$3100()[I
PLcom/android/server/policy/PhoneWindowManager;->access$3600(Lcom/android/server/policy/PhoneWindowManager;IJ)I
PLcom/android/server/policy/PhoneWindowManager;->addSplashScreen(Landroid/os/IBinder;Ljava/lang/String;ILandroid/content/res/CompatibilityInfo;Ljava/lang/CharSequence;IIIILandroid/content/res/Configuration;I)Lcom/android/server/policy/WindowManagerPolicy$StartingSurface;
PLcom/android/server/policy/PhoneWindowManager;->addSplashscreenContent(Lcom/android/internal/policy/PhoneWindow;Landroid/content/Context;)V
-PLcom/android/server/policy/PhoneWindowManager;->adjustConfigurationLw(Landroid/content/res/Configuration;II)V
+HSPLcom/android/server/policy/PhoneWindowManager;->adjustConfigurationLw(Landroid/content/res/Configuration;II)V
PLcom/android/server/policy/PhoneWindowManager;->applyKeyguardPolicyLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;Lcom/android/server/policy/WindowManagerPolicy$WindowState;)V
PLcom/android/server/policy/PhoneWindowManager;->applyLidSwitchState()V
-PLcom/android/server/policy/PhoneWindowManager;->awakenDreams()V
-PLcom/android/server/policy/PhoneWindowManager;->bindKeyguard()V
+HSPLcom/android/server/policy/PhoneWindowManager;->bindKeyguard()V
HPLcom/android/server/policy/PhoneWindowManager;->canBeHiddenByKeyguardLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;)Z
PLcom/android/server/policy/PhoneWindowManager;->canDismissBootAnimation()Z
-PLcom/android/server/policy/PhoneWindowManager;->cancelPendingAccessibilityShortcutAction()V
+HPLcom/android/server/policy/PhoneWindowManager;->cancelPendingAccessibilityShortcutAction()V
+PLcom/android/server/policy/PhoneWindowManager;->cancelPendingBackKeyAction()V
+PLcom/android/server/policy/PhoneWindowManager;->cancelPendingPowerKeyAction()V
+PLcom/android/server/policy/PhoneWindowManager;->cancelPendingScreenshotChordAction()V
PLcom/android/server/policy/PhoneWindowManager;->cancelPossibleVeryLongPressReboot()V
-PLcom/android/server/policy/PhoneWindowManager;->cancelPreloadRecentApps()V
PLcom/android/server/policy/PhoneWindowManager;->checkAddPermission(Landroid/view/WindowManager$LayoutParams;[I)I
PLcom/android/server/policy/PhoneWindowManager;->checkShowToOwnerOnly(Landroid/view/WindowManager$LayoutParams;)Z
-PLcom/android/server/policy/PhoneWindowManager;->createHiddenByKeyguardExit(ZZZ)Landroid/view/animation/Animation;
-PLcom/android/server/policy/PhoneWindowManager;->createHomeDockIntent()Landroid/content/Intent;
+HPLcom/android/server/policy/PhoneWindowManager;->createHiddenByKeyguardExit(ZZZ)Landroid/view/animation/Animation;
+PLcom/android/server/policy/PhoneWindowManager;->dump(Ljava/lang/String;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/policy/PhoneWindowManager;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
PLcom/android/server/policy/PhoneWindowManager;->enableScreenAfterBoot()V
+PLcom/android/server/policy/PhoneWindowManager;->endcallBehaviorToString(I)Ljava/lang/String;
PLcom/android/server/policy/PhoneWindowManager;->finishKeyguardDrawn()V
+PLcom/android/server/policy/PhoneWindowManager;->finishPowerKeyPress()V
PLcom/android/server/policy/PhoneWindowManager;->finishScreenTurningOn()V
PLcom/android/server/policy/PhoneWindowManager;->finishWindowsDrawn()V
PLcom/android/server/policy/PhoneWindowManager;->finishedGoingToSleep(I)V
PLcom/android/server/policy/PhoneWindowManager;->finishedWakingUp(I)V
+PLcom/android/server/policy/PhoneWindowManager;->getAccessibilityShortcutTimeout()J
PLcom/android/server/policy/PhoneWindowManager;->getAudioService()Landroid/media/IAudioService;
PLcom/android/server/policy/PhoneWindowManager;->getDisplayContext(Landroid/content/Context;I)Landroid/content/Context;
PLcom/android/server/policy/PhoneWindowManager;->getHdmiControl()Lcom/android/server/policy/PhoneWindowManager$HdmiControl;
-PLcom/android/server/policy/PhoneWindowManager;->getKeyguardDrawnTimeout()J
-PLcom/android/server/policy/PhoneWindowManager;->getLidBehavior()I
-PLcom/android/server/policy/PhoneWindowManager;->getLongIntArray(Landroid/content/res/Resources;I)[J
+HSPLcom/android/server/policy/PhoneWindowManager;->getKeyguardDrawnTimeout()J
+HSPLcom/android/server/policy/PhoneWindowManager;->getLidBehavior()I
+HSPLcom/android/server/policy/PhoneWindowManager;->getLongIntArray(Landroid/content/res/Resources;I)[J
+PLcom/android/server/policy/PhoneWindowManager;->getMaxMultiPressPowerCount()I
PLcom/android/server/policy/PhoneWindowManager;->getNotificationService()Landroid/app/NotificationManager;
+PLcom/android/server/policy/PhoneWindowManager;->getResolvedLongPressOnPowerBehavior()I
+PLcom/android/server/policy/PhoneWindowManager;->getScreenshotChordLongPressDelay()J
PLcom/android/server/policy/PhoneWindowManager;->getStatusBarService()Lcom/android/internal/statusbar/IStatusBarService;
PLcom/android/server/policy/PhoneWindowManager;->getTelecommService()Landroid/telecom/TelecomManager;
-PLcom/android/server/policy/PhoneWindowManager;->getUiMode()I
+HSPLcom/android/server/policy/PhoneWindowManager;->getUiMode()I
PLcom/android/server/policy/PhoneWindowManager;->goToSleep(JII)V
PLcom/android/server/policy/PhoneWindowManager;->goToSleepFromPowerButton(JI)Z
-PLcom/android/server/policy/PhoneWindowManager;->handleShortPressOnHome(I)V
PLcom/android/server/policy/PhoneWindowManager;->handleStartTransitionForKeyguardLw(IJ)I
+PLcom/android/server/policy/PhoneWindowManager;->hasLongPressOnBackBehavior()Z
+PLcom/android/server/policy/PhoneWindowManager;->hasLongPressOnPowerBehavior()Z
PLcom/android/server/policy/PhoneWindowManager;->hasVeryLongPressOnPowerBehavior()Z
-PLcom/android/server/policy/PhoneWindowManager;->init(Landroid/content/Context;Landroid/view/IWindowManager;Lcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;)V
-PLcom/android/server/policy/PhoneWindowManager;->initializeHdmiState()V
-PLcom/android/server/policy/PhoneWindowManager;->initializeHdmiStateInternal()V
+PLcom/android/server/policy/PhoneWindowManager;->inKeyguardRestrictedKeyInputMode()Z
+HSPLcom/android/server/policy/PhoneWindowManager;->init(Landroid/content/Context;Landroid/view/IWindowManager;Lcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;)V
+HSPLcom/android/server/policy/PhoneWindowManager;->initializeHdmiState()V
+HSPLcom/android/server/policy/PhoneWindowManager;->initializeHdmiStateInternal()V
PLcom/android/server/policy/PhoneWindowManager;->interceptAccessibilityShortcutChord()V
PLcom/android/server/policy/PhoneWindowManager;->interceptBackKeyDown()V
PLcom/android/server/policy/PhoneWindowManager;->interceptBackKeyUp(Landroid/view/KeyEvent;)Z
PLcom/android/server/policy/PhoneWindowManager;->interceptKeyBeforeDispatching(Landroid/os/IBinder;Landroid/view/KeyEvent;I)J
-PLcom/android/server/policy/PhoneWindowManager;->interceptKeyBeforeDispatchingInner(Landroid/os/IBinder;Landroid/view/KeyEvent;I)J
+HPLcom/android/server/policy/PhoneWindowManager;->interceptKeyBeforeDispatchingInner(Landroid/os/IBinder;Landroid/view/KeyEvent;I)J
PLcom/android/server/policy/PhoneWindowManager;->interceptKeyBeforeQueueing(Landroid/view/KeyEvent;I)I
PLcom/android/server/policy/PhoneWindowManager;->interceptMotionBeforeQueueingNonInteractive(IJI)I
PLcom/android/server/policy/PhoneWindowManager;->interceptPowerKeyDown(Landroid/view/KeyEvent;Z)V
PLcom/android/server/policy/PhoneWindowManager;->interceptPowerKeyUp(Landroid/view/KeyEvent;ZZ)V
PLcom/android/server/policy/PhoneWindowManager;->interceptRingerToggleChord()V
PLcom/android/server/policy/PhoneWindowManager;->interceptScreenshotChord()V
-PLcom/android/server/policy/PhoneWindowManager;->interceptSystemNavigationKey(Landroid/view/KeyEvent;)V
PLcom/android/server/policy/PhoneWindowManager;->isKeyguardDrawnLw()Z
PLcom/android/server/policy/PhoneWindowManager;->isKeyguardHostWindow(Landroid/view/WindowManager$LayoutParams;)Z
-PLcom/android/server/policy/PhoneWindowManager;->isKeyguardLocked()Z
+HSPLcom/android/server/policy/PhoneWindowManager;->isKeyguardLocked()Z
PLcom/android/server/policy/PhoneWindowManager;->isKeyguardOccluded()Z
PLcom/android/server/policy/PhoneWindowManager;->isKeyguardSecure(I)Z
-PLcom/android/server/policy/PhoneWindowManager;->isKeyguardShowingAndNotOccluded()Z
-PLcom/android/server/policy/PhoneWindowManager;->isScreenOn()Z
+HSPLcom/android/server/policy/PhoneWindowManager;->isKeyguardShowingAndNotOccluded()Z
+HSPLcom/android/server/policy/PhoneWindowManager;->isScreenOn()Z
PLcom/android/server/policy/PhoneWindowManager;->isTheaterModeEnabled()Z
+PLcom/android/server/policy/PhoneWindowManager;->isUserSetupComplete()Z
PLcom/android/server/policy/PhoneWindowManager;->isValidGlobalKey(I)Z
-PLcom/android/server/policy/PhoneWindowManager;->keyguardOn()Z
-PLcom/android/server/policy/PhoneWindowManager;->launchHomeFromHotKey(I)V
-PLcom/android/server/policy/PhoneWindowManager;->launchHomeFromHotKey(IZZ)V
+PLcom/android/server/policy/PhoneWindowManager;->keepScreenOnStartedLw()V
+PLcom/android/server/policy/PhoneWindowManager;->keepScreenOnStoppedLw()V
+HSPLcom/android/server/policy/PhoneWindowManager;->keyguardOn()Z
+PLcom/android/server/policy/PhoneWindowManager;->longPressOnPowerBehaviorToString(I)Ljava/lang/String;
PLcom/android/server/policy/PhoneWindowManager;->okToAnimate()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;->onKeyguardOccludedChangedLw(Z)V
+HSPLcom/android/server/policy/PhoneWindowManager;->onSystemUiStarted()V
PLcom/android/server/policy/PhoneWindowManager;->performHapticFeedback(ILjava/lang/String;IZLjava/lang/String;)Z
+PLcom/android/server/policy/PhoneWindowManager;->powerLongPress()V
PLcom/android/server/policy/PhoneWindowManager;->powerPress(JZI)V
-PLcom/android/server/policy/PhoneWindowManager;->readCameraLensCoverState()V
-PLcom/android/server/policy/PhoneWindowManager;->readConfigurationDependentBehaviors()V
-PLcom/android/server/policy/PhoneWindowManager;->readLidState()V
+HSPLcom/android/server/policy/PhoneWindowManager;->readCameraLensCoverState()V
+HSPLcom/android/server/policy/PhoneWindowManager;->readConfigurationDependentBehaviors()V
+HSPLcom/android/server/policy/PhoneWindowManager;->readLidState()V
PLcom/android/server/policy/PhoneWindowManager;->registerShortcutKey(JLcom/android/internal/policy/IShortcutService;)V
-PLcom/android/server/policy/PhoneWindowManager;->reportScreenStateToVrManager(Z)V
+HSPLcom/android/server/policy/PhoneWindowManager;->reportScreenStateToVrManager(Z)V
+PLcom/android/server/policy/PhoneWindowManager;->schedulePossibleVeryLongPressReboot()V
PLcom/android/server/policy/PhoneWindowManager;->screenTurnedOff()V
-PLcom/android/server/policy/PhoneWindowManager;->screenTurnedOn()V
+HSPLcom/android/server/policy/PhoneWindowManager;->screenTurnedOn()V
PLcom/android/server/policy/PhoneWindowManager;->screenTurningOff(Lcom/android/server/policy/WindowManagerPolicy$ScreenOffListener;)V
-PLcom/android/server/policy/PhoneWindowManager;->screenTurningOn(Lcom/android/server/policy/WindowManagerPolicy$ScreenOnListener;)V
+HSPLcom/android/server/policy/PhoneWindowManager;->screenTurningOn(Lcom/android/server/policy/WindowManagerPolicy$ScreenOnListener;)V
PLcom/android/server/policy/PhoneWindowManager;->sendSystemKeyToStatusBar(I)V
PLcom/android/server/policy/PhoneWindowManager;->sendSystemKeyToStatusBarAsync(I)V
-PLcom/android/server/policy/PhoneWindowManager;->setAllowLockscreenWhenOn(IZ)V
+HSPLcom/android/server/policy/PhoneWindowManager;->setAllowLockscreenWhenOn(IZ)V
PLcom/android/server/policy/PhoneWindowManager;->setAodShowing(Z)Z
-PLcom/android/server/policy/PhoneWindowManager;->setDefaultDisplay(Lcom/android/server/policy/WindowManagerPolicy$DisplayContentInfo;)V
+HSPLcom/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;->setKeyguardCandidateLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;)V
PLcom/android/server/policy/PhoneWindowManager;->setKeyguardOccludedLw(ZZ)Z
PLcom/android/server/policy/PhoneWindowManager;->setNavBarVirtualKeyHapticFeedbackEnabledLw(Z)V
-PLcom/android/server/policy/PhoneWindowManager;->setSafeMode(Z)V
-PLcom/android/server/policy/PhoneWindowManager;->setTopFocusedDisplay(I)V
-PLcom/android/server/policy/PhoneWindowManager;->shouldBeHiddenByKeyguard(Lcom/android/server/policy/WindowManagerPolicy$WindowState;Lcom/android/server/policy/WindowManagerPolicy$WindowState;)Z
+HSPLcom/android/server/policy/PhoneWindowManager;->setSafeMode(Z)V
+HSPLcom/android/server/policy/PhoneWindowManager;->setTopFocusedDisplay(I)V
+PLcom/android/server/policy/PhoneWindowManager;->shortPressOnPowerBehaviorToString(I)Ljava/lang/String;
+HPLcom/android/server/policy/PhoneWindowManager;->shouldBeHiddenByKeyguard(Lcom/android/server/policy/WindowManagerPolicy$WindowState;Lcom/android/server/policy/WindowManagerPolicy$WindowState;)Z
PLcom/android/server/policy/PhoneWindowManager;->shouldDispatchInputWhenNonInteractive(II)Z
-PLcom/android/server/policy/PhoneWindowManager;->shouldEnableWakeGestureLp()Z
-PLcom/android/server/policy/PhoneWindowManager;->startDockOrHome(IZZ)V
+HSPLcom/android/server/policy/PhoneWindowManager;->shouldEnableWakeGestureLp()Z
+PLcom/android/server/policy/PhoneWindowManager;->showGlobalActionsInternal()V
+PLcom/android/server/policy/PhoneWindowManager;->startKeyguardExitAnimation(JJ)V
PLcom/android/server/policy/PhoneWindowManager;->startedGoingToSleep(I)V
PLcom/android/server/policy/PhoneWindowManager;->startedWakingUp(I)V
PLcom/android/server/policy/PhoneWindowManager;->systemBooted()V
-PLcom/android/server/policy/PhoneWindowManager;->systemReady()V
-PLcom/android/server/policy/PhoneWindowManager;->updateLockScreenTimeout()V
-PLcom/android/server/policy/PhoneWindowManager;->updateRotation(Z)V
-PLcom/android/server/policy/PhoneWindowManager;->updateScreenOffSleepToken(Z)V
-PLcom/android/server/policy/PhoneWindowManager;->updateSettings()V
-PLcom/android/server/policy/PhoneWindowManager;->updateUiMode()V
-PLcom/android/server/policy/PhoneWindowManager;->updateWakeGestureListenerLp()V
-PLcom/android/server/policy/PhoneWindowManager;->userActivity()V
-PLcom/android/server/policy/ShortcutManager$ShortcutInfo;-><init>(Ljava/lang/String;Landroid/content/Intent;)V
-PLcom/android/server/policy/ShortcutManager;-><init>(Landroid/content/Context;)V
-PLcom/android/server/policy/ShortcutManager;->loadShortcuts()V
-PLcom/android/server/policy/SoftRestrictedPermissionPolicy$1;-><init>()V
-PLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;-><init>(ZIZZ)V
-PLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->getExtraAppOpCode()I
-PLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayAllowExtraAppOp()Z
-PLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayDenyExtraAppOpIfGranted()Z
-PLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayGrantPermission()Z
-PLcom/android/server/policy/SoftRestrictedPermissionPolicy$3;-><init>(ZI)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;Landroid/os/UserHandle;Ljava/lang/String;)Lcom/android/server/policy/SoftRestrictedPermissionPolicy;
-PLcom/android/server/policy/SoftRestrictedPermissionPolicy;->getExtraAppOpCode()I
-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
+HSPLcom/android/server/policy/PhoneWindowManager;->systemReady()V
+HSPLcom/android/server/policy/PhoneWindowManager;->updateLockScreenTimeout()V
+HSPLcom/android/server/policy/PhoneWindowManager;->updateRotation(Z)V
+HSPLcom/android/server/policy/PhoneWindowManager;->updateScreenOffSleepToken(Z)V
+HSPLcom/android/server/policy/PhoneWindowManager;->updateSettings()V
+HSPLcom/android/server/policy/PhoneWindowManager;->updateUiMode()V
+HSPLcom/android/server/policy/PhoneWindowManager;->updateWakeGestureListenerLp()V
+HPLcom/android/server/policy/PhoneWindowManager;->userActivity()V
+HSPLcom/android/server/policy/ShortcutManager$ShortcutInfo;-><init>(Ljava/lang/String;Landroid/content/Intent;)V
+HSPLcom/android/server/policy/ShortcutManager;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/policy/ShortcutManager;->loadShortcuts()V
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$1;-><init>()V
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;-><init>(ZIZZ)V
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->getExtraAppOpCode()I
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayAllowExtraAppOp()Z
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayDenyExtraAppOpIfGranted()Z
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$2;->mayGrantPermission()Z
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$3;-><init>(ZI)V
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy$3;->mayGrantPermission()Z
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;-><clinit>()V
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;-><init>()V
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->forPermission(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Landroid/os/UserHandle;Ljava/lang/String;)Lcom/android/server/policy/SoftRestrictedPermissionPolicy;
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->getExtraAppOpCode()I
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->getMinimumTargetSDK(Landroid/content/Context;Landroid/content/pm/ApplicationInfo;Landroid/os/UserHandle;)I
+HSPLcom/android/server/policy/SoftRestrictedPermissionPolicy;->hasUidRequestedLegacyExternalStorage(ILandroid/content/Context;)Z
PLcom/android/server/policy/SplashScreenSurface;-><init>(Landroid/view/View;Landroid/os/IBinder;)V
PLcom/android/server/policy/SplashScreenSurface;->remove()V
-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
+HSPLcom/android/server/policy/WakeGestureListener$1;-><init>(Lcom/android/server/policy/WakeGestureListener;)V
+HSPLcom/android/server/policy/WakeGestureListener$2;-><init>(Lcom/android/server/policy/WakeGestureListener;)V
+HSPLcom/android/server/policy/WakeGestureListener;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/policy/WakeGestureListener;->cancelWakeUpTrigger()V
+PLcom/android/server/policy/WakeGestureListener;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/policy/WakeGestureListener;->isSupported()Z
+PLcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;->cameraLensStateToString(I)Ljava/lang/String;
+HSPLcom/android/server/policy/WindowManagerPolicy$WindowManagerFuncs;->lidStateToString(I)Ljava/lang/String;
+PLcom/android/server/policy/WindowManagerPolicy;->getSubWindowLayerFromTypeLw(I)I
PLcom/android/server/policy/WindowManagerPolicy;->getWindowLayerFromTypeLw(I)I
HPLcom/android/server/policy/WindowManagerPolicy;->getWindowLayerFromTypeLw(IZ)I
-PLcom/android/server/policy/WindowManagerPolicy;->getWindowLayerLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;)I
-PLcom/android/server/policy/WindowOrientationListener$OrientationJudge;-><init>(Lcom/android/server/policy/WindowOrientationListener;)V
-PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge$1;-><init>(Lcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;)V
+HPLcom/android/server/policy/WindowManagerPolicy;->getWindowLayerLw(Lcom/android/server/policy/WindowManagerPolicy$WindowState;)I
+HSPLcom/android/server/policy/WindowManagerPolicy;->userRotationModeToString(I)Ljava/lang/String;
+HSPLcom/android/server/policy/WindowOrientationListener$OrientationJudge;-><init>(Lcom/android/server/policy/WindowOrientationListener;)V
+HSPLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge$1;-><init>(Lcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;)V
PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge$1;->run()V
-PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;-><init>(Lcom/android/server/policy/WindowOrientationListener;)V
+HSPLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;-><init>(Lcom/android/server/policy/WindowOrientationListener;)V
+PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->access$402(Lcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;Z)Z
+HSPLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->evaluateRotationChangeLocked()I
PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->getProposedRotationLocked()I
+PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->isDesiredRotationAcceptableLocked(J)Z
PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->onAccuracyChanged(Landroid/hardware/Sensor;I)V
PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->onSensorChanged(Landroid/hardware/SensorEvent;)V
PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->onTouchEndLocked(J)V
@@ -13974,47 +16713,56 @@ PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->o
PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->resetLocked(Z)V
PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->scheduleRotationEvaluationIfNecessaryLocked(J)V
PLcom/android/server/policy/WindowOrientationListener$OrientationSensorJudge;->unscheduleRotationEvaluationLocked()V
-PLcom/android/server/policy/WindowOrientationListener;-><clinit>()V
-PLcom/android/server/policy/WindowOrientationListener;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
-PLcom/android/server/policy/WindowOrientationListener;-><init>(Landroid/content/Context;Landroid/os/Handler;I)V
-PLcom/android/server/policy/WindowOrientationListener;->canDetectOrientation()Z
+HSPLcom/android/server/policy/WindowOrientationListener;-><clinit>()V
+HSPLcom/android/server/policy/WindowOrientationListener;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/policy/WindowOrientationListener;-><init>(Landroid/content/Context;Landroid/os/Handler;I)V
+PLcom/android/server/policy/WindowOrientationListener;->access$000(Lcom/android/server/policy/WindowOrientationListener;)Ljava/lang/Object;
+PLcom/android/server/policy/WindowOrientationListener;->access$100()Z
+PLcom/android/server/policy/WindowOrientationListener;->access$300(Lcom/android/server/policy/WindowOrientationListener;)Landroid/os/Handler;
+HSPLcom/android/server/policy/WindowOrientationListener;->canDetectOrientation()Z
PLcom/android/server/policy/WindowOrientationListener;->disable()V
+HSPLcom/android/server/policy/WindowOrientationListener;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/policy/WindowOrientationListener;->enable(Z)V
PLcom/android/server/policy/WindowOrientationListener;->getHandler()Landroid/os/Handler;
PLcom/android/server/policy/WindowOrientationListener;->getProposedRotation()I
PLcom/android/server/policy/WindowOrientationListener;->onTouchEnd()V
PLcom/android/server/policy/WindowOrientationListener;->onTouchStart()V
-PLcom/android/server/policy/WindowOrientationListener;->setCurrentRotation(I)V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$1;-><init>(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;)V
+HSPLcom/android/server/policy/WindowOrientationListener;->setCurrentRotation(I)V
+HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate$1;-><init>(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;)V
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate$1;->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;->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;-><init>(Landroid/content/Context;Lcom/android/server/policy/keyguard/KeyguardStateMonitor$StateCallback;)V
+HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardState;-><init>()V
+HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardState;->reset()V
+HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;-><init>(Landroid/content/Context;Lcom/android/server/policy/keyguard/KeyguardStateMonitor$StateCallback;)V
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->access$000(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;)Landroid/content/Context;
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->access$100(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;)Lcom/android/server/policy/keyguard/KeyguardStateMonitor$StateCallback;
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->access$200(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;)Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardState;
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->access$300(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;)Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$DrawnListener;
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->access$302(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$DrawnListener;)Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$DrawnListener;
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->bindService(Landroid/content/Context;)V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->hasKeyguard()Z
+HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->bindService(Landroid/content/Context;)V
+PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->hasKeyguard()Z
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->hasLockscreenWallpaper()Z
+PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->isInputRestricted()Z
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->isSecure(I)Z
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->isShowing()Z
+HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->isShowing()Z
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onBootCompleted()V
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onDreamingStarted()V
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onFinishedGoingToSleep(IZ)V
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onFinishedWakingUp()V
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onScreenTurnedOff()V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onScreenTurnedOn()V
+HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onScreenTurnedOn()V
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onScreenTurningOff()V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onScreenTurningOn(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$DrawnListener;)V
+HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onScreenTurningOn(Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$DrawnListener;)V
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onStartedGoingToSleep(I)V
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onStartedWakingUp()V
-PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onSystemReady()V
+HSPLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->onSystemReady()V
PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->setOccluded(ZZ)V
+PLcom/android/server/policy/keyguard/KeyguardServiceDelegate;->startKeyguardExitAnimation(JJ)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
PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->isSecure(I)Z
PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->isShowing()Z
PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onBootCompleted()V
@@ -14030,8 +16778,11 @@ PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onStartedGoingToSl
PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onStartedWakingUp()V
PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->onSystemReady()V
PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->setKeyguardEnabled(Z)V
+PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->setOccluded(ZZ)V
PLcom/android/server/policy/keyguard/KeyguardServiceWrapper;->startKeyguardExitAnimation(JJ)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;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->isInputRestricted()Z
PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->isSecure(I)Z
PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->isShowing()Z
PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onHasLockscreenWallpaperChanged(Z)V
@@ -14039,49 +16790,52 @@ PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onInputRestrictedSta
PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onShowingStateChanged(Z)V
PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onSimSecureStateChanged(Z)V
PLcom/android/server/policy/keyguard/KeyguardStateMonitor;->onTrustedChanged(Z)V
-PLcom/android/server/policy/role/LegacyRoleResolutionPolicy;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/policy/role/LegacyRoleResolutionPolicy;-><init>(Landroid/content/Context;)V
PLcom/android/server/policy/role/LegacyRoleResolutionPolicy;->getRoleHolders(Ljava/lang/String;I)Ljava/util/List;
+PLcom/android/server/policy/role/LegacyRoleResolutionPolicy;->isSettingsApplication(Ljava/lang/String;I)Z
HSPLcom/android/server/power/-$$Lambda$PowerManagerService$FUW_os-Z9SregUE_DR9vDwaRuXo;-><init>(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/-$$Lambda$ThermalManagerService$9JFHCKCwrnUIYoXDsqNamhlY5VU;-><init>(Lcom/android/server/power/ThermalManagerService;)V
-PLcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$R9S8YWn8x1F3V2TOvXtmky1V44Q;-><init>(Ljava/util/List;)V
-PLcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$R9S8YWn8x1F3V2TOvXtmky1V44Q;->onValues(Landroid/hardware/thermal/V1_0/ThermalStatus;Ljava/util/ArrayList;)V
+HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$9JFHCKCwrnUIYoXDsqNamhlY5VU;-><init>(Lcom/android/server/power/ThermalManagerService;)V
+HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$R9S8YWn8x1F3V2TOvXtmky1V44Q;-><init>(Ljava/util/List;)V
+HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$R9S8YWn8x1F3V2TOvXtmky1V44Q;->onValues(Landroid/hardware/thermal/V1_0/ThermalStatus;Ljava/util/ArrayList;)V
PLcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$dRsq86SXVH7z342fbs2U36cr67I;-><init>(Ljava/util/List;)V
PLcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$dRsq86SXVH7z342fbs2U36cr67I;->onValues(Landroid/hardware/thermal/V1_0/ThermalStatus;Ljava/util/ArrayList;)V
-PLcom/android/server/power/-$$Lambda$ThermalManagerService$ZPQKzo9ZjU-hL4QYH693hWuTqjk;-><init>(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalStatusListener;)V
-PLcom/android/server/power/-$$Lambda$ThermalManagerService$ZPQKzo9ZjU-hL4QYH693hWuTqjk;->run()V
-PLcom/android/server/power/-$$Lambda$ThermalManagerService$x5obtNvJKZxnpguOiQsFBDmBZ4k;-><init>(Landroid/os/IThermalEventListener;Landroid/os/Temperature;)V
-PLcom/android/server/power/-$$Lambda$ThermalManagerService$x5obtNvJKZxnpguOiQsFBDmBZ4k;->run()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$1;)V
+HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$ZPQKzo9ZjU-hL4QYH693hWuTqjk;-><init>(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalStatusListener;)V
+HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$ZPQKzo9ZjU-hL4QYH693hWuTqjk;->run()V
+HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$x5obtNvJKZxnpguOiQsFBDmBZ4k;-><init>(Landroid/os/IThermalEventListener;Landroid/os/Temperature;)V
+HSPLcom/android/server/power/-$$Lambda$ThermalManagerService$x5obtNvJKZxnpguOiQsFBDmBZ4k;->run()V
+HSPLcom/android/server/power/AttentionDetector$1;-><init>(Lcom/android/server/power/AttentionDetector;Landroid/os/Handler;Landroid/content/Context;)V
+HSPLcom/android/server/power/AttentionDetector$UserSwitchObserver;-><init>(Lcom/android/server/power/AttentionDetector;)V
+HSPLcom/android/server/power/AttentionDetector$UserSwitchObserver;-><init>(Lcom/android/server/power/AttentionDetector;Lcom/android/server/power/AttentionDetector$1;)V
HSPLcom/android/server/power/AttentionDetector;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
PLcom/android/server/power/AttentionDetector;->cancelCurrentRequestIfAny()V
+PLcom/android/server/power/AttentionDetector;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/power/AttentionDetector;->getPreDimCheckDurationMillis()J
PLcom/android/server/power/AttentionDetector;->onUserActivity(JI)I
PLcom/android/server/power/AttentionDetector;->onWakefulnessChangeStarted(I)V
PLcom/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
+HSPLcom/android/server/power/AttentionDetector;->systemReady(Landroid/content/Context;)V
+HSPLcom/android/server/power/AttentionDetector;->updateEnabledFromSettings(Landroid/content/Context;)V
HPLcom/android/server/power/AttentionDetector;->updateUserActivity(JJ)J
HSPLcom/android/server/power/InattentiveSleepWarningController;-><init>()V
-PLcom/android/server/power/InattentiveSleepWarningController;->isShown()Z
+HSPLcom/android/server/power/InattentiveSleepWarningController;->isShown()Z
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;)V
+HPLcom/android/server/power/Notifier$2;-><init>(Lcom/android/server/power/Notifier;)V
PLcom/android/server/power/Notifier$2;->run()V
PLcom/android/server/power/Notifier$3;-><init>(Lcom/android/server/power/Notifier;I)V
PLcom/android/server/power/Notifier$3;->run()V
-PLcom/android/server/power/Notifier$4;-><init>(Lcom/android/server/power/Notifier;II)V
+HPLcom/android/server/power/Notifier$4;-><init>(Lcom/android/server/power/Notifier;II)V
PLcom/android/server/power/Notifier$4;->run()V
PLcom/android/server/power/Notifier$5;-><init>(Lcom/android/server/power/Notifier;II)V
PLcom/android/server/power/Notifier$5;->run()V
-PLcom/android/server/power/Notifier$6;-><init>(Lcom/android/server/power/Notifier;)V
-PLcom/android/server/power/Notifier$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/power/Notifier$7;-><init>(Lcom/android/server/power/Notifier;)V
+HSPLcom/android/server/power/Notifier$6;-><init>(Lcom/android/server/power/Notifier;)V
+HPLcom/android/server/power/Notifier$6;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/power/Notifier$7;-><init>(Lcom/android/server/power/Notifier;)V
PLcom/android/server/power/Notifier$7;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/power/Notifier$NotifierHandler;-><init>(Lcom/android/server/power/Notifier;Landroid/os/Looper;)V
-PLcom/android/server/power/Notifier$NotifierHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/power/Notifier;-><clinit>()V
-PLcom/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;)V
+HSPLcom/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
+HSPLcom/android/server/power/Notifier;-><clinit>()V
+HSPLcom/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;)V
PLcom/android/server/power/Notifier;->access$000(Lcom/android/server/power/Notifier;)Landroid/app/ActivityManagerInternal;
PLcom/android/server/power/Notifier;->access$100(Lcom/android/server/power/Notifier;)I
PLcom/android/server/power/Notifier;->access$300(Lcom/android/server/power/Notifier;)Lcom/android/server/policy/WindowManagerPolicy;
@@ -14089,61 +16843,66 @@ PLcom/android/server/power/Notifier;->access$400(Lcom/android/server/power/Notif
PLcom/android/server/power/Notifier;->access$500(Lcom/android/server/power/Notifier;)V
PLcom/android/server/power/Notifier;->access$600(Lcom/android/server/power/Notifier;)V
PLcom/android/server/power/Notifier;->finishPendingBroadcastLocked()V
-HPLcom/android/server/power/Notifier;->getBatteryStatsWakeLockMonitorType(I)I
+HSPLcom/android/server/power/Notifier;->getBatteryStatsWakeLockMonitorType(I)I
PLcom/android/server/power/Notifier;->handleEarlyInteractiveChange()V
PLcom/android/server/power/Notifier;->handleLateInteractiveChange()V
PLcom/android/server/power/Notifier;->isChargingFeedbackEnabled(I)Z
PLcom/android/server/power/Notifier;->onLongPartialWakeLockFinish(Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;)V
PLcom/android/server/power/Notifier;->onLongPartialWakeLockStart(Ljava/lang/String;ILandroid/os/WorkSource;Ljava/lang/String;)V
-PLcom/android/server/power/Notifier;->onUserActivity(II)V
-HPLcom/android/server/power/Notifier;->onWakeLockAcquired(ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;)V
+HPLcom/android/server/power/Notifier;->onUserActivity(II)V
+HSPLcom/android/server/power/Notifier;->onWakeLockAcquired(ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;)V
HPLcom/android/server/power/Notifier;->onWakeLockChanging(ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;)V
-HPLcom/android/server/power/Notifier;->onWakeLockReleased(ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;)V
+HSPLcom/android/server/power/Notifier;->onWakeLockReleased(ILjava/lang/String;Ljava/lang/String;IILandroid/os/WorkSource;Ljava/lang/String;)V
PLcom/android/server/power/Notifier;->onWakeUp(ILjava/lang/String;ILjava/lang/String;I)V
PLcom/android/server/power/Notifier;->onWakefulnessChangeFinished()V
PLcom/android/server/power/Notifier;->onWakefulnessChangeStarted(IIJ)V
+PLcom/android/server/power/Notifier;->onWiredChargingStarted(I)V
PLcom/android/server/power/Notifier;->playChargingStartedFeedback(IZ)V
PLcom/android/server/power/Notifier;->sendGoToSleepBroadcast()V
PLcom/android/server/power/Notifier;->sendNextBroadcast()V
-PLcom/android/server/power/Notifier;->sendUserActivity()V
+HPLcom/android/server/power/Notifier;->sendUserActivity()V
PLcom/android/server/power/Notifier;->sendWakeUpBroadcast()V
PLcom/android/server/power/Notifier;->translateOffReason(I)I
PLcom/android/server/power/Notifier;->updatePendingBroadcastLocked()V
HSPLcom/android/server/power/PowerManagerService$1;-><init>(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/PowerManagerService$1;->acquireSuspendBlocker()V
-PLcom/android/server/power/PowerManagerService$1;->onDisplayStateChange(I)V
-PLcom/android/server/power/PowerManagerService$1;->onStateChanged()V
-PLcom/android/server/power/PowerManagerService$1;->releaseSuspendBlocker()V
+HSPLcom/android/server/power/PowerManagerService$1;->acquireSuspendBlocker()V
+HSPLcom/android/server/power/PowerManagerService$1;->onDisplayStateChange(I)V
+HSPLcom/android/server/power/PowerManagerService$1;->onStateChanged()V
+HSPLcom/android/server/power/PowerManagerService$1;->releaseSuspendBlocker()V
+PLcom/android/server/power/PowerManagerService$1;->toString()Ljava/lang/String;
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
+HSPLcom/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;)V
-HPLcom/android/server/power/PowerManagerService$BinderService;->acquireWakeLock(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;)V
+HSPLcom/android/server/power/PowerManagerService$BinderService;->acquireWakeLock(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;)V
+PLcom/android/server/power/PowerManagerService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/power/PowerManagerService$BinderService;->getLastShutdownReason()I
-PLcom/android/server/power/PowerManagerService$BinderService;->getPowerSaveState(I)Landroid/os/PowerSaveState;
+HSPLcom/android/server/power/PowerManagerService$BinderService;->getPowerSaveState(I)Landroid/os/PowerSaveState;
PLcom/android/server/power/PowerManagerService$BinderService;->goToSleep(JII)V
-PLcom/android/server/power/PowerManagerService$BinderService;->isDeviceIdleMode()Z
-HPLcom/android/server/power/PowerManagerService$BinderService;->isInteractive()Z
-PLcom/android/server/power/PowerManagerService$BinderService;->isLightDeviceIdleMode()Z
-PLcom/android/server/power/PowerManagerService$BinderService;->isPowerSaveMode()Z
+HSPLcom/android/server/power/PowerManagerService$BinderService;->isDeviceIdleMode()Z
+HSPLcom/android/server/power/PowerManagerService$BinderService;->isInteractive()Z
+HPLcom/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;->setDozeAfterScreenOff(Z)V
+HSPLcom/android/server/power/PowerManagerService$BinderService;->releaseWakeLock(Landroid/os/IBinder;I)V
+HSPLcom/android/server/power/PowerManagerService$BinderService;->setDozeAfterScreenOff(Z)V
PLcom/android/server/power/PowerManagerService$BinderService;->setDynamicPowerSaveHint(ZI)Z
-PLcom/android/server/power/PowerManagerService$BinderService;->updateWakeLockUids(Landroid/os/IBinder;[I)V
-HPLcom/android/server/power/PowerManagerService$BinderService;->updateWakeLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;)V
+HSPLcom/android/server/power/PowerManagerService$BinderService;->updateWakeLockUids(Landroid/os/IBinder;[I)V
+HSPLcom/android/server/power/PowerManagerService$BinderService;->updateWakeLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;)V
PLcom/android/server/power/PowerManagerService$BinderService;->userActivity(JII)V
PLcom/android/server/power/PowerManagerService$BinderService;->wakeUp(JILjava/lang/String;Ljava/lang/String;)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;->updateConstants()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$1;)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$1;)V
+PLcom/android/server/power/PowerManagerService$Constants;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/power/PowerManagerService$Constants;->dumpProto(Landroid/util/proto/ProtoOutputStream;)V
+HSPLcom/android/server/power/PowerManagerService$Constants;->start(Landroid/content/ContentResolver;)V
+HSPLcom/android/server/power/PowerManagerService$Constants;->updateConstants()V
+HSPLcom/android/server/power/PowerManagerService$DockReceiver;-><init>(Lcom/android/server/power/PowerManagerService;)V
+HSPLcom/android/server/power/PowerManagerService$DockReceiver;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$1;)V
+HSPLcom/android/server/power/PowerManagerService$DreamReceiver;-><init>(Lcom/android/server/power/PowerManagerService;)V
+HSPLcom/android/server/power/PowerManagerService$DreamReceiver;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$1;)V
PLcom/android/server/power/PowerManagerService$DreamReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)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$1;)V
+HSPLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;-><init>(Lcom/android/server/power/PowerManagerService;)V
+HSPLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;-><init>(Lcom/android/server/power/PowerManagerService;Lcom/android/server/power/PowerManagerService$1;)V
PLcom/android/server/power/PowerManagerService$ForegroundProfileObserver;->onForegroundProfileSwitch(I)V
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;
@@ -14153,10 +16912,10 @@ HSPLcom/android/server/power/PowerManagerService$Injector;->createAmbientDisplay
HSPLcom/android/server/power/PowerManagerService$Injector;->createBatterySaverPolicy(Ljava/lang/Object;Landroid/content/Context;Lcom/android/server/power/batterysaver/BatterySavingStats;)Lcom/android/server/power/batterysaver/BatterySaverPolicy;
HSPLcom/android/server/power/PowerManagerService$Injector;->createInattentiveSleepWarningController()Lcom/android/server/power/InattentiveSleepWarningController;
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/Notifier;
+HSPLcom/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/Notifier;
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;->createWirelessChargerDetector(Landroid/hardware/SensorManager;Lcom/android/server/power/SuspendBlocker;Landroid/os/Handler;)Lcom/android/server/power/WirelessChargerDetector;
HSPLcom/android/server/power/PowerManagerService$LocalService;-><init>(Lcom/android/server/power/PowerManagerService;)V
PLcom/android/server/power/PowerManagerService$LocalService;->getLastWakeup()Landroid/os/PowerManager$WakeData;
HSPLcom/android/server/power/PowerManagerService$LocalService;->getLowPowerState(I)Landroid/os/PowerSaveState;
@@ -14164,16 +16923,16 @@ PLcom/android/server/power/PowerManagerService$LocalService;->powerHint(II)V
HSPLcom/android/server/power/PowerManagerService$LocalService;->registerLowPowerModeObserver(Landroid/os/PowerManagerInternal$LowPowerModeListener;)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
+HSPLcom/android/server/power/PowerManagerService$LocalService;->setDeviceIdleWhitelist([I)V
PLcom/android/server/power/PowerManagerService$LocalService;->setDozeOverrideFromDreamManager(II)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;->setScreenBrightnessOverrideFromWindowManager(I)V
-PLcom/android/server/power/PowerManagerService$LocalService;->setUserActivityTimeoutOverrideFromWindowManager(J)V
-PLcom/android/server/power/PowerManagerService$LocalService;->uidActive(I)V
-PLcom/android/server/power/PowerManagerService$LocalService;->uidGone(I)V
-PLcom/android/server/power/PowerManagerService$LocalService;->uidIdle(I)V
-HPLcom/android/server/power/PowerManagerService$LocalService;->updateUidProcState(II)V
+HSPLcom/android/server/power/PowerManagerService$LocalService;->setMaximumScreenOffTimeoutFromDeviceAdmin(IJ)V
+HSPLcom/android/server/power/PowerManagerService$LocalService;->setScreenBrightnessOverrideFromWindowManager(I)V
+HSPLcom/android/server/power/PowerManagerService$LocalService;->setUserActivityTimeoutOverrideFromWindowManager(J)V
+HSPLcom/android/server/power/PowerManagerService$LocalService;->uidActive(I)V
+HSPLcom/android/server/power/PowerManagerService$LocalService;->uidGone(I)V
+HSPLcom/android/server/power/PowerManagerService$LocalService;->uidIdle(I)V
+HSPLcom/android/server/power/PowerManagerService$LocalService;->updateUidProcState(II)V
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
@@ -14183,206 +16942,222 @@ HSPLcom/android/server/power/PowerManagerService$NativeWrapper;->nativeSetAutoSu
HSPLcom/android/server/power/PowerManagerService$NativeWrapper;->nativeSetFeature(II)V
HSPLcom/android/server/power/PowerManagerService$NativeWrapper;->nativeSetInteractive(Z)V
HSPLcom/android/server/power/PowerManagerService$PowerManagerHandler;-><init>(Lcom/android/server/power/PowerManagerService;Landroid/os/Looper;)V
-HPLcom/android/server/power/PowerManagerService$PowerManagerHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/power/PowerManagerService$SettingsObserver;-><init>(Lcom/android/server/power/PowerManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/power/PowerManagerService$PowerManagerHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/power/PowerManagerService$SettingsObserver;-><init>(Lcom/android/server/power/PowerManagerService;Landroid/os/Handler;)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
-PLcom/android/server/power/PowerManagerService$SuspendBlockerImpl;->release()V
-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$SuspendBlockerImpl;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/power/PowerManagerService$SuspendBlockerImpl;->release()V
+PLcom/android/server/power/PowerManagerService$SuspendBlockerImpl;->toString()Ljava/lang/String;
+HSPLcom/android/server/power/PowerManagerService$UidState;-><init>(I)V
+HSPLcom/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
-PLcom/android/server/power/PowerManagerService$WakeLock;-><init>(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;IILcom/android/server/power/PowerManagerService$UidState;)V
+HSPLcom/android/server/power/PowerManagerService$WakeLock;-><init>(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;IILcom/android/server/power/PowerManagerService$UidState;)V
PLcom/android/server/power/PowerManagerService$WakeLock;->binderDied()V
+PLcom/android/server/power/PowerManagerService$WakeLock;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+PLcom/android/server/power/PowerManagerService$WakeLock;->getLockFlagsString()Ljava/lang/String;
+PLcom/android/server/power/PowerManagerService$WakeLock;->getLockLevelString()Ljava/lang/String;
PLcom/android/server/power/PowerManagerService$WakeLock;->hasSameProperties(ILjava/lang/String;Landroid/os/WorkSource;II)Z
-PLcom/android/server/power/PowerManagerService$WakeLock;->hasSameWorkSource(Landroid/os/WorkSource;)Z
+HSPLcom/android/server/power/PowerManagerService$WakeLock;->hasSameWorkSource(Landroid/os/WorkSource;)Z
+PLcom/android/server/power/PowerManagerService$WakeLock;->toString()Ljava/lang/String;
PLcom/android/server/power/PowerManagerService$WakeLock;->updateWorkSource(Landroid/os/WorkSource;)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
-PLcom/android/server/power/PowerManagerService;->access$000(Lcom/android/server/power/PowerManagerService;)Ljava/lang/Object;
+HSPLcom/android/server/power/PowerManagerService;->access$000(Lcom/android/server/power/PowerManagerService;)Ljava/lang/Object;
HSPLcom/android/server/power/PowerManagerService;->access$1000(II)V
HSPLcom/android/server/power/PowerManagerService;->access$1200(Lcom/android/server/power/PowerManagerService;)Ljava/util/ArrayList;
-PLcom/android/server/power/PowerManagerService;->access$1676(Lcom/android/server/power/PowerManagerService;I)I
-PLcom/android/server/power/PowerManagerService;->access$1700(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/PowerManagerService;->access$2000(Lcom/android/server/power/PowerManagerService;)Z
-PLcom/android/server/power/PowerManagerService;->access$2200(Lcom/android/server/power/PowerManagerService;)Z
-PLcom/android/server/power/PowerManagerService;->access$2400(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/SuspendBlocker;
+HSPLcom/android/server/power/PowerManagerService;->access$1676(Lcom/android/server/power/PowerManagerService;I)I
+HSPLcom/android/server/power/PowerManagerService;->access$1700(Lcom/android/server/power/PowerManagerService;)V
+HSPLcom/android/server/power/PowerManagerService;->access$2000(Lcom/android/server/power/PowerManagerService;)Z
+HSPLcom/android/server/power/PowerManagerService;->access$2200(Lcom/android/server/power/PowerManagerService;)Z
+HSPLcom/android/server/power/PowerManagerService;->access$2400(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/SuspendBlocker;
PLcom/android/server/power/PowerManagerService;->access$2500(Lcom/android/server/power/PowerManagerService;)V
PLcom/android/server/power/PowerManagerService;->access$2600(Lcom/android/server/power/PowerManagerService;)V
PLcom/android/server/power/PowerManagerService;->access$2700(Lcom/android/server/power/PowerManagerService;)V
PLcom/android/server/power/PowerManagerService;->access$2900(Lcom/android/server/power/PowerManagerService;II)V
PLcom/android/server/power/PowerManagerService;->access$3100(Lcom/android/server/power/PowerManagerService;)V
PLcom/android/server/power/PowerManagerService;->access$3200(Lcom/android/server/power/PowerManagerService;)V
-HPLcom/android/server/power/PowerManagerService;->access$3500(Landroid/os/WorkSource;)Landroid/os/WorkSource;
+HSPLcom/android/server/power/PowerManagerService;->access$3500(Landroid/os/WorkSource;)Landroid/os/WorkSource;
HSPLcom/android/server/power/PowerManagerService;->access$3700(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/PowerManagerService$NativeWrapper;
-PLcom/android/server/power/PowerManagerService;->access$3900(Lcom/android/server/power/PowerManagerService;)Landroid/content/Context;
+HSPLcom/android/server/power/PowerManagerService;->access$3900(Lcom/android/server/power/PowerManagerService;)Landroid/content/Context;
HSPLcom/android/server/power/PowerManagerService;->access$400(Lcom/android/server/power/PowerManagerService;)V
-PLcom/android/server/power/PowerManagerService;->access$4000(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;II)V
-PLcom/android/server/power/PowerManagerService;->access$4100(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;I)V
-PLcom/android/server/power/PowerManagerService;->access$4200(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;I)V
+HSPLcom/android/server/power/PowerManagerService;->access$4000(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;II)V
+HSPLcom/android/server/power/PowerManagerService;->access$4100(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;I)V
+HSPLcom/android/server/power/PowerManagerService;->access$4200(Lcom/android/server/power/PowerManagerService;Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;I)V
PLcom/android/server/power/PowerManagerService;->access$4300(Lcom/android/server/power/PowerManagerService;I)Z
PLcom/android/server/power/PowerManagerService;->access$4500(Lcom/android/server/power/PowerManagerService;JIII)V
-PLcom/android/server/power/PowerManagerService;->access$4900(Lcom/android/server/power/PowerManagerService;)Z
+HSPLcom/android/server/power/PowerManagerService;->access$4900(Lcom/android/server/power/PowerManagerService;)Z
HSPLcom/android/server/power/PowerManagerService;->access$500(Ljava/lang/String;)V
HSPLcom/android/server/power/PowerManagerService;->access$5000(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/batterysaver/BatterySaverController;
HSPLcom/android/server/power/PowerManagerService;->access$5100(Lcom/android/server/power/PowerManagerService;)Lcom/android/server/power/batterysaver/BatterySaverPolicy;
-PLcom/android/server/power/PowerManagerService;->access$5800(Lcom/android/server/power/PowerManagerService;Z)V
+HSPLcom/android/server/power/PowerManagerService;->access$5800(Lcom/android/server/power/PowerManagerService;Z)V
PLcom/android/server/power/PowerManagerService;->access$600(Ljava/lang/String;)V
-PLcom/android/server/power/PowerManagerService;->access$6400(Lcom/android/server/power/PowerManagerService;I)V
+HSPLcom/android/server/power/PowerManagerService;->access$6400(Lcom/android/server/power/PowerManagerService;I)V
PLcom/android/server/power/PowerManagerService;->access$6500(Lcom/android/server/power/PowerManagerService;II)V
-PLcom/android/server/power/PowerManagerService;->access$6700(Lcom/android/server/power/PowerManagerService;J)V
+HSPLcom/android/server/power/PowerManagerService;->access$6700(Lcom/android/server/power/PowerManagerService;J)V
PLcom/android/server/power/PowerManagerService;->access$6900(Lcom/android/server/power/PowerManagerService;)Landroid/os/PowerManager$WakeData;
HSPLcom/android/server/power/PowerManagerService;->access$700(Z)V
HSPLcom/android/server/power/PowerManagerService;->access$800(Z)V
PLcom/android/server/power/PowerManagerService;->access$900(II)V
-HPLcom/android/server/power/PowerManagerService;->acquireWakeLockInternal(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;II)V
-HPLcom/android/server/power/PowerManagerService;->adjustWakeLockSummaryLocked(I)I
-HPLcom/android/server/power/PowerManagerService;->applyWakeLockFlagsOnAcquireLocked(Lcom/android/server/power/PowerManagerService$WakeLock;I)V
-PLcom/android/server/power/PowerManagerService;->applyWakeLockFlagsOnReleaseLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
+HSPLcom/android/server/power/PowerManagerService;->acquireWakeLockInternal(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;II)V
+HSPLcom/android/server/power/PowerManagerService;->adjustWakeLockSummaryLocked(I)I
+HSPLcom/android/server/power/PowerManagerService;->applyWakeLockFlagsOnAcquireLocked(Lcom/android/server/power/PowerManagerService$WakeLock;I)V
+HSPLcom/android/server/power/PowerManagerService;->applyWakeLockFlagsOnReleaseLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
PLcom/android/server/power/PowerManagerService;->canDozeLocked()Z
PLcom/android/server/power/PowerManagerService;->canDreamLocked()Z
HPLcom/android/server/power/PowerManagerService;->checkForLongWakeLocks()V
-HPLcom/android/server/power/PowerManagerService;->copyWorkSource(Landroid/os/WorkSource;)Landroid/os/WorkSource;
+HSPLcom/android/server/power/PowerManagerService;->copyWorkSource(Landroid/os/WorkSource;)Landroid/os/WorkSource;
+PLcom/android/server/power/PowerManagerService;->dumpInternal(Ljava/io/PrintWriter;)V
+PLcom/android/server/power/PowerManagerService;->dumpProto(Ljava/io/FileDescriptor;)V
PLcom/android/server/power/PowerManagerService;->enqueueNotifyLongMsgLocked(J)V
-HPLcom/android/server/power/PowerManagerService;->findWakeLockIndexLocked(Landroid/os/IBinder;)I
-HPLcom/android/server/power/PowerManagerService;->finishWakefulnessChangeIfNeededLocked()V
-PLcom/android/server/power/PowerManagerService;->getAttentiveTimeoutLocked()J
-HPLcom/android/server/power/PowerManagerService;->getDesiredScreenPolicyLocked()I
+HSPLcom/android/server/power/PowerManagerService;->findWakeLockIndexLocked(Landroid/os/IBinder;)I
+HSPLcom/android/server/power/PowerManagerService;->finishWakefulnessChangeIfNeededLocked()V
+HSPLcom/android/server/power/PowerManagerService;->getAttentiveTimeoutLocked()J
+HSPLcom/android/server/power/PowerManagerService;->getDesiredScreenPolicyLocked()I
PLcom/android/server/power/PowerManagerService;->getLastShutdownReasonInternal()I
PLcom/android/server/power/PowerManagerService;->getLastWakeupInternal()Landroid/os/PowerManager$WakeData;
-HPLcom/android/server/power/PowerManagerService;->getNextProfileTimeoutLocked(J)J
+HSPLcom/android/server/power/PowerManagerService;->getNextProfileTimeoutLocked(J)J
PLcom/android/server/power/PowerManagerService;->getScreenDimDurationLocked(J)J
-HPLcom/android/server/power/PowerManagerService;->getScreenOffTimeoutLocked(JJ)J
+HSPLcom/android/server/power/PowerManagerService;->getScreenOffTimeoutLocked(JJ)J
PLcom/android/server/power/PowerManagerService;->getSleepTimeoutLocked(J)J
-HPLcom/android/server/power/PowerManagerService;->getWakeLockSummaryFlags(Lcom/android/server/power/PowerManagerService$WakeLock;)I
+HSPLcom/android/server/power/PowerManagerService;->getWakeLockSummaryFlags(Lcom/android/server/power/PowerManagerService$WakeLock;)I
PLcom/android/server/power/PowerManagerService;->goToSleepInternal(JIII)V
PLcom/android/server/power/PowerManagerService;->goToSleepNoUpdateLocked(JIII)Z
PLcom/android/server/power/PowerManagerService;->handleBatteryStateChangedLocked()V
-HPLcom/android/server/power/PowerManagerService;->handleSandman()V
+HSPLcom/android/server/power/PowerManagerService;->handleSandman()V
PLcom/android/server/power/PowerManagerService;->handleSettingsChangedLocked()V
PLcom/android/server/power/PowerManagerService;->handleUserActivityTimeout()V
PLcom/android/server/power/PowerManagerService;->handleWakeLockDeath(Lcom/android/server/power/PowerManagerService$WakeLock;)V
-PLcom/android/server/power/PowerManagerService;->incrementBootCount()V
+HSPLcom/android/server/power/PowerManagerService;->incrementBootCount()V
PLcom/android/server/power/PowerManagerService;->isAttentiveTimeoutExpired(J)Z
PLcom/android/server/power/PowerManagerService;->isBeingKeptAwakeLocked()Z
-PLcom/android/server/power/PowerManagerService;->isDeviceIdleModeInternal()Z
-HPLcom/android/server/power/PowerManagerService;->isInteractiveInternal()Z
+HSPLcom/android/server/power/PowerManagerService;->isDeviceIdleModeInternal()Z
+HSPLcom/android/server/power/PowerManagerService;->isInteractiveInternal()Z
PLcom/android/server/power/PowerManagerService;->isItBedTimeYetLocked()Z
-PLcom/android/server/power/PowerManagerService;->isLightDeviceIdleModeInternal()Z
-PLcom/android/server/power/PowerManagerService;->isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()Z
+HPLcom/android/server/power/PowerManagerService;->isLightDeviceIdleModeInternal()Z
+HSPLcom/android/server/power/PowerManagerService;->isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()Z
+PLcom/android/server/power/PowerManagerService;->isScreenLock(Lcom/android/server/power/PowerManagerService$WakeLock;)Z
PLcom/android/server/power/PowerManagerService;->isValidBrightness(I)Z
PLcom/android/server/power/PowerManagerService;->isWakeLockLevelSupportedInternal(I)Z
PLcom/android/server/power/PowerManagerService;->logSleepTimeoutRecapturedLocked()V
-HPLcom/android/server/power/PowerManagerService;->maybeHideInattentiveSleepWarningLocked(JJ)Z
+HSPLcom/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;->needDisplaySuspendBlockerLocked()Z
-HPLcom/android/server/power/PowerManagerService;->notifyWakeLockAcquiredLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
+HSPLcom/android/server/power/PowerManagerService;->needDisplaySuspendBlockerLocked()Z
+HSPLcom/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;)V
-PLcom/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
+HSPLcom/android/server/power/PowerManagerService;->notifyWakeLockLongFinishedLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
+HSPLcom/android/server/power/PowerManagerService;->notifyWakeLockReleasedLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)V
HSPLcom/android/server/power/PowerManagerService;->onBootPhase(I)V
HSPLcom/android/server/power/PowerManagerService;->onStart()V
PLcom/android/server/power/PowerManagerService;->powerHintInternal(II)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
+HSPLcom/android/server/power/PowerManagerService;->readConfigurationLocked()V
+PLcom/android/server/power/PowerManagerService;->reallyGoToSleepNoUpdateLocked(JI)Z
+HSPLcom/android/server/power/PowerManagerService;->releaseWakeLockInternal(Landroid/os/IBinder;I)V
+HSPLcom/android/server/power/PowerManagerService;->removeWakeLockLocked(Lcom/android/server/power/PowerManagerService$WakeLock;I)V
+HSPLcom/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
+PLcom/android/server/power/PowerManagerService;->scheduleUserInactivityTimeout(J)V
PLcom/android/server/power/PowerManagerService;->setDeviceIdleModeInternal(Z)Z
PLcom/android/server/power/PowerManagerService;->setDeviceIdleTempWhitelistInternal([I)V
-PLcom/android/server/power/PowerManagerService;->setDeviceIdleWhitelistInternal([I)V
-PLcom/android/server/power/PowerManagerService;->setDozeAfterScreenOffInternal(Z)V
+HSPLcom/android/server/power/PowerManagerService;->setDeviceIdleWhitelistInternal([I)V
+HSPLcom/android/server/power/PowerManagerService;->setDozeAfterScreenOffInternal(Z)V
PLcom/android/server/power/PowerManagerService;->setDozeOverrideFromDreamManagerInternal(II)V
-HPLcom/android/server/power/PowerManagerService;->setHalAutoSuspendModeLocked(Z)V
-HPLcom/android/server/power/PowerManagerService;->setHalInteractiveModeLocked(Z)V
+HSPLcom/android/server/power/PowerManagerService;->setHalAutoSuspendModeLocked(Z)V
+HSPLcom/android/server/power/PowerManagerService;->setHalInteractiveModeLocked(Z)V
PLcom/android/server/power/PowerManagerService;->setLightDeviceIdleModeInternal(Z)Z
-PLcom/android/server/power/PowerManagerService;->setMaximumScreenOffTimeoutFromDeviceAdminInternal(IJ)V
-PLcom/android/server/power/PowerManagerService;->setScreenBrightnessOverrideFromWindowManagerInternal(I)V
-PLcom/android/server/power/PowerManagerService;->setUserActivityTimeoutOverrideFromWindowManagerInternal(J)V
-HPLcom/android/server/power/PowerManagerService;->setWakeLockDisabledStateLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)Z
-PLcom/android/server/power/PowerManagerService;->setWakefulnessLocked(IIJ)V
+HSPLcom/android/server/power/PowerManagerService;->setMaximumScreenOffTimeoutFromDeviceAdminInternal(IJ)V
+HSPLcom/android/server/power/PowerManagerService;->setScreenBrightnessOverrideFromWindowManagerInternal(I)V
+HSPLcom/android/server/power/PowerManagerService;->setUserActivityTimeoutOverrideFromWindowManagerInternal(J)V
+HSPLcom/android/server/power/PowerManagerService;->setWakeLockDisabledStateLocked(Lcom/android/server/power/PowerManagerService$WakeLock;)Z
+HPLcom/android/server/power/PowerManagerService;->setWakefulnessLocked(IIJ)V
PLcom/android/server/power/PowerManagerService;->shouldBoostScreenBrightness()Z
PLcom/android/server/power/PowerManagerService;->shouldNapAtBedTimeLocked()Z
PLcom/android/server/power/PowerManagerService;->shouldUseProximitySensorLocked()Z
-PLcom/android/server/power/PowerManagerService;->shouldWakeUpWhenPluggedOrUnpluggedLocked(ZIZ)Z
-PLcom/android/server/power/PowerManagerService;->systemReady(Lcom/android/internal/app/IAppOpsService;)V
-PLcom/android/server/power/PowerManagerService;->uidActiveInternal(I)V
-PLcom/android/server/power/PowerManagerService;->uidGoneInternal(I)V
-PLcom/android/server/power/PowerManagerService;->uidIdleInternal(I)V
-HPLcom/android/server/power/PowerManagerService;->updateAttentiveStateLocked(JI)V
-HPLcom/android/server/power/PowerManagerService;->updateDisplayPowerStateLocked(I)Z
-PLcom/android/server/power/PowerManagerService;->updateDreamLocked(IZ)V
-HPLcom/android/server/power/PowerManagerService;->updateIsPoweredLocked(I)V
+HSPLcom/android/server/power/PowerManagerService;->shouldWakeUpWhenPluggedOrUnpluggedLocked(ZIZ)Z
+HSPLcom/android/server/power/PowerManagerService;->systemReady(Lcom/android/internal/app/IAppOpsService;)V
+HSPLcom/android/server/power/PowerManagerService;->uidActiveInternal(I)V
+HSPLcom/android/server/power/PowerManagerService;->uidGoneInternal(I)V
+HSPLcom/android/server/power/PowerManagerService;->uidIdleInternal(I)V
+HSPLcom/android/server/power/PowerManagerService;->updateAttentiveStateLocked(JI)V
+HSPLcom/android/server/power/PowerManagerService;->updateDisplayPowerStateLocked(I)Z
+HPLcom/android/server/power/PowerManagerService;->updateDreamLocked(IZ)V
+HSPLcom/android/server/power/PowerManagerService;->updateIsPoweredLocked(I)V
PLcom/android/server/power/PowerManagerService;->updatePowerRequestFromBatterySaverPolicy(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)V
-HPLcom/android/server/power/PowerManagerService;->updatePowerStateLocked()V
-HPLcom/android/server/power/PowerManagerService;->updateProfilesLocked(J)V
-HPLcom/android/server/power/PowerManagerService;->updateScreenBrightnessBoostLocked(I)V
-PLcom/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
-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;->userActivityFromNative(JII)V
-PLcom/android/server/power/PowerManagerService;->userActivityInternal(JIII)V
-PLcom/android/server/power/PowerManagerService;->userActivityNoUpdateLocked(JIII)Z
+HSPLcom/android/server/power/PowerManagerService;->updatePowerStateLocked()V
+HSPLcom/android/server/power/PowerManagerService;->updateProfilesLocked(J)V
+HSPLcom/android/server/power/PowerManagerService;->updateScreenBrightnessBoostLocked(I)V
+HSPLcom/android/server/power/PowerManagerService;->updateSettingsLocked()V
+HSPLcom/android/server/power/PowerManagerService;->updateStayOnLocked(I)V
+HSPLcom/android/server/power/PowerManagerService;->updateSuspendBlockerLocked()V
+HSPLcom/android/server/power/PowerManagerService;->updateUidProcStateInternal(II)V
+HSPLcom/android/server/power/PowerManagerService;->updateUserActivitySummaryLocked(JI)V
+HPLcom/android/server/power/PowerManagerService;->updateWakeLockDisabledStatesLocked()V
+HSPLcom/android/server/power/PowerManagerService;->updateWakeLockSummaryLocked(I)V
+HSPLcom/android/server/power/PowerManagerService;->updateWakeLockWorkSourceInternal(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;I)V
+HSPLcom/android/server/power/PowerManagerService;->updateWakefulnessLocked(I)Z
+HSPLcom/android/server/power/PowerManagerService;->userActivityFromNative(JII)V
+HSPLcom/android/server/power/PowerManagerService;->userActivityInternal(JIII)V
+HSPLcom/android/server/power/PowerManagerService;->userActivityNoUpdateLocked(JIII)Z
PLcom/android/server/power/PowerManagerService;->wakeUpInternal(JILjava/lang/String;ILjava/lang/String;I)V
-PLcom/android/server/power/PowerManagerService;->wakeUpNoUpdateLocked(JILjava/lang/String;ILjava/lang/String;I)Z
+HSPLcom/android/server/power/PowerManagerService;->wakeUpNoUpdateLocked(JILjava/lang/String;ILjava/lang/String;I)Z
HSPLcom/android/server/power/ThermalManagerService$1;-><init>(Lcom/android/server/power/ThermalManagerService;)V
+PLcom/android/server/power/ThermalManagerService$1;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/power/ThermalManagerService$1;->dumpItemsLocked(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/util/Collection;)V
HPLcom/android/server/power/ThermalManagerService$1;->getCurrentCoolingDevices()Ljava/util/List;
PLcom/android/server/power/ThermalManagerService$1;->getCurrentTemperatures()Ljava/util/List;
PLcom/android/server/power/ThermalManagerService$1;->getCurrentThermalStatus()I
-PLcom/android/server/power/ThermalManagerService$1;->registerThermalEventListener(Landroid/os/IThermalEventListener;)Z
+HSPLcom/android/server/power/ThermalManagerService$1;->registerThermalEventListener(Landroid/os/IThermalEventListener;)Z
PLcom/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$ThermalHal20Wrapper$1;-><init>(Lcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;)V
+HSPLcom/android/server/power/ThermalManagerService$1;->registerThermalStatusListener(Landroid/os/IThermalStatusListener;)Z
+PLcom/android/server/power/ThermalManagerService$1;->unregisterThermalStatusListener(Landroid/os/IThermalStatusListener;)Z
+HSPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper$1;-><init>(Lcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;)V
PLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper$1;->notifyThrottling(Landroid/hardware/thermal/V2_0/Temperature;)V
-PLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;-><init>()V
-PLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->connectToHal()Z
-PLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->getCurrentCoolingDevices(ZI)Ljava/util/List;
-PLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->getCurrentTemperatures(ZI)Ljava/util/List;
+HSPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;-><init>()V
+HSPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->connectToHal()Z
+PLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->getCurrentCoolingDevices(ZI)Ljava/util/List;
+HSPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->getCurrentTemperatures(ZI)Ljava/util/List;
HPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->lambda$getCurrentCoolingDevices$1(Ljava/util/List;Landroid/hardware/thermal/V1_0/ThermalStatus;Ljava/util/ArrayList;)V
-PLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->lambda$getCurrentTemperatures$0(Ljava/util/List;Landroid/hardware/thermal/V1_0/ThermalStatus;Ljava/util/ArrayList;)V
-PLcom/android/server/power/ThermalManagerService$ThermalHalWrapper$DeathRecipient;-><init>(Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper;)V
-PLcom/android/server/power/ThermalManagerService$ThermalHalWrapper;-><clinit>()V
-PLcom/android/server/power/ThermalManagerService$ThermalHalWrapper;-><init>()V
-PLcom/android/server/power/ThermalManagerService$ThermalHalWrapper;->setCallback(Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper$TemperatureChangedCallback;)V
+HSPLcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;->lambda$getCurrentTemperatures$0(Ljava/util/List;Landroid/hardware/thermal/V1_0/ThermalStatus;Ljava/util/ArrayList;)V
+HSPLcom/android/server/power/ThermalManagerService$ThermalHalWrapper$DeathRecipient;-><init>(Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper;)V
+HSPLcom/android/server/power/ThermalManagerService$ThermalHalWrapper;-><clinit>()V
+HSPLcom/android/server/power/ThermalManagerService$ThermalHalWrapper;-><init>()V
+HSPLcom/android/server/power/ThermalManagerService$ThermalHalWrapper;->setCallback(Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper$TemperatureChangedCallback;)V
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;->access$000(Lcom/android/server/power/ThermalManagerService;)Ljava/lang/Object;
-PLcom/android/server/power/ThermalManagerService;->access$100(Lcom/android/server/power/ThermalManagerService;)Landroid/os/RemoteCallbackList;
-PLcom/android/server/power/ThermalManagerService;->access$200(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalEventListener;Ljava/lang/Integer;)V
+HSPLcom/android/server/power/ThermalManagerService;->access$000(Lcom/android/server/power/ThermalManagerService;)Ljava/lang/Object;
+HSPLcom/android/server/power/ThermalManagerService;->access$100(Lcom/android/server/power/ThermalManagerService;)Landroid/os/RemoteCallbackList;
+HSPLcom/android/server/power/ThermalManagerService;->access$200(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalEventListener;Ljava/lang/Integer;)V
PLcom/android/server/power/ThermalManagerService;->access$300(Lcom/android/server/power/ThermalManagerService;)Ljava/util/concurrent/atomic/AtomicBoolean;
PLcom/android/server/power/ThermalManagerService;->access$400(Lcom/android/server/power/ThermalManagerService;)Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper;
-PLcom/android/server/power/ThermalManagerService;->access$500(Lcom/android/server/power/ThermalManagerService;)Landroid/os/RemoteCallbackList;
-PLcom/android/server/power/ThermalManagerService;->access$600(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalStatusListener;)V
+HSPLcom/android/server/power/ThermalManagerService;->access$500(Lcom/android/server/power/ThermalManagerService;)Landroid/os/RemoteCallbackList;
+HSPLcom/android/server/power/ThermalManagerService;->access$600(Lcom/android/server/power/ThermalManagerService;Landroid/os/IThermalStatusListener;)V
PLcom/android/server/power/ThermalManagerService;->access$700(Lcom/android/server/power/ThermalManagerService;)I
-PLcom/android/server/power/ThermalManagerService;->lambda$postEventListener$1(Landroid/os/IThermalEventListener;Landroid/os/Temperature;)V
-PLcom/android/server/power/ThermalManagerService;->lambda$postStatusListener$0$ThermalManagerService(Landroid/os/IThermalStatusListener;)V
-PLcom/android/server/power/ThermalManagerService;->notifyEventListenersLocked(Landroid/os/Temperature;)V
-PLcom/android/server/power/ThermalManagerService;->notifyStatusListenersLocked()V
-PLcom/android/server/power/ThermalManagerService;->onActivityManagerReady()V
+HSPLcom/android/server/power/ThermalManagerService;->lambda$postEventListener$1(Landroid/os/IThermalEventListener;Landroid/os/Temperature;)V
+HSPLcom/android/server/power/ThermalManagerService;->lambda$postStatusListener$0$ThermalManagerService(Landroid/os/IThermalStatusListener;)V
+HSPLcom/android/server/power/ThermalManagerService;->notifyEventListenersLocked(Landroid/os/Temperature;)V
+HSPLcom/android/server/power/ThermalManagerService;->notifyStatusListenersLocked()V
+HSPLcom/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
+HSPLcom/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;->setStatusLocked(I)V
-PLcom/android/server/power/ThermalManagerService;->shutdownIfNeeded(Landroid/os/Temperature;)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
-PLcom/android/server/power/batterysaver/-$$Lambda$BatterySaverPolicy$rfw31Sb8JX1OVD2rGHGtCXyfop8;-><init>(Lcom/android/server/power/batterysaver/BatterySaverPolicy;)V
+HSPLcom/android/server/power/ThermalManagerService;->onTemperatureMapChangedLocked()V
+HSPLcom/android/server/power/ThermalManagerService;->postEventListener(Landroid/os/Temperature;Landroid/os/IThermalEventListener;Ljava/lang/Integer;)V
+HSPLcom/android/server/power/ThermalManagerService;->postEventListenerCurrentTemperatures(Landroid/os/IThermalEventListener;Ljava/lang/Integer;)V
+HSPLcom/android/server/power/ThermalManagerService;->postStatusListener(Landroid/os/IThermalStatusListener;)V
+HSPLcom/android/server/power/ThermalManagerService;->setStatusLocked(I)V
+HSPLcom/android/server/power/ThermalManagerService;->shutdownIfNeeded(Landroid/os/Temperature;)V
+HSPLcom/android/server/power/WirelessChargerDetector$1;-><init>(Lcom/android/server/power/WirelessChargerDetector;)V
+HSPLcom/android/server/power/WirelessChargerDetector$2;-><init>(Lcom/android/server/power/WirelessChargerDetector;)V
+HSPLcom/android/server/power/WirelessChargerDetector;-><clinit>()V
+HSPLcom/android/server/power/WirelessChargerDetector;-><init>(Landroid/hardware/SensorManager;Lcom/android/server/power/SuspendBlocker;Landroid/os/Handler;)V
+PLcom/android/server/power/WirelessChargerDetector;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/power/WirelessChargerDetector;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/power/WirelessChargerDetector;->update(ZI)Z
+HSPLcom/android/server/power/batterysaver/-$$Lambda$BatterySaverPolicy$rfw31Sb8JX1OVD2rGHGtCXyfop8;-><init>(Lcom/android/server/power/batterysaver/BatterySaverPolicy;)V
HSPLcom/android/server/power/batterysaver/-$$Lambda$BatterySaverStateMachine$SSfmWJrD4RBoVg8A8loZrS-jhAo;-><init>(Lcom/android/server/power/batterysaver/BatterySaverStateMachine;)V
PLcom/android/server/power/batterysaver/-$$Lambda$BatterySaverStateMachine$fEidyt_9TXlXBpF6D2lhOOrfOC4;-><init>(Lcom/android/server/power/batterysaver/BatterySaverStateMachine;)V
PLcom/android/server/power/batterysaver/-$$Lambda$BatterySaverStateMachine$fEidyt_9TXlXBpF6D2lhOOrfOC4;->run()V
@@ -14390,57 +17165,74 @@ HSPLcom/android/server/power/batterysaver/-$$Lambda$FileUpdater$NUmipjKCJwbgmFbI
HSPLcom/android/server/power/batterysaver/BatterySaverController$1;-><init>(Lcom/android/server/power/batterysaver/BatterySaverController;)V
PLcom/android/server/power/batterysaver/BatterySaverController$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
HSPLcom/android/server/power/batterysaver/BatterySaverController$MyHandler;-><init>(Lcom/android/server/power/batterysaver/BatterySaverController;Landroid/os/Looper;)V
-PLcom/android/server/power/batterysaver/BatterySaverController$MyHandler;->dispatchMessage(Landroid/os/Message;)V
-PLcom/android/server/power/batterysaver/BatterySaverController$MyHandler;->postSystemReady()V
+HSPLcom/android/server/power/batterysaver/BatterySaverController$MyHandler;->dispatchMessage(Landroid/os/Message;)V
+HSPLcom/android/server/power/batterysaver/BatterySaverController$MyHandler;->postSystemReady()V
HSPLcom/android/server/power/batterysaver/BatterySaverController;-><init>(Ljava/lang/Object;Landroid/content/Context;Landroid/os/Looper;Lcom/android/server/power/batterysaver/BatterySaverPolicy;Lcom/android/server/power/batterysaver/BatterySavingStats;)V
PLcom/android/server/power/batterysaver/BatterySaverController;->access$000(Lcom/android/server/power/batterysaver/BatterySaverController;)Z
PLcom/android/server/power/batterysaver/BatterySaverController;->access$100(Lcom/android/server/power/batterysaver/BatterySaverController;)V
PLcom/android/server/power/batterysaver/BatterySaverController;->access$300(Lcom/android/server/power/batterysaver/BatterySaverController;)Ljava/lang/Object;
PLcom/android/server/power/batterysaver/BatterySaverController;->access$402(Lcom/android/server/power/batterysaver/BatterySaverController;Z)Z
-PLcom/android/server/power/batterysaver/BatterySaverController;->access$500(Lcom/android/server/power/batterysaver/BatterySaverController;)[Lcom/android/server/power/batterysaver/BatterySaverController$Plugin;
+HSPLcom/android/server/power/batterysaver/BatterySaverController;->access$500(Lcom/android/server/power/batterysaver/BatterySaverController;)[Lcom/android/server/power/batterysaver/BatterySaverController$Plugin;
HSPLcom/android/server/power/batterysaver/BatterySaverController;->addListener(Landroid/os/PowerManagerInternal$LowPowerModeListener;)V
-PLcom/android/server/power/batterysaver/BatterySaverController;->getBatterySaverPolicy()Lcom/android/server/power/batterysaver/BatterySaverPolicy;
+HSPLcom/android/server/power/batterysaver/BatterySaverController;->getBatterySaverPolicy()Lcom/android/server/power/batterysaver/BatterySaverPolicy;
PLcom/android/server/power/batterysaver/BatterySaverController;->getPowerManager()Landroid/os/PowerManager;
-PLcom/android/server/power/batterysaver/BatterySaverController;->isEnabled()Z
+PLcom/android/server/power/batterysaver/BatterySaverController;->isAdaptiveEnabled()Z
+HPLcom/android/server/power/batterysaver/BatterySaverController;->isEnabled()Z
+PLcom/android/server/power/batterysaver/BatterySaverController;->isFullEnabled()Z
PLcom/android/server/power/batterysaver/BatterySaverController;->isLaunchBoostDisabled()Z
PLcom/android/server/power/batterysaver/BatterySaverController;->isPolicyEnabled()Z
-PLcom/android/server/power/batterysaver/BatterySaverController;->systemReady()V
+PLcom/android/server/power/batterysaver/BatterySaverController;->resetAdaptivePolicyLocked(I)Z
+PLcom/android/server/power/batterysaver/BatterySaverController;->setAdaptivePolicyEnabledLocked(ZI)Z
+HSPLcom/android/server/power/batterysaver/BatterySaverController;->systemReady()V
PLcom/android/server/power/batterysaver/BatterySaverController;->updateBatterySavingStats()V
HSPLcom/android/server/power/batterysaver/BatterySaverLocationPlugin;-><init>(Landroid/content/Context;)V
-PLcom/android/server/power/batterysaver/BatterySaverLocationPlugin;->onSystemReady(Lcom/android/server/power/batterysaver/BatterySaverController;)V
-PLcom/android/server/power/batterysaver/BatterySaverLocationPlugin;->updateLocationState(Lcom/android/server/power/batterysaver/BatterySaverController;)V
+HSPLcom/android/server/power/batterysaver/BatterySaverLocationPlugin;->onSystemReady(Lcom/android/server/power/batterysaver/BatterySaverController;)V
+HSPLcom/android/server/power/batterysaver/BatterySaverLocationPlugin;->updateLocationState(Lcom/android/server/power/batterysaver/BatterySaverController;)V
HSPLcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;-><init>(FZZZZZZZZZZZZZZLandroid/util/ArrayMap;Landroid/util/ArrayMap;ZZI)V
-PLcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;->fromSettings(Ljava/lang/String;Ljava/lang/String;Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;)Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;
+PLcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;->fromSettings(Ljava/lang/String;Ljava/lang/String;Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;)Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;
HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;-><clinit>()V
HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;-><init>(Ljava/lang/Object;Landroid/content/Context;Lcom/android/server/power/batterysaver/BatterySavingStats;)V
HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->addListener(Lcom/android/server/power/batterysaver/BatterySaverPolicy$BatterySaverPolicyListener;)V
+PLcom/android/server/power/batterysaver/BatterySaverPolicy;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/power/batterysaver/BatterySaverPolicy;->dumpMap(Ljava/io/PrintWriter;Ljava/lang/String;Landroid/util/ArrayMap;)V
+PLcom/android/server/power/batterysaver/BatterySaverPolicy;->dumpPolicyLocked(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;)V
HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getBatterySaverPolicy(I)Landroid/os/PowerSaveState;
HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getCurrentPolicyLocked()Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;
-PLcom/android/server/power/batterysaver/BatterySaverPolicy;->getDeviceSpecificConfigResId()I
-PLcom/android/server/power/batterysaver/BatterySaverPolicy;->getGlobalSetting(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/power/batterysaver/BatterySaverPolicy;->getGpsMode()I
-PLcom/android/server/power/batterysaver/BatterySaverPolicy;->onChange(ZLandroid/net/Uri;)V
-PLcom/android/server/power/batterysaver/BatterySaverPolicy;->refreshSettings()V
-PLcom/android/server/power/batterysaver/BatterySaverPolicy;->systemReady()V
-PLcom/android/server/power/batterysaver/BatterySaverPolicy;->updateConstantsLocked(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/power/batterysaver/BatterySaverPolicy;->updatePolicyDependenciesLocked()V
+HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getDeviceSpecificConfigResId()I
+HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getGlobalSetting(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->getGpsMode()I
+HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->onChange(ZLandroid/net/Uri;)V
+HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->refreshSettings()V
+PLcom/android/server/power/batterysaver/BatterySaverPolicy;->resetAdaptivePolicyLocked()Z
+PLcom/android/server/power/batterysaver/BatterySaverPolicy;->setAdaptivePolicyLocked(Lcom/android/server/power/batterysaver/BatterySaverPolicy$Policy;)Z
+PLcom/android/server/power/batterysaver/BatterySaverPolicy;->shouldAdvertiseIsEnabled()Z
+HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->systemReady()V
+HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->updateConstantsLocked(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
+HSPLcom/android/server/power/batterysaver/BatterySaverPolicy;->updatePolicyDependenciesLocked()V
HSPLcom/android/server/power/batterysaver/BatterySaverStateMachine$1;-><init>(Lcom/android/server/power/batterysaver/BatterySaverStateMachine;Landroid/os/Handler;)V
HSPLcom/android/server/power/batterysaver/BatterySaverStateMachine;-><init>(Ljava/lang/Object;Landroid/content/Context;Lcom/android/server/power/batterysaver/BatterySaverController;)V
-PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->doAutoBatterySaverLocked()V
+HSPLcom/android/server/power/batterysaver/BatterySaverStateMachine;->doAutoBatterySaverLocked()V
+PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->dump(Ljava/io/PrintWriter;)V
+PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->dumpProto(Landroid/util/proto/ProtoOutputStream;J)V
PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->getGlobalSetting(Ljava/lang/String;I)I
+PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->isAutomaticModeActiveLocked()Z
+PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->isDynamicModeActiveLocked()Z
PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->lambda$onBootCompleted$0$BatterySaverStateMachine()V
PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->onBootCompleted()V
PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->putGlobalSetting(Ljava/lang/String;I)V
PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->refreshSettingsLocked()V
PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->runOnBgThread(Ljava/lang/Runnable;)V
-PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->setBatteryStatus(ZIZ)V
+HSPLcom/android/server/power/batterysaver/BatterySaverStateMachine;->setBatteryStatus(ZIZ)V
PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->setSettingsLocked(ZZIZIIZI)V
PLcom/android/server/power/batterysaver/BatterySaverStateMachine;->updateStateLocked(ZZ)V
PLcom/android/server/power/batterysaver/BatterySavingStats$BatterySaverState;->fromIndex(I)I
-PLcom/android/server/power/batterysaver/BatterySavingStats$DozeState;->fromIndex(I)I
-PLcom/android/server/power/batterysaver/BatterySavingStats$InteractiveState;->fromIndex(I)I
+HPLcom/android/server/power/batterysaver/BatterySavingStats$DozeState;->fromIndex(I)I
+HPLcom/android/server/power/batterysaver/BatterySavingStats$InteractiveState;->fromIndex(I)I
PLcom/android/server/power/batterysaver/BatterySavingStats$Stat;-><init>()V
HSPLcom/android/server/power/batterysaver/BatterySavingStats;-><init>(Ljava/lang/Object;)V
+PLcom/android/server/power/batterysaver/BatterySavingStats;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/power/batterysaver/BatterySavingStats;->dumpLineLocked(Ljava/io/PrintWriter;Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)V
PLcom/android/server/power/batterysaver/BatterySavingStats;->endLastStateLocked(JII)V
PLcom/android/server/power/batterysaver/BatterySavingStats;->getBatteryManagerInternal()Landroid/os/BatteryManagerInternal;
PLcom/android/server/power/batterysaver/BatterySavingStats;->getStat(I)Lcom/android/server/power/batterysaver/BatterySavingStats$Stat;
@@ -14449,40 +17241,50 @@ PLcom/android/server/power/batterysaver/BatterySavingStats;->injectBatteryPercen
PLcom/android/server/power/batterysaver/BatterySavingStats;->injectCurrentTime()J
PLcom/android/server/power/batterysaver/BatterySavingStats;->startCharging()V
PLcom/android/server/power/batterysaver/BatterySavingStats;->startNewStateLocked(IJII)V
+PLcom/android/server/power/batterysaver/BatterySavingStats;->statesToIndex(III)I
PLcom/android/server/power/batterysaver/BatterySavingStats;->transitionState(III)V
PLcom/android/server/power/batterysaver/BatterySavingStats;->transitionStateLocked(I)V
-PLcom/android/server/power/batterysaver/CpuFrequencies;-><init>()V
-PLcom/android/server/power/batterysaver/CpuFrequencies;->addToSysFileMap(Ljava/util/Map;)V
-PLcom/android/server/power/batterysaver/CpuFrequencies;->parseString(Ljava/lang/String;)Lcom/android/server/power/batterysaver/CpuFrequencies;
-PLcom/android/server/power/batterysaver/CpuFrequencies;->toSysFileMap()Landroid/util/ArrayMap;
+HSPLcom/android/server/power/batterysaver/CpuFrequencies;-><init>()V
+HSPLcom/android/server/power/batterysaver/CpuFrequencies;->addToSysFileMap(Ljava/util/Map;)V
+HSPLcom/android/server/power/batterysaver/CpuFrequencies;->parseString(Ljava/lang/String;)Lcom/android/server/power/batterysaver/CpuFrequencies;
+HSPLcom/android/server/power/batterysaver/CpuFrequencies;->toSysFileMap()Landroid/util/ArrayMap;
HSPLcom/android/server/power/batterysaver/FileUpdater;-><init>(Landroid/content/Context;)V
HSPLcom/android/server/power/batterysaver/FileUpdater;-><init>(Landroid/content/Context;Landroid/os/Looper;II)V
-PLcom/android/server/power/batterysaver/FileUpdater;->injectDefaultValuesFilename()Ljava/io/File;
-PLcom/android/server/power/batterysaver/FileUpdater;->systemReady(Z)V
+HSPLcom/android/server/power/batterysaver/FileUpdater;->injectDefaultValuesFilename()Ljava/io/File;
+HSPLcom/android/server/power/batterysaver/FileUpdater;->loadDefaultValuesLocked()Z
+HSPLcom/android/server/power/batterysaver/FileUpdater;->systemReady(Z)V
PLcom/android/server/print/-$$Lambda$UserState$LdWYUAKz4cbWqoxOD4oZ_ZslKdg;-><clinit>()V
PLcom/android/server/print/-$$Lambda$UserState$LdWYUAKz4cbWqoxOD4oZ_ZslKdg;-><init>()V
PLcom/android/server/print/-$$Lambda$UserState$LdWYUAKz4cbWqoxOD4oZ_ZslKdg;->accept(Ljava/lang/Object;)V
-PLcom/android/server/print/PrintManagerService$PrintManagerImpl$1;-><init>(Lcom/android/server/print/PrintManagerService$PrintManagerImpl;Landroid/os/Handler;Landroid/net/Uri;)V
-PLcom/android/server/print/PrintManagerService$PrintManagerImpl$2;-><init>(Lcom/android/server/print/PrintManagerService$PrintManagerImpl;)V
+HSPLcom/android/server/print/PrintManagerService$PrintManagerImpl$1;-><init>(Lcom/android/server/print/PrintManagerService$PrintManagerImpl;Landroid/os/Handler;Landroid/net/Uri;)V
+HSPLcom/android/server/print/PrintManagerService$PrintManagerImpl$2;-><init>(Lcom/android/server/print/PrintManagerService$PrintManagerImpl;)V
PLcom/android/server/print/PrintManagerService$PrintManagerImpl$2;->hadPrintService(Lcom/android/server/print/UserState;Ljava/lang/String;)Z
PLcom/android/server/print/PrintManagerService$PrintManagerImpl$2;->hasPrintService(Ljava/lang/String;)Z
-PLcom/android/server/print/PrintManagerService$PrintManagerImpl$2;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
PLcom/android/server/print/PrintManagerService$PrintManagerImpl$2;->onPackageAdded(Ljava/lang/String;I)V
PLcom/android/server/print/PrintManagerService$PrintManagerImpl$2;->onPackageModified(Ljava/lang/String;)V
PLcom/android/server/print/PrintManagerService$PrintManagerImpl$3;-><init>(Lcom/android/server/print/PrintManagerService$PrintManagerImpl;I)V
PLcom/android/server/print/PrintManagerService$PrintManagerImpl$3;->run()V
-PLcom/android/server/print/PrintManagerService$PrintManagerImpl;-><init>(Lcom/android/server/print/PrintManagerService;Landroid/content/Context;)V
+HSPLcom/android/server/print/PrintManagerService$PrintManagerImpl;-><init>(Lcom/android/server/print/PrintManagerService;Landroid/content/Context;)V
+PLcom/android/server/print/PrintManagerService$PrintManagerImpl;->access$000(Lcom/android/server/print/PrintManagerService$PrintManagerImpl;I)V
+PLcom/android/server/print/PrintManagerService$PrintManagerImpl;->access$200(Lcom/android/server/print/PrintManagerService$PrintManagerImpl;)Ljava/lang/Object;
+PLcom/android/server/print/PrintManagerService$PrintManagerImpl;->access$500(Lcom/android/server/print/PrintManagerService$PrintManagerImpl;)Landroid/os/UserManager;
+PLcom/android/server/print/PrintManagerService$PrintManagerImpl;->access$600(Lcom/android/server/print/PrintManagerService$PrintManagerImpl;IZZ)Lcom/android/server/print/UserState;
+PLcom/android/server/print/PrintManagerService$PrintManagerImpl;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/util/ArrayList;)V
+PLcom/android/server/print/PrintManagerService$PrintManagerImpl;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/print/PrintManagerService$PrintManagerImpl;->getOrCreateUserStateLocked(IZZ)Lcom/android/server/print/UserState;
-PLcom/android/server/print/PrintManagerService$PrintManagerImpl;->registerBroadcastReceivers()V
-PLcom/android/server/print/PrintManagerService$PrintManagerImpl;->registerContentObservers()V
-PLcom/android/server/print/PrintManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/print/PrintManagerService;->onStart()V
+PLcom/android/server/print/PrintManagerService$PrintManagerImpl;->handleUserUnlocked(I)V
+HSPLcom/android/server/print/PrintManagerService$PrintManagerImpl;->registerBroadcastReceivers()V
+HSPLcom/android/server/print/PrintManagerService$PrintManagerImpl;->registerContentObservers()V
+HSPLcom/android/server/print/PrintManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/print/PrintManagerService;->onStart()V
PLcom/android/server/print/PrintManagerService;->onUnlockUser(I)V
PLcom/android/server/print/RemotePrintService$RemotePrintServiceClient;-><init>(Lcom/android/server/print/RemotePrintService;)V
PLcom/android/server/print/RemotePrintService$RemoteServiceConneciton;-><init>(Lcom/android/server/print/RemotePrintService;)V
PLcom/android/server/print/RemotePrintService$RemoteServiceConneciton;-><init>(Lcom/android/server/print/RemotePrintService;Lcom/android/server/print/RemotePrintService$1;)V
PLcom/android/server/print/RemotePrintService;-><init>(Landroid/content/Context;Landroid/content/ComponentName;ILcom/android/server/print/RemotePrintSpooler;Lcom/android/server/print/RemotePrintService$PrintServiceCallbacks;)V
+PLcom/android/server/print/RemotePrintService;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
PLcom/android/server/print/RemotePrintService;->getComponentName()Landroid/content/ComponentName;
+PLcom/android/server/print/RemotePrintService;->isBound()Z
PLcom/android/server/print/RemotePrintSpooler$BasePrintSpoolerServiceCallbacks;-><init>()V
PLcom/android/server/print/RemotePrintSpooler$BasePrintSpoolerServiceCallbacks;-><init>(Lcom/android/server/print/RemotePrintSpooler$1;)V
PLcom/android/server/print/RemotePrintSpooler$ClearCustomPrinterIconCacheCaller$1;-><init>(Lcom/android/server/print/RemotePrintSpooler$ClearCustomPrinterIconCacheCaller;)V
@@ -14512,6 +17314,7 @@ PLcom/android/server/print/RemotePrintSpooler;->access$202(Lcom/android/server/p
PLcom/android/server/print/RemotePrintSpooler;->access$300(Lcom/android/server/print/RemotePrintSpooler;)V
PLcom/android/server/print/RemotePrintSpooler;->bindLocked()V
PLcom/android/server/print/RemotePrintSpooler;->clearClientLocked()V
+PLcom/android/server/print/RemotePrintSpooler;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
PLcom/android/server/print/RemotePrintSpooler;->getRemoteInstanceLazy()Landroid/print/IPrintSpooler;
PLcom/android/server/print/RemotePrintSpooler;->increasePriority()V
PLcom/android/server/print/RemotePrintSpooler;->onAllPrintJobsHandled()V
@@ -14523,8 +17326,10 @@ PLcom/android/server/print/RemotePrintSpooler;->throwIfDestroyedLocked()V
PLcom/android/server/print/RemotePrintSpooler;->unbindLocked()V
PLcom/android/server/print/UserState$PrintJobForAppCache;-><init>(Lcom/android/server/print/UserState;)V
PLcom/android/server/print/UserState$PrintJobForAppCache;-><init>(Lcom/android/server/print/UserState;Lcom/android/server/print/UserState$1;)V
+PLcom/android/server/print/UserState$PrintJobForAppCache;->dumpLocked(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
PLcom/android/server/print/UserState;-><init>(Landroid/content/Context;ILjava/lang/Object;Z)V
PLcom/android/server/print/UserState;->addServiceLocked(Lcom/android/server/print/RemotePrintService;)V
+PLcom/android/server/print/UserState;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;)V
PLcom/android/server/print/UserState;->getInstalledComponents()Ljava/util/ArrayList;
PLcom/android/server/print/UserState;->getPrintServices(I)Ljava/util/List;
PLcom/android/server/print/UserState;->handleDispatchPrintServicesChanged()V
@@ -14542,29 +17347,42 @@ PLcom/android/server/print/UserState;->removeObsoletePrintJobs()V
PLcom/android/server/print/UserState;->throwIfDestroyedLocked()V
PLcom/android/server/print/UserState;->updateIfNeededLocked()V
PLcom/android/server/print/UserState;->upgradePersistentStateIfNeeded()V
-PLcom/android/server/protolog/-$$Lambda$ProtoLogImpl$W1-9aFv3AkmuxF_FKhP3IYl2IMA;-><clinit>()V
-PLcom/android/server/protolog/-$$Lambda$ProtoLogImpl$W1-9aFv3AkmuxF_FKhP3IYl2IMA;-><init>()V
-PLcom/android/server/protolog/-$$Lambda$QtQzaT3jZ03CdC3RGYitrH7aUYo;-><clinit>()V
-PLcom/android/server/protolog/-$$Lambda$QtQzaT3jZ03CdC3RGYitrH7aUYo;-><init>()V
-PLcom/android/server/protolog/ProtoLog$Cache;-><clinit>()V
-PLcom/android/server/protolog/ProtoLog$Cache;->update()V
-PLcom/android/server/protolog/ProtoLogImpl$1;-><clinit>()V
-PLcom/android/server/protolog/ProtoLogImpl$LogLevel;-><clinit>()V
-PLcom/android/server/protolog/ProtoLogImpl$LogLevel;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/protolog/ProtoLogImpl$LogLevel;->values()[Lcom/android/server/protolog/ProtoLogImpl$LogLevel;
-PLcom/android/server/protolog/ProtoLogImpl;-><clinit>()V
-PLcom/android/server/protolog/ProtoLogImpl;-><init>(Ljava/io/File;ILcom/android/server/protolog/ProtoLogViewerConfigReader;)V
-PLcom/android/server/protolog/ProtoLogImpl;->addLogGroupEnum([Lcom/android/server/protolog/common/IProtoLogGroup;)V
-PLcom/android/server/protolog/ProtoLogImpl;->getSingleInstance()Lcom/android/server/protolog/ProtoLogImpl;
-PLcom/android/server/protolog/ProtoLogImpl;->i(Lcom/android/server/protolog/common/IProtoLogGroup;IILjava/lang/String;[Ljava/lang/Object;)V
-PLcom/android/server/protolog/ProtoLogImpl;->isEnabled(Lcom/android/server/protolog/common/IProtoLogGroup;)Z
-PLcom/android/server/protolog/ProtoLogImpl;->isProtoEnabled()Z
-PLcom/android/server/protolog/ProtoLogImpl;->log(Lcom/android/server/protolog/ProtoLogImpl$LogLevel;Lcom/android/server/protolog/common/IProtoLogGroup;IILjava/lang/String;[Ljava/lang/Object;)V
-PLcom/android/server/protolog/ProtoLogImpl;->logToLogcat(Ljava/lang/String;Lcom/android/server/protolog/ProtoLogImpl$LogLevel;ILjava/lang/String;[Ljava/lang/Object;)V
-PLcom/android/server/protolog/ProtoLogImpl;->logToProto(II[Ljava/lang/Object;)V
-PLcom/android/server/protolog/ProtoLogImpl;->passToLogcat(Ljava/lang/String;Lcom/android/server/protolog/ProtoLogImpl$LogLevel;Ljava/lang/String;)V
+PLcom/android/server/protolog/-$$Lambda$PfxMAktVLMbQMPp_FRkrQxibSKE;-><clinit>()V
+PLcom/android/server/protolog/-$$Lambda$PfxMAktVLMbQMPp_FRkrQxibSKE;-><init>()V
+PLcom/android/server/protolog/-$$Lambda$PfxMAktVLMbQMPp_FRkrQxibSKE;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/protolog/-$$Lambda$ProtoLogImpl$G6yKiHAdF7lI4aTCybTMCes5zyI;-><clinit>()V
+PLcom/android/server/protolog/-$$Lambda$ProtoLogImpl$G6yKiHAdF7lI4aTCybTMCes5zyI;-><init>()V
+PLcom/android/server/protolog/-$$Lambda$ProtoLogImpl$G6yKiHAdF7lI4aTCybTMCes5zyI;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/protolog/-$$Lambda$ProtoLogImpl$W1-9aFv3AkmuxF_FKhP3IYl2IMA;-><clinit>()V
+HSPLcom/android/server/protolog/-$$Lambda$ProtoLogImpl$W1-9aFv3AkmuxF_FKhP3IYl2IMA;-><init>()V
+PLcom/android/server/protolog/-$$Lambda$ProtoLogImpl$dhk0iBKAK3ywNSTqD4XUL3Oq0hM;-><clinit>()V
+PLcom/android/server/protolog/-$$Lambda$ProtoLogImpl$dhk0iBKAK3ywNSTqD4XUL3Oq0hM;-><init>()V
+PLcom/android/server/protolog/-$$Lambda$ProtoLogImpl$dhk0iBKAK3ywNSTqD4XUL3Oq0hM;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/protolog/-$$Lambda$QtQzaT3jZ03CdC3RGYitrH7aUYo;-><clinit>()V
+HSPLcom/android/server/protolog/-$$Lambda$QtQzaT3jZ03CdC3RGYitrH7aUYo;-><init>()V
+HSPLcom/android/server/protolog/ProtoLog$Cache;-><clinit>()V
+HSPLcom/android/server/protolog/ProtoLog$Cache;->update()V
+HSPLcom/android/server/protolog/ProtoLogImpl$1;-><clinit>()V
+HSPLcom/android/server/protolog/ProtoLogImpl$LogLevel;-><clinit>()V
+HSPLcom/android/server/protolog/ProtoLogImpl$LogLevel;-><init>(Ljava/lang/String;I)V
+HSPLcom/android/server/protolog/ProtoLogImpl$LogLevel;->values()[Lcom/android/server/protolog/ProtoLogImpl$LogLevel;
+HSPLcom/android/server/protolog/ProtoLogImpl;-><clinit>()V
+HSPLcom/android/server/protolog/ProtoLogImpl;-><init>(Ljava/io/File;ILcom/android/server/protolog/ProtoLogViewerConfigReader;)V
+HSPLcom/android/server/protolog/ProtoLogImpl;->addLogGroupEnum([Lcom/android/server/protolog/common/IProtoLogGroup;)V
+HSPLcom/android/server/protolog/ProtoLogImpl;->getSingleInstance()Lcom/android/server/protolog/ProtoLogImpl;
+PLcom/android/server/protolog/ProtoLogImpl;->getStatus()Ljava/lang/String;
+HSPLcom/android/server/protolog/ProtoLogImpl;->i(Lcom/android/server/protolog/common/IProtoLogGroup;IILjava/lang/String;[Ljava/lang/Object;)V
+HSPLcom/android/server/protolog/ProtoLogImpl;->isEnabled(Lcom/android/server/protolog/common/IProtoLogGroup;)Z
+HSPLcom/android/server/protolog/ProtoLogImpl;->isProtoEnabled()Z
+PLcom/android/server/protolog/ProtoLogImpl;->lambda$getStatus$3(Lcom/android/server/protolog/common/IProtoLogGroup;)Z
+PLcom/android/server/protolog/ProtoLogImpl;->lambda$getStatus$4(Lcom/android/server/protolog/common/IProtoLogGroup;)Z
+HSPLcom/android/server/protolog/ProtoLogImpl;->log(Lcom/android/server/protolog/ProtoLogImpl$LogLevel;Lcom/android/server/protolog/common/IProtoLogGroup;IILjava/lang/String;[Ljava/lang/Object;)V
+HSPLcom/android/server/protolog/ProtoLogImpl;->logToLogcat(Ljava/lang/String;Lcom/android/server/protolog/ProtoLogImpl$LogLevel;ILjava/lang/String;[Ljava/lang/Object;)V
+HSPLcom/android/server/protolog/ProtoLogImpl;->logToProto(II[Ljava/lang/Object;)V
+HSPLcom/android/server/protolog/ProtoLogImpl;->passToLogcat(Ljava/lang/String;Lcom/android/server/protolog/ProtoLogImpl$LogLevel;Ljava/lang/String;)V
PLcom/android/server/protolog/ProtoLogImpl;->w(Lcom/android/server/protolog/common/IProtoLogGroup;IILjava/lang/String;[Ljava/lang/Object;)V
-PLcom/android/server/protolog/ProtoLogViewerConfigReader;-><init>()V
+HSPLcom/android/server/protolog/ProtoLogViewerConfigReader;-><init>()V
+PLcom/android/server/protolog/ProtoLogViewerConfigReader;->knownViewerStringsNumber()I
HSPLcom/android/server/recoverysystem/RecoverySystemService$Injector;-><init>(Landroid/content/Context;)V
HSPLcom/android/server/recoverysystem/RecoverySystemService$Injector;->getContext()Landroid/content/Context;
HSPLcom/android/server/recoverysystem/RecoverySystemService$Lifecycle;-><init>(Landroid/content/Context;)V
@@ -14573,74 +17391,89 @@ 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$1;)V
HSPLcom/android/server/recoverysystem/RecoverySystemService;-><init>(Lcom/android/server/recoverysystem/RecoverySystemService$Injector;)V
-PLcom/android/server/restrictions/RestrictionsManagerService$RestrictionsManagerImpl;-><init>(Lcom/android/server/restrictions/RestrictionsManagerService;Landroid/content/Context;)V
+HSPLcom/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;->onStart()V
+PLcom/android/server/restrictions/RestrictionsManagerService$RestrictionsManagerImpl;->hasRestrictionsProvider()Z
+HSPLcom/android/server/restrictions/RestrictionsManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/restrictions/RestrictionsManagerService;->access$000(Lcom/android/server/restrictions/RestrictionsManagerService;Ljava/lang/String;)Landroid/os/IBinder;
+HSPLcom/android/server/restrictions/RestrictionsManagerService;->access$100(Lcom/android/server/restrictions/RestrictionsManagerService;Ljava/lang/String;)Landroid/os/IBinder;
+HSPLcom/android/server/restrictions/RestrictionsManagerService;->onStart()V
PLcom/android/server/role/-$$Lambda$RoleManagerService$4FcQsmMH6Dhstzx5gl80tO2TkTw;-><init>(Lcom/android/server/role/RoleUserState;Ljava/lang/String;Lcom/android/internal/infra/AndroidFuture;)V
PLcom/android/server/role/-$$Lambda$RoleManagerService$4FcQsmMH6Dhstzx5gl80tO2TkTw;->accept(Ljava/lang/Object;)V
+PLcom/android/server/role/-$$Lambda$RoleManagerService$TCTA4I2bhEypguZihxs4ezif6t0;-><clinit>()V
+PLcom/android/server/role/-$$Lambda$RoleManagerService$TCTA4I2bhEypguZihxs4ezif6t0;-><init>()V
+PLcom/android/server/role/-$$Lambda$RoleManagerService$TCTA4I2bhEypguZihxs4ezif6t0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/role/-$$Lambda$RoleManagerService$p0uu3WH3gz96-kAWnyu6IUHMtCg;-><init>(Lcom/android/server/role/RoleManagerService;I)V
PLcom/android/server/role/-$$Lambda$RoleManagerService$p0uu3WH3gz96-kAWnyu6IUHMtCg;->run()V
-PLcom/android/server/role/-$$Lambda$RoleManagerService$yVFztdrozAp4bKcUjiC_bJnBKzE;-><init>(Ljava/io/ByteArrayOutputStream;Landroid/content/pm/PackageManagerInternal;I)V
-HPLcom/android/server/role/-$$Lambda$RoleManagerService$yVFztdrozAp4bKcUjiC_bJnBKzE;->acceptOrThrow(Ljava/lang/Object;)V
+PLcom/android/server/role/-$$Lambda$RoleManagerService$wh1KtBLaCUo52_0EzVI0n0nL1ng;-><init>(Ljava/io/ByteArrayOutputStream;Landroid/content/pm/PackageManagerInternal;I)V
+HPLcom/android/server/role/-$$Lambda$RoleManagerService$wh1KtBLaCUo52_0EzVI0n0nL1ng;->acceptOrThrow(Ljava/lang/Object;)V
PLcom/android/server/role/-$$Lambda$RoleUserState$e8W_Zaq_FyocW_DX1qcbN0ld0co;-><clinit>()V
PLcom/android/server/role/-$$Lambda$RoleUserState$e8W_Zaq_FyocW_DX1qcbN0ld0co;-><init>()V
PLcom/android/server/role/-$$Lambda$RoleUserState$e8W_Zaq_FyocW_DX1qcbN0ld0co;->accept(Ljava/lang/Object;)V
-PLcom/android/server/role/RoleManagerInternal;-><init>()V
-PLcom/android/server/role/RoleManagerService$1;-><init>(Lcom/android/server/role/RoleManagerService;)V
-PLcom/android/server/role/RoleManagerService$2;-><init>(Lcom/android/server/role/RoleManagerService;)V
+HSPLcom/android/server/role/RoleManagerInternal;-><init>()V
+HSPLcom/android/server/role/RoleManagerService$1;-><init>(Lcom/android/server/role/RoleManagerService;)V
+HSPLcom/android/server/role/RoleManagerService$2;-><init>(Lcom/android/server/role/RoleManagerService;)V
PLcom/android/server/role/RoleManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/role/RoleManagerService$DefaultBrowserProvider;-><init>(Lcom/android/server/role/RoleManagerService;)V
-PLcom/android/server/role/RoleManagerService$DefaultBrowserProvider;-><init>(Lcom/android/server/role/RoleManagerService;Lcom/android/server/role/RoleManagerService$1;)V
+HSPLcom/android/server/role/RoleManagerService$DefaultBrowserProvider;-><init>(Lcom/android/server/role/RoleManagerService;)V
+HSPLcom/android/server/role/RoleManagerService$DefaultBrowserProvider;-><init>(Lcom/android/server/role/RoleManagerService;Lcom/android/server/role/RoleManagerService$1;)V
PLcom/android/server/role/RoleManagerService$DefaultBrowserProvider;->getDefaultBrowser(I)Ljava/lang/String;
-PLcom/android/server/role/RoleManagerService$DefaultDialerProvider;-><init>(Lcom/android/server/role/RoleManagerService;)V
-PLcom/android/server/role/RoleManagerService$DefaultDialerProvider;-><init>(Lcom/android/server/role/RoleManagerService;Lcom/android/server/role/RoleManagerService$1;)V
+HSPLcom/android/server/role/RoleManagerService$DefaultDialerProvider;-><init>(Lcom/android/server/role/RoleManagerService;)V
+HSPLcom/android/server/role/RoleManagerService$DefaultDialerProvider;-><init>(Lcom/android/server/role/RoleManagerService;Lcom/android/server/role/RoleManagerService$1;)V
PLcom/android/server/role/RoleManagerService$DefaultDialerProvider;->getDefaultDialer(I)Ljava/lang/String;
-PLcom/android/server/role/RoleManagerService$DefaultHomeProvider;-><init>(Lcom/android/server/role/RoleManagerService;)V
-PLcom/android/server/role/RoleManagerService$DefaultHomeProvider;-><init>(Lcom/android/server/role/RoleManagerService;Lcom/android/server/role/RoleManagerService$1;)V
-PLcom/android/server/role/RoleManagerService$DefaultHomeProvider;->getDefaultHome(I)Ljava/lang/String;
-PLcom/android/server/role/RoleManagerService$Internal;-><init>(Lcom/android/server/role/RoleManagerService;)V
-PLcom/android/server/role/RoleManagerService$Internal;-><init>(Lcom/android/server/role/RoleManagerService;Lcom/android/server/role/RoleManagerService$1;)V
-PLcom/android/server/role/RoleManagerService$Stub;-><init>(Lcom/android/server/role/RoleManagerService;)V
-PLcom/android/server/role/RoleManagerService$Stub;-><init>(Lcom/android/server/role/RoleManagerService;Lcom/android/server/role/RoleManagerService$1;)V
-PLcom/android/server/role/RoleManagerService$Stub;->addOnRoleHoldersChangedListenerAsUser(Landroid/app/role/IOnRoleHoldersChangedListener;I)V
+HSPLcom/android/server/role/RoleManagerService$DefaultHomeProvider;-><init>(Lcom/android/server/role/RoleManagerService;)V
+HSPLcom/android/server/role/RoleManagerService$DefaultHomeProvider;-><init>(Lcom/android/server/role/RoleManagerService;Lcom/android/server/role/RoleManagerService$1;)V
+HSPLcom/android/server/role/RoleManagerService$DefaultHomeProvider;->getDefaultHome(I)Ljava/lang/String;
+HSPLcom/android/server/role/RoleManagerService$Internal;-><init>(Lcom/android/server/role/RoleManagerService;)V
+HSPLcom/android/server/role/RoleManagerService$Internal;-><init>(Lcom/android/server/role/RoleManagerService;Lcom/android/server/role/RoleManagerService$1;)V
+HSPLcom/android/server/role/RoleManagerService$Stub;-><init>(Lcom/android/server/role/RoleManagerService;)V
+HSPLcom/android/server/role/RoleManagerService$Stub;-><init>(Lcom/android/server/role/RoleManagerService;Lcom/android/server/role/RoleManagerService$1;)V
+HSPLcom/android/server/role/RoleManagerService$Stub;->addOnRoleHoldersChangedListenerAsUser(Landroid/app/role/IOnRoleHoldersChangedListener;I)V
+PLcom/android/server/role/RoleManagerService$Stub;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/role/RoleManagerService$Stub;->getDefaultSmsPackage(I)Ljava/lang/String;
-PLcom/android/server/role/RoleManagerService$Stub;->getRoleHoldersAsUser(Ljava/lang/String;I)Ljava/util/List;
-PLcom/android/server/role/RoleManagerService$Stub;->handleIncomingUser(IZLjava/lang/String;)I
-PLcom/android/server/role/RoleManagerService$Stub;->isRoleAvailable(Ljava/lang/String;)Z
+HSPLcom/android/server/role/RoleManagerService$Stub;->getRoleHoldersAsUser(Ljava/lang/String;I)Ljava/util/List;
+HSPLcom/android/server/role/RoleManagerService$Stub;->handleIncomingUser(IZLjava/lang/String;)I
+HSPLcom/android/server/role/RoleManagerService$Stub;->isRoleAvailable(Ljava/lang/String;)Z
PLcom/android/server/role/RoleManagerService$Stub;->setRoleNamesFromController(Ljava/util/List;)V
-PLcom/android/server/role/RoleManagerService;-><clinit>()V
-PLcom/android/server/role/RoleManagerService;-><init>(Landroid/content/Context;Lcom/android/server/role/RoleManagerService$RoleHoldersResolver;)V
-PLcom/android/server/role/RoleManagerService;->access$1200(Lcom/android/server/role/RoleManagerService;I)Landroid/os/RemoteCallbackList;
-PLcom/android/server/role/RoleManagerService;->access$700(Lcom/android/server/role/RoleManagerService;I)Lcom/android/server/role/RoleUserState;
-PLcom/android/server/role/RoleManagerService;->access$900(Lcom/android/server/role/RoleManagerService;)Landroid/os/UserManagerInternal;
+HSPLcom/android/server/role/RoleManagerService;-><clinit>()V
+HSPLcom/android/server/role/RoleManagerService;-><init>(Landroid/content/Context;Lcom/android/server/role/RoleManagerService$RoleHoldersResolver;)V
+HSPLcom/android/server/role/RoleManagerService;->access$1200(Lcom/android/server/role/RoleManagerService;I)Landroid/os/RemoteCallbackList;
+HSPLcom/android/server/role/RoleManagerService;->access$700(Lcom/android/server/role/RoleManagerService;I)Lcom/android/server/role/RoleUserState;
+HSPLcom/android/server/role/RoleManagerService;->access$900(Lcom/android/server/role/RoleManagerService;)Landroid/os/UserManagerInternal;
PLcom/android/server/role/RoleManagerService;->computeComponentStateHash(I)Ljava/lang/String;
+PLcom/android/server/role/RoleManagerService;->getListeners(I)Landroid/os/RemoteCallbackList;
PLcom/android/server/role/RoleManagerService;->getOrCreateController(I)Landroid/app/role/RoleControllerManager;
-PLcom/android/server/role/RoleManagerService;->getOrCreateListeners(I)Landroid/os/RemoteCallbackList;
-HPLcom/android/server/role/RoleManagerService;->getOrCreateUserState(I)Lcom/android/server/role/RoleUserState;
-HPLcom/android/server/role/RoleManagerService;->lambda$computeComponentStateHash$2(Ljava/io/ByteArrayOutputStream;Landroid/content/pm/PackageManagerInternal;ILandroid/content/pm/PackageParser$Package;)V
+HSPLcom/android/server/role/RoleManagerService;->getOrCreateListeners(I)Landroid/os/RemoteCallbackList;
+HSPLcom/android/server/role/RoleManagerService;->getOrCreateUserState(I)Lcom/android/server/role/RoleUserState;
+PLcom/android/server/role/RoleManagerService;->lambda$TCTA4I2bhEypguZihxs4ezif6t0(Lcom/android/server/role/RoleManagerService;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/role/RoleManagerService;->lambda$computeComponentStateHash$2(Ljava/io/ByteArrayOutputStream;Landroid/content/pm/PackageManagerInternal;ILandroid/content/pm/parsing/AndroidPackage;)V
PLcom/android/server/role/RoleManagerService;->lambda$maybeGrantDefaultRolesAsync$0$RoleManagerService(I)V
PLcom/android/server/role/RoleManagerService;->lambda$maybeGrantDefaultRolesInternal$1(Lcom/android/server/role/RoleUserState;Ljava/lang/String;Lcom/android/internal/infra/AndroidFuture;Ljava/lang/Boolean;)V
-PLcom/android/server/role/RoleManagerService;->maybeGrantDefaultRolesAsync(I)V
+HPLcom/android/server/role/RoleManagerService;->maybeGrantDefaultRolesAsync(I)V
HPLcom/android/server/role/RoleManagerService;->maybeGrantDefaultRolesInternal(I)Lcom/android/internal/infra/AndroidFuture;
PLcom/android/server/role/RoleManagerService;->maybeGrantDefaultRolesSync(I)V
HPLcom/android/server/role/RoleManagerService;->maybeMigrateRole(Ljava/lang/String;I)V
-PLcom/android/server/role/RoleManagerService;->onStart()V
+PLcom/android/server/role/RoleManagerService;->notifyRoleHoldersChanged(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/role/RoleManagerService;->notifyRoleHoldersChangedForListeners(Landroid/os/RemoteCallbackList;Ljava/lang/String;I)V
+PLcom/android/server/role/RoleManagerService;->onRoleHoldersChanged(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/role/RoleManagerService;->onStart()V
PLcom/android/server/role/RoleManagerService;->onStartUser(I)V
-PLcom/android/server/role/RoleManagerService;->registerUserRemovedReceiver()V
-PLcom/android/server/role/RoleUserState;-><clinit>()V
-PLcom/android/server/role/RoleUserState;-><init>(ILcom/android/server/role/RoleUserState$Callback;)V
+HSPLcom/android/server/role/RoleManagerService;->registerUserRemovedReceiver()V
+HSPLcom/android/server/role/RoleUserState;-><clinit>()V
+HSPLcom/android/server/role/RoleUserState;-><init>(ILcom/android/server/role/RoleUserState$Callback;)V
+PLcom/android/server/role/RoleUserState;->addRoleHolder(Ljava/lang/String;Ljava/lang/String;)Z
HPLcom/android/server/role/RoleUserState;->addRoleName(Ljava/lang/String;)Z
-PLcom/android/server/role/RoleUserState;->getFile(I)Ljava/io/File;
+PLcom/android/server/role/RoleUserState;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+HSPLcom/android/server/role/RoleUserState;->getFile(I)Ljava/io/File;
PLcom/android/server/role/RoleUserState;->getPackagesHash()Ljava/lang/String;
-HPLcom/android/server/role/RoleUserState;->getRoleHolders(Ljava/lang/String;)Landroid/util/ArraySet;
-HPLcom/android/server/role/RoleUserState;->isRoleAvailable(Ljava/lang/String;)Z
-PLcom/android/server/role/RoleUserState;->parseRoleHoldersLocked(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/ArraySet;
-PLcom/android/server/role/RoleUserState;->parseRolesLocked(Lorg/xmlpull/v1/XmlPullParser;)V
-PLcom/android/server/role/RoleUserState;->parseXmlLocked(Lorg/xmlpull/v1/XmlPullParser;)V
-PLcom/android/server/role/RoleUserState;->readFile()V
+HSPLcom/android/server/role/RoleUserState;->getRoleHolders(Ljava/lang/String;)Landroid/util/ArraySet;
+HSPLcom/android/server/role/RoleUserState;->isRoleAvailable(Ljava/lang/String;)Z
+PLcom/android/server/role/RoleUserState;->lambda$e8W_Zaq_FyocW_DX1qcbN0ld0co(Lcom/android/server/role/RoleUserState;)V
+HSPLcom/android/server/role/RoleUserState;->parseRoleHoldersLocked(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/ArraySet;
+HSPLcom/android/server/role/RoleUserState;->parseRolesLocked(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/server/role/RoleUserState;->parseXmlLocked(Lorg/xmlpull/v1/XmlPullParser;)V
+HSPLcom/android/server/role/RoleUserState;->readFile()V
+PLcom/android/server/role/RoleUserState;->scheduleWriteFileLocked()V
+PLcom/android/server/role/RoleUserState;->serializeRoleHolders(Lorg/xmlpull/v1/XmlSerializer;Landroid/util/ArraySet;)V
PLcom/android/server/role/RoleUserState;->serializeRoles(Lorg/xmlpull/v1/XmlSerializer;ILjava/lang/String;Landroid/util/ArrayMap;)V
PLcom/android/server/role/RoleUserState;->setPackagesHash(Ljava/lang/String;)V
PLcom/android/server/role/RoleUserState;->setRoleNames(Ljava/util/List;)V
@@ -14654,39 +17487,41 @@ PLcom/android/server/rollback/-$$Lambda$RollbackManagerServiceImpl$9jRyv0ATJ7l2l
PLcom/android/server/rollback/-$$Lambda$RollbackManagerServiceImpl$9jRyv0ATJ7l2lc6xAd3tmkVmx7g;->run()V
PLcom/android/server/rollback/-$$Lambda$RollbackManagerServiceImpl$Be1hJgd8PbSLFX_uKif2yCGhtKo;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;ILjava/util/concurrent/CountDownLatch;)V
PLcom/android/server/rollback/-$$Lambda$RollbackManagerServiceImpl$Be1hJgd8PbSLFX_uKif2yCGhtKo;->run()V
-PLcom/android/server/rollback/-$$Lambda$RollbackPackageHealthObserver$AIuzQKXcl9vSW9YzEpmdp7QJz1M;-><init>(Lcom/android/server/rollback/RollbackPackageHealthObserver;)V
-PLcom/android/server/rollback/-$$Lambda$RollbackPackageHealthObserver$AIuzQKXcl9vSW9YzEpmdp7QJz1M;->run()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/-$$Lambda$RollbackPackageHealthObserver$pi_OhdsKzJHdXoHHtYauaWDdX5A;-><init>(Lcom/android/server/rollback/RollbackPackageHealthObserver;)V
+PLcom/android/server/rollback/-$$Lambda$RollbackPackageHealthObserver$pi_OhdsKzJHdXoHHtYauaWDdX5A;->run()V
+HSPLcom/android/server/rollback/AppDataRollbackHelper;-><init>(Lcom/android/server/pm/Installer;)V
+HSPLcom/android/server/rollback/RollbackManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/rollback/RollbackManagerService;->onBootPhase(I)V
+HSPLcom/android/server/rollback/RollbackManagerService;->onStart()V
PLcom/android/server/rollback/RollbackManagerService;->onUnlockUser(I)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$4;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl$5;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl$1;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl$2;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl$3;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl$4;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
+HPLcom/android/server/rollback/RollbackManagerServiceImpl$4;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/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$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$1;)V
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;)V
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;-><init>(Lcom/android/server/rollback/RollbackManagerServiceImpl;Lcom/android/server/rollback/RollbackManagerServiceImpl$1;)V
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
-PLcom/android/server/rollback/RollbackManagerServiceImpl;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl;-><clinit>()V
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl;-><init>(Landroid/content/Context;)V
PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1000()J
PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$1100(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/util/List;
PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$300(Lcom/android/server/rollback/RollbackManagerServiceImpl;)Ljava/lang/Object;
PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$700(Lcom/android/server/rollback/RollbackManagerServiceImpl;Ljava/lang/String;)V
PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$900(Lcom/android/server/rollback/RollbackManagerServiceImpl;)J
PLcom/android/server/rollback/RollbackManagerServiceImpl;->access$902(Lcom/android/server/rollback/RollbackManagerServiceImpl;J)J
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->calculateRelativeBootTime()J
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->calculateRelativeBootTime()J
+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;
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->getContextAsUser(Landroid/os/UserHandle;)Landroid/content/Context;
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->getHandler()Landroid/os/Handler;
PLcom/android/server/rollback/RollbackManagerServiceImpl;->getInstalledPackageVersion(Ljava/lang/String;)J
PLcom/android/server/rollback/RollbackManagerServiceImpl;->getPackageInfo(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
PLcom/android/server/rollback/RollbackManagerServiceImpl;->lambda$onBootCompleted$5$RollbackManagerServiceImpl()V
@@ -14696,73 +17531,63 @@ PLcom/android/server/rollback/RollbackManagerServiceImpl;->lambda$scheduleExpira
PLcom/android/server/rollback/RollbackManagerServiceImpl;->onBootCompleted()V
PLcom/android/server/rollback/RollbackManagerServiceImpl;->onPackageReplaced(Ljava/lang/String;)V
PLcom/android/server/rollback/RollbackManagerServiceImpl;->onUnlockUser(I)V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->registerTimeChangeReceiver()V
-PLcom/android/server/rollback/RollbackManagerServiceImpl;->registerUserCallbacks(Landroid/os/UserHandle;)V
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->registerTimeChangeReceiver()V
+HSPLcom/android/server/rollback/RollbackManagerServiceImpl;->registerUserCallbacks(Landroid/os/UserHandle;)V
PLcom/android/server/rollback/RollbackManagerServiceImpl;->runExpiration()V
PLcom/android/server/rollback/RollbackManagerServiceImpl;->scheduleExpiration(J)V
PLcom/android/server/rollback/RollbackManagerServiceImpl;->updateRollbackLifetimeDurationInMillis()V
-PLcom/android/server/rollback/RollbackPackageHealthObserver;-><clinit>()V
-PLcom/android/server/rollback/RollbackPackageHealthObserver;-><init>(Landroid/content/Context;)V
-PLcom/android/server/rollback/RollbackPackageHealthObserver;->getAvailableRollback(Landroid/content/rollback/RollbackManager;Landroid/content/pm/VersionedPackage;)Landroid/content/rollback/RollbackInfo;
-PLcom/android/server/rollback/RollbackPackageHealthObserver;->getModuleMetadataPackage()Landroid/content/pm/VersionedPackage;
+HSPLcom/android/server/rollback/RollbackPackageHealthObserver;-><init>(Landroid/content/Context;)V
PLcom/android/server/rollback/RollbackPackageHealthObserver;->getModuleMetadataPackageName()Ljava/lang/String;
-PLcom/android/server/rollback/RollbackPackageHealthObserver;->getName()Ljava/lang/String;
-PLcom/android/server/rollback/RollbackPackageHealthObserver;->lambda$onBootCompletedAsync$2$RollbackPackageHealthObserver()V
+HSPLcom/android/server/rollback/RollbackPackageHealthObserver;->getName()Ljava/lang/String;
+PLcom/android/server/rollback/RollbackPackageHealthObserver;->lambda$onBootCompletedAsync$0$RollbackPackageHealthObserver()V
PLcom/android/server/rollback/RollbackPackageHealthObserver;->onBootCompleted()V
PLcom/android/server/rollback/RollbackPackageHealthObserver;->onBootCompletedAsync()V
PLcom/android/server/rollback/RollbackPackageHealthObserver;->popLastStagedRollbackId()I
-PLcom/android/server/rollback/RollbackStore;-><init>(Ljava/io/File;)V
-PLcom/android/server/rollback/RollbackStore;->loadRollbacks()Ljava/util/List;
-PLcom/android/server/search/SearchManagerService$GlobalSearchProviderObserver;-><init>(Lcom/android/server/search/SearchManagerService;Landroid/content/ContentResolver;)V
+HSPLcom/android/server/rollback/RollbackStore;-><init>(Ljava/io/File;)V
+HSPLcom/android/server/rollback/RollbackStore;->loadRollbacks()Ljava/util/List;
+HSPLcom/android/server/search/SearchManagerService$GlobalSearchProviderObserver;-><init>(Lcom/android/server/search/SearchManagerService;Landroid/content/ContentResolver;)V
PLcom/android/server/search/SearchManagerService$Lifecycle$1;-><init>(Lcom/android/server/search/SearchManagerService$Lifecycle;I)V
PLcom/android/server/search/SearchManagerService$Lifecycle$1;->run()V
-PLcom/android/server/search/SearchManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
-PLcom/android/server/search/SearchManagerService$Lifecycle;->onStart()V
+HSPLcom/android/server/search/SearchManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
+PLcom/android/server/search/SearchManagerService$Lifecycle;->access$000(Lcom/android/server/search/SearchManagerService$Lifecycle;)Lcom/android/server/search/SearchManagerService;
+HSPLcom/android/server/search/SearchManagerService$Lifecycle;->onStart()V
PLcom/android/server/search/SearchManagerService$Lifecycle;->onUnlockUser(I)V
-PLcom/android/server/search/SearchManagerService$MyPackageMonitor;-><init>(Lcom/android/server/search/SearchManagerService;)V
+HSPLcom/android/server/search/SearchManagerService$MyPackageMonitor;-><init>(Lcom/android/server/search/SearchManagerService;)V
PLcom/android/server/search/SearchManagerService$MyPackageMonitor;->onPackageModified(Ljava/lang/String;)V
PLcom/android/server/search/SearchManagerService$MyPackageMonitor;->onSomePackagesChanged()V
PLcom/android/server/search/SearchManagerService$MyPackageMonitor;->updateSearchables()V
-PLcom/android/server/search/SearchManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/search/SearchManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/search/SearchManagerService;->access$100(Lcom/android/server/search/SearchManagerService;I)V
+PLcom/android/server/search/SearchManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/search/SearchManagerService;->getSearchableInfo(Landroid/content/ComponentName;)Landroid/app/SearchableInfo;
PLcom/android/server/search/SearchManagerService;->getSearchables(IZ)Lcom/android/server/search/Searchables;
PLcom/android/server/search/SearchManagerService;->onUnlockUser(I)V
PLcom/android/server/search/Searchables$1;-><init>()V
PLcom/android/server/search/Searchables;-><clinit>()V
PLcom/android/server/search/Searchables;-><init>(Landroid/content/Context;I)V
+PLcom/android/server/search/Searchables;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
HPLcom/android/server/search/Searchables;->findGlobalSearchActivities()Ljava/util/List;
-HPLcom/android/server/search/Searchables;->findGlobalSearchActivity(Ljava/util/List;)Landroid/content/ComponentName;
+PLcom/android/server/search/Searchables;->findGlobalSearchActivity(Ljava/util/List;)Landroid/content/ComponentName;
PLcom/android/server/search/Searchables;->findWebSearchActivity(Landroid/content/ComponentName;)Landroid/content/ComponentName;
PLcom/android/server/search/Searchables;->getDefaultGlobalSearchProvider(Ljava/util/List;)Landroid/content/ComponentName;
-HPLcom/android/server/search/Searchables;->getGlobalSearchProviderSetting()Ljava/lang/String;
+PLcom/android/server/search/Searchables;->getGlobalSearchProviderSetting()Ljava/lang/String;
+PLcom/android/server/search/Searchables;->getSearchableInfo(Landroid/content/ComponentName;)Landroid/app/SearchableInfo;
PLcom/android/server/search/Searchables;->queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List;
HPLcom/android/server/search/Searchables;->updateSearchableList()V
-PLcom/android/server/security/KeyAttestationApplicationIdProviderService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/security/KeyAttestationApplicationIdProviderService;-><init>(Landroid/content/Context;)V
PLcom/android/server/security/KeyAttestationApplicationIdProviderService;->getKeyAttestationApplicationId(I)Landroid/security/keymaster/KeyAttestationApplicationId;
-PLcom/android/server/security/KeyChainSystemService$1;-><init>(Lcom/android/server/security/KeyChainSystemService;)V
+HSPLcom/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
+HSPLcom/android/server/security/KeyChainSystemService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/security/KeyChainSystemService;->onStart()V
PLcom/android/server/security/KeyChainSystemService;->startServiceInBackgroundAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V
-PLcom/android/server/security/VerityUtils$SetupResult;-><init>(ILjava/io/FileDescriptor;I)V
-PLcom/android/server/security/VerityUtils$SetupResult;->getContentSize()I
-PLcom/android/server/security/VerityUtils$SetupResult;->getUnownedFileDescriptor()Ljava/io/FileDescriptor;
-PLcom/android/server/security/VerityUtils$SetupResult;->isFailed()Z
-PLcom/android/server/security/VerityUtils$SetupResult;->isOk()Z
-PLcom/android/server/security/VerityUtils$SetupResult;->ok(Ljava/io/FileDescriptor;I)Lcom/android/server/security/VerityUtils$SetupResult;
-PLcom/android/server/security/VerityUtils$SetupResult;->skipped()Lcom/android/server/security/VerityUtils$SetupResult;
-PLcom/android/server/security/VerityUtils$TrackedShmBufferFactory;-><init>()V
-PLcom/android/server/security/VerityUtils$TrackedShmBufferFactory;-><init>(Lcom/android/server/security/VerityUtils$1;)V
-PLcom/android/server/security/VerityUtils$TrackedShmBufferFactory;->create(I)Ljava/nio/ByteBuffer;
-PLcom/android/server/security/VerityUtils$TrackedShmBufferFactory;->getBufferLimit()I
-PLcom/android/server/security/VerityUtils$TrackedShmBufferFactory;->releaseSharedMemory()Landroid/os/SharedMemory;
-HSPLcom/android/server/security/VerityUtils;->generateApkVerityRootHash(Ljava/lang/String;)[B
-PLcom/android/server/security/VerityUtils;->generateApkVeritySetupData(Ljava/lang/String;)Lcom/android/server/security/VerityUtils$SetupResult;
-PLcom/android/server/security/VerityUtils;->generateFsVerityIntoSharedMemory(Ljava/lang/String;[B)Landroid/util/Pair;
-PLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;-><init>()V
-PLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;-><init>(Lcom/android/server/signedconfig/SignedConfigService$1;)V
+PLcom/android/server/security/VerityUtils;->getFsveritySignatureFilePath(Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/security/VerityUtils;->hasFsverity(Ljava/lang/String;)Z
+HSPLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;-><init>()V
+HSPLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;-><init>(Lcom/android/server/signedconfig/SignedConfigService$1;)V
PLcom/android/server/signedconfig/SignedConfigService$UpdateReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
PLcom/android/server/signedconfig/SignedConfigService;->handlePackageBroadcast(Landroid/content/Intent;)V
-PLcom/android/server/signedconfig/SignedConfigService;->registerUpdateReceiver(Landroid/content/Context;)V
+HSPLcom/android/server/signedconfig/SignedConfigService;->registerUpdateReceiver(Landroid/content/Context;)V
PLcom/android/server/slice/-$$Lambda$PinnedSliceState$KzxFkvfomRuMb5PD8_pIHDIhUUE;-><init>(Lcom/android/server/slice/PinnedSliceState;)V
PLcom/android/server/slice/-$$Lambda$PinnedSliceState$TZdoqC_LDA8If7sQ7WXz9LM6VHg;-><init>(Lcom/android/server/slice/PinnedSliceState;)V
PLcom/android/server/slice/-$$Lambda$PinnedSliceState$TZdoqC_LDA8If7sQ7WXz9LM6VHg;->run()V
@@ -14790,17 +17615,17 @@ PLcom/android/server/slice/PinnedSliceState;->mergeSpecs([Landroid/app/slice/Sli
PLcom/android/server/slice/PinnedSliceState;->pin(Ljava/lang/String;[Landroid/app/slice/SliceSpec;Landroid/os/IBinder;)V
PLcom/android/server/slice/PinnedSliceState;->setSlicePinned(Z)V
PLcom/android/server/slice/PinnedSliceState;->unpin(Ljava/lang/String;Landroid/os/IBinder;)Z
-PLcom/android/server/slice/SliceClientPermissions$SliceAuthority;-><init>(Ljava/lang/String;Lcom/android/server/slice/SlicePermissionManager$PkgUser;Lcom/android/server/slice/DirtyTracker;)V
+HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;-><init>(Ljava/lang/String;Lcom/android/server/slice/SlicePermissionManager$PkgUser;Lcom/android/server/slice/DirtyTracker;)V
PLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->access$000(Lcom/android/server/slice/SliceClientPermissions$SliceAuthority;)Ljava/lang/String;
PLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->access$100(Lcom/android/server/slice/SliceClientPermissions$SliceAuthority;)Lcom/android/server/slice/SlicePermissionManager$PkgUser;
HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->addPath(Ljava/util/List;)V
HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->decodeSegments(Ljava/lang/String;)[Ljava/lang/String;
HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->encodeSegments([Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->getAuthority()Ljava/lang/String;
-PLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->hasPermission(Ljava/util/List;)Z
+HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->getAuthority()Ljava/lang/String;
+HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->hasPermission(Ljava/util/List;)Z
HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->isPathPrefixMatch([Ljava/lang/String;[Ljava/lang/String;)Z
-PLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->readFrom(Lorg/xmlpull/v1/XmlPullParser;)V
-PLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->writeTo(Lorg/xmlpull/v1/XmlSerializer;)V
+HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->readFrom(Lorg/xmlpull/v1/XmlPullParser;)V
+HPLcom/android/server/slice/SliceClientPermissions$SliceAuthority;->writeTo(Lorg/xmlpull/v1/XmlSerializer;)V
PLcom/android/server/slice/SliceClientPermissions;-><clinit>()V
PLcom/android/server/slice/SliceClientPermissions;-><init>(Lcom/android/server/slice/SlicePermissionManager$PkgUser;Lcom/android/server/slice/DirtyTracker;)V
PLcom/android/server/slice/SliceClientPermissions;->createFrom(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/slice/DirtyTracker;)Lcom/android/server/slice/SliceClientPermissions;
@@ -14812,20 +17637,21 @@ PLcom/android/server/slice/SliceClientPermissions;->hasFullAccess()Z
PLcom/android/server/slice/SliceClientPermissions;->hasPermission(Landroid/net/Uri;I)Z
PLcom/android/server/slice/SliceClientPermissions;->onPersistableDirty(Lcom/android/server/slice/DirtyTracker$Persistable;)V
PLcom/android/server/slice/SliceClientPermissions;->writeTo(Lorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/slice/SliceManagerService$1;-><init>(Lcom/android/server/slice/SliceManagerService;)V
+HSPLcom/android/server/slice/SliceManagerService$1;-><init>(Lcom/android/server/slice/SliceManagerService;)V
PLcom/android/server/slice/SliceManagerService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/slice/SliceManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
-PLcom/android/server/slice/SliceManagerService$Lifecycle;->onBootPhase(I)V
-PLcom/android/server/slice/SliceManagerService$Lifecycle;->onStart()V
+HSPLcom/android/server/slice/SliceManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/slice/SliceManagerService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/slice/SliceManagerService$Lifecycle;->onStart()V
PLcom/android/server/slice/SliceManagerService$Lifecycle;->onUnlockUser(I)V
PLcom/android/server/slice/SliceManagerService$PackageMatchingCache;-><init>(Ljava/util/function/Supplier;)V
PLcom/android/server/slice/SliceManagerService$PackageMatchingCache;->matches(Ljava/lang/String;)Z
-PLcom/android/server/slice/SliceManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/slice/SliceManagerService;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-PLcom/android/server/slice/SliceManagerService;->access$100(Lcom/android/server/slice/SliceManagerService;)V
+HSPLcom/android/server/slice/SliceManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/slice/SliceManagerService;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+HSPLcom/android/server/slice/SliceManagerService;->access$100(Lcom/android/server/slice/SliceManagerService;)V
+PLcom/android/server/slice/SliceManagerService;->access$200(Lcom/android/server/slice/SliceManagerService;I)V
PLcom/android/server/slice/SliceManagerService;->checkAccess(Ljava/lang/String;Landroid/net/Uri;II)I
PLcom/android/server/slice/SliceManagerService;->checkSlicePermission(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;II[Ljava/lang/String;)I
-PLcom/android/server/slice/SliceManagerService;->createHandler()Lcom/android/server/ServiceThread;
+HSPLcom/android/server/slice/SliceManagerService;->createHandler()Lcom/android/server/ServiceThread;
PLcom/android/server/slice/SliceManagerService;->createPinnedSlice(Landroid/net/Uri;Ljava/lang/String;)Lcom/android/server/slice/PinnedSliceState;
PLcom/android/server/slice/SliceManagerService;->enforceAccess(Ljava/lang/String;Landroid/net/Uri;)V
PLcom/android/server/slice/SliceManagerService;->enforceCrossUser(Ljava/lang/String;Landroid/net/Uri;)V
@@ -14851,22 +17677,23 @@ PLcom/android/server/slice/SliceManagerService;->isGrantedFullAccess(Ljava/lang/
PLcom/android/server/slice/SliceManagerService;->lambda$getAssistantMatcher$2$SliceManagerService(I)Ljava/lang/String;
PLcom/android/server/slice/SliceManagerService;->lambda$getHomeMatcher$3$SliceManagerService(I)Ljava/lang/String;
PLcom/android/server/slice/SliceManagerService;->lambda$pinSlice$1$SliceManagerService(Ljava/lang/String;Ljava/lang/String;I)V
+PLcom/android/server/slice/SliceManagerService;->onUnlockUser(I)V
PLcom/android/server/slice/SliceManagerService;->pinSlice(Ljava/lang/String;Landroid/net/Uri;[Landroid/app/slice/SliceSpec;Landroid/os/IBinder;)V
PLcom/android/server/slice/SliceManagerService;->removePinnedSlice(Landroid/net/Uri;)V
-PLcom/android/server/slice/SliceManagerService;->systemReady()V
+HSPLcom/android/server/slice/SliceManagerService;->systemReady()V
PLcom/android/server/slice/SliceManagerService;->unpinSlice(Ljava/lang/String;Landroid/net/Uri;Landroid/os/IBinder;)V
PLcom/android/server/slice/SliceManagerService;->verifyCaller(Ljava/lang/String;)V
-PLcom/android/server/slice/SlicePermissionManager$H;-><init>(Lcom/android/server/slice/SlicePermissionManager;Landroid/os/Looper;)V
+HSPLcom/android/server/slice/SlicePermissionManager$H;-><init>(Lcom/android/server/slice/SlicePermissionManager;Landroid/os/Looper;)V
PLcom/android/server/slice/SlicePermissionManager$H;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/slice/SlicePermissionManager$ParserHolder;-><init>(Lcom/android/server/slice/SlicePermissionManager;)V
PLcom/android/server/slice/SlicePermissionManager$ParserHolder;-><init>(Lcom/android/server/slice/SlicePermissionManager;Lcom/android/server/slice/SlicePermissionManager$1;)V
PLcom/android/server/slice/SlicePermissionManager$PkgUser;-><init>(Ljava/lang/String;)V
PLcom/android/server/slice/SlicePermissionManager$PkgUser;-><init>(Ljava/lang/String;I)V
-PLcom/android/server/slice/SlicePermissionManager$PkgUser;->equals(Ljava/lang/Object;)Z
+HPLcom/android/server/slice/SlicePermissionManager$PkgUser;->equals(Ljava/lang/Object;)Z
HPLcom/android/server/slice/SlicePermissionManager$PkgUser;->hashCode()I
PLcom/android/server/slice/SlicePermissionManager$PkgUser;->toString()Ljava/lang/String;
-PLcom/android/server/slice/SlicePermissionManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
-PLcom/android/server/slice/SlicePermissionManager;-><init>(Landroid/content/Context;Landroid/os/Looper;Ljava/io/File;)V
+HSPLcom/android/server/slice/SlicePermissionManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
+HSPLcom/android/server/slice/SlicePermissionManager;-><init>(Landroid/content/Context;Landroid/os/Looper;Ljava/io/File;)V
PLcom/android/server/slice/SlicePermissionManager;->getClient(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)Lcom/android/server/slice/SliceClientPermissions;
PLcom/android/server/slice/SlicePermissionManager;->getFile(Ljava/lang/String;)Landroid/util/AtomicFile;
PLcom/android/server/slice/SlicePermissionManager;->getParser(Ljava/lang/String;)Lcom/android/server/slice/SlicePermissionManager$ParserHolder;
@@ -14876,9 +17703,8 @@ PLcom/android/server/slice/SlicePermissionManager;->handlePersist()V
PLcom/android/server/slice/SlicePermissionManager;->hasFullAccess(Ljava/lang/String;I)Z
PLcom/android/server/slice/SlicePermissionManager;->hasPermission(Ljava/lang/String;ILandroid/net/Uri;)Z
PLcom/android/server/slice/SlicePermissionManager;->onPersistableDirty(Lcom/android/server/slice/DirtyTracker$Persistable;)V
-PLcom/android/server/slice/SlicePermissionManager;->removePkg(Ljava/lang/String;I)V
PLcom/android/server/slice/SlicePermissionManager;->writeBackup(Lorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;-><init>(Ljava/lang/String;Lcom/android/server/slice/DirtyTracker;)V
+HPLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;-><init>(Ljava/lang/String;Lcom/android/server/slice/DirtyTracker;)V
PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->access$000(Lcom/android/server/slice/SliceProviderPermissions$SliceAuthority;)Ljava/lang/String;
PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->addPkg(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)V
PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->getAuthority()Ljava/lang/String;
@@ -14886,13 +17712,12 @@ PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->readFrom(Lo
PLcom/android/server/slice/SliceProviderPermissions$SliceAuthority;->writeTo(Lorg/xmlpull/v1/XmlSerializer;)V
PLcom/android/server/slice/SliceProviderPermissions;-><clinit>()V
PLcom/android/server/slice/SliceProviderPermissions;-><init>(Lcom/android/server/slice/SlicePermissionManager$PkgUser;Lcom/android/server/slice/DirtyTracker;)V
-PLcom/android/server/slice/SliceProviderPermissions;->access$100()Ljava/lang/String;
+HPLcom/android/server/slice/SliceProviderPermissions;->access$100()Ljava/lang/String;
PLcom/android/server/slice/SliceProviderPermissions;->createFrom(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/slice/DirtyTracker;)Lcom/android/server/slice/SliceProviderPermissions;
-PLcom/android/server/slice/SliceProviderPermissions;->getAuthorities()Ljava/util/Collection;
PLcom/android/server/slice/SliceProviderPermissions;->getFileName(Lcom/android/server/slice/SlicePermissionManager$PkgUser;)Ljava/lang/String;
PLcom/android/server/slice/SliceProviderPermissions;->getOrCreateAuthority(Ljava/lang/String;)Lcom/android/server/slice/SliceProviderPermissions$SliceAuthority;
PLcom/android/server/slice/SliceProviderPermissions;->writeTo(Lorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/soundtrigger/SoundTriggerDbHelper;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/soundtrigger/SoundTriggerDbHelper;-><init>(Landroid/content/Context;)V
PLcom/android/server/soundtrigger/SoundTriggerDbHelper;->deleteGenericSoundModel(Ljava/util/UUID;)Z
PLcom/android/server/soundtrigger/SoundTriggerDbHelper;->getGenericSoundModel(Ljava/util/UUID;)Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;
PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;-><init>(Ljava/util/UUID;I)V
@@ -14915,15 +17740,21 @@ PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setRequested(Z)
PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;)V
PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setStarted()V
PLcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;->setStopped()V
-PLcom/android/server/soundtrigger/SoundTriggerHelper$MyCallStateListener;-><init>(Lcom/android/server/soundtrigger/SoundTriggerHelper;)V
+HSPLcom/android/server/soundtrigger/SoundTriggerHelper$MyCallStateListener;-><init>(Lcom/android/server/soundtrigger/SoundTriggerHelper;)V
PLcom/android/server/soundtrigger/SoundTriggerHelper$PowerSaveModeListener;-><init>(Lcom/android/server/soundtrigger/SoundTriggerHelper;)V
-PLcom/android/server/soundtrigger/SoundTriggerHelper;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/soundtrigger/SoundTriggerHelper;-><init>(Landroid/content/Context;)V
PLcom/android/server/soundtrigger/SoundTriggerHelper;->computeRecognitionRequestedLocked()Z
PLcom/android/server/soundtrigger/SoundTriggerHelper;->createKeyphraseModelDataLocked(Ljava/util/UUID;I)Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->getKeyphraseModelDataLocked(I)Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->getModuleProperties()Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
PLcom/android/server/soundtrigger/SoundTriggerHelper;->initializeTelephonyAndPowerStateListeners()V
PLcom/android/server/soundtrigger/SoundTriggerHelper;->internalClearGlobalStateLocked()V
PLcom/android/server/soundtrigger/SoundTriggerHelper;->isRecognitionAllowed()Z
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->onKeyphraseRecognitionSuccessLocked(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;)V
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->onRecognition(Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;)V
PLcom/android/server/soundtrigger/SoundTriggerHelper;->onServiceStateChange(I)V
+PLcom/android/server/soundtrigger/SoundTriggerHelper;->onServiceStateChangedLocked(Z)V
PLcom/android/server/soundtrigger/SoundTriggerHelper;->startKeyphraseRecognition(ILandroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
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;I)I
PLcom/android/server/soundtrigger/SoundTriggerHelper;->startRecognitionLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;Z)I
@@ -14933,34 +17764,33 @@ PLcom/android/server/soundtrigger/SoundTriggerHelper;->stopRecognition(Lcom/andr
PLcom/android/server/soundtrigger/SoundTriggerHelper;->stopRecognitionLocked(Lcom/android/server/soundtrigger/SoundTriggerHelper$ModelData;Z)I
PLcom/android/server/soundtrigger/SoundTriggerHelper;->unloadGenericSoundModel(Ljava/util/UUID;)I
PLcom/android/server/soundtrigger/SoundTriggerHelper;->unloadKeyphraseSoundModel(I)I
-PLcom/android/server/soundtrigger/SoundTriggerInternal;-><init>()V
+HSPLcom/android/server/soundtrigger/SoundTriggerInternal;-><init>()V
PLcom/android/server/soundtrigger/SoundTriggerLogger$Event;-><clinit>()V
PLcom/android/server/soundtrigger/SoundTriggerLogger$Event;-><init>()V
+HPLcom/android/server/soundtrigger/SoundTriggerLogger$Event;->toString()Ljava/lang/String;
PLcom/android/server/soundtrigger/SoundTriggerLogger$StringEvent;-><init>(Ljava/lang/String;)V
-PLcom/android/server/soundtrigger/SoundTriggerLogger;-><init>(ILjava/lang/String;)V
-PLcom/android/server/soundtrigger/SoundTriggerLogger;->log(Lcom/android/server/soundtrigger/SoundTriggerLogger$Event;)V
-PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;Landroid/content/Context;)V
+PLcom/android/server/soundtrigger/SoundTriggerLogger$StringEvent;->eventToString()Ljava/lang/String;
+HSPLcom/android/server/soundtrigger/SoundTriggerLogger;-><init>(ILjava/lang/String;)V
+PLcom/android/server/soundtrigger/SoundTriggerLogger;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/soundtrigger/SoundTriggerLogger;->log(Lcom/android/server/soundtrigger/SoundTriggerLogger$Event;)V
+HSPLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;Landroid/content/Context;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->getModuleProperties()Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->isInitialized()Z
-PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->setSoundTriggerHelper(Lcom/android/server/soundtrigger/SoundTriggerHelper;)V
+HSPLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->setSoundTriggerHelper(Lcom/android/server/soundtrigger/SoundTriggerHelper;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->startRecognition(ILandroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
PLcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;->stopRecognition(ILandroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
-PLcom/android/server/soundtrigger/SoundTriggerService$SoundModelStatTracker;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;)V
-PLcom/android/server/soundtrigger/SoundTriggerService$SoundModelStatTracker;->onStop(Ljava/util/UUID;)V
-PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerServiceStub;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;)V
+HSPLcom/android/server/soundtrigger/SoundTriggerService$SoundModelStatTracker;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;)V
+PLcom/android/server/soundtrigger/SoundTriggerService$SoundModelStatTracker;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/soundtrigger/SoundTriggerService$SoundModelStatTracker;->onStop(Ljava/util/UUID;)V
+HSPLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerServiceStub;-><init>(Lcom/android/server/soundtrigger/SoundTriggerService;)V
PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerServiceStub;->deleteSoundModel(Landroid/os/ParcelUuid;)V
PLcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerServiceStub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
-PLcom/android/server/soundtrigger/SoundTriggerService;-><clinit>()V
-PLcom/android/server/soundtrigger/SoundTriggerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/soundtrigger/SoundTriggerService;->initSoundTriggerHelper()V
-PLcom/android/server/soundtrigger/SoundTriggerService;->onBootPhase(I)V
-PLcom/android/server/soundtrigger/SoundTriggerService;->onStart()V
+HSPLcom/android/server/soundtrigger/SoundTriggerService;-><clinit>()V
+HSPLcom/android/server/soundtrigger/SoundTriggerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/soundtrigger/SoundTriggerService;->initSoundTriggerHelper()V
+HSPLcom/android/server/soundtrigger/SoundTriggerService;->onBootPhase(I)V
+HSPLcom/android/server/soundtrigger/SoundTriggerService;->onStart()V
PLcom/android/server/soundtrigger/SoundTriggerService;->onStartUser(I)V
-PLcom/android/server/stats/IonMemoryUtil$IonAllocations;-><init>()V
-PLcom/android/server/stats/IonMemoryUtil;-><clinit>()V
-PLcom/android/server/stats/IonMemoryUtil;->parseIonHeapSizeFromDebugfs(Ljava/lang/String;)J
-HPLcom/android/server/stats/IonMemoryUtil;->parseProcessIonHeapSizesFromDebugfs(Ljava/lang/String;)Ljava/util/List;
-PLcom/android/server/stats/IonMemoryUtil;->readFile(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/stats/IonMemoryUtil;->readProcessSystemIonHeapSizesFromDebugfs()Ljava/util/List;
-PLcom/android/server/stats/IonMemoryUtil;->readSystemIonHeapSizeFromDebugfs()J
PLcom/android/server/stats/ProcfsMemoryUtil$MemorySnapshot;-><init>()V
PLcom/android/server/stats/ProcfsMemoryUtil;-><clinit>()V
HPLcom/android/server/stats/ProcfsMemoryUtil;->forEachPid(Ljava/util/function/BiConsumer;)V
@@ -14974,28 +17804,38 @@ PLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$uF0ibEnnXe7Lxun
PLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$uF0ibEnnXe7Lxunxb98QQLJjgZM;->run()V
PLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$yr21OX4Hyd_XfExwnVnVIn3Jfe4;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;I)V
PLcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$yr21OX4Hyd_XfExwnVnVIn3Jfe4;->run()V
-PLcom/android/server/statusbar/StatusBarManagerService$1;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
+HSPLcom/android/server/statusbar/StatusBarManagerService$1;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
+PLcom/android/server/statusbar/StatusBarManagerService$1;->abortTransient(I[I)V
+PLcom/android/server/statusbar/StatusBarManagerService$1;->appTransitionCancelled(I)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;->onCameraLaunchGestureDetected(I)V
+PLcom/android/server/statusbar/StatusBarManagerService$1;->onProposedRotationChanged(IZ)V
PLcom/android/server/statusbar/StatusBarManagerService$1;->onRecentsAnimationStateChanged(Z)V
-PLcom/android/server/statusbar/StatusBarManagerService$1;->onSystemBarAppearanceChanged(II[Lcom/android/internal/view/AppearanceRegion;Z)V
+HPLcom/android/server/statusbar/StatusBarManagerService$1;->onSystemBarAppearanceChanged(II[Lcom/android/internal/view/AppearanceRegion;Z)V
PLcom/android/server/statusbar/StatusBarManagerService$1;->setDisableFlags(IILjava/lang/String;)V
-PLcom/android/server/statusbar/StatusBarManagerService$1;->setNotificationDelegate(Lcom/android/server/notification/NotificationDelegate;)V
-PLcom/android/server/statusbar/StatusBarManagerService$1;->setTopAppHidesStatusBar(Z)V
+HSPLcom/android/server/statusbar/StatusBarManagerService$1;->setNotificationDelegate(Lcom/android/server/notification/NotificationDelegate;)V
+HPLcom/android/server/statusbar/StatusBarManagerService$1;->setTopAppHidesStatusBar(Z)V
+PLcom/android/server/statusbar/StatusBarManagerService$1;->setWindowState(III)V
+PLcom/android/server/statusbar/StatusBarManagerService$1;->showTransient(I[I)V
PLcom/android/server/statusbar/StatusBarManagerService$1;->topAppWindowChanged(IZZ)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$1;)V
+HSPLcom/android/server/statusbar/StatusBarManagerService$2;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
+PLcom/android/server/statusbar/StatusBarManagerService$2;->showGlobalActions()V
+HSPLcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
+HSPLcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;Lcom/android/server/statusbar/StatusBarManagerService$1;)V
PLcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;->linkToDeath()V
PLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;ILandroid/os/IBinder;)V
-PLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;->getFlags(I)I
+HPLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;->getFlags(I)I
PLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;->isEmpty()Z
PLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;->setFlags(IILjava/lang/String;)V
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;Lcom/android/server/statusbar/StatusBarManagerService$1;)V
+PLcom/android/server/statusbar/StatusBarManagerService$DisableRecord;->toString()Ljava/lang/String;
+HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;)V
+HSPLcom/android/server/statusbar/StatusBarManagerService$UiState;-><init>(Lcom/android/server/statusbar/StatusBarManagerService;Lcom/android/server/statusbar/StatusBarManagerService$1;)V
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$1200(Lcom/android/server/statusbar/StatusBarManagerService$UiState;I[Lcom/android/internal/view/AppearanceRegion;Z)Z
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$1300(Lcom/android/server/statusbar/StatusBarManagerService$UiState;I[Lcom/android/internal/view/AppearanceRegion;Z)V
+PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$1400(Lcom/android/server/statusbar/StatusBarManagerService$UiState;[I)V
+PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$1500(Lcom/android/server/statusbar/StatusBarManagerService$UiState;[I)V
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$1900(Lcom/android/server/statusbar/StatusBarManagerService$UiState;II)Z
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2000(Lcom/android/server/statusbar/StatusBarManagerService$UiState;II)V
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$2100(Lcom/android/server/statusbar/StatusBarManagerService$UiState;Z)V
@@ -15011,28 +17851,33 @@ PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$3000(Lco
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$3100(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Z
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$3200(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Z
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->access$3300(Lcom/android/server/statusbar/StatusBarManagerService$UiState;)Z
-PLcom/android/server/statusbar/StatusBarManagerService$UiState;->appearanceEquals(I[Lcom/android/internal/view/AppearanceRegion;Z)Z
+HPLcom/android/server/statusbar/StatusBarManagerService$UiState;->appearanceEquals(I[Lcom/android/internal/view/AppearanceRegion;Z)Z
+PLcom/android/server/statusbar/StatusBarManagerService$UiState;->clearTransient([I)V
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->disableEquals(II)Z
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->setAppearance(I[Lcom/android/internal/view/AppearanceRegion;Z)V
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->setDisabled(II)V
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->setFullscreen(Z)V
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->setImeWindowState(IIZLandroid/os/IBinder;)V
PLcom/android/server/statusbar/StatusBarManagerService$UiState;->setImmersive(Z)V
-PLcom/android/server/statusbar/StatusBarManagerService;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/statusbar/StatusBarManagerService$UiState;->showTransient([I)V
+HSPLcom/android/server/statusbar/StatusBarManagerService;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerService;)V
PLcom/android/server/statusbar/StatusBarManagerService;->access$100(Lcom/android/server/statusbar/StatusBarManagerService;)Lcom/android/internal/statusbar/IStatusBar;
-PLcom/android/server/statusbar/StatusBarManagerService;->access$1100(Lcom/android/server/statusbar/StatusBarManagerService;I)Lcom/android/server/statusbar/StatusBarManagerService$UiState;
+HPLcom/android/server/statusbar/StatusBarManagerService;->access$1100(Lcom/android/server/statusbar/StatusBarManagerService;I)Lcom/android/server/statusbar/StatusBarManagerService$UiState;
PLcom/android/server/statusbar/StatusBarManagerService;->access$300(Lcom/android/server/statusbar/StatusBarManagerService;)Lcom/android/server/statusbar/StatusBarManagerService$DeathRecipient;
-PLcom/android/server/statusbar/StatusBarManagerService;->access$502(Lcom/android/server/statusbar/StatusBarManagerService;Lcom/android/server/notification/NotificationDelegate;)Lcom/android/server/notification/NotificationDelegate;
+HSPLcom/android/server/statusbar/StatusBarManagerService;->access$502(Lcom/android/server/statusbar/StatusBarManagerService;Lcom/android/server/notification/NotificationDelegate;)Lcom/android/server/notification/NotificationDelegate;
PLcom/android/server/statusbar/StatusBarManagerService;->access$600(Lcom/android/server/statusbar/StatusBarManagerService;IZZ)V
PLcom/android/server/statusbar/StatusBarManagerService;->access$700(Lcom/android/server/statusbar/StatusBarManagerService;IILjava/lang/String;)V
PLcom/android/server/statusbar/StatusBarManagerService;->access$800(Lcom/android/server/statusbar/StatusBarManagerService;)V
HPLcom/android/server/statusbar/StatusBarManagerService;->clearInlineReplyUriPermissions(Ljava/lang/String;)V
PLcom/android/server/statusbar/StatusBarManagerService;->clearNotificationEffects()V
+PLcom/android/server/statusbar/StatusBarManagerService;->disable2ForUser(ILandroid/os/IBinder;Ljava/lang/String;I)V
PLcom/android/server/statusbar/StatusBarManagerService;->disableForUser(ILandroid/os/IBinder;Ljava/lang/String;I)V
-PLcom/android/server/statusbar/StatusBarManagerService;->disableLocked(IIILandroid/os/IBinder;Ljava/lang/String;I)V
-PLcom/android/server/statusbar/StatusBarManagerService;->enforceStatusBar()V
-PLcom/android/server/statusbar/StatusBarManagerService;->enforceStatusBarService()V
-PLcom/android/server/statusbar/StatusBarManagerService;->findMatchingRecordLocked(Landroid/os/IBinder;I)Landroid/util/Pair;
+HPLcom/android/server/statusbar/StatusBarManagerService;->disableLocked(IIILandroid/os/IBinder;Ljava/lang/String;I)V
+PLcom/android/server/statusbar/StatusBarManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/statusbar/StatusBarManagerService;->enforceExpandStatusBar()V
+HSPLcom/android/server/statusbar/StatusBarManagerService;->enforceStatusBar()V
+HPLcom/android/server/statusbar/StatusBarManagerService;->enforceStatusBarService()V
+HPLcom/android/server/statusbar/StatusBarManagerService;->findMatchingRecordLocked(Landroid/os/IBinder;I)Landroid/util/Pair;
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;->handleSystemKey(I)V
@@ -15043,243 +17888,370 @@ PLcom/android/server/statusbar/StatusBarManagerService;->lambda$topAppWindowChan
PLcom/android/server/statusbar/StatusBarManagerService;->manageDisableListLocked(IILandroid/os/IBinder;Ljava/lang/String;I)V
PLcom/android/server/statusbar/StatusBarManagerService;->notifyBarAttachChanged()V
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;->onNotificationActionClick(Ljava/lang/String;ILandroid/app/Notification$Action;Lcom/android/internal/statusbar/NotificationVisibility;Z)V
+PLcom/android/server/statusbar/StatusBarManagerService;->onNotificationClear(Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;IILcom/android/internal/statusbar/NotificationVisibility;)V
+PLcom/android/server/statusbar/StatusBarManagerService;->onNotificationClick(Ljava/lang/String;Lcom/android/internal/statusbar/NotificationVisibility;)V
PLcom/android/server/statusbar/StatusBarManagerService;->onNotificationExpansionChanged(Ljava/lang/String;ZZI)V
+PLcom/android/server/statusbar/StatusBarManagerService;->onNotificationSmartSuggestionsAdded(Ljava/lang/String;IIZZ)V
PLcom/android/server/statusbar/StatusBarManagerService;->onNotificationVisibilityChanged([Lcom/android/internal/statusbar/NotificationVisibility;[Lcom/android/internal/statusbar/NotificationVisibility;)V
PLcom/android/server/statusbar/StatusBarManagerService;->onPanelHidden()V
PLcom/android/server/statusbar/StatusBarManagerService;->onPanelRevealed(ZI)V
PLcom/android/server/statusbar/StatusBarManagerService;->registerStatusBar(Lcom/android/internal/statusbar/IStatusBar;)Lcom/android/internal/statusbar/RegisterStatusBarResult;
PLcom/android/server/statusbar/StatusBarManagerService;->remTile(Landroid/content/ComponentName;)V
-PLcom/android/server/statusbar/StatusBarManagerService;->setDisableFlags(IILjava/lang/String;)V
-PLcom/android/server/statusbar/StatusBarManagerService;->setIconVisibility(Ljava/lang/String;Z)V
+HPLcom/android/server/statusbar/StatusBarManagerService;->setDisableFlags(IILjava/lang/String;)V
+HSPLcom/android/server/statusbar/StatusBarManagerService;->setIconVisibility(Ljava/lang/String;Z)V
PLcom/android/server/statusbar/StatusBarManagerService;->setImeWindowStatus(ILandroid/os/IBinder;IIZZ)V
PLcom/android/server/statusbar/StatusBarManagerService;->topAppWindowChanged(IZZ)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;-><clinit>()V
+PLcom/android/server/storage/AppCollector;-><init>(Landroid/content/Context;Landroid/os/storage/VolumeInfo;)V
+PLcom/android/server/storage/AppCollector;->access$100(Lcom/android/server/storage/AppCollector;)Ljava/util/concurrent/CompletableFuture;
+PLcom/android/server/storage/AppCollector;->getPackageStats(J)Ljava/util/List;
+PLcom/android/server/storage/AppFuseBridge$MountScope;-><init>(II)V
+PLcom/android/server/storage/AppFuseBridge$MountScope;->setMountResultLocked(Z)V
+PLcom/android/server/storage/AppFuseBridge$MountScope;->waitForMount()Z
+PLcom/android/server/storage/AppFuseBridge;->addBridge(Lcom/android/server/storage/AppFuseBridge$MountScope;)Landroid/os/ParcelFileDescriptor;
+PLcom/android/server/storage/AppFuseBridge;->onClosed(I)V
+PLcom/android/server/storage/AppFuseBridge;->onMount(I)V
+PLcom/android/server/storage/AppFuseBridge;->openFile(III)Landroid/os/ParcelFileDescriptor;
+PLcom/android/server/storage/AppFuseBridge;->run()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;-><init>(Landroid/content/Context;Landroid/app/usage/UsageStatsManagerInternal;Lcom/android/server/pm/Installer;Landroid/util/ArrayMap;)V
+HSPLcom/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;->access$000(Lcom/android/server/storage/CacheQuotaStrategy;)Ljava/lang/Object;
PLcom/android/server/storage/CacheQuotaStrategy;->access$100(Lcom/android/server/storage/CacheQuotaStrategy;)Landroid/app/usage/ICacheQuotaService;
PLcom/android/server/storage/CacheQuotaStrategy;->access$102(Lcom/android/server/storage/CacheQuotaStrategy;Landroid/app/usage/ICacheQuotaService;)Landroid/app/usage/ICacheQuotaService;
PLcom/android/server/storage/CacheQuotaStrategy;->access$200(Lcom/android/server/storage/CacheQuotaStrategy;)Ljava/util/List;
PLcom/android/server/storage/CacheQuotaStrategy;->createServiceConnection()V
-PLcom/android/server/storage/CacheQuotaStrategy;->disconnectService()V
+HSPLcom/android/server/storage/CacheQuotaStrategy;->disconnectService()V
+HSPLcom/android/server/storage/CacheQuotaStrategy;->getRequestFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/app/usage/CacheQuotaHint;
PLcom/android/server/storage/CacheQuotaStrategy;->getServiceComponentName()Landroid/content/ComponentName;
PLcom/android/server/storage/CacheQuotaStrategy;->getUnfulfilledRequests()Ljava/util/List;
+HSPLcom/android/server/storage/CacheQuotaStrategy;->insertIntoQuotaMap(Ljava/lang/String;IIJ)V
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;
+HSPLcom/android/server/storage/CacheQuotaStrategy;->pushProcessedQuotas(Ljava/util/List;)V
+HSPLcom/android/server/storage/CacheQuotaStrategy;->readFromXml(Ljava/io/InputStream;)Landroid/util/Pair;
PLcom/android/server/storage/CacheQuotaStrategy;->recalculateQuotas()V
PLcom/android/server/storage/CacheQuotaStrategy;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;Ljava/util/List;J)V
-PLcom/android/server/storage/CacheQuotaStrategy;->setupQuotasFromFile()J
+HSPLcom/android/server/storage/CacheQuotaStrategy;->setupQuotasFromFile()J
PLcom/android/server/storage/CacheQuotaStrategy;->writeXmlToFile(Ljava/util/List;)V
-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$2;->checkMemory()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;-><init>()V
-PLcom/android/server/storage/DeviceStorageMonitorService$State;-><init>(Lcom/android/server/storage/DeviceStorageMonitorService$1;)V
-PLcom/android/server/storage/DeviceStorageMonitorService$State;->access$400(III)Z
-PLcom/android/server/storage/DeviceStorageMonitorService$State;->access$500(III)Z
-PLcom/android/server/storage/DeviceStorageMonitorService$State;->isEntering(III)Z
-PLcom/android/server/storage/DeviceStorageMonitorService$State;->isLeaving(III)Z
-PLcom/android/server/storage/DeviceStorageMonitorService;-><clinit>()V
-PLcom/android/server/storage/DeviceStorageMonitorService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/storage/DeviceStorageMonitorService;->access$100(Lcom/android/server/storage/DeviceStorageMonitorService;)V
-PLcom/android/server/storage/DeviceStorageMonitorService;->access$200(Lcom/android/server/storage/DeviceStorageMonitorService;)Landroid/os/Handler;
-PLcom/android/server/storage/DeviceStorageMonitorService;->check()V
-PLcom/android/server/storage/DeviceStorageMonitorService;->findOrCreateState(Ljava/util/UUID;)Lcom/android/server/storage/DeviceStorageMonitorService$State;
-PLcom/android/server/storage/DeviceStorageMonitorService;->isBootImageOnDisk()Z
-PLcom/android/server/storage/DeviceStorageMonitorService;->onStart()V
-PLcom/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/DiskStatsLoggingService;-><clinit>()V
-PLcom/android/server/storage/DiskStatsLoggingService;->schedule(Landroid/content/Context;)V
-PLcom/android/server/storage/StorageSessionController;-><init>(Landroid/content/Context;Z)V
+HSPLcom/android/server/storage/DeviceStorageMonitorService$1;-><init>(Lcom/android/server/storage/DeviceStorageMonitorService;Landroid/os/Looper;)V
+HSPLcom/android/server/storage/DeviceStorageMonitorService$1;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/storage/DeviceStorageMonitorService$2;-><init>(Lcom/android/server/storage/DeviceStorageMonitorService;)V
+HSPLcom/android/server/storage/DeviceStorageMonitorService$3;-><init>(Lcom/android/server/storage/DeviceStorageMonitorService;)V
+PLcom/android/server/storage/DeviceStorageMonitorService$3;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/storage/DeviceStorageMonitorService$CacheFileDeletedObserver;-><init>()V
+HSPLcom/android/server/storage/DeviceStorageMonitorService$State;-><init>()V
+HSPLcom/android/server/storage/DeviceStorageMonitorService$State;-><init>(Lcom/android/server/storage/DeviceStorageMonitorService$1;)V
+HSPLcom/android/server/storage/DeviceStorageMonitorService$State;->access$400(III)Z
+HSPLcom/android/server/storage/DeviceStorageMonitorService$State;->access$500(III)Z
+HSPLcom/android/server/storage/DeviceStorageMonitorService$State;->isEntering(III)Z
+HSPLcom/android/server/storage/DeviceStorageMonitorService$State;->isLeaving(III)Z
+HSPLcom/android/server/storage/DeviceStorageMonitorService;-><clinit>()V
+HSPLcom/android/server/storage/DeviceStorageMonitorService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/storage/DeviceStorageMonitorService;->access$100(Lcom/android/server/storage/DeviceStorageMonitorService;)V
+HSPLcom/android/server/storage/DeviceStorageMonitorService;->check()V
+PLcom/android/server/storage/DeviceStorageMonitorService;->dumpImpl(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/storage/DeviceStorageMonitorService;->findOrCreateState(Ljava/util/UUID;)Lcom/android/server/storage/DeviceStorageMonitorService$State;
+HSPLcom/android/server/storage/DeviceStorageMonitorService;->isBootImageOnDisk()Z
+HSPLcom/android/server/storage/DeviceStorageMonitorService;->onStart()V
+HSPLcom/android/server/storage/DeviceStorageMonitorService;->updateBroadcasts(Landroid/os/storage/VolumeInfo;III)V
+HSPLcom/android/server/storage/DeviceStorageMonitorService;->updateNotifications(Landroid/os/storage/VolumeInfo;II)V
+PLcom/android/server/storage/DiskStatsFileLogger;-><init>(Lcom/android/server/storage/FileCollector$MeasurementResult;Lcom/android/server/storage/FileCollector$MeasurementResult;Ljava/util/List;J)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/DiskStatsFileLogger;->filterOnlyPrimaryUser()Landroid/util/ArrayMap;
+PLcom/android/server/storage/DiskStatsFileLogger;->getJsonRepresentation()Lorg/json/JSONObject;
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;-><clinit>()V
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;-><init>()V
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;->finishJob(Z)V
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;->logToFile(Lcom/android/server/storage/FileCollector$MeasurementResult;Lcom/android/server/storage/FileCollector$MeasurementResult;Ljava/util/List;J)V
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;->run()V
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;->setAppCollector(Lcom/android/server/storage/AppCollector;)V
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;->setContext(Landroid/content/Context;)V
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;->setDownloadsDirectory(Ljava/io/File;)V
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;->setJobService(Landroid/app/job/JobService;Landroid/app/job/JobParameters;)V
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;->setLogOutputFile(Ljava/io/File;)V
+PLcom/android/server/storage/DiskStatsLoggingService$LogRunnable;->setSystemSize(J)V
+HSPLcom/android/server/storage/DiskStatsLoggingService;-><clinit>()V
+PLcom/android/server/storage/DiskStatsLoggingService;-><init>()V
+PLcom/android/server/storage/DiskStatsLoggingService;->onStartJob(Landroid/app/job/JobParameters;)Z
+HSPLcom/android/server/storage/DiskStatsLoggingService;->schedule(Landroid/content/Context;)V
+PLcom/android/server/storage/FileCollector$MeasurementResult;-><init>()V
+PLcom/android/server/storage/FileCollector$MeasurementResult;->totalAccountedSize()J
+PLcom/android/server/storage/FileCollector;-><clinit>()V
+PLcom/android/server/storage/FileCollector;->collectFiles(Ljava/io/File;Lcom/android/server/storage/FileCollector$MeasurementResult;)Lcom/android/server/storage/FileCollector$MeasurementResult;
+PLcom/android/server/storage/FileCollector;->getMeasurementResult(Landroid/content/Context;)Lcom/android/server/storage/FileCollector$MeasurementResult;
+PLcom/android/server/storage/FileCollector;->getMeasurementResult(Ljava/io/File;)Lcom/android/server/storage/FileCollector$MeasurementResult;
+PLcom/android/server/storage/FileCollector;->getSystemSize(Landroid/content/Context;)J
+HSPLcom/android/server/storage/StorageSessionController;-><init>(Landroid/content/Context;Z)V
PLcom/android/server/storage/StorageSessionController;->onUnlockUser(I)V
PLcom/android/server/storage/StorageSessionController;->shouldHandle(Landroid/os/storage/VolumeInfo;)Z
PLcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService$RemoteServiceConnection;-><init>(Lcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService;)V
PLcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService$RemoteServiceConnection;-><init>(Lcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService;Lcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService$1;)V
PLcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService;-><clinit>()V
PLcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService;-><init>(Landroid/content/Context;Landroid/content/ComponentName;IZ)V
+PLcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService;->destroy()V
PLcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService;->ensureBound()V
+PLcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService;->ensureUnboundLocked()V
PLcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService;->initialize()V
PLcom/android/server/systemcaptions/SystemCaptionsManagerPerUserService;-><clinit>()V
PLcom/android/server/systemcaptions/SystemCaptionsManagerPerUserService;-><init>(Lcom/android/server/systemcaptions/SystemCaptionsManagerService;Ljava/lang/Object;ZI)V
+PLcom/android/server/systemcaptions/SystemCaptionsManagerPerUserService;->destroyLocked()V
PLcom/android/server/systemcaptions/SystemCaptionsManagerPerUserService;->getRemoteServiceLocked()Lcom/android/server/systemcaptions/RemoteSystemCaptionsManagerService;
PLcom/android/server/systemcaptions/SystemCaptionsManagerPerUserService;->initializeLocked()V
PLcom/android/server/systemcaptions/SystemCaptionsManagerPerUserService;->newServiceInfoLocked(Landroid/content/ComponentName;)Landroid/content/pm/ServiceInfo;
-PLcom/android/server/systemcaptions/SystemCaptionsManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/systemcaptions/SystemCaptionsManagerService;-><init>(Landroid/content/Context;)V
PLcom/android/server/systemcaptions/SystemCaptionsManagerService;->newServiceLocked(IZ)Lcom/android/server/infra/AbstractPerUserSystemService;
PLcom/android/server/systemcaptions/SystemCaptionsManagerService;->newServiceLocked(IZ)Lcom/android/server/systemcaptions/SystemCaptionsManagerPerUserService;
-PLcom/android/server/systemcaptions/SystemCaptionsManagerService;->onStart()V
-PLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$4O6PYSHBsC0Q5H-Y3LkvD32Vcjk;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
-PLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$Dg9me3bEFl3t0NGOPYwXIoF34FY;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
-PLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$jGqhqH8bl_lWotJlrzraXplioIw;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
-PLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$v_RQMbGOOwc6kjxGSNUrOugH8pw;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
-PLcom/android/server/telecom/TelecomLoaderService$1;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
+PLcom/android/server/systemcaptions/SystemCaptionsManagerService;->onServiceRemoved(Lcom/android/server/infra/AbstractPerUserSystemService;I)V
+PLcom/android/server/systemcaptions/SystemCaptionsManagerService;->onServiceRemoved(Lcom/android/server/systemcaptions/SystemCaptionsManagerPerUserService;I)V
+HSPLcom/android/server/systemcaptions/SystemCaptionsManagerService;->onStart()V
+HSPLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$4O6PYSHBsC0Q5H-Y3LkvD32Vcjk;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
+PLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$4O6PYSHBsC0Q5H-Y3LkvD32Vcjk;->getPackages(I)[Ljava/lang/String;
+HSPLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$Dg9me3bEFl3t0NGOPYwXIoF34FY;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
+PLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$Dg9me3bEFl3t0NGOPYwXIoF34FY;->getPackages(I)[Ljava/lang/String;
+HSPLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$jGqhqH8bl_lWotJlrzraXplioIw;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
+PLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$jGqhqH8bl_lWotJlrzraXplioIw;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
+HSPLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$v_RQMbGOOwc6kjxGSNUrOugH8pw;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
+PLcom/android/server/telecom/-$$Lambda$TelecomLoaderService$v_RQMbGOOwc6kjxGSNUrOugH8pw;->getPackages(I)[Ljava/lang/String;
+HSPLcom/android/server/telecom/TelecomLoaderService$1;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
PLcom/android/server/telecom/TelecomLoaderService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
PLcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection$1;-><init>(Lcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection;)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$1;)V
+HSPLcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection;-><init>(Lcom/android/server/telecom/TelecomLoaderService;)V
+HSPLcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection;-><init>(Lcom/android/server/telecom/TelecomLoaderService;Lcom/android/server/telecom/TelecomLoaderService$1;)V
PLcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
-PLcom/android/server/telecom/TelecomLoaderService;-><clinit>()V
-PLcom/android/server/telecom/TelecomLoaderService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/telecom/TelecomLoaderService;-><clinit>()V
+HSPLcom/android/server/telecom/TelecomLoaderService;-><init>(Landroid/content/Context;)V
PLcom/android/server/telecom/TelecomLoaderService;->access$100(Lcom/android/server/telecom/TelecomLoaderService;)Landroid/content/Context;
PLcom/android/server/telecom/TelecomLoaderService;->access$200(Lcom/android/server/telecom/TelecomLoaderService;)Ljava/lang/Object;
PLcom/android/server/telecom/TelecomLoaderService;->access$300(Lcom/android/server/telecom/TelecomLoaderService;)Landroid/util/IntArray;
PLcom/android/server/telecom/TelecomLoaderService;->access$500(Lcom/android/server/telecom/TelecomLoaderService;I)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
+HSPLcom/android/server/telecom/TelecomLoaderService;->connectToTelecom()V
+PLcom/android/server/telecom/TelecomLoaderService;->lambda$registerDefaultAppNotifier$3$TelecomLoaderService(Ljava/lang/String;Landroid/os/UserHandle;)V
+PLcom/android/server/telecom/TelecomLoaderService;->lambda$registerDefaultAppProviders$0$TelecomLoaderService(I)[Ljava/lang/String;
+PLcom/android/server/telecom/TelecomLoaderService;->lambda$registerDefaultAppProviders$1$TelecomLoaderService(I)[Ljava/lang/String;
+PLcom/android/server/telecom/TelecomLoaderService;->lambda$registerDefaultAppProviders$2$TelecomLoaderService(I)[Ljava/lang/String;
+HSPLcom/android/server/telecom/TelecomLoaderService;->onBootPhase(I)V
+HSPLcom/android/server/telecom/TelecomLoaderService;->onStart()V
+HSPLcom/android/server/telecom/TelecomLoaderService;->registerCarrierConfigChangedReceiver()V
+HSPLcom/android/server/telecom/TelecomLoaderService;->registerDefaultAppNotifier()V
+HSPLcom/android/server/telecom/TelecomLoaderService;->registerDefaultAppProviders()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
+HSPLcom/android/server/testharness/TestHarnessModeService$1;-><init>(Lcom/android/server/testharness/TestHarnessModeService;)V
+HSPLcom/android/server/testharness/TestHarnessModeService;-><clinit>()V
+HSPLcom/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/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
+HSPLcom/android/server/testharness/TestHarnessModeService;->getPersistentDataBlock()Lcom/android/server/PersistentDataBlockManagerInternal;
+HSPLcom/android/server/testharness/TestHarnessModeService;->getTestHarnessModeData()[B
+HSPLcom/android/server/testharness/TestHarnessModeService;->onBootPhase(I)V
+HSPLcom/android/server/testharness/TestHarnessModeService;->onStart()V
+HSPLcom/android/server/testharness/TestHarnessModeService;->setUpTestHarnessMode()V
PLcom/android/server/testharness/TestHarnessModeService;->showNotificationIfEnabled()V
-PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$I9mAoTWWg7OOLDE9kOK7LZ8wrgo;-><init>(Landroid/content/Context;)V
-PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$I9mAoTWWg7OOLDE9kOK7LZ8wrgo;->get()Ljava/lang/Object;
-PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$LgTaKgUnkwyysO9lmBSO8HNViFU;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;I)V
+HPLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$LgTaKgUnkwyysO9lmBSO8HNViFU;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;I)V
PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$LgTaKgUnkwyysO9lmBSO8HNViFU;->runOrThrow()V
-PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$nMkPNkAsWr8y9ybbpmHncJ2R2Aw;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextLinks$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
-PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$nMkPNkAsWr8y9ybbpmHncJ2R2Aw;->runOrThrow()V
+PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$bskC2PS7oOlLzDJkBbOVEdfy1Gg;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$bskC2PS7oOlLzDJkBbOVEdfy1Gg;->runOrThrow()V
+PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$mLzk2wMmEjV5zvq4IRM6g-PyeAk;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/ConversationActions$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$mLzk2wMmEjV5zvq4IRM6g-PyeAk;->runOrThrow()V
+PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$s1d_iMop8cVfXdi-T-chBEHa9ek;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$s1d_iMop8cVfXdi-T-chBEHa9ek;->runOrThrow()V
PLcom/android/server/textclassifier/-$$Lambda$TextClassificationManagerService$x-GZDBev2pMmhyvF3nP65PH7VPo;-><init>(Ljava/lang/String;)V
PLcom/android/server/textclassifier/-$$Lambda$k-7KcqZH2A0AukChaKa6Xru13_Q;-><init>(Landroid/service/textclassifier/ITextClassifierCallback;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->onStart()V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->onStart()V
PLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->onStartUser(I)V
PLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->onUnlockUser(I)V
PLcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;->processAnyPendingWork(I)V
HPLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;-><init>(Ljava/lang/String;Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Landroid/os/IBinder;Lcom/android/server/textclassifier/TextClassificationManagerService;Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;I)V
PLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1200(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)I
+PLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1300(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Ljava/lang/String;
PLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1400(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Ljava/lang/Runnable;
PLcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;->access$1600(Lcom/android/server/textclassifier/TextClassificationManagerService$PendingRequest;)Landroid/os/IBinder;
-PLcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;Landroid/content/Context;Lcom/android/server/textclassifier/TextClassificationManagerService;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;->onChange(ZLandroid/net/Uri;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;->registerObserver()V
-PLcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;->updateChange()V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;Landroid/content/Context;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;->registerObserver()V
PLcom/android/server/textclassifier/TextClassificationManagerService$UserState$TextClassifierServiceConnection;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;I)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState$TextClassifierServiceConnection;->cleanupService()V
PLcom/android/server/textclassifier/TextClassificationManagerService$UserState$TextClassifierServiceConnection;->init(Landroid/service/textclassifier/ITextClassifierService;Landroid/content/ComponentName;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState$TextClassifierServiceConnection;->onBindingDied(Landroid/content/ComponentName;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState$TextClassifierServiceConnection;->onNullBinding(Landroid/content/ComponentName;)V
PLcom/android/server/textclassifier/TextClassificationManagerService$UserState$TextClassifierServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState$TextClassifierServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;ILandroid/content/Context;Ljava/lang/Object;)V
PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;-><init>(Lcom/android/server/textclassifier/TextClassificationManagerService;ILandroid/content/Context;Ljava/lang/Object;Lcom/android/server/textclassifier/TextClassificationManagerService$1;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$1800(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;)Ljava/lang/Object;
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$1900(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/content/ComponentName;I)V
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$2000(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$1700(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;)Ljava/lang/Object;
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$1800(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;ILandroid/content/ComponentName;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$1900(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;)V
PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$400(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;)Z
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->access$600(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;ILjava/lang/String;)Z
PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->bindIfHasPendingRequestsLocked()Z
PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->bindLocked()Z
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->checkRequestAcceptedLocked(ILjava/lang/String;)Z
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->getServiceUid(Landroid/content/ComponentName;I)I
PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->handlePendingRequestsLocked()V
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->isDefaultService(Landroid/content/ComponentName;)Z
-PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->updateServiceInfoLocked(Landroid/content/ComponentName;I)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$1;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService;->access$100(Lcom/android/server/textclassifier/TextClassificationManagerService;)V
-PLcom/android/server/textclassifier/TextClassificationManagerService;->access$1700(Lcom/android/server/textclassifier/TextClassificationManagerService;Landroid/content/Context;)Landroid/view/textclassifier/TextClassificationConstants;
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->isBoundLocked()Z
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->isDefaultTrustService(Landroid/content/ComponentName;)Z
+PLcom/android/server/textclassifier/TextClassificationManagerService$UserState;->updateServiceInfoLocked(ILandroid/content/ComponentName;)V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService;-><init>(Landroid/content/Context;Lcom/android/server/textclassifier/TextClassificationManagerService$1;)V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService;->access$100(Lcom/android/server/textclassifier/TextClassificationManagerService;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService;->access$1100(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/lang/String;)Ljava/lang/Runnable;
PLcom/android/server/textclassifier/TextClassificationManagerService;->access$200(Lcom/android/server/textclassifier/TextClassificationManagerService;)Ljava/lang/Object;
-PLcom/android/server/textclassifier/TextClassificationManagerService;->access$2200(Lcom/android/server/textclassifier/TextClassificationManagerService;)V
PLcom/android/server/textclassifier/TextClassificationManagerService;->access$300(Lcom/android/server/textclassifier/TextClassificationManagerService;I)Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;
-PLcom/android/server/textclassifier/TextClassificationManagerService;->access$900(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/lang/String;)Ljava/lang/Runnable;
-PLcom/android/server/textclassifier/TextClassificationManagerService;->getTextClassifierSettings(Landroid/content/Context;)Landroid/view/textclassifier/TextClassificationConstants;
+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;->invalidateSettings()V
-PLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$getTextClassifierSettings$11(Landroid/content/Context;)Ljava/lang/String;
+PLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$dump$9$TextClassificationManagerService(Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$onClassifyText$1(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
PLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$onCreateTextClassificationSession$7$TextClassificationManagerService(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;I)V
-PLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$onGenerateLinks$2(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextLinks$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService;->lambda$onSuggestConversationActions$6(Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/ConversationActions$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
PLcom/android/server/textclassifier/TextClassificationManagerService;->logOnFailure(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/lang/String;)Ljava/lang/Runnable;
+PLcom/android/server/textclassifier/TextClassificationManagerService;->onClassifyText(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
PLcom/android/server/textclassifier/TextClassificationManagerService;->onCreateTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService;->onDestroyTextClassificationSession(Landroid/view/textclassifier/TextClassificationSessionId;)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;->startListenSettings()V
+PLcom/android/server/textclassifier/TextClassificationManagerService;->onSelectionEvent(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/SelectionEvent;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService;->onSuggestConversationActions(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/ConversationActions$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService;->onSuggestSelection(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextSelection$Request;Landroid/service/textclassifier/ITextClassifierCallback;)V
+PLcom/android/server/textclassifier/TextClassificationManagerService;->onTextClassifierEvent(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassifierEvent;)V
+HSPLcom/android/server/textclassifier/TextClassificationManagerService;->startListenSettings()V
HPLcom/android/server/textclassifier/TextClassificationManagerService;->validateInput(Landroid/content/Context;Ljava/lang/String;I)V
-PLcom/android/server/textservices/TextServicesManagerInternal$1;-><init>()V
-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;-><init>(Landroid/content/Context;)V
-PLcom/android/server/textservices/TextServicesManagerService$Lifecycle;->access$800(Lcom/android/server/textservices/TextServicesManagerService$Lifecycle;)Lcom/android/server/textservices/TextServicesManagerService;
-PLcom/android/server/textservices/TextServicesManagerService$Lifecycle;->onStart()V
+PLcom/android/server/textservices/-$$Lambda$TextServicesManagerService$SpellCheckerBindGroup$H2umvFNjpgILSC1ZJmUoLxzCdSk;-><init>(Landroid/os/IBinder;)V
+HSPLcom/android/server/textservices/TextServicesManagerInternal$1;-><init>()V
+HSPLcom/android/server/textservices/TextServicesManagerInternal;-><clinit>()V
+HSPLcom/android/server/textservices/TextServicesManagerInternal;-><init>()V
+HSPLcom/android/server/textservices/TextServicesManagerInternal;->get()Lcom/android/server/textservices/TextServicesManagerInternal;
+PLcom/android/server/textservices/TextServicesManagerService$ISpellCheckerServiceCallbackBinder;-><init>(Lcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;Lcom/android/server/textservices/TextServicesManagerService$SessionRequest;)V
+PLcom/android/server/textservices/TextServicesManagerService$ISpellCheckerServiceCallbackBinder;->onSessionCreated(Lcom/android/internal/textservice/ISpellCheckerSession;)V
+PLcom/android/server/textservices/TextServicesManagerService$InternalDeathRecipients;-><init>(Lcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;)V
+PLcom/android/server/textservices/TextServicesManagerService$InternalDeathRecipients;->onCallbackDied(Landroid/os/IInterface;)V
+PLcom/android/server/textservices/TextServicesManagerService$InternalDeathRecipients;->onCallbackDied(Lcom/android/internal/textservice/ISpellCheckerSessionListener;)V
+PLcom/android/server/textservices/TextServicesManagerService$InternalServiceConnection;-><init>(Lcom/android/server/textservices/TextServicesManagerService;Ljava/lang/String;Ljava/util/HashMap;)V
+PLcom/android/server/textservices/TextServicesManagerService$InternalServiceConnection;->access$2100(Lcom/android/server/textservices/TextServicesManagerService$InternalServiceConnection;)Ljava/util/HashMap;
+PLcom/android/server/textservices/TextServicesManagerService$InternalServiceConnection;->access$2200(Lcom/android/server/textservices/TextServicesManagerService$InternalServiceConnection;)Ljava/lang/String;
+PLcom/android/server/textservices/TextServicesManagerService$InternalServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/textservices/TextServicesManagerService$InternalServiceConnection;->onServiceConnectedInnerLocked(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+HSPLcom/android/server/textservices/TextServicesManagerService$Lifecycle$1;-><init>(Lcom/android/server/textservices/TextServicesManagerService$Lifecycle;)V
+HSPLcom/android/server/textservices/TextServicesManagerService$Lifecycle$1;->getCurrentSpellCheckerForUser(I)Landroid/view/textservice/SpellCheckerInfo;
+HSPLcom/android/server/textservices/TextServicesManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/textservices/TextServicesManagerService$Lifecycle;->access$800(Lcom/android/server/textservices/TextServicesManagerService$Lifecycle;)Lcom/android/server/textservices/TextServicesManagerService;
+HSPLcom/android/server/textservices/TextServicesManagerService$Lifecycle;->onStart()V
PLcom/android/server/textservices/TextServicesManagerService$Lifecycle;->onUnlockUser(I)V
+PLcom/android/server/textservices/TextServicesManagerService$SessionRequest;-><init>(ILjava/lang/String;Lcom/android/internal/textservice/ITextServicesSessionListener;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;)V
+PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;-><init>(Lcom/android/server/textservices/TextServicesManagerService;Lcom/android/server/textservices/TextServicesManagerService$InternalServiceConnection;)V
+PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->access$100(Lcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;)Lcom/android/server/textservices/TextServicesManagerService$InternalServiceConnection;
+PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->cleanLocked()V
+PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->getISpellCheckerSessionOrQueueLocked(Lcom/android/server/textservices/TextServicesManagerService$SessionRequest;)V
+PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->onServiceConnectedLocked(Lcom/android/internal/textservice/ISpellCheckerService;)V
+PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->onSessionCreated(Lcom/android/internal/textservice/ISpellCheckerSession;Lcom/android/server/textservices/TextServicesManagerService$SessionRequest;)V
+PLcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;->removeListener(Lcom/android/internal/textservice/ISpellCheckerSessionListener;)V
PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;-><init>(ILandroid/content/Context;)V
PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->access$1100(Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)V
+PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->access$1600(Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)Ljava/util/HashMap;
+PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->access$1800(Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)Ljava/util/HashMap;
+PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->access$1900(Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)I
+PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->access$2000(Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;Ljava/io/PrintWriter;)V
+PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->dump(Ljava/io/PrintWriter;)V
PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->getBoolean(Ljava/lang/String;Z)Z
PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->getCurrentSpellChecker()Landroid/view/textservice/SpellCheckerInfo;
-PLcom/android/server/textservices/TextServicesManagerService$TextServicesData;->getInt(Ljava/lang/String;I)I
+HPLcom/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;->isSpellCheckerEnabled()Z
-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$1;)V
+HSPLcom/android/server/textservices/TextServicesManagerService$TextServicesMonitor;-><init>(Lcom/android/server/textservices/TextServicesManagerService;)V
+HSPLcom/android/server/textservices/TextServicesManagerService$TextServicesMonitor;-><init>(Lcom/android/server/textservices/TextServicesManagerService;Lcom/android/server/textservices/TextServicesManagerService$1;)V
PLcom/android/server/textservices/TextServicesManagerService$TextServicesMonitor;->onSomePackagesChanged()V
-PLcom/android/server/textservices/TextServicesManagerService;-><clinit>()V
-PLcom/android/server/textservices/TextServicesManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/textservices/TextServicesManagerService;->access$900(Lcom/android/server/textservices/TextServicesManagerService;I)Landroid/view/textservice/SpellCheckerInfo;
-PLcom/android/server/textservices/TextServicesManagerService;->getCurrentSpellCheckerForUser(I)Landroid/view/textservice/SpellCheckerInfo;
+HSPLcom/android/server/textservices/TextServicesManagerService;-><clinit>()V
+HSPLcom/android/server/textservices/TextServicesManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/textservices/TextServicesManagerService;->access$900(Lcom/android/server/textservices/TextServicesManagerService;I)Landroid/view/textservice/SpellCheckerInfo;
+PLcom/android/server/textservices/TextServicesManagerService;->bindCurrentSpellCheckerService(Landroid/content/Intent;Landroid/content/ServiceConnection;II)Z
+PLcom/android/server/textservices/TextServicesManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/textservices/TextServicesManagerService;->finishSpellCheckerService(ILcom/android/internal/textservice/ISpellCheckerSessionListener;)V
+PLcom/android/server/textservices/TextServicesManagerService;->getCurrentSpellChecker(ILjava/lang/String;)Landroid/view/textservice/SpellCheckerInfo;
+HSPLcom/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;->getSpellCheckerService(ILjava/lang/String;Ljava/lang/String;Lcom/android/internal/textservice/ITextServicesSessionListener;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;)V
PLcom/android/server/textservices/TextServicesManagerService;->initializeInternalStateLocked(I)V
+PLcom/android/server/textservices/TextServicesManagerService;->isSpellCheckerEnabled(I)Z
PLcom/android/server/textservices/TextServicesManagerService;->onUnlockUser(I)V
-PLcom/android/server/timedetector/SimpleTimeDetectorStrategy;-><init>()V
-PLcom/android/server/timedetector/SimpleTimeDetectorStrategy;->initialize(Lcom/android/server/timedetector/TimeDetectorStrategy$Callback;)V
-PLcom/android/server/timedetector/TimeDetectorService$1;-><init>(Landroid/os/Handler;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/timedetector/TimeDetectorStrategy$Callback;Lcom/android/server/timedetector/TimeDetectorStrategy;)V
-PLcom/android/server/timedetector/TimeDetectorService;->access$000(Landroid/content/Context;)Lcom/android/server/timedetector/TimeDetectorService;
-PLcom/android/server/timedetector/TimeDetectorService;->create(Landroid/content/Context;)Lcom/android/server/timedetector/TimeDetectorService;
-PLcom/android/server/timedetector/TimeDetectorStrategyCallbackImpl;-><init>(Landroid/content/Context;)V
+PLcom/android/server/textservices/TextServicesManagerService;->startSpellCheckerServiceInnerLocked(Landroid/view/textservice/SpellCheckerInfo;Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;)Lcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGroup;
+PLcom/android/server/textservices/TextServicesManagerService;->verifyUser(I)V
+HSPLcom/android/server/timedetector/TimeDetectorService$1;-><init>(Landroid/os/Handler;Lcom/android/server/timedetector/TimeDetectorService;)V
+HSPLcom/android/server/timedetector/TimeDetectorService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/timedetector/TimeDetectorService$Lifecycle;->onStart()V
+HSPLcom/android/server/timedetector/TimeDetectorService;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timedetector/TimeDetectorStrategy;)V
+HSPLcom/android/server/timedetector/TimeDetectorService;->access$000(Landroid/content/Context;)Lcom/android/server/timedetector/TimeDetectorService;
+HSPLcom/android/server/timedetector/TimeDetectorService;->create(Landroid/content/Context;)Lcom/android/server/timedetector/TimeDetectorService;
+PLcom/android/server/timedetector/TimeDetectorService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/timedetector/TimeDetectorStrategyCallbackImpl;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/timedetector/TimeDetectorStrategyImpl;-><init>()V
+PLcom/android/server/timedetector/TimeDetectorStrategyImpl;->dump(Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/timedetector/TimeDetectorStrategyImpl;->initialize(Lcom/android/server/timedetector/TimeDetectorStrategy$Callback;)V
PLcom/android/server/timezonedetector/-$$Lambda$TimeZoneDetectorService$9xvncY35tAcP2eoRcnDHHViAoZw;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorService;Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)V
PLcom/android/server/timezonedetector/-$$Lambda$TimeZoneDetectorService$9xvncY35tAcP2eoRcnDHHViAoZw;->run()V
-PLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;-><init>(Landroid/content/Context;)V
PLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;->getDeviceTimeZone()Ljava/lang/String;
PLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;->isAutoTimeZoneDetectionEnabled()Z
PLcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;->isDeviceTimeZoneInitialized()Z
-PLcom/android/server/timezonedetector/TimeZoneDetectorService$1;-><init>(Landroid/os/Handler;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;)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;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorService;->access$000(Landroid/content/Context;)Lcom/android/server/timezonedetector/TimeZoneDetectorService;
-PLcom/android/server/timezonedetector/TimeZoneDetectorService;->create(Landroid/content/Context;)Lcom/android/server/timezonedetector/TimeZoneDetectorService;
+HSPLcom/android/server/timezonedetector/TimeZoneDetectorService$1;-><init>(Landroid/os/Handler;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;)V
+HSPLcom/android/server/timezonedetector/TimeZoneDetectorService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/timezonedetector/TimeZoneDetectorService$Lifecycle;->onStart()V
+HSPLcom/android/server/timezonedetector/TimeZoneDetectorService;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;)V
+HSPLcom/android/server/timezonedetector/TimeZoneDetectorService;->access$000(Landroid/content/Context;)Lcom/android/server/timezonedetector/TimeZoneDetectorService;
+HSPLcom/android/server/timezonedetector/TimeZoneDetectorService;->create(Landroid/content/Context;)Lcom/android/server/timezonedetector/TimeZoneDetectorService;
+PLcom/android/server/timezonedetector/TimeZoneDetectorService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/timezonedetector/TimeZoneDetectorService;->enforceSuggestPhoneTimeZonePermission()V
PLcom/android/server/timezonedetector/TimeZoneDetectorService;->lambda$suggestPhoneTimeZone$1$TimeZoneDetectorService(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)V
PLcom/android/server/timezonedetector/TimeZoneDetectorService;->suggestPhoneTimeZone(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)V
PLcom/android/server/timezonedetector/TimeZoneDetectorStrategy$QualifiedPhoneTimeZoneSuggestion;-><init>(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;I)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategy;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy$Callback;)V
-PLcom/android/server/timezonedetector/TimeZoneDetectorStrategy;->create(Landroid/content/Context;)Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategy$QualifiedPhoneTimeZoneSuggestion;->toString()Ljava/lang/String;
+HSPLcom/android/server/timezonedetector/TimeZoneDetectorStrategy;-><init>(Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy$Callback;)V
+HSPLcom/android/server/timezonedetector/TimeZoneDetectorStrategy;->create(Landroid/content/Context;)Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;
PLcom/android/server/timezonedetector/TimeZoneDetectorStrategy;->doAutoTimeZoneDetection(Ljava/lang/String;)V
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategy;->dumpState(Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/timezonedetector/TimeZoneDetectorStrategy;->findBestPhoneSuggestion()Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy$QualifiedPhoneTimeZoneSuggestion;
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategy;->isOriginAutomatic(I)Z
PLcom/android/server/timezonedetector/TimeZoneDetectorStrategy;->scorePhoneSuggestion(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)I
+PLcom/android/server/timezonedetector/TimeZoneDetectorStrategy;->setDeviceTimeZoneIfRequired(ILjava/lang/String;Ljava/lang/String;)V
PLcom/android/server/timezonedetector/TimeZoneDetectorStrategy;->suggestPhoneTimeZone(Landroid/app/timezonedetector/PhoneTimeZoneSuggestion;)V
PLcom/android/server/trust/-$$Lambda$TrustManagerService$1$98HKBkg-C1PLlz_Q1vJz1OJtw4c;-><clinit>()V
PLcom/android/server/trust/-$$Lambda$TrustManagerService$1$98HKBkg-C1PLlz_Q1vJz1OJtw4c;-><init>()V
PLcom/android/server/trust/-$$Lambda$TrustManagerService$1$98HKBkg-C1PLlz_Q1vJz1OJtw4c;->run()V
PLcom/android/server/trust/TrustAgentWrapper$1;-><init>(Lcom/android/server/trust/TrustAgentWrapper;)V
PLcom/android/server/trust/TrustAgentWrapper$2;-><init>(Lcom/android/server/trust/TrustAgentWrapper;)V
+PLcom/android/server/trust/TrustAgentWrapper$2;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/trust/TrustAgentWrapper$3;-><init>(Lcom/android/server/trust/TrustAgentWrapper;)V
PLcom/android/server/trust/TrustAgentWrapper$4;-><init>(Lcom/android/server/trust/TrustAgentWrapper;)V
PLcom/android/server/trust/TrustAgentWrapper$4;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/trust/TrustAgentWrapper$4;->onServiceDisconnected(Landroid/content/ComponentName;)V
PLcom/android/server/trust/TrustAgentWrapper;-><clinit>()V
PLcom/android/server/trust/TrustAgentWrapper;-><init>(Landroid/content/Context;Lcom/android/server/trust/TrustManagerService;Landroid/content/Intent;Landroid/os/UserHandle;)V
+PLcom/android/server/trust/TrustAgentWrapper;->access$000(Lcom/android/server/trust/TrustAgentWrapper;)Landroid/content/ComponentName;
PLcom/android/server/trust/TrustAgentWrapper;->access$100(Lcom/android/server/trust/TrustAgentWrapper;)Landroid/os/Handler;
PLcom/android/server/trust/TrustAgentWrapper;->access$1000(Lcom/android/server/trust/TrustAgentWrapper;)I
PLcom/android/server/trust/TrustAgentWrapper;->access$1100(Lcom/android/server/trust/TrustAgentWrapper;)Lcom/android/server/trust/TrustManagerService;
+PLcom/android/server/trust/TrustAgentWrapper;->access$1302(Lcom/android/server/trust/TrustAgentWrapper;Landroid/os/IBinder;)Landroid/os/IBinder;
+PLcom/android/server/trust/TrustAgentWrapper;->access$1502(Lcom/android/server/trust/TrustAgentWrapper;Z)Z
PLcom/android/server/trust/TrustAgentWrapper;->access$1602(Lcom/android/server/trust/TrustAgentWrapper;Landroid/service/trust/ITrustAgentService;)Landroid/service/trust/ITrustAgentService;
PLcom/android/server/trust/TrustAgentWrapper;->access$1800(Lcom/android/server/trust/TrustAgentWrapper;)Landroid/service/trust/ITrustAgentServiceCallback;
PLcom/android/server/trust/TrustAgentWrapper;->access$1900(Lcom/android/server/trust/TrustAgentWrapper;Landroid/service/trust/ITrustAgentServiceCallback;)V
PLcom/android/server/trust/TrustAgentWrapper;->access$2000(Lcom/android/server/trust/TrustAgentWrapper;)Z
+PLcom/android/server/trust/TrustAgentWrapper;->access$2002(Lcom/android/server/trust/TrustAgentWrapper;Z)Z
+PLcom/android/server/trust/TrustAgentWrapper;->access$202(Lcom/android/server/trust/TrustAgentWrapper;Z)Z
+PLcom/android/server/trust/TrustAgentWrapper;->access$2100(Lcom/android/server/trust/TrustAgentWrapper;)Z
+PLcom/android/server/trust/TrustAgentWrapper;->access$2200(Lcom/android/server/trust/TrustAgentWrapper;)V
+PLcom/android/server/trust/TrustAgentWrapper;->access$302(Lcom/android/server/trust/TrustAgentWrapper;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
PLcom/android/server/trust/TrustAgentWrapper;->access$500()Z
+PLcom/android/server/trust/TrustAgentWrapper;->destroy()V
+PLcom/android/server/trust/TrustAgentWrapper;->isBound()Z
PLcom/android/server/trust/TrustAgentWrapper;->isConnected()Z
PLcom/android/server/trust/TrustAgentWrapper;->isManagingTrust()Z
PLcom/android/server/trust/TrustAgentWrapper;->isTrusted()Z
@@ -15290,131 +18262,117 @@ PLcom/android/server/trust/TrustAgentWrapper;->scheduleRestart()V
PLcom/android/server/trust/TrustAgentWrapper;->setCallback(Landroid/service/trust/ITrustAgentServiceCallback;)V
PLcom/android/server/trust/TrustAgentWrapper;->updateDevicePolicyFeatures()Z
HPLcom/android/server/trust/TrustArchive$Event;-><init>(IILandroid/content/ComponentName;Ljava/lang/String;JIZ)V
-PLcom/android/server/trust/TrustArchive$Event;-><init>(IILandroid/content/ComponentName;Ljava/lang/String;JIZLcom/android/server/trust/TrustArchive$1;)V
-PLcom/android/server/trust/TrustArchive;-><init>()V
-PLcom/android/server/trust/TrustManagerService$1;-><init>(Lcom/android/server/trust/TrustManagerService;)V
+HPLcom/android/server/trust/TrustArchive$Event;-><init>(IILandroid/content/ComponentName;Ljava/lang/String;JIZLcom/android/server/trust/TrustArchive$1;)V
+HSPLcom/android/server/trust/TrustArchive;-><init>()V
+PLcom/android/server/trust/TrustArchive;->addEvent(Lcom/android/server/trust/TrustArchive$Event;)V
+PLcom/android/server/trust/TrustArchive;->dump(Ljava/io/PrintWriter;IILjava/lang/String;Z)V
+PLcom/android/server/trust/TrustArchive;->dumpType(I)Ljava/lang/String;
+PLcom/android/server/trust/TrustArchive;->logAgentConnected(ILandroid/content/ComponentName;)V
+PLcom/android/server/trust/TrustManagerService$1$1;-><init>(Lcom/android/server/trust/TrustManagerService$1;Ljava/io/PrintWriter;Ljava/util/List;)V
+PLcom/android/server/trust/TrustManagerService$1$1;->run()V
+HSPLcom/android/server/trust/TrustManagerService$1;-><init>(Lcom/android/server/trust/TrustManagerService;)V
PLcom/android/server/trust/TrustManagerService$1;->clearAllBiometricRecognized(Landroid/hardware/biometrics/BiometricSourceType;)V
-PLcom/android/server/trust/TrustManagerService$1;->enforceListenerPermission()V
+PLcom/android/server/trust/TrustManagerService$1;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/trust/TrustManagerService$1;->dumpUser(Ljava/io/PrintWriter;Landroid/content/pm/UserInfo;Z)V
+HSPLcom/android/server/trust/TrustManagerService$1;->enforceListenerPermission()V
PLcom/android/server/trust/TrustManagerService$1;->enforceReportPermission()V
PLcom/android/server/trust/TrustManagerService$1;->isDeviceLocked(I)Z
-PLcom/android/server/trust/TrustManagerService$1;->isDeviceSecure(I)Z
-PLcom/android/server/trust/TrustManagerService$1;->isTrustUsuallyManaged(I)Z
+HPLcom/android/server/trust/TrustManagerService$1;->isDeviceSecure(I)Z
+HSPLcom/android/server/trust/TrustManagerService$1;->isTrustUsuallyManaged(I)Z
PLcom/android/server/trust/TrustManagerService$1;->lambda$reportKeyguardShowingChanged$0()V
-PLcom/android/server/trust/TrustManagerService$1;->registerTrustListener(Landroid/app/trust/ITrustListener;)V
+HSPLcom/android/server/trust/TrustManagerService$1;->registerTrustListener(Landroid/app/trust/ITrustListener;)V
PLcom/android/server/trust/TrustManagerService$1;->reportKeyguardShowingChanged()V
PLcom/android/server/trust/TrustManagerService$1;->reportUnlockAttempt(ZI)V
-PLcom/android/server/trust/TrustManagerService$2;-><init>(Lcom/android/server/trust/TrustManagerService;)V
+PLcom/android/server/trust/TrustManagerService$1;->unlockedByBiometricForUser(ILandroid/hardware/biometrics/BiometricSourceType;)V
+HSPLcom/android/server/trust/TrustManagerService$2;-><init>(Lcom/android/server/trust/TrustManagerService;)V
PLcom/android/server/trust/TrustManagerService$2;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/trust/TrustManagerService$3;-><init>(Lcom/android/server/trust/TrustManagerService;)V
+HSPLcom/android/server/trust/TrustManagerService$3;-><init>(Lcom/android/server/trust/TrustManagerService;)V
PLcom/android/server/trust/TrustManagerService$3;->onPackageChanged(Ljava/lang/String;I[Ljava/lang/String;)Z
PLcom/android/server/trust/TrustManagerService$3;->onPackageDisappeared(Ljava/lang/String;I)V
PLcom/android/server/trust/TrustManagerService$3;->onSomePackagesChanged()V
-PLcom/android/server/trust/TrustManagerService$AgentInfo;-><init>()V
-PLcom/android/server/trust/TrustManagerService$AgentInfo;-><init>(Lcom/android/server/trust/TrustManagerService$1;)V
+HSPLcom/android/server/trust/TrustManagerService$AgentInfo;-><init>()V
+HSPLcom/android/server/trust/TrustManagerService$AgentInfo;-><init>(Lcom/android/server/trust/TrustManagerService$1;)V
PLcom/android/server/trust/TrustManagerService$AgentInfo;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/trust/TrustManagerService$AgentInfo;->hashCode()I
-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$1;)V
-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$SettingsAttrs;-><init>(Landroid/content/ComponentName;Z)V
-PLcom/android/server/trust/TrustManagerService$SettingsObserver;-><init>(Lcom/android/server/trust/TrustManagerService;Landroid/os/Handler;)V
+HSPLcom/android/server/trust/TrustManagerService$AgentInfo;->hashCode()I
+HSPLcom/android/server/trust/TrustManagerService$Receiver;-><init>(Lcom/android/server/trust/TrustManagerService;)V
+HSPLcom/android/server/trust/TrustManagerService$Receiver;-><init>(Lcom/android/server/trust/TrustManagerService;Lcom/android/server/trust/TrustManagerService$1;)V
+HPLcom/android/server/trust/TrustManagerService$Receiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/trust/TrustManagerService$Receiver;->register(Landroid/content/Context;)V
+HSPLcom/android/server/trust/TrustManagerService$SettingsAttrs;-><init>(Landroid/content/ComponentName;Z)V
+HSPLcom/android/server/trust/TrustManagerService$SettingsObserver;-><init>(Lcom/android/server/trust/TrustManagerService;Landroid/os/Handler;)V
PLcom/android/server/trust/TrustManagerService$SettingsObserver;->getTrustAgentsExtendUnlock()Z
-PLcom/android/server/trust/TrustManagerService$SettingsObserver;->onChange(ZLandroid/net/Uri;)V
-PLcom/android/server/trust/TrustManagerService$SettingsObserver;->updateContentObserver()V
-PLcom/android/server/trust/TrustManagerService$StrongAuthTracker;-><init>(Lcom/android/server/trust/TrustManagerService;Landroid/content/Context;)V
+HSPLcom/android/server/trust/TrustManagerService$SettingsObserver;->onChange(ZLandroid/net/Uri;)V
+HSPLcom/android/server/trust/TrustManagerService$SettingsObserver;->updateContentObserver()V
+HSPLcom/android/server/trust/TrustManagerService$StrongAuthTracker;-><init>(Lcom/android/server/trust/TrustManagerService;Landroid/content/Context;)V
PLcom/android/server/trust/TrustManagerService$StrongAuthTracker;->allowTrustFromUnlock(I)V
+PLcom/android/server/trust/TrustManagerService$StrongAuthTracker;->canAgentsRunForUser(I)Z
PLcom/android/server/trust/TrustManagerService$StrongAuthTracker;->onStrongAuthRequiredChanged(I)V
-PLcom/android/server/trust/TrustManagerService;-><clinit>()V
-PLcom/android/server/trust/TrustManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/trust/TrustManagerService;->access$100(Lcom/android/server/trust/TrustManagerService;)I
-PLcom/android/server/trust/TrustManagerService;->access$1500(Lcom/android/server/trust/TrustManagerService;I)Z
+HSPLcom/android/server/trust/TrustManagerService;-><clinit>()V
+HSPLcom/android/server/trust/TrustManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/trust/TrustManagerService;->access$100(Lcom/android/server/trust/TrustManagerService;)I
+HSPLcom/android/server/trust/TrustManagerService;->access$1500(Lcom/android/server/trust/TrustManagerService;I)Z
PLcom/android/server/trust/TrustManagerService;->access$1600(Lcom/android/server/trust/TrustManagerService;)Landroid/util/SparseBooleanArray;
PLcom/android/server/trust/TrustManagerService;->access$1800(Lcom/android/server/trust/TrustManagerService;Landroid/app/trust/ITrustListener;)V
+PLcom/android/server/trust/TrustManagerService;->access$2000(Lcom/android/server/trust/TrustManagerService;ZI)V
PLcom/android/server/trust/TrustManagerService;->access$2200(Lcom/android/server/trust/TrustManagerService;I)V
-PLcom/android/server/trust/TrustManagerService;->access$300(Lcom/android/server/trust/TrustManagerService;)Landroid/os/Handler;
+HSPLcom/android/server/trust/TrustManagerService;->access$300(Lcom/android/server/trust/TrustManagerService;)Landroid/os/Handler;
PLcom/android/server/trust/TrustManagerService;->access$400(Lcom/android/server/trust/TrustManagerService;)Lcom/android/internal/widget/LockPatternUtils;
PLcom/android/server/trust/TrustManagerService;->access$500(Lcom/android/server/trust/TrustManagerService;I)I
-PLcom/android/server/trust/TrustManagerService;->access$600(Lcom/android/server/trust/TrustManagerService;)Landroid/content/Context;
+HSPLcom/android/server/trust/TrustManagerService;->access$600(Lcom/android/server/trust/TrustManagerService;)Landroid/content/Context;
PLcom/android/server/trust/TrustManagerService;->addListener(Landroid/app/trust/ITrustListener;)V
PLcom/android/server/trust/TrustManagerService;->aggregateIsTrustManaged(I)Z
-PLcom/android/server/trust/TrustManagerService;->aggregateIsTrusted(I)Z
+HSPLcom/android/server/trust/TrustManagerService;->aggregateIsTrusted(I)Z
PLcom/android/server/trust/TrustManagerService;->dispatchDeviceLocked(IZ)V
PLcom/android/server/trust/TrustManagerService;->dispatchOnTrustChanged(ZII)V
PLcom/android/server/trust/TrustManagerService;->dispatchOnTrustManagedChanged(ZI)V
PLcom/android/server/trust/TrustManagerService;->dispatchUnlockAttempt(ZI)V
-PLcom/android/server/trust/TrustManagerService;->getComponentName(Landroid/content/pm/ResolveInfo;)Landroid/content/ComponentName;
-PLcom/android/server/trust/TrustManagerService;->getSettingsAttrs(Landroid/content/pm/PackageManager;Landroid/content/pm/ResolveInfo;)Lcom/android/server/trust/TrustManagerService$SettingsAttrs;
-PLcom/android/server/trust/TrustManagerService;->isDeviceLockedInner(I)Z
-PLcom/android/server/trust/TrustManagerService;->isTrustUsuallyManagedInternal(I)Z
+HSPLcom/android/server/trust/TrustManagerService;->getComponentName(Landroid/content/pm/ResolveInfo;)Landroid/content/ComponentName;
+HSPLcom/android/server/trust/TrustManagerService;->getSettingsAttrs(Landroid/content/pm/PackageManager;Landroid/content/pm/ResolveInfo;)Lcom/android/server/trust/TrustManagerService$SettingsAttrs;
+HSPLcom/android/server/trust/TrustManagerService;->isDeviceLockedInner(I)Z
+HSPLcom/android/server/trust/TrustManagerService;->isTrustUsuallyManagedInternal(I)Z
PLcom/android/server/trust/TrustManagerService;->maybeEnableFactoryTrustAgents(Lcom/android/internal/widget/LockPatternUtils;I)V
-PLcom/android/server/trust/TrustManagerService;->onBootPhase(I)V
-PLcom/android/server/trust/TrustManagerService;->onStart()V
+HSPLcom/android/server/trust/TrustManagerService;->onBootPhase(I)V
+HSPLcom/android/server/trust/TrustManagerService;->onStart()V
PLcom/android/server/trust/TrustManagerService;->onStartUser(I)V
PLcom/android/server/trust/TrustManagerService;->onUnlockUser(I)V
-PLcom/android/server/trust/TrustManagerService;->refreshAgentList(I)V
-PLcom/android/server/trust/TrustManagerService;->refreshDeviceLockedForUser(I)V
+HSPLcom/android/server/trust/TrustManagerService;->refreshAgentList(I)V
+HSPLcom/android/server/trust/TrustManagerService;->refreshDeviceLockedForUser(I)V
PLcom/android/server/trust/TrustManagerService;->removeAgentsOfPackage(Ljava/lang/String;)V
-PLcom/android/server/trust/TrustManagerService;->resolveAllowedTrustAgents(Landroid/content/pm/PackageManager;I)Ljava/util/List;
-PLcom/android/server/trust/TrustManagerService;->resolveProfileParent(I)I
-PLcom/android/server/trust/TrustManagerService;->setDeviceLockedForUser(IZ)V
-PLcom/android/server/trust/TrustManagerService;->updateDevicePolicyFeatures()V
+HSPLcom/android/server/trust/TrustManagerService;->resolveAllowedTrustAgents(Landroid/content/pm/PackageManager;I)Ljava/util/List;
+HPLcom/android/server/trust/TrustManagerService;->resolveProfileParent(I)I
+HSPLcom/android/server/trust/TrustManagerService;->setDeviceLockedForUser(IZ)V
+HPLcom/android/server/trust/TrustManagerService;->updateDevicePolicyFeatures()V
PLcom/android/server/trust/TrustManagerService;->updateTrust(II)V
PLcom/android/server/trust/TrustManagerService;->updateTrust(IIZ)V
PLcom/android/server/trust/TrustManagerService;->updateTrustAll()V
HSPLcom/android/server/tv/TvInputHal;-><clinit>()V
-PLcom/android/server/twilight/TwilightService$1;-><init>(Lcom/android/server/twilight/TwilightService;)V
-PLcom/android/server/twilight/TwilightService$1;->getLastTwilightState()Lcom/android/server/twilight/TwilightState;
-PLcom/android/server/twilight/TwilightService$1;->unregisterListener(Lcom/android/server/twilight/TwilightListener;)V
-PLcom/android/server/twilight/TwilightService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/twilight/TwilightService;->access$000(Lcom/android/server/twilight/TwilightService;)Landroid/util/ArrayMap;
-PLcom/android/server/twilight/TwilightService;->onBootPhase(I)V
-PLcom/android/server/twilight/TwilightService;->onStart()V
-PLcom/android/server/updates/CertPinInstallReceiver;-><init>()V
-PLcom/android/server/updates/ConfigUpdateInstallReceiver$1;-><init>(Lcom/android/server/updates/ConfigUpdateInstallReceiver;Landroid/content/Intent;Landroid/content/Context;)V
-PLcom/android/server/updates/ConfigUpdateInstallReceiver$1;->run()V
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->access$000(Lcom/android/server/updates/ConfigUpdateInstallReceiver;Landroid/content/Intent;)I
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->access$100(Lcom/android/server/updates/ConfigUpdateInstallReceiver;Landroid/content/Intent;)Ljava/lang/String;
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->access$200(Lcom/android/server/updates/ConfigUpdateInstallReceiver;)I
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->access$300(Lcom/android/server/updates/ConfigUpdateInstallReceiver;)[B
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->access$400([B)Ljava/lang/String;
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->access$500(Lcom/android/server/updates/ConfigUpdateInstallReceiver;Ljava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->access$600(Lcom/android/server/updates/ConfigUpdateInstallReceiver;Landroid/content/Context;Landroid/content/Intent;)Ljava/io/BufferedInputStream;
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getAltContent(Landroid/content/Context;Landroid/content/Intent;)Ljava/io/BufferedInputStream;
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getContentFromIntent(Landroid/content/Intent;)Landroid/net/Uri;
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getCurrentContent()[B
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getCurrentHash([B)Ljava/lang/String;
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getCurrentVersion()I
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getRequiredHashFromIntent(Landroid/content/Intent;)Ljava/lang/String;
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->getVersionFromIntent(Landroid/content/Intent;)I
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->verifyPreviousHash(Ljava/lang/String;Ljava/lang/String;)Z
-PLcom/android/server/updates/ConfigUpdateInstallReceiver;->verifyVersion(II)Z
-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
+HSPLcom/android/server/twilight/TwilightService$1;-><init>(Lcom/android/server/twilight/TwilightService;)V
+HSPLcom/android/server/twilight/TwilightService$1;->getLastTwilightState()Lcom/android/server/twilight/TwilightState;
+HSPLcom/android/server/twilight/TwilightService$1;->unregisterListener(Lcom/android/server/twilight/TwilightListener;)V
+HSPLcom/android/server/twilight/TwilightService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/twilight/TwilightService;->access$000(Lcom/android/server/twilight/TwilightService;)Landroid/util/ArrayMap;
+HSPLcom/android/server/twilight/TwilightService;->onBootPhase(I)V
+HSPLcom/android/server/twilight/TwilightService;->onStart()V
PLcom/android/server/uri/GrantUri;-><init>(ILandroid/net/Uri;Z)V
PLcom/android/server/uri/GrantUri;->equals(Ljava/lang/Object;)Z
PLcom/android/server/uri/GrantUri;->hashCode()I
PLcom/android/server/uri/GrantUri;->resolve(ILandroid/net/Uri;)Lcom/android/server/uri/GrantUri;
+PLcom/android/server/uri/GrantUri;->toString()Ljava/lang/String;
+PLcom/android/server/uri/NeededUriGrants;-><init>(Ljava/lang/String;II)V
HSPLcom/android/server/uri/UriGrantsManagerService$H;-><init>(Lcom/android/server/uri/UriGrantsManagerService;Landroid/os/Looper;)V
HSPLcom/android/server/uri/UriGrantsManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
HSPLcom/android/server/uri/UriGrantsManagerService$Lifecycle;->onStart()V
HSPLcom/android/server/uri/UriGrantsManagerService$LocalService;-><init>(Lcom/android/server/uri/UriGrantsManagerService;)V
-PLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkAuthorityGrants(ILandroid/content/pm/ProviderInfo;IZ)Z
-PLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkGrantUriPermission(ILjava/lang/String;Landroid/net/Uri;II)I
-HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkGrantUriPermissionFromIntent(ILjava/lang/String;Landroid/content/Intent;ILcom/android/server/uri/NeededUriGrants;I)Lcom/android/server/uri/NeededUriGrants;
+HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkAuthorityGrants(ILandroid/content/pm/ProviderInfo;IZ)Z
+HPLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkGrantUriPermission(ILjava/lang/String;Landroid/net/Uri;II)I
+HSPLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkGrantUriPermissionFromIntent(ILjava/lang/String;Landroid/content/Intent;ILcom/android/server/uri/NeededUriGrants;I)Lcom/android/server/uri/NeededUriGrants;
PLcom/android/server/uri/UriGrantsManagerService$LocalService;->checkUriPermission(Lcom/android/server/uri/GrantUri;II)Z
+PLcom/android/server/uri/UriGrantsManagerService$LocalService;->dump(Ljava/io/PrintWriter;ZLjava/lang/String;)V
PLcom/android/server/uri/UriGrantsManagerService$LocalService;->grantUriPermission(ILjava/lang/String;Lcom/android/server/uri/GrantUri;ILcom/android/server/uri/UriPermissionOwner;I)V
PLcom/android/server/uri/UriGrantsManagerService$LocalService;->grantUriPermissionFromIntent(ILjava/lang/String;Landroid/content/Intent;Lcom/android/server/uri/UriPermissionOwner;I)V
-PLcom/android/server/uri/UriGrantsManagerService$LocalService;->newUriPermissionOwner(Ljava/lang/String;)Landroid/os/IBinder;
+HSPLcom/android/server/uri/UriGrantsManagerService$LocalService;->newUriPermissionOwner(Ljava/lang/String;)Landroid/os/IBinder;
HSPLcom/android/server/uri/UriGrantsManagerService$LocalService;->onActivityManagerInternalAdded()V
-PLcom/android/server/uri/UriGrantsManagerService$LocalService;->onSystemReady()V
+HSPLcom/android/server/uri/UriGrantsManagerService$LocalService;->onSystemReady()V
PLcom/android/server/uri/UriGrantsManagerService$LocalService;->removeUriPermissionIfNeeded(Lcom/android/server/uri/UriPermission;)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
@@ -15423,56 +18381,71 @@ HSPLcom/android/server/uri/UriGrantsManagerService;-><init>(Landroid/content/Con
HSPLcom/android/server/uri/UriGrantsManagerService;-><init>(Landroid/content/Context;Lcom/android/server/uri/UriGrantsManagerService$1;)V
HSPLcom/android/server/uri/UriGrantsManagerService;->access$100(Lcom/android/server/uri/UriGrantsManagerService;)V
HSPLcom/android/server/uri/UriGrantsManagerService;->access$300(Lcom/android/server/uri/UriGrantsManagerService;)Ljava/lang/Object;
-PLcom/android/server/uri/UriGrantsManagerService;->access$500(Lcom/android/server/uri/UriGrantsManagerService;Ljava/lang/String;)V
-PLcom/android/server/uri/UriGrantsManagerService;->checkAuthorityGrants(ILandroid/content/pm/ProviderInfo;IZ)Z
-PLcom/android/server/uri/UriGrantsManagerService;->checkGrantUriPermission(ILjava/lang/String;Lcom/android/server/uri/GrantUri;II)I
-HPLcom/android/server/uri/UriGrantsManagerService;->checkGrantUriPermissionFromIntent(ILjava/lang/String;Landroid/content/Intent;ILcom/android/server/uri/NeededUriGrants;I)Lcom/android/server/uri/NeededUriGrants;
-PLcom/android/server/uri/UriGrantsManagerService;->checkHoldingPermissionsInternal(Landroid/content/pm/IPackageManager;Landroid/content/pm/ProviderInfo;Lcom/android/server/uri/GrantUri;IIZ)Z
-PLcom/android/server/uri/UriGrantsManagerService;->checkUriPermission(Lcom/android/server/uri/GrantUri;II)Z
-PLcom/android/server/uri/UriGrantsManagerService;->enforceNotIsolatedCaller(Ljava/lang/String;)V
+HSPLcom/android/server/uri/UriGrantsManagerService;->access$500(Lcom/android/server/uri/UriGrantsManagerService;Ljava/lang/String;)V
+HPLcom/android/server/uri/UriGrantsManagerService;->checkAuthorityGrants(ILandroid/content/pm/ProviderInfo;IZ)Z
+PLcom/android/server/uri/UriGrantsManagerService;->checkGrantUriPermission(ILjava/lang/String;Landroid/net/Uri;II)I
+HPLcom/android/server/uri/UriGrantsManagerService;->checkGrantUriPermission(ILjava/lang/String;Lcom/android/server/uri/GrantUri;II)I
+HSPLcom/android/server/uri/UriGrantsManagerService;->checkGrantUriPermissionFromIntent(ILjava/lang/String;Landroid/content/Intent;ILcom/android/server/uri/NeededUriGrants;I)Lcom/android/server/uri/NeededUriGrants;
+PLcom/android/server/uri/UriGrantsManagerService;->checkHoldingPermissions(Landroid/content/pm/IPackageManager;Landroid/content/pm/ProviderInfo;Lcom/android/server/uri/GrantUri;II)Z
+HPLcom/android/server/uri/UriGrantsManagerService;->checkHoldingPermissionsInternal(Landroid/content/pm/IPackageManager;Landroid/content/pm/ProviderInfo;Lcom/android/server/uri/GrantUri;IIZ)Z
+HPLcom/android/server/uri/UriGrantsManagerService;->checkUriPermission(Lcom/android/server/uri/GrantUri;II)Z
+HSPLcom/android/server/uri/UriGrantsManagerService;->enforceNotIsolatedCaller(Ljava/lang/String;)V
PLcom/android/server/uri/UriGrantsManagerService;->findOrCreateUriPermission(Ljava/lang/String;Ljava/lang/String;ILcom/android/server/uri/GrantUri;)Lcom/android/server/uri/UriPermission;
-PLcom/android/server/uri/UriGrantsManagerService;->getProviderInfo(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
+HPLcom/android/server/uri/UriGrantsManagerService;->getProviderInfo(Ljava/lang/String;II)Landroid/content/pm/ProviderInfo;
HPLcom/android/server/uri/UriGrantsManagerService;->getUriPermissions(Ljava/lang/String;ZZ)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/uri/UriGrantsManagerService;->grantUriPermission(ILjava/lang/String;Lcom/android/server/uri/GrantUri;ILcom/android/server/uri/UriPermissionOwner;I)V
PLcom/android/server/uri/UriGrantsManagerService;->grantUriPermissionFromIntent(ILjava/lang/String;Landroid/content/Intent;Lcom/android/server/uri/UriPermissionOwner;I)V
PLcom/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;->matchesProvider(Landroid/net/Uri;Landroid/content/pm/ProviderInfo;)Z
HSPLcom/android/server/uri/UriGrantsManagerService;->onActivityManagerInternalAdded()V
-PLcom/android/server/uri/UriGrantsManagerService;->readGrantedUriPermissions()V
+HSPLcom/android/server/uri/UriGrantsManagerService;->readGrantedUriPermissions()V
PLcom/android/server/uri/UriGrantsManagerService;->removeUriPermissionIfNeeded(Lcom/android/server/uri/UriPermission;)V
HPLcom/android/server/uri/UriGrantsManagerService;->removeUriPermissionsForPackage(Ljava/lang/String;IZZ)V
HPLcom/android/server/uri/UriGrantsManagerService;->revokeUriPermission(Ljava/lang/String;ILcom/android/server/uri/GrantUri;I)V
HSPLcom/android/server/uri/UriGrantsManagerService;->start()V
PLcom/android/server/uri/UriPermission;-><init>(Ljava/lang/String;Ljava/lang/String;ILcom/android/server/uri/GrantUri;)V
-PLcom/android/server/uri/UriPermission;->addReadOwner(Lcom/android/server/uri/UriPermissionOwner;)V
+HPLcom/android/server/uri/UriPermission;->addReadOwner(Lcom/android/server/uri/UriPermissionOwner;)V
+PLcom/android/server/uri/UriPermission;->buildPersistedPublicApiObject()Landroid/content/UriPermission;
+PLcom/android/server/uri/UriPermission;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/uri/UriPermission;->getStrength(I)I
PLcom/android/server/uri/UriPermission;->grantModes(ILcom/android/server/uri/UriPermissionOwner;)V
PLcom/android/server/uri/UriPermission;->removeReadOwner(Lcom/android/server/uri/UriPermissionOwner;)V
PLcom/android/server/uri/UriPermission;->revokeModes(IZ)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;-><init>(Lcom/android/server/uri/UriGrantsManagerInternal;Ljava/lang/Object;)V
+HSPLcom/android/server/uri/UriPermissionOwner$ExternalToken;-><init>(Lcom/android/server/uri/UriPermissionOwner;)V
+PLcom/android/server/uri/UriPermissionOwner$ExternalToken;->getOwner()Lcom/android/server/uri/UriPermissionOwner;
+HSPLcom/android/server/uri/UriPermissionOwner;-><init>(Lcom/android/server/uri/UriGrantsManagerInternal;Ljava/lang/Object;)V
PLcom/android/server/uri/UriPermissionOwner;->addReadPermission(Lcom/android/server/uri/UriPermission;)V
-PLcom/android/server/uri/UriPermissionOwner;->getExternalToken()Landroid/os/Binder;
+PLcom/android/server/uri/UriPermissionOwner;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/uri/UriPermissionOwner;->fromExternalToken(Landroid/os/IBinder;)Lcom/android/server/uri/UriPermissionOwner;
+HSPLcom/android/server/uri/UriPermissionOwner;->getExternalToken()Landroid/os/Binder;
PLcom/android/server/uri/UriPermissionOwner;->removeUriPermission(Lcom/android/server/uri/GrantUri;I)V
PLcom/android/server/uri/UriPermissionOwner;->removeUriPermissions()V
-PLcom/android/server/usage/AppTimeLimitController$Lock;-><init>()V
-PLcom/android/server/usage/AppTimeLimitController$Lock;-><init>(Lcom/android/server/usage/AppTimeLimitController$1;)V
-PLcom/android/server/usage/AppTimeLimitController$MyHandler;-><init>(Lcom/android/server/usage/AppTimeLimitController;Landroid/os/Looper;)V
+PLcom/android/server/uri/UriPermissionOwner;->removeUriPermissions(I)V
+PLcom/android/server/uri/UriPermissionOwner;->toString()Ljava/lang/String;
+HSPLcom/android/server/usage/AppTimeLimitController$Lock;-><init>()V
+HSPLcom/android/server/usage/AppTimeLimitController$Lock;-><init>(Lcom/android/server/usage/AppTimeLimitController$1;)V
+HSPLcom/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$1;)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>(Lcom/android/server/usage/AppTimeLimitController$TimeLimitCallbackListener;Landroid/os/Looper;)V
+HSPLcom/android/server/usage/AppTimeLimitController;-><clinit>()V
+HSPLcom/android/server/usage/AppTimeLimitController;-><init>(Lcom/android/server/usage/AppTimeLimitController$TimeLimitCallbackListener;Landroid/os/Looper;)V
PLcom/android/server/usage/AppTimeLimitController;->dump([Ljava/lang/String;Ljava/io/PrintWriter;)V
-PLcom/android/server/usage/AppTimeLimitController;->getAppUsageLimit(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/UsageStatsManagerInternal$AppUsageLimitData;
+HPLcom/android/server/usage/AppTimeLimitController;->getAppUsageLimit(Ljava/lang/String;Landroid/os/UserHandle;)Landroid/app/usage/UsageStatsManagerInternal$AppUsageLimitData;
+PLcom/android/server/usage/AppTimeLimitController;->getOrCreateUserDataLocked(I)Lcom/android/server/usage/AppTimeLimitController$UserData;
+PLcom/android/server/usage/AppTimeLimitController;->getUptimeMillis()J
+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
HPLcom/android/server/usage/IntervalStats$EventTracker;-><init>()V
-PLcom/android/server/usage/IntervalStats$EventTracker;->commitTime(J)V
-PLcom/android/server/usage/IntervalStats$EventTracker;->update(J)V
+HPLcom/android/server/usage/IntervalStats$EventTracker;->commitTime(J)V
+HPLcom/android/server/usage/IntervalStats$EventTracker;->update(J)V
PLcom/android/server/usage/IntervalStats;-><init>()V
-PLcom/android/server/usage/IntervalStats;->addEvent(Landroid/app/usage/UsageEvents$Event;)V
+HPLcom/android/server/usage/IntervalStats;->addEvent(Landroid/app/usage/UsageEvents$Event;)V
+PLcom/android/server/usage/IntervalStats;->commitTime(J)V
HPLcom/android/server/usage/IntervalStats;->deobfuscateData(Lcom/android/server/usage/PackagesTokenData;)Z
HPLcom/android/server/usage/IntervalStats;->deobfuscateEvents(Lcom/android/server/usage/PackagesTokenData;)Z
HPLcom/android/server/usage/IntervalStats;->deobfuscateUsageStats(Lcom/android/server/usage/PackagesTokenData;)Z
@@ -15480,10 +18453,11 @@ HPLcom/android/server/usage/IntervalStats;->getCachedStringRef(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;->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;->update(Ljava/lang/String;Ljava/lang/String;JII)V
+PLcom/android/server/usage/IntervalStats;->updateChooserCounts(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/usage/IntervalStats;->updateConfigurationStats(Landroid/content/res/Configuration;J)V
PLcom/android/server/usage/IntervalStats;->updateKeyguardHidden(J)V
PLcom/android/server/usage/IntervalStats;->updateKeyguardShown(J)V
@@ -15494,38 +18468,41 @@ HPLcom/android/server/usage/PackagesTokenData;->getPackageString(I)Ljava/lang/St
HPLcom/android/server/usage/PackagesTokenData;->getPackageTokenOrAdd(Ljava/lang/String;J)I
HPLcom/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;->removePackage(Ljava/lang/String;J)I
-PLcom/android/server/usage/StorageStatsService$1;-><init>(Lcom/android/server/usage/StorageStatsService;)V
+PLcom/android/server/usage/PackagesTokenData;->removePackage(Ljava/lang/String;J)I
+HSPLcom/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$H;-><init>(Lcom/android/server/usage/StorageStatsService;Landroid/os/Looper;)V
-PLcom/android/server/usage/StorageStatsService$H;->getInitializedStrategy()Lcom/android/server/storage/CacheQuotaStrategy;
-PLcom/android/server/usage/StorageStatsService$H;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/usage/StorageStatsService$H;-><init>(Lcom/android/server/usage/StorageStatsService;Landroid/os/Looper;)V
+HSPLcom/android/server/usage/StorageStatsService$H;->getInitializedStrategy()Lcom/android/server/storage/CacheQuotaStrategy;
+HSPLcom/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;-><clinit>()V
-PLcom/android/server/usage/StorageStatsService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/usage/StorageStatsService;->access$100(Lcom/android/server/usage/StorageStatsService;)Landroid/content/Context;
-PLcom/android/server/usage/StorageStatsService;->access$200(Lcom/android/server/usage/StorageStatsService;)Lcom/android/server/pm/Installer;
-PLcom/android/server/usage/StorageStatsService;->access$300(Lcom/android/server/usage/StorageStatsService;)Landroid/util/ArrayMap;
-PLcom/android/server/usage/StorageStatsService;->enforcePermission(ILjava/lang/String;)V
+HSPLcom/android/server/usage/StorageStatsService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/usage/StorageStatsService$Lifecycle;->onStart()V
+HSPLcom/android/server/usage/StorageStatsService;-><clinit>()V
+HSPLcom/android/server/usage/StorageStatsService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/usage/StorageStatsService;->access$000(Lcom/android/server/usage/StorageStatsService;)V
+HSPLcom/android/server/usage/StorageStatsService;->access$100(Lcom/android/server/usage/StorageStatsService;)Landroid/content/Context;
+HSPLcom/android/server/usage/StorageStatsService;->access$200(Lcom/android/server/usage/StorageStatsService;)Lcom/android/server/pm/Installer;
+HSPLcom/android/server/usage/StorageStatsService;->access$300(Lcom/android/server/usage/StorageStatsService;)Landroid/util/ArrayMap;
+HPLcom/android/server/usage/StorageStatsService;->enforcePermission(ILjava/lang/String;)V
HPLcom/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;->getFreeBytes(Ljava/lang/String;Ljava/lang/String;)J
PLcom/android/server/usage/StorageStatsService;->getTotalBytes(Ljava/lang/String;Ljava/lang/String;)J
-PLcom/android/server/usage/StorageStatsService;->invalidateMounts()V
-PLcom/android/server/usage/StorageStatsService;->isCacheQuotaCalculationsEnabled(Landroid/content/ContentResolver;)Z
+HSPLcom/android/server/usage/StorageStatsService;->invalidateMounts()V
+HSPLcom/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;->notifySignificantDelta()V
-PLcom/android/server/usage/StorageStatsService;->queryStatsForPackage(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
-PLcom/android/server/usage/StorageStatsService;->queryStatsForUid(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
+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;
+HPLcom/android/server/usage/StorageStatsService;->queryStatsForUid(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
PLcom/android/server/usage/StorageStatsService;->queryStatsForUser(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
PLcom/android/server/usage/UnixCalendar;-><init>(J)V
PLcom/android/server/usage/UnixCalendar;->addDays(I)V
PLcom/android/server/usage/UnixCalendar;->addMonths(I)V
PLcom/android/server/usage/UnixCalendar;->addWeeks(I)V
PLcom/android/server/usage/UnixCalendar;->addYears(I)V
-PLcom/android/server/usage/UnixCalendar;->getTimeInMillis()J
+HPLcom/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/UsageStatsDatabase$1;->accept(Ljava/io/File;Ljava/lang/String;)Z
@@ -15534,6 +18511,8 @@ 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;->checkinDailyFiles(Lcom/android/server/usage/UsageStatsDatabase$CheckinAction;)Z
+PLcom/android/server/usage/UsageStatsDatabase;->dump(Lcom/android/internal/util/IndentingPrintWriter;Z)V
+HPLcom/android/server/usage/UsageStatsDatabase;->dumpMappings(Lcom/android/internal/util/IndentingPrintWriter;)V
HPLcom/android/server/usage/UsageStatsDatabase;->filterStats(Lcom/android/server/usage/IntervalStats;)V
PLcom/android/server/usage/UsageStatsDatabase;->findBestFitBucket(JJ)I
PLcom/android/server/usage/UsageStatsDatabase;->getBackupPayload(Ljava/lang/String;)[B
@@ -15543,14 +18522,14 @@ PLcom/android/server/usage/UsageStatsDatabase;->getLatestUsageStats(I)Lcom/andro
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
+HPLcom/android/server/usage/UsageStatsDatabase;->obfuscateCurrentStats([Lcom/android/server/usage/IntervalStats;)V
HPLcom/android/server/usage/UsageStatsDatabase;->parseBeginTime(Landroid/util/AtomicFile;)J
HPLcom/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
+HPLcom/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
-HPLcom/android/server/usage/UsageStatsDatabase;->queryUsageStats(IJJLcom/android/server/usage/UsageStatsDatabase$StatCombiner;)Ljava/util/List;
+PLcom/android/server/usage/UsageStatsDatabase;->queryUsageStats(IJJLcom/android/server/usage/UsageStatsDatabase$StatCombiner;)Ljava/util/List;
HPLcom/android/server/usage/UsageStatsDatabase;->readLocked(Landroid/util/AtomicFile;Lcom/android/server/usage/IntervalStats;)V
HPLcom/android/server/usage/UsageStatsDatabase;->readLocked(Landroid/util/AtomicFile;Lcom/android/server/usage/IntervalStats;ILcom/android/server/usage/PackagesTokenData;)Z
HPLcom/android/server/usage/UsageStatsDatabase;->readLocked(Ljava/io/InputStream;Lcom/android/server/usage/IntervalStats;ILcom/android/server/usage/PackagesTokenData;)Z
@@ -15559,10 +18538,10 @@ PLcom/android/server/usage/UsageStatsDatabase;->sanitizeIntervalStatsForBackup(L
PLcom/android/server/usage/UsageStatsDatabase;->serializeIntervalStats(Lcom/android/server/usage/IntervalStats;I)[B
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
+HPLcom/android/server/usage/UsageStatsDatabase;->writeLocked(Landroid/util/AtomicFile;Lcom/android/server/usage/IntervalStats;)V
+HPLcom/android/server/usage/UsageStatsDatabase;->writeLocked(Landroid/util/AtomicFile;Lcom/android/server/usage/IntervalStats;ILcom/android/server/usage/PackagesTokenData;)V
+HPLcom/android/server/usage/UsageStatsDatabase;->writeLocked(Ljava/io/OutputStream;Lcom/android/server/usage/IntervalStats;ILcom/android/server/usage/PackagesTokenData;)V
+HPLcom/android/server/usage/UsageStatsDatabase;->writeMappingsLocked()V
PLcom/android/server/usage/UsageStatsProto;-><clinit>()V
HPLcom/android/server/usage/UsageStatsProto;->write(Ljava/io/OutputStream;Lcom/android/server/usage/IntervalStats;)V
HPLcom/android/server/usage/UsageStatsProto;->writeChooserCounts(Landroid/util/proto/ProtoOutputStream;Landroid/app/usage/UsageStats;)V
@@ -15583,298 +18562,431 @@ HPLcom/android/server/usage/UsageStatsProtoV2;->write(Ljava/io/OutputStream;Lcom
HPLcom/android/server/usage/UsageStatsProtoV2;->writeChooserCounts(Landroid/util/proto/ProtoOutputStream;Landroid/app/usage/UsageStats;)V
HPLcom/android/server/usage/UsageStatsProtoV2;->writeConfigStats(Landroid/util/proto/ProtoOutputStream;JLandroid/app/usage/ConfigurationStats;Z)V
PLcom/android/server/usage/UsageStatsProtoV2;->writeCountAndTime(Landroid/util/proto/ProtoOutputStream;JIJ)V
+HPLcom/android/server/usage/UsageStatsProtoV2;->writeCountsForAction(Landroid/util/proto/ProtoOutputStream;Landroid/util/SparseIntArray;)V
HPLcom/android/server/usage/UsageStatsProtoV2;->writeEvent(Landroid/util/proto/ProtoOutputStream;JLandroid/app/usage/UsageEvents$Event;)V
HPLcom/android/server/usage/UsageStatsProtoV2;->writeObfuscatedData(Ljava/io/OutputStream;Lcom/android/server/usage/PackagesTokenData;)V
HPLcom/android/server/usage/UsageStatsProtoV2;->writeUsageStats(Landroid/util/proto/ProtoOutputStream;JLandroid/app/usage/UsageStats;)V
-PLcom/android/server/usage/UsageStatsService$1;-><init>(Lcom/android/server/usage/UsageStatsService;)V
+HSPLcom/android/server/usage/UsageStatsService$1;-><init>(Lcom/android/server/usage/UsageStatsService;)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
+HSPLcom/android/server/usage/UsageStatsService$2;-><init>(Lcom/android/server/usage/UsageStatsService;)V
+HSPLcom/android/server/usage/UsageStatsService$3;-><init>(Lcom/android/server/usage/UsageStatsService;)V
+HSPLcom/android/server/usage/UsageStatsService$3;->onUidGone(IZ)V
+HSPLcom/android/server/usage/UsageStatsService$3;->onUidStateChanged(IIJI)V
PLcom/android/server/usage/UsageStatsService$ActivityData;-><init>(Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/usage/UsageStatsService$ActivityData;-><init>(Ljava/lang/String;Ljava/lang/String;Lcom/android/server/usage/UsageStatsService$1;)V
PLcom/android/server/usage/UsageStatsService$ActivityData;->access$600(Lcom/android/server/usage/UsageStatsService$ActivityData;)Ljava/lang/String;
PLcom/android/server/usage/UsageStatsService$ActivityData;->access$700(Lcom/android/server/usage/UsageStatsService$ActivityData;)Ljava/lang/String;
-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$1;)V
+HSPLcom/android/server/usage/UsageStatsService$BinderService;-><init>(Lcom/android/server/usage/UsageStatsService;)V
+HSPLcom/android/server/usage/UsageStatsService$BinderService;-><init>(Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService$1;)V
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;->getAppStandbyBuckets(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
PLcom/android/server/usage/UsageStatsService$BinderService;->getUsageSource()I
PLcom/android/server/usage/UsageStatsService$BinderService;->hasObserverPermission()Z
-PLcom/android/server/usage/UsageStatsService$BinderService;->hasPermission(Ljava/lang/String;)Z
+HPLcom/android/server/usage/UsageStatsService$BinderService;->hasPermission(Ljava/lang/String;)Z
HPLcom/android/server/usage/UsageStatsService$BinderService;->isAppInactive(Ljava/lang/String;I)Z
PLcom/android/server/usage/UsageStatsService$BinderService;->queryEvents(JJLjava/lang/String;)Landroid/app/usage/UsageEvents;
PLcom/android/server/usage/UsageStatsService$BinderService;->queryUsageStats(IJJLjava/lang/String;)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/usage/UsageStatsService$BinderService;->reportChooserSelection(Ljava/lang/String;ILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/usage/UsageStatsService$BinderService;->setAppStandbyBuckets(Landroid/content/pm/ParceledListSlice;I)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
-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$1;)V
-HPLcom/android/server/usage/UsageStatsService$LocalService;->getAppStandbyBucket(Ljava/lang/String;IJ)I
+HSPLcom/android/server/usage/UsageStatsService$H;-><init>(Lcom/android/server/usage/UsageStatsService;Landroid/os/Looper;)V
+HSPLcom/android/server/usage/UsageStatsService$H;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/usage/UsageStatsService$LocalService;-><init>(Lcom/android/server/usage/UsageStatsService;)V
+HSPLcom/android/server/usage/UsageStatsService$LocalService;-><init>(Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService$1;)V
+HSPLcom/android/server/usage/UsageStatsService$LocalService;->getAppStandbyBucket(Ljava/lang/String;IJ)I
PLcom/android/server/usage/UsageStatsService$LocalService;->getBackupPayload(ILjava/lang/String;)[B
-PLcom/android/server/usage/UsageStatsService$LocalService;->getIdleUidsForUser(I)[I
+HSPLcom/android/server/usage/UsageStatsService$LocalService;->getIdleUidsForUser(I)[I
PLcom/android/server/usage/UsageStatsService$LocalService;->getTimeSinceLastJobRun(Ljava/lang/String;I)J
-PLcom/android/server/usage/UsageStatsService$LocalService;->isAppIdle(Ljava/lang/String;II)Z
-PLcom/android/server/usage/UsageStatsService$LocalService;->onAdminDataAvailable()V
+HSPLcom/android/server/usage/UsageStatsService$LocalService;->isAppIdle(Ljava/lang/String;II)Z
+HSPLcom/android/server/usage/UsageStatsService$LocalService;->onAdminDataAvailable()V
PLcom/android/server/usage/UsageStatsService$LocalService;->queryUsageStatsForUser(IIJJZ)Ljava/util/List;
-PLcom/android/server/usage/UsageStatsService$LocalService;->reportConfigurationChange(Landroid/content/res/Configuration;I)V
-PLcom/android/server/usage/UsageStatsService$LocalService;->reportContentProviderUsage(Ljava/lang/String;Ljava/lang/String;I)V
+HSPLcom/android/server/usage/UsageStatsService$LocalService;->reportConfigurationChange(Landroid/content/res/Configuration;I)V
+HSPLcom/android/server/usage/UsageStatsService$LocalService;->reportContentProviderUsage(Ljava/lang/String;Ljava/lang/String;I)V
PLcom/android/server/usage/UsageStatsService$LocalService;->reportEvent(Landroid/content/ComponentName;IIILandroid/content/ComponentName;)V
-PLcom/android/server/usage/UsageStatsService$LocalService;->reportEvent(Ljava/lang/String;II)V
+HSPLcom/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;->reportSyncScheduled(Ljava/lang/String;IZ)V
-PLcom/android/server/usage/UsageStatsService$LocalService;->setActiveAdminApps(Ljava/util/Set;I)V
-PLcom/android/server/usage/UsageStatsService$LocalService;->setLastJobRunTime(Ljava/lang/String;IJ)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$1;)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$1;)V
+HSPLcom/android/server/usage/UsageStatsService$LocalService;->setActiveAdminApps(Ljava/util/Set;I)V
+HPLcom/android/server/usage/UsageStatsService$LocalService;->setLastJobRunTime(Ljava/lang/String;IJ)V
+HSPLcom/android/server/usage/UsageStatsService$MyPackageMonitor;-><init>(Lcom/android/server/usage/UsageStatsService;)V
+HSPLcom/android/server/usage/UsageStatsService$MyPackageMonitor;-><init>(Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService$1;)V
+HSPLcom/android/server/usage/UsageStatsService$UserActionsReceiver;-><init>(Lcom/android/server/usage/UsageStatsService;)V
+HSPLcom/android/server/usage/UsageStatsService$UserActionsReceiver;-><init>(Lcom/android/server/usage/UsageStatsService;Lcom/android/server/usage/UsageStatsService$1;)V
PLcom/android/server/usage/UsageStatsService$UserActionsReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/usage/UsageStatsService;-><clinit>()V
-PLcom/android/server/usage/UsageStatsService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/usage/UsageStatsService;->access$100(Lcom/android/server/usage/UsageStatsService;ILandroid/app/usage/UsageEvents$Event;)V
-PLcom/android/server/usage/UsageStatsService;->access$1000(Lcom/android/server/usage/UsageStatsService;)Landroid/util/SparseIntArray;
-PLcom/android/server/usage/UsageStatsService;->access$1100()Ljava/io/File;
+HSPLcom/android/server/usage/UsageStatsService;-><clinit>()V
+HSPLcom/android/server/usage/UsageStatsService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/usage/UsageStatsService;->access$100(Lcom/android/server/usage/UsageStatsService;ILandroid/app/usage/UsageEvents$Event;)V
+HSPLcom/android/server/usage/UsageStatsService;->access$1000(Lcom/android/server/usage/UsageStatsService;)Landroid/util/SparseIntArray;
+HSPLcom/android/server/usage/UsageStatsService;->access$1100()Ljava/io/File;
+PLcom/android/server/usage/UsageStatsService;->access$1300(Lcom/android/server/usage/UsageStatsService;II)Z
+PLcom/android/server/usage/UsageStatsService;->access$800(Lcom/android/server/usage/UsageStatsService;I)V
PLcom/android/server/usage/UsageStatsService;->deleteLegacyDir(I)V
PLcom/android/server/usage/UsageStatsService;->deleteRecursively(Ljava/io/File;)V
PLcom/android/server/usage/UsageStatsService;->dump([Ljava/lang/String;Ljava/io/PrintWriter;)V
PLcom/android/server/usage/UsageStatsService;->flushToDisk()V
PLcom/android/server/usage/UsageStatsService;->flushToDiskLocked()V
-PLcom/android/server/usage/UsageStatsService;->getDpmInternal()Landroid/app/admin/DevicePolicyManagerInternal;
+HSPLcom/android/server/usage/UsageStatsService;->getDpmInternal()Landroid/app/admin/DevicePolicyManagerInternal;
HPLcom/android/server/usage/UsageStatsService;->getInstalledPackages(I)Ljava/util/HashMap;
HPLcom/android/server/usage/UsageStatsService;->getUserUsageStatsServiceLocked(I)Lcom/android/server/usage/UserUsageStatsService;
PLcom/android/server/usage/UsageStatsService;->initializeUserUsageStatsServiceLocked(IJLjava/util/HashMap;)V
PLcom/android/server/usage/UsageStatsService;->loadPendingEventsLocked(ILjava/util/LinkedList;)V
PLcom/android/server/usage/UsageStatsService;->migrateStatsToSystemCeIfNeededLocked(I)V
-PLcom/android/server/usage/UsageStatsService;->onBootPhase(I)V
-PLcom/android/server/usage/UsageStatsService;->onStart()V
+HSPLcom/android/server/usage/UsageStatsService;->onBootPhase(I)V
+PLcom/android/server/usage/UsageStatsService;->onNewUpdate(I)V
+HSPLcom/android/server/usage/UsageStatsService;->onStart()V
PLcom/android/server/usage/UsageStatsService;->onStartUser(Landroid/content/pm/UserInfo;)V
+PLcom/android/server/usage/UsageStatsService;->onStatsUpdated()V
PLcom/android/server/usage/UsageStatsService;->onUnlockUser(Landroid/content/pm/UserInfo;)V
-PLcom/android/server/usage/UsageStatsService;->onUserUnlocked(I)V
+HPLcom/android/server/usage/UsageStatsService;->onUserUnlocked(I)V
PLcom/android/server/usage/UsageStatsService;->queryEvents(IJJZ)Landroid/app/usage/UsageEvents;
HPLcom/android/server/usage/UsageStatsService;->queryUsageStats(IIJJZ)Ljava/util/List;
-PLcom/android/server/usage/UsageStatsService;->readUsageSourceSetting()V
-PLcom/android/server/usage/UsageStatsService;->reportEvent(Landroid/app/usage/UsageEvents$Event;I)V
-PLcom/android/server/usage/UsageStatsService;->reportEventOrAddToQueue(ILandroid/app/usage/UsageEvents$Event;)V
+HSPLcom/android/server/usage/UsageStatsService;->readUsageSourceSetting()V
+HPLcom/android/server/usage/UsageStatsService;->reportEvent(Landroid/app/usage/UsageEvents$Event;I)V
+HSPLcom/android/server/usage/UsageStatsService;->reportEventOrAddToQueue(ILandroid/app/usage/UsageEvents$Event;)V
PLcom/android/server/usage/UsageStatsService;->reportEventToAllUserId(Landroid/app/usage/UsageEvents$Event;)V
+PLcom/android/server/usage/UsageStatsService;->shouldObfuscateInstantAppsForCaller(II)Z
PLcom/android/server/usage/UserUsageStatsService$1;-><init>()V
HPLcom/android/server/usage/UserUsageStatsService$1;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)V
PLcom/android/server/usage/UserUsageStatsService$2;-><init>()V
PLcom/android/server/usage/UserUsageStatsService$3;-><init>()V
HPLcom/android/server/usage/UserUsageStatsService$4;-><init>(Lcom/android/server/usage/UserUsageStatsService;JJZLandroid/util/ArraySet;)V
HPLcom/android/server/usage/UserUsageStatsService$4;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)V
-PLcom/android/server/usage/UserUsageStatsService$5;-><init>(Lcom/android/server/usage/UserUsageStatsService;Lcom/android/internal/util/IndentingPrintWriter;)V
+HPLcom/android/server/usage/UserUsageStatsService$5;-><init>(Lcom/android/server/usage/UserUsageStatsService;Lcom/android/internal/util/IndentingPrintWriter;)V
+PLcom/android/server/usage/UserUsageStatsService$5;->checkin(Lcom/android/server/usage/IntervalStats;)Z
+PLcom/android/server/usage/UserUsageStatsService$6;-><init>(Lcom/android/server/usage/UserUsageStatsService;JJLjava/lang/String;)V
+PLcom/android/server/usage/UserUsageStatsService$6;->combine(Lcom/android/server/usage/IntervalStats;ZLjava/util/List;)V
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
HPLcom/android/server/usage/UserUsageStatsService;->checkAndGetTimeLocked()J
PLcom/android/server/usage/UserUsageStatsService;->checkin(Lcom/android/internal/util/IndentingPrintWriter;)V
HPLcom/android/server/usage/UserUsageStatsService;->convertToSystemTimeLocked(Landroid/app/usage/UsageEvents$Event;)V
+PLcom/android/server/usage/UserUsageStatsService;->dump(Lcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;Z)V
+HPLcom/android/server/usage/UserUsageStatsService;->eventToString(I)Ljava/lang/String;
+HPLcom/android/server/usage/UserUsageStatsService;->formatDateTime(JZ)Ljava/lang/String;
+HPLcom/android/server/usage/UserUsageStatsService;->formatElapsedTime(JZ)Ljava/lang/String;
PLcom/android/server/usage/UserUsageStatsService;->getBackupPayload(Ljava/lang/String;)[B
PLcom/android/server/usage/UserUsageStatsService;->init(JLjava/util/HashMap;)V
-PLcom/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;->notifyNewUpdate()V
+HPLcom/android/server/usage/UserUsageStatsService;->notifyStatsChanged()V
PLcom/android/server/usage/UserUsageStatsService;->persistActiveStats()V
+HPLcom/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
+HPLcom/android/server/usage/UserUsageStatsService;->printIntervalStats(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/usage/IntervalStats;ZZLjava/lang/String;)V
+PLcom/android/server/usage/UserUsageStatsService;->printLast24HrEvents(Lcom/android/internal/util/IndentingPrintWriter;ZLjava/lang/String;)V
PLcom/android/server/usage/UserUsageStatsService;->queryEvents(JJZ)Landroid/app/usage/UsageEvents;
PLcom/android/server/usage/UserUsageStatsService;->queryStats(IJJLcom/android/server/usage/UsageStatsDatabase$StatCombiner;)Ljava/util/List;
PLcom/android/server/usage/UserUsageStatsService;->queryUsageStats(IJJ)Ljava/util/List;
PLcom/android/server/usage/UserUsageStatsService;->readPackageMappingsLocked(Ljava/util/HashMap;)V
HPLcom/android/server/usage/UserUsageStatsService;->reportEvent(Landroid/app/usage/UsageEvents$Event;)V
+HPLcom/android/server/usage/UserUsageStatsService;->rolloverStats(J)V
HPLcom/android/server/usage/UserUsageStatsService;->updatePackageMappingsLocked(Ljava/util/HashMap;)V
PLcom/android/server/usage/UserUsageStatsService;->updateRolloverDeadline()V
HPLcom/android/server/usage/UserUsageStatsService;->validRange(JJJ)Z
-PLcom/android/server/usb/-$$Lambda$UsbHostManager$XT3F5aQci4H6VWSBYBQQNSzpnvs;-><init>(Lcom/android/server/usb/UsbHostManager;)V
-PLcom/android/server/usb/-$$Lambda$UsbHostManager$XT3F5aQci4H6VWSBYBQQNSzpnvs;->run()V
-PLcom/android/server/usb/-$$Lambda$UsbPortManager$FUqGOOupcl6RrRkZBk-BnrRQyPI;-><init>(Lcom/android/server/usb/UsbPortManager;Landroid/content/Intent;)V
-PLcom/android/server/usb/-$$Lambda$UsbPortManager$FUqGOOupcl6RrRkZBk-BnrRQyPI;->run()V
-PLcom/android/server/usb/-$$Lambda$UsbProfileGroupSettingsManager$IQKTzU0q3lyaW9nLL_sbxJPW8ME;-><init>(Lcom/android/server/usb/UsbProfileGroupSettingsManager;)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$1;)V
-PLcom/android/server/usb/MtpNotificationManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/MtpNotificationManager$OnOpenInAppListener;)V
-PLcom/android/server/usb/UsbAlsaManager$BlackListEntry;-><init>(III)V
-PLcom/android/server/usb/UsbAlsaManager;-><clinit>()V
-PLcom/android/server/usb/UsbAlsaManager;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/usb/-$$Lambda$UsbHostManager$XT3F5aQci4H6VWSBYBQQNSzpnvs;-><init>(Lcom/android/server/usb/UsbHostManager;)V
+HSPLcom/android/server/usb/-$$Lambda$UsbHostManager$XT3F5aQci4H6VWSBYBQQNSzpnvs;->run()V
+HSPLcom/android/server/usb/-$$Lambda$UsbPortManager$FUqGOOupcl6RrRkZBk-BnrRQyPI;-><init>(Lcom/android/server/usb/UsbPortManager;Landroid/content/Intent;)V
+HSPLcom/android/server/usb/-$$Lambda$UsbPortManager$FUqGOOupcl6RrRkZBk-BnrRQyPI;->run()V
+HSPLcom/android/server/usb/-$$Lambda$UsbProfileGroupSettingsManager$IQKTzU0q3lyaW9nLL_sbxJPW8ME;-><init>(Lcom/android/server/usb/UsbProfileGroupSettingsManager;)V
+HSPLcom/android/server/usb/MtpNotificationManager$Receiver;-><init>(Lcom/android/server/usb/MtpNotificationManager;)V
+HSPLcom/android/server/usb/MtpNotificationManager$Receiver;-><init>(Lcom/android/server/usb/MtpNotificationManager;Lcom/android/server/usb/MtpNotificationManager$1;)V
+HSPLcom/android/server/usb/MtpNotificationManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/MtpNotificationManager$OnOpenInAppListener;)V
+PLcom/android/server/usb/MtpNotificationManager;->isMtpDevice(Landroid/hardware/usb/UsbDevice;)Z
+HSPLcom/android/server/usb/UsbAlsaManager$BlackListEntry;-><init>(III)V
+HSPLcom/android/server/usb/UsbAlsaManager;-><clinit>()V
+HSPLcom/android/server/usb/UsbAlsaManager;-><init>(Landroid/content/Context;)V
+PLcom/android/server/usb/UsbAlsaManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+PLcom/android/server/usb/UsbAlsaManager;->getAlsaDeviceListIndexFor(Ljava/lang/String;)I
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
+HSPLcom/android/server/usb/UsbAlsaManager;->systemReady()V
+PLcom/android/server/usb/UsbAlsaManager;->usbDeviceAdded(Ljava/lang/String;Landroid/hardware/usb/UsbDevice;Lcom/android/server/usb/descriptors/UsbDescriptorParser;)V
+PLcom/android/server/usb/UsbAlsaManager;->usbDeviceRemoved(Ljava/lang/String;)V
+HSPLcom/android/server/usb/UsbDeviceManager$1;-><init>(Lcom/android/server/usb/UsbDeviceManager;)V
PLcom/android/server/usb/UsbDeviceManager$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/usb/UsbDeviceManager$2;-><init>(Lcom/android/server/usb/UsbDeviceManager;)V
+HSPLcom/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/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;->finishBoot()V
+HSPLcom/android/server/usb/UsbDeviceManager$3;-><init>(Lcom/android/server/usb/UsbDeviceManager;)V
+PLcom/android/server/usb/UsbDeviceManager$3;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/usb/UsbDeviceManager$4;-><init>(Lcom/android/server/usb/UsbDeviceManager;)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler$AdbTransport;-><init>(Lcom/android/server/usb/UsbDeviceManager$UsbHandler;)V
+HSPLcom/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;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->dumpFunctions(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JJ)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->finishBoot()V
PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getAppliedFunctions(J)J
PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getChargingFunctions()J
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->getPinnedSharedPrefs(Landroid/content/Context;)Landroid/content/SharedPreferences;
+HSPLcom/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;
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/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
+HSPLcom/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(ILjava/lang/Object;Z)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessage(IZ)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessage(ILjava/lang/Object;Z)V
+HSPLcom/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
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateAdbNotification(Z)V
PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateHostState(Landroid/hardware/usb/UsbPort;Landroid/hardware/usb/UsbPortStatus;)V
PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateMidiFunction()V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateState(Ljava/lang/String;)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateState(Ljava/lang/String;)V
PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbFunctions()V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbNotification(Z)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbNotification(Z)V
PLcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbStateBroadcastIfNeeded(J)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$ServiceNotification;-><init>(Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$ServiceNotification;->onRegistration(Ljava/lang/String;Ljava/lang/String;Z)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetCallback;-><init>(Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetCallback;->getCurrentUsbFunctionsCb(JI)V
-PLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetDeathRecipient;-><init>(Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;)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
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$ServiceNotification;-><init>(Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$ServiceNotification;->onRegistration(Ljava/lang/String;Ljava/lang/String;Z)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetCallback;-><init>(Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetCallback;->getCurrentUsbFunctionsCb(JI)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetDeathRecipient;-><init>(Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;-><init>(Landroid/os/Looper;Landroid/content/Context;Lcom/android/server/usb/UsbDeviceManager;Lcom/android/server/usb/UsbAlsaManager;Lcom/android/server/usb/UsbPermissionManager;)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;->setEnabledFunctions(JZ)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$1;)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbUEventObserver;-><init>(Lcom/android/server/usb/UsbDeviceManager;)V
+HSPLcom/android/server/usb/UsbDeviceManager$UsbUEventObserver;-><init>(Lcom/android/server/usb/UsbDeviceManager;Lcom/android/server/usb/UsbDeviceManager$1;)V
PLcom/android/server/usb/UsbDeviceManager$UsbUEventObserver;->onUEvent(Landroid/os/UEventObserver$UEvent;)V
-PLcom/android/server/usb/UsbDeviceManager;-><clinit>()V
-PLcom/android/server/usb/UsbDeviceManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbAlsaManager;Lcom/android/server/usb/UsbSettingsManager;Lcom/android/server/usb/UsbPermissionManager;)V
+HSPLcom/android/server/usb/UsbDeviceManager;-><clinit>()V
+HSPLcom/android/server/usb/UsbDeviceManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbAlsaManager;Lcom/android/server/usb/UsbSettingsManager;Lcom/android/server/usb/UsbPermissionManager;)V
PLcom/android/server/usb/UsbDeviceManager;->access$000(Lcom/android/server/usb/UsbDeviceManager;)Lcom/android/server/usb/UsbDeviceManager$UsbHandler;
-PLcom/android/server/usb/UsbDeviceManager;->access$300()Ljava/lang/String;
+HSPLcom/android/server/usb/UsbDeviceManager;->access$300()Ljava/lang/String;
PLcom/android/server/usb/UsbDeviceManager;->bootCompleted()V
-PLcom/android/server/usb/UsbDeviceManager;->initRndisAddress()V
+PLcom/android/server/usb/UsbDeviceManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+HSPLcom/android/server/usb/UsbDeviceManager;->initRndisAddress()V
PLcom/android/server/usb/UsbDeviceManager;->onAwakeStateChanged(Z)V
PLcom/android/server/usb/UsbDeviceManager;->onKeyguardStateChanged(Z)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
+PLcom/android/server/usb/UsbDeviceManager;->onUnlockUser(I)V
+HSPLcom/android/server/usb/UsbDeviceManager;->setCurrentUser(ILcom/android/server/usb/UsbProfileGroupSettingsManager;)V
+HSPLcom/android/server/usb/UsbDeviceManager;->systemReady()V
+HSPLcom/android/server/usb/UsbHandlerManager;-><clinit>()V
+HSPLcom/android/server/usb/UsbHandlerManager;-><init>(Landroid/content/Context;)V
+PLcom/android/server/usb/UsbHostManager$ConnectionRecord;-><init>(Lcom/android/server/usb/UsbHostManager;Ljava/lang/String;I[B)V
HSPLcom/android/server/usb/UsbHostManager;-><clinit>()V
-PLcom/android/server/usb/UsbHostManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbAlsaManager;Lcom/android/server/usb/UsbPermissionManager;)V
-PLcom/android/server/usb/UsbHostManager;->lambda$XT3F5aQci4H6VWSBYBQQNSzpnvs(Lcom/android/server/usb/UsbHostManager;)V
-PLcom/android/server/usb/UsbHostManager;->setCurrentUserSettings(Lcom/android/server/usb/UsbProfileGroupSettingsManager;)V
-PLcom/android/server/usb/UsbHostManager;->setUsbDeviceConnectionHandler(Landroid/content/ComponentName;)V
-PLcom/android/server/usb/UsbHostManager;->systemReady()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/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$DeathRecipient;-><init>(Lcom/android/server/usb/UsbPortManager;Lcom/android/internal/util/IndentingPrintWriter;)V
-PLcom/android/server/usb/UsbPortManager$HALCallback;-><init>(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/usb/UsbPortManager;)V
-PLcom/android/server/usb/UsbPortManager$HALCallback;->notifyPortStatusChange_1_1(Ljava/util/ArrayList;I)V
-PLcom/android/server/usb/UsbPortManager$PortInfo;-><init>(Landroid/hardware/usb/UsbManager;Ljava/lang/String;IIZZ)V
-PLcom/android/server/usb/UsbPortManager$PortInfo;->setStatus(IZIZIZIII)Z
-PLcom/android/server/usb/UsbPortManager$PortInfo;->toString()Ljava/lang/String;
-PLcom/android/server/usb/UsbPortManager$RawPortInfo$1;-><init>()V
-PLcom/android/server/usb/UsbPortManager$RawPortInfo;-><clinit>()V
-PLcom/android/server/usb/UsbPortManager$RawPortInfo;-><init>(Ljava/lang/String;IIIZIZIZZIZI)V
-PLcom/android/server/usb/UsbPortManager$ServiceNotification;-><init>(Lcom/android/server/usb/UsbPortManager;)V
-PLcom/android/server/usb/UsbPortManager$ServiceNotification;->onRegistration(Ljava/lang/String;Ljava/lang/String;Z)V
-PLcom/android/server/usb/UsbPortManager;-><clinit>()V
-PLcom/android/server/usb/UsbPortManager;-><init>(Landroid/content/Context;)V
-PLcom/android/server/usb/UsbPortManager;->access$000(Lcom/android/server/usb/UsbPortManager;)Z
-PLcom/android/server/usb/UsbPortManager;->access$100(ILcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;)V
-PLcom/android/server/usb/UsbPortManager;->access$200(Lcom/android/server/usb/UsbPortManager;)Landroid/os/Handler;
-PLcom/android/server/usb/UsbPortManager;->access$300(Lcom/android/server/usb/UsbPortManager;)Ljava/lang/Object;
-PLcom/android/server/usb/UsbPortManager;->access$500(Lcom/android/server/usb/UsbPortManager;Lcom/android/internal/util/IndentingPrintWriter;)V
-PLcom/android/server/usb/UsbPortManager;->access$600(Lcom/android/server/usb/UsbPortManager;Lcom/android/internal/util/IndentingPrintWriter;Ljava/util/ArrayList;)V
-PLcom/android/server/usb/UsbPortManager;->access$702(Lcom/android/server/usb/UsbPortManager;Landroid/app/NotificationManager;)Landroid/app/NotificationManager;
-PLcom/android/server/usb/UsbPortManager;->access$800(Lcom/android/server/usb/UsbPortManager;)Landroid/content/Context;
-PLcom/android/server/usb/UsbPortManager;->addOrUpdatePortLocked(Ljava/lang/String;IIIZIZIZZIZILcom/android/internal/util/IndentingPrintWriter;)V
-PLcom/android/server/usb/UsbPortManager;->connectToProxy(Lcom/android/internal/util/IndentingPrintWriter;)V
-PLcom/android/server/usb/UsbPortManager;->convertContaminantDetectionStatusToProto(I)I
+HSPLcom/android/server/usb/UsbHostManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbAlsaManager;Lcom/android/server/usb/UsbPermissionManager;)V
+PLcom/android/server/usb/UsbHostManager;->addConnectionRecord(Ljava/lang/String;I[B)V
+PLcom/android/server/usb/UsbHostManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+PLcom/android/server/usb/UsbHostManager;->getCurrentUserSettings()Lcom/android/server/usb/UsbProfileGroupSettingsManager;
+PLcom/android/server/usb/UsbHostManager;->getDeviceList(Landroid/os/Bundle;)V
+PLcom/android/server/usb/UsbHostManager;->getUsbDeviceConnectionHandler()Landroid/content/ComponentName;
+HSPLcom/android/server/usb/UsbHostManager;->lambda$XT3F5aQci4H6VWSBYBQQNSzpnvs(Lcom/android/server/usb/UsbHostManager;)V
+PLcom/android/server/usb/UsbHostManager;->logUsbDevice(Lcom/android/server/usb/descriptors/UsbDescriptorParser;)V
+HSPLcom/android/server/usb/UsbHostManager;->setCurrentUserSettings(Lcom/android/server/usb/UsbProfileGroupSettingsManager;)V
+HSPLcom/android/server/usb/UsbHostManager;->setUsbDeviceConnectionHandler(Landroid/content/ComponentName;)V
+HSPLcom/android/server/usb/UsbHostManager;->systemReady()V
+PLcom/android/server/usb/UsbHostManager;->usbDeviceAdded(Ljava/lang/String;II[B)Z
+PLcom/android/server/usb/UsbHostManager;->usbDeviceRemoved(Ljava/lang/String;)V
+HSPLcom/android/server/usb/UsbPermissionManager;-><clinit>()V
+HSPLcom/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;Ljava/lang/String;J)V
+PLcom/android/server/usb/UsbPermissionManager;->getPermissionsForUser(I)Lcom/android/server/usb/UsbUserPermissionManager;
+PLcom/android/server/usb/UsbPermissionManager;->usbDeviceRemoved(Landroid/hardware/usb/UsbDevice;)V
+HSPLcom/android/server/usb/UsbPortManager$1;-><init>(Lcom/android/server/usb/UsbPortManager;Landroid/os/Looper;)V
+HSPLcom/android/server/usb/UsbPortManager$1;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/usb/UsbPortManager$DeathRecipient;-><init>(Lcom/android/server/usb/UsbPortManager;Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/usb/UsbPortManager$HALCallback;-><init>(Lcom/android/internal/util/IndentingPrintWriter;Lcom/android/server/usb/UsbPortManager;)V
+HSPLcom/android/server/usb/UsbPortManager$HALCallback;->notifyPortStatusChange_1_2(Ljava/util/ArrayList;I)V
+HSPLcom/android/server/usb/UsbPortManager$PortInfo;-><init>(Landroid/hardware/usb/UsbManager;Ljava/lang/String;IIZZ)V
+PLcom/android/server/usb/UsbPortManager$PortInfo;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+HSPLcom/android/server/usb/UsbPortManager$PortInfo;->setStatus(IZIZIZIII)Z
+HSPLcom/android/server/usb/UsbPortManager$PortInfo;->toString()Ljava/lang/String;
+HSPLcom/android/server/usb/UsbPortManager$RawPortInfo$1;-><init>()V
+HSPLcom/android/server/usb/UsbPortManager$RawPortInfo;-><clinit>()V
+HSPLcom/android/server/usb/UsbPortManager$RawPortInfo;-><init>(Ljava/lang/String;IIIZIZIZZIZI)V
+HSPLcom/android/server/usb/UsbPortManager$ServiceNotification;-><init>(Lcom/android/server/usb/UsbPortManager;)V
+HSPLcom/android/server/usb/UsbPortManager$ServiceNotification;->onRegistration(Ljava/lang/String;Ljava/lang/String;Z)V
+HSPLcom/android/server/usb/UsbPortManager;-><clinit>()V
+HSPLcom/android/server/usb/UsbPortManager;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/usb/UsbPortManager;->access$000(Lcom/android/server/usb/UsbPortManager;)Z
+HSPLcom/android/server/usb/UsbPortManager;->access$100(ILcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/usb/UsbPortManager;->access$200(Lcom/android/server/usb/UsbPortManager;)Landroid/os/Handler;
+HSPLcom/android/server/usb/UsbPortManager;->access$300(Lcom/android/server/usb/UsbPortManager;)Ljava/lang/Object;
+HSPLcom/android/server/usb/UsbPortManager;->access$500(Lcom/android/server/usb/UsbPortManager;Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/usb/UsbPortManager;->access$600(Lcom/android/server/usb/UsbPortManager;Lcom/android/internal/util/IndentingPrintWriter;Ljava/util/ArrayList;)V
+HSPLcom/android/server/usb/UsbPortManager;->access$702(Lcom/android/server/usb/UsbPortManager;Landroid/app/NotificationManager;)Landroid/app/NotificationManager;
+HSPLcom/android/server/usb/UsbPortManager;->access$800(Lcom/android/server/usb/UsbPortManager;)Landroid/content/Context;
+HSPLcom/android/server/usb/UsbPortManager;->addOrUpdatePortLocked(Ljava/lang/String;IIIZIZIZZIZILcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/usb/UsbPortManager;->connectToProxy(Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/usb/UsbPortManager;->convertContaminantDetectionStatusToProto(I)I
+PLcom/android/server/usb/UsbPortManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
PLcom/android/server/usb/UsbPortManager;->enableContaminantDetectionIfNeeded(Lcom/android/server/usb/UsbPortManager$PortInfo;Lcom/android/internal/util/IndentingPrintWriter;)V
PLcom/android/server/usb/UsbPortManager;->getPortStatus(Ljava/lang/String;)Landroid/hardware/usb/UsbPortStatus;
PLcom/android/server/usb/UsbPortManager;->getPorts()[Landroid/hardware/usb/UsbPort;
-PLcom/android/server/usb/UsbPortManager;->handlePortAddedLocked(Lcom/android/server/usb/UsbPortManager$PortInfo;Lcom/android/internal/util/IndentingPrintWriter;)V
-PLcom/android/server/usb/UsbPortManager;->handlePortLocked(Lcom/android/server/usb/UsbPortManager$PortInfo;Lcom/android/internal/util/IndentingPrintWriter;)V
-PLcom/android/server/usb/UsbPortManager;->lambda$sendPortChangedBroadcastLocked$0$UsbPortManager(Landroid/content/Intent;)V
-PLcom/android/server/usb/UsbPortManager;->logAndPrint(ILcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;)V
-PLcom/android/server/usb/UsbPortManager;->logToStatsd(Lcom/android/server/usb/UsbPortManager$PortInfo;Lcom/android/internal/util/IndentingPrintWriter;)V
-PLcom/android/server/usb/UsbPortManager;->sendPortChangedBroadcastLocked(Lcom/android/server/usb/UsbPortManager$PortInfo;)V
-PLcom/android/server/usb/UsbPortManager;->systemReady()V
-PLcom/android/server/usb/UsbPortManager;->updateContaminantNotification()V
-PLcom/android/server/usb/UsbPortManager;->updatePortsLocked(Lcom/android/internal/util/IndentingPrintWriter;Ljava/util/ArrayList;)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$1;)V
+HSPLcom/android/server/usb/UsbPortManager;->handlePortAddedLocked(Lcom/android/server/usb/UsbPortManager$PortInfo;Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/usb/UsbPortManager;->handlePortLocked(Lcom/android/server/usb/UsbPortManager$PortInfo;Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/usb/UsbPortManager;->lambda$sendPortChangedBroadcastLocked$0$UsbPortManager(Landroid/content/Intent;)V
+HSPLcom/android/server/usb/UsbPortManager;->logAndPrint(ILcom/android/internal/util/IndentingPrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/usb/UsbPortManager;->logToStatsd(Lcom/android/server/usb/UsbPortManager$PortInfo;Lcom/android/internal/util/IndentingPrintWriter;)V
+HSPLcom/android/server/usb/UsbPortManager;->sendPortChangedBroadcastLocked(Lcom/android/server/usb/UsbPortManager$PortInfo;)V
+HSPLcom/android/server/usb/UsbPortManager;->systemReady()V
+HSPLcom/android/server/usb/UsbPortManager;->updateContaminantNotification()V
+HSPLcom/android/server/usb/UsbPortManager;->updatePortsLocked(Lcom/android/internal/util/IndentingPrintWriter;Ljava/util/ArrayList;)V
+HSPLcom/android/server/usb/UsbProfileGroupSettingsManager$MyPackageMonitor;-><init>(Lcom/android/server/usb/UsbProfileGroupSettingsManager;)V
+HSPLcom/android/server/usb/UsbProfileGroupSettingsManager$MyPackageMonitor;-><init>(Lcom/android/server/usb/UsbProfileGroupSettingsManager;Lcom/android/server/usb/UsbProfileGroupSettingsManager$1;)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$UserPackage;-><init>(Ljava/lang/String;Landroid/os/UserHandle;Lcom/android/server/usb/UsbProfileGroupSettingsManager$1;)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;->clearCompatibleMatchesLocked(Lcom/android/server/usb/UsbProfileGroupSettingsManager$UserPackage;Landroid/hardware/usb/DeviceFilter;)Z
+HSPLcom/android/server/usb/UsbProfileGroupSettingsManager;-><clinit>()V
+HSPLcom/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;->createDeviceAttachedIntent(Landroid/hardware/usb/UsbDevice;)Landroid/content/Intent;
+PLcom/android/server/usb/UsbProfileGroupSettingsManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+PLcom/android/server/usb/UsbProfileGroupSettingsManager;->getAccessoryFilters(Landroid/content/pm/PackageManager;Landroid/content/pm/ResolveInfo;)Ljava/util/ArrayList;
+PLcom/android/server/usb/UsbProfileGroupSettingsManager;->getDefaultActivityLocked(Ljava/util/ArrayList;Lcom/android/server/usb/UsbProfileGroupSettingsManager$UserPackage;)Landroid/content/pm/ActivityInfo;
+PLcom/android/server/usb/UsbProfileGroupSettingsManager;->getDeviceFilters(Landroid/content/pm/PackageManager;Landroid/content/pm/ResolveInfo;)Ljava/util/ArrayList;
+PLcom/android/server/usb/UsbProfileGroupSettingsManager;->getDeviceMatchesLocked(Landroid/hardware/usb/UsbDevice;Landroid/content/Intent;)Ljava/util/ArrayList;
PLcom/android/server/usb/UsbProfileGroupSettingsManager;->handlePackageAdded(Lcom/android/server/usb/UsbProfileGroupSettingsManager$UserPackage;)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/UsbProfileGroupSettingsManager;->packageMatchesLocked(Landroid/content/pm/ResolveInfo;Landroid/hardware/usb/UsbDevice;Landroid/hardware/usb/UsbAccessory;)Z
+PLcom/android/server/usb/UsbProfileGroupSettingsManager;->preferHighPriority(Ljava/util/ArrayList;)Ljava/util/ArrayList;
+PLcom/android/server/usb/UsbProfileGroupSettingsManager;->queryIntentActivitiesForAllProfiles(Landroid/content/Intent;)Ljava/util/ArrayList;
+HSPLcom/android/server/usb/UsbProfileGroupSettingsManager;->readSettingsLocked()V
+PLcom/android/server/usb/UsbProfileGroupSettingsManager;->removeForwardIntentIfNotNeeded(Ljava/util/ArrayList;)Ljava/util/ArrayList;
+PLcom/android/server/usb/UsbProfileGroupSettingsManager;->resolveActivity(Landroid/content/Intent;Landroid/hardware/usb/UsbDevice;Z)V
+PLcom/android/server/usb/UsbProfileGroupSettingsManager;->resolveActivity(Landroid/content/Intent;Ljava/util/ArrayList;Landroid/content/pm/ActivityInfo;Landroid/hardware/usb/UsbDevice;Landroid/hardware/usb/UsbAccessory;)V
+HSPLcom/android/server/usb/UsbProfileGroupSettingsManager;->upgradeSingleUserLocked()V
+PLcom/android/server/usb/UsbSerialReader;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbPermissionManager;Ljava/lang/String;)V
+PLcom/android/server/usb/UsbSerialReader;->getSerial(Ljava/lang/String;)Ljava/lang/String;
+PLcom/android/server/usb/UsbSerialReader;->setDevice(Ljava/lang/Object;)V
+HSPLcom/android/server/usb/UsbService$1;-><init>(Lcom/android/server/usb/UsbService;)V
PLcom/android/server/usb/UsbService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/usb/UsbService$Lifecycle;-><init>(Landroid/content/Context;)V
-PLcom/android/server/usb/UsbService$Lifecycle;->onBootPhase(I)V
-PLcom/android/server/usb/UsbService$Lifecycle;->onStart()V
+HSPLcom/android/server/usb/UsbService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/usb/UsbService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/usb/UsbService$Lifecycle;->onStart()V
PLcom/android/server/usb/UsbService$Lifecycle;->onUnlockUser(I)V
-PLcom/android/server/usb/UsbService;-><init>(Landroid/content/Context;)V
+HSPLcom/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;->getCurrentAccessory()Landroid/hardware/usb/UsbAccessory;
PLcom/android/server/usb/UsbService;->getCurrentFunctions()J
+PLcom/android/server/usb/UsbService;->getDeviceList(Landroid/os/Bundle;)V
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;->onSwitchUser(I)V
-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;->getSettingsForProfileGroup(Landroid/os/UserHandle;)Lcom/android/server/usb/UsbProfileGroupSettingsManager;
+PLcom/android/server/usb/UsbService;->getSettingsForUser(I)Lcom/android/server/usb/UsbUserSettingsManager;
+HSPLcom/android/server/usb/UsbService;->onSwitchUser(I)V
+PLcom/android/server/usb/UsbService;->onUnlockUser(I)V
+HSPLcom/android/server/usb/UsbService;->systemReady()V
+HSPLcom/android/server/usb/UsbSettingsManager;-><clinit>()V
+HSPLcom/android/server/usb/UsbSettingsManager;-><init>(Landroid/content/Context;Lcom/android/server/usb/UsbService;)V
+PLcom/android/server/usb/UsbSettingsManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+HSPLcom/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;-><clinit>()V
+PLcom/android/server/usb/UsbUserPermissionManager;-><init>(Landroid/content/Context;Landroid/os/UserHandle;Lcom/android/server/usb/UsbUserSettingsManager;)V
+PLcom/android/server/usb/UsbUserPermissionManager;->dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V
+PLcom/android/server/usb/UsbUserPermissionManager;->readPermissionsLocked()V
+PLcom/android/server/usb/UsbUserSettingsManager;-><clinit>()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;Ljava/lang/String;J)V
+PLcom/android/server/usb/UsbUserSettingsManager;->queryIntentActivities(Landroid/content/Intent;)Ljava/util/List;
+PLcom/android/server/usb/descriptors/ByteStream;-><init>([B)V
+PLcom/android/server/usb/descriptors/ByteStream;->available()I
+PLcom/android/server/usb/descriptors/ByteStream;->getByte()B
+PLcom/android/server/usb/descriptors/ByteStream;->getReadCount()I
+PLcom/android/server/usb/descriptors/ByteStream;->getUnsignedByte()I
+PLcom/android/server/usb/descriptors/ByteStream;->resetReadCount()V
+PLcom/android/server/usb/descriptors/ByteStream;->unpackUsbShort()I
+PLcom/android/server/usb/descriptors/UsbConfigDescriptor;-><init>(IB)V
+PLcom/android/server/usb/descriptors/UsbConfigDescriptor;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
+PLcom/android/server/usb/descriptors/UsbConfigDescriptor;->toAndroid(Lcom/android/server/usb/descriptors/UsbDescriptorParser;)Landroid/hardware/usb/UsbConfiguration;
+PLcom/android/server/usb/descriptors/UsbDescriptor;-><clinit>()V
+PLcom/android/server/usb/descriptors/UsbDescriptor;-><init>(IB)V
+PLcom/android/server/usb/descriptors/UsbDescriptor;->getType()B
+PLcom/android/server/usb/descriptors/UsbDescriptor;->logDescriptorName(BI)V
+PLcom/android/server/usb/descriptors/UsbDescriptor;->postParse(Lcom/android/server/usb/descriptors/ByteStream;)V
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;-><init>(Ljava/lang/String;[B)V
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->allocDescriptor(Lcom/android/server/usb/descriptors/ByteStream;)Lcom/android/server/usb/descriptors/UsbDescriptor;
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->getDescriptorString(I)Ljava/lang/String;
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->getDeviceAddr()Ljava/lang/String;
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->getDeviceDescriptor()Lcom/android/server/usb/descriptors/UsbDeviceDescriptor;
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->getInterfaceDescriptorsForClass(I)Ljava/util/ArrayList;
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->getRawDescriptors()[B
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->hasAudioCapture()Z
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->hasAudioInterface()Z
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->hasAudioPlayback()Z
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->hasAudioTerminal(I)Z
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->hasHIDInterface()Z
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->hasMIDIInterface()Z
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->hasStorageInterface()Z
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->hasVideoCapture()Z
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->hasVideoPlayback()Z
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->parseDescriptors([B)V
+PLcom/android/server/usb/descriptors/UsbDescriptorParser;->toAndroidUsbDeviceBuilder()Landroid/hardware/usb/UsbDevice$Builder;
+PLcom/android/server/usb/descriptors/UsbDeviceDescriptor;-><init>(IB)V
+PLcom/android/server/usb/descriptors/UsbDeviceDescriptor;->addConfigDescriptor(Lcom/android/server/usb/descriptors/UsbConfigDescriptor;)V
+PLcom/android/server/usb/descriptors/UsbDeviceDescriptor;->getDeviceReleaseString()Ljava/lang/String;
+PLcom/android/server/usb/descriptors/UsbDeviceDescriptor;->getMfgString(Lcom/android/server/usb/descriptors/UsbDescriptorParser;)Ljava/lang/String;
+PLcom/android/server/usb/descriptors/UsbDeviceDescriptor;->getProductID()I
+PLcom/android/server/usb/descriptors/UsbDeviceDescriptor;->getProductString(Lcom/android/server/usb/descriptors/UsbDescriptorParser;)Ljava/lang/String;
+PLcom/android/server/usb/descriptors/UsbDeviceDescriptor;->getSerialString(Lcom/android/server/usb/descriptors/UsbDescriptorParser;)Ljava/lang/String;
+PLcom/android/server/usb/descriptors/UsbDeviceDescriptor;->getVendorID()I
+PLcom/android/server/usb/descriptors/UsbDeviceDescriptor;->parseRawDescriptors(Lcom/android/server/usb/descriptors/ByteStream;)I
+PLcom/android/server/usb/descriptors/UsbDeviceDescriptor;->toAndroid(Lcom/android/server/usb/descriptors/UsbDescriptorParser;)Landroid/hardware/usb/UsbDevice$Builder;
PLcom/android/server/utils/PriorityDump;->dump(Lcom/android/server/utils/PriorityDump$PriorityDumper;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/utils/PriorityDump;->getPriorityType(Ljava/lang/String;)I
HSPLcom/android/server/utils/TimingsTraceAndSlog;-><init>()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
-PLcom/android/server/utils/TimingsTraceAndSlog;->newAsyncLog()Lcom/android/server/utils/TimingsTraceAndSlog;
+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/TraceBuffer;-><init>(I)V
-PLcom/android/server/utils/TraceBuffer;->resetBuffer()V
-PLcom/android/server/utils/TraceBuffer;->setCapacity(I)V
-PLcom/android/server/utils/UserTokenWatcher;-><init>(Lcom/android/server/utils/UserTokenWatcher$Callback;Landroid/os/Handler;Ljava/lang/String;)V
-PLcom/android/server/voiceinteraction/DatabaseHelper;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/utils/TraceBuffer;-><init>(I)V
+PLcom/android/server/utils/TraceBuffer;->getStatus()Ljava/lang/String;
+HSPLcom/android/server/utils/TraceBuffer;->resetBuffer()V
+HSPLcom/android/server/utils/TraceBuffer;->setCapacity(I)V
+HSPLcom/android/server/utils/UserTokenWatcher;-><init>(Lcom/android/server/utils/UserTokenWatcher$Callback;Landroid/os/Handler;Ljava/lang/String;)V
+HSPLcom/android/server/voiceinteraction/DatabaseHelper;-><init>(Landroid/content/Context;)V
PLcom/android/server/voiceinteraction/DatabaseHelper;->getArrayForCommaSeparatedString(Ljava/lang/String;)[I
PLcom/android/server/voiceinteraction/DatabaseHelper;->getKeyphraseSoundModel(IILjava/lang/String;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$1;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$LocalService;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)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
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$1;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$1;->getPackages(I)[Ljava/lang/String;
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$LocalService;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$2;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;)V
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;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->enforceCallingPermission(Ljava/lang/String;)V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$RoleObserver;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;Ljava/util/concurrent/Executor;)V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$RoleObserver;->onRoleHoldersChanged(Ljava/lang/String;Landroid/os/UserHandle;)V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SettingsObserver;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;Landroid/os/Handler;)V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)V
+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;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->enforceCallingPermission(Ljava/lang/String;)V
PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->enforceIsCurrentVoiceInteractionService(Landroid/service/voice/IVoiceInteractionService;)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getActiveServiceComponentName()Landroid/content/ComponentName;
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->findAvailRecognizer(Ljava/lang/String;I)Landroid/content/ComponentName;
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->finish(Landroid/os/IBinder;)V
+HSPLcom/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;->getDspModuleProperties(Landroid/service/voice/IVoiceInteractionService;)Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getForceVoiceInteractionServicePackage(Landroid/content/res/Resources;)Ljava/lang/String;
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->getForceVoiceInteractionServicePackage(Landroid/content/res/Resources;)Ljava/lang/String;
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->hideCurrentSession()V
+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;->isEnrolledForKeyphrase(Landroid/service/voice/IVoiceInteractionService;ILjava/lang/String;)Z
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->isSessionRunning()Z
PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->onLockscreenShown()V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->onSessionHidden()V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->onSessionShown()V
PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->registerVoiceInteractionSessionListener(Lcom/android/internal/app/IVoiceInteractionSessionListener;)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;->setUiHints(Landroid/service/voice/IVoiceInteractionService;Landroid/os/Bundle;)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->shouldEnableService(Landroid/content/Context;)Z
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->setCurrentUserLocked(I)V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->setImplLocked(Lcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;)V
+HPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->setUiHints(Landroid/service/voice/IVoiceInteractionService;Landroid/os/Bundle;)V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->shouldEnableService(Landroid/content/Context;)Z
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->showSession(Landroid/service/voice/IVoiceInteractionService;Landroid/os/Bundle;I)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->showSessionForActiveService(Landroid/os/Bundle;ILcom/android/internal/app/IVoiceInteractionSessionShowCallback;Landroid/os/IBinder;)Z
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->showSessionFromSession(Landroid/os/IBinder;Landroid/os/Bundle;I)Z
PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->startRecognition(Landroid/service/voice/IVoiceInteractionService;ILjava/lang/String;Landroid/hardware/soundtrigger/IRecognitionStatusCallback;Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;)I
PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->stopRecognition(Landroid/service/voice/IVoiceInteractionService;ILandroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
PLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->switchImplementationIfNeeded(Z)V
-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;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->switchImplementationIfNeededLocked(Z)V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->switchImplementationIfNeededNoTracingLocked(Z)V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->systemRunning(Z)V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;->unloadAllKeyphraseModels()V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService;-><init>(Landroid/content/Context;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->access$000(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub;
PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->access$100(Lcom/android/server/voiceinteraction/VoiceInteractionManagerService;)Landroid/os/RemoteCallbackList;
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->isSupported(Landroid/content/pm/UserInfo;)Z
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onBootPhase(I)V
-PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onStart()V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->isSupported(Landroid/content/pm/UserInfo;)Z
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onBootPhase(I)V
+HSPLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onStart()V
PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onStartUser(Landroid/content/pm/UserInfo;)V
PLcom/android/server/voiceinteraction/VoiceInteractionManagerService;->onUnlockUser(Landroid/content/pm/UserInfo;)V
PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl$1;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;)V
@@ -15883,379 +18995,544 @@ PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl$2;-><in
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;-><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/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->finishLocked(Landroid/os/IBinder;Z)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->hideSessionLocked()Z
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->onSessionHidden(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->onSessionShown(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->sessionConnectionGone(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->showSessionLocked(Landroid/os/Bundle;ILcom/android/internal/app/IVoiceInteractionSessionShowCallback;Landroid/os/IBinder;)Z
PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->shutdownLocked()V
PLcom/android/server/voiceinteraction/VoiceInteractionManagerServiceImpl;->startLocked()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;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$2;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$3;-><init>(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;-><init>(Ljava/lang/Object;Landroid/content/ComponentName;ILandroid/content/Context;Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection$Callback;ILandroid/os/Handler;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->access$100(Lcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->canHandleReceivedAssistDataLocked()Z
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->cancelLocked(Z)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->deliverNewSessionLocked(Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;)Z
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->getUserDisabledShowContextLocked()I
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->hideLocked()Z
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->notifyPendingShowCallbacksShownLocked()V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->onAssistDataReceivedLocked(Landroid/os/Bundle;II)V
+PLcom/android/server/voiceinteraction/VoiceInteractionSessionConnection;->onAssistScreenshotReceivedLocked(Landroid/graphics/Bitmap;)V
+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/voiceinteraction/VoiceInteractionSessionConnection;->showLocked(Landroid/os/Bundle;IILcom/android/internal/app/IVoiceInteractionSessionShowCallback;Ljava/util/List;)Z
PLcom/android/server/vr/VrManagerService;->dumpStateTransitions(Ljava/io/PrintWriter;)V
PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$-BqUtvsdVGS3ye_UHe7qFnTZPn4;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$-BqUtvsdVGS3ye_UHe7qFnTZPn4;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$1tPkxHr3PHUgpfvv03vRyPzY3uM;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
-PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$1tPkxHr3PHUgpfvv03vRyPzY3uM;->run()V
-PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$NrNkceFJLqjCb8eAxErUhpLd5c8;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
-PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$NrNkceFJLqjCb8eAxErUhpLd5c8;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$QhODF3v-swnwSYvDbeEhU85gOBw;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
+HSPLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$1tPkxHr3PHUgpfvv03vRyPzY3uM;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
+HSPLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$1tPkxHr3PHUgpfvv03vRyPzY3uM;->run()V
+PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$4phuz9MKBqoKfDMu8M8EBVJyI2I;-><init>(Ljava/io/PrintWriter;)V
+PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$93YXv2Z9dcGnT0Vr4Zebgn1qyVM;-><init>(Ljava/io/PrintWriter;)V
+PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$93YXv2Z9dcGnT0Vr4Zebgn1qyVM;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$VUhQWq8Flr0dsQqeVHhHT8jU7qY;-><init>(Ljava/io/PrintWriter;)V
+PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$VUhQWq8Flr0dsQqeVHhHT8jU7qY;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$NrNkceFJLqjCb8eAxErUhpLd5c8;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
+HSPLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$NrNkceFJLqjCb8eAxErUhpLd5c8;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$QhODF3v-swnwSYvDbeEhU85gOBw;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$Y6NUt3jeHQDhNJsATtXxO4MiWJ0;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)V
PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$ZY5r01reAnoB4Dl2bo4au8KMz3Y;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;I)V
PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$ZY5r01reAnoB4Dl2bo4au8KMz3Y;->run()V
-PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$la7x4YHA-l88Cd6HFTscnLBbKfI;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;I)V
-PLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$la7x4YHA-l88Cd6HFTscnLBbKfI;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wallpaper/WallpaperManagerInternal;-><init>()V
-PLcom/android/server/wallpaper/WallpaperManagerService$1;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
+HSPLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$la7x4YHA-l88Cd6HFTscnLBbKfI;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;I)V
+HSPLcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$la7x4YHA-l88Cd6HFTscnLBbKfI;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerInternal;-><init>()V
+HSPLcom/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$2;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)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$DisplayData;-><init>(I)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
+HSPLcom/android/server/wallpaper/WallpaperManagerService$2;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$3;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$4;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$DisplayData;-><init>(I)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$Lifecycle;->onBootPhase(I)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$Lifecycle;->onStart()V
PLcom/android/server/wallpaper/WallpaperManagerService$Lifecycle;->onUnlockUser(I)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$1;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$LocalService;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$LocalService;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$1;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;)V
PLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->doPackagesChangedLocked(ZLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;->onHandleForceStop(Landroid/content/Intent;[Ljava/lang/String;IZ)Z
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$DisplayConnector;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;I)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;I)V
PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;->connectLocked(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;->ensureStatusHandled()V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Landroid/app/WallpaperInfo;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->access$1300(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)Landroid/util/SparseArray;
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->appendConnectorWithCondition(Ljava/util/function/Predicate;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Landroid/app/WallpaperInfo;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;I)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->access$1300(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)Landroid/util/SparseArray;
+HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->appendConnectorWithCondition(Ljava/util/function/Predicate;)V
PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->attachEngine(Landroid/service/wallpaper/IWallpaperEngine;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->containsDisplay(I)Z
+HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->containsDisplay(I)Z
PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->engineShown(Landroid/service/wallpaper/IWallpaperEngine;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->forEachDisplayConnector(Ljava/util/function/Consumer;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->forEachDisplayConnector(Ljava/util/function/Consumer;)V
PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->getDisplayConnectorOrCreate(I)Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->initDisplayState()V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->isUsableDisplay(Landroid/view/Display;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->lambda$NrNkceFJLqjCb8eAxErUhpLd5c8(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Landroid/view/Display;)Z
+HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->initDisplayState()V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->isUsableDisplay(Landroid/view/Display;)Z
+HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->lambda$NrNkceFJLqjCb8eAxErUhpLd5c8(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Landroid/view/Display;)Z
PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;->onWallpaperColorsChanged(Landroid/app/WallpaperColors;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;-><init>(ILjava/io/File;Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;-><init>(ILjava/io/File;Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;->access$3000(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)Landroid/os/RemoteCallbackList;
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;->cropExists()Z
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperObserver;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperObserver;->dataForEvent(ZZ)Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;
-PLcom/android/server/wallpaper/WallpaperManagerService$WallpaperObserver;->onEvent(ILjava/lang/String;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;-><clinit>()V
-PLcom/android/server/wallpaper/WallpaperManagerService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;->cropExists()Z
+HSPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperObserver;-><init>(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
+HPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperObserver;->dataForEvent(ZZ)Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;
+HPLcom/android/server/wallpaper/WallpaperManagerService$WallpaperObserver;->onEvent(ILjava/lang/String;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;-><clinit>()V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;-><init>(Landroid/content/Context;)V
PLcom/android/server/wallpaper/WallpaperManagerService;->access$000(Lcom/android/server/wallpaper/WallpaperManagerService;)Ljava/lang/Object;
PLcom/android/server/wallpaper/WallpaperManagerService;->access$1000(Lcom/android/server/wallpaper/WallpaperManagerService;I)V
PLcom/android/server/wallpaper/WallpaperManagerService;->access$1500(Lcom/android/server/wallpaper/WallpaperManagerService;I)Lcom/android/server/wallpaper/WallpaperManagerService$DisplayData;
PLcom/android/server/wallpaper/WallpaperManagerService;->access$1600(Lcom/android/server/wallpaper/WallpaperManagerService;)Lcom/android/server/wm/WindowManagerInternal;
-PLcom/android/server/wallpaper/WallpaperManagerService;->access$1700(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->access$1800(Lcom/android/server/wallpaper/WallpaperManagerService;)Landroid/hardware/display/DisplayManager;
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->access$1700(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)Z
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->access$1800(Lcom/android/server/wallpaper/WallpaperManagerService;)Landroid/hardware/display/DisplayManager;
PLcom/android/server/wallpaper/WallpaperManagerService;->access$1900(Lcom/android/server/wallpaper/WallpaperManagerService;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
PLcom/android/server/wallpaper/WallpaperManagerService;->access$200(Lcom/android/server/wallpaper/WallpaperManagerService;)Landroid/util/SparseArray;
PLcom/android/server/wallpaper/WallpaperManagerService;->access$2000(Lcom/android/server/wallpaper/WallpaperManagerService;)Landroid/content/Context;
PLcom/android/server/wallpaper/WallpaperManagerService;->access$800(Lcom/android/server/wallpaper/WallpaperManagerService;)Landroid/content/ComponentName;
PLcom/android/server/wallpaper/WallpaperManagerService;->attachServiceLocked(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->bindWallpaperComponentLocked(Landroid/content/ComponentName;ZZLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Landroid/os/IRemoteCallback;)Z
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->bindWallpaperComponentLocked(Landroid/content/ComponentName;ZZLcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Landroid/os/IRemoteCallback;)Z
PLcom/android/server/wallpaper/WallpaperManagerService;->checkPermission(Ljava/lang/String;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->emptyCallbackList(Landroid/os/RemoteCallbackList;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->ensureSaneWallpaperData(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->ensureSaneWallpaperDisplaySize(Lcom/android/server/wallpaper/WallpaperManagerService$DisplayData;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->findWallpaperAtDisplay(II)Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;
-PLcom/android/server/wallpaper/WallpaperManagerService;->getAttributeInt(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
-PLcom/android/server/wallpaper/WallpaperManagerService;->getDisplayDataOrCreate(I)Lcom/android/server/wallpaper/WallpaperManagerService$DisplayData;
+PLcom/android/server/wallpaper/WallpaperManagerService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->emptyCallbackList(Landroid/os/RemoteCallbackList;)Z
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->ensureSaneWallpaperData(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;I)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->ensureSaneWallpaperDisplaySize(Lcom/android/server/wallpaper/WallpaperManagerService$DisplayData;I)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->findWallpaperAtDisplay(II)Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->getAttributeInt(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;I)I
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->getDisplayDataOrCreate(I)Lcom/android/server/wallpaper/WallpaperManagerService$DisplayData;
PLcom/android/server/wallpaper/WallpaperManagerService;->getHeightHint(I)I
-PLcom/android/server/wallpaper/WallpaperManagerService;->getMaximumSizeDimension(I)I
-PLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperCallbacks(II)Landroid/os/RemoteCallbackList;
-PLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperColors(III)Landroid/app/WallpaperColors;
-PLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperDir(I)Ljava/io/File;
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->getMaximumSizeDimension(I)I
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperCallbacks(II)Landroid/os/RemoteCallbackList;
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperColors(III)Landroid/app/WallpaperColors;
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperDir(I)Ljava/io/File;
PLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperIdForUser(II)I
PLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperInfo(I)Landroid/app/WallpaperInfo;
-PLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperSafeLocked(II)Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;
-PLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperWithFeature(Ljava/lang/String;Ljava/lang/String;Landroid/app/IWallpaperManagerCallback;ILandroid/os/Bundle;I)Landroid/os/ParcelFileDescriptor;
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperSafeLocked(II)Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;
+HPLcom/android/server/wallpaper/WallpaperManagerService;->getWallpaperWithFeature(Ljava/lang/String;Ljava/lang/String;Landroid/app/IWallpaperManagerCallback;ILandroid/os/Bundle;I)Landroid/os/ParcelFileDescriptor;
PLcom/android/server/wallpaper/WallpaperManagerService;->getWidthHint(I)I
-PLcom/android/server/wallpaper/WallpaperManagerService;->initialize()V
-PLcom/android/server/wallpaper/WallpaperManagerService;->initializeFallbackWallpaper()V
-PLcom/android/server/wallpaper/WallpaperManagerService;->isWallpaperSupported(Ljava/lang/String;)Z
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->initialize()V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->initializeFallbackWallpaper()V
+PLcom/android/server/wallpaper/WallpaperManagerService;->isSetWallpaperAllowed(Ljava/lang/String;)Z
+PLcom/android/server/wallpaper/WallpaperManagerService;->isValidDisplay(I)Z
+PLcom/android/server/wallpaper/WallpaperManagerService;->isWallpaperBackupEligible(II)Z
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->isWallpaperSupported(Ljava/lang/String;)Z
PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$attachServiceLocked$6(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$notifyWallpaperColorsChanged$0$WallpaperManagerService(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;ILcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;)V
+PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$dump$7(Ljava/io/PrintWriter;Lcom/android/server/wallpaper/WallpaperManagerService$DisplayData;)V
+PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$dump$8(Ljava/io/PrintWriter;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->lambda$notifyWallpaperColorsChanged$0$WallpaperManagerService(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;ILcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection$DisplayConnector;)V
PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$onUnlockUser$4$WallpaperManagerService(I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->lambda$switchUser$5$WallpaperManagerService(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->loadSettingsLocked(IZ)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->makeJournaledFile(I)Lcom/android/internal/util/JournaledFile;
-PLcom/android/server/wallpaper/WallpaperManagerService;->makeWallpaperIdLocked()I
-PLcom/android/server/wallpaper/WallpaperManagerService;->migrateFromOld()V
-PLcom/android/server/wallpaper/WallpaperManagerService;->notifyWallpaperColorsChanged(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->notifyWallpaperColorsChangedOnDisplay(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;II)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->onBootPhase(I)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->lambda$switchUser$5$WallpaperManagerService(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->loadSettingsLocked(IZ)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->makeJournaledFile(I)Lcom/android/internal/util/JournaledFile;
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->makeWallpaperIdLocked()I
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->migrateFromOld()V
+PLcom/android/server/wallpaper/WallpaperManagerService;->notifyColorListeners(Landroid/app/WallpaperColors;III)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->notifyWallpaperColorsChanged(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;I)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->notifyWallpaperColorsChangedOnDisplay(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;II)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->onBootPhase(I)V
PLcom/android/server/wallpaper/WallpaperManagerService;->onUnlockUser(I)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->parseWallpaperAttributes(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Z)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->registerWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;II)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->parseWallpaperAttributes(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Z)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->registerWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;II)V
PLcom/android/server/wallpaper/WallpaperManagerService;->saveSettingsLocked(I)V
PLcom/android/server/wallpaper/WallpaperManagerService;->setInAmbientMode(ZJ)V
PLcom/android/server/wallpaper/WallpaperManagerService;->setLockWallpaperCallback(Landroid/app/IWallpaperManagerCallback;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->supportsMultiDisplay(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)Z
-PLcom/android/server/wallpaper/WallpaperManagerService;->switchUser(ILandroid/os/IRemoteCallback;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->switchWallpaper(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Landroid/os/IRemoteCallback;)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->systemReady()V
-PLcom/android/server/wallpaper/WallpaperManagerService;->unregisterWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;II)V
-PLcom/android/server/wallpaper/WallpaperManagerService;->updateFallbackConnection()V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->supportsMultiDisplay(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;)Z
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->switchUser(ILandroid/os/IRemoteCallback;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->switchWallpaper(Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;Landroid/os/IRemoteCallback;)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->systemReady()V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->unregisterWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;II)V
+HSPLcom/android/server/wallpaper/WallpaperManagerService;->updateFallbackConnection()V
PLcom/android/server/wallpaper/WallpaperManagerService;->writeWallpaperAttributes(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;)V
-PLcom/android/server/webkit/-$$Lambda$lAUGMGZZth095wGxrAtUYbmlIJY;-><init>(Lcom/android/server/webkit/WebViewUpdateServiceImpl;)V
-PLcom/android/server/webkit/-$$Lambda$lAUGMGZZth095wGxrAtUYbmlIJY;->run()V
-PLcom/android/server/webkit/SystemImpl$LazyHolder;-><clinit>()V
-PLcom/android/server/webkit/SystemImpl$LazyHolder;->access$100()Lcom/android/server/webkit/SystemImpl;
-PLcom/android/server/webkit/SystemImpl;-><clinit>()V
-PLcom/android/server/webkit/SystemImpl;-><init>()V
-PLcom/android/server/webkit/SystemImpl;-><init>(Lcom/android/server/webkit/SystemImpl$1;)V
-PLcom/android/server/webkit/SystemImpl;->ensureZygoteStarted()V
-PLcom/android/server/webkit/SystemImpl;->getFactoryPackageVersion(Ljava/lang/String;)J
-PLcom/android/server/webkit/SystemImpl;->getInstance()Lcom/android/server/webkit/SystemImpl;
-PLcom/android/server/webkit/SystemImpl;->getMultiProcessSetting(Landroid/content/Context;)I
-PLcom/android/server/webkit/SystemImpl;->getPackageInfoForProvider(Landroid/webkit/WebViewProviderInfo;)Landroid/content/pm/PackageInfo;
-PLcom/android/server/webkit/SystemImpl;->getPackageInfoForProviderAllUsers(Landroid/content/Context;Landroid/webkit/WebViewProviderInfo;)Ljava/util/List;
-PLcom/android/server/webkit/SystemImpl;->getUserChosenWebViewProvider(Landroid/content/Context;)Ljava/lang/String;
-PLcom/android/server/webkit/SystemImpl;->getWebViewPackages()[Landroid/webkit/WebViewProviderInfo;
-PLcom/android/server/webkit/SystemImpl;->isFallbackLogicEnabled()Z
-PLcom/android/server/webkit/SystemImpl;->isMultiProcessDefaultEnabled()Z
-PLcom/android/server/webkit/SystemImpl;->notifyZygote(Z)V
-PLcom/android/server/webkit/SystemImpl;->onWebViewProviderChanged(Landroid/content/pm/PackageInfo;)I
-PLcom/android/server/webkit/SystemImpl;->readSignatures(Landroid/content/res/XmlResourceParser;)[Ljava/lang/String;
-PLcom/android/server/webkit/SystemImpl;->systemIsDebuggable()Z
-PLcom/android/server/webkit/WebViewUpdateService$1;-><init>(Lcom/android/server/webkit/WebViewUpdateService;)V
+HSPLcom/android/server/webkit/-$$Lambda$lAUGMGZZth095wGxrAtUYbmlIJY;-><init>(Lcom/android/server/webkit/WebViewUpdateServiceImpl;)V
+HSPLcom/android/server/webkit/-$$Lambda$lAUGMGZZth095wGxrAtUYbmlIJY;->run()V
+HSPLcom/android/server/webkit/SystemImpl$LazyHolder;-><clinit>()V
+HSPLcom/android/server/webkit/SystemImpl$LazyHolder;->access$100()Lcom/android/server/webkit/SystemImpl;
+HSPLcom/android/server/webkit/SystemImpl;-><clinit>()V
+HSPLcom/android/server/webkit/SystemImpl;-><init>()V
+HSPLcom/android/server/webkit/SystemImpl;-><init>(Lcom/android/server/webkit/SystemImpl$1;)V
+HSPLcom/android/server/webkit/SystemImpl;->ensureZygoteStarted()V
+HSPLcom/android/server/webkit/SystemImpl;->getFactoryPackageVersion(Ljava/lang/String;)J
+HSPLcom/android/server/webkit/SystemImpl;->getInstance()Lcom/android/server/webkit/SystemImpl;
+HSPLcom/android/server/webkit/SystemImpl;->getMultiProcessSetting(Landroid/content/Context;)I
+HSPLcom/android/server/webkit/SystemImpl;->getPackageInfoForProvider(Landroid/webkit/WebViewProviderInfo;)Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/webkit/SystemImpl;->getPackageInfoForProviderAllUsers(Landroid/content/Context;Landroid/webkit/WebViewProviderInfo;)Ljava/util/List;
+HSPLcom/android/server/webkit/SystemImpl;->getUserChosenWebViewProvider(Landroid/content/Context;)Ljava/lang/String;
+HSPLcom/android/server/webkit/SystemImpl;->getWebViewPackages()[Landroid/webkit/WebViewProviderInfo;
+HSPLcom/android/server/webkit/SystemImpl;->isFallbackLogicEnabled()Z
+HSPLcom/android/server/webkit/SystemImpl;->isMultiProcessDefaultEnabled()Z
+HSPLcom/android/server/webkit/SystemImpl;->notifyZygote(Z)V
+HSPLcom/android/server/webkit/SystemImpl;->onWebViewProviderChanged(Landroid/content/pm/PackageInfo;)I
+HSPLcom/android/server/webkit/SystemImpl;->readSignatures(Landroid/content/res/XmlResourceParser;)[Ljava/lang/String;
+HSPLcom/android/server/webkit/SystemImpl;->systemIsDebuggable()Z
+HSPLcom/android/server/webkit/WebViewUpdateService$1;-><init>(Lcom/android/server/webkit/WebViewUpdateService;)V
PLcom/android/server/webkit/WebViewUpdateService$1;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
-PLcom/android/server/webkit/WebViewUpdateService$BinderService;-><init>(Lcom/android/server/webkit/WebViewUpdateService;)V
-PLcom/android/server/webkit/WebViewUpdateService$BinderService;-><init>(Lcom/android/server/webkit/WebViewUpdateService;Lcom/android/server/webkit/WebViewUpdateService$1;)V
+HSPLcom/android/server/webkit/WebViewUpdateService$BinderService;-><init>(Lcom/android/server/webkit/WebViewUpdateService;)V
+HSPLcom/android/server/webkit/WebViewUpdateService$BinderService;-><init>(Lcom/android/server/webkit/WebViewUpdateService;Lcom/android/server/webkit/WebViewUpdateService$1;)V
+PLcom/android/server/webkit/WebViewUpdateService$BinderService;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
PLcom/android/server/webkit/WebViewUpdateService$BinderService;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo;
PLcom/android/server/webkit/WebViewUpdateService$BinderService;->getCurrentWebViewPackageName()Ljava/lang/String;
PLcom/android/server/webkit/WebViewUpdateService$BinderService;->isMultiProcessEnabled()Z
-PLcom/android/server/webkit/WebViewUpdateService$BinderService;->notifyRelroCreationCompleted()V
+HSPLcom/android/server/webkit/WebViewUpdateService$BinderService;->notifyRelroCreationCompleted()V
PLcom/android/server/webkit/WebViewUpdateService$BinderService;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
-PLcom/android/server/webkit/WebViewUpdateService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/webkit/WebViewUpdateService;->access$100(Lcom/android/server/webkit/WebViewUpdateService;)Lcom/android/server/webkit/WebViewUpdateServiceImpl;
-PLcom/android/server/webkit/WebViewUpdateService;->onStart()V
-PLcom/android/server/webkit/WebViewUpdateService;->prepareWebViewInSystemServer()V
-PLcom/android/server/webkit/WebViewUpdateServiceImpl;-><clinit>()V
-PLcom/android/server/webkit/WebViewUpdateServiceImpl;-><init>(Landroid/content/Context;Lcom/android/server/webkit/SystemInterface;)V
-PLcom/android/server/webkit/WebViewUpdateServiceImpl;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo;
-PLcom/android/server/webkit/WebViewUpdateServiceImpl;->getWebViewPackages()[Landroid/webkit/WebViewProviderInfo;
+HSPLcom/android/server/webkit/WebViewUpdateService;-><init>(Landroid/content/Context;)V
+HSPLcom/android/server/webkit/WebViewUpdateService;->access$100(Lcom/android/server/webkit/WebViewUpdateService;)Lcom/android/server/webkit/WebViewUpdateServiceImpl;
+HSPLcom/android/server/webkit/WebViewUpdateService;->onStart()V
+HSPLcom/android/server/webkit/WebViewUpdateService;->prepareWebViewInSystemServer()V
+HSPLcom/android/server/webkit/WebViewUpdateServiceImpl;-><clinit>()V
+HSPLcom/android/server/webkit/WebViewUpdateServiceImpl;-><init>(Landroid/content/Context;Lcom/android/server/webkit/SystemInterface;)V
+PLcom/android/server/webkit/WebViewUpdateServiceImpl;->dumpState(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/webkit/WebViewUpdateServiceImpl;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/webkit/WebViewUpdateServiceImpl;->getWebViewPackages()[Landroid/webkit/WebViewProviderInfo;
PLcom/android/server/webkit/WebViewUpdateServiceImpl;->handleNewUser(I)V
PLcom/android/server/webkit/WebViewUpdateServiceImpl;->handleUserChange()V
-PLcom/android/server/webkit/WebViewUpdateServiceImpl;->isMultiProcessEnabled()Z
-PLcom/android/server/webkit/WebViewUpdateServiceImpl;->migrateFallbackStateOnBoot()V
-PLcom/android/server/webkit/WebViewUpdateServiceImpl;->notifyRelroCreationCompleted()V
-PLcom/android/server/webkit/WebViewUpdateServiceImpl;->prepareWebViewInSystemServer()V
-PLcom/android/server/webkit/WebViewUpdateServiceImpl;->startZygoteWhenReady()V
-PLcom/android/server/webkit/WebViewUpdateServiceImpl;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
-PLcom/android/server/webkit/WebViewUpdater$ProviderAndPackageInfo;-><init>(Landroid/webkit/WebViewProviderInfo;Landroid/content/pm/PackageInfo;)V
-PLcom/android/server/webkit/WebViewUpdater;-><clinit>()V
-PLcom/android/server/webkit/WebViewUpdater;-><init>(Landroid/content/Context;Lcom/android/server/webkit/SystemInterface;)V
-PLcom/android/server/webkit/WebViewUpdater;->checkIfRelrosDoneLocked()V
-PLcom/android/server/webkit/WebViewUpdater;->findPreferredWebViewPackage()Landroid/content/pm/PackageInfo;
-PLcom/android/server/webkit/WebViewUpdater;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo;
-PLcom/android/server/webkit/WebViewUpdater;->getMinimumVersionCode()J
-PLcom/android/server/webkit/WebViewUpdater;->getValidWebViewPackagesAndInfos()[Lcom/android/server/webkit/WebViewUpdater$ProviderAndPackageInfo;
-PLcom/android/server/webkit/WebViewUpdater;->isInstalledAndEnabledForAllUsers(Ljava/util/List;)Z
-PLcom/android/server/webkit/WebViewUpdater;->isValidProvider(Landroid/webkit/WebViewProviderInfo;Landroid/content/pm/PackageInfo;)Z
-PLcom/android/server/webkit/WebViewUpdater;->notifyRelroCreationCompleted()V
-PLcom/android/server/webkit/WebViewUpdater;->onWebViewProviderChanged(Landroid/content/pm/PackageInfo;)V
-PLcom/android/server/webkit/WebViewUpdater;->prepareWebViewInSystemServer()V
-PLcom/android/server/webkit/WebViewUpdater;->providerHasValidSignature(Landroid/webkit/WebViewProviderInfo;Landroid/content/pm/PackageInfo;Lcom/android/server/webkit/SystemInterface;)Z
+HSPLcom/android/server/webkit/WebViewUpdateServiceImpl;->isMultiProcessEnabled()Z
+HSPLcom/android/server/webkit/WebViewUpdateServiceImpl;->migrateFallbackStateOnBoot()V
+HSPLcom/android/server/webkit/WebViewUpdateServiceImpl;->notifyRelroCreationCompleted()V
+HSPLcom/android/server/webkit/WebViewUpdateServiceImpl;->prepareWebViewInSystemServer()V
+HSPLcom/android/server/webkit/WebViewUpdateServiceImpl;->startZygoteWhenReady()V
+HSPLcom/android/server/webkit/WebViewUpdateServiceImpl;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
+HSPLcom/android/server/webkit/WebViewUpdater$ProviderAndPackageInfo;-><init>(Landroid/webkit/WebViewProviderInfo;Landroid/content/pm/PackageInfo;)V
+HSPLcom/android/server/webkit/WebViewUpdater;-><clinit>()V
+HSPLcom/android/server/webkit/WebViewUpdater;-><init>(Landroid/content/Context;Lcom/android/server/webkit/SystemInterface;)V
+HSPLcom/android/server/webkit/WebViewUpdater;->checkIfRelrosDoneLocked()V
+PLcom/android/server/webkit/WebViewUpdater;->dumpAllPackageInformationLocked(Ljava/io/PrintWriter;)V
+PLcom/android/server/webkit/WebViewUpdater;->dumpState(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/webkit/WebViewUpdater;->findPreferredWebViewPackage()Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/webkit/WebViewUpdater;->getCurrentWebViewPackage()Landroid/content/pm/PackageInfo;
+HSPLcom/android/server/webkit/WebViewUpdater;->getMinimumVersionCode()J
+HSPLcom/android/server/webkit/WebViewUpdater;->getValidWebViewPackagesAndInfos()[Lcom/android/server/webkit/WebViewUpdater$ProviderAndPackageInfo;
+HSPLcom/android/server/webkit/WebViewUpdater;->isInstalledAndEnabledForAllUsers(Ljava/util/List;)Z
+HSPLcom/android/server/webkit/WebViewUpdater;->isValidProvider(Landroid/webkit/WebViewProviderInfo;Landroid/content/pm/PackageInfo;)Z
+HSPLcom/android/server/webkit/WebViewUpdater;->notifyRelroCreationCompleted()V
+HSPLcom/android/server/webkit/WebViewUpdater;->onWebViewProviderChanged(Landroid/content/pm/PackageInfo;)V
+HSPLcom/android/server/webkit/WebViewUpdater;->prepareWebViewInSystemServer()V
+HSPLcom/android/server/webkit/WebViewUpdater;->providerHasValidSignature(Landroid/webkit/WebViewProviderInfo;Landroid/content/pm/PackageInfo;Lcom/android/server/webkit/SystemInterface;)Z
PLcom/android/server/webkit/WebViewUpdater;->updateCurrentWebViewPackage(Ljava/lang/String;)Landroid/content/pm/PackageInfo;
-PLcom/android/server/webkit/WebViewUpdater;->validityResult(Landroid/webkit/WebViewProviderInfo;Landroid/content/pm/PackageInfo;)I
-PLcom/android/server/webkit/WebViewUpdater;->versionCodeGE(JJ)Z
-PLcom/android/server/webkit/WebViewUpdater;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
-PLcom/android/server/webkit/WebViewUpdater;->webViewIsReadyLocked()Z
+HSPLcom/android/server/webkit/WebViewUpdater;->validityResult(Landroid/webkit/WebViewProviderInfo;Landroid/content/pm/PackageInfo;)I
+HSPLcom/android/server/webkit/WebViewUpdater;->versionCodeGE(JJ)Z
+HSPLcom/android/server/webkit/WebViewUpdater;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
+HSPLcom/android/server/webkit/WebViewUpdater;->webViewIsReadyLocked()Z
PLcom/android/server/wm/-$$Lambda$-OevXHSXgaSE351ZqRnMoA024MM;-><init>(Lcom/android/server/wm/TaskSnapshotSurface;)V
PLcom/android/server/wm/-$$Lambda$-OevXHSXgaSE351ZqRnMoA024MM;->run()V
-PLcom/android/server/wm/-$$Lambda$-hxY8aP13MItXHILC9K9vyNQgr4;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$-hxY8aP13MItXHILC9K9vyNQgr4;-><init>()V
-PLcom/android/server/wm/-$$Lambda$-hxY8aP13MItXHILC9K9vyNQgr4;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$-gsVbWDnbYC49FhjWBEWQbbGfCo;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$-gsVbWDnbYC49FhjWBEWQbbGfCo;-><init>()V
+PLcom/android/server/wm/-$$Lambda$-gsVbWDnbYC49FhjWBEWQbbGfCo;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$-hxY8aP13MItXHILC9K9vyNQgr4;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$-hxY8aP13MItXHILC9K9vyNQgr4;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$-hxY8aP13MItXHILC9K9vyNQgr4;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$01bPtngJg5AqEoOWfW3rWfV7MH4;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$01bPtngJg5AqEoOWfW3rWfV7MH4;-><init>()V
PLcom/android/server/wm/-$$Lambda$01bPtngJg5AqEoOWfW3rWfV7MH4;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$1636dquQO0UvkFayOGf_gceB4iw;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$1636dquQO0UvkFayOGf_gceB4iw;-><init>()V
PLcom/android/server/wm/-$$Lambda$1636dquQO0UvkFayOGf_gceB4iw;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$1Hjf_Nn5x4aIy9rIBTwVrtrzWFA;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$1Hjf_Nn5x4aIy9rIBTwVrtrzWFA;-><init>()V
-PLcom/android/server/wm/-$$Lambda$1Hjf_Nn5x4aIy9rIBTwVrtrzWFA;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/wm/-$$Lambda$1Hjf_Nn5x4aIy9rIBTwVrtrzWFA;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$1Hjf_Nn5x4aIy9rIBTwVrtrzWFA;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$1Hjf_Nn5x4aIy9rIBTwVrtrzWFA;->apply(Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/wm/-$$Lambda$2KrtdmjrY7Nagc4IRqzCk9gDuQU;-><init>(Lcom/android/server/wm/WindowManagerService;)V
PLcom/android/server/wm/-$$Lambda$2KrtdmjrY7Nagc4IRqzCk9gDuQU;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$6P_D-ul93Vzg9xx2hvWUdYrHVXg;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$6P_D-ul93Vzg9xx2hvWUdYrHVXg;-><init>()V
+PLcom/android/server/wm/-$$Lambda$5zunxFfSXQYpejvFiP3lO5a4GDY;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$5zunxFfSXQYpejvFiP3lO5a4GDY;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$5zunxFfSXQYpejvFiP3lO5a4GDY;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLcom/android/server/wm/-$$Lambda$6P_D-ul93Vzg9xx2hvWUdYrHVXg;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$6P_D-ul93Vzg9xx2hvWUdYrHVXg;-><init>()V
PLcom/android/server/wm/-$$Lambda$6P_D-ul93Vzg9xx2hvWUdYrHVXg;->get()Ljava/lang/Object;
+HSPLcom/android/server/wm/-$$Lambda$7nuK7cv058ES7c7refBFgc-jagk;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$7nuK7cv058ES7c7refBFgc-jagk;-><init>()V
+PLcom/android/server/wm/-$$Lambda$7nuK7cv058ES7c7refBFgc-jagk;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$99XNq73vh8e4HVH9BuxFhbLxKVY;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$99XNq73vh8e4HVH9BuxFhbLxKVY;-><init>()V
PLcom/android/server/wm/-$$Lambda$99XNq73vh8e4HVH9BuxFhbLxKVY;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$9vBfnQOmNnsc9WU80IIatZHQGKc;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$9vBfnQOmNnsc9WU80IIatZHQGKc;-><init>()V
-PLcom/android/server/wm/-$$Lambda$9vBfnQOmNnsc9WU80IIatZHQGKc;->get()Ljava/lang/Object;
-PLcom/android/server/wm/-$$Lambda$ADNhW0r9Skcs9ezrOGURijI-lyQ;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$ADNhW0r9Skcs9ezrOGURijI-lyQ;-><init>()V
-PLcom/android/server/wm/-$$Lambda$ADNhW0r9Skcs9ezrOGURijI-lyQ;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$ActivityDisplay$Ib0_Ntr3Lw7OMuHT-utGz685mJk;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$ActivityDisplay$Ib0_Ntr3Lw7OMuHT-utGz685mJk;-><init>()V
-PLcom/android/server/wm/-$$Lambda$ActivityDisplay$Ib0_Ntr3Lw7OMuHT-utGz685mJk;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLcom/android/server/wm/-$$Lambda$9vBfnQOmNnsc9WU80IIatZHQGKc;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$9vBfnQOmNnsc9WU80IIatZHQGKc;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$9vBfnQOmNnsc9WU80IIatZHQGKc;->get()Ljava/lang/Object;
+HSPLcom/android/server/wm/-$$Lambda$ADNhW0r9Skcs9ezrOGURijI-lyQ;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$ADNhW0r9Skcs9ezrOGURijI-lyQ;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$ADNhW0r9Skcs9ezrOGURijI-lyQ;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$3JeUkmbe0mtunyS6P4HpkAkfKIY;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
+PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$3JeUkmbe0mtunyS6P4HpkAkfKIY;->run()V
PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$9gqV7SOtv0dBXWMri6Jpu47OdLc;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$9gqV7SOtv0dBXWMri6Jpu47OdLc;-><init>()V
-PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$9gqV7SOtv0dBXWMri6Jpu47OdLc;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$9gqV7SOtv0dBXWMri6Jpu47OdLc;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$MEjrvbJugXgttKs3lnAk7x7tVPc;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$MEjrvbJugXgttKs3lnAk7x7tVPc;->run()V
PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$fTBXciy3VZJ2vTW_ZJXaKfUj7_I;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$fTBXciy3VZJ2vTW_ZJXaKfUj7_I;->run()V
+PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$l0oslVb5YyQhsmr7OXWV2whbXYU;-><init>(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
+PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$l0oslVb5YyQhsmr7OXWV2whbXYU;->run()V
PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$sZFHZi7b6t6yjfx5mx3RtECSlEU;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$sZFHZi7b6t6yjfx5mx3RtECSlEU;-><init>()V
-PLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$sZFHZi7b6t6yjfx5mx3RtECSlEU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/-$$Lambda$ActivityRecord$HtdWUNDfMjR5UE8GQF_gBD7WtdU;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$ActivityRecord$HtdWUNDfMjR5UE8GQF_gBD7WtdU;-><init>()V
-PLcom/android/server/wm/-$$Lambda$ActivityRecord$HtdWUNDfMjR5UE8GQF_gBD7WtdU;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$ActivityRecord$LWsQRIxoittoVnhxxlG72c1jmys;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$ActivityRecord$LWsQRIxoittoVnhxxlG72c1jmys;-><init>()V
-PLcom/android/server/wm/-$$Lambda$ActivityRecord$LWsQRIxoittoVnhxxlG72c1jmys;->apply(Ljava/lang/Object;)Z
+HPLcom/android/server/wm/-$$Lambda$ActivityMetricsLogger$sZFHZi7b6t6yjfx5mx3RtECSlEU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/wm/-$$Lambda$ActivityRecord$QP-eHsXODaflS0pyRnr8fdoF6BU;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$ActivityRecord$QP-eHsXODaflS0pyRnr8fdoF6BU;-><init>()V
PLcom/android/server/wm/-$$Lambda$ActivityRecord$QP-eHsXODaflS0pyRnr8fdoF6BU;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityRecord$TmL40hmGhjc2_QavTI0gwtolvY8;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityRecord$TmL40hmGhjc2_QavTI0gwtolvY8;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityRecord$TmL40hmGhjc2_QavTI0gwtolvY8;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$ActivityRecord$XnMxHSlbhK9x7qGQcZpHSkPOQvQ;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$ActivityRecord$XnMxHSlbhK9x7qGQcZpHSkPOQvQ;-><init>()V
-PLcom/android/server/wm/-$$Lambda$ActivityRecord$XnMxHSlbhK9x7qGQcZpHSkPOQvQ;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$ActivityRecord$XnMxHSlbhK9x7qGQcZpHSkPOQvQ;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$ActivityRecord$YSVwd546vKWMiMYy7MFzg1qRiio;-><init>(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/-$$Lambda$ActivityRecord$YY5kCNb4uWg5W_2lbH3ZOqirP1g;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$ActivityRecord$YY5kCNb4uWg5W_2lbH3ZOqirP1g;-><init>()V
PLcom/android/server/wm/-$$Lambda$ActivityRecord$YY5kCNb4uWg5W_2lbH3ZOqirP1g;->apply(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$ActivityRecord$gHNTxsqqXHTV3N7vXQjmY818XQI;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityRecord$gHNTxsqqXHTV3N7vXQjmY818XQI;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityRecord$gHNTxsqqXHTV3N7vXQjmY818XQI;->apply(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$ActivityRecord$lyqdJlA4QOn1CXj7zglxNJxDy9o;-><init>(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/-$$Lambda$ActivityRecord$lyqdJlA4QOn1CXj7zglxNJxDy9o;->get()Ljava/lang/Object;
PLcom/android/server/wm/-$$Lambda$ActivityRecord$prAsqx_JQJTqW1jNxmkuU3AV8AU;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$ActivityRecord$prAsqx_JQJTqW1jNxmkuU3AV8AU;-><init>()V
-PLcom/android/server/wm/-$$Lambda$ActivityRecord$prAsqx_JQJTqW1jNxmkuU3AV8AU;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/wm/-$$Lambda$ActivityRecord$prAsqx_JQJTqW1jNxmkuU3AV8AU;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/wm/-$$Lambda$ActivityRecord$tt99EJHW_Nk5qgU9galJBIm5wXg;-><init>(Lcom/android/server/policy/WindowManagerPolicy$StartingSurface;)V
PLcom/android/server/wm/-$$Lambda$ActivityRecord$tt99EJHW_Nk5qgU9galJBIm5wXg;->run()V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$4P0uIgoCSUi6epIgwUfZymXLX2w;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$4P0uIgoCSUi6epIgwUfZymXLX2w;-><init>()V
-HPLcom/android/server/wm/-$$Lambda$ActivityStack$4P0uIgoCSUi6epIgwUfZymXLX2w;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$ActivityRecord$viEGm2vZbJCQ4-hdkomJCNYJiHU;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityRecord$viEGm2vZbJCQ4-hdkomJCNYJiHU;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$ActivityRecord$viEGm2vZbJCQ4-hdkomJCNYJiHU;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$ActivityStack$0bNPw28X3N2biqQIdsnZuX7xaP4;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$ActivityStack$0bNPw28X3N2biqQIdsnZuX7xaP4;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$ActivityStack$0bNPw28X3N2biqQIdsnZuX7xaP4;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$ActivityStack$2g-Gmexz3kbCg6lRcnM6dKBTDYc;-><init>(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/DisplayContent;Landroid/graphics/Rect;Landroid/graphics/Rect;IIZZI)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$2g-Gmexz3kbCg6lRcnM6dKBTDYc;->run()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$4eA3orAXlhwXqOJQ8sydb6lzW_4;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$4eA3orAXlhwXqOJQ8sydb6lzW_4;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$4eA3orAXlhwXqOJQ8sydb6lzW_4;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$ActivityStack$BmRNRfPY9eDs_h7lUVkDfKuzXrA;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$BmRNRfPY9eDs_h7lUVkDfKuzXrA;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$ActivityStack$BmRNRfPY9eDs_h7lUVkDfKuzXrA;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$Bw4s_aT8NefvklvOlavSngajM-8;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$Bw4s_aT8NefvklvOlavSngajM-8;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$ActivityStack$Bw4s_aT8NefvklvOlavSngajM-8;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$ActivityStack$CheckBehindFullscreenActivityHelper$hxEhv3lodv2mTq0c1tG208T2TSs;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$ActivityStack$CheckBehindFullscreenActivityHelper$hxEhv3lodv2mTq0c1tG208T2TSs;-><init>()V
HPLcom/android/server/wm/-$$Lambda$ActivityStack$CheckBehindFullscreenActivityHelper$hxEhv3lodv2mTq0c1tG208T2TSs;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/-$$Lambda$ActivityStack$FkaZkaRIeozTqSdHkmYZNbNtF1I;-><init>(Lcom/android/server/wm/ActivityStack;IZZZZZ)V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$FkaZkaRIeozTqSdHkmYZNbNtF1I;->run()V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$MbOt7bGpxw9wmjZ8kOCkYcDCqMQ;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$MbOt7bGpxw9wmjZ8kOCkYcDCqMQ;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$ActivityStack$FkaZkaRIeozTqSdHkmYZNbNtF1I;-><init>(Lcom/android/server/wm/ActivityStack;IZZZZZ)V
+HSPLcom/android/server/wm/-$$Lambda$ActivityStack$FkaZkaRIeozTqSdHkmYZNbNtF1I;->run()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$GDPUuzTvyfp2z6wYxqAF0vhMJK8;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$GDPUuzTvyfp2z6wYxqAF0vhMJK8;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$GDPUuzTvyfp2z6wYxqAF0vhMJK8;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$LjKdRo1XcwS4pEMN4TDnJTwl_Xs;-><init>(Landroid/util/proto/ProtoOutputStream;I)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$LjKdRo1XcwS4pEMN4TDnJTwl_Xs;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$ActivityStack$MbOt7bGpxw9wmjZ8kOCkYcDCqMQ;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$ActivityStack$MbOt7bGpxw9wmjZ8kOCkYcDCqMQ;-><init>()V
HPLcom/android/server/wm/-$$Lambda$ActivityStack$MbOt7bGpxw9wmjZ8kOCkYcDCqMQ;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$ActivityStack$RemoveHistoryRecordsForApp$8j2ZFLAwkXnwDAxiTFN7mMDLhjU;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$RemoveHistoryRecordsForApp$8j2ZFLAwkXnwDAxiTFN7mMDLhjU;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$N2PfGF62p6Y1TYGt9lvFtsW9LmQ;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$N2PfGF62p6Y1TYGt9lvFtsW9LmQ;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$N2PfGF62p6Y1TYGt9lvFtsW9LmQ;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/-$$Lambda$ActivityStack$NfjvUUwVOB3bYUF_fHSaW6oHS94;-><init>(Landroid/util/proto/ProtoOutputStream;I)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$NfjvUUwVOB3bYUF_fHSaW6oHS94;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$ActivityStack$RemoveHistoryRecordsForApp$8j2ZFLAwkXnwDAxiTFN7mMDLhjU;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$ActivityStack$RemoveHistoryRecordsForApp$8j2ZFLAwkXnwDAxiTFN7mMDLhjU;-><init>()V
HPLcom/android/server/wm/-$$Lambda$ActivityStack$RemoveHistoryRecordsForApp$8j2ZFLAwkXnwDAxiTFN7mMDLhjU;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$ActivityStack$U5MWhpArTVT_b8W6GtTa1Ao8HFs;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$ActivityStack$U5MWhpArTVT_b8W6GtTa1Ao8HFs;-><init>()V
PLcom/android/server/wm/-$$Lambda$ActivityStack$U5MWhpArTVT_b8W6GtTa1Ao8HFs;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$ActivityStack$X9vss1g3clUg_jG-lx3LQEpL5fM;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$X9vss1g3clUg_jG-lx3LQEpL5fM;-><init>()V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$X9vss1g3clUg_jG-lx3LQEpL5fM;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$YJeneLrOvq3GBnNOpP3Jg1nkLcE;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$YJeneLrOvq3GBnNOpP3Jg1nkLcE;-><init>()V
-PLcom/android/server/wm/-$$Lambda$ActivityStack$YJeneLrOvq3GBnNOpP3Jg1nkLcE;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$YAQEcQUrLqR06xiJJApMvOPIxhg;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$YAQEcQUrLqR06xiJJApMvOPIxhg;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$YAQEcQUrLqR06xiJJApMvOPIxhg;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$bz2cGPwYAKpE4bX0VyxJRH8LJRE;-><init>(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$bz2cGPwYAKpE4bX0VyxJRH8LJRE;->run()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$ccf0sRiFvFeqRiJQ6iXIEF1eN1Q;-><init>(Lcom/android/server/wm/ActivityStack;ZLjava/io/PrintWriter;Ljava/io/FileDescriptor;ZZLjava/lang/String;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$ccf0sRiFvFeqRiJQ6iXIEF1eN1Q;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$xrtErRAEnS21CI3h4SKc_WzJFDA;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStack$xrtErRAEnS21CI3h4SKc_WzJFDA;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$0u1RcpeZ6m0BHDGGv8EXroS3KyE;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStack;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$0u1RcpeZ6m0BHDGGv8EXroS3KyE;->run()V
PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$28Zuzbi6usdgbDcOi8hrJg6nZO0;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;)V
PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$28Zuzbi6usdgbDcOi8hrJg6nZO0;->run()V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$BFgD0ahFSDg4CqQNytqWrPRgFII;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$BFgD0ahFSDg4CqQNytqWrPRgFII;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$BFgD0ahFSDg4CqQNytqWrPRgFII;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$MoveTaskToFullscreenHelper$n0VOwWNM3mud17SnHip7XMiWlWE;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$MoveTaskToFullscreenHelper$n0VOwWNM3mud17SnHip7XMiWlWE;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$MoveTaskToFullscreenHelper$n0VOwWNM3mud17SnHip7XMiWlWE;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$PKLpVoHaca7ZAS9IjUCkoGIBtDw;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStack;Z)V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$PKLpVoHaca7ZAS9IjUCkoGIBtDw;->run()V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$mLKHIIzkTAK9QSlSxia8-84y15M;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$mLKHIIzkTAK9QSlSxia8-84y15M;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$mLKHIIzkTAK9QSlSxia8-84y15M;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ActivityStartController$6bTAPCVeDq_D4Y53Y5WNfMK4xBE;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityStartController$6bTAPCVeDq_D4Y53Y5WNfMK4xBE;-><init>()V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$-xFyZDUKMraVkermSJGXQdN3oJ4;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$-xFyZDUKMraVkermSJGXQdN3oJ4;->run()V
+PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$3DTHgCAeEd5OOF7ACeXoCk8mmrQ;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$3DTHgCAeEd5OOF7ACeXoCk8mmrQ;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$3DTHgCAeEd5OOF7ACeXoCk8mmrQ;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$7Ia1bmRpPHHSNlbH8cuLw8dKG04;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$7Ia1bmRpPHHSNlbH8cuLw8dKG04;->run()V
+PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$7ieG0s-7Zp4H2bLiWdOgB6MqhcI;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$7ieG0s-7Zp4H2bLiWdOgB6MqhcI;-><init>()V
+PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$7ieG0s-7Zp4H2bLiWdOgB6MqhcI;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$BXul1K8BX6JEv_ff3NT76qpeZGQ;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/os/IBinder;)V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$BXul1K8BX6JEv_ff3NT76qpeZGQ;->run()V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$Uli7s8UWTEj0IpBUtoST5bmgvKk;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Z)V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$Uli7s8UWTEj0IpBUtoST5bmgvKk;->run()V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$iduseKQrjIWQYD0hJ8Q5DMmuSfE;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Z)V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$iduseKQrjIWQYD0hJ8Q5DMmuSfE;->run()V
+PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$js0zprxhKzo_Mx9ozR8logP_1-c;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;Landroid/app/PictureInPictureParams;)V
+PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$js0zprxhKzo_Mx9ozR8logP_1-c;->run()V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$oP6xxIfnD4kb4JN7aSJU073ULR4;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ZZ)V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$oP6xxIfnD4kb4JN7aSJU073ULR4;->run()V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$p4I6RZJqLXjaEjdISFyNzjAe4HE;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ZLcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$p4I6RZJqLXjaEjdISFyNzjAe4HE;->run()V
-PLcom/android/server/wm/-$$Lambda$AppTransition$xrq-Gwel_FcpfDvO2DrCfGN_3bk;-><init>(Lcom/android/server/wm/AppTransition;)V
+PLcom/android/server/wm/-$$Lambda$AlertWindowNotification$ZuqSYML-X-nkNVTba_yeIT9hJ1s;-><init>(Lcom/android/server/wm/AlertWindowNotification;Z)V
+PLcom/android/server/wm/-$$Lambda$AlertWindowNotification$ZuqSYML-X-nkNVTba_yeIT9hJ1s;->run()V
+PLcom/android/server/wm/-$$Lambda$AlertWindowNotification$iVtcJMb6VtqtAgEtGUDCkGay0tM;-><init>(Lcom/android/server/wm/AlertWindowNotification;)V
+PLcom/android/server/wm/-$$Lambda$AlertWindowNotification$iVtcJMb6VtqtAgEtGUDCkGay0tM;->run()V
+PLcom/android/server/wm/-$$Lambda$AppTransition$B95jxKE2FnT5RNLStTafenhEYj4;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$AppTransition$B95jxKE2FnT5RNLStTafenhEYj4;-><init>()V
+PLcom/android/server/wm/-$$Lambda$AppTransition$B95jxKE2FnT5RNLStTafenhEYj4;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$AppTransition$xrq-Gwel_FcpfDvO2DrCfGN_3bk;-><init>(Lcom/android/server/wm/AppTransition;)V
PLcom/android/server/wm/-$$Lambda$AppTransition$xrq-Gwel_FcpfDvO2DrCfGN_3bk;->run()V
PLcom/android/server/wm/-$$Lambda$AppTransitionController$ZU-2ppbyGJ7-UsXREbcW1x9TJH0;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$AppTransitionController$ZU-2ppbyGJ7-UsXREbcW1x9TJH0;-><init>()V
+PLcom/android/server/wm/-$$Lambda$AppTransitionController$ZU-2ppbyGJ7-UsXREbcW1x9TJH0;->test(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$AppTransitionController$o_nkoN7a-ZHaSAgJCQZcboKz9Ig;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$AppTransitionController$o_nkoN7a-ZHaSAgJCQZcboKz9Ig;-><init>()V
PLcom/android/server/wm/-$$Lambda$AppTransitionController$o_nkoN7a-ZHaSAgJCQZcboKz9Ig;->test(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$AppTransitionController$z5kCoexPNTWFncmRBfeXr6HA2JA;-><init>(ILandroid/util/ArraySet;)V
PLcom/android/server/wm/-$$Lambda$AppTransitionController$z5kCoexPNTWFncmRBfeXr6HA2JA;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$B58NKEOrr2mhFWeS3bqpaZnd11o;-><init>(Lcom/android/server/wm/WindowManagerService$SettingsObserver;)V
-PLcom/android/server/wm/-$$Lambda$B58NKEOrr2mhFWeS3bqpaZnd11o;->run()V
+HSPLcom/android/server/wm/-$$Lambda$B58NKEOrr2mhFWeS3bqpaZnd11o;-><init>(Lcom/android/server/wm/WindowManagerService$SettingsObserver;)V
+HSPLcom/android/server/wm/-$$Lambda$B58NKEOrr2mhFWeS3bqpaZnd11o;->run()V
PLcom/android/server/wm/-$$Lambda$BEx3OWenCvYAaV5h_J2ZkZXhEcY;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$BEx3OWenCvYAaV5h_J2ZkZXhEcY;-><init>()V
PLcom/android/server/wm/-$$Lambda$BEx3OWenCvYAaV5h_J2ZkZXhEcY;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$BoundsAnimationController$3-yWz6AXIW5r1KElGtHEgHZdi5Q;-><init>(Lcom/android/server/wm/BoundsAnimationController;Landroid/animation/AnimationHandler;)V
-PLcom/android/server/wm/-$$Lambda$BoundsAnimationController$3-yWz6AXIW5r1KElGtHEgHZdi5Q;->run()V
+HSPLcom/android/server/wm/-$$Lambda$BoundsAnimationController$3-yWz6AXIW5r1KElGtHEgHZdi5Q;-><init>(Lcom/android/server/wm/BoundsAnimationController;Landroid/animation/AnimationHandler;)V
+HSPLcom/android/server/wm/-$$Lambda$BoundsAnimationController$3-yWz6AXIW5r1KElGtHEgHZdi5Q;->run()V
+PLcom/android/server/wm/-$$Lambda$BoundsAnimationController$BoundsAnimator$eIPNx9WcD7moTPCByy2XhPMSdCs;-><init>(Lcom/android/server/wm/BoundsAnimationController$BoundsAnimator;)V
+PLcom/android/server/wm/-$$Lambda$BoundsAnimationController$BoundsAnimator$eIPNx9WcD7moTPCByy2XhPMSdCs;->run()V
+PLcom/android/server/wm/-$$Lambda$BoundsAnimationController$MoVv_WhxoMrTVo-xz1qu2FMcYrM;-><init>(Lcom/android/server/wm/BoundsAnimationController;)V
+PLcom/android/server/wm/-$$Lambda$BoundsAnimationController$MoVv_WhxoMrTVo-xz1qu2FMcYrM;->run()V
+PLcom/android/server/wm/-$$Lambda$CkqCuQmAGdLOVExbosZfF3sXdHQ;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/-$$Lambda$CkqCuQmAGdLOVExbosZfF3sXdHQ;->get()Ljava/lang/Object;
+PLcom/android/server/wm/-$$Lambda$CvWmQaXToMTllLb80KQ9WdJHYXo;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/-$$Lambda$CvWmQaXToMTllLb80KQ9WdJHYXo;->run()V
PLcom/android/server/wm/-$$Lambda$DLUVMr0q4HDD6VD11G3xgCuJfHo;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$DLUVMr0q4HDD6VD11G3xgCuJfHo;-><init>()V
-PLcom/android/server/wm/-$$Lambda$DaFwIyqZTBVKE2y-TN2iE7CD-r8;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$DaFwIyqZTBVKE2y-TN2iE7CD-r8;-><init>()V
+PLcom/android/server/wm/-$$Lambda$DLUVMr0q4HDD6VD11G3xgCuJfHo;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$DaFwIyqZTBVKE2y-TN2iE7CD-r8;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$DaFwIyqZTBVKE2y-TN2iE7CD-r8;-><init>()V
HPLcom/android/server/wm/-$$Lambda$DaFwIyqZTBVKE2y-TN2iE7CD-r8;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$DisplayContent$-t02M5j-NY8t_HMWggKym0SrI5k;-><init>([I[ILandroid/graphics/Region;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$0yxrqH9eGY2qTjH1u_BvaVrXCSA;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/-$$Lambda$Dimmer$DimState$QYvwJex5H10MFMe0LEzEUs1b2G0;-><init>(Lcom/android/server/wm/Dimmer$DimState;Lcom/android/server/wm/Dimmer$DimAnimatable;)V
+PLcom/android/server/wm/-$$Lambda$Dimmer$DimState$QYvwJex5H10MFMe0LEzEUs1b2G0;->run()V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$0DHYqZExqV37Iiw4M0GSqxCijHE;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region;[ILandroid/graphics/Region;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$0DHYqZExqV37Iiw4M0GSqxCijHE;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$0gBMuAOGNBEAnJdXST73Nf88i7E;-><init>(Landroid/view/SurfaceControl$Transaction;IIZ)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$0gBMuAOGNBEAnJdXST73Nf88i7E;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$0yxrqH9eGY2qTjH1u_BvaVrXCSA;-><init>(Lcom/android/server/wm/DisplayContent;)V
HPLcom/android/server/wm/-$$Lambda$DisplayContent$0yxrqH9eGY2qTjH1u_BvaVrXCSA;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$BvG_N-oQ9idqqb6Bo2x0dq7gI5g;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region;[ILandroid/graphics/Region;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$BvG_N-oQ9idqqb6Bo2x0dq7gI5g;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$D0QJUvhaQkGgoMtOmjw5foY9F8M;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$D0QJUvhaQkGgoMtOmjw5foY9F8M;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$JibsaX4YnJd0ta_wiDDdSp-PjQk;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$2VlyMN8z2sOPqE9-yf-z3-peRMI;-><init>(I)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$2VlyMN8z2sOPqE9-yf-z3-peRMI;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$DisplayContent$4EwMMjZ5_EoQtEZ4VPJm9XUauJY;-><init>(Lcom/android/server/policy/WindowManagerPolicy;ZZZ)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$4EwMMjZ5_EoQtEZ4VPJm9XUauJY;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$7alf4NuxocTwmtWRy0_MvBepKoE;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/util/SparseBooleanArray;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$7alf4NuxocTwmtWRy0_MvBepKoE;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$D0QJUvhaQkGgoMtOmjw5foY9F8M;-><init>(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$D0QJUvhaQkGgoMtOmjw5foY9F8M;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$JKV50ExZuoi3fuNRue0nZXh8ijA;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$JKV50ExZuoi3fuNRue0nZXh8ijA;-><init>()V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$JKV50ExZuoi3fuNRue0nZXh8ijA;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$JibsaX4YnJd0ta_wiDDdSp-PjQk;-><init>(Lcom/android/server/wm/DisplayContent;)V
HPLcom/android/server/wm/-$$Lambda$DisplayContent$JibsaX4YnJd0ta_wiDDdSp-PjQk;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$FI_O7m2qEDfIRZef3D32AxG-rcs;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$FI_O7m2qEDfIRZef3D32AxG-rcs;-><init>()V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$FI_O7m2qEDfIRZef3D32AxG-rcs;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$nqCymC3xR9b3qaeohnnJJpSiajc;-><init>(Lcom/android/server/wm/DisplayContent$NonAppWindowContainers;)V
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$FI_O7m2qEDfIRZef3D32AxG-rcs;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$FI_O7m2qEDfIRZef3D32AxG-rcs;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$FI_O7m2qEDfIRZef3D32AxG-rcs;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$nqCymC3xR9b3qaeohnnJJpSiajc;-><init>(Lcom/android/server/wm/DisplayContent$NonAppWindowContainers;)V
PLcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$nqCymC3xR9b3qaeohnnJJpSiajc;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/wm/-$$Lambda$DisplayContent$SeHNTr4WUVpGmQniHULUi1ST7k8;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$O9XflhhULqGeDab0OHXXGq_DSlU;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$O9XflhhULqGeDab0OHXXGq_DSlU;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$O9XflhhULqGeDab0OHXXGq_DSlU;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$SeHNTr4WUVpGmQniHULUi1ST7k8;-><init>(Lcom/android/server/wm/DisplayContent;)V
HPLcom/android/server/wm/-$$Lambda$DisplayContent$SeHNTr4WUVpGmQniHULUi1ST7k8;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$TaskStackContainers$5H3Kr211kTMg-C28tapuQGzkwN8;-><init>(Lcom/android/server/wm/DisplayContent$TaskStackContainers;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$TaskStackContainers$5H3Kr211kTMg-C28tapuQGzkwN8;->onPreAssignChildLayers()V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$TaskForResizePointSearchResult$1FHFJXiYTNFcgi5tiBrxzbmjdWw;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$TaskForResizePointSearchResult$1FHFJXiYTNFcgi5tiBrxzbmjdWw;-><init>()V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$TaskForResizePointSearchResult$1FHFJXiYTNFcgi5tiBrxzbmjdWw;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$TaskStackContainers$5H3Kr211kTMg-C28tapuQGzkwN8;-><init>(Lcom/android/server/wm/DisplayContent$TaskStackContainers;)V
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$TaskStackContainers$5H3Kr211kTMg-C28tapuQGzkwN8;->onPreAssignChildLayers()V
PLcom/android/server/wm/-$$Lambda$DisplayContent$TaskStackContainers$rQnI0Y8R9ptQ09cGHwbCHDiG2FY;-><init>(Ljava/util/ArrayList;)V
PLcom/android/server/wm/-$$Lambda$DisplayContent$TaskStackContainers$rQnI0Y8R9ptQ09cGHwbCHDiG2FY;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$Ufn2ZjVS0i1L8aeQ8GZMJNJfmcY;-><init>(Lcom/android/server/policy/WindowManagerPolicy;ZZZ)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$Ufn2ZjVS0i1L8aeQ8GZMJNJfmcY;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$a4EkCBfpZNIl1xfYgm2ktgndF8w;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$a4EkCBfpZNIl1xfYgm2ktgndF8w;->apply(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$DisplayContent$eJsj3GR1HdCnOJrZ8_oaLP52jg0;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$YcKsbDd5rrFH1MI8pTOCMIM0mNY;-><init>([III)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$YcKsbDd5rrFH1MI8pTOCMIM0mNY;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$a4EkCBfpZNIl1xfYgm2ktgndF8w;-><init>(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$a4EkCBfpZNIl1xfYgm2ktgndF8w;->apply(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$DisplayContent$cDcvMzGxc6XW13Q8FrU5X4DagqE;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$cDcvMzGxc6XW13Q8FrU5X4DagqE;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$cDcvMzGxc6XW13Q8FrU5X4DagqE;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$dcSGCWAJtdQoc69foFpUzYoTn2I;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;[I)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$dcSGCWAJtdQoc69foFpUzYoTn2I;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$eJsj3GR1HdCnOJrZ8_oaLP52jg0;-><init>(Lcom/android/server/wm/DisplayContent;)V
HPLcom/android/server/wm/-$$Lambda$DisplayContent$eJsj3GR1HdCnOJrZ8_oaLP52jg0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$fiC19lMy-d_-rvza7hhOSw6bOM8;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$fiC19lMy-d_-rvza7hhOSw6bOM8;->compute(Ljava/lang/Object;I)Ljava/lang/Object;
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$fiC19lMy-d_-rvza7hhOSw6bOM8;-><init>(Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$fiC19lMy-d_-rvza7hhOSw6bOM8;->compute(Ljava/lang/Object;I)Ljava/lang/Object;
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$gpAoT7pBNdi6jYEHs_L3kzaRF0g;-><init>([I[ILandroid/graphics/Region;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$gpAoT7pBNdi6jYEHs_L3kzaRF0g;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$k7ctHGhg6DCeupTBZO8cyEJDjLM;-><init>(Lcom/android/server/wm/DisplayContent;Z)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$k7ctHGhg6DCeupTBZO8cyEJDjLM;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$DisplayContent$mRojqgB8byVtZRzyTl2qSRFPgIo;-><init>(I)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$mRojqgB8byVtZRzyTl2qSRFPgIo;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$DisplayContent$qT01Aq6xt_ZOs86A1yDQe-qmPFQ;-><init>(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$mRojqgB8byVtZRzyTl2qSRFPgIo;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$DisplayContent$nUI_QDRGnWH0dX0j3xt2TTkrvZw;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$nUI_QDRGnWH0dX0j3xt2TTkrvZw;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$qT01Aq6xt_ZOs86A1yDQe-qmPFQ;-><init>(Lcom/android/server/wm/DisplayContent;)V
HPLcom/android/server/wm/-$$Lambda$DisplayContent$qT01Aq6xt_ZOs86A1yDQe-qmPFQ;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$w9ep5dwa3CsKsu0rpKSQwF-60A4;-><init>(II)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$w9ep5dwa3CsKsu0rpKSQwF-60A4;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$x9QSHnWitjvGOC1SnurRP5ASz48;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/util/SparseBooleanArray;)V
-PLcom/android/server/wm/-$$Lambda$DisplayContent$x9QSHnWitjvGOC1SnurRP5ASz48;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$DisplayContent$xDPfsCNl85pDNmgsKEQVqdUehiA;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/-$$Lambda$DisplayContent$sYPOy6TL-QiWuU_jcEHYn4HeFnQ;-><init>(II)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$sYPOy6TL-QiWuU_jcEHYn4HeFnQ;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$DisplayContent$xDPfsCNl85pDNmgsKEQVqdUehiA;-><init>(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayContent$xDPfsCNl85pDNmgsKEQVqdUehiA;->test(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$DisplayPolicy$3MnyIKSHFLqhfUifWEQPNp_-J6A;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
-PLcom/android/server/wm/-$$Lambda$DisplayPolicy$3MnyIKSHFLqhfUifWEQPNp_-J6A;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayPolicy$3MnyIKSHFLqhfUifWEQPNp_-J6A;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$DisplayPolicy$FpQuLkFb2EnHvk4Uzhr9G5Rn_xI;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
+PLcom/android/server/wm/-$$Lambda$DisplayPolicy$FpQuLkFb2EnHvk4Uzhr9G5Rn_xI;->createInputEventReceiver(Landroid/view/InputChannel;Landroid/os/Looper;)Landroid/view/InputEventReceiver;
PLcom/android/server/wm/-$$Lambda$DisplayPolicy$IOyP8YVRG92tn9u1muYWZgBbgc0;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
-PLcom/android/server/wm/-$$Lambda$DisplayPolicy$IOyP8YVRG92tn9u1muYWZgBbgc0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayPolicy$IOyP8YVRG92tn9u1muYWZgBbgc0;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$DisplayPolicy$J8sIwXJvltUaPM3jEGO948Bx9ig;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
-PLcom/android/server/wm/-$$Lambda$DisplayPolicy$J8sIwXJvltUaPM3jEGO948Bx9ig;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayPolicy$J8sIwXJvltUaPM3jEGO948Bx9ig;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$DisplayPolicy$LkHee4mchNXMwNt7HLgsMzHofeE;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
-PLcom/android/server/wm/-$$Lambda$DisplayPolicy$LkHee4mchNXMwNt7HLgsMzHofeE;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$DisplayPolicy$LkHee4mchNXMwNt7HLgsMzHofeE;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$DisplayPolicy$QDPgWUhyEOraWnf6a-u4mTBttdw;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
-PLcom/android/server/wm/-$$Lambda$DisplayPolicy$QDPgWUhyEOraWnf6a-u4mTBttdw;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$DisplayPolicy$_FsvHpVUi-gbWmSpT009cJNNmgM;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
-PLcom/android/server/wm/-$$Lambda$DisplayPolicy$j3sY1jb4WFF_F3wOT9D2fB2mOts;-><init>(Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/WindowManagerService;I)V
+HPLcom/android/server/wm/-$$Lambda$DisplayPolicy$QDPgWUhyEOraWnf6a-u4mTBttdw;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$DisplayPolicy$_FsvHpVUi-gbWmSpT009cJNNmgM;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
+HSPLcom/android/server/wm/-$$Lambda$DisplayPolicy$j3sY1jb4WFF_F3wOT9D2fB2mOts;-><init>(Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/WindowManagerService;I)V
PLcom/android/server/wm/-$$Lambda$DisplayPolicy$pqtzqy0ti-csynvTP9P1eQUE-gE;-><init>(I)V
-PLcom/android/server/wm/-$$Lambda$DisplayPolicy$pqtzqy0ti-csynvTP9P1eQUE-gE;->apply(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$DisplayPolicy$wrdG81IaCZoCL0YqumBunZu5DyM;-><init>(Lcom/android/server/wm/DisplayPolicy;ILjava/lang/String;Landroid/util/Pair;I[Lcom/android/internal/view/AppearanceRegion;ZZZ)V
-PLcom/android/server/wm/-$$Lambda$DisplayPolicy$wrdG81IaCZoCL0YqumBunZu5DyM;->run()V
-PLcom/android/server/wm/-$$Lambda$EnsureActivitiesVisibleHelper$uAeEWwx5d0xk6FKOvvR9CXZS6Bg;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$EnsureActivitiesVisibleHelper$uAeEWwx5d0xk6FKOvvR9CXZS6Bg;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$DisplayPolicy$pqtzqy0ti-csynvTP9P1eQUE-gE;->apply(Ljava/lang/Object;)Z
+HPLcom/android/server/wm/-$$Lambda$DisplayPolicy$wrdG81IaCZoCL0YqumBunZu5DyM;-><init>(Lcom/android/server/wm/DisplayPolicy;ILjava/lang/String;Landroid/util/Pair;I[Lcom/android/internal/view/AppearanceRegion;ZZZ)V
+HPLcom/android/server/wm/-$$Lambda$DisplayPolicy$wrdG81IaCZoCL0YqumBunZu5DyM;->run()V
+HSPLcom/android/server/wm/-$$Lambda$EnsureActivitiesVisibleHelper$uAeEWwx5d0xk6FKOvvR9CXZS6Bg;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$EnsureActivitiesVisibleHelper$uAeEWwx5d0xk6FKOvvR9CXZS6Bg;-><init>()V
HPLcom/android/server/wm/-$$Lambda$EnsureActivitiesVisibleHelper$uAeEWwx5d0xk6FKOvvR9CXZS6Bg;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$FvpUGL5umwa8cY7p8SB7VV6jxQU;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$FvpUGL5umwa8cY7p8SB7VV6jxQU;-><init>()V
+PLcom/android/server/wm/-$$Lambda$FvpUGL5umwa8cY7p8SB7VV6jxQU;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$G7MFeOBgoCefJGCDIl_j8uFkMZI;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$G7MFeOBgoCefJGCDIl_j8uFkMZI;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$G7MFeOBgoCefJGCDIl_j8uFkMZI;->test(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$HLz_SQuxQoIiuaK5SB5xJ6FnoxY;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$HLz_SQuxQoIiuaK5SB5xJ6FnoxY;-><init>()V
PLcom/android/server/wm/-$$Lambda$HLz_SQuxQoIiuaK5SB5xJ6FnoxY;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$IamNNBZp056cXLajnE4zHKSqj-c;-><init>(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/-$$Lambda$IamNNBZp056cXLajnE4zHKSqj-c;->get()Ljava/lang/Object;
PLcom/android/server/wm/-$$Lambda$InsetsStateController$c8m0K1Ykk6OHrDEJKWFPmp5WxKU;-><init>(Lcom/android/server/wm/InsetsStateController;)V
PLcom/android/server/wm/-$$Lambda$InsetsStateController$c8m0K1Ykk6OHrDEJKWFPmp5WxKU;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/-$$Lambda$InsetsStateController$pXoYGy4X5aPw1QFi0iIWKiTMlDg;-><init>(Lcom/android/server/wm/InsetsStateController;)V
-PLcom/android/server/wm/-$$Lambda$InsetsStateController$pXoYGy4X5aPw1QFi0iIWKiTMlDg;->apply(Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/-$$Lambda$InsetsStateController$sIYEJIR4ztgffCLMi5Z1RvdxyYs;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$InsetsStateController$sIYEJIR4ztgffCLMi5Z1RvdxyYs;-><init>()V
-PLcom/android/server/wm/-$$Lambda$InsetsStateController$sIYEJIR4ztgffCLMi5Z1RvdxyYs;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$InsetsStateController$pXoYGy4X5aPw1QFi0iIWKiTMlDg;-><init>(Lcom/android/server/wm/InsetsStateController;)V
+HSPLcom/android/server/wm/-$$Lambda$InsetsStateController$pXoYGy4X5aPw1QFi0iIWKiTMlDg;->apply(Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/wm/-$$Lambda$InsetsStateController$sIYEJIR4ztgffCLMi5Z1RvdxyYs;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$InsetsStateController$sIYEJIR4ztgffCLMi5Z1RvdxyYs;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$InsetsStateController$sIYEJIR4ztgffCLMi5Z1RvdxyYs;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$JTKQBRuxxgBAO5y04IFnI4psyA4;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$JTKQBRuxxgBAO5y04IFnI4psyA4;-><init>()V
+PLcom/android/server/wm/-$$Lambda$JTKQBRuxxgBAO5y04IFnI4psyA4;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/wm/-$$Lambda$LI60v4Y5Me6khV12IZ-zEQtSx7A;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$LI60v4Y5Me6khV12IZ-zEQtSx7A;-><init>()V
PLcom/android/server/wm/-$$Lambda$LI60v4Y5Me6khV12IZ-zEQtSx7A;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$LYW1ECaEajjYgarzgKdTZ4O1fi0;-><init>(Landroid/app/ActivityManagerInternal;)V
PLcom/android/server/wm/-$$Lambda$LYW1ECaEajjYgarzgKdTZ4O1fi0;->run()V
+PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$FhvLqBbd_XMsJK45WV5Mlt8JSYM;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$FhvLqBbd_XMsJK45WV5Mlt8JSYM;-><init>()V
+PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$FhvLqBbd_XMsJK45WV5Mlt8JSYM;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$KukKmVpn5W_1xSV6Dnp8wW2H2Ks;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$KukKmVpn5W_1xSV6Dnp8wW2H2Ks;-><init>()V
PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$KukKmVpn5W_1xSV6Dnp8wW2H2Ks;->accept(Ljava/lang/Object;)V
@@ -16268,25 +19545,27 @@ PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$UGY1OclnLIQLMEL9B55
PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$lAGPwfsXJvBWsyG2rbEfo3sTv34;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$lAGPwfsXJvBWsyG2rbEfo3sTv34;-><init>()V
PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$lAGPwfsXJvBWsyG2rbEfo3sTv34;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$pWUDt4Ot3BWLJOTAhXMkkhHUhpc;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$pWUDt4Ot3BWLJOTAhXMkkhHUhpc;-><init>()V
-PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$pWUDt4Ot3BWLJOTAhXMkkhHUhpc;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$pWUDt4Ot3BWLJOTAhXMkkhHUhpc;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$pWUDt4Ot3BWLJOTAhXMkkhHUhpc;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$pWUDt4Ot3BWLJOTAhXMkkhHUhpc;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$veRn_GhgLZLlOHOJ0ZYT6KcfYqo;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$veRn_GhgLZLlOHOJ0ZYT6KcfYqo;-><init>()V
PLcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$veRn_GhgLZLlOHOJ0ZYT6KcfYqo;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$LocalAnimationAdapter$X--EomqUvw4qy89IeeTFTH7aCMo;-><init>(Lcom/android/server/wm/LocalAnimationAdapter;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
+HPLcom/android/server/wm/-$$Lambda$LocalAnimationAdapter$X--EomqUvw4qy89IeeTFTH7aCMo;-><init>(Lcom/android/server/wm/LocalAnimationAdapter;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
PLcom/android/server/wm/-$$Lambda$LocalAnimationAdapter$X--EomqUvw4qy89IeeTFTH7aCMo;->run()V
-PLcom/android/server/wm/-$$Lambda$MGgYXq0deCsjjGP-28PM6ahiI2U;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$MGgYXq0deCsjjGP-28PM6ahiI2U;-><init>()V
-PLcom/android/server/wm/-$$Lambda$MGgYXq0deCsjjGP-28PM6ahiI2U;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$OPdXuZQLetMnocdH6XV32JbNQ3I;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$OPdXuZQLetMnocdH6XV32JbNQ3I;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$OPdXuZQLetMnocdH6XV32JbNQ3I;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$OPdXuZQLetMnocdH6XV32JbNQ3I;-><init>()V
+PLcom/android/server/wm/-$$Lambda$OPdXuZQLetMnocdH6XV32JbNQ3I;->getSystemDirectoryForUser(I)Ljava/io/File;
HSPLcom/android/server/wm/-$$Lambda$OuObUsm0bB9g5X0kIXYkBYHvodY;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$OuObUsm0bB9g5X0kIXYkBYHvodY;-><init>()V
PLcom/android/server/wm/-$$Lambda$OuObUsm0bB9g5X0kIXYkBYHvodY;->apply(I)Ljava/lang/Object;
+PLcom/android/server/wm/-$$Lambda$PendingRemoteAnimationRegistry$Entry$giivzkMgzIxukCXvO2EVzLb0oxo;-><init>(Lcom/android/server/wm/PendingRemoteAnimationRegistry$Entry;Ljava/lang/String;)V
+PLcom/android/server/wm/-$$Lambda$PendingRemoteAnimationRegistry$Entry$giivzkMgzIxukCXvO2EVzLb0oxo;->run()V
HSPLcom/android/server/wm/-$$Lambda$PersisterQueue$HOTPBvinkMOqT3zxV3gRm6Y9Wi4;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$PersisterQueue$HOTPBvinkMOqT3zxV3gRm6Y9Wi4;-><init>()V
PLcom/android/server/wm/-$$Lambda$PersisterQueue$HOTPBvinkMOqT3zxV3gRm6Y9Wi4;->process()V
+PLcom/android/server/wm/-$$Lambda$RecentTasks$1$yqVuu6fkQgjlTTs6kgJbxqq3Hng;-><init>(Lcom/android/server/wm/RecentTasks$1;III)V
+PLcom/android/server/wm/-$$Lambda$RecentTasks$1$yqVuu6fkQgjlTTs6kgJbxqq3Hng;->accept(Ljava/lang/Object;)V
HSPLcom/android/server/wm/-$$Lambda$RecentTasks$eaeTjEEoVsLAhHFPccdtbbB3Lrk;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$RecentTasks$eaeTjEEoVsLAhHFPccdtbbB3Lrk;-><init>()V
PLcom/android/server/wm/-$$Lambda$RecentsAnimation$L-oo1O0uvOIOr4MDh9QYSeVU09U;-><clinit>()V
@@ -16301,10 +19580,11 @@ PLcom/android/server/wm/-$$Lambda$RecentsAnimationController$EI4Oe4vlsDKieYi6iTT
PLcom/android/server/wm/-$$Lambda$RecentsAnimationController$j5cfzBzoc-2KFpZ5MiHSgWihq-Y;-><init>(Lcom/android/server/wm/RecentsAnimationController;)V
PLcom/android/server/wm/-$$Lambda$RecentsAnimationController$jw5vdNcR7ME-ta1B7JaOAiF7wKw;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$RecentsAnimationController$jw5vdNcR7ME-ta1B7JaOAiF7wKw;-><init>()V
-PLcom/android/server/wm/-$$Lambda$RecentsAnimationController$jw5vdNcR7ME-ta1B7JaOAiF7wKw;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/wm/-$$Lambda$RecentsAnimationController$jw5vdNcR7ME-ta1B7JaOAiF7wKw;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/wm/-$$Lambda$RemoteAnimationController$74uuXaM2TqjkzYi0b8LqJdbycxA;-><init>(Lcom/android/server/wm/RemoteAnimationController;[Landroid/view/RemoteAnimationTarget;[Landroid/view/RemoteAnimationTarget;)V
PLcom/android/server/wm/-$$Lambda$RemoteAnimationController$74uuXaM2TqjkzYi0b8LqJdbycxA;->run()V
PLcom/android/server/wm/-$$Lambda$RemoteAnimationController$dP8qDptNigoqhzVtIudsX5naGu4;-><init>(Lcom/android/server/wm/RemoteAnimationController;)V
+PLcom/android/server/wm/-$$Lambda$RemoteAnimationController$dP8qDptNigoqhzVtIudsX5naGu4;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$RemoteAnimationController$uQS8vaPKQ-E3x_9G8NCxPQmw1fw;-><init>(Lcom/android/server/wm/RemoteAnimationController;)V
PLcom/android/server/wm/-$$Lambda$ResetTargetTaskHelper$APiSnEpUwnLFg5o4cp87NyJw4j4;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$ResetTargetTaskHelper$APiSnEpUwnLFg5o4cp87NyJw4j4;-><init>()V
@@ -16312,66 +19592,86 @@ PLcom/android/server/wm/-$$Lambda$ResetTargetTaskHelper$APiSnEpUwnLFg5o4cp87NyJw
PLcom/android/server/wm/-$$Lambda$ResetTargetTaskHelper$O-Gmp4WswvLHsJ0Qd1g0pv2tF14;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$ResetTargetTaskHelper$O-Gmp4WswvLHsJ0Qd1g0pv2tF14;-><init>()V
PLcom/android/server/wm/-$$Lambda$ResetTargetTaskHelper$O-Gmp4WswvLHsJ0Qd1g0pv2tF14;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/-$$Lambda$RootActivityContainer$-T1KVP2TtHv3l0Zlmfrn4vxoQQc;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$RootActivityContainer$-T1KVP2TtHv3l0Zlmfrn4vxoQQc;-><init>()V
+PLcom/android/server/wm/-$$Lambda$RootActivityContainer$-T1KVP2TtHv3l0Zlmfrn4vxoQQc;->test(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$RootActivityContainer$9O6SlwnVdOQOeIhS3piXF8cKYuc;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$RootActivityContainer$9O6SlwnVdOQOeIhS3piXF8cKYuc;-><init>()V
-PLcom/android/server/wm/-$$Lambda$RootActivityContainer$9O6SlwnVdOQOeIhS3piXF8cKYuc;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$RootActivityContainer$9O6SlwnVdOQOeIhS3piXF8cKYuc;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$RootActivityContainer$FinishDisabledPackageActivitiesHelper$9-v97dlGzOZFE2uue1WUlIhpevA;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$RootActivityContainer$FinishDisabledPackageActivitiesHelper$9-v97dlGzOZFE2uue1WUlIhpevA;-><init>()V
-PLcom/android/server/wm/-$$Lambda$RootActivityContainer$FinishDisabledPackageActivitiesHelper$9-v97dlGzOZFE2uue1WUlIhpevA;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/-$$Lambda$RootActivityContainer$eTBwQBLMAzyK1I2vbgH_wbrf5n0;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$RootActivityContainer$eTBwQBLMAzyK1I2vbgH_wbrf5n0;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$RootActivityContainer$FinishDisabledPackageActivitiesHelper$9-v97dlGzOZFE2uue1WUlIhpevA;->apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HSPLcom/android/server/wm/-$$Lambda$RootActivityContainer$eTBwQBLMAzyK1I2vbgH_wbrf5n0;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$RootActivityContainer$eTBwQBLMAzyK1I2vbgH_wbrf5n0;-><init>()V
HPLcom/android/server/wm/-$$Lambda$RootActivityContainer$eTBwQBLMAzyK1I2vbgH_wbrf5n0;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/wm/-$$Lambda$RootActivityContainer$fHk49MMjn6AhjkanMrllHlVnoy0;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$RootActivityContainer$fHk49MMjn6AhjkanMrllHlVnoy0;-><init>()V
-PLcom/android/server/wm/-$$Lambda$RootActivityContainer$fHk49MMjn6AhjkanMrllHlVnoy0;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$RootActivityContainer$m1XaUaXYDseEoG-rccxbUydXgO8;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$RootActivityContainer$m1XaUaXYDseEoG-rccxbUydXgO8;-><init>()V
-PLcom/android/server/wm/-$$Lambda$RootActivityContainer$m1XaUaXYDseEoG-rccxbUydXgO8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$RootActivityContainer$fHk49MMjn6AhjkanMrllHlVnoy0;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$RootActivityContainer$kAsUts9ICoBFeiu2wLtN3N0jVY4;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$RootActivityContainer$kAsUts9ICoBFeiu2wLtN3N0jVY4;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$RootActivityContainer$kAsUts9ICoBFeiu2wLtN3N0jVY4;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$RootActivityContainer$m1XaUaXYDseEoG-rccxbUydXgO8;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$RootActivityContainer$m1XaUaXYDseEoG-rccxbUydXgO8;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$RootActivityContainer$m1XaUaXYDseEoG-rccxbUydXgO8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$RootActivityContainer$xJQTdvTIrdue_psRt_XJNwTCmzA;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$RootActivityContainer$xJQTdvTIrdue_psRt_XJNwTCmzA;-><init>()V
HPLcom/android/server/wm/-$$Lambda$RootActivityContainer$xJQTdvTIrdue_psRt_XJNwTCmzA;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$RootWindowContainer$7XcqfZjQLAbjpIyed3iDnVtZro4;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$RootWindowContainer$7XcqfZjQLAbjpIyed3iDnVtZro4;-><init>()V
-PLcom/android/server/wm/-$$Lambda$RootWindowContainer$7XcqfZjQLAbjpIyed3iDnVtZro4;->accept(Ljava/lang/Object;)V
-HPLcom/android/server/wm/-$$Lambda$RootWindowContainer$IlD1lD49ui7gQmU2NkxgnXIhlOo;-><init>(I)V
+HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$7XcqfZjQLAbjpIyed3iDnVtZro4;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$7XcqfZjQLAbjpIyed3iDnVtZro4;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$7XcqfZjQLAbjpIyed3iDnVtZro4;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$RootWindowContainer$GNZWuoiMNi2XGPa9C70en5XvGQU;-><init>(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/wm/-$$Lambda$RootWindowContainer$GNZWuoiMNi2XGPa9C70en5XvGQU;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$RootWindowContainer$IlD1lD49ui7gQmU2NkxgnXIhlOo;-><init>(I)V
HPLcom/android/server/wm/-$$Lambda$RootWindowContainer$IlD1lD49ui7gQmU2NkxgnXIhlOo;->apply(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$RootWindowContainer$Vvv8jzH2oSE9-eakZwTuKd5NpsU;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$RootWindowContainer$Vvv8jzH2oSE9-eakZwTuKd5NpsU;-><init>()V
-PLcom/android/server/wm/-$$Lambda$RootWindowContainer$Vvv8jzH2oSE9-eakZwTuKd5NpsU;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$RootWindowContainer$qT2ficAmvrvFcBdiJIGNKxJ8Z9Q;-><init>(Lcom/android/server/wm/RootWindowContainer;)V
+HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$Vvv8jzH2oSE9-eakZwTuKd5NpsU;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$Vvv8jzH2oSE9-eakZwTuKd5NpsU;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$RootWindowContainer$Vvv8jzH2oSE9-eakZwTuKd5NpsU;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$RootWindowContainer$jHLZ5ssJOPMd9KJ4tf6FHZ8ZLXI;-><init>(Landroid/util/ArraySet;Z)V
+PLcom/android/server/wm/-$$Lambda$RootWindowContainer$jHLZ5ssJOPMd9KJ4tf6FHZ8ZLXI;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$RootWindowContainer$nRMSe8o9Vhp4MBHMJJoyb6ObTQ0;-><init>(Ljava/util/ArrayList;Ljava/io/PrintWriter;[IZ)V
+PLcom/android/server/wm/-$$Lambda$RootWindowContainer$nRMSe8o9Vhp4MBHMJJoyb6ObTQ0;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$RootWindowContainer$qT2ficAmvrvFcBdiJIGNKxJ8Z9Q;-><init>(Lcom/android/server/wm/RootWindowContainer;)V
PLcom/android/server/wm/-$$Lambda$RootWindowContainer$qT2ficAmvrvFcBdiJIGNKxJ8Z9Q;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$RootWindowContainer$vMW2dyMvZQ0PDhptvNKN5WXpK_w;-><init>(IZ)V
PLcom/android/server/wm/-$$Lambda$RootWindowContainer$vMW2dyMvZQ0PDhptvNKN5WXpK_w;->accept(Ljava/lang/Object;)V
HSPLcom/android/server/wm/-$$Lambda$RunningTasks$MPCBAZpSXKx53M7vrqtvLfftJOc;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$RunningTasks$MPCBAZpSXKx53M7vrqtvLfftJOc;-><init>()V
HPLcom/android/server/wm/-$$Lambda$RunningTasks$MPCBAZpSXKx53M7vrqtvLfftJOc;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/wm/-$$Lambda$Session$15hO_YO9_yR6FTMdPPe87fZzL1c;-><init>(Landroid/os/IBinder;)V
+PLcom/android/server/wm/-$$Lambda$RunningTasks$hR_Ryk91b0B2BdJN9eCfQfPwC3g;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$RunningTasks$hR_Ryk91b0B2BdJN9eCfQfPwC3g;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$RunningTasks$hR_Ryk91b0B2BdJN9eCfQfPwC3g;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$ScreenRotationAnimation$SurfaceRotationAnimationController$R3Rh3gcwK_nBUAZq4hlWwmQXjXA;-><init>(Lcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;)V
+PLcom/android/server/wm/-$$Lambda$ScreenRotationAnimation$SurfaceRotationAnimationController$R3Rh3gcwK_nBUAZq4hlWwmQXjXA;->run()V
+HPLcom/android/server/wm/-$$Lambda$Session$15hO_YO9_yR6FTMdPPe87fZzL1c;-><init>(Landroid/os/IBinder;)V
PLcom/android/server/wm/-$$Lambda$Session$15hO_YO9_yR6FTMdPPe87fZzL1c;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$Session$zgdcs0nAb8hCdS-6ugnFMadbhU8;-><init>(FFFF)V
+HPLcom/android/server/wm/-$$Lambda$Session$zgdcs0nAb8hCdS-6ugnFMadbhU8;-><init>(FFFF)V
PLcom/android/server/wm/-$$Lambda$Session$zgdcs0nAb8hCdS-6ugnFMadbhU8;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$StatusBarController$1$3FiQ0kybPCSlgcNJkCsNm5M12iA;-><init>(Lcom/android/server/wm/StatusBarController$1;)V
+HSPLcom/android/server/wm/-$$Lambda$StatusBarController$1$3FiQ0kybPCSlgcNJkCsNm5M12iA;-><init>(Lcom/android/server/wm/StatusBarController$1;)V
PLcom/android/server/wm/-$$Lambda$StatusBarController$1$3FiQ0kybPCSlgcNJkCsNm5M12iA;->run()V
-PLcom/android/server/wm/-$$Lambda$StatusBarController$1$CizMeoiz6ZVrkt6kAKpSV5htmyc;-><init>(Lcom/android/server/wm/StatusBarController$1;)V
+HSPLcom/android/server/wm/-$$Lambda$StatusBarController$1$CizMeoiz6ZVrkt6kAKpSV5htmyc;-><init>(Lcom/android/server/wm/StatusBarController$1;)V
+PLcom/android/server/wm/-$$Lambda$StatusBarController$1$CizMeoiz6ZVrkt6kAKpSV5htmyc;->run()V
PLcom/android/server/wm/-$$Lambda$StatusBarController$1$t71qcQIBSxRShk0Xohf1lk53bOw;-><init>(Lcom/android/server/wm/StatusBarController$1;JJ)V
PLcom/android/server/wm/-$$Lambda$StatusBarController$1$t71qcQIBSxRShk0Xohf1lk53bOw;->run()V
-PLcom/android/server/wm/-$$Lambda$StatusBarController$1$x4q7e0Eysf0ynMSdT1A-JN_ucuI;-><init>(Lcom/android/server/wm/StatusBarController$1;)V
+HSPLcom/android/server/wm/-$$Lambda$StatusBarController$1$x4q7e0Eysf0ynMSdT1A-JN_ucuI;-><init>(Lcom/android/server/wm/StatusBarController$1;)V
PLcom/android/server/wm/-$$Lambda$StatusBarController$1$x4q7e0Eysf0ynMSdT1A-JN_ucuI;->run()V
-PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$9Wa9MhcrSX12liOouHtYXEkDU60;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
+HPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$9Wa9MhcrSX12liOouHtYXEkDU60;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$9Wa9MhcrSX12liOouHtYXEkDU60;->doFrame(J)V
-PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$lSzwjoKEGADoEFOzdEnwriAk0T4;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
-PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$lSzwjoKEGADoEFOzdEnwriAk0T4;->run()V
-PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$puhYAP5tF0mSSJva-eUz59HnrkA;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;Landroid/animation/ValueAnimator;)V
-PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$puhYAP5tF0mSSJva-eUz59HnrkA;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V
-PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$we7K92eAl3biB_bzyqbv5xCmasE;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
+PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$SGOilG6qRe0XTsTJRQqQKhta0pA;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)V
+PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$SGOilG6qRe0XTsTJRQqQKhta0pA;->run()V
+HSPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$lSzwjoKEGADoEFOzdEnwriAk0T4;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
+HPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$lSzwjoKEGADoEFOzdEnwriAk0T4;->run()V
+HPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$puhYAP5tF0mSSJva-eUz59HnrkA;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;Landroid/animation/ValueAnimator;)V
+HPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$puhYAP5tF0mSSJva-eUz59HnrkA;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V
+HSPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$we7K92eAl3biB_bzyqbv5xCmasE;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$we7K92eAl3biB_bzyqbv5xCmasE;->makeAnimator()Landroid/animation/ValueAnimator;
-PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$xDyZdsMrcbp64p4BQmOGPvVnSWA;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
-PLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$xDyZdsMrcbp64p4BQmOGPvVnSWA;->run()V
+HSPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$xDyZdsMrcbp64p4BQmOGPvVnSWA;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
+HSPLcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$xDyZdsMrcbp64p4BQmOGPvVnSWA;->run()V
PLcom/android/server/wm/-$$Lambda$SurfaceAnimator$M9kRDTUpVS03LTqe-QLQz3DnMhk;-><init>(Lcom/android/server/wm/SurfaceAnimator;Lcom/android/server/wm/AnimationAdapter;Ljava/lang/Runnable;)V
PLcom/android/server/wm/-$$Lambda$SurfaceAnimator$M9kRDTUpVS03LTqe-QLQz3DnMhk;->run()V
-PLcom/android/server/wm/-$$Lambda$SurfaceAnimator$vdRZk66hQVbQCvVXEaQCT1kVmFc;-><init>(Lcom/android/server/wm/SurfaceAnimator;Ljava/lang/Runnable;)V
+HSPLcom/android/server/wm/-$$Lambda$SurfaceAnimator$vdRZk66hQVbQCvVXEaQCT1kVmFc;-><init>(Lcom/android/server/wm/SurfaceAnimator;Ljava/lang/Runnable;)V
PLcom/android/server/wm/-$$Lambda$SurfaceAnimator$vdRZk66hQVbQCvVXEaQCT1kVmFc;->onAnimationFinished(Lcom/android/server/wm/AnimationAdapter;)V
-PLcom/android/server/wm/-$$Lambda$SystemGesturesPointerEventListener$9Iw39fjTtjXO5kacgrpdxfxjuSY;-><init>(Lcom/android/server/wm/SystemGesturesPointerEventListener;)V
-PLcom/android/server/wm/-$$Lambda$SystemGesturesPointerEventListener$9Iw39fjTtjXO5kacgrpdxfxjuSY;->run()V
+HSPLcom/android/server/wm/-$$Lambda$SystemGesturesPointerEventListener$9Iw39fjTtjXO5kacgrpdxfxjuSY;-><init>(Lcom/android/server/wm/SystemGesturesPointerEventListener;)V
+HSPLcom/android/server/wm/-$$Lambda$SystemGesturesPointerEventListener$9Iw39fjTtjXO5kacgrpdxfxjuSY;->run()V
PLcom/android/server/wm/-$$Lambda$Task$2Dfz5yY09PC4DNoGpbJL4lMbjDo;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$Task$2Dfz5yY09PC4DNoGpbJL4lMbjDo;-><init>()V
PLcom/android/server/wm/-$$Lambda$Task$2Dfz5yY09PC4DNoGpbJL4lMbjDo;->test(Ljava/lang/Object;)Z
@@ -16383,13 +19683,17 @@ PLcom/android/server/wm/-$$Lambda$Task$BP51Xfr33NBfsJ4rKO04RomX2Tg;-><init>()V
PLcom/android/server/wm/-$$Lambda$Task$BP51Xfr33NBfsJ4rKO04RomX2Tg;->test(Ljava/lang/Object;Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$Task$FindRootHelper$sIea0VfMPIGsR0Xwg7rABysHwZ4;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$Task$FindRootHelper$sIea0VfMPIGsR0Xwg7rABysHwZ4;-><init>()V
-PLcom/android/server/wm/-$$Lambda$Task$FindRootHelper$sIea0VfMPIGsR0Xwg7rABysHwZ4;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/wm/-$$Lambda$Task$FindRootHelper$sIea0VfMPIGsR0Xwg7rABysHwZ4;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/wm/-$$Lambda$Task$OQmaRDKXdgA0v6VfNwTX7wOkwBs;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$Task$OQmaRDKXdgA0v6VfNwTX7wOkwBs;-><init>()V
PLcom/android/server/wm/-$$Lambda$Task$OQmaRDKXdgA0v6VfNwTX7wOkwBs;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/-$$Lambda$Task$SRt5iDqxFMzfuMULgjnmoyWp73o;-><init>(Ljava/io/PrintWriter;Ljava/lang/String;[ILjava/lang/String;Z)V
+PLcom/android/server/wm/-$$Lambda$Task$SRt5iDqxFMzfuMULgjnmoyWp73o;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$Task$TUGPkEKamN60PF6hJQxUwDBjU-M;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$Task$TUGPkEKamN60PF6hJQxUwDBjU-M;-><init>()V
-PLcom/android/server/wm/-$$Lambda$Task$TUGPkEKamN60PF6hJQxUwDBjU-M;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+HPLcom/android/server/wm/-$$Lambda$Task$TUGPkEKamN60PF6hJQxUwDBjU-M;->apply(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/-$$Lambda$Task$UZHgJINsQMxoLLbKNADHN5xbji8;-><init>(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/wm/-$$Lambda$Task$UZHgJINsQMxoLLbKNADHN5xbji8;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$Task$V2nwgQi-xYvgAjezrWRsKUB2nLI;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$Task$V2nwgQi-xYvgAjezrWRsKUB2nLI;-><init>()V
PLcom/android/server/wm/-$$Lambda$Task$V2nwgQi-xYvgAjezrWRsKUB2nLI;->test(Ljava/lang/Object;)Z
@@ -16407,6 +19711,8 @@ PLcom/android/server/wm/-$$Lambda$Task$wJrggGO94VQWnIMvq8QrsNZ1LZk;->accept(Ljav
PLcom/android/server/wm/-$$Lambda$Task$xh_oQC7HZKaIUa_hEyntZO3NQcs;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$Task$xh_oQC7HZKaIUa_hEyntZO3NQcs;-><init>()V
HPLcom/android/server/wm/-$$Lambda$Task$xh_oQC7HZKaIUa_hEyntZO3NQcs;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$Task$zTlXbC5QcSokVoyim7UHGu8aFek;-><init>(Landroid/util/proto/ProtoOutputStream;I)V
+PLcom/android/server/wm/-$$Lambda$Task$zTlXbC5QcSokVoyim7UHGu8aFek;->accept(Ljava/lang/Object;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$0m_-qN9QkcgkoWun2Biw8le4l1Y;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$0m_-qN9QkcgkoWun2Biw8le4l1Y;-><init>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$1ziXgnyLi0gQjqMGJAbSzs0-dmE;-><clinit>()V
@@ -16418,12 +19724,13 @@ HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$Dvvt1gNNfFR
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$Dvvt1gNNfFRVEKlSCdL_9VnilUE;-><init>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$Ge3jFevRwpndz6qRSLDXODq2VjE;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$Ge3jFevRwpndz6qRSLDXODq2VjE;-><init>()V
-PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$Ge3jFevRwpndz6qRSLDXODq2VjE;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+HPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$Ge3jFevRwpndz6qRSLDXODq2VjE;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$Kz-Od_gLhLbMtGka4r78W0Gmzgo;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$Kz-Od_gLhLbMtGka4r78W0Gmzgo;-><init>()V
PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$Kz-Od_gLhLbMtGka4r78W0Gmzgo;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$M2NSB3SSVJR2Tu4vihNfsIL31s4;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$M2NSB3SSVJR2Tu4vihNfsIL31s4;-><init>()V
+PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$M2NSB3SSVJR2Tu4vihNfsIL31s4;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$MS67FdGix7tWO0Od9imcaKVXL7I;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$MS67FdGix7tWO0Od9imcaKVXL7I;-><init>()V
PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$MS67FdGix7tWO0Od9imcaKVXL7I;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
@@ -16432,9 +19739,10 @@ HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$NLoKy9SbVr1
PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$NLoKy9SbVr1EJpEjznsKi7yAlpg;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$PSFFTNiSSqx5-emiM-hoY62N04M;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$PSFFTNiSSqx5-emiM-hoY62N04M;-><init>()V
+PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$PSFFTNiSSqx5-emiM-hoY62N04M;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$SAbrujQOZNUflKs1FAg2mBnjx3A;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$SAbrujQOZNUflKs1FAg2mBnjx3A;-><init>()V
-PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$SAbrujQOZNUflKs1FAg2mBnjx3A;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+HPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$SAbrujQOZNUflKs1FAg2mBnjx3A;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$SByuGj5tpcCpjTH9lf5zHHv2gNM;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$SByuGj5tpcCpjTH9lf5zHHv2gNM;-><init>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$UexNbaqPy0mc3VxTw2coCctHho8;-><clinit>()V
@@ -16442,7 +19750,7 @@ HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$UexNbaqPy0m
PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$UexNbaqPy0mc3VxTw2coCctHho8;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$VuvWLQaLHifVGvurVv75MXCukH0;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$VuvWLQaLHifVGvurVv75MXCukH0;-><init>()V
-PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$VuvWLQaLHifVGvurVv75MXCukH0;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+HPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$VuvWLQaLHifVGvurVv75MXCukH0;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$ZLPZtiEvD_F4WUgH7BD4KPpdAWM;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$ZLPZtiEvD_F4WUgH7BD4KPpdAWM;-><init>()V
PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$ZLPZtiEvD_F4WUgH7BD4KPpdAWM;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
@@ -16452,15 +19760,19 @@ HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$cFUeUwnRjuO
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$cFUeUwnRjuOQKcg2c4PnDS0ImTw;-><init>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$k0FXXC-HcWJhmtm6-Kruo6nGeXI;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$k0FXXC-HcWJhmtm6-Kruo6nGeXI;-><init>()V
+PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$k0FXXC-HcWJhmtm6-Kruo6nGeXI;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$kss8MGli3T9b_Y-QDzR2cB843y8;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$kss8MGli3T9b_Y-QDzR2cB843y8;-><init>()V
PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$kss8MGli3T9b_Y-QDzR2cB843y8;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$ncM_yje7-m7HuiJvorBIH_C8Ou4;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$ncM_yje7-m7HuiJvorBIH_C8Ou4;-><init>()V
+PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$ncM_yje7-m7HuiJvorBIH_C8Ou4;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$qONfw3ssOxjb_iMuO2oMzCbXfrg;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$qONfw3ssOxjb_iMuO2oMzCbXfrg;-><init>()V
+PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$qONfw3ssOxjb_iMuO2oMzCbXfrg;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$sS6OHbZtuWHjzmkm8bleSWZWFqA;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$sS6OHbZtuWHjzmkm8bleSWZWFqA;-><init>()V
+PLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$sS6OHbZtuWHjzmkm8bleSWZWFqA;->accept(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$sdBP_U6BS8zRbtZp-gZ0BmFW8bs;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$sdBP_U6BS8zRbtZp-gZ0BmFW8bs;-><init>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$wuBjs4dj7gB_MI4dIdt2gV2Osus;-><clinit>()V
@@ -16468,8 +19780,13 @@ HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$wuBjs4dj7gB
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$yaW9HlZsz3L55CTQ4b7y33IGo94;-><clinit>()V
HSPLcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$yaW9HlZsz3L55CTQ4b7y33IGo94;-><init>()V
PLcom/android/server/wm/-$$Lambda$TaskPersister$8MhgCrM41UuyRqTjWwKtfifKRLo;-><init>(Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/-$$Lambda$TaskPersister$8MhgCrM41UuyRqTjWwKtfifKRLo;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$TaskPersister$mW0HULrR8EtZ9La-pL9kLTnHSzk;-><init>(Ljava/lang/String;)V
+PLcom/android/server/wm/-$$Lambda$TaskPersister$mW0HULrR8EtZ9La-pL9kLTnHSzk;->test(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$TaskPersister$piHtCTZMpbHMTXAk2o7OdlK4Xvc;-><init>(Lcom/android/server/wm/Task;)V
PLcom/android/server/wm/-$$Lambda$TaskPersister$piHtCTZMpbHMTXAk2o7OdlK4Xvc;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$TaskPositioningController$u0oAwi82C-bAGo2JAsAc_9ZLi70;-><init>(Lcom/android/server/wm/TaskPositioningController;Lcom/android/server/wm/DisplayContent;II)V
+PLcom/android/server/wm/-$$Lambda$TaskPositioningController$u0oAwi82C-bAGo2JAsAc_9ZLi70;->run()V
PLcom/android/server/wm/-$$Lambda$TaskSnapshotController$Tj7bQvjfkzsOjJOdJXBpqCZnW1Q;-><init>(Lcom/android/server/wm/TaskSnapshotController;Lcom/android/server/policy/WindowManagerPolicy$ScreenOffListener;)V
PLcom/android/server/wm/-$$Lambda$TaskSnapshotController$Tj7bQvjfkzsOjJOdJXBpqCZnW1Q;->run()V
PLcom/android/server/wm/-$$Lambda$TaskSnapshotController$b7mc92hqzbRpmpc99dYS4wKuL6Y;-><clinit>()V
@@ -16479,26 +19796,28 @@ PLcom/android/server/wm/-$$Lambda$TaskSnapshotController$eY4HzOpxvBAchhbObndnIDQ
PLcom/android/server/wm/-$$Lambda$TaskSnapshotController$eY4HzOpxvBAchhbObndnIDQqsVs;-><init>()V
PLcom/android/server/wm/-$$Lambda$TaskSnapshotController$eY4HzOpxvBAchhbObndnIDQqsVs;->test(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$TaskSnapshotController$pF831VjVO7J7eXZhalKp1CJKNC4;-><init>(Lcom/android/server/wm/TaskSnapshotController;)V
-PLcom/android/server/wm/-$$Lambda$TaskSnapshotController$pF831VjVO7J7eXZhalKp1CJKNC4;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$TaskSnapshotController$pF831VjVO7J7eXZhalKp1CJKNC4;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$UZl9uqUNteVgplGGEK6TMzf-7zk;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$UZl9uqUNteVgplGGEK6TMzf-7zk;-><init>()V
PLcom/android/server/wm/-$$Lambda$UZl9uqUNteVgplGGEK6TMzf-7zk;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$UnknownAppVisibilityController$FYhcjOhYWVp6HX5hr3GGaPg67Gc;-><init>(Lcom/android/server/wm/UnknownAppVisibilityController;)V
+PLcom/android/server/wm/-$$Lambda$UnknownAppVisibilityController$FYhcjOhYWVp6HX5hr3GGaPg67Gc;->run()V
PLcom/android/server/wm/-$$Lambda$VY87MmFWaCLMkNa2qHGaPrThyrI;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$VY87MmFWaCLMkNa2qHGaPrThyrI;-><init>()V
PLcom/android/server/wm/-$$Lambda$VY87MmFWaCLMkNa2qHGaPrThyrI;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$WallpaperAnimationAdapter$-EwtM9NXnIMpRq_OzBHTdmhakaM;-><init>(JJLjava/util/function/Consumer;Ljava/util/ArrayList;Ljava/util/ArrayList;)V
PLcom/android/server/wm/-$$Lambda$WallpaperAnimationAdapter$-EwtM9NXnIMpRq_OzBHTdmhakaM;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$WallpaperController$6pruPGLeSJAwNl9vGfC87eso21w;-><init>(Lcom/android/server/wm/WallpaperController;)V
-PLcom/android/server/wm/-$$Lambda$WallpaperController$6pruPGLeSJAwNl9vGfC87eso21w;->apply(Ljava/lang/Object;)Z
+HSPLcom/android/server/wm/-$$Lambda$WallpaperController$6pruPGLeSJAwNl9vGfC87eso21w;-><init>(Lcom/android/server/wm/WallpaperController;)V
+HPLcom/android/server/wm/-$$Lambda$WallpaperController$6pruPGLeSJAwNl9vGfC87eso21w;->apply(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$WallpaperController$Gy7houdzET4VmpY0QJ2v-NX1b7k;-><init>(Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/-$$Lambda$WallpaperController$Gy7houdzET4VmpY0QJ2v-NX1b7k;->test(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$WindowAnimationSpec$jKE7Phq2DESkeBondpaNPBLn6Cs;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$WindowAnimationSpec$jKE7Phq2DESkeBondpaNPBLn6Cs;-><init>()V
PLcom/android/server/wm/-$$Lambda$WindowAnimationSpec$jKE7Phq2DESkeBondpaNPBLn6Cs;->get()Ljava/lang/Object;
-PLcom/android/server/wm/-$$Lambda$WindowAnimator$U3Fu5_RzEyNo8Jt6zTb2ozdXiqM;-><init>(Lcom/android/server/wm/WindowAnimator;)V
-PLcom/android/server/wm/-$$Lambda$WindowAnimator$U3Fu5_RzEyNo8Jt6zTb2ozdXiqM;->run()V
-PLcom/android/server/wm/-$$Lambda$WindowAnimator$ddXU8gK8rmDqri0OZVMNa3Y4GHk;-><init>(Lcom/android/server/wm/WindowAnimator;)V
-PLcom/android/server/wm/-$$Lambda$WindowAnimator$ddXU8gK8rmDqri0OZVMNa3Y4GHk;->doFrame(J)V
+HSPLcom/android/server/wm/-$$Lambda$WindowAnimator$U3Fu5_RzEyNo8Jt6zTb2ozdXiqM;-><init>(Lcom/android/server/wm/WindowAnimator;)V
+HSPLcom/android/server/wm/-$$Lambda$WindowAnimator$U3Fu5_RzEyNo8Jt6zTb2ozdXiqM;->run()V
+HSPLcom/android/server/wm/-$$Lambda$WindowAnimator$ddXU8gK8rmDqri0OZVMNa3Y4GHk;-><init>(Lcom/android/server/wm/WindowAnimator;)V
+HSPLcom/android/server/wm/-$$Lambda$WindowAnimator$ddXU8gK8rmDqri0OZVMNa3Y4GHk;->doFrame(J)V
PLcom/android/server/wm/-$$Lambda$WindowContainer$-A4y17DMfFWJcsomzkr9vLbjQAE;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$WindowContainer$-A4y17DMfFWJcsomzkr9vLbjQAE;-><init>()V
HPLcom/android/server/wm/-$$Lambda$WindowContainer$-A4y17DMfFWJcsomzkr9vLbjQAE;->test(Ljava/lang/Object;)Z
@@ -16507,66 +19826,100 @@ PLcom/android/server/wm/-$$Lambda$WindowContainer$4sX6UUtugZXD_J917yuWIm58Q9M;->
HPLcom/android/server/wm/-$$Lambda$WindowContainer$4sX6UUtugZXD_J917yuWIm58Q9M;->test(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$WindowContainer$7u99Gj9w15XaOTtX23LKq-yXn5o;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$WindowContainer$7u99Gj9w15XaOTtX23LKq-yXn5o;-><init>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$7u99Gj9w15XaOTtX23LKq-yXn5o;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$WindowContainer$Ar4JvZt2tfqrw63PtPyxRtJjsRE;-><init>(Lcom/android/server/wm/WindowContainer;Lcom/android/server/policy/WindowManagerPolicy;)V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$Ar4JvZt2tfqrw63PtPyxRtJjsRE;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$WindowContainer$7u99Gj9w15XaOTtX23LKq-yXn5o;->test(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$WindowContainer$TQFCJtak2E5nTjAEG9Q24yp-Oi8;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$WindowContainer$TQFCJtak2E5nTjAEG9Q24yp-Oi8;-><init>()V
PLcom/android/server/wm/-$$Lambda$WindowContainer$TQFCJtak2E5nTjAEG9Q24yp-Oi8;->test(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$WindowContainer$WskrGbNwLeexLlAXUNUyGLhHEWA;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$WindowContainer$WskrGbNwLeexLlAXUNUyGLhHEWA;-><init>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$WskrGbNwLeexLlAXUNUyGLhHEWA;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/wm/-$$Lambda$WindowContainer$WskrGbNwLeexLlAXUNUyGLhHEWA;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$WindowContainer$fQfr0FFMMdeUY3lZFLkiF4glOP0;-><init>(Lcom/android/server/wm/WindowContainer;Lcom/android/server/policy/WindowManagerPolicy;)V
+HPLcom/android/server/wm/-$$Lambda$WindowContainer$fQfr0FFMMdeUY3lZFLkiF4glOP0;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$WindowContainer$hEnPtnCJ_pCrhm4O_2UvgVpB0HQ;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$WindowContainer$hEnPtnCJ_pCrhm4O_2UvgVpB0HQ;-><init>()V
-PLcom/android/server/wm/-$$Lambda$WindowContainer$hEnPtnCJ_pCrhm4O_2UvgVpB0HQ;->test(Ljava/lang/Object;)Z
+HPLcom/android/server/wm/-$$Lambda$WindowContainer$hEnPtnCJ_pCrhm4O_2UvgVpB0HQ;->test(Ljava/lang/Object;)Z
+PLcom/android/server/wm/-$$Lambda$WindowContainer$k_PpuHAHKhi1gqk1dQsXNnYX7Ok;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$WindowContainer$k_PpuHAHKhi1gqk1dQsXNnYX7Ok;-><init>()V
+PLcom/android/server/wm/-$$Lambda$WindowContainer$k_PpuHAHKhi1gqk1dQsXNnYX7Ok;->test(Ljava/lang/Object;)Z
+HSPLcom/android/server/wm/-$$Lambda$WindowContainer$lJjjxJS1wJFikrxN0jFMgNna43g;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$WindowContainer$lJjjxJS1wJFikrxN0jFMgNna43g;-><init>()V
+PLcom/android/server/wm/-$$Lambda$WindowContainer$lJjjxJS1wJFikrxN0jFMgNna43g;->test(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$WindowContainer$sh5zVifGKSmT1fuGQxK_5_eAZ20;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$WindowContainer$sh5zVifGKSmT1fuGQxK_5_eAZ20;-><init>()V
PLcom/android/server/wm/-$$Lambda$WindowContainer$sh5zVifGKSmT1fuGQxK_5_eAZ20;->test(Ljava/lang/Object;)Z
-PLcom/android/server/wm/-$$Lambda$WindowManagerConstants$H0Vnr9H2xLD72_22unzb68d1fSM;-><init>(Lcom/android/server/wm/WindowManagerConstants;)V
-PLcom/android/server/wm/-$$Lambda$WindowManagerConstants$YOsWod8qOtbBnduZqPrYHSwyJ5E;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/-$$Lambda$WindowManagerConstants$vqhvZbTPHnj84vQKH9wjAhgVP44;-><init>(Lcom/android/server/wm/WindowManagerConstants;)V
-PLcom/android/server/wm/-$$Lambda$WindowManagerService$-84S7IuSlM65nKgepHJEvVFHdC8;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/-$$Lambda$WindowManagerConstants$H0Vnr9H2xLD72_22unzb68d1fSM;-><init>(Lcom/android/server/wm/WindowManagerConstants;)V
+HSPLcom/android/server/wm/-$$Lambda$WindowManagerConstants$YOsWod8qOtbBnduZqPrYHSwyJ5E;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/-$$Lambda$WindowManagerConstants$vqhvZbTPHnj84vQKH9wjAhgVP44;-><init>(Lcom/android/server/wm/WindowManagerConstants;)V
+HSPLcom/android/server/wm/-$$Lambda$WindowManagerService$-84S7IuSlM65nKgepHJEvVFHdC8;-><init>(Lcom/android/server/wm/WindowManagerService;)V
PLcom/android/server/wm/-$$Lambda$WindowManagerService$8ua71O53dXrMSZy5W0bAg3kK7ho;-><init>(Z)V
-PLcom/android/server/wm/-$$Lambda$WindowManagerService$8ua71O53dXrMSZy5W0bAg3kK7ho;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$WindowManagerService$pUqz7rqEpzd4geO4TXsDyOVZCOc;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/-$$Lambda$WindowManagerService$pUqz7rqEpzd4geO4TXsDyOVZCOc;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$WindowManagerService$qCWPyJrU0wwX4tP-_QpfmersCVc;-><init>(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Function;)V
-PLcom/android/server/wm/-$$Lambda$WindowManagerService$qCWPyJrU0wwX4tP-_QpfmersCVc;->run()V
+HPLcom/android/server/wm/-$$Lambda$WindowManagerService$8ua71O53dXrMSZy5W0bAg3kK7ho;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$_nYJRiVOgbON7mI191FIzNAk4Xs;-><init>(Ljava/lang/String;)V
+PLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$_nYJRiVOgbON7mI191FIzNAk4Xs;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$rEGrcIRCgYp-4kzr5xA12LKQX0E;-><init>(Ljava/lang/String;)V
+PLcom/android/server/wm/-$$Lambda$WindowManagerService$LocalService$rEGrcIRCgYp-4kzr5xA12LKQX0E;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$WindowManagerService$Zv37mcLTUXyG89YznyHzluaKNE0;-><init>(Landroid/app/IAssistDataReceiver;Landroid/graphics/Bitmap;)V
+PLcom/android/server/wm/-$$Lambda$WindowManagerService$Zv37mcLTUXyG89YznyHzluaKNE0;->run()V
+PLcom/android/server/wm/-$$Lambda$WindowManagerService$eaG2e7SQKd8e2ZcXySkFGa1yxFk;-><init>(Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/-$$Lambda$WindowManagerService$eaG2e7SQKd8e2ZcXySkFGa1yxFk;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/-$$Lambda$WindowManagerService$pUqz7rqEpzd4geO4TXsDyOVZCOc;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HPLcom/android/server/wm/-$$Lambda$WindowManagerService$pUqz7rqEpzd4geO4TXsDyOVZCOc;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$WindowManagerService$qCWPyJrU0wwX4tP-_QpfmersCVc;-><init>(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Function;)V
+HSPLcom/android/server/wm/-$$Lambda$WindowManagerService$qCWPyJrU0wwX4tP-_QpfmersCVc;->run()V
+PLcom/android/server/wm/-$$Lambda$WindowManagerShellCommand$prjQFpVCgSa5hzjzlwN4oL9HnaI;-><init>(Ljava/util/ArrayList;)V
+PLcom/android/server/wm/-$$Lambda$WindowManagerShellCommand$prjQFpVCgSa5hzjzlwN4oL9HnaI;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$WindowToken$tFLHn4S6WuSXW1gp1kvT_sp7WC0;-><init>(Lcom/android/server/wm/WindowToken;)V
PLcom/android/server/wm/-$$Lambda$WindowToken$tFLHn4S6WuSXW1gp1kvT_sp7WC0;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
-PLcom/android/server/wm/-$$Lambda$WindowTracing$lz89IHzR4nKO_ZtXtwyNGkRleMY;-><init>(Lcom/android/server/wm/WindowTracing;)V
+HSPLcom/android/server/wm/-$$Lambda$WindowTracing$lz89IHzR4nKO_ZtXtwyNGkRleMY;-><init>(Lcom/android/server/wm/WindowTracing;)V
HSPLcom/android/server/wm/-$$Lambda$Z9QEXZevRsInPMEXX0zFWg8YGMQ;-><init>(Lcom/android/server/wm/RecentTasks;)V
+PLcom/android/server/wm/-$$Lambda$Z9QEXZevRsInPMEXX0zFWg8YGMQ;->run()V
PLcom/android/server/wm/-$$Lambda$_-mEZ6EASUAbbjgZj87dfvxRN64;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$_-mEZ6EASUAbbjgZj87dfvxRN64;-><init>()V
PLcom/android/server/wm/-$$Lambda$_-mEZ6EASUAbbjgZj87dfvxRN64;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$_jL5KNK44AQYPj1d8Hd3FYO0W-M;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$_jL5KNK44AQYPj1d8Hd3FYO0W-M;-><init>()V
PLcom/android/server/wm/-$$Lambda$_jL5KNK44AQYPj1d8Hd3FYO0W-M;->accept(Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$cJE-iQ28Rv-ThCcuht9wXeFzPgo;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$cJE-iQ28Rv-ThCcuht9wXeFzPgo;-><init>()V
-PLcom/android/server/wm/-$$Lambda$cJE-iQ28Rv-ThCcuht9wXeFzPgo;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$cJE-iQ28Rv-ThCcuht9wXeFzPgo;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$cJE-iQ28Rv-ThCcuht9wXeFzPgo;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$cJE-iQ28Rv-ThCcuht9wXeFzPgo;->accept(Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$h-x5kpt7iRsCHGk24gs4Sab2qLw;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$h-x5kpt7iRsCHGk24gs4Sab2qLw;-><init>()V
+PLcom/android/server/wm/-$$Lambda$hD1GQddqK6sJaBtwVBGHwmleilc;-><init>(Ljava/util/ArrayList;)V
+PLcom/android/server/wm/-$$Lambda$hD1GQddqK6sJaBtwVBGHwmleilc;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$hT1kyMEAhvB1-Uxr0DFAlnuU3cQ;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$hT1kyMEAhvB1-Uxr0DFAlnuU3cQ;-><init>()V
PLcom/android/server/wm/-$$Lambda$hT1kyMEAhvB1-Uxr0DFAlnuU3cQ;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$iQxeP_PsHHArcPSFabJ3FXyPKNc;-><init>(Lcom/android/server/wm/WindowManagerService$SettingsObserver;)V
-PLcom/android/server/wm/-$$Lambda$iQxeP_PsHHArcPSFabJ3FXyPKNc;->run()V
-PLcom/android/server/wm/-$$Lambda$ibmQVLjaQW2x74Wk8TcE0Og2MJM;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$ibmQVLjaQW2x74Wk8TcE0Og2MJM;-><init>()V
-PLcom/android/server/wm/-$$Lambda$ibmQVLjaQW2x74Wk8TcE0Og2MJM;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$iQxeP_PsHHArcPSFabJ3FXyPKNc;-><init>(Lcom/android/server/wm/WindowManagerService$SettingsObserver;)V
+HSPLcom/android/server/wm/-$$Lambda$iQxeP_PsHHArcPSFabJ3FXyPKNc;->run()V
+HSPLcom/android/server/wm/-$$Lambda$ibmQVLjaQW2x74Wk8TcE0Og2MJM;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$ibmQVLjaQW2x74Wk8TcE0Og2MJM;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$ibmQVLjaQW2x74Wk8TcE0Og2MJM;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$j9nJq2XXOKyN4f0dfDaTjqmQRvg;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$j9nJq2XXOKyN4f0dfDaTjqmQRvg;-><init>()V
+PLcom/android/server/wm/-$$Lambda$j9nJq2XXOKyN4f0dfDaTjqmQRvg;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$lnLU7X2Jo6KLxEmrQlMdzuxHhJA;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$lnLU7X2Jo6KLxEmrQlMdzuxHhJA;-><init>()V
+PLcom/android/server/wm/-$$Lambda$lnLU7X2Jo6KLxEmrQlMdzuxHhJA;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$oZvG727evJMxIwK1im7QJjcltfo;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$oZvG727evJMxIwK1im7QJjcltfo;-><init>()V
+PLcom/android/server/wm/-$$Lambda$oZvG727evJMxIwK1im7QJjcltfo;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$pAuPvwUqsKCejIrAPrx0ARZSqeY;-><init>(Lcom/android/server/wm/PersisterQueue$WriteQueueItem;)V
+PLcom/android/server/wm/-$$Lambda$pAuPvwUqsKCejIrAPrx0ARZSqeY;->test(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$qMFJUmfG50ZSjk7Tac67xBia0d4;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$qMFJUmfG50ZSjk7Tac67xBia0d4;-><init>()V
PLcom/android/server/wm/-$$Lambda$qMFJUmfG50ZSjk7Tac67xBia0d4;->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/-$$Lambda$swA_sUfSJdP8eC8AA9Iby3-SuOY;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$swA_sUfSJdP8eC8AA9Iby3-SuOY;-><init>()V
-PLcom/android/server/wm/-$$Lambda$swA_sUfSJdP8eC8AA9Iby3-SuOY;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$swA_sUfSJdP8eC8AA9Iby3-SuOY;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$swA_sUfSJdP8eC8AA9Iby3-SuOY;-><init>()V
+HSPLcom/android/server/wm/-$$Lambda$swA_sUfSJdP8eC8AA9Iby3-SuOY;->accept(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
PLcom/android/server/wm/-$$Lambda$uwO6wQlqU3CG7OTdH7NBCKnHs64;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$uwO6wQlqU3CG7OTdH7NBCKnHs64;-><init>()V
PLcom/android/server/wm/-$$Lambda$uwO6wQlqU3CG7OTdH7NBCKnHs64;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/-$$Lambda$yACUZqn1Ak-GL14-Nu3kHUSaLX0;-><clinit>()V
-PLcom/android/server/wm/-$$Lambda$yACUZqn1Ak-GL14-Nu3kHUSaLX0;-><init>()V
-PLcom/android/server/wm/-$$Lambda$yVRF8YoeNdTa8GR1wDStVsHu8xM;-><init>(Lcom/android/server/wm/WindowContainer;)V
+PLcom/android/server/wm/-$$Lambda$x6Ib5GIrsWZg48HsPUVGxKBQJS4;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$x6Ib5GIrsWZg48HsPUVGxKBQJS4;-><init>()V
+PLcom/android/server/wm/-$$Lambda$x6Ib5GIrsWZg48HsPUVGxKBQJS4;->accept(Ljava/lang/Object;)V
+HSPLcom/android/server/wm/-$$Lambda$yACUZqn1Ak-GL14-Nu3kHUSaLX0;-><clinit>()V
+HSPLcom/android/server/wm/-$$Lambda$yACUZqn1Ak-GL14-Nu3kHUSaLX0;-><init>()V
+PLcom/android/server/wm/-$$Lambda$yACUZqn1Ak-GL14-Nu3kHUSaLX0;->startAnimation(Lcom/android/server/wm/SurfaceAnimator;Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;Z)V
+HSPLcom/android/server/wm/-$$Lambda$yVRF8YoeNdTa8GR1wDStVsHu8xM;-><init>(Lcom/android/server/wm/WindowContainer;)V
PLcom/android/server/wm/-$$Lambda$yVRF8YoeNdTa8GR1wDStVsHu8xM;->run()V
PLcom/android/server/wm/-$$Lambda$z5j5fiv3cZuY5AODkt3H3rhKimk;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$z5j5fiv3cZuY5AODkt3H3rhKimk;-><init>()V
@@ -16574,79 +19927,30 @@ PLcom/android/server/wm/-$$Lambda$z5j5fiv3cZuY5AODkt3H3rhKimk;->accept(Ljava/lan
PLcom/android/server/wm/-$$Lambda$zP5AObb0-v-Zzwr-v8NXOg4Yt1c;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$zP5AObb0-v-Zzwr-v8NXOg4Yt1c;-><init>()V
PLcom/android/server/wm/-$$Lambda$zP5AObb0-v-Zzwr-v8NXOg4Yt1c;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
+PLcom/android/server/wm/-$$Lambda$zuO3rEvETpKsuJLTTdIHB2ijeho;-><clinit>()V
+PLcom/android/server/wm/-$$Lambda$zuO3rEvETpKsuJLTTdIHB2ijeho;-><init>()V
+HPLcom/android/server/wm/-$$Lambda$zuO3rEvETpKsuJLTTdIHB2ijeho;->apply(Ljava/lang/Object;)Z
PLcom/android/server/wm/-$$Lambda$zwLNi4Hz7werGBGptK8eYRpBWpw;-><clinit>()V
PLcom/android/server/wm/-$$Lambda$zwLNi4Hz7werGBGptK8eYRpBWpw;-><init>()V
PLcom/android/server/wm/-$$Lambda$zwLNi4Hz7werGBGptK8eYRpBWpw;->accept(Ljava/lang/Object;Ljava/lang/Object;)V
-PLcom/android/server/wm/ActivityDisplay;-><clinit>()V
-PLcom/android/server/wm/ActivityDisplay;-><init>(Lcom/android/server/wm/RootActivityContainer;Landroid/view/Display;)V
-PLcom/android/server/wm/ActivityDisplay;->addStack(Lcom/android/server/wm/ActivityStack;I)V
-PLcom/android/server/wm/ActivityDisplay;->allResumedActivitiesComplete()Z
-PLcom/android/server/wm/ActivityDisplay;->alwaysCreateStack(II)Z
-PLcom/android/server/wm/ActivityDisplay;->createStack(IIZ)Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/ActivityDisplay;->createStackUnchecked(IIIZ)Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/ActivityDisplay;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;IZZ)V
-PLcom/android/server/wm/ActivityDisplay;->findTaskLocked(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/RootActivityContainer$FindTaskResult;)V
-PLcom/android/server/wm/ActivityDisplay;->getFocusedStack()Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/ActivityDisplay;->getLastFocusedStack()Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/ActivityDisplay;->getNextFocusableStack(Lcom/android/server/wm/ActivityStack;Z)Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/ActivityDisplay;->getNextStackId()I
-PLcom/android/server/wm/ActivityDisplay;->getOrCreateStack(IIZ)Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/ActivityDisplay;->getOrCreateStack(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;IZ)Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/ActivityDisplay;->getResumedActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityDisplay;->getStack(I)Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/ActivityDisplay;->getStackAbove(Lcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/ActivityStack;
-HPLcom/android/server/wm/ActivityDisplay;->getTopStackInWindowingMode(I)Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/ActivityDisplay;->handleActivitySizeCompatModeIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityDisplay;->isHomeActivityForUser(Lcom/android/server/wm/ActivityRecord;I)Z
-PLcom/android/server/wm/ActivityDisplay;->isPrivate()Z
-PLcom/android/server/wm/ActivityDisplay;->isRemoved()Z
-PLcom/android/server/wm/ActivityDisplay;->isRemoving()Z
-PLcom/android/server/wm/ActivityDisplay;->isSingleTaskInstance()Z
-PLcom/android/server/wm/ActivityDisplay;->isSleeping()Z
-PLcom/android/server/wm/ActivityDisplay;->isTopNotPinnedStack(Lcom/android/server/wm/ActivityStack;)Z
-PLcom/android/server/wm/ActivityDisplay;->isTopStack(Lcom/android/server/wm/ActivityStack;)Z
-PLcom/android/server/wm/ActivityDisplay;->isWindowingModeSupported(IZZZZI)Z
-PLcom/android/server/wm/ActivityDisplay;->lambda$Ib0_Ntr3Lw7OMuHT-utGz685mJk(Lcom/android/server/wm/ActivityRecord;I)Z
-PLcom/android/server/wm/ActivityDisplay;->moveHomeStackToFront(Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityDisplay;->moveStackBehindBottomMostVisibleStack(Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/ActivityDisplay;->moveStackBehindStack(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/ActivityDisplay;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ActivityDisplay;->onDisplayChanged()V
-PLcom/android/server/wm/ActivityDisplay;->onLockTaskPackagesUpdated()V
-PLcom/android/server/wm/ActivityDisplay;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ActivityDisplay;->onStackOrderChanged(Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/ActivityDisplay;->pauseBackStacks(ZLcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/ActivityDisplay;->performDisplayOverrideConfigUpdate(Landroid/content/res/Configuration;Z)I
-PLcom/android/server/wm/ActivityDisplay;->positionStackAt(Lcom/android/server/wm/ActivityStack;I)V
-PLcom/android/server/wm/ActivityDisplay;->positionStackAt(Lcom/android/server/wm/ActivityStack;IZLjava/lang/String;)V
-PLcom/android/server/wm/ActivityDisplay;->positionStackAtTop(Lcom/android/server/wm/ActivityStack;ZLjava/lang/String;)V
-PLcom/android/server/wm/ActivityDisplay;->registerStackOrderChangedListener(Lcom/android/server/wm/ActivityDisplay$OnStackOrderChangedListener;)V
-PLcom/android/server/wm/ActivityDisplay;->releaseSelfIfNeeded()V
-PLcom/android/server/wm/ActivityDisplay;->setFocusedApp(Lcom/android/server/wm/ActivityRecord;Z)V
-PLcom/android/server/wm/ActivityDisplay;->setIsSleeping(Z)V
-PLcom/android/server/wm/ActivityDisplay;->shouldSleep()Z
-PLcom/android/server/wm/ActivityDisplay;->topRunningActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityDisplay;->topRunningActivity(Z)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityDisplay;->unregisterStackOrderChangedListener(Lcom/android/server/wm/ActivityDisplay$OnStackOrderChangedListener;)V
-PLcom/android/server/wm/ActivityDisplay;->updateDisplayOverrideConfigurationLocked()Z
-PLcom/android/server/wm/ActivityDisplay;->updateDisplayOverrideConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/ActivityTaskManagerService$UpdateConfigurationResult;)Z
-PLcom/android/server/wm/ActivityDisplay;->validateWindowingMode(ILcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;I)I
PLcom/android/server/wm/ActivityMetricsLogger$LaunchingState;-><init>()V
PLcom/android/server/wm/ActivityMetricsLogger$LaunchingState;->access$000(Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;)J
PLcom/android/server/wm/ActivityMetricsLogger$LaunchingState;->access$002(Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;J)J
PLcom/android/server/wm/ActivityMetricsLogger$LaunchingState;->access$100(Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;
PLcom/android/server/wm/ActivityMetricsLogger$LaunchingState;->access$102(Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;IZ)V
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->allDrawn()Z
+HPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;-><init>(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;IZZ)V
+HPLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->allDrawn()Z
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;ZI)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;
+PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->create(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;ZZI)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;
+PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->isInterestingToLoggerAndObserver()Z
PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->removePendingDrawActivity(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;->setLatestLaunchedActivity(Lcom/android/server/wm/ActivityRecord;)V
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$1;)V
-PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;-><init>(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Lcom/android/server/wm/ActivityRecord;I)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$1;)V
PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$1100(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Lcom/android/server/wm/WindowProcessController;
PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$1200(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Ljava/lang/String;
PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->access$300(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)Landroid/content/pm/ApplicationInfo;
@@ -16660,50 +19964,60 @@ PLcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;->getLaunch
HSPLcom/android/server/wm/ActivityMetricsLogger;-><clinit>()V
HSPLcom/android/server/wm/ActivityMetricsLogger;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;Landroid/os/Looper;)V
PLcom/android/server/wm/ActivityMetricsLogger;->abort(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->checkVisibility(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->convertActivityRecordToProto(Lcom/android/server/wm/ActivityRecord;)[B
+HPLcom/android/server/wm/ActivityMetricsLogger;->checkVisibility(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityMetricsLogger;->convertActivityRecordToProto(Lcom/android/server/wm/ActivityRecord;)[B
PLcom/android/server/wm/ActivityMetricsLogger;->convertAppStartTransitionType(I)I
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;
+HPLcom/android/server/wm/ActivityMetricsLogger;->done(ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Ljava/lang/String;J)V
+HPLcom/android/server/wm/ActivityMetricsLogger;->getActiveTransitionInfo(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;
PLcom/android/server/wm/ActivityMetricsLogger;->getArtManagerInternal()Landroid/content/pm/dex/ArtManagerInternal;
PLcom/android/server/wm/ActivityMetricsLogger;->getLastDrawnDelayMs(Lcom/android/server/wm/ActivityRecord;)I
-PLcom/android/server/wm/ActivityMetricsLogger;->getLaunchObserverRegistry()Lcom/android/server/wm/ActivityMetricsLaunchObserverRegistry;
+HSPLcom/android/server/wm/ActivityMetricsLogger;->getLaunchObserverRegistry()Lcom/android/server/wm/ActivityMetricsLaunchObserverRegistry;
PLcom/android/server/wm/ActivityMetricsLogger;->hasActivityToBeDrawn(Lcom/android/server/wm/Task;)Z
PLcom/android/server/wm/ActivityMetricsLogger;->lambda$9gqV7SOtv0dBXWMri6Jpu47OdLc(Lcom/android/server/wm/ActivityMetricsLogger;Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->lambda$hasActivityToBeDrawn$0(Lcom/android/server/wm/ActivityRecord;)Ljava/lang/Boolean;
+HPLcom/android/server/wm/ActivityMetricsLogger;->lambda$hasActivityToBeDrawn$0(Lcom/android/server/wm/ActivityRecord;)Ljava/lang/Boolean;
PLcom/android/server/wm/ActivityMetricsLogger;->lambda$logAppTransitionFinished$1$ActivityMetricsLogger(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
PLcom/android/server/wm/ActivityMetricsLogger;->lambda$logAppTransitionFinished$2$ActivityMetricsLogger(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
+PLcom/android/server/wm/ActivityMetricsLogger;->lambda$logAppTransitionReportedDrawn$3$ActivityMetricsLogger(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
+PLcom/android/server/wm/ActivityMetricsLogger;->lambda$logAppTransitionReportedDrawn$4$ActivityMetricsLogger(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
PLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyActivityLaunchCancelled(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
-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
+HPLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyActivityLaunchFinished(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;J)V
+HPLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyActivityLaunched(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
PLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyIntentFailed()V
-PLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyIntentStarted(Landroid/content/Intent;J)V
-PLcom/android/server/wm/ActivityMetricsLogger;->logAppDisplayed(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->logAppStartMemoryStateCapture(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->logAppTransition(IILcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
+HPLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyIntentStarted(Landroid/content/Intent;J)V
+PLcom/android/server/wm/ActivityMetricsLogger;->launchObserverNotifyReportFullyDrawn(Lcom/android/server/wm/ActivityRecord;J)V
+HPLcom/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
+HPLcom/android/server/wm/ActivityMetricsLogger;->logAppStartMemoryStateCapture(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
+HPLcom/android/server/wm/ActivityMetricsLogger;->logAppTransition(IILcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;)V
PLcom/android/server/wm/ActivityMetricsLogger;->logAppTransitionCancel(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->logAppTransitionFinished(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
+HPLcom/android/server/wm/ActivityMetricsLogger;->logAppTransitionFinished(Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfo;)V
+PLcom/android/server/wm/ActivityMetricsLogger;->logAppTransitionReportedDrawn(Lcom/android/server/wm/ActivityRecord;Z)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;
PLcom/android/server/wm/ActivityMetricsLogger;->logWindowState()V
-PLcom/android/server/wm/ActivityMetricsLogger;->notifyActivityLaunched(Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;ILcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityMetricsLogger;->notifyActivityLaunched(Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;ILcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityMetricsLogger;->notifyActivityLaunching(Landroid/content/Intent;)Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;
PLcom/android/server/wm/ActivityMetricsLogger;->notifyActivityLaunching(Landroid/content/Intent;Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityMetricsLogger$LaunchingState;
-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;->notifyBindApplication(Landroid/content/pm/ApplicationInfo;)V
-PLcom/android/server/wm/ActivityMetricsLogger;->notifyTransitionStarting(Landroid/util/ArrayMap;)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;->notifyActivityRemoved(Lcom/android/server/wm/ActivityRecord;)V
+HSPLcom/android/server/wm/ActivityMetricsLogger;->notifyBindApplication(Landroid/content/pm/ApplicationInfo;)V
+HPLcom/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;J)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;
+HPLcom/android/server/wm/ActivityMetricsLogger;->notifyWindowsDrawn(Lcom/android/server/wm/ActivityRecord;J)Lcom/android/server/wm/ActivityMetricsLogger$TransitionInfoSnapshot;
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$1;-><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$1;)V
PLcom/android/server/wm/ActivityRecord$AddStartingWindow;->run()V
+PLcom/android/server/wm/ActivityRecord$CompatDisplayInsets;-><init>(Lcom/android/server/wm/DisplayContent;Landroid/graphics/Rect;Z)V
+HPLcom/android/server/wm/ActivityRecord$CompatDisplayInsets;->getDisplayBoundsByRotation(Landroid/graphics/Rect;I)V
+HPLcom/android/server/wm/ActivityRecord$CompatDisplayInsets;->getFrameByOrientation(Landroid/graphics/Rect;I)V
PLcom/android/server/wm/ActivityRecord$Token;-><init>(Landroid/content/Intent;)V
PLcom/android/server/wm/ActivityRecord$Token;->access$000(Lcom/android/server/wm/ActivityRecord$Token;)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/ActivityRecord$Token;->access$100(Lcom/android/server/wm/ActivityRecord$Token;Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityRecord$Token;->attach(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityRecord$Token;->getName()Ljava/lang/String;
+PLcom/android/server/wm/ActivityRecord$Token;->toString()Ljava/lang/String;
PLcom/android/server/wm/ActivityRecord$Token;->tokenToActivityRecordLocked(Lcom/android/server/wm/ActivityRecord$Token;)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/ActivityRecord;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/WindowProcessController;IILjava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;IZZLcom/android/server/wm/ActivityStackSupervisor;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityRecord;->activityResumedLocked(Landroid/os/IBinder;)V
@@ -16717,23 +20031,27 @@ 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;->applyAnimation(Landroid/view/WindowManager$LayoutParams;IZZ)Z
-PLcom/android/server/wm/ActivityRecord;->applyAspectRatio(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/ActivityRecord;->applyAspectRatio(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
PLcom/android/server/wm/ActivityRecord;->applyOptionsLocked()V
PLcom/android/server/wm/ActivityRecord;->applyOptionsLocked(Landroid/app/ActivityOptions;Landroid/content/Intent;)V
PLcom/android/server/wm/ActivityRecord;->asActivityRecord()Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/ActivityRecord;->attachedToProcess()Z
+HPLcom/android/server/wm/ActivityRecord;->calculateCompatBoundsTransformation(Landroid/content/res/Configuration;)V
PLcom/android/server/wm/ActivityRecord;->canBeLaunchedOnDisplay(I)Z
HPLcom/android/server/wm/ActivityRecord;->canBeTopRunning()Z
+PLcom/android/server/wm/ActivityRecord;->canLaunchHomeActivity(ILcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/ActivityRecord;->canResumeByCompat()Z
-PLcom/android/server/wm/ActivityRecord;->canShowWhenLocked()Z
+HPLcom/android/server/wm/ActivityRecord;->canShowWhenLocked()Z
PLcom/android/server/wm/ActivityRecord;->canShowWindows()Z
PLcom/android/server/wm/ActivityRecord;->canTurnScreenOn()Z
-PLcom/android/server/wm/ActivityRecord;->cancelInitializing()V
-PLcom/android/server/wm/ActivityRecord;->checkAppWindowsReadyToShow()V
-PLcom/android/server/wm/ActivityRecord;->checkCompleteDeferredRemoval()Z
+PLcom/android/server/wm/ActivityRecord;->cancelAnimation()V
+PLcom/android/server/wm/ActivityRecord;->cancelAnimationOnly()V
+HPLcom/android/server/wm/ActivityRecord;->cancelInitializing()V
+HPLcom/android/server/wm/ActivityRecord;->checkAppWindowsReadyToShow()V
+HPLcom/android/server/wm/ActivityRecord;->checkCompleteDeferredRemoval()Z
PLcom/android/server/wm/ActivityRecord;->checkEnterPictureInPictureState(Ljava/lang/String;Z)Z
PLcom/android/server/wm/ActivityRecord;->checkKeyguardFlagsChanged()V
-PLcom/android/server/wm/ActivityRecord;->cleanUp(ZZ)V
+HPLcom/android/server/wm/ActivityRecord;->cleanUp(ZZ)V
PLcom/android/server/wm/ActivityRecord;->cleanUpActivityServices()V
PLcom/android/server/wm/ActivityRecord;->clearAllDrawn()V
PLcom/android/server/wm/ActivityRecord;->clearAnimatingFlags()V
@@ -16742,58 +20060,69 @@ PLcom/android/server/wm/ActivityRecord;->clearOptionsLocked()V
PLcom/android/server/wm/ActivityRecord;->clearOptionsLocked(Z)V
PLcom/android/server/wm/ActivityRecord;->clearRelaunching()V
PLcom/android/server/wm/ActivityRecord;->clearThumbnail()V
-PLcom/android/server/wm/ActivityRecord;->commitVisibility(Landroid/view/WindowManager$LayoutParams;ZIZZ)Z
+HPLcom/android/server/wm/ActivityRecord;->commitVisibility(ZZ)V
PLcom/android/server/wm/ActivityRecord;->completeFinishing(Ljava/lang/String;)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/ActivityRecord;->completeResumeLocked()V
HPLcom/android/server/wm/ActivityRecord;->containsDismissKeyguardWindow()Z
HPLcom/android/server/wm/ActivityRecord;->containsShowWhenLockedWindow()Z
PLcom/android/server/wm/ActivityRecord;->continueLaunchTickingLocked()Z
PLcom/android/server/wm/ActivityRecord;->createAnimationBoundsLayer(Landroid/view/SurfaceControl$Transaction;)Landroid/view/SurfaceControl;
-PLcom/android/server/wm/ActivityRecord;->createRemoteAnimationTarget(Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;)Landroid/view/RemoteAnimationTarget;
+HPLcom/android/server/wm/ActivityRecord;->createRemoteAnimationTarget(Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;)Landroid/view/RemoteAnimationTarget;
PLcom/android/server/wm/ActivityRecord;->createSnapshot(Landroid/app/ActivityManager$TaskSnapshot;)Z
+PLcom/android/server/wm/ActivityRecord;->crossesHorizontalSizeThreshold(II)Z
+PLcom/android/server/wm/ActivityRecord;->crossesSizeThreshold([III)Z
+PLcom/android/server/wm/ActivityRecord;->crossesVerticalSizeThreshold(II)Z
PLcom/android/server/wm/ActivityRecord;->deliverNewIntentLocked(ILandroid/content/Intent;Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityRecord;->destroyIfPossible(Ljava/lang/String;)Z
-PLcom/android/server/wm/ActivityRecord;->destroyImmediately(ZLjava/lang/String;)Z
+HPLcom/android/server/wm/ActivityRecord;->destroyIfPossible(Ljava/lang/String;)Z
+HPLcom/android/server/wm/ActivityRecord;->destroyImmediately(ZLjava/lang/String;)Z
PLcom/android/server/wm/ActivityRecord;->destroySurfaces()V
PLcom/android/server/wm/ActivityRecord;->destroySurfaces(Z)V
PLcom/android/server/wm/ActivityRecord;->destroyed(Ljava/lang/String;)V
PLcom/android/server/wm/ActivityRecord;->detachChildren()V
+HPLcom/android/server/wm/ActivityRecord;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+HPLcom/android/server/wm/ActivityRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/wm/ActivityRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLcom/android/server/wm/ActivityRecord;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
PLcom/android/server/wm/ActivityRecord;->ensureActivityConfiguration(IZ)Z
PLcom/android/server/wm/ActivityRecord;->ensureActivityConfiguration(IZZ)Z
-PLcom/android/server/wm/ActivityRecord;->fillsParent()Z
+HPLcom/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;->finishActivityResults(ILandroid/content/Intent;)V
-PLcom/android/server/wm/ActivityRecord;->finishIfPossible(ILandroid/content/Intent;Ljava/lang/String;Z)I
+HPLcom/android/server/wm/ActivityRecord;->finishIfPossible(ILandroid/content/Intent;Ljava/lang/String;Z)I
PLcom/android/server/wm/ActivityRecord;->finishIfPossible(Ljava/lang/String;Z)I
PLcom/android/server/wm/ActivityRecord;->finishLaunchTickingLocked()V
HPLcom/android/server/wm/ActivityRecord;->forAllActivities(Ljava/util/function/Consumer;Z)V
HPLcom/android/server/wm/ActivityRecord;->forAllActivities(Ljava/util/function/Function;Z)Z
HPLcom/android/server/wm/ActivityRecord;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
PLcom/android/server/wm/ActivityRecord;->forAllWindowsUnchecked(Lcom/android/internal/util/ToBooleanFunction;Z)Z
-PLcom/android/server/wm/ActivityRecord;->forTokenLocked(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/ActivityRecord;->getActivity(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/ActivityRecord;
+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/WindowContainer;)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/ActivityRecord;->getActivityStack()Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/ActivityRecord;->getAnimationBounds(I)Landroid/graphics/Rect;
PLcom/android/server/wm/ActivityRecord;->getAnimationFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
PLcom/android/server/wm/ActivityRecord;->getAnimationLeashParent()Landroid/view/SurfaceControl;
+PLcom/android/server/wm/ActivityRecord;->getAppAnimationLayer()Landroid/view/SurfaceControl;
PLcom/android/server/wm/ActivityRecord;->getBounds()Landroid/graphics/Rect;
PLcom/android/server/wm/ActivityRecord;->getConfigurationChanges(Landroid/content/res/Configuration;)I
-PLcom/android/server/wm/ActivityRecord;->getDisplay()Lcom/android/server/wm/ActivityDisplay;
+HPLcom/android/server/wm/ActivityRecord;->getDisplay()Lcom/android/server/wm/DisplayContent;
PLcom/android/server/wm/ActivityRecord;->getDisplayId()I
HPLcom/android/server/wm/ActivityRecord;->getDisplayedBounds()Landroid/graphics/Rect;
PLcom/android/server/wm/ActivityRecord;->getLetterboxInnerBounds(Landroid/graphics/Rect;)V
PLcom/android/server/wm/ActivityRecord;->getLetterboxInsets()Landroid/graphics/Rect;
-PLcom/android/server/wm/ActivityRecord;->getOrientation(I)I
+HPLcom/android/server/wm/ActivityRecord;->getOrientation(I)I
PLcom/android/server/wm/ActivityRecord;->getPersistentSavedState()Landroid/os/PersistableBundle;
+PLcom/android/server/wm/ActivityRecord;->getPid()I
+PLcom/android/server/wm/ActivityRecord;->getRemoteAnimationDefinition()Landroid/view/RemoteAnimationDefinition;
PLcom/android/server/wm/ActivityRecord;->getRequestedOrientation()I
PLcom/android/server/wm/ActivityRecord;->getSavedState()Landroid/os/Bundle;
+PLcom/android/server/wm/ActivityRecord;->getSizeCompatScale()F
PLcom/android/server/wm/ActivityRecord;->getStack()Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/ActivityRecord;->getStackLocked(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/ActivityRecord;->getStartingWindowType(ZZZZZZLandroid/app/ActivityManager$TaskSnapshot;)I
PLcom/android/server/wm/ActivityRecord;->getState()Lcom/android/server/wm/ActivityStack$ActivityState;
-PLcom/android/server/wm/ActivityRecord;->getTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/ActivityRecord;->getTaskForActivityLocked(Landroid/os/IBinder;Z)I
+HPLcom/android/server/wm/ActivityRecord;->getTask()Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/ActivityRecord;->getTaskForActivityLocked(Landroid/os/IBinder;Z)I
PLcom/android/server/wm/ActivityRecord;->getTopFullscreenWindow()Lcom/android/server/wm/WindowState;
PLcom/android/server/wm/ActivityRecord;->getTransit()I
PLcom/android/server/wm/ActivityRecord;->getTransitFlags()I
@@ -16802,47 +20131,61 @@ PLcom/android/server/wm/ActivityRecord;->getUid()I
PLcom/android/server/wm/ActivityRecord;->getUriPermissionsLocked()Lcom/android/server/uri/UriPermissionOwner;
PLcom/android/server/wm/ActivityRecord;->handleAlreadyVisible()V
PLcom/android/server/wm/ActivityRecord;->hasActivity()Z
+PLcom/android/server/wm/ActivityRecord;->hasNonDefaultColorWindow()Z
PLcom/android/server/wm/ActivityRecord;->hasProcess()Z
PLcom/android/server/wm/ActivityRecord;->hasSavedState()Z
-PLcom/android/server/wm/ActivityRecord;->hasSizeCompatBounds()Z
+HPLcom/android/server/wm/ActivityRecord;->hasSizeCompatBounds()Z
+HPLcom/android/server/wm/ActivityRecord;->hasStartingWindow()Z
PLcom/android/server/wm/ActivityRecord;->inSizeCompatMode()Z
PLcom/android/server/wm/ActivityRecord;->isAlwaysFocusable()Z
-PLcom/android/server/wm/ActivityRecord;->isClientVisible()Z
+HPLcom/android/server/wm/ActivityRecord;->isClientVisible()Z
+PLcom/android/server/wm/ActivityRecord;->isConfigurationCompatible(Landroid/content/res/Configuration;)Z
+PLcom/android/server/wm/ActivityRecord;->isDestroyable()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;->isInChangeTransition()Z
+PLcom/android/server/wm/ActivityRecord;->isInHistory()Z
PLcom/android/server/wm/ActivityRecord;->isInStackLocked()Z
-PLcom/android/server/wm/ActivityRecord;->isInStackLocked(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/ActivityRecord;->isInStackLocked(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/ActivityRecord;->isInVrUiMode(Landroid/content/res/Configuration;)Z
PLcom/android/server/wm/ActivityRecord;->isLetterboxOverlappingWith(Landroid/graphics/Rect;)Z
+PLcom/android/server/wm/ActivityRecord;->isMainIntent(Landroid/content/Intent;)Z
+PLcom/android/server/wm/ActivityRecord;->isNonResizableOrForcedResizable(I)Z
PLcom/android/server/wm/ActivityRecord;->isPersistable()Z
PLcom/android/server/wm/ActivityRecord;->isProcessRunning()Z
PLcom/android/server/wm/ActivityRecord;->isRelaunching()Z
PLcom/android/server/wm/ActivityRecord;->isResizeable()Z
PLcom/android/server/wm/ActivityRecord;->isResolverActivity(Ljava/lang/String;)Z
+PLcom/android/server/wm/ActivityRecord;->isResolverOrChildActivity()Z
PLcom/android/server/wm/ActivityRecord;->isResolverOrDelegateActivity()Z
PLcom/android/server/wm/ActivityRecord;->isRootOfTask()Z
PLcom/android/server/wm/ActivityRecord;->isSleeping()Z
PLcom/android/server/wm/ActivityRecord;->isState(Lcom/android/server/wm/ActivityStack$ActivityState;)Z
PLcom/android/server/wm/ActivityRecord;->isState(Lcom/android/server/wm/ActivityStack$ActivityState;Lcom/android/server/wm/ActivityStack$ActivityState;)Z
+PLcom/android/server/wm/ActivityRecord;->isState(Lcom/android/server/wm/ActivityStack$ActivityState;Lcom/android/server/wm/ActivityStack$ActivityState;Lcom/android/server/wm/ActivityStack$ActivityState;)Z
+PLcom/android/server/wm/ActivityRecord;->isState(Lcom/android/server/wm/ActivityStack$ActivityState;Lcom/android/server/wm/ActivityStack$ActivityState;Lcom/android/server/wm/ActivityStack$ActivityState;Lcom/android/server/wm/ActivityStack$ActivityState;)Z
PLcom/android/server/wm/ActivityRecord;->isState(Lcom/android/server/wm/ActivityStack$ActivityState;Lcom/android/server/wm/ActivityStack$ActivityState;Lcom/android/server/wm/ActivityStack$ActivityState;Lcom/android/server/wm/ActivityStack$ActivityState;Lcom/android/server/wm/ActivityStack$ActivityState;)Z
PLcom/android/server/wm/ActivityRecord;->isSurfaceShowing()Z
PLcom/android/server/wm/ActivityRecord;->isTopRunningActivity()Z
-PLcom/android/server/wm/ActivityRecord;->isVisible()Z
+HPLcom/android/server/wm/ActivityRecord;->isVisible()Z
HPLcom/android/server/wm/ActivityRecord;->isWaitingForTransitionStart()Z
PLcom/android/server/wm/ActivityRecord;->lambda$applyOptionsLocked$5(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityRecord;->lambda$hasNonDefaultColorWindow$4(Lcom/android/server/wm/WindowState;)Z
+PLcom/android/server/wm/ActivityRecord;->lambda$layoutLetterbox$2$ActivityRecord()Landroid/view/SurfaceControl$Builder;
+PLcom/android/server/wm/ActivityRecord;->lambda$postApplyAnimation$7(Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/ActivityRecord;->lambda$prAsqx_JQJTqW1jNxmkuU3AV8AU(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/ActivityRecord;->lambda$removeStartingWindow$3(Lcom/android/server/policy/WindowManagerPolicy$StartingSurface;)V
PLcom/android/server/wm/ActivityRecord;->lambda$setVisibility$6(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/ActivityRecord;->lambda$shouldUseAppThemeSnapshot$7(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/ActivityRecord;->lambda$showAllWindowsLocked$8(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/ActivityRecord;->layoutLetterbox(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/ActivityRecord;->logStartActivity(ILcom/android/server/wm/Task;)V
-PLcom/android/server/wm/ActivityRecord;->makeActiveIfNeeded(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityRecord;->lambda$shouldUseAppThemeSnapshot$8(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/ActivityRecord;->lambda$showAllWindowsLocked$9(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/ActivityRecord;->layoutLetterbox(Lcom/android/server/wm/WindowState;)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;->makeClientVisible()V
PLcom/android/server/wm/ActivityRecord;->makeFinishingLocked()V
-PLcom/android/server/wm/ActivityRecord;->makeInvisible()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;->matchParentBounds()Z
PLcom/android/server/wm/ActivityRecord;->mayFreezeScreenLocked()Z
@@ -16851,51 +20194,67 @@ PLcom/android/server/wm/ActivityRecord;->moveFocusableActivityToTop(Ljava/lang/S
HPLcom/android/server/wm/ActivityRecord;->needsZBoost()Z
PLcom/android/server/wm/ActivityRecord;->notifyAppResumed(Z)V
PLcom/android/server/wm/ActivityRecord;->notifyAppStopped()V
-PLcom/android/server/wm/ActivityRecord;->notifyUnknownVisibilityLaunchedForKeyguardTransition()V
+HPLcom/android/server/wm/ActivityRecord;->notifyUnknownVisibilityLaunchedForKeyguardTransition()V
PLcom/android/server/wm/ActivityRecord;->occludesParent()Z
HPLcom/android/server/wm/ActivityRecord;->okToShowLocked()Z
PLcom/android/server/wm/ActivityRecord;->onAnimationFinished()V
PLcom/android/server/wm/ActivityRecord;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
PLcom/android/server/wm/ActivityRecord;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
PLcom/android/server/wm/ActivityRecord;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ActivityRecord;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/ActivityRecord;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
PLcom/android/server/wm/ActivityRecord;->onFirstWindowDrawn(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowStateAnimator;)V
-PLcom/android/server/wm/ActivityRecord;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
+HPLcom/android/server/wm/ActivityRecord;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
PLcom/android/server/wm/ActivityRecord;->onRemovedFromDisplay()V
PLcom/android/server/wm/ActivityRecord;->onWindowsDrawn(ZJ)V
PLcom/android/server/wm/ActivityRecord;->onWindowsGone()V
PLcom/android/server/wm/ActivityRecord;->onWindowsVisible()V
PLcom/android/server/wm/ActivityRecord;->pauseKeyDispatchingLocked()V
+HPLcom/android/server/wm/ActivityRecord;->postApplyAnimation(Z)V
PLcom/android/server/wm/ActivityRecord;->postWindowRemoveStartingWindowCleanup(Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/ActivityRecord;->prepareActivityHideTransitionAnimation(I)V
HPLcom/android/server/wm/ActivityRecord;->prepareSurfaces()V
-PLcom/android/server/wm/ActivityRecord;->removeAppTokenFromDisplay()V
+PLcom/android/server/wm/ActivityRecord;->registerRemoteAnimations(Landroid/view/RemoteAnimationDefinition;)V
+HPLcom/android/server/wm/ActivityRecord;->removeAppTokenFromDisplay()V
PLcom/android/server/wm/ActivityRecord;->removeChild(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/ActivityRecord;->removeDeadWindows()V
-PLcom/android/server/wm/ActivityRecord;->removeFromHistory(Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityRecord;->removeChild(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/ActivityRecord;->removeDeadWindows()V
+HPLcom/android/server/wm/ActivityRecord;->removeFromHistory(Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityRecord;->removeIfPossible()V
+PLcom/android/server/wm/ActivityRecord;->removeImmediately()V
PLcom/android/server/wm/ActivityRecord;->removeReplacedWindowIfNeeded(Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/ActivityRecord;->removeResultsLocked(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;I)V
PLcom/android/server/wm/ActivityRecord;->removeStartingWindow()V
PLcom/android/server/wm/ActivityRecord;->removeUriPermissionsLocked()V
+PLcom/android/server/wm/ActivityRecord;->reparent(Lcom/android/server/wm/Task;ILjava/lang/String;)V
+PLcom/android/server/wm/ActivityRecord;->reparentSurfaceControl(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
PLcom/android/server/wm/ActivityRecord;->reportDescendantOrientationChangeIfNeeded()V
PLcom/android/server/wm/ActivityRecord;->requestUpdateWallpaperIfNeeded()V
PLcom/android/server/wm/ActivityRecord;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/ActivityRecord;->resolveSizeCompatModeConfiguration(Landroid/content/res/Configuration;)V
PLcom/android/server/wm/ActivityRecord;->resumeKeyDispatchingLocked()V
PLcom/android/server/wm/ActivityRecord;->scheduleAddStartingWindow()V
+PLcom/android/server/wm/ActivityRecord;->scheduleConfigurationChanged(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/ActivityRecord;->scheduleMultiWindowModeChanged(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/ActivityRecord;->schedulePictureInPictureModeChanged(Landroid/content/res/Configuration;)V
PLcom/android/server/wm/ActivityRecord;->scheduleTopResumedActivityChanged(Z)Z
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;->setClientVisible(Z)V
+HPLcom/android/server/wm/ActivityRecord;->setClientVisible(Z)V
+PLcom/android/server/wm/ActivityRecord;->setCurrentLaunchCanTurnScreenOn(Z)V
PLcom/android/server/wm/ActivityRecord;->setDeferHidingClient(Z)V
PLcom/android/server/wm/ActivityRecord;->setLastReportedConfiguration(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V
PLcom/android/server/wm/ActivityRecord;->setLastReportedConfiguration(Landroid/util/MergedConfiguration;)V
PLcom/android/server/wm/ActivityRecord;->setLastReportedGlobalConfiguration(Landroid/content/res/Configuration;)V
PLcom/android/server/wm/ActivityRecord;->setLayer(Landroid/view/SurfaceControl$Transaction;I)V
+PLcom/android/server/wm/ActivityRecord;->setMainWindowOpaque(Z)V
+PLcom/android/server/wm/ActivityRecord;->setOccludesParent(Z)Z
PLcom/android/server/wm/ActivityRecord;->setOrientation(IZ)V
PLcom/android/server/wm/ActivityRecord;->setProcess(Lcom/android/server/wm/WindowProcessController;)V
+PLcom/android/server/wm/ActivityRecord;->setRequestedOrientation(I)V
PLcom/android/server/wm/ActivityRecord;->setSavedState(Landroid/os/Bundle;)V
PLcom/android/server/wm/ActivityRecord;->setSizeConfigurations([I[I[I)V
-PLcom/android/server/wm/ActivityRecord;->setSleeping(Z)V
-PLcom/android/server/wm/ActivityRecord;->setSleeping(ZZ)V
+HPLcom/android/server/wm/ActivityRecord;->setSleeping(Z)V
+HPLcom/android/server/wm/ActivityRecord;->setSleeping(ZZ)V
PLcom/android/server/wm/ActivityRecord;->setState(Lcom/android/server/wm/ActivityStack$ActivityState;Ljava/lang/String;)V
PLcom/android/server/wm/ActivityRecord;->setTaskDescription(Landroid/app/ActivityManager$TaskDescription;)V
PLcom/android/server/wm/ActivityRecord;->setTaskForReuse(Lcom/android/server/wm/Task;)V
@@ -16903,24 +20262,28 @@ PLcom/android/server/wm/ActivityRecord;->setVisibility(Z)V
PLcom/android/server/wm/ActivityRecord;->setVisibility(ZZ)V
PLcom/android/server/wm/ActivityRecord;->setVisible(Z)V
PLcom/android/server/wm/ActivityRecord;->setWillCloseOrEnterPip(Z)V
-PLcom/android/server/wm/ActivityRecord;->shouldAnimate(I)Z
+HPLcom/android/server/wm/ActivityRecord;->shouldApplyAnimation(Z)Z
PLcom/android/server/wm/ActivityRecord;->shouldBeResumed(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/ActivityRecord;->shouldBeVisible()Z
HPLcom/android/server/wm/ActivityRecord;->shouldBeVisible(ZZ)Z
PLcom/android/server/wm/ActivityRecord;->shouldDeferAnimationFinish(Ljava/lang/Runnable;)Z
-PLcom/android/server/wm/ActivityRecord;->shouldMakeActive(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/ActivityRecord;->shouldMakeActive(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/ActivityRecord;->shouldPauseActivity(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityRecord;->shouldRelaunchLocked(ILandroid/content/res/Configuration;)Z
PLcom/android/server/wm/ActivityRecord;->shouldResumeActivity(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityRecord;->shouldStartChangeTransition(II)Z
PLcom/android/server/wm/ActivityRecord;->shouldUpdateConfigForDisplayChanged()Z
PLcom/android/server/wm/ActivityRecord;->shouldUseSizeCompatMode()Z
PLcom/android/server/wm/ActivityRecord;->showAllWindowsLocked()V
PLcom/android/server/wm/ActivityRecord;->showStartingWindow(Lcom/android/server/wm/ActivityRecord;ZZ)V
PLcom/android/server/wm/ActivityRecord;->showStartingWindow(Lcom/android/server/wm/ActivityRecord;ZZZ)V
+PLcom/android/server/wm/ActivityRecord;->startFreezingScreen()V
PLcom/android/server/wm/ActivityRecord;->startFreezingScreenLocked(I)V
PLcom/android/server/wm/ActivityRecord;->startFreezingScreenLocked(Lcom/android/server/wm/WindowProcessController;I)V
PLcom/android/server/wm/ActivityRecord;->startLaunchTickingLocked()V
+PLcom/android/server/wm/ActivityRecord;->startingWindowStateToString(I)Ljava/lang/String;
PLcom/android/server/wm/ActivityRecord;->stopFreezingScreen(ZZ)V
-PLcom/android/server/wm/ActivityRecord;->stopFreezingScreenLocked(Z)V
+HPLcom/android/server/wm/ActivityRecord;->stopFreezingScreenLocked(Z)V
PLcom/android/server/wm/ActivityRecord;->stopIfPossible()V
PLcom/android/server/wm/ActivityRecord;->supportsFreeform()Z
PLcom/android/server/wm/ActivityRecord;->supportsPictureInPicture()Z
@@ -16934,141 +20297,179 @@ PLcom/android/server/wm/ActivityRecord;->transferStartingWindow(Lcom/android/ser
PLcom/android/server/wm/ActivityRecord;->transferStartingWindowFromHiddenAboveTokenIfNeeded()V
PLcom/android/server/wm/ActivityRecord;->updateAllDrawn()V
PLcom/android/server/wm/ActivityRecord;->updateColorTransform()V
-PLcom/android/server/wm/ActivityRecord;->updateDrawnWindowStates(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/ActivityRecord;->updateLetterboxSurface(Lcom/android/server/wm/WindowState;)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;->updateMultiWindowMode()V
PLcom/android/server/wm/ActivityRecord;->updateOptionsLocked(Landroid/app/ActivityOptions;)V
-PLcom/android/server/wm/ActivityRecord;->updateReportedVisibilityLocked()V
+PLcom/android/server/wm/ActivityRecord;->updatePictureInPictureMode(Landroid/graphics/Rect;Z)V
+HPLcom/android/server/wm/ActivityRecord;->updateReportedVisibilityLocked()V
HPLcom/android/server/wm/ActivityRecord;->updateSizeCompatMode()V
PLcom/android/server/wm/ActivityRecord;->updateTaskDescription(Ljava/lang/CharSequence;)V
-PLcom/android/server/wm/ActivityRecord;->waitingForReplacement()Z
PLcom/android/server/wm/ActivityRecord;->windowsAreFocusable()Z
+HPLcom/android/server/wm/ActivityRecord;->windowsAreFocusable(Z)Z
PLcom/android/server/wm/ActivityRecord;->writeIdentifierToProto(Landroid/util/proto/ProtoOutputStream;J)V
PLcom/android/server/wm/ActivityRecord;->writeNameToProto(Landroid/util/proto/ProtoOutputStream;J)V
-PLcom/android/server/wm/ActivityRecord;->writeToProto(Landroid/util/proto/ProtoOutputStream;)V
-PLcom/android/server/wm/ActivityRecord;->writeToProto(Landroid/util/proto/ProtoOutputStream;JI)V
PLcom/android/server/wm/ActivityResult;-><init>(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;IILandroid/content/Intent;)V
PLcom/android/server/wm/ActivityServiceConnectionsHolder;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityServiceConnectionsHolder;->addConnection(Ljava/lang/Object;)V
PLcom/android/server/wm/ActivityServiceConnectionsHolder;->disconnectActivityFromServices()V
+PLcom/android/server/wm/ActivityServiceConnectionsHolder;->getActivityPid()I
+PLcom/android/server/wm/ActivityServiceConnectionsHolder;->isActivityVisible()Z
PLcom/android/server/wm/ActivityServiceConnectionsHolder;->removeConnection(Ljava/lang/Object;)V
-PLcom/android/server/wm/ActivityStack$ActivityStackHandler;-><init>(Lcom/android/server/wm/ActivityStack;Landroid/os/Looper;)V
+HSPLcom/android/server/wm/ActivityStack$ActivityStackHandler;-><init>(Lcom/android/server/wm/ActivityStack;Landroid/os/Looper;)V
PLcom/android/server/wm/ActivityStack$ActivityStackHandler;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/wm/ActivityStack$ActivityState;-><clinit>()V
PLcom/android/server/wm/ActivityStack$ActivityState;-><init>(Ljava/lang/String;I)V
PLcom/android/server/wm/ActivityStack$ActivityState;->values()[Lcom/android/server/wm/ActivityStack$ActivityState;
-PLcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;-><init>(Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;-><init>(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/ActivityStack$1;)V
+HSPLcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;-><init>(Lcom/android/server/wm/ActivityStack;)V
+HSPLcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;-><init>(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/ActivityStack$1;)V
PLcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;->lambda$hxEhv3lodv2mTq0c1tG208T2TSs(Lcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
HPLcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;->process(Lcom/android/server/wm/ActivityRecord;Ljava/util/function/Consumer;)Z
-PLcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;->processActivity(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;->processActivity(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
HPLcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;->reset(Lcom/android/server/wm/ActivityRecord;Ljava/util/function/Consumer;)V
-PLcom/android/server/wm/ActivityStack$EnsureVisibleActivitiesConfigHelper;-><init>(Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/ActivityStack$EnsureVisibleActivitiesConfigHelper;-><init>(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/ActivityStack$1;)V
-PLcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;-><init>(Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;-><init>(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/ActivityStack$1;)V
+HSPLcom/android/server/wm/ActivityStack$EnsureVisibleActivitiesConfigHelper;-><init>(Lcom/android/server/wm/ActivityStack;)V
+HSPLcom/android/server/wm/ActivityStack$EnsureVisibleActivitiesConfigHelper;-><init>(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/ActivityStack$1;)V
+PLcom/android/server/wm/ActivityStack$EnsureVisibleActivitiesConfigHelper;->process(Lcom/android/server/wm/ActivityRecord;Z)V
+PLcom/android/server/wm/ActivityStack$EnsureVisibleActivitiesConfigHelper;->processActivity(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityStack$EnsureVisibleActivitiesConfigHelper;->reset(Z)V
+HSPLcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;-><init>(Lcom/android/server/wm/ActivityStack;)V
+HSPLcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;-><init>(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/ActivityStack$1;)V
PLcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;->addActivityToRemove(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;->lambda$8j2ZFLAwkXnwDAxiTFN7mMDLhjU(Lcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;Lcom/android/server/wm/ActivityRecord;)V
-HPLcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;->process(Lcom/android/server/wm/WindowProcessController;)Z
+HSPLcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;->process(Lcom/android/server/wm/WindowProcessController;)Z
PLcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;->processActivity(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityStack;-><clinit>()V
-PLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/ActivityDisplay;ILcom/android/server/wm/ActivityStackSupervisor;IIZ)V
+HSPLcom/android/server/wm/ActivityStack;-><clinit>()V
+HSPLcom/android/server/wm/ActivityStack;-><init>(Lcom/android/server/wm/DisplayContent;ILcom/android/server/wm/ActivityStackSupervisor;IIZ)V
PLcom/android/server/wm/ActivityStack;->activityPausedLocked(Landroid/os/IBinder;Z)V
PLcom/android/server/wm/ActivityStack;->addChild(Lcom/android/server/wm/Task;IZZ)V
PLcom/android/server/wm/ActivityStack;->addChild(Lcom/android/server/wm/Task;ZZ)V
+PLcom/android/server/wm/ActivityStack;->addChild(Lcom/android/server/wm/WindowContainer;I)V
PLcom/android/server/wm/ActivityStack;->adjustFocusToNextFocusableStack(Ljava/lang/String;)Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/ActivityStack;->adjustFocusToNextFocusableStack(Ljava/lang/String;Z)Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/ActivityStack;->canEnterPipOnTaskSwitch(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Z
-PLcom/android/server/wm/ActivityStack;->canShowWithInsecureKeyguard()Z
+PLcom/android/server/wm/ActivityStack;->animateResizePinnedStack(Landroid/graphics/Rect;Landroid/graphics/Rect;IZ)V
+PLcom/android/server/wm/ActivityStack;->awakeFromSleepingLocked()V
+PLcom/android/server/wm/ActivityStack;->calculatePinnedBoundsForConfigChange(Landroid/graphics/Rect;)Z
+HPLcom/android/server/wm/ActivityStack;->canEnterPipOnTaskSwitch(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Z
+HPLcom/android/server/wm/ActivityStack;->canShowWithInsecureKeyguard()Z
PLcom/android/server/wm/ActivityStack;->cancelInitializingActivities()V
PLcom/android/server/wm/ActivityStack;->checkBehindFullscreenActivity(Lcom/android/server/wm/ActivityRecord;Ljava/util/function/Consumer;)Z
-HPLcom/android/server/wm/ActivityStack;->checkCompleteDeferredRemoval()Z
-PLcom/android/server/wm/ActivityStack;->checkKeyguardVisibility(Lcom/android/server/wm/ActivityRecord;ZZ)Z
+HSPLcom/android/server/wm/ActivityStack;->checkCompleteDeferredRemoval()Z
+HPLcom/android/server/wm/ActivityStack;->checkKeyguardVisibility(Lcom/android/server/wm/ActivityRecord;ZZ)Z
PLcom/android/server/wm/ActivityStack;->checkReadyForSleep()V
HPLcom/android/server/wm/ActivityStack;->checkTranslucentActivityWaiting(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStack;->clearLaunchTime(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStack;->completePauseLocked(ZLcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityStack;->computeMinPosition(II)I
+HPLcom/android/server/wm/ActivityStack;->computeMinPosition(II)I
PLcom/android/server/wm/ActivityStack;->containsActivityFromStack(Ljava/util/List;)Z
PLcom/android/server/wm/ActivityStack;->continueUpdateBounds()V
PLcom/android/server/wm/ActivityStack;->createTask(ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;ZLcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Lcom/android/server/wm/Task;
+PLcom/android/server/wm/ActivityStack;->deferScheduleMultiWindowModeChanged()Z
+HSPLcom/android/server/wm/ActivityStack;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;ZZLjava/lang/String;Z)Z
+HSPLcom/android/server/wm/ActivityStack;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+HSPLcom/android/server/wm/ActivityStack;->dumpActivities(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;ZZLjava/lang/String;Z)Z
+PLcom/android/server/wm/ActivityStack;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+HPLcom/android/server/wm/ActivityStack;->dumpDebugInnerStackOnly(Landroid/util/proto/ProtoOutputStream;JI)V
PLcom/android/server/wm/ActivityStack;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;IZ)V
-HPLcom/android/server/wm/ActivityStack;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;IZZ)V
+HSPLcom/android/server/wm/ActivityStack;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;IZZ)V
+PLcom/android/server/wm/ActivityStack;->ensureVisibleActivitiesConfiguration(Lcom/android/server/wm/ActivityRecord;Z)V
PLcom/android/server/wm/ActivityStack;->executeAppTransition(Landroid/app/ActivityOptions;)V
HPLcom/android/server/wm/ActivityStack;->fillsParent()Z
-PLcom/android/server/wm/ActivityStack;->findHomeTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/ActivityStack;->findPositionForTask(Lcom/android/server/wm/Task;IZ)I
+HPLcom/android/server/wm/ActivityStack;->findPositionForTask(Lcom/android/server/wm/Task;IZ)I
+PLcom/android/server/wm/ActivityStack;->finishIfVoiceActivity(Lcom/android/server/wm/ActivityRecord;Landroid/os/IBinder;)Z
+PLcom/android/server/wm/ActivityStack;->finishIfVoiceTask(Lcom/android/server/wm/Task;Landroid/os/IBinder;)V
PLcom/android/server/wm/ActivityStack;->finishTopCrashedActivityLocked(Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/ActivityStack;->getAllTasks()Ljava/util/ArrayList;
+PLcom/android/server/wm/ActivityStack;->finishVoiceTask(Landroid/service/voice/IVoiceInteractionSession;)V
PLcom/android/server/wm/ActivityStack;->getAnimatingActivityRegistry()Lcom/android/server/wm/AnimatingActivityRegistry;
-HPLcom/android/server/wm/ActivityStack;->getBounds()Landroid/graphics/Rect;
-PLcom/android/server/wm/ActivityStack;->getBounds(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/ActivityStack;->getDimBounds(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/ActivityStack;->getDisplay()Lcom/android/server/wm/ActivityDisplay;
-PLcom/android/server/wm/ActivityStack;->getName()Ljava/lang/String;
-PLcom/android/server/wm/ActivityStack;->getRelativeDisplayedPosition(Landroid/graphics/Point;)V
-PLcom/android/server/wm/ActivityStack;->getResumedActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityStack;->getRunningTasks(Ljava/util/List;IIIZZLandroid/util/ArraySet;)V
+HSPLcom/android/server/wm/ActivityStack;->getBounds()Landroid/graphics/Rect;
+HSPLcom/android/server/wm/ActivityStack;->getBounds(Landroid/graphics/Rect;)V
+HSPLcom/android/server/wm/ActivityStack;->getDimBounds(Landroid/graphics/Rect;)V
+HSPLcom/android/server/wm/ActivityStack;->getDisplay()Lcom/android/server/wm/DisplayContent;
+PLcom/android/server/wm/ActivityStack;->getDumpActivitiesLocked(Ljava/lang/String;)Ljava/util/ArrayList;
+PLcom/android/server/wm/ActivityStack;->getFinalAnimationBounds(Landroid/graphics/Rect;)V
+HSPLcom/android/server/wm/ActivityStack;->getName()Ljava/lang/String;
+HSPLcom/android/server/wm/ActivityStack;->getRawBounds()Landroid/graphics/Rect;
+HSPLcom/android/server/wm/ActivityStack;->getRelativeDisplayedPosition(Landroid/graphics/Point;)V
+HSPLcom/android/server/wm/ActivityStack;->getResumedActivity()Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/ActivityStack;->getStackId()I
-HPLcom/android/server/wm/ActivityStack;->getStackOutset()I
-PLcom/android/server/wm/ActivityStack;->getTopDismissingKeyguardActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityStack;->getTopNonFinishingActivity()Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/ActivityStack;->getVisibility(Lcom/android/server/wm/ActivityRecord;)I
+HSPLcom/android/server/wm/ActivityStack;->getStackOutset()I
+HSPLcom/android/server/wm/ActivityStack;->getTopDismissingKeyguardActivity()Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/ActivityStack;->getTopNonFinishingActivity()Lcom/android/server/wm/ActivityRecord;
+HSPLcom/android/server/wm/ActivityStack;->getVisibility(Lcom/android/server/wm/ActivityRecord;)I
PLcom/android/server/wm/ActivityStack;->goToSleep()V
-PLcom/android/server/wm/ActivityStack;->goToSleepIfPossible(Z)Z
-PLcom/android/server/wm/ActivityStack;->handleAppDiedLocked(Lcom/android/server/wm/WindowProcessController;)Z
+HPLcom/android/server/wm/ActivityStack;->goToSleepIfPossible(Z)Z
+HSPLcom/android/server/wm/ActivityStack;->handleAppDiedLocked(Lcom/android/server/wm/WindowProcessController;)Z
PLcom/android/server/wm/ActivityStack;->inLruList(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/ActivityStack;->isAdjustedForIme()Z
PLcom/android/server/wm/ActivityStack;->isAdjustedForMinimizedDockedStack()Z
PLcom/android/server/wm/ActivityStack;->isAnimatingBounds()Z
-PLcom/android/server/wm/ActivityStack;->isAttached()Z
+PLcom/android/server/wm/ActivityStack;->isAnimatingForIme()Z
+HSPLcom/android/server/wm/ActivityStack;->isAttached()Z
PLcom/android/server/wm/ActivityStack;->isCompatible(II)Z
-PLcom/android/server/wm/ActivityStack;->isFocusable()Z
-PLcom/android/server/wm/ActivityStack;->isFocusableAndVisible()Z
-PLcom/android/server/wm/ActivityStack;->isFocusedStackOnDisplay()Z
+HSPLcom/android/server/wm/ActivityStack;->isFocusable()Z
+HSPLcom/android/server/wm/ActivityStack;->isFocusableAndVisible()Z
+HSPLcom/android/server/wm/ActivityStack;->isFocusedStackOnDisplay()Z
PLcom/android/server/wm/ActivityStack;->isForceScaled()Z
-PLcom/android/server/wm/ActivityStack;->isHomeOrRecentsStack()Z
+HPLcom/android/server/wm/ActivityStack;->isHomeOrRecentsStack()Z
PLcom/android/server/wm/ActivityStack;->isInStackLocked(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityStack;->isInStackLocked(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
+HSPLcom/android/server/wm/ActivityStack;->isInStackLocked(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/ActivityStack;->isMinimizedDockAndHomeStackResizable()Z
PLcom/android/server/wm/ActivityStack;->isOpaqueActivity(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/ActivityStack;->isSingleTaskInstance()Z
-PLcom/android/server/wm/ActivityStack;->isStackTranslucent(Lcom/android/server/wm/ActivityRecord;)Z
+HSPLcom/android/server/wm/ActivityStack;->isStackTranslucent(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/ActivityStack;->isTaskSwitch(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/ActivityStack;->isTopRunningNonDelayed(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/ActivityStack;->isTopStackOnDisplay()Z
+PLcom/android/server/wm/ActivityStack;->lambda$GDPUuzTvyfp2z6wYxqAF0vhMJK8(Lcom/android/server/wm/Task;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
PLcom/android/server/wm/ActivityStack;->lambda$MbOt7bGpxw9wmjZ8kOCkYcDCqMQ(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityStack;->lambda$N2PfGF62p6Y1TYGt9lvFtsW9LmQ(Lcom/android/server/wm/ActivityRecord;Landroid/os/IBinder;)Z
PLcom/android/server/wm/ActivityStack;->lambda$U5MWhpArTVT_b8W6GtTa1Ao8HFs(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/ActivityStack;->lambda$awakeFromSleepingLocked$4(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityStack;->lambda$goToSleep$5(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityStack;->lambda$setWindowingMode$1$ActivityStack(IZZZZZ)V
-HPLcom/android/server/wm/ActivityStack;->lambda$topRunningActivityLocked$2(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityStack;->lambda$YAQEcQUrLqR06xiJJApMvOPIxhg(Lcom/android/server/wm/Task;Landroid/os/IBinder;)V
+PLcom/android/server/wm/ActivityStack;->lambda$animateResizePinnedStack$15$ActivityStack(Lcom/android/server/wm/DisplayContent;Landroid/graphics/Rect;Landroid/graphics/Rect;IIZZI)V
+HPLcom/android/server/wm/ActivityStack;->lambda$awakeFromSleepingLocked$5(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityStack;->lambda$calculatePinnedBoundsForConfigChange$17$ActivityStack(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/ActivityStack;->lambda$dumpActivities$13$ActivityStack(ZLjava/io/PrintWriter;Ljava/io/FileDescriptor;ZZLjava/lang/String;Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/ActivityStack;->lambda$dumpDebug$21(Landroid/util/proto/ProtoOutputStream;ILcom/android/server/wm/Task;)V
+PLcom/android/server/wm/ActivityStack;->lambda$dumpDebugInnerStackOnly$22(Landroid/util/proto/ProtoOutputStream;ILcom/android/server/wm/Task;)V
+PLcom/android/server/wm/ActivityStack;->lambda$goToSleep$6(Lcom/android/server/wm/ActivityRecord;)V
+HSPLcom/android/server/wm/ActivityStack;->lambda$setWindowingMode$1$ActivityStack(IZZZZZ)V
+HPLcom/android/server/wm/ActivityStack;->lambda$topRunningActivity$2(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityStack;->lambda$willActivityBeVisible$12(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityStack;->lastAnimatingBoundsWasToFullscreen()Z
PLcom/android/server/wm/ActivityStack;->minimalResumeActivityLocked(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityStack;->moveHomeStackToFrontIfNeeded(ZLcom/android/server/wm/ActivityDisplay;Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityStack;->moveTaskToFrontLocked(Lcom/android/server/wm/Task;ZLandroid/app/ActivityOptions;Lcom/android/server/am/AppTimeTracker;Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityStack;->moveHomeStackToFrontIfNeeded(ZLcom/android/server/wm/DisplayContent;Ljava/lang/String;)V
+HPLcom/android/server/wm/ActivityStack;->moveTaskToFrontLocked(Lcom/android/server/wm/Task;ZLandroid/app/ActivityOptions;Lcom/android/server/am/AppTimeTracker;Ljava/lang/String;)V
PLcom/android/server/wm/ActivityStack;->moveToFront(Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityStack;->moveToFront(Ljava/lang/String;Lcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/ActivityStack;->moveToFront(Ljava/lang/String;Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/ActivityStack;->moveToFrontAndResumeStateIfNeeded(Lcom/android/server/wm/ActivityRecord;ZZZLjava/lang/String;)V
PLcom/android/server/wm/ActivityStack;->notifyActivityDrawnLocked(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStack;->onActivityAddedToStack(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStack;->onActivityRemovedFromStack(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStack;->onActivityStateChanged(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityStack$ActivityState;Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityStack;->onChildPositionChanged(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/ActivityStack;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ActivityStack;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/ActivityStack;->onLockTaskPackagesUpdated()V
-PLcom/android/server/wm/ActivityStack;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
-PLcom/android/server/wm/ActivityStack;->positionChildAt(ILcom/android/server/wm/Task;Z)V
-PLcom/android/server/wm/ActivityStack;->positionChildAt(ILcom/android/server/wm/Task;ZZ)I
+PLcom/android/server/wm/ActivityStack;->onAnimationEnd(ZLandroid/graphics/Rect;Z)V
+PLcom/android/server/wm/ActivityStack;->onAnimationStart(ZZI)Z
+HPLcom/android/server/wm/ActivityStack;->onChildPositionChanged(Lcom/android/server/wm/WindowContainer;)V
+HSPLcom/android/server/wm/ActivityStack;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/ActivityStack;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/ActivityStack;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
+HPLcom/android/server/wm/ActivityStack;->positionChildAt(ILcom/android/server/wm/Task;ZZ)I
+PLcom/android/server/wm/ActivityStack;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
PLcom/android/server/wm/ActivityStack;->positionChildAtTop(Lcom/android/server/wm/Task;)V
-HPLcom/android/server/wm/ActivityStack;->prepareSurfaces()V
-PLcom/android/server/wm/ActivityStack;->removeChild(Lcom/android/server/wm/Task;Ljava/lang/String;)V
-HPLcom/android/server/wm/ActivityStack;->removeHistoryRecordsForApp(Lcom/android/server/wm/WindowProcessController;)Z
-HPLcom/android/server/wm/ActivityStack;->removeHistoryRecordsForApp(Ljava/util/ArrayList;Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityStack;->prepareFreezingTaskBounds()V
+HSPLcom/android/server/wm/ActivityStack;->prepareSurfaces()V
+PLcom/android/server/wm/ActivityStack;->processTaskResizeBounds(Lcom/android/server/wm/Task;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+PLcom/android/server/wm/ActivityStack;->removeChild(Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/ActivityStack;->removeChild(Lcom/android/server/wm/WindowContainer;Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityStack;->removeDestroyTimeoutForActivity(Lcom/android/server/wm/ActivityRecord;)V
+HSPLcom/android/server/wm/ActivityStack;->removeHistoryRecordsForApp(Lcom/android/server/wm/WindowProcessController;)Z
+HSPLcom/android/server/wm/ActivityStack;->removeHistoryRecordsForApp(Ljava/util/ArrayList;Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;)V
PLcom/android/server/wm/ActivityStack;->removeIfPossible()V
PLcom/android/server/wm/ActivityStack;->removeLaunchTickMessages()V
+PLcom/android/server/wm/ActivityStack;->removePauseTimeoutForActivity(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStack;->removeStopTimeoutForActivity(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStack;->removeTimeoutsForActivity(Lcom/android/server/wm/ActivityRecord;)V
-HPLcom/android/server/wm/ActivityStack;->resetAdjustedForIme(Z)V
+HSPLcom/android/server/wm/ActivityStack;->resetAdjustedForIme(Z)V
PLcom/android/server/wm/ActivityStack;->resetTaskIfNeeded(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/ActivityStack;->resize(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZ)V
PLcom/android/server/wm/ActivityStack;->resumeNextFocusableActivityWhenStackIsEmpty(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Z
PLcom/android/server/wm/ActivityStack;->resumeTopActivityInnerLocked(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Z
PLcom/android/server/wm/ActivityStack;->resumeTopActivityUncheckedLocked(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Z
@@ -17077,110 +20478,164 @@ PLcom/android/server/wm/ActivityStack;->scheduleDestroyTimeoutForActivity(Lcom/a
PLcom/android/server/wm/ActivityStack;->scheduleLaunchTickForActivity(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStack;->schedulePauseTimeoutForActivity(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStack;->scheduleStopTimeoutForActivity(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityStack;->setAdjustedBounds(Landroid/graphics/Rect;)V
+PLcom/android/server/wm/ActivityStack;->setAnimationFinalBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;Z)V
+PLcom/android/server/wm/ActivityStack;->setBounds(Landroid/graphics/Rect;)I
+PLcom/android/server/wm/ActivityStack;->setPictureInPictureAspectRatio(F)V
+PLcom/android/server/wm/ActivityStack;->setPinnedStackAlpha(F)Z
+PLcom/android/server/wm/ActivityStack;->setPinnedStackSize(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
PLcom/android/server/wm/ActivityStack;->setResumedActivity(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;)V
-HPLcom/android/server/wm/ActivityStack;->setTouchExcludeRegion(Lcom/android/server/wm/Task;ILandroid/graphics/Region;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
-PLcom/android/server/wm/ActivityStack;->setWindowingMode(IZZZZZ)V
-PLcom/android/server/wm/ActivityStack;->setWindowingModeInSurfaceTransaction(IZZZZZ)V
-PLcom/android/server/wm/ActivityStack;->shouldBeVisible(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/ActivityStack;->shouldIgnoreInput()Z
-PLcom/android/server/wm/ActivityStack;->shouldSleepActivities()Z
+PLcom/android/server/wm/ActivityStack;->setWindowingMode(I)V
+HSPLcom/android/server/wm/ActivityStack;->setWindowingMode(IZZZZZ)V
+HSPLcom/android/server/wm/ActivityStack;->setWindowingModeInSurfaceTransaction(IZZZZZ)V
+HSPLcom/android/server/wm/ActivityStack;->shouldBeVisible(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityStack;->shouldDeferStartOnMoveToFullscreen()Z
+HPLcom/android/server/wm/ActivityStack;->shouldIgnoreInput()Z
+HSPLcom/android/server/wm/ActivityStack;->shouldSleepActivities()Z
PLcom/android/server/wm/ActivityStack;->shouldSleepOrShutDownActivities()Z
+PLcom/android/server/wm/ActivityStack;->shouldUpRecreateTaskLocked(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;)Z
PLcom/android/server/wm/ActivityStack;->startActivityLocked(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;ZZLandroid/app/ActivityOptions;)V
PLcom/android/server/wm/ActivityStack;->startPausingLocked(ZZLcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/ActivityStack;->taskForIdLocked(I)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/ActivityStack;->toShortString()Ljava/lang/String;
-PLcom/android/server/wm/ActivityStack;->topActivityOccludesKeyguard()Z
-PLcom/android/server/wm/ActivityStack;->topRunningActivityLocked()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityStack;->topRunningActivityLocked(Z)Lcom/android/server/wm/ActivityRecord;
+HSPLcom/android/server/wm/ActivityStack;->toShortString()Ljava/lang/String;
+HSPLcom/android/server/wm/ActivityStack;->toString()Ljava/lang/String;
+HSPLcom/android/server/wm/ActivityStack;->topActivityOccludesKeyguard()Z
+HSPLcom/android/server/wm/ActivityStack;->topRunningActivity()Lcom/android/server/wm/ActivityRecord;
+HSPLcom/android/server/wm/ActivityStack;->topRunningActivity(Z)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/ActivityStack;->topRunningNonDelayedActivityLocked(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/ActivityStack;->topTask()Lcom/android/server/wm/Task;
-PLcom/android/server/wm/ActivityStack;->updateLruList(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/ActivityStack;->updateSurfaceBounds()V
-PLcom/android/server/wm/ActivityStack;->updateSurfaceSize(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/ActivityStack;->updateAdjustedBounds()V
+PLcom/android/server/wm/ActivityStack;->updateBoundsAllowed(Landroid/graphics/Rect;)Z
+HPLcom/android/server/wm/ActivityStack;->updateLruList(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityStack;->updatePictureInPictureModeForPinnedStackAnimation(Landroid/graphics/Rect;Z)V
+HSPLcom/android/server/wm/ActivityStack;->updateSurfaceBounds()V
+HSPLcom/android/server/wm/ActivityStack;->updateSurfaceSize(Landroid/view/SurfaceControl$Transaction;)V
PLcom/android/server/wm/ActivityStack;->updateTransitLocked(ILandroid/app/ActivityOptions;)V
+PLcom/android/server/wm/ActivityStack;->willActivityBeVisible(Landroid/os/IBinder;)Z
HSPLcom/android/server/wm/ActivityStackSupervisor$ActivityStackSupervisorHandler;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;Landroid/os/Looper;)V
PLcom/android/server/wm/ActivityStackSupervisor$ActivityStackSupervisorHandler;->activityIdleInternal(Lcom/android/server/wm/ActivityRecord;Z)V
PLcom/android/server/wm/ActivityStackSupervisor$ActivityStackSupervisorHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;)V
+HSPLcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStackSupervisor$1;)V
+PLcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;->lambda$n0VOwWNM3mud17SnHip7XMiWlWE(Lcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;->process(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/DisplayContent;ZZ)V
+PLcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;->processTask(Lcom/android/server/wm/Task;)V
HSPLcom/android/server/wm/ActivityStackSupervisor;-><clinit>()V
HSPLcom/android/server/wm/ActivityStackSupervisor;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/os/Looper;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->access$100(Lcom/android/server/wm/ActivityStackSupervisor;)Landroid/app/ActivityOptions;
+PLcom/android/server/wm/ActivityStackSupervisor;->access$300(Lcom/android/server/wm/ActivityStackSupervisor;)Ljava/util/ArrayList;
+PLcom/android/server/wm/ActivityStackSupervisor;->access$400(Lcom/android/server/wm/ActivityStackSupervisor;)Landroid/graphics/Rect;
+PLcom/android/server/wm/ActivityStackSupervisor;->access$600(Lcom/android/server/wm/ActivityStackSupervisor;)Lcom/android/server/wm/ActivityStackSupervisor$ActivityStackSupervisorHandler;
+PLcom/android/server/wm/ActivityStackSupervisor;->acquireLaunchWakelock()V
PLcom/android/server/wm/ActivityStackSupervisor;->activityIdleInternalLocked(Landroid/os/IBinder;ZZLandroid/content/res/Configuration;)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/ActivityStackSupervisor;->activitySleptLocked(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->addToMultiWindowModeChangedList(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->addToPipModeChangedList(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStackSupervisor;->beginDeferResume()V
PLcom/android/server/wm/ActivityStackSupervisor;->canPlaceEntityOnDisplay(IIILandroid/content/pm/ActivityInfo;)Z
PLcom/android/server/wm/ActivityStackSupervisor;->canUseActivityOptionsLaunchBounds(Landroid/app/ActivityOptions;)Z
PLcom/android/server/wm/ActivityStackSupervisor;->checkFinishBootingLocked()Z
PLcom/android/server/wm/ActivityStackSupervisor;->checkReadyForSleepLocked(Z)V
PLcom/android/server/wm/ActivityStackSupervisor;->checkStartAnyActivityPermission(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/String;IIILjava/lang/String;ZZLcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityStack;)Z
-PLcom/android/server/wm/ActivityStackSupervisor;->cleanUpRemovedTaskLocked(Lcom/android/server/wm/Task;ZZ)V
+HPLcom/android/server/wm/ActivityStackSupervisor;->cleanUpRemovedTaskLocked(Lcom/android/server/wm/Task;ZZ)V
PLcom/android/server/wm/ActivityStackSupervisor;->cleanupActivity(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->comeOutOfSleepIfNeededLocked()V
PLcom/android/server/wm/ActivityStackSupervisor;->continueUpdateRecentsHomeStackBounds()V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->dumpHistoryList(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;ZZZLjava/lang/String;ZLjava/lang/String;Lcom/android/server/wm/Task;)Z
PLcom/android/server/wm/ActivityStackSupervisor;->endDeferResume()V
+PLcom/android/server/wm/ActivityStackSupervisor;->findTaskToMoveToFront(Lcom/android/server/wm/Task;ILandroid/app/ActivityOptions;Ljava/lang/String;Z)V
PLcom/android/server/wm/ActivityStackSupervisor;->getActionRestrictionForCallingPackage(Ljava/lang/String;Ljava/lang/String;II)I
-PLcom/android/server/wm/ActivityStackSupervisor;->getActivityMetricsLogger()Lcom/android/server/wm/ActivityMetricsLogger;
+HSPLcom/android/server/wm/ActivityStackSupervisor;->getActivityMetricsLogger()Lcom/android/server/wm/ActivityMetricsLogger;
PLcom/android/server/wm/ActivityStackSupervisor;->getComponentRestrictionForCallingPackage(Landroid/content/pm/ActivityInfo;Ljava/lang/String;IIZ)I
HSPLcom/android/server/wm/ActivityStackSupervisor;->getKeyguardController()Lcom/android/server/wm/KeyguardController;
PLcom/android/server/wm/ActivityStackSupervisor;->getLaunchParamsController()Lcom/android/server/wm/LaunchParamsController;
PLcom/android/server/wm/ActivityStackSupervisor;->getNextTaskIdForUserLocked(I)I
+PLcom/android/server/wm/ActivityStackSupervisor;->getReparentTargetStack(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityStack;Z)Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/ActivityStackSupervisor;->getRunningTasks()Lcom/android/server/wm/RunningTasks;
PLcom/android/server/wm/ActivityStackSupervisor;->getSystemChooserActivity()Landroid/content/ComponentName;
-PLcom/android/server/wm/ActivityStackSupervisor;->getUserInfo(I)Landroid/content/pm/UserInfo;
PLcom/android/server/wm/ActivityStackSupervisor;->goingToSleepLocked()V
-PLcom/android/server/wm/ActivityStackSupervisor;->handleLaunchTaskBehindCompleteLocked(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/ActivityStackSupervisor;->handleLaunchTaskBehindCompleteLocked(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStackSupervisor;->handleNonResizableTaskIfNeeded(Lcom/android/server/wm/Task;IILcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/ActivityStackSupervisor;->handleNonResizableTaskIfNeeded(Lcom/android/server/wm/Task;IILcom/android/server/wm/ActivityStack;Z)V
+HPLcom/android/server/wm/ActivityStackSupervisor;->handleNonResizableTaskIfNeeded(Lcom/android/server/wm/Task;IILcom/android/server/wm/ActivityStack;Z)V
PLcom/android/server/wm/ActivityStackSupervisor;->handleTopResumedStateReleased(Z)V
HSPLcom/android/server/wm/ActivityStackSupervisor;->initPowerManagement()V
HSPLcom/android/server/wm/ActivityStackSupervisor;->initialize()V
PLcom/android/server/wm/ActivityStackSupervisor;->isCallerAllowedToLaunchOnDisplay(IIILandroid/content/pm/ActivityInfo;)Z
PLcom/android/server/wm/ActivityStackSupervisor;->isCurrentProfileLocked(I)Z
PLcom/android/server/wm/ActivityStackSupervisor;->isStoppingNoHistoryActivity()Z
+PLcom/android/server/wm/ActivityStackSupervisor;->lambda$BFgD0ahFSDg4CqQNytqWrPRgFII(Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStackSupervisor;->lambda$activityIdleInternalLocked$0$ActivityStackSupervisor()V
+PLcom/android/server/wm/ActivityStackSupervisor;->lambda$mLKHIIzkTAK9QSlSxia8-84y15M(Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->lambda$moveTasksToFullscreenStackLocked$1$ActivityStackSupervisor(Lcom/android/server/wm/ActivityStack;Z)V
PLcom/android/server/wm/ActivityStackSupervisor;->logIfTransactionTooLarge(Landroid/content/Intent;Landroid/os/Bundle;)V
PLcom/android/server/wm/ActivityStackSupervisor;->logStackState()V
+PLcom/android/server/wm/ActivityStackSupervisor;->moveHomeStackToFrontIfNeeded(ILcom/android/server/wm/DisplayContent;Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->moveTasksToFullscreenStackInSurfaceTransaction(Lcom/android/server/wm/ActivityStack;IZ)V
PLcom/android/server/wm/ActivityStackSupervisor;->nextTaskIdForUser(II)I
PLcom/android/server/wm/ActivityStackSupervisor;->notifyAppTransitionDone()V
PLcom/android/server/wm/ActivityStackSupervisor;->onRecentTaskAdded(Lcom/android/server/wm/Task;)V
PLcom/android/server/wm/ActivityStackSupervisor;->onRecentTaskRemoved(Lcom/android/server/wm/Task;ZZ)V
-PLcom/android/server/wm/ActivityStackSupervisor;->onSystemReady()V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->onSystemReady()V
+PLcom/android/server/wm/ActivityStackSupervisor;->onUserUnlocked(I)V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->printThisActivity(Ljava/io/PrintWriter;Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;ZLjava/lang/String;)Z
PLcom/android/server/wm/ActivityStackSupervisor;->processStoppingActivitiesLocked(Lcom/android/server/wm/ActivityRecord;ZZ)Ljava/util/ArrayList;
PLcom/android/server/wm/ActivityStackSupervisor;->readyToResume()Z
PLcom/android/server/wm/ActivityStackSupervisor;->realStartActivityLocked(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/WindowProcessController;ZZ)Z
PLcom/android/server/wm/ActivityStackSupervisor;->removeSleepTimeouts()V
-PLcom/android/server/wm/ActivityStackSupervisor;->removeTaskByIdLocked(IZZLjava/lang/String;)Z
+PLcom/android/server/wm/ActivityStackSupervisor;->removeStack(Lcom/android/server/wm/ActivityStack;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->removeStackInSurfaceTransaction(Lcom/android/server/wm/ActivityStack;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->removeTask(Lcom/android/server/wm/Task;ZZLjava/lang/String;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->removeTaskById(IZZLjava/lang/String;)Z
+PLcom/android/server/wm/ActivityStackSupervisor;->removeTimeoutsForActivityLocked(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStackSupervisor;->reportActivityLaunchedLocked(ZLcom/android/server/wm/ActivityRecord;JI)V
PLcom/android/server/wm/ActivityStackSupervisor;->reportResumedActivityLocked(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/ActivityStackSupervisor;->reportWaitingActivityLaunchedIfNeeded(Lcom/android/server/wm/ActivityRecord;I)V
+PLcom/android/server/wm/ActivityStackSupervisor;->resizePinnedStackLocked(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
PLcom/android/server/wm/ActivityStackSupervisor;->resolveActivity(Landroid/content/Intent;Landroid/content/pm/ResolveInfo;ILandroid/app/ProfilerInfo;)Landroid/content/pm/ActivityInfo;
+PLcom/android/server/wm/ActivityStackSupervisor;->resolveActivity(Landroid/content/Intent;Ljava/lang/String;ILandroid/app/ProfilerInfo;II)Landroid/content/pm/ActivityInfo;
PLcom/android/server/wm/ActivityStackSupervisor;->resolveIntent(Landroid/content/Intent;Ljava/lang/String;III)Landroid/content/pm/ResolveInfo;
PLcom/android/server/wm/ActivityStackSupervisor;->scheduleIdleLocked()V
PLcom/android/server/wm/ActivityStackSupervisor;->scheduleIdleTimeoutLocked(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStackSupervisor;->scheduleLaunchTaskBehindComplete(Landroid/os/IBinder;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->scheduleResumeTopActivities()V
PLcom/android/server/wm/ActivityStackSupervisor;->scheduleSleepTimeout()V
PLcom/android/server/wm/ActivityStackSupervisor;->scheduleTopResumedActivityStateIfNeeded()V
PLcom/android/server/wm/ActivityStackSupervisor;->scheduleTopResumedStateLossTimeout(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->scheduleUpdateMultiWindowMode(Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->scheduleUpdatePictureInPictureModeIfNeeded(Lcom/android/server/wm/Task;Landroid/graphics/Rect;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->scheduleUpdatePictureInPictureModeIfNeeded(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityStack;)V
PLcom/android/server/wm/ActivityStackSupervisor;->setLaunchSource(I)V
+PLcom/android/server/wm/ActivityStackSupervisor;->setNextTaskIdForUserLocked(II)V
HSPLcom/android/server/wm/ActivityStackSupervisor;->setRecentTasks(Lcom/android/server/wm/RecentTasks;)V
HSPLcom/android/server/wm/ActivityStackSupervisor;->setRunningTasks(Lcom/android/server/wm/RunningTasks;)V
-PLcom/android/server/wm/ActivityStackSupervisor;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/ActivityStackSupervisor;->startSpecificActivity(Lcom/android/server/wm/ActivityRecord;ZZ)V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/ActivityStackSupervisor;->startActivityFromRecents(IIILcom/android/server/wm/SafeActivityOptions;)I
+HPLcom/android/server/wm/ActivityStackSupervisor;->startSpecificActivity(Lcom/android/server/wm/ActivityRecord;ZZ)V
PLcom/android/server/wm/ActivityStackSupervisor;->stopWaitingForActivityVisible(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/ActivityStackSupervisor;->stopWaitingForActivityVisible(Lcom/android/server/wm/ActivityRecord;J)V
+HPLcom/android/server/wm/ActivityStackSupervisor;->stopWaitingForActivityVisible(Lcom/android/server/wm/ActivityRecord;J)V
PLcom/android/server/wm/ActivityStackSupervisor;->updateHomeProcess(Lcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/ActivityStackSupervisor;->updateTopResumedActivityIfNeeded()V
+PLcom/android/server/wm/ActivityStackSupervisor;->updatePictureInPictureMode(Lcom/android/server/wm/Task;Landroid/graphics/Rect;Z)V
+HSPLcom/android/server/wm/ActivityStackSupervisor;->updateTopResumedActivityIfNeeded()V
HSPLcom/android/server/wm/ActivityStartController$StartHandler;-><init>(Lcom/android/server/wm/ActivityStartController;Landroid/os/Looper;)V
PLcom/android/server/wm/ActivityStartController$StartHandler;->handleMessage(Landroid/os/Message;)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/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStarter$Factory;)V
+PLcom/android/server/wm/ActivityStartController;->checkTargetUser(IZIILjava/lang/String;)I
PLcom/android/server/wm/ActivityStartController;->clearPendingActivityLaunches(Ljava/lang/String;)Z
PLcom/android/server/wm/ActivityStartController;->doPendingActivityLaunches(Z)V
+PLcom/android/server/wm/ActivityStartController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityStartController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
PLcom/android/server/wm/ActivityStartController;->getPendingRemoteAnimationRegistry()Lcom/android/server/wm/PendingRemoteAnimationRegistry;
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;->postStartActivityProcessingForLastStarter(Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/ActivityStack;)V
+PLcom/android/server/wm/ActivityStartController;->startActivities(Landroid/app/IApplicationThread;IIILjava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;ILjava/lang/String;Lcom/android/server/am/PendingIntentRecord;Z)I
+PLcom/android/server/wm/ActivityStartController;->startActivitiesInPackage(IIILjava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;IZLcom/android/server/am/PendingIntentRecord;Z)I
+PLcom/android/server/wm/ActivityStartController;->startActivityInPackage(IIILjava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILcom/android/server/wm/SafeActivityOptions;ILcom/android/server/wm/Task;Ljava/lang/String;ZLcom/android/server/am/PendingIntentRecord;Z)I
PLcom/android/server/wm/ActivityStartController;->startHomeActivity(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/String;I)V
PLcom/android/server/wm/ActivityStartController;->startSetupActivity()V
HSPLcom/android/server/wm/ActivityStartInterceptor;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;)V
HSPLcom/android/server/wm/ActivityStartInterceptor;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/RootActivityContainer;Landroid/content/Context;)V
-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;IILandroid/app/ActivityOptions;)Z
+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;IILandroid/app/ActivityOptions;)Z
PLcom/android/server/wm/ActivityStartInterceptor;->interceptHarmfulAppIfNeeded()Z
PLcom/android/server/wm/ActivityStartInterceptor;->interceptQuietProfileIfNeeded()Z
PLcom/android/server/wm/ActivityStartInterceptor;->interceptSuspendedPackageIfNeeded()Z
@@ -17193,11 +20648,12 @@ PLcom/android/server/wm/ActivityStarter$DefaultFactory;->recycle(Lcom/android/se
HSPLcom/android/server/wm/ActivityStarter$DefaultFactory;->setController(Lcom/android/server/wm/ActivityStartController;)V
PLcom/android/server/wm/ActivityStarter$Request;-><init>()V
PLcom/android/server/wm/ActivityStarter$Request;->reset()V
-PLcom/android/server/wm/ActivityStarter$Request;->resolveActivity(Lcom/android/server/wm/ActivityStackSupervisor;)V
+HPLcom/android/server/wm/ActivityStarter$Request;->resolveActivity(Lcom/android/server/wm/ActivityStackSupervisor;)V
PLcom/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/ActivityStackSupervisor;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;->canLaunchIntoFocusedStack(Lcom/android/server/wm/ActivityRecord;Z)Z
PLcom/android/server/wm/ActivityStarter;->complyActivityFlags(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStarter;->computeLaunchingTaskFlags()V
PLcom/android/server/wm/ActivityStarter;->computeResolveFilterUid(III)I
@@ -17206,18 +20662,19 @@ PLcom/android/server/wm/ActivityStarter;->computeStackFocus(Lcom/android/server/
PLcom/android/server/wm/ActivityStarter;->computeTargetTask()Lcom/android/server/wm/Task;
PLcom/android/server/wm/ActivityStarter;->deliverNewIntent(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStarter;->deliverToCurrentTopIfNeeded(Lcom/android/server/wm/ActivityStack;)I
+PLcom/android/server/wm/ActivityStarter;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/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;->getLaunchStack(Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/Task;Landroid/app/ActivityOptions;)Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/ActivityStarter;->getReusableTask()Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/ActivityStarter;->getReusableTask()Lcom/android/server/wm/Task;
PLcom/android/server/wm/ActivityStarter;->handleStartResult(Lcom/android/server/wm/ActivityRecord;I)Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/ActivityStarter;->isAllowedToStart(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/Task;)I
+HPLcom/android/server/wm/ActivityStarter;->isAllowedToStart(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/Task;)I
PLcom/android/server/wm/ActivityStarter;->isDocumentLaunchesIntoExisting(I)Z
PLcom/android/server/wm/ActivityStarter;->isLaunchModeOneOf(II)Z
PLcom/android/server/wm/ActivityStarter;->onExecutionComplete()V
PLcom/android/server/wm/ActivityStarter;->postStartActivityProcessing(Lcom/android/server/wm/ActivityRecord;ILcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/ActivityStarter;->recycleTask(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;)I
+HPLcom/android/server/wm/ActivityStarter;->recycleTask(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;)I
PLcom/android/server/wm/ActivityStarter;->reset(Z)V
PLcom/android/server/wm/ActivityStarter;->resolveToHeavyWeightSwitcherIfNeeded()I
PLcom/android/server/wm/ActivityStarter;->resumeTargetStackIfNeeded()V
@@ -17226,24 +20683,38 @@ PLcom/android/server/wm/ActivityStarter;->set(Lcom/android/server/wm/ActivitySta
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;->setAllowBackgroundActivityStart(Z)Lcom/android/server/wm/ActivityStarter;
+PLcom/android/server/wm/ActivityStarter;->setAllowPendingRemoteAnimationRegistryLookup(Z)Lcom/android/server/wm/ActivityStarter;
+PLcom/android/server/wm/ActivityStarter;->setCaller(Landroid/app/IApplicationThread;)Lcom/android/server/wm/ActivityStarter;
PLcom/android/server/wm/ActivityStarter;->setCallingPackage(Ljava/lang/String;)Lcom/android/server/wm/ActivityStarter;
+PLcom/android/server/wm/ActivityStarter;->setCallingPid(I)Lcom/android/server/wm/ActivityStarter;
PLcom/android/server/wm/ActivityStarter;->setCallingUid(I)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStarter;->setInitialState(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;ZILcom/android/server/wm/ActivityRecord;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Z)V
+PLcom/android/server/wm/ActivityStarter;->setComponentSpecified(Z)Lcom/android/server/wm/ActivityStarter;
+PLcom/android/server/wm/ActivityStarter;->setInTask(Lcom/android/server/wm/Task;)Lcom/android/server/wm/ActivityStarter;
+HPLcom/android/server/wm/ActivityStarter;->setInitialState(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;ZILcom/android/server/wm/ActivityRecord;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Z)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;->setOriginatingPendingIntent(Lcom/android/server/am/PendingIntentRecord;)Lcom/android/server/wm/ActivityStarter;
PLcom/android/server/wm/ActivityStarter;->setOutActivity([Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/wm/ActivityStarter;
+PLcom/android/server/wm/ActivityStarter;->setRealCallingPid(I)Lcom/android/server/wm/ActivityStarter;
+PLcom/android/server/wm/ActivityStarter;->setRealCallingUid(I)Lcom/android/server/wm/ActivityStarter;
PLcom/android/server/wm/ActivityStarter;->setReason(Ljava/lang/String;)Lcom/android/server/wm/ActivityStarter;
-PLcom/android/server/wm/ActivityStarter;->setTargetStackIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
+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;
+HPLcom/android/server/wm/ActivityStarter;->setTargetStackIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityStarter;->setUserId(I)Lcom/android/server/wm/ActivityStarter;
PLcom/android/server/wm/ActivityStarter;->shouldAbortBackgroundActivityStart(IILjava/lang/String;IILcom/android/server/wm/WindowProcessController;Lcom/android/server/am/PendingIntentRecord;ZLandroid/content/Intent;)Z
-PLcom/android/server/wm/ActivityStarter;->startActivityInner(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;IZLandroid/app/ActivityOptions;Lcom/android/server/wm/Task;Z)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;IZLandroid/app/ActivityOptions;Lcom/android/server/wm/Task;Z)I
+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;IZLandroid/app/ActivityOptions;Lcom/android/server/wm/Task;Z)I
+HPLcom/android/server/wm/ActivityStarter;->startActivityUnchecked(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;IZLandroid/app/ActivityOptions;Lcom/android/server/wm/Task;Z)I
PLcom/android/server/wm/ActivityStarter;->updateBounds(Lcom/android/server/wm/Task;Landroid/graphics/Rect;)V
PLcom/android/server/wm/ActivityTaskManagerInternal$SleepToken;-><init>()V
HSPLcom/android/server/wm/ActivityTaskManagerInternal;-><init>()V
HSPLcom/android/server/wm/ActivityTaskManagerService$1;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
PLcom/android/server/wm/ActivityTaskManagerService$1;->run()V
-PLcom/android/server/wm/ActivityTaskManagerService$FontScaleSettingObserver;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$FontScaleSettingObserver;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
HSPLcom/android/server/wm/ActivityTaskManagerService$H;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/os/Looper;)V
HSPLcom/android/server/wm/ActivityTaskManagerService$Lifecycle;-><init>(Landroid/content/Context;)V
HSPLcom/android/server/wm/ActivityTaskManagerService$Lifecycle;->getService()Lcom/android/server/wm/ActivityTaskManagerService;
@@ -17251,69 +20722,83 @@ HSPLcom/android/server/wm/ActivityTaskManagerService$Lifecycle;->onStart()V
PLcom/android/server/wm/ActivityTaskManagerService$Lifecycle;->onUnlockUser(I)V
HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->acquireSleepToken(Ljava/lang/String;I)Lcom/android/server/wm/ActivityTaskManagerInternal$SleepToken;
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->attachApplication(Lcom/android/server/wm/WindowProcessController;)Z
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->attachApplication(Lcom/android/server/wm/WindowProcessController;)Z
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->canGcNow()Z
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->canShowErrorDialogs()Z
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->cleanupDisabledPackageComponents(Ljava/lang/String;Ljava/util/Set;IZ)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->clearHeavyWeightProcessIfEquals(Lcom/android/server/wm/WindowProcessController;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->clearHeavyWeightProcessIfEquals(Lcom/android/server/wm/WindowProcessController;)V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->closeSystemDialogs(Ljava/lang/String;)V
-HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->compatibilityInfoForPackage(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->compatibilityInfoForPackage(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZZLjava/lang/String;)V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->dumpActivity(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;IZZZ)Z
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->dumpForProcesses(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;ZLjava/lang/String;IZZI)Z
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->enableScreenAfterBoot(Z)V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->enforceCallerIsRecentsOrHasPermission(Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->finishTopCrashedActivities(Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;)I
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getHomeIntent()Landroid/content/Intent;
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getHomeIntent()Landroid/content/Intent;
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getHomeProcess()Lcom/android/server/wm/WindowProcessController;
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getLaunchObserverRegistry()Lcom/android/server/wm/ActivityMetricsLaunchObserverRegistry;
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getLaunchObserverRegistry()Lcom/android/server/wm/ActivityMetricsLaunchObserverRegistry;
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getPreviousProcess()Lcom/android/server/wm/WindowProcessController;
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getServiceConnectionsHolder(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityServiceConnectionsHolder;
HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getTopApp()Lcom/android/server/wm/WindowProcessController;
HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getTopProcessState()I
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->getTopVisibleActivities()Ljava/util/List;
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->handleAppCrashInActivityController(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;JLjava/lang/String;Ljava/lang/Runnable;)Z
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->handleAppDied(Lcom/android/server/wm/WindowProcessController;ZLjava/lang/Runnable;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->handleAppDied(Lcom/android/server/wm/WindowProcessController;ZLjava/lang/Runnable;)V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isCallerRecents(I)Z
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isFactoryTestProcess(Lcom/android/server/wm/WindowProcessController;)Z
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isGetTasksAllowed(Ljava/lang/String;II)Z
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isFactoryTestProcess(Lcom/android/server/wm/WindowProcessController;)Z
+HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isGetTasksAllowed(Ljava/lang/String;II)Z
HPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isHeavyWeightProcess(Lcom/android/server/wm/WindowProcessController;)Z
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isShuttingDown()Z
HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isSleeping()Z
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->isUidForeground(I)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
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyActiveVoiceInteractionServiceChanged(Landroid/content/ComponentName;)V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyAppTransitionCancelled()V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyAppTransitionFinished()V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyDockedStackMinimizedChanged(Z)V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyKeyguardFlagsChanged(Ljava/lang/Runnable;I)V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->notifyKeyguardTrustedChanged()V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onCleanUpApplicationRecord(Lcom/android/server/wm/WindowProcessController;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onCleanUpApplicationRecord(Lcom/android/server/wm/WindowProcessController;)V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onForceStopPackage(Ljava/lang/String;ZZI)Z
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onImeWindowSetOnDisplay(II)V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onPackageAdded(Ljava/lang/String;Z)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onPackageDataCleared(Ljava/lang/String;)V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onPackageReplaced(Landroid/content/pm/ApplicationInfo;)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessAdded(Lcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessMapped(ILcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessRemoved(Ljava/lang/String;I)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessUnMapped(I)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onUidActive(II)V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onPackagesSuspendedChanged([Ljava/lang/String;ZI)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessAdded(Lcom/android/server/wm/WindowProcessController;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessMapped(ILcom/android/server/wm/WindowProcessController;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessRemoved(Ljava/lang/String;I)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onProcessUnMapped(I)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onUidActive(II)V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onUidAddedToPendingTempWhitelist(ILjava/lang/String;)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onUidInactive(I)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onUidProcStateChanged(II)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onUidInactive(I)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onUidProcStateChanged(II)V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->onUidRemovedFromPendingTempWhitelist(I)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->preBindApplication(Lcom/android/server/wm/WindowProcessController;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->preBindApplication(Lcom/android/server/wm/WindowProcessController;)V
HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->rankTaskLayersIfNeeded()V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->registerScreenObserver(Lcom/android/server/wm/ActivityTaskManagerInternal$ScreenObserver;)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->removeRecentTasksByPackageName(Ljava/lang/String;I)V
+HSPLcom/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;->setAllowAppSwitches(Ljava/lang/String;II)V
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->setDeviceOwnerUid(I)V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->setDeviceOwnerUid(I)V
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->showSystemReadyErrorDialogsIfNeeded()V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startActivitiesInPackage(IIILjava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Lcom/android/server/wm/SafeActivityOptions;IZLcom/android/server/am/PendingIntentRecord;Z)I
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Landroid/os/Bundle;I)I
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startActivityInPackage(IIILjava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILcom/android/server/wm/SafeActivityOptions;ILcom/android/server/wm/Task;Ljava/lang/String;ZLcom/android/server/am/PendingIntentRecord;Z)I
PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startHomeOnAllDisplays(ILjava/lang/String;)Z
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->startHomeOnDisplay(ILjava/lang/String;IZZ)Z
-PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->updateTopComponentForFactoryTest()V
+HSPLcom/android/server/wm/ActivityTaskManagerService$LocalService;->updateTopComponentForFactoryTest()V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->writeActivitiesToProto(Landroid/util/proto/ProtoOutputStream;)V
+PLcom/android/server/wm/ActivityTaskManagerService$LocalService;->writeProcessesToProto(Landroid/util/proto/ProtoOutputStream;Ljava/lang/String;IZ)V
+PLcom/android/server/wm/ActivityTaskManagerService$PendingAssistExtras;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityRecord;Landroid/os/Bundle;Landroid/content/Intent;Ljava/lang/String;Landroid/app/IAssistDataReceiver;Landroid/os/Bundle;I)V
HSPLcom/android/server/wm/ActivityTaskManagerService$UiHandler;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
HSPLcom/android/server/wm/ActivityTaskManagerService$UpdateConfigurationResult;-><init>()V
HSPLcom/android/server/wm/ActivityTaskManagerService;-><init>(Landroid/content/Context;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->access$1200(Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/MirrorActiveUids;
+HSPLcom/android/server/wm/ActivityTaskManagerService;->access$1200(Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/MirrorActiveUids;
+PLcom/android/server/wm/ActivityTaskManagerService;->access$1300(Lcom/android/server/wm/ActivityTaskManagerService;)Landroid/util/SparseArray;
+PLcom/android/server/wm/ActivityTaskManagerService;->access$1400(Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/RecentTasks;
HSPLcom/android/server/wm/ActivityTaskManagerService;->access$200(Lcom/android/server/wm/ActivityTaskManagerService;)V
PLcom/android/server/wm/ActivityTaskManagerService;->access$600(Lcom/android/server/wm/ActivityTaskManagerService;Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/wm/ActivityTaskManagerService;->access$700(Lcom/android/server/wm/ActivityTaskManagerService;Z)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->access$900(Lcom/android/server/wm/ActivityTaskManagerService;)Z
PLcom/android/server/wm/ActivityTaskManagerService;->acquireSleepToken(Ljava/lang/String;I)Lcom/android/server/wm/ActivityTaskManagerInternal$SleepToken;
PLcom/android/server/wm/ActivityTaskManagerService;->activityDestroyed(Landroid/os/IBinder;)V
PLcom/android/server/wm/ActivityTaskManagerService;->activityIdle(Landroid/os/IBinder;Landroid/content/res/Configuration;Z)V
@@ -17322,7 +20807,8 @@ PLcom/android/server/wm/ActivityTaskManagerService;->activityResumed(Landroid/os
PLcom/android/server/wm/ActivityTaskManagerService;->activitySlept(Landroid/os/IBinder;)V
PLcom/android/server/wm/ActivityTaskManagerService;->activityStopped(Landroid/os/IBinder;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/lang/CharSequence;)V
PLcom/android/server/wm/ActivityTaskManagerService;->activityTopResumedStateLost()V
-PLcom/android/server/wm/ActivityTaskManagerService;->addWindowLayoutReasons(I)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->addWindowLayoutReasons(I)V
+PLcom/android/server/wm/ActivityTaskManagerService;->animateResizePinnedStack(ILandroid/graphics/Rect;I)V
PLcom/android/server/wm/ActivityTaskManagerService;->applyUpdateLockStateLocked(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityTaskManagerService;->applyUpdateVrModeLocked(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityTaskManagerService;->cancelRecentsAnimation(Z)V
@@ -17331,157 +20817,242 @@ PLcom/android/server/wm/ActivityTaskManagerService;->checkCallingPermission(Ljav
PLcom/android/server/wm/ActivityTaskManagerService;->checkComponentPermission(Ljava/lang/String;IIIZ)I
PLcom/android/server/wm/ActivityTaskManagerService;->checkGetTasksPermission(Ljava/lang/String;II)I
PLcom/android/server/wm/ActivityTaskManagerService;->checkPermission(Ljava/lang/String;II)I
-PLcom/android/server/wm/ActivityTaskManagerService;->clearHeavyWeightProcessIfEquals(Lcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->compatibilityInfoForPackageLocked(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
+HSPLcom/android/server/wm/ActivityTaskManagerService;->clearHeavyWeightProcessIfEquals(Lcom/android/server/wm/WindowProcessController;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->compatibilityInfoForPackageLocked(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
PLcom/android/server/wm/ActivityTaskManagerService;->constructResumedTraceName(Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/wm/ActivityTaskManagerService;->continueWindowLayout()V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->continueWindowLayout()V
+PLcom/android/server/wm/ActivityTaskManagerService;->convertFromTranslucent(Landroid/os/IBinder;)Z
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;->createStackSupervisor()Lcom/android/server/wm/ActivityStackSupervisor;
-PLcom/android/server/wm/ActivityTaskManagerService;->deferWindowLayout()V
-PLcom/android/server/wm/ActivityTaskManagerService;->enforceCallerIsRecentsOrHasPermission(Ljava/lang/String;Ljava/lang/String;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->deferWindowLayout()V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->dumpActivitiesLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZZLjava/lang/String;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->dumpActivitiesLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZZLjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->dumpActivity(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Ljava/lang/String;[Ljava/lang/String;IZZZ)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->dumpActivity(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;Lcom/android/server/wm/ActivityRecord;[Ljava/lang/String;Z)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->enforceCallerIsRecentsOrHasPermission(Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/wm/ActivityTaskManagerService;->enforceNotIsolatedCaller(Ljava/lang/String;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->ensureConfigAndVisibilityAfterUpdate(Lcom/android/server/wm/ActivityRecord;I)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->enqueueAssistContext(ILandroid/content/Intent;Ljava/lang/String;Landroid/app/IAssistDataReceiver;Landroid/os/Bundle;Landroid/os/IBinder;ZZILandroid/os/Bundle;JI)Lcom/android/server/wm/ActivityTaskManagerService$PendingAssistExtras;
+HSPLcom/android/server/wm/ActivityTaskManagerService;->ensureConfigAndVisibilityAfterUpdate(Lcom/android/server/wm/ActivityRecord;I)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->ensureValidPictureInPictureActivityParamsLocked(Ljava/lang/String;Landroid/os/IBinder;Landroid/app/PictureInPictureParams;)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/ActivityTaskManagerService;->enterPictureInPictureMode(Landroid/os/IBinder;Landroid/app/PictureInPictureParams;)Z
PLcom/android/server/wm/ActivityTaskManagerService;->finishActivity(Landroid/os/IBinder;ILandroid/content/Intent;I)Z
PLcom/android/server/wm/ActivityTaskManagerService;->finishRunningVoiceLocked()V
-PLcom/android/server/wm/ActivityTaskManagerService;->getActivityDisplayId(Landroid/os/IBinder;)I
+PLcom/android/server/wm/ActivityTaskManagerService;->finishVoiceTask(Landroid/service/voice/IVoiceInteractionSession;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->getActivityClassForToken(Landroid/os/IBinder;)Landroid/content/ComponentName;
PLcom/android/server/wm/ActivityTaskManagerService;->getActivityOptions(Landroid/os/IBinder;)Landroid/os/Bundle;
PLcom/android/server/wm/ActivityTaskManagerService;->getActivityStartController()Lcom/android/server/wm/ActivityStartController;
PLcom/android/server/wm/ActivityTaskManagerService;->getAppInfoForUser(Landroid/content/pm/ApplicationInfo;I)Landroid/content/pm/ApplicationInfo;
PLcom/android/server/wm/ActivityTaskManagerService;->getAppTasks(Ljava/lang/String;)Ljava/util/List;
PLcom/android/server/wm/ActivityTaskManagerService;->getAppWarningsLocked()Lcom/android/server/wm/AppWarnings;
+PLcom/android/server/wm/ActivityTaskManagerService;->getCallingActivity(Landroid/os/IBinder;)Landroid/content/ComponentName;
+PLcom/android/server/wm/ActivityTaskManagerService;->getCallingPackage(Landroid/os/IBinder;)Ljava/lang/String;
PLcom/android/server/wm/ActivityTaskManagerService;->getConfiguration()Landroid/content/res/Configuration;
PLcom/android/server/wm/ActivityTaskManagerService;->getCurrentUserId()I
PLcom/android/server/wm/ActivityTaskManagerService;->getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo;
-PLcom/android/server/wm/ActivityTaskManagerService;->getFilteredTasks(III)Ljava/util/List;
-PLcom/android/server/wm/ActivityTaskManagerService;->getFocusedStackInfo()Landroid/app/ActivityManager$StackInfo;
-PLcom/android/server/wm/ActivityTaskManagerService;->getGlobalConfiguration()Landroid/content/res/Configuration;
-PLcom/android/server/wm/ActivityTaskManagerService;->getGlobalConfigurationForPid(I)Landroid/content/res/Configuration;
+PLcom/android/server/wm/ActivityTaskManagerService;->getDisplayId(Landroid/os/IBinder;)I
+HPLcom/android/server/wm/ActivityTaskManagerService;->getFilteredTasks(III)Ljava/util/List;
+HPLcom/android/server/wm/ActivityTaskManagerService;->getFocusedStackInfo()Landroid/app/ActivityManager$StackInfo;
+HSPLcom/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;
+HSPLcom/android/server/wm/ActivityTaskManagerService;->getHomeIntent()Landroid/content/Intent;
PLcom/android/server/wm/ActivityTaskManagerService;->getInputDispatchingTimeoutLocked(Lcom/android/server/wm/ActivityRecord;)J
PLcom/android/server/wm/ActivityTaskManagerService;->getLastResumedActivityUserId()I
-PLcom/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;->getLaunchedFromUid(Landroid/os/IBinder;)I
+HSPLcom/android/server/wm/ActivityTaskManagerService;->getLifecycleManager()Lcom/android/server/wm/ClientLifecycleManager;
+HSPLcom/android/server/wm/ActivityTaskManagerService;->getLockTaskController()Lcom/android/server/wm/LockTaskController;
PLcom/android/server/wm/ActivityTaskManagerService;->getLockTaskModeState()I
PLcom/android/server/wm/ActivityTaskManagerService;->getPackageManager()Landroid/content/pm/IPackageManager;
-PLcom/android/server/wm/ActivityTaskManagerService;->getPackageManagerInternalLocked()Landroid/content/pm/PackageManagerInternal;
+HSPLcom/android/server/wm/ActivityTaskManagerService;->getPackageManagerInternalLocked()Landroid/content/pm/PackageManagerInternal;
PLcom/android/server/wm/ActivityTaskManagerService;->getPermissionPolicyInternal()Lcom/android/server/policy/PermissionPolicyInternal;
-HPLcom/android/server/wm/ActivityTaskManagerService;->getProcessController(II)Lcom/android/server/wm/WindowProcessController;
-PLcom/android/server/wm/ActivityTaskManagerService;->getProcessController(Landroid/app/IApplicationThread;)Lcom/android/server/wm/WindowProcessController;
+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;
+HSPLcom/android/server/wm/ActivityTaskManagerService;->getRecentTasks()Lcom/android/server/wm/RecentTasks;
PLcom/android/server/wm/ActivityTaskManagerService;->getRecentTasks(III)Landroid/content/pm/ParceledListSlice;
+PLcom/android/server/wm/ActivityTaskManagerService;->getRequestedOrientation(Landroid/os/IBinder;)I
PLcom/android/server/wm/ActivityTaskManagerService;->getStackInfo(II)Landroid/app/ActivityManager$StackInfo;
HPLcom/android/server/wm/ActivityTaskManagerService;->getTaskBounds(I)Landroid/graphics/Rect;
HSPLcom/android/server/wm/ActivityTaskManagerService;->getTaskChangeNotificationController()Lcom/android/server/wm/TaskChangeNotificationController;
+PLcom/android/server/wm/ActivityTaskManagerService;->getTaskDescriptionIcon(Ljava/lang/String;I)Landroid/graphics/Bitmap;
PLcom/android/server/wm/ActivityTaskManagerService;->getTaskForActivity(Landroid/os/IBinder;Z)I
PLcom/android/server/wm/ActivityTaskManagerService;->getTaskSnapshot(IZ)Landroid/app/ActivityManager$TaskSnapshot;
PLcom/android/server/wm/ActivityTaskManagerService;->getTaskSnapshot(IZZ)Landroid/app/ActivityManager$TaskSnapshot;
PLcom/android/server/wm/ActivityTaskManagerService;->getTasks(I)Ljava/util/List;
-PLcom/android/server/wm/ActivityTaskManagerService;->getTopDisplayFocusedStack()Lcom/android/server/wm/ActivityStack;
+HPLcom/android/server/wm/ActivityTaskManagerService;->getTopDisplayFocusedStack()Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/ActivityTaskManagerService;->getUidState(I)I
PLcom/android/server/wm/ActivityTaskManagerService;->getUserManager()Lcom/android/server/pm/UserManagerService;
PLcom/android/server/wm/ActivityTaskManagerService;->handleIncomingUser(IIILjava/lang/String;)I
-PLcom/android/server/wm/ActivityTaskManagerService;->increaseConfigurationSeqLocked()I
+HSPLcom/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
+HSPLcom/android/server/wm/ActivityTaskManagerService;->installSystemProviders()V
+PLcom/android/server/wm/ActivityTaskManagerService;->invalidateHomeTaskSnapshot(Landroid/os/IBinder;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->isAssistDataAllowedOnCurrentActivity()Z
PLcom/android/server/wm/ActivityTaskManagerService;->isAssociatedCompanionApp(II)Z
PLcom/android/server/wm/ActivityTaskManagerService;->isBooted()Z
PLcom/android/server/wm/ActivityTaskManagerService;->isBooting()Z
PLcom/android/server/wm/ActivityTaskManagerService;->isControllerAMonkey()Z
PLcom/android/server/wm/ActivityTaskManagerService;->isCrossUserAllowed(II)Z
-PLcom/android/server/wm/ActivityTaskManagerService;->isGetTasksAllowed(Ljava/lang/String;II)Z
+HPLcom/android/server/wm/ActivityTaskManagerService;->isGetTasksAllowed(Ljava/lang/String;II)Z
PLcom/android/server/wm/ActivityTaskManagerService;->isInMultiWindowMode(Landroid/os/IBinder;)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->isInPictureInPictureMode(Landroid/os/IBinder;)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->isInPictureInPictureMode(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->isSameApp(ILjava/lang/String;)Z
HSPLcom/android/server/wm/ActivityTaskManagerService;->isSleepingLocked()Z
PLcom/android/server/wm/ActivityTaskManagerService;->isSleepingOrShuttingDownLocked()Z
+PLcom/android/server/wm/ActivityTaskManagerService;->isUidForeground(I)Z
PLcom/android/server/wm/ActivityTaskManagerService;->keyguardGoingAway(I)V
PLcom/android/server/wm/ActivityTaskManagerService;->lambda$applyUpdateLockStateLocked$0$ActivityTaskManagerService(ZLcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/ActivityTaskManagerService;->lambda$applyUpdateVrModeLocked$5$ActivityTaskManagerService(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->lambda$enterPictureInPictureMode$4$ActivityTaskManagerService(Lcom/android/server/wm/ActivityRecord;Landroid/app/PictureInPictureParams;)V
PLcom/android/server/wm/ActivityTaskManagerService;->lambda$notifyEnterAnimationComplete$1$ActivityTaskManagerService(Landroid/os/IBinder;)V
PLcom/android/server/wm/ActivityTaskManagerService;->lambda$onScreenAwakeChanged$3$ActivityTaskManagerService(Z)V
PLcom/android/server/wm/ActivityTaskManagerService;->lambda$postFinishBooting$6$ActivityTaskManagerService(ZZ)V
PLcom/android/server/wm/ActivityTaskManagerService;->lambda$scheduleAppGcsLocked$7$ActivityTaskManagerService()V
PLcom/android/server/wm/ActivityTaskManagerService;->lambda$setLockScreenShown$2$ActivityTaskManagerService(Z)V
PLcom/android/server/wm/ActivityTaskManagerService;->logAppTooSlow(Lcom/android/server/wm/WindowProcessController;JLjava/lang/String;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->logPictureInPictureArgs(Landroid/app/PictureInPictureParams;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->moveTaskToFrontLocked(Landroid/app/IApplicationThread;Ljava/lang/String;IILcom/android/server/wm/SafeActivityOptions;Z)V
PLcom/android/server/wm/ActivityTaskManagerService;->notifyActivityDrawn(Landroid/os/IBinder;)V
PLcom/android/server/wm/ActivityTaskManagerService;->notifyEnterAnimationComplete(Landroid/os/IBinder;)V
PLcom/android/server/wm/ActivityTaskManagerService;->notifyLaunchTaskBehindComplete(Landroid/os/IBinder;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->notifyPinnedStackAnimationEnded()V
+PLcom/android/server/wm/ActivityTaskManagerService;->notifyPinnedStackAnimationStarted()V
PLcom/android/server/wm/ActivityTaskManagerService;->notifyTaskPersisterLocked(Lcom/android/server/wm/Task;Z)V
+PLcom/android/server/wm/ActivityTaskManagerService;->offsetPinnedStackBounds(ILandroid/graphics/Rect;III)V
HSPLcom/android/server/wm/ActivityTaskManagerService;->onActivityManagerInternalAdded()V
+PLcom/android/server/wm/ActivityTaskManagerService;->onBackPressedOnTaskRoot(Landroid/os/IBinder;Landroid/app/IRequestFinishCallback;)V
HSPLcom/android/server/wm/ActivityTaskManagerService;->onInitPowerManagement()V
PLcom/android/server/wm/ActivityTaskManagerService;->onScreenAwakeChanged(Z)V
PLcom/android/server/wm/ActivityTaskManagerService;->onStartActivitySetDidAppSwitch()V
-PLcom/android/server/wm/ActivityTaskManagerService;->onSystemReady()V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->onSystemReady()V
+PLcom/android/server/wm/ActivityTaskManagerService;->overridePendingTransition(Landroid/os/IBinder;Ljava/lang/String;II)V
PLcom/android/server/wm/ActivityTaskManagerService;->postFinishBooting(ZZ)V
+PLcom/android/server/wm/ActivityTaskManagerService;->registerRemoteAnimationForNextActivityStart(Ljava/lang/String;Landroid/view/RemoteAnimationAdapter;)V
PLcom/android/server/wm/ActivityTaskManagerService;->registerRemoteAnimations(Landroid/os/IBinder;Landroid/view/RemoteAnimationDefinition;)V
-PLcom/android/server/wm/ActivityTaskManagerService;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
PLcom/android/server/wm/ActivityTaskManagerService;->relaunchReasonToString(I)Ljava/lang/String;
+PLcom/android/server/wm/ActivityTaskManagerService;->releaseSomeActivities(Landroid/app/IApplicationThread;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->removeStacksInWindowingModes([I)V
+PLcom/android/server/wm/ActivityTaskManagerService;->removeTask(I)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->reportActivityFullyDrawn(Landroid/os/IBinder;Z)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;->reportSizeConfigurations(Landroid/os/IBinder;[I[I[I)V
-PLcom/android/server/wm/ActivityTaskManagerService;->retrieveSettings(Landroid/content/ContentResolver;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->requestAssistContextExtras(ILandroid/app/IAssistDataReceiver;Landroid/os/Bundle;Landroid/os/IBinder;ZZ)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->requestAutofillData(Landroid/app/IAssistDataReceiver;Landroid/os/Bundle;Landroid/os/IBinder;I)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->requestStartActivityPermissionToken(Landroid/os/IBinder;)Landroid/os/IBinder;
+PLcom/android/server/wm/ActivityTaskManagerService;->resizePinnedStack(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->resumeAppSwitches()V
+HSPLcom/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
+HSPLcom/android/server/wm/ActivityTaskManagerService;->setDeviceOwnerUid(I)V
+PLcom/android/server/wm/ActivityTaskManagerService;->setDisablePreviewScreenshots(Landroid/os/IBinder;Z)V
+PLcom/android/server/wm/ActivityTaskManagerService;->setFocusedTask(I)V
PLcom/android/server/wm/ActivityTaskManagerService;->setLockScreenShown(ZZ)V
+PLcom/android/server/wm/ActivityTaskManagerService;->setPictureInPictureParams(Landroid/os/IBinder;Landroid/app/PictureInPictureParams;)V
HSPLcom/android/server/wm/ActivityTaskManagerService;->setRecentTasks(Lcom/android/server/wm/RecentTasks;)V
PLcom/android/server/wm/ActivityTaskManagerService;->setRequestedOrientation(Landroid/os/IBinder;I)V
PLcom/android/server/wm/ActivityTaskManagerService;->setResumedActivityUncheckLocked(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;)V
PLcom/android/server/wm/ActivityTaskManagerService;->setTaskDescription(Landroid/os/IBinder;Landroid/app/ActivityManager$TaskDescription;)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;->setUsageStatsManager(Landroid/app/usage/UsageStatsManagerInternal;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->shouldUpRecreateTask(Landroid/os/IBinder;Ljava/lang/String;)Z
HSPLcom/android/server/wm/ActivityTaskManagerService;->start()V
+PLcom/android/server/wm/ActivityTaskManagerService;->startActivities(Landroid/app/IApplicationThread;Ljava/lang/String;[Landroid/content/Intent;[Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;I)I
PLcom/android/server/wm/ActivityTaskManagerService;->startActivity(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;)I
+PLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsCaller(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;Landroid/os/IBinder;ZI)I
+PLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;I)I
PLcom/android/server/wm/ActivityTaskManagerService;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Ljava/lang/String;IILandroid/app/ProfilerInfo;Landroid/os/Bundle;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;->startProcessAsync(Lcom/android/server/wm/ActivityRecord;ZZLjava/lang/String;)V
PLcom/android/server/wm/ActivityTaskManagerService;->startRecentsActivity(Landroid/content/Intent;Landroid/app/IAssistDataReceiver;Landroid/view/IRecentsAnimationRunner;)V
+PLcom/android/server/wm/ActivityTaskManagerService;->startTimeTrackingFocusedActivityLocked()V
PLcom/android/server/wm/ActivityTaskManagerService;->stopAppSwitches()V
PLcom/android/server/wm/ActivityTaskManagerService;->unregisterTaskStackListener(Landroid/app/ITaskStackListener;)V
PLcom/android/server/wm/ActivityTaskManagerService;->updateActivityUsageStats(Lcom/android/server/wm/ActivityRecord;I)V
PLcom/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;->updateConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZZIZLcom/android/server/wm/ActivityTaskManagerService$UpdateConfigurationResult;)Z
+HSPLcom/android/server/wm/ActivityTaskManagerService;->updateConfiguration(Landroid/content/res/Configuration;)Z
+HSPLcom/android/server/wm/ActivityTaskManagerService;->updateConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;Z)Z
+HSPLcom/android/server/wm/ActivityTaskManagerService;->updateConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZZ)Z
+HSPLcom/android/server/wm/ActivityTaskManagerService;->updateConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZZIZ)Z
+HSPLcom/android/server/wm/ActivityTaskManagerService;->updateConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZZIZLcom/android/server/wm/ActivityTaskManagerService$UpdateConfigurationResult;)Z
PLcom/android/server/wm/ActivityTaskManagerService;->updateCpuStats()V
PLcom/android/server/wm/ActivityTaskManagerService;->updateEventDispatchingLocked(Z)V
-PLcom/android/server/wm/ActivityTaskManagerService;->updateGlobalConfigurationLocked(Landroid/content/res/Configuration;ZZIZ)I
-PLcom/android/server/wm/ActivityTaskManagerService;->updateLockTaskFeatures(II)V
-PLcom/android/server/wm/ActivityTaskManagerService;->updateLockTaskPackages(I[Ljava/lang/String;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->updateGlobalConfigurationLocked(Landroid/content/res/Configuration;ZZIZ)I
+HSPLcom/android/server/wm/ActivityTaskManagerService;->updateLockTaskFeatures(II)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->updateLockTaskPackages(I[Ljava/lang/String;)V
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/AnimatingActivityRegistry;-><init>()V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->updateShouldShowDialogsLocked(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/ActivityTaskManagerService;->updateSleepIfNeededLocked()V
+PLcom/android/server/wm/ActivityTaskManagerService;->willActivityBeVisible(Landroid/os/IBinder;)Z
+PLcom/android/server/wm/ActivityTaskManagerService;->writeSleepStateToProto(Landroid/util/proto/ProtoOutputStream;IZ)V
+PLcom/android/server/wm/AlertWindowNotification;-><clinit>()V
+PLcom/android/server/wm/AlertWindowNotification;-><init>(Lcom/android/server/wm/WindowManagerService;Ljava/lang/String;)V
+PLcom/android/server/wm/AlertWindowNotification;->cancel(Z)V
+PLcom/android/server/wm/AlertWindowNotification;->createNotificationChannel(Landroid/content/Context;Ljava/lang/String;)V
+PLcom/android/server/wm/AlertWindowNotification;->getApplicationInfo(Landroid/content/pm/PackageManager;Ljava/lang/String;)Landroid/content/pm/ApplicationInfo;
+PLcom/android/server/wm/AlertWindowNotification;->getContentIntent(Landroid/content/Context;Ljava/lang/String;)Landroid/app/PendingIntent;
+PLcom/android/server/wm/AlertWindowNotification;->lambda$cancel$0$AlertWindowNotification(Z)V
+PLcom/android/server/wm/AlertWindowNotification;->lambda$iVtcJMb6VtqtAgEtGUDCkGay0tM(Lcom/android/server/wm/AlertWindowNotification;)V
+PLcom/android/server/wm/AlertWindowNotification;->onCancelNotification(Z)V
+PLcom/android/server/wm/AlertWindowNotification;->onPostNotification()V
+PLcom/android/server/wm/AlertWindowNotification;->post()V
+HSPLcom/android/server/wm/AnimatingActivityRegistry;-><init>()V
+HSPLcom/android/server/wm/AnimatingActivityRegistry;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/wm/AnimatingActivityRegistry;->endDeferringFinished()V
+PLcom/android/server/wm/AnimatingActivityRegistry;->notifyAboutToFinish(Lcom/android/server/wm/ActivityRecord;Ljava/lang/Runnable;)Z
PLcom/android/server/wm/AnimatingActivityRegistry;->notifyFinished(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/AppTransition$1;-><init>(Lcom/android/server/wm/AppTransition;)V
-PLcom/android/server/wm/AppTransition$2;-><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/AnimatingActivityRegistry;->notifyStarting(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/AnimationAdapter;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+PLcom/android/server/wm/AppTaskImpl;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;II)V
+PLcom/android/server/wm/AppTaskImpl;->checkCaller()V
+PLcom/android/server/wm/AppTaskImpl;->getTaskInfo()Landroid/app/ActivityManager$RecentTaskInfo;
+PLcom/android/server/wm/AppTaskImpl;->setExcludeFromRecents(Z)V
+HSPLcom/android/server/wm/AppTransition$1;-><init>(Lcom/android/server/wm/AppTransition;)V
+HSPLcom/android/server/wm/AppTransition$2;-><init>(Lcom/android/server/wm/AppTransition;)V
+HSPLcom/android/server/wm/AppTransition;-><clinit>()V
+HSPLcom/android/server/wm/AppTransition;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/AppTransition;->calculateClipRevealTransitionDuration(ZFFLandroid/graphics/Rect;)J
+PLcom/android/server/wm/AppTransition;->canOverridePendingAppTransition()Z
PLcom/android/server/wm/AppTransition;->canSkipFirstFrame()Z
PLcom/android/server/wm/AppTransition;->clear()V
+PLcom/android/server/wm/AppTransition;->createClipRevealAnimationLocked(IZLandroid/graphics/Rect;Landroid/graphics/Rect;)Landroid/view/animation/Animation;
+PLcom/android/server/wm/AppTransition;->doAnimationCallback(Landroid/os/IRemoteCallback;)V
+PLcom/android/server/wm/AppTransition;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
PLcom/android/server/wm/AppTransition;->fetchAppTransitionSpecsFromFuture()V
+PLcom/android/server/wm/AppTransition;->getAnimationStyleResId(Landroid/view/WindowManager$LayoutParams;)I
PLcom/android/server/wm/AppTransition;->getAppStackClipMode()I
-PLcom/android/server/wm/AppTransition;->getAppTransition()I
+HSPLcom/android/server/wm/AppTransition;->getAppTransition()I
PLcom/android/server/wm/AppTransition;->getCachedAnimations(Landroid/view/WindowManager$LayoutParams;)Lcom/android/server/AttributeCache$Entry;
+PLcom/android/server/wm/AppTransition;->getDefaultNextAppTransitionStartRect(Landroid/graphics/Rect;)V
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;Landroid/util/ArraySet;)I
PLcom/android/server/wm/AppTransition;->handleAppTransitionTimeout()V
+PLcom/android/server/wm/AppTransition;->isActivityTransit(I)Z
PLcom/android/server/wm/AppTransition;->isChangeTransit(I)Z
PLcom/android/server/wm/AppTransition;->isFetchingAppTransitionsSpecs()Z
PLcom/android/server/wm/AppTransition;->isKeyguardGoingAwayTransit(I)Z
PLcom/android/server/wm/AppTransition;->isKeyguardTransit(I)Z
-PLcom/android/server/wm/AppTransition;->isReady()Z
-PLcom/android/server/wm/AppTransition;->isRunning()Z
+PLcom/android/server/wm/AppTransition;->isNextAppTransitionOpenCrossProfileApps()Z
+PLcom/android/server/wm/AppTransition;->isNextAppTransitionThumbnailDown()Z
+PLcom/android/server/wm/AppTransition;->isNextAppTransitionThumbnailUp()Z
+HSPLcom/android/server/wm/AppTransition;->isReady()Z
+HSPLcom/android/server/wm/AppTransition;->isRunning()Z
PLcom/android/server/wm/AppTransition;->isTaskOpenTransit(I)Z
PLcom/android/server/wm/AppTransition;->isTaskTransit(I)Z
PLcom/android/server/wm/AppTransition;->isTimeout()Z
PLcom/android/server/wm/AppTransition;->isTransitionEqual(I)Z
PLcom/android/server/wm/AppTransition;->isTransitionSet()Z
-PLcom/android/server/wm/AppTransition;->loadAnimation(Landroid/view/WindowManager$LayoutParams;IZIILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZLcom/android/server/wm/WindowContainer;)Landroid/view/animation/Animation;
+HPLcom/android/server/wm/AppTransition;->loadAnimation(Landroid/view/WindowManager$LayoutParams;IZIILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZLcom/android/server/wm/WindowContainer;)Landroid/view/animation/Animation;
PLcom/android/server/wm/AppTransition;->loadAnimationAttr(Landroid/view/WindowManager$LayoutParams;II)Landroid/view/animation/Animation;
+PLcom/android/server/wm/AppTransition;->loadAnimationRes(Landroid/view/WindowManager$LayoutParams;I)Landroid/view/animation/Animation;
+PLcom/android/server/wm/AppTransition;->loadAnimationRes(Ljava/lang/String;I)Landroid/view/animation/Animation;
PLcom/android/server/wm/AppTransition;->loadAnimationSafely(Landroid/content/Context;I)Landroid/view/animation/Animation;
PLcom/android/server/wm/AppTransition;->loadKeyguardExitAnimation(I)Landroid/view/animation/Animation;
PLcom/android/server/wm/AppTransition;->needsBoosting()Z
@@ -17491,746 +21062,997 @@ PLcom/android/server/wm/AppTransition;->notifyAppTransitionStartingLocked(IJJJ)I
PLcom/android/server/wm/AppTransition;->overridePendingAppTransitionRemote(Landroid/view/RemoteAnimationAdapter;)V
PLcom/android/server/wm/AppTransition;->postAnimationCallback()V
PLcom/android/server/wm/AppTransition;->prepare()Z
-PLcom/android/server/wm/AppTransition;->prepareAppTransitionLocked(IZIZ)Z
-PLcom/android/server/wm/AppTransition;->registerListenerLocked(Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;)V
+HPLcom/android/server/wm/AppTransition;->prepareAppTransitionLocked(IZIZ)Z
+PLcom/android/server/wm/AppTransition;->putDefaultNextAppTransitionCoordinates(IIIILandroid/graphics/GraphicBuffer;)V
+HSPLcom/android/server/wm/AppTransition;->registerListenerLocked(Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;)V
PLcom/android/server/wm/AppTransition;->removeAppTransitionTimeoutCallbacks()V
PLcom/android/server/wm/AppTransition;->setAppTransition(II)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;->unregisterListener(Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;)V
PLcom/android/server/wm/AppTransition;->updateBooster()V
-PLcom/android/server/wm/AppTransitionController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/AppTransition;->updateToTranslucentAnimIfNeeded(II)I
+HSPLcom/android/server/wm/AppTransitionController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/AppTransitionController;->applyAnimations(Landroid/util/ArraySet;IZLandroid/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;)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;->getRemoteAnimationOverride(Lcom/android/server/wm/ActivityRecord;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;->handleAppTransitionReady()V
-PLcom/android/server/wm/AppTransitionController;->handleChangingApps(ILandroid/view/WindowManager$LayoutParams;Z)V
-PLcom/android/server/wm/AppTransitionController;->handleClosingApps(ILandroid/view/WindowManager$LayoutParams;Z)V
+HPLcom/android/server/wm/AppTransitionController;->handleChangingApps(I)V
+HPLcom/android/server/wm/AppTransitionController;->handleClosingApps()V
PLcom/android/server/wm/AppTransitionController;->handleNonAppWindowsInTransition(II)V
-PLcom/android/server/wm/AppTransitionController;->handleOpeningApps(ILandroid/view/WindowManager$LayoutParams;Z)V
+HPLcom/android/server/wm/AppTransitionController;->handleOpeningApps()V
PLcom/android/server/wm/AppTransitionController;->isTransitWithinTask(ILcom/android/server/wm/Task;)Z
+PLcom/android/server/wm/AppTransitionController;->lambda$findAnimLayoutParamsToken$1(ILandroid/util/ArraySet;Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/AppTransitionController;->lambda$findAnimLayoutParamsToken$2(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/AppTransitionController;->lambda$findAnimLayoutParamsToken$3(Lcom/android/server/wm/ActivityRecord;)Z
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;->maybeUpdateTransitToTranslucentAnim(I)I
PLcom/android/server/wm/AppTransitionController;->maybeUpdateTransitToWallpaper(IZZ)I
PLcom/android/server/wm/AppTransitionController;->overrideWithRemoteAnimationIfSet(Lcom/android/server/wm/ActivityRecord;ILandroid/util/ArraySet;)V
HPLcom/android/server/wm/AppTransitionController;->transitionGoodToGo(Landroid/util/ArraySet;Landroid/util/ArrayMap;)Z
HSPLcom/android/server/wm/AppWarnings$ConfigHandler;-><init>(Lcom/android/server/wm/AppWarnings;Landroid/os/Looper;)V
-PLcom/android/server/wm/AppWarnings$ConfigHandler;->handleMessage(Landroid/os/Message;)V
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$UiHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/wm/AppWarnings$UiHandler;->hideUnsupportedDisplaySizeDialog()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;->access$100(Lcom/android/server/wm/AppWarnings;)V
-PLcom/android/server/wm/AppWarnings;->hideDialogsForPackageUiThread(Ljava/lang/String;)V
-PLcom/android/server/wm/AppWarnings;->hideUnsupportedDisplaySizeDialogUiThread()V
-PLcom/android/server/wm/AppWarnings;->onDensityChanged()V
-PLcom/android/server/wm/AppWarnings;->onPackageDataCleared(Ljava/lang/String;)V
+HSPLcom/android/server/wm/AppWarnings;->access$100(Lcom/android/server/wm/AppWarnings;)V
+HSPLcom/android/server/wm/AppWarnings;->hideUnsupportedDisplaySizeDialogUiThread()V
+HSPLcom/android/server/wm/AppWarnings;->onDensityChanged()V
PLcom/android/server/wm/AppWarnings;->onResumeActivity(Lcom/android/server/wm/ActivityRecord;)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;->removePackageAndHideDialogs(Ljava/lang/String;)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
PLcom/android/server/wm/AppWarnings;->showUnsupportedDisplaySizeDialogIfNeeded(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/AppWarnings;->writeConfigToFileAmsThread()V
-PLcom/android/server/wm/BarController$BarHandler;-><init>(Lcom/android/server/wm/BarController;)V
+HPLcom/android/server/wm/BarController$1;-><init>(Lcom/android/server/wm/BarController;I)V
+PLcom/android/server/wm/BarController$1;->run()V
+HSPLcom/android/server/wm/BarController$BarHandler;-><init>(Lcom/android/server/wm/BarController;)V
PLcom/android/server/wm/BarController$BarHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/wm/BarController;-><init>(Ljava/lang/String;IIIIIII)V
+HSPLcom/android/server/wm/BarController;-><init>(Ljava/lang/String;IIIIIII)V
PLcom/android/server/wm/BarController;->access$100(Lcom/android/server/wm/BarController;)Lcom/android/server/wm/BarController$OnBarVisibilityChangedListener;
PLcom/android/server/wm/BarController;->adjustSystemUiVisibilityLw(II)V
-PLcom/android/server/wm/BarController;->applyTranslucentFlagLw(Lcom/android/server/wm/WindowState;II)I
-PLcom/android/server/wm/BarController;->checkHiddenLw()Z
-PLcom/android/server/wm/BarController;->computeStateLw(ZZLcom/android/server/wm/WindowState;Z)I
-PLcom/android/server/wm/BarController;->getStatusBarInternal()Lcom/android/server/statusbar/StatusBarManagerInternal;
+HPLcom/android/server/wm/BarController;->applyTranslucentFlagLw(Lcom/android/server/wm/WindowState;II)I
+HPLcom/android/server/wm/BarController;->checkHiddenLw()Z
+PLcom/android/server/wm/BarController;->checkShowTransientBarLw()Z
+HPLcom/android/server/wm/BarController;->computeStateLw(ZZLcom/android/server/wm/WindowState;Z)I
+HSPLcom/android/server/wm/BarController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/wm/BarController;->getStatusBarInternal()Lcom/android/server/statusbar/StatusBarManagerInternal;
PLcom/android/server/wm/BarController;->isTransientShowRequested()Z
PLcom/android/server/wm/BarController;->isTransientShowing()Z
PLcom/android/server/wm/BarController;->isTransparentAllowed(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/BarController;->setBarShowingLw(Z)Z
+HPLcom/android/server/wm/BarController;->setBarShowingLw(Z)Z
PLcom/android/server/wm/BarController;->setContentFrame(Landroid/graphics/Rect;)V
PLcom/android/server/wm/BarController;->setOnBarVisibilityChangedListener(Lcom/android/server/wm/BarController$OnBarVisibilityChangedListener;Z)V
PLcom/android/server/wm/BarController;->setShowTransparent(Z)V
PLcom/android/server/wm/BarController;->setWindow(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/BarController;->skipAnimation()Z
+PLcom/android/server/wm/BarController;->showTransient()V
+HPLcom/android/server/wm/BarController;->skipAnimation()Z
+PLcom/android/server/wm/BarController;->transientBarStateToString(I)Ljava/lang/String;
PLcom/android/server/wm/BarController;->updateStateLw(I)Z
-PLcom/android/server/wm/BarController;->updateVisibilityLw(ZII)I
-PLcom/android/server/wm/BoundsAnimationController$AppTransitionNotifier;-><init>(Lcom/android/server/wm/BoundsAnimationController;)V
-PLcom/android/server/wm/BoundsAnimationController$AppTransitionNotifier;-><init>(Lcom/android/server/wm/BoundsAnimationController;Lcom/android/server/wm/BoundsAnimationController$1;)V
+HPLcom/android/server/wm/BarController;->updateVisibilityLw(ZII)I
+PLcom/android/server/wm/BarController;->wasRecentlyTranslucent()Z
+HPLcom/android/server/wm/BlackFrame$BlackSurface;-><init>(Landroid/view/SurfaceControl$Transaction;IIIIILcom/android/server/wm/DisplayContent;Landroid/view/SurfaceControl;)V
+PLcom/android/server/wm/BlackFrame;-><init>(Ljava/util/function/Supplier;Landroid/view/SurfaceControl$Transaction;Landroid/graphics/Rect;Landroid/graphics/Rect;ILcom/android/server/wm/DisplayContent;ZLandroid/view/SurfaceControl;)V
+PLcom/android/server/wm/BlackFrame;->kill()V
+HSPLcom/android/server/wm/BoundsAnimationController$AppTransitionNotifier;-><init>(Lcom/android/server/wm/BoundsAnimationController;)V
+HSPLcom/android/server/wm/BoundsAnimationController$AppTransitionNotifier;-><init>(Lcom/android/server/wm/BoundsAnimationController;Lcom/android/server/wm/BoundsAnimationController$1;)V
PLcom/android/server/wm/BoundsAnimationController$AppTransitionNotifier;->animationFinished()V
PLcom/android/server/wm/BoundsAnimationController$AppTransitionNotifier;->onAppTransitionFinishedLocked(Landroid/os/IBinder;)V
-PLcom/android/server/wm/BoundsAnimationController;-><init>(Landroid/content/Context;Lcom/android/server/wm/AppTransition;Landroid/os/Handler;Landroid/animation/AnimationHandler;)V
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;-><init>(Lcom/android/server/wm/BoundsAnimationController;Lcom/android/server/wm/BoundsAnimationTarget;ILandroid/graphics/Rect;Landroid/graphics/Rect;IIZZLandroid/graphics/Rect;)V
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->access$1300(Lcom/android/server/wm/BoundsAnimationController$BoundsAnimator;)I
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->access$700(Lcom/android/server/wm/BoundsAnimationController$BoundsAnimator;)V
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->access$900(Lcom/android/server/wm/BoundsAnimationController$BoundsAnimator;)Z
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->animatingToLargerSize()Z
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->cancelAndCallAnimationEnd()V
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->getAnimationHandler()Landroid/animation/AnimationHandler;
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->isAnimatingTo(Landroid/graphics/Rect;)Z
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->lambda$new$0$BoundsAnimationController$BoundsAnimator()V
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->onAnimationCancel(Landroid/animation/Animator;)V
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->onAnimationEnd(Landroid/animation/Animator;)V
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->onAnimationStart(Landroid/animation/Animator;)V
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->pause()V
+PLcom/android/server/wm/BoundsAnimationController$BoundsAnimator;->resume()V
+HSPLcom/android/server/wm/BoundsAnimationController;-><init>(Landroid/content/Context;Lcom/android/server/wm/AppTransition;Landroid/os/Handler;Landroid/animation/AnimationHandler;)V
PLcom/android/server/wm/BoundsAnimationController;->access$000(Lcom/android/server/wm/BoundsAnimationController;)Z
-PLcom/android/server/wm/BoundsAnimationController;->lambda$new$0$BoundsAnimationController(Landroid/animation/AnimationHandler;)V
+PLcom/android/server/wm/BoundsAnimationController;->access$100(Lcom/android/server/wm/BoundsAnimationController;)Landroid/os/Handler;
+PLcom/android/server/wm/BoundsAnimationController;->animateBounds(Lcom/android/server/wm/BoundsAnimationTarget;Landroid/graphics/Rect;Landroid/graphics/Rect;IIZZI)V
+PLcom/android/server/wm/BoundsAnimationController;->animateBoundsImpl(Lcom/android/server/wm/BoundsAnimationTarget;Landroid/graphics/Rect;Landroid/graphics/Rect;IIZZI)Lcom/android/server/wm/BoundsAnimationController$BoundsAnimator;
+PLcom/android/server/wm/BoundsAnimationController;->cancel(Lcom/android/server/wm/BoundsAnimationTarget;)V
+PLcom/android/server/wm/BoundsAnimationController;->getHandler()Landroid/os/Handler;
+PLcom/android/server/wm/BoundsAnimationController;->isRunningFadeInAnimation(Lcom/android/server/wm/BoundsAnimationTarget;)Z
+HSPLcom/android/server/wm/BoundsAnimationController;->lambda$new$0$BoundsAnimationController(Landroid/animation/AnimationHandler;)V
PLcom/android/server/wm/BoundsAnimationController;->setAnimationType(I)V
HSPLcom/android/server/wm/ClientLifecycleManager;-><init>()V
-PLcom/android/server/wm/ClientLifecycleManager;->scheduleTransaction(Landroid/app/IApplicationThread;Landroid/app/servertransaction/ClientTransactionItem;)V
+HSPLcom/android/server/wm/ClientLifecycleManager;->scheduleTransaction(Landroid/app/IApplicationThread;Landroid/app/servertransaction/ClientTransactionItem;)V
PLcom/android/server/wm/ClientLifecycleManager;->scheduleTransaction(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/servertransaction/ActivityLifecycleItem;)V
PLcom/android/server/wm/ClientLifecycleManager;->scheduleTransaction(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/servertransaction/ClientTransactionItem;)V
-PLcom/android/server/wm/ClientLifecycleManager;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
-PLcom/android/server/wm/ClientLifecycleManager;->transactionWithCallback(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/servertransaction/ClientTransactionItem;)Landroid/app/servertransaction/ClientTransaction;
+HSPLcom/android/server/wm/ClientLifecycleManager;->scheduleTransaction(Landroid/app/servertransaction/ClientTransaction;)V
+HSPLcom/android/server/wm/ClientLifecycleManager;->transactionWithCallback(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/servertransaction/ClientTransactionItem;)Landroid/app/servertransaction/ClientTransaction;
PLcom/android/server/wm/ClientLifecycleManager;->transactionWithState(Landroid/app/IApplicationThread;Landroid/os/IBinder;Landroid/app/servertransaction/ActivityLifecycleItem;)Landroid/app/servertransaction/ClientTransaction;
HSPLcom/android/server/wm/CompatModePackages$CompatHandler;-><init>(Lcom/android/server/wm/CompatModePackages;Landroid/os/Looper;)V
HSPLcom/android/server/wm/CompatModePackages;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Ljava/io/File;Landroid/os/Handler;)V
-PLcom/android/server/wm/CompatModePackages;->compatibilityInfoForPackageLocked(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
-PLcom/android/server/wm/CompatModePackages;->getPackageFlags(Ljava/lang/String;)I
+HSPLcom/android/server/wm/CompatModePackages;->compatibilityInfoForPackageLocked(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/CompatibilityInfo;
+HSPLcom/android/server/wm/CompatModePackages;->getPackageFlags(Ljava/lang/String;)I
PLcom/android/server/wm/CompatModePackages;->handlePackageAddedLocked(Ljava/lang/String;Z)V
-PLcom/android/server/wm/CompatModePackages;->handlePackageDataClearedLocked(Ljava/lang/String;)V
-PLcom/android/server/wm/CompatModePackages;->removePackage(Ljava/lang/String;)V
-PLcom/android/server/wm/ConfigurationContainer$RemoteToken;-><init>(Lcom/android/server/wm/ConfigurationContainer;)V
+HSPLcom/android/server/wm/ConfigurationContainer$RemoteToken;-><init>(Lcom/android/server/wm/ConfigurationContainer;)V
HSPLcom/android/server/wm/ConfigurationContainer;-><init>()V
-PLcom/android/server/wm/ConfigurationContainer;->diffRequestedOverrideBounds(Landroid/graphics/Rect;)I
-PLcom/android/server/wm/ConfigurationContainer;->equivalentBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
-PLcom/android/server/wm/ConfigurationContainer;->equivalentRequestedOverrideBounds(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;->getBounds(Landroid/graphics/Rect;)V
-HPLcom/android/server/wm/ConfigurationContainer;->getConfiguration()Landroid/content/res/Configuration;
-PLcom/android/server/wm/ConfigurationContainer;->getMergedOverrideConfiguration()Landroid/content/res/Configuration;
-PLcom/android/server/wm/ConfigurationContainer;->getName()Ljava/lang/String;
-PLcom/android/server/wm/ConfigurationContainer;->getRequestedOverrideBounds()Landroid/graphics/Rect;
-PLcom/android/server/wm/ConfigurationContainer;->getRequestedOverrideConfiguration()Landroid/content/res/Configuration;
-PLcom/android/server/wm/ConfigurationContainer;->getRequestedOverrideWindowingMode()I
+HSPLcom/android/server/wm/ConfigurationContainer;->diffRequestedOverrideBounds(Landroid/graphics/Rect;)I
+PLcom/android/server/wm/ConfigurationContainer;->dumpChildrenNames(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/wm/ConfigurationContainer;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+HSPLcom/android/server/wm/ConfigurationContainer;->equivalentBounds(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
+HSPLcom/android/server/wm/ConfigurationContainer;->equivalentRequestedOverrideBounds(Landroid/graphics/Rect;)Z
+HSPLcom/android/server/wm/ConfigurationContainer;->getActivityType()I
+HSPLcom/android/server/wm/ConfigurationContainer;->getBounds()Landroid/graphics/Rect;
+HSPLcom/android/server/wm/ConfigurationContainer;->getBounds(Landroid/graphics/Rect;)V
+HSPLcom/android/server/wm/ConfigurationContainer;->getConfiguration()Landroid/content/res/Configuration;
+HSPLcom/android/server/wm/ConfigurationContainer;->getMergedOverrideConfiguration()Landroid/content/res/Configuration;
+HSPLcom/android/server/wm/ConfigurationContainer;->getName()Ljava/lang/String;
+HSPLcom/android/server/wm/ConfigurationContainer;->getRequestedOverrideBounds()Landroid/graphics/Rect;
+HSPLcom/android/server/wm/ConfigurationContainer;->getRequestedOverrideConfiguration()Landroid/content/res/Configuration;
+HSPLcom/android/server/wm/ConfigurationContainer;->getRequestedOverrideWindowingMode()I
PLcom/android/server/wm/ConfigurationContainer;->getResolvedOverrideBounds()Landroid/graphics/Rect;
PLcom/android/server/wm/ConfigurationContainer;->getResolvedOverrideConfiguration()Landroid/content/res/Configuration;
-PLcom/android/server/wm/ConfigurationContainer;->getWindowConfiguration()Landroid/app/WindowConfiguration;
-PLcom/android/server/wm/ConfigurationContainer;->getWindowingMode()I
-PLcom/android/server/wm/ConfigurationContainer;->hasChild()Z
-PLcom/android/server/wm/ConfigurationContainer;->hasCompatibleActivityType(Lcom/android/server/wm/ConfigurationContainer;)Z
-PLcom/android/server/wm/ConfigurationContainer;->inFreeformWindowingMode()Z
-PLcom/android/server/wm/ConfigurationContainer;->inMultiWindowMode()Z
-PLcom/android/server/wm/ConfigurationContainer;->inPinnedWindowingMode()Z
-PLcom/android/server/wm/ConfigurationContainer;->inSplitScreenPrimaryWindowingMode()Z
+HSPLcom/android/server/wm/ConfigurationContainer;->getWindowConfiguration()Landroid/app/WindowConfiguration;
+HSPLcom/android/server/wm/ConfigurationContainer;->getWindowingMode()I
+HSPLcom/android/server/wm/ConfigurationContainer;->hasChild()Z
+HPLcom/android/server/wm/ConfigurationContainer;->hasCompatibleActivityType(Lcom/android/server/wm/ConfigurationContainer;)Z
+HPLcom/android/server/wm/ConfigurationContainer;->inFreeformWindowingMode()Z
+HPLcom/android/server/wm/ConfigurationContainer;->inMultiWindowMode()Z
+HSPLcom/android/server/wm/ConfigurationContainer;->inPinnedWindowingMode()Z
+HSPLcom/android/server/wm/ConfigurationContainer;->inSplitScreenPrimaryWindowingMode()Z
PLcom/android/server/wm/ConfigurationContainer;->inSplitScreenSecondaryWindowingMode()Z
PLcom/android/server/wm/ConfigurationContainer;->inSplitScreenWindowingMode()Z
-PLcom/android/server/wm/ConfigurationContainer;->isActivityTypeAssistant()Z
-PLcom/android/server/wm/ConfigurationContainer;->isActivityTypeHome()Z
+HSPLcom/android/server/wm/ConfigurationContainer;->isActivityTypeAssistant()Z
+HSPLcom/android/server/wm/ConfigurationContainer;->isActivityTypeHome()Z
PLcom/android/server/wm/ConfigurationContainer;->isActivityTypeRecents()Z
PLcom/android/server/wm/ConfigurationContainer;->isActivityTypeStandard()Z
PLcom/android/server/wm/ConfigurationContainer;->isActivityTypeStandardOrUndefined()Z
-PLcom/android/server/wm/ConfigurationContainer;->isAlwaysOnTop()Z
-PLcom/android/server/wm/ConfigurationContainer;->isCompatible(II)Z
-HPLcom/android/server/wm/ConfigurationContainer;->matchParentBounds()Z
+HSPLcom/android/server/wm/ConfigurationContainer;->isAlwaysOnTop()Z
+HPLcom/android/server/wm/ConfigurationContainer;->isCompatible(II)Z
+HSPLcom/android/server/wm/ConfigurationContainer;->matchParentBounds()Z
HSPLcom/android/server/wm/ConfigurationContainer;->onConfigurationChanged(Landroid/content/res/Configuration;)V
HSPLcom/android/server/wm/ConfigurationContainer;->onConfigurationChanged(Landroid/content/res/Configuration;Z)V
-PLcom/android/server/wm/ConfigurationContainer;->onMergedOverrideConfigurationChanged()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
-PLcom/android/server/wm/ConfigurationContainer;->registerConfigurationChangeListener(Lcom/android/server/wm/ConfigurationContainerListener;)V
+HSPLcom/android/server/wm/ConfigurationContainer;->onMergedOverrideConfigurationChanged()V
+HSPLcom/android/server/wm/ConfigurationContainer;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
+HSPLcom/android/server/wm/ConfigurationContainer;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/ConfigurationContainer;->registerConfigurationChangeListener(Lcom/android/server/wm/ConfigurationContainerListener;)V
HSPLcom/android/server/wm/ConfigurationContainer;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/ConfigurationContainer;->setActivityType(I)V
-PLcom/android/server/wm/ConfigurationContainer;->setBounds(IIII)I
-PLcom/android/server/wm/ConfigurationContainer;->setBounds(Landroid/graphics/Rect;)I
-PLcom/android/server/wm/ConfigurationContainer;->setDisplayWindowingMode(I)V
-PLcom/android/server/wm/ConfigurationContainer;->setWindowingMode(I)V
-PLcom/android/server/wm/ConfigurationContainer;->supportsSplitScreenWindowingMode()Z
-PLcom/android/server/wm/ConfigurationContainer;->writeToProto(Landroid/util/proto/ProtoOutputStream;JI)V
-PLcom/android/server/wm/Dimmer;-><init>(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/Dimmer;-><init>(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Dimmer$SurfaceAnimatorStarter;)V
-PLcom/android/server/wm/Dimmer;->resetDimStates()V
-HPLcom/android/server/wm/Dimmer;->updateDims(Landroid/view/SurfaceControl$Transaction;Landroid/graphics/Rect;)Z
-PLcom/android/server/wm/DisplayContent$AboveAppWindowContainers;-><init>(Lcom/android/server/wm/DisplayContent;Ljava/lang/String;Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/ConfigurationContainer;->setActivityType(I)V
+HSPLcom/android/server/wm/ConfigurationContainer;->setBounds(IIII)I
+HSPLcom/android/server/wm/ConfigurationContainer;->setBounds(Landroid/graphics/Rect;)I
+HSPLcom/android/server/wm/ConfigurationContainer;->setDisplayWindowingMode(I)V
+HSPLcom/android/server/wm/ConfigurationContainer;->setWindowingMode(I)V
+HPLcom/android/server/wm/ConfigurationContainer;->supportsSplitScreenWindowingMode()Z
+PLcom/android/server/wm/Dimmer$AlphaAnimationSpec;-><init>(FFJ)V
+PLcom/android/server/wm/Dimmer$AlphaAnimationSpec;->apply(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;J)V
+PLcom/android/server/wm/Dimmer$AlphaAnimationSpec;->getDuration()J
+PLcom/android/server/wm/Dimmer$DimAnimatable;-><init>(Lcom/android/server/wm/Dimmer;Landroid/view/SurfaceControl;)V
+PLcom/android/server/wm/Dimmer$DimAnimatable;-><init>(Lcom/android/server/wm/Dimmer;Landroid/view/SurfaceControl;Lcom/android/server/wm/Dimmer$1;)V
+PLcom/android/server/wm/Dimmer$DimAnimatable;->getAnimationLeashParent()Landroid/view/SurfaceControl;
+PLcom/android/server/wm/Dimmer$DimAnimatable;->getParentSurfaceControl()Landroid/view/SurfaceControl;
+PLcom/android/server/wm/Dimmer$DimAnimatable;->getPendingTransaction()Landroid/view/SurfaceControl$Transaction;
+PLcom/android/server/wm/Dimmer$DimAnimatable;->getSurfaceControl()Landroid/view/SurfaceControl;
+PLcom/android/server/wm/Dimmer$DimAnimatable;->getSurfaceHeight()I
+PLcom/android/server/wm/Dimmer$DimAnimatable;->getSurfaceWidth()I
+PLcom/android/server/wm/Dimmer$DimAnimatable;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder;
+PLcom/android/server/wm/Dimmer$DimAnimatable;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
+PLcom/android/server/wm/Dimmer$DimAnimatable;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/Dimmer$DimAnimatable;->removeSurface()V
+PLcom/android/server/wm/Dimmer$DimState;-><init>(Lcom/android/server/wm/Dimmer;Landroid/view/SurfaceControl;)V
+PLcom/android/server/wm/Dimmer$DimState;->lambda$new$0$Dimmer$DimState(Lcom/android/server/wm/Dimmer$DimAnimatable;)V
+HSPLcom/android/server/wm/Dimmer;-><init>(Lcom/android/server/wm/WindowContainer;)V
+HSPLcom/android/server/wm/Dimmer;-><init>(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/Dimmer$SurfaceAnimatorStarter;)V
+PLcom/android/server/wm/Dimmer;->dim(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowContainer;IF)V
+PLcom/android/server/wm/Dimmer;->dimBelow(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowContainer;F)V
+PLcom/android/server/wm/Dimmer;->getDimDuration(Lcom/android/server/wm/WindowContainer;)J
+PLcom/android/server/wm/Dimmer;->getDimState(Lcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/Dimmer$DimState;
+PLcom/android/server/wm/Dimmer;->makeDimLayer()Landroid/view/SurfaceControl;
+HSPLcom/android/server/wm/Dimmer;->resetDimStates()V
+PLcom/android/server/wm/Dimmer;->startAnim(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/SurfaceAnimator;Landroid/view/SurfaceControl$Transaction;FF)V
+PLcom/android/server/wm/Dimmer;->startDimEnter(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/SurfaceAnimator;Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/Dimmer;->startDimExit(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/SurfaceAnimator;Landroid/view/SurfaceControl$Transaction;)V
+HSPLcom/android/server/wm/Dimmer;->updateDims(Landroid/view/SurfaceControl$Transaction;Landroid/graphics/Rect;)Z
+HSPLcom/android/server/wm/DisplayContent$AboveAppWindowContainers;-><init>(Lcom/android/server/wm/DisplayContent;Ljava/lang/String;Lcom/android/server/wm/WindowManagerService;)V
PLcom/android/server/wm/DisplayContent$AboveAppWindowContainers;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/DisplayContent$AboveAppWindowContainers;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowContainer;)V
+HSPLcom/android/server/wm/DisplayContent$AboveAppWindowContainers;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowContainer;)V
PLcom/android/server/wm/DisplayContent$AboveAppWindowContainers;->makeChildSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl$Builder;
-PLcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;-><init>()V
-PLcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;-><init>(Lcom/android/server/wm/DisplayContent$1;)V
-PLcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;->reset()V
-PLcom/android/server/wm/DisplayContent$DisplayChildWindowContainer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/DisplayContent$DisplayChildWindowContainer;->fillsParent()Z
-PLcom/android/server/wm/DisplayContent$NonAppWindowContainers;-><init>(Lcom/android/server/wm/DisplayContent;Ljava/lang/String;Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;-><init>()V
+HSPLcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;-><init>(Lcom/android/server/wm/DisplayContent$1;)V
+HSPLcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;->reset()V
+HSPLcom/android/server/wm/DisplayContent$DisplayChildWindowContainer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HPLcom/android/server/wm/DisplayContent$DisplayChildWindowContainer;->fillsParent()Z
+HSPLcom/android/server/wm/DisplayContent$NonAppWindowContainers;-><init>(Lcom/android/server/wm/DisplayContent;Ljava/lang/String;Lcom/android/server/wm/WindowManagerService;)V
PLcom/android/server/wm/DisplayContent$NonAppWindowContainers;->addChild(Lcom/android/server/wm/WindowToken;)V
HPLcom/android/server/wm/DisplayContent$NonAppWindowContainers;->getDimmer()Lcom/android/server/wm/Dimmer;
-PLcom/android/server/wm/DisplayContent$NonAppWindowContainers;->getName()Ljava/lang/String;
-PLcom/android/server/wm/DisplayContent$NonAppWindowContainers;->getOrientation()I
+HSPLcom/android/server/wm/DisplayContent$NonAppWindowContainers;->getName()Ljava/lang/String;
+HSPLcom/android/server/wm/DisplayContent$NonAppWindowContainers;->getOrientation()I
PLcom/android/server/wm/DisplayContent$NonAppWindowContainers;->lambda$new$0$DisplayContent$NonAppWindowContainers(Lcom/android/server/wm/WindowToken;Lcom/android/server/wm/WindowToken;)I
PLcom/android/server/wm/DisplayContent$NonAppWindowContainers;->lambda$new$1(Lcom/android/server/wm/WindowState;)Z
-HPLcom/android/server/wm/DisplayContent$NonAppWindowContainers;->prepareSurfaces()V
-PLcom/android/server/wm/DisplayContent$TaskForResizePointSearchResult;-><init>()V
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;-><init>(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;->addChild(Lcom/android/server/wm/ActivityStack;I)V
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;->addStackReferenceIfNeeded(Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;->assignStackOrdering(Landroid/view/SurfaceControl$Transaction;)V
-HPLcom/android/server/wm/DisplayContent$TaskStackContainers;->findPositionForStack(ILcom/android/server/wm/ActivityStack;Z)I
-HPLcom/android/server/wm/DisplayContent$TaskStackContainers;->forAllExitingAppTokenWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
-HPLcom/android/server/wm/DisplayContent$TaskStackContainers;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
+HSPLcom/android/server/wm/DisplayContent$NonAppWindowContainers;->prepareSurfaces()V
+HSPLcom/android/server/wm/DisplayContent$TaskForResizePointSearchResult;-><init>()V
+PLcom/android/server/wm/DisplayContent$TaskForResizePointSearchResult;->lambda$1FHFJXiYTNFcgi5tiBrxzbmjdWw(Lcom/android/server/wm/DisplayContent$TaskForResizePointSearchResult;Lcom/android/server/wm/Task;)Z
+PLcom/android/server/wm/DisplayContent$TaskForResizePointSearchResult;->process(Lcom/android/server/wm/WindowContainer;III)Lcom/android/server/wm/Task;
+PLcom/android/server/wm/DisplayContent$TaskForResizePointSearchResult;->processTask(Lcom/android/server/wm/Task;)Z
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;-><init>(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->addChild(Lcom/android/server/wm/ActivityStack;I)V
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->addStackReferenceIfNeeded(Lcom/android/server/wm/ActivityStack;)V
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->assignStackOrdering(Landroid/view/SurfaceControl$Transaction;)V
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->findPositionForStack(ILcom/android/server/wm/ActivityStack;Z)I
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->forAllExitingAppTokenWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
PLcom/android/server/wm/DisplayContent$TaskStackContainers;->getAppAnimationLayer(I)Landroid/view/SurfaceControl;
-HPLcom/android/server/wm/DisplayContent$TaskStackContainers;->getHomeStack()Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;->getIndexOf(Lcom/android/server/wm/ActivityStack;)I
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;->getOrientation()I
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;->getPinnedStack()Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->getHomeStack()Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->getIndexOf(Lcom/android/server/wm/ActivityStack;)I
+HPLcom/android/server/wm/DisplayContent$TaskStackContainers;->getOrientation()I
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->getPinnedStack()Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->getRecentsStack()Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/DisplayContent$TaskStackContainers;->getSplitScreenDividerAnchor()Landroid/view/SurfaceControl;
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;->getSplitScreenPrimaryStack()Lcom/android/server/wm/ActivityStack;
-HPLcom/android/server/wm/DisplayContent$TaskStackContainers;->getStack(II)Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->getSplitScreenPrimaryStack()Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->getStack(II)Lcom/android/server/wm/ActivityStack;
HPLcom/android/server/wm/DisplayContent$TaskStackContainers;->getTopStack()Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;->lambda$onParentChanged$1$DisplayContent$TaskStackContainers()V
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;->positionChildAt(ILcom/android/server/wm/ActivityStack;Z)V
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->lambda$onParentChanged$1$DisplayContent$TaskStackContainers()V
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->positionChildAt(ILcom/android/server/wm/ActivityStack;Z)V
PLcom/android/server/wm/DisplayContent$TaskStackContainers;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
PLcom/android/server/wm/DisplayContent$TaskStackContainers;->removeChild(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;->removeExistingAppTokensIfPossible()V
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->removeExistingAppTokensIfPossible()V
PLcom/android/server/wm/DisplayContent$TaskStackContainers;->removeStackReferenceIfNeeded(Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/DisplayContent$TaskStackContainers;->setExitingTokensHasVisible(Z)V
-PLcom/android/server/wm/DisplayContent;-><init>(Landroid/view/Display;Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/DisplayContent;->access$100(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/DisplayContent$TaskStackContainers;
-PLcom/android/server/wm/DisplayContent;->access$200(Lcom/android/server/wm/DisplayContent;)I
-PLcom/android/server/wm/DisplayContent;->access$300(Lcom/android/server/wm/DisplayContent;)Ljava/util/ArrayList;
-PLcom/android/server/wm/DisplayContent;->access$400(Lcom/android/server/wm/DisplayContent;)Ljava/util/ArrayList;
-PLcom/android/server/wm/DisplayContent;->access$500(Lcom/android/server/wm/DisplayContent;)Ljava/util/ArrayList;
-PLcom/android/server/wm/DisplayContent;->access$600(Lcom/android/server/wm/DisplayContent;)I
-PLcom/android/server/wm/DisplayContent;->access$602(Lcom/android/server/wm/DisplayContent;I)I
-PLcom/android/server/wm/DisplayContent;->access$702(Lcom/android/server/wm/DisplayContent;I)I
-PLcom/android/server/wm/DisplayContent;->addToGlobalAndConsumeLimit(Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Rect;ILcom/android/server/wm/WindowState;I)I
+HSPLcom/android/server/wm/DisplayContent$TaskStackContainers;->setExitingTokensHasVisible(Z)V
+HSPLcom/android/server/wm/DisplayContent$WindowContainers;-><init>(Lcom/android/server/wm/DisplayContent;Ljava/lang/String;Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/DisplayContent$WindowContainers;->addChildren()V
+HSPLcom/android/server/wm/DisplayContent$WindowContainers;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
+HSPLcom/android/server/wm/DisplayContent$WindowContainers;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
+HSPLcom/android/server/wm/DisplayContent$WindowContainers;->getName()Ljava/lang/String;
+HPLcom/android/server/wm/DisplayContent$WindowContainers;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
+HSPLcom/android/server/wm/DisplayContent$WindowContainers;->skipTraverseChild(Lcom/android/server/wm/WindowContainer;)Z
+HSPLcom/android/server/wm/DisplayContent;-><clinit>()V
+HSPLcom/android/server/wm/DisplayContent;-><init>(Landroid/view/Display;Lcom/android/server/wm/RootActivityContainer;)V
+HSPLcom/android/server/wm/DisplayContent;->access$100(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/DisplayContent$TaskStackContainers;
+HSPLcom/android/server/wm/DisplayContent;->access$200(Lcom/android/server/wm/DisplayContent;)Ljava/util/ArrayList;
+HSPLcom/android/server/wm/DisplayContent;->access$300(Lcom/android/server/wm/DisplayContent;)Ljava/util/ArrayList;
+HSPLcom/android/server/wm/DisplayContent;->access$400(Lcom/android/server/wm/DisplayContent;)Ljava/util/ArrayList;
+HSPLcom/android/server/wm/DisplayContent;->access$500(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/DisplayContent$NonAppWindowContainers;
+HSPLcom/android/server/wm/DisplayContent;->access$600(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/DisplayContent$AboveAppWindowContainers;
+HSPLcom/android/server/wm/DisplayContent;->access$700(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/DisplayContent$NonAppWindowContainers;
+HSPLcom/android/server/wm/DisplayContent;->access$800(Lcom/android/server/wm/DisplayContent;)I
+PLcom/android/server/wm/DisplayContent;->access$802(Lcom/android/server/wm/DisplayContent;I)I
+HSPLcom/android/server/wm/DisplayContent;->access$902(Lcom/android/server/wm/DisplayContent;I)I
+HSPLcom/android/server/wm/DisplayContent;->addStack(Lcom/android/server/wm/ActivityStack;I)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;->addWindowToken(Landroid/os/IBinder;Lcom/android/server/wm/WindowToken;)V
-PLcom/android/server/wm/DisplayContent;->adjustDisplaySizeRanges(Landroid/view/DisplayInfo;IIII)V
-PLcom/android/server/wm/DisplayContent;->adjustForImeIfNeeded()V
-PLcom/android/server/wm/DisplayContent;->amendWindowTapExcludeRegion(Landroid/graphics/Region;)V
-PLcom/android/server/wm/DisplayContent;->applySurfaceChangesTransaction(Z)V
-PLcom/android/server/wm/DisplayContent;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/DisplayContent;->assignWindowLayers(Z)V
-PLcom/android/server/wm/DisplayContent;->calculateBounds(Landroid/view/DisplayInfo;Landroid/graphics/Rect;)V
-PLcom/android/server/wm/DisplayContent;->calculateDisplayCutoutForRotation(I)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;->calculateSystemGestureExclusion(Landroid/graphics/Region;Landroid/graphics/Region;)Z
+HSPLcom/android/server/wm/DisplayContent;->adjustDisplaySizeRanges(Landroid/view/DisplayInfo;IIII)V
+HSPLcom/android/server/wm/DisplayContent;->adjustForImeIfNeeded()V
+HPLcom/android/server/wm/DisplayContent;->allResumedActivitiesComplete()Z
+HSPLcom/android/server/wm/DisplayContent;->alwaysCreateStack(II)Z
+HSPLcom/android/server/wm/DisplayContent;->amendWindowTapExcludeRegion(Landroid/graphics/Region;)V
+PLcom/android/server/wm/DisplayContent;->applyRotationLocked(II)V
+HSPLcom/android/server/wm/DisplayContent;->applySurfaceChangesTransaction(Z)V
+HSPLcom/android/server/wm/DisplayContent;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/DisplayContent;->assignStackOrdering()V
+HSPLcom/android/server/wm/DisplayContent;->assignWindowLayers(Z)V
+HSPLcom/android/server/wm/DisplayContent;->calculateBounds(Landroid/view/DisplayInfo;Landroid/graphics/Rect;)V
+HSPLcom/android/server/wm/DisplayContent;->calculateDisplayCutoutForRotation(I)Lcom/android/server/wm/utils/WmDisplayCutout;
+HSPLcom/android/server/wm/DisplayContent;->calculateDisplayCutoutForRotationUncached(Landroid/view/DisplayCutout;I)Lcom/android/server/wm/utils/WmDisplayCutout;
+HPLcom/android/server/wm/DisplayContent;->calculateSystemGestureExclusion(Landroid/graphics/Region;Landroid/graphics/Region;)Z
PLcom/android/server/wm/DisplayContent;->canAddToastWindowForUid(I)Z
-PLcom/android/server/wm/DisplayContent;->checkCompleteDeferredRemoval()Z
-PLcom/android/server/wm/DisplayContent;->clearLayoutNeeded()V
-PLcom/android/server/wm/DisplayContent;->computeCompatSmallestWidth(ZIIILandroid/view/DisplayCutout;)I
+PLcom/android/server/wm/DisplayContent;->canUpdateImeTarget()Z
+HSPLcom/android/server/wm/DisplayContent;->checkCompleteDeferredRemoval()Z
+HSPLcom/android/server/wm/DisplayContent;->clearLayoutNeeded()V
+HSPLcom/android/server/wm/DisplayContent;->computeCompatSmallestWidth(ZIIILandroid/view/DisplayCutout;)I
+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
-PLcom/android/server/wm/DisplayContent;->computeScreenConfiguration(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/DisplayContent;->computeSizeRangesAndScreenLayout(Landroid/view/DisplayInfo;ZIIIFLandroid/content/res/Configuration;)V
-PLcom/android/server/wm/DisplayContent;->configureDisplayPolicy()V
+HSPLcom/android/server/wm/DisplayContent;->computeScreenConfiguration(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/DisplayContent;->computeSizeRangesAndScreenLayout(Landroid/view/DisplayInfo;ZIIIFLandroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/DisplayContent;->configureDisplayPolicy()V
PLcom/android/server/wm/DisplayContent;->continueUpdateImeTarget()V
+PLcom/android/server/wm/DisplayContent;->convertCropForSurfaceFlinger(Landroid/graphics/Rect;III)V
+HSPLcom/android/server/wm/DisplayContent;->createStack(IIZ)Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent;->createStackUnchecked(IIIZ)Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/DisplayContent;->deferUpdateImeTarget()V
+PLcom/android/server/wm/DisplayContent;->deltaRotation(II)I
+HSPLcom/android/server/wm/DisplayContent;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/wm/DisplayContent;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+PLcom/android/server/wm/DisplayContent;->dumpDebugInner(Landroid/util/proto/ProtoOutputStream;JI)V
+PLcom/android/server/wm/DisplayContent;->dumpTokens(Ljava/io/PrintWriter;Z)V
+HSPLcom/android/server/wm/DisplayContent;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;IZZ)V
PLcom/android/server/wm/DisplayContent;->executeAppTransition()V
-PLcom/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;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
+HSPLcom/android/server/wm/DisplayContent;->findFocusedWindow()Lcom/android/server/wm/WindowState;
+HSPLcom/android/server/wm/DisplayContent;->findFocusedWindowIfNeeded(I)Lcom/android/server/wm/WindowState;
+HPLcom/android/server/wm/DisplayContent;->findTaskLocked(Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/RootActivityContainer$FindTaskResult;)V
+PLcom/android/server/wm/DisplayContent;->forAllImeWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
PLcom/android/server/wm/DisplayContent;->getActivityRecord(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/DisplayContent;->getDisplay()Landroid/view/Display;
-PLcom/android/server/wm/DisplayContent;->getDisplayId()I
-PLcom/android/server/wm/DisplayContent;->getDisplayInfo()Landroid/view/DisplayInfo;
-PLcom/android/server/wm/DisplayContent;->getDisplayMetrics()Landroid/util/DisplayMetrics;
-PLcom/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;->getDockedDividerController()Lcom/android/server/wm/DockedStackDividerController;
-PLcom/android/server/wm/DisplayContent;->getHomeStack()Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/DisplayContent;->getIndexOf(Lcom/android/server/wm/ActivityStack;)I
-PLcom/android/server/wm/DisplayContent;->getInputMonitor()Lcom/android/server/wm/InputMonitor;
+HSPLcom/android/server/wm/DisplayContent;->getDisplay()Landroid/view/Display;
+HSPLcom/android/server/wm/DisplayContent;->getDisplayId()I
+HSPLcom/android/server/wm/DisplayContent;->getDisplayInfo()Landroid/view/DisplayInfo;
+HSPLcom/android/server/wm/DisplayContent;->getDisplayMetrics()Landroid/util/DisplayMetrics;
+HSPLcom/android/server/wm/DisplayContent;->getDisplayPolicy()Lcom/android/server/wm/DisplayPolicy;
+HSPLcom/android/server/wm/DisplayContent;->getDisplayRotation()Lcom/android/server/wm/DisplayRotation;
+HSPLcom/android/server/wm/DisplayContent;->getDockedDividerController()Lcom/android/server/wm/DockedStackDividerController;
+HSPLcom/android/server/wm/DisplayContent;->getFocusedStack()Lcom/android/server/wm/ActivityStack;
+PLcom/android/server/wm/DisplayContent;->getHomeActivity()Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/DisplayContent;->getHomeActivityForUser(I)Lcom/android/server/wm/ActivityRecord;
+HSPLcom/android/server/wm/DisplayContent;->getHomeStack()Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent;->getIndexOf(Lcom/android/server/wm/ActivityStack;)I
+HSPLcom/android/server/wm/DisplayContent;->getInputMonitor()Lcom/android/server/wm/InputMonitor;
PLcom/android/server/wm/DisplayContent;->getInsetsPolicy()Lcom/android/server/wm/InsetsPolicy;
PLcom/android/server/wm/DisplayContent;->getInsetsStateController()Lcom/android/server/wm/InsetsStateController;
+PLcom/android/server/wm/DisplayContent;->getLastFocusedStack()Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/DisplayContent;->getLastHasContent()Z
-PLcom/android/server/wm/DisplayContent;->getMetricsLogger()Lcom/android/internal/logging/MetricsLogger;
-PLcom/android/server/wm/DisplayContent;->getOrientation()I
+PLcom/android/server/wm/DisplayContent;->getLastOrientation()I
+HSPLcom/android/server/wm/DisplayContent;->getMetricsLogger()Lcom/android/internal/logging/MetricsLogger;
+PLcom/android/server/wm/DisplayContent;->getName()Ljava/lang/String;
+PLcom/android/server/wm/DisplayContent;->getNaturalOrientation()I
+PLcom/android/server/wm/DisplayContent;->getNextFocusableStack(Lcom/android/server/wm/ActivityStack;Z)Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent;->getNextStackId()I
+HSPLcom/android/server/wm/DisplayContent;->getOrCreateStack(IIZ)Lcom/android/server/wm/ActivityStack;
+PLcom/android/server/wm/DisplayContent;->getOrCreateStack(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;IZ)Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent;->getOrientation()I
+PLcom/android/server/wm/DisplayContent;->getOverlayLayer()Landroid/view/SurfaceControl;
PLcom/android/server/wm/DisplayContent;->getParentWindow()Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/DisplayContent;->getPinnedStack()Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/DisplayContent;->getPinnedStackController()Lcom/android/server/wm/PinnedStackController;
-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;->getSplitScreenPrimaryStack()Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent;->getPinnedStack()Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent;->getPinnedStackController()Lcom/android/server/wm/PinnedStackController;
+HSPLcom/android/server/wm/DisplayContent;->getRecentsStack()Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent;->getResumedActivity()Lcom/android/server/wm/ActivityRecord;
+HSPLcom/android/server/wm/DisplayContent;->getRotation()I
+HSPLcom/android/server/wm/DisplayContent;->getRotationAnimation()Lcom/android/server/wm/ScreenRotationAnimation;
+HSPLcom/android/server/wm/DisplayContent;->getSession()Landroid/view/SurfaceSession;
+HSPLcom/android/server/wm/DisplayContent;->getSplitScreenPrimaryStack()Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/DisplayContent;->getSplitScreenPrimaryStackIgnoringVisibility()Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/DisplayContent;->getStack(II)Lcom/android/server/wm/ActivityStack;
-HPLcom/android/server/wm/DisplayContent;->getStackAt(I)Lcom/android/server/wm/ActivityStack;
-HPLcom/android/server/wm/DisplayContent;->getStackCount()I
-PLcom/android/server/wm/DisplayContent;->getStacks()Lcom/android/server/wm/WindowList;
+PLcom/android/server/wm/DisplayContent;->getStack(I)Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent;->getStack(II)Lcom/android/server/wm/ActivityStack;
+PLcom/android/server/wm/DisplayContent;->getStackAbove(Lcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent;->getStackAt(I)Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/DisplayContent;->getStackCount()I
+HSPLcom/android/server/wm/DisplayContent;->getStacks()Lcom/android/server/wm/WindowList;
PLcom/android/server/wm/DisplayContent;->getTopStack()Lcom/android/server/wm/ActivityStack;
+PLcom/android/server/wm/DisplayContent;->getTopStackInWindowingMode(I)Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/DisplayContent;->getVisibleTasks()Ljava/util/ArrayList;
PLcom/android/server/wm/DisplayContent;->getWindowCornerRadius()F
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
PLcom/android/server/wm/DisplayContent;->handlesOrientationChangeFromDescendant()Z
-PLcom/android/server/wm/DisplayContent;->hasAccess(I)Z
-PLcom/android/server/wm/DisplayContent;->hasPinnedStack()Z
-PLcom/android/server/wm/DisplayContent;->hasSplitScreenPrimaryStack()Z
-PLcom/android/server/wm/DisplayContent;->initializeDisplayBaseInfo()V
+HSPLcom/android/server/wm/DisplayContent;->hasAccess(I)Z
+HSPLcom/android/server/wm/DisplayContent;->hasPinnedStack()Z
+HSPLcom/android/server/wm/DisplayContent;->hasSplitScreenPrimaryStack()Z
+PLcom/android/server/wm/DisplayContent;->hideTransientBars()V
+HSPLcom/android/server/wm/DisplayContent;->initializeDisplayBaseInfo()V
+PLcom/android/server/wm/DisplayContent;->isHomeActivityForUser(Lcom/android/server/wm/ActivityRecord;I)Z
PLcom/android/server/wm/DisplayContent;->isInputMethodClientFocus(II)Z
-PLcom/android/server/wm/DisplayContent;->isLayoutNeeded()Z
+HSPLcom/android/server/wm/DisplayContent;->isLayoutNeeded()Z
PLcom/android/server/wm/DisplayContent;->isNextTransitionForward()Z
-PLcom/android/server/wm/DisplayContent;->isNonDecorDisplayCloseToSquare(III)Z
-PLcom/android/server/wm/DisplayContent;->isReady()Z
-PLcom/android/server/wm/DisplayContent;->isStackVisible(I)Z
-PLcom/android/server/wm/DisplayContent;->isUntrustedVirtualDisplay()Z
-PLcom/android/server/wm/DisplayContent;->lambda$calculateSystemGestureExclusion$24$DisplayContent(Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region;[ILandroid/graphics/Region;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;Lcom/android/server/wm/WindowState;)V
+HSPLcom/android/server/wm/DisplayContent;->isNonDecorDisplayCloseToSquare(III)Z
+HSPLcom/android/server/wm/DisplayContent;->isPrivate()Z
+HSPLcom/android/server/wm/DisplayContent;->isReady()Z
+HSPLcom/android/server/wm/DisplayContent;->isRemoved()Z
+PLcom/android/server/wm/DisplayContent;->isRemoving()Z
+PLcom/android/server/wm/DisplayContent;->isSingleTaskInstance()Z
+HSPLcom/android/server/wm/DisplayContent;->isSleeping()Z
+HPLcom/android/server/wm/DisplayContent;->isStackVisible(I)Z
+HPLcom/android/server/wm/DisplayContent;->isTopNotPinnedStack(Lcom/android/server/wm/ActivityStack;)Z
+PLcom/android/server/wm/DisplayContent;->isTopStack(Lcom/android/server/wm/ActivityStack;)Z
+HSPLcom/android/server/wm/DisplayContent;->isUntrustedVirtualDisplay()Z
+PLcom/android/server/wm/DisplayContent;->isVisible()Z
+HSPLcom/android/server/wm/DisplayContent;->isWindowingModeSupported(IZZZZI)Z
+PLcom/android/server/wm/DisplayContent;->lambda$JKV50ExZuoi3fuNRue0nZXh8ijA(Lcom/android/server/wm/ActivityRecord;I)Z
+HPLcom/android/server/wm/DisplayContent;->lambda$addToGlobalAndConsumeLimit$24([I[ILandroid/graphics/Region;Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/DisplayContent;->lambda$applyRotationLocked$8(Landroid/view/SurfaceControl$Transaction;IIZLcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/DisplayContent;->lambda$applyRotationLocked$9$DisplayContent(ZLcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/DisplayContent;->lambda$cDcvMzGxc6XW13Q8FrU5X4DagqE(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;I)V
+HPLcom/android/server/wm/DisplayContent;->lambda$calculateSystemGestureExclusion$23$DisplayContent(Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region;[ILandroid/graphics/Region;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Region;Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/DisplayContent;->lambda$canAddToastWindowForUid$13(ILcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayContent;->lambda$fiC19lMy-d_-rvza7hhOSw6bOM8(Lcom/android/server/wm/DisplayContent;Landroid/view/DisplayCutout;I)Lcom/android/server/wm/utils/WmDisplayCutout;
+PLcom/android/server/wm/DisplayContent;->lambda$canAddToastWindowForUid$14(ILcom/android/server/wm/WindowState;)Z
+PLcom/android/server/wm/DisplayContent;->lambda$dumpWindowAnimators$16(Ljava/io/PrintWriter;Ljava/lang/String;[ILcom/android/server/wm/WindowState;)V
+HSPLcom/android/server/wm/DisplayContent;->lambda$fiC19lMy-d_-rvza7hhOSw6bOM8(Lcom/android/server/wm/DisplayContent;Landroid/view/DisplayCutout;I)Lcom/android/server/wm/utils/WmDisplayCutout;
+HPLcom/android/server/wm/DisplayContent;->lambda$hasSecureWindowOnScreen$19(Lcom/android/server/wm/WindowState;)Z
PLcom/android/server/wm/DisplayContent;->lambda$new$0$DisplayContent(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->lambda$new$1$DisplayContent(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->lambda$new$2$DisplayContent(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/DisplayContent;->lambda$new$1$DisplayContent(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/DisplayContent;->lambda$new$2$DisplayContent(Lcom/android/server/wm/WindowState;)Z
HPLcom/android/server/wm/DisplayContent;->lambda$new$3$DisplayContent(Lcom/android/server/wm/WindowState;)V
HPLcom/android/server/wm/DisplayContent;->lambda$new$4$DisplayContent(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->lambda$new$6$DisplayContent(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/DisplayContent;->lambda$new$5$DisplayContent(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/DisplayContent;->lambda$new$6$DisplayContent(Lcom/android/server/wm/WindowState;)V
HPLcom/android/server/wm/DisplayContent;->lambda$new$7$DisplayContent(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->lambda$shouldWaitForSystemDecorWindowsOnBoot$19$DisplayContent(Landroid/util/SparseBooleanArray;Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayContent;->lambda$startKeyguardExitOnNonAppWindows$18(Lcom/android/server/policy/WindowManagerPolicy;ZZZLcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->lambda$updateSystemUiVisibility$21(IILcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->layoutAndAssignWindowLayersIfNeeded()V
+PLcom/android/server/wm/DisplayContent;->lambda$onWindowFreezeTimeout$21$DisplayContent(Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/DisplayContent;->lambda$pointWithinAppWindow$10([IIILcom/android/server/wm/WindowState;Landroid/graphics/Rect;)V
+PLcom/android/server/wm/DisplayContent;->lambda$shouldWaitForSystemDecorWindowsOnBoot$18$DisplayContent(Landroid/util/SparseBooleanArray;Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/DisplayContent;->lambda$startKeyguardExitOnNonAppWindows$17(Lcom/android/server/policy/WindowManagerPolicy;ZZZLcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/DisplayContent;->lambda$updateSystemUiVisibility$20(IILcom/android/server/wm/WindowState;)V
+HSPLcom/android/server/wm/DisplayContent;->layoutAndAssignWindowLayersIfNeeded()V
PLcom/android/server/wm/DisplayContent;->logsGestureExclusionRestrictions(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayContent;->makeChildSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl$Builder;
-PLcom/android/server/wm/DisplayContent;->needsGestureExclusionRestrictions(Lcom/android/server/wm/WindowState;I)Z
+HSPLcom/android/server/wm/DisplayContent;->makeChildSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl$Builder;
+PLcom/android/server/wm/DisplayContent;->makeOverlay()Landroid/view/SurfaceControl$Builder;
+PLcom/android/server/wm/DisplayContent;->moveHomeStackToFront(Ljava/lang/String;)V
+HPLcom/android/server/wm/DisplayContent;->moveStackBehindBottomMostVisibleStack(Lcom/android/server/wm/ActivityStack;)V
+PLcom/android/server/wm/DisplayContent;->moveStackBehindStack(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/ActivityStack;)V
+HPLcom/android/server/wm/DisplayContent;->needsGestureExclusionRestrictions(Lcom/android/server/wm/WindowState;I)Z
PLcom/android/server/wm/DisplayContent;->okToAnimate()Z
-PLcom/android/server/wm/DisplayContent;->okToDisplay()Z
+HPLcom/android/server/wm/DisplayContent;->okToDisplay()Z
PLcom/android/server/wm/DisplayContent;->onAppTransitionDone()V
-PLcom/android/server/wm/DisplayContent;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/DisplayContent;->onConfigurationChanged(Landroid/content/res/Configuration;)V
PLcom/android/server/wm/DisplayContent;->onDescendantOrientationChanged(Landroid/os/IBinder;Lcom/android/server/wm/ConfigurationContainer;)Z
PLcom/android/server/wm/DisplayContent;->onDescendantOverrideConfigurationChanged()V
-PLcom/android/server/wm/DisplayContent;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayContent;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
-PLcom/android/server/wm/DisplayContent;->performLayout(ZZ)V
-PLcom/android/server/wm/DisplayContent;->performLayoutNoTrace(ZZ)V
+HSPLcom/android/server/wm/DisplayContent;->onDisplayChanged()V
+HSPLcom/android/server/wm/DisplayContent;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/DisplayContent;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
+HSPLcom/android/server/wm/DisplayContent;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/DisplayContent;->onStackOrderChanged(Lcom/android/server/wm/ActivityStack;)V
+PLcom/android/server/wm/DisplayContent;->onWindowFreezeTimeout()V
+HPLcom/android/server/wm/DisplayContent;->pauseBackStacks(ZLcom/android/server/wm/ActivityRecord;)Z
+HSPLcom/android/server/wm/DisplayContent;->performDisplayOverrideConfigUpdate(Landroid/content/res/Configuration;Z)I
+HSPLcom/android/server/wm/DisplayContent;->performLayout(ZZ)V
+HSPLcom/android/server/wm/DisplayContent;->performLayoutNoTrace(ZZ)V
+PLcom/android/server/wm/DisplayContent;->pointWithinAppWindow(II)Z
PLcom/android/server/wm/DisplayContent;->positionChildAt(ILcom/android/server/wm/DisplayContent$DisplayChildWindowContainer;Z)V
PLcom/android/server/wm/DisplayContent;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
-PLcom/android/server/wm/DisplayContent;->positionStackAt(ILcom/android/server/wm/ActivityStack;Z)V
-PLcom/android/server/wm/DisplayContent;->preOnConfigurationChanged()V
+HSPLcom/android/server/wm/DisplayContent;->positionStackAt(ILcom/android/server/wm/ActivityStack;Z)V
+HSPLcom/android/server/wm/DisplayContent;->positionStackAt(Lcom/android/server/wm/ActivityStack;I)V
+HSPLcom/android/server/wm/DisplayContent;->positionStackAt(Lcom/android/server/wm/ActivityStack;IZLjava/lang/String;)V
+PLcom/android/server/wm/DisplayContent;->positionStackAtBottom(Lcom/android/server/wm/ActivityStack;)V
+PLcom/android/server/wm/DisplayContent;->positionStackAtBottom(Lcom/android/server/wm/ActivityStack;Ljava/lang/String;)V
+PLcom/android/server/wm/DisplayContent;->positionStackAtTop(Lcom/android/server/wm/ActivityStack;ZLjava/lang/String;)V
+HSPLcom/android/server/wm/DisplayContent;->preOnConfigurationChanged()V
PLcom/android/server/wm/DisplayContent;->prepareAppTransition(IZ)V
PLcom/android/server/wm/DisplayContent;->prepareAppTransition(IZIZ)V
-HPLcom/android/server/wm/DisplayContent;->prepareSurfaces()V
-PLcom/android/server/wm/DisplayContent;->reParentWindowToken(Lcom/android/server/wm/WindowToken;)V
+HSPLcom/android/server/wm/DisplayContent;->prepareSurfaces()V
+HPLcom/android/server/wm/DisplayContent;->processTaskForTouchExcludeRegion(Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;I)V
+HPLcom/android/server/wm/DisplayContent;->reParentWindowToken(Lcom/android/server/wm/WindowToken;)V
PLcom/android/server/wm/DisplayContent;->reapplyMagnificationSpec()V
-PLcom/android/server/wm/DisplayContent;->reconfigureDisplayLocked()V
-PLcom/android/server/wm/DisplayContent;->reduceCompatConfigWidthSize(IIILandroid/util/DisplayMetrics;IILandroid/view/DisplayCutout;)I
-PLcom/android/server/wm/DisplayContent;->reduceConfigLayout(IIFIIILandroid/view/DisplayCutout;)I
-PLcom/android/server/wm/DisplayContent;->registerPointerEventListener(Landroid/view/WindowManagerPolicyConstants$PointerEventListener;)V
+HSPLcom/android/server/wm/DisplayContent;->reconfigureDisplayLocked()V
+HSPLcom/android/server/wm/DisplayContent;->reduceCompatConfigWidthSize(IIILandroid/util/DisplayMetrics;IILandroid/view/DisplayCutout;)I
+HSPLcom/android/server/wm/DisplayContent;->reduceConfigLayout(IIFIIILandroid/view/DisplayCutout;)I
+PLcom/android/server/wm/DisplayContent;->reevaluateStatusBarVisibility()V
+HSPLcom/android/server/wm/DisplayContent;->registerPointerEventListener(Landroid/view/WindowManagerPolicyConstants$PointerEventListener;)V
+PLcom/android/server/wm/DisplayContent;->registerStackOrderChangedListener(Lcom/android/server/wm/DisplayContent$OnStackOrderChangedListener;)V
+PLcom/android/server/wm/DisplayContent;->registerSystemGestureExclusionListener(Landroid/view/ISystemGestureExclusionListener;)V
+PLcom/android/server/wm/DisplayContent;->releaseSelfIfNeeded()V
PLcom/android/server/wm/DisplayContent;->removeAppToken(Landroid/os/IBinder;)V
-PLcom/android/server/wm/DisplayContent;->removeExistingTokensIfPossible()V
+HSPLcom/android/server/wm/DisplayContent;->removeExistingTokensIfPossible()V
+PLcom/android/server/wm/DisplayContent;->removeStacksInWindowingModes([I)V
PLcom/android/server/wm/DisplayContent;->removeWindowToken(Landroid/os/IBinder;)Lcom/android/server/wm/WindowToken;
+PLcom/android/server/wm/DisplayContent;->resolveWindowingMode(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;I)I
PLcom/android/server/wm/DisplayContent;->scheduleToastWindowsTimeoutIfNeededLocked(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/DisplayContent;->sendNewConfiguration()V
-PLcom/android/server/wm/DisplayContent;->setExitingTokensHasVisible(Z)V
+PLcom/android/server/wm/DisplayContent;->screenshotDisplayLocked(Landroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
+HSPLcom/android/server/wm/DisplayContent;->sendNewConfiguration()V
+HSPLcom/android/server/wm/DisplayContent;->setExitingTokensHasVisible(Z)V
PLcom/android/server/wm/DisplayContent;->setFocusedApp(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/DisplayContent;->setFocusedApp(Lcom/android/server/wm/ActivityRecord;Z)V
PLcom/android/server/wm/DisplayContent;->setInputMethodTarget(Lcom/android/server/wm/WindowState;Z)V
+PLcom/android/server/wm/DisplayContent;->setInputMethodWindowLocked(Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/DisplayContent;->setInsetProvider(ILcom/android/server/wm/WindowState;Lcom/android/internal/util/function/TriConsumer;)V
-PLcom/android/server/wm/DisplayContent;->setLayoutNeeded()V
-PLcom/android/server/wm/DisplayContent;->setStackOnDisplay(Lcom/android/server/wm/ActivityStack;I)V
-PLcom/android/server/wm/DisplayContent;->setWindowingMode(I)V
+PLcom/android/server/wm/DisplayContent;->setIsSleeping(Z)V
+HSPLcom/android/server/wm/DisplayContent;->setLayoutNeeded()V
+HSPLcom/android/server/wm/DisplayContent;->setStackOnDisplay(Lcom/android/server/wm/ActivityStack;I)V
+HSPLcom/android/server/wm/DisplayContent;->setWindowingMode(I)V
+HSPLcom/android/server/wm/DisplayContent;->shouldSleep()Z
PLcom/android/server/wm/DisplayContent;->shouldWaitForSystemDecorWindowsOnBoot()Z
-PLcom/android/server/wm/DisplayContent;->skipTraverseChild(Lcom/android/server/wm/WindowContainer;)Z
+PLcom/android/server/wm/DisplayContent;->startKeyguardExitOnNonAppWindows(ZZZ)V
PLcom/android/server/wm/DisplayContent;->statusBarVisibilityChanged(I)V
PLcom/android/server/wm/DisplayContent;->supportsSystemDecorations()Z
-PLcom/android/server/wm/DisplayContent;->updateBaseDisplayMetrics(III)V
-PLcom/android/server/wm/DisplayContent;->updateBaseDisplayMetricsIfNeeded()V
-PLcom/android/server/wm/DisplayContent;->updateBounds()V
-PLcom/android/server/wm/DisplayContent;->updateDisplayAndOrientation(ILandroid/content/res/Configuration;)Landroid/view/DisplayInfo;
-PLcom/android/server/wm/DisplayContent;->updateDisplayInfo()V
-PLcom/android/server/wm/DisplayContent;->updateFocusedWindowLocked(IZI)Z
-PLcom/android/server/wm/DisplayContent;->updateOrientation()Z
+HSPLcom/android/server/wm/DisplayContent;->topRunningActivity()Lcom/android/server/wm/ActivityRecord;
+HSPLcom/android/server/wm/DisplayContent;->topRunningActivity(Z)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/DisplayContent;->unregisterStackOrderChangedListener(Lcom/android/server/wm/DisplayContent$OnStackOrderChangedListener;)V
+HSPLcom/android/server/wm/DisplayContent;->updateBaseDisplayMetrics(III)V
+HSPLcom/android/server/wm/DisplayContent;->updateBaseDisplayMetricsIfNeeded()V
+HSPLcom/android/server/wm/DisplayContent;->updateBounds()V
+HSPLcom/android/server/wm/DisplayContent;->updateDisplayAndOrientation(ILandroid/content/res/Configuration;)Landroid/view/DisplayInfo;
+HSPLcom/android/server/wm/DisplayContent;->updateDisplayInfo()V
+HSPLcom/android/server/wm/DisplayContent;->updateDisplayOverrideConfigurationLocked()Z
+HSPLcom/android/server/wm/DisplayContent;->updateDisplayOverrideConfigurationLocked(Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord;ZLcom/android/server/wm/ActivityTaskManagerService$UpdateConfigurationResult;)Z
+HSPLcom/android/server/wm/DisplayContent;->updateFocusedWindowLocked(IZI)Z
+HPLcom/android/server/wm/DisplayContent;->updateImeParent()V
+HSPLcom/android/server/wm/DisplayContent;->updateOrientation()Z
PLcom/android/server/wm/DisplayContent;->updateOrientation(Landroid/content/res/Configuration;Landroid/os/IBinder;Z)Landroid/content/res/Configuration;
-PLcom/android/server/wm/DisplayContent;->updateRotationUnchecked()Z
+HSPLcom/android/server/wm/DisplayContent;->updateRotationUnchecked()Z
PLcom/android/server/wm/DisplayContent;->updateStatusBarVisibilityLocked(I)Z
-PLcom/android/server/wm/DisplayContent;->updateSystemGestureExclusion()Z
-PLcom/android/server/wm/DisplayContent;->updateSystemGestureExclusionLimit()V
+HSPLcom/android/server/wm/DisplayContent;->updateSystemGestureExclusion()Z
+HSPLcom/android/server/wm/DisplayContent;->updateSystemGestureExclusionLimit()V
PLcom/android/server/wm/DisplayContent;->updateSystemUiVisibility(II)V
-PLcom/android/server/wm/DisplayContent;->updateTouchExcludeRegion()V
-PLcom/android/server/wm/DisplayContent;->updateWindowsForAnimator()V
-PLcom/android/server/wm/DisplayFrames;-><init>(ILandroid/view/DisplayInfo;Lcom/android/server/wm/utils/WmDisplayCutout;)V
-PLcom/android/server/wm/DisplayFrames;->getInputMethodWindowVisibleHeight()I
-PLcom/android/server/wm/DisplayFrames;->onBeginLayout()V
-PLcom/android/server/wm/DisplayFrames;->onDisplayInfoUpdated(Landroid/view/DisplayInfo;Lcom/android/server/wm/utils/WmDisplayCutout;)V
-PLcom/android/server/wm/DisplayPolicy$1;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
+HSPLcom/android/server/wm/DisplayContent;->updateTouchExcludeRegion()V
+HSPLcom/android/server/wm/DisplayContent;->updateWindowsForAnimator()V
+PLcom/android/server/wm/DisplayContent;->validateWindowingMode(ILcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;I)I
+HSPLcom/android/server/wm/DisplayFrames;-><init>(ILandroid/view/DisplayInfo;Lcom/android/server/wm/utils/WmDisplayCutout;)V
+HSPLcom/android/server/wm/DisplayFrames;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/DisplayFrames;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/wm/DisplayFrames;->dumpFrame(Landroid/graphics/Rect;Ljava/lang/String;Ljava/lang/String;Ljava/io/PrintWriter;)V
+HSPLcom/android/server/wm/DisplayFrames;->getInputMethodWindowVisibleHeight()I
+HSPLcom/android/server/wm/DisplayFrames;->onBeginLayout()V
+HSPLcom/android/server/wm/DisplayFrames;->onDisplayInfoUpdated(Landroid/view/DisplayInfo;Lcom/android/server/wm/utils/WmDisplayCutout;)V
+HSPLcom/android/server/wm/DisplayPolicy$1;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
PLcom/android/server/wm/DisplayPolicy$1;->onBarVisibilityChanged(Z)V
-PLcom/android/server/wm/DisplayPolicy$2;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
+HSPLcom/android/server/wm/DisplayPolicy$2;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
PLcom/android/server/wm/DisplayPolicy$2;->getOrientationListener()Lcom/android/server/policy/WindowOrientationListener;
PLcom/android/server/wm/DisplayPolicy$2;->onDown()V
PLcom/android/server/wm/DisplayPolicy$2;->onFling(I)V
PLcom/android/server/wm/DisplayPolicy$2;->onSwipeFromLeft()V
+PLcom/android/server/wm/DisplayPolicy$2;->onSwipeFromRight()V
+PLcom/android/server/wm/DisplayPolicy$2;->onSwipeFromTop()V
PLcom/android/server/wm/DisplayPolicy$2;->onUpOrCancel()V
-PLcom/android/server/wm/DisplayPolicy$3;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
-PLcom/android/server/wm/DisplayPolicy$4;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
-PLcom/android/server/wm/DisplayPolicy$PolicyHandler;-><init>(Lcom/android/server/wm/DisplayPolicy;Landroid/os/Looper;)V
-PLcom/android/server/wm/DisplayPolicy;-><clinit>()V
-PLcom/android/server/wm/DisplayPolicy;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/DisplayPolicy$3;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
+PLcom/android/server/wm/DisplayPolicy$3;->run()V
+HSPLcom/android/server/wm/DisplayPolicy$4;-><init>(Lcom/android/server/wm/DisplayPolicy;)V
+PLcom/android/server/wm/DisplayPolicy$4;->run()V
+PLcom/android/server/wm/DisplayPolicy$HideNavInputEventReceiver;-><init>(Lcom/android/server/wm/DisplayPolicy;Landroid/view/InputChannel;Landroid/os/Looper;)V
+PLcom/android/server/wm/DisplayPolicy$HideNavInputEventReceiver;->onInputEvent(Landroid/view/InputEvent;)V
+HSPLcom/android/server/wm/DisplayPolicy$PolicyHandler;-><init>(Lcom/android/server/wm/DisplayPolicy;Landroid/os/Looper;)V
+PLcom/android/server/wm/DisplayPolicy$PolicyHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/wm/DisplayPolicy;-><clinit>()V
+HSPLcom/android/server/wm/DisplayPolicy;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
PLcom/android/server/wm/DisplayPolicy;->access$000(Lcom/android/server/wm/DisplayPolicy;)Landroid/view/accessibility/AccessibilityManager;
PLcom/android/server/wm/DisplayPolicy;->access$1000(Lcom/android/server/wm/DisplayPolicy;)Lcom/android/server/wm/DisplayContent;
+PLcom/android/server/wm/DisplayPolicy;->access$1100(Lcom/android/server/wm/DisplayPolicy;)Z
+PLcom/android/server/wm/DisplayPolicy;->access$1200(Lcom/android/server/wm/DisplayPolicy;)Lcom/android/server/wm/SystemGesturesPointerEventListener;
PLcom/android/server/wm/DisplayPolicy;->access$1300(Lcom/android/server/wm/DisplayPolicy;)Lcom/android/server/wm/WindowManagerService;
+PLcom/android/server/wm/DisplayPolicy;->access$1400(Lcom/android/server/wm/DisplayPolicy;)Landroid/os/Handler;
+PLcom/android/server/wm/DisplayPolicy;->access$1500(Lcom/android/server/wm/DisplayPolicy;)I
+PLcom/android/server/wm/DisplayPolicy;->access$1502(Lcom/android/server/wm/DisplayPolicy;I)I
+PLcom/android/server/wm/DisplayPolicy;->access$1572(Lcom/android/server/wm/DisplayPolicy;I)I
+PLcom/android/server/wm/DisplayPolicy;->access$1600(Lcom/android/server/wm/DisplayPolicy;)Lcom/android/server/policy/WindowManagerPolicy$InputConsumer;
+PLcom/android/server/wm/DisplayPolicy;->access$1700(Lcom/android/server/wm/DisplayPolicy;)I
+PLcom/android/server/wm/DisplayPolicy;->access$1702(Lcom/android/server/wm/DisplayPolicy;I)I
+PLcom/android/server/wm/DisplayPolicy;->access$1800(Lcom/android/server/wm/DisplayPolicy;)Ljava/lang/Runnable;
+PLcom/android/server/wm/DisplayPolicy;->access$1902(Lcom/android/server/wm/DisplayPolicy;J)J
+PLcom/android/server/wm/DisplayPolicy;->access$200(Lcom/android/server/wm/DisplayPolicy;)Lcom/android/server/wm/WindowState;
+PLcom/android/server/wm/DisplayPolicy;->access$2000(I)Z
+PLcom/android/server/wm/DisplayPolicy;->access$2100(Lcom/android/server/wm/DisplayPolicy;)Lcom/android/server/wm/BarController;
+PLcom/android/server/wm/DisplayPolicy;->access$300(Lcom/android/server/wm/DisplayPolicy;)Lcom/android/server/wm/WindowState;
+PLcom/android/server/wm/DisplayPolicy;->access$400(Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/DisplayPolicy;->access$900(Lcom/android/server/wm/DisplayPolicy;)Ljava/lang/Object;
PLcom/android/server/wm/DisplayPolicy;->addWindowLw(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;)V
PLcom/android/server/wm/DisplayPolicy;->adjustSystemUiVisibilityLw(I)I
-PLcom/android/server/wm/DisplayPolicy;->adjustWindowParamsLw(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;II)V
+HPLcom/android/server/wm/DisplayPolicy;->adjustWindowParamsLw(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;II)V
PLcom/android/server/wm/DisplayPolicy;->allowAppAnimationsLw()Z
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;->applyStableConstraints(IILandroid/graphics/Rect;Lcom/android/server/wm/DisplayFrames;)V
+HPLcom/android/server/wm/DisplayPolicy;->applyStableConstraints(IILandroid/graphics/Rect;Lcom/android/server/wm/DisplayFrames;)V
PLcom/android/server/wm/DisplayPolicy;->areSystemBarsForcedShownLw(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayPolicy;->beginLayoutLw(Lcom/android/server/wm/DisplayFrames;I)V
-PLcom/android/server/wm/DisplayPolicy;->beginPostLayoutPolicyLw()V
-PLcom/android/server/wm/DisplayPolicy;->canHideNavigationBar()Z
-PLcom/android/server/wm/DisplayPolicy;->canReceiveInput(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayPolicy;->chooseNavigationColorWindowLw(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;I)Lcom/android/server/wm/WindowState;
+HSPLcom/android/server/wm/DisplayPolicy;->beginLayoutLw(Lcom/android/server/wm/DisplayFrames;I)V
+HSPLcom/android/server/wm/DisplayPolicy;->beginPostLayoutPolicyLw()V
+HSPLcom/android/server/wm/DisplayPolicy;->canHideNavigationBar()Z
+HPLcom/android/server/wm/DisplayPolicy;->canReceiveInput(Lcom/android/server/wm/WindowState;)Z
+PLcom/android/server/wm/DisplayPolicy;->canToastShowWhenLocked(I)Z
+HPLcom/android/server/wm/DisplayPolicy;->chooseNavigationColorWindowLw(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;I)Lcom/android/server/wm/WindowState;
PLcom/android/server/wm/DisplayPolicy;->clearClearableFlagsLw()V
-PLcom/android/server/wm/DisplayPolicy;->configureNavBarOpacity(IZZZZZ)I
-PLcom/android/server/wm/DisplayPolicy;->convertNonDecorInsetsToStableInsets(Landroid/graphics/Rect;I)V
-PLcom/android/server/wm/DisplayPolicy;->drawsBarBackground(ILcom/android/server/wm/WindowState;Lcom/android/server/wm/BarController;I)Z
-PLcom/android/server/wm/DisplayPolicy;->drawsNavigationBarBackground(ILcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayPolicy;->drawsStatusBarBackground(ILcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/DisplayPolicy;->configureNavBarOpacity(IZZZZZ)I
+HSPLcom/android/server/wm/DisplayPolicy;->convertNonDecorInsetsToStableInsets(Landroid/graphics/Rect;I)V
+HPLcom/android/server/wm/DisplayPolicy;->drawsBarBackground(ILcom/android/server/wm/WindowState;Lcom/android/server/wm/BarController;I)Z
+HPLcom/android/server/wm/DisplayPolicy;->drawsNavigationBarBackground(ILcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/DisplayPolicy;->drawsStatusBarBackground(ILcom/android/server/wm/WindowState;)Z
+HSPLcom/android/server/wm/DisplayPolicy;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
PLcom/android/server/wm/DisplayPolicy;->finishKeyguardDrawn()Z
-PLcom/android/server/wm/DisplayPolicy;->finishPostLayoutPolicyLw()I
+HSPLcom/android/server/wm/DisplayPolicy;->finishPostLayoutPolicyLw()I
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;)I
-PLcom/android/server/wm/DisplayPolicy;->getConfigDisplayHeight(IIIILandroid/view/DisplayCutout;)I
-PLcom/android/server/wm/DisplayPolicy;->getConfigDisplayWidth(IIIILandroid/view/DisplayCutout;)I
-PLcom/android/server/wm/DisplayPolicy;->getCurrentUserResources()Landroid/content/res/Resources;
-PLcom/android/server/wm/DisplayPolicy;->getDisplayId()I
+HSPLcom/android/server/wm/DisplayPolicy;->getConfigDisplayHeight(IIIILandroid/view/DisplayCutout;)I
+HSPLcom/android/server/wm/DisplayPolicy;->getConfigDisplayWidth(IIIILandroid/view/DisplayCutout;)I
+HSPLcom/android/server/wm/DisplayPolicy;->getCurrentUserResources()Landroid/content/res/Resources;
+HSPLcom/android/server/wm/DisplayPolicy;->getDisplayId()I
PLcom/android/server/wm/DisplayPolicy;->getDockMode()I
-PLcom/android/server/wm/DisplayPolicy;->getImpliedSysUiFlagsForLayout(Landroid/view/WindowManager$LayoutParams;)I
-PLcom/android/server/wm/DisplayPolicy;->getInsetsPolicy()Lcom/android/server/wm/InsetsPolicy;
-PLcom/android/server/wm/DisplayPolicy;->getLayoutHintLw(Landroid/view/WindowManager$LayoutParams;Landroid/graphics/Rect;Lcom/android/server/wm/DisplayFrames;ZLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;)Z
-PLcom/android/server/wm/DisplayPolicy;->getLidState()I
-PLcom/android/server/wm/DisplayPolicy;->getNavigationBarFrameHeight(II)I
-PLcom/android/server/wm/DisplayPolicy;->getNavigationBarHeight(II)I
-PLcom/android/server/wm/DisplayPolicy;->getNavigationBarWidth(II)I
-PLcom/android/server/wm/DisplayPolicy;->getNonDecorDisplayHeight(IIIILandroid/view/DisplayCutout;)I
-PLcom/android/server/wm/DisplayPolicy;->getNonDecorDisplayWidth(IIIILandroid/view/DisplayCutout;)I
-PLcom/android/server/wm/DisplayPolicy;->getNonDecorInsetsLw(IIILandroid/view/DisplayCutout;Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/DisplayPolicy;->getImpliedSysUiFlagsForLayout(Landroid/view/WindowManager$LayoutParams;)I
+HPLcom/android/server/wm/DisplayPolicy;->getInsetsPolicy()Lcom/android/server/wm/InsetsPolicy;
+HPLcom/android/server/wm/DisplayPolicy;->getLayoutHintLw(Landroid/view/WindowManager$LayoutParams;Landroid/graphics/Rect;Lcom/android/server/wm/DisplayFrames;ZLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;)Z
+HSPLcom/android/server/wm/DisplayPolicy;->getLidState()I
+HSPLcom/android/server/wm/DisplayPolicy;->getNavigationBarFrameHeight(II)I
+HSPLcom/android/server/wm/DisplayPolicy;->getNavigationBarHeight(II)I
+HSPLcom/android/server/wm/DisplayPolicy;->getNavigationBarWidth(II)I
+HSPLcom/android/server/wm/DisplayPolicy;->getNonDecorDisplayHeight(IIIILandroid/view/DisplayCutout;)I
+HSPLcom/android/server/wm/DisplayPolicy;->getNonDecorDisplayWidth(IIIILandroid/view/DisplayCutout;)I
+HSPLcom/android/server/wm/DisplayPolicy;->getNonDecorInsetsLw(IIILandroid/view/DisplayCutout;Landroid/graphics/Rect;)V
PLcom/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;->getStableInsetsLw(IIILandroid/view/DisplayCutout;Landroid/graphics/Rect;)V
+HSPLcom/android/server/wm/DisplayPolicy;->getStableInsetsLw(IIILandroid/view/DisplayCutout;Landroid/graphics/Rect;)V
PLcom/android/server/wm/DisplayPolicy;->getStatusBar()Lcom/android/server/wm/WindowState;
PLcom/android/server/wm/DisplayPolicy;->getStatusBarHeight(Lcom/android/server/wm/DisplayFrames;)I
PLcom/android/server/wm/DisplayPolicy;->getStatusBarManagerInternal()Lcom/android/server/statusbar/StatusBarManagerInternal;
-PLcom/android/server/wm/DisplayPolicy;->getSystemUiContext()Landroid/content/Context;
+HSPLcom/android/server/wm/DisplayPolicy;->getSystemUiContext()Landroid/content/Context;
PLcom/android/server/wm/DisplayPolicy;->getTopFullscreenOpaqueWindow()Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/DisplayPolicy;->getTransientState(II)Landroid/util/Pair;
-PLcom/android/server/wm/DisplayPolicy;->getWindowCornerRadius()F
-PLcom/android/server/wm/DisplayPolicy;->hasNavigationBar()Z
-PLcom/android/server/wm/DisplayPolicy;->hasStatusBar()Z
-PLcom/android/server/wm/DisplayPolicy;->isAwake()Z
+HPLcom/android/server/wm/DisplayPolicy;->getTransientState(II)Landroid/util/Pair;
+HSPLcom/android/server/wm/DisplayPolicy;->getWindowCornerRadius()F
+HSPLcom/android/server/wm/DisplayPolicy;->hasNavigationBar()Z
+HSPLcom/android/server/wm/DisplayPolicy;->hasStatusBar()Z
+HSPLcom/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;->isHdmiPlugged()Z
-PLcom/android/server/wm/DisplayPolicy;->isImmersiveMode(I)Z
-PLcom/android/server/wm/DisplayPolicy;->isKeyguardDrawComplete()Z
-PLcom/android/server/wm/DisplayPolicy;->isKeyguardOccluded()Z
+HPLcom/android/server/wm/DisplayPolicy;->isImmersiveMode(I)Z
+HSPLcom/android/server/wm/DisplayPolicy;->isKeyguardDrawComplete()Z
+HPLcom/android/server/wm/DisplayPolicy;->isKeyguardOccluded()Z
PLcom/android/server/wm/DisplayPolicy;->isNavBarEmpty(I)Z
PLcom/android/server/wm/DisplayPolicy;->isPersistentVrModeEnabled()Z
-PLcom/android/server/wm/DisplayPolicy;->isScreenOnEarly()Z
+HSPLcom/android/server/wm/DisplayPolicy;->isScreenOnEarly()Z
PLcom/android/server/wm/DisplayPolicy;->isScreenOnFully()Z
-PLcom/android/server/wm/DisplayPolicy;->isShowingDreamLw()Z
-PLcom/android/server/wm/DisplayPolicy;->isStatusBarKeyguard()Z
+HSPLcom/android/server/wm/DisplayPolicy;->isShowingDreamLw()Z
+HSPLcom/android/server/wm/DisplayPolicy;->isStatusBarKeyguard()Z
+PLcom/android/server/wm/DisplayPolicy;->isTopLayoutFullscreen()Z
PLcom/android/server/wm/DisplayPolicy;->isWindowExcludedFromContent(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayPolicy;->isWindowManagerDrawComplete()Z
+HSPLcom/android/server/wm/DisplayPolicy;->isWindowManagerDrawComplete()Z
PLcom/android/server/wm/DisplayPolicy;->lambda$addWindowLw$3$DisplayPolicy(Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowState;Landroid/graphics/Rect;)V
PLcom/android/server/wm/DisplayPolicy;->lambda$addWindowLw$4$DisplayPolicy(Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowState;Landroid/graphics/Rect;)V
PLcom/android/server/wm/DisplayPolicy;->lambda$addWindowLw$5$DisplayPolicy(Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowState;Landroid/graphics/Rect;)V
PLcom/android/server/wm/DisplayPolicy;->lambda$addWindowLw$6$DisplayPolicy(Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowState;Landroid/graphics/Rect;)V
PLcom/android/server/wm/DisplayPolicy;->lambda$addWindowLw$7$DisplayPolicy(Lcom/android/server/wm/DisplayFrames;Lcom/android/server/wm/WindowState;Landroid/graphics/Rect;)V
+PLcom/android/server/wm/DisplayPolicy;->lambda$beginLayoutLw$8$DisplayPolicy(Landroid/view/InputChannel;Landroid/os/Looper;)Landroid/view/InputEventReceiver;
PLcom/android/server/wm/DisplayPolicy;->lambda$canToastShowWhenLocked$2(ILcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/DisplayPolicy;->lambda$updateSystemUiVisibilityLw$10$DisplayPolicy(ILjava/lang/String;Landroid/util/Pair;I[Lcom/android/internal/view/AppearanceRegion;ZZZ)V
-PLcom/android/server/wm/DisplayPolicy;->layoutNavigationBar(Lcom/android/server/wm/DisplayFrames;IZZZZ)Z
-PLcom/android/server/wm/DisplayPolicy;->layoutScreenDecorWindows(Lcom/android/server/wm/DisplayFrames;)V
-PLcom/android/server/wm/DisplayPolicy;->layoutStatusBar(Lcom/android/server/wm/DisplayFrames;IZ)Z
+HPLcom/android/server/wm/DisplayPolicy;->lambda$updateSystemUiVisibilityLw$10$DisplayPolicy(ILjava/lang/String;Landroid/util/Pair;I[Lcom/android/internal/view/AppearanceRegion;ZZZ)V
+HSPLcom/android/server/wm/DisplayPolicy;->layoutNavigationBar(Lcom/android/server/wm/DisplayFrames;IZZZZ)Z
+HSPLcom/android/server/wm/DisplayPolicy;->layoutScreenDecorWindows(Lcom/android/server/wm/DisplayFrames;)V
+HSPLcom/android/server/wm/DisplayPolicy;->layoutStatusBar(Lcom/android/server/wm/DisplayFrames;IZ)Z
HPLcom/android/server/wm/DisplayPolicy;->layoutWallpaper(Lcom/android/server/wm/DisplayFrames;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
-PLcom/android/server/wm/DisplayPolicy;->layoutWindowLw(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/DisplayFrames;)V
-PLcom/android/server/wm/DisplayPolicy;->navigationBarCanMove()Z
-PLcom/android/server/wm/DisplayPolicy;->navigationBarPosition(III)I
-PLcom/android/server/wm/DisplayPolicy;->onConfigurationChanged()V
+HPLcom/android/server/wm/DisplayPolicy;->layoutWindowLw(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/DisplayFrames;)V
+HSPLcom/android/server/wm/DisplayPolicy;->navigationBarCanMove()Z
+HSPLcom/android/server/wm/DisplayPolicy;->navigationBarPosition(III)I
+PLcom/android/server/wm/DisplayPolicy;->offsetInputMethodWindowLw(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/DisplayFrames;)V
+HSPLcom/android/server/wm/DisplayPolicy;->onConfigurationChanged()V
PLcom/android/server/wm/DisplayPolicy;->onPowerKeyDown(Z)V
PLcom/android/server/wm/DisplayPolicy;->removeWindowLw(Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/DisplayPolicy;->requestTransientBars(Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/DisplayPolicy;->resetSystemUiVisibilityLw()V
PLcom/android/server/wm/DisplayPolicy;->screenTurnedOff()V
-PLcom/android/server/wm/DisplayPolicy;->screenTurnedOn(Lcom/android/server/policy/WindowManagerPolicy$ScreenOnListener;)V
+HSPLcom/android/server/wm/DisplayPolicy;->screenTurnedOn(Lcom/android/server/policy/WindowManagerPolicy$ScreenOnListener;)V
PLcom/android/server/wm/DisplayPolicy;->selectAnimation(Lcom/android/server/wm/WindowState;I)I
+HPLcom/android/server/wm/DisplayPolicy;->setAttachedWindowFrames(Lcom/android/server/wm/WindowState;IILcom/android/server/wm/WindowState;ZLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Lcom/android/server/wm/DisplayFrames;)V
PLcom/android/server/wm/DisplayPolicy;->setAwake(Z)V
-PLcom/android/server/wm/DisplayPolicy;->setHdmiPlugged(ZZ)V
-PLcom/android/server/wm/DisplayPolicy;->setLidState(I)V
+HSPLcom/android/server/wm/DisplayPolicy;->setHdmiPlugged(ZZ)V
+HSPLcom/android/server/wm/DisplayPolicy;->setLidState(I)V
PLcom/android/server/wm/DisplayPolicy;->setNavBarTransparentFlag(I)I
-PLcom/android/server/wm/DisplayPolicy;->systemReady()V
+HSPLcom/android/server/wm/DisplayPolicy;->systemReady()V
+PLcom/android/server/wm/DisplayPolicy;->takeScreenshot(I)V
PLcom/android/server/wm/DisplayPolicy;->topAppHidesStatusBar()Z
-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;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)I
-PLcom/android/server/wm/DisplayPolicy;->updateLightStatusBarAppearanceLw(ILcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)I
+HSPLcom/android/server/wm/DisplayPolicy;->updateConfigurationAndScreenSizeDependentBehaviors()V
+HSPLcom/android/server/wm/DisplayPolicy;->updateCurrentUserResources()V
+HPLcom/android/server/wm/DisplayPolicy;->updateLightNavigationBarLw(ILcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)I
+HPLcom/android/server/wm/DisplayPolicy;->updateLightStatusBarAppearanceLw(ILcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)I
HPLcom/android/server/wm/DisplayPolicy;->updateSystemBarsLw(Lcom/android/server/wm/WindowState;II)Landroid/util/Pair;
-PLcom/android/server/wm/DisplayPolicy;->updateSystemUiVisibilityLw()I
+HSPLcom/android/server/wm/DisplayPolicy;->updateSystemUiVisibilityLw()I
PLcom/android/server/wm/DisplayPolicy;->updateTransientState(IIIILandroid/util/IntArray;Landroid/util/IntArray;)V
-PLcom/android/server/wm/DisplayPolicy;->updateWindowSleepToken()V
+HSPLcom/android/server/wm/DisplayPolicy;->updateWindowSleepToken()V
PLcom/android/server/wm/DisplayPolicy;->validateAddingWindowLw(Landroid/view/WindowManager$LayoutParams;)I
-PLcom/android/server/wm/DisplayRotation$1;-><init>(Lcom/android/server/wm/DisplayRotation;)V
-PLcom/android/server/wm/DisplayRotation$2;-><init>(Lcom/android/server/wm/DisplayRotation;)V
+HSPLcom/android/server/wm/DisplayRotation$1;-><init>(Lcom/android/server/wm/DisplayRotation;)V
+HSPLcom/android/server/wm/DisplayRotation$2;-><init>(Lcom/android/server/wm/DisplayRotation;)V
PLcom/android/server/wm/DisplayRotation$OrientationListener$UpdateRunnable;-><init>(Lcom/android/server/wm/DisplayRotation$OrientationListener;I)V
PLcom/android/server/wm/DisplayRotation$OrientationListener$UpdateRunnable;->run()V
-PLcom/android/server/wm/DisplayRotation$OrientationListener;-><init>(Lcom/android/server/wm/DisplayRotation;Landroid/content/Context;Landroid/os/Handler;)V
+HSPLcom/android/server/wm/DisplayRotation$OrientationListener;-><init>(Lcom/android/server/wm/DisplayRotation;Landroid/content/Context;Landroid/os/Handler;)V
PLcom/android/server/wm/DisplayRotation$OrientationListener;->disable()V
PLcom/android/server/wm/DisplayRotation$OrientationListener;->enable(Z)V
PLcom/android/server/wm/DisplayRotation$OrientationListener;->onProposedRotationChanged(I)V
-PLcom/android/server/wm/DisplayRotation$RotationAnimationPair;-><init>()V
-PLcom/android/server/wm/DisplayRotation$RotationAnimationPair;-><init>(Lcom/android/server/wm/DisplayRotation$1;)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
+HSPLcom/android/server/wm/DisplayRotation$RotationAnimationPair;-><init>()V
+HSPLcom/android/server/wm/DisplayRotation$RotationAnimationPair;-><init>(Lcom/android/server/wm/DisplayRotation$1;)V
+HSPLcom/android/server/wm/DisplayRotation$SettingsObserver;-><init>(Lcom/android/server/wm/DisplayRotation;Landroid/os/Handler;)V
+HSPLcom/android/server/wm/DisplayRotation$SettingsObserver;->observe()V
PLcom/android/server/wm/DisplayRotation$SettingsObserver;->onChange(Z)V
-PLcom/android/server/wm/DisplayRotation;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayRotation;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayWindowSettings;Landroid/content/Context;Ljava/lang/Object;)V
+HSPLcom/android/server/wm/DisplayRotation;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/DisplayRotation;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/DisplayPolicy;Lcom/android/server/wm/DisplayWindowSettings;Landroid/content/Context;Ljava/lang/Object;)V
PLcom/android/server/wm/DisplayRotation;->access$300(Lcom/android/server/wm/DisplayRotation;)Lcom/android/server/wm/WindowManagerService;
PLcom/android/server/wm/DisplayRotation;->access$400(Lcom/android/server/wm/DisplayRotation;)I
PLcom/android/server/wm/DisplayRotation;->access$500(Lcom/android/server/wm/DisplayRotation;I)Z
-PLcom/android/server/wm/DisplayRotation;->access$800(Lcom/android/server/wm/DisplayRotation;)Landroid/content/Context;
-PLcom/android/server/wm/DisplayRotation;->access$900(Lcom/android/server/wm/DisplayRotation;)Z
-PLcom/android/server/wm/DisplayRotation;->configure(IIII)V
+HSPLcom/android/server/wm/DisplayRotation;->access$800(Lcom/android/server/wm/DisplayRotation;)Landroid/content/Context;
+HSPLcom/android/server/wm/DisplayRotation;->access$900(Lcom/android/server/wm/DisplayRotation;)Z
+HSPLcom/android/server/wm/DisplayRotation;->allowAllRotationsToString(I)Ljava/lang/String;
+HSPLcom/android/server/wm/DisplayRotation;->configure(IIII)V
+HSPLcom/android/server/wm/DisplayRotation;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
PLcom/android/server/wm/DisplayRotation;->freezeRotation(I)V
-PLcom/android/server/wm/DisplayRotation;->getDisplayPolicy()Lcom/android/server/wm/DisplayPolicy;
-PLcom/android/server/wm/DisplayRotation;->getLandscapeRotation()I
+PLcom/android/server/wm/DisplayRotation;->getCurrentAppOrientation()I
+HSPLcom/android/server/wm/DisplayRotation;->getDisplayPolicy()Lcom/android/server/wm/DisplayPolicy;
+HSPLcom/android/server/wm/DisplayRotation;->getLandscapeRotation()I
PLcom/android/server/wm/DisplayRotation;->getOrientationListener()Lcom/android/server/policy/WindowOrientationListener;
-PLcom/android/server/wm/DisplayRotation;->getPortraitRotation()I
-PLcom/android/server/wm/DisplayRotation;->getRotation()I
-PLcom/android/server/wm/DisplayRotation;->getSeascapeRotation()I
-PLcom/android/server/wm/DisplayRotation;->getUpsideDownRotation()I
-PLcom/android/server/wm/DisplayRotation;->isFixedToUserRotation()Z
-PLcom/android/server/wm/DisplayRotation;->isRotatingSeamlessly()Z
+HSPLcom/android/server/wm/DisplayRotation;->getPortraitRotation()I
+HSPLcom/android/server/wm/DisplayRotation;->getRotation()I
+HSPLcom/android/server/wm/DisplayRotation;->getSeascapeRotation()I
+HSPLcom/android/server/wm/DisplayRotation;->getUpsideDownRotation()I
+PLcom/android/server/wm/DisplayRotation;->getUserRotation()I
+PLcom/android/server/wm/DisplayRotation;->getUserRotationMode()I
+HSPLcom/android/server/wm/DisplayRotation;->isFixedToUserRotation()Z
+HSPLcom/android/server/wm/DisplayRotation;->isRotatingSeamlessly()Z
PLcom/android/server/wm/DisplayRotation;->isRotationChoicePossible(I)Z
-PLcom/android/server/wm/DisplayRotation;->isWaitingForRemoteRotation()Z
+PLcom/android/server/wm/DisplayRotation;->isValidRotationChoice(I)Z
+HSPLcom/android/server/wm/DisplayRotation;->isWaitingForRemoteRotation()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;->prepareNormalRotationAnimation()V
-PLcom/android/server/wm/DisplayRotation;->readRotation(I)I
+HSPLcom/android/server/wm/DisplayRotation;->readRotation(I)I
PLcom/android/server/wm/DisplayRotation;->respectAppRequestedOrientation()Z
-PLcom/android/server/wm/DisplayRotation;->restoreSettings(III)V
+HSPLcom/android/server/wm/DisplayRotation;->restoreSettings(III)V
PLcom/android/server/wm/DisplayRotation;->rotationForOrientation(II)I
PLcom/android/server/wm/DisplayRotation;->selectRotationAnimation()Lcom/android/server/wm/DisplayRotation$RotationAnimationPair;
PLcom/android/server/wm/DisplayRotation;->setUserRotation(II)V
-PLcom/android/server/wm/DisplayRotation;->updateOrientation(IZ)Z
-PLcom/android/server/wm/DisplayRotation;->updateOrientationListener()V
-PLcom/android/server/wm/DisplayRotation;->updateOrientationListenerLw()V
-PLcom/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/DisplayWindowListenerController;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/DisplayWindowListenerController;->dispatchDisplayAdded(Lcom/android/server/wm/ActivityDisplay;)V
-PLcom/android/server/wm/DisplayWindowListenerController;->dispatchDisplayChanged(Lcom/android/server/wm/DisplayContent;Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/DisplayWindowSettings$AtomicFileStorage;-><init>()V
-PLcom/android/server/wm/DisplayWindowSettings$AtomicFileStorage;->copyVendorSettings(Ljava/io/File;)V
-PLcom/android/server/wm/DisplayWindowSettings$AtomicFileStorage;->openRead()Ljava/io/InputStream;
-PLcom/android/server/wm/DisplayWindowSettings$Entry;-><init>(Ljava/lang/String;)V
-PLcom/android/server/wm/DisplayWindowSettings$Entry;-><init>(Ljava/lang/String;Lcom/android/server/wm/DisplayWindowSettings$1;)V
-PLcom/android/server/wm/DisplayWindowSettings$Entry;->access$1000(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
-PLcom/android/server/wm/DisplayWindowSettings$Entry;->access$300(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
-PLcom/android/server/wm/DisplayWindowSettings$Entry;->access$400(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
-PLcom/android/server/wm/DisplayWindowSettings$Entry;->access$500(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
-PLcom/android/server/wm/DisplayWindowSettings$Entry;->access$700(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
-PLcom/android/server/wm/DisplayWindowSettings$Entry;->access$800(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
-PLcom/android/server/wm/DisplayWindowSettings$Entry;->access$900(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
-PLcom/android/server/wm/DisplayWindowSettings;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/DisplayWindowSettings;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayWindowSettings$SettingPersister;)V
-PLcom/android/server/wm/DisplayWindowSettings;->applySettingsToDisplayLocked(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DisplayWindowSettings;->getEntry(Landroid/view/DisplayInfo;)Lcom/android/server/wm/DisplayWindowSettings$Entry;
-PLcom/android/server/wm/DisplayWindowSettings;->getIdentifier(Landroid/view/DisplayInfo;)Ljava/lang/String;
-PLcom/android/server/wm/DisplayWindowSettings;->getOrCreateEntry(Landroid/view/DisplayInfo;)Lcom/android/server/wm/DisplayWindowSettings$Entry;
-PLcom/android/server/wm/DisplayWindowSettings;->getWindowingModeLocked(Lcom/android/server/wm/DisplayContent;)I
-PLcom/android/server/wm/DisplayWindowSettings;->getWindowingModeLocked(Lcom/android/server/wm/DisplayWindowSettings$Entry;I)I
-PLcom/android/server/wm/DisplayWindowSettings;->readSettings()V
-PLcom/android/server/wm/DisplayWindowSettings;->updateSettingsForDisplay(Lcom/android/server/wm/DisplayContent;)Z
-PLcom/android/server/wm/DockedStackDividerController;-><clinit>()V
-PLcom/android/server/wm/DockedStackDividerController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/DockedStackDividerController;->animate(J)Z
+PLcom/android/server/wm/DisplayRotation;->shouldRotateSeamlessly(IIZ)Z
+PLcom/android/server/wm/DisplayRotation;->startRemoteRotation(II)V
+HSPLcom/android/server/wm/DisplayRotation;->updateOrientation(IZ)Z
+HSPLcom/android/server/wm/DisplayRotation;->updateOrientationListener()V
+HSPLcom/android/server/wm/DisplayRotation;->updateOrientationListenerLw()V
+HSPLcom/android/server/wm/DisplayRotation;->updateRotationUnchecked(Z)Z
+HSPLcom/android/server/wm/DisplayRotation;->updateSettings()Z
+HSPLcom/android/server/wm/DisplayRotation;->updateUserDependentConfiguration(Landroid/content/res/Resources;)V
+HSPLcom/android/server/wm/DisplayWindowListenerController;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/DisplayWindowListenerController;->dispatchDisplayAdded(Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/DisplayWindowListenerController;->dispatchDisplayChanged(Lcom/android/server/wm/DisplayContent;Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/DisplayWindowSettings$AtomicFileStorage;-><init>()V
+HSPLcom/android/server/wm/DisplayWindowSettings$AtomicFileStorage;->copyVendorSettings(Ljava/io/File;)V
+HSPLcom/android/server/wm/DisplayWindowSettings$AtomicFileStorage;->openRead()Ljava/io/InputStream;
+HSPLcom/android/server/wm/DisplayWindowSettings$Entry;-><init>(Ljava/lang/String;)V
+HSPLcom/android/server/wm/DisplayWindowSettings$Entry;-><init>(Ljava/lang/String;Lcom/android/server/wm/DisplayWindowSettings$1;)V
+HSPLcom/android/server/wm/DisplayWindowSettings$Entry;->access$1000(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
+HSPLcom/android/server/wm/DisplayWindowSettings$Entry;->access$300(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
+HSPLcom/android/server/wm/DisplayWindowSettings$Entry;->access$400(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
+HSPLcom/android/server/wm/DisplayWindowSettings$Entry;->access$500(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
+HSPLcom/android/server/wm/DisplayWindowSettings$Entry;->access$700(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
+HSPLcom/android/server/wm/DisplayWindowSettings$Entry;->access$800(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
+HSPLcom/android/server/wm/DisplayWindowSettings$Entry;->access$900(Lcom/android/server/wm/DisplayWindowSettings$Entry;)I
+HSPLcom/android/server/wm/DisplayWindowSettings;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/DisplayWindowSettings;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayWindowSettings$SettingPersister;)V
+HSPLcom/android/server/wm/DisplayWindowSettings;->applySettingsToDisplayLocked(Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/DisplayWindowSettings;->getEntry(Landroid/view/DisplayInfo;)Lcom/android/server/wm/DisplayWindowSettings$Entry;
+HSPLcom/android/server/wm/DisplayWindowSettings;->getIdentifier(Landroid/view/DisplayInfo;)Ljava/lang/String;
+HSPLcom/android/server/wm/DisplayWindowSettings;->getOrCreateEntry(Landroid/view/DisplayInfo;)Lcom/android/server/wm/DisplayWindowSettings$Entry;
+HSPLcom/android/server/wm/DisplayWindowSettings;->getWindowingModeLocked(Lcom/android/server/wm/DisplayContent;)I
+HSPLcom/android/server/wm/DisplayWindowSettings;->getWindowingModeLocked(Lcom/android/server/wm/DisplayWindowSettings$Entry;I)I
+HSPLcom/android/server/wm/DisplayWindowSettings;->readSettings()V
+PLcom/android/server/wm/DisplayWindowSettings;->shouldShowSystemDecorsLocked(Lcom/android/server/wm/DisplayContent;)Z
+HSPLcom/android/server/wm/DisplayWindowSettings;->updateSettingsForDisplay(Lcom/android/server/wm/DisplayContent;)Z
+HSPLcom/android/server/wm/DockedStackDividerController;-><clinit>()V
+HSPLcom/android/server/wm/DockedStackDividerController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/DockedStackDividerController;->animate(J)Z
PLcom/android/server/wm/DockedStackDividerController;->checkMinimizeChanged(Z)V
-PLcom/android/server/wm/DockedStackDividerController;->getContentWidth()I
+HSPLcom/android/server/wm/DockedStackDividerController;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/DockedStackDividerController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/wm/DockedStackDividerController;->getContentWidth()I
PLcom/android/server/wm/DockedStackDividerController;->getHomeStackBoundsInDockedMode(Landroid/content/res/Configuration;ILandroid/graphics/Rect;)V
-PLcom/android/server/wm/DockedStackDividerController;->initSnapAlgorithmForRotations()V
+PLcom/android/server/wm/DockedStackDividerController;->getImeHeightAdjustedFor()I
+HSPLcom/android/server/wm/DockedStackDividerController;->initSnapAlgorithmForRotations()V
PLcom/android/server/wm/DockedStackDividerController;->isHomeStackResizable()Z
-PLcom/android/server/wm/DockedStackDividerController;->isMinimizedDock()Z
+PLcom/android/server/wm/DockedStackDividerController;->isImeHideRequested()Z
+HSPLcom/android/server/wm/DockedStackDividerController;->isMinimizedDock()Z
PLcom/android/server/wm/DockedStackDividerController;->isResizing()Z
-PLcom/android/server/wm/DockedStackDividerController;->loadDimens()V
+HSPLcom/android/server/wm/DockedStackDividerController;->loadDimens()V
PLcom/android/server/wm/DockedStackDividerController;->notifyAdjustedForImeChanged(ZJ)V
PLcom/android/server/wm/DockedStackDividerController;->notifyAppTransitionStarting(Landroid/util/ArraySet;I)V
PLcom/android/server/wm/DockedStackDividerController;->notifyAppVisibilityChanged()V
PLcom/android/server/wm/DockedStackDividerController;->notifyDockedDividerVisibilityChanged(Z)V
PLcom/android/server/wm/DockedStackDividerController;->notifyDockedStackExistsChanged(Z)V
PLcom/android/server/wm/DockedStackDividerController;->notifyDockedStackMinimizedChanged(ZZZ)V
-PLcom/android/server/wm/DockedStackDividerController;->onConfigurationChanged()V
+HSPLcom/android/server/wm/DockedStackDividerController;->onConfigurationChanged()V
PLcom/android/server/wm/DockedStackDividerController;->positionDockedStackedDivider(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/DockedStackDividerController;->reevaluateVisibility(Z)V
+HSPLcom/android/server/wm/DockedStackDividerController;->reevaluateVisibility(Z)V
PLcom/android/server/wm/DockedStackDividerController;->registerDockedStackListener(Landroid/view/IDockedStackListener;)V
-PLcom/android/server/wm/DockedStackDividerController;->setAdjustedForIme(ZZZLcom/android/server/wm/WindowState;I)V
+PLcom/android/server/wm/DockedStackDividerController;->resetImeHideRequested()V
+HSPLcom/android/server/wm/DockedStackDividerController;->setAdjustedForIme(ZZZLcom/android/server/wm/WindowState;I)V
PLcom/android/server/wm/DockedStackDividerController;->setMinimizedDockedStack(ZZ)V
PLcom/android/server/wm/DockedStackDividerController;->setTouchRegion(Landroid/graphics/Rect;)V
PLcom/android/server/wm/DockedStackDividerController;->setWindow(Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/DockedStackDividerController;->wasVisible()Z
-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
-PLcom/android/server/wm/DragDropController;->dragDropActiveLocked()Z
-PLcom/android/server/wm/EmbeddedWindowController;-><init>(Ljava/lang/Object;)V
-PLcom/android/server/wm/EmbeddedWindowController;->remove(Landroid/view/IWindow;)V
+HSPLcom/android/server/wm/DragDropController$1;-><init>(Lcom/android/server/wm/DragDropController;)V
+HSPLcom/android/server/wm/DragDropController$DragHandler;-><init>(Lcom/android/server/wm/DragDropController;Lcom/android/server/wm/WindowManagerService;Landroid/os/Looper;)V
+HSPLcom/android/server/wm/DragDropController;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/Looper;)V
+HSPLcom/android/server/wm/DragDropController;->dragDropActiveLocked()Z
+HSPLcom/android/server/wm/EmbeddedWindowController;-><init>(Ljava/lang/Object;)V
+PLcom/android/server/wm/EmbeddedWindowController;->getHostWindow(Landroid/os/IBinder;)Lcom/android/server/wm/WindowState;
PLcom/android/server/wm/EmbeddedWindowController;->removeWindowsWithHost(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/EnsureActivitiesVisibleHelper;-><init>(Lcom/android/server/wm/ActivityStack;)V
+HSPLcom/android/server/wm/EnsureActivitiesVisibleHelper;-><init>(Lcom/android/server/wm/ActivityStack;)V
HPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->lambda$uAeEWwx5d0xk6FKOvvR9CXZS6Bg(Lcom/android/server/wm/EnsureActivitiesVisibleHelper;Lcom/android/server/wm/ActivityRecord;Z)V
PLcom/android/server/wm/EnsureActivitiesVisibleHelper;->makeVisibleAndRestartIfNeeded(Lcom/android/server/wm/ActivityRecord;IZZLcom/android/server/wm/ActivityRecord;)V
-HPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->process(Lcom/android/server/wm/ActivityRecord;IZZ)V
-HPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->reset(Lcom/android/server/wm/ActivityRecord;IZZ)V
+HSPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->process(Lcom/android/server/wm/ActivityRecord;IZZ)V
+HSPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->reset(Lcom/android/server/wm/ActivityRecord;IZZ)V
HPLcom/android/server/wm/EnsureActivitiesVisibleHelper;->setActivityVisibilityState(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(II)V
-PLcom/android/server/wm/EventLogTags;->writeWmDestroyActivity(IIILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/wm/EventLogTags;->writeWmFinishActivity(IIILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/wm/EventLogTags;->writeWmFocusedStack(IIIILjava/lang/String;)V
+HPLcom/android/server/wm/EventLogTags;->writeWmDestroyActivity(IIILjava/lang/String;Ljava/lang/String;)V
+PLcom/android/server/wm/EventLogTags;->writeWmFailedToPause(IILjava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/wm/EventLogTags;->writeWmFinishActivity(IIILjava/lang/String;Ljava/lang/String;)V
+HPLcom/android/server/wm/EventLogTags;->writeWmFocusedStack(IIIILjava/lang/String;)V
PLcom/android/server/wm/EventLogTags;->writeWmPauseActivity(IILjava/lang/String;Ljava/lang/String;)V
PLcom/android/server/wm/EventLogTags;->writeWmRemoveTask(II)V
-PLcom/android/server/wm/EventLogTags;->writeWmRestartActivity(IIILjava/lang/String;)V
-PLcom/android/server/wm/EventLogTags;->writeWmResumeActivity(IIILjava/lang/String;)V
-PLcom/android/server/wm/EventLogTags;->writeWmSetKeyguardShown(IIILjava/lang/String;)V
+HPLcom/android/server/wm/EventLogTags;->writeWmRestartActivity(IIILjava/lang/String;)V
+HPLcom/android/server/wm/EventLogTags;->writeWmResumeActivity(IIILjava/lang/String;)V
+HPLcom/android/server/wm/EventLogTags;->writeWmSetKeyguardShown(IIILjava/lang/String;)V
PLcom/android/server/wm/EventLogTags;->writeWmSetResumedActivity(ILjava/lang/String;Ljava/lang/String;)V
-PLcom/android/server/wm/EventLogTags;->writeWmStackCreated(I)V
+HSPLcom/android/server/wm/EventLogTags;->writeWmStackCreated(I)V
PLcom/android/server/wm/EventLogTags;->writeWmStackRemoved(I)V
PLcom/android/server/wm/EventLogTags;->writeWmStopActivity(IILjava/lang/String;)V
PLcom/android/server/wm/EventLogTags;->writeWmTaskCreated(II)V
-PLcom/android/server/wm/EventLogTags;->writeWmTaskMoved(III)V
+HPLcom/android/server/wm/EventLogTags;->writeWmTaskMoved(III)V
+PLcom/android/server/wm/EventLogTags;->writeWmTaskRemoved(ILjava/lang/String;)V
PLcom/android/server/wm/EventLogTags;->writeWmTaskToFront(II)V
-PLcom/android/server/wm/HighRefreshRateBlacklist$OnPropertiesChangedListener;-><init>(Lcom/android/server/wm/HighRefreshRateBlacklist;)V
-PLcom/android/server/wm/HighRefreshRateBlacklist$OnPropertiesChangedListener;-><init>(Lcom/android/server/wm/HighRefreshRateBlacklist;Lcom/android/server/wm/HighRefreshRateBlacklist$1;)V
-PLcom/android/server/wm/HighRefreshRateBlacklist;-><init>(Landroid/content/res/Resources;Lcom/android/server/wm/utils/DeviceConfigInterface;)V
-PLcom/android/server/wm/HighRefreshRateBlacklist;->create(Landroid/content/res/Resources;)Lcom/android/server/wm/HighRefreshRateBlacklist;
-PLcom/android/server/wm/HighRefreshRateBlacklist;->isBlacklisted(Ljava/lang/String;)Z
-PLcom/android/server/wm/HighRefreshRateBlacklist;->updateBlacklist(Ljava/lang/String;)V
-PLcom/android/server/wm/ImeInsetsSourceProvider;-><init>(Landroid/view/InsetsSource;Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/ImeInsetsSourceProvider;->onPostInsetsDispatched()V
-PLcom/android/server/wm/ImeInsetsSourceProvider;->onPostLayout()V
-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;Z)V
-PLcom/android/server/wm/ImmersiveModeConfirmation;->getNavBarExitDuration()J
+HSPLcom/android/server/wm/HighRefreshRateBlacklist$OnPropertiesChangedListener;-><init>(Lcom/android/server/wm/HighRefreshRateBlacklist;)V
+HSPLcom/android/server/wm/HighRefreshRateBlacklist$OnPropertiesChangedListener;-><init>(Lcom/android/server/wm/HighRefreshRateBlacklist;Lcom/android/server/wm/HighRefreshRateBlacklist$1;)V
+PLcom/android/server/wm/HighRefreshRateBlacklist$OnPropertiesChangedListener;->onPropertiesChanged(Landroid/provider/DeviceConfig$Properties;)V
+HSPLcom/android/server/wm/HighRefreshRateBlacklist;-><init>(Landroid/content/res/Resources;Lcom/android/server/wm/utils/DeviceConfigInterface;)V
+HSPLcom/android/server/wm/HighRefreshRateBlacklist;->create(Landroid/content/res/Resources;)Lcom/android/server/wm/HighRefreshRateBlacklist;
+PLcom/android/server/wm/HighRefreshRateBlacklist;->dump(Ljava/io/PrintWriter;)V
+HPLcom/android/server/wm/HighRefreshRateBlacklist;->isBlacklisted(Ljava/lang/String;)Z
+HSPLcom/android/server/wm/HighRefreshRateBlacklist;->updateBlacklist(Ljava/lang/String;)V
+HSPLcom/android/server/wm/ImeInsetsSourceProvider;-><init>(Landroid/view/InsetsSource;Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/ImeInsetsSourceProvider;->onPostInsetsDispatched()V
+HSPLcom/android/server/wm/ImeInsetsSourceProvider;->onPostLayout()V
+HSPLcom/android/server/wm/ImmersiveModeConfirmation$1;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation;)V
+HSPLcom/android/server/wm/ImmersiveModeConfirmation$H;-><init>(Lcom/android/server/wm/ImmersiveModeConfirmation;Landroid/os/Looper;)V
+PLcom/android/server/wm/ImmersiveModeConfirmation$H;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/wm/ImmersiveModeConfirmation;-><init>(Landroid/content/Context;Landroid/os/Looper;Z)V
+PLcom/android/server/wm/ImmersiveModeConfirmation;->confirmCurrentPrompt()V
+HSPLcom/android/server/wm/ImmersiveModeConfirmation;->getNavBarExitDuration()J
PLcom/android/server/wm/ImmersiveModeConfirmation;->getWindowToken()Landroid/os/IBinder;
-PLcom/android/server/wm/ImmersiveModeConfirmation;->loadSetting(ILandroid/content/Context;)Z
+PLcom/android/server/wm/ImmersiveModeConfirmation;->immersiveModeChangedLw(Ljava/lang/String;ZZZ)V
+HSPLcom/android/server/wm/ImmersiveModeConfirmation;->loadSetting(ILandroid/content/Context;)Z
PLcom/android/server/wm/ImmersiveModeConfirmation;->onPowerKeyDown(ZJZZ)Z
PLcom/android/server/wm/InputConsumerImpl;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;Ljava/lang/String;Landroid/view/InputChannel;ILandroid/os/UserHandle;I)V
PLcom/android/server/wm/InputConsumerImpl;->binderDied()V
PLcom/android/server/wm/InputConsumerImpl;->disposeChannelsLw()V
+PLcom/android/server/wm/InputConsumerImpl;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
PLcom/android/server/wm/InputConsumerImpl;->getLayerLw(I)I
-PLcom/android/server/wm/InputConsumerImpl;->hide(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/InputConsumerImpl;->layout(Landroid/view/SurfaceControl$Transaction;II)V
-PLcom/android/server/wm/InputConsumerImpl;->layout(Landroid/view/SurfaceControl$Transaction;Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/InputConsumerImpl;->hide(Landroid/view/SurfaceControl$Transaction;)V
+HPLcom/android/server/wm/InputConsumerImpl;->layout(Landroid/view/SurfaceControl$Transaction;II)V
+HPLcom/android/server/wm/InputConsumerImpl;->layout(Landroid/view/SurfaceControl$Transaction;Landroid/graphics/Rect;)V
PLcom/android/server/wm/InputConsumerImpl;->linkToDeathRecipient()V
+PLcom/android/server/wm/InputConsumerImpl;->show(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/InputConsumerImpl;->unlinkFromDeathRecipient()V
-PLcom/android/server/wm/InputManagerCallback;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/InputManagerCallback;-><init>(Lcom/android/server/wm/WindowManagerService;)V
PLcom/android/server/wm/InputManagerCallback;->dispatchPointerCaptureChanged(Landroid/view/IWindow;Z)Z
-PLcom/android/server/wm/InputManagerCallback;->getPointerDisplayId()I
+HSPLcom/android/server/wm/InputManagerCallback;->getPointerDisplayId()I
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(IJI)I
-PLcom/android/server/wm/InputManagerCallback;->notifyConfigurationChanged()V
+HSPLcom/android/server/wm/InputManagerCallback;->notifyConfigurationChanged()V
PLcom/android/server/wm/InputManagerCallback;->notifyFocusChanged(Landroid/os/IBinder;Landroid/os/IBinder;)Z
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;-><init>(Lcom/android/server/wm/InputMonitor;)V
-PLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;-><init>(Lcom/android/server/wm/InputMonitor;Lcom/android/server/wm/InputMonitor$1;)V
+HSPLcom/android/server/wm/InputManagerCallback;->waitForInputDevicesReady(J)Z
+PLcom/android/server/wm/InputMonitor$EventReceiverInputConsumer;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/InputMonitor;Landroid/os/Looper;Ljava/lang/String;Landroid/view/InputEventReceiver$Factory;ILandroid/os/UserHandle;I)V
+PLcom/android/server/wm/InputMonitor$EventReceiverInputConsumer;->dismiss()V
+HSPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;-><init>(Lcom/android/server/wm/InputMonitor;)V
+HSPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;-><init>(Lcom/android/server/wm/InputMonitor;Lcom/android/server/wm/InputMonitor$1;)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
-PLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->access$700(Lcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;Z)V
-PLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->updateInputWindows(Z)V
-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$1;)V
-PLcom/android/server/wm/InputMonitor$UpdateInputWindows;->run()V
-PLcom/android/server/wm/InputMonitor;-><init>(Lcom/android/server/wm/WindowManagerService;I)V
-PLcom/android/server/wm/InputMonitor;->access$000(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/WindowManagerService;
-PLcom/android/server/wm/InputMonitor;->access$1000(Lcom/android/server/wm/InputMonitor;)Landroid/graphics/Rect;
-PLcom/android/server/wm/InputMonitor;->access$102(Lcom/android/server/wm/InputMonitor;Z)Z
+HSPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->access$700(Lcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;Z)V
+HSPLcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;->updateInputWindows(Z)V
+HSPLcom/android/server/wm/InputMonitor$UpdateInputWindows;-><init>(Lcom/android/server/wm/InputMonitor;)V
+HSPLcom/android/server/wm/InputMonitor$UpdateInputWindows;-><init>(Lcom/android/server/wm/InputMonitor;Lcom/android/server/wm/InputMonitor$1;)V
+HSPLcom/android/server/wm/InputMonitor$UpdateInputWindows;->run()V
+HSPLcom/android/server/wm/InputMonitor;-><init>(Lcom/android/server/wm/WindowManagerService;I)V
+HSPLcom/android/server/wm/InputMonitor;->access$000(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/WindowManagerService;
+HSPLcom/android/server/wm/InputMonitor;->access$1000(Lcom/android/server/wm/InputMonitor;)Landroid/graphics/Rect;
+HSPLcom/android/server/wm/InputMonitor;->access$102(Lcom/android/server/wm/InputMonitor;Z)Z
PLcom/android/server/wm/InputMonitor;->access$1100(Lcom/android/server/wm/InputMonitor;)Z
-PLcom/android/server/wm/InputMonitor;->access$1102(Lcom/android/server/wm/InputMonitor;Z)Z
-PLcom/android/server/wm/InputMonitor;->access$1200(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/DisplayContent;
-PLcom/android/server/wm/InputMonitor;->access$1300(Lcom/android/server/wm/InputMonitor;)Z
-PLcom/android/server/wm/InputMonitor;->access$202(Lcom/android/server/wm/InputMonitor;Z)Z
-PLcom/android/server/wm/InputMonitor;->access$300(Lcom/android/server/wm/InputMonitor;)Z
-PLcom/android/server/wm/InputMonitor;->access$400(Lcom/android/server/wm/InputMonitor;)Landroid/view/SurfaceControl$Transaction;
-PLcom/android/server/wm/InputMonitor;->access$500(Lcom/android/server/wm/InputMonitor;)I
-PLcom/android/server/wm/InputMonitor;->access$600(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;
+HSPLcom/android/server/wm/InputMonitor;->access$1102(Lcom/android/server/wm/InputMonitor;Z)Z
+HSPLcom/android/server/wm/InputMonitor;->access$1200(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/DisplayContent;
+HSPLcom/android/server/wm/InputMonitor;->access$1300(Lcom/android/server/wm/InputMonitor;)Z
+HSPLcom/android/server/wm/InputMonitor;->access$202(Lcom/android/server/wm/InputMonitor;Z)Z
+HSPLcom/android/server/wm/InputMonitor;->access$300(Lcom/android/server/wm/InputMonitor;)Z
+HSPLcom/android/server/wm/InputMonitor;->access$400(Lcom/android/server/wm/InputMonitor;)Landroid/view/SurfaceControl$Transaction;
+HSPLcom/android/server/wm/InputMonitor;->access$500(Lcom/android/server/wm/InputMonitor;)I
+HSPLcom/android/server/wm/InputMonitor;->access$600(Lcom/android/server/wm/InputMonitor;)Lcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;
+PLcom/android/server/wm/InputMonitor;->addInputConsumer(Ljava/lang/String;Lcom/android/server/wm/InputConsumerImpl;)V
PLcom/android/server/wm/InputMonitor;->createInputConsumer(Landroid/os/IBinder;Ljava/lang/String;Landroid/view/InputChannel;ILandroid/os/UserHandle;)V
-PLcom/android/server/wm/InputMonitor;->getInputConsumer(Ljava/lang/String;)Lcom/android/server/wm/InputConsumerImpl;
-PLcom/android/server/wm/InputMonitor;->layoutInputConsumers(II)V
+PLcom/android/server/wm/InputMonitor;->createInputConsumer(Landroid/os/Looper;Ljava/lang/String;Landroid/view/InputEventReceiver$Factory;)Lcom/android/server/policy/WindowManagerPolicy$InputConsumer;
+PLcom/android/server/wm/InputMonitor;->destroyInputConsumer(Ljava/lang/String;)Z
+PLcom/android/server/wm/InputMonitor;->disposeInputConsumer(Lcom/android/server/wm/InputConsumerImpl;)Z
+HSPLcom/android/server/wm/InputMonitor;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/wm/InputMonitor;->getInputConsumer(Ljava/lang/String;)Lcom/android/server/wm/InputConsumerImpl;
+HSPLcom/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(Landroid/view/InputWindowHandle;Lcom/android/server/wm/WindowState;IIZZZ)V
-PLcom/android/server/wm/InputMonitor;->resetInputConsumers(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/InputMonitor;->scheduleUpdateInputWindows()V
+HSPLcom/android/server/wm/InputMonitor;->resetInputConsumers(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/InputMonitor;->resumeDispatchingLw(Lcom/android/server/wm/WindowToken;)V
+HSPLcom/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
-PLcom/android/server/wm/InputMonitor;->setUpdateInputWindowsNeededLw()V
-PLcom/android/server/wm/InputMonitor;->updateInputWindowsLw(Z)V
-PLcom/android/server/wm/InsetsPolicy$BarWindow;-><init>(Lcom/android/server/wm/InsetsPolicy;I)V
-PLcom/android/server/wm/InsetsPolicy$TransientControlTarget;-><init>(Lcom/android/server/wm/InsetsPolicy;)V
-PLcom/android/server/wm/InsetsPolicy$TransientControlTarget;-><init>(Lcom/android/server/wm/InsetsPolicy;Lcom/android/server/wm/InsetsPolicy$1;)V
-PLcom/android/server/wm/InsetsPolicy;-><init>(Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/InsetsPolicy;->areSystemBarsForciblyVisible()Z
+HSPLcom/android/server/wm/InputMonitor;->setUpdateInputWindowsNeededLw()V
+HSPLcom/android/server/wm/InputMonitor;->updateInputWindowsLw(Z)V
+HSPLcom/android/server/wm/InsetsPolicy$BarWindow;-><init>(Lcom/android/server/wm/InsetsPolicy;I)V
+HSPLcom/android/server/wm/InsetsPolicy$TransientControlTarget;-><init>(Lcom/android/server/wm/InsetsPolicy;)V
+HSPLcom/android/server/wm/InsetsPolicy$TransientControlTarget;-><init>(Lcom/android/server/wm/InsetsPolicy;Lcom/android/server/wm/InsetsPolicy$1;)V
+HSPLcom/android/server/wm/InsetsPolicy;-><init>(Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/InsetsPolicy;->areSystemBarsForciblyVisible()Z
PLcom/android/server/wm/InsetsPolicy;->getFakeNavControlTarget(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/InsetsControlTarget;
-PLcom/android/server/wm/InsetsPolicy;->getFakeTopControlTarget(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/InsetsControlTarget;
-PLcom/android/server/wm/InsetsPolicy;->getInsetsForDispatch(Lcom/android/server/wm/WindowState;)Landroid/view/InsetsState;
+PLcom/android/server/wm/InsetsPolicy;->getFakeStatusControlTarget(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/InsetsControlTarget;
+HPLcom/android/server/wm/InsetsPolicy;->getInsetsForDispatch(Lcom/android/server/wm/WindowState;)Landroid/view/InsetsState;
PLcom/android/server/wm/InsetsPolicy;->getNavControlTarget(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/InsetsControlTarget;
-PLcom/android/server/wm/InsetsPolicy;->getTopControlTarget(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/InsetsControlTarget;
-PLcom/android/server/wm/InsetsPolicy;->isHidden(I)Z
+PLcom/android/server/wm/InsetsPolicy;->getStatusControlTarget(Lcom/android/server/wm/WindowState;)Lcom/android/server/wm/InsetsControlTarget;
+PLcom/android/server/wm/InsetsPolicy;->hideTransient()V
+HPLcom/android/server/wm/InsetsPolicy;->isHidden(I)Z
PLcom/android/server/wm/InsetsPolicy;->isNavBarForciblyVisible()Z
PLcom/android/server/wm/InsetsPolicy;->isStatusBarForciblyVisible()Z
-PLcom/android/server/wm/InsetsPolicy;->updateBarControlTarget(Lcom/android/server/wm/WindowState;)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/InsetsPolicy;->isTransient(I)Z
+PLcom/android/server/wm/InsetsPolicy;->showTransient(Landroid/util/IntArray;)V
+HPLcom/android/server/wm/InsetsPolicy;->updateBarControlTarget(Lcom/android/server/wm/WindowState;)V
+HSPLcom/android/server/wm/InsetsSourceProvider;-><init>(Landroid/view/InsetsSource;Lcom/android/server/wm/InsetsStateController;Lcom/android/server/wm/DisplayContent;)V
PLcom/android/server/wm/InsetsSourceProvider;->getSource()Landroid/view/InsetsSource;
PLcom/android/server/wm/InsetsSourceProvider;->hasWindow()Z
PLcom/android/server/wm/InsetsSourceProvider;->isControllable()Z
-HPLcom/android/server/wm/InsetsSourceProvider;->onPostLayout()V
+HSPLcom/android/server/wm/InsetsSourceProvider;->onPostLayout()V
PLcom/android/server/wm/InsetsSourceProvider;->setServerVisible(Z)V
PLcom/android/server/wm/InsetsSourceProvider;->setWindow(Lcom/android/server/wm/WindowState;Lcom/android/internal/util/function/TriConsumer;)V
+HPLcom/android/server/wm/InsetsSourceProvider;->updateSourceFrame()V
PLcom/android/server/wm/InsetsSourceProvider;->updateVisibility()V
-PLcom/android/server/wm/InsetsStateController;-><init>(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/InsetsStateController;->getImeSourceProvider()Lcom/android/server/wm/ImeInsetsSourceProvider;
-PLcom/android/server/wm/InsetsStateController;->getInsetsForDispatch(Lcom/android/server/wm/WindowState;)Landroid/view/InsetsState;
-PLcom/android/server/wm/InsetsStateController;->getSourceProvider(I)Lcom/android/server/wm/InsetsSourceProvider;
-PLcom/android/server/wm/InsetsStateController;->lambda$getSourceProvider$1$InsetsStateController(Ljava/lang/Integer;)Lcom/android/server/wm/InsetsSourceProvider;
+HSPLcom/android/server/wm/InsetsStateController;-><init>(Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/InsetsStateController;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+HSPLcom/android/server/wm/InsetsStateController;->getImeSourceProvider()Lcom/android/server/wm/ImeInsetsSourceProvider;
+HPLcom/android/server/wm/InsetsStateController;->getInsetsForDispatch(Lcom/android/server/wm/WindowState;)Landroid/view/InsetsState;
+HSPLcom/android/server/wm/InsetsStateController;->getSourceProvider(I)Lcom/android/server/wm/InsetsSourceProvider;
+HSPLcom/android/server/wm/InsetsStateController;->lambda$getSourceProvider$1$InsetsStateController(Ljava/lang/Integer;)Lcom/android/server/wm/InsetsSourceProvider;
PLcom/android/server/wm/InsetsStateController;->lambda$getSourceProvider$2$InsetsStateController(Ljava/lang/Integer;)Lcom/android/server/wm/InsetsSourceProvider;
PLcom/android/server/wm/InsetsStateController;->lambda$new$0(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/InsetsStateController;->notifyInsetsChanged()V
+HSPLcom/android/server/wm/InsetsStateController;->notifyInsetsChanged()V
PLcom/android/server/wm/InsetsStateController;->notifyPendingInsetsControlChanged()V
PLcom/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;->onControlChanged(ILcom/android/server/wm/InsetsControlTarget;)V
-PLcom/android/server/wm/InsetsStateController;->onControlFakeTargetChanged(ILcom/android/server/wm/InsetsControlTarget;)V
-HPLcom/android/server/wm/InsetsStateController;->onPostLayout()V
+HPLcom/android/server/wm/InsetsStateController;->onControlChanged(ILcom/android/server/wm/InsetsControlTarget;)V
+HPLcom/android/server/wm/InsetsStateController;->onControlFakeTargetChanged(ILcom/android/server/wm/InsetsControlTarget;)V
+PLcom/android/server/wm/InsetsStateController;->onImeTargetChanged(Lcom/android/server/wm/InsetsControlTarget;)V
+HSPLcom/android/server/wm/InsetsStateController;->onPostLayout()V
PLcom/android/server/wm/InsetsStateController;->peekSourceProvider(I)Lcom/android/server/wm/InsetsSourceProvider;
-PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;I)V
-PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->access$100(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Z
+HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;I)V
+HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->access$100(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Z
PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->access$200(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Z
PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->access$300(Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;)Lcom/android/server/wm/ActivityTaskManagerInternal$SleepToken;
PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->acquiredSleepToken()V
-PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->getStackForControllingOccluding(Lcom/android/server/wm/ActivityDisplay;)Lcom/android/server/wm/ActivityStack;
+PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->dumpStatus(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->getStackForControllingOccluding(Lcom/android/server/wm/DisplayContent;)Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->releaseSleepToken()V
-PLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->visibilitiesUpdated(Lcom/android/server/wm/KeyguardController;Lcom/android/server/wm/ActivityDisplay;)V
+HSPLcom/android/server/wm/KeyguardController$KeyguardDisplayState;->visibilitiesUpdated(Lcom/android/server/wm/KeyguardController;Lcom/android/server/wm/DisplayContent;)V
HSPLcom/android/server/wm/KeyguardController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;)V
-PLcom/android/server/wm/KeyguardController;->beginActivityVisibilityUpdate()V
-PLcom/android/server/wm/KeyguardController;->canShowActivityWhileKeyguardShowing(Lcom/android/server/wm/ActivityRecord;Z)Z
+HSPLcom/android/server/wm/KeyguardController;->beginActivityVisibilityUpdate()V
+HPLcom/android/server/wm/KeyguardController;->canShowActivityWhileKeyguardShowing(Lcom/android/server/wm/ActivityRecord;Z)Z
+PLcom/android/server/wm/KeyguardController;->convertTransitFlags(I)I
PLcom/android/server/wm/KeyguardController;->dismissDockedStackIfNeeded()V
-PLcom/android/server/wm/KeyguardController;->endActivityVisibilityUpdate()V
-PLcom/android/server/wm/KeyguardController;->getDisplay(I)Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;
+HSPLcom/android/server/wm/KeyguardController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/wm/KeyguardController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/wm/KeyguardController;->dumpDisplayStates(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/wm/KeyguardController;->endActivityVisibilityUpdate()V
+HSPLcom/android/server/wm/KeyguardController;->getDisplay(I)Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;
+PLcom/android/server/wm/KeyguardController;->handleOccludedChanged(I)V
PLcom/android/server/wm/KeyguardController;->isDisplayOccluded(I)Z
-PLcom/android/server/wm/KeyguardController;->isKeyguardGoingAway()Z
+HSPLcom/android/server/wm/KeyguardController;->isKeyguardGoingAway()Z
PLcom/android/server/wm/KeyguardController;->isKeyguardLocked()Z
PLcom/android/server/wm/KeyguardController;->isKeyguardOrAodShowing(I)Z
PLcom/android/server/wm/KeyguardController;->isKeyguardShowing(I)Z
PLcom/android/server/wm/KeyguardController;->isKeyguardUnoccludedOrAodShowing(I)Z
PLcom/android/server/wm/KeyguardController;->keyguardGoingAway(I)V
+PLcom/android/server/wm/KeyguardController;->resolveOccludeTransit()I
PLcom/android/server/wm/KeyguardController;->setKeyguardGoingAway(Z)V
PLcom/android/server/wm/KeyguardController;->setKeyguardShown(ZZ)V
-PLcom/android/server/wm/KeyguardController;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/KeyguardController;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
PLcom/android/server/wm/KeyguardController;->updateKeyguardSleepToken()V
-PLcom/android/server/wm/KeyguardController;->updateKeyguardSleepToken(I)V
-PLcom/android/server/wm/KeyguardController;->visibilitiesUpdated()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;Landroid/os/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;
+HPLcom/android/server/wm/KeyguardController;->updateKeyguardSleepToken(I)V
+HSPLcom/android/server/wm/KeyguardController;->visibilitiesUpdated()V
+PLcom/android/server/wm/KeyguardController;->writeDisplayStatesToProto(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/wm/KeyguardDisableHandler$1;-><init>(Lcom/android/server/wm/KeyguardDisableHandler;)V
+HSPLcom/android/server/wm/KeyguardDisableHandler$2;-><init>(Lcom/android/server/policy/WindowManagerPolicy;Landroid/os/UserManagerInternal;)V
+HSPLcom/android/server/wm/KeyguardDisableHandler;-><init>(Lcom/android/server/wm/KeyguardDisableHandler$Injector;Landroid/os/Handler;)V
+HSPLcom/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/KeyguardDisableHandler;->shouldKeyguardBeEnabled(I)Z
-PLcom/android/server/wm/KeyguardDisableHandler;->updateKeyguardEnabled(I)V
+HPLcom/android/server/wm/KeyguardDisableHandler;->updateKeyguardEnabled(I)V
HSPLcom/android/server/wm/LaunchObserverRegistryImpl;-><init>(Landroid/os/Looper;)V
PLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnActivityLaunchCancelled([B)V
+PLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnActivityLaunchFinished([BJ)V
PLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnActivityLaunched([BI)V
PLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnIntentStarted(Landroid/content/Intent;J)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->handleRegisterLaunchObserver(Lcom/android/server/wm/ActivityMetricsLaunchObserver;)V
+PLcom/android/server/wm/LaunchObserverRegistryImpl;->handleOnReportFullyDrawn([BJ)V
+HSPLcom/android/server/wm/LaunchObserverRegistryImpl;->handleRegisterLaunchObserver(Lcom/android/server/wm/ActivityMetricsLaunchObserver;)V
+PLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$FhvLqBbd_XMsJK45WV5Mlt8JSYM(Lcom/android/server/wm/LaunchObserverRegistryImpl;[BJ)V
+PLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$QcawcFcJtEX4EhYptq_Vb4j368Y(Lcom/android/server/wm/LaunchObserverRegistryImpl;[BJ)V
PLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$UGY1OclnLIQLMEL9B55qjERFf4o(Lcom/android/server/wm/LaunchObserverRegistryImpl;[BI)V
PLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$lAGPwfsXJvBWsyG2rbEfo3sTv34(Lcom/android/server/wm/LaunchObserverRegistryImpl;[B)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$pWUDt4Ot3BWLJOTAhXMkkhHUhpc(Lcom/android/server/wm/LaunchObserverRegistryImpl;Lcom/android/server/wm/ActivityMetricsLaunchObserver;)V
+HSPLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$pWUDt4Ot3BWLJOTAhXMkkhHUhpc(Lcom/android/server/wm/LaunchObserverRegistryImpl;Lcom/android/server/wm/ActivityMetricsLaunchObserver;)V
PLcom/android/server/wm/LaunchObserverRegistryImpl;->lambda$veRn_GhgLZLlOHOJ0ZYT6KcfYqo(Lcom/android/server/wm/LaunchObserverRegistryImpl;Landroid/content/Intent;J)V
PLcom/android/server/wm/LaunchObserverRegistryImpl;->onActivityLaunchCancelled([B)V
PLcom/android/server/wm/LaunchObserverRegistryImpl;->onActivityLaunchFinished([BJ)V
PLcom/android/server/wm/LaunchObserverRegistryImpl;->onActivityLaunched([BI)V
PLcom/android/server/wm/LaunchObserverRegistryImpl;->onIntentFailed()V
PLcom/android/server/wm/LaunchObserverRegistryImpl;->onIntentStarted(Landroid/content/Intent;J)V
-PLcom/android/server/wm/LaunchObserverRegistryImpl;->registerLaunchObserver(Lcom/android/server/wm/ActivityMetricsLaunchObserver;)V
+PLcom/android/server/wm/LaunchObserverRegistryImpl;->onReportFullyDrawn([BJ)V
+HSPLcom/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;->hasPreferredDisplay()Z
PLcom/android/server/wm/LaunchParamsController$LaunchParams;->hasWindowingMode()Z
@@ -18238,171 +22060,243 @@ PLcom/android/server/wm/LaunchParamsController$LaunchParams;->isEmpty()Z
PLcom/android/server/wm/LaunchParamsController$LaunchParams;->reset()V
PLcom/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
-PLcom/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;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
+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;ILcom/android/server/wm/LaunchParamsController$LaunchParams;)V
+HPLcom/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/ActivityStackSupervisor;)V
HSPLcom/android/server/wm/LaunchParamsController;->registerModifier(Lcom/android/server/wm/LaunchParamsController$LaunchParamsModifier;)V
-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$1;)V
+HSPLcom/android/server/wm/LaunchParamsPersister$PackageListObserver;-><init>(Lcom/android/server/wm/LaunchParamsPersister;)V
+HSPLcom/android/server/wm/LaunchParamsPersister$PackageListObserver;-><init>(Lcom/android/server/wm/LaunchParamsPersister;Lcom/android/server/wm/LaunchParamsPersister$1;)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/ActivityStackSupervisor;)V
HSPLcom/android/server/wm/LaunchParamsPersister;-><init>(Lcom/android/server/wm/PersisterQueue;Lcom/android/server/wm/ActivityStackSupervisor;Ljava/util/function/IntFunction;)V
-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;->getLaunchParamFolder(I)Ljava/io/File;
+HPLcom/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
+HSPLcom/android/server/wm/LaunchParamsPersister;->onSystemReady()V
+PLcom/android/server/wm/LaunchParamsPersister;->onUnlockUser(I)V
+PLcom/android/server/wm/Letterbox$InputInterceptor$SimpleInputReceiver;-><init>(Landroid/view/InputChannel;)V
+PLcom/android/server/wm/Letterbox$InputInterceptor;-><init>(Ljava/lang/String;Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/Letterbox$InputInterceptor;->dispose()V
+PLcom/android/server/wm/Letterbox$InputInterceptor;->updateTouchableRegion(Landroid/graphics/Rect;)V
+PLcom/android/server/wm/Letterbox$LetterboxSurface;-><init>(Lcom/android/server/wm/Letterbox;Ljava/lang/String;)V
+PLcom/android/server/wm/Letterbox$LetterboxSurface;->applySurfaceChanges(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/Letterbox$LetterboxSurface;->attachInput(Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/Letterbox$LetterboxSurface;->createSurface(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/Letterbox$LetterboxSurface;->getHeight()I
+PLcom/android/server/wm/Letterbox$LetterboxSurface;->getWidth()I
+HPLcom/android/server/wm/Letterbox$LetterboxSurface;->isOverlappingWith(Landroid/graphics/Rect;)Z
+HPLcom/android/server/wm/Letterbox$LetterboxSurface;->layout(IIIILandroid/graphics/Point;)V
+HPLcom/android/server/wm/Letterbox$LetterboxSurface;->needsApplySurfaceChanges()Z
+PLcom/android/server/wm/Letterbox$LetterboxSurface;->remove()V
+PLcom/android/server/wm/Letterbox;-><clinit>()V
+PLcom/android/server/wm/Letterbox;-><init>(Ljava/util/function/Supplier;Ljava/util/function/Supplier;)V
+PLcom/android/server/wm/Letterbox;->access$100(Lcom/android/server/wm/Letterbox;)Ljava/util/function/Supplier;
+PLcom/android/server/wm/Letterbox;->access$200(Lcom/android/server/wm/Letterbox;)Ljava/util/function/Supplier;
+PLcom/android/server/wm/Letterbox;->applySurfaceChanges(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/Letterbox;->attachInput(Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/Letterbox;->destroy()V
+HPLcom/android/server/wm/Letterbox;->getInnerFrame()Landroid/graphics/Rect;
+PLcom/android/server/wm/Letterbox;->getInsets()Landroid/graphics/Rect;
+HPLcom/android/server/wm/Letterbox;->hide()V
+HPLcom/android/server/wm/Letterbox;->isOverlappingWith(Landroid/graphics/Rect;)Z
+HPLcom/android/server/wm/Letterbox;->layout(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Point;)V
+HPLcom/android/server/wm/Letterbox;->needsApplySurfaceChanges()Z
PLcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;->canSkipFirstFrame()Z
-PLcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;->needsEarlyWakeup()Z
-PLcom/android/server/wm/LocalAnimationAdapter;-><init>(Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Lcom/android/server/wm/SurfaceAnimationRunner;)V
+PLcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HPLcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;->needsEarlyWakeup()Z
+HPLcom/android/server/wm/LocalAnimationAdapter;-><init>(Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Lcom/android/server/wm/SurfaceAnimationRunner;)V
+PLcom/android/server/wm/LocalAnimationAdapter;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
PLcom/android/server/wm/LocalAnimationAdapter;->getDurationHint()J
PLcom/android/server/wm/LocalAnimationAdapter;->getShowWallpaper()Z
PLcom/android/server/wm/LocalAnimationAdapter;->getStatusBarTransitionsStartTime()J
PLcom/android/server/wm/LocalAnimationAdapter;->lambda$startAnimation$0$LocalAnimationAdapter(Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
PLcom/android/server/wm/LocalAnimationAdapter;->onAnimationCancelled(Landroid/view/SurfaceControl;)V
PLcom/android/server/wm/LocalAnimationAdapter;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
-PLcom/android/server/wm/LocalAnimationAdapter;->writeToProto(Landroid/util/proto/ProtoOutputStream;)V
HSPLcom/android/server/wm/LockTaskController$LockTaskToken;-><init>()V
HSPLcom/android/server/wm/LockTaskController$LockTaskToken;-><init>(Lcom/android/server/wm/LockTaskController$1;)V
HSPLcom/android/server/wm/LockTaskController;-><clinit>()V
HSPLcom/android/server/wm/LockTaskController;-><init>(Landroid/content/Context;Lcom/android/server/wm/ActivityStackSupervisor;Landroid/os/Handler;)V
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;->getLockTaskFeaturesForUser(I)I
+HSPLcom/android/server/wm/LockTaskController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/wm/LockTaskController;->getLockTaskFeaturesForUser(I)I
PLcom/android/server/wm/LockTaskController;->getLockTaskModeState()I
PLcom/android/server/wm/LockTaskController;->getRootTask()Lcom/android/server/wm/Task;
PLcom/android/server/wm/LockTaskController;->isKeyguardAllowed(I)Z
PLcom/android/server/wm/LockTaskController;->isLockTaskModeViolation(Lcom/android/server/wm/Task;)Z
PLcom/android/server/wm/LockTaskController;->isLockTaskModeViolation(Lcom/android/server/wm/Task;Z)Z
-PLcom/android/server/wm/LockTaskController;->isLockTaskModeViolationInternal(Lcom/android/server/wm/Task;Z)Z
+HPLcom/android/server/wm/LockTaskController;->isLockTaskModeViolationInternal(Lcom/android/server/wm/Task;Z)Z
PLcom/android/server/wm/LockTaskController;->isPackageWhitelisted(ILjava/lang/String;)Z
+PLcom/android/server/wm/LockTaskController;->isRootTask(Lcom/android/server/wm/Task;)Z
PLcom/android/server/wm/LockTaskController;->isTaskLocked(Lcom/android/server/wm/Task;)Z
PLcom/android/server/wm/LockTaskController;->isTaskWhitelisted(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/LockTaskController;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/LockTaskController;->updateLockTaskFeatures(II)V
-PLcom/android/server/wm/LockTaskController;->updateLockTaskPackages(I[Ljava/lang/String;)V
+HSPLcom/android/server/wm/LockTaskController;->lockTaskModeToString()Ljava/lang/String;
+HSPLcom/android/server/wm/LockTaskController;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/LockTaskController;->updateLockTaskFeatures(II)V
+HSPLcom/android/server/wm/LockTaskController;->updateLockTaskPackages(I[Ljava/lang/String;)V
HSPLcom/android/server/wm/MirrorActiveUids;-><init>()V
PLcom/android/server/wm/MirrorActiveUids;->getUidState(I)I
-PLcom/android/server/wm/MirrorActiveUids;->onUidActive(II)V
-PLcom/android/server/wm/MirrorActiveUids;->onUidInactive(I)V
-HPLcom/android/server/wm/MirrorActiveUids;->onUidProcStateChanged(II)V
+HSPLcom/android/server/wm/MirrorActiveUids;->onUidActive(II)V
+HSPLcom/android/server/wm/MirrorActiveUids;->onUidInactive(I)V
+HSPLcom/android/server/wm/MirrorActiveUids;->onUidProcStateChanged(II)V
+PLcom/android/server/wm/PendingRemoteAnimationRegistry$Entry;-><init>(Lcom/android/server/wm/PendingRemoteAnimationRegistry;Ljava/lang/String;Landroid/view/RemoteAnimationAdapter;)V
+PLcom/android/server/wm/PendingRemoteAnimationRegistry$Entry;->lambda$new$0$PendingRemoteAnimationRegistry$Entry(Ljava/lang/String;)V
HSPLcom/android/server/wm/PendingRemoteAnimationRegistry;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/os/Handler;)V
-PLcom/android/server/wm/PendingRemoteAnimationRegistry;->overrideOptionsIfNeeded(Ljava/lang/String;Landroid/app/ActivityOptions;)Landroid/app/ActivityOptions;
+PLcom/android/server/wm/PendingRemoteAnimationRegistry;->access$000(Lcom/android/server/wm/PendingRemoteAnimationRegistry;)Landroid/os/Handler;
+HPLcom/android/server/wm/PendingRemoteAnimationRegistry;->overrideOptionsIfNeeded(Ljava/lang/String;Landroid/app/ActivityOptions;)Landroid/app/ActivityOptions;
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$1;)V
PLcom/android/server/wm/PersisterQueue$LazyTaskWriterThread;->run()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;->access$100(Lcom/android/server/wm/PersisterQueue;)Ljava/util/ArrayList;
+PLcom/android/server/wm/PersisterQueue;->access$200(Lcom/android/server/wm/PersisterQueue;)Ljava/util/ArrayList;
+PLcom/android/server/wm/PersisterQueue;->access$300(Lcom/android/server/wm/PersisterQueue;)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;->updateLastOrAddItem(Lcom/android/server/wm/PersisterQueue$WriteQueueItem;Z)V
PLcom/android/server/wm/PersisterQueue;->yieldIfQueueTooDeep()V
-PLcom/android/server/wm/PinnedStackController$PinnedStackControllerCallback;-><init>(Lcom/android/server/wm/PinnedStackController;)V
-PLcom/android/server/wm/PinnedStackController$PinnedStackControllerCallback;-><init>(Lcom/android/server/wm/PinnedStackController;Lcom/android/server/wm/PinnedStackController$1;)V
-PLcom/android/server/wm/PinnedStackController$PinnedStackListenerDeathHandler;-><init>(Lcom/android/server/wm/PinnedStackController;)V
-PLcom/android/server/wm/PinnedStackController$PinnedStackListenerDeathHandler;-><init>(Lcom/android/server/wm/PinnedStackController;Lcom/android/server/wm/PinnedStackController$1;)V
-PLcom/android/server/wm/PinnedStackController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/PinnedStackController;->dpToPx(FLandroid/util/DisplayMetrics;)I
+HSPLcom/android/server/wm/PinnedStackController$PinnedStackControllerCallback;-><init>(Lcom/android/server/wm/PinnedStackController;)V
+HSPLcom/android/server/wm/PinnedStackController$PinnedStackControllerCallback;-><init>(Lcom/android/server/wm/PinnedStackController;Lcom/android/server/wm/PinnedStackController$1;)V
+PLcom/android/server/wm/PinnedStackController$PinnedStackControllerCallback;->getDisplayRotation()I
+PLcom/android/server/wm/PinnedStackController$PinnedStackControllerCallback;->startAnimation(Landroid/graphics/Rect;Landroid/graphics/Rect;I)V
+HSPLcom/android/server/wm/PinnedStackController$PinnedStackListenerDeathHandler;-><init>(Lcom/android/server/wm/PinnedStackController;)V
+HSPLcom/android/server/wm/PinnedStackController$PinnedStackListenerDeathHandler;-><init>(Lcom/android/server/wm/PinnedStackController;Lcom/android/server/wm/PinnedStackController$1;)V
+HSPLcom/android/server/wm/PinnedStackController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/PinnedStackController;->access$300(Lcom/android/server/wm/PinnedStackController;)Lcom/android/server/wm/WindowManagerService;
+PLcom/android/server/wm/PinnedStackController;->access$400(Lcom/android/server/wm/PinnedStackController;)Landroid/view/DisplayInfo;
+PLcom/android/server/wm/PinnedStackController;->access$500(Lcom/android/server/wm/PinnedStackController;)Lcom/android/server/wm/DisplayContent;
+HSPLcom/android/server/wm/PinnedStackController;->dpToPx(FLandroid/util/DisplayMetrics;)I
+HSPLcom/android/server/wm/PinnedStackController;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/PinnedStackController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+HSPLcom/android/server/wm/PinnedStackController;->getDefaultBounds(F)Landroid/graphics/Rect;
+HSPLcom/android/server/wm/PinnedStackController;->getInsetBounds(Landroid/graphics/Rect;)V
+HSPLcom/android/server/wm/PinnedStackController;->getMovementBounds(Landroid/graphics/Rect;)Landroid/graphics/Rect;
+HSPLcom/android/server/wm/PinnedStackController;->getMovementBounds(Landroid/graphics/Rect;Z)Landroid/graphics/Rect;
+PLcom/android/server/wm/PinnedStackController;->isSameDimensionAndRotation(Landroid/view/DisplayInfo;Landroid/view/DisplayInfo;)Z
PLcom/android/server/wm/PinnedStackController;->notifyActionsChanged(Ljava/util/List;)V
-PLcom/android/server/wm/PinnedStackController;->notifyDisplayInfoChanged(Landroid/view/DisplayInfo;)V
+PLcom/android/server/wm/PinnedStackController;->notifyAspectRatioChanged(F)V
+HSPLcom/android/server/wm/PinnedStackController;->notifyDisplayInfoChanged(Landroid/view/DisplayInfo;)V
PLcom/android/server/wm/PinnedStackController;->notifyImeVisibilityChanged(ZI)V
PLcom/android/server/wm/PinnedStackController;->notifyMinimizeChanged(Z)V
-PLcom/android/server/wm/PinnedStackController;->notifyMovementBoundsChanged(ZZ)V
-PLcom/android/server/wm/PinnedStackController;->onConfigurationChanged()V
-PLcom/android/server/wm/PinnedStackController;->onDisplayInfoChanged(Landroid/view/DisplayInfo;)V
+HSPLcom/android/server/wm/PinnedStackController;->notifyMovementBoundsChanged(ZZ)V
+PLcom/android/server/wm/PinnedStackController;->notifyPrepareAnimation(Landroid/graphics/Rect;FLandroid/graphics/Rect;)V
+HSPLcom/android/server/wm/PinnedStackController;->onConfigurationChanged()V
+HSPLcom/android/server/wm/PinnedStackController;->onDisplayInfoChanged(Landroid/view/DisplayInfo;)V
+PLcom/android/server/wm/PinnedStackController;->onTaskStackBoundsChanged(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
PLcom/android/server/wm/PinnedStackController;->registerPinnedStackListener(Landroid/view/IPinnedStackListener;)V
-PLcom/android/server/wm/PinnedStackController;->reloadResources()V
-PLcom/android/server/wm/PinnedStackController;->resetReentryBounds(Landroid/content/ComponentName;)V
-PLcom/android/server/wm/PinnedStackController;->setAdjustedForIme(ZI)V
-PLcom/android/server/wm/PinnedStackController;->setDisplayInfo(Landroid/view/DisplayInfo;)V
-PLcom/android/server/wm/PointerEventDispatcher;-><init>(Landroid/view/InputChannel;)V
+HSPLcom/android/server/wm/PinnedStackController;->reloadResources()V
+HPLcom/android/server/wm/PinnedStackController;->resetReentryBounds(Landroid/content/ComponentName;)V
+HSPLcom/android/server/wm/PinnedStackController;->setAdjustedForIme(ZI)V
+HSPLcom/android/server/wm/PinnedStackController;->setDisplayInfo(Landroid/view/DisplayInfo;)V
+HSPLcom/android/server/wm/PointerEventDispatcher;-><init>(Landroid/view/InputChannel;)V
HPLcom/android/server/wm/PointerEventDispatcher;->onInputEvent(Landroid/view/InputEvent;)V
-PLcom/android/server/wm/PointerEventDispatcher;->registerInputEventListener(Landroid/view/WindowManagerPolicyConstants$PointerEventListener;)V
-PLcom/android/server/wm/PolicyControl;->getSystemUiVisibility(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;)I
+HSPLcom/android/server/wm/PointerEventDispatcher;->registerInputEventListener(Landroid/view/WindowManagerPolicyConstants$PointerEventListener;)V
+HPLcom/android/server/wm/PolicyControl;->getSystemUiVisibility(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;)I
HPLcom/android/server/wm/PolicyControl;->getWindowFlags(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;)I
PLcom/android/server/wm/PolicyControl;->reloadFromSetting(Landroid/content/Context;)Z
-PLcom/android/server/wm/ProtoLogGroup;-><clinit>()V
-PLcom/android/server/wm/ProtoLogGroup;-><init>(Ljava/lang/String;IZZZLjava/lang/String;)V
-PLcom/android/server/wm/ProtoLogGroup;->getTag()Ljava/lang/String;
+HSPLcom/android/server/wm/ProtoLogGroup;-><clinit>()V
+HSPLcom/android/server/wm/ProtoLogGroup;-><init>(Ljava/lang/String;IZZZLjava/lang/String;)V
+HSPLcom/android/server/wm/ProtoLogGroup;->getTag()Ljava/lang/String;
+PLcom/android/server/wm/ProtoLogGroup;->isEnabled()Z
PLcom/android/server/wm/ProtoLogGroup;->isLogToAny()Z
-PLcom/android/server/wm/ProtoLogGroup;->isLogToLogcat()Z
-PLcom/android/server/wm/ProtoLogGroup;->isLogToProto()Z
-PLcom/android/server/wm/ProtoLogGroup;->values()[Lcom/android/server/wm/ProtoLogGroup;
+HSPLcom/android/server/wm/ProtoLogGroup;->isLogToLogcat()Z
+HSPLcom/android/server/wm/ProtoLogGroup;->isLogToProto()Z
+HSPLcom/android/server/wm/ProtoLogGroup;->values()[Lcom/android/server/wm/ProtoLogGroup;
HSPLcom/android/server/wm/RecentTasks$1;-><init>(Lcom/android/server/wm/RecentTasks;)V
-PLcom/android/server/wm/RecentTasks$1;->onPointerEvent(Landroid/view/MotionEvent;)V
+PLcom/android/server/wm/RecentTasks$1;->lambda$onPointerEvent$0$RecentTasks$1(IIILjava/lang/Object;)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/ActivityStackSupervisor;)V
PLcom/android/server/wm/RecentTasks;->access$000(Lcom/android/server/wm/RecentTasks;)Z
-PLcom/android/server/wm/RecentTasks;->add(Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/RecentTasks;->access$100(Lcom/android/server/wm/RecentTasks;)Lcom/android/server/wm/ActivityTaskManagerService;
+HPLcom/android/server/wm/RecentTasks;->add(Lcom/android/server/wm/Task;)V
PLcom/android/server/wm/RecentTasks;->cleanupDisabledPackageTasksLocked(Ljava/lang/String;Ljava/util/Set;I)V
PLcom/android/server/wm/RecentTasks;->cleanupLocked(I)V
PLcom/android/server/wm/RecentTasks;->containsTaskId(II)Z
-PLcom/android/server/wm/RecentTasks;->findRemoveIndexForAddTask(Lcom/android/server/wm/Task;)I
-PLcom/android/server/wm/RecentTasks;->getAppTasksList(ILjava/lang/String;)Ljava/util/ArrayList;
+PLcom/android/server/wm/RecentTasks;->createRecentTaskInfo(Lcom/android/server/wm/Task;)Landroid/app/ActivityManager$RecentTaskInfo;
+PLcom/android/server/wm/RecentTasks;->dump(Ljava/io/PrintWriter;ZLjava/lang/String;)V
+HPLcom/android/server/wm/RecentTasks;->findRemoveIndexForAddTask(Lcom/android/server/wm/Task;)I
+HPLcom/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;
+HSPLcom/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;->getRecentTaskIds()Landroid/util/SparseBooleanArray;
-PLcom/android/server/wm/RecentTasks;->getRecentTasksImpl(IIZZII)Ljava/util/ArrayList;
+PLcom/android/server/wm/RecentTasks;->getRecentTasks(IIZZII)Landroid/content/pm/ParceledListSlice;
+HPLcom/android/server/wm/RecentTasks;->getRecentTasksImpl(IIZZII)Ljava/util/ArrayList;
PLcom/android/server/wm/RecentTasks;->getTask(I)Lcom/android/server/wm/Task;
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
-PLcom/android/server/wm/RecentTasks;->isCallerRecents(I)Z
-PLcom/android/server/wm/RecentTasks;->isInVisibleRange(Lcom/android/server/wm/Task;IIZ)Z
+HPLcom/android/server/wm/RecentTasks;->hasCompatibleActivityTypeAndWindowingMode(Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;)Z
+HPLcom/android/server/wm/RecentTasks;->isActiveRecentTask(Lcom/android/server/wm/Task;Landroid/util/SparseBooleanArray;)Z
+HSPLcom/android/server/wm/RecentTasks;->isCallerRecents(I)Z
+HPLcom/android/server/wm/RecentTasks;->isInVisibleRange(Lcom/android/server/wm/Task;IIZ)Z
+HSPLcom/android/server/wm/RecentTasks;->isRecentsComponentHomeActivity(I)Z
+PLcom/android/server/wm/RecentTasks;->isTrimmable(Lcom/android/server/wm/Task;)Z
+PLcom/android/server/wm/RecentTasks;->isUserRunning(II)Z
HPLcom/android/server/wm/RecentTasks;->isVisibleRecentTask(Lcom/android/server/wm/Task;)Z
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
+HSPLcom/android/server/wm/RecentTasks;->loadRecentsComponent(Landroid/content/res/Resources;)V
PLcom/android/server/wm/RecentTasks;->loadUserRecentsLocked(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;->onSystemReadyLocked()V
+HPLcom/android/server/wm/RecentTasks;->onPackagesSuspendedChanged([Ljava/lang/String;ZI)V
+HSPLcom/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;->remove(Lcom/android/server/wm/Task;)V
PLcom/android/server/wm/RecentTasks;->removeForAddTask(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/RecentTasks;->removeTasksByPackageName(Ljava/lang/String;I)V
-PLcom/android/server/wm/RecentTasks;->syncPersistentTaskIdsLocked()V
+PLcom/android/server/wm/RecentTasks;->resetFreezeTaskListReordering(Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/RecentTasks;->resetFreezeTaskListReorderingOnTimeout()V
+PLcom/android/server/wm/RecentTasks;->setFreezeTaskListReordering()V
+PLcom/android/server/wm/RecentTasks;->shouldPersistTaskLocked(Lcom/android/server/wm/Task;)Z
+HPLcom/android/server/wm/RecentTasks;->syncPersistentTaskIdsLocked()V
PLcom/android/server/wm/RecentTasks;->trimInactiveRecentTasks()V
PLcom/android/server/wm/RecentTasks;->usersWithRecentsLoadedLocked()[I
PLcom/android/server/wm/RecentsAnimation;-><clinit>()V
-PLcom/android/server/wm/RecentsAnimation;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStartController;Lcom/android/server/wm/WindowManagerService;Landroid/content/Intent;Landroid/content/ComponentName;ILcom/android/server/wm/WindowProcessController;)V
-PLcom/android/server/wm/RecentsAnimation;->finishAnimation(IZ)V
+HPLcom/android/server/wm/RecentsAnimation;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityStartController;Lcom/android/server/wm/WindowManagerService;Landroid/content/Intent;Landroid/content/ComponentName;ILcom/android/server/wm/WindowProcessController;)V
+HPLcom/android/server/wm/RecentsAnimation;->finishAnimation(IZ)V
PLcom/android/server/wm/RecentsAnimation;->getTargetActivity(Lcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/RecentsAnimation;->getTopNonAlwaysOnTopStack()Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/RecentsAnimation;->lambda$L-oo1O0uvOIOr4MDh9QYSeVU09U(Lcom/android/server/wm/RecentsAnimation;Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/RecentsAnimation;->lambda$finishAnimation$0$RecentsAnimation(IZLcom/android/server/wm/RecentsAnimationController;)V
+HPLcom/android/server/wm/RecentsAnimation;->lambda$finishAnimation$0$RecentsAnimation(IZLcom/android/server/wm/RecentsAnimationController;)V
PLcom/android/server/wm/RecentsAnimation;->matchesTarget(Lcom/android/server/wm/Task;)Z
PLcom/android/server/wm/RecentsAnimation;->notifyAnimationCancelBeforeStart(Landroid/view/IRecentsAnimationRunner;)V
PLcom/android/server/wm/RecentsAnimation;->onAnimationFinished(IZ)V
PLcom/android/server/wm/RecentsAnimation;->onStackOrderChanged(Lcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/RecentsAnimation;->preloadRecentsActivity()V
-PLcom/android/server/wm/RecentsAnimation;->startRecentsActivity(Landroid/view/IRecentsAnimationRunner;)V
+HPLcom/android/server/wm/RecentsAnimation;->startRecentsActivity(Landroid/view/IRecentsAnimationRunner;)V
PLcom/android/server/wm/RecentsAnimation;->startRecentsActivityInBackground(Ljava/lang/String;)V
PLcom/android/server/wm/RecentsAnimationController$1;-><init>(Lcom/android/server/wm/RecentsAnimationController;)V
+PLcom/android/server/wm/RecentsAnimationController$1;->continueDeferredCancel()V
+PLcom/android/server/wm/RecentsAnimationController$1;->onAppTransitionStartingLocked(IJJJ)I
PLcom/android/server/wm/RecentsAnimationController$2;-><init>(Lcom/android/server/wm/RecentsAnimationController;)V
-PLcom/android/server/wm/RecentsAnimationController$2;->finish(ZZ)V
+HPLcom/android/server/wm/RecentsAnimationController$2;->finish(ZZ)V
PLcom/android/server/wm/RecentsAnimationController$2;->hideCurrentInputMethod()V
+PLcom/android/server/wm/RecentsAnimationController$2;->screenshotTask(I)Landroid/app/ActivityManager$TaskSnapshot;
PLcom/android/server/wm/RecentsAnimationController$2;->setAnimationTargetsBehindSystemBars(Z)V
PLcom/android/server/wm/RecentsAnimationController$2;->setInputConsumerEnabled(Z)V
PLcom/android/server/wm/RecentsAnimationController$2;->setSplitScreenMinimized(Z)V
PLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;-><init>(Lcom/android/server/wm/RecentsAnimationController;Lcom/android/server/wm/Task;Z)V
PLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->access$1200(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
-PLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->access$600(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->createRemoteAnimationTarget()Landroid/view/RemoteAnimationTarget;
+HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->access$600(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)Lcom/android/server/wm/Task;
+HPLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->createRemoteAnimationTarget()Landroid/view/RemoteAnimationTarget;
PLcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
PLcom/android/server/wm/RecentsAnimationController;-><clinit>()V
PLcom/android/server/wm/RecentsAnimationController;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/IRecentsAnimationRunner;Lcom/android/server/wm/RecentsAnimationController$RecentsAnimationCallbacks;I)V
PLcom/android/server/wm/RecentsAnimationController;->access$000(Lcom/android/server/wm/RecentsAnimationController;)Lcom/android/server/wm/DisplayContent;
PLcom/android/server/wm/RecentsAnimationController;->access$100(Lcom/android/server/wm/RecentsAnimationController;)Z
PLcom/android/server/wm/RecentsAnimationController;->access$1002(Lcom/android/server/wm/RecentsAnimationController;Z)Z
-PLcom/android/server/wm/RecentsAnimationController;->access$1300(Lcom/android/server/wm/RecentsAnimationController;)Landroid/graphics/Rect;
-PLcom/android/server/wm/RecentsAnimationController;->access$400(Lcom/android/server/wm/RecentsAnimationController;)Lcom/android/server/wm/WindowManagerService;
-PLcom/android/server/wm/RecentsAnimationController;->access$500(Lcom/android/server/wm/RecentsAnimationController;)Ljava/util/ArrayList;
+HPLcom/android/server/wm/RecentsAnimationController;->access$1300(Lcom/android/server/wm/RecentsAnimationController;)Landroid/graphics/Rect;
+PLcom/android/server/wm/RecentsAnimationController;->access$200(Lcom/android/server/wm/RecentsAnimationController;)Z
+HPLcom/android/server/wm/RecentsAnimationController;->access$400(Lcom/android/server/wm/RecentsAnimationController;)Lcom/android/server/wm/WindowManagerService;
+HPLcom/android/server/wm/RecentsAnimationController;->access$500(Lcom/android/server/wm/RecentsAnimationController;)Ljava/util/ArrayList;
PLcom/android/server/wm/RecentsAnimationController;->access$700(Lcom/android/server/wm/RecentsAnimationController;)Lcom/android/server/wm/RecentsAnimationController$RecentsAnimationCallbacks;
PLcom/android/server/wm/RecentsAnimationController;->access$800(Lcom/android/server/wm/RecentsAnimationController;)I
PLcom/android/server/wm/RecentsAnimationController;->access$902(Lcom/android/server/wm/RecentsAnimationController;Z)Z
@@ -18411,69 +22305,77 @@ PLcom/android/server/wm/RecentsAnimationController;->cancelAnimation(ILjava/lang
PLcom/android/server/wm/RecentsAnimationController;->cancelAnimation(IZLjava/lang/String;)V
PLcom/android/server/wm/RecentsAnimationController;->checkAnimationReady(Lcom/android/server/wm/WallpaperController;)V
PLcom/android/server/wm/RecentsAnimationController;->cleanupAnimation(I)V
-PLcom/android/server/wm/RecentsAnimationController;->createAppAnimations()[Landroid/view/RemoteAnimationTarget;
+HPLcom/android/server/wm/RecentsAnimationController;->createAppAnimations()[Landroid/view/RemoteAnimationTarget;
PLcom/android/server/wm/RecentsAnimationController;->createWallpaperAnimations()[Landroid/view/RemoteAnimationTarget;
-PLcom/android/server/wm/RecentsAnimationController;->initialize(ILandroid/util/SparseBooleanArray;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/RecentsAnimationController;->isAnimatingApp(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/RecentsAnimationController;->isAnimatingTask(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/RecentsAnimationController;->isTargetApp(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/RecentsAnimationController;->isTargetOverWallpaper()Z
-PLcom/android/server/wm/RecentsAnimationController;->isWallpaperVisible(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/RecentsAnimationController;->lambda$initialize$1(Lcom/android/server/wm/Task;Ljava/util/ArrayList;)V
-PLcom/android/server/wm/RecentsAnimationController;->lambda$isAnimatingApp$5(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Ljava/lang/Boolean;
+HPLcom/android/server/wm/RecentsAnimationController;->initialize(ILandroid/util/SparseBooleanArray;Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/RecentsAnimationController;->isAnimatingApp(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/RecentsAnimationController;->isAnimatingTask(Lcom/android/server/wm/Task;)Z
+HPLcom/android/server/wm/RecentsAnimationController;->isTargetApp(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/RecentsAnimationController;->isTargetOverWallpaper()Z
+HPLcom/android/server/wm/RecentsAnimationController;->isWallpaperVisible(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/RecentsAnimationController;->lambda$initialize$1(Lcom/android/server/wm/Task;Ljava/util/ArrayList;)V
+HPLcom/android/server/wm/RecentsAnimationController;->lambda$isAnimatingApp$5(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Ljava/lang/Boolean;
PLcom/android/server/wm/RecentsAnimationController;->linkToDeathOfRunner()V
PLcom/android/server/wm/RecentsAnimationController;->removeAnimation(Lcom/android/server/wm/RecentsAnimationController$TaskAnimationAdapter;)V
PLcom/android/server/wm/RecentsAnimationController;->removeWallpaperAnimation(Lcom/android/server/wm/WallpaperAnimationAdapter;)V
-PLcom/android/server/wm/RecentsAnimationController;->shouldApplyInputConsumer(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/RecentsAnimationController;->scheduleFailsafe()V
+HPLcom/android/server/wm/RecentsAnimationController;->shouldApplyInputConsumer(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/RecentsAnimationController;->shouldDeferCancelUntilNextTransition()Z
PLcom/android/server/wm/RecentsAnimationController;->shouldDeferCancelWithScreenshot()Z
PLcom/android/server/wm/RecentsAnimationController;->startAnimation()V
PLcom/android/server/wm/RecentsAnimationController;->unlinkToDeathOfRunner()V
-PLcom/android/server/wm/RefreshRatePolicy;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/DisplayInfo;Lcom/android/server/wm/HighRefreshRateBlacklist;)V
-PLcom/android/server/wm/RefreshRatePolicy;->findLowRefreshRateModeId(Landroid/view/DisplayInfo;)I
-PLcom/android/server/wm/RefreshRatePolicy;->getPreferredModeId(Lcom/android/server/wm/WindowState;)I
+HSPLcom/android/server/wm/RefreshRatePolicy;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/DisplayInfo;Lcom/android/server/wm/HighRefreshRateBlacklist;)V
+HPLcom/android/server/wm/RefreshRatePolicy;->addNonHighRefreshRatePackage(Ljava/lang/String;)V
+HSPLcom/android/server/wm/RefreshRatePolicy;->findLowRefreshRateModeId(Landroid/view/DisplayInfo;)I
+HPLcom/android/server/wm/RefreshRatePolicy;->getPreferredModeId(Lcom/android/server/wm/WindowState;)I
+HPLcom/android/server/wm/RefreshRatePolicy;->removeNonHighRefreshRatePackage(Ljava/lang/String;)V
PLcom/android/server/wm/RemoteAnimationController$FinishedCallback;-><init>(Lcom/android/server/wm/RemoteAnimationController;)V
PLcom/android/server/wm/RemoteAnimationController$FinishedCallback;->onAnimationFinished()V
PLcom/android/server/wm/RemoteAnimationController$FinishedCallback;->release()V
PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;-><init>(Lcom/android/server/wm/RemoteAnimationController;Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;Landroid/graphics/Point;Landroid/graphics/Rect;)V
PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->access$000(Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;)Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
+PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->dumpDebug(Landroid/util/proto/ProtoOutputStream;)V
PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->getDurationHint()J
PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->getShowWallpaper()Z
PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->getStatusBarTransitionsStartTime()J
+PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->onAnimationCancelled(Landroid/view/SurfaceControl;)V
PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
-PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;->writeToProto(Landroid/util/proto/ProtoOutputStream;)V
PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;-><init>(Lcom/android/server/wm/RemoteAnimationController;Lcom/android/server/wm/WindowContainer;Landroid/graphics/Point;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;->createRemoteAnimationTarget()Landroid/view/RemoteAnimationTarget;
PLcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;->getMode()I
PLcom/android/server/wm/RemoteAnimationController;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/RemoteAnimationAdapter;Landroid/os/Handler;)V
PLcom/android/server/wm/RemoteAnimationController;->access$100(Lcom/android/server/wm/RemoteAnimationController;)V
PLcom/android/server/wm/RemoteAnimationController;->access$300(Lcom/android/server/wm/RemoteAnimationController;)Landroid/view/RemoteAnimationAdapter;
-PLcom/android/server/wm/RemoteAnimationController;->binderDied()V
+PLcom/android/server/wm/RemoteAnimationController;->access$400(Lcom/android/server/wm/RemoteAnimationController;)Ljava/util/ArrayList;
PLcom/android/server/wm/RemoteAnimationController;->cancelAnimation(Ljava/lang/String;)V
PLcom/android/server/wm/RemoteAnimationController;->createAppAnimations()[Landroid/view/RemoteAnimationTarget;
PLcom/android/server/wm/RemoteAnimationController;->createRemoteAnimationRecord(Lcom/android/server/wm/WindowContainer;Landroid/graphics/Point;Landroid/graphics/Rect;Landroid/graphics/Rect;)Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;
PLcom/android/server/wm/RemoteAnimationController;->createWallpaperAnimations()[Landroid/view/RemoteAnimationTarget;
PLcom/android/server/wm/RemoteAnimationController;->goodToGo()V
PLcom/android/server/wm/RemoteAnimationController;->invokeAnimationCancelled()V
+PLcom/android/server/wm/RemoteAnimationController;->lambda$createWallpaperAnimations$2$RemoteAnimationController(Lcom/android/server/wm/WallpaperAnimationAdapter;)V
PLcom/android/server/wm/RemoteAnimationController;->lambda$goodToGo$1$RemoteAnimationController([Landroid/view/RemoteAnimationTarget;[Landroid/view/RemoteAnimationTarget;)V
PLcom/android/server/wm/RemoteAnimationController;->linkToDeathOfRunner()V
PLcom/android/server/wm/RemoteAnimationController;->onAnimationFinished()V
PLcom/android/server/wm/RemoteAnimationController;->releaseFinishedCallback()V
PLcom/android/server/wm/RemoteAnimationController;->setRunningRemoteAnimation(Z)V
PLcom/android/server/wm/RemoteAnimationController;->unlinkToDeathOfRunner()V
-PLcom/android/server/wm/ResetTargetTaskHelper;-><init>()V
+HSPLcom/android/server/wm/ResetTargetTaskHelper;-><init>()V
+PLcom/android/server/wm/ResetTargetTaskHelper;->finishActivities(Ljava/util/ArrayList;Ljava/lang/String;)V
PLcom/android/server/wm/ResetTargetTaskHelper;->lambda$APiSnEpUwnLFg5o4cp87NyJw4j4(Lcom/android/server/wm/ResetTargetTaskHelper;Lcom/android/server/wm/Task;)V
PLcom/android/server/wm/ResetTargetTaskHelper;->lambda$O-Gmp4WswvLHsJ0Qd1g0pv2tF14(Lcom/android/server/wm/ResetTargetTaskHelper;Lcom/android/server/wm/ActivityRecord;Z)Z
PLcom/android/server/wm/ResetTargetTaskHelper;->process(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/Task;Z)Landroid/app/ActivityOptions;
PLcom/android/server/wm/ResetTargetTaskHelper;->processActivity(Lcom/android/server/wm/ActivityRecord;Z)Z
PLcom/android/server/wm/ResetTargetTaskHelper;->processCreatedTasks()V
PLcom/android/server/wm/ResetTargetTaskHelper;->processTask(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/ResetTargetTaskHelper;->reset(Lcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/ResetTargetTaskHelper;->reset(Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/ResetTargetTaskHelper;->takeOption(Lcom/android/server/wm/ActivityRecord;Z)Z
HSPLcom/android/server/wm/RootActivityContainer$FindTaskResult;-><init>()V
-PLcom/android/server/wm/RootActivityContainer$FindTaskResult;->apply(Lcom/android/server/wm/Task;)Z
-PLcom/android/server/wm/RootActivityContainer$FindTaskResult;->apply(Ljava/lang/Object;)Z
+HPLcom/android/server/wm/RootActivityContainer$FindTaskResult;->apply(Lcom/android/server/wm/Task;)Ljava/lang/Boolean;
+HPLcom/android/server/wm/RootActivityContainer$FindTaskResult;->apply(Ljava/lang/Object;)Ljava/lang/Object;
PLcom/android/server/wm/RootActivityContainer$FindTaskResult;->clear()V
-PLcom/android/server/wm/RootActivityContainer$FindTaskResult;->process(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityStack;)V
+HPLcom/android/server/wm/RootActivityContainer$FindTaskResult;->process(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityStack;)V
+PLcom/android/server/wm/RootActivityContainer$FindTaskResult;->setTo(Lcom/android/server/wm/RootActivityContainer$FindTaskResult;)V
HSPLcom/android/server/wm/RootActivityContainer$FinishDisabledPackageActivitiesHelper;-><init>(Lcom/android/server/wm/RootActivityContainer;)V
PLcom/android/server/wm/RootActivityContainer$FinishDisabledPackageActivitiesHelper;->lambda$9-v97dlGzOZFE2uue1WUlIhpevA(Lcom/android/server/wm/RootActivityContainer$FinishDisabledPackageActivitiesHelper;Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/RootActivityContainer$FinishDisabledPackageActivitiesHelper;->process(Ljava/lang/String;Ljava/util/Set;ZZI)Z
@@ -18482,195 +22384,317 @@ PLcom/android/server/wm/RootActivityContainer$FinishDisabledPackageActivitiesHel
PLcom/android/server/wm/RootActivityContainer$SleepTokenImpl;-><init>(Lcom/android/server/wm/RootActivityContainer;Ljava/lang/String;I)V
PLcom/android/server/wm/RootActivityContainer$SleepTokenImpl;->access$000(Lcom/android/server/wm/RootActivityContainer$SleepTokenImpl;)I
PLcom/android/server/wm/RootActivityContainer$SleepTokenImpl;->release()V
+PLcom/android/server/wm/RootActivityContainer$SleepTokenImpl;->toString()Ljava/lang/String;
HSPLcom/android/server/wm/RootActivityContainer;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;)V
-PLcom/android/server/wm/RootActivityContainer;->access$100(Lcom/android/server/wm/RootActivityContainer;)Lcom/android/server/wm/RootWindowContainer;
-PLcom/android/server/wm/RootActivityContainer;->access$200(Lcom/android/server/wm/RootActivityContainer;Lcom/android/server/wm/RootActivityContainer$SleepTokenImpl;)V
-PLcom/android/server/wm/RootActivityContainer;->addChild(Lcom/android/server/wm/ActivityDisplay;I)V
-PLcom/android/server/wm/RootActivityContainer;->allPausedActivitiesComplete()Z
+PLcom/android/server/wm/RootActivityContainer;->access$100(Lcom/android/server/wm/RootActivityContainer;Lcom/android/server/wm/RootActivityContainer$SleepTokenImpl;)V
+HSPLcom/android/server/wm/RootActivityContainer;->addChild(Lcom/android/server/wm/DisplayContent;I)V
+PLcom/android/server/wm/RootActivityContainer;->addStartingWindowsForVisibleActivities()V
+HPLcom/android/server/wm/RootActivityContainer;->allPausedActivitiesComplete()Z
PLcom/android/server/wm/RootActivityContainer;->allResumedActivitiesIdle()Z
-PLcom/android/server/wm/RootActivityContainer;->allResumedActivitiesVisible()Z
+HPLcom/android/server/wm/RootActivityContainer;->allResumedActivitiesVisible()Z
+PLcom/android/server/wm/RootActivityContainer;->anyTaskForId(I)Lcom/android/server/wm/Task;
PLcom/android/server/wm/RootActivityContainer;->anyTaskForId(II)Lcom/android/server/wm/Task;
HPLcom/android/server/wm/RootActivityContainer;->anyTaskForId(IILandroid/app/ActivityOptions;Z)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/RootActivityContainer;->applySleepTokens(Z)V
-PLcom/android/server/wm/RootActivityContainer;->attachApplication(Lcom/android/server/wm/WindowProcessController;)Z
-PLcom/android/server/wm/RootActivityContainer;->calculateDefaultMinimalSizeOfResizeableTasks()V
+HSPLcom/android/server/wm/RootActivityContainer;->applySleepTokens(Z)V
+HSPLcom/android/server/wm/RootActivityContainer;->attachApplication(Lcom/android/server/wm/WindowProcessController;)Z
+HSPLcom/android/server/wm/RootActivityContainer;->calculateDefaultMinimalSizeOfResizeableTasks()V
PLcom/android/server/wm/RootActivityContainer;->canLaunchOnDisplay(Lcom/android/server/wm/ActivityRecord;I)Z
PLcom/android/server/wm/RootActivityContainer;->canStartHomeOnDisplay(Landroid/content/pm/ActivityInfo;IZ)Z
-PLcom/android/server/wm/RootActivityContainer;->cancelInitializingActivities()V
+HPLcom/android/server/wm/RootActivityContainer;->cancelInitializingActivities()V
PLcom/android/server/wm/RootActivityContainer;->continueUpdateBounds(I)V
PLcom/android/server/wm/RootActivityContainer;->createSleepToken(Ljava/lang/String;I)Lcom/android/server/wm/ActivityTaskManagerInternal$SleepToken;
-PLcom/android/server/wm/RootActivityContainer;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;IZ)V
-PLcom/android/server/wm/RootActivityContainer;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;IZZ)V
+HSPLcom/android/server/wm/RootActivityContainer;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/wm/RootActivityContainer;->dumpActivities(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;ZZLjava/lang/String;)Z
+PLcom/android/server/wm/RootActivityContainer;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+HSPLcom/android/server/wm/RootActivityContainer;->dumpDisplayConfigs(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/wm/RootActivityContainer;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;IZ)V
+HSPLcom/android/server/wm/RootActivityContainer;->ensureActivitiesVisible(Lcom/android/server/wm/ActivityRecord;IZZ)V
PLcom/android/server/wm/RootActivityContainer;->ensureVisibilityAndConfig(Lcom/android/server/wm/ActivityRecord;IZZ)Z
PLcom/android/server/wm/RootActivityContainer;->executeAppTransitionForAllDisplay()V
+PLcom/android/server/wm/RootActivityContainer;->findActivity(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Z)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/RootActivityContainer;->findStackBehind(Lcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/RootActivityContainer;->findTask(Lcom/android/server/wm/ActivityRecord;I)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/RootActivityContainer;->finishDisabledPackageActivities(Ljava/lang/String;Ljava/util/Set;ZZI)Z
PLcom/android/server/wm/RootActivityContainer;->finishTopCrashedActivities(Lcom/android/server/wm/WindowProcessController;Ljava/lang/String;)I
-PLcom/android/server/wm/RootActivityContainer;->getActivityDisplay(I)Lcom/android/server/wm/ActivityDisplay;
-PLcom/android/server/wm/RootActivityContainer;->getActivityDisplayOrCreate(I)Lcom/android/server/wm/ActivityDisplay;
-PLcom/android/server/wm/RootActivityContainer;->getChildAt(I)Lcom/android/server/wm/ActivityDisplay;
-PLcom/android/server/wm/RootActivityContainer;->getChildAt(I)Lcom/android/server/wm/ConfigurationContainer;
+PLcom/android/server/wm/RootActivityContainer;->finishVoiceTask(Landroid/service/voice/IVoiceInteractionSession;)V
+HSPLcom/android/server/wm/RootActivityContainer;->getChildAt(I)Lcom/android/server/wm/ConfigurationContainer;
+HSPLcom/android/server/wm/RootActivityContainer;->getChildAt(I)Lcom/android/server/wm/DisplayContent;
HSPLcom/android/server/wm/RootActivityContainer;->getChildCount()I
-PLcom/android/server/wm/RootActivityContainer;->getDefaultDisplay()Lcom/android/server/wm/ActivityDisplay;
+HSPLcom/android/server/wm/RootActivityContainer;->getDefaultDisplay()Lcom/android/server/wm/DisplayContent;
+HSPLcom/android/server/wm/RootActivityContainer;->getDisplayContent(I)Lcom/android/server/wm/DisplayContent;
+PLcom/android/server/wm/RootActivityContainer;->getDisplayContentOrCreate(I)Lcom/android/server/wm/DisplayContent;
PLcom/android/server/wm/RootActivityContainer;->getDisplayOverrideConfiguration(I)Landroid/content/res/Configuration;
+PLcom/android/server/wm/RootActivityContainer;->getDumpActivities(Ljava/lang/String;ZZ)Ljava/util/ArrayList;
+PLcom/android/server/wm/RootActivityContainer;->getLaunchStack(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;Z)Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/RootActivityContainer;->getLaunchStack(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;ZLcom/android/server/wm/LaunchParamsController$LaunchParams;II)Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/RootActivityContainer;->getNextFocusableStack(Lcom/android/server/wm/ActivityStack;Z)Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/RootActivityContainer;->getRunningTasks(ILjava/util/List;IIIZZLandroid/util/ArraySet;)V
PLcom/android/server/wm/RootActivityContainer;->getStack(I)Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/RootActivityContainer;->getStack(II)Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/RootActivityContainer;->getStackInfo(I)Landroid/app/ActivityManager$StackInfo;
+HPLcom/android/server/wm/RootActivityContainer;->getStackInfo(I)Landroid/app/ActivityManager$StackInfo;
PLcom/android/server/wm/RootActivityContainer;->getStackInfo(II)Landroid/app/ActivityManager$StackInfo;
-PLcom/android/server/wm/RootActivityContainer;->getStackInfo(Lcom/android/server/wm/ActivityStack;)Landroid/app/ActivityManager$StackInfo;
+HPLcom/android/server/wm/RootActivityContainer;->getStackInfo(Lcom/android/server/wm/ActivityStack;)Landroid/app/ActivityManager$StackInfo;
HSPLcom/android/server/wm/RootActivityContainer;->getTopDisplayFocusedStack()Lcom/android/server/wm/ActivityStack;
HSPLcom/android/server/wm/RootActivityContainer;->getTopResumedActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/RootActivityContainer;->getValidLaunchStackOnDisplay(ILcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;Landroid/app/ActivityOptions;Lcom/android/server/wm/LaunchParamsController$LaunchParams;)Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/RootActivityContainer;->handleAppDied(Lcom/android/server/wm/WindowProcessController;)Z
-PLcom/android/server/wm/RootActivityContainer;->hasAwakeDisplay()Z
+PLcom/android/server/wm/RootActivityContainer;->getTopVisibleActivities()Ljava/util/List;
+HPLcom/android/server/wm/RootActivityContainer;->getValidLaunchStackOnDisplay(ILcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/Task;Landroid/app/ActivityOptions;Lcom/android/server/wm/LaunchParamsController$LaunchParams;)Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/RootActivityContainer;->handleAppDied(Lcom/android/server/wm/WindowProcessController;)Z
+HSPLcom/android/server/wm/RootActivityContainer;->hasAwakeDisplay()Z
PLcom/android/server/wm/RootActivityContainer;->invalidateTaskLayers()V
-PLcom/android/server/wm/RootActivityContainer;->isFocusable(Lcom/android/server/wm/ConfigurationContainer;Z)Z
+HSPLcom/android/server/wm/RootActivityContainer;->isFocusable(Lcom/android/server/wm/ConfigurationContainer;Z)Z
PLcom/android/server/wm/RootActivityContainer;->isInAnyStack(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/RootActivityContainer;->isTopDisplayFocusedStack(Lcom/android/server/wm/ActivityStack;)Z
PLcom/android/server/wm/RootActivityContainer;->isValidLaunchStack(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/ActivityRecord;I)Z
+PLcom/android/server/wm/RootActivityContainer;->lambda$-T1KVP2TtHv3l0Zlmfrn4vxoQQc(Lcom/android/server/wm/ActivityRecord;IZLandroid/content/Intent;Landroid/content/ComponentName;)Z
PLcom/android/server/wm/RootActivityContainer;->lambda$addStartingWindowsForVisibleActivities$0(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/RootActivityContainer;->lambda$closeSystemDialogs$1(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/RootActivityContainer;->lambda$eTBwQBLMAzyK1I2vbgH_wbrf5n0(Lcom/android/server/wm/RootActivityContainer;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/RootActivityContainer;->lambda$m1XaUaXYDseEoG-rccxbUydXgO8(Lcom/android/server/wm/RootActivityContainer;Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/RootActivityContainer;->lambda$kAsUts9ICoBFeiu2wLtN3N0jVY4(Lcom/android/server/wm/Task;Landroid/app/ActivityManager$StackInfo;[I)V
+HPLcom/android/server/wm/RootActivityContainer;->lambda$m1XaUaXYDseEoG-rccxbUydXgO8(Lcom/android/server/wm/RootActivityContainer;Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/RootActivityContainer;->lambda$xJQTdvTIrdue_psRt_XJNwTCmzA(Lcom/android/server/wm/ActivityRecord;Landroid/content/pm/ApplicationInfo;ILjava/lang/String;)V
+PLcom/android/server/wm/RootActivityContainer;->matchesActivity(Lcom/android/server/wm/ActivityRecord;IZLandroid/content/Intent;Landroid/content/ComponentName;)Z
+PLcom/android/server/wm/RootActivityContainer;->moveActivityToPinnedStack(Lcom/android/server/wm/ActivityRecord;Landroid/graphics/Rect;FLjava/lang/String;)V
PLcom/android/server/wm/RootActivityContainer;->onChildPositionChanged(Lcom/android/server/wm/DisplayContent;I)V
-PLcom/android/server/wm/RootActivityContainer;->onDisplayChanged(I)V
-PLcom/android/server/wm/RootActivityContainer;->positionChildAt(Lcom/android/server/wm/DisplayContent;I)V
-PLcom/android/server/wm/RootActivityContainer;->putStacksToSleep(ZZ)Z
-PLcom/android/server/wm/RootActivityContainer;->rankTaskLayerForActivity(Lcom/android/server/wm/ActivityRecord;)V
+HSPLcom/android/server/wm/RootActivityContainer;->onDisplayChanged(I)V
+HSPLcom/android/server/wm/RootActivityContainer;->positionChildAt(Lcom/android/server/wm/DisplayContent;I)V
+HPLcom/android/server/wm/RootActivityContainer;->processTaskForStackInfo(Lcom/android/server/wm/Task;Landroid/app/ActivityManager$StackInfo;[I)V
+HPLcom/android/server/wm/RootActivityContainer;->putStacksToSleep(ZZ)Z
+HPLcom/android/server/wm/RootActivityContainer;->rankTaskLayerForActivity(Lcom/android/server/wm/ActivityRecord;)V
HSPLcom/android/server/wm/RootActivityContainer;->rankTaskLayersIfNeeded()V
PLcom/android/server/wm/RootActivityContainer;->removeSleepToken(Lcom/android/server/wm/RootActivityContainer$SleepTokenImpl;)V
PLcom/android/server/wm/RootActivityContainer;->resolveActivityType(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;Lcom/android/server/wm/Task;)I
PLcom/android/server/wm/RootActivityContainer;->resolveHomeActivity(ILandroid/content/Intent;)Landroid/content/pm/ActivityInfo;
PLcom/android/server/wm/RootActivityContainer;->resumeFocusedStacksTopActivities()Z
-PLcom/android/server/wm/RootActivityContainer;->resumeFocusedStacksTopActivities(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Z
+HPLcom/android/server/wm/RootActivityContainer;->resumeFocusedStacksTopActivities(Lcom/android/server/wm/ActivityStack;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityOptions;)Z
PLcom/android/server/wm/RootActivityContainer;->resumeHomeActivity(Lcom/android/server/wm/ActivityRecord;Ljava/lang/String;I)Z
PLcom/android/server/wm/RootActivityContainer;->sendPowerHintForLaunchEndIfNeeded()V
PLcom/android/server/wm/RootActivityContainer;->sendPowerHintForLaunchStartIfNeeded(ZLcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/RootActivityContainer;->setDockedStackMinimized(Z)V
-PLcom/android/server/wm/RootActivityContainer;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/RootActivityContainer;->setWindowManager(Lcom/android/server/wm/WindowManagerService;)V
HPLcom/android/server/wm/RootActivityContainer;->startActivityForAttachedApplicationIfNeeded(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/RootActivityContainer;->startHomeOnAllDisplays(ILjava/lang/String;)Z
PLcom/android/server/wm/RootActivityContainer;->startHomeOnDisplay(ILjava/lang/String;I)Z
PLcom/android/server/wm/RootActivityContainer;->startHomeOnDisplay(ILjava/lang/String;IZZ)Z
PLcom/android/server/wm/RootActivityContainer;->startHomeOnEmptyDisplays(Ljava/lang/String;)V
-PLcom/android/server/wm/RootActivityContainer;->topRunningActivity()Lcom/android/server/wm/ActivityRecord;
+HSPLcom/android/server/wm/RootActivityContainer;->topRunningActivity()Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/RootActivityContainer;->updateActivityApplicationInfo(Landroid/content/pm/ApplicationInfo;)V
PLcom/android/server/wm/RootActivityContainer;->updateActivityApplicationInfo(Lcom/android/server/wm/ActivityRecord;Landroid/content/pm/ApplicationInfo;ILjava/lang/String;)V
PLcom/android/server/wm/RootActivityContainer;->updatePreviousProcess(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/RootActivityContainer;->updateUIDsPresentOnDisplay()V
+HSPLcom/android/server/wm/RootActivityContainer;->updateUIDsPresentOnDisplay()V
PLcom/android/server/wm/RootActivityContainer;->updateUserStack(ILcom/android/server/wm/ActivityStack;)V
-PLcom/android/server/wm/RootWindowContainer$MyHandler;-><init>(Lcom/android/server/wm/RootWindowContainer;Landroid/os/Looper;)V
-PLcom/android/server/wm/RootWindowContainer$MyHandler;->handleMessage(Landroid/os/Message;)V
-PLcom/android/server/wm/RootWindowContainer;-><clinit>()V
-PLcom/android/server/wm/RootWindowContainer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/RootWindowContainer;->applySurfaceChangesTransaction(Z)V
-PLcom/android/server/wm/RootWindowContainer;->checkAppTransitionReady(Lcom/android/server/wm/WindowSurfacePlacer;)V
-PLcom/android/server/wm/RootWindowContainer;->copyAnimToLayoutParams()Z
-PLcom/android/server/wm/RootWindowContainer;->forAllDisplayPolicies(Ljava/util/function/Consumer;)V
-PLcom/android/server/wm/RootWindowContainer;->forAllDisplays(Ljava/util/function/Consumer;)V
+HSPLcom/android/server/wm/RootWindowContainer$MyHandler;-><init>(Lcom/android/server/wm/RootWindowContainer;Landroid/os/Looper;)V
+HSPLcom/android/server/wm/RootWindowContainer$MyHandler;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/wm/RootWindowContainer;-><clinit>()V
+HSPLcom/android/server/wm/RootWindowContainer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/RootWindowContainer;->applySurfaceChangesTransaction(Z)V
+HSPLcom/android/server/wm/RootWindowContainer;->checkAppTransitionReady(Lcom/android/server/wm/WindowSurfacePlacer;)V
+HSPLcom/android/server/wm/RootWindowContainer;->copyAnimToLayoutParams()Z
+PLcom/android/server/wm/RootWindowContainer;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+PLcom/android/server/wm/RootWindowContainer;->dumpDisplayContents(Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/RootWindowContainer;->dumpLayoutNeededDisplayIds(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/wm/RootWindowContainer;->forAllDisplayPolicies(Ljava/util/function/Consumer;)V
+HSPLcom/android/server/wm/RootWindowContainer;->forAllDisplays(Ljava/util/function/Consumer;)V
PLcom/android/server/wm/RootWindowContainer;->getActivityRecord(Landroid/os/IBinder;)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/RootWindowContainer;->getCurrentInputMethodWindow()Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/RootWindowContainer;->getDisplayContent(I)Lcom/android/server/wm/DisplayContent;
-PLcom/android/server/wm/RootWindowContainer;->getStack(II)Lcom/android/server/wm/ActivityStack;
-PLcom/android/server/wm/RootWindowContainer;->getTopFocusedDisplayContent()Lcom/android/server/wm/DisplayContent;
+HSPLcom/android/server/wm/RootWindowContainer;->getDisplayContent(I)Lcom/android/server/wm/DisplayContent;
+HSPLcom/android/server/wm/RootWindowContainer;->getStack(II)Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/RootWindowContainer;->getTopFocusedDisplayContent()Lcom/android/server/wm/DisplayContent;
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
-PLcom/android/server/wm/RootWindowContainer;->handleResizingWindows()V
-PLcom/android/server/wm/RootWindowContainer;->hasPendingLayoutChanges(Lcom/android/server/wm/WindowAnimator;)Z
+HSPLcom/android/server/wm/RootWindowContainer;->handleResizingWindows()V
+HSPLcom/android/server/wm/RootWindowContainer;->hasPendingLayoutChanges(Lcom/android/server/wm/WindowAnimator;)Z
PLcom/android/server/wm/RootWindowContainer;->isAnyNonToastWindowVisibleForUid(I)Z
-PLcom/android/server/wm/RootWindowContainer;->isLayoutNeeded()Z
+HSPLcom/android/server/wm/RootWindowContainer;->isLayoutNeeded()Z
HPLcom/android/server/wm/RootWindowContainer;->isOnTop()Z
+PLcom/android/server/wm/RootWindowContainer;->lambda$dumpDebug$11(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/RootWindowContainer;->lambda$dumpWindowsNoHeader$10(Ljava/util/ArrayList;Ljava/io/PrintWriter;[IZLcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/RootWindowContainer;->lambda$isAnyNonToastWindowVisibleForUid$3(ILcom/android/server/wm/WindowState;)Z
PLcom/android/server/wm/RootWindowContainer;->lambda$new$0$RootWindowContainer(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/RootWindowContainer;->lambda$performSurfacePlacementNoTrace$9(Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/RootWindowContainer;->lambda$performSurfacePlacementNoTrace$9(Lcom/android/server/wm/DisplayContent;)V
PLcom/android/server/wm/RootWindowContainer;->lambda$setSecureSurfaceState$4(IZLcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/RootWindowContainer;->lambda$static$1(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/RootWindowContainer;->onChildPositionChanged(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/RootWindowContainer;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/RootWindowContainer;->onSettingsRetrieved()V
-PLcom/android/server/wm/RootWindowContainer;->performSurfacePlacement(Z)V
-HPLcom/android/server/wm/RootWindowContainer;->performSurfacePlacementNoTrace(Z)V
-PLcom/android/server/wm/RootWindowContainer;->positionChildAt(ILcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/RootWindowContainer;->lambda$updateHiddenWhileSuspendedState$5(Landroid/util/ArraySet;ZLcom/android/server/wm/WindowState;)V
+HSPLcom/android/server/wm/RootWindowContainer;->onChildPositionChanged(Lcom/android/server/wm/WindowContainer;)V
+HSPLcom/android/server/wm/RootWindowContainer;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/RootWindowContainer;->onSettingsRetrieved()V
+HSPLcom/android/server/wm/RootWindowContainer;->performSurfacePlacement(Z)V
+HSPLcom/android/server/wm/RootWindowContainer;->performSurfacePlacementNoTrace(Z)V
+HSPLcom/android/server/wm/RootWindowContainer;->positionChildAt(ILcom/android/server/wm/DisplayContent;)V
PLcom/android/server/wm/RootWindowContainer;->positionChildAt(ILcom/android/server/wm/DisplayContent;Z)V
PLcom/android/server/wm/RootWindowContainer;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
-PLcom/android/server/wm/RootWindowContainer;->prepareFreezingTaskBounds()V
+HSPLcom/android/server/wm/RootWindowContainer;->prepareFreezingTaskBounds()V
PLcom/android/server/wm/RootWindowContainer;->removeReplacedWindows()V
-PLcom/android/server/wm/RootWindowContainer;->scheduleAnimation()V
-PLcom/android/server/wm/RootWindowContainer;->setDisplayOverrideConfigurationIfNeeded(Landroid/content/res/Configuration;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/RootWindowContainer;->setRootActivityContainer(Lcom/android/server/wm/RootActivityContainer;)V
+HSPLcom/android/server/wm/RootWindowContainer;->scheduleAnimation()V
+HSPLcom/android/server/wm/RootWindowContainer;->setDisplayOverrideConfigurationIfNeeded(Landroid/content/res/Configuration;Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/RootWindowContainer;->setRootActivityContainer(Lcom/android/server/wm/RootActivityContainer;)V
PLcom/android/server/wm/RootWindowContainer;->setSecureSurfaceState(IZ)V
-PLcom/android/server/wm/RootWindowContainer;->updateFocusedWindowLocked(IZ)Z
+HPLcom/android/server/wm/RootWindowContainer;->toBrightnessOverride(F)I
+HSPLcom/android/server/wm/RootWindowContainer;->updateFocusedWindowLocked(IZ)Z
+PLcom/android/server/wm/RootWindowContainer;->updateHiddenWhileSuspendedState(Landroid/util/ArraySet;Z)V
HSPLcom/android/server/wm/RunningTasks;-><clinit>()V
HSPLcom/android/server/wm/RunningTasks;-><init>()V
PLcom/android/server/wm/RunningTasks;->createRunningTaskInfo(Lcom/android/server/wm/Task;)Landroid/app/ActivityManager$RunningTaskInfo;
-PLcom/android/server/wm/RunningTasks;->getTasks(ILjava/util/List;IILjava/util/ArrayList;IZZLandroid/util/ArraySet;)V
+HPLcom/android/server/wm/RunningTasks;->getTasks(ILjava/util/List;IILcom/android/server/wm/RootActivityContainer;IZZLandroid/util/ArraySet;)V
+HPLcom/android/server/wm/RunningTasks;->lambda$hR_Ryk91b0B2BdJN9eCfQfPwC3g(Lcom/android/server/wm/RunningTasks;Lcom/android/server/wm/Task;)V
HPLcom/android/server/wm/RunningTasks;->lambda$static$0(Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;)I
-PLcom/android/server/wm/SafeActivityOptions;-><init>(Landroid/app/ActivityOptions;)V
-PLcom/android/server/wm/SafeActivityOptions;->abort(Lcom/android/server/wm/SafeActivityOptions;)V
+HPLcom/android/server/wm/RunningTasks;->processTask(Lcom/android/server/wm/Task;)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/ActivityStackSupervisor;Landroid/app/ActivityOptions;II)V
-HPLcom/android/server/wm/SafeActivityOptions;->fromBundle(Landroid/os/Bundle;)Lcom/android/server/wm/SafeActivityOptions;
+HSPLcom/android/server/wm/SafeActivityOptions;->fromBundle(Landroid/os/Bundle;)Lcom/android/server/wm/SafeActivityOptions;
PLcom/android/server/wm/SafeActivityOptions;->getOptions(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Lcom/android/server/wm/WindowProcessController;Lcom/android/server/wm/ActivityStackSupervisor;)Landroid/app/ActivityOptions;
+PLcom/android/server/wm/SafeActivityOptions;->getOptions(Lcom/android/server/wm/ActivityStackSupervisor;)Landroid/app/ActivityOptions;
PLcom/android/server/wm/SafeActivityOptions;->mergeActivityOptions(Landroid/app/ActivityOptions;Landroid/app/ActivityOptions;)Landroid/app/ActivityOptions;
PLcom/android/server/wm/SafeActivityOptions;->popAppVerificationBundle()Landroid/os/Bundle;
PLcom/android/server/wm/SafeActivityOptions;->setCallingPidUidForRemoteAnimationAdapter(Landroid/app/ActivityOptions;II)V
+PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;-><init>(Lcom/android/server/wm/ScreenRotationAnimation;)V
+PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->cancel()V
+PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->createWindowAnimationSpec(Landroid/view/animation/Animation;)Lcom/android/server/wm/WindowAnimationSpec;
+PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->initializeBuilder()Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;
+HPLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->isAnimating()Z
+PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->lambda$R3Rh3gcwK_nBUAZq4hlWwmQXjXA(Lcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;)V
+HPLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->onAnimationEnd()V
+PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startAnimation()V
+PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startAnimation(Lcom/android/server/wm/SurfaceAnimator$Animatable;Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Ljava/lang/Runnable;)Lcom/android/server/wm/SurfaceAnimator;
+PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startDisplayRotation()Lcom/android/server/wm/SurfaceAnimator;
+PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startEnterBlackFrameAnimation()Lcom/android/server/wm/SurfaceAnimator;
+PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startScreenshotAlphaAnimation()Lcom/android/server/wm/SurfaceAnimator;
+PLcom/android/server/wm/ScreenRotationAnimation$SurfaceRotationAnimationController;->startScreenshotRotationAnimation()Lcom/android/server/wm/SurfaceAnimator;
+PLcom/android/server/wm/ScreenRotationAnimation;-><init>(Landroid/content/Context;Lcom/android/server/wm/DisplayContent;ZZLcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/ScreenRotationAnimation;->access$000(Lcom/android/server/wm/ScreenRotationAnimation;)Lcom/android/server/wm/BlackFrame;
+PLcom/android/server/wm/ScreenRotationAnimation;->access$100(Lcom/android/server/wm/ScreenRotationAnimation;)Lcom/android/server/wm/BlackFrame;
+PLcom/android/server/wm/ScreenRotationAnimation;->access$1000(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/view/animation/Animation;
+PLcom/android/server/wm/ScreenRotationAnimation;->access$1100(Lcom/android/server/wm/ScreenRotationAnimation;)Lcom/android/server/wm/WindowManagerService;
+PLcom/android/server/wm/ScreenRotationAnimation;->access$200(Lcom/android/server/wm/ScreenRotationAnimation;)Lcom/android/server/wm/DisplayContent;
+PLcom/android/server/wm/ScreenRotationAnimation;->access$300(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/view/animation/Animation;
+PLcom/android/server/wm/ScreenRotationAnimation;->access$400(Lcom/android/server/wm/ScreenRotationAnimation;)I
+PLcom/android/server/wm/ScreenRotationAnimation;->access$500(Lcom/android/server/wm/ScreenRotationAnimation;)I
+PLcom/android/server/wm/ScreenRotationAnimation;->access$600(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/ScreenRotationAnimation;->access$700(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/ScreenRotationAnimation;->access$800(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/view/animation/Animation;
+PLcom/android/server/wm/ScreenRotationAnimation;->access$900(Lcom/android/server/wm/ScreenRotationAnimation;)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/ScreenRotationAnimation;->createRotationMatrix(IIILandroid/graphics/Matrix;)V
+PLcom/android/server/wm/ScreenRotationAnimation;->dismiss(Landroid/view/SurfaceControl$Transaction;JFIIII)Z
+PLcom/android/server/wm/ScreenRotationAnimation;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
+PLcom/android/server/wm/ScreenRotationAnimation;->getEnterTransformation()Landroid/view/animation/Transformation;
+PLcom/android/server/wm/ScreenRotationAnimation;->hasScreenshot()Z
+HPLcom/android/server/wm/ScreenRotationAnimation;->isAnimating()Z
+PLcom/android/server/wm/ScreenRotationAnimation;->isRotating()Z
+PLcom/android/server/wm/ScreenRotationAnimation;->kill()V
+PLcom/android/server/wm/ScreenRotationAnimation;->printTo(Ljava/lang/String;Ljava/io/PrintWriter;)V
+PLcom/android/server/wm/ScreenRotationAnimation;->setRotation(Landroid/view/SurfaceControl$Transaction;I)V
+HPLcom/android/server/wm/ScreenRotationAnimation;->setRotationTransform(Landroid/view/SurfaceControl$Transaction;Landroid/graphics/Matrix;)V
+HPLcom/android/server/wm/ScreenRotationAnimation;->startAnimation(Landroid/view/SurfaceControl$Transaction;JFIIII)Z
+PLcom/android/server/wm/SeamlessRotator;-><init>(IILandroid/view/DisplayInfo;)V
+PLcom/android/server/wm/SeamlessRotator;->finish(Lcom/android/server/wm/WindowState;Z)V
+PLcom/android/server/wm/SeamlessRotator;->getOldRotation()I
+PLcom/android/server/wm/SeamlessRotator;->unrotate(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/Session;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/IWindowSessionCallback;)V
-PLcom/android/server/wm/Session;->addToDisplay(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/InputChannel;Landroid/view/InsetsState;)I
+PLcom/android/server/wm/Session;->actionOnWallpaper(Landroid/os/IBinder;Ljava/util/function/BiConsumer;)V
+HPLcom/android/server/wm/Session;->addToDisplay(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/InputChannel;Landroid/view/InsetsState;)I
PLcom/android/server/wm/Session;->binderDied()V
+PLcom/android/server/wm/Session;->cancelAlertWindowNotification()V
+PLcom/android/server/wm/Session;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/wm/Session;->finishDrawing(Landroid/view/IWindow;Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/Session;->getDisplayFrame(Landroid/view/IWindow;Landroid/graphics/Rect;)V
PLcom/android/server/wm/Session;->getInTouchMode()Z
+PLcom/android/server/wm/Session;->getWindowId(Landroid/os/IBinder;)Landroid/view/IWindowId;
PLcom/android/server/wm/Session;->killSessionLocked()V
PLcom/android/server/wm/Session;->lambda$setWallpaperPosition$0(FFFFLcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/Session;->lambda$wallpaperOffsetsComplete$1(Landroid/os/IBinder;Lcom/android/server/wm/WallpaperController;Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/Session;->onRectangleOnScreenRequested(Landroid/os/IBinder;Landroid/graphics/Rect;)V
HPLcom/android/server/wm/Session;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
PLcom/android/server/wm/Session;->onWindowSurfaceVisibilityChanged(Lcom/android/server/wm/WindowSurfaceController;ZI)V
PLcom/android/server/wm/Session;->performHapticFeedback(IZ)Z
-HPLcom/android/server/wm/Session;->pokeDrawLock(Landroid/os/IBinder;)V
HPLcom/android/server/wm/Session;->relayout(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IIIIJLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/util/MergedConfiguration;Landroid/view/SurfaceControl;Landroid/view/InsetsState;)I
PLcom/android/server/wm/Session;->remove(Landroid/view/IWindow;)V
-PLcom/android/server/wm/Session;->reportSystemGestureExclusionChanged(Landroid/view/IWindow;Ljava/util/List;)V
+HPLcom/android/server/wm/Session;->reportSystemGestureExclusionChanged(Landroid/view/IWindow;Ljava/util/List;)V
+PLcom/android/server/wm/Session;->sendWallpaperCommand(Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;Z)Landroid/os/Bundle;
+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;->setTransparentRegion(Landroid/view/IWindow;Landroid/graphics/Region;)V
PLcom/android/server/wm/Session;->setWallpaperPosition(Landroid/os/IBinder;FFFF)V
+PLcom/android/server/wm/Session;->toString()Ljava/lang/String;
+PLcom/android/server/wm/Session;->updatePointerIcon(Landroid/view/IWindow;)V
PLcom/android/server/wm/Session;->wallpaperOffsetsComplete(Landroid/os/IBinder;)V
PLcom/android/server/wm/Session;->windowAddedLocked(Ljava/lang/String;)V
PLcom/android/server/wm/Session;->windowRemovedLocked()V
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;-><init>()V
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$000(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)I
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$100(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)I
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$1000(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)Ljava/util/function/Supplier;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$1100(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)Ljava/util/function/Consumer;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$200(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)Z
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$300(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$400(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$500(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$600(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)Ljava/lang/Runnable;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$700(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)Ljava/util/function/Supplier;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$800(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)Ljava/util/function/BiConsumer;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->access$900(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)Ljava/util/function/Consumer;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->build()Lcom/android/server/wm/SurfaceAnimator$Animatable;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->setAnimationLeashParent(Landroid/view/SurfaceControl;)Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->setAnimationLeashSupplier(Ljava/util/function/Supplier;)Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->setCommitTransactionRunnable(Ljava/lang/Runnable;)Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->setHeight(I)Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->setParentSurfaceControl(Landroid/view/SurfaceControl;)Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->setPendingTransactionSupplier(Ljava/util/function/Supplier;)Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->setSurfaceControl(Landroid/view/SurfaceControl;)Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;
+PLcom/android/server/wm/SimpleSurfaceAnimatable$Builder;->setWidth(I)Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;
+PLcom/android/server/wm/SimpleSurfaceAnimatable;-><init>(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;)V
+PLcom/android/server/wm/SimpleSurfaceAnimatable;-><init>(Lcom/android/server/wm/SimpleSurfaceAnimatable$Builder;Lcom/android/server/wm/SimpleSurfaceAnimatable$1;)V
+PLcom/android/server/wm/SimpleSurfaceAnimatable;->commitPendingTransaction()V
+PLcom/android/server/wm/SimpleSurfaceAnimatable;->getAnimationLeashParent()Landroid/view/SurfaceControl;
+PLcom/android/server/wm/SimpleSurfaceAnimatable;->getParentSurfaceControl()Landroid/view/SurfaceControl;
+PLcom/android/server/wm/SimpleSurfaceAnimatable;->getPendingTransaction()Landroid/view/SurfaceControl$Transaction;
+HPLcom/android/server/wm/SimpleSurfaceAnimatable;->getSurfaceControl()Landroid/view/SurfaceControl;
+PLcom/android/server/wm/SimpleSurfaceAnimatable;->getSurfaceHeight()I
+PLcom/android/server/wm/SimpleSurfaceAnimatable;->getSurfaceWidth()I
+PLcom/android/server/wm/SimpleSurfaceAnimatable;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder;
+PLcom/android/server/wm/SimpleSurfaceAnimatable;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
+PLcom/android/server/wm/SimpleSurfaceAnimatable;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
+PLcom/android/server/wm/SimpleSurfaceAnimatable;->shouldDeferAnimationFinish(Ljava/lang/Runnable;)Z
PLcom/android/server/wm/SnapshotStartingData;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/app/ActivityManager$TaskSnapshot;)V
PLcom/android/server/wm/SnapshotStartingData;->createStartingSurface(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/policy/WindowManagerPolicy$StartingSurface;
PLcom/android/server/wm/SplashScreenStartingData;-><init>(Lcom/android/server/wm/WindowManagerService;Ljava/lang/String;ILandroid/content/res/CompatibilityInfo;Ljava/lang/CharSequence;IIIILandroid/content/res/Configuration;)V
PLcom/android/server/wm/SplashScreenStartingData;->createStartingSurface(Lcom/android/server/wm/ActivityRecord;)Lcom/android/server/policy/WindowManagerPolicy$StartingSurface;
PLcom/android/server/wm/StartingData;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/StatusBarController$1;-><init>(Lcom/android/server/wm/StatusBarController;)V
+HSPLcom/android/server/wm/StatusBarController$1;-><init>(Lcom/android/server/wm/StatusBarController;)V
PLcom/android/server/wm/StatusBarController$1;->lambda$$0$StatusBarController$1()V
PLcom/android/server/wm/StatusBarController$1;->lambda$$2$StatusBarController$1()V
PLcom/android/server/wm/StatusBarController$1;->lambda$onAppTransitionStartingLocked$3$StatusBarController$1(JJ)V
+PLcom/android/server/wm/StatusBarController$1;->onAppTransitionCancelledLocked(I)V
PLcom/android/server/wm/StatusBarController$1;->onAppTransitionFinishedLocked(Landroid/os/IBinder;)V
PLcom/android/server/wm/StatusBarController$1;->onAppTransitionPendingLocked()V
PLcom/android/server/wm/StatusBarController$1;->onAppTransitionStartingLocked(IJJJ)I
-PLcom/android/server/wm/StatusBarController;-><init>(I)V
-PLcom/android/server/wm/StatusBarController;->getAppTransitionListener()Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;
+HSPLcom/android/server/wm/StatusBarController;-><init>(I)V
+HSPLcom/android/server/wm/StatusBarController;->getAppTransitionListener()Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;
PLcom/android/server/wm/StatusBarController;->setTopAppHidesStatusBar(Z)V
-PLcom/android/server/wm/StatusBarController;->skipAnimation()Z
-PLcom/android/server/wm/SurfaceAnimationRunner$1;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)V
+HPLcom/android/server/wm/StatusBarController;->skipAnimation()Z
+HPLcom/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;-><init>(Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Landroid/view/SurfaceControl;Ljava/lang/Runnable;)V
-PLcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;->access$000(Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)Z
-PLcom/android/server/wm/SurfaceAnimationRunner$SfValueAnimator;-><init>(Lcom/android/server/wm/SurfaceAnimationRunner;)V
+HPLcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;-><init>(Lcom/android/server/wm/LocalAnimationAdapter$AnimationSpec;Landroid/view/SurfaceControl;Ljava/lang/Runnable;)V
+HPLcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;->access$000(Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)Z
+PLcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;->access$002(Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;Z)Z
+HPLcom/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;-><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
+HSPLcom/android/server/wm/SurfaceAnimationRunner;-><init>(Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;Lcom/android/server/wm/SurfaceAnimationRunner$AnimatorFactory;Landroid/view/SurfaceControl$Transaction;Landroid/os/PowerManagerInternal;)V
+HSPLcom/android/server/wm/SurfaceAnimationRunner;-><init>(Ljava/util/function/Supplier;Landroid/os/PowerManagerInternal;)V
PLcom/android/server/wm/SurfaceAnimationRunner;->access$100(Lcom/android/server/wm/SurfaceAnimationRunner;)Ljava/lang/Object;
PLcom/android/server/wm/SurfaceAnimationRunner;->access$200(Lcom/android/server/wm/SurfaceAnimationRunner;)Landroid/view/SurfaceControl$Transaction;
PLcom/android/server/wm/SurfaceAnimationRunner;->access$300(Lcom/android/server/wm/SurfaceAnimationRunner;)Ljava/lang/Object;
PLcom/android/server/wm/SurfaceAnimationRunner;->access$400(Lcom/android/server/wm/SurfaceAnimationRunner;)Landroid/animation/AnimationHandler;
+PLcom/android/server/wm/SurfaceAnimationRunner;->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$SurfaceAnimationRunner()V
-PLcom/android/server/wm/SurfaceAnimationRunner;->lambda$startAnimationLocked$3$SurfaceAnimationRunner(Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;)V
+PLcom/android/server/wm/SurfaceAnimationRunner;->lambda$9Wa9MhcrSX12liOouHtYXEkDU60(Lcom/android/server/wm/SurfaceAnimationRunner;J)V
+PLcom/android/server/wm/SurfaceAnimationRunner;->lambda$lSzwjoKEGADoEFOzdEnwriAk0T4(Lcom/android/server/wm/SurfaceAnimationRunner;)V
+HSPLcom/android/server/wm/SurfaceAnimationRunner;->lambda$new$0$SurfaceAnimationRunner()V
+PLcom/android/server/wm/SurfaceAnimationRunner;->lambda$new$1$SurfaceAnimationRunner()Landroid/animation/ValueAnimator;
+PLcom/android/server/wm/SurfaceAnimationRunner;->lambda$onAnimationCancelled$2$SurfaceAnimationRunner(Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;)V
+HPLcom/android/server/wm/SurfaceAnimationRunner;->lambda$startAnimationLocked$3$SurfaceAnimationRunner(Lcom/android/server/wm/SurfaceAnimationRunner$RunningAnimation;Landroid/animation/ValueAnimator;Landroid/animation/ValueAnimator;)V
PLcom/android/server/wm/SurfaceAnimationRunner;->onAnimationCancelled(Landroid/view/SurfaceControl;)V
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
@@ -18681,40 +22705,43 @@ HSPLcom/android/server/wm/SurfaceAnimationThread;-><init>()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;
-PLcom/android/server/wm/SurfaceAnimator$Animatable;->shouldDeferAnimationFinish(Ljava/lang/Runnable;)Z
-PLcom/android/server/wm/SurfaceAnimator;-><init>(Lcom/android/server/wm/SurfaceAnimator$Animatable;Ljava/lang/Runnable;Lcom/android/server/wm/WindowManagerService;)V
+HPLcom/android/server/wm/SurfaceAnimator$Animatable;->shouldDeferAnimationFinish(Ljava/lang/Runnable;)Z
+HSPLcom/android/server/wm/SurfaceAnimator;-><init>(Lcom/android/server/wm/SurfaceAnimator$Animatable;Ljava/lang/Runnable;Lcom/android/server/wm/WindowManagerService;)V
PLcom/android/server/wm/SurfaceAnimator;->cancelAnimation()V
PLcom/android/server/wm/SurfaceAnimator;->cancelAnimation(Landroid/view/SurfaceControl$Transaction;ZZ)V
PLcom/android/server/wm/SurfaceAnimator;->createAnimationLeash(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;IIZ)Landroid/view/SurfaceControl;
+PLcom/android/server/wm/SurfaceAnimator;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
PLcom/android/server/wm/SurfaceAnimator;->getAnimation()Lcom/android/server/wm/AnimationAdapter;
-PLcom/android/server/wm/SurfaceAnimator;->getFinishedCallback(Ljava/lang/Runnable;)Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
-PLcom/android/server/wm/SurfaceAnimator;->hasLeash()Z
-PLcom/android/server/wm/SurfaceAnimator;->isAnimating()Z
+HSPLcom/android/server/wm/SurfaceAnimator;->getFinishedCallback(Ljava/lang/Runnable;)Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
+HSPLcom/android/server/wm/SurfaceAnimator;->hasLeash()Z
+HSPLcom/android/server/wm/SurfaceAnimator;->isAnimating()Z
PLcom/android/server/wm/SurfaceAnimator;->isAnimationStartDelayed()Z
+PLcom/android/server/wm/SurfaceAnimator;->lambda$getFinishedCallback$0$SurfaceAnimator(Lcom/android/server/wm/AnimationAdapter;Ljava/lang/Runnable;)V
PLcom/android/server/wm/SurfaceAnimator;->lambda$getFinishedCallback$1$SurfaceAnimator(Ljava/lang/Runnable;Lcom/android/server/wm/AnimationAdapter;)V
-PLcom/android/server/wm/SurfaceAnimator;->reset(Landroid/view/SurfaceControl$Transaction;Z)V
-PLcom/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;->reset(Landroid/view/SurfaceControl$Transaction;Z)V
+HSPLcom/android/server/wm/SurfaceAnimator;->setLayer(Landroid/view/SurfaceControl$Transaction;I)V
+HSPLcom/android/server/wm/SurfaceAnimator;->setRelativeLayer(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;I)V
PLcom/android/server/wm/SurfaceAnimator;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;Z)V
-PLcom/android/server/wm/SurfaceAnimator;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)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/SurfaceAnimator;->transferAnimation(Lcom/android/server/wm/SurfaceAnimator;)V
+HSPLcom/android/server/wm/SystemGesturesPointerEventListener$1;-><init>(Lcom/android/server/wm/SystemGesturesPointerEventListener;Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;)V
+HSPLcom/android/server/wm/SystemGesturesPointerEventListener$FlingGestureDetector;-><init>(Lcom/android/server/wm/SystemGesturesPointerEventListener;)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;Landroid/os/Handler;Lcom/android/server/wm/SystemGesturesPointerEventListener$Callbacks;)V
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->access$000(Lcom/android/server/wm/SystemGesturesPointerEventListener;)Landroid/content/Context;
+HSPLcom/android/server/wm/SystemGesturesPointerEventListener;-><init>(Landroid/content/Context;Landroid/os/Handler;Lcom/android/server/wm/SystemGesturesPointerEventListener$Callbacks;)V
+HSPLcom/android/server/wm/SystemGesturesPointerEventListener;->access$000(Lcom/android/server/wm/SystemGesturesPointerEventListener;)Landroid/content/Context;
PLcom/android/server/wm/SystemGesturesPointerEventListener;->access$100(Lcom/android/server/wm/SystemGesturesPointerEventListener;)J
PLcom/android/server/wm/SystemGesturesPointerEventListener;->access$102(Lcom/android/server/wm/SystemGesturesPointerEventListener;J)J
PLcom/android/server/wm/SystemGesturesPointerEventListener;->access$200(Lcom/android/server/wm/SystemGesturesPointerEventListener;)Lcom/android/server/wm/SystemGesturesPointerEventListener$Callbacks;
PLcom/android/server/wm/SystemGesturesPointerEventListener;->captureDown(Landroid/view/MotionEvent;I)V
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->checkNull(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->detectSwipe(IJFF)I
+HSPLcom/android/server/wm/SystemGesturesPointerEventListener;->checkNull(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
+PLcom/android/server/wm/SystemGesturesPointerEventListener;->currentGestureStartedInRegion(Landroid/graphics/Region;)Z
+HPLcom/android/server/wm/SystemGesturesPointerEventListener;->detectSwipe(IJFF)I
HPLcom/android/server/wm/SystemGesturesPointerEventListener;->detectSwipe(Landroid/view/MotionEvent;)I
HPLcom/android/server/wm/SystemGesturesPointerEventListener;->findIndex(I)I
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->lambda$systemReady$0$SystemGesturesPointerEventListener()V
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->onConfigurationChanged()V
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->onPointerEvent(Landroid/view/MotionEvent;)V
-PLcom/android/server/wm/SystemGesturesPointerEventListener;->systemReady()V
+HSPLcom/android/server/wm/SystemGesturesPointerEventListener;->lambda$systemReady$0$SystemGesturesPointerEventListener()V
+HSPLcom/android/server/wm/SystemGesturesPointerEventListener;->onConfigurationChanged()V
+HPLcom/android/server/wm/SystemGesturesPointerEventListener;->onPointerEvent(Landroid/view/MotionEvent;)V
+HSPLcom/android/server/wm/SystemGesturesPointerEventListener;->systemReady()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$1;)V
PLcom/android/server/wm/Task$FindRootHelper;->clear()V
@@ -18723,71 +22750,85 @@ PLcom/android/server/wm/Task$FindRootHelper;->lambda$sIea0VfMPIGsR0Xwg7rABysHwZ4
PLcom/android/server/wm/Task$FindRootHelper;->processActivity(Lcom/android/server/wm/ActivityRecord;ZZ)Z
PLcom/android/server/wm/Task$TaskActivitiesReport;-><init>()V
HPLcom/android/server/wm/Task$TaskActivitiesReport;->accept(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/Task$TaskActivitiesReport;->accept(Ljava/lang/Object;)V
+HPLcom/android/server/wm/Task$TaskActivitiesReport;->accept(Ljava/lang/Object;)V
PLcom/android/server/wm/Task$TaskActivitiesReport;->reset()V
PLcom/android/server/wm/Task$TaskFactory;-><init>()V
PLcom/android/server/wm/Task$TaskFactory;->create(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;IZZZIILcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/Task;
PLcom/android/server/wm/Task$TaskFactory;->create(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/Task$TaskFactory;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/wm/ActivityStackSupervisor;)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/Task;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/Intent;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/content/ComponentName;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)V
+HPLcom/android/server/wm/Task$TaskFactory;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/wm/ActivityStackSupervisor;)Lcom/android/server/wm/Task;
+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;ZZZIILjava/lang/String;JZLandroid/app/ActivityManager$TaskDescription;IIIIILjava/lang/String;IZZZIILandroid/content/pm/ActivityInfo;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)V
PLcom/android/server/wm/Task;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Landroid/app/ActivityManager$TaskDescription;Lcom/android/server/wm/ActivityStack;)V
PLcom/android/server/wm/Task;->addChild(Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/Task;->addChild(Lcom/android/server/wm/WindowContainer;I)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;)V
+HPLcom/android/server/wm/Task;->addChild(Lcom/android/server/wm/WindowContainer;I)V
+HPLcom/android/server/wm/Task;->adjustBoundsForDisplayChangeIfNeeded(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/Task;->adjustForMinimalTaskDimensions(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
PLcom/android/server/wm/Task;->autoRemoveFromRecents()Z
-PLcom/android/server/wm/Task;->calculateInsetFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayInfo;)V
+HPLcom/android/server/wm/Task;->calculateInsetFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayInfo;)V
PLcom/android/server/wm/Task;->canAffectSystemUiFlags()Z
+PLcom/android/server/wm/Task;->canBeLaunchedOnDisplay(I)Z
+PLcom/android/server/wm/Task;->canResizeToBounds(Landroid/graphics/Rect;)Z
PLcom/android/server/wm/Task;->cleanUpResourcesForDestroy()V
+PLcom/android/server/wm/Task;->clearPreserveNonFloatingState()V
PLcom/android/server/wm/Task;->clearRootProcess()V
PLcom/android/server/wm/Task;->closeRecentsChain()V
PLcom/android/server/wm/Task;->computeConfigResourceOverrides(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/Task;->computeConfigResourceOverrides(Landroid/content/res/Configuration;Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord$CompatDisplayInsets;)V
-PLcom/android/server/wm/Task;->computeFullscreenBounds(Landroid/graphics/Rect;Lcom/android/server/wm/ActivityRecord;Landroid/graphics/Rect;I)V
+HPLcom/android/server/wm/Task;->computeConfigResourceOverrides(Landroid/content/res/Configuration;Landroid/content/res/Configuration;Lcom/android/server/wm/ActivityRecord$CompatDisplayInsets;)V
+HPLcom/android/server/wm/Task;->computeFullscreenBounds(Landroid/graphics/Rect;Lcom/android/server/wm/ActivityRecord;Landroid/graphics/Rect;I)V
PLcom/android/server/wm/Task;->computeScreenLayoutOverride(III)I
PLcom/android/server/wm/Task;->create(Lcom/android/server/wm/ActivityTaskManagerService;ILandroid/content/pm/ActivityInfo;Landroid/content/Intent;Landroid/service/voice/IVoiceInteractionSession;Lcom/android/internal/app/IVoiceInteractor;Lcom/android/server/wm/ActivityStack;)Lcom/android/server/wm/Task;
PLcom/android/server/wm/Task;->cropWindowsToStackBounds()Z
+HPLcom/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
+HPLcom/android/server/wm/Task;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+HPLcom/android/server/wm/Task;->dumpDebugInnerTaskOnly(Landroid/util/proto/ProtoOutputStream;JI)V
HPLcom/android/server/wm/Task;->fillTaskInfo(Landroid/app/TaskInfo;)V
-PLcom/android/server/wm/Task;->fillsParent()Z
+HPLcom/android/server/wm/Task;->fillsParent()Z
PLcom/android/server/wm/Task;->findActivityInHistory(Landroid/content/ComponentName;)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/Task;->finishActivityAbove(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/Task;->forAllTasks(Lcom/android/internal/util/ToBooleanFunction;)Z
-PLcom/android/server/wm/Task;->forAllTasks(Ljava/util/function/Consumer;)V
+HPLcom/android/server/wm/Task;->forAllTasks(Ljava/util/function/Consumer;Z)V
+PLcom/android/server/wm/Task;->forAllTasks(Ljava/util/function/Function;)Z
PLcom/android/server/wm/Task;->forceWindowsScaleable(Z)V
HPLcom/android/server/wm/Task;->getActivityType()I
-PLcom/android/server/wm/Task;->getAdjustedAddPosition(Lcom/android/server/wm/ActivityRecord;I)I
+HPLcom/android/server/wm/Task;->getAdjustedAddPosition(Lcom/android/server/wm/ActivityRecord;I)I
PLcom/android/server/wm/Task;->getAnimationLeashParent()Landroid/view/SurfaceControl;
PLcom/android/server/wm/Task;->getBaseIntent()Landroid/content/Intent;
-PLcom/android/server/wm/Task;->getDimBounds(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/Task;->getDimmer()Lcom/android/server/wm/Dimmer;
-PLcom/android/server/wm/Task;->getDisplayContent()Lcom/android/server/wm/DisplayContent;
-PLcom/android/server/wm/Task;->getDisplayedBounds()Landroid/graphics/Rect;
-PLcom/android/server/wm/Task;->getLaunchBounds()Landroid/graphics/Rect;
+HPLcom/android/server/wm/Task;->getDimBounds(Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/Task;->getDimmer()Lcom/android/server/wm/Dimmer;
+HPLcom/android/server/wm/Task;->getDisplayContent()Lcom/android/server/wm/DisplayContent;
+HPLcom/android/server/wm/Task;->getDisplayedBounds()Landroid/graphics/Rect;
+PLcom/android/server/wm/Task;->getInactiveDuration()J
+HPLcom/android/server/wm/Task;->getLaunchBounds()Landroid/graphics/Rect;
PLcom/android/server/wm/Task;->getName()Ljava/lang/String;
PLcom/android/server/wm/Task;->getNumRunningActivities(Lcom/android/server/wm/Task$TaskActivitiesReport;)V
PLcom/android/server/wm/Task;->getOverrideDisplayedBounds()Landroid/graphics/Rect;
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;->getRootActivity(ZZ)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/Task;->getStack()Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/Task;->getStackId()I
-PLcom/android/server/wm/Task;->getTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;
+HPLcom/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;->getTaskFactory()Lcom/android/server/wm/Task$TaskFactory;
PLcom/android/server/wm/Task;->getTaskInfo()Landroid/app/ActivityManager$RunningTaskInfo;
HPLcom/android/server/wm/Task;->getTaskStack()Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/Task;->getTopFullscreenActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/Task;->getTopNonFinishingActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/Task;->getTopNonFinishingActivity(Z)Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/Task;->getTopNonFinishingActivity()Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/Task;->getTopNonFinishingActivity(Z)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/Task;->getTopVisibleActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/Task;->intersectWithInsetsIfFits(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/Task;->intersectWithInsetsIfFits(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
PLcom/android/server/wm/Task;->isClearingToReuseTask()Z
PLcom/android/server/wm/Task;->isFloating()Z
PLcom/android/server/wm/Task;->isResizeable()Z
PLcom/android/server/wm/Task;->isResizeable(Z)Z
+PLcom/android/server/wm/Task;->isSameIntentFilter(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/Task;->isTaskAnimating()Z
+PLcom/android/server/wm/Task;->isTaskId(I)Z
PLcom/android/server/wm/Task;->lambda$BP51Xfr33NBfsJ4rKO04RomX2Tg(Lcom/android/server/wm/ActivityRecord;Landroid/content/ComponentName;)Z
PLcom/android/server/wm/Task;->lambda$OQmaRDKXdgA0v6VfNwTX7wOkwBs(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Lorg/xmlpull/v1/XmlSerializer;)Z
PLcom/android/server/wm/Task;->lambda$TUGPkEKamN60PF6hJQxUwDBjU-M(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityManager$TaskDescription;)Z
+PLcom/android/server/wm/Task;->lambda$dump$9(Ljava/io/PrintWriter;Ljava/lang/String;[ILjava/lang/String;ZLcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/Task;->lambda$dumpDebug$10(Landroid/util/proto/ProtoOutputStream;Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/Task;->lambda$dumpDebugInnerTaskOnly$8(Landroid/util/proto/ProtoOutputStream;ILcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/Task;->lambda$getAdjustedAddPosition$5(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/Task;->lambda$getTopFullscreenActivity$6(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/Task;->lambda$getTopVisibleActivity$7(Lcom/android/server/wm/ActivityRecord;)Z
@@ -18796,51 +22837,68 @@ PLcom/android/server/wm/Task;->lambda$onlyHasTaskOverlayActivities$1(Lcom/androi
PLcom/android/server/wm/Task;->lambda$onlyHasTaskOverlayActivities$2(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/Task;->lambda$performClearTaskAtIndexLocked$4(Ljava/lang/String;Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/Task;->lambda$topRunningActivityWithStartingWindowLocked$0(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/Task;->lockTaskAuthToString()Ljava/lang/String;
PLcom/android/server/wm/Task;->makeSurface()Landroid/view/SurfaceControl$Builder;
PLcom/android/server/wm/Task;->matchesActivityInHistory(Lcom/android/server/wm/ActivityRecord;Landroid/content/ComponentName;)Z
+PLcom/android/server/wm/Task;->moveActivityToFrontLocked(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/Task;->onActivityStateChanged(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityStack$ActivityState;Ljava/lang/String;)V
-PLcom/android/server/wm/Task;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HPLcom/android/server/wm/Task;->onConfigurationChanged(Landroid/content/res/Configuration;)V
PLcom/android/server/wm/Task;->onDescendantOrientationChanged(Landroid/os/IBinder;Lcom/android/server/wm/ConfigurationContainer;)Z
-PLcom/android/server/wm/Task;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/Task;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
+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;->onSnapshotChanged(Landroid/app/ActivityManager$TaskSnapshot;)V
PLcom/android/server/wm/Task;->onlyHasTaskOverlayActivities(Z)Z
+PLcom/android/server/wm/Task;->performClearTaskAtIndexLocked(Ljava/lang/String;)V
PLcom/android/server/wm/Task;->performClearTaskForReuseLocked(Lcom/android/server/wm/ActivityRecord;I)Lcom/android/server/wm/ActivityRecord;
+PLcom/android/server/wm/Task;->performClearTaskLocked()V
PLcom/android/server/wm/Task;->performClearTaskLocked(Lcom/android/server/wm/ActivityRecord;I)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/Task;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
PLcom/android/server/wm/Task;->positionChildAt(Lcom/android/server/wm/ActivityRecord;I)V
PLcom/android/server/wm/Task;->positionChildAtTop(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/Task;->prepareFreezingBounds()V
HPLcom/android/server/wm/Task;->prepareSurfaces()V
PLcom/android/server/wm/Task;->removeChild(Lcom/android/server/wm/WindowContainer;)V
PLcom/android/server/wm/Task;->removeIfPossible()V
+PLcom/android/server/wm/Task;->removeImmediately()V
+PLcom/android/server/wm/Task;->removeTaskActivitiesLocked(Ljava/lang/String;)V
PLcom/android/server/wm/Task;->removedFromRecents()V
-PLcom/android/server/wm/Task;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/Task;->reparent(Lcom/android/server/wm/ActivityStack;IIZZZLjava/lang/String;)Z
+PLcom/android/server/wm/Task;->reparent(Lcom/android/server/wm/ActivityStack;IZLjava/lang/String;)V
+PLcom/android/server/wm/Task;->reparent(Lcom/android/server/wm/ActivityStack;ZIZZZLjava/lang/String;)Z
+PLcom/android/server/wm/Task;->replaceWindowsOnTaskMove(II)Z
+PLcom/android/server/wm/Task;->resize(Landroid/graphics/Rect;IZZ)Z
+PLcom/android/server/wm/Task;->resize(ZZ)V
+HPLcom/android/server/wm/Task;->resolveOverrideConfiguration(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/Task;->restoreFromXml(Lorg/xmlpull/v1/XmlPullParser;Lcom/android/server/wm/ActivityStackSupervisor;)Lcom/android/server/wm/Task;
PLcom/android/server/wm/Task;->saveActivityToXml(Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/ActivityRecord;Lorg/xmlpull/v1/XmlSerializer;)Z
-PLcom/android/server/wm/Task;->saveLaunchingStateIfNeeded()V
-PLcom/android/server/wm/Task;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
-PLcom/android/server/wm/Task;->setBounds(Landroid/graphics/Rect;)I
-PLcom/android/server/wm/Task;->setIntent(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;)V
+HPLcom/android/server/wm/Task;->saveLaunchingStateIfNeeded()V
+HPLcom/android/server/wm/Task;->saveToXml(Lorg/xmlpull/v1/XmlSerializer;)V
+HPLcom/android/server/wm/Task;->setBounds(Landroid/graphics/Rect;)I
+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;->setLockTaskAuth()V
-PLcom/android/server/wm/Task;->setLockTaskAuth(Lcom/android/server/wm/ActivityRecord;)V
+HPLcom/android/server/wm/Task;->setLockTaskAuth(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/Task;->setMinDimensions(Landroid/content/pm/ActivityInfo;)V
PLcom/android/server/wm/Task;->setNextAffiliate(Lcom/android/server/wm/Task;)V
+PLcom/android/server/wm/Task;->setOverrideDisplayedBounds(Landroid/graphics/Rect;)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;->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;->setTaskFactory(Lcom/android/server/wm/Task$TaskFactory;)V
+PLcom/android/server/wm/Task;->shouldDeferRemoval()Z
PLcom/android/server/wm/Task;->showForAllUsers()Z
-PLcom/android/server/wm/Task;->supportsSplitScreenWindowingMode()Z
+HPLcom/android/server/wm/Task;->supportsSplitScreenWindowingMode()Z
PLcom/android/server/wm/Task;->toString()Ljava/lang/String;
PLcom/android/server/wm/Task;->topRunningActivityLocked()Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/Task;->topRunningActivityWithStartingWindowLocked()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/Task;->touchActiveTime()V
+HPLcom/android/server/wm/Task;->touchActiveTime()V
PLcom/android/server/wm/Task;->updateEffectiveIntent()V
PLcom/android/server/wm/Task;->updateOverrideConfigurationFromLaunchBounds()Landroid/graphics/Rect;
-PLcom/android/server/wm/Task;->updateTaskDescription()V
+HPLcom/android/server/wm/Task;->updateTaskDescription()V
PLcom/android/server/wm/Task;->updateTaskMovement(Z)V
HSPLcom/android/server/wm/TaskChangeNotificationController$MainHandler;-><init>(Lcom/android/server/wm/TaskChangeNotificationController;Landroid/os/Looper;)V
-PLcom/android/server/wm/TaskChangeNotificationController$MainHandler;->handleMessage(Landroid/os/Message;)V
+HPLcom/android/server/wm/TaskChangeNotificationController$MainHandler;->handleMessage(Landroid/os/Message;)V
HSPLcom/android/server/wm/TaskChangeNotificationController;-><init>(Ljava/lang/Object;Lcom/android/server/wm/ActivityStackSupervisor;Landroid/os/Handler;)V
PLcom/android/server/wm/TaskChangeNotificationController;->access$000(Lcom/android/server/wm/TaskChangeNotificationController;)Ljava/lang/Object;
PLcom/android/server/wm/TaskChangeNotificationController;->access$100(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/ActivityStackSupervisor;
@@ -18849,39 +22907,65 @@ PLcom/android/server/wm/TaskChangeNotificationController;->access$2500(Lcom/andr
PLcom/android/server/wm/TaskChangeNotificationController;->access$2600(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
PLcom/android/server/wm/TaskChangeNotificationController;->access$300(Lcom/android/server/wm/TaskChangeNotificationController;Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;Landroid/os/Message;)V
PLcom/android/server/wm/TaskChangeNotificationController;->access$400(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
+PLcom/android/server/wm/TaskChangeNotificationController;->access$500(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
PLcom/android/server/wm/TaskChangeNotificationController;->access$700(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
-PLcom/android/server/wm/TaskChangeNotificationController;->forAllLocalListeners(Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;Landroid/os/Message;)V
-PLcom/android/server/wm/TaskChangeNotificationController;->forAllRemoteListeners(Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;Landroid/os/Message;)V
+PLcom/android/server/wm/TaskChangeNotificationController;->access$800(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
+PLcom/android/server/wm/TaskChangeNotificationController;->access$900(Lcom/android/server/wm/TaskChangeNotificationController;)Lcom/android/server/wm/TaskChangeNotificationController$TaskStackConsumer;
+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$22(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$12(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$19(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$2(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+HPLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$22(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$23(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$24(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;->lambda$new$6(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$7(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+PLcom/android/server/wm/TaskChangeNotificationController;->lambda$new$9(Landroid/app/ITaskStackListener;Landroid/os/Message;)V
+PLcom/android/server/wm/TaskChangeNotificationController;->notifyActivityPinned(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/TaskChangeNotificationController;->notifyActivityRequestedOrientationChanged(II)V
+PLcom/android/server/wm/TaskChangeNotificationController;->notifyActivityUnpinned()V
+PLcom/android/server/wm/TaskChangeNotificationController;->notifySizeCompatModeActivityChanged(ILandroid/os/IBinder;)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;->notifyTaskListFrozen(Z)V
PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskListUpdated()V
PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskMovedToFront(Landroid/app/TaskInfo;)V
PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskRemovalStarted(Landroid/app/ActivityManager$RunningTaskInfo;)V
+PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskRemoved(I)V
PLcom/android/server/wm/TaskChangeNotificationController;->notifyTaskStackChanged()V
-PLcom/android/server/wm/TaskChangeNotificationController;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
+HSPLcom/android/server/wm/TaskChangeNotificationController;->registerTaskStackListener(Landroid/app/ITaskStackListener;)V
PLcom/android/server/wm/TaskChangeNotificationController;->unregisterTaskStackListener(Landroid/app/ITaskStackListener;)V
HSPLcom/android/server/wm/TaskLaunchParamsModifier;-><init>(Lcom/android/server/wm/ActivityStackSupervisor;)V
-PLcom/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;ILcom/android/server/wm/LaunchParamsController$LaunchParams;Lcom/android/server/wm/LaunchParamsController$LaunchParams;)I
-PLcom/android/server/wm/TaskLaunchParamsModifier;->canApplyFreeformWindowPolicy(Lcom/android/server/wm/ActivityDisplay;I)Z
-PLcom/android/server/wm/TaskLaunchParamsModifier;->canInheritWindowingModeFromSource(Lcom/android/server/wm/ActivityDisplay;Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/TaskLaunchParamsModifier;->getPreferredLaunchDisplay(Lcom/android/server/wm/Task;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/LaunchParamsController$LaunchParams;)I
+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;ILcom/android/server/wm/LaunchParamsController$LaunchParams;Lcom/android/server/wm/LaunchParamsController$LaunchParams;)I
+PLcom/android/server/wm/TaskLaunchParamsModifier;->canApplyFreeformWindowPolicy(Lcom/android/server/wm/DisplayContent;I)Z
+HPLcom/android/server/wm/TaskLaunchParamsModifier;->canInheritWindowingModeFromSource(Lcom/android/server/wm/DisplayContent;Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/TaskLaunchParamsModifier;->getPreferredLaunchDisplay(Lcom/android/server/wm/Task;Landroid/app/ActivityOptions;Lcom/android/server/wm/ActivityRecord;Lcom/android/server/wm/LaunchParamsController$LaunchParams;)I
PLcom/android/server/wm/TaskLaunchParamsModifier;->initLogBuilder(Lcom/android/server/wm/Task;Lcom/android/server/wm/ActivityRecord;)V
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;ILcom/android/server/wm/LaunchParamsController$LaunchParams;Lcom/android/server/wm/LaunchParamsController$LaunchParams;)I
PLcom/android/server/wm/TaskLaunchParamsModifier;->outputLog()V
PLcom/android/server/wm/TaskPersister$1;-><init>(Lcom/android/server/wm/TaskPersister;)V
+PLcom/android/server/wm/TaskPersister$1;->compare(Lcom/android/server/wm/Task;Lcom/android/server/wm/Task;)I
+PLcom/android/server/wm/TaskPersister$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
+PLcom/android/server/wm/TaskPersister$ImageWriteQueueItem;-><init>(Ljava/lang/String;Landroid/graphics/Bitmap;)V
+PLcom/android/server/wm/TaskPersister$ImageWriteQueueItem;->matches(Lcom/android/server/wm/PersisterQueue$WriteQueueItem;)Z
+PLcom/android/server/wm/TaskPersister$ImageWriteQueueItem;->matches(Lcom/android/server/wm/TaskPersister$ImageWriteQueueItem;)Z
+PLcom/android/server/wm/TaskPersister$ImageWriteQueueItem;->process()V
+PLcom/android/server/wm/TaskPersister$ImageWriteQueueItem;->updateFrom(Lcom/android/server/wm/PersisterQueue$WriteQueueItem;)V
+PLcom/android/server/wm/TaskPersister$ImageWriteQueueItem;->updateFrom(Lcom/android/server/wm/TaskPersister$ImageWriteQueueItem;)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;->access$200(Lcom/android/server/wm/TaskPersister$TaskWriteQueueItem;)Lcom/android/server/wm/Task;
PLcom/android/server/wm/TaskPersister$TaskWriteQueueItem;->process()V
-PLcom/android/server/wm/TaskPersister$TaskWriteQueueItem;->saveToXml(Lcom/android/server/wm/Task;)Ljava/io/StringWriter;
+HPLcom/android/server/wm/TaskPersister$TaskWriteQueueItem;->saveToXml(Lcom/android/server/wm/Task;)Ljava/io/StringWriter;
HSPLcom/android/server/wm/TaskPersister;-><init>(Ljava/io/File;Lcom/android/server/wm/ActivityStackSupervisor;Lcom/android/server/wm/ActivityTaskManagerService;Lcom/android/server/wm/RecentTasks;Lcom/android/server/wm/PersisterQueue;)V
PLcom/android/server/wm/TaskPersister;->access$000(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$removeThumbnails$0(Lcom/android/server/wm/Task;Lcom/android/server/wm/TaskPersister$ImageWriteQueueItem;)Z
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
@@ -18890,49 +22974,58 @@ PLcom/android/server/wm/TaskPersister;->removeObsoleteFiles(Landroid/util/ArrayS
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
+HPLcom/android/server/wm/TaskPersister;->wakeup(Lcom/android/server/wm/Task;Z)V
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;Lcom/android/server/input/InputManagerService;Landroid/app/IActivityTaskManager;Landroid/os/Looper;)V
-PLcom/android/server/wm/TaskPositioningController;->hideInputSurface(Landroid/view/SurfaceControl$Transaction;I)V
-PLcom/android/server/wm/TaskPositioningController;->isPositioningLocked()Z
+HSPLcom/android/server/wm/TaskPositioningController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/input/InputManagerService;Landroid/app/IActivityTaskManager;Landroid/os/Looper;)V
+HSPLcom/android/server/wm/TaskPositioningController;->hideInputSurface(Landroid/view/SurfaceControl$Transaction;I)V
+HSPLcom/android/server/wm/TaskPositioningController;->isPositioningLocked()Z
+PLcom/android/server/wm/TaskPositioningController;->lambda$handleTapOutsideTask$0$TaskPositioningController(Lcom/android/server/wm/DisplayContent;II)V
PLcom/android/server/wm/TaskSnapshotCache$CacheEntry;-><init>(Landroid/app/ActivityManager$TaskSnapshot;Lcom/android/server/wm/ActivityRecord;)V
-PLcom/android/server/wm/TaskSnapshotCache;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/TaskSnapshotLoader;)V
-PLcom/android/server/wm/TaskSnapshotCache;->clearRunningCache()V
+HSPLcom/android/server/wm/TaskSnapshotCache;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/TaskSnapshotLoader;)V
+HSPLcom/android/server/wm/TaskSnapshotCache;->clearRunningCache()V
+PLcom/android/server/wm/TaskSnapshotCache;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/wm/TaskSnapshotCache;->getSnapshot(IIZZ)Landroid/app/ActivityManager$TaskSnapshot;
+PLcom/android/server/wm/TaskSnapshotCache;->onAppRemoved(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/TaskSnapshotCache;->putSnapshot(Lcom/android/server/wm/Task;Landroid/app/ActivityManager$TaskSnapshot;)V
-PLcom/android/server/wm/TaskSnapshotController;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/TaskSnapshotCache;->removeRunningEntry(I)V
+PLcom/android/server/wm/TaskSnapshotCache;->tryRestoreFromDisk(IIZ)Landroid/app/ActivityManager$TaskSnapshot;
+HSPLcom/android/server/wm/TaskSnapshotController;-><init>(Lcom/android/server/wm/WindowManagerService;)V
PLcom/android/server/wm/TaskSnapshotController;->addSkipClosingAppSnapshotTasks(Landroid/util/ArraySet;)V
-PLcom/android/server/wm/TaskSnapshotController;->clearSnapshotCache()V
+HSPLcom/android/server/wm/TaskSnapshotController;->clearSnapshotCache()V
PLcom/android/server/wm/TaskSnapshotController;->createStartingSurface(Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityManager$TaskSnapshot;)Lcom/android/server/policy/WindowManagerPolicy$StartingSurface;
-PLcom/android/server/wm/TaskSnapshotController;->createTaskSnapshot(Lcom/android/server/wm/Task;FI)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
+HPLcom/android/server/wm/TaskSnapshotController;->createTaskSnapshot(Lcom/android/server/wm/Task;FI)Landroid/view/SurfaceControl$ScreenshotGraphicBuffer;
+PLcom/android/server/wm/TaskSnapshotController;->drawAppThemeSnapshot(Lcom/android/server/wm/Task;)Landroid/app/ActivityManager$TaskSnapshot;
PLcom/android/server/wm/TaskSnapshotController;->getClosingTasks(Landroid/util/ArraySet;Landroid/util/ArraySet;)V
PLcom/android/server/wm/TaskSnapshotController;->getSnapshot(IIZZ)Landroid/app/ActivityManager$TaskSnapshot;
PLcom/android/server/wm/TaskSnapshotController;->getSnapshotMode(Lcom/android/server/wm/Task;)I
PLcom/android/server/wm/TaskSnapshotController;->handleClosingApps(Landroid/util/ArraySet;)V
PLcom/android/server/wm/TaskSnapshotController;->lambda$findAppTokenForSnapshot$1(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/TaskSnapshotController;->lambda$screenTurningOff$2$TaskSnapshotController(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/TaskSnapshotController;->lambda$screenTurningOff$3$TaskSnapshotController(Lcom/android/server/policy/WindowManagerPolicy$ScreenOffListener;)V
+HPLcom/android/server/wm/TaskSnapshotController;->lambda$screenTurningOff$2$TaskSnapshotController(Lcom/android/server/wm/Task;)V
+HPLcom/android/server/wm/TaskSnapshotController;->lambda$screenTurningOff$3$TaskSnapshotController(Lcom/android/server/policy/WindowManagerPolicy$ScreenOffListener;)V
PLcom/android/server/wm/TaskSnapshotController;->minRect(Landroid/graphics/Rect;Landroid/graphics/Rect;)Landroid/graphics/Rect;
PLcom/android/server/wm/TaskSnapshotController;->notifyAppVisibilityChanged(Lcom/android/server/wm/ActivityRecord;Z)V
PLcom/android/server/wm/TaskSnapshotController;->notifyTaskRemovedFromRecents(II)V
+PLcom/android/server/wm/TaskSnapshotController;->onAppRemoved(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/TaskSnapshotController;->onTransitionStarting(Lcom/android/server/wm/DisplayContent;)V
PLcom/android/server/wm/TaskSnapshotController;->removeObsoleteTaskFiles(Landroid/util/ArraySet;[I)V
+PLcom/android/server/wm/TaskSnapshotController;->removeSnapshotCache(I)V
PLcom/android/server/wm/TaskSnapshotController;->screenTurningOff(Lcom/android/server/policy/WindowManagerPolicy$ScreenOffListener;)V
PLcom/android/server/wm/TaskSnapshotController;->setPersisterPaused(Z)V
PLcom/android/server/wm/TaskSnapshotController;->shouldDisableSnapshots()Z
PLcom/android/server/wm/TaskSnapshotController;->snapshotTask(Lcom/android/server/wm/Task;)Landroid/app/ActivityManager$TaskSnapshot;
PLcom/android/server/wm/TaskSnapshotController;->snapshotTasks(Landroid/util/ArraySet;)V
-PLcom/android/server/wm/TaskSnapshotController;->systemReady()V
-PLcom/android/server/wm/TaskSnapshotLoader;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;)V
+HPLcom/android/server/wm/TaskSnapshotController;->snapshotTasks(Landroid/util/ArraySet;Z)V
+HSPLcom/android/server/wm/TaskSnapshotController;->systemReady()V
+HSPLcom/android/server/wm/TaskSnapshotLoader;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;)V
PLcom/android/server/wm/TaskSnapshotLoader;->loadTask(IIZ)Landroid/app/ActivityManager$TaskSnapshot;
-PLcom/android/server/wm/TaskSnapshotPersister$1;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;Ljava/lang/String;)V
-PLcom/android/server/wm/TaskSnapshotPersister$1;->run()V
+HSPLcom/android/server/wm/TaskSnapshotPersister$1;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;Ljava/lang/String;)V
+HSPLcom/android/server/wm/TaskSnapshotPersister$1;->run()V
PLcom/android/server/wm/TaskSnapshotPersister$DeleteWriteQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;II)V
PLcom/android/server/wm/TaskSnapshotPersister$DeleteWriteQueueItem;->write()V
-PLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;Landroid/util/ArraySet;[I)V
+HPLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;Landroid/util/ArraySet;[I)V
PLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;->getTaskId(Ljava/lang/String;)I
-PLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;->write()V
+HPLcom/android/server/wm/TaskSnapshotPersister$RemoveObsoleteFilesQueueItem;->write()V
PLcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;IILandroid/app/ActivityManager$TaskSnapshot;)V
PLcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;->onDequeuedLocked()V
PLcom/android/server/wm/TaskSnapshotPersister$StoreWriteQueueItem;->onQueuedLocked()V
@@ -18943,334 +23036,390 @@ PLcom/android/server/wm/TaskSnapshotPersister$WriteQueueItem;-><init>(Lcom/andro
PLcom/android/server/wm/TaskSnapshotPersister$WriteQueueItem;-><init>(Lcom/android/server/wm/TaskSnapshotPersister;Lcom/android/server/wm/TaskSnapshotPersister$1;)V
PLcom/android/server/wm/TaskSnapshotPersister$WriteQueueItem;->onDequeuedLocked()V
PLcom/android/server/wm/TaskSnapshotPersister$WriteQueueItem;->onQueuedLocked()V
-PLcom/android/server/wm/TaskSnapshotPersister;-><clinit>()V
-PLcom/android/server/wm/TaskSnapshotPersister;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/TaskSnapshotPersister$DirectoryResolver;)V
-PLcom/android/server/wm/TaskSnapshotPersister;->access$100(Lcom/android/server/wm/TaskSnapshotPersister;)Ljava/lang/Object;
-PLcom/android/server/wm/TaskSnapshotPersister;->access$200(Lcom/android/server/wm/TaskSnapshotPersister;)Z
-PLcom/android/server/wm/TaskSnapshotPersister;->access$300(Lcom/android/server/wm/TaskSnapshotPersister;)Ljava/util/ArrayDeque;
-PLcom/android/server/wm/TaskSnapshotPersister;->access$402(Lcom/android/server/wm/TaskSnapshotPersister;Z)Z
+HSPLcom/android/server/wm/TaskSnapshotPersister;-><clinit>()V
+HSPLcom/android/server/wm/TaskSnapshotPersister;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/TaskSnapshotPersister$DirectoryResolver;)V
+HSPLcom/android/server/wm/TaskSnapshotPersister;->access$100(Lcom/android/server/wm/TaskSnapshotPersister;)Ljava/lang/Object;
+PLcom/android/server/wm/TaskSnapshotPersister;->access$1100(Lcom/android/server/wm/TaskSnapshotPersister;)Landroid/util/ArraySet;
+HSPLcom/android/server/wm/TaskSnapshotPersister;->access$200(Lcom/android/server/wm/TaskSnapshotPersister;)Z
+HSPLcom/android/server/wm/TaskSnapshotPersister;->access$300(Lcom/android/server/wm/TaskSnapshotPersister;)Ljava/util/ArrayDeque;
+HSPLcom/android/server/wm/TaskSnapshotPersister;->access$402(Lcom/android/server/wm/TaskSnapshotPersister;Z)Z
PLcom/android/server/wm/TaskSnapshotPersister;->ensureStoreQueueDepthLocked()V
PLcom/android/server/wm/TaskSnapshotPersister;->getBitmapFile(II)Ljava/io/File;
+PLcom/android/server/wm/TaskSnapshotPersister;->getDirectory(I)Ljava/io/File;
PLcom/android/server/wm/TaskSnapshotPersister;->getProtoFile(II)Ljava/io/File;
PLcom/android/server/wm/TaskSnapshotPersister;->getReducedResolutionBitmapFile(II)Ljava/io/File;
+PLcom/android/server/wm/TaskSnapshotPersister;->getReducedScale()F
PLcom/android/server/wm/TaskSnapshotPersister;->onTaskRemovedFromRecents(II)V
PLcom/android/server/wm/TaskSnapshotPersister;->persistSnapshot(IILandroid/app/ActivityManager$TaskSnapshot;)V
PLcom/android/server/wm/TaskSnapshotPersister;->removeObsoleteFiles(Landroid/util/ArraySet;[I)V
+PLcom/android/server/wm/TaskSnapshotPersister;->sendToQueueLocked(Lcom/android/server/wm/TaskSnapshotPersister$WriteQueueItem;)V
PLcom/android/server/wm/TaskSnapshotPersister;->setPaused(Z)V
-PLcom/android/server/wm/TaskSnapshotPersister;->start()V
+HSPLcom/android/server/wm/TaskSnapshotPersister;->start()V
+PLcom/android/server/wm/TaskSnapshotPersister;->use16BitFormat()Z
PLcom/android/server/wm/TaskSnapshotSurface$1;-><init>(Landroid/os/Looper;)V
-PLcom/android/server/wm/TaskSnapshotSurface$SystemBarBackgroundPainter;-><init>(IIILandroid/app/ActivityManager$TaskDescription;F)V
+HPLcom/android/server/wm/TaskSnapshotSurface$SystemBarBackgroundPainter;-><init>(IIILandroid/app/ActivityManager$TaskDescription;FLandroid/view/InsetsState;)V
+PLcom/android/server/wm/TaskSnapshotSurface$SystemBarBackgroundPainter;->drawDecors(Landroid/graphics/Canvas;Landroid/graphics/Rect;)V
+PLcom/android/server/wm/TaskSnapshotSurface$SystemBarBackgroundPainter;->drawNavigationBarBackground(Landroid/graphics/Canvas;)V
+PLcom/android/server/wm/TaskSnapshotSurface$SystemBarBackgroundPainter;->drawStatusBarBackground(Landroid/graphics/Canvas;Landroid/graphics/Rect;I)V
+PLcom/android/server/wm/TaskSnapshotSurface$SystemBarBackgroundPainter;->getStatusBarColorViewHeight()I
+PLcom/android/server/wm/TaskSnapshotSurface$SystemBarBackgroundPainter;->isNavigationBarColorViewVisible()Z
PLcom/android/server/wm/TaskSnapshotSurface$SystemBarBackgroundPainter;->setInsets(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
PLcom/android/server/wm/TaskSnapshotSurface$Window;-><init>()V
+PLcom/android/server/wm/TaskSnapshotSurface$Window;->resized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
PLcom/android/server/wm/TaskSnapshotSurface$Window;->setOuter(Lcom/android/server/wm/TaskSnapshotSurface;)V
PLcom/android/server/wm/TaskSnapshotSurface;-><clinit>()V
-PLcom/android/server/wm/TaskSnapshotSurface;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/TaskSnapshotSurface$Window;Landroid/view/SurfaceControl;Landroid/app/ActivityManager$TaskSnapshot;Ljava/lang/CharSequence;Landroid/app/ActivityManager$TaskDescription;IIILandroid/graphics/Rect;I)V
-PLcom/android/server/wm/TaskSnapshotSurface;->create(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityManager$TaskSnapshot;)Lcom/android/server/wm/TaskSnapshotSurface;
-PLcom/android/server/wm/TaskSnapshotSurface;->drawSizeMismatchSnapshot()V
+HPLcom/android/server/wm/TaskSnapshotSurface;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/TaskSnapshotSurface$Window;Landroid/view/SurfaceControl;Landroid/app/ActivityManager$TaskSnapshot;Ljava/lang/CharSequence;Landroid/app/ActivityManager$TaskDescription;IIILandroid/graphics/Rect;ILandroid/view/InsetsState;)V
+PLcom/android/server/wm/TaskSnapshotSurface;->access$300(Lcom/android/server/wm/TaskSnapshotSurface;)I
+HPLcom/android/server/wm/TaskSnapshotSurface;->create(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/ActivityRecord;Landroid/app/ActivityManager$TaskSnapshot;)Lcom/android/server/wm/TaskSnapshotSurface;
+HPLcom/android/server/wm/TaskSnapshotSurface;->drawSizeMismatchSnapshot()V
PLcom/android/server/wm/TaskSnapshotSurface;->drawSnapshot()V
PLcom/android/server/wm/TaskSnapshotSurface;->remove()V
PLcom/android/server/wm/TaskSnapshotSurface;->reportDrawn()V
PLcom/android/server/wm/TaskSnapshotSurface;->setFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
-PLcom/android/server/wm/TaskTapPointerEventListener;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/TaskTapPointerEventListener;->onPointerEvent(Landroid/view/MotionEvent;)V
-PLcom/android/server/wm/TaskTapPointerEventListener;->setTouchExcludeRegion(Landroid/graphics/Region;)V
-PLcom/android/server/wm/UnknownAppVisibilityController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/TaskTapPointerEventListener;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/TaskTapPointerEventListener;->onPointerEvent(Landroid/view/MotionEvent;)V
+HSPLcom/android/server/wm/TaskTapPointerEventListener;->setTouchExcludeRegion(Landroid/graphics/Region;)V
+HSPLcom/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;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+PLcom/android/server/wm/UnknownAppVisibilityController;->lambda$FYhcjOhYWVp6HX5hr3GGaPg67Gc(Lcom/android/server/wm/UnknownAppVisibilityController;)V
PLcom/android/server/wm/UnknownAppVisibilityController;->notifyAppResumedFinished(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/UnknownAppVisibilityController;->notifyLaunched(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/UnknownAppVisibilityController;->notifyRelayouted(Lcom/android/server/wm/ActivityRecord;)V
+PLcom/android/server/wm/UnknownAppVisibilityController;->notifyVisibilitiesUpdated()V
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;->clearVrRenderThreadLocked(Z)V
+PLcom/android/server/wm/VrController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
PLcom/android/server/wm/VrController;->hasPersistentVrFlagSet()Z
PLcom/android/server/wm/VrController;->inVrMode()Z
-PLcom/android/server/wm/VrController;->onSystemReady()V
+HSPLcom/android/server/wm/VrController;->onSystemReady()V
PLcom/android/server/wm/VrController;->onTopProcChangedLocked(Lcom/android/server/wm/WindowProcessController;)V
PLcom/android/server/wm/VrController;->onVrModeChanged(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/VrController;->setVrRenderThreadLocked(IIZ)I
+HSPLcom/android/server/wm/VrController;->toString()Ljava/lang/String;
PLcom/android/server/wm/VrController;->updateVrRenderThreadLocked(IZ)I
PLcom/android/server/wm/WallpaperAnimationAdapter;-><init>(Lcom/android/server/wm/WallpaperWindowToken;JJLjava/util/function/Consumer;)V
-PLcom/android/server/wm/WallpaperAnimationAdapter;->createRemoteAnimationTarget()Landroid/view/RemoteAnimationTarget;
+HPLcom/android/server/wm/WallpaperAnimationAdapter;->createRemoteAnimationTarget()Landroid/view/RemoteAnimationTarget;
PLcom/android/server/wm/WallpaperAnimationAdapter;->getLeash()Landroid/view/SurfaceControl;
PLcom/android/server/wm/WallpaperAnimationAdapter;->getLeashFinishedCallback()Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
PLcom/android/server/wm/WallpaperAnimationAdapter;->lambda$startWallpaperAnimations$0(JJLjava/util/function/Consumer;Ljava/util/ArrayList;Ljava/util/ArrayList;Lcom/android/server/wm/WallpaperWindowToken;)V
+PLcom/android/server/wm/WallpaperAnimationAdapter;->onAnimationCancelled(Landroid/view/SurfaceControl;)V
PLcom/android/server/wm/WallpaperAnimationAdapter;->startAnimation(Landroid/view/SurfaceControl;Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;)V
PLcom/android/server/wm/WallpaperAnimationAdapter;->startWallpaperAnimations(Lcom/android/server/wm/WindowManagerService;JJLjava/util/function/Consumer;Ljava/util/ArrayList;)[Landroid/view/RemoteAnimationTarget;
-PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;-><init>()V
-PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;-><init>(Lcom/android/server/wm/WallpaperController$1;)V
+HSPLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;-><init>()V
+HSPLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;-><init>(Lcom/android/server/wm/WallpaperController$1;)V
PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;->reset()V
PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;->setTopWallpaper(Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;->setUseTopWallpaperAsTarget(Z)V
PLcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;->setWallpaperTarget(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WallpaperController;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/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
PLcom/android/server/wm/WallpaperController;->adjustWallpaperWindows()V
PLcom/android/server/wm/WallpaperController;->adjustWallpaperWindowsForAppTransitionIfNeeded(Landroid/util/ArraySet;Landroid/util/ArraySet;)V
PLcom/android/server/wm/WallpaperController;->clearLastWallpaperTimeoutTime()V
+HSPLcom/android/server/wm/WallpaperController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/wm/WallpaperController;->findWallpaperTarget()V
PLcom/android/server/wm/WallpaperController;->getWallpaperTarget()Lcom/android/server/wm/WindowState;
PLcom/android/server/wm/WallpaperController;->hideDeferredWallpapersIfNeeded()V
-PLcom/android/server/wm/WallpaperController;->hideWallpapers(Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/WallpaperController;->hideWallpapers(Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/WallpaperController;->isBelowWallpaperTarget(Lcom/android/server/wm/WindowState;)Z
PLcom/android/server/wm/WallpaperController;->isWallpaperTarget(Lcom/android/server/wm/WindowState;)Z
PLcom/android/server/wm/WallpaperController;->isWallpaperTargetAnimating()Z
-PLcom/android/server/wm/WallpaperController;->isWallpaperVisible()Z
-PLcom/android/server/wm/WallpaperController;->isWallpaperVisible(Lcom/android/server/wm/WindowState;)Z
-PLcom/android/server/wm/WallpaperController;->lambda$new$0$WallpaperController(Lcom/android/server/wm/WindowState;)Z
+HSPLcom/android/server/wm/WallpaperController;->isWallpaperVisible()Z
+HSPLcom/android/server/wm/WallpaperController;->isWallpaperVisible(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/WallpaperController;->lambda$new$0$WallpaperController(Lcom/android/server/wm/WindowState;)Z
+PLcom/android/server/wm/WallpaperController;->lambda$updateWallpaperWindowsTarget$1(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)Z
+PLcom/android/server/wm/WallpaperController;->sendWindowWallpaperCommand(Lcom/android/server/wm/WindowState;Ljava/lang/String;IIILandroid/os/Bundle;Z)Landroid/os/Bundle;
PLcom/android/server/wm/WallpaperController;->setWindowWallpaperPosition(Lcom/android/server/wm/WindowState;FFFF)V
PLcom/android/server/wm/WallpaperController;->updateWallpaperOffset(Lcom/android/server/wm/WindowState;IIZ)Z
PLcom/android/server/wm/WallpaperController;->updateWallpaperOffsetLocked(Lcom/android/server/wm/WindowState;Z)V
-PLcom/android/server/wm/WallpaperController;->updateWallpaperTokens(Z)V
+HPLcom/android/server/wm/WallpaperController;->updateWallpaperTokens(Z)V
PLcom/android/server/wm/WallpaperController;->updateWallpaperWindowsTarget(Lcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;)V
PLcom/android/server/wm/WallpaperController;->wallpaperOffsetsComplete(Landroid/os/IBinder;)V
PLcom/android/server/wm/WallpaperController;->wallpaperTransitionReady()Z
-PLcom/android/server/wm/WallpaperVisibilityListeners;-><init>()V
+HSPLcom/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;Z)V
PLcom/android/server/wm/WallpaperWindowToken;->forAllWallpaperWindows(Ljava/util/function/Consumer;)V
PLcom/android/server/wm/WallpaperWindowToken;->hasVisibleNotDrawnWallpaper()Z
PLcom/android/server/wm/WallpaperWindowToken;->hideWallpaperToken(ZLjava/lang/String;)V
+PLcom/android/server/wm/WallpaperWindowToken;->sendWindowWallpaperCommand(Ljava/lang/String;IIILandroid/os/Bundle;Z)V
PLcom/android/server/wm/WallpaperWindowToken;->toString()Ljava/lang/String;
PLcom/android/server/wm/WallpaperWindowToken;->updateWallpaperOffset(IIZ)V
PLcom/android/server/wm/WallpaperWindowToken;->updateWallpaperVisibility(Z)V
-PLcom/android/server/wm/WallpaperWindowToken;->updateWallpaperWindows(Z)V
-PLcom/android/server/wm/WindowAnimationSpec$TmpValues;-><init>()V
-PLcom/android/server/wm/WindowAnimationSpec$TmpValues;-><init>(Lcom/android/server/wm/WindowAnimationSpec$1;)V
+HPLcom/android/server/wm/WallpaperWindowToken;->updateWallpaperWindows(Z)V
+HPLcom/android/server/wm/WindowAnimationSpec$TmpValues;-><init>()V
+HPLcom/android/server/wm/WindowAnimationSpec$TmpValues;-><init>(Lcom/android/server/wm/WindowAnimationSpec$1;)V
PLcom/android/server/wm/WindowAnimationSpec;-><init>(Landroid/view/animation/Animation;Landroid/graphics/Point;Landroid/graphics/Rect;ZIZF)V
-PLcom/android/server/wm/WindowAnimationSpec;-><init>(Landroid/view/animation/Animation;Landroid/graphics/Point;ZF)V
-PLcom/android/server/wm/WindowAnimationSpec;->apply(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;J)V
+HPLcom/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
PLcom/android/server/wm/WindowAnimationSpec;->calculateStatusBarTransitionStartTime()J
PLcom/android/server/wm/WindowAnimationSpec;->canSkipFirstFrame()Z
-PLcom/android/server/wm/WindowAnimationSpec;->findAlmostThereFraction(Landroid/view/animation/Interpolator;)F
+PLcom/android/server/wm/WindowAnimationSpec;->dumpDebugInner(Landroid/util/proto/ProtoOutputStream;)V
+HPLcom/android/server/wm/WindowAnimationSpec;->findAlmostThereFraction(Landroid/view/animation/Interpolator;)F
PLcom/android/server/wm/WindowAnimationSpec;->findTranslateAnimation(Landroid/view/animation/Animation;)Landroid/view/animation/TranslateAnimation;
PLcom/android/server/wm/WindowAnimationSpec;->getDuration()J
PLcom/android/server/wm/WindowAnimationSpec;->getShowWallpaper()Z
-PLcom/android/server/wm/WindowAnimationSpec;->lambda$new$0()Lcom/android/server/wm/WindowAnimationSpec$TmpValues;
-PLcom/android/server/wm/WindowAnimationSpec;->needsEarlyWakeup()Z
-PLcom/android/server/wm/WindowAnimationSpec;->writeToProtoInner(Landroid/util/proto/ProtoOutputStream;)V
-PLcom/android/server/wm/WindowAnimator$DisplayContentsAnimator;-><init>(Lcom/android/server/wm/WindowAnimator;)V
-PLcom/android/server/wm/WindowAnimator$DisplayContentsAnimator;-><init>(Lcom/android/server/wm/WindowAnimator;Lcom/android/server/wm/WindowAnimator$1;)V
-PLcom/android/server/wm/WindowAnimator;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowAnimator;->addDisplayLocked(I)V
-PLcom/android/server/wm/WindowAnimator;->animate(J)V
-PLcom/android/server/wm/WindowAnimator;->cancelAnimation()V
-PLcom/android/server/wm/WindowAnimator;->executeAfterPrepareSurfacesRunnables()V
-PLcom/android/server/wm/WindowAnimator;->getDisplayContentsAnimatorLocked(I)Lcom/android/server/wm/WindowAnimator$DisplayContentsAnimator;
-PLcom/android/server/wm/WindowAnimator;->lambda$new$0$WindowAnimator()V
-PLcom/android/server/wm/WindowAnimator;->lambda$new$1$WindowAnimator(J)V
-PLcom/android/server/wm/WindowAnimator;->orAnimating(Z)V
-PLcom/android/server/wm/WindowAnimator;->ready()V
+HPLcom/android/server/wm/WindowAnimationSpec;->lambda$new$0()Lcom/android/server/wm/WindowAnimationSpec$TmpValues;
+HPLcom/android/server/wm/WindowAnimationSpec;->needsEarlyWakeup()Z
+HSPLcom/android/server/wm/WindowAnimator$DisplayContentsAnimator;-><init>(Lcom/android/server/wm/WindowAnimator;)V
+HSPLcom/android/server/wm/WindowAnimator$DisplayContentsAnimator;-><init>(Lcom/android/server/wm/WindowAnimator;Lcom/android/server/wm/WindowAnimator$1;)V
+HSPLcom/android/server/wm/WindowAnimator;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/WindowAnimator;->addDisplayLocked(I)V
+HSPLcom/android/server/wm/WindowAnimator;->animate(J)V
+HSPLcom/android/server/wm/WindowAnimator;->cancelAnimation()V
+PLcom/android/server/wm/WindowAnimator;->dumpLocked(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+HSPLcom/android/server/wm/WindowAnimator;->executeAfterPrepareSurfacesRunnables()V
+HSPLcom/android/server/wm/WindowAnimator;->getDisplayContentsAnimatorLocked(I)Lcom/android/server/wm/WindowAnimator$DisplayContentsAnimator;
+PLcom/android/server/wm/WindowAnimator;->isAnimating()Z
+PLcom/android/server/wm/WindowAnimator;->isAnimationScheduled()Z
+HSPLcom/android/server/wm/WindowAnimator;->lambda$new$0$WindowAnimator()V
+HSPLcom/android/server/wm/WindowAnimator;->lambda$new$1$WindowAnimator(J)V
+HSPLcom/android/server/wm/WindowAnimator;->orAnimating(Z)V
+HSPLcom/android/server/wm/WindowAnimator;->ready()V
PLcom/android/server/wm/WindowAnimator;->requestRemovalOfReplacedWindows(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowAnimator;->scheduleAnimation()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$1;)V
+HSPLcom/android/server/wm/WindowAnimator;->scheduleAnimation()V
+HSPLcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;-><init>(Lcom/android/server/wm/WindowContainer;)V
+HSPLcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;-><init>(Lcom/android/server/wm/WindowContainer;Lcom/android/server/wm/WindowContainer$1;)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
-PLcom/android/server/wm/WindowContainer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowContainer;->access$100(Lcom/android/server/wm/WindowContainer;)Landroid/util/Pools$SynchronizedPool;
-PLcom/android/server/wm/WindowContainer;->addChild(Lcom/android/server/wm/WindowContainer;I)V
-PLcom/android/server/wm/WindowContainer;->addChild(Lcom/android/server/wm/WindowContainer;Ljava/util/Comparator;)V
-PLcom/android/server/wm/WindowContainer;->applyAnimation(Landroid/view/WindowManager$LayoutParams;IZZ)Z
-PLcom/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;I)V
+HSPLcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;->release()V
+HSPLcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;->setConsumer(Ljava/util/function/Consumer;)V
+HSPLcom/android/server/wm/WindowContainer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/WindowContainer;->access$100(Lcom/android/server/wm/WindowContainer;)Landroid/util/Pools$SynchronizedPool;
+HSPLcom/android/server/wm/WindowContainer;->addChild(Lcom/android/server/wm/WindowContainer;I)V
+HSPLcom/android/server/wm/WindowContainer;->addChild(Lcom/android/server/wm/WindowContainer;Ljava/util/Comparator;)V
+HPLcom/android/server/wm/WindowContainer;->applyAnimation(Landroid/view/WindowManager$LayoutParams;IZZ)Z
+HSPLcom/android/server/wm/WindowContainer;->assignChildLayers()V
+HSPLcom/android/server/wm/WindowContainer;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
+HSPLcom/android/server/wm/WindowContainer;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V
+HSPLcom/android/server/wm/WindowContainer;->assignRelativeLayer(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;I)V
PLcom/android/server/wm/WindowContainer;->cancelAnimation()V
-HPLcom/android/server/wm/WindowContainer;->checkAppWindowsReadyToShow()V
-HPLcom/android/server/wm/WindowContainer;->checkCompleteDeferredRemoval()Z
+HSPLcom/android/server/wm/WindowContainer;->checkAppWindowsReadyToShow()V
+HSPLcom/android/server/wm/WindowContainer;->checkCompleteDeferredRemoval()Z
PLcom/android/server/wm/WindowContainer;->commitPendingTransaction()V
-PLcom/android/server/wm/WindowContainer;->compareTo(Lcom/android/server/wm/WindowContainer;)I
-HPLcom/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/Function;)Z
-HPLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Function;Z)Z
-PLcom/android/server/wm/WindowContainer;->forAllTasks(Lcom/android/internal/util/ToBooleanFunction;)Z
-PLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Consumer;)V
+HPLcom/android/server/wm/WindowContainer;->compareTo(Lcom/android/server/wm/WindowContainer;)I
+HSPLcom/android/server/wm/WindowContainer;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+HPLcom/android/server/wm/WindowContainer;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
+HSPLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Consumer;)V
+HSPLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Consumer;Z)V
+HSPLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Function;)Z
+PLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Function;Lcom/android/server/wm/WindowContainer;ZZ)Z
+PLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Function;Lcom/android/server/wm/WindowContainer;ZZ[Z)Z
+HSPLcom/android/server/wm/WindowContainer;->forAllActivities(Ljava/util/function/Function;Z)Z
+HSPLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Consumer;)V
+HSPLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Consumer;Z)V
+HPLcom/android/server/wm/WindowContainer;->forAllTasks(Ljava/util/function/Function;)Z
HPLcom/android/server/wm/WindowContainer;->forAllWallpaperWindows(Ljava/util/function/Consumer;)V
-HPLcom/android/server/wm/WindowContainer;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
-PLcom/android/server/wm/WindowContainer;->forAllWindows(Ljava/util/function/Consumer;Z)V
-HPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;)Lcom/android/server/wm/ActivityRecord;
+HSPLcom/android/server/wm/WindowContainer;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
+HSPLcom/android/server/wm/WindowContainer;->forAllWindows(Ljava/util/function/Consumer;Z)V
+PLcom/android/server/wm/WindowContainer;->forceWindowsScaleableInTransaction(Z)V
+HSPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;)Lcom/android/server/wm/ActivityRecord;
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;
-HPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/ActivityRecord;
+HSPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/ActivityRecord;
+HSPLcom/android/server/wm/WindowContainer;->getActivity(Ljava/util/function/Predicate;ZLcom/android/server/wm/WindowContainer;)Lcom/android/server/wm/ActivityRecord;
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;->getAnimation()Lcom/android/server/wm/AnimationAdapter;
-PLcom/android/server/wm/WindowContainer;->getAnimationAdapter(Landroid/view/WindowManager$LayoutParams;IZZ)Landroid/util/Pair;
+HPLcom/android/server/wm/WindowContainer;->getAnimationAdapter(Landroid/view/WindowManager$LayoutParams;IZZ)Landroid/util/Pair;
PLcom/android/server/wm/WindowContainer;->getAnimationLeashParent()Landroid/view/SurfaceControl;
PLcom/android/server/wm/WindowContainer;->getAppAnimationLayer(I)Landroid/view/SurfaceControl;
PLcom/android/server/wm/WindowContainer;->getBottomMostActivity()Lcom/android/server/wm/ActivityRecord;
-PLcom/android/server/wm/WindowContainer;->getChildAt(I)Lcom/android/server/wm/ConfigurationContainer;
-PLcom/android/server/wm/WindowContainer;->getChildAt(I)Lcom/android/server/wm/WindowContainer;
-PLcom/android/server/wm/WindowContainer;->getChildCount()I
+HSPLcom/android/server/wm/WindowContainer;->getChildAt(I)Lcom/android/server/wm/ConfigurationContainer;
+HSPLcom/android/server/wm/WindowContainer;->getChildAt(I)Lcom/android/server/wm/WindowContainer;
+HSPLcom/android/server/wm/WindowContainer;->getChildCount()I
HPLcom/android/server/wm/WindowContainer;->getDimmer()Lcom/android/server/wm/Dimmer;
-HPLcom/android/server/wm/WindowContainer;->getDisplayContent()Lcom/android/server/wm/DisplayContent;
-HPLcom/android/server/wm/WindowContainer;->getDisplayedBounds()Landroid/graphics/Rect;
-PLcom/android/server/wm/WindowContainer;->getOrientation(I)I
-PLcom/android/server/wm/WindowContainer;->getParent()Lcom/android/server/wm/ConfigurationContainer;
-PLcom/android/server/wm/WindowContainer;->getParent()Lcom/android/server/wm/WindowContainer;
+HSPLcom/android/server/wm/WindowContainer;->getDisplayContent()Lcom/android/server/wm/DisplayContent;
+HSPLcom/android/server/wm/WindowContainer;->getDisplayedBounds()Landroid/graphics/Rect;
+PLcom/android/server/wm/WindowContainer;->getOrientation()I
+HPLcom/android/server/wm/WindowContainer;->getOrientation(I)I
+HSPLcom/android/server/wm/WindowContainer;->getParent()Lcom/android/server/wm/ConfigurationContainer;
+HSPLcom/android/server/wm/WindowContainer;->getParent()Lcom/android/server/wm/WindowContainer;
PLcom/android/server/wm/WindowContainer;->getParentSurfaceControl()Landroid/view/SurfaceControl;
-PLcom/android/server/wm/WindowContainer;->getPendingTransaction()Landroid/view/SurfaceControl$Transaction;
+PLcom/android/server/wm/WindowContainer;->getParents(Ljava/util/LinkedList;)V
+HSPLcom/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
-PLcom/android/server/wm/WindowContainer;->getRelativeDisplayedPosition(Landroid/graphics/Point;)V
+HPLcom/android/server/wm/WindowContainer;->getPrefixOrderIndex(Lcom/android/server/wm/WindowContainer;)I
+HSPLcom/android/server/wm/WindowContainer;->getRelativeDisplayedPosition(Landroid/graphics/Point;)V
PLcom/android/server/wm/WindowContainer;->getRequestedConfigurationOrientation()I
-PLcom/android/server/wm/WindowContainer;->getSession()Landroid/view/SurfaceSession;
+HSPLcom/android/server/wm/WindowContainer;->getSession()Landroid/view/SurfaceSession;
PLcom/android/server/wm/WindowContainer;->getSurfaceAnimationRunner()Lcom/android/server/wm/SurfaceAnimationRunner;
-PLcom/android/server/wm/WindowContainer;->getSurfaceControl()Landroid/view/SurfaceControl;
+HSPLcom/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;->getTask(Ljava/util/function/Predicate;)Lcom/android/server/wm/Task;
-PLcom/android/server/wm/WindowContainer;->getTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;
+HSPLcom/android/server/wm/WindowContainer;->getTask(Ljava/util/function/Predicate;Z)Lcom/android/server/wm/Task;
HPLcom/android/server/wm/WindowContainer;->getTopActivity(ZZ)Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/WindowContainer;->getTopChild()Lcom/android/server/wm/WindowContainer;
PLcom/android/server/wm/WindowContainer;->getTopMostActivity()Lcom/android/server/wm/ActivityRecord;
-HPLcom/android/server/wm/WindowContainer;->getWindow(Ljava/util/function/Predicate;)Lcom/android/server/wm/WindowState;
+HSPLcom/android/server/wm/WindowContainer;->getTopMostTask()Lcom/android/server/wm/Task;
+HSPLcom/android/server/wm/WindowContainer;->getWindow(Ljava/util/function/Predicate;)Lcom/android/server/wm/WindowState;
PLcom/android/server/wm/WindowContainer;->handlesOrientationChangeFromDescendant()Z
HPLcom/android/server/wm/WindowContainer;->hasActivity()Z
HPLcom/android/server/wm/WindowContainer;->hasChild(Lcom/android/server/wm/WindowContainer;)Z
PLcom/android/server/wm/WindowContainer;->hasContentToDisplay()Z
PLcom/android/server/wm/WindowContainer;->isAnimating()Z
-HPLcom/android/server/wm/WindowContainer;->isAnimating(I)Z
+HSPLcom/android/server/wm/WindowContainer;->isAnimating(I)Z
PLcom/android/server/wm/WindowContainer;->isAppTransitioning()Z
PLcom/android/server/wm/WindowContainer;->isOnTop()Z
HPLcom/android/server/wm/WindowContainer;->isVisible()Z
-HPLcom/android/server/wm/WindowContainer;->isWaitingForTransitionStart()Z
+HSPLcom/android/server/wm/WindowContainer;->isWaitingForTransitionStart()Z
PLcom/android/server/wm/WindowContainer;->lambda$getActivityAbove$1(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/WindowContainer;->lambda$getActivityBelow$2(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/WindowContainer;->lambda$getBottomMostActivity$3(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/WindowContainer;->lambda$getBottomMostTask$11(Lcom/android/server/wm/Task;)Z
PLcom/android/server/wm/WindowContainer;->lambda$getTopActivity$7(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/WindowContainer;->lambda$getTopActivity$8(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/WindowContainer;->lambda$getTopMostActivity$4(Lcom/android/server/wm/ActivityRecord;)Z
+PLcom/android/server/wm/WindowContainer;->lambda$getTopMostTask$12(Lcom/android/server/wm/Task;)Z
HPLcom/android/server/wm/WindowContainer;->lambda$isAppTransitioning$0(Lcom/android/server/wm/ActivityRecord;)Z
-HPLcom/android/server/wm/WindowContainer;->lambda$waitForAllWindowsDrawn$9$WindowContainer(Lcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowContainer;->loadAnimation(Landroid/view/WindowManager$LayoutParams;IZZ)Landroid/view/animation/Animation;
+HPLcom/android/server/wm/WindowContainer;->lambda$waitForAllWindowsDrawn$13$WindowContainer(Lcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/WindowState;)V
+HPLcom/android/server/wm/WindowContainer;->loadAnimation(Landroid/view/WindowManager$LayoutParams;IZZ)Landroid/view/animation/Animation;
PLcom/android/server/wm/WindowContainer;->makeAnimationLeash()Landroid/view/SurfaceControl$Builder;
-PLcom/android/server/wm/WindowContainer;->makeChildSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl$Builder;
-PLcom/android/server/wm/WindowContainer;->makeSurface()Landroid/view/SurfaceControl$Builder;
+HSPLcom/android/server/wm/WindowContainer;->makeChildSurface(Lcom/android/server/wm/WindowContainer;)Landroid/view/SurfaceControl$Builder;
+HSPLcom/android/server/wm/WindowContainer;->makeSurface()Landroid/view/SurfaceControl$Builder;
HPLcom/android/server/wm/WindowContainer;->needsZBoost()Z
-HPLcom/android/server/wm/WindowContainer;->obtainConsumerWrapper(Ljava/util/function/Consumer;)Lcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;
-PLcom/android/server/wm/WindowContainer;->okToAnimate()Z
+HSPLcom/android/server/wm/WindowContainer;->obtainConsumerWrapper(Ljava/util/function/Consumer;)Lcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;
+HPLcom/android/server/wm/WindowContainer;->okToAnimate()Z
PLcom/android/server/wm/WindowContainer;->okToDisplay()Z
PLcom/android/server/wm/WindowContainer;->onAnimationFinished()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
-PLcom/android/server/wm/WindowContainer;->onAppTransitionDone()V
-PLcom/android/server/wm/WindowContainer;->onChildAdded(Lcom/android/server/wm/WindowContainer;)V
-PLcom/android/server/wm/WindowContainer;->onChildPositionChanged(Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/WindowContainer;->onAppTransitionDone()V
+HSPLcom/android/server/wm/WindowContainer;->onChildAdded(Lcom/android/server/wm/WindowContainer;)V
+HSPLcom/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;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/WindowContainer;->onConfigurationChanged(Landroid/content/res/Configuration;)V
PLcom/android/server/wm/WindowContainer;->onDescendantOrientationChanged(Landroid/os/IBinder;Lcom/android/server/wm/ConfigurationContainer;)Z
-PLcom/android/server/wm/WindowContainer;->onDescendantOverrideConfigurationChanged()V
-PLcom/android/server/wm/WindowContainer;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/WindowContainer;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
-HPLcom/android/server/wm/WindowContainer;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WindowContainer$PreAssignChildLayersCallback;)V
-PLcom/android/server/wm/WindowContainer;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/WindowContainer;->onResize()V
-PLcom/android/server/wm/WindowContainer;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
-HPLcom/android/server/wm/WindowContainer;->prepareSurfaces()V
+HSPLcom/android/server/wm/WindowContainer;->onDescendantOverrideConfigurationChanged()V
+HSPLcom/android/server/wm/WindowContainer;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/WindowContainer;->onMovedByResize()V
+HSPLcom/android/server/wm/WindowContainer;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
+HSPLcom/android/server/wm/WindowContainer;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/WindowContainer$PreAssignChildLayersCallback;)V
+HSPLcom/android/server/wm/WindowContainer;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/WindowContainer;->onResize()V
+HSPLcom/android/server/wm/WindowContainer;->positionChildAt(ILcom/android/server/wm/WindowContainer;Z)V
+HSPLcom/android/server/wm/WindowContainer;->prepareSurfaces()V
+PLcom/android/server/wm/WindowContainer;->processForAllActivitiesWithBoundary(Ljava/util/function/Function;Lcom/android/server/wm/WindowContainer;ZZ[ZLcom/android/server/wm/WindowContainer;)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;->reassignLayer(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/WindowContainer;->removeChild(Lcom/android/server/wm/WindowContainer;)V
+HPLcom/android/server/wm/WindowContainer;->removeChild(Lcom/android/server/wm/WindowContainer;)V
PLcom/android/server/wm/WindowContainer;->removeIfPossible()V
PLcom/android/server/wm/WindowContainer;->removeImmediately()V
-PLcom/android/server/wm/WindowContainer;->scheduleAnimation()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
+HSPLcom/android/server/wm/WindowContainer;->scheduleAnimation()V
PLcom/android/server/wm/WindowContainer;->sendAppVisibilityToClients()V
-PLcom/android/server/wm/WindowContainer;->setLayer(Landroid/view/SurfaceControl$Transaction;I)V
+HSPLcom/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(ILandroid/os/IBinder;Lcom/android/server/wm/ConfigurationContainer;)V
-PLcom/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
+HSPLcom/android/server/wm/WindowContainer;->setParent(Lcom/android/server/wm/WindowContainer;)V
+HSPLcom/android/server/wm/WindowContainer;->setRelativeLayer(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;I)V
PLcom/android/server/wm/WindowContainer;->startAnimation(Landroid/view/SurfaceControl$Transaction;Lcom/android/server/wm/AnimationAdapter;Z)V
-PLcom/android/server/wm/WindowContainer;->updateSurfacePosition()V
+HSPLcom/android/server/wm/WindowContainer;->updateSurfacePosition()V
PLcom/android/server/wm/WindowContainer;->waitForAllWindowsDrawn()V
-PLcom/android/server/wm/WindowContainer;->writeToProto(Landroid/util/proto/ProtoOutputStream;JI)V
PLcom/android/server/wm/WindowFrames;-><clinit>()V
PLcom/android/server/wm/WindowFrames;-><init>()V
PLcom/android/server/wm/WindowFrames;->calculateDockedDividerInsets(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/WindowFrames;->calculateInsets(ZZLandroid/graphics/Rect;)V
-PLcom/android/server/wm/WindowFrames;->didFrameSizeChange()Z
+HPLcom/android/server/wm/WindowFrames;->calculateInsets(ZZLandroid/graphics/Rect;)V
+HPLcom/android/server/wm/WindowFrames;->didFrameSizeChange()Z
+PLcom/android/server/wm/WindowFrames;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HPLcom/android/server/wm/WindowFrames;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
PLcom/android/server/wm/WindowFrames;->hasContentChanged()Z
-PLcom/android/server/wm/WindowFrames;->offsetFrames(II)V
+HPLcom/android/server/wm/WindowFrames;->offsetFrames(II)V
PLcom/android/server/wm/WindowFrames;->parentFrameWasClippedByDisplayCutout()Z
PLcom/android/server/wm/WindowFrames;->resetInsetsChanged()V
PLcom/android/server/wm/WindowFrames;->resetLastContentInsets()V
+PLcom/android/server/wm/WindowFrames;->scaleInsets(F)V
PLcom/android/server/wm/WindowFrames;->setContentChanged(Z)V
-PLcom/android/server/wm/WindowFrames;->setDisplayCutout(Lcom/android/server/wm/utils/WmDisplayCutout;)V
+HPLcom/android/server/wm/WindowFrames;->setDisplayCutout(Lcom/android/server/wm/utils/WmDisplayCutout;)V
HPLcom/android/server/wm/WindowFrames;->setFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
-PLcom/android/server/wm/WindowFrames;->setParentFrameWasClippedByDisplayCutout(Z)V
-PLcom/android/server/wm/WindowFrames;->setReportResizeHints()Z
+HPLcom/android/server/wm/WindowFrames;->setParentFrameWasClippedByDisplayCutout(Z)V
+HPLcom/android/server/wm/WindowFrames;->setReportResizeHints()Z
PLcom/android/server/wm/WindowFrames;->updateLastInsetValues()V
-PLcom/android/server/wm/WindowFrames;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-PLcom/android/server/wm/WindowList;-><init>()V
-PLcom/android/server/wm/WindowList;->peekLast()Ljava/lang/Object;
-PLcom/android/server/wm/WindowManagerConstants;-><init>(Lcom/android/server/wm/WindowManagerGlobalLock;Ljava/lang/Runnable;Lcom/android/server/wm/utils/DeviceConfigInterface;)V
-PLcom/android/server/wm/WindowManagerConstants;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/utils/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
+HSPLcom/android/server/wm/WindowList;-><init>()V
+HSPLcom/android/server/wm/WindowList;->peekLast()Ljava/lang/Object;
+HSPLcom/android/server/wm/WindowManagerConstants;-><init>(Lcom/android/server/wm/WindowManagerGlobalLock;Ljava/lang/Runnable;Lcom/android/server/wm/utils/DeviceConfigInterface;)V
+HSPLcom/android/server/wm/WindowManagerConstants;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/utils/DeviceConfigInterface;)V
+PLcom/android/server/wm/WindowManagerConstants;->dump(Ljava/io/PrintWriter;)V
+HSPLcom/android/server/wm/WindowManagerConstants;->start(Ljava/util/concurrent/Executor;)V
+HSPLcom/android/server/wm/WindowManagerConstants;->updateSystemGestureExcludedByPreQStickyImmersive()V
+HSPLcom/android/server/wm/WindowManagerConstants;->updateSystemGestureExclusionLimitDp()V
+HSPLcom/android/server/wm/WindowManagerConstants;->updateSystemGestureExclusionLogDebounceMillis()V
HSPLcom/android/server/wm/WindowManagerGlobalLock;-><init>()V
-PLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;-><init>()V
+HSPLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;-><init>()V
+PLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;->onAppTransitionCancelledLocked(I)V
PLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;->onAppTransitionFinishedLocked(Landroid/os/IBinder;)V
PLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;->onAppTransitionPendingLocked()V
PLcom/android/server/wm/WindowManagerInternal$AppTransitionListener;->onAppTransitionStartingLocked(IJJJ)I
-PLcom/android/server/wm/WindowManagerInternal;-><init>()V
+HSPLcom/android/server/wm/WindowManagerInternal;-><init>()V
PLcom/android/server/wm/WindowManagerService$10;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;)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;->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$4;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/WindowManagerService$1;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/WindowManagerService$2;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HPLcom/android/server/wm/WindowManagerService$2;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/wm/WindowManagerService$3;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/WindowManagerService$3;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+PLcom/android/server/wm/WindowManagerService$3;->dumpCritical(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)V
+HSPLcom/android/server/wm/WindowManagerService$4;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/WindowManagerService$4;->onAppTransitionCancelledLocked(I)V
PLcom/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$H;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowManagerService$H;->handleMessage(Landroid/os/Message;)V
+HSPLcom/android/server/wm/WindowManagerService$5;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/WindowManagerService$5;->run()V
+HSPLcom/android/server/wm/WindowManagerService$6;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/WindowManagerService$7;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/WindowManagerService$8;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/WindowManagerService$8;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+HSPLcom/android/server/wm/WindowManagerService$H;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/WindowManagerService$H;->handleMessage(Landroid/os/Message;)V
PLcom/android/server/wm/WindowManagerService$H;->sendNewMessageDelayed(ILjava/lang/Object;J)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$1;)V
+HSPLcom/android/server/wm/WindowManagerService$LocalService;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/WindowManagerService$LocalService;-><init>(Lcom/android/server/wm/WindowManagerService;Lcom/android/server/wm/WindowManagerService$1;)V
+HPLcom/android/server/wm/WindowManagerService$LocalService;->addNonHighRefreshRatePackage(Ljava/lang/String;)V
PLcom/android/server/wm/WindowManagerService$LocalService;->addWindowToken(Landroid/os/IBinder;II)V
-HPLcom/android/server/wm/WindowManagerService$LocalService;->clearSnapshotCache()V
+HSPLcom/android/server/wm/WindowManagerService$LocalService;->clearSnapshotCache()V
PLcom/android/server/wm/WindowManagerService$LocalService;->getDisplayIdForWindow(Landroid/os/IBinder;)I
-PLcom/android/server/wm/WindowManagerService$LocalService;->getKeyInterceptionInfoFromToken(Landroid/os/IBinder;)Lcom/android/internal/policy/KeyInterceptionInfo;
+HPLcom/android/server/wm/WindowManagerService$LocalService;->getTopFocusedDisplayId()I
+PLcom/android/server/wm/WindowManagerService$LocalService;->isHardKeyboardAvailable()Z
PLcom/android/server/wm/WindowManagerService$LocalService;->isInputMethodClientFocus(III)Z
PLcom/android/server/wm/WindowManagerService$LocalService;->isKeyguardShowingAndNotOccluded()Z
PLcom/android/server/wm/WindowManagerService$LocalService;->isStackVisibleLw(I)Z
PLcom/android/server/wm/WindowManagerService$LocalService;->isUidAllowedOnDisplay(II)Z
-PLcom/android/server/wm/WindowManagerService$LocalService;->registerAppTransitionListener(Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;)V
+PLcom/android/server/wm/WindowManagerService$LocalService;->isUidFocused(I)Z
+HPLcom/android/server/wm/WindowManagerService$LocalService;->lambda$addNonHighRefreshRatePackage$0(Ljava/lang/String;Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/WindowManagerService$LocalService;->lambda$removeNonHighRefreshRatePackage$1(Ljava/lang/String;Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/WindowManagerService$LocalService;->registerAppTransitionListener(Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;)V
+HPLcom/android/server/wm/WindowManagerService$LocalService;->removeNonHighRefreshRatePackage(Ljava/lang/String;)V
PLcom/android/server/wm/WindowManagerService$LocalService;->removeWindowToken(Landroid/os/IBinder;ZI)V
-PLcom/android/server/wm/WindowManagerService$LocalService;->requestTraversalFromDisplayManager()V
-PLcom/android/server/wm/WindowManagerService$LocalService;->setOnHardKeyboardStatusChangeListener(Lcom/android/server/wm/WindowManagerInternal$OnHardKeyboardStatusChangeListener;)V
+HSPLcom/android/server/wm/WindowManagerService$LocalService;->requestTraversalFromDisplayManager()V
+HSPLcom/android/server/wm/WindowManagerService$LocalService;->setOnHardKeyboardStatusChangeListener(Lcom/android/server/wm/WindowManagerInternal$OnHardKeyboardStatusChangeListener;)V
PLcom/android/server/wm/WindowManagerService$LocalService;->updateInputMethodTargetWindow(Landroid/os/IBinder;Landroid/os/IBinder;)V
-PLcom/android/server/wm/WindowManagerService$LocalService;->waitForAllWindowsDrawn(Ljava/lang/Runnable;JI)V
-PLcom/android/server/wm/WindowManagerService$MousePositionTracker;-><init>()V
-PLcom/android/server/wm/WindowManagerService$MousePositionTracker;-><init>(Lcom/android/server/wm/WindowManagerService$1;)V
-PLcom/android/server/wm/WindowManagerService$MousePositionTracker;->onPointerEvent(Landroid/view/MotionEvent;)V
+PLcom/android/server/wm/WindowManagerService$LocalService;->updateInputMethodWindowStatus(Landroid/os/IBinder;ZZ)V
+HPLcom/android/server/wm/WindowManagerService$LocalService;->waitForAllWindowsDrawn(Ljava/lang/Runnable;JI)V
+HSPLcom/android/server/wm/WindowManagerService$MousePositionTracker;-><init>()V
+HSPLcom/android/server/wm/WindowManagerService$MousePositionTracker;-><init>(Lcom/android/server/wm/WindowManagerService$1;)V
+HPLcom/android/server/wm/WindowManagerService$MousePositionTracker;->onPointerEvent(Landroid/view/MotionEvent;)V
PLcom/android/server/wm/WindowManagerService$RotationWatcher;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/view/IRotationWatcher;Landroid/os/IBinder$DeathRecipient;I)V
-PLcom/android/server/wm/WindowManagerService$SettingsObserver;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowManagerService$SettingsObserver;->onChange(ZLandroid/net/Uri;)V
-PLcom/android/server/wm/WindowManagerService$SettingsObserver;->updatePointerLocation()V
-PLcom/android/server/wm/WindowManagerService$SettingsObserver;->updateSystemUiSettings()V
+HSPLcom/android/server/wm/WindowManagerService$SettingsObserver;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/WindowManagerService$SettingsObserver;->updatePointerLocation()V
+HSPLcom/android/server/wm/WindowManagerService$SettingsObserver;->updateSystemUiSettings()V
HSPLcom/android/server/wm/WindowManagerService;-><clinit>()V
-PLcom/android/server/wm/WindowManagerService;-><init>(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Function;)V
+HSPLcom/android/server/wm/WindowManagerService;-><init>(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Function;)V
+PLcom/android/server/wm/WindowManagerService;->access$000(Lcom/android/server/wm/WindowManagerService;)Lcom/android/server/wm/KeyguardDisableHandler;
PLcom/android/server/wm/WindowManagerService;->access$1000(Lcom/android/server/wm/WindowManagerService;)V
PLcom/android/server/wm/WindowManagerService;->access$1300(Lcom/android/server/wm/WindowManagerService;)Z
PLcom/android/server/wm/WindowManagerService;->access$1400(Lcom/android/server/wm/WindowManagerService;)Lcom/android/server/wm/RecentsAnimationController;
-PLcom/android/server/wm/WindowManagerService;->access$1500(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;)V
-PLcom/android/server/wm/WindowManagerService;->access$600(Lcom/android/server/wm/WindowManagerService;)V
+HPLcom/android/server/wm/WindowManagerService;->access$1500(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;)V
+PLcom/android/server/wm/WindowManagerService;->access$400(Lcom/android/server/wm/WindowManagerService;Landroid/util/ArraySet;Z)V
+HPLcom/android/server/wm/WindowManagerService;->access$600(Lcom/android/server/wm/WindowManagerService;)V
HPLcom/android/server/wm/WindowManagerService;->addWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/InputChannel;Landroid/view/InsetsState;)I
PLcom/android/server/wm/WindowManagerService;->addWindowToken(Landroid/os/IBinder;II)V
-PLcom/android/server/wm/WindowManagerService;->applyForcedPropertiesForDefaultDisplay()Z
+HSPLcom/android/server/wm/WindowManagerService;->applyForcedPropertiesForDefaultDisplay()Z
HSPLcom/android/server/wm/WindowManagerService;->boostPriorityForLockedSection()V
PLcom/android/server/wm/WindowManagerService;->canStartRecentsAnimation()Z
PLcom/android/server/wm/WindowManagerService;->cancelRecentsAnimation(ILjava/lang/String;)V
@@ -19279,205 +23428,249 @@ PLcom/android/server/wm/WindowManagerService;->checkCallingPermission(Ljava/lang
PLcom/android/server/wm/WindowManagerService;->checkDrawnWindowsLocked()V
PLcom/android/server/wm/WindowManagerService;->checkSplitScreenMinimizedChanged(Z)V
PLcom/android/server/wm/WindowManagerService;->cleanupRecentsAnimation(I)V
-PLcom/android/server/wm/WindowManagerService;->closeSurfaceTransaction(Ljava/lang/String;)V
+HSPLcom/android/server/wm/WindowManagerService;->closeSurfaceTransaction(Ljava/lang/String;)V
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;
+HSPLcom/android/server/wm/WindowManagerService;->computeNewConfiguration(I)Landroid/content/res/Configuration;
+HSPLcom/android/server/wm/WindowManagerService;->computeNewConfigurationLocked(I)Landroid/content/res/Configuration;
PLcom/android/server/wm/WindowManagerService;->createInputConsumer(Landroid/os/IBinder;Ljava/lang/String;ILandroid/view/InputChannel;)V
-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
+PLcom/android/server/wm/WindowManagerService;->createInputConsumer(Landroid/os/Looper;Ljava/lang/String;Landroid/view/InputEventReceiver$Factory;I)Lcom/android/server/policy/WindowManagerPolicy$InputConsumer;
+HPLcom/android/server/wm/WindowManagerService;->createSurfaceControl(Landroid/view/SurfaceControl;ILcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowStateAnimator;)I
+HSPLcom/android/server/wm/WindowManagerService;->createWatermark()V
PLcom/android/server/wm/WindowManagerService;->destroyInputConsumer(Ljava/lang/String;I)Z
-PLcom/android/server/wm/WindowManagerService;->destroyPreservedSurfaceLocked()V
-PLcom/android/server/wm/WindowManagerService;->detectSafeMode()Z
-PLcom/android/server/wm/WindowManagerService;->dipToPixel(ILandroid/util/DisplayMetrics;)I
-PLcom/android/server/wm/WindowManagerService;->displayReady()V
+HSPLcom/android/server/wm/WindowManagerService;->destroyPreservedSurfaceLocked()V
+HSPLcom/android/server/wm/WindowManagerService;->detectSafeMode()Z
+HSPLcom/android/server/wm/WindowManagerService;->dipToPixel(ILandroid/util/DisplayMetrics;)I
+HSPLcom/android/server/wm/WindowManagerService;->displayReady()V
+PLcom/android/server/wm/WindowManagerService;->doDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;Z)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;->dumpDebugLocked(Landroid/util/proto/ProtoOutputStream;I)V
+PLcom/android/server/wm/WindowManagerService;->dumpSessionsLocked(Ljava/io/PrintWriter;Z)V
+PLcom/android/server/wm/WindowManagerService;->dumpWindowsNoHeaderLocked(Ljava/io/PrintWriter;ZLjava/util/ArrayList;)V
PLcom/android/server/wm/WindowManagerService;->enableScreenAfterBoot()V
PLcom/android/server/wm/WindowManagerService;->enableScreenIfNeeded()V
-PLcom/android/server/wm/WindowManagerService;->enableScreenIfNeededLocked()V
+HSPLcom/android/server/wm/WindowManagerService;->enableScreenIfNeededLocked()V
PLcom/android/server/wm/WindowManagerService;->excludeWindowTypeFromTapOutTask(I)Z
PLcom/android/server/wm/WindowManagerService;->executeAppTransition()V
PLcom/android/server/wm/WindowManagerService;->finishDrawingWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;Landroid/view/SurfaceControl$Transaction;)V
PLcom/android/server/wm/WindowManagerService;->freezeDisplayRotation(II)V
PLcom/android/server/wm/WindowManagerService;->freezeRotation(I)V
-PLcom/android/server/wm/WindowManagerService;->getBaseDisplaySize(ILandroid/graphics/Point;)V
-PLcom/android/server/wm/WindowManagerService;->getCameraLensCoverState()I
-PLcom/android/server/wm/WindowManagerService;->getCurrentAnimatorScale()F
-PLcom/android/server/wm/WindowManagerService;->getDefaultDisplayContentLocked()Lcom/android/server/wm/DisplayContent;
+HSPLcom/android/server/wm/WindowManagerService;->getBaseDisplaySize(ILandroid/graphics/Point;)V
+HSPLcom/android/server/wm/WindowManagerService;->getCameraLensCoverState()I
+HSPLcom/android/server/wm/WindowManagerService;->getCurrentAnimatorScale()F
+HSPLcom/android/server/wm/WindowManagerService;->getDefaultDisplayContentLocked()Lcom/android/server/wm/DisplayContent;
PLcom/android/server/wm/WindowManagerService;->getDisplayContentOrCreate(ILandroid/os/IBinder;)Lcom/android/server/wm/DisplayContent;
PLcom/android/server/wm/WindowManagerService;->getDockedStackSide()I
-PLcom/android/server/wm/WindowManagerService;->getForcedDisplayDensityForUserLocked(I)I
-PLcom/android/server/wm/WindowManagerService;->getImeFocusStackLocked()Lcom/android/server/wm/ActivityStack;
+HSPLcom/android/server/wm/WindowManagerService;->getForcedDisplayDensityForUserLocked(I)I
+HSPLcom/android/server/wm/WindowManagerService;->getImeFocusStackLocked()Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/WindowManagerService;->getInitialDisplaySize(ILandroid/graphics/Point;)V
-PLcom/android/server/wm/WindowManagerService;->getInputManagerCallback()Lcom/android/server/wm/InputManagerCallback;
-PLcom/android/server/wm/WindowManagerService;->getLidState()I
-PLcom/android/server/wm/WindowManagerService;->getRecentsAnimationController()Lcom/android/server/wm/RecentsAnimationController;
+HSPLcom/android/server/wm/WindowManagerService;->getInputManagerCallback()Lcom/android/server/wm/InputManagerCallback;
+HSPLcom/android/server/wm/WindowManagerService;->getLidState()I
+HSPLcom/android/server/wm/WindowManagerService;->getRecentsAnimationController()Lcom/android/server/wm/RecentsAnimationController;
PLcom/android/server/wm/WindowManagerService;->getStableInsets(ILandroid/graphics/Rect;)V
PLcom/android/server/wm/WindowManagerService;->getStableInsetsLocked(ILandroid/graphics/Rect;)V
-PLcom/android/server/wm/WindowManagerService;->getStackBounds(IILandroid/graphics/Rect;)V
+HSPLcom/android/server/wm/WindowManagerService;->getStackBounds(IILandroid/graphics/Rect;)V
PLcom/android/server/wm/WindowManagerService;->getTransitionAnimationScaleLocked()F
PLcom/android/server/wm/WindowManagerService;->getWindowAnimationScaleLocked()F
-PLcom/android/server/wm/WindowManagerService;->getWindowManagerLock()Ljava/lang/Object;
-PLcom/android/server/wm/WindowManagerService;->hasHdrSupport()Z
-PLcom/android/server/wm/WindowManagerService;->hasNavigationBar(I)Z
+PLcom/android/server/wm/WindowManagerService;->getWindowDisplayFrame(Lcom/android/server/wm/Session;Landroid/view/IWindow;Landroid/graphics/Rect;)V
+PLcom/android/server/wm/WindowManagerService;->getWindowId(Landroid/os/IBinder;)Landroid/view/IWindowId;
+HSPLcom/android/server/wm/WindowManagerService;->getWindowManagerLock()Ljava/lang/Object;
+PLcom/android/server/wm/WindowManagerService;->handleTaskFocusChange(Lcom/android/server/wm/Task;)V
+HSPLcom/android/server/wm/WindowManagerService;->hasHdrSupport()Z
+HSPLcom/android/server/wm/WindowManagerService;->hasNavigationBar(I)Z
+HSPLcom/android/server/wm/WindowManagerService;->hasWideColorGamutSupport()Z
PLcom/android/server/wm/WindowManagerService;->hideBootMessagesLocked()V
-PLcom/android/server/wm/WindowManagerService;->inSurfaceTransaction(Ljava/lang/Runnable;)V
-PLcom/android/server/wm/WindowManagerService;->initPolicy()V
+PLcom/android/server/wm/WindowManagerService;->hideTransientBars(I)V
+HSPLcom/android/server/wm/WindowManagerService;->inSurfaceTransaction(Ljava/lang/Runnable;)V
+HSPLcom/android/server/wm/WindowManagerService;->initPolicy()V
PLcom/android/server/wm/WindowManagerService;->initializeRecentsAnimation(ILandroid/view/IRecentsAnimationRunner;Lcom/android/server/wm/RecentsAnimationController$RecentsAnimationCallbacks;ILandroid/util/SparseBooleanArray;Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/WindowManagerService;->isCurrentProfileLocked(I)Z
-PLcom/android/server/wm/WindowManagerService;->isKeyguardLocked()Z
+HSPLcom/android/server/wm/WindowManagerService;->isKeyguardLocked()Z
PLcom/android/server/wm/WindowManagerService;->isKeyguardSecure(I)Z
PLcom/android/server/wm/WindowManagerService;->isKeyguardShowingAndNotOccluded()Z
PLcom/android/server/wm/WindowManagerService;->isSafeModeEnabled()Z
PLcom/android/server/wm/WindowManagerService;->isSecureLocked(Lcom/android/server/wm/WindowState;)Z
HPLcom/android/server/wm/WindowManagerService;->lambda$checkDrawnWindowsLocked$7$WindowManagerService(Lcom/android/server/wm/WindowContainer;Ljava/lang/Runnable;)V
-PLcom/android/server/wm/WindowManagerService;->lambda$main$1(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Function;)V
-PLcom/android/server/wm/WindowManagerService;->lambda$updateNonSystemOverlayWindowsVisibilityIfNeeded$13(ZLcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowManagerService;->main(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZZLcom/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;ZZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Function;)Lcom/android/server/wm/WindowManagerService;
-PLcom/android/server/wm/WindowManagerService;->makeSurfaceBuilder(Landroid/view/SurfaceSession;)Landroid/view/SurfaceControl$Builder;
+PLcom/android/server/wm/WindowManagerService;->lambda$dumpWindowsNoHeaderLocked$9(Ljava/io/PrintWriter;Lcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/WindowManagerService;->lambda$main$1(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Function;)V
+PLcom/android/server/wm/WindowManagerService;->lambda$requestAssistScreenshot$3(Landroid/app/IAssistDataReceiver;Landroid/graphics/Bitmap;)V
+HPLcom/android/server/wm/WindowManagerService;->lambda$updateNonSystemOverlayWindowsVisibilityIfNeeded$13(ZLcom/android/server/wm/WindowState;)V
+HSPLcom/android/server/wm/WindowManagerService;->main(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;)Lcom/android/server/wm/WindowManagerService;
+HSPLcom/android/server/wm/WindowManagerService;->main(Landroid/content/Context;Lcom/android/server/input/InputManagerService;ZZLcom/android/server/policy/WindowManagerPolicy;Lcom/android/server/wm/ActivityTaskManagerService;Ljava/util/function/Supplier;Ljava/util/function/Supplier;Ljava/util/function/Function;)Lcom/android/server/wm/WindowManagerService;
+HSPLcom/android/server/wm/WindowManagerService;->makeSurfaceBuilder(Landroid/view/SurfaceSession;)Landroid/view/SurfaceControl$Builder;
PLcom/android/server/wm/WindowManagerService;->makeWindowFreezingScreenIfNeededLocked(Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/WindowManagerService;->monitor()V
PLcom/android/server/wm/WindowManagerService;->notifyFocusChanged()V
+PLcom/android/server/wm/WindowManagerService;->notifyKeyguardFlagsChanged(Ljava/lang/Runnable;I)V
PLcom/android/server/wm/WindowManagerService;->notifyKeyguardTrustedChanged()V
PLcom/android/server/wm/WindowManagerService;->onAnimationFinished()V
-PLcom/android/server/wm/WindowManagerService;->onInitReady()V
+HSPLcom/android/server/wm/WindowManagerService;->onInitReady()V
PLcom/android/server/wm/WindowManagerService;->onKeyguardShowingAndNotOccludedChanged()V
-PLcom/android/server/wm/WindowManagerService;->onPointerDownOutsideFocusLocked(Landroid/os/IBinder;)V
+HPLcom/android/server/wm/WindowManagerService;->onPointerDownOutsideFocusLocked(Landroid/os/IBinder;)V
PLcom/android/server/wm/WindowManagerService;->onPowerKeyDown(Z)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;->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
+HSPLcom/android/server/wm/WindowManagerService;->onSystemUiStarted()V
+HSPLcom/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;->openSurfaceTransaction()V
+HSPLcom/android/server/wm/WindowManagerService;->openSurfaceTransaction()V
PLcom/android/server/wm/WindowManagerService;->performBootTimeout()V
PLcom/android/server/wm/WindowManagerService;->performEnableScreen()V
-HPLcom/android/server/wm/WindowManagerService;->pokeDrawLock(Lcom/android/server/wm/Session;Landroid/os/IBinder;)V
PLcom/android/server/wm/WindowManagerService;->postWindowRemoveCleanupLocked(Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/WindowManagerService;->prepareAppTransition(IZ)V
PLcom/android/server/wm/WindowManagerService;->prepareNoneTransitionForRelaunching(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/WindowManagerService;->prepareWindowReplacementTransition(Lcom/android/server/wm/ActivityRecord;)Z
-PLcom/android/server/wm/WindowManagerService;->queryHdrSupport()Z
-PLcom/android/server/wm/WindowManagerService;->queryWideColorGamutSupport()Z
+HSPLcom/android/server/wm/WindowManagerService;->queryHdrSupport()Z
+HSPLcom/android/server/wm/WindowManagerService;->queryWideColorGamutSupport()Z
PLcom/android/server/wm/WindowManagerService;->refreshScreenCaptureDisabled(I)V
+PLcom/android/server/wm/WindowManagerService;->registerAppFreezeListener(Lcom/android/server/wm/WindowManagerService$AppFreezeListener;)V
PLcom/android/server/wm/WindowManagerService;->registerDockedStackListener(Landroid/view/IDockedStackListener;)V
PLcom/android/server/wm/WindowManagerService;->registerPinnedStackListener(ILandroid/view/IPinnedStackListener;)V
PLcom/android/server/wm/WindowManagerService;->registerShortcutKey(JLcom/android/internal/policy/IShortcutService;)V
+PLcom/android/server/wm/WindowManagerService;->registerSystemGestureExclusionListener(Landroid/view/ISystemGestureExclusionListener;I)V
PLcom/android/server/wm/WindowManagerService;->registerWallpaperVisibilityListener(Landroid/view/IWallpaperVisibilityListener;I)Z
HPLcom/android/server/wm/WindowManagerService;->relayoutWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IIIIJLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/util/MergedConfiguration;Landroid/view/SurfaceControl;Landroid/view/InsetsState;)I
PLcom/android/server/wm/WindowManagerService;->removeObsoleteTaskFiles(Landroid/util/ArraySet;[I)V
+PLcom/android/server/wm/WindowManagerService;->removeRotationWatcher(Landroid/view/IRotationWatcher;)V
PLcom/android/server/wm/WindowManagerService;->removeWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;)V
PLcom/android/server/wm/WindowManagerService;->removeWindowToken(Landroid/os/IBinder;I)V
-PLcom/android/server/wm/WindowManagerService;->reportSystemGestureExclusionChanged(Lcom/android/server/wm/Session;Landroid/view/IWindow;Ljava/util/List;)V
-PLcom/android/server/wm/WindowManagerService;->requestTraversal()V
+HPLcom/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
+HSPLcom/android/server/wm/WindowManagerService;->requestTraversal()V
HSPLcom/android/server/wm/WindowManagerService;->resetPriorityAfterLockedSection()V
PLcom/android/server/wm/WindowManagerService;->scheduleAnimationLocked()V
PLcom/android/server/wm/WindowManagerService;->screenTurningOff(Lcom/android/server/policy/WindowManagerPolicy$ScreenOffListener;)V
-PLcom/android/server/wm/WindowManagerService;->setAnimatorDurationScale(F)V
+HSPLcom/android/server/wm/WindowManagerService;->setAnimatorDurationScale(F)V
PLcom/android/server/wm/WindowManagerService;->setAodShowing(Z)V
PLcom/android/server/wm/WindowManagerService;->setCurrentProfileIds([I)V
PLcom/android/server/wm/WindowManagerService;->setDockedStackDividerTouchRegion(Landroid/graphics/Rect;)V
PLcom/android/server/wm/WindowManagerService;->setEventDispatching(Z)V
-PLcom/android/server/wm/WindowManagerService;->setGlobalShadowSettings()V
-PLcom/android/server/wm/WindowManagerService;->setHoldScreenLocked(Lcom/android/server/wm/Session;)V
+HSPLcom/android/server/wm/WindowManagerService;->setGlobalShadowSettings()V
+HSPLcom/android/server/wm/WindowManagerService;->setHoldScreenLocked(Lcom/android/server/wm/Session;)V
PLcom/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;->setKeyguardGoingAway(Z)V
PLcom/android/server/wm/WindowManagerService;->setKeyguardOrAodShowingOnDefaultDisplay(Z)V
PLcom/android/server/wm/WindowManagerService;->setNavBarVirtualKeyHapticFeedbackEnabled(Z)V
-PLcom/android/server/wm/WindowManagerService;->setNewDisplayOverrideConfiguration(Landroid/content/res/Configuration;Lcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/WindowManagerService;->showEmulatorDisplayOverlayIfNeeded()V
-PLcom/android/server/wm/WindowManagerService;->startFreezingDisplayLocked(IILcom/android/server/wm/DisplayContent;)V
-PLcom/android/server/wm/WindowManagerService;->stopFreezingDisplayLocked()V
-PLcom/android/server/wm/WindowManagerService;->systemReady()V
+HSPLcom/android/server/wm/WindowManagerService;->setNewDisplayOverrideConfiguration(Landroid/content/res/Configuration;Lcom/android/server/wm/DisplayContent;)V
+PLcom/android/server/wm/WindowManagerService;->setPipVisibility(Z)V
+PLcom/android/server/wm/WindowManagerService;->setTransparentRegionWindow(Lcom/android/server/wm/Session;Landroid/view/IWindow;Landroid/graphics/Region;)V
+HSPLcom/android/server/wm/WindowManagerService;->showEmulatorDisplayOverlayIfNeeded()V
+HSPLcom/android/server/wm/WindowManagerService;->startFreezingDisplayLocked(IILcom/android/server/wm/DisplayContent;)V
+HSPLcom/android/server/wm/WindowManagerService;->stopFreezingDisplayLocked()V
+HSPLcom/android/server/wm/WindowManagerService;->systemReady()V
+PLcom/android/server/wm/WindowManagerService;->triggerAnimationFailsafe()V
PLcom/android/server/wm/WindowManagerService;->tryStartExitingAnimation(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowStateAnimator;Z)Z
-PLcom/android/server/wm/WindowManagerService;->updateFocusedWindowLocked(IZ)Z
-PLcom/android/server/wm/WindowManagerService;->updateNonSystemOverlayWindowsVisibilityIfNeeded(Lcom/android/server/wm/WindowState;Z)V
-PLcom/android/server/wm/WindowManagerService;->updateRotation(ZZ)V
-PLcom/android/server/wm/WindowManagerService;->updateRotationUnchecked(ZZ)V
+HSPLcom/android/server/wm/WindowManagerService;->updateFocusedWindowLocked(IZ)Z
+PLcom/android/server/wm/WindowManagerService;->updateHiddenWhileSuspendedState(Landroid/util/ArraySet;Z)V
+HPLcom/android/server/wm/WindowManagerService;->updateNonSystemOverlayWindowsVisibilityIfNeeded(Lcom/android/server/wm/WindowState;Z)V
+PLcom/android/server/wm/WindowManagerService;->updatePointerIcon(Landroid/view/IWindow;)V
+HSPLcom/android/server/wm/WindowManagerService;->updateRotation(ZZ)V
+HSPLcom/android/server/wm/WindowManagerService;->updateRotationUnchecked(ZZ)V
PLcom/android/server/wm/WindowManagerService;->watchRotation(Landroid/view/IRotationWatcher;I)I
HPLcom/android/server/wm/WindowManagerService;->windowForClientLocked(Lcom/android/server/wm/Session;Landroid/os/IBinder;Z)Lcom/android/server/wm/WindowState;
-PLcom/android/server/wm/WindowManagerService;->windowForClientLocked(Lcom/android/server/wm/Session;Landroid/view/IWindow;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;
+PLcom/android/server/wm/WindowManagerShellCommand;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+PLcom/android/server/wm/WindowManagerShellCommand;->lambda$runDumpVisibleWindowViews$0(Ljava/util/ArrayList;Lcom/android/server/wm/WindowState;)V
+PLcom/android/server/wm/WindowManagerShellCommand;->onCommand(Ljava/lang/String;)I
+PLcom/android/server/wm/WindowManagerShellCommand;->runDumpVisibleWindowViews(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;->setBoundsAnimationRunning(Z)V
PLcom/android/server/wm/WindowManagerThreadPriorityBooster;->updatePriorityLocked()V
-PLcom/android/server/wm/WindowProcessController;-><init>(Lcom/android/server/wm/ActivityTaskManagerService;Landroid/content/pm/ApplicationInfo;Ljava/lang/String;IILjava/lang/Object;Lcom/android/server/wm/WindowProcessListener;)V
+HSPLcom/android/server/wm/WindowProcessController;-><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;->addPackage(Ljava/lang/String;)V
-PLcom/android/server/wm/WindowProcessController;->appDied()V
-PLcom/android/server/wm/WindowProcessController;->clearActivities()V
+HSPLcom/android/server/wm/WindowProcessController;->addPackage(Ljava/lang/String;)V
+PLcom/android/server/wm/WindowProcessController;->addRecentTask(Lcom/android/server/wm/Task;)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
+PLcom/android/server/wm/WindowProcessController;->areBackgroundActivityStartsAllowed()Z
+HSPLcom/android/server/wm/WindowProcessController;->clearActivities()V
PLcom/android/server/wm/WindowProcessController;->clearPackageList()V
-PLcom/android/server/wm/WindowProcessController;->clearRecentTasks()V
+HSPLcom/android/server/wm/WindowProcessController;->clearRecentTasks()V
HPLcom/android/server/wm/WindowProcessController;->computeOomAdjFromActivities(ILcom/android/server/wm/WindowProcessController$ComputeOomAdjCallback;)I
PLcom/android/server/wm/WindowProcessController;->computeRelaunchReason()I
PLcom/android/server/wm/WindowProcessController;->createProfilerInfoIfNeeded()Landroid/app/ProfilerInfo;
-PLcom/android/server/wm/WindowProcessController;->getChildCount()I
+PLcom/android/server/wm/WindowProcessController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/wm/WindowProcessController;->getChildCount()I
PLcom/android/server/wm/WindowProcessController;->getCpuTime()J
PLcom/android/server/wm/WindowProcessController;->getCurrentSchedulingGroup()I
+PLcom/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;->hasActivities()Z
-HPLcom/android/server/wm/WindowProcessController;->hasActivitiesOrRecentTasks()Z
+HSPLcom/android/server/wm/WindowProcessController;->hasActivities()Z
+HSPLcom/android/server/wm/WindowProcessController;->hasActivitiesOrRecentTasks()Z
PLcom/android/server/wm/WindowProcessController;->hasActivityInVisibleTask()Z
+PLcom/android/server/wm/WindowProcessController;->hasForegroundServices()Z
HPLcom/android/server/wm/WindowProcessController;->hasRecentTasks()Z
PLcom/android/server/wm/WindowProcessController;->hasStartedActivity(Lcom/android/server/wm/ActivityRecord;)Z
PLcom/android/server/wm/WindowProcessController;->hasThread()Z
-HPLcom/android/server/wm/WindowProcessController;->hasVisibleActivities()Z
+HSPLcom/android/server/wm/WindowProcessController;->hasVisibleActivities()Z
PLcom/android/server/wm/WindowProcessController;->isCrashing()Z
HPLcom/android/server/wm/WindowProcessController;->isHomeProcess()Z
-PLcom/android/server/wm/WindowProcessController;->isInstrumenting()Z
+HSPLcom/android/server/wm/WindowProcessController;->isInstrumenting()Z
PLcom/android/server/wm/WindowProcessController;->isInterestingToUser()Z
PLcom/android/server/wm/WindowProcessController;->isNotResponding()Z
HPLcom/android/server/wm/WindowProcessController;->isPreviousProcess()Z
-PLcom/android/server/wm/WindowProcessController;->isRemoved()Z
-PLcom/android/server/wm/WindowProcessController;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/WindowProcessController;->isRemoved()Z
+HSPLcom/android/server/wm/WindowProcessController;->onConfigurationChanged(Landroid/content/res/Configuration;)V
+PLcom/android/server/wm/WindowProcessController;->onRequestedOverrideConfigurationChanged(Landroid/content/res/Configuration;)V
PLcom/android/server/wm/WindowProcessController;->onStartActivity(ILandroid/content/pm/ActivityInfo;)V
PLcom/android/server/wm/WindowProcessController;->onTopProcChanged()V
+PLcom/android/server/wm/WindowProcessController;->postPendingUiCleanMsg(Z)V
+PLcom/android/server/wm/WindowProcessController;->registerDisplayConfigurationListenerLocked(Lcom/android/server/wm/DisplayContent;)V
PLcom/android/server/wm/WindowProcessController;->registeredForDisplayConfigChanges()Z
+PLcom/android/server/wm/WindowProcessController;->releaseSomeActivities(Ljava/lang/String;)V
PLcom/android/server/wm/WindowProcessController;->removeActivity(Lcom/android/server/wm/ActivityRecord;)V
PLcom/android/server/wm/WindowProcessController;->removeRecentTask(Lcom/android/server/wm/Task;)V
-PLcom/android/server/wm/WindowProcessController;->setAllowBackgroundActivityStarts(Z)V
-PLcom/android/server/wm/WindowProcessController;->setBoundClientUids(Landroid/util/ArraySet;)V
-PLcom/android/server/wm/WindowProcessController;->setCrashing(Z)V
-PLcom/android/server/wm/WindowProcessController;->setCurrentProcState(I)V
-PLcom/android/server/wm/WindowProcessController;->setCurrentSchedulingGroup(I)V
-PLcom/android/server/wm/WindowProcessController;->setDebugging(Z)V
-PLcom/android/server/wm/WindowProcessController;->setFgInteractionTime(J)V
-PLcom/android/server/wm/WindowProcessController;->setHasClientActivities(Z)V
-PLcom/android/server/wm/WindowProcessController;->setHasForegroundActivities(Z)V
+HSPLcom/android/server/wm/WindowProcessController;->setAllowBackgroundActivityStarts(Z)V
+HSPLcom/android/server/wm/WindowProcessController;->setBoundClientUids(Landroid/util/ArraySet;)V
+HSPLcom/android/server/wm/WindowProcessController;->setCrashing(Z)V
+HSPLcom/android/server/wm/WindowProcessController;->setCurrentProcState(I)V
+HSPLcom/android/server/wm/WindowProcessController;->setCurrentSchedulingGroup(I)V
+HSPLcom/android/server/wm/WindowProcessController;->setDebugging(Z)V
+HSPLcom/android/server/wm/WindowProcessController;->setFgInteractionTime(J)V
+HSPLcom/android/server/wm/WindowProcessController;->setHasClientActivities(Z)V
+HSPLcom/android/server/wm/WindowProcessController;->setHasForegroundActivities(Z)V
PLcom/android/server/wm/WindowProcessController;->setHasTopUi(Z)V
-PLcom/android/server/wm/WindowProcessController;->setInteractionEventTime(J)V
+HSPLcom/android/server/wm/WindowProcessController;->setInteractionEventTime(J)V
+PLcom/android/server/wm/WindowProcessController;->setLastActivityFinishTimeIfNeeded(J)V
PLcom/android/server/wm/WindowProcessController;->setLastActivityLaunchTime(J)V
-PLcom/android/server/wm/WindowProcessController;->setLastReportedConfiguration(Landroid/content/res/Configuration;)V
-PLcom/android/server/wm/WindowProcessController;->setNotResponding(Z)V
+HSPLcom/android/server/wm/WindowProcessController;->setLastReportedConfiguration(Landroid/content/res/Configuration;)V
+HSPLcom/android/server/wm/WindowProcessController;->setNotResponding(Z)V
PLcom/android/server/wm/WindowProcessController;->setPendingUiClean(Z)V
PLcom/android/server/wm/WindowProcessController;->setPendingUiCleanAndForceProcessStateUpTo(I)V
-PLcom/android/server/wm/WindowProcessController;->setPerceptible(Z)V
-PLcom/android/server/wm/WindowProcessController;->setPersistent(Z)V
-PLcom/android/server/wm/WindowProcessController;->setPid(I)V
-PLcom/android/server/wm/WindowProcessController;->setReportedProcState(I)V
-PLcom/android/server/wm/WindowProcessController;->setRequiredAbi(Ljava/lang/String;)V
+HSPLcom/android/server/wm/WindowProcessController;->setPerceptible(Z)V
+HSPLcom/android/server/wm/WindowProcessController;->setPersistent(Z)V
+HSPLcom/android/server/wm/WindowProcessController;->setPid(I)V
+HSPLcom/android/server/wm/WindowProcessController;->setReportedProcState(I)V
+HSPLcom/android/server/wm/WindowProcessController;->setRequiredAbi(Ljava/lang/String;)V
PLcom/android/server/wm/WindowProcessController;->setRunningRecentsAnimation(Z)V
-PLcom/android/server/wm/WindowProcessController;->setThread(Landroid/app/IApplicationThread;)V
-PLcom/android/server/wm/WindowProcessController;->setUsingWrapper(Z)V
+HSPLcom/android/server/wm/WindowProcessController;->setThread(Landroid/app/IApplicationThread;)V
+HSPLcom/android/server/wm/WindowProcessController;->setUsingWrapper(Z)V
PLcom/android/server/wm/WindowProcessController;->setWhenUnimportant(J)V
+PLcom/android/server/wm/WindowProcessController;->shouldKillProcessForRemovedTask(Lcom/android/server/wm/Task;)Z
PLcom/android/server/wm/WindowProcessController;->shouldSetProfileProc()Z
PLcom/android/server/wm/WindowProcessController;->stopFreezingActivities()V
-PLcom/android/server/wm/WindowProcessController;->updateConfiguration()V
+PLcom/android/server/wm/WindowProcessController;->toString()Ljava/lang/String;
+PLcom/android/server/wm/WindowProcessController;->unregisterDisplayConfigurationListenerLocked()V
+HSPLcom/android/server/wm/WindowProcessController;->updateConfiguration()V
PLcom/android/server/wm/WindowProcessController;->updateProcessInfo(ZZZ)V
-PLcom/android/server/wm/WindowProcessController;->updateRunningRemoteOrRecentsAnimation()V
+HPLcom/android/server/wm/WindowProcessController;->updateRunningRemoteOrRecentsAnimation()V
PLcom/android/server/wm/WindowProcessController;->updateServiceConnectionActivities()V
-PLcom/android/server/wm/WindowProcessController;->updateTopResumingActivityInProcessIfNeeded(Lcom/android/server/wm/ActivityRecord;)Z
+HPLcom/android/server/wm/WindowProcessController;->updateTopResumingActivityInProcessIfNeeded(Lcom/android/server/wm/ActivityRecord;)Z
HSPLcom/android/server/wm/WindowProcessControllerMap;-><init>()V
-PLcom/android/server/wm/WindowProcessControllerMap;->getPidMap()Landroid/util/SparseArray;
+HSPLcom/android/server/wm/WindowProcessControllerMap;->getPidMap()Landroid/util/SparseArray;
HPLcom/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;->remove(I)V
-PLcom/android/server/wm/WindowProcessControllerMap;->removeProcessFromUidMap(Lcom/android/server/wm/WindowProcessController;)V
+HSPLcom/android/server/wm/WindowProcessControllerMap;->put(ILcom/android/server/wm/WindowProcessController;)V
+HSPLcom/android/server/wm/WindowProcessControllerMap;->remove(I)V
+HSPLcom/android/server/wm/WindowProcessControllerMap;->removeProcessFromUidMap(Lcom/android/server/wm/WindowProcessController;)V
PLcom/android/server/wm/WindowState$1;-><init>()V
+PLcom/android/server/wm/WindowState$1;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
PLcom/android/server/wm/WindowState$2;-><init>(Lcom/android/server/wm/WindowManagerService;)V
PLcom/android/server/wm/WindowState$DeathRecipient;-><init>(Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/WindowState$DeathRecipient;-><init>(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState$1;)V
@@ -19490,22 +23683,24 @@ PLcom/android/server/wm/WindowState$UpdateReportedVisibilityResults;-><init>()V
PLcom/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$1;)V
+PLcom/android/server/wm/WindowState$WindowId;->isFocused()Z
PLcom/android/server/wm/WindowState;-><clinit>()V
PLcom/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;IILandroid/view/WindowManager$LayoutParams;IIZ)V
PLcom/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;IILandroid/view/WindowManager$LayoutParams;IIZLcom/android/server/wm/WindowState$PowerManagerWrapper;)V
-PLcom/android/server/wm/WindowState;->adjustStartingWindowFlags()V
+HPLcom/android/server/wm/WindowState;->adjustStartingWindowFlags()V
PLcom/android/server/wm/WindowState;->applyAdjustForImeIfNeeded()V
HPLcom/android/server/wm/WindowState;->applyDims(Lcom/android/server/wm/Dimmer;)V
-PLcom/android/server/wm/WindowState;->applyGravityAndUpdateFrame(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/WindowState;->applyGravityAndUpdateFrame(Landroid/graphics/Rect;Landroid/graphics/Rect;)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
-PLcom/android/server/wm/WindowState;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/WindowState;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V
+HPLcom/android/server/wm/WindowState;->assignChildLayers(Landroid/view/SurfaceControl$Transaction;)V
+HPLcom/android/server/wm/WindowState;->assignLayer(Landroid/view/SurfaceControl$Transaction;I)V
PLcom/android/server/wm/WindowState;->attach()V
-PLcom/android/server/wm/WindowState;->calculatePolicyCrop(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/WindowState;->calculateSystemDecorRect(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/WindowState;->canAddInternalSystemWindow()Z
+HPLcom/android/server/wm/WindowState;->calculatePolicyCrop(Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/WindowState;->calculateSystemDecorRect(Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/WindowState;->canAddInternalSystemWindow()Z
HPLcom/android/server/wm/WindowState;->canAffectSystemUiFlags()Z
+PLcom/android/server/wm/WindowState;->canBeImeTarget()Z
PLcom/android/server/wm/WindowState;->canReceiveKeys()Z
HPLcom/android/server/wm/WindowState;->canReceiveKeys(Z)Z
PLcom/android/server/wm/WindowState;->canShowWhenLocked()Z
@@ -19518,157 +23713,178 @@ HPLcom/android/server/wm/WindowState;->computeFrameLw()V
HPLcom/android/server/wm/WindowState;->cropRegionToStackBoundsIfNeeded(Landroid/graphics/Region;)V
PLcom/android/server/wm/WindowState;->destroySurface(ZZ)Z
PLcom/android/server/wm/WindowState;->destroySurfaceUnchecked()V
-PLcom/android/server/wm/WindowState;->dispatchResized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;ZILandroid/view/DisplayCutout;)V
+HPLcom/android/server/wm/WindowState;->dispatchResized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;ZILandroid/view/DisplayCutout;)V
PLcom/android/server/wm/WindowState;->dispatchWallpaperVisibility(Z)V
PLcom/android/server/wm/WindowState;->disposeInputChannel()V
+PLcom/android/server/wm/WindowState;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+HPLcom/android/server/wm/WindowState;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
PLcom/android/server/wm/WindowState;->expandForSurfaceInsets(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/WindowState;->fillsDisplay()Z
-PLcom/android/server/wm/WindowState;->finishSeamlessRotation(Z)V
+HPLcom/android/server/wm/WindowState;->fillsDisplay()Z
+HPLcom/android/server/wm/WindowState;->finishSeamlessRotation(Z)V
+PLcom/android/server/wm/WindowState;->forAllWindowBottomToTop(Lcom/android/internal/util/ToBooleanFunction;)Z
+HPLcom/android/server/wm/WindowState;->forAllWindowTopToBottom(Lcom/android/internal/util/ToBooleanFunction;)Z
HPLcom/android/server/wm/WindowState;->forAllWindows(Lcom/android/internal/util/ToBooleanFunction;Z)Z
-PLcom/android/server/wm/WindowState;->getAnimationFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
+PLcom/android/server/wm/WindowState;->forceWindowsScaleableInTransaction(Z)V
+HPLcom/android/server/wm/WindowState;->getAnimationFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
PLcom/android/server/wm/WindowState;->getAppToken()Landroid/view/IApplicationToken;
-PLcom/android/server/wm/WindowState;->getAttrs()Landroid/view/WindowManager$LayoutParams;
-PLcom/android/server/wm/WindowState;->getBackdropFrame(Landroid/graphics/Rect;)Landroid/graphics/Rect;
+HPLcom/android/server/wm/WindowState;->getAttrs()Landroid/view/WindowManager$LayoutParams;
+HPLcom/android/server/wm/WindowState;->getBackdropFrame(Landroid/graphics/Rect;)Landroid/graphics/Rect;
PLcom/android/server/wm/WindowState;->getBaseType()I
PLcom/android/server/wm/WindowState;->getBounds()Landroid/graphics/Rect;
-PLcom/android/server/wm/WindowState;->getCompatFrame(Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/WindowState;->getClientInsetsState()Landroid/view/InsetsState;
+HPLcom/android/server/wm/WindowState;->getCompatFrame(Landroid/graphics/Rect;)V
PLcom/android/server/wm/WindowState;->getCompatFrameSize(Landroid/graphics/Rect;)V
HPLcom/android/server/wm/WindowState;->getConfiguration()Landroid/content/res/Configuration;
PLcom/android/server/wm/WindowState;->getContainingFrame()Landroid/graphics/Rect;
PLcom/android/server/wm/WindowState;->getContentFrameLw()Landroid/graphics/Rect;
PLcom/android/server/wm/WindowState;->getContentInsets()Landroid/graphics/Rect;
PLcom/android/server/wm/WindowState;->getContentInsets(Landroid/graphics/Rect;)V
-PLcom/android/server/wm/WindowState;->getControllableInsetProvider()Lcom/android/server/wm/InsetsSourceProvider;
+HPLcom/android/server/wm/WindowState;->getControllableInsetProvider()Lcom/android/server/wm/InsetsSourceProvider;
HPLcom/android/server/wm/WindowState;->getDisplayContent()Lcom/android/server/wm/DisplayContent;
+PLcom/android/server/wm/WindowState;->getDisplayFrameLw()Landroid/graphics/Rect;
PLcom/android/server/wm/WindowState;->getDisplayId()I
PLcom/android/server/wm/WindowState;->getDisplayInfo()Landroid/view/DisplayInfo;
+PLcom/android/server/wm/WindowState;->getDisplayedBounds()Landroid/graphics/Rect;
PLcom/android/server/wm/WindowState;->getDrawnStateEvaluated()Z
-PLcom/android/server/wm/WindowState;->getEffectiveTouchableRegion(Landroid/graphics/Region;)V
-PLcom/android/server/wm/WindowState;->getFrameLw()Landroid/graphics/Rect;
+HPLcom/android/server/wm/WindowState;->getEffectiveTouchableRegion(Landroid/graphics/Region;)V
+HPLcom/android/server/wm/WindowState;->getFrameLw()Landroid/graphics/Rect;
+PLcom/android/server/wm/WindowState;->getFrameNumber()J
+PLcom/android/server/wm/WindowState;->getGivenContentInsetsLw()Landroid/graphics/Rect;
+PLcom/android/server/wm/WindowState;->getGivenInsetsPendingLw()Z
+PLcom/android/server/wm/WindowState;->getGivenVisibleInsetsLw()Landroid/graphics/Rect;
PLcom/android/server/wm/WindowState;->getInputDispatchingTimeoutNanos()J
HPLcom/android/server/wm/WindowState;->getInsetsForRelayout(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)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;->getLastReportedConfiguration()Landroid/content/res/Configuration;
PLcom/android/server/wm/WindowState;->getLastReportedMergedConfiguration(Landroid/util/MergedConfiguration;)V
-PLcom/android/server/wm/WindowState;->getMergedConfiguration(Landroid/util/MergedConfiguration;)V
-PLcom/android/server/wm/WindowState;->getName()Ljava/lang/String;
+HPLcom/android/server/wm/WindowState;->getMergedConfiguration(Landroid/util/MergedConfiguration;)V
+HPLcom/android/server/wm/WindowState;->getName()Ljava/lang/String;
HPLcom/android/server/wm/WindowState;->getOrientationChanging()Z
PLcom/android/server/wm/WindowState;->getOwningPackage()Ljava/lang/String;
PLcom/android/server/wm/WindowState;->getOwningUid()I
-PLcom/android/server/wm/WindowState;->getParentWindow()Lcom/android/server/wm/WindowState;
+HPLcom/android/server/wm/WindowState;->getParentWindow()Lcom/android/server/wm/WindowState;
PLcom/android/server/wm/WindowState;->getProcessGlobalConfiguration()Landroid/content/res/Configuration;
PLcom/android/server/wm/WindowState;->getReplacingWindow()Lcom/android/server/wm/WindowState;
+PLcom/android/server/wm/WindowState;->getRotationAnimationHint()I
PLcom/android/server/wm/WindowState;->getSession()Landroid/view/SurfaceSession;
PLcom/android/server/wm/WindowState;->getStableInsets()Landroid/graphics/Rect;
PLcom/android/server/wm/WindowState;->getStableInsets(Landroid/graphics/Rect;)V
HPLcom/android/server/wm/WindowState;->getStack()Lcom/android/server/wm/ActivityStack;
PLcom/android/server/wm/WindowState;->getStackId()I
+PLcom/android/server/wm/WindowState;->getSurfaceLayer()I
HPLcom/android/server/wm/WindowState;->getSurfaceTouchableRegion(Landroid/view/InputWindowHandle;I)I
PLcom/android/server/wm/WindowState;->getSystemGestureExclusion()Ljava/util/List;
PLcom/android/server/wm/WindowState;->getSystemUiVisibility()I
HPLcom/android/server/wm/WindowState;->getTask()Lcom/android/server/wm/Task;
PLcom/android/server/wm/WindowState;->getTopParentWindow()Lcom/android/server/wm/WindowState;
HPLcom/android/server/wm/WindowState;->getTouchableRegion(Landroid/graphics/Region;)V
-PLcom/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;->getVisibleFrameLw()Landroid/graphics/Rect;
+HPLcom/android/server/wm/WindowState;->getWindow(Ljava/util/function/Predicate;)Lcom/android/server/wm/WindowState;
+HPLcom/android/server/wm/WindowState;->getWindowFrames()Lcom/android/server/wm/WindowFrames;
PLcom/android/server/wm/WindowState;->getWindowTag()Ljava/lang/CharSequence;
-PLcom/android/server/wm/WindowState;->getWmDisplayCutout()Lcom/android/server/wm/utils/WmDisplayCutout;
+HPLcom/android/server/wm/WindowState;->getWmDisplayCutout()Lcom/android/server/wm/utils/WmDisplayCutout;
HPLcom/android/server/wm/WindowState;->handleWindowMovedIfNeeded()V
-PLcom/android/server/wm/WindowState;->hasContentToDisplay()Z
+HPLcom/android/server/wm/WindowState;->hasContentToDisplay()Z
PLcom/android/server/wm/WindowState;->hasDrawnLw()Z
HPLcom/android/server/wm/WindowState;->hasMoved()Z
PLcom/android/server/wm/WindowState;->hasVisibleNotDrawnWallpaper()Z
PLcom/android/server/wm/WindowState;->hideLw(Z)Z
-PLcom/android/server/wm/WindowState;->hideLw(ZZ)Z
+HPLcom/android/server/wm/WindowState;->hideLw(ZZ)Z
PLcom/android/server/wm/WindowState;->hideNonSystemOverlayWindowsWhenVisible()Z
PLcom/android/server/wm/WindowState;->hidePermanentlyLw()V
-PLcom/android/server/wm/WindowState;->hideWallpaperWindow(ZLjava/lang/String;)V
+HPLcom/android/server/wm/WindowState;->hideWallpaperWindow(ZLjava/lang/String;)V
PLcom/android/server/wm/WindowState;->inAppWindowThatMatchesParentBounds()Z
-PLcom/android/server/wm/WindowState;->inSizeCompatMode()Z
+HPLcom/android/server/wm/WindowState;->inSizeCompatMode()Z
PLcom/android/server/wm/WindowState;->initAppOpsState()V
PLcom/android/server/wm/WindowState;->initExclusionRestrictions()V
-PLcom/android/server/wm/WindowState;->isAnimatingLw()Z
+HPLcom/android/server/wm/WindowState;->isAnimatingLw()Z
PLcom/android/server/wm/WindowState;->isAnimatingToRecents()Z
-PLcom/android/server/wm/WindowState;->isChildWindow()Z
+HPLcom/android/server/wm/WindowState;->isChildWindow()Z
PLcom/android/server/wm/WindowState;->isDimming()Z
HPLcom/android/server/wm/WindowState;->isDisplayedLw()Z
PLcom/android/server/wm/WindowState;->isDockedResizing()Z
PLcom/android/server/wm/WindowState;->isDragResizeChanged()Z
PLcom/android/server/wm/WindowState;->isDragResizing()Z
PLcom/android/server/wm/WindowState;->isDrawFinishedLw()Z
-PLcom/android/server/wm/WindowState;->isDrawnLw()Z
+HPLcom/android/server/wm/WindowState;->isDrawnLw()Z
PLcom/android/server/wm/WindowState;->isFocused()Z
HPLcom/android/server/wm/WindowState;->isGoneForLayoutLw()Z
-PLcom/android/server/wm/WindowState;->isHiddenFromUserLocked()Z
-PLcom/android/server/wm/WindowState;->isImplicitlyExcludingAllSystemGestures()Z
-PLcom/android/server/wm/WindowState;->isInputMethodTarget()Z
+HPLcom/android/server/wm/WindowState;->isHiddenFromUserLocked()Z
+HPLcom/android/server/wm/WindowState;->isImplicitlyExcludingAllSystemGestures()Z
+HPLcom/android/server/wm/WindowState;->isInputMethodTarget()Z
PLcom/android/server/wm/WindowState;->isInputMethodWindow()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
PLcom/android/server/wm/WindowState;->isLetterboxedAppWindow()Z
-PLcom/android/server/wm/WindowState;->isLetterboxedForDisplayCutoutLw()Z
+HPLcom/android/server/wm/WindowState;->isLetterboxedForDisplayCutoutLw()Z
PLcom/android/server/wm/WindowState;->isLetterboxedOverlappingWith(Landroid/graphics/Rect;)Z
-PLcom/android/server/wm/WindowState;->isObscuringDisplay()Z
+HPLcom/android/server/wm/WindowState;->isObscuringDisplay()Z
HPLcom/android/server/wm/WindowState;->isOnScreen()Z
-PLcom/android/server/wm/WindowState;->isOpaqueDrawn()Z
-PLcom/android/server/wm/WindowState;->isParentWindowGoneForLayout()Z
+HPLcom/android/server/wm/WindowState;->isOpaqueDrawn()Z
+HPLcom/android/server/wm/WindowState;->isParentWindowGoneForLayout()Z
HPLcom/android/server/wm/WindowState;->isParentWindowHidden()Z
-PLcom/android/server/wm/WindowState;->isReadyForDisplay()Z
+HPLcom/android/server/wm/WindowState;->isReadyForDisplay()Z
PLcom/android/server/wm/WindowState;->isRtl()Z
PLcom/android/server/wm/WindowState;->isSelfOrAncestorWindowAnimatingExit()Z
HPLcom/android/server/wm/WindowState;->isVisible()Z
HPLcom/android/server/wm/WindowState;->isVisibleByPolicy()Z
-PLcom/android/server/wm/WindowState;->isVisibleLw()Z
+HPLcom/android/server/wm/WindowState;->isVisibleLw()Z
PLcom/android/server/wm/WindowState;->isVisibleNow()Z
HPLcom/android/server/wm/WindowState;->isVisibleOrAdding()Z
-PLcom/android/server/wm/WindowState;->isVoiceInteraction()Z
+HPLcom/android/server/wm/WindowState;->isVoiceInteraction()Z
PLcom/android/server/wm/WindowState;->isWinVisibleLw()Z
+PLcom/android/server/wm/WindowState;->layoutInParentFrame()Z
PLcom/android/server/wm/WindowState;->logExclusionRestrictions(I)V
PLcom/android/server/wm/WindowState;->logPerformShow(Ljava/lang/String;)V
-PLcom/android/server/wm/WindowState;->matchesDisplayBounds()Z
-PLcom/android/server/wm/WindowState;->mightAffectAllDrawn()Z
-PLcom/android/server/wm/WindowState;->needsRelativeLayeringToIme()Z
+HPLcom/android/server/wm/WindowState;->matchesDisplayBounds()Z
+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;->notifyInsetsChanged()V
PLcom/android/server/wm/WindowState;->onAnimationFinished()V
PLcom/android/server/wm/WindowState;->onAnimationLeashCreated(Landroid/view/SurfaceControl$Transaction;Landroid/view/SurfaceControl;)V
PLcom/android/server/wm/WindowState;->onAnimationLeashLost(Landroid/view/SurfaceControl$Transaction;)V
-PLcom/android/server/wm/WindowState;->onAppVisibilityChanged(ZZ)Z
-PLcom/android/server/wm/WindowState;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/WindowState;->onAppVisibilityChanged(ZZ)V
+HPLcom/android/server/wm/WindowState;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
PLcom/android/server/wm/WindowState;->onExitAnimationDone()V
PLcom/android/server/wm/WindowState;->onMergedOverrideConfigurationChanged()V
-PLcom/android/server/wm/WindowState;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
+PLcom/android/server/wm/WindowState;->onMovedByResize()V
+HPLcom/android/server/wm/WindowState;->onParentChanged(Lcom/android/server/wm/ConfigurationContainer;Lcom/android/server/wm/ConfigurationContainer;)V
+PLcom/android/server/wm/WindowState;->onResize()V
PLcom/android/server/wm/WindowState;->onSetAppExiting()Z
+PLcom/android/server/wm/WindowState;->onStartFreezingScreen()V
+PLcom/android/server/wm/WindowState;->onStopFreezingScreen()Z
PLcom/android/server/wm/WindowState;->onSurfaceShownChanged(Z)V
PLcom/android/server/wm/WindowState;->openInputChannel(Landroid/view/InputChannel;)V
-PLcom/android/server/wm/WindowState;->performShowLocked()Z
-HPLcom/android/server/wm/WindowState;->pokeDrawLockLw(J)V
+PLcom/android/server/wm/WindowState;->orientationChangeTimedOut()V
+HPLcom/android/server/wm/WindowState;->performShowLocked()Z
PLcom/android/server/wm/WindowState;->prelayout()V
HPLcom/android/server/wm/WindowState;->prepareSurfaces()V
-PLcom/android/server/wm/WindowState;->prepareWindowToDisplayDuringRelayout(Z)V
+HPLcom/android/server/wm/WindowState;->prepareWindowToDisplayDuringRelayout(Z)V
HPLcom/android/server/wm/WindowState;->registeredForDisplayConfigChanges()Z
-PLcom/android/server/wm/WindowState;->relayoutVisibleWindow(II)I
+HPLcom/android/server/wm/WindowState;->relayoutVisibleWindow(II)I
PLcom/android/server/wm/WindowState;->removeIfPossible()V
PLcom/android/server/wm/WindowState;->removeIfPossible(Z)V
PLcom/android/server/wm/WindowState;->removeImmediately()V
-PLcom/android/server/wm/WindowState;->removeReplacedWindowIfNeeded(Lcom/android/server/wm/WindowState;)Z
+HPLcom/android/server/wm/WindowState;->removeReplacedWindowIfNeeded(Lcom/android/server/wm/WindowState;)Z
PLcom/android/server/wm/WindowState;->reportFocusChangedSerialized(ZZ)V
PLcom/android/server/wm/WindowState;->reportResized()V
PLcom/android/server/wm/WindowState;->requestUpdateWallpaperIfNeeded()V
PLcom/android/server/wm/WindowState;->resetAppOpsState()V
PLcom/android/server/wm/WindowState;->resetContentChanged()V
PLcom/android/server/wm/WindowState;->resetLastContentInsets()V
+PLcom/android/server/wm/WindowState;->seamlesslyRotateIfAllowed(Landroid/view/SurfaceControl$Transaction;IIZ)V
PLcom/android/server/wm/WindowState;->sendAppVisibilityToClients()V
-PLcom/android/server/wm/WindowState;->setDisplayLayoutNeeded()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;->setForceHideNonSystemOverlayWindowIfNeeded(Z)V
PLcom/android/server/wm/WindowState;->setFrameNumber(J)V
PLcom/android/server/wm/WindowState;->setHasSurface(Z)V
PLcom/android/server/wm/WindowState;->setHiddenWhileSuspended(Z)V
-PLcom/android/server/wm/WindowState;->setLastExclusionHeights(III)V
-PLcom/android/server/wm/WindowState;->setLastReportedMergedConfiguration(Landroid/util/MergedConfiguration;)V
+HPLcom/android/server/wm/WindowState;->setLastExclusionHeights(III)V
+HPLcom/android/server/wm/WindowState;->setLastReportedMergedConfiguration(Landroid/util/MergedConfiguration;)V
PLcom/android/server/wm/WindowState;->setOrientationChanging(Z)V
PLcom/android/server/wm/WindowState;->setPolicyVisibilityFlag(I)V
PLcom/android/server/wm/WindowState;->setReplacementWindowIfNeeded(Lcom/android/server/wm/WindowState;)Z
@@ -19676,157 +23892,184 @@ PLcom/android/server/wm/WindowState;->setReportResizeHints()Z
PLcom/android/server/wm/WindowState;->setRequestedSize(II)V
PLcom/android/server/wm/WindowState;->setShowToOwnerOnlyLocked(Z)V
PLcom/android/server/wm/WindowState;->setSystemGestureExclusion(Ljava/util/List;)Z
-PLcom/android/server/wm/WindowState;->setTouchableRegionCropIfNeeded(Landroid/view/InputWindowHandle;)V
-PLcom/android/server/wm/WindowState;->setWindowScale(II)V
+HPLcom/android/server/wm/WindowState;->setTouchableRegionCropIfNeeded(Landroid/view/InputWindowHandle;)V
+HPLcom/android/server/wm/WindowState;->setWindowScale(II)V
PLcom/android/server/wm/WindowState;->setupWindowForRemoveOnExit()V
PLcom/android/server/wm/WindowState;->shouldKeepVisibleDeadAppWindow()Z
PLcom/android/server/wm/WindowState;->showLw(Z)Z
-PLcom/android/server/wm/WindowState;->showLw(ZZ)Z
-PLcom/android/server/wm/WindowState;->skipDecorCrop()Z
+HPLcom/android/server/wm/WindowState;->showLw(ZZ)Z
+HPLcom/android/server/wm/WindowState;->skipDecorCrop()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
PLcom/android/server/wm/WindowState;->startMoveAnimation(II)V
+PLcom/android/server/wm/WindowState;->subtractInsets(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
PLcom/android/server/wm/WindowState;->subtractTouchExcludeRegionIfNeeded(Landroid/graphics/Region;)V
PLcom/android/server/wm/WindowState;->surfaceInsetsChanging()Z
HPLcom/android/server/wm/WindowState;->toString()Ljava/lang/String;
-PLcom/android/server/wm/WindowState;->transformClipRectFromScreenToSurfaceSpace(Landroid/graphics/Rect;)V
+HPLcom/android/server/wm/WindowState;->transformClipRectFromScreenToSurfaceSpace(Landroid/graphics/Rect;)V
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;->updateLastFrames()V
-PLcom/android/server/wm/WindowState;->updateLastInsetValues()V
+HPLcom/android/server/wm/WindowState;->updateLastInsetValues()V
PLcom/android/server/wm/WindowState;->updateLocationInParentDisplayIfNeeded()V
-PLcom/android/server/wm/WindowState;->updateReportedVisibility(Lcom/android/server/wm/WindowState$UpdateReportedVisibilityResults;)V
+HPLcom/android/server/wm/WindowState;->updateReportedVisibility(Lcom/android/server/wm/WindowState$UpdateReportedVisibilityResults;)V
HPLcom/android/server/wm/WindowState;->updateResizingWindowIfNeeded()V
-PLcom/android/server/wm/WindowState;->updateSurfacePosition()V
+HPLcom/android/server/wm/WindowState;->updateSurfacePosition()V
HPLcom/android/server/wm/WindowState;->updateSurfacePosition(Landroid/view/SurfaceControl$Transaction;)V
PLcom/android/server/wm/WindowState;->waitingForReplacement()Z
-PLcom/android/server/wm/WindowState;->wouldBeVisibleIfPolicyIgnored()Z
+HPLcom/android/server/wm/WindowState;->wouldBeVisibleIfPolicyIgnored()Z
PLcom/android/server/wm/WindowState;->writeIdentifierToProto(Landroid/util/proto/ProtoOutputStream;J)V
-PLcom/android/server/wm/WindowState;->writeToProto(Landroid/util/proto/ProtoOutputStream;JI)V
PLcom/android/server/wm/WindowStateAnimator;-><init>(Lcom/android/server/wm/WindowState;)V
PLcom/android/server/wm/WindowStateAnimator;->applyAnimationLocked(IZ)Z
-PLcom/android/server/wm/WindowStateAnimator;->applyCrop(Landroid/graphics/Rect;Z)V
+HPLcom/android/server/wm/WindowStateAnimator;->applyCrop(Landroid/graphics/Rect;Z)V
PLcom/android/server/wm/WindowStateAnimator;->applyEnterAnimationLocked()V
HPLcom/android/server/wm/WindowStateAnimator;->calculateCrop(Landroid/graphics/Rect;)Z
HPLcom/android/server/wm/WindowStateAnimator;->calculateSurfaceBounds(Lcom/android/server/wm/WindowState;Landroid/view/WindowManager$LayoutParams;Landroid/graphics/Rect;)V
-PLcom/android/server/wm/WindowStateAnimator;->commitFinishDrawingLocked()Z
+HPLcom/android/server/wm/WindowStateAnimator;->commitFinishDrawingLocked()Z
HPLcom/android/server/wm/WindowStateAnimator;->computeShownFrameLocked()V
-PLcom/android/server/wm/WindowStateAnimator;->createSurfaceLocked(II)Lcom/android/server/wm/WindowSurfaceController;
+HPLcom/android/server/wm/WindowStateAnimator;->createSurfaceLocked(II)Lcom/android/server/wm/WindowSurfaceController;
PLcom/android/server/wm/WindowStateAnimator;->destroyDeferredSurfaceLocked()V
PLcom/android/server/wm/WindowStateAnimator;->destroyPreservedSurfaceLocked()V
PLcom/android/server/wm/WindowStateAnimator;->destroySurface()V
PLcom/android/server/wm/WindowStateAnimator;->destroySurfaceLocked()V
PLcom/android/server/wm/WindowStateAnimator;->detachChildren()V
+PLcom/android/server/wm/WindowStateAnimator;->drawStateToString()Ljava/lang/String;
+PLcom/android/server/wm/WindowStateAnimator;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+HPLcom/android/server/wm/WindowStateAnimator;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
PLcom/android/server/wm/WindowStateAnimator;->finishDrawingLocked(Landroid/view/SurfaceControl$Transaction;)Z
PLcom/android/server/wm/WindowStateAnimator;->getShown()Z
HPLcom/android/server/wm/WindowStateAnimator;->hasSurface()Z
PLcom/android/server/wm/WindowStateAnimator;->hide(Landroid/view/SurfaceControl$Transaction;Ljava/lang/String;)V
-PLcom/android/server/wm/WindowStateAnimator;->hide(Ljava/lang/String;)V
+HPLcom/android/server/wm/WindowStateAnimator;->hide(Ljava/lang/String;)V
PLcom/android/server/wm/WindowStateAnimator;->isForceScaled()Z
PLcom/android/server/wm/WindowStateAnimator;->markPreservedSurfaceForDestroy()V
PLcom/android/server/wm/WindowStateAnimator;->onAnimationFinished()V
HPLcom/android/server/wm/WindowStateAnimator;->prepareSurfaceLocked(Z)V
+PLcom/android/server/wm/WindowStateAnimator;->preserveSurfaceLocked()V
PLcom/android/server/wm/WindowStateAnimator;->resetDrawState()V
PLcom/android/server/wm/WindowStateAnimator;->setColorSpaceAgnosticLocked(Z)V
PLcom/android/server/wm/WindowStateAnimator;->setOffsetPositionForStackResize(Z)V
+PLcom/android/server/wm/WindowStateAnimator;->setOpaqueLocked(Z)V
+PLcom/android/server/wm/WindowStateAnimator;->setSecureLocked(Z)V
HPLcom/android/server/wm/WindowStateAnimator;->setSurfaceBoundariesLocked(Z)V
PLcom/android/server/wm/WindowStateAnimator;->setWallpaperOffset(II)Z
PLcom/android/server/wm/WindowStateAnimator;->showSurfaceRobustlyLocked()Z
-PLcom/android/server/wm/WindowStateAnimator;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
+PLcom/android/server/wm/WindowStateAnimator;->toString()Ljava/lang/String;
+PLcom/android/server/wm/WindowStateAnimator;->tryChangeFormatInPlaceLocked()Z
PLcom/android/server/wm/WindowSurfaceController;-><init>(Ljava/lang/String;IIIILcom/android/server/wm/WindowStateAnimator;II)V
-PLcom/android/server/wm/WindowSurfaceController;->clearCropInTransaction(Z)V
+HPLcom/android/server/wm/WindowSurfaceController;->clearCropInTransaction(Z)V
PLcom/android/server/wm/WindowSurfaceController;->destroyNotInTransaction()V
PLcom/android/server/wm/WindowSurfaceController;->detachChildren()V
+PLcom/android/server/wm/WindowSurfaceController;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+PLcom/android/server/wm/WindowSurfaceController;->dumpDebug(Landroid/util/proto/ProtoOutputStream;J)V
PLcom/android/server/wm/WindowSurfaceController;->getHeight()I
PLcom/android/server/wm/WindowSurfaceController;->getShown()Z
PLcom/android/server/wm/WindowSurfaceController;->getSurfaceControl(Landroid/view/SurfaceControl;)V
PLcom/android/server/wm/WindowSurfaceController;->getWidth()I
-PLcom/android/server/wm/WindowSurfaceController;->hasSurface()Z
+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(FFFFFZ)Z
-PLcom/android/server/wm/WindowSurfaceController;->setBufferSizeInTransaction(IIZ)Z
+HPLcom/android/server/wm/WindowSurfaceController;->prepareToShowInTransaction(FFFFFZ)Z
+HPLcom/android/server/wm/WindowSurfaceController;->setBufferSizeInTransaction(IIZ)Z
PLcom/android/server/wm/WindowSurfaceController;->setColorSpaceAgnostic(Z)V
PLcom/android/server/wm/WindowSurfaceController;->setCropInTransaction(Landroid/graphics/Rect;Z)V
HPLcom/android/server/wm/WindowSurfaceController;->setMatrix(Landroid/view/SurfaceControl$Transaction;FFFFZ)V
PLcom/android/server/wm/WindowSurfaceController;->setMatrixInTransaction(FFFFZ)V
+PLcom/android/server/wm/WindowSurfaceController;->setOpaque(Z)V
HPLcom/android/server/wm/WindowSurfaceController;->setPosition(Landroid/view/SurfaceControl$Transaction;FFZ)V
PLcom/android/server/wm/WindowSurfaceController;->setPositionInTransaction(FFZ)V
+PLcom/android/server/wm/WindowSurfaceController;->setSecure(Z)V
PLcom/android/server/wm/WindowSurfaceController;->setShown(Z)V
+PLcom/android/server/wm/WindowSurfaceController;->setTransparentRegionHint(Landroid/graphics/Region;)V
PLcom/android/server/wm/WindowSurfaceController;->showRobustlyInTransaction()Z
PLcom/android/server/wm/WindowSurfaceController;->showSurface()Z
-PLcom/android/server/wm/WindowSurfaceController;->toString()Ljava/lang/String;
+HPLcom/android/server/wm/WindowSurfaceController;->toString()Ljava/lang/String;
PLcom/android/server/wm/WindowSurfaceController;->updateVisibility()Z
-PLcom/android/server/wm/WindowSurfaceController;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-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$1;)V
-PLcom/android/server/wm/WindowSurfacePlacer$Traverser;->run()V
-PLcom/android/server/wm/WindowSurfacePlacer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
-PLcom/android/server/wm/WindowSurfacePlacer;->access$000(Lcom/android/server/wm/WindowSurfacePlacer;)Lcom/android/server/wm/WindowManagerService;
-PLcom/android/server/wm/WindowSurfacePlacer;->continueLayout(Z)V
-PLcom/android/server/wm/WindowSurfacePlacer;->deferLayout()V
+HSPLcom/android/server/wm/WindowSurfacePlacer$Traverser;-><init>(Lcom/android/server/wm/WindowSurfacePlacer;)V
+HSPLcom/android/server/wm/WindowSurfacePlacer$Traverser;-><init>(Lcom/android/server/wm/WindowSurfacePlacer;Lcom/android/server/wm/WindowSurfacePlacer$1;)V
+HSPLcom/android/server/wm/WindowSurfacePlacer$Traverser;->run()V
+HSPLcom/android/server/wm/WindowSurfacePlacer;-><init>(Lcom/android/server/wm/WindowManagerService;)V
+HSPLcom/android/server/wm/WindowSurfacePlacer;->access$000(Lcom/android/server/wm/WindowSurfacePlacer;)Lcom/android/server/wm/WindowManagerService;
+HSPLcom/android/server/wm/WindowSurfacePlacer;->continueLayout(Z)V
+HSPLcom/android/server/wm/WindowSurfacePlacer;->deferLayout()V
+PLcom/android/server/wm/WindowSurfacePlacer;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
PLcom/android/server/wm/WindowSurfacePlacer;->isInLayout()Z
-PLcom/android/server/wm/WindowSurfacePlacer;->isLayoutDeferred()Z
-PLcom/android/server/wm/WindowSurfacePlacer;->performSurfacePlacement()V
-PLcom/android/server/wm/WindowSurfacePlacer;->performSurfacePlacement(Z)V
-PLcom/android/server/wm/WindowSurfacePlacer;->performSurfacePlacementLoop()V
-PLcom/android/server/wm/WindowSurfacePlacer;->requestTraversal()V
+HSPLcom/android/server/wm/WindowSurfacePlacer;->isLayoutDeferred()Z
+HSPLcom/android/server/wm/WindowSurfacePlacer;->performSurfacePlacement()V
+HSPLcom/android/server/wm/WindowSurfacePlacer;->performSurfacePlacement(Z)V
+HSPLcom/android/server/wm/WindowSurfacePlacer;->performSurfacePlacementLoop()V
+HSPLcom/android/server/wm/WindowSurfacePlacer;->requestTraversal()V
PLcom/android/server/wm/WindowToken;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;IZLcom/android/server/wm/DisplayContent;Z)V
PLcom/android/server/wm/WindowToken;-><init>(Lcom/android/server/wm/WindowManagerService;Landroid/os/IBinder;IZLcom/android/server/wm/DisplayContent;ZZ)V
PLcom/android/server/wm/WindowToken;->addWindow(Lcom/android/server/wm/WindowState;)V
-PLcom/android/server/wm/WindowToken;->asActivityRecord()Lcom/android/server/wm/ActivityRecord;
+HPLcom/android/server/wm/WindowToken;->asActivityRecord()Lcom/android/server/wm/ActivityRecord;
PLcom/android/server/wm/WindowToken;->canLayerAboveSystemBars()Z
+PLcom/android/server/wm/WindowToken;->dump(Ljava/io/PrintWriter;Ljava/lang/String;Z)V
+HPLcom/android/server/wm/WindowToken;->dumpDebug(Landroid/util/proto/ProtoOutputStream;JI)V
PLcom/android/server/wm/WindowToken;->getName()Ljava/lang/String;
PLcom/android/server/wm/WindowToken;->getReplacingWindow()Lcom/android/server/wm/WindowState;
PLcom/android/server/wm/WindowToken;->isEmpty()Z
+PLcom/android/server/wm/WindowToken;->isFirstChildWindowGreaterThanSecond(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)Z
PLcom/android/server/wm/WindowToken;->lambda$new$0$WindowToken(Lcom/android/server/wm/WindowState;Lcom/android/server/wm/WindowState;)I
-PLcom/android/server/wm/WindowToken;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
+HPLcom/android/server/wm/WindowToken;->onDisplayChanged(Lcom/android/server/wm/DisplayContent;)V
PLcom/android/server/wm/WindowToken;->removeAllWindowsIfPossible()V
PLcom/android/server/wm/WindowToken;->removeImmediately()V
PLcom/android/server/wm/WindowToken;->setExiting()V
PLcom/android/server/wm/WindowToken;->toString()Ljava/lang/String;
-PLcom/android/server/wm/WindowToken;->windowsCanBeWallpaperTarget()Z
-PLcom/android/server/wm/WindowToken;->writeToProto(Landroid/util/proto/ProtoOutputStream;JI)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;
-PLcom/android/server/wm/WindowTracing;->isEnabled()Z
-PLcom/android/server/wm/WindowTracing;->logAndPrintln(Ljava/io/PrintWriter;Ljava/lang/String;)V
-PLcom/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
-PLcom/android/server/wm/utils/DeviceConfigInterface$1;-><init>()V
-PLcom/android/server/wm/utils/DeviceConfigInterface$1;->addOnPropertiesChangedListener(Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
-PLcom/android/server/wm/utils/DeviceConfigInterface$1;->getBoolean(Ljava/lang/String;Ljava/lang/String;Z)Z
-PLcom/android/server/wm/utils/DeviceConfigInterface$1;->getInt(Ljava/lang/String;Ljava/lang/String;I)I
-PLcom/android/server/wm/utils/DeviceConfigInterface$1;->getLong(Ljava/lang/String;Ljava/lang/String;J)J
-PLcom/android/server/wm/utils/DeviceConfigInterface$1;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-PLcom/android/server/wm/utils/DeviceConfigInterface;-><clinit>()V
-PLcom/android/server/wm/utils/DisplayRotationUtil;-><init>()V
+HPLcom/android/server/wm/WindowToken;->windowsCanBeWallpaperTarget()Z
+HSPLcom/android/server/wm/WindowTracing;-><init>(Ljava/io/File;Lcom/android/server/wm/WindowManagerService;Landroid/view/Choreographer;I)V
+HSPLcom/android/server/wm/WindowTracing;-><init>(Ljava/io/File;Lcom/android/server/wm/WindowManagerService;Landroid/view/Choreographer;Lcom/android/server/wm/WindowManagerGlobalLock;I)V
+HSPLcom/android/server/wm/WindowTracing;->createDefaultAndStartLooper(Lcom/android/server/wm/WindowManagerService;Landroid/view/Choreographer;)Lcom/android/server/wm/WindowTracing;
+PLcom/android/server/wm/WindowTracing;->getStatus()Ljava/lang/String;
+HSPLcom/android/server/wm/WindowTracing;->isEnabled()Z
+HSPLcom/android/server/wm/WindowTracing;->logAndPrintln(Ljava/io/PrintWriter;Ljava/lang/String;)V
+HSPLcom/android/server/wm/WindowTracing;->logState(Ljava/lang/String;)V
+HSPLcom/android/server/wm/WindowTracing;->setBufferCapacity(ILjava/io/PrintWriter;)V
+HSPLcom/android/server/wm/WindowTracing;->setLogLevel(ILjava/io/PrintWriter;)V
+PLcom/android/server/wm/animation/ClipRectLRAnimation;-><init>(IIII)V
+PLcom/android/server/wm/animation/ClipRectLRAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
+PLcom/android/server/wm/animation/ClipRectTBAnimation;-><init>(IIIIIILandroid/view/animation/Interpolator;)V
+PLcom/android/server/wm/animation/ClipRectTBAnimation;->applyTransformation(FLandroid/view/animation/Transformation;)V
+PLcom/android/server/wm/animation/ClipRectTBAnimation;->getTransformation(JLandroid/view/animation/Transformation;)Z
+PLcom/android/server/wm/utils/CoordinateTransforms;->transformLogicalToPhysicalCoordinates(IIILandroid/graphics/Matrix;)V
+PLcom/android/server/wm/utils/CoordinateTransforms;->transformPhysicalToLogicalCoordinates(IIILandroid/graphics/Matrix;)V
+HSPLcom/android/server/wm/utils/DeviceConfigInterface$1;-><init>()V
+HSPLcom/android/server/wm/utils/DeviceConfigInterface$1;->addOnPropertiesChangedListener(Ljava/lang/String;Ljava/util/concurrent/Executor;Landroid/provider/DeviceConfig$OnPropertiesChangedListener;)V
+HSPLcom/android/server/wm/utils/DeviceConfigInterface$1;->getBoolean(Ljava/lang/String;Ljava/lang/String;Z)Z
+HSPLcom/android/server/wm/utils/DeviceConfigInterface$1;->getInt(Ljava/lang/String;Ljava/lang/String;I)I
+HSPLcom/android/server/wm/utils/DeviceConfigInterface$1;->getLong(Ljava/lang/String;Ljava/lang/String;J)J
+HSPLcom/android/server/wm/utils/DeviceConfigInterface$1;->getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
+HSPLcom/android/server/wm/utils/DeviceConfigInterface;-><clinit>()V
+HSPLcom/android/server/wm/utils/DisplayRotationUtil;-><init>()V
PLcom/android/server/wm/utils/InsetUtils;->addInsets(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
HPLcom/android/server/wm/utils/InsetUtils;->insetsBetweenFrames(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
-PLcom/android/server/wm/utils/InsetUtils;->rotateInsets(Landroid/graphics/Rect;I)V
-PLcom/android/server/wm/utils/RegionUtils;->forEachRectReverse(Landroid/graphics/Region;Ljava/util/function/Consumer;)V
-PLcom/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
-PLcom/android/server/wm/utils/RotationCache;->getOrCompute(Ljava/lang/Object;I)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;->calculateRelativeTo(Landroid/graphics/Rect;)Lcom/android/server/wm/utils/WmDisplayCutout;
-PLcom/android/server/wm/utils/WmDisplayCutout;->equals(Ljava/lang/Object;)Z
-PLcom/android/server/wm/utils/WmDisplayCutout;->getDisplayCutout()Landroid/view/DisplayCutout;
+HSPLcom/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
+HSPLcom/android/server/wm/utils/RotationCache;-><init>(Lcom/android/server/wm/utils/RotationCache$RotationDependentComputation;)V
+HSPLcom/android/server/wm/utils/RotationCache;->getOrCompute(Ljava/lang/Object;I)Ljava/lang/Object;
+HSPLcom/android/server/wm/utils/WmDisplayCutout;-><clinit>()V
+HSPLcom/android/server/wm/utils/WmDisplayCutout;-><init>(Landroid/view/DisplayCutout;Landroid/util/Size;)V
+HPLcom/android/server/wm/utils/WmDisplayCutout;->calculateRelativeTo(Landroid/graphics/Rect;)Lcom/android/server/wm/utils/WmDisplayCutout;
+HPLcom/android/server/wm/utils/WmDisplayCutout;->equals(Ljava/lang/Object;)Z
+HSPLcom/android/server/wm/utils/WmDisplayCutout;->getDisplayCutout()Landroid/view/DisplayCutout;
+HSPLcom/android/server/wm/utils/WmDisplayCutout;->toString()Ljava/lang/String;
PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$6ikxM-3KospNGDidAY7yA-rECHw;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;Landroid/content/Intent;J)V
PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$6ikxM-3KospNGDidAY7yA-rECHw;->run(Lcom/google/android/startop/iorap/IIorap;)V
PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$B9wq4q5y7qahY6TuLMO_s8nPIwY;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;[BI)V
PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$B9wq4q5y7qahY6TuLMO_s8nPIwY;->run(Lcom/google/android/startop/iorap/IIorap;)V
-PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$J1AHa-Qs75WQr3stjbN97THbudE;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;[BJ)V
+HPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$J1AHa-Qs75WQr3stjbN97THbudE;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;[BJ)V
PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$J1AHa-Qs75WQr3stjbN97THbudE;->run(Lcom/google/android/startop/iorap/IIorap;)V
+PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$bprgjb2FWBxwWDJr-Q4ViVP0aJc;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;[BJ)V
+PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$bprgjb2FWBxwWDJr-Q4ViVP0aJc;->run(Lcom/google/android/startop/iorap/IIorap;)V
PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$elqG7IabJdUOCjFWiPV8vgrXnVI;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;[B)V
PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$elqG7IabJdUOCjFWiPV8vgrXnVI;->run(Lcom/google/android/startop/iorap/IIorap;)V
PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$qed0q0aplGsIh0O7dSm6JWk8wZI;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;)V
PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$qed0q0aplGsIh0O7dSm6JWk8wZI;->run(Lcom/google/android/startop/iorap/IIorap;)V
-PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$miQO-RJhHA7C1W4BujwCS9blXFc;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;)V
-PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$miQO-RJhHA7C1W4BujwCS9blXFc;->run(Lcom/google/android/startop/iorap/IIorap;)V
+PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$IorapdJobService$LUEcmjVFTNORsDoHk5dk5OHflTU;-><init>(Lcom/google/android/startop/iorap/RequestId;Landroid/app/job/JobParameters;)V
+PLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$IorapdJobService$LUEcmjVFTNORsDoHk5dk5OHflTU;->run(Lcom/google/android/startop/iorap/IIorap;)V
+HSPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$miQO-RJhHA7C1W4BujwCS9blXFc;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;)V
+HSPLcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$miQO-RJhHA7C1W4BujwCS9blXFc;->run(Lcom/google/android/startop/iorap/IIorap;)V
PLcom/google/android/startop/iorap/AppLaunchEvent$1;-><init>()V
PLcom/google/android/startop/iorap/AppLaunchEvent$ActivityLaunchCancelled;-><init>(J[B)V
PLcom/google/android/startop/iorap/AppLaunchEvent$ActivityLaunchCancelled;->writeToParcelImpl(Landroid/os/Parcel;I)V
@@ -19841,75 +24084,120 @@ PLcom/google/android/startop/iorap/AppLaunchEvent$IntentFailed;-><init>(J)V
PLcom/google/android/startop/iorap/AppLaunchEvent$IntentProtoParcelable;->write(Landroid/os/Parcel;Landroid/content/Intent;I)V
PLcom/google/android/startop/iorap/AppLaunchEvent$IntentStarted;-><init>(JLandroid/content/Intent;J)V
PLcom/google/android/startop/iorap/AppLaunchEvent$IntentStarted;->writeToParcelImpl(Landroid/os/Parcel;I)V
+PLcom/google/android/startop/iorap/AppLaunchEvent$ReportFullyDrawn;-><init>(J[BJ)V
+PLcom/google/android/startop/iorap/AppLaunchEvent$ReportFullyDrawn;->writeToParcelImpl(Landroid/os/Parcel;I)V
PLcom/google/android/startop/iorap/AppLaunchEvent;-><clinit>()V
PLcom/google/android/startop/iorap/AppLaunchEvent;-><init>(J)V
PLcom/google/android/startop/iorap/AppLaunchEvent;->getTypeIndex()I
PLcom/google/android/startop/iorap/AppLaunchEvent;->writeToParcel(Landroid/os/Parcel;I)V
PLcom/google/android/startop/iorap/AppLaunchEvent;->writeToParcelImpl(Landroid/os/Parcel;I)V
-PLcom/google/android/startop/iorap/IIorap$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-PLcom/google/android/startop/iorap/IIorap$Stub$Proxy;->asBinder()Landroid/os/IBinder;
+PLcom/google/android/startop/iorap/CheckHelpers;->checkStateInRange(II)V
+PLcom/google/android/startop/iorap/CheckHelpers;->checkTypeInRange(II)V
+HSPLcom/google/android/startop/iorap/IIorap$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
+HSPLcom/google/android/startop/iorap/IIorap$Stub$Proxy;->asBinder()Landroid/os/IBinder;
PLcom/google/android/startop/iorap/IIorap$Stub$Proxy;->onAppLaunchEvent(Lcom/google/android/startop/iorap/RequestId;Lcom/google/android/startop/iorap/AppLaunchEvent;)V
-PLcom/google/android/startop/iorap/IIorap$Stub$Proxy;->setTaskListener(Lcom/google/android/startop/iorap/ITaskListener;)V
-PLcom/google/android/startop/iorap/IIorap$Stub;->asInterface(Landroid/os/IBinder;)Lcom/google/android/startop/iorap/IIorap;
-PLcom/google/android/startop/iorap/ITaskListener$Stub;-><init>()V
-PLcom/google/android/startop/iorap/ITaskListener$Stub;->asBinder()Landroid/os/IBinder;
-PLcom/google/android/startop/iorap/IorapForwardingService$1;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;)V
+PLcom/google/android/startop/iorap/IIorap$Stub$Proxy;->onJobScheduledEvent(Lcom/google/android/startop/iorap/RequestId;Lcom/google/android/startop/iorap/JobScheduledEvent;)V
+HSPLcom/google/android/startop/iorap/IIorap$Stub$Proxy;->setTaskListener(Lcom/google/android/startop/iorap/ITaskListener;)V
+HSPLcom/google/android/startop/iorap/IIorap$Stub;->asInterface(Landroid/os/IBinder;)Lcom/google/android/startop/iorap/IIorap;
+HSPLcom/google/android/startop/iorap/ITaskListener$Stub;-><init>()V
+HSPLcom/google/android/startop/iorap/ITaskListener$Stub;->asBinder()Landroid/os/IBinder;
+PLcom/google/android/startop/iorap/ITaskListener$Stub;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
+HSPLcom/google/android/startop/iorap/IorapForwardingService$1;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;)V
PLcom/google/android/startop/iorap/IorapForwardingService$1;->binderDied()V
-PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;)V
-PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;Lcom/google/android/startop/iorap/IorapForwardingService$1;)V
+HSPLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;)V
+HSPLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;Lcom/google/android/startop/iorap/IorapForwardingService$1;)V
PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->lambda$onActivityLaunchCancelled$3$IorapForwardingService$AppLaunchObserver([BLcom/google/android/startop/iorap/IIorap;)V
PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->lambda$onActivityLaunchFinished$4$IorapForwardingService$AppLaunchObserver([BJLcom/google/android/startop/iorap/IIorap;)V
PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->lambda$onActivityLaunched$2$IorapForwardingService$AppLaunchObserver([BILcom/google/android/startop/iorap/IIorap;)V
PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->lambda$onIntentFailed$1$IorapForwardingService$AppLaunchObserver(Lcom/google/android/startop/iorap/IIorap;)V
PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->lambda$onIntentStarted$0$IorapForwardingService$AppLaunchObserver(Landroid/content/Intent;JLcom/google/android/startop/iorap/IIorap;)V
+PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->lambda$onReportFullyDrawn$5$IorapForwardingService$AppLaunchObserver([BJLcom/google/android/startop/iorap/IIorap;)V
PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->onActivityLaunchCancelled([B)V
PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->onActivityLaunchFinished([BJ)V
PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->onActivityLaunched([BI)V
PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->onIntentFailed()V
PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->onIntentStarted(Landroid/content/Intent;J)V
-PLcom/google/android/startop/iorap/IorapForwardingService$BinderConnectionHandler;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;Landroid/os/Looper;)V
+PLcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;->onReportFullyDrawn([BJ)V
+HSPLcom/google/android/startop/iorap/IorapForwardingService$BinderConnectionHandler;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;Landroid/os/Looper;)V
PLcom/google/android/startop/iorap/IorapForwardingService$BinderConnectionHandler;->handleMessage(Landroid/os/Message;)V
PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;Landroid/content/Context;)V
+PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;->bindProxy(Lcom/google/android/startop/iorap/IorapForwardingService$IorapdJobServiceProxy;)V
+PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;->lambda$onStartJob$0(Lcom/google/android/startop/iorap/RequestId;Landroid/app/job/JobParameters;Lcom/google/android/startop/iorap/IIorap;)V
PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;->onIorapdDisconnected()V
-PLcom/google/android/startop/iorap/IorapForwardingService$RemoteTaskListener;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;)V
-PLcom/google/android/startop/iorap/IorapForwardingService$RemoteTaskListener;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;Lcom/google/android/startop/iorap/IorapForwardingService$1;)V
-PLcom/google/android/startop/iorap/IorapForwardingService;-><clinit>()V
-PLcom/google/android/startop/iorap/IorapForwardingService;-><init>(Landroid/content/Context;)V
+PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;->onIorapdTaskCompleted(Lcom/google/android/startop/iorap/RequestId;)V
+PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;->onStartJob(Landroid/app/job/JobParameters;)Z
+PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobServiceProxy;-><init>()V
+PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobServiceProxy;->getActualIorapdJobService()Lcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;
+PLcom/google/android/startop/iorap/IorapForwardingService$IorapdJobServiceProxy;->onStartJob(Landroid/app/job/JobParameters;)Z
+HSPLcom/google/android/startop/iorap/IorapForwardingService$RemoteTaskListener;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;)V
+HSPLcom/google/android/startop/iorap/IorapForwardingService$RemoteTaskListener;-><init>(Lcom/google/android/startop/iorap/IorapForwardingService;Lcom/google/android/startop/iorap/IorapForwardingService$1;)V
+PLcom/google/android/startop/iorap/IorapForwardingService$RemoteTaskListener;->onComplete(Lcom/google/android/startop/iorap/RequestId;Lcom/google/android/startop/iorap/TaskResult;)V
+PLcom/google/android/startop/iorap/IorapForwardingService$RemoteTaskListener;->onProgress(Lcom/google/android/startop/iorap/RequestId;Lcom/google/android/startop/iorap/TaskResult;)V
+HSPLcom/google/android/startop/iorap/IorapForwardingService;-><clinit>()V
+HSPLcom/google/android/startop/iorap/IorapForwardingService;-><init>(Landroid/content/Context;)V
PLcom/google/android/startop/iorap/IorapForwardingService;->access$000(Lcom/google/android/startop/iorap/IorapForwardingService;I)Z
PLcom/google/android/startop/iorap/IorapForwardingService;->access$100(Lcom/google/android/startop/iorap/IorapForwardingService;)Lcom/google/android/startop/iorap/IorapForwardingService$IorapdJobService;
PLcom/google/android/startop/iorap/IorapForwardingService;->access$300(Lcom/google/android/startop/iorap/IorapForwardingService;)Lcom/google/android/startop/iorap/IIorap;
PLcom/google/android/startop/iorap/IorapForwardingService;->access$400(Lcom/google/android/startop/iorap/IIorap;Lcom/google/android/startop/iorap/IorapForwardingService$RemoteRunnable;)Z
-PLcom/google/android/startop/iorap/IorapForwardingService;->connectToRemoteAndConfigure()Z
-PLcom/google/android/startop/iorap/IorapForwardingService;->connectToRemoteAndConfigureLocked()Z
-PLcom/google/android/startop/iorap/IorapForwardingService;->encodeEnglishAlphabetStringIntoInt(Ljava/lang/String;)I
+PLcom/google/android/startop/iorap/IorapForwardingService;->access$500()Lcom/google/android/startop/iorap/IorapForwardingService;
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->connectToRemoteAndConfigure()Z
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->connectToRemoteAndConfigureLocked()Z
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->encodeEnglishAlphabetStringIntoInt(Ljava/lang/String;)I
PLcom/google/android/startop/iorap/IorapForwardingService;->handleRemoteError(Ljava/lang/Throwable;)V
-PLcom/google/android/startop/iorap/IorapForwardingService;->invokeRemote(Lcom/google/android/startop/iorap/IIorap;Lcom/google/android/startop/iorap/IorapForwardingService$RemoteRunnable;)Z
-PLcom/google/android/startop/iorap/IorapForwardingService;->isIorapEnabled()Z
-PLcom/google/android/startop/iorap/IorapForwardingService;->lambda$connectToRemoteAndConfigureLocked$0$IorapForwardingService(Lcom/google/android/startop/iorap/IIorap;)V
-PLcom/google/android/startop/iorap/IorapForwardingService;->onBootPhase(I)V
-PLcom/google/android/startop/iorap/IorapForwardingService;->onStart()V
-PLcom/google/android/startop/iorap/IorapForwardingService;->provideDeathRecipient()Landroid/os/IBinder$DeathRecipient;
-PLcom/google/android/startop/iorap/IorapForwardingService;->provideIorapRemote()Lcom/google/android/startop/iorap/IIorap;
-PLcom/google/android/startop/iorap/IorapForwardingService;->provideLaunchObserverRegistry()Lcom/android/server/wm/ActivityMetricsLaunchObserverRegistry;
-PLcom/google/android/startop/iorap/IorapForwardingService;->registerInProcessListenersLocked()V
-PLcom/google/android/startop/iorap/IorapForwardingService;->retryConnectToRemoteAndConfigure(I)Z
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->invokeRemote(Lcom/google/android/startop/iorap/IIorap;Lcom/google/android/startop/iorap/IorapForwardingService$RemoteRunnable;)Z
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->isIorapEnabled()Z
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->lambda$connectToRemoteAndConfigureLocked$0$IorapForwardingService(Lcom/google/android/startop/iorap/IIorap;)V
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->onBootPhase(I)V
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->onStart()V
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->provideDeathRecipient()Landroid/os/IBinder$DeathRecipient;
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->provideIorapRemote()Lcom/google/android/startop/iorap/IIorap;
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->provideLaunchObserverRegistry()Lcom/android/server/wm/ActivityMetricsLaunchObserverRegistry;
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->registerInProcessListenersLocked()V
+HSPLcom/google/android/startop/iorap/IorapForwardingService;->retryConnectToRemoteAndConfigure(I)Z
+PLcom/google/android/startop/iorap/JobScheduledEvent$1;-><init>()V
+PLcom/google/android/startop/iorap/JobScheduledEvent;-><clinit>()V
+PLcom/google/android/startop/iorap/JobScheduledEvent;-><init>(III)V
+PLcom/google/android/startop/iorap/JobScheduledEvent;->checkConstructorArguments()V
+PLcom/google/android/startop/iorap/JobScheduledEvent;->createIdleMaintenance(ILandroid/app/job/JobParameters;)Lcom/google/android/startop/iorap/JobScheduledEvent;
+PLcom/google/android/startop/iorap/JobScheduledEvent;->writeToParcel(Landroid/os/Parcel;I)V
PLcom/google/android/startop/iorap/RequestId$1;-><init>()V
+PLcom/google/android/startop/iorap/RequestId$1;->createFromParcel(Landroid/os/Parcel;)Lcom/google/android/startop/iorap/RequestId;
+PLcom/google/android/startop/iorap/RequestId$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
PLcom/google/android/startop/iorap/RequestId;-><clinit>()V
PLcom/google/android/startop/iorap/RequestId;-><init>(J)V
+PLcom/google/android/startop/iorap/RequestId;-><init>(Landroid/os/Parcel;)V
+PLcom/google/android/startop/iorap/RequestId;-><init>(Landroid/os/Parcel;Lcom/google/android/startop/iorap/RequestId$1;)V
PLcom/google/android/startop/iorap/RequestId;->checkConstructorArguments()V
+PLcom/google/android/startop/iorap/RequestId;->equals(Lcom/google/android/startop/iorap/RequestId;)Z
+PLcom/google/android/startop/iorap/RequestId;->equals(Ljava/lang/Object;)Z
+PLcom/google/android/startop/iorap/RequestId;->hashCode()I
PLcom/google/android/startop/iorap/RequestId;->nextValueForSequence()Lcom/google/android/startop/iorap/RequestId;
PLcom/google/android/startop/iorap/RequestId;->writeToParcel(Landroid/os/Parcel;I)V
+PLcom/google/android/startop/iorap/TaskResult$1;-><init>()V
+PLcom/google/android/startop/iorap/TaskResult$1;->createFromParcel(Landroid/os/Parcel;)Lcom/google/android/startop/iorap/TaskResult;
+PLcom/google/android/startop/iorap/TaskResult$1;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
+PLcom/google/android/startop/iorap/TaskResult;-><clinit>()V
+PLcom/google/android/startop/iorap/TaskResult;-><init>(Landroid/os/Parcel;)V
+PLcom/google/android/startop/iorap/TaskResult;-><init>(Landroid/os/Parcel;Lcom/google/android/startop/iorap/TaskResult$1;)V
+PLcom/google/android/startop/iorap/TaskResult;->checkConstructorArguments()V
Landroid/app/usage/UsageStatsManagerInternal;
+Landroid/content/pm/PackageManagerInternal$ExternalSourcesPolicy;
Landroid/content/pm/PackageManagerInternal$PackageListObserver;
Landroid/content/pm/PackageManagerInternal;
Landroid/hardware/authsecret/V1_0/IAuthSecret$Proxy;
Landroid/hardware/authsecret/V1_0/IAuthSecret;
+Landroid/hardware/biometrics/face/V1_0/IBiometricsFace$Proxy;
+Landroid/hardware/biometrics/face/V1_0/IBiometricsFace;
+Landroid/hardware/biometrics/face/V1_0/IBiometricsFaceClientCallback$Stub;
+Landroid/hardware/biometrics/face/V1_0/IBiometricsFaceClientCallback;
+Landroid/hardware/biometrics/face/V1_0/OptionalUint64;
Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint$Proxy;
Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprint;
Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprintClientCallback$Stub;
Landroid/hardware/biometrics/fingerprint/V2_1/IBiometricsFingerprintClientCallback;
Landroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs$Proxy;
Landroid/hardware/configstore/V1_0/ISurfaceFlingerConfigs;
+Landroid/hardware/configstore/V1_0/OptionalBool;
Landroid/hardware/health/V1_0/HealthInfo;
Landroid/hardware/health/V2_0/DiskStats;
Landroid/hardware/health/V2_0/HealthInfo;
@@ -19934,12 +24222,15 @@ Landroid/hardware/usb/V1_1/IUsbCallback;
Landroid/hardware/usb/V1_1/PortStatus_1_1;
Landroid/hardware/usb/V1_2/IUsbCallback$Stub;
Landroid/hardware/usb/V1_2/IUsbCallback;
+Landroid/hardware/usb/V1_2/PortStatus;
Landroid/hardware/weaver/V1_0/IWeaver$Proxy;
Landroid/hardware/weaver/V1_0/IWeaver$getConfigCallback;
Landroid/hardware/weaver/V1_0/IWeaver$readCallback;
Landroid/hardware/weaver/V1_0/IWeaver;
+Landroid/hardware/weaver/V1_0/WeaverConfig;
Landroid/hardware/weaver/V1_0/WeaverReadResponse;
Landroid/hidl/base/V1_0/IBase;
+Landroid/hidl/manager/V1_0/IServiceManager$InstanceDebugInfo;
Landroid/hidl/manager/V1_0/IServiceManager$Proxy;
Landroid/hidl/manager/V1_0/IServiceManager;
Landroid/hidl/manager/V1_0/IServiceNotification$Stub;
@@ -19950,11 +24241,17 @@ Landroid/hidl/manager/V1_2/IServiceManager;
Landroid/net/-$$Lambda$NetworkStackClient$8Y7GJyozK7_xixdmgfHS4QSif-A;
Landroid/net/-$$Lambda$NetworkStackClient$EsrnifYD8E-HxTwVQsf45HJKvtM;
Landroid/net/-$$Lambda$NetworkStackClient$qInwLPrclXOFvKSYRjcCaCSeEhw;
+Landroid/net/ConnectivityModuleConnector$ConnectivityModuleHealthListener;
Landroid/net/ConnectivityModuleConnector$Dependencies;
Landroid/net/ConnectivityModuleConnector$DependenciesImpl;
+Landroid/net/ConnectivityModuleConnector$ModuleServiceCallback;
+Landroid/net/ConnectivityModuleConnector$ModuleServiceConnection;
Landroid/net/ConnectivityModuleConnector;
Landroid/net/DhcpResultsParcelable$1;
Landroid/net/DhcpResultsParcelable;
+Landroid/net/IDnsResolver$Stub$Proxy;
+Landroid/net/IDnsResolver$Stub;
+Landroid/net/IDnsResolver;
Landroid/net/IIpMemoryStore$Stub$Proxy;
Landroid/net/IIpMemoryStore;
Landroid/net/IIpMemoryStoreCallbacks$Stub;
@@ -19970,18 +24267,31 @@ Landroid/net/INetworkMonitorCallbacks$Stub;
Landroid/net/INetworkMonitorCallbacks;
Landroid/net/INetworkStackConnector$Stub$Proxy;
Landroid/net/INetworkStackConnector;
+Landroid/net/ITetheringConnector;
+Landroid/net/InterfaceConfigurationParcel$1;
+Landroid/net/InterfaceConfigurationParcel;
Landroid/net/IpMemoryStore$1;
+Landroid/net/NetworkMonitorManager;
+Landroid/net/NetworkStackClient$Dependencies;
+Landroid/net/NetworkStackClient$DependenciesImpl;
Landroid/net/NetworkStackClient$NetworkStackCallback;
+Landroid/net/NetworkStackClient$NetworkStackConnection;
Landroid/net/NetworkStackClient;
Landroid/net/PrivateDnsConfigParcel$1;
Landroid/net/PrivateDnsConfigParcel;
Landroid/net/ProvisioningConfigurationParcelable$1;
Landroid/net/ProvisioningConfigurationParcelable;
+Landroid/net/TetherStatsParcel$1;
+Landroid/net/TetherStatsParcel;
+Landroid/net/TetheringManager$TetheringConnection;
+Landroid/net/TetheringManager;
+Landroid/net/UidRangeParcel;
Landroid/net/ip/IIpClient$Stub$Proxy;
Landroid/net/ip/IIpClient;
Landroid/net/ip/IIpClientCallbacks$Stub;
Landroid/net/ip/IIpClientCallbacks;
Landroid/net/ip/IpClientCallbacks;
+Landroid/net/ip/IpClientManager;
Landroid/net/ip/IpClientUtil$IpClientCallbacksProxy;
Landroid/net/ip/IpClientUtil;
Landroid/net/ipmemorystore/Blob;
@@ -20003,6 +24313,7 @@ Landroid/net/util/SharedLog$Category;
Landroid/net/util/SharedLog;
Landroid/os/BatteryStatsInternal;
Landroid/os/IIdmap2$Stub$Proxy;
+Landroid/os/IIdmap2$Stub;
Landroid/os/IIdmap2;
Landroid/os/UserManagerInternal$UserRestrictionsListener;
Landroid/os/UserManagerInternal;
@@ -20019,6 +24330,7 @@ Lcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$7Y-B9O7N
Lcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$9z3zqgxtPzBN8Qoni5nHVb0m8EY;
Lcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$DM4ow6LC--JYWBfhHp2f1JW8nww;
Lcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$KZAu97wwr_7_MI0awCjQTzdIuAI;
+Lcom/android/server/-$$Lambda$BatteryService$BatteryPropertiesRegistrar$muNPoFqxU6pF6un7sF70iW4-Fus;
Lcom/android/server/-$$Lambda$BatteryService$D1kwd7L7yyqN5niz3KWkTepVmUk;
Lcom/android/server/-$$Lambda$ConnectivityService$SFqiR4Pfksb1C7csMC3uNxCllR8;
Lcom/android/server/-$$Lambda$ConnectivityService$_NU7EIcPVS-uF_gWH_NWN_gBL4w;
@@ -20031,6 +24343,17 @@ Lcom/android/server/-$$Lambda$GraphicsStatsService$2EDVu98hsJvSwNgKvijVLSR3IrQ;
Lcom/android/server/-$$Lambda$HALkbmbB2IPr_wdFkPjiIWCzJsY;
Lcom/android/server/-$$Lambda$IpSecService$AnqunmSwm_yQvDDEPg-gokhVs5M;
Lcom/android/server/-$$Lambda$LocationManagerService$1$HAAnoF9DI9FvCHK_geH89--2z2I;
+Lcom/android/server/-$$Lambda$LocationManagerService$56u_uxjuANYKBEJg0XAb0TfpovM;
+Lcom/android/server/-$$Lambda$LocationManagerService$BQNQ1vKVv2dgsjR1d4p8xU8o1us;
+Lcom/android/server/-$$Lambda$LocationManagerService$BY2uqgE48i0Shvo1FGLa9toRxBA;
+Lcom/android/server/-$$Lambda$LocationManagerService$DJ4kMod0tVB-vqSawrWCXTCoPAM;
+Lcom/android/server/-$$Lambda$LocationManagerService$GnHas6J3gXGjXx6KfNuV_GzNl9w;
+Lcom/android/server/-$$Lambda$LocationManagerService$HZIPtgYCt4b4zdEJtC8qjcHStVE;
+Lcom/android/server/-$$Lambda$LocationManagerService$LocationProviderManager$neXVKsR0MS1O6DaHXSdf3TVC-rc;
+Lcom/android/server/-$$Lambda$LocationManagerService$Nht7c6P7I1-MJqXp4qiS_HUIjzY;
+Lcom/android/server/-$$Lambda$LocationManagerService$V3FRncuMEn-4R6Dd2zsTs4m0dWM;
+Lcom/android/server/-$$Lambda$LocationManagerService$es-cu7rp_R0xbJzDRj4qpZNL7vc;
+Lcom/android/server/-$$Lambda$LocationManagerService$qbZh8GXCTpZ1wNP3qw1VXZxlKQg;
Lcom/android/server/-$$Lambda$LooperStatsService$Byo6QAxZpVXDCMtjrcYJc6YLAks;
Lcom/android/server/-$$Lambda$LooperStatsService$Vzysuo2tO86qjfcWeh1Rdb47NQQ;
Lcom/android/server/-$$Lambda$LooperStatsService$XjYmSR91xdWG1Xgt-Gj9GBZZbjk;
@@ -20056,8 +24379,14 @@ Lcom/android/server/-$$Lambda$NetworkManagementService$_L953cbquVj0BMBP1MZlSTm0U
Lcom/android/server/-$$Lambda$NetworkManagementService$hs6djmKbGd8sG4u1TMglrogNP_s;
Lcom/android/server/-$$Lambda$NetworkManagementService$vX8dVVYxxv3YT9jQuN34bgGgRa8;
Lcom/android/server/-$$Lambda$NetworkManagementService$xer7k2RLU4mODjrkZqaX89S9gD8;
+Lcom/android/server/-$$Lambda$NetworkScoreService$vwytA23Qz3U83FJaKiA52aJ1mts;
+Lcom/android/server/-$$Lambda$PackageWatchdog$07YAng9lcuyRJuBYy9Jk3p2pWVY;
+Lcom/android/server/-$$Lambda$PackageWatchdog$9whbrgN2UsbVDUUSdkrctYqoh5M;
Lcom/android/server/-$$Lambda$PackageWatchdog$CQuOnXthwwBaxcS5WoAlJJAz8Tk;
Lcom/android/server/-$$Lambda$PackageWatchdog$Q0WI2EJpRFO1jF_7_YDaj1eGHas;
+Lcom/android/server/-$$Lambda$PackageWatchdog$nOS9OaZO4hPsSe0I8skPT1UgQoo;
+Lcom/android/server/-$$Lambda$PackageWatchdog$oAoA92I4TtJeqztFu3XBOLEs7gE;
+Lcom/android/server/-$$Lambda$PackageWatchdog$uFI2R7Ip9Bh1wQPJqJ5H5A0soVU;
Lcom/android/server/-$$Lambda$PackageWatchdog$vRKcIrucEj03dz6ypRVINZtns1s;
Lcom/android/server/-$$Lambda$PersistentDataBlockService$EZl9OYaT2eNL7kfSr2nKUBjxidk;
Lcom/android/server/-$$Lambda$PinnerService$3$3Ta6TX4Jq9YbpUYE5Y0r8Xt8rBw;
@@ -20071,7 +24400,9 @@ Lcom/android/server/-$$Lambda$ServiceWatcher$b1z9OeL-1VpQ_8p47qz7nMNUpsE;
Lcom/android/server/-$$Lambda$ServiceWatcher$gVk2fFkq2-aamIua2kIpukAFtf8;
Lcom/android/server/-$$Lambda$ServiceWatcher$uCZpuTwrOz-CS9PQS2NY1ZXaU8U;
Lcom/android/server/-$$Lambda$ServiceWatcher$uru7j1zD-GiN8rndFZ3KWaTrxYo;
+Lcom/android/server/-$$Lambda$StorageManagerService$js3bHvdd2Mf8gztNxvL27JoT034;
Lcom/android/server/-$$Lambda$SystemServer$NlJmG18aPrQduhRqASIdcn7G0z8;
+Lcom/android/server/-$$Lambda$SystemServer$TEbRm_G0ejorrajBEvke8XmHuQU;
Lcom/android/server/-$$Lambda$SystemServer$UyrPns7R814g-ZEylCbDKhe8It4;
Lcom/android/server/-$$Lambda$SystemServer$VBGb9VpEls6bUcVBPwYLtX7qDTs;
Lcom/android/server/-$$Lambda$SystemServer$Y1gEdKr_Hb7K7cbTDAo_WOJ-SYI;
@@ -20099,11 +24430,10 @@ Lcom/android/server/AlarmManagerService$AppStandbyTracker;
Lcom/android/server/AlarmManagerService$AppWakeupHistory;
Lcom/android/server/AlarmManagerService$Batch;
Lcom/android/server/AlarmManagerService$BatchTimeOrder;
-Lcom/android/server/AlarmManagerService$BroadcastStats;
+Lcom/android/server/AlarmManagerService$ChargingReceiver;
Lcom/android/server/AlarmManagerService$ClockReceiver;
Lcom/android/server/AlarmManagerService$Constants;
Lcom/android/server/AlarmManagerService$DeliveryTracker;
-Lcom/android/server/AlarmManagerService$FilterStats;
Lcom/android/server/AlarmManagerService$InFlight;
Lcom/android/server/AlarmManagerService$IncreasingTimeOrder;
Lcom/android/server/AlarmManagerService$Injector;
@@ -20113,6 +24443,7 @@ Lcom/android/server/AlarmManagerService$UidObserver;
Lcom/android/server/AlarmManagerService$UninstallReceiver;
Lcom/android/server/AlarmManagerService;
Lcom/android/server/AnimationThread;
+Lcom/android/server/AppStateTracker$AppOpsWatcher;
Lcom/android/server/AppStateTracker$FeatureFlagsObserver;
Lcom/android/server/AppStateTracker$Listener;
Lcom/android/server/AppStateTracker$MyHandler;
@@ -20122,6 +24453,9 @@ Lcom/android/server/AppStateTracker$UidObserver;
Lcom/android/server/AppStateTracker;
Lcom/android/server/AttributeCache;
Lcom/android/server/BatteryService$10;
+Lcom/android/server/BatteryService$2;
+Lcom/android/server/BatteryService$3;
+Lcom/android/server/BatteryService$4;
Lcom/android/server/BatteryService$7;
Lcom/android/server/BatteryService$8;
Lcom/android/server/BatteryService$9;
@@ -20146,6 +24480,7 @@ Lcom/android/server/BluetoothManagerService$1;
Lcom/android/server/BluetoothManagerService$2;
Lcom/android/server/BluetoothManagerService$3;
Lcom/android/server/BluetoothManagerService$4;
+Lcom/android/server/BluetoothManagerService$5;
Lcom/android/server/BluetoothManagerService$ActiveLog;
Lcom/android/server/BluetoothManagerService$BluetoothHandler;
Lcom/android/server/BluetoothManagerService$BluetoothServiceConnection;
@@ -20155,12 +24490,19 @@ Lcom/android/server/BluetoothManagerService;
Lcom/android/server/BluetoothService;
Lcom/android/server/CachedDeviceStateService$1;
Lcom/android/server/CachedDeviceStateService;
+Lcom/android/server/CertBlacklister$BlacklistObserver;
Lcom/android/server/CertBlacklister;
Lcom/android/server/ConnectivityService$1;
+Lcom/android/server/ConnectivityService$2;
+Lcom/android/server/ConnectivityService$3;
+Lcom/android/server/ConnectivityService$4;
+Lcom/android/server/ConnectivityService$5;
Lcom/android/server/ConnectivityService$6;
Lcom/android/server/ConnectivityService$CaptivePortalImpl;
+Lcom/android/server/ConnectivityService$Dependencies;
Lcom/android/server/ConnectivityService$InternalHandler;
Lcom/android/server/ConnectivityService$LegacyTypeTracker;
+Lcom/android/server/ConnectivityService$NetworkFactoryInfo;
Lcom/android/server/ConnectivityService$NetworkMonitorCallbacks;
Lcom/android/server/ConnectivityService$NetworkRequestInfo;
Lcom/android/server/ConnectivityService$NetworkStateTrackerHandler;
@@ -20177,11 +24519,15 @@ Lcom/android/server/CountryDetectorService$Receiver;
Lcom/android/server/CountryDetectorService;
Lcom/android/server/DiskStatsService;
Lcom/android/server/DisplayThread;
+Lcom/android/server/DockObserver$1;
+Lcom/android/server/DockObserver$2;
Lcom/android/server/DockObserver$BinderService;
Lcom/android/server/DockObserver;
Lcom/android/server/DropBoxManagerService$1$1;
Lcom/android/server/DropBoxManagerService$1;
Lcom/android/server/DropBoxManagerService$2;
+Lcom/android/server/DropBoxManagerService$3;
+Lcom/android/server/DropBoxManagerService$DropBoxManagerBroadcastHandler;
Lcom/android/server/DropBoxManagerService$EntryFile;
Lcom/android/server/DropBoxManagerService$FileList;
Lcom/android/server/DropBoxManagerService;
@@ -20196,6 +24542,9 @@ Lcom/android/server/ExtconUEventObserver$ExtconInfo;
Lcom/android/server/ExtconUEventObserver;
Lcom/android/server/FgThread;
Lcom/android/server/GestureLauncherService$1;
+Lcom/android/server/GestureLauncherService$2;
+Lcom/android/server/GestureLauncherService$CameraLiftTriggerEventListener;
+Lcom/android/server/GestureLauncherService$GestureEventListener;
Lcom/android/server/GestureLauncherService;
Lcom/android/server/GnssManagerService;
Lcom/android/server/GraphicsStatsService$1;
@@ -20215,17 +24564,23 @@ Lcom/android/server/IpSecService$UidFdTagger;
Lcom/android/server/IpSecService$UserResourceTracker;
Lcom/android/server/IpSecService;
Lcom/android/server/LocationManagerService$1;
-Lcom/android/server/LocationManagerService$LocationProvider;
+Lcom/android/server/LocationManagerService$2;
+Lcom/android/server/LocationManagerService$3;
+Lcom/android/server/LocationManagerService$Lifecycle;
+Lcom/android/server/LocationManagerService$LocationProviderManager;
Lcom/android/server/LocationManagerService$Receiver;
Lcom/android/server/LocationManagerService$UpdateRecord;
Lcom/android/server/LocationManagerService;
Lcom/android/server/LocationManagerServiceUtils$LinkedListenerBase;
+Lcom/android/server/LocationManagerServiceUtils;
Lcom/android/server/LockGuard$LockInfo;
Lcom/android/server/LockGuard;
Lcom/android/server/LooperStatsService$Lifecycle;
+Lcom/android/server/LooperStatsService$SettingsObserver;
Lcom/android/server/LooperStatsService;
Lcom/android/server/MmsServiceBroker$1;
Lcom/android/server/MmsServiceBroker$2;
+Lcom/android/server/MmsServiceBroker$3;
Lcom/android/server/MmsServiceBroker$BinderService;
Lcom/android/server/MmsServiceBroker;
Lcom/android/server/MountServiceIdler$1;
@@ -20234,6 +24589,7 @@ Lcom/android/server/NativeDaemonConnector$ResponseQueue;
Lcom/android/server/NativeDaemonConnector;
Lcom/android/server/NativeDaemonConnectorException;
Lcom/android/server/NativeDaemonEvent;
+Lcom/android/server/NetIdManager;
Lcom/android/server/NetworkManagementInternal;
Lcom/android/server/NetworkManagementService$LocalService;
Lcom/android/server/NetworkManagementService$NetdTetheringStatsProvider;
@@ -20243,6 +24599,7 @@ Lcom/android/server/NetworkManagementService$SystemServices;
Lcom/android/server/NetworkManagementService;
Lcom/android/server/NetworkScoreService$1;
Lcom/android/server/NetworkScoreService$2;
+Lcom/android/server/NetworkScoreService$3;
Lcom/android/server/NetworkScoreService$CurrentNetworkScoreCacheFilter;
Lcom/android/server/NetworkScoreService$DispatchingContentObserver;
Lcom/android/server/NetworkScoreService$FilteringCacheUpdatingConsumer;
@@ -20255,13 +24612,22 @@ Lcom/android/server/NetworkScoreService$ServiceHandler;
Lcom/android/server/NetworkScoreService;
Lcom/android/server/NetworkScorerAppManager$SettingsFacade;
Lcom/android/server/NetworkScorerAppManager;
+Lcom/android/server/NetworkTimeUpdateService;
+Lcom/android/server/NetworkTimeUpdateServiceImpl$1;
+Lcom/android/server/NetworkTimeUpdateServiceImpl$2;
+Lcom/android/server/NetworkTimeUpdateServiceImpl$MyHandler;
+Lcom/android/server/NetworkTimeUpdateServiceImpl$NetworkTimeUpdateCallback;
+Lcom/android/server/NetworkTimeUpdateServiceImpl$SettingsObserver;
+Lcom/android/server/NetworkTimeUpdateServiceImpl;
Lcom/android/server/NsdService$ClientInfo;
Lcom/android/server/NsdService$DaemonConnection;
Lcom/android/server/NsdService$DaemonConnectionSupplier;
Lcom/android/server/NsdService$NativeCallbackReceiver;
Lcom/android/server/NsdService$NsdSettings$1;
Lcom/android/server/NsdService$NsdSettings;
+Lcom/android/server/NsdService$NsdStateMachine$1;
Lcom/android/server/NsdService$NsdStateMachine$DefaultState;
+Lcom/android/server/NsdService$NsdStateMachine$DisabledState;
Lcom/android/server/NsdService$NsdStateMachine$EnabledState;
Lcom/android/server/NsdService$NsdStateMachine;
Lcom/android/server/NsdService;
@@ -20274,12 +24640,14 @@ Lcom/android/server/PersistentDataBlockService$1;
Lcom/android/server/PersistentDataBlockService$2;
Lcom/android/server/PersistentDataBlockService;
Lcom/android/server/PinnerService$1;
+Lcom/android/server/PinnerService$2;
Lcom/android/server/PinnerService$3;
Lcom/android/server/PinnerService$BinderService;
Lcom/android/server/PinnerService$PinRange;
Lcom/android/server/PinnerService$PinRangeSource;
Lcom/android/server/PinnerService$PinRangeSourceStatic;
Lcom/android/server/PinnerService$PinRangeSourceStream;
+Lcom/android/server/PinnerService$PinnedApp;
Lcom/android/server/PinnerService$PinnedFile;
Lcom/android/server/PinnerService$PinnerHandler;
Lcom/android/server/PinnerService;
@@ -20302,12 +24670,19 @@ Lcom/android/server/ServiceWatcher$2;
Lcom/android/server/ServiceWatcher$BinderRunner;
Lcom/android/server/ServiceWatcher$BlockingBinderRunner;
Lcom/android/server/ServiceWatcher;
+Lcom/android/server/StorageManagerService$13;
+Lcom/android/server/StorageManagerService$1;
+Lcom/android/server/StorageManagerService$2;
+Lcom/android/server/StorageManagerService$3;
Lcom/android/server/StorageManagerService$4;
+Lcom/android/server/StorageManagerService$5;
+Lcom/android/server/StorageManagerService$6;
Lcom/android/server/StorageManagerService$8;
Lcom/android/server/StorageManagerService$9;
Lcom/android/server/StorageManagerService$AppFuseMountScope;
Lcom/android/server/StorageManagerService$Callbacks;
Lcom/android/server/StorageManagerService$Lifecycle;
+Lcom/android/server/StorageManagerService$ObbActionHandler;
Lcom/android/server/StorageManagerService$StorageManagerInternalImpl;
Lcom/android/server/StorageManagerService$StorageManagerServiceHandler;
Lcom/android/server/StorageManagerService;
@@ -20318,6 +24693,7 @@ Lcom/android/server/SystemServiceManager;
Lcom/android/server/SystemUpdateManagerService;
Lcom/android/server/TelephonyRegistry$1;
Lcom/android/server/TelephonyRegistry$2;
+Lcom/android/server/TelephonyRegistry$3;
Lcom/android/server/TelephonyRegistry$Record;
Lcom/android/server/TelephonyRegistry$TelephonyRegistryDeathRecipient;
Lcom/android/server/TelephonyRegistry;
@@ -20327,7 +24703,14 @@ Lcom/android/server/ThreadPriorityBooster$PriorityState;
Lcom/android/server/ThreadPriorityBooster;
Lcom/android/server/UiModeManagerInternal;
Lcom/android/server/UiModeManagerService$1;
+Lcom/android/server/UiModeManagerService$2;
Lcom/android/server/UiModeManagerService$3;
+Lcom/android/server/UiModeManagerService$4;
+Lcom/android/server/UiModeManagerService$5;
+Lcom/android/server/UiModeManagerService$6;
+Lcom/android/server/UiModeManagerService$7;
+Lcom/android/server/UiModeManagerService$8;
+Lcom/android/server/UiModeManagerService$9;
Lcom/android/server/UiModeManagerService$LocalService;
Lcom/android/server/UiModeManagerService$UserSwitchedReceiver;
Lcom/android/server/UiModeManagerService;
@@ -20339,6 +24722,9 @@ Lcom/android/server/VibratorService$2;
Lcom/android/server/VibratorService$3;
Lcom/android/server/VibratorService$4;
Lcom/android/server/VibratorService$5;
+Lcom/android/server/VibratorService$ExternalVibratorService;
+Lcom/android/server/VibratorService$ScaleLevel;
+Lcom/android/server/VibratorService$SettingsObserver;
Lcom/android/server/VibratorService$VibrateThread;
Lcom/android/server/VibratorService$Vibration;
Lcom/android/server/VibratorService$VibrationInfo;
@@ -20348,17 +24734,17 @@ Lcom/android/server/Watchdog$BinderThreadMonitor;
Lcom/android/server/Watchdog$HandlerChecker;
Lcom/android/server/Watchdog$Monitor;
Lcom/android/server/Watchdog$OpenFdMonitor;
+Lcom/android/server/Watchdog$RebootRequestReceiver;
Lcom/android/server/Watchdog;
Lcom/android/server/WiredAccessoryManager$1;
Lcom/android/server/WiredAccessoryManager$WiredAccessoryExtconObserver;
+Lcom/android/server/WiredAccessoryManager$WiredAccessoryObserver$UEventInfo;
Lcom/android/server/WiredAccessoryManager$WiredAccessoryObserver;
Lcom/android/server/WiredAccessoryManager;
Lcom/android/server/ZramWriteback$1;
Lcom/android/server/ZramWriteback;
Lcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$5vwr6qV-eqdCr73CeDmVnsJlZHM;
Lcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$Gu-W_dQ2mWyy8l4tm19TzFxGbeM;
-Lcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$K4sS36agT2_B03tVUTy8mldugxY;
-Lcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$_rvRsbhZRBJitXrpMqI0NptLUa8;
Lcom/android/server/accessibility/-$$Lambda$AccessibilityManagerService$heq1MRdQjg8BGWFbpV3PEpnDVcg;
Lcom/android/server/accessibility/-$$Lambda$AccessibilityServiceConnection$ASP9bmSvpeD7ZE_uJ8sm-9hCwiU;
Lcom/android/server/accessibility/-$$Lambda$X8i00nfnUx_qUoIgZixkfu6ddSY;
@@ -20373,14 +24759,19 @@ Lcom/android/server/accessibility/AccessibilityManagerService$Client;
Lcom/android/server/accessibility/AccessibilityManagerService$InteractionBridge$1;
Lcom/android/server/accessibility/AccessibilityManagerService$InteractionBridge;
Lcom/android/server/accessibility/AccessibilityManagerService$Lifecycle;
+Lcom/android/server/accessibility/AccessibilityManagerService$MainHandler;
Lcom/android/server/accessibility/AccessibilityManagerService;
Lcom/android/server/accessibility/AccessibilitySecurityPolicy$AccessibilityUserManager;
Lcom/android/server/accessibility/AccessibilitySecurityPolicy;
Lcom/android/server/accessibility/AccessibilityServiceConnection;
Lcom/android/server/accessibility/AccessibilityUserState$ServiceInfoChangeListener;
+Lcom/android/server/accessibility/AccessibilityUserState;
Lcom/android/server/accessibility/AccessibilityWindowManager$AccessibilityEventSender;
+Lcom/android/server/accessibility/AccessibilityWindowManager;
Lcom/android/server/accessibility/FingerprintGestureDispatcher$FingerprintGestureClient;
Lcom/android/server/accessibility/KeyEventDispatcher$KeyEventFilter;
+Lcom/android/server/accessibility/SystemActionPerformer;
+Lcom/android/server/accessibility/UiAutomationManager$1;
Lcom/android/server/accessibility/UiAutomationManager;
Lcom/android/server/accounts/-$$Lambda$AccountManagerService$c6GExIY3Vh2fORdBziuAPJbExac;
Lcom/android/server/accounts/-$$Lambda$AccountManagerService$nCdu9dc3c8qBwJIwS0ZQk2waXfY;
@@ -20392,6 +24783,7 @@ Lcom/android/server/accounts/AccountManagerService$1$1;
Lcom/android/server/accounts/AccountManagerService$18;
Lcom/android/server/accounts/AccountManagerService$1;
Lcom/android/server/accounts/AccountManagerService$1LogRecordTask;
+Lcom/android/server/accounts/AccountManagerService$2;
Lcom/android/server/accounts/AccountManagerService$3;
Lcom/android/server/accounts/AccountManagerService$4;
Lcom/android/server/accounts/AccountManagerService$8;
@@ -20399,6 +24791,7 @@ Lcom/android/server/accounts/AccountManagerService$AccountManagerInternalImpl;
Lcom/android/server/accounts/AccountManagerService$GetAccountsByTypeAndFeatureSession;
Lcom/android/server/accounts/AccountManagerService$Injector;
Lcom/android/server/accounts/AccountManagerService$Lifecycle;
+Lcom/android/server/accounts/AccountManagerService$MessageHandler;
Lcom/android/server/accounts/AccountManagerService$RemoveAccountSession;
Lcom/android/server/accounts/AccountManagerService$Session;
Lcom/android/server/accounts/AccountManagerService$TestFeaturesSession;
@@ -20412,15 +24805,20 @@ Lcom/android/server/accounts/TokenCache$Key;
Lcom/android/server/accounts/TokenCache$TokenLruCache$Evictor;
Lcom/android/server/accounts/TokenCache$TokenLruCache;
Lcom/android/server/accounts/TokenCache;
+Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler$1;
Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingHandler;
Lcom/android/server/adb/AdbDebuggingManager$AdbDebuggingThread;
Lcom/android/server/adb/AdbDebuggingManager$AdbKeyStore;
Lcom/android/server/adb/AdbDebuggingManager;
Lcom/android/server/adb/AdbService$AdbHandler;
Lcom/android/server/adb/AdbService$AdbManagerInternalImpl;
+Lcom/android/server/adb/AdbService$AdbSettingsObserver;
Lcom/android/server/adb/AdbService$Lifecycle;
Lcom/android/server/adb/AdbService;
+Lcom/android/server/am/-$$Lambda$ActivityManagerService$2afaFERxNQEnSdevJxY5plp1fS4;
Lcom/android/server/am/-$$Lambda$ActivityManagerService$Z3G4KWA2tlTOhqhFtAvVby1SjyQ;
+Lcom/android/server/am/-$$Lambda$ActivityManagerService$dLQ66dH4nIti4hweaVJTGHj2tMU;
+Lcom/android/server/am/-$$Lambda$ActivityManagerService$w5jCshLsk1jfv4UDTmEfq_HU0OQ;
Lcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$ML8sXrbYk0MflPvsY2cfCYlcU0w;
Lcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$PpNEY15dspg9oLlkg1OsyjrPTqw;
Lcom/android/server/am/-$$Lambda$BatteryExternalStatsWorker$ddVY5lmqswnSjXppAxPTOHbuzzQ;
@@ -20437,6 +24835,7 @@ Lcom/android/server/am/-$$Lambda$ProcessList$vtq7LF5jIHO4t5NE03c8g7BT7Jc;
Lcom/android/server/am/-$$Lambda$ProcessRecord$1qn6-pj5yWgiSnKANZpVz3gwd30;
Lcom/android/server/am/-$$Lambda$ProcessRecord$2DImTokd0AWNTECl3WgBxJkOOqs;
Lcom/android/server/am/-$$Lambda$ProcessRecord$Cb3MKja7_iTlaFQrvQTzPvLyoT8;
+Lcom/android/server/am/-$$Lambda$SettingsToPropertiesMapper$oP9A7vTPRZcZgLdy43KKEveF4zQ;
Lcom/android/server/am/-$$Lambda$UserController$Injector$MYTLl7MOQKjyMJknWdxPeBLoPCc;
Lcom/android/server/am/-$$Lambda$UserController$K71HFCIuD0iCwrDTKYnIUDyAeWg;
Lcom/android/server/am/-$$Lambda$UserController$stQk1028ON105v_u-VMykVjcxLk;
@@ -20444,6 +24843,7 @@ Lcom/android/server/am/-$$Lambda$Y_KRxxoOXfy-YceuDG7WHd46Y_I;
Lcom/android/server/am/-$$Lambda$gATL8uvTPRd405IfefK1RL9bNqA;
Lcom/android/server/am/-$$Lambda$yk1Ms9fVlF6PvprMwF2rru-dw4Q;
Lcom/android/server/am/ActiveServices$1;
+Lcom/android/server/am/ActiveServices$ForcedStandbyListener;
Lcom/android/server/am/ActiveServices$ServiceDumper;
Lcom/android/server/am/ActiveServices$ServiceLookupResult;
Lcom/android/server/am/ActiveServices$ServiceMap;
@@ -20455,11 +24855,14 @@ Lcom/android/server/am/ActivityManagerConstants;
Lcom/android/server/am/ActivityManagerService$15;
Lcom/android/server/am/ActivityManagerService$16;
Lcom/android/server/am/ActivityManagerService$1;
+Lcom/android/server/am/ActivityManagerService$20;
Lcom/android/server/am/ActivityManagerService$21;
+Lcom/android/server/am/ActivityManagerService$23;
Lcom/android/server/am/ActivityManagerService$2;
Lcom/android/server/am/ActivityManagerService$3;
Lcom/android/server/am/ActivityManagerService$4;
Lcom/android/server/am/ActivityManagerService$5;
+Lcom/android/server/am/ActivityManagerService$6;
Lcom/android/server/am/ActivityManagerService$7;
Lcom/android/server/am/ActivityManagerService$AppDeathRecipient;
Lcom/android/server/am/ActivityManagerService$CpuBinder$1;
@@ -20501,6 +24904,7 @@ Lcom/android/server/am/AppErrorResult;
Lcom/android/server/am/AppErrors;
Lcom/android/server/am/AssistDataRequester$AssistDataRequesterCallbacks;
Lcom/android/server/am/AssistDataRequester;
+Lcom/android/server/am/BackupRecord;
Lcom/android/server/am/BaseErrorDialog$1;
Lcom/android/server/am/BaseErrorDialog;
Lcom/android/server/am/BatteryExternalStatsWorker$1;
@@ -20510,6 +24914,7 @@ Lcom/android/server/am/BatteryStatsService$1;
Lcom/android/server/am/BatteryStatsService$LocalService;
Lcom/android/server/am/BatteryStatsService$WakeupReasonThread;
Lcom/android/server/am/BatteryStatsService;
+Lcom/android/server/am/BroadcastConstants$SettingsObserver;
Lcom/android/server/am/BroadcastConstants;
Lcom/android/server/am/BroadcastDispatcher$1;
Lcom/android/server/am/BroadcastDispatcher$2;
@@ -20522,6 +24927,9 @@ Lcom/android/server/am/BroadcastQueue$BroadcastHandler;
Lcom/android/server/am/BroadcastQueue;
Lcom/android/server/am/BroadcastRecord;
Lcom/android/server/am/BroadcastStats$1;
+Lcom/android/server/am/BroadcastStats$ActionEntry;
+Lcom/android/server/am/BroadcastStats$PackageEntry;
+Lcom/android/server/am/BroadcastStats$ViolationEntry;
Lcom/android/server/am/BroadcastStats;
Lcom/android/server/am/ConnectionRecord;
Lcom/android/server/am/ContentProviderConnection;
@@ -20532,6 +24940,7 @@ Lcom/android/server/am/HealthStatsBatteryStatsWriter;
Lcom/android/server/am/HostingRecord;
Lcom/android/server/am/InstrumentationReporter;
Lcom/android/server/am/IntentBindRecord;
+Lcom/android/server/am/LmkdConnection$1;
Lcom/android/server/am/LmkdConnection$LmkdConnectionListener;
Lcom/android/server/am/LmkdConnection;
Lcom/android/server/am/LowMemDetector$LowMemThread;
@@ -20572,6 +24981,7 @@ Lcom/android/server/am/ServiceRecord$2;
Lcom/android/server/am/ServiceRecord$3;
Lcom/android/server/am/ServiceRecord$StartItem;
Lcom/android/server/am/ServiceRecord;
+Lcom/android/server/am/SettingsToPropertiesMapper$1;
Lcom/android/server/am/SettingsToPropertiesMapper;
Lcom/android/server/am/UidRecord$ChangeItem;
Lcom/android/server/am/UidRecord;
@@ -20582,8 +24992,10 @@ 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/appbinding/-$$Lambda$AppBindingService$D_3boeCn8eAANOp2ZDk6OC2rNaI;
Lcom/android/server/appbinding/-$$Lambda$xkEFYM78dwFMyAjWJXkB7AxgA2c;
Lcom/android/server/appbinding/AppBindingConstants;
+Lcom/android/server/appbinding/AppBindingService$1;
Lcom/android/server/appbinding/AppBindingService$2;
Lcom/android/server/appbinding/AppBindingService$Injector;
Lcom/android/server/appbinding/AppBindingService$Lifecycle;
@@ -20600,6 +25012,8 @@ Lcom/android/server/appop/-$$Lambda$AppOpsService$gQy7GOuCV6GbjQtdNhNG6xld8I4;
Lcom/android/server/appop/-$$Lambda$HistoricalRegistry$dJrtb4M71TzV6sx9vPEImQG_akU;
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$ActiveCallback;
Lcom/android/server/appop/AppOpsService$AppOpsManagerInternalImpl;
Lcom/android/server/appop/AppOpsService$ClientRestrictionState;
@@ -20612,7 +25026,9 @@ Lcom/android/server/appop/AppOpsService$Op;
Lcom/android/server/appop/AppOpsService$Ops;
Lcom/android/server/appop/AppOpsService$UidState;
Lcom/android/server/appop/AppOpsService;
+Lcom/android/server/appop/AudioRestrictionManager$Restriction;
Lcom/android/server/appop/AudioRestrictionManager;
+Lcom/android/server/appop/HistoricalRegistry$1;
Lcom/android/server/appop/HistoricalRegistry$Persistence;
Lcom/android/server/appop/HistoricalRegistry;
Lcom/android/server/appprediction/-$$Lambda$AppPredictionManagerService$PredictionManagerServiceStub$40EK4qcr-rG55ENTthOaXAXWDA4;
@@ -20642,7 +25058,14 @@ Lcom/android/server/appwidget/AppWidgetServiceImpl$ProviderId;
Lcom/android/server/appwidget/AppWidgetServiceImpl$SaveStateRunnable;
Lcom/android/server/appwidget/AppWidgetServiceImpl$SecurityPolicy;
Lcom/android/server/appwidget/AppWidgetServiceImpl;
-Lcom/android/server/audio/-$$Lambda$AudioDeviceInventory$MfLl81BWvF9OIWh52LJfesOjVdw;
+Lcom/android/server/attention/AttentionManagerService$AttentionHandler;
+Lcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand$TestableAttentionCallbackInternal;
+Lcom/android/server/attention/AttentionManagerService$AttentionManagerServiceShellCommand;
+Lcom/android/server/attention/AttentionManagerService$BinderService;
+Lcom/android/server/attention/AttentionManagerService$LocalService;
+Lcom/android/server/attention/AttentionManagerService$ScreenStateReceiver;
+Lcom/android/server/attention/AttentionManagerService;
+Lcom/android/server/audio/-$$Lambda$UV1wDVoVlbcxpr8zevj_aMFtUGw;
Lcom/android/server/audio/AudioDeviceBroker$BrokerHandler;
Lcom/android/server/audio/AudioDeviceBroker$BrokerThread;
Lcom/android/server/audio/AudioDeviceBroker;
@@ -20651,6 +25074,9 @@ Lcom/android/server/audio/AudioEventLogger$Event;
Lcom/android/server/audio/AudioEventLogger$StringEvent;
Lcom/android/server/audio/AudioEventLogger;
Lcom/android/server/audio/AudioService$1;
+Lcom/android/server/audio/AudioService$2;
+Lcom/android/server/audio/AudioService$3;
+Lcom/android/server/audio/AudioService$5;
Lcom/android/server/audio/AudioService$AudioHandler;
Lcom/android/server/audio/AudioService$AudioPolicyProxy;
Lcom/android/server/audio/AudioService$AudioServiceBroadcastReceiver;
@@ -20659,7 +25085,10 @@ Lcom/android/server/audio/AudioService$AudioServiceUserRestrictionsListener;
Lcom/android/server/audio/AudioService$AudioSystemThread;
Lcom/android/server/audio/AudioService$ForceControlStreamClient;
Lcom/android/server/audio/AudioService$Lifecycle;
+Lcom/android/server/audio/AudioService$LoadSoundEffectReply;
+Lcom/android/server/audio/AudioService$MyHdmiControlStatusChangeListenerCallback;
Lcom/android/server/audio/AudioService$RmtSbmxFullVolDeathHandler;
+Lcom/android/server/audio/AudioService$RoleObserver;
Lcom/android/server/audio/AudioService$SetModeDeathHandler;
Lcom/android/server/audio/AudioService$SettingsObserver;
Lcom/android/server/audio/AudioService$VolumeController;
@@ -20686,14 +25115,22 @@ Lcom/android/server/audio/PlaybackActivityMonitor$PlayerEvent;
Lcom/android/server/audio/PlaybackActivityMonitor$PlayerOpPlayAudioEvent;
Lcom/android/server/audio/PlaybackActivityMonitor;
Lcom/android/server/audio/PlayerFocusEnforcer;
+Lcom/android/server/audio/RecordingActivityMonitor$RecMonitorClient;
+Lcom/android/server/audio/RecordingActivityMonitor$RecorderDeathHandler;
Lcom/android/server/audio/RecordingActivityMonitor;
Lcom/android/server/audio/RotationHelper$AudioDisplayListener;
Lcom/android/server/audio/RotationHelper;
+Lcom/android/server/audio/SoundEffectsHelper$1;
Lcom/android/server/audio/SoundEffectsHelper$OnEffectsLoadCompleteHandler;
+Lcom/android/server/audio/SoundEffectsHelper$Resource;
Lcom/android/server/audio/SoundEffectsHelper$SfxHandler$1;
Lcom/android/server/audio/SoundEffectsHelper$SfxHandler;
+Lcom/android/server/audio/SoundEffectsHelper$SfxWorker;
+Lcom/android/server/audio/SoundEffectsHelper$SoundPoolLoader;
Lcom/android/server/audio/SoundEffectsHelper;
Lcom/android/server/autofill/-$$Lambda$AutofillManagerService$1$1-WNu3tTkxodB_LsZ7dGIlvrPN0;
+Lcom/android/server/autofill/-$$Lambda$AutofillManagerService$6afarI-dhLaYDLGebVyDMPu2nok;
+Lcom/android/server/autofill/-$$Lambda$AutofillManagerService$AjdnAnVaegTp2pojE30m5yjqZx8;
Lcom/android/server/autofill/-$$Lambda$FieldClassificationStrategy$NQQgQ63vxhPkiwOWrnwRyuYSHTM;
Lcom/android/server/autofill/-$$Lambda$FieldClassificationStrategy$vGIL1YGX_9ksoSV74T7gO4fkEBE;
Lcom/android/server/autofill/-$$Lambda$Helper$nK3g_oXXf8NGajcUf0W5JsQzf3w;
@@ -20761,6 +25198,7 @@ Lcom/android/server/backup/-$$Lambda$UserBackupManagerService$sAYsrY5C5zAl7EgKgw
Lcom/android/server/backup/-$$Lambda$pM_c5tVAGDtxjxLF_ONtACWWq6Q;
Lcom/android/server/backup/BackupAgentTimeoutParameters;
Lcom/android/server/backup/BackupManagerConstants;
+Lcom/android/server/backup/BackupManagerService$1;
Lcom/android/server/backup/BackupManagerService$Lifecycle;
Lcom/android/server/backup/BackupManagerService;
Lcom/android/server/backup/BackupPasswordManager;
@@ -20823,18 +25261,29 @@ Lcom/android/server/backup/utils/DataStreamFileCodec;
Lcom/android/server/backup/utils/FileUtils;
Lcom/android/server/backup/utils/FullBackupUtils;
Lcom/android/server/backup/utils/RandomAccessFileUtils;
+Lcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$5zE_f-JKSpUWsfwvdtw36YktZZ0;
+Lcom/android/server/biometrics/-$$Lambda$BiometricServiceBase$lM-Gght_XjLuQG2iY0xHchO8Xgk;
+Lcom/android/server/biometrics/AuthService$AuthServiceImpl;
+Lcom/android/server/biometrics/AuthService$Injector;
+Lcom/android/server/biometrics/AuthService;
Lcom/android/server/biometrics/AuthenticationClient;
Lcom/android/server/biometrics/BiometricService$1;
Lcom/android/server/biometrics/BiometricService$2;
+Lcom/android/server/biometrics/BiometricService$3;
Lcom/android/server/biometrics/BiometricService$AuthSession;
+Lcom/android/server/biometrics/BiometricService$AuthenticatorWrapper;
Lcom/android/server/biometrics/BiometricService$BiometricServiceWrapper;
Lcom/android/server/biometrics/BiometricService$EnabledOnKeyguardCallback;
+Lcom/android/server/biometrics/BiometricService$Injector;
Lcom/android/server/biometrics/BiometricService$SettingObserver;
Lcom/android/server/biometrics/BiometricService;
+Lcom/android/server/biometrics/BiometricServiceBase$1;
+Lcom/android/server/biometrics/BiometricServiceBase$2;
Lcom/android/server/biometrics/BiometricServiceBase$AuthenticationClientImpl;
Lcom/android/server/biometrics/BiometricServiceBase$BiometricServiceListener;
Lcom/android/server/biometrics/BiometricServiceBase$BiometricTaskStackListener;
Lcom/android/server/biometrics/BiometricServiceBase$DaemonWrapper;
+Lcom/android/server/biometrics/BiometricServiceBase$H;
Lcom/android/server/biometrics/BiometricServiceBase$InternalEnumerateClient;
Lcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor$1;
Lcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor$2;
@@ -20842,11 +25291,27 @@ Lcom/android/server/biometrics/BiometricServiceBase$LockoutResetMonitor;
Lcom/android/server/biometrics/BiometricServiceBase$ResetClientStateRunnable;
Lcom/android/server/biometrics/BiometricServiceBase$ServiceListener;
Lcom/android/server/biometrics/BiometricServiceBase;
+Lcom/android/server/biometrics/BiometricStrengthController;
+Lcom/android/server/biometrics/BiometricUserState$1;
Lcom/android/server/biometrics/BiometricUserState;
Lcom/android/server/biometrics/BiometricUtils;
Lcom/android/server/biometrics/ClientMonitor;
+Lcom/android/server/biometrics/Constants;
Lcom/android/server/biometrics/EnumerateClient;
Lcom/android/server/biometrics/LoggableMonitor;
+Lcom/android/server/biometrics/SensorConfig;
+Lcom/android/server/biometrics/face/-$$Lambda$FaceService$1$OiHHyHFXrIcrZYUfSsf-E2as1qE;
+Lcom/android/server/biometrics/face/-$$Lambda$FaceService$A0dfsVDvPu3BDJsON7widXUriSs;
+Lcom/android/server/biometrics/face/-$$Lambda$FaceService$rveb67MoYJ0egfY6LL-l05KvUz8;
+Lcom/android/server/biometrics/face/FaceAuthenticator;
+Lcom/android/server/biometrics/face/FaceConstants;
+Lcom/android/server/biometrics/face/FaceService$1;
+Lcom/android/server/biometrics/face/FaceService$2;
+Lcom/android/server/biometrics/face/FaceService$FaceServiceWrapper;
+Lcom/android/server/biometrics/face/FaceService$UsageStats;
+Lcom/android/server/biometrics/face/FaceService;
+Lcom/android/server/biometrics/face/FaceUserState;
+Lcom/android/server/biometrics/face/FaceUtils;
Lcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$3I9ge5BoesXZUovbayCOCR754fc;
Lcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$7nMWCt41OE3k8ihjPNPqB0O8POU;
Lcom/android/server/biometrics/fingerprint/-$$Lambda$FingerprintService$1$N1Y2Zwqq-x5yDKQsDTj2KQ5q7g4;
@@ -20866,6 +25331,7 @@ 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/camera/CameraServiceProxy$1;
Lcom/android/server/camera/CameraServiceProxy$2;
Lcom/android/server/camera/CameraServiceProxy$CameraUsageEvent;
Lcom/android/server/camera/CameraServiceProxy;
@@ -20882,6 +25348,7 @@ Lcom/android/server/companion/CompanionDeviceManagerService$1;
Lcom/android/server/companion/CompanionDeviceManagerService$Association;
Lcom/android/server/companion/CompanionDeviceManagerService$CompanionDeviceManagerImpl;
Lcom/android/server/companion/CompanionDeviceManagerService;
+Lcom/android/server/compat/CompatChange$ChangeListener;
Lcom/android/server/compat/CompatChange;
Lcom/android/server/compat/CompatConfig;
Lcom/android/server/compat/PlatformCompat;
@@ -20894,6 +25361,7 @@ Lcom/android/server/connectivity/-$$Lambda$IpConnectivityMetrics$B0oR30xfeM300kI
Lcom/android/server/connectivity/-$$Lambda$MultipathPolicyTracker$2$dvyDLfu9d6g2XoEdL3QMHx7ut6k;
Lcom/android/server/connectivity/-$$Lambda$Nat464Xlat$40jKHQd7R0zgcegyEyc9zPHKXVA;
Lcom/android/server/connectivity/-$$Lambda$Nat464Xlat$PACHOP9HoYvr_jzHtIwFDy31Ud4;
+Lcom/android/server/connectivity/DataConnectionStats$PhoneStateListenerImpl;
Lcom/android/server/connectivity/DataConnectionStats;
Lcom/android/server/connectivity/DefaultNetworkMetrics;
Lcom/android/server/connectivity/DnsManager$PrivateDnsValidationStatuses$ValidationStatus;
@@ -20913,6 +25381,7 @@ Lcom/android/server/connectivity/MultipathPolicyTracker$2;
Lcom/android/server/connectivity/MultipathPolicyTracker$ConfigChangeReceiver;
Lcom/android/server/connectivity/MultipathPolicyTracker$Dependencies;
Lcom/android/server/connectivity/MultipathPolicyTracker$MultipathTracker;
+Lcom/android/server/connectivity/MultipathPolicyTracker$SettingsObserver;
Lcom/android/server/connectivity/MultipathPolicyTracker;
Lcom/android/server/connectivity/Nat464Xlat$State;
Lcom/android/server/connectivity/Nat464Xlat;
@@ -20928,6 +25397,8 @@ Lcom/android/server/connectivity/NetworkDiagnostics$SimpleSocketCheck;
Lcom/android/server/connectivity/NetworkDiagnostics;
Lcom/android/server/connectivity/NetworkNotificationManager$NotificationType;
Lcom/android/server/connectivity/NetworkNotificationManager;
+Lcom/android/server/connectivity/PacManager$1;
+Lcom/android/server/connectivity/PacManager$PacRefreshIntentReceiver;
Lcom/android/server/connectivity/PacManager;
Lcom/android/server/connectivity/PermissionMonitor$PackageListObserver;
Lcom/android/server/connectivity/PermissionMonitor;
@@ -20937,6 +25408,7 @@ Lcom/android/server/connectivity/Vpn$2;
Lcom/android/server/connectivity/Vpn$Connection;
Lcom/android/server/connectivity/Vpn$SystemServices;
Lcom/android/server/connectivity/Vpn;
+Lcom/android/server/content/-$$Lambda$ContentService$5-BNVxd6JTWU9ogp3u-0kfiqgbI;
Lcom/android/server/content/-$$Lambda$SyncManager$68MEyNkTh36YmYoFlURJoRa_-cY;
Lcom/android/server/content/-$$Lambda$SyncManager$6y-gkGdDn-rSLmR9G8Pz_n9zy2A;
Lcom/android/server/content/-$$Lambda$SyncManager$9EoLpTk5JrHZn9R-uS0lqCVrpRw;
@@ -20967,8 +25439,10 @@ Lcom/android/server/content/SyncManager$11;
Lcom/android/server/content/SyncManager$13;
Lcom/android/server/content/SyncManager$14;
Lcom/android/server/content/SyncManager$15;
+Lcom/android/server/content/SyncManager$1;
Lcom/android/server/content/SyncManager$2;
Lcom/android/server/content/SyncManager$3;
+Lcom/android/server/content/SyncManager$4;
Lcom/android/server/content/SyncManager$5;
Lcom/android/server/content/SyncManager$6;
Lcom/android/server/content/SyncManager$7;
@@ -20987,6 +25461,7 @@ Lcom/android/server/content/SyncManager;
Lcom/android/server/content/SyncManagerConstants;
Lcom/android/server/content/SyncOperation;
Lcom/android/server/content/SyncStorageEngine$AccountAuthorityValidator;
+Lcom/android/server/content/SyncStorageEngine$AccountInfo;
Lcom/android/server/content/SyncStorageEngine$AuthorityInfo;
Lcom/android/server/content/SyncStorageEngine$DayStats;
Lcom/android/server/content/SyncStorageEngine$EndPoint;
@@ -20995,6 +25470,7 @@ Lcom/android/server/content/SyncStorageEngine$OnAuthorityRemovedListener;
Lcom/android/server/content/SyncStorageEngine$OnSyncRequestListener;
Lcom/android/server/content/SyncStorageEngine$PeriodicSyncAddedListener;
Lcom/android/server/content/SyncStorageEngine;
+Lcom/android/server/contentcapture/-$$Lambda$ContentCaptureManagerService$4nadnpI0ImgQseJYN0WTE4IJ4s4;
Lcom/android/server/contentcapture/-$$Lambda$RemoteContentCaptureService$yRaGuMutdbjMq9h32e3TC2_1a_A;
Lcom/android/server/contentcapture/ContentCaptureManagerInternal;
Lcom/android/server/contentcapture/ContentCaptureManagerService$ContentCaptureManagerServiceStub;
@@ -21010,9 +25486,11 @@ Lcom/android/server/contentsuggestions/-$$Lambda$RemoteContentSuggestionsService
Lcom/android/server/contentsuggestions/-$$Lambda$RemoteContentSuggestionsService$VKh1DoMPNSPjPfnVGdsInmxuqzc;
Lcom/android/server/contentsuggestions/-$$Lambda$RemoteContentSuggestionsService$eoGnQ2MDLLnW1UBX6wxNE1VBLAk;
Lcom/android/server/contentsuggestions/-$$Lambda$RemoteContentSuggestionsService$yUTbcaYlZCYTmagCkNJ3i2VCkY4;
+Lcom/android/server/contentsuggestions/ContentSuggestionsManagerService$ContentSuggestionsManagerStub;
Lcom/android/server/contentsuggestions/ContentSuggestionsManagerService;
Lcom/android/server/contentsuggestions/ContentSuggestionsPerUserService;
Lcom/android/server/contentsuggestions/RemoteContentSuggestionsService;
+Lcom/android/server/coverage/CoverageService;
Lcom/android/server/devicepolicy/-$$Lambda$DevicePolicyManagerService$_Nw-YGl5ncBg-LJs8W81WNW6xoU;
Lcom/android/server/devicepolicy/-$$Lambda$NetworkLoggingHandler$VKC_fB9Ws13yQKJ8zNkiF3Wp0Jk;
Lcom/android/server/devicepolicy/BaseIDevicePolicyManager;
@@ -21023,6 +25501,9 @@ Lcom/android/server/devicepolicy/DeviceAdminServiceController$DevicePolicyServic
Lcom/android/server/devicepolicy/DeviceAdminServiceController;
Lcom/android/server/devicepolicy/DevicePolicyCacheImpl;
Lcom/android/server/devicepolicy/DevicePolicyConstants;
+Lcom/android/server/devicepolicy/DevicePolicyManagerService$1;
+Lcom/android/server/devicepolicy/DevicePolicyManagerService$2;
+Lcom/android/server/devicepolicy/DevicePolicyManagerService$3;
Lcom/android/server/devicepolicy/DevicePolicyManagerService$4$1;
Lcom/android/server/devicepolicy/DevicePolicyManagerService$4;
Lcom/android/server/devicepolicy/DevicePolicyManagerService$6;
@@ -21036,6 +25517,7 @@ Lcom/android/server/devicepolicy/DevicePolicyManagerService$LocalService;
Lcom/android/server/devicepolicy/DevicePolicyManagerService$RestrictionsListener;
Lcom/android/server/devicepolicy/DevicePolicyManagerService$SetupContentObserver;
Lcom/android/server/devicepolicy/DevicePolicyManagerService;
+Lcom/android/server/devicepolicy/DeviceStateCacheImpl;
Lcom/android/server/devicepolicy/NetworkLogger$1;
Lcom/android/server/devicepolicy/NetworkLogger;
Lcom/android/server/devicepolicy/NetworkLoggingHandler$1;
@@ -21066,6 +25548,7 @@ Lcom/android/server/display/AutomaticBrightnessController$2;
Lcom/android/server/display/AutomaticBrightnessController$AmbientLightRingBuffer;
Lcom/android/server/display/AutomaticBrightnessController$AutomaticBrightnessHandler;
Lcom/android/server/display/AutomaticBrightnessController$Callbacks;
+Lcom/android/server/display/AutomaticBrightnessController$Injector;
Lcom/android/server/display/AutomaticBrightnessController$TaskStackListenerImpl;
Lcom/android/server/display/AutomaticBrightnessController;
Lcom/android/server/display/BrightnessIdleJob;
@@ -21073,8 +25556,10 @@ Lcom/android/server/display/BrightnessMappingStrategy$PhysicalMappingStrategy;
Lcom/android/server/display/BrightnessMappingStrategy;
Lcom/android/server/display/BrightnessTracker$DisplayListener;
Lcom/android/server/display/BrightnessTracker$Injector;
+Lcom/android/server/display/BrightnessTracker$LightData;
Lcom/android/server/display/BrightnessTracker$Receiver;
Lcom/android/server/display/BrightnessTracker$SensorListener;
+Lcom/android/server/display/BrightnessTracker$SettingsObserver;
Lcom/android/server/display/BrightnessTracker$TrackerHandler;
Lcom/android/server/display/BrightnessTracker;
Lcom/android/server/display/ColorFade$NaturalSurfaceLayout;
@@ -21100,10 +25585,12 @@ Lcom/android/server/display/DisplayModeDirector$AppRequestObserver;
Lcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener$1;
Lcom/android/server/display/DisplayModeDirector$BrightnessObserver$LightSensorEventListener;
Lcom/android/server/display/DisplayModeDirector$BrightnessObserver;
+Lcom/android/server/display/DisplayModeDirector$DesiredDisplayConfigSpecs;
Lcom/android/server/display/DisplayModeDirector$DeviceConfigDisplaySettings;
Lcom/android/server/display/DisplayModeDirector$DisplayModeDirectorHandler;
Lcom/android/server/display/DisplayModeDirector$DisplayModeListener;
Lcom/android/server/display/DisplayModeDirector$DisplayObserver;
+Lcom/android/server/display/DisplayModeDirector$RefreshRateRange;
Lcom/android/server/display/DisplayModeDirector$SettingsObserver;
Lcom/android/server/display/DisplayModeDirector$Vote;
Lcom/android/server/display/DisplayModeDirector;
@@ -21134,6 +25621,7 @@ Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice;
Lcom/android/server/display/LocalDisplayAdapter$PhysicalDisplayEventReceiver;
Lcom/android/server/display/LocalDisplayAdapter;
Lcom/android/server/display/LogicalDisplay;
+Lcom/android/server/display/OverlayDisplayAdapter$1$1;
Lcom/android/server/display/OverlayDisplayAdapter$1;
Lcom/android/server/display/OverlayDisplayAdapter;
Lcom/android/server/display/PersistentDataStore$BrightnessConfigurations;
@@ -21169,15 +25657,29 @@ Lcom/android/server/display/color/DisplayTransformManager;
Lcom/android/server/display/color/DisplayWhiteBalanceTintController;
Lcom/android/server/display/color/GlobalSaturationTintController;
Lcom/android/server/display/color/TintController;
+Lcom/android/server/display/utils/AmbientFilter$WeightedMovingAverageAmbientFilter;
+Lcom/android/server/display/utils/AmbientFilter;
+Lcom/android/server/display/utils/AmbientFilterFactory;
+Lcom/android/server/display/utils/History;
+Lcom/android/server/display/utils/Plog$SystemPlog;
Lcom/android/server/display/utils/Plog;
+Lcom/android/server/display/utils/RollingBuffer;
+Lcom/android/server/display/whitebalance/AmbientSensor$1;
+Lcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor$Callbacks;
+Lcom/android/server/display/whitebalance/AmbientSensor$AmbientBrightnessSensor;
+Lcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor$Callbacks;
Lcom/android/server/display/whitebalance/AmbientSensor$AmbientColorTemperatureSensor;
Lcom/android/server/display/whitebalance/AmbientSensor;
Lcom/android/server/display/whitebalance/DisplayWhiteBalanceController$Callbacks;
+Lcom/android/server/display/whitebalance/DisplayWhiteBalanceController;
Lcom/android/server/display/whitebalance/DisplayWhiteBalanceFactory;
+Lcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings$DisplayWhiteBalanceSettingsHandler;
Lcom/android/server/display/whitebalance/DisplayWhiteBalanceSettings;
+Lcom/android/server/display/whitebalance/DisplayWhiteBalanceThrottler;
Lcom/android/server/dreams/-$$Lambda$DreamManagerService$f7cEVKQvPKMm_Ir9dq0e6PSOkX8;
Lcom/android/server/dreams/-$$Lambda$gXC4nM2f5GMCBX0ED45DCQQjqv0;
Lcom/android/server/dreams/DreamController$1;
+Lcom/android/server/dreams/DreamController$2;
Lcom/android/server/dreams/DreamController$3;
Lcom/android/server/dreams/DreamController$DreamRecord$1;
Lcom/android/server/dreams/DreamController$DreamRecord$2;
@@ -21190,7 +25692,10 @@ Lcom/android/server/dreams/DreamManagerService$1;
Lcom/android/server/dreams/DreamManagerService$2;
Lcom/android/server/dreams/DreamManagerService$3;
Lcom/android/server/dreams/DreamManagerService$4;
+Lcom/android/server/dreams/DreamManagerService$5;
+Lcom/android/server/dreams/DreamManagerService$6;
Lcom/android/server/dreams/DreamManagerService$BinderService;
+Lcom/android/server/dreams/DreamManagerService$DreamHandler;
Lcom/android/server/dreams/DreamManagerService$LocalService;
Lcom/android/server/dreams/DreamManagerService;
Lcom/android/server/emergency/EmergencyAffordanceService$1;
@@ -21245,9 +25750,11 @@ Lcom/android/server/hdmi/HdmiCecController;
Lcom/android/server/incident/IncidentCompanionService$BinderService;
Lcom/android/server/incident/IncidentCompanionService;
Lcom/android/server/incident/PendingReports;
+Lcom/android/server/incident/RequestQueue$1;
Lcom/android/server/incident/RequestQueue;
Lcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$1$TLhe3_2yHs5UB69Y7lf2s7OxJCo;
Lcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$_fKw-VUP0pSfcMMlgRqoT4OPhxw;
+Lcom/android/server/infra/-$$Lambda$AbstractMasterSystemService$su3lJpEVIbL-C7doP4eboTpqjxU;
Lcom/android/server/infra/AbstractMasterSystemService$1;
Lcom/android/server/infra/AbstractMasterSystemService$SettingsObserver;
Lcom/android/server/infra/AbstractMasterSystemService$Visitor;
@@ -21255,10 +25762,14 @@ Lcom/android/server/infra/AbstractMasterSystemService;
Lcom/android/server/infra/AbstractPerUserSystemService;
Lcom/android/server/infra/FrameworkResourcesServiceNameResolver;
Lcom/android/server/infra/SecureSettingsServiceNameResolver;
+Lcom/android/server/infra/ServiceNameResolver$NameResolverListener;
Lcom/android/server/infra/ServiceNameResolver;
+Lcom/android/server/input/InputManagerService$10;
+Lcom/android/server/input/InputManagerService$11;
Lcom/android/server/input/InputManagerService$1;
Lcom/android/server/input/InputManagerService$2;
Lcom/android/server/input/InputManagerService$5;
+Lcom/android/server/input/InputManagerService$9;
Lcom/android/server/input/InputManagerService$InputDevicesChangedListenerRecord;
Lcom/android/server/input/InputManagerService$InputManagerHandler;
Lcom/android/server/input/InputManagerService$KeyboardLayoutVisitor;
@@ -21266,14 +25777,19 @@ Lcom/android/server/input/InputManagerService$LocalService;
Lcom/android/server/input/InputManagerService$WindowManagerCallbacks;
Lcom/android/server/input/InputManagerService$WiredAccessoryCallbacks;
Lcom/android/server/input/InputManagerService;
+Lcom/android/server/input/PersistentDataStore$InputDeviceState;
Lcom/android/server/input/PersistentDataStore;
+Lcom/android/server/inputmethod/-$$Lambda$InputMethodManagerService$oxpSIwENeEjKtHbxqUXuaXD0Gn8;
Lcom/android/server/inputmethod/AdditionalSubtypeUtils;
Lcom/android/server/inputmethod/InputMethodManagerInternal$1;
Lcom/android/server/inputmethod/InputMethodManagerInternal;
Lcom/android/server/inputmethod/InputMethodManagerService$1;
+Lcom/android/server/inputmethod/InputMethodManagerService$2;
Lcom/android/server/inputmethod/InputMethodManagerService$ClientDeathRecipient;
Lcom/android/server/inputmethod/InputMethodManagerService$ClientState;
Lcom/android/server/inputmethod/InputMethodManagerService$DebugFlag;
+Lcom/android/server/inputmethod/InputMethodManagerService$HardKeyboardListener;
+Lcom/android/server/inputmethod/InputMethodManagerService$ImeDisplayValidator;
Lcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForAllUsers;
Lcom/android/server/inputmethod/InputMethodManagerService$ImmsBroadcastReceiverForSystemUser;
Lcom/android/server/inputmethod/InputMethodManagerService$InputMethodPrivilegedOperationsImpl;
@@ -21292,12 +25808,17 @@ Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$DynamicRot
Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$ImeSubtypeListItem;
Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$InputMethodAndSubtypeList;
Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController$StaticRotationList;
+Lcom/android/server/inputmethod/InputMethodSubtypeSwitchingController;
+Lcom/android/server/inputmethod/InputMethodSystemProperty;
Lcom/android/server/inputmethod/InputMethodUtils$1;
Lcom/android/server/inputmethod/InputMethodUtils$InputMethodListBuilder;
Lcom/android/server/inputmethod/InputMethodUtils$InputMethodSettings;
Lcom/android/server/inputmethod/InputMethodUtils;
Lcom/android/server/inputmethod/LocaleUtils$LocaleExtractor;
Lcom/android/server/inputmethod/LocaleUtils;
+Lcom/android/server/integrity/AppIntegrityManagerService;
+Lcom/android/server/integrity/AppIntegrityManagerServiceImpl$1;
+Lcom/android/server/integrity/AppIntegrityManagerServiceImpl;
Lcom/android/server/lights/Light;
Lcom/android/server/lights/LightsManager;
Lcom/android/server/lights/LightsService$1;
@@ -21314,6 +25835,7 @@ Lcom/android/server/location/-$$Lambda$ContextHubClientManager$f15OSYbsSONpkXn7G
Lcom/android/server/location/-$$Lambda$ContextHubClientManager$gN_vRogwyzr9qBjrQpKwwHzrFAo;
Lcom/android/server/location/-$$Lambda$ContextHubService$HPGvKluemttyVfAcSog-eXiJyHE;
Lcom/android/server/location/-$$Lambda$ContextHubService$yrt4Ybb62ufyqsQQMJoTJ2JMw_4;
+Lcom/android/server/location/-$$Lambda$ContextHubTransactionManager$sHbjr4TaLEATkCX_yhD2L7ebuxE;
Lcom/android/server/location/-$$Lambda$GeocoderProxy$jfLn3HL2BzwsKdoI6ZZeFfEe10k;
Lcom/android/server/location/-$$Lambda$GeofenceProxy$nfSKchjbT2ANT9GbYwyAcTjzBwQ;
Lcom/android/server/location/-$$Lambda$GnssConfiguration$1$384RrX20Mx6OJsRiqsQcSxYdcZc;
@@ -21324,6 +25846,10 @@ Lcom/android/server/location/-$$Lambda$GnssConfiguration$1$aaV8BigB_1Oil1H82EHUb
Lcom/android/server/location/-$$Lambda$GnssConfiguration$1$rRu0NBMB8DgPt3DY5__6u_WNl7A;
Lcom/android/server/location/-$$Lambda$GnssConfiguration$1$sKzdHBM7V7DxdhcWx1u8hipJYFo;
Lcom/android/server/location/-$$Lambda$GnssLocationProvider$Q6M8z_ZBiD7BNs3kvNmVrqoHSng;
+Lcom/android/server/location/-$$Lambda$GnssLocationProvider$_xEBoJSNGaiPvO5kj-sfJB7tZYk;
+Lcom/android/server/location/-$$Lambda$GnssLocationProvider$cSSwMZHkxTRwFeOp8gWaG_qGZ5A;
+Lcom/android/server/location/-$$Lambda$GnssLocationProvider$ecDMZdWsEh2URVlhxaEdh1Ifjc8;
+Lcom/android/server/location/-$$Lambda$GnssLocationProvider$jmXMIeP-Oz1yyVRIDOicfl2ucfI;
Lcom/android/server/location/-$$Lambda$GnssMeasurementsProvider$Qlkb-fzzYggD17FlZmrylRJr2vE;
Lcom/android/server/location/-$$Lambda$GnssNetworkConnectivityHandler$YEGTN3glQ7Hr1FK-xXGbC4KcmJY;
Lcom/android/server/location/-$$Lambda$GnssNetworkConnectivityHandler$aTyNcuGLHmJGtXKl9qoZpMmhfBY;
@@ -21331,7 +25857,14 @@ Lcom/android/server/location/-$$Lambda$GnssNetworkConnectivityHandler$axxNnxmo3K
Lcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$6s2HBSMgP5pXrugfCvtIf9QHndI;
Lcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$AtHI8E6PAjonHH1N0ZGabW0VF6c;
Lcom/android/server/location/-$$Lambda$GnssStatusListenerHelper$H9Tg_OtCE9BSJiAQYs_ITHFpiHU;
+Lcom/android/server/location/-$$Lambda$GnssVisibilityControl$FLGfeDaxF8J3CE9m-TcOXh5j6ow;
+Lcom/android/server/location/-$$Lambda$GnssVisibilityControl$WNe_V-oiVnZtOTinPJBWWgUSctQ;
+Lcom/android/server/location/-$$Lambda$GnssVisibilityControl$YLPk0FuuEUrv7lfRNYvhNb6uKic;
+Lcom/android/server/location/-$$Lambda$GnssVisibilityControl$cq648s0kLZajRjefd-RR_iUZoiQ;
+Lcom/android/server/location/-$$Lambda$GnssVisibilityControl$ezKd0QctWKgyrEvPFQUXWNBxlNg;
Lcom/android/server/location/-$$Lambda$LocationProviderProxy$2$QT3uzVX4fLIc1b7F_cP9P1hzluA;
+Lcom/android/server/location/-$$Lambda$LocationSettingsStore$FSM6khNR8gXmFeTsAWvdXgk6aYY;
+Lcom/android/server/location/-$$Lambda$LocationSettingsStore$k_IS3lfsliNZ8moQnq2NpYztkWE;
Lcom/android/server/location/-$$Lambda$NtpTimeHelper$xPxgficKWFyuwUj60WMuiGEEjdg;
Lcom/android/server/location/-$$Lambda$NtpTimeHelper$xWqlqJuq4jBJ5-xhFLCwEKGVB0k;
Lcom/android/server/location/-$$Lambda$RemoteListenerHelper$0Rlnad83RE1JdiVK0ULOLm530JM;
@@ -21339,6 +25872,7 @@ Lcom/android/server/location/AbstractLocationProvider$LocationProviderManager;
Lcom/android/server/location/AbstractLocationProvider;
Lcom/android/server/location/ActivityRecognitionProxy$1;
Lcom/android/server/location/ActivityRecognitionProxy;
+Lcom/android/server/location/CallerIdentity;
Lcom/android/server/location/ComprehensiveCountryDetector$1;
Lcom/android/server/location/ComprehensiveCountryDetector$2;
Lcom/android/server/location/ComprehensiveCountryDetector$4;
@@ -21346,6 +25880,8 @@ Lcom/android/server/location/ComprehensiveCountryDetector;
Lcom/android/server/location/ContextHubClientBroker$CallbackConsumer;
Lcom/android/server/location/ContextHubClientBroker$PendingIntentRequest;
Lcom/android/server/location/ContextHubClientBroker;
+Lcom/android/server/location/ContextHubClientManager$ConcurrentLinkedEvictingDeque;
+Lcom/android/server/location/ContextHubClientManager$RegistrationRecord;
Lcom/android/server/location/ContextHubClientManager;
Lcom/android/server/location/ContextHubService$1;
Lcom/android/server/location/ContextHubService$2;
@@ -21362,12 +25898,14 @@ Lcom/android/server/location/ContextHubTransactionManager;
Lcom/android/server/location/CountryDetectorBase;
Lcom/android/server/location/ExponentialBackOff;
Lcom/android/server/location/GeocoderProxy;
+Lcom/android/server/location/GeofenceManager$GeofenceHandler;
Lcom/android/server/location/GeofenceManager;
Lcom/android/server/location/GeofenceProxy$1;
Lcom/android/server/location/GeofenceProxy$GeofenceProxyServiceConnection;
Lcom/android/server/location/GeofenceProxy;
Lcom/android/server/location/GnssBatchingProvider$GnssBatchingProviderNative;
Lcom/android/server/location/GnssBatchingProvider;
+Lcom/android/server/location/GnssCapabilitiesProvider;
Lcom/android/server/location/GnssConfiguration$1;
Lcom/android/server/location/GnssConfiguration$HalInterfaceVersion;
Lcom/android/server/location/GnssConfiguration$SetCarrierProperty;
@@ -21375,8 +25913,17 @@ Lcom/android/server/location/GnssConfiguration;
Lcom/android/server/location/GnssGeofenceProvider$GnssGeofenceProviderNative;
Lcom/android/server/location/GnssGeofenceProvider;
Lcom/android/server/location/GnssLocationProvider$1;
+Lcom/android/server/location/GnssLocationProvider$2;
Lcom/android/server/location/GnssLocationProvider$3;
Lcom/android/server/location/GnssLocationProvider$4;
+Lcom/android/server/location/GnssLocationProvider$5;
+Lcom/android/server/location/GnssLocationProvider$6;
+Lcom/android/server/location/GnssLocationProvider$7;
+Lcom/android/server/location/GnssLocationProvider$8;
+Lcom/android/server/location/GnssLocationProvider$FusedLocationListener;
+Lcom/android/server/location/GnssLocationProvider$GnssMetricsProvider;
+Lcom/android/server/location/GnssLocationProvider$GnssSystemInfoProvider;
+Lcom/android/server/location/GnssLocationProvider$GpsRequest;
Lcom/android/server/location/GnssLocationProvider$LocationChangeListener;
Lcom/android/server/location/GnssLocationProvider$LocationExtras;
Lcom/android/server/location/GnssLocationProvider$NetworkLocationListener;
@@ -21388,6 +25935,7 @@ Lcom/android/server/location/GnssMeasurementsProvider$GnssMeasurementProviderNat
Lcom/android/server/location/GnssMeasurementsProvider$StatusChangedOperation;
Lcom/android/server/location/GnssMeasurementsProvider;
Lcom/android/server/location/GnssNavigationMessageProvider$GnssNavigationMessageProviderNative;
+Lcom/android/server/location/GnssNavigationMessageProvider$StatusChangedOperation;
Lcom/android/server/location/GnssNavigationMessageProvider;
Lcom/android/server/location/GnssNetworkConnectivityHandler$1;
Lcom/android/server/location/GnssNetworkConnectivityHandler$2;
@@ -21398,10 +25946,12 @@ Lcom/android/server/location/GnssSatelliteBlacklistHelper$1;
Lcom/android/server/location/GnssSatelliteBlacklistHelper$GnssSatelliteBlacklistCallback;
Lcom/android/server/location/GnssSatelliteBlacklistHelper;
Lcom/android/server/location/GnssStatusListenerHelper;
+Lcom/android/server/location/GnssVisibilityControl$1;
Lcom/android/server/location/GnssVisibilityControl;
Lcom/android/server/location/LocationBasedCountryDetector$1;
Lcom/android/server/location/LocationBasedCountryDetector$3;
Lcom/android/server/location/LocationBasedCountryDetector;
+Lcom/android/server/location/LocationFudger$1;
Lcom/android/server/location/LocationFudger;
Lcom/android/server/location/LocationProviderProxy$1;
Lcom/android/server/location/LocationProviderProxy$2;
@@ -21409,6 +25959,15 @@ Lcom/android/server/location/LocationProviderProxy;
Lcom/android/server/location/LocationRequestStatistics$PackageProviderKey;
Lcom/android/server/location/LocationRequestStatistics$PackageStatistics;
Lcom/android/server/location/LocationRequestStatistics;
+Lcom/android/server/location/LocationSettingsStore$GlobalSettingChangedListener;
+Lcom/android/server/location/LocationSettingsStore$IntegerSecureSetting;
+Lcom/android/server/location/LocationSettingsStore$LongGlobalSetting;
+Lcom/android/server/location/LocationSettingsStore$ObservingSetting;
+Lcom/android/server/location/LocationSettingsStore$StringListCachedSecureSetting;
+Lcom/android/server/location/LocationSettingsStore$StringSetCachedGlobalSetting;
+Lcom/android/server/location/LocationSettingsStore$UserSettingChangedListener;
+Lcom/android/server/location/LocationSettingsStore;
+Lcom/android/server/location/LocationUsageLogger;
Lcom/android/server/location/NanoAppStateManager;
Lcom/android/server/location/NtpTimeHelper$InjectNtpTimeCallback;
Lcom/android/server/location/NtpTimeHelper;
@@ -21423,6 +25982,8 @@ Lcom/android/server/locksettings/LockSettingsService$1;
Lcom/android/server/locksettings/LockSettingsService$2;
Lcom/android/server/locksettings/LockSettingsService$3;
Lcom/android/server/locksettings/LockSettingsService$DeviceProvisionedObserver;
+Lcom/android/server/locksettings/LockSettingsService$GateKeeperDiedRecipient;
+Lcom/android/server/locksettings/LockSettingsService$Injector$1;
Lcom/android/server/locksettings/LockSettingsService$Injector;
Lcom/android/server/locksettings/LockSettingsService$Lifecycle;
Lcom/android/server/locksettings/LockSettingsService$LocalService;
@@ -21430,6 +25991,8 @@ Lcom/android/server/locksettings/LockSettingsService$SynchronizedStrongAuthTrack
Lcom/android/server/locksettings/LockSettingsService;
Lcom/android/server/locksettings/LockSettingsStorage$Cache$CacheKey;
Lcom/android/server/locksettings/LockSettingsStorage$Cache;
+Lcom/android/server/locksettings/LockSettingsStorage$Callback;
+Lcom/android/server/locksettings/LockSettingsStorage$CredentialHash;
Lcom/android/server/locksettings/LockSettingsStorage$DatabaseHelper;
Lcom/android/server/locksettings/LockSettingsStorage;
Lcom/android/server/locksettings/LockSettingsStrongAuth$1;
@@ -21441,6 +26004,7 @@ Lcom/android/server/locksettings/SyntheticPasswordCrypto;
Lcom/android/server/locksettings/SyntheticPasswordManager$AuthenticationToken;
Lcom/android/server/locksettings/SyntheticPasswordManager$PasswordData;
Lcom/android/server/locksettings/SyntheticPasswordManager;
+Lcom/android/server/locksettings/recoverablekeystore/InsecureUserException;
Lcom/android/server/locksettings/recoverablekeystore/KeyStoreProxy;
Lcom/android/server/locksettings/recoverablekeystore/KeyStoreProxyImpl;
Lcom/android/server/locksettings/recoverablekeystore/KeySyncTask;
@@ -21449,22 +26013,30 @@ Lcom/android/server/locksettings/recoverablekeystore/PlatformDecryptionKey;
Lcom/android/server/locksettings/recoverablekeystore/PlatformEncryptionKey;
Lcom/android/server/locksettings/recoverablekeystore/PlatformKeyManager;
Lcom/android/server/locksettings/recoverablekeystore/RecoverableKeyGenerator;
+Lcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStorageException;
Lcom/android/server/locksettings/recoverablekeystore/RecoverableKeyStoreManager;
Lcom/android/server/locksettings/recoverablekeystore/RecoverySnapshotListenersStorage;
Lcom/android/server/locksettings/recoverablekeystore/SecureBox$AesGcmOperation;
Lcom/android/server/locksettings/recoverablekeystore/SecureBox;
Lcom/android/server/locksettings/recoverablekeystore/TestOnlyInsecureCertificateHelper;
Lcom/android/server/locksettings/recoverablekeystore/WrappedKey;
+Lcom/android/server/locksettings/recoverablekeystore/certificate/CertParsingException;
Lcom/android/server/locksettings/recoverablekeystore/certificate/CertUtils;
+Lcom/android/server/locksettings/recoverablekeystore/certificate/CertValidationException;
Lcom/android/server/locksettings/recoverablekeystore/certificate/CertXml;
Lcom/android/server/locksettings/recoverablekeystore/certificate/SigXml;
Lcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotDeserializer;
+Lcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotParserException;
Lcom/android/server/locksettings/recoverablekeystore/serialization/KeyChainSnapshotSerializer;
Lcom/android/server/locksettings/recoverablekeystore/storage/ApplicationKeyStorage;
+Lcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager$1;
Lcom/android/server/locksettings/recoverablekeystore/storage/CleanupManager;
Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDb;
Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverableKeyStoreDbHelper;
+Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySessionStorage;
Lcom/android/server/locksettings/recoverablekeystore/storage/RecoverySnapshotStorage;
+Lcom/android/server/media/-$$Lambda$MediaSessionService$za_9dlUSlnaiZw6eCdPVEZq0XLw;
+Lcom/android/server/media/AudioPlayerStateMonitor$AudioManagerPlaybackListener;
Lcom/android/server/media/AudioPlayerStateMonitor$MessageHandler;
Lcom/android/server/media/AudioPlayerStateMonitor$OnAudioPlayerActiveStateChangedListener;
Lcom/android/server/media/AudioPlayerStateMonitor;
@@ -21473,6 +26045,7 @@ Lcom/android/server/media/MediaResourceMonitorService;
Lcom/android/server/media/MediaRoute2ProviderWatcher$1;
Lcom/android/server/media/MediaRoute2ProviderWatcher$2;
Lcom/android/server/media/MediaRoute2ProviderWatcher;
+Lcom/android/server/media/MediaRouter2ServiceImpl;
Lcom/android/server/media/MediaRouterService$1$1;
Lcom/android/server/media/MediaRouterService$1;
Lcom/android/server/media/MediaRouterService$2;
@@ -21491,8 +26064,25 @@ Lcom/android/server/media/MediaSessionRecord$MessageHandler;
Lcom/android/server/media/MediaSessionRecord$SessionCb;
Lcom/android/server/media/MediaSessionRecord$SessionStub;
Lcom/android/server/media/MediaSessionRecord;
+Lcom/android/server/media/MediaSessionService$1;
+Lcom/android/server/media/MediaSessionService$Controller2Callback;
+Lcom/android/server/media/MediaSessionService$FullUserRecord$CallbackRecord;
+Lcom/android/server/media/MediaSessionService$FullUserRecord;
+Lcom/android/server/media/MediaSessionService$MessageHandler;
+Lcom/android/server/media/MediaSessionService$Session2TokensListenerRecord;
+Lcom/android/server/media/MediaSessionService$SessionManagerImpl$1;
+Lcom/android/server/media/MediaSessionService$SessionManagerImpl$2;
+Lcom/android/server/media/MediaSessionService$SessionManagerImpl$3;
+Lcom/android/server/media/MediaSessionService$SessionManagerImpl$4;
+Lcom/android/server/media/MediaSessionService$SessionManagerImpl$KeyEventWakeLockReceiver;
+Lcom/android/server/media/MediaSessionService$SessionManagerImpl$MediaKeyListenerResultReceiver;
+Lcom/android/server/media/MediaSessionService$SessionManagerImpl;
+Lcom/android/server/media/MediaSessionService$SessionsListenerRecord;
+Lcom/android/server/media/MediaSessionService$SettingsObserver;
Lcom/android/server/media/MediaSessionService;
+Lcom/android/server/media/MediaSessionStack$OnMediaButtonSessionChangedListener;
Lcom/android/server/media/MediaSessionStack;
+Lcom/android/server/media/MediaShellCommand;
Lcom/android/server/media/RemoteDisplayProviderProxy$Callback;
Lcom/android/server/media/RemoteDisplayProviderProxy;
Lcom/android/server/media/RemoteDisplayProviderWatcher$1;
@@ -21503,17 +26093,22 @@ Lcom/android/server/media/projection/MediaProjectionManagerService$1;
Lcom/android/server/media/projection/MediaProjectionManagerService$2;
Lcom/android/server/media/projection/MediaProjectionManagerService$BinderService;
Lcom/android/server/media/projection/MediaProjectionManagerService$CallbackDelegate;
+Lcom/android/server/media/projection/MediaProjectionManagerService$MediaRouterCallback;
Lcom/android/server/media/projection/MediaProjectionManagerService;
Lcom/android/server/midi/MidiService$1;
Lcom/android/server/midi/MidiService$Lifecycle;
Lcom/android/server/midi/MidiService;
Lcom/android/server/net/-$$Lambda$NetworkPolicyManagerService$HDTUqowtgL-W_V0Kq6psXLWC9ws;
+Lcom/android/server/net/DelayedDiskWrite;
Lcom/android/server/net/IpConfigStore;
+Lcom/android/server/net/LockdownVpnTracker;
Lcom/android/server/net/NetworkIdentitySet;
Lcom/android/server/net/NetworkPolicyLogger$Data;
Lcom/android/server/net/NetworkPolicyLogger$LogBuffer;
Lcom/android/server/net/NetworkPolicyLogger;
Lcom/android/server/net/NetworkPolicyManagerInternal;
+Lcom/android/server/net/NetworkPolicyManagerService$10;
+Lcom/android/server/net/NetworkPolicyManagerService$11;
Lcom/android/server/net/NetworkPolicyManagerService$12;
Lcom/android/server/net/NetworkPolicyManagerService$13;
Lcom/android/server/net/NetworkPolicyManagerService$14;
@@ -21525,9 +26120,12 @@ Lcom/android/server/net/NetworkPolicyManagerService$1;
Lcom/android/server/net/NetworkPolicyManagerService$2;
Lcom/android/server/net/NetworkPolicyManagerService$3;
Lcom/android/server/net/NetworkPolicyManagerService$4;
+Lcom/android/server/net/NetworkPolicyManagerService$5;
Lcom/android/server/net/NetworkPolicyManagerService$6;
Lcom/android/server/net/NetworkPolicyManagerService$7;
+Lcom/android/server/net/NetworkPolicyManagerService$8;
Lcom/android/server/net/NetworkPolicyManagerService$9;
+Lcom/android/server/net/NetworkPolicyManagerService$NetPolicyAppIdleStateChangeListener;
Lcom/android/server/net/NetworkPolicyManagerService$NetworkPolicyManagerInternalImpl;
Lcom/android/server/net/NetworkPolicyManagerService;
Lcom/android/server/net/NetworkStatsAccess;
@@ -21538,6 +26136,7 @@ Lcom/android/server/net/NetworkStatsManagerInternal;
Lcom/android/server/net/NetworkStatsObservers$1;
Lcom/android/server/net/NetworkStatsObservers$NetworkUsageRequestInfo;
Lcom/android/server/net/NetworkStatsObservers$RequestInfo;
+Lcom/android/server/net/NetworkStatsObservers$StatsContext;
Lcom/android/server/net/NetworkStatsObservers;
Lcom/android/server/net/NetworkStatsRecorder$CombiningRewriter;
Lcom/android/server/net/NetworkStatsRecorder$RemoveUidRewriter;
@@ -21546,10 +26145,15 @@ Lcom/android/server/net/NetworkStatsService$1;
Lcom/android/server/net/NetworkStatsService$2;
Lcom/android/server/net/NetworkStatsService$3;
Lcom/android/server/net/NetworkStatsService$4;
+Lcom/android/server/net/NetworkStatsService$5;
+Lcom/android/server/net/NetworkStatsService$6;
Lcom/android/server/net/NetworkStatsService$7;
Lcom/android/server/net/NetworkStatsService$DefaultNetworkStatsSettings;
+Lcom/android/server/net/NetworkStatsService$DropBoxNonMonotonicObserver;
Lcom/android/server/net/NetworkStatsService$HandlerCallback;
+Lcom/android/server/net/NetworkStatsService$NetworkStatsHandler;
Lcom/android/server/net/NetworkStatsService$NetworkStatsManagerInternalImpl;
+Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings$Config;
Lcom/android/server/net/NetworkStatsService$NetworkStatsSettings;
Lcom/android/server/net/NetworkStatsService;
Lcom/android/server/net/watchlist/-$$Lambda$WatchlistLoggingHandler$GBD0dX6RhipHIkM0Z_B5jLlwfHQ;
@@ -21563,14 +26167,18 @@ Lcom/android/server/net/watchlist/ReportEncoder;
Lcom/android/server/net/watchlist/ReportWatchlistJobService;
Lcom/android/server/net/watchlist/WatchlistConfig;
Lcom/android/server/net/watchlist/WatchlistLoggingHandler;
+Lcom/android/server/net/watchlist/WatchlistReportDbHelper$AggregatedResult;
Lcom/android/server/net/watchlist/WatchlistReportDbHelper;
Lcom/android/server/net/watchlist/WatchlistSettings;
Lcom/android/server/notification/-$$Lambda$NotificationManagerService$11$zVdn9N0ybkMxz8xM8Qa1AXowlic;
+Lcom/android/server/notification/-$$Lambda$NotificationManagerService$12gEiRp5yhg_vLn2NsMtnAkm3GI;
Lcom/android/server/notification/-$$Lambda$NotificationManagerService$14$hWnH6mjUAxwVmpU3QRoPHh5_FyI;
Lcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$3bretMyG2YyNFKU5plLQgmxuGr0;
Lcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$Srt8NNqA1xJUAp_7nDU6CBZJm_0;
Lcom/android/server/notification/-$$Lambda$NotificationManagerService$NotificationListeners$T5BM1IF40aMGtqZZRr6BWGjzNxA;
Lcom/android/server/notification/-$$Lambda$NotificationRecord$XgkrZGcjOHPHem34oE9qLGy3siA;
+Lcom/android/server/notification/-$$Lambda$SnoozeHelper$333G5Hgba3G7RU9lYp0HmgKJBvA;
+Lcom/android/server/notification/-$$Lambda$SnoozeHelper$uY_yjjODxoDQVadkBTGNFqh7pco;
Lcom/android/server/notification/-$$Lambda$V4J7df5A6vhSIuw7Ym9xgkfahto;
Lcom/android/server/notification/AlertRateLimiter;
Lcom/android/server/notification/BadgeExtractor;
@@ -21582,8 +26190,10 @@ Lcom/android/server/notification/CalendarTracker;
Lcom/android/server/notification/ConditionProviders$Callback;
Lcom/android/server/notification/ConditionProviders$ConditionRecord;
Lcom/android/server/notification/ConditionProviders;
+Lcom/android/server/notification/CountdownConditionProvider$Receiver;
Lcom/android/server/notification/CountdownConditionProvider;
Lcom/android/server/notification/CriticalNotificationExtractor;
+Lcom/android/server/notification/EventConditionProvider$1;
Lcom/android/server/notification/EventConditionProvider$2;
Lcom/android/server/notification/EventConditionProvider$3;
Lcom/android/server/notification/EventConditionProvider$4;
@@ -21594,13 +26204,17 @@ Lcom/android/server/notification/GroupHelper;
Lcom/android/server/notification/ImportanceExtractor;
Lcom/android/server/notification/ManagedServices$1$1;
Lcom/android/server/notification/ManagedServices$1;
+Lcom/android/server/notification/ManagedServices$Config;
Lcom/android/server/notification/ManagedServices$ManagedServiceInfo;
Lcom/android/server/notification/ManagedServices$UserProfiles;
Lcom/android/server/notification/ManagedServices;
Lcom/android/server/notification/NotificationAdjustmentExtractor;
Lcom/android/server/notification/NotificationChannelExtractor;
+Lcom/android/server/notification/NotificationComparator$1;
Lcom/android/server/notification/NotificationComparator;
Lcom/android/server/notification/NotificationDelegate;
+Lcom/android/server/notification/NotificationHistoryManager$SettingsObserver;
+Lcom/android/server/notification/NotificationHistoryManager;
Lcom/android/server/notification/NotificationIntrusivenessExtractor$1;
Lcom/android/server/notification/NotificationIntrusivenessExtractor;
Lcom/android/server/notification/NotificationManagerInternal;
@@ -21610,12 +26224,15 @@ Lcom/android/server/notification/NotificationManagerService$11;
Lcom/android/server/notification/NotificationManagerService$13;
Lcom/android/server/notification/NotificationManagerService$14;
Lcom/android/server/notification/NotificationManagerService$15;
+Lcom/android/server/notification/NotificationManagerService$16;
Lcom/android/server/notification/NotificationManagerService$1;
Lcom/android/server/notification/NotificationManagerService$2;
+Lcom/android/server/notification/NotificationManagerService$3;
Lcom/android/server/notification/NotificationManagerService$4;
Lcom/android/server/notification/NotificationManagerService$5;
Lcom/android/server/notification/NotificationManagerService$6;
Lcom/android/server/notification/NotificationManagerService$7;
+Lcom/android/server/notification/NotificationManagerService$8;
Lcom/android/server/notification/NotificationManagerService$9;
Lcom/android/server/notification/NotificationManagerService$Archive;
Lcom/android/server/notification/NotificationManagerService$CancelNotificationRunnable;
@@ -21632,6 +26249,8 @@ Lcom/android/server/notification/NotificationManagerService$NotificationListener
Lcom/android/server/notification/NotificationManagerService$PostNotificationRunnable$1;
Lcom/android/server/notification/NotificationManagerService$PostNotificationRunnable;
Lcom/android/server/notification/NotificationManagerService$RankingHandlerWorker;
+Lcom/android/server/notification/NotificationManagerService$RoleObserver;
+Lcom/android/server/notification/NotificationManagerService$SavePolicyFileRunnable;
Lcom/android/server/notification/NotificationManagerService$SettingsObserver;
Lcom/android/server/notification/NotificationManagerService$StatusBarNotificationHolder;
Lcom/android/server/notification/NotificationManagerService$TrimCache;
@@ -21651,6 +26270,7 @@ Lcom/android/server/notification/PreferencesHelper$Delegate;
Lcom/android/server/notification/PreferencesHelper$PackagePreferences;
Lcom/android/server/notification/PreferencesHelper;
Lcom/android/server/notification/PriorityExtractor;
+Lcom/android/server/notification/PropConfig;
Lcom/android/server/notification/RankingConfig;
Lcom/android/server/notification/RankingHandler;
Lcom/android/server/notification/RankingHelper;
@@ -21658,6 +26278,9 @@ Lcom/android/server/notification/RankingReconsideration;
Lcom/android/server/notification/RateEstimator;
Lcom/android/server/notification/ScheduleConditionProvider$1;
Lcom/android/server/notification/ScheduleConditionProvider;
+Lcom/android/server/notification/SnoozeHelper$1;
+Lcom/android/server/notification/SnoozeHelper$Callback;
+Lcom/android/server/notification/SnoozeHelper$Inserter;
Lcom/android/server/notification/SnoozeHelper;
Lcom/android/server/notification/SystemConditionProviderService;
Lcom/android/server/notification/ValidateNotificationPeople$1;
@@ -21671,6 +26294,7 @@ Lcom/android/server/notification/ZenModeExtractor;
Lcom/android/server/notification/ZenModeFiltering$RepeatCallers;
Lcom/android/server/notification/ZenModeFiltering;
Lcom/android/server/notification/ZenModeHelper$Callback;
+Lcom/android/server/notification/ZenModeHelper$H$ConfigMessageData;
Lcom/android/server/notification/ZenModeHelper$H;
Lcom/android/server/notification/ZenModeHelper$Metrics;
Lcom/android/server/notification/ZenModeHelper$RingerModeDelegate;
@@ -21682,6 +26306,9 @@ Lcom/android/server/oemlock/OemLockService$1;
Lcom/android/server/oemlock/OemLockService$2;
Lcom/android/server/oemlock/OemLockService;
Lcom/android/server/oemlock/VendorLock;
+Lcom/android/server/om/-$$Lambda$IdmapDaemon$Connection$4U-n0RSv1BPv15mvu8B8zXARcpk;
+Lcom/android/server/om/-$$Lambda$IdmapDaemon$hZvlb8B5bMAnD3h9mHLjOQXKSTI;
+Lcom/android/server/om/-$$Lambda$IdmapDaemon$u_1qfM2VGzol3UUX0R4mwNZs9gY;
Lcom/android/server/om/-$$Lambda$OverlayManagerService$OverlayChangeListener$u9oeN2C0PDMo0pYiLqfMBkwuMNA;
Lcom/android/server/om/-$$Lambda$OverlayManagerService$_WGEV7N0qhntbqqDW3A1O-TVv5o;
Lcom/android/server/om/-$$Lambda$OverlayManagerSettings$ATr0DZmWpSWdKD0COw4t2qS-DRk;
@@ -21693,16 +26320,21 @@ Lcom/android/server/om/-$$Lambda$OverlayManagerSettings$jZUujzDxrP0hpAqUxnqEf-b-
Lcom/android/server/om/-$$Lambda$OverlayManagerSettings$sx0Nyvq91kCH_A-4Ctf09G_0u9M;
Lcom/android/server/om/-$$Lambda$OverlayManagerSettings$vXm2C4y9Q-F5yYZNimB-Lr6w-oI;
Lcom/android/server/om/-$$Lambda$bXuJGR0fITXNwGnQfQHv9KS-XgY;
+Lcom/android/server/om/IdmapDaemon$Connection;
+Lcom/android/server/om/IdmapDaemon;
Lcom/android/server/om/IdmapManager;
Lcom/android/server/om/OverlayActorEnforcer$VerifyCallback;
+Lcom/android/server/om/OverlayActorEnforcer;
Lcom/android/server/om/OverlayManagerService$1;
Lcom/android/server/om/OverlayManagerService$OverlayChangeListener;
Lcom/android/server/om/OverlayManagerService$PackageManagerHelper;
Lcom/android/server/om/OverlayManagerService$PackageReceiver;
+Lcom/android/server/om/OverlayManagerService$UserReceiver;
Lcom/android/server/om/OverlayManagerService;
Lcom/android/server/om/OverlayManagerServiceImpl$OverlayChangeListener;
Lcom/android/server/om/OverlayManagerServiceImpl$PackageManagerHelper;
Lcom/android/server/om/OverlayManagerServiceImpl;
+Lcom/android/server/om/OverlayManagerSettings$BadKeyException;
Lcom/android/server/om/OverlayManagerSettings$Serializer;
Lcom/android/server/om/OverlayManagerSettings$SettingsItem;
Lcom/android/server/om/OverlayManagerSettings;
@@ -21711,8 +26343,10 @@ Lcom/android/server/os/BugreportManagerService;
Lcom/android/server/os/BugreportManagerServiceImpl;
Lcom/android/server/os/DeviceIdentifiersPolicyService$DeviceIdentifiersPolicy;
Lcom/android/server/os/DeviceIdentifiersPolicyService;
+Lcom/android/server/os/SchedulingPolicyService$1;
Lcom/android/server/os/SchedulingPolicyService;
Lcom/android/server/pm/-$$Lambda$ApexManager$ApexManagerImpl$pQnjdbWgnVRvdOuYJTmevPGwE8s;
+Lcom/android/server/pm/-$$Lambda$AppsFilter$FeatureConfigImpl$n15whgPRX7bGimHq6-7mgAskIKs;
Lcom/android/server/pm/-$$Lambda$BWZi0Aa35BwEPzNacDfE_69TPS8;
Lcom/android/server/pm/-$$Lambda$BackgroundDexOptService$-KiE2NsUP--OYmoSDt9BwEQICZw;
Lcom/android/server/pm/-$$Lambda$BackgroundDexOptService$TAsfDUuoxt92xKFoSCfpMUmY2Es;
@@ -21728,21 +26362,18 @@ Lcom/android/server/pm/-$$Lambda$PackageManagerService$3yxDU_uSU2kkdLuKkfPYVKvXK
Lcom/android/server/pm/-$$Lambda$PackageManagerService$4lr9R3-Rfzq-VEptx-WWeRaSpd4;
Lcom/android/server/pm/-$$Lambda$PackageManagerService$EQHzRzxse-rtXNIoVfzT15c8LHI;
Lcom/android/server/pm/-$$Lambda$PackageManagerService$FFJwRezEfCP4utcPN2U9pjn2hIo;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$JqISwjRG4Nrwn7K19yITMU1WH5g;
Lcom/android/server/pm/-$$Lambda$PackageManagerService$UqTOzDNpKPiIlaG4_AUlesB9I1E;
Lcom/android/server/pm/-$$Lambda$PackageManagerService$Wnf5zZuMJLUQ4GfjHtUww4l7YUg;
Lcom/android/server/pm/-$$Lambda$PackageManagerService$cHQqBPj5vgOw-P7yhrKC9Ssq27g;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$ccz4PCOSG7fKRFBAMJv8GMQMI08;
Lcom/android/server/pm/-$$Lambda$PackageManagerService$djQQrdclAlQ8ILip1OVPcBDTkW4;
-Lcom/android/server/pm/-$$Lambda$PackageManagerService$hy2s_cJQR-eeozeSQuK1xEmJcOU;
Lcom/android/server/pm/-$$Lambda$PackageManagerService$i6CpetYRHYknkq8R3n1zFsH2Qng;
Lcom/android/server/pm/-$$Lambda$PackageManagerService$imyTLGZ0HLyacORSu0iPTteivzY;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$vPmwW10Lr1Zc8YoNadc7v4xmIWo;
Lcom/android/server/pm/-$$Lambda$PackageManagerService$xKD6SB7pISjc29qfmXIq5O_3OJw;
+Lcom/android/server/pm/-$$Lambda$PackageManagerService$xZAAMOZCDrDe-FJUcRmxesa8h7c;
Lcom/android/server/pm/-$$Lambda$PackageManagerService$zCuBGosGB1OGJ7ya2EB4X5V2jBk;
-Lcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$QMV-UHbRIK26QMZL5iM27MchX7U;
-Lcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$ePZ6rsJ05hJ2glmOqcq1_jX6J8w;
-Lcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$fMBP3pPR7BB2hICieRxkdNG-3H8;
-Lcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$nPt0Hym3GvYeWA2vwfOLFDxZmCE;
-Lcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$p5q19y4-2x-i747j_hTNL1EMzt0;
-Lcom/android/server/pm/-$$Lambda$PackageManagerServiceUtils$whx96xO50U3fax1NRe1upTcx9jc;
Lcom/android/server/pm/-$$Lambda$ParallelPackageParser$FTtinPrp068lVeI7K6bC1tNE3iM;
Lcom/android/server/pm/-$$Lambda$ShortcutBitmapSaver$AUDgG57FGyGDUVDAjL-7cuiE0pM;
Lcom/android/server/pm/-$$Lambda$ShortcutBitmapSaver$xgjvZfaiKXavxgGCSta_eIdVBnk;
@@ -21771,11 +26402,18 @@ Lcom/android/server/pm/-$$Lambda$ShortcutService$y1mZhNAWeEp6GCbsOBAt4g-DS3s;
Lcom/android/server/pm/-$$Lambda$ShortcutUser$6rBk7xJFaM9dXyyKHFs-DCus0iM;
Lcom/android/server/pm/-$$Lambda$ShortcutUser$XHWlvjfCvG1SoVwGHi3envhmtfM;
Lcom/android/server/pm/-$$Lambda$ShortcutUser$bsc89E_40a5X2amehalpqawQ5hY;
+Lcom/android/server/pm/-$$Lambda$UserManagerService$s1AxethOTPU7NQ5LXxyP4etLk7E;
+Lcom/android/server/pm/-$$Lambda$g4P9K8aMR8DqEu0xx3BuQNeuJDI;
Lcom/android/server/pm/-$$Lambda$jZzCUQd1whVIqs_s1XMLbFqTP_E;
+Lcom/android/server/pm/-$$Lambda$k1GFoI6SobyVJslBym5uZjmuRFs;
+Lcom/android/server/pm/-$$Lambda$o-ZLavkSzPWqIqo9vLXCsdj4Pgg;
+Lcom/android/server/pm/-$$Lambda$p0TiQPw2ryHKkedVkMgvUcGADDo;
Lcom/android/server/pm/-$$Lambda$vv6Ko6L2p38nn3EYcL5PZxcyRyk;
Lcom/android/server/pm/AbstractStatsBase$1;
Lcom/android/server/pm/AbstractStatsBase;
+Lcom/android/server/pm/ApexManager$1;
Lcom/android/server/pm/ApexManager$ActiveApexInfo;
+Lcom/android/server/pm/ApexManager$ApexManagerImpl$1;
Lcom/android/server/pm/ApexManager$ApexManagerImpl;
Lcom/android/server/pm/ApexManager;
Lcom/android/server/pm/AppsFilter$FeatureConfig;
@@ -21786,14 +26424,10 @@ Lcom/android/server/pm/BackgroundDexOptService$2;
Lcom/android/server/pm/BackgroundDexOptService;
Lcom/android/server/pm/CompilerStats$PackageStats;
Lcom/android/server/pm/CompilerStats;
-Lcom/android/server/pm/ComponentResolver$ActionIterGenerator;
Lcom/android/server/pm/ComponentResolver$ActivityIntentResolver;
-Lcom/android/server/pm/ComponentResolver$AuthoritiesIterGenerator;
-Lcom/android/server/pm/ComponentResolver$CategoriesIterGenerator;
Lcom/android/server/pm/ComponentResolver$InstantAppIntentResolver;
-Lcom/android/server/pm/ComponentResolver$IterGenerator;
Lcom/android/server/pm/ComponentResolver$ProviderIntentResolver;
-Lcom/android/server/pm/ComponentResolver$SchemesIterGenerator;
+Lcom/android/server/pm/ComponentResolver$ReceiverIntentResolver;
Lcom/android/server/pm/ComponentResolver$ServiceIntentResolver;
Lcom/android/server/pm/ComponentResolver;
Lcom/android/server/pm/CrossProfileAppsService;
@@ -21802,6 +26436,8 @@ Lcom/android/server/pm/CrossProfileAppsServiceImpl$InjectorImpl;
Lcom/android/server/pm/CrossProfileAppsServiceImpl;
Lcom/android/server/pm/CrossProfileIntentFilter;
Lcom/android/server/pm/CrossProfileIntentResolver;
+Lcom/android/server/pm/DataLoaderManagerService$DataLoaderManagerBinderService;
+Lcom/android/server/pm/DataLoaderManagerService;
Lcom/android/server/pm/DumpState;
Lcom/android/server/pm/DynamicCodeLoggingService$AuditWatchingThread;
Lcom/android/server/pm/DynamicCodeLoggingService$IdleLoggingThread;
@@ -21813,7 +26449,9 @@ Lcom/android/server/pm/Installer;
Lcom/android/server/pm/InstantAppRegistry$CookiePersistence;
Lcom/android/server/pm/InstantAppRegistry;
Lcom/android/server/pm/InstantAppResolver;
+Lcom/android/server/pm/InstantAppResolverConnection$ConnectionException;
Lcom/android/server/pm/InstantAppResolverConnection$GetInstantAppResolveInfoCaller$1;
+Lcom/android/server/pm/InstantAppResolverConnection$GetInstantAppResolveInfoCaller;
Lcom/android/server/pm/InstantAppResolverConnection$MyServiceConnection;
Lcom/android/server/pm/InstantAppResolverConnection;
Lcom/android/server/pm/InstructionSets;
@@ -21845,8 +26483,13 @@ Lcom/android/server/pm/PackageInstallerSession$3;
Lcom/android/server/pm/PackageInstallerSession$4;
Lcom/android/server/pm/PackageInstallerSession;
Lcom/android/server/pm/PackageKeySetData;
+Lcom/android/server/pm/PackageList;
Lcom/android/server/pm/PackageManagerException;
Lcom/android/server/pm/PackageManagerService$1;
+Lcom/android/server/pm/PackageManagerService$4;
+Lcom/android/server/pm/PackageManagerService$5;
+Lcom/android/server/pm/PackageManagerService$6;
+Lcom/android/server/pm/PackageManagerService$7;
Lcom/android/server/pm/PackageManagerService$ActiveInstallSession;
Lcom/android/server/pm/PackageManagerService$FileInstallArgs;
Lcom/android/server/pm/PackageManagerService$HandlerParams;
@@ -21927,11 +26570,13 @@ Lcom/android/server/pm/ShortcutService$4;
Lcom/android/server/pm/ShortcutService$5;
Lcom/android/server/pm/ShortcutService$DumpFilter;
Lcom/android/server/pm/ShortcutService$FileOutputStreamWithPath;
+Lcom/android/server/pm/ShortcutService$InvalidFileFormatException;
Lcom/android/server/pm/ShortcutService$Lifecycle;
Lcom/android/server/pm/ShortcutService$LocalService;
Lcom/android/server/pm/ShortcutService;
Lcom/android/server/pm/ShortcutUser$PackageWithUser;
Lcom/android/server/pm/ShortcutUser;
+Lcom/android/server/pm/StagingManager$PreRebootVerificationHandler;
Lcom/android/server/pm/StagingManager;
Lcom/android/server/pm/UserDataPreparer;
Lcom/android/server/pm/UserManagerService$1;
@@ -21960,30 +26605,37 @@ Lcom/android/server/pm/dex/DynamicCodeLogger;
Lcom/android/server/pm/dex/PackageDexUsage$DexUseInfo;
Lcom/android/server/pm/dex/PackageDexUsage$PackageUseInfo;
Lcom/android/server/pm/dex/PackageDexUsage;
+Lcom/android/server/pm/dex/PackageDynamicCodeLoading$DynamicCodeFile;
Lcom/android/server/pm/dex/PackageDynamicCodeLoading$PackageDynamicCode;
Lcom/android/server/pm/dex/PackageDynamicCodeLoading;
Lcom/android/server/pm/dex/ViewCompiler;
Lcom/android/server/pm/permission/-$$Lambda$DefaultPermissionGrantPolicy$SHfHTWKpfBf_vZtWArm-FlNBI8k;
-Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$460fr0E6NVpZyibHspWnxPE13IE;
-Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$JT-I0Pu4aDWMzekmFWZgcoe-hoU;
+Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$NPd9St1HBvGAtg1uhMV2Upfww4g;
+Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$QU_UFF-9J77Mq118FLJUiLh4ARI;
Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$eApyRxwI3JHTSVAxV9EbP43gFOo;
+Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$g9Bo5gFpLYyPOsp3K8Aik5xseDI;
Lcom/android/server/pm/permission/-$$Lambda$PermissionManagerService$iwnRBDwjg4K5iRGbRU5_sVt0zaU;
Lcom/android/server/pm/permission/BasePermission;
Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$1;
+Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy$DefaultPermissionGrant;
Lcom/android/server/pm/permission/DefaultPermissionGrantPolicy;
Lcom/android/server/pm/permission/PermissionManagerService$1;
Lcom/android/server/pm/permission/PermissionManagerService$OnPermissionChangeListeners;
Lcom/android/server/pm/permission/PermissionManagerService$PermissionManagerServiceInternalImpl;
Lcom/android/server/pm/permission/PermissionManagerService;
Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultBrowserProvider;
+Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultDialerProvider;
Lcom/android/server/pm/permission/PermissionManagerServiceInternal$DefaultHomeProvider;
Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PackagesProvider;
Lcom/android/server/pm/permission/PermissionManagerServiceInternal$PermissionCallback;
+Lcom/android/server/pm/permission/PermissionManagerServiceInternal$SyncAdapterPackagesProvider;
Lcom/android/server/pm/permission/PermissionManagerServiceInternal;
Lcom/android/server/pm/permission/PermissionSettings;
Lcom/android/server/pm/permission/PermissionsState$PermissionData;
Lcom/android/server/pm/permission/PermissionsState$PermissionState;
Lcom/android/server/pm/permission/PermissionsState;
+Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$EOXe1_laAw9FFgJquDg6Qy2DagQ;
+Lcom/android/server/policy/-$$Lambda$PermissionPolicyService$V2gOjn4rTBH_rbxagOz-eOTvNfc;
Lcom/android/server/policy/-$$Lambda$oXa0y3A-00RiQs6-KTPBgpkGtgw;
Lcom/android/server/policy/GlobalActions;
Lcom/android/server/policy/GlobalActionsProvider$GlobalActionsListener;
@@ -21991,7 +26643,10 @@ Lcom/android/server/policy/GlobalActionsProvider;
Lcom/android/server/policy/GlobalKeyManager;
Lcom/android/server/policy/IconUtilities;
Lcom/android/server/policy/LogDecelerateInterpolator;
+Lcom/android/server/policy/PermissionPolicyInternal$OnInitializedCallback;
Lcom/android/server/policy/PermissionPolicyInternal;
+Lcom/android/server/policy/PermissionPolicyService$1;
+Lcom/android/server/policy/PermissionPolicyService$2;
Lcom/android/server/policy/PermissionPolicyService$Internal;
Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser$OpToChange;
Lcom/android/server/policy/PermissionPolicyService$PermissionToOpSynchroniser;
@@ -22002,19 +26657,29 @@ Lcom/android/server/policy/PhoneWindowManager$12;
Lcom/android/server/policy/PhoneWindowManager$13;
Lcom/android/server/policy/PhoneWindowManager$1;
Lcom/android/server/policy/PhoneWindowManager$2;
+Lcom/android/server/policy/PhoneWindowManager$3;
+Lcom/android/server/policy/PhoneWindowManager$4;
+Lcom/android/server/policy/PhoneWindowManager$5;
+Lcom/android/server/policy/PhoneWindowManager$6;
Lcom/android/server/policy/PhoneWindowManager$7;
Lcom/android/server/policy/PhoneWindowManager$8;
Lcom/android/server/policy/PhoneWindowManager$DisplayHomeButtonHandler;
Lcom/android/server/policy/PhoneWindowManager$HdmiVideoExtconUEventObserver;
+Lcom/android/server/policy/PhoneWindowManager$MyWakeGestureListener;
Lcom/android/server/policy/PhoneWindowManager$PolicyHandler;
+Lcom/android/server/policy/PhoneWindowManager$ScreenLockTimeout;
Lcom/android/server/policy/PhoneWindowManager$ScreenshotRunnable;
Lcom/android/server/policy/PhoneWindowManager$SettingsObserver;
Lcom/android/server/policy/PhoneWindowManager;
+Lcom/android/server/policy/ShortcutManager$ShortcutInfo;
Lcom/android/server/policy/ShortcutManager;
+Lcom/android/server/policy/SoftRestrictedPermissionPolicy$1;
Lcom/android/server/policy/SoftRestrictedPermissionPolicy$2;
Lcom/android/server/policy/SoftRestrictedPermissionPolicy$3;
Lcom/android/server/policy/SoftRestrictedPermissionPolicy;
Lcom/android/server/policy/SplashScreenSurface;
+Lcom/android/server/policy/WakeGestureListener$1;
+Lcom/android/server/policy/WakeGestureListener$2;
Lcom/android/server/policy/WakeGestureListener;
Lcom/android/server/policy/WindowManagerPolicy$DisplayContentInfo;
Lcom/android/server/policy/WindowManagerPolicy$InputConsumer;
@@ -22032,6 +26697,7 @@ Lcom/android/server/policy/keyguard/-$$Lambda$KeyguardServiceDelegate$1$ZQ5qG3Em
Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$1;
Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$DrawnListener;
Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardShowDelegate;
+Lcom/android/server/policy/keyguard/KeyguardServiceDelegate$KeyguardState;
Lcom/android/server/policy/keyguard/KeyguardServiceDelegate;
Lcom/android/server/policy/keyguard/KeyguardServiceWrapper;
Lcom/android/server/policy/keyguard/KeyguardStateMonitor$StateCallback;
@@ -22042,6 +26708,8 @@ Lcom/android/server/power/-$$Lambda$ThermalManagerService$9JFHCKCwrnUIYoXDsqNamh
Lcom/android/server/power/-$$Lambda$ThermalManagerService$ThermalHal20Wrapper$R9S8YWn8x1F3V2TOvXtmky1V44Q;
Lcom/android/server/power/-$$Lambda$ThermalManagerService$ZPQKzo9ZjU-hL4QYH693hWuTqjk;
Lcom/android/server/power/-$$Lambda$ThermalManagerService$x5obtNvJKZxnpguOiQsFBDmBZ4k;
+Lcom/android/server/power/AttentionDetector$1;
+Lcom/android/server/power/AttentionDetector$UserSwitchObserver;
Lcom/android/server/power/AttentionDetector;
Lcom/android/server/power/InattentiveSleepWarningController;
Lcom/android/server/power/Notifier$1;
@@ -22049,6 +26717,7 @@ Lcom/android/server/power/Notifier$2;
Lcom/android/server/power/Notifier$3;
Lcom/android/server/power/Notifier$4;
Lcom/android/server/power/Notifier$5;
+Lcom/android/server/power/Notifier$6;
Lcom/android/server/power/Notifier$7;
Lcom/android/server/power/Notifier$NotifierHandler;
Lcom/android/server/power/Notifier;
@@ -22057,6 +26726,7 @@ Lcom/android/server/power/PowerManagerService$4;
Lcom/android/server/power/PowerManagerService$BatteryReceiver;
Lcom/android/server/power/PowerManagerService$BinderService;
Lcom/android/server/power/PowerManagerService$Constants;
+Lcom/android/server/power/PowerManagerService$DockReceiver;
Lcom/android/server/power/PowerManagerService$DreamReceiver;
Lcom/android/server/power/PowerManagerService$ForegroundProfileObserver;
Lcom/android/server/power/PowerManagerService$Injector$1;
@@ -22067,6 +26737,7 @@ Lcom/android/server/power/PowerManagerService$PowerManagerHandler;
Lcom/android/server/power/PowerManagerService$ProfilePowerState;
Lcom/android/server/power/PowerManagerService$SettingsObserver;
Lcom/android/server/power/PowerManagerService$SuspendBlockerImpl;
+Lcom/android/server/power/PowerManagerService$UidState;
Lcom/android/server/power/PowerManagerService$UserSwitchedReceiver;
Lcom/android/server/power/PowerManagerService$WakeLock;
Lcom/android/server/power/PowerManagerService;
@@ -22075,6 +26746,7 @@ Lcom/android/server/power/SystemPropertiesWrapper;
Lcom/android/server/power/ThermalManagerService$1;
Lcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper$1;
Lcom/android/server/power/ThermalManagerService$ThermalHal20Wrapper;
+Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper$DeathRecipient;
Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper$TemperatureChangedCallback;
Lcom/android/server/power/ThermalManagerService$ThermalHalWrapper;
Lcom/android/server/power/ThermalManagerService;
@@ -22083,7 +26755,6 @@ Lcom/android/server/power/WirelessChargerDetector$2;
Lcom/android/server/power/WirelessChargerDetector;
Lcom/android/server/power/batterysaver/-$$Lambda$BatterySaverPolicy$rfw31Sb8JX1OVD2rGHGtCXyfop8;
Lcom/android/server/power/batterysaver/-$$Lambda$BatterySaverStateMachine$SSfmWJrD4RBoVg8A8loZrS-jhAo;
-Lcom/android/server/power/batterysaver/-$$Lambda$BatterySaverStateMachine$WGmfDqFGirqPfth6R7MtcSK-Gvs;
Lcom/android/server/power/batterysaver/-$$Lambda$BatterySaverStateMachine$fEidyt_9TXlXBpF6D2lhOOrfOC4;
Lcom/android/server/power/batterysaver/-$$Lambda$FileUpdater$NUmipjKCJwbgmFbIcGS3uaz3QFk;
Lcom/android/server/power/batterysaver/BatterySaverController$1;
@@ -22101,6 +26772,7 @@ Lcom/android/server/power/batterysaver/BatterySavingStats;
Lcom/android/server/power/batterysaver/CpuFrequencies;
Lcom/android/server/power/batterysaver/FileUpdater;
Lcom/android/server/print/-$$Lambda$UserState$LdWYUAKz4cbWqoxOD4oZ_ZslKdg;
+Lcom/android/server/print/PrintManagerService$PrintManagerImpl$1;
Lcom/android/server/print/PrintManagerService$PrintManagerImpl$2;
Lcom/android/server/print/PrintManagerService$PrintManagerImpl$3;
Lcom/android/server/print/PrintManagerService$PrintManagerImpl;
@@ -22114,8 +26786,13 @@ Lcom/android/server/print/RemotePrintSpooler$PrintSpoolerClient;
Lcom/android/server/print/RemotePrintSpooler;
Lcom/android/server/print/UserState$PrintJobForAppCache;
Lcom/android/server/print/UserState;
+Lcom/android/server/protolog/-$$Lambda$ProtoLogImpl$W1-9aFv3AkmuxF_FKhP3IYl2IMA;
+Lcom/android/server/protolog/-$$Lambda$QtQzaT3jZ03CdC3RGYitrH7aUYo;
Lcom/android/server/protolog/ProtoLog$Cache;
+Lcom/android/server/protolog/ProtoLogImpl$1;
+Lcom/android/server/protolog/ProtoLogImpl$LogLevel;
Lcom/android/server/protolog/ProtoLogImpl;
+Lcom/android/server/protolog/ProtoLogViewerConfigReader;
Lcom/android/server/protolog/common/IProtoLogGroup;
Lcom/android/server/recoverysystem/RecoverySystemService$Injector;
Lcom/android/server/recoverysystem/RecoverySystemService$Lifecycle;
@@ -22123,9 +26800,13 @@ Lcom/android/server/recoverysystem/RecoverySystemService;
Lcom/android/server/restrictions/RestrictionsManagerService$RestrictionsManagerImpl;
Lcom/android/server/restrictions/RestrictionsManagerService;
Lcom/android/server/role/-$$Lambda$RoleUserState$e8W_Zaq_FyocW_DX1qcbN0ld0co;
+Lcom/android/server/role/RoleManagerInternal;
+Lcom/android/server/role/RoleManagerService$1;
Lcom/android/server/role/RoleManagerService$2;
Lcom/android/server/role/RoleManagerService$DefaultBrowserProvider;
+Lcom/android/server/role/RoleManagerService$DefaultDialerProvider;
Lcom/android/server/role/RoleManagerService$DefaultHomeProvider;
+Lcom/android/server/role/RoleManagerService$Internal;
Lcom/android/server/role/RoleManagerService$RoleHoldersResolver;
Lcom/android/server/role/RoleManagerService$Stub;
Lcom/android/server/role/RoleManagerService;
@@ -22135,11 +26816,15 @@ Lcom/android/server/rollback/-$$Lambda$RollbackManagerServiceImpl$5VimxC3UlEV_Iz
Lcom/android/server/rollback/AppDataRollbackHelper;
Lcom/android/server/rollback/RollbackManagerService;
Lcom/android/server/rollback/RollbackManagerServiceImpl$1;
+Lcom/android/server/rollback/RollbackManagerServiceImpl$2;
Lcom/android/server/rollback/RollbackManagerServiceImpl$3;
+Lcom/android/server/rollback/RollbackManagerServiceImpl$4;
+Lcom/android/server/rollback/RollbackManagerServiceImpl$5;
Lcom/android/server/rollback/RollbackManagerServiceImpl$SessionCallback;
Lcom/android/server/rollback/RollbackManagerServiceImpl;
Lcom/android/server/rollback/RollbackPackageHealthObserver;
Lcom/android/server/rollback/RollbackStore;
+Lcom/android/server/search/SearchManagerService$GlobalSearchProviderObserver;
Lcom/android/server/search/SearchManagerService$Lifecycle$1;
Lcom/android/server/search/SearchManagerService$Lifecycle;
Lcom/android/server/search/SearchManagerService$MyPackageMonitor;
@@ -22193,12 +26878,14 @@ Lcom/android/server/soundtrigger/SoundTriggerHelper$MyCallStateListener;
Lcom/android/server/soundtrigger/SoundTriggerHelper$PowerSaveModeListener;
Lcom/android/server/soundtrigger/SoundTriggerHelper;
Lcom/android/server/soundtrigger/SoundTriggerInternal;
+Lcom/android/server/soundtrigger/SoundTriggerLogger;
Lcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService;
Lcom/android/server/soundtrigger/SoundTriggerService$NumOps;
Lcom/android/server/soundtrigger/SoundTriggerService$Operation$ExecuteOp;
Lcom/android/server/soundtrigger/SoundTriggerService$Operation;
Lcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService$1;
Lcom/android/server/soundtrigger/SoundTriggerService$RemoteSoundTriggerDetectionService;
+Lcom/android/server/soundtrigger/SoundTriggerService$SoundModelStatTracker;
Lcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerServiceStub;
Lcom/android/server/soundtrigger/SoundTriggerService;
Lcom/android/server/statusbar/-$$Lambda$StatusBarManagerService$dQguzfF4tEgBOj3Pr8MpGRN8HT0;
@@ -22222,6 +26909,7 @@ Lcom/android/server/storage/DeviceStorageMonitorInternal;
Lcom/android/server/storage/DeviceStorageMonitorService$1;
Lcom/android/server/storage/DeviceStorageMonitorService$2;
Lcom/android/server/storage/DeviceStorageMonitorService$3;
+Lcom/android/server/storage/DeviceStorageMonitorService$CacheFileDeletedObserver;
Lcom/android/server/storage/DeviceStorageMonitorService$State;
Lcom/android/server/storage/DeviceStorageMonitorService;
Lcom/android/server/storage/DiskStatsFileLogger;
@@ -22229,10 +26917,21 @@ Lcom/android/server/storage/DiskStatsLoggingService$LogRunnable;
Lcom/android/server/storage/DiskStatsLoggingService;
Lcom/android/server/storage/FileCollector$MeasurementResult;
Lcom/android/server/storage/FileCollector;
+Lcom/android/server/storage/StorageSessionController$ExternalStorageServiceException;
+Lcom/android/server/storage/StorageSessionController;
+Lcom/android/server/systemcaptions/SystemCaptionsManagerService;
+Lcom/android/server/telecom/-$$Lambda$TelecomLoaderService$4O6PYSHBsC0Q5H-Y3LkvD32Vcjk;
+Lcom/android/server/telecom/-$$Lambda$TelecomLoaderService$Dg9me3bEFl3t0NGOPYwXIoF34FY;
+Lcom/android/server/telecom/-$$Lambda$TelecomLoaderService$jGqhqH8bl_lWotJlrzraXplioIw;
+Lcom/android/server/telecom/-$$Lambda$TelecomLoaderService$v_RQMbGOOwc6kjxGSNUrOugH8pw;
+Lcom/android/server/telecom/TelecomLoaderService$1;
Lcom/android/server/telecom/TelecomLoaderService$TelecomServiceConnection;
Lcom/android/server/telecom/TelecomLoaderService;
+Lcom/android/server/testharness/TestHarnessModeService$1;
+Lcom/android/server/testharness/TestHarnessModeService$SetUpTestHarnessModeException;
Lcom/android/server/testharness/TestHarnessModeService;
Lcom/android/server/textclassifier/TextClassificationManagerService$Lifecycle;
+Lcom/android/server/textclassifier/TextClassificationManagerService$TextClassifierSettingsListener;
Lcom/android/server/textclassifier/TextClassificationManagerService$UserState$TextClassifierServiceConnection;
Lcom/android/server/textclassifier/TextClassificationManagerService$UserState;
Lcom/android/server/textclassifier/TextClassificationManagerService;
@@ -22248,12 +26947,19 @@ Lcom/android/server/textservices/TextServicesManagerService$SpellCheckerBindGrou
Lcom/android/server/textservices/TextServicesManagerService$TextServicesData;
Lcom/android/server/textservices/TextServicesManagerService$TextServicesMonitor;
Lcom/android/server/textservices/TextServicesManagerService;
-Lcom/android/server/timedetector/SimpleTimeDetectorStrategy;
+Lcom/android/server/timedetector/TimeDetectorService$1;
Lcom/android/server/timedetector/TimeDetectorService$Lifecycle;
Lcom/android/server/timedetector/TimeDetectorService;
Lcom/android/server/timedetector/TimeDetectorStrategy$Callback;
Lcom/android/server/timedetector/TimeDetectorStrategy;
Lcom/android/server/timedetector/TimeDetectorStrategyCallbackImpl;
+Lcom/android/server/timedetector/TimeDetectorStrategyImpl;
+Lcom/android/server/timezonedetector/TimeZoneDetectorCallbackImpl;
+Lcom/android/server/timezonedetector/TimeZoneDetectorService$1;
+Lcom/android/server/timezonedetector/TimeZoneDetectorService$Lifecycle;
+Lcom/android/server/timezonedetector/TimeZoneDetectorService;
+Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy$Callback;
+Lcom/android/server/timezonedetector/TimeZoneDetectorStrategy;
Lcom/android/server/trust/-$$Lambda$TrustManagerService$1$98HKBkg-C1PLlz_Q1vJz1OJtw4c;
Lcom/android/server/trust/TrustAgentWrapper$2;
Lcom/android/server/trust/TrustAgentWrapper$3;
@@ -22266,6 +26972,7 @@ Lcom/android/server/trust/TrustManagerService$2;
Lcom/android/server/trust/TrustManagerService$3;
Lcom/android/server/trust/TrustManagerService$AgentInfo;
Lcom/android/server/trust/TrustManagerService$Receiver;
+Lcom/android/server/trust/TrustManagerService$SettingsAttrs;
Lcom/android/server/trust/TrustManagerService$SettingsObserver;
Lcom/android/server/trust/TrustManagerService$StrongAuthTracker;
Lcom/android/server/trust/TrustManagerService$TrustTimeoutAlarmListener;
@@ -22288,6 +26995,7 @@ Lcom/android/server/uri/UriPermission;
Lcom/android/server/uri/UriPermissionOwner$ExternalToken;
Lcom/android/server/uri/UriPermissionOwner;
Lcom/android/server/usage/-$$Lambda$UserUsageStatsService$wWX7s9XZT5O4B7JcG_IB_VcPI9s;
+Lcom/android/server/usage/AppTimeLimitController$Lock;
Lcom/android/server/usage/AppTimeLimitController$MyHandler;
Lcom/android/server/usage/AppTimeLimitController$ObserverAppData;
Lcom/android/server/usage/AppTimeLimitController$SessionUsageGroup;
@@ -22312,6 +27020,7 @@ Lcom/android/server/usage/UsageStatsService$3;
Lcom/android/server/usage/UsageStatsService$BinderService;
Lcom/android/server/usage/UsageStatsService$H;
Lcom/android/server/usage/UsageStatsService$LocalService;
+Lcom/android/server/usage/UsageStatsService$MyPackageMonitor;
Lcom/android/server/usage/UsageStatsService$UserActionsReceiver;
Lcom/android/server/usage/UsageStatsService;
Lcom/android/server/usage/UserUsageStatsService$1;
@@ -22324,26 +27033,36 @@ Lcom/android/server/usage/UserUsageStatsService$StatsUpdatedListener;
Lcom/android/server/usage/UserUsageStatsService;
Lcom/android/server/usb/-$$Lambda$UsbHostManager$XT3F5aQci4H6VWSBYBQQNSzpnvs;
Lcom/android/server/usb/-$$Lambda$UsbPortManager$FUqGOOupcl6RrRkZBk-BnrRQyPI;
+Lcom/android/server/usb/-$$Lambda$UsbProfileGroupSettingsManager$IQKTzU0q3lyaW9nLL_sbxJPW8ME;
+Lcom/android/server/usb/MtpNotificationManager$OnOpenInAppListener;
+Lcom/android/server/usb/MtpNotificationManager$Receiver;
Lcom/android/server/usb/MtpNotificationManager;
Lcom/android/server/usb/UsbAlsaDevice;
Lcom/android/server/usb/UsbAlsaJackDetector;
+Lcom/android/server/usb/UsbAlsaManager$BlackListEntry;
Lcom/android/server/usb/UsbAlsaManager;
Lcom/android/server/usb/UsbDeviceManager$1;
Lcom/android/server/usb/UsbDeviceManager$2;
Lcom/android/server/usb/UsbDeviceManager$3;
Lcom/android/server/usb/UsbDeviceManager$4;
+Lcom/android/server/usb/UsbDeviceManager$UsbHandler$AdbTransport;
Lcom/android/server/usb/UsbDeviceManager$UsbHandler;
Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$ServiceNotification;
Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetCallback;
+Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal$UsbGadgetDeathRecipient;
Lcom/android/server/usb/UsbDeviceManager$UsbHandlerHal;
Lcom/android/server/usb/UsbDeviceManager$UsbUEventObserver;
Lcom/android/server/usb/UsbDeviceManager;
+Lcom/android/server/usb/UsbHandlerManager;
Lcom/android/server/usb/UsbHostManager;
Lcom/android/server/usb/UsbMidiDevice;
+Lcom/android/server/usb/UsbPermissionManager;
Lcom/android/server/usb/UsbPortManager$1;
+Lcom/android/server/usb/UsbPortManager$DeathRecipient;
Lcom/android/server/usb/UsbPortManager$HALCallback;
Lcom/android/server/usb/UsbPortManager$PortInfo;
Lcom/android/server/usb/UsbPortManager$RawPortInfo$1;
+Lcom/android/server/usb/UsbPortManager$RawPortInfo;
Lcom/android/server/usb/UsbPortManager$ServiceNotification;
Lcom/android/server/usb/UsbPortManager;
Lcom/android/server/usb/UsbProfileGroupSettingsManager$MyPackageMonitor;
@@ -22380,9 +27099,12 @@ Lcom/android/server/utils/ManagedApplicationService$BinderChecker;
Lcom/android/server/utils/PriorityDump$PriorityDumper;
Lcom/android/server/utils/PriorityDump;
Lcom/android/server/utils/TimingsTraceAndSlog;
+Lcom/android/server/utils/TraceBuffer;
+Lcom/android/server/utils/UserTokenWatcher$Callback;
Lcom/android/server/utils/UserTokenWatcher;
Lcom/android/server/voiceinteraction/DatabaseHelper;
Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$1;
+Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$LocalService;
Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$2;
Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$RoleObserver;
Lcom/android/server/voiceinteraction/VoiceInteractionManagerService$VoiceInteractionManagerServiceStub$SettingsObserver;
@@ -22408,15 +27130,21 @@ Lcom/android/server/vr/VrManagerService$5;
Lcom/android/server/vr/VrManagerService$LocalService;
Lcom/android/server/vr/VrManagerService$NotificationAccessManager;
Lcom/android/server/vr/VrManagerService;
+Lcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$1tPkxHr3PHUgpfvv03vRyPzY3uM;
Lcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$SxaUJpgTTfzUoz6u3AWuAOQdoNw;
Lcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$87DhM3RJJxRNtgkHmd_gtnGk-z4;
Lcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$NrNkceFJLqjCb8eAxErUhpLd5c8;
+Lcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$QhODF3v-swnwSYvDbeEhU85gOBw;
Lcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$WallpaperConnection$Yk86TTURTI5B9DzxOzMQGDq7aQU;
Lcom/android/server/wallpaper/-$$Lambda$WallpaperManagerService$la7x4YHA-l88Cd6HFTscnLBbKfI;
Lcom/android/server/wallpaper/-$$Lambda$havGP5uMdRgWQrLydPeIOu1qDGE;
Lcom/android/server/wallpaper/IWallpaperManagerService;
Lcom/android/server/wallpaper/WallpaperManagerInternal;
Lcom/android/server/wallpaper/WallpaperManagerService$1;
+Lcom/android/server/wallpaper/WallpaperManagerService$2;
+Lcom/android/server/wallpaper/WallpaperManagerService$3;
+Lcom/android/server/wallpaper/WallpaperManagerService$4;
+Lcom/android/server/wallpaper/WallpaperManagerService$DisplayData;
Lcom/android/server/wallpaper/WallpaperManagerService$Lifecycle;
Lcom/android/server/wallpaper/WallpaperManagerService$LocalService;
Lcom/android/server/wallpaper/WallpaperManagerService$MyPackageMonitor;
@@ -22425,28 +27153,37 @@ Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperConnection;
Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperData;
Lcom/android/server/wallpaper/WallpaperManagerService$WallpaperObserver;
Lcom/android/server/wallpaper/WallpaperManagerService;
+Lcom/android/server/webkit/-$$Lambda$lAUGMGZZth095wGxrAtUYbmlIJY;
+Lcom/android/server/webkit/SystemImpl$LazyHolder;
Lcom/android/server/webkit/SystemImpl;
Lcom/android/server/webkit/SystemInterface;
Lcom/android/server/webkit/WebViewUpdateService$1;
Lcom/android/server/webkit/WebViewUpdateService$BinderService;
Lcom/android/server/webkit/WebViewUpdateService;
Lcom/android/server/webkit/WebViewUpdateServiceImpl;
+Lcom/android/server/webkit/WebViewUpdater$ProviderAndPackageInfo;
+Lcom/android/server/webkit/WebViewUpdater$WebViewPackageMissingException;
Lcom/android/server/webkit/WebViewUpdater;
Lcom/android/server/wm/-$$Lambda$-OevXHSXgaSE351ZqRnMoA024MM;
+Lcom/android/server/wm/-$$Lambda$-hxY8aP13MItXHILC9K9vyNQgr4;
Lcom/android/server/wm/-$$Lambda$01bPtngJg5AqEoOWfW3rWfV7MH4;
Lcom/android/server/wm/-$$Lambda$1636dquQO0UvkFayOGf_gceB4iw;
Lcom/android/server/wm/-$$Lambda$1Hjf_Nn5x4aIy9rIBTwVrtrzWFA;
Lcom/android/server/wm/-$$Lambda$2KrtdmjrY7Nagc4IRqzCk9gDuQU;
+Lcom/android/server/wm/-$$Lambda$6P_D-ul93Vzg9xx2hvWUdYrHVXg;
+Lcom/android/server/wm/-$$Lambda$7nuK7cv058ES7c7refBFgc-jagk;
Lcom/android/server/wm/-$$Lambda$99XNq73vh8e4HVH9BuxFhbLxKVY;
Lcom/android/server/wm/-$$Lambda$9vBfnQOmNnsc9WU80IIatZHQGKc;
Lcom/android/server/wm/-$$Lambda$ADNhW0r9Skcs9ezrOGURijI-lyQ;
Lcom/android/server/wm/-$$Lambda$ActivityRecord$YSVwd546vKWMiMYy7MFzg1qRiio;
Lcom/android/server/wm/-$$Lambda$ActivityRecord$YY5kCNb4uWg5W_2lbH3ZOqirP1g;
Lcom/android/server/wm/-$$Lambda$ActivityRecord$tt99EJHW_Nk5qgU9galJBIm5wXg;
-Lcom/android/server/wm/-$$Lambda$ActivityStack$4P0uIgoCSUi6epIgwUfZymXLX2w;
+Lcom/android/server/wm/-$$Lambda$ActivityStack$0bNPw28X3N2biqQIdsnZuX7xaP4;
+Lcom/android/server/wm/-$$Lambda$ActivityStack$FkaZkaRIeozTqSdHkmYZNbNtF1I;
+Lcom/android/server/wm/-$$Lambda$ActivityStack$MbOt7bGpxw9wmjZ8kOCkYcDCqMQ;
+Lcom/android/server/wm/-$$Lambda$ActivityStack$RemoveHistoryRecordsForApp$8j2ZFLAwkXnwDAxiTFN7mMDLhjU;
Lcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$0u1RcpeZ6m0BHDGGv8EXroS3KyE;
Lcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$28Zuzbi6usdgbDcOi8hrJg6nZO0;
-Lcom/android/server/wm/-$$Lambda$ActivityStackSupervisor$PHIj4FpzoLIwUTmMRMOYA9us0rc;
Lcom/android/server/wm/-$$Lambda$ActivityStartController$6bTAPCVeDq_D4Y53Y5WNfMK4xBE;
Lcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$-xFyZDUKMraVkermSJGXQdN3oJ4;
Lcom/android/server/wm/-$$Lambda$ActivityTaskManagerService$3DTHgCAeEd5OOF7ACeXoCk8mmrQ;
@@ -22478,17 +27215,23 @@ Lcom/android/server/wm/-$$Lambda$DisplayContent$JibsaX4YnJd0ta_wiDDdSp-PjQk;
Lcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$FI_O7m2qEDfIRZef3D32AxG-rcs;
Lcom/android/server/wm/-$$Lambda$DisplayContent$NonAppWindowContainers$nqCymC3xR9b3qaeohnnJJpSiajc;
Lcom/android/server/wm/-$$Lambda$DisplayContent$SeHNTr4WUVpGmQniHULUi1ST7k8;
+Lcom/android/server/wm/-$$Lambda$DisplayContent$TaskStackContainers$5H3Kr211kTMg-C28tapuQGzkwN8;
Lcom/android/server/wm/-$$Lambda$DisplayContent$TaskStackContainers$rQnI0Y8R9ptQ09cGHwbCHDiG2FY;
Lcom/android/server/wm/-$$Lambda$DisplayContent$a4EkCBfpZNIl1xfYgm2ktgndF8w;
Lcom/android/server/wm/-$$Lambda$DisplayContent$eJsj3GR1HdCnOJrZ8_oaLP52jg0;
Lcom/android/server/wm/-$$Lambda$DisplayContent$fiC19lMy-d_-rvza7hhOSw6bOM8;
Lcom/android/server/wm/-$$Lambda$DisplayContent$qT01Aq6xt_ZOs86A1yDQe-qmPFQ;
+Lcom/android/server/wm/-$$Lambda$DisplayContent$sYPOy6TL-QiWuU_jcEHYn4HeFnQ;
+Lcom/android/server/wm/-$$Lambda$DisplayContent$xDPfsCNl85pDNmgsKEQVqdUehiA;
Lcom/android/server/wm/-$$Lambda$DisplayPolicy$3MnyIKSHFLqhfUifWEQPNp_-J6A;
Lcom/android/server/wm/-$$Lambda$DisplayPolicy$IOyP8YVRG92tn9u1muYWZgBbgc0;
Lcom/android/server/wm/-$$Lambda$DisplayPolicy$J8sIwXJvltUaPM3jEGO948Bx9ig;
Lcom/android/server/wm/-$$Lambda$DisplayPolicy$LkHee4mchNXMwNt7HLgsMzHofeE;
Lcom/android/server/wm/-$$Lambda$DisplayPolicy$QDPgWUhyEOraWnf6a-u4mTBttdw;
+Lcom/android/server/wm/-$$Lambda$DisplayPolicy$_FsvHpVUi-gbWmSpT009cJNNmgM;
+Lcom/android/server/wm/-$$Lambda$DisplayPolicy$j3sY1jb4WFF_F3wOT9D2fB2mOts;
Lcom/android/server/wm/-$$Lambda$DragState$-yUFIMrhYYccZ0gwd6eVcpAE93o;
+Lcom/android/server/wm/-$$Lambda$EnsureActivitiesVisibleHelper$uAeEWwx5d0xk6FKOvvR9CXZS6Bg;
Lcom/android/server/wm/-$$Lambda$HLz_SQuxQoIiuaK5SB5xJ6FnoxY;
Lcom/android/server/wm/-$$Lambda$InsetsStateController$pXoYGy4X5aPw1QFi0iIWKiTMlDg;
Lcom/android/server/wm/-$$Lambda$InsetsStateController$sIYEJIR4ztgffCLMi5Z1RvdxyYs;
@@ -22498,6 +27241,7 @@ Lcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$KukKmVpn5W_1xSV6Dnp8
Lcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$QcawcFcJtEX4EhYptq_Vb4j368Y;
Lcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$UGY1OclnLIQLMEL9B55qjERFf4o;
Lcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$lAGPwfsXJvBWsyG2rbEfo3sTv34;
+Lcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$pWUDt4Ot3BWLJOTAhXMkkhHUhpc;
Lcom/android/server/wm/-$$Lambda$LaunchObserverRegistryImpl$veRn_GhgLZLlOHOJ0ZYT6KcfYqo;
Lcom/android/server/wm/-$$Lambda$LocalAnimationAdapter$X--EomqUvw4qy89IeeTFTH7aCMo;
Lcom/android/server/wm/-$$Lambda$OPdXuZQLetMnocdH6XV32JbNQ3I;
@@ -22508,6 +27252,8 @@ Lcom/android/server/wm/-$$Lambda$RecentTasks$eaeTjEEoVsLAhHFPccdtbbB3Lrk;
Lcom/android/server/wm/-$$Lambda$RemoteAnimationController$74uuXaM2TqjkzYi0b8LqJdbycxA;
Lcom/android/server/wm/-$$Lambda$RemoteAnimationController$dP8qDptNigoqhzVtIudsX5naGu4;
Lcom/android/server/wm/-$$Lambda$RemoteAnimationController$uQS8vaPKQ-E3x_9G8NCxPQmw1fw;
+Lcom/android/server/wm/-$$Lambda$RootActivityContainer$eTBwQBLMAzyK1I2vbgH_wbrf5n0;
+Lcom/android/server/wm/-$$Lambda$RootActivityContainer$m1XaUaXYDseEoG-rccxbUydXgO8;
Lcom/android/server/wm/-$$Lambda$RootWindowContainer$7XcqfZjQLAbjpIyed3iDnVtZro4;
Lcom/android/server/wm/-$$Lambda$RootWindowContainer$IlD1lD49ui7gQmU2NkxgnXIhlOo;
Lcom/android/server/wm/-$$Lambda$RootWindowContainer$Vvv8jzH2oSE9-eakZwTuKd5NpsU;
@@ -22527,6 +27273,7 @@ Lcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$we7K92eAl3biB_bzyqbv5xCm
Lcom/android/server/wm/-$$Lambda$SurfaceAnimationRunner$xDyZdsMrcbp64p4BQmOGPvVnSWA;
Lcom/android/server/wm/-$$Lambda$SurfaceAnimator$M9kRDTUpVS03LTqe-QLQz3DnMhk;
Lcom/android/server/wm/-$$Lambda$SurfaceAnimator$vdRZk66hQVbQCvVXEaQCT1kVmFc;
+Lcom/android/server/wm/-$$Lambda$SystemGesturesPointerEventListener$9Iw39fjTtjXO5kacgrpdxfxjuSY;
Lcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$0m_-qN9QkcgkoWun2Biw8le4l1Y;
Lcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$1ziXgnyLi0gQjqMGJAbSzs0-dmE;
Lcom/android/server/wm/-$$Lambda$TaskChangeNotificationController$9ngbiJ2r3x2ASHwN59tUFO2-2BQ;
@@ -22563,7 +27310,15 @@ Lcom/android/server/wm/-$$Lambda$WallpaperController$Gy7houdzET4VmpY0QJ2v-NX1b7k
Lcom/android/server/wm/-$$Lambda$WindowAnimationSpec$jKE7Phq2DESkeBondpaNPBLn6Cs;
Lcom/android/server/wm/-$$Lambda$WindowAnimator$U3Fu5_RzEyNo8Jt6zTb2ozdXiqM;
Lcom/android/server/wm/-$$Lambda$WindowAnimator$ddXU8gK8rmDqri0OZVMNa3Y4GHk;
+Lcom/android/server/wm/-$$Lambda$WindowContainer$lJjjxJS1wJFikrxN0jFMgNna43g;
+Lcom/android/server/wm/-$$Lambda$WindowManagerConstants$H0Vnr9H2xLD72_22unzb68d1fSM;
+Lcom/android/server/wm/-$$Lambda$WindowManagerConstants$YOsWod8qOtbBnduZqPrYHSwyJ5E;
+Lcom/android/server/wm/-$$Lambda$WindowManagerConstants$vqhvZbTPHnj84vQKH9wjAhgVP44;
+Lcom/android/server/wm/-$$Lambda$WindowManagerService$-84S7IuSlM65nKgepHJEvVFHdC8;
+Lcom/android/server/wm/-$$Lambda$WindowManagerService$pUqz7rqEpzd4geO4TXsDyOVZCOc;
+Lcom/android/server/wm/-$$Lambda$WindowManagerService$qCWPyJrU0wwX4tP-_QpfmersCVc;
Lcom/android/server/wm/-$$Lambda$WindowToken$tFLHn4S6WuSXW1gp1kvT_sp7WC0;
+Lcom/android/server/wm/-$$Lambda$WindowTracing$lz89IHzR4nKO_ZtXtwyNGkRleMY;
Lcom/android/server/wm/-$$Lambda$Z9QEXZevRsInPMEXX0zFWg8YGMQ;
Lcom/android/server/wm/-$$Lambda$_jL5KNK44AQYPj1d8Hd3FYO0W-M;
Lcom/android/server/wm/-$$Lambda$cJE-iQ28Rv-ThCcuht9wXeFzPgo;
@@ -22582,8 +27337,6 @@ Lcom/android/server/wm/-$$Lambda$zP5AObb0-v-Zzwr-v8NXOg4Yt1c;
Lcom/android/server/wm/-$$Lambda$zwLNi4Hz7werGBGptK8eYRpBWpw;
Lcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver$MyHandler;
Lcom/android/server/wm/AccessibilityController$WindowsForAccessibilityObserver;
-Lcom/android/server/wm/ActivityDisplay$OnStackOrderChangedListener;
-Lcom/android/server/wm/ActivityDisplay;
Lcom/android/server/wm/ActivityMetricsLaunchObserver;
Lcom/android/server/wm/ActivityMetricsLaunchObserverRegistry;
Lcom/android/server/wm/ActivityMetricsLogger;
@@ -22593,8 +27346,12 @@ Lcom/android/server/wm/ActivityRecord;
Lcom/android/server/wm/ActivityServiceConnectionsHolder;
Lcom/android/server/wm/ActivityStack$ActivityStackHandler;
Lcom/android/server/wm/ActivityStack$ActivityState;
+Lcom/android/server/wm/ActivityStack$CheckBehindFullscreenActivityHelper;
+Lcom/android/server/wm/ActivityStack$EnsureVisibleActivitiesConfigHelper;
+Lcom/android/server/wm/ActivityStack$RemoveHistoryRecordsForApp;
Lcom/android/server/wm/ActivityStack;
Lcom/android/server/wm/ActivityStackSupervisor$ActivityStackSupervisorHandler;
+Lcom/android/server/wm/ActivityStackSupervisor$MoveTaskToFullscreenHelper;
Lcom/android/server/wm/ActivityStackSupervisor$PendingActivityLaunch;
Lcom/android/server/wm/ActivityStackSupervisor;
Lcom/android/server/wm/ActivityStartController$StartHandler;
@@ -22620,6 +27377,8 @@ Lcom/android/server/wm/AlertWindowNotification;
Lcom/android/server/wm/AnimatingActivityRegistry;
Lcom/android/server/wm/AnimationAdapter;
Lcom/android/server/wm/AppTaskImpl;
+Lcom/android/server/wm/AppTransition$1;
+Lcom/android/server/wm/AppTransition$2;
Lcom/android/server/wm/AppTransition;
Lcom/android/server/wm/AppTransitionController;
Lcom/android/server/wm/AppWarnings$ConfigHandler;
@@ -22637,6 +27396,7 @@ Lcom/android/server/wm/BoundsAnimationTarget;
Lcom/android/server/wm/ClientLifecycleManager;
Lcom/android/server/wm/CompatModePackages$CompatHandler;
Lcom/android/server/wm/CompatModePackages;
+Lcom/android/server/wm/ConfigurationContainer$RemoteToken;
Lcom/android/server/wm/ConfigurationContainer;
Lcom/android/server/wm/ConfigurationContainerListener;
Lcom/android/server/wm/Dimmer$AlphaAnimationSpec;
@@ -22645,28 +27405,47 @@ Lcom/android/server/wm/Dimmer$DimState;
Lcom/android/server/wm/Dimmer$SurfaceAnimatorStarter;
Lcom/android/server/wm/Dimmer;
Lcom/android/server/wm/DisplayContent$AboveAppWindowContainers;
+Lcom/android/server/wm/DisplayContent$ApplySurfaceChangesTransactionState;
Lcom/android/server/wm/DisplayContent$DisplayChildWindowContainer;
Lcom/android/server/wm/DisplayContent$NonAppWindowContainers;
+Lcom/android/server/wm/DisplayContent$OnStackOrderChangedListener;
+Lcom/android/server/wm/DisplayContent$TaskForResizePointSearchResult;
Lcom/android/server/wm/DisplayContent$TaskStackContainers;
+Lcom/android/server/wm/DisplayContent$WindowContainers;
Lcom/android/server/wm/DisplayContent;
Lcom/android/server/wm/DisplayFrames;
Lcom/android/server/wm/DisplayPolicy$1;
Lcom/android/server/wm/DisplayPolicy$2;
+Lcom/android/server/wm/DisplayPolicy$3;
+Lcom/android/server/wm/DisplayPolicy$4;
Lcom/android/server/wm/DisplayPolicy$PolicyHandler;
Lcom/android/server/wm/DisplayPolicy;
+Lcom/android/server/wm/DisplayRotation$1;
+Lcom/android/server/wm/DisplayRotation$2;
Lcom/android/server/wm/DisplayRotation$OrientationListener$UpdateRunnable;
Lcom/android/server/wm/DisplayRotation$OrientationListener;
+Lcom/android/server/wm/DisplayRotation$RotationAnimationPair;
Lcom/android/server/wm/DisplayRotation$SettingsObserver;
Lcom/android/server/wm/DisplayRotation;
+Lcom/android/server/wm/DisplayWindowListenerController;
+Lcom/android/server/wm/DisplayWindowSettings$AtomicFileStorage;
+Lcom/android/server/wm/DisplayWindowSettings$Entry;
+Lcom/android/server/wm/DisplayWindowSettings$SettingPersister;
Lcom/android/server/wm/DisplayWindowSettings;
Lcom/android/server/wm/DockedStackDividerController;
+Lcom/android/server/wm/DragDropController$1;
Lcom/android/server/wm/DragDropController$DragHandler;
Lcom/android/server/wm/DragDropController;
Lcom/android/server/wm/DragInputEventReceiver;
Lcom/android/server/wm/DragState$InputInterceptor;
Lcom/android/server/wm/DragState;
+Lcom/android/server/wm/EmbeddedWindowController;
+Lcom/android/server/wm/EnsureActivitiesVisibleHelper;
+Lcom/android/server/wm/EventLogTags;
+Lcom/android/server/wm/HighRefreshRateBlacklist$OnPropertiesChangedListener;
Lcom/android/server/wm/HighRefreshRateBlacklist;
Lcom/android/server/wm/ImeInsetsSourceProvider;
+Lcom/android/server/wm/ImmersiveModeConfirmation$1;
Lcom/android/server/wm/ImmersiveModeConfirmation$H;
Lcom/android/server/wm/ImmersiveModeConfirmation;
Lcom/android/server/wm/InputConsumerImpl;
@@ -22676,11 +27455,14 @@ Lcom/android/server/wm/InputMonitor$UpdateInputForAllWindowsConsumer;
Lcom/android/server/wm/InputMonitor$UpdateInputWindows;
Lcom/android/server/wm/InputMonitor;
Lcom/android/server/wm/InsetsControlTarget;
+Lcom/android/server/wm/InsetsPolicy$BarWindow;
+Lcom/android/server/wm/InsetsPolicy$TransientControlTarget;
Lcom/android/server/wm/InsetsPolicy;
Lcom/android/server/wm/InsetsSourceProvider;
Lcom/android/server/wm/InsetsStateController;
Lcom/android/server/wm/KeyguardController$KeyguardDisplayState;
Lcom/android/server/wm/KeyguardController;
+Lcom/android/server/wm/KeyguardDisableHandler$1;
Lcom/android/server/wm/KeyguardDisableHandler$2;
Lcom/android/server/wm/KeyguardDisableHandler$Injector;
Lcom/android/server/wm/KeyguardDisableHandler;
@@ -22707,6 +27489,7 @@ Lcom/android/server/wm/PersisterQueue$LazyTaskWriterThread;
Lcom/android/server/wm/PersisterQueue$Listener;
Lcom/android/server/wm/PersisterQueue$WriteQueueItem;
Lcom/android/server/wm/PersisterQueue;
+Lcom/android/server/wm/PinnedStackController$PinnedStackControllerCallback;
Lcom/android/server/wm/PinnedStackController$PinnedStackListenerDeathHandler;
Lcom/android/server/wm/PinnedStackController;
Lcom/android/server/wm/PointerEventDispatcher;
@@ -22727,6 +27510,7 @@ Lcom/android/server/wm/RemoteAnimationController$FinishedCallback;
Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationAdapterWrapper;
Lcom/android/server/wm/RemoteAnimationController$RemoteAnimationRecord;
Lcom/android/server/wm/RemoteAnimationController;
+Lcom/android/server/wm/ResetTargetTaskHelper;
Lcom/android/server/wm/RootActivityContainer$FindTaskResult;
Lcom/android/server/wm/RootActivityContainer$FinishDisabledPackageActivitiesHelper;
Lcom/android/server/wm/RootActivityContainer$SleepTokenImpl;
@@ -22750,6 +27534,7 @@ Lcom/android/server/wm/SurfaceAnimationThread;
Lcom/android/server/wm/SurfaceAnimator$Animatable;
Lcom/android/server/wm/SurfaceAnimator$OnAnimationFinishedCallback;
Lcom/android/server/wm/SurfaceAnimator;
+Lcom/android/server/wm/SystemGesturesPointerEventListener$1;
Lcom/android/server/wm/SystemGesturesPointerEventListener$Callbacks;
Lcom/android/server/wm/SystemGesturesPointerEventListener$FlingGestureDetector;
Lcom/android/server/wm/SystemGesturesPointerEventListener;
@@ -22783,18 +27568,23 @@ Lcom/android/server/wm/UnknownAppVisibilityController;
Lcom/android/server/wm/VrController$1;
Lcom/android/server/wm/VrController;
Lcom/android/server/wm/WallpaperAnimationAdapter;
+Lcom/android/server/wm/WallpaperController$FindWallpaperTargetResult;
Lcom/android/server/wm/WallpaperController;
Lcom/android/server/wm/WallpaperVisibilityListeners;
Lcom/android/server/wm/WallpaperWindowToken;
Lcom/android/server/wm/WindowAnimationSpec;
+Lcom/android/server/wm/WindowAnimator$DisplayContentsAnimator;
Lcom/android/server/wm/WindowAnimator;
Lcom/android/server/wm/WindowContainer$ForAllWindowsConsumerWrapper;
+Lcom/android/server/wm/WindowContainer$PreAssignChildLayersCallback;
Lcom/android/server/wm/WindowContainer;
Lcom/android/server/wm/WindowFrames;
Lcom/android/server/wm/WindowList;
+Lcom/android/server/wm/WindowManagerConstants;
Lcom/android/server/wm/WindowManagerGlobalLock;
Lcom/android/server/wm/WindowManagerInternal$AppTransitionListener;
Lcom/android/server/wm/WindowManagerInternal$IDragDropCallback;
+Lcom/android/server/wm/WindowManagerInternal$OnHardKeyboardStatusChangeListener;
Lcom/android/server/wm/WindowManagerInternal;
Lcom/android/server/wm/WindowManagerService$10;
Lcom/android/server/wm/WindowManagerService$1;
@@ -22834,22 +27624,32 @@ Lcom/android/server/wm/WindowTracing;
Lcom/android/server/wm/animation/ClipRectLRAnimation;
Lcom/android/server/wm/animation/ClipRectTBAnimation;
Lcom/android/server/wm/utils/CoordinateTransforms;
+Lcom/android/server/wm/utils/DeviceConfigInterface$1;
+Lcom/android/server/wm/utils/DeviceConfigInterface;
Lcom/android/server/wm/utils/DisplayRotationUtil;
Lcom/android/server/wm/utils/InsetUtils;
Lcom/android/server/wm/utils/RotationCache$RotationDependentComputation;
Lcom/android/server/wm/utils/RotationCache;
Lcom/android/server/wm/utils/WmDisplayCutout;
+Lcom/android/timezone/distro/DistroException;
Lcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$6ikxM-3KospNGDidAY7yA-rECHw;
Lcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$B9wq4q5y7qahY6TuLMO_s8nPIwY;
Lcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$AppLaunchObserver$J1AHa-Qs75WQr3stjbN97THbudE;
+Lcom/google/android/startop/iorap/-$$Lambda$IorapForwardingService$miQO-RJhHA7C1W4BujwCS9blXFc;
Lcom/google/android/startop/iorap/AppLaunchEvent$ActivityLaunchFinished;
Lcom/google/android/startop/iorap/AppLaunchEvent$ActivityLaunched;
Lcom/google/android/startop/iorap/AppLaunchEvent$BaseWithActivityRecordData;
Lcom/google/android/startop/iorap/AppLaunchEvent$IntentStarted;
Lcom/google/android/startop/iorap/AppLaunchEvent;
Lcom/google/android/startop/iorap/IIorap$Stub$Proxy;
+Lcom/google/android/startop/iorap/IIorap$Stub;
Lcom/google/android/startop/iorap/IIorap;
+Lcom/google/android/startop/iorap/ITaskListener$Stub;
+Lcom/google/android/startop/iorap/ITaskListener;
+Lcom/google/android/startop/iorap/IorapForwardingService$1;
Lcom/google/android/startop/iorap/IorapForwardingService$AppLaunchObserver;
+Lcom/google/android/startop/iorap/IorapForwardingService$BinderConnectionHandler;
Lcom/google/android/startop/iorap/IorapForwardingService$RemoteRunnable;
+Lcom/google/android/startop/iorap/IorapForwardingService$RemoteTaskListener;
Lcom/google/android/startop/iorap/IorapForwardingService;
Lcom/google/android/startop/iorap/RequestId;
diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
index e28ef0f920e9..1cb9313d9bf9 100644
--- a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
+++ b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java
@@ -154,6 +154,13 @@ final class AutofillManagerServiceImpl
@GuardedBy("mLock")
private FillEventHistory mEventHistory;
+ /**
+ * The last inline augmented autofill selection. Note that we don't log the selection from the
+ * dropdown UI since the service owns the UI in that case.
+ */
+ @GuardedBy("mLock")
+ private FillEventHistory mAugmentedAutofillEventHistory;
+
/** Shared instance, doesn't need to be logged */
private final AutofillCompatState mAutofillCompatState;
@@ -216,7 +223,7 @@ final class AutofillManagerServiceImpl
updateRemoteAugmentedAutofillService();
final ComponentName componentName = RemoteInlineSuggestionRenderService
- .getServiceComponentName(getContext());
+ .getServiceComponentName(getContext(), mUserId);
if (componentName != null) {
mRemoteInlineSuggestionRenderService = new RemoteInlineSuggestionRenderService(
getContext(), componentName, InlineSuggestionRenderService.SERVICE_INTERFACE,
@@ -707,6 +714,13 @@ final class AutofillManagerServiceImpl
}
}
+ void setLastAugmentedAutofillResponse(int sessionId) {
+ synchronized (mLock) {
+ mAugmentedAutofillEventHistory = new FillEventHistory(sessionId, /* clientState= */
+ null);
+ }
+ }
+
/**
* Resets the last fill selection.
*/
@@ -716,6 +730,12 @@ final class AutofillManagerServiceImpl
}
}
+ void resetLastAugmentedAutofillResponse() {
+ synchronized (mLock) {
+ mAugmentedAutofillEventHistory = null;
+ }
+ }
+
@GuardedBy("mLock")
private boolean isValidEventLocked(String method, int sessionId) {
if (mEventHistory == null) {
@@ -798,6 +818,31 @@ final class AutofillManagerServiceImpl
}
}
+ void logAugmentedAutofillSelected(int sessionId, @Nullable String suggestionId) {
+ synchronized (mLock) {
+ if (mAugmentedAutofillEventHistory == null
+ || mAugmentedAutofillEventHistory.getSessionId() != sessionId) {
+ return;
+ }
+ mAugmentedAutofillEventHistory.addEvent(
+ new Event(Event.TYPE_DATASET_SELECTED, suggestionId, null, null, null,
+ null, null, null, null, null, null));
+ }
+ }
+
+ void logAugmentedAutofillShown(int sessionId) {
+ synchronized (mLock) {
+ if (mAugmentedAutofillEventHistory == null
+ || mAugmentedAutofillEventHistory.getSessionId() != sessionId) {
+ return;
+ }
+ mAugmentedAutofillEventHistory.addEvent(
+ new Event(Event.TYPE_DATASETS_SHOWN, null, null, null, null, null,
+ null, null, null, null, null));
+
+ }
+ }
+
/**
* Updates the last fill response when an autofill context is committed.
*/
@@ -881,8 +926,8 @@ final class AutofillManagerServiceImpl
* Gets the fill event history.
*
* @param callingUid The calling uid
- *
- * @return The history or {@code null} if there is none.
+ * @return The history for the autofill or the augmented autofill events depending on the {@code
+ * callingUid}, or {@code null} if there is none.
*/
FillEventHistory getFillEventHistory(int callingUid) {
synchronized (mLock) {
@@ -890,6 +935,10 @@ final class AutofillManagerServiceImpl
&& isCalledByServiceLocked("getFillEventHistory", callingUid)) {
return mEventHistory;
}
+ if (mAugmentedAutofillEventHistory != null && isCalledByAugmentedAutofillServiceLocked(
+ "getFillEventHistory", callingUid)) {
+ return mAugmentedAutofillEventHistory;
+ }
}
return null;
}
@@ -1163,8 +1212,31 @@ final class AutofillManagerServiceImpl
Slog.v(TAG, "getRemoteAugmentedAutofillServiceLocked(): " + componentName);
}
- mRemoteAugmentedAutofillService = new RemoteAugmentedAutofillService(getContext(),
- componentName, mUserId, new RemoteAugmentedAutofillServiceCallbacks() {
+ final RemoteAugmentedAutofillServiceCallbacks callbacks =
+ new RemoteAugmentedAutofillServiceCallbacks() {
+ @Override
+ public void resetLastResponse() {
+ AutofillManagerServiceImpl.this.resetLastAugmentedAutofillResponse();
+ }
+
+ @Override
+ public void setLastResponse(int sessionId) {
+ AutofillManagerServiceImpl.this.setLastAugmentedAutofillResponse(
+ sessionId);
+ }
+
+ @Override
+ public void logAugmentedAutofillShown(int sessionId) {
+ AutofillManagerServiceImpl.this.logAugmentedAutofillShown(sessionId);
+ }
+
+ @Override
+ public void logAugmentedAutofillSelected(int sessionId,
+ String suggestionId) {
+ AutofillManagerServiceImpl.this.logAugmentedAutofillSelected(sessionId,
+ suggestionId);
+ }
+
@Override
public void onServiceDied(@NonNull RemoteAugmentedAutofillService service) {
Slog.w(TAG, "remote augmented autofill service died");
@@ -1175,8 +1247,10 @@ final class AutofillManagerServiceImpl
}
mRemoteAugmentedAutofillService = null;
}
- }, mMaster.isInstantServiceAllowed(), mMaster.verbose,
- mMaster.mAugmentedServiceIdleUnbindTimeoutMs,
+ };
+ mRemoteAugmentedAutofillService = new RemoteAugmentedAutofillService(getContext(),
+ componentName, mUserId, callbacks, mMaster.isInstantServiceAllowed(),
+ mMaster.verbose, mMaster.mAugmentedServiceIdleUnbindTimeoutMs,
mMaster.mAugmentedServiceRequestTimeoutMs);
}
diff --git a/services/autofill/java/com/android/server/autofill/RemoteAugmentedAutofillService.java b/services/autofill/java/com/android/server/autofill/RemoteAugmentedAutofillService.java
index 5fbdd25ea6c6..880c40158114 100644
--- a/services/autofill/java/com/android/server/autofill/RemoteAugmentedAutofillService.java
+++ b/services/autofill/java/com/android/server/autofill/RemoteAugmentedAutofillService.java
@@ -55,6 +55,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.os.IResultReceiver;
import com.android.internal.util.ArrayUtils;
import com.android.internal.view.IInlineSuggestionsResponseCallback;
+import com.android.server.autofill.ui.InlineSuggestionFactory;
import java.util.concurrent.CancellationException;
import java.util.concurrent.TimeUnit;
@@ -69,6 +70,7 @@ final class RemoteAugmentedAutofillService
private final int mIdleUnbindTimeoutMs;
private final int mRequestTimeoutMs;
private final ComponentName mComponentName;
+ private final RemoteAugmentedAutofillServiceCallbacks mCallbacks;
RemoteAugmentedAutofillService(Context context, ComponentName serviceName,
int userId, RemoteAugmentedAutofillServiceCallbacks callbacks,
@@ -81,6 +83,7 @@ final class RemoteAugmentedAutofillService
mIdleUnbindTimeoutMs = idleUnbindTimeoutMs;
mRequestTimeoutMs = requestTimeoutMs;
mComponentName = serviceName;
+ mCallbacks = callbacks;
// Bind right away.
connect();
@@ -142,7 +145,8 @@ final class RemoteAugmentedAutofillService
int taskId, @NonNull ComponentName activityComponent, @NonNull AutofillId focusedId,
@Nullable AutofillValue focusedValue,
@Nullable InlineSuggestionsRequest inlineSuggestionsRequest,
- @Nullable IInlineSuggestionsResponseCallback inlineSuggestionsCallback) {
+ @Nullable IInlineSuggestionsResponseCallback inlineSuggestionsCallback,
+ @NonNull Runnable onErrorCallback) {
long requestTime = SystemClock.elapsedRealtime();
AtomicReference<ICancellationSignal> cancellationRef = new AtomicReference<>();
@@ -160,8 +164,11 @@ final class RemoteAugmentedAutofillService
new IFillCallback.Stub() {
@Override
public void onSuccess(@Nullable Dataset[] inlineSuggestionsData) {
- maybeHandleInlineSuggestions(sessionId, inlineSuggestionsData,
- focusedId, inlineSuggestionsCallback, client);
+ mCallbacks.resetLastResponse();
+ maybeRequestShowInlineSuggestions(sessionId,
+ inlineSuggestionsData, focusedId,
+ inlineSuggestionsCallback, client,
+ onErrorCallback);
requestAutofill.complete(null);
}
@@ -223,20 +230,34 @@ final class RemoteAugmentedAutofillService
});
}
- private void maybeHandleInlineSuggestions(int sessionId,
+ private void maybeRequestShowInlineSuggestions(int sessionId,
@Nullable Dataset[] inlineSuggestionsData, @NonNull AutofillId focusedId,
@Nullable IInlineSuggestionsResponseCallback inlineSuggestionsCallback,
- @NonNull IAutoFillManagerClient client) {
+ @NonNull IAutoFillManagerClient client, @NonNull Runnable onErrorCallback) {
if (ArrayUtils.isEmpty(inlineSuggestionsData) || inlineSuggestionsCallback == null) {
return;
}
+ mCallbacks.setLastResponse(sessionId);
+
try {
inlineSuggestionsCallback.onInlineSuggestionsResponse(
- InlineSuggestionFactory.createAugmentedInlineSuggestionsResponse(sessionId,
- inlineSuggestionsData, focusedId, mContext, client));
+ InlineSuggestionFactory.createAugmentedInlineSuggestionsResponse(
+ inlineSuggestionsData, focusedId, mContext,
+ dataset -> {
+ mCallbacks.logAugmentedAutofillSelected(sessionId,
+ dataset.getId());
+ try {
+ client.autofill(sessionId, dataset.getFieldIds(),
+ dataset.getFieldValues());
+ } catch (RemoteException e) {
+ Slog.w(TAG, "Encounter exception autofilling the values");
+ }
+ }, onErrorCallback));
} catch (RemoteException e) {
Slog.w(TAG, "Exception sending inline suggestions response back to IME.");
}
+
+ mCallbacks.logAugmentedAutofillShown(sessionId);
}
@Override
@@ -254,8 +275,12 @@ final class RemoteAugmentedAutofillService
public interface RemoteAugmentedAutofillServiceCallbacks
extends AbstractRemoteService.VultureCallback<RemoteAugmentedAutofillService> {
- // NOTE: so far we don't need to notify the callback implementation (an inner class on
- // AutofillManagerServiceImpl) of the request results (success, timeouts, etc..), so this
- // callback interface is empty.
+ void resetLastResponse();
+
+ void setLastResponse(int sessionId);
+
+ void logAugmentedAutofillShown(int sessionId);
+
+ void logAugmentedAutofillSelected(int sessionId, @Nullable String suggestionId);
}
}
diff --git a/services/autofill/java/com/android/server/autofill/RemoteInlineSuggestionRenderService.java b/services/autofill/java/com/android/server/autofill/RemoteInlineSuggestionRenderService.java
index f9e08e683b6c..31dc23f0118d 100644
--- a/services/autofill/java/com/android/server/autofill/RemoteInlineSuggestionRenderService.java
+++ b/services/autofill/java/com/android/server/autofill/RemoteInlineSuggestionRenderService.java
@@ -20,6 +20,7 @@ import static com.android.server.autofill.Helper.sVerbose;
import android.Manifest;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.UserIdInt;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -86,7 +87,7 @@ final class RemoteInlineSuggestionRenderService extends
}
@Nullable
- private static ServiceInfo getServiceInfo(Context context) {
+ private static ServiceInfo getServiceInfo(Context context, int userId) {
final String packageName =
context.getPackageManager().getServicesSystemSharedLibraryPackageName();
if (packageName == null) {
@@ -96,8 +97,8 @@ final class RemoteInlineSuggestionRenderService extends
final Intent intent = new Intent(InlineSuggestionRenderService.SERVICE_INTERFACE);
intent.setPackage(packageName);
- final ResolveInfo resolveInfo = context.getPackageManager().resolveService(intent,
- PackageManager.GET_SERVICES | PackageManager.GET_META_DATA);
+ final ResolveInfo resolveInfo = context.getPackageManager().resolveServiceAsUser(intent,
+ PackageManager.GET_SERVICES | PackageManager.GET_META_DATA, userId);
final ServiceInfo serviceInfo = resolveInfo == null ? null : resolveInfo.serviceInfo;
if (resolveInfo == null || serviceInfo == null) {
Slog.w(TAG, "No valid components found.");
@@ -115,8 +116,8 @@ final class RemoteInlineSuggestionRenderService extends
}
@Nullable
- public static ComponentName getServiceComponentName(Context context) {
- final ServiceInfo serviceInfo = getServiceInfo(context);
+ public static ComponentName getServiceComponentName(Context context, @UserIdInt int userId) {
+ final ServiceInfo serviceInfo = getServiceInfo(context, userId);
if (serviceInfo == null) return null;
final ComponentName componentName = new ComponentName(serviceInfo.packageName,
diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java
index ee37de56ca15..7e5123c82054 100644
--- a/services/autofill/java/com/android/server/autofill/Session.java
+++ b/services/autofill/java/com/android/server/autofill/Session.java
@@ -103,6 +103,7 @@ import com.android.internal.util.ArrayUtils;
import com.android.internal.view.IInlineSuggestionsRequestCallback;
import com.android.internal.view.IInlineSuggestionsResponseCallback;
import com.android.server.autofill.ui.AutoFillUI;
+import com.android.server.autofill.ui.InlineSuggestionFactory;
import com.android.server.autofill.ui.PendingUi;
import com.android.server.inputmethod.InputMethodManagerInternal;
@@ -2674,12 +2675,13 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
if (response.supportsInlineSuggestions()) {
if (requestShowInlineSuggestions(response)) {
- //TODO(b/137800469): Add logging instead of bypassing below logic.
+ //TODO(b/137800469): Fix it to log showed only when IME asks for inflation, rather
+ // than here where framework sends back the response.
+ mService.logDatasetShown(id, mClientState);
return;
}
}
-
getUiForShowing().showFillUi(filledId, response, filterText,
mService.getServicePackageName(), mComponentName,
serviceLabel, serviceIcon, this, id, mCompatMode);
@@ -2731,7 +2733,11 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
InlineSuggestionsResponse inlineSuggestionsResponse =
InlineSuggestionFactory.createInlineSuggestionsResponse(response.getRequestId(),
- datasets.toArray(new Dataset[]{}), mCurrentViewId, mContext, this);
+ datasets.toArray(new Dataset[]{}), mCurrentViewId, mContext, this, () -> {
+ synchronized (mLock) {
+ requestHideFillUi(mCurrentViewId);
+ }
+ });
try {
inlineContentCallback.onInlineSuggestionsResponse(inlineSuggestionsResponse);
} catch (RemoteException e) {
@@ -3022,7 +3028,11 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
mInlineSuggestionsRequestCallback != null
? mInlineSuggestionsRequestCallback.getResponseCallback() : null;
remoteService.onRequestAutofillLocked(id, mClient, taskId, mComponentName, focusedId,
- currentValue, inlineSuggestionsRequest, inlineSuggestionsResponseCallback);
+ currentValue, inlineSuggestionsRequest, inlineSuggestionsResponseCallback, () -> {
+ synchronized (mLock) {
+ cancelAugmentedAutofillLocked();
+ }
+ });
if (mAugmentedAutofillDestroyer == null) {
mAugmentedAutofillDestroyer = () -> remoteService.onDestroyAutofillWindowsRequest();
diff --git a/services/autofill/java/com/android/server/autofill/InlineSuggestionFactory.java b/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java
index c7be80cd538b..38a5b5b1cdaa 100644
--- a/services/autofill/java/com/android/server/autofill/InlineSuggestionFactory.java
+++ b/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionFactory.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.server.autofill;
+package com.android.server.autofill.ui;
import static com.android.server.autofill.Helper.sDebug;
@@ -28,57 +28,44 @@ import android.util.Slog;
import android.view.SurfaceControl;
import android.view.View;
import android.view.autofill.AutofillId;
-import android.view.autofill.IAutoFillManagerClient;
import android.view.inputmethod.InlineSuggestion;
import android.view.inputmethod.InlineSuggestionInfo;
import android.view.inputmethod.InlineSuggestionsResponse;
+import com.android.internal.util.function.QuadFunction;
import com.android.internal.view.inline.IInlineContentCallback;
import com.android.internal.view.inline.IInlineContentProvider;
import com.android.server.UiThread;
-import com.android.server.autofill.ui.AutoFillUI;
-import com.android.server.autofill.ui.InlineSuggestionUi;
import java.util.ArrayList;
-
-/**
- * @hide
- */
public final class InlineSuggestionFactory {
private static final String TAG = "InlineSuggestionFactory";
/**
+ * Callback from the inline suggestion Ui.
+ */
+ public interface InlineSuggestionUiCallback {
+ /**
+ * Callback to autofill a dataset to the client app.
+ */
+ void autofill(@NonNull Dataset dataset);
+ }
+
+ /**
* Creates an {@link InlineSuggestionsResponse} with the {@code datasets} provided by
* augmented autofill service.
*/
public static InlineSuggestionsResponse createAugmentedInlineSuggestionsResponse(
- int sessionId,
@NonNull Dataset[] datasets,
@NonNull AutofillId autofillId,
@NonNull Context context,
- @NonNull IAutoFillManagerClient client) {
- if (sDebug) Slog.d(TAG, "createAugmentedInlineSuggestionsResponse called");
-
- final ArrayList<InlineSuggestion> inlineSuggestions = new ArrayList<>();
- final InlineSuggestionUi inlineSuggestionUi = new InlineSuggestionUi(context);
- for (Dataset dataset : datasets) {
- final int fieldIndex = dataset.getFieldIds().indexOf(autofillId);
- if (fieldIndex < 0) {
- Slog.w(TAG, "AutofillId=" + autofillId + " not found in dataset");
- return null;
- }
- final InlinePresentation inlinePresentation = dataset.getFieldInlinePresentation(
- fieldIndex);
- if (inlinePresentation == null) {
- Slog.w(TAG, "InlinePresentation not found in dataset");
- return null;
- }
- InlineSuggestion inlineSuggestion = createAugmentedInlineSuggestion(sessionId, dataset,
- inlinePresentation, inlineSuggestionUi, client);
- inlineSuggestions.add(inlineSuggestion);
- }
- return new InlineSuggestionsResponse(inlineSuggestions);
+ @NonNull InlineSuggestionUiCallback inlineSuggestionUiCallback,
+ @NonNull Runnable onErrorCallback) {
+ return createInlineSuggestionsResponseInternal(datasets, autofillId,
+ context, onErrorCallback, (dataset, inlinePresentation, inlineSuggestionUi,
+ filedIndex) -> createAugmentedInlineSuggestion(dataset,
+ inlinePresentation, inlineSuggestionUi, inlineSuggestionUiCallback));
}
/**
@@ -89,11 +76,26 @@ public final class InlineSuggestionFactory {
@NonNull Dataset[] datasets,
@NonNull AutofillId autofillId,
@NonNull Context context,
- @NonNull AutoFillUI.AutoFillUiCallback client) {
- if (sDebug) Slog.d(TAG, "createInlineSuggestionsResponse called");
+ @NonNull AutoFillUI.AutoFillUiCallback client,
+ @NonNull Runnable onErrorCallback) {
+ return createInlineSuggestionsResponseInternal(datasets, autofillId,
+ context, onErrorCallback, (dataset, inlinePresentation, inlineSuggestionUi,
+ filedIndex) -> createInlineSuggestion(requestId, dataset, filedIndex,
+ inlinePresentation, inlineSuggestionUi, client));
+ }
+
+ private static InlineSuggestionsResponse createInlineSuggestionsResponseInternal(
+ @NonNull Dataset[] datasets,
+ @NonNull AutofillId autofillId,
+ @NonNull Context context,
+ @NonNull Runnable onErrorCallback,
+ @NonNull QuadFunction<Dataset, InlinePresentation, InlineSuggestionUi,
+ Integer, InlineSuggestion> suggestionFactory) {
+ if (sDebug) Slog.d(TAG, "createAugmentedInlineSuggestionsResponse called");
final ArrayList<InlineSuggestion> inlineSuggestions = new ArrayList<>();
- final InlineSuggestionUi inlineSuggestionUi = new InlineSuggestionUi(context);
+ final InlineSuggestionUi inlineSuggestionUi = new InlineSuggestionUi(context,
+ onErrorCallback);
for (Dataset dataset : datasets) {
final int fieldIndex = dataset.getFieldIds().indexOf(autofillId);
if (fieldIndex < 0) {
@@ -106,31 +108,24 @@ public final class InlineSuggestionFactory {
Slog.w(TAG, "InlinePresentation not found in dataset");
return null;
}
- InlineSuggestion inlineSuggestion = createInlineSuggestion(requestId, dataset,
- fieldIndex,
- inlinePresentation, inlineSuggestionUi, client);
+ InlineSuggestion inlineSuggestion = suggestionFactory.apply(dataset,
+ inlinePresentation, inlineSuggestionUi, fieldIndex);
inlineSuggestions.add(inlineSuggestion);
}
return new InlineSuggestionsResponse(inlineSuggestions);
}
- private static InlineSuggestion createAugmentedInlineSuggestion(int sessionId,
- @NonNull Dataset dataset,
+ private static InlineSuggestion createAugmentedInlineSuggestion(@NonNull Dataset dataset,
@NonNull InlinePresentation inlinePresentation,
@NonNull InlineSuggestionUi inlineSuggestionUi,
- @NonNull IAutoFillManagerClient client) {
+ @NonNull InlineSuggestionUiCallback inlineSuggestionUiCallback) {
// TODO(b/146453195): fill in the autofill hint properly.
final InlineSuggestionInfo inlineSuggestionInfo = new InlineSuggestionInfo(
inlinePresentation.getInlinePresentationSpec(),
InlineSuggestionInfo.SOURCE_PLATFORM, new String[]{""},
InlineSuggestionInfo.TYPE_SUGGESTION);
- final View.OnClickListener onClickListener = v -> {
- try {
- client.autofill(sessionId, dataset.getFieldIds(), dataset.getFieldValues());
- } catch (RemoteException e) {
- Slog.w(TAG, "Encounter exception autofilling the values");
- }
- };
+ final View.OnClickListener onClickListener = v ->
+ inlineSuggestionUiCallback.autofill(dataset);
final InlineSuggestion inlineSuggestion = new InlineSuggestion(inlineSuggestionInfo,
createInlineContentProvider(inlinePresentation, inlineSuggestionUi,
onClickListener));
diff --git a/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionRoot.java b/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionRoot.java
new file mode 100644
index 000000000000..8d476d72c639
--- /dev/null
+++ b/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionRoot.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.autofill.ui;
+
+import android.annotation.NonNull;
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.util.Log;
+import android.util.MathUtils;
+import android.view.MotionEvent;
+import android.view.ViewConfiguration;
+import android.widget.FrameLayout;
+
+import com.android.server.LocalServices;
+import com.android.server.wm.WindowManagerInternal;
+
+/**
+ * This class is the root view for an inline suggestion. It is responsible for
+ * detecting the click on the item and to also transfer input focus to the IME
+ * window if we detect the user is scrolling.
+ */
+ // TODO(b/146453086) Move to ExtServices and add @SystemApi to transfer touch focus
+@SuppressLint("ViewConstructor")
+class InlineSuggestionRoot extends FrameLayout {
+ private static final String LOG_TAG = InlineSuggestionRoot.class.getSimpleName();
+
+ private final @NonNull Runnable mOnErrorCallback;
+ private final int mTouchSlop;
+
+ private float mDownX;
+ private float mDownY;
+
+ InlineSuggestionRoot(@NonNull Context context, @NonNull Runnable onErrorCallback) {
+ super(context);
+ mOnErrorCallback = onErrorCallback;
+ mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
+ }
+
+ @Override
+ @SuppressLint("ClickableViewAccessibility")
+ public boolean onTouchEvent(@NonNull MotionEvent event) {
+ switch (event.getActionMasked()) {
+ case MotionEvent.ACTION_DOWN: {
+ mDownX = event.getX();
+ mDownY = event.getY();
+ } break;
+
+ case MotionEvent.ACTION_MOVE: {
+ final float distance = MathUtils.dist(mDownX, mDownY,
+ event.getX(), event.getY());
+ if (distance > mTouchSlop) {
+ transferTouchFocusToImeWindow();
+ }
+ } break;
+ }
+ return super.onTouchEvent(event);
+ }
+
+ private void transferTouchFocusToImeWindow() {
+ final WindowManagerInternal windowManagerInternal = LocalServices.getService(
+ WindowManagerInternal.class);
+ if (!windowManagerInternal.transferTouchFocusToImeWindow(getViewRootImpl().getInputToken(),
+ getContext().getDisplayId())) {
+ Log.e(LOG_TAG, "Cannot transfer touch focus from suggestion to IME");
+ mOnErrorCallback.run();
+ }
+ }
+}
diff --git a/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionUi.java b/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionUi.java
index 2adefeabfcc8..bf148a642bbd 100644
--- a/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionUi.java
+++ b/services/autofill/java/com/android/server/autofill/ui/InlineSuggestionUi.java
@@ -67,10 +67,12 @@ public class InlineSuggestionUi {
// (int)}. This name is a single string of the form "package:type/entry".
private static final Pattern RESOURCE_NAME_PATTERN = Pattern.compile("([^:]+):([^/]+)/(\\S+)");
- private final Context mContext;
+ private final @NonNull Context mContext;
+ private final @NonNull Runnable mOnErrorCallback;
- public InlineSuggestionUi(Context context) {
+ InlineSuggestionUi(@NonNull Context context, @NonNull Runnable onErrorCallback) {
this.mContext = context;
+ mOnErrorCallback = onErrorCallback;
}
/**
@@ -94,15 +96,17 @@ public class InlineSuggestionUi {
}
final View suggestionView = renderSlice(inlinePresentation.getSlice(),
contextThemeWrapper);
- if (onClickListener != null) {
- suggestionView.setOnClickListener(onClickListener);
- }
+
+ final InlineSuggestionRoot suggestionRoot = new InlineSuggestionRoot(
+ mContext, mOnErrorCallback);
+ suggestionRoot.addView(suggestionView);
+ suggestionRoot.setOnClickListener(onClickListener);
WindowManager.LayoutParams lp =
new WindowManager.LayoutParams(width, height,
WindowManager.LayoutParams.TYPE_APPLICATION, 0,
PixelFormat.TRANSPARENT);
- wvr.addView(suggestionView, lp);
+ wvr.addView(suggestionRoot, lp);
return sc;
}
diff --git a/services/autofill/java/com/android/server/autofill/ui/SaveUi.java b/services/autofill/java/com/android/server/autofill/ui/SaveUi.java
index 8eea04759cdb..507e98369855 100644
--- a/services/autofill/java/com/android/server/autofill/ui/SaveUi.java
+++ b/services/autofill/java/com/android/server/autofill/ui/SaveUi.java
@@ -27,6 +27,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentSender;
+import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.metrics.LogMaker;
@@ -187,7 +188,10 @@ final class SaveUi {
context = new ContextThemeWrapper(context, mThemeId) {
@Override
public void startActivity(Intent intent) {
- if (intent.resolveActivity(getPackageManager()) == null) {
+ if (resolveActivity(intent) == null) {
+ if (sDebug) {
+ Slog.d(TAG, "Can not startActivity for save UI with intent=" + intent);
+ }
return;
}
intent.putExtra(AutofillManager.EXTRA_RESTORE_CROSS_ACTIVITY, true);
@@ -199,6 +203,16 @@ final class SaveUi {
// Apply restore mechanism
startIntentSenderWithRestore(p, intent);
}
+
+ private ComponentName resolveActivity(Intent intent) {
+ final PackageManager packageManager = getPackageManager();
+ final ComponentName componentName = intent.resolveActivity(packageManager);
+ if (componentName != null) {
+ return componentName;
+ }
+ intent.addFlags(Intent.FLAG_ACTIVITY_MATCH_EXTERNAL);
+ return intent.resolveActivity(packageManager);
+ }
};
final LayoutInflater inflater = LayoutInflater.from(context);
final View view = inflater.inflate(R.layout.autofill_save, null);
diff --git a/services/backup/backuplib/java/com/android/server/backup/transport/TransportClient.java b/services/backup/backuplib/java/com/android/server/backup/transport/TransportClient.java
index 7c5a57c004e4..ca89f7f69fbc 100644
--- a/services/backup/backuplib/java/com/android/server/backup/transport/TransportClient.java
+++ b/services/backup/backuplib/java/com/android/server/backup/transport/TransportClient.java
@@ -26,6 +26,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
+import android.os.Binder;
import android.os.DeadObjectException;
import android.os.Handler;
import android.os.IBinder;
@@ -662,6 +663,10 @@ public class TransportClient {
referenceLost("TransportConnection.onServiceConnected()");
return;
}
+ // TODO (b/147705255): Remove when binder calls to IBackupTransport are not blocking
+ // In short-term, blocking calls are OK as the transports come from the whitelist at
+ // {@link SystemConfig#getBackupTransportWhitelist()}
+ Binder.allowBlocking(binder);
transportClient.onServiceConnected(binder);
}
diff --git a/services/backup/java/com/android/server/backup/UserBackupManagerFilePersistedSettings.java b/services/backup/java/com/android/server/backup/UserBackupManagerFilePersistedSettings.java
index 6a1de6378a5e..205b7dda267e 100644
--- a/services/backup/java/com/android/server/backup/UserBackupManagerFilePersistedSettings.java
+++ b/services/backup/java/com/android/server/backup/UserBackupManagerFilePersistedSettings.java
@@ -16,7 +16,6 @@
package com.android.server.backup;
-import static com.android.server.backup.BackupManagerService.DEBUG;
import static com.android.server.backup.BackupManagerService.TAG;
import android.util.Slog;
@@ -33,10 +32,13 @@ final class UserBackupManagerFilePersistedSettings {
private static final String BACKUP_ENABLE_FILE = "backup_enabled";
static boolean readBackupEnableState(int userId) {
- return readBackupEnableState(UserBackupManagerFiles.getBaseStateDir(userId));
+ boolean enabled = readBackupEnableState(UserBackupManagerFiles.getBaseStateDir(userId));
+ Slog.d(TAG, "user:" + userId + " readBackupEnableState enabled:" + enabled);
+ return enabled;
}
static void writeBackupEnableState(int userId, boolean enable) {
+ Slog.d(TAG, "user:" + userId + " writeBackupEnableState enable:" + enable);
writeBackupEnableState(UserBackupManagerFiles.getBaseStateDir(userId), enable);
}
@@ -45,15 +47,17 @@ final class UserBackupManagerFilePersistedSettings {
if (enableFile.exists()) {
try (FileInputStream fin = new FileInputStream(enableFile)) {
int state = fin.read();
+ if (state != 0 && state != 1) {
+ // TODO (b/148587496) handle instead of only logging
+ Slog.e(TAG, "Unexpected enabled state:" + state);
+ }
return state != 0;
} catch (IOException e) {
// can't read the file; fall through to assume disabled
Slog.e(TAG, "Cannot read enable state; assuming disabled");
}
} else {
- if (DEBUG) {
- Slog.i(TAG, "isBackupEnabled() => false due to absent settings file");
- }
+ Slog.i(TAG, "isBackupEnabled() => false due to absent settings file");
}
return false;
}
@@ -64,7 +68,11 @@ final class UserBackupManagerFilePersistedSettings {
try (FileOutputStream fout = new FileOutputStream(stage)) {
fout.write(enable ? 1 : 0);
fout.close();
- stage.renameTo(enableFile);
+ boolean renamed = stage.renameTo(enableFile);
+ if (!renamed) {
+ // TODO (b/148587496) handle instead of only logging
+ Slog.e(TAG, "Write enable failed as could not rename staging file to actual");
+ }
// will be synced immediately by the try-with-resources call to close()
} catch (IOException | RuntimeException e) {
Slog.e(
diff --git a/services/contentcapture/java/com/android/server/contentcapture/ContentCaptureMetricsLogger.java b/services/contentcapture/java/com/android/server/contentcapture/ContentCaptureMetricsLogger.java
index dd1b84b16f68..7ea4eff3381c 100644
--- a/services/contentcapture/java/com/android/server/contentcapture/ContentCaptureMetricsLogger.java
+++ b/services/contentcapture/java/com/android/server/contentcapture/ContentCaptureMetricsLogger.java
@@ -20,7 +20,8 @@ import android.annotation.Nullable;
import android.content.ComponentName;
import android.content.ContentCaptureOptions;
import android.service.contentcapture.FlushMetrics;
-import android.util.StatsLog;
+
+import com.android.internal.util.FrameworkStatsLog;
import java.util.List;
@@ -35,8 +36,8 @@ public final class ContentCaptureMetricsLogger {
/** @hide */
public static void writeServiceEvent(int eventType, @NonNull String serviceName,
@Nullable String targetPackage) {
- StatsLog.write(StatsLog.CONTENT_CAPTURE_SERVICE_EVENTS, eventType, serviceName,
- targetPackage);
+ FrameworkStatsLog.write(FrameworkStatsLog.CONTENT_CAPTURE_SERVICE_EVENTS, eventType,
+ serviceName, targetPackage);
}
/** @hide */
@@ -79,16 +80,16 @@ public final class ContentCaptureMetricsLogger {
stringBuilder.append(activities.get(i).flattenToShortString());
}
}
- StatsLog.write(StatsLog.CONTENT_CAPTURE_SERVICE_EVENTS,
- StatsLog.CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__SET_WHITELIST,
+ FrameworkStatsLog.write(FrameworkStatsLog.CONTENT_CAPTURE_SERVICE_EVENTS,
+ FrameworkStatsLog.CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__SET_WHITELIST,
serviceName, stringBuilder.toString());
}
/** @hide */
public static void writeSessionEvent(int sessionId, int event, int flags,
@NonNull ComponentName service, @Nullable ComponentName app, boolean isChildSession) {
- StatsLog.write(StatsLog.CONTENT_CAPTURE_SESSION_EVENTS, sessionId, event, flags,
- ComponentName.flattenToShortString(service),
+ FrameworkStatsLog.write(FrameworkStatsLog.CONTENT_CAPTURE_SESSION_EVENTS, sessionId, event,
+ flags, ComponentName.flattenToShortString(service),
ComponentName.flattenToShortString(app), isChildSession);
}
@@ -96,7 +97,7 @@ public final class ContentCaptureMetricsLogger {
public static void writeSessionFlush(int sessionId, @NonNull ComponentName service,
@Nullable ComponentName app, @NonNull FlushMetrics fm,
@NonNull ContentCaptureOptions options, int flushReason) {
- StatsLog.write(StatsLog.CONTENT_CAPTURE_FLUSHED, sessionId,
+ FrameworkStatsLog.write(FrameworkStatsLog.CONTENT_CAPTURE_FLUSHED, sessionId,
ComponentName.flattenToShortString(service),
ComponentName.flattenToShortString(app), fm.sessionStarted, fm.sessionFinished,
fm.viewAppearedCount, fm.viewDisappearedCount, fm.viewTextChangedCount,
diff --git a/services/contentcapture/java/com/android/server/contentcapture/ContentCapturePerUserService.java b/services/contentcapture/java/com/android/server/contentcapture/ContentCapturePerUserService.java
index 0f1122e3886a..583c5b593b88 100644
--- a/services/contentcapture/java/com/android/server/contentcapture/ContentCapturePerUserService.java
+++ b/services/contentcapture/java/com/android/server/contentcapture/ContentCapturePerUserService.java
@@ -61,13 +61,13 @@ import android.util.ArraySet;
import android.util.Slog;
import android.util.SparseArray;
import android.util.SparseBooleanArray;
-import android.util.StatsLog;
import android.view.contentcapture.ContentCaptureCondition;
import android.view.contentcapture.DataRemovalRequest;
import android.view.contentcapture.DataShareRequest;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.os.IResultReceiver;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.LocalServices;
import com.android.server.contentcapture.RemoteContentCaptureService.ContentCaptureServiceCallbacks;
import com.android.server.infra.AbstractPerUserSystemService;
@@ -275,7 +275,7 @@ final class ContentCapturePerUserService
/* binder= */ null);
// Log metrics.
writeSessionEvent(sessionId,
- StatsLog.CONTENT_CAPTURE_SESSION_EVENTS__EVENT__SESSION_NOT_CREATED,
+ FrameworkStatsLog.CONTENT_CAPTURE_SESSION_EVENTS__EVENT__SESSION_NOT_CREATED,
STATE_DISABLED | STATE_NO_SERVICE, serviceComponentName,
componentName, /* isChildSession= */ false);
return;
@@ -299,7 +299,7 @@ final class ContentCapturePerUserService
/* binder= */ null);
// Log metrics.
writeSessionEvent(sessionId,
- StatsLog.CONTENT_CAPTURE_SESSION_EVENTS__EVENT__SESSION_NOT_CREATED,
+ FrameworkStatsLog.CONTENT_CAPTURE_SESSION_EVENTS__EVENT__SESSION_NOT_CREATED,
STATE_DISABLED | STATE_NOT_WHITELISTED, serviceComponentName,
componentName, /* isChildSession= */ false);
return;
@@ -313,7 +313,7 @@ final class ContentCapturePerUserService
/* binder=*/ null);
// Log metrics.
writeSessionEvent(sessionId,
- StatsLog.CONTENT_CAPTURE_SESSION_EVENTS__EVENT__SESSION_NOT_CREATED,
+ FrameworkStatsLog.CONTENT_CAPTURE_SESSION_EVENTS__EVENT__SESSION_NOT_CREATED,
STATE_DISABLED | STATE_DUPLICATED_ID,
serviceComponentName, componentName, /* isChildSession= */ false);
return;
@@ -330,7 +330,7 @@ final class ContentCapturePerUserService
/* binder= */ null);
// Log metrics.
writeSessionEvent(sessionId,
- StatsLog.CONTENT_CAPTURE_SESSION_EVENTS__EVENT__SESSION_NOT_CREATED,
+ FrameworkStatsLog.CONTENT_CAPTURE_SESSION_EVENTS__EVENT__SESSION_NOT_CREATED,
STATE_DISABLED | STATE_NO_SERVICE, serviceComponentName,
componentName, /* isChildSession= */ false);
return;
@@ -651,7 +651,7 @@ final class ContentCapturePerUserService
} finally {
Binder.restoreCallingIdentity(token);
}
- writeServiceEvent(StatsLog.CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__SET_DISABLED,
+ writeServiceEvent(FrameworkStatsLog.CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__SET_DISABLED,
getServiceComponentName());
}
diff --git a/services/contentcapture/java/com/android/server/contentcapture/RemoteContentCaptureService.java b/services/contentcapture/java/com/android/server/contentcapture/RemoteContentCaptureService.java
index c16df0f19943..9a170ac6da10 100644
--- a/services/contentcapture/java/com/android/server/contentcapture/RemoteContentCaptureService.java
+++ b/services/contentcapture/java/com/android/server/contentcapture/RemoteContentCaptureService.java
@@ -32,13 +32,13 @@ import android.service.contentcapture.IContentCaptureServiceCallback;
import android.service.contentcapture.IDataShareCallback;
import android.service.contentcapture.SnapshotData;
import android.util.Slog;
-import android.util.StatsLog;
import android.view.contentcapture.ContentCaptureContext;
import android.view.contentcapture.DataRemovalRequest;
import android.view.contentcapture.DataShareRequest;
import com.android.internal.infra.AbstractMultiplePendingRequestsRemoteService;
import com.android.internal.os.IResultReceiver;
+import com.android.internal.util.FrameworkStatsLog;
final class RemoteContentCaptureService
extends AbstractMultiplePendingRequestsRemoteService<RemoteContentCaptureService,
@@ -83,7 +83,8 @@ final class RemoteContentCaptureService
if (connected) {
try {
mService.onConnected(mServerCallback, sVerbose, sDebug);
- writeServiceEvent(StatsLog.CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__ON_CONNECTED,
+ writeServiceEvent(
+ FrameworkStatsLog.CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__ON_CONNECTED,
mComponentName);
} finally {
// Update the system-service state, in case the service reconnected after
@@ -92,7 +93,8 @@ final class RemoteContentCaptureService
}
} else {
mService.onDisconnected();
- writeServiceEvent(StatsLog.CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__ON_DISCONNECTED,
+ writeServiceEvent(
+ FrameworkStatsLog.CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__ON_DISCONNECTED,
mComponentName);
}
} catch (Exception e) {
@@ -114,8 +116,9 @@ final class RemoteContentCaptureService
(s) -> s.onSessionStarted(context, sessionId, uid, clientReceiver, initialState));
// Metrics logging.
writeSessionEvent(sessionId,
- StatsLog.CONTENT_CAPTURE_SESSION_EVENTS__EVENT__ON_SESSION_STARTED, initialState,
- getComponentName(), context.getActivityComponent(), /* is_child_session= */ false);
+ FrameworkStatsLog.CONTENT_CAPTURE_SESSION_EVENTS__EVENT__ON_SESSION_STARTED,
+ initialState, getComponentName(), context.getActivityComponent(),
+ /* is_child_session= */ false);
}
/**
@@ -126,7 +129,7 @@ final class RemoteContentCaptureService
scheduleAsyncRequest((s) -> s.onSessionFinished(sessionId));
// Metrics logging.
writeSessionEvent(sessionId,
- StatsLog.CONTENT_CAPTURE_SESSION_EVENTS__EVENT__ON_SESSION_FINISHED,
+ FrameworkStatsLog.CONTENT_CAPTURE_SESSION_EVENTS__EVENT__ON_SESSION_FINISHED,
/* flags= */ 0, getComponentName(), /* app= */ null,
/* is_child_session= */ false);
}
@@ -143,7 +146,8 @@ final class RemoteContentCaptureService
*/
public void onDataRemovalRequest(@NonNull DataRemovalRequest request) {
scheduleAsyncRequest((s) -> s.onDataRemovalRequest(request));
- writeServiceEvent(StatsLog.CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__ON_USER_DATA_REMOVED,
+ writeServiceEvent(
+ FrameworkStatsLog.CONTENT_CAPTURE_SERVICE_EVENTS__EVENT__ON_USER_DATA_REMOVED,
mComponentName);
}
diff --git a/services/core/Android.bp b/services/core/Android.bp
index a603fa975b74..f33237f490e4 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -115,8 +115,8 @@ java_library_static {
"android.hardware.health-V2.0-java",
"android.hardware.light-java",
"android.hardware.weaver-V1.0-java",
- "android.hardware.biometrics.face-V1.0-java",
- "android.hardware.biometrics.fingerprint-V2.1-java",
+ "android.hardware.biometrics.face-V1.1-java",
+ "android.hardware.biometrics.fingerprint-V2.2-java",
"android.hardware.oemlock-V1.0-java",
"android.hardware.configstore-V1.0-java",
"android.hardware.contexthub-V1.0-java",
diff --git a/services/core/java/android/app/usage/UsageStatsManagerInternal.java b/services/core/java/android/app/usage/UsageStatsManagerInternal.java
index a8be66990fff..5c2cbfa63a2b 100644
--- a/services/core/java/android/app/usage/UsageStatsManagerInternal.java
+++ b/services/core/java/android/app/usage/UsageStatsManagerInternal.java
@@ -215,9 +215,14 @@ public abstract class UsageStatsManagerInternal {
/**
* Returns the events for the user in the given time period.
+ *
+ * @param obfuscateInstantApps whether instant app package names need to be obfuscated in the
+ * result.
+ * @param hideShortcutInvocationEvents whether the {@link UsageEvents.Event#SHORTCUT_INVOCATION}
+ * events need to be excluded from the result.
*/
public abstract UsageEvents queryEventsForUser(@UserIdInt int userId, long beginTime,
- long endTime, boolean shouldObfuscateInstantApps);
+ long endTime, boolean obfuscateInstantApps, boolean hideShortcutInvocationEvents);
/**
* Used to persist the last time a job was run for this app, in order to make decisions later
diff --git a/services/core/java/android/content/pm/PackageManagerInternal.java b/services/core/java/android/content/pm/PackageManagerInternal.java
index 27b6bfb8f5fd..bdcd832e4f4a 100644
--- a/services/core/java/android/content/pm/PackageManagerInternal.java
+++ b/services/core/java/android/content/pm/PackageManagerInternal.java
@@ -67,6 +67,7 @@ public abstract class PackageManagerInternal {
public static final int PACKAGE_TELEPHONY = 12;
public static final int PACKAGE_WIFI = 13;
public static final int PACKAGE_COMPANION = 14;
+ public static final int PACKAGE_RETAIL_DEMO = 15;
@IntDef(value = {
INTEGRITY_VERIFICATION_ALLOW,
@@ -105,6 +106,7 @@ public abstract class PackageManagerInternal {
PACKAGE_TELEPHONY,
PACKAGE_WIFI,
PACKAGE_COMPANION,
+ PACKAGE_RETAIL_DEMO,
})
@Retention(RetentionPolicy.SOURCE)
public @interface KnownPackage {}
diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java
index 0f2fb9252c29..3441a5f19508 100644
--- a/services/core/java/com/android/server/AlarmManagerService.java
+++ b/services/core/java/com/android/server/AlarmManagerService.java
@@ -86,7 +86,6 @@ import android.util.SparseArray;
import android.util.SparseBooleanArray;
import android.util.SparseIntArray;
import android.util.SparseLongArray;
-import android.util.StatsLog;
import android.util.TimeUtils;
import android.util.proto.ProtoOutputStream;
@@ -94,6 +93,7 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.DumpUtils;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.LocalLog;
import com.android.internal.util.StatLogger;
@@ -331,12 +331,16 @@ class AlarmManagerService extends SystemService {
return (history == null) ? 0 : history.size();
}
- long getLastWakeupForPackage(String packageName, int userId, int positionFromEnd) {
+ /**
+ * @param n The desired nth-last wakeup
+ * (1=1st-last=the ultimate wakeup and 2=2nd-last=the penultimate wakeup)
+ */
+ long getNthLastWakeupForPackage(String packageName, int userId, int n) {
final LongArrayQueue history = mPackageHistory.get(Pair.create(packageName, userId));
if (history == null) {
return 0;
}
- final int i = history.size() - positionFromEnd;
+ final int i = history.size() - n;
return (i < 0) ? 0 : history.get(i);
}
@@ -400,6 +404,11 @@ class AlarmManagerService extends SystemService {
"standby_rare_quota",
"standby_never_quota",
};
+ // Not putting this in the KEYS_APP_STANDBY_QUOTAS array because this uses a different
+ // window size.
+ private static final String KEY_APP_STANDBY_RESTRICTED_QUOTA = "standby_restricted_quota";
+ private static final String KEY_APP_STANDBY_RESTRICTED_WINDOW =
+ "app_standby_restricted_window";
private static final long DEFAULT_MIN_FUTURITY = 5 * 1000;
private static final long DEFAULT_MIN_INTERVAL = 60 * 1000;
@@ -420,6 +429,8 @@ class AlarmManagerService extends SystemService {
1, // Rare
0 // Never
};
+ private static final int DEFAULT_APP_STANDBY_RESTRICTED_QUOTA = 1;
+ private static final long DEFAULT_APP_STANDBY_RESTRICTED_WINDOW = MILLIS_IN_DAY;
// Minimum futurity of a new alarm
public long MIN_FUTURITY = DEFAULT_MIN_FUTURITY;
@@ -446,6 +457,8 @@ class AlarmManagerService extends SystemService {
public long APP_STANDBY_WINDOW = DEFAULT_APP_STANDBY_WINDOW;
public int[] APP_STANDBY_QUOTAS = new int[DEFAULT_APP_STANDBY_QUOTAS.length];
+ public int APP_STANDBY_RESTRICTED_QUOTA = DEFAULT_APP_STANDBY_RESTRICTED_QUOTA;
+ public long APP_STANDBY_RESTRICTED_WINDOW = DEFAULT_APP_STANDBY_RESTRICTED_WINDOW;
private ContentResolver mResolver;
private final KeyValueListParser mParser = new KeyValueListParser(',');
@@ -520,6 +533,14 @@ class AlarmManagerService extends SystemService {
Math.min(APP_STANDBY_QUOTAS[i - 1], DEFAULT_APP_STANDBY_QUOTAS[i]));
}
+ APP_STANDBY_RESTRICTED_QUOTA = Math.max(1,
+ mParser.getInt(KEY_APP_STANDBY_RESTRICTED_QUOTA,
+ DEFAULT_APP_STANDBY_RESTRICTED_QUOTA));
+
+ APP_STANDBY_RESTRICTED_WINDOW = Math.max(APP_STANDBY_WINDOW,
+ mParser.getLong(KEY_APP_STANDBY_RESTRICTED_WINDOW,
+ DEFAULT_APP_STANDBY_RESTRICTED_WINDOW));
+
MAX_ALARMS_PER_UID = mParser.getInt(KEY_MAX_ALARMS_PER_UID,
DEFAULT_MAX_ALARMS_PER_UID);
if (MAX_ALARMS_PER_UID < DEFAULT_MAX_ALARMS_PER_UID) {
@@ -581,6 +602,14 @@ class AlarmManagerService extends SystemService {
pw.println(APP_STANDBY_QUOTAS[i]);
}
+ pw.print(KEY_APP_STANDBY_RESTRICTED_QUOTA); pw.print("=");
+ TimeUtils.formatDuration(APP_STANDBY_RESTRICTED_QUOTA, pw);
+ pw.println();
+
+ pw.print(KEY_APP_STANDBY_RESTRICTED_WINDOW); pw.print("=");
+ TimeUtils.formatDuration(APP_STANDBY_RESTRICTED_WINDOW, pw);
+ pw.println();
+
pw.decreaseIndent();
}
@@ -1814,25 +1843,44 @@ class AlarmManagerService extends SystemService {
sourcePackage, sourceUserId, mInjector.getElapsedRealtime());
// Quota deferring implementation:
+ boolean deferred = false;
final int wakeupsInWindow = mAppWakeupHistory.getTotalWakeupsInWindow(sourcePackage,
sourceUserId);
- final int quotaForBucket = getQuotaForBucketLocked(standbyBucket);
- boolean deferred = false;
- if (wakeupsInWindow >= quotaForBucket) {
- final long minElapsed;
- if (quotaForBucket <= 0) {
- // Just keep deferring for a day till the quota changes
- minElapsed = mInjector.getElapsedRealtime() + MILLIS_IN_DAY;
- } else {
- // Suppose the quota for window was q, and the qth last delivery time for this
- // package was t(q) then the next delivery must be after t(q) + <window_size>
- final long t = mAppWakeupHistory.getLastWakeupForPackage(sourcePackage,
- sourceUserId, quotaForBucket);
- minElapsed = t + 1 + mConstants.APP_STANDBY_WINDOW;
+ if (standbyBucket == UsageStatsManager.STANDBY_BUCKET_RESTRICTED) {
+ // Special case because it's 1/day instead of 1/hour.
+ // AppWakeupHistory doesn't delete old wakeup times until a new one is logged, so we
+ // should always have the last wakeup available.
+ if (wakeupsInWindow > 0) {
+ final long lastWakeupTime = mAppWakeupHistory.getNthLastWakeupForPackage(
+ sourcePackage, sourceUserId, mConstants.APP_STANDBY_RESTRICTED_QUOTA);
+ if (mInjector.getElapsedRealtime() - lastWakeupTime
+ < mConstants.APP_STANDBY_RESTRICTED_WINDOW) {
+ final long minElapsed =
+ lastWakeupTime + mConstants.APP_STANDBY_RESTRICTED_WINDOW;
+ if (alarm.expectedWhenElapsed < minElapsed) {
+ alarm.whenElapsed = alarm.maxWhenElapsed = minElapsed;
+ deferred = true;
+ }
+ }
}
- if (alarm.expectedWhenElapsed < minElapsed) {
- alarm.whenElapsed = alarm.maxWhenElapsed = minElapsed;
- deferred = true;
+ } else {
+ final int quotaForBucket = getQuotaForBucketLocked(standbyBucket);
+ if (wakeupsInWindow >= quotaForBucket) {
+ final long minElapsed;
+ if (quotaForBucket <= 0) {
+ // Just keep deferring for a day till the quota changes
+ minElapsed = mInjector.getElapsedRealtime() + MILLIS_IN_DAY;
+ } else {
+ // Suppose the quota for window was q, and the qth last delivery time for this
+ // package was t(q) then the next delivery must be after t(q) + <window_size>
+ final long t = mAppWakeupHistory.getNthLastWakeupForPackage(
+ sourcePackage, sourceUserId, quotaForBucket);
+ minElapsed = t + 1 + mConstants.APP_STANDBY_WINDOW;
+ }
+ if (alarm.expectedWhenElapsed < minElapsed) {
+ alarm.whenElapsed = alarm.maxWhenElapsed = minElapsed;
+ deferred = true;
+ }
}
}
if (!deferred) {
@@ -3915,7 +3963,7 @@ class AlarmManagerService extends SystemService {
Slog.v(TAG, "Time changed notification from kernel; rebatching");
}
// StatsLog requires currentTimeMillis(), which == nowRTC to within usecs.
- StatsLog.write(StatsLog.WALL_CLOCK_TIME_SHIFTED, nowRTC);
+ FrameworkStatsLog.write(FrameworkStatsLog.WALL_CLOCK_TIME_SHIFTED, nowRTC);
removeImpl(null, mTimeTickTrigger);
removeImpl(mDateChangeSender, null);
rebatchAllAlarms();
diff --git a/services/core/java/com/android/server/BatteryService.java b/services/core/java/com/android/server/BatteryService.java
index 8074900d2776..c8894e79ac0c 100644
--- a/services/core/java/com/android/server/BatteryService.java
+++ b/services/core/java/com/android/server/BatteryService.java
@@ -18,6 +18,7 @@ package com.android.server;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import android.annotation.Nullable;
import android.app.ActivityManager;
import android.app.ActivityManagerInternal;
import android.content.ContentResolver;
@@ -1318,8 +1319,7 @@ public final class BatteryService extends SystemService {
*
* @hide Should only be used internally.
*/
- @VisibleForTesting
- static final class HealthServiceWrapper {
+ public static final class HealthServiceWrapper {
private static final String TAG = "HealthServiceWrapper";
public static final String INSTANCE_HEALTHD = "backup";
public static final String INSTANCE_VENDOR = "default";
@@ -1341,20 +1341,28 @@ public final class BatteryService extends SystemService {
* init should be called after constructor. For testing purposes, init is not called by
* constructor.
*/
- HealthServiceWrapper() {
+ public HealthServiceWrapper() {
}
- IHealth getLastService() {
+ public IHealth getLastService() {
return mLastService.get();
}
/**
+ * See {@link #init(Callback, IServiceManagerSupplier, IHealthSupplier)}
+ */
+ public void init() throws RemoteException, NoSuchElementException {
+ init(/* callback= */null, new HealthServiceWrapper.IServiceManagerSupplier() {},
+ new HealthServiceWrapper.IHealthSupplier() {});
+ }
+
+ /**
* Start monitoring registration of new IHealth services. Only instances that are in
* {@code sAllInstances} and in device / framework manifest are used. This function should
* only be called once.
*
* mCallback.onRegistration() is called synchronously (aka in init thread) before
- * this method returns.
+ * this method returns if callback is not null.
*
* @throws RemoteException transaction error when talking to IServiceManager
* @throws NoSuchElementException if one of the following cases:
@@ -1362,18 +1370,17 @@ public final class BatteryService extends SystemService {
* - none of {@code sAllInstances} are in manifests (i.e. not
* available on this device), or none of these instances are available to current
* process.
- * @throws NullPointerException when callback is null or supplier is null
+ * @throws NullPointerException when supplier is null
*/
- void init(Callback callback,
+ void init(@Nullable Callback callback,
IServiceManagerSupplier managerSupplier,
IHealthSupplier healthSupplier)
throws RemoteException, NoSuchElementException, NullPointerException {
- if (callback == null || managerSupplier == null || healthSupplier == null)
+ if (managerSupplier == null || healthSupplier == null) {
throw new NullPointerException();
-
+ }
IServiceManager manager;
- mCallback = callback;
mHealthSupplier = healthSupplier;
// Initialize mLastService and call callback for the first time (in init thread)
@@ -1399,7 +1406,11 @@ public final class BatteryService extends SystemService {
"No IHealth service instance among %s is available. Perhaps no permission?",
sAllInstances.toString()));
}
- mCallback.onRegistration(null, newService, mInstanceName);
+
+ if (callback != null) {
+ mCallback = callback;
+ mCallback.onRegistration(null, newService, mInstanceName);
+ }
// Register for future service registrations
traceBegin("HealthInitRegisterNotification");
diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java
index 3774b645339d..311a494ee570 100644
--- a/services/core/java/com/android/server/BluetoothManagerService.java
+++ b/services/core/java/com/android/server/BluetoothManagerService.java
@@ -69,17 +69,17 @@ import android.text.TextUtils;
import android.util.FeatureFlagUtils;
import android.util.Log;
import android.util.Slog;
-import android.util.StatsLog;
import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.DumpUtils;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.pm.UserRestrictionsUtils;
import java.io.FileDescriptor;
import java.io.PrintWriter;
-import java.util.HashMap;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.LinkedList;
import java.util.Locale;
import java.util.Map;
@@ -87,7 +87,6 @@ import java.util.NoSuchElementException;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.ReentrantReadWriteLock;
-
class BluetoothManagerService extends IBluetoothManager.Stub {
private static final String TAG = "BluetoothManagerService";
private static final boolean DBG = true;
@@ -2300,9 +2299,9 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
new ActiveLog(reason, packageName, enable, System.currentTimeMillis()));
}
- int state = enable ? StatsLog.BLUETOOTH_ENABLED_STATE_CHANGED__STATE__ENABLED :
- StatsLog.BLUETOOTH_ENABLED_STATE_CHANGED__STATE__DISABLED;
- StatsLog.write_non_chained(StatsLog.BLUETOOTH_ENABLED_STATE_CHANGED,
+ int state = enable ? FrameworkStatsLog.BLUETOOTH_ENABLED_STATE_CHANGED__STATE__ENABLED :
+ FrameworkStatsLog.BLUETOOTH_ENABLED_STATE_CHANGED__STATE__DISABLED;
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.BLUETOOTH_ENABLED_STATE_CHANGED,
Binder.getCallingUid(), null, state, reason, packageName);
}
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index d933e9d8e9da..caacf13d7bc4 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -48,8 +48,11 @@ import static android.os.Process.INVALID_UID;
import static android.system.OsConstants.IPPROTO_TCP;
import static android.system.OsConstants.IPPROTO_UDP;
+import static java.util.Map.Entry;
+
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.app.AppOpsManager;
import android.app.BroadcastOptions;
import android.app.NotificationManager;
import android.app.PendingIntent;
@@ -62,6 +65,8 @@ import android.content.res.Configuration;
import android.database.ContentObserver;
import android.net.CaptivePortal;
import android.net.ConnectionInfo;
+import android.net.ConnectivityDiagnosticsManager.ConnectivityReport;
+import android.net.ConnectivityDiagnosticsManager.DataStallReport;
import android.net.ConnectivityManager;
import android.net.ICaptivePortal;
import android.net.IConnectivityDiagnosticsCallback;
@@ -109,6 +114,7 @@ import android.net.SocketKeepalive;
import android.net.TetheringManager;
import android.net.UidRange;
import android.net.Uri;
+import android.net.VpnManager;
import android.net.VpnService;
import android.net.metrics.IpConnectivityLog;
import android.net.metrics.NetworkEvent;
@@ -129,6 +135,7 @@ import android.os.Message;
import android.os.Messenger;
import android.os.ParcelFileDescriptor;
import android.os.Parcelable;
+import android.os.PersistableBundle;
import android.os.PowerManager;
import android.os.Process;
import android.os.RemoteException;
@@ -169,6 +176,7 @@ import com.android.internal.util.ArrayUtils;
import com.android.internal.util.AsyncChannel;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.IndentingPrintWriter;
+import com.android.internal.util.LocationPermissionChecker;
import com.android.internal.util.MessageUtils;
import com.android.internal.util.XmlUtils;
import com.android.server.am.BatteryStatsService;
@@ -491,9 +499,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
/**
* Event for NetworkMonitor/NetworkAgentInfo to inform ConnectivityService that the network has
* been tested.
- * obj = String representing URL that Internet probe was redirect to, if it was redirected.
- * arg1 = One of the NETWORK_TESTED_RESULT_* constants.
- * arg2 = NetID.
+ * obj = {@link NetworkTestedResults} representing information sent from NetworkMonitor.
+ * data = PersistableBundle of extras passed from NetworkMonitor. If {@link
+ * NetworkMonitorCallbacks#notifyNetworkTested} is called, this will be null.
*/
private static final int EVENT_NETWORK_TESTED = 41;
@@ -557,13 +565,17 @@ public class ConnectivityService extends IConnectivityManager.Stub
.asInterface(ServiceManager.getService("dnsresolver"));
}
- /** Handler thread used for both of the handlers below. */
+ /** Handler thread used for all of the handlers below. */
@VisibleForTesting
protected final HandlerThread mHandlerThread;
/** Handler used for internal events. */
final private InternalHandler mHandler;
/** Handler used for incoming {@link NetworkStateTracker} events. */
final private NetworkStateTrackerHandler mTrackerHandler;
+ /** Handler used for processing {@link android.net.ConnectivityDiagnosticsManager} events */
+ @VisibleForTesting
+ final ConnectivityDiagnosticsHandler mConnectivityDiagnosticsHandler;
+
private final DnsManager mDnsManager;
private boolean mSystemReady;
@@ -590,7 +602,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
private Set<String> mWolSupportedInterfaces;
- private TelephonyManager mTelephonyManager;
+ private final TelephonyManager mTelephonyManager;
+ private final AppOpsManager mAppOpsManager;
+
+ private final LocationPermissionChecker mLocationPermissionChecker;
private KeepaliveTracker mKeepaliveTracker;
private NetworkNotificationManager mNotifier;
@@ -630,6 +645,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
@VisibleForTesting
final MultipathPolicyTracker mMultipathPolicyTracker;
+ @VisibleForTesting
+ final Map<IConnectivityDiagnosticsCallback, ConnectivityDiagnosticsCallbackInfo>
+ mConnectivityDiagnosticsCallbacks = new HashMap<>();
+
/**
* Implements support for the legacy "one network per network type" model.
*
@@ -942,6 +961,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
mDeps = Objects.requireNonNull(deps, "missing Dependencies");
mSystemProperties = mDeps.getSystemProperties();
mNetIdManager = mDeps.makeNetIdManager();
+ mContext = Objects.requireNonNull(context, "missing Context");
mMetricsLog = logger;
mDefaultRequest = createDefaultInternetRequestForTransport(-1, NetworkRequest.Type.REQUEST);
@@ -962,13 +982,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
mHandlerThread.start();
mHandler = new InternalHandler(mHandlerThread.getLooper());
mTrackerHandler = new NetworkStateTrackerHandler(mHandlerThread.getLooper());
+ mConnectivityDiagnosticsHandler =
+ new ConnectivityDiagnosticsHandler(mHandlerThread.getLooper());
mReleasePendingIntentDelayMs = Settings.Secure.getInt(context.getContentResolver(),
Settings.Secure.CONNECTIVITY_RELEASE_PENDING_INTENT_DELAY_MS, 5_000);
mLingerDelayMs = mSystemProperties.getInt(LINGER_DELAY_PROPERTY, DEFAULT_LINGER_DELAY_MS);
- mContext = Objects.requireNonNull(context, "missing Context");
mNMS = Objects.requireNonNull(netManager, "missing INetworkManagementService");
mStatsService = Objects.requireNonNull(statsService, "missing INetworkStatsService");
mPolicyManager = Objects.requireNonNull(policyManager, "missing INetworkPolicyManager");
@@ -981,6 +1002,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
mNetd = netd;
mKeyStore = KeyStore.getInstance();
mTelephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
+ mAppOpsManager = (AppOpsManager) mContext.getSystemService(Context.APP_OPS_SERVICE);
+ mLocationPermissionChecker = new LocationPermissionChecker(mContext);
// To ensure uid rules are synchronized with Network Policy, register for
// NetworkPolicyManagerService events must happen prior to NetworkPolicyManagerService
@@ -1146,6 +1169,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
int transportType, NetworkRequest.Type type) {
final NetworkCapabilities netCap = new NetworkCapabilities();
netCap.addCapability(NET_CAPABILITY_INTERNET);
+ netCap.setRequestorUidAndPackageName(Process.myUid(), mContext.getPackageName());
if (transportType > -1) {
netCap.addTransportType(transportType);
}
@@ -1676,10 +1700,12 @@ public class ConnectivityService extends IConnectivityManager.Stub
return newLp;
}
- private void restrictRequestUidsForCaller(NetworkCapabilities nc) {
+ private void restrictRequestUidsForCallerAndSetRequestorInfo(NetworkCapabilities nc,
+ int callerUid, String callerPackageName) {
if (!checkSettingsPermission()) {
- nc.setSingleUid(Binder.getCallingUid());
+ nc.setSingleUid(callerUid);
}
+ nc.setRequestorUidAndPackageName(callerUid, callerPackageName);
nc.setAdministratorUids(Collections.EMPTY_LIST);
// Clear owner UID; this can never come from an app.
@@ -2090,6 +2116,12 @@ public class ConnectivityService extends IConnectivityManager.Stub
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK);
}
+ private boolean checkNetworkStackPermission(int pid, int uid) {
+ return checkAnyPermissionOf(pid, uid,
+ android.Manifest.permission.NETWORK_STACK,
+ NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK);
+ }
+
private boolean checkNetworkSignalStrengthWakeupPermission(int pid, int uid) {
return checkAnyPermissionOf(pid, uid,
android.Manifest.permission.NETWORK_SIGNAL_STRENGTH_WAKEUP,
@@ -2736,88 +2768,21 @@ public class ConnectivityService extends IConnectivityManager.Stub
break;
}
case EVENT_NETWORK_TESTED: {
- final NetworkAgentInfo nai = getNetworkAgentInfoForNetId(msg.arg2);
- if (nai == null) break;
-
- final boolean wasPartial = nai.partialConnectivity;
- nai.partialConnectivity = ((msg.arg1 & NETWORK_VALIDATION_RESULT_PARTIAL) != 0);
- final boolean partialConnectivityChanged =
- (wasPartial != nai.partialConnectivity);
+ final NetworkTestedResults results = (NetworkTestedResults) msg.obj;
- final boolean valid = ((msg.arg1 & NETWORK_VALIDATION_RESULT_VALID) != 0);
- final boolean wasValidated = nai.lastValidated;
- final boolean wasDefault = isDefaultNetwork(nai);
- // Only show a connected notification if the network is pending validation
- // after the captive portal app was open, and it has now validated.
- if (nai.captivePortalValidationPending && valid) {
- // User is now logged in, network validated.
- nai.captivePortalValidationPending = false;
- showNetworkNotification(nai, NotificationType.LOGGED_IN);
- }
-
- final String redirectUrl = (msg.obj instanceof String) ? (String) msg.obj : "";
+ final NetworkAgentInfo nai = getNetworkAgentInfoForNetId(results.mNetId);
+ if (nai == null) break;
- if (DBG) {
- final String logMsg = !TextUtils.isEmpty(redirectUrl)
- ? " with redirect to " + redirectUrl
- : "";
- log(nai.name() + " validation " + (valid ? "passed" : "failed") + logMsg);
- }
- if (valid != nai.lastValidated) {
- if (wasDefault) {
- mDeps.getMetricsLogger()
- .defaultNetworkMetrics().logDefaultNetworkValidity(
- SystemClock.elapsedRealtime(), valid);
- }
- final int oldScore = nai.getCurrentScore();
- nai.lastValidated = valid;
- nai.everValidated |= valid;
- updateCapabilities(oldScore, nai, nai.networkCapabilities);
- // If score has changed, rebroadcast to NetworkProviders. b/17726566
- if (oldScore != nai.getCurrentScore()) sendUpdatedScoreToFactories(nai);
- if (valid) {
- handleFreshlyValidatedNetwork(nai);
- // Clear NO_INTERNET, PRIVATE_DNS_BROKEN, PARTIAL_CONNECTIVITY and
- // LOST_INTERNET notifications if network becomes valid.
- mNotifier.clearNotification(nai.network.netId,
- NotificationType.NO_INTERNET);
- mNotifier.clearNotification(nai.network.netId,
- NotificationType.LOST_INTERNET);
- mNotifier.clearNotification(nai.network.netId,
- NotificationType.PARTIAL_CONNECTIVITY);
- mNotifier.clearNotification(nai.network.netId,
- NotificationType.PRIVATE_DNS_BROKEN);
- // If network becomes valid, the hasShownBroken should be reset for
- // that network so that the notification will be fired when the private
- // DNS is broken again.
- nai.networkAgentConfig.hasShownBroken = false;
- }
- } else if (partialConnectivityChanged) {
- updateCapabilities(nai.getCurrentScore(), nai, nai.networkCapabilities);
- }
- updateInetCondition(nai);
- // Let the NetworkAgent know the state of its network
- Bundle redirectUrlBundle = new Bundle();
- redirectUrlBundle.putString(NetworkAgent.REDIRECT_URL_KEY, redirectUrl);
- // TODO: Evaluate to update partial connectivity to status to NetworkAgent.
- nai.asyncChannel.sendMessage(
- NetworkAgent.CMD_REPORT_NETWORK_STATUS,
- (valid ? NetworkAgent.VALID_NETWORK : NetworkAgent.INVALID_NETWORK),
- 0, redirectUrlBundle);
-
- // If NetworkMonitor detects partial connectivity before
- // EVENT_PROMPT_UNVALIDATED arrives, show the partial connectivity notification
- // immediately. Re-notify partial connectivity silently if no internet
- // notification already there.
- if (!wasPartial && nai.partialConnectivity) {
- // Remove delayed message if there is a pending message.
- mHandler.removeMessages(EVENT_PROMPT_UNVALIDATED, nai.network);
- handlePromptUnvalidated(nai.network);
- }
+ handleNetworkTested(nai, results.mTestResult,
+ (results.mRedirectUrl == null) ? "" : results.mRedirectUrl);
- if (wasValidated && !nai.lastValidated) {
- handleNetworkUnvalidated(nai);
- }
+ // Invoke ConnectivityReport generation for this Network test event.
+ final Message m =
+ mConnectivityDiagnosticsHandler.obtainMessage(
+ ConnectivityDiagnosticsHandler.EVENT_NETWORK_TESTED,
+ new ConnectivityReportEvent(results.mTimestampMillis, nai));
+ m.setData(msg.getData());
+ mConnectivityDiagnosticsHandler.sendMessage(m);
break;
}
case EVENT_PROVISIONING_NOTIFICATION: {
@@ -2868,6 +2833,87 @@ public class ConnectivityService extends IConnectivityManager.Stub
return true;
}
+ private void handleNetworkTested(
+ @NonNull NetworkAgentInfo nai, int testResult, @NonNull String redirectUrl) {
+ final boolean wasPartial = nai.partialConnectivity;
+ nai.partialConnectivity = ((testResult & NETWORK_VALIDATION_RESULT_PARTIAL) != 0);
+ final boolean partialConnectivityChanged =
+ (wasPartial != nai.partialConnectivity);
+
+ final boolean valid = ((testResult & NETWORK_VALIDATION_RESULT_VALID) != 0);
+ final boolean wasValidated = nai.lastValidated;
+ final boolean wasDefault = isDefaultNetwork(nai);
+ // Only show a connected notification if the network is pending validation
+ // after the captive portal app was open, and it has now validated.
+ if (nai.captivePortalValidationPending && valid) {
+ // User is now logged in, network validated.
+ nai.captivePortalValidationPending = false;
+ showNetworkNotification(nai, NotificationType.LOGGED_IN);
+ }
+
+ if (DBG) {
+ final String logMsg = !TextUtils.isEmpty(redirectUrl)
+ ? " with redirect to " + redirectUrl
+ : "";
+ log(nai.name() + " validation " + (valid ? "passed" : "failed") + logMsg);
+ }
+ if (valid != nai.lastValidated) {
+ if (wasDefault) {
+ mDeps.getMetricsLogger()
+ .defaultNetworkMetrics().logDefaultNetworkValidity(
+ SystemClock.elapsedRealtime(), valid);
+ }
+ final int oldScore = nai.getCurrentScore();
+ nai.lastValidated = valid;
+ nai.everValidated |= valid;
+ updateCapabilities(oldScore, nai, nai.networkCapabilities);
+ // If score has changed, rebroadcast to NetworkProviders. b/17726566
+ if (oldScore != nai.getCurrentScore()) sendUpdatedScoreToFactories(nai);
+ if (valid) {
+ handleFreshlyValidatedNetwork(nai);
+ // Clear NO_INTERNET, PRIVATE_DNS_BROKEN, PARTIAL_CONNECTIVITY and
+ // LOST_INTERNET notifications if network becomes valid.
+ mNotifier.clearNotification(nai.network.netId,
+ NotificationType.NO_INTERNET);
+ mNotifier.clearNotification(nai.network.netId,
+ NotificationType.LOST_INTERNET);
+ mNotifier.clearNotification(nai.network.netId,
+ NotificationType.PARTIAL_CONNECTIVITY);
+ mNotifier.clearNotification(nai.network.netId,
+ NotificationType.PRIVATE_DNS_BROKEN);
+ // If network becomes valid, the hasShownBroken should be reset for
+ // that network so that the notification will be fired when the private
+ // DNS is broken again.
+ nai.networkAgentConfig.hasShownBroken = false;
+ }
+ } else if (partialConnectivityChanged) {
+ updateCapabilities(nai.getCurrentScore(), nai, nai.networkCapabilities);
+ }
+ updateInetCondition(nai);
+ // Let the NetworkAgent know the state of its network
+ Bundle redirectUrlBundle = new Bundle();
+ redirectUrlBundle.putString(NetworkAgent.REDIRECT_URL_KEY, redirectUrl);
+ // TODO: Evaluate to update partial connectivity to status to NetworkAgent.
+ nai.asyncChannel.sendMessage(
+ NetworkAgent.CMD_REPORT_NETWORK_STATUS,
+ (valid ? NetworkAgent.VALID_NETWORK : NetworkAgent.INVALID_NETWORK),
+ 0, redirectUrlBundle);
+
+ // If NetworkMonitor detects partial connectivity before
+ // EVENT_PROMPT_UNVALIDATED arrives, show the partial connectivity notification
+ // immediately. Re-notify partial connectivity silently if no internet
+ // notification already there.
+ if (!wasPartial && nai.partialConnectivity) {
+ // Remove delayed message if there is a pending message.
+ mHandler.removeMessages(EVENT_PROMPT_UNVALIDATED, nai.network);
+ handlePromptUnvalidated(nai.network);
+ }
+
+ if (wasValidated && !nai.lastValidated) {
+ handleNetworkUnvalidated(nai);
+ }
+ }
+
private int getCaptivePortalMode() {
return Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.CAPTIVE_PORTAL_MODE,
@@ -2916,8 +2962,23 @@ public class ConnectivityService extends IConnectivityManager.Stub
@Override
public void notifyNetworkTested(int testResult, @Nullable String redirectUrl) {
- mTrackerHandler.sendMessage(mTrackerHandler.obtainMessage(EVENT_NETWORK_TESTED,
- testResult, mNetId, redirectUrl));
+ notifyNetworkTestedWithExtras(testResult, redirectUrl, SystemClock.elapsedRealtime(),
+ PersistableBundle.EMPTY);
+ }
+
+ @Override
+ public void notifyNetworkTestedWithExtras(
+ int testResult,
+ @Nullable String redirectUrl,
+ long timestampMillis,
+ @NonNull PersistableBundle extras) {
+ final Message msg =
+ mTrackerHandler.obtainMessage(
+ EVENT_NETWORK_TESTED,
+ new NetworkTestedResults(
+ mNetId, testResult, timestampMillis, redirectUrl));
+ msg.setData(new Bundle(extras));
+ mTrackerHandler.sendMessage(msg);
}
@Override
@@ -2959,6 +3020,21 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
@Override
+ public void notifyDataStallSuspected(
+ long timestampMillis, int detectionMethod, PersistableBundle extras) {
+ final Message msg =
+ mConnectivityDiagnosticsHandler.obtainMessage(
+ ConnectivityDiagnosticsHandler.EVENT_DATA_STALL_SUSPECTED,
+ detectionMethod, mNetId, timestampMillis);
+ msg.setData(new Bundle(extras));
+
+ // NetworkStateTrackerHandler currently doesn't take any actions based on data
+ // stalls so send the message directly to ConnectivityDiagnosticsHandler and avoid
+ // the cost of going through two handlers.
+ mConnectivityDiagnosticsHandler.sendMessage(msg);
+ }
+
+ @Override
public int getInterfaceVersion() {
return this.VERSION;
}
@@ -3391,18 +3467,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
nri.unlinkDeathRecipient();
mNetworkRequests.remove(nri.request);
- synchronized (mUidToNetworkRequestCount) {
- int requests = mUidToNetworkRequestCount.get(nri.mUid, 0);
- if (requests < 1) {
- Slog.wtf(TAG, "BUG: too small request count " + requests + " for UID " +
- nri.mUid);
- } else if (requests == 1) {
- mUidToNetworkRequestCount.removeAt(
- mUidToNetworkRequestCount.indexOfKey(nri.mUid));
- } else {
- mUidToNetworkRequestCount.put(nri.mUid, requests - 1);
- }
- }
+ decrementNetworkRequestPerUidCount(nri);
mNetworkRequestInfoLogs.log("RELEASE " + nri);
if (nri.request.isRequest()) {
@@ -3473,6 +3538,19 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
}
+ private void decrementNetworkRequestPerUidCount(final NetworkRequestInfo nri) {
+ synchronized (mUidToNetworkRequestCount) {
+ final int requests = mUidToNetworkRequestCount.get(nri.mUid, 0);
+ if (requests < 1) {
+ Slog.wtf(TAG, "BUG: too small request count " + requests + " for UID " + nri.mUid);
+ } else if (requests == 1) {
+ mUidToNetworkRequestCount.removeAt(mUidToNetworkRequestCount.indexOfKey(nri.mUid));
+ } else {
+ mUidToNetworkRequestCount.put(nri.mUid, requests - 1);
+ }
+ }
+ }
+
@Override
public void setAcceptUnvalidated(Network network, boolean accept, boolean always) {
enforceNetworkStackSettingsOrSetup();
@@ -4130,6 +4208,19 @@ public class ConnectivityService extends IConnectivityManager.Stub
final int connectivityInfo = encodeBool(hasConnectivity);
mHandler.sendMessage(
mHandler.obtainMessage(EVENT_REVALIDATE_NETWORK, uid, connectivityInfo, network));
+
+ final NetworkAgentInfo nai;
+ if (network == null) {
+ nai = getDefaultNetwork();
+ } else {
+ nai = getNetworkAgentInfoForNetwork(network);
+ }
+ if (nai != null) {
+ mConnectivityDiagnosticsHandler.sendMessage(
+ mConnectivityDiagnosticsHandler.obtainMessage(
+ ConnectivityDiagnosticsHandler.EVENT_NETWORK_CONNECTIVITY_REPORTED,
+ connectivityInfo, 0, nai));
+ }
}
private void handleReportNetworkConnectivity(
@@ -4305,7 +4396,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
throwIfLockdownEnabled();
Vpn vpn = mVpns.get(userId);
if (vpn != null) {
- return vpn.prepare(oldPackage, newPackage);
+ return vpn.prepare(oldPackage, newPackage, VpnManager.TYPE_VPN_SERVICE);
} else {
return false;
}
@@ -4313,26 +4404,29 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
/**
- * Set whether the VPN package has the ability to launch VPNs without user intervention.
- * This method is used by system-privileged apps.
- * VPN permissions are checked in the {@link Vpn} class. If the caller is not {@code userId},
- * {@link android.Manifest.permission.INTERACT_ACROSS_USERS_FULL} permission is required.
+ * Set whether the VPN package has the ability to launch VPNs without user intervention. This
+ * method is used by system-privileged apps. VPN permissions are checked in the {@link Vpn}
+ * class. If the caller is not {@code userId}, {@link
+ * android.Manifest.permission.INTERACT_ACROSS_USERS_FULL} permission is required.
*
* @param packageName The package for which authorization state should change.
* @param userId User for whom {@code packageName} is installed.
* @param authorized {@code true} if this app should be able to start a VPN connection without
- * explicit user approval, {@code false} if not.
- *
+ * explicit user approval, {@code false} if not.
+ * @param vpnType The {@link VpnManager.VpnType} constant representing what class of VPN
+ * permissions should be granted. When unauthorizing an app, {@link
+ * VpnManager.TYPE_VPN_NONE} should be used.
* @hide
*/
@Override
- public void setVpnPackageAuthorization(String packageName, int userId, boolean authorized) {
+ public void setVpnPackageAuthorization(
+ String packageName, int userId, @VpnManager.VpnType int vpnType) {
enforceCrossUserPermission(userId);
synchronized (mVpns) {
Vpn vpn = mVpns.get(userId);
if (vpn != null) {
- vpn.setPackageAuthorization(packageName, authorized);
+ vpn.setPackageAuthorization(packageName, vpnType);
}
}
}
@@ -4354,6 +4448,78 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
/**
+ * Stores the given VPN profile based on the provisioning package name.
+ *
+ * <p>If there is already a VPN profile stored for the provisioning package, this call will
+ * overwrite the profile.
+ *
+ * <p>This is designed to serve the VpnManager only; settings-based VPN profiles are managed
+ * exclusively by the Settings app, and passed into the platform at startup time.
+ *
+ * @return {@code true} if user consent has already been granted, {@code false} otherwise.
+ * @hide
+ */
+ @Override
+ public boolean provisionVpnProfile(@NonNull VpnProfile profile, @NonNull String packageName) {
+ final int user = UserHandle.getUserId(Binder.getCallingUid());
+ synchronized (mVpns) {
+ return mVpns.get(user).provisionVpnProfile(packageName, profile, mKeyStore);
+ }
+ }
+
+ /**
+ * Deletes the stored VPN profile for the provisioning package
+ *
+ * <p>If there are no profiles for the given package, this method will silently succeed.
+ *
+ * <p>This is designed to serve the VpnManager only; settings-based VPN profiles are managed
+ * exclusively by the Settings app, and passed into the platform at startup time.
+ *
+ * @hide
+ */
+ @Override
+ public void deleteVpnProfile(@NonNull String packageName) {
+ final int user = UserHandle.getUserId(Binder.getCallingUid());
+ synchronized (mVpns) {
+ mVpns.get(user).deleteVpnProfile(packageName, mKeyStore);
+ }
+ }
+
+ /**
+ * Starts the VPN based on the stored profile for the given package
+ *
+ * <p>This is designed to serve the VpnManager only; settings-based VPN profiles are managed
+ * exclusively by the Settings app, and passed into the platform at startup time.
+ *
+ * @throws IllegalArgumentException if no profile was found for the given package name.
+ * @hide
+ */
+ @Override
+ public void startVpnProfile(@NonNull String packageName) {
+ final int user = UserHandle.getUserId(Binder.getCallingUid());
+ synchronized (mVpns) {
+ throwIfLockdownEnabled();
+ mVpns.get(user).startVpnProfile(packageName, mKeyStore);
+ }
+ }
+
+ /**
+ * Stops the Platform VPN if the provided package is running one.
+ *
+ * <p>This is designed to serve the VpnManager only; settings-based VPN profiles are managed
+ * exclusively by the Settings app, and passed into the platform at startup time.
+ *
+ * @hide
+ */
+ @Override
+ public void stopVpnProfile(@NonNull String packageName) {
+ final int user = UserHandle.getUserId(Binder.getCallingUid());
+ synchronized (mVpns) {
+ mVpns.get(user).stopVpnProfile(packageName);
+ }
+ }
+
+ /**
* Start legacy VPN, controlling native daemons as needed. Creates a
* secondary thread to perform connection work, returning quickly.
*/
@@ -4556,6 +4722,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
}
+ /**
+ * Throws if there is any currently running, always-on Legacy VPN.
+ *
+ * <p>The LockdownVpnTracker and mLockdownEnabled both track whether an always-on Legacy VPN is
+ * running across the entire system. Tracking for app-based VPNs is done on a per-user,
+ * per-package basis in Vpn.java
+ */
@GuardedBy("mVpns")
private void throwIfLockdownEnabled() {
if (mLockdownEnabled) {
@@ -5091,6 +5264,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
}
+ NetworkRequestInfo(NetworkRequest r) {
+ this(r, null);
+ }
+
private void enforceRequestCountLimit() {
synchronized (mUidToNetworkRequestCount) {
int networkRequests = mUidToNetworkRequestCount.get(mUid, 0) + 1;
@@ -5130,7 +5307,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
// This checks that the passed capabilities either do not request a
// specific SSID/SignalStrength, or the calling app has permission to do so.
private void ensureSufficientPermissionsForRequest(NetworkCapabilities nc,
- int callerPid, int callerUid) {
+ int callerPid, int callerUid, String callerPackageName) {
if (null != nc.getSSID() && !checkSettingsPermission(callerPid, callerUid)) {
throw new SecurityException("Insufficient permissions to request a specific SSID");
}
@@ -5140,6 +5317,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
throw new SecurityException(
"Insufficient permissions to request a specific signal strength");
}
+ mAppOpsManager.checkPackage(callerUid, callerPackageName);
}
private ArrayList<Integer> getSignalStrengthThresholds(NetworkAgentInfo nai) {
@@ -5186,7 +5364,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
return;
}
MatchAllNetworkSpecifier.checkNotMatchAllNetworkSpecifier(ns);
- ns.assertValidFromUid(Binder.getCallingUid());
}
private void ensureValid(NetworkCapabilities nc) {
@@ -5198,7 +5375,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
@Override
public NetworkRequest requestNetwork(NetworkCapabilities networkCapabilities,
- Messenger messenger, int timeoutMs, IBinder binder, int legacyType) {
+ Messenger messenger, int timeoutMs, IBinder binder, int legacyType,
+ @NonNull String callingPackageName) {
+ final int callingUid = Binder.getCallingUid();
final NetworkRequest.Type type = (networkCapabilities == null)
? NetworkRequest.Type.TRACK_DEFAULT
: NetworkRequest.Type.REQUEST;
@@ -5206,7 +5385,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
// the default network request. This allows callers to keep track of
// the system default network.
if (type == NetworkRequest.Type.TRACK_DEFAULT) {
- networkCapabilities = createDefaultNetworkCapabilitiesForUid(Binder.getCallingUid());
+ networkCapabilities = createDefaultNetworkCapabilitiesForUid(callingUid);
enforceAccessPermission();
} else {
networkCapabilities = new NetworkCapabilities(networkCapabilities);
@@ -5218,13 +5397,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
ensureRequestableCapabilities(networkCapabilities);
ensureSufficientPermissionsForRequest(networkCapabilities,
- Binder.getCallingPid(), Binder.getCallingUid());
+ Binder.getCallingPid(), callingUid, callingPackageName);
// Set the UID range for this request to the single UID of the requester, or to an empty
// set of UIDs if the caller has the appropriate permission and UIDs have not been set.
// This will overwrite any allowed UIDs in the requested capabilities. Though there
// are no visible methods to set the UIDs, an app could use reflection to try and get
// networks for other apps so it's essential that the UIDs are overwritten.
- restrictRequestUidsForCaller(networkCapabilities);
+ restrictRequestUidsForCallerAndSetRequestorInfo(networkCapabilities,
+ callingUid, callingPackageName);
if (timeoutMs < 0) {
throw new IllegalArgumentException("Bad timeout specified");
@@ -5299,16 +5479,18 @@ public class ConnectivityService extends IConnectivityManager.Stub
@Override
public NetworkRequest pendingRequestForNetwork(NetworkCapabilities networkCapabilities,
- PendingIntent operation) {
+ PendingIntent operation, @NonNull String callingPackageName) {
Objects.requireNonNull(operation, "PendingIntent cannot be null.");
+ final int callingUid = Binder.getCallingUid();
networkCapabilities = new NetworkCapabilities(networkCapabilities);
enforceNetworkRequestPermissions(networkCapabilities);
enforceMeteredApnPolicy(networkCapabilities);
ensureRequestableCapabilities(networkCapabilities);
ensureSufficientPermissionsForRequest(networkCapabilities,
- Binder.getCallingPid(), Binder.getCallingUid());
+ Binder.getCallingPid(), callingUid, callingPackageName);
ensureValidNetworkSpecifier(networkCapabilities);
- restrictRequestUidsForCaller(networkCapabilities);
+ restrictRequestUidsForCallerAndSetRequestorInfo(networkCapabilities,
+ callingUid, callingPackageName);
NetworkRequest networkRequest = new NetworkRequest(networkCapabilities, TYPE_NONE,
nextNetworkRequestId(), NetworkRequest.Type.REQUEST);
@@ -5356,15 +5538,16 @@ public class ConnectivityService extends IConnectivityManager.Stub
@Override
public NetworkRequest listenForNetwork(NetworkCapabilities networkCapabilities,
- Messenger messenger, IBinder binder) {
+ Messenger messenger, IBinder binder, @NonNull String callingPackageName) {
+ final int callingUid = Binder.getCallingUid();
if (!hasWifiNetworkListenPermission(networkCapabilities)) {
enforceAccessPermission();
}
NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities);
ensureSufficientPermissionsForRequest(networkCapabilities,
- Binder.getCallingPid(), Binder.getCallingUid());
- restrictRequestUidsForCaller(nc);
+ Binder.getCallingPid(), callingUid, callingPackageName);
+ restrictRequestUidsForCallerAndSetRequestorInfo(nc, callingUid, callingPackageName);
// Apps without the CHANGE_NETWORK_STATE permission can't use background networks, so
// make all their listens include NET_CAPABILITY_FOREGROUND. That way, they will get
// onLost and onAvailable callbacks when networks move in and out of the background.
@@ -5384,17 +5567,17 @@ public class ConnectivityService extends IConnectivityManager.Stub
@Override
public void pendingListenForNetwork(NetworkCapabilities networkCapabilities,
- PendingIntent operation) {
+ PendingIntent operation, @NonNull String callingPackageName) {
Objects.requireNonNull(operation, "PendingIntent cannot be null.");
+ final int callingUid = Binder.getCallingUid();
if (!hasWifiNetworkListenPermission(networkCapabilities)) {
enforceAccessPermission();
}
ensureValid(networkCapabilities);
ensureSufficientPermissionsForRequest(networkCapabilities,
- Binder.getCallingPid(), Binder.getCallingUid());
-
+ Binder.getCallingPid(), callingUid, callingPackageName);
final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities);
- restrictRequestUidsForCaller(nc);
+ restrictRequestUidsForCallerAndSetRequestorInfo(nc, callingUid, callingPackageName);
NetworkRequest networkRequest = new NetworkRequest(nc, TYPE_NONE, nextNetworkRequestId(),
NetworkRequest.Type.LISTEN);
@@ -5537,20 +5720,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
return nri.request.requestId == mDefaultRequest.requestId;
}
- // TODO : remove this method. It's a stopgap measure to help sheperding a number of dependent
- // changes that would conflict throughout the automerger graph. Having this method temporarily
- // helps with the process of going through with all these dependent changes across the entire
- // tree.
- /**
- * Register a new agent. {@see #registerNetworkAgent} below.
- */
- public Network registerNetworkAgent(Messenger messenger, NetworkInfo networkInfo,
- LinkProperties linkProperties, NetworkCapabilities networkCapabilities,
- int currentScore, NetworkAgentConfig networkAgentConfig) {
- return registerNetworkAgent(messenger, networkInfo, linkProperties, networkCapabilities,
- currentScore, networkAgentConfig, NetworkProvider.ID_NONE);
- }
-
/**
* Register a new agent with ConnectivityService to handle a network.
*
@@ -5569,7 +5738,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
*/
public Network registerNetworkAgent(Messenger messenger, NetworkInfo networkInfo,
LinkProperties linkProperties, NetworkCapabilities networkCapabilities,
- int currentScore, NetworkAgentConfig networkAgentConfig, int providerId) {
+ NetworkScore currentScore, NetworkAgentConfig networkAgentConfig, int providerId) {
enforceNetworkFactoryPermission();
LinkProperties lp = new LinkProperties(linkProperties);
@@ -5577,12 +5746,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
// TODO: Instead of passing mDefaultRequest, provide an API to determine whether a Network
// satisfies mDefaultRequest.
final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities);
- final NetworkScore ns = new NetworkScore();
- ns.putIntExtension(NetworkScore.LEGACY_SCORE, currentScore);
final NetworkAgentInfo nai = new NetworkAgentInfo(messenger, new AsyncChannel(),
new Network(mNetIdManager.reserveNetId()), new NetworkInfo(networkInfo), lp, nc,
- ns, mContext, mTrackerHandler, new NetworkAgentConfig(networkAgentConfig), this,
- mNetd, mDnsResolver, mNMS, providerId);
+ currentScore, mContext, mTrackerHandler, new NetworkAgentConfig(networkAgentConfig),
+ this, mNetd, mDnsResolver, mNMS, providerId);
// Make sure the network capabilities reflect what the agent info says.
nai.getAndSetNetworkCapabilities(mixInCapabilities(nai, nc));
final String extraInfo = networkInfo.getExtraInfo();
@@ -6109,12 +6276,16 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
}
- private void sendUpdatedScoreToFactories(NetworkRequest networkRequest, NetworkAgentInfo nai) {
- int score = 0;
- int serial = 0;
+ private void sendUpdatedScoreToFactories(@NonNull NetworkRequest networkRequest,
+ @Nullable NetworkAgentInfo nai) {
+ final int score;
+ final int serial;
if (nai != null) {
score = nai.getCurrentScore();
serial = nai.factorySerialNumber;
+ } else {
+ score = 0;
+ serial = 0;
}
if (VDBG || DDBG){
log("sending new Min Network Score(" + score + "): " + networkRequest.toString());
@@ -6181,7 +6352,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
private void callCallbackForRequest(NetworkRequestInfo nri,
NetworkAgentInfo networkAgent, int notificationType, int arg1) {
if (nri.messenger == null) {
- return; // Default request has no msgr
+ // Default request has no msgr. Also prevents callbacks from being invoked for
+ // NetworkRequestInfos registered with ConnectivityDiagnostics requests. Those callbacks
+ // are Type.LISTEN, but should not have NetworkCallbacks invoked.
+ return;
}
Bundle bundle = new Bundle();
// TODO: check if defensive copies of data is needed.
@@ -6274,20 +6448,28 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
}
- private void makeDefault(@NonNull final NetworkAgentInfo newNetwork) {
+ private void makeDefault(@Nullable final NetworkAgentInfo newNetwork) {
if (DBG) log("Switching to new default network: " + newNetwork);
+ mDefaultNetworkNai = newNetwork;
+
try {
- mNMS.setDefaultNetId(newNetwork.network.netId);
+ if (null != newNetwork) {
+ mNMS.setDefaultNetId(newNetwork.network.netId);
+ } else {
+ mNMS.clearDefaultNetId();
+ }
} catch (Exception e) {
loge("Exception setting default network :" + e);
}
- mDefaultNetworkNai = newNetwork;
notifyLockdownVpn(newNetwork);
- handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
- updateTcpBufferSizes(newNetwork.linkProperties.getTcpBufferSizes());
- mDnsManager.setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers());
+ handleApplyDefaultProxy(null != newNetwork
+ ? newNetwork.linkProperties.getHttpProxy() : null);
+ updateTcpBufferSizes(null != newNetwork
+ ? newNetwork.linkProperties.getTcpBufferSizes() : null);
+ mDnsManager.setDefaultDnsSystemProperties(null != newNetwork
+ ? newNetwork.linkProperties.getDnsServers() : Collections.EMPTY_LIST);
notifyIfacesChangedForNetworkStats();
// Fix up the NetworkCapabilities of any VPNs that don't specify underlying networks.
updateAllVpnsCapabilities();
@@ -6335,18 +6517,80 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
}
+ static class RequestReassignment {
+ @NonNull public final NetworkRequestInfo mRequest;
+ @Nullable public final NetworkAgentInfo mOldNetwork;
+ @Nullable public final NetworkAgentInfo mNewNetwork;
+ RequestReassignment(@NonNull final NetworkRequestInfo request,
+ @Nullable final NetworkAgentInfo oldNetwork,
+ @Nullable final NetworkAgentInfo newNetwork) {
+ mRequest = request;
+ mOldNetwork = oldNetwork;
+ mNewNetwork = newNetwork;
+ }
+ }
+
@NonNull private final Set<NetworkBgStatePair> mRematchedNetworks = new ArraySet<>();
+ @NonNull private final Map<NetworkRequestInfo, RequestReassignment> mReassignments =
+ new ArrayMap<>();
@NonNull Iterable<NetworkBgStatePair> getRematchedNetworks() {
return mRematchedNetworks;
}
+ @NonNull Iterable<RequestReassignment> getRequestReassignments() {
+ return mReassignments.values();
+ }
+
+ void addRequestReassignment(@NonNull final RequestReassignment reassignment) {
+ final RequestReassignment oldChange = mReassignments.get(reassignment.mRequest);
+ if (null == oldChange) {
+ mReassignments.put(reassignment.mRequest, reassignment);
+ return;
+ }
+ if (oldChange.mNewNetwork != reassignment.mOldNetwork) {
+ throw new IllegalArgumentException("Reassignment <" + reassignment.mRequest + "> ["
+ + reassignment.mOldNetwork + " -> " + reassignment.mNewNetwork
+ + "] conflicts with ["
+ + oldChange.mOldNetwork + " -> " + oldChange.mNewNetwork + "]");
+ }
+ // There was already a note to reassign this request from a network A to a network B,
+ // and a reassignment is added from network B to some other network C. The following
+ // synthesizes the merged reassignment that goes A -> C. An interesting (but not
+ // special) case to think about is when B is null, which can happen when the rematch
+ // loop notices the current satisfier doesn't satisfy the request any more, but
+ // hasn't yet encountered another network that could.
+ mReassignments.put(reassignment.mRequest, new RequestReassignment(reassignment.mRequest,
+ oldChange.mOldNetwork, reassignment.mNewNetwork));
+ }
+
void addRematchedNetwork(@NonNull final NetworkBgStatePair network) {
mRematchedNetworks.add(network);
}
+
+ // Will return null if this reassignment does not change the network assigned to
+ // the passed request.
+ @Nullable
+ private RequestReassignment getReassignment(@NonNull final NetworkRequestInfo nri) {
+ for (final RequestReassignment event : getRequestReassignments()) {
+ if (nri == event.mRequest) return event;
+ }
+ return null;
+ }
+ }
+
+ // TODO : remove this when it's useless
+ @NonNull private NetworkReassignment computeInitialReassignment() {
+ final NetworkReassignment change = new NetworkReassignment();
+ for (NetworkRequestInfo nri : mNetworkRequests.values()) {
+ change.addRequestReassignment(new NetworkReassignment.RequestReassignment(nri,
+ nri.mSatisfier, nri.mSatisfier));
+ }
+ return change;
}
private ArrayMap<NetworkRequestInfo, NetworkAgentInfo> computeRequestReassignmentForNetwork(
+ @NonNull final NetworkReassignment changes,
@NonNull final NetworkAgentInfo newNetwork) {
final int score = newNetwork.getCurrentScore();
final ArrayMap<NetworkRequestInfo, NetworkAgentInfo> reassignedRequests = new ArrayMap<>();
@@ -6357,7 +6601,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
// requests or not, and doesn't affect the network's score.
if (nri.request.isListen()) continue;
- final NetworkAgentInfo currentNetwork = nri.mSatisfier;
+ // The reassignment has been seeded with the initial assignment, therefore
+ // getReassignment can't be null and mNewNetwork is only null if there was no
+ // satisfier in the first place or there was an explicit reassignment to null.
+ final NetworkAgentInfo currentNetwork = changes.getReassignment(nri).mNewNetwork;
final boolean satisfies = newNetwork.satisfies(nri.request);
if (newNetwork == currentNetwork && satisfies) continue;
@@ -6374,7 +6621,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
if (currentNetwork == null || currentNetwork.getCurrentScore() < score) {
reassignedRequests.put(nri, newNetwork);
}
- } else if (newNetwork.isSatisfyingRequest(nri.request.requestId)) {
+ } else if (newNetwork == currentNetwork) {
reassignedRequests.put(nri, null);
}
}
@@ -6387,19 +6634,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
// satisfied by newNetwork, and reassigns to newNetwork
// any such requests for which newNetwork is the best.
//
- // - Lingers any validated Networks that as a result are no longer
- // needed. A network is needed if it is the best network for
- // one or more NetworkRequests, or if it is a VPN.
- //
// - Writes into the passed reassignment object all changes that should be done for
// rematching this network with all requests, to be applied later.
//
- // NOTE: This function only adds NetworkRequests that "newNetwork" could satisfy,
- // it does not remove NetworkRequests that other Networks could better satisfy.
- // If you need to handle decreases in score, use {@link rematchAllNetworksAndRequests}.
- // This function should be used when possible instead of {@code rematchAllNetworksAndRequests}
- // as it performs better by a factor of the number of Networks.
- //
// TODO : stop writing to the passed reassignment. This is temporarily more useful, but
// it's unidiomatic Java and it's hard to read.
//
@@ -6410,31 +6647,24 @@ public class ConnectivityService extends IConnectivityManager.Stub
@NonNull final NetworkAgentInfo newNetwork, final long now) {
ensureRunningOnConnectivityServiceThread();
if (!newNetwork.everConnected) return;
- boolean isNewDefault = false;
- NetworkAgentInfo oldDefaultNetwork = null;
changes.addRematchedNetwork(new NetworkReassignment.NetworkBgStatePair(newNetwork,
newNetwork.isBackgroundNetwork()));
- final int score = newNetwork.getCurrentScore();
-
if (VDBG || DDBG) log("rematching " + newNetwork.name());
final ArrayMap<NetworkRequestInfo, NetworkAgentInfo> reassignedRequests =
- computeRequestReassignmentForNetwork(newNetwork);
-
- NetworkCapabilities nc = newNetwork.networkCapabilities;
- if (VDBG) log(" network has: " + nc);
+ computeRequestReassignmentForNetwork(changes, newNetwork);
// Find and migrate to this Network any NetworkRequests for
// which this network is now the best.
- final ArrayList<NetworkAgentInfo> removedRequests = new ArrayList<>();
- final ArrayList<NetworkRequestInfo> addedRequests = new ArrayList<>();
for (final Map.Entry<NetworkRequestInfo, NetworkAgentInfo> entry :
reassignedRequests.entrySet()) {
final NetworkRequestInfo nri = entry.getKey();
final NetworkAgentInfo previousSatisfier = nri.mSatisfier;
final NetworkAgentInfo newSatisfier = entry.getValue();
+ changes.addRequestReassignment(new NetworkReassignment.RequestReassignment(
+ nri, previousSatisfier, newSatisfier));
if (newSatisfier != null) {
if (VDBG) log("rematch for " + newSatisfier.name());
if (previousSatisfier != null) {
@@ -6443,29 +6673,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
previousSatisfier.removeRequest(nri.request.requestId);
previousSatisfier.lingerRequest(nri.request, now, mLingerDelayMs);
- removedRequests.add(previousSatisfier);
} else {
if (VDBG || DDBG) log(" accepting network in place of null");
}
newSatisfier.unlingerRequest(nri.request);
- nri.mSatisfier = newSatisfier;
if (!newSatisfier.addRequest(nri.request)) {
Slog.wtf(TAG, "BUG: " + newSatisfier.name() + " already has " + nri.request);
}
- addedRequests.add(nri);
- // Tell NetworkProviders about the new score, so they can stop
- // trying to connect if they know they cannot match it.
- // TODO - this could get expensive if we have a lot of requests for this
- // network. Think about if there is a way to reduce this. Push
- // netid->request mapping to each provider?
- sendUpdatedScoreToFactories(nri.request, newSatisfier);
- if (isDefaultRequest(nri)) {
- isNewDefault = true;
- oldDefaultNetwork = previousSatisfier;
- if (previousSatisfier != null) {
- mLingerMonitor.noteLingerDefaultNetwork(previousSatisfier, newSatisfier);
- }
- }
} else {
// If "newNetwork" is listed as satisfying "nri" but no longer satisfies "nri",
// mark it as no longer satisfying "nri". Because networks are processed by
@@ -6479,51 +6693,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
" request " + nri.request.requestId);
}
newNetwork.removeRequest(nri.request.requestId);
- if (previousSatisfier == newNetwork) {
- nri.mSatisfier = null;
- if (isDefaultRequest(nri)) mDefaultNetworkNai = null;
- sendUpdatedScoreToFactories(nri.request, null);
- } else {
- Slog.wtf(TAG, "BUG: Removing request " + nri.request.requestId + " from " +
- newNetwork.name() +
- " without updating mSatisfier or providers!");
- }
- // TODO: Technically, sending CALLBACK_LOST here is
- // incorrect if there is a replacement network currently
- // connected that can satisfy nri, which is a request
- // (not a listen). However, the only capability that can both
- // a) be requested and b) change is NET_CAPABILITY_TRUSTED,
- // so this code is only incorrect for a network that loses
- // the TRUSTED capability, which is a rare case.
- callCallbackForRequest(nri, newNetwork, ConnectivityManager.CALLBACK_LOST, 0);
}
+ nri.mSatisfier = newSatisfier;
}
-
- if (isNewDefault) {
- updateDataActivityTracking(newNetwork, oldDefaultNetwork);
- // Notify system services that this network is up.
- makeDefault(newNetwork);
- // Log 0 -> X and Y -> X default network transitions, where X is the new default.
- mDeps.getMetricsLogger().defaultNetworkMetrics().logDefaultNetworkEvent(
- now, newNetwork, oldDefaultNetwork);
- // Have a new default network, release the transition wakelock in
- scheduleReleaseNetworkTransitionWakelock();
- }
-
- if (!newNetwork.networkCapabilities.equalRequestableCapabilities(nc)) {
- Slog.wtf(TAG, String.format(
- "BUG: %s changed requestable capabilities during rematch: %s -> %s",
- newNetwork.name(), nc, newNetwork.networkCapabilities));
- }
- if (newNetwork.getCurrentScore() != score) {
- Slog.wtf(TAG, String.format(
- "BUG: %s changed score during rematch: %d -> %d",
- newNetwork.name(), score, newNetwork.getCurrentScore()));
- }
-
- // Notify requested networks are available after the default net is switched, but
- // before LegacyTypeTracker sends legacy broadcasts
- for (NetworkRequestInfo nri : addedRequests) notifyNetworkAvailable(newNetwork, nri);
}
/**
@@ -6545,12 +6717,50 @@ public class ConnectivityService extends IConnectivityManager.Stub
// scoring network and then a higher scoring network, which could produce multiple
// callbacks.
Arrays.sort(nais);
- final NetworkReassignment changes = new NetworkReassignment();
+ final NetworkReassignment changes = computeInitialReassignment();
for (final NetworkAgentInfo nai : nais) {
rematchNetworkAndRequests(changes, nai, now);
}
- final NetworkAgentInfo newDefaultNetwork = getDefaultNetwork();
+ final NetworkRequestInfo defaultRequestInfo = mNetworkRequests.get(mDefaultRequest);
+ final NetworkReassignment.RequestReassignment reassignment =
+ changes.getReassignment(defaultRequestInfo);
+ final NetworkAgentInfo newDefaultNetwork =
+ null != reassignment ? reassignment.mNewNetwork : oldDefaultNetwork;
+
+ if (oldDefaultNetwork != newDefaultNetwork) {
+ if (oldDefaultNetwork != null) {
+ mLingerMonitor.noteLingerDefaultNetwork(oldDefaultNetwork, newDefaultNetwork);
+ }
+ updateDataActivityTracking(newDefaultNetwork, oldDefaultNetwork);
+ // Notify system services of the new default.
+ makeDefault(newDefaultNetwork);
+ // Log 0 -> X and Y -> X default network transitions, where X is the new default.
+ mDeps.getMetricsLogger().defaultNetworkMetrics().logDefaultNetworkEvent(
+ now, newDefaultNetwork, oldDefaultNetwork);
+ // Have a new default network, release the transition wakelock in
+ scheduleReleaseNetworkTransitionWakelock();
+ }
+
+ // Notify requested networks are available after the default net is switched, but
+ // before LegacyTypeTracker sends legacy broadcasts
+ for (final NetworkReassignment.RequestReassignment event :
+ changes.getRequestReassignments()) {
+ if (event.mOldNetwork == event.mNewNetwork) continue;
+
+ // Tell NetworkProviders about the new score, so they can stop
+ // trying to connect if they know they cannot match it.
+ // TODO - this could get expensive if there are a lot of outstanding requests for this
+ // network. Think of a way to reduce this. Push netid->request mapping to each factory?
+ sendUpdatedScoreToFactories(event.mRequest.request, event.mNewNetwork);
+
+ if (null != event.mNewNetwork) {
+ notifyNetworkAvailable(event.mNewNetwork, event.mRequest);
+ } else {
+ callCallbackForRequest(event.mRequest, event.mOldNetwork,
+ ConnectivityManager.CALLBACK_LOST, 0);
+ }
+ }
for (final NetworkReassignment.NetworkBgStatePair event : changes.getRematchedNetworks()) {
// Process listen requests and update capabilities if the background state has
@@ -7126,7 +7336,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
final String alwaysOnPackage = getAlwaysOnVpnPackage(userId);
if (alwaysOnPackage != null) {
setAlwaysOnVpnPackage(userId, null, false, null);
- setVpnPackageAuthorization(alwaysOnPackage, userId, false);
+ setVpnPackageAuthorization(alwaysOnPackage, userId, VpnManager.TYPE_VPN_NONE);
}
// Turn Always-on VPN off
@@ -7149,7 +7359,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
} else {
// Prevent this app (packagename = vpnConfig.user) from initiating
// VPN connections in the future without user intervention.
- setVpnPackageAuthorization(vpnConfig.user, userId, false);
+ setVpnPackageAuthorization(
+ vpnConfig.user, userId, VpnManager.TYPE_VPN_NONE);
prepareVpn(null, VpnConfig.LEGACY_VPN, userId);
}
@@ -7250,7 +7461,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
@GuardedBy("mVpns")
private Vpn getVpnIfOwner() {
- final int uid = Binder.getCallingUid();
+ return getVpnIfOwner(Binder.getCallingUid());
+ }
+
+ @GuardedBy("mVpns")
+ private Vpn getVpnIfOwner(int uid) {
final int user = UserHandle.getUserId(uid);
final Vpn vpn = mVpns.get(user);
@@ -7337,19 +7552,359 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
}
+ /**
+ * Handler used for managing all Connectivity Diagnostics related functions.
+ *
+ * @see android.net.ConnectivityDiagnosticsManager
+ *
+ * TODO(b/147816404): Explore moving ConnectivityDiagnosticsHandler to a separate file
+ */
+ @VisibleForTesting
+ class ConnectivityDiagnosticsHandler extends Handler {
+ private final String mTag = ConnectivityDiagnosticsHandler.class.getSimpleName();
+
+ /**
+ * Used to handle ConnectivityDiagnosticsCallback registration events from {@link
+ * android.net.ConnectivityDiagnosticsManager}.
+ * obj = ConnectivityDiagnosticsCallbackInfo with IConnectivityDiagnosticsCallback and
+ * NetworkRequestInfo to be registered
+ */
+ private static final int EVENT_REGISTER_CONNECTIVITY_DIAGNOSTICS_CALLBACK = 1;
+
+ /**
+ * Used to handle ConnectivityDiagnosticsCallback unregister events from {@link
+ * android.net.ConnectivityDiagnosticsManager}.
+ * obj = the IConnectivityDiagnosticsCallback to be unregistered
+ * arg1 = the uid of the caller
+ */
+ private static final int EVENT_UNREGISTER_CONNECTIVITY_DIAGNOSTICS_CALLBACK = 2;
+
+ /**
+ * Event for {@link NetworkStateTrackerHandler} to trigger ConnectivityReport callbacks
+ * after processing {@link #EVENT_NETWORK_TESTED} events.
+ * obj = {@link ConnectivityReportEvent} representing ConnectivityReport info reported from
+ * NetworkMonitor.
+ * data = PersistableBundle of extras passed from NetworkMonitor.
+ *
+ * <p>See {@link ConnectivityService#EVENT_NETWORK_TESTED}.
+ */
+ private static final int EVENT_NETWORK_TESTED = ConnectivityService.EVENT_NETWORK_TESTED;
+
+ /**
+ * Event for NetworkMonitor to inform ConnectivityService that a potential data stall has
+ * been detected on the network.
+ * obj = Long the timestamp (in millis) for when the suspected data stall was detected.
+ * arg1 = {@link DataStallReport#DetectionMethod} indicating the detection method.
+ * arg2 = NetID.
+ * data = PersistableBundle of extras passed from NetworkMonitor.
+ */
+ private static final int EVENT_DATA_STALL_SUSPECTED = 4;
+
+ /**
+ * Event for ConnectivityDiagnosticsHandler to handle network connectivity being reported to
+ * the platform. This event will invoke {@link
+ * IConnectivityDiagnosticsCallback#onNetworkConnectivityReported} for permissioned
+ * callbacks.
+ * obj = Network that was reported on
+ * arg1 = boolint for the quality reported
+ */
+ private static final int EVENT_NETWORK_CONNECTIVITY_REPORTED = 5;
+
+ private ConnectivityDiagnosticsHandler(Looper looper) {
+ super(looper);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case EVENT_REGISTER_CONNECTIVITY_DIAGNOSTICS_CALLBACK: {
+ handleRegisterConnectivityDiagnosticsCallback(
+ (ConnectivityDiagnosticsCallbackInfo) msg.obj);
+ break;
+ }
+ case EVENT_UNREGISTER_CONNECTIVITY_DIAGNOSTICS_CALLBACK: {
+ handleUnregisterConnectivityDiagnosticsCallback(
+ (IConnectivityDiagnosticsCallback) msg.obj, msg.arg1);
+ break;
+ }
+ case EVENT_NETWORK_TESTED: {
+ final ConnectivityReportEvent reportEvent =
+ (ConnectivityReportEvent) msg.obj;
+
+ // This is safe because {@link
+ // NetworkMonitorCallbacks#notifyNetworkTestedWithExtras} receives a
+ // PersistableBundle and converts it to the Bundle in the incoming Message. If
+ // {@link NetworkMonitorCallbacks#notifyNetworkTested} is called, msg.data will
+ // not be set. This is also safe, as msg.getData() will return an empty Bundle.
+ final PersistableBundle extras = new PersistableBundle(msg.getData());
+ handleNetworkTestedWithExtras(reportEvent, extras);
+ break;
+ }
+ case EVENT_DATA_STALL_SUSPECTED: {
+ final NetworkAgentInfo nai = getNetworkAgentInfoForNetId(msg.arg2);
+ if (nai == null) break;
+
+ // This is safe because NetworkMonitorCallbacks#notifyDataStallSuspected
+ // receives a PersistableBundle and converts it to the Bundle in the incoming
+ // Message.
+ final PersistableBundle extras = new PersistableBundle(msg.getData());
+ handleDataStallSuspected(nai, (long) msg.obj, msg.arg1, extras);
+ break;
+ }
+ case EVENT_NETWORK_CONNECTIVITY_REPORTED: {
+ handleNetworkConnectivityReported((NetworkAgentInfo) msg.obj, toBool(msg.arg1));
+ break;
+ }
+ default: {
+ Log.e(mTag, "Unrecognized event in ConnectivityDiagnostics: " + msg.what);
+ }
+ }
+ }
+ }
+
+ /** Class used for cleaning up IConnectivityDiagnosticsCallback instances after their death. */
+ @VisibleForTesting
+ class ConnectivityDiagnosticsCallbackInfo implements Binder.DeathRecipient {
+ @NonNull private final IConnectivityDiagnosticsCallback mCb;
+ @NonNull private final NetworkRequestInfo mRequestInfo;
+ @NonNull private final String mCallingPackageName;
+
+ @VisibleForTesting
+ ConnectivityDiagnosticsCallbackInfo(
+ @NonNull IConnectivityDiagnosticsCallback cb,
+ @NonNull NetworkRequestInfo nri,
+ @NonNull String callingPackageName) {
+ mCb = cb;
+ mRequestInfo = nri;
+ mCallingPackageName = callingPackageName;
+ }
+
+ @Override
+ public void binderDied() {
+ log("ConnectivityDiagnosticsCallback IBinder died.");
+ unregisterConnectivityDiagnosticsCallback(mCb);
+ }
+ }
+
+ /**
+ * Class used for sending information from {@link
+ * NetworkMonitorCallbacks#notifyNetworkTestedWithExtras} to the handler for processing it.
+ */
+ private static class NetworkTestedResults {
+ private final int mNetId;
+ private final int mTestResult;
+ private final long mTimestampMillis;
+ @Nullable private final String mRedirectUrl;
+
+ private NetworkTestedResults(
+ int netId, int testResult, long timestampMillis, @Nullable String redirectUrl) {
+ mNetId = netId;
+ mTestResult = testResult;
+ mTimestampMillis = timestampMillis;
+ mRedirectUrl = redirectUrl;
+ }
+ }
+
+ /**
+ * Class used for sending information from {@link NetworkStateTrackerHandler} to {@link
+ * ConnectivityDiagnosticsHandler}.
+ */
+ private static class ConnectivityReportEvent {
+ private final long mTimestampMillis;
+ @NonNull private final NetworkAgentInfo mNai;
+
+ private ConnectivityReportEvent(long timestampMillis, @NonNull NetworkAgentInfo nai) {
+ mTimestampMillis = timestampMillis;
+ mNai = nai;
+ }
+ }
+
+ private void handleRegisterConnectivityDiagnosticsCallback(
+ @NonNull ConnectivityDiagnosticsCallbackInfo cbInfo) {
+ ensureRunningOnConnectivityServiceThread();
+
+ final IConnectivityDiagnosticsCallback cb = cbInfo.mCb;
+ final NetworkRequestInfo nri = cbInfo.mRequestInfo;
+
+ // This means that the client registered the same callback multiple times. Do
+ // not override the previous entry, and exit silently.
+ if (mConnectivityDiagnosticsCallbacks.containsKey(cb)) {
+ if (VDBG) log("Diagnostics callback is already registered");
+
+ // Decrement the reference count for this NetworkRequestInfo. The reference count is
+ // incremented when the NetworkRequestInfo is created as part of
+ // enforceRequestCountLimit().
+ decrementNetworkRequestPerUidCount(nri);
+ return;
+ }
+
+ mConnectivityDiagnosticsCallbacks.put(cb, cbInfo);
+
+ try {
+ cb.asBinder().linkToDeath(cbInfo, 0);
+ } catch (RemoteException e) {
+ cbInfo.binderDied();
+ }
+ }
+
+ private void handleUnregisterConnectivityDiagnosticsCallback(
+ @NonNull IConnectivityDiagnosticsCallback cb, int uid) {
+ ensureRunningOnConnectivityServiceThread();
+
+ if (!mConnectivityDiagnosticsCallbacks.containsKey(cb)) {
+ if (VDBG) log("Removing diagnostics callback that is not currently registered");
+ return;
+ }
+
+ final NetworkRequestInfo nri = mConnectivityDiagnosticsCallbacks.get(cb).mRequestInfo;
+
+ if (uid != nri.mUid) {
+ if (VDBG) loge("Different uid than registrant attempting to unregister cb");
+ return;
+ }
+
+ cb.asBinder().unlinkToDeath(mConnectivityDiagnosticsCallbacks.remove(cb), 0);
+ }
+
+ private void handleNetworkTestedWithExtras(
+ @NonNull ConnectivityReportEvent reportEvent, @NonNull PersistableBundle extras) {
+ final NetworkAgentInfo nai = reportEvent.mNai;
+ final ConnectivityReport report =
+ new ConnectivityReport(
+ reportEvent.mNai.network,
+ reportEvent.mTimestampMillis,
+ nai.linkProperties,
+ nai.networkCapabilities,
+ extras);
+ final List<IConnectivityDiagnosticsCallback> results =
+ getMatchingPermissionedCallbacks(nai);
+ for (final IConnectivityDiagnosticsCallback cb : results) {
+ try {
+ cb.onConnectivityReport(report);
+ } catch (RemoteException ex) {
+ loge("Error invoking onConnectivityReport", ex);
+ }
+ }
+ }
+
+ private void handleDataStallSuspected(
+ @NonNull NetworkAgentInfo nai, long timestampMillis, int detectionMethod,
+ @NonNull PersistableBundle extras) {
+ final DataStallReport report =
+ new DataStallReport(nai.network, timestampMillis, detectionMethod, extras);
+ final List<IConnectivityDiagnosticsCallback> results =
+ getMatchingPermissionedCallbacks(nai);
+ for (final IConnectivityDiagnosticsCallback cb : results) {
+ try {
+ cb.onDataStallSuspected(report);
+ } catch (RemoteException ex) {
+ loge("Error invoking onDataStallSuspected", ex);
+ }
+ }
+ }
+
+ private void handleNetworkConnectivityReported(
+ @NonNull NetworkAgentInfo nai, boolean connectivity) {
+ final List<IConnectivityDiagnosticsCallback> results =
+ getMatchingPermissionedCallbacks(nai);
+ for (final IConnectivityDiagnosticsCallback cb : results) {
+ try {
+ cb.onNetworkConnectivityReported(nai.network, connectivity);
+ } catch (RemoteException ex) {
+ loge("Error invoking onNetworkConnectivityReported", ex);
+ }
+ }
+ }
+
+ private List<IConnectivityDiagnosticsCallback> getMatchingPermissionedCallbacks(
+ @NonNull NetworkAgentInfo nai) {
+ final List<IConnectivityDiagnosticsCallback> results = new ArrayList<>();
+ for (Entry<IConnectivityDiagnosticsCallback, ConnectivityDiagnosticsCallbackInfo> entry :
+ mConnectivityDiagnosticsCallbacks.entrySet()) {
+ final ConnectivityDiagnosticsCallbackInfo cbInfo = entry.getValue();
+ final NetworkRequestInfo nri = cbInfo.mRequestInfo;
+ if (nai.satisfies(nri.request)) {
+ if (checkConnectivityDiagnosticsPermissions(
+ nri.mPid, nri.mUid, nai, cbInfo.mCallingPackageName)) {
+ results.add(entry.getKey());
+ }
+ }
+ }
+ return results;
+ }
+
+ @VisibleForTesting
+ boolean checkConnectivityDiagnosticsPermissions(
+ int callbackPid, int callbackUid, NetworkAgentInfo nai, String callbackPackageName) {
+ if (checkNetworkStackPermission(callbackPid, callbackUid)) {
+ return true;
+ }
+
+ if (!mLocationPermissionChecker.checkLocationPermission(
+ callbackPackageName, null /* featureId */, callbackUid, null /* message */)) {
+ return false;
+ }
+
+ synchronized (mVpns) {
+ if (getVpnIfOwner(callbackUid) != null) {
+ return true;
+ }
+ }
+
+ // Administrator UIDs also contains the Owner UID
+ if (nai.networkCapabilities.getAdministratorUids().contains(callbackUid)) {
+ return true;
+ }
+
+ return false;
+ }
+
@Override
public void registerConnectivityDiagnosticsCallback(
- @NonNull IConnectivityDiagnosticsCallback callback, @NonNull NetworkRequest request) {
- // TODO(b/146444622): implement register IConnectivityDiagnosticsCallback functionality
- throw new UnsupportedOperationException(
- "registerConnectivityDiagnosticsCallback not yet implemented");
+ @NonNull IConnectivityDiagnosticsCallback callback,
+ @NonNull NetworkRequest request,
+ @NonNull String callingPackageName) {
+ if (request.legacyType != TYPE_NONE) {
+ throw new IllegalArgumentException("ConnectivityManager.TYPE_* are deprecated."
+ + " Please use NetworkCapabilities instead.");
+ }
+ final int callingUid = Binder.getCallingUid();
+ mAppOpsManager.checkPackage(callingUid, callingPackageName);
+
+ // This NetworkCapabilities is only used for matching to Networks. Clear out its owner uid
+ // and administrator uids to be safe.
+ final NetworkCapabilities nc = new NetworkCapabilities(request.networkCapabilities);
+ restrictRequestUidsForCallerAndSetRequestorInfo(nc, callingUid, callingPackageName);
+
+ final NetworkRequest requestWithId =
+ new NetworkRequest(
+ nc, TYPE_NONE, nextNetworkRequestId(), NetworkRequest.Type.LISTEN);
+
+ // NetworkRequestInfos created here count towards MAX_NETWORK_REQUESTS_PER_UID limit.
+ //
+ // nri is not bound to the death of callback. Instead, callback.bindToDeath() is set in
+ // handleRegisterConnectivityDiagnosticsCallback(). nri will be cleaned up as part of the
+ // callback's binder death.
+ final NetworkRequestInfo nri = new NetworkRequestInfo(requestWithId);
+ final ConnectivityDiagnosticsCallbackInfo cbInfo =
+ new ConnectivityDiagnosticsCallbackInfo(callback, nri, callingPackageName);
+
+ mConnectivityDiagnosticsHandler.sendMessage(
+ mConnectivityDiagnosticsHandler.obtainMessage(
+ ConnectivityDiagnosticsHandler
+ .EVENT_REGISTER_CONNECTIVITY_DIAGNOSTICS_CALLBACK,
+ cbInfo));
}
@Override
public void unregisterConnectivityDiagnosticsCallback(
@NonNull IConnectivityDiagnosticsCallback callback) {
- // TODO(b/146444622): implement register IConnectivityDiagnosticsCallback functionality
- throw new UnsupportedOperationException(
- "unregisterConnectivityDiagnosticsCallback not yet implemented");
+ mConnectivityDiagnosticsHandler.sendMessage(
+ mConnectivityDiagnosticsHandler.obtainMessage(
+ ConnectivityDiagnosticsHandler
+ .EVENT_UNREGISTER_CONNECTIVITY_DIAGNOSTICS_CALLBACK,
+ Binder.getCallingUid(),
+ 0,
+ callback));
}
}
diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java
index 3bc93cc13023..63cddac0bfba 100644
--- a/services/core/java/com/android/server/LocationManagerService.java
+++ b/services/core/java/com/android/server/LocationManagerService.java
@@ -30,6 +30,7 @@ import static android.os.PowerManager.locationPowerSaveModeToString;
import android.Manifest;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.app.ActivityManager;
import android.app.AppOpsManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
@@ -305,11 +306,7 @@ public class LocationManagerService extends ILocationManager.Stub {
public void onOpChanged(int op, String packageName) {
// onOpChanged invoked on ui thread, move to our thread to reduce risk
// of blocking ui thread
- mHandler.post(() -> {
- synchronized (mLock) {
- onAppOpChangedLocked();
- }
- });
+ mHandler.post(() -> onAppOpChanged(packageName));
}
});
mPackageManager.addOnPermissionsChangeListener(
@@ -392,13 +389,26 @@ public class LocationManagerService extends ILocationManager.Stub {
}
}
- @GuardedBy("mLock")
- private void onAppOpChangedLocked() {
- for (Receiver receiver : mReceivers.values()) {
- receiver.updateMonitoring(true);
- }
- for (LocationProviderManager manager : mProviderManagers) {
- applyRequirementsLocked(manager);
+ private void onAppOpChanged(String packageName) {
+ synchronized (mLock) {
+ for (Receiver receiver : mReceivers.values()) {
+ if (receiver.mCallerIdentity.mPackageName.equals(packageName)) {
+ receiver.updateMonitoring(true);
+ }
+ }
+
+ HashSet<String> affectedProviders = new HashSet<>(mRecordsByProvider.size());
+ for (Entry<String, ArrayList<UpdateRecord>> entry : mRecordsByProvider.entrySet()) {
+ String provider = entry.getKey();
+ for (UpdateRecord record : entry.getValue()) {
+ if (record.mReceiver.mCallerIdentity.mPackageName.equals(packageName)) {
+ affectedProviders.add(provider);
+ }
+ }
+ }
+ for (String provider : affectedProviders) {
+ applyRequirementsLocked(provider);
+ }
}
}
@@ -649,7 +659,7 @@ public class LocationManagerService extends ILocationManager.Stub {
mEnabled = new SparseArray<>(1);
// initialize last since this lets our reference escape
- mProvider = new MockableLocationProvider(mContext, mLock, this);
+ mProvider = new MockableLocationProvider(mLock, this);
// we can assume all users start with disabled location state since the initial state
// of all providers is disabled. no need to initialize mEnabled further.
@@ -2161,10 +2171,10 @@ public class LocationManagerService extends ILocationManager.Stub {
@Override
public boolean injectLocation(Location location) {
- mContext.enforceCallingPermission(android.Manifest.permission.LOCATION_HARDWARE,
- "Location Hardware permission not granted to inject location");
- mContext.enforceCallingPermission(ACCESS_FINE_LOCATION,
- "Access Fine Location permission not granted to inject Location");
+ mContext.enforceCallingPermission(android.Manifest.permission.LOCATION_HARDWARE, null);
+ mContext.enforceCallingPermission(ACCESS_FINE_LOCATION, null);
+
+ Preconditions.checkArgument(location.isComplete());
synchronized (mLock) {
LocationProviderManager manager = getLocationProviderManager(location.getProvider());
@@ -2410,20 +2420,15 @@ public class LocationManagerService extends ILocationManager.Stub {
@Override
public boolean isLocationEnabledForUser(int userId) {
- if (UserHandle.getCallingUserId() != userId) {
- mContext.enforceCallingOrSelfPermission(Manifest.permission.INTERACT_ACROSS_USERS,
- null);
- }
-
+ userId = ActivityManager.handleIncomingUser(Binder.getCallingPid(), Binder.getCallingUid(),
+ userId, false, false, "isLocationEnabledForUser", null);
return mSettingsHelper.isLocationEnabled(userId);
}
@Override
public boolean isProviderEnabledForUser(String providerName, int userId) {
- if (UserHandle.getCallingUserId() != userId) {
- mContext.enforceCallingOrSelfPermission(Manifest.permission.INTERACT_ACROSS_USERS,
- null);
- }
+ userId = ActivityManager.handleIncomingUser(Binder.getCallingPid(), Binder.getCallingUid(),
+ userId, false, false, "isProviderEnabledForUser", null);
// Fused provider is accessed indirectly via criteria rather than the provider-based APIs,
// so we discourage its use
@@ -2644,7 +2649,12 @@ public class LocationManagerService extends ILocationManager.Stub {
if (noGPSLocation == null && lastNoGPSLocation != null) {
// New location has no no-GPS location: adopt last no-GPS location. This is set
// directly into location because we do not want to notify COARSE clients.
- location.setExtraLocation(Location.EXTRA_NO_GPS_LOCATION, lastNoGPSLocation);
+ Bundle extras = location.getExtras();
+ if (extras == null) {
+ extras = new Bundle();
+ }
+ extras.putParcelable(Location.EXTRA_NO_GPS_LOCATION, lastNoGPSLocation);
+ location.setExtras(extras);
}
}
lastLocation.set(location);
@@ -2699,7 +2709,7 @@ public class LocationManagerService extends ILocationManager.Stub {
mProviderManagers.add(manager);
}
- manager.setMockProvider(new MockProvider(mContext, properties));
+ manager.setMockProvider(new MockProvider(properties));
}
}
@@ -2727,6 +2737,9 @@ public class LocationManagerService extends ILocationManager.Stub {
@Override
public void setTestProviderLocation(String provider, Location location, String packageName) {
+ Preconditions.checkArgument(location.isComplete(),
+ "incomplete location object, missing timestamp or accuracy?");
+
if (mAppOps.checkOp(AppOpsManager.OP_MOCK_LOCATION, Binder.getCallingUid(), packageName)
!= AppOpsManager.MODE_ALLOWED) {
return;
diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java
index 9d4c78383183..1bb3c3ac0cda 100644
--- a/services/core/java/com/android/server/NetworkManagementService.java
+++ b/services/core/java/com/android/server/NetworkManagementService.java
@@ -86,12 +86,12 @@ import android.util.Log;
import android.util.Slog;
import android.util.SparseBooleanArray;
import android.util.SparseIntArray;
-import android.util.StatsLog;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.IBatteryStats;
import com.android.internal.util.DumpUtils;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.HexDump;
import com.android.internal.util.Preconditions;
@@ -412,8 +412,8 @@ public class NetworkManagementService extends INetworkManagementService.Stub {
getBatteryStats().noteMobileRadioPowerState(powerState, tsNanos, uid);
} catch (RemoteException e) {
}
- StatsLog.write_non_chained(StatsLog.MOBILE_RADIO_POWER_STATE_CHANGED, uid, null,
- powerState);
+ FrameworkStatsLog.write_non_chained(
+ FrameworkStatsLog.MOBILE_RADIO_POWER_STATE_CHANGED, uid, null, powerState);
}
}
@@ -424,8 +424,8 @@ public class NetworkManagementService extends INetworkManagementService.Stub {
getBatteryStats().noteWifiRadioPowerState(powerState, tsNanos, uid);
} catch (RemoteException e) {
}
- StatsLog.write_non_chained(StatsLog.WIFI_RADIO_POWER_STATE_CHANGED, uid, null,
- powerState);
+ FrameworkStatsLog.write_non_chained(
+ FrameworkStatsLog.WIFI_RADIO_POWER_STATE_CHANGED, uid, null, powerState);
}
}
diff --git a/services/core/java/com/android/server/RescueParty.java b/services/core/java/com/android/server/RescueParty.java
index bacffb6140ed..80036bb4b4fa 100644
--- a/services/core/java/com/android/server/RescueParty.java
+++ b/services/core/java/com/android/server/RescueParty.java
@@ -42,11 +42,11 @@ import android.util.ExceptionUtils;
import android.util.Log;
import android.util.MathUtils;
import android.util.Slog;
-import android.util.StatsLog;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.PackageWatchdog.FailureReasons;
import com.android.server.PackageWatchdog.PackageHealthObserver;
import com.android.server.PackageWatchdog.PackageHealthObserverImpact;
@@ -253,7 +253,7 @@ public class RescueParty {
private static void executeRescueLevelInternal(Context context, int level, @Nullable
String failedPackage) throws Exception {
- StatsLog.write(StatsLog.RESCUE_PARTY_RESET_REPORTED, level);
+ FrameworkStatsLog.write(FrameworkStatsLog.RESCUE_PARTY_RESET_REPORTED, level);
switch (level) {
case LEVEL_RESET_SETTINGS_UNTRUSTED_DEFAULTS:
resetAllSettings(context, Settings.RESET_MODE_UNTRUSTED_DEFAULTS, failedPackage);
@@ -393,8 +393,8 @@ public class RescueParty {
@Override
public int onHealthCheckFailed(@Nullable VersionedPackage failedPackage,
@FailureReasons int failureReason) {
- if (failureReason == PackageWatchdog.FAILURE_REASON_APP_CRASH
- || failureReason == PackageWatchdog.FAILURE_REASON_APP_NOT_RESPONDING) {
+ if (!isDisabled() && (failureReason == PackageWatchdog.FAILURE_REASON_APP_CRASH
+ || failureReason == PackageWatchdog.FAILURE_REASON_APP_NOT_RESPONDING)) {
return mapRescueLevelToUserImpact(getNextRescueLevel());
} else {
return PackageHealthObserverImpact.USER_IMPACT_NONE;
diff --git a/services/core/java/com/android/server/ServiceWatcher.java b/services/core/java/com/android/server/ServiceWatcher.java
index 14cd3a5d5c0d..b43ae36c7ef5 100644
--- a/services/core/java/com/android/server/ServiceWatcher.java
+++ b/services/core/java/com/android/server/ServiceWatcher.java
@@ -49,6 +49,8 @@ import android.util.Log;
import com.android.internal.content.PackageMonitor;
import com.android.internal.util.Preconditions;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.Callable;
@@ -183,9 +185,7 @@ public class ServiceWatcher implements ServiceConnection {
// write from handler thread only, read anywhere
private volatile ServiceInfo mServiceInfo;
-
- // read/write from handler thread only
- private IBinder mBinder;
+ private volatile IBinder mBinder;
public ServiceWatcher(Context context, Handler handler, String action,
@Nullable BinderRunner onBind, @Nullable Runnable onUnbind,
@@ -345,20 +345,25 @@ public class ServiceWatcher implements ServiceConnection {
}
mBinder = binder;
+
+ // we always run the on bind callback even if we know that the binder is dead already so
+ // that there are always balance pairs of bind/unbind callbacks
if (mOnBind != null) {
- runOnBinder(mOnBind);
+ try {
+ mOnBind.run(binder);
+ } catch (RuntimeException | RemoteException e) {
+ // binders may propagate some specific non-RemoteExceptions from the other side
+ // through the binder as well - we cannot allow those to crash the system server
+ Log.e(TAG, getLogPrefix() + " exception running on " + mServiceInfo, e);
+ }
}
- }
- @Override
- public void onBindingDied(ComponentName component) {
- Preconditions.checkState(Looper.myLooper() == mHandler.getLooper());
-
- if (D) {
- Log.i(TAG, getLogPrefix() + " " + component.toShortString() + " died");
+ try {
+ // setting the binder to null lets us skip queued transactions
+ binder.linkToDeath(() -> mBinder = null, 0);
+ } catch (RemoteException e) {
+ mBinder = null;
}
-
- onBestServiceChanged(true);
}
@Override
@@ -375,6 +380,17 @@ public class ServiceWatcher implements ServiceConnection {
}
}
+ @Override
+ public void onBindingDied(ComponentName component) {
+ Preconditions.checkState(Looper.myLooper() == mHandler.getLooper());
+
+ if (D) {
+ Log.i(TAG, getLogPrefix() + " " + component.toShortString() + " died");
+ }
+
+ onBestServiceChanged(true);
+ }
+
private void onUserSwitched(@UserIdInt int userId) {
mCurrentUserId = userId;
onBestServiceChanged(false);
@@ -398,7 +414,7 @@ public class ServiceWatcher implements ServiceConnection {
* RemoteException thrown during execution.
*/
public final void runOnBinder(BinderRunner runner) {
- runOnHandler(() -> {
+ mHandler.post(() -> {
if (mBinder == null) {
return;
}
@@ -447,14 +463,6 @@ public class ServiceWatcher implements ServiceConnection {
}
}
- private void runOnHandler(Runnable r) {
- if (Looper.myLooper() == mHandler.getLooper()) {
- r.run();
- } else {
- mHandler.post(r);
- }
- }
-
private <T> T runOnHandlerBlocking(Callable<T> c)
throws InterruptedException, TimeoutException {
if (Looper.myLooper() == mHandler.getLooper()) {
@@ -489,4 +497,12 @@ public class ServiceWatcher implements ServiceConnection {
public String toString() {
return mServiceInfo.toString();
}
+
+ /**
+ * Dump for debugging.
+ */
+ public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+ pw.println("service=" + mServiceInfo);
+ pw.println("connected=" + (mBinder != null));
+ }
}
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index a04f25b0d20c..a08bdb23dd22 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -24,6 +24,7 @@ import static android.Manifest.permission.WRITE_MEDIA_STORAGE;
import static android.app.ActivityManager.PROCESS_STATE_NONEXISTENT;
import static android.app.AppOpsManager.MODE_ALLOWED;
import static android.app.AppOpsManager.OP_LEGACY_STORAGE;
+import static android.app.AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE;
import static android.app.AppOpsManager.OP_READ_EXTERNAL_STORAGE;
import static android.app.AppOpsManager.OP_REQUEST_INSTALL_PACKAGES;
import static android.app.AppOpsManager.OP_WRITE_EXTERNAL_STORAGE;
@@ -3941,8 +3942,12 @@ class StorageManagerService extends IStorageManager.Stub
final boolean hasMtp = mIPackageManager.checkUidPermission(ACCESS_MTP, uid) ==
PERMISSION_GRANTED;
if (mIsFuseEnabled && hasMtp) {
- // The process hosting the MTP server should be able to write in Android/
- return Zygote.MOUNT_EXTERNAL_ANDROID_WRITABLE;
+ ApplicationInfo ai = mIPackageManager.getApplicationInfo(packageName,
+ 0, UserHandle.getUserId(uid));
+ if (ai.isSignedWithPlatformKey()) {
+ // Platform processes hosting the MTP server should be able to write in Android/
+ return Zygote.MOUNT_EXTERNAL_ANDROID_WRITABLE;
+ }
}
// Determine if caller is holding runtime permission
@@ -4320,21 +4325,37 @@ class StorageManagerService extends IStorageManager.Stub
return true;
}
- public void onAppOpsChanged(int code, int uid,
- @Nullable String packageName, int mode) {
- if (code == OP_REQUEST_INSTALL_PACKAGES && mIsFuseEnabled) {
- // When using FUSE, we basically have no other choice but to kill the app
- // after the app op is either granted or rejected.
- final IActivityManager am = ActivityManager.getService();
- try {
- am.killApplication(packageName,
- UserHandle.getAppId(uid),
- UserHandle.USER_ALL, AppOpsManager.opToName(code) + " changed.");
- } catch (RemoteException e) {
- }
+ private void killAppForOpChange(int code, int uid, String packageName) {
+ final IActivityManager am = ActivityManager.getService();
+ try {
+ am.killApplication(packageName,
+ UserHandle.getAppId(uid),
+ UserHandle.USER_ALL, AppOpsManager.opToName(code) + " changed.");
+ } catch (RemoteException e) {
+ }
+ }
- return;
+ public void onAppOpsChanged(int code, int uid, @Nullable String packageName, int mode) {
+ if (mIsFuseEnabled) {
+ // When using FUSE, we may need to kill the app if the op changes
+ switch(code) {
+ case OP_REQUEST_INSTALL_PACKAGES:
+ // Always kill regardless of op change, to remount apps /storage
+ killAppForOpChange(code, uid, packageName);
+ return;
+ case OP_MANAGE_EXTERNAL_STORAGE:
+ if (mode != MODE_ALLOWED) {
+ // Only kill if op is denied, to lose external_storage gid
+ // Killing when op is granted to pickup the gid automatically, results
+ // in a bad UX, especially since the gid only gives access to unreliable
+ // volumes, USB OTGs that are rarely mounted. The app will get the
+ // external_storage gid on next organic restart.
+ killAppForOpChange(code, uid, packageName);
+ return;
+ }
+ }
}
+
if (mode == MODE_ALLOWED && (code == OP_READ_EXTERNAL_STORAGE
|| code == OP_WRITE_EXTERNAL_STORAGE
|| code == OP_REQUEST_INSTALL_PACKAGES)) {
diff --git a/services/core/java/com/android/server/SystemService.java b/services/core/java/com/android/server/SystemService.java
index b1584fea90c1..e3c732523264 100644
--- a/services/core/java/com/android/server/SystemService.java
+++ b/services/core/java/com/android/server/SystemService.java
@@ -23,7 +23,6 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.SystemApi.Client;
-import android.annotation.SystemApi.Process;
import android.annotation.UserIdInt;
import android.app.ActivityThread;
import android.content.Context;
@@ -65,7 +64,7 @@ import java.util.List;
*
* {@hide}
*/
-@SystemApi(client = Client.MODULE_LIBRARIES, process = Process.SYSTEM_SERVER)
+@SystemApi(client = Client.SYSTEM_SERVER)
public abstract class SystemService {
/** @hide */
@@ -132,7 +131,7 @@ public abstract class SystemService {
* Class representing user in question in the lifecycle callbacks.
* @hide
*/
- @SystemApi(client = Client.MODULE_LIBRARIES, process = Process.SYSTEM_SERVER)
+ @SystemApi(client = Client.SYSTEM_SERVER)
public static final class TargetUser {
@NonNull
private final UserInfo mUserInfo;
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index 36dd017d2c23..cbf6c274e865 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -77,7 +77,6 @@ import android.telephony.data.ApnSetting;
import android.telephony.emergency.EmergencyNumber;
import android.telephony.ims.ImsReasonInfo;
import android.util.LocalLog;
-import android.util.StatsLog;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.IBatteryStats;
@@ -87,6 +86,7 @@ import com.android.internal.telephony.ITelephonyRegistry;
import com.android.internal.telephony.TelephonyPermissions;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.DumpUtils;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.IndentingPrintWriter;
import com.android.server.am.BatteryStatsService;
@@ -285,7 +285,8 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR
| PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR
| PhoneStateListener.LISTEN_EMERGENCY_NUMBER_LIST
- | PhoneStateListener.LISTEN_REGISTRATION_FAILURE;
+ | PhoneStateListener.LISTEN_REGISTRATION_FAILURE
+ | PhoneStateListener.LISTEN_BARRING_INFO;
static final int PRECISE_PHONE_STATE_PERMISSION_MASK =
PhoneStateListener.LISTEN_PRECISE_CALL_STATE
@@ -897,6 +898,13 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
if ((events & PhoneStateListener.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH)
!= 0) {
updateReportSignalStrengthDecision(r.subId);
+ try {
+ if (mSignalStrength[phoneId] != null) {
+ r.callback.onSignalStrengthsChanged(mSignalStrength[phoneId]);
+ }
+ } catch (RemoteException ex) {
+ remove(r.binder);
+ }
}
if (validateEventsAndUserLocked(r, PhoneStateListener.LISTEN_CELL_INFO)) {
try {
@@ -1326,9 +1334,10 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
log("notifySignalStrengthForPhoneId: r=" + r + " subId=" + subId
+ " phoneId=" + phoneId + " ss=" + signalStrength);
}
- if (r.matchPhoneStateListenerEvent(
- PhoneStateListener.LISTEN_SIGNAL_STRENGTHS) &&
- idMatch(r.subId, subId, phoneId)) {
+ if ((r.matchPhoneStateListenerEvent(PhoneStateListener.LISTEN_SIGNAL_STRENGTHS)
+ || r.matchPhoneStateListenerEvent(
+ PhoneStateListener.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH))
+ && idMatch(r.subId, subId, phoneId)) {
try {
if (DBG) {
log("notifySignalStrengthForPhoneId: callback.onSsS r=" + r
@@ -1341,7 +1350,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
}
}
if (r.matchPhoneStateListenerEvent(PhoneStateListener.LISTEN_SIGNAL_STRENGTH) &&
- idMatch(r.subId, subId, phoneId)){
+ idMatch(r.subId, subId, phoneId)) {
try {
int gsmSignalStrength = signalStrength.getGsmSignalStrength();
int ss = (gsmSignalStrength == 99 ? -1 : gsmSignalStrength);
@@ -2387,12 +2396,12 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
try {
if (state == TelephonyManager.CALL_STATE_IDLE) {
mBatteryStats.notePhoneOff();
- StatsLog.write(StatsLog.PHONE_STATE_CHANGED,
- StatsLog.PHONE_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write(FrameworkStatsLog.PHONE_STATE_CHANGED,
+ FrameworkStatsLog.PHONE_STATE_CHANGED__STATE__OFF);
} else {
mBatteryStats.notePhoneOn();
- StatsLog.write(StatsLog.PHONE_STATE_CHANGED,
- StatsLog.PHONE_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write(FrameworkStatsLog.PHONE_STATE_CHANGED,
+ FrameworkStatsLog.PHONE_STATE_CHANGED__STATE__ON);
}
} catch (RemoteException e) {
/* The remote entity disappeared, we can safely ignore the exception. */
@@ -2542,6 +2551,11 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION, null);
}
+ if ((events & PhoneStateListener.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH) != 0) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH, null);
+ }
+
if ((events & READ_PRIVILEGED_PHONE_STATE_PERMISSION_MASK) != 0) {
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, null);
@@ -2657,7 +2671,8 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
}
}
- if ((events & PhoneStateListener.LISTEN_SIGNAL_STRENGTHS) != 0) {
+ if ((events & PhoneStateListener.LISTEN_SIGNAL_STRENGTHS) != 0
+ || (events & PhoneStateListener.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH) != 0) {
try {
if (mSignalStrength[phoneId] != null) {
SignalStrength signalStrength = mSignalStrength[phoneId];
diff --git a/services/core/java/com/android/server/VibratorService.java b/services/core/java/com/android/server/VibratorService.java
index 6bc090a4f7ba..f7d7d6c5d15f 100644
--- a/services/core/java/com/android/server/VibratorService.java
+++ b/services/core/java/com/android/server/VibratorService.java
@@ -65,12 +65,13 @@ import android.provider.Settings.SettingNotFoundException;
import android.util.DebugUtils;
import android.util.Slog;
import android.util.SparseArray;
-import android.util.StatsLog;
+import android.util.proto.ProtoOutputStream;
import android.view.InputDevice;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.app.IBatteryStats;
import com.android.internal.util.DumpUtils;
+import com.android.internal.util.FrameworkStatsLog;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -165,6 +166,7 @@ public class VibratorService extends IVibratorService.Stub
private ExternalVibration mCurrentExternalVibration;
private boolean mVibratorUnderExternalControl;
private boolean mLowPowerMode;
+ private boolean mIsVibrating;
private int mHapticFeedbackIntensity;
private int mNotificationIntensity;
private int mRingIntensity;
@@ -327,6 +329,14 @@ public class VibratorService extends IVibratorService.Stub
.append(mReason)
.toString();
}
+
+ void dumpProto(ProtoOutputStream proto, long fieldId) {
+ synchronized (this) {
+ final long token = proto.start(fieldId);
+ proto.write(VibrationProto.START_TIME, mStartTimeDebug);
+ proto.end(token);
+ }
+ }
}
private static final class ScaleLevel {
@@ -1360,9 +1370,10 @@ public class VibratorService extends IVibratorService.Stub
private void noteVibratorOnLocked(int uid, long millis) {
try {
mBatteryStatsService.noteVibratorOn(uid, millis);
- StatsLog.write_non_chained(StatsLog.VIBRATOR_STATE_CHANGED, uid, null,
- StatsLog.VIBRATOR_STATE_CHANGED__STATE__ON, millis);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.VIBRATOR_STATE_CHANGED, uid, null,
+ FrameworkStatsLog.VIBRATOR_STATE_CHANGED__STATE__ON, millis);
mCurVibUid = uid;
+ mIsVibrating = true;
} catch (RemoteException e) {
}
}
@@ -1371,11 +1382,12 @@ public class VibratorService extends IVibratorService.Stub
if (mCurVibUid >= 0) {
try {
mBatteryStatsService.noteVibratorOff(mCurVibUid);
- StatsLog.write_non_chained(StatsLog.VIBRATOR_STATE_CHANGED, mCurVibUid, null,
- StatsLog.VIBRATOR_STATE_CHANGED__STATE__OFF, 0);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.VIBRATOR_STATE_CHANGED,
+ mCurVibUid, null, FrameworkStatsLog.VIBRATOR_STATE_CHANGED__STATE__OFF, 0);
} catch (RemoteException e) { }
mCurVibUid = -1;
}
+ mIsVibrating = false;
}
private void setVibratorUnderExternalControl(boolean externalControl) {
@@ -1390,6 +1402,93 @@ public class VibratorService extends IVibratorService.Stub
vibratorSetExternalControl(externalControl);
}
+ private void dumpInternal(PrintWriter pw) {
+ pw.println("Vibrator Service:");
+ synchronized (mLock) {
+ pw.print(" mCurrentVibration=");
+ if (mCurrentVibration != null) {
+ pw.println(mCurrentVibration.toInfo().toString());
+ } else {
+ pw.println("null");
+ }
+ pw.print(" mCurrentExternalVibration=" + mCurrentExternalVibration);
+ pw.println(" mVibratorUnderExternalControl=" + mVibratorUnderExternalControl);
+ pw.println(" mIsVibrating=" + mIsVibrating);
+ pw.println(" mLowPowerMode=" + mLowPowerMode);
+ pw.println(" mHapticFeedbackIntensity=" + mHapticFeedbackIntensity);
+ pw.println(" mNotificationIntensity=" + mNotificationIntensity);
+ pw.println(" mRingIntensity=" + mRingIntensity);
+ pw.println(" mSupportedEffects=" + mSupportedEffects);
+ pw.println();
+ pw.println(" Previous ring vibrations:");
+ for (VibrationInfo info : mPreviousRingVibrations) {
+ pw.print(" ");
+ pw.println(info.toString());
+ }
+
+ pw.println(" Previous notification vibrations:");
+ for (VibrationInfo info : mPreviousNotificationVibrations) {
+ pw.println(" " + info);
+ }
+
+ pw.println(" Previous alarm vibrations:");
+ for (VibrationInfo info : mPreviousAlarmVibrations) {
+ pw.println(" " + info);
+ }
+
+ pw.println(" Previous vibrations:");
+ for (VibrationInfo info : mPreviousVibrations) {
+ pw.println(" " + info);
+ }
+
+ pw.println(" Previous external vibrations:");
+ for (ExternalVibration vib : mPreviousExternalVibrations) {
+ pw.println(" " + vib);
+ }
+ }
+ }
+
+ private void dumpProto(FileDescriptor fd) {
+ final ProtoOutputStream proto = new ProtoOutputStream(fd);
+
+ synchronized (mLock) {
+ if (mCurrentVibration != null) {
+ mCurrentVibration.toInfo().dumpProto(proto,
+ VibratorServiceDumpProto.CURRENT_VIBRATION);
+ }
+ proto.write(VibratorServiceDumpProto.IS_VIBRATING, mIsVibrating);
+ proto.write(VibratorServiceDumpProto.VIBRATOR_UNDER_EXTERNAL_CONTROL,
+ mVibratorUnderExternalControl);
+ proto.write(VibratorServiceDumpProto.LOW_POWER_MODE, mLowPowerMode);
+ proto.write(VibratorServiceDumpProto.HAPTIC_FEEDBACK_INTENSITY,
+ mHapticFeedbackIntensity);
+ proto.write(VibratorServiceDumpProto.NOTIFICATION_INTENSITY,
+ mNotificationIntensity);
+ proto.write(VibratorServiceDumpProto.RING_INTENSITY, mRingIntensity);
+
+ for (VibrationInfo info : mPreviousRingVibrations) {
+ info.dumpProto(proto,
+ VibratorServiceDumpProto.PREVIOUS_RING_VIBRATIONS);
+ }
+
+ for (VibrationInfo info : mPreviousNotificationVibrations) {
+ info.dumpProto(proto,
+ VibratorServiceDumpProto.PREVIOUS_NOTIFICATION_VIBRATIONS);
+ }
+
+ for (VibrationInfo info : mPreviousAlarmVibrations) {
+ info.dumpProto(proto,
+ VibratorServiceDumpProto.PREVIOUS_ALARM_VIBRATIONS);
+ }
+
+ for (VibrationInfo info : mPreviousVibrations) {
+ info.dumpProto(proto,
+ VibratorServiceDumpProto.PREVIOUS_VIBRATIONS);
+ }
+ }
+ proto.flush();
+ }
+
private class VibrateThread extends Thread {
private final VibrationEffect.Waveform mWaveform;
private final int mUid;
@@ -1556,47 +1655,22 @@ public class VibratorService extends IVibratorService.Stub
protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
if (!DumpUtils.checkDumpPermission(mContext, TAG, pw)) return;
- pw.println("Vibrator Service:");
- synchronized (mLock) {
- pw.print(" mCurrentVibration=");
- if (mCurrentVibration != null) {
- pw.println(mCurrentVibration.toInfo().toString());
- } else {
- pw.println("null");
- }
- pw.print(" mCurrentExternalVibration=" + mCurrentExternalVibration);
- pw.println(" mVibratorUnderExternalControl=" + mVibratorUnderExternalControl);
- pw.println(" mLowPowerMode=" + mLowPowerMode);
- pw.println(" mHapticFeedbackIntensity=" + mHapticFeedbackIntensity);
- pw.println(" mNotificationIntensity=" + mNotificationIntensity);
- pw.println(" mRingIntensity=" + mRingIntensity);
- pw.println(" mSupportedEffects=" + mSupportedEffects);
- pw.println();
- pw.println(" Previous ring vibrations:");
- for (VibrationInfo info : mPreviousRingVibrations) {
- pw.print(" ");
- pw.println(info.toString());
- }
-
- pw.println(" Previous notification vibrations:");
- for (VibrationInfo info : mPreviousNotificationVibrations) {
- pw.println(" " + info);
- }
+ final long ident = Binder.clearCallingIdentity();
- pw.println(" Previous alarm vibrations:");
- for (VibrationInfo info : mPreviousAlarmVibrations) {
- pw.println(" " + info);
+ boolean isDumpProto = false;
+ for (String arg : args) {
+ if (arg.equals("--proto")) {
+ isDumpProto = true;
}
-
- pw.println(" Previous vibrations:");
- for (VibrationInfo info : mPreviousVibrations) {
- pw.println(" " + info);
- }
-
- pw.println(" Previous external vibrations:");
- for (ExternalVibration vib : mPreviousExternalVibrations) {
- pw.println(" " + vib);
+ }
+ try {
+ if (isDumpProto) {
+ dumpProto(fd);
+ } else {
+ dumpInternal(pw);
}
+ } finally {
+ Binder.restoreCallingIdentity(ident);
}
}
diff --git a/services/core/java/com/android/server/Watchdog.java b/services/core/java/com/android/server/Watchdog.java
index a60b09fda2e8..a1ccd8459c69 100644
--- a/services/core/java/com/android/server/Watchdog.java
+++ b/services/core/java/com/android/server/Watchdog.java
@@ -40,10 +40,10 @@ import android.util.EventLog;
import android.util.Log;
import android.util.Slog;
import android.util.SparseArray;
-import android.util.StatsLog;
import com.android.internal.os.ProcessCpuTracker;
import com.android.internal.os.ZygoteConnectionConstants;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.am.ActivityManagerService;
import com.android.server.wm.SurfaceAnimationThread;
@@ -636,7 +636,8 @@ public class Watchdog extends Thread {
"watchdog", null, "system_server", null, null, null,
subject, cpuInfo, stack, null);
}
- StatsLog.write(StatsLog.SYSTEM_SERVER_WATCHDOG_OCCURRED, subject);
+ FrameworkStatsLog.write(FrameworkStatsLog.SYSTEM_SERVER_WATCHDOG_OCCURRED,
+ subject);
}
};
dropboxThread.start();
diff --git a/services/core/java/com/android/server/adb/AdbDebuggingManager.java b/services/core/java/com/android/server/adb/AdbDebuggingManager.java
index 143474bd5c94..10994133e265 100644
--- a/services/core/java/com/android/server/adb/AdbDebuggingManager.java
+++ b/services/core/java/com/android/server/adb/AdbDebuggingManager.java
@@ -46,12 +46,12 @@ import android.service.adb.AdbDebuggingManagerProto;
import android.util.AtomicFile;
import android.util.Base64;
import android.util.Slog;
-import android.util.StatsLog;
import android.util.Xml;
import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.FastXmlSerializer;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.XmlUtils;
import com.android.internal.util.dump.DualDumpOutputStream;
import com.android.server.FgThread;
@@ -493,8 +493,8 @@ public class AdbDebuggingManager {
"Logging key " + key + ", state = " + state + ", alwaysAllow = " + alwaysAllow
+ ", lastConnectionTime = " + lastConnectionTime + ", authWindow = "
+ authWindow);
- StatsLog.write(StatsLog.ADB_CONNECTION_CHANGED, lastConnectionTime, authWindow, state,
- alwaysAllow);
+ FrameworkStatsLog.write(FrameworkStatsLog.ADB_CONNECTION_CHANGED, lastConnectionTime,
+ authWindow, state, alwaysAllow);
}
diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java
index ffeea3d12781..982466d82d38 100644
--- a/services/core/java/com/android/server/am/ActiveServices.java
+++ b/services/core/java/com/android/server/am/ActiveServices.java
@@ -19,12 +19,8 @@ package com.android.server.am;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
import static android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION;
import static android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST;
-import static android.os.Process.BLUETOOTH_UID;
-import static android.os.Process.NETWORK_STACK_UID;
import static android.os.Process.NFC_UID;
-import static android.os.Process.PHONE_UID;
import static android.os.Process.ROOT_UID;
-import static android.os.Process.SE_UID;
import static android.os.Process.SYSTEM_UID;
import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_BACKGROUND_CHECK;
@@ -89,7 +85,6 @@ import android.util.EventLog;
import android.util.PrintWriterPrinter;
import android.util.Slog;
import android.util.SparseArray;
-import android.util.StatsLog;
import android.util.TimeUtils;
import android.util.proto.ProtoOutputStream;
import android.webkit.WebViewZygote;
@@ -103,6 +98,7 @@ import com.android.internal.os.BatteryStatsImpl;
import com.android.internal.os.TransferPipe;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.FastPrintWriter;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.AppStateTracker;
import com.android.server.LocalServices;
import com.android.server.SystemService;
@@ -728,8 +724,9 @@ public final class ActiveServices {
stracker.setStarted(true, mAm.mProcessStats.getMemFactorLocked(), r.lastActivity);
}
r.callStart = false;
- StatsLog.write(StatsLog.SERVICE_STATE_CHANGED, r.appInfo.uid, r.name.getPackageName(),
- r.name.getClassName(), StatsLog.SERVICE_STATE_CHANGED__STATE__START);
+ FrameworkStatsLog.write(FrameworkStatsLog.SERVICE_STATE_CHANGED, r.appInfo.uid,
+ r.name.getPackageName(), r.name.getClassName(),
+ FrameworkStatsLog.SERVICE_STATE_CHANGED__STATE__START);
synchronized (r.stats.getBatteryStats()) {
r.stats.startRunningLocked();
}
@@ -768,9 +765,9 @@ public final class ActiveServices {
service.delayedStop = true;
return;
}
- StatsLog.write(StatsLog.SERVICE_STATE_CHANGED, service.appInfo.uid,
+ FrameworkStatsLog.write(FrameworkStatsLog.SERVICE_STATE_CHANGED, service.appInfo.uid,
service.name.getPackageName(), service.name.getClassName(),
- StatsLog.SERVICE_STATE_CHANGED__STATE__STOP);
+ FrameworkStatsLog.SERVICE_STATE_CHANGED__STATE__STOP);
synchronized (service.stats.getBatteryStats()) {
service.stats.stopRunningLocked();
}
@@ -929,8 +926,9 @@ public final class ActiveServices {
}
}
- StatsLog.write(StatsLog.SERVICE_STATE_CHANGED, r.appInfo.uid, r.name.getPackageName(),
- r.name.getClassName(), StatsLog.SERVICE_STATE_CHANGED__STATE__STOP);
+ FrameworkStatsLog.write(FrameworkStatsLog.SERVICE_STATE_CHANGED, r.appInfo.uid,
+ r.name.getPackageName(), r.name.getClassName(),
+ FrameworkStatsLog.SERVICE_STATE_CHANGED__STATE__STOP);
synchronized (r.stats.getBatteryStats()) {
r.stats.stopRunningLocked();
}
@@ -1435,9 +1433,9 @@ public final class ActiveServices {
AppOpsManager.getToken(mAm.mAppOpsService),
AppOpsManager.OP_START_FOREGROUND, r.appInfo.uid, r.packageName,
null, true, false, "");
- StatsLog.write(StatsLog.FOREGROUND_SERVICE_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.FOREGROUND_SERVICE_STATE_CHANGED,
r.appInfo.uid, r.shortInstanceName,
- StatsLog.FOREGROUND_SERVICE_STATE_CHANGED__STATE__ENTER);
+ FrameworkStatsLog.FOREGROUND_SERVICE_STATE_CHANGED__STATE__ENTER);
mAm.updateForegroundServiceUsageStats(r.name, r.userId, true);
}
r.postNotification();
@@ -1486,9 +1484,9 @@ public final class ActiveServices {
mAm.mAppOpsService.finishOperation(
AppOpsManager.getToken(mAm.mAppOpsService),
AppOpsManager.OP_START_FOREGROUND, r.appInfo.uid, r.packageName, null);
- StatsLog.write(StatsLog.FOREGROUND_SERVICE_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.FOREGROUND_SERVICE_STATE_CHANGED,
r.appInfo.uid, r.shortInstanceName,
- StatsLog.FOREGROUND_SERVICE_STATE_CHANGED__STATE__EXIT);
+ FrameworkStatsLog.FOREGROUND_SERVICE_STATE_CHANGED__STATE__EXIT);
mAm.updateForegroundServiceUsageStats(r.name, r.userId, false);
if (r.app != null) {
mAm.updateLruProcessLocked(r.app, false, null);
@@ -2772,8 +2770,8 @@ public final class ActiveServices {
EventLogTags.writeAmCreateService(
r.userId, System.identityHashCode(r), nameTerm, r.app.uid, r.app.pid);
}
- StatsLog.write(StatsLog.SERVICE_LAUNCH_REPORTED, r.appInfo.uid, r.name.getPackageName(),
- r.name.getClassName());
+ FrameworkStatsLog.write(FrameworkStatsLog.SERVICE_LAUNCH_REPORTED, r.appInfo.uid,
+ r.name.getPackageName(), r.name.getClassName());
synchronized (r.stats.getBatteryStats()) {
r.stats.startLaunchedLocked();
}
@@ -3101,8 +3099,9 @@ public final class ActiveServices {
mAm.mAppOpsService.finishOperation(
AppOpsManager.getToken(mAm.mAppOpsService),
AppOpsManager.OP_START_FOREGROUND, r.appInfo.uid, r.packageName, null);
- StatsLog.write(StatsLog.FOREGROUND_SERVICE_STATE_CHANGED, r.appInfo.uid,
- r.shortInstanceName, StatsLog.FOREGROUND_SERVICE_STATE_CHANGED__STATE__EXIT);
+ FrameworkStatsLog.write(FrameworkStatsLog.FOREGROUND_SERVICE_STATE_CHANGED,
+ r.appInfo.uid, r.shortInstanceName,
+ FrameworkStatsLog.FOREGROUND_SERVICE_STATE_CHANGED__STATE__EXIT);
mAm.updateForegroundServiceUsageStats(r.name, r.userId, false);
}
diff --git a/services/core/java/com/android/server/am/ActivityManagerConstants.java b/services/core/java/com/android/server/am/ActivityManagerConstants.java
index d7201054dea6..fabe92dbcb8a 100644
--- a/services/core/java/com/android/server/am/ActivityManagerConstants.java
+++ b/services/core/java/com/android/server/am/ActivityManagerConstants.java
@@ -287,7 +287,7 @@ final class ActivityManagerConstants extends ContentObserver {
// When the restriction is enabled, foreground service started from background will not have
// while-in-use permissions like location, camera and microphone. (The foreground service can be
// started, the restriction is on while-in-use permissions.)
- volatile boolean mFlagBackgroundFgsStartRestrictionEnabled;
+ volatile boolean mFlagBackgroundFgsStartRestrictionEnabled = true;
private final ActivityManagerService mService;
private ContentResolver mResolver;
@@ -304,18 +304,19 @@ final class ActivityManagerConstants extends ContentObserver {
// we have no limit on the number of service, visible, foreground, or other such
// processes and the number of those processes does not count against the cached
// process limit.
- public int CUR_MAX_CACHED_PROCESSES;
+ public int CUR_MAX_CACHED_PROCESSES = DEFAULT_MAX_CACHED_PROCESSES;
// The maximum number of empty app processes we will let sit around.
- public int CUR_MAX_EMPTY_PROCESSES;
+ public int CUR_MAX_EMPTY_PROCESSES = computeEmptyProcessLimit(CUR_MAX_CACHED_PROCESSES);
// The number of empty apps at which we don't consider it necessary to do
// memory trimming.
- public int CUR_TRIM_EMPTY_PROCESSES;
+ public int CUR_TRIM_EMPTY_PROCESSES = computeEmptyProcessLimit(MAX_CACHED_PROCESSES) / 2;
// The number of cached at which we don't consider it necessary to do
// memory trimming.
- public int CUR_TRIM_CACHED_PROCESSES;
+ public int CUR_TRIM_CACHED_PROCESSES =
+ (MAX_CACHED_PROCESSES - computeEmptyProcessLimit(MAX_CACHED_PROCESSES)) / 3;
/**
* Packages that can't be killed even if it's requested to be killed on imperceptible.
@@ -419,6 +420,8 @@ final class ActivityManagerConstants extends ContentObserver {
context.getResources().getIntArray(
com.android.internal.R.array.config_defaultImperceptibleKillingExemptionProcStates))
.boxed().collect(Collectors.toList());
+ IMPERCEPTIBLE_KILL_EXEMPT_PACKAGES.addAll(mDefaultImperceptibleKillExemptPackages);
+ IMPERCEPTIBLE_KILL_EXEMPT_PROC_STATES.addAll(mDefaultImperceptibleKillExemptProcStates);
}
public void start(ContentResolver resolver) {
@@ -438,14 +441,15 @@ final class ActivityManagerConstants extends ContentObserver {
DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
ActivityThread.currentApplication().getMainExecutor(),
mOnDeviceConfigChangedListener);
- updateMaxCachedProcesses();
+ loadDeviceConfigConstants();
+ // The following read from Settings.
updateActivityStartsLoggingEnabled();
- updateBackgroundActivityStarts();
- updateForceRestrictedBackgroundCheck();
updateForegroundServiceStartsLoggingEnabled();
- updateBackgroundFgsStartsRestriction();
- updateOomAdjUpdatePolicy();
- updateImperceptibleKillExemptions();
+ }
+
+ private void loadDeviceConfigConstants() {
+ mOnDeviceConfigChangedListener.onPropertiesChanged(
+ DeviceConfig.getProperties(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER));
}
public void setOverrideMaxCachedProcesses(int value) {
@@ -549,8 +553,6 @@ final class ActivityManagerConstants extends ContentObserver {
// For new flags that are intended for server-side experiments, please use the new
// DeviceConfig package.
-
- updateMaxCachedProcesses();
}
}
@@ -579,6 +581,9 @@ final class ActivityManagerConstants extends ContentObserver {
}
private void updateOomAdjUpdatePolicy() {
+
+
+
OOMADJ_UPDATE_QUICK = DeviceConfig.getInt(
DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
KEY_OOMADJ_UPDATE_POLICY,
diff --git a/services/core/java/com/android/server/am/ActivityManagerDebugConfig.java b/services/core/java/com/android/server/am/ActivityManagerDebugConfig.java
index b19a37e0d840..f872c6bd1b8b 100644
--- a/services/core/java/com/android/server/am/ActivityManagerDebugConfig.java
+++ b/services/core/java/com/android/server/am/ActivityManagerDebugConfig.java
@@ -50,7 +50,7 @@ class ActivityManagerDebugConfig {
static final boolean DEBUG_BROADCAST_LIGHT = DEBUG_BROADCAST || false;
static final boolean DEBUG_BROADCAST_DEFERRAL = DEBUG_BROADCAST || false;
static final boolean DEBUG_COMPACTION = DEBUG_ALL || false;
- static final boolean DEBUG_FREEZER = DEBUG_ALL || false;
+ static final boolean DEBUG_FREEZER = DEBUG_ALL || true;
static final boolean DEBUG_LRU = DEBUG_ALL || false;
static final boolean DEBUG_MU = DEBUG_ALL || false;
static final boolean DEBUG_NETWORK = DEBUG_ALL || false;
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index a2209e848ccd..3ad96ea193bf 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -293,7 +293,6 @@ import android.util.PrintWriterPrinter;
import android.util.Slog;
import android.util.SparseArray;
import android.util.SparseIntArray;
-import android.util.StatsLog;
import android.util.TimeUtils;
import android.util.proto.ProtoOutputStream;
import android.util.proto.ProtoUtils;
@@ -326,6 +325,7 @@ import com.android.internal.os.Zygote;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.FastPrintWriter;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.MemInfoReader;
import com.android.internal.util.Preconditions;
import com.android.internal.util.function.HexFunction;
@@ -355,7 +355,6 @@ import com.android.server.contentcapture.ContentCaptureManagerInternal;
import com.android.server.firewall.IntentFirewall;
import com.android.server.job.JobSchedulerInternal;
import com.android.server.pm.Installer;
-import com.android.server.pm.Installer.InstallerException;
import com.android.server.pm.permission.PermissionManagerServiceInternal;
import com.android.server.uri.GrantUri;
import com.android.server.uri.UriGrantsManagerInternal;
@@ -2618,7 +2617,7 @@ public class ActivityManagerService extends IActivityManager.Stub
mProcessCpuThread.start();
mBatteryStatsService.publish();
- mAppOpsService.publish(mContext);
+ mAppOpsService.publish();
Slog.d("AppOps", "AppOpsService published");
LocalServices.addService(ActivityManagerInternal.class, mInternal);
mActivityTaskManager.onActivityManagerInternalAdded();
@@ -3070,10 +3069,10 @@ public class ActivityManagerService extends IActivityManager.Stub
"updateBatteryStats: comp=" + activity + "res=" + resumed);
}
final BatteryStatsImpl stats = mBatteryStatsService.getActiveStatistics();
- StatsLog.write(StatsLog.ACTIVITY_FOREGROUND_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.ACTIVITY_FOREGROUND_STATE_CHANGED,
uid, activity.getPackageName(), activity.getShortClassName(),
- resumed ? StatsLog.ACTIVITY_FOREGROUND_STATE_CHANGED__STATE__FOREGROUND :
- StatsLog.ACTIVITY_FOREGROUND_STATE_CHANGED__STATE__BACKGROUND);
+ resumed ? FrameworkStatsLog.ACTIVITY_FOREGROUND_STATE_CHANGED__STATE__FOREGROUND :
+ FrameworkStatsLog.ACTIVITY_FOREGROUND_STATE_CHANGED__STATE__BACKGROUND);
synchronized (stats) {
if (resumed) {
stats.noteActivityResumedLocked(uid);
@@ -3797,7 +3796,7 @@ public class ActivityManagerService extends IActivityManager.Stub
// On the device which doesn't have Cgroup, log LmkStateChanged which is used as a signal
// for pulling memory stats of other running processes when this process died.
if (!hasMemcg()) {
- StatsLog.write(StatsLog.APP_DIED, SystemClock.elapsedRealtime());
+ FrameworkStatsLog.write(FrameworkStatsLog.APP_DIED, SystemClock.elapsedRealtime());
}
}
@@ -4443,7 +4442,7 @@ public class ActivityManagerService extends IActivityManager.Stub
proc.pkgList.mPkgList);
for (int ipkg = proc.pkgList.size() - 1; ipkg >= 0; ipkg--) {
ProcessStats.ProcessStateHolder holder = proc.pkgList.valueAt(ipkg);
- StatsLog.write(StatsLog.PROCESS_MEMORY_STAT_REPORTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PROCESS_MEMORY_STAT_REPORTED,
proc.info.uid,
holder.state.getName(),
holder.state.getPackage(),
@@ -4501,7 +4500,7 @@ public class ActivityManagerService extends IActivityManager.Stub
ProcessStats.ADD_PSS_EXTERNAL, endTime-startTime, proc.pkgList.mPkgList);
for (int ipkg = proc.pkgList.size() - 1; ipkg >= 0; ipkg--) {
ProcessStats.ProcessStateHolder holder = proc.pkgList.valueAt(ipkg);
- StatsLog.write(StatsLog.PROCESS_MEMORY_STAT_REPORTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PROCESS_MEMORY_STAT_REPORTED,
proc.info.uid,
holder.state.getName(),
holder.state.getPackage(),
@@ -5144,14 +5143,12 @@ public class ActivityManagerService extends IActivityManager.Stub
checkTime(startTime, "attachApplicationLocked: after updateLruProcessLocked");
app.lastRequestedGc = app.lastLowMemory = SystemClock.uptimeMillis();
} catch (Exception e) {
- // todo: Yikes! What should we do? For now we will try to
- // start another process, but that could easily get us in
- // an infinite loop of restarting processes...
+ // We need kill the process group here. (b/148588589)
Slog.wtf(TAG, "Exception thrown during bind of " + app, e);
-
app.resetPackageList(mProcessStats);
app.unlinkDeathRecipient();
- mProcessList.startProcessLocked(app, new HostingRecord("bind-fail", processName));
+ app.kill("error during bind", ApplicationExitInfo.REASON_INITIALIZATION_FAILURE, true);
+ handleAppDiedLocked(app, false, true);
return false;
}
@@ -5224,12 +5221,12 @@ public class ActivityManagerService extends IActivityManager.Stub
checkTime(startTime, "attachApplicationLocked: after updateOomAdjLocked");
}
- StatsLog.write(
- StatsLog.PROCESS_START_TIME,
+ FrameworkStatsLog.write(
+ FrameworkStatsLog.PROCESS_START_TIME,
app.info.uid,
app.pid,
app.info.packageName,
- StatsLog.PROCESS_START_TIME__TYPE__COLD,
+ FrameworkStatsLog.PROCESS_START_TIME__TYPE__COLD,
app.startTime,
(int) (bindApplicationTimeMillis - app.startTime),
(int) (SystemClock.elapsedRealtime() - app.startTime),
@@ -5270,26 +5267,6 @@ public class ActivityManagerService extends IActivityManager.Stub
mCallFinishBooting = false;
}
- ArraySet<String> completedIsas = new ArraySet<String>();
- for (String abi : Build.SUPPORTED_ABIS) {
- ZYGOTE_PROCESS.establishZygoteConnectionForAbi(abi);
- final String instructionSet = VMRuntime.getInstructionSet(abi);
- if (!completedIsas.contains(instructionSet)) {
- try {
- mInstaller.markBootComplete(VMRuntime.getInstructionSet(abi));
- } catch (InstallerException e) {
- if (!VMRuntime.didPruneDalvikCache()) {
- // This is technically not the right filter, as different zygotes may
- // have made different pruning decisions. But the log is best effort,
- // anyways.
- Slog.w(TAG, "Unable to mark boot complete for abi: " + abi + " (" +
- e.getMessage() +")");
- }
- }
- completedIsas.add(instructionSet);
- }
- }
-
// Let the ART runtime in zygote and system_server know that the boot completed.
ZYGOTE_PROCESS.bootCompleted();
VMRuntime.bootCompleted();
@@ -6866,7 +6843,8 @@ public class ActivityManagerService extends IActivityManager.Stub
cpi = cpr.info;
if (isSingleton(cpi.processName, cpi.applicationInfo,
cpi.name, cpi.flags)
- && isValidSingletonCall(r.uid, cpi.applicationInfo.uid)) {
+ && isValidSingletonCall(r == null ? callingUid : r.uid,
+ cpi.applicationInfo.uid)) {
userId = UserHandle.USER_SYSTEM;
checkCrossUser = false;
} else {
@@ -6876,6 +6854,7 @@ public class ActivityManagerService extends IActivityManager.Stub
}
}
+ ProcessRecord dyingProc = null;
if (cpr != null && cpr.proc != null) {
providerRunning = !cpr.proc.killed;
@@ -6885,14 +6864,9 @@ public class ActivityManagerService extends IActivityManager.Stub
// (See the commit message on I2c4ba1e87c2d47f2013befff10c49b3dc337a9a7 to see
// how to test this case.)
if (cpr.proc.killed && cpr.proc.killedByAm) {
- final long iden = Binder.clearCallingIdentity();
- try {
- mProcessList.killProcAndWaitIfNecessaryLocked(cpr.proc, false,
- cpr.uid == cpr.proc.uid || cpr.proc.isolated,
- "getContentProviderImpl: %s (killedByAm)", startTime);
- } finally {
- Binder.restoreCallingIdentity(iden);
- }
+ Slog.wtf(TAG, cpr.proc.toString() + " was killed by AM but isn't really dead");
+ // Now we are going to wait for the death before starting the new process.
+ dyingProc = cpr.proc;
}
}
@@ -6958,7 +6932,8 @@ public class ActivityManagerService extends IActivityManager.Stub
conn = incProviderCountLocked(r, cpr, token, callingUid, callingPackage, callingTag,
stable);
if (conn != null && (conn.stableCount+conn.unstableCount) == 1) {
- if (cpr.proc != null && r.setAdj <= ProcessList.PERCEPTIBLE_LOW_APP_ADJ) {
+ if (cpr.proc != null
+ && r != null && r.setAdj <= ProcessList.PERCEPTIBLE_LOW_APP_ADJ) {
// If this is a perceptible app accessing the provider,
// make sure to count it as being accessed and thus
// back up on the LRU list. This is good because
@@ -6993,18 +6968,18 @@ public class ActivityManagerService extends IActivityManager.Stub
// has been killed on us. We need to wait for a new
// process to be started, and make sure its death
// doesn't kill our process.
- Slog.i(TAG, "Existing provider " + cpr.name.flattenToShortString()
+ Slog.wtf(TAG, "Existing provider " + cpr.name.flattenToShortString()
+ " is crashing; detaching " + r);
boolean lastRef = decProviderCountLocked(conn, cpr, token, stable);
- mProcessList.killProcAndWaitIfNecessaryLocked(cpr.proc,
- false, true, "getContentProviderImpl: %s", startTime);
if (!lastRef) {
// This wasn't the last ref our process had on
- // the provider... we have now been killed, bail.
+ // the provider... we will be killed during cleaning up, bail.
return null;
}
+ // We'll just start a new process to host the content provider
providerRunning = false;
conn = null;
+ dyingProc = cpr.proc;
} else {
cpr.proc.verifiedAdj = cpr.proc.setAdj;
}
@@ -7030,7 +7005,8 @@ public class ActivityManagerService extends IActivityManager.Stub
// Then allow connecting to the singleton provider
boolean singleton = isSingleton(cpi.processName, cpi.applicationInfo,
cpi.name, cpi.flags)
- && isValidSingletonCall(r.uid, cpi.applicationInfo.uid);
+ && isValidSingletonCall(r == null ? callingUid : r.uid,
+ cpi.applicationInfo.uid);
if (singleton) {
userId = UserHandle.USER_SYSTEM;
}
@@ -7080,7 +7056,7 @@ public class ActivityManagerService extends IActivityManager.Stub
checkTime(startTime, "getContentProviderImpl: before getProviderByClass");
cpr = mProviderMap.getProviderByClass(comp, userId);
checkTime(startTime, "getContentProviderImpl: after getProviderByClass");
- final boolean firstClass = cpr == null;
+ boolean firstClass = cpr == null;
if (firstClass) {
final long ident = Binder.clearCallingIdentity();
@@ -7111,6 +7087,13 @@ public class ActivityManagerService extends IActivityManager.Stub
} finally {
Binder.restoreCallingIdentity(ident);
}
+ } else if (dyingProc == cpr.proc) {
+ // The old stable connection's client should be killed during proc cleaning up,
+ // so do not re-use the old ContentProviderRecord, otherwise the new clients
+ // could get killed unexpectedly.
+ cpr = new ContentProviderRecord(cpr);
+ // This is sort of "firstClass"
+ firstClass = true;
}
checkTime(startTime, "getContentProviderImpl: now have ContentProviderRecord");
@@ -8859,8 +8842,8 @@ public class ActivityManagerService extends IActivityManager.Stub
UserHandle.getUserId(workSourceUid), SystemClock.elapsedRealtime());
}
- StatsLog.write(StatsLog.WAKEUP_ALARM_OCCURRED, workSource, tag, sourcePkg,
- standbyBucket);
+ FrameworkStatsLog.write(FrameworkStatsLog.WAKEUP_ALARM_OCCURRED, workSource, tag,
+ sourcePkg, standbyBucket);
if (DEBUG_POWER) {
Slog.w(TAG, "noteWakeupAlarm[ sourcePkg=" + sourcePkg + ", sourceUid=" + sourceUid
+ ", workSource=" + workSource + ", tag=" + tag + ", standbyBucket="
@@ -8871,8 +8854,8 @@ public class ActivityManagerService extends IActivityManager.Stub
standbyBucket = mUsageStatsService.getAppStandbyBucket(sourcePkg,
UserHandle.getUserId(sourceUid), SystemClock.elapsedRealtime());
}
- StatsLog.write_non_chained(StatsLog.WAKEUP_ALARM_OCCURRED, sourceUid, null, tag,
- sourcePkg, standbyBucket);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.WAKEUP_ALARM_OCCURRED, sourceUid,
+ null, tag, sourcePkg, standbyBucket);
if (DEBUG_POWER) {
Slog.w(TAG, "noteWakeupAlarm[ sourcePkg=" + sourcePkg + ", sourceUid=" + sourceUid
+ ", workSource=" + workSource + ", tag=" + tag + ", standbyBucket="
@@ -9606,20 +9589,20 @@ public class ActivityManagerService extends IActivityManager.Stub
crashInfo.throwFileName,
crashInfo.throwLineNumber);
- StatsLog.write(StatsLog.APP_CRASH_OCCURRED,
+ FrameworkStatsLog.write(FrameworkStatsLog.APP_CRASH_OCCURRED,
Binder.getCallingUid(),
eventType,
processName,
Binder.getCallingPid(),
(r != null && r.info != null) ? r.info.packageName : "",
(r != null && r.info != null) ? (r.info.isInstantApp()
- ? StatsLog.APP_CRASH_OCCURRED__IS_INSTANT_APP__TRUE
- : StatsLog.APP_CRASH_OCCURRED__IS_INSTANT_APP__FALSE)
- : StatsLog.APP_CRASH_OCCURRED__IS_INSTANT_APP__UNAVAILABLE,
+ ? FrameworkStatsLog.APP_CRASH_OCCURRED__IS_INSTANT_APP__TRUE
+ : FrameworkStatsLog.APP_CRASH_OCCURRED__IS_INSTANT_APP__FALSE)
+ : FrameworkStatsLog.APP_CRASH_OCCURRED__IS_INSTANT_APP__UNAVAILABLE,
r != null ? (r.isInterestingToUserLocked()
- ? StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__FOREGROUND
- : StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__BACKGROUND)
- : StatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__UNKNOWN,
+ ? FrameworkStatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__FOREGROUND
+ : FrameworkStatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__BACKGROUND)
+ : FrameworkStatsLog.APP_CRASH_OCCURRED__FOREGROUND_STATE__UNKNOWN,
processName.equals("system_server") ? ServerProtoEnums.SYSTEM_SERVER
: (r != null) ? r.getProcessClassEnum()
: ServerProtoEnums.ERROR_SOURCE_UNKNOWN
@@ -9810,7 +9793,7 @@ public class ActivityManagerService extends IActivityManager.Stub
EventLogTags.writeAmWtf(UserHandle.getUserId(callingUid), callingPid,
processName, r == null ? -1 : r.info.flags, tag, crashInfo.exceptionMessage);
- StatsLog.write(StatsLog.WTF_OCCURRED, callingUid, tag, processName,
+ FrameworkStatsLog.write(FrameworkStatsLog.WTF_OCCURRED, callingUid, tag, processName,
callingPid, (r != null) ? r.getProcessClassEnum() : 0);
addErrorToDropBox("wtf", r, processName, null, null, null, tag, null, null, crashInfo);
@@ -13049,7 +13032,7 @@ public class ActivityManagerService extends IActivityManager.Stub
reportType, endTime-startTime, r.pkgList.mPkgList);
for (int ipkg = r.pkgList.size() - 1; ipkg >= 0; ipkg--) {
ProcessStats.ProcessStateHolder holder = r.pkgList.valueAt(ipkg);
- StatsLog.write(StatsLog.PROCESS_MEMORY_STAT_REPORTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PROCESS_MEMORY_STAT_REPORTED,
r.info.uid,
holder.state.getName(),
holder.state.getPackage(),
@@ -13653,7 +13636,7 @@ public class ActivityManagerService extends IActivityManager.Stub
reportType, endTime-startTime, r.pkgList.mPkgList);
for (int ipkg = r.pkgList.size() - 1; ipkg >= 0; ipkg--) {
ProcessStats.ProcessStateHolder holder = r.pkgList.valueAt(ipkg);
- StatsLog.write(StatsLog.PROCESS_MEMORY_STAT_REPORTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PROCESS_MEMORY_STAT_REPORTED,
r.info.uid,
holder.state.getName(),
holder.state.getPackage(),
@@ -14220,7 +14203,7 @@ public class ActivityManagerService extends IActivityManager.Stub
catPw.flush();
}
dropBuilder.append(catSw.toString());
- StatsLog.write(StatsLog.LOW_MEM_REPORTED);
+ FrameworkStatsLog.write(FrameworkStatsLog.LOW_MEM_REPORTED);
addErrorToDropBox("lowmem", null, "system_server", null,
null, null, tag.toString(), dropBuilder.toString(), null, null);
//Slog.i(TAG, "Sent to dropbox:");
@@ -14270,10 +14253,19 @@ public class ActivityManagerService extends IActivityManager.Stub
cpr.launchingApp = null;
cpr.notifyAll();
}
- mProviderMap.removeProviderByClass(cpr.name, UserHandle.getUserId(cpr.uid));
+ final int userId = UserHandle.getUserId(cpr.uid);
+ // Don't remove from provider map if it doesn't match
+ // could be a new content provider is starting
+ if (mProviderMap.getProviderByClass(cpr.name, userId) == cpr) {
+ mProviderMap.removeProviderByClass(cpr.name, userId);
+ }
String names[] = cpr.info.authority.split(";");
for (int j = 0; j < names.length; j++) {
- mProviderMap.removeProviderByName(names[j], UserHandle.getUserId(cpr.uid));
+ // Don't remove from provider map if it doesn't match
+ // could be a new content provider is starting
+ if (mProviderMap.getProviderByName(names[j], userId) == cpr) {
+ mProviderMap.removeProviderByName(names[j], userId);
+ }
}
}
@@ -14368,6 +14360,10 @@ public class ActivityManagerService extends IActivityManager.Stub
// Remove published content providers.
for (int i = app.pubProviders.size() - 1; i >= 0; i--) {
ContentProviderRecord cpr = app.pubProviders.valueAt(i);
+ if (cpr.proc != app) {
+ // If the hosting process record isn't really us, bail out
+ continue;
+ }
final boolean alwaysRemove = app.bad || !allowRestart;
final boolean inLaunching = removeDyingProviderLocked(app, cpr, alwaysRemove);
if (!alwaysRemove && inLaunching && cpr.hasConnectionOrHandle()) {
@@ -14453,6 +14449,27 @@ public class ActivityManagerService extends IActivityManager.Stub
mUiHandler.obtainMessage(DISPATCH_PROCESS_DIED_UI_MSG, app.pid, app.info.uid,
null).sendToTarget();
+ // If this is a precede instance of another process instance
+ allowRestart = true;
+ synchronized (app) {
+ if (app.mSuccessor != null) {
+ // We don't allow restart with this ProcessRecord now,
+ // because we have created a new one already.
+ allowRestart = false;
+ // If it's persistent, add the successor to mPersistentStartingProcesses
+ if (app.isPersistent() && !app.removed) {
+ if (mPersistentStartingProcesses.indexOf(app.mSuccessor) < 0) {
+ mPersistentStartingProcesses.add(app.mSuccessor);
+ }
+ }
+ // clean up the field so the successor's proc starter could proceed.
+ app.mSuccessor.mPrecedence = null;
+ app.mSuccessor = null;
+ // Notify if anyone is waiting for it.
+ app.notifyAll();
+ }
+ }
+
// If the caller is restarting this app, then leave it in its
// current lists and let the caller take care of it.
if (restarting) {
@@ -14482,7 +14499,7 @@ public class ActivityManagerService extends IActivityManager.Stub
mAtmInternal.onCleanUpApplicationRecord(app.getWindowProcessController());
mProcessList.noteProcessDiedLocked(app);
- if (restart && !app.isolated) {
+ if (restart && allowRestart && !app.isolated) {
// We have components that still need to be running in the
// process, so re-launch it.
if (index < 0) {
@@ -16860,7 +16877,7 @@ public class ActivityManagerService extends IActivityManager.Stub
pss, uss, rss, true, statType, pssDuration, proc.pkgList.mPkgList);
for (int ipkg = proc.pkgList.mPkgList.size() - 1; ipkg >= 0; ipkg--) {
ProcessStats.ProcessStateHolder holder = proc.pkgList.valueAt(ipkg);
- StatsLog.write(StatsLog.PROCESS_MEMORY_STAT_REPORTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PROCESS_MEMORY_STAT_REPORTED,
proc.info.uid,
holder.state.getName(),
holder.state.getPackage(),
@@ -17220,7 +17237,7 @@ public class ActivityManagerService extends IActivityManager.Stub
app.baseProcessTracker.reportExcessiveCpu(app.pkgList.mPkgList);
for (int ipkg = app.pkgList.size() - 1; ipkg >= 0; ipkg--) {
ProcessStats.ProcessStateHolder holder = app.pkgList.valueAt(ipkg);
- StatsLog.write(StatsLog.EXCESSIVE_CPU_USAGE_REPORTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.EXCESSIVE_CPU_USAGE_REPORTED,
app.info.uid,
holder.state.getName(),
holder.state.getPackage(),
@@ -17507,7 +17524,7 @@ public class ActivityManagerService extends IActivityManager.Stub
}
if (memFactor != mLastMemoryLevel) {
EventLogTags.writeAmMemFactor(memFactor, mLastMemoryLevel);
- StatsLog.write(StatsLog.MEMORY_FACTOR_STATE_CHANGED, memFactor);
+ FrameworkStatsLog.write(FrameworkStatsLog.MEMORY_FACTOR_STATE_CHANGED, memFactor);
}
mLastMemoryLevel = memFactor;
mLastNumProcesses = mProcessList.getLruSizeLocked();
@@ -18908,19 +18925,16 @@ public class ActivityManagerService extends IActivityManager.Stub
}
// The arguments here are untyped because the base ActivityManagerInternal class
- // doesn't have compile-time visiblity into ActivityServiceConnectionHolder or
+ // doesn't have compile-time visibility into ActivityServiceConnectionHolder or
// ConnectionRecord.
@Override
- public void disconnectActivityFromServices(Object connectionHolder, Object conns) {
+ public void disconnectActivityFromServices(Object connectionHolder) {
// 'connectionHolder' is an untyped ActivityServiceConnectionsHolder
- // 'conns' is an untyped HashSet<ConnectionRecord>
final ActivityServiceConnectionsHolder holder =
(ActivityServiceConnectionsHolder) connectionHolder;
- final HashSet<ConnectionRecord> toDisconnect = (HashSet<ConnectionRecord>) conns;
- synchronized(ActivityManagerService.this) {
- for (ConnectionRecord cr : toDisconnect) {
- mServices.removeConnectionLocked(cr, null, holder);
- }
+ synchronized (ActivityManagerService.this) {
+ holder.forEachConnection(cr -> mServices.removeConnectionLocked(
+ (ConnectionRecord) cr, null /* skipApp */, holder /* skipAct */));
}
}
@@ -19496,7 +19510,7 @@ public class ActivityManagerService extends IActivityManager.Stub
}
public AppOpsService getAppOpsService(File file, Handler handler) {
- return new AppOpsService(file, handler);
+ return new AppOpsService(file, handler, getContext());
}
public Handler getUiHandler(ActivityManagerService service) {
diff --git a/services/core/java/com/android/server/am/AppExitInfoTracker.java b/services/core/java/com/android/server/am/AppExitInfoTracker.java
index bab133f58c11..60aba277569b 100644
--- a/services/core/java/com/android/server/am/AppExitInfoTracker.java
+++ b/services/core/java/com/android/server/am/AppExitInfoTracker.java
@@ -17,6 +17,7 @@
package com.android.server.am;
import static android.app.ActivityManager.RunningAppProcessInfo.procStateToImportance;
+import static android.os.Process.THREAD_PRIORITY_BACKGROUND;
import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_PROCESSES;
import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM;
@@ -52,6 +53,7 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.ProcessMap;
import com.android.server.IoThread;
+import com.android.server.ServiceThread;
import com.android.server.SystemServiceManager;
import java.io.File;
@@ -179,9 +181,12 @@ public final class AppExitInfoTracker {
mRawRecordsPool = new SynchronizedPool<ApplicationExitInfo>(APP_EXIT_RAW_INFO_POOL_SIZE);
}
- void init(ActivityManagerService service, Looper looper) {
+ void init(ActivityManagerService service) {
mService = service;
- mKillHandler = new KillHandler(looper);
+ ServiceThread thread = new ServiceThread(TAG + ":killHandler",
+ THREAD_PRIORITY_BACKGROUND, true /* allowIo */);
+ thread.start();
+ mKillHandler = new KillHandler(thread.getLooper());
mProcExitInfoFile = new File(SystemServiceManager.ensureSystemDir(), APP_EXIT_INFO_FILE);
mAppExitInfoHistoryListSize = service.mContext.getResources().getInteger(
diff --git a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
index fa916202d553..39f79ca2f13b 100644
--- a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
+++ b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
@@ -33,11 +33,11 @@ import android.telephony.ModemActivityInfo;
import android.telephony.TelephonyManager;
import android.util.IntArray;
import android.util.Slog;
-import android.util.StatsLog;
import android.util.TimeUtils;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.os.BatteryStatsImpl;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.function.pooled.PooledLambda;
import libcore.util.EmptyArray;
@@ -374,8 +374,8 @@ class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStatsSync {
// Clean up any UIDs if necessary.
synchronized (mStats) {
for (int uid : uidsToRemove) {
- StatsLog.write(StatsLog.ISOLATED_UID_CHANGED, -1, uid,
- StatsLog.ISOLATED_UID_CHANGED__EVENT__REMOVED);
+ FrameworkStatsLog.write(FrameworkStatsLog.ISOLATED_UID_CHANGED, -1, uid,
+ FrameworkStatsLog.ISOLATED_UID_CHANGED__EVENT__REMOVED);
mStats.removeIsolatedUidLocked(uid);
}
mStats.clearPendingRemovedUids();
@@ -550,7 +550,6 @@ class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStatsSync {
return data;
}
}
- Slog.e(TAG, "no controller energy info supplied for " + receiver.getName());
} catch (TimeoutException e) {
Slog.w(TAG, "timeout reading " + receiver.getName() + " stats");
}
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java
index a98b83b09a6a..ed6ace3335f5 100644
--- a/services/core/java/com/android/server/am/BatteryStatsService.java
+++ b/services/core/java/com/android/server/am/BatteryStatsService.java
@@ -53,7 +53,6 @@ import android.telephony.ModemActivityInfo;
import android.telephony.SignalStrength;
import android.telephony.TelephonyManager;
import android.util.Slog;
-import android.util.StatsLog;
import com.android.internal.app.IBatteryStats;
import com.android.internal.os.BatteryStatsHelper;
@@ -62,6 +61,7 @@ import com.android.internal.os.PowerProfile;
import com.android.internal.os.RailStats;
import com.android.internal.os.RpmStats;
import com.android.internal.util.DumpUtils;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.ParseUtils;
import com.android.server.LocalServices;
@@ -347,16 +347,16 @@ public final class BatteryStatsService extends IBatteryStats.Stub
void noteProcessStart(String name, int uid) {
synchronized (mStats) {
mStats.noteProcessStartLocked(name, uid);
- StatsLog.write(StatsLog.PROCESS_LIFE_CYCLE_STATE_CHANGED, uid, name,
- StatsLog.PROCESS_LIFE_CYCLE_STATE_CHANGED__STATE__STARTED);
+ FrameworkStatsLog.write(FrameworkStatsLog.PROCESS_LIFE_CYCLE_STATE_CHANGED, uid, name,
+ FrameworkStatsLog.PROCESS_LIFE_CYCLE_STATE_CHANGED__STATE__STARTED);
}
}
void noteProcessCrash(String name, int uid) {
synchronized (mStats) {
mStats.noteProcessCrashLocked(name, uid);
- StatsLog.write(StatsLog.PROCESS_LIFE_CYCLE_STATE_CHANGED, uid, name,
- StatsLog.PROCESS_LIFE_CYCLE_STATE_CHANGED__STATE__CRASHED);
+ FrameworkStatsLog.write(FrameworkStatsLog.PROCESS_LIFE_CYCLE_STATE_CHANGED, uid, name,
+ FrameworkStatsLog.PROCESS_LIFE_CYCLE_STATE_CHANGED__STATE__CRASHED);
}
}
@@ -369,15 +369,15 @@ public final class BatteryStatsService extends IBatteryStats.Stub
void noteProcessFinish(String name, int uid) {
synchronized (mStats) {
mStats.noteProcessFinishLocked(name, uid);
- StatsLog.write(StatsLog.PROCESS_LIFE_CYCLE_STATE_CHANGED, uid, name,
- StatsLog.PROCESS_LIFE_CYCLE_STATE_CHANGED__STATE__FINISHED);
+ FrameworkStatsLog.write(FrameworkStatsLog.PROCESS_LIFE_CYCLE_STATE_CHANGED, uid, name,
+ FrameworkStatsLog.PROCESS_LIFE_CYCLE_STATE_CHANGED__STATE__FINISHED);
}
}
/** @param state Process state from ActivityManager.java. */
void noteUidProcessState(int uid, int state) {
synchronized (mStats) {
- StatsLog.write(StatsLog.UID_PROCESS_STATE_CHANGED, uid,
+ FrameworkStatsLog.write(FrameworkStatsLog.UID_PROCESS_STATE_CHANGED, uid,
ActivityManager.processStateAmToProto(state));
mStats.noteUidProcessStateLocked(uid, state);
@@ -453,8 +453,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteSyncStartLocked(name, uid);
- StatsLog.write_non_chained(StatsLog.SYNC_STATE_CHANGED, uid, null, name,
- StatsLog.SYNC_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SYNC_STATE_CHANGED, uid, null,
+ name, FrameworkStatsLog.SYNC_STATE_CHANGED__STATE__ON);
}
}
@@ -462,8 +462,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteSyncFinishLocked(name, uid);
- StatsLog.write_non_chained(StatsLog.SYNC_STATE_CHANGED, uid, null, name,
- StatsLog.SYNC_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SYNC_STATE_CHANGED, uid, null,
+ name, FrameworkStatsLog.SYNC_STATE_CHANGED__STATE__OFF);
}
}
@@ -472,8 +472,9 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteJobStartLocked(name, uid);
- StatsLog.write_non_chained(StatsLog.SCHEDULED_JOB_STATE_CHANGED, uid, null,
- name, StatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__STARTED,
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED,
+ uid, null, name,
+ FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__STARTED,
JobProtoEnums.STOP_REASON_UNKNOWN, standbyBucket, jobid);
}
}
@@ -483,9 +484,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteJobFinishLocked(name, uid, stopReason);
- StatsLog.write_non_chained(StatsLog.SCHEDULED_JOB_STATE_CHANGED, uid, null,
- name, StatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__FINISHED,
- stopReason, standbyBucket, jobid);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED,
+ uid, null, name,
+ FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED__STATE__FINISHED, stopReason,
+ standbyBucket, jobid);
}
}
@@ -600,8 +602,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteStartSensorLocked(uid, sensor);
- StatsLog.write_non_chained(StatsLog.SENSOR_STATE_CHANGED, uid, null, sensor,
- StatsLog.SENSOR_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SENSOR_STATE_CHANGED, uid, null,
+ sensor, FrameworkStatsLog.SENSOR_STATE_CHANGED__STATE__ON);
}
}
@@ -609,8 +611,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteStopSensorLocked(uid, sensor);
- StatsLog.write_non_chained(StatsLog.SENSOR_STATE_CHANGED, uid, null,
- sensor, StatsLog.SENSOR_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SENSOR_STATE_CHANGED, uid, null,
+ sensor, FrameworkStatsLog.SENSOR_STATE_CHANGED__STATE__OFF);
}
}
@@ -646,7 +648,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
if (DBG) Slog.d(TAG, "begin noteScreenState");
synchronized (mStats) {
- StatsLog.write(StatsLog.SCREEN_STATE_CHANGED, state);
+ FrameworkStatsLog.write(FrameworkStatsLog.SCREEN_STATE_CHANGED, state);
mStats.noteScreenStateLocked(state);
}
@@ -656,7 +658,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
public void noteScreenBrightness(int brightness) {
enforceCallingPermission();
synchronized (mStats) {
- StatsLog.write(StatsLog.SCREEN_BRIGHTNESS_CHANGED, brightness);
+ FrameworkStatsLog.write(FrameworkStatsLog.SCREEN_BRIGHTNESS_CHANGED, brightness);
mStats.noteScreenBrightnessLocked(brightness);
}
}
@@ -742,8 +744,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
synchronized (mStats) {
mStats.noteWifiOnLocked();
}
- StatsLog.write(StatsLog.WIFI_ENABLED_STATE_CHANGED,
- StatsLog.WIFI_ENABLED_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write(FrameworkStatsLog.WIFI_ENABLED_STATE_CHANGED,
+ FrameworkStatsLog.WIFI_ENABLED_STATE_CHANGED__STATE__ON);
}
public void noteWifiOff() {
@@ -751,16 +753,16 @@ public final class BatteryStatsService extends IBatteryStats.Stub
synchronized (mStats) {
mStats.noteWifiOffLocked();
}
- StatsLog.write(StatsLog.WIFI_ENABLED_STATE_CHANGED,
- StatsLog.WIFI_ENABLED_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write(FrameworkStatsLog.WIFI_ENABLED_STATE_CHANGED,
+ FrameworkStatsLog.WIFI_ENABLED_STATE_CHANGED__STATE__OFF);
}
public void noteStartAudio(int uid) {
enforceCallingPermission();
synchronized (mStats) {
mStats.noteAudioOnLocked(uid);
- StatsLog.write_non_chained(StatsLog.AUDIO_STATE_CHANGED, uid, null,
- StatsLog.AUDIO_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.AUDIO_STATE_CHANGED, uid, null,
+ FrameworkStatsLog.AUDIO_STATE_CHANGED__STATE__ON);
}
}
@@ -768,8 +770,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteAudioOffLocked(uid);
- StatsLog.write_non_chained(StatsLog.AUDIO_STATE_CHANGED, uid, null,
- StatsLog.AUDIO_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.AUDIO_STATE_CHANGED, uid, null,
+ FrameworkStatsLog.AUDIO_STATE_CHANGED__STATE__OFF);
}
}
@@ -777,8 +779,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteVideoOnLocked(uid);
- StatsLog.write_non_chained(StatsLog.MEDIA_CODEC_STATE_CHANGED, uid, null,
- StatsLog.MEDIA_CODEC_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.MEDIA_CODEC_STATE_CHANGED, uid,
+ null, FrameworkStatsLog.MEDIA_CODEC_STATE_CHANGED__STATE__ON);
}
}
@@ -786,8 +788,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteVideoOffLocked(uid);
- StatsLog.write_non_chained(StatsLog.MEDIA_CODEC_STATE_CHANGED, uid,
- null, StatsLog.MEDIA_CODEC_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.MEDIA_CODEC_STATE_CHANGED, uid,
+ null, FrameworkStatsLog.MEDIA_CODEC_STATE_CHANGED__STATE__OFF);
}
}
@@ -795,8 +797,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteResetAudioLocked();
- StatsLog.write_non_chained(StatsLog.AUDIO_STATE_CHANGED, -1, null,
- StatsLog.AUDIO_STATE_CHANGED__STATE__RESET);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.AUDIO_STATE_CHANGED, -1, null,
+ FrameworkStatsLog.AUDIO_STATE_CHANGED__STATE__RESET);
}
}
@@ -804,8 +806,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteResetVideoLocked();
- StatsLog.write_non_chained(StatsLog.MEDIA_CODEC_STATE_CHANGED, -1, null,
- StatsLog.MEDIA_CODEC_STATE_CHANGED__STATE__RESET);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.MEDIA_CODEC_STATE_CHANGED, -1,
+ null, FrameworkStatsLog.MEDIA_CODEC_STATE_CHANGED__STATE__RESET);
}
}
@@ -813,8 +815,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteFlashlightOnLocked(uid);
- StatsLog.write_non_chained(StatsLog.FLASHLIGHT_STATE_CHANGED, uid, null,
- StatsLog.FLASHLIGHT_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.FLASHLIGHT_STATE_CHANGED, uid,
+ null, FrameworkStatsLog.FLASHLIGHT_STATE_CHANGED__STATE__ON);
}
}
@@ -822,8 +824,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteFlashlightOffLocked(uid);
- StatsLog.write_non_chained(StatsLog.FLASHLIGHT_STATE_CHANGED, uid, null,
- StatsLog.FLASHLIGHT_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.FLASHLIGHT_STATE_CHANGED, uid,
+ null, FrameworkStatsLog.FLASHLIGHT_STATE_CHANGED__STATE__OFF);
}
}
@@ -832,8 +834,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
if (DBG) Slog.d(TAG, "begin noteStartCamera");
synchronized (mStats) {
mStats.noteCameraOnLocked(uid);
- StatsLog.write_non_chained(StatsLog.CAMERA_STATE_CHANGED, uid, null,
- StatsLog.CAMERA_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.CAMERA_STATE_CHANGED, uid, null,
+ FrameworkStatsLog.CAMERA_STATE_CHANGED__STATE__ON);
}
if (DBG) Slog.d(TAG, "end noteStartCamera");
}
@@ -842,8 +844,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteCameraOffLocked(uid);
- StatsLog.write_non_chained(StatsLog.CAMERA_STATE_CHANGED, uid, null,
- StatsLog.CAMERA_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.CAMERA_STATE_CHANGED, uid, null,
+ FrameworkStatsLog.CAMERA_STATE_CHANGED__STATE__OFF);
}
}
@@ -851,8 +853,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteResetCameraLocked();
- StatsLog.write_non_chained(StatsLog.CAMERA_STATE_CHANGED, -1, null,
- StatsLog.CAMERA_STATE_CHANGED__STATE__RESET);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.CAMERA_STATE_CHANGED, -1, null,
+ FrameworkStatsLog.CAMERA_STATE_CHANGED__STATE__RESET);
}
}
@@ -860,8 +862,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
enforceCallingPermission();
synchronized (mStats) {
mStats.noteResetFlashlightLocked();
- StatsLog.write_non_chained(StatsLog.FLASHLIGHT_STATE_CHANGED, -1, null,
- StatsLog.FLASHLIGHT_STATE_CHANGED__STATE__RESET);
+ FrameworkStatsLog.write_non_chained(FrameworkStatsLog.FLASHLIGHT_STATE_CHANGED, -1,
+ null, FrameworkStatsLog.FLASHLIGHT_STATE_CHANGED__STATE__RESET);
}
}
@@ -888,8 +890,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
mStats.noteWifiRunningLocked(ws);
}
// TODO: Log WIFI_RUNNING_STATE_CHANGED in a better spot to include Hotspot too.
- StatsLog.write(StatsLog.WIFI_RUNNING_STATE_CHANGED,
- ws, StatsLog.WIFI_RUNNING_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write(FrameworkStatsLog.WIFI_RUNNING_STATE_CHANGED,
+ ws, FrameworkStatsLog.WIFI_RUNNING_STATE_CHANGED__STATE__ON);
}
public void noteWifiRunningChanged(WorkSource oldWs, WorkSource newWs) {
@@ -897,10 +899,10 @@ public final class BatteryStatsService extends IBatteryStats.Stub
synchronized (mStats) {
mStats.noteWifiRunningChangedLocked(oldWs, newWs);
}
- StatsLog.write(StatsLog.WIFI_RUNNING_STATE_CHANGED,
- newWs, StatsLog.WIFI_RUNNING_STATE_CHANGED__STATE__ON);
- StatsLog.write(StatsLog.WIFI_RUNNING_STATE_CHANGED,
- oldWs, StatsLog.WIFI_RUNNING_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write(FrameworkStatsLog.WIFI_RUNNING_STATE_CHANGED,
+ newWs, FrameworkStatsLog.WIFI_RUNNING_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write(FrameworkStatsLog.WIFI_RUNNING_STATE_CHANGED,
+ oldWs, FrameworkStatsLog.WIFI_RUNNING_STATE_CHANGED__STATE__OFF);
}
public void noteWifiStopped(WorkSource ws) {
@@ -908,8 +910,8 @@ public final class BatteryStatsService extends IBatteryStats.Stub
synchronized (mStats) {
mStats.noteWifiStoppedLocked(ws);
}
- StatsLog.write(StatsLog.WIFI_RUNNING_STATE_CHANGED,
- ws, StatsLog.WIFI_RUNNING_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write(FrameworkStatsLog.WIFI_RUNNING_STATE_CHANGED,
+ ws, FrameworkStatsLog.WIFI_RUNNING_STATE_CHANGED__STATE__OFF);
}
public void noteWifiState(int wifiState, String accessPoint) {
diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java
index 6fca3f61e670..6697b5ab7c85 100644
--- a/services/core/java/com/android/server/am/BroadcastQueue.java
+++ b/services/core/java/com/android/server/am/BroadcastQueue.java
@@ -47,10 +47,11 @@ import android.permission.IPermissionManager;
import android.util.EventLog;
import android.util.Slog;
import android.util.SparseIntArray;
-import android.util.StatsLog;
import android.util.TimeUtils;
import android.util.proto.ProtoOutputStream;
+import com.android.internal.util.FrameworkStatsLog;
+
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
@@ -1255,8 +1256,8 @@ public final class BroadcastQueue {
r.dispatchClockTime = System.currentTimeMillis();
if (mLogLatencyMetrics) {
- StatsLog.write(
- StatsLog.BROADCAST_DISPATCH_LATENCY_REPORTED,
+ FrameworkStatsLog.write(
+ FrameworkStatsLog.BROADCAST_DISPATCH_LATENCY_REPORTED,
r.dispatchClockTime - r.enqueueClockTime);
}
diff --git a/services/core/java/com/android/server/am/CachedAppOptimizer.java b/services/core/java/com/android/server/am/CachedAppOptimizer.java
index 6819578d9cdc..d047a3ca993c 100644
--- a/services/core/java/com/android/server/am/CachedAppOptimizer.java
+++ b/services/core/java/com/android/server/am/CachedAppOptimizer.java
@@ -36,10 +36,10 @@ import android.provider.DeviceConfig.Properties;
import android.text.TextUtils;
import android.util.EventLog;
import android.util.Slog;
-import android.util.StatsLog;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.ServiceThread;
import java.io.FileOutputStream;
@@ -442,7 +442,7 @@ public final class CachedAppOptimizer {
*/
@GuardedBy("mPhenotypeFlagLock")
private void updateUseFreezer() {
- if (DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
+ if (DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER_NATIVE_BOOT,
KEY_USE_FREEZER, DEFAULT_USE_FREEZER)) {
mUseFreezer = isFreezerSupported();
}
@@ -849,11 +849,11 @@ public final class CachedAppOptimizer {
// on every single compaction for a flag that will seldom change and the
// impact of reading the wrong value here is low.
if (mRandom.nextFloat() < mCompactStatsdSampleRate) {
- StatsLog.write(StatsLog.APP_COMPACTED, pid, name, pendingAction,
- rssBefore[0], rssBefore[1], rssBefore[2], rssBefore[3],
- rssAfter[0], rssAfter[1], rssAfter[2], rssAfter[3], time,
- lastCompactAction, lastCompactTime, lastOomAdj,
- ActivityManager.processStateAmToProto(procState),
+ FrameworkStatsLog.write(FrameworkStatsLog.APP_COMPACTED, pid, name,
+ pendingAction, rssBefore[0], rssBefore[1], rssBefore[2],
+ rssBefore[3], rssAfter[0], rssAfter[1], rssAfter[2],
+ rssAfter[3], time, lastCompactAction, lastCompactTime,
+ lastOomAdj, ActivityManager.processStateAmToProto(procState),
zramFreeKbBefore, zramFreeKbAfter);
}
diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java
index 3bd7d5c0d075..a651d9dc4992 100644
--- a/services/core/java/com/android/server/am/OomAdjuster.java
+++ b/services/core/java/com/android/server/am/OomAdjuster.java
@@ -36,7 +36,9 @@ import static android.app.ActivityManager.PROCESS_STATE_NONEXISTENT;
import static android.app.ActivityManager.PROCESS_STATE_SERVICE;
import static android.app.ActivityManager.PROCESS_STATE_TOP;
import static android.app.ActivityManager.PROCESS_STATE_TRANSIENT_BACKGROUND;
+import static android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA;
import static android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION;
+import static android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE;
import static android.os.Process.SCHED_OTHER;
import static android.os.Process.THREAD_GROUP_BACKGROUND;
import static android.os.Process.THREAD_GROUP_DEFAULT;
@@ -70,7 +72,6 @@ import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_SWITCH;
import android.app.ActivityManager;
import android.app.ApplicationExitInfo;
import android.app.usage.UsageEvents;
-import android.compat.Compatibility;
import android.compat.annotation.ChangeId;
import android.compat.annotation.Disabled;
import android.compat.annotation.EnabledAfter;
@@ -82,6 +83,7 @@ import android.os.IBinder;
import android.os.PowerManagerInternal;
import android.os.Process;
import android.os.RemoteException;
+import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.Trace;
import android.os.UserHandle;
@@ -93,6 +95,7 @@ import android.util.proto.ProtoOutputStream;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.procstats.ProcessStats;
+import com.android.internal.compat.IPlatformCompat;
import com.android.server.LocalServices;
import com.android.server.ServiceThread;
import com.android.server.wm.ActivityServiceConnectionsHolder;
@@ -137,8 +140,8 @@ public final class OomAdjuster {
/**
* In targetSdkVersion R and above, foreground service has camera and microphone while-in-use
* capability only when the {@link android.R.attr#foregroundServiceType} is configured as
- * {@link ServiceInfo#FOREGROUND_SERVICE_TYPE_CAMERA} and
- * {@link ServiceInfo#FOREGROUND_SERVICE_TYPE_MICROPHONE} respectively in the
+ * {@link android.content.pm.ServiceInfo#FOREGROUND_SERVICE_TYPE_CAMERA} and
+ * {@link android.content.pm.ServiceInfo#FOREGROUND_SERVICE_TYPE_MICROPHONE} respectively in the
* manifest file.
* In targetSdkVersion below R, foreground service automatically have camera and microphone
* capabilities.
@@ -210,6 +213,8 @@ public final class OomAdjuster {
private ActiveUids mTmpUidRecords;
private ArrayDeque<ProcessRecord> mTmpQueue;
+ private final IPlatformCompat mPlatformCompat;
+
OomAdjuster(ActivityManagerService service, ProcessList processList, ActiveUids activeUids) {
this(service, processList, activeUids, createAdjusterThread());
}
@@ -256,6 +261,8 @@ public final class OomAdjuster {
mTmpQueue = new ArrayDeque<ProcessRecord>(mConstants.CUR_MAX_CACHED_PROCESSES << 1);
mNumSlots = ((ProcessList.CACHED_APP_MAX_ADJ - ProcessList.CACHED_APP_MIN_ADJ + 1) >> 1)
/ ProcessList.CACHED_APP_IMPORTANCE_LEVELS;
+ IBinder b = ServiceManager.getService(Context.PLATFORM_COMPAT_SERVICE);
+ mPlatformCompat = IPlatformCompat.Stub.asInterface(b);
}
void initSettings() {
@@ -323,6 +330,7 @@ public final class OomAdjuster {
// If this proc state is changed, need to update its uid record here
if (uidRec.getCurProcState() != PROCESS_STATE_NONEXISTENT
&& (uidRec.setProcState != uidRec.getCurProcState()
+ || uidRec.setCapability != uidRec.curCapability
|| uidRec.setWhitelist != uidRec.curWhitelist)) {
ActiveUids uids = mTmpUidRecords;
uids.clear();
@@ -1492,8 +1500,23 @@ public final class OomAdjuster {
!= 0 ? TEMP_PROCESS_CAPABILITY_FOREGROUND_LOCATION : 0;
}
if (s.mAllowWhileInUsePermissionInFgs) {
- capabilityFromFGS |= PROCESS_CAPABILITY_FOREGROUND_CAMERA
- | PROCESS_CAPABILITY_FOREGROUND_MICROPHONE;
+ boolean enabled = false;
+ try {
+ enabled = mPlatformCompat.isChangeEnabled(
+ CAMERA_MICROPHONE_CAPABILITY_CHANGE_ID, s.appInfo);
+ } catch (RemoteException e) {
+ }
+ if (enabled) {
+ capabilityFromFGS |=
+ (fgsType & FOREGROUND_SERVICE_TYPE_CAMERA)
+ != 0 ? PROCESS_CAPABILITY_FOREGROUND_CAMERA : 0;
+ capabilityFromFGS |=
+ (fgsType & FOREGROUND_SERVICE_TYPE_MICROPHONE)
+ != 0 ? PROCESS_CAPABILITY_FOREGROUND_MICROPHONE : 0;
+ } else {
+ capabilityFromFGS |= PROCESS_CAPABILITY_FOREGROUND_CAMERA
+ | PROCESS_CAPABILITY_FOREGROUND_MICROPHONE;
+ }
}
}
@@ -1667,7 +1690,13 @@ public final class OomAdjuster {
// Go at most to BOUND_TOP, unless requested to elevate
// to client's state.
clientProcState = PROCESS_STATE_BOUND_TOP;
- if (Compatibility.isChangeEnabled(PROCESS_CAPABILITY_CHANGE_ID)) {
+ boolean enabled = false;
+ try {
+ enabled = mPlatformCompat.isChangeEnabled(
+ PROCESS_CAPABILITY_CHANGE_ID, client.info);
+ } catch (RemoteException e) {
+ }
+ if (enabled) {
if (cr.hasFlag(Context.BIND_INCLUDE_CAPABILITIES)) {
// TOP process passes all capabilities to the service.
capability = PROCESS_CAPABILITY_ALL;
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index 73ca39b22de1..dcada89bb04a 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -100,7 +100,6 @@ import android.util.Pair;
import android.util.Slog;
import android.util.SparseArray;
import android.util.SparseBooleanArray;
-import android.util.StatsLog;
import android.view.Display;
import com.android.internal.annotations.GuardedBy;
@@ -109,6 +108,7 @@ import com.android.internal.app.ProcessMap;
import com.android.internal.app.procstats.ProcessStats;
import com.android.internal.os.Zygote;
import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.MemInfoReader;
import com.android.server.LocalServices;
import com.android.server.ServiceThread;
@@ -739,7 +739,7 @@ public final class ProcessList {
mSystemServerSocketForZygote.getFileDescriptor(),
EVENT_INPUT, this::handleZygoteMessages);
}
- mAppExitInfoTracker.init(mService, sKillThread.getLooper());
+ mAppExitInfoTracker.init(mService);
mImperceptibleKillRunner = new ImperceptibleKillRunner(sKillThread.getLooper());
}
}
@@ -1473,7 +1473,7 @@ public final class ProcessList {
proc.baseProcessTracker.reportCachedKill(proc.pkgList.mPkgList, proc.lastCachedPss);
for (int ipkg = proc.pkgList.size() - 1; ipkg >= 0; ipkg--) {
ProcessStats.ProcessStateHolder holder = proc.pkgList.valueAt(ipkg);
- StatsLog.write(StatsLog.CACHED_KILL_REPORTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.CACHED_KILL_REPORTED,
proc.info.uid,
holder.state.getName(),
holder.state.getPackage(),
@@ -1495,7 +1495,7 @@ public final class ProcessList {
proc.lastCachedPss);
for (int ipkg = proc.pkgList.size() - 1; ipkg >= 0; ipkg--) {
ProcessStats.ProcessStateHolder holder = proc.pkgList.valueAt(ipkg);
- StatsLog.write(StatsLog.CACHED_KILL_REPORTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.CACHED_KILL_REPORTED,
proc.info.uid,
holder.state.getName(),
holder.state.getPackage(),
@@ -1572,8 +1572,11 @@ public final class ProcessList {
if (userGid != UserHandle.ERR_GID) {
gidList.add(userGid);
}
- if (mountExternal == Zygote.MOUNT_EXTERNAL_ANDROID_WRITABLE) {
+ if (mountExternal == Zygote.MOUNT_EXTERNAL_ANDROID_WRITABLE
+ || mountExternal == Zygote.MOUNT_EXTERNAL_PASS_THROUGH) {
// For DownloadProviders and MTP: To grant access to /sdcard/Android/
+ // And a special case for the FUSE daemon since it runs an MTP server and should have
+ // access to Android/
gidList.add(UserHandle.getUid(UserHandle.getUserId(uid), Process.SDCARD_RW_GID));
}
if (mountExternal == Zygote.MOUNT_EXTERNAL_PASS_THROUGH) {
@@ -1842,26 +1845,9 @@ public final class ProcessList {
if (mService.mConstants.FLAG_PROCESS_START_ASYNC) {
if (DEBUG_PROCESSES) Slog.i(TAG_PROCESSES,
"Posting procStart msg for " + app.toShortString());
- mService.mProcStartHandler.post(() -> {
- try {
- final Process.ProcessStartResult startResult = startProcess(app.hostingRecord,
- entryPoint, app, app.startUid, gids, runtimeFlags, mountExternal,
- app.seInfo, requiredAbi, instructionSet, invokeWith, app.startTime);
- synchronized (mService) {
- handleProcessStartedLocked(app, startResult, startSeq);
- }
- } catch (RuntimeException e) {
- synchronized (mService) {
- Slog.e(ActivityManagerService.TAG, "Failure starting process "
- + app.processName, e);
- mPendingStarts.remove(startSeq);
- app.pendingStart = false;
- mService.forceStopPackageLocked(app.info.packageName,
- UserHandle.getAppId(app.uid),
- false, false, true, false, false, app.userId, "start failure");
- }
- }
- });
+ mService.mProcStartHandler.post(() -> handleProcessStart(
+ app, entryPoint, gids, runtimeFlags, mountExternal, requiredAbi,
+ instructionSet, invokeWith, startSeq));
return true;
} else {
try {
@@ -1882,6 +1868,66 @@ public final class ProcessList {
}
}
+ /**
+ * Main handler routine to start the given process from the ProcStartHandler.
+ *
+ * <p>Note: this function doesn't hold the global AM lock intentionally.</p>
+ */
+ private void handleProcessStart(final ProcessRecord app, final String entryPoint,
+ final int[] gids, final int runtimeFlags, final int mountExternal,
+ final String requiredAbi, final String instructionSet,
+ final String invokeWith, final long startSeq) {
+ // If there is a precede instance of the process, wait for its death with a timeout.
+ // Use local reference since we are not using locks here
+ final ProcessRecord precedence = app.mPrecedence;
+ if (precedence != null) {
+ final int pid = precedence.pid;
+ long now = System.currentTimeMillis();
+ final long end = now + PROC_KILL_TIMEOUT;
+ try {
+ Process.waitForProcessDeath(pid, PROC_KILL_TIMEOUT);
+ // It's killed successfully, but we'd make sure the cleanup work is done.
+ synchronized (precedence) {
+ if (app.mPrecedence != null) {
+ now = System.currentTimeMillis();
+ if (now < end) {
+ try {
+ precedence.wait(end - now);
+ } catch (InterruptedException e) {
+ }
+ }
+ }
+ if (app.mPrecedence != null) {
+ // The cleanup work hasn't be done yet, let's log it and continue.
+ Slog.w(TAG, precedence + " has died, but its cleanup isn't done");
+ }
+ }
+ } catch (Exception e) {
+ // It's still alive...
+ Slog.wtf(TAG, precedence.toString() + " refused to die, but we need to launch "
+ + app);
+ }
+ }
+ try {
+ final Process.ProcessStartResult startResult = startProcess(app.hostingRecord,
+ entryPoint, app, app.startUid, gids, runtimeFlags, mountExternal,
+ app.seInfo, requiredAbi, instructionSet, invokeWith, app.startTime);
+ synchronized (mService) {
+ handleProcessStartedLocked(app, startResult, startSeq);
+ }
+ } catch (RuntimeException e) {
+ synchronized (mService) {
+ Slog.e(ActivityManagerService.TAG, "Failure starting process "
+ + app.processName, e);
+ mPendingStarts.remove(startSeq);
+ app.pendingStart = false;
+ mService.forceStopPackageLocked(app.info.packageName,
+ UserHandle.getAppId(app.uid),
+ false, false, true, false, false, app.userId, "start failure");
+ }
+ }
+ }
+
@GuardedBy("mService")
public void killAppZygoteIfNeededLocked(AppZygote appZygote, boolean force) {
final ApplicationInfo appInfo = appZygote.getAppInfo();
@@ -2136,6 +2182,7 @@ public final class ProcessList {
+ " app=" + app + " knownToBeDead=" + knownToBeDead
+ " thread=" + (app != null ? app.thread : null)
+ " pid=" + (app != null ? app.pid : -1));
+ ProcessRecord precedence = null;
if (app != null && app.pid > 0) {
if ((!knownToBeDead && !app.killed) || app.thread == null) {
// We already have the app running, or are waiting for it to
@@ -2150,9 +2197,15 @@ public final class ProcessList {
// An application record is attached to a previous process,
// clean it up now.
if (DEBUG_PROCESSES) Slog.v(TAG_PROCESSES, "App died: " + app);
- // do the killing
- killProcAndWaitIfNecessaryLocked(app, true, app.uid == info.uid || app.isolated,
- "startProcess: bad proc running, killing: %s", startTime);
+ checkSlow(startTime, "startProcess: bad proc running, killing");
+ ProcessList.killProcessGroup(app.uid, app.pid);
+ checkSlow(startTime, "startProcess: done killing old proc");
+
+ Slog.wtf(TAG_PROCESSES, app.toString() + " is attached to a previous process");
+ // We are not going to re-use the ProcessRecord, as we haven't dealt with the cleanup
+ // routine of it yet, but we'd set it as the precedence of the new process.
+ precedence = app;
+ app = null;
}
if (app == null) {
@@ -2166,6 +2219,10 @@ public final class ProcessList {
app.crashHandler = crashHandler;
app.isolatedEntryPoint = entryPoint;
app.isolatedEntryPointArgs = entryPointArgs;
+ if (precedence != null) {
+ app.mPrecedence = precedence;
+ precedence.mSuccessor = app;
+ }
checkSlow(startTime, "startProcess: done creating new process record");
} else {
// If this is a new package in the process, add the package to the list
@@ -2193,44 +2250,6 @@ public final class ProcessList {
return success ? app : null;
}
- /**
- * Kill (if asked to) and wait for the given process died if necessary
- * @param app - The process record to kill
- * @param doKill - Kill the given process record
- * @param wait - Wait for the death of the given process
- * @param formatString - The log message for slow operation
- * @param startTime - The start timestamp of the operation
- */
- @GuardedBy("mService")
- void killProcAndWaitIfNecessaryLocked(final ProcessRecord app, final boolean doKill,
- final boolean wait, final String formatString, final long startTime) {
-
- checkSlow(startTime, String.format(formatString, "before appDied"));
-
- if (doKill) {
- // do the killing
- ProcessList.killProcessGroup(app.uid, app.pid);
- noteAppKill(app, ApplicationExitInfo.REASON_OTHER,
- ApplicationExitInfo.SUBREASON_UNKNOWN,
- String.format(formatString, ""));
- }
-
- // wait for the death
- if (wait) {
- try {
- Process.waitForProcessDeath(app.pid, PROC_KILL_TIMEOUT);
- } catch (Exception e) {
- // Maybe the process goes into zombie, use an expensive API to check again.
- if (mService.isProcessAliveLocked(app)) {
- Slog.w(TAG, String.format(formatString,
- "waiting for app killing timed out"));
- }
- }
- }
-
- checkSlow(startTime, String.format(formatString, "after appDied"));
- }
-
@GuardedBy("mService")
private String isProcStartValidLocked(ProcessRecord app, long expectedStartSeq) {
StringBuilder sb = null;
@@ -2640,8 +2659,8 @@ public final class ProcessList {
// about the process state of the isolated UID *before* it is registered with the
// owning application.
mService.mBatteryStatsService.addIsolatedUid(uid, info.uid);
- StatsLog.write(StatsLog.ISOLATED_UID_CHANGED, info.uid, uid,
- StatsLog.ISOLATED_UID_CHANGED__EVENT__CREATED);
+ FrameworkStatsLog.write(FrameworkStatsLog.ISOLATED_UID_CHANGED, info.uid, uid,
+ FrameworkStatsLog.ISOLATED_UID_CHANGED__EVENT__CREATED);
}
final ProcessRecord r = new ProcessRecord(mService, info, proc, uid);
@@ -3252,6 +3271,9 @@ public final class ProcessList {
}
final ProcessRecord getLRURecordForAppLocked(IApplicationThread thread) {
+ if (thread == null) {
+ return null;
+ }
final IBinder threadBinder = thread.asBinder();
// Find the application record.
for (int i = mLruProcesses.size() - 1; i >= 0; i--) {
diff --git a/services/core/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java
index 1e2dd2deb568..2b4d15eda9f0 100644
--- a/services/core/java/com/android/server/am/ProcessRecord.java
+++ b/services/core/java/com/android/server/am/ProcessRecord.java
@@ -56,7 +56,6 @@ import android.util.DebugUtils;
import android.util.EventLog;
import android.util.Slog;
import android.util.SparseArray;
-import android.util.StatsLog;
import android.util.TimeUtils;
import android.util.proto.ProtoOutputStream;
@@ -66,6 +65,7 @@ import com.android.internal.app.procstats.ProcessStats;
import com.android.internal.os.BatteryStatsImpl;
import com.android.internal.os.ProcessCpuTracker;
import com.android.internal.os.Zygote;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.wm.WindowProcessController;
import com.android.server.wm.WindowProcessListener;
@@ -320,6 +320,14 @@ class ProcessRecord implements WindowProcessListener {
// set of disabled compat changes for the process (all others are enabled)
long[] mDisabledCompatChanges;
+ // The precede instance of the process, which would exist when the previous process is killed
+ // but not fully dead yet; in this case, the new instance of the process should be held until
+ // this precede instance is fully dead.
+ volatile ProcessRecord mPrecedence;
+ // The succeeding instance of the process, which is going to be started after this process
+ // is killed successfully.
+ volatile ProcessRecord mSuccessor;
+
// Cached task info for OomAdjuster
private static final int VALUE_INVALID = -1;
private static final int VALUE_FALSE = 0;
@@ -607,13 +615,20 @@ class ProcessRecord implements WindowProcessListener {
int _uid) {
mService = _service;
info = _info;
+ ProcessInfo procInfo = null;
if (_service.mPackageManagerInt != null) {
ArrayMap<String, ProcessInfo> processes =
_service.mPackageManagerInt.getProcessesForUid(_uid);
- processInfo = processes != null ? processes.get(_processName) : null;
- } else {
- processInfo = null;
+ if (processes != null) {
+ procInfo = processes.get(_processName);
+ if (procInfo != null && procInfo.deniedPermissions == null) {
+ // If this process hasn't asked for permissions to be denied, then
+ // we don't care about it.
+ procInfo = null;
+ }
+ }
}
+ processInfo = procInfo;
isolated = _info.uid != _uid;
appZygote = (UserHandle.getAppId(_uid) >= Process.FIRST_APP_ZYGOTE_ISOLATED_UID
&& UserHandle.getAppId(_uid) <= Process.LAST_APP_ZYGOTE_ISOLATED_UID);
@@ -646,7 +661,7 @@ class ProcessRecord implements WindowProcessListener {
origBase.setState(ProcessStats.STATE_NOTHING,
tracker.getMemFactorLocked(), SystemClock.uptimeMillis(), pkgList.mPkgList);
for (int ipkg = pkgList.size() - 1; ipkg >= 0; ipkg--) {
- StatsLog.write(StatsLog.PROCESS_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PROCESS_STATE_CHANGED,
uid, processName, pkgList.keyAt(ipkg),
ActivityManager.processStateAmToProto(ProcessStats.STATE_NOTHING),
pkgList.valueAt(ipkg).appVersion);
@@ -681,7 +696,7 @@ class ProcessRecord implements WindowProcessListener {
origBase.setState(ProcessStats.STATE_NOTHING,
tracker.getMemFactorLocked(), SystemClock.uptimeMillis(), pkgList.mPkgList);
for (int ipkg = pkgList.size() - 1; ipkg >= 0; ipkg--) {
- StatsLog.write(StatsLog.PROCESS_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PROCESS_STATE_CHANGED,
uid, processName, pkgList.keyAt(ipkg),
ActivityManager.processStateAmToProto(ProcessStats.STATE_NOTHING),
pkgList.valueAt(ipkg).appVersion);
@@ -971,7 +986,7 @@ class ProcessRecord implements WindowProcessListener {
setCurProcState(newState);
setCurRawProcState(newState);
for (int ipkg = pkgList.size() - 1; ipkg >= 0; ipkg--) {
- StatsLog.write(StatsLog.PROCESS_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PROCESS_STATE_CHANGED,
uid, processName, pkgList.keyAt(ipkg),
ActivityManager.processStateAmToProto(mRepProcState),
pkgList.valueAt(ipkg).appVersion);
@@ -989,7 +1004,7 @@ class ProcessRecord implements WindowProcessListener {
baseProcessTracker.setState(ProcessStats.STATE_NOTHING,
tracker.getMemFactorLocked(), now, pkgList.mPkgList);
for (int ipkg = pkgList.size() - 1; ipkg >= 0; ipkg--) {
- StatsLog.write(StatsLog.PROCESS_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PROCESS_STATE_CHANGED,
uid, processName, pkgList.keyAt(ipkg),
ActivityManager.processStateAmToProto(ProcessStats.STATE_NOTHING),
pkgList.valueAt(ipkg).appVersion);
@@ -1075,7 +1090,7 @@ class ProcessRecord implements WindowProcessListener {
void setReportedProcState(int repProcState) {
mRepProcState = repProcState;
for (int ipkg = pkgList.size() - 1; ipkg >= 0; ipkg--) {
- StatsLog.write(StatsLog.PROCESS_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PROCESS_STATE_CHANGED,
uid, processName, pkgList.keyAt(ipkg),
ActivityManager.processStateAmToProto(mRepProcState),
pkgList.valueAt(ipkg).appVersion);
@@ -1606,16 +1621,16 @@ class ProcessRecord implements WindowProcessListener {
Process.sendSignal(pid, Process.SIGNAL_QUIT);
}
- StatsLog.write(StatsLog.ANR_OCCURRED, uid, processName,
+ FrameworkStatsLog.write(FrameworkStatsLog.ANR_OCCURRED, uid, processName,
activityShortComponentName == null ? "unknown": activityShortComponentName,
annotation,
(this.info != null) ? (this.info.isInstantApp()
- ? StatsLog.ANROCCURRED__IS_INSTANT_APP__TRUE
- : StatsLog.ANROCCURRED__IS_INSTANT_APP__FALSE)
- : StatsLog.ANROCCURRED__IS_INSTANT_APP__UNAVAILABLE,
+ ? FrameworkStatsLog.ANROCCURRED__IS_INSTANT_APP__TRUE
+ : FrameworkStatsLog.ANROCCURRED__IS_INSTANT_APP__FALSE)
+ : FrameworkStatsLog.ANROCCURRED__IS_INSTANT_APP__UNAVAILABLE,
isInterestingToUserLocked()
- ? StatsLog.ANROCCURRED__FOREGROUND_STATE__FOREGROUND
- : StatsLog.ANROCCURRED__FOREGROUND_STATE__BACKGROUND,
+ ? FrameworkStatsLog.ANROCCURRED__FOREGROUND_STATE__FOREGROUND
+ : FrameworkStatsLog.ANROCCURRED__FOREGROUND_STATE__BACKGROUND,
getProcessClassEnum(),
(this.info != null) ? this.info.packageName : "");
final ProcessRecord parentPr = parentProcess != null
diff --git a/services/core/java/com/android/server/am/TEST_MAPPING b/services/core/java/com/android/server/am/TEST_MAPPING
index bc4707f04724..4061df4f3f62 100644
--- a/services/core/java/com/android/server/am/TEST_MAPPING
+++ b/services/core/java/com/android/server/am/TEST_MAPPING
@@ -54,6 +54,14 @@
"include-filter": "com.android.server.am."
}
]
+ },
+ {
+ "name": "CtsAppSecurityHostTestCases",
+ "options": [
+ {
+ "include-filter": "android.appsecurity.cts.AppDataIsolationTests"
+ }
+ ]
}
]
}
diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java
index c5d6bba27234..c75ee04543e3 100644
--- a/services/core/java/com/android/server/am/UserController.java
+++ b/services/core/java/com/android/server/am/UserController.java
@@ -130,6 +130,10 @@ class UserController implements Handler.Callback {
// giving up on them and unfreezing the screen.
static final int USER_SWITCH_TIMEOUT_MS = 3 * 1000;
+ // Amount of time we wait for observers to handle a user switch before we log a warning.
+ // Must be smaller than USER_SWITCH_TIMEOUT_MS.
+ private static final int USER_SWITCH_WARNING_TIMEOUT_MS = 500;
+
// ActivityManager thread message constants
static final int REPORT_USER_SWITCH_MSG = 10;
static final int CONTINUE_USER_SWITCH_MSG = 20;
@@ -1615,9 +1619,13 @@ class UserController implements Handler.Callback {
synchronized (mLock) {
long delay = SystemClock.elapsedRealtime() - dispatchStartedTime;
if (delay > USER_SWITCH_TIMEOUT_MS) {
- Slog.e(TAG, "User switch timeout: observer " + name
+ Slog.e(TAG, "User switch timeout: observer " + name
+ " sent result after " + delay + " ms");
+ } else if (delay > USER_SWITCH_WARNING_TIMEOUT_MS) {
+ Slog.w(TAG, "User switch slowed down by observer " + name
+ + ": result sent after " + delay + " ms");
}
+
curWaitingUserSwitchCallbacks.remove(name);
// Continue switching if all callbacks have been notified and
// user switching session is still valid
diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java
index 77e83bdfeb32..06561f57f495 100644
--- a/services/core/java/com/android/server/appop/AppOpsService.java
+++ b/services/core/java/com/android/server/appop/AppOpsService.java
@@ -19,11 +19,15 @@ package com.android.server.appop;
import static android.app.ActivityManager.PROCESS_CAPABILITY_FOREGROUND_CAMERA;
import static android.app.ActivityManager.PROCESS_CAPABILITY_FOREGROUND_LOCATION;
import static android.app.ActivityManager.PROCESS_CAPABILITY_FOREGROUND_MICROPHONE;
+import static android.app.AppOpsManager.CALL_BACK_ON_CHANGED_LISTENER_WITH_SWITCHED_OP_CHANGE;
import static android.app.AppOpsManager.FILTER_BY_FEATURE_ID;
import static android.app.AppOpsManager.FILTER_BY_OP_NAMES;
import static android.app.AppOpsManager.FILTER_BY_PACKAGE_NAME;
import static android.app.AppOpsManager.FILTER_BY_UID;
import static android.app.AppOpsManager.HistoricalOpsRequestFilter;
+import static android.app.AppOpsManager.KEY_BG_STATE_SETTLE_TIME;
+import static android.app.AppOpsManager.KEY_FG_SERVICE_STATE_SETTLE_TIME;
+import static android.app.AppOpsManager.KEY_TOP_STATE_SETTLE_TIME;
import static android.app.AppOpsManager.MODE_ALLOWED;
import static android.app.AppOpsManager.NoteOpEvent;
import static android.app.AppOpsManager.OP_CAMERA;
@@ -41,6 +45,7 @@ import static android.app.AppOpsManager.UID_STATE_FOREGROUND_SERVICE;
import static android.app.AppOpsManager.UID_STATE_MAX_LAST_NON_RESTRICTED;
import static android.app.AppOpsManager.UID_STATE_PERSISTENT;
import static android.app.AppOpsManager.UID_STATE_TOP;
+import static android.app.AppOpsManager.WATCH_FOREGROUND_CHANGES;
import static android.app.AppOpsManager._NUM_OP;
import static android.app.AppOpsManager.extractFlagsFromKey;
import static android.app.AppOpsManager.extractUidStateFromKey;
@@ -53,6 +58,10 @@ import static android.content.Intent.EXTRA_REPLACING;
import static android.content.pm.PermissionInfo.PROTECTION_DANGEROUS;
import static android.os.Process.STATSD_UID;
+import static com.android.server.appop.AppOpsService.ModeCallback.ALL_OPS;
+
+import static java.lang.Long.max;
+
import android.Manifest;
import android.annotation.IntRange;
import android.annotation.NonNull;
@@ -70,6 +79,7 @@ import android.app.AppOpsManager.OpFlags;
import android.app.AppOpsManagerInternal;
import android.app.AppOpsManagerInternal.CheckOpsDelegate;
import android.app.AsyncNotedAppOp;
+import android.compat.Compatibility;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
@@ -129,7 +139,6 @@ import com.android.internal.app.IAppOpsNotedCallback;
import com.android.internal.app.IAppOpsService;
import com.android.internal.os.Zygote;
import com.android.internal.util.ArrayUtils;
-import com.android.internal.util.CollectionUtils;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.Preconditions;
@@ -216,7 +225,7 @@ public class AppOpsService extends IAppOpsService.Stub {
//TODO: remove this when development is done.
private static final int TEMP_PROCESS_CAPABILITY_FOREGROUND_LOCATION = 1 << 31;
- Context mContext;
+ final Context mContext;
final AtomicFile mFile;
final Handler mHandler;
@@ -291,8 +300,11 @@ public class AppOpsService extends IAppOpsService.Stub {
@GuardedBy("this")
private CheckOpsDelegate mCheckOpsDelegate;
- @GuardedBy("this")
- private SparseArray<List<Integer>> mSwitchOpToOps;
+ /**
+ * Reverse lookup for {@link AppOpsManager#opToSwitch(int)}. Initialized once and never
+ * changed
+ */
+ private final SparseArray<int[]> mSwitchedOps = new SparseArray<>();
private ActivityManagerInternal mActivityManagerInternal;
@@ -343,30 +355,25 @@ public class AppOpsService extends IAppOpsService.Stub {
*/
@VisibleForTesting
final class Constants extends ContentObserver {
- // Key names stored in the settings value.
- private static final String KEY_TOP_STATE_SETTLE_TIME = "top_state_settle_time";
- private static final String KEY_FG_SERVICE_STATE_SETTLE_TIME
- = "fg_service_state_settle_time";
- private static final String KEY_BG_STATE_SETTLE_TIME = "bg_state_settle_time";
/**
* How long we want for a drop in uid state from top to settle before applying it.
* @see Settings.Global#APP_OPS_CONSTANTS
- * @see #KEY_TOP_STATE_SETTLE_TIME
+ * @see AppOpsManager#KEY_TOP_STATE_SETTLE_TIME
*/
public long TOP_STATE_SETTLE_TIME;
/**
* How long we want for a drop in uid state from foreground to settle before applying it.
* @see Settings.Global#APP_OPS_CONSTANTS
- * @see #KEY_FG_SERVICE_STATE_SETTLE_TIME
+ * @see AppOpsManager#KEY_FG_SERVICE_STATE_SETTLE_TIME
*/
public long FG_SERVICE_STATE_SETTLE_TIME;
/**
* How long we want for a drop in uid state from background to settle before applying it.
* @see Settings.Global#APP_OPS_CONSTANTS
- * @see #KEY_BG_STATE_SETTLE_TIME
+ * @see AppOpsManager#KEY_BG_STATE_SETTLE_TIME
*/
public long BG_STATE_SETTLE_TIME;
@@ -847,7 +854,12 @@ public class AppOpsService extends IAppOpsService.Stub {
*/
public void started(@NonNull IBinder clientId, @AppOpsManager.UidState int uidState)
throws RemoteException {
- if (!parent.isRunning()) {
+ started(clientId, uidState, true);
+ }
+
+ private void started(@NonNull IBinder clientId, @AppOpsManager.UidState int uidState,
+ boolean triggerCallbackIfNeeded) throws RemoteException {
+ if (triggerCallbackIfNeeded && !parent.isRunning()) {
scheduleOpActiveChangedIfNeededLocked(parent.op, parent.uid,
parent.packageName, true);
}
@@ -966,8 +978,16 @@ public class AppOpsService extends IAppOpsService.Stub {
if (event.getUidState() != newState) {
try {
+ // Remove all but one unfinished start count and then call finished() to
+ // remove start event object
+ int numPreviousUnfinishedStarts = event.numUnfinishedStarts;
+ event.numUnfinishedStarts = 1;
finished(event.getClientId(), false);
- started(event.getClientId(), newState);
+
+ // Call started() to add a new start event object and then add the
+ // previously removed unfinished start counts back
+ started(event.getClientId(), newState, false);
+ event.numUnfinishedStarts += numPreviousUnfinishedStarts - 1;
} catch (RemoteException e) {
if (DEBUG) Slog.e(TAG, "Cannot switch to new uidState " + newState);
}
@@ -1178,17 +1198,22 @@ public class AppOpsService extends IAppOpsService.Stub {
final AudioRestrictionManager mAudioRestrictionManager = new AudioRestrictionManager();
final class ModeCallback implements DeathRecipient {
+ /** If mWatchedOpCode==ALL_OPS notify for ops affected by the switch-op */
+ public static final int ALL_OPS = -2;
+
final IAppOpsCallback mCallback;
final int mWatchingUid;
final int mFlags;
+ final int mWatchedOpCode;
final int mCallingUid;
final int mCallingPid;
- ModeCallback(IAppOpsCallback callback, int watchingUid, int flags, int callingUid,
- int callingPid) {
+ ModeCallback(IAppOpsCallback callback, int watchingUid, int flags, int watchedOp,
+ int callingUid, int callingPid) {
mCallback = callback;
mWatchingUid = watchingUid;
mFlags = flags;
+ mWatchedOpCode = watchedOp;
mCallingUid = callingUid;
mCallingPid = callingPid;
try {
@@ -1211,6 +1236,10 @@ public class AppOpsService extends IAppOpsService.Stub {
UserHandle.formatUid(sb, mWatchingUid);
sb.append(" flags=0x");
sb.append(Integer.toHexString(mFlags));
+ if (mWatchedOpCode != OP_NONE) {
+ sb.append(" op=");
+ sb.append(opToName(mWatchedOpCode));
+ }
sb.append(" from uid=");
UserHandle.formatUid(sb, mCallingUid);
sb.append(" pid=");
@@ -1324,16 +1353,23 @@ public class AppOpsService extends IAppOpsService.Stub {
featureOp.onClientDeath(clientId);
}
- public AppOpsService(File storagePath, Handler handler) {
+ public AppOpsService(File storagePath, Handler handler, Context context) {
+ mContext = context;
+
LockGuard.installLock(this, LockGuard.INDEX_APP_OPS);
mFile = new AtomicFile(storagePath, "appops");
mHandler = handler;
mConstants = new Constants(mHandler);
readState();
+
+ for (int switchedCode = 0; switchedCode < _NUM_OP; switchedCode++) {
+ int switchCode = AppOpsManager.opToSwitch(switchedCode);
+ mSwitchedOps.put(switchCode,
+ ArrayUtils.appendInt(mSwitchedOps.get(switchCode), switchedCode));
+ }
}
- public void publish(Context context) {
- mContext = context;
+ public void publish() {
ServiceManager.addService(Context.APP_OPS_SERVICE, asBinder());
LocalServices.addService(AppOpsManagerInternal.class, mAppOpsManagerInternal);
}
@@ -1603,6 +1639,19 @@ public class AppOpsService extends IAppOpsService.Stub {
}
}
+ /**
+ * Update the pending state for the uid
+ *
+ * @param currentTime The current elapsed real time
+ * @param uid The uid that has a pending state
+ */
+ private void updatePendingState(long currentTime, int uid) {
+ synchronized (this) {
+ mLastRealtime = max(currentTime, mLastRealtime);
+ updatePendingStateIfNeededLocked(mUidStates.get(uid));
+ }
+ }
+
public void updateUidProcState(int uid, int procState,
@ActivityManager.ProcessCapability int capability) {
synchronized (this) {
@@ -1634,7 +1683,12 @@ public class AppOpsService extends IAppOpsService.Stub {
} else {
settleTime = mConstants.BG_STATE_SETTLE_TIME;
}
- uidState.pendingStateCommitTime = SystemClock.elapsedRealtime() + settleTime;
+ final long commitTime = SystemClock.elapsedRealtime() + settleTime;
+ uidState.pendingStateCommitTime = commitTime;
+
+ mHandler.sendMessageDelayed(
+ PooledLambda.obtainMessage(AppOpsService::updatePendingState, this,
+ commitTime + 1, uid), settleTime + 1);
}
if (uidState.pkgOps != null) {
@@ -1949,6 +2003,11 @@ public class AppOpsService extends IAppOpsService.Stub {
@Override
public void setUidMode(int code, int uid, int mode) {
+ setUidMode(code, uid, mode, null);
+ }
+
+ private void setUidMode(int code, int uid, int mode,
+ @Nullable IAppOpsCallback callbackToIgnore) {
if (DEBUG) {
Slog.i(TAG, "uid " + uid + " OP_" + opToName(code) + " := " + modeToName(mode)
+ " by uid " + Binder.getCallingUid());
@@ -1996,6 +2055,19 @@ public class AppOpsService extends IAppOpsService.Stub {
uidState.evalForegroundOps(mOpModeWatchers);
}
+ notifyOpChangedForAllPkgsInUid(code, uid, false, callbackToIgnore);
+ notifyOpChangedSync(code, uid, null, mode);
+ }
+
+ /**
+ * Notify that an op changed for all packages in an uid.
+ *
+ * @param code The op that changed
+ * @param uid The uid the op was changed for
+ * @param onlyForeground Only notify watchers that watch for foreground changes
+ */
+ private void notifyOpChangedForAllPkgsInUid(int code, int uid, boolean onlyForeground,
+ @Nullable IAppOpsCallback callbackToIgnore) {
String[] uidPackageNames = getPackagesForUid(uid);
ArrayMap<ModeCallback, ArraySet<String>> callbackSpecs = null;
@@ -2005,6 +2077,10 @@ public class AppOpsService extends IAppOpsService.Stub {
final int callbackCount = callbacks.size();
for (int i = 0; i < callbackCount; i++) {
ModeCallback callback = callbacks.valueAt(i);
+ if (onlyForeground && (callback.mFlags & WATCH_FOREGROUND_CHANGES) == 0) {
+ continue;
+ }
+
ArraySet<String> changedPackages = new ArraySet<>();
Collections.addAll(changedPackages, uidPackageNames);
if (callbackSpecs == null) {
@@ -2023,6 +2099,10 @@ public class AppOpsService extends IAppOpsService.Stub {
final int callbackCount = callbacks.size();
for (int i = 0; i < callbackCount; i++) {
ModeCallback callback = callbacks.valueAt(i);
+ if (onlyForeground && (callback.mFlags & WATCH_FOREGROUND_CHANGES) == 0) {
+ continue;
+ }
+
ArraySet<String> changedPackages = callbackSpecs.get(callback);
if (changedPackages == null) {
changedPackages = new ArraySet<>();
@@ -2032,10 +2112,13 @@ public class AppOpsService extends IAppOpsService.Stub {
}
}
}
+
+ if (callbackSpecs != null && callbackToIgnore != null) {
+ callbackSpecs.remove(mModeWatchers.get(callbackToIgnore.asBinder()));
+ }
}
if (callbackSpecs == null) {
- notifyOpChangedSync(code, uid, null, mode);
return;
}
@@ -2057,34 +2140,34 @@ public class AppOpsService extends IAppOpsService.Stub {
}
}
}
-
- notifyOpChangedSync(code, uid, null, mode);
}
private void updatePermissionRevokedCompat(int uid, int switchCode, int mode) {
- PackageManagerInternal packageManagerInternal = LocalServices.getService(
- PackageManagerInternal.class);
- if (packageManagerInternal.getUidTargetSdkVersion(uid) >= Build.VERSION_CODES.M) {
+ PackageManager packageManager = mContext.getPackageManager();
+ if (packageManager == null) {
+ // This can only happen during early boot. At this time the permission state and appop
+ // state are in sync
return;
}
- PackageManager packageManager = mContext.getPackageManager();
String[] packageNames = packageManager.getPackagesForUid(uid);
if (ArrayUtils.isEmpty(packageNames)) {
return;
}
String packageName = packageNames[0];
- List<Integer> ops = getSwitchOpToOps().get(switchCode);
- int opsSize = CollectionUtils.size(ops);
- for (int i = 0; i < opsSize; i++) {
- int code = ops.get(i);
-
+ int[] ops = mSwitchedOps.get(switchCode);
+ for (int code : ops) {
String permissionName = AppOpsManager.opToPermission(code);
if (permissionName == null) {
continue;
}
+ if (packageManager.checkPermission(permissionName, packageName)
+ != PackageManager.PERMISSION_GRANTED) {
+ continue;
+ }
+
PermissionInfo permissionInfo;
try {
permissionInfo = packageManager.getPermissionInfo(permissionName, 0);
@@ -2097,18 +2180,35 @@ public class AppOpsService extends IAppOpsService.Stub {
continue;
}
+ PackageManagerInternal packageManagerInternal = LocalServices.getService(
+ PackageManagerInternal.class);
+ boolean supportsRuntimePermissions = packageManagerInternal.getUidTargetSdkVersion(uid)
+ >= Build.VERSION_CODES.M;
+
UserHandle user = UserHandle.getUserHandleForUid(uid);
boolean isRevokedCompat;
if (permissionInfo.backgroundPermission != null) {
- boolean isBackgroundRevokedCompat = mode != AppOpsManager.MODE_ALLOWED;
- long identity = Binder.clearCallingIdentity();
- try {
- packageManager.updatePermissionFlags(permissionInfo.backgroundPermission,
- packageName, PackageManager.FLAG_PERMISSION_REVOKED_COMPAT,
- isBackgroundRevokedCompat
- ? PackageManager.FLAG_PERMISSION_REVOKED_COMPAT : 0, user);
- } finally {
- Binder.restoreCallingIdentity(identity);
+ if (packageManager.checkPermission(permissionInfo.backgroundPermission, packageName)
+ == PackageManager.PERMISSION_GRANTED) {
+ boolean isBackgroundRevokedCompat = mode != AppOpsManager.MODE_ALLOWED;
+
+ if (isBackgroundRevokedCompat && supportsRuntimePermissions) {
+ Slog.w(TAG, "setUidMode() called with a mode inconsistent with runtime"
+ + " permission state, this is discouraged and you should revoke the"
+ + " runtime permission instead: uid=" + uid + ", switchCode="
+ + switchCode + ", mode=" + mode + ", permission="
+ + permissionInfo.backgroundPermission);
+ }
+
+ long identity = Binder.clearCallingIdentity();
+ try {
+ packageManager.updatePermissionFlags(permissionInfo.backgroundPermission,
+ packageName, PackageManager.FLAG_PERMISSION_REVOKED_COMPAT,
+ isBackgroundRevokedCompat
+ ? PackageManager.FLAG_PERMISSION_REVOKED_COMPAT : 0, user);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
isRevokedCompat = mode != AppOpsManager.MODE_ALLOWED
@@ -2117,6 +2217,13 @@ public class AppOpsService extends IAppOpsService.Stub {
isRevokedCompat = mode != AppOpsManager.MODE_ALLOWED;
}
+ if (isRevokedCompat && supportsRuntimePermissions) {
+ Slog.w(TAG, "setUidMode() called with a mode inconsistent with runtime"
+ + " permission state, this is discouraged and you should revoke the"
+ + " runtime permission instead: uid=" + uid + ", switchCode="
+ + switchCode + ", mode=" + mode + ", permission=" + permissionName);
+ }
+
long identity = Binder.clearCallingIdentity();
try {
packageManager.updatePermissionFlags(permissionName, packageName,
@@ -2128,25 +2235,6 @@ public class AppOpsService extends IAppOpsService.Stub {
}
}
- @NonNull
- private SparseArray<List<Integer>> getSwitchOpToOps() {
- synchronized (this) {
- if (mSwitchOpToOps == null) {
- mSwitchOpToOps = new SparseArray<>();
- for (int op = 0; op < _NUM_OP; op++) {
- int switchOp = AppOpsManager.opToSwitch(op);
- List<Integer> ops = mSwitchOpToOps.get(switchOp);
- if (ops == null) {
- ops = new ArrayList<>();
- mSwitchOpToOps.put(switchOp, ops);
- }
- ops.add(op);
- }
- }
- return mSwitchOpToOps;
- }
- }
-
private void notifyOpChangedSync(int code, int uid, @NonNull String packageName, int mode) {
final StorageManagerInternal storageManagerInternal =
LocalServices.getService(StorageManagerInternal.class);
@@ -2165,6 +2253,11 @@ public class AppOpsService extends IAppOpsService.Stub {
*/
@Override
public void setMode(int code, int uid, @NonNull String packageName, int mode) {
+ setMode(code, uid, packageName, mode, null);
+ }
+
+ private void setMode(int code, int uid, @NonNull String packageName, int mode,
+ @Nullable IAppOpsCallback callbackToIgnore) {
enforceManageAppOpsModes(Binder.getCallingPid(), Binder.getCallingUid(), uid);
verifyIncomingOp(code);
ArraySet<ModeCallback> repCbs = null;
@@ -2208,6 +2301,9 @@ public class AppOpsService extends IAppOpsService.Stub {
}
repCbs.addAll(cbs);
}
+ if (repCbs != null && callbackToIgnore != null) {
+ repCbs.remove(mModeWatchers.get(callbackToIgnore.asBinder()));
+ }
if (mode == AppOpsManager.opToDefaultMode(op.op)) {
// If going into the default mode, prune this op
// if there is nothing else interesting in it.
@@ -2239,16 +2335,29 @@ public class AppOpsService extends IAppOpsService.Stub {
if (uid != UID_ANY && callback.mWatchingUid >= 0 && callback.mWatchingUid != uid) {
return;
}
- // There are features watching for mode changes such as window manager
- // and location manager which are in our process. The callbacks in these
- // features may require permissions our remote caller does not have.
- final long identity = Binder.clearCallingIdentity();
- try {
- callback.mCallback.opChanged(code, uid, packageName);
- } catch (RemoteException e) {
- /* ignore */
- } finally {
- Binder.restoreCallingIdentity(identity);
+
+ // See CALL_BACK_ON_CHANGED_LISTENER_WITH_SWITCHED_OP_CHANGE
+ int[] switchedCodes;
+ if (callback.mWatchedOpCode == ALL_OPS) {
+ switchedCodes = mSwitchedOps.get(code);
+ } else if (callback.mWatchedOpCode == OP_NONE) {
+ switchedCodes = new int[]{code};
+ } else {
+ switchedCodes = new int[]{callback.mWatchedOpCode};
+ }
+
+ for (int switchedCode : switchedCodes) {
+ // There are features watching for mode changes such as window manager
+ // and location manager which are in our process. The callbacks in these
+ // features may require permissions our remote caller does not have.
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ callback.mCallback.opChanged(switchedCode, uid, packageName);
+ } catch (RemoteException e) {
+ /* ignore */
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
}
@@ -2443,17 +2552,32 @@ public class AppOpsService extends IAppOpsService.Stub {
return;
}
synchronized (this) {
- op = (op != AppOpsManager.OP_NONE) ? AppOpsManager.opToSwitch(op) : op;
+ int switchOp = (op != AppOpsManager.OP_NONE) ? AppOpsManager.opToSwitch(op) : op;
+
+ // See CALL_BACK_ON_CHANGED_LISTENER_WITH_SWITCHED_OP_CHANGE
+ int notifiedOps;
+ if (Compatibility.isChangeEnabled(
+ CALL_BACK_ON_CHANGED_LISTENER_WITH_SWITCHED_OP_CHANGE)) {
+ if (op == OP_NONE) {
+ notifiedOps = ALL_OPS;
+ } else {
+ notifiedOps = op;
+ }
+ } else {
+ notifiedOps = switchOp;
+ }
+
ModeCallback cb = mModeWatchers.get(callback.asBinder());
if (cb == null) {
- cb = new ModeCallback(callback, watchedUid, flags, callingUid, callingPid);
+ cb = new ModeCallback(callback, watchedUid, flags, notifiedOps, callingUid,
+ callingPid);
mModeWatchers.put(callback.asBinder(), cb);
}
- if (op != AppOpsManager.OP_NONE) {
- ArraySet<ModeCallback> cbs = mOpModeWatchers.get(op);
+ if (switchOp != AppOpsManager.OP_NONE) {
+ ArraySet<ModeCallback> cbs = mOpModeWatchers.get(switchOp);
if (cbs == null) {
cbs = new ArraySet<>();
- mOpModeWatchers.put(op, cbs);
+ mOpModeWatchers.put(switchOp, cbs);
}
cbs.add(cb);
}
@@ -3272,6 +3396,18 @@ public class AppOpsService extends IAppOpsService.Stub {
uidState = new UidState(uid);
mUidStates.put(uid, uidState);
} else {
+ updatePendingStateIfNeededLocked(uidState);
+ }
+ return uidState;
+ }
+
+ /**
+ * Check if the pending state should be updated and do so if needed
+ *
+ * @param uidState The uidState that might have a pending state
+ */
+ private void updatePendingStateIfNeededLocked(@NonNull UidState uidState) {
+ if (uidState != null) {
if (uidState.pendingStateCommitTime != 0) {
if (uidState.pendingStateCommitTime < mLastRealtime) {
commitUidPendingStateLocked(uidState);
@@ -3283,7 +3419,6 @@ public class AppOpsService extends IAppOpsService.Stub {
}
}
}
- return uidState;
}
private void commitUidPendingStateLocked(UidState uidState) {
@@ -3303,24 +3438,28 @@ public class AppOpsService extends IAppOpsService.Stub {
&& uidState.appWidgetVisible == uidState.pendingAppWidgetVisible) {
continue;
}
- final ArraySet<ModeCallback> callbacks = mOpModeWatchers.get(code);
- if (callbacks != null) {
- for (int cbi = callbacks.size() - 1; cbi >= 0; cbi--) {
- final ModeCallback callback = callbacks.valueAt(cbi);
- if ((callback.mFlags & AppOpsManager.WATCH_FOREGROUND_CHANGES) == 0
- || !callback.isWatchingUid(uidState.uid)) {
- continue;
- }
- boolean doAllPackages = uidState.opModes != null
- && uidState.opModes.indexOfKey(code) >= 0
- && uidState.opModes.get(code) == AppOpsManager.MODE_FOREGROUND;
- if (uidState.pkgOps != null) {
+
+ if (uidState.opModes != null
+ && uidState.opModes.indexOfKey(code) >= 0
+ && uidState.opModes.get(code) == AppOpsManager.MODE_FOREGROUND) {
+ mHandler.sendMessage(PooledLambda.obtainMessage(
+ AppOpsService::notifyOpChangedForAllPkgsInUid,
+ this, code, uidState.uid, true, null));
+ } else {
+ final ArraySet<ModeCallback> callbacks = mOpModeWatchers.get(code);
+ if (callbacks != null) {
+ for (int cbi = callbacks.size() - 1; cbi >= 0; cbi--) {
+ final ModeCallback callback = callbacks.valueAt(cbi);
+ if ((callback.mFlags & AppOpsManager.WATCH_FOREGROUND_CHANGES) == 0
+ || !callback.isWatchingUid(uidState.uid)) {
+ continue;
+ }
for (int pkgi = uidState.pkgOps.size() - 1; pkgi >= 0; pkgi--) {
final Op op = uidState.pkgOps.valueAt(pkgi).get(code);
if (op == null) {
continue;
}
- if (doAllPackages || op.mode == AppOpsManager.MODE_FOREGROUND) {
+ if (op.mode == AppOpsManager.MODE_FOREGROUND) {
mHandler.sendMessage(PooledLambda.obtainMessage(
AppOpsService::notifyOpChanged,
this, callback, code, uidState.uid,
@@ -3745,11 +3884,7 @@ public class AppOpsService extends IAppOpsService.Stub {
if (tagName.equals("op")) {
final int code = Integer.parseInt(parser.getAttributeValue(null, "n"));
final int mode = Integer.parseInt(parser.getAttributeValue(null, "m"));
- UidState uidState = getUidStateLocked(uid, true);
- if (uidState.opModes == null) {
- uidState.opModes = new SparseIntArray();
- }
- uidState.opModes.put(code, mode);
+ setUidMode(code, uid, mode);
} else {
Slog.w(TAG, "Unknown element under <uid-ops>: "
+ parser.getName());
@@ -5594,5 +5729,17 @@ public class AppOpsService extends IAppOpsService.Stub {
boolean visible) {
AppOpsService.this.updateAppWidgetVisibility(uidPackageNames, visible);
}
+
+ @Override
+ public void setUidModeIgnoringCallback(int code, int uid, int mode,
+ @Nullable IAppOpsCallback callbackToIgnore) {
+ setUidMode(code, uid, mode, callbackToIgnore);
+ }
+
+ @Override
+ public void setModeIgnoringCallback(int code, int uid, @NonNull String packageName,
+ int mode, @Nullable IAppOpsCallback callbackToIgnore) {
+ setMode(code, uid, packageName, mode, callbackToIgnore);
+ }
}
}
diff --git a/services/core/java/com/android/server/attention/AttentionManagerService.java b/services/core/java/com/android/server/attention/AttentionManagerService.java
index 5ac5b29b1475..0440de674e9e 100644
--- a/services/core/java/com/android/server/attention/AttentionManagerService.java
+++ b/services/core/java/com/android/server/attention/AttentionManagerService.java
@@ -56,13 +56,12 @@ import android.service.attention.IAttentionService;
import android.text.TextUtils;
import android.util.Slog;
import android.util.SparseArray;
-import android.util.StatsLog;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.DumpUtils;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.IndentingPrintWriter;
-import com.android.internal.util.Preconditions;
import com.android.server.SystemService;
import java.io.FileDescriptor;
@@ -274,8 +273,8 @@ public class AttentionManagerService extends SystemService {
userState.mAttentionCheckCacheBuffer.add(
new AttentionCheckCache(SystemClock.uptimeMillis(), result, timestamp));
}
- StatsLog.write(
- StatsLog.ATTENTION_MANAGER_SERVICE_RESULT_REPORTED,
+ FrameworkStatsLog.write(
+ FrameworkStatsLog.ATTENTION_MANAGER_SERVICE_RESULT_REPORTED,
result);
}
@@ -287,8 +286,8 @@ public class AttentionManagerService extends SystemService {
userState.mCurrentAttentionCheck.mIsFulfilled = true;
}
- StatsLog.write(
- StatsLog.ATTENTION_MANAGER_SERVICE_RESULT_REPORTED,
+ FrameworkStatsLog.write(
+ FrameworkStatsLog.ATTENTION_MANAGER_SERVICE_RESULT_REPORTED,
error);
}
};
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 8f6bd212da19..82a2f01d4857 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -1068,6 +1068,27 @@ public class AudioService extends IAudioService.Stub
}
}
+ // Restore capture policies
+ synchronized (mPlaybackMonitor) {
+ HashMap<Integer, Integer> allowedCapturePolicies =
+ mPlaybackMonitor.getAllAllowedCapturePolicies();
+ for (HashMap.Entry<Integer, Integer> entry : allowedCapturePolicies.entrySet()) {
+ int result = AudioSystem.setAllowedCapturePolicy(
+ entry.getKey(),
+ AudioAttributes.capturePolicyToFlags(entry.getValue(), 0x0));
+ if (result != AudioSystem.AUDIO_STATUS_OK) {
+ Log.e(TAG, "Failed to restore capture policy, uid: "
+ + entry.getKey() + ", capture policy: " + entry.getValue()
+ + ", result: " + result);
+ // When restoring capture policy failed, set the capture policy as
+ // ALLOW_CAPTURE_BY_ALL, which will result in removing the cached
+ // capture policy in PlaybackActivityMonitor.
+ mPlaybackMonitor.setAllowedCapturePolicy(
+ entry.getKey(), AudioAttributes.ALLOW_CAPTURE_BY_ALL);
+ }
+ }
+ }
+
onIndicateSystemReady();
// indicate the end of reconfiguration phase to audio HAL
AudioSystem.setParameters("restarting=false");
@@ -3385,13 +3406,11 @@ public class AudioService extends IAudioService.Stub
}
public void binderDied() {
- int oldModeOwnerPid = 0;
+ int oldModeOwnerPid;
int newModeOwnerPid = 0;
synchronized (mDeviceBroker.mSetModeLock) {
Log.w(TAG, "setMode() client died");
- if (!mSetModeDeathHandlers.isEmpty()) {
- oldModeOwnerPid = mSetModeDeathHandlers.get(0).getPid();
- }
+ oldModeOwnerPid = getModeOwnerPid();
int index = mSetModeDeathHandlers.indexOf(this);
if (index < 0) {
Log.w(TAG, "unregistered setMode() client died");
@@ -3425,17 +3444,19 @@ public class AudioService extends IAudioService.Stub
/** @see AudioManager#setMode(int) */
public void setMode(int mode, IBinder cb, String callingPackage) {
- if (DEBUG_MODE) { Log.v(TAG, "setMode(mode=" + mode + ", callingPackage=" + callingPackage + ")"); }
+ if (DEBUG_MODE) {
+ Log.v(TAG, "setMode(mode=" + mode + ", callingPackage=" + callingPackage + ")");
+ }
if (!checkAudioSettingsPermission("setMode()")) {
return;
}
-
- if ( (mode == AudioSystem.MODE_IN_CALL) &&
- (mContext.checkCallingOrSelfPermission(
+ final boolean hasModifyPhoneStatePermission = mContext.checkCallingOrSelfPermission(
android.Manifest.permission.MODIFY_PHONE_STATE)
- != PackageManager.PERMISSION_GRANTED)) {
+ == PackageManager.PERMISSION_GRANTED;
+ final int callingPid = Binder.getCallingPid();
+ if ((mode == AudioSystem.MODE_IN_CALL) && !hasModifyPhoneStatePermission) {
Log.w(TAG, "MODIFY_PHONE_STATE Permission Denial: setMode(MODE_IN_CALL) from pid="
- + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid());
+ + callingPid + ", uid=" + Binder.getCallingUid());
return;
}
@@ -3449,16 +3470,25 @@ public class AudioService extends IAudioService.Stub
return;
}
- int oldModeOwnerPid = 0;
- int newModeOwnerPid = 0;
+ int oldModeOwnerPid;
+ int newModeOwnerPid;
synchronized (mDeviceBroker.mSetModeLock) {
- if (!mSetModeDeathHandlers.isEmpty()) {
- oldModeOwnerPid = mSetModeDeathHandlers.get(0).getPid();
- }
if (mode == AudioSystem.MODE_CURRENT) {
mode = mMode;
}
- newModeOwnerPid = setModeInt(mode, cb, Binder.getCallingPid(), callingPackage);
+ oldModeOwnerPid = getModeOwnerPid();
+ // Do not allow changing mode if a call is active and the requester
+ // does not have permission to modify phone state or is not the mode owner.
+ if (((mMode == AudioSystem.MODE_IN_CALL)
+ || (mMode == AudioSystem.MODE_IN_COMMUNICATION))
+ && !(hasModifyPhoneStatePermission || (oldModeOwnerPid == callingPid))) {
+ Log.w(TAG, "setMode(" + mode + ") from pid=" + callingPid
+ + ", uid=" + Binder.getCallingUid()
+ + ", cannot change mode from " + mMode
+ + " without permission or being mode owner");
+ return;
+ }
+ newModeOwnerPid = setModeInt(mode, cb, callingPid, callingPackage);
}
// when entering RINGTONE, IN_CALL or IN_COMMUNICATION mode, clear all
// SCO connections not started by the application changing the mode when pid changes
@@ -3548,10 +3578,9 @@ public class AudioService extends IAudioService.Stub
if (status == AudioSystem.AUDIO_STATUS_OK) {
if (actualMode != AudioSystem.MODE_NORMAL) {
- if (mSetModeDeathHandlers.isEmpty()) {
+ newModeOwnerPid = getModeOwnerPid();
+ if (newModeOwnerPid == 0) {
Log.e(TAG, "setMode() different from MODE_NORMAL with empty mode client stack");
- } else {
- newModeOwnerPid = mSetModeDeathHandlers.get(0).getPid();
}
}
// Note: newModeOwnerPid is always 0 when actualMode is MODE_NORMAL
@@ -7298,6 +7327,43 @@ public class AudioService extends IAudioService.Stub
mPlaybackMonitor.releasePlayer(piid, Binder.getCallingUid());
}
+ /**
+ * Specifies whether the audio played by this app may or may not be captured by other apps or
+ * the system.
+ *
+ * @param capturePolicy one of
+ * {@link AudioAttributes#ALLOW_CAPTURE_BY_ALL},
+ * {@link AudioAttributes#ALLOW_CAPTURE_BY_SYSTEM},
+ * {@link AudioAttributes#ALLOW_CAPTURE_BY_NONE}.
+ * @return AudioSystem.AUDIO_STATUS_OK if set allowed capture policy succeed.
+ * @throws IllegalArgumentException if the argument is not a valid value.
+ */
+ public int setAllowedCapturePolicy(int capturePolicy) {
+ int callingUid = Binder.getCallingUid();
+ int flags = AudioAttributes.capturePolicyToFlags(capturePolicy, 0x0);
+ final long identity = Binder.clearCallingIdentity();
+ synchronized (mPlaybackMonitor) {
+ int result = AudioSystem.setAllowedCapturePolicy(callingUid, flags);
+ if (result == AudioSystem.AUDIO_STATUS_OK) {
+ mPlaybackMonitor.setAllowedCapturePolicy(callingUid, capturePolicy);
+ }
+ Binder.restoreCallingIdentity(identity);
+ return result;
+ }
+ }
+
+ /**
+ * Return the capture policy.
+ * @return the cached capture policy for the calling uid.
+ */
+ public int getAllowedCapturePolicy() {
+ int callingUid = Binder.getCallingUid();
+ final long identity = Binder.clearCallingIdentity();
+ int capturePolicy = mPlaybackMonitor.getAllowedCapturePolicy(callingUid);
+ Binder.restoreCallingIdentity(identity);
+ return capturePolicy;
+ }
+
//======================
// Audio device management
//======================
diff --git a/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java b/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java
index f8ba55bcd092..98f409ea98e7 100644
--- a/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java
+++ b/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java
@@ -160,6 +160,12 @@ public final class PlaybackActivityMonitor
new AudioPlaybackConfiguration(pic, newPiid,
Binder.getCallingUid(), Binder.getCallingPid());
apc.init();
+ synchronized (mAllowedCapturePolicies) {
+ int uid = apc.getClientUid();
+ if (mAllowedCapturePolicies.containsKey(uid)) {
+ updateAllowedCapturePolicy(apc, mAllowedCapturePolicies.get(uid));
+ }
+ }
sEventLogger.log(new NewPlayerEvent(apc));
synchronized(mPlayerLock) {
mPlayers.put(newPiid, apc);
@@ -169,6 +175,13 @@ public final class PlaybackActivityMonitor
public void playerAttributes(int piid, @NonNull AudioAttributes attr, int binderUid) {
final boolean change;
+ synchronized (mAllowedCapturePolicies) {
+ if (mAllowedCapturePolicies.containsKey(binderUid)
+ && attr.getAllowedCapturePolicy() < mAllowedCapturePolicies.get(binderUid)) {
+ attr = new AudioAttributes.Builder(attr)
+ .setAllowedCapturePolicy(mAllowedCapturePolicies.get(binderUid)).build();
+ }
+ }
synchronized(mPlayerLock) {
final AudioPlaybackConfiguration apc = mPlayers.get(new Integer(piid));
if (checkConfigurationCaller(piid, apc, binderUid)) {
@@ -284,6 +297,69 @@ public final class PlaybackActivityMonitor
}
}
+ /**
+ * A map of uid to capture policy.
+ */
+ private final HashMap<Integer, Integer> mAllowedCapturePolicies =
+ new HashMap<Integer, Integer>();
+
+ /**
+ * Cache allowed capture policy, which specifies whether the audio played by the app may or may
+ * not be captured by other apps or the system.
+ *
+ * @param uid the uid of requested app
+ * @param capturePolicy one of
+ * {@link AudioAttributes#ALLOW_CAPTURE_BY_ALL},
+ * {@link AudioAttributes#ALLOW_CAPTURE_BY_SYSTEM},
+ * {@link AudioAttributes#ALLOW_CAPTURE_BY_NONE}.
+ */
+ public void setAllowedCapturePolicy(int uid, int capturePolicy) {
+ synchronized (mAllowedCapturePolicies) {
+ if (capturePolicy == AudioAttributes.ALLOW_CAPTURE_BY_ALL) {
+ // When the capture policy is ALLOW_CAPTURE_BY_ALL, it is okay to
+ // remove it from cached capture policy as it is the default value.
+ mAllowedCapturePolicies.remove(uid);
+ return;
+ } else {
+ mAllowedCapturePolicies.put(uid, capturePolicy);
+ }
+ }
+ synchronized (mPlayerLock) {
+ for (AudioPlaybackConfiguration apc : mPlayers.values()) {
+ if (apc.getClientUid() == uid) {
+ updateAllowedCapturePolicy(apc, capturePolicy);
+ }
+ }
+ }
+ }
+
+ /**
+ * Return the capture policy for given uid.
+ * @param uid the uid to query its cached capture policy.
+ * @return cached capture policy for given uid or AudioAttributes.ALLOW_CAPTURE_BY_ALL
+ * if there is not cached capture policy.
+ */
+ public int getAllowedCapturePolicy(int uid) {
+ return mAllowedCapturePolicies.getOrDefault(uid, AudioAttributes.ALLOW_CAPTURE_BY_ALL);
+ }
+
+ /**
+ * Return all cached capture policies.
+ */
+ public HashMap<Integer, Integer> getAllAllowedCapturePolicies() {
+ return mAllowedCapturePolicies;
+ }
+
+ private void updateAllowedCapturePolicy(AudioPlaybackConfiguration apc, int capturePolicy) {
+ AudioAttributes attr = apc.getAudioAttributes();
+ if (attr.getAllowedCapturePolicy() >= capturePolicy) {
+ return;
+ }
+ apc.handleAudioAttributesEvent(
+ new AudioAttributes.Builder(apc.getAudioAttributes())
+ .setAllowedCapturePolicy(capturePolicy).build());
+ }
+
// Implementation of AudioPlaybackConfiguration.PlayerDeathMonitor
@Override
public void playerDeath(int piid) {
@@ -331,6 +407,12 @@ public final class PlaybackActivityMonitor
// log
sEventLogger.dump(pw);
}
+ synchronized (mAllowedCapturePolicies) {
+ pw.println("\n allowed capture policies:");
+ for (HashMap.Entry<Integer, Integer> entry : mAllowedCapturePolicies.entrySet()) {
+ pw.println(" uid: " + entry.getKey() + " policy: " + entry.getValue());
+ }
+ }
}
/**
diff --git a/services/core/java/com/android/server/audio/RotationHelper.java b/services/core/java/com/android/server/audio/RotationHelper.java
index ad20ed895805..ad7216600e61 100644
--- a/services/core/java/com/android/server/audio/RotationHelper.java
+++ b/services/core/java/com/android/server/audio/RotationHelper.java
@@ -80,6 +80,7 @@ class RotationHelper {
static void updateOrientation() {
// Even though we're responding to device orientation events,
// use display rotation so audio stays in sync with video/dialogs
+ // TODO(b/148458001): Support multi-display
int newRotation = ((WindowManager) sContext.getSystemService(
Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation();
synchronized(sRotationLock) {
diff --git a/services/core/java/com/android/server/backup/SystemBackupAgent.java b/services/core/java/com/android/server/backup/SystemBackupAgent.java
index 1f4563b801fe..0a30b763b8f4 100644
--- a/services/core/java/com/android/server/backup/SystemBackupAgent.java
+++ b/services/core/java/com/android/server/backup/SystemBackupAgent.java
@@ -113,6 +113,7 @@ public class SystemBackupAgent extends BackupAgentHelper {
throws IOException {
// Slot in a restore helper for the older wallpaper backup schema to support restore
// from devices still generating data in that format.
+ //TODO(b/147732386): Add multi-display support for wallpaper backup.
addHelper(WALLPAPER_HELPER, new WallpaperBackupHelper(this,
new String[] { WALLPAPER_IMAGE_KEY}));
diff --git a/services/core/java/com/android/server/biometrics/AuthService.java b/services/core/java/com/android/server/biometrics/AuthService.java
index 0d88388742d2..0f549842a763 100644
--- a/services/core/java/com/android/server/biometrics/AuthService.java
+++ b/services/core/java/com/android/server/biometrics/AuthService.java
@@ -99,6 +99,33 @@ public class AuthService extends SystemService {
public String[] getConfiguration(Context context) {
return context.getResources().getStringArray(R.array.config_biometric_sensors);
}
+
+ /**
+ * Allows us to mock FingerprintService for testing
+ */
+ @VisibleForTesting
+ public IFingerprintService getFingerprintService() {
+ return IFingerprintService.Stub.asInterface(
+ ServiceManager.getService(Context.FINGERPRINT_SERVICE));
+ }
+
+ /**
+ * Allows us to mock FaceService for testing
+ */
+ @VisibleForTesting
+ public IFaceService getFaceService() {
+ return IFaceService.Stub.asInterface(
+ ServiceManager.getService(Context.FACE_SERVICE));
+ }
+
+ /**
+ * Allows us to mock IrisService for testing
+ */
+ @VisibleForTesting
+ public IIrisService getIrisService() {
+ return IIrisService.Stub.asInterface(
+ ServiceManager.getService(Context.IRIS_SERVICE));
+ }
}
private final class AuthServiceImpl extends IAuthService.Stub {
@@ -178,7 +205,6 @@ public class AuthService extends SystemService {
mInjector = injector;
mImpl = new AuthServiceImpl();
- final PackageManager pm = context.getPackageManager();
}
private void registerAuthenticator(SensorConfig config) throws RemoteException {
@@ -191,18 +217,36 @@ public class AuthService extends SystemService {
switch (config.mModality) {
case TYPE_FINGERPRINT:
- authenticator = new FingerprintAuthenticator(IFingerprintService.Stub.asInterface(
- ServiceManager.getService(Context.FINGERPRINT_SERVICE)));
+ final IFingerprintService fingerprintService = mInjector.getFingerprintService();
+ if (fingerprintService == null) {
+ Slog.e(TAG, "Attempting to register with null FingerprintService. Please check"
+ + " your device configuration.");
+ return;
+ }
+
+ authenticator = new FingerprintAuthenticator(fingerprintService);
break;
case TYPE_FACE:
- authenticator = new FaceAuthenticator(IFaceService.Stub.asInterface(
- ServiceManager.getService(Context.FACE_SERVICE)));
+ final IFaceService faceService = mInjector.getFaceService();
+ if (faceService == null) {
+ Slog.e(TAG, "Attempting to register with null FaceService. Please check your"
+ + " device configuration.");
+ return;
+ }
+
+ authenticator = new FaceAuthenticator(faceService);
break;
case TYPE_IRIS:
- authenticator = new IrisAuthenticator(IIrisService.Stub.asInterface(
- ServiceManager.getService(Context.IRIS_SERVICE)));
+ final IIrisService irisService = mInjector.getIrisService();
+ if (irisService == null) {
+ Slog.e(TAG, "Attempting to register with null IrisService. Please check your"
+ + " device configuration.");
+ return;
+ }
+
+ authenticator = new IrisAuthenticator(irisService);
break;
default:
diff --git a/services/core/java/com/android/server/biometrics/AuthenticationClient.java b/services/core/java/com/android/server/biometrics/AuthenticationClient.java
index 766e5c4d638f..7bbda9f3f732 100644
--- a/services/core/java/com/android/server/biometrics/AuthenticationClient.java
+++ b/services/core/java/com/android/server/biometrics/AuthenticationClient.java
@@ -20,11 +20,14 @@ import android.content.Context;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricConstants;
import android.hardware.biometrics.BiometricsProtoEnums;
+import android.hardware.biometrics.IBiometricNativeHandle;
import android.os.IBinder;
+import android.os.NativeHandle;
import android.os.RemoteException;
import android.security.KeyStore;
import android.util.Slog;
+import java.io.IOException;
import java.util.ArrayList;
/**
@@ -41,6 +44,7 @@ public abstract class AuthenticationClient extends ClientMonitor {
public static final int LOCKOUT_PERMANENT = 2;
private final boolean mRequireConfirmation;
+ private final NativeHandle mWindowId;
// We need to track this state since it's possible for applications to request for
// authentication while the device is already locked out. In that case, the client is created
@@ -69,11 +73,25 @@ public abstract class AuthenticationClient extends ClientMonitor {
public AuthenticationClient(Context context, Constants constants,
BiometricServiceBase.DaemonWrapper daemon, long halDeviceId, IBinder token,
BiometricServiceBase.ServiceListener listener, int targetUserId, int groupId, long opId,
- boolean restricted, String owner, int cookie, boolean requireConfirmation) {
+ boolean restricted, String owner, int cookie, boolean requireConfirmation,
+ IBiometricNativeHandle windowId) {
super(context, constants, daemon, halDeviceId, token, listener, targetUserId, groupId,
restricted, owner, cookie);
mOpId = opId;
mRequireConfirmation = requireConfirmation;
+ mWindowId = Utils.dupNativeHandle(windowId);
+ }
+
+ @Override
+ public void destroy() {
+ if (mWindowId != null && mWindowId.getFileDescriptors() != null) {
+ try {
+ mWindowId.close();
+ } catch (IOException e) {
+ Slog.e(getLogTag(), "Failed to close windowId NativeHandle: ", e);
+ }
+ }
+ super.destroy();
}
protected long getStartTimeMs() {
@@ -233,7 +251,7 @@ public abstract class AuthenticationClient extends ClientMonitor {
onStart();
try {
mStartTimeMs = System.currentTimeMillis();
- final int result = getDaemonWrapper().authenticate(mOpId, getGroupId());
+ final int result = getDaemonWrapper().authenticate(mOpId, getGroupId(), mWindowId);
if (result != 0) {
Slog.w(getLogTag(), "startAuthentication failed, result=" + result);
mMetricsLogger.histogram(mConstants.tagAuthStartError(), result);
diff --git a/services/core/java/com/android/server/biometrics/BiometricService.java b/services/core/java/com/android/server/biometrics/BiometricService.java
index be5350fe04d2..07fc9b7a7e5f 100644
--- a/services/core/java/com/android/server/biometrics/BiometricService.java
+++ b/services/core/java/com/android/server/biometrics/BiometricService.java
@@ -707,7 +707,6 @@ public class BiometricService extends SystemService {
checkPermission();
}
-
if (!Utils.isValidAuthenticatorConfig(authenticators)) {
throw new SecurityException("Invalid authenticator configuration");
}
@@ -720,19 +719,6 @@ public class BiometricService extends SystemService {
try {
biometricConstantsResult = checkAndGetAuthenticators(userId, bundle, opPackageName,
false /* checkDevicePolicyManager */).second;
- if (biometricConstantsResult != BiometricConstants.BIOMETRIC_SUCCESS
- && Utils.isDeviceCredentialAllowed(bundle)) {
- // If there's an issue with biometrics, but device credential is allowed and
- // set up, return SUCCESS. If device credential isn't set up either, return
- // ERROR_NO_DEVICE_CREDENTIAL.
- if (mTrustManager.isDeviceSecure(userId)) {
- biometricConstantsResult = BiometricConstants.BIOMETRIC_SUCCESS;
- } else {
- biometricConstantsResult =
- BiometricConstants.BIOMETRIC_ERROR_NO_DEVICE_CREDENTIAL;
- }
- }
-
} catch (RemoteException e) {
Slog.e(TAG, "Remote exception", e);
} finally {
@@ -1022,9 +1008,8 @@ public class BiometricService extends SystemService {
}
/**
- * Checks if there are any available biometrics, and returns the modality. This method also
- * returns errors through the callback (no biometric feature, hardware not detected, no
- * templates enrolled, etc). This service must not start authentication if errors are sent.
+ * Depending on the requested authentication (credential/biometric combination), checks their
+ * availability.
*
* @param userId the user to check for
* @param bundle passed from {@link BiometricPrompt}
@@ -1037,24 +1022,27 @@ public class BiometricService extends SystemService {
* {@link BiometricAuthenticator#TYPE_FACE}
* and the error containing one of the {@link BiometricConstants} errors.
*
- * TODO(kchyn): Update this to handle DEVICE_CREDENTIAL better, reduce duplicate code in callers
+ * TODO(kchyn) should return Pair<Integer, Integer> with `first` being an actual bitfield
+ * taking BiometricAuthenticator#TYPE_CREDENTIAL as well.
+ *
*/
private Pair<Integer, Integer> checkAndGetAuthenticators(int userId, Bundle bundle,
String opPackageName, boolean checkDevicePolicyManager) throws RemoteException {
- if (!Utils.isBiometricAllowed(bundle)
- && Utils.isDeviceCredentialAllowed(bundle)
- && !mTrustManager.isDeviceSecure(userId)) {
- // If only device credential is being checked, and the user doesn't have one set up
- return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_ERROR_NO_DEVICE_CREDENTIAL);
- }
- // Assuming that authenticators are listed in priority-order, the rest of this function
- // will attempt to find the first authenticator that's as strong or stronger than the
- // requested strength, available, enrolled, and enabled. The tricky part is returning the
- // correct error. Error strings that are modality-specific should also respect the
+ final boolean biometricRequested = Utils.isBiometricAllowed(bundle);
+ final boolean credentialRequested = Utils.isDeviceCredentialAllowed(bundle);
+
+ final boolean biometricOk;
+ final boolean credentialOk = mTrustManager.isDeviceSecure(userId);
+
+ // Assuming that biometric authenticators are listed in priority-order, the rest of this
+ // function will attempt to find the first authenticator that's as strong or stronger than
+ // the requested strength, available, enrolled, and enabled. The tricky part is returning
+ // the correct error. Error strings that are modality-specific should also respect the
// priority-order.
- // Find first authenticator that's strong enough, detected, enrolled, and enabled.
+ // Find first biometric authenticator that's strong enough, detected, enrolled, and enabled.
+ boolean disabledByDevicePolicy = false;
boolean hasSufficientStrength = false;
boolean isHardwareDetected = false;
boolean hasTemplatesEnrolled = false;
@@ -1065,52 +1053,96 @@ public class BiometricService extends SystemService {
for (AuthenticatorWrapper authenticator : mAuthenticators) {
final int actualStrength = authenticator.getActualStrength();
final int requestedStrength = Utils.getPublicBiometricStrength(bundle);
- if (Utils.isAtLeastStrength(actualStrength, requestedStrength)) {
- hasSufficientStrength = true;
- modality = authenticator.modality;
- if (authenticator.impl.isHardwareDetected(opPackageName)) {
- isHardwareDetected = true;
- if (firstHwAvailable == TYPE_NONE) {
- // Store the first one since we want to return the error in correct
- // priority order.
- firstHwAvailable = modality;
- }
- if (authenticator.impl.hasEnrolledTemplates(userId, opPackageName)) {
- hasTemplatesEnrolled = true;
- // If the device policy manager disables a specific biometric, skip it.
- if (checkDevicePolicyManager &&
- isBiometricDisabledByDevicePolicy(modality, userId)) {
- continue;
- }
- if (isEnabledForApp(modality, userId)) {
- enabledForApps = true;
- break;
- }
- }
- }
+
+ if (isBiometricDisabledByDevicePolicy(authenticator.modality, userId)) {
+ disabledByDevicePolicy = true;
+ continue;
+ }
+ disabledByDevicePolicy = false;
+
+ if (!Utils.isAtLeastStrength(actualStrength, requestedStrength)) {
+ continue;
+ }
+ hasSufficientStrength = true;
+
+ if (!authenticator.impl.isHardwareDetected(opPackageName)) {
+ continue;
+ }
+ isHardwareDetected = true;
+
+ if (firstHwAvailable == TYPE_NONE) {
+ // Store the first one since we want to return the error in correct
+ // priority order.
+ firstHwAvailable = authenticator.modality;
+ }
+
+ if (!authenticator.impl.hasEnrolledTemplates(userId, opPackageName)) {
+ continue;
}
+ hasTemplatesEnrolled = true;
+
+ if (!isEnabledForApp(authenticator.modality, userId)) {
+ continue;
+ }
+ enabledForApps = true;
+ modality = authenticator.modality;
+ break;
}
+ biometricOk = !disabledByDevicePolicy
+ && hasSufficientStrength && isHardwareDetected
+ && hasTemplatesEnrolled && enabledForApps;
+
Slog.d(TAG, "checkAndGetAuthenticators: user=" + userId
+ " checkDevicePolicyManager=" + checkDevicePolicyManager
+ " isHardwareDetected=" + isHardwareDetected
+ " hasTemplatesEnrolled=" + hasTemplatesEnrolled
- + " enabledForApps=" + enabledForApps);
-
- // Check error conditions
- if (!hasSufficientStrength) {
- return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_NOT_PRESENT);
- } else if (!isHardwareDetected) {
- return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE);
- } else if (!hasTemplatesEnrolled) {
- // Return the modality here so the correct error string can be sent. This error is
- // preferred over !enabledForApps
- return new Pair<>(firstHwAvailable, BiometricConstants.BIOMETRIC_ERROR_NO_BIOMETRICS);
- } else if (!enabledForApps) {
+ + " enabledForApps=" + enabledForApps
+ + " disabledByDevicePolicy=" + disabledByDevicePolicy);
+
+ if (biometricRequested && credentialRequested) {
+ if (credentialOk || biometricOk) {
+ if (!biometricOk) {
+ // If there's a problem with biometrics but device credential is
+ // allowed, only show credential UI.
+ bundle.putInt(BiometricPrompt.KEY_AUTHENTICATORS_ALLOWED,
+ Authenticators.DEVICE_CREDENTIAL);
+ }
+ return new Pair<>(modality, BiometricConstants.BIOMETRIC_SUCCESS);
+ } else {
+ return new Pair<>(firstHwAvailable,
+ BiometricConstants.BIOMETRIC_ERROR_NO_BIOMETRICS);
+ }
+ } else if (biometricRequested) {
+ if (biometricOk) {
+ return new Pair<>(modality, BiometricConstants.BIOMETRIC_SUCCESS);
+ } else if (disabledByDevicePolicy) {
+ return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE);
+ } else if (!hasSufficientStrength) {
+ return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_NOT_PRESENT);
+ } else if (!isHardwareDetected) {
+ return new Pair<>(firstHwAvailable,
+ BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE);
+ } else if (!hasTemplatesEnrolled) {
+ return new Pair<>(firstHwAvailable,
+ BiometricConstants.BIOMETRIC_ERROR_NO_BIOMETRICS);
+ } else if (!enabledForApps) {
+ return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE);
+ } else {
+ Slog.e(TAG, "Unexpected case");
+ return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE);
+ }
+ } else if (credentialRequested) {
+ if (credentialOk) {
+ return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_SUCCESS);
+ } else {
+ return new Pair<>(TYPE_NONE,
+ BiometricConstants.BIOMETRIC_ERROR_NO_DEVICE_CREDENTIAL);
+ }
+ } else {
+ Slog.e(TAG, "No authenticators requested");
return new Pair<>(TYPE_NONE, BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE);
}
-
- return new Pair<>(modality, BiometricConstants.BIOMETRIC_SUCCESS);
}
private boolean isEnabledForApp(int modality, int userId) {
@@ -1549,41 +1581,19 @@ public class BiometricService extends SystemService {
int callingUid, int callingPid, int callingUserId) {
mHandler.post(() -> {
- int modality = TYPE_NONE;
- int result;
-
try {
final boolean checkDevicePolicyManager = bundle.getBoolean(
BiometricPrompt.EXTRA_DISALLOW_BIOMETRICS_IF_POLICY_EXISTS, false);
final Pair<Integer, Integer> pair = checkAndGetAuthenticators(userId, bundle,
opPackageName, checkDevicePolicyManager);
- modality = pair.first;
- result = pair.second;
- } catch (RemoteException e) {
- Slog.e(TAG, "Remote exception", e);
- result = BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE;
- }
+ final int modality = pair.first;
+ final int result = pair.second;
- try {
- if (result == BiometricConstants.BIOMETRIC_ERROR_NO_DEVICE_CREDENTIAL) {
- // If the app allowed device credential but the user hasn't set it up yet,
- // return this error.
- receiver.onError(modality, result, 0 /* vendorCode */);
- } else if (result != BiometricConstants.BIOMETRIC_SUCCESS) {
- if (Utils.isDeviceCredentialAllowed(bundle)) {
- // If there's a problem with biometrics but device credential is allowed,
- // only show credential UI.
- bundle.putInt(BiometricPrompt.KEY_AUTHENTICATORS_ALLOWED,
- Authenticators.DEVICE_CREDENTIAL);
- authenticateInternal(token, sessionId, userId, receiver, opPackageName,
- bundle, callingUid, callingPid, callingUserId, modality);
- } else {
- receiver.onError(modality, result, 0 /* vendorCode */);
- }
+ if (result == BiometricConstants.BIOMETRIC_SUCCESS) {
+ authenticateInternal(token, sessionId, userId, receiver, opPackageName,
+ bundle, callingUid, callingPid, callingUserId, modality);
} else {
- // BIOMETRIC_SUCCESS, proceed to authentication
- authenticateInternal(token, sessionId, userId, receiver, opPackageName, bundle,
- callingUid, callingPid, callingUserId, modality);
+ receiver.onError(modality, result, 0 /* vendorCode */);
}
} catch (RemoteException e) {
Slog.e(TAG, "Remote exception", e);
diff --git a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
index 687d9353ebd1..0e709944b03f 100644
--- a/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
+++ b/services/core/java/com/android/server/biometrics/BiometricServiceBase.java
@@ -32,6 +32,7 @@ import android.content.pm.UserInfo;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricConstants;
import android.hardware.biometrics.BiometricsProtoEnums;
+import android.hardware.biometrics.IBiometricNativeHandle;
import android.hardware.biometrics.IBiometricService;
import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
import android.hardware.biometrics.IBiometricServiceReceiverInternal;
@@ -43,6 +44,7 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.IHwBinder;
import android.os.IRemoteCallback;
+import android.os.NativeHandle;
import android.os.PowerManager;
import android.os.Process;
import android.os.RemoteException;
@@ -220,9 +222,10 @@ public abstract class BiometricServiceBase extends SystemService
public AuthenticationClientImpl(Context context, DaemonWrapper daemon, long halDeviceId,
IBinder token, ServiceListener listener, int targetUserId, int groupId, long opId,
- boolean restricted, String owner, int cookie, boolean requireConfirmation) {
+ boolean restricted, String owner, int cookie, boolean requireConfirmation,
+ IBiometricNativeHandle windowId) {
super(context, getConstants(), daemon, halDeviceId, token, listener, targetUserId,
- groupId, opId, restricted, owner, cookie, requireConfirmation);
+ groupId, opId, restricted, owner, cookie, requireConfirmation, windowId);
}
@Override
@@ -283,10 +286,10 @@ public abstract class BiometricServiceBase extends SystemService
public EnrollClientImpl(Context context, DaemonWrapper daemon, long halDeviceId,
IBinder token, ServiceListener listener, int userId, int groupId,
byte[] cryptoToken, boolean restricted, String owner,
- final int[] disabledFeatures, int timeoutSec) {
+ final int[] disabledFeatures, int timeoutSec, IBiometricNativeHandle windowId) {
super(context, getConstants(), daemon, halDeviceId, token, listener,
userId, groupId, cryptoToken, restricted, owner, getBiometricUtils(),
- disabledFeatures, timeoutSec);
+ disabledFeatures, timeoutSec, windowId);
}
@Override
@@ -472,12 +475,13 @@ public abstract class BiometricServiceBase extends SystemService
*/
protected interface DaemonWrapper {
int ERROR_ESRCH = 3; // Likely HAL is dead. see errno.h.
- int authenticate(long operationId, int groupId) throws RemoteException;
+ int authenticate(long operationId, int groupId, NativeHandle windowId)
+ throws RemoteException;
int cancel() throws RemoteException;
int remove(int groupId, int biometricId) throws RemoteException;
int enumerate() throws RemoteException;
int enroll(byte[] token, int groupId, int timeout,
- ArrayList<Integer> disabledFeatures) throws RemoteException;
+ ArrayList<Integer> disabledFeatures, NativeHandle windowId) throws RemoteException;
void resetLockout(byte[] token) throws RemoteException;
}
diff --git a/services/core/java/com/android/server/biometrics/EnrollClient.java b/services/core/java/com/android/server/biometrics/EnrollClient.java
index 7ebb7c059b4c..684795ec66b5 100644
--- a/services/core/java/com/android/server/biometrics/EnrollClient.java
+++ b/services/core/java/com/android/server/biometrics/EnrollClient.java
@@ -20,10 +20,13 @@ import android.content.Context;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricConstants;
import android.hardware.biometrics.BiometricsProtoEnums;
+import android.hardware.biometrics.IBiometricNativeHandle;
import android.os.IBinder;
+import android.os.NativeHandle;
import android.os.RemoteException;
import android.util.Slog;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -35,6 +38,7 @@ public abstract class EnrollClient extends ClientMonitor {
private final BiometricUtils mBiometricUtils;
private final int[] mDisabledFeatures;
private final int mTimeoutSec;
+ private final NativeHandle mWindowId;
private long mEnrollmentStartTimeMs;
@@ -44,13 +48,26 @@ public abstract class EnrollClient extends ClientMonitor {
BiometricServiceBase.DaemonWrapper daemon, long halDeviceId, IBinder token,
BiometricServiceBase.ServiceListener listener, int userId, int groupId,
byte[] cryptoToken, boolean restricted, String owner, BiometricUtils utils,
- final int[] disabledFeatures, int timeoutSec) {
+ final int[] disabledFeatures, int timeoutSec, IBiometricNativeHandle windowId) {
super(context, constants, daemon, halDeviceId, token, listener, userId, groupId, restricted,
owner, 0 /* cookie */);
mBiometricUtils = utils;
mCryptoToken = Arrays.copyOf(cryptoToken, cryptoToken.length);
mDisabledFeatures = Arrays.copyOf(disabledFeatures, disabledFeatures.length);
mTimeoutSec = timeoutSec;
+ mWindowId = Utils.dupNativeHandle(windowId);
+ }
+
+ @Override
+ public void destroy() {
+ if (mWindowId != null && mWindowId.getFileDescriptors() != null) {
+ try {
+ mWindowId.close();
+ } catch (IOException e) {
+ Slog.e(getLogTag(), "Failed to close windowId NativeHandle: ", e);
+ }
+ }
+ super.destroy();
}
@Override
@@ -102,7 +119,7 @@ public abstract class EnrollClient extends ClientMonitor {
}
final int result = getDaemonWrapper().enroll(mCryptoToken, getGroupId(), mTimeoutSec,
- disabledFeatures);
+ disabledFeatures, mWindowId);
if (result != 0) {
Slog.w(getLogTag(), "startEnroll failed, result=" + result);
mMetricsLogger.histogram(mConstants.tagEnrollStartError(), result);
diff --git a/services/core/java/com/android/server/biometrics/Utils.java b/services/core/java/com/android/server/biometrics/Utils.java
index 389763b5377a..2d4ab6308a8b 100644
--- a/services/core/java/com/android/server/biometrics/Utils.java
+++ b/services/core/java/com/android/server/biometrics/Utils.java
@@ -23,12 +23,17 @@ import android.hardware.biometrics.BiometricConstants;
import android.hardware.biometrics.BiometricManager;
import android.hardware.biometrics.BiometricPrompt;
import android.hardware.biometrics.BiometricPrompt.AuthenticationResultType;
+import android.hardware.biometrics.IBiometricNativeHandle;
import android.os.Build;
import android.os.Bundle;
+import android.os.NativeHandle;
import android.os.UserHandle;
import android.provider.Settings;
import android.util.Slog;
+import java.io.FileDescriptor;
+import java.io.IOException;
+
public class Utils {
public static boolean isDebugEnabled(Context context, int targetUserId) {
if (targetUserId == UserHandle.USER_NULL) {
@@ -237,4 +242,31 @@ public class Utils {
throw new IllegalArgumentException("Unsupported dismissal reason: " + reason);
}
}
+
+ /**
+ * Converts an {@link IBiometricNativeHandle} to a {@link NativeHandle} by duplicating the
+ * the underlying file descriptors.
+ *
+ * Both the original and new handle must be closed after use.
+ *
+ * @param h {@link IBiometricNativeHandle} received as a binder call argument. Usually used to
+ * identify a WindowManager window. Can be null.
+ * @return A {@link NativeHandle} representation of {@code h}. Will be null if either {@code h}
+ * or its contents are null.
+ */
+ public static NativeHandle dupNativeHandle(IBiometricNativeHandle h) {
+ NativeHandle handle = null;
+ if (h != null && h.fds != null && h.ints != null) {
+ FileDescriptor[] fds = new FileDescriptor[h.fds.length];
+ for (int i = 0; i < h.fds.length; ++i) {
+ try {
+ fds[i] = h.fds[i].dup().getFileDescriptor();
+ } catch (IOException e) {
+ return null;
+ }
+ }
+ handle = new NativeHandle(fds, h.ints, true /* own */);
+ }
+ return handle;
+ }
}
diff --git a/services/core/java/com/android/server/biometrics/face/FaceService.java b/services/core/java/com/android/server/biometrics/face/FaceService.java
index a0573db680b4..31c3d4d7b24e 100644
--- a/services/core/java/com/android/server/biometrics/face/FaceService.java
+++ b/services/core/java/com/android/server/biometrics/face/FaceService.java
@@ -34,6 +34,7 @@ import android.content.pm.UserInfo;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricConstants;
import android.hardware.biometrics.BiometricsProtoEnums;
+import android.hardware.biometrics.IBiometricNativeHandle;
import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
import android.hardware.biometrics.IBiometricServiceReceiverInternal;
import android.hardware.biometrics.face.V1_0.IBiometricsFace;
@@ -214,9 +215,10 @@ public class FaceService extends BiometricServiceBase {
public FaceAuthClient(Context context,
DaemonWrapper daemon, long halDeviceId, IBinder token,
ServiceListener listener, int targetUserId, int groupId, long opId,
- boolean restricted, String owner, int cookie, boolean requireConfirmation) {
+ boolean restricted, String owner, int cookie, boolean requireConfirmation,
+ IBiometricNativeHandle windowId) {
super(context, daemon, halDeviceId, token, listener, targetUserId, groupId, opId,
- restricted, owner, cookie, requireConfirmation);
+ restricted, owner, cookie, requireConfirmation, windowId);
}
@Override
@@ -373,7 +375,7 @@ public class FaceService extends BiometricServiceBase {
@Override // Binder call
public void enroll(int userId, final IBinder token, final byte[] cryptoToken,
final IFaceServiceReceiver receiver, final String opPackageName,
- final int[] disabledFeatures) {
+ final int[] disabledFeatures, IBiometricNativeHandle windowId) {
checkPermission(MANAGE_BIOMETRIC);
updateActiveGroup(userId, opPackageName);
@@ -384,7 +386,7 @@ public class FaceService extends BiometricServiceBase {
final EnrollClientImpl client = new EnrollClientImpl(getContext(), mDaemonWrapper,
mHalDeviceId, token, new ServiceListenerImpl(receiver), mCurrentUserId,
0 /* groupId */, cryptoToken, restricted, opPackageName, disabledFeatures,
- ENROLL_TIMEOUT_SEC) {
+ ENROLL_TIMEOUT_SEC, windowId) {
@Override
public int[] getAcquireIgnorelist() {
@@ -411,6 +413,14 @@ public class FaceService extends BiometricServiceBase {
}
@Override // Binder call
+ public void enrollRemotely(int userId, final IBinder token, final byte[] cryptoToken,
+ final IFaceServiceReceiver receiver, final String opPackageName,
+ final int[] disabledFeatures) {
+ checkPermission(MANAGE_BIOMETRIC);
+ // TODO(b/145027036): Implement this.
+ }
+
+ @Override // Binder call
public void cancelEnrollment(final IBinder token) {
checkPermission(MANAGE_BIOMETRIC);
cancelEnrollmentInternal(token);
@@ -426,7 +436,7 @@ public class FaceService extends BiometricServiceBase {
final AuthenticationClientImpl client = new FaceAuthClient(getContext(),
mDaemonWrapper, mHalDeviceId, token, new ServiceListenerImpl(receiver),
mCurrentUserId, 0 /* groupId */, opId, restricted, opPackageName,
- 0 /* cookie */, false /* requireConfirmation */);
+ 0 /* cookie */, false /* requireConfirmation */, null /* windowId */);
authenticateInternal(client, opId, opPackageName);
}
@@ -442,7 +452,7 @@ public class FaceService extends BiometricServiceBase {
mDaemonWrapper, mHalDeviceId, token,
new BiometricPromptServiceListenerImpl(wrapperReceiver),
mCurrentUserId, 0 /* groupId */, opId, restricted, opPackageName, cookie,
- requireConfirmation);
+ requireConfirmation, null /* windowId */);
authenticateInternal(client, opId, opPackageName, callingUid, callingPid,
callingUserId);
}
@@ -962,9 +972,10 @@ public class FaceService extends BiometricServiceBase {
@Override
public void onLockoutChanged(long duration) {
Slog.d(TAG, "onLockoutChanged: " + duration);
+
if (duration == 0) {
mCurrentUserLockoutMode = AuthenticationClient.LOCKOUT_NONE;
- } else if (duration == Long.MAX_VALUE) {
+ } else if (duration == -1 || duration == Long.MAX_VALUE) {
mCurrentUserLockoutMode = AuthenticationClient.LOCKOUT_PERMANENT;
} else {
mCurrentUserLockoutMode = AuthenticationClient.LOCKOUT_TIMED;
@@ -984,7 +995,8 @@ public class FaceService extends BiometricServiceBase {
*/
private final DaemonWrapper mDaemonWrapper = new DaemonWrapper() {
@Override
- public int authenticate(long operationId, int groupId) throws RemoteException {
+ public int authenticate(long operationId, int groupId, NativeHandle windowId)
+ throws RemoteException {
IBiometricsFace daemon = getFaceDaemon();
if (daemon == null) {
Slog.w(TAG, "authenticate(): no face HAL!");
@@ -1025,7 +1037,7 @@ public class FaceService extends BiometricServiceBase {
@Override
public int enroll(byte[] cryptoToken, int groupId, int timeout,
- ArrayList<Integer> disabledFeatures) throws RemoteException {
+ ArrayList<Integer> disabledFeatures, NativeHandle windowId) throws RemoteException {
IBiometricsFace daemon = getFaceDaemon();
if (daemon == null) {
Slog.w(TAG, "enroll(): no face HAL!");
@@ -1035,7 +1047,17 @@ public class FaceService extends BiometricServiceBase {
for (int i = 0; i < cryptoToken.length; i++) {
token.add(cryptoToken[i]);
}
- return daemon.enroll(token, timeout, disabledFeatures);
+ android.hardware.biometrics.face.V1_1.IBiometricsFace daemon11 =
+ android.hardware.biometrics.face.V1_1.IBiometricsFace.castFrom(
+ daemon);
+ if (daemon11 != null) {
+ return daemon11.enroll_1_1(token, timeout, disabledFeatures, windowId);
+ } else if (windowId == null) {
+ return daemon.enroll(token, timeout, disabledFeatures);
+ } else {
+ Slog.e(TAG, "enroll(): windowId is only supported in @1.1 HAL");
+ return ERROR_ESRCH;
+ }
}
@Override
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintAuthenticator.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintAuthenticator.java
index 6150de151ccc..7a4e62e18474 100644
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintAuthenticator.java
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintAuthenticator.java
@@ -38,7 +38,7 @@ public final class FingerprintAuthenticator extends IBiometricAuthenticator.Stub
String opPackageName, int cookie, int callingUid, int callingPid, int callingUserId)
throws RemoteException {
mFingerprintService.prepareForAuthentication(token, sessionId, userId, wrapperReceiver,
- opPackageName, cookie, callingUid, callingPid, callingUserId);
+ opPackageName, cookie, callingUid, callingPid, callingUserId, null /* windowId */);
}
@Override
diff --git a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
index 44797ad97b37..57d1867b3aca 100644
--- a/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/biometrics/fingerprint/FingerprintService.java
@@ -37,6 +37,7 @@ import android.content.pm.UserInfo;
import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricConstants;
import android.hardware.biometrics.BiometricsProtoEnums;
+import android.hardware.biometrics.IBiometricNativeHandle;
import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
import android.hardware.biometrics.IBiometricServiceReceiverInternal;
import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
@@ -50,6 +51,7 @@ import android.os.Binder;
import android.os.Build;
import android.os.Environment;
import android.os.IBinder;
+import android.os.NativeHandle;
import android.os.RemoteException;
import android.os.SELinux;
import android.os.SystemClock;
@@ -132,9 +134,9 @@ public class FingerprintService extends BiometricServiceBase {
DaemonWrapper daemon, long halDeviceId, IBinder token,
ServiceListener listener, int targetUserId, int groupId, long opId,
boolean restricted, String owner, int cookie,
- boolean requireConfirmation) {
+ boolean requireConfirmation, IBiometricNativeHandle windowId) {
super(context, daemon, halDeviceId, token, listener, targetUserId, groupId, opId,
- restricted, owner, cookie, requireConfirmation);
+ restricted, owner, cookie, requireConfirmation, windowId);
}
@Override
@@ -198,7 +200,7 @@ public class FingerprintService extends BiometricServiceBase {
@Override // Binder call
public void enroll(final IBinder token, final byte[] cryptoToken, final int userId,
final IFingerprintServiceReceiver receiver, final int flags,
- final String opPackageName) {
+ final String opPackageName, IBiometricNativeHandle windowId) {
checkPermission(MANAGE_FINGERPRINT);
final boolean restricted = isRestricted();
@@ -206,7 +208,7 @@ public class FingerprintService extends BiometricServiceBase {
final EnrollClientImpl client = new EnrollClientImpl(getContext(), mDaemonWrapper,
mHalDeviceId, token, new ServiceListenerImpl(receiver), mCurrentUserId, groupId,
cryptoToken, restricted, opPackageName, new int[0] /* disabledFeatures */,
- ENROLL_TIMEOUT_SEC) {
+ ENROLL_TIMEOUT_SEC, windowId) {
@Override
public boolean shouldVibrate() {
return true;
@@ -230,20 +232,22 @@ public class FingerprintService extends BiometricServiceBase {
@Override // Binder call
public void authenticate(final IBinder token, final long opId, final int groupId,
final IFingerprintServiceReceiver receiver, final int flags,
- final String opPackageName) {
+ final String opPackageName, IBiometricNativeHandle windowId) {
updateActiveGroup(groupId, opPackageName);
final boolean restricted = isRestricted();
final AuthenticationClientImpl client = new FingerprintAuthClient(getContext(),
mDaemonWrapper, mHalDeviceId, token, new ServiceListenerImpl(receiver),
mCurrentUserId, groupId, opId, restricted, opPackageName,
- 0 /* cookie */, false /* requireConfirmation */);
+ 0 /* cookie */, false /* requireConfirmation */,
+ windowId);
authenticateInternal(client, opId, opPackageName);
}
@Override // Binder call
public void prepareForAuthentication(IBinder token, long opId, int groupId,
IBiometricServiceReceiverInternal wrapperReceiver, String opPackageName,
- int cookie, int callingUid, int callingPid, int callingUserId) {
+ int cookie, int callingUid, int callingPid, int callingUserId,
+ IBiometricNativeHandle windowId) {
checkPermission(MANAGE_BIOMETRIC);
updateActiveGroup(groupId, opPackageName);
final boolean restricted = true; // BiometricPrompt is always restricted
@@ -251,7 +255,8 @@ public class FingerprintService extends BiometricServiceBase {
mDaemonWrapper, mHalDeviceId, token,
new BiometricPromptServiceListenerImpl(wrapperReceiver),
mCurrentUserId, groupId, opId, restricted, opPackageName, cookie,
- false /* requireConfirmation */);
+ false /* requireConfirmation */,
+ windowId);
authenticateInternal(client, opId, opPackageName, callingUid, callingPid,
callingUserId);
}
@@ -654,13 +659,24 @@ public class FingerprintService extends BiometricServiceBase {
*/
private final DaemonWrapper mDaemonWrapper = new DaemonWrapper() {
@Override
- public int authenticate(long operationId, int groupId) throws RemoteException {
+ public int authenticate(long operationId, int groupId, NativeHandle windowId)
+ throws RemoteException {
IBiometricsFingerprint daemon = getFingerprintDaemon();
if (daemon == null) {
Slog.w(TAG, "authenticate(): no fingerprint HAL!");
return ERROR_ESRCH;
}
- return daemon.authenticate(operationId, groupId);
+ android.hardware.biometrics.fingerprint.V2_2.IBiometricsFingerprint daemon22 =
+ android.hardware.biometrics.fingerprint.V2_2.IBiometricsFingerprint.castFrom(
+ daemon);
+ if (daemon22 != null) {
+ return daemon22.authenticate_2_2(operationId, groupId, windowId);
+ } else if (windowId == null) {
+ return daemon.authenticate(operationId, groupId);
+ } else {
+ Slog.e(TAG, "authenticate(): windowId is only supported in @2.2 HAL");
+ return ERROR_ESRCH;
+ }
}
@Override
@@ -695,13 +711,27 @@ public class FingerprintService extends BiometricServiceBase {
@Override
public int enroll(byte[] cryptoToken, int groupId, int timeout,
- ArrayList<Integer> disabledFeatures) throws RemoteException {
+ ArrayList<Integer> disabledFeatures, NativeHandle windowId) throws RemoteException {
IBiometricsFingerprint daemon = getFingerprintDaemon();
if (daemon == null) {
Slog.w(TAG, "enroll(): no fingerprint HAL!");
return ERROR_ESRCH;
}
- return daemon.enroll(cryptoToken, groupId, timeout);
+ android.hardware.biometrics.fingerprint.V2_2.IBiometricsFingerprint daemon22 =
+ android.hardware.biometrics.fingerprint.V2_2.IBiometricsFingerprint.castFrom(
+ daemon);
+ if (daemon22 != null) {
+ ArrayList<Byte> cryptoTokenAsList = new ArrayList<>(cryptoToken.length);
+ for (byte b : cryptoToken) {
+ cryptoTokenAsList.add(b);
+ }
+ return daemon22.enroll_2_2(cryptoTokenAsList, groupId, timeout, windowId);
+ } else if (windowId == null) {
+ return daemon.enroll(cryptoToken, groupId, timeout);
+ } else {
+ Slog.e(TAG, "enroll(): windowId is only supported in @2.2 HAL");
+ return ERROR_ESRCH;
+ }
}
@Override
diff --git a/services/core/java/com/android/server/camera/CameraServiceProxy.java b/services/core/java/com/android/server/camera/CameraServiceProxy.java
index 96af74a60b1d..61c99b88d113 100644
--- a/services/core/java/com/android/server/camera/CameraServiceProxy.java
+++ b/services/core/java/com/android/server/camera/CameraServiceProxy.java
@@ -36,23 +36,22 @@ import android.os.UserManager;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Slog;
-import android.util.StatsLog;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.LocalServices;
import com.android.server.ServiceThread;
import com.android.server.SystemService;
import com.android.server.wm.WindowManagerInternal;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
/**
* CameraServiceProxy is the system_server analog to the camera service running in cameraserver.
@@ -315,22 +314,22 @@ public class CameraServiceProxy extends SystemService
* Package-private
*/
private void logCameraUsageEvent(CameraUsageEvent e) {
- int facing = StatsLog.CAMERA_ACTION_EVENT__FACING__UNKNOWN;
+ int facing = FrameworkStatsLog.CAMERA_ACTION_EVENT__FACING__UNKNOWN;
switch(e.mCameraFacing) {
case ICameraServiceProxy.CAMERA_FACING_BACK:
- facing = StatsLog.CAMERA_ACTION_EVENT__FACING__BACK;
+ facing = FrameworkStatsLog.CAMERA_ACTION_EVENT__FACING__BACK;
break;
case ICameraServiceProxy.CAMERA_FACING_FRONT:
- facing = StatsLog.CAMERA_ACTION_EVENT__FACING__FRONT;
+ facing = FrameworkStatsLog.CAMERA_ACTION_EVENT__FACING__FRONT;
break;
case ICameraServiceProxy.CAMERA_FACING_EXTERNAL:
- facing = StatsLog.CAMERA_ACTION_EVENT__FACING__EXTERNAL;
+ facing = FrameworkStatsLog.CAMERA_ACTION_EVENT__FACING__EXTERNAL;
break;
default:
Slog.w(TAG, "Unknown camera facing: " + e.mCameraFacing);
}
- StatsLog.write(StatsLog.CAMERA_ACTION_EVENT, e.getDuration(), e.mAPILevel,
- e.mClientName, facing);
+ FrameworkStatsLog.write(FrameworkStatsLog.CAMERA_ACTION_EVENT, e.getDuration(),
+ e.mAPILevel, e.mClientName, facing);
}
}
diff --git a/services/core/java/com/android/server/compat/CompatConfig.java b/services/core/java/com/android/server/compat/CompatConfig.java
index 8d261762a19b..7f7c9c4c7c1d 100644
--- a/services/core/java/com/android/server/compat/CompatConfig.java
+++ b/services/core/java/com/android/server/compat/CompatConfig.java
@@ -35,6 +35,7 @@ import com.android.internal.compat.IOverrideValidator;
import com.android.internal.compat.OverrideAllowedState;
import com.android.server.compat.config.Change;
import com.android.server.compat.config.XmlParser;
+import com.android.server.pm.ApexManager;
import org.xmlpull.v1.XmlPullParserException;
@@ -45,6 +46,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import javax.xml.datatype.DatatypeConfigurationException;
@@ -369,12 +371,18 @@ final class CompatConfig {
Environment.getRootDirectory(), "etc", "compatconfig"));
config.initConfigFromLib(Environment.buildPath(
Environment.getRootDirectory(), "system_ext", "etc", "compatconfig"));
+
+ List<ApexManager.ActiveApexInfo> apexes = ApexManager.getInstance().getActiveApexInfos();
+ for (ApexManager.ActiveApexInfo apex : apexes) {
+ config.initConfigFromLib(Environment.buildPath(
+ apex.apexDirectory, "etc", "compatconfig"));
+ }
return config;
}
void initConfigFromLib(File libraryDir) {
if (!libraryDir.exists() || !libraryDir.isDirectory()) {
- Slog.e(TAG, "No directory " + libraryDir + ", skipping");
+ Slog.d(TAG, "No directory " + libraryDir + ", skipping");
return;
}
for (File f : libraryDir.listFiles()) {
diff --git a/services/core/java/com/android/server/compat/PlatformCompat.java b/services/core/java/com/android/server/compat/PlatformCompat.java
index 47bb5f397aaa..af474304c76e 100644
--- a/services/core/java/com/android/server/compat/PlatformCompat.java
+++ b/services/core/java/com/android/server/compat/PlatformCompat.java
@@ -21,6 +21,7 @@ import static android.Manifest.permission.OVERRIDE_COMPAT_CHANGE_CONFIG;
import static android.Manifest.permission.READ_COMPAT_CHANGE_CONFIG;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+import android.annotation.UserIdInt;
import android.app.ActivityManager;
import android.app.IActivityManager;
import android.content.Context;
@@ -39,7 +40,6 @@ import com.android.internal.compat.CompatibilityChangeInfo;
import com.android.internal.compat.IOverrideValidator;
import com.android.internal.compat.IPlatformCompat;
import com.android.internal.util.DumpUtils;
-import com.android.internal.util.FrameworkStatsLog;
import com.android.server.LocalServices;
import java.io.FileDescriptor;
@@ -59,7 +59,7 @@ public class PlatformCompat extends IPlatformCompat.Stub {
public PlatformCompat(Context context) {
mContext = context;
mChangeReporter = new ChangeReporter(
- FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__SOURCE__SYSTEM_SERVER);
+ ChangeReporter.SOURCE_SYSTEM_SERVER);
mCompatConfig = CompatConfig.create(new AndroidBuildClassifier(), mContext);
}
@@ -67,7 +67,7 @@ public class PlatformCompat extends IPlatformCompat.Stub {
PlatformCompat(Context context, CompatConfig compatConfig) {
mContext = context;
mChangeReporter = new ChangeReporter(
- FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__SOURCE__SYSTEM_SERVER);
+ ChangeReporter.SOURCE_SYSTEM_SERVER);
mCompatConfig = compatConfig;
}
@@ -75,7 +75,7 @@ public class PlatformCompat extends IPlatformCompat.Stub {
public void reportChange(long changeId, ApplicationInfo appInfo) {
checkCompatChangeLogPermission();
reportChange(changeId, appInfo.uid,
- FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__LOGGED);
+ ChangeReporter.STATE_LOGGED);
}
@Override
@@ -91,26 +91,26 @@ public class PlatformCompat extends IPlatformCompat.Stub {
@Override
public void reportChangeByUid(long changeId, int uid) {
checkCompatChangeLogPermission();
- reportChange(changeId, uid,
- FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__LOGGED);
+ reportChange(changeId, uid, ChangeReporter.STATE_LOGGED);
}
@Override
public boolean isChangeEnabled(long changeId, ApplicationInfo appInfo) {
- checkCompatChangeReadPermission();
+ checkCompatChangeReadAndLogPermission();
if (mCompatConfig.isChangeEnabled(changeId, appInfo)) {
reportChange(changeId, appInfo.uid,
- FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__ENABLED);
+ ChangeReporter.STATE_ENABLED);
return true;
}
reportChange(changeId, appInfo.uid,
- FrameworkStatsLog.APP_COMPATIBILITY_CHANGE_REPORTED__STATE__DISABLED);
+ ChangeReporter.STATE_DISABLED);
return false;
}
@Override
- public boolean isChangeEnabledByPackageName(long changeId, String packageName, int userId) {
- checkCompatChangeReadPermission();
+ public boolean isChangeEnabledByPackageName(long changeId, String packageName,
+ @UserIdInt int userId) {
+ checkCompatChangeReadAndLogPermission();
ApplicationInfo appInfo = getApplicationInfo(packageName, userId);
if (appInfo == null) {
return true;
@@ -120,7 +120,7 @@ public class PlatformCompat extends IPlatformCompat.Stub {
@Override
public boolean isChangeEnabledByUid(long changeId, int uid) {
- checkCompatChangeReadPermission();
+ checkCompatChangeReadAndLogPermission();
String[] packages = mContext.getPackageManager().getPackagesForUid(uid);
if (packages == null || packages.length == 0) {
return true;
@@ -190,7 +190,7 @@ public class PlatformCompat extends IPlatformCompat.Stub {
@Override
public CompatibilityChangeConfig getAppConfig(ApplicationInfo appInfo) {
- checkCompatChangeReadPermission();
+ checkCompatChangeReadAndLogPermission();
return mCompatConfig.getAppConfig(appInfo);
}
@@ -235,7 +235,7 @@ public class PlatformCompat extends IPlatformCompat.Stub {
@Override
protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- checkCompatChangeReadPermission();
+ checkCompatChangeReadAndLogPermission();
if (!DumpUtils.checkDumpAndUsageStatsPermission(mContext, "platform_compat", pw)) return;
mCompatConfig.dumpConfig(pw);
}
@@ -314,4 +314,9 @@ public class PlatformCompat extends IPlatformCompat.Stub {
throw new SecurityException("Cannot override compat change");
}
}
+
+ private void checkCompatChangeReadAndLogPermission() throws SecurityException {
+ checkCompatChangeReadPermission();
+ checkCompatChangeLogPermission();
+ }
}
diff --git a/services/core/java/com/android/server/compat/PlatformCompatNative.java b/services/core/java/com/android/server/compat/PlatformCompatNative.java
index 85dfbf411667..5d7af650db0b 100644
--- a/services/core/java/com/android/server/compat/PlatformCompatNative.java
+++ b/services/core/java/com/android/server/compat/PlatformCompatNative.java
@@ -16,6 +16,8 @@
package com.android.server.compat;
+import android.annotation.UserIdInt;
+
import com.android.internal.compat.IPlatformCompatNative;
/**
@@ -39,7 +41,8 @@ public class PlatformCompatNative extends IPlatformCompatNative.Stub {
}
@Override
- public boolean isChangeEnabledByPackageName(long changeId, String packageName, int userId) {
+ public boolean isChangeEnabledByPackageName(long changeId, String packageName,
+ @UserIdInt int userId) {
return mPlatformCompat.isChangeEnabledByPackageName(changeId, packageName, userId);
}
diff --git a/services/core/java/com/android/server/connectivity/LingerMonitor.java b/services/core/java/com/android/server/connectivity/LingerMonitor.java
index 929dfc4d1511..707151059869 100644
--- a/services/core/java/com/android/server/connectivity/LingerMonitor.java
+++ b/services/core/java/com/android/server/connectivity/LingerMonitor.java
@@ -16,6 +16,10 @@
package com.android.server.connectivity;
+import static android.net.ConnectivityManager.NETID_UNSET;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.Context;
@@ -27,18 +31,16 @@ import android.text.TextUtils;
import android.text.format.DateUtils;
import android.util.Log;
import android.util.SparseArray;
-import android.util.SparseIntArray;
import android.util.SparseBooleanArray;
-import java.util.Arrays;
-import java.util.HashMap;
+import android.util.SparseIntArray;
import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.MessageUtils;
-import com.android.server.connectivity.NetworkNotificationManager;
import com.android.server.connectivity.NetworkNotificationManager.NotificationType;
-import static android.net.ConnectivityManager.NETID_UNSET;
+import java.util.Arrays;
+import java.util.HashMap;
/**
* Class that monitors default network linger events and possibly notifies the user of network
@@ -206,8 +208,19 @@ public class LingerMonitor {
mEverNotified.put(fromNai.network.netId, true);
}
+ /**
+ * Put up or dismiss a notification or toast for of a change in the default network if needed.
+ *
+ * Putting up a notification when switching from no network to some network is not supported
+ * and as such this method can't be called with a null |fromNai|. It can be called with a
+ * null |toNai| if there isn't a default network any more.
+ *
+ * @param fromNai switching from this NAI
+ * @param toNai switching to this NAI
+ */
// The default network changed from fromNai to toNai due to a change in score.
- public void noteLingerDefaultNetwork(NetworkAgentInfo fromNai, NetworkAgentInfo toNai) {
+ public void noteLingerDefaultNetwork(@NonNull final NetworkAgentInfo fromNai,
+ @Nullable final NetworkAgentInfo toNai) {
if (VDBG) {
Log.d(TAG, "noteLingerDefaultNetwork from=" + fromNai.name() +
" everValidated=" + fromNai.everValidated +
@@ -221,6 +234,10 @@ public class LingerMonitor {
// Internet access).
maybeStopNotifying(fromNai);
+ // If the network was simply lost (either because it disconnected or because it stopped
+ // being the default with no replacement), then don't show a notification.
+ if (null == toNai) return;
+
// If this network never validated, don't notify. Otherwise, we could do things like:
//
// 1. Unvalidated wifi connects.
diff --git a/services/core/java/com/android/server/connectivity/NetdEventListenerService.java b/services/core/java/com/android/server/connectivity/NetdEventListenerService.java
index 17e2f69e9bf1..f3d201289f0e 100644
--- a/services/core/java/com/android/server/connectivity/NetdEventListenerService.java
+++ b/services/core/java/com/android/server/connectivity/NetdEventListenerService.java
@@ -35,11 +35,11 @@ import android.text.format.DateUtils;
import android.util.ArrayMap;
import android.util.Log;
import android.util.SparseArray;
-import android.util.StatsLog;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.BitUtils;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.RingBuffer;
import com.android.internal.util.TokenBucket;
import com.android.server.connectivity.metrics.nano.IpConnectivityLogClass.IpConnectivityEvent;
@@ -278,7 +278,7 @@ public class NetdEventListenerService extends INetdEventListener.Stub {
addWakeupEvent(event);
String dstMac = event.dstHwAddr.toString();
- StatsLog.write(StatsLog.PACKET_WAKEUP_OCCURRED,
+ FrameworkStatsLog.write(FrameworkStatsLog.PACKET_WAKEUP_OCCURRED,
uid, iface, ethertype, dstMac, srcIp, dstIp, ipNextHeader, srcPort, dstPort);
}
diff --git a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
index d66aec576137..3cfe9160494f 100644
--- a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
+++ b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
@@ -483,7 +483,7 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> {
return ConnectivityConstants.EXPLICITLY_SELECTED_NETWORK_SCORE;
}
- int score = mNetworkScore.getIntExtension(NetworkScore.LEGACY_SCORE);
+ int score = mNetworkScore.getLegacyScore();
if (!lastValidated && !pretendValidated && !ignoreWifiUnvalidationPenalty() && !isVPN()) {
score -= ConnectivityConstants.UNVALIDATED_SCORE_PENALTY;
}
diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java
index 423e0212dfd6..cb88c4e8a739 100644
--- a/services/core/java/com/android/server/connectivity/Vpn.java
+++ b/services/core/java/com/android/server/connectivity/Vpn.java
@@ -24,6 +24,8 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING;
import static android.net.RouteInfo.RTN_THROW;
import static android.net.RouteInfo.RTN_UNREACHABLE;
+import static com.android.internal.util.Preconditions.checkNotNull;
+
import android.Manifest;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -47,6 +49,7 @@ import android.content.pm.UserInfo;
import android.net.ConnectivityManager;
import android.net.INetworkManagementEventObserver;
import android.net.IpPrefix;
+import android.net.IpSecManager;
import android.net.LinkAddress;
import android.net.LinkProperties;
import android.net.LocalSocket;
@@ -60,6 +63,7 @@ import android.net.NetworkInfo.DetailedState;
import android.net.NetworkProvider;
import android.net.RouteInfo;
import android.net.UidRange;
+import android.net.VpnManager;
import android.net.VpnService;
import android.os.Binder;
import android.os.Build.VERSION_CODES;
@@ -157,6 +161,16 @@ public class Vpn {
// is actually O(n²)+O(n²).
private static final int MAX_ROUTES_TO_EVALUATE = 150;
+ /**
+ * Largest profile size allowable for Platform VPNs.
+ *
+ * <p>The largest platform VPN profiles use IKEv2 RSA Certificate Authentication and have two
+ * X509Certificates, and one RSAPrivateKey. This should lead to a max size of 2x 12kB for the
+ * certificates, plus a reasonable upper bound on the private key of 32kB. The rest of the
+ * profile is expected to be negligible in size.
+ */
+ @VisibleForTesting static final int MAX_VPN_PROFILE_SIZE_BYTES = 1 << 17; // 128kB
+
// TODO: create separate trackers for each unique VPN to support
// automated reconnection
@@ -167,7 +181,10 @@ public class Vpn {
private boolean mIsPackageTargetingAtLeastQ;
private String mInterface;
private Connection mConnection;
- private LegacyVpnRunner mLegacyVpnRunner;
+
+ /** Tracks the runners for all VPN types managed by the platform (eg. LegacyVpn, PlatformVpn) */
+ private VpnRunner mVpnRunner;
+
private PendingIntent mStatusIntent;
private volatile boolean mEnableTeardown = true;
private final INetworkManagementService mNetd;
@@ -507,8 +524,11 @@ public class Vpn {
}
if (packageName != null) {
- // Pre-authorize new always-on VPN package.
- if (!setPackageAuthorization(packageName, true)) {
+ // TODO: Give the minimum permission possible; if there is a Platform VPN profile, only
+ // grant ACTIVATE_PLATFORM_VPN.
+ // Pre-authorize new always-on VPN package. Grant the full ACTIVATE_VPN appop, allowing
+ // both VpnService and Platform VPNs.
+ if (!setPackageAuthorization(packageName, VpnManager.TYPE_VPN_SERVICE)) {
return false;
}
mAlwaysOn = true;
@@ -656,6 +676,11 @@ public class Vpn {
* It uses {@link VpnConfig#LEGACY_VPN} as its package name, and
* it can be revoked by itself.
*
+ * The permission checks to verify that the VPN has already been granted
+ * user consent are dependent on the type of the VPN being prepared. See
+ * {@link AppOpsManager#OP_ACTIVATE_VPN} and {@link
+ * AppOpsManager#OP_ACTIVATE_PLATFORM_VPN} for more information.
+ *
* Note: when we added VPN pre-consent in
* https://android.googlesource.com/platform/frameworks/base/+/0554260
* the names oldPackage and newPackage became misleading, because when
@@ -674,10 +699,12 @@ public class Vpn {
*
* @param oldPackage The package name of the old VPN application
* @param newPackage The package name of the new VPN application
- *
+ * @param vpnType The type of VPN being prepared. One of {@link VpnManager.VpnType} Preparing a
+ * platform VPN profile requires only the lesser ACTIVATE_PLATFORM_VPN appop.
* @return true if the operation succeeded.
*/
- public synchronized boolean prepare(String oldPackage, String newPackage) {
+ public synchronized boolean prepare(
+ String oldPackage, String newPackage, @VpnManager.VpnType int vpnType) {
if (oldPackage != null) {
// Stop an existing always-on VPN from being dethroned by other apps.
if (mAlwaysOn && !isCurrentPreparedPackage(oldPackage)) {
@@ -688,13 +715,14 @@ public class Vpn {
if (!isCurrentPreparedPackage(oldPackage)) {
// The package doesn't match. We return false (to obtain user consent) unless the
// user has already consented to that VPN package.
- if (!oldPackage.equals(VpnConfig.LEGACY_VPN) && isVpnUserPreConsented(oldPackage)) {
+ if (!oldPackage.equals(VpnConfig.LEGACY_VPN)
+ && isVpnPreConsented(mContext, oldPackage, vpnType)) {
prepareInternal(oldPackage);
return true;
}
return false;
} else if (!oldPackage.equals(VpnConfig.LEGACY_VPN)
- && !isVpnUserPreConsented(oldPackage)) {
+ && !isVpnPreConsented(mContext, oldPackage, vpnType)) {
// Currently prepared VPN is revoked, so unprepare it and return false.
prepareInternal(VpnConfig.LEGACY_VPN);
return false;
@@ -738,7 +766,7 @@ public class Vpn {
mNetworkCapabilities.setUids(null);
}
- // Revoke the connection or stop LegacyVpnRunner.
+ // Revoke the connection or stop the VpnRunner.
if (mConnection != null) {
try {
mConnection.mService.transact(IBinder.LAST_CALL_TRANSACTION,
@@ -748,9 +776,9 @@ public class Vpn {
}
mContext.unbindService(mConnection);
mConnection = null;
- } else if (mLegacyVpnRunner != null) {
- mLegacyVpnRunner.exit();
- mLegacyVpnRunner = null;
+ } else if (mVpnRunner != null) {
+ mVpnRunner.exit();
+ mVpnRunner = null;
}
try {
@@ -777,25 +805,49 @@ public class Vpn {
}
}
- /**
- * Set whether a package has the ability to launch VPNs without user intervention.
- */
- public boolean setPackageAuthorization(String packageName, boolean authorized) {
+ /** Set whether a package has the ability to launch VPNs without user intervention. */
+ public boolean setPackageAuthorization(String packageName, @VpnManager.VpnType int vpnType) {
// Check if the caller is authorized.
enforceControlPermissionOrInternalCaller();
- int uid = getAppUid(packageName, mUserHandle);
+ final int uid = getAppUid(packageName, mUserHandle);
if (uid == -1 || VpnConfig.LEGACY_VPN.equals(packageName)) {
// Authorization for nonexistent packages (or fake ones) can't be updated.
return false;
}
- long token = Binder.clearCallingIdentity();
+ final long token = Binder.clearCallingIdentity();
try {
- AppOpsManager appOps =
+ final int[] toChange;
+
+ // Clear all AppOps if the app is being unauthorized.
+ switch (vpnType) {
+ case VpnManager.TYPE_VPN_NONE:
+ toChange = new int[] {
+ AppOpsManager.OP_ACTIVATE_VPN, AppOpsManager.OP_ACTIVATE_PLATFORM_VPN
+ };
+ break;
+ case VpnManager.TYPE_VPN_PLATFORM:
+ toChange = new int[] {AppOpsManager.OP_ACTIVATE_PLATFORM_VPN};
+ break;
+ case VpnManager.TYPE_VPN_SERVICE:
+ toChange = new int[] {AppOpsManager.OP_ACTIVATE_VPN};
+ break;
+ default:
+ Log.wtf(TAG, "Unrecognized VPN type while granting authorization");
+ return false;
+ }
+
+ final AppOpsManager appOpMgr =
(AppOpsManager) mContext.getSystemService(Context.APP_OPS_SERVICE);
- appOps.setMode(AppOpsManager.OP_ACTIVATE_VPN, uid, packageName,
- authorized ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_IGNORED);
+ for (final int appOp : toChange) {
+ appOpMgr.setMode(
+ appOp,
+ uid,
+ packageName,
+ vpnType == VpnManager.TYPE_VPN_NONE
+ ? AppOpsManager.MODE_IGNORED : AppOpsManager.MODE_ALLOWED);
+ }
return true;
} catch (Exception e) {
Log.wtf(TAG, "Failed to set app ops for package " + packageName + ", uid " + uid, e);
@@ -805,13 +857,33 @@ public class Vpn {
return false;
}
- private boolean isVpnUserPreConsented(String packageName) {
- AppOpsManager appOps =
- (AppOpsManager) mContext.getSystemService(Context.APP_OPS_SERVICE);
+ private static boolean isVpnPreConsented(Context context, String packageName, int vpnType) {
+ switch (vpnType) {
+ case VpnManager.TYPE_VPN_SERVICE:
+ return isVpnServicePreConsented(context, packageName);
+ case VpnManager.TYPE_VPN_PLATFORM:
+ return isVpnProfilePreConsented(context, packageName);
+ default:
+ return false;
+ }
+ }
+
+ private static boolean doesPackageHaveAppop(Context context, String packageName, int appop) {
+ final AppOpsManager appOps =
+ (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
+
+ // Verify that the caller matches the given package and has the required permission.
+ return appOps.noteOpNoThrow(appop, Binder.getCallingUid(), packageName)
+ == AppOpsManager.MODE_ALLOWED;
+ }
- // Verify that the caller matches the given package and has permission to activate VPNs.
- return appOps.noteOpNoThrow(AppOpsManager.OP_ACTIVATE_VPN, Binder.getCallingUid(),
- packageName) == AppOpsManager.MODE_ALLOWED;
+ private static boolean isVpnServicePreConsented(Context context, String packageName) {
+ return doesPackageHaveAppop(context, packageName, AppOpsManager.OP_ACTIVATE_VPN);
+ }
+
+ private static boolean isVpnProfilePreConsented(Context context, String packageName) {
+ return doesPackageHaveAppop(context, packageName, AppOpsManager.OP_ACTIVATE_PLATFORM_VPN)
+ || isVpnServicePreConsented(context, packageName);
}
private int getAppUid(String app, int userHandle) {
@@ -1005,6 +1077,9 @@ public class Vpn {
* Establish a VPN network and return the file descriptor of the VPN interface. This methods
* returns {@code null} if the application is revoked or not prepared.
*
+ * <p>This method supports ONLY VpnService-based VPNs. For Platform VPNs, see {@link
+ * provisionVpnProfile} and {@link startVpnProfile}
+ *
* @param config The parameters to configure the network.
* @return The file descriptor of the VPN interface.
*/
@@ -1015,7 +1090,7 @@ public class Vpn {
return null;
}
// Check to ensure consent hasn't been revoked since we were prepared.
- if (!isVpnUserPreConsented(mPackage)) {
+ if (!isVpnServicePreConsented(mContext, mPackage)) {
return null;
}
// Check if the service is properly declared.
@@ -1439,8 +1514,8 @@ public class Vpn {
@Override
public void interfaceStatusChanged(String interfaze, boolean up) {
synchronized (Vpn.this) {
- if (!up && mLegacyVpnRunner != null) {
- mLegacyVpnRunner.check(interfaze);
+ if (!up && mVpnRunner != null && mVpnRunner instanceof LegacyVpnRunner) {
+ ((LegacyVpnRunner) mVpnRunner).exitIfOuterInterfaceIs(interfaze);
}
}
}
@@ -1457,9 +1532,10 @@ public class Vpn {
mContext.unbindService(mConnection);
mConnection = null;
agentDisconnect();
- } else if (mLegacyVpnRunner != null) {
- mLegacyVpnRunner.exit();
- mLegacyVpnRunner = null;
+ } else if (mVpnRunner != null) {
+ // agentDisconnect must be called from mVpnRunner.exit()
+ mVpnRunner.exit();
+ mVpnRunner = null;
}
}
}
@@ -1680,6 +1756,10 @@ public class Vpn {
public int settingsSecureGetIntForUser(String key, int def, int userId) {
return Settings.Secure.getIntForUser(mContext.getContentResolver(), key, def, userId);
}
+
+ public boolean isCallerSystem() {
+ return Binder.getCallingUid() == Process.SYSTEM_UID;
+ }
}
private native int jniCreate(int mtu);
@@ -1838,23 +1918,40 @@ public class Vpn {
private synchronized void startLegacyVpn(VpnConfig config, String[] racoon, String[] mtpd,
VpnProfile profile) {
- stopLegacyVpnPrivileged();
+ stopVpnRunnerPrivileged();
// Prepare for the new request.
prepareInternal(VpnConfig.LEGACY_VPN);
updateState(DetailedState.CONNECTING, "startLegacyVpn");
// Start a new LegacyVpnRunner and we are done!
- mLegacyVpnRunner = new LegacyVpnRunner(config, racoon, mtpd, profile);
- mLegacyVpnRunner.start();
+ mVpnRunner = new LegacyVpnRunner(config, racoon, mtpd, profile);
+ mVpnRunner.start();
+ }
+
+ /**
+ * Checks if this the currently running VPN (if any) was started by the Settings app
+ *
+ * <p>This includes both Legacy VPNs and Platform VPNs.
+ */
+ private boolean isSettingsVpnLocked() {
+ return mVpnRunner != null && VpnConfig.LEGACY_VPN.equals(mPackage);
}
- /** Stop legacy VPN. Permissions must be checked by callers. */
- public synchronized void stopLegacyVpnPrivileged() {
- if (mLegacyVpnRunner != null) {
- mLegacyVpnRunner.exit();
- mLegacyVpnRunner = null;
+ /** Stop VPN runner. Permissions must be checked by callers. */
+ public synchronized void stopVpnRunnerPrivileged() {
+ if (!isSettingsVpnLocked()) {
+ return;
+ }
+
+ final boolean isLegacyVpn = mVpnRunner instanceof LegacyVpnRunner;
+
+ mVpnRunner.exit();
+ mVpnRunner = null;
+ // LegacyVpn uses daemons that must be shut down before new ones are brought up.
+ // The same limitation does not apply to Platform VPNs.
+ if (isLegacyVpn) {
synchronized (LegacyVpnRunner.TAG) {
// wait for old thread to completely finish before spinning up
// new instance, otherwise state updates can be out of order.
@@ -1876,7 +1973,7 @@ public class Vpn {
* Callers are responsible for checking permissions if needed.
*/
private synchronized LegacyVpnInfo getLegacyVpnInfoPrivileged() {
- if (mLegacyVpnRunner == null) return null;
+ if (!isSettingsVpnLocked()) return null;
final LegacyVpnInfo info = new LegacyVpnInfo();
info.key = mConfig.user;
@@ -1887,14 +1984,53 @@ public class Vpn {
return info;
}
- public VpnConfig getLegacyVpnConfig() {
- if (mLegacyVpnRunner != null) {
+ public synchronized VpnConfig getLegacyVpnConfig() {
+ if (isSettingsVpnLocked()) {
return mConfig;
} else {
return null;
}
}
+ /** This class represents the common interface for all VPN runners. */
+ private abstract class VpnRunner extends Thread {
+
+ protected VpnRunner(String name) {
+ super(name);
+ }
+
+ public abstract void run();
+
+ protected abstract void exit();
+ }
+
+ private class IkeV2VpnRunner extends VpnRunner {
+ private static final String TAG = "IkeV2VpnRunner";
+
+ private final IpSecManager mIpSecManager;
+ private final VpnProfile mProfile;
+
+ IkeV2VpnRunner(VpnProfile profile) {
+ super(TAG);
+ mProfile = profile;
+
+ // TODO: move this to startVpnRunnerPrivileged()
+ mConfig = new VpnConfig();
+ mIpSecManager = mContext.getSystemService(IpSecManager.class);
+ }
+
+ @Override
+ public void run() {
+ // TODO: Build IKE config, start IKE session
+ }
+
+ @Override
+ public void exit() {
+ // TODO: Teardown IKE session & any resources.
+ agentDisconnect();
+ }
+ }
+
/**
* Bringing up a VPN connection takes time, and that is all this thread
* does. Here we have plenty of time. The only thing we need to take
@@ -1902,7 +2038,7 @@ public class Vpn {
* requests will pile up. This could be done in a Handler as a state
* machine, but it is much easier to read in the current form.
*/
- private class LegacyVpnRunner extends Thread {
+ private class LegacyVpnRunner extends VpnRunner {
private static final String TAG = "LegacyVpnRunner";
private final String[] mDaemons;
@@ -1972,13 +2108,21 @@ public class Vpn {
mContext.registerReceiver(mBroadcastReceiver, filter);
}
- public void check(String interfaze) {
+ /**
+ * Checks if the parameter matches the underlying interface
+ *
+ * <p>If the underlying interface is torn down, the LegacyVpnRunner also should be. It has
+ * no ability to migrate between interfaces (or Networks).
+ */
+ public void exitIfOuterInterfaceIs(String interfaze) {
if (interfaze.equals(mOuterInterface)) {
Log.i(TAG, "Legacy VPN is going down with " + interfaze);
exit();
}
}
+ /** Tears down this LegacyVpn connection */
+ @Override
public void exit() {
// We assume that everything is reset after stopping the daemons.
interrupt();
@@ -2228,4 +2372,148 @@ public class Vpn {
}
}
}
+
+ private void verifyCallingUidAndPackage(String packageName) {
+ if (getAppUid(packageName, mUserHandle) != Binder.getCallingUid()) {
+ throw new SecurityException("Mismatched package and UID");
+ }
+ }
+
+ @VisibleForTesting
+ String getProfileNameForPackage(String packageName) {
+ return Credentials.PLATFORM_VPN + mUserHandle + "_" + packageName;
+ }
+
+ /**
+ * Stores an app-provisioned VPN profile and returns whether the app is already prepared.
+ *
+ * @param packageName the package name of the app provisioning this profile
+ * @param profile the profile to be stored and provisioned
+ * @param keyStore the System keystore instance to save VPN profiles
+ * @returns whether or not the app has already been granted user consent
+ */
+ public synchronized boolean provisionVpnProfile(
+ @NonNull String packageName, @NonNull VpnProfile profile, @NonNull KeyStore keyStore) {
+ checkNotNull(packageName, "No package name provided");
+ checkNotNull(profile, "No profile provided");
+ checkNotNull(keyStore, "KeyStore missing");
+
+ verifyCallingUidAndPackage(packageName);
+
+ final byte[] encodedProfile = profile.encode();
+ if (encodedProfile.length > MAX_VPN_PROFILE_SIZE_BYTES) {
+ throw new IllegalArgumentException("Profile too big");
+ }
+
+ // Permissions checked during startVpnProfile()
+ Binder.withCleanCallingIdentity(
+ () -> {
+ keyStore.put(
+ getProfileNameForPackage(packageName),
+ encodedProfile,
+ Process.SYSTEM_UID,
+ 0 /* flags */);
+ });
+
+ // TODO: if package has CONTROL_VPN, grant the ACTIVATE_PLATFORM_VPN appop.
+ // This mirrors the prepareAndAuthorize that is used by VpnService.
+
+ // Return whether the app is already pre-consented
+ return isVpnProfilePreConsented(mContext, packageName);
+ }
+
+ /**
+ * Deletes an app-provisioned VPN profile.
+ *
+ * @param packageName the package name of the app provisioning this profile
+ * @param keyStore the System keystore instance to save VPN profiles
+ */
+ public synchronized void deleteVpnProfile(
+ @NonNull String packageName, @NonNull KeyStore keyStore) {
+ checkNotNull(packageName, "No package name provided");
+ checkNotNull(keyStore, "KeyStore missing");
+
+ verifyCallingUidAndPackage(packageName);
+
+ Binder.withCleanCallingIdentity(
+ () -> {
+ keyStore.delete(getProfileNameForPackage(packageName), Process.SYSTEM_UID);
+ });
+ }
+
+ /**
+ * Retrieves the VpnProfile.
+ *
+ * <p>Must be used only as SYSTEM_UID, otherwise the key/UID pair will not match anything in the
+ * keystore.
+ */
+ @VisibleForTesting
+ @Nullable
+ VpnProfile getVpnProfilePrivileged(@NonNull String packageName, @NonNull KeyStore keyStore) {
+ if (!mSystemServices.isCallerSystem()) {
+ Log.wtf(TAG, "getVpnProfilePrivileged called as non-System UID ");
+ return null;
+ }
+
+ final byte[] encoded = keyStore.get(getProfileNameForPackage(packageName));
+ if (encoded == null) return null;
+
+ return VpnProfile.decode("" /* Key unused */, encoded);
+ }
+
+ /**
+ * Starts an already provisioned VPN Profile, keyed by package name.
+ *
+ * <p>This method is meant to be called by apps (via VpnManager and ConnectivityService).
+ * Privileged (system) callers should use startVpnProfilePrivileged instead. Otherwise the UIDs
+ * will not match during appop checks.
+ *
+ * @param packageName the package name of the app provisioning this profile
+ * @param keyStore the System keystore instance to retrieve VPN profiles
+ */
+ public synchronized void startVpnProfile(
+ @NonNull String packageName, @NonNull KeyStore keyStore) {
+ checkNotNull(packageName, "No package name provided");
+ checkNotNull(keyStore, "KeyStore missing");
+
+ // Prepare VPN for startup
+ if (!prepare(packageName, null /* newPackage */, VpnManager.TYPE_VPN_PLATFORM)) {
+ throw new SecurityException("User consent not granted for package " + packageName);
+ }
+
+ Binder.withCleanCallingIdentity(
+ () -> {
+ final VpnProfile profile = getVpnProfilePrivileged(packageName, keyStore);
+ if (profile == null) {
+ throw new IllegalArgumentException("No profile found for " + packageName);
+ }
+
+ startVpnProfilePrivileged(profile);
+ });
+ }
+
+ private void startVpnProfilePrivileged(@NonNull VpnProfile profile) {
+ // TODO: Start PlatformVpnRunner
+ }
+
+ /**
+ * Stops an already running VPN Profile for the given package.
+ *
+ * <p>This method is meant to be called by apps (via VpnManager and ConnectivityService).
+ * Privileged (system) callers should (re-)prepare the LEGACY_VPN instead.
+ *
+ * @param packageName the package name of the app provisioning this profile
+ */
+ public synchronized void stopVpnProfile(@NonNull String packageName) {
+ checkNotNull(packageName, "No package name provided");
+
+ // To stop the VPN profile, the caller must be the current prepared package. Otherwise,
+ // the app is not prepared, and we can just return.
+ if (!isCurrentPreparedPackage(packageName)) {
+ // TODO: Also check to make sure that the running VPN is a VPN profile.
+ return;
+ }
+
+ prepareInternal(VpnConfig.LEGACY_VPN);
+ }
}
diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java
index 4ddc391bd889..6d130d91f639 100644
--- a/services/core/java/com/android/server/content/SyncManager.java
+++ b/services/core/java/com/android/server/content/SyncManager.java
@@ -212,8 +212,11 @@ public class SyncManager {
private static final int SYNC_OP_STATE_VALID = 0;
- private static final int SYNC_OP_STATE_INVALID = 1;
+ // "1" used to include errors 3, 4 and 5 but now it's split up.
private static final int SYNC_OP_STATE_INVALID_NO_ACCOUNT_ACCESS = 2;
+ private static final int SYNC_OP_STATE_INVALID_NO_ACCOUNT = 3;
+ private static final int SYNC_OP_STATE_INVALID_NOT_SYNCABLE = 4;
+ private static final int SYNC_OP_STATE_INVALID_SYNC_DISABLED = 5;
/** Flags used when connecting to a sync adapter service */
private static final int SYNC_ADAPTER_CONNECTION_FLAGS = Context.BIND_AUTO_CREATE
@@ -3206,12 +3209,10 @@ public class SyncManager {
}
final int syncOpState = computeSyncOpState(op);
- switch (syncOpState) {
- case SYNC_OP_STATE_INVALID_NO_ACCOUNT_ACCESS:
- case SYNC_OP_STATE_INVALID: {
- SyncJobService.callJobFinished(op.jobId, false,
- "invalid op state: " + syncOpState);
- } return;
+ if (syncOpState != SYNC_OP_STATE_VALID) {
+ SyncJobService.callJobFinished(op.jobId, false,
+ "invalid op state: " + syncOpState);
+ return;
}
if (!dispatchSyncOperation(op)) {
@@ -3354,27 +3355,27 @@ public class SyncManager {
pollFrequencyMillis, flexMillis, ContentResolver.SYNC_EXEMPTION_NONE);
final int syncOpState = computeSyncOpState(op);
- switch (syncOpState) {
- case SYNC_OP_STATE_INVALID_NO_ACCOUNT_ACCESS: {
- String packageName = op.owningPackage;
- final int userId = UserHandle.getUserId(op.owningUid);
- // If the app did not run and has no account access, done
- if (!wasPackageEverLaunched(packageName, userId)) {
- return;
- }
- mAccountManagerInternal.requestAccountAccess(op.target.account,
- packageName, userId, new RemoteCallback((Bundle result) -> {
- if (result != null
- && result.getBoolean(AccountManager.KEY_BOOLEAN_RESULT)) {
- updateOrAddPeriodicSync(target, pollFrequency, flex, extras);
- }
- }
- ));
- } return;
-
- case SYNC_OP_STATE_INVALID: {
+ if (syncOpState == SYNC_OP_STATE_INVALID_NO_ACCOUNT_ACCESS) {
+ String packageName = op.owningPackage;
+ final int userId = UserHandle.getUserId(op.owningUid);
+ // If the app did not run and has no account access, done
+ if (!wasPackageEverLaunched(packageName, userId)) {
return;
}
+ mLogger.log("requestAccountAccess for SYNC_OP_STATE_INVALID_NO_ACCOUNT_ACCESS");
+ mAccountManagerInternal.requestAccountAccess(op.target.account,
+ packageName, userId, new RemoteCallback((Bundle result) -> {
+ if (result != null
+ && result.getBoolean(AccountManager.KEY_BOOLEAN_RESULT)) {
+ updateOrAddPeriodicSync(target, pollFrequency, flex, extras);
+ }
+ }
+ ));
+ return;
+ }
+ if (syncOpState != SYNC_OP_STATE_VALID) {
+ mLogger.log("syncOpState=", syncOpState);
+ return;
}
scheduleSyncOperationH(op);
@@ -3452,7 +3453,7 @@ public class SyncManager {
Slog.v(TAG, " Dropping sync operation: account doesn't exist.");
}
Slog.wtf(TAG, "SYNC_OP_STATE_INVALID: account doesn't exist.");
- return SYNC_OP_STATE_INVALID;
+ return SYNC_OP_STATE_INVALID_NO_ACCOUNT;
}
// Drop this sync request if it isn't syncable.
state = computeSyncable(target.account, target.userId, target.provider, true);
@@ -3469,7 +3470,7 @@ public class SyncManager {
Slog.v(TAG, " Dropping sync operation: isSyncable == NOT_SYNCABLE");
}
Slog.wtf(TAG, "SYNC_OP_STATE_INVALID: NOT_SYNCABLE");
- return SYNC_OP_STATE_INVALID;
+ return SYNC_OP_STATE_INVALID_NOT_SYNCABLE;
}
final boolean syncEnabled = mSyncStorageEngine.getMasterSyncAutomatically(target.userId)
@@ -3488,7 +3489,7 @@ public class SyncManager {
Slog.v(TAG, " Dropping sync operation: disallowed by settings/network.");
}
Slog.wtf(TAG, "SYNC_OP_STATE_INVALID: disallowed by settings/network");
- return SYNC_OP_STATE_INVALID;
+ return SYNC_OP_STATE_INVALID_SYNC_DISABLED;
}
return SYNC_OP_STATE_VALID;
}
diff --git a/services/core/java/com/android/server/display/DisplayAdapter.java b/services/core/java/com/android/server/display/DisplayAdapter.java
index 6ba25a53248d..838dc84d4a0a 100644
--- a/services/core/java/com/android/server/display/DisplayAdapter.java
+++ b/services/core/java/com/android/server/display/DisplayAdapter.java
@@ -109,24 +109,14 @@ abstract class DisplayAdapter {
*/
protected final void sendDisplayDeviceEventLocked(
final DisplayDevice device, final int event) {
- mHandler.post(new Runnable() {
- @Override
- public void run() {
- mListener.onDisplayDeviceEvent(device, event);
- }
- });
+ mHandler.post(() -> mListener.onDisplayDeviceEvent(device, event));
}
/**
* Sends a request to perform traversals.
*/
protected final void sendTraversalRequestLocked() {
- mHandler.post(new Runnable() {
- @Override
- public void run() {
- mListener.onTraversalRequested();
- }
- });
+ mHandler.post(() -> mListener.onTraversalRequested());
}
public static Display.Mode createMode(int width, int height, float refreshRate) {
@@ -135,7 +125,7 @@ abstract class DisplayAdapter {
}
public interface Listener {
- public void onDisplayDeviceEvent(DisplayDevice device, int event);
- public void onTraversalRequested();
+ void onDisplayDeviceEvent(DisplayDevice device, int event);
+ void onTraversalRequested();
}
}
diff --git a/services/core/java/com/android/server/display/DisplayModeDirector.java b/services/core/java/com/android/server/display/DisplayModeDirector.java
index decb1f9bbcf7..96532f4a21ac 100644
--- a/services/core/java/com/android/server/display/DisplayModeDirector.java
+++ b/services/core/java/com/android/server/display/DisplayModeDirector.java
@@ -1050,6 +1050,7 @@ public class DisplayModeDirector {
public void dumpLocked(PrintWriter pw) {
pw.println(" BrightnessObserver");
+ pw.println(" mAmbientLux: " + mAmbientLux);
pw.println(" mRefreshRateInZone: " + mRefreshRateInZone);
for (int d: mDisplayBrightnessThresholds) {
@@ -1059,6 +1060,8 @@ public class DisplayModeDirector {
for (int d: mAmbientBrightnessThresholds) {
pw.println(" mAmbientBrightnessThreshold: " + d);
}
+
+ mLightSensorListener.dumpLocked(pw);
}
public void onDisplayChanged(int displayId) {
@@ -1222,6 +1225,10 @@ public class DisplayModeDirector {
final private static int INJECT_EVENTS_INTERVAL_MS = LIGHT_SENSOR_RATE_MS;
private float mLastSensorData;
+ public void dumpLocked(PrintWriter pw) {
+ pw.println(" mLastSensorData: " + mLastSensorData);
+ }
+
@Override
public void onSensorChanged(SensorEvent event) {
mLastSensorData = event.values[0];
diff --git a/services/core/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
index 7e8fe3ae8428..fc9542a33a78 100644
--- a/services/core/java/com/android/server/display/LocalDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
@@ -49,6 +49,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
/**
* A display adapter for the local displays managed by Surface Flinger.
@@ -64,8 +65,9 @@ final class LocalDisplayAdapter extends DisplayAdapter {
private static final String PROPERTY_EMULATOR_CIRCULAR = "ro.emulator.circular";
- private final LongSparseArray<LocalDisplayDevice> mDevices =
- new LongSparseArray<LocalDisplayDevice>();
+ private static final int NO_DISPLAY_MODE_ID = 0;
+
+ private final LongSparseArray<LocalDisplayDevice> mDevices = new LongSparseArray<>();
@SuppressWarnings("unused") // Becomes active at instantiation time.
private PhysicalDisplayEventReceiver mPhysicalDisplayEventReceiver;
@@ -91,8 +93,12 @@ final class LocalDisplayAdapter extends DisplayAdapter {
private void tryConnectDisplayLocked(long physicalDisplayId) {
final IBinder displayToken = SurfaceControl.getPhysicalDisplayToken(physicalDisplayId);
if (displayToken != null) {
- SurfaceControl.PhysicalDisplayInfo[] configs =
- SurfaceControl.getDisplayConfigs(displayToken);
+ SurfaceControl.DisplayInfo info = SurfaceControl.getDisplayInfo(displayToken);
+ if (info == null) {
+ Slog.w(TAG, "No valid info found for display device " + physicalDisplayId);
+ return;
+ }
+ SurfaceControl.DisplayConfig[] configs = SurfaceControl.getDisplayConfigs(displayToken);
if (configs == null) {
// There are no valid configs for this device, so we can't use it
Slog.w(TAG, "No valid configs found for display device " + physicalDisplayId);
@@ -114,21 +120,22 @@ final class LocalDisplayAdapter extends DisplayAdapter {
physicalDisplayId);
activeColorMode = Display.COLOR_MODE_INVALID;
}
- int[] colorModes = SurfaceControl.getDisplayColorModes(displayToken);
- SurfaceControl.DesiredDisplayConfigSpecs desiredDisplayConfigSpecs =
+ SurfaceControl.DesiredDisplayConfigSpecs configSpecs =
SurfaceControl.getDesiredDisplayConfigSpecs(displayToken);
+ int[] colorModes = SurfaceControl.getDisplayColorModes(displayToken);
+ Display.HdrCapabilities hdrCapabilities =
+ SurfaceControl.getHdrCapabilities(displayToken);
LocalDisplayDevice device = mDevices.get(physicalDisplayId);
if (device == null) {
// Display was added.
final boolean isInternal = mDevices.size() == 0;
- device = new LocalDisplayDevice(displayToken, physicalDisplayId, configs,
- activeConfig, desiredDisplayConfigSpecs, colorModes, activeColorMode,
- isInternal);
+ device = new LocalDisplayDevice(displayToken, physicalDisplayId, info,
+ configs, activeConfig, configSpecs, colorModes, activeColorMode,
+ hdrCapabilities, isInternal);
mDevices.put(physicalDisplayId, device);
sendDisplayDeviceEventLocked(device, DISPLAY_DEVICE_EVENT_ADDED);
- } else if (device.updatePhysicalDisplayInfoLocked(configs, activeConfig,
- desiredDisplayConfigSpecs, colorModes, activeColorMode)) {
- // Display properties changed.
+ } else if (device.updateDisplayProperties(configs, activeConfig,
+ configSpecs, colorModes, activeColorMode, hdrCapabilities)) {
sendDisplayDeviceEventLocked(device, DISPLAY_DEVICE_EVENT_CHANGED);
}
} else {
@@ -179,7 +186,7 @@ final class LocalDisplayAdapter extends DisplayAdapter {
private DisplayModeDirector.DesiredDisplayModeSpecs mDisplayModeSpecs =
new DisplayModeDirector.DesiredDisplayModeSpecs();
private boolean mDisplayModeSpecsInvalid;
- private int mActivePhysIndex;
+ private int mActiveConfigId;
private int mActiveColorMode;
private boolean mActiveColorModeInvalid;
private Display.HdrCapabilities mHdrCapabilities;
@@ -189,21 +196,23 @@ final class LocalDisplayAdapter extends DisplayAdapter {
private boolean mGameContentTypeRequested;
private boolean mSidekickActive;
private SidekickInternal mSidekickInternal;
- private SurfaceControl.PhysicalDisplayInfo[] mDisplayInfos;
+ private SurfaceControl.DisplayInfo mDisplayInfo;
+ private SurfaceControl.DisplayConfig[] mDisplayConfigs;
private Spline mSystemBrightnessToNits;
private Spline mNitsToHalBrightness;
private boolean mHalBrightnessSupport;
LocalDisplayDevice(IBinder displayToken, long physicalDisplayId,
- SurfaceControl.PhysicalDisplayInfo[] physicalDisplayInfos, int activeDisplayInfo,
- SurfaceControl.DesiredDisplayConfigSpecs physicalDisplayConfigSpecs,
- int[] colorModes, int activeColorMode, boolean isInternal) {
+ SurfaceControl.DisplayInfo info, SurfaceControl.DisplayConfig[] configs,
+ int activeConfigId, SurfaceControl.DesiredDisplayConfigSpecs configSpecs,
+ int[] colorModes, int activeColorMode, Display.HdrCapabilities hdrCapabilities,
+ boolean isInternal) {
super(LocalDisplayAdapter.this, displayToken, UNIQUE_ID_PREFIX + physicalDisplayId);
mPhysicalDisplayId = physicalDisplayId;
mIsInternal = isInternal;
- updatePhysicalDisplayInfoLocked(physicalDisplayInfos, activeDisplayInfo,
- physicalDisplayConfigSpecs, colorModes, activeColorMode);
- updateColorModesLocked(colorModes, activeColorMode);
+ mDisplayInfo = info;
+ updateDisplayProperties(configs, activeConfigId, configSpecs, colorModes,
+ activeColorMode, hdrCapabilities);
mSidekickInternal = LocalServices.getService(SidekickInternal.class);
if (mIsInternal) {
LightsManager lights = LocalServices.getService(LightsManager.class);
@@ -211,7 +220,6 @@ final class LocalDisplayAdapter extends DisplayAdapter {
} else {
mBacklight = null;
}
- mHdrCapabilities = SurfaceControl.getHdrCapabilities(displayToken);
mAllmSupported = SurfaceControl.getAutoLowLatencyModeSupport(displayToken);
mGameContentTypeSupported = SurfaceControl.getGameContentTypeSupport(displayToken);
mHalBrightnessSupport = SurfaceControl.getDisplayBrightnessSupport(displayToken);
@@ -226,23 +234,34 @@ final class LocalDisplayAdapter extends DisplayAdapter {
return true;
}
- public boolean updatePhysicalDisplayInfoLocked(
- SurfaceControl.PhysicalDisplayInfo[] physicalDisplayInfos, int activeDisplayInfo,
- SurfaceControl.DesiredDisplayConfigSpecs physicalDisplayConfigSpecs,
- int[] colorModes, int activeColorMode) {
- mDisplayInfos = Arrays.copyOf(physicalDisplayInfos, physicalDisplayInfos.length);
- mActivePhysIndex = activeDisplayInfo;
+ /**
+ * Returns true if there is a change.
+ **/
+ public boolean updateDisplayProperties(SurfaceControl.DisplayConfig[] configs,
+ int activeConfigId, SurfaceControl.DesiredDisplayConfigSpecs configSpecs,
+ int[] colorModes, int activeColorMode, Display.HdrCapabilities hdrCapabilities) {
+ boolean changed = updateDisplayConfigsLocked(configs, activeConfigId, configSpecs);
+ changed |= updateColorModesLocked(colorModes, activeColorMode);
+ changed |= updateHdrCapabilitiesLocked(hdrCapabilities);
+ return changed;
+ }
+
+ public boolean updateDisplayConfigsLocked(
+ SurfaceControl.DisplayConfig[] configs, int activeConfigId,
+ SurfaceControl.DesiredDisplayConfigSpecs configSpecs) {
+ mDisplayConfigs = Arrays.copyOf(configs, configs.length);
+ mActiveConfigId = activeConfigId;
// Build an updated list of all existing modes.
- ArrayList<DisplayModeRecord> records = new ArrayList<DisplayModeRecord>();
+ ArrayList<DisplayModeRecord> records = new ArrayList<>();
boolean modesAdded = false;
- for (int i = 0; i < physicalDisplayInfos.length; i++) {
- SurfaceControl.PhysicalDisplayInfo info = physicalDisplayInfos[i];
+ for (int i = 0; i < configs.length; i++) {
+ SurfaceControl.DisplayConfig config = configs[i];
// First, check to see if we've already added a matching mode. Since not all
// configuration options are exposed via Display.Mode, it's possible that we have
- // multiple PhysicalDisplayInfos that would generate the same Display.Mode.
+ // multiple DisplayConfigs that would generate the same Display.Mode.
boolean existingMode = false;
for (int j = 0; j < records.size(); j++) {
- if (records.get(j).hasMatchingMode(info)) {
+ if (records.get(j).hasMatchingMode(config)) {
existingMode = true;
break;
}
@@ -253,9 +272,9 @@ final class LocalDisplayAdapter extends DisplayAdapter {
// If we haven't already added a mode for this configuration to the new set of
// supported modes then check to see if we have one in the prior set of supported
// modes to reuse.
- DisplayModeRecord record = findDisplayModeRecord(info);
+ DisplayModeRecord record = findDisplayModeRecord(config);
if (record == null) {
- record = new DisplayModeRecord(info);
+ record = new DisplayModeRecord(config);
modesAdded = true;
}
records.add(record);
@@ -265,7 +284,7 @@ final class LocalDisplayAdapter extends DisplayAdapter {
DisplayModeRecord activeRecord = null;
for (int i = 0; i < records.size(); i++) {
DisplayModeRecord record = records.get(i);
- if (record.hasMatchingMode(physicalDisplayInfos[activeDisplayInfo])){
+ if (record.hasMatchingMode(configs[activeConfigId])) {
activeRecord = record;
break;
}
@@ -273,7 +292,7 @@ final class LocalDisplayAdapter extends DisplayAdapter {
// Check whether surface flinger spontaneously changed modes out from under us.
// Schedule traversals to ensure that the correct state is reapplied if necessary.
- if (mActiveModeId != 0
+ if (mActiveModeId != NO_DISPLAY_MODE_ID
&& mActiveModeId != activeRecord.mMode.getModeId()) {
mActiveModeInvalid = true;
sendTraversalRequestLocked();
@@ -281,18 +300,16 @@ final class LocalDisplayAdapter extends DisplayAdapter {
// Check whether surface flinger spontaneously changed display config specs out from
// under us. If so, schedule a traversal to reapply our display config specs.
- if (mDisplayModeSpecs.baseModeId != 0) {
- int activeBaseMode =
- findMatchingModeIdLocked(physicalDisplayConfigSpecs.defaultConfig);
+ if (mDisplayModeSpecs.baseModeId != NO_DISPLAY_MODE_ID) {
+ int activeBaseMode = findMatchingModeIdLocked(configSpecs.defaultConfig);
// If we can't map the defaultConfig index to a mode, then the physical display
// configs must have changed, and the code below for handling changes to the
// list of available modes will take care of updating display config specs.
- if (activeBaseMode != 0) {
+ if (activeBaseMode != NO_DISPLAY_MODE_ID) {
if (mDisplayModeSpecs.baseModeId != activeBaseMode
- || mDisplayModeSpecs.refreshRateRange.min
- != physicalDisplayConfigSpecs.minRefreshRate
+ || mDisplayModeSpecs.refreshRateRange.min != configSpecs.minRefreshRate
|| mDisplayModeSpecs.refreshRateRange.max
- != physicalDisplayConfigSpecs.maxRefreshRate) {
+ != configSpecs.maxRefreshRate) {
mDisplayModeSpecsInvalid = true;
sendTraversalRequestLocked();
}
@@ -312,18 +329,23 @@ final class LocalDisplayAdapter extends DisplayAdapter {
mSupportedModes.put(record.mMode.getModeId(), record);
}
- // Update the default mode, if needed.
- if (findDisplayInfoIndexLocked(mDefaultModeId) < 0) {
- if (mDefaultModeId != 0) {
- Slog.w(TAG, "Default display mode no longer available, using currently"
- + " active mode as default.");
- }
+ // For a new display, we need to initialize the default mode ID.
+ if (mDefaultModeId == NO_DISPLAY_MODE_ID) {
+ mDefaultModeId = activeRecord.mMode.getModeId();
+ } else if (modesAdded && mActiveModeId != activeRecord.mMode.getModeId()) {
+ Slog.d(TAG, "New display modes are added and the active mode has changed, "
+ + "use active mode as default mode.");
+ mActiveModeId = activeRecord.mMode.getModeId();
+ mDefaultModeId = activeRecord.mMode.getModeId();
+ } else if (findDisplayConfigIdLocked(mDefaultModeId) < 0) {
+ Slog.w(TAG, "Default display mode no longer available, using currently"
+ + " active mode as default.");
mDefaultModeId = activeRecord.mMode.getModeId();
}
// Determine whether the display mode specs' base mode is still there.
if (mSupportedModes.indexOfKey(mDisplayModeSpecs.baseModeId) < 0) {
- if (mDisplayModeSpecs.baseModeId != 0) {
+ if (mDisplayModeSpecs.baseModeId != NO_DISPLAY_MODE_ID) {
Slog.w(TAG,
"DisplayModeSpecs base mode no longer available, using currently"
+ " active mode.");
@@ -334,7 +356,7 @@ final class LocalDisplayAdapter extends DisplayAdapter {
// Determine whether the active mode is still there.
if (mSupportedModes.indexOfKey(mActiveModeId) < 0) {
- if (mActiveModeId != 0) {
+ if (mActiveModeId != NO_DISPLAY_MODE_ID) {
Slog.w(TAG, "Active display mode no longer available, reverting to default"
+ " mode.");
}
@@ -382,14 +404,15 @@ final class LocalDisplayAdapter extends DisplayAdapter {
mSystemBrightnessToNits = sysToNits;
}
- private boolean updateColorModesLocked(int[] colorModes,
- int activeColorMode) {
- List<Integer> pendingColorModes = new ArrayList<>();
+ private boolean updateColorModesLocked(int[] colorModes, int activeColorMode) {
+ if (colorModes == null) {
+ return false;
+ }
- if (colorModes == null) return false;
+ List<Integer> pendingColorModes = new ArrayList<>();
// Build an updated list of all existing color modes.
boolean colorModesAdded = false;
- for (int colorMode: colorModes) {
+ for (int colorMode : colorModes) {
if (!mSupportedColorModes.contains(colorMode)) {
colorModesAdded = true;
}
@@ -434,10 +457,19 @@ final class LocalDisplayAdapter extends DisplayAdapter {
return true;
}
- private DisplayModeRecord findDisplayModeRecord(SurfaceControl.PhysicalDisplayInfo info) {
+ private boolean updateHdrCapabilitiesLocked(Display.HdrCapabilities newHdrCapabilities) {
+ // If the HDR capabilities haven't changed, then we're done here.
+ if (Objects.equals(mHdrCapabilities, newHdrCapabilities)) {
+ return false;
+ }
+ mHdrCapabilities = newHdrCapabilities;
+ return true;
+ }
+
+ private DisplayModeRecord findDisplayModeRecord(SurfaceControl.DisplayConfig config) {
for (int i = 0; i < mSupportedModes.size(); i++) {
DisplayModeRecord record = mSupportedModes.valueAt(i);
- if (record.hasMatchingMode(info)) {
+ if (record.hasMatchingMode(config)) {
return record;
}
}
@@ -455,10 +487,10 @@ final class LocalDisplayAdapter extends DisplayAdapter {
@Override
public DisplayDeviceInfo getDisplayDeviceInfoLocked() {
if (mInfo == null) {
- SurfaceControl.PhysicalDisplayInfo phys = mDisplayInfos[mActivePhysIndex];
+ SurfaceControl.DisplayConfig config = mDisplayConfigs[mActiveConfigId];
mInfo = new DisplayDeviceInfo();
- mInfo.width = phys.width;
- mInfo.height = phys.height;
+ mInfo.width = config.width;
+ mInfo.height = config.height;
mInfo.modeId = mActiveModeId;
mInfo.defaultModeId = mDefaultModeId;
mInfo.supportedModes = getDisplayModes(mSupportedModes);
@@ -471,20 +503,20 @@ final class LocalDisplayAdapter extends DisplayAdapter {
mInfo.supportedColorModes[i] = mSupportedColorModes.get(i);
}
mInfo.hdrCapabilities = mHdrCapabilities;
- mInfo.appVsyncOffsetNanos = phys.appVsyncOffsetNanos;
- mInfo.presentationDeadlineNanos = phys.presentationDeadlineNanos;
+ mInfo.appVsyncOffsetNanos = config.appVsyncOffsetNanos;
+ mInfo.presentationDeadlineNanos = config.presentationDeadlineNanos;
mInfo.state = mState;
mInfo.uniqueId = getUniqueId();
final DisplayAddress.Physical physicalAddress =
DisplayAddress.fromPhysicalDisplayId(mPhysicalDisplayId);
mInfo.address = physicalAddress;
- mInfo.densityDpi = (int) (phys.density * 160 + 0.5f);
- mInfo.xDpi = phys.xDpi;
- mInfo.yDpi = phys.yDpi;
+ mInfo.densityDpi = (int) (mDisplayInfo.density * 160 + 0.5f);
+ mInfo.xDpi = config.xDpi;
+ mInfo.yDpi = config.yDpi;
// Assume that all built-in displays that have secure output (eg. HDCP) also
// support compositing from gralloc protected buffers.
- if (phys.secure) {
+ if (mDisplayInfo.secure) {
mInfo.flags = DisplayDeviceInfo.FLAG_SECURE
| DisplayDeviceInfo.FLAG_SUPPORTS_PROTECTED_BUFFERS;
}
@@ -721,8 +753,8 @@ final class LocalDisplayAdapter extends DisplayAdapter {
// a valid mode.
return;
}
- int basePhysIndex = findDisplayInfoIndexLocked(displayModeSpecs.baseModeId);
- if (basePhysIndex < 0) {
+ int baseConfigId = findDisplayConfigIdLocked(displayModeSpecs.baseModeId);
+ if (baseConfigId < 0) {
// When a display is hotplugged, it's possible for a mode to be removed that was
// previously valid. Because of the way display changes are propagated through the
// framework, and the caching of the display mode specs in LogicalDisplay, it's
@@ -740,7 +772,7 @@ final class LocalDisplayAdapter extends DisplayAdapter {
getHandler().sendMessage(PooledLambda.obtainMessage(
LocalDisplayDevice::setDesiredDisplayModeSpecsAsync, this,
getDisplayTokenLocked(),
- new SurfaceControl.DesiredDisplayConfigSpecs(basePhysIndex,
+ new SurfaceControl.DesiredDisplayConfigSpecs(baseConfigId,
mDisplayModeSpecs.refreshRateRange.min,
mDisplayModeSpecs.refreshRateRange.max)));
}
@@ -764,22 +796,22 @@ final class LocalDisplayAdapter extends DisplayAdapter {
updateDeviceInfoLocked();
}
- public void onActivePhysicalDisplayModeChangedLocked(int physIndex) {
- if (updateActiveModeLocked(physIndex)) {
+ public void onActiveDisplayConfigChangedLocked(int configId) {
+ if (updateActiveModeLocked(configId)) {
updateDeviceInfoLocked();
}
}
- public boolean updateActiveModeLocked(int activePhysIndex) {
- if (mActivePhysIndex == activePhysIndex) {
+ public boolean updateActiveModeLocked(int activeConfigId) {
+ if (mActiveConfigId == activeConfigId) {
return false;
}
- mActivePhysIndex = activePhysIndex;
- mActiveModeId = findMatchingModeIdLocked(activePhysIndex);
- mActiveModeInvalid = mActiveModeId == 0;
+ mActiveConfigId = activeConfigId;
+ mActiveModeId = findMatchingModeIdLocked(activeConfigId);
+ mActiveModeInvalid = mActiveModeId == NO_DISPLAY_MODE_ID;
if (mActiveModeInvalid) {
Slog.w(TAG, "In unknown mode after setting allowed configs"
- + ", activePhysIndex=" + mActivePhysIndex);
+ + ", activeConfigId=" + mActiveConfigId);
}
return true;
}
@@ -850,7 +882,7 @@ final class LocalDisplayAdapter extends DisplayAdapter {
pw.println("mPhysicalDisplayId=" + mPhysicalDisplayId);
pw.println("mDisplayModeSpecs={" + mDisplayModeSpecs + "}");
pw.println("mDisplayModeSpecsInvalid=" + mDisplayModeSpecsInvalid);
- pw.println("mActivePhysIndex=" + mActivePhysIndex);
+ pw.println("mActiveConfigId=" + mActiveConfigId);
pw.println("mActiveModeId=" + mActiveModeId);
pw.println("mActiveColorMode=" + mActiveColorMode);
pw.println("mDefaultModeId=" + mDefaultModeId);
@@ -861,9 +893,10 @@ final class LocalDisplayAdapter extends DisplayAdapter {
pw.println("mAllmRequested=" + mAllmRequested);
pw.println("mGameContentTypeSupported" + mGameContentTypeSupported);
pw.println("mGameContentTypeRequested" + mGameContentTypeRequested);
- pw.println("mDisplayInfos=");
- for (int i = 0; i < mDisplayInfos.length; i++) {
- pw.println(" " + mDisplayInfos[i]);
+ pw.println("mDisplayInfo=" + mDisplayInfo);
+ pw.println("mDisplayConfigs=");
+ for (int i = 0; i < mDisplayConfigs.length; i++) {
+ pw.println(" " + mDisplayConfigs[i]);
}
pw.println("mSupportedModes=");
for (int i = 0; i < mSupportedModes.size(); i++) {
@@ -879,12 +912,12 @@ final class LocalDisplayAdapter extends DisplayAdapter {
pw.println("]");
}
- private int findDisplayInfoIndexLocked(int modeId) {
+ private int findDisplayConfigIdLocked(int modeId) {
DisplayModeRecord record = mSupportedModes.get(modeId);
if (record != null) {
- for (int i = 0; i < mDisplayInfos.length; i++) {
- SurfaceControl.PhysicalDisplayInfo info = mDisplayInfos[i];
- if (record.hasMatchingMode(info)){
+ for (int i = 0; i < mDisplayConfigs.length; i++) {
+ SurfaceControl.DisplayConfig config = mDisplayConfigs[i];
+ if (record.hasMatchingMode(config)) {
return i;
}
}
@@ -892,15 +925,15 @@ final class LocalDisplayAdapter extends DisplayAdapter {
return -1;
}
- private int findMatchingModeIdLocked(int physIndex) {
- SurfaceControl.PhysicalDisplayInfo info = mDisplayInfos[physIndex];
+ private int findMatchingModeIdLocked(int configId) {
+ SurfaceControl.DisplayConfig config = mDisplayConfigs[configId];
for (int i = 0; i < mSupportedModes.size(); i++) {
DisplayModeRecord record = mSupportedModes.valueAt(i);
- if (record.hasMatchingMode(info)) {
+ if (record.hasMatchingMode(config)) {
return record.mMode.getModeId();
}
}
- return 0;
+ return NO_DISPLAY_MODE_ID;
}
private void updateDeviceInfoLocked() {
@@ -948,23 +981,23 @@ final class LocalDisplayAdapter extends DisplayAdapter {
private static final class DisplayModeRecord {
public final Display.Mode mMode;
- public DisplayModeRecord(SurfaceControl.PhysicalDisplayInfo phys) {
- mMode = createMode(phys.width, phys.height, phys.refreshRate);
+ DisplayModeRecord(SurfaceControl.DisplayConfig config) {
+ mMode = createMode(config.width, config.height, config.refreshRate);
}
/**
- * Returns whether the mode generated by the given PhysicalDisplayInfo matches the mode
+ * Returns whether the mode generated by the given DisplayConfig matches the mode
* contained by the record modulo mode ID.
*
- * Note that this doesn't necessarily mean the the PhysicalDisplayInfos are identical, just
+ * Note that this doesn't necessarily mean that the DisplayConfigs are identical, just
* that they generate identical modes.
*/
- public boolean hasMatchingMode(SurfaceControl.PhysicalDisplayInfo info) {
+ public boolean hasMatchingMode(SurfaceControl.DisplayConfig config) {
int modeRefreshRate = Float.floatToIntBits(mMode.getRefreshRate());
- int displayInfoRefreshRate = Float.floatToIntBits(info.refreshRate);
- return mMode.getPhysicalWidth() == info.width
- && mMode.getPhysicalHeight() == info.height
- && modeRefreshRate == displayInfoRefreshRate;
+ int configRefreshRate = Float.floatToIntBits(config.refreshRate);
+ return mMode.getPhysicalWidth() == config.width
+ && mMode.getPhysicalHeight() == config.height
+ && modeRefreshRate == configRefreshRate;
}
public String toString() {
@@ -989,12 +1022,12 @@ final class LocalDisplayAdapter extends DisplayAdapter {
}
@Override
- public void onConfigChanged(long timestampNanos, long physicalDisplayId, int physIndex) {
+ public void onConfigChanged(long timestampNanos, long physicalDisplayId, int configId) {
if (DEBUG) {
Slog.d(TAG, "onConfigChanged("
+ "timestampNanos=" + timestampNanos
+ ", physicalDisplayId=" + physicalDisplayId
- + ", physIndex=" + physIndex + ")");
+ + ", configId=" + configId + ")");
}
synchronized (getSyncRoot()) {
LocalDisplayDevice device = mDevices.get(physicalDisplayId);
@@ -1005,7 +1038,7 @@ final class LocalDisplayAdapter extends DisplayAdapter {
}
return;
}
- device.onActivePhysicalDisplayModeChangedLocked(physIndex);
+ device.onActiveDisplayConfigChangedLocked(configId);
}
}
}
diff --git a/services/core/java/com/android/server/display/OverlayDisplayWindow.java b/services/core/java/com/android/server/display/OverlayDisplayWindow.java
index 0fdf2daf1c8d..49f0d35d2e78 100644
--- a/services/core/java/com/android/server/display/OverlayDisplayWindow.java
+++ b/services/core/java/com/android/server/display/OverlayDisplayWindow.java
@@ -109,7 +109,8 @@ final class OverlayDisplayWindow implements DumpUtils.Dump {
mWindowManager = (WindowManager)context.getSystemService(
Context.WINDOW_SERVICE);
- mDefaultDisplay = mWindowManager.getDefaultDisplay();
+ // TODO(b/148458868): Support multi-display
+ mDefaultDisplay = mContext.getDisplay();
updateDefaultDisplayInfo();
resize(width, height, densityDpi, false /* doLayout */);
diff --git a/services/core/java/com/android/server/incremental/IncrementalManagerService.java b/services/core/java/com/android/server/incremental/IncrementalManagerService.java
index 5876d433face..64f25dd6f9fd 100644
--- a/services/core/java/com/android/server/incremental/IncrementalManagerService.java
+++ b/services/core/java/com/android/server/incremental/IncrementalManagerService.java
@@ -32,7 +32,10 @@ import android.os.ShellCallback;
import android.os.incremental.IIncrementalManager;
import android.util.Slog;
+import com.android.internal.util.DumpUtils;
+
import java.io.FileDescriptor;
+import java.io.PrintWriter;
/**
* This service has the following purposes:
@@ -71,6 +74,13 @@ public class IncrementalManagerService extends IIncrementalManager.Stub {
mNativeInstance = nativeStartService();
}
+ @SuppressWarnings("resource")
+ @Override
+ protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+ if (!DumpUtils.checkDumpAndUsageStatsPermission(mContext, TAG, pw)) return;
+ nativeDump(mNativeInstance, fd.getInt$());
+ }
+
/**
* Notifies native IIncrementalManager service that system is ready.
*/
@@ -158,4 +168,6 @@ public class IncrementalManagerService extends IIncrementalManager.Stub {
private static native long nativeStartService();
private static native void nativeSystemReady(long nativeInstance);
+
+ private static native void nativeDump(long nativeInstance, int fd);
}
diff --git a/services/core/java/com/android/server/incremental/IncrementalManagerShellCommand.java b/services/core/java/com/android/server/incremental/IncrementalManagerShellCommand.java
index 5161a77e4ede..b0e2e6432c77 100644
--- a/services/core/java/com/android/server/incremental/IncrementalManagerShellCommand.java
+++ b/services/core/java/com/android/server/incremental/IncrementalManagerShellCommand.java
@@ -113,11 +113,27 @@ public final class IncrementalManagerShellCommand extends ShellCommand {
return ERROR_COMMAND_EXECUTION;
}
- final Map<String, ParcelFileDescriptor> dataLoaderDynamicArgs = getDataLoaderDynamicArgs();
- if (dataLoaderDynamicArgs == null) {
+ final Map<String, ParcelFileDescriptor> fds = getShellFileDescriptors();
+ if (fds == null) {
pw.println("File names and sizes don't match.");
return ERROR_DATA_LOADER_INIT;
}
+ // dup FDs before closing them
+ final Map<String, ParcelFileDescriptor> dataLoaderDynamicArgs = new HashMap<>();
+ for (Map.Entry<String, ParcelFileDescriptor> nfd : fds.entrySet()) {
+ try {
+ dataLoaderDynamicArgs.put(nfd.getKey(), nfd.getValue().dup());
+ } catch (IOException ignored) {
+ pw.println("Failed to dup shell file descriptor");
+ return ERROR_DATA_LOADER_INIT;
+ } finally {
+ try {
+ nfd.getValue().close();
+ } catch (IOException ignored) {
+ }
+ }
+ }
+
final DataLoaderParams params = DataLoaderParams.forIncremental(
new ComponentName(LOADER_PACKAGE_NAME, LOADER_CLASS_NAME), "",
dataLoaderDynamicArgs);
@@ -131,17 +147,9 @@ public final class IncrementalManagerShellCommand extends ShellCommand {
try {
int sessionId = packageInstaller.createSession(sessionParams);
pw.println("Successfully opened session: sessionId = " + sessionId);
- } catch (Exception ex) {
+ } catch (IOException ex) {
pw.println("Failed to create session.");
return ERROR_COMMAND_EXECUTION;
- } finally {
- try {
- for (Map.Entry<String, ParcelFileDescriptor> nfd
- : dataLoaderDynamicArgs.entrySet()) {
- nfd.getValue().close();
- }
- } catch (IOException ignored) {
- }
}
return 0;
}
@@ -177,7 +185,8 @@ public final class IncrementalManagerShellCommand extends ShellCommand {
InstallationFile file = installationFiles.get(i);
final int location = file.getFileType() == FILE_TYPE_OBB ? LOCATION_MEDIA_OBB
: LOCATION_DATA_APP;
- session.addFile(location, file.getName(), file.getSize(), file.getMetadata(), null);
+ session.addFile(location, file.getName(), file.getSize(), file.getMetadata(),
+ null);
}
session.commit(localReceiver.getIntentSender());
final Intent result = localReceiver.getResult();
@@ -212,7 +221,8 @@ public final class IncrementalManagerShellCommand extends ShellCommand {
private IIntentSender.Stub mLocalSender = new IIntentSender.Stub() {
@Override
- public void send(int code, Intent intent, String resolvedType, IBinder whitelistToken,
+ public void send(int code, Intent intent, String resolvedType,
+ IBinder whitelistToken,
IIntentReceiver finishedReceiver, String requiredPermission,
Bundle options) {
try {
@@ -237,14 +247,14 @@ public final class IncrementalManagerShellCommand extends ShellCommand {
}
/** Helpers. */
- private Map<String, ParcelFileDescriptor> getDataLoaderDynamicArgs() {
- Map<String, ParcelFileDescriptor> dataLoaderDynamicArgs = new HashMap<>();
+ private Map<String, ParcelFileDescriptor> getShellFileDescriptors() {
+ Map<String, ParcelFileDescriptor> fds = new HashMap<>();
final FileDescriptor outFd = getOutFileDescriptor();
final FileDescriptor inFd = getInFileDescriptor();
try {
- dataLoaderDynamicArgs.put("inFd", ParcelFileDescriptor.dup(inFd));
- dataLoaderDynamicArgs.put("outFd", ParcelFileDescriptor.dup(outFd));
- return dataLoaderDynamicArgs;
+ fds.put("inFd", ParcelFileDescriptor.dup(inFd));
+ fds.put("outFd", ParcelFileDescriptor.dup(outFd));
+ return fds;
} catch (Exception ex) {
Slog.e(TAG, "Failed to dup FDs");
return null;
@@ -292,7 +302,8 @@ public final class IncrementalManagerShellCommand extends ShellCommand {
pw.println("Invalid file index in: " + fileArgs);
return null;
}
- final byte[] metadata = String.valueOf(index).getBytes(StandardCharsets.UTF_8);
+ final byte[] metadata = String.valueOf(index).getBytes(
+ StandardCharsets.UTF_8);
fileList.add(new InstallationFile(name, size, metadata));
break;
}
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
index 90358ca1f133..a8f706cdd629 100644
--- a/services/core/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -223,7 +223,7 @@ public class InputManagerService extends IInputManager.Stub
int displayId, InputApplicationHandle application);
private static native void nativeSetFocusedDisplay(long ptr, int displayId);
private static native boolean nativeTransferTouchFocus(long ptr,
- InputChannel fromChannel, InputChannel toChannel);
+ IBinder fromChannelToken, IBinder toChannelToken);
private static native void nativeSetPointerSpeed(long ptr, int speed);
private static native void nativeSetShowTouches(long ptr, boolean enabled);
private static native void nativeSetInteractive(long ptr, boolean interactive);
@@ -1554,14 +1554,29 @@ public class InputManagerService extends IInputManager.Stub
* @return True if the transfer was successful. False if the window with the
* specified channel did not actually have touch focus at the time of the request.
*/
- public boolean transferTouchFocus(InputChannel fromChannel, InputChannel toChannel) {
- if (fromChannel == null) {
- throw new IllegalArgumentException("fromChannel must not be null.");
- }
- if (toChannel == null) {
- throw new IllegalArgumentException("toChannel must not be null.");
- }
- return nativeTransferTouchFocus(mPtr, fromChannel, toChannel);
+ public boolean transferTouchFocus(@NonNull InputChannel fromChannel,
+ @NonNull InputChannel toChannel) {
+ return nativeTransferTouchFocus(mPtr, fromChannel.getToken(), toChannel.getToken());
+ }
+
+ /**
+ * Atomically transfers touch focus from one window to another as identified by
+ * their input channels. It is possible for multiple windows to have
+ * touch focus if they support split touch dispatch
+ * {@link android.view.WindowManager.LayoutParams#FLAG_SPLIT_TOUCH} but this
+ * method only transfers touch focus of the specified window without affecting
+ * other windows that may also have touch focus at the same time.
+ * @param fromChannelToken The channel token of a window that currently has touch focus.
+ * @param toChannelToken The channel token of the window that should receive touch focus in
+ * place of the first.
+ * @return True if the transfer was successful. False if the window with the
+ * specified channel did not actually have touch focus at the time of the request.
+ */
+ public boolean transferTouchFocus(@NonNull IBinder fromChannelToken,
+ @NonNull IBinder toChannelToken) {
+ Objects.nonNull(fromChannelToken);
+ Objects.nonNull(toChannelToken);
+ return nativeTransferTouchFocus(mPtr, fromChannelToken, toChannelToken);
}
@Override // Binder call
diff --git a/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java b/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java
index 15dd6464e094..0450647b9403 100644
--- a/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java
+++ b/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java
@@ -39,18 +39,26 @@ import android.content.integrity.Rule;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManagerInternal;
+import android.content.pm.PackageParser;
+import android.content.pm.PackageUserState;
import android.content.pm.ParceledListSlice;
import android.content.pm.Signature;
+import android.content.pm.SigningInfo;
+import android.content.pm.parsing.ApkParseUtils;
+import android.content.pm.parsing.PackageInfoUtils;
+import android.content.pm.parsing.ParsedPackage;
import android.net.Uri;
import android.os.Binder;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
+import android.os.UserHandle;
+import android.provider.Settings;
import android.util.Slog;
-import android.util.StatsLog;
import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.LocalServices;
import com.android.server.integrity.engine.RuleEvaluationEngine;
import com.android.server.integrity.model.IntegrityCheckResult;
@@ -66,7 +74,9 @@ import java.security.cert.CertificateEncodingException;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -105,6 +115,8 @@ public class AppIntegrityManagerServiceImpl extends IAppIntegrityManager.Stub {
private final RuleEvaluationEngine mEvaluationEngine;
private final IntegrityFileManager mIntegrityFileManager;
+ private final boolean mCheckIntegrityForRuleProviders;
+
/** Create an instance of {@link AppIntegrityManagerServiceImpl}. */
public static AppIntegrityManagerServiceImpl create(Context context) {
HandlerThread handlerThread = new HandlerThread("AppIntegrityManagerServiceHandler");
@@ -115,7 +127,13 @@ public class AppIntegrityManagerServiceImpl extends IAppIntegrityManager.Stub {
LocalServices.getService(PackageManagerInternal.class),
RuleEvaluationEngine.getRuleEvaluationEngine(),
IntegrityFileManager.getInstance(),
- handlerThread.getThreadHandler());
+ handlerThread.getThreadHandler(),
+ Settings.Global.getInt(
+ context.getContentResolver(),
+ Settings.Global.INTEGRITY_CHECK_INCLUDES_RULE_PROVIDER,
+ 0)
+ == 1
+ );
}
@VisibleForTesting
@@ -124,12 +142,14 @@ public class AppIntegrityManagerServiceImpl extends IAppIntegrityManager.Stub {
PackageManagerInternal packageManagerInternal,
RuleEvaluationEngine evaluationEngine,
IntegrityFileManager integrityFileManager,
- Handler handler) {
+ Handler handler,
+ boolean checkIntegrityForRuleProviders) {
mContext = context;
mPackageManagerInternal = packageManagerInternal;
mEvaluationEngine = evaluationEngine;
mIntegrityFileManager = integrityFileManager;
mHandler = handler;
+ mCheckIntegrityForRuleProviders = checkIntegrityForRuleProviders;
IntentFilter integrityVerificationFilter = new IntentFilter();
integrityVerificationFilter.addAction(ACTION_PACKAGE_NEEDS_INTEGRITY_VERIFICATION);
@@ -170,7 +190,8 @@ public class AppIntegrityManagerServiceImpl extends IAppIntegrityManager.Stub {
success = false;
}
- StatsLog.write(StatsLog.INTEGRITY_RULES_PUSHED, success, ruleProvider, version);
+ FrameworkStatsLog.write(FrameworkStatsLog.INTEGRITY_RULES_PUSHED, success,
+ ruleProvider, version);
Intent intent = new Intent();
intent.putExtra(EXTRA_STATUS, success ? STATUS_SUCCESS : STATUS_FAILURE);
@@ -207,6 +228,17 @@ public class AppIntegrityManagerServiceImpl extends IAppIntegrityManager.Stub {
: "";
}
+ @Override
+ public ParceledListSlice<Rule> getCurrentRules() {
+ List<Rule> rules = Collections.emptyList();
+ try {
+ rules = mIntegrityFileManager.readRules(/* appInstallMetadata= */ null);
+ } catch (Exception e) {
+ Slog.e(TAG, "Error getting current rules", e);
+ }
+ return new ParceledListSlice<>(rules);
+ }
+
private void handleIntegrityVerification(Intent intent) {
int verificationId = intent.getIntExtra(EXTRA_VERIFICATION_ID, -1);
@@ -228,23 +260,33 @@ public class AppIntegrityManagerServiceImpl extends IAppIntegrityManager.Stub {
String installerPackageName = getInstallerPackageName(intent);
// Skip integrity verification if the verifier is doing the install.
- if (isRuleProvider(installerPackageName)) {
+ if (!mCheckIntegrityForRuleProviders
+ && isRuleProvider(installerPackageName)) {
Slog.i(TAG, "Verifier doing the install. Skipping integrity check.");
mPackageManagerInternal.setIntegrityVerificationResult(
verificationId, PackageManagerInternal.INTEGRITY_VERIFICATION_ALLOW);
return;
}
- String appCert = getCertificateFingerprint(packageInfo);
+ List<String> appCertificates = getCertificateFingerprint(packageInfo);
+ List<String> installerCertificates =
+ getInstallerCertificateFingerprint(installerPackageName);
+
+ // TODO (b/148373316): Figure out what field contains which fields are populated for
+ // rotated and the multiple signers. Until then, return the first certificate.
+ String appCert = appCertificates.isEmpty() ? "" : appCertificates.get(0);
+ String installerCert =
+ installerCertificates.isEmpty() ? "" : installerCertificates.get(0);
+
+ Slog.w(TAG, appCertificates.toString());
AppInstallMetadata.Builder builder = new AppInstallMetadata.Builder();
builder.setPackageName(getPackageNameNormalized(packageName));
- builder.setAppCertificate(appCert == null ? "" : appCert);
+ builder.setAppCertificate(appCert);
builder.setVersionCode(intent.getLongExtra(EXTRA_LONG_VERSION_CODE, -1));
builder.setInstallerName(getPackageNameNormalized(installerPackageName));
- builder.setInstallerCertificate(
- getInstallerCertificateFingerprint(installerPackageName));
+ builder.setInstallerCertificate(installerCert);
builder.setIsPreInstalled(isSystemApp(packageName));
AppInstallMetadata appInstallMetadata = builder.build();
@@ -262,8 +304,8 @@ public class AppIntegrityManagerServiceImpl extends IAppIntegrityManager.Stub {
+ " due to "
+ result.getMatchedRules());
- StatsLog.write(
- StatsLog.INTEGRITY_CHECK_RESULT_REPORTED,
+ FrameworkStatsLog.write(
+ FrameworkStatsLog.INTEGRITY_CHECK_RESULT_REPORTED,
packageName,
appCert,
appInstallMetadata.getVersionCode(),
@@ -374,25 +416,29 @@ public class AppIntegrityManagerServiceImpl extends IAppIntegrityManager.Stub {
}
}
- private String getCertificateFingerprint(@NonNull PackageInfo packageInfo) {
- return getFingerprint(getSignature(packageInfo));
- }
-
- private String getInstallerCertificateFingerprint(String installer) {
+ private List<String> getInstallerCertificateFingerprint(String installer) {
if (installer.equals(ADB_INSTALLER) || installer.equals(UNKNOWN_INSTALLER)) {
- return INSTALLER_CERT_NOT_APPLICABLE;
+ return Collections.emptyList();
}
try {
PackageInfo installerInfo =
mContext.getPackageManager()
- .getPackageInfo(installer, PackageManager.GET_SIGNATURES);
+ .getPackageInfo(installer, PackageManager.GET_SIGNING_CERTIFICATES);
return getCertificateFingerprint(installerInfo);
} catch (PackageManager.NameNotFoundException e) {
Slog.i(TAG, "Installer package " + installer + " not found.");
- return "";
+ return Collections.emptyList();
}
}
+ private List<String> getCertificateFingerprint(@NonNull PackageInfo packageInfo) {
+ ArrayList<String> certificateFingerprints = new ArrayList();
+ for (Signature signature : getSignatures(packageInfo)) {
+ certificateFingerprints.add(getFingerprint(signature));
+ }
+ return certificateFingerprints;
+ }
+
/** Get the allowed installers and their associated certificate hashes from <meta-data> tag. */
private Map<String, String> getAllowedInstallers(@NonNull PackageInfo packageInfo) {
Map<String, String> packageCertMap = new HashMap<>();
@@ -420,12 +466,15 @@ public class AppIntegrityManagerServiceImpl extends IAppIntegrityManager.Stub {
return packageCertMap;
}
- private static Signature getSignature(@NonNull PackageInfo packageInfo) {
- if (packageInfo.signatures == null || packageInfo.signatures.length < 1) {
+ private static Signature[] getSignatures(@NonNull PackageInfo packageInfo) {
+ SigningInfo signingInfo = packageInfo.signingInfo;
+
+ if (signingInfo == null || signingInfo.getApkContentsSigners().length < 1) {
throw new IllegalArgumentException("Package signature not found in " + packageInfo);
}
- // Only the first element is guaranteed to be present.
- return packageInfo.signatures[0];
+
+ // We are only interested in evaluating the active signatures.
+ return signingInfo.getApkContentsSigners();
}
private static String getFingerprint(Signature cert) {
@@ -464,20 +513,14 @@ public class AppIntegrityManagerServiceImpl extends IAppIntegrityManager.Stub {
if (installationPath == null) {
throw new IllegalArgumentException("Installation path is null, package not found");
}
- PackageInfo packageInfo;
+
+ PackageParser parser = new PackageParser();
try {
- // The installation path will be a directory for a multi-apk install on L+
- if (installationPath.isDirectory()) {
- packageInfo = getMultiApkInfo(installationPath);
- } else {
- packageInfo =
- mContext.getPackageManager()
- .getPackageArchiveInfo(
- installationPath.getPath(),
- PackageManager.GET_SIGNATURES
- | PackageManager.GET_META_DATA);
- }
- return packageInfo;
+ ParsedPackage pkg = parser.parseParsedPackage(installationPath, 0, false);
+ int flags = PackageManager.GET_SIGNING_CERTIFICATES | PackageManager.GET_META_DATA;
+ ApkParseUtils.collectCertificates(pkg, false);
+ return PackageInfoUtils.generate(pkg, null, flags, 0, 0, null, new PackageUserState(),
+ UserHandle.getCallingUserId());
} catch (Exception e) {
throw new IllegalArgumentException("Exception reading " + dataUri, e);
}
@@ -490,7 +533,8 @@ public class AppIntegrityManagerServiceImpl extends IAppIntegrityManager.Stub {
mContext.getPackageManager()
.getPackageArchiveInfo(
baseFile.getAbsolutePath(),
- PackageManager.GET_SIGNATURES | PackageManager.GET_META_DATA);
+ PackageManager.GET_SIGNING_CERTIFICATES
+ | PackageManager.GET_META_DATA);
if (basePackageInfo == null) {
for (File apkFile : multiApkDirectory.listFiles()) {
@@ -584,12 +628,13 @@ public class AppIntegrityManagerServiceImpl extends IAppIntegrityManager.Stub {
}
private List<String> getAllowedRuleProviders() {
- return Arrays.asList(mContext.getResources().getStringArray(
- R.array.config_integrityRuleProviderPackages));
+ return Arrays.asList(
+ mContext.getResources()
+ .getStringArray(R.array.config_integrityRuleProviderPackages));
}
private boolean isRuleProvider(String installerPackageName) {
- return getAllowedRuleProviders().stream().anyMatch(
- ruleProvider -> ruleProvider.equals(installerPackageName));
+ return getAllowedRuleProviders().stream()
+ .anyMatch(ruleProvider -> ruleProvider.equals(installerPackageName));
}
}
diff --git a/services/core/java/com/android/server/integrity/IntegrityFileManager.java b/services/core/java/com/android/server/integrity/IntegrityFileManager.java
index fffe7d9030ff..7f0231e72373 100644
--- a/services/core/java/com/android/server/integrity/IntegrityFileManager.java
+++ b/services/core/java/com/android/server/integrity/IntegrityFileManager.java
@@ -147,19 +147,21 @@ public class IntegrityFileManager {
/**
* Read rules from persistent storage.
*
- * @param appInstallMetadata information about the install used to select rules to read
+ * @param appInstallMetadata information about the install used to select rules to read. If
+ * null, all rules will be read.
*/
- public List<Rule> readRules(AppInstallMetadata appInstallMetadata)
+ public List<Rule> readRules(@Nullable AppInstallMetadata appInstallMetadata)
throws IOException, RuleParseException {
synchronized (RULES_LOCK) {
// Try to identify indexes from the index file.
- List<RuleIndexRange> ruleReadingIndexes;
- try {
- ruleReadingIndexes =
- mRuleIndexingController.identifyRulesToEvaluate(appInstallMetadata);
- } catch (Exception e) {
- Slog.w(TAG, "Error identifying the rule indexes. Trying unindexed.", e);
- ruleReadingIndexes = Collections.emptyList();
+ List<RuleIndexRange> ruleReadingIndexes = Collections.emptyList();
+ if (appInstallMetadata != null) {
+ try {
+ ruleReadingIndexes =
+ mRuleIndexingController.identifyRulesToEvaluate(appInstallMetadata);
+ } catch (Exception e) {
+ Slog.w(TAG, "Error identifying the rule indexes. Trying unindexed.", e);
+ }
}
// Read the rules based on the index information when available.
diff --git a/services/core/java/com/android/server/integrity/model/IntegrityCheckResult.java b/services/core/java/com/android/server/integrity/model/IntegrityCheckResult.java
index 1b605c7c430c..1fa067065e1b 100644
--- a/services/core/java/com/android/server/integrity/model/IntegrityCheckResult.java
+++ b/services/core/java/com/android/server/integrity/model/IntegrityCheckResult.java
@@ -18,7 +18,8 @@ package com.android.server.integrity.model;
import android.annotation.Nullable;
import android.content.integrity.Rule;
-import android.util.StatsLog;
+
+import com.android.internal.util.FrameworkStatsLog;
import java.util.Collections;
import java.util.List;
@@ -86,11 +87,11 @@ public final class IntegrityCheckResult {
*/
public int getLoggingResponse() {
if (getEffect() == Effect.DENY) {
- return StatsLog.INTEGRITY_CHECK_RESULT_REPORTED__RESPONSE__REJECTED;
+ return FrameworkStatsLog.INTEGRITY_CHECK_RESULT_REPORTED__RESPONSE__REJECTED;
} else if (getEffect() == Effect.ALLOW && getMatchedRules().isEmpty()) {
- return StatsLog.INTEGRITY_CHECK_RESULT_REPORTED__RESPONSE__ALLOWED;
+ return FrameworkStatsLog.INTEGRITY_CHECK_RESULT_REPORTED__RESPONSE__ALLOWED;
} else if (getEffect() == Effect.ALLOW && !getMatchedRules().isEmpty()) {
- return StatsLog.INTEGRITY_CHECK_RESULT_REPORTED__RESPONSE__FORCE_ALLOWED;
+ return FrameworkStatsLog.INTEGRITY_CHECK_RESULT_REPORTED__RESPONSE__FORCE_ALLOWED;
} else {
throw new IllegalStateException("IntegrityCheckResult is not valid.");
}
diff --git a/services/core/java/com/android/server/integrity/serializer/RuleBinarySerializer.java b/services/core/java/com/android/server/integrity/serializer/RuleBinarySerializer.java
index d01499668e8c..00e054596cd7 100644
--- a/services/core/java/com/android/server/integrity/serializer/RuleBinarySerializer.java
+++ b/services/core/java/com/android/server/integrity/serializer/RuleBinarySerializer.java
@@ -87,7 +87,7 @@ public class RuleBinarySerializer implements RuleSerializer {
}
if (rules.size() > TOTAL_RULE_SIZE_LIMIT) {
- throw new IllegalArgumentException("Too many rules provided.");
+ throw new IllegalArgumentException("Too many rules provided: " + rules.size());
}
// Determine the indexing groups and the order of the rules within each indexed group.
@@ -134,7 +134,11 @@ public class RuleBinarySerializer implements RuleSerializer {
.map(list -> list.size())
.collect(Collectors.summingInt(Integer::intValue));
if (totalRuleCount > ruleSizeLimit) {
- throw new IllegalArgumentException("Too many rules provided in the indexing group.");
+ throw new IllegalArgumentException(
+ "Too many rules provided in the indexing group. Provided "
+ + totalRuleCount
+ + " limit "
+ + ruleSizeLimit);
}
}
diff --git a/services/core/java/com/android/server/location/AbstractLocationProvider.java b/services/core/java/com/android/server/location/AbstractLocationProvider.java
index 64bca78f294d..997f21c9b6a3 100644
--- a/services/core/java/com/android/server/location/AbstractLocationProvider.java
+++ b/services/core/java/com/android/server/location/AbstractLocationProvider.java
@@ -177,7 +177,6 @@ public abstract class AbstractLocationProvider {
}
}
- protected final Context mContext;
protected final Executor mExecutor;
// we use a lock-free implementation to update state to ensure atomicity between updating the
@@ -186,13 +185,11 @@ public abstract class AbstractLocationProvider {
// before it was set, and should not miss any updates that occur after it was set).
private final AtomicReference<InternalState> mInternalState;
- protected AbstractLocationProvider(Context context, Executor executor) {
- this(context, executor, Collections.singleton(context.getPackageName()));
+ protected AbstractLocationProvider(Executor executor, Context context) {
+ this(executor, Collections.singleton(context.getPackageName()));
}
- protected AbstractLocationProvider(Context context, Executor executor,
- Set<String> packageNames) {
- mContext = context;
+ protected AbstractLocationProvider(Executor executor, Set<String> packageNames) {
mExecutor = executor;
mInternalState = new AtomicReference<>(
new InternalState(null, State.EMPTY_STATE.withProviderPackageNames(packageNames)));
@@ -202,7 +199,7 @@ public abstract class AbstractLocationProvider {
* Sets the listener and returns the state at the moment the listener was set. The listener can
* expect to receive all state updates from after this point.
*/
- State setListener(@Nullable Listener listener) {
+ protected State setListener(@Nullable Listener listener) {
return mInternalState.updateAndGet(
internalState -> internalState.withListener(listener)).state;
}
@@ -210,14 +207,14 @@ public abstract class AbstractLocationProvider {
/**
* Retrieves the state of the provider.
*/
- State getState() {
+ public State getState() {
return mInternalState.get().state;
}
/**
* Sets the state of the provider to the new state.
*/
- void setState(State newState) {
+ protected void setState(State newState) {
InternalState oldInternalState = mInternalState.getAndUpdate(
internalState -> internalState.withState(newState));
if (newState.equals(oldInternalState.state)) {
@@ -357,7 +354,7 @@ public abstract class AbstractLocationProvider {
/**
* Always invoked on the provider executor.
*/
- protected void onExtraCommand(int uid, int pid, String command, Bundle extras) {}
+ protected abstract void onExtraCommand(int uid, int pid, String command, Bundle extras);
/**
* Requests a provider to enable itself for the given user id.
@@ -370,7 +367,7 @@ public abstract class AbstractLocationProvider {
/**
* Always invoked on the provider executor.
*/
- protected void onRequestSetAllowed(boolean allowed) {}
+ protected abstract void onRequestSetAllowed(boolean allowed);
/**
* Dumps debug or log information. May be invoked from any thread.
diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java
index a7fd57afc86b..bcac4730cb8b 100644
--- a/services/core/java/com/android/server/location/GnssLocationProvider.java
+++ b/services/core/java/com/android/server/location/GnssLocationProvider.java
@@ -408,7 +408,7 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
// Available only on GNSS HAL 2.0 implementations and later.
private GnssVisibilityControl mGnssVisibilityControl;
- // Handler for processing events
+ private final Context mContext;
private Handler mHandler;
private final GnssNetworkConnectivityHandler mNetworkConnectivityHandler;
@@ -625,10 +625,11 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
}
public GnssLocationProvider(Context context) {
- super(context, FgThread.getExecutor());
+ super(FgThread.getExecutor(), context);
ensureInitialized();
+ mContext = context;
mLooper = FgThread.getHandler().getLooper();
// Create a wake lock
@@ -1212,6 +1213,11 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
}
}
+ @Override
+ protected void onRequestSetAllowed(boolean allowed) {
+ // do nothing - the gnss provider is always allowed
+ }
+
private void deleteAidingData(Bundle extras) {
int flags;
diff --git a/services/core/java/com/android/server/location/LocationFudger.java b/services/core/java/com/android/server/location/LocationFudger.java
index ae71fe36c31c..04c7714f07f7 100644
--- a/services/core/java/com/android/server/location/LocationFudger.java
+++ b/services/core/java/com/android/server/location/LocationFudger.java
@@ -16,17 +16,19 @@
package com.android.server.location;
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-import java.security.SecureRandom;
import android.content.Context;
import android.database.ContentObserver;
import android.location.Location;
+import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.provider.Settings;
import android.util.Log;
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.security.SecureRandom;
+
/**
* Contains the logic to obfuscate (fudge) locations for coarse applications.
@@ -177,7 +179,12 @@ public class LocationFudger {
private Location addCoarseLocationExtraLocked(Location location) {
Location coarse = createCoarseLocked(location);
- location.setExtraLocation(Location.EXTRA_COARSE_LOCATION, coarse);
+ Bundle extras = location.getExtras();
+ if (extras == null) {
+ extras = new Bundle();
+ }
+ extras.putParcelable(Location.EXTRA_COARSE_LOCATION, coarse);
+ location.setExtras(extras);
return coarse;
}
diff --git a/services/core/java/com/android/server/location/LocationProviderProxy.java b/services/core/java/com/android/server/location/LocationProviderProxy.java
index 1dee7a809c7e..96ffaa6c0bff 100644
--- a/services/core/java/com/android/server/location/LocationProviderProxy.java
+++ b/services/core/java/com/android/server/location/LocationProviderProxy.java
@@ -134,19 +134,21 @@ public class LocationProviderProxy extends AbstractLocationProvider {
// also used to synchronized any state changes (setEnabled, setProperties, setState, etc)
private final Object mLock = new Object();
+ private final Context mContext;
private final ServiceWatcher mServiceWatcher;
@GuardedBy("mLock")
private boolean mBound;
- @GuardedBy("mLock")
- private ProviderRequest mRequest;
+
+ private volatile ProviderRequest mRequest;
private LocationProviderProxy(Context context, String action, int enableOverlayResId,
int nonOverlayPackageResId) {
- // safe to use direct executor since none of our callbacks call back into any code above
- // this provider - they simply forward to the proxy service
- super(context, DIRECT_EXECUTOR);
+ // safe to use direct executor since our locks are not acquired in a code path invoked by
+ // our owning provider
+ super(DIRECT_EXECUTOR, Collections.emptySet());
+ mContext = context;
mServiceWatcher = new ServiceWatcher(context, FgThread.getHandler(), action, this::onBind,
this::onUnbind, enableOverlayResId, nonOverlayPackageResId);
@@ -165,8 +167,10 @@ public class LocationProviderProxy extends AbstractLocationProvider {
mBound = true;
provider.setLocationProviderManager(mManager);
- if (!mRequest.equals(ProviderRequest.EMPTY_REQUEST)) {
- provider.setRequest(mRequest, mRequest.workSource);
+
+ ProviderRequest request = mRequest;
+ if (!request.equals(ProviderRequest.EMPTY_REQUEST)) {
+ provider.setRequest(request, request.workSource);
}
ComponentName service = mServiceWatcher.getBoundService().component;
@@ -185,10 +189,7 @@ public class LocationProviderProxy extends AbstractLocationProvider {
@Override
public void onSetRequest(ProviderRequest request) {
- synchronized (mLock) {
- mRequest = request;
- }
-
+ mRequest = request;
mServiceWatcher.runOnBinder(binder -> {
ILocationProvider service = ILocationProvider.Stub.asInterface(binder);
service.setRequest(request, request.workSource);
@@ -213,9 +214,6 @@ public class LocationProviderProxy extends AbstractLocationProvider {
@Override
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- pw.println("service=" + mServiceWatcher);
- synchronized (mLock) {
- pw.println("bound=" + mBound);
- }
+ mServiceWatcher.dump(fd, pw, args);
}
}
diff --git a/services/core/java/com/android/server/location/MockProvider.java b/services/core/java/com/android/server/location/MockProvider.java
index bcec8b12b371..b45b66017062 100644
--- a/services/core/java/com/android/server/location/MockProvider.java
+++ b/services/core/java/com/android/server/location/MockProvider.java
@@ -16,15 +16,18 @@
package com.android.server.location;
+import static com.android.internal.util.ConcurrentUtils.DIRECT_EXECUTOR;
+
import android.annotation.Nullable;
-import android.content.Context;
import android.location.Location;
+import android.os.Bundle;
import com.android.internal.location.ProviderProperties;
import com.android.internal.location.ProviderRequest;
import java.io.FileDescriptor;
import java.io.PrintWriter;
+import java.util.Collections;
/**
* A mock location provider used by LocationManagerService to implement test providers.
@@ -35,10 +38,9 @@ public class MockProvider extends AbstractLocationProvider {
@Nullable private Location mLocation;
- public MockProvider(Context context, ProviderProperties properties) {
- // using a direct executor is only acceptable because this class is so simple it is trivial
- // to verify that it does not acquire any locks or re-enter LMS from callbacks
- super(context, Runnable::run);
+ public MockProvider(ProviderProperties properties) {
+ // using a direct executor is ok because this class has no locks that could deadlock
+ super(DIRECT_EXECUTOR, Collections.emptySet());
setProperties(properties);
}
@@ -59,6 +61,9 @@ public class MockProvider extends AbstractLocationProvider {
public void onSetRequest(ProviderRequest request) {}
@Override
+ protected void onExtraCommand(int uid, int pid, String command, Bundle extras) {}
+
+ @Override
protected void onRequestSetAllowed(boolean allowed) {
setAllowed(allowed);
}
diff --git a/services/core/java/com/android/server/location/MockableLocationProvider.java b/services/core/java/com/android/server/location/MockableLocationProvider.java
index 5b4f008a581b..b0e133061fc6 100644
--- a/services/core/java/com/android/server/location/MockableLocationProvider.java
+++ b/services/core/java/com/android/server/location/MockableLocationProvider.java
@@ -16,8 +16,9 @@
package com.android.server.location;
+import static com.android.internal.util.ConcurrentUtils.DIRECT_EXECUTOR;
+
import android.annotation.Nullable;
-import android.content.Context;
import android.location.Location;
import android.os.Bundle;
@@ -68,10 +69,10 @@ public class MockableLocationProvider extends AbstractLocationProvider {
* The client should expect that it may being to receive callbacks as soon as this constructor
* is invoked.
*/
- public MockableLocationProvider(Context context, Object ownerLock, Listener listener) {
+ public MockableLocationProvider(Object ownerLock, Listener listener) {
// using a direct executor is acceptable because all inbound calls are delegated to the
// actual provider implementations which will use their own executors
- super(context, Runnable::run, Collections.emptySet());
+ super(DIRECT_EXECUTOR, Collections.emptySet());
mOwnerLock = ownerLock;
mRequest = ProviderRequest.EMPTY_REQUEST;
@@ -190,11 +191,6 @@ public class MockableLocationProvider extends AbstractLocationProvider {
}
}
- @Override
- public State getState() {
- return super.getState();
- }
-
/**
* Returns the current location request.
*/
@@ -204,6 +200,7 @@ public class MockableLocationProvider extends AbstractLocationProvider {
}
}
+ @Override
protected void onSetRequest(ProviderRequest request) {
synchronized (mOwnerLock) {
if (request == mRequest) {
@@ -218,6 +215,7 @@ public class MockableLocationProvider extends AbstractLocationProvider {
}
}
+ @Override
protected void onExtraCommand(int uid, int pid, String command, Bundle extras) {
synchronized (mOwnerLock) {
if (mProvider != null) {
@@ -226,6 +224,15 @@ public class MockableLocationProvider extends AbstractLocationProvider {
}
}
+ @Override
+ protected void onRequestSetAllowed(boolean allowed) {
+ synchronized (mOwnerLock) {
+ if (mProvider != null) {
+ mProvider.onRequestSetAllowed(allowed);
+ }
+ }
+ }
+
/**
* Dumps the current provider implementation.
*/
diff --git a/services/core/java/com/android/server/location/PassiveProvider.java b/services/core/java/com/android/server/location/PassiveProvider.java
index ef157a39fa28..54dffff8b1df 100644
--- a/services/core/java/com/android/server/location/PassiveProvider.java
+++ b/services/core/java/com/android/server/location/PassiveProvider.java
@@ -16,9 +16,12 @@
package com.android.server.location;
+import static com.android.internal.util.ConcurrentUtils.DIRECT_EXECUTOR;
+
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
+import android.os.Bundle;
import com.android.internal.location.ProviderProperties;
import com.android.internal.location.ProviderRequest;
@@ -49,9 +52,8 @@ public class PassiveProvider extends AbstractLocationProvider {
private volatile boolean mReportLocation;
public PassiveProvider(Context context) {
- // using a direct executor is only acceptable because this class is so simple it is trivial
- // to verify that it does not acquire any locks or re-enter LMS from callbacks
- super(context, Runnable::run);
+ // using a direct executor is ok because this class has no locks that could deadlock
+ super(DIRECT_EXECUTOR, context);
mReportLocation = false;
@@ -59,15 +61,26 @@ public class PassiveProvider extends AbstractLocationProvider {
setAllowed(true);
}
+ /**
+ * Pass a location into the passive provider.
+ */
+ public void updateLocation(Location location) {
+ if (mReportLocation) {
+ reportLocation(location);
+ }
+ }
+
@Override
public void onSetRequest(ProviderRequest request) {
mReportLocation = request.reportLocation;
}
- public void updateLocation(Location location) {
- if (mReportLocation) {
- reportLocation(location);
- }
+ @Override
+ protected void onExtraCommand(int uid, int pid, String command, Bundle extras) {}
+
+ @Override
+ protected void onRequestSetAllowed(boolean allowed) {
+ // do nothing - the passive provider is always allowed
}
@Override
diff --git a/services/core/java/com/android/server/locksettings/LockSettingsService.java b/services/core/java/com/android/server/locksettings/LockSettingsService.java
index baae4ea502d5..1f4048f821e5 100644
--- a/services/core/java/com/android/server/locksettings/LockSettingsService.java
+++ b/services/core/java/com/android/server/locksettings/LockSettingsService.java
@@ -139,6 +139,7 @@ import java.io.FileDescriptor;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
+import java.security.GeneralSecurityException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.KeyStoreException;
@@ -224,6 +225,7 @@ public class LockSettingsService extends ILockSettings.Stub {
private final KeyStore mKeyStore;
private final RecoverableKeyStoreManager mRecoverableKeyStoreManager;
+ private ManagedProfilePasswordCache mManagedProfilePasswordCache;
private final RebootEscrowManager mRebootEscrowManager;
@@ -387,6 +389,7 @@ public class LockSettingsService extends ILockSettings.Stub {
setLockCredentialInternal(unifiedProfilePassword, managedUserPassword, managedUserId,
/* isLockTiedToParent= */ true);
tieProfileLockToParent(managedUserId, unifiedProfilePassword);
+ mManagedProfilePasswordCache.storePassword(managedUserId, unifiedProfilePassword);
}
}
@@ -527,6 +530,16 @@ public class LockSettingsService extends ILockSettings.Stub {
int defaultValue) {
return Settings.Global.getInt(contentResolver, keyName, defaultValue);
}
+
+ public @NonNull ManagedProfilePasswordCache getManagedProfilePasswordCache() {
+ try {
+ java.security.KeyStore ks = java.security.KeyStore.getInstance("AndroidKeyStore");
+ ks.load(null);
+ return new ManagedProfilePasswordCache(ks, getUserManager());
+ } catch (Exception e) {
+ throw new IllegalStateException("Cannot load keystore", e);
+ }
+ }
}
public LockSettingsService(Context context) {
@@ -560,6 +573,7 @@ public class LockSettingsService extends ILockSettings.Stub {
mStrongAuthTracker.register(mStrongAuth);
mSpManager = injector.getSyntheticPasswordManager(mStorage);
+ mManagedProfilePasswordCache = injector.getManagedProfilePasswordCache();
mRebootEscrowManager = injector.getRebootEscrowManager(new RebootEscrowCallbacks(),
mStorage);
@@ -706,7 +720,8 @@ public class LockSettingsService extends ILockSettings.Stub {
private void ensureProfileKeystoreUnlocked(int userId) {
final KeyStore ks = KeyStore.getInstance();
if (ks.state(userId) == KeyStore.State.LOCKED
- && tiedManagedProfileReadyToUnlock(mUserManager.getUserInfo(userId))) {
+ && mUserManager.getUserInfo(userId).isManagedProfile()
+ && hasUnifiedChallenge(userId)) {
Slog.i(TAG, "Managed profile got unlocked, will unlock its keystore");
// If boot took too long and the password in vold got expired, parent keystore will
// be still locked, we ignore this case since the user will be prompted to unlock
@@ -1302,6 +1317,7 @@ public class LockSettingsService extends ILockSettings.Stub {
LockscreenCredential credential = LockscreenCredential.createManagedPassword(
decryptionResult);
Arrays.fill(decryptionResult, (byte) 0);
+ mManagedProfilePasswordCache.storePassword(userId, credential);
return credential;
}
@@ -1381,12 +1397,25 @@ public class LockSettingsService extends ILockSettings.Stub {
}
for (UserInfo profile : mUserManager.getProfiles(userId)) {
- // Unlock managed profile with unified lock
- if (tiedManagedProfileReadyToUnlock(profile)) {
- // Must pass the challenge on for resetLockout, so it's not over-written, which
- // causes LockSettingsService to revokeChallenge inappropriately.
- unlockChildProfile(profile.id, false /* ignoreUserNotAuthenticated */,
- challengeType, challenge, resetLockouts);
+ if (profile.id == userId) continue;
+ if (!profile.isManagedProfile()) continue;
+
+ if (hasUnifiedChallenge(profile.id)) {
+ if (mUserManager.isUserRunning(profile.id)) {
+ // Unlock managed profile with unified lock
+ // Must pass the challenge on for resetLockout, so it's not over-written, which
+ // causes LockSettingsService to revokeChallenge inappropriately.
+ unlockChildProfile(profile.id, false /* ignoreUserNotAuthenticated */,
+ challengeType, challenge, resetLockouts);
+ } else {
+ try {
+ // Profile not ready for unlock yet, but decrypt the unified challenge now
+ // so it goes into the cache
+ getDecryptedPasswordForTiedProfile(profile.id);
+ } catch (GeneralSecurityException | IOException e) {
+ Slog.d(TAG, "Cache work profile password failed", e);
+ }
+ }
}
// Now we have unlocked the parent user and attempted to unlock the profile we should
// show notifications if the profile is still locked.
@@ -1417,11 +1446,9 @@ public class LockSettingsService extends ILockSettings.Stub {
}
}
- private boolean tiedManagedProfileReadyToUnlock(UserInfo userInfo) {
- return userInfo.isManagedProfile()
- && !getSeparateProfileChallengeEnabledInternal(userInfo.id)
- && mStorage.hasChildProfileLock(userInfo.id)
- && mUserManager.isUserRunning(userInfo.id);
+ private boolean hasUnifiedChallenge(int userId) {
+ return !getSeparateProfileChallengeEnabledInternal(userId)
+ && mStorage.hasChildProfileLock(userId);
}
private Map<Integer, LockscreenCredential> getDecryptedPasswordsForAllTiedProfiles(int userId) {
@@ -2233,6 +2260,7 @@ public class LockSettingsService extends ILockSettings.Stub {
final KeyStore ks = KeyStore.getInstance();
ks.onUserRemoved(userId);
+ mManagedProfilePasswordCache.removePassword(userId);
gateKeeperClearSecureUserId(userId);
if (unknownUser || mUserManager.getUserInfo(userId).isManagedProfile()) {
@@ -2783,6 +2811,7 @@ public class LockSettingsService extends ILockSettings.Stub {
synchronizeUnifiedWorkChallengeForProfiles(userId, profilePasswords);
setUserPasswordMetrics(credential, userId);
+ mManagedProfilePasswordCache.removePassword(userId);
if (profilePasswords != null) {
for (Map.Entry<Integer, LockscreenCredential> entry : profilePasswords.entrySet()) {
@@ -3097,6 +3126,22 @@ public class LockSettingsService extends ILockSettings.Stub {
return true;
}
+ @Override
+ public boolean tryUnlockWithCachedUnifiedChallenge(int userId) {
+ try (LockscreenCredential cred = mManagedProfilePasswordCache.retrievePassword(userId)) {
+ if (cred == null) {
+ return false;
+ }
+ return doVerifyCredential(cred, CHALLENGE_NONE, 0, userId, null /* progressCallback */)
+ .getResponseCode() == VerifyCredentialResponse.RESPONSE_OK;
+ }
+ }
+
+ @Override
+ public void removeCachedUnifiedChallenge(int userId) {
+ mManagedProfilePasswordCache.removePassword(userId);
+ }
+
static String timestampToString(long timestamp) {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(timestamp));
}
diff --git a/services/core/java/com/android/server/locksettings/LockSettingsShellCommand.java b/services/core/java/com/android/server/locksettings/LockSettingsShellCommand.java
index 4943c25b1f18..7b767b86f0d4 100644
--- a/services/core/java/com/android/server/locksettings/LockSettingsShellCommand.java
+++ b/services/core/java/com/android/server/locksettings/LockSettingsShellCommand.java
@@ -44,6 +44,7 @@ class LockSettingsShellCommand extends ShellCommand {
private static final String COMMAND_SET_DISABLED = "set-disabled";
private static final String COMMAND_VERIFY = "verify";
private static final String COMMAND_GET_DISABLED = "get-disabled";
+ private static final String COMMAND_REMOVE_CACHE = "remove-cache";
private static final String COMMAND_HELP = "help";
private int mCurrentUserId;
@@ -76,6 +77,15 @@ class LockSettingsShellCommand extends ShellCommand {
return -1;
}
}
+ switch (cmd) {
+ // Commands that do not require authentication go here.
+ case COMMAND_REMOVE_CACHE:
+ runRemoveCache();
+ return 0;
+ case COMMAND_HELP:
+ onHelp();
+ return 0;
+ }
if (!checkCredential()) {
return -1;
}
@@ -105,9 +115,6 @@ class LockSettingsShellCommand extends ShellCommand {
case COMMAND_GET_DISABLED:
runGetDisabled();
break;
- case COMMAND_HELP:
- onHelp();
- break;
default:
getErrPrintWriter().println("Unknown command: " + cmd);
break;
@@ -163,6 +170,9 @@ class LockSettingsShellCommand extends ShellCommand {
pw.println(" verify [--old <CREDENTIAL>] [--user USER_ID]");
pw.println(" Verifies the lock credentials.");
pw.println("");
+ pw.println(" remove-cache [--user USER_ID]");
+ pw.println(" Removes cached unified challenge for the managed profile.");
+ pw.println("");
}
}
@@ -322,4 +332,9 @@ class LockSettingsShellCommand extends ShellCommand {
return true;
}
}
+
+ private void runRemoveCache() {
+ mLockPatternUtils.removeCachedUnifiedChallenge(mCurrentUserId);
+ getOutPrintWriter().println("Password cached removed for user " + mCurrentUserId);
+ }
}
diff --git a/services/core/java/com/android/server/locksettings/ManagedProfilePasswordCache.java b/services/core/java/com/android/server/locksettings/ManagedProfilePasswordCache.java
new file mode 100644
index 000000000000..d38ee678c7aa
--- /dev/null
+++ b/services/core/java/com/android/server/locksettings/ManagedProfilePasswordCache.java
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.locksettings;
+
+import android.annotation.Nullable;
+import android.content.pm.UserInfo;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.security.keystore.AndroidKeyStoreSpi;
+import android.security.keystore.KeyGenParameterSpec;
+import android.security.keystore.KeyProperties;
+import android.security.keystore.UserNotAuthenticatedException;
+import android.util.Slog;
+import android.util.SparseArray;
+
+import com.android.internal.widget.LockscreenCredential;
+
+import java.security.GeneralSecurityException;
+import java.security.Key;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.UnrecoverableKeyException;
+import java.util.Arrays;
+import java.util.concurrent.TimeUnit;
+
+import javax.crypto.Cipher;
+import javax.crypto.KeyGenerator;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.GCMParameterSpec;
+
+/**
+ * Caches *unified* work challenge for user 0's managed profiles. Only user 0's profile is supported
+ * at the moment because the cached credential is encrypted using a keystore key auth-bound to
+ * user 0: this is to match how unified work challenge is similarly auth-bound to its parent user's
+ * lockscreen credential normally. It's possible to extend this class to support managed profiles
+ * for secondary users, that will require generating auth-bound keys to their corresponding parent
+ * user though (which {@link KeyGenParameterSpec} does not support right now).
+ *
+ * <p> The cache is filled whenever the managed profile's unified challenge is created or derived
+ * (as part of the parent user's credential verification flow). It's removed when the profile is
+ * deleted or a (separate) lockscreen credential is explicitly set on the profile. There is also
+ * an ADB command to evict the cache "cmd lock_settings remove-cache --user X", to assist
+ * development and testing.
+
+ * <p> The encrypted credential is stored in-memory only so the cache does not persist across
+ * reboots.
+ */
+public class ManagedProfilePasswordCache {
+
+ private static final String TAG = "ManagedProfilePasswordCache";
+ private static final int KEY_LENGTH = 256;
+ private static final int CACHE_TIMEOUT_SECONDS = (int) TimeUnit.DAYS.toSeconds(7);
+
+ private final SparseArray<byte[]> mEncryptedPasswords = new SparseArray<>();
+ private final KeyStore mKeyStore;
+ private final UserManager mUserManager;
+
+ public ManagedProfilePasswordCache(KeyStore keyStore, UserManager userManager) {
+ mKeyStore = keyStore;
+ mUserManager = userManager;
+ }
+
+ /**
+ * Encrypt and store the password in the cache. Does NOT overwrite existing password cache
+ * if one for the given user already exists.
+ */
+ public void storePassword(int userId, LockscreenCredential password) {
+ synchronized (mEncryptedPasswords) {
+ if (mEncryptedPasswords.contains(userId)) {
+ return;
+ }
+ UserInfo parent = mUserManager.getProfileParent(userId);
+ if (parent == null || parent.id != UserHandle.USER_SYSTEM) {
+ // Since the cached password is encrypted using a keystore key auth-bound to user 0,
+ // only support caching password for user 0's profile.
+ return;
+ }
+ String keyName = getEncryptionKeyName(userId);
+ KeyGenerator generator;
+ SecretKey key;
+ try {
+ generator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES,
+ AndroidKeyStoreSpi.NAME);
+ generator.init(new KeyGenParameterSpec.Builder(
+ keyName, KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)
+ .setKeySize(KEY_LENGTH)
+ .setBlockModes(KeyProperties.BLOCK_MODE_GCM)
+ .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
+ // Generate auth-bound key to user 0 (since we the caller is user 0)
+ .setUserAuthenticationRequired(true)
+ .setUserAuthenticationValidityDurationSeconds(CACHE_TIMEOUT_SECONDS)
+ // Only accessible after user 0's keyguard is unlocked
+ .setUnlockedDeviceRequired(true)
+ .build());
+ key = generator.generateKey();
+ } catch (GeneralSecurityException e) {
+ Slog.e(TAG, "Cannot generate key", e);
+ return;
+ }
+
+ Cipher cipher;
+ try {
+ cipher = Cipher.getInstance("AES/GCM/NoPadding");
+ cipher.init(Cipher.ENCRYPT_MODE, key);
+ byte[] ciphertext = cipher.doFinal(password.getCredential());
+ byte[] iv = cipher.getIV();
+ byte[] block = Arrays.copyOf(iv, ciphertext.length + iv.length);
+ System.arraycopy(ciphertext, 0, block, iv.length, ciphertext.length);
+ mEncryptedPasswords.put(userId, block);
+ } catch (GeneralSecurityException e) {
+ Slog.d(TAG, "Cannot encrypt", e);
+ }
+ }
+ }
+
+ /** Attempt to retrieve the password for the given user. Returns {@code null} if it's not in the
+ * cache or if decryption fails.
+ */
+ public @Nullable LockscreenCredential retrievePassword(int userId) {
+ synchronized (mEncryptedPasswords) {
+ byte[] block = mEncryptedPasswords.get(userId);
+ if (block == null) {
+ return null;
+ }
+ Key key;
+ try {
+ key = mKeyStore.getKey(getEncryptionKeyName(userId), null);
+ } catch (UnrecoverableKeyException | KeyStoreException | NoSuchAlgorithmException e) {
+ Slog.d(TAG, "Cannot get key", e);
+ return null;
+ }
+ if (key == null) {
+ return null;
+ }
+ byte[] iv = Arrays.copyOf(block, 12);
+ byte[] ciphertext = Arrays.copyOfRange(block, 12, block.length);
+ byte[] credential;
+ try {
+ Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding");
+ cipher.init(Cipher.DECRYPT_MODE, key, new GCMParameterSpec(128, iv));
+ credential = cipher.doFinal(ciphertext);
+ } catch (UserNotAuthenticatedException e) {
+ Slog.i(TAG, "Device not unlocked for more than 7 days");
+ return null;
+ } catch (GeneralSecurityException e) {
+ Slog.d(TAG, "Cannot decrypt", e);
+ return null;
+ }
+ LockscreenCredential result = LockscreenCredential.createManagedPassword(credential);
+ Arrays.fill(credential, (byte) 0);
+ return result;
+ }
+ }
+
+ /** Remove the given user's password from cache, if one exists. */
+ public void removePassword(int userId) {
+ synchronized (mEncryptedPasswords) {
+ String keyName = getEncryptionKeyName(userId);
+ try {
+ if (mKeyStore.containsAlias(keyName)) {
+ mKeyStore.deleteEntry(keyName);
+ }
+ } catch (KeyStoreException e) {
+ Slog.d(TAG, "Cannot delete key", e);
+ }
+ if (mEncryptedPasswords.contains(userId)) {
+ Arrays.fill(mEncryptedPasswords.get(userId), (byte) 0);
+ mEncryptedPasswords.remove(userId);
+ }
+ }
+ }
+
+ private static String getEncryptionKeyName(int userId) {
+ return "com.android.server.locksettings.unified_profile_cache_" + userId;
+ }
+}
diff --git a/services/core/java/com/android/server/locksettings/RebootEscrowData.java b/services/core/java/com/android/server/locksettings/RebootEscrowData.java
index aee608e8a544..2b1907985aeb 100644
--- a/services/core/java/com/android/server/locksettings/RebootEscrowData.java
+++ b/services/core/java/com/android/server/locksettings/RebootEscrowData.java
@@ -26,16 +26,12 @@ import java.io.IOException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
-import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.SecretKeySpec;
/**
* Holds the data necessary to complete a reboot escrow of the Synthetic Password.
@@ -47,17 +43,11 @@ class RebootEscrowData {
*/
private static final int CURRENT_VERSION = 1;
- /** The secret key will be of this format. */
- private static final String KEY_ALGO = "AES";
-
- /** The key size used for encrypting the reboot escrow data. */
- private static final int KEY_SIZE_BITS = 256;
-
/** The algorithm used for the encryption of the key blob. */
private static final String CIPHER_ALGO = "AES/GCM/NoPadding";
private RebootEscrowData(byte spVersion, byte[] iv, byte[] syntheticPassword, byte[] blob,
- byte[] key) {
+ RebootEscrowKey key) {
mSpVersion = spVersion;
mIv = iv;
mSyntheticPassword = syntheticPassword;
@@ -69,7 +59,7 @@ class RebootEscrowData {
private final byte[] mIv;
private final byte[] mSyntheticPassword;
private final byte[] mBlob;
- private final byte[] mKey;
+ private final RebootEscrowKey mKey;
public byte getSpVersion() {
return mSpVersion;
@@ -87,17 +77,13 @@ class RebootEscrowData {
return mBlob;
}
- public byte[] getKey() {
+ public RebootEscrowKey getKey() {
return mKey;
}
- static SecretKeySpec fromKeyBytes(byte[] keyBytes) {
- return new SecretKeySpec(keyBytes, KEY_ALGO);
- }
-
- static RebootEscrowData fromEncryptedData(SecretKeySpec keySpec, byte[] blob)
+ static RebootEscrowData fromEncryptedData(RebootEscrowKey key, byte[] blob)
throws IOException {
- Preconditions.checkNotNull(keySpec);
+ Preconditions.checkNotNull(key);
Preconditions.checkNotNull(blob);
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(blob));
@@ -126,7 +112,7 @@ class RebootEscrowData {
final byte[] syntheticPassword;
try {
Cipher c = Cipher.getInstance(CIPHER_ALGO);
- c.init(Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(iv));
+ c.init(Cipher.DECRYPT_MODE, key.getKey(), new IvParameterSpec(iv));
syntheticPassword = c.doFinal(cipherText);
} catch (NoSuchAlgorithmException | InvalidKeyException | BadPaddingException
| IllegalBlockSizeException | NoSuchPaddingException
@@ -134,30 +120,22 @@ class RebootEscrowData {
throw new IOException("Could not decrypt ciphertext", e);
}
- return new RebootEscrowData(spVersion, iv, syntheticPassword, blob, keySpec.getEncoded());
+ return new RebootEscrowData(spVersion, iv, syntheticPassword, blob, key);
}
- static RebootEscrowData fromSyntheticPassword(byte spVersion, byte[] syntheticPassword)
+ static RebootEscrowData fromSyntheticPassword(RebootEscrowKey key, byte spVersion,
+ byte[] syntheticPassword)
throws IOException {
Preconditions.checkNotNull(syntheticPassword);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(bos);
- final SecretKey secretKey;
- try {
- KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_ALGO);
- keyGenerator.init(KEY_SIZE_BITS, new SecureRandom());
- secretKey = keyGenerator.generateKey();
- } catch (NoSuchAlgorithmException e) {
- throw new IOException("Could not generate new secret key", e);
- }
-
final byte[] cipherText;
final byte[] iv;
try {
Cipher cipher = Cipher.getInstance(CIPHER_ALGO);
- cipher.init(Cipher.ENCRYPT_MODE, secretKey);
+ cipher.init(Cipher.ENCRYPT_MODE, key.getKey());
cipherText = cipher.doFinal(syntheticPassword);
iv = cipher.getIV();
} catch (NoSuchAlgorithmException | BadPaddingException | IllegalBlockSizeException
@@ -173,6 +151,6 @@ class RebootEscrowData {
dos.write(cipherText);
return new RebootEscrowData(spVersion, iv, syntheticPassword, bos.toByteArray(),
- secretKey.getEncoded());
+ key);
}
}
diff --git a/services/core/java/com/android/server/locksettings/RebootEscrowKey.java b/services/core/java/com/android/server/locksettings/RebootEscrowKey.java
new file mode 100644
index 000000000000..5367319caa85
--- /dev/null
+++ b/services/core/java/com/android/server/locksettings/RebootEscrowKey.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.locksettings;
+
+import java.io.IOException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+
+import javax.crypto.KeyGenerator;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
+
+/**
+ * Key used to encrypt and decrypt the {@link RebootEscrowData}.
+ */
+class RebootEscrowKey {
+
+ /** The secret key will be of this format. */
+ private static final String KEY_ALGO = "AES";
+
+ /** The key size used for encrypting the reboot escrow data. */
+ private static final int KEY_SIZE_BITS = 256;
+
+ private final SecretKey mKey;
+
+ private RebootEscrowKey(SecretKey key) {
+ mKey = key;
+ }
+
+ static RebootEscrowKey fromKeyBytes(byte[] keyBytes) {
+ return new RebootEscrowKey(new SecretKeySpec(keyBytes, KEY_ALGO));
+ }
+
+ static RebootEscrowKey generate() throws IOException {
+ final SecretKey secretKey;
+ try {
+ KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_ALGO);
+ keyGenerator.init(KEY_SIZE_BITS, new SecureRandom());
+ secretKey = keyGenerator.generateKey();
+ } catch (NoSuchAlgorithmException e) {
+ throw new IOException("Could not generate new secret key", e);
+ }
+ return new RebootEscrowKey(secretKey);
+ }
+
+ SecretKey getKey() {
+ return mKey;
+ }
+
+ byte[] getKeyBytes() {
+ return mKey.getEncoded();
+ }
+}
diff --git a/services/core/java/com/android/server/locksettings/RebootEscrowManager.java b/services/core/java/com/android/server/locksettings/RebootEscrowManager.java
index 46ea9d11d1dc..e991f96b208f 100644
--- a/services/core/java/com/android/server/locksettings/RebootEscrowManager.java
+++ b/services/core/java/com/android/server/locksettings/RebootEscrowManager.java
@@ -25,27 +25,26 @@ import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserManager;
import android.util.Slog;
-import android.util.StatsLog;
+import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.widget.RebootEscrowListener;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.NoSuchElementException;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import javax.crypto.spec.SecretKeySpec;
class RebootEscrowManager {
private static final String TAG = "RebootEscrowManager";
/**
- * Used to track when the reboot escrow is wanted. Set to false when mRebootEscrowReady is
- * true.
+ * Used to track when the reboot escrow is wanted. Should stay true once escrow is requested
+ * unless clearRebootEscrow is called. This will allow all the active users to be unlocked
+ * after reboot.
*/
- private final AtomicBoolean mRebootEscrowWanted = new AtomicBoolean(false);
+ private boolean mRebootEscrowWanted;
/** Used to track when reboot escrow is ready. */
private boolean mRebootEscrowReady;
@@ -54,10 +53,16 @@ class RebootEscrowManager {
private RebootEscrowListener mRebootEscrowListener;
/**
+ * Hold this lock when checking or generating the reboot escrow key.
+ */
+ private final Object mKeyGenerationLock = new Object();
+
+ /**
* Stores the reboot escrow data between when it's supplied and when
* {@link #armRebootEscrowIfNeeded()} is called.
*/
- private RebootEscrowData mPendingRebootEscrowData;
+ @GuardedBy("mKeyGenerationLock")
+ private RebootEscrowKey mPendingRebootEscrowKey;
private final UserManager mUserManager;
@@ -82,6 +87,7 @@ class RebootEscrowManager {
public Context getContext() {
return mContext;
}
+
public UserManager getUserManager() {
return (UserManager) mContext.getSystemService(Context.USER_SERVICE);
}
@@ -123,13 +129,13 @@ class RebootEscrowManager {
return;
}
- SecretKeySpec escrowKey = getAndClearRebootEscrowKey();
+ RebootEscrowKey escrowKey = getAndClearRebootEscrowKey();
if (escrowKey == null) {
Slog.w(TAG, "Had reboot escrow data for users, but no key; removing escrow storage.");
for (UserInfo user : users) {
mStorage.removeRebootEscrow(user.id);
}
- StatsLog.write(StatsLog.REBOOT_ESCROW_RECOVERY_REPORTED, false);
+ FrameworkStatsLog.write(FrameworkStatsLog.REBOOT_ESCROW_RECOVERY_REPORTED, false);
return;
}
@@ -137,10 +143,11 @@ class RebootEscrowManager {
for (UserInfo user : rebootEscrowUsers) {
allUsersUnlocked &= restoreRebootEscrowForUser(user.id, escrowKey);
}
- StatsLog.write(StatsLog.REBOOT_ESCROW_RECOVERY_REPORTED, allUsersUnlocked);
+ FrameworkStatsLog.write(FrameworkStatsLog.REBOOT_ESCROW_RECOVERY_REPORTED,
+ allUsersUnlocked);
}
- private SecretKeySpec getAndClearRebootEscrowKey() {
+ private RebootEscrowKey getAndClearRebootEscrowKey() {
IRebootEscrow rebootEscrow = mInjector.getRebootEscrow();
if (rebootEscrow == null) {
return null;
@@ -170,14 +177,14 @@ class RebootEscrowManager {
// Overwrite the existing key with the null key
rebootEscrow.storeKey(new byte[32]);
- return RebootEscrowData.fromKeyBytes(escrowKeyBytes);
+ return RebootEscrowKey.fromKeyBytes(escrowKeyBytes);
} catch (RemoteException e) {
Slog.w(TAG, "Could not retrieve escrow data");
return null;
}
}
- private boolean restoreRebootEscrowForUser(@UserIdInt int userId, SecretKeySpec escrowKey) {
+ private boolean restoreRebootEscrowForUser(@UserIdInt int userId, RebootEscrowKey key) {
if (!mStorage.hasRebootEscrow(userId)) {
return false;
}
@@ -186,7 +193,7 @@ class RebootEscrowManager {
byte[] blob = mStorage.readRebootEscrow(userId);
mStorage.removeRebootEscrow(userId);
- RebootEscrowData escrowData = RebootEscrowData.fromEncryptedData(escrowKey, blob);
+ RebootEscrowData escrowData = RebootEscrowData.fromEncryptedData(key, blob);
mCallbacks.onRebootEscrowRestored(escrowData.getSpVersion(),
escrowData.getSyntheticPassword(), userId);
@@ -199,33 +206,60 @@ class RebootEscrowManager {
void callToRebootEscrowIfNeeded(@UserIdInt int userId, byte spVersion,
byte[] syntheticPassword) {
- if (!mRebootEscrowWanted.compareAndSet(true, false)) {
+ if (!mRebootEscrowWanted) {
return;
}
IRebootEscrow rebootEscrow = mInjector.getRebootEscrow();
if (rebootEscrow == null) {
+ mRebootEscrowWanted = false;
+ setRebootEscrowReady(false);
+ return;
+ }
+
+ RebootEscrowKey escrowKey = generateEscrowKeyIfNeeded();
+ if (escrowKey == null) {
+ Slog.e(TAG, "Could not generate escrow key");
+ mRebootEscrowWanted = false;
setRebootEscrowReady(false);
return;
}
final RebootEscrowData escrowData;
try {
- escrowData = RebootEscrowData.fromSyntheticPassword(spVersion, syntheticPassword);
+ escrowData = RebootEscrowData.fromSyntheticPassword(escrowKey, spVersion,
+ syntheticPassword);
} catch (IOException e) {
setRebootEscrowReady(false);
Slog.w(TAG, "Could not escrow reboot data", e);
return;
}
- mPendingRebootEscrowData = escrowData;
mStorage.writeRebootEscrow(userId, escrowData.getBlob());
setRebootEscrowReady(true);
}
+ private RebootEscrowKey generateEscrowKeyIfNeeded() {
+ synchronized (mKeyGenerationLock) {
+ if (mPendingRebootEscrowKey != null) {
+ return mPendingRebootEscrowKey;
+ }
+
+ RebootEscrowKey key;
+ try {
+ key = RebootEscrowKey.generate();
+ } catch (IOException e) {
+ return null;
+ }
+
+ mPendingRebootEscrowKey = key;
+ return key;
+ }
+ }
+
private void clearRebootEscrowIfNeeded() {
- mRebootEscrowWanted.set(false);
+ mRebootEscrowWanted = false;
setRebootEscrowReady(false);
IRebootEscrow rebootEscrow = mInjector.getRebootEscrow();
@@ -255,14 +289,18 @@ class RebootEscrowManager {
return false;
}
- RebootEscrowData escrowData = mPendingRebootEscrowData;
- if (escrowData == null) {
+ RebootEscrowKey escrowKey;
+ synchronized (mKeyGenerationLock) {
+ escrowKey = mPendingRebootEscrowKey;
+ }
+
+ if (escrowKey == null) {
return false;
}
boolean armedRebootEscrow = false;
try {
- rebootEscrow.storeKey(escrowData.getKey());
+ rebootEscrow.storeKey(escrowKey.getKeyBytes());
armedRebootEscrow = true;
} catch (RemoteException e) {
Slog.w(TAG, "Failed escrow secret to RebootEscrow HAL", e);
@@ -283,7 +321,7 @@ class RebootEscrowManager {
}
clearRebootEscrowIfNeeded();
- mRebootEscrowWanted.set(true);
+ mRebootEscrowWanted = true;
return true;
}
diff --git a/services/core/java/com/android/server/media/BluetoothRouteProvider.java b/services/core/java/com/android/server/media/BluetoothRouteProvider.java
index 8179c32ae2df..669f1ac6750c 100644
--- a/services/core/java/com/android/server/media/BluetoothRouteProvider.java
+++ b/services/core/java/com/android/server/media/BluetoothRouteProvider.java
@@ -186,6 +186,7 @@ class BluetoothRouteProvider {
.setConnectionState(MediaRoute2Info.CONNECTION_STATE_DISCONNECTED)
.setDescription(mContext.getResources().getText(
R.string.bluetooth_a2dp_audio_route_name).toString())
+ .setDeviceType(MediaRoute2Info.DEVICE_TYPE_BLUETOOTH)
.build();
newBtRoute.connectedProfiles = new SparseBooleanArray();
return newBtRoute;
diff --git a/services/core/java/com/android/server/media/MediaKeyDispatcher.java b/services/core/java/com/android/server/media/MediaKeyDispatcher.java
new file mode 100644
index 000000000000..16b9eb910ec1
--- /dev/null
+++ b/services/core/java/com/android/server/media/MediaKeyDispatcher.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.media;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.media.session.MediaSession;
+import android.view.KeyEvent;
+
+/**
+ * Provides a way to customize behavior for media key events.
+ */
+public interface MediaKeyDispatcher {
+ /**
+ * Implement this to customize the logic for which MediaSession should consume which key event.
+ *
+ * @param keyEvent a non-null KeyEvent whose key code is one of the supported media buttons.
+ * @param asSystemService {@code true} if the event came from the system service via hardware
+ * devices. {@code false} if the event came from the app process through key injection.
+ * @return a {@link MediaSession.Token} instance that should consume the given key event.
+ */
+ @Nullable
+ MediaSession.Token getSessionForKeyEvent(@NonNull KeyEvent keyEvent,
+ boolean asSystemService);
+}
diff --git a/services/core/java/com/android/server/media/MediaRoute2Provider.java b/services/core/java/com/android/server/media/MediaRoute2Provider.java
index 1cd8aad3f0c5..83588846ade8 100644
--- a/services/core/java/com/android/server/media/MediaRoute2Provider.java
+++ b/services/core/java/com/android/server/media/MediaRoute2Provider.java
@@ -21,6 +21,7 @@ import android.annotation.Nullable;
import android.content.ComponentName;
import android.content.Intent;
import android.media.MediaRoute2ProviderInfo;
+import android.media.RouteDiscoveryPreference;
import android.media.RoutingSessionInfo;
import android.os.Bundle;
@@ -36,6 +37,7 @@ abstract class MediaRoute2Provider {
final Object mLock = new Object();
Callback mCallback;
+ boolean mIsSystemRouteProvider;
private volatile MediaRoute2ProviderInfo mProviderInfo;
@GuardedBy("mLock")
@@ -53,6 +55,7 @@ abstract class MediaRoute2Provider {
public abstract void requestCreateSession(String packageName, String routeId, long requestId,
@Nullable Bundle sessionHints);
public abstract void releaseSession(String sessionId);
+ public abstract void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference);
public abstract void selectRoute(String sessionId, String routeId);
public abstract void deselectRoute(String sessionId, String routeId);
@@ -60,7 +63,6 @@ abstract class MediaRoute2Provider {
public abstract void sendControlRequest(String routeId, Intent request);
public abstract void requestSetVolume(String routeId, int volume);
- public abstract void requestUpdateVolume(String routeId, int delta);
@NonNull
public String getUniqueId() {
@@ -85,6 +87,7 @@ abstract class MediaRoute2Provider {
} else {
mProviderInfo = new MediaRoute2ProviderInfo.Builder(providerInfo)
.setUniqueId(mUniqueId)
+ .setSystemRouteProvider(mIsSystemRouteProvider)
.build();
}
}
diff --git a/services/core/java/com/android/server/media/MediaRoute2ProviderProxy.java b/services/core/java/com/android/server/media/MediaRoute2ProviderProxy.java
index e23542edb214..d08fb71d3dee 100644
--- a/services/core/java/com/android/server/media/MediaRoute2ProviderProxy.java
+++ b/services/core/java/com/android/server/media/MediaRoute2ProviderProxy.java
@@ -25,6 +25,7 @@ import android.media.IMediaRoute2Provider;
import android.media.IMediaRoute2ProviderClient;
import android.media.MediaRoute2ProviderInfo;
import android.media.MediaRoute2ProviderService;
+import android.media.RouteDiscoveryPreference;
import android.media.RoutingSessionInfo;
import android.os.Bundle;
import android.os.Handler;
@@ -93,6 +94,14 @@ final class MediaRoute2ProviderProxy extends MediaRoute2Provider implements Serv
}
@Override
+ public void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference) {
+ if (mConnectionReady) {
+ mActiveConnection.updateDiscoveryPreference(discoveryPreference);
+ updateBinding();
+ }
+ }
+
+ @Override
public void selectRoute(String sessionId, String routeId) {
if (mConnectionReady) {
mActiveConnection.selectRoute(sessionId, routeId);
@@ -129,14 +138,6 @@ final class MediaRoute2ProviderProxy extends MediaRoute2Provider implements Serv
}
}
- @Override
- public void requestUpdateVolume(String routeId, int delta) {
- if (mConnectionReady) {
- mActiveConnection.requestUpdateVolume(routeId, delta);
- updateBinding();
- }
- }
-
public boolean hasComponentName(String packageName, String className) {
return mComponentName.getPackageName().equals(packageName)
&& mComponentName.getClassName().equals(className);
@@ -461,6 +462,14 @@ final class MediaRoute2ProviderProxy extends MediaRoute2Provider implements Serv
}
}
+ public void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference) {
+ try {
+ mProvider.updateDiscoveryPreference(discoveryPreference);
+ } catch (RemoteException ex) {
+ Slog.e(TAG, "updateDiscoveryPreference(): Failed to deliver request.");
+ }
+ }
+
public void selectRoute(String sessionId, String routeId) {
try {
mProvider.selectRoute(sessionId, routeId);
@@ -501,14 +510,6 @@ final class MediaRoute2ProviderProxy extends MediaRoute2Provider implements Serv
}
}
- public void requestUpdateVolume(String routeId, int delta) {
- try {
- mProvider.requestUpdateVolume(routeId, delta);
- } catch (RemoteException ex) {
- Slog.e(TAG, "Failed to deliver request to request update volume.", ex);
- }
- }
-
@Override
public void binderDied() {
mHandler.post(() -> onConnectionDied(Connection.this));
diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
index 9594659f23d0..b1133223e59a 100644
--- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
+++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
@@ -334,20 +334,6 @@ class MediaRouter2ServiceImpl {
}
}
- public void requestUpdateVolume2(IMediaRouter2Client client, MediaRoute2Info route, int delta) {
- Objects.requireNonNull(client, "client must not be null");
- Objects.requireNonNull(route, "route must not be null");
-
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mLock) {
- requestUpdateVolumeLocked(client, route, delta);
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
public void requestCreateClientSession(IMediaRouter2Manager manager, String packageName,
MediaRoute2Info route, int requestId) {
final long token = Binder.clearCallingIdentity();
@@ -375,21 +361,6 @@ class MediaRouter2ServiceImpl {
}
}
- public void requestUpdateVolume2Manager(IMediaRouter2Manager manager,
- MediaRoute2Info route, int delta) {
- Objects.requireNonNull(manager, "manager must not be null");
- Objects.requireNonNull(route, "route must not be null");
-
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mLock) {
- requestUpdateVolumeLocked(manager, route, delta);
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
@NonNull
public List<RoutingSessionInfo> getActiveSessions(IMediaRouter2Manager manager) {
final long token = Binder.clearCallingIdentity();
@@ -598,6 +569,9 @@ class MediaRouter2ServiceImpl {
clientRecord.mUserRecord.mHandler.sendMessage(
obtainMessage(UserHandler::updateClientUsage,
clientRecord.mUserRecord.mHandler, clientRecord));
+ clientRecord.mUserRecord.mHandler.sendMessage(
+ obtainMessage(UserHandler::updateDiscoveryPreference,
+ clientRecord.mUserRecord.mHandler));
}
}
@@ -625,18 +599,6 @@ class MediaRouter2ServiceImpl {
}
}
- private void requestUpdateVolumeLocked(IMediaRouter2Client client, MediaRoute2Info route,
- int delta) {
- final IBinder binder = client.asBinder();
- Client2Record clientRecord = mAllClientRecords.get(binder);
-
- if (clientRecord != null) {
- clientRecord.mUserRecord.mHandler.sendMessage(
- obtainMessage(UserHandler::requestUpdateVolume,
- clientRecord.mUserRecord.mHandler, route, delta));
- }
- }
-
private void registerManagerLocked(IMediaRouter2Manager manager,
int uid, int pid, String packageName, int userId, boolean trusted) {
final IBinder binder = manager.asBinder();
@@ -710,18 +672,6 @@ class MediaRouter2ServiceImpl {
}
}
- private void requestUpdateVolumeLocked(IMediaRouter2Manager manager, MediaRoute2Info route,
- int delta) {
- final IBinder binder = manager.asBinder();
- ManagerRecord managerRecord = mAllManagerRecords.get(binder);
-
- if (managerRecord != null) {
- managerRecord.mUserRecord.mHandler.sendMessage(
- obtainMessage(UserHandler::requestUpdateVolume,
- managerRecord.mUserRecord.mHandler, route, delta));
- }
- }
-
private List<RoutingSessionInfo> getActiveSessionsLocked(IMediaRouter2Manager manager) {
final IBinder binder = manager.asBinder();
ManagerRecord managerRecord = mAllManagerRecords.get(binder);
@@ -856,6 +806,7 @@ class MediaRouter2ServiceImpl {
//TODO: make records private for thread-safety
final ArrayList<Client2Record> mClientRecords = new ArrayList<>();
final ArrayList<ManagerRecord> mManagerRecords = new ArrayList<>();
+ RouteDiscoveryPreference mCompositeDiscoveryPreference = RouteDiscoveryPreference.EMPTY;
final UserHandler mHandler;
UserRecord(int userId) {
@@ -885,8 +836,6 @@ class MediaRouter2ServiceImpl {
public final int mClientId;
public RouteDiscoveryPreference mDiscoveryPreference;
- public boolean mIsManagerSelecting;
- public MediaRoute2Info mSelectingRoute;
public MediaRoute2Info mSelectedRoute;
Client2Record(UserRecord userRecord, IMediaRouter2Client client,
@@ -1003,6 +952,7 @@ class MediaRouter2ServiceImpl {
public void onAddProvider(MediaRoute2ProviderProxy provider) {
provider.setCallback(this);
mMediaProviders.add(provider);
+ provider.updateDiscoveryPreference(mUserRecord.mCompositeDiscoveryPreference);
}
@Override
@@ -1456,13 +1406,6 @@ class MediaRouter2ServiceImpl {
}
}
- private void requestUpdateVolume(MediaRoute2Info route, int delta) {
- final MediaRoute2Provider provider = findProvider(route.getProviderId());
- if (provider != null) {
- provider.requestUpdateVolume(route.getOriginalId(), delta);
- }
- }
-
private List<IMediaRouter2Client> getClients() {
final List<IMediaRouter2Client> clients = new ArrayList<>();
MediaRouter2ServiceImpl service = mServiceRef.get();
@@ -1642,6 +1585,25 @@ class MediaRouter2ServiceImpl {
}
}
+ private void updateDiscoveryPreference() {
+ MediaRouter2ServiceImpl service = mServiceRef.get();
+ if (service == null) {
+ return;
+ }
+ List<RouteDiscoveryPreference> discoveryPreferences = new ArrayList<>();
+ synchronized (service.mLock) {
+ for (Client2Record clientRecord : mUserRecord.mClientRecords) {
+ discoveryPreferences.add(clientRecord.mDiscoveryPreference);
+ }
+ mUserRecord.mCompositeDiscoveryPreference =
+ new RouteDiscoveryPreference.Builder(discoveryPreferences)
+ .build();
+ }
+ for (MediaRoute2Provider provider : mMediaProviders) {
+ provider.updateDiscoveryPreference(mUserRecord.mCompositeDiscoveryPreference);
+ }
+ }
+
private MediaRoute2Provider findProvider(String providerId) {
for (MediaRoute2Provider provider : mMediaProviders) {
if (TextUtils.equals(provider.getUniqueId(), providerId)) {
diff --git a/services/core/java/com/android/server/media/MediaRouterService.java b/services/core/java/com/android/server/media/MediaRouterService.java
index e1d38039b955..57f0328f1c00 100644
--- a/services/core/java/com/android/server/media/MediaRouterService.java
+++ b/services/core/java/com/android/server/media/MediaRouterService.java
@@ -539,12 +539,6 @@ public final class MediaRouterService extends IMediaRouterService.Stub
// Binder call
@Override
- public void requestUpdateVolume2(IMediaRouter2Client client, MediaRoute2Info route, int delta) {
- mService2.requestUpdateVolume2(client, route, delta);
- }
-
- // Binder call
- @Override
public void requestSetVolume2Manager(IMediaRouter2Manager manager,
MediaRoute2Info route, int volume) {
mService2.requestSetVolume2Manager(manager, route, volume);
@@ -552,13 +546,6 @@ public final class MediaRouterService extends IMediaRouterService.Stub
// Binder call
@Override
- public void requestUpdateVolume2Manager(IMediaRouter2Manager manager,
- MediaRoute2Info route, int delta) {
- mService2.requestUpdateVolume2Manager(manager, route, delta);
- }
-
- // Binder call
- @Override
public List<RoutingSessionInfo> getActiveSessions(IMediaRouter2Manager manager) {
return mService2.getActiveSessions(manager);
}
diff --git a/services/core/java/com/android/server/media/MediaSession2Record.java b/services/core/java/com/android/server/media/MediaSession2Record.java
index b21d2e789555..11b7a8a23e14 100644
--- a/services/core/java/com/android/server/media/MediaSession2Record.java
+++ b/services/core/java/com/android/server/media/MediaSession2Record.java
@@ -50,15 +50,20 @@ public class MediaSession2Record implements MediaSessionRecordImpl {
private final MediaSessionService mService;
@GuardedBy("mLock")
private boolean mIsConnected;
+ @GuardedBy("mLock")
+ private int mPolicies;
+ @GuardedBy("mLock")
+ private boolean mIsClosed;
public MediaSession2Record(Session2Token sessionToken, MediaSessionService service,
- Looper handlerLooper) {
+ Looper handlerLooper, int policies) {
mSessionToken = sessionToken;
mService = service;
mHandlerExecutor = new HandlerExecutor(new Handler(handlerLooper));
mController = new MediaController2.Builder(service.getContext(), sessionToken)
.setControllerCallback(mHandlerExecutor, new Controller2Callback())
.build();
+ mPolicies = policies;
}
@Override
@@ -116,6 +121,7 @@ public class MediaSession2Record implements MediaSessionRecordImpl {
@Override
public void close() {
synchronized (mLock) {
+ mIsClosed = true;
// Call close regardless of the mIsAvailable. This may be called when it's not yet
// connected.
mController.close();
@@ -123,12 +129,34 @@ public class MediaSession2Record implements MediaSessionRecordImpl {
}
@Override
+ public boolean isClosed() {
+ synchronized (mLock) {
+ return mIsClosed;
+ }
+ }
+
+ @Override
public boolean sendMediaButton(String packageName, int pid, int uid, boolean asSystemService,
KeyEvent ke, int sequenceId, ResultReceiver cb) {
// TODO(jaewan): Implement.
return false;
}
+
+ @Override
+ public int getSessionPolicies() {
+ synchronized (mLock) {
+ return mPolicies;
+ }
+ }
+
+ @Override
+ public void setSessionPolicies(int policies) {
+ synchronized (mLock) {
+ mPolicies = policies;
+ }
+ }
+
@Override
public void dump(PrintWriter pw, String prefix) {
pw.println(prefix + "token=" + mSessionToken);
diff --git a/services/core/java/com/android/server/media/MediaSessionRecord.java b/services/core/java/com/android/server/media/MediaSessionRecord.java
index 46fb24048a20..7bcbcd4a3d09 100644
--- a/services/core/java/com/android/server/media/MediaSessionRecord.java
+++ b/services/core/java/com/android/server/media/MediaSessionRecord.java
@@ -159,9 +159,12 @@ public class MediaSessionRecord implements IBinder.DeathRecipient, MediaSessionR
private long mDuration = -1;
private String mMetadataDescription;
+ private int mPolicies;
+
public MediaSessionRecord(int ownerPid, int ownerUid, int userId, String ownerPackageName,
ISessionCallback cb, String tag, Bundle sessionInfo,
- MediaSessionService service, Looper handlerLooper) throws RemoteException {
+ MediaSessionService service, Looper handlerLooper, int policies)
+ throws RemoteException {
mOwnerPid = ownerPid;
mOwnerUid = ownerUid;
mUserId = userId;
@@ -178,6 +181,7 @@ public class MediaSessionRecord implements IBinder.DeathRecipient, MediaSessionR
mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
mAudioManagerInternal = LocalServices.getService(AudioManagerInternal.class);
mAudioAttrs = DEFAULT_ATTRIBUTES;
+ mPolicies = policies;
// May throw RemoteException if the session app is killed.
mSessionCb.mCb.asBinder().linkToDeath(this, 0);
@@ -416,6 +420,13 @@ public class MediaSessionRecord implements IBinder.DeathRecipient, MediaSessionR
}
}
+ @Override
+ public boolean isClosed() {
+ synchronized (mLock) {
+ return mDestroyed;
+ }
+ }
+
/**
* Sends media button.
*
@@ -438,6 +449,20 @@ public class MediaSessionRecord implements IBinder.DeathRecipient, MediaSessionR
}
@Override
+ public int getSessionPolicies() {
+ synchronized (mLock) {
+ return mPolicies;
+ }
+ }
+
+ @Override
+ public void setSessionPolicies(int policies) {
+ synchronized (mLock) {
+ mPolicies = policies;
+ }
+ }
+
+ @Override
public void dump(PrintWriter pw, String prefix) {
pw.println(prefix + mTag + " " + this);
@@ -808,6 +833,9 @@ public class MediaSessionRecord implements IBinder.DeathRecipient, MediaSessionR
@Override
public void setMediaButtonReceiver(PendingIntent pi) throws RemoteException {
+ if ((mPolicies & SessionPolicyProvider.SESSION_POLICY_IGNORE_BUTTON_RECEIVER) == 1) {
+ return;
+ }
mMediaButtonReceiver = pi;
final long token = Binder.clearCallingIdentity();
try {
diff --git a/services/core/java/com/android/server/media/MediaSessionRecordImpl.java b/services/core/java/com/android/server/media/MediaSessionRecordImpl.java
index 2cde89a7a6f6..74e6dedaeee5 100644
--- a/services/core/java/com/android/server/media/MediaSessionRecordImpl.java
+++ b/services/core/java/com/android/server/media/MediaSessionRecordImpl.java
@@ -20,6 +20,8 @@ import android.media.AudioManager;
import android.os.ResultReceiver;
import android.view.KeyEvent;
+import com.android.server.media.SessionPolicyProvider.SessionPolicy;
+
import java.io.PrintWriter;
/**
@@ -128,6 +130,18 @@ public interface MediaSessionRecordImpl extends AutoCloseable {
KeyEvent ke, int sequenceId, ResultReceiver cb);
/**
+ * Get session policies from custom policy provider set when MediaSessionRecord is instantiated.
+ * If custom policy does not exist, will return null.
+ */
+ @SessionPolicy
+ int getSessionPolicies();
+
+ /**
+ * Overwrite session policies that have been set when MediaSessionRecord is instantiated.
+ */
+ void setSessionPolicies(@SessionPolicy int policies);
+
+ /**
* Dumps internal state
*
* @param pw print writer
@@ -140,4 +154,9 @@ public interface MediaSessionRecordImpl extends AutoCloseable {
*/
@Override
void close();
+
+ /**
+ * Returns whether {@link #close()} is called before.
+ */
+ boolean isClosed();
}
diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java
index a6ad57a7ae3a..88b884efce83 100644
--- a/services/core/java/com/android/server/media/MediaSessionService.java
+++ b/services/core/java/com/android/server/media/MediaSessionService.java
@@ -141,6 +141,9 @@ public class MediaSessionService extends SystemService implements Monitor {
final RemoteCallbackList<IRemoteVolumeController> mRemoteVolumeControllers =
new RemoteCallbackList<>();
+ private SessionPolicyProvider mCustomSessionPolicyProvider;
+ private MediaKeyDispatcher mCustomMediaKeyDispatcher;
+
public MediaSessionService(Context context) {
super(context);
mContext = context;
@@ -179,6 +182,9 @@ public class MediaSessionService extends SystemService implements Monitor {
mSettingsObserver.observe();
mHasFeatureLeanback = mContext.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_LEANBACK);
+
+ // TODO: (jinpark) check if config value for custom MediaKeyDispatcher and
+ // SessionPolicyProvider have been overlayed and instantiate using reflection.
updateUser();
}
@@ -428,9 +434,14 @@ public class MediaSessionService extends SystemService implements Monitor {
if (DEBUG) {
Log.d(TAG, "Destroying " + session);
}
+ if (session.isClosed()) {
+ Log.w(TAG, "Destroying already destroyed session. Ignoring.");
+ return;
+ }
+
FullUserRecord user = getFullUserRecordLocked(session.getUserId());
- if (user != null) {
+ if (user != null && session instanceof MediaSessionRecord) {
final int uid = session.getUid();
final int sessionCount = user.mUidToSessionCount.get(uid, 0);
if (sessionCount <= 0) {
@@ -555,7 +566,8 @@ public class MediaSessionService extends SystemService implements Monitor {
* 4. It needs to be added to the relevant user record.
*/
private MediaSessionRecord createSessionInternal(int callerPid, int callerUid, int userId,
- String callerPackageName, ISessionCallback cb, String tag, Bundle sessionInfo) {
+ String callerPackageName, ISessionCallback cb, String tag, Bundle sessionInfo,
+ int policies) {
synchronized (mLock) {
FullUserRecord user = getFullUserRecordLocked(userId);
if (user == null) {
@@ -563,20 +575,22 @@ public class MediaSessionService extends SystemService implements Monitor {
throw new RuntimeException("Session request from invalid user.");
}
+ final int sessionCount = user.mUidToSessionCount.get(callerUid, 0);
+ if (sessionCount >= SESSION_CREATION_LIMIT_PER_UID
+ && !hasMediaControlPermission(callerPid, callerUid)) {
+ throw new RuntimeException("Created too many sessions. count="
+ + sessionCount + ")");
+ }
+
final MediaSessionRecord session;
try {
session = new MediaSessionRecord(callerPid, callerUid, userId,
- callerPackageName, cb, tag, sessionInfo, this, mHandler.getLooper());
+ callerPackageName, cb, tag, sessionInfo, this, mHandler.getLooper(),
+ policies);
} catch (RemoteException e) {
throw new RuntimeException("Media Session owner died prematurely.", e);
}
- final int sessionCount = user.mUidToSessionCount.get(callerUid, 0);
- if (sessionCount >= SESSION_CREATION_LIMIT_PER_UID
- && !hasMediaControlPermission(callerPid, callerUid)) {
- throw new RuntimeException("Created too many sessions. count="
- + sessionCount + ")");
- }
user.mUidToSessionCount.put(callerUid, sessionCount + 1);
user.mPriorityStack.addSession(session);
@@ -1127,8 +1141,11 @@ public class MediaSessionService extends SystemService implements Monitor {
if (cb == null) {
throw new IllegalArgumentException("Controller callback cannot be null");
}
+ int policies = (mCustomSessionPolicyProvider != null)
+ ? mCustomSessionPolicyProvider.getSessionPoliciesForApplication(
+ uid, packageName) : 0;
return createSessionInternal(pid, uid, resolvedUserId, packageName, cb, tag,
- sessionInfo).getSessionBinder();
+ sessionInfo, policies).getSessionBinder();
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -1148,7 +1165,7 @@ public class MediaSessionService extends SystemService implements Monitor {
+ " but actually=" + sessionToken.getUid());
}
MediaSession2Record record = new MediaSession2Record(
- sessionToken, MediaSessionService.this, mHandler.getLooper());
+ sessionToken, MediaSessionService.this, mHandler.getLooper(), 0);
synchronized (mLock) {
FullUserRecord user = getFullUserRecordLocked(record.getUserId());
user.mPriorityStack.addSession(record);
@@ -1308,12 +1325,11 @@ public class MediaSessionService extends SystemService implements Monitor {
* ACTION_MEDIA_BUTTON intent to the rest of the system.
*
* @param packageName The caller package
- * @param asSystemService {@code true} if the event sent to the session as if it was come
- * from the system service instead of the app process. This helps sessions to
- * distinguish between the key injection by the app and key events from the
- * hardware devices. Should be used only when the volume key events aren't handled
- * by foreground activity. {@code false} otherwise to tell session about the real
- * caller.
+ * @param asSystemService {@code true} if the event sent to the session came from the
+ * service instead of the app process. This helps sessions to distinguish between
+ * the key injection by the app and key events from the hardware devices. Should be
+ * used only when the hardware key events aren't handled by foreground activity.
+ * {@code false} otherwise to tell session about the real caller.
* @param keyEvent a non-null KeyEvent whose key code is one of the
* supported media buttons
* @param needWakeLock true if a PARTIAL_WAKE_LOCK needs to be held
@@ -2115,14 +2131,27 @@ public class MediaSessionService extends SystemService implements Monitor {
// TODO(jaewan): Implement
return;
}
- MediaSessionRecord session =
- (MediaSessionRecord) mCurrentFullUserRecord.getMediaButtonSessionLocked();
+ MediaSessionRecord session = null;
+
+ // Retrieve custom session for key event if it exists.
+ if (mCustomMediaKeyDispatcher != null) {
+ MediaSession.Token token =
+ mCustomMediaKeyDispatcher.getSessionForKeyEvent(keyEvent, asSystemService);
+ if (token != null) {
+ session = getMediaSessionRecordLocked(token);
+ }
+ }
+
+ if (session == null) {
+ session = (MediaSessionRecord) mCurrentFullUserRecord.getMediaButtonSessionLocked();
+ }
+
if (session != null) {
if (DEBUG_KEY_EVENT) {
Log.d(TAG, "Sending " + keyEvent + " to " + session);
}
if (needWakeLock) {
- mKeyEventReceiver.aquireWakeLockLocked();
+ mKeyEventReceiver.acquireWakeLockLocked();
}
// If we don't need a wakelock use -1 as the id so we won't release it later.
session.sendMediaButton(packageName, pid, uid, asSystemService, keyEvent,
@@ -2140,7 +2169,7 @@ public class MediaSessionService extends SystemService implements Monitor {
} else if (mCurrentFullUserRecord.mLastMediaButtonReceiver != null
|| mCurrentFullUserRecord.mRestoredMediaButtonReceiver != null) {
if (needWakeLock) {
- mKeyEventReceiver.aquireWakeLockLocked();
+ mKeyEventReceiver.acquireWakeLockLocked();
}
Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
mediaButtonIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
@@ -2349,7 +2378,7 @@ public class MediaSessionService extends SystemService implements Monitor {
}
}
- public void aquireWakeLockLocked() {
+ public void acquireWakeLockLocked() {
if (mRefCount == 0) {
mMediaEventWakeLock.acquire();
}
diff --git a/services/core/java/com/android/server/media/MediaSessionStack.java b/services/core/java/com/android/server/media/MediaSessionStack.java
index 7bb7cf4b74ad..07b1a1acf466 100644
--- a/services/core/java/com/android/server/media/MediaSessionStack.java
+++ b/services/core/java/com/android/server/media/MediaSessionStack.java
@@ -274,6 +274,15 @@ class MediaSessionStack {
}
private void updateMediaButtonSession(MediaSessionRecordImpl newMediaButtonSession) {
+ // Check if the policy states that this session should not be updated as a media button
+ // session.
+ if (newMediaButtonSession != null) {
+ int policies = newMediaButtonSession.getSessionPolicies();
+ if ((policies & SessionPolicyProvider.SESSION_POLICY_IGNORE_BUTTON_SESSION) == 1) {
+ return;
+ }
+ }
+
MediaSessionRecordImpl oldMediaButtonSession = mMediaButtonSession;
mMediaButtonSession = newMediaButtonSession;
mOnMediaButtonSessionChangedListener.onMediaButtonSessionChanged(
diff --git a/services/core/java/com/android/server/media/SessionPolicyProvider.java b/services/core/java/com/android/server/media/SessionPolicyProvider.java
new file mode 100644
index 000000000000..6eb79ef8dd71
--- /dev/null
+++ b/services/core/java/com/android/server/media/SessionPolicyProvider.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.media;
+
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.media.session.MediaSession;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Interface for customizing {@link MediaSessionService}
+ */
+public interface SessionPolicyProvider {
+ @IntDef(value = {
+ SESSION_POLICY_IGNORE_BUTTON_RECEIVER,
+ SESSION_POLICY_IGNORE_BUTTON_SESSION
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @interface SessionPolicy {}
+
+ /**
+ * Policy to ignore media button receiver, to not revive the media app when its media session is
+ * released or the app is dead.
+ *
+ * @see MediaSession#setMediaButtonReceiver
+ */
+ int SESSION_POLICY_IGNORE_BUTTON_RECEIVER = 1 << 0;
+
+ /**
+ * Policy to ignore sessions that should not respond to media key events via
+ * {@link MediaSessionService}. A typical use case is to explicitly
+ * ignore sessions that should not respond to media key events even if their playback state has
+ * changed most recently.
+ */
+ int SESSION_POLICY_IGNORE_BUTTON_SESSION = 1 << 1;
+
+ /**
+ * Use this to statically set policies for sessions when they are created.
+ * Use android.media.session.MediaSessionManager#setSessionPolicies(MediaSession.Token, int)
+ * to dynamically change policies at runtime.
+ *
+ * @param uid
+ * @param packageName
+ * @return list of policies
+ */
+ @SessionPolicy int getSessionPoliciesForApplication(int uid, @NonNull String packageName);
+}
diff --git a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java
index 558eb8d05783..888f7ce74ba4 100644
--- a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java
+++ b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java
@@ -29,6 +29,7 @@ import android.media.IAudioRoutesObserver;
import android.media.IAudioService;
import android.media.MediaRoute2Info;
import android.media.MediaRoute2ProviderInfo;
+import android.media.RouteDiscoveryPreference;
import android.media.RoutingSessionInfo;
import android.os.Bundle;
import android.os.Handler;
@@ -83,6 +84,8 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
super(sComponentName);
setCallback(callback);
+ mIsSystemRouteProvider = true;
+
mContext = context;
mHandler = new Handler(Looper.getMainLooper());
@@ -116,6 +119,10 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
public void releaseSession(String sessionId) {
// Do nothing
}
+ @Override
+ public void updateDiscoveryPreference(RouteDiscoveryPreference discoveryPreference) {
+ // Do nothing
+ }
@Override
public void selectRoute(String sessionId, String routeId) {
@@ -146,11 +153,6 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider {
public void requestSetVolume(String routeId, int volume) {
}
- //TODO: implement method
- @Override
- public void requestUpdateVolume(String routeId, int delta) {
- }
-
private void initializeDefaultRoute() {
mDefaultRoute = new MediaRoute2Info.Builder(
DEFAULT_ROUTE_ID,
diff --git a/services/core/java/com/android/server/net/LockdownVpnTracker.java b/services/core/java/com/android/server/net/LockdownVpnTracker.java
index ef8f6479cb3d..3cafafffc62a 100644
--- a/services/core/java/com/android/server/net/LockdownVpnTracker.java
+++ b/services/core/java/com/android/server/net/LockdownVpnTracker.java
@@ -138,7 +138,7 @@ public class LockdownVpnTracker {
if (egressDisconnected || egressChanged) {
mAcceptedEgressIface = null;
- mVpn.stopLegacyVpnPrivileged();
+ mVpn.stopVpnRunnerPrivileged();
}
if (egressDisconnected) {
hideNotification();
@@ -218,7 +218,7 @@ public class LockdownVpnTracker {
mAcceptedEgressIface = null;
mErrorCount = 0;
- mVpn.stopLegacyVpnPrivileged();
+ mVpn.stopVpnRunnerPrivileged();
mVpn.setLockdown(false);
hideNotification();
diff --git a/services/core/java/com/android/server/notification/BadgeExtractor.java b/services/core/java/com/android/server/notification/BadgeExtractor.java
index d91d5410d004..af8baa50d501 100644
--- a/services/core/java/com/android/server/notification/BadgeExtractor.java
+++ b/services/core/java/com/android/server/notification/BadgeExtractor.java
@@ -43,9 +43,9 @@ public class BadgeExtractor implements NotificationSignalExtractor {
if (DBG) Slog.d(TAG, "missing config");
return null;
}
- boolean userWantsBadges = mConfig.badgingEnabled(record.sbn.getUser());
+ boolean userWantsBadges = mConfig.badgingEnabled(record.getSbn().getUser());
boolean appCanShowBadge =
- mConfig.canShowBadge(record.sbn.getPackageName(), record.sbn.getUid());
+ mConfig.canShowBadge(record.getSbn().getPackageName(), record.getSbn().getUid());
if (!userWantsBadges || !appCanShowBadge) {
record.setShowBadge(false);
} else {
diff --git a/services/core/java/com/android/server/notification/BubbleExtractor.java b/services/core/java/com/android/server/notification/BubbleExtractor.java
index e59bf1642ba8..c9c8042685d1 100644
--- a/services/core/java/com/android/server/notification/BubbleExtractor.java
+++ b/services/core/java/com/android/server/notification/BubbleExtractor.java
@@ -42,7 +42,7 @@ public class BubbleExtractor implements NotificationSignalExtractor {
return null;
}
boolean appCanShowBubble =
- mConfig.areBubblesAllowed(record.sbn.getPackageName(), record.sbn.getUid());
+ mConfig.areBubblesAllowed(record.getSbn().getPackageName(), record.getSbn().getUid());
if (!mConfig.bubblesEnabled() || !appCanShowBubble) {
record.setAllowBubble(false);
} else {
diff --git a/services/core/java/com/android/server/notification/NotificationChannelExtractor.java b/services/core/java/com/android/server/notification/NotificationChannelExtractor.java
index 0e14364b4280..83ca69956033 100644
--- a/services/core/java/com/android/server/notification/NotificationChannelExtractor.java
+++ b/services/core/java/com/android/server/notification/NotificationChannelExtractor.java
@@ -15,10 +15,8 @@
*/
package com.android.server.notification;
-import android.app.Notification;
import android.app.NotificationChannel;
import android.content.Context;
-import android.util.FeatureFlagUtils;
import android.util.Slog;
/**
@@ -47,9 +45,9 @@ public class NotificationChannelExtractor implements NotificationSignalExtractor
return null;
}
NotificationChannel updatedChannel = mConfig.getConversationNotificationChannel(
- record.sbn.getPackageName(),
- record.sbn.getUid(), record.getChannel().getId(),
- record.sbn.getShortcutId(mContext), true, false);
+ record.getSbn().getPackageName(),
+ record.getSbn().getUid(), record.getChannel().getId(),
+ record.getSbn().getShortcutId(mContext), true, false);
record.updateNotificationChannel(updatedChannel);
return null;
diff --git a/services/core/java/com/android/server/notification/NotificationComparator.java b/services/core/java/com/android/server/notification/NotificationComparator.java
index a7e40cbc5b66..29b5e81447f8 100644
--- a/services/core/java/com/android/server/notification/NotificationComparator.java
+++ b/services/core/java/com/android/server/notification/NotificationComparator.java
@@ -122,8 +122,8 @@ public class NotificationComparator
return -1 * Integer.compare(leftPackagePriority, rightPackagePriority);
}
- final int leftPriority = left.sbn.getNotification().priority;
- final int rightPriority = right.sbn.getNotification().priority;
+ final int leftPriority = left.getSbn().getNotification().priority;
+ final int rightPriority = right.getSbn().getNotification().priority;
if (leftPriority != rightPriority) {
// by priority, high to low
return -1 * Integer.compare(leftPriority, rightPriority);
@@ -169,7 +169,7 @@ public class NotificationComparator
}
protected boolean isImportantMessaging(NotificationRecord record) {
- return mMessagingUtil.isImportantMessaging(record.sbn, record.getImportance());
+ return mMessagingUtil.isImportantMessaging(record.getSbn(), record.getImportance());
}
private boolean isOngoing(NotificationRecord record) {
@@ -183,7 +183,7 @@ public class NotificationComparator
private boolean isCall(NotificationRecord record) {
return record.isCategory(Notification.CATEGORY_CALL)
- && isDefaultPhoneApp(record.sbn.getPackageName());
+ && isDefaultPhoneApp(record.getSbn().getPackageName());
}
private boolean isDefaultPhoneApp(String pkg) {
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 80f6a941bfa0..f07113591fa5 100755
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -90,10 +90,10 @@ import static android.service.notification.NotificationListenerService.REASON_UN
import static android.service.notification.NotificationListenerService.REASON_USER_STOPPED;
import static android.service.notification.NotificationListenerService.TRIM_FULL;
import static android.service.notification.NotificationListenerService.TRIM_LIGHT;
-import static android.util.StatsLogInternal.BUBBLE_DEVELOPER_ERROR_REPORTED__ERROR__ACTIVITY_INFO_MISSING;
-import static android.util.StatsLogInternal.BUBBLE_DEVELOPER_ERROR_REPORTED__ERROR__ACTIVITY_INFO_NOT_RESIZABLE;
import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
+import static com.android.internal.util.FrameworkStatsLog.BUBBLE_DEVELOPER_ERROR_REPORTED__ERROR__ACTIVITY_INFO_MISSING;
+import static com.android.internal.util.FrameworkStatsLog.BUBBLE_DEVELOPER_ERROR_REPORTED__ERROR__ACTIVITY_INFO_NOT_RESIZABLE;
import static com.android.server.am.PendingIntentRecord.FLAG_ACTIVITY_SENDER;
import static com.android.server.am.PendingIntentRecord.FLAG_BROADCAST_SENDER;
import static com.android.server.am.PendingIntentRecord.FLAG_SERVICE_SENDER;
@@ -219,7 +219,6 @@ import android.util.Log;
import android.util.Pair;
import android.util.Slog;
import android.util.SparseArray;
-import android.util.StatsLog;
import android.util.Xml;
import android.util.proto.ProtoOutputStream;
import android.view.accessibility.AccessibilityEvent;
@@ -232,6 +231,7 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.compat.IPlatformCompat;
import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
+import com.android.internal.logging.InstanceIdSequence;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -243,6 +243,7 @@ import com.android.internal.util.ArrayUtils;
import com.android.internal.util.CollectionUtils;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.FastXmlSerializer;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.Preconditions;
import com.android.internal.util.XmlUtils;
import com.android.internal.util.function.TriPredicate;
@@ -380,6 +381,8 @@ public class NotificationManagerService extends SystemService {
private static final String SCHEME_TIMEOUT = "timeout";
private static final String EXTRA_KEY = "key";
+ private static final int NOTIFICATION_INSTANCE_ID_MAX = (1 << 13);
+
/**
* Apps that post custom toasts in the background will have those blocked. Apps can
* still post toasts created with
@@ -519,6 +522,7 @@ public class NotificationManagerService extends SystemService {
private final SavePolicyFileRunnable mSavePolicyFile = new SavePolicyFileRunnable();
private NotificationRecordLogger mNotificationRecordLogger;
+ private InstanceIdSequence mNotificationInstanceIdSequence;
private static class Archive {
final int mBufferSize;
@@ -680,14 +684,14 @@ public class NotificationManagerService extends SystemService {
if (summary == null) {
return;
}
- int oldFlags = summary.sbn.getNotification().flags;
+ int oldFlags = summary.getSbn().getNotification().flags;
if (needsOngoingFlag) {
- summary.sbn.getNotification().flags |= FLAG_ONGOING_EVENT;
+ summary.getSbn().getNotification().flags |= FLAG_ONGOING_EVENT;
} else {
- summary.sbn.getNotification().flags &= ~FLAG_ONGOING_EVENT;
+ summary.getSbn().getNotification().flags &= ~FLAG_ONGOING_EVENT;
}
- if (summary.sbn.getNotification().flags != oldFlags) {
+ if (summary.getSbn().getNotification().flags != oldFlags) {
mHandler.post(new EnqueueNotificationRunnable(userId, summary, isAppForeground));
}
}
@@ -913,7 +917,7 @@ public class NotificationManagerService extends SystemService {
r.getLifespanMs(now), r.getFreshnessMs(now), r.getExposureMs(now),
nv.rank, nv.count);
- StatusBarNotification sbn = r.sbn;
+ StatusBarNotification sbn = r.getSbn();
cancelNotification(callingUid, callingPid, sbn.getPackageName(), sbn.getTag(),
sbn.getId(), Notification.FLAG_AUTO_CANCEL,
FLAG_FOREGROUND_SERVICE, false, r.getUserId(),
@@ -955,7 +959,7 @@ public class NotificationManagerService extends SystemService {
nv.recycle();
reportUserInteraction(r);
mAssistants.notifyAssistantActionClicked(
- r.sbn, actionIndex, action, generatedByAssistant);
+ r.getSbn(), actionIndex, action, generatedByAssistant);
}
}
@@ -1040,7 +1044,7 @@ public class NotificationManagerService extends SystemService {
reportSeen(r);
}
r.setVisibility(true, nv.rank, nv.count);
- mAssistants.notifyAssistantVisibilityChangedLocked(r.sbn, true);
+ mAssistants.notifyAssistantVisibilityChangedLocked(r.getSbn(), true);
boolean isHun = (nv.location
== NotificationVisibility.NotificationLocation.LOCATION_FIRST_HEADS_UP);
// hasBeenVisiblyExpanded must be called after updating the expansion state of
@@ -1059,7 +1063,7 @@ public class NotificationManagerService extends SystemService {
NotificationRecord r = mNotificationsByKey.get(nv.key);
if (r == null) continue;
r.setVisibility(false, nv.rank, nv.count);
- mAssistants.notifyAssistantVisibilityChangedLocked(r.sbn, false);
+ mAssistants.notifyAssistantVisibilityChangedLocked(r.getSbn(), false);
nv.recycle();
}
}
@@ -1086,7 +1090,8 @@ public class NotificationManagerService extends SystemService {
r.recordExpanded();
reportUserInteraction(r);
}
- mAssistants.notifyAssistantExpansionChangedLocked(r.sbn, userAction, expanded);
+ mAssistants.notifyAssistantExpansionChangedLocked(
+ r.getSbn(), userAction, expanded);
}
}
}
@@ -1102,7 +1107,7 @@ public class NotificationManagerService extends SystemService {
.setCategory(MetricsEvent.NOTIFICATION_DIRECT_REPLY_ACTION)
.setType(MetricsEvent.TYPE_ACTION));
reportUserInteraction(r);
- mAssistants.notifyAssistantNotificationDirectReplyLocked(r.sbn);
+ mAssistants.notifyAssistantNotificationDirectReplyLocked(r.getSbn());
}
}
}
@@ -1146,7 +1151,7 @@ public class NotificationManagerService extends SystemService {
// Treat clicking on a smart reply as a user interaction.
reportUserInteraction(r);
mAssistants.notifyAssistantSuggestedReplySent(
- r.sbn, reply, r.getSuggestionsGeneratedByAssistant());
+ r.getSbn(), reply, r.getSuggestionsGeneratedByAssistant());
}
}
}
@@ -1166,7 +1171,7 @@ public class NotificationManagerService extends SystemService {
synchronized (mNotificationLock) {
NotificationRecord r = mNotificationsByKey.get(key);
if (r != null) {
- final StatusBarNotification n = r.sbn;
+ final StatusBarNotification n = r.getSbn();
final int callingUid = n.getUid();
final String pkg = n.getPackageName();
applyFlagBubble(r, pkg, callingUid, null /* oldEntry */, isBubble);
@@ -1368,9 +1373,9 @@ public class NotificationManagerService extends SystemService {
record = findNotificationByKeyLocked(intent.getStringExtra(EXTRA_KEY));
}
if (record != null) {
- cancelNotification(record.sbn.getUid(), record.sbn.getInitialPid(),
- record.sbn.getPackageName(), record.sbn.getTag(),
- record.sbn.getId(), 0,
+ cancelNotification(record.getSbn().getUid(), record.getSbn().getInitialPid(),
+ record.getSbn().getPackageName(), record.getSbn().getTag(),
+ record.getSbn().getId(), 0,
FLAG_FOREGROUND_SERVICE, true, record.getUserId(),
REASON_TIMEOUT, null);
}
@@ -1633,7 +1638,7 @@ public class NotificationManagerService extends SystemService {
synchronized (mNotificationLock) {
NotificationRecord r = mNotificationsByKey.get(bubbleKey);
if (r != null) {
- final StatusBarNotification n = r.sbn;
+ final StatusBarNotification n = r.getSbn();
final int callingUid = n.getUid();
final String pkg = n.getPackageName();
applyFlagBubble(r, pkg, callingUid, null /* oldEntry */, isAppForeground);
@@ -1718,18 +1723,22 @@ public class NotificationManagerService extends SystemService {
}
public NotificationManagerService(Context context) {
- this(context, new NotificationRecordLoggerImpl());
+ this(context,
+ new NotificationRecordLoggerImpl(),
+ new InstanceIdSequence(NOTIFICATION_INSTANCE_ID_MAX));
}
@VisibleForTesting
public NotificationManagerService(Context context,
- NotificationRecordLogger notificationRecordLogger) {
+ NotificationRecordLogger notificationRecordLogger,
+ InstanceIdSequence notificationInstanceIdSequence) {
super(context);
mNotificationRecordLogger = notificationRecordLogger;
+ mNotificationInstanceIdSequence = notificationInstanceIdSequence;
Notification.processWhitelistToken = WHITELIST_TOKEN;
}
- // TODO - replace these methods with a single VisibleForTesting constructor
+ // TODO - replace these methods with new fields in the VisibleForTesting constructor
@VisibleForTesting
void setAudioManager(AudioManager audioMananger) {
mAudioManager = audioMananger;
@@ -1772,7 +1781,7 @@ public class NotificationManagerService extends SystemService {
if (mNotificationsByKey.containsKey(posted.getKey())) {
count--;
}
- if (posted.sbn.isGroup() && posted.getNotification().isGroupSummary()) {
+ if (posted.getSbn().isGroup() && posted.getNotification().isGroupSummary()) {
count--;
}
}
@@ -1794,8 +1803,8 @@ public class NotificationManagerService extends SystemService {
@VisibleForTesting
void addNotification(NotificationRecord r) {
mNotificationList.add(r);
- mNotificationsByKey.put(r.sbn.getKey(), r);
- if (r.sbn.isGroup()) {
+ mNotificationsByKey.put(r.getSbn().getKey(), r);
+ if (r.getSbn().isGroup()) {
mSummaryByGroupKey.put(r.getGroupKey(), r);
}
}
@@ -2051,9 +2060,9 @@ public class NotificationManagerService extends SystemService {
if (DBG) {
Slog.d(TAG, "Reposting " + r.getKey());
}
- enqueueNotificationInternal(r.sbn.getPackageName(), r.sbn.getOpPkg(),
- r.sbn.getUid(), r.sbn.getInitialPid(), r.sbn.getTag(), r.sbn.getId(),
- r.sbn.getNotification(), userId);
+ enqueueNotificationInternal(r.getSbn().getPackageName(), r.getSbn().getOpPkg(),
+ r.getSbn().getUid(), r.getSbn().getInitialPid(), r.getSbn().getTag(),
+ r.getSbn().getId(), r.getSbn().getNotification(), userId);
} catch (Exception e) {
Slog.e(TAG, "Cannot un-snooze notification", e);
}
@@ -2193,7 +2202,7 @@ public class NotificationManagerService extends SystemService {
String pkg;
synchronized (mNotificationLock) {
NotificationRecord r = mNotificationsByKey.get(key);
- pkg = r != null && r.sbn != null ? r.sbn.getPackageName() : null;
+ pkg = r != null && r.getSbn() != null ? r.getSbn().getPackageName() : null;
}
boolean isAppForeground = pkg != null
&& mActivityManager.getPackageImportance(pkg) == IMPORTANCE_FOREGROUND;
@@ -2201,7 +2210,7 @@ public class NotificationManagerService extends SystemService {
NotificationRecord r = mNotificationsByKey.get(key);
if (r == null) return;
updateAutobundledSummaryFlags(r.getUser().getIdentifier(),
- r.sbn.getPackageName(), needsOngoingFlag, isAppForeground);
+ r.getSbn().getPackageName(), needsOngoingFlag, isAppForeground);
}
}
});
@@ -2272,7 +2281,8 @@ public class NotificationManagerService extends SystemService {
final long updatedSuppressedEffects = calculateSuppressedEffects();
if (updatedSuppressedEffects == mZenModeHelper.getSuppressedEffects()) return;
final List<ComponentName> suppressors = getSuppressors();
- ZenLog.traceEffectsSuppressorChanged(mEffectsSuppressors, suppressors, updatedSuppressedEffects);
+ ZenLog.traceEffectsSuppressorChanged(
+ mEffectsSuppressors, suppressors, updatedSuppressedEffects);
mEffectsSuppressors = suppressors;
mZenModeHelper.setSuppressedEffects(updatedSuppressedEffects);
sendRegisteredOnlyBroadcast(NotificationManager.ACTION_EFFECTS_SUPPRESSOR_CHANGED);
@@ -2478,6 +2488,18 @@ public class NotificationManagerService extends SystemService {
scheduleInterruptionFilterChanged(interruptionFilter);
}
+ int correctCategory(int requestedCategoryList, int categoryType,
+ int currentCategoryList) {
+ if ((requestedCategoryList & categoryType) != 0
+ && (currentCategoryList & categoryType) == 0) {
+ requestedCategoryList &= ~categoryType;
+ } else if ((requestedCategoryList & categoryType) == 0
+ && (currentCategoryList & categoryType) != 0){
+ requestedCategoryList |= categoryType;
+ }
+ return requestedCategoryList;
+ }
+
@VisibleForTesting
INotificationManager getBinderService() {
return INotificationManager.Stub.asInterface(mService);
@@ -2490,8 +2512,8 @@ public class NotificationManagerService extends SystemService {
@GuardedBy("mNotificationLock")
protected void reportSeen(NotificationRecord r) {
if (!r.isProxied()) {
- mAppUsageStats.reportEvent(r.sbn.getPackageName(),
- getRealUserId(r.sbn.getUserId()),
+ mAppUsageStats.reportEvent(r.getSbn().getPackageName(),
+ getRealUserId(r.getSbn().getUserId()),
UsageEvents.Event.NOTIFICATION_SEEN);
}
}
@@ -2566,18 +2588,18 @@ public class NotificationManagerService extends SystemService {
@GuardedBy("mNotificationLock")
protected void maybeRecordInterruptionLocked(NotificationRecord r) {
if (r.isInterruptive() && !r.hasRecordedInterruption()) {
- mAppUsageStats.reportInterruptiveNotification(r.sbn.getPackageName(),
+ mAppUsageStats.reportInterruptiveNotification(r.getSbn().getPackageName(),
r.getChannel().getId(),
- getRealUserId(r.sbn.getUserId()));
+ getRealUserId(r.getSbn().getUserId()));
mHistoryManager.addNotification(new HistoricalNotification.Builder()
- .setPackage(r.sbn.getPackageName())
- .setUid(r.sbn.getUid())
+ .setPackage(r.getSbn().getPackageName())
+ .setUid(r.getSbn().getUid())
.setChannelId(r.getChannel().getId())
.setChannelName(r.getChannel().getName().toString())
.setPostedTimeMs(System.currentTimeMillis())
.setTitle(getHistoryTitle(r.getNotification()))
.setText(getHistoryText(
- r.sbn.getPackageContext(getContext()), r.getNotification()))
+ r.getSbn().getPackageContext(getContext()), r.getNotification()))
.setIcon(r.getNotification().getSmallIcon())
.build());
r.setRecordedInterruption(true);
@@ -2624,8 +2646,8 @@ public class NotificationManagerService extends SystemService {
* @param r notification record
*/
protected void reportUserInteraction(NotificationRecord r) {
- mAppUsageStats.reportEvent(r.sbn.getPackageName(),
- getRealUserId(r.sbn.getUserId()),
+ mAppUsageStats.reportEvent(r.getSbn().getPackageName(),
+ getRealUserId(r.getSbn().getUserId()),
UsageEvents.Event.USER_INTERACTION);
}
@@ -2659,18 +2681,24 @@ public class NotificationManagerService extends SystemService {
@Override
public void enqueueTextToast(String pkg, IBinder token, CharSequence text, int duration,
int displayId, @Nullable ITransientNotificationCallback callback) {
- enqueueToast(pkg, token, text, null, duration, displayId, callback);
+ enqueueToast(pkg, token, text, null, duration, displayId, callback, false);
}
@Override
public void enqueueToast(String pkg, IBinder token, ITransientNotification callback,
int duration, int displayId) {
- enqueueToast(pkg, token, null, callback, duration, displayId, null);
+ enqueueToast(pkg, token, null, callback, duration, displayId, null, true);
+ }
+
+ @Override
+ public void enqueueTextOrCustomToast(String pkg, IBinder token,
+ ITransientNotification callback, int duration, int displayId, boolean isCustom) {
+ enqueueToast(pkg, token, null, callback, duration, displayId, null, isCustom);
}
private void enqueueToast(String pkg, IBinder token, @Nullable CharSequence text,
@Nullable ITransientNotification callback, int duration, int displayId,
- @Nullable ITransientNotificationCallback textCallback) {
+ @Nullable ITransientNotificationCallback textCallback, boolean isCustom) {
if (DBG) {
Slog.i(TAG, "enqueueToast pkg=" + pkg + " token=" + token
+ " duration=" + duration + " displayId=" + displayId);
@@ -2708,7 +2736,7 @@ public class NotificationManagerService extends SystemService {
return;
}
- if (callback != null && !appIsForeground && !isSystemToast) {
+ if (callback != null && !appIsForeground && !isSystemToast && isCustom) {
boolean block;
long id = Binder.clearCallingIdentity();
try {
@@ -2727,7 +2755,7 @@ public class NotificationManagerService extends SystemService {
// TODO(b/144152069): Remove informative toast
mUiHandler.post(() -> Toast.makeText(getContext(),
"Background custom toast blocked for package " + pkg + ".\n"
- + "See go/r-toast-block.",
+ + "See g.co/dev/toast.",
Toast.LENGTH_SHORT).show());
Slog.w(TAG, "Blocking custom toast from package " + pkg
+ " due to package not in the foreground");
@@ -3501,7 +3529,7 @@ public class NotificationManagerService extends SystemService {
tmp = new StatusBarNotification[mNotificationList.size()];
final int N = mNotificationList.size();
for (int i=0; i<N; i++) {
- tmp[i] = mNotificationList.get(i).sbn;
+ tmp[i] = mNotificationList.get(i).getSbn();
}
}
}
@@ -3533,13 +3561,13 @@ public class NotificationManagerService extends SystemService {
final int N = mNotificationList.size();
for (int i = 0; i < N; i++) {
StatusBarNotification sbn = sanitizeSbn(pkg, userId,
- mNotificationList.get(i).sbn);
+ mNotificationList.get(i).getSbn());
if (sbn != null) {
map.put(sbn.getKey(), sbn);
}
}
for(NotificationRecord snoozed: mSnoozeHelper.getSnoozed(userId, pkg)) {
- StatusBarNotification sbn = sanitizeSbn(pkg, userId, snoozed.sbn);
+ StatusBarNotification sbn = sanitizeSbn(pkg, userId, snoozed.getSbn());
if (sbn != null) {
map.put(sbn.getKey(), sbn);
}
@@ -3547,7 +3575,7 @@ public class NotificationManagerService extends SystemService {
final int M = mEnqueuedNotifications.size();
for (int i = 0; i < M; i++) {
StatusBarNotification sbn = sanitizeSbn(pkg, userId,
- mEnqueuedNotifications.get(i).sbn);
+ mEnqueuedNotifications.get(i).getSbn());
if (sbn != null) {
map.put(sbn.getKey(), sbn); // pending update overwrites existing post here
}
@@ -3665,15 +3693,15 @@ public class NotificationManagerService extends SystemService {
for (int i = 0; i < N; i++) {
NotificationRecord r = mNotificationsByKey.get(keys[i]);
if (r == null) continue;
- final int userId = r.sbn.getUserId();
+ final int userId = r.getSbn().getUserId();
if (userId != info.userid && userId != UserHandle.USER_ALL &&
!mUserProfiles.isCurrentProfile(userId)) {
throw new SecurityException("Disallowed call from listener: "
+ info.service);
}
cancelNotificationFromListenerLocked(info, callingUid, callingPid,
- r.sbn.getPackageName(), r.sbn.getTag(), r.sbn.getId(),
- userId);
+ r.getSbn().getPackageName(), r.getSbn().getTag(),
+ r.getSbn().getId(), userId);
}
} else {
cancelAllLocked(callingUid, callingPid, info.userid,
@@ -3733,7 +3761,7 @@ public class NotificationManagerService extends SystemService {
for (int i = 0; i < n; i++) {
NotificationRecord r = mNotificationsByKey.get(keys[i]);
if (r == null) continue;
- final int userId = r.sbn.getUserId();
+ final int userId = r.getSbn().getUserId();
if (userId != info.userid && userId != UserHandle.USER_ALL
&& !mUserProfiles.isCurrentProfile(userId)) {
throw new SecurityException("Disallowed call from listener: "
@@ -3883,7 +3911,7 @@ public class NotificationManagerService extends SystemService {
? mNotificationsByKey.get(keys[i])
: mNotificationList.get(i);
if (r == null) continue;
- StatusBarNotification sbn = r.sbn;
+ StatusBarNotification sbn = r.getSbn();
if (!isVisibleToListener(sbn, info)) continue;
StatusBarNotification sbnToSend =
(trim == TRIM_FULL) ? sbn : sbn.cloneLight();
@@ -3913,7 +3941,7 @@ public class NotificationManagerService extends SystemService {
for (int i=0; i < N; i++) {
final NotificationRecord r = snoozedRecords.get(i);
if (r == null) continue;
- StatusBarNotification sbn = r.sbn;
+ StatusBarNotification sbn = r.getSbn();
if (!isVisibleToListener(sbn, info)) continue;
StatusBarNotification sbnToSend =
(trim == TRIM_FULL) ? sbn : sbn.cloneLight();
@@ -4088,7 +4116,8 @@ public class NotificationManagerService extends SystemService {
Objects.requireNonNull(packageName, "Package name is null");
enforceSystemOrSystemUI("removeAutomaticZenRules");
- return mZenModeHelper.removeAutomaticZenRules(packageName, "removeAutomaticZenRules");
+ return mZenModeHelper.removeAutomaticZenRules(packageName,
+ packageName + "|removeAutomaticZenRules");
}
@Override
@@ -4403,11 +4432,20 @@ public class NotificationManagerService extends SystemService {
policy.priorityCallSenders, policy.priorityMessageSenders,
policy.suppressedVisualEffects);
}
+ if (applicationInfo.targetSdkVersion < Build.VERSION_CODES.R) {
+ int priorityCategories = correctCategory(policy.priorityCategories,
+ Policy.PRIORITY_CATEGORY_CONVERSATIONS,
+ currPolicy.priorityCategories);
+
+ policy = new Policy(priorityCategories,
+ policy.priorityCallSenders, policy.priorityMessageSenders,
+ policy.suppressedVisualEffects, currPolicy.priorityConversationSenders);
+ }
int newVisualEffects = calculateSuppressedVisualEffects(
policy, currPolicy, applicationInfo.targetSdkVersion);
policy = new Policy(policy.priorityCategories,
policy.priorityCallSenders, policy.priorityMessageSenders,
- newVisualEffects);
+ newVisualEffects, policy.priorityConversationSenders);
ZenLog.traceSetNotificationPolicy(pkg, applicationInfo.targetSdkVersion, policy);
mZenModeHelper.setNotificationPolicy(policy);
} catch (RemoteException e) {
@@ -4416,6 +4454,8 @@ public class NotificationManagerService extends SystemService {
}
}
+
+
@Override
public List<String> getEnabledNotificationListenerPackages() {
checkCallerIsSystem();
@@ -4629,8 +4669,8 @@ public class NotificationManagerService extends SystemService {
Objects.requireNonNull(user);
verifyPrivilegedListener(token, user, true);
- return mPreferencesHelper.getNotificationChannels(pkg, getUidForPackageAndUser(pkg, user),
- false /* includeDeleted */);
+ return mPreferencesHelper.getNotificationChannels(pkg,
+ getUidForPackageAndUser(pkg, user), false /* includeDeleted */);
}
@Override
@@ -4822,7 +4862,7 @@ public class NotificationManagerService extends SystemService {
if (r == null) {
return;
}
- if (r.sbn.getOverrideGroupKey() == null) {
+ if (r.getSbn().getOverrideGroupKey() == null) {
addAutoGroupAdjustment(r, GroupHelper.AUTOGROUP_KEY);
EventLogTags.writeNotificationAutogrouped(key);
mRankingHandler.requestSort();
@@ -4835,7 +4875,7 @@ public class NotificationManagerService extends SystemService {
if (r == null) {
return;
}
- if (r.sbn.getOverrideGroupKey() != null) {
+ if (r.getSbn().getOverrideGroupKey() != null) {
addAutoGroupAdjustment(r, null);
EventLogTags.writeNotificationUnautogrouped(key);
mRankingHandler.requestSort();
@@ -4845,8 +4885,8 @@ public class NotificationManagerService extends SystemService {
private void addAutoGroupAdjustment(NotificationRecord r, String overrideGroupKey) {
Bundle signals = new Bundle();
signals.putString(Adjustment.KEY_GROUP_KEY, overrideGroupKey);
- Adjustment adjustment =
- new Adjustment(r.sbn.getPackageName(), r.getKey(), signals, "", r.sbn.getUserId());
+ Adjustment adjustment = new Adjustment(r.getSbn().getPackageName(), r.getKey(), signals, "",
+ r.getSbn().getUserId());
r.addAdjustment(adjustment);
}
@@ -4882,7 +4922,7 @@ public class NotificationManagerService extends SystemService {
// adjustment will post a summary if needed.
return;
}
- final StatusBarNotification adjustedSbn = notificationRecord.sbn;
+ final StatusBarNotification adjustedSbn = notificationRecord.getSbn();
userId = adjustedSbn.getUser().getIdentifier();
ArrayMap<String, String> summaries = mAutobundledSummaries.get(userId);
if (summaries == null) {
@@ -4930,7 +4970,8 @@ public class NotificationManagerService extends SystemService {
}
}
if (summaryRecord != null && checkDisqualifyingFeatures(userId, MY_UID,
- summaryRecord.sbn.getId(), summaryRecord.sbn.getTag(), summaryRecord, true)) {
+ summaryRecord.getSbn().getId(), summaryRecord.getSbn().getTag(), summaryRecord,
+ true)) {
mHandler.post(new EnqueueNotificationRunnable(userId, summaryRecord, isAppForeground));
}
}
@@ -4991,14 +5032,14 @@ public class NotificationManagerService extends SystemService {
int N = mNotificationList.size();
for (int i = 0; i < N; i++) {
final NotificationRecord nr = mNotificationList.get(i);
- if (filter.filtered && !filter.matches(nr.sbn)) continue;
+ if (filter.filtered && !filter.matches(nr.getSbn())) continue;
nr.dump(proto, NotificationServiceDumpProto.RECORDS, filter.redact,
NotificationRecordProto.POSTED);
}
N = mEnqueuedNotifications.size();
for (int i = 0; i < N; i++) {
final NotificationRecord nr = mEnqueuedNotifications.get(i);
- if (filter.filtered && !filter.matches(nr.sbn)) continue;
+ if (filter.filtered && !filter.matches(nr.getSbn())) continue;
nr.dump(proto, NotificationServiceDumpProto.RECORDS, filter.redact,
NotificationRecordProto.ENQUEUED);
}
@@ -5006,7 +5047,7 @@ public class NotificationManagerService extends SystemService {
N = snoozed.size();
for (int i = 0; i < N; i++) {
final NotificationRecord nr = snoozed.get(i);
- if (filter.filtered && !filter.matches(nr.sbn)) continue;
+ if (filter.filtered && !filter.matches(nr.getSbn())) continue;
nr.dump(proto, NotificationServiceDumpProto.RECORDS, filter.redact,
NotificationRecordProto.SNOOZED);
}
@@ -5067,7 +5108,7 @@ public class NotificationManagerService extends SystemService {
pw.println(" Notification List:");
for (int i = 0; i < N; i++) {
final NotificationRecord nr = mNotificationList.get(i);
- if (filter.filtered && !filter.matches(nr.sbn)) continue;
+ if (filter.filtered && !filter.matches(nr.getSbn())) continue;
nr.dump(pw, " ", getContext(), filter.redact);
}
pw.println(" ");
@@ -5147,7 +5188,7 @@ public class NotificationManagerService extends SystemService {
pw.println(" Enqueued Notification List:");
for (int i = 0; i < N; i++) {
final NotificationRecord nr = mEnqueuedNotifications.get(i);
- if (filter.filtered && !filter.matches(nr.sbn)) continue;
+ if (filter.filtered && !filter.matches(nr.getSbn())) continue;
nr.dump(pw, " ", getContext(), filter.redact);
}
pw.println(" ");
@@ -5273,7 +5314,7 @@ public class NotificationManagerService extends SystemService {
if (r == null) {
return;
}
- StatusBarNotification sbn = r.sbn;
+ StatusBarNotification sbn = r.getSbn();
// NoMan adds flags FLAG_NO_CLEAR and FLAG_ONGOING_EVENT when it sees
// FLAG_FOREGROUND_SERVICE. Hence it's not enough to remove
// FLAG_FOREGROUND_SERVICE, we have to revert to the flags we received
@@ -5304,7 +5345,7 @@ public class NotificationManagerService extends SystemService {
// Look for the notification, searching both the posted and enqueued lists.
NotificationRecord r = findNotificationLocked(pkg, tag, id, userId);
if (r != null) {
- if (!Objects.equals(opPkg, r.sbn.getOpPkg())) {
+ if (!Objects.equals(opPkg, r.getSbn().getOpPkg())) {
throw new SecurityException(opPkg + " does not have permission to "
+ "cancel a notification they did not post " + tag + " " + id);
}
@@ -5352,8 +5393,8 @@ public class NotificationManagerService extends SystemService {
try {
fixNotification(notification, pkg, tag, id, userId);
- } catch (NameNotFoundException e) {
- Slog.e(TAG, "Cannot create a context for sending app", e);
+ } catch (Exception e) {
+ Slog.e(TAG, "Cannot fix notification", e);
return;
}
@@ -5434,7 +5475,7 @@ public class NotificationManagerService extends SystemService {
}
if (!checkDisqualifyingFeatures(userId, notificationUid, id, tag, r,
- r.sbn.getOverrideGroupKey() != null)) {
+ r.getSbn().getOverrideGroupKey() != null)) {
return;
}
@@ -5578,12 +5619,12 @@ public class NotificationManagerService extends SystemService {
if (shortcutId != null) {
// Must track shortcut based bubbles in case the shortcut is removed
HashMap<String, String> packageBubbles = mActiveShortcutBubbles.get(
- r.sbn.getPackageName());
+ r.getSbn().getPackageName());
if (packageBubbles == null) {
packageBubbles = new HashMap<>();
}
packageBubbles.put(shortcutId, r.getKey());
- mActiveShortcutBubbles.put(r.sbn.getPackageName(), packageBubbles);
+ mActiveShortcutBubbles.put(r.getSbn().getPackageName(), packageBubbles);
if (!mLauncherAppsCallbackRegistered) {
mLauncherAppsService.registerCallback(mLauncherAppsCallback, mHandler);
mLauncherAppsCallbackRegistered = true;
@@ -5594,12 +5635,12 @@ public class NotificationManagerService extends SystemService {
if (shortcutId != null) {
// No longer track shortcut
HashMap<String, String> packageBubbles = mActiveShortcutBubbles.get(
- r.sbn.getPackageName());
+ r.getSbn().getPackageName());
if (packageBubbles != null) {
packageBubbles.remove(shortcutId);
}
if (packageBubbles != null && packageBubbles.isEmpty()) {
- mActiveShortcutBubbles.remove(r.sbn.getPackageName());
+ mActiveShortcutBubbles.remove(r.getSbn().getPackageName());
}
if (mLauncherAppsCallbackRegistered && mActiveShortcutBubbles.isEmpty()) {
mLauncherAppsService.unregisterCallback(mLauncherAppsCallback);
@@ -5780,14 +5821,14 @@ public class NotificationManagerService extends SystemService {
? intent.resolveActivityInfo(context.getPackageManager(), 0)
: null;
if (info == null) {
- StatsLog.write(StatsLog.BUBBLE_DEVELOPER_ERROR_REPORTED, packageName,
+ FrameworkStatsLog.write(FrameworkStatsLog.BUBBLE_DEVELOPER_ERROR_REPORTED, packageName,
BUBBLE_DEVELOPER_ERROR_REPORTED__ERROR__ACTIVITY_INFO_MISSING);
Log.w(TAG, "Unable to send as bubble -- couldn't find activity info for intent: "
+ intent);
return false;
}
if (!ActivityInfo.isResizeableMode(info.resizeMode)) {
- StatsLog.write(StatsLog.BUBBLE_DEVELOPER_ERROR_REPORTED, packageName,
+ FrameworkStatsLog.write(FrameworkStatsLog.BUBBLE_DEVELOPER_ERROR_REPORTED, packageName,
BUBBLE_DEVELOPER_ERROR_REPORTED__ERROR__ACTIVITY_INFO_NOT_RESIZABLE);
Log.w(TAG, "Unable to send as bubble -- activity is not resizable for intent: "
+ intent);
@@ -5845,7 +5886,7 @@ public class NotificationManagerService extends SystemService {
*/
private boolean checkDisqualifyingFeatures(int userId, int uid, int id, String tag,
NotificationRecord r, boolean isAutogroup) {
- final String pkg = r.sbn.getPackageName();
+ final String pkg = r.getSbn().getPackageName();
final boolean isSystemNotification =
isUidSystemOrPhone(uid) || ("android".equals(pkg));
final boolean isNotificationFromListener = mListeners.isListenerPackage(pkg);
@@ -5855,7 +5896,7 @@ public class NotificationManagerService extends SystemService {
if (!isSystemNotification && !isNotificationFromListener) {
synchronized (mNotificationLock) {
final int callingUid = Binder.getCallingUid();
- if (mNotificationsByKey.get(r.sbn.getKey()) == null
+ if (mNotificationsByKey.get(r.getSbn().getKey()) == null
&& isCallerInstantApp(callingUid, userId)) {
// Ephemeral apps have some special constraints for notifications.
// They are not allowed to create new notifications however they are allowed to
@@ -5866,7 +5907,7 @@ public class NotificationManagerService extends SystemService {
}
// rate limit updates that aren't completed progress notifications
- if (mNotificationsByKey.get(r.sbn.getKey()) != null
+ if (mNotificationsByKey.get(r.getSbn().getKey()) != null
&& !r.getNotification().hasCompletedProgress()
&& !isAutogroup) {
@@ -5876,7 +5917,7 @@ public class NotificationManagerService extends SystemService {
final long now = SystemClock.elapsedRealtime();
if ((now - mLastOverRateLogTime) > MIN_PACKAGE_OVERRATE_LOG_INTERVAL) {
Slog.e(TAG, "Package enqueue rate is " + appEnqueueRate
- + ". Shedding " + r.sbn.getKey() + ". package=" + pkg);
+ + ". Shedding " + r.getSbn().getKey() + ". package=" + pkg);
mLastOverRateLogTime = now;
}
return false;
@@ -5925,10 +5966,10 @@ public class NotificationManagerService extends SystemService {
final int N = mNotificationList.size();
for (int i = 0; i < N; i++) {
final NotificationRecord existing = mNotificationList.get(i);
- if (existing.sbn.getPackageName().equals(pkg)
- && existing.sbn.getUserId() == userId) {
- if (existing.sbn.getId() == excludedId
- && TextUtils.equals(existing.sbn.getTag(), excludedTag)) {
+ if (existing.getSbn().getPackageName().equals(pkg)
+ && existing.getSbn().getUserId() == userId) {
+ if (existing.getSbn().getId() == excludedId
+ && TextUtils.equals(existing.getSbn().getTag(), excludedTag)) {
continue;
}
count++;
@@ -5937,8 +5978,8 @@ public class NotificationManagerService extends SystemService {
final int M = mEnqueuedNotifications.size();
for (int i = 0; i < M; i++) {
final NotificationRecord existing = mEnqueuedNotifications.get(i);
- if (existing.sbn.getPackageName().equals(pkg)
- && existing.sbn.getUserId() == userId) {
+ if (existing.getSbn().getPackageName().equals(pkg)
+ && existing.getSbn().getUserId() == userId) {
count++;
}
}
@@ -5957,8 +5998,8 @@ public class NotificationManagerService extends SystemService {
}
private boolean isBlocked(NotificationRecord r) {
- final String pkg = r.sbn.getPackageName();
- final int callingUid = r.sbn.getUid();
+ final String pkg = r.getSbn().getPackageName();
+ final int callingUid = r.getSbn().getUid();
return mPreferencesHelper.isGroupBlocked(pkg, callingUid, r.getChannel().getGroup())
|| mPreferencesHelper.getImportance(pkg, callingUid)
== NotificationManager.IMPORTANCE_NONE
@@ -5988,10 +6029,11 @@ public class NotificationManagerService extends SystemService {
@GuardedBy("mNotificationLock")
void snoozeLocked(NotificationRecord r) {
- if (r.sbn.isGroup()) {
+ if (r.getSbn().isGroup()) {
final List<NotificationRecord> groupNotifications =
findCurrentAndSnoozedGroupNotificationsLocked(
- r.sbn.getPackageName(), r.sbn.getGroupKey(), r.sbn.getUserId());
+ r.getSbn().getPackageName(),
+ r.getSbn().getGroupKey(), r.getSbn().getUserId());
if (r.getNotification().isGroupSummary()) {
// snooze all children
for (int i = 0; i < groupNotifications.size(); i++) {
@@ -6002,7 +6044,7 @@ public class NotificationManagerService extends SystemService {
} else {
// if there is a valid summary for this group, and we are snoozing the only
// child, also snooze the summary
- if (mSummaryByGroupKey.containsKey(r.sbn.getGroupKey())) {
+ if (mSummaryByGroupKey.containsKey(r.getSbn().getGroupKey())) {
if (groupNotifications.size() == 2) {
// snooze summary and the one child
for (int i = 0; i < groupNotifications.size(); i++) {
@@ -6033,7 +6075,7 @@ public class NotificationManagerService extends SystemService {
cancelNotificationLocked(r, false, REASON_SNOOZED, wasPosted, null);
updateLightsLocked();
if (mSnoozeCriterionId != null) {
- mAssistants.notifyAssistantSnoozedLocked(r.sbn, mSnoozeCriterionId);
+ mAssistants.notifyAssistantSnoozedLocked(r.getSbn(), mSnoozeCriterionId);
mSnoozeHelper.snooze(r, mSnoozeCriterionId);
} else {
mSnoozeHelper.snooze(r, mDuration);
@@ -6164,10 +6206,10 @@ public class NotificationManagerService extends SystemService {
final Long snoozeAt =
mSnoozeHelper.getSnoozeTimeForUnpostedNotification(
r.getUser().getIdentifier(),
- r.sbn.getPackageName(), r.sbn.getKey());
+ r.getSbn().getPackageName(), r.getSbn().getKey());
final long currentTime = System.currentTimeMillis();
if (snoozeAt.longValue() > currentTime) {
- (new SnoozeNotificationRunnable(r.sbn.getKey(),
+ (new SnoozeNotificationRunnable(r.getSbn().getKey(),
snoozeAt.longValue() - currentTime, null)).snoozeLocked(r);
return;
}
@@ -6175,9 +6217,9 @@ public class NotificationManagerService extends SystemService {
final String contextId =
mSnoozeHelper.getSnoozeContextForUnpostedNotification(
r.getUser().getIdentifier(),
- r.sbn.getPackageName(), r.sbn.getKey());
+ r.getSbn().getPackageName(), r.getSbn().getKey());
if (contextId != null) {
- (new SnoozeNotificationRunnable(r.sbn.getKey(),
+ (new SnoozeNotificationRunnable(r.getSbn().getKey(),
0, contextId)).snoozeLocked(r);
return;
}
@@ -6185,7 +6227,7 @@ public class NotificationManagerService extends SystemService {
mEnqueuedNotifications.add(r);
scheduleTimeoutLocked(r);
- final StatusBarNotification n = r.sbn;
+ final StatusBarNotification n = r.getSbn();
if (DBG) Slog.d(TAG, "EnqueueNotificationRunnable.run for: " + n.getKey());
NotificationRecord old = mNotificationsByKey.get(n.getKey());
if (old != null) {
@@ -6283,14 +6325,22 @@ public class NotificationManagerService extends SystemService {
}
final boolean isPackageSuspended =
- isPackagePausedOrSuspended(r.sbn.getPackageName(), r.getUid());
+ isPackagePausedOrSuspended(r.getSbn().getPackageName(), r.getUid());
r.setHidden(isPackageSuspended);
if (isPackageSuspended) {
mUsageStats.registerSuspendedByAdmin(r);
}
NotificationRecord old = mNotificationsByKey.get(key);
- final StatusBarNotification n = r.sbn;
+ final StatusBarNotification n = r.getSbn();
final Notification notification = n.getNotification();
+
+ // Make sure the SBN has an instance ID for statsd logging.
+ if (old == null || old.getSbn().getInstanceId() == null) {
+ n.setInstanceId(mNotificationInstanceIdSequence.newInstanceId());
+ } else {
+ n.setInstanceId(old.getSbn().getInstanceId());
+ }
+
int index = indexOfNotificationLocked(n.getKey());
if (index < 0) {
mNotificationList.add(r);
@@ -6328,7 +6378,7 @@ public class NotificationManagerService extends SystemService {
}
if (notification.getSmallIcon() != null) {
- StatusBarNotification oldSbn = (old != null) ? old.sbn : null;
+ StatusBarNotification oldSbn = (old != null) ? old.getSbn() : null;
mListeners.notifyPostedLocked(r, old);
if ((oldSbn == null || !Objects.equals(oldSbn.getGroup(), n.getGroup()))
&& !isCritical(r)) {
@@ -6342,7 +6392,7 @@ public class NotificationManagerService extends SystemService {
} else if (oldSbn != null) {
final NotificationRecord finalRecord = r;
mHandler.post(() -> mGroupHelper.onNotificationUpdated(
- finalRecord.sbn, hasAutoGroupSummaryLocked(n)));
+ finalRecord.getSbn(), hasAutoGroupSummaryLocked(n)));
}
} else {
Slog.e(TAG, "Not posting notification without small icon: " + notification);
@@ -6389,7 +6439,7 @@ public class NotificationManagerService extends SystemService {
@VisibleForTesting
protected boolean isVisuallyInterruptive(NotificationRecord old, NotificationRecord r) {
// Ignore summary updates because we don't display most of the information.
- if (r.sbn.isGroup() && r.sbn.getNotification().isGroupSummary()) {
+ if (r.getSbn().isGroup() && r.getSbn().getNotification().isGroupSummary()) {
if (DEBUG_INTERRUPTIVENESS) {
Slog.v(TAG, "INTERRUPTIVENESS: "
+ r.getKey() + " is not interruptive: summary");
@@ -6413,8 +6463,8 @@ public class NotificationManagerService extends SystemService {
return false;
}
- Notification oldN = old.sbn.getNotification();
- Notification newN = r.sbn.getNotification();
+ Notification oldN = old.getSbn().getNotification();
+ Notification newN = r.getSbn().getNotification();
if (oldN.extras == null || newN.extras == null) {
if (DEBUG_INTERRUPTIVENESS) {
Slog.v(TAG, "INTERRUPTIVENESS: "
@@ -6425,7 +6475,7 @@ public class NotificationManagerService extends SystemService {
// Ignore visual interruptions from foreground services because users
// consider them one 'session'. Count them for everything else.
- if ((r.sbn.getNotification().flags & FLAG_FOREGROUND_SERVICE) != 0) {
+ if ((r.getSbn().getNotification().flags & FLAG_FOREGROUND_SERVICE) != 0) {
if (DEBUG_INTERRUPTIVENESS) {
Slog.v(TAG, "INTERRUPTIVENESS: "
+ r.getKey() + " is not interruptive: foreground service");
@@ -6539,7 +6589,7 @@ public class NotificationManagerService extends SystemService {
@GuardedBy("mNotificationLock")
private void handleGroupedNotificationLocked(NotificationRecord r, NotificationRecord old,
int callingUid, int callingPid) {
- StatusBarNotification sbn = r.sbn;
+ StatusBarNotification sbn = r.getSbn();
Notification n = sbn.getNotification();
if (n.isGroupSummary() && !sbn.isAppGroup()) {
// notifications without a group shouldn't be a summary, otherwise autobundling can
@@ -6550,8 +6600,8 @@ public class NotificationManagerService extends SystemService {
String group = sbn.getGroupKey();
boolean isSummary = n.isGroupSummary();
- Notification oldN = old != null ? old.sbn.getNotification() : null;
- String oldGroup = old != null ? old.sbn.getGroupKey() : null;
+ Notification oldN = old != null ? old.getSbn().getNotification() : null;
+ String oldGroup = old != null ? old.getSbn().getGroupKey() : null;
boolean oldIsSummary = old != null && oldN.isGroupSummary();
if (oldIsSummary) {
@@ -6608,7 +6658,7 @@ public class NotificationManagerService extends SystemService {
boolean beep = false;
boolean blink = false;
- final Notification notification = record.sbn.getNotification();
+ final Notification notification = record.getSbn().getNotification();
final String key = record.getKey();
// Should this notification make noise, vibe, or use the LED?
@@ -6626,7 +6676,7 @@ public class NotificationManagerService extends SystemService {
// If the notification will appear in the status bar, it should send an accessibility
// event
if (!record.isUpdate && record.getImportance() > IMPORTANCE_MIN) {
- sendAccessibilityEvent(notification, record.sbn.getPackageName());
+ sendAccessibilityEvent(notification, record.getSbn().getPackageName());
sentAccessibilityEvent = true;
}
@@ -6648,7 +6698,7 @@ public class NotificationManagerService extends SystemService {
boolean hasAudibleAlert = hasValidSound || hasValidVibrate;
if (hasAudibleAlert && !shouldMuteNotificationLocked(record)) {
if (!sentAccessibilityEvent) {
- sendAccessibilityEvent(notification, record.sbn.getPackageName());
+ sendAccessibilityEvent(notification, record.getSbn().getPackageName());
sentAccessibilityEvent = true;
}
if (DBG) Slog.v(TAG, "Interrupting!");
@@ -6703,7 +6753,7 @@ public class NotificationManagerService extends SystemService {
final int buzzBeepBlink = (buzz ? 1 : 0) | (beep ? 2 : 0) | (blink ? 4 : 0);
if (buzzBeepBlink > 0) {
// Ignore summary updates because we don't display most of the information.
- if (record.sbn.isGroup() && record.sbn.getNotification().isGroupSummary()) {
+ if (record.getSbn().isGroup() && record.getSbn().getNotification().isGroupSummary()) {
if (DEBUG_INTERRUPTIVENESS) {
Slog.v(TAG, "INTERRUPTIVENESS: "
+ record.getKey() + " is not interruptive: summary");
@@ -6758,7 +6808,7 @@ public class NotificationManagerService extends SystemService {
return false;
}
// Suppressed because another notification in its group handles alerting
- if (record.sbn.isGroup() && record.getNotification().suppressAlertingDueToGrouping()) {
+ if (record.getSbn().isGroup() && record.getNotification().suppressAlertingDueToGrouping()) {
return false;
}
// not if in call or the screen's on
@@ -6790,14 +6840,14 @@ public class NotificationManagerService extends SystemService {
}
// Suppressed because another notification in its group handles alerting
- if (record.sbn.isGroup()) {
+ if (record.getSbn().isGroup()) {
if (notification.suppressAlertingDueToGrouping()) {
return true;
}
}
// Suppressed for being too recently noisy
- final String pkg = record.sbn.getPackageName();
+ final String pkg = record.getSbn().getPackageName();
if (mUsageStats.isAlertRateLimited(pkg)) {
Slog.e(TAG, "Muting recently noisy " + record.getKey());
return true;
@@ -6838,7 +6888,7 @@ public class NotificationManagerService extends SystemService {
if (player != null) {
if (DBG) Slog.v(TAG, "Playing sound " + soundUri
+ " with attributes " + record.getAudioAttributes());
- player.playAsync(soundUri, record.sbn.getUser(), looping,
+ player.playAsync(soundUri, record.getSbn().getUser(), looping,
record.getAudioAttributes());
return true;
}
@@ -6881,15 +6931,16 @@ public class NotificationManagerService extends SystemService {
// so need to check the notification still valide for vibrate.
synchronized (mNotificationLock) {
if (mNotificationsByKey.get(record.getKey()) != null) {
- mVibrator.vibrate(record.sbn.getUid(), record.sbn.getOpPkg(),
+ mVibrator.vibrate(record.getSbn().getUid(), record.getSbn().getOpPkg(),
effect, "Notification (delayed)", record.getAudioAttributes());
} else {
- Slog.e(TAG, "No vibration for canceled notification : " + record.getKey());
+ Slog.e(TAG, "No vibration for canceled notification : "
+ + record.getKey());
}
}
}).start();
} else {
- mVibrator.vibrate(record.sbn.getUid(), record.sbn.getPackageName(),
+ mVibrator.vibrate(record.getSbn().getUid(), record.getSbn().getPackageName(),
effect, "Notification", record.getAudioAttributes());
}
return true;
@@ -7372,7 +7423,7 @@ public class NotificationManagerService extends SystemService {
if ((recordInList = findNotificationByListLocked(mNotificationList, r.getKey()))
!= null) {
mNotificationList.remove(recordInList);
- mNotificationsByKey.remove(recordInList.sbn.getKey());
+ mNotificationsByKey.remove(recordInList.getSbn().getKey());
wasPosted = true;
}
while ((recordInList = findNotificationByListLocked(mEnqueuedNotifications, r.getKey()))
@@ -7413,7 +7464,7 @@ public class NotificationManagerService extends SystemService {
} catch (PendingIntent.CanceledException ex) {
// do nothing - there's no relevant way to recover, and
// no reason to let this propagate
- Slog.w(TAG, "canceled PendingIntent for " + r.sbn.getPackageName(), ex);
+ Slog.w(TAG, "canceled PendingIntent for " + r.getSbn().getPackageName(), ex);
}
}
}
@@ -7429,7 +7480,7 @@ public class NotificationManagerService extends SystemService {
mHandler.post(new Runnable() {
@Override
public void run() {
- mGroupHelper.onNotificationRemoved(r.sbn);
+ mGroupHelper.onNotificationRemoved(r.getSbn());
}
});
}
@@ -7485,13 +7536,15 @@ public class NotificationManagerService extends SystemService {
if (groupSummary != null && groupSummary.getKey().equals(canceledKey)) {
mSummaryByGroupKey.remove(groupKey);
}
- final ArrayMap<String, String> summaries = mAutobundledSummaries.get(r.sbn.getUserId());
- if (summaries != null && r.sbn.getKey().equals(summaries.get(r.sbn.getPackageName()))) {
- summaries.remove(r.sbn.getPackageName());
+ final ArrayMap<String, String> summaries =
+ mAutobundledSummaries.get(r.getSbn().getUserId());
+ if (summaries != null && r.getSbn().getKey().equals(
+ summaries.get(r.getSbn().getPackageName()))) {
+ summaries.remove(r.getSbn().getPackageName());
}
// Save it for users of getHistoricalNotifications()
- mArchive.record(r.sbn);
+ mArchive.record(r.getSbn());
final long now = System.currentTimeMillis();
final LogMaker logMaker = r.getItemLogMaker()
@@ -7547,7 +7600,7 @@ public class NotificationManagerService extends SystemService {
for (int i = 0; i < newUris.size(); i++) {
final Uri uri = newUris.valueAt(i);
if (oldUris == null || !oldUris.contains(uri)) {
- if (DBG) Slog.d(TAG, key + ": granting " + uri);
+ Slog.d(TAG, key + ": granting " + uri);
grantUriPermission(permissionOwner, uri, newRecord.getUid(), targetPkg,
targetUserId);
}
@@ -7584,6 +7637,8 @@ public class NotificationManagerService extends SystemService {
targetUserId);
} catch (RemoteException ignored) {
// Ignored because we're in same process
+ } catch (SecurityException e) {
+ Slog.e(TAG, "Cannot grant uri access; " + sourceUid + " does not own " + uri);
} finally {
Binder.restoreCallingIdentity(ident);
}
@@ -7740,7 +7795,7 @@ public class NotificationManagerService extends SystemService {
if (!flagChecker.apply(r.getFlags())) {
continue;
}
- if (pkg != null && !r.sbn.getPackageName().equals(pkg)) {
+ if (pkg != null && !r.getSbn().getPackageName().equals(pkg)) {
continue;
}
if (channelId != null && !channelId.equals(r.getChannel().getId())) {
@@ -7836,7 +7891,7 @@ public class NotificationManagerService extends SystemService {
return;
}
- String pkg = r.sbn.getPackageName();
+ String pkg = r.getSbn().getPackageName();
if (pkg == null) {
if (DBG) Slog.e(TAG, "No package for group summary: " + r.getKey());
@@ -7853,12 +7908,12 @@ public class NotificationManagerService extends SystemService {
private void cancelGroupChildrenByListLocked(ArrayList<NotificationRecord> notificationList,
NotificationRecord parentNotification, int callingUid, int callingPid,
String listenerName, boolean sendDelete, boolean wasPosted, FlagChecker flagChecker) {
- final String pkg = parentNotification.sbn.getPackageName();
+ final String pkg = parentNotification.getSbn().getPackageName();
final int userId = parentNotification.getUserId();
final int reason = REASON_GROUP_SUMMARY_CANCELED;
for (int i = notificationList.size() - 1; i >= 0; i--) {
final NotificationRecord childR = notificationList.get(i);
- final StatusBarNotification childSbn = childR.sbn;
+ final StatusBarNotification childSbn = childR.getSbn();
if ((childSbn.isGroup() && !childSbn.getNotification().isGroupSummary()) &&
childR.getGroupKey().equals(parentNotification.getGroupKey())
&& (childR.getFlags() & FLAG_FOREGROUND_SERVICE) == 0
@@ -7936,7 +7991,7 @@ public class NotificationManagerService extends SystemService {
for (int i = 0; i < len; i++) {
NotificationRecord r = list.get(i);
if (notificationMatchesUserId(r, userId) && r.getGroupKey().equals(groupKey)
- && r.sbn.getPackageName().equals(pkg)) {
+ && r.getSbn().getPackageName().equals(pkg)) {
records.add(r);
}
}
@@ -7977,8 +8032,9 @@ public class NotificationManagerService extends SystemService {
final int len = list.size();
for (int i = 0; i < len; i++) {
NotificationRecord r = list.get(i);
- if (notificationMatchesUserId(r, userId) && r.sbn.getId() == id &&
- TextUtils.equals(r.sbn.getTag(), tag) && r.sbn.getPackageName().equals(pkg)) {
+ if (notificationMatchesUserId(r, userId) && r.getSbn().getId() == id &&
+ TextUtils.equals(r.getSbn().getTag(), tag)
+ && r.getSbn().getPackageName().equals(pkg)) {
return r;
}
}
@@ -7992,8 +8048,9 @@ public class NotificationManagerService extends SystemService {
final int len = list.size();
for (int i = 0; i < len; i++) {
NotificationRecord r = list.get(i);
- if (notificationMatchesUserId(r, userId) && r.sbn.getId() == id &&
- TextUtils.equals(r.sbn.getTag(), tag) && r.sbn.getPackageName().equals(pkg)) {
+ if (notificationMatchesUserId(r, userId) && r.getSbn().getId() == id &&
+ TextUtils.equals(r.getSbn().getTag(), tag)
+ && r.getSbn().getPackageName().equals(pkg)) {
matching.add(r);
}
}
@@ -8031,7 +8088,7 @@ public class NotificationManagerService extends SystemService {
int numNotifications = mNotificationList.size();
for (int i = 0; i < numNotifications; i++) {
NotificationRecord rec = mNotificationList.get(i);
- if (pkgList.contains(rec.sbn.getPackageName())) {
+ if (pkgList.contains(rec.getSbn().getPackageName())) {
rec.setHidden(true);
changedNotifications.add(rec);
}
@@ -8049,7 +8106,7 @@ public class NotificationManagerService extends SystemService {
int numNotifications = mNotificationList.size();
for (int i = 0; i < numNotifications; i++) {
NotificationRecord rec = mNotificationList.get(i);
- if (pkgList.contains(rec.sbn.getPackageName())) {
+ if (pkgList.contains(rec.getSbn().getPackageName())) {
rec.setHidden(false);
changedNotifications.add(rec);
}
@@ -8248,10 +8305,10 @@ public class NotificationManagerService extends SystemService {
for (int i = 0; i < N; i++) {
NotificationRecord record = mNotificationList.get(i);
- if (!isVisibleToListener(record.sbn, info)) {
+ if (!isVisibleToListener(record.getSbn(), info)) {
continue;
}
- final String key = record.sbn.getKey();
+ final String key = record.getSbn().getKey();
final NotificationListenerService.Ranking ranking =
new NotificationListenerService.Ranking();
ranking.populate(
@@ -8262,7 +8319,7 @@ public class NotificationManagerService extends SystemService {
record.getSuppressedVisualEffects(),
record.getImportance(),
record.getImportanceExplanation(),
- record.sbn.getOverrideGroupKey(),
+ record.getSbn().getOverrideGroupKey(),
record.getChannel(),
record.getPeopleOverride(),
record.getSnoozeCriteria(),
@@ -8534,7 +8591,7 @@ public class NotificationManagerService extends SystemService {
for (final ManagedServiceInfo info : NotificationAssistants.this.getServices()) {
ArrayList<String> keys = new ArrayList<>(records.size());
for (NotificationRecord r : records) {
- boolean sbnVisible = isVisibleToListener(r.sbn, info)
+ boolean sbnVisible = isVisibleToListener(r.getSbn(), info)
&& info.isSameUser(r.getUserId());
if (sbnVisible) {
keys.add(r.getKey());
@@ -8622,7 +8679,7 @@ public class NotificationManagerService extends SystemService {
if (debug) {
Slog.v(TAG, "onNotificationEnqueuedLocked() called with: r = [" + r + "]");
}
- final StatusBarNotification sbn = r.sbn;
+ final StatusBarNotification sbn = r.getSbn();
notifyAssistantLocked(
sbn,
true /* sameUserOnly */,
@@ -8961,59 +9018,64 @@ public class NotificationManagerService extends SystemService {
@GuardedBy("mNotificationLock")
private void notifyPostedLocked(NotificationRecord r, NotificationRecord old,
boolean notifyAllListeners) {
- // Lazily initialized snapshots of the notification.
- StatusBarNotification sbn = r.sbn;
- StatusBarNotification oldSbn = (old != null) ? old.sbn : null;
- TrimCache trimCache = new TrimCache(sbn);
+ try {
+ // Lazily initialized snapshots of the notification.
+ StatusBarNotification sbn = r.getSbn();
+ StatusBarNotification oldSbn = (old != null) ? old.getSbn() : null;
+ TrimCache trimCache = new TrimCache(sbn);
+
+ for (final ManagedServiceInfo info : getServices()) {
+ boolean sbnVisible = isVisibleToListener(sbn, info);
+ boolean oldSbnVisible = oldSbn != null ? isVisibleToListener(oldSbn, info)
+ : false;
+ // This notification hasn't been and still isn't visible -> ignore.
+ if (!oldSbnVisible && !sbnVisible) {
+ continue;
+ }
+ // If the notification is hidden, don't notifyPosted listeners targeting < P.
+ // Instead, those listeners will receive notifyPosted when the notification is
+ // unhidden.
+ if (r.isHidden() && info.targetSdkVersion < Build.VERSION_CODES.P) {
+ continue;
+ }
- for (final ManagedServiceInfo info : getServices()) {
- boolean sbnVisible = isVisibleToListener(sbn, info);
- boolean oldSbnVisible = oldSbn != null ? isVisibleToListener(oldSbn, info) : false;
- // This notification hasn't been and still isn't visible -> ignore.
- if (!oldSbnVisible && !sbnVisible) {
- continue;
- }
- // If the notification is hidden, don't notifyPosted listeners targeting < P.
- // Instead, those listeners will receive notifyPosted when the notification is
- // unhidden.
- if (r.isHidden() && info.targetSdkVersion < Build.VERSION_CODES.P) {
- continue;
- }
+ // If we shouldn't notify all listeners, this means the hidden state of
+ // a notification was changed. Don't notifyPosted listeners targeting >= P.
+ // Instead, those listeners will receive notifyRankingUpdate.
+ if (!notifyAllListeners && info.targetSdkVersion >= Build.VERSION_CODES.P) {
+ continue;
+ }
- // If we shouldn't notify all listeners, this means the hidden state of
- // a notification was changed. Don't notifyPosted listeners targeting >= P.
- // Instead, those listeners will receive notifyRankingUpdate.
- if (!notifyAllListeners && info.targetSdkVersion >= Build.VERSION_CODES.P) {
- continue;
- }
+ final NotificationRankingUpdate update = makeRankingUpdateLocked(info);
- final NotificationRankingUpdate update = makeRankingUpdateLocked(info);
+ // This notification became invisible -> remove the old one.
+ if (oldSbnVisible && !sbnVisible) {
+ final StatusBarNotification oldSbnLightClone = oldSbn.cloneLight();
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ notifyRemoved(
+ info, oldSbnLightClone, update, null, REASON_USER_STOPPED);
+ }
+ });
+ continue;
+ }
+
+ // Grant access before listener is notified
+ final int targetUserId = (info.userid == UserHandle.USER_ALL)
+ ? UserHandle.USER_SYSTEM : info.userid;
+ updateUriPermissions(r, old, info.component.getPackageName(), targetUserId);
- // This notification became invisible -> remove the old one.
- if (oldSbnVisible && !sbnVisible) {
- final StatusBarNotification oldSbnLightClone = oldSbn.cloneLight();
+ final StatusBarNotification sbnToPost = trimCache.ForListener(info);
mHandler.post(new Runnable() {
@Override
public void run() {
- notifyRemoved(
- info, oldSbnLightClone, update, null, REASON_USER_STOPPED);
+ notifyPosted(info, sbnToPost, update);
}
});
- continue;
}
-
- // Grant access before listener is notified
- final int targetUserId = (info.userid == UserHandle.USER_ALL)
- ? UserHandle.USER_SYSTEM : info.userid;
- updateUriPermissions(r, old, info.component.getPackageName(), targetUserId);
-
- final StatusBarNotification sbnToPost = trimCache.ForListener(info);
- mHandler.post(new Runnable() {
- @Override
- public void run() {
- notifyPosted(info, sbnToPost, update);
- }
- });
+ } catch (Exception e) {
+ Slog.e(TAG, "Could not notify listeners for " + r.getKey(), e);
}
}
@@ -9023,7 +9085,7 @@ public class NotificationManagerService extends SystemService {
@GuardedBy("mNotificationLock")
public void notifyRemovedLocked(NotificationRecord r, int reason,
NotificationStats notificationStats) {
- final StatusBarNotification sbn = r.sbn;
+ final StatusBarNotification sbn = r.getSbn();
// make a copy in case changes are made to the underlying Notification object
// NOTE: this copy is lightweight: it doesn't include heavyweight parts of the
@@ -9087,7 +9149,7 @@ public class NotificationManagerService extends SystemService {
if (isHiddenRankingUpdate && serviceInfo.targetSdkVersion >=
Build.VERSION_CODES.P) {
for (NotificationRecord rec : changedHiddenNotifications) {
- if (isVisibleToListener(rec.sbn, serviceInfo)) {
+ if (isVisibleToListener(rec.getSbn(), serviceInfo)) {
notifyThisListener = true;
break;
}
diff --git a/services/core/java/com/android/server/notification/NotificationRecord.java b/services/core/java/com/android/server/notification/NotificationRecord.java
index 660d574fe64e..4785da9a5922 100644
--- a/services/core/java/com/android/server/notification/NotificationRecord.java
+++ b/services/core/java/com/android/server/notification/NotificationRecord.java
@@ -91,7 +91,7 @@ public final class NotificationRecord {
static final boolean DBG = Log.isLoggable(TAG, Log.DEBUG);
// the period after which a notification is updated where it can make sound
private static final int MAX_SOUND_DELAY_MS = 2000;
- final StatusBarNotification sbn;
+ private final StatusBarNotification sbn;
IActivityManager mAm;
UriGrantsManagerInternal mUgmInternal;
final int mTargetSdkVersion;
@@ -229,7 +229,7 @@ public final class NotificationRecord {
}
private Uri calculateSound() {
- final Notification n = sbn.getNotification();
+ final Notification n = getSbn().getNotification();
// No notification sounds on tv
if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK)) {
@@ -265,7 +265,7 @@ public final class NotificationRecord {
if (mPreChannelsNotification
&& (getChannel().getUserLockedFields()
& NotificationChannel.USER_LOCKED_LIGHTS) == 0) {
- final Notification notification = sbn.getNotification();
+ final Notification notification = getSbn().getNotification();
if ((notification.flags & Notification.FLAG_SHOW_LIGHTS) != 0) {
light = new Light(notification.ledARGB, notification.ledOnMS,
notification.ledOffMS);
@@ -296,7 +296,7 @@ public final class NotificationRecord {
if (mPreChannelsNotification
&& (getChannel().getUserLockedFields()
& NotificationChannel.USER_LOCKED_VIBRATION) == 0) {
- final Notification notification = sbn.getNotification();
+ final Notification notification = getSbn().getNotification();
final boolean useDefaultVibrate =
(notification.defaults & Notification.DEFAULT_VIBRATE) != 0;
if (useDefaultVibrate) {
@@ -309,7 +309,7 @@ public final class NotificationRecord {
}
private AudioAttributes calculateAttributes() {
- final Notification n = sbn.getNotification();
+ final Notification n = getSbn().getNotification();
AudioAttributes attributes = getChannel().getAudioAttributes();
if (attributes == null) {
attributes = Notification.AUDIO_ATTRIBUTES_DEFAULT;
@@ -335,7 +335,7 @@ public final class NotificationRecord {
}
private int calculateInitialImportance() {
- final Notification n = sbn.getNotification();
+ final Notification n = getSbn().getNotification();
int importance = getChannel().getImportance(); // Post-channels notifications use this
mInitialImportanceExplanationCode = getChannel().hasUserSetImportance()
? MetricsEvent.IMPORTANCE_EXPLANATION_USER
@@ -406,31 +406,31 @@ public final class NotificationRecord {
mRankingTimeMs = calculateRankingTimeMs(previous.getRankingTimeMs());
mCreationTimeMs = previous.mCreationTimeMs;
mVisibleSinceMs = previous.mVisibleSinceMs;
- if (previous.sbn.getOverrideGroupKey() != null && !sbn.isAppGroup()) {
- sbn.setOverrideGroupKey(previous.sbn.getOverrideGroupKey());
+ if (previous.getSbn().getOverrideGroupKey() != null && !getSbn().isAppGroup()) {
+ getSbn().setOverrideGroupKey(previous.getSbn().getOverrideGroupKey());
}
// Don't copy importance information or mGlobalSortKey, recompute them.
}
- public Notification getNotification() { return sbn.getNotification(); }
- public int getFlags() { return sbn.getNotification().flags; }
- public UserHandle getUser() { return sbn.getUser(); }
- public String getKey() { return sbn.getKey(); }
+ public Notification getNotification() { return getSbn().getNotification(); }
+ public int getFlags() { return getSbn().getNotification().flags; }
+ public UserHandle getUser() { return getSbn().getUser(); }
+ public String getKey() { return getSbn().getKey(); }
/** @deprecated Use {@link #getUser()} instead. */
- public int getUserId() { return sbn.getUserId(); }
- public int getUid() { return sbn.getUid(); }
+ public int getUserId() { return getSbn().getUserId(); }
+ public int getUid() { return getSbn().getUid(); }
void dump(ProtoOutputStream proto, long fieldId, boolean redact, int state) {
final long token = proto.start(fieldId);
- proto.write(NotificationRecordProto.KEY, sbn.getKey());
+ proto.write(NotificationRecordProto.KEY, getSbn().getKey());
proto.write(NotificationRecordProto.STATE, state);
if (getChannel() != null) {
proto.write(NotificationRecordProto.CHANNEL_ID, getChannel().getId());
}
proto.write(NotificationRecordProto.CAN_SHOW_LIGHT, getLight() != null);
proto.write(NotificationRecordProto.CAN_VIBRATE, getVibration() != null);
- proto.write(NotificationRecordProto.FLAGS, sbn.getNotification().flags);
+ proto.write(NotificationRecordProto.FLAGS, getSbn().getNotification().flags);
proto.write(NotificationRecordProto.GROUP_KEY, getGroupKey());
proto.write(NotificationRecordProto.IMPORTANCE, getImportance());
if (getSound() != null) {
@@ -439,8 +439,8 @@ public final class NotificationRecord {
if (getAudioAttributes() != null) {
getAudioAttributes().dumpDebug(proto, NotificationRecordProto.AUDIO_ATTRIBUTES);
}
- proto.write(NotificationRecordProto.PACKAGE, sbn.getPackageName());
- proto.write(NotificationRecordProto.DELEGATE_PACKAGE, sbn.getOpPkg());
+ proto.write(NotificationRecordProto.PACKAGE, getSbn().getPackageName());
+ proto.write(NotificationRecordProto.DELEGATE_PACKAGE, getSbn().getOpPkg());
proto.end(token);
}
@@ -452,15 +452,15 @@ public final class NotificationRecord {
}
void dump(PrintWriter pw, String prefix, Context baseContext, boolean redact) {
- final Notification notification = sbn.getNotification();
+ final Notification notification = getSbn().getNotification();
pw.println(prefix + this);
prefix = prefix + " ";
- pw.println(prefix + "uid=" + sbn.getUid() + " userId=" + sbn.getUserId());
- pw.println(prefix + "opPkg=" + sbn.getOpPkg());
+ pw.println(prefix + "uid=" + getSbn().getUid() + " userId=" + getSbn().getUserId());
+ pw.println(prefix + "opPkg=" + getSbn().getOpPkg());
pw.println(prefix + "icon=" + notification.getSmallIcon());
pw.println(prefix + "flags=0x" + Integer.toHexString(notification.flags));
pw.println(prefix + "pri=" + notification.priority);
- pw.println(prefix + "key=" + sbn.getKey());
+ pw.println(prefix + "key=" + getSbn().getKey());
pw.println(prefix + "seen=" + mStats.hasSeen());
pw.println(prefix + "groupKey=" + getGroupKey());
pw.println(prefix + "fullscreenIntent=" + notification.fullScreenIntent);
@@ -594,9 +594,9 @@ public final class NotificationRecord {
"NotificationRecord(0x%08x: pkg=%s user=%s id=%d tag=%s importance=%d key=%s" +
": %s)",
System.identityHashCode(this),
- this.sbn.getPackageName(), this.sbn.getUser(), this.sbn.getId(),
- this.sbn.getTag(), this.mImportance, this.sbn.getKey(),
- this.sbn.getNotification());
+ this.getSbn().getPackageName(), this.getSbn().getUser(), this.getSbn().getId(),
+ this.getSbn().getTag(), this.mImportance, this.getSbn().getKey(),
+ this.getSbn().getNotification());
}
public boolean hasAdjustment(String key) {
@@ -936,7 +936,7 @@ public final class NotificationRecord {
private long calculateRankingTimeMs(long previousRankingTimeMs) {
Notification n = getNotification();
// Take developer provided 'when', unless it's in the future.
- if (n.when != 0 && n.when <= sbn.getPostTime()) {
+ if (n.when != 0 && n.when <= getSbn().getPostTime()) {
return n.when;
}
// If we've ranked a previous instance with a timestamp, inherit it. This case is
@@ -944,7 +944,7 @@ public final class NotificationRecord {
if (previousRankingTimeMs > 0) {
return previousRankingTimeMs;
}
- return sbn.getPostTime();
+ return getSbn().getPostTime();
}
public void setGlobalSortKey(String globalSortKey) {
@@ -977,11 +977,11 @@ public final class NotificationRecord {
}
public String getGroupKey() {
- return sbn.getGroupKey();
+ return getSbn().getGroupKey();
}
public void setOverrideGroupKey(String overrideGroupKey) {
- sbn.setOverrideGroupKey(overrideGroupKey);
+ getSbn().setOverrideGroupKey(overrideGroupKey);
}
public NotificationChannel getChannel() {
@@ -1202,7 +1202,7 @@ public final class NotificationRecord {
* Returns whether this notification was posted by a secondary app
*/
public boolean isProxied() {
- return !Objects.equals(sbn.getPackageName(), sbn.getOpPkg());
+ return !Objects.equals(getSbn().getPackageName(), getSbn().getOpPkg());
}
/**
@@ -1245,7 +1245,7 @@ public final class NotificationRecord {
if (uri == null || !ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) return;
// We can't grant Uri permissions from system
- final int sourceUid = sbn.getUid();
+ final int sourceUid = getSbn().getUid();
if (sourceUid == android.os.Process.SYSTEM_UID) return;
final long ident = Binder.clearCallingIdentity();
@@ -1274,7 +1274,7 @@ public final class NotificationRecord {
}
public LogMaker getLogMaker(long now) {
- LogMaker lm = sbn.getLogMaker()
+ LogMaker lm = getSbn().getLogMaker()
.addTaggedData(MetricsEvent.FIELD_NOTIFICATION_CHANNEL_IMPORTANCE, mImportance)
.addTaggedData(MetricsEvent.NOTIFICATION_SINCE_CREATE_MILLIS, getLifespanMs(now))
.addTaggedData(MetricsEvent.NOTIFICATION_SINCE_UPDATE_MILLIS, getFreshnessMs(now))
@@ -1351,6 +1351,10 @@ public final class NotificationRecord {
return true;
}
+ StatusBarNotification getSbn() {
+ return sbn;
+ }
+
@VisibleForTesting
static final class Light {
public final int color;
diff --git a/services/core/java/com/android/server/notification/NotificationRecordLogger.java b/services/core/java/com/android/server/notification/NotificationRecordLogger.java
index 03929e883852..8d8511f030f0 100644
--- a/services/core/java/com/android/server/notification/NotificationRecordLogger.java
+++ b/services/core/java/com/android/server/notification/NotificationRecordLogger.java
@@ -88,12 +88,12 @@ public interface NotificationRecordLogger {
return true;
}
- return !(Objects.equals(r.sbn.getChannelIdLogTag(), old.sbn.getChannelIdLogTag())
- && Objects.equals(r.sbn.getGroupLogTag(), old.sbn.getGroupLogTag())
- && (r.sbn.getNotification().isGroupSummary()
- == old.sbn.getNotification().isGroupSummary())
- && Objects.equals(r.sbn.getNotification().category,
- old.sbn.getNotification().category)
+ return !(Objects.equals(r.getSbn().getChannelIdLogTag(), old.getSbn().getChannelIdLogTag())
+ && Objects.equals(r.getSbn().getGroupLogTag(), old.getSbn().getGroupLogTag())
+ && (r.getSbn().getNotification().isGroupSummary()
+ == old.getSbn().getNotification().isGroupSummary())
+ && Objects.equals(r.getSbn().getNotification().category,
+ old.getSbn().getNotification().category)
&& (r.getImportance() == old.getImportance()));
}
@@ -106,7 +106,7 @@ public interface NotificationRecordLogger {
* @return hash code for the notification style class, or 0 if none exists.
*/
public int getStyle() {
- return getStyle(r.sbn.getNotification().extras);
+ return getStyle(r.getSbn().getNotification().extras);
}
private int getStyle(@Nullable Bundle extras) {
@@ -120,7 +120,7 @@ public interface NotificationRecordLogger {
}
int getNumPeople() {
- return getNumPeople(r.sbn.getNotification().extras);
+ return getNumPeople(r.getSbn().getNotification().extras);
}
private int getNumPeople(@Nullable Bundle extras) {
@@ -138,5 +138,9 @@ public interface NotificationRecordLogger {
String assistant = r.getAdjustmentIssuer();
return (assistant == null) ? 0 : assistant.hashCode();
}
+
+ int getInstanceId() {
+ return (r.getSbn().getInstanceId() == null ? 0 : r.getSbn().getInstanceId().getId());
+ }
}
}
diff --git a/services/core/java/com/android/server/notification/NotificationRecordLoggerImpl.java b/services/core/java/com/android/server/notification/NotificationRecordLoggerImpl.java
index d637ad5e368b..4974c3001b9b 100644
--- a/services/core/java/com/android/server/notification/NotificationRecordLoggerImpl.java
+++ b/services/core/java/com/android/server/notification/NotificationRecordLoggerImpl.java
@@ -16,7 +16,7 @@
package com.android.server.notification;
-import android.util.StatsLog;
+import com.android.internal.util.FrameworkStatsLog;
/**
* Standard implementation of NotificationRecordLogger interface.
@@ -31,18 +31,18 @@ public class NotificationRecordLoggerImpl implements NotificationRecordLogger {
if (!p.shouldLog(buzzBeepBlink)) {
return;
}
- StatsLog.write(StatsLog.NOTIFICATION_REPORTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.NOTIFICATION_REPORTED,
/* int32 event_id = 1 */ p.getUiEvent().getId(),
/* int32 uid = 2 */ r.getUid(),
- /* string package_name = 3 */ r.sbn.getPackageName(),
- /* int32 instance_id = 4 */ 0, // TODO generate and fill instance ids
- /* int32 notification_id = 5 */ r.sbn.getId(),
- /* string notification_tag = 6 */ r.sbn.getTag(),
- /* string channel_id = 7 */ r.sbn.getChannelIdLogTag(),
- /* string group_id = 8 */ r.sbn.getGroupLogTag(),
+ /* string package_name = 3 */ r.getSbn().getPackageName(),
+ /* int32 instance_id = 4 */ p.getInstanceId(),
+ /* int32 notification_id = 5 */ r.getSbn().getId(),
+ /* string notification_tag = 6 */ r.getSbn().getTag(),
+ /* string channel_id = 7 */ r.getSbn().getChannelIdLogTag(),
+ /* string group_id = 8 */ r.getSbn().getGroupLogTag(),
/* int32 group_instance_id = 9 */ 0, // TODO generate and fill instance ids
- /* bool is_group_summary = 10 */ r.sbn.getNotification().isGroupSummary(),
- /* string category = 11 */ r.sbn.getNotification().category,
+ /* bool is_group_summary = 10 */ r.getSbn().getNotification().isGroupSummary(),
+ /* string category = 11 */ r.getSbn().getNotification().category,
/* int32 style = 12 */ p.getStyle(),
/* int32 num_people = 13 */ p.getNumPeople(),
/* int32 position = 14 */ position,
diff --git a/services/core/java/com/android/server/notification/NotificationUsageStats.java b/services/core/java/com/android/server/notification/NotificationUsageStats.java
index d1fe0d9351cb..b42fe929549a 100644
--- a/services/core/java/com/android/server/notification/NotificationUsageStats.java
+++ b/services/core/java/com/android/server/notification/NotificationUsageStats.java
@@ -276,7 +276,7 @@ public class NotificationUsageStats {
// Locked by this.
private AggregatedStats[] getAggregatedStatsLocked(NotificationRecord record) {
- return getAggregatedStatsLocked(record.sbn.getPackageName());
+ return getAggregatedStatsLocked(record.getSbn().getPackageName());
}
// Locked by this.
@@ -1142,7 +1142,7 @@ public class NotificationUsageStats {
long nowMs = System.currentTimeMillis();
switch (msg.what) {
case MSG_POST:
- writeEvent(r.sbn.getPostTime(), EVENT_TYPE_POST, r);
+ writeEvent(r.getSbn().getPostTime(), EVENT_TYPE_POST, r);
break;
case MSG_CLICK:
writeEvent(nowMs, EVENT_TYPE_CLICK, r);
@@ -1287,7 +1287,7 @@ public class NotificationUsageStats {
private void writeEvent(long eventTimeMs, int eventType, NotificationRecord r) {
ContentValues cv = new ContentValues();
- cv.put(COL_EVENT_USER_ID, r.sbn.getUser().getIdentifier());
+ cv.put(COL_EVENT_USER_ID, r.getSbn().getUser().getIdentifier());
cv.put(COL_EVENT_TIME, eventTimeMs);
cv.put(COL_EVENT_TYPE, eventType);
putNotificationIdentifiers(r, cv);
@@ -1324,16 +1324,16 @@ public class NotificationUsageStats {
}
private static void putNotificationIdentifiers(NotificationRecord r, ContentValues outCv) {
- outCv.put(COL_KEY, r.sbn.getKey());
- outCv.put(COL_PKG, r.sbn.getPackageName());
+ outCv.put(COL_KEY, r.getSbn().getKey());
+ outCv.put(COL_PKG, r.getSbn().getPackageName());
}
private static void putNotificationDetails(NotificationRecord r, ContentValues outCv) {
- outCv.put(COL_NOTIFICATION_ID, r.sbn.getId());
- if (r.sbn.getTag() != null) {
- outCv.put(COL_TAG, r.sbn.getTag());
+ outCv.put(COL_NOTIFICATION_ID, r.getSbn().getId());
+ if (r.getSbn().getTag() != null) {
+ outCv.put(COL_TAG, r.getSbn().getTag());
}
- outCv.put(COL_WHEN_MS, r.sbn.getPostTime());
+ outCv.put(COL_WHEN_MS, r.getSbn().getPostTime());
outCv.put(COL_FLAGS, r.getNotification().flags);
final int before = r.stats.requestedImportance;
final int after = r.getImportance();
diff --git a/services/core/java/com/android/server/notification/PreferencesHelper.java b/services/core/java/com/android/server/notification/PreferencesHelper.java
index b0c1863ea31d..fe39322edb42 100644
--- a/services/core/java/com/android/server/notification/PreferencesHelper.java
+++ b/services/core/java/com/android/server/notification/PreferencesHelper.java
@@ -1380,7 +1380,8 @@ public class PreferencesHelper implements RankingConfig {
policy.priorityCategories, policy.priorityCallSenders,
policy.priorityMessageSenders, policy.suppressedVisualEffects,
(areChannelsBypassingDnd ? NotificationManager.Policy.STATE_CHANNELS_BYPASSING_DND
- : 0)));
+ : 0),
+ policy.priorityConversationSenders));
}
public boolean areChannelsBypassingDnd() {
diff --git a/services/core/java/com/android/server/notification/SnoozeHelper.java b/services/core/java/com/android/server/notification/SnoozeHelper.java
index 9e32d0e81a47..661297a7346e 100644
--- a/services/core/java/com/android/server/notification/SnoozeHelper.java
+++ b/services/core/java/com/android/server/notification/SnoozeHelper.java
@@ -166,7 +166,7 @@ public class SnoozeHelper {
ArrayMap<String, NotificationRecord> packages =
mSnoozedNotifications.get(userId).get(pkg);
for (int i = 0; i < packages.size(); i++) {
- String currentGroupKey = packages.valueAt(i).sbn.getGroup();
+ String currentGroupKey = packages.valueAt(i).getSbn().getGroup();
if (currentGroupKey.equals(groupKey)) {
records.add(packages.valueAt(i));
}
@@ -223,7 +223,7 @@ public class SnoozeHelper {
* Snoozes a notification and schedules an alarm to repost at that time.
*/
protected void snooze(NotificationRecord record, long duration) {
- String pkg = record.sbn.getPackageName();
+ String pkg = record.getSbn().getPackageName();
String key = record.getKey();
int userId = record.getUser().getIdentifier();
@@ -242,7 +242,7 @@ public class SnoozeHelper {
int userId = record.getUser().getIdentifier();
if (contextId != null) {
synchronized (mPersistedSnoozedNotificationsWithContext) {
- storeRecord(record.sbn.getPackageName(), record.getKey(),
+ storeRecord(record.getSbn().getPackageName(), record.getKey(),
userId, mPersistedSnoozedNotificationsWithContext, contextId);
}
}
@@ -254,9 +254,9 @@ public class SnoozeHelper {
if (DEBUG) {
Slog.d(TAG, "Snoozing " + record.getKey());
}
- storeRecord(record.sbn.getPackageName(), record.getKey(),
+ storeRecord(record.getSbn().getPackageName(), record.getKey(),
userId, mSnoozedNotifications, record);
- mPackages.put(record.getKey(), record.sbn.getPackageName());
+ mPackages.put(record.getKey(), record.getSbn().getPackageName());
mUsers.put(record.getKey(), userId);
}
@@ -308,7 +308,7 @@ public class SnoozeHelper {
if (recordsForPkg != null) {
final Set<Map.Entry<String, NotificationRecord>> records = recordsForPkg.entrySet();
for (Map.Entry<String, NotificationRecord> record : records) {
- final StatusBarNotification sbn = record.getValue().sbn;
+ final StatusBarNotification sbn = record.getValue().getSbn();
if (Objects.equals(sbn.getTag(), tag) && sbn.getId() == id) {
record.getValue().isCanceled = true;
return true;
@@ -369,7 +369,7 @@ public class SnoozeHelper {
if (records == null) {
return;
}
- ArrayMap<String, NotificationRecord> pkgRecords = records.get(record.sbn.getPackageName());
+ ArrayMap<String, NotificationRecord> pkgRecords = records.get(record.getSbn().getPackageName());
if (pkgRecords == null) {
return;
}
@@ -420,7 +420,7 @@ public class SnoozeHelper {
int N = recordsByKey.size();
for (int i = 0; i < N; i++) {
final NotificationRecord potentialGroupSummary = recordsByKey.valueAt(i);
- if (potentialGroupSummary.sbn.isGroup()
+ if (potentialGroupSummary.getSbn().isGroup()
&& potentialGroupSummary.getNotification().isGroupSummary()
&& groupKey.equals(potentialGroupSummary.getGroupKey())) {
groupSummaryKey = potentialGroupSummary.getKey();
diff --git a/services/core/java/com/android/server/notification/ValidateNotificationPeople.java b/services/core/java/com/android/server/notification/ValidateNotificationPeople.java
index 639cc70fa275..90fc59a893a6 100644
--- a/services/core/java/com/android/server/notification/ValidateNotificationPeople.java
+++ b/services/core/java/com/android/server/notification/ValidateNotificationPeople.java
@@ -38,6 +38,8 @@ import android.util.Log;
import android.util.LruCache;
import android.util.Slog;
+import libcore.util.EmptyArray;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
@@ -301,7 +303,7 @@ public class ValidateNotificationPeople implements NotificationSignalExtractor {
for (String person: second) {
people.add(person);
}
- return (String[]) people.toArray();
+ return people.toArray(EmptyArray.STRING);
}
@Nullable
diff --git a/services/core/java/com/android/server/notification/ZenModeFiltering.java b/services/core/java/com/android/server/notification/ZenModeFiltering.java
index 6045f6c73b93..4d1985590d7d 100644
--- a/services/core/java/com/android/server/notification/ZenModeFiltering.java
+++ b/services/core/java/com/android/server/notification/ZenModeFiltering.java
@@ -17,6 +17,7 @@
package com.android.server.notification;
import static android.provider.Settings.Global.ZEN_MODE_OFF;
+import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_ANYONE;
import android.app.Notification;
import android.app.NotificationManager;
@@ -106,8 +107,8 @@ public class ZenModeFiltering {
}
private static Bundle extras(NotificationRecord record) {
- return record != null && record.sbn != null && record.sbn.getNotification() != null
- ? record.sbn.getNotification().extras : null;
+ return record != null && record.getSbn() != null && record.getSbn().getNotification() != null
+ ? record.getSbn().getNotification().extras : null;
}
protected void recordCall(NotificationRecord record) {
@@ -125,8 +126,8 @@ public class ZenModeFiltering {
}
// Make an exception to policy for the notification saying that policy has changed
if (NotificationManager.Policy.areAllVisualEffectsSuppressed(policy.suppressedVisualEffects)
- && "android".equals(record.sbn.getPackageName())
- && SystemMessageProto.SystemMessage.NOTE_ZEN_UPGRADE == record.sbn.getId()) {
+ && "android".equals(record.getSbn().getPackageName())
+ && SystemMessageProto.SystemMessage.NOTE_ZEN_UPGRADE == record.getSbn().getId()) {
ZenLog.traceNotIntercepted(record, "systemDndChangedNotification");
return false;
}
@@ -156,25 +157,6 @@ public class ZenModeFiltering {
}
return false;
}
- if (isCall(record)) {
- if (policy.allowRepeatCallers()
- && REPEAT_CALLERS.isRepeat(mContext, extras(record))) {
- ZenLog.traceNotIntercepted(record, "repeatCaller");
- return false;
- }
- if (!policy.allowCalls()) {
- ZenLog.traceIntercepted(record, "!allowCalls");
- return true;
- }
- return shouldInterceptAudience(policy.allowCallsFrom(), record);
- }
- if (isMessage(record)) {
- if (!policy.allowMessages()) {
- ZenLog.traceIntercepted(record, "!allowMessages");
- return true;
- }
- return shouldInterceptAudience(policy.allowMessagesFrom(), record);
- }
if (isEvent(record)) {
if (!policy.allowEvents()) {
ZenLog.traceIntercepted(record, "!allowEvents");
@@ -203,6 +185,41 @@ public class ZenModeFiltering {
}
return false;
}
+ if (isConversation(record)) {
+ if (policy.allowConversations()) {
+ if (policy.priorityConversationSenders == CONVERSATION_SENDERS_ANYONE) {
+ ZenLog.traceNotIntercepted(record, "conversationAnyone");
+ return false;
+ } else if (policy.priorityConversationSenders
+ == NotificationManager.Policy.CONVERSATION_SENDERS_IMPORTANT
+ && record.getChannel().isImportantConversation()) {
+ ZenLog.traceNotIntercepted(record, "conversationMatches");
+ return false;
+ }
+ }
+ // if conversations aren't allowed record might still be allowed thanks
+ // to call or message metadata, so don't return yet
+ }
+ if (isCall(record)) {
+ if (policy.allowRepeatCallers()
+ && REPEAT_CALLERS.isRepeat(mContext, extras(record))) {
+ ZenLog.traceNotIntercepted(record, "repeatCaller");
+ return false;
+ }
+ if (!policy.allowCalls()) {
+ ZenLog.traceIntercepted(record, "!allowCalls");
+ return true;
+ }
+ return shouldInterceptAudience(policy.allowCallsFrom(), record);
+ }
+ if (isMessage(record)) {
+ if (!policy.allowMessages()) {
+ ZenLog.traceIntercepted(record, "!allowMessages");
+ return true;
+ }
+ return shouldInterceptAudience(policy.allowMessagesFrom(), record);
+ }
+
ZenLog.traceIntercepted(record, "!priority");
return true;
default:
@@ -245,7 +262,7 @@ public class ZenModeFiltering {
}
public boolean isCall(NotificationRecord record) {
- return record != null && (isDefaultPhoneApp(record.sbn.getPackageName())
+ return record != null && (isDefaultPhoneApp(record.getSbn().getPackageName())
|| record.isCategory(Notification.CATEGORY_CALL));
}
@@ -273,7 +290,11 @@ public class ZenModeFiltering {
}
protected boolean isMessage(NotificationRecord record) {
- return mMessagingUtil.isMessaging(record.sbn);
+ return mMessagingUtil.isMessaging(record.getSbn());
+ }
+
+ protected boolean isConversation(NotificationRecord record) {
+ return record.isConversation();
}
private static boolean audienceMatches(int source, float contactAffinity) {
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index 696d2ea02600..3b564c3a2459 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -641,9 +641,11 @@ public class ZenModeHelper {
}
public void dump(PrintWriter pw, String prefix) {
- pw.print(prefix); pw.print("mZenMode=");
+ pw.print(prefix);
+ pw.print("mZenMode=");
pw.println(Global.zenModeToString(mZenMode));
- pw.print("mConsolidatedPolicy=" + mConsolidatedPolicy.toString());
+ pw.print(prefix);
+ pw.println("mConsolidatedPolicy=" + mConsolidatedPolicy.toString());
final int N = mConfigs.size();
for (int i = 0; i < N; i++) {
dump(pw, prefix, "mConfigs[u=" + mConfigs.keyAt(i) + "]", mConfigs.valueAt(i));
@@ -665,13 +667,17 @@ public class ZenModeHelper {
return;
}
pw.printf("allow(alarms=%b,media=%b,system=%b,calls=%b,callsFrom=%s,repeatCallers=%b,"
- + "messages=%b,messagesFrom=%s,events=%b,reminders=%b)\n",
+ + "messages=%b,messagesFrom=%s,conversations=%b,conversationsFrom=%s,"
+ + "events=%b,reminders=%b)\n",
config.allowAlarms, config.allowMedia, config.allowSystem,
config.allowCalls, ZenModeConfig.sourceToString(config.allowCallsFrom),
config.allowRepeatCallers, config.allowMessages,
ZenModeConfig.sourceToString(config.allowMessagesFrom),
+ config.allowConversations,
+ ZenPolicy.conversationTypeToString(config.allowConversationsFrom),
config.allowEvents, config.allowReminders);
- pw.printf(" disallow(visualEffects=%s)\n", config.suppressedVisualEffects);
+ pw.print(prefix);
+ pw.printf(" disallow(visualEffects=%s)\n", config.suppressedVisualEffects);
pw.print(prefix); pw.print(" manualRule="); pw.println(config.manualRule);
if (config.automaticRules.isEmpty()) return;
final int N = config.automaticRules.size();
diff --git a/services/core/java/com/android/server/pm/ApexManager.java b/services/core/java/com/android/server/pm/ApexManager.java
index 90afefffdf2e..42bc464e943f 100644
--- a/services/core/java/com/android/server/pm/ApexManager.java
+++ b/services/core/java/com/android/server/pm/ApexManager.java
@@ -95,6 +95,7 @@ public abstract class ApexManager {
* Returns an instance of either {@link ApexManagerImpl} or {@link ApexManagerFlattenedApex}
* depending on whether this device supports APEX, i.e. {@link ApexProperties#updatable()}
* evaluates to {@code true}.
+ * @hide
*/
public static ApexManager getInstance() {
return sApexManagerSingleton.get();
@@ -102,8 +103,9 @@ public abstract class ApexManager {
/**
* Minimal information about APEX mount points and the original APEX package they refer to.
+ * @hide
*/
- static class ActiveApexInfo {
+ public static class ActiveApexInfo {
@Nullable public final String apexModuleName;
public final File apexDirectory;
public final File preInstalledApexPath;
@@ -130,8 +132,10 @@ public abstract class ApexManager {
/**
* Returns {@link ActiveApexInfo} records relative to all active APEX packages.
+ *
+ * @hide
*/
- abstract List<ActiveApexInfo> getActiveApexInfos();
+ public abstract List<ActiveApexInfo> getActiveApexInfos();
abstract void systemReady(Context context);
@@ -287,6 +291,14 @@ public abstract class ApexManager {
public abstract boolean restoreCeData(int userId, int rollbackId, String apexPackageName);
/**
+ * Deletes snapshots of the device encrypted apex data directories for the given
+ * {@code rollbackId}.
+ *
+ * @return boolean true if the delete was successful
+ */
+ public abstract boolean destroyDeSnapshots(int rollbackId);
+
+ /**
* Dumps various state information to the provided {@link PrintWriter} object.
*
* @param pw the {@link PrintWriter} object to send information to.
@@ -362,7 +374,7 @@ public abstract class ApexManager {
}
@Override
- List<ActiveApexInfo> getActiveApexInfos() {
+ public List<ActiveApexInfo> getActiveApexInfos() {
synchronized (mLock) {
if (mActiveApexInfosCache == null) {
try {
@@ -716,6 +728,17 @@ public abstract class ApexManager {
}
}
+ @Override
+ public boolean destroyDeSnapshots(int rollbackId) {
+ try {
+ mApexService.destroyDeSnapshots(rollbackId);
+ return true;
+ } catch (Exception e) {
+ Slog.e(TAG, e.getMessage(), e);
+ return false;
+ }
+ }
+
/**
* Dump information about the packages contained in a particular cache
* @param packagesCache the cache to print information about.
@@ -798,7 +821,7 @@ public abstract class ApexManager {
*/
private static final class ApexManagerFlattenedApex extends ApexManager {
@Override
- List<ActiveApexInfo> getActiveApexInfos() {
+ public List<ActiveApexInfo> getActiveApexInfos() {
// There is no apexd running in case of flattened apex
// We look up the /apex directory and identify the active APEX modules from there.
// As "preinstalled" path, we just report /system since in the case of flattened APEX
@@ -929,6 +952,11 @@ public abstract class ApexManager {
}
@Override
+ public boolean destroyDeSnapshots(int rollbackId) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
void dump(PrintWriter pw, String packageName) {
// No-op
}
diff --git a/services/core/java/com/android/server/pm/AppsFilter.java b/services/core/java/com/android/server/pm/AppsFilter.java
index 7f73baefcabd..3ad120705eb3 100644
--- a/services/core/java/com/android/server/pm/AppsFilter.java
+++ b/services/core/java/com/android/server/pm/AppsFilter.java
@@ -347,6 +347,7 @@ public class AppsFilter {
mForceQueryable.contains(newPkgSetting.appId)
/* shared user that is already force queryable */
|| newPkg.isForceQueryable()
+ || newPkgSetting.forceQueryableOverride
|| (newPkgSetting.isSystem() && (mSystemAppsQueryable
|| ArrayUtils.contains(mForceQueryableByDevicePackageNames,
newPkg.getPackageName())));
@@ -613,6 +614,7 @@ public class AppsFilter {
} finally {
Trace.endSection();
}
+
if (callingPkgSetting != null) {
if (callingPkgInstruments(callingPkgSetting, targetPkgSetting, targetName)) {
return false;
@@ -626,28 +628,34 @@ public class AppsFilter {
}
}
- if (callingSharedPkgSettings != null) {
- int size = callingSharedPkgSettings.size();
- for (int index = 0; index < size; index++) {
- PackageSetting pkgSetting = callingSharedPkgSettings.valueAt(index);
- if (mOverlayReferenceMapper.isValidActor(targetName, pkgSetting.name)) {
+ try {
+ Trace.beginSection("mOverlayReferenceMapper");
+ if (callingSharedPkgSettings != null) {
+ int size = callingSharedPkgSettings.size();
+ for (int index = 0; index < size; index++) {
+ PackageSetting pkgSetting = callingSharedPkgSettings.valueAt(index);
+ if (mOverlayReferenceMapper.isValidActor(targetName, pkgSetting.name)) {
+ if (DEBUG_LOGGING) {
+ log(callingPkgSetting, targetPkgSetting,
+ "matches shared user of package that acts on target of "
+ + "overlay");
+ }
+ return false;
+ }
+ }
+ } else {
+ if (mOverlayReferenceMapper.isValidActor(targetName, callingPkgSetting.name)) {
if (DEBUG_LOGGING) {
- log(callingPkgSetting, targetPkgSetting,
- "matches shared user of package that acts on target of "
- + "overlay");
+ log(callingPkgSetting, targetPkgSetting, "acts on target of overlay");
}
return false;
}
}
- } else {
- if (mOverlayReferenceMapper.isValidActor(targetName, callingPkgSetting.name)) {
- if (DEBUG_LOGGING) {
- log(callingPkgSetting, targetPkgSetting, "acts on target of overlay");
- }
- return false;
- }
+ } finally {
+ Trace.endSection();
}
+
return true;
} finally {
Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java
index c7124314cae0..ba7583fe7f7a 100644
--- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java
+++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java
@@ -36,9 +36,9 @@ import android.os.UserHandle;
import android.os.storage.StorageManager;
import android.util.ArraySet;
import android.util.Log;
-import android.util.StatsLog;
import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.LocalServices;
import com.android.server.PinnerService;
import com.android.server.pm.dex.DexManager;
@@ -444,7 +444,7 @@ public class BackgroundDexOptService extends JobService {
}
if (dex_opt_performed) {
- StatsLog.write(StatsLog.APP_DOWNGRADED, pkg, package_size_before,
+ FrameworkStatsLog.write(FrameworkStatsLog.APP_DOWNGRADED, pkg, package_size_before,
getPackageSize(pm, pkg), /*aggressive=*/ false);
}
return dex_opt_performed;
diff --git a/services/core/java/com/android/server/pm/DataLoaderManagerService.java b/services/core/java/com/android/server/pm/DataLoaderManagerService.java
index 50cd0fcbbb17..4fc9e909a774 100644
--- a/services/core/java/com/android/server/pm/DataLoaderManagerService.java
+++ b/services/core/java/com/android/server/pm/DataLoaderManagerService.java
@@ -225,9 +225,6 @@ public class DataLoaderManagerService extends SystemService {
private void remove() {
synchronized (mLock) {
mServiceConnections.remove(mId);
- if (mServiceConnections.size() == 0) {
- mServiceConnections = null;
- }
}
mParams.clear();
}
diff --git a/services/core/java/com/android/server/pm/Installer.java b/services/core/java/com/android/server/pm/Installer.java
index f962eedb5111..b98bb0831b0e 100644
--- a/services/core/java/com/android/server/pm/Installer.java
+++ b/services/core/java/com/android/server/pm/Installer.java
@@ -234,12 +234,12 @@ public class Installer extends SystemService {
}
public void moveCompleteApp(String fromUuid, String toUuid, String packageName,
- String dataAppName, int appId, String seInfo, int targetSdkVersion)
- throws InstallerException {
+ String dataAppName, int appId, String seInfo, int targetSdkVersion,
+ String fromCodePath) throws InstallerException {
if (!checkBeforeRemote()) return;
try {
mInstalld.moveCompleteApp(fromUuid, toUuid, packageName, dataAppName, appId, seInfo,
- targetSdkVersion);
+ targetSdkVersion, fromCodePath);
} catch (Exception e) {
throw InstallerException.from(e);
}
@@ -450,16 +450,6 @@ public class Installer extends SystemService {
}
}
- public void markBootComplete(String instructionSet) throws InstallerException {
- assertValidInstructionSet(instructionSet);
- if (!checkBeforeRemote()) return;
- try {
- mInstalld.markBootComplete(instructionSet);
- } catch (Exception e) {
- throw InstallerException.from(e);
- }
- }
-
public void freeCache(String uuid, long targetFreeBytes, long cacheReservedBytes, int flags)
throws InstallerException {
if (!checkBeforeRemote()) return;
diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java
index 7bb782b9fadc..3e64e9828c3e 100644
--- a/services/core/java/com/android/server/pm/LauncherAppsService.java
+++ b/services/core/java/com/android/server/pm/LauncherAppsService.java
@@ -29,12 +29,14 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentSender;
+import android.content.LocusId;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.ILauncherApps;
import android.content.pm.IOnAppsChangedListener;
import android.content.pm.IPackageInstallerCallback;
import android.content.pm.IPackageManager;
+import android.content.pm.IShortcutChangeCallback;
import android.content.pm.LauncherApps;
import android.content.pm.LauncherApps.ShortcutQuery;
import android.content.pm.PackageInfo;
@@ -661,8 +663,8 @@ public class LauncherAppsService extends SystemService {
@Override
public ParceledListSlice getShortcuts(String callingPackage, long changedSince,
- String packageName, List shortcutIds, ComponentName componentName, int flags,
- UserHandle targetUser) {
+ String packageName, List shortcutIds, List<LocusId> locusIds,
+ ComponentName componentName, int flags, UserHandle targetUser) {
ensureShortcutPermission(callingPackage);
if (!canAccessProfile(targetUser.getIdentifier(), "Cannot get shortcuts")) {
return new ParceledListSlice<>(Collections.EMPTY_LIST);
@@ -671,16 +673,31 @@ public class LauncherAppsService extends SystemService {
throw new IllegalArgumentException(
"To query by shortcut ID, package name must also be set");
}
+ if (locusIds != null && packageName == null) {
+ throw new IllegalArgumentException(
+ "To query by locus ID, package name must also be set");
+ }
// TODO(b/29399275): Eclipse compiler requires explicit List<ShortcutInfo> cast below.
return new ParceledListSlice<>((List<ShortcutInfo>)
mShortcutServiceInternal.getShortcuts(getCallingUserId(),
- callingPackage, changedSince, packageName, shortcutIds,
+ callingPackage, changedSince, packageName, shortcutIds, locusIds,
componentName, flags, targetUser.getIdentifier(),
injectBinderCallingPid(), injectBinderCallingUid()));
}
@Override
+ public void registerShortcutChangeCallback(String callingPackage, long changedSince,
+ String packageName, List shortcutIds, List<LocusId> locusIds,
+ ComponentName componentName, int flags, IShortcutChangeCallback callback,
+ int callbackId) {
+ }
+
+ @Override
+ public void unregisterShortcutChangeCallback(String callingPackage, int callbackId) {
+ }
+
+ @Override
public void pinShortcuts(String callingPackage, String packageName, List<String> ids,
UserHandle targetUser) {
ensureShortcutPermission(callingPackage);
@@ -1137,7 +1154,7 @@ public class LauncherAppsService extends SystemService {
mShortcutServiceInternal.getShortcuts(launcherUserId,
cookie.packageName,
/* changedSince= */ 0, packageName, /* shortcutIds=*/ null,
- /* component= */ null,
+ /* locusIds=*/ null, /* component= */ null,
ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY
| ShortcutQuery.FLAG_MATCH_ALL_KINDS_WITH_ALL_PINNED
, userId, cookie.callingPid, cookie.callingUid);
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
index c17ad1119631..9116c4032ad5 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -635,6 +635,13 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
stageCid = buildExternalStageCid(sessionId);
}
}
+
+ // reset the force queryable param if it's not called by an approved caller.
+ if (params.forceQueryableOverride) {
+ if (callingUid != Process.SHELL_UID && callingUid != Process.ROOT_UID) {
+ params.forceQueryableOverride = false;
+ }
+ }
InstallSource installSource = InstallSource.create(installerPackageName,
originatingPackageName, requestedInstallerPackageName);
session = new PackageInstallerSession(mInternalCallback, mContext, mPm, this,
diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java
index 431b4dc280f1..0cf8b424b84d 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerSession.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java
@@ -101,7 +101,6 @@ import android.os.RevocableFileDescriptor;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.incremental.IncrementalFileStorages;
-import android.os.incremental.IncrementalManager;
import android.os.storage.StorageManager;
import android.provider.Settings.Secure;
import android.stats.devicepolicy.DevicePolicyEnums;
@@ -130,6 +129,7 @@ import com.android.server.pm.dex.DexManager;
import com.android.server.security.VerityUtils;
import libcore.io.IoUtils;
+import libcore.util.EmptyArray;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -147,7 +147,6 @@ import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
-import java.util.stream.Collectors;
public class PackageInstallerSession extends IPackageInstallerSession.Stub {
private static final String TAG = "PackageInstallerSession";
@@ -214,7 +213,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
private static final String ATTR_SIGNATURE = "signature";
private static final String PROPERTY_NAME_INHERIT_NATIVE = "pi.inherit_native_on_dont_kill";
- private static final int[] EMPTY_CHILD_SESSION_ARRAY = {};
+ private static final int[] EMPTY_CHILD_SESSION_ARRAY = EmptyArray.INT;
+ private static final FileInfo[] EMPTY_FILE_INFO_ARRAY = {};
private static final String SYSTEM_DATA_LOADER_PACKAGE = "android";
@@ -377,8 +377,6 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
// TODO(b/146080380): merge file list with Callback installation.
private IncrementalFileStorages mIncrementalFileStorages;
- private static final String[] EMPTY_STRING_ARRAY = new String[]{};
-
private static final FileFilter sAddedApkFilter = new FileFilter() {
@Override
public boolean accept(File file) {
@@ -560,21 +558,22 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
mStagedSessionErrorMessage =
stagedSessionErrorMessage != null ? stagedSessionErrorMessage : "";
- // TODO(b/136132412): sanity check if session should not be incremental
- if (!params.isStaged && isIncrementalInstallation()) {
- IncrementalManager incrementalManager = (IncrementalManager) mContext.getSystemService(
- Context.INCREMENTAL_SERVICE);
- if (incrementalManager != null) {
- mIncrementalFileStorages =
- new IncrementalFileStorages(mPackageName, stageDir, incrementalManager,
- params.dataLoaderParams);
+ if (isDataLoaderInstallation()) {
+ if (isApexInstallation()) {
+ throw new IllegalArgumentException(
+ "DataLoader installation of APEX modules is not allowed.");
}
}
- if (isStreamingInstallation()
- && this.params.dataLoaderParams.getComponentName().getPackageName()
- == SYSTEM_DATA_LOADER_PACKAGE) {
- assertShellOrSystemCalling("System data loaders");
+ if (isStreamingInstallation()) {
+ if (!isIncrementalInstallationAllowed(mPackageName)) {
+ throw new IllegalArgumentException(
+ "Incremental installation of this package is not allowed.");
+ }
+ if (this.params.dataLoaderParams.getComponentName().getPackageName()
+ == SYSTEM_DATA_LOADER_PACKAGE) {
+ assertShellOrSystemCalling("System data loaders");
+ }
}
}
@@ -732,26 +731,37 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
if (!isDataLoaderInstallation()) {
String[] result = stageDir.list();
if (result == null) {
- result = EMPTY_STRING_ARRAY;
+ result = EmptyArray.STRING;
}
return result;
}
- return mFiles.stream().map(fileInfo -> fileInfo.name).toArray(String[]::new);
+
+ String[] result = new String[mFiles.size()];
+ for (int i = 0, size = mFiles.size(); i < size; ++i) {
+ result[i] = mFiles.get(i).name;
+ }
+ return result;
}
- private static File[] filterFiles(File parent, String[] names, FileFilter filter) {
- return Arrays.stream(names).map(name -> new File(parent, name)).filter(
- file -> filter.accept(file)).toArray(File[]::new);
+ private static ArrayList<File> filterFiles(File parent, String[] names, FileFilter filter) {
+ ArrayList<File> result = new ArrayList<>(names.length);
+ for (String name : names) {
+ File file = new File(parent, name);
+ if (filter.accept(file)) {
+ result.add(file);
+ }
+ }
+ return result;
}
@GuardedBy("mLock")
- private File[] getAddedApksLocked() {
+ private List<File> getAddedApksLocked() {
String[] names = getNamesLocked();
return filterFiles(stageDir, names, sAddedApkFilter);
}
@GuardedBy("mLock")
- private File[] getRemovedFilesLocked() {
+ private List<File> getRemovedFilesLocked() {
String[] names = getNamesLocked();
return filterFiles(stageDir, names, sRemovedFilter);
}
@@ -1030,10 +1040,6 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
}
}
- if (mIncrementalFileStorages != null) {
- mIncrementalFileStorages.finishSetUp();
- }
-
dispatchStreamValidateAndCommit();
}
@@ -1042,11 +1048,6 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
}
private void handleStreamValidateAndCommit() {
- // TODO(b/136132412): update with new APIs
- if (mIncrementalFileStorages != null) {
- mIncrementalFileStorages.startLoading();
- }
-
boolean success = streamValidateAndCommit();
if (isMultiPackage()) {
@@ -1070,11 +1071,12 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
private final class FileSystemConnector extends
IPackageInstallerSessionFileSystemConnector.Stub {
- final Set<String> mAddedFiles;
+ final Set<String> mAddedFiles = new ArraySet<>();
FileSystemConnector(List<InstallationFile> addedFiles) {
- mAddedFiles = addedFiles.stream().map(file -> file.getName()).collect(
- Collectors.toSet());
+ for (InstallationFile file : addedFiles) {
+ mAddedFiles.add(file.getName());
+ }
}
@Override
@@ -1184,6 +1186,19 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
}
/**
+ * Checks if the package can be installed on IncFs.
+ */
+ private static boolean isIncrementalInstallationAllowed(String packageName) {
+ final PackageManagerInternal pmi = LocalServices.getService(PackageManagerInternal.class);
+ final AndroidPackage existingPackage = pmi.getPackage(packageName);
+ if (existingPackage == null) {
+ return true;
+ }
+
+ return !PackageManagerService.isSystemApp(existingPackage);
+ }
+
+ /**
* If this was not already called, the session will be sealed.
*
* This method may be called multiple times to update the status receiver validate caller
@@ -1372,14 +1387,10 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
return false;
}
- final PackageInfo pkgInfo = mPm.getPackageInfo(
- params.appPackageName, PackageManager.GET_SIGNATURES
- | PackageManager.MATCH_STATIC_SHARED_LIBRARIES /*flags*/, userId);
-
if (isApexInstallation()) {
validateApexInstallLocked();
} else {
- validateApkInstallLocked(pkgInfo);
+ validateApkInstallLocked();
}
}
@@ -1741,8 +1752,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
@GuardedBy("mLock")
private void validateApexInstallLocked()
throws PackageManagerException {
- final File[] addedFiles = getAddedApksLocked();
- if (ArrayUtils.isEmpty(addedFiles)) {
+ final List<File> addedFiles = getAddedApksLocked();
+ if (addedFiles.isEmpty()) {
throw new PackageManagerException(INSTALL_FAILED_INVALID_APK, "No packages staged");
}
@@ -1751,7 +1762,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
"Too many files for apex install");
}
- File addedFile = addedFiles[0]; // there is only one file
+ File addedFile = addedFiles.get(0); // there is only one file
// Ensure file name has proper suffix
final String sourceName = addedFile.getName();
@@ -1796,8 +1807,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
* {@link PackageManagerService}.
*/
@GuardedBy("mLock")
- private void validateApkInstallLocked(@Nullable PackageInfo pkgInfo)
- throws PackageManagerException {
+ private void validateApkInstallLocked() throws PackageManagerException {
ApkLite baseApk = null;
mPackageName = null;
mVersionCode = -1;
@@ -1807,6 +1817,10 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
mResolvedStagedFiles.clear();
mResolvedInheritedFiles.clear();
+ final PackageInfo pkgInfo = mPm.getPackageInfo(
+ params.appPackageName, PackageManager.GET_SIGNATURES
+ | PackageManager.MATCH_STATIC_SHARED_LIBRARIES /*flags*/, userId);
+
// Partial installs must be consistent with existing install
if (params.mode == SessionParams.MODE_INHERIT_EXISTING
&& (pkgInfo == null || pkgInfo.applicationInfo == null)) {
@@ -1818,9 +1832,9 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
&& params.mode == SessionParams.MODE_INHERIT_EXISTING
&& VerityUtils.hasFsverity(pkgInfo.applicationInfo.getBaseCodePath());
- final File[] removedFiles = getRemovedFilesLocked();
+ final List<File> removedFiles = getRemovedFilesLocked();
final List<String> removeSplitList = new ArrayList<>();
- if (!ArrayUtils.isEmpty(removedFiles)) {
+ if (!removedFiles.isEmpty()) {
for (File removedFile : removedFiles) {
final String fileName = removedFile.getName();
final String splitName = fileName.substring(
@@ -1829,8 +1843,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
}
}
- final File[] addedFiles = getAddedApksLocked();
- if (ArrayUtils.isEmpty(addedFiles) && removeSplitList.size() == 0) {
+ final List<File> addedFiles = getAddedApksLocked();
+ if (addedFiles.isEmpty() && removeSplitList.size() == 0) {
throw new PackageManagerException(INSTALL_FAILED_INVALID_APK, "No packages staged");
}
@@ -2449,28 +2463,31 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
return true;
}
- final List<InstallationFile> addedFiles = mFiles.stream().filter(
- file -> sAddedFilter.accept(new File(file.name))).map(
- file -> new InstallationFile(
- file.name, file.lengthBytes, file.metadata)).collect(
- Collectors.toList());
- final List<String> removedFiles = mFiles.stream().filter(
- file -> sRemovedFilter.accept(new File(file.name))).map(
- file -> file.name.substring(
- 0, file.name.length() - REMOVE_MARKER_EXTENSION.length())).collect(
- Collectors.toList());
+ final List<InstallationFile> addedFiles = new ArrayList<>(mFiles.size());
+ for (FileInfo file : mFiles) {
+ if (sAddedFilter.accept(new File(this.stageDir, file.name))) {
+ addedFiles.add(new InstallationFile(
+ file.name, file.lengthBytes, file.metadata));
+ }
+ }
+ final List<String> removedFiles = new ArrayList<>(mFiles.size());
+ for (FileInfo file : mFiles) {
+ if (sRemovedFilter.accept(new File(this.stageDir, file.name))) {
+ String name = file.name.substring(
+ 0, file.name.length() - REMOVE_MARKER_EXTENSION.length());
+ removedFiles.add(name);
+ }
+ }
- if (mIncrementalFileStorages != null) {
- for (InstallationFile file : addedFiles) {
- try {
- mIncrementalFileStorages.addFile(file);
- } catch (IOException ex) {
- // TODO(b/146080380): add incremental-specific error code
- throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR,
- "Failed to add and configure Incremental File: " + file.getName(), ex);
- }
+ // TODO(b/136132412): update with new APIs
+ if (isIncrementalInstallation()) {
+ try {
+ mIncrementalFileStorages = IncrementalFileStorages.initialize(mContext,
+ stageDir, params.dataLoaderParams, addedFiles);
+ return true;
+ } catch (IOException e) {
+ throw new PackageManagerException(e);
}
- return true;
}
final DataLoaderManager dataLoaderManager = mContext.getSystemService(
@@ -2745,13 +2762,14 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
bridge.forceClose();
}
}
+ if (mIncrementalFileStorages != null) {
+ mIncrementalFileStorages.cleanUp();
+ mIncrementalFileStorages = null;
+ }
// For staged sessions, we don't delete the directory where the packages have been copied,
// since these packages are supposed to be read on reboot.
// Those dirs are deleted when the staged session has reached a final state.
if (stageDir != null && !params.isStaged) {
- if (mIncrementalFileStorages != null) {
- mIncrementalFileStorages.cleanUp();
- }
try {
mPm.mInstaller.rmPackageDir(stageDir.getAbsolutePath());
} catch (InstallerException ignored) {
@@ -2767,6 +2785,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
} else {
if (mIncrementalFileStorages != null) {
mIncrementalFileStorages.cleanUp();
+ mIncrementalFileStorages = null;
}
try {
mPm.mInstaller.rmPackageDir(stageDir.getAbsolutePath());
@@ -3101,8 +3120,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
}
if (grantedRuntimePermissions.size() > 0) {
- params.grantedRuntimePermissions = grantedRuntimePermissions
- .stream().toArray(String[]::new);
+ params.grantedRuntimePermissions =
+ grantedRuntimePermissions.toArray(EmptyArray.STRING);
}
if (whitelistedRestrictedPermissions.size() > 0) {
@@ -3111,14 +3130,17 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
int[] childSessionIdsArray;
if (childSessionIds.size() > 0) {
- childSessionIdsArray = childSessionIds.stream().mapToInt(i -> i).toArray();
+ childSessionIdsArray = new int[childSessionIds.size()];
+ for (int i = 0, size = childSessionIds.size(); i < size; ++i) {
+ childSessionIdsArray[i] = childSessionIds.get(i);
+ }
} else {
childSessionIdsArray = EMPTY_CHILD_SESSION_ARRAY;
}
FileInfo[] fileInfosArray = null;
if (!files.isEmpty()) {
- fileInfosArray = files.stream().toArray(FileInfo[]::new);
+ fileInfosArray = files.toArray(EMPTY_FILE_INFO_ARRAY);
}
InstallSource installSource = InstallSource.create(installInitiatingPackageName,
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 02ec4727b6ac..c85859072d89 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -55,6 +55,7 @@ import static android.content.pm.PackageManager.INSTALL_FAILED_INVALID_APK;
import static android.content.pm.PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION;
import static android.content.pm.PackageManager.INSTALL_FAILED_MISSING_SHARED_LIBRARY;
import static android.content.pm.PackageManager.INSTALL_FAILED_PACKAGE_CHANGED;
+import static android.content.pm.PackageManager.INSTALL_FAILED_PROCESS_NOT_DEFINED;
import static android.content.pm.PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE;
import static android.content.pm.PackageManager.INSTALL_FAILED_TEST_ONLY;
import static android.content.pm.PackageManager.INSTALL_FAILED_UPDATE_INCOMPATIBLE;
@@ -117,6 +118,7 @@ import static com.android.server.pm.PackageManagerServiceUtils.dumpCriticalInfo;
import static com.android.server.pm.PackageManagerServiceUtils.getCompressedFiles;
import static com.android.server.pm.PackageManagerServiceUtils.getLastModifiedTime;
import static com.android.server.pm.PackageManagerServiceUtils.logCriticalInfo;
+import static com.android.server.pm.PackageManagerServiceUtils.makeDirRecursive;
import static com.android.server.pm.PackageManagerServiceUtils.verifySignatures;
import android.Manifest;
@@ -148,6 +150,7 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.AuxiliaryResolveInfo;
import android.content.pm.ChangedPackages;
import android.content.pm.ComponentInfo;
+import android.content.pm.DataLoaderType;
import android.content.pm.FallbackCategoryProvider;
import android.content.pm.FeatureInfo;
import android.content.pm.IDexModuleRegisterCallback;
@@ -205,6 +208,7 @@ import android.content.pm.dex.DexMetadataHelper;
import android.content.pm.dex.IArtManager;
import android.content.pm.parsing.AndroidPackage;
import android.content.pm.parsing.ApkParseUtils;
+import android.content.pm.parsing.ComponentParseUtils;
import android.content.pm.parsing.ComponentParseUtils.ParsedActivity;
import android.content.pm.parsing.ComponentParseUtils.ParsedActivityIntentInfo;
import android.content.pm.parsing.ComponentParseUtils.ParsedComponent;
@@ -288,7 +292,6 @@ import android.util.Slog;
import android.util.SparseArray;
import android.util.SparseBooleanArray;
import android.util.SparseIntArray;
-import android.util.StatsLog;
import android.util.TimingsTraceLog;
import android.util.Xml;
import android.util.apk.ApkSignatureVerifier;
@@ -310,6 +313,7 @@ import com.android.internal.util.ArrayUtils;
import com.android.internal.util.ConcurrentUtils;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.FastXmlSerializer;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.Preconditions;
import com.android.server.AttributeCache;
@@ -361,7 +365,6 @@ import java.io.File;
import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.FilenameFilter;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.annotation.Retention;
@@ -651,6 +654,8 @@ public class PackageManagerService extends IPackageManager.Stub
private static final String[] INSTANT_APP_BROADCAST_PERMISSION =
new String[] { android.Manifest.permission.ACCESS_INSTANT_APPS };
+ private static final String RANDOM_DIR_PREFIX = "~~";
+
final ServiceThread mHandlerThread;
final PackageHandler mHandler;
@@ -1533,15 +1538,17 @@ public class PackageManagerService extends IPackageManager.Stub
final @NonNull String mRequiredPermissionControllerPackage;
final @Nullable String mSetupWizardPackage;
final @Nullable String mStorageManagerPackage;
- final @Nullable String mSystemTextClassifierPackage;
+ final @Nullable String mDefaultTextClassifierPackage;
+ final @Nullable String mSystemTextClassifierPackageName;
final @Nullable String mWellbeingPackage;
final @Nullable String mDocumenterPackage;
final @Nullable String mConfiguratorPackage;
final @Nullable String mAppPredictionServicePackage;
final @Nullable String mIncidentReportApproverPackage;
final @Nullable String[] mTelephonyPackages;
- final @NonNull String mServicesExtensionPackageName;
- final @NonNull String mSharedSystemSharedLibraryPackageName;
+ final @Nullable String mServicesExtensionPackageName;
+ final @Nullable String mSharedSystemSharedLibraryPackageName;
+ final @Nullable String mRetailDemoPackage;
private final PackageUsage mPackageUsage = new PackageUsage();
private final CompilerStats mCompilerStats = new CompilerStats();
@@ -1652,7 +1659,8 @@ public class PackageManagerService extends IPackageManager.Stub
handlePackagePostInstall(parentRes, grantPermissions,
killApp, virtualPreload, grantedPermissions,
whitelistedRestrictedPermissions, didRestore,
- args.installSource.installerPackageName, args.observer);
+ args.installSource.installerPackageName, args.observer,
+ args.mDataLoaderType);
// Handle the child packages
final int childCount = (parentRes.addedChildPackages != null)
@@ -1662,7 +1670,8 @@ public class PackageManagerService extends IPackageManager.Stub
handlePackagePostInstall(childRes, grantPermissions,
killApp, virtualPreload, grantedPermissions,
whitelistedRestrictedPermissions, false /*didRestore*/,
- args.installSource.installerPackageName, args.observer);
+ args.installSource.installerPackageName, args.observer,
+ args.mDataLoaderType);
}
// Log tracing if needed
@@ -1989,7 +1998,7 @@ public class PackageManagerService extends IPackageManager.Stub
boolean killApp, boolean virtualPreload,
String[] grantedPermissions, List<String> whitelistedRestrictedPermissions,
boolean launchedForRestore, String installerPackage,
- IPackageInstallObserver2 installObserver) {
+ IPackageInstallObserver2 installObserver, int dataLoaderType) {
final boolean succeeded = res.returnCode == PackageManager.INSTALL_SUCCEEDED;
final boolean update = res.removedInfo != null && res.removedInfo.removedPackage != null;
@@ -2090,11 +2099,14 @@ public class PackageManagerService extends IPackageManager.Stub
if (update) {
extras.putBoolean(Intent.EXTRA_REPLACING, true);
}
+ extras.putInt(PackageInstaller.EXTRA_DATA_LOADER_TYPE, dataLoaderType);
+ // Send to all running apps.
sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName,
extras, 0 /*flags*/,
null /*targetPackage*/, null /*finishedReceiver*/,
updateUserIds, instantUserIds);
if (installerPackageName != null) {
+ // Send to the installer, even if it's not running.
sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName,
extras, 0 /*flags*/,
installerPackageName, null /*finishedReceiver*/,
@@ -2163,7 +2175,8 @@ public class PackageManagerService extends IPackageManager.Stub
getPackageExternalStorageType(volume, isExternal(res.pkg));
// If the package was installed externally, log it.
if (packageExternalStorageType != StorageEnums.UNKNOWN) {
- StatsLog.write(StatsLog.APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED,
+ FrameworkStatsLog.write(
+ FrameworkStatsLog.APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED,
packageExternalStorageType, res.pkg.getPackageName());
}
}
@@ -2727,7 +2740,7 @@ public class PackageManagerService extends IPackageManager.Stub
t.traceBegin("get system config");
SystemConfig systemConfig = SystemConfig.getInstance();
mAvailableFeatures = systemConfig.getAvailableFeatures();
- ApplicationPackageManager.invalidateSysFeatureCache();
+ ApplicationPackageManager.invalidateHasSystemFeatureCache();
t.traceEnd();
mProtectedPackages = new ProtectedPackages(mContext);
@@ -2995,9 +3008,6 @@ public class PackageManagerService extends IPackageManager.Stub
}
}
- //delete tmp files
- deleteTempPackageFiles();
-
final int cachedSystemApps = PackageParser.sCachedPackageReadCount.get();
// Remove any shared userIDs that have no associated packages
@@ -3152,14 +3162,15 @@ public class PackageManagerService extends IPackageManager.Stub
mSetupWizardPackage = getSetupWizardPackageNameImpl();
mComponentResolver.fixProtectedFilterPriorities();
- mSystemTextClassifierPackage = getSystemTextClassifierPackageName();
-
+ mDefaultTextClassifierPackage = getDefaultTextClassifierPackageName();
+ mSystemTextClassifierPackageName = getSystemTextClassifierPackageName();
mWellbeingPackage = getWellbeingPackageName();
mDocumenterPackage = getDocumenterPackageName();
mConfiguratorPackage = getDeviceConfiguratorPackageName();
mAppPredictionServicePackage = getAppPredictionServicePackageName();
mIncidentReportApproverPackage = getIncidentReportApproverPackageName();
mTelephonyPackages = getTelephonyPackageNames();
+ mRetailDemoPackage = getRetailDemoPackageName();
// Now that we know all of the shared libraries, update all clients to have
// the correct library paths.
@@ -3347,6 +3358,7 @@ public class PackageManagerService extends IPackageManager.Stub
mServicesExtensionPackageName = null;
mSharedSystemSharedLibraryPackageName = null;
}
+
// PermissionController hosts default permission granting and role management, so it's a
// critical part of the core system.
mRequiredPermissionControllerPackage = getRequiredPermissionControllerLPr();
@@ -3590,8 +3602,7 @@ public class PackageManagerService extends IPackageManager.Stub
getNextCodePath(Environment.getDataAppDirectory(null), packageName);
int ret = PackageManager.INSTALL_SUCCEEDED;
try {
- Os.mkdir(dstCodePath.getAbsolutePath(), 0755);
- Os.chmod(dstCodePath.getAbsolutePath(), 0755);
+ makeDirRecursive(dstCodePath, 0755);
for (File srcFile : compressedFiles) {
final String srcFileName = srcFile.getName();
final String dstFileName = srcFileName.substring(
@@ -9851,8 +9862,12 @@ public class PackageManagerService extends IPackageManager.Stub
@GuardedBy("mInstallLock")
void removeCodePathLI(File codePath) {
if (codePath.isDirectory()) {
+ File codePathParent = codePath.getParentFile();
try {
mInstaller.rmPackageDir(codePath.getAbsolutePath());
+ if (codePathParent.getName().startsWith(RANDOM_DIR_PREFIX)) {
+ mInstaller.rmPackageDir(codePathParent.getAbsolutePath());
+ }
} catch (InstallerException e) {
Slog.w(TAG, "Failed to remove code path", e);
}
@@ -10569,6 +10584,10 @@ public class PackageManagerService extends IPackageManager.Stub
if (pkgSetting.sharedUser != null) {
pkgSetting.sharedUser.addPackage(pkgSetting);
}
+ if (reconciledPkg.installArgs != null && reconciledPkg.installArgs.forceQueryableOverride) {
+ pkgSetting.forceQueryableOverride = true;
+ }
+
// TODO(toddke): Consider a method specifically for modifying the Package object
// post scan; or, moving this stuff out of the Package object since it has nothing
// to do with the package on disk.
@@ -11245,6 +11264,26 @@ public class PackageManagerService extends IPackageManager.Stub
return object;
}
+ private <T extends ComponentParseUtils.ParsedMainComponent>
+ void assertPackageProcesses(AndroidPackage pkg, List<T> components,
+ ArrayMap<String, ComponentParseUtils.ParsedProcess> procs, String compName)
+ throws PackageManagerException {
+ if (components == null) {
+ return;
+ }
+ for (int i = components.size() - 1; i >= 0; i--) {
+ final ComponentParseUtils.ParsedMainComponent<?> component = components.get(i);
+ if (!procs.containsKey(component.getProcessName())) {
+ throw new PackageManagerException(
+ INSTALL_FAILED_PROCESS_NOT_DEFINED,
+ "Can't install because " + compName + " " + component.className
+ + "'s process attribute " + component.getProcessName()
+ + " (in package " + pkg.getPackageName()
+ + ") is not included in the <processes> list");
+ }
+ }
+ }
+
/**
* Asserts the parsed package is valid according to the given policy. If the
* package is invalid, for whatever reason, throws {@link PackageManagerException}.
@@ -11474,6 +11513,24 @@ public class PackageManagerService extends IPackageManager.Stub
mComponentResolver.assertProvidersNotDefined(pkg);
}
+ // If this package has defined explicit processes, then ensure that these are
+ // the only processes used by its components.
+ final ArrayMap<String, ComponentParseUtils.ParsedProcess> procs = pkg.getProcesses();
+ if (procs != null) {
+ if (!procs.containsKey(pkg.getProcessName())) {
+ throw new PackageManagerException(
+ INSTALL_FAILED_PROCESS_NOT_DEFINED,
+ "Can't install because application tag's process attribute "
+ + pkg.getProcessName()
+ + " (in package " + pkg.getPackageName()
+ + ") is not included in the <processes> list");
+ }
+ assertPackageProcesses(pkg, pkg.getActivities(), procs, "activity");
+ assertPackageProcesses(pkg, pkg.getServices(), procs, "service");
+ assertPackageProcesses(pkg, pkg.getReceivers(), procs, "receiver");
+ assertPackageProcesses(pkg, pkg.getProviders(), procs, "provider");
+ }
+
// Verify that packages sharing a user with a privileged app are marked as privileged.
if (!pkg.isPrivileged() && (pkg.getSharedUserId() != null)) {
SharedUserSetting sharedUserSetting = null;
@@ -13927,9 +13984,11 @@ public class PackageManagerService extends IPackageManager.Stub
final int appId;
final String seinfo;
final int targetSdkVersion;
+ final String fromCodePath;
public MoveInfo(int moveId, String fromUuid, String toUuid, String packageName,
- String dataAppName, int appId, String seinfo, int targetSdkVersion) {
+ String dataAppName, int appId, String seinfo, int targetSdkVersion,
+ String fromCodePath) {
this.moveId = moveId;
this.fromUuid = fromUuid;
this.toUuid = toUuid;
@@ -13938,6 +13997,7 @@ public class PackageManagerService extends IPackageManager.Stub
this.appId = appId;
this.seinfo = seinfo;
this.targetSdkVersion = targetSdkVersion;
+ this.fromCodePath = fromCodePath;
}
}
@@ -14062,13 +14122,15 @@ public class PackageManagerService extends IPackageManager.Stub
@Nullable
MultiPackageInstallParams mParentInstallParams;
final long requiredInstalledVersionCode;
+ final boolean forceQueryableOverride;
+ final int mDataLoaderType;
InstallParams(OriginInfo origin, MoveInfo move, IPackageInstallObserver2 observer,
int installFlags, InstallSource installSource, String volumeUuid,
VerificationInfo verificationInfo, UserHandle user, String packageAbiOverride,
String[] grantedPermissions, List<String> whitelistedRestrictedPermissions,
SigningDetails signingDetails, int installReason,
- long requiredInstalledVersionCode) {
+ long requiredInstalledVersionCode, int dataLoaderType) {
super(user);
this.origin = origin;
this.move = move;
@@ -14083,39 +14145,43 @@ public class PackageManagerService extends IPackageManager.Stub
this.signingDetails = signingDetails;
this.installReason = installReason;
this.requiredInstalledVersionCode = requiredInstalledVersionCode;
+ this.forceQueryableOverride = false;
+ this.mDataLoaderType = dataLoaderType;
}
InstallParams(ActiveInstallSession activeInstallSession) {
super(activeInstallSession.getUser());
+ final PackageInstaller.SessionParams sessionParams =
+ activeInstallSession.getSessionParams();
if (DEBUG_INSTANT) {
- if ((activeInstallSession.getSessionParams().installFlags
+ if ((sessionParams.installFlags
& PackageManager.INSTALL_INSTANT_APP) != 0) {
Slog.d(TAG, "Ephemeral install of " + activeInstallSession.getPackageName());
}
}
verificationInfo = new VerificationInfo(
- activeInstallSession.getSessionParams().originatingUri,
- activeInstallSession.getSessionParams().referrerUri,
- activeInstallSession.getSessionParams().originatingUid,
+ sessionParams.originatingUri,
+ sessionParams.referrerUri,
+ sessionParams.originatingUid,
activeInstallSession.getInstallerUid());
origin = OriginInfo.fromStagedFile(activeInstallSession.getStagedDir());
move = null;
installReason = fixUpInstallReason(
activeInstallSession.getInstallSource().installerPackageName,
activeInstallSession.getInstallerUid(),
- activeInstallSession.getSessionParams().installReason);
+ sessionParams.installReason);
observer = activeInstallSession.getObserver();
- installFlags = activeInstallSession.getSessionParams().installFlags;
+ installFlags = sessionParams.installFlags;
installSource = activeInstallSession.getInstallSource();
- volumeUuid = activeInstallSession.getSessionParams().volumeUuid;
- packageAbiOverride = activeInstallSession.getSessionParams().abiOverride;
- grantedRuntimePermissions = activeInstallSession.getSessionParams()
- .grantedRuntimePermissions;
- whitelistedRestrictedPermissions = activeInstallSession.getSessionParams()
- .whitelistedRestrictedPermissions;
+ volumeUuid = sessionParams.volumeUuid;
+ packageAbiOverride = sessionParams.abiOverride;
+ grantedRuntimePermissions = sessionParams.grantedRuntimePermissions;
+ whitelistedRestrictedPermissions = sessionParams.whitelistedRestrictedPermissions;
signingDetails = activeInstallSession.getSigningDetails();
- requiredInstalledVersionCode = activeInstallSession.getSessionParams()
- .requiredInstalledVersionCode;
+ requiredInstalledVersionCode = sessionParams.requiredInstalledVersionCode;
+ forceQueryableOverride = sessionParams.forceQueryableOverride;
+ mDataLoaderType = (sessionParams.dataLoaderParams != null)
+ ? sessionParams.dataLoaderParams.getType() : DataLoaderType.NONE;
}
@Override
@@ -14716,7 +14782,9 @@ public class PackageManagerService extends IPackageManager.Stub
final int traceCookie;
final PackageParser.SigningDetails signingDetails;
final int installReason;
+ final boolean forceQueryableOverride;
@Nullable final MultiPackageInstallParams mMultiPackageInstallParams;
+ final int mDataLoaderType;
// The list of instruction sets supported by this app. This is currently
// only used during the rmdex() phase to clean up resources. We can get rid of this
@@ -14729,8 +14797,8 @@ public class PackageManagerService extends IPackageManager.Stub
String abiOverride, String[] installGrantPermissions,
List<String> whitelistedRestrictedPermissions,
String traceMethod, int traceCookie, SigningDetails signingDetails,
- int installReason,
- MultiPackageInstallParams multiPackageInstallParams) {
+ int installReason, boolean forceQueryableOverride,
+ MultiPackageInstallParams multiPackageInstallParams, int dataLoaderType) {
this.origin = origin;
this.move = move;
this.installFlags = installFlags;
@@ -14746,7 +14814,9 @@ public class PackageManagerService extends IPackageManager.Stub
this.traceCookie = traceCookie;
this.signingDetails = signingDetails;
this.installReason = installReason;
+ this.forceQueryableOverride = forceQueryableOverride;
this.mMultiPackageInstallParams = multiPackageInstallParams;
+ this.mDataLoaderType = dataLoaderType;
}
/** New install */
@@ -14756,7 +14826,8 @@ public class PackageManagerService extends IPackageManager.Stub
params.getUser(), null /*instructionSets*/, params.packageAbiOverride,
params.grantedRuntimePermissions, params.whitelistedRestrictedPermissions,
params.traceMethod, params.traceCookie, params.signingDetails,
- params.installReason, params.mParentInstallParams);
+ params.installReason, params.forceQueryableOverride,
+ params.mParentInstallParams, params.mDataLoaderType);
}
abstract int copyApk();
@@ -14847,7 +14918,8 @@ public class PackageManagerService extends IPackageManager.Stub
super(OriginInfo.fromNothing(), null, null, 0, InstallSource.EMPTY,
null, null, instructionSets, null, null, null, null, 0,
PackageParser.SigningDetails.UNKNOWN,
- PackageManager.INSTALL_REASON_UNKNOWN, null /* parent */);
+ PackageManager.INSTALL_REASON_UNKNOWN, false, null /* parent */,
+ DataLoaderType.NONE);
this.codeFile = (codePath != null) ? new File(codePath) : null;
this.resourceFile = (resourcePath != null) ? new File(resourcePath) : null;
}
@@ -14925,9 +14997,9 @@ public class PackageManagerService extends IPackageManager.Stub
final boolean onIncremental = mIncrementalManager != null
&& isIncrementalPath(beforeCodeFile.getAbsolutePath());
try {
+ makeDirRecursive(afterCodeFile.getParentFile(), 0775);
if (onIncremental) {
- mIncrementalManager.rename(beforeCodeFile.getAbsolutePath(),
- afterCodeFile.getAbsolutePath());
+ mIncrementalManager.renameCodePath(beforeCodeFile, afterCodeFile);
} else {
Os.rename(beforeCodeFile.getAbsolutePath(), afterCodeFile.getAbsolutePath());
}
@@ -15046,7 +15118,8 @@ public class PackageManagerService extends IPackageManager.Stub
synchronized (mInstaller) {
try {
mInstaller.moveCompleteApp(move.fromUuid, move.toUuid, move.packageName,
- move.dataAppName, move.appId, move.seinfo, move.targetSdkVersion);
+ move.dataAppName, move.appId, move.seinfo, move.targetSdkVersion,
+ move.fromCodePath);
} catch (InstallerException e) {
Slog.w(TAG, "Failed to move app", e);
return PackageManager.INSTALL_FAILED_INTERNAL_ERROR;
@@ -15137,16 +15210,29 @@ public class PackageManagerService extends IPackageManager.Stub
}
}
+ /**
+ * Given {@code targetDir}, returns {@code targetDir/~~[randomStrA]/[packageName]-[randomStrB].}
+ * Makes sure that {@code targetDir/~~[randomStrA]} directory doesn't exist.
+ * Notice that this method doesn't actually create any directory.
+ *
+ * @param targetDir Directory that is two-levels up from the result directory.
+ * @param packageName Name of the package whose code files are to be installed under the result
+ * directory.
+ * @return File object for the directory that should hold the code files of {@code packageName}.
+ */
private File getNextCodePath(File targetDir, String packageName) {
- File result;
SecureRandom random = new SecureRandom();
byte[] bytes = new byte[16];
+ File firstLevelDir;
do {
random.nextBytes(bytes);
- String suffix = Base64.encodeToString(bytes, Base64.URL_SAFE | Base64.NO_WRAP);
- result = new File(targetDir, packageName + "-" + suffix);
- } while (result.exists());
- return result;
+ String dirName = RANDOM_DIR_PREFIX
+ + Base64.encodeToString(bytes, Base64.URL_SAFE | Base64.NO_WRAP);
+ firstLevelDir = new File(targetDir, dirName);
+ } while (firstLevelDir.exists());
+ random.nextBytes(bytes);
+ String suffix = Base64.encodeToString(bytes, Base64.URL_SAFE | Base64.NO_WRAP);
+ return new File(firstLevelDir, packageName + "-" + suffix);
}
static class PackageInstalledInfo {
@@ -17141,12 +17227,6 @@ public class PackageManagerService extends IPackageManager.Stub
}
}
- private void deleteTempPackageFiles() {
- // TODO: Is this used?
- final FilenameFilter filter =
- (dir, name) -> name.startsWith("vmdl") && name.endsWith(".tmp");
- }
-
@Override
public void deletePackageAsUser(String packageName, int versionCode,
IPackageDeleteObserver observer, int userId, int flags) {
@@ -19563,15 +19643,15 @@ public class PackageManagerService extends IPackageManager.Stub
}
@Override
- public String getSystemTextClassifierPackageName() {
- return ensureSystemPackageName(mContext.getString(
- R.string.config_defaultTextClassifierPackage));
+ public String getDefaultTextClassifierPackageName() {
+ return ensureSystemPackageName(
+ mContext.getString(R.string.config_servicesExtensionPackage));
}
@Override
- public String[] getSystemTextClassifierPackages() {
- return ensureSystemPackageNames(mContext.getResources().getStringArray(
- R.array.config_defaultTextClassifierPackages));
+ public String getSystemTextClassifierPackageName() {
+ return ensureSystemPackageName(
+ mContext.getString(R.string.config_defaultTextClassifierPackage));
}
@Override
@@ -19702,14 +19782,52 @@ public class PackageManagerService extends IPackageManager.Stub
}
@Nullable
+ private String getRetailDemoPackageName() {
+ final String predefinedPkgName = mContext.getString(R.string.config_retailDemoPackage);
+ final String predefinedSignature = mContext.getString(
+ R.string.config_retailDemoPackageSignature);
+
+ if (TextUtils.isEmpty(predefinedPkgName) || TextUtils.isEmpty(predefinedSignature)) {
+ return null;
+ }
+
+ final AndroidPackage androidPkg = mPackages.get(predefinedPkgName);
+ if (androidPkg != null) {
+ final SigningDetails signingDetail = androidPkg.getSigningDetails();
+ if (signingDetail != null && signingDetail.signatures != null) {
+ try {
+ final MessageDigest msgDigest = MessageDigest.getInstance("SHA-256");
+ for (Signature signature : signingDetail.signatures) {
+ if (TextUtils.equals(predefinedSignature,
+ HexEncoding.encodeToString(msgDigest.digest(
+ signature.toByteArray()), false))) {
+ return predefinedPkgName;
+ }
+ }
+ } catch (NoSuchAlgorithmException e) {
+ Slog.e(
+ TAG,
+ "Unable to verify signatures as getting the retail demo package name",
+ e);
+ }
+ }
+ }
+
+ return null;
+ }
+
+ @Nullable
private String ensureSystemPackageName(@Nullable String packageName) {
if (packageName == null) {
return null;
}
- if (getPackageInfo(packageName, MATCH_SYSTEM_ONLY | MATCH_DIRECT_BOOT_AWARE
- | MATCH_DIRECT_BOOT_UNAWARE | MATCH_DISABLED_COMPONENTS,
- UserHandle.getCallingUserId()) == null) {
- return null;
+ long token = Binder.clearCallingIdentity();
+ try {
+ if (getPackageInfo(packageName, MATCH_FACTORY_ONLY, UserHandle.USER_SYSTEM) == null) {
+ return null;
+ }
+ } finally {
+ Binder.restoreCallingIdentity(token);
}
return packageName;
}
@@ -21478,7 +21596,7 @@ public class PackageManagerService extends IPackageManager.Stub
final int absoluteCodePathCount = absoluteCodePaths.size();
for (int i = 0; i < absoluteCodePathCount; i++) {
String absoluteCodePath = absoluteCodePaths.get(i);
- if (absolutePath.startsWith(absoluteCodePath)) {
+ if (absoluteCodePath.startsWith(absolutePath)) {
pathValid = true;
break;
}
@@ -21951,6 +22069,7 @@ public class PackageManagerService extends IPackageManager.Stub
final PackageFreezer freezer;
final int[] installedUserIds;
final boolean isCurrentLocationExternal;
+ final String fromCodePath;
// reader
synchronized (mLock) {
@@ -22007,6 +22126,7 @@ public class PackageManagerService extends IPackageManager.Stub
targetSdkVersion = pkg.getTargetSdkVersion();
freezer = freezePackage(packageName, "movePackageInternal");
installedUserIds = ps.queryInstalledUsers(mUserManager.getUserIds(), true);
+ fromCodePath = pkg.getCodePath();
}
final Bundle extras = new Bundle();
@@ -22135,7 +22255,7 @@ public class PackageManagerService extends IPackageManager.Stub
final String dataAppName = codeFile.getName();
move = new MoveInfo(moveId, currentVolumeUuid, volumeUuid, packageName,
- dataAppName, appId, seinfo, targetSdkVersion);
+ dataAppName, appId, seinfo, targetSdkVersion, fromCodePath);
} else {
move = null;
}
@@ -22148,7 +22268,8 @@ public class PackageManagerService extends IPackageManager.Stub
installSource, volumeUuid, null /*verificationInfo*/, user,
packageAbiOverride, null /*grantedPermissions*/,
null /*whitelistedRestrictedPermissions*/, PackageParser.SigningDetails.UNKNOWN,
- PackageManager.INSTALL_REASON_UNKNOWN, PackageManager.VERSION_CODE_HIGHEST);
+ PackageManager.INSTALL_REASON_UNKNOWN, PackageManager.VERSION_CODE_HIGHEST,
+ DataLoaderType.NONE);
params.setTraceMethod("movePackage").setTraceCookie(System.identityHashCode(params));
msg.obj = params;
@@ -22179,13 +22300,15 @@ public class PackageManagerService extends IPackageManager.Stub
if (!isPreviousLocationExternal && isExternal(pkg)) {
// Move from internal to external storage.
- StatsLog.write(StatsLog.APP_MOVED_STORAGE_REPORTED, packageExternalStorageType,
- StatsLog.APP_MOVED_STORAGE_REPORTED__MOVE_TYPE__TO_EXTERNAL,
+ FrameworkStatsLog.write(FrameworkStatsLog.APP_MOVED_STORAGE_REPORTED,
+ packageExternalStorageType,
+ FrameworkStatsLog.APP_MOVED_STORAGE_REPORTED__MOVE_TYPE__TO_EXTERNAL,
packageName);
} else if (isPreviousLocationExternal && !isExternal(pkg)) {
// Move from external to internal storage.
- StatsLog.write(StatsLog.APP_MOVED_STORAGE_REPORTED, packageExternalStorageType,
- StatsLog.APP_MOVED_STORAGE_REPORTED__MOVE_TYPE__TO_INTERNAL,
+ FrameworkStatsLog.write(FrameworkStatsLog.APP_MOVED_STORAGE_REPORTED,
+ packageExternalStorageType,
+ FrameworkStatsLog.APP_MOVED_STORAGE_REPORTED__MOVE_TYPE__TO_INTERNAL,
packageName);
}
}
@@ -22652,6 +22775,11 @@ public class PackageManagerService extends IPackageManager.Stub
private class PackageManagerNative extends IPackageManagerNative.Stub {
@Override
+ public String[] getAllPackages() {
+ return PackageManagerService.this.getAllPackages().toArray(new String[0]);
+ }
+
+ @Override
public String[] getNamesForUids(int[] uids) throws RemoteException {
final String[] results = PackageManagerService.this.getNamesForUids(uids);
// massage results so they can be parsed by the native binder
@@ -22960,7 +23088,7 @@ public class PackageManagerService extends IPackageManager.Stub
}
private String[] getKnownPackageNamesInternal(int knownPackage, int userId) {
- switch(knownPackage) {
+ switch (knownPackage) {
case PackageManagerInternal.PACKAGE_BROWSER:
return new String[]{mPermissionManager.getDefaultBrowser(userId)};
case PackageManagerInternal.PACKAGE_INSTALLER:
@@ -22972,7 +23100,8 @@ public class PackageManagerService extends IPackageManager.Stub
case PackageManagerInternal.PACKAGE_VERIFIER:
return filterOnlySystemPackages(mRequiredVerifierPackage);
case PackageManagerInternal.PACKAGE_SYSTEM_TEXT_CLASSIFIER:
- return filterOnlySystemPackages(mSystemTextClassifierPackage);
+ return filterOnlySystemPackages(
+ mDefaultTextClassifierPackage, mSystemTextClassifierPackageName);
case PackageManagerInternal.PACKAGE_PERMISSION_CONTROLLER:
return filterOnlySystemPackages(mRequiredPermissionControllerPackage);
case PackageManagerInternal.PACKAGE_WELLBEING:
@@ -22989,6 +23118,10 @@ public class PackageManagerService extends IPackageManager.Stub
return filterOnlySystemPackages(mTelephonyPackages);
case PackageManagerInternal.PACKAGE_COMPANION:
return filterOnlySystemPackages("com.android.companiondevicemanager");
+ case PackageManagerInternal.PACKAGE_RETAIL_DEMO:
+ return TextUtils.isEmpty(mRetailDemoPackage)
+ ? ArrayUtils.emptyArray(String.class)
+ : new String[] {mRetailDemoPackage};
default:
return ArrayUtils.emptyArray(String.class);
}
@@ -23834,9 +23967,8 @@ public class PackageManagerService extends IPackageManager.Stub
@Override
public int getRuntimePermissionsVersion(@UserIdInt int userId) {
Preconditions.checkArgumentNonnegative(userId);
- mContext.enforceCallingOrSelfPermission(
- Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY,
- "setRuntimePermissionVersion");
+ enforceAdjustRuntimePermissionsPolicyOrUpgradeRuntimePermissions(
+ "getRuntimePermissionVersion");
synchronized (mLock) {
return mSettings.getDefaultRuntimePermissionsVersionLPr(userId);
}
@@ -23846,14 +23978,27 @@ public class PackageManagerService extends IPackageManager.Stub
public void setRuntimePermissionsVersion(int version, @UserIdInt int userId) {
Preconditions.checkArgumentNonnegative(version);
Preconditions.checkArgumentNonnegative(userId);
- mContext.enforceCallingOrSelfPermission(
- Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY,
+ enforceAdjustRuntimePermissionsPolicyOrUpgradeRuntimePermissions(
"setRuntimePermissionVersion");
synchronized (mLock) {
mSettings.setDefaultRuntimePermissionsVersionLPr(version, userId);
}
}
+ private void enforceAdjustRuntimePermissionsPolicyOrUpgradeRuntimePermissions(
+ @NonNull String message) {
+ if (mContext.checkCallingOrSelfPermission(
+ Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY)
+ != PackageManager.PERMISSION_GRANTED
+ && mContext.checkCallingOrSelfPermission(
+ Manifest.permission.UPGRADE_RUNTIME_PERMISSIONS)
+ != PackageManager.PERMISSION_GRANTED) {
+ throw new SecurityException(message + " requires "
+ + Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY + " or "
+ + Manifest.permission.UPGRADE_RUNTIME_PERMISSIONS);
+ }
+ }
+
@Nullable
public PackageSetting getPackageSetting(String packageName) {
synchronized (mLock) {
diff --git a/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java b/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java
index ded9a9c58c5e..71a5545c4131 100644
--- a/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java
+++ b/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java
@@ -83,6 +83,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
+import java.nio.file.Path;
import java.security.cert.CertificateEncodingException;
import java.security.cert.CertificateException;
import java.text.SimpleDateFormat;
@@ -918,4 +919,21 @@ public class PackageManagerServiceUtils {
}
return packageSetting.getPermissionsState();
}
+
+ /**
+ * Recursively create target directory
+ */
+ public static void makeDirRecursive(File targetDir, int mode) throws ErrnoException {
+ final Path targetDirPath = targetDir.toPath();
+ final int directoriesCount = targetDirPath.getNameCount();
+ File currentDir;
+ for (int i = 1; i <= directoriesCount; i++) {
+ currentDir = targetDirPath.subpath(0, i).toFile();
+ if (currentDir.exists()) {
+ continue;
+ }
+ Os.mkdir(currentDir.getAbsolutePath(), mode);
+ Os.chmod(currentDir.getAbsolutePath(), mode);
+ }
+ }
}
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index e7f6b8982b04..bb69680fb9f9 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
@@ -2730,6 +2730,9 @@ class PackageManagerShellCommand extends ShellCommand {
case "--staged":
sessionParams.setStaged();
break;
+ case "--force-queryable":
+ sessionParams.setForceQueryable();
+ break;
case "--enable-rollback":
if (params.installerPackageName == null) {
// com.android.shell has the TEST_MANAGE_ROLLBACKS
diff --git a/services/core/java/com/android/server/pm/PackageSettingBase.java b/services/core/java/com/android/server/pm/PackageSettingBase.java
index f1ac0afa5dfd..7d95b198d8ce 100644
--- a/services/core/java/com/android/server/pm/PackageSettingBase.java
+++ b/services/core/java/com/android/server/pm/PackageSettingBase.java
@@ -36,7 +36,6 @@ import android.util.SparseArray;
import android.util.proto.ProtoOutputStream;
import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.util.Preconditions;
import java.io.File;
import java.util.Arrays;
@@ -132,6 +131,8 @@ public abstract class PackageSettingBase extends SettingBase {
IntentFilterVerificationInfo verificationInfo;
+ boolean forceQueryableOverride;
+
PackageSettingBase(String name, String realName, File codePath, File resourcePath,
String legacyNativeLibraryPathString, String primaryCpuAbiString,
String secondaryCpuAbiString, String cpuAbiOverrideString,
@@ -261,6 +262,7 @@ public abstract class PackageSettingBase extends SettingBase {
? Arrays.copyOf(orig.usesStaticLibrariesVersions,
orig.usesStaticLibrariesVersions.length) : null;
updateAvailable = orig.updateAvailable;
+ forceQueryableOverride = orig.forceQueryableOverride;
}
@VisibleForTesting
@@ -693,6 +695,7 @@ public abstract class PackageSettingBase extends SettingBase {
this.categoryHint = other.categoryHint;
this.updateAvailable = other.updateAvailable;
this.verificationInfo = other.verificationInfo;
+ this.forceQueryableOverride = other.forceQueryableOverride;
if (mOldCodePaths != null) {
if (other.mOldCodePaths != null) {
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 5d948b24256a..fbea59570ac0 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -2836,6 +2836,9 @@ public final class Settings {
if (pkg.updateAvailable) {
serializer.attribute(null, "updateAvailable", "true");
}
+ if (pkg.forceQueryableOverride) {
+ serializer.attribute(null, "forceQueryable", "true");
+ }
writeUsesStaticLibLPw(serializer, pkg.usesStaticLibraries, pkg.usesStaticLibrariesVersions);
@@ -3599,6 +3602,7 @@ public final class Settings {
PackageSetting packageSetting = null;
String version = null;
long versionCode = 0;
+ String installedForceQueryable = null;
try {
name = parser.getAttributeValue(null, ATTR_NAME);
realName = parser.getAttributeValue(null, "realName");
@@ -3615,6 +3619,7 @@ public final class Settings {
secondaryCpuAbiString = parser.getAttributeValue(null, "secondaryCpuAbi");
cpuAbiOverrideString = parser.getAttributeValue(null, "cpuAbiOverride");
updateAvailable = parser.getAttributeValue(null, "updateAvailable");
+ installedForceQueryable = parser.getAttributeValue(null, "forceQueryable");
if (primaryCpuAbiString == null && legacyCpuAbiString != null) {
primaryCpuAbiString = legacyCpuAbiString;
@@ -3798,6 +3803,7 @@ public final class Settings {
packageSetting.primaryCpuAbiString = primaryCpuAbiString;
packageSetting.secondaryCpuAbiString = secondaryCpuAbiString;
packageSetting.updateAvailable = "true".equals(updateAvailable);
+ packageSetting.forceQueryableOverride = "true".equals(installedForceQueryable);
// Handle legacy string here for single-user mode
final String enabledStr = parser.getAttributeValue(null, ATTR_ENABLED);
if (enabledStr != null) {
@@ -4564,7 +4570,7 @@ public final class Settings {
pw.print("anyDensity");
}
pw.println("]");
- List<String> libraryNames = pkg.getLibraryNames();
+ final List<String> libraryNames = pkg.getLibraryNames();
if (libraryNames != null && libraryNames.size() > 0) {
pw.print(prefix); pw.println(" dynamic libraries:");
for (int i = 0; i< libraryNames.size(); i++) {
@@ -4579,7 +4585,7 @@ public final class Settings {
pw.print(" version:"); pw.println(pkg.getStaticSharedLibVersion());
}
- List<String> usesLibraries = pkg.getUsesLibraries();
+ final List<String> usesLibraries = pkg.getUsesLibraries();
if (usesLibraries != null && usesLibraries.size() > 0) {
pw.print(prefix); pw.println(" usesLibraries:");
for (int i=0; i< usesLibraries.size(); i++) {
@@ -4587,8 +4593,8 @@ public final class Settings {
}
}
- List<String> usesStaticLibraries = pkg.getUsesStaticLibraries();
- long[] usesStaticLibrariesVersions = pkg.getUsesStaticLibrariesVersions();
+ final List<String> usesStaticLibraries = pkg.getUsesStaticLibraries();
+ final long[] usesStaticLibrariesVersions = pkg.getUsesStaticLibrariesVersions();
if (usesStaticLibraries != null
&& usesStaticLibraries.size() > 0) {
pw.print(prefix); pw.println(" usesStaticLibraries:");
@@ -4599,7 +4605,7 @@ public final class Settings {
}
}
- List<String> usesOptionalLibraries = pkg.getUsesOptionalLibraries();
+ final List<String> usesOptionalLibraries = pkg.getUsesOptionalLibraries();
if (usesOptionalLibraries != null
&& usesOptionalLibraries.size() > 0) {
pw.print(prefix); pw.println(" usesOptionalLibraries:");
@@ -4609,7 +4615,7 @@ public final class Settings {
}
}
- String[] usesLibraryFiles = pkg.getUsesLibraryFiles();
+ final String[] usesLibraryFiles = pkg.getUsesLibraryFiles();
if (usesLibraryFiles != null
&& usesLibraryFiles.length > 0) {
pw.print(prefix); pw.println(" usesLibraryFiles:");
@@ -4617,6 +4623,20 @@ public final class Settings {
pw.print(prefix); pw.print(" "); pw.println(usesLibraryFiles[i]);
}
}
+ final ArrayMap<String, ComponentParseUtils.ParsedProcess> procs = pkg.getProcesses();
+ if (procs != null) {
+ pw.print(prefix); pw.println(" processes:");
+ for (int i = 0; i < procs.size(); i++) {
+ final ComponentParseUtils.ParsedProcess proc = procs.valueAt(i);
+ pw.print(prefix); pw.print(" "); pw.println(proc.name);
+ if (proc.deniedPermissions != null) {
+ for (int j = 0; j < proc.deniedPermissions.size(); j++) {
+ pw.print(prefix); pw.print(" deny: ");
+ pw.println(proc.deniedPermissions.valueAt(j));
+ }
+ }
+ }
+ }
}
pw.print(prefix); pw.print(" timeStamp=");
date.setTime(ps.timeStamp);
diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java
index f368666a06ba..d16c0748ef0e 100644
--- a/services/core/java/com/android/server/pm/ShortcutService.java
+++ b/services/core/java/com/android/server/pm/ShortcutService.java
@@ -33,6 +33,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentSender;
import android.content.IntentSender.SendIntentException;
+import android.content.LocusId;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.IPackageManager;
@@ -1977,10 +1978,14 @@ public class ShortcutService extends IShortcutService.Stub {
* After validating the caller, it passes the request to {@link #mShortcutRequestPinProcessor}.
* Either {@param shortcut} or {@param appWidget} should be non-null.
*/
- private boolean requestPinItem(String packageName, int userId, ShortcutInfo shortcut,
+ private boolean requestPinItem(String callingPackage, int userId, ShortcutInfo shortcut,
AppWidgetProviderInfo appWidget, Bundle extras, IntentSender resultIntent) {
- verifyCaller(packageName, userId);
- verifyShortcutInfoPackage(packageName, shortcut);
+ verifyCaller(callingPackage, userId);
+ if (shortcut == null || !injectHasAccessShortcutsPermission(
+ injectBinderCallingPid(), injectBinderCallingUid())) {
+ // Verify if caller is the shortcut owner, only if caller doesn't have ACCESS_SHORTCUTS.
+ verifyShortcutInfoPackage(callingPackage, shortcut);
+ }
final boolean ret;
synchronized (mLock) {
@@ -1994,14 +1999,15 @@ public class ShortcutService extends IShortcutService.Stub {
// someone already), then we just replace the existing one with this new one,
// and then proceed the rest of the process.
if (shortcut != null) {
+ final String shortcutPackage = shortcut.getPackage();
final ShortcutPackage ps = getPackageShortcutsForPublisherLocked(
- packageName, userId);
+ shortcutPackage, userId);
final String id = shortcut.getId();
if (ps.isShortcutExistsAndInvisibleToPublisher(id)) {
ps.updateInvisibleShortcutForPinRequestWith(shortcut);
- packageShortcutsChanged(packageName, userId);
+ packageShortcutsChanged(shortcutPackage, userId);
}
}
@@ -2150,48 +2156,6 @@ public class ShortcutService extends IShortcutService.Stub {
}
@Override
- public ParceledListSlice<ShortcutInfo> getDynamicShortcuts(String packageName,
- @UserIdInt int userId) {
- verifyCaller(packageName, userId);
-
- synchronized (mLock) {
- throwIfUserLockedL(userId);
-
- return getShortcutsWithQueryLocked(
- packageName, userId, ShortcutInfo.CLONE_REMOVE_FOR_CREATOR,
- ShortcutInfo::isDynamicVisible);
- }
- }
-
- @Override
- public ParceledListSlice<ShortcutInfo> getManifestShortcuts(String packageName,
- @UserIdInt int userId) {
- verifyCaller(packageName, userId);
-
- synchronized (mLock) {
- throwIfUserLockedL(userId);
-
- return getShortcutsWithQueryLocked(
- packageName, userId, ShortcutInfo.CLONE_REMOVE_FOR_CREATOR,
- ShortcutInfo::isManifestVisible);
- }
- }
-
- @Override
- public ParceledListSlice<ShortcutInfo> getPinnedShortcuts(String packageName,
- @UserIdInt int userId) {
- verifyCaller(packageName, userId);
-
- synchronized (mLock) {
- throwIfUserLockedL(userId);
-
- return getShortcutsWithQueryLocked(
- packageName, userId, ShortcutInfo.CLONE_REMOVE_FOR_CREATOR,
- ShortcutInfo::isPinnedVisible);
- }
- }
-
- @Override
public ParceledListSlice<ShortcutInfo> getShortcuts(String packageName,
@ShortcutManager.ShortcutMatchFlags int matchFlags, @UserIdInt int userId) {
verifyCaller(packageName, userId);
@@ -2626,7 +2590,7 @@ public class ShortcutService extends IShortcutService.Stub {
public List<ShortcutInfo> getShortcuts(int launcherUserId,
@NonNull String callingPackage, long changedSince,
@Nullable String packageName, @Nullable List<String> shortcutIds,
- @Nullable ComponentName componentName,
+ @Nullable List<LocusId> locusIds, @Nullable ComponentName componentName,
int queryFlags, int userId, int callingPid, int callingUid) {
final ArrayList<ShortcutInfo> ret = new ArrayList<>();
@@ -2647,15 +2611,16 @@ public class ShortcutService extends IShortcutService.Stub {
if (packageName != null) {
getShortcutsInnerLocked(launcherUserId,
- callingPackage, packageName, shortcutIds, changedSince,
+ callingPackage, packageName, shortcutIds, locusIds, changedSince,
componentName, queryFlags, userId, ret, cloneFlag,
callingPid, callingUid);
} else {
final List<String> shortcutIdsF = shortcutIds;
+ final List<LocusId> locusIdsF = locusIds;
getUserShortcutsLocked(userId).forAllPackages(p -> {
getShortcutsInnerLocked(launcherUserId,
- callingPackage, p.getPackageName(), shortcutIdsF, changedSince,
- componentName, queryFlags, userId, ret, cloneFlag,
+ callingPackage, p.getPackageName(), shortcutIdsF, locusIdsF,
+ changedSince, componentName, queryFlags, userId, ret, cloneFlag,
callingPid, callingUid);
});
}
@@ -2665,12 +2630,15 @@ public class ShortcutService extends IShortcutService.Stub {
@GuardedBy("ShortcutService.this.mLock")
private void getShortcutsInnerLocked(int launcherUserId, @NonNull String callingPackage,
- @Nullable String packageName, @Nullable List<String> shortcutIds, long changedSince,
+ @Nullable String packageName, @Nullable List<String> shortcutIds,
+ @Nullable List<LocusId> locusIds, long changedSince,
@Nullable ComponentName componentName, int queryFlags,
int userId, ArrayList<ShortcutInfo> ret, int cloneFlag,
int callingPid, int callingUid) {
final ArraySet<String> ids = shortcutIds == null ? null
: new ArraySet<>(shortcutIds);
+ final ArraySet<LocusId> locIds = locusIds == null ? null
+ : new ArraySet<>(locusIds);
final ShortcutUser user = getUserShortcutsLocked(userId);
final ShortcutPackage p = user.getPackageShortcutsIfExists(packageName);
@@ -2697,6 +2665,9 @@ public class ShortcutService extends IShortcutService.Stub {
if (ids != null && !ids.contains(si.getId())) {
return false;
}
+ if (locIds != null && !locIds.contains(si.getLocusId())) {
+ return false;
+ }
if (componentName != null) {
if (si.getActivity() != null
&& !si.getActivity().equals(componentName)) {
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index 5511a54de2cd..0cb8f49540be 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -932,6 +932,7 @@ public class UserManagerService extends IUserManager.Stub {
userId, true /* enableQuietMode */, target, callingPackage);
return true;
}
+ mLockPatternUtils.tryUnlockWithCachedUnifiedChallenge(userId);
boolean needToShowConfirmCredential =
mLockPatternUtils.isSecure(userId)
&& !StorageManager.isUserKeyUnlocked(userId);
@@ -942,8 +943,7 @@ public class UserManagerService extends IUserManager.Stub {
showConfirmCredentialToDisableQuietMode(userId, target);
return false;
}
- setQuietModeEnabled(
- userId, false /* enableQuietMode */, target, callingPackage);
+ setQuietModeEnabled(userId, false /* enableQuietMode */, target, callingPackage);
return true;
} finally {
Binder.restoreCallingIdentity(identity);
diff --git a/services/core/java/com/android/server/pm/permission/BasePermission.java b/services/core/java/com/android/server/pm/permission/BasePermission.java
index 565a85fd1ac1..e323c9869afb 100644
--- a/services/core/java/com/android/server/pm/permission/BasePermission.java
+++ b/services/core/java/com/android/server/pm/permission/BasePermission.java
@@ -284,6 +284,10 @@ public final class BasePermission {
return (protectionLevel & PermissionInfo.PROTECTION_FLAG_COMPANION) != 0;
}
+ public boolean isRetailDemo() {
+ return (protectionLevel & PermissionInfo.PROTECTION_FLAG_RETAIL_DEMO) != 0;
+ }
+
public void transfer(@NonNull String origPackageName, @NonNull String newPackageName) {
if (!origPackageName.equals(sourcePackageName)) {
return;
diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
index 46893b25de9a..e6eaf211a86a 100644
--- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
+++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
@@ -720,12 +720,9 @@ public final class DefaultPermissionGrantPolicy {
userId, STORAGE_PERMISSIONS);
// TextClassifier Service
- final String[] packages = mContext.getPackageManager().getSystemTextClassifierPackages();
- if (packages.length > 0) {
- // We have a list of supported system TextClassifier package names, the first one
- // package is the default system TextClassifier service. Grant permissions to default
- // TextClassifier Service.
- grantPermissionsToSystemPackage(packages[0], userId,
+ for (String textClassifierPackage :
+ getKnownPackages(PackageManagerInternal.PACKAGE_SYSTEM_TEXT_CLASSIFIER, userId)) {
+ grantPermissionsToSystemPackage(textClassifierPackage, userId,
COARSE_BACKGROUND_LOCATION_PERMISSIONS, CONTACTS_PERMISSIONS);
}
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
index 6167a509b85f..1fc2dd5193e1 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
@@ -55,6 +55,8 @@ import android.annotation.UserIdInt;
import android.app.ActivityManager;
import android.app.ApplicationPackageManager;
import android.app.IActivityManager;
+import android.app.admin.DeviceAdminInfo;
+import android.app.admin.DevicePolicyManagerInternal;
import android.compat.annotation.ChangeId;
import android.compat.annotation.EnabledAfter;
import android.content.Context;
@@ -3355,10 +3357,27 @@ public class PermissionManagerService extends IPermissionManager.Stub {
// Special permissions for the system companion device manager.
allowed = true;
}
+ if (!allowed && bp.isRetailDemo()
+ && ArrayUtils.contains(mPackageManagerInt.getKnownPackageNames(
+ PackageManagerInternal.PACKAGE_RETAIL_DEMO, UserHandle.USER_SYSTEM),
+ pkg.getPackageName()) && isProfileOwner(pkg.getUid())) {
+ // Special permission granted only to the OEM specified retail demo app
+ allowed = true;
+ }
}
return allowed;
}
+ private static boolean isProfileOwner(int uid) {
+ DevicePolicyManagerInternal dpmInternal =
+ LocalServices.getService(DevicePolicyManagerInternal.class);
+ if (dpmInternal != null) {
+ return dpmInternal
+ .isActiveAdminWithPolicy(uid, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
+ }
+ return false;
+ }
+
private static boolean canGrantOemPermission(PackageSetting ps, String permission) {
if (!ps.isOem()) {
return false;
diff --git a/services/core/java/com/android/server/policy/LegacyGlobalActions.java b/services/core/java/com/android/server/policy/LegacyGlobalActions.java
index 6daf5162ebad..6eba59acbc94 100644
--- a/services/core/java/com/android/server/policy/LegacyGlobalActions.java
+++ b/services/core/java/com/android/server/policy/LegacyGlobalActions.java
@@ -402,7 +402,7 @@ class LegacyGlobalActions implements DialogInterface.OnDismissListener, DialogIn
public String getStatus() {
return mContext.getString(
com.android.internal.R.string.bugreport_status,
- Build.VERSION.RELEASE,
+ Build.VERSION.RELEASE_OR_CODENAME,
Build.ID);
}
}
diff --git a/services/core/java/com/android/server/policy/PermissionPolicyService.java b/services/core/java/com/android/server/policy/PermissionPolicyService.java
index a86c8d7545b1..2c7795a6274b 100644
--- a/services/core/java/com/android/server/policy/PermissionPolicyService.java
+++ b/services/core/java/com/android/server/policy/PermissionPolicyService.java
@@ -29,6 +29,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.app.AppOpsManager;
+import android.app.AppOpsManagerInternal;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
@@ -84,6 +85,8 @@ public final class PermissionPolicyService extends SystemService {
private final Object mLock = new Object();
+ private IAppOpsCallback mAppOpsCallback;
+
/** Whether the user is started but not yet stopped */
@GuardedBy("mLock")
private final SparseBooleanArray mIsStarted = new SparseBooleanArray();
@@ -138,7 +141,7 @@ public final class PermissionPolicyService extends SystemService {
permManagerInternal.addOnRuntimePermissionStateChangedListener(
this::synchronizePackagePermissionsAndAppOpsAsyncForUser);
- IAppOpsCallback appOpsListener = new IAppOpsCallback.Stub() {
+ mAppOpsCallback = new IAppOpsCallback.Stub() {
public void opChanged(int op, int uid, String packageName) {
synchronizePackagePermissionsAndAppOpsAsyncForUser(packageName,
UserHandle.getUserId(uid));
@@ -155,7 +158,7 @@ public final class PermissionPolicyService extends SystemService {
PermissionInfo perm = dangerousPerms.get(i);
if (perm.isRuntime()) {
- appOpsService.startWatchingMode(getSwitchOp(perm.name), null, appOpsListener);
+ appOpsService.startWatchingMode(getSwitchOp(perm.name), null, mAppOpsCallback);
}
if (perm.isSoftRestricted()) {
SoftRestrictedPermissionPolicy policy =
@@ -163,7 +166,7 @@ public final class PermissionPolicyService extends SystemService {
perm.name);
int extraAppOp = policy.getExtraAppOpCode();
if (extraAppOp != OP_NONE) {
- appOpsService.startWatchingMode(extraAppOp, null, appOpsListener);
+ appOpsService.startWatchingMode(extraAppOp, null, mAppOpsCallback);
}
}
}
@@ -386,10 +389,11 @@ public final class PermissionPolicyService extends SystemService {
* Synchronizes permission to app ops. You *must* always sync all packages
* in a shared UID at the same time to ensure proper synchronization.
*/
- private static class PermissionToOpSynchroniser {
+ private class PermissionToOpSynchroniser {
private final @NonNull Context mContext;
private final @NonNull PackageManager mPackageManager;
private final @NonNull AppOpsManager mAppOpsManager;
+ private final @NonNull AppOpsManagerInternal mAppOpsManagerInternal;
private final @NonNull ArrayMap<String, PermissionInfo> mRuntimePermissionInfos;
@@ -429,6 +433,7 @@ public final class PermissionPolicyService extends SystemService {
mContext = context;
mPackageManager = context.getPackageManager();
mAppOpsManager = context.getSystemService(AppOpsManager.class);
+ mAppOpsManagerInternal = LocalServices.getService(AppOpsManagerInternal.class);
mRuntimePermissionInfos = new ArrayMap<>();
PermissionManagerServiceInternal permissionManagerInternal = LocalServices.getService(
@@ -668,7 +673,8 @@ public final class PermissionPolicyService extends SystemService {
opCode), uid, packageName);
if (currentMode != MODE_ALLOWED) {
if (currentMode != MODE_IGNORED) {
- mAppOpsManager.setUidMode(opCode, uid, MODE_IGNORED);
+ mAppOpsManagerInternal.setUidModeIgnoringCallback(opCode, uid, MODE_IGNORED,
+ mAppOpsCallback);
}
return true;
}
@@ -680,15 +686,16 @@ public final class PermissionPolicyService extends SystemService {
final int oldMode = mAppOpsManager.unsafeCheckOpRaw(AppOpsManager.opToPublicName(
opCode), uid, packageName);
if (oldMode != mode) {
- mAppOpsManager.setUidMode(opCode, uid, mode);
+ mAppOpsManagerInternal.setUidModeIgnoringCallback(opCode, uid, mode,
+ mAppOpsCallback);
final int newMode = mAppOpsManager.unsafeCheckOpRaw(AppOpsManager.opToPublicName(
opCode), uid, packageName);
if (newMode != mode) {
// Work around incorrectly-set package mode. It never makes sense for app ops
// related to runtime permissions, but can get in the way and we have to reset
// it.
- mAppOpsManager.setMode(opCode, uid, packageName, AppOpsManager.opToDefaultMode(
- opCode));
+ mAppOpsManagerInternal.setModeIgnoringCallback(opCode, uid, packageName,
+ AppOpsManager.opToDefaultMode(opCode), mAppOpsCallback);
}
}
}
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 7c76656e1e6f..ede04f3bbb14 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -54,6 +54,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_DREAM;
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG;
import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR;
+import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL;
import static android.view.WindowManager.LayoutParams.TYPE_NOTIFICATION_SHADE;
import static android.view.WindowManager.LayoutParams.TYPE_PRESENTATION;
import static android.view.WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION;
@@ -480,6 +481,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
int mVeryLongPressTimeout;
boolean mAllowStartActivityForLongPressOnPowerDuringSetup;
MetricsLogger mLogger;
+ boolean mWakeOnDpadKeyPress;
+ boolean mWakeOnAssistKeyPress;
private boolean mHandleVolumeKeysInWM;
@@ -1728,6 +1731,13 @@ public class PhoneWindowManager implements WindowManagerPolicy {
mAccessibilityShortcutController =
new AccessibilityShortcutController(mContext, new Handler(), mCurrentUserId);
mLogger = new MetricsLogger();
+
+ Resources res = mContext.getResources();
+ mWakeOnDpadKeyPress =
+ res.getBoolean(com.android.internal.R.bool.config_wakeOnDpadKeyPress);
+ mWakeOnAssistKeyPress =
+ res.getBoolean(com.android.internal.R.bool.config_wakeOnAssistKeyPress);
+
// Init display burn-in protection
boolean burnInProtectionEnabled = context.getResources().getBoolean(
com.android.internal.R.bool.config_enableBurnInProtection);
@@ -2088,11 +2098,13 @@ public class PhoneWindowManager implements WindowManagerPolicy {
case TYPE_VOICE_INTERACTION:
case TYPE_ACCESSIBILITY_OVERLAY:
case TYPE_QS_DIALOG:
+ case TYPE_NAVIGATION_BAR_PANEL:
// The window manager will check these.
return ADD_OKAY;
}
- return mContext.checkCallingOrSelfPermission(INTERNAL_SYSTEM_WINDOW)
- == PERMISSION_GRANTED ? ADD_OKAY : ADD_PERMISSION_DENIED;
+
+ return (mContext.checkCallingOrSelfPermission(INTERNAL_SYSTEM_WINDOW)
+ == PERMISSION_GRANTED) ? ADD_OKAY : ADD_PERMISSION_DENIED;
}
// Things get a little more interesting for alert windows...
@@ -4069,13 +4081,11 @@ public class PhoneWindowManager implements WindowManagerPolicy {
*/
private boolean isWakeKeyWhenScreenOff(int keyCode) {
switch (keyCode) {
- // ignore volume keys unless docked
case KeyEvent.KEYCODE_VOLUME_UP:
case KeyEvent.KEYCODE_VOLUME_DOWN:
case KeyEvent.KEYCODE_VOLUME_MUTE:
return mDefaultDisplayPolicy.getDockMode() != Intent.EXTRA_DOCK_STATE_UNDOCKED;
- // ignore media keys
case KeyEvent.KEYCODE_MUTE:
case KeyEvent.KEYCODE_HEADSETHOOK:
case KeyEvent.KEYCODE_MEDIA_PLAY:
@@ -4089,7 +4099,18 @@ public class PhoneWindowManager implements WindowManagerPolicy {
case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK:
return false;
+
+ case KeyEvent.KEYCODE_DPAD_UP:
+ case KeyEvent.KEYCODE_DPAD_DOWN:
+ case KeyEvent.KEYCODE_DPAD_LEFT:
+ case KeyEvent.KEYCODE_DPAD_RIGHT:
+ case KeyEvent.KEYCODE_DPAD_CENTER:
+ return mWakeOnDpadKeyPress;
+
+ case KeyEvent.KEYCODE_ASSIST:
+ return mWakeOnAssistKeyPress;
}
+
return true;
}
diff --git a/services/core/java/com/android/server/power/AttentionDetector.java b/services/core/java/com/android/server/power/AttentionDetector.java
index eec0d5f35c5c..cc72dd69a5fa 100644
--- a/services/core/java/com/android/server/power/AttentionDetector.java
+++ b/services/core/java/com/android/server/power/AttentionDetector.java
@@ -38,9 +38,9 @@ import android.provider.DeviceConfig;
import android.provider.Settings;
import android.service.attention.AttentionService;
import android.util.Slog;
-import android.util.StatsLog;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.LocalServices;
import com.android.server.wm.WindowManagerInternal;
@@ -285,7 +285,8 @@ public class AttentionDetector {
private void resetConsecutiveExtensionCount() {
final long previousCount = mConsecutiveTimeoutExtendedCount.getAndSet(0);
if (previousCount > 0) {
- StatsLog.write(StatsLog.SCREEN_TIMEOUT_EXTENSION_REPORTED, previousCount);
+ FrameworkStatsLog.write(FrameworkStatsLog.SCREEN_TIMEOUT_EXTENSION_REPORTED,
+ previousCount);
}
}
diff --git a/services/core/java/com/android/server/power/Notifier.java b/services/core/java/com/android/server/power/Notifier.java
index b45522d11a5d..0b95be15f157 100644
--- a/services/core/java/com/android/server/power/Notifier.java
+++ b/services/core/java/com/android/server/power/Notifier.java
@@ -49,13 +49,13 @@ import android.provider.Settings;
import android.telephony.TelephonyManager;
import android.util.EventLog;
import android.util.Slog;
-import android.util.StatsLog;
import android.view.WindowManagerPolicyConstants.OnReason;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.IBatteryStats;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.EventLogTags;
import com.android.server.LocalServices;
import com.android.server.inputmethod.InputMethodManagerInternal;
@@ -199,8 +199,8 @@ public class Notifier {
try {
mBatteryStats.noteInteractive(true);
} catch (RemoteException ex) { }
- StatsLog.write(StatsLog.INTERACTIVE_STATE_CHANGED,
- StatsLog.INTERACTIVE_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write(FrameworkStatsLog.INTERACTIVE_STATE_CHANGED,
+ FrameworkStatsLog.INTERACTIVE_STATE_CHANGED__STATE__ON);
}
/**
@@ -247,13 +247,15 @@ public class Notifier {
try {
if (workSource != null) {
mBatteryStats.noteLongPartialWakelockStartFromSource(tag, historyTag, workSource);
- StatsLog.write(StatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED, workSource,
- tag, historyTag, StatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write(FrameworkStatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED,
+ workSource, tag, historyTag,
+ FrameworkStatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED__STATE__ON);
} else {
mBatteryStats.noteLongPartialWakelockStart(tag, historyTag, ownerUid);
- StatsLog.write_non_chained(StatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED,
- ownerUid, null, tag, historyTag,
- StatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.write_non_chained(
+ FrameworkStatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED, ownerUid, null, tag,
+ historyTag,
+ FrameworkStatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED__STATE__ON);
}
} catch (RemoteException ex) {
// Ignore
@@ -270,13 +272,15 @@ public class Notifier {
try {
if (workSource != null) {
mBatteryStats.noteLongPartialWakelockFinishFromSource(tag, historyTag, workSource);
- StatsLog.write(StatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED, workSource,
- tag, historyTag, StatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write(FrameworkStatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED,
+ workSource, tag, historyTag,
+ FrameworkStatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED__STATE__OFF);
} else {
mBatteryStats.noteLongPartialWakelockFinish(tag, historyTag, ownerUid);
- StatsLog.write_non_chained(StatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED,
- ownerUid, null, tag, historyTag,
- StatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write_non_chained(
+ FrameworkStatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED, ownerUid, null, tag,
+ historyTag,
+ FrameworkStatsLog.LONG_PARTIAL_WAKELOCK_STATE_CHANGED__STATE__OFF);
}
} catch (RemoteException ex) {
// Ignore
@@ -415,9 +419,9 @@ public class Notifier {
try {
mBatteryStats.noteInteractive(interactive);
} catch (RemoteException ex) { }
- StatsLog.write(StatsLog.INTERACTIVE_STATE_CHANGED,
- interactive ? StatsLog.INTERACTIVE_STATE_CHANGED__STATE__ON :
- StatsLog.INTERACTIVE_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.write(FrameworkStatsLog.INTERACTIVE_STATE_CHANGED,
+ interactive ? FrameworkStatsLog.INTERACTIVE_STATE_CHANGED__STATE__ON :
+ FrameworkStatsLog.INTERACTIVE_STATE_CHANGED__STATE__OFF);
// Handle early behaviors.
mInteractive = interactive;
diff --git a/services/core/java/com/android/server/rollback/Rollback.java b/services/core/java/com/android/server/rollback/Rollback.java
index cb583cd42412..4d7af9cc0d44 100644
--- a/services/core/java/com/android/server/rollback/Rollback.java
+++ b/services/core/java/com/android/server/rollback/Rollback.java
@@ -44,6 +44,7 @@ import android.util.SparseLongArray;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.IndentingPrintWriter;
+import com.android.server.pm.ApexManager;
import java.io.File;
import java.io.IOException;
@@ -92,19 +93,6 @@ class Rollback {
*/
static final int ROLLBACK_STATE_DELETED = 4;
- @IntDef(flag = true, prefix = { "MATCH_" }, value = {
- MATCH_APK_IN_APEX,
- })
- @Retention(RetentionPolicy.SOURCE)
- @interface RollbackInfoFlags {}
-
- /**
- * {@link RollbackInfo} flag: include {@code RollbackInfo} packages that are apk-in-apex.
- * These packages do not have their own sessions. They are embedded in an apex which has a
- * session id.
- */
- static final int MATCH_APK_IN_APEX = 1;
-
/**
* The session ID for the staged session if this rollback data represents a staged session,
* {@code -1} otherwise.
@@ -186,6 +174,14 @@ class Rollback {
private final int[] mPackageSessionIds;
/**
+ * The number of sessions in the install which are notified with success by
+ * {@link PackageInstaller.SessionCallback#onFinished(int, boolean)}.
+ * This rollback will be enabled only after all child sessions finished with success.
+ */
+ @GuardedBy("mLock")
+ private int mNumPackageSessionsWithSuccess;
+
+ /**
* Constructs a new, empty Rollback instance.
*
* @param rollbackId the id of the rollback.
@@ -651,15 +647,23 @@ class Rollback {
*/
void delete(AppDataRollbackHelper dataHelper) {
synchronized (mLock) {
+ boolean containsApex = false;
for (PackageRollbackInfo pkgInfo : info.getPackages()) {
- IntArray snapshottedUsers = pkgInfo.getSnapshottedUsers();
- for (int i = 0; i < snapshottedUsers.size(); i++) {
- // Destroy app data snapshot.
- int userId = snapshottedUsers.get(i);
-
- dataHelper.destroyAppDataSnapshot(info.getRollbackId(), pkgInfo, userId);
+ if (pkgInfo.isApex()) {
+ containsApex = true;
+ } else {
+ IntArray snapshottedUsers = pkgInfo.getSnapshottedUsers();
+ for (int i = 0; i < snapshottedUsers.size(); i++) {
+ // Destroy app data snapshot.
+ int userId = snapshottedUsers.get(i);
+
+ dataHelper.destroyAppDataSnapshot(info.getRollbackId(), pkgInfo, userId);
+ }
}
}
+ if (containsApex) {
+ ApexManager.getInstance().destroyDeSnapshots(info.getRollbackId());
+ }
RollbackStore.deleteRollback(this);
mState = ROLLBACK_STATE_DELETED;
@@ -766,33 +770,6 @@ class Rollback {
}
/**
- * Returns the number of {@link PackageRollbackInfo} we are storing in this {@link Rollback}
- * instance. By default, this method does not include apk-in-apex package in the count.
- *
- * @param flags Apk-in-apex packages can be included in the count by passing
- * {@link Rollback#MATCH_APK_IN_APEX}
- *
- * @return Counts number of {@link PackageRollbackInfo} stored in the {@link Rollback}
- * according to {@code flags} passed
- */
- int getPackageCount(@RollbackInfoFlags int flags) {
- synchronized (mLock) {
- List<PackageRollbackInfo> packages = info.getPackages();
- if ((flags & MATCH_APK_IN_APEX) != 0) {
- return packages.size();
- }
-
- int packagesWithoutApkInApex = 0;
- for (PackageRollbackInfo rollbackInfo : packages) {
- if (!rollbackInfo.isApkInApex()) {
- packagesWithoutApkInApex++;
- }
- }
- return packagesWithoutApkInApex;
- }
- }
-
- /**
* Adds a rollback token to be associated with this rollback. This may be used to
* identify which rollback should be removed in case {@link PackageManager} sends an
* {@link Intent#ACTION_CANCEL_ENABLE_ROLLBACK} intent.
@@ -825,10 +802,31 @@ class Rollback {
}
/**
- * Returns the number of package session ids in this rollback.
+ * Called when a child session finished with success.
+ * Returns true when all child sessions are notified with success. This rollback will be
+ * enabled only after all child sessions finished with success.
*/
- int getPackageSessionIdCount() {
- return mPackageSessionIds.length;
+ boolean notifySessionWithSuccess() {
+ synchronized (mLock) {
+ return ++mNumPackageSessionsWithSuccess == mPackageSessionIds.length;
+ }
+ }
+
+ /**
+ * Returns true if all packages in this rollback are enabled. We won't enable this rollback
+ * until all packages are enabled. Note we don't count apk-in-apex here since they are enabled
+ * automatically when the embedding apex is enabled.
+ */
+ boolean allPackagesEnabled() {
+ synchronized (mLock) {
+ int packagesWithoutApkInApex = 0;
+ for (PackageRollbackInfo rollbackInfo : info.getPackages()) {
+ if (!rollbackInfo.isApkInApex()) {
+ packagesWithoutApkInApex++;
+ }
+ }
+ return packagesWithoutApkInApex == mPackageSessionIds.length;
+ }
}
static String rollbackStateToString(@RollbackState int state) {
diff --git a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java
index 4bab22478e6a..8bd9533727d6 100644
--- a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java
+++ b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java
@@ -52,6 +52,7 @@ import android.os.UserManager;
import android.provider.DeviceConfig;
import android.util.ArraySet;
import android.util.IntArray;
+import android.util.Log;
import android.util.LongArrayQueue;
import android.util.Slog;
import android.util.SparseBooleanArray;
@@ -94,7 +95,7 @@ import java.util.concurrent.TimeUnit;
class RollbackManagerServiceImpl extends IRollbackManager.Stub {
private static final String TAG = "RollbackManager";
- private static final boolean LOCAL_LOGV = false;
+ private static final boolean LOCAL_LOGV = Log.isLoggable(TAG, Log.VERBOSE);
// Rollbacks expire after 14 days.
private static final long DEFAULT_ROLLBACK_LIFETIME_DURATION_MILLIS =
@@ -122,7 +123,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
// Rollbacks we are in the process of enabling.
@GuardedBy("mLock")
- private final Set<NewRollback> mNewRollbacks = new ArraySet<>();
+ private final Set<Rollback> mNewRollbacks = new ArraySet<>();
// The list of all rollbacks, including available and committed rollbacks.
@GuardedBy("mLock")
@@ -239,16 +240,16 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
Slog.v(TAG, "broadcast=ACTION_CANCEL_ENABLE_ROLLBACK token=" + token);
}
synchronized (mLock) {
- NewRollback found = null;
- for (NewRollback newRollback : mNewRollbacks) {
- if (newRollback.rollback.hasToken(token)) {
+ Rollback found = null;
+ for (Rollback newRollback : mNewRollbacks) {
+ if (newRollback.hasToken(token)) {
found = newRollback;
break;
}
}
if (found != null) {
mNewRollbacks.remove(found);
- found.rollback.delete(mAppDataRollbackHelper);
+ found.delete(mAppDataRollbackHelper);
}
}
}
@@ -441,12 +442,12 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
rollback.delete(mAppDataRollbackHelper);
}
}
- Iterator<NewRollback> iter2 = mNewRollbacks.iterator();
+ Iterator<Rollback> iter2 = mNewRollbacks.iterator();
while (iter2.hasNext()) {
- NewRollback newRollback = iter2.next();
- if (newRollback.rollback.includesPackage(packageName)) {
+ Rollback newRollback = iter2.next();
+ if (newRollback.includesPackage(packageName)) {
iter2.remove();
- newRollback.rollback.delete(mAppDataRollbackHelper);
+ newRollback.delete(mAppDataRollbackHelper);
}
}
@@ -801,7 +802,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
}
}
- NewRollback newRollback;
+ Rollback newRollback;
synchronized (mLock) {
// See if we already have a NewRollback that contains this package
// session. If not, create a NewRollback for the parent session
@@ -812,9 +813,9 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
mNewRollbacks.add(newRollback);
}
}
- newRollback.rollback.addToken(token);
+ newRollback.addToken(token);
- return enableRollbackForPackageSession(newRollback.rollback, packageSession);
+ return enableRollbackForPackageSession(newRollback, packageSession);
}
@WorkerThread
@@ -824,12 +825,12 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
}
synchronized (mLock) {
- NewRollback newRollback = getNewRollbackForPackageSessionLocked(sessionId);
+ Rollback newRollback = getNewRollbackForPackageSessionLocked(sessionId);
if (newRollback != null) {
- Slog.w(TAG, "Delete new rollback id=" + newRollback.rollback.info.getRollbackId()
+ Slog.w(TAG, "Delete new rollback id=" + newRollback.info.getRollbackId()
+ " for session id=" + sessionId);
mNewRollbacks.remove(newRollback);
- newRollback.rollback.delete(mAppDataRollbackHelper);
+ newRollback.delete(mAppDataRollbackHelper);
}
Iterator<Rollback> iter = mRollbacks.iterator();
while (iter.hasNext()) {
@@ -971,9 +972,8 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
rollback.snapshotUserData(packageName, userIds, mAppDataRollbackHelper);
}
// non-staged installs
- for (NewRollback rollback : mNewRollbacks) {
- rollback.rollback.snapshotUserData(
- packageName, userIds, mAppDataRollbackHelper);
+ for (Rollback rollback : mNewRollbacks) {
+ rollback.snapshotUserData(packageName, userIds, mAppDataRollbackHelper);
}
}
}
@@ -1015,13 +1015,13 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
return;
}
- NewRollback newRollback;
+ Rollback newRollback;
synchronized (mLock) {
newRollback = createNewRollbackLocked(session);
}
if (!session.isMultiPackage()) {
- if (!enableRollbackForPackageSession(newRollback.rollback, session)) {
+ if (!enableRollbackForPackageSession(newRollback, session)) {
Slog.e(TAG, "Unable to enable rollback for session: " + sessionId);
result.offer(-1);
return;
@@ -1035,7 +1035,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
result.offer(-1);
return;
}
- if (!enableRollbackForPackageSession(newRollback.rollback, childSession)) {
+ if (!enableRollbackForPackageSession(newRollback, childSession)) {
Slog.e(TAG, "Unable to enable rollback for session: " + sessionId);
result.offer(-1);
return;
@@ -1196,7 +1196,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
}
if (success) {
- NewRollback newRollback;
+ Rollback newRollback;
synchronized (mLock) {
newRollback = getNewRollbackForPackageSessionLocked(sessionId);
if (newRollback != null && newRollback.notifySessionWithSuccess()) {
@@ -1228,8 +1228,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
* or null on error.
*/
@WorkerThread
- private Rollback completeEnableRollback(NewRollback newRollback) {
- Rollback rollback = newRollback.rollback;
+ private Rollback completeEnableRollback(Rollback rollback) {
if (LOCAL_LOGV) {
Slog.v(TAG, "completeEnableRollback id=" + rollback.info.getRollbackId());
}
@@ -1238,8 +1237,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
// equal to the number of sessions we are installing, to ensure we didn't skip enabling
// of any sessions. If we successfully enable an apex, then we can assume we enabled
// rollback for the embedded apk-in-apex, if any.
- // TODO: add a helper instead of exposing 2 methods from Rollback
- if (rollback.getPackageCount(0 /*flags*/) != rollback.getPackageSessionIdCount()) {
+ if (!rollback.allPackagesEnabled()) {
Slog.e(TAG, "Failed to enable rollback for all packages in session.");
rollback.delete(mAppDataRollbackHelper);
return null;
@@ -1340,38 +1338,9 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
}
}
- private static class NewRollback {
- public final Rollback rollback;
-
- /**
- * The number of sessions in the install which are notified with success by
- * {@link PackageInstaller.SessionCallback#onFinished(int, boolean)}.
- * This NewRollback will be enabled only after all child sessions finished with success.
- */
- @GuardedBy("mNewRollbackLock")
- private int mNumPackageSessionsWithSuccess;
-
- private final Object mNewRollbackLock = new Object();
-
- NewRollback(Rollback rollback) {
- this.rollback = rollback;
- }
-
- /**
- * Called when a child session finished with success.
- * Returns true when all child sessions are notified with success. This NewRollback will be
- * enabled only after all child sessions finished with success.
- */
- boolean notifySessionWithSuccess() {
- synchronized (mNewRollbackLock) {
- return ++mNumPackageSessionsWithSuccess == rollback.getPackageSessionIdCount();
- }
- }
- }
-
@WorkerThread
@GuardedBy("mLock")
- private NewRollback createNewRollbackLocked(PackageInstaller.SessionInfo parentSession) {
+ private Rollback createNewRollbackLocked(PackageInstaller.SessionInfo parentSession) {
int rollbackId = allocateRollbackIdLocked();
final int userId;
if (parentSession.getUser() == UserHandle.ALL) {
@@ -1403,7 +1372,7 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
installerPackageName, packageSessionIds);
}
- return new NewRollback(rollback);
+ return rollback;
}
/**
@@ -1413,11 +1382,11 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub {
*/
@WorkerThread
@GuardedBy("mLock")
- NewRollback getNewRollbackForPackageSessionLocked(int packageSessionId) {
+ Rollback getNewRollbackForPackageSessionLocked(int packageSessionId) {
// We expect mNewRollbacks to be a very small list; linear search
// should be plenty fast.
- for (NewRollback newRollback: mNewRollbacks) {
- if (newRollback.rollback.containsSessionId(packageSessionId)) {
+ for (Rollback newRollback: mNewRollbacks) {
+ if (newRollback.containsSessionId(packageSessionId)) {
return newRollback;
}
}
diff --git a/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java b/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java
index 951f1a4663f1..8d090f1b6fce 100644
--- a/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java
+++ b/services/core/java/com/android/server/rollback/RollbackPackageHealthObserver.java
@@ -16,19 +16,13 @@
package com.android.server.rollback;
-import static android.util.StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_APP_CRASH;
-import static android.util.StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_APP_NOT_RESPONDING;
-import static android.util.StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_EXPLICIT_HEALTH_CHECK;
-import static android.util.StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_NATIVE_CRASH;
-import static android.util.StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_UNKNOWN;
+import static com.android.internal.util.FrameworkStatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_UNKNOWN;
-import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInstaller;
import android.content.pm.PackageManager;
import android.content.pm.VersionedPackage;
@@ -44,9 +38,9 @@ import android.os.SystemProperties;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.Slog;
-import android.util.StatsLog;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.PackageWatchdog;
import com.android.server.PackageWatchdog.FailureReasons;
import com.android.server.PackageWatchdog.PackageHealthObserver;
@@ -75,8 +69,6 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
private static final String TAG = "RollbackPackageHealthObserver";
private static final String NAME = "rollback-observer";
- private static final String LOGGING_PARENT_KEY = "android.content.pm.LOGGING_PARENT";
-
private final Context mContext;
private final Handler mHandler;
private final File mLastStagedRollbackIdsFile;
@@ -162,67 +154,8 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
Iterator<Integer> rollbackIterator = rollbackIds.iterator();
while (rollbackIterator.hasNext()) {
int rollbackId = rollbackIterator.next();
- logRollbackStatusOnBoot(rollbackId, rollbackManager.getRecentlyCommittedRollbacks());
- }
- }
-
- private void logRollbackStatusOnBoot(int rollbackId,
- List<RollbackInfo> recentlyCommittedRollbacks) {
- PackageInstaller packageInstaller = mContext.getPackageManager().getPackageInstaller();
-
- RollbackInfo rollback = null;
- for (RollbackInfo info : recentlyCommittedRollbacks) {
- if (rollbackId == info.getRollbackId()) {
- rollback = info;
- break;
- }
- }
-
- if (rollback == null) {
- Slog.e(TAG, "rollback info not found for last staged rollback: " + rollbackId);
- return;
- }
-
- // Identify the logging parent for this rollback. When all configurations are correct, each
- // package in the rollback refers to the same logging parent, except for the logging parent
- // itself. If a logging parent is missing for a package, we use the package itself for
- // logging. This might result in over-logging, but we prefer this over no logging.
- final Set<String> loggingPackageNames = new ArraySet<>();
- for (PackageRollbackInfo packageRollback : rollback.getPackages()) {
- final String loggingParentName = getLoggingParentName(packageRollback.getPackageName());
- if (loggingParentName != null) {
- loggingPackageNames.add(loggingParentName);
- } else {
- loggingPackageNames.add(packageRollback.getPackageName());
- }
- }
-
- // Use the version of the logging parent that was installed before
- // we rolled back for logging purposes.
- final List<VersionedPackage> oldLoggingPackages = new ArrayList<>();
- for (PackageRollbackInfo packageRollback : rollback.getPackages()) {
- if (loggingPackageNames.contains(packageRollback.getPackageName())) {
- oldLoggingPackages.add(packageRollback.getVersionRolledBackFrom());
- }
- }
-
- int sessionId = rollback.getCommittedSessionId();
- PackageInstaller.SessionInfo sessionInfo = packageInstaller.getSessionInfo(sessionId);
- if (sessionInfo == null) {
- Slog.e(TAG, "On boot completed, could not load session id " + sessionId);
- return;
- }
-
- for (VersionedPackage oldLoggingPackage : oldLoggingPackages) {
- if (sessionInfo.isStagedSessionApplied()) {
- logEvent(oldLoggingPackage,
- StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_SUCCESS,
- WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_UNKNOWN, "");
- } else if (sessionInfo.isStagedSessionFailed()) {
- logEvent(oldLoggingPackage,
- StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_FAILURE,
- WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_UNKNOWN, "");
- }
+ WatchdogRollbackLogger.logRollbackStatusOnBoot(
+ mContext, rollbackId, rollbackManager.getRecentlyCommittedRollbacks());
}
}
@@ -255,22 +188,6 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
return null;
}
- @Nullable
- private String getLoggingParentName(String packageName) {
- PackageManager packageManager = mContext.getPackageManager();
- try {
- ApplicationInfo ai = packageManager.getApplicationInfo(packageName,
- PackageManager.GET_META_DATA);
- if (ai.metaData == null) {
- return null;
- }
- return ai.metaData.getString(LOGGING_PARENT_KEY);
- } catch (Exception e) {
- Slog.w(TAG, "Unable to discover logging parent package: " + packageName, e);
- return null;
- }
- }
-
private BroadcastReceiver listenForStagedSessionReady(RollbackManager rollbackManager,
int rollbackId, @Nullable VersionedPackage logPackage) {
BroadcastReceiver sessionUpdatedReceiver = new BroadcastReceiver() {
@@ -306,15 +223,16 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
// successful or not. If logPackage is null, then there is nothing to log.
saveStagedRollbackId(rollbackId);
}
- logEvent(logPackage,
- StatsLog
+ WatchdogRollbackLogger.logEvent(logPackage,
+ FrameworkStatsLog
.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_BOOT_TRIGGERED,
WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_UNKNOWN,
"");
} else if (sessionInfo.isStagedSessionFailed()
&& markStagedSessionHandled(rollbackId)) {
- logEvent(logPackage,
- StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_FAILURE,
+ WatchdogRollbackLogger.logEvent(logPackage,
+ FrameworkStatsLog
+ .WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_FAILURE,
WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_UNKNOWN,
"");
mContext.unregisterReceiver(listener);
@@ -383,47 +301,6 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
}
}
- private static String rollbackTypeToString(int type) {
- switch (type) {
- case StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_INITIATE:
- return "ROLLBACK_INITIATE";
- case StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_SUCCESS:
- return "ROLLBACK_SUCCESS";
- case StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_FAILURE:
- return "ROLLBACK_FAILURE";
- case StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_BOOT_TRIGGERED:
- return "ROLLBACK_BOOT_TRIGGERED";
- default:
- return "UNKNOWN";
- }
- }
-
- private static String rollbackReasonToString(int reason) {
- switch (reason) {
- case StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_NATIVE_CRASH:
- return "REASON_NATIVE_CRASH";
- case StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_EXPLICIT_HEALTH_CHECK:
- return "REASON_EXPLICIT_HEALTH_CHECK";
- case StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_APP_CRASH:
- return "REASON_APP_CRASH";
- case StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_APP_NOT_RESPONDING:
- return "REASON_APP_NOT_RESPONDING";
- default:
- return "UNKNOWN";
- }
- }
-
- private static void logEvent(@Nullable VersionedPackage logPackage, int type,
- int rollbackReason, @NonNull String failingPackageName) {
- Slog.i(TAG, "Watchdog event occurred with type: " + rollbackTypeToString(type)
- + " logPackage: " + logPackage
- + " rollbackReason: " + rollbackReasonToString(rollbackReason)
- + " failedPackageName: " + failingPackageName);
- if (logPackage != null) {
- StatsLog.logWatchdogRollbackOccurred(type, logPackage.getPackageName(),
- logPackage.getLongVersionCode(), rollbackReason, failingPackageName);
- }
- }
/**
* Returns true if the package name is the name of a module.
@@ -446,7 +323,7 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
private void rollbackPackage(RollbackInfo rollback, VersionedPackage failedPackage,
@FailureReasons int rollbackReason) {
final RollbackManager rollbackManager = mContext.getSystemService(RollbackManager.class);
- int reasonToLog = mapFailureReasonToMetric(rollbackReason);
+ int reasonToLog = WatchdogRollbackLogger.mapFailureReasonToMetric(rollbackReason);
final String failedPackageToLog;
if (rollbackReason == PackageWatchdog.FAILURE_REASON_NATIVE_CRASH) {
failedPackageToLog = SystemProperties.get(
@@ -456,21 +333,12 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
}
VersionedPackage logPackageTemp = null;
if (isModule(failedPackage.getPackageName())) {
- String logPackageName = getLoggingParentName(failedPackage.getPackageName());
- if (logPackageName == null) {
- logPackageName = failedPackage.getPackageName();
- }
- try {
- logPackageTemp = new VersionedPackage(logPackageName, mContext.getPackageManager()
- .getPackageInfo(logPackageName, 0 /* flags */).getLongVersionCode());
- } catch (PackageManager.NameNotFoundException e) {
- logPackageTemp = null;
- }
+ logPackageTemp = WatchdogRollbackLogger.getLogPackage(mContext, failedPackage);
}
final VersionedPackage logPackage = logPackageTemp;
- logEvent(logPackage,
- StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_INITIATE,
+ WatchdogRollbackLogger.logEvent(logPackage,
+ FrameworkStatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_INITIATE,
reasonToLog, failedPackageToLog);
final LocalIntentReceiver rollbackReceiver = new LocalIntentReceiver((Intent result) -> {
int status = result.getIntExtra(RollbackManager.EXTRA_STATUS,
@@ -487,16 +355,18 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
handleStagedSessionChange(rollbackManager, rollbackId, listener,
logPackage);
} else {
- logEvent(logPackage,
- StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_SUCCESS,
+ WatchdogRollbackLogger.logEvent(logPackage,
+ FrameworkStatsLog
+ .WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_SUCCESS,
reasonToLog, failedPackageToLog);
}
} else {
if (rollback.isStaged()) {
markStagedSessionHandled(rollback.getRollbackId());
}
- logEvent(logPackage,
- StatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_FAILURE,
+ WatchdogRollbackLogger.logEvent(logPackage,
+ FrameworkStatsLog
+ .WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_FAILURE,
reasonToLog, failedPackageToLog);
}
});
@@ -527,21 +397,4 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
rollbackPackage(rollback, sample, PackageWatchdog.FAILURE_REASON_NATIVE_CRASH);
}
}
-
-
- private int mapFailureReasonToMetric(@FailureReasons int failureReason) {
- switch (failureReason) {
- case PackageWatchdog.FAILURE_REASON_NATIVE_CRASH:
- return WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_NATIVE_CRASH;
- case PackageWatchdog.FAILURE_REASON_EXPLICIT_HEALTH_CHECK:
- return WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_EXPLICIT_HEALTH_CHECK;
- case PackageWatchdog.FAILURE_REASON_APP_CRASH:
- return WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_APP_CRASH;
- case PackageWatchdog.FAILURE_REASON_APP_NOT_RESPONDING:
- return WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_APP_NOT_RESPONDING;
- default:
- return WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_UNKNOWN;
- }
- }
-
}
diff --git a/services/core/java/com/android/server/rollback/RollbackStore.java b/services/core/java/com/android/server/rollback/RollbackStore.java
index 4f894821db27..7b046c1aa3a6 100644
--- a/services/core/java/com/android/server/rollback/RollbackStore.java
+++ b/services/core/java/com/android/server/rollback/RollbackStore.java
@@ -199,11 +199,6 @@ class RollbackStore {
* Creates a new Rollback instance for a non-staged rollback with
* backupDir assigned.
*/
- Rollback createNonStagedRollback(int rollbackId, int userId, String installerPackageName) {
- File backupDir = new File(mRollbackDataDir, Integer.toString(rollbackId));
- return new Rollback(rollbackId, backupDir, -1, userId, installerPackageName);
- }
-
Rollback createNonStagedRollback(int rollbackId, int userId, String installerPackageName,
int[] packageSessionIds) {
File backupDir = new File(mRollbackDataDir, Integer.toString(rollbackId));
@@ -216,16 +211,6 @@ class RollbackStore {
* backupDir assigned.
*/
Rollback createStagedRollback(int rollbackId, int stagedSessionId, int userId,
- String installerPackageName) {
- File backupDir = new File(mRollbackDataDir, Integer.toString(rollbackId));
- return new Rollback(rollbackId, backupDir, stagedSessionId, userId, installerPackageName);
- }
-
- /**
- * TODO: Now we have 4 factory methods for creating Rollback objects which is verbose and
- * cumbersome. Need to merge them for simplicity.
- */
- Rollback createStagedRollback(int rollbackId, int stagedSessionId, int userId,
String installerPackageName, int[] packageSessionIds) {
File backupDir = new File(mRollbackDataDir, Integer.toString(rollbackId));
return new Rollback(rollbackId, backupDir, stagedSessionId, userId, installerPackageName,
diff --git a/services/core/java/com/android/server/rollback/WatchdogRollbackLogger.java b/services/core/java/com/android/server/rollback/WatchdogRollbackLogger.java
new file mode 100644
index 000000000000..46ec2f8258ca
--- /dev/null
+++ b/services/core/java/com/android/server/rollback/WatchdogRollbackLogger.java
@@ -0,0 +1,229 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.rollback;
+
+import static com.android.internal.util.FrameworkStatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_APP_CRASH;
+import static com.android.internal.util.FrameworkStatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_APP_NOT_RESPONDING;
+import static com.android.internal.util.FrameworkStatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_EXPLICIT_HEALTH_CHECK;
+import static com.android.internal.util.FrameworkStatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_NATIVE_CRASH;
+import static com.android.internal.util.FrameworkStatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_UNKNOWN;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInstaller;
+import android.content.pm.PackageManager;
+import android.content.pm.VersionedPackage;
+import android.content.rollback.PackageRollbackInfo;
+import android.content.rollback.RollbackInfo;
+import android.util.ArraySet;
+import android.util.Slog;
+import android.util.StatsLog;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.FrameworkStatsLog;
+import com.android.server.PackageWatchdog;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * This class handles the logic for logging Watchdog-triggered rollback events.
+ */
+public final class WatchdogRollbackLogger {
+ private static final String TAG = "WatchdogRollbackLogger";
+
+ private static final String LOGGING_PARENT_KEY = "android.content.pm.LOGGING_PARENT";
+
+ private WatchdogRollbackLogger() {
+ }
+
+ @Nullable
+ private static String getLoggingParentName(Context context, @NonNull String packageName) {
+ PackageManager packageManager = context.getPackageManager();
+ try {
+ ApplicationInfo ai = packageManager.getApplicationInfo(packageName,
+ PackageManager.GET_META_DATA);
+ if (ai.metaData == null) {
+ return null;
+ }
+ return ai.metaData.getString(LOGGING_PARENT_KEY);
+ } catch (Exception e) {
+ Slog.w(TAG, "Unable to discover logging parent package: " + packageName, e);
+ return null;
+ }
+ }
+
+ /**
+ * Returns the logging parent of a given package if it exists, {@code null} otherwise.
+ *
+ * The logging parent is defined by the {@code android.content.pm.LOGGING_PARENT} field in the
+ * metadata of a package's AndroidManifest.xml.
+ */
+ @VisibleForTesting
+ @Nullable
+ static VersionedPackage getLogPackage(Context context,
+ @NonNull VersionedPackage failingPackage) {
+ String logPackageName;
+ VersionedPackage loggingParent;
+ logPackageName = getLoggingParentName(context, failingPackage.getPackageName());
+ if (logPackageName == null) {
+ return null;
+ }
+ try {
+ loggingParent = new VersionedPackage(logPackageName, context.getPackageManager()
+ .getPackageInfo(logPackageName, 0 /* flags */).getLongVersionCode());
+ } catch (PackageManager.NameNotFoundException e) {
+ return null;
+ }
+ return loggingParent;
+ }
+
+ static void logRollbackStatusOnBoot(Context context, int rollbackId,
+ List<RollbackInfo> recentlyCommittedRollbacks) {
+ PackageInstaller packageInstaller = context.getPackageManager().getPackageInstaller();
+
+ RollbackInfo rollback = null;
+ for (RollbackInfo info : recentlyCommittedRollbacks) {
+ if (rollbackId == info.getRollbackId()) {
+ rollback = info;
+ break;
+ }
+ }
+
+ if (rollback == null) {
+ Slog.e(TAG, "rollback info not found for last staged rollback: " + rollbackId);
+ return;
+ }
+
+ // Identify the logging parent for this rollback. When all configurations are correct,
+ // each package in the rollback has a logging parent set in metadata.
+ final Set<String> loggingPackageNames = new ArraySet<>();
+ for (PackageRollbackInfo packageRollback : rollback.getPackages()) {
+ final String loggingParentName = getLoggingParentName(context,
+ packageRollback.getPackageName());
+ if (loggingParentName != null) {
+ loggingPackageNames.add(loggingParentName);
+ }
+ }
+
+ // Use the version of the logging parent that was installed before
+ // we rolled back for logging purposes.
+ final List<VersionedPackage> oldLoggingPackages = new ArrayList<>();
+ for (PackageRollbackInfo packageRollback : rollback.getPackages()) {
+ if (loggingPackageNames.contains(packageRollback.getPackageName())) {
+ oldLoggingPackages.add(packageRollback.getVersionRolledBackFrom());
+ }
+ }
+
+ int sessionId = rollback.getCommittedSessionId();
+ PackageInstaller.SessionInfo sessionInfo = packageInstaller.getSessionInfo(sessionId);
+ if (sessionInfo == null) {
+ Slog.e(TAG, "On boot completed, could not load session id " + sessionId);
+ return;
+ }
+
+ for (VersionedPackage oldLoggingPackage : oldLoggingPackages) {
+ if (sessionInfo.isStagedSessionApplied()) {
+ logEvent(oldLoggingPackage,
+ FrameworkStatsLog
+ .WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_SUCCESS,
+ WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_UNKNOWN, "");
+ } else if (sessionInfo.isStagedSessionFailed()) {
+ logEvent(oldLoggingPackage,
+ FrameworkStatsLog
+ .WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_FAILURE,
+ WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_UNKNOWN, "");
+ }
+ }
+ }
+
+ /**
+ * Log a Watchdog rollback event to statsd.
+ *
+ * @param logPackage the package to associate the rollback with.
+ * @param type the state of the rollback.
+ * @param rollbackReason the reason Watchdog triggered a rollback, if known.
+ * @param failingPackageName the failing package or process which triggered the rollback.
+ */
+ public static void logEvent(@Nullable VersionedPackage logPackage, int type,
+ int rollbackReason, @NonNull String failingPackageName) {
+ Slog.i(TAG, "Watchdog event occurred with type: " + rollbackTypeToString(type)
+ + " logPackage: " + logPackage
+ + " rollbackReason: " + rollbackReasonToString(rollbackReason)
+ + " failedPackageName: " + failingPackageName);
+ if (logPackage != null) {
+ StatsLog.logWatchdogRollbackOccurred(type, logPackage.getPackageName(),
+ logPackage.getVersionCode(), rollbackReason, failingPackageName);
+ } else {
+ // In the case that the log package is null, still log an empty string as an
+ // indication that retrieving the logging parent failed.
+ StatsLog.logWatchdogRollbackOccurred(type, "", 0, rollbackReason, failingPackageName);
+ }
+ }
+
+ @VisibleForTesting
+ static int mapFailureReasonToMetric(@PackageWatchdog.FailureReasons int failureReason) {
+ switch (failureReason) {
+ case PackageWatchdog.FAILURE_REASON_NATIVE_CRASH:
+ return WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_NATIVE_CRASH;
+ case PackageWatchdog.FAILURE_REASON_EXPLICIT_HEALTH_CHECK:
+ return WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_EXPLICIT_HEALTH_CHECK;
+ case PackageWatchdog.FAILURE_REASON_APP_CRASH:
+ return WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_APP_CRASH;
+ case PackageWatchdog.FAILURE_REASON_APP_NOT_RESPONDING:
+ return WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_APP_NOT_RESPONDING;
+ default:
+ return WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_UNKNOWN;
+ }
+ }
+
+ private static String rollbackTypeToString(int type) {
+ switch (type) {
+ case FrameworkStatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_INITIATE:
+ return "ROLLBACK_INITIATE";
+ case FrameworkStatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_SUCCESS:
+ return "ROLLBACK_SUCCESS";
+ case FrameworkStatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_FAILURE:
+ return "ROLLBACK_FAILURE";
+ case FrameworkStatsLog
+ .WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_BOOT_TRIGGERED:
+ return "ROLLBACK_BOOT_TRIGGERED";
+ default:
+ return "UNKNOWN";
+ }
+ }
+
+ private static String rollbackReasonToString(int reason) {
+ switch (reason) {
+ case FrameworkStatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_NATIVE_CRASH:
+ return "REASON_NATIVE_CRASH";
+ case FrameworkStatsLog
+ .WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_EXPLICIT_HEALTH_CHECK:
+ return "REASON_EXPLICIT_HEALTH_CHECK";
+ case FrameworkStatsLog.WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_APP_CRASH:
+ return "REASON_APP_CRASH";
+ case FrameworkStatsLog
+ .WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_REASON__REASON_APP_NOT_RESPONDING:
+ return "REASON_APP_NOT_RESPONDING";
+ default:
+ return "UNKNOWN";
+ }
+ }
+}
diff --git a/services/core/java/com/android/server/security/KeyAttestationApplicationIdProviderService.java b/services/core/java/com/android/server/security/KeyAttestationApplicationIdProviderService.java
index a8c68c07231d..c908acdd1d6c 100644
--- a/services/core/java/com/android/server/security/KeyAttestationApplicationIdProviderService.java
+++ b/services/core/java/com/android/server/security/KeyAttestationApplicationIdProviderService.java
@@ -24,16 +24,16 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Binder;
import android.os.RemoteException;
import android.os.UserHandle;
-import android.security.keymaster.KeyAttestationPackageInfo;
-import android.security.keymaster.KeyAttestationApplicationId;
import android.security.keymaster.IKeyAttestationApplicationIdProvider;
+import android.security.keymaster.KeyAttestationApplicationId;
+import android.security.keymaster.KeyAttestationPackageInfo;
/**
* @hide
* The KeyAttestationApplicationIdProviderService provides information describing the possible
* applications identified by a UID. Due to UID sharing, this KeyAttestationApplicationId can
- * comprise information about multiple packages. The Information is used by keystore to describe
- * the initiating application of a key attestation procedure.
+ * comprise information about multiple packages. The Information is used by keystore and credstore
+ * to describe the initiating application of a key attestation procedure.
*/
public class KeyAttestationApplicationIdProviderService
extends IKeyAttestationApplicationIdProvider.Stub {
@@ -46,8 +46,10 @@ public class KeyAttestationApplicationIdProviderService
public KeyAttestationApplicationId getKeyAttestationApplicationId(int uid)
throws RemoteException {
- if (Binder.getCallingUid() != android.os.Process.KEYSTORE_UID) {
- throw new SecurityException("This service can only be used by Keystore");
+ int callingUid = Binder.getCallingUid();
+ if (callingUid != android.os.Process.KEYSTORE_UID
+ && callingUid != android.os.Process.CREDSTORE_UID) {
+ throw new SecurityException("This service can only be used by Keystore or Credstore");
}
KeyAttestationPackageInfo[] keyAttestationPackageInfos = null;
final long token = Binder.clearCallingIdentity();
diff --git a/services/core/java/com/android/server/signedconfig/GlobalSettingsConfigApplicator.java b/services/core/java/com/android/server/signedconfig/GlobalSettingsConfigApplicator.java
index d77cf900a0a9..897aa14ebb64 100644
--- a/services/core/java/com/android/server/signedconfig/GlobalSettingsConfigApplicator.java
+++ b/services/core/java/com/android/server/signedconfig/GlobalSettingsConfigApplicator.java
@@ -23,7 +23,8 @@ import android.provider.Settings;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Slog;
-import android.util.StatsLog;
+
+import com.android.internal.util.FrameworkStatsLog;
import java.security.GeneralSecurityException;
import java.util.Arrays;
@@ -82,7 +83,7 @@ class GlobalSettingsConfigApplicator {
return mVerifier.verifySignature(data, signature);
} catch (GeneralSecurityException e) {
Slog.e(TAG, "Failed to verify signature", e);
- mEvent.status = StatsLog.SIGNED_CONFIG_REPORTED__STATUS__SECURITY_EXCEPTION;
+ mEvent.status = FrameworkStatsLog.SIGNED_CONFIG_REPORTED__STATUS__SECURITY_EXCEPTION;
return false;
}
}
@@ -116,14 +117,14 @@ class GlobalSettingsConfigApplicator {
mEvent.version = config.version;
} catch (InvalidConfigException e) {
Slog.e(TAG, "Failed to parse global settings from package " + mSourcePackage, e);
- mEvent.status = StatsLog.SIGNED_CONFIG_REPORTED__STATUS__INVALID_CONFIG;
+ mEvent.status = FrameworkStatsLog.SIGNED_CONFIG_REPORTED__STATUS__INVALID_CONFIG;
return;
}
int currentVersion = getCurrentConfigVersion();
if (currentVersion >= config.version) {
Slog.i(TAG, "Global settings from package " + mSourcePackage
+ " is older than existing: " + config.version + "<=" + currentVersion);
- mEvent.status = StatsLog.SIGNED_CONFIG_REPORTED__STATUS__OLD_CONFIG;
+ mEvent.status = FrameworkStatsLog.SIGNED_CONFIG_REPORTED__STATUS__OLD_CONFIG;
return;
}
// We have new config!
@@ -133,12 +134,12 @@ class GlobalSettingsConfigApplicator {
config.getMatchingConfig(Build.VERSION.SDK_INT);
if (matchedConfig == null) {
Slog.i(TAG, "Settings is not applicable to current SDK version; ignoring");
- mEvent.status = StatsLog.SIGNED_CONFIG_REPORTED__STATUS__NOT_APPLICABLE;
+ mEvent.status = FrameworkStatsLog.SIGNED_CONFIG_REPORTED__STATUS__NOT_APPLICABLE;
return;
}
Slog.i(TAG, "Updating global settings to version " + config.version);
updateCurrentConfig(config.version, matchedConfig.values);
- mEvent.status = StatsLog.SIGNED_CONFIG_REPORTED__STATUS__APPLIED;
+ mEvent.status = FrameworkStatsLog.SIGNED_CONFIG_REPORTED__STATUS__APPLIED;
}
}
diff --git a/services/core/java/com/android/server/signedconfig/SignatureVerifier.java b/services/core/java/com/android/server/signedconfig/SignatureVerifier.java
index 146c51688531..a85764221de5 100644
--- a/services/core/java/com/android/server/signedconfig/SignatureVerifier.java
+++ b/services/core/java/com/android/server/signedconfig/SignatureVerifier.java
@@ -18,7 +18,8 @@ package com.android.server.signedconfig;
import android.os.Build;
import android.util.Slog;
-import android.util.StatsLog;
+
+import com.android.internal.util.FrameworkStatsLog;
import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
@@ -96,7 +97,8 @@ public class SignatureVerifier {
try {
signature = Base64.getDecoder().decode(base64Signature);
} catch (IllegalArgumentException e) {
- mEvent.status = StatsLog.SIGNED_CONFIG_REPORTED__STATUS__BASE64_FAILURE_SIGNATURE;
+ mEvent.status =
+ FrameworkStatsLog.SIGNED_CONFIG_REPORTED__STATUS__BASE64_FAILURE_SIGNATURE;
Slog.e(TAG, "Failed to base64 decode signature");
return false;
}
@@ -108,7 +110,8 @@ public class SignatureVerifier {
if (DBG) Slog.w(TAG, "Trying to verify signature using debug key");
if (verifyWithPublicKey(mDebugKey, data, signature)) {
Slog.i(TAG, "Verified config using debug key");
- mEvent.verifiedWith = StatsLog.SIGNED_CONFIG_REPORTED__VERIFIED_WITH__DEBUG;
+ mEvent.verifiedWith =
+ FrameworkStatsLog.SIGNED_CONFIG_REPORTED__VERIFIED_WITH__DEBUG;
return true;
} else {
if (DBG) Slog.i(TAG, "Config verification failed using debug key");
@@ -120,16 +123,19 @@ public class SignatureVerifier {
if (mProdKey == null) {
Slog.e(TAG, "No prod key; construction failed?");
mEvent.status =
- StatsLog.SIGNED_CONFIG_REPORTED__STATUS__SIGNATURE_CHECK_FAILED_PROD_KEY_ABSENT;
+ FrameworkStatsLog
+ .SIGNED_CONFIG_REPORTED__STATUS__SIGNATURE_CHECK_FAILED_PROD_KEY_ABSENT;
return false;
}
if (verifyWithPublicKey(mProdKey, data, signature)) {
Slog.i(TAG, "Verified config using production key");
- mEvent.verifiedWith = StatsLog.SIGNED_CONFIG_REPORTED__VERIFIED_WITH__PRODUCTION;
+ mEvent.verifiedWith =
+ FrameworkStatsLog.SIGNED_CONFIG_REPORTED__VERIFIED_WITH__PRODUCTION;
return true;
} else {
if (DBG) Slog.i(TAG, "Verification failed using production key");
- mEvent.status = StatsLog.SIGNED_CONFIG_REPORTED__STATUS__SIGNATURE_CHECK_FAILED;
+ mEvent.status =
+ FrameworkStatsLog.SIGNED_CONFIG_REPORTED__STATUS__SIGNATURE_CHECK_FAILED;
return false;
}
}
diff --git a/services/core/java/com/android/server/signedconfig/SignedConfigEvent.java b/services/core/java/com/android/server/signedconfig/SignedConfigEvent.java
index 2f2062c6f2ee..c1adf936d79b 100644
--- a/services/core/java/com/android/server/signedconfig/SignedConfigEvent.java
+++ b/services/core/java/com/android/server/signedconfig/SignedConfigEvent.java
@@ -15,24 +15,24 @@
*/
package com.android.server.signedconfig;
-import android.util.StatsLog;
+import com.android.internal.util.FrameworkStatsLog;
/**
* Helper class to allow a SignedConfigReported event to be built up in stages.
*/
public class SignedConfigEvent {
- public int type = StatsLog.SIGNED_CONFIG_REPORTED__TYPE__UNKNOWN_TYPE;
- public int status = StatsLog.SIGNED_CONFIG_REPORTED__STATUS__UNKNOWN_STATUS;
+ public int type = FrameworkStatsLog.SIGNED_CONFIG_REPORTED__TYPE__UNKNOWN_TYPE;
+ public int status = FrameworkStatsLog.SIGNED_CONFIG_REPORTED__STATUS__UNKNOWN_STATUS;
public int version = 0;
public String fromPackage = null;
- public int verifiedWith = StatsLog.SIGNED_CONFIG_REPORTED__VERIFIED_WITH__NO_KEY;
+ public int verifiedWith = FrameworkStatsLog.SIGNED_CONFIG_REPORTED__VERIFIED_WITH__NO_KEY;
/**
* Write this event to statslog.
*/
public void send() {
- StatsLog.write(StatsLog.SIGNED_CONFIG_REPORTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.SIGNED_CONFIG_REPORTED,
type, status, version, fromPackage, verifiedWith);
}
diff --git a/services/core/java/com/android/server/signedconfig/SignedConfigService.java b/services/core/java/com/android/server/signedconfig/SignedConfigService.java
index dc39542dc29f..037c82ad6593 100644
--- a/services/core/java/com/android/server/signedconfig/SignedConfigService.java
+++ b/services/core/java/com/android/server/signedconfig/SignedConfigService.java
@@ -26,8 +26,8 @@ import android.content.pm.PackageManagerInternal;
import android.net.Uri;
import android.os.Bundle;
import android.util.Slog;
-import android.util.StatsLog;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.server.LocalServices;
import java.nio.charset.StandardCharsets;
@@ -85,7 +85,7 @@ public class SignedConfigService {
&& metaData.containsKey(KEY_GLOBAL_SETTINGS_SIGNATURE)) {
SignedConfigEvent event = new SignedConfigEvent();
try {
- event.type = StatsLog.SIGNED_CONFIG_REPORTED__TYPE__GLOBAL_SETTINGS;
+ event.type = FrameworkStatsLog.SIGNED_CONFIG_REPORTED__TYPE__GLOBAL_SETTINGS;
event.fromPackage = packageName;
String config = metaData.getString(KEY_GLOBAL_SETTINGS);
String signature = metaData.getString(KEY_GLOBAL_SETTINGS_SIGNATURE);
@@ -95,7 +95,8 @@ public class SignedConfigService {
} catch (IllegalArgumentException iae) {
Slog.e(TAG, "Failed to base64 decode global settings config from "
+ packageName);
- event.status = StatsLog.SIGNED_CONFIG_REPORTED__STATUS__BASE64_FAILURE_CONFIG;
+ event.status =
+ FrameworkStatsLog.SIGNED_CONFIG_REPORTED__STATUS__BASE64_FAILURE_CONFIG;
return;
}
if (DBG) {
diff --git a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
index a1d4f4205e42..5c79f6e6391d 100644
--- a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
+++ b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java
@@ -54,6 +54,7 @@ import android.content.pm.UserInfo;
import android.hardware.biometrics.BiometricsProtoEnums;
import android.hardware.face.FaceManager;
import android.hardware.fingerprint.FingerprintManager;
+import android.hardware.health.V2_0.IHealth;
import android.net.ConnectivityManager;
import android.net.INetworkStatsService;
import android.net.Network;
@@ -119,6 +120,7 @@ import com.android.internal.os.PowerProfile;
import com.android.internal.os.ProcessCpuTracker;
import com.android.internal.os.StoragedUidIoStatsReader;
import com.android.internal.util.FrameworkStatsLog;
+import com.android.server.BatteryService;
import com.android.server.BinderCallsStatsService;
import com.android.server.LocalServices;
import com.android.server.SystemService;
@@ -239,6 +241,8 @@ public class StatsPullAtomService extends SystemService {
private File mBaseDir;
+ private BatteryService.HealthServiceWrapper mHealthService;
+
@Nullable
private KernelCpuThreadReaderDiff mKernelCpuThreadReader;
@@ -252,6 +256,8 @@ public class StatsPullAtomService extends SystemService {
mContext = context;
}
+ private native void nativeInit();
+
/**
* Use of this StatsPullAtomCallbackImpl means we avoid one class per tagId, which we would
* get if we used lambdas.
@@ -373,6 +379,12 @@ public class StatsPullAtomService extends SystemService {
return pullNotificationRemoteViews(atomTag, data);
case FrameworkStatsLog.DANGEROUS_PERMISSION_STATE_SAMPLED:
return pullDangerousPermissionState(atomTag, data);
+ case FrameworkStatsLog.BATTERY_LEVEL:
+ case FrameworkStatsLog.REMAINING_BATTERY_CAPACITY:
+ case FrameworkStatsLog.FULL_BATTERY_CAPACITY:
+ case FrameworkStatsLog.BATTERY_VOLTAGE:
+ case FrameworkStatsLog.BATTERY_CYCLE_COUNT:
+ return pullHealthHal(atomTag, data);
default:
throw new UnsupportedOperationException("Unknown tagId=" + atomTag);
}
@@ -389,6 +401,7 @@ public class StatsPullAtomService extends SystemService {
super.onBootPhase(phase);
if (phase == PHASE_SYSTEM_SERVICES_READY) {
BackgroundThread.getHandler().post(() -> {
+ nativeInit();
initializePullersState();
registerAllPullers();
registerEventListeners();
@@ -438,6 +451,14 @@ public class StatsPullAtomService extends SystemService {
// Used by PROC_STATS and PROC_STATS_PKG_PROC atoms
mBaseDir.mkdirs();
+
+ // Initialize HealthService
+ mHealthService = new BatteryService.HealthServiceWrapper();
+ try {
+ mHealthService.init();
+ } catch (RemoteException e) {
+ Slog.e(TAG, "failed to initialize healthHalWrapper");
+ }
}
void registerEventListeners() {
@@ -519,6 +540,11 @@ public class StatsPullAtomService extends SystemService {
registerNotificationRemoteViews();
registerDangerousPermissionState();
registerDangerousPermissionStateSampled();
+ registerBatteryLevel();
+ registerRemainingBatteryCapacity();
+ registerFullBatteryCapacity();
+ registerBatteryVoltage();
+ registerBatteryCycleCount();
}
private INetworkStatsService getINetworkStatsService() {
@@ -873,7 +899,6 @@ public class StatsPullAtomService extends SystemService {
return data;
}
}
- Slog.e(TAG, "no controller energy info supplied for " + receiver.getName());
} catch (TimeoutException e) {
Slog.w(TAG, "timeout reading " + receiver.getName() + " stats");
}
@@ -2455,7 +2480,7 @@ public class StatsPullAtomService extends SystemService {
.writeString(Build.BRAND)
.writeString(Build.PRODUCT)
.writeString(Build.DEVICE)
- .writeString(Build.VERSION.RELEASE)
+ .writeString(Build.VERSION.RELEASE_OR_CODENAME)
.writeString(Build.ID)
.writeString(Build.VERSION.INCREMENTAL)
.writeString(Build.TYPE)
@@ -2961,6 +2986,95 @@ public class StatsPullAtomService extends SystemService {
);
}
+ private void registerBatteryLevel() {
+ int tagId = FrameworkStatsLog.BATTERY_LEVEL;
+ mStatsManager.registerPullAtomCallback(
+ tagId,
+ null, // use default PullAtomMetadata values
+ BackgroundThread.getExecutor(),
+ mStatsCallbackImpl
+ );
+ }
+
+ private void registerRemainingBatteryCapacity() {
+ int tagId = FrameworkStatsLog.REMAINING_BATTERY_CAPACITY;
+ mStatsManager.registerPullAtomCallback(
+ tagId,
+ null, // use default PullAtomMetadata values
+ BackgroundThread.getExecutor(),
+ mStatsCallbackImpl
+ );
+ }
+
+ private void registerFullBatteryCapacity() {
+ int tagId = FrameworkStatsLog.FULL_BATTERY_CAPACITY;
+ mStatsManager.registerPullAtomCallback(
+ tagId,
+ null, // use default PullAtomMetadata values
+ BackgroundThread.getExecutor(),
+ mStatsCallbackImpl
+ );
+ }
+
+ private void registerBatteryVoltage() {
+ int tagId = FrameworkStatsLog.BATTERY_VOLTAGE;
+ mStatsManager.registerPullAtomCallback(
+ tagId,
+ null, // use default PullAtomMetadata values
+ BackgroundThread.getExecutor(),
+ mStatsCallbackImpl
+ );
+ }
+
+ private void registerBatteryCycleCount() {
+ int tagId = FrameworkStatsLog.BATTERY_CYCLE_COUNT;
+ mStatsManager.registerPullAtomCallback(
+ tagId,
+ null, // use default PullAtomMetadata values
+ BackgroundThread.getExecutor(),
+ mStatsCallbackImpl
+ );
+ }
+
+ int pullHealthHal(int atomTag, List<StatsEvent> pulledData) {
+ IHealth healthService = mHealthService.getLastService();
+ if (healthService == null) {
+ return StatsManager.PULL_SKIP;
+ }
+ try {
+ healthService.getHealthInfo((result, value) -> {
+ int pulledValue;
+ switch(atomTag) {
+ case FrameworkStatsLog.BATTERY_LEVEL:
+ pulledValue = value.legacy.batteryLevel;
+ break;
+ case FrameworkStatsLog.REMAINING_BATTERY_CAPACITY:
+ pulledValue = value.legacy.batteryChargeCounter;
+ break;
+ case FrameworkStatsLog.FULL_BATTERY_CAPACITY:
+ pulledValue = value.legacy.batteryFullCharge;
+ break;
+ case FrameworkStatsLog.BATTERY_VOLTAGE:
+ pulledValue = value.legacy.batteryVoltage;
+ break;
+ case FrameworkStatsLog.BATTERY_CYCLE_COUNT:
+ pulledValue = value.legacy.batteryCycleCount;
+ break;
+ default:
+ throw new IllegalStateException("Invalid atomTag in healthHal puller: "
+ + atomTag);
+ }
+ StatsEvent e = StatsEvent.newBuilder()
+ .setAtomId(atomTag)
+ .writeInt(pulledValue)
+ .build();
+ pulledData.add(e);
+ });
+ } catch (RemoteException | IllegalStateException e) {
+ return StatsManager.PULL_SKIP;
+ }
+ return StatsManager.PULL_SUCCESS;
+ }
// Thermal event received from vendor thermal management subsystem
private static final class ThermalEventListener extends IThermalEventListener.Stub {
diff --git a/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java b/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java
index b136ec754f59..734b71824490 100644
--- a/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java
+++ b/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java
@@ -41,11 +41,11 @@ import android.text.format.DateUtils;
import android.util.ArrayMap;
import android.util.DataUnit;
import android.util.Slog;
-import android.util.StatsLog;
import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
import com.android.internal.notification.SystemNotificationChannels;
import com.android.internal.util.DumpUtils;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.IndentingPrintWriter;
import com.android.server.EventLogTags;
import com.android.server.SystemService;
@@ -512,15 +512,15 @@ public class DeviceStorageMonitorService extends SystemService {
notification.flags |= Notification.FLAG_NO_CLEAR;
mNotifManager.notifyAsUser(uuid.toString(), SystemMessage.NOTE_LOW_STORAGE,
notification, UserHandle.ALL);
- StatsLog.write(StatsLog.LOW_STORAGE_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.LOW_STORAGE_STATE_CHANGED,
Objects.toString(vol.getDescription()),
- StatsLog.LOW_STORAGE_STATE_CHANGED__STATE__ON);
+ FrameworkStatsLog.LOW_STORAGE_STATE_CHANGED__STATE__ON);
} else if (State.isLeaving(State.LEVEL_LOW, oldLevel, newLevel)) {
mNotifManager.cancelAsUser(uuid.toString(), SystemMessage.NOTE_LOW_STORAGE,
UserHandle.ALL);
- StatsLog.write(StatsLog.LOW_STORAGE_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.LOW_STORAGE_STATE_CHANGED,
Objects.toString(vol.getDescription()),
- StatsLog.LOW_STORAGE_STATE_CHANGED__STATE__OFF);
+ FrameworkStatsLog.LOW_STORAGE_STATE_CHANGED__STATE__OFF);
}
}
diff --git a/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java b/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java
index 3dee853240a6..34d2c16ed0ac 100644
--- a/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java
+++ b/services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java
@@ -36,7 +36,7 @@ import android.service.textclassifier.ITextClassifierService;
import android.service.textclassifier.TextClassifierService;
import android.service.textclassifier.TextClassifierService.ConnectionState;
import android.text.TextUtils;
-import android.util.ArrayMap;
+import android.util.LruCache;
import android.util.Slog;
import android.util.SparseArray;
import android.view.textclassifier.ConversationActions;
@@ -63,7 +63,8 @@ import com.android.server.SystemService;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.ArrayDeque;
-import java.util.Map;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Objects;
import java.util.Queue;
@@ -132,9 +133,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
synchronized (mManagerService.mLock) {
UserState userState = mManagerService.peekUserStateLocked(userId);
if (userState != null) {
- if (userState.mConnection != null) {
- userState.mConnection.cleanupService();
- }
+ userState.cleanupServiceLocked();
mManagerService.mUserStates.remove(userId);
}
}
@@ -147,22 +146,31 @@ public final class TextClassificationManagerService extends ITextClassifierServi
private final Object mLock;
@GuardedBy("mLock")
final SparseArray<UserState> mUserStates = new SparseArray<>();
+ // SystemTextClassifier.onDestroy() is not guaranteed to be called, use LruCache here
+ // to avoid leak.
@GuardedBy("mLock")
- private final Map<TextClassificationSessionId, Integer> mSessionUserIds = new ArrayMap<>();
- @GuardedBy("mLock")
- private TextClassificationConstants mSettings;
+ private final LruCache<TextClassificationSessionId, TextClassificationContext>
+ mSessionContextCache = new LruCache<>(40);
+ private final TextClassificationConstants mSettings;
+ @Nullable
+ private final String mDefaultTextClassifierPackage;
+ @Nullable
+ private final String mSystemTextClassifierPackage;
private TextClassificationManagerService(Context context) {
mContext = Objects.requireNonNull(context);
mLock = new Object();
+ mSettings = new TextClassificationConstants();
mSettingsListener = new TextClassifierSettingsListener(mContext);
+ PackageManager packageManager = mContext.getPackageManager();
+ mDefaultTextClassifierPackage = packageManager.getDefaultTextClassifierPackageName();
+ mSystemTextClassifierPackage = packageManager.getSystemTextClassifierPackageName();
}
private void startListenSettings() {
mSettingsListener.registerObserver();
}
-
@Override
public void onConnectedStateChanged(@ConnectionState int connected) {
}
@@ -178,6 +186,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
request.getUserId(),
request.getCallingPackageName(),
/* attemptToBind= */ true,
+ request.getUseDefaultTextClassifier(),
service -> service.onSuggestSelection(sessionId, request, callback),
"onSuggestSelection",
callback);
@@ -194,6 +203,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
request.getUserId(),
request.getCallingPackageName(),
/* attemptToBind= */ true,
+ request.getUseDefaultTextClassifier(),
service -> service.onClassifyText(sessionId, request, callback),
"onClassifyText",
callback);
@@ -210,6 +220,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
request.getUserId(),
request.getCallingPackageName(),
/* attemptToBind= */ true,
+ request.getUseDefaultTextClassifier(),
service -> service.onGenerateLinks(sessionId, request, callback),
"onGenerateLinks",
callback);
@@ -223,28 +234,32 @@ public final class TextClassificationManagerService extends ITextClassifierServi
handleRequest(
event.getUserId(),
- event.getPackageName(),
+ /* callingPackageName= */ null,
/* attemptToBind= */ false,
+ event.getUseDefaultTextClassifier(),
service -> service.onSelectionEvent(sessionId, event),
"onSelectionEvent",
NO_OP_CALLBACK);
}
+
@Override
public void onTextClassifierEvent(
@Nullable TextClassificationSessionId sessionId,
TextClassifierEvent event) throws RemoteException {
Objects.requireNonNull(event);
- final String packageName = event.getEventContext() == null
- ? null
- : event.getEventContext().getPackageName();
final int userId = event.getEventContext() == null
? UserHandle.getCallingUserId()
: event.getEventContext().getUserId();
+ final boolean useDefaultTextClassifier =
+ event.getEventContext() != null
+ ? event.getEventContext().getUseDefaultTextClassifier()
+ : true;
handleRequest(
userId,
- packageName,
+ /* callingPackageName= */ null,
/* attemptToBind= */ false,
+ useDefaultTextClassifier,
service -> service.onTextClassifierEvent(sessionId, event),
"onTextClassifierEvent",
NO_OP_CALLBACK);
@@ -261,6 +276,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
request.getUserId(),
request.getCallingPackageName(),
/* attemptToBind= */ true,
+ request.getUseDefaultTextClassifier(),
service -> service.onDetectLanguage(sessionId, request, callback),
"onDetectLanguage",
callback);
@@ -277,6 +293,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
request.getUserId(),
request.getCallingPackageName(),
/* attemptToBind= */ true,
+ request.getUseDefaultTextClassifier(),
service -> service.onSuggestConversationActions(sessionId, request, callback),
"onSuggestConversationActions",
callback);
@@ -294,9 +311,10 @@ public final class TextClassificationManagerService extends ITextClassifierServi
userId,
classificationContext.getPackageName(),
/* attemptToBind= */ false,
+ classificationContext.getUseDefaultTextClassifier(),
service -> {
service.onCreateTextClassificationSession(classificationContext, sessionId);
- mSessionUserIds.put(sessionId, userId);
+ mSessionContextCache.put(sessionId, classificationContext);
},
"onCreateTextClassificationSession",
NO_OP_CALLBACK);
@@ -308,16 +326,23 @@ public final class TextClassificationManagerService extends ITextClassifierServi
Objects.requireNonNull(sessionId);
synchronized (mLock) {
- final int userId = mSessionUserIds.containsKey(sessionId)
- ? mSessionUserIds.get(sessionId)
+ TextClassificationContext textClassificationContext =
+ mSessionContextCache.get(sessionId);
+ final int userId = textClassificationContext != null
+ ? textClassificationContext.getUserId()
: UserHandle.getCallingUserId();
+ final boolean useDefaultTextClassifier =
+ textClassificationContext != null
+ ? textClassificationContext.getUseDefaultTextClassifier()
+ : true;
handleRequest(
userId,
/* callingPackageName= */ null,
/* attemptToBind= */ false,
+ useDefaultTextClassifier,
service -> {
service.onDestroyTextClassificationSession(sessionId);
- mSessionUserIds.remove(sessionId);
+ mSessionContextCache.remove(sessionId);
},
"onDestroyTextClassificationSession",
NO_OP_CALLBACK);
@@ -328,7 +353,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
private UserState getUserStateLocked(int userId) {
UserState result = mUserStates.get(userId);
if (result == null) {
- result = new UserState(userId, mContext, mLock);
+ result = new UserState(userId);
mUserStates.put(userId, result);
}
return result;
@@ -339,6 +364,19 @@ public final class TextClassificationManagerService extends ITextClassifierServi
return mUserStates.get(userId);
}
+ private int resolvePackageToUid(@Nullable String packageName, @UserIdInt int userId) {
+ if (packageName == null) {
+ return Process.INVALID_UID;
+ }
+ final PackageManager pm = mContext.getPackageManager();
+ try {
+ return pm.getPackageUidAsUser(packageName, userId);
+ } catch (PackageManager.NameNotFoundException e) {
+ Slog.e(LOG_TAG, "Could not get the UID for " + packageName);
+ }
+ return Process.INVALID_UID;
+ }
+
@Override
protected void dump(FileDescriptor fd, PrintWriter fout, String[] args) {
if (!DumpUtils.checkDumpPermission(mContext, LOG_TAG, fout)) return;
@@ -353,18 +391,25 @@ public final class TextClassificationManagerService extends ITextClassifierServi
pw.printPair("context", mContext);
pw.println();
+ pw.printPair("defaultTextClassifierPackage", mDefaultTextClassifierPackage);
+ pw.println();
+ pw.printPair("systemTextClassifierPackage", mSystemTextClassifierPackage);
+ pw.println();
synchronized (mLock) {
int size = mUserStates.size();
- pw.print("Number user states: "); pw.println(size);
+ pw.print("Number user states: ");
+ pw.println(size);
if (size > 0) {
for (int i = 0; i < size; i++) {
pw.increaseIndent();
UserState userState = mUserStates.valueAt(i);
- pw.print(i); pw.print(":"); userState.dump(pw); pw.println();
+ pw.printPair("User", mUserStates.keyAt(i));
+ pw.println();
+ userState.dump(pw);
pw.decreaseIndent();
}
}
- pw.println("Number of active sessions: " + mSessionUserIds.size());
+ pw.println("Number of active sessions: " + mSessionContextCache.size());
}
}
@@ -372,57 +417,55 @@ public final class TextClassificationManagerService extends ITextClassifierServi
@UserIdInt int userId,
@Nullable String callingPackageName,
boolean attemptToBind,
+ boolean useDefaultTextClassifier,
@NonNull ThrowingConsumer<ITextClassifierService> textClassifierServiceConsumer,
@NonNull String methodName,
- @NonNull ITextClassifierCallback callback)
- throws RemoteException {
+ @NonNull ITextClassifierCallback callback) throws RemoteException {
Objects.requireNonNull(textClassifierServiceConsumer);
Objects.requireNonNull(methodName);
Objects.requireNonNull(callback);
- validateInput(mContext, callingPackageName, userId);
+ try {
+ validateCallingPackage(callingPackageName);
+ validateUser(userId);
+ } catch (Exception e) {
+ throw new RemoteException("Invalid request: " + e.getMessage(), e,
+ /* enableSuppression */ true, /* writableStackTrace */ true);
+ }
synchronized (mLock) {
UserState userState = getUserStateLocked(userId);
- if (attemptToBind && !userState.bindLocked()) {
+ ServiceState serviceState =
+ userState.getServiceStateLocked(useDefaultTextClassifier);
+ if (serviceState == null) {
+ Slog.d(LOG_TAG, "No configured system TextClassifierService");
+ callback.onFailure();
+ } else if (attemptToBind && !serviceState.bindLocked()) {
Slog.d(LOG_TAG, "Unable to bind TextClassifierService at " + methodName);
callback.onFailure();
- } else if (userState.isBoundLocked()) {
- if (!userState.checkRequestAcceptedLocked(Binder.getCallingUid(), methodName)) {
+ } else if (serviceState.isBoundLocked()) {
+ if (!serviceState.checkRequestAcceptedLocked(Binder.getCallingUid(), methodName)) {
return;
}
- textClassifierServiceConsumer.accept(userState.mService);
+ textClassifierServiceConsumer.accept(serviceState.mService);
} else {
- userState.mPendingRequests.add(
+ serviceState.mPendingRequests.add(
new PendingRequest(
methodName,
- () -> textClassifierServiceConsumer.accept(userState.mService),
+ () -> textClassifierServiceConsumer.accept(serviceState.mService),
callback::onFailure, callback.asBinder(),
this,
- userState,
+ serviceState,
Binder.getCallingUid()));
}
}
}
- private void unbindServiceIfNecessary() {
- final ComponentName serviceComponentName =
- TextClassifierService.getServiceComponentName(mContext);
- if (serviceComponentName == null) {
- // It should not occur if we had defined default service names in config.xml
- Slog.w(LOG_TAG, "No default configured system TextClassifierService.");
- return;
- }
+ private void onTextClassifierServicePackageOverrideChanged(String overriddenPackage) {
synchronized (mLock) {
final int size = mUserStates.size();
for (int i = 0; i < size; i++) {
UserState userState = mUserStates.valueAt(i);
- // Only unbind for a new service
- if (userState.isCurrentlyBoundToComponentLocked(serviceComponentName)) {
- return;
- }
- if (userState.isBoundLocked()) {
- userState.unbindLocked();
- }
+ userState.onTextClassifierServicePackageOverrideChangedLocked(overriddenPackage);
}
}
}
@@ -430,27 +473,35 @@ public final class TextClassificationManagerService extends ITextClassifierServi
private static final class PendingRequest implements IBinder.DeathRecipient {
private final int mUid;
- @Nullable private final String mName;
- @Nullable private final IBinder mBinder;
- @NonNull private final Runnable mRequest;
- @Nullable private final Runnable mOnServiceFailure;
+ @Nullable
+ private final String mName;
+ @Nullable
+ private final IBinder mBinder;
+ @NonNull
+ private final Runnable mRequest;
+ @Nullable
+ private final Runnable mOnServiceFailure;
@GuardedBy("mLock")
- @NonNull private final UserState mOwningUser;
- @NonNull private final TextClassificationManagerService mService;
+ @NonNull
+ private final ServiceState mServiceState;
+ @NonNull
+ private final TextClassificationManagerService mService;
/**
* Initializes a new pending request.
- * @param request action to perform when the service is bound
+ *
+ * @param request action to perform when the service is bound
* @param onServiceFailure action to perform when the service dies or disconnects
- * @param binder binder to the process that made this pending request
- * @param service
- * @param owningUser
+ * @param binder binder to the process that made this pending request
+ * @parm service the TCMS instance.
+ * @param serviceState the service state of the service that will execute the request.
+ * @param uid the calling uid of the request.
*/
PendingRequest(@Nullable String name,
@NonNull ThrowingRunnable request, @Nullable ThrowingRunnable onServiceFailure,
@Nullable IBinder binder,
- TextClassificationManagerService service,
- UserState owningUser, int uid) {
+ @NonNull TextClassificationManagerService service,
+ @NonNull ServiceState serviceState, int uid) {
mName = name;
mRequest =
logOnFailure(Objects.requireNonNull(request), "handling pending request");
@@ -458,7 +509,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
logOnFailure(onServiceFailure, "notifying callback of service failure");
mBinder = binder;
mService = service;
- mOwningUser = owningUser;
+ mServiceState = Objects.requireNonNull(serviceState);
if (mBinder != null) {
try {
mBinder.linkToDeath(this, 0);
@@ -479,7 +530,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
@GuardedBy("mLock")
private void removeLocked() {
- mOwningUser.mPendingRequests.remove(this);
+ mServiceState.mPendingRequests.remove(this);
if (mBinder != null) {
mBinder.unlinkToDeath(this, 0);
}
@@ -492,59 +543,172 @@ public final class TextClassificationManagerService extends ITextClassifierServi
e -> Slog.d(LOG_TAG, "Error " + opDesc + ": " + e.getMessage()));
}
- private static void validateInput(
- Context context, @Nullable String packageName, @UserIdInt int userId)
- throws RemoteException {
+ private void validateCallingPackage(@Nullable String callingPackage)
+ throws PackageManager.NameNotFoundException {
+ if (callingPackage != null) {
+ final int packageUid = mContext.getPackageManager()
+ .getPackageUidAsUser(callingPackage, UserHandle.getCallingUserId());
+ final int callingUid = Binder.getCallingUid();
+ Preconditions.checkArgument(
+ callingUid == packageUid
+ // Trust the system process:
+ || callingUid == android.os.Process.SYSTEM_UID,
+ "Invalid package name. callingPackage=" + callingPackage
+ + ", callingUid=" + callingUid);
+ }
+ }
- try {
- if (packageName != null) {
- final int packageUid = context.getPackageManager()
- .getPackageUidAsUser(packageName, UserHandle.getCallingUserId());
- final int callingUid = Binder.getCallingUid();
- Preconditions.checkArgument(callingUid == packageUid
- // Trust the system process:
- || callingUid == android.os.Process.SYSTEM_UID,
- "Invalid package name. Package=" + packageName
- + ", CallingUid=" + callingUid);
- }
-
- Preconditions.checkArgument(userId != UserHandle.USER_NULL, "Null userId");
- final int callingUserId = UserHandle.getCallingUserId();
- if (callingUserId != userId) {
- context.enforceCallingOrSelfPermission(
- android.Manifest.permission.INTERACT_ACROSS_USERS_FULL,
- "Invalid userId. UserId=" + userId + ", CallingUserId=" + callingUserId);
- }
- } catch (Exception e) {
- throw new RemoteException("Invalid request: " + e.getMessage(), e,
- /* enableSuppression */ true, /* writableStackTrace */ true);
+ private void validateUser(@UserIdInt int userId) {
+ Preconditions.checkArgument(userId != UserHandle.USER_NULL, "Null userId");
+ final int callingUserId = UserHandle.getCallingUserId();
+ if (callingUserId != userId) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.INTERACT_ACROSS_USERS_FULL,
+ "Invalid userId. UserId=" + userId + ", CallingUserId=" + callingUserId);
}
}
private final class UserState {
- @UserIdInt final int mUserId;
+ @UserIdInt
+ final int mUserId;
+ @Nullable
+ private final ServiceState mDefaultServiceState;
+ @Nullable
+ private final ServiceState mSystemServiceState;
+ @GuardedBy("mLock")
+ @Nullable
+ private ServiceState mUntrustedServiceState;
+
+ private UserState(int userId) {
+ mUserId = userId;
+ mDefaultServiceState = TextUtils.isEmpty(mDefaultTextClassifierPackage)
+ ? null
+ : new ServiceState(userId, mDefaultTextClassifierPackage, /* isTrusted= */true);
+ mSystemServiceState = TextUtils.isEmpty(mSystemTextClassifierPackage)
+ ? null
+ : new ServiceState(userId, mSystemTextClassifierPackage, /* isTrusted= */ true);
+ }
+
+ @GuardedBy("mLock")
+ @Nullable
+ ServiceState getServiceStateLocked(boolean useDefaultTextClassifier) {
+ if (useDefaultTextClassifier) {
+ return mDefaultServiceState;
+ }
+ String textClassifierServicePackageOverride =
+ mSettings.getTextClassifierServicePackageOverride();
+ if (!TextUtils.isEmpty(textClassifierServicePackageOverride)) {
+ if (textClassifierServicePackageOverride.equals(mDefaultTextClassifierPackage)) {
+ return mDefaultServiceState;
+ }
+ if (textClassifierServicePackageOverride.equals(mSystemTextClassifierPackage)
+ && mSystemServiceState != null) {
+ return mSystemServiceState;
+ }
+ if (mUntrustedServiceState == null) {
+ mUntrustedServiceState =
+ new ServiceState(
+ mUserId,
+ textClassifierServicePackageOverride,
+ /* isTrusted= */false);
+ }
+ return mUntrustedServiceState;
+ }
+ return mSystemServiceState != null ? mSystemServiceState : mDefaultServiceState;
+ }
+
+ @GuardedBy("mLock")
+ void onTextClassifierServicePackageOverrideChangedLocked(String overriddenPackageName) {
+ // The override config is just used for testing, and the flag value is not expected
+ // to change often. So, let's keep it simple and just unbind all the services here. The
+ // right service will be bound when the next request comes.
+ for (ServiceState serviceState : getAllServiceStatesLocked()) {
+ serviceState.unbindIfBoundLocked();
+ }
+ mUntrustedServiceState = null;
+ }
+
@GuardedBy("mLock")
- TextClassifierServiceConnection mConnection = null;
+ void bindIfHasPendingRequestsLocked() {
+ for (ServiceState serviceState : getAllServiceStatesLocked()) {
+ serviceState.bindIfHasPendingRequestsLocked();
+ }
+ }
+
+ @GuardedBy("mLock")
+ void cleanupServiceLocked() {
+ for (ServiceState serviceState : getAllServiceStatesLocked()) {
+ if (serviceState.mConnection != null) {
+ serviceState.mConnection.cleanupService();
+ }
+ }
+ }
+
+ @GuardedBy("mLock")
+ @NonNull
+ private List<ServiceState> getAllServiceStatesLocked() {
+ List<ServiceState> serviceStates = new ArrayList<>();
+ if (mDefaultServiceState != null) {
+ serviceStates.add(mDefaultServiceState);
+ }
+ if (mSystemServiceState != null) {
+ serviceStates.add(mSystemServiceState);
+ }
+ if (mUntrustedServiceState != null) {
+ serviceStates.add(mUntrustedServiceState);
+ }
+ return serviceStates;
+ }
+
+ void dump(IndentingPrintWriter pw) {
+ synchronized (mLock) {
+ pw.increaseIndent();
+ dump(pw, mDefaultServiceState, "Default");
+ dump(pw, mSystemServiceState, "System");
+ dump(pw, mUntrustedServiceState, "Untrusted");
+ pw.decreaseIndent();
+ }
+ }
+
+ private void dump(
+ IndentingPrintWriter pw, @Nullable ServiceState serviceState, String name) {
+ synchronized (mLock) {
+ if (serviceState != null) {
+ pw.print(name + ": ");
+ serviceState.dump(pw);
+ pw.println();
+ }
+ }
+ }
+ }
+
+ private final class ServiceState {
+ @UserIdInt
+ final int mUserId;
+ @NonNull
+ final String mPackageName;
+ @NonNull
+ final TextClassifierServiceConnection mConnection;
+ final boolean mIsTrusted;
+ @NonNull
@GuardedBy("mLock")
final Queue<PendingRequest> mPendingRequests = new ArrayDeque<>();
+ @Nullable
@GuardedBy("mLock")
ITextClassifierService mService;
@GuardedBy("mLock")
boolean mBinding;
+ @Nullable
@GuardedBy("mLock")
ComponentName mBoundComponentName = null;
@GuardedBy("mLock")
- boolean mBoundToDefaultTrustService;
- @GuardedBy("mLock")
- int mBoundServiceUid;
-
- private final Context mContext;
- private final Object mLock;
+ int mBoundServiceUid = Process.INVALID_UID;
- private UserState(int userId, Context context, Object lock) {
+ private ServiceState(@UserIdInt int userId, String packageName, boolean isTrusted) {
mUserId = userId;
- mContext = Objects.requireNonNull(context);
- mLock = Objects.requireNonNull(lock);
+ mPackageName = packageName;
+ mConnection = new TextClassifierServiceConnection(mUserId);
+ mIsTrusted = isTrusted;
}
@GuardedBy("mLock")
@@ -581,18 +745,12 @@ public final class TextClassificationManagerService extends ITextClassifierServi
}
@GuardedBy("mLock")
- private boolean isCurrentlyBoundToComponentLocked(@NonNull ComponentName componentName) {
- return (mBoundComponentName != null
- && mBoundComponentName.getPackageName().equals(
- componentName.getPackageName()));
- }
-
- @GuardedBy("mLock")
- private void unbindLocked() {
- Slog.v(LOG_TAG, "unbinding from " + mBoundComponentName + " for " + mUserId);
- mContext.unbindService(mConnection);
- mConnection.cleanupService();
- mConnection = null;
+ void unbindIfBoundLocked() {
+ if (isBoundLocked()) {
+ Slog.v(LOG_TAG, "Unbinding " + mBoundComponentName + " for " + mUserId);
+ mContext.unbindService(mConnection);
+ mConnection.cleanupService();
+ }
}
/**
@@ -609,8 +767,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
final boolean willBind;
final long identity = Binder.clearCallingIdentity();
try {
- final ComponentName componentName =
- TextClassifierService.getServiceComponentName(mContext);
+ final ComponentName componentName = getTextClassifierServiceComponent();
if (componentName == null) {
// Might happen if the storage is encrypted and the user is not unlocked
return false;
@@ -618,7 +775,6 @@ public final class TextClassificationManagerService extends ITextClassifierServi
Intent serviceIntent = new Intent(TextClassifierService.SERVICE_INTERFACE)
.setComponent(componentName);
Slog.d(LOG_TAG, "Binding to " + serviceIntent.getComponent());
- mConnection = new TextClassifierServiceConnection(mUserId);
willBind = mContext.bindServiceAsUser(
serviceIntent, mConnection,
Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE
@@ -631,12 +787,21 @@ public final class TextClassificationManagerService extends ITextClassifierServi
return willBind;
}
+ @Nullable
+ private ComponentName getTextClassifierServiceComponent() {
+ return TextClassifierService.getServiceComponentName(
+ mContext,
+ mPackageName,
+ mIsTrusted ? PackageManager.MATCH_SYSTEM_ONLY : 0);
+ }
+
private void dump(IndentingPrintWriter pw) {
pw.printPair("context", mContext);
pw.printPair("userId", mUserId);
synchronized (mLock) {
+ pw.printPair("packageName", mPackageName);
pw.printPair("boundComponentName", mBoundComponentName);
- pw.printPair("boundToDefaultTrustService", mBoundToDefaultTrustService);
+ pw.printPair("isTrusted", mIsTrusted);
pw.printPair("boundServiceUid", mBoundServiceUid);
pw.printPair("binding", mBinding);
pw.printPair("numberRequests", mPendingRequests.size());
@@ -645,7 +810,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
@GuardedBy("mLock")
private boolean checkRequestAcceptedLocked(int requestUid, @NonNull String methodName) {
- if (mBoundToDefaultTrustService || (requestUid == mBoundServiceUid)) {
+ if (mIsTrusted || (requestUid == mBoundServiceUid)) {
return true;
}
Slog.w(LOG_TAG, String.format(
@@ -654,47 +819,19 @@ public final class TextClassificationManagerService extends ITextClassifierServi
return false;
}
- private boolean isDefaultTrustService(@NonNull ComponentName currentService) {
- final String[] defaultServiceNames =
- mContext.getPackageManager().getSystemTextClassifierPackages();
- final String servicePackageName = currentService.getPackageName();
-
- for (int i = 0; i < defaultServiceNames.length; i++) {
- if (defaultServiceNames[i].equals(servicePackageName)) {
- return true;
- }
- }
- return false;
- }
-
- private int getServiceUid(@Nullable ComponentName service, int userId) {
- if (service == null) {
- return Process.INVALID_UID;
- }
- final String servicePackageName = service.getPackageName();
- final PackageManager pm = mContext.getPackageManager();
- final int serviceUid;
-
- try {
- serviceUid = pm.getPackageUidAsUser(servicePackageName, userId);
- } catch (PackageManager.NameNotFoundException e) {
- Slog.e(LOG_TAG, "Could not verify UID for " + service);
- return Process.INVALID_UID;
- }
- return serviceUid;
- }
-
@GuardedBy("mLock")
private void updateServiceInfoLocked(int userId, @Nullable ComponentName componentName) {
mBoundComponentName = componentName;
- mBoundToDefaultTrustService = (mBoundComponentName != null && isDefaultTrustService(
- mBoundComponentName));
- mBoundServiceUid = getServiceUid(mBoundComponentName, userId);
+ mBoundServiceUid =
+ mBoundComponentName == null
+ ? Process.INVALID_UID
+ : resolvePackageToUid(mBoundComponentName.getPackageName(), userId);
}
private final class TextClassifierServiceConnection implements ServiceConnection {
- @UserIdInt private final int mUserId;
+ @UserIdInt
+ private final int mUserId;
TextClassifierServiceConnection(int userId) {
mUserId = userId;
@@ -745,18 +882,18 @@ public final class TextClassificationManagerService extends ITextClassifierServi
private final class TextClassifierSettingsListener implements
DeviceConfig.OnPropertiesChangedListener {
+ @NonNull
+ private final Context mContext;
+ @Nullable
+ private String mServicePackageOverride;
- @NonNull private final Context mContext;
- @NonNull private final TextClassificationConstants mSettings;
- @Nullable private String mServicePackageName;
TextClassifierSettingsListener(Context context) {
mContext = context;
- mSettings = TextClassificationManager.getSettings(mContext);
- mServicePackageName = mSettings.getTextClassifierServicePackageOverride();
+ mServicePackageOverride = mSettings.getTextClassifierServicePackageOverride();
}
- public void registerObserver() {
+ void registerObserver() {
DeviceConfig.addOnPropertiesChangedListener(
DeviceConfig.NAMESPACE_TEXTCLASSIFIER,
mContext.getMainExecutor(),
@@ -765,13 +902,13 @@ public final class TextClassificationManagerService extends ITextClassifierServi
@Override
public void onPropertiesChanged(DeviceConfig.Properties properties) {
- final String overrideServiceName = mSettings.getTextClassifierServicePackageOverride();
-
- if (TextUtils.equals(overrideServiceName, mServicePackageName)) {
+ final String currentServicePackageOverride =
+ mSettings.getTextClassifierServicePackageOverride();
+ if (TextUtils.equals(currentServicePackageOverride, mServicePackageOverride)) {
return;
}
- mServicePackageName = overrideServiceName;
- unbindServiceIfNecessary();
+ mServicePackageOverride = currentServicePackageOverride;
+ onTextClassifierServicePackageOverrideChanged(currentServicePackageOverride);
}
}
}
diff --git a/services/core/java/com/android/server/timedetector/TimeDetectorService.java b/services/core/java/com/android/server/timedetector/TimeDetectorService.java
index b7d63609cff9..ed6424cb4a30 100644
--- a/services/core/java/com/android/server/timedetector/TimeDetectorService.java
+++ b/services/core/java/com/android/server/timedetector/TimeDetectorService.java
@@ -21,7 +21,7 @@ import android.annotation.Nullable;
import android.app.timedetector.ITimeDetectorService;
import android.app.timedetector.ManualTimeSuggestion;
import android.app.timedetector.NetworkTimeSuggestion;
-import android.app.timedetector.PhoneTimeSuggestion;
+import android.app.timedetector.TelephonyTimeSuggestion;
import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
@@ -37,6 +37,9 @@ import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.Objects;
+/**
+ * The implementation of ITimeDetectorService.aidl.
+ */
public final class TimeDetectorService extends ITimeDetectorService.Stub {
private static final String TAG = "TimeDetectorService";
@@ -75,7 +78,7 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub {
Settings.Global.getUriFor(Settings.Global.AUTO_TIME), true,
new ContentObserver(handler) {
public void onChange(boolean selfChange) {
- timeDetectorService.handleAutoTimeDetectionToggle();
+ timeDetectorService.handleAutoTimeDetectionChanged();
}
});
@@ -91,11 +94,11 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub {
}
@Override
- public void suggestPhoneTime(@NonNull PhoneTimeSuggestion timeSignal) {
- enforceSuggestPhoneTimePermission();
+ public void suggestTelephonyTime(@NonNull TelephonyTimeSuggestion timeSignal) {
+ enforceSuggestTelephonyTimePermission();
Objects.requireNonNull(timeSignal);
- mHandler.post(() -> mTimeDetectorStrategy.suggestPhoneTime(timeSignal));
+ mHandler.post(() -> mTimeDetectorStrategy.suggestTelephonyTime(timeSignal));
}
@Override
@@ -114,8 +117,9 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub {
mHandler.post(() -> mTimeDetectorStrategy.suggestNetworkTime(timeSignal));
}
+ /** Internal method for handling the auto time setting being changed. */
@VisibleForTesting
- public void handleAutoTimeDetectionToggle() {
+ public void handleAutoTimeDetectionChanged() {
mHandler.post(mTimeDetectorStrategy::handleAutoTimeDetectionChanged);
}
@@ -127,10 +131,10 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub {
mTimeDetectorStrategy.dump(pw, args);
}
- private void enforceSuggestPhoneTimePermission() {
+ private void enforceSuggestTelephonyTimePermission() {
mContext.enforceCallingPermission(
- android.Manifest.permission.SUGGEST_PHONE_TIME_AND_ZONE,
- "suggest phone time and time zone");
+ android.Manifest.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE,
+ "suggest telephony time and time zone");
}
private void enforceSuggestManualTimePermission() {
diff --git a/services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java b/services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java
index 468b806d6dce..a5fba4e6ba49 100644
--- a/services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java
+++ b/services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java
@@ -20,14 +20,14 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.timedetector.ManualTimeSuggestion;
import android.app.timedetector.NetworkTimeSuggestion;
-import android.app.timedetector.PhoneTimeSuggestion;
+import android.app.timedetector.TelephonyTimeSuggestion;
import android.os.TimestampedValue;
import java.io.PrintWriter;
/**
- * The interface for classes that implement the time detection algorithm used by the
- * TimeDetectorService.
+ * The interface for the class that implements the time detection algorithm used by the
+ * {@link TimeDetectorService}.
*
* <p>Most calls will be handled by a single thread but that is not true for all calls. For example
* {@link #dump(PrintWriter, String[])}) may be called on a different thread so implementations must
@@ -78,7 +78,7 @@ public interface TimeDetectorStrategy {
void initialize(@NonNull Callback callback);
/** Process the suggested time from telephony sources. */
- void suggestPhoneTime(@NonNull PhoneTimeSuggestion timeSuggestion);
+ void suggestTelephonyTime(@NonNull TelephonyTimeSuggestion timeSuggestion);
/** Process the suggested manually entered time. */
void suggestManualTime(@NonNull ManualTimeSuggestion timeSuggestion);
diff --git a/services/core/java/com/android/server/timedetector/TimeDetectorStrategyImpl.java b/services/core/java/com/android/server/timedetector/TimeDetectorStrategyImpl.java
index e95fc4a4a938..8c54fa95e04b 100644
--- a/services/core/java/com/android/server/timedetector/TimeDetectorStrategyImpl.java
+++ b/services/core/java/com/android/server/timedetector/TimeDetectorStrategyImpl.java
@@ -22,7 +22,7 @@ import android.annotation.Nullable;
import android.app.AlarmManager;
import android.app.timedetector.ManualTimeSuggestion;
import android.app.timedetector.NetworkTimeSuggestion;
-import android.app.timedetector.PhoneTimeSuggestion;
+import android.app.timedetector.TelephonyTimeSuggestion;
import android.os.TimestampedValue;
import android.util.LocalLog;
import android.util.Slog;
@@ -38,9 +38,9 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
- * An implementation of TimeDetectorStrategy that passes phone and manual suggestions to
- * {@link AlarmManager}. When there are multiple phone sources, the one with the lowest ID is used
- * unless the data becomes too stale.
+ * An implementation of {@link TimeDetectorStrategy} that passes telephony and manual suggestions to
+ * {@link AlarmManager}. When there are multiple telephony sources, the one with the lowest ID is
+ * used unless the data becomes too stale.
*
* <p>Most public methods are marked synchronized to ensure thread safety around internal state.
*/
@@ -50,23 +50,26 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
private static final String LOG_TAG = "SimpleTimeDetectorStrategy";
/** A score value used to indicate "no score", either due to validation failure or age. */
- private static final int PHONE_INVALID_SCORE = -1;
- /** The number of buckets phone suggestions can be put in by age. */
- private static final int PHONE_BUCKET_COUNT = 24;
+ private static final int TELEPHONY_INVALID_SCORE = -1;
+ /** The number of buckets telephony suggestions can be put in by age. */
+ private static final int TELEPHONY_BUCKET_COUNT = 24;
/** Each bucket is this size. All buckets are equally sized. */
@VisibleForTesting
- static final int PHONE_BUCKET_SIZE_MILLIS = 60 * 60 * 1000;
- /** Phone and network suggestions older than this value are considered too old to be used. */
+ static final int TELEPHONY_BUCKET_SIZE_MILLIS = 60 * 60 * 1000;
+ /**
+ * Telephony and network suggestions older than this value are considered too old to be used.
+ */
@VisibleForTesting
- static final long MAX_UTC_TIME_AGE_MILLIS = PHONE_BUCKET_COUNT * PHONE_BUCKET_SIZE_MILLIS;
+ static final long MAX_UTC_TIME_AGE_MILLIS =
+ TELEPHONY_BUCKET_COUNT * TELEPHONY_BUCKET_SIZE_MILLIS;
- @IntDef({ ORIGIN_PHONE, ORIGIN_MANUAL, ORIGIN_NETWORK })
+ @IntDef({ ORIGIN_TELEPHONY, ORIGIN_MANUAL, ORIGIN_NETWORK })
@Retention(RetentionPolicy.SOURCE)
public @interface Origin {}
/** Used when a time value originated from a telephony signal. */
@Origin
- private static final int ORIGIN_PHONE = 1;
+ private static final int ORIGIN_TELEPHONY = 1;
/** Used when a time value originated from a user / manual settings. */
@Origin
@@ -83,7 +86,9 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
*/
private static final long SYSTEM_CLOCK_PARANOIA_THRESHOLD_MILLIS = 2 * 1000;
- /** The number of previous phone suggestions to keep for each ID (for use during debugging). */
+ /**
+ * The number of previous telephony suggestions to keep for each ID (for use during debugging).
+ */
private static final int KEEP_SUGGESTION_HISTORY_SIZE = 30;
// A log for changes made to the system clock and why.
@@ -101,11 +106,12 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
private TimestampedValue<Long> mLastAutoSystemClockTimeSet;
/**
- * A mapping from phoneId to a time suggestion. We typically expect one or two mappings: devices
- * will have a small number of telephony devices and phoneIds are assumed to be stable.
+ * A mapping from slotIndex to a time suggestion. We typically expect one or two mappings:
+ * devices will have a small number of telephony devices and slotIndexs are assumed to be
+ * stable.
*/
@GuardedBy("this")
- private final ArrayMapWithHistory<Integer, PhoneTimeSuggestion> mSuggestionByPhoneId =
+ private final ArrayMapWithHistory<Integer, TelephonyTimeSuggestion> mSuggestionBySlotIndex =
new ArrayMapWithHistory<>(KEEP_SUGGESTION_HISTORY_SIZE);
@GuardedBy("this")
@@ -143,7 +149,7 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
}
@Override
- public synchronized void suggestPhoneTime(@NonNull PhoneTimeSuggestion timeSuggestion) {
+ public synchronized void suggestTelephonyTime(@NonNull TelephonyTimeSuggestion timeSuggestion) {
// Empty time suggestion means that telephony network connectivity has been lost.
// The passage of time is relentless, and we don't expect our users to use a time machine,
// so we can continue relying on previous suggestions when we lose connectivity. This is
@@ -155,14 +161,14 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
}
// Perform validation / input filtering and record the validated suggestion against the
- // phoneId.
- if (!validateAndStorePhoneSuggestion(timeSuggestion)) {
+ // slotIndex.
+ if (!validateAndStoreTelephonySuggestion(timeSuggestion)) {
return;
}
// Now perform auto time detection. The new suggestion may be used to modify the system
// clock.
- String reason = "New phone time suggested. timeSuggestion=" + timeSuggestion;
+ String reason = "New telephony time suggested. timeSuggestion=" + timeSuggestion;
doAutoTimeDetection(reason);
}
@@ -200,9 +206,9 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
mTimeChangesLog.dump(ipw);
ipw.decreaseIndent(); // level 2
- ipw.println("Phone suggestion history:");
+ ipw.println("Telephony suggestion history:");
ipw.increaseIndent(); // level 2
- mSuggestionByPhoneId.dump(ipw);
+ mSuggestionBySlotIndex.dump(ipw);
ipw.decreaseIndent(); // level 2
ipw.println("Network suggestion history:");
@@ -215,7 +221,8 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
}
@GuardedBy("this")
- private boolean validateAndStorePhoneSuggestion(@NonNull PhoneTimeSuggestion suggestion) {
+ private boolean validateAndStoreTelephonySuggestion(
+ @NonNull TelephonyTimeSuggestion suggestion) {
TimestampedValue<Long> newUtcTime = suggestion.getUtcTime();
if (!validateSuggestionTime(newUtcTime, suggestion)) {
// There's probably nothing useful we can do: elsewhere we assume that reference
@@ -223,8 +230,8 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
return false;
}
- int phoneId = suggestion.getPhoneId();
- PhoneTimeSuggestion previousSuggestion = mSuggestionByPhoneId.get(phoneId);
+ int slotIndex = suggestion.getSlotIndex();
+ TelephonyTimeSuggestion previousSuggestion = mSuggestionBySlotIndex.get(slotIndex);
if (previousSuggestion != null) {
// We can log / discard suggestions with obvious issues with the reference time clock.
if (previousSuggestion.getUtcTime() == null
@@ -240,7 +247,7 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
newUtcTime, previousSuggestion.getUtcTime());
if (referenceTimeDifference < 0) {
// The reference time is before the previously received suggestion. Ignore it.
- Slog.w(LOG_TAG, "Out of order phone suggestion received."
+ Slog.w(LOG_TAG, "Out of order telephony suggestion received."
+ " referenceTimeDifference=" + referenceTimeDifference
+ " previousSuggestion=" + previousSuggestion
+ " suggestion=" + suggestion);
@@ -249,7 +256,7 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
}
// Store the latest suggestion.
- mSuggestionByPhoneId.put(phoneId, suggestion);
+ mSuggestionBySlotIndex.put(slotIndex, suggestion);
return true;
}
@@ -281,18 +288,18 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
// Android devices currently prioritize any telephony over network signals. There are
// carrier compliance tests that would need to be changed before we could ignore NITZ or
- // prefer NTP generally. This check is cheap on devices without phone hardware.
- PhoneTimeSuggestion bestPhoneSuggestion = findBestPhoneSuggestion();
- if (bestPhoneSuggestion != null) {
- final TimestampedValue<Long> newUtcTime = bestPhoneSuggestion.getUtcTime();
- String cause = "Found good phone suggestion."
- + ", bestPhoneSuggestion=" + bestPhoneSuggestion
+ // prefer NTP generally. This check is cheap on devices without telephony hardware.
+ TelephonyTimeSuggestion bestTelephonySuggestion = findBestTelephonySuggestion();
+ if (bestTelephonySuggestion != null) {
+ final TimestampedValue<Long> newUtcTime = bestTelephonySuggestion.getUtcTime();
+ String cause = "Found good telephony suggestion."
+ + ", bestTelephonySuggestion=" + bestTelephonySuggestion
+ ", detectionReason=" + detectionReason;
- setSystemClockIfRequired(ORIGIN_PHONE, newUtcTime, cause);
+ setSystemClockIfRequired(ORIGIN_TELEPHONY, newUtcTime, cause);
return;
}
- // There is no good phone suggestion, try network.
+ // There is no good telephony suggestion, try network.
NetworkTimeSuggestion networkSuggestion = findLatestValidNetworkSuggestion();
if (networkSuggestion != null) {
final TimestampedValue<Long> newUtcTime = networkSuggestion.getUtcTime();
@@ -304,18 +311,18 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
}
if (DBG) {
- Slog.d(LOG_TAG, "Could not determine time: No best phone or network suggestion."
+ Slog.d(LOG_TAG, "Could not determine time: No best telephony or network suggestion."
+ " detectionReason=" + detectionReason);
}
}
@GuardedBy("this")
@Nullable
- private PhoneTimeSuggestion findBestPhoneSuggestion() {
+ private TelephonyTimeSuggestion findBestTelephonySuggestion() {
long elapsedRealtimeMillis = mCallback.elapsedRealtimeMillis();
- // Phone time suggestions are assumed to be derived from NITZ or NITZ-like signals. These
- // have a number of limitations:
+ // Telephony time suggestions are assumed to be derived from NITZ or NITZ-like signals.
+ // These have a number of limitations:
// 1) No guarantee of accuracy ("accuracy of the time information is in the order of
// minutes") [1]
// 2) No guarantee of regular signals ("dependent on the handset crossing radio network
@@ -323,36 +330,36 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
//
// [1] https://en.wikipedia.org/wiki/NITZ
//
- // Generally, when there are suggestions from multiple phoneIds they should usually
+ // Generally, when there are suggestions from multiple slotIndexs they should usually
// approximately agree. In cases where signals *are* inaccurate we don't want to vacillate
- // between signals from two phoneIds. However, it is known for NITZ signals to be incorrect
- // occasionally, which means we also don't want to stick forever with one phoneId. Without
- // cross-referencing across sources (e.g. the current device time, NTP), or doing some kind
- // of statistical analysis of consistency within and across phoneIds, we can't know which
- // suggestions are more correct.
+ // between signals from two slotIndexs. However, it is known for NITZ signals to be
+ // incorrect occasionally, which means we also don't want to stick forever with one
+ // slotIndex. Without cross-referencing across sources (e.g. the current device time, NTP),
+ // or doing some kind of statistical analysis of consistency within and across slotIndexs,
+ // we can't know which suggestions are more correct.
//
- // For simplicity, we try to value recency, then consistency of phoneId.
+ // For simplicity, we try to value recency, then consistency of slotIndex.
//
// The heuristic works as follows:
- // Recency: The most recent suggestion from each phone is scored. The score is based on a
- // discrete age bucket, i.e. so signals received around the same time will be in the same
+ // Recency: The most recent suggestion from each slotIndex is scored. The score is based on
+ // a discrete age bucket, i.e. so signals received around the same time will be in the same
// bucket, thus applying a loose reference time ordering. The suggestion with the highest
// score is used.
// Consistency: If there a multiple suggestions with the same score, the suggestion with the
- // lowest phoneId is always taken.
+ // lowest slotIndex is always taken.
//
// In the trivial case with a single ID this will just mean that the latest received
// suggestion is used.
- PhoneTimeSuggestion bestSuggestion = null;
- int bestScore = PHONE_INVALID_SCORE;
- for (int i = 0; i < mSuggestionByPhoneId.size(); i++) {
- Integer phoneId = mSuggestionByPhoneId.keyAt(i);
- PhoneTimeSuggestion candidateSuggestion = mSuggestionByPhoneId.valueAt(i);
+ TelephonyTimeSuggestion bestSuggestion = null;
+ int bestScore = TELEPHONY_INVALID_SCORE;
+ for (int i = 0; i < mSuggestionBySlotIndex.size(); i++) {
+ Integer slotIndex = mSuggestionBySlotIndex.keyAt(i);
+ TelephonyTimeSuggestion candidateSuggestion = mSuggestionBySlotIndex.valueAt(i);
if (candidateSuggestion == null) {
// Unexpected - null suggestions should never be stored.
- Slog.w(LOG_TAG, "Latest suggestion unexpectedly null for phoneId."
- + " phoneId=" + phoneId);
+ Slog.w(LOG_TAG, "Latest suggestion unexpectedly null for slotIndex."
+ + " slotIndex=" + slotIndex);
continue;
} else if (candidateSuggestion.getUtcTime() == null) {
// Unexpected - we do not store empty suggestions.
@@ -361,8 +368,9 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
continue;
}
- int candidateScore = scorePhoneSuggestion(elapsedRealtimeMillis, candidateSuggestion);
- if (candidateScore == PHONE_INVALID_SCORE) {
+ int candidateScore =
+ scoreTelephonySuggestion(elapsedRealtimeMillis, candidateSuggestion);
+ if (candidateScore == TELEPHONY_INVALID_SCORE) {
// Expected: This means the suggestion is obviously invalid or just too old.
continue;
}
@@ -372,10 +380,10 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
bestSuggestion = candidateSuggestion;
bestScore = candidateScore;
} else if (bestScore == candidateScore) {
- // Tie! Use the suggestion with the lowest phoneId.
- int candidatePhoneId = candidateSuggestion.getPhoneId();
- int bestPhoneId = bestSuggestion.getPhoneId();
- if (candidatePhoneId < bestPhoneId) {
+ // Tie! Use the suggestion with the lowest slotIndex.
+ int candidateSlotIndex = candidateSuggestion.getSlotIndex();
+ int bestSlotIndex = bestSuggestion.getSlotIndex();
+ if (candidateSlotIndex < bestSlotIndex) {
bestSuggestion = candidateSuggestion;
}
}
@@ -383,8 +391,8 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
return bestSuggestion;
}
- private static int scorePhoneSuggestion(
- long elapsedRealtimeMillis, @NonNull PhoneTimeSuggestion timeSuggestion) {
+ private static int scoreTelephonySuggestion(
+ long elapsedRealtimeMillis, @NonNull TelephonyTimeSuggestion timeSuggestion) {
// Validate first.
TimestampedValue<Long> utcTime = timeSuggestion.getUtcTime();
@@ -392,21 +400,21 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
Slog.w(LOG_TAG, "Existing suggestion found to be invalid "
+ " elapsedRealtimeMillis=" + elapsedRealtimeMillis
+ ", timeSuggestion=" + timeSuggestion);
- return PHONE_INVALID_SCORE;
+ return TELEPHONY_INVALID_SCORE;
}
// The score is based on the age since receipt. Suggestions are bucketed so two
- // suggestions in the same bucket from different phoneIds are scored the same.
+ // suggestions in the same bucket from different slotIndexs are scored the same.
long ageMillis = elapsedRealtimeMillis - utcTime.getReferenceTimeMillis();
- // Turn the age into a discrete value: 0 <= bucketIndex < PHONE_BUCKET_COUNT.
- int bucketIndex = (int) (ageMillis / PHONE_BUCKET_SIZE_MILLIS);
- if (bucketIndex >= PHONE_BUCKET_COUNT) {
- return PHONE_INVALID_SCORE;
+ // Turn the age into a discrete value: 0 <= bucketIndex < TELEPHONY_BUCKET_COUNT.
+ int bucketIndex = (int) (ageMillis / TELEPHONY_BUCKET_SIZE_MILLIS);
+ if (bucketIndex >= TELEPHONY_BUCKET_COUNT) {
+ return TELEPHONY_INVALID_SCORE;
}
// We want the lowest bucket index to have the highest score. 0 > score >= BUCKET_COUNT.
- return PHONE_BUCKET_COUNT - bucketIndex;
+ return TELEPHONY_BUCKET_COUNT - bucketIndex;
}
/** Returns the latest, valid, network suggestion. Returns {@code null} if there isn't one. */
@@ -536,13 +544,13 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
}
/**
- * Returns the current best phone suggestion. Not intended for general use: it is used during
- * tests to check strategy behavior.
+ * Returns the current best telephony suggestion. Not intended for general use: it is used
+ * during tests to check strategy behavior.
*/
@VisibleForTesting
@Nullable
- public synchronized PhoneTimeSuggestion findBestPhoneSuggestionForTests() {
- return findBestPhoneSuggestion();
+ public synchronized TelephonyTimeSuggestion findBestTelephonySuggestionForTests() {
+ return findBestTelephonySuggestion();
}
/**
@@ -560,8 +568,8 @@ public final class TimeDetectorStrategyImpl implements TimeDetectorStrategy {
*/
@VisibleForTesting
@Nullable
- public synchronized PhoneTimeSuggestion getLatestPhoneSuggestion(int phoneId) {
- return mSuggestionByPhoneId.get(phoneId);
+ public synchronized TelephonyTimeSuggestion getLatestTelephonySuggestion(int slotIndex) {
+ return mSuggestionBySlotIndex.get(slotIndex);
}
/**
diff --git a/services/core/java/com/android/server/timezone/RulesManagerService.java b/services/core/java/com/android/server/timezone/RulesManagerService.java
index cdf8ea3460c4..bbd1ae60cb62 100644
--- a/services/core/java/com/android/server/timezone/RulesManagerService.java
+++ b/services/core/java/com/android/server/timezone/RulesManagerService.java
@@ -198,7 +198,7 @@ public final class RulesManagerService extends IRulesManager.Stub {
Slog.w(TAG, "Failed to read staged distro.", e);
}
}
- return new RulesState(baseVersion.rulesVersion, DISTRO_FORMAT_VERSION_SUPPORTED,
+ return new RulesState(baseVersion.getRulesVersion(), DISTRO_FORMAT_VERSION_SUPPORTED,
operationInProgress, stagedOperationStatus, stagedDistroRulesVersion,
distroStatus, installedDistroRulesVersion);
}
diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorCallbackImpl.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorCallbackImpl.java
index adf6d7e51f4f..2520316b5d54 100644
--- a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorCallbackImpl.java
+++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorCallbackImpl.java
@@ -24,9 +24,9 @@ import android.os.SystemProperties;
import android.provider.Settings;
/**
- * The real implementation of {@link TimeZoneDetectorStrategy.Callback}.
+ * The real implementation of {@link TimeZoneDetectorStrategyImpl.Callback}.
*/
-public final class TimeZoneDetectorCallbackImpl implements TimeZoneDetectorStrategy.Callback {
+public final class TimeZoneDetectorCallbackImpl implements TimeZoneDetectorStrategyImpl.Callback {
private static final String TIMEZONE_PROPERTY = "persist.sys.timezone";
diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java
index 9a1fe6501221..57b6ec9062a8 100644
--- a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java
+++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java
@@ -20,7 +20,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.timezonedetector.ITimeZoneDetectorService;
import android.app.timezonedetector.ManualTimeZoneSuggestion;
-import android.app.timezonedetector.PhoneTimeZoneSuggestion;
+import android.app.timezonedetector.TelephonyTimeZoneSuggestion;
import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
@@ -67,19 +67,21 @@ public final class TimeZoneDetectorService extends ITimeZoneDetectorService.Stub
private static TimeZoneDetectorService create(@NonNull Context context) {
final TimeZoneDetectorStrategy timeZoneDetectorStrategy =
- TimeZoneDetectorStrategy.create(context);
+ TimeZoneDetectorStrategyImpl.create(context);
Handler handler = FgThread.getHandler();
+ TimeZoneDetectorService service =
+ new TimeZoneDetectorService(context, handler, timeZoneDetectorStrategy);
+
ContentResolver contentResolver = context.getContentResolver();
contentResolver.registerContentObserver(
Settings.Global.getUriFor(Settings.Global.AUTO_TIME_ZONE), true,
new ContentObserver(handler) {
public void onChange(boolean selfChange) {
- timeZoneDetectorStrategy.handleAutoTimeZoneDetectionChange();
+ service.handleAutoTimeZoneDetectionChanged();
}
});
-
- return new TimeZoneDetectorService(context, handler, timeZoneDetectorStrategy);
+ return service;
}
@VisibleForTesting
@@ -99,11 +101,11 @@ public final class TimeZoneDetectorService extends ITimeZoneDetectorService.Stub
}
@Override
- public void suggestPhoneTimeZone(@NonNull PhoneTimeZoneSuggestion timeZoneSuggestion) {
- enforceSuggestPhoneTimeZonePermission();
+ public void suggestTelephonyTimeZone(@NonNull TelephonyTimeZoneSuggestion timeZoneSuggestion) {
+ enforceSuggestTelephonyTimeZonePermission();
Objects.requireNonNull(timeZoneSuggestion);
- mHandler.post(() -> mTimeZoneDetectorStrategy.suggestPhoneTimeZone(timeZoneSuggestion));
+ mHandler.post(() -> mTimeZoneDetectorStrategy.suggestTelephonyTimeZone(timeZoneSuggestion));
}
@Override
@@ -111,17 +113,25 @@ public final class TimeZoneDetectorService extends ITimeZoneDetectorService.Stub
@Nullable String[] args) {
if (!DumpUtils.checkDumpPermission(mContext, TAG, pw)) return;
- mTimeZoneDetectorStrategy.dumpState(pw, args);
+ mTimeZoneDetectorStrategy.dump(pw, args);
+ }
+
+ /** Internal method for handling the auto time zone setting being changed. */
+ @VisibleForTesting
+ public void handleAutoTimeZoneDetectionChanged() {
+ mHandler.post(mTimeZoneDetectorStrategy::handleAutoTimeZoneDetectionChanged);
}
- private void enforceSuggestPhoneTimeZonePermission() {
+ private void enforceSuggestTelephonyTimeZonePermission() {
mContext.enforceCallingPermission(
- android.Manifest.permission.SET_TIME_ZONE, "set time zone");
+ android.Manifest.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE,
+ "suggest telephony time and time zone");
}
private void enforceSuggestManualTimeZonePermission() {
mContext.enforceCallingOrSelfPermission(
- android.Manifest.permission.SET_TIME_ZONE, "set time zone");
+ android.Manifest.permission.SUGGEST_MANUAL_TIME_AND_ZONE,
+ "suggest manual time and time zone");
}
}
diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategy.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategy.java
index b4a439991dd9..0eb27cc5cff0 100644
--- a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategy.java
+++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategy.java
@@ -15,506 +15,44 @@
*/
package com.android.server.timezonedetector;
-import static android.app.timezonedetector.PhoneTimeZoneSuggestion.MATCH_TYPE_EMULATOR_ZONE_ID;
-import static android.app.timezonedetector.PhoneTimeZoneSuggestion.MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY;
-import static android.app.timezonedetector.PhoneTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS;
-import static android.app.timezonedetector.PhoneTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET;
-import static android.app.timezonedetector.PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE;
-
-import android.annotation.IntDef;
import android.annotation.NonNull;
-import android.annotation.Nullable;
import android.app.timezonedetector.ManualTimeZoneSuggestion;
-import android.app.timezonedetector.PhoneTimeZoneSuggestion;
-import android.content.Context;
-import android.util.LocalLog;
-import android.util.Slog;
-
-import com.android.internal.annotations.GuardedBy;
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.util.IndentingPrintWriter;
+import android.app.timezonedetector.TelephonyTimeZoneSuggestion;
import java.io.PrintWriter;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.Objects;
/**
- * A singleton, stateful time zone detection strategy that is aware of user (manual) suggestions and
- * suggestions from multiple phone devices. Suggestions are acted on or ignored as needed, dependent
- * on the current "auto time zone detection" setting.
+ * The interface for the class that implement the time detection algorithm used by the
+ * {@link TimeZoneDetectorService}.
+ *
+ * <p>Most calls will be handled by a single thread but that is not true for all calls. For example
+ * {@link #dump(PrintWriter, String[])}) may be called on a different thread so implementations must
+ * handle thread safety.
*
- * <p>For automatic detection it keeps track of the most recent suggestion from each phone it uses
- * the best suggestion based on a scoring algorithm. If several phones provide the same score then
- * the phone with the lowest numeric ID "wins". If the situation changes and it is no longer
- * possible to be confident about the time zone, phones must submit an empty suggestion in order to
- * "withdraw" their previous suggestion.
+ * @hide
*/
-public class TimeZoneDetectorStrategy {
-
- /**
- * Used by {@link TimeZoneDetectorStrategy} to interact with the surrounding service. It can be
- * faked for tests.
- *
- * <p>Note: Because the system properties-derived values like
- * {@link #isAutoTimeZoneDetectionEnabled()}, {@link #isAutoTimeZoneDetectionEnabled()},
- * {@link #getDeviceTimeZone()} can be modified independently and from different threads (and
- * processes!), their use are prone to race conditions. That will be true until the
- * responsibility for setting their values is moved to {@link TimeZoneDetectorStrategy}.
- */
- @VisibleForTesting
- public interface Callback {
-
- /**
- * Returns true if automatic time zone detection is enabled in settings.
- */
- boolean isAutoTimeZoneDetectionEnabled();
-
- /**
- * Returns true if the device has had an explicit time zone set.
- */
- boolean isDeviceTimeZoneInitialized();
-
- /**
- * Returns the device's currently configured time zone.
- */
- String getDeviceTimeZone();
-
- /**
- * Sets the device's time zone.
- */
- void setDeviceTimeZone(@NonNull String zoneId);
- }
-
- private static final String LOG_TAG = "TimeZoneDetectorStrategy";
- private static final boolean DBG = false;
+public interface TimeZoneDetectorStrategy {
- @IntDef({ ORIGIN_PHONE, ORIGIN_MANUAL })
- @Retention(RetentionPolicy.SOURCE)
- public @interface Origin {}
-
- /** Used when a time value originated from a telephony signal. */
- @Origin
- private static final int ORIGIN_PHONE = 1;
-
- /** Used when a time value originated from a user / manual settings. */
- @Origin
- private static final int ORIGIN_MANUAL = 2;
-
- /**
- * The abstract score for an empty or invalid phone suggestion.
- *
- * Used to score phone suggestions where there is no zone.
- */
- @VisibleForTesting
- public static final int PHONE_SCORE_NONE = 0;
-
- /**
- * The abstract score for a low quality phone suggestion.
- *
- * Used to score suggestions where:
- * The suggested zone ID is one of several possibilities, and the possibilities have different
- * offsets.
- *
- * You would have to be quite desperate to want to use this choice.
- */
- @VisibleForTesting
- public static final int PHONE_SCORE_LOW = 1;
-
- /**
- * The abstract score for a medium quality phone suggestion.
- *
- * Used for:
- * The suggested zone ID is one of several possibilities but at least the possibilities have the
- * same offset. Users would get the correct time but for the wrong reason. i.e. their device may
- * switch to DST at the wrong time and (for example) their calendar events.
- */
- @VisibleForTesting
- public static final int PHONE_SCORE_MEDIUM = 2;
-
- /**
- * The abstract score for a high quality phone suggestion.
- *
- * Used for:
- * The suggestion was for one zone ID and the answer was unambiguous and likely correct given
- * the info available.
- */
- @VisibleForTesting
- public static final int PHONE_SCORE_HIGH = 3;
-
- /**
- * The abstract score for a highest quality phone suggestion.
- *
- * Used for:
- * Suggestions that must "win" because they constitute test or emulator zone ID.
- */
- @VisibleForTesting
- public static final int PHONE_SCORE_HIGHEST = 4;
-
- /**
- * The threshold at which phone suggestions are good enough to use to set the device's time
- * zone.
- */
- @VisibleForTesting
- public static final int PHONE_SCORE_USAGE_THRESHOLD = PHONE_SCORE_MEDIUM;
-
- /** The number of previous phone suggestions to keep for each ID (for use during debugging). */
- private static final int KEEP_PHONE_SUGGESTION_HISTORY_SIZE = 30;
-
- @NonNull
- private final Callback mCallback;
-
- /**
- * A log that records the decisions / decision metadata that affected the device's time zone
- * (for use during debugging).
- */
- @NonNull
- private final LocalLog mTimeZoneChangesLog = new LocalLog(30, false /* useLocalTimestamps */);
-
- /**
- * A mapping from phoneId to a phone time zone suggestion. We typically expect one or two
- * mappings: devices will have a small number of telephony devices and phoneIds are assumed to
- * be stable.
- */
- @GuardedBy("this")
- private ArrayMapWithHistory<Integer, QualifiedPhoneTimeZoneSuggestion> mSuggestionByPhoneId =
- new ArrayMapWithHistory<>(KEEP_PHONE_SUGGESTION_HISTORY_SIZE);
-
- /**
- * Creates a new instance of {@link TimeZoneDetectorStrategy}.
- */
- public static TimeZoneDetectorStrategy create(Context context) {
- Callback timeZoneDetectionServiceHelper = new TimeZoneDetectorCallbackImpl(context);
- return new TimeZoneDetectorStrategy(timeZoneDetectionServiceHelper);
- }
-
- @VisibleForTesting
- public TimeZoneDetectorStrategy(Callback callback) {
- mCallback = Objects.requireNonNull(callback);
- }
-
- /** Process the suggested manually- / user-entered time zone. */
- public synchronized void suggestManualTimeZone(@NonNull ManualTimeZoneSuggestion suggestion) {
- Objects.requireNonNull(suggestion);
-
- String timeZoneId = suggestion.getZoneId();
- String cause = "Manual time suggestion received: suggestion=" + suggestion;
- setDeviceTimeZoneIfRequired(ORIGIN_MANUAL, timeZoneId, cause);
- }
+ /** Process the suggested manually-entered (i.e. user sourced) time zone. */
+ void suggestManualTimeZone(@NonNull ManualTimeZoneSuggestion suggestion);
/**
* Suggests a time zone for the device, or withdraws a previous suggestion if
- * {@link PhoneTimeZoneSuggestion#getZoneId()} is {@code null}. The suggestion is scoped to a
- * specific {@link PhoneTimeZoneSuggestion#getPhoneId() phone}.
- * See {@link PhoneTimeZoneSuggestion} for an explanation of the metadata associated with a
+ * {@link TelephonyTimeZoneSuggestion#getZoneId()} is {@code null}. The suggestion is scoped to
+ * a specific {@link TelephonyTimeZoneSuggestion#getSlotIndex() slotIndex}.
+ * See {@link TelephonyTimeZoneSuggestion} for an explanation of the metadata associated with a
* suggestion. The strategy uses suggestions to decide whether to modify the device's time zone
* setting and what to set it to.
*/
- public synchronized void suggestPhoneTimeZone(@NonNull PhoneTimeZoneSuggestion suggestion) {
- if (DBG) {
- Slog.d(LOG_TAG, "Phone suggestion received. newSuggestion=" + suggestion);
- }
- Objects.requireNonNull(suggestion);
-
- // Score the suggestion.
- int score = scorePhoneSuggestion(suggestion);
- QualifiedPhoneTimeZoneSuggestion scoredSuggestion =
- new QualifiedPhoneTimeZoneSuggestion(suggestion, score);
-
- // Store the suggestion against the correct phoneId.
- mSuggestionByPhoneId.put(suggestion.getPhoneId(), scoredSuggestion);
-
- // Now perform auto time zone detection. The new suggestion may be used to modify the time
- // zone setting.
- String reason = "New phone time suggested. suggestion=" + suggestion;
- doAutoTimeZoneDetection(reason);
- }
-
- private static int scorePhoneSuggestion(@NonNull PhoneTimeZoneSuggestion suggestion) {
- int score;
- if (suggestion.getZoneId() == null) {
- score = PHONE_SCORE_NONE;
- } else if (suggestion.getMatchType() == MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY
- || suggestion.getMatchType() == MATCH_TYPE_EMULATOR_ZONE_ID) {
- // Handle emulator / test cases : These suggestions should always just be used.
- score = PHONE_SCORE_HIGHEST;
- } else if (suggestion.getQuality() == QUALITY_SINGLE_ZONE) {
- score = PHONE_SCORE_HIGH;
- } else if (suggestion.getQuality() == QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET) {
- // The suggestion may be wrong, but at least the offset should be correct.
- score = PHONE_SCORE_MEDIUM;
- } else if (suggestion.getQuality() == QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS) {
- // The suggestion has a good chance of being wrong.
- score = PHONE_SCORE_LOW;
- } else {
- throw new AssertionError();
- }
- return score;
- }
-
- /**
- * Finds the best available time zone suggestion from all phones. If it is high-enough quality
- * and automatic time zone detection is enabled then it will be set on the device. The outcome
- * can be that this strategy becomes / remains un-opinionated and nothing is set.
- */
- @GuardedBy("this")
- private void doAutoTimeZoneDetection(@NonNull String detectionReason) {
- if (!mCallback.isAutoTimeZoneDetectionEnabled()) {
- // Avoid doing unnecessary work with this (race-prone) check.
- return;
- }
-
- QualifiedPhoneTimeZoneSuggestion bestPhoneSuggestion = findBestPhoneSuggestion();
-
- // Work out what to do with the best suggestion.
- if (bestPhoneSuggestion == null) {
- // There is no phone suggestion available at all. Become un-opinionated.
- if (DBG) {
- Slog.d(LOG_TAG, "Could not determine time zone: No best phone suggestion."
- + " detectionReason=" + detectionReason);
- }
- return;
- }
-
- // Special case handling for uninitialized devices. This should only happen once.
- String newZoneId = bestPhoneSuggestion.suggestion.getZoneId();
- if (newZoneId != null && !mCallback.isDeviceTimeZoneInitialized()) {
- String cause = "Device has no time zone set. Attempting to set the device to the best"
- + " available suggestion."
- + " bestPhoneSuggestion=" + bestPhoneSuggestion
- + ", detectionReason=" + detectionReason;
- Slog.i(LOG_TAG, cause);
- setDeviceTimeZoneIfRequired(ORIGIN_PHONE, newZoneId, cause);
- return;
- }
-
- boolean suggestionGoodEnough = bestPhoneSuggestion.score >= PHONE_SCORE_USAGE_THRESHOLD;
- if (!suggestionGoodEnough) {
- if (DBG) {
- Slog.d(LOG_TAG, "Best suggestion not good enough."
- + " bestPhoneSuggestion=" + bestPhoneSuggestion
- + ", detectionReason=" + detectionReason);
- }
- return;
- }
-
- // Paranoia: Every suggestion above the SCORE_USAGE_THRESHOLD should have a non-null time
- // zone ID.
- if (newZoneId == null) {
- Slog.w(LOG_TAG, "Empty zone suggestion scored higher than expected. This is an error:"
- + " bestPhoneSuggestion=" + bestPhoneSuggestion
- + " detectionReason=" + detectionReason);
- return;
- }
-
- String zoneId = bestPhoneSuggestion.suggestion.getZoneId();
- String cause = "Found good suggestion."
- + ", bestPhoneSuggestion=" + bestPhoneSuggestion
- + ", detectionReason=" + detectionReason;
- setDeviceTimeZoneIfRequired(ORIGIN_PHONE, zoneId, cause);
- }
-
- @GuardedBy("this")
- private void setDeviceTimeZoneIfRequired(
- @Origin int origin, @NonNull String newZoneId, @NonNull String cause) {
- Objects.requireNonNull(newZoneId);
- Objects.requireNonNull(cause);
-
- boolean isOriginAutomatic = isOriginAutomatic(origin);
- if (isOriginAutomatic) {
- if (!mCallback.isAutoTimeZoneDetectionEnabled()) {
- if (DBG) {
- Slog.d(LOG_TAG, "Auto time zone detection is not enabled."
- + " origin=" + origin
- + ", newZoneId=" + newZoneId
- + ", cause=" + cause);
- }
- return;
- }
- } else {
- if (mCallback.isAutoTimeZoneDetectionEnabled()) {
- if (DBG) {
- Slog.d(LOG_TAG, "Auto time zone detection is enabled."
- + " origin=" + origin
- + ", newZoneId=" + newZoneId
- + ", cause=" + cause);
- }
- return;
- }
- }
-
- String currentZoneId = mCallback.getDeviceTimeZone();
-
- // Avoid unnecessary changes / intents.
- if (newZoneId.equals(currentZoneId)) {
- // No need to set the device time zone - the setting is already what we would be
- // suggesting.
- if (DBG) {
- Slog.d(LOG_TAG, "No need to change the time zone;"
- + " device is already set to the suggested zone."
- + " origin=" + origin
- + ", newZoneId=" + newZoneId
- + ", cause=" + cause);
- }
- return;
- }
-
- mCallback.setDeviceTimeZone(newZoneId);
- String msg = "Set device time zone."
- + " origin=" + origin
- + ", currentZoneId=" + currentZoneId
- + ", newZoneId=" + newZoneId
- + ", cause=" + cause;
- if (DBG) {
- Slog.d(LOG_TAG, msg);
- }
- mTimeZoneChangesLog.log(msg);
- }
-
- private static boolean isOriginAutomatic(@Origin int origin) {
- return origin != ORIGIN_MANUAL;
- }
-
- @GuardedBy("this")
- @Nullable
- private QualifiedPhoneTimeZoneSuggestion findBestPhoneSuggestion() {
- QualifiedPhoneTimeZoneSuggestion bestSuggestion = null;
-
- // Iterate over the latest QualifiedPhoneTimeZoneSuggestion objects received for each phone
- // and find the best. Note that we deliberately do not look at age: the caller can
- // rate-limit so age is not a strong indicator of confidence. Instead, the callers are
- // expected to withdraw suggestions they no longer have confidence in.
- for (int i = 0; i < mSuggestionByPhoneId.size(); i++) {
- QualifiedPhoneTimeZoneSuggestion candidateSuggestion = mSuggestionByPhoneId.valueAt(i);
- if (candidateSuggestion == null) {
- // Unexpected
- continue;
- }
-
- if (bestSuggestion == null) {
- bestSuggestion = candidateSuggestion;
- } else if (candidateSuggestion.score > bestSuggestion.score) {
- bestSuggestion = candidateSuggestion;
- } else if (candidateSuggestion.score == bestSuggestion.score) {
- // Tie! Use the suggestion with the lowest phoneId.
- int candidatePhoneId = candidateSuggestion.suggestion.getPhoneId();
- int bestPhoneId = bestSuggestion.suggestion.getPhoneId();
- if (candidatePhoneId < bestPhoneId) {
- bestSuggestion = candidateSuggestion;
- }
- }
- }
- return bestSuggestion;
- }
-
- /**
- * Returns the current best phone suggestion. Not intended for general use: it is used during
- * tests to check strategy behavior.
- */
- @VisibleForTesting
- @Nullable
- public synchronized QualifiedPhoneTimeZoneSuggestion findBestPhoneSuggestionForTests() {
- return findBestPhoneSuggestion();
- }
+ void suggestTelephonyTimeZone(@NonNull TelephonyTimeZoneSuggestion suggestion);
/**
* Called when there has been a change to the automatic time zone detection setting.
*/
- @VisibleForTesting
- public synchronized void handleAutoTimeZoneDetectionChange() {
- if (DBG) {
- Slog.d(LOG_TAG, "handleTimeZoneDetectionChange() called");
- }
- if (mCallback.isAutoTimeZoneDetectionEnabled()) {
- // When the user enabled time zone detection, run the time zone detection and change the
- // device time zone if possible.
- String reason = "Auto time zone detection setting enabled.";
- doAutoTimeZoneDetection(reason);
- }
- }
+ void handleAutoTimeZoneDetectionChanged();
/**
* Dumps internal state such as field values.
*/
- public synchronized void dumpState(PrintWriter pw, String[] args) {
- IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ");
- ipw.println("TimeZoneDetectorStrategy:");
-
- ipw.increaseIndent(); // level 1
- ipw.println("mCallback.isTimeZoneDetectionEnabled()="
- + mCallback.isAutoTimeZoneDetectionEnabled());
- ipw.println("mCallback.isDeviceTimeZoneInitialized()="
- + mCallback.isDeviceTimeZoneInitialized());
- ipw.println("mCallback.getDeviceTimeZone()="
- + mCallback.getDeviceTimeZone());
-
- ipw.println("Time zone change log:");
- ipw.increaseIndent(); // level 2
- mTimeZoneChangesLog.dump(ipw);
- ipw.decreaseIndent(); // level 2
-
- ipw.println("Phone suggestion history:");
- ipw.increaseIndent(); // level 2
- mSuggestionByPhoneId.dump(ipw);
- ipw.decreaseIndent(); // level 2
- ipw.decreaseIndent(); // level 1
- ipw.flush();
- }
-
- /**
- * A method used to inspect strategy state during tests. Not intended for general use.
- */
- @VisibleForTesting
- public synchronized QualifiedPhoneTimeZoneSuggestion getLatestPhoneSuggestion(int phoneId) {
- return mSuggestionByPhoneId.get(phoneId);
- }
-
- /**
- * A {@link PhoneTimeZoneSuggestion} with additional qualifying metadata.
- */
- @VisibleForTesting
- public static class QualifiedPhoneTimeZoneSuggestion {
-
- @VisibleForTesting
- public final PhoneTimeZoneSuggestion suggestion;
-
- /**
- * The score the suggestion has been given. This can be used to rank against other
- * suggestions of the same type.
- */
- @VisibleForTesting
- public final int score;
-
- @VisibleForTesting
- public QualifiedPhoneTimeZoneSuggestion(PhoneTimeZoneSuggestion suggestion, int score) {
- this.suggestion = suggestion;
- this.score = score;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
- QualifiedPhoneTimeZoneSuggestion that = (QualifiedPhoneTimeZoneSuggestion) o;
- return score == that.score
- && suggestion.equals(that.suggestion);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(score, suggestion);
- }
-
- @Override
- public String toString() {
- return "QualifiedPhoneTimeZoneSuggestion{"
- + "suggestion=" + suggestion
- + ", score=" + score
- + '}';
- }
- }
+ void dump(PrintWriter pw, String[] args);
}
diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategyImpl.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategyImpl.java
new file mode 100644
index 000000000000..652dbe153680
--- /dev/null
+++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategyImpl.java
@@ -0,0 +1,522 @@
+/*
+ * Copyright 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.timezonedetector;
+
+import static android.app.timezonedetector.TelephonyTimeZoneSuggestion.MATCH_TYPE_EMULATOR_ZONE_ID;
+import static android.app.timezonedetector.TelephonyTimeZoneSuggestion.MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY;
+import static android.app.timezonedetector.TelephonyTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS;
+import static android.app.timezonedetector.TelephonyTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET;
+import static android.app.timezonedetector.TelephonyTimeZoneSuggestion.QUALITY_SINGLE_ZONE;
+
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.app.timezonedetector.ManualTimeZoneSuggestion;
+import android.app.timezonedetector.TelephonyTimeZoneSuggestion;
+import android.content.Context;
+import android.util.LocalLog;
+import android.util.Slog;
+
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.IndentingPrintWriter;
+
+import java.io.PrintWriter;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.Objects;
+
+/**
+ * An implementation of {@link TimeZoneDetectorStrategy} that handle telephony and manual
+ * suggestions. Suggestions are acted on or ignored as needed, dependent on the current "auto time
+ * zone detection" setting.
+ *
+ * <p>For automatic detection, it keeps track of the most recent telephony suggestion from each
+ * slotIndex and it uses the best suggestion based on a scoring algorithm. If several slotIndexes
+ * provide the same score then the slotIndex with the lowest numeric value "wins". If the situation
+ * changes and it is no longer possible to be confident about the time zone, slotIndexes must have
+ * an empty suggestion submitted in order to "withdraw" their previous suggestion.
+ *
+ * <p>Most public methods are marked synchronized to ensure thread safety around internal state.
+ */
+public final class TimeZoneDetectorStrategyImpl implements TimeZoneDetectorStrategy {
+
+ /**
+ * Used by {@link TimeZoneDetectorStrategyImpl} to interact with the surrounding service. It can
+ * be faked for tests.
+ *
+ * <p>Note: Because the system properties-derived values like
+ * {@link #isAutoTimeZoneDetectionEnabled()}, {@link #isAutoTimeZoneDetectionEnabled()},
+ * {@link #getDeviceTimeZone()} can be modified independently and from different threads (and
+ * processes!), their use are prone to race conditions. That will be true until the
+ * responsibility for setting their values is moved to {@link TimeZoneDetectorStrategyImpl}.
+ */
+ @VisibleForTesting
+ public interface Callback {
+
+ /**
+ * Returns true if automatic time zone detection is enabled in settings.
+ */
+ boolean isAutoTimeZoneDetectionEnabled();
+
+ /**
+ * Returns true if the device has had an explicit time zone set.
+ */
+ boolean isDeviceTimeZoneInitialized();
+
+ /**
+ * Returns the device's currently configured time zone.
+ */
+ String getDeviceTimeZone();
+
+ /**
+ * Sets the device's time zone.
+ */
+ void setDeviceTimeZone(@NonNull String zoneId);
+ }
+
+ private static final String LOG_TAG = "TimeZoneDetectorStrategy";
+ private static final boolean DBG = false;
+
+ @IntDef({ ORIGIN_TELEPHONY, ORIGIN_MANUAL })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface Origin {}
+
+ /** Used when a time value originated from a telephony signal. */
+ @Origin
+ private static final int ORIGIN_TELEPHONY = 1;
+
+ /** Used when a time value originated from a user / manual settings. */
+ @Origin
+ private static final int ORIGIN_MANUAL = 2;
+
+ /**
+ * The abstract score for an empty or invalid telephony suggestion.
+ *
+ * Used to score telephony suggestions where there is no zone.
+ */
+ @VisibleForTesting
+ public static final int TELEPHONY_SCORE_NONE = 0;
+
+ /**
+ * The abstract score for a low quality telephony suggestion.
+ *
+ * Used to score suggestions where:
+ * The suggested zone ID is one of several possibilities, and the possibilities have different
+ * offsets.
+ *
+ * You would have to be quite desperate to want to use this choice.
+ */
+ @VisibleForTesting
+ public static final int TELEPHONY_SCORE_LOW = 1;
+
+ /**
+ * The abstract score for a medium quality telephony suggestion.
+ *
+ * Used for:
+ * The suggested zone ID is one of several possibilities but at least the possibilities have the
+ * same offset. Users would get the correct time but for the wrong reason. i.e. their device may
+ * switch to DST at the wrong time and (for example) their calendar events.
+ */
+ @VisibleForTesting
+ public static final int TELEPHONY_SCORE_MEDIUM = 2;
+
+ /**
+ * The abstract score for a high quality telephony suggestion.
+ *
+ * Used for:
+ * The suggestion was for one zone ID and the answer was unambiguous and likely correct given
+ * the info available.
+ */
+ @VisibleForTesting
+ public static final int TELEPHONY_SCORE_HIGH = 3;
+
+ /**
+ * The abstract score for a highest quality telephony suggestion.
+ *
+ * Used for:
+ * Suggestions that must "win" because they constitute test or emulator zone ID.
+ */
+ @VisibleForTesting
+ public static final int TELEPHONY_SCORE_HIGHEST = 4;
+
+ /**
+ * The threshold at which telephony suggestions are good enough to use to set the device's time
+ * zone.
+ */
+ @VisibleForTesting
+ public static final int TELEPHONY_SCORE_USAGE_THRESHOLD = TELEPHONY_SCORE_MEDIUM;
+
+ /**
+ * The number of previous telephony suggestions to keep for each ID (for use during debugging).
+ */
+ private static final int KEEP_TELEPHONY_SUGGESTION_HISTORY_SIZE = 30;
+
+ @NonNull
+ private final Callback mCallback;
+
+ /**
+ * A log that records the decisions / decision metadata that affected the device's time zone
+ * (for use during debugging).
+ */
+ @NonNull
+ private final LocalLog mTimeZoneChangesLog = new LocalLog(30, false /* useLocalTimestamps */);
+
+ /**
+ * A mapping from slotIndex to a telephony time zone suggestion. We typically expect one or two
+ * mappings: devices will have a small number of telephony devices and slotIndexes are assumed
+ * to be stable.
+ */
+ @GuardedBy("this")
+ private ArrayMapWithHistory<Integer, QualifiedTelephonyTimeZoneSuggestion>
+ mSuggestionBySlotIndex =
+ new ArrayMapWithHistory<>(KEEP_TELEPHONY_SUGGESTION_HISTORY_SIZE);
+
+ /**
+ * Creates a new instance of {@link TimeZoneDetectorStrategyImpl}.
+ */
+ public static TimeZoneDetectorStrategyImpl create(Context context) {
+ Callback timeZoneDetectionServiceHelper = new TimeZoneDetectorCallbackImpl(context);
+ return new TimeZoneDetectorStrategyImpl(timeZoneDetectionServiceHelper);
+ }
+
+ @VisibleForTesting
+ public TimeZoneDetectorStrategyImpl(Callback callback) {
+ mCallback = Objects.requireNonNull(callback);
+ }
+
+ @Override
+ public synchronized void suggestManualTimeZone(@NonNull ManualTimeZoneSuggestion suggestion) {
+ Objects.requireNonNull(suggestion);
+
+ String timeZoneId = suggestion.getZoneId();
+ String cause = "Manual time suggestion received: suggestion=" + suggestion;
+ setDeviceTimeZoneIfRequired(ORIGIN_MANUAL, timeZoneId, cause);
+ }
+
+ @Override
+ public synchronized void suggestTelephonyTimeZone(
+ @NonNull TelephonyTimeZoneSuggestion suggestion) {
+ if (DBG) {
+ Slog.d(LOG_TAG, "Telephony suggestion received. newSuggestion=" + suggestion);
+ }
+ Objects.requireNonNull(suggestion);
+
+ // Score the suggestion.
+ int score = scoreTelephonySuggestion(suggestion);
+ QualifiedTelephonyTimeZoneSuggestion scoredSuggestion =
+ new QualifiedTelephonyTimeZoneSuggestion(suggestion, score);
+
+ // Store the suggestion against the correct slotIndex.
+ mSuggestionBySlotIndex.put(suggestion.getSlotIndex(), scoredSuggestion);
+
+ // Now perform auto time zone detection. The new suggestion may be used to modify the time
+ // zone setting.
+ String reason = "New telephony time suggested. suggestion=" + suggestion;
+ doAutoTimeZoneDetection(reason);
+ }
+
+ private static int scoreTelephonySuggestion(@NonNull TelephonyTimeZoneSuggestion suggestion) {
+ int score;
+ if (suggestion.getZoneId() == null) {
+ score = TELEPHONY_SCORE_NONE;
+ } else if (suggestion.getMatchType() == MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY
+ || suggestion.getMatchType() == MATCH_TYPE_EMULATOR_ZONE_ID) {
+ // Handle emulator / test cases : These suggestions should always just be used.
+ score = TELEPHONY_SCORE_HIGHEST;
+ } else if (suggestion.getQuality() == QUALITY_SINGLE_ZONE) {
+ score = TELEPHONY_SCORE_HIGH;
+ } else if (suggestion.getQuality() == QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET) {
+ // The suggestion may be wrong, but at least the offset should be correct.
+ score = TELEPHONY_SCORE_MEDIUM;
+ } else if (suggestion.getQuality() == QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS) {
+ // The suggestion has a good chance of being wrong.
+ score = TELEPHONY_SCORE_LOW;
+ } else {
+ throw new AssertionError();
+ }
+ return score;
+ }
+
+ /**
+ * Finds the best available time zone suggestion from all slotIndexes. If it is high-enough
+ * quality and automatic time zone detection is enabled then it will be set on the device. The
+ * outcome can be that this strategy becomes / remains un-opinionated and nothing is set.
+ */
+ @GuardedBy("this")
+ private void doAutoTimeZoneDetection(@NonNull String detectionReason) {
+ if (!mCallback.isAutoTimeZoneDetectionEnabled()) {
+ // Avoid doing unnecessary work with this (race-prone) check.
+ return;
+ }
+
+ QualifiedTelephonyTimeZoneSuggestion bestTelephonySuggestion =
+ findBestTelephonySuggestion();
+
+ // Work out what to do with the best suggestion.
+ if (bestTelephonySuggestion == null) {
+ // There is no telephony suggestion available at all. Become un-opinionated.
+ if (DBG) {
+ Slog.d(LOG_TAG, "Could not determine time zone: No best telephony suggestion."
+ + " detectionReason=" + detectionReason);
+ }
+ return;
+ }
+
+ // Special case handling for uninitialized devices. This should only happen once.
+ String newZoneId = bestTelephonySuggestion.suggestion.getZoneId();
+ if (newZoneId != null && !mCallback.isDeviceTimeZoneInitialized()) {
+ String cause = "Device has no time zone set. Attempting to set the device to the best"
+ + " available suggestion."
+ + " bestTelephonySuggestion=" + bestTelephonySuggestion
+ + ", detectionReason=" + detectionReason;
+ Slog.i(LOG_TAG, cause);
+ setDeviceTimeZoneIfRequired(ORIGIN_TELEPHONY, newZoneId, cause);
+ return;
+ }
+
+ boolean suggestionGoodEnough =
+ bestTelephonySuggestion.score >= TELEPHONY_SCORE_USAGE_THRESHOLD;
+ if (!suggestionGoodEnough) {
+ if (DBG) {
+ Slog.d(LOG_TAG, "Best suggestion not good enough."
+ + " bestTelephonySuggestion=" + bestTelephonySuggestion
+ + ", detectionReason=" + detectionReason);
+ }
+ return;
+ }
+
+ // Paranoia: Every suggestion above the SCORE_USAGE_THRESHOLD should have a non-null time
+ // zone ID.
+ if (newZoneId == null) {
+ Slog.w(LOG_TAG, "Empty zone suggestion scored higher than expected. This is an error:"
+ + " bestTelephonySuggestion=" + bestTelephonySuggestion
+ + " detectionReason=" + detectionReason);
+ return;
+ }
+
+ String zoneId = bestTelephonySuggestion.suggestion.getZoneId();
+ String cause = "Found good suggestion."
+ + ", bestTelephonySuggestion=" + bestTelephonySuggestion
+ + ", detectionReason=" + detectionReason;
+ setDeviceTimeZoneIfRequired(ORIGIN_TELEPHONY, zoneId, cause);
+ }
+
+ @GuardedBy("this")
+ private void setDeviceTimeZoneIfRequired(
+ @Origin int origin, @NonNull String newZoneId, @NonNull String cause) {
+ Objects.requireNonNull(newZoneId);
+ Objects.requireNonNull(cause);
+
+ boolean isOriginAutomatic = isOriginAutomatic(origin);
+ if (isOriginAutomatic) {
+ if (!mCallback.isAutoTimeZoneDetectionEnabled()) {
+ if (DBG) {
+ Slog.d(LOG_TAG, "Auto time zone detection is not enabled."
+ + " origin=" + origin
+ + ", newZoneId=" + newZoneId
+ + ", cause=" + cause);
+ }
+ return;
+ }
+ } else {
+ if (mCallback.isAutoTimeZoneDetectionEnabled()) {
+ if (DBG) {
+ Slog.d(LOG_TAG, "Auto time zone detection is enabled."
+ + " origin=" + origin
+ + ", newZoneId=" + newZoneId
+ + ", cause=" + cause);
+ }
+ return;
+ }
+ }
+
+ String currentZoneId = mCallback.getDeviceTimeZone();
+
+ // Avoid unnecessary changes / intents.
+ if (newZoneId.equals(currentZoneId)) {
+ // No need to set the device time zone - the setting is already what we would be
+ // suggesting.
+ if (DBG) {
+ Slog.d(LOG_TAG, "No need to change the time zone;"
+ + " device is already set to the suggested zone."
+ + " origin=" + origin
+ + ", newZoneId=" + newZoneId
+ + ", cause=" + cause);
+ }
+ return;
+ }
+
+ mCallback.setDeviceTimeZone(newZoneId);
+ String msg = "Set device time zone."
+ + " origin=" + origin
+ + ", currentZoneId=" + currentZoneId
+ + ", newZoneId=" + newZoneId
+ + ", cause=" + cause;
+ if (DBG) {
+ Slog.d(LOG_TAG, msg);
+ }
+ mTimeZoneChangesLog.log(msg);
+ }
+
+ private static boolean isOriginAutomatic(@Origin int origin) {
+ return origin != ORIGIN_MANUAL;
+ }
+
+ @GuardedBy("this")
+ @Nullable
+ private QualifiedTelephonyTimeZoneSuggestion findBestTelephonySuggestion() {
+ QualifiedTelephonyTimeZoneSuggestion bestSuggestion = null;
+
+ // Iterate over the latest QualifiedTelephonyTimeZoneSuggestion objects received for each
+ // slotIndex and find the best. Note that we deliberately do not look at age: the caller can
+ // rate-limit so age is not a strong indicator of confidence. Instead, the callers are
+ // expected to withdraw suggestions they no longer have confidence in.
+ for (int i = 0; i < mSuggestionBySlotIndex.size(); i++) {
+ QualifiedTelephonyTimeZoneSuggestion candidateSuggestion =
+ mSuggestionBySlotIndex.valueAt(i);
+ if (candidateSuggestion == null) {
+ // Unexpected
+ continue;
+ }
+
+ if (bestSuggestion == null) {
+ bestSuggestion = candidateSuggestion;
+ } else if (candidateSuggestion.score > bestSuggestion.score) {
+ bestSuggestion = candidateSuggestion;
+ } else if (candidateSuggestion.score == bestSuggestion.score) {
+ // Tie! Use the suggestion with the lowest slotIndex.
+ int candidateSlotIndex = candidateSuggestion.suggestion.getSlotIndex();
+ int bestSlotIndex = bestSuggestion.suggestion.getSlotIndex();
+ if (candidateSlotIndex < bestSlotIndex) {
+ bestSuggestion = candidateSuggestion;
+ }
+ }
+ }
+ return bestSuggestion;
+ }
+
+ /**
+ * Returns the current best telephony suggestion. Not intended for general use: it is used
+ * during tests to check strategy behavior.
+ */
+ @VisibleForTesting
+ @Nullable
+ public synchronized QualifiedTelephonyTimeZoneSuggestion findBestTelephonySuggestionForTests() {
+ return findBestTelephonySuggestion();
+ }
+
+ @Override
+ public synchronized void handleAutoTimeZoneDetectionChanged() {
+ if (DBG) {
+ Slog.d(LOG_TAG, "handleTimeZoneDetectionChange() called");
+ }
+ if (mCallback.isAutoTimeZoneDetectionEnabled()) {
+ // When the user enabled time zone detection, run the time zone detection and change the
+ // device time zone if possible.
+ String reason = "Auto time zone detection setting enabled.";
+ doAutoTimeZoneDetection(reason);
+ }
+ }
+
+ /**
+ * Dumps internal state such as field values.
+ */
+ @Override
+ public synchronized void dump(PrintWriter pw, String[] args) {
+ IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ");
+ ipw.println("TimeZoneDetectorStrategy:");
+
+ ipw.increaseIndent(); // level 1
+ ipw.println("mCallback.isTimeZoneDetectionEnabled()="
+ + mCallback.isAutoTimeZoneDetectionEnabled());
+ ipw.println("mCallback.isDeviceTimeZoneInitialized()="
+ + mCallback.isDeviceTimeZoneInitialized());
+ ipw.println("mCallback.getDeviceTimeZone()="
+ + mCallback.getDeviceTimeZone());
+
+ ipw.println("Time zone change log:");
+ ipw.increaseIndent(); // level 2
+ mTimeZoneChangesLog.dump(ipw);
+ ipw.decreaseIndent(); // level 2
+
+ ipw.println("Telephony suggestion history:");
+ ipw.increaseIndent(); // level 2
+ mSuggestionBySlotIndex.dump(ipw);
+ ipw.decreaseIndent(); // level 2
+ ipw.decreaseIndent(); // level 1
+ ipw.flush();
+ }
+
+ /**
+ * A method used to inspect strategy state during tests. Not intended for general use.
+ */
+ @VisibleForTesting
+ public synchronized QualifiedTelephonyTimeZoneSuggestion getLatestTelephonySuggestion(
+ int slotIndex) {
+ return mSuggestionBySlotIndex.get(slotIndex);
+ }
+
+ /**
+ * A {@link TelephonyTimeZoneSuggestion} with additional qualifying metadata.
+ */
+ @VisibleForTesting
+ public static class QualifiedTelephonyTimeZoneSuggestion {
+
+ @VisibleForTesting
+ public final TelephonyTimeZoneSuggestion suggestion;
+
+ /**
+ * The score the suggestion has been given. This can be used to rank against other
+ * suggestions of the same type.
+ */
+ @VisibleForTesting
+ public final int score;
+
+ @VisibleForTesting
+ public QualifiedTelephonyTimeZoneSuggestion(
+ TelephonyTimeZoneSuggestion suggestion, int score) {
+ this.suggestion = suggestion;
+ this.score = score;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ QualifiedTelephonyTimeZoneSuggestion that = (QualifiedTelephonyTimeZoneSuggestion) o;
+ return score == that.score
+ && suggestion.equals(that.suggestion);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(score, suggestion);
+ }
+
+ @Override
+ public String toString() {
+ return "QualifiedTelephonyTimeZoneSuggestion{"
+ + "suggestion=" + suggestion
+ + ", score=" + score
+ + '}';
+ }
+ }
+}
diff --git a/services/core/java/com/android/server/tv/TvInputManagerService.java b/services/core/java/com/android/server/tv/TvInputManagerService.java
index 4f010d5e0f2c..e3b1152cd7b7 100755
--- a/services/core/java/com/android/server/tv/TvInputManagerService.java
+++ b/services/core/java/com/android/server/tv/TvInputManagerService.java
@@ -383,36 +383,38 @@ public final class TvInputManagerService extends SystemService {
if (mCurrentUserId == userId) {
return;
}
- UserState userState = mUserStates.get(mCurrentUserId);
- List<SessionState> sessionStatesToRelease = new ArrayList<>();
- for (SessionState sessionState : userState.sessionStateMap.values()) {
- if (sessionState.session != null && !sessionState.isRecordingSession) {
- sessionStatesToRelease.add(sessionState);
+ if (mUserStates.contains(mCurrentUserId)) {
+ UserState userState = mUserStates.get(mCurrentUserId);
+ List<SessionState> sessionStatesToRelease = new ArrayList<>();
+ for (SessionState sessionState : userState.sessionStateMap.values()) {
+ if (sessionState.session != null && !sessionState.isRecordingSession) {
+ sessionStatesToRelease.add(sessionState);
+ }
}
- }
- for (SessionState sessionState : sessionStatesToRelease) {
- try {
- sessionState.session.release();
- } catch (RemoteException e) {
- Slog.e(TAG, "error in release", e);
+ for (SessionState sessionState : sessionStatesToRelease) {
+ try {
+ sessionState.session.release();
+ } catch (RemoteException e) {
+ Slog.e(TAG, "error in release", e);
+ }
+ clearSessionAndNotifyClientLocked(sessionState);
}
- clearSessionAndNotifyClientLocked(sessionState);
- }
- for (Iterator<ComponentName> it = userState.serviceStateMap.keySet().iterator();
- it.hasNext(); ) {
- ComponentName component = it.next();
- ServiceState serviceState = userState.serviceStateMap.get(component);
- if (serviceState != null && serviceState.sessionTokens.isEmpty()) {
- if (serviceState.callback != null) {
- try {
- serviceState.service.unregisterCallback(serviceState.callback);
- } catch (RemoteException e) {
- Slog.e(TAG, "error in unregisterCallback", e);
+ for (Iterator<ComponentName> it = userState.serviceStateMap.keySet().iterator();
+ it.hasNext(); ) {
+ ComponentName component = it.next();
+ ServiceState serviceState = userState.serviceStateMap.get(component);
+ if (serviceState != null && serviceState.sessionTokens.isEmpty()) {
+ if (serviceState.callback != null) {
+ try {
+ serviceState.service.unregisterCallback(serviceState.callback);
+ } catch (RemoteException e) {
+ Slog.e(TAG, "error in unregisterCallback", e);
+ }
}
+ mContext.unbindService(serviceState.connection);
+ it.remove();
}
- mContext.unbindService(serviceState.connection);
- it.remove();
}
}
@@ -490,6 +492,10 @@ public final class TvInputManagerService extends SystemService {
userState.mainSessionToken = null;
mUserStates.remove(userId);
+
+ if (userId == mCurrentUserId) {
+ switchUser(UserHandle.USER_SYSTEM);
+ }
}
}
diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java
index d746691b4773..61a33b4fb781 100644
--- a/services/core/java/com/android/server/wm/AccessibilityController.java
+++ b/services/core/java/com/android/server/wm/AccessibilityController.java
@@ -361,7 +361,7 @@ final class AccessibilityController {
private final Region mTempRegion3 = new Region();
private final Region mTempRegion4 = new Region();
- private final Context mContext;
+ private final Context mDisplayContext;
private final WindowManagerService mService;
private final MagnifiedViewport mMagnifedViewport;
private final Handler mHandler;
@@ -378,14 +378,14 @@ final class AccessibilityController {
DisplayContent displayContent,
Display display,
MagnificationCallbacks callbacks) {
- mContext = windowManagerService.mContext;
+ mDisplayContext = windowManagerService.mContext.createDisplayContext(display);
mService = windowManagerService;
mCallbacks = callbacks;
mDisplayContent = displayContent;
mDisplay = display;
mHandler = new MyHandler(mService.mH.getLooper());
mMagnifedViewport = new MagnifiedViewport();
- mLongAnimationDuration = mContext.getResources().getInteger(
+ mLongAnimationDuration = mDisplayContext.getResources().getInteger(
com.android.internal.R.integer.config_longAnimTime);
}
@@ -568,8 +568,6 @@ final class AccessibilityController {
private final MagnificationSpec mMagnificationSpec = MagnificationSpec.obtain();
- private final WindowManager mWindowManager;
-
private final float mBorderWidth;
private final int mHalfBorderWidth;
private final int mDrawBorderInset;
@@ -580,14 +578,13 @@ final class AccessibilityController {
private int mTempLayer = 0;
public MagnifiedViewport() {
- mWindowManager = (WindowManager) mContext.getSystemService(Service.WINDOW_SERVICE);
- mBorderWidth = mContext.getResources().getDimension(
+ mBorderWidth = mDisplayContext.getResources().getDimension(
com.android.internal.R.dimen.accessibility_magnification_indicator_width);
mHalfBorderWidth = (int) Math.ceil(mBorderWidth / 2);
mDrawBorderInset = (int) mBorderWidth / 2;
- mWindow = new ViewportWindow(mContext);
+ mWindow = new ViewportWindow(mDisplayContext);
- if (mContext.getResources().getConfiguration().isScreenRound()) {
+ if (mDisplayContext.getResources().getConfiguration().isScreenRound()) {
mCircularPath = new Path();
mDisplay.getRealSize(mTempPoint);
final int centerXY = mTempPoint.x / 2;
@@ -916,7 +913,7 @@ final class AccessibilityController {
public void updateSize(SurfaceControl.Transaction t) {
synchronized (mService.mGlobalLock) {
- mWindowManager.getDefaultDisplay().getRealSize(mTempPoint);
+ mDisplay.getRealSize(mTempPoint);
t.setBufferSize(mSurfaceControl, mTempPoint.x, mTempPoint.y);
invalidate(mDirtyRect);
}
diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
index 2ef0015f2b7d..0502d0bfa933 100644
--- a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
+++ b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
@@ -1212,7 +1212,7 @@ class ActivityMetricsLogger {
final ProtoOutputStream protoOutputStream =
new ProtoOutputStream(LAUNCH_OBSERVER_ACTIVITY_RECORD_PROTO_CHUNK_SIZE);
// Write this data out as the top-most ActivityRecordProto (i.e. it is not a sub-object).
- record.dumpDebug(protoOutputStream);
+ record.dumpDebug(protoOutputStream, WindowTraceLogLevel.ALL);
final byte[] bytes = protoOutputStream.getBytes();
Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index dda11f96cc8a..a54f5d43751c 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -196,6 +196,7 @@ import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ORIENTATION;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_STARTING_WINDOW;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
import static com.android.server.wm.TaskPersister.DEBUG;
import static com.android.server.wm.TaskPersister.IMAGE_EXTENSION;
import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN;
@@ -311,6 +312,8 @@ import com.android.server.protolog.common.ProtoLog;
import com.android.server.uri.UriPermissionOwner;
import com.android.server.wm.ActivityMetricsLogger.TransitionInfoSnapshot;
import com.android.server.wm.ActivityStack.ActivityState;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
+import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
import com.android.server.wm.WindowManagerService.H;
import com.android.server.wm.utils.InsetUtils;
@@ -1626,12 +1629,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
requestedVrComponent = (aInfo.requestedVrComponent == null) ?
null : ComponentName.unflattenFromString(aInfo.requestedVrComponent);
- lockTaskLaunchMode = aInfo.lockTaskLaunchMode;
- if (info.applicationInfo.isPrivilegedApp()
- && (lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_ALWAYS
- || lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_NEVER)) {
- lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_DEFAULT;
- }
+ lockTaskLaunchMode = getLockTaskLaunchMode(aInfo, options);
if (options != null) {
pendingOptions = options;
@@ -1639,13 +1637,25 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
if (usageReport != null) {
appTimeTracker = new AppTimeTracker(usageReport);
}
- final boolean useLockTask = pendingOptions.getLockTaskMode();
+ // Gets launch display id from options. It returns INVALID_DISPLAY if not set.
+ mHandoverLaunchDisplayId = options.getLaunchDisplayId();
+ }
+ }
+
+ static int getLockTaskLaunchMode(ActivityInfo aInfo, @Nullable ActivityOptions options) {
+ int lockTaskLaunchMode = aInfo.lockTaskLaunchMode;
+ if (aInfo.applicationInfo.isPrivilegedApp()
+ && (lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_ALWAYS
+ || lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_NEVER)) {
+ lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_DEFAULT;
+ }
+ if (options != null) {
+ final boolean useLockTask = options.getLockTaskMode();
if (useLockTask && lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_DEFAULT) {
lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_IF_WHITELISTED;
}
- // Gets launch display id from options. It returns INVALID_DISPLAY if not set.
- mHandoverLaunchDisplayId = options.getLaunchDisplayId();
}
+ return lockTaskLaunchMode;
}
@Override
@@ -3034,6 +3044,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
}
// Throw away any services that have been bound by this activity.
mServiceConnectionsHolder.disconnectActivityFromServices();
+ // This activity record is removing, make sure not to disconnect twice.
+ mServiceConnectionsHolder = null;
}
@Override
@@ -3074,7 +3086,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
mStackSupervisor.getActivityMetricsLogger().notifyActivityRemoved(this);
waitingToShow = false;
- boolean delayed = isAnimating(TRANSITION | CHILDREN);
+ // Defer removal of this activity when either a child is animating, or app transition is on
+ // going. App transition animation might be applied on the parent stack not on the activity,
+ // but the actual frame buffer is associated with the activity, so we have to keep the
+ // activity while a parent is animating.
+ boolean delayed = isAnimating(TRANSITION | PARENTS | CHILDREN);
if (getDisplayContent().mClosingApps.contains(this)) {
delayed = true;
} else if (getDisplayContent().mAppTransition.isTransitionSet()) {
@@ -4076,7 +4092,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
@Override
boolean applyAnimation(WindowManager.LayoutParams lp, int transit, boolean enter,
- boolean isVoiceInteraction, @Nullable Runnable animationFinishedCallback) {
+ boolean isVoiceInteraction,
+ @Nullable OnAnimationFinishedCallback animationFinishedCallback) {
if (mUseTransferredAnimation) {
return false;
}
@@ -4154,7 +4171,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
// We aren't delayed anything, but exiting windows rely on the animation finished
// callback being called in case the ActivityRecord was pretending to be delayed,
// which we might have done because we were in closing/opening apps list.
- onAnimationFinished();
+ onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION, null /* AnimationAdapter */);
if (visible) {
// The token was made immediately visible, there will be no entrance animation.
// We need to inform the client the enter animation was finished.
@@ -6050,8 +6067,8 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
}
@Override
- protected void onAnimationFinished() {
- super.onAnimationFinished();
+ protected void onAnimationFinished(@AnimationType int type, AnimationAdapter anim) {
+ super.onAnimationFinished(type, anim);
Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "AR#onAnimationFinished");
mTransit = TRANSIT_UNSET;
@@ -7498,17 +7515,19 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
* Write all fields to an {@code ActivityRecordProto}. This assumes the
* {@code ActivityRecordProto} is the outer-most proto data.
*/
- void dumpDebug(ProtoOutputStream proto) {
+ void dumpDebug(ProtoOutputStream proto, @WindowTraceLogLevel int logLevel) {
writeNameToProto(proto, NAME);
- super.dumpDebug(proto, WINDOW_TOKEN, WindowTraceLogLevel.ALL);
+ super.dumpDebug(proto, WINDOW_TOKEN, logLevel);
proto.write(LAST_SURFACE_SHOWING, mLastSurfaceShowing);
proto.write(IS_WAITING_FOR_TRANSITION_START, isWaitingForTransitionStart());
- proto.write(IS_ANIMATING, isAnimating());
- if (mThumbnail != null) {
+ proto.write(IS_ANIMATING, isAnimating(PARENTS));
+ if (mThumbnail != null){
mThumbnail.dumpDebug(proto, THUMBNAIL);
}
proto.write(FILLS_PARENT, mOccludesParent);
proto.write(APP_STOPPED, mAppStopped);
+ proto.write(TRANSLUCENT, !occludesParent());
+ proto.write(VISIBLE, mVisible);
proto.write(VISIBLE_REQUESTED, mVisibleRequested);
proto.write(CLIENT_VISIBLE, mClientVisible);
proto.write(DEFER_HIDING_CLIENT, mDeferHidingClient);
@@ -7531,24 +7550,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
writeIdentifierToProto(proto, IDENTIFIER);
proto.write(STATE, mState.toString());
- proto.write(VISIBLE_REQUESTED, mVisibleRequested);
proto.write(FRONT_OF_TASK, isRootOfTask());
if (hasProcess()) {
proto.write(PROC_ID, app.getPid());
}
- proto.write(TRANSLUCENT, !occludesParent());
- proto.write(VISIBLE, mVisible);
}
- public void dumpDebug(ProtoOutputStream proto, long fieldId) {
- final long token = proto.start(fieldId);
- dumpDebug(proto);
- proto.end(token);
- }
-
- /**
- * Copied from old AppWindowToken.
- */
@Override
public void dumpDebug(ProtoOutputStream proto, long fieldId,
@WindowTraceLogLevel int logLevel) {
@@ -7558,36 +7565,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
}
final long token = proto.start(fieldId);
- writeNameToProto(proto, NAME);
- super.dumpDebug(proto, WINDOW_TOKEN, logLevel);
- proto.write(LAST_SURFACE_SHOWING, mLastSurfaceShowing);
- proto.write(IS_WAITING_FOR_TRANSITION_START, isWaitingForTransitionStart());
- proto.write(IS_ANIMATING, isAnimating(PARENTS));
- if (mThumbnail != null){
- mThumbnail.dumpDebug(proto, THUMBNAIL);
- }
- proto.write(FILLS_PARENT, mOccludesParent);
- proto.write(APP_STOPPED, mAppStopped);
- proto.write(VISIBLE_REQUESTED, mVisibleRequested);
- proto.write(CLIENT_VISIBLE, mClientVisible);
- proto.write(DEFER_HIDING_CLIENT, mDeferHidingClient);
- proto.write(REPORTED_DRAWN, reportedDrawn);
- proto.write(REPORTED_VISIBLE, reportedVisible);
- proto.write(NUM_INTERESTING_WINDOWS, mNumInterestingWindows);
- proto.write(NUM_DRAWN_WINDOWS, mNumDrawnWindows);
- proto.write(ALL_DRAWN, allDrawn);
- proto.write(LAST_ALL_DRAWN, mLastAllDrawn);
- if (startingWindow != null) {
- startingWindow.writeIdentifierToProto(proto, STARTING_WINDOW);
- }
- proto.write(STARTING_DISPLAYED, startingDisplayed);
- proto.write(STARTING_MOVED, startingMoved);
- proto.write(VISIBLE_SET_FROM_TRANSFERRED_STARTING_WINDOW,
- mVisibleSetFromTransferredStartingWindow);
- for (Rect bounds : mFrozenBounds) {
- bounds.dumpDebug(proto, FROZEN_BOUNDS);
- }
- proto.write(VISIBLE, mVisible);
+ dumpDebug(proto, logLevel);
proto.end(token);
}
diff --git a/services/core/java/com/android/server/wm/ActivityServiceConnectionsHolder.java b/services/core/java/com/android/server/wm/ActivityServiceConnectionsHolder.java
index 6e75f9c9167f..5dfc261480f2 100644
--- a/services/core/java/com/android/server/wm/ActivityServiceConnectionsHolder.java
+++ b/services/core/java/com/android/server/wm/ActivityServiceConnectionsHolder.java
@@ -18,10 +18,13 @@ package com.android.server.wm;
import static com.android.server.wm.ActivityStack.ActivityState.PAUSING;
import static com.android.server.wm.ActivityStack.ActivityState.RESUMED;
+import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_CLEANUP;
+import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM;
+
+import android.util.ArraySet;
+import android.util.Slog;
import java.io.PrintWriter;
-import java.util.HashSet;
-import java.util.Iterator;
import java.util.function.Consumer;
/**
@@ -30,6 +33,8 @@ import java.util.function.Consumer;
* instance of this per activity for tracking all services connected to that activity. AM will
* sometimes query this to bump the OOM score for the processes with services connected to visible
* activities.
+ * <p>
+ * Public methods are called in AM lock, otherwise in WM lock.
*/
public class ActivityServiceConnectionsHolder<T> {
@@ -44,7 +49,10 @@ public class ActivityServiceConnectionsHolder<T> {
* on the WM side since we don't perform operations on the object. Mainly here for communication
* and booking with the AM side.
*/
- private HashSet<T> mConnections;
+ private ArraySet<T> mConnections;
+
+ /** Whether all connections of {@link #mActivity} are being removed. */
+ private volatile boolean mIsDisconnecting;
ActivityServiceConnectionsHolder(ActivityTaskManagerService service, ActivityRecord activity) {
mService = service;
@@ -54,8 +62,16 @@ public class ActivityServiceConnectionsHolder<T> {
/** Adds a connection record that the activity has bound to a specific service. */
public void addConnection(T c) {
synchronized (mService.mGlobalLock) {
+ if (mIsDisconnecting) {
+ // This is unlikely to happen because the caller should create a new holder.
+ if (DEBUG_CLEANUP) {
+ Slog.e(TAG_ATM, "Skip adding connection " + c + " to a disconnecting holder of "
+ + mActivity);
+ }
+ return;
+ }
if (mConnections == null) {
- mConnections = new HashSet<>();
+ mConnections = new ArraySet<>();
}
mConnections.add(c);
}
@@ -67,6 +83,9 @@ public class ActivityServiceConnectionsHolder<T> {
if (mConnections == null) {
return;
}
+ if (DEBUG_CLEANUP && mIsDisconnecting) {
+ Slog.v(TAG_ATM, "Remove pending disconnecting " + c + " of " + mActivity);
+ }
mConnections.remove(c);
}
}
@@ -88,26 +107,33 @@ public class ActivityServiceConnectionsHolder<T> {
if (mConnections == null || mConnections.isEmpty()) {
return;
}
- final Iterator<T> it = mConnections.iterator();
- while (it.hasNext()) {
- T c = it.next();
- consumer.accept(c);
+ for (int i = mConnections.size() - 1; i >= 0; i--) {
+ consumer.accept(mConnections.valueAt(i));
}
}
}
- /** Removes the connection between the activity and all services that were connected to it. */
+ /**
+ * Removes the connection between the activity and all services that were connected to it. In
+ * general, this method is used to clean up if the activity didn't unbind services before it
+ * is destroyed.
+ */
void disconnectActivityFromServices() {
- if (mConnections == null || mConnections.isEmpty()) {
+ if (mConnections == null || mConnections.isEmpty() || mIsDisconnecting) {
return;
}
- // Capture and null out mConnections, to guarantee that we process
+ // Mark as disconnecting, to guarantee that we process
// disconnect of these specific connections exactly once even if
// we're racing with rapid activity lifecycle churn and this
// method is invoked more than once on this object.
- final Object disc = mConnections;
- mConnections = null;
- mService.mH.post(() -> mService.mAmInternal.disconnectActivityFromServices(this, disc));
+ // It is possible that {@link #removeConnection} is called while the disconnect-runnable is
+ // still in the message queue, so keep the reference of {@link #mConnections} to make sure
+ // the connection list is up-to-date.
+ mIsDisconnecting = true;
+ mService.mH.post(() -> {
+ mService.mAmInternal.disconnectActivityFromServices(this);
+ mIsDisconnecting = false;
+ });
}
public void dump(PrintWriter pw, String prefix) {
@@ -116,4 +142,9 @@ public class ActivityServiceConnectionsHolder<T> {
}
}
+ /** Used by {@link ActivityRecord#dump}. */
+ @Override
+ public String toString() {
+ return String.valueOf(mConnections);
+ }
}
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java
index ddf0117987dd..d380f8cd7337 100644
--- a/services/core/java/com/android/server/wm/ActivityStack.java
+++ b/services/core/java/com/android/server/wm/ActivityStack.java
@@ -60,10 +60,18 @@ import static android.view.WindowManager.TRANSIT_TASK_OPEN_BEHIND;
import static android.view.WindowManager.TRANSIT_TASK_TO_BACK;
import static android.view.WindowManager.TRANSIT_TASK_TO_FRONT;
-import static com.android.server.am.ActivityStackProto.DISPLAY_ID;
-import static com.android.server.am.ActivityStackProto.FULLSCREEN;
-import static com.android.server.am.ActivityStackProto.RESUMED_ACTIVITY;
-import static com.android.server.am.ActivityStackProto.STACK;
+import static com.android.server.wm.TaskProto.ACTIVITIES;
+import static com.android.server.wm.TaskProto.ACTIVITY_TYPE;
+import static com.android.server.wm.TaskProto.BOUNDS;
+import static com.android.server.wm.TaskProto.DISPLAYED_BOUNDS;
+import static com.android.server.wm.TaskProto.DISPLAY_ID;
+import static com.android.server.wm.TaskProto.LAST_NON_FULLSCREEN_BOUNDS;
+import static com.android.server.wm.TaskProto.MIN_HEIGHT;
+import static com.android.server.wm.TaskProto.MIN_WIDTH;
+import static com.android.server.wm.TaskProto.ORIG_ACTIVITY;
+import static com.android.server.wm.TaskProto.REAL_ACTIVITY;
+import static com.android.server.wm.TaskProto.RESIZE_MODE;
+import static com.android.server.wm.TaskProto.RESUMED_ACTIVITY;
import static com.android.server.wm.ActivityStack.ActivityState.PAUSED;
import static com.android.server.wm.ActivityStack.ActivityState.PAUSING;
import static com.android.server.wm.ActivityStack.ActivityState.RESUMED;
@@ -107,15 +115,19 @@ import static com.android.server.wm.BoundsAnimationController.NO_PIP_MODE_CHANGE
import static com.android.server.wm.BoundsAnimationController.SCHEDULE_PIP_MODE_CHANGED_ON_END;
import static com.android.server.wm.BoundsAnimationController.SCHEDULE_PIP_MODE_CHANGED_ON_START;
import static com.android.server.wm.DragResizeMode.DRAG_RESIZE_MODE_DOCKED_DIVIDER;
-import static com.android.server.wm.StackProto.ADJUSTED_BOUNDS;
-import static com.android.server.wm.StackProto.ADJUSTED_FOR_IME;
-import static com.android.server.wm.StackProto.ADJUST_DIVIDER_AMOUNT;
-import static com.android.server.wm.StackProto.ADJUST_IME_AMOUNT;
-import static com.android.server.wm.StackProto.ANIMATING_BOUNDS;
-import static com.android.server.wm.StackProto.DEFER_REMOVAL;
-import static com.android.server.wm.StackProto.FILLS_PARENT;
-import static com.android.server.wm.StackProto.MINIMIZE_AMOUNT;
-import static com.android.server.wm.StackProto.WINDOW_CONTAINER;
+import static com.android.server.wm.TaskProto.ADJUSTED_BOUNDS;
+import static com.android.server.wm.TaskProto.ADJUSTED_FOR_IME;
+import static com.android.server.wm.TaskProto.ADJUST_DIVIDER_AMOUNT;
+import static com.android.server.wm.TaskProto.ADJUST_IME_AMOUNT;
+import static com.android.server.wm.TaskProto.ANIMATING_BOUNDS;
+import static com.android.server.wm.TaskProto.DEFER_REMOVAL;
+import static com.android.server.wm.TaskProto.FILLS_PARENT;
+import static com.android.server.wm.TaskProto.MINIMIZE_AMOUNT;
+import static com.android.server.wm.TaskProto.ROOT_TASK_ID;
+import static com.android.server.wm.TaskProto.SURFACE_HEIGHT;
+import static com.android.server.wm.TaskProto.SURFACE_WIDTH;
+import static com.android.server.wm.TaskProto.TASKS;
+import static com.android.server.wm.TaskProto.WINDOW_CONTAINER;
import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN;
import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
@@ -341,6 +353,11 @@ class ActivityStack extends Task implements BoundsAnimationTarget {
private static final int TRANSLUCENT_TIMEOUT_MSG = FIRST_ACTIVITY_STACK_MSG + 1;
+ // TODO(task-hierarchy): remove when tiles can be actual parents
+ TaskTile mTile = null;
+
+ private int mLastTaskOrganizerWindowingMode = -1;
+
private final Handler mHandler;
private class ActivityStackHandler extends Handler {
@@ -638,11 +655,20 @@ class ActivityStack extends Task implements BoundsAnimationTarget {
}
@Override
+ public void resolveOverrideConfiguration(Configuration newParentConfig) {
+ super.resolveOverrideConfiguration(newParentConfig);
+ if (mTile != null) {
+ // If this is a virtual child of a tile, simulate the parent-child relationship
+ mTile.updateResolvedConfig(getResolvedOverrideConfiguration());
+ }
+ }
+
+ @Override
public void onConfigurationChanged(Configuration newParentConfig) {
// Calling Task#onConfigurationChanged() for leaf task since the ops in this method are
// particularly for ActivityStack, like preventing bounds changes when inheriting certain
// windowing mode.
- if (!isRootTask()) {
+ if (!isRootTask() || this instanceof TaskTile) {
super.onConfigurationChanged(newParentConfig);
return;
}
@@ -770,6 +796,13 @@ class ActivityStack extends Task implements BoundsAnimationTarget {
}
final int windowingMode = getWindowingMode();
+ if (windowingMode == mLastTaskOrganizerWindowingMode) {
+ // If our windowing mode hasn't actually changed, then just stick
+ // with our old organizer. This lets us implement the semantic
+ // where SysUI can continue to manage it's old tasks
+ // while CTS temporarily takes over the registration.
+ return;
+ }
/*
* Different windowing modes may be managed by different task organizers. If
* getTaskOrganizer returns null, we still call setTaskOrganizer to
@@ -778,6 +811,7 @@ class ActivityStack extends Task implements BoundsAnimationTarget {
final ITaskOrganizer org =
mWmService.mAtmService.mTaskOrganizerController.getTaskOrganizer(windowingMode);
setTaskOrganizer(org);
+ mLastTaskOrganizerWindowingMode = windowingMode;
}
@Override
@@ -3944,7 +3978,6 @@ class ActivityStack extends Task implements BoundsAnimationTarget {
? ((WindowContainer) newParent).getDisplayContent() : null;
final DisplayContent oldDisplay = oldParent != null
? ((WindowContainer) oldParent).getDisplayContent() : null;
-
super.onParentChanged(newParent, oldParent);
if (display != null && inSplitScreenPrimaryWindowingMode()
@@ -3963,6 +3996,11 @@ class ActivityStack extends Task implements BoundsAnimationTarget {
if (oldDisplay != null && oldDisplay.isRemoving()) {
postReparent();
}
+ if (mTile != null && getSurfaceControl() != null) {
+ // by now, the TaskStack should already have been reparented, so we can reparent its
+ // surface here
+ reparentSurfaceControl(getPendingTransaction(), mTile.getSurfaceControl());
+ }
}
void reparent(DisplayContent newParent, boolean onTop) {
@@ -4000,7 +4038,16 @@ class ActivityStack extends Task implements BoundsAnimationTarget {
@Override
void getRelativeDisplayedPosition(Point outPos) {
- super.getRelativeDisplayedPosition(outPos);
+ // check for tile which is "virtually" a parent.
+ if (mTile != null) {
+ final Rect dispBounds = getDisplayedBounds();
+ outPos.set(dispBounds.left, dispBounds.top);
+ final Rect parentBounds = mTile.getBounds();
+ outPos.offset(-parentBounds.left, -parentBounds.top);
+ } else {
+ super.getRelativeDisplayedPosition(outPos);
+ }
+
final int outset = getStackOutset();
outPos.x -= outset;
outPos.y -= outset;
@@ -4010,6 +4057,16 @@ class ActivityStack extends Task implements BoundsAnimationTarget {
if (mSurfaceControl == null) {
return;
}
+ if (mTile != null) {
+ // Tile controls crop, so the app needs to be able to draw its background outside of
+ // the stack bounds for when the tile crop gets bigger than the stack.
+ if (mLastSurfaceSize.equals(0, 0)) {
+ return;
+ }
+ transaction.setWindowCrop(mSurfaceControl, null);
+ mLastSurfaceSize.set(0, 0);
+ return;
+ }
final Rect stackBounds = getDisplayedBounds();
int width = stackBounds.width();
@@ -4033,6 +4090,9 @@ class ActivityStack extends Task implements BoundsAnimationTarget {
@Override
void onDisplayChanged(DisplayContent dc) {
+ if (mTile != null && dc != mTile.getDisplay()) {
+ mTile.removeChild(this);
+ }
super.onDisplayChanged(dc);
if (isRootTask()) {
updateSurfaceBounds();
@@ -4848,32 +4908,44 @@ class ActivityStack extends Task implements BoundsAnimationTarget {
return shouldSleepActivities() || mAtmService.mShuttingDown;
}
- @Override
- public void dumpDebug(ProtoOutputStream proto, long fieldId,
- @WindowTraceLogLevel int logLevel) {
- final long token = proto.start(fieldId);
- dumpDebugInnerStackOnly(proto, STACK, logLevel);
- proto.write(com.android.server.am.ActivityStackProto.ID, getRootTaskId());
+ TaskTile getTile() {
+ return mTile;
+ }
- forAllTasks((t) -> {
- t.dumpDebugInner(proto, com.android.server.am.ActivityStackProto.TASKS, logLevel);
- }, true /* traverseTopToBottom */, this);
- if (mResumedActivity != null) {
- mResumedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY);
+ /**
+ * Don't call this directly. instead use {@link TaskTile#addChild} or
+ * {@link TaskTile#removeChild}.
+ */
+ void setTile(TaskTile tile) {
+ TaskTile origTile = mTile;
+ mTile = tile;
+ final ConfigurationContainer parent = getParent();
+ if (parent != null) {
+ onConfigurationChanged(parent.getConfiguration());
}
- proto.write(DISPLAY_ID, getDisplayId());
- if (!matchParentBounds()) {
- final Rect bounds = getRequestedOverrideBounds();
- bounds.dumpDebug(proto, com.android.server.am.ActivityStackProto.BOUNDS);
+
+ // Reparent to tile surface or back to original parent
+ if (getSurfaceControl() == null) {
+ return;
+ }
+ if (mTile != null) {
+ reparentSurfaceControl(getPendingTransaction(), mTile.getSurfaceControl());
+ } else if (mTile == null && origTile != null) {
+ reparentSurfaceControl(getPendingTransaction(), getParentSurfaceControl());
}
+ }
- // TODO: Remove, no longer needed with windowingMode.
- proto.write(FULLSCREEN, matchParentBounds());
- proto.end(token);
+ @Override
+ void removeImmediately() {
+ // TODO(task-hierarchy): remove this override when tiles are in hierarchy
+ if (mTile != null) {
+ mTile.removeChild(this);
+ }
+ super.removeImmediately();
}
- // TODO(proto-merge): Remove once protos for ActivityStack and TaskStack are merged.
- void dumpDebugInnerStackOnly(ProtoOutputStream proto, long fieldId,
+ @Override
+ public void dumpDebug(ProtoOutputStream proto, long fieldId,
@WindowTraceLogLevel int logLevel) {
if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) {
return;
@@ -4881,19 +4953,60 @@ class ActivityStack extends Task implements BoundsAnimationTarget {
final long token = proto.start(fieldId);
super.dumpDebug(proto, WINDOW_CONTAINER, logLevel);
- proto.write(StackProto.ID, getRootTaskId());
- forAllTasks((t) -> {
- t.dumpDebugInnerTaskOnly(proto, StackProto.TASKS, logLevel);
- }, true /* traverseTopToBottom */, this);
+
+ proto.write(TaskProto.ID, mTaskId);
+ proto.write(DISPLAY_ID, getDisplayId());
+ proto.write(ROOT_TASK_ID, getRootTaskId());
+
+ for (int i = mChildren.size() - 1; i >= 0; --i) {
+ final WindowContainer child = mChildren.get(i);
+ if (child instanceof Task) {
+ child.dumpDebug(proto, TASKS, logLevel);
+ } else if (child instanceof ActivityRecord) {
+ child.dumpDebug(proto, ACTIVITIES, logLevel);
+ } else {
+ throw new IllegalStateException("Unknown child type: " + child);
+ }
+ }
+
+ if (mResumedActivity != null) {
+ mResumedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY);
+ }
+ if (realActivity != null) {
+ proto.write(REAL_ACTIVITY, realActivity.flattenToShortString());
+ }
+ if (origActivity != null) {
+ proto.write(ORIG_ACTIVITY, origActivity.flattenToShortString());
+ }
+ proto.write(ACTIVITY_TYPE, getActivityType());
+ proto.write(RESIZE_MODE, mResizeMode);
+ proto.write(MIN_WIDTH, mMinWidth);
+ proto.write(MIN_HEIGHT, mMinHeight);
+
proto.write(FILLS_PARENT, matchParentBounds());
- getRawBounds().dumpDebug(proto, StackProto.BOUNDS);
+
+ if (!matchParentBounds()) {
+ final Rect bounds = getRequestedOverrideBounds();
+ bounds.dumpDebug(proto, BOUNDS);
+ }
+ getOverrideDisplayedBounds().dumpDebug(proto, DISPLAYED_BOUNDS);
+ mAdjustedBounds.dumpDebug(proto, ADJUSTED_BOUNDS);
+ if (mLastNonFullscreenBounds != null) {
+ mLastNonFullscreenBounds.dumpDebug(proto, LAST_NON_FULLSCREEN_BOUNDS);
+ }
+
proto.write(DEFER_REMOVAL, mDeferRemoval);
proto.write(MINIMIZE_AMOUNT, mMinimizeAmount);
proto.write(ADJUSTED_FOR_IME, mAdjustedForIme);
proto.write(ADJUST_IME_AMOUNT, mAdjustImeAmount);
proto.write(ADJUST_DIVIDER_AMOUNT, mAdjustDividerAmount);
- mAdjustedBounds.dumpDebug(proto, ADJUSTED_BOUNDS);
proto.write(ANIMATING_BOUNDS, mBoundsAnimating);
+
+ if (mSurfaceControl != null) {
+ proto.write(SURFACE_WIDTH, mSurfaceControl.getWidth());
+ proto.write(SURFACE_HEIGHT, mSurfaceControl.getHeight());
+ }
+
proto.end(token);
}
}
diff --git a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
index 362e781f7fb9..a513ef8f3190 100644
--- a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
@@ -1711,6 +1711,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks {
* invisible as well and added to the stopping list. After which we process the
* stopping list by handling the idle.
*/
+ stack.cancelAnimation();
stack.mForceHidden = true;
stack.ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS);
stack.mForceHidden = false;
diff --git a/services/core/java/com/android/server/wm/ActivityStartController.java b/services/core/java/com/android/server/wm/ActivityStartController.java
index 75d87edbc437..f35ba9e69ed7 100644
--- a/services/core/java/com/android/server/wm/ActivityStartController.java
+++ b/services/core/java/com/android/server/wm/ActivityStartController.java
@@ -386,6 +386,8 @@ public class ActivityStartController {
} else {
callingPid = callingUid = -1;
}
+ final int filterCallingUid = ActivityStarter.computeResolveFilterUid(
+ callingUid, realCallingUid, UserHandle.USER_NULL);
final SparseArray<String> startingUidPkgs = new SparseArray<>();
final long origId = Binder.clearCallingIdentity();
try {
@@ -408,9 +410,7 @@ public class ActivityStartController {
// Collect information about the target of the Intent.
ActivityInfo aInfo = mSupervisor.resolveActivity(intent, resolvedTypes[i],
- 0 /* startFlags */, null /* profilerInfo */, userId,
- ActivityStarter.computeResolveFilterUid(
- callingUid, realCallingUid, UserHandle.USER_NULL));
+ 0 /* startFlags */, null /* profilerInfo */, userId, filterCallingUid);
aInfo = mService.mAmInternal.getActivityInfoForUser(aInfo, userId);
if (aInfo != null) {
@@ -457,6 +457,7 @@ public class ActivityStartController {
Slog.wtf(TAG, sb.toString());
}
+ final IBinder sourceResultTo = resultTo;
final ActivityRecord[] outActivity = new ActivityRecord[1];
// Lock the loop to ensure the activities launched in a sequence.
synchronized (mService.mGlobalLock) {
@@ -470,7 +471,18 @@ public class ActivityStartController {
}
return startResult;
}
- resultTo = outActivity[0] != null ? outActivity[0].appToken : null;
+ final ActivityRecord started = outActivity[0];
+ if (started != null && started.getUid() == filterCallingUid) {
+ // Only the started activity which has the same uid as the source caller can
+ // be the caller of next activity.
+ resultTo = started.appToken;
+ } else {
+ resultTo = sourceResultTo;
+ // Different apps not adjacent to the caller are forced to be new task.
+ if (i < starters.length - 1) {
+ starters[i + 1].getIntent().addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ }
+ }
}
}
} finally {
diff --git a/services/core/java/com/android/server/wm/ActivityStartInterceptor.java b/services/core/java/com/android/server/wm/ActivityStartInterceptor.java
index 2fb0ac5fbeaa..76aa1d115ef6 100644
--- a/services/core/java/com/android/server/wm/ActivityStartInterceptor.java
+++ b/services/core/java/com/android/server/wm/ActivityStartInterceptor.java
@@ -52,6 +52,7 @@ import android.os.UserHandle;
import android.os.UserManager;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.app.BlockedAppActivity;
import com.android.internal.app.HarmfulAppWarningActivity;
import com.android.internal.app.SuspendedAppActivity;
import com.android.internal.app.UnlaunchableAppActivity;
@@ -166,6 +167,9 @@ class ActivityStartInterceptor {
// no user action can undo this.
return true;
}
+ if (interceptLockTaskModeViolationPackageIfNeeded()) {
+ return true;
+ }
if (interceptHarmfulAppIfNeeded()) {
// If the app has a "harmful app" warning associated with it, we should ask to uninstall
// before issuing the work challenge.
@@ -270,6 +274,25 @@ class ActivityStartInterceptor {
return true;
}
+ private boolean interceptLockTaskModeViolationPackageIfNeeded() {
+ if (mAInfo == null || mAInfo.applicationInfo == null) {
+ return false;
+ }
+ LockTaskController controller = mService.getLockTaskController();
+ String packageName = mAInfo.applicationInfo.packageName;
+ int lockTaskLaunchMode = ActivityRecord.getLockTaskLaunchMode(mAInfo, mActivityOptions);
+ if (controller.isActivityAllowed(mUserId, packageName, lockTaskLaunchMode)) {
+ return false;
+ }
+ mIntent = BlockedAppActivity.createIntent(mUserId, mAInfo.applicationInfo.packageName);
+ mCallingPid = mRealCallingPid;
+ mCallingUid = mRealCallingUid;
+ mResolvedType = null;
+ mRInfo = mSupervisor.resolveIntent(mIntent, mResolvedType, mUserId, 0, mRealCallingUid);
+ mAInfo = mSupervisor.resolveActivity(mIntent, mRInfo, mStartFlags, null /*profilerInfo*/);
+ return true;
+ }
+
private boolean interceptWorkProfileChallengeIfNeeded() {
final Intent interceptingIntent = interceptWithConfirmCredentialsIfNeeded(mAInfo, mUserId);
if (interceptingIntent == null) {
diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java
index 9e3292b59402..c7270f257923 100644
--- a/services/core/java/com/android/server/wm/ActivityStarter.java
+++ b/services/core/java/com/android/server/wm/ActivityStarter.java
@@ -2493,7 +2493,6 @@ class ActivityStarter {
return this;
}
- @VisibleForTesting
Intent getIntent() {
return mRequest.intent;
}
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index f019013eedf1..5f3e3a39490c 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -69,6 +69,7 @@ import static com.android.server.am.ActivityManagerService.ANR_TRACE_DIR;
import static com.android.server.am.ActivityManagerService.MY_PID;
import static com.android.server.am.ActivityManagerService.STOCK_PM_FLAGS;
import static com.android.server.am.ActivityManagerService.dumpStackTraces;
+import static com.android.server.am.ActivityManagerServiceDumpActivitiesProto.ROOT_WINDOW_CONTAINER;
import static com.android.server.am.ActivityManagerServiceDumpProcessesProto.CONFIG_WILL_CHANGE;
import static com.android.server.am.ActivityManagerServiceDumpProcessesProto.CONTROLLER;
import static com.android.server.am.ActivityManagerServiceDumpProcessesProto.CURRENT_TRACKER;
@@ -144,6 +145,7 @@ import android.app.IApplicationThread;
import android.app.IAssistDataReceiver;
import android.app.INotificationManager;
import android.app.IRequestFinishCallback;
+import android.app.ITaskOrganizerController;
import android.app.ITaskStackListener;
import android.app.Notification;
import android.app.NotificationManager;
@@ -225,10 +227,8 @@ import android.util.SparseArray;
import android.util.TimeUtils;
import android.util.proto.ProtoOutputStream;
import android.view.IRecentsAnimationRunner;
-import android.view.ITaskOrganizer;
import android.view.RemoteAnimationAdapter;
import android.view.RemoteAnimationDefinition;
-import android.view.WindowContainerTransaction;
import android.view.WindowManager;
import com.android.internal.R;
@@ -258,7 +258,6 @@ import com.android.server.SystemServiceManager;
import com.android.server.UiThread;
import com.android.server.Watchdog;
import com.android.server.am.ActivityManagerService;
-import com.android.server.am.ActivityManagerServiceDumpActivitiesProto;
import com.android.server.am.ActivityManagerServiceDumpProcessesProto;
import com.android.server.am.AppTimeTracker;
import com.android.server.am.BaseErrorDialog;
@@ -292,7 +291,6 @@ import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -344,10 +342,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
/** This activity is being relaunched due to a free-resize operation. */
public static final int RELAUNCH_REASON_FREE_RESIZE = 2;
- /** Flag indicating that an applied transaction may have effected lifecycle */
- private static final int TRANSACT_EFFECTS_CLIENT_CONFIG = 1;
- private static final int TRANSACT_EFFECTS_LIFECYCLE = 1 << 1;
-
Context mContext;
/**
@@ -669,8 +663,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
/**
* Stores the registration and state of TaskOrganizers in use.
*/
- TaskOrganizerController mTaskOrganizerController =
- new TaskOrganizerController(this, mGlobalLock);
+ TaskOrganizerController mTaskOrganizerController = new TaskOrganizerController(this);
private int mDeviceOwnerUid = Process.INVALID_UID;
@@ -1286,15 +1279,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
}
@Override
- public final void registerTaskOrganizer(ITaskOrganizer organizer, int windowingMode) {
- enforceCallerIsRecentsOrHasPermission(
- MANAGE_ACTIVITY_STACKS, "registerTaskOrganizer()");
- synchronized (mGlobalLock) {
- mTaskOrganizerController.registerTaskOrganizer(organizer, windowingMode);
- }
- }
-
- @Override
public IBinder requestStartActivityPermissionToken(IBinder delegatorToken) {
int callingUid = Binder.getCallingUid();
if (UserHandle.getAppId(callingUid) != SYSTEM_UID) {
@@ -2263,11 +2247,11 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
}
@Override
- public void setTaskWindowingMode(int taskId, int windowingMode, boolean toTop) {
+ public boolean setTaskWindowingMode(int taskId, int windowingMode, boolean toTop) {
if (windowingMode == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY) {
- setTaskWindowingModeSplitScreenPrimary(taskId, SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT,
+ return setTaskWindowingModeSplitScreenPrimary(taskId,
+ SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT,
toTop, ANIMATE, null /* initialBounds */, true /* showRecents */);
- return;
}
enforceCallerIsRecentsOrHasPermission(MANAGE_ACTIVITY_STACKS, "setTaskWindowingMode()");
synchronized (mGlobalLock) {
@@ -2277,7 +2261,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
MATCH_TASK_IN_STACKS_ONLY);
if (task == null) {
Slog.w(TAG, "setTaskWindowingMode: No task for id=" + taskId);
- return;
+ return false;
}
if (DEBUG_STACK) Slog.d(TAG_STACK, "setTaskWindowingMode: moving task=" + taskId
@@ -2294,6 +2278,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
stack.moveToFront("setTaskWindowingMode", task);
}
stack.setWindowingMode(windowingMode);
+ return true;
} finally {
Binder.restoreCallingIdentity(ident);
}
@@ -2712,6 +2697,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
* stack. Pass {@code null} to use default bounds.
* @param showRecents If the recents activity should be shown on the other side of the task
* going into split-screen mode.
+ * @return Whether the task was successfully put into splitscreen.
*/
@Override
public boolean setTaskWindowingModeSplitScreenPrimary(int taskId, int createMode,
@@ -2721,20 +2707,26 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
synchronized (mGlobalLock) {
final long ident = Binder.clearCallingIdentity();
try {
+ if (isInLockTaskMode()) {
+ Slog.w(TAG, "setTaskWindowingModeSplitScreenPrimary: Is in lock task mode="
+ + getLockTaskModeState());
+ return false;
+ }
+
final Task task = mRootWindowContainer.anyTaskForId(taskId,
MATCH_TASK_IN_STACKS_ONLY);
if (task == null) {
Slog.w(TAG, "setTaskWindowingModeSplitScreenPrimary: No task for id=" + taskId);
return false;
}
- if (DEBUG_STACK) Slog.d(TAG_STACK,
- "setTaskWindowingModeSplitScreenPrimary: moving task=" + taskId
- + " to createMode=" + createMode + " toTop=" + toTop);
if (!task.isActivityTypeStandardOrUndefined()) {
throw new IllegalArgumentException("setTaskWindowingMode: Attempt to move"
+ " non-standard task " + taskId + " to split-screen windowing mode");
}
+ if (DEBUG_STACK) Slog.d(TAG_STACK,
+ "setTaskWindowingModeSplitScreenPrimary: moving task=" + taskId
+ + " to createMode=" + createMode + " toTop=" + toTop);
mWindowManager.setDockedStackCreateStateLocked(createMode, initialBounds);
final int windowingMode = task.getWindowingMode();
final ActivityStack stack = task.getStack();
@@ -3304,116 +3296,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
}
}
- private int sanitizeAndApplyChange(WindowContainer container,
- WindowContainerTransaction.Change change) {
- if (!(container instanceof Task || container instanceof ActivityStack)) {
- throw new RuntimeException("Invalid token in task transaction");
- }
- // The "client"-facing API should prevent bad changes; however, just in case, sanitize
- // masks here.
- int configMask = change.getConfigSetMask();
- int windowMask = change.getWindowSetMask();
- configMask &= ActivityInfo.CONFIG_WINDOW_CONFIGURATION
- | ActivityInfo.CONFIG_SMALLEST_SCREEN_SIZE;
- windowMask &= WindowConfiguration.WINDOW_CONFIG_BOUNDS;
- int effects = 0;
- if (configMask != 0) {
- Configuration c = new Configuration(container.getRequestedOverrideConfiguration());
- c.setTo(change.getConfiguration(), configMask, windowMask);
- container.onRequestedOverrideConfigurationChanged(c);
- // TODO(b/145675353): remove the following once we could apply new bounds to the
- // pinned stack together with its children.
- resizePinnedStackIfNeeded(container, configMask, windowMask, c);
- effects |= TRANSACT_EFFECTS_CLIENT_CONFIG;
- }
- if ((change.getChangeMask() & WindowContainerTransaction.Change.CHANGE_FOCUSABLE) != 0) {
- if (container.setFocusable(change.getFocusable())) {
- effects |= TRANSACT_EFFECTS_LIFECYCLE;
- }
- }
- return effects;
- }
-
- private void resizePinnedStackIfNeeded(ConfigurationContainer container, int configMask,
- int windowMask, Configuration config) {
- if ((container instanceof ActivityStack)
- && ((configMask & ActivityInfo.CONFIG_WINDOW_CONFIGURATION) != 0)
- && ((windowMask & WindowConfiguration.WINDOW_CONFIG_BOUNDS) != 0)) {
- final ActivityStack stack = (ActivityStack) container;
- if (stack.inPinnedWindowingMode()) {
- stack.resize(config.windowConfiguration.getBounds(),
- null /* tempTaskBounds */, null /* tempTaskInsetBounds */,
- PRESERVE_WINDOWS, true /* deferResume */);
- }
- }
- }
-
- private int applyWindowContainerChange(WindowContainer wc,
- WindowContainerTransaction.Change c) {
- int effects = sanitizeAndApplyChange(wc, c);
-
- Rect enterPipBounds = c.getEnterPipBounds();
- if (enterPipBounds != null) {
- Task tr = (Task) wc;
- mStackSupervisor.updatePictureInPictureMode(tr,
- enterPipBounds, true);
- }
- return effects;
- }
-
- @Override
- public void applyContainerTransaction(WindowContainerTransaction t) {
- mAmInternal.enforceCallingPermission(MANAGE_ACTIVITY_STACKS, "applyContainerTransaction()");
- if (t == null) {
- return;
- }
- long ident = Binder.clearCallingIdentity();
- try {
- synchronized (mGlobalLock) {
- int effects = 0;
- deferWindowLayout();
- try {
- ArraySet<WindowContainer> haveConfigChanges = new ArraySet<>();
- Iterator<Map.Entry<IBinder, WindowContainerTransaction.Change>> entries =
- t.getChanges().entrySet().iterator();
- while (entries.hasNext()) {
- final Map.Entry<IBinder, WindowContainerTransaction.Change> entry =
- entries.next();
- final WindowContainer wc = WindowContainer.RemoteToken.fromBinder(
- entry.getKey()).getContainer();
- int containerEffect = applyWindowContainerChange(wc, entry.getValue());
- effects |= containerEffect;
- // Lifecycle changes will trigger ensureConfig for everything.
- if ((effects & TRANSACT_EFFECTS_LIFECYCLE) == 0
- && (containerEffect & TRANSACT_EFFECTS_CLIENT_CONFIG) != 0) {
- haveConfigChanges.add(wc);
- }
- }
- if ((effects & TRANSACT_EFFECTS_LIFECYCLE) != 0) {
- // Already calls ensureActivityConfig
- mRootWindowContainer.ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS);
- } else if ((effects & TRANSACT_EFFECTS_CLIENT_CONFIG) != 0) {
- final PooledConsumer f = PooledLambda.obtainConsumer(
- ActivityRecord::ensureActivityConfiguration,
- PooledLambda.__(ActivityRecord.class), 0,
- false /* preserveWindow */);
- try {
- for (int i = haveConfigChanges.size() - 1; i >= 0; --i) {
- haveConfigChanges.valueAt(i).forAllActivities(f);
- }
- } finally {
- f.recycle();
- }
- }
- } finally {
- continueWindowLayout();
- }
- }
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
@Override
public boolean releaseActivityInstance(IBinder token) {
synchronized (mGlobalLock) {
@@ -4442,6 +4324,13 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
}
}
+ @Override
+ public ITaskOrganizerController getTaskOrganizerController() {
+ mAmInternal.enforceCallingPermission(MANAGE_ACTIVITY_STACKS,
+ "getTaskOrganizerController()");
+ return mTaskOrganizerController;
+ }
+
/**
* Check that we have the features required for VR-related API calls, and throw an exception if
* not.
@@ -7082,10 +6971,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
public void writeActivitiesToProto(ProtoOutputStream proto) {
synchronized (mGlobalLock) {
// The output proto of "activity --proto activities"
- // is ActivityManagerServiceDumpActivitiesProto
- mRootWindowContainer.dumpDebug(proto,
- ActivityManagerServiceDumpActivitiesProto.ACTIVITY_STACK_SUPERVISOR,
- WindowTraceLogLevel.ALL);
+ mRootWindowContainer.dumpDebug(
+ proto, ROOT_WINDOW_CONTAINER, WindowTraceLogLevel.ALL);
}
}
diff --git a/services/core/java/com/android/server/wm/AnimationAdapter.java b/services/core/java/com/android/server/wm/AnimationAdapter.java
index 1be3d614de33..0519b80c732a 100644
--- a/services/core/java/com/android/server/wm/AnimationAdapter.java
+++ b/services/core/java/com/android/server/wm/AnimationAdapter.java
@@ -21,6 +21,7 @@ import android.view.SurfaceControl;
import android.view.SurfaceControl.Transaction;
import android.view.animation.Animation;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
import java.io.PrintWriter;
@@ -47,9 +48,10 @@ interface AnimationAdapter {
* component running the animation after {@code finishCallback} has been
* invoked, or after the animation was cancelled.
* @param t The Transaction to apply the initial frame of the animation.
+ * @param type The type of the animation.
* @param finishCallback The callback to be invoked when the animation has finished.
*/
- void startAnimation(SurfaceControl animationLeash, Transaction t,
+ void startAnimation(SurfaceControl animationLeash, Transaction t, @AnimationType int type,
OnAnimationFinishedCallback finishCallback);
/**
diff --git a/services/core/java/com/android/server/wm/AppTransitionController.java b/services/core/java/com/android/server/wm/AppTransitionController.java
index 3927d5fa2604..f72020ea8988 100644
--- a/services/core/java/com/android/server/wm/AppTransitionController.java
+++ b/services/core/java/com/android/server/wm/AppTransitionController.java
@@ -377,9 +377,9 @@ public class AppTransitionController {
transitioningDecendants.add(app);
}
}
- wc.applyAnimation(animLp, transit, visible, voiceInteraction, () -> {
+ wc.applyAnimation(animLp, transit, visible, voiceInteraction, (type, anim) -> {
for (int j = 0; j < transitioningDecendants.size(); ++j) {
- transitioningDecendants.get(j).onAnimationFinished();
+ transitioningDecendants.get(j).onAnimationFinished(type, anim);
}
});
}
@@ -431,6 +431,8 @@ public class AppTransitionController {
while (!candidates.isEmpty()) {
final WindowContainer current = candidates.removeFirst();
final WindowContainer parent = current.getParent();
+ siblings.clear();
+ siblings.add(current);
boolean canPromote = true;
if (parent == null) {
@@ -468,12 +470,11 @@ public class AppTransitionController {
//
// [Task] +- [ActivityRecord1] (visible, in opening apps)
// +- [ActivityRecord2] (visible, not in opening apps)
- siblings.clear();
for (int j = 0; j < parent.getChildCount(); ++j) {
final WindowContainer sibling = parent.getChildAt(j);
- if (sibling == current || candidates.remove(sibling)) {
+ if (candidates.remove(sibling)) {
siblings.add(sibling);
- } else if (sibling.isVisible()) {
+ } else if (sibling != current && sibling.isVisible()) {
canPromote = false;
}
}
diff --git a/services/core/java/com/android/server/wm/BLASTSyncEngine.java b/services/core/java/com/android/server/wm/BLASTSyncEngine.java
new file mode 100644
index 000000000000..94decc792fd3
--- /dev/null
+++ b/services/core/java/com/android/server/wm/BLASTSyncEngine.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.util.Slog;
+import android.view.ITaskOrganizer;
+import android.view.SurfaceControl;
+
+import java.util.HashMap;
+
+/**
+ * Utility class for collecting and merging transactions from various sources asynchronously.
+ * For example to use to synchronously resize all the children of a window container
+ * 1. Open a new sync set, and pass the listener that will be invoked
+ * int id startSyncSet(TransactionReadyListener)
+ * the returned ID will be eventually passed to the TransactionReadyListener in combination
+ * with the prepared transaction. You also use it to refer to the operation in future steps.
+ * 2. Ask each child to participate:
+ * addToSyncSet(int id, WindowContainer wc)
+ * if the child thinks it will be affected by a configuration change (a.k.a. has a visible
+ * window in its sub hierarchy, then we will increment a counter of expected callbacks
+ * At this point the containers hierarchy will redirect pendingTransaction and sub hierarchy
+ * updates in to the sync engine.
+ * 3. Apply your configuration changes to the window containers.
+ * 4. Tell the engine that the sync set is ready
+ * setReady(int id)
+ * 5. If there were no sub windows anywhere in the hierarchy to wait on, then
+ * transactionReady is immediately invoked, otherwise all the windows are poked
+ * to redraw and to deliver a buffer to WMS#finishDrawing.
+ * Once all this drawing is complete the combined transaction of all the buffers
+ * and pending transaction hierarchy changes will be delivered to the TransactionReadyListener
+ */
+class BLASTSyncEngine {
+ private static final String TAG = "BLASTSyncEngine";
+
+ interface TransactionReadyListener {
+ void transactionReady(int mSyncId, SurfaceControl.Transaction mergedTransaction);
+ };
+
+ // Holds state associated with a single synchronous set of operations.
+ class SyncState implements TransactionReadyListener {
+ int mSyncId;
+ SurfaceControl.Transaction mMergedTransaction;
+ int mRemainingTransactions;
+ TransactionReadyListener mListener;
+ boolean mReady = false;
+
+ private void tryFinish() {
+ if (mRemainingTransactions == 0 && mReady) {
+ mListener.transactionReady(mSyncId, mMergedTransaction);
+ mPendingSyncs.remove(mSyncId);
+ }
+ }
+
+ public void transactionReady(int mSyncId, SurfaceControl.Transaction mergedTransaction) {
+ mRemainingTransactions--;
+ mMergedTransaction.merge(mergedTransaction);
+ tryFinish();
+ }
+
+ void setReady() {
+ mReady = true;
+ tryFinish();
+ }
+
+ boolean addToSync(WindowContainer wc) {
+ if (wc.prepareForSync(this, mSyncId)) {
+ mRemainingTransactions++;
+ return true;
+ }
+ return false;
+ }
+
+ SyncState(TransactionReadyListener l, int id) {
+ mListener = l;
+ mSyncId = id;
+ mMergedTransaction = new SurfaceControl.Transaction();
+ mRemainingTransactions = 0;
+ }
+ };
+
+ int mNextSyncId = 0;
+
+ final HashMap<Integer, SyncState> mPendingSyncs = new HashMap();
+
+ BLASTSyncEngine() {
+ }
+
+ int startSyncSet(TransactionReadyListener listener) {
+ final int id = mNextSyncId++;
+ final SyncState s = new SyncState(listener, id);
+ mPendingSyncs.put(id, s);
+ return id;
+ }
+
+ boolean addToSyncSet(int id, WindowContainer wc) {
+ final SyncState st = mPendingSyncs.get(id);
+ return st.addToSync(wc);
+ }
+
+ // TODO(b/148476626): TIMEOUTS!
+ void setReady(int id) {
+ final SyncState st = mPendingSyncs.get(id);
+ st.setReady();
+ }
+}
diff --git a/services/core/java/com/android/server/wm/Dimmer.java b/services/core/java/com/android/server/wm/Dimmer.java
index 16aff9c10c7d..537ca08f49fc 100644
--- a/services/core/java/com/android/server/wm/Dimmer.java
+++ b/services/core/java/com/android/server/wm/Dimmer.java
@@ -20,6 +20,7 @@ import static com.android.server.wm.AlphaAnimationSpecProto.DURATION_MS;
import static com.android.server.wm.AlphaAnimationSpecProto.FROM;
import static com.android.server.wm.AlphaAnimationSpecProto.TO;
import static com.android.server.wm.AnimationSpecProto.ALPHA;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_DIMMER;
import android.annotation.Nullable;
import android.graphics.Rect;
@@ -29,6 +30,8 @@ import android.view.Surface;
import android.view.SurfaceControl;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
+import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
import java.io.PrintWriter;
@@ -135,7 +138,7 @@ class Dimmer {
mDimLayer = dimLayer;
mDimming = true;
final DimAnimatable dimAnimatable = new DimAnimatable(dimLayer);
- mSurfaceAnimator = new SurfaceAnimator(dimAnimatable, () -> {
+ mSurfaceAnimator = new SurfaceAnimator(dimAnimatable, (type, anim) -> {
if (!mDimming) {
dimAnimatable.removeSurface();
}
@@ -157,8 +160,8 @@ class Dimmer {
@VisibleForTesting
interface SurfaceAnimatorStarter {
void startAnimation(SurfaceAnimator surfaceAnimator, SurfaceControl.Transaction t,
- AnimationAdapter anim, boolean hidden,
- @Nullable Runnable animationFinishedCallback);
+ AnimationAdapter anim, boolean hidden, @AnimationType int type,
+ @Nullable OnAnimationFinishedCallback animationFinishedCallback);
}
Dimmer(WindowContainer host) {
@@ -345,7 +348,7 @@ class Dimmer {
mSurfaceAnimatorStarter.startAnimation(animator, t, new LocalAnimationAdapter(
new AlphaAnimationSpec(startAlpha, endAlpha, getDimDuration(container)),
mHost.mWmService.mSurfaceAnimationRunner), false /* hidden */,
- null /* animationFinishedCallback */);
+ ANIMATION_TYPE_DIMMER, null /* animationFinishedCallback */);
}
private long getDimDuration(WindowContainer container) {
diff --git a/services/core/java/com/android/server/wm/DisplayArea.java b/services/core/java/com/android/server/wm/DisplayArea.java
new file mode 100644
index 000000000000..b3edc91a4129
--- /dev/null
+++ b/services/core/java/com/android/server/wm/DisplayArea.java
@@ -0,0 +1,265 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_BEHIND;
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSET;
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
+import static android.view.WindowManager.TRANSIT_KEYGUARD_UNOCCLUDE;
+import static android.view.WindowManagerPolicyConstants.APPLICATION_LAYER;
+
+import static com.android.internal.util.Preconditions.checkState;
+import static com.android.server.wm.DisplayAreaChildProto.DISPLAY_AREA;
+import static com.android.server.wm.DisplayAreaChildProto.UNKNOWN;
+import static com.android.server.wm.DisplayAreaChildProto.WINDOW;
+import static com.android.server.wm.DisplayAreaProto.CHILDREN;
+import static com.android.server.wm.DisplayAreaProto.NAME;
+import static com.android.server.wm.DisplayAreaProto.WINDOW_CONTAINER;
+import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ORIENTATION;
+
+import android.graphics.Rect;
+import android.util.proto.ProtoOutputStream;
+
+import com.android.server.policy.WindowManagerPolicy;
+import com.android.server.protolog.common.ProtoLog;
+
+import java.util.Comparator;
+import java.util.function.Predicate;
+
+/**
+ * Container for grouping WindowContainer below DisplayContent.
+ *
+ * DisplayAreas are managed by a {@link DisplayAreaPolicy}, and can override configurations and
+ * can be leashed.
+ *
+ * DisplayAreas can contain nested DisplayAreas.
+ *
+ * DisplayAreas come in three flavors, to ensure that windows have the right Z-Order:
+ * - BELOW_TASKS: Can only contain BELOW_TASK DisplayAreas and WindowTokens that go below tasks.
+ * - ABOVE_TASKS: Can only contain ABOVE_TASK DisplayAreas and WindowTokens that go above tasks.
+ * - ANY: Can contain any kind of DisplayArea, and any kind of WindowToken or the Task container.
+ * Cannot have a sibling that is of type ANY.
+ *
+ * @param <T> type of the children of the DisplayArea.
+ */
+public class DisplayArea<T extends WindowContainer> extends WindowContainer<T> {
+
+ protected final Type mType;
+ private final String mName;
+
+ DisplayArea(WindowManagerService wms, Type type, String name) {
+ super(wms);
+ // TODO(display-area): move this up to ConfigurationContainer
+ mOrientation = SCREEN_ORIENTATION_UNSET;
+ mType = type;
+ mName = name;
+ }
+
+ @Override
+ void onChildPositionChanged(WindowContainer child) {
+ super.onChildPositionChanged(child);
+
+ // Verify that we have proper ordering
+ Type.checkChild(mType, Type.typeOf(child));
+
+ if (child instanceof ActivityStack) {
+ // TODO(display-area): ActivityStacks are type ANY, but are allowed to have siblings.
+ // They might need a separate type.
+ return;
+ }
+
+ for (int i = 1; i < getChildCount(); i++) {
+ final WindowContainer top = getChildAt(i - 1);
+ final WindowContainer bottom = getChildAt(i);
+ if (child == top || child == bottom) {
+ Type.checkSiblings(Type.typeOf(top), Type.typeOf(bottom));
+ }
+ }
+ }
+
+ @Override
+ boolean fillsParent() {
+ return true;
+ }
+
+ @Override
+ String getName() {
+ return mName;
+ }
+
+ @Override
+ public final void dumpDebug(ProtoOutputStream proto, long fieldId, int logLevel) {
+ final long token = proto.start(fieldId);
+ super.dumpDebug(proto, WINDOW_CONTAINER, logLevel);
+ proto.write(NAME, mName);
+ for (int i = 0; i < getChildCount(); i++) {
+ final long childToken = proto.start(CHILDREN);
+ final T child = getChildAt(i);
+ if (child instanceof ActivityStack) {
+ // TODO(display-area): Dump stacks & tasks here, instead of in DisplayContent's
+ // dumpDebug. For now, skip them here to avoid dumping them as UNKNOWN.
+ } else if (child instanceof WindowToken) {
+ ((WindowToken) child).dumpDebug(proto, WINDOW, logLevel);
+ } else if (child instanceof DisplayArea) {
+ child.dumpDebug(proto, DISPLAY_AREA, logLevel);
+ } else {
+ proto.write(UNKNOWN, child.getClass().getSimpleName());
+ }
+ proto.end(childToken);
+ }
+ proto.end(token);
+ }
+
+ /**
+ * DisplayArea that contains WindowTokens, and orders them according to their type.
+ */
+ public static class Tokens extends DisplayArea<WindowToken> {
+ int mLastKeyguardForcedOrientation = SCREEN_ORIENTATION_UNSPECIFIED;
+
+ private final Comparator<WindowToken> mWindowComparator =
+ Comparator.comparingInt(WindowToken::getWindowLayerFromType);
+
+ private final Predicate<WindowState> mGetOrientingWindow = w -> {
+ final WindowManagerPolicy policy = mWmService.mPolicy;
+ if (policy.isKeyguardHostWindow(w.mAttrs)) {
+ if (mWmService.mKeyguardGoingAway) {
+ return false;
+ }
+ // Consider unoccluding only when all unknown visibilities have been
+ // resolved, as otherwise we just may be starting another occluding activity.
+ final boolean isUnoccluding =
+ mDisplayContent.mAppTransition.getAppTransition()
+ == TRANSIT_KEYGUARD_UNOCCLUDE
+ && mDisplayContent.mUnknownAppVisibilityController.allResolved();
+ // If keyguard is showing, or we're unoccluding, force the keyguard's orientation,
+ // even if SystemUI hasn't updated the attrs yet.
+ if (policy.isKeyguardShowingAndNotOccluded() || isUnoccluding) {
+ return true;
+ }
+ }
+ final int req = w.mAttrs.screenOrientation;
+ if (req == SCREEN_ORIENTATION_UNSPECIFIED || req == SCREEN_ORIENTATION_BEHIND
+ || req == SCREEN_ORIENTATION_UNSET) {
+ return false;
+ }
+ return true;
+ };
+
+ Tokens(WindowManagerService wms, Type type, String name) {
+ super(wms, type, name);
+ }
+
+ void addChild(WindowToken token) {
+ addChild(token, mWindowComparator);
+ }
+
+ @Override
+ int getOrientation(int candidate) {
+ // Find a window requesting orientation.
+ final WindowState win = getWindow(mGetOrientingWindow);
+
+ if (win == null) {
+ return candidate;
+ }
+ int req = win.mAttrs.screenOrientation;
+ ProtoLog.v(WM_DEBUG_ORIENTATION, "%s forcing orientation to %d for display id=%d",
+ win, req, mDisplayContent.getDisplayId());
+ if (mWmService.mPolicy.isKeyguardHostWindow(win.mAttrs)) {
+ // SystemUI controls the Keyguard orientation asynchronously, and mAttrs may be
+ // stale. We record / use the last known override.
+ if (req != SCREEN_ORIENTATION_UNSET && req != SCREEN_ORIENTATION_UNSPECIFIED) {
+ mLastKeyguardForcedOrientation = req;
+ } else {
+ req = mLastKeyguardForcedOrientation;
+ }
+ }
+ return req;
+ }
+ }
+
+ /**
+ * Top-most DisplayArea under DisplayContent.
+ */
+ public static class Root extends DisplayArea<DisplayArea> {
+ private final Dimmer mDimmer = new Dimmer(this);
+ private final Rect mTmpDimBoundsRect = new Rect();
+
+ Root(WindowManagerService wms) {
+ super(wms, Type.ANY, "DisplayArea.Root");
+ }
+
+ @Override
+ Dimmer getDimmer() {
+ return mDimmer;
+ }
+
+ @Override
+ void prepareSurfaces() {
+ mDimmer.resetDimStates();
+ super.prepareSurfaces();
+ getBounds(mTmpDimBoundsRect);
+
+ if (mDimmer.updateDims(getPendingTransaction(), mTmpDimBoundsRect)) {
+ scheduleAnimation();
+ }
+ }
+ }
+
+ enum Type {
+ /** Can only contain WindowTokens above the APPLICATION_LAYER. */
+ ABOVE_TASKS,
+ /** Can only contain WindowTokens below the APPLICATION_LAYER. */
+ BELOW_TASKS,
+ /** Can contain anything. */
+ ANY;
+
+ static void checkSiblings(Type bottom, Type top) {
+ checkState(!(bottom == ANY && top == ANY), "ANY cannot be a sibling of ANY");
+ checkState(!(bottom != BELOW_TASKS && top == BELOW_TASKS),
+ bottom + " must be above BELOW_TASKS");
+ checkState(!(bottom == ABOVE_TASKS && top != ABOVE_TASKS),
+ top + " must be below ABOVE_TASKS");
+ }
+
+ static void checkChild(Type parent, Type child) {
+ switch (parent) {
+ case ABOVE_TASKS:
+ checkState(child == ABOVE_TASKS, "ABOVE_TASKS can only contain ABOVE_TASKS");
+ break;
+ case BELOW_TASKS:
+ checkState(child == BELOW_TASKS, "BELOW_TASKS can only contain BELOW_TASKS");
+ break;
+ }
+ }
+
+ static Type typeOf(WindowContainer c) {
+ if (c instanceof DisplayArea) {
+ return ((DisplayArea) c).mType;
+ } else if (c instanceof WindowToken && !(c instanceof ActivityRecord)) {
+ return typeOf((WindowToken) c);
+ } else if (c instanceof ActivityStack) {
+ return ANY;
+ } else {
+ throw new IllegalArgumentException("Unknown container: " + c);
+ }
+ }
+
+ private static Type typeOf(WindowToken c) {
+ return c.getWindowLayerFromType() < APPLICATION_LAYER ? BELOW_TASKS : ABOVE_TASKS;
+ }
+ }
+}
diff --git a/services/core/java/com/android/server/wm/DisplayAreaPolicy.java b/services/core/java/com/android/server/wm/DisplayAreaPolicy.java
new file mode 100644
index 000000000000..06e7b48a1f04
--- /dev/null
+++ b/services/core/java/com/android/server/wm/DisplayAreaPolicy.java
@@ -0,0 +1,123 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
+
+import com.android.server.wm.DisplayContent.TaskContainers;
+
+/**
+ * Policy that manages DisplayAreas.
+ */
+public abstract class DisplayAreaPolicy {
+ protected final WindowManagerService mWmService;
+ protected final DisplayContent mContent;
+
+ /**
+ * The root DisplayArea. Attach all DisplayAreas to this area (directly or indirectly).
+ */
+ protected final DisplayArea.Root mRoot;
+
+ /**
+ * The IME container. The IME's windows are automatically added to this container.
+ */
+ protected final DisplayArea<? extends WindowContainer> mImeContainer;
+
+ /**
+ * The Tasks container. Tasks etc. are automatically added to this container.
+ */
+ protected final TaskContainers mTaskContainers;
+
+ DisplayAreaPolicy(WindowManagerService wmService,
+ DisplayContent content, DisplayArea.Root root,
+ DisplayArea<? extends WindowContainer> imeContainer, TaskContainers taskContainers) {
+ mWmService = wmService;
+ mContent = content;
+ mRoot = root;
+ mImeContainer = imeContainer;
+ mTaskContainers = taskContainers;
+ }
+
+ /**
+ * Called to ask the policy to set up the DisplayArea hierarchy. At a minimum this must:
+ *
+ * - attach mImeContainer to mRoot (or one of its descendants)
+ * - attach mTaskStacks to mRoot (or one of its descendants)
+ *
+ * Additionally, this is the right place to set up any other DisplayAreas as desired.
+ */
+ public abstract void attachDisplayAreas();
+
+ /**
+ * Called to ask the policy to attach the given WindowToken to the DisplayArea hierarchy.
+ *
+ * This must attach the token to mRoot (or one of its descendants).
+ */
+ public abstract void addWindow(WindowToken token);
+
+ /**
+ * Default policy that has no special features.
+ */
+ public static class Default extends DisplayAreaPolicy {
+
+ public Default(WindowManagerService wmService, DisplayContent content,
+ DisplayArea.Root root,
+ DisplayArea<? extends WindowContainer> imeContainer,
+ TaskContainers taskContainers) {
+ super(wmService, content, root, imeContainer, taskContainers);
+ }
+
+ private final DisplayArea.Tokens mBelow = new DisplayArea.Tokens(mWmService,
+ DisplayArea.Type.BELOW_TASKS, "BelowTasks");
+ private final DisplayArea<DisplayArea> mAbove = new DisplayArea<>(mWmService,
+ DisplayArea.Type.ABOVE_TASKS, "AboveTasks");
+ private final DisplayArea.Tokens mAboveBelowIme = new DisplayArea.Tokens(mWmService,
+ DisplayArea.Type.ABOVE_TASKS, "AboveTasksBelowIme");
+ private final DisplayArea.Tokens mAboveAboveIme = new DisplayArea.Tokens(mWmService,
+ DisplayArea.Type.ABOVE_TASKS, "AboveTasksAboveIme");
+
+ @Override
+ public void attachDisplayAreas() {
+ mRoot.addChild(mBelow, 0);
+ mRoot.addChild(mTaskContainers, 1);
+ mRoot.addChild(mAbove, 2);
+
+ mAbove.addChild(mAboveBelowIme, 0);
+ mAbove.addChild(mImeContainer, 1);
+ mAbove.addChild(mAboveAboveIme, 2);
+ }
+
+ @Override
+ public void addWindow(WindowToken token) {
+ switch (DisplayArea.Type.typeOf(token)) {
+ case ABOVE_TASKS:
+ if (token.getWindowLayerFromType()
+ < mWmService.mPolicy.getWindowLayerFromTypeLw(TYPE_INPUT_METHOD)) {
+ mAboveBelowIme.addChild(token);
+ } else {
+ mAboveAboveIme.addChild(token);
+ }
+ break;
+ case BELOW_TASKS:
+ mBelow.addChild(token);
+ break;
+ default:
+ throw new IllegalArgumentException("don't know how to sort " + token);
+ }
+ }
+ }
+}
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 857467208b6e..810aa3438ea0 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -17,6 +17,7 @@
package com.android.server.wm;
import static android.app.ActivityTaskManager.INVALID_STACK_ID;
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
import static android.app.ActivityTaskManager.SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_RECENTS;
@@ -80,14 +81,12 @@ import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
import static android.view.WindowManager.TRANSIT_ACTIVITY_OPEN;
-import static android.view.WindowManager.TRANSIT_KEYGUARD_UNOCCLUDE;
import static android.view.WindowManager.TRANSIT_TASK_OPEN;
import static android.view.WindowManager.TRANSIT_TASK_TO_FRONT;
-import static com.android.server.am.ActivityDisplayProto.DISPLAY;
-import static com.android.server.am.ActivityDisplayProto.FOCUSED_STACK_ID;
-import static com.android.server.am.ActivityDisplayProto.RESUMED_ACTIVITY;
-import static com.android.server.am.ActivityDisplayProto.SINGLE_TASK_INSTANCE;
+import static com.android.server.wm.DisplayContentProto.FOCUSED_ROOT_TASK_ID;
+import static com.android.server.wm.DisplayContentProto.RESUMED_ACTIVITY;
+import static com.android.server.wm.DisplayContentProto.SINGLE_TASK_INSTANCE;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_CONFIG;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT;
@@ -98,9 +97,7 @@ import static com.android.server.wm.ActivityStackSupervisor.TAG_TASKS;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_STATES;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_TASKS;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.POSTFIX_STACK;
-import static com.android.server.wm.DisplayContentProto.ABOVE_APP_WINDOWS;
import static com.android.server.wm.DisplayContentProto.APP_TRANSITION;
-import static com.android.server.wm.DisplayContentProto.BELOW_APP_WINDOWS;
import static com.android.server.wm.DisplayContentProto.CHANGING_APPS;
import static com.android.server.wm.DisplayContentProto.CLOSING_APPS;
import static com.android.server.wm.DisplayContentProto.DISPLAY_FRAMES;
@@ -109,12 +106,12 @@ import static com.android.server.wm.DisplayContentProto.DOCKED_STACK_DIVIDER_CON
import static com.android.server.wm.DisplayContentProto.DPI;
import static com.android.server.wm.DisplayContentProto.FOCUSED_APP;
import static com.android.server.wm.DisplayContentProto.ID;
-import static com.android.server.wm.DisplayContentProto.IME_WINDOWS;
import static com.android.server.wm.DisplayContentProto.OPENING_APPS;
import static com.android.server.wm.DisplayContentProto.OVERLAY_WINDOWS;
+import static com.android.server.wm.DisplayContentProto.ROOT_DISPLAY_AREA;
import static com.android.server.wm.DisplayContentProto.ROTATION;
import static com.android.server.wm.DisplayContentProto.SCREEN_ROTATION_ANIMATION;
-import static com.android.server.wm.DisplayContentProto.STACKS;
+import static com.android.server.wm.DisplayContentProto.TASKS;
import static com.android.server.wm.DisplayContentProto.WINDOW_CONTAINER;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS;
@@ -197,6 +194,7 @@ import android.provider.Settings;
import android.util.ArraySet;
import android.util.DisplayMetrics;
import android.util.IntArray;
+import android.util.RotationUtils;
import android.util.Slog;
import android.util.SparseArray;
import android.util.SparseBooleanArray;
@@ -207,6 +205,7 @@ import android.view.DisplayInfo;
import android.view.Gravity;
import android.view.IDisplayWindowInsetsController;
import android.view.ISystemGestureExclusionListener;
+import android.view.ITaskOrganizer;
import android.view.IWindow;
import android.view.InputChannel;
import android.view.InputDevice;
@@ -295,14 +294,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
/** The containers below are the only child containers {@link #mWindowContainers} can have. */
// Contains all window containers that are related to apps (Activities)
private final TaskContainers mTaskContainers = new TaskContainers(mWmService);
- // Contains all non-app window containers that should be displayed above the app containers
- // (e.g. Status bar)
- private final AboveAppWindowContainers mAboveAppWindowsContainers =
- new AboveAppWindowContainers("mAboveAppWindowsContainers", mWmService);
- // Contains all non-app window containers that should be displayed below the app containers
- // (e.g. Wallpaper).
- private final NonAppWindowContainers mBelowAppWindowsContainers =
- new NonAppWindowContainers("mBelowAppWindowsContainers", mWmService);
+
// Contains all IME window containers. Note that the z-ordering of the IME windows will depend
// on the IME target. We mainly have this container grouping so we can keep track of all the IME
// window containers together and move them in-sync if/when needed. We use a subclass of
@@ -310,6 +302,11 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
// TODO(display-area): is "no magnification" in the comment still true?
private final ImeContainer mImeWindowsContainers = new ImeContainer(mWmService);
+ private final DisplayArea.Root mRootDisplayArea = new DisplayArea.Root(mWmService);
+
+ private final DisplayAreaPolicy mDisplayAreaPolicy = new DisplayAreaPolicy.Default(
+ mWmService, this, mRootDisplayArea, mImeWindowsContainers, mTaskContainers);
+
private WindowState mTmpWindow;
private WindowState mTmpWindow2;
private boolean mUpdateImeTarget;
@@ -401,14 +398,6 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
private int mCurrentOverrideConfigurationChanges;
/**
- * Last orientation forced by the keyguard. It is applied when keyguard is shown and is not
- * occluded.
- *
- * @see NonAppWindowContainers#getOrientation()
- */
- private int mLastKeyguardForcedOrientation = SCREEN_ORIENTATION_UNSPECIFIED;
-
- /**
* The maximum aspect ratio (longerSide/shorterSide) that is treated as close-to-square. The
* orientation requests from apps would be ignored if the display is close-to-square.
*/
@@ -664,6 +653,9 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
private final RootWindowContainer.FindTaskResult
mTmpFindTaskResult = new RootWindowContainer.FindTaskResult();
+ // When non-null, new stacks get put into this tile.
+ TaskTile mLaunchTile = null;
+
private final Consumer<WindowState> mUpdateWindowsForAnimator = w -> {
WindowStateAnimator winAnimator = w.mWinAnimator;
final ActivityRecord activity = w.mActivityRecord;
@@ -1104,18 +1096,16 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
// Add non-app token to container hierarchy on the display. App tokens are added through
// the parent container managing them (e.g. Tasks).
switch (token.windowType) {
- case TYPE_WALLPAPER:
- mBelowAppWindowsContainers.addChild(token);
- break;
case TYPE_INPUT_METHOD:
case TYPE_INPUT_METHOD_DIALOG:
mImeWindowsContainers.addChild(token);
break;
case TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY:
+ // TODO(display-area): Migrate to DisplayArea
mOverlayContainers.addChild(token);
break;
default:
- mAboveAppWindowsContainers.addChild(token);
+ mDisplayAreaPolicy.addWindow(token);
break;
}
}
@@ -1614,17 +1604,18 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
if (cutout == null || cutout == DisplayCutout.NO_CUTOUT) {
return WmDisplayCutout.NO_CUTOUT;
}
+ final Insets waterfallInsets =
+ RotationUtils.rotateInsets(cutout.getWaterfallInsets(), rotation);
if (rotation == ROTATION_0) {
return WmDisplayCutout.computeSafeInsets(
cutout, mInitialDisplayWidth, mInitialDisplayHeight);
}
final boolean rotated = (rotation == ROTATION_90 || rotation == ROTATION_270);
final Rect[] newBounds = mRotationUtil.getRotatedBounds(
- WmDisplayCutout.computeSafeInsets(
- cutout, mInitialDisplayWidth, mInitialDisplayHeight)
- .getDisplayCutout().getBoundingRectsAll(),
+ cutout.getBoundingRectsAll(),
rotation, mInitialDisplayWidth, mInitialDisplayHeight);
- return WmDisplayCutout.computeSafeInsets(DisplayCutout.fromBounds(newBounds),
+ return WmDisplayCutout.computeSafeInsets(
+ DisplayCutout.fromBoundsAndWaterfall(newBounds, waterfallInsets),
rotated ? mInitialDisplayHeight : mInitialDisplayWidth,
rotated ? mInitialDisplayWidth : mInitialDisplayHeight);
}
@@ -2129,13 +2120,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
return getLastOrientation();
}
}
- final int orientation = mAboveAppWindowsContainers.getOrientation();
- if (orientation != SCREEN_ORIENTATION_UNSET) {
- return orientation;
- }
-
- // Top system windows are not requesting an orientation. Start searching from apps.
- return mTaskContainers.getOrientation();
+ return mRootDisplayArea.getOrientation();
}
void updateDisplayInfo() {
@@ -2750,30 +2735,6 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
public void dumpDebug(ProtoOutputStream proto, long fieldId,
@WindowTraceLogLevel int logLevel) {
- final long token = proto.start(fieldId);
- dumpDebugInner(proto, DISPLAY, logLevel);
- proto.write(com.android.server.am.ActivityDisplayProto.ID, mDisplayId);
- proto.write(SINGLE_TASK_INSTANCE, mSingleTaskInstance);
- final ActivityStack focusedStack = getFocusedStack();
- if (focusedStack != null) {
- proto.write(FOCUSED_STACK_ID, focusedStack.getRootTaskId());
- final ActivityRecord focusedActivity = focusedStack.getDisplay().getResumedActivity();
- if (focusedActivity != null) {
- focusedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY);
- }
- } else {
- proto.write(FOCUSED_STACK_ID, INVALID_STACK_ID);
- }
- for (int stackNdx = getStackCount() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = getStackAt(stackNdx);
- stack.dumpDebug(proto, com.android.server.am.ActivityDisplayProto.STACKS, logLevel);
- }
- proto.end(token);
- }
-
- // TODO(proto-merge): Remove once protos for ActivityDisplay and DisplayContent are merged.
- public void dumpDebugInner(ProtoOutputStream proto, long fieldId,
- @WindowTraceLogLevel int logLevel) {
// Critical log level logs only visible elements to mitigate performance overheard
if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) {
return;
@@ -2781,24 +2742,14 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
final long token = proto.start(fieldId);
super.dumpDebug(proto, WINDOW_CONTAINER, logLevel);
+
proto.write(ID, mDisplayId);
- for (int stackNdx = mTaskContainers.getChildCount() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mTaskContainers.getChildAt(stackNdx);
- stack.dumpDebugInnerStackOnly(proto, STACKS, logLevel);
+ mRootDisplayArea.dumpDebug(proto, ROOT_DISPLAY_AREA, logLevel);
+ for (int i = mTaskContainers.getChildCount() - 1; i >= 0; --i) {
+ final ActivityStack stack = mTaskContainers.getChildAt(i);
+ stack.dumpDebug(proto, TASKS, logLevel);
}
mDividerControllerLocked.dumpDebug(proto, DOCKED_STACK_DIVIDER_CONTROLLER);
- for (int i = mAboveAppWindowsContainers.getChildCount() - 1; i >= 0; --i) {
- final WindowToken windowToken = mAboveAppWindowsContainers.getChildAt(i);
- windowToken.dumpDebug(proto, ABOVE_APP_WINDOWS, logLevel);
- }
- for (int i = mBelowAppWindowsContainers.getChildCount() - 1; i >= 0; --i) {
- final WindowToken windowToken = mBelowAppWindowsContainers.getChildAt(i);
- windowToken.dumpDebug(proto, BELOW_APP_WINDOWS, logLevel);
- }
- for (int i = mImeWindowsContainers.getChildCount() - 1; i >= 0; --i) {
- final WindowToken windowToken = mImeWindowsContainers.getChildAt(i);
- windowToken.dumpDebug(proto, IME_WINDOWS, logLevel);
- }
for (int i = mOverlayContainers.getChildCount() - 1; i >= 0; --i) {
final WindowToken windowToken = mOverlayContainers.getChildAt(i);
windowToken.dumpDebug(proto, OVERLAY_WINDOWS, logLevel);
@@ -2824,6 +2775,19 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
for (int i = mChangingApps.size() - 1; i >= 0; i--) {
mChangingApps.valueAt(i).writeIdentifierToProto(proto, CHANGING_APPS);
}
+
+ proto.write(SINGLE_TASK_INSTANCE, mSingleTaskInstance);
+ final ActivityStack focusedStack = getFocusedStack();
+ if (focusedStack != null) {
+ proto.write(FOCUSED_ROOT_TASK_ID, focusedStack.getRootTaskId());
+ final ActivityRecord focusedActivity = focusedStack.getDisplay().getResumedActivity();
+ if (focusedActivity != null) {
+ focusedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY);
+ }
+ } else {
+ proto.write(FOCUSED_ROOT_TASK_ID, INVALID_TASK_ID);
+ }
+
proto.end(token);
}
@@ -3416,6 +3380,57 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
&& mInputMethodTarget.mActivityRecord.matchParentBounds());
}
+ /**
+ * Get IME target that should host IME when this display that is reparented to another
+ * WindowState.
+ * IME is never displayed in a child display.
+ * Use {@link WindowState#getImeControlTarget()} when IME target window
+ * which originally called
+ * {@link android.view.inputmethod.InputMethodManager#showSoftInput(View, int)} is known.
+ *
+ * @return {@link WindowState} of host that controls IME.
+ * {@code null} when {@param dc} is not a virtual display.
+ * @see DisplayContent#reparent
+ */
+ @Nullable
+ WindowState getImeControlTarget() {
+ WindowState imeTarget = mInputMethodTarget;
+ if (imeTarget != null) {
+ return imeTarget.getImeControlTarget();
+ }
+
+ return getInsetsStateController().getImeSourceProvider().getControlTarget().getWindow();
+ }
+
+ /**
+ * Finds the window which can host IME if IME target cannot host it.
+ * e.g. IME target cannot host IME when it's display has a parent display OR when display
+ * doesn't support IME/system decorations.
+ *
+ * @param target current IME target.
+ * @return {@link WindowState} that can host IME.
+ * @see DisplayContent#getImeControlTarget()
+ */
+ WindowState getImeHostOrFallback(WindowState target) {
+ if (target != null && target.getDisplayContent().canShowIme()) {
+ return target;
+ }
+
+ // host is in non-default display that doesn't support system decor, default to
+ // default display's StatusBar to control IME.
+ // TODO: (b/148234093)find a better host OR control IME animation/visibility directly
+ // because it won't work when statusbar isn't available.
+ return mWmService.getDefaultDisplayContentLocked().getDisplayPolicy().getStatusBar();
+ }
+
+ boolean canShowIme() {
+ if (isUntrustedVirtualDisplay()) {
+ return false;
+ }
+ return mWmService.mDisplayWindowSettings.shouldShowImeLocked(this)
+ || mWmService.mForceDesktopModeOnExternalDisplays;
+ }
+
private void setInputMethodTarget(WindowState target, boolean targetWaitingAnim) {
if (target == mInputMethodTarget && mInputMethodTargetWaitingAnim == targetWaitingAnim) {
return;
@@ -3425,10 +3440,22 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
mInputMethodTargetWaitingAnim = targetWaitingAnim;
assignWindowLayers(false /* setLayoutNeeded */);
mInputMethodControlTarget = computeImeControlTarget();
- mInsetsStateController.onImeTargetChanged(mInputMethodControlTarget);
+ mInsetsStateController.onImeControlTargetChanged(mInputMethodControlTarget);
updateImeParent();
}
+ /**
+ * IME control target is the window that controls the IME visibility and animation.
+ * This window is same as the window on which startInput is called.
+ * @param target the window that receives IME control.
+ *
+ * @see #getImeControlTarget()
+ */
+ void updateImeControlTarget(WindowState target) {
+ mInputMethodControlTarget = target;
+ mInsetsStateController.onImeControlTargetChanged(mInputMethodControlTarget);
+ }
+
private void updateImeParent() {
// Force attaching IME to the display when magnifying, or it would be magnified with
// target app together.
@@ -4149,7 +4176,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
* Window container class that contains all containers on this display relating to Apps.
* I.e Activities.
*/
- private final class TaskContainers extends DisplayChildWindowContainer<ActivityStack> {
+ final class TaskContainers extends DisplayArea<ActivityStack> {
/**
* A control placed at the appropriate level for transitions to occur.
*/
@@ -4159,16 +4186,15 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
/**
* Given that the split-screen divider does not have an AppWindowToken, it
- * will have to live inside of a "NonAppWindowContainer", in particular
- * {@link DisplayContent#mAboveAppWindowsContainers}. However, in visual Z order
+ * will have to live inside of a "NonAppWindowContainer". However, in visual Z order
* it will need to be interleaved with some of our children, appearing on top of
* both docked stacks but underneath any assistant stacks.
*
* To solve this problem we have this anchor control, which will always exist so
* we can always assign it the correct value in our {@link #assignChildLayers}.
- * Likewise since it always exists, {@link AboveAppWindowContainers} can always
+ * Likewise since it always exists, we can always
* assign the divider a layer relative to it. This way we prevent linking lifecycle
- * events between the two containers.
+ * events between tasks and the divider window.
*/
SurfaceControl mSplitScreenDividerAnchor = null;
@@ -4179,7 +4205,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
private ActivityStack mRootSplitScreenPrimaryTask = null;
TaskContainers(WindowManagerService service) {
- super(service);
+ super(service, Type.ANY, "TaskContainers");
}
/**
@@ -4212,8 +4238,15 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
@VisibleForTesting
ActivityStack getTopStack() {
- return mTaskContainers.getChildCount() > 0
- ? mTaskContainers.getChildAt(mTaskContainers.getChildCount() - 1) : null;
+ // TODO(task-hierarchy): Just grab index -1 once tiles are in hierarchy.
+ for (int i = mTaskContainers.getChildCount() - 1; i >= 0; --i) {
+ final ActivityStack child = mTaskContainers.getChildAt(i);
+ if (child instanceof TaskTile) {
+ continue;
+ }
+ return child;
+ }
+ return null;
}
int getIndexOf(ActivityStack stack) {
@@ -4255,6 +4288,10 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
}
private void addStackReferenceIfNeeded(ActivityStack stack) {
+ // TODO(task-hierarchy): Remove when tiles are in hierarchy.
+ if (stack instanceof TaskTile) {
+ return;
+ }
if (stack.isActivityTypeHome()) {
if (mRootHomeTask != null) {
if (!stack.isDescendantOf(mRootHomeTask)) {
@@ -4672,31 +4709,16 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
mSplitScreenDividerAnchor = null;
}
}
- }
-
- private final class AboveAppWindowContainers extends NonAppWindowContainers {
- AboveAppWindowContainers(String name, WindowManagerService service) {
- super(name, service);
- }
@Override
- void assignChildLayers(SurfaceControl.Transaction t) {
- boolean needAssignIme = mImeWindowsContainers.getSurfaceControl() != null;
- for (int j = 0; j < mChildren.size(); ++j) {
- final WindowToken wt = mChildren.get(j);
-
- wt.assignLayer(t, j);
- wt.assignChildLayers(t);
-
- int layer = mWmService.mPolicy.getWindowLayerFromTypeLw(
- wt.windowType, wt.mOwnerCanManageAppTokens);
-
- if (needAssignIme && layer >= mWmService.mPolicy.getWindowLayerFromTypeLw(
- TYPE_INPUT_METHOD_DIALOG, true)) {
- mImeWindowsContainers.assignRelativeLayer(t, wt.getSurfaceControl(), -1);
- needAssignIme = false;
- }
+ void onChildPositionChanged(WindowContainer child) {
+ // TODO(task-hierarchy): Move functionality to TaskTile when it's a proper parent.
+ TaskTile tile = ((ActivityStack) child).getTile();
+ if (tile == null) {
+ return;
}
+ mAtmService.mTaskOrganizerController.dispatchTaskInfoChanged(
+ tile, false /* force */);
}
}
@@ -4711,13 +4733,10 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
@Override
void assignChildLayers(SurfaceControl.Transaction t) {
mImeWindowsContainers.setNeedsLayer();
- mBelowAppWindowsContainers.assignLayer(t, 0);
- mTaskContainers.assignLayer(t, 1);
- mAboveAppWindowsContainers.assignLayer(t, 2);
- final WindowState imeTarget = mInputMethodTarget;
- boolean needAssignIme = true;
+ mRootDisplayArea.assignLayer(t, 0);
+ final WindowState imeTarget = mInputMethodTarget;
// In the case where we have an IME target that is not in split-screen mode IME
// assignment is easy. We just need the IME to go directly above the target. This way
// children of the target will naturally go above the IME and everyone is happy.
@@ -4750,11 +4769,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
// Above we have assigned layers to our children, now we ask them to assign
// layers to their children.
- mBelowAppWindowsContainers.assignChildLayers(t);
- mTaskContainers.assignChildLayers(t);
- mAboveAppWindowsContainers.assignChildLayers(t);
- mImeWindowsContainers.assignRelativeLayer(t, getSurfaceControl(), Integer.MAX_VALUE);
- mImeWindowsContainers.assignChildLayers(t);
+ mRootDisplayArea.assignChildLayers(t);
}
@Override
@@ -4763,10 +4778,8 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
}
void addChildren() {
- addChild(mBelowAppWindowsContainers, null);
- addChild(mTaskContainers, null);
- addChild(mAboveAppWindowsContainers, null);
- addChild(mImeWindowsContainers, null);
+ addChild(mRootDisplayArea, 0);
+ mDisplayAreaPolicy.attachDisplayAreas();
}
@Override
@@ -4793,32 +4806,6 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
< mWmService.mPolicy.getWindowLayerFromTypeLw(token2.windowType,
token2.mOwnerCanManageAppTokens) ? -1 : 1;
- private final Predicate<WindowState> mGetOrientingWindow = w -> {
- final WindowManagerPolicy policy = mWmService.mPolicy;
- if (policy.isKeyguardHostWindow(w.mAttrs)) {
- if (mWmService.mKeyguardGoingAway) {
- return false;
- }
- // Consider unoccluding only when all unknown visibilities have been
- // resolved, as otherwise we just may be starting another occluding activity.
- final boolean isUnoccluding =
- mDisplayContent.mAppTransition.getAppTransition()
- == TRANSIT_KEYGUARD_UNOCCLUDE
- && mDisplayContent.mUnknownAppVisibilityController.allResolved();
- // If keyguard is showing, or we're unoccluding, force the keyguard's orientation,
- // even if SystemUI hasn't updated the attrs yet.
- if (policy.isKeyguardShowingAndNotOccluded() || isUnoccluding) {
- return true;
- }
- }
- final int req = w.mAttrs.screenOrientation;
- if (req == SCREEN_ORIENTATION_UNSPECIFIED || req == SCREEN_ORIENTATION_BEHIND
- || req == SCREEN_ORIENTATION_UNSET) {
- return false;
- }
- return true;
- };
-
private final String mName;
private final Dimmer mDimmer = new Dimmer(this);
private final Rect mTmpDimBoundsRect = new Rect();
@@ -4840,26 +4827,9 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
@Override
int getOrientation(int candidate) {
- // Find a window requesting orientation.
- final WindowState win = getWindow(mGetOrientingWindow);
-
- if (win != null) {
- int req = win.mAttrs.screenOrientation;
- ProtoLog.v(WM_DEBUG_ORIENTATION,
- "%s forcing orientation to %d for display id=%d", win, req,
- mDisplayId);
- if (mWmService.mPolicy.isKeyguardHostWindow(win.mAttrs)) {
- // SystemUI controls the Keyguard orientation asynchronously, and mAttrs may be
- // stale. We record / use the last known override.
- if (req != SCREEN_ORIENTATION_UNSET && req != SCREEN_ORIENTATION_UNSPECIFIED) {
- mDisplayContent.mLastKeyguardForcedOrientation = req;
- } else {
- req = mDisplayContent.mLastKeyguardForcedOrientation;
- }
- }
- return req;
- }
- return candidate;
+ ProtoLog.w(WM_DEBUG_ORIENTATION, "NonAppWindowContainer cannot set orientation: %s",
+ this);
+ return SCREEN_ORIENTATION_UNSET;
}
@Override
@@ -4894,11 +4864,11 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
* - the container doesn't always participate in window traversal, according to
* {@link #skipImeWindowsDuringTraversal()}
*/
- private class ImeContainer extends NonAppWindowContainers {
+ private static class ImeContainer extends DisplayArea.Tokens {
boolean mNeedsLayer = false;
ImeContainer(WindowManagerService wms) {
- super("ImeContainer", wms);
+ super(wms, Type.ABOVE_TASKS, "ImeContainer");
}
public void setNeedsLayer() {
@@ -6208,6 +6178,10 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
}
boolean isTopNotPinnedStack(ActivityStack stack) {
+ // TODO(task-hierarchy): Remove when tiles are in hierarchy.
+ if (stack instanceof TaskTile) {
+ return false;
+ }
for (int i = getStackCount() - 1; i >= 0; --i) {
final ActivityStack current = getStackAt(i);
if (!current.inPinnedWindowingMode()) {
@@ -6622,6 +6596,19 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
return getHomeActivityForUser(mRootWindowContainer.mCurrentUser);
}
+ // TODO(task-hierarchy): Remove when tiles are in hierarchy.
+ void addTile(TaskTile tile) {
+ mTaskContainers.addChild(tile, POSITION_BOTTOM);
+ ITaskOrganizer organizer = mAtmService.mTaskOrganizerController.getTaskOrganizer(
+ tile.getWindowingMode());
+ tile.setTaskOrganizer(organizer);
+ }
+
+ // TODO(task-hierarchy): Remove when tiles are in hierarchy.
+ void removeTile(TaskTile tile) {
+ mTaskContainers.removeChild(tile);
+ }
+
@Nullable
ActivityRecord getHomeActivityForUser(int userId) {
final ActivityStack homeStack = getRootHomeTask();
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index 67d8acf8daba..c78707a2204e 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -131,6 +131,7 @@ import android.graphics.Rect;
import android.graphics.Region;
import android.hardware.input.InputManager;
import android.hardware.power.V1_0.PowerHint;
+import android.os.Binder;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -334,6 +335,13 @@ public class DisplayPolicy {
IApplicationToken mFocusedApp;
+ // The states of decor windows from the last layout. These are used to generate another display
+ // layout in different bounds but with the same states.
+ private boolean mLastNavVisible;
+ private boolean mLastNavTranslucent;
+ private boolean mLastNavAllowedHidden;
+ private boolean mLastNotificationShadeForcesShowingNavigation;
+
int mLastSystemUiFlags;
// Bits that we are in the process of clearing, so we want to prevent
// them from being set by applications until everything has been updated
@@ -968,6 +976,12 @@ public class DisplayPolicy {
}
break;
case TYPE_NAVIGATION_BAR_PANEL:
+ // Check for permission if the caller is not the recents component.
+ if (!mService.mAtmInternal.isCallerRecents(Binder.getCallingUid())) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.STATUS_BAR_SERVICE, "DisplayPolicy");
+ }
+ break;
case TYPE_STATUS_BAR_PANEL:
case TYPE_STATUS_BAR_SUB_PANEL:
case TYPE_VOICE_INTERACTION_STARTING:
@@ -1418,6 +1432,46 @@ public class DisplayPolicy {
}
}
+ private void simulateLayoutDecorWindow(WindowState win, DisplayFrames displayFrames, int uiMode,
+ InsetsState insetsState, WindowFrames simulatedWindowFrames, Runnable layout) {
+ win.setSimulatedWindowFrames(simulatedWindowFrames);
+ try {
+ layout.run();
+ } finally {
+ win.setSimulatedWindowFrames(null);
+ }
+ mDisplayContent.getInsetsStateController().computeSimulatedState(insetsState, win,
+ displayFrames, simulatedWindowFrames);
+ }
+
+ /**
+ * Computes the frames of display (its logical size, rotation and cutout should already be set)
+ * used to layout window. The result of display frames and insets state should be the same as
+ * using {@link #beginLayoutLw}, but this method only changes the given display frames, insets
+ * state and some temporal states. In other words, it doesn't change the window frames used to
+ * show on screen.
+ */
+ void simulateLayoutDisplay(DisplayFrames displayFrames, InsetsState insetsState, int uiMode) {
+ displayFrames.onBeginLayout();
+ final WindowFrames simulatedWindowFrames = new WindowFrames();
+ if (mNavigationBar != null) {
+ simulateLayoutDecorWindow(
+ mNavigationBar, displayFrames, uiMode, insetsState, simulatedWindowFrames,
+ () -> layoutNavigationBar(displayFrames, uiMode, mLastNavVisible,
+ mLastNavTranslucent, mLastNavAllowedHidden,
+ mLastNotificationShadeForcesShowingNavigation,
+ false /* isRealLayout */));
+ }
+ if (mStatusBar != null) {
+ simulateLayoutDecorWindow(
+ mStatusBar, displayFrames, uiMode, insetsState, simulatedWindowFrames,
+ () -> layoutStatusBar(displayFrames, mLastSystemUiFlags,
+ false /* isRealLayout */));
+ }
+ layoutScreenDecorWindows(displayFrames, simulatedWindowFrames);
+ postAdjustDisplayFrames(displayFrames);
+ }
+
/**
* Called when layout of the windows is about to start.
*
@@ -1476,14 +1530,23 @@ public class DisplayPolicy {
navVisible |= !canHideNavigationBar();
boolean updateSysUiVisibility = layoutNavigationBar(displayFrames, uiMode, navVisible,
- navTranslucent, navAllowedHidden, notificationShadeForcesShowingNavigation);
+ navTranslucent, navAllowedHidden, notificationShadeForcesShowingNavigation,
+ true /* isRealLayout */);
if (DEBUG_LAYOUT) Slog.i(TAG, "mDock rect:" + displayFrames.mDock);
- updateSysUiVisibility |= layoutStatusBar(displayFrames, sysui, isKeyguardShowing);
+ updateSysUiVisibility |= layoutStatusBar(displayFrames, sysui, true /* isRealLayout */);
if (updateSysUiVisibility) {
updateSystemUiVisibilityLw();
}
- layoutScreenDecorWindows(displayFrames);
+ layoutScreenDecorWindows(displayFrames, null /* transientFrames */);
+ postAdjustDisplayFrames(displayFrames);
+ mLastNavVisible = navVisible;
+ mLastNavTranslucent = navTranslucent;
+ mLastNavAllowedHidden = navAllowedHidden;
+ mLastNotificationShadeForcesShowingNavigation = notificationShadeForcesShowingNavigation;
+ }
+ /** Enforces the last layout policy for display frames. */
+ private void postAdjustDisplayFrames(DisplayFrames displayFrames) {
if (displayFrames.mDisplayCutoutSafe.top > displayFrames.mUnrestricted.top) {
// Make sure that the zone we're avoiding for the cutout is at least as tall as the
// status bar; otherwise fullscreen apps will end up cutting halfway into the status
@@ -1502,7 +1565,15 @@ public class DisplayPolicy {
displayFrames.mContent.inset(mForwardedInsets);
}
- private void layoutScreenDecorWindows(DisplayFrames displayFrames) {
+ /**
+ * Layout the decor windows with {@link #PRIVATE_FLAG_IS_SCREEN_DECOR}.
+ *
+ * @param displayFrames The display frames to be layouted.
+ * @param simulatedFrames Non-null if the caller only needs the result of display frames (see
+ * {@link WindowState#mSimulatedWindowFrames}).
+ */
+ private void layoutScreenDecorWindows(DisplayFrames displayFrames,
+ WindowFrames simulatedFrames) {
if (mScreenDecorWindows.isEmpty()) {
return;
}
@@ -1520,17 +1591,24 @@ public class DisplayPolicy {
continue;
}
- w.getWindowFrames().setFrames(displayFrames.mUnrestricted /* parentFrame */,
+ final boolean isSimulatedLayout = simulatedFrames != null;
+ if (isSimulatedLayout) {
+ w.setSimulatedWindowFrames(simulatedFrames);
+ }
+ final WindowFrames windowFrames = w.getLayoutingWindowFrames();
+ windowFrames.setFrames(displayFrames.mUnrestricted /* parentFrame */,
displayFrames.mUnrestricted /* displayFrame */,
displayFrames.mUnrestricted /* contentFrame */,
displayFrames.mUnrestricted /* visibleFrame */, sTmpRect /* decorFrame */,
displayFrames.mUnrestricted /* stableFrame */);
- w.getWindowFrames().setDisplayCutout(displayFrames.mDisplayCutout);
- w.computeFrameLw();
- if (w.getControllableInsetProvider() != null) {
- w.getControllableInsetProvider().updateSourceFrame();
+ try {
+ w.computeFrame(displayFrames);
+ } finally {
+ if (isSimulatedLayout) {
+ w.setSimulatedWindowFrames(null);
+ }
}
- final Rect frame = w.getFrameLw();
+ final Rect frame = windowFrames.mFrame;
if (frame.left <= 0 && frame.top <= 0) {
// Docked at left or top.
@@ -1573,29 +1651,21 @@ public class DisplayPolicy {
displayFrames.mContent.set(dockFrame);
}
- private boolean layoutStatusBar(DisplayFrames displayFrames, int sysui,
- boolean isKeyguardShowing) {
+ private boolean layoutStatusBar(DisplayFrames displayFrames, int sysui, boolean isRealLayout) {
// decide where the status bar goes ahead of time
if (mStatusBar == null) {
return false;
}
// apply any navigation bar insets
sTmpRect.setEmpty();
- final WindowFrames windowFrames = mStatusBar.getWindowFrames();
+ final WindowFrames windowFrames = mStatusBar.getLayoutingWindowFrames();
windowFrames.setFrames(displayFrames.mUnrestricted /* parentFrame */,
displayFrames.mUnrestricted /* displayFrame */,
displayFrames.mStable /* contentFrame */,
displayFrames.mStable /* visibleFrame */, sTmpRect /* decorFrame */,
displayFrames.mStable /* stableFrame */);
- windowFrames.setDisplayCutout(displayFrames.mDisplayCutout);
-
// Let the status bar determine its size.
- mStatusBar.computeFrameLw();
-
- // Update the source frame to provide insets to other windows during layout.
- if (mStatusBar.getControllableInsetProvider() != null) {
- mStatusBar.getControllableInsetProvider().updateSourceFrame();
- }
+ mStatusBar.computeFrame(displayFrames);
// For layout, the status bar is always at the top with our fixed height.
displayFrames.mStable.top = displayFrames.mUnrestricted.top
@@ -1604,12 +1674,14 @@ public class DisplayPolicy {
displayFrames.mStable.top = Math.max(displayFrames.mStable.top,
displayFrames.mDisplayCutoutSafe.top);
- // Tell the bar controller where the collapsed status bar content is
- sTmpRect.set(mStatusBar.getContentFrameLw());
- sTmpRect.intersect(displayFrames.mDisplayCutoutSafe);
- sTmpRect.top = mStatusBar.getContentFrameLw().top; // Ignore top display cutout inset
- sTmpRect.bottom = displayFrames.mStable.top; // Use collapsed status bar size
- mStatusBarController.setContentFrame(sTmpRect);
+ if (isRealLayout) {
+ // Tell the bar controller where the collapsed status bar content is.
+ sTmpRect.set(windowFrames.mContentFrame);
+ sTmpRect.intersect(displayFrames.mDisplayCutoutSafe);
+ sTmpRect.top = windowFrames.mContentFrame.top; // Ignore top display cutout inset
+ sTmpRect.bottom = displayFrames.mStable.top; // Use collapsed status bar size
+ mStatusBarController.setContentFrame(sTmpRect);
+ }
boolean statusBarTransient = (sysui & View.STATUS_BAR_TRANSIENT) != 0
|| mDisplayContent.getInsetsPolicy().isTransient(ITYPE_STATUS_BAR);
@@ -1644,7 +1716,7 @@ public class DisplayPolicy {
private boolean layoutNavigationBar(DisplayFrames displayFrames, int uiMode, boolean navVisible,
boolean navTranslucent, boolean navAllowedHidden,
- boolean statusBarForcesShowingNavigation) {
+ boolean statusBarForcesShowingNavigation, boolean isRealLayout) {
if (mNavigationBar == null) {
return false;
}
@@ -1658,13 +1730,13 @@ public class DisplayPolicy {
final int displayHeight = displayFrames.mDisplayHeight;
final int displayWidth = displayFrames.mDisplayWidth;
final Rect dockFrame = displayFrames.mDock;
- mNavigationBarPosition = navigationBarPosition(displayWidth, displayHeight, rotation);
+ final int navBarPosition = navigationBarPosition(displayWidth, displayHeight, rotation);
final Rect cutoutSafeUnrestricted = sTmpRect;
cutoutSafeUnrestricted.set(displayFrames.mUnrestricted);
cutoutSafeUnrestricted.intersectUnchecked(displayFrames.mDisplayCutoutSafe);
- if (mNavigationBarPosition == NAV_BAR_BOTTOM) {
+ if (navBarPosition == NAV_BAR_BOTTOM) {
// It's a system nav bar or a portrait screen; nav bar goes on bottom.
final int top = cutoutSafeUnrestricted.bottom
- getNavigationBarHeight(rotation, uiMode);
@@ -1688,7 +1760,7 @@ public class DisplayPolicy {
// of animating on or off, then we can tell the app that it is covered by it.
displayFrames.mSystem.bottom = top;
}
- } else if (mNavigationBarPosition == NAV_BAR_RIGHT) {
+ } else if (navBarPosition == NAV_BAR_RIGHT) {
// Landscape screen; nav bar goes to the right.
final int left = cutoutSafeUnrestricted.right
- getNavigationBarWidth(rotation, uiMode);
@@ -1710,7 +1782,7 @@ public class DisplayPolicy {
// animating on or off, then we can tell the app that it is covered by it.
displayFrames.mSystem.right = left;
}
- } else if (mNavigationBarPosition == NAV_BAR_LEFT) {
+ } else if (navBarPosition == NAV_BAR_LEFT) {
// Seascape screen; nav bar goes to the left.
final int right = cutoutSafeUnrestricted.left
+ getNavigationBarWidth(rotation, uiMode);
@@ -1741,17 +1813,17 @@ public class DisplayPolicy {
displayFrames.mContent.set(dockFrame);
// And compute the final frame.
sTmpRect.setEmpty();
- mNavigationBar.getWindowFrames().setFrames(navigationFrame /* parentFrame */,
+ final WindowFrames windowFrames = mNavigationBar.getLayoutingWindowFrames();
+ windowFrames.setFrames(navigationFrame /* parentFrame */,
navigationFrame /* displayFrame */,
displayFrames.mDisplayCutoutSafe /* contentFrame */,
navigationFrame /* visibleFrame */, sTmpRect /* decorFrame */,
navigationFrame /* stableFrame */);
- mNavigationBar.getWindowFrames().setDisplayCutout(displayFrames.mDisplayCutout);
- mNavigationBar.computeFrameLw();
- if (mNavigationBar.getControllableInsetProvider() != null) {
- mNavigationBar.getControllableInsetProvider().updateSourceFrame();
+ mNavigationBar.computeFrame(displayFrames);
+ if (isRealLayout) {
+ mNavigationBarPosition = navBarPosition;
+ mNavigationBarController.setContentFrame(windowFrames.mContentFrame);
}
- mNavigationBarController.setContentFrame(mNavigationBar.getContentFrameLw());
if (DEBUG_LAYOUT) Slog.i(TAG, "mNavigationBar frame: " + navigationFrame);
return mNavigationBarController.checkHiddenLw();
@@ -1879,7 +1951,6 @@ public class DisplayPolicy {
final Rect sf = windowFrames.mStableFrame;
dcf.setEmpty();
windowFrames.setParentFrameWasClippedByDisplayCutout(false);
- windowFrames.setDisplayCutout(displayFrames.mDisplayCutout);
final boolean hasNavBar = hasNavigationBar() && mNavigationBar != null
&& mNavigationBar.isVisibleLw();
@@ -2304,10 +2375,7 @@ public class DisplayPolicy {
windowFrames.setContentChanged(true);
}
- win.computeFrameLw();
- if (win.getControllableInsetProvider() != null) {
- win.getControllableInsetProvider().updateSourceFrame();
- }
+ win.computeFrame(displayFrames);
// Dock windows carve out the bottom of the screen, so normal windows
// can't appear underneath them.
if (type == TYPE_INPUT_METHOD && win.isVisibleLw()
@@ -3073,7 +3141,9 @@ public class DisplayPolicy {
}
final InsetsControlTarget controlTarget =
swipeTarget.getControllableInsetProvider().getControlTarget();
- if (controlTarget == null) {
+
+ // No transient mode on lockscreen (in notification shade window).
+ if (controlTarget == null || controlTarget == getNotificationShade()) {
return;
}
if (controlTarget.canShowTransient()) {
diff --git a/services/core/java/com/android/server/wm/DisplayRotation.java b/services/core/java/com/android/server/wm/DisplayRotation.java
index da773143f75c..e71371a477f7 100644
--- a/services/core/java/com/android/server/wm/DisplayRotation.java
+++ b/services/core/java/com/android/server/wm/DisplayRotation.java
@@ -526,7 +526,9 @@ public class DisplayRotation {
mService.mH.removeCallbacks(mDisplayRotationHandlerTimeout);
mIsWaitingForRemoteRotation = false;
mDisplayContent.sendNewConfiguration();
- mService.mAtmService.applyContainerTransaction(t);
+ if (t != null) {
+ mService.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+ }
}
}
diff --git a/services/core/java/com/android/server/wm/EmbeddedWindowController.java b/services/core/java/com/android/server/wm/EmbeddedWindowController.java
index 0291017cd039..884f7694d648 100644
--- a/services/core/java/com/android/server/wm/EmbeddedWindowController.java
+++ b/services/core/java/com/android/server/wm/EmbeddedWindowController.java
@@ -20,8 +20,10 @@ package com.android.server.wm;
import android.annotation.Nullable;
import android.os.IBinder;
import android.os.RemoteException;
+import android.os.UserHandle;
import android.util.ArrayMap;
import android.view.IWindow;
+import android.view.InputApplicationHandle;
/**
* Keeps track of embedded windows.
@@ -44,21 +46,12 @@ class EmbeddedWindowController {
*
* @param inputToken input channel token passed in by the embedding process when it requests
* the server to add an input channel to the embedded surface.
- * @param window client token used to clean up the map if the embedding process dies
- * @param hostWindowState input channel token belonging to the host window. This is needed to
- * handle input callbacks to wm. It's used when raising ANR and when
- * the user taps out side of the focused region on screen. This can be
- * null if there is no host window.
- * @param ownerUid calling uid
- * @param ownerPid calling pid used for anr blaming
+ * @param embeddedWindow An {@link EmbeddedWindow} object to add to this controller.
*/
- void add(IBinder inputToken, IWindow window, @Nullable WindowState hostWindowState,
- int ownerUid, int ownerPid) {
- EmbeddedWindow embeddedWindow = new EmbeddedWindow(window, hostWindowState, ownerUid,
- ownerPid);
+ void add(IBinder inputToken, EmbeddedWindow embeddedWindow) {
try {
mWindows.put(inputToken, embeddedWindow);
- window.asBinder().linkToDeath(()-> {
+ embeddedWindow.mClient.asBinder().linkToDeath(()-> {
synchronized (mWmLock) {
mWindows.remove(inputToken);
}
@@ -101,6 +94,15 @@ class EmbeddedWindowController {
final int mOwnerUid;
final int mOwnerPid;
+ /**
+ * @param clientToken client token used to clean up the map if the embedding process dies
+ * @param hostWindowState input channel token belonging to the host window. This is needed
+ * to handle input callbacks to wm. It's used when raising ANR and
+ * when the user taps out side of the focused region on screen. This
+ * can be null if there is no host window.
+ * @param ownerUid calling uid
+ * @param ownerPid calling pid used for anr blaming
+ */
EmbeddedWindow(IWindow clientToken, WindowState hostWindowState, int ownerUid,
int ownerPid) {
mClient = clientToken;
@@ -108,5 +110,21 @@ class EmbeddedWindowController {
mOwnerUid = ownerUid;
mOwnerPid = ownerPid;
}
+
+ String getName() {
+ final String hostWindowName = (mHostWindowState != null)
+ ? mHostWindowState.getWindowTag().toString() : "Internal";
+ return "EmbeddedWindow{ u" + UserHandle.getUserId(mOwnerUid) + " " + hostWindowName
+ + "}";
+ }
+
+ InputApplicationHandle getApplicationHandle() {
+ if (mHostWindowState == null
+ || mHostWindowState.mInputWindowHandle.inputApplicationHandle == null) {
+ return null;
+ }
+ return new InputApplicationHandle(
+ mHostWindowState.mInputWindowHandle.inputApplicationHandle);
+ }
}
}
diff --git a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
index fb97ecf8bbc4..3ff1b95dc716 100644
--- a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
+++ b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java
@@ -16,9 +16,13 @@
package com.android.server.wm;
+import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_IME;
+
import android.view.InsetsSource;
import android.view.WindowInsets;
+import com.android.server.protolog.common.ProtoLog;
+
/**
* Controller for IME inset source on the server. It's called provider as it provides the
* {@link InsetsSource} to the client that uses it in {@link InsetsSourceConsumer}.
@@ -35,40 +39,40 @@ class ImeInsetsSourceProvider extends InsetsSourceProvider {
}
/**
- * Called when a layout pass has occurred.
- */
- void onPostLayout() {
- super.onPostLayout();
-
- if (mImeTargetFromIme != null
- && isImeTargetFromDisplayContentAndImeSame()
- && mWin != null
- && mWin.isDrawnLw()
- && !mWin.mGivenInsetsPending) {
- mIsImeLayoutDrawn = true;
- }
- }
-
- /**
- * Called when Insets have been dispatched to client.
+ * Called when Insets have been dispatched to client. This gets called just after onPostLayout.
*/
void onPostInsetsDispatched() {
- if (mIsImeLayoutDrawn && mShowImeRunner != null) {
- // Show IME if InputMethodService requested to be shown and it's layout has finished.
- mShowImeRunner.run();
- }
+ checkShowImePostLayout();
}
/**
* Called from {@link WindowManagerInternal#showImePostLayout} when {@link InputMethodService}
* requests to show IME on {@param imeTarget}.
+ *
* @param imeTarget imeTarget on which IME request is coming from.
*/
void scheduleShowImePostLayout(WindowState imeTarget) {
+ boolean targetChanged = mImeTargetFromIme != imeTarget
+ && mImeTargetFromIme != null && imeTarget != null && mShowImeRunner != null
+ && mImeTargetFromIme.mActivityRecord == imeTarget.mActivityRecord;
mImeTargetFromIme = imeTarget;
+ if (targetChanged) {
+ // target changed, check if new target can show IME.
+ ProtoLog.d(WM_DEBUG_IME, "IME target changed within ActivityRecord");
+ checkShowImePostLayout();
+ // if IME cannot be shown at this time, it is scheduled to be shown.
+ // once window that called IMM.showSoftInput() and DisplayContent's ImeTarget match,
+ // it will be shown.
+ return;
+ }
+
+ ProtoLog.d(WM_DEBUG_IME, "Schedule IME show for %s", mImeTargetFromIme.getName());
mShowImeRunner = () -> {
+ ProtoLog.d(WM_DEBUG_IME, "Run showImeRunner");
// Target should still be the same.
if (isImeTargetFromDisplayContentAndImeSame()) {
+ ProtoLog.d(WM_DEBUG_IME, "call showInsets(ime) on %s",
+ mDisplayContent.mInputMethodControlTarget.getWindow().getName());
mDisplayContent.mInputMethodControlTarget.showInsets(
WindowInsets.Type.ime(), true /* fromIme */);
}
@@ -76,10 +80,27 @@ class ImeInsetsSourceProvider extends InsetsSourceProvider {
};
}
+ private void checkShowImePostLayout() {
+ // check if IME is drawn
+ if (mIsImeLayoutDrawn
+ || (mImeTargetFromIme != null
+ && isImeTargetFromDisplayContentAndImeSame()
+ && mWin != null
+ && mWin.isDrawnLw()
+ && !mWin.mGivenInsetsPending)) {
+ mIsImeLayoutDrawn = true;
+ // show IME if InputMethodService requested it to be shown.
+ if (mShowImeRunner != null) {
+ mShowImeRunner.run();
+ }
+ }
+ }
+
/**
* Abort any pending request to show IME post layout.
*/
void abortShowImePostLayout() {
+ ProtoLog.d(WM_DEBUG_IME, "abortShowImePostLayout");
mImeTargetFromIme = null;
mIsImeLayoutDrawn = false;
mShowImeRunner = null;
@@ -96,12 +117,14 @@ class ImeInsetsSourceProvider extends InsetsSourceProvider {
// TODO(b/139861270): Remove the child & sublayer check once IMMS is aware of
// actual IME target.
final WindowState dcTarget = mDisplayContent.mInputMethodTarget;
- if (dcTarget == null) {
+ if (dcTarget == null || mImeTargetFromIme == null) {
return false;
}
+ ProtoLog.d(WM_DEBUG_IME, "dcTarget: %s mImeTargetFromIme: %s",
+ dcTarget.getName(), mImeTargetFromIme.getName());
+
return (!dcTarget.isClosing() && mImeTargetFromIme == dcTarget)
|| (mImeTargetFromIme != null && dcTarget.getParentWindow() == mImeTargetFromIme
- && dcTarget.mSubLayer > mImeTargetFromIme.mSubLayer);
+ && dcTarget.mSubLayer > mImeTargetFromIme.mSubLayer);
}
-
}
diff --git a/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java b/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
index ef6f84703723..2f02ffb17d3a 100644
--- a/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
+++ b/services/core/java/com/android/server/wm/ImmersiveModeConfirmation.java
@@ -275,7 +275,7 @@ public class ImmersiveModeConfirmation {
super.onAttachedToWindow();
DisplayMetrics metrics = new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(metrics);
+ mContext.getDisplay().getMetrics(metrics);
float density = metrics.density;
getViewTreeObserver().addOnComputeInternalInsetsListener(mInsetsListener);
diff --git a/services/core/java/com/android/server/wm/InsetsControlTarget.java b/services/core/java/com/android/server/wm/InsetsControlTarget.java
index 154cde140810..20e8f2ba485a 100644
--- a/services/core/java/com/android/server/wm/InsetsControlTarget.java
+++ b/services/core/java/com/android/server/wm/InsetsControlTarget.java
@@ -26,6 +26,13 @@ interface InsetsControlTarget {
void notifyInsetsControlChanged();
/**
+ * @return {@link WindowState} of this target, if any.
+ */
+ default WindowState getWindow() {
+ return null;
+ }
+
+ /**
* Instructs the control target to show inset sources.
*
* @param types to specify which types of insets source window should be shown.
diff --git a/services/core/java/com/android/server/wm/InsetsPolicy.java b/services/core/java/com/android/server/wm/InsetsPolicy.java
index fa764e3dfc18..d0179adadbd7 100644
--- a/services/core/java/com/android/server/wm/InsetsPolicy.java
+++ b/services/core/java/com/android/server/wm/InsetsPolicy.java
@@ -20,17 +20,31 @@ import static android.app.StatusBarManager.WINDOW_STATE_HIDDEN;
import static android.app.StatusBarManager.WINDOW_STATE_SHOWING;
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
+import static android.view.InsetsController.LAYOUT_INSETS_DURING_ANIMATION_HIDDEN;
+import static android.view.InsetsController.LAYOUT_INSETS_DURING_ANIMATION_SHOWN;
import static android.view.InsetsState.ITYPE_NAVIGATION_BAR;
import static android.view.InsetsState.ITYPE_STATUS_BAR;
+import static android.view.SyncRtSurfaceTransactionApplier.applyParams;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_SHOW_STATUS_BAR;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_STATUS_FORCE_SHOW_NAVIGATION;
import android.annotation.Nullable;
import android.app.StatusBarManager;
import android.util.IntArray;
+import android.util.SparseArray;
+import android.view.InsetsAnimationControlCallbacks;
+import android.view.InsetsAnimationControlImpl;
+import android.view.InsetsController;
+import android.view.InsetsSourceControl;
import android.view.InsetsState;
import android.view.InsetsState.InternalInsetsType;
+import android.view.SurfaceControl;
+import android.view.SyncRtSurfaceTransactionApplier;
import android.view.ViewRootImpl;
+import android.view.WindowInsetsAnimationCallback;
+import android.view.WindowInsetsAnimationControlListener;
+
+import com.android.server.DisplayThread;
/**
* Policy that implements who gets control over the windows generating insets.
@@ -46,6 +60,8 @@ class InsetsPolicy {
private WindowState mFocusedWin;
private BarWindow mStatusBar = new BarWindow(StatusBarManager.WINDOW_STATUS_BAR);
private BarWindow mNavBar = new BarWindow(StatusBarManager.WINDOW_NAVIGATION_BAR);
+ private boolean mAnimatingShown;
+ private final float[] mTmpFloat9 = new float[9];
InsetsPolicy(InsetsStateController stateController, DisplayContent displayContent) {
mStateController = stateController;
@@ -91,11 +107,14 @@ class InsetsPolicy {
changed = true;
}
if (changed) {
- updateBarControlTarget(mFocusedWin);
- mPolicy.getStatusBarManagerInternal().showTransient(mDisplayContent.getDisplayId(),
- mShowingTransientTypes.toArray());
- mStateController.notifyInsetsChanged();
- // TODO(b/118118435): Animation
+ startAnimation(mShowingTransientTypes, true, () -> {
+ synchronized (mDisplayContent.mWmService.mGlobalLock) {
+ mPolicy.getStatusBarManagerInternal().showTransient(
+ mDisplayContent.getDisplayId(),
+ mShowingTransientTypes.toArray());
+ mStateController.notifyInsetsChanged();
+ }
+ });
}
}
@@ -103,11 +122,13 @@ class InsetsPolicy {
if (mShowingTransientTypes.size() == 0) {
return;
}
-
- // TODO(b/118118435): Animation
- mShowingTransientTypes.clear();
- updateBarControlTarget(mFocusedWin);
- mStateController.notifyInsetsChanged();
+ startAnimation(mShowingTransientTypes, false, () -> {
+ synchronized (mDisplayContent.mWmService.mGlobalLock) {
+ mShowingTransientTypes.clear();
+ mStateController.notifyInsetsChanged();
+ updateBarControlTarget(mFocusedWin);
+ }
+ });
}
boolean isTransient(@InternalInsetsType int type) {
@@ -187,6 +208,10 @@ class InsetsPolicy {
if (mShowingTransientTypes.indexOf(ITYPE_STATUS_BAR) != -1) {
return mTransientControlTarget;
}
+ if (focusedWin == mPolicy.getNotificationShade()) {
+ // Notification shade has control anyways, no reason to force anything.
+ return focusedWin;
+ }
if (areSystemBarsForciblyVisible() || isKeyguardOrStatusBarForciblyVisible()) {
return null;
}
@@ -197,6 +222,10 @@ class InsetsPolicy {
if (mShowingTransientTypes.indexOf(ITYPE_NAVIGATION_BAR) != -1) {
return mTransientControlTarget;
}
+ if (focusedWin == mPolicy.getNotificationShade()) {
+ // Notification shade has control anyways, no reason to force anything.
+ return focusedWin;
+ }
if (areSystemBarsForciblyVisible() || isNavBarForciblyVisible()) {
return null;
}
@@ -204,9 +233,6 @@ class InsetsPolicy {
}
private boolean isKeyguardOrStatusBarForciblyVisible() {
- if (mPolicy.isKeyguardShowing()) {
- return true;
- }
final WindowState statusBar = mPolicy.getStatusBar();
if (statusBar != null) {
// TODO(b/118118435): Pretend to the app that it's still able to control it?
@@ -242,6 +268,29 @@ class InsetsPolicy {
return isDockedStackVisible || isFreeformStackVisible || isResizing;
}
+ private void startAnimation(IntArray internalTypes, boolean show, Runnable callback) {
+ int typesReady = 0;
+ final SparseArray<InsetsSourceControl> controls = new SparseArray<>();
+ updateBarControlTarget(mFocusedWin);
+ for (int i = internalTypes.size() - 1; i >= 0; i--) {
+ InsetsSourceProvider provider =
+ mStateController.getSourceProvider(internalTypes.get(i));
+ if (provider == null) continue;
+ InsetsSourceControl control = provider.getControl(provider.getControlTarget());
+ if (control == null || control.getLeash() == null) continue;
+ typesReady |= InsetsState.toPublicType(internalTypes.get(i));
+ controls.put(control.getType(), control);
+ }
+ controlAnimationUnchecked(typesReady, controls, show, callback);
+ }
+
+ private void controlAnimationUnchecked(int typesReady,
+ SparseArray<InsetsSourceControl> controls, boolean show, Runnable callback) {
+ InsetsPolicyAnimationControlListener listener =
+ new InsetsPolicyAnimationControlListener(show, callback);
+ listener.mControlCallbacks.controlAnimationUnchecked(typesReady, controls, show);
+ }
+
private class BarWindow {
private final int mId;
@@ -262,7 +311,103 @@ class InsetsPolicy {
}
}
- // TODO(b/118118435): Implement animations for it (with SurfaceAnimator)
+ private class InsetsPolicyAnimationControlListener extends
+ InsetsController.InternalAnimationControlListener {
+ Runnable mFinishCallback;
+ InsetsPolicyAnimationControlCallbacks mControlCallbacks;
+
+ InsetsPolicyAnimationControlListener(boolean show, Runnable finishCallback) {
+ super(show);
+ mFinishCallback = finishCallback;
+ mControlCallbacks = new InsetsPolicyAnimationControlCallbacks(this);
+ }
+
+ @Override
+ protected void onAnimationFinish() {
+ super.onAnimationFinish();
+ mControlCallbacks.mAnimationControl.finish(mAnimatingShown);
+ DisplayThread.getHandler().post(mFinishCallback);
+ }
+
+ private class InsetsPolicyAnimationControlCallbacks implements
+ InsetsAnimationControlCallbacks {
+ private InsetsAnimationControlImpl mAnimationControl = null;
+ private InsetsPolicyAnimationControlListener mListener;
+
+ InsetsPolicyAnimationControlCallbacks(InsetsPolicyAnimationControlListener listener) {
+ super();
+ mListener = listener;
+ }
+
+ private void controlAnimationUnchecked(int typesReady,
+ SparseArray<InsetsSourceControl> controls, boolean show) {
+ if (typesReady == 0) {
+ // nothing to animate.
+ return;
+ }
+ mAnimatingShown = show;
+
+ mAnimationControl = new InsetsAnimationControlImpl(controls,
+ mFocusedWin.getDisplayContent().getBounds(), getState(),
+ mListener, typesReady, this, mListener.getDurationMs(),
+ InsetsController.INTERPOLATOR, true,
+ show ? LAYOUT_INSETS_DURING_ANIMATION_SHOWN
+ : LAYOUT_INSETS_DURING_ANIMATION_HIDDEN);
+ }
+
+ /** Called on SurfaceAnimationThread lock without global WM lock held. */
+ @Override
+ public void scheduleApplyChangeInsets() {
+ InsetsState state = getState();
+ if (mAnimationControl.applyChangeInsets(state)) {
+ mAnimationControl.finish(mAnimatingShown);
+ }
+ }
+
+ @Override
+ public void notifyFinished(InsetsAnimationControlImpl controller, boolean shown) {
+ // Nothing's needed here. Finish steps is handled in the listener
+ // onAnimationFinished callback.
+ }
+
+ /**
+ * This method will return a state with fullscreen frame override. No need to make copy
+ * after getting state from this method.
+ * @return The client insets state with full display frame override.
+ */
+ private InsetsState getState() {
+ // To animate the transient animation correctly, we need to let the state hold
+ // the full display frame.
+ InsetsState overrideState = new InsetsState(mFocusedWin.getRequestedInsetsState(),
+ true);
+ overrideState.setDisplayFrame(mFocusedWin.getDisplayContent().getBounds());
+ return overrideState;
+ }
+
+ /** Called on SurfaceAnimationThread lock without global WM lock held. */
+ @Override
+ public void applySurfaceParams(
+ final SyncRtSurfaceTransactionApplier.SurfaceParams... params) {
+ SurfaceControl.Transaction t = new SurfaceControl.Transaction();
+ for (int i = params.length - 1; i >= 0; i--) {
+ SyncRtSurfaceTransactionApplier.SurfaceParams surfaceParams = params[i];
+ applyParams(t, surfaceParams, mTmpFloat9);
+ }
+ t.apply();
+ }
+
+ /** Called on SurfaceAnimationThread lock without global WM lock held. */
+ @Override
+ public void startAnimation(InsetsAnimationControlImpl controller,
+ WindowInsetsAnimationControlListener listener, int types,
+ WindowInsetsAnimationCallback.InsetsAnimation animation,
+ WindowInsetsAnimationCallback.AnimationBounds bounds,
+ int layoutDuringAnimation) {
+ SurfaceAnimationThread.getHandler().post(() -> listener.onReady(controller, types));
+ }
+ }
+ }
+
private class TransientControlTarget implements InsetsControlTarget {
@Override
diff --git a/services/core/java/com/android/server/wm/InsetsSourceProvider.java b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
index d540179a9491..0418afaf033a 100644
--- a/services/core/java/com/android/server/wm/InsetsSourceProvider.java
+++ b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
@@ -24,6 +24,7 @@ import static android.view.ViewRootImpl.NEW_INSETS_MODE_IME;
import static android.view.ViewRootImpl.NEW_INSETS_MODE_NONE;
import static android.view.ViewRootImpl.sNewInsetsMode;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_INSETS_CONTROL;
import static com.android.server.wm.WindowManagerService.H.LAYOUT_AND_ASSIGN_WINDOW_LAYERS_IF_NEEDED;
import android.annotation.NonNull;
@@ -34,11 +35,11 @@ import android.util.proto.ProtoOutputStream;
import android.view.InsetsSource;
import android.view.InsetsSourceControl;
import android.view.InsetsState;
-import android.view.InsetsState.InternalInsetsType;
import android.view.SurfaceControl;
import android.view.SurfaceControl.Transaction;
import com.android.internal.util.function.TriConsumer;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
import java.io.PrintWriter;
@@ -185,6 +186,17 @@ class InsetsSourceProvider {
}
}
+ /** @return A new source computed by the specified window frame in the given display frames. */
+ InsetsSource createSimulatedSource(DisplayFrames displayFrames, WindowFrames windowFrames) {
+ final InsetsSource source = new InsetsSource(mSource);
+ mTmpRect.set(windowFrames.mFrame);
+ if (mFrameProvider != null) {
+ mFrameProvider.accept(displayFrames, mWin, mTmpRect);
+ }
+ source.setFrame(mTmpRect);
+ return source;
+ }
+
/**
* Called when a layout pass has occurred.
*/
@@ -222,6 +234,12 @@ class InsetsSourceProvider {
// to control the window for now.
return;
}
+ if (target != null && target.getWindow() != null) {
+ // ime control target could be a different window.
+ // Refer WindowState#getImeControlTarget().
+ target = target.getWindow().getImeControlTarget();
+ }
+
if (mWin == null) {
mControlTarget = target;
return;
@@ -237,7 +255,8 @@ class InsetsSourceProvider {
mAdapter = new ControlAdapter();
setClientVisible(InsetsState.getDefaultVisibility(mSource.getType()));
final Transaction t = mDisplayContent.getPendingTransaction();
- mWin.startAnimation(t, mAdapter, !mClientVisible /* hidden */);
+ mWin.startAnimation(t, mAdapter, !mClientVisible /* hidden */,
+ ANIMATION_TYPE_INSETS_CONTROL, null /* animationFinishedCallback */);
final SurfaceControl leash = mAdapter.mCapturedLeash;
final long frameNumber = mFinishSeamlessRotateFrameNumber;
mFinishSeamlessRotateFrameNumber = -1;
@@ -342,7 +361,7 @@ class InsetsSourceProvider {
@Override
public void startAnimation(SurfaceControl animationLeash, Transaction t,
- OnAnimationFinishedCallback finishCallback) {
+ @AnimationType int type, OnAnimationFinishedCallback finishCallback) {
// TODO(b/118118435): We can remove the type check when implementing the transient bar
// animation.
if (mSource.getType() == ITYPE_IME) {
diff --git a/services/core/java/com/android/server/wm/InsetsStateController.java b/services/core/java/com/android/server/wm/InsetsStateController.java
index 3e698da13097..caaa4305406c 100644
--- a/services/core/java/com/android/server/wm/InsetsStateController.java
+++ b/services/core/java/com/android/server/wm/InsetsStateController.java
@@ -60,6 +60,8 @@ class InsetsStateController {
w.notifyInsetsChanged();
}
};
+ private final InsetsControlTarget mEmptyImeControlTarget = () -> {
+ };
InsetsStateController(DisplayContent displayContent) {
mDisplayContent = displayContent;
@@ -177,12 +179,33 @@ class InsetsStateController {
}
}
+ /**
+ * Computes insets state of the insets provider window in the display frames.
+ *
+ * @param state The output state.
+ * @param win The owner window of insets provider.
+ * @param displayFrames The display frames to create insets source.
+ * @param windowFrames The specified frames to represent the owner window.
+ */
+ void computeSimulatedState(InsetsState state, WindowState win, DisplayFrames displayFrames,
+ WindowFrames windowFrames) {
+ for (int i = mProviders.size() - 1; i >= 0; i--) {
+ final InsetsSourceProvider provider = mProviders.valueAt(i);
+ if (provider.mWin == win) {
+ state.addSource(provider.createSimulatedSource(displayFrames, windowFrames));
+ }
+ }
+ }
+
boolean isFakeTarget(@InternalInsetsType int type, InsetsControlTarget target) {
return mTypeFakeControlTargetMap.get(type) == target;
}
- void onImeTargetChanged(@Nullable InsetsControlTarget imeTarget) {
- onControlChanged(ITYPE_IME, imeTarget);
+ void onImeControlTargetChanged(@Nullable InsetsControlTarget imeTarget) {
+
+ // Make sure that we always have a control target for the IME, even if the IME target is
+ // null. Otherwise there is no leash that will hide it and IME becomes "randomly" visible.
+ onControlChanged(ITYPE_IME, imeTarget != null ? imeTarget : mEmptyImeControlTarget);
notifyPendingInsetsControlChanged();
}
diff --git a/services/core/java/com/android/server/wm/KeyguardController.java b/services/core/java/com/android/server/wm/KeyguardController.java
index ad65e101fd15..00947d766e89 100644
--- a/services/core/java/com/android/server/wm/KeyguardController.java
+++ b/services/core/java/com/android/server/wm/KeyguardController.java
@@ -31,11 +31,11 @@ import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG
import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_TO_SHADE;
import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_WITH_WALLPAPER;
-import static com.android.server.am.KeyguardControllerProto.AOD_SHOWING;
-import static com.android.server.am.KeyguardControllerProto.KEYGUARD_OCCLUDED_STATES;
-import static com.android.server.am.KeyguardControllerProto.KEYGUARD_SHOWING;
-import static com.android.server.am.KeyguardOccludedProto.DISPLAY_ID;
-import static com.android.server.am.KeyguardOccludedProto.KEYGUARD_OCCLUDED;
+import static com.android.server.wm.KeyguardControllerProto.AOD_SHOWING;
+import static com.android.server.wm.KeyguardControllerProto.KEYGUARD_OCCLUDED_STATES;
+import static com.android.server.wm.KeyguardControllerProto.KEYGUARD_SHOWING;
+import static com.android.server.wm.KeyguardOccludedProto.DISPLAY_ID;
+import static com.android.server.wm.KeyguardOccludedProto.KEYGUARD_OCCLUDED;
import static com.android.server.wm.ActivityStackSupervisor.PRESERVE_WINDOWS;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME;
diff --git a/services/core/java/com/android/server/wm/LocalAnimationAdapter.java b/services/core/java/com/android/server/wm/LocalAnimationAdapter.java
index 5892239edb4d..7c1a6161236a 100644
--- a/services/core/java/com/android/server/wm/LocalAnimationAdapter.java
+++ b/services/core/java/com/android/server/wm/LocalAnimationAdapter.java
@@ -24,6 +24,7 @@ import android.util.proto.ProtoOutputStream;
import android.view.SurfaceControl;
import android.view.SurfaceControl.Transaction;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
import java.io.PrintWriter;
@@ -50,9 +51,9 @@ class LocalAnimationAdapter implements AnimationAdapter {
@Override
public void startAnimation(SurfaceControl animationLeash, Transaction t,
- OnAnimationFinishedCallback finishCallback) {
+ @AnimationType int type, OnAnimationFinishedCallback finishCallback) {
mAnimator.startAnimation(mSpec, animationLeash, t,
- () -> finishCallback.onAnimationFinished(this));
+ () -> finishCallback.onAnimationFinished(type, this));
}
@Override
diff --git a/services/core/java/com/android/server/wm/LockTaskController.java b/services/core/java/com/android/server/wm/LockTaskController.java
index 02413bb48518..3b25b742e327 100644
--- a/services/core/java/com/android/server/wm/LockTaskController.java
+++ b/services/core/java/com/android/server/wm/LockTaskController.java
@@ -23,6 +23,8 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
import static android.content.Context.DEVICE_POLICY_SERVICE;
import static android.content.Context.STATUS_BAR_SERVICE;
import static android.content.Intent.ACTION_CALL_EMERGENCY;
+import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_ALWAYS;
+import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_NEVER;
import static android.os.UserHandle.USER_ALL;
import static android.os.UserHandle.USER_CURRENT;
import static android.telecom.TelecomManager.EMERGENCY_DIALER_COMPONENT;
@@ -339,6 +341,25 @@ public class LockTaskController {
& DevicePolicyManager.LOCK_TASK_FEATURE_KEYGUARD) != 0;
}
+ private boolean isBlockingInTaskEnabled(int userId) {
+ return (getLockTaskFeaturesForUser(userId)
+ & DevicePolicyManager.LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK) != 0;
+ }
+
+ boolean isActivityAllowed(int userId, String packageName, int lockTaskLaunchMode) {
+ if (mLockTaskModeState != LOCK_TASK_MODE_LOCKED || !isBlockingInTaskEnabled(userId)) {
+ return true;
+ }
+ switch (lockTaskLaunchMode) {
+ case LOCK_TASK_LAUNCH_MODE_ALWAYS:
+ return true;
+ case LOCK_TASK_LAUNCH_MODE_NEVER:
+ return false;
+ default:
+ }
+ return isPackageWhitelisted(userId, packageName);
+ }
+
private boolean isEmergencyCallTask(Task task) {
final Intent intent = task.intent;
if (intent == null) {
diff --git a/services/core/java/com/android/server/wm/ProtoLogGroup.java b/services/core/java/com/android/server/wm/ProtoLogGroup.java
index 5c2830e13b75..51725cecbc74 100644
--- a/services/core/java/com/android/server/wm/ProtoLogGroup.java
+++ b/services/core/java/com/android/server/wm/ProtoLogGroup.java
@@ -59,6 +59,8 @@ public enum ProtoLogGroup implements IProtoLogGroup {
Consts.TAG_WM),
WM_DEBUG_WINDOW_MOVEMENT(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
Consts.TAG_WM),
+ WM_DEBUG_IME(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM),
TEST_GROUP(true, true, false, "WindowManagetProtoLogTest");
private final boolean mEnabled;
diff --git a/services/core/java/com/android/server/wm/RecentsAnimation.java b/services/core/java/com/android/server/wm/RecentsAnimation.java
index 647be0f7038c..9770947ff2c3 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimation.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimation.java
@@ -388,11 +388,12 @@ class RecentsAnimation implements RecentsAnimationCallbacks,
// surfaces needs to be done immediately.
mWindowManager.executeAppTransition();
- // After reordering the stacks, reset the minimized state. At this point, either
- // the target activity is now top-most and we will stay minimized (if in
- // split-screen), or we will have returned to the app, and the minimized state
- // should be reset
- mWindowManager.checkSplitScreenMinimizedChanged(true /* animate */);
+ if (targetStack.getTile() != null) {
+ // Client state may have changed during the recents animation, so force
+ // send task info so the client can synchronize its state.
+ mService.mTaskOrganizerController.dispatchTaskInfoChanged(
+ targetStack.mTile, true /* force */);
+ }
} catch (Exception e) {
Slog.e(TAG, "Failed to clean up recents activity", e);
throw e;
diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java
index da9d074eb7bc..944e0ae3d73f 100644
--- a/services/core/java/com/android/server/wm/RecentsAnimationController.java
+++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java
@@ -30,6 +30,7 @@ import static com.android.server.wm.AnimationAdapterProto.REMOTE;
import static com.android.server.wm.BoundsAnimationController.FADE_IN;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_RECENTS_ANIMATIONS;
import static com.android.server.wm.RemoteAnimationAdapterWrapperProto.TARGET;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_RECENTS;
import static com.android.server.wm.WindowManagerInternal.AppTransitionListener;
import android.annotation.IntDef;
@@ -61,6 +62,7 @@ import com.android.server.LocalServices;
import com.android.server.inputmethod.InputMethodManagerInternal;
import com.android.server.protolog.common.ProtoLog;
import com.android.server.statusbar.StatusBarManagerInternal;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
import com.android.server.wm.utils.InsetUtils;
@@ -432,7 +434,8 @@ public class RecentsAnimationController implements DeathRecipient {
ProtoLog.d(WM_DEBUG_RECENTS_ANIMATIONS, "addAnimation(%s)", task.getName());
final TaskAnimationAdapter taskAdapter = new TaskAnimationAdapter(task,
isRecentTaskInvisible);
- task.startAnimation(task.getPendingTransaction(), taskAdapter, false /* hidden */);
+ task.startAnimation(task.getPendingTransaction(), taskAdapter, false /* hidden */,
+ ANIMATION_TYPE_RECENTS);
task.commitPendingTransaction();
mPendingAnimations.add(taskAdapter);
return taskAdapter;
@@ -443,14 +446,16 @@ public class RecentsAnimationController implements DeathRecipient {
ProtoLog.d(WM_DEBUG_RECENTS_ANIMATIONS,
"removeAnimation(%d)", taskAdapter.mTask.mTaskId);
taskAdapter.mTask.setCanAffectSystemUiFlags(true);
- taskAdapter.mCapturedFinishCallback.onAnimationFinished(taskAdapter);
+ taskAdapter.mCapturedFinishCallback.onAnimationFinished(taskAdapter.mLastAnimationType,
+ taskAdapter);
mPendingAnimations.remove(taskAdapter);
}
@VisibleForTesting
void removeWallpaperAnimation(WallpaperAnimationAdapter wallpaperAdapter) {
ProtoLog.d(WM_DEBUG_RECENTS_ANIMATIONS, "removeWallpaperAnimation()");
- wallpaperAdapter.getLeashFinishedCallback().onAnimationFinished(wallpaperAdapter);
+ wallpaperAdapter.getLeashFinishedCallback().onAnimationFinished(
+ wallpaperAdapter.getLastAnimationType(), wallpaperAdapter);
mPendingWallpaperAnimations.remove(wallpaperAdapter);
}
@@ -638,7 +643,7 @@ public class RecentsAnimationController implements DeathRecipient {
taskSnapshot.getColorSpace(), false /* containsSecureLayers */));
mRecentScreenshotAnimator = new SurfaceAnimator(
animatable,
- () -> {
+ (type, anim) -> {
ProtoLog.d(WM_DEBUG_RECENTS_ANIMATIONS, "mRecentScreenshotAnimator finish");
mCallbacks.onAnimationFinished(reorderMode, false /* sendUserLeaveHint */);
}, mService);
@@ -827,6 +832,7 @@ public class RecentsAnimationController implements DeathRecipient {
private final Task mTask;
private SurfaceControl mCapturedLeash;
private OnAnimationFinishedCallback mCapturedFinishCallback;
+ private @AnimationType int mLastAnimationType;
private final boolean mIsRecentTaskInvisible;
private RemoteAnimationTarget mTarget;
private final Point mPosition = new Point();
@@ -868,7 +874,7 @@ public class RecentsAnimationController implements DeathRecipient {
@Override
public void startAnimation(SurfaceControl animationLeash, Transaction t,
- OnAnimationFinishedCallback finishCallback) {
+ @AnimationType int type, OnAnimationFinishedCallback finishCallback) {
// Restore z-layering, position and stack crop until client has a chance to modify it.
t.setLayer(animationLeash, mTask.getPrefixOrderIndex());
t.setPosition(animationLeash, mPosition.x, mPosition.y);
@@ -877,6 +883,7 @@ public class RecentsAnimationController implements DeathRecipient {
t.setWindowCrop(animationLeash, mTmpRect);
mCapturedLeash = animationLeash;
mCapturedFinishCallback = finishCallback;
+ mLastAnimationType = type;
}
@Override
diff --git a/services/core/java/com/android/server/wm/RemoteAnimationController.java b/services/core/java/com/android/server/wm/RemoteAnimationController.java
index 6f7eeabfc4cd..d2dbab841f16 100644
--- a/services/core/java/com/android/server/wm/RemoteAnimationController.java
+++ b/services/core/java/com/android/server/wm/RemoteAnimationController.java
@@ -40,6 +40,7 @@ import android.view.SurfaceControl.Transaction;
import com.android.internal.util.FastPrintWriter;
import com.android.server.protolog.ProtoLogImpl;
import com.android.server.protolog.common.ProtoLog;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
import java.io.PrintWriter;
@@ -180,12 +181,14 @@ class RemoteAnimationController implements DeathRecipient {
if (wrappers.mAdapter != null
&& wrappers.mAdapter.mCapturedFinishCallback != null) {
wrappers.mAdapter.mCapturedFinishCallback
- .onAnimationFinished(wrappers.mAdapter);
+ .onAnimationFinished(wrappers.mAdapter.mAnimationType,
+ wrappers.mAdapter);
}
if (wrappers.mThumbnailAdapter != null
&& wrappers.mThumbnailAdapter.mCapturedFinishCallback != null) {
wrappers.mThumbnailAdapter.mCapturedFinishCallback
- .onAnimationFinished(wrappers.mThumbnailAdapter);
+ .onAnimationFinished(wrappers.mAdapter.mAnimationType,
+ wrappers.mThumbnailAdapter);
}
mPendingAnimations.remove(i);
}
@@ -221,11 +224,13 @@ class RemoteAnimationController implements DeathRecipient {
final RemoteAnimationRecord adapters = mPendingAnimations.get(i);
if (adapters.mAdapter != null) {
adapters.mAdapter.mCapturedFinishCallback
- .onAnimationFinished(adapters.mAdapter);
+ .onAnimationFinished(adapters.mAdapter.mAnimationType,
+ adapters.mAdapter);
}
if (adapters.mThumbnailAdapter != null) {
adapters.mThumbnailAdapter.mCapturedFinishCallback
- .onAnimationFinished(adapters.mThumbnailAdapter);
+ .onAnimationFinished(adapters.mAdapter.mAnimationType,
+ adapters.mThumbnailAdapter);
}
mPendingAnimations.remove(i);
ProtoLog.d(WM_DEBUG_REMOTE_ANIMATIONS, "\tcontainer=%s",
@@ -234,7 +239,8 @@ class RemoteAnimationController implements DeathRecipient {
for (int i = mPendingWallpaperAnimations.size() - 1; i >= 0; i--) {
final WallpaperAnimationAdapter adapter = mPendingWallpaperAnimations.get(i);
- adapter.getLeashFinishedCallback().onAnimationFinished(adapter);
+ adapter.getLeashFinishedCallback().onAnimationFinished(
+ adapter.getLastAnimationType(), adapter);
mPendingWallpaperAnimations.remove(i);
ProtoLog.d(WM_DEBUG_REMOTE_ANIMATIONS, "\twallpaper=%s", adapter.getToken());
}
@@ -393,6 +399,7 @@ class RemoteAnimationController implements DeathRecipient {
private final RemoteAnimationRecord mRecord;
SurfaceControl mCapturedLeash;
private OnAnimationFinishedCallback mCapturedFinishCallback;
+ private @AnimationType int mAnimationType;
final Point mPosition = new Point();
final Rect mStackBounds = new Rect();
@@ -410,7 +417,7 @@ class RemoteAnimationController implements DeathRecipient {
@Override
public void startAnimation(SurfaceControl animationLeash, Transaction t,
- OnAnimationFinishedCallback finishCallback) {
+ @AnimationType int type, OnAnimationFinishedCallback finishCallback) {
ProtoLog.d(WM_DEBUG_REMOTE_ANIMATIONS, "startAnimation");
// Restore z-layering, position and stack crop until client has a chance to modify it.
@@ -425,6 +432,7 @@ class RemoteAnimationController implements DeathRecipient {
}
mCapturedLeash = animationLeash;
mCapturedFinishCallback = finishCallback;
+ mAnimationType = type;
}
@Override
diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java
index e6fd512df72c..2fdcbc9083f6 100644
--- a/services/core/java/com/android/server/wm/RootWindowContainer.java
+++ b/services/core/java/com/android/server/wm/RootWindowContainer.java
@@ -16,7 +16,6 @@
package com.android.server.wm;
-import static android.app.ActivityTaskManager.INVALID_STACK_ID;
import static android.app.ActivityTaskManager.INVALID_TASK_ID;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
@@ -41,12 +40,6 @@ import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG;
import static android.view.WindowManager.TRANSIT_CRASHING_ACTIVITY_CLOSE;
import static android.view.WindowManager.TRANSIT_SHOW_SINGLE_TASK_DISPLAY;
-import static com.android.server.am.ActivityStackSupervisorProto.FOCUSED_STACK_ID;
-import static com.android.server.am.ActivityStackSupervisorProto.IS_HOME_RECENTS_COMPONENT;
-import static com.android.server.am.ActivityStackSupervisorProto.KEYGUARD_CONTROLLER;
-import static com.android.server.am.ActivityStackSupervisorProto.PENDING_ACTIVITIES;
-import static com.android.server.am.ActivityStackSupervisorProto.RESUMED_ACTIVITY;
-import static com.android.server.am.ActivityStackSupervisorProto.ROOT_WINDOW_CONTAINER;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_LAYOUT;
import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
import static com.android.server.wm.ActivityStack.ActivityState.PAUSED;
@@ -74,6 +67,9 @@ import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ORIENTATION;
import static com.android.server.wm.ProtoLogGroup.WM_SHOW_SURFACE_ALLOC;
import static com.android.server.wm.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
import static com.android.server.wm.RootWindowContainerProto.DISPLAYS;
+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.PENDING_ACTIVITIES;
import static com.android.server.wm.RootWindowContainerProto.WINDOWS;
import static com.android.server.wm.RootWindowContainerProto.WINDOW_CONTAINER;
import static com.android.server.wm.Task.REPARENT_LEAVE_STACK_IN_PLACE;
@@ -1012,6 +1008,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
mWmService.scheduleAnimationLocked();
+ // Send any pending task-info changes that were queued-up during a layout deferment
+ mWmService.mAtmService.mTaskOrganizerController.dispatchPendingTaskInfoChanges();
+
if (DEBUG_WINDOW_TRACE) Slog.e(TAG,
"performSurfacePlacementInner exit: animating="
+ mWmService.mAnimator.isAnimating());
@@ -1275,7 +1274,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
}
}
- public void dumpDebugInner(ProtoOutputStream proto, long fieldId,
+ @Override
+ public void dumpDebug(ProtoOutputStream proto, long fieldId,
@WindowTraceLogLevel int logLevel) {
if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) {
return;
@@ -1287,14 +1287,20 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
final int count = mChildren.size();
for (int i = 0; i < count; ++i) {
final DisplayContent displayContent = mChildren.get(i);
- displayContent.dumpDebugInner(proto, DISPLAYS, logLevel);
+ displayContent.dumpDebug(proto, DISPLAYS, logLevel);
}
}
if (logLevel == WindowTraceLogLevel.ALL) {
forAllWindows((w) -> {
- w.writeIdentifierToProto(proto, WINDOWS);
+ w.dumpDebug(proto, WINDOWS, logLevel);
}, true);
}
+
+ mStackSupervisor.getKeyguardController().dumpDebug(proto, KEYGUARD_CONTROLLER);
+ proto.write(IS_HOME_RECENTS_COMPONENT,
+ mStackSupervisor.mRecentTasks.isRecentsComponentHomeActivity(mCurrentUser));
+ mService.getActivityStartController().dumpDebug(proto, PENDING_ACTIVITIES);
+
proto.end(token);
}
@@ -2959,6 +2965,12 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
case ACTIVITY_TYPE_RECENTS: return r.isActivityTypeRecents();
case ACTIVITY_TYPE_ASSISTANT: return r.isActivityTypeAssistant();
}
+ // TODO(task-hierarchy): Find another way to differentiate tile from normal stack once it is
+ // part of the hierarchy
+ if (stack instanceof TaskTile) {
+ // Don't launch directly into tiles.
+ return false;
+ }
// There is a 1-to-1 relationship between stack and task when not in
// primary split-windowing mode.
if (stack.getWindowingMode() == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY
@@ -3532,15 +3544,6 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
}
}
- public void dumpDisplays(PrintWriter pw) {
- for (int i = getChildCount() - 1; i >= 0; --i) {
- final DisplayContent display = getChildAt(i);
- pw.print("[id:" + display.mDisplayId + " stacks:");
- display.dumpStacks(pw);
- pw.print("]");
- }
- }
-
boolean dumpActivities(FileDescriptor fd, PrintWriter pw, boolean dumpAll, boolean dumpClient,
String dumpPackage) {
boolean printed = false;
@@ -3569,34 +3572,6 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
return printed;
}
- @Override
- public void dumpDebug(ProtoOutputStream proto, long fieldId,
- @WindowTraceLogLevel int logLevel) {
- final long token = proto.start(fieldId);
- dumpDebugInner(proto, ROOT_WINDOW_CONTAINER, logLevel);
- for (int displayNdx = 0; displayNdx < getChildCount(); ++displayNdx) {
- final DisplayContent displayContent = getChildAt(displayNdx);
- displayContent.dumpDebug(proto,
- com.android.server.am.ActivityStackSupervisorProto.DISPLAYS, logLevel);
- }
- mStackSupervisor.getKeyguardController().dumpDebug(proto, KEYGUARD_CONTROLLER);
- // TODO(b/111541062): Update tests to look for resumed activities on all displays
- final ActivityStack focusedStack = getTopDisplayFocusedStack();
- if (focusedStack != null) {
- proto.write(FOCUSED_STACK_ID, focusedStack.getRootTaskId());
- final ActivityRecord focusedActivity = focusedStack.getDisplay().getResumedActivity();
- if (focusedActivity != null) {
- focusedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY);
- }
- } else {
- proto.write(FOCUSED_STACK_ID, INVALID_STACK_ID);
- }
- proto.write(IS_HOME_RECENTS_COMPONENT,
- mStackSupervisor.mRecentTasks.isRecentsComponentHomeActivity(mCurrentUser));
- mService.getActivityStartController().dumpDebug(proto, PENDING_ACTIVITIES);
- proto.end(token);
- }
-
private final class SleepTokenImpl extends ActivityTaskManagerInternal.SleepToken {
private final String mTag;
private final long mAcquireTime;
diff --git a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
index e7aca898b19d..f6cdac5d4565 100644
--- a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
+++ b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
@@ -24,6 +24,7 @@ import static com.android.server.wm.RotationAnimationSpecProto.END_LUMA;
import static com.android.server.wm.RotationAnimationSpecProto.START_LUMA;
import static com.android.server.wm.ScreenRotationAnimationProto.ANIMATION_RUNNING;
import static com.android.server.wm.ScreenRotationAnimationProto.STARTED;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_SCREEN_ROTATION;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
import static com.android.server.wm.WindowManagerService.TYPE_LAYER_MULTIPLIER;
@@ -48,6 +49,8 @@ import android.view.animation.Transformation;
import com.android.internal.R;
import com.android.server.protolog.common.ProtoLog;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
+import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
import com.android.server.wm.utils.RotationAnimationUtils;
import java.io.PrintWriter;
@@ -670,33 +673,35 @@ class ScreenRotationAnimation {
* Start an animation defined by animationSpec on a new {@link SurfaceAnimator}.
*
* @param animatable The animatable used for the animation.
- * @param animationSpec The spec of the animation.
- * @param animationFinishedCallback Callback passed to the {@link SurfaceAnimator} and
- * called when the animation finishes.
+ * @param animationSpec The spec of the animation.
+ * @param animationFinishedCallback Callback passed to the {@link SurfaceAnimator}
+ * and called when the animation finishes.
* @return The newly created {@link SurfaceAnimator} that as been started.
*/
private SurfaceAnimator startAnimation(
SurfaceAnimator.Animatable animatable,
LocalAnimationAdapter.AnimationSpec animationSpec,
- Runnable animationFinishedCallback) {
+ OnAnimationFinishedCallback animationFinishedCallback) {
SurfaceAnimator animator = new SurfaceAnimator(
animatable, animationFinishedCallback, mService);
LocalAnimationAdapter localAnimationAdapter = new LocalAnimationAdapter(
animationSpec, mService.mSurfaceAnimationRunner);
animator.startAnimation(mDisplayContent.getPendingTransaction(),
- localAnimationAdapter, false);
+ localAnimationAdapter, false, ANIMATION_TYPE_SCREEN_ROTATION);
return animator;
}
- private void onAnimationEnd() {
+ private void onAnimationEnd(@AnimationType int type, AnimationAdapter anim) {
synchronized (mService.mGlobalLock) {
if (isAnimating()) {
ProtoLog.v(WM_DEBUG_ORIENTATION,
- "ScreenRotation sill animating: mDisplayAnimator: %s\n"
- + "mEnterBlackFrameAnimator: "
- + "%s\nmRotateScreenAnimator: %s\n"
+ "ScreenRotation still animating: type: %d\n"
+ + "mDisplayAnimator: %s\n"
+ + "mEnterBlackFrameAnimator: %s\n"
+ + "mRotateScreenAnimator: %s\n"
+ "mScreenshotRotationAnimator: %s",
+ type,
mDisplayAnimator != null
? mDisplayAnimator.isAnimating() : null,
mEnterBlackFrameAnimator != null
diff --git a/services/core/java/com/android/server/wm/Session.java b/services/core/java/com/android/server/wm/Session.java
index de7f9e41cac0..9df42486580b 100644
--- a/services/core/java/com/android/server/wm/Session.java
+++ b/services/core/java/com/android/server/wm/Session.java
@@ -238,16 +238,12 @@ class Session extends IWindowSession.Stub implements IBinder.DeathRecipient {
@Override
public void setInTouchMode(boolean mode) {
- synchronized (mService.mGlobalLock) {
- mService.mInTouchMode = mode;
- }
+ mService.setInTouchMode(mode);
}
@Override
public boolean getInTouchMode() {
- synchronized (mService.mGlobalLock) {
- return mService.mInTouchMode;
- }
+ return mService.getInTouchMode();
}
@Override
@@ -626,7 +622,7 @@ class Session extends IWindowSession.Stub implements IBinder.DeathRecipient {
@Override
public void grantInputChannel(int displayId, SurfaceControl surface,
- IWindow window, IBinder hostInputToken, InputChannel outInputChannel) {
+ IWindow window, IBinder hostInputToken, int flags, InputChannel outInputChannel) {
if (hostInputToken == null && !mCanAddInternalSystemWindow) {
// Callers without INTERNAL_SYSTEM_WINDOW permission cannot grant input channel to
// embedded windows without providing a host window input token
@@ -635,8 +631,19 @@ class Session extends IWindowSession.Stub implements IBinder.DeathRecipient {
final long identity = Binder.clearCallingIdentity();
try {
- mService.grantInputChannel(mUid, mPid, displayId, surface, window,
- hostInputToken, outInputChannel);
+ mService.grantInputChannel(mUid, mPid, displayId, surface, window, hostInputToken,
+ flags, outInputChannel);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void updateInputChannel(IBinder channelToken, int displayId, SurfaceControl surface,
+ int flags) {
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ mService.updateInputChannel(channelToken, displayId, surface, flags);
} finally {
Binder.restoreCallingIdentity(identity);
}
diff --git a/services/core/java/com/android/server/wm/SurfaceAnimator.java b/services/core/java/com/android/server/wm/SurfaceAnimator.java
index cb1676f3a7b1..7164cd85230b 100644
--- a/services/core/java/com/android/server/wm/SurfaceAnimator.java
+++ b/services/core/java/com/android/server/wm/SurfaceAnimator.java
@@ -23,6 +23,7 @@ import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ANIM;
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.NonNull;
import android.annotation.Nullable;
import android.util.Slog;
@@ -33,6 +34,8 @@ import android.view.SurfaceControl.Transaction;
import com.android.internal.annotations.VisibleForTesting;
import java.io.PrintWriter;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
/**
* A class that can run animations on objects that have a set of child surfaces. We do this by
@@ -47,6 +50,7 @@ class SurfaceAnimator {
private static final String TAG = TAG_WITH_CLASS_NAME ? "SurfaceAnimator" : TAG_WM;
private final WindowManagerService mService;
private AnimationAdapter mAnimation;
+ private @AnimationType int mAnimationType;
@VisibleForTesting
SurfaceControl mLeash;
@@ -55,30 +59,32 @@ class SurfaceAnimator {
private final OnAnimationFinishedCallback mInnerAnimationFinishedCallback;
@VisibleForTesting
@Nullable
- final Runnable mStaticAnimationFinishedCallback;
+ final OnAnimationFinishedCallback mStaticAnimationFinishedCallback;
@Nullable
- private Runnable mAnimationFinishedCallback;
+ private OnAnimationFinishedCallback mAnimationFinishedCallback;
private boolean mAnimationStartDelayed;
/**
* @param animatable The object to animate.
- * @param animationFinishedCallback Callback to invoke when an animation has finished running.
+ * @param staticAnimationFinishedCallback Callback to invoke when an animation has finished
+ * running.
*/
- SurfaceAnimator(Animatable animatable, @Nullable Runnable animationFinishedCallback,
+ SurfaceAnimator(Animatable animatable,
+ @Nullable OnAnimationFinishedCallback staticAnimationFinishedCallback,
WindowManagerService service) {
mAnimatable = animatable;
mService = service;
- mStaticAnimationFinishedCallback = animationFinishedCallback;
- mInnerAnimationFinishedCallback = getFinishedCallback(animationFinishedCallback);
+ mStaticAnimationFinishedCallback = staticAnimationFinishedCallback;
+ mInnerAnimationFinishedCallback = getFinishedCallback(staticAnimationFinishedCallback);
}
private OnAnimationFinishedCallback getFinishedCallback(
- @Nullable Runnable animationFinishedCallback) {
- return anim -> {
+ @Nullable OnAnimationFinishedCallback staticAnimationFinishedCallback) {
+ return (type, anim) -> {
synchronized (mService.mGlobalLock) {
final SurfaceAnimator target = mService.mAnimationTransferMap.remove(anim);
if (target != null) {
- target.mInnerAnimationFinishedCallback.onAnimationFinished(anim);
+ target.mInnerAnimationFinishedCallback.onAnimationFinished(type, anim);
return;
}
@@ -91,13 +97,14 @@ class SurfaceAnimator {
if (anim != mAnimation) {
return;
}
- final Runnable animationFinishCallback = mAnimationFinishedCallback;
+ final OnAnimationFinishedCallback animationFinishCallback =
+ mAnimationFinishedCallback;
reset(mAnimatable.getPendingTransaction(), true /* destroyLeash */);
- if (animationFinishedCallback != null) {
- animationFinishedCallback.run();
+ if (staticAnimationFinishedCallback != null) {
+ staticAnimationFinishedCallback.onAnimationFinished(type, anim);
}
if (animationFinishCallback != null) {
- animationFinishCallback.run();
+ animationFinishCallback.onAnimationFinished(type, anim);
}
};
if (!mAnimatable.shouldDeferAnimationFinish(resetAndInvokeFinish)) {
@@ -120,9 +127,11 @@ class SurfaceAnimator {
* @param animationFinishedCallback The callback being triggered when the animation finishes.
*/
void startAnimation(Transaction t, AnimationAdapter anim, boolean hidden,
- @Nullable Runnable animationFinishedCallback) {
+ @AnimationType int type,
+ @Nullable OnAnimationFinishedCallback animationFinishedCallback) {
cancelAnimation(t, true /* restarting */, true /* forwardCancel */);
mAnimation = anim;
+ mAnimationType = type;
mAnimationFinishedCallback = animationFinishedCallback;
final SurfaceControl surface = mAnimatable.getSurfaceControl();
if (surface == null) {
@@ -137,11 +146,12 @@ class SurfaceAnimator {
if (DEBUG_ANIM) Slog.i(TAG, "Animation start delayed");
return;
}
- mAnimation.startAnimation(mLeash, t, mInnerAnimationFinishedCallback);
+ mAnimation.startAnimation(mLeash, t, type, mInnerAnimationFinishedCallback);
}
- void startAnimation(Transaction t, AnimationAdapter anim, boolean hidden) {
- startAnimation(t, anim, hidden, null /* animationFinishedCallback */);
+ void startAnimation(Transaction t, AnimationAdapter anim, boolean hidden,
+ @AnimationType int type) {
+ startAnimation(t, anim, hidden, type, null /* animationFinishedCallback */);
}
/**
@@ -165,7 +175,7 @@ class SurfaceAnimator {
mAnimationStartDelayed = false;
if (delayed && mAnimation != null) {
mAnimation.startAnimation(mLeash, mAnimatable.getPendingTransaction(),
- mInnerAnimationFinishedCallback);
+ mAnimationType, mInnerAnimationFinishedCallback);
mAnimatable.commitPendingTransaction();
}
}
@@ -245,6 +255,7 @@ class SurfaceAnimator {
cancelAnimation(t, true /* restarting */, true /* forwardCancel */);
mLeash = from.mLeash;
mAnimation = from.mAnimation;
+ mAnimationType = from.mAnimationType;
mAnimationFinishedCallback = from.mAnimationFinishedCallback;
// Cancel source animation, but don't let animation runner cancel the animation.
@@ -272,7 +283,8 @@ class SurfaceAnimator {
if (DEBUG_ANIM) Slog.i(TAG, "Cancelling animation restarting=" + restarting);
final SurfaceControl leash = mLeash;
final AnimationAdapter animation = mAnimation;
- final Runnable animationFinishedCallback = mAnimationFinishedCallback;
+ final @AnimationType int animationType = mAnimationType;
+ final OnAnimationFinishedCallback animationFinishedCallback = mAnimationFinishedCallback;
reset(t, false);
if (animation != null) {
if (!mAnimationStartDelayed && forwardCancel) {
@@ -280,10 +292,10 @@ class SurfaceAnimator {
}
if (!restarting) {
if (mStaticAnimationFinishedCallback != null) {
- mStaticAnimationFinishedCallback.run();
+ mStaticAnimationFinishedCallback.onAnimationFinished(animationType, animation);
}
if (animationFinishedCallback != null) {
- animationFinishedCallback.run();
+ animationFinishedCallback.onAnimationFinished(animationType, animation);
}
}
}
@@ -325,6 +337,7 @@ class SurfaceAnimator {
mLeash = null;
mAnimation = null;
mAnimationFinishedCallback = null;
+ mAnimationType = ANIMATION_TYPE_NONE;
if (reparent) {
// Make sure to inform the animatable after the surface was reparented (or reparent
@@ -392,12 +405,72 @@ class SurfaceAnimator {
}
}
+
+ /**
+ * No animation is specified.
+ * @hide
+ */
+ static final int ANIMATION_TYPE_NONE = 0;
+
+ /**
+ * Animation for an app transition.
+ * @hide
+ */
+ static final int ANIMATION_TYPE_APP_TRANSITION = 1;
+
+ /**
+ * Animation for screen rotation.
+ * @hide
+ */
+ static final int ANIMATION_TYPE_SCREEN_ROTATION = 2;
+
+ /**
+ * Animation for dimming.
+ * @hide
+ */
+ static final int ANIMATION_TYPE_DIMMER = 3;
+
+ /**
+ * Animation for recent apps.
+ * @hide
+ */
+ static final int ANIMATION_TYPE_RECENTS = 4;
+
+ /**
+ * Animation for a {@link WindowState} without animating the activity.
+ * @hide
+ */
+ static final int ANIMATION_TYPE_WINDOW_ANIMATION = 5;
+
+ /**
+ * Animation to control insets. This is actually not an animation, but is used to give the
+ * client a leash over the system window causing insets.
+ * @hide
+ */
+ static final int ANIMATION_TYPE_INSETS_CONTROL = 6;
+
+ /**
+ * The type of the animation.
+ * @hide
+ */
+ @IntDef(flag = true, prefix = { "ANIMATION_TYPE_" }, value = {
+ ANIMATION_TYPE_NONE,
+ ANIMATION_TYPE_APP_TRANSITION,
+ ANIMATION_TYPE_SCREEN_ROTATION,
+ ANIMATION_TYPE_DIMMER,
+ ANIMATION_TYPE_RECENTS,
+ ANIMATION_TYPE_WINDOW_ANIMATION,
+ ANIMATION_TYPE_INSETS_CONTROL
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @interface AnimationType {}
+
/**
* Callback to be passed into {@link AnimationAdapter#startAnimation} to be invoked by the
* component that is running the animation when the animation is finished.
*/
interface OnAnimationFinishedCallback {
- void onAnimationFinished(AnimationAdapter anim);
+ void onAnimationFinished(@AnimationType int type, AnimationAdapter anim);
}
/**
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index 36cae1fb9b36..87c91ef6b96c 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -61,17 +61,6 @@ import static android.view.SurfaceControl.METADATA_TASK_ID;
import static com.android.internal.policy.DecorView.DECOR_SHADOW_FOCUSED_HEIGHT_IN_DIP;
import static com.android.internal.policy.DecorView.DECOR_SHADOW_UNFOCUSED_HEIGHT_IN_DIP;
-import static com.android.server.am.TaskRecordProto.ACTIVITIES;
-import static com.android.server.am.TaskRecordProto.ACTIVITY_TYPE;
-import static com.android.server.am.TaskRecordProto.FULLSCREEN;
-import static com.android.server.am.TaskRecordProto.LAST_NON_FULLSCREEN_BOUNDS;
-import static com.android.server.am.TaskRecordProto.MIN_HEIGHT;
-import static com.android.server.am.TaskRecordProto.MIN_WIDTH;
-import static com.android.server.am.TaskRecordProto.ORIG_ACTIVITY;
-import static com.android.server.am.TaskRecordProto.REAL_ACTIVITY;
-import static com.android.server.am.TaskRecordProto.RESIZE_MODE;
-import static com.android.server.am.TaskRecordProto.STACK_ID;
-import static com.android.server.am.TaskRecordProto.TASK;
import static com.android.server.wm.ActivityRecord.STARTING_WINDOW_SHOWN;
import static com.android.server.wm.ActivityStack.ActivityState.RESUMED;
import static com.android.server.wm.ActivityStackSupervisor.ON_TOP;
@@ -90,7 +79,6 @@ import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLAS
import static com.android.server.wm.ActivityTaskManagerService.TAG_STACK;
import static com.android.server.wm.DragResizeMode.DRAG_RESIZE_MODE_DOCKED_DIVIDER;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ADD_REMOVE;
-import static com.android.server.wm.TaskProto.ACTIVITY;
import static com.android.server.wm.TaskProto.DISPLAYED_BOUNDS;
import static com.android.server.wm.TaskProto.FILLS_PARENT;
import static com.android.server.wm.TaskProto.SURFACE_HEIGHT;
@@ -1257,7 +1245,7 @@ class Task extends WindowContainer<WindowContainer> {
if (affinityIntent != null) return affinityIntent;
// Probably a task that contains other tasks, so return the intent for the top task?
final Task topTask = getTopMostTask();
- return topTask != null ? topTask.getBaseIntent() : null;
+ return (topTask != this && topTask != null) ? topTask.getBaseIntent() : null;
}
/** Returns the first non-finishing activity from the bottom. */
@@ -3160,29 +3148,6 @@ class Task extends WindowContainer<WindowContainer> {
}
}
- // TODO(proto-merge): Remove once protos for TaskRecord and Task are merged.
- void dumpDebugInnerTaskOnly(ProtoOutputStream proto, long fieldId,
- @WindowTraceLogLevel int logLevel) {
- if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) {
- return;
- }
-
- final long token = proto.start(fieldId);
- super.dumpDebug(proto, WINDOW_CONTAINER, logLevel);
- proto.write(TaskProto.ID, mTaskId);
- forAllActivities((r) -> {
- r.dumpDebug(proto, ACTIVITY);
- });
- proto.write(FILLS_PARENT, matchParentBounds());
- getBounds().dumpDebug(proto, TaskProto.BOUNDS);
- mOverrideDisplayedBounds.dumpDebug(proto, DISPLAYED_BOUNDS);
- if (mSurfaceControl != null) {
- proto.write(SURFACE_WIDTH, mSurfaceControl.getWidth());
- proto.write(SURFACE_HEIGHT, mSurfaceControl.getHeight());
- }
- proto.end(token);
- }
-
@Override
void dump(PrintWriter pw, String prefix, boolean dumpAll) {
super.dump(pw, prefix, dumpAll);
@@ -3214,7 +3179,10 @@ class Task extends WindowContainer<WindowContainer> {
info.taskId = mTaskId;
info.displayId = getDisplayId();
info.isRunning = getTopNonFinishingActivity() != null;
- info.baseIntent = new Intent(getBaseIntent());
+ final Intent baseIntent = getBaseIntent();
+ // Make a copy of base intent because this is like a snapshot info.
+ // Besides, {@link RecentTasks#getRecentTasksImpl} may modify it.
+ info.baseIntent = baseIntent == null ? new Intent() : new Intent(baseIntent);
info.baseActivity = mReuseActivitiesReport.base != null
? mReuseActivitiesReport.base.intent.getComponent()
: null;
@@ -3229,6 +3197,10 @@ class Task extends WindowContainer<WindowContainer> {
info.supportsSplitScreenMultiWindow = supportsSplitScreenWindowingMode();
info.resizeMode = mResizeMode;
info.configuration.setTo(getConfiguration());
+ info.token = mRemoteToken;
+ // Get's the first non-undefined activity type among this and children. Can't use
+ // configuration.windowConfiguration because that would only be this level.
+ info.topActivityType = getActivityType();
}
/**
@@ -3375,7 +3347,7 @@ class Task extends WindowContainer<WindowContainer> {
if (affinity != null) {
sb.append(" A=");
sb.append(affinity);
- } else if (intent != null) {
+ } else if (intent != null && intent.getComponent() != null) {
sb.append(" I=");
sb.append(intent.getComponent().flattenToShortString());
} else if (affinityIntent != null && affinityIntent.getComponent() != null) {
@@ -3388,43 +3360,6 @@ class Task extends WindowContainer<WindowContainer> {
return toString();
}
- void dumpDebugInner(ProtoOutputStream proto, long fieldId,
- @WindowTraceLogLevel int logLevel) {
- if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) {
- return;
- }
-
- final long token = proto.start(fieldId);
- dumpDebugInnerTaskOnly(proto, TASK, logLevel);
- proto.write(com.android.server.am.TaskRecordProto.ID, mTaskId);
-
- forAllActivities((r) -> {
- r.dumpDebug(proto, ACTIVITIES);
- });
- proto.write(STACK_ID, getRootTaskId());
- if (mLastNonFullscreenBounds != null) {
- mLastNonFullscreenBounds.dumpDebug(proto, LAST_NON_FULLSCREEN_BOUNDS);
- }
- if (realActivity != null) {
- proto.write(REAL_ACTIVITY, realActivity.flattenToShortString());
- }
- if (origActivity != null) {
- proto.write(ORIG_ACTIVITY, origActivity.flattenToShortString());
- }
- proto.write(ACTIVITY_TYPE, getActivityType());
- proto.write(RESIZE_MODE, mResizeMode);
- // TODO: Remove, no longer needed with windowingMode.
- proto.write(FULLSCREEN, matchParentBounds());
-
- if (!matchParentBounds()) {
- final Rect bounds = getRequestedOverrideBounds();
- bounds.dumpDebug(proto, com.android.server.am.TaskRecordProto.BOUNDS);
- }
- proto.write(MIN_WIDTH, mMinWidth);
- proto.write(MIN_HEIGHT, mMinHeight);
- proto.end(token);
- }
-
/** @see #getNumRunningActivities(TaskActivitiesReport) */
static class TaskActivitiesReport implements Consumer<ActivityRecord> {
int numRunning;
@@ -3865,7 +3800,12 @@ class Task extends WindowContainer<WindowContainer> {
boolean isControlledByTaskOrganizer() {
final Task rootTask = getRootTask();
- return rootTask == this && rootTask.mTaskOrganizer != null;
+ return rootTask == this && rootTask.mTaskOrganizer != null
+ // TODO(task-hierarchy): Figure out how to control nested tasks.
+ // For now, if this is in a tile let WM drive.
+ && !(rootTask instanceof TaskTile)
+ && !(rootTask instanceof ActivityStack
+ && ((ActivityStack) rootTask).getTile() != null);
}
@Override
@@ -3893,6 +3833,9 @@ class Task extends WindowContainer<WindowContainer> {
}
void setTaskOrganizer(ITaskOrganizer organizer) {
+ if (mTaskOrganizer == organizer) {
+ return;
+ }
// Let the old organizer know it has lost control.
if (mTaskOrganizer != null) {
sendTaskVanished();
@@ -3918,8 +3861,6 @@ class Task extends WindowContainer<WindowContainer> {
public void updateSurfacePosition() {
// Avoid fighting with the TaskOrganizer over Surface position.
if (isControlledByTaskOrganizer()) {
- getPendingTransaction().setPosition(mSurfaceControl, 0, 0);
- scheduleAnimation();
return;
} else {
super.updateSurfacePosition();
diff --git a/services/core/java/com/android/server/wm/TaskOrganizerController.java b/services/core/java/com/android/server/wm/TaskOrganizerController.java
index 283be4010677..096541f57ba5 100644
--- a/services/core/java/com/android/server/wm/TaskOrganizerController.java
+++ b/services/core/java/com/android/server/wm/TaskOrganizerController.java
@@ -16,25 +16,53 @@
package com.android.server.wm;
+import static android.Manifest.permission.MANAGE_ACTIVITY_STACKS;
+import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
+import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
+import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
+import static com.android.server.wm.ActivityStackSupervisor.PRESERVE_WINDOWS;
+
+import android.annotation.Nullable;
+import android.app.ActivityManager.RunningTaskInfo;
+import android.app.ITaskOrganizerController;
+import android.app.WindowConfiguration;
+import android.content.pm.ActivityInfo;
+import android.content.res.Configuration;
+import android.graphics.Rect;
+import android.os.Binder;
import android.os.IBinder;
import android.os.RemoteException;
+import android.util.ArraySet;
import android.util.Slog;
import android.view.ITaskOrganizer;
+import android.view.IWindowContainer;
import android.view.SurfaceControl;
+import android.view.WindowContainerTransaction;
+
+import com.android.internal.util.function.pooled.PooledConsumer;
+import com.android.internal.util.function.pooled.PooledLambda;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.WeakHashMap;
/**
* Stores the TaskOrganizers associated with a given windowing mode and
* their associated state.
*/
-class TaskOrganizerController {
+class TaskOrganizerController extends ITaskOrganizerController.Stub
+ implements BLASTSyncEngine.TransactionReadyListener {
private static final String TAG = "TaskOrganizerController";
- private WindowManagerGlobalLock mGlobalLock;
+ /** Flag indicating that an applied transaction may have effected lifecycle */
+ private static final int TRANSACT_EFFECTS_CLIENT_CONFIG = 1;
+ private static final int TRANSACT_EFFECTS_LIFECYCLE = 1 << 1;
+
+ private final WindowManagerGlobalLock mGlobalLock;
private class DeathRecipient implements IBinder.DeathRecipient {
int mWindowingMode;
@@ -48,11 +76,10 @@ class TaskOrganizerController {
@Override
public void binderDied() {
synchronized (mGlobalLock) {
- final TaskOrganizerState state = mTaskOrganizerStates.get(mTaskOrganizer);
- for (int i = 0; i < state.mOrganizedTasks.size(); i++) {
- state.mOrganizedTasks.get(i).taskOrganizerDied();
- }
- mTaskOrganizerStates.remove(mTaskOrganizer);
+ final TaskOrganizerState state =
+ mTaskOrganizerStates.get(mTaskOrganizer.asBinder());
+ state.releaseTasks();
+ mTaskOrganizerStates.remove(mTaskOrganizer.asBinder());
if (mTaskOrganizersForWindowingMode.get(mWindowingMode) == mTaskOrganizer) {
mTaskOrganizersForWindowingMode.remove(mWindowingMode);
}
@@ -63,66 +90,132 @@ class TaskOrganizerController {
class TaskOrganizerState {
ITaskOrganizer mOrganizer;
DeathRecipient mDeathRecipient;
+ int mWindowingMode;
ArrayList<Task> mOrganizedTasks = new ArrayList<>();
+ // Save the TaskOrganizer which we replaced registration for
+ // so it can be re-registered if we unregister.
+ TaskOrganizerState mReplacementFor;
+ boolean mDisposed = false;
+
+
+ TaskOrganizerState(ITaskOrganizer organizer, int windowingMode,
+ TaskOrganizerState replacing) {
+ mOrganizer = organizer;
+ mDeathRecipient = new DeathRecipient(organizer, windowingMode);
+ try {
+ organizer.asBinder().linkToDeath(mDeathRecipient, 0);
+ } catch (RemoteException e) {
+ Slog.e(TAG, "TaskOrganizer failed to register death recipient");
+ }
+ mWindowingMode = windowingMode;
+ mReplacementFor = replacing;
+ }
+
void addTask(Task t) {
mOrganizedTasks.add(t);
+ try {
+ mOrganizer.taskAppeared(t.getTaskInfo());
+ } catch (Exception e) {
+ Slog.e(TAG, "Exception sending taskAppeared callback" + e);
+ }
}
void removeTask(Task t) {
+ try {
+ mOrganizer.taskVanished(t.getRemoteToken());
+ } catch (Exception e) {
+ Slog.e(TAG, "Exception sending taskVanished callback" + e);
+ }
mOrganizedTasks.remove(t);
}
- TaskOrganizerState(ITaskOrganizer organizer, DeathRecipient deathRecipient) {
- mOrganizer = organizer;
- mDeathRecipient = deathRecipient;
+ void dispose() {
+ mDisposed = true;
+ releaseTasks();
+ handleReplacement();
+ }
+
+ void releaseTasks() {
+ for (int i = mOrganizedTasks.size() - 1; i >= 0; i--) {
+ final Task t = mOrganizedTasks.get(i);
+ t.taskOrganizerDied();
+ removeTask(t);
+ }
+ }
+
+ void handleReplacement() {
+ if (mReplacementFor != null && !mReplacementFor.mDisposed) {
+ mTaskOrganizersForWindowingMode.put(mWindowingMode, mReplacementFor);
+ }
+ }
+
+ void unlinkDeath() {
+ mDisposed = true;
+ mOrganizer.asBinder().unlinkToDeath(mDeathRecipient, 0);
}
};
final HashMap<Integer, TaskOrganizerState> mTaskOrganizersForWindowingMode = new HashMap();
- final HashMap<ITaskOrganizer, TaskOrganizerState> mTaskOrganizerStates = new HashMap();
+ final HashMap<IBinder, TaskOrganizerState> mTaskOrganizerStates = new HashMap();
final HashMap<Integer, ITaskOrganizer> mTaskOrganizersByPendingSyncId = new HashMap();
+ private final WeakHashMap<Task, RunningTaskInfo> mLastSentTaskInfos = new WeakHashMap<>();
+ private final ArrayList<Task> mPendingTaskInfoChanges = new ArrayList<>();
+
+ private final BLASTSyncEngine mBLASTSyncEngine = new BLASTSyncEngine();
+
final ActivityTaskManagerService mService;
- TaskOrganizerController(ActivityTaskManagerService atm, WindowManagerGlobalLock lock) {
+ RunningTaskInfo mTmpTaskInfo;
+
+ TaskOrganizerController(ActivityTaskManagerService atm) {
mService = atm;
- mGlobalLock = lock;
+ mGlobalLock = atm.mGlobalLock;
}
- private void clearIfNeeded(int windowingMode) {
- final TaskOrganizerState oldState = mTaskOrganizersForWindowingMode.get(windowingMode);
- if (oldState != null) {
- oldState.mOrganizer.asBinder().unlinkToDeath(oldState.mDeathRecipient, 0);
- }
+ private void enforceStackPermission(String func) {
+ mService.mAmInternal.enforceCallingPermission(MANAGE_ACTIVITY_STACKS, func);
}
/**
* Register a TaskOrganizer to manage tasks as they enter the given windowing mode.
* If there was already a TaskOrganizer for this windowing mode it will be evicted
- * and receive taskVanished callbacks in the process.
+ * but will continue to organize it's existing tasks.
*/
- void registerTaskOrganizer(ITaskOrganizer organizer, int windowingMode) {
- if (windowingMode != WINDOWING_MODE_PINNED) {
- throw new UnsupportedOperationException(
- "As of now only Pinned windowing mode is supported for registerTaskOrganizer");
-
+ @Override
+ public void registerTaskOrganizer(ITaskOrganizer organizer, int windowingMode) {
+ if (windowingMode != WINDOWING_MODE_PINNED
+ && windowingMode != WINDOWING_MODE_SPLIT_SCREEN_PRIMARY
+ && windowingMode != WINDOWING_MODE_SPLIT_SCREEN_SECONDARY
+ && windowingMode != WINDOWING_MODE_MULTI_WINDOW) {
+ throw new UnsupportedOperationException("As of now only Pinned/Split/Multiwindow"
+ + " windowing modes are supported for registerTaskOrganizer");
}
- clearIfNeeded(windowingMode);
- DeathRecipient dr = new DeathRecipient(organizer, windowingMode);
+ enforceStackPermission("registerTaskOrganizer()");
+ final long origId = Binder.clearCallingIdentity();
try {
- organizer.asBinder().linkToDeath(dr, 0);
- } catch (RemoteException e) {
- Slog.e(TAG, "TaskOrganizer failed to register death recipient");
+ synchronized (mGlobalLock) {
+ final TaskOrganizerState state = new TaskOrganizerState(organizer, windowingMode,
+ mTaskOrganizersForWindowingMode.get(windowingMode));
+ mTaskOrganizersForWindowingMode.put(windowingMode, state);
+ mTaskOrganizerStates.put(organizer.asBinder(), state);
+ }
+ } finally {
+ Binder.restoreCallingIdentity(origId);
}
+ }
- final TaskOrganizerState state = new TaskOrganizerState(organizer, dr);
- mTaskOrganizersForWindowingMode.put(windowingMode, state);
-
- mTaskOrganizerStates.put(organizer, state);
+ void unregisterTaskOrganizer(ITaskOrganizer organizer) {
+ final TaskOrganizerState state = mTaskOrganizerStates.get(organizer.asBinder());
+ state.unlinkDeath();
+ if (mTaskOrganizersForWindowingMode.get(state.mWindowingMode) == state) {
+ mTaskOrganizersForWindowingMode.remove(state.mWindowingMode);
+ }
+ state.dispose();
}
ITaskOrganizer getTaskOrganizer(int windowingMode) {
@@ -133,35 +226,315 @@ class TaskOrganizerController {
return state.mOrganizer;
}
- private void sendTaskAppeared(ITaskOrganizer organizer, Task task) {
+ void onTaskAppeared(ITaskOrganizer organizer, Task task) {
+ final TaskOrganizerState state = mTaskOrganizerStates.get(organizer.asBinder());
+ state.addTask(task);
+ }
+
+ void onTaskVanished(ITaskOrganizer organizer, Task task) {
+ final TaskOrganizerState state = mTaskOrganizerStates.get(organizer.asBinder());
+ state.removeTask(task);
+ }
+
+ @Override
+ public RunningTaskInfo createRootTask(int displayId, int windowingMode) {
+ enforceStackPermission("createRootTask()");
+ final long origId = Binder.clearCallingIdentity();
try {
- organizer.taskAppeared(task.getRemoteToken(), task.getTaskInfo());
- } catch (Exception e) {
- Slog.e(TAG, "Exception sending taskAppeared callback" + e);
+ synchronized (mGlobalLock) {
+ DisplayContent display = mService.mRootWindowContainer.getDisplayContent(displayId);
+ if (display == null) {
+ return null;
+ }
+ final int nextId = display.getNextStackId();
+ TaskTile tile = new TaskTile(mService, nextId, windowingMode);
+ display.addTile(tile);
+ RunningTaskInfo out = new RunningTaskInfo();
+ tile.fillTaskInfo(out);
+ mLastSentTaskInfos.put(tile, out);
+ return out;
+ }
+ } finally {
+ Binder.restoreCallingIdentity(origId);
}
}
- private void sendTaskVanished(ITaskOrganizer organizer, Task task) {
+ @Override
+ public boolean deleteRootTask(IWindowContainer token) {
+ enforceStackPermission("deleteRootTask()");
+ final long origId = Binder.clearCallingIdentity();
try {
- organizer.taskVanished(task.getRemoteToken());
- } catch (Exception e) {
- Slog.e(TAG, "Exception sending taskVanished callback" + e);
+ synchronized (mGlobalLock) {
+ TaskTile tile = TaskTile.forToken(token.asBinder());
+ if (tile == null) {
+ return false;
+ }
+ tile.removeImmediately();
+ return true;
+ }
+ } finally {
+ Binder.restoreCallingIdentity(origId);
}
}
- void onTaskAppeared(ITaskOrganizer organizer, Task task) {
- TaskOrganizerState state = mTaskOrganizerStates.get(organizer);
+ void dispatchPendingTaskInfoChanges() {
+ if (mService.mWindowManager.mWindowPlacerLocked.isLayoutDeferred()) {
+ return;
+ }
+ for (int i = 0, n = mPendingTaskInfoChanges.size(); i < n; ++i) {
+ dispatchTaskInfoChanged(mPendingTaskInfoChanges.get(i), false /* force */);
+ }
+ mPendingTaskInfoChanges.clear();
+ }
- state.addTask(task);
- sendTaskAppeared(organizer, task);
+ void dispatchTaskInfoChanged(Task task, boolean force) {
+ if (!force && mService.mWindowManager.mWindowPlacerLocked.isLayoutDeferred()) {
+ // Defer task info reporting while layout is deferred. This is because layout defer
+ // blocks tend to do lots of re-ordering which can mess up animations in receivers.
+ mPendingTaskInfoChanges.remove(task);
+ mPendingTaskInfoChanges.add(task);
+ return;
+ }
+ RunningTaskInfo lastInfo = mLastSentTaskInfos.get(task);
+ if (mTmpTaskInfo == null) {
+ mTmpTaskInfo = new RunningTaskInfo();
+ }
+ task.fillTaskInfo(mTmpTaskInfo);
+ boolean changed = lastInfo == null
+ || mTmpTaskInfo.topActivityType != lastInfo.topActivityType
+ || mTmpTaskInfo.isResizable() != lastInfo.isResizable();
+ if (!(changed || force)) {
+ return;
+ }
+ final RunningTaskInfo newInfo = mTmpTaskInfo;
+ mLastSentTaskInfos.put(task, mTmpTaskInfo);
+ // Since we've stored this, clean up the reference so a new one will be created next time.
+ // Transferring it this way means we only have to construct new RunningTaskInfos when they
+ // change.
+ mTmpTaskInfo = null;
+
+ if (task.mTaskOrganizer != null) {
+ try {
+ task.mTaskOrganizer.onTaskInfoChanged(newInfo);
+ } catch (RemoteException e) {
+ }
+ }
}
- void onTaskVanished(ITaskOrganizer organizer, Task task) {
- final TaskOrganizerState state = mTaskOrganizerStates.get(organizer);
- sendTaskVanished(organizer, task);
+ @Override
+ public IWindowContainer getImeTarget(int displayId) {
+ enforceStackPermission("getImeTarget()");
+ final long origId = Binder.clearCallingIdentity();
+ try {
+ synchronized (mGlobalLock) {
+ DisplayContent dc = mService.mWindowManager.mRoot
+ .getDisplayContent(displayId);
+ if (dc == null || dc.mInputMethodTarget == null) {
+ return null;
+ }
+ // Avoid WindowState#getRootTask() so we don't attribute system windows to a task.
+ final Task task = dc.mInputMethodTarget.getTask();
+ if (task == null) {
+ return null;
+ }
+ ActivityStack rootTask = (ActivityStack) task.getRootTask();
+ final TaskTile tile = rootTask.getTile();
+ if (tile != null) {
+ rootTask = tile;
+ }
+ return rootTask.mRemoteToken;
+ }
+ } finally {
+ Binder.restoreCallingIdentity(origId);
+ }
+ }
- // This could trigger TaskAppeared for other tasks in the same stack so make sure
- // we do this AFTER sending taskVanished.
- state.removeTask(task);
+ @Override
+ public void setLaunchRoot(int displayId, @Nullable IWindowContainer tile) {
+ enforceStackPermission("setLaunchRoot()");
+ final long origId = Binder.clearCallingIdentity();
+ try {
+ synchronized (mGlobalLock) {
+ DisplayContent display = mService.mRootWindowContainer.getDisplayContent(displayId);
+ if (display == null) {
+ return;
+ }
+ TaskTile taskTile = tile == null ? null : TaskTile.forToken(tile.asBinder());
+ if (taskTile == null) {
+ display.mLaunchTile = null;
+ return;
+ }
+ if (taskTile.getDisplay() != display) {
+ throw new RuntimeException("Can't set launch root for display " + displayId
+ + " to task on display " + taskTile.getDisplay().getDisplayId());
+ }
+ display.mLaunchTile = taskTile;
+ }
+ } finally {
+ Binder.restoreCallingIdentity(origId);
+ }
+ }
+
+ private int sanitizeAndApplyChange(WindowContainer container,
+ WindowContainerTransaction.Change change) {
+ if (!(container instanceof Task)) {
+ throw new RuntimeException("Invalid token in task transaction");
+ }
+ // The "client"-facing API should prevent bad changes; however, just in case, sanitize
+ // masks here.
+ int configMask = change.getConfigSetMask();
+ int windowMask = change.getWindowSetMask();
+ configMask &= ActivityInfo.CONFIG_WINDOW_CONFIGURATION
+ | ActivityInfo.CONFIG_SMALLEST_SCREEN_SIZE;
+ windowMask &= WindowConfiguration.WINDOW_CONFIG_BOUNDS;
+ int effects = 0;
+ if (configMask != 0) {
+ Configuration c = new Configuration(container.getRequestedOverrideConfiguration());
+ c.setTo(change.getConfiguration(), configMask, windowMask);
+ container.onRequestedOverrideConfigurationChanged(c);
+ // TODO(b/145675353): remove the following once we could apply new bounds to the
+ // pinned stack together with its children.
+ resizePinnedStackIfNeeded(container, configMask, windowMask, c);
+ effects |= TRANSACT_EFFECTS_CLIENT_CONFIG;
+ }
+ if ((change.getChangeMask() & WindowContainerTransaction.Change.CHANGE_FOCUSABLE) != 0) {
+ if (container.setFocusable(change.getFocusable())) {
+ effects |= TRANSACT_EFFECTS_LIFECYCLE;
+ }
+ }
+ return effects;
+ }
+
+ private void resizePinnedStackIfNeeded(ConfigurationContainer container, int configMask,
+ int windowMask, Configuration config) {
+ if ((container instanceof ActivityStack)
+ && ((configMask & ActivityInfo.CONFIG_WINDOW_CONFIGURATION) != 0)
+ && ((windowMask & WindowConfiguration.WINDOW_CONFIG_BOUNDS) != 0)) {
+ final ActivityStack stack = (ActivityStack) container;
+ if (stack.inPinnedWindowingMode()) {
+ stack.resize(config.windowConfiguration.getBounds(),
+ null /* tempTaskBounds */, null /* tempTaskInsetBounds */,
+ PRESERVE_WINDOWS, true /* deferResume */);
+ }
+ }
+ }
+
+ private int applyWindowContainerChange(WindowContainer wc,
+ WindowContainerTransaction.Change c) {
+ int effects = sanitizeAndApplyChange(wc, c);
+
+ Rect enterPipBounds = c.getEnterPipBounds();
+ if (enterPipBounds != null) {
+ Task tr = (Task) wc;
+ mService.mStackSupervisor.updatePictureInPictureMode(tr,
+ enterPipBounds, true);
+ }
+ return effects;
+ }
+
+ @Override
+ public int applyContainerTransaction(WindowContainerTransaction t, ITaskOrganizer organizer) {
+ enforceStackPermission("applyContainerTransaction()");
+ int syncId = -1;
+ if (t == null) {
+ throw new IllegalArgumentException(
+ "Null transaction passed to applyContainerTransaction");
+ }
+ long ident = Binder.clearCallingIdentity();
+ try {
+ synchronized (mGlobalLock) {
+ int effects = 0;
+
+ /**
+ * If organizer is non-null we are looking to synchronize this transaction
+ * by collecting all the results in to a SurfaceFlinger transaction and
+ * then delivering that to the given organizers transaction ready callback.
+ * See {@link BLASTSyncEngine} for the details of the operation. But at
+ * a high level we create a sync operation with a given ID and an associated
+ * organizer. Then we notify each WindowContainer in this WindowContainer
+ * transaction that it is participating in a sync operation with that
+ * ID. Once everything is notified we tell the BLASTSyncEngine
+ * "setSyncReady" which means that we have added everything
+ * to the set. At any point after this, all the WindowContainers
+ * will eventually finish applying their changes and notify the
+ * BLASTSyncEngine which will deliver the Transaction to the organizer.
+ */
+ if (organizer != null) {
+ syncId = startSyncWithOrganizer(organizer);
+ }
+ mService.deferWindowLayout();
+ try {
+ ArraySet<WindowContainer> haveConfigChanges = new ArraySet<>();
+ Iterator<Map.Entry<IBinder, WindowContainerTransaction.Change>> entries =
+ t.getChanges().entrySet().iterator();
+ while (entries.hasNext()) {
+ final Map.Entry<IBinder, WindowContainerTransaction.Change> entry =
+ entries.next();
+ final WindowContainer wc = WindowContainer.RemoteToken.fromBinder(
+ entry.getKey()).getContainer();
+ int containerEffect = applyWindowContainerChange(wc, entry.getValue());
+ effects |= containerEffect;
+
+ // Lifecycle changes will trigger ensureConfig for everything.
+ if ((effects & TRANSACT_EFFECTS_LIFECYCLE) == 0
+ && (containerEffect & TRANSACT_EFFECTS_CLIENT_CONFIG) != 0) {
+ haveConfigChanges.add(wc);
+ }
+ if (syncId >= 0) {
+ mBLASTSyncEngine.addToSyncSet(syncId, wc);
+ }
+ }
+ if ((effects & TRANSACT_EFFECTS_LIFECYCLE) != 0) {
+ // Already calls ensureActivityConfig
+ mService.mRootWindowContainer.ensureActivitiesVisible(
+ null, 0, PRESERVE_WINDOWS);
+ } else if ((effects & TRANSACT_EFFECTS_CLIENT_CONFIG) != 0) {
+ final PooledConsumer f = PooledLambda.obtainConsumer(
+ ActivityRecord::ensureActivityConfiguration,
+ PooledLambda.__(ActivityRecord.class), 0,
+ false /* preserveWindow */);
+ try {
+ for (int i = haveConfigChanges.size() - 1; i >= 0; --i) {
+ haveConfigChanges.valueAt(i).forAllActivities(f);
+ }
+ } finally {
+ f.recycle();
+ }
+ }
+ } finally {
+ mService.continueWindowLayout();
+ if (syncId >= 0) {
+ setSyncReady(syncId);
+ }
+ }
+ }
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ return syncId;
+ }
+
+ @Override
+ public void transactionReady(int id, SurfaceControl.Transaction sc) {
+ final ITaskOrganizer organizer = mTaskOrganizersByPendingSyncId.get(id);
+ if (organizer == null) {
+ Slog.e(TAG, "Got transaction complete for unexpected ID");
+ }
+ try {
+ organizer.transactionReady(id, sc);
+ } catch (RemoteException e) {
+ }
+
+ mTaskOrganizersByPendingSyncId.remove(id);
+ }
+
+ int startSyncWithOrganizer(ITaskOrganizer organizer) {
+ int id = mBLASTSyncEngine.startSyncSet(this);
+ mTaskOrganizersByPendingSyncId.put(id, organizer);
+ return id;
+ }
+
+ void setSyncReady(int id) {
+ mBLASTSyncEngine.setReady(id);
}
}
diff --git a/services/core/java/com/android/server/wm/TaskSnapshotSurface.java b/services/core/java/com/android/server/wm/TaskSnapshotSurface.java
index e47eaee5bce4..f4e42455087d 100644
--- a/services/core/java/com/android/server/wm/TaskSnapshotSurface.java
+++ b/services/core/java/com/android/server/wm/TaskSnapshotSurface.java
@@ -36,7 +36,6 @@ import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
import static android.view.WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_DRAW_BAR_BACKGROUNDS;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
-
import static com.android.internal.policy.DecorView.NAVIGATION_BAR_COLOR_VIEW_ATTRIBUTES;
import static com.android.internal.policy.DecorView.STATUS_BAR_COLOR_VIEW_ATTRIBUTES;
import static com.android.internal.policy.DecorView.getColorViewLeftInset;
@@ -188,8 +187,9 @@ class TaskSnapshotSurface implements StartingSurface {
return null;
}
sysUiVis = topFullscreenOpaqueWindow.getSystemUiVisibility();
- windowFlags = topFullscreenOpaqueWindow.getAttrs().flags;
- windowPrivateFlags = topFullscreenOpaqueWindow.getAttrs().privateFlags;
+ WindowManager.LayoutParams attrs = topFullscreenOpaqueWindow.mAttrs;
+ windowFlags = attrs.flags;
+ windowPrivateFlags = attrs.privateFlags;
layoutParams.packageName = mainWindow.getAttrs().packageName;
layoutParams.windowAnimations = mainWindow.getAttrs().windowAnimations;
@@ -204,6 +204,14 @@ class TaskSnapshotSurface implements StartingSurface {
layoutParams.width = LayoutParams.MATCH_PARENT;
layoutParams.height = LayoutParams.MATCH_PARENT;
layoutParams.systemUiVisibility = sysUiVis;
+ layoutParams.insetsFlags.behavior
+ = topFullscreenOpaqueWindow.mAttrs.insetsFlags.behavior;
+ layoutParams.insetsFlags.appearance
+ = topFullscreenOpaqueWindow.mAttrs.insetsFlags.appearance;
+ layoutParams.setFitInsetsTypes(attrs.getFitInsetsTypes());
+ layoutParams.setFitInsetsSides(attrs.getFitInsetsSides());
+ layoutParams.setFitInsetsIgnoringVisibility(attrs.isFitInsetsIgnoringVisibility());
+
layoutParams.setTitle(String.format(TITLE_FORMAT, task.mTaskId));
final TaskDescription td = task.getTaskDescription();
diff --git a/services/core/java/com/android/server/wm/TaskTile.java b/services/core/java/com/android/server/wm/TaskTile.java
new file mode 100644
index 000000000000..add11d69cbaa
--- /dev/null
+++ b/services/core/java/com/android/server/wm/TaskTile.java
@@ -0,0 +1,225 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
+import static android.content.pm.ActivityInfo.RESIZE_MODE_RESIZEABLE;
+import static android.content.pm.ActivityInfo.RESIZE_MODE_UNRESIZEABLE;
+
+import android.app.ActivityManager;
+import android.app.TaskInfo;
+import android.app.WindowConfiguration;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.ApplicationInfo;
+import android.content.res.Configuration;
+import android.graphics.Rect;
+import android.os.IBinder;
+import android.util.Slog;
+import android.view.SurfaceControl;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+
+/**
+ * A Tile. Right now this acts as a proxy for manipulating non-child stacks. Eventually, this
+ * can become an actual parent.
+ */
+// TODO(task-hierarchy): Remove when tasks can nest >2 or when single tasks can handle their
+// own lifecycles.
+public class TaskTile extends ActivityStack {
+ private static final String TAG = "TaskTile";
+ final ArrayList<WindowContainer> mChildren = new ArrayList<>();
+
+ private static ActivityInfo createEmptyActivityInfo() {
+ ActivityInfo info = new ActivityInfo();
+ info.applicationInfo = new ApplicationInfo();
+ return info;
+ }
+
+ TaskTile(ActivityTaskManagerService atmService, int id, int windowingMode) {
+ super(atmService, id, new Intent() /*intent*/, null /*affinityIntent*/, null /*affinity*/,
+ null /*rootAffinity*/, null /*realActivity*/, null /*origActivity*/,
+ false /*rootWasReset*/, false /*autoRemoveRecents*/, false /*askedCompatMode*/,
+ 0 /*userId*/, 0 /*effectiveUid*/, null /*lastDescription*/,
+ System.currentTimeMillis(), true /*neverRelinquishIdentity*/,
+ new ActivityManager.TaskDescription(), id, INVALID_TASK_ID, INVALID_TASK_ID,
+ 0 /*taskAffiliationColor*/, 0 /*callingUid*/, "" /*callingPackage*/,
+ RESIZE_MODE_RESIZEABLE, false /*supportsPictureInPicture*/,
+ false /*_realActivitySuspended*/, false /*userSetupComplete*/, INVALID_MIN_SIZE,
+ INVALID_MIN_SIZE, createEmptyActivityInfo(), null /*voiceSession*/,
+ null /*voiceInteractor*/, null /*stack*/);
+ getRequestedOverrideConfiguration().windowConfiguration.setWindowingMode(windowingMode);
+ }
+
+ @Override
+ void onDisplayChanged(DisplayContent dc) {
+ mDisplayContent = null;
+ if (dc != null) {
+ dc.getPendingTransaction().merge(getPendingTransaction());
+ }
+ mDisplayContent = dc;
+ // Virtual parent, so don't notify children.
+ }
+
+ /**
+ * If there is a disconnection, this will clean up any vestigial surfaces left on the tile
+ * leash by moving known children to a new surfacecontrol and then removing the old one.
+ */
+ void cleanupSurfaces() {
+ if (mSurfaceControl == null) {
+ return;
+ }
+ SurfaceControl oldSurface = mSurfaceControl;
+ WindowContainer parentWin = getParent();
+ if (parentWin == null) {
+ return;
+ }
+ mSurfaceControl = parentWin.makeChildSurface(null).setName("TaskTile " + mTaskId + " - "
+ + getRequestedOverrideWindowingMode()).setContainerLayer().build();
+ SurfaceControl.Transaction t = parentWin.getPendingTransaction();
+ t.show(mSurfaceControl);
+ for (int i = 0; i < mChildren.size(); ++i) {
+ if (mChildren.get(i).getSurfaceControl() == null) {
+ continue;
+ }
+ mChildren.get(i).reparentSurfaceControl(t, mSurfaceControl);
+ }
+ t.remove(oldSurface);
+ }
+
+ @Override
+ protected void addChild(WindowContainer child, Comparator<WindowContainer> comparator) {
+ throw new RuntimeException("Improper use of addChild() on Tile");
+ }
+
+ @Override
+ void addChild(WindowContainer child, int index) {
+ mChildren.add(child);
+ if (child instanceof ActivityStack) {
+ ((ActivityStack) child).setTile(this);
+ }
+ mAtmService.mTaskOrganizerController.dispatchTaskInfoChanged(
+ this, false /* force */);
+ }
+
+ @Override
+ void removeChild(WindowContainer child) {
+ if (child instanceof ActivityStack) {
+ ((ActivityStack) child).setTile(null);
+ }
+ mChildren.remove(child);
+ mAtmService.mTaskOrganizerController.dispatchTaskInfoChanged(
+ this, false /* force */);
+ }
+
+ void removeAllChildren() {
+ for (int i = mChildren.size() - 1; i >= 0; --i) {
+ final WindowContainer child = mChildren.get(i);
+ if (child instanceof ActivityStack) {
+ ((ActivityStack) child).setTile(null);
+ }
+ }
+ mChildren.clear();
+ mAtmService.mTaskOrganizerController.dispatchTaskInfoChanged(
+ this, false /* force */);
+ }
+
+ @Override
+ protected int getChildCount() {
+ // Currently 0 as this isn't a proper hierarchy member yet.
+ return 0;
+ }
+
+ @Override
+ public void setWindowingMode(/*@WindowConfiguration.WindowingMode*/ int windowingMode) {
+ Configuration c = new Configuration(getRequestedOverrideConfiguration());
+ c.windowConfiguration.setWindowingMode(windowingMode);
+ onRequestedOverrideConfigurationChanged(c);
+ }
+
+ @Override
+ public void onConfigurationChanged(Configuration newParentConfig) {
+ super.onConfigurationChanged(newParentConfig);
+ for (int i = mChildren.size() - 1; i >= 0; --i) {
+ final WindowContainer child = mChildren.get(i);
+ child.onConfigurationChanged(child.getParent().getConfiguration());
+ }
+ }
+
+ /**
+ * Until this can be part of the hierarchy, the Stack level can use this utility during
+ * resolveOverrideConfig to simulate inheritance.
+ */
+ void updateResolvedConfig(Configuration inOutResolvedConfig) {
+ Rect resolveBounds = inOutResolvedConfig.windowConfiguration.getBounds();
+ if (resolveBounds == null || resolveBounds.isEmpty()) {
+ resolveBounds.set(getRequestedOverrideBounds());
+ }
+ int stackMode = inOutResolvedConfig.windowConfiguration.getWindowingMode();
+ if (stackMode == WindowConfiguration.WINDOWING_MODE_UNDEFINED
+ || stackMode == WindowConfiguration.WINDOWING_MODE_FULLSCREEN) {
+ // Also replace FULLSCREEN because we interpret FULLSCREEN as "fill parent"
+ inOutResolvedConfig.windowConfiguration.setWindowingMode(
+ getRequestedOverrideWindowingMode());
+ }
+ if (inOutResolvedConfig.smallestScreenWidthDp
+ == Configuration.SMALLEST_SCREEN_WIDTH_DP_UNDEFINED) {
+ inOutResolvedConfig.smallestScreenWidthDp =
+ getRequestedOverrideConfiguration().smallestScreenWidthDp;
+ }
+ }
+
+ @Override
+ void fillTaskInfo(TaskInfo info) {
+ super.fillTaskInfo(info);
+ WindowContainer top = null;
+ // Check mChildren.isEmpty directly because hasChild() -> getChildCount() always returns 0
+ if (!mChildren.isEmpty()) {
+ // Find the top-most root task which is a virtual child of this Tile. Because this is a
+ // virtual parent, the mChildren order here isn't changed during hierarchy operations.
+ WindowContainer parent = mChildren.get(0).getParent();
+ for (int i = parent.getChildCount() - 1; i >= 0; --i) {
+ if (mChildren.contains(parent.getChildAt(i))) {
+ top = parent.getChildAt(i);
+ break;
+ }
+ }
+ }
+ final Task topTask = top == null ? null : top.getTopMostTask();
+ boolean isResizable = topTask == null || topTask.isResizeable();
+ info.resizeMode = isResizable ? RESIZE_MODE_RESIZEABLE : RESIZE_MODE_UNRESIZEABLE;
+ info.topActivityType = top == null ? ACTIVITY_TYPE_UNDEFINED : top.getActivityType();
+ info.configuration.setTo(getRequestedOverrideConfiguration());
+ }
+
+ @Override
+ void removeImmediately() {
+ removeAllChildren();
+ super.removeImmediately();
+ }
+
+ static TaskTile forToken(IBinder token) {
+ try {
+ return (TaskTile) ((TaskToken) token).getContainer();
+ } catch (ClassCastException e) {
+ Slog.w(TAG, "Bad tile token: " + token, e);
+ return null;
+ }
+ }
+}
diff --git a/services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java b/services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java
index 801e5217098f..bd705998f49a 100644
--- a/services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java
+++ b/services/core/java/com/android/server/wm/WallpaperAnimationAdapter.java
@@ -18,6 +18,7 @@ package com.android.server.wm;
import static com.android.server.wm.AnimationAdapterProto.REMOTE;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_REMOTE_ANIMATIONS;
import static com.android.server.wm.RemoteAnimationAdapterWrapperProto.TARGET;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION;
import android.graphics.Point;
import android.os.SystemClock;
@@ -26,6 +27,7 @@ import android.view.RemoteAnimationTarget;
import android.view.SurfaceControl;
import com.android.server.protolog.common.ProtoLog;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
import java.io.PrintWriter;
import java.util.ArrayList;
@@ -40,6 +42,7 @@ class WallpaperAnimationAdapter implements AnimationAdapter {
private final WallpaperWindowToken mWallpaperToken;
private SurfaceControl mCapturedLeash;
private SurfaceAnimator.OnAnimationFinishedCallback mCapturedLeashFinishCallback;
+ private @AnimationType int mLastAnimationType;
private long mDurationHint;
private long mStatusBarTransitionDelay;
@@ -77,7 +80,7 @@ class WallpaperAnimationAdapter implements AnimationAdapter {
wallpaperWindow, durationHint, statusBarTransitionDelay,
animationCanceledRunnable);
wallpaperWindow.startAnimation(wallpaperWindow.getPendingTransaction(),
- wallpaperAdapter, false /* hidden */);
+ wallpaperAdapter, false /* hidden */, ANIMATION_TYPE_WINDOW_ANIMATION);
targets.add(wallpaperAdapter.createRemoteAnimationTarget());
adaptersOut.add(wallpaperAdapter);
});
@@ -110,6 +113,13 @@ class WallpaperAnimationAdapter implements AnimationAdapter {
}
/**
+ * @return the type of animation.
+ */
+ @AnimationType int getLastAnimationType() {
+ return mLastAnimationType;
+ }
+
+ /**
* @return the wallpaper window
*/
WallpaperWindowToken getToken() {
@@ -124,13 +134,14 @@ class WallpaperAnimationAdapter implements AnimationAdapter {
@Override
public void startAnimation(SurfaceControl animationLeash, SurfaceControl.Transaction t,
- SurfaceAnimator.OnAnimationFinishedCallback finishCallback) {
+ @AnimationType int type, SurfaceAnimator.OnAnimationFinishedCallback finishCallback) {
ProtoLog.d(WM_DEBUG_REMOTE_ANIMATIONS, "startAnimation");
// Restore z-layering until client has a chance to modify it.
t.setLayer(animationLeash, mWallpaperToken.getPrefixOrderIndex());
mCapturedLeash = animationLeash;
mCapturedLeashFinishCallback = finishCallback;
+ mLastAnimationType = type;
}
@Override
diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java
index d828ca6d7a96..9acb660967cb 100644
--- a/services/core/java/com/android/server/wm/WindowContainer.java
+++ b/services/core/java/com/android/server/wm/WindowContainer.java
@@ -31,6 +31,7 @@ import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_W
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_APP_TRANSITIONS_ANIM;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ORIENTATION;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN;
import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS;
import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
@@ -74,6 +75,8 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.ToBooleanFunction;
import com.android.server.protolog.common.ProtoLog;
import com.android.server.wm.SurfaceAnimator.Animatable;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
+import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
import java.io.PrintWriter;
import java.lang.ref.WeakReference;
@@ -91,7 +94,8 @@ import java.util.function.Predicate;
* changes are made to this class.
*/
class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<E>
- implements Comparable<WindowContainer>, Animatable {
+ implements Comparable<WindowContainer>, Animatable,
+ BLASTSyncEngine.TransactionReadyListener {
private static final String TAG = TAG_WITH_CLASS_NAME ? "WindowContainer" : TAG_WM;
@@ -257,6 +261,12 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
*/
RemoteToken mRemoteToken = null;
+ BLASTSyncEngine mBLASTSyncEngine = new BLASTSyncEngine();
+ SurfaceControl.Transaction mBLASTSyncTransaction = new SurfaceControl.Transaction();
+ boolean mUsingBLASTSyncTransaction = false;
+ BLASTSyncEngine.TransactionReadyListener mWaitingListener;
+ int mWaitingSyncId;
+
WindowContainer(WindowManagerService wms) {
mWmService = wms;
mPendingTransaction = wms.mTransactionFactory.get();
@@ -1834,6 +1844,10 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
@Override
public Transaction getPendingTransaction() {
+ if (mUsingBLASTSyncTransaction) {
+ return mBLASTSyncTransaction;
+ }
+
final DisplayContent displayContent = getDisplayContent();
if (displayContent != null && displayContent != this) {
return displayContent.getPendingTransaction();
@@ -1851,19 +1865,24 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
* @param anim The animation to run.
* @param hidden Whether our container is currently hidden. TODO This should use isVisible at
* some point but the meaning is too weird to work for all containers.
+ * @param type The type of animation defined as {@link AnimationType}.
* @param animationFinishedCallback The callback being triggered when the animation finishes.
*/
void startAnimation(Transaction t, AnimationAdapter anim, boolean hidden,
- @Nullable Runnable animationFinishedCallback) {
- if (DEBUG_ANIM) Slog.v(TAG, "Starting animation on " + this + ": " + anim);
+ @AnimationType int type,
+ @Nullable OnAnimationFinishedCallback animationFinishedCallback) {
+ if (DEBUG_ANIM) {
+ Slog.v(TAG, "Starting animation on " + this + ": type=" + type + ", anim=" + anim);
+ }
// TODO: This should use isVisible() but because isVisible has a really weird meaning at
// the moment this doesn't work for all animatable window containers.
- mSurfaceAnimator.startAnimation(t, anim, hidden, animationFinishedCallback);
+ mSurfaceAnimator.startAnimation(t, anim, hidden, type, animationFinishedCallback);
}
- void startAnimation(Transaction t, AnimationAdapter anim, boolean hidden) {
- startAnimation(t, anim, hidden, null /* animationFinishedCallback */);
+ void startAnimation(Transaction t, AnimationAdapter anim, boolean hidden,
+ @AnimationType int type) {
+ startAnimation(t, anim, hidden, type, null /* animationFinishedCallback */);
}
void transferAnimation(WindowContainer from) {
@@ -1916,7 +1935,8 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
* @see #getAnimationAdapter
*/
boolean applyAnimation(WindowManager.LayoutParams lp, int transit, boolean enter,
- boolean isVoiceInteraction, @Nullable Runnable animationFinishedCallback) {
+ boolean isVoiceInteraction,
+ @Nullable OnAnimationFinishedCallback animationFinishedCallback) {
if (mWmService.mDisableTransitionAnimation) {
ProtoLog.v(WM_DEBUG_APP_TRANSITIONS_ANIM,
"applyAnimation: transition animation is disabled or skipped. "
@@ -1937,7 +1957,7 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
AnimationAdapter thumbnailAdapter = adapters.second;
if (adapter != null) {
startAnimation(getPendingTransaction(), adapter, !isVisible(),
- animationFinishedCallback);
+ ANIMATION_TYPE_APP_TRANSITION, animationFinishedCallback);
if (adapter.getShowWallpaper()) {
getDisplayContent().pendingLayoutChanges |= FINISH_LAYOUT_REDO_WALLPAPER;
}
@@ -2128,7 +2148,7 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
/**
* Called when an animation has finished running.
*/
- protected void onAnimationFinished() {
+ protected void onAnimationFinished(@AnimationType int type, AnimationAdapter anim) {
mWmService.onAnimationFinished();
}
@@ -2307,4 +2327,38 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
return sb.toString();
}
}
+
+ @Override
+ public void transactionReady(int mSyncId, SurfaceControl.Transaction mergedTransaction) {
+ mergedTransaction.merge(mBLASTSyncTransaction);
+ mUsingBLASTSyncTransaction = false;
+
+ mWaitingListener.transactionReady(mWaitingSyncId, mergedTransaction);
+
+ mWaitingListener = null;
+ mWaitingSyncId = -1;
+ }
+
+ boolean prepareForSync(BLASTSyncEngine.TransactionReadyListener waitingListener,
+ int waitingId) {
+ boolean willSync = false;
+ if (!isVisible()) {
+ return willSync;
+ }
+ mUsingBLASTSyncTransaction = true;
+
+ int localId = mBLASTSyncEngine.startSyncSet(this);
+ for (int i = 0; i < mChildren.size(); i++) {
+ final WindowContainer child = mChildren.get(i);
+ willSync = mBLASTSyncEngine.addToSyncSet(localId, child) | willSync;
+ }
+
+ // Make sure to set these before we call setReady in case the sync was a no-op
+ mWaitingSyncId = waitingId;
+ mWaitingListener = waitingListener;
+
+ mBLASTSyncEngine.setReady(localId);
+
+ return willSync;
+ }
}
diff --git a/services/core/java/com/android/server/wm/WindowContainerThumbnail.java b/services/core/java/com/android/server/wm/WindowContainerThumbnail.java
index 8948f6fc2ab1..90e3be74c743 100644
--- a/services/core/java/com/android/server/wm/WindowContainerThumbnail.java
+++ b/services/core/java/com/android/server/wm/WindowContainerThumbnail.java
@@ -20,6 +20,7 @@ import static android.view.SurfaceControl.METADATA_OWNER_UID;
import static android.view.SurfaceControl.METADATA_WINDOW_TYPE;
import static com.android.server.wm.ProtoLogGroup.WM_SHOW_TRANSACTIONS;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_RECENTS;
import static com.android.server.wm.WindowContainerThumbnailProto.HEIGHT;
import static com.android.server.wm.WindowContainerThumbnailProto.SURFACE_ANIMATOR;
import static com.android.server.wm.WindowContainerThumbnailProto.WIDTH;
@@ -40,6 +41,7 @@ import android.view.animation.Animation;
import com.android.server.protolog.common.ProtoLog;
import com.android.server.wm.SurfaceAnimator.Animatable;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
import java.util.function.Supplier;
@@ -85,7 +87,7 @@ class WindowContainerThumbnail implements Animatable {
// We can't use a delegating constructor since we need to
// reference this::onAnimationFinished
mSurfaceAnimator =
- new SurfaceAnimator(this, null /* animationFinishedCallback */,
+ new SurfaceAnimator(this, this::onAnimationFinished /* animationFinishedCallback */,
container.mWmService);
}
mWidth = thumbnailHeader.getWidth();
@@ -130,14 +132,19 @@ class WindowContainerThumbnail implements Animatable {
new WindowAnimationSpec(anim, position,
mWindowContainer.getDisplayContent().mAppTransition.canSkipFirstFrame(),
mWindowContainer.getDisplayContent().getWindowCornerRadius()),
- mWindowContainer.mWmService.mSurfaceAnimationRunner), false /* hidden */);
+ mWindowContainer.mWmService.mSurfaceAnimationRunner), false /* hidden */,
+ ANIMATION_TYPE_RECENTS, null /* animationFinishedCallback */);
}
/**
* Start animation with existing adapter.
*/
void startAnimation(Transaction t, AnimationAdapter anim, boolean hidden) {
- mSurfaceAnimator.startAnimation(t, anim, hidden);
+ mSurfaceAnimator.startAnimation(t, anim, hidden, ANIMATION_TYPE_RECENTS,
+ null /* animationFinishedCallback */);
+ }
+
+ private void onAnimationFinished(@AnimationType int type, AnimationAdapter anim) {
}
void setShowing(Transaction pendingTransaction, boolean show) {
diff --git a/services/core/java/com/android/server/wm/WindowManagerInternal.java b/services/core/java/com/android/server/wm/WindowManagerInternal.java
index 6e243f0b937a..59eee9cc9404 100644
--- a/services/core/java/com/android/server/wm/WindowManagerInternal.java
+++ b/services/core/java/com/android/server/wm/WindowManagerInternal.java
@@ -562,4 +562,14 @@ public abstract class WindowManagerInternal {
*/
public abstract void setAccessibilityIdToSurfaceMetadata(
IBinder windowToken, int accessibilityWindowId);
+
+ /**
+ * Transfers input focus from a given input token to that of the IME window.
+ *
+ * @param sourceInputToken The source token.
+ * @param displayId The display hosting the IME window.
+ * @return Whether transfer was successful.
+ */
+ public abstract boolean transferTouchFocusToImeWindow(@NonNull IBinder sourceInputToken,
+ int displayId);
}
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 2c6c756dda3b..633098566b1b 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -397,7 +397,7 @@ public class WindowManagerService extends IWindowManager.Stub
* @see #HIERARCHICAL_ANIMATIONS_PROPERTY
*/
static boolean sHierarchicalAnimations =
- SystemProperties.getBoolean(HIERARCHICAL_ANIMATIONS_PROPERTY, false);
+ SystemProperties.getBoolean(HIERARCHICAL_ANIMATIONS_PROPERTY, true);
// Enums for animation scale update types.
@Retention(RetentionPolicy.SOURCE)
@@ -938,7 +938,7 @@ public class WindowManagerService extends IWindowManager.Stub
* Whether the UI is currently running in touch mode (not showing
* navigational focus because the user is directly pressing the screen).
*/
- boolean mInTouchMode;
+ private boolean mInTouchMode;
private ViewServer mViewServer;
final ArrayList<WindowChangeListener> mWindowChangeListeners = new ArrayList<>();
@@ -2505,7 +2505,7 @@ public class WindowManagerService extends IWindowManager.Stub
WindowState win = windowForClientLocked(session, client, false);
ProtoLog.d(WM_DEBUG_ADD_REMOVE, "finishDrawingWindow: %s mDrawState=%s",
win, (win != null ? win.mWinAnimator.drawStateToString() : "null"));
- if (win != null && win.mWinAnimator.finishDrawingLocked(postDrawTransaction)) {
+ if (win != null && win.finishDrawing(postDrawTransaction)) {
if ((win.mAttrs.flags & FLAG_SHOW_WALLPAPER) != 0) {
win.getDisplayContent().pendingLayoutChanges |=
WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
@@ -2536,11 +2536,12 @@ public class WindowManagerService extends IWindowManager.Stub
@Override
public void addWindowToken(IBinder binder, int type, int displayId) {
- addWindowContextToken(binder, type, displayId, null);
+ addWindowTokenWithOptions(binder, type, displayId, null /* options */,
+ null /* packageName */);
}
- @Override
- public int addWindowContextToken(IBinder binder, int type, int displayId, String packageName) {
+ public int addWindowTokenWithOptions(IBinder binder, int type, int displayId, Bundle options,
+ String packageName) {
final boolean callerCanManageAppTokens =
checkCallingPermission(MANAGE_APP_TOKENS, "addWindowToken()");
if (!callerCanManageAppTokens) {
@@ -3460,6 +3461,12 @@ public class WindowManagerService extends IWindowManager.Stub
mInputManager.setInTouchMode(mode);
}
+ boolean getInTouchMode() {
+ synchronized (mGlobalLock) {
+ return mInTouchMode;
+ }
+ }
+
public void showEmulatorDisplayOverlayIfNeeded() {
if (mContext.getResources().getBoolean(
com.android.internal.R.bool.config_windowEnableCircularEmulatorDisplayOverlay)
@@ -5680,6 +5687,12 @@ public class WindowManagerService extends IWindowManager.Stub
@Override
public void setForceShowSystemBars(boolean show) {
+ boolean isAutomotive = mContext.getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_AUTOMOTIVE);
+ if (!isAutomotive) {
+ throw new UnsupportedOperationException("Force showing system bars is only supported"
+ + "for Automotive use cases.");
+ }
if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.STATUS_BAR)
!= PackageManager.PERMISSION_GRANTED) {
throw new SecurityException("Caller does not hold permission "
@@ -5905,7 +5918,7 @@ public class WindowManagerService extends IWindowManager.Stub
*/
void dumpDebugLocked(ProtoOutputStream proto, @WindowTraceLogLevel int logLevel) {
mPolicy.dumpDebug(proto, POLICY);
- mRoot.dumpDebugInner(proto, ROOT_WINDOW_CONTAINER, logLevel);
+ mRoot.dumpDebug(proto, ROOT_WINDOW_CONTAINER, logLevel);
final DisplayContent topFocusedDisplayContent = mRoot.getTopFocusedDisplayContent();
if (topFocusedDisplayContent.mCurrentFocus != null) {
topFocusedDisplayContent.mCurrentFocus.writeIdentifierToProto(proto, FOCUSED_WINDOW);
@@ -6991,8 +7004,15 @@ public class WindowManagerService extends IWindowManager.Stub
throw new SecurityException("Requires INTERNAL_SYSTEM_WINDOW permission");
}
boolean show;
+ final DisplayContent dc = mRoot.getDisplayContent(displayId);
+ if (dc == null) {
+ ProtoLog.w(WM_ERROR,
+ "Attempted to get IME flag of a display that does not exist: %d",
+ displayId);
+ return false;
+ }
synchronized (mGlobalLock) {
- show = shouldShowImeSystemWindowUncheckedLocked(displayId);
+ show = dc.canShowIme();
}
return show;
@@ -7291,6 +7311,10 @@ public class WindowManagerService extends IWindowManager.Stub
Slog.w(TAG_WM, "updateInputMethodTargetWindow: imeToken=" + imeToken
+ " imeTargetWindowToken=" + imeTargetWindowToken);
}
+ final WindowState imeTarget = mWindowMap.get(imeTargetWindowToken);
+ if (imeTarget != null) {
+ imeTarget.getDisplayContent().updateImeControlTarget(imeTarget);
+ }
}
@Override
@@ -7405,15 +7429,13 @@ public class WindowManagerService extends IWindowManager.Stub
@Override
public void showImePostLayout(IBinder imeTargetWindowToken) {
synchronized (mGlobalLock) {
- final WindowState imeTarget = mWindowMap.get(imeTargetWindowToken);
+ WindowState imeTarget = mWindowMap.get(imeTargetWindowToken);
if (imeTarget == null) {
return;
}
- final int displayId = imeTarget.getDisplayId();
- if (!shouldShowImeSystemWindowUncheckedLocked(displayId)) {
- return;
- }
+ imeTarget = imeTarget.getImeControlTarget();
+ final int displayId = imeTarget.getDisplayId();
mRoot.getDisplayContent(displayId).getInsetsStateController().getImeSourceProvider()
.scheduleShowImePostLayout(imeTarget);
}
@@ -7423,12 +7445,16 @@ public class WindowManagerService extends IWindowManager.Stub
public void hideIme(int displayId) {
synchronized (mGlobalLock) {
final DisplayContent dc = mRoot.getDisplayContent(displayId);
- if (dc != null && dc.mInputMethodTarget != null) {
+ if (dc != null) {
+ WindowState imeTarget = dc.getImeControlTarget();
+ if (imeTarget == null) {
+ return;
+ }
// If there was a pending IME show(), reset it as IME has been
// requested to be hidden.
- dc.getInsetsStateController().getImeSourceProvider().abortShowImePostLayout();
- dc.mInputMethodControlTarget.hideInsets(WindowInsets.Type.ime(),
- true /* fromIme */);
+ imeTarget.getDisplayContent().getInsetsStateController().getImeSourceProvider()
+ .abortShowImePostLayout();
+ imeTarget.hideInsets(WindowInsets.Type.ime(), true /* fromIme */);
}
}
}
@@ -7538,6 +7564,29 @@ public class WindowManagerService extends IWindowManager.Stub
}
}
}
+
+ @Override
+ public boolean transferTouchFocusToImeWindow(@NonNull IBinder sourceInputToken,
+ int displayId) {
+ final IBinder destinationInputToken;
+
+ synchronized (mGlobalLock) {
+ final DisplayContent displayContent = mRoot.getDisplayContent(displayId);
+ if (displayContent == null) {
+ return false;
+ }
+ final WindowState imeWindow = displayContent.mInputMethodWindow;
+ if (imeWindow == null) {
+ return false;
+ }
+ if (imeWindow.mInputChannel == null) {
+ return false;
+ }
+ destinationInputToken = imeWindow.mInputChannel.getToken();
+ }
+
+ return mInputManager.transferTouchFocus(sourceInputToken, destinationInputToken);
+ }
}
void registerAppFreezeListener(AppFreezeListener listener) {
@@ -7794,40 +7843,52 @@ public class WindowManagerService extends IWindowManager.Stub
* views.
*/
void grantInputChannel(int callingUid, int callingPid, int displayId, SurfaceControl surface,
- IWindow window, IBinder hostInputToken, InputChannel outInputChannel) {
- InputApplicationHandle applicationHandle = null;
+ IWindow window, IBinder hostInputToken, int flags, InputChannel outInputChannel) {
+ final InputApplicationHandle applicationHandle;
final String name;
final InputChannel[] inputChannels;
final InputChannel clientChannel;
final InputChannel serverChannel;
synchronized (mGlobalLock) {
- final WindowState hostWindow = mInputToWindowMap.get(hostInputToken);
- final String hostWindowName = (hostWindow != null)
- ? hostWindow.getWindowTag().toString() : "Internal";
- name = "EmbeddedWindow{ u" + UserHandle.getUserId(callingUid)
- + " " + hostWindowName + "}";
+ EmbeddedWindowController.EmbeddedWindow win =
+ new EmbeddedWindowController.EmbeddedWindow(window,
+ mInputToWindowMap.get(hostInputToken), callingUid, callingPid);
+ name = win.getName();
inputChannels = InputChannel.openInputChannelPair(name);
serverChannel = inputChannels[0];
clientChannel = inputChannels[1];
mInputManager.registerInputChannel(serverChannel);
- mEmbeddedWindowController.add(serverChannel.getToken(), window, hostWindow, callingUid,
- callingPid);
-
- if (hostWindow != null
- && hostWindow.mInputWindowHandle.inputApplicationHandle != null) {
- applicationHandle = new InputApplicationHandle(
- hostWindow.mInputWindowHandle.inputApplicationHandle);
+ mEmbeddedWindowController.add(clientChannel.getToken(), win);
+ if (serverChannel.getToken() != clientChannel.getToken()) {
+ throw new IllegalStateException("Client and Server channel are expected to"
+ + "be the same");
}
+
+ applicationHandle = win.getApplicationHandle();
}
+ updateInputChannel(clientChannel.getToken(), callingUid, callingPid, displayId, surface,
+ name, applicationHandle, flags);
+
clientChannel.transferTo(outInputChannel);
clientChannel.dispose();
+ // Prevent the java finalizer from breaking the input channel. But we won't
+ // do any further management so we just release the java ref and let the
+ // InputDispatcher hold the last ref.
+ serverChannel.release();
+ }
+ private void updateInputChannel(IBinder channelToken, int callingUid, int callingPid,
+ int displayId, SurfaceControl surface, String name,
+ InputApplicationHandle applicationHandle, int flags) {
InputWindowHandle h = new InputWindowHandle(applicationHandle, displayId);
- h.token = serverChannel.getToken();
+ h.token = channelToken;
h.name = name;
- h.layoutParamsFlags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
+
+ final int sanitizedFlags = flags & (LayoutParams.FLAG_NOT_TOUCHABLE
+ | LayoutParams.FLAG_SLIPPERY);
+ h.layoutParamsFlags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | sanitizedFlags;
h.layoutParamsType = 0;
h.dispatchingTimeoutNanos = -1;
h.canReceiveKeys = false;
@@ -7842,15 +7903,34 @@ public class WindowManagerService extends IWindowManager.Stub
h.replaceTouchableRegionWithCrop(null);
- SurfaceSession s = new SurfaceSession();
SurfaceControl.Transaction t = mTransactionFactory.get();
t.setInputWindowInfo(surface, h);
t.apply();
+ t.close();
+ }
- // Prevent the java finalizer from breaking the input channel. But we won't
- // do any further management so we just release the java ref and let the
- // InputDispatcher hold the last ref.
- serverChannel.release();
+ /**
+ * Updates the flags on an existing surface's input channel. This assumes the surface provided
+ * is the one associated with the provided input-channel. If this isn't the case, behavior
+ * is undefined.
+ */
+ void updateInputChannel(IBinder channelToken, int displayId, SurfaceControl surface,
+ int flags) {
+ final InputApplicationHandle applicationHandle;
+ final String name;
+ final EmbeddedWindowController.EmbeddedWindow win;
+ synchronized (mGlobalLock) {
+ win = mEmbeddedWindowController.get(channelToken);
+ if (win == null) {
+ Slog.e(TAG, "Couldn't find window for provided channelToken.");
+ return;
+ }
+ name = win.getName();
+ applicationHandle = win.getApplicationHandle();
+ }
+
+ updateInputChannel(channelToken, win.mOwnerUid, win.mOwnerPid, displayId, surface, name,
+ applicationHandle, flags);
}
/** Return whether layer tracing is enabled */
@@ -7936,21 +8016,6 @@ public class WindowManagerService extends IWindowManager.Stub
return true;
}
- private boolean shouldShowImeSystemWindowUncheckedLocked(final int displayId) {
- final DisplayContent displayContent = mRoot.getDisplayContent(displayId);
- if (displayContent == null) {
- ProtoLog.w(WM_ERROR,
- "Attempted to get IME flag of a display that does not exist: %d",
- displayId);
- return false;
- }
- if (displayContent.isUntrustedVirtualDisplay()) {
- return false;
- }
- return mDisplayWindowSettings.shouldShowImeLocked(displayContent)
- || mForceDesktopModeOnExternalDisplays;
- }
-
@Override
public void getWindowInsets(WindowManager.LayoutParams attrs,
int displayId, Rect outContentInsets, Rect outStableInsets,
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index aab6b510ef1a..b336f8d1a1ac 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -115,6 +115,7 @@ import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ORIENTATION;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_RESIZE;
import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_STARTING_WINDOW;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_WINDOW_ANIMATION;
import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS;
import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
import static com.android.server.wm.WindowManagerDebugConfig.DEBUG;
@@ -231,6 +232,7 @@ import com.android.internal.util.ToBooleanFunction;
import com.android.server.policy.WindowManagerPolicy;
import com.android.server.protolog.common.ProtoLog;
import com.android.server.wm.LocalAnimationAdapter.AnimationSpec;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
import com.android.server.wm.utils.WmDisplayCutout;
import java.io.PrintWriter;
@@ -415,6 +417,9 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
private final WindowFrames mWindowFrames = new WindowFrames();
+ /** The frames used to compute a temporal layout appearance. */
+ private WindowFrames mSimulatedWindowFrames;
+
/**
* Usually empty. Set to the task's tempInsetFrame. See
*{@link android.app.IActivityTaskManager#resizeDockedStack}.
@@ -970,6 +975,16 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
return super.getDisplayedBounds();
}
+ void computeFrame(DisplayFrames displayFrames) {
+ getLayoutingWindowFrames().setDisplayCutout(displayFrames.mDisplayCutout);
+ computeFrameLw();
+ // Update the source frame to provide insets to other windows during layout. If the
+ // simulated frames exist, then this is not computing a stable result so just skip.
+ if (mControllableInsetProvider != null && mSimulatedWindowFrames == null) {
+ mControllableInsetProvider.updateSourceFrame();
+ }
+ }
+
@Override
public void computeFrameLw() {
if (mWillReplaceWindow && (mAnimatingExit || !mReplacingRemoveRequested)) {
@@ -985,6 +1000,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
final boolean isFullscreenAndFillsDisplay = !inMultiWindowMode() && matchesDisplayBounds();
final boolean windowsAreFloating = task != null && task.isFloating();
final DisplayContent dc = getDisplayContent();
+ final WindowFrames windowFrames = getLayoutingWindowFrames();
mInsetFrame.set(getBounds());
@@ -1006,43 +1022,43 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
imeWin != null && imeWin.isVisibleNow() && isInputMethodAdjustTarget;
if (isFullscreenAndFillsDisplay || layoutInParentFrame()) {
// We use the parent frame as the containing frame for fullscreen and child windows
- mWindowFrames.mContainingFrame.set(mWindowFrames.mParentFrame);
- layoutDisplayFrame = mWindowFrames.mDisplayFrame;
- layoutContainingFrame = mWindowFrames.mParentFrame;
+ windowFrames.mContainingFrame.set(windowFrames.mParentFrame);
+ layoutDisplayFrame = windowFrames.mDisplayFrame;
+ layoutContainingFrame = windowFrames.mParentFrame;
layoutXDiff = 0;
layoutYDiff = 0;
} else {
- mWindowFrames.mContainingFrame.set(getDisplayedBounds());
+ windowFrames.mContainingFrame.set(getDisplayedBounds());
if (mActivityRecord != null && !mActivityRecord.mFrozenBounds.isEmpty()) {
// If the bounds are frozen, we still want to translate the window freely and only
// freeze the size.
Rect frozen = mActivityRecord.mFrozenBounds.peek();
- mWindowFrames.mContainingFrame.right =
- mWindowFrames.mContainingFrame.left + frozen.width();
- mWindowFrames.mContainingFrame.bottom =
- mWindowFrames.mContainingFrame.top + frozen.height();
+ windowFrames.mContainingFrame.right =
+ windowFrames.mContainingFrame.left + frozen.width();
+ windowFrames.mContainingFrame.bottom =
+ windowFrames.mContainingFrame.top + frozen.height();
}
// IME is up and obscuring this window. Adjust the window position so it is visible.
if (isImeTarget) {
if (inFreeformWindowingMode()) {
// Push the freeform window up to make room for the IME. However, don't push
// it up past the top of the screen.
- final int bottomOverlap = mWindowFrames.mContainingFrame.bottom
- - mWindowFrames.mVisibleFrame.bottom;
+ final int bottomOverlap = windowFrames.mContainingFrame.bottom
+ - windowFrames.mVisibleFrame.bottom;
if (bottomOverlap > 0) {
- final int distanceToTop = Math.max(mWindowFrames.mContainingFrame.top
- - mWindowFrames.mContentFrame.top, 0);
+ final int distanceToTop = Math.max(windowFrames.mContainingFrame.top
+ - windowFrames.mContentFrame.top, 0);
int offs = Math.min(bottomOverlap, distanceToTop);
- mWindowFrames.mContainingFrame.offset(0, -offs);
+ windowFrames.mContainingFrame.offset(0, -offs);
mInsetFrame.offset(0, -offs);
}
- } else if (!inPinnedWindowingMode() && mWindowFrames.mContainingFrame.bottom
- > mWindowFrames.mParentFrame.bottom) {
+ } else if (!inPinnedWindowingMode() && windowFrames.mContainingFrame.bottom
+ > windowFrames.mParentFrame.bottom) {
// But in docked we want to behave like fullscreen and behave as if the task
// were given smaller bounds for the purposes of layout. Skip adjustments for
// the pinned stack, they are handled separately in the PinnedStackController.
- mWindowFrames.mContainingFrame.bottom = mWindowFrames.mParentFrame.bottom;
+ windowFrames.mContainingFrame.bottom = windowFrames.mParentFrame.bottom;
}
}
@@ -1050,8 +1066,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
// In floating modes (e.g. freeform, pinned) we have only to set the rectangle
// if it wasn't set already. No need to intersect it with the (visible)
// "content frame" since it is allowed to be outside the visible desktop.
- if (mWindowFrames.mContainingFrame.isEmpty()) {
- mWindowFrames.mContainingFrame.set(mWindowFrames.mContentFrame);
+ if (windowFrames.mContainingFrame.isEmpty()) {
+ windowFrames.mContainingFrame.set(windowFrames.mContentFrame);
}
}
@@ -1061,115 +1077,115 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
// PIP edge case: When going from pinned to fullscreen, we apply a
// tempInsetFrame for the full task - but we're still at the start of the animation.
// To prevent a jump if there's a letterbox, restrict to the parent frame.
- mInsetFrame.intersectUnchecked(mWindowFrames.mParentFrame);
- mWindowFrames.mContainingFrame.intersectUnchecked(mWindowFrames.mParentFrame);
+ mInsetFrame.intersectUnchecked(windowFrames.mParentFrame);
+ windowFrames.mContainingFrame.intersectUnchecked(windowFrames.mParentFrame);
}
- layoutDisplayFrame = new Rect(mWindowFrames.mDisplayFrame);
- mWindowFrames.mDisplayFrame.set(mWindowFrames.mContainingFrame);
- layoutXDiff = mInsetFrame.left - mWindowFrames.mContainingFrame.left;
- layoutYDiff = mInsetFrame.top - mWindowFrames.mContainingFrame.top;
+ layoutDisplayFrame = new Rect(windowFrames.mDisplayFrame);
+ windowFrames.mDisplayFrame.set(windowFrames.mContainingFrame);
+ layoutXDiff = mInsetFrame.left - windowFrames.mContainingFrame.left;
+ layoutYDiff = mInsetFrame.top - windowFrames.mContainingFrame.top;
layoutContainingFrame = mInsetFrame;
mTmpRect.set(0, 0, dc.getDisplayInfo().logicalWidth, dc.getDisplayInfo().logicalHeight);
- subtractInsets(mWindowFrames.mDisplayFrame, layoutContainingFrame, layoutDisplayFrame,
+ subtractInsets(windowFrames.mDisplayFrame, layoutContainingFrame, layoutDisplayFrame,
mTmpRect);
if (!layoutInParentFrame()) {
- subtractInsets(mWindowFrames.mContainingFrame, layoutContainingFrame,
- mWindowFrames.mParentFrame, mTmpRect);
- subtractInsets(mInsetFrame, layoutContainingFrame, mWindowFrames.mParentFrame,
+ subtractInsets(windowFrames.mContainingFrame, layoutContainingFrame,
+ windowFrames.mParentFrame, mTmpRect);
+ subtractInsets(mInsetFrame, layoutContainingFrame, windowFrames.mParentFrame,
mTmpRect);
}
layoutDisplayFrame.intersect(layoutContainingFrame);
}
- final int pw = mWindowFrames.mContainingFrame.width();
- final int ph = mWindowFrames.mContainingFrame.height();
+ final int pw = windowFrames.mContainingFrame.width();
+ final int ph = windowFrames.mContainingFrame.height();
if (mRequestedWidth != mLastRequestedWidth || mRequestedHeight != mLastRequestedHeight) {
mLastRequestedWidth = mRequestedWidth;
mLastRequestedHeight = mRequestedHeight;
- mWindowFrames.setContentChanged(true);
+ windowFrames.setContentChanged(true);
}
- final int fw = mWindowFrames.mFrame.width();
- final int fh = mWindowFrames.mFrame.height();
+ final int fw = windowFrames.mFrame.width();
+ final int fh = windowFrames.mFrame.height();
- applyGravityAndUpdateFrame(layoutContainingFrame, layoutDisplayFrame);
+ applyGravityAndUpdateFrame(windowFrames, layoutContainingFrame, layoutDisplayFrame);
// Make sure the content and visible frames are inside of the
// final window frame.
- if (windowsAreFloating && !mWindowFrames.mFrame.isEmpty()) {
- final int visBottom = mWindowFrames.mVisibleFrame.bottom;
- final int contentBottom = mWindowFrames.mContentFrame.bottom;
- mWindowFrames.mContentFrame.set(mWindowFrames.mFrame);
- mWindowFrames.mVisibleFrame.set(mWindowFrames.mContentFrame);
- mWindowFrames.mStableFrame.set(mWindowFrames.mContentFrame);
+ if (windowsAreFloating && !windowFrames.mFrame.isEmpty()) {
+ final int visBottom = windowFrames.mVisibleFrame.bottom;
+ final int contentBottom = windowFrames.mContentFrame.bottom;
+ windowFrames.mContentFrame.set(windowFrames.mFrame);
+ windowFrames.mVisibleFrame.set(windowFrames.mContentFrame);
+ windowFrames.mStableFrame.set(windowFrames.mContentFrame);
if (isImeTarget && inFreeformWindowingMode()) {
// After displacing a freeform window to make room for the ime, any part of
// the window still covered by IME should be inset.
- if (contentBottom + layoutYDiff < mWindowFrames.mContentFrame.bottom) {
- mWindowFrames.mContentFrame.bottom = contentBottom + layoutYDiff;
+ if (contentBottom + layoutYDiff < windowFrames.mContentFrame.bottom) {
+ windowFrames.mContentFrame.bottom = contentBottom + layoutYDiff;
}
- if (visBottom + layoutYDiff < mWindowFrames.mVisibleFrame.bottom) {
- mWindowFrames.mVisibleFrame.bottom = visBottom + layoutYDiff;
+ if (visBottom + layoutYDiff < windowFrames.mVisibleFrame.bottom) {
+ windowFrames.mVisibleFrame.bottom = visBottom + layoutYDiff;
}
}
} else if (mAttrs.type == TYPE_DOCK_DIVIDER) {
- dc.getDockedDividerController().positionDockedStackedDivider(mWindowFrames.mFrame);
- mWindowFrames.mContentFrame.set(mWindowFrames.mFrame);
- if (!mWindowFrames.mFrame.equals(mWindowFrames.mLastFrame)) {
+ dc.getDockedDividerController().positionDockedStackedDivider(windowFrames.mFrame);
+ windowFrames.mContentFrame.set(windowFrames.mFrame);
+ if (!windowFrames.mFrame.equals(windowFrames.mLastFrame)) {
mMovedByResize = true;
}
} else {
- mWindowFrames.mContentFrame.set(
- Math.max(mWindowFrames.mContentFrame.left, mWindowFrames.mFrame.left),
- Math.max(mWindowFrames.mContentFrame.top, mWindowFrames.mFrame.top),
- Math.min(mWindowFrames.mContentFrame.right, mWindowFrames.mFrame.right),
- Math.min(mWindowFrames.mContentFrame.bottom, mWindowFrames.mFrame.bottom));
+ windowFrames.mContentFrame.set(
+ Math.max(windowFrames.mContentFrame.left, windowFrames.mFrame.left),
+ Math.max(windowFrames.mContentFrame.top, windowFrames.mFrame.top),
+ Math.min(windowFrames.mContentFrame.right, windowFrames.mFrame.right),
+ Math.min(windowFrames.mContentFrame.bottom, windowFrames.mFrame.bottom));
- mWindowFrames.mVisibleFrame.set(
- Math.max(mWindowFrames.mVisibleFrame.left, mWindowFrames.mFrame.left),
- Math.max(mWindowFrames.mVisibleFrame.top, mWindowFrames.mFrame.top),
- Math.min(mWindowFrames.mVisibleFrame.right, mWindowFrames.mFrame.right),
- Math.min(mWindowFrames.mVisibleFrame.bottom, mWindowFrames.mFrame.bottom));
+ windowFrames.mVisibleFrame.set(
+ Math.max(windowFrames.mVisibleFrame.left, windowFrames.mFrame.left),
+ Math.max(windowFrames.mVisibleFrame.top, windowFrames.mFrame.top),
+ Math.min(windowFrames.mVisibleFrame.right, windowFrames.mFrame.right),
+ Math.min(windowFrames.mVisibleFrame.bottom, windowFrames.mFrame.bottom));
- mWindowFrames.mStableFrame.set(
- Math.max(mWindowFrames.mStableFrame.left, mWindowFrames.mFrame.left),
- Math.max(mWindowFrames.mStableFrame.top, mWindowFrames.mFrame.top),
- Math.min(mWindowFrames.mStableFrame.right, mWindowFrames.mFrame.right),
- Math.min(mWindowFrames.mStableFrame.bottom, mWindowFrames.mFrame.bottom));
+ windowFrames.mStableFrame.set(
+ Math.max(windowFrames.mStableFrame.left, windowFrames.mFrame.left),
+ Math.max(windowFrames.mStableFrame.top, windowFrames.mFrame.top),
+ Math.min(windowFrames.mStableFrame.right, windowFrames.mFrame.right),
+ Math.min(windowFrames.mStableFrame.bottom, windowFrames.mFrame.bottom));
}
if (mAttrs.type == TYPE_DOCK_DIVIDER) {
- final WmDisplayCutout c = mWindowFrames.mDisplayCutout.calculateRelativeTo(
- mWindowFrames.mDisplayFrame);
- mWindowFrames.calculateDockedDividerInsets(c.getDisplayCutout().getSafeInsets());
+ final WmDisplayCutout c = windowFrames.mDisplayCutout.calculateRelativeTo(
+ windowFrames.mDisplayFrame);
+ windowFrames.calculateDockedDividerInsets(c.getDisplayCutout().getSafeInsets());
} else {
getDisplayContent().getBounds(mTmpRect);
- mWindowFrames.calculateInsets(
+ windowFrames.calculateInsets(
windowsAreFloating, isFullscreenAndFillsDisplay, mTmpRect);
}
- mWindowFrames.setDisplayCutout(
- mWindowFrames.mDisplayCutout.calculateRelativeTo(mWindowFrames.mFrame));
+ windowFrames.setDisplayCutout(
+ windowFrames.mDisplayCutout.calculateRelativeTo(windowFrames.mFrame));
// Offset the actual frame by the amount layout frame is off.
- mWindowFrames.offsetFrames(-layoutXDiff, -layoutYDiff);
+ windowFrames.offsetFrames(-layoutXDiff, -layoutYDiff);
- mWindowFrames.mCompatFrame.set(mWindowFrames.mFrame);
+ windowFrames.mCompatFrame.set(windowFrames.mFrame);
if (inSizeCompatMode()) {
// If there is a size compatibility scale being applied to the
// window, we need to apply this to its insets so that they are
// reported to the app in its coordinate space.
- mWindowFrames.scaleInsets(mInvGlobalScale);
+ windowFrames.scaleInsets(mInvGlobalScale);
// Also the scaled frame that we report to the app needs to be
// adjusted to be in its coordinate space.
- mWindowFrames.mCompatFrame.scale(mInvGlobalScale);
+ windowFrames.mCompatFrame.scale(mInvGlobalScale);
}
- if (mIsWallpaper && (fw != mWindowFrames.mFrame.width()
- || fh != mWindowFrames.mFrame.height())) {
+ if (mIsWallpaper && (fw != windowFrames.mFrame.width()
+ || fh != windowFrames.mFrame.height())) {
final DisplayContent displayContent = getDisplayContent();
if (displayContent != null) {
final DisplayInfo displayInfo = displayContent.getDisplayInfo();
@@ -1179,7 +1195,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
}
// Calculate relative frame
- mWindowFrames.mRelFrame.set(mWindowFrames.mFrame);
+ windowFrames.mRelFrame.set(windowFrames.mFrame);
WindowContainer parent = getParent();
int parentLeft = 0;
int parentTop = 0;
@@ -1191,15 +1207,15 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
parentLeft = parentBounds.left;
parentTop = parentBounds.top;
}
- mWindowFrames.mRelFrame.offsetTo(mWindowFrames.mFrame.left - parentLeft,
- mWindowFrames.mFrame.top - parentTop);
+ windowFrames.mRelFrame.offsetTo(windowFrames.mFrame.left - parentLeft,
+ windowFrames.mFrame.top - parentTop);
if (DEBUG_LAYOUT || DEBUG) {
Slog.v(TAG, "Resolving (mRequestedWidth="
+ mRequestedWidth + ", mRequestedheight="
+ mRequestedHeight + ") to" + " (pw=" + pw + ", ph=" + ph
- + "): frame=" + mWindowFrames.mFrame.toShortString()
- + " " + mWindowFrames.getInsetsInfo()
+ + "): frame=" + windowFrames.mFrame.toShortString()
+ + " " + windowFrames.getInsetsInfo()
+ " " + mAttrs.getTitle());
}
}
@@ -3518,6 +3534,11 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
}
@Override
+ public WindowState getWindow() {
+ return this;
+ }
+
+ @Override
public void showInsets(@InsetsType int types, boolean fromIme) {
try {
mClient.showInsets(types, fromIme);
@@ -3979,7 +4000,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
}
}
- private void applyGravityAndUpdateFrame(Rect containingFrame, Rect displayFrame) {
+ private void applyGravityAndUpdateFrame(WindowFrames windowFrames, Rect containingFrame,
+ Rect displayFrame) {
final int pw = containingFrame.width();
final int ph = containingFrame.height();
final Task task = getTask();
@@ -4049,19 +4071,19 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
// Set mFrame
Gravity.apply(mAttrs.gravity, w, h, containingFrame,
(int) (x + mAttrs.horizontalMargin * pw),
- (int) (y + mAttrs.verticalMargin * ph), mWindowFrames.mFrame);
+ (int) (y + mAttrs.verticalMargin * ph), windowFrames.mFrame);
// Now make sure the window fits in the overall display frame.
if (fitToDisplay) {
- Gravity.applyDisplay(mAttrs.gravity, displayFrame, mWindowFrames.mFrame);
+ Gravity.applyDisplay(mAttrs.gravity, displayFrame, windowFrames.mFrame);
}
// We need to make sure we update the CompatFrame as it is used for
// cropping decisions, etc, on systems where we lack a decor layer.
- mWindowFrames.mCompatFrame.set(mWindowFrames.mFrame);
+ windowFrames.mCompatFrame.set(windowFrames.mFrame);
if (inSizeCompatMode) {
// See comparable block in computeFrameLw.
- mWindowFrames.mCompatFrame.scale(mInvGlobalScale);
+ windowFrames.mCompatFrame.scale(mInvGlobalScale);
}
}
@@ -5022,12 +5044,13 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
}
private void startAnimation(Transaction t, AnimationAdapter adapter) {
- startAnimation(t, adapter, mWinAnimator.mLastHidden, null /* animationFinishedCallback */);
+ startAnimation(t, adapter, mWinAnimator.mLastHidden, ANIMATION_TYPE_WINDOW_ANIMATION,
+ null /* animationFinishedCallback */);
}
@Override
- protected void onAnimationFinished() {
- super.onAnimationFinished();
+ protected void onAnimationFinished(@AnimationType int type, AnimationAdapter anim) {
+ super.onAnimationFinished(type, anim);
mWinAnimator.onAnimationFinished();
}
@@ -5334,6 +5357,24 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
return false;
}
+ /**
+ * Get IME target that should host IME when this window's display has a parent.
+ * Note: IME is never hosted by a display that has a parent.
+ * When window calling
+ * {@link android.view.inputmethod.InputMethodManager#showSoftInput(View, int)} is unknown,
+ * use {@link DisplayContent#getImeControlTarget()} instead.
+ *
+ * @return {@link WindowState} of host that controls the IME.
+ * When window is doesn't have a parent, it is returned as-is.
+ */
+ WindowState getImeControlTarget() {
+ final DisplayContent dc = getDisplayContent();
+ final WindowState parentWindow = dc.getParentWindow();
+
+ // If target's display has a parent, IME is displayed in the parent display.
+ return dc.getImeHostOrFallback(parentWindow != null ? parentWindow : this);
+ }
+
@Override
void assignLayer(Transaction t, int layer) {
// See comment in assignRelativeLayerForImeTargetChild
@@ -5507,6 +5548,22 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
return mWindowFrames;
}
+ /**
+ * If the transient frame is set, the computed result won't be used in real layout. So this
+ * frames must be cleared when the simulated computation is done.
+ */
+ void setSimulatedWindowFrames(WindowFrames windowFrames) {
+ mSimulatedWindowFrames = windowFrames;
+ }
+
+ /**
+ * Use this method only when the simulated frames may be set, so it is clearer that the calling
+ * path may be used to simulate layout.
+ */
+ WindowFrames getLayoutingWindowFrames() {
+ return mSimulatedWindowFrames != null ? mSimulatedWindowFrames : mWindowFrames;
+ }
+
void resetContentChanged() {
mWindowFrames.setContentChanged(false);
}
@@ -5632,4 +5689,30 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
SurfaceControl getDeferTransactionBarrier() {
return mWinAnimator.getDeferTransactionBarrier();
}
+
+ @Override
+ boolean prepareForSync(BLASTSyncEngine.TransactionReadyListener waitingListener,
+ int waitingId) {
+ // TODO(b/148871522): Support child window
+ mWaitingListener = waitingListener;
+ mWaitingSyncId = waitingId;
+ mUsingBLASTSyncTransaction = true;
+ return true;
+ }
+
+ boolean finishDrawing(SurfaceControl.Transaction postDrawTransaction) {
+ if (!mUsingBLASTSyncTransaction) {
+ return mWinAnimator.finishDrawingLocked(postDrawTransaction);
+ }
+ if (postDrawTransaction == null) {
+ postDrawTransaction = new SurfaceControl.Transaction();
+ }
+ postDrawTransaction.merge(mBLASTSyncTransaction);
+ mWaitingListener.transactionReady(mWaitingSyncId, postDrawTransaction);
+ mUsingBLASTSyncTransaction = false;
+
+ mWaitingSyncId = 0;
+ mWaitingListener = null;
+ return mWinAnimator.finishDrawingLocked(null);
+ }
}
diff --git a/services/core/java/com/android/server/wm/utils/DisplayRotationUtil.java b/services/core/java/com/android/server/wm/utils/DisplayRotationUtil.java
index 9f307bb0f98f..59abaab0f795 100644
--- a/services/core/java/com/android/server/wm/utils/DisplayRotationUtil.java
+++ b/services/core/java/com/android/server/wm/utils/DisplayRotationUtil.java
@@ -59,7 +59,7 @@ public class DisplayRotationUtil {
}
/**
- * Compute bounds after rotating teh screen.
+ * Compute bounds after rotating the screen.
*
* @param bounds Bounds before the rotation. The array must contain exactly 4 non-null elements.
* @param rotation rotation constant defined in android.view.Surface.
diff --git a/services/core/java/com/android/server/wm/utils/WmDisplayCutout.java b/services/core/java/com/android/server/wm/utils/WmDisplayCutout.java
index 3be5d3176df5..46fff032e053 100644
--- a/services/core/java/com/android/server/wm/utils/WmDisplayCutout.java
+++ b/services/core/java/com/android/server/wm/utils/WmDisplayCutout.java
@@ -21,7 +21,6 @@ import android.util.Size;
import android.view.DisplayCutout;
import android.view.Gravity;
-import java.util.List;
import java.util.Objects;
/**
@@ -41,12 +40,17 @@ public class WmDisplayCutout {
mFrameSize = frameSize;
}
- public static WmDisplayCutout computeSafeInsets(DisplayCutout inner,
- int displayWidth, int displayHeight) {
- if (inner == DisplayCutout.NO_CUTOUT || inner.isBoundsEmpty()) {
+ /**
+ * Compute the safe insets according to the given DisplayCutout and the display size.
+ *
+ * @return return a WmDisplayCutout with calculated safe insets.
+ * @hide
+ */
+ public static WmDisplayCutout computeSafeInsets(
+ DisplayCutout inner, int displayWidth, int displayHeight) {
+ if (inner == DisplayCutout.NO_CUTOUT) {
return NO_CUTOUT;
}
-
final Size displaySize = new Size(displayWidth, displayHeight);
final Rect safeInsets = computeSafeInsets(displaySize, inner);
return new WmDisplayCutout(inner.replaceSafeInsets(safeInsets), displaySize);
@@ -112,57 +116,42 @@ public class WmDisplayCutout {
}
private static Rect computeSafeInsets(Size displaySize, DisplayCutout cutout) {
- if (displaySize.getWidth() < displaySize.getHeight()) {
- final List<Rect> boundingRects = cutout.replaceSafeInsets(
- new Rect(0, displaySize.getHeight() / 2, 0, displaySize.getHeight() / 2))
- .getBoundingRects();
- int topInset = findInsetForSide(displaySize, boundingRects, Gravity.TOP);
- int bottomInset = findInsetForSide(displaySize, boundingRects, Gravity.BOTTOM);
- return new Rect(0, topInset, 0, bottomInset);
- } else if (displaySize.getWidth() > displaySize.getHeight()) {
- final List<Rect> boundingRects = cutout.replaceSafeInsets(
- new Rect(displaySize.getWidth() / 2, 0, displaySize.getWidth() / 2, 0))
- .getBoundingRects();
- int leftInset = findInsetForSide(displaySize, boundingRects, Gravity.LEFT);
- int right = findInsetForSide(displaySize, boundingRects, Gravity.RIGHT);
- return new Rect(leftInset, 0, right, 0);
- } else {
+ if (displaySize.getWidth() == displaySize.getHeight()) {
throw new UnsupportedOperationException("not implemented: display=" + displaySize +
" cutout=" + cutout);
}
+
+ int leftInset = Math.max(cutout.getWaterfallInsets().left,
+ findCutoutInsetForSide(displaySize, cutout.getBoundingRectLeft(), Gravity.LEFT));
+ int topInset = Math.max(cutout.getWaterfallInsets().top,
+ findCutoutInsetForSide(displaySize, cutout.getBoundingRectTop(), Gravity.TOP));
+ int rightInset = Math.max(cutout.getWaterfallInsets().right,
+ findCutoutInsetForSide(displaySize, cutout.getBoundingRectRight(), Gravity.RIGHT));
+ int bottomInset = Math.max(cutout.getWaterfallInsets().bottom,
+ findCutoutInsetForSide(displaySize, cutout.getBoundingRectBottom(),
+ Gravity.BOTTOM));
+
+ return new Rect(leftInset, topInset, rightInset, bottomInset);
}
- private static int findInsetForSide(Size display, List<Rect> boundingRects, int gravity) {
+ private static int findCutoutInsetForSide(Size display, Rect boundingRect, int gravity) {
+ if (boundingRect.isEmpty()) {
+ return 0;
+ }
+
int inset = 0;
- final int size = boundingRects.size();
- for (int i = 0; i < size; i++) {
- Rect boundingRect = boundingRects.get(i);
- switch (gravity) {
- case Gravity.TOP:
- if (boundingRect.top == 0) {
- inset = Math.max(inset, boundingRect.bottom);
- }
- break;
- case Gravity.BOTTOM:
- if (boundingRect.bottom == display.getHeight()) {
- inset = Math.max(inset, display.getHeight() - boundingRect.top);
- }
- break;
- case Gravity.LEFT:
- if (boundingRect.left == 0) {
- inset = Math.max(inset, boundingRect.right);
- }
- break;
- case Gravity.RIGHT:
- if (boundingRect.right == display.getWidth()) {
- inset = Math.max(inset, display.getWidth() - boundingRect.left);
- }
- break;
- default:
- throw new IllegalArgumentException("unknown gravity: " + gravity);
- }
+ switch (gravity) {
+ case Gravity.TOP:
+ return Math.max(inset, boundingRect.bottom);
+ case Gravity.BOTTOM:
+ return Math.max(inset, display.getHeight() - boundingRect.top);
+ case Gravity.LEFT:
+ return Math.max(inset, boundingRect.right);
+ case Gravity.RIGHT:
+ return Math.max(inset, display.getWidth() - boundingRect.left);
+ default:
+ throw new IllegalArgumentException("unknown gravity: " + gravity);
}
- return inset;
}
public DisplayCutout getDisplayCutout() {
diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp
index 4a2636ee6ca4..812bc438246f 100644
--- a/services/core/jni/Android.bp
+++ b/services/core/jni/Android.bp
@@ -22,6 +22,8 @@ cc_library_static {
"BroadcastRadio/TunerCallback.cpp",
"BroadcastRadio/convert.cpp",
"BroadcastRadio/regions.cpp",
+ "stats/PowerStatsPuller.cpp",
+ "stats/SubsystemSleepStatePuller.cpp",
"com_android_server_am_BatteryStatsService.cpp",
"com_android_server_connectivity_Vpn.cpp",
"com_android_server_ConsumerIrService.cpp",
@@ -37,6 +39,7 @@ cc_library_static {
"com_android_server_security_VerityUtils.cpp",
"com_android_server_SerialService.cpp",
"com_android_server_soundtrigger_middleware_AudioSessionProviderImpl.cpp",
+ "com_android_server_stats_pull_StatsPullAtomService.cpp",
"com_android_server_storage_AppFuseBridge.cpp",
"com_android_server_SystemServer.cpp",
"com_android_server_TestNetworkService.cpp",
@@ -106,6 +109,7 @@ cc_defaults {
"libinputservice",
"libprotobuf-cpp-lite",
"libprotoutil",
+ "libstatshidl",
"libstatspull",
"libstatssocket",
"libstatslog",
@@ -152,6 +156,7 @@ cc_defaults {
"android.hardware.vr@1.0",
"android.frameworks.schedulerservice@1.0",
"android.frameworks.sensorservice@1.0",
+ "android.frameworks.stats@1.0",
"android.system.suspend@1.0",
"service.incremental",
"suspend_control_aidl_interface-cpp",
diff --git a/services/core/jni/com_android_server_GraphicsStatsService.cpp b/services/core/jni/com_android_server_GraphicsStatsService.cpp
index 7644adebb10a..aa7067ee7509 100644
--- a/services/core/jni/com_android_server_GraphicsStatsService.cpp
+++ b/services/core/jni/com_android_server_GraphicsStatsService.cpp
@@ -137,7 +137,7 @@ using namespace google::protobuf;
#define TIME_MILLIS_BUCKETS_FIELD_NUMBER 1
#define FRAME_COUNTS_FIELD_NUMBER 2
-static void writeCpuHistogram(stats_event* event,
+static void writeCpuHistogram(AStatsEvent* event,
const uirenderer::protos::GraphicsStatsProto& stat) {
util::ProtoOutputStream proto;
for (int bucketIndex = 0; bucketIndex < stat.histogram_size(); bucketIndex++) {
@@ -154,10 +154,10 @@ static void writeCpuHistogram(stats_event* event,
}
std::vector<uint8_t> outVector;
proto.serializeToVector(&outVector);
- stats_event_write_byte_array(event, outVector.data(), outVector.size());
+ AStatsEvent_writeByteArray(event, outVector.data(), outVector.size());
}
-static void writeGpuHistogram(stats_event* event,
+static void writeGpuHistogram(AStatsEvent* event,
const uirenderer::protos::GraphicsStatsProto& stat) {
util::ProtoOutputStream proto;
for (int bucketIndex = 0; bucketIndex < stat.gpu_histogram_size(); bucketIndex++) {
@@ -174,20 +174,20 @@ static void writeGpuHistogram(stats_event* event,
}
std::vector<uint8_t> outVector;
proto.serializeToVector(&outVector);
- stats_event_write_byte_array(event, outVector.data(), outVector.size());
+ AStatsEvent_writeByteArray(event, outVector.data(), outVector.size());
}
// graphicsStatsPullCallback is invoked by statsd service to pull GRAPHICS_STATS atom.
-static status_pull_atom_return_t graphicsStatsPullCallback(int32_t atom_tag,
- pulled_stats_event_list* data,
- void* cookie) {
+static AStatsManager_PullAtomCallbackReturn graphicsStatsPullCallback(int32_t atom_tag,
+ AStatsEventList* data,
+ void* cookie) {
JNIEnv* env = getJNIEnv();
if (!env) {
return false;
}
if (gGraphicsStatsServiceObject == nullptr) {
ALOGE("Failed to get graphicsstats service");
- return STATS_PULL_SKIP;
+ return AStatsManager_PULL_SKIP;
}
for (bool lastFullDay : {true, false}) {
@@ -199,7 +199,7 @@ static status_pull_atom_return_t graphicsStatsPullCallback(int32_t atom_tag,
env->ExceptionDescribe();
env->ExceptionClear();
ALOGE("Failed to invoke graphicsstats service");
- return STATS_PULL_SKIP;
+ return AStatsManager_PULL_SKIP;
}
if (!jdata) {
// null means data is not available for that day.
@@ -218,49 +218,51 @@ static status_pull_atom_return_t graphicsStatsPullCallback(int32_t atom_tag,
if (!success) {
ALOGW("Parse failed on GraphicsStatsPuller error='%s' dataSize='%d'",
serviceDump.InitializationErrorString().c_str(), dataSize);
- return STATS_PULL_SKIP;
+ return AStatsManager_PULL_SKIP;
}
for (int stat_index = 0; stat_index < serviceDump.stats_size(); stat_index++) {
auto& stat = serviceDump.stats(stat_index);
- stats_event* event = add_stats_event_to_pull_data(data);
- stats_event_set_atom_id(event, android::util::GRAPHICS_STATS);
- stats_event_write_string8(event, stat.package_name().c_str());
- stats_event_write_int64(event, (int64_t)stat.version_code());
- stats_event_write_int64(event, (int64_t)stat.stats_start());
- stats_event_write_int64(event, (int64_t)stat.stats_end());
- stats_event_write_int32(event, (int32_t)stat.pipeline());
- stats_event_write_int32(event, (int32_t)stat.summary().total_frames());
- stats_event_write_int32(event, (int32_t)stat.summary().missed_vsync_count());
- stats_event_write_int32(event, (int32_t)stat.summary().high_input_latency_count());
- stats_event_write_int32(event, (int32_t)stat.summary().slow_ui_thread_count());
- stats_event_write_int32(event, (int32_t)stat.summary().slow_bitmap_upload_count());
- stats_event_write_int32(event, (int32_t)stat.summary().slow_draw_count());
- stats_event_write_int32(event, (int32_t)stat.summary().missed_deadline_count());
+ AStatsEvent* event = AStatsEventList_addStatsEvent(data);
+ AStatsEvent_setAtomId(event, android::util::GRAPHICS_STATS);
+ AStatsEvent_writeString(event, stat.package_name().c_str());
+ AStatsEvent_writeInt64(event, (int64_t)stat.version_code());
+ AStatsEvent_writeInt64(event, (int64_t)stat.stats_start());
+ AStatsEvent_writeInt64(event, (int64_t)stat.stats_end());
+ AStatsEvent_writeInt32(event, (int32_t)stat.pipeline());
+ AStatsEvent_writeInt32(event, (int32_t)stat.summary().total_frames());
+ AStatsEvent_writeInt32(event, (int32_t)stat.summary().missed_vsync_count());
+ AStatsEvent_writeInt32(event, (int32_t)stat.summary().high_input_latency_count());
+ AStatsEvent_writeInt32(event, (int32_t)stat.summary().slow_ui_thread_count());
+ AStatsEvent_writeInt32(event, (int32_t)stat.summary().slow_bitmap_upload_count());
+ AStatsEvent_writeInt32(event, (int32_t)stat.summary().slow_draw_count());
+ AStatsEvent_writeInt32(event, (int32_t)stat.summary().missed_deadline_count());
writeCpuHistogram(event, stat);
writeGpuHistogram(event, stat);
// TODO: fill in UI mainline module version, when the feature is available.
- stats_event_write_int64(event, (int64_t)0);
- stats_event_write_bool(event, !lastFullDay);
- stats_event_build(event);
+ AStatsEvent_writeInt64(event, (int64_t)0);
+ AStatsEvent_writeBool(event, !lastFullDay);
+ AStatsEvent_build(event);
}
}
- return STATS_PULL_SUCCESS;
+ return AStatsManager_PULL_SUCCESS;
}
// Register a puller for GRAPHICS_STATS atom with the statsd service.
static void nativeInit(JNIEnv* env, jobject javaObject) {
gGraphicsStatsServiceObject = env->NewGlobalRef(javaObject);
- pull_atom_metadata metadata = {.cool_down_ns = 10 * 1000000, // 10 milliseconds
- .timeout_ns = 2 * NS_PER_SEC, // 2 seconds
- .additive_fields = nullptr,
- .additive_fields_size = 0};
- register_stats_pull_atom_callback(android::util::GRAPHICS_STATS, &graphicsStatsPullCallback,
- &metadata, nullptr);
+ AStatsManager_PullAtomMetadata* metadata = AStatsManager_PullAtomMetadata_obtain();
+ AStatsManager_PullAtomMetadata_setCoolDownNs(metadata, 10 * 1000000); // 10 milliseconds
+ AStatsManager_PullAtomMetadata_setTimeoutNs(metadata, 2 * NS_PER_SEC); // 2 seconds
+
+ AStatsManager_registerPullAtomCallback(android::util::GRAPHICS_STATS,
+ &graphicsStatsPullCallback, metadata, nullptr);
+
+ AStatsManager_PullAtomMetadata_release(metadata);
}
static void nativeDestructor(JNIEnv* env, jobject javaObject) {
- //TODO: Unregister the puller callback when a new API is available.
+ AStatsManager_unregisterPullAtomCallback(android::util::GRAPHICS_STATS);
env->DeleteGlobalRef(gGraphicsStatsServiceObject);
gGraphicsStatsServiceObject = nullptr;
}
diff --git a/services/core/jni/com_android_server_SystemServer.cpp b/services/core/jni/com_android_server_SystemServer.cpp
index 78b64ca072ad..279ea4b9a790 100644
--- a/services/core/jni/com_android_server_SystemServer.cpp
+++ b/services/core/jni/com_android_server_SystemServer.cpp
@@ -14,6 +14,12 @@
* limitations under the License.
*/
+#include <dlfcn.h>
+#include <pthread.h>
+
+#include <chrono>
+#include <thread>
+
#include <jni.h>
#include <nativehelper/JNIHelp.h>
@@ -23,14 +29,20 @@
#include <schedulerservice/SchedulingPolicyService.h>
#include <sensorservice/SensorService.h>
#include <sensorservicehidl/SensorManager.h>
+#include <stats/StatsHal.h>
#include <bionic/malloc.h>
+#include <bionic/reserved_signals.h>
+#include <android-base/properties.h>
#include <cutils/properties.h>
#include <utils/Log.h>
#include <utils/misc.h>
#include <utils/AndroidThreads.h>
+using android::base::GetIntProperty;
+using namespace std::chrono_literals;
+
namespace android {
static void android_server_SystemServer_startSensorService(JNIEnv* /* env */, jobject /* clazz */) {
@@ -48,6 +60,8 @@ static void android_server_SystemServer_startHidlServices(JNIEnv* env, jobject /
using ::android::frameworks::schedulerservice::V1_0::implementation::SchedulingPolicyService;
using ::android::frameworks::sensorservice::V1_0::ISensorManager;
using ::android::frameworks::sensorservice::V1_0::implementation::SensorManager;
+ using ::android::frameworks::stats::V1_0::IStats;
+ using ::android::frameworks::stats::V1_0::implementation::StatsHal;
using ::android::hardware::configureRpcThreadpool;
status_t err;
@@ -64,11 +78,58 @@ static void android_server_SystemServer_startHidlServices(JNIEnv* env, jobject /
sp<ISchedulingPolicyService> schedulingService = new SchedulingPolicyService();
err = schedulingService->registerAsService();
ALOGE_IF(err != OK, "Cannot register %s: %d", ISchedulingPolicyService::descriptor, err);
+
+ sp<IStats> statsHal = new StatsHal();
+ err = statsHal->registerAsService();
+ ALOGE_IF(err != OK, "Cannot register %s: %d", IStats::descriptor, err);
}
static void android_server_SystemServer_initZygoteChildHeapProfiling(JNIEnv* /* env */,
jobject /* clazz */) {
- android_mallopt(M_INIT_ZYGOTE_CHILD_PROFILING, nullptr, 0);
+ android_mallopt(M_INIT_ZYGOTE_CHILD_PROFILING, nullptr, 0);
+}
+
+static int get_current_max_fd() {
+ // Not actually guaranteed to be the max, but close enough for our purposes.
+ int fd = open("/dev/null", O_RDONLY | O_CLOEXEC);
+ LOG_ALWAYS_FATAL_IF(fd == -1, "failed to open /dev/null: %s", strerror(errno));
+ close(fd);
+ return fd;
+}
+
+static const char kFdLeakEnableThresholdProperty[] = "persist.sys.debug.fdtrack_enable_threshold";
+static const char kFdLeakAbortThresholdProperty[] = "persist.sys.debug.fdtrack_abort_threshold";
+static const char kFdLeakCheckIntervalProperty[] = "persist.sys.debug.fdtrack_interval";
+
+static void android_server_SystemServer_spawnFdLeakCheckThread(JNIEnv*, jobject) {
+ std::thread([]() {
+ pthread_setname_np(pthread_self(), "FdLeakCheckThread");
+ bool loaded = false;
+ while (true) {
+ const int enable_threshold = GetIntProperty(kFdLeakEnableThresholdProperty, 1024);
+ const int abort_threshold = GetIntProperty(kFdLeakAbortThresholdProperty, 2048);
+ const int check_interval = GetIntProperty(kFdLeakCheckIntervalProperty, 120);
+ int max_fd = get_current_max_fd();
+ if (max_fd > enable_threshold && !loaded) {
+ loaded = true;
+ ALOGE("fd count above threshold of %d, starting fd backtraces", enable_threshold);
+ if (dlopen("libfdtrack.so", RTLD_GLOBAL) == nullptr) {
+ ALOGE("failed to load libfdtrack.so: %s", dlerror());
+ }
+ } else if (max_fd > abort_threshold) {
+ raise(BIONIC_SIGNAL_FDTRACK);
+
+ // Wait for a bit to allow fdtrack to dump backtraces to logcat.
+ std::this_thread::sleep_for(5s);
+
+ LOG_ALWAYS_FATAL(
+ "b/140703823: aborting due to fd leak: check logs for fd "
+ "backtraces");
+ }
+
+ std::this_thread::sleep_for(std::chrono::seconds(check_interval));
+ }
+ }).detach();
}
/*
@@ -80,6 +141,9 @@ static const JNINativeMethod gMethods[] = {
{ "startHidlServices", "()V", (void*) android_server_SystemServer_startHidlServices },
{ "initZygoteChildHeapProfiling", "()V",
(void*) android_server_SystemServer_initZygoteChildHeapProfiling },
+ { "spawnFdLeakCheckThread", "()V",
+ (void*) android_server_SystemServer_spawnFdLeakCheckThread },
+
};
int register_android_server_SystemServer(JNIEnv* env)
diff --git a/services/core/jni/com_android_server_incremental_IncrementalManagerService.cpp b/services/core/jni/com_android_server_incremental_IncrementalManagerService.cpp
index 5e255f46fa05..10bac94f77e2 100644
--- a/services/core/jni/com_android_server_incremental_IncrementalManagerService.cpp
+++ b/services/core/jni/com_android_server_incremental_IncrementalManagerService.cpp
@@ -33,9 +33,14 @@ static void nativeSystemReady(JNIEnv* env, jclass klass, jlong self) {
Incremental_IncrementalService_OnSystemReady(self);
}
+static void nativeDump(JNIEnv* env, jclass klass, jlong self, jint fd) {
+ Incremental_IncrementalService_OnDump(self, fd);
+}
+
static const JNINativeMethod method_table[] = {
{"nativeStartService", "()J", (void*)nativeStartService},
{"nativeSystemReady", "(J)V", (void*)nativeSystemReady},
+ {"nativeDump", "(JI)V", (void*)nativeDump},
};
int register_android_server_incremental_IncrementalManagerService(JNIEnv* env) {
diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp
index 212a3a638634..49db3d5b2b64 100644
--- a/services/core/jni/com_android_server_input_InputManagerService.cpp
+++ b/services/core/jni/com_android_server_input_InputManagerService.cpp
@@ -1563,20 +1563,17 @@ static void nativeSetSystemUiVisibility(JNIEnv* /* env */,
}
static jboolean nativeTransferTouchFocus(JNIEnv* env,
- jclass /* clazz */, jlong ptr, jobject fromChannelObj, jobject toChannelObj) {
- NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr);
-
- sp<InputChannel> fromChannel =
- android_view_InputChannel_getInputChannel(env, fromChannelObj);
- sp<InputChannel> toChannel =
- android_view_InputChannel_getInputChannel(env, toChannelObj);
-
- if (fromChannel == nullptr || toChannel == nullptr) {
+ jclass /* clazz */, jlong ptr, jobject fromChannelTokenObj, jobject toChannelTokenObj) {
+ if (fromChannelTokenObj == nullptr || toChannelTokenObj == nullptr) {
return JNI_FALSE;
}
+ sp<IBinder> fromChannelToken = ibinderForJavaObject(env, fromChannelTokenObj);
+ sp<IBinder> toChannelToken = ibinderForJavaObject(env, toChannelTokenObj);
+
+ NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr);
if (im->getInputManager()->getDispatcher()->transferTouchFocus(
- fromChannel->getConnectionToken(), toChannel->getConnectionToken())) {
+ fromChannelToken, toChannelToken)) {
return JNI_TRUE;
} else {
return JNI_FALSE;
@@ -1784,7 +1781,7 @@ static const JNINativeMethod gInputManagerMethods[] = {
(void*) nativeSetInputDispatchMode },
{ "nativeSetSystemUiVisibility", "(JI)V",
(void*) nativeSetSystemUiVisibility },
- { "nativeTransferTouchFocus", "(JLandroid/view/InputChannel;Landroid/view/InputChannel;)Z",
+ { "nativeTransferTouchFocus", "(JLandroid/os/IBinder;Landroid/os/IBinder;)Z",
(void*) nativeTransferTouchFocus },
{ "nativeSetPointerSpeed", "(JI)V",
(void*) nativeSetPointerSpeed },
diff --git a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
index 12de20cc3d51..1a8f1f9f0024 100644
--- a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
+++ b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp
@@ -1218,19 +1218,21 @@ void GnssMeasurementCallback::translateSingleGnssMeasurement
SET(BasebandCn0DbHz, measurement_V2_1->basebandCN0DbHz);
if (measurement_V2_1->flags & GnssMeasurementFlags::HAS_RECEIVER_ISB) {
- SET(ReceiverInterSignalBiasNs, measurement_V2_1->receiverInterSignalBiasNs);
+ SET(ReceiverInterSignalBiasNanos, measurement_V2_1->receiverInterSignalBiasNs);
}
if (measurement_V2_1->flags & GnssMeasurementFlags::HAS_RECEIVER_ISB_UNCERTAINTY) {
- SET(ReceiverInterSignalBiasUncertaintyNs, measurement_V2_1->receiverInterSignalBiasUncertaintyNs);
+ SET(ReceiverInterSignalBiasUncertaintyNanos,
+ measurement_V2_1->receiverInterSignalBiasUncertaintyNs);
}
if (measurement_V2_1->flags & GnssMeasurementFlags::HAS_SATELLITE_ISB) {
- SET(SatelliteInterSignalBiasNs, measurement_V2_1->satelliteInterSignalBiasNs);
+ SET(SatelliteInterSignalBiasNanos, measurement_V2_1->satelliteInterSignalBiasNs);
}
if (measurement_V2_1->flags & GnssMeasurementFlags::HAS_SATELLITE_ISB_UNCERTAINTY) {
- SET(SatelliteInterSignalBiasUncertaintyNs, measurement_V2_1->satelliteInterSignalBiasUncertaintyNs);
+ SET(SatelliteInterSignalBiasUncertaintyNanos,
+ measurement_V2_1->satelliteInterSignalBiasUncertaintyNs);
}
}
diff --git a/services/core/jni/com_android_server_stats_pull_StatsPullAtomService.cpp b/services/core/jni/com_android_server_stats_pull_StatsPullAtomService.cpp
new file mode 100644
index 000000000000..43cd0a2d2474
--- /dev/null
+++ b/services/core/jni/com_android_server_stats_pull_StatsPullAtomService.cpp
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "StatsPullAtomService"
+
+#include <jni.h>
+#include <log/log.h>
+#include <nativehelper/JNIHelp.h>
+#include <stats_event.h>
+#include <stats_pull_atom_callback.h>
+#include <statslog.h>
+
+#include "stats/PowerStatsPuller.h"
+#include "stats/SubsystemSleepStatePuller.h"
+
+namespace android {
+
+static server::stats::PowerStatsPuller gPowerStatsPuller;
+static server::stats::SubsystemSleepStatePuller gSubsystemSleepStatePuller;
+
+static AStatsManager_PullAtomCallbackReturn onDevicePowerMeasurementCallback(int32_t atom_tag,
+ AStatsEventList* data,
+ void* cookie) {
+ return gPowerStatsPuller.Pull(atom_tag, data);
+}
+
+static AStatsManager_PullAtomCallbackReturn subsystemSleepStateCallback(int32_t atom_tag,
+ AStatsEventList* data,
+ void* cookie) {
+ return gSubsystemSleepStatePuller.Pull(atom_tag, data);
+}
+
+static void nativeInit(JNIEnv* env, jobject javaObject) {
+ // on device power measurement
+ gPowerStatsPuller = server::stats::PowerStatsPuller();
+ AStatsManager_registerPullAtomCallback(android::util::ON_DEVICE_POWER_MEASUREMENT,
+ onDevicePowerMeasurementCallback,
+ /* metadata= */ nullptr,
+ /* cookie= */ nullptr);
+
+ // subsystem sleep state
+ gSubsystemSleepStatePuller = server::stats::SubsystemSleepStatePuller();
+ AStatsManager_registerPullAtomCallback(android::util::SUBSYSTEM_SLEEP_STATE,
+ subsystemSleepStateCallback,
+ /* metadata= */ nullptr,
+ /* cookie= */ nullptr);
+}
+
+static const JNINativeMethod sMethods[] = {{"nativeInit", "()V", (void*)nativeInit}};
+
+int register_android_server_stats_pull_StatsPullAtomService(JNIEnv* env) {
+ int res = jniRegisterNativeMethods(env, "com/android/server/stats/pull/StatsPullAtomService",
+ sMethods, NELEM(sMethods));
+ if (res < 0) {
+ ALOGE("failed to register native methods");
+ }
+ return res;
+}
+
+} // namespace android
diff --git a/services/core/jni/onload.cpp b/services/core/jni/onload.cpp
index 19fa062bd9f9..1202ad33996d 100644
--- a/services/core/jni/onload.cpp
+++ b/services/core/jni/onload.cpp
@@ -59,6 +59,7 @@ int register_android_server_am_LowMemDetector(JNIEnv* env);
int register_com_android_server_soundtrigger_middleware_AudioSessionProviderImpl(
JNIEnv* env);
int register_android_server_incremental_IncrementalManagerService(JNIEnv* env);
+int register_android_server_stats_pull_StatsPullAtomService(JNIEnv* env);
};
using namespace android;
@@ -111,5 +112,6 @@ extern "C" jint JNI_OnLoad(JavaVM* vm, void* /* reserved */)
register_com_android_server_soundtrigger_middleware_AudioSessionProviderImpl(
env);
register_android_server_incremental_IncrementalManagerService(env);
+ register_android_server_stats_pull_StatsPullAtomService(env);
return JNI_VERSION_1_4;
}
diff --git a/services/core/jni/stats/OWNERS b/services/core/jni/stats/OWNERS
new file mode 100644
index 000000000000..a61babf32e58
--- /dev/null
+++ b/services/core/jni/stats/OWNERS
@@ -0,0 +1,9 @@
+jeffreyhuang@google.com
+joeo@google.com
+jtnguyen@google.com
+muhammadq@google.com
+ruchirr@google.com
+singhtejinder@google.com
+tsaichristine@google.com
+yaochen@google.com
+yro@google.com
diff --git a/cmds/statsd/src/external/PowerStatsPuller.cpp b/services/core/jni/stats/PowerStatsPuller.cpp
index dc69b78f0329..d8f6faac0ffb 100644
--- a/cmds/statsd/src/external/PowerStatsPuller.cpp
+++ b/services/core/jni/stats/PowerStatsPuller.cpp
@@ -14,31 +14,28 @@
* limitations under the License.
*/
-#define DEBUG false // STOPSHIP if true
-#include "Log.h"
+#define DEBUG false // STOPSHIP if true
+#define LOG_TAG "PowerStatsPuller"
#include <android/hardware/power/stats/1.0/IPowerStats.h>
+#include <log/log.h>
+#include <statslog.h>
#include <vector>
#include "PowerStatsPuller.h"
-#include "statslog.h"
-#include "stats_log_util.h"
using android::hardware::hidl_vec;
-using android::hardware::power::stats::V1_0::IPowerStats;
+using android::hardware::Return;
+using android::hardware::Void;
using android::hardware::power::stats::V1_0::EnergyData;
+using android::hardware::power::stats::V1_0::IPowerStats;
using android::hardware::power::stats::V1_0::RailInfo;
using android::hardware::power::stats::V1_0::Status;
-using android::hardware::Return;
-using android::hardware::Void;
-
-using std::make_shared;
-using std::shared_ptr;
namespace android {
-namespace os {
-namespace statsd {
+namespace server {
+namespace stats {
static sp<android::hardware::power::stats::V1_0::IPowerStats> gPowerStatsHal = nullptr;
static std::mutex gPowerStatsHalMutex;
@@ -47,7 +44,7 @@ static std::vector<RailInfo> gRailInfo;
struct PowerStatsPullerDeathRecipient : virtual public hardware::hidl_death_recipient {
virtual void serviceDied(uint64_t cookie,
- const wp<android::hidl::base::V1_0::IBase>& who) override {
+ const wp<android::hidl::base::V1_0::IBase>& who) override {
// The HAL just died. Reset all handles to HAL services.
std::lock_guard<std::mutex> lock(gPowerStatsHalMutex);
gPowerStatsHal = nullptr;
@@ -67,7 +64,7 @@ static bool getPowerStatsHalLocked() {
hardware::Return<bool> linked = gPowerStatsHal->linkToDeath(gDeathRecipient, 0);
if (!linked.isOk()) {
ALOGE("Transaction error in linking to power.stats HAL death: %s",
- linked.description().c_str());
+ linked.description().c_str());
gPowerStatsHal = nullptr;
return false;
} else if (!linked) {
@@ -79,29 +76,23 @@ static bool getPowerStatsHalLocked() {
return gPowerStatsHal != nullptr;
}
-PowerStatsPuller::PowerStatsPuller() : StatsPuller(android::util::ON_DEVICE_POWER_MEASUREMENT) {
-}
+PowerStatsPuller::PowerStatsPuller() {}
-bool PowerStatsPuller::PullInternal(vector<shared_ptr<LogEvent>>* data) {
+AStatsManager_PullAtomCallbackReturn PowerStatsPuller::Pull(int32_t atomTag,
+ AStatsEventList* data) {
std::lock_guard<std::mutex> lock(gPowerStatsHalMutex);
if (!getPowerStatsHalLocked()) {
- return false;
+ return AStatsManager_PULL_SKIP;
}
- int64_t wallClockTimestampNs = getWallClockNs();
- int64_t elapsedTimestampNs = getElapsedRealtimeNs();
-
- data->clear();
-
// Pull getRailInfo if necessary
if (gRailInfo.empty()) {
bool resultSuccess = true;
Return<void> ret = gPowerStatsHal->getRailInfo(
- [&resultSuccess](const hidl_vec<RailInfo> &list, Status status) {
+ [&resultSuccess](const hidl_vec<RailInfo>& list, Status status) {
resultSuccess = (status == Status::SUCCESS || status == Status::NOT_SUPPORTED);
if (status != Status::SUCCESS) return;
-
gRailInfo.reserve(list.size());
for (size_t i = 0; i < list.size(); ++i) {
gRailInfo.push_back(list[i]);
@@ -110,61 +101,65 @@ bool PowerStatsPuller::PullInternal(vector<shared_ptr<LogEvent>>* data) {
if (!resultSuccess || !ret.isOk()) {
ALOGE("power.stats getRailInfo() failed. Description: %s", ret.description().c_str());
gPowerStatsHal = nullptr;
- return false;
+ return AStatsManager_PULL_SKIP;
}
// If SUCCESS but empty, or if NOT_SUPPORTED, then never try again.
if (gRailInfo.empty()) {
ALOGE("power.stats has no rail information");
gPowerStatsExist = false; // No rail info, so never try again.
gPowerStatsHal = nullptr;
- return false;
+ return AStatsManager_PULL_SKIP;
}
}
// Pull getEnergyData and write the data out
const hidl_vec<uint32_t> desiredRailIndices; // Empty vector indicates we want all.
bool resultSuccess = true;
- Return<void> ret = gPowerStatsHal->getEnergyData(desiredRailIndices,
- [&data, wallClockTimestampNs, elapsedTimestampNs, &resultSuccess]
- (hidl_vec<EnergyData> energyDataList, Status status) {
- resultSuccess = (status == Status::SUCCESS);
- if (!resultSuccess) return;
-
- for (size_t i = 0; i < energyDataList.size(); i++) {
- const EnergyData& energyData = energyDataList[i];
-
- if (energyData.index >= gRailInfo.size()) {
- ALOGE("power.stats getEnergyData() returned an invalid rail index %u.",
- energyData.index);
- resultSuccess = false;
- return;
- }
- const RailInfo& rail = gRailInfo[energyData.index];
-
- auto ptr = make_shared<LogEvent>(android::util::ON_DEVICE_POWER_MEASUREMENT,
- wallClockTimestampNs, elapsedTimestampNs);
- ptr->write(rail.subsysName);
- ptr->write(rail.railName);
- ptr->write(energyData.timestamp);
- ptr->write(energyData.energy);
- ptr->init();
- data->push_back(ptr);
-
- VLOG("power.stat: %s.%s: %llu, %llu",
- rail.subsysName.c_str(),
- rail.railName.c_str(),
- (unsigned long long)energyData.timestamp,
- (unsigned long long)energyData.energy);
- }
- });
+ Return<void> ret =
+ gPowerStatsHal
+ ->getEnergyData(desiredRailIndices,
+ [&data, &resultSuccess](hidl_vec<EnergyData> energyDataList,
+ Status status) {
+ resultSuccess = (status == Status::SUCCESS);
+ if (!resultSuccess) return;
+
+ for (size_t i = 0; i < energyDataList.size(); i++) {
+ const EnergyData& energyData = energyDataList[i];
+
+ if (energyData.index >= gRailInfo.size()) {
+ ALOGE("power.stats getEnergyData() returned an "
+ "invalid rail index %u.",
+ energyData.index);
+ resultSuccess = false;
+ return;
+ }
+ const RailInfo& rail = gRailInfo[energyData.index];
+
+ AStatsEvent* event =
+ AStatsEventList_addStatsEvent(data);
+ AStatsEvent_setAtomId(
+ event,
+ android::util::ON_DEVICE_POWER_MEASUREMENT);
+ AStatsEvent_writeString(event, rail.subsysName.c_str());
+ AStatsEvent_writeString(event, rail.railName.c_str());
+ AStatsEvent_writeInt64(event, energyData.timestamp);
+ AStatsEvent_writeInt64(event, energyData.energy);
+ AStatsEvent_build(event);
+
+ ALOGV("power.stat: %s.%s: %llu, %llu",
+ rail.subsysName.c_str(), rail.railName.c_str(),
+ (unsigned long long)energyData.timestamp,
+ (unsigned long long)energyData.energy);
+ }
+ });
if (!resultSuccess || !ret.isOk()) {
ALOGE("power.stats getEnergyData() failed. Description: %s", ret.description().c_str());
gPowerStatsHal = nullptr;
- return false;
+ return AStatsManager_PULL_SKIP;
}
- return true;
+ return AStatsManager_PULL_SUCCESS;
}
-} // namespace statsd
-} // namespace os
-} // namespace android
+} // namespace stats
+} // namespace server
+} // namespace android
diff --git a/cmds/statsd/src/external/PowerStatsPuller.h b/services/core/jni/stats/PowerStatsPuller.h
index 6f15bd68fa94..db07d600d251 100644
--- a/cmds/statsd/src/external/PowerStatsPuller.h
+++ b/services/core/jni/stats/PowerStatsPuller.h
@@ -16,23 +16,22 @@
#pragma once
-#include "StatsPuller.h"
+#include <stats_event.h>
+#include <stats_pull_atom_callback.h>
namespace android {
-namespace os {
-namespace statsd {
+namespace server {
+namespace stats {
/**
* Reads hal for power.stats
*/
-class PowerStatsPuller : public StatsPuller {
+class PowerStatsPuller {
public:
PowerStatsPuller();
-
-private:
- bool PullInternal(vector<std::shared_ptr<LogEvent>>* data) override;
+ AStatsManager_PullAtomCallbackReturn Pull(int32_t atomTag, AStatsEventList* data);
};
-} // namespace statsd
-} // namespace os
-} // namespace android
+} // namespace stats
+} // namespace server
+} // namespace android
diff --git a/cmds/statsd/src/external/SubsystemSleepStatePuller.cpp b/services/core/jni/stats/SubsystemSleepStatePuller.cpp
index f6a4aeaa3f9e..45afb5eb7aa9 100644
--- a/cmds/statsd/src/external/SubsystemSleepStatePuller.cpp
+++ b/services/core/jni/stats/SubsystemSleepStatePuller.cpp
@@ -15,7 +15,10 @@
*/
#define DEBUG false // STOPSHIP if true
-#include "Log.h"
+#define LOG_TAG "SubsystemSleepStatePuller"
+
+#include <log/log.h>
+#include <statslog.h>
#include <android/hardware/power/1.0/IPower.h>
#include <android/hardware/power/1.1/IPower.h>
@@ -32,13 +35,8 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
-#include "external/SubsystemSleepStatePuller.h"
-#include "external/StatsPuller.h"
-
+#include <unordered_map>
#include "SubsystemSleepStatePuller.h"
-#include "logd/LogEvent.h"
-#include "statslog.h"
-#include "stats_log_util.h"
using android::hardware::hidl_vec;
using android::hardware::power::V1_0::IPower;
@@ -53,14 +51,12 @@ using android::hardware::power::stats::V1_0::PowerEntityStateSpace;
using android::hardware::Return;
using android::hardware::Void;
-using std::make_shared;
-using std::shared_ptr;
-
namespace android {
-namespace os {
-namespace statsd {
+namespace server {
+namespace stats {
-static std::function<bool(vector<shared_ptr<LogEvent>>* data)> gPuller = {};
+static std::function<AStatsManager_PullAtomCallbackReturn(int32_t atomTag, AStatsEventList* data)>
+ gPuller = {};
static sp<android::hardware::power::V1_0::IPower> gPowerHalV1_0 = nullptr;
static sp<android::hardware::power::V1_1::IPower> gPowerHalV1_1 = nullptr;
@@ -91,9 +87,7 @@ struct SubsystemSleepStatePullerDeathRecipient : virtual public hardware::hidl_d
static sp<SubsystemSleepStatePullerDeathRecipient> gDeathRecipient =
new SubsystemSleepStatePullerDeathRecipient();
-SubsystemSleepStatePuller::SubsystemSleepStatePuller() :
- StatsPuller(android::util::SUBSYSTEM_SLEEP_STATE) {
-}
+SubsystemSleepStatePuller::SubsystemSleepStatePuller() {}
// The caller must be holding gPowerHalMutex.
static bool checkResultLocked(const Return<void> &ret, const char* function) {
@@ -182,48 +176,46 @@ static bool getPowerStatsHalLocked() {
}
// The caller must be holding gPowerHalMutex.
-static bool getIPowerStatsDataLocked(vector<shared_ptr<LogEvent>>* data) {
+static AStatsManager_PullAtomCallbackReturn getIPowerStatsDataLocked(int32_t atomTag,
+ AStatsEventList* data) {
using android::hardware::power::stats::V1_0::Status;
if(!getPowerStatsHalLocked()) {
- return false;
+ return AStatsManager_PULL_SKIP;
}
-
- int64_t wallClockTimestampNs = getWallClockNs();
- int64_t elapsedTimestampNs = getElapsedRealtimeNs();
-
// Get power entity state residency data
bool success = false;
- Return<void> ret = gPowerStatsHalV1_0->getPowerEntityStateResidencyData({},
- [&data, &success, wallClockTimestampNs, elapsedTimestampNs]
- (auto results, auto status) {
- if (status == Status::NOT_SUPPORTED) {
- ALOGW("getPowerEntityStateResidencyData is not supported");
- success = false;
- return;
- }
-
- for(auto result : results) {
- for(auto stateResidency : result.stateResidencyData) {
- auto statePtr = make_shared<LogEvent>(
- android::util::SUBSYSTEM_SLEEP_STATE,
- wallClockTimestampNs, elapsedTimestampNs);
- statePtr->write(gEntityNames.at(result.powerEntityId));
- statePtr->write(gStateNames.at(result.powerEntityId)
- .at(stateResidency.powerEntityStateId));
- statePtr->write(stateResidency.totalStateEntryCount);
- statePtr->write(stateResidency.totalTimeInStateMs);
- statePtr->init();
- data->emplace_back(statePtr);
- }
- }
- success = true;
- });
+ Return<void> ret = gPowerStatsHalV1_0->getPowerEntityStateResidencyData(
+ {}, [&data, &success](auto results, auto status) {
+ if (status == Status::NOT_SUPPORTED) {
+ ALOGW("getPowerEntityStateResidencyData is not supported");
+ success = false;
+ return;
+ }
+ for (auto result : results) {
+ for (auto stateResidency : result.stateResidencyData) {
+ AStatsEvent* event = AStatsEventList_addStatsEvent(data);
+ AStatsEvent_setAtomId(event, android::util::SUBSYSTEM_SLEEP_STATE);
+ AStatsEvent_writeString(event,
+ gEntityNames.at(result.powerEntityId).c_str());
+ AStatsEvent_writeString(event,
+ gStateNames.at(result.powerEntityId)
+ .at(stateResidency.powerEntityStateId)
+ .c_str());
+ AStatsEvent_writeInt64(event, stateResidency.totalStateEntryCount);
+ AStatsEvent_writeInt64(event, stateResidency.totalTimeInStateMs);
+ AStatsEvent_build(event);
+ }
+ }
+ success = true;
+ });
// Intentionally not returning early here.
// bool success determines if this succeeded or not.
checkResultLocked(ret, __func__);
-
- return success;
+ if (!success) {
+ return AStatsManager_PULL_SKIP;
+ }
+ return AStatsManager_PULL_SUCCESS;
}
// The caller must be holding gPowerHalMutex.
@@ -252,56 +244,51 @@ static bool getPowerHalLocked() {
}
// The caller must be holding gPowerHalMutex.
-static bool getIPowerDataLocked(vector<shared_ptr<LogEvent>>* data) {
+static AStatsManager_PullAtomCallbackReturn getIPowerDataLocked(int32_t atomTag,
+ AStatsEventList* data) {
using android::hardware::power::V1_0::Status;
if(!getPowerHalLocked()) {
- return false;
+ return AStatsManager_PULL_SKIP;
}
- int64_t wallClockTimestampNs = getWallClockNs();
- int64_t elapsedTimestampNs = getElapsedRealtimeNs();
Return<void> ret;
ret = gPowerHalV1_0->getPlatformLowPowerStats(
- [&data, wallClockTimestampNs, elapsedTimestampNs]
- (hidl_vec<PowerStatePlatformSleepState> states, Status status) {
+ [&data](hidl_vec<PowerStatePlatformSleepState> states, Status status) {
if (status != Status::SUCCESS) return;
for (size_t i = 0; i < states.size(); i++) {
const PowerStatePlatformSleepState& state = states[i];
-
- auto statePtr = make_shared<LogEvent>(
- android::util::SUBSYSTEM_SLEEP_STATE,
- wallClockTimestampNs, elapsedTimestampNs);
- statePtr->write(state.name);
- statePtr->write("");
- statePtr->write(state.totalTransitions);
- statePtr->write(state.residencyInMsecSinceBoot);
- statePtr->init();
- data->push_back(statePtr);
- VLOG("powerstate: %s, %lld, %lld, %d", state.name.c_str(),
- (long long)state.residencyInMsecSinceBoot,
- (long long)state.totalTransitions,
- state.supportedOnlyInSuspend ? 1 : 0);
+ AStatsEvent* event = AStatsEventList_addStatsEvent(data);
+ AStatsEvent_setAtomId(event, android::util::SUBSYSTEM_SLEEP_STATE);
+ AStatsEvent_writeString(event, state.name.c_str());
+ AStatsEvent_writeString(event, "");
+ AStatsEvent_writeInt64(event, state.totalTransitions);
+ AStatsEvent_writeInt64(event, state.residencyInMsecSinceBoot);
+ AStatsEvent_build(event);
+
+ ALOGV("powerstate: %s, %lld, %lld, %d", state.name.c_str(),
+ (long long)state.residencyInMsecSinceBoot,
+ (long long)state.totalTransitions,
+ state.supportedOnlyInSuspend ? 1 : 0);
for (const auto& voter : state.voters) {
- auto voterPtr = make_shared<LogEvent>(
- android::util::SUBSYSTEM_SLEEP_STATE,
- wallClockTimestampNs, elapsedTimestampNs);
- voterPtr->write(state.name);
- voterPtr->write(voter.name);
- voterPtr->write(voter.totalNumberOfTimesVotedSinceBoot);
- voterPtr->write(voter.totalTimeInMsecVotedForSinceBoot);
- voterPtr->init();
- data->push_back(voterPtr);
- VLOG("powerstatevoter: %s, %s, %lld, %lld", state.name.c_str(),
- voter.name.c_str(),
- (long long)voter.totalTimeInMsecVotedForSinceBoot,
- (long long)voter.totalNumberOfTimesVotedSinceBoot);
+ AStatsEvent* event = AStatsEventList_addStatsEvent(data);
+ AStatsEvent_setAtomId(event, android::util::SUBSYSTEM_SLEEP_STATE);
+ AStatsEvent_writeString(event, state.name.c_str());
+ AStatsEvent_writeString(event, voter.name.c_str());
+ AStatsEvent_writeInt64(event, voter.totalNumberOfTimesVotedSinceBoot);
+ AStatsEvent_writeInt64(event, voter.totalTimeInMsecVotedForSinceBoot);
+ AStatsEvent_build(event);
+
+ ALOGV("powerstatevoter: %s, %s, %lld, %lld", state.name.c_str(),
+ voter.name.c_str(),
+ (long long)voter.totalTimeInMsecVotedForSinceBoot,
+ (long long)voter.totalNumberOfTimesVotedSinceBoot);
}
}
});
if (!checkResultLocked(ret, __func__)) {
- return false;
+ return AStatsManager_PULL_SKIP;
}
// Trying to cast to IPower 1.1, this will succeed only for devices supporting 1.1
@@ -309,41 +296,42 @@ static bool getIPowerDataLocked(vector<shared_ptr<LogEvent>>* data) {
android::hardware::power::V1_1::IPower::castFrom(gPowerHalV1_0);
if (gPowerHal_1_1 != nullptr) {
ret = gPowerHal_1_1->getSubsystemLowPowerStats(
- [&data, wallClockTimestampNs, elapsedTimestampNs]
- (hidl_vec<PowerStateSubsystem> subsystems, Status status) {
- if (status != Status::SUCCESS) return;
-
- if (subsystems.size() > 0) {
- for (size_t i = 0; i < subsystems.size(); i++) {
- const PowerStateSubsystem& subsystem = subsystems[i];
- for (size_t j = 0; j < subsystem.states.size(); j++) {
- const PowerStateSubsystemSleepState& state =
- subsystem.states[j];
- auto subsystemStatePtr = make_shared<LogEvent>(
- android::util::SUBSYSTEM_SLEEP_STATE,
- wallClockTimestampNs, elapsedTimestampNs);
- subsystemStatePtr->write(subsystem.name);
- subsystemStatePtr->write(state.name);
- subsystemStatePtr->write(state.totalTransitions);
- subsystemStatePtr->write(state.residencyInMsecSinceBoot);
- subsystemStatePtr->init();
- data->push_back(subsystemStatePtr);
- VLOG("subsystemstate: %s, %s, %lld, %lld, %lld",
- subsystem.name.c_str(), state.name.c_str(),
- (long long)state.residencyInMsecSinceBoot,
- (long long)state.totalTransitions,
- (long long)state.lastEntryTimestampMs);
+ [&data](hidl_vec<PowerStateSubsystem> subsystems, Status status) {
+ if (status != Status::SUCCESS) return;
+
+ if (subsystems.size() > 0) {
+ for (size_t i = 0; i < subsystems.size(); i++) {
+ const PowerStateSubsystem& subsystem = subsystems[i];
+ for (size_t j = 0; j < subsystem.states.size(); j++) {
+ const PowerStateSubsystemSleepState& state =
+ subsystem.states[j];
+ AStatsEvent* event = AStatsEventList_addStatsEvent(data);
+ AStatsEvent_setAtomId(event,
+ android::util::SUBSYSTEM_SLEEP_STATE);
+ AStatsEvent_writeString(event, subsystem.name.c_str());
+ AStatsEvent_writeString(event, state.name.c_str());
+ AStatsEvent_writeInt64(event, state.totalTransitions);
+ AStatsEvent_writeInt64(event, state.residencyInMsecSinceBoot);
+ AStatsEvent_build(event);
+
+ ALOGV("subsystemstate: %s, %s, %lld, %lld, %lld",
+ subsystem.name.c_str(), state.name.c_str(),
+ (long long)state.residencyInMsecSinceBoot,
+ (long long)state.totalTransitions,
+ (long long)state.lastEntryTimestampMs);
+ }
+ }
}
- }
- }
- });
+ });
}
- return true;
+ return AStatsManager_PULL_SUCCESS;
}
// The caller must be holding gPowerHalMutex.
-std::function<bool(vector<shared_ptr<LogEvent>>* data)> getPullerLocked() {
- std::function<bool(vector<shared_ptr<LogEvent>>* data)> ret = {};
+std::function<AStatsManager_PullAtomCallbackReturn(int32_t atomTag, AStatsEventList* data)>
+getPullerLocked() {
+ std::function<AStatsManager_PullAtomCallbackReturn(int32_t atomTag, AStatsEventList * data)>
+ ret = {};
// First see if power.stats HAL is available. Fall back to power HAL if
// power.stats HAL is unavailable.
@@ -358,7 +346,8 @@ std::function<bool(vector<shared_ptr<LogEvent>>* data)> getPullerLocked() {
return ret;
}
-bool SubsystemSleepStatePuller::PullInternal(vector<shared_ptr<LogEvent>>* data) {
+AStatsManager_PullAtomCallbackReturn SubsystemSleepStatePuller::Pull(int32_t atomTag,
+ AStatsEventList* data) {
std::lock_guard<std::mutex> lock(gPowerHalMutex);
if(!gPuller) {
@@ -366,13 +355,13 @@ bool SubsystemSleepStatePuller::PullInternal(vector<shared_ptr<LogEvent>>* data)
}
if(gPuller) {
- return gPuller(data);
+ return gPuller(atomTag, data);
}
ALOGE("Unable to load Power Hal or power.stats HAL");
- return false;
+ return AStatsManager_PULL_SKIP;
}
-} // namespace statsd
-} // namespace os
+} // namespace stats
+} // namespace server
} // namespace android
diff --git a/cmds/statsd/src/external/SubsystemSleepStatePuller.h b/services/core/jni/stats/SubsystemSleepStatePuller.h
index 87f5f02614a9..da9679c68a64 100644
--- a/cmds/statsd/src/external/SubsystemSleepStatePuller.h
+++ b/services/core/jni/stats/SubsystemSleepStatePuller.h
@@ -16,24 +16,22 @@
#pragma once
-#include <utils/String16.h>
-#include "StatsPuller.h"
+#include <stats_event.h>
+#include <stats_pull_atom_callback.h>
namespace android {
-namespace os {
-namespace statsd {
+namespace server {
+namespace stats {
/**
* Reads hal for sleep states
*/
-class SubsystemSleepStatePuller : public StatsPuller {
+class SubsystemSleepStatePuller {
public:
SubsystemSleepStatePuller();
-
-private:
- bool PullInternal(vector<std::shared_ptr<LogEvent>>* data) override;
+ AStatsManager_PullAtomCallbackReturn Pull(int32_t atomTag, AStatsEventList* data);
};
-} // namespace statsd
-} // namespace os
-} // namespace android
+} // namespace stats
+} // namespace server
+} // namespace android
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index d7ea2f53c286..553ec4201cc2 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -4680,12 +4680,15 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
private void ensureMinimumQuality(
int userId, ActiveAdmin admin, int minimumQuality, String operation) {
- if (admin.mPasswordPolicy.quality < minimumQuality
- && passwordQualityInvocationOrderCheckEnabled(admin.info.getPackageName(),
- userId)) {
- throw new IllegalStateException(String.format(
- "password quality should be at least %d for %s", minimumQuality, operation));
- }
+ mInjector.binderWithCleanCallingIdentity(() -> {
+ if (admin.mPasswordPolicy.quality < minimumQuality
+ && passwordQualityInvocationOrderCheckEnabled(admin.info.getPackageName(),
+ userId)) {
+ throw new IllegalStateException(String.format(
+ "password quality should be at least %d for %s",
+ minimumQuality, operation));
+ }
+ });
}
@Override
@@ -5343,7 +5346,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
synchronized (getLockObject()) {
ActiveAdmin admin = getAdminWithMinimumFailedPasswordsForWipeLocked(
userHandle, parent);
- return admin != null ? admin.getUserHandle().getIdentifier() : UserHandle.USER_NULL;
+ return admin != null ? getUserIdToWipeForFailedPasswords(admin) : UserHandle.USER_NULL;
}
}
@@ -5354,7 +5357,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
* <li>this user and all profiles that don't have their own challenge otherwise.
* </ul>
* <p>If the policy for the primary and any other profile are equal, it returns the admin for
- * the primary profile.
+ * the primary profile. Policy of a PO on an organization-owned device applies to the primary
+ * profile.
* Returns {@code null} if no participating admin has that policy set.
*/
private ActiveAdmin getAdminWithMinimumFailedPasswordsForWipeLocked(
@@ -5373,7 +5377,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
}
// We always favor the primary profile if several profiles have the same value set.
- int userId = admin.getUserHandle().getIdentifier();
+ final int userId = getUserIdToWipeForFailedPasswords(admin);
if (count == 0 ||
count > admin.maximumFailedPasswordsForWipe ||
(count == admin.maximumFailedPasswordsForWipe &&
@@ -7170,7 +7174,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
}
if (wipeData && strictestAdmin != null) {
- final int userId = strictestAdmin.getUserHandle().getIdentifier();
+ final int userId = getUserIdToWipeForFailedPasswords(strictestAdmin);
Slog.i(LOG_TAG, "Max failed password attempts policy reached for admin: "
+ strictestAdmin.info.getComponent().flattenToShortString()
+ ". Calling wipeData for user " + userId);
@@ -7201,6 +7205,17 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
}
}
+ /**
+ * Returns which user should be wiped if this admin's maximum filed password attempts policy is
+ * violated.
+ */
+ private int getUserIdToWipeForFailedPasswords(ActiveAdmin admin) {
+ final int userId = admin.getUserHandle().getIdentifier();
+ final ComponentName component = admin.info.getComponent();
+ return isProfileOwnerOfOrganizationOwnedDevice(component, userId)
+ ? getProfileParentId(userId) : userId;
+ }
+
@Override
public void reportSuccessfulPasswordAttempt(int userHandle) {
enforceFullCrossUsersPermission(userHandle);
@@ -9553,9 +9568,19 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
}
@Override
- public void setDefaultSmsApplication(ComponentName admin, String packageName) {
+ public void setDefaultSmsApplication(ComponentName admin, String packageName, boolean parent) {
Objects.requireNonNull(admin, "ComponentName is null");
- enforceDeviceOwner(admin);
+
+ if (parent) {
+ ActiveAdmin ap = getActiveAdminForCallerLocked(admin,
+ DeviceAdminInfo.USES_POLICY_ORGANIZATION_OWNED_PROFILE_OWNER, parent);
+ enforceProfileOwnerOfOrganizationOwnedDevice(ap);
+ mInjector.binderWithCleanCallingIdentity(() -> enforcePackageIsSystemPackage(
+ packageName, getProfileParentId(mInjector.userHandleGetCallingUserId())));
+ } else {
+ enforceDeviceOwner(admin);
+ }
+
mInjector.binderWithCleanCallingIdentity(() ->
SmsApplication.setDefaultApplication(packageName, mContext));
}
@@ -10778,7 +10803,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
// API cannot be used to leak if certain non-system package exists in the person
// profile.
mInjector.binderWithCleanCallingIdentity(() ->
- enforcePackageIsSystemPackage(packageName, hidden, userId));
+ enforcePackageIsSystemPackage(packageName, userId));
}
result = mInjector.binderWithCleanCallingIdentity(() -> mIPackageManager
@@ -10811,7 +10836,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
DeviceAdminInfo.USES_POLICY_ORGANIZATION_OWNED_PROFILE_OWNER, parent);
// Ensure the package provided is a system package.
mInjector.binderWithCleanCallingIdentity(() ->
- enforcePackageIsSystemPackage(packageName, false, userId));
+ enforcePackageIsSystemPackage(packageName, userId));
}
return mInjector.binderWithCleanCallingIdentity(
@@ -10819,16 +10844,9 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
}
}
- private void enforcePackageIsSystemPackage(String packageName, boolean hidden, int userId)
+ private void enforcePackageIsSystemPackage(String packageName, int userId)
throws RemoteException {
- int flags = PackageManager.MATCH_SYSTEM_ONLY;
- // If the package is currently hidden then it is considered uninstalled and
- // the MATCH_UNINSTALLED_PACKAGES flag has to be added.
- if (!hidden) {
- flags |= PackageManager.MATCH_UNINSTALLED_PACKAGES;
- }
- PackageInfo packageInfo = mIPackageManager.getPackageInfo(packageName, flags, userId);
- if (packageInfo == null || !packageInfo.applicationInfo.isSystemApp()) {
+ if (!isSystemApp(mIPackageManager, packageName, userId)) {
throw new IllegalArgumentException(
"The provided package is not a system package");
}
@@ -11580,6 +11598,11 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
millis, "DevicePolicyManagerService: setTime");
mInjector.binderWithCleanCallingIdentity(
() -> mInjector.getTimeDetector().suggestManualTime(manualTimeSuggestion));
+
+ DevicePolicyEventLogger
+ .createEvent(DevicePolicyEnums.SET_TIME)
+ .setAdmin(who)
+ .write();
return true;
}
@@ -11596,6 +11619,11 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
timeZone, "DevicePolicyManagerService: setTimeZone");
mInjector.binderWithCleanCallingIdentity(() ->
mInjector.getTimeZoneDetector().suggestManualTimeZone(manualTimeZoneSuggestion));
+
+ DevicePolicyEventLogger
+ .createEvent(DevicePolicyEnums.SET_TIME_ZONE)
+ .setAdmin(who)
+ .write();
return true;
}
@@ -15074,9 +15102,16 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
return packages;
}
- private List<String> getDefaultCrossProfilePackages() {
- return Arrays.asList(mContext.getResources()
+ @Override
+ public List<String> getDefaultCrossProfilePackages() {
+ Set<String> crossProfilePackages = new HashSet<>();
+
+ Collections.addAll(crossProfilePackages, mContext.getResources()
.getStringArray(R.array.cross_profile_apps));
+ Collections.addAll(crossProfilePackages, mContext.getResources()
+ .getStringArray(R.array.vendor_cross_profile_apps));
+
+ return new ArrayList<>(crossProfilePackages);
}
private List<ActiveAdmin> getProfileOwnerAdminsForCurrentProfileGroup() {
diff --git a/services/incremental/BinderIncrementalService.cpp b/services/incremental/BinderIncrementalService.cpp
index f1b637f516ea..0941831f5299 100644
--- a/services/incremental/BinderIncrementalService.cpp
+++ b/services/incremental/BinderIncrementalService.cpp
@@ -17,12 +17,14 @@
#include "BinderIncrementalService.h"
#include <binder/IResultReceiver.h>
+#include <binder/PermissionCache.h>
#include <incfs.h>
#include "ServiceWrappers.h"
#include "jni.h"
#include "nativehelper/JNIHelp.h"
#include "path.h"
+#include <android-base/logging.h>
using namespace std::literals;
using namespace android::incremental;
@@ -90,8 +92,13 @@ BinderIncrementalService* BinderIncrementalService::start() {
return self.get();
}
-status_t BinderIncrementalService::dump(int fd, const Vector<String16>& args) {
- return OK;
+status_t BinderIncrementalService::dump(int fd, const Vector<String16>&) {
+ static const String16 kDump("android.permission.DUMP");
+ if (!PermissionCache::checkCallingPermission(kDump)) {
+ return PERMISSION_DENIED;
+ }
+ mImpl.onDump(fd);
+ return NO_ERROR;
}
void BinderIncrementalService::onSystemReady() {
@@ -111,10 +118,9 @@ binder::Status BinderIncrementalService::openStorage(const std::string& path,
binder::Status BinderIncrementalService::createStorage(const std::string& path,
const DataLoaderParamsParcel& params,
int32_t createMode, int32_t* _aidl_return) {
- *_aidl_return =
- mImpl.createStorage(path, const_cast<DataLoaderParamsParcel&&>(params),
- android::incremental::IncrementalService::CreateOptions(
- createMode));
+ *_aidl_return = mImpl.createStorage(path, const_cast<DataLoaderParamsParcel&&>(params),
+ android::incremental::IncrementalService::CreateOptions(
+ createMode));
return ok();
}
@@ -195,7 +201,7 @@ binder::Status BinderIncrementalService::makeFile(
return ok();
}
- *_aidl_return = mImpl.makeFile(storageId, path, 0555, fileId, nfp);
+ *_aidl_return = mImpl.makeFile(storageId, path, 0777, fileId, nfp);
return ok();
}
binder::Status BinderIncrementalService::makeFileFromRange(int32_t storageId,
@@ -281,3 +287,10 @@ void Incremental_IncrementalService_OnSystemReady(jlong self) {
((android::os::incremental::BinderIncrementalService*)self)->onSystemReady();
}
}
+void Incremental_IncrementalService_OnDump(jlong self, jint fd) {
+ if (self) {
+ ((android::os::incremental::BinderIncrementalService*)self)->dump(fd, {});
+ } else {
+ dprintf(fd, "BinderIncrementalService is stopped.");
+ }
+}
diff --git a/services/incremental/BinderIncrementalService.h b/services/incremental/BinderIncrementalService.h
index a94a75a26875..8a099776b54b 100644
--- a/services/incremental/BinderIncrementalService.h
+++ b/services/incremental/BinderIncrementalService.h
@@ -20,12 +20,12 @@
#include <binder/IServiceManager.h>
#include "IncrementalService.h"
-#include "android/os/incremental/BnIncrementalManagerNative.h"
+#include "android/os/incremental/BnIncrementalService.h"
#include "incremental_service.h"
namespace android::os::incremental {
-class BinderIncrementalService : public BnIncrementalManagerNative,
+class BinderIncrementalService : public BnIncrementalService,
public BinderService<BinderIncrementalService> {
public:
BinderIncrementalService(const sp<IServiceManager> &sm);
diff --git a/services/incremental/IncrementalService.cpp b/services/incremental/IncrementalService.cpp
index 414c66c866db..dbd97cfa039a 100644
--- a/services/incremental/IncrementalService.cpp
+++ b/services/incremental/IncrementalService.cpp
@@ -30,12 +30,12 @@
#include <binder/BinderService.h>
#include <binder/ParcelFileDescriptor.h>
#include <binder/Status.h>
-
#include <openssl/sha.h>
#include <sys/stat.h>
#include <uuid/uuid.h>
#include <zlib.h>
+#include <ctime>
#include <iterator>
#include <span>
#include <stack>
@@ -170,7 +170,7 @@ auto IncrementalService::IncFsMount::makeStorage(StorageId id) -> StorageMap::it
base::StringAppendF(&name, "%.*s_%d_%d", int(constants().storagePrefix.size()),
constants().storagePrefix.data(), id, no);
auto fullName = path::join(root, constants().mount, name);
- if (auto err = incrementalService.mIncFs->makeDir(control, fullName); !err) {
+ if (auto err = incrementalService.mIncFs->makeDir(control, fullName, 0755); !err) {
std::lock_guard l(lock);
return storages.insert_or_assign(id, Storage{std::move(fullName)}).first;
} else if (err != EEXIST) {
@@ -257,6 +257,68 @@ FileId IncrementalService::idFromMetadata(std::span<const uint8_t> metadata) {
IncrementalService::~IncrementalService() = default;
+inline const char* toString(TimePoint t) {
+ using SystemClock = std::chrono::system_clock;
+ time_t time = SystemClock::to_time_t(SystemClock::now() + std::chrono::duration_cast<SystemClock::duration>(t - Clock::now()));
+ return std::ctime(&time);
+}
+
+inline const char* toString(IncrementalService::BindKind kind) {
+ switch (kind) {
+ case IncrementalService::BindKind::Temporary:
+ return "Temporary";
+ case IncrementalService::BindKind::Permanent:
+ return "Permanent";
+ }
+}
+
+void IncrementalService::onDump(int fd) {
+ dprintf(fd, "Incremental is %s\n", incfs::enabled() ? "ENABLED" : "DISABLED");
+ dprintf(fd, "Incremental dir: %s\n", mIncrementalDir.c_str());
+
+ std::unique_lock l(mLock);
+
+ dprintf(fd, "Mounts (%d):\n", int(mMounts.size()));
+ for (auto&& [id, ifs] : mMounts) {
+ const IncFsMount& mnt = *ifs.get();
+ dprintf(fd, "\t[%d]:\n", id);
+ dprintf(fd, "\t\tmountId: %d\n", mnt.mountId);
+ dprintf(fd, "\t\tnextStorageDirNo: %d\n", mnt.nextStorageDirNo.load());
+ dprintf(fd, "\t\tdataLoaderStatus: %d\n", mnt.dataLoaderStatus.load());
+ dprintf(fd, "\t\tconnectionLostTime: %s\n", toString(mnt.connectionLostTime));
+ if (mnt.savedDataLoaderParams) {
+ const auto& params = mnt.savedDataLoaderParams.value();
+ dprintf(fd, "\t\tsavedDataLoaderParams:\n");
+ dprintf(fd, "\t\t\ttype: %s\n", toString(params.type).c_str());
+ dprintf(fd, "\t\t\tpackageName: %s\n", params.packageName.c_str());
+ dprintf(fd, "\t\t\tclassName: %s\n", params.className.c_str());
+ dprintf(fd, "\t\t\targuments: %s\n", params.arguments.c_str());
+ dprintf(fd, "\t\t\tdynamicArgs: %d\n", int(params.dynamicArgs.size()));
+ }
+ dprintf(fd, "\t\tstorages (%d):\n", int(mnt.storages.size()));
+ for (auto&& [storageId, storage] : mnt.storages) {
+ dprintf(fd, "\t\t\t[%d] -> [%s]\n", storageId, storage.name.c_str());
+ }
+
+ dprintf(fd, "\t\tbindPoints (%d):\n", int(mnt.bindPoints.size()));
+ for (auto&& [target, bind] : mnt.bindPoints) {
+ dprintf(fd, "\t\t\t[%s]->[%d]:\n", target.c_str(), bind.storage);
+ dprintf(fd, "\t\t\t\tsavedFilename: %s\n", bind.savedFilename.c_str());
+ dprintf(fd, "\t\t\t\tsourceDir: %s\n", bind.sourceDir.c_str());
+ dprintf(fd, "\t\t\t\tkind: %s\n", toString(bind.kind));
+ }
+ }
+
+ dprintf(fd, "Sorted binds (%d):\n", int(mBindsByPath.size()));
+ for (auto&& [target, mountPairIt] : mBindsByPath) {
+ const auto& bind = mountPairIt->second;
+ dprintf(fd, "\t\t[%s]->[%d]:\n", target.c_str(), bind.storage);
+ dprintf(fd, "\t\t\tsavedFilename: %s\n", bind.savedFilename.c_str());
+ dprintf(fd, "\t\t\tsourceDir: %s\n", bind.sourceDir.c_str());
+ dprintf(fd, "\t\t\tkind: %s\n", toString(bind.kind));
+ }
+}
+
std::optional<std::future<void>> IncrementalService::onSystemReady() {
std::promise<void> threadFinished;
if (mSystemReady.exchange(true)) {
@@ -612,16 +674,13 @@ int IncrementalService::bind(StorageId storage, std::string_view source, std::st
if (!ifs) {
return -EINVAL;
}
- auto normSource = path::normalize(source);
std::unique_lock l(ifs->lock);
const auto storageInfo = ifs->storages.find(storage);
if (storageInfo == ifs->storages.end()) {
return -EINVAL;
}
- if (!path::startsWith(normSource, storageInfo->second.name)) {
- return -EINVAL;
- }
+ std::string normSource = normalizePathToStorage(ifs, storage, source);
l.unlock();
std::unique_lock l2(mLock, std::defer_lock);
return addBindMount(*ifs, storage, storageInfo->second.name, std::move(normSource),
@@ -670,10 +729,32 @@ int IncrementalService::unbind(StorageId storage, std::string_view target) {
return 0;
}
+std::string IncrementalService::normalizePathToStorage(const IncrementalService::IfsMountPtr ifs,
+ StorageId storage, std::string_view path) {
+ const auto storageInfo = ifs->storages.find(storage);
+ if (storageInfo == ifs->storages.end()) {
+ return {};
+ }
+ std::string normPath;
+ if (path::isAbsolute(path)) {
+ normPath = path::normalize(path);
+ } else {
+ normPath = path::normalize(path::join(storageInfo->second.name, path));
+ }
+ if (!path::startsWith(normPath, storageInfo->second.name)) {
+ return {};
+ }
+ return normPath;
+}
+
int IncrementalService::makeFile(StorageId storage, std::string_view path, int mode, FileId id,
incfs::NewFileParams params) {
if (auto ifs = getIfs(storage)) {
- auto err = mIncFs->makeFile(ifs->control, path, mode, id, params);
+ std::string normPath = normalizePathToStorage(ifs, storage, path);
+ if (normPath.empty()) {
+ return -EINVAL;
+ }
+ auto err = mIncFs->makeFile(ifs->control, normPath, mode, id, params);
if (err) {
return err;
}
@@ -689,7 +770,11 @@ int IncrementalService::makeFile(StorageId storage, std::string_view path, int m
int IncrementalService::makeDir(StorageId storageId, std::string_view path, int mode) {
if (auto ifs = getIfs(storageId)) {
- return mIncFs->makeDir(ifs->control, path, mode);
+ std::string normPath = normalizePathToStorage(ifs, storageId, path);
+ if (normPath.empty()) {
+ return -EINVAL;
+ }
+ return mIncFs->makeDir(ifs->control, normPath, mode);
}
return -EINVAL;
}
@@ -699,31 +784,40 @@ int IncrementalService::makeDirs(StorageId storageId, std::string_view path, int
if (!ifs) {
return -EINVAL;
}
-
- auto err = mIncFs->makeDir(ifs->control, path, mode);
+ std::string normPath = normalizePathToStorage(ifs, storageId, path);
+ if (normPath.empty()) {
+ return -EINVAL;
+ }
+ auto err = mIncFs->makeDir(ifs->control, normPath, mode);
if (err == -EEXIST) {
return 0;
} else if (err != -ENOENT) {
return err;
}
- if (auto err = makeDirs(storageId, path::dirname(path), mode)) {
+ if (auto err = makeDirs(storageId, path::dirname(normPath), mode)) {
return err;
}
- return mIncFs->makeDir(ifs->control, path, mode);
+ return mIncFs->makeDir(ifs->control, normPath, mode);
}
int IncrementalService::link(StorageId sourceStorageId, std::string_view oldPath,
StorageId destStorageId, std::string_view newPath) {
if (auto ifsSrc = getIfs(sourceStorageId), ifsDest = getIfs(destStorageId);
ifsSrc && ifsSrc == ifsDest) {
- return mIncFs->link(ifsSrc->control, oldPath, newPath);
+ std::string normOldPath = normalizePathToStorage(ifsSrc, sourceStorageId, oldPath);
+ std::string normNewPath = normalizePathToStorage(ifsDest, destStorageId, newPath);
+ if (normOldPath.empty() || normNewPath.empty()) {
+ return -EINVAL;
+ }
+ return mIncFs->link(ifsSrc->control, normOldPath, normNewPath);
}
return -EINVAL;
}
int IncrementalService::unlink(StorageId storage, std::string_view path) {
if (auto ifs = getIfs(storage)) {
- return mIncFs->unlink(ifs->control, path);
+ std::string normOldPath = normalizePathToStorage(ifs, storage, path);
+ return mIncFs->unlink(ifs->control, normOldPath);
}
return -EINVAL;
}
diff --git a/services/incremental/IncrementalService.h b/services/incremental/IncrementalService.h
index ca5e4dbd9231..dec9f64f2084 100644
--- a/services/incremental/IncrementalService.h
+++ b/services/incremental/IncrementalService.h
@@ -18,8 +18,8 @@
#include <android-base/strings.h>
#include <android-base/unique_fd.h>
-#include <android/os/incremental/IIncrementalManager.h>
#include <android/content/pm/DataLoaderParamsParcel.h>
+#include <android/os/incremental/IIncrementalManager.h>
#include <binder/IServiceManager.h>
#include <utils/String16.h>
#include <utils/StrongPointer.h>
@@ -90,10 +90,11 @@ public:
return idFromMetadata({(const uint8_t*)metadata.data(), metadata.size()});
}
+ void onDump(int fd);
+
std::optional<std::future<void>> onSystemReady();
- StorageId createStorage(std::string_view mountPoint,
- DataLoaderParamsParcel&& dataLoaderParams,
+ StorageId createStorage(std::string_view mountPoint, DataLoaderParamsParcel&& dataLoaderParams,
CreateOptions options = CreateOptions::Default);
StorageId createLinkedStorage(std::string_view mountPoint, StorageId linkedStorage,
CreateOptions options = CreateOptions::Default);
@@ -109,8 +110,8 @@ public:
int makeFile(StorageId storage, std::string_view path, int mode, FileId id,
incfs::NewFileParams params);
- int makeDir(StorageId storage, std::string_view path, int mode = 0555);
- int makeDirs(StorageId storage, std::string_view path, int mode = 0555);
+ int makeDir(StorageId storage, std::string_view path, int mode = 0755);
+ int makeDirs(StorageId storage, std::string_view path, int mode = 0755);
int link(StorageId sourceStorageId, std::string_view oldPath, StorageId destStorageId,
std::string_view newPath);
@@ -207,6 +208,8 @@ private:
void deleteStorage(IncFsMount& ifs);
void deleteStorageLocked(IncFsMount& ifs, std::unique_lock<std::mutex>&& ifsLock);
MountMap::iterator getStorageSlotLocked();
+ std::string normalizePathToStorage(const IfsMountPtr incfs, StorageId storage,
+ std::string_view path);
// Member variables
std::unique_ptr<VoldServiceWrapper> mVold;
diff --git a/services/incremental/ServiceWrappers.h b/services/incremental/ServiceWrappers.h
index ae3739dba2f0..f0b56729e8d7 100644
--- a/services/incremental/ServiceWrappers.h
+++ b/services/incremental/ServiceWrappers.h
@@ -70,7 +70,7 @@ public:
virtual ~IncFsWrapper() = default;
virtual ErrorCode makeFile(Control control, std::string_view path, int mode, FileId id,
NewFileParams params) const = 0;
- virtual ErrorCode makeDir(Control control, std::string_view path, int mode = 0555) const = 0;
+ virtual ErrorCode makeDir(Control control, std::string_view path, int mode) const = 0;
virtual RawMetadata getMetadata(Control control, FileId fileid) const = 0;
virtual RawMetadata getMetadata(Control control, std::string_view path) const = 0;
virtual FileId getFileId(Control control, std::string_view path) const = 0;
diff --git a/services/incremental/include/incremental_service.h b/services/incremental/include/incremental_service.h
index 7109d953ba4d..4a34b11261b9 100644
--- a/services/incremental/include/incremental_service.h
+++ b/services/incremental/include/incremental_service.h
@@ -26,6 +26,7 @@ __BEGIN_DECLS
jlong Incremental_IncrementalService_Start();
void Incremental_IncrementalService_OnSystemReady(jlong self);
+void Incremental_IncrementalService_OnDump(jlong self, jint fd);
__END_DECLS
diff --git a/services/incremental/test/IncrementalServiceTest.cpp b/services/incremental/test/IncrementalServiceTest.cpp
index 28268181f173..9cdc83e75055 100644
--- a/services/incremental/test/IncrementalServiceTest.cpp
+++ b/services/incremental/test/IncrementalServiceTest.cpp
@@ -406,29 +406,16 @@ TEST_F(IncrementalServiceTest, testMakeDirectory) {
int storageId =
mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel),
IncrementalService::CreateOptions::CreateNew);
- std::string_view dir_path("test");
- EXPECT_CALL(*mIncFs, makeDir(_, dir_path, _));
- auto res = mIncrementalService->makeDir(storageId, dir_path, 0555);
- ASSERT_EQ(res, 0);
-}
+ std::string dir_path("test");
-TEST_F(IncrementalServiceTest, testMakeDirectoryNested) {
- mVold->mountIncFsSuccess();
- mIncFs->makeFileSuccess();
- mVold->bindMountSuccess();
- mIncrementalManager->prepareDataLoaderSuccess();
- mIncrementalManager->startDataLoaderSuccess();
- TemporaryDir tempDir;
- int storageId =
- mIncrementalService->createStorage(tempDir.path, std::move(mDataLoaderParcel),
- IncrementalService::CreateOptions::CreateNew);
- auto first = "first"sv;
- auto second = "second"sv;
- std::string dir_path = std::string(first) + "/" + std::string(second);
- EXPECT_CALL(*mIncFs, makeDir(_, first, _)).Times(0);
- EXPECT_CALL(*mIncFs, makeDir(_, second, _)).Times(0);
- EXPECT_CALL(*mIncFs, makeDir(_, std::string_view(dir_path), _)).Times(1);
+ std::string tempPath(tempDir.path);
+ std::replace(tempPath.begin(), tempPath.end(), '/', '_');
+ std::string mount_dir = std::string(mRootDir.path) + "/" + tempPath.substr(1);
+ std::string normalized_dir_path = mount_dir + "/mount/st_1_0/" + dir_path;
+ // Expecting incfs to call makeDir on a path like:
+ // /data/local/tmp/TemporaryDir-06yixG/data_local_tmp_TemporaryDir-xwdFhT/mount/st_1_0/test
+ EXPECT_CALL(*mIncFs, makeDir(_, std::string_view(normalized_dir_path), _));
auto res = mIncrementalService->makeDir(storageId, dir_path, 0555);
ASSERT_EQ(res, 0);
}
@@ -446,15 +433,29 @@ TEST_F(IncrementalServiceTest, testMakeDirectories) {
auto first = "first"sv;
auto second = "second"sv;
auto third = "third"sv;
+
+ std::string tempPath(tempDir.path);
+ std::replace(tempPath.begin(), tempPath.end(), '/', '_');
+ std::string mount_dir = std::string(mRootDir.path) + "/" + tempPath.substr(1);
+
InSequence seq;
auto parent_path = std::string(first) + "/" + std::string(second);
auto dir_path = parent_path + "/" + std::string(third);
- EXPECT_CALL(*mIncFs, makeDir(_, std::string_view(dir_path), _)).WillOnce(Return(-ENOENT));
- EXPECT_CALL(*mIncFs, makeDir(_, std::string_view(parent_path), _)).WillOnce(Return(-ENOENT));
- EXPECT_CALL(*mIncFs, makeDir(_, first, _)).WillOnce(Return(0));
- EXPECT_CALL(*mIncFs, makeDir(_, std::string_view(parent_path), _)).WillOnce(Return(0));
- EXPECT_CALL(*mIncFs, makeDir(_, std::string_view(dir_path), _)).WillOnce(Return(0));
- auto res = mIncrementalService->makeDirs(storageId, dir_path, 0555);
+
+ std::string normalized_first_path = mount_dir + "/mount/st_1_0/" + std::string(first);
+ std::string normalized_parent_path = mount_dir + "/mount/st_1_0/" + parent_path;
+ std::string normalized_dir_path = mount_dir + "/mount/st_1_0/" + dir_path;
+
+ EXPECT_CALL(*mIncFs, makeDir(_, std::string_view(normalized_dir_path), _))
+ .WillOnce(Return(-ENOENT));
+ EXPECT_CALL(*mIncFs, makeDir(_, std::string_view(normalized_parent_path), _))
+ .WillOnce(Return(-ENOENT));
+ EXPECT_CALL(*mIncFs, makeDir(_, std::string_view(normalized_first_path), _))
+ .WillOnce(Return(0));
+ EXPECT_CALL(*mIncFs, makeDir(_, std::string_view(normalized_parent_path), _))
+ .WillOnce(Return(0));
+ EXPECT_CALL(*mIncFs, makeDir(_, std::string_view(normalized_dir_path), _)).WillOnce(Return(0));
+ auto res = mIncrementalService->makeDirs(storageId, normalized_dir_path, 0555);
ASSERT_EQ(res, 0);
}
} // namespace android::os::incremental
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index 4f5c1abae73c..036335ca9011 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -71,8 +71,6 @@ import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.EventLog;
import android.util.Slog;
-import android.util.StatsLog;
-import android.view.WindowManager;
import android.view.contentcapture.ContentCaptureManager;
import com.android.internal.R;
@@ -80,6 +78,7 @@ import com.android.internal.notification.SystemNotificationChannels;
import com.android.internal.os.BinderInternal;
import com.android.internal.util.ConcurrentUtils;
import com.android.internal.util.EmergencyAffordanceManager;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.widget.ILockSettings;
import com.android.server.am.ActivityManagerService;
import com.android.server.appbinding.AppBindingService;
@@ -343,6 +342,7 @@ public final class SystemServer {
private static final String START_SENSOR_SERVICE = "StartSensorService";
private static final String START_HIDL_SERVICES = "StartHidlServices";
+ private static final String START_BLOB_STORE_SERVICE = "startBlobStoreManagerService";
private static final String SYSPROP_START_COUNT = "sys.system_server.start_count";
private static final String SYSPROP_START_ELAPSED = "sys.system_server.start_elapsed";
@@ -350,6 +350,7 @@ public final class SystemServer {
private Future<?> mSensorServiceStart;
private Future<?> mZygotePreload;
+ private Future<?> mBlobStoreServiceStart;
/**
* Start the sensor service. This is a blocking call and can take time.
@@ -366,6 +367,12 @@ public final class SystemServer {
*/
private static native void initZygoteChildHeapProfiling();
+
+ /**
+ * Spawn a thread that monitors for fd leaks.
+ */
+ private static native void spawnFdLeakCheckThread();
+
/**
* The main entry point from zygote.
*/
@@ -446,8 +453,9 @@ public final class SystemServer {
final long uptimeMillis = SystemClock.elapsedRealtime();
EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_SYSTEM_RUN, uptimeMillis);
if (!mRuntimeRestart) {
- StatsLog.write(StatsLog.BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED,
- StatsLog.BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__SYSTEM_SERVER_INIT_START,
+ FrameworkStatsLog.write(FrameworkStatsLog.BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED,
+ FrameworkStatsLog
+ .BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__SYSTEM_SERVER_INIT_START,
uptimeMillis);
}
@@ -500,6 +508,11 @@ public final class SystemServer {
initZygoteChildHeapProfiling();
}
+ // Debug builds - spawn a thread to monitor for fd leaks.
+ if (Build.IS_DEBUGGABLE) {
+ spawnFdLeakCheckThread();
+ }
+
// Check whether we failed to shut down last time we tried.
// This call may not return.
performPendingShutdown();
@@ -558,8 +571,8 @@ public final class SystemServer {
if (!mRuntimeRestart && !isFirstBootOrUpgrade()) {
final long uptimeMillis = SystemClock.elapsedRealtime();
- StatsLog.write(StatsLog.BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED,
- StatsLog.BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__SYSTEM_SERVER_READY,
+ FrameworkStatsLog.write(FrameworkStatsLog.BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED,
+ FrameworkStatsLog.BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__SYSTEM_SERVER_READY,
uptimeMillis);
final long maxUptimeMillis = 60 * 1000;
if (uptimeMillis > maxUptimeMillis) {
@@ -795,8 +808,9 @@ public final class SystemServer {
// Start the package manager.
if (!mRuntimeRestart) {
- StatsLog.write(StatsLog.BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED,
- StatsLog.BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__PACKAGE_MANAGER_INIT_START,
+ FrameworkStatsLog.write(FrameworkStatsLog.BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED,
+ FrameworkStatsLog
+ .BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__PACKAGE_MANAGER_INIT_START,
SystemClock.elapsedRealtime());
}
@@ -813,8 +827,9 @@ public final class SystemServer {
mPackageManager = mSystemContext.getPackageManager();
t.traceEnd();
if (!mRuntimeRestart && !isFirstBootOrUpgrade()) {
- StatsLog.write(StatsLog.BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED,
- StatsLog.BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__PACKAGE_MANAGER_INIT_READY,
+ FrameworkStatsLog.write(FrameworkStatsLog.BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED,
+ FrameworkStatsLog
+ .BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__PACKAGE_MANAGER_INIT_READY,
SystemClock.elapsedRealtime());
}
// Manages A/B OTA dexopting. This is a bootstrap service as we need it to rename
@@ -1785,6 +1800,13 @@ public final class SystemServer {
t.traceEnd();
}
+ mBlobStoreServiceStart = SystemServerInitThreadPool.submit(() -> {
+ final TimingsTraceAndSlog traceLog = TimingsTraceAndSlog.newAsyncLog();
+ traceLog.traceBegin(START_BLOB_STORE_SERVICE);
+ mSystemServiceManager.startService(BLOB_STORE_MANAGER_SERVICE_CLASS);
+ traceLog.traceEnd();
+ }, START_BLOB_STORE_SERVICE);
+
// Dreams (interactive idle-time views, a/k/a screen savers, and doze mode)
t.traceBegin("StartDreamManager");
mSystemServiceManager.startService(DreamManagerService.class);
@@ -2029,10 +2051,6 @@ public final class SystemServer {
mSystemServiceManager.startService(ClipboardService.class);
t.traceEnd();
- t.traceBegin("StartBlobStoreManagerService");
- mSystemServiceManager.startService(BLOB_STORE_MANAGER_SERVICE_CLASS);
- t.traceEnd();
-
t.traceBegin("AppServiceManager");
mSystemServiceManager.startService(AppBindingService.Lifecycle.class);
t.traceEnd();
@@ -2083,8 +2101,7 @@ public final class SystemServer {
// propagate to it.
final Configuration config = wm.computeNewConfiguration(DEFAULT_DISPLAY);
DisplayMetrics metrics = new DisplayMetrics();
- WindowManager w = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
- w.getDefaultDisplay().getMetrics(metrics);
+ context.getDisplay().getMetrics(metrics);
context.getResources().updateConfiguration(config, metrics);
// The system context's theme may be configuration-dependent.
@@ -2151,6 +2168,9 @@ public final class SystemServer {
mSystemServiceManager.startService(APP_SEARCH_MANAGER_SERVICE_CLASS);
t.traceEnd();
+ ConcurrentUtils.waitForFutureNoInterrupt(mBlobStoreServiceStart,
+ START_BLOB_STORE_SERVICE);
+
// These are needed to propagate to the runnable below.
final NetworkManagementService networkManagementF = networkManagement;
final NetworkStatsService networkStatsF = networkStats;
diff --git a/services/people/java/com/android/server/people/SessionInfo.java b/services/people/java/com/android/server/people/SessionInfo.java
index eb08e03c14de..eaa0781f12ef 100644
--- a/services/people/java/com/android/server/people/SessionInfo.java
+++ b/services/people/java/com/android/server/people/SessionInfo.java
@@ -25,7 +25,7 @@ import android.os.RemoteException;
import android.util.Slog;
import com.android.server.people.data.DataManager;
-import com.android.server.people.prediction.ConversationPredictor;
+import com.android.server.people.prediction.AppTargetPredictor;
import java.util.List;
@@ -34,12 +34,12 @@ class SessionInfo {
private static final String TAG = "SessionInfo";
- private final ConversationPredictor mConversationPredictor;
+ private final AppTargetPredictor mAppTargetPredictor;
private final RemoteCallbackList<IPredictionCallback> mCallbacks =
new RemoteCallbackList<>();
SessionInfo(AppPredictionContext predictionContext, DataManager dataManager) {
- mConversationPredictor = new ConversationPredictor(predictionContext,
+ mAppTargetPredictor = AppTargetPredictor.create(predictionContext,
this::updatePredictions, dataManager);
}
@@ -51,8 +51,8 @@ class SessionInfo {
mCallbacks.unregister(callback);
}
- ConversationPredictor getPredictor() {
- return mConversationPredictor;
+ AppTargetPredictor getPredictor() {
+ return mAppTargetPredictor;
}
void onDestroy() {
diff --git a/services/people/java/com/android/server/people/data/CallLogQueryHelper.java b/services/people/java/com/android/server/people/data/CallLogQueryHelper.java
new file mode 100644
index 000000000000..45e0aac24ca7
--- /dev/null
+++ b/services/people/java/com/android/server/people/data/CallLogQueryHelper.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.data;
+
+import android.annotation.WorkerThread;
+import android.content.Context;
+import android.database.Cursor;
+import android.provider.CallLog.Calls;
+import android.text.TextUtils;
+import android.util.Slog;
+import android.util.SparseIntArray;
+
+import java.util.function.BiConsumer;
+
+/** A helper class that queries the call log database. */
+class CallLogQueryHelper {
+
+ private static final String TAG = "CallLogQueryHelper";
+
+ private static final SparseIntArray CALL_TYPE_TO_EVENT_TYPE = new SparseIntArray();
+
+ static {
+ CALL_TYPE_TO_EVENT_TYPE.put(Calls.INCOMING_TYPE, Event.TYPE_CALL_INCOMING);
+ CALL_TYPE_TO_EVENT_TYPE.put(Calls.OUTGOING_TYPE, Event.TYPE_CALL_OUTGOING);
+ CALL_TYPE_TO_EVENT_TYPE.put(Calls.MISSED_TYPE, Event.TYPE_CALL_MISSED);
+ }
+
+ private final Context mContext;
+ private final BiConsumer<String, Event> mEventConsumer;
+ private long mLastCallTimestamp;
+
+ /**
+ * @param context Context for accessing the content resolver.
+ * @param eventConsumer Consumes the events created from the call log records. The first input
+ * param is the normalized phone number.
+ */
+ CallLogQueryHelper(Context context, BiConsumer<String, Event> eventConsumer) {
+ mContext = context;
+ mEventConsumer = eventConsumer;
+ }
+
+ /**
+ * Queries the call log database for the new data added since {@code sinceTime} and returns
+ * true if the query runs successfully and at least one call log entry is found.
+ */
+ @WorkerThread
+ boolean querySince(long sinceTime) {
+ String[] projection = new String[] {
+ Calls.CACHED_NORMALIZED_NUMBER, Calls.DATE, Calls.DURATION, Calls.TYPE };
+ String selection = Calls.DATE + " > ?";
+ String[] selectionArgs = new String[] { Long.toString(sinceTime) };
+ boolean hasResults = false;
+ try (Cursor cursor = mContext.getContentResolver().query(
+ Calls.CONTENT_URI, projection, selection, selectionArgs,
+ Calls.DEFAULT_SORT_ORDER)) {
+ if (cursor == null) {
+ Slog.w(TAG, "Cursor is null when querying call log.");
+ return false;
+ }
+ while (cursor.moveToNext()) {
+ // Phone number
+ int numberIndex = cursor.getColumnIndex(Calls.CACHED_NORMALIZED_NUMBER);
+ String phoneNumber = cursor.getString(numberIndex);
+
+ // Date
+ int dateIndex = cursor.getColumnIndex(Calls.DATE);
+ long date = cursor.getLong(dateIndex);
+
+ // Duration
+ int durationIndex = cursor.getColumnIndex(Calls.DURATION);
+ long durationSeconds = cursor.getLong(durationIndex);
+
+ // Type
+ int typeIndex = cursor.getColumnIndex(Calls.TYPE);
+ int callType = cursor.getInt(typeIndex);
+
+ mLastCallTimestamp = Math.max(mLastCallTimestamp, date);
+ if (addEvent(phoneNumber, date, durationSeconds, callType)) {
+ hasResults = true;
+ }
+ }
+ }
+ return hasResults;
+ }
+
+ long getLastCallTimestamp() {
+ return mLastCallTimestamp;
+ }
+
+ private boolean addEvent(String phoneNumber, long date, long durationSeconds, int callType) {
+ if (!validateEvent(phoneNumber, date, callType)) {
+ return false;
+ }
+ @Event.EventType int eventType = CALL_TYPE_TO_EVENT_TYPE.get(callType);
+ Event event = new Event.Builder(date, eventType)
+ .setDurationSeconds((int) durationSeconds)
+ .build();
+ mEventConsumer.accept(phoneNumber, event);
+ return true;
+ }
+
+ private boolean validateEvent(String phoneNumber, long date, int callType) {
+ return !TextUtils.isEmpty(phoneNumber)
+ && date > 0L
+ && CALL_TYPE_TO_EVENT_TYPE.indexOfKey(callType) >= 0;
+ }
+}
diff --git a/services/people/java/com/android/server/people/data/ConversationStore.java b/services/people/java/com/android/server/people/data/ConversationStore.java
index f17e1b91cb5d..364992181f75 100644
--- a/services/people/java/com/android/server/people/data/ConversationStore.java
+++ b/services/people/java/com/android/server/people/data/ConversationStore.java
@@ -40,6 +40,9 @@ class ConversationStore {
// Phone Number -> Shortcut ID
private final Map<String, String> mPhoneNumberToShortcutIdMap = new ArrayMap<>();
+ // Notification Channel ID -> Shortcut ID
+ private final Map<String, String> mNotifChannelIdToShortcutIdMap = new ArrayMap<>();
+
void addOrUpdate(@NonNull ConversationInfo conversationInfo) {
mConversationInfoMap.put(conversationInfo.getShortcutId(), conversationInfo);
@@ -57,6 +60,11 @@ class ConversationStore {
if (phoneNumber != null) {
mPhoneNumberToShortcutIdMap.put(phoneNumber, conversationInfo.getShortcutId());
}
+
+ String notifChannelId = conversationInfo.getNotificationChannelId();
+ if (notifChannelId != null) {
+ mNotifChannelIdToShortcutIdMap.put(notifChannelId, conversationInfo.getShortcutId());
+ }
}
void deleteConversation(@NonNull String shortcutId) {
@@ -79,6 +87,11 @@ class ConversationStore {
if (phoneNumber != null) {
mPhoneNumberToShortcutIdMap.remove(phoneNumber);
}
+
+ String notifChannelId = conversationInfo.getNotificationChannelId();
+ if (notifChannelId != null) {
+ mNotifChannelIdToShortcutIdMap.remove(notifChannelId);
+ }
}
void forAllConversations(@NonNull Consumer<ConversationInfo> consumer) {
@@ -106,4 +119,9 @@ class ConversationStore {
ConversationInfo getConversationByPhoneNumber(@NonNull String phoneNumber) {
return getConversation(mPhoneNumberToShortcutIdMap.get(phoneNumber));
}
+
+ @Nullable
+ ConversationInfo getConversationByNotificationChannelId(@NonNull String notifChannelId) {
+ return getConversation(mNotifChannelIdToShortcutIdMap.get(notifChannelId));
+ }
}
diff --git a/services/people/java/com/android/server/people/data/DataManager.java b/services/people/java/com/android/server/people/data/DataManager.java
index 13cce414ea7c..7fdcf42c6364 100644
--- a/services/people/java/com/android/server/people/data/DataManager.java
+++ b/services/people/java/com/android/server/people/data/DataManager.java
@@ -24,8 +24,6 @@ import android.app.Notification;
import android.app.Person;
import android.app.prediction.AppTarget;
import android.app.prediction.AppTargetEvent;
-import android.app.usage.UsageEvents;
-import android.app.usage.UsageStatsManagerInternal;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
@@ -45,7 +43,9 @@ import android.os.Process;
import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserManager;
+import android.provider.CallLog;
import android.provider.ContactsContract.Contacts;
+import android.provider.Telephony.MmsSms;
import android.service.notification.NotificationListenerService;
import android.service.notification.StatusBarNotification;
import android.telecom.TelecomManager;
@@ -59,14 +59,15 @@ import com.android.internal.os.BackgroundThread;
import com.android.internal.telephony.SmsApplication;
import com.android.server.LocalServices;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
+import java.util.function.BiConsumer;
import java.util.function.Consumer;
+import java.util.function.Function;
/**
* A class manages the lifecycle of the conversations and associated data, and exposes the methods
@@ -77,7 +78,7 @@ public class DataManager {
private static final String PLATFORM_PACKAGE_NAME = "android";
private static final int MY_UID = Process.myUid();
private static final int MY_PID = Process.myPid();
- private static final long USAGE_STATS_QUERY_MAX_EVENT_AGE_MS = DateUtils.DAY_IN_MILLIS;
+ private static final long QUERY_EVENTS_MAX_AGE_MS = DateUtils.DAY_IN_MILLIS;
private static final long USAGE_STATS_QUERY_INTERVAL_SEC = 120L;
private final Context mContext;
@@ -90,16 +91,15 @@ public class DataManager {
private final SparseArray<ScheduledFuture<?>> mUsageStatsQueryFutures = new SparseArray<>();
private final SparseArray<NotificationListenerService> mNotificationListeners =
new SparseArray<>();
+ private final ContentObserver mCallLogContentObserver;
+ private final ContentObserver mMmsSmsContentObserver;
private ShortcutServiceInternal mShortcutServiceInternal;
- private UsageStatsManagerInternal mUsageStatsManagerInternal;
private ShortcutManager mShortcutManager;
private UserManager mUserManager;
public DataManager(Context context) {
- mContext = context;
- mInjector = new Injector();
- mUsageStatsQueryExecutor = mInjector.createScheduledExecutor();
+ this(context, new Injector());
}
@VisibleForTesting
@@ -107,12 +107,15 @@ public class DataManager {
mContext = context;
mInjector = injector;
mUsageStatsQueryExecutor = mInjector.createScheduledExecutor();
+ mCallLogContentObserver = new CallLogContentObserver(
+ BackgroundThread.getHandler());
+ mMmsSmsContentObserver = new MmsSmsContentObserver(
+ BackgroundThread.getHandler());
}
/** Initialization. Called when the system services are up running. */
public void initialize() {
mShortcutServiceInternal = LocalServices.getService(ShortcutServiceInternal.class);
- mUsageStatsManagerInternal = LocalServices.getService(UsageStatsManagerInternal.class);
mShortcutManager = mContext.getSystemService(ShortcutManager.class);
mUserManager = mContext.getSystemService(UserManager.class);
@@ -159,6 +162,18 @@ public class DataManager {
} catch (RemoteException e) {
// Should never occur for local calls.
}
+
+ if (userId == UserHandle.USER_SYSTEM) {
+ // The call log and MMS/SMS messages are shared across user profiles. So only need to
+ // register the content observers once for the primary user.
+ // TODO: Register observers after the conversations and events being loaded from disk.
+ mContext.getContentResolver().registerContentObserver(
+ CallLog.CONTENT_URI, /* notifyForDescendants= */ true,
+ mCallLogContentObserver, UserHandle.USER_SYSTEM);
+ mContext.getContentResolver().registerContentObserver(
+ MmsSms.CONTENT_URI, /* notifyForDescendants= */ false,
+ mMmsSmsContentObserver, UserHandle.USER_SYSTEM);
+ }
}
/** This method is called when a user is stopped. */
@@ -183,6 +198,10 @@ public class DataManager {
// Should never occur for local calls.
}
}
+ if (userId == UserHandle.USER_SYSTEM) {
+ mContext.getContentResolver().unregisterContentObserver(mCallLogContentObserver);
+ mContext.getContentResolver().unregisterContentObserver(mMmsSmsContentObserver);
+ }
}
/**
@@ -199,6 +218,13 @@ public class DataManager {
}
}
+ /** Gets the {@link PackageData} for the given package and user. */
+ @Nullable
+ public PackageData getPackage(@NonNull String packageName, @UserIdInt int userId) {
+ UserData userData = getUnlockedUserData(userId);
+ return userData != null ? userData.getPackageData(packageName) : null;
+ }
+
/** Gets the {@link ShortcutInfo} for the given shortcut ID. */
@Nullable
public ShortcutInfo getShortcut(@NonNull String packageName, @UserIdInt int userId,
@@ -212,20 +238,11 @@ public class DataManager {
}
/**
- * Gets the conversation {@link ShareShortcutInfo}s from all packages owned by the calling user
- * that match the specified {@link IntentFilter}.
+ * Gets the {@link ShareShortcutInfo}s from all packages owned by the calling user that match
+ * the specified {@link IntentFilter}.
*/
- public List<ShareShortcutInfo> getConversationShareTargets(
- @NonNull IntentFilter intentFilter) {
- List<ShareShortcutInfo> shareShortcuts = mShortcutManager.getShareTargets(intentFilter);
- List<ShareShortcutInfo> result = new ArrayList<>();
- for (ShareShortcutInfo shareShortcut : shareShortcuts) {
- ShortcutInfo si = shareShortcut.getShortcutInfo();
- if (getConversationInfo(si.getPackage(), si.getUserId(), si.getId()) != null) {
- result.add(shareShortcut);
- }
- }
- return result;
+ public List<ShareShortcutInfo> getShareShortcuts(@NonNull IntentFilter intentFilter) {
+ return mShortcutManager.getShareTargets(intentFilter);
}
/** Reports the {@link AppTargetEvent} from App Prediction Manager. */
@@ -236,7 +253,7 @@ public class DataManager {
if (shortcutInfo == null || event.getAction() != AppTargetEvent.ACTION_LAUNCH) {
return;
}
- PackageData packageData = getPackageData(appTarget.getPackageName(),
+ PackageData packageData = getPackage(appTarget.getPackageName(),
appTarget.getUser().getIdentifier());
if (packageData == null) {
return;
@@ -273,8 +290,18 @@ public class DataManager {
| ShortcutQuery.FLAG_MATCH_PINNED | ShortcutQuery.FLAG_MATCH_PINNED_BY_ANY_LAUNCHER;
return mShortcutServiceInternal.getShortcuts(
mInjector.getCallingUserId(), /*callingPackage=*/ PLATFORM_PACKAGE_NAME,
- /*changedSince=*/ 0, packageName, shortcutIds, /*componentName=*/ null, queryFlags,
- userId, MY_PID, MY_UID);
+ /*changedSince=*/ 0, packageName, shortcutIds, /*locusIds=*/ null,
+ /*componentName=*/ null, queryFlags, userId, MY_PID, MY_UID);
+ }
+
+ private void forAllUnlockedUsers(Consumer<UserData> consumer) {
+ for (int i = 0; i < mUserDataArray.size(); i++) {
+ int userId = mUserDataArray.keyAt(i);
+ UserData userData = mUserDataArray.get(userId);
+ if (userData.isUnlocked()) {
+ consumer.accept(userData);
+ }
+ }
}
@Nullable
@@ -283,20 +310,6 @@ public class DataManager {
return userData != null && userData.isUnlocked() ? userData : null;
}
- @Nullable
- private PackageData getPackageData(@NonNull String packageName, int userId) {
- UserData userData = getUnlockedUserData(userId);
- return userData != null ? userData.getPackageData(packageName) : null;
- }
-
- @Nullable
- private ConversationInfo getConversationInfo(@NonNull String packageName, @UserIdInt int userId,
- @NonNull String shortcutId) {
- PackageData packageData = getPackageData(packageName, userId);
- return packageData != null ? packageData.getConversationStore().getConversation(shortcutId)
- : null;
- }
-
private void updateDefaultDialer(@NonNull UserData userData) {
TelecomManager telecomManager = mContext.getSystemService(TelecomManager.class);
String defaultDialer = telecomManager != null
@@ -318,7 +331,7 @@ public class DataManager {
if (shortcutId == null) {
return null;
}
- PackageData packageData = getPackageData(sbn.getPackageName(),
+ PackageData packageData = getPackage(sbn.getPackageName(),
sbn.getUser().getIdentifier());
if (packageData == null
|| packageData.getConversationStore().getConversation(shortcutId) == null) {
@@ -370,38 +383,18 @@ public class DataManager {
}
@VisibleForTesting
- @WorkerThread
- void queryUsageStatsService(@UserIdInt int userId, long currentTime, long lastQueryTime) {
- UsageEvents usageEvents = mUsageStatsManagerInternal.queryEventsForUser(
- userId, lastQueryTime, currentTime, false);
- if (usageEvents == null) {
- return;
- }
- while (usageEvents.hasNextEvent()) {
- UsageEvents.Event e = new UsageEvents.Event();
- usageEvents.getNextEvent(e);
+ ContentObserver getContactsContentObserverForTesting(@UserIdInt int userId) {
+ return mContactsContentObservers.get(userId);
+ }
- String packageName = e.getPackageName();
- PackageData packageData = getPackageData(packageName, userId);
- if (packageData == null) {
- continue;
- }
- if (e.getEventType() == UsageEvents.Event.SHORTCUT_INVOCATION) {
- String shortcutId = e.getShortcutId();
- if (packageData.getConversationStore().getConversation(shortcutId) != null) {
- EventHistoryImpl eventHistory =
- packageData.getEventStore().getOrCreateShortcutEventHistory(
- shortcutId);
- eventHistory.addEvent(
- new Event(e.getTimeStamp(), Event.TYPE_SHORTCUT_INVOCATION));
- }
- }
- }
+ @VisibleForTesting
+ ContentObserver getCallLogContentObserverForTesting() {
+ return mCallLogContentObserver;
}
@VisibleForTesting
- ContentObserver getContactsContentObserverForTesting(@UserIdInt int userId) {
- return mContactsContentObservers.get(userId);
+ ContentObserver getMmsSmsContentObserverForTesting() {
+ return mMmsSmsContentObserver;
}
@VisibleForTesting
@@ -409,6 +402,11 @@ public class DataManager {
return mNotificationListeners.get(userId);
}
+ @VisibleForTesting
+ UserData getUserDataForTesting(@UserIdInt int userId) {
+ return mUserDataArray.get(userId);
+ }
+
/** Observer that observes the changes in the Contacts database. */
private class ContactsContentObserver extends ContentObserver {
@@ -459,6 +457,88 @@ public class DataManager {
}
}
+ /** Observer that observes the changes in the call log database. */
+ private class CallLogContentObserver extends ContentObserver implements
+ BiConsumer<String, Event> {
+
+ private final CallLogQueryHelper mCallLogQueryHelper;
+ private long mLastCallTimestamp;
+
+ private CallLogContentObserver(Handler handler) {
+ super(handler);
+ mCallLogQueryHelper = mInjector.createCallLogQueryHelper(mContext, this);
+ mLastCallTimestamp = System.currentTimeMillis() - QUERY_EVENTS_MAX_AGE_MS;
+ }
+
+ @Override
+ public void onChange(boolean selfChange) {
+ if (mCallLogQueryHelper.querySince(mLastCallTimestamp)) {
+ mLastCallTimestamp = mCallLogQueryHelper.getLastCallTimestamp();
+ }
+ }
+
+ @Override
+ public void accept(String phoneNumber, Event event) {
+ forAllUnlockedUsers(userData -> {
+ PackageData defaultDialer = userData.getDefaultDialer();
+ if (defaultDialer == null) {
+ return;
+ }
+ ConversationStore conversationStore = defaultDialer.getConversationStore();
+ if (conversationStore.getConversationByPhoneNumber(phoneNumber) == null) {
+ return;
+ }
+ EventStore eventStore = defaultDialer.getEventStore();
+ eventStore.getOrCreateCallEventHistory(phoneNumber).addEvent(event);
+ });
+ }
+ }
+
+ /** Observer that observes the changes in the MMS & SMS database. */
+ private class MmsSmsContentObserver extends ContentObserver implements
+ BiConsumer<String, Event> {
+
+ private final MmsQueryHelper mMmsQueryHelper;
+ private long mLastMmsTimestamp;
+
+ private final SmsQueryHelper mSmsQueryHelper;
+ private long mLastSmsTimestamp;
+
+ private MmsSmsContentObserver(Handler handler) {
+ super(handler);
+ mMmsQueryHelper = mInjector.createMmsQueryHelper(mContext, this);
+ mSmsQueryHelper = mInjector.createSmsQueryHelper(mContext, this);
+ mLastSmsTimestamp = mLastMmsTimestamp =
+ System.currentTimeMillis() - QUERY_EVENTS_MAX_AGE_MS;
+ }
+
+ @Override
+ public void onChange(boolean selfChange) {
+ if (mMmsQueryHelper.querySince(mLastMmsTimestamp)) {
+ mLastMmsTimestamp = mMmsQueryHelper.getLastMessageTimestamp();
+ }
+ if (mSmsQueryHelper.querySince(mLastSmsTimestamp)) {
+ mLastSmsTimestamp = mSmsQueryHelper.getLastMessageTimestamp();
+ }
+ }
+
+ @Override
+ public void accept(String phoneNumber, Event event) {
+ forAllUnlockedUsers(userData -> {
+ PackageData defaultSmsApp = userData.getDefaultSmsApp();
+ if (defaultSmsApp == null) {
+ return;
+ }
+ ConversationStore conversationStore = defaultSmsApp.getConversationStore();
+ if (conversationStore.getConversationByPhoneNumber(phoneNumber) == null) {
+ return;
+ }
+ EventStore eventStore = defaultSmsApp.getEventStore();
+ eventStore.getOrCreateSmsEventHistory(phoneNumber).addEvent(event);
+ });
+ }
+ }
+
/** Listener for the shortcut data changes. */
private class ShortcutServiceListener implements
ShortcutServiceInternal.ShortcutChangeListener {
@@ -499,19 +579,20 @@ public class DataManager {
*/
private class UsageStatsQueryRunnable implements Runnable {
- private final int mUserId;
- private long mLastQueryTime;
+ private final UsageStatsQueryHelper mUsageStatsQueryHelper;
+ private long mLastEventTimestamp;
private UsageStatsQueryRunnable(int userId) {
- mUserId = userId;
- mLastQueryTime = System.currentTimeMillis() - USAGE_STATS_QUERY_MAX_EVENT_AGE_MS;
+ mUsageStatsQueryHelper = mInjector.createUsageStatsQueryHelper(userId,
+ (packageName) -> getPackage(packageName, userId));
+ mLastEventTimestamp = System.currentTimeMillis() - QUERY_EVENTS_MAX_AGE_MS;
}
@Override
public void run() {
- long currentTime = System.currentTimeMillis();
- queryUsageStatsService(mUserId, currentTime, mLastQueryTime);
- mLastQueryTime = currentTime;
+ if (mUsageStatsQueryHelper.querySince(mLastEventTimestamp)) {
+ mLastEventTimestamp = mUsageStatsQueryHelper.getLastEventTimestamp();
+ }
}
}
@@ -552,6 +633,26 @@ public class DataManager {
return new ContactsQueryHelper(context);
}
+ CallLogQueryHelper createCallLogQueryHelper(Context context,
+ BiConsumer<String, Event> eventConsumer) {
+ return new CallLogQueryHelper(context, eventConsumer);
+ }
+
+ MmsQueryHelper createMmsQueryHelper(Context context,
+ BiConsumer<String, Event> eventConsumer) {
+ return new MmsQueryHelper(context, eventConsumer);
+ }
+
+ SmsQueryHelper createSmsQueryHelper(Context context,
+ BiConsumer<String, Event> eventConsumer) {
+ return new SmsQueryHelper(context, eventConsumer);
+ }
+
+ UsageStatsQueryHelper createUsageStatsQueryHelper(@UserIdInt int userId,
+ Function<String, PackageData> packageDataGetter) {
+ return new UsageStatsQueryHelper(userId, packageDataGetter);
+ }
+
int getCallingUserId() {
return Binder.getCallingUserHandle().getIdentifier();
}
diff --git a/services/people/java/com/android/server/people/data/Event.java b/services/people/java/com/android/server/people/data/Event.java
index c2364a295e30..81411c00db51 100644
--- a/services/people/java/com/android/server/people/data/Event.java
+++ b/services/people/java/com/android/server/people/data/Event.java
@@ -18,14 +18,12 @@ package com.android.server.people.data;
import android.annotation.IntDef;
import android.annotation.NonNull;
-import android.annotation.Nullable;
import android.text.format.DateFormat;
import android.util.ArraySet;
-import com.android.internal.util.Preconditions;
-
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.util.Objects;
import java.util.Set;
/** An event representing the interaction with a specific conversation or app. */
@@ -55,6 +53,8 @@ public class Event {
public static final int TYPE_CALL_MISSED = 12;
+ public static final int TYPE_IN_APP_CONVERSATION = 13;
+
@IntDef(prefix = { "TYPE_" }, value = {
TYPE_SHORTCUT_INVOCATION,
TYPE_NOTIFICATION_POSTED,
@@ -68,6 +68,7 @@ public class Event {
TYPE_CALL_OUTGOING,
TYPE_CALL_INCOMING,
TYPE_CALL_MISSED,
+ TYPE_IN_APP_CONVERSATION,
})
@Retention(RetentionPolicy.SOURCE)
public @interface EventType {}
@@ -95,6 +96,7 @@ public class Event {
CALL_EVENT_TYPES.add(TYPE_CALL_MISSED);
ALL_EVENT_TYPES.add(TYPE_SHORTCUT_INVOCATION);
+ ALL_EVENT_TYPES.add(TYPE_IN_APP_CONVERSATION);
ALL_EVENT_TYPES.addAll(NOTIFICATION_EVENT_TYPES);
ALL_EVENT_TYPES.addAll(SHARE_EVENT_TYPES);
ALL_EVENT_TYPES.addAll(SMS_EVENT_TYPES);
@@ -105,18 +107,18 @@ public class Event {
private final int mType;
- private final CallDetails mCallDetails;
+ private final int mDurationSeconds;
Event(long timestamp, @EventType int type) {
mTimestamp = timestamp;
mType = type;
- mCallDetails = null;
+ mDurationSeconds = 0;
}
private Event(@NonNull Builder builder) {
mTimestamp = builder.mTimestamp;
mType = builder.mType;
- mCallDetails = builder.mCallDetails;
+ mDurationSeconds = builder.mDurationSeconds;
}
public long getTimestamp() {
@@ -128,12 +130,35 @@ public class Event {
}
/**
- * Gets the {@link CallDetails} of the event. It is only available if the event type is one of
- * {@code CALL_EVENT_TYPES}, otherwise, it's always {@code null}.
+ * Gets the duration of the event in seconds. It is only available for these events:
+ * <ul>
+ * <li>{@link #TYPE_CALL_INCOMING}
+ * <li>{@link #TYPE_CALL_OUTGOING}
+ * <li>{@link #TYPE_IN_APP_CONVERSATION}
+ * </ul>
+ * <p>For the other event types, it always returns {@code 0}.
*/
- @Nullable
- public CallDetails getCallDetails() {
- return mCallDetails;
+ public int getDurationSeconds() {
+ return mDurationSeconds;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (!(obj instanceof Event)) {
+ return false;
+ }
+ Event other = (Event) obj;
+ return mTimestamp == other.mTimestamp
+ && mType == other.mType
+ && mDurationSeconds == other.mDurationSeconds;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(mTimestamp, mType, mDurationSeconds);
}
@Override
@@ -142,32 +167,13 @@ public class Event {
sb.append("Event {");
sb.append("timestamp=").append(DateFormat.format("yyyy-MM-dd HH:mm:ss", mTimestamp));
sb.append(", type=").append(mType);
- if (mCallDetails != null) {
- sb.append(", callDetails=").append(mCallDetails);
+ if (mDurationSeconds > 0) {
+ sb.append(", durationSeconds=").append(mDurationSeconds);
}
sb.append("}");
return sb.toString();
}
- /** Type-specific details of a call event. */
- public static class CallDetails {
-
- private final long mDurationSeconds;
-
- CallDetails(long durationSeconds) {
- mDurationSeconds = durationSeconds;
- }
-
- public long getDurationSeconds() {
- return mDurationSeconds;
- }
-
- @Override
- public String toString() {
- return "CallDetails {durationSeconds=" + mDurationSeconds + "}";
- }
- }
-
/** Builder class for {@link Event} objects. */
static class Builder {
@@ -175,16 +181,15 @@ public class Event {
private final int mType;
- private CallDetails mCallDetails;
+ private int mDurationSeconds;
Builder(long timestamp, @EventType int type) {
mTimestamp = timestamp;
mType = type;
}
- Builder setCallDetails(CallDetails callDetails) {
- Preconditions.checkArgument(CALL_EVENT_TYPES.contains(mType));
- mCallDetails = callDetails;
+ Builder setDurationSeconds(int durationSeconds) {
+ mDurationSeconds = durationSeconds;
return this;
}
diff --git a/services/people/java/com/android/server/people/data/MmsQueryHelper.java b/services/people/java/com/android/server/people/data/MmsQueryHelper.java
new file mode 100644
index 000000000000..1e485c082d18
--- /dev/null
+++ b/services/people/java/com/android/server/people/data/MmsQueryHelper.java
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.data;
+
+import android.annotation.Nullable;
+import android.annotation.WorkerThread;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.Telephony.BaseMmsColumns;
+import android.provider.Telephony.Mms;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.util.Slog;
+import android.util.SparseIntArray;
+
+import com.google.android.mms.pdu.PduHeaders;
+
+import java.util.function.BiConsumer;
+
+/** A helper class that queries the MMS database tables. */
+class MmsQueryHelper {
+
+ private static final String TAG = "MmsQueryHelper";
+ private static final long MILLIS_PER_SECONDS = 1000L;
+ private static final SparseIntArray MSG_BOX_TO_EVENT_TYPE = new SparseIntArray();
+
+ static {
+ MSG_BOX_TO_EVENT_TYPE.put(BaseMmsColumns.MESSAGE_BOX_INBOX, Event.TYPE_SMS_INCOMING);
+ MSG_BOX_TO_EVENT_TYPE.put(BaseMmsColumns.MESSAGE_BOX_SENT, Event.TYPE_SMS_OUTGOING);
+ }
+
+ private final Context mContext;
+ private final BiConsumer<String, Event> mEventConsumer;
+ private long mLastMessageTimestamp;
+ private String mCurrentCountryIso;
+
+ /**
+ * @param context Context for accessing the content resolver.
+ * @param eventConsumer Consumes the events created from the message records. The first input
+ * param is the normalized phone number.
+ */
+ MmsQueryHelper(Context context, BiConsumer<String, Event> eventConsumer) {
+ mContext = context;
+ mEventConsumer = eventConsumer;
+ mCurrentCountryIso = Utils.getCurrentCountryIso(mContext);
+ }
+
+ /**
+ * Queries the MMS database tables for the new data added since {@code sinceTime} (in millis)
+ * and returns true if the query runs successfully and at least one message entry is found.
+ */
+ @WorkerThread
+ boolean querySince(long sinceTime) {
+ String[] projection = new String[] { Mms._ID, Mms.DATE, Mms.MESSAGE_BOX };
+ String selection = Mms.DATE + " > ?";
+ // NOTE: The field Mms.DATE is stored in seconds, not milliseconds.
+ String[] selectionArgs = new String[] { Long.toString(sinceTime / MILLIS_PER_SECONDS) };
+ boolean hasResults = false;
+ try (Cursor cursor = mContext.getContentResolver().query(
+ Mms.CONTENT_URI, projection, selection, selectionArgs, null)) {
+ if (cursor == null) {
+ Slog.w(TAG, "Cursor is null when querying MMS table.");
+ return false;
+ }
+ while (cursor.moveToNext()) {
+ // ID
+ int msgIdIndex = cursor.getColumnIndex(Mms._ID);
+ String msgId = cursor.getString(msgIdIndex);
+
+ // Date
+ int dateIndex = cursor.getColumnIndex(Mms.DATE);
+ long date = cursor.getLong(dateIndex) * MILLIS_PER_SECONDS;
+
+ // Message box
+ int msgBoxIndex = cursor.getColumnIndex(Mms.MESSAGE_BOX);
+ int msgBox = cursor.getInt(msgBoxIndex);
+
+ mLastMessageTimestamp = Math.max(mLastMessageTimestamp, date);
+ String address = getMmsAddress(msgId, msgBox);
+ if (address != null && addEvent(address, date, msgBox)) {
+ hasResults = true;
+ }
+ }
+ }
+ return hasResults;
+ }
+
+ long getLastMessageTimestamp() {
+ return mLastMessageTimestamp;
+ }
+
+ @Nullable
+ private String getMmsAddress(String msgId, int msgBox) {
+ Uri addressUri = Mms.Addr.getAddrUriForMessage(msgId);
+ String[] projection = new String[] { Mms.Addr.ADDRESS, Mms.Addr.TYPE };
+ String address = null;
+ try (Cursor cursor = mContext.getContentResolver().query(
+ addressUri, projection, null, null, null)) {
+ if (cursor == null) {
+ Slog.w(TAG, "Cursor is null when querying MMS address table.");
+ return null;
+ }
+ while (cursor.moveToNext()) {
+ // Type
+ int typeIndex = cursor.getColumnIndex(Mms.Addr.TYPE);
+ int type = cursor.getInt(typeIndex);
+
+ if ((msgBox == BaseMmsColumns.MESSAGE_BOX_INBOX && type == PduHeaders.FROM)
+ || (msgBox == BaseMmsColumns.MESSAGE_BOX_SENT && type == PduHeaders.TO)) {
+ // Address
+ int addrIndex = cursor.getColumnIndex(Mms.Addr.ADDRESS);
+ address = cursor.getString(addrIndex);
+ }
+ }
+ }
+ if (!Mms.isPhoneNumber(address)) {
+ return null;
+ }
+ return PhoneNumberUtils.formatNumberToE164(address, mCurrentCountryIso);
+ }
+
+ private boolean addEvent(String phoneNumber, long date, int msgBox) {
+ if (!validateEvent(phoneNumber, date, msgBox)) {
+ return false;
+ }
+ @Event.EventType int eventType = MSG_BOX_TO_EVENT_TYPE.get(msgBox);
+ mEventConsumer.accept(phoneNumber, new Event(date, eventType));
+ return true;
+ }
+
+ private boolean validateEvent(String phoneNumber, long date, int msgBox) {
+ return !TextUtils.isEmpty(phoneNumber)
+ && date > 0L
+ && MSG_BOX_TO_EVENT_TYPE.indexOfKey(msgBox) >= 0;
+ }
+}
diff --git a/services/people/java/com/android/server/people/data/PackageData.java b/services/people/java/com/android/server/people/data/PackageData.java
index 9c22a7f1c484..75b870c74591 100644
--- a/services/people/java/com/android/server/people/data/PackageData.java
+++ b/services/people/java/com/android/server/people/data/PackageData.java
@@ -17,11 +17,13 @@
package com.android.server.people.data;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.content.LocusId;
import android.text.TextUtils;
import java.util.function.Consumer;
+import java.util.function.Predicate;
/** The data associated with a package. */
public class PackageData {
@@ -37,15 +39,19 @@ public class PackageData {
@NonNull
private final EventStore mEventStore;
- private boolean mIsDefaultDialer;
+ private final Predicate<String> mIsDefaultDialerPredicate;
- private boolean mIsDefaultSmsApp;
+ private final Predicate<String> mIsDefaultSmsAppPredicate;
- PackageData(@NonNull String packageName, @UserIdInt int userId) {
+ PackageData(@NonNull String packageName, @UserIdInt int userId,
+ @NonNull Predicate<String> isDefaultDialerPredicate,
+ @NonNull Predicate<String> isDefaultSmsAppPredicate) {
mPackageName = packageName;
mUserId = userId;
mConversationStore = new ConversationStore();
mEventStore = new EventStore();
+ mIsDefaultDialerPredicate = isDefaultDialerPredicate;
+ mIsDefaultSmsAppPredicate = isDefaultSmsAppPredicate;
}
@NonNull
@@ -68,6 +74,15 @@ public class PackageData {
}
/**
+ * Gets the {@link ConversationInfo} for a given shortcut ID. Returns null if such as {@link
+ * ConversationInfo} does not exist.
+ */
+ @Nullable
+ public ConversationInfo getConversationInfo(@NonNull String shortcutId) {
+ return getConversationStore().getConversation(shortcutId);
+ }
+
+ /**
* Gets the combined {@link EventHistory} for a given shortcut ID. This returned {@link
* EventHistory} has events of all types, no matter whether they're annotated with shortcut ID,
* Locus ID, or phone number etc.
@@ -114,11 +129,11 @@ public class PackageData {
}
public boolean isDefaultDialer() {
- return mIsDefaultDialer;
+ return mIsDefaultDialerPredicate.test(mPackageName);
}
public boolean isDefaultSmsApp() {
- return mIsDefaultSmsApp;
+ return mIsDefaultSmsAppPredicate.test(mPackageName);
}
@NonNull
@@ -131,14 +146,6 @@ public class PackageData {
return mEventStore;
}
- void setIsDefaultDialer(boolean value) {
- mIsDefaultDialer = value;
- }
-
- void setIsDefaultSmsApp(boolean value) {
- mIsDefaultSmsApp = value;
- }
-
void onDestroy() {
// TODO: STOPSHIP: Implements this method for the case of package being uninstalled.
}
diff --git a/services/people/java/com/android/server/people/data/SmsQueryHelper.java b/services/people/java/com/android/server/people/data/SmsQueryHelper.java
new file mode 100644
index 000000000000..c38c846bf461
--- /dev/null
+++ b/services/people/java/com/android/server/people/data/SmsQueryHelper.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.data;
+
+import android.annotation.WorkerThread;
+import android.content.Context;
+import android.database.Cursor;
+import android.provider.Telephony.Sms;
+import android.provider.Telephony.TextBasedSmsColumns;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.util.Slog;
+import android.util.SparseIntArray;
+
+import java.util.function.BiConsumer;
+
+/** A helper class that queries the SMS database table. */
+class SmsQueryHelper {
+
+ private static final String TAG = "SmsQueryHelper";
+ private static final SparseIntArray SMS_TYPE_TO_EVENT_TYPE = new SparseIntArray();
+
+ static {
+ SMS_TYPE_TO_EVENT_TYPE.put(TextBasedSmsColumns.MESSAGE_TYPE_INBOX, Event.TYPE_SMS_INCOMING);
+ SMS_TYPE_TO_EVENT_TYPE.put(TextBasedSmsColumns.MESSAGE_TYPE_SENT, Event.TYPE_SMS_OUTGOING);
+ }
+
+ private final Context mContext;
+ private final BiConsumer<String, Event> mEventConsumer;
+ private final String mCurrentCountryIso;
+ private long mLastMessageTimestamp;
+
+ /**
+ * @param context Context for accessing the content resolver.
+ * @param eventConsumer Consumes the events created from the message records. The first input
+ * param is the normalized phone number.
+ */
+ SmsQueryHelper(Context context, BiConsumer<String, Event> eventConsumer) {
+ mContext = context;
+ mEventConsumer = eventConsumer;
+ mCurrentCountryIso = Utils.getCurrentCountryIso(mContext);
+ }
+
+ /**
+ * Queries the SMS database tables for the new data added since {@code sinceTime} (in millis)
+ * and returns true if the query runs successfully and at least one message entry is found.
+ */
+ @WorkerThread
+ boolean querySince(long sinceTime) {
+ String[] projection = new String[] { Sms._ID, Sms.DATE, Sms.TYPE, Sms.ADDRESS };
+ String selection = Sms.DATE + " > ?";
+ String[] selectionArgs = new String[] { Long.toString(sinceTime) };
+ boolean hasResults = false;
+ try (Cursor cursor = mContext.getContentResolver().query(
+ Sms.CONTENT_URI, projection, selection, selectionArgs, null)) {
+ if (cursor == null) {
+ Slog.w(TAG, "Cursor is null when querying SMS table.");
+ return false;
+ }
+ while (cursor.moveToNext()) {
+ // ID
+ int msgIdIndex = cursor.getColumnIndex(Sms._ID);
+ String msgId = cursor.getString(msgIdIndex);
+
+ // Date
+ int dateIndex = cursor.getColumnIndex(Sms.DATE);
+ long date = cursor.getLong(dateIndex);
+
+ // Type
+ int typeIndex = cursor.getColumnIndex(Sms.TYPE);
+ int type = cursor.getInt(typeIndex);
+
+ // Address
+ int addressIndex = cursor.getColumnIndex(Sms.ADDRESS);
+ String address = PhoneNumberUtils.formatNumberToE164(
+ cursor.getString(addressIndex), mCurrentCountryIso);
+
+ mLastMessageTimestamp = Math.max(mLastMessageTimestamp, date);
+ if (address != null && addEvent(address, date, type)) {
+ hasResults = true;
+ }
+ }
+ }
+ return hasResults;
+ }
+
+ long getLastMessageTimestamp() {
+ return mLastMessageTimestamp;
+ }
+
+ private boolean addEvent(String phoneNumber, long date, int type) {
+ if (!validateEvent(phoneNumber, date, type)) {
+ return false;
+ }
+ @Event.EventType int eventType = SMS_TYPE_TO_EVENT_TYPE.get(type);
+ mEventConsumer.accept(phoneNumber, new Event(date, eventType));
+ return true;
+ }
+
+ private boolean validateEvent(String phoneNumber, long date, int type) {
+ return !TextUtils.isEmpty(phoneNumber)
+ && date > 0L
+ && SMS_TYPE_TO_EVENT_TYPE.indexOfKey(type) >= 0;
+ }
+}
diff --git a/services/people/java/com/android/server/people/data/UsageStatsQueryHelper.java b/services/people/java/com/android/server/people/data/UsageStatsQueryHelper.java
new file mode 100644
index 000000000000..4e37f47149b4
--- /dev/null
+++ b/services/people/java/com/android/server/people/data/UsageStatsQueryHelper.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.data;
+
+import android.annotation.NonNull;
+import android.annotation.UserIdInt;
+import android.app.usage.UsageEvents;
+import android.app.usage.UsageStatsManagerInternal;
+import android.content.ComponentName;
+import android.content.LocusId;
+import android.text.format.DateUtils;
+import android.util.ArrayMap;
+
+import com.android.server.LocalServices;
+
+import java.util.Map;
+import java.util.function.Function;
+
+/** A helper class that queries {@link UsageStatsManagerInternal}. */
+class UsageStatsQueryHelper {
+
+ private final UsageStatsManagerInternal mUsageStatsManagerInternal;
+ private final int mUserId;
+ private final Function<String, PackageData> mPackageDataGetter;
+ // Activity name -> Conversation start event (LOCUS_ID_SET)
+ private final Map<ComponentName, UsageEvents.Event> mConvoStartEvents = new ArrayMap<>();
+ private long mLastEventTimestamp;
+
+ /**
+ * @param userId The user whose events are to be queried.
+ * @param packageDataGetter The function to get {@link PackageData} with a package name.
+ */
+ UsageStatsQueryHelper(@UserIdInt int userId,
+ Function<String, PackageData> packageDataGetter) {
+ mUsageStatsManagerInternal = LocalServices.getService(UsageStatsManagerInternal.class);
+ mUserId = userId;
+ mPackageDataGetter = packageDataGetter;
+ }
+
+ /**
+ * Queries {@link UsageStatsManagerInternal} for the recent events occurred since {@code
+ * sinceTime} and adds the derived {@link Event}s into the corresponding package's event store,
+ *
+ * @return true if the query runs successfully and at least one event is found.
+ */
+ boolean querySince(long sinceTime) {
+ UsageEvents usageEvents = mUsageStatsManagerInternal.queryEventsForUser(
+ mUserId, sinceTime, System.currentTimeMillis(), false, false);
+ if (usageEvents == null) {
+ return false;
+ }
+ boolean hasEvents = false;
+ while (usageEvents.hasNextEvent()) {
+ UsageEvents.Event e = new UsageEvents.Event();
+ usageEvents.getNextEvent(e);
+
+ hasEvents = true;
+ mLastEventTimestamp = Math.max(mLastEventTimestamp, e.getTimeStamp());
+ String packageName = e.getPackageName();
+ PackageData packageData = mPackageDataGetter.apply(packageName);
+ if (packageData == null) {
+ continue;
+ }
+ switch (e.getEventType()) {
+ case UsageEvents.Event.SHORTCUT_INVOCATION:
+ addEventByShortcutId(packageData, e.getShortcutId(),
+ new Event(e.getTimeStamp(), Event.TYPE_SHORTCUT_INVOCATION));
+ break;
+ case UsageEvents.Event.NOTIFICATION_INTERRUPTION:
+ addEventByNotificationChannelId(packageData, e.getNotificationChannelId(),
+ new Event(e.getTimeStamp(), Event.TYPE_NOTIFICATION_POSTED));
+ break;
+ case UsageEvents.Event.LOCUS_ID_SET:
+ onInAppConversationEnded(packageData, e);
+ LocusId locusId = e.getLocusId() != null ? new LocusId(e.getLocusId()) : null;
+ if (locusId != null) {
+ if (packageData.getConversationStore().getConversationByLocusId(locusId)
+ != null) {
+ ComponentName activityName =
+ new ComponentName(packageName, e.getClassName());
+ mConvoStartEvents.put(activityName, e);
+ }
+ }
+ break;
+ case UsageEvents.Event.ACTIVITY_PAUSED:
+ case UsageEvents.Event.ACTIVITY_STOPPED:
+ case UsageEvents.Event.ACTIVITY_DESTROYED:
+ onInAppConversationEnded(packageData, e);
+ break;
+ }
+ }
+ return hasEvents;
+ }
+
+ long getLastEventTimestamp() {
+ return mLastEventTimestamp;
+ }
+
+ private void onInAppConversationEnded(@NonNull PackageData packageData,
+ @NonNull UsageEvents.Event endEvent) {
+ ComponentName activityName =
+ new ComponentName(endEvent.getPackageName(), endEvent.getClassName());
+ UsageEvents.Event startEvent = mConvoStartEvents.remove(activityName);
+ if (startEvent == null || startEvent.getTimeStamp() >= endEvent.getTimeStamp()) {
+ return;
+ }
+ long durationMillis = endEvent.getTimeStamp() - startEvent.getTimeStamp();
+ Event event = new Event.Builder(startEvent.getTimeStamp(), Event.TYPE_IN_APP_CONVERSATION)
+ .setDurationSeconds((int) (durationMillis / DateUtils.SECOND_IN_MILLIS))
+ .build();
+ addEventByLocusId(packageData, new LocusId(startEvent.getLocusId()), event);
+ }
+
+ private void addEventByShortcutId(PackageData packageData, String shortcutId, Event event) {
+ if (packageData.getConversationStore().getConversation(shortcutId) == null) {
+ return;
+ }
+ EventHistoryImpl eventHistory = packageData.getEventStore().getOrCreateShortcutEventHistory(
+ shortcutId);
+ eventHistory.addEvent(event);
+ }
+
+ private void addEventByLocusId(PackageData packageData, LocusId locusId, Event event) {
+ if (packageData.getConversationStore().getConversationByLocusId(locusId) == null) {
+ return;
+ }
+ EventHistoryImpl eventHistory = packageData.getEventStore().getOrCreateLocusEventHistory(
+ locusId);
+ eventHistory.addEvent(event);
+ }
+
+ private void addEventByNotificationChannelId(PackageData packageData,
+ String notificationChannelId, Event event) {
+ ConversationInfo conversationInfo =
+ packageData.getConversationStore().getConversationByNotificationChannelId(
+ notificationChannelId);
+ if (conversationInfo == null) {
+ return;
+ }
+ EventHistoryImpl eventHistory = packageData.getEventStore().getOrCreateShortcutEventHistory(
+ conversationInfo.getShortcutId());
+ eventHistory.addEvent(event);
+ }
+}
diff --git a/services/people/java/com/android/server/people/data/UserData.java b/services/people/java/com/android/server/people/data/UserData.java
index 2c16059e89ba..4e8fd16d05fd 100644
--- a/services/people/java/com/android/server/people/data/UserData.java
+++ b/services/people/java/com/android/server/people/data/UserData.java
@@ -34,6 +34,12 @@ class UserData {
private Map<String, PackageData> mPackageDataMap = new ArrayMap<>();
+ @Nullable
+ private String mDefaultDialer;
+
+ @Nullable
+ private String mDefaultSmsApp;
+
UserData(@UserIdInt int userId) {
mUserId = userId;
}
@@ -66,8 +72,7 @@ class UserData {
*/
@NonNull
PackageData getOrCreatePackageData(String packageName) {
- return mPackageDataMap.computeIfAbsent(
- packageName, key -> new PackageData(packageName, mUserId));
+ return mPackageDataMap.computeIfAbsent(packageName, key -> createPackageData(packageName));
}
/**
@@ -80,24 +85,32 @@ class UserData {
}
void setDefaultDialer(@Nullable String packageName) {
- for (PackageData packageData : mPackageDataMap.values()) {
- if (packageData.isDefaultDialer()) {
- packageData.setIsDefaultDialer(false);
- }
- if (TextUtils.equals(packageName, packageData.getPackageName())) {
- packageData.setIsDefaultDialer(true);
- }
- }
+ mDefaultDialer = packageName;
+ }
+
+ @Nullable
+ PackageData getDefaultDialer() {
+ return mDefaultDialer != null ? getPackageData(mDefaultDialer) : null;
}
void setDefaultSmsApp(@Nullable String packageName) {
- for (PackageData packageData : mPackageDataMap.values()) {
- if (packageData.isDefaultSmsApp()) {
- packageData.setIsDefaultSmsApp(false);
- }
- if (TextUtils.equals(packageName, packageData.getPackageName())) {
- packageData.setIsDefaultSmsApp(true);
- }
- }
+ mDefaultSmsApp = packageName;
+ }
+
+ @Nullable
+ PackageData getDefaultSmsApp() {
+ return mDefaultSmsApp != null ? getPackageData(mDefaultSmsApp) : null;
+ }
+
+ private PackageData createPackageData(String packageName) {
+ return new PackageData(packageName, mUserId, this::isDefaultDialer, this::isDefaultSmsApp);
+ }
+
+ private boolean isDefaultDialer(String packageName) {
+ return TextUtils.equals(mDefaultDialer, packageName);
+ }
+
+ private boolean isDefaultSmsApp(String packageName) {
+ return TextUtils.equals(mDefaultSmsApp, packageName);
}
}
diff --git a/services/people/java/com/android/server/people/data/Utils.java b/services/people/java/com/android/server/people/data/Utils.java
new file mode 100644
index 000000000000..b7529605f462
--- /dev/null
+++ b/services/people/java/com/android/server/people/data/Utils.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.data;
+
+import android.content.Context;
+import android.location.Country;
+import android.location.CountryDetector;
+
+import java.util.Locale;
+
+/** The utilities static methods for people service data package. */
+class Utils {
+
+ /**
+ * @return The ISO 3166-1 two letters country code of the country the user is in.
+ */
+ static String getCurrentCountryIso(Context context) {
+ String countryIso = null;
+ CountryDetector detector = (CountryDetector) context.getSystemService(
+ Context.COUNTRY_DETECTOR);
+ if (detector != null) {
+ Country country = detector.detectCountry();
+ if (country != null) {
+ countryIso = country.getCountryIso();
+ }
+ }
+ if (countryIso == null) {
+ countryIso = Locale.getDefault().getCountry();
+ }
+ return countryIso;
+ }
+
+ private Utils() {
+ }
+}
diff --git a/services/people/java/com/android/server/people/prediction/AppTargetPredictor.java b/services/people/java/com/android/server/people/prediction/AppTargetPredictor.java
new file mode 100644
index 000000000000..44f3e35833d9
--- /dev/null
+++ b/services/people/java/com/android/server/people/prediction/AppTargetPredictor.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.prediction;
+
+import android.annotation.MainThread;
+import android.annotation.NonNull;
+import android.annotation.WorkerThread;
+import android.app.prediction.AppPredictionContext;
+import android.app.prediction.AppTarget;
+import android.app.prediction.AppTargetEvent;
+import android.app.prediction.AppTargetId;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.people.data.DataManager;
+
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.function.Consumer;
+
+/**
+ * Predictor that predicts the {@link AppTarget} the user is most likely to open.
+ */
+public class AppTargetPredictor {
+
+ private static final String UI_SURFACE_SHARE = "share";
+
+ /** Creates a {@link AppTargetPredictor} instance based on the prediction context. */
+ public static AppTargetPredictor create(@NonNull AppPredictionContext predictionContext,
+ @NonNull Consumer<List<AppTarget>> updatePredictionsMethod,
+ @NonNull DataManager dataManager) {
+ if (UI_SURFACE_SHARE.equals(predictionContext.getUiSurface())) {
+ return new ShareTargetPredictor(
+ predictionContext, updatePredictionsMethod, dataManager);
+ }
+ return new AppTargetPredictor(predictionContext, updatePredictionsMethod, dataManager);
+ }
+
+ private final AppPredictionContext mPredictionContext;
+ private final Consumer<List<AppTarget>> mUpdatePredictionsMethod;
+ private final DataManager mDataManager;
+ private final ExecutorService mCallbackExecutor;
+
+ AppTargetPredictor(@NonNull AppPredictionContext predictionContext,
+ @NonNull Consumer<List<AppTarget>> updatePredictionsMethod,
+ @NonNull DataManager dataManager) {
+ mPredictionContext = predictionContext;
+ mUpdatePredictionsMethod = updatePredictionsMethod;
+ mDataManager = dataManager;
+ mCallbackExecutor = Executors.newSingleThreadExecutor();
+ }
+
+ /**
+ * Called by the client app to indicate a target launch.
+ */
+ @MainThread
+ public void onAppTargetEvent(AppTargetEvent event) {
+ }
+
+ /**
+ * Called by the client app to indicate a particular location has been shown to the user.
+ */
+ @MainThread
+ public void onLaunchLocationShown(String launchLocation, List<AppTargetId> targetIds) {
+ }
+
+ /**
+ * Called by the client app to request sorting of the provided targets based on the prediction
+ * ranking.
+ */
+ @MainThread
+ public void onSortAppTargets(List<AppTarget> targets, Consumer<List<AppTarget>> callback) {
+ mCallbackExecutor.execute(() -> sortTargets(targets, callback));
+ }
+
+ /**
+ * Called by the client app to request target predictions.
+ */
+ @MainThread
+ public void onRequestPredictionUpdate() {
+ mCallbackExecutor.execute(this::predictTargets);
+ }
+
+ @VisibleForTesting
+ public Consumer<List<AppTarget>> getUpdatePredictionsMethod() {
+ return mUpdatePredictionsMethod;
+ }
+
+ /** To be overridden by the subclass to predict the targets. */
+ @WorkerThread
+ void predictTargets() {
+ }
+
+ /**
+ * To be overridden by the subclass to sort the provided targets based on the prediction
+ * ranking.
+ */
+ @WorkerThread
+ void sortTargets(List<AppTarget> targets, Consumer<List<AppTarget>> callback) {
+ callback.accept(targets);
+ }
+
+ AppPredictionContext getPredictionContext() {
+ return mPredictionContext;
+ }
+
+ DataManager getDataManager() {
+ return mDataManager;
+ }
+
+ void updatePredictions(List<AppTarget> targets) {
+ mUpdatePredictionsMethod.accept(targets);
+ }
+}
diff --git a/services/people/java/com/android/server/people/prediction/ConversationPredictor.java b/services/people/java/com/android/server/people/prediction/ConversationPredictor.java
deleted file mode 100644
index ed8a56bb6435..000000000000
--- a/services/people/java/com/android/server/people/prediction/ConversationPredictor.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.people.prediction;
-
-import android.annotation.MainThread;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.app.prediction.AppPredictionContext;
-import android.app.prediction.AppTarget;
-import android.app.prediction.AppTargetEvent;
-import android.app.prediction.AppTargetId;
-import android.content.IntentFilter;
-import android.content.pm.ShortcutInfo;
-import android.content.pm.ShortcutManager.ShareShortcutInfo;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.app.ChooserActivity;
-import com.android.server.people.data.DataManager;
-import com.android.server.people.data.EventHistory;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.function.Consumer;
-
-/**
- * Predictor that predicts the conversations or apps the user is most likely to open.
- */
-public class ConversationPredictor {
-
- private static final String UI_SURFACE_SHARE = "share";
-
- private final AppPredictionContext mPredictionContext;
- private final Consumer<List<AppTarget>> mUpdatePredictionsMethod;
- private final DataManager mDataManager;
- private final ExecutorService mCallbackExecutor;
- @Nullable
- private final IntentFilter mIntentFilter;
-
- public ConversationPredictor(@NonNull AppPredictionContext predictionContext,
- @NonNull Consumer<List<AppTarget>> updatePredictionsMethod,
- @NonNull DataManager dataManager) {
- mPredictionContext = predictionContext;
- mUpdatePredictionsMethod = updatePredictionsMethod;
- mDataManager = dataManager;
- mCallbackExecutor = Executors.newSingleThreadExecutor();
- if (UI_SURFACE_SHARE.equals(mPredictionContext.getUiSurface())) {
- mIntentFilter = mPredictionContext.getExtras().getParcelable(
- ChooserActivity.APP_PREDICTION_INTENT_FILTER_KEY);
- } else {
- mIntentFilter = null;
- }
- }
-
- /**
- * Called by the client app to indicate a target launch.
- */
- @MainThread
- public void onAppTargetEvent(AppTargetEvent event) {
- mDataManager.reportAppTargetEvent(event, mIntentFilter);
- }
-
- /**
- * Called by the client app to indicate a particular location has been shown to the user.
- */
- @MainThread
- public void onLaunchLocationShown(String launchLocation, List<AppTargetId> targetIds) {}
-
- /**
- * Called by the client app to request sorting of the provided targets based on the prediction
- * ranking.
- */
- @MainThread
- public void onSortAppTargets(List<AppTarget> targets, Consumer<List<AppTarget>> callback) {
- mCallbackExecutor.execute(() -> callback.accept(targets));
- }
-
- /**
- * Called by the client app to request target predictions.
- */
- @MainThread
- public void onRequestPredictionUpdate() {
- // TODO: Re-route the call to different ranking classes for different surfaces.
- mCallbackExecutor.execute(() -> {
- List<AppTarget> targets = new ArrayList<>();
- if (mIntentFilter != null) {
- List<ShareShortcutInfo> shareShortcuts =
- mDataManager.getConversationShareTargets(mIntentFilter);
- for (ShareShortcutInfo shareShortcut : shareShortcuts) {
- ShortcutInfo shortcutInfo = shareShortcut.getShortcutInfo();
- AppTargetId appTargetId = new AppTargetId(shortcutInfo.getId());
- String shareTargetClass = shareShortcut.getTargetComponent().getClassName();
- targets.add(new AppTarget.Builder(appTargetId, shortcutInfo)
- .setClassName(shareTargetClass)
- .build());
- }
- } else {
- List<ConversationData> conversationDataList = new ArrayList<>();
- mDataManager.forAllPackages(packageData ->
- packageData.forAllConversations(conversationInfo -> {
- EventHistory eventHistory = packageData.getEventHistory(
- conversationInfo.getShortcutId());
- ConversationData conversationData = new ConversationData(
- packageData.getPackageName(), packageData.getUserId(),
- conversationInfo, eventHistory);
- conversationDataList.add(conversationData);
- }));
- for (ConversationData conversationData : conversationDataList) {
- String shortcutId = conversationData.getConversationInfo().getShortcutId();
- ShortcutInfo shortcut = mDataManager.getShortcut(
- conversationData.getPackageName(), conversationData.getUserId(),
- shortcutId);
- if (shortcut != null) {
- AppTargetId appTargetId = new AppTargetId(shortcut.getId());
- targets.add(new AppTarget.Builder(appTargetId, shortcut).build());
- }
- }
- }
- mUpdatePredictionsMethod.accept(targets);
- });
- }
-
- @VisibleForTesting
- public Consumer<List<AppTarget>> getUpdatePredictionsMethod() {
- return mUpdatePredictionsMethod;
- }
-}
diff --git a/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java b/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java
new file mode 100644
index 000000000000..280ced3a07c5
--- /dev/null
+++ b/services/people/java/com/android/server/people/prediction/ShareTargetPredictor.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.prediction;
+
+import android.annotation.MainThread;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.WorkerThread;
+import android.app.prediction.AppPredictionContext;
+import android.app.prediction.AppTarget;
+import android.app.prediction.AppTargetEvent;
+import android.app.prediction.AppTargetId;
+import android.content.IntentFilter;
+import android.content.pm.ShortcutInfo;
+import android.content.pm.ShortcutManager.ShareShortcutInfo;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.app.ChooserActivity;
+import com.android.server.people.data.ConversationInfo;
+import com.android.server.people.data.DataManager;
+import com.android.server.people.data.EventHistory;
+import com.android.server.people.data.PackageData;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Consumer;
+
+class ShareTargetPredictor extends AppTargetPredictor {
+
+ private final IntentFilter mIntentFilter;
+
+ ShareTargetPredictor(@NonNull AppPredictionContext predictionContext,
+ @NonNull Consumer<List<AppTarget>> updatePredictionsMethod,
+ @NonNull DataManager dataManager) {
+ super(predictionContext, updatePredictionsMethod, dataManager);
+ mIntentFilter = predictionContext.getExtras().getParcelable(
+ ChooserActivity.APP_PREDICTION_INTENT_FILTER_KEY);
+ }
+
+ @MainThread
+ @Override
+ public void onAppTargetEvent(AppTargetEvent event) {
+ getDataManager().reportAppTargetEvent(event, mIntentFilter);
+ }
+
+ @WorkerThread
+ @Override
+ protected void predictTargets() {
+ List<ShareTarget> shareTargets = getShareTargets();
+ // TODO: Rank the share targets with the data in ShareTarget.mConversationData.
+ List<AppTarget> appTargets = new ArrayList<>();
+ for (ShareTarget shareTarget : shareTargets) {
+
+ ShortcutInfo shortcutInfo = shareTarget.getShareShortcutInfo().getShortcutInfo();
+ AppTargetId appTargetId = new AppTargetId(shortcutInfo.getId());
+ String shareTargetClassName =
+ shareTarget.getShareShortcutInfo().getTargetComponent().getClassName();
+ AppTarget appTarget = new AppTarget.Builder(appTargetId, shortcutInfo)
+ .setClassName(shareTargetClassName)
+ .build();
+ appTargets.add(appTarget);
+ if (appTargets.size() >= getPredictionContext().getPredictedTargetCount()) {
+ break;
+ }
+ }
+ updatePredictions(appTargets);
+ }
+
+ @VisibleForTesting
+ List<ShareTarget> getShareTargets() {
+ List<ShareTarget> shareTargets = new ArrayList<>();
+ List<ShareShortcutInfo> shareShortcuts =
+ getDataManager().getShareShortcuts(mIntentFilter);
+
+ for (ShareShortcutInfo shareShortcut : shareShortcuts) {
+ ShortcutInfo shortcutInfo = shareShortcut.getShortcutInfo();
+ String packageName = shortcutInfo.getPackage();
+ int userId = shortcutInfo.getUserId();
+ PackageData packageData = getDataManager().getPackage(packageName, userId);
+
+ ConversationData conversationData = null;
+ if (packageData != null) {
+ String shortcutId = shortcutInfo.getId();
+ ConversationInfo conversationInfo =
+ packageData.getConversationInfo(shortcutId);
+
+ if (conversationInfo != null) {
+ EventHistory eventHistory = packageData.getEventHistory(shortcutId);
+ conversationData = new ConversationData(
+ packageName, userId, conversationInfo, eventHistory);
+ }
+ }
+ shareTargets.add(new ShareTarget(shareShortcut, conversationData));
+ }
+
+ return shareTargets;
+ }
+
+ @VisibleForTesting
+ static class ShareTarget {
+
+ @NonNull
+ private final ShareShortcutInfo mShareShortcutInfo;
+ @Nullable
+ private final ConversationData mConversationData;
+
+ private ShareTarget(@NonNull ShareShortcutInfo shareShortcutInfo,
+ @Nullable ConversationData conversationData) {
+ mShareShortcutInfo = shareShortcutInfo;
+ mConversationData = conversationData;
+ }
+
+ @NonNull
+ @VisibleForTesting
+ ShareShortcutInfo getShareShortcutInfo() {
+ return mShareShortcutInfo;
+ }
+
+ @Nullable
+ @VisibleForTesting
+ ConversationData getConversationData() {
+ return mConversationData;
+ }
+ }
+}
diff --git a/services/tests/mockingservicestests/Android.bp b/services/tests/mockingservicestests/Android.bp
index 3d9f11ff6d2f..339ff6b8b526 100644
--- a/services/tests/mockingservicestests/Android.bp
+++ b/services/tests/mockingservicestests/Android.bp
@@ -22,6 +22,7 @@ android_test {
"services.net",
"service-jobscheduler",
"service-permission",
+ "service-blobstore",
"androidx.test.runner",
"mockito-target-extended-minus-junit4",
"platform-test-annotations",
diff --git a/services/tests/mockingservicestests/AndroidManifest.xml b/services/tests/mockingservicestests/AndroidManifest.xml
index 0e24b0314b2d..44eb8285c7db 100644
--- a/services/tests/mockingservicestests/AndroidManifest.xml
+++ b/services/tests/mockingservicestests/AndroidManifest.xml
@@ -17,6 +17,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.frameworks.mockingservicestests">
+ <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE"/>
+ <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/>
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.HARDWARE_TEST"/>
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
diff --git a/services/tests/servicestests/assets/AppOpsUpgradeTest/appops-unversioned.xml b/services/tests/mockingservicestests/assets/AppOpsUpgradeTest/appops-unversioned.xml
index a37d84f7a08c..a37d84f7a08c 100644
--- a/services/tests/servicestests/assets/AppOpsUpgradeTest/appops-unversioned.xml
+++ b/services/tests/mockingservicestests/assets/AppOpsUpgradeTest/appops-unversioned.xml
diff --git a/services/tests/mockingservicestests/src/com/android/server/AlarmManagerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/AlarmManagerServiceTest.java
index 6a5de84266e2..bb149cf327b8 100644
--- a/services/tests/mockingservicestests/src/com/android/server/AlarmManagerServiceTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/AlarmManagerServiceTest.java
@@ -22,6 +22,7 @@ import static android.app.AlarmManager.RTC_WAKEUP;
import static android.app.usage.UsageStatsManager.STANDBY_BUCKET_ACTIVE;
import static android.app.usage.UsageStatsManager.STANDBY_BUCKET_FREQUENT;
import static android.app.usage.UsageStatsManager.STANDBY_BUCKET_RARE;
+import static android.app.usage.UsageStatsManager.STANDBY_BUCKET_RESTRICTED;
import static android.app.usage.UsageStatsManager.STANDBY_BUCKET_WORKING_SET;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doCallRealMethod;
@@ -45,6 +46,7 @@ import static com.android.server.AlarmManagerService.Constants.KEY_MAX_INTERVAL;
import static com.android.server.AlarmManagerService.Constants.KEY_MIN_FUTURITY;
import static com.android.server.AlarmManagerService.Constants.KEY_MIN_INTERVAL;
import static com.android.server.AlarmManagerService.IS_WAKEUP_MASK;
+import static com.android.server.AlarmManagerService.MILLIS_IN_DAY;
import static com.android.server.AlarmManagerService.TIME_CHANGED_MASK;
import static com.android.server.AlarmManagerService.WORKING_INDEX;
@@ -107,6 +109,7 @@ public class AlarmManagerServiceTest {
private static final String TEST_CALLING_PACKAGE = "com.android.framework.test-package";
private static final int SYSTEM_UI_UID = 123456789;
private static final int TEST_CALLING_UID = 12345;
+ private static final long RESTRICTED_WINDOW_MS = MILLIS_IN_DAY;
private long mAppStandbyWindow;
private AlarmManagerService mService;
@@ -485,13 +488,13 @@ public class AlarmManagerServiceTest {
anyLong())).thenReturn(standbyBucket);
final long firstTrigger = mNowElapsedTest + 10;
for (int i = 0; i < quota; i++) {
- setTestAlarm(ELAPSED_REALTIME_WAKEUP, mNowElapsedTest + 10 + i,
+ setTestAlarm(ELAPSED_REALTIME_WAKEUP, firstTrigger + i,
getNewMockPendingIntent());
mNowElapsedTest = mTestTimer.getElapsed();
mTestTimer.expire();
}
// This one should get deferred on set
- setTestAlarm(ELAPSED_REALTIME_WAKEUP, mNowElapsedTest + quota + 10,
+ setTestAlarm(ELAPSED_REALTIME_WAKEUP, firstTrigger + quota,
getNewMockPendingIntent());
final long expectedNextTrigger = firstTrigger + 1 + mAppStandbyWindow;
assertEquals("Incorrect next alarm trigger", expectedNextTrigger, mTestTimer.getElapsed());
@@ -503,11 +506,11 @@ public class AlarmManagerServiceTest {
anyLong())).thenReturn(standbyBucket);
final long firstTrigger = mNowElapsedTest + 10;
for (int i = 0; i < quota; i++) {
- setTestAlarm(ELAPSED_REALTIME_WAKEUP, mNowElapsedTest + 10 + i,
+ setTestAlarm(ELAPSED_REALTIME_WAKEUP, firstTrigger + i,
getNewMockPendingIntent());
}
// This one should get deferred after the latest alarm expires
- setTestAlarm(ELAPSED_REALTIME_WAKEUP, mNowElapsedTest + quota + 10,
+ setTestAlarm(ELAPSED_REALTIME_WAKEUP, firstTrigger + quota,
getNewMockPendingIntent());
for (int i = 0; i < quota; i++) {
mNowElapsedTest = mTestTimer.getElapsed();
@@ -596,6 +599,43 @@ public class AlarmManagerServiceTest {
testQuotasNoDeferral(STANDBY_BUCKET_RARE);
}
+ @Test
+ public void testRestrictedBucketAlarmsDeferredOnSet() throws Exception {
+ when(mUsageStatsManagerInternal
+ .getAppStandbyBucket(eq(TEST_CALLING_PACKAGE), anyInt(), anyLong()))
+ .thenReturn(STANDBY_BUCKET_RESTRICTED);
+ // This one should go off
+ final long firstTrigger = mNowElapsedTest + 10;
+ setTestAlarm(ELAPSED_REALTIME_WAKEUP, firstTrigger, getNewMockPendingIntent());
+ mNowElapsedTest = mTestTimer.getElapsed();
+ mTestTimer.expire();
+
+ // This one should get deferred on set
+ setTestAlarm(ELAPSED_REALTIME_WAKEUP, firstTrigger + 1, getNewMockPendingIntent());
+ final long expectedNextTrigger =
+ firstTrigger + mService.mConstants.APP_STANDBY_RESTRICTED_WINDOW;
+ assertEquals("Incorrect next alarm trigger", expectedNextTrigger, mTestTimer.getElapsed());
+ }
+
+ @Test
+ public void testRestrictedBucketAlarmsDeferredOnExpiration() throws Exception {
+ when(mUsageStatsManagerInternal
+ .getAppStandbyBucket(eq(TEST_CALLING_PACKAGE), anyInt(), anyLong()))
+ .thenReturn(STANDBY_BUCKET_RESTRICTED);
+ // This one should go off
+ final long firstTrigger = mNowElapsedTest + 10;
+ setTestAlarm(ELAPSED_REALTIME_WAKEUP, firstTrigger, getNewMockPendingIntent());
+
+ // This one should get deferred after the latest alarm expires
+ setTestAlarm(ELAPSED_REALTIME_WAKEUP, firstTrigger + 1, getNewMockPendingIntent());
+
+ mNowElapsedTest = mTestTimer.getElapsed();
+ mTestTimer.expire();
+ final long expectedNextTrigger =
+ firstTrigger + mService.mConstants.APP_STANDBY_RESTRICTED_WINDOW;
+ assertEquals("Incorrect next alarm trigger", expectedNextTrigger, mTestTimer.getElapsed());
+ }
+
private void assertAndHandleBucketChanged(int bucket) {
when(mUsageStatsManagerInternal.getAppStandbyBucket(eq(TEST_CALLING_PACKAGE), anyInt(),
anyLong())).thenReturn(bucket);
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 1985513c4290..4722b39cc652 100644
--- a/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/am/CachedAppOptimizerTest.java
@@ -122,6 +122,8 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_4);
assertThat(mCachedAppOptimizerUnderTest.mCompactStatsdSampleRate).isEqualTo(
CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE);
+ assertThat(mCachedAppOptimizerUnderTest.mFreezerStatsdSampleRate).isEqualTo(
+ CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE);
assertThat(mCachedAppOptimizerUnderTest.mFullAnonRssThrottleKb).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_FULL_RSS_THROTTLE_KB);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleBFGS).isEqualTo(
@@ -132,6 +134,8 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_COMPACT_FULL_RSS_THROTTLE_KB);
assertThat(mCachedAppOptimizerUnderTest.mFullDeltaRssThrottleKb).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_FULL_DELTA_RSS_THROTTLE_KB);
+ assertThat(mCachedAppOptimizerUnderTest.useFreezer()).isEqualTo(
+ CachedAppOptimizer.DEFAULT_USE_FREEZER);
Set<Integer> expected = new HashSet<>();
for (String s : TextUtils.split(
@@ -177,6 +181,9 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.KEY_COMPACT_STATSD_SAMPLE_RATE,
Float.toString(CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE + 0.1f), false);
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
+ CachedAppOptimizer.KEY_FREEZER_STATSD_SAMPLE_RATE,
+ Float.toString(CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE + 0.1f), false);
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
CachedAppOptimizer.KEY_COMPACT_FULL_RSS_THROTTLE_KB,
Long.toString(CachedAppOptimizer.DEFAULT_COMPACT_FULL_RSS_THROTTLE_KB + 1), false);
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
@@ -185,6 +192,11 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_COMPACT_FULL_DELTA_RSS_THROTTLE_KB + 1), false);
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
CachedAppOptimizer.KEY_COMPACT_PROC_STATE_THROTTLE, "1,2,3", false);
+ assertThat(mCachedAppOptimizerUnderTest.useFreezer()).isEqualTo(
+ CachedAppOptimizer.DEFAULT_USE_FREEZER);
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
+ CachedAppOptimizer.KEY_USE_FREEZER, CachedAppOptimizer.DEFAULT_USE_FREEZER
+ ? "false" : "true" , false);
// Then calling init will read and set that flag.
mCachedAppOptimizerUnderTest.init();
@@ -211,6 +223,8 @@ public final class CachedAppOptimizerTest {
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_6 + 1);
assertThat(mCachedAppOptimizerUnderTest.mCompactStatsdSampleRate).isEqualTo(
CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE + 0.1f);
+ assertThat(mCachedAppOptimizerUnderTest.mFreezerStatsdSampleRate).isEqualTo(
+ CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE + 0.1f);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottleBFGS).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_THROTTLE_5 + 1);
assertThat(mCachedAppOptimizerUnderTest.mCompactThrottlePersistent).isEqualTo(
@@ -218,6 +232,14 @@ public final class CachedAppOptimizerTest {
assertThat(mCachedAppOptimizerUnderTest.mFullAnonRssThrottleKb).isEqualTo(
CachedAppOptimizer.DEFAULT_COMPACT_FULL_RSS_THROTTLE_KB + 1);
assertThat(mCachedAppOptimizerUnderTest.mProcStateThrottle).containsExactly(1, 2, 3);
+
+ if (mCachedAppOptimizerUnderTest.isFreezerSupported()) {
+ if (CachedAppOptimizer.DEFAULT_USE_FREEZER) {
+ assertThat(mCachedAppOptimizerUnderTest.useFreezer()).isFalse();
+ } else {
+ assertThat(mCachedAppOptimizerUnderTest.useFreezer()).isTrue();
+ }
+ }
}
@Test
@@ -244,6 +266,46 @@ public final class CachedAppOptimizerTest {
}
@Test
+ public void useFreeze_doesNotListenToDeviceConfigChanges() throws InterruptedException {
+ if (!mCachedAppOptimizerUnderTest.isFreezerSupported()) {
+ return;
+ }
+
+ assertThat(mCachedAppOptimizerUnderTest.useFreezer()).isEqualTo(
+ CachedAppOptimizer.DEFAULT_USE_FREEZER);
+
+ // The freezer DeviceConfig property is read at boot only
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
+ CachedAppOptimizer.KEY_USE_FREEZER, "true", false);
+ mCachedAppOptimizerUnderTest.init();
+ mCountDown = new CountDownLatch(1);
+
+ // No notifications should get to the cached app optimizer.
+ assertThat(mCountDown.await(5, TimeUnit.SECONDS)).isFalse();
+
+ // The flag value has to be set correctly.
+ assertThat(mCachedAppOptimizerUnderTest.useFreezer()).isTrue();
+ // The cached app optimizer thread must be running.
+ assertThat(mCachedAppOptimizerUnderTest.mCachedAppOptimizerThread.isAlive()).isTrue();
+
+ // Set the flag the other way without rebooting. It shall not change.
+ mCountDown = new CountDownLatch(1);
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
+ CachedAppOptimizer.KEY_USE_FREEZER, "false", false);
+ assertThat(mCountDown.await(5, TimeUnit.SECONDS)).isTrue();
+ assertThat(mCachedAppOptimizerUnderTest.useFreezer()).isTrue();
+
+
+ // Now, set the flag to false and restart the cached app optimizer
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
+ CachedAppOptimizer.KEY_USE_FREEZER, "false", false);
+ mCachedAppOptimizerUnderTest.init();
+
+ // The flag value has to be set correctly.
+ assertThat(mCachedAppOptimizerUnderTest.useFreezer()).isFalse();
+ }
+
+ @Test
public void useCompaction_listensToDeviceConfigChangesBadValues() throws InterruptedException {
assertThat(mCachedAppOptimizerUnderTest.useCompaction()).isEqualTo(
CachedAppOptimizer.DEFAULT_USE_COMPACTION);
@@ -261,6 +323,22 @@ public final class CachedAppOptimizerTest {
}
@Test
+ public void useFreeze_listensToDeviceConfigChangesBadValues() throws InterruptedException {
+ assertThat(mCachedAppOptimizerUnderTest.useFreezer()).isEqualTo(
+ CachedAppOptimizer.DEFAULT_USE_FREEZER);
+
+ // When we push an invalid flag value...
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
+ CachedAppOptimizer.KEY_USE_FREEZER, "foobar", false);
+
+ mCachedAppOptimizerUnderTest.init();
+
+ // Then we set the default.
+ assertThat(mCachedAppOptimizerUnderTest.useFreezer()).isEqualTo(
+ CachedAppOptimizer.DEFAULT_USE_FREEZER);
+ }
+
+ @Test
public void compactAction_listensToDeviceConfigChanges() throws InterruptedException {
mCachedAppOptimizerUnderTest.init();
@@ -482,6 +560,17 @@ public final class CachedAppOptimizerTest {
// Then that override is reflected in the compactor.
assertThat(mCachedAppOptimizerUnderTest.mCompactStatsdSampleRate).isEqualTo(
CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE + 0.1f);
+
+ // When we override mFreezerStatsdSampleRate with a reasonable value ...
+ mCountDown = new CountDownLatch(1);
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
+ CachedAppOptimizer.KEY_FREEZER_STATSD_SAMPLE_RATE,
+ Float.toString(CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE + 0.1f), false);
+ assertThat(mCountDown.await(5, TimeUnit.SECONDS)).isTrue();
+
+ // Then that override is reflected in the compactor.
+ assertThat(mCachedAppOptimizerUnderTest.mFreezerStatsdSampleRate).isEqualTo(
+ CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE + 0.1f);
}
@Test
@@ -498,6 +587,16 @@ public final class CachedAppOptimizerTest {
// Then that override is reflected in the compactor.
assertThat(mCachedAppOptimizerUnderTest.mCompactStatsdSampleRate).isEqualTo(
CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE);
+
+ // When we override mFreezerStatsdSampleRate with an unreasonable value ...
+ mCountDown = new CountDownLatch(1);
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
+ CachedAppOptimizer.KEY_FREEZER_STATSD_SAMPLE_RATE, "foo", false);
+ assertThat(mCountDown.await(5, TimeUnit.SECONDS)).isTrue();
+
+ // Then that override is reflected in the freezer.
+ assertThat(mCachedAppOptimizerUnderTest.mFreezerStatsdSampleRate).isEqualTo(
+ CachedAppOptimizer.DEFAULT_STATSD_SAMPLE_RATE);
}
@Test
@@ -523,6 +622,25 @@ public final class CachedAppOptimizerTest {
// Then the values is capped in the range.
assertThat(mCachedAppOptimizerUnderTest.mCompactStatsdSampleRate).isEqualTo(1.0f);
+
+ // When we override mFreezerStatsdSampleRate with an value outside of [0..1]...
+ mCountDown = new CountDownLatch(1);
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
+ CachedAppOptimizer.KEY_FREEZER_STATSD_SAMPLE_RATE,
+ Float.toString(-1.0f), false);
+ assertThat(mCountDown.await(5, TimeUnit.SECONDS)).isTrue();
+
+ // Then the values is capped in the range.
+ assertThat(mCachedAppOptimizerUnderTest.mFreezerStatsdSampleRate).isEqualTo(0.0f);
+
+ mCountDown = new CountDownLatch(1);
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ACTIVITY_MANAGER,
+ CachedAppOptimizer.KEY_FREEZER_STATSD_SAMPLE_RATE,
+ Float.toString(1.01f), false);
+ assertThat(mCountDown.await(5, TimeUnit.SECONDS)).isTrue();
+
+ // Then the values is capped in the range.
+ assertThat(mCachedAppOptimizerUnderTest.mFreezerStatsdSampleRate).isEqualTo(1.0f);
}
@Test
diff --git a/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java
index 155de3bc0266..2d5fa237f6b7 100644
--- a/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java
@@ -101,9 +101,8 @@ public class AppOpsServiceTest {
private StaticMockitoSession mMockingSession;
private void setupAppOpsService() {
- mAppOpsService = new AppOpsService(mAppOpsFile, mHandler);
+ mAppOpsService = new AppOpsService(mAppOpsFile, mHandler, spy(sContext));
mAppOpsService.mHistoricalRegistry.systemReady(sContext.getContentResolver());
- mAppOpsService.mContext = spy(sContext);
// Always approve all permission checks
doNothing().when(mAppOpsService.mContext).enforcePermission(anyString(), anyInt(),
diff --git a/services/tests/servicestests/src/com/android/server/appop/AppOpsUpgradeTest.java b/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsUpgradeTest.java
index 66d2baba2909..e48b67167cdf 100644
--- a/services/tests/servicestests/src/com/android/server/appop/AppOpsUpgradeTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsUpgradeTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,9 +19,17 @@ package com.android.server.appop;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.nullable;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
import android.app.AppOpsManager;
import android.content.Context;
+import android.content.pm.PackageManager;
import android.content.res.AssetManager;
import android.os.Handler;
import android.os.HandlerThread;
@@ -133,10 +141,24 @@ public class AppOpsUpgradeTest {
AppOpsDataParser parser = new AppOpsDataParser(mAppOpsFile);
assertTrue(parser.parse());
assertEquals(AppOpsDataParser.NO_VERSION, parser.mVersion);
- AppOpsService testService = new AppOpsService(mAppOpsFile, mHandler); // trigger upgrade
+
+ // Use mock context and package manager to fake permision package manager calls.
+ Context testContext = spy(mContext);
+
+ // Pretent everybody has all permissions
+ doNothing().when(testContext).enforcePermission(anyString(), anyInt(), anyInt(),
+ nullable(String.class));
+
+ PackageManager testPM = mock(PackageManager.class);
+ when(testContext.getPackageManager()).thenReturn(testPM);
+
+ // Stub out package calls to disable AppOpsService#updatePermissionRevokedCompat
+ when(testPM.getPackagesForUid(anyInt())).thenReturn(null);
+
+ AppOpsService testService = spy(
+ new AppOpsService(mAppOpsFile, mHandler, testContext)); // trigger upgrade
assertSameModes(testService.mUidStates, AppOpsManager.OP_RUN_IN_BACKGROUND,
AppOpsManager.OP_RUN_ANY_IN_BACKGROUND);
- testService.mContext = mContext;
mHandler.removeCallbacks(testService.mWriteRunner);
testService.writeState();
assertTrue(parser.parse());
diff --git a/services/tests/mockingservicestests/src/com/android/server/blob/BlobStoreManagerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/blob/BlobStoreManagerServiceTest.java
new file mode 100644
index 000000000000..16dde4203e91
--- /dev/null
+++ b/services/tests/mockingservicestests/src/com/android/server/blob/BlobStoreManagerServiceTest.java
@@ -0,0 +1,342 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.blob;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
+import static com.android.server.blob.BlobStoreConfig.SESSION_EXPIRY_TIMEOUT_MILLIS;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+import android.app.blob.BlobHandle;
+import android.content.Context;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.os.UserHandle;
+import android.platform.test.annotations.Presubmit;
+import android.util.ArrayMap;
+import android.util.LongSparseArray;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.server.blob.BlobStoreManagerService.Injector;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoSession;
+import org.mockito.quality.Strictness;
+
+import java.io.File;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+@Presubmit
+public class BlobStoreManagerServiceTest {
+ private Context mContext;
+ private Handler mHandler;
+ private BlobStoreManagerService mService;
+
+ private MockitoSession mMockitoSession;
+
+ @Mock
+ private File mBlobsDir;
+
+ private LongSparseArray<BlobStoreSession> mUserSessions;
+ private ArrayMap<BlobHandle, BlobMetadata> mUserBlobs;
+
+ private static final String TEST_PKG1 = "com.example1";
+ private static final String TEST_PKG2 = "com.example2";
+ private static final String TEST_PKG3 = "com.example3";
+
+ private static final int TEST_UID1 = 10001;
+ private static final int TEST_UID2 = 10002;
+ private static final int TEST_UID3 = 10003;
+
+ @Before
+ public void setUp() {
+ // Share classloader to allow package private access.
+ System.setProperty("dexmaker.share_classloader", "true");
+
+ mMockitoSession = mockitoSession()
+ .initMocks(this)
+ .strictness(Strictness.LENIENT)
+ .mockStatic(BlobStoreConfig.class)
+ .startMocking();
+
+ doReturn(mBlobsDir).when(() -> BlobStoreConfig.getBlobsDir());
+ doReturn(true).when(mBlobsDir).exists();
+ doReturn(new File[0]).when(mBlobsDir).listFiles();
+
+ mContext = InstrumentationRegistry.getTargetContext();
+ mHandler = new TestHandler(Looper.getMainLooper());
+ mService = new BlobStoreManagerService(mContext, new TestInjector());
+ mUserSessions = new LongSparseArray<>();
+ mUserBlobs = new ArrayMap<>();
+
+ mService.addUserSessionsForTest(mUserSessions, UserHandle.myUserId());
+ mService.addUserBlobsForTest(mUserBlobs, UserHandle.myUserId());
+ }
+
+ @After
+ public void tearDown() {
+ if (mMockitoSession != null) {
+ mMockitoSession.finishMocking();
+ }
+ }
+
+ @Test
+ public void testHandlePackageRemoved() throws Exception {
+ // Setup sessions
+ final File sessionFile1 = mock(File.class);
+ final long sessionId1 = 11;
+ final BlobStoreSession session1 = createBlobStoreSessionMock(TEST_PKG1, TEST_UID1,
+ sessionId1, sessionFile1);
+ mUserSessions.append(sessionId1, session1);
+
+ final File sessionFile2 = mock(File.class);
+ final long sessionId2 = 25;
+ final BlobStoreSession session2 = createBlobStoreSessionMock(TEST_PKG2, TEST_UID2,
+ sessionId2, sessionFile2);
+ mUserSessions.append(sessionId2, session2);
+
+ final File sessionFile3 = mock(File.class);
+ final long sessionId3 = 37;
+ final BlobStoreSession session3 = createBlobStoreSessionMock(TEST_PKG3, TEST_UID3,
+ sessionId3, sessionFile3);
+ mUserSessions.append(sessionId3, session3);
+
+ final File sessionFile4 = mock(File.class);
+ final long sessionId4 = 48;
+ final BlobStoreSession session4 = createBlobStoreSessionMock(TEST_PKG1, TEST_UID1,
+ sessionId4, sessionFile4);
+ mUserSessions.append(sessionId4, session4);
+
+ // Setup blobs
+ final long blobId1 = 978;
+ final File blobFile1 = mock(File.class);
+ final BlobHandle blobHandle1 = BlobHandle.createWithSha256("digest1".getBytes(),
+ "label1", System.currentTimeMillis(), "tag1");
+ final BlobMetadata blobMetadata1 = createBlobMetadataMock(blobId1, blobFile1, true);
+ mUserBlobs.put(blobHandle1, blobMetadata1);
+
+ final long blobId2 = 347;
+ final File blobFile2 = mock(File.class);
+ final BlobHandle blobHandle2 = BlobHandle.createWithSha256("digest2".getBytes(),
+ "label2", System.currentTimeMillis(), "tag2");
+ final BlobMetadata blobMetadata2 = createBlobMetadataMock(blobId2, blobFile2, false);
+ mUserBlobs.put(blobHandle2, blobMetadata2);
+
+ mService.addKnownIdsForTest(sessionId1, sessionId2, sessionId3, sessionId4,
+ blobId1, blobId2);
+
+ // Invoke test method
+ mService.handlePackageRemoved(TEST_PKG1, TEST_UID1);
+
+ // Verify sessions are removed
+ verify(sessionFile1).delete();
+ verify(sessionFile2, never()).delete();
+ verify(sessionFile3, never()).delete();
+ verify(sessionFile4).delete();
+
+ assertThat(mUserSessions.size()).isEqualTo(2);
+ assertThat(mUserSessions.get(sessionId1)).isNull();
+ assertThat(mUserSessions.get(sessionId2)).isNotNull();
+ assertThat(mUserSessions.get(sessionId3)).isNotNull();
+ assertThat(mUserSessions.get(sessionId4)).isNull();
+
+ // Verify blobs are removed
+ verify(blobMetadata1).removeCommitter(TEST_PKG1, TEST_UID1);
+ verify(blobMetadata1).removeLeasee(TEST_PKG1, TEST_UID1);
+ verify(blobMetadata2).removeCommitter(TEST_PKG1, TEST_UID1);
+ verify(blobMetadata2).removeLeasee(TEST_PKG1, TEST_UID1);
+
+ verify(blobFile1, never()).delete();
+ verify(blobFile2).delete();
+
+ assertThat(mUserBlobs.size()).isEqualTo(1);
+ assertThat(mUserBlobs.get(blobHandle1)).isNotNull();
+ assertThat(mUserBlobs.get(blobHandle2)).isNull();
+
+ assertThat(mService.getKnownIdsForTest()).containsExactly(
+ sessionId2, sessionId3, blobId1);
+ }
+
+ @Test
+ public void testHandleIdleMaintenance_deleteUnknownBlobs() throws Exception {
+ // Setup blob files
+ final long testId1 = 286;
+ final File file1 = mock(File.class);
+ doReturn(String.valueOf(testId1)).when(file1).getName();
+ final long testId2 = 349;
+ final File file2 = mock(File.class);
+ doReturn(String.valueOf(testId2)).when(file2).getName();
+ final long testId3 = 7355;
+ final File file3 = mock(File.class);
+ doReturn(String.valueOf(testId3)).when(file3).getName();
+
+ doReturn(new File[] {file1, file2, file3}).when(mBlobsDir).listFiles();
+ mService.addKnownIdsForTest(testId1, testId3);
+
+ // Invoke test method
+ mService.handleIdleMaintenanceLocked();
+
+ // Verify unknown blobs are delete
+ verify(file1, never()).delete();
+ verify(file2).delete();
+ verify(file3, never()).delete();
+ }
+
+ @Test
+ public void testHandleIdleMaintenance_deleteStaleSessions() throws Exception {
+ // Setup sessions
+ final File sessionFile1 = mock(File.class);
+ doReturn(System.currentTimeMillis() - SESSION_EXPIRY_TIMEOUT_MILLIS + 1000)
+ .when(sessionFile1).lastModified();
+ final long sessionId1 = 342;
+ final BlobHandle blobHandle1 = mock(BlobHandle.class);
+ doReturn(System.currentTimeMillis() - 1000).when(blobHandle1).getExpiryTimeMillis();
+ final BlobStoreSession session1 = createBlobStoreSessionMock(TEST_PKG1, TEST_UID1,
+ sessionId1, sessionFile1, blobHandle1);
+ mUserSessions.append(sessionId1, session1);
+
+ final File sessionFile2 = mock(File.class);
+ doReturn(System.currentTimeMillis() - 20000)
+ .when(sessionFile2).lastModified();
+ final long sessionId2 = 4597;
+ final BlobHandle blobHandle2 = mock(BlobHandle.class);
+ doReturn(System.currentTimeMillis() + 20000).when(blobHandle2).getExpiryTimeMillis();
+ final BlobStoreSession session2 = createBlobStoreSessionMock(TEST_PKG2, TEST_UID2,
+ sessionId2, sessionFile2, blobHandle2);
+ mUserSessions.append(sessionId2, session2);
+
+ final File sessionFile3 = mock(File.class);
+ doReturn(System.currentTimeMillis() - SESSION_EXPIRY_TIMEOUT_MILLIS - 2000)
+ .when(sessionFile3).lastModified();
+ final long sessionId3 = 9484;
+ final BlobHandle blobHandle3 = mock(BlobHandle.class);
+ doReturn(System.currentTimeMillis() + 30000).when(blobHandle3).getExpiryTimeMillis();
+ final BlobStoreSession session3 = createBlobStoreSessionMock(TEST_PKG3, TEST_UID3,
+ sessionId3, sessionFile3, blobHandle3);
+ mUserSessions.append(sessionId3, session3);
+
+ mService.addKnownIdsForTest(sessionId1, sessionId2, sessionId3);
+
+ // Invoke test method
+ mService.handleIdleMaintenanceLocked();
+
+ // Verify stale sessions are removed
+ verify(sessionFile1).delete();
+ verify(sessionFile2, never()).delete();
+ verify(sessionFile3).delete();
+
+ assertThat(mUserSessions.size()).isEqualTo(1);
+ assertThat(mUserSessions.get(sessionId2)).isNotNull();
+
+ assertThat(mService.getKnownIdsForTest()).containsExactly(sessionId2);
+ }
+
+ @Test
+ public void testHandleIdleMaintenance_deleteStaleBlobs() throws Exception {
+ // Setup blobs
+ final long blobId1 = 3489;
+ final File blobFile1 = mock(File.class);
+ final BlobHandle blobHandle1 = BlobHandle.createWithSha256("digest1".getBytes(),
+ "label1", System.currentTimeMillis() - 2000, "tag1");
+ final BlobMetadata blobMetadata1 = createBlobMetadataMock(blobId1, blobFile1, true);
+ mUserBlobs.put(blobHandle1, blobMetadata1);
+
+ final long blobId2 = 78974;
+ final File blobFile2 = mock(File.class);
+ final BlobHandle blobHandle2 = BlobHandle.createWithSha256("digest2".getBytes(),
+ "label2", System.currentTimeMillis() + 30000, "tag2");
+ final BlobMetadata blobMetadata2 = createBlobMetadataMock(blobId2, blobFile2, true);
+ mUserBlobs.put(blobHandle2, blobMetadata2);
+
+ final long blobId3 = 97;
+ final File blobFile3 = mock(File.class);
+ final BlobHandle blobHandle3 = BlobHandle.createWithSha256("digest3".getBytes(),
+ "label3", System.currentTimeMillis() + 4400000, "tag3");
+ final BlobMetadata blobMetadata3 = createBlobMetadataMock(blobId3, blobFile3, false);
+ mUserBlobs.put(blobHandle3, blobMetadata3);
+
+ mService.addKnownIdsForTest(blobId1, blobId2, blobId3);
+
+ // Invoke test method
+ mService.handleIdleMaintenanceLocked();
+
+ // Verify stale blobs are removed
+ verify(blobFile1).delete();
+ verify(blobFile2, never()).delete();
+ verify(blobFile3).delete();
+
+ assertThat(mUserBlobs.size()).isEqualTo(1);
+ assertThat(mUserBlobs.get(blobHandle2)).isNotNull();
+
+ assertThat(mService.getKnownIdsForTest()).containsExactly(blobId2);
+ }
+
+ private BlobStoreSession createBlobStoreSessionMock(String ownerPackageName, int ownerUid,
+ long sessionId, File sessionFile) {
+ return createBlobStoreSessionMock(ownerPackageName, ownerUid, sessionId, sessionFile,
+ mock(BlobHandle.class));
+ }
+ private BlobStoreSession createBlobStoreSessionMock(String ownerPackageName, int ownerUid,
+ long sessionId, File sessionFile, BlobHandle blobHandle) {
+ final BlobStoreSession session = mock(BlobStoreSession.class);
+ doReturn(ownerPackageName).when(session).getOwnerPackageName();
+ doReturn(ownerUid).when(session).getOwnerUid();
+ doReturn(sessionId).when(session).getSessionId();
+ doReturn(sessionFile).when(session).getSessionFile();
+ doReturn(blobHandle).when(session).getBlobHandle();
+ return session;
+ }
+
+ private BlobMetadata createBlobMetadataMock(long blobId, File blobFile, boolean hasLeases) {
+ final BlobMetadata blobMetadata = mock(BlobMetadata.class);
+ doReturn(blobId).when(blobMetadata).getBlobId();
+ doReturn(blobFile).when(blobMetadata).getBlobFile();
+ doReturn(hasLeases).when(blobMetadata).hasLeases();
+ return blobMetadata;
+ }
+
+ private class TestHandler extends Handler {
+ TestHandler(Looper looper) {
+ super(looper);
+ }
+
+ @Override
+ public void dispatchMessage(Message msg) {
+ // Ignore all messages
+ }
+ }
+
+ private class TestInjector extends Injector {
+ @Override
+ public Handler initializeMessageHandler() {
+ return mHandler;
+ }
+ }
+}
diff --git a/services/tests/mockingservicestests/src/com/android/server/display/LocalDisplayAdapterTest.java b/services/tests/mockingservicestests/src/com/android/server/display/LocalDisplayAdapterTest.java
index 9e1ddb1f8a80..6d1530219372 100644
--- a/services/tests/mockingservicestests/src/com/android/server/display/LocalDisplayAdapterTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/display/LocalDisplayAdapterTest.java
@@ -20,6 +20,8 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -29,6 +31,7 @@ import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
+import android.view.Display;
import android.view.DisplayAddress;
import android.view.SurfaceControl;
@@ -47,6 +50,7 @@ import org.mockito.Mock;
import org.mockito.quality.Strictness;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.LinkedList;
@@ -109,10 +113,11 @@ public class LocalDisplayAdapterTest {
*/
@Test
public void testPrivateDisplay() throws Exception {
- setUpDisplay(new DisplayConfig(createDisplayAddress(PORT_A), createDummyDisplayInfo()));
- setUpDisplay(new DisplayConfig(createDisplayAddress(PORT_B), createDummyDisplayInfo()));
- setUpDisplay(new DisplayConfig(createDisplayAddress(PORT_C), createDummyDisplayInfo()));
+ 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_localPrivateDisplayPorts);
mAdapter.registerLocked();
@@ -135,9 +140,10 @@ public class LocalDisplayAdapterTest {
*/
@Test
public void testPublicDisplaysForNoConfigLocalPrivateDisplayPorts() throws Exception {
- setUpDisplay(new DisplayConfig(createDisplayAddress(PORT_A), createDummyDisplayInfo()));
- setUpDisplay(new DisplayConfig(createDisplayAddress(PORT_C), createDummyDisplayInfo()));
+ setUpDisplay(new FakeDisplay(PORT_A));
+ setUpDisplay(new FakeDisplay(PORT_C));
updateAvailableDisplays();
+
// config_localPrivateDisplayPorts is null
mAdapter.registerLocked();
@@ -166,8 +172,8 @@ public class LocalDisplayAdapterTest {
@Test
public void testDpiValues() throws Exception {
// needs default one always
- setUpDisplay(new DisplayConfig(createDisplayAddress(PORT_A), createDummyDisplayInfo()));
- setUpDisplay(new DisplayConfig(createDisplayAddress(PORT_B), createDummyDisplayInfo()));
+ setUpDisplay(new FakeDisplay(PORT_A));
+ setUpDisplay(new FakeDisplay(PORT_B));
updateAvailableDisplays();
mAdapter.registerLocked();
@@ -181,6 +187,67 @@ public class LocalDisplayAdapterTest {
16000);
}
+ @Test
+ public void testAfterDisplayChange_ModesAreUpdated() throws Exception {
+ SurfaceControl.DisplayConfig displayInfo = createFakeDisplayConfig(1920, 1080, 60f);
+ SurfaceControl.DisplayConfig[] configs =
+ new SurfaceControl.DisplayConfig[]{displayInfo};
+ FakeDisplay display = new FakeDisplay(PORT_A, configs, 0);
+ setUpDisplay(display);
+ updateAvailableDisplays();
+ mAdapter.registerLocked();
+ waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS);
+
+ assertThat(mListener.addedDisplays.size()).isEqualTo(1);
+ assertThat(mListener.changedDisplays).isEmpty();
+
+ DisplayDeviceInfo displayDeviceInfo = mListener.addedDisplays.get(
+ 0).getDisplayDeviceInfoLocked();
+
+ assertThat(displayDeviceInfo.supportedModes.length).isEqualTo(configs.length);
+ assertModeIsSupported(displayDeviceInfo.supportedModes, displayInfo);
+
+ Display.Mode defaultMode = getModeById(displayDeviceInfo, displayDeviceInfo.defaultModeId);
+ assertThat(defaultMode.matches(displayInfo.width, displayInfo.height,
+ displayInfo.refreshRate)).isTrue();
+
+ Display.Mode activeMode = getModeById(displayDeviceInfo, displayDeviceInfo.modeId);
+ assertThat(activeMode.matches(displayInfo.width, displayInfo.height,
+ displayInfo.refreshRate)).isTrue();
+
+ // Change the display
+ SurfaceControl.DisplayConfig addedDisplayInfo = createFakeDisplayConfig(3840, 2160,
+ 60f);
+ configs = new SurfaceControl.DisplayConfig[]{displayInfo, addedDisplayInfo};
+ display.configs = configs;
+ display.activeConfig = 1;
+ setUpDisplay(display);
+ mAdapter.registerLocked();
+ waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS);
+
+ assertThat(SurfaceControl.getActiveConfig(display.token)).isEqualTo(1);
+ assertThat(SurfaceControl.getDisplayConfigs(display.token).length).isEqualTo(2);
+
+ assertThat(mListener.addedDisplays.size()).isEqualTo(1);
+ assertThat(mListener.changedDisplays.size()).isEqualTo(1);
+
+ DisplayDevice displayDevice = mListener.changedDisplays.get(0);
+ displayDevice.applyPendingDisplayDeviceInfoChangesLocked();
+ displayDeviceInfo = displayDevice.getDisplayDeviceInfoLocked();
+
+ assertThat(displayDeviceInfo.supportedModes.length).isEqualTo(configs.length);
+ assertModeIsSupported(displayDeviceInfo.supportedModes, displayInfo);
+ assertModeIsSupported(displayDeviceInfo.supportedModes, addedDisplayInfo);
+
+ activeMode = getModeById(displayDeviceInfo, displayDeviceInfo.modeId);
+ assertThat(activeMode.matches(addedDisplayInfo.width, addedDisplayInfo.height,
+ addedDisplayInfo.refreshRate)).isTrue();
+
+ defaultMode = getModeById(displayDeviceInfo, displayDeviceInfo.defaultModeId);
+ assertThat(defaultMode.matches(addedDisplayInfo.width, addedDisplayInfo.height,
+ addedDisplayInfo.refreshRate)).isTrue();
+ }
+
private void assertDisplayDpi(DisplayDeviceInfo info, int expectedPort,
float expectedXdpi,
float expectedYDpi,
@@ -193,32 +260,56 @@ public class LocalDisplayAdapterTest {
assertEquals(expectedDensityDpi, info.densityDpi);
}
- private class DisplayConfig {
+ private Display.Mode getModeById(DisplayDeviceInfo displayDeviceInfo, int modeId) {
+ return Arrays.stream(displayDeviceInfo.supportedModes)
+ .filter(mode -> mode.getModeId() == modeId)
+ .findFirst()
+ .get();
+ }
+
+ private void assertModeIsSupported(Display.Mode[] supportedModes,
+ SurfaceControl.DisplayConfig mode) {
+ assertThat(Arrays.stream(supportedModes).anyMatch(
+ x -> x.matches(mode.width, mode.height, mode.refreshRate))).isTrue();
+ }
+
+ private static class FakeDisplay {
public final DisplayAddress.Physical address;
- public final IBinder displayToken = new Binder();
- public final SurfaceControl.PhysicalDisplayInfo displayInfo;
+ public final IBinder token = new Binder();
+ public final SurfaceControl.DisplayInfo info;
+ public SurfaceControl.DisplayConfig[] configs;
+ public int activeConfig;
+
+ private FakeDisplay(int port) {
+ this.address = createDisplayAddress(port);
+ this.info = createFakeDisplayInfo();
+ this.configs = new SurfaceControl.DisplayConfig[]{
+ createFakeDisplayConfig(800, 600, 60f)
+ };
+ this.activeConfig = 0;
+ }
- private DisplayConfig(
- DisplayAddress.Physical address, SurfaceControl.PhysicalDisplayInfo displayInfo) {
- this.address = address;
- this.displayInfo = displayInfo;
+ private FakeDisplay(int port, SurfaceControl.DisplayConfig[] configs, int activeConfig) {
+ this.address = createDisplayAddress(port);
+ this.info = createFakeDisplayInfo();
+ this.configs = configs;
+ this.activeConfig = activeConfig;
}
}
- private void setUpDisplay(DisplayConfig config) {
- mAddresses.add(config.address);
- doReturn(config.displayToken).when(() ->
- SurfaceControl.getPhysicalDisplayToken(config.address.getPhysicalDisplayId()));
- doReturn(new SurfaceControl.PhysicalDisplayInfo[]{
- config.displayInfo
- }).when(() -> SurfaceControl.getDisplayConfigs(config.displayToken));
- doReturn(0).when(() -> SurfaceControl.getActiveConfig(config.displayToken));
- doReturn(0).when(() -> SurfaceControl.getActiveColorMode(config.displayToken));
- doReturn(new int[]{
- 0
- }).when(() -> SurfaceControl.getDisplayColorModes(config.displayToken));
+ private void setUpDisplay(FakeDisplay display) {
+ mAddresses.add(display.address);
+ doReturn(display.token).when(() ->
+ SurfaceControl.getPhysicalDisplayToken(display.address.getPhysicalDisplayId()));
+ doReturn(display.info).when(() -> SurfaceControl.getDisplayInfo(display.token));
+ doReturn(display.configs).when(
+ () -> SurfaceControl.getDisplayConfigs(display.token));
+ doReturn(display.activeConfig).when(() -> SurfaceControl.getActiveConfig(display.token));
+ doReturn(0).when(() -> SurfaceControl.getActiveColorMode(display.token));
+ doReturn(new int[] { 0 }).when(
+ () -> SurfaceControl.getDisplayColorModes(display.token));
doReturn(new SurfaceControl.DesiredDisplayConfigSpecs(0, 60.f, 60.f))
- .when(() -> SurfaceControl.getDesiredDisplayConfigSpecs(config.displayToken));
+ .when(() -> SurfaceControl.getDesiredDisplayConfigSpecs(display.token));
}
private void updateAvailableDisplays() {
@@ -235,18 +326,23 @@ public class LocalDisplayAdapterTest {
return DisplayAddress.fromPortAndModel((byte) port, DISPLAY_MODEL);
}
- private static SurfaceControl.PhysicalDisplayInfo createDummyDisplayInfo() {
- SurfaceControl.PhysicalDisplayInfo info = new SurfaceControl.PhysicalDisplayInfo();
+ private static SurfaceControl.DisplayInfo createFakeDisplayInfo() {
+ final SurfaceControl.DisplayInfo info = new SurfaceControl.DisplayInfo();
info.density = 100;
- info.xDpi = 100;
- info.yDpi = 100;
- info.secure = false;
- info.width = 800;
- info.height = 600;
-
return info;
}
+ private static SurfaceControl.DisplayConfig createFakeDisplayConfig(int width, int height,
+ float refreshRate) {
+ final SurfaceControl.DisplayConfig config = new SurfaceControl.DisplayConfig();
+ config.width = width;
+ config.height = height;
+ config.refreshRate = refreshRate;
+ config.xDpi = 100;
+ config.yDpi = 100;
+ return config;
+ }
+
private void waitForHandlerToComplete(Handler handler, long waitTimeMs)
throws InterruptedException {
final Object lock = new Object();
@@ -262,17 +358,19 @@ public class LocalDisplayAdapterTest {
private class TestListener implements DisplayAdapter.Listener {
public ArrayList<DisplayDevice> addedDisplays = new ArrayList<>();
+ public ArrayList<DisplayDevice> changedDisplays = new ArrayList<>();
@Override
public void onDisplayDeviceEvent(DisplayDevice device, int event) {
if (event == DisplayAdapter.DISPLAY_DEVICE_EVENT_ADDED) {
addedDisplays.add(device);
+ } else if (event == DisplayAdapter.DISPLAY_DEVICE_EVENT_CHANGED) {
+ changedDisplays.add(device);
}
}
@Override
public void onTraversalRequested() {
-
}
}
}
diff --git a/services/tests/mockingservicestests/src/com/android/server/testables/StaticMockFixtureRule.java b/services/tests/mockingservicestests/src/com/android/server/testables/StaticMockFixtureRule.java
index 8e9d7ee71df3..3566aee2eba3 100644
--- a/services/tests/mockingservicestests/src/com/android/server/testables/StaticMockFixtureRule.java
+++ b/services/tests/mockingservicestests/src/com/android/server/testables/StaticMockFixtureRule.java
@@ -21,6 +21,7 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSess
import com.android.dx.mockito.inline.extended.StaticMockitoSession;
import com.android.dx.mockito.inline.extended.StaticMockitoSessionBuilder;
+import org.junit.AssumptionViolatedException;
import org.junit.rules.TestRule;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
@@ -100,6 +101,11 @@ public class StaticMockFixtureRule implements TestRule {
}
@Override
+ protected void skipped(AssumptionViolatedException e, Description description) {
+ tearDown(e);
+ }
+
+ @Override
protected void failed(Throwable e, Description description) {
tearDown(e);
}
diff --git a/services/tests/mockingservicestests/src/com/android/server/testables/StaticMockFixtureRuleTest.java b/services/tests/mockingservicestests/src/com/android/server/testables/StaticMockFixtureRuleTest.java
index b7e71ded30ab..8e0ccf01d7a7 100644
--- a/services/tests/mockingservicestests/src/com/android/server/testables/StaticMockFixtureRuleTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/testables/StaticMockFixtureRuleTest.java
@@ -16,8 +16,10 @@
package com.android.server.testables;
+import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
@@ -30,6 +32,7 @@ import com.android.dx.mockito.inline.extended.StaticMockitoSession;
import com.android.dx.mockito.inline.extended.StaticMockitoSessionBuilder;
import org.junit.After;
+import org.junit.AssumptionViolatedException;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.Description;
@@ -57,6 +60,8 @@ public class StaticMockFixtureRuleTest {
@Mock private Supplier<StaticMockFixture> mSupplyA;
@Mock private Supplier<StaticMockFixture> mSupplyB;
@Mock private Statement mStatement;
+ @Mock private Statement mSkipStatement;
+ @Mock private Statement mThrowStatement;
@Mock private Description mDescription;
@Before
@@ -91,17 +96,22 @@ public class StaticMockFixtureRuleTest {
when(mB1.setUpMockedClasses(any())).thenAnswer(invocation -> invocation.getArgument(0));
doNothing().when(mB1).setUpMockBehaviors();
doNothing().when(mStatement).evaluate();
+ doThrow(new AssumptionViolatedException("bad assumption, test should be skipped"))
+ .when(mSkipStatement).evaluate();
+ doThrow(new IllegalArgumentException("bad argument, test should be failed"))
+ .when(mThrowStatement).evaluate();
doNothing().when(mA1).tearDown();
doNothing().when(mB1).tearDown();
}
private InOrder mocksInOrder() {
- return inOrder(mSessionBuilder, mSession, mSupplyA, mSupplyB,
- mA1, mA2, mB1, mB2, mStatement, mDescription);
+ return inOrder(mSessionBuilder, mSession, mSupplyA, mSupplyB, mA1, mA2, mB1, mB2,
+ mStatement, mSkipStatement, mThrowStatement, mDescription);
}
private void verifyNoMoreImportantMockInteractions() {
- verifyNoMoreInteractions(mSupplyA, mSupplyB, mA1, mA2, mB1, mB2, mStatement);
+ verifyNoMoreInteractions(mSupplyA, mSupplyB, mA1, mA2, mB1, mB2, mStatement,
+ mSkipStatement, mThrowStatement);
}
@Test
@@ -183,4 +193,66 @@ public class StaticMockFixtureRuleTest {
verifyNoMoreImportantMockInteractions();
}
+
+ @Test
+ public void testTearDownOnSkippedTests() throws Throwable {
+ InOrder inOrder = mocksInOrder();
+
+ StaticMockFixtureRule rule = new StaticMockFixtureRule(mA1, mB1) {
+ @Override public StaticMockitoSessionBuilder getSessionBuilder() {
+ return mSessionBuilder;
+ }
+ };
+ Statement skipStatement = rule.apply(mSkipStatement, mDescription);
+
+ inOrder.verify(mA1).setUpMockedClasses(any(StaticMockitoSessionBuilder.class));
+ inOrder.verify(mB1).setUpMockedClasses(any(StaticMockitoSessionBuilder.class));
+ inOrder.verify(mA1).setUpMockBehaviors();
+ inOrder.verify(mB1).setUpMockBehaviors();
+
+ try {
+ skipStatement.evaluate();
+ fail("AssumptionViolatedException should have been thrown");
+ } catch (AssumptionViolatedException e) {
+ // expected
+ }
+
+ inOrder.verify(mSkipStatement).evaluate();
+ // note: tearDown in reverse order
+ inOrder.verify(mB1).tearDown();
+ inOrder.verify(mA1).tearDown();
+
+ verifyNoMoreImportantMockInteractions();
+ }
+
+ @Test
+ public void testTearDownOnFailedTests() throws Throwable {
+ InOrder inOrder = mocksInOrder();
+
+ StaticMockFixtureRule rule = new StaticMockFixtureRule(mA1, mB1) {
+ @Override public StaticMockitoSessionBuilder getSessionBuilder() {
+ return mSessionBuilder;
+ }
+ };
+ Statement failStatement = rule.apply(mThrowStatement, mDescription);
+
+ inOrder.verify(mA1).setUpMockedClasses(any(StaticMockitoSessionBuilder.class));
+ inOrder.verify(mB1).setUpMockedClasses(any(StaticMockitoSessionBuilder.class));
+ inOrder.verify(mA1).setUpMockBehaviors();
+ inOrder.verify(mB1).setUpMockBehaviors();
+
+ try {
+ failStatement.evaluate();
+ fail("IllegalArgumentException should have been thrown");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+
+ inOrder.verify(mThrowStatement).evaluate();
+ // note: tearDown in reverse order
+ inOrder.verify(mB1).tearDown();
+ inOrder.verify(mA1).tearDown();
+
+ verifyNoMoreImportantMockInteractions();
+ }
}
diff --git a/services/tests/servicestests/Android.bp b/services/tests/servicestests/Android.bp
index 556f6362d872..f99081024494 100644
--- a/services/tests/servicestests/Android.bp
+++ b/services/tests/servicestests/Android.bp
@@ -30,6 +30,7 @@ android_test {
"services.usage",
"guava",
"androidx.test.core",
+ "androidx.test.ext.truth",
"androidx.test.runner",
"androidx.test.rules",
"mockito-target-minus-junit4",
diff --git a/services/tests/servicestests/AndroidManifest.xml b/services/tests/servicestests/AndroidManifest.xml
index b7c900130e39..1212f2082404 100644
--- a/services/tests/servicestests/AndroidManifest.xml
+++ b/services/tests/servicestests/AndroidManifest.xml
@@ -65,9 +65,9 @@
<uses-permission android:name="android.permission.WATCH_APPOPS" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.SUSPEND_APPS"/>
+ <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE" />
+ <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
<uses-permission android:name="android.permission.CONTROL_KEYGUARD"/>
- <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/>
- <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE"/>
<uses-permission android:name="android.permission.MANAGE_BIND_INSTANT_SERVICE"/>
<uses-permission android:name="android.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS" />
<uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java
index cf10559c8198..dfe950ea93d6 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java
@@ -47,6 +47,7 @@ import static org.hamcrest.Matchers.hasItems;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -703,14 +704,20 @@ public class AbstractAccessibilityServiceConnectionTest {
@Test
public void takeScreenshot_returnNull() {
- // no canTakeScreenshot, should return null.
- when(mMockSecurityPolicy.canTakeScreenshotLocked(mServiceConnection)).thenReturn(false);
- assertThat(mServiceConnection.takeScreenshot(Display.DEFAULT_DISPLAY), is(nullValue()));
-
// no checkAccessibilityAccess, should return null.
when(mMockSecurityPolicy.canTakeScreenshotLocked(mServiceConnection)).thenReturn(true);
when(mMockSecurityPolicy.checkAccessibilityAccess(mServiceConnection)).thenReturn(false);
- assertThat(mServiceConnection.takeScreenshot(Display.DEFAULT_DISPLAY), is(nullValue()));
+ mServiceConnection.takeScreenshot(Display.DEFAULT_DISPLAY, new RemoteCallback((result) -> {
+ assertNull(result);
+ }));
+ }
+
+ @Test (expected = SecurityException.class)
+ public void takeScreenshot_throwSecurityException() {
+ // no canTakeScreenshot, should throw security exception.
+ when(mMockSecurityPolicy.canTakeScreenshotLocked(mServiceConnection)).thenReturn(false);
+ mServiceConnection.takeScreenshot(Display.DEFAULT_DISPLAY, new RemoteCallback((result) -> {
+ }));
}
private void updateServiceInfo(AccessibilityServiceInfo serviceInfo, int eventType,
@@ -852,8 +859,5 @@ public class AbstractAccessibilityServiceConnectionTest {
@Override
public void onFingerprintGesture(int gesture) {}
-
- @Override
- public void takeScreenshotWithCallback(int displayId, RemoteCallback callback) {}
}
}
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/gestures/TouchExplorerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/gestures/TouchExplorerTest.java
index a4ceadb3028b..9053234aa220 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/gestures/TouchExplorerTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/gestures/TouchExplorerTest.java
@@ -89,9 +89,12 @@ public class TouchExplorerTest {
@Override
public void onMotionEvent(MotionEvent event, MotionEvent rawEvent, int policyFlags) {
- MotionEventMatcher lastEventMatcher = new MotionEventMatcher(mLastEvent);
mEvents.add(0, event.copy());
- assertThat(rawEvent, lastEventMatcher);
+ // LastEvent may not match if we're clearing the state
+ if (mLastEvent != null) {
+ MotionEventMatcher lastEventMatcher = new MotionEventMatcher(mLastEvent);
+ assertThat(rawEvent, lastEventMatcher);
+ }
}
@Override
@@ -126,6 +129,31 @@ public class TouchExplorerTest {
}
@Test
+ public void upEventWhenInTwoFingerMove_clearsState() {
+ goFromStateClearTo(STATE_MOVING_2FINGERS);
+
+ send(upEvent());
+ assertState(STATE_CLEAR);
+ }
+
+ @Test
+ public void clearEventsWhenInTwoFingerMove_clearsStateAndSendsUp() {
+ goFromStateClearTo(STATE_MOVING_2FINGERS);
+
+ // Clear last event so we don't try to match against anything when cleanup events are sent
+ // for the clear
+ mLastEvent = null;
+ mTouchExplorer.clearEvents(InputDevice.SOURCE_TOUCHSCREEN);
+ assertState(STATE_CLEAR);
+ List<MotionEvent> events = getCapturedEvents();
+ assertCapturedEvents(
+ MotionEvent.ACTION_DOWN,
+ MotionEvent.ACTION_POINTER_DOWN,
+ MotionEvent.ACTION_POINTER_UP,
+ MotionEvent.ACTION_UP);
+ }
+
+ @Test
public void testTwoFingersDrag_shouldDraggingAndActionDown() {
goFromStateClearTo(STATE_DRAGGING_2FINGERS);
@@ -268,6 +296,12 @@ public class TouchExplorerTest {
DEFAULT_Y, 0));
}
+ private MotionEvent upEvent() {
+ MotionEvent event = downEvent();
+ event.setAction(MotionEvent.ACTION_UP);
+ return event;
+ }
+
private MotionEvent pointerDownEvent() {
final int secondPointerId = 0x0100;
final int action = MotionEvent.ACTION_POINTER_DOWN | secondPointerId;
diff --git a/services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java b/services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java
index d38c80cdabe0..6aa928794244 100644
--- a/services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/biometrics/AuthServiceTest.java
@@ -24,6 +24,7 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -32,6 +33,9 @@ import android.content.pm.PackageManager;
import android.hardware.biometrics.IBiometricEnabledOnKeyguardCallback;
import android.hardware.biometrics.IBiometricService;
import android.hardware.biometrics.IBiometricServiceReceiver;
+import android.hardware.face.IFaceService;
+import android.hardware.fingerprint.IFingerprintService;
+import android.hardware.iris.IIrisService;
import android.os.Binder;
import android.os.Bundle;
@@ -61,6 +65,12 @@ public class AuthServiceTest {
AuthService.Injector mInjector;
@Mock
IBiometricService mBiometricService;
+ @Mock
+ IFingerprintService mFingerprintService;
+ @Mock
+ IIrisService mIrisService;
+ @Mock
+ IFaceService mFaceService;
@Before
public void setUp() {
@@ -76,10 +86,28 @@ public class AuthServiceTest {
when(mContext.getPackageManager()).thenReturn(mPackageManager);
when(mInjector.getBiometricService()).thenReturn(mBiometricService);
when(mInjector.getConfiguration(any())).thenReturn(config);
- when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT))
- .thenReturn(true);
- when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_IRIS)).thenReturn(true);
- when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)).thenReturn(true);
+ when(mInjector.getFingerprintService()).thenReturn(mFingerprintService);
+ when(mInjector.getFaceService()).thenReturn(mFaceService);
+ when(mInjector.getIrisService()).thenReturn(mIrisService);
+ }
+
+ @Test
+ public void testRegisterNullService_doesNotRegister() throws Exception {
+
+ // Config contains Fingerprint, Iris, Face, but services are all null
+
+ when(mInjector.getFingerprintService()).thenReturn(null);
+ when(mInjector.getFaceService()).thenReturn(null);
+ when(mInjector.getIrisService()).thenReturn(null);
+
+ mAuthService = new AuthService(mContext, mInjector);
+ mAuthService.onStart();
+
+ verify(mBiometricService, never()).registerAuthenticator(
+ anyInt(),
+ anyInt(),
+ anyInt(),
+ any());
}
diff --git a/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java b/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java
index bec265e6d62d..156cd6e5826d 100644
--- a/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/biometrics/BiometricServiceTest.java
@@ -421,6 +421,7 @@ public class BiometricServiceTest {
public void testAuthenticate_noBiometrics_credentialAllowed() throws Exception {
setupAuthForOnly(BiometricAuthenticator.TYPE_FACE, Authenticators.BIOMETRIC_STRONG);
when(mFaceAuthenticator.hasEnrolledTemplates(anyInt(), any())).thenReturn(false);
+ when(mTrustManager.isDeviceSecure(anyInt())).thenReturn(true);
invokeAuthenticate(mBiometricService.mImpl, mReceiver1,
true /* requireConfirmation */,
Authenticators.DEVICE_CREDENTIAL | Authenticators.BIOMETRIC_WEAK);
@@ -467,6 +468,22 @@ public class BiometricServiceTest {
}
@Test
+ public void testAuthenticate_no_Biometrics_noCredential() throws Exception {
+ setupAuthForOnly(BiometricAuthenticator.TYPE_FACE, Authenticators.BIOMETRIC_STRONG);
+ when(mFaceAuthenticator.hasEnrolledTemplates(anyInt(), any())).thenReturn(false);
+ when(mTrustManager.isDeviceSecure(anyInt())).thenReturn(false);
+
+ invokeAuthenticate(mBiometricService.mImpl, mReceiver1,
+ true /* requireConfirmation */,
+ Authenticators.DEVICE_CREDENTIAL | Authenticators.BIOMETRIC_STRONG);
+ waitForIdle();
+
+ verify(mReceiver1).onError(anyInt() /* modality */,
+ eq(BiometricConstants.BIOMETRIC_ERROR_NO_BIOMETRICS)/* error */,
+ eq(0) /* vendorCode */);
+ }
+
+ @Test
public void testRejectFace_whenAuthenticating_notifiesSystemUIAndClient_thenPaused()
throws Exception {
setupAuthForOnly(BiometricAuthenticator.TYPE_FACE, Authenticators.BIOMETRIC_STRONG);
@@ -1216,7 +1233,8 @@ public class BiometricServiceTest {
when(mDevicePolicyManager
.getKeyguardDisabledFeatures(any() /* admin */, anyInt() /* userHandle */))
.thenReturn(~DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT);
- invokeAuthenticateForWorkApp(mBiometricService.mImpl, mReceiver1);
+ invokeAuthenticateForWorkApp(mBiometricService.mImpl, mReceiver1,
+ Authenticators.BIOMETRIC_STRONG);
waitForIdle();
assertEquals(mBiometricService.mPendingAuthSession.mState,
BiometricService.STATE_AUTH_CALLED);
@@ -1233,7 +1251,8 @@ public class BiometricServiceTest {
when(mDevicePolicyManager
.getKeyguardDisabledFeatures(any() /* admin*/, anyInt() /* userHandle */))
.thenReturn(~DevicePolicyManager.KEYGUARD_DISABLE_FACE);
- invokeAuthenticateForWorkApp(mBiometricService.mImpl, mReceiver1);
+ invokeAuthenticateForWorkApp(mBiometricService.mImpl, mReceiver1,
+ Authenticators.BIOMETRIC_STRONG);
waitForIdle();
assertEquals(mBiometricService.mPendingAuthSession.mState,
BiometricService.STATE_AUTH_CALLED);
@@ -1247,27 +1266,24 @@ public class BiometricServiceTest {
public void testWorkAuthentication_fingerprintFailsIfDisabledByDevicePolicyManager()
throws Exception {
setupAuthForOnly(BiometricAuthenticator.TYPE_FINGERPRINT, Authenticators.BIOMETRIC_STRONG);
+ when(mTrustManager.isDeviceSecure(anyInt())).thenReturn(true);
when(mDevicePolicyManager
.getKeyguardDisabledFeatures(any() /* admin */, anyInt() /* userHandle */))
.thenReturn(DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT);
- invokeAuthenticateForWorkApp(mBiometricService.mImpl, mReceiver1);
+
+ invokeAuthenticateForWorkApp(mBiometricService.mImpl, mReceiver1,
+ Authenticators.BIOMETRIC_STRONG);
waitForIdle();
- assertNotNull(mBiometricService.mCurrentAuthSession);
- assertEquals(mBiometricService.mCurrentAuthSession.mState,
- BiometricService.STATE_SHOWING_DEVICE_CREDENTIAL);
- }
+ verify(mReceiver1).onError(eq(BiometricAuthenticator.TYPE_NONE),
+ eq(BiometricPrompt.BIOMETRIC_ERROR_HW_UNAVAILABLE), eq(0) /* vendorCode */);
- @Test
- public void testWorkAuthentication_faceFailsIfDisabledByDevicePolicyManager() throws Exception {
- setupAuthForOnly(BiometricAuthenticator.TYPE_FACE, Authenticators.BIOMETRIC_STRONG);
- when(mDevicePolicyManager
- .getKeyguardDisabledFeatures(any() /* admin */, anyInt() /* userHandle */))
- .thenReturn(DevicePolicyManager.KEYGUARD_DISABLE_FACE);
- invokeAuthenticateForWorkApp(mBiometricService.mImpl, mReceiver1);
+ invokeAuthenticateForWorkApp(mBiometricService.mImpl, mReceiver2,
+ Authenticators.BIOMETRIC_STRONG | Authenticators.DEVICE_CREDENTIAL);
waitForIdle();
assertNotNull(mBiometricService.mCurrentAuthSession);
assertEquals(mBiometricService.mCurrentAuthSession.mState,
BiometricService.STATE_SHOWING_DEVICE_CREDENTIAL);
+ verify(mReceiver2, never()).onError(anyInt(), anyInt(), anyInt());
}
// Helper methods
@@ -1376,33 +1392,35 @@ public class BiometricServiceTest {
0 /* userId */,
receiver,
TEST_PACKAGE_NAME /* packageName */,
- createTestBiometricPromptBundle(requireConfirmation, authenticators));
+ createTestBiometricPromptBundle(requireConfirmation, authenticators,
+ false /* checkDevicePolicy */));
}
private static void invokeAuthenticateForWorkApp(IBiometricService.Stub service,
- IBiometricServiceReceiver receiver) throws Exception {
- final Bundle bundle = new Bundle();
- bundle.putBoolean(BiometricPrompt.EXTRA_DISALLOW_BIOMETRICS_IF_POLICY_EXISTS, true);
- bundle.putBoolean(BiometricPrompt.KEY_REQUIRE_CONFIRMATION, true);
- bundle.putBoolean(BiometricPrompt.KEY_ALLOW_DEVICE_CREDENTIAL, true);
+ IBiometricServiceReceiver receiver, Integer authenticators) throws Exception {
service.authenticate(
new Binder() /* token */,
0 /* sessionId */,
0 /* userId */,
receiver,
TEST_PACKAGE_NAME /* packageName */,
- bundle);
+ createTestBiometricPromptBundle(false /* requireConfirmation */, authenticators,
+ true /* checkDevicePolicy */));
}
private static Bundle createTestBiometricPromptBundle(
boolean requireConfirmation,
- Integer authenticators) {
+ Integer authenticators,
+ boolean checkDevicePolicy) {
final Bundle bundle = new Bundle();
bundle.putBoolean(BiometricPrompt.KEY_REQUIRE_CONFIRMATION, requireConfirmation);
if (authenticators != null) {
bundle.putInt(BiometricPrompt.KEY_AUTHENTICATORS_ALLOWED, authenticators);
}
+ if (checkDevicePolicy) {
+ bundle.putBoolean(BiometricPrompt.EXTRA_DISALLOW_BIOMETRICS_IF_POLICY_EXISTS, true);
+ }
return bundle;
}
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
index 422c278a3af7..39a749f9a6dc 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
@@ -96,6 +96,7 @@ import android.test.MoreAsserts;
import android.util.ArraySet;
import android.util.Pair;
+import androidx.test.filters.FlakyTest;
import androidx.test.filters.SmallTest;
import com.android.internal.R;
@@ -2223,17 +2224,13 @@ public class DevicePolicyManagerTest extends DpmTestBase {
String packageName = "com.google.android.test";
- PackageInfo packageInfo = new PackageInfo();
- packageInfo.applicationInfo = new ApplicationInfo();
- packageInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
+ ApplicationInfo applicationInfo = new ApplicationInfo();
+ applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
when(getServices().userManager.getProfileParent(MANAGED_PROFILE_USER_ID))
.thenReturn(new UserInfo(UserHandle.USER_SYSTEM, "user system", 0));
- when(getServices().ipackageManager.getPackageInfo(packageName,
- PackageManager.MATCH_SYSTEM_ONLY, UserHandle.USER_SYSTEM)).thenReturn(
- packageInfo);
- when(getServices().ipackageManager.getPackageInfo(packageName,
- PackageManager.MATCH_UNINSTALLED_PACKAGES | PackageManager.MATCH_SYSTEM_ONLY,
- UserHandle.USER_SYSTEM)).thenReturn(packageInfo);
+ when(getServices().ipackageManager.getApplicationInfo(packageName,
+ PackageManager.MATCH_UNINSTALLED_PACKAGES, UserHandle.USER_SYSTEM)).thenReturn(
+ applicationInfo);
parentDpm.setApplicationHidden(admin1, packageName, true);
verify(getServices().ipackageManager).setApplicationHiddenSettingAsUser(packageName,
@@ -4539,6 +4536,86 @@ public class DevicePolicyManagerTest extends DpmTestBase {
.removeUserEvenWhenDisallowed(anyInt());
}
+ public void testMaximumFailedDevicePasswordAttemptsReachedOrgOwnedManagedProfile()
+ throws Exception {
+ final int MANAGED_PROFILE_USER_ID = 15;
+ final int MANAGED_PROFILE_ADMIN_UID = UserHandle.getUid(MANAGED_PROFILE_USER_ID, 19436);
+ addManagedProfile(admin1, MANAGED_PROFILE_ADMIN_UID, admin1);
+
+ // Even if the caller is the managed profile, the current user is the user 0
+ when(getServices().iactivityManager.getCurrentUser())
+ .thenReturn(new UserInfo(UserHandle.USER_SYSTEM, "user system", 0));
+
+ configureProfileOwnerOfOrgOwnedDevice(admin1, MANAGED_PROFILE_USER_ID);
+
+ mContext.binder.callingUid = MANAGED_PROFILE_ADMIN_UID;
+ dpm.setMaximumFailedPasswordsForWipe(admin1, 3);
+
+ assertEquals(3, dpm.getMaximumFailedPasswordsForWipe(admin1));
+ assertEquals(3, dpm.getMaximumFailedPasswordsForWipe(null));
+
+ mContext.binder.callingUid = DpmMockContext.SYSTEM_UID;
+ mContext.callerPermissions.add(permission.BIND_DEVICE_ADMIN);
+
+ assertEquals(3, dpm.getMaximumFailedPasswordsForWipe(null, UserHandle.USER_SYSTEM));
+ // Check that primary will be wiped as a result of failed primary user unlock attempts.
+ assertEquals(UserHandle.USER_SYSTEM,
+ dpm.getProfileWithMinimumFailedPasswordsForWipe(UserHandle.USER_SYSTEM));
+
+ // Failed password attempts on the parent user are taken into account, as there isn't a
+ // separate work challenge.
+ dpm.reportFailedPasswordAttempt(UserHandle.USER_SYSTEM);
+ dpm.reportFailedPasswordAttempt(UserHandle.USER_SYSTEM);
+ dpm.reportFailedPasswordAttempt(UserHandle.USER_SYSTEM);
+
+ // For managed profile on an organization owned device, the whole device should be wiped.
+ verify(getServices().recoverySystem).rebootWipeUserData(
+ /*shutdown=*/ eq(false), anyString(), /*force=*/ eq(true),
+ /*wipeEuicc=*/ eq(false));
+ }
+
+ public void testMaximumFailedProfilePasswordAttemptsReachedOrgOwnedManagedProfile()
+ throws Exception {
+ final int MANAGED_PROFILE_USER_ID = 15;
+ final int MANAGED_PROFILE_ADMIN_UID = UserHandle.getUid(MANAGED_PROFILE_USER_ID, 19436);
+ addManagedProfile(admin1, MANAGED_PROFILE_ADMIN_UID, admin1);
+
+ // Even if the caller is the managed profile, the current user is the user 0
+ when(getServices().iactivityManager.getCurrentUser())
+ .thenReturn(new UserInfo(UserHandle.USER_SYSTEM, "user system", 0));
+
+ doReturn(true).when(getServices().lockPatternUtils)
+ .isSeparateProfileChallengeEnabled(MANAGED_PROFILE_USER_ID);
+
+ // Configure separate challenge.
+ configureProfileOwnerOfOrgOwnedDevice(admin1, MANAGED_PROFILE_USER_ID);
+
+ mContext.binder.callingUid = MANAGED_PROFILE_ADMIN_UID;
+ dpm.setMaximumFailedPasswordsForWipe(admin1, 3);
+
+ mContext.binder.callingUid = DpmMockContext.SYSTEM_UID;
+ mContext.callerPermissions.add(permission.BIND_DEVICE_ADMIN);
+
+ assertEquals(0, dpm.getMaximumFailedPasswordsForWipe(null, UserHandle.USER_SYSTEM));
+ assertEquals(3, dpm.getMaximumFailedPasswordsForWipe(null, MANAGED_PROFILE_USER_ID));
+ // Check that the policy is not affecting primary profile challenge.
+ assertEquals(UserHandle.USER_NULL,
+ dpm.getProfileWithMinimumFailedPasswordsForWipe(UserHandle.USER_SYSTEM));
+ // Check that primary will be wiped as a result of failed profile unlock attempts.
+ assertEquals(UserHandle.USER_SYSTEM,
+ dpm.getProfileWithMinimumFailedPasswordsForWipe(MANAGED_PROFILE_USER_ID));
+
+ // Simulate three failed attempts at solving the separate challenge.
+ dpm.reportFailedPasswordAttempt(MANAGED_PROFILE_USER_ID);
+ dpm.reportFailedPasswordAttempt(MANAGED_PROFILE_USER_ID);
+ dpm.reportFailedPasswordAttempt(MANAGED_PROFILE_USER_ID);
+
+ // For managed profile on an organization owned device, the whole device should be wiped.
+ verify(getServices().recoverySystem).rebootWipeUserData(
+ /*shutdown=*/ eq(false), anyString(), /*force=*/ eq(true),
+ /*wipeEuicc=*/ eq(false));
+ }
+
public void testGetPermissionGrantState() throws Exception {
final String permission = "some.permission";
final String app1 = "com.example.app1";
@@ -5370,26 +5447,28 @@ public class DevicePolicyManagerTest extends DpmTestBase {
assertTrue(dpms.isAdminActive(admin1, UserHandle.USER_SYSTEM));
}
- public void testRevertDeviceOwnership_adminAndDeviceMigrated() throws Exception {
- DpmTestUtils.writeInputStreamToFile(
- getRawStream(com.android.frameworks.servicestests.R.raw.active_admin_migrated),
- getDeviceOwnerPoliciesFile());
- DpmTestUtils.writeInputStreamToFile(
- getRawStream(com.android.frameworks.servicestests.R.raw.device_owner_migrated),
- getDeviceOwnerFile());
- assertDeviceOwnershipRevertedWithFakeTransferMetadata();
- }
-
- public void testRevertDeviceOwnership_deviceNotMigrated()
- throws Exception {
- DpmTestUtils.writeInputStreamToFile(
- getRawStream(com.android.frameworks.servicestests.R.raw.active_admin_migrated),
- getDeviceOwnerPoliciesFile());
- DpmTestUtils.writeInputStreamToFile(
- getRawStream(com.android.frameworks.servicestests.R.raw.device_owner_not_migrated),
- getDeviceOwnerFile());
- assertDeviceOwnershipRevertedWithFakeTransferMetadata();
- }
+ // @FlakyTest(bugId = 148934649)
+ // public void testRevertDeviceOwnership_adminAndDeviceMigrated() throws Exception {
+ // DpmTestUtils.writeInputStreamToFile(
+ // getRawStream(com.android.frameworks.servicestests.R.raw.active_admin_migrated),
+ // getDeviceOwnerPoliciesFile());
+ // DpmTestUtils.writeInputStreamToFile(
+ // getRawStream(com.android.frameworks.servicestests.R.raw.device_owner_migrated),
+ // getDeviceOwnerFile());
+ // assertDeviceOwnershipRevertedWithFakeTransferMetadata();
+ // }
+
+ // @FlakyTest(bugId = 148934649)
+ // public void testRevertDeviceOwnership_deviceNotMigrated()
+ // throws Exception {
+ // DpmTestUtils.writeInputStreamToFile(
+ // getRawStream(com.android.frameworks.servicestests.R.raw.active_admin_migrated),
+ // getDeviceOwnerPoliciesFile());
+ // DpmTestUtils.writeInputStreamToFile(
+ // getRawStream(com.android.frameworks.servicestests.R.raw.device_owner_not_migrated),
+ // getDeviceOwnerFile());
+ // assertDeviceOwnershipRevertedWithFakeTransferMetadata();
+ // }
public void testRevertDeviceOwnership_adminAndDeviceNotMigrated()
throws Exception {
@@ -5411,29 +5490,31 @@ public class DevicePolicyManagerTest extends DpmTestBase {
UserHandle userHandle = UserHandle.of(DpmMockContext.CALLER_USER_HANDLE);
}
- public void testRevertProfileOwnership_adminAndProfileMigrated() throws Exception {
- getServices().addUser(DpmMockContext.CALLER_USER_HANDLE, 0,
- UserManager.USER_TYPE_PROFILE_MANAGED, UserHandle.USER_SYSTEM);
- DpmTestUtils.writeInputStreamToFile(
- getRawStream(com.android.frameworks.servicestests.R.raw.active_admin_migrated),
- getProfileOwnerPoliciesFile());
- DpmTestUtils.writeInputStreamToFile(
- getRawStream(com.android.frameworks.servicestests.R.raw.profile_owner_migrated),
- getProfileOwnerFile());
- assertProfileOwnershipRevertedWithFakeTransferMetadata();
- }
-
- public void testRevertProfileOwnership_profileNotMigrated() throws Exception {
- getServices().addUser(DpmMockContext.CALLER_USER_HANDLE, 0,
- UserManager.USER_TYPE_PROFILE_MANAGED, UserHandle.USER_SYSTEM);
- DpmTestUtils.writeInputStreamToFile(
- getRawStream(com.android.frameworks.servicestests.R.raw.active_admin_migrated),
- getProfileOwnerPoliciesFile());
- DpmTestUtils.writeInputStreamToFile(
- getRawStream(com.android.frameworks.servicestests.R.raw.profile_owner_not_migrated),
- getProfileOwnerFile());
- assertProfileOwnershipRevertedWithFakeTransferMetadata();
- }
+ // @FlakyTest(bugId = 148934649)
+ // public void testRevertProfileOwnership_adminAndProfileMigrated() throws Exception {
+ // getServices().addUser(DpmMockContext.CALLER_USER_HANDLE, 0,
+ // UserManager.USER_TYPE_PROFILE_MANAGED, UserHandle.USER_SYSTEM);
+ // DpmTestUtils.writeInputStreamToFile(
+ // getRawStream(com.android.frameworks.servicestests.R.raw.active_admin_migrated),
+ // getProfileOwnerPoliciesFile());
+ // DpmTestUtils.writeInputStreamToFile(
+ // getRawStream(com.android.frameworks.servicestests.R.raw.profile_owner_migrated),
+ // getProfileOwnerFile());
+ // assertProfileOwnershipRevertedWithFakeTransferMetadata();
+ // }
+
+ // @FlakyTest(bugId = 148934649)
+ // public void testRevertProfileOwnership_profileNotMigrated() throws Exception {
+ // getServices().addUser(DpmMockContext.CALLER_USER_HANDLE, 0,
+ // UserManager.USER_TYPE_PROFILE_MANAGED, UserHandle.USER_SYSTEM);
+ // DpmTestUtils.writeInputStreamToFile(
+ // getRawStream(com.android.frameworks.servicestests.R.raw.active_admin_migrated),
+ // getProfileOwnerPoliciesFile());
+ // DpmTestUtils.writeInputStreamToFile(
+ // getRawStream(com.android.frameworks.servicestests.R.raw.profile_owner_not_migrated),
+ // getProfileOwnerFile());
+ // assertProfileOwnershipRevertedWithFakeTransferMetadata();
+ // }
public void testRevertProfileOwnership_adminAndProfileNotMigrated() throws Exception {
getServices().addUser(DpmMockContext.CALLER_USER_HANDLE, 0,
@@ -5774,8 +5855,7 @@ public class DevicePolicyManagerTest extends DpmTestBase {
when(getServices().userManager.getProfileParent(eq(UserHandle.of(userId))))
.thenReturn(UserHandle.SYSTEM);
final long ident = mServiceContext.binder.clearCallingIdentity();
- mServiceContext.binder.callingUid =
- UserHandle.getUid(DpmMockContext.CALLER_USER_HANDLE, DpmMockContext.SYSTEM_UID);
+ mServiceContext.binder.callingUid = UserHandle.getUid(userId, DpmMockContext.SYSTEM_UID);
configureContextForAccess(mServiceContext, true);
runAsCaller(mServiceContext, dpms, dpm -> {
@@ -5821,6 +5901,7 @@ public class DevicePolicyManagerTest extends DpmTestBase {
mContext.packageName = admin1.getPackageName();
setCrossProfileAppsList();
+ setVendorCrossProfileAppsList();
assertTrue(dpm.getAllCrossProfilePackages().isEmpty());
}
@@ -5831,6 +5912,7 @@ public class DevicePolicyManagerTest extends DpmTestBase {
mContext.packageName = admin1.getPackageName();
setCrossProfileAppsList();
+ setVendorCrossProfileAppsList();
initializeDpms();
assertTrue(dpm.getAllCrossProfilePackages().isEmpty());
@@ -5843,9 +5925,11 @@ public class DevicePolicyManagerTest extends DpmTestBase {
dpm.setCrossProfilePackages(admin1, packages);
setCrossProfileAppsList("TEST_DEFAULT_PACKAGE", "TEST_COMMON_PACKAGE");
+ setVendorCrossProfileAppsList("TEST_VENDOR_DEFAULT_PACKAGE");
assertEquals(Sets.newSet(
- "TEST_PACKAGE", "TEST_DEFAULT_PACKAGE", "TEST_COMMON_PACKAGE"),
+ "TEST_PACKAGE", "TEST_DEFAULT_PACKAGE", "TEST_COMMON_PACKAGE",
+ "TEST_VENDOR_DEFAULT_PACKAGE"),
dpm.getAllCrossProfilePackages());
}
@@ -5858,13 +5942,31 @@ public class DevicePolicyManagerTest extends DpmTestBase {
dpm.setCrossProfilePackages(admin1, packages);
setCrossProfileAppsList("TEST_DEFAULT_PACKAGE", "TEST_COMMON_PACKAGE");
+ setVendorCrossProfileAppsList("TEST_VENDOR_DEFAULT_PACKAGE");
initializeDpms();
assertEquals(Sets.newSet(
- "TEST_PACKAGE", "TEST_DEFAULT_PACKAGE", "TEST_COMMON_PACKAGE"),
+ "TEST_PACKAGE", "TEST_DEFAULT_PACKAGE", "TEST_COMMON_PACKAGE",
+ "TEST_VENDOR_DEFAULT_PACKAGE"),
dpm.getAllCrossProfilePackages());
}
+ public void testGetDefaultCrossProfilePackages_noPackagesSet_returnsEmpty() {
+ setCrossProfileAppsList();
+ setVendorCrossProfileAppsList();
+
+ assertThat(dpm.getDefaultCrossProfilePackages()).isEmpty();
+ }
+
+ public void testGetDefaultCrossProfilePackages_packagesSet_returnsCombinedSet() {
+ setCrossProfileAppsList("TEST_DEFAULT_PACKAGE", "TEST_COMMON_PACKAGE");
+ setVendorCrossProfileAppsList("TEST_VENDOR_DEFAULT_PACKAGE");
+
+ assertThat(dpm.getDefaultCrossProfilePackages()).isEqualTo(Sets.newSet(
+ "TEST_DEFAULT_PACKAGE", "TEST_COMMON_PACKAGE", "TEST_VENDOR_DEFAULT_PACKAGE"
+ ));
+ }
+
public void testSetCommonCriteriaMode_asDeviceOwner() throws Exception {
setDeviceOwner();
@@ -5896,6 +5998,12 @@ public class DevicePolicyManagerTest extends DpmTestBase {
.thenReturn(packages);
}
+ private void setVendorCrossProfileAppsList(String... packages) {
+ when(mContext.getResources()
+ .getStringArray(eq(R.array.vendor_cross_profile_apps)))
+ .thenReturn(packages);
+ }
+
// admin1 is the outgoing DPC, adminAnotherPakcage is the incoming one.
private void assertDeviceOwnershipRevertedWithFakeTransferMetadata() throws Exception {
writeFakeTransferMetadataFile(UserHandle.USER_SYSTEM,
diff --git a/services/tests/servicestests/src/com/android/server/integrity/AppIntegrityManagerServiceImplTest.java b/services/tests/servicestests/src/com/android/server/integrity/AppIntegrityManagerServiceImplTest.java
index 49ad866a56a4..c9ec87427722 100644
--- a/services/tests/servicestests/src/com/android/server/integrity/AppIntegrityManagerServiceImplTest.java
+++ b/services/tests/servicestests/src/com/android/server/integrity/AppIntegrityManagerServiceImplTest.java
@@ -23,12 +23,15 @@ import static android.content.pm.PackageManager.EXTRA_VERIFICATION_ID;
import static android.content.pm.PackageManager.EXTRA_VERIFICATION_INSTALLER_PACKAGE;
import static android.content.pm.PackageManager.EXTRA_VERIFICATION_INSTALLER_UID;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
@@ -43,6 +46,7 @@ import android.content.IntentFilter;
import android.content.IntentSender;
import android.content.integrity.AppInstallMetadata;
import android.content.integrity.AtomicFormula;
+import android.content.integrity.IntegrityFormula;
import android.content.integrity.Rule;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
@@ -103,19 +107,24 @@ public class AppIntegrityManagerServiceImplTest {
private static final String PLAY_STORE_PKG = "com.android.vending";
private static final String ADB_INSTALLER = "adb";
- private static final String PLAY_STORE_CERT =
- "play_store_cert";
+ private static final String PLAY_STORE_CERT = "play_store_cert";
private static final String ADB_CERT = "";
@org.junit.Rule
public MockitoRule mMockitoRule = MockitoJUnit.rule();
- @Mock PackageManagerInternal mPackageManagerInternal;
- @Mock Context mMockContext;
- @Mock Resources mMockResources;
- @Mock RuleEvaluationEngine mRuleEvaluationEngine;
- @Mock IntegrityFileManager mIntegrityFileManager;
- @Mock Handler mHandler;
+ @Mock
+ PackageManagerInternal mPackageManagerInternal;
+ @Mock
+ Context mMockContext;
+ @Mock
+ Resources mMockResources;
+ @Mock
+ RuleEvaluationEngine mRuleEvaluationEngine;
+ @Mock
+ IntegrityFileManager mIntegrityFileManager;
+ @Mock
+ Handler mHandler;
private PackageManager mSpyPackageManager;
private File mTestApk;
@@ -134,7 +143,8 @@ public class AppIntegrityManagerServiceImplTest {
mPackageManagerInternal,
mRuleEvaluationEngine,
mIntegrityFileManager,
- mHandler);
+ mHandler,
+ /* checkIntegrityForRuleProviders= */ true);
mSpyPackageManager = spy(mRealContext.getPackageManager());
// setup mocks to prevent NPE
@@ -144,16 +154,12 @@ public class AppIntegrityManagerServiceImplTest {
when(mIntegrityFileManager.initialized()).thenReturn(true);
}
- // TODO(b/148370598): Implement a test to validate that allow response is retuned when the test
- // request times out.
-
@Test
public void updateRuleSet_notAuthorized() throws Exception {
makeUsSystemApp();
Rule rule =
new Rule(
- new AtomicFormula.BooleanAtomicFormula(
- AtomicFormula.PRE_INSTALLED, true),
+ new AtomicFormula.BooleanAtomicFormula(AtomicFormula.PRE_INSTALLED, true),
Rule.DENY);
TestUtils.assertExpectException(
SecurityException.class,
@@ -171,8 +177,7 @@ public class AppIntegrityManagerServiceImplTest {
whitelistUsAsRuleProvider();
Rule rule =
new Rule(
- new AtomicFormula.BooleanAtomicFormula(
- AtomicFormula.PRE_INSTALLED, true),
+ new AtomicFormula.BooleanAtomicFormula(AtomicFormula.PRE_INSTALLED, true),
Rule.DENY);
TestUtils.assertExpectException(
SecurityException.class,
@@ -191,8 +196,7 @@ public class AppIntegrityManagerServiceImplTest {
makeUsSystemApp();
Rule rule =
new Rule(
- new AtomicFormula.BooleanAtomicFormula(
- AtomicFormula.PRE_INSTALLED, true),
+ new AtomicFormula.BooleanAtomicFormula(AtomicFormula.PRE_INSTALLED, true),
Rule.DENY);
// no SecurityException
@@ -207,12 +211,7 @@ public class AppIntegrityManagerServiceImplTest {
IntentSender mockReceiver = mock(IntentSender.class);
List<Rule> rules =
Arrays.asList(
- new Rule(
- new AtomicFormula.StringAtomicFormula(
- AtomicFormula.PACKAGE_NAME,
- PACKAGE_NAME,
- /* isHashedValue= */ false),
- Rule.DENY));
+ new Rule(IntegrityFormula.PACKAGE_NAME.equalTo(PACKAGE_NAME), Rule.DENY));
mService.updateRuleSet(VERSION, new ParceledListSlice<>(rules), mockReceiver);
runJobInHandler();
@@ -231,12 +230,7 @@ public class AppIntegrityManagerServiceImplTest {
IntentSender mockReceiver = mock(IntentSender.class);
List<Rule> rules =
Arrays.asList(
- new Rule(
- new AtomicFormula.StringAtomicFormula(
- AtomicFormula.PACKAGE_NAME,
- PACKAGE_NAME,
- /* isHashedValue= */ false),
- Rule.DENY));
+ new Rule(IntegrityFormula.PACKAGE_NAME.equalTo(PACKAGE_NAME), Rule.DENY));
mService.updateRuleSet(VERSION, new ParceledListSlice<>(rules), mockReceiver);
runJobInHandler();
@@ -368,13 +362,21 @@ public class AppIntegrityManagerServiceImplTest {
public void verifierAsInstaller_skipIntegrityVerification() throws Exception {
whitelistUsAsRuleProvider();
makeUsSystemApp();
+ mService =
+ new AppIntegrityManagerServiceImpl(
+ mMockContext,
+ mPackageManagerInternal,
+ mRuleEvaluationEngine,
+ mIntegrityFileManager,
+ mHandler,
+ /* checkIntegrityForRuleProviders= */ false);
ArgumentCaptor<BroadcastReceiver> broadcastReceiverCaptor =
ArgumentCaptor.forClass(BroadcastReceiver.class);
- verify(mMockContext)
+ verify(mMockContext, atLeastOnce())
.registerReceiver(broadcastReceiverCaptor.capture(), any(), any(), any());
Intent intent = makeVerificationIntent(TEST_FRAMEWORK_PACKAGE);
- when(mRuleEvaluationEngine.evaluate(any(), any())).thenReturn(
- IntegrityCheckResult.deny(/* rule= */ null));
+ when(mRuleEvaluationEngine.evaluate(any(), any()))
+ .thenReturn(IntegrityCheckResult.deny(/* rule= */ null));
broadcastReceiverCaptor.getValue().onReceive(mMockContext, intent);
runJobInHandler();
@@ -384,6 +386,16 @@ public class AppIntegrityManagerServiceImplTest {
1, PackageManagerInternal.INTEGRITY_VERIFICATION_ALLOW);
}
+ @Test
+ public void getCurrentRules() throws Exception {
+ whitelistUsAsRuleProvider();
+ makeUsSystemApp();
+ Rule rule = new Rule(IntegrityFormula.PACKAGE_NAME.equalTo("package"), Rule.DENY);
+ when(mIntegrityFileManager.readRules(any())).thenReturn(Arrays.asList(rule));
+
+ assertThat(mService.getCurrentRules().getList()).containsExactly(rule);
+ }
+
private void whitelistUsAsRuleProvider() {
Resources mockResources = mock(Resources.class);
when(mockResources.getStringArray(R.array.config_integrityRuleProviderPackages))
@@ -409,14 +421,12 @@ public class AppIntegrityManagerServiceImplTest {
private Intent makeVerificationIntent() throws Exception {
PackageInfo packageInfo =
- mRealContext.getPackageManager()
- .getPackageInfo(TEST_FRAMEWORK_PACKAGE, PackageManager.GET_SIGNATURES);
- doReturn(packageInfo)
- .when(mSpyPackageManager)
- .getPackageInfo(eq(INSTALLER), anyInt());
- doReturn(1)
- .when(mSpyPackageManager)
- .getPackageUid(eq(INSTALLER), anyInt());
+ mRealContext
+ .getPackageManager()
+ .getPackageInfo(TEST_FRAMEWORK_PACKAGE,
+ PackageManager.GET_SIGNING_CERTIFICATES);
+ doReturn(packageInfo).when(mSpyPackageManager).getPackageInfo(eq(INSTALLER), anyInt());
+ doReturn(1).when(mSpyPackageManager).getPackageUid(eq(INSTALLER), anyInt());
return makeVerificationIntent(INSTALLER);
}
diff --git a/services/tests/servicestests/src/com/android/server/integrity/model/IntegrityCheckResultTest.java b/services/tests/servicestests/src/com/android/server/integrity/model/IntegrityCheckResultTest.java
index ec1423958f8f..6c23ff6fcb3c 100644
--- a/services/tests/servicestests/src/com/android/server/integrity/model/IntegrityCheckResultTest.java
+++ b/services/tests/servicestests/src/com/android/server/integrity/model/IntegrityCheckResultTest.java
@@ -21,7 +21,8 @@ import static com.google.common.truth.Truth.assertThat;
import android.content.integrity.AtomicFormula;
import android.content.integrity.CompoundFormula;
import android.content.integrity.Rule;
-import android.util.StatsLog;
+
+import com.android.internal.util.FrameworkStatsLog;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -40,7 +41,7 @@ public class IntegrityCheckResultTest {
assertThat(allowResult.getEffect()).isEqualTo(IntegrityCheckResult.Effect.ALLOW);
assertThat(allowResult.getMatchedRules()).isEmpty();
assertThat(allowResult.getLoggingResponse())
- .isEqualTo(StatsLog.INTEGRITY_CHECK_RESULT_REPORTED__RESPONSE__ALLOWED);
+ .isEqualTo(FrameworkStatsLog.INTEGRITY_CHECK_RESULT_REPORTED__RESPONSE__ALLOWED);
}
@Test
@@ -58,7 +59,8 @@ public class IntegrityCheckResultTest {
assertThat(allowResult.getEffect()).isEqualTo(IntegrityCheckResult.Effect.ALLOW);
assertThat(allowResult.getMatchedRules()).containsExactly(forceAllowRule);
assertThat(allowResult.getLoggingResponse())
- .isEqualTo(StatsLog.INTEGRITY_CHECK_RESULT_REPORTED__RESPONSE__FORCE_ALLOWED);
+ .isEqualTo(
+ FrameworkStatsLog.INTEGRITY_CHECK_RESULT_REPORTED__RESPONSE__FORCE_ALLOWED);
}
@Test
@@ -76,7 +78,7 @@ public class IntegrityCheckResultTest {
assertThat(denyResult.getEffect()).isEqualTo(IntegrityCheckResult.Effect.DENY);
assertThat(denyResult.getMatchedRules()).containsExactly(failedRule);
assertThat(denyResult.getLoggingResponse())
- .isEqualTo(StatsLog.INTEGRITY_CHECK_RESULT_REPORTED__RESPONSE__REJECTED);
+ .isEqualTo(FrameworkStatsLog.INTEGRITY_CHECK_RESULT_REPORTED__RESPONSE__REJECTED);
}
@Test
diff --git a/services/tests/servicestests/src/com/android/server/integrity/serializer/RuleBinarySerializerTest.java b/services/tests/servicestests/src/com/android/server/integrity/serializer/RuleBinarySerializerTest.java
index b3d949395d5c..b87877907d4f 100644
--- a/services/tests/servicestests/src/com/android/server/integrity/serializer/RuleBinarySerializerTest.java
+++ b/services/tests/servicestests/src/com/android/server/integrity/serializer/RuleBinarySerializerTest.java
@@ -203,8 +203,8 @@ public class RuleBinarySerializerTest {
+ getBits(DEFAULT_FORMAT_VERSION_BYTES.length, /* numOfBits= */ 32)
+ SERIALIZED_END_INDEXING_KEY
+ getBits(
- DEFAULT_FORMAT_VERSION_BYTES.length + getBytes(expectedBits).length,
- /* numOfBits= */ 32);
+ DEFAULT_FORMAT_VERSION_BYTES.length + getBytes(expectedBits).length,
+ /* numOfBits= */ 32);
expectedIndexingOutputStream.write(
getBytes(
expectedIndexingBitsForIndexed
@@ -427,8 +427,7 @@ public class RuleBinarySerializerTest {
Rule rule =
new Rule(
new AtomicFormula.LongAtomicFormula(
- AtomicFormula.VERSION_CODE, AtomicFormula.EQ,
- versionCode),
+ AtomicFormula.VERSION_CODE, AtomicFormula.EQ, versionCode),
Rule.DENY);
RuleSerializer binarySerializer = new RuleBinarySerializer();
String expectedBits =
@@ -456,8 +455,7 @@ public class RuleBinarySerializerTest {
String preInstalled = "1";
Rule rule =
new Rule(
- new AtomicFormula.BooleanAtomicFormula(
- AtomicFormula.PRE_INSTALLED, true),
+ new AtomicFormula.BooleanAtomicFormula(AtomicFormula.PRE_INSTALLED, true),
Rule.DENY);
RuleSerializer binarySerializer = new RuleBinarySerializer();
String expectedBits =
diff --git a/services/tests/servicestests/src/com/android/server/location/MockableLocationProviderTest.java b/services/tests/servicestests/src/com/android/server/location/MockableLocationProviderTest.java
new file mode 100644
index 000000000000..6fafe113d90d
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/location/MockableLocationProviderTest.java
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.location;
+
+import static androidx.test.ext.truth.location.LocationSubject.assertThat;
+
+import static com.android.internal.location.ProviderRequest.EMPTY_REQUEST;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import android.location.Criteria;
+import android.location.Location;
+import android.platform.test.annotations.Presubmit;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.internal.location.ProviderProperties;
+import com.android.internal.location.ProviderRequest;
+import com.android.server.location.test.FakeProvider;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.LinkedList;
+import java.util.List;
+
+@Presubmit
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class MockableLocationProviderTest {
+
+ private Object mLock;
+ private ListenerCapture mListener;
+
+ private AbstractLocationProvider mRealProvider;
+ private MockProvider mMockProvider;
+
+ private MockableLocationProvider mProvider;
+
+ @Before
+ public void setUp() {
+ mLock = new Object();
+ mListener = new ListenerCapture();
+
+ mRealProvider = spy(new FakeProvider());
+ mMockProvider = spy(new MockProvider(new ProviderProperties(
+ false,
+ false,
+ false,
+ false,
+ true,
+ true,
+ true,
+ Criteria.POWER_LOW,
+ Criteria.ACCURACY_FINE)));
+
+ mProvider = new MockableLocationProvider(mLock, mListener);
+ mProvider.setRealProvider(mRealProvider);
+ }
+
+ @Test
+ public void testSetProvider() {
+ assertThat(mProvider.getProvider()).isEqualTo(mRealProvider);
+
+ mProvider.setMockProvider(mMockProvider);
+ assertThat(mProvider.getProvider()).isEqualTo(mMockProvider);
+
+ mProvider.setMockProvider(null);
+ assertThat(mProvider.getProvider()).isEqualTo(mRealProvider);
+
+ mProvider.setRealProvider(null);
+ assertThat(mProvider.getProvider()).isNull();
+ }
+
+ @Test
+ public void testSetRequest() {
+ assertThat(mProvider.getCurrentRequest()).isEqualTo(EMPTY_REQUEST);
+ verify(mRealProvider, times(1)).onSetRequest(EMPTY_REQUEST);
+
+ ProviderRequest request = new ProviderRequest.Builder().setInterval(1).build();
+ mProvider.setRequest(request);
+
+ assertThat(mProvider.getCurrentRequest()).isEqualTo(request);
+ verify(mRealProvider, times(1)).onSetRequest(request);
+
+ mProvider.setMockProvider(mMockProvider);
+ assertThat(mProvider.getCurrentRequest()).isEqualTo(request);
+ verify(mRealProvider, times(2)).onSetRequest(EMPTY_REQUEST);
+ verify(mMockProvider, times(1)).onSetRequest(request);
+
+ mProvider.setMockProvider(null);
+ assertThat(mProvider.getCurrentRequest()).isEqualTo(request);
+ verify(mMockProvider, times(1)).onSetRequest(EMPTY_REQUEST);
+ verify(mRealProvider, times(2)).onSetRequest(request);
+
+ mProvider.setRealProvider(null);
+ assertThat(mProvider.getCurrentRequest()).isEqualTo(request);
+ verify(mRealProvider, times(3)).onSetRequest(EMPTY_REQUEST);
+ }
+
+ @Test
+ public void testRequestSetAllowed() {
+ mProvider.requestSetAllowed(true);
+ verify(mRealProvider, times(1)).onRequestSetAllowed(true);
+
+ mProvider.setMockProvider(mMockProvider);
+ mProvider.requestSetAllowed(true);
+ verify(mMockProvider, times(1)).onRequestSetAllowed(true);
+ }
+
+ @Test
+ public void testSendExtraCommand() {
+ mProvider.sendExtraCommand(0, 0, "command", null);
+ verify(mRealProvider, times(1)).onExtraCommand(0, 0, "command", null);
+
+ mProvider.setMockProvider(mMockProvider);
+ mProvider.sendExtraCommand(0, 0, "command", null);
+ verify(mMockProvider, times(1)).onExtraCommand(0, 0, "command", null);
+ }
+
+ @Test
+ public void testSetState() {
+ assertThat(mProvider.getState().allowed).isFalse();
+
+ AbstractLocationProvider.State newState;
+
+ mRealProvider.setAllowed(true);
+ newState = mListener.getNextNewState();
+ assertThat(newState).isNotNull();
+ assertThat(newState.allowed).isTrue();
+
+ mProvider.setMockProvider(mMockProvider);
+ newState = mListener.getNextNewState();
+ assertThat(newState).isNotNull();
+ assertThat(newState.allowed).isFalse();
+
+ mMockProvider.setAllowed(true);
+ newState = mListener.getNextNewState();
+ assertThat(newState).isNotNull();
+ assertThat(newState.allowed).isTrue();
+
+ mRealProvider.setAllowed(false);
+ assertThat(mListener.getNextNewState()).isNull();
+
+ mProvider.setMockProvider(null);
+ newState = mListener.getNextNewState();
+ assertThat(newState).isNotNull();
+ assertThat(newState.allowed).isFalse();
+ }
+
+ @Test
+ public void testReportLocation() {
+ Location realLocation = new Location("real");
+ Location mockLocation = new Location("mock");
+
+ mRealProvider.reportLocation(realLocation);
+ assertThat(mListener.getNextLocation()).isEqualTo(realLocation);
+
+ mProvider.setMockProvider(mMockProvider);
+ mRealProvider.reportLocation(realLocation);
+ mMockProvider.reportLocation(mockLocation);
+ assertThat(mListener.getNextLocation()).isEqualTo(mockLocation);
+ }
+
+ private class ListenerCapture implements AbstractLocationProvider.Listener {
+
+ private final LinkedList<AbstractLocationProvider.State> mNewStates = new LinkedList<>();
+ private final LinkedList<Location> mLocations = new LinkedList<>();
+
+ @Override
+ public void onStateChanged(AbstractLocationProvider.State oldState,
+ AbstractLocationProvider.State newState) {
+ assertThat(Thread.holdsLock(mLock)).isTrue();
+ mNewStates.add(newState);
+ }
+
+ private AbstractLocationProvider.State getNextNewState() {
+ return mNewStates.poll();
+ }
+
+ @Override
+ public void onReportLocation(Location location) {
+ assertThat(Thread.holdsLock(mLock)).isTrue();
+ mLocations.add(location);
+ }
+
+ private Location getNextLocation() {
+ return mLocations.poll();
+ }
+
+ @Override
+ public void onReportLocation(List<Location> locations) {}
+ }
+}
diff --git a/services/tests/servicestests/src/com/android/server/location/test/FakeProvider.java b/services/tests/servicestests/src/com/android/server/location/test/FakeProvider.java
new file mode 100644
index 000000000000..762080fe5745
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/location/test/FakeProvider.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.location.test;
+
+import android.os.Bundle;
+
+import com.android.internal.location.ProviderRequest;
+import com.android.server.location.AbstractLocationProvider;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.Collections;
+
+public class FakeProvider extends AbstractLocationProvider {
+
+ public FakeProvider() {
+ super(Runnable::run, Collections.emptySet());
+ }
+
+ @Override
+ protected void onSetRequest(ProviderRequest request) {}
+
+ @Override
+ protected void onExtraCommand(int uid, int pid, String command, Bundle extras) {}
+
+ @Override
+ protected void onRequestSetAllowed(boolean allowed) {}
+
+ @Override
+ public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {}
+}
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTestable.java b/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTestable.java
index 271e8e27aed4..1ff451b50c42 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTestable.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTestable.java
@@ -147,6 +147,12 @@ public class LockSettingsServiceTestable extends LockSettingsService {
public RecoverableKeyStoreManager getRecoverableKeyStoreManager(KeyStore keyStore) {
return mRecoverableKeyStoreManager;
}
+
+ @Override
+ public ManagedProfilePasswordCache getManagedProfilePasswordCache() {
+ return mock(ManagedProfilePasswordCache.class);
+ }
+
}
public MockInjector mInjector;
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowDataTest.java b/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowDataTest.java
index 54c552b06c23..b5c6d0425bb1 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowDataTest.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowDataTest.java
@@ -21,16 +21,22 @@ import static org.junit.Assert.assertThat;
import androidx.test.runner.AndroidJUnit4;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import javax.crypto.spec.SecretKeySpec;
-
/**
* atest FrameworksServicesTests:RebootEscrowDataTest
*/
@RunWith(AndroidJUnit4.class)
public class RebootEscrowDataTest {
+ private RebootEscrowKey mKey;
+
+ @Before
+ public void generateKey() throws Exception {
+ mKey = RebootEscrowKey.generate();
+ }
+
private static byte[] getTestSp() {
byte[] testSp = new byte[10];
for (int i = 0; i < testSp.length; i++) {
@@ -41,30 +47,30 @@ public class RebootEscrowDataTest {
@Test(expected = NullPointerException.class)
public void fromEntries_failsOnNull() throws Exception {
- RebootEscrowData.fromSyntheticPassword((byte) 2, null);
+ RebootEscrowData.fromSyntheticPassword(mKey, (byte) 2, null);
}
@Test(expected = NullPointerException.class)
public void fromEncryptedData_failsOnNullData() throws Exception {
byte[] testSp = getTestSp();
- RebootEscrowData expected = RebootEscrowData.fromSyntheticPassword((byte) 2, testSp);
- SecretKeySpec key = RebootEscrowData.fromKeyBytes(expected.getKey());
+ RebootEscrowData expected = RebootEscrowData.fromSyntheticPassword(mKey, (byte) 2, testSp);
+ RebootEscrowKey key = RebootEscrowKey.fromKeyBytes(expected.getKey().getKeyBytes());
RebootEscrowData.fromEncryptedData(key, null);
}
@Test(expected = NullPointerException.class)
public void fromEncryptedData_failsOnNullKey() throws Exception {
byte[] testSp = getTestSp();
- RebootEscrowData expected = RebootEscrowData.fromSyntheticPassword((byte) 2, testSp);
+ RebootEscrowData expected = RebootEscrowData.fromSyntheticPassword(mKey, (byte) 2, testSp);
RebootEscrowData.fromEncryptedData(null, expected.getBlob());
}
@Test
public void fromEntries_loopback_success() throws Exception {
byte[] testSp = getTestSp();
- RebootEscrowData expected = RebootEscrowData.fromSyntheticPassword((byte) 2, testSp);
+ RebootEscrowData expected = RebootEscrowData.fromSyntheticPassword(mKey, (byte) 2, testSp);
- SecretKeySpec key = RebootEscrowData.fromKeyBytes(expected.getKey());
+ RebootEscrowKey key = RebootEscrowKey.fromKeyBytes(expected.getKey().getKeyBytes());
RebootEscrowData actual = RebootEscrowData.fromEncryptedData(key, expected.getBlob());
assertThat(actual.getSpVersion(), is(expected.getSpVersion()));
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java b/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java
index 78a5a0b69fff..44d88d2b44d3 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/RebootEscrowManagerTests.java
@@ -18,6 +18,7 @@ package com.android.server.locksettings;
import static android.content.pm.UserInfo.FLAG_FULL;
import static android.content.pm.UserInfo.FLAG_PRIMARY;
+import static android.content.pm.UserInfo.FLAG_PROFILE;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -27,6 +28,7 @@ import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doThrow;
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.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
@@ -56,7 +58,9 @@ import java.util.ArrayList;
@RunWith(AndroidJUnit4.class)
public class RebootEscrowManagerTests {
protected static final int PRIMARY_USER_ID = 0;
- protected static final int NONSECURE_USER_ID = 10;
+ protected static final int WORK_PROFILE_USER_ID = 10;
+ protected static final int NONSECURE_SECONDARY_USER_ID = 20;
+ protected static final int SECURE_SECONDARY_USER_ID = 21;
private static final byte FAKE_SP_VERSION = 1;
private static final byte[] FAKE_AUTH_TOKEN = new byte[] {
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
@@ -107,10 +111,14 @@ public class RebootEscrowManagerTests {
ArrayList<UserInfo> users = new ArrayList<>();
users.add(new UserInfo(PRIMARY_USER_ID, "primary", FLAG_PRIMARY));
- users.add(new UserInfo(NONSECURE_USER_ID, "non-secure", FLAG_FULL));
+ users.add(new UserInfo(WORK_PROFILE_USER_ID, "work", FLAG_PROFILE));
+ users.add(new UserInfo(NONSECURE_SECONDARY_USER_ID, "non-secure", FLAG_FULL));
+ users.add(new UserInfo(SECURE_SECONDARY_USER_ID, "secure", FLAG_FULL));
when(mUserManager.getUsers()).thenReturn(users);
when(mCallbacks.isUserSecure(PRIMARY_USER_ID)).thenReturn(true);
- when(mCallbacks.isUserSecure(NONSECURE_USER_ID)).thenReturn(false);
+ when(mCallbacks.isUserSecure(WORK_PROFILE_USER_ID)).thenReturn(true);
+ when(mCallbacks.isUserSecure(NONSECURE_SECONDARY_USER_ID)).thenReturn(false);
+ when(mCallbacks.isUserSecure(SECURE_SECONDARY_USER_ID)).thenReturn(true);
mService = new RebootEscrowManager(new MockInjector(mContext, mUserManager, mRebootEscrow),
mCallbacks, mStorage);
}
@@ -154,6 +162,30 @@ public class RebootEscrowManagerTests {
assertTrue(mService.armRebootEscrowIfNeeded());
verify(mRebootEscrow).storeKey(any());
+
+ assertTrue(mStorage.hasRebootEscrow(PRIMARY_USER_ID));
+ assertFalse(mStorage.hasRebootEscrow(NONSECURE_SECONDARY_USER_ID));
+ }
+
+ @Test
+ public void armService_MultipleUsers_Success() throws Exception {
+ RebootEscrowListener mockListener = mock(RebootEscrowListener.class);
+ mService.setRebootEscrowListener(mockListener);
+ mService.prepareRebootEscrow();
+
+ clearInvocations(mRebootEscrow);
+ mService.callToRebootEscrowIfNeeded(PRIMARY_USER_ID, FAKE_SP_VERSION, FAKE_AUTH_TOKEN);
+ verify(mockListener).onPreparedForReboot(eq(true));
+ mService.callToRebootEscrowIfNeeded(SECURE_SECONDARY_USER_ID, FAKE_SP_VERSION,
+ FAKE_AUTH_TOKEN);
+ verify(mRebootEscrow, never()).storeKey(any());
+
+ assertTrue(mService.armRebootEscrowIfNeeded());
+ verify(mRebootEscrow, times(1)).storeKey(any());
+
+ assertTrue(mStorage.hasRebootEscrow(PRIMARY_USER_ID));
+ assertTrue(mStorage.hasRebootEscrow(SECURE_SECONDARY_USER_ID));
+ assertFalse(mStorage.hasRebootEscrow(NONSECURE_SECONDARY_USER_ID));
}
@Test
diff --git a/services/tests/servicestests/src/com/android/server/people/PeopleServiceTest.java b/services/tests/servicestests/src/com/android/server/people/PeopleServiceTest.java
index d3166b91dc9e..4ae374abb7c2 100644
--- a/services/tests/servicestests/src/com/android/server/people/PeopleServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/people/PeopleServiceTest.java
@@ -28,6 +28,7 @@ import android.app.prediction.IPredictionCallback;
import android.content.Context;
import android.content.pm.ParceledListSlice;
import android.os.Binder;
+import android.os.Bundle;
import android.os.RemoteException;
import com.android.server.LocalServices;
@@ -76,6 +77,7 @@ public final class PeopleServiceTest {
mPredictionContext = new AppPredictionContext.Builder(mContext)
.setUiSurface(APP_PREDICTION_SHARE_UI_SURFACE)
.setPredictedTargetCount(APP_PREDICTION_TARGET_COUNT)
+ .setExtras(new Bundle())
.build();
}
diff --git a/services/tests/servicestests/src/com/android/server/people/data/CallLogQueryHelperTest.java b/services/tests/servicestests/src/com/android/server/people/data/CallLogQueryHelperTest.java
new file mode 100644
index 000000000000..a54501029712
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/people/data/CallLogQueryHelperTest.java
@@ -0,0 +1,169 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.data;
+
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.when;
+
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.net.Uri;
+import android.provider.CallLog.Calls;
+import android.test.mock.MockContentProvider;
+import android.test.mock.MockContentResolver;
+import android.test.mock.MockContext;
+import android.util.ArrayMap;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.BiConsumer;
+
+@RunWith(JUnit4.class)
+public final class CallLogQueryHelperTest {
+
+ private static final String CALL_LOG_AUTHORITY = "call_log";
+ private static final String NORMALIZED_PHONE_NUMBER = "+16505551111";
+
+ private static final String[] CALL_LOG_COLUMNS = new String[] {
+ Calls.CACHED_NORMALIZED_NUMBER, Calls.DATE, Calls.DURATION, Calls.TYPE };
+
+ @Mock
+ private MockContext mContext;
+
+ private MatrixCursor mCursor;
+ private EventConsumer mEventConsumer;
+ private CallLogQueryHelper mHelper;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mCursor = new MatrixCursor(CALL_LOG_COLUMNS);
+
+ MockContentResolver contentResolver = new MockContentResolver();
+ contentResolver.addProvider(CALL_LOG_AUTHORITY, new CallLogContentProvider());
+ when(mContext.getContentResolver()).thenReturn(contentResolver);
+
+ mEventConsumer = new EventConsumer();
+ mHelper = new CallLogQueryHelper(mContext, mEventConsumer);
+ }
+
+ @Test
+ public void testQueryNoCalls() {
+ assertFalse(mHelper.querySince(50L));
+ assertFalse(mEventConsumer.mEventMap.containsKey(NORMALIZED_PHONE_NUMBER));
+ }
+
+ @Test
+ public void testQueryIncomingCall() {
+ mCursor.addRow(new Object[] {
+ NORMALIZED_PHONE_NUMBER, /* date= */ 100L, /* duration= */ 30L,
+ /* type= */ Calls.INCOMING_TYPE });
+
+ assertTrue(mHelper.querySince(50L));
+ List<Event> events = mEventConsumer.mEventMap.get(NORMALIZED_PHONE_NUMBER);
+
+ assertEquals(100L, mHelper.getLastCallTimestamp());
+ assertEquals(1, events.size());
+ assertEquals(Event.TYPE_CALL_INCOMING, events.get(0).getType());
+ assertEquals(100L, events.get(0).getTimestamp());
+ assertEquals(30L, events.get(0).getDurationSeconds());
+ }
+
+ @Test
+ public void testQueryOutgoingCall() {
+ mCursor.addRow(new Object[] {
+ NORMALIZED_PHONE_NUMBER, /* date= */ 100L, /* duration= */ 40L,
+ /* type= */ Calls.OUTGOING_TYPE });
+
+ assertTrue(mHelper.querySince(50L));
+ List<Event> events = mEventConsumer.mEventMap.get(NORMALIZED_PHONE_NUMBER);
+
+ assertEquals(100L, mHelper.getLastCallTimestamp());
+ assertEquals(1, events.size());
+ assertEquals(Event.TYPE_CALL_OUTGOING, events.get(0).getType());
+ assertEquals(100L, events.get(0).getTimestamp());
+ assertEquals(40L, events.get(0).getDurationSeconds());
+ }
+
+ @Test
+ public void testQueryMissedCall() {
+ mCursor.addRow(new Object[] {
+ NORMALIZED_PHONE_NUMBER, /* date= */ 100L, /* duration= */ 0L,
+ /* type= */ Calls.MISSED_TYPE });
+
+ assertTrue(mHelper.querySince(50L));
+ List<Event> events = mEventConsumer.mEventMap.get(NORMALIZED_PHONE_NUMBER);
+
+ assertEquals(100L, mHelper.getLastCallTimestamp());
+ assertEquals(1, events.size());
+ assertEquals(Event.TYPE_CALL_MISSED, events.get(0).getType());
+ assertEquals(100L, events.get(0).getTimestamp());
+ assertEquals(0L, events.get(0).getDurationSeconds());
+ }
+
+ @Test
+ public void testQueryMultipleCalls() {
+ mCursor.addRow(new Object[] {
+ NORMALIZED_PHONE_NUMBER, /* date= */ 100L, /* duration= */ 0L,
+ /* type= */ Calls.MISSED_TYPE });
+ mCursor.addRow(new Object[] {
+ NORMALIZED_PHONE_NUMBER, /* date= */ 110L, /* duration= */ 40L,
+ /* type= */ Calls.OUTGOING_TYPE });
+
+ assertTrue(mHelper.querySince(50L));
+ List<Event> events = mEventConsumer.mEventMap.get(NORMALIZED_PHONE_NUMBER);
+
+ assertEquals(110L, mHelper.getLastCallTimestamp());
+ assertEquals(2, events.size());
+ assertEquals(Event.TYPE_CALL_MISSED, events.get(0).getType());
+ assertEquals(100L, events.get(0).getTimestamp());
+ assertEquals(Event.TYPE_CALL_OUTGOING, events.get(1).getType());
+ assertEquals(110L, events.get(1).getTimestamp());
+ assertEquals(40L, events.get(1).getDurationSeconds());
+ }
+
+ private class EventConsumer implements BiConsumer<String, Event> {
+
+ private final Map<String, List<Event>> mEventMap = new ArrayMap<>();
+
+ @Override
+ public void accept(String phoneNumber, Event event) {
+ mEventMap.computeIfAbsent(phoneNumber, key -> new ArrayList<>()).add(event);
+ }
+ }
+
+ private class CallLogContentProvider extends MockContentProvider {
+
+ @Override
+ public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
+ String sortOrder) {
+ return mCursor;
+ }
+ }
+}
diff --git a/services/tests/servicestests/src/com/android/server/people/data/ConversationStoreTest.java b/services/tests/servicestests/src/com/android/server/people/data/ConversationStoreTest.java
index a40c6ab90197..bbcb54ef8d3e 100644
--- a/services/tests/servicestests/src/com/android/server/people/data/ConversationStoreTest.java
+++ b/services/tests/servicestests/src/com/android/server/people/data/ConversationStoreTest.java
@@ -37,6 +37,7 @@ import java.util.Set;
public final class ConversationStoreTest {
private static final String SHORTCUT_ID = "abc";
+ private static final String NOTIFICATION_CHANNEL_ID = "test : abc";
private static final LocusId LOCUS_ID = new LocusId("def");
private static final Uri CONTACT_URI = Uri.parse("tel:+1234567890");
private static final String PHONE_NUMBER = "+1234567890";
@@ -59,16 +60,19 @@ public final class ConversationStoreTest {
@Test
public void testUpdateConversation() {
- ConversationInfo original =
- buildConversationInfo(SHORTCUT_ID, LOCUS_ID, CONTACT_URI, PHONE_NUMBER);
+ ConversationInfo original = buildConversationInfo(SHORTCUT_ID, LOCUS_ID, CONTACT_URI,
+ PHONE_NUMBER, null);
mConversationStore.addOrUpdate(original);
assertEquals(LOCUS_ID, mConversationStore.getConversation(SHORTCUT_ID).getLocusId());
+ assertNull(mConversationStore.getConversation(SHORTCUT_ID).getNotificationChannelId());
LocusId newLocusId = new LocusId("ghi");
ConversationInfo update = buildConversationInfo(
- SHORTCUT_ID, newLocusId, CONTACT_URI, PHONE_NUMBER);
+ SHORTCUT_ID, newLocusId, CONTACT_URI, PHONE_NUMBER, NOTIFICATION_CHANNEL_ID);
mConversationStore.addOrUpdate(update);
- assertEquals(newLocusId, mConversationStore.getConversation(SHORTCUT_ID).getLocusId());
+ ConversationInfo updated = mConversationStore.getConversation(SHORTCUT_ID);
+ assertEquals(newLocusId, updated.getLocusId());
+ assertEquals(NOTIFICATION_CHANNEL_ID, updated.getNotificationChannelId());
}
@Test
@@ -97,8 +101,8 @@ public final class ConversationStoreTest {
@Test
public void testGetConversationByLocusId() {
- ConversationInfo in =
- buildConversationInfo(SHORTCUT_ID, LOCUS_ID, CONTACT_URI, PHONE_NUMBER);
+ ConversationInfo in = buildConversationInfo(SHORTCUT_ID, LOCUS_ID, CONTACT_URI,
+ PHONE_NUMBER, NOTIFICATION_CHANNEL_ID);
mConversationStore.addOrUpdate(in);
ConversationInfo out = mConversationStore.getConversationByLocusId(LOCUS_ID);
assertNotNull(out);
@@ -110,8 +114,8 @@ public final class ConversationStoreTest {
@Test
public void testGetConversationByContactUri() {
- ConversationInfo in =
- buildConversationInfo(SHORTCUT_ID, LOCUS_ID, CONTACT_URI, PHONE_NUMBER);
+ ConversationInfo in = buildConversationInfo(SHORTCUT_ID, LOCUS_ID, CONTACT_URI,
+ PHONE_NUMBER, NOTIFICATION_CHANNEL_ID);
mConversationStore.addOrUpdate(in);
ConversationInfo out = mConversationStore.getConversationByContactUri(CONTACT_URI);
assertNotNull(out);
@@ -123,8 +127,8 @@ public final class ConversationStoreTest {
@Test
public void testGetConversationByPhoneNumber() {
- ConversationInfo in =
- buildConversationInfo(SHORTCUT_ID, LOCUS_ID, CONTACT_URI, PHONE_NUMBER);
+ ConversationInfo in = buildConversationInfo(SHORTCUT_ID, LOCUS_ID, CONTACT_URI,
+ PHONE_NUMBER, NOTIFICATION_CHANNEL_ID);
mConversationStore.addOrUpdate(in);
ConversationInfo out = mConversationStore.getConversationByPhoneNumber(PHONE_NUMBER);
assertNotNull(out);
@@ -134,17 +138,34 @@ public final class ConversationStoreTest {
assertNull(mConversationStore.getConversationByPhoneNumber(PHONE_NUMBER));
}
+ @Test
+ public void testGetConversationByNotificationChannelId() {
+ ConversationInfo in = buildConversationInfo(SHORTCUT_ID, LOCUS_ID, CONTACT_URI,
+ PHONE_NUMBER, NOTIFICATION_CHANNEL_ID);
+ mConversationStore.addOrUpdate(in);
+ ConversationInfo out = mConversationStore.getConversationByNotificationChannelId(
+ NOTIFICATION_CHANNEL_ID);
+ assertNotNull(out);
+ assertEquals(SHORTCUT_ID, out.getShortcutId());
+
+ mConversationStore.deleteConversation(SHORTCUT_ID);
+ assertNull(
+ mConversationStore.getConversationByNotificationChannelId(NOTIFICATION_CHANNEL_ID));
+ }
+
private static ConversationInfo buildConversationInfo(String shortcutId) {
- return buildConversationInfo(shortcutId, null, null, null);
+ return buildConversationInfo(shortcutId, null, null, null, null);
}
private static ConversationInfo buildConversationInfo(
- String shortcutId, LocusId locusId, Uri contactUri, String phoneNumber) {
+ String shortcutId, LocusId locusId, Uri contactUri, String phoneNumber,
+ String notificationChannelId) {
return new ConversationInfo.Builder()
.setShortcutId(shortcutId)
.setLocusId(locusId)
.setContactUri(contactUri)
.setContactPhoneNumber(phoneNumber)
+ .setNotificationChannelId(notificationChannelId)
.setShortcutFlags(ShortcutInfo.FLAG_LONG_LIVED)
.setVip(true)
.setBubbled(true)
diff --git a/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java b/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
index 9f3d656188e1..ad5c57dd11bc 100644
--- a/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/people/data/DataManagerTest.java
@@ -16,13 +16,12 @@
package com.android.server.people.data;
-import static android.app.usage.UsageEvents.Event.SHORTCUT_INVOCATION;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
@@ -38,16 +37,13 @@ import android.app.Person;
import android.app.prediction.AppTarget;
import android.app.prediction.AppTargetEvent;
import android.app.prediction.AppTargetId;
-import android.app.usage.UsageEvents;
import android.app.usage.UsageStatsManagerInternal;
-import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ShortcutInfo;
import android.content.pm.ShortcutManager;
-import android.content.pm.ShortcutManager.ShareShortcutInfo;
import android.content.pm.ShortcutServiceInternal;
import android.content.pm.UserInfo;
import android.database.ContentObserver;
@@ -58,6 +54,7 @@ import android.os.UserManager;
import android.provider.ContactsContract;
import android.service.notification.NotificationListenerService;
import android.service.notification.StatusBarNotification;
+import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
import android.util.Range;
@@ -79,6 +76,7 @@ import java.util.List;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
+import java.util.function.BiConsumer;
@RunWith(JUnit4.class)
public final class DataManagerTest {
@@ -90,6 +88,7 @@ public final class DataManagerTest {
private static final String TEST_SHORTCUT_ID = "sc";
private static final String CONTACT_URI = "content://com.android.contacts/contacts/lookup/123";
private static final String PHONE_NUMBER = "+1234567890";
+ private static final long MILLIS_PER_MINUTE = 1000L * 60L;
@Mock private Context mContext;
@Mock private ShortcutServiceInternal mShortcutServiceInternal;
@@ -97,6 +96,7 @@ public final class DataManagerTest {
@Mock private ShortcutManager mShortcutManager;
@Mock private UserManager mUserManager;
@Mock private TelephonyManager mTelephonyManager;
+ @Mock private TelecomManager mTelecomManager;
@Mock private ContentResolver mContentResolver;
@Mock private ScheduledExecutorService mExecutorService;
@Mock private ScheduledFuture mScheduledFuture;
@@ -117,6 +117,9 @@ public final class DataManagerTest {
when(mContext.getMainLooper()).thenReturn(Looper.getMainLooper());
+ Context originalContext = getInstrumentation().getTargetContext();
+ when(mContext.getApplicationInfo()).thenReturn(originalContext.getApplicationInfo());
+
when(mContext.getSystemService(Context.SHORTCUT_SERVICE)).thenReturn(mShortcutManager);
when(mContext.getSystemServiceName(ShortcutManager.class)).thenReturn(
Context.SHORTCUT_SERVICE);
@@ -127,6 +130,11 @@ public final class DataManagerTest {
when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+ when(mContext.getSystemService(Context.TELECOM_SERVICE)).thenReturn(mTelecomManager);
+ when(mContext.getSystemServiceName(TelecomManager.class)).thenReturn(
+ Context.TELECOM_SERVICE);
+ when(mTelecomManager.getDefaultDialerPackage(anyInt())).thenReturn(TEST_PKG_NAME);
+
when(mExecutorService.scheduleAtFixedRate(any(Runnable.class), anyLong(), anyLong(), any(
TimeUnit.class))).thenReturn(mScheduledFuture);
@@ -220,32 +228,7 @@ public final class DataManagerTest {
mDataManager.getShortcut(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID);
verify(mShortcutServiceInternal).getShortcuts(anyInt(), anyString(), anyLong(),
eq(TEST_PKG_NAME), eq(Collections.singletonList(TEST_SHORTCUT_ID)),
- eq(null), anyInt(), eq(USER_ID_PRIMARY), anyInt(), anyInt());
- }
-
- @Test
- public void testGetShareTargets() {
- mDataManager.onUserUnlocked(USER_ID_PRIMARY);
-
- ShortcutInfo shortcut1 =
- buildShortcutInfo("pkg_1", USER_ID_PRIMARY, "sc_1", buildPerson());
- ShareShortcutInfo shareShortcut1 =
- new ShareShortcutInfo(shortcut1, new ComponentName("pkg_1", "activity"));
-
- ShortcutInfo shortcut2 =
- buildShortcutInfo("pkg_2", USER_ID_PRIMARY, "sc_2", buildPerson());
- ShareShortcutInfo shareShortcut2 =
- new ShareShortcutInfo(shortcut2, new ComponentName("pkg_2", "activity"));
- mDataManager.onShortcutAddedOrUpdated(shortcut2);
-
- when(mShortcutManager.getShareTargets(any(IntentFilter.class)))
- .thenReturn(Arrays.asList(shareShortcut1, shareShortcut2));
-
- List<ShareShortcutInfo> shareShortcuts =
- mDataManager.getConversationShareTargets(new IntentFilter());
- // Only "sc_2" is stored as a conversation.
- assertEquals(1, shareShortcuts.size());
- assertEquals("sc_2", shareShortcuts.get(0).getShortcutInfo().getId());
+ eq(null), eq(null), anyInt(), eq(USER_ID_PRIMARY), anyInt(), anyInt());
}
@Test
@@ -276,6 +259,7 @@ public final class DataManagerTest {
@Test
public void testContactsChanged() {
mDataManager.onUserUnlocked(USER_ID_PRIMARY);
+ mDataManager.onUserUnlocked(USER_ID_SECONDARY);
ShortcutInfo shortcut = buildShortcutInfo(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID,
buildPerson());
@@ -302,6 +286,7 @@ public final class DataManagerTest {
@Test
public void testNotificationListener() {
mDataManager.onUserUnlocked(USER_ID_PRIMARY);
+ mDataManager.onUserUnlocked(USER_ID_SECONDARY);
ShortcutInfo shortcut = buildShortcutInfo(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID,
buildPerson());
@@ -323,32 +308,60 @@ public final class DataManagerTest {
}
@Test
- public void testQueryUsageStatsService() {
- UsageEvents.Event e = new UsageEvents.Event(SHORTCUT_INVOCATION,
- System.currentTimeMillis());
- e.mPackage = TEST_PKG_NAME;
- e.mShortcutId = TEST_SHORTCUT_ID;
- List<UsageEvents.Event> events = new ArrayList<>();
- events.add(e);
- UsageEvents usageEvents = new UsageEvents(events, new String[]{});
- when(mUsageStatsManagerInternal.queryEventsForUser(anyInt(), anyLong(), anyLong(),
- anyBoolean())).thenReturn(usageEvents);
-
+ public void testCallLogContentObserver() {
mDataManager.onUserUnlocked(USER_ID_PRIMARY);
+ mDataManager.onUserUnlocked(USER_ID_SECONDARY);
ShortcutInfo shortcut = buildShortcutInfo(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID,
buildPerson());
mDataManager.onShortcutAddedOrUpdated(shortcut);
- mDataManager.queryUsageStatsService(USER_ID_PRIMARY, 0L, Long.MAX_VALUE);
+ ContentObserver contentObserver = mDataManager.getCallLogContentObserverForTesting();
+ contentObserver.onChange(false);
+ long currentTimestamp = System.currentTimeMillis();
+ mInjector.mCallLogQueryHelper.mEventConsumer.accept(PHONE_NUMBER,
+ new Event(currentTimestamp - MILLIS_PER_MINUTE * 15L, Event.TYPE_CALL_OUTGOING));
+ mInjector.mCallLogQueryHelper.mEventConsumer.accept(PHONE_NUMBER,
+ new Event(currentTimestamp - MILLIS_PER_MINUTE * 10L, Event.TYPE_CALL_INCOMING));
+ mInjector.mCallLogQueryHelper.mEventConsumer.accept(PHONE_NUMBER,
+ new Event(currentTimestamp - MILLIS_PER_MINUTE * 5L, Event.TYPE_CALL_MISSED));
+
+ List<Range<Long>> activeTimeSlots = new ArrayList<>();
+ mDataManager.forAllPackages(packageData ->
+ activeTimeSlots.addAll(
+ packageData.getEventHistory(TEST_SHORTCUT_ID)
+ .getEventIndex(Event.CALL_EVENT_TYPES)
+ .getActiveTimeSlots()));
+ assertEquals(3, activeTimeSlots.size());
+ }
- List<Range<Long>> activeShortcutInvocationTimeSlots = new ArrayList<>();
+ @Test
+ public void testMmsSmsContentObserver() {
+ mDataManager.onUserUnlocked(USER_ID_PRIMARY);
+ mDataManager.onUserUnlocked(USER_ID_SECONDARY);
+
+ ShortcutInfo shortcut = buildShortcutInfo(TEST_PKG_NAME, USER_ID_PRIMARY, TEST_SHORTCUT_ID,
+ buildPerson());
+ mDataManager.onShortcutAddedOrUpdated(shortcut);
+ mDataManager.getUserDataForTesting(USER_ID_PRIMARY).setDefaultSmsApp(TEST_PKG_NAME);
+
+ ContentObserver contentObserver = mDataManager.getMmsSmsContentObserverForTesting();
+ contentObserver.onChange(false);
+ long currentTimestamp = System.currentTimeMillis();
+ Event outgoingSmsEvent =
+ new Event(currentTimestamp - MILLIS_PER_MINUTE * 10L, Event.TYPE_SMS_OUTGOING);
+ Event incomingSmsEvent =
+ new Event(currentTimestamp - MILLIS_PER_MINUTE * 5L, Event.TYPE_SMS_INCOMING);
+ mInjector.mMmsQueryHelper.mEventConsumer.accept(PHONE_NUMBER, outgoingSmsEvent);
+ mInjector.mSmsQueryHelper.mEventConsumer.accept(PHONE_NUMBER, incomingSmsEvent);
+
+ List<Range<Long>> activeTimeSlots = new ArrayList<>();
mDataManager.forAllPackages(packageData ->
- activeShortcutInvocationTimeSlots.addAll(
+ activeTimeSlots.addAll(
packageData.getEventHistory(TEST_SHORTCUT_ID)
- .getEventIndex(Event.TYPE_SHORTCUT_INVOCATION)
+ .getEventIndex(Event.SMS_EVENT_TYPES)
.getActiveTimeSlots()));
- assertEquals(1, activeShortcutInvocationTimeSlots.size());
+ assertEquals(2, activeTimeSlots.size());
}
private static <T> void addLocalServiceMock(Class<T> clazz, T mock) {
@@ -428,10 +441,73 @@ public final class DataManagerTest {
}
}
+ private class TestCallLogQueryHelper extends CallLogQueryHelper {
+
+ private final BiConsumer<String, Event> mEventConsumer;
+
+ TestCallLogQueryHelper(Context context, BiConsumer<String, Event> eventConsumer) {
+ super(context, eventConsumer);
+ mEventConsumer = eventConsumer;
+ }
+
+ @Override
+ boolean querySince(long sinceTime) {
+ return true;
+ }
+
+ @Override
+ long getLastCallTimestamp() {
+ return 100L;
+ }
+ }
+
+ private class TestSmsQueryHelper extends SmsQueryHelper {
+
+ private final BiConsumer<String, Event> mEventConsumer;
+
+ TestSmsQueryHelper(Context context, BiConsumer<String, Event> eventConsumer) {
+ super(context, eventConsumer);
+ mEventConsumer = eventConsumer;
+ }
+
+ @Override
+ boolean querySince(long sinceTime) {
+ return true;
+ }
+
+ @Override
+ long getLastMessageTimestamp() {
+ return 100L;
+ }
+ }
+
+ private class TestMmsQueryHelper extends MmsQueryHelper {
+
+ private final BiConsumer<String, Event> mEventConsumer;
+
+ TestMmsQueryHelper(Context context, BiConsumer<String, Event> eventConsumer) {
+ super(context, eventConsumer);
+ mEventConsumer = eventConsumer;
+ }
+
+ @Override
+ boolean querySince(long sinceTime) {
+ return true;
+ }
+
+ @Override
+ long getLastMessageTimestamp() {
+ return 100L;
+ }
+ }
+
private class TestInjector extends DataManager.Injector {
private final TestContactsQueryHelper mContactsQueryHelper =
new TestContactsQueryHelper(mContext);
+ private TestCallLogQueryHelper mCallLogQueryHelper;
+ private TestMmsQueryHelper mMmsQueryHelper;
+ private TestSmsQueryHelper mSmsQueryHelper;
@Override
ScheduledExecutorService createScheduledExecutor() {
@@ -444,6 +520,27 @@ public final class DataManagerTest {
}
@Override
+ CallLogQueryHelper createCallLogQueryHelper(Context context,
+ BiConsumer<String, Event> eventConsumer) {
+ mCallLogQueryHelper = new TestCallLogQueryHelper(context, eventConsumer);
+ return mCallLogQueryHelper;
+ }
+
+ @Override
+ MmsQueryHelper createMmsQueryHelper(Context context,
+ BiConsumer<String, Event> eventConsumer) {
+ mMmsQueryHelper = new TestMmsQueryHelper(context, eventConsumer);
+ return mMmsQueryHelper;
+ }
+
+ @Override
+ SmsQueryHelper createSmsQueryHelper(Context context,
+ BiConsumer<String, Event> eventConsumer) {
+ mSmsQueryHelper = new TestSmsQueryHelper(context, eventConsumer);
+ return mSmsQueryHelper;
+ }
+
+ @Override
int getCallingUserId() {
return mCallingUserId;
}
diff --git a/services/tests/servicestests/src/com/android/server/people/data/MmsQueryHelperTest.java b/services/tests/servicestests/src/com/android/server/people/data/MmsQueryHelperTest.java
new file mode 100644
index 000000000000..7730890e1486
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/people/data/MmsQueryHelperTest.java
@@ -0,0 +1,174 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.data;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.when;
+
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.net.Uri;
+import android.provider.Telephony.BaseMmsColumns;
+import android.provider.Telephony.Mms;
+import android.test.mock.MockContentProvider;
+import android.test.mock.MockContentResolver;
+import android.test.mock.MockContext;
+import android.util.ArrayMap;
+
+import com.google.android.mms.pdu.PduHeaders;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.BiConsumer;
+
+@RunWith(JUnit4.class)
+public final class MmsQueryHelperTest {
+
+ private static final String MMS_AUTHORITY = "mms";
+ private static final String PHONE_NUMBER = "650-555-1111";
+ private static final String NORMALIZED_PHONE_NUMBER = "+16505551111";
+ private static final String OWN_PHONE_NUMBER = "650-555-9999";
+
+ private static final String[] MMS_COLUMNS = new String[] { Mms._ID, Mms.DATE, Mms.MESSAGE_BOX };
+ private static final String[] ADDR_COLUMNS = new String[] { Mms.Addr.ADDRESS, Mms.Addr.TYPE };
+
+ @Mock
+ private MockContext mContext;
+
+ private MatrixCursor mMmsCursor;
+ private final List<MatrixCursor> mAddrCursors = new ArrayList<>();
+ private EventConsumer mEventConsumer;
+ private MmsQueryHelper mHelper;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mMmsCursor = new MatrixCursor(MMS_COLUMNS);
+ mAddrCursors.add(new MatrixCursor(ADDR_COLUMNS));
+ mAddrCursors.add(new MatrixCursor(ADDR_COLUMNS));
+
+ MockContentResolver contentResolver = new MockContentResolver();
+ contentResolver.addProvider(MMS_AUTHORITY, new MmsContentProvider());
+ when(mContext.getContentResolver()).thenReturn(contentResolver);
+
+ mEventConsumer = new EventConsumer();
+ mHelper = new MmsQueryHelper(mContext, mEventConsumer);
+ }
+
+ @Test
+ public void testQueryNoMessages() {
+ assertFalse(mHelper.querySince(50_000L));
+ assertFalse(mEventConsumer.mEventMap.containsKey(NORMALIZED_PHONE_NUMBER));
+ }
+
+ @Test
+ public void testQueryIncomingMessage() {
+ mMmsCursor.addRow(new Object[] {
+ /* id= */ 0, /* date= */ 100L, /* msgBox= */ BaseMmsColumns.MESSAGE_BOX_INBOX });
+ mAddrCursors.get(0).addRow(new Object[] {
+ /* address= */ PHONE_NUMBER, /* type= */ PduHeaders.FROM });
+ mAddrCursors.get(0).addRow(new Object[] {
+ /* address= */ OWN_PHONE_NUMBER, /* type= */ PduHeaders.TO });
+
+ assertTrue(mHelper.querySince(50_000L));
+ List<Event> events = mEventConsumer.mEventMap.get(NORMALIZED_PHONE_NUMBER);
+
+ assertEquals(100_000L, mHelper.getLastMessageTimestamp());
+ assertEquals(1, events.size());
+ assertEquals(Event.TYPE_SMS_INCOMING, events.get(0).getType());
+ assertEquals(100_000L, events.get(0).getTimestamp());
+ }
+
+ @Test
+ public void testQueryOutgoingMessage() {
+ mMmsCursor.addRow(new Object[] {
+ /* id= */ 0, /* date= */ 100L, /* msgBox= */ BaseMmsColumns.MESSAGE_BOX_SENT });
+ mAddrCursors.get(0).addRow(new Object[] {
+ /* address= */ OWN_PHONE_NUMBER, /* type= */ PduHeaders.FROM });
+ mAddrCursors.get(0).addRow(new Object[] {
+ /* address= */ PHONE_NUMBER, /* type= */ PduHeaders.TO });
+
+ assertTrue(mHelper.querySince(50_000L));
+ List<Event> events = mEventConsumer.mEventMap.get(NORMALIZED_PHONE_NUMBER);
+
+ assertEquals(100_000L, mHelper.getLastMessageTimestamp());
+ assertEquals(1, events.size());
+ assertEquals(Event.TYPE_SMS_OUTGOING, events.get(0).getType());
+ assertEquals(100_000L, events.get(0).getTimestamp());
+ }
+
+ @Test
+ public void testQueryMultipleMessages() {
+ mMmsCursor.addRow(new Object[] {
+ /* id= */ 0, /* date= */ 100L, /* msgBox= */ BaseMmsColumns.MESSAGE_BOX_SENT });
+ mMmsCursor.addRow(new Object[] {
+ /* id= */ 1, /* date= */ 110L, /* msgBox= */ BaseMmsColumns.MESSAGE_BOX_INBOX });
+ mAddrCursors.get(0).addRow(new Object[] {
+ /* address= */ OWN_PHONE_NUMBER, /* type= */ PduHeaders.FROM });
+ mAddrCursors.get(0).addRow(new Object[] {
+ /* address= */ PHONE_NUMBER, /* type= */ PduHeaders.TO });
+ mAddrCursors.get(1).addRow(new Object[] {
+ /* address= */ PHONE_NUMBER, /* type= */ PduHeaders.FROM });
+ mAddrCursors.get(1).addRow(new Object[] {
+ /* address= */ OWN_PHONE_NUMBER, /* type= */ PduHeaders.TO });
+
+ assertTrue(mHelper.querySince(50_000L));
+ List<Event> events = mEventConsumer.mEventMap.get(NORMALIZED_PHONE_NUMBER);
+
+ assertEquals(110_000L, mHelper.getLastMessageTimestamp());
+ assertEquals(2, events.size());
+ assertEquals(Event.TYPE_SMS_OUTGOING, events.get(0).getType());
+ assertEquals(100_000L, events.get(0).getTimestamp());
+ assertEquals(Event.TYPE_SMS_INCOMING, events.get(1).getType());
+ assertEquals(110_000L, events.get(1).getTimestamp());
+ }
+
+ private class EventConsumer implements BiConsumer<String, Event> {
+
+ private final Map<String, List<Event>> mEventMap = new ArrayMap<>();
+
+ @Override
+ public void accept(String phoneNumber, Event event) {
+ mEventMap.computeIfAbsent(phoneNumber, key -> new ArrayList<>()).add(event);
+ }
+ }
+
+ private class MmsContentProvider extends MockContentProvider {
+
+ @Override
+ public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
+ String sortOrder) {
+ List<String> segments = uri.getPathSegments();
+ if (segments.size() == 2 && "addr".equals(segments.get(1))) {
+ int messageId = Integer.valueOf(segments.get(0));
+ return mAddrCursors.get(messageId);
+ }
+ return mMmsCursor;
+ }
+ }
+}
diff --git a/services/tests/servicestests/src/com/android/server/people/data/PackageDataTest.java b/services/tests/servicestests/src/com/android/server/people/data/PackageDataTest.java
index 1b80d6fc3a2d..ec4789ad0cdf 100644
--- a/services/tests/servicestests/src/com/android/server/people/data/PackageDataTest.java
+++ b/services/tests/servicestests/src/com/android/server/people/data/PackageDataTest.java
@@ -16,7 +16,6 @@
package com.android.server.people.data;
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -46,12 +45,15 @@ public final class PackageDataTest {
private Event mE2;
private Event mE3;
private Event mE4;
+ private boolean mIsDefaultDialer;
+ private boolean mIsDefaultSmsApp;
private PackageData mPackageData;
@Before
public void setUp() {
- mPackageData = new PackageData(PACKAGE_NAME, USER_ID);
+ mPackageData = new PackageData(
+ PACKAGE_NAME, USER_ID, pkg -> mIsDefaultDialer, pkg -> mIsDefaultSmsApp);
ConversationInfo conversationInfo = new ConversationInfo.Builder()
.setShortcutId(SHORTCUT_ID)
.setLocusId(LOCUS_ID)
@@ -83,8 +85,8 @@ public final class PackageDataTest {
@Test
public void testGetEventHistoryDefaultDialerAndSmsApp() {
- mPackageData.setIsDefaultDialer(true);
- mPackageData.setIsDefaultSmsApp(true);
+ mIsDefaultDialer = true;
+ mIsDefaultSmsApp = true;
EventStore eventStore = mPackageData.getEventStore();
eventStore.getOrCreateShortcutEventHistory(SHORTCUT_ID).addEvent(mE1);
eventStore.getOrCreateCallEventHistory(PHONE_NUMBER).addEvent(mE3);
diff --git a/services/tests/servicestests/src/com/android/server/people/data/SmsQueryHelperTest.java b/services/tests/servicestests/src/com/android/server/people/data/SmsQueryHelperTest.java
new file mode 100644
index 000000000000..5cb8cb4fe9f1
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/people/data/SmsQueryHelperTest.java
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.data;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.when;
+
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.net.Uri;
+import android.provider.Telephony.Sms;
+import android.provider.Telephony.TextBasedSmsColumns;
+import android.test.mock.MockContentProvider;
+import android.test.mock.MockContentResolver;
+import android.test.mock.MockContext;
+import android.util.ArrayMap;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.BiConsumer;
+
+@RunWith(JUnit4.class)
+public final class SmsQueryHelperTest {
+
+ private static final String SMS_AUTHORITY = "sms";
+ private static final String PHONE_NUMBER = "650-555-1111";
+ private static final String NORMALIZED_PHONE_NUMBER = "+16505551111";
+
+ private static final String[] SMS_COLUMNS = new String[] {
+ Sms._ID, Sms.DATE, Sms.TYPE, Sms.ADDRESS };
+
+ @Mock
+ private MockContext mContext;
+
+ private MatrixCursor mSmsCursor;
+ private EventConsumer mEventConsumer;
+ private SmsQueryHelper mHelper;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mSmsCursor = new MatrixCursor(SMS_COLUMNS);
+
+ MockContentResolver contentResolver = new MockContentResolver();
+ contentResolver.addProvider(SMS_AUTHORITY, new SmsContentProvider());
+ when(mContext.getContentResolver()).thenReturn(contentResolver);
+
+ mEventConsumer = new EventConsumer();
+ mHelper = new SmsQueryHelper(mContext, mEventConsumer);
+ }
+
+ @Test
+ public void testQueryNoMessages() {
+ assertFalse(mHelper.querySince(50_000L));
+ assertFalse(mEventConsumer.mEventMap.containsKey(NORMALIZED_PHONE_NUMBER));
+ }
+
+ @Test
+ public void testQueryIncomingMessage() {
+ mSmsCursor.addRow(new Object[] {
+ /* id= */ 0, /* date= */ 100L, /* type= */ TextBasedSmsColumns.MESSAGE_TYPE_INBOX,
+ /* address= */ PHONE_NUMBER });
+
+ assertTrue(mHelper.querySince(50L));
+ List<Event> events = mEventConsumer.mEventMap.get(NORMALIZED_PHONE_NUMBER);
+
+ assertEquals(100L, mHelper.getLastMessageTimestamp());
+ assertEquals(1, events.size());
+ assertEquals(Event.TYPE_SMS_INCOMING, events.get(0).getType());
+ assertEquals(100L, events.get(0).getTimestamp());
+ }
+
+ @Test
+ public void testQueryOutgoingMessage() {
+ mSmsCursor.addRow(new Object[] {
+ /* id= */ 0, /* date= */ 100L, /* type= */ TextBasedSmsColumns.MESSAGE_TYPE_SENT,
+ /* address= */ PHONE_NUMBER });
+
+ assertTrue(mHelper.querySince(50L));
+ List<Event> events = mEventConsumer.mEventMap.get(NORMALIZED_PHONE_NUMBER);
+
+ assertEquals(100L, mHelper.getLastMessageTimestamp());
+ assertEquals(1, events.size());
+ assertEquals(Event.TYPE_SMS_OUTGOING, events.get(0).getType());
+ assertEquals(100L, events.get(0).getTimestamp());
+ }
+
+ @Test
+ public void testQueryMultipleMessages() {
+ mSmsCursor.addRow(new Object[] {
+ /* id= */ 0, /* date= */ 100L, /* type= */ TextBasedSmsColumns.MESSAGE_TYPE_SENT,
+ /* address= */ PHONE_NUMBER });
+ mSmsCursor.addRow(new Object[] {
+ /* id= */ 0, /* date= */ 110L, /* type= */ TextBasedSmsColumns.MESSAGE_TYPE_INBOX,
+ /* address= */ PHONE_NUMBER });
+
+ assertTrue(mHelper.querySince(50L));
+ List<Event> events = mEventConsumer.mEventMap.get(NORMALIZED_PHONE_NUMBER);
+
+ assertEquals(110L, mHelper.getLastMessageTimestamp());
+ assertEquals(2, events.size());
+ assertEquals(Event.TYPE_SMS_OUTGOING, events.get(0).getType());
+ assertEquals(100L, events.get(0).getTimestamp());
+ assertEquals(Event.TYPE_SMS_INCOMING, events.get(1).getType());
+ assertEquals(110L, events.get(1).getTimestamp());
+ }
+
+ private class EventConsumer implements BiConsumer<String, Event> {
+
+ private final Map<String, List<Event>> mEventMap = new ArrayMap<>();
+
+ @Override
+ public void accept(String phoneNumber, Event event) {
+ mEventMap.computeIfAbsent(phoneNumber, key -> new ArrayList<>()).add(event);
+ }
+ }
+
+ private class SmsContentProvider extends MockContentProvider {
+
+ @Override
+ public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
+ String sortOrder) {
+ return mSmsCursor;
+ }
+ }
+}
diff --git a/services/tests/servicestests/src/com/android/server/people/data/UsageStatsQueryHelperTest.java b/services/tests/servicestests/src/com/android/server/people/data/UsageStatsQueryHelperTest.java
new file mode 100644
index 000000000000..e4248a04878d
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/people/data/UsageStatsQueryHelperTest.java
@@ -0,0 +1,295 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.data;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.Mockito.when;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.UserIdInt;
+import android.app.usage.UsageEvents;
+import android.app.usage.UsageStatsManagerInternal;
+import android.content.LocusId;
+
+import com.android.server.LocalServices;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+import java.util.function.Predicate;
+
+@RunWith(JUnit4.class)
+public final class UsageStatsQueryHelperTest {
+
+ private static final int USER_ID_PRIMARY = 0;
+ private static final String PKG_NAME = "pkg";
+ private static final String ACTIVITY_NAME = "TestActivity";
+ private static final String SHORTCUT_ID = "abc";
+ private static final String NOTIFICATION_CHANNEL_ID = "test : abc";
+ private static final LocusId LOCUS_ID_1 = new LocusId("locus_1");
+ private static final LocusId LOCUS_ID_2 = new LocusId("locus_2");
+
+ @Mock private UsageStatsManagerInternal mUsageStatsManagerInternal;
+
+ private TestPackageData mPackageData;
+ private UsageStatsQueryHelper mHelper;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ addLocalServiceMock(UsageStatsManagerInternal.class, mUsageStatsManagerInternal);
+
+ mPackageData = new TestPackageData(PKG_NAME, USER_ID_PRIMARY, pkg -> false, pkg -> false);
+ mPackageData.mConversationStore.mConversationInfo = new ConversationInfo.Builder()
+ .setShortcutId(SHORTCUT_ID)
+ .setNotificationChannelId(NOTIFICATION_CHANNEL_ID)
+ .setLocusId(LOCUS_ID_1)
+ .build();
+
+ mHelper = new UsageStatsQueryHelper(USER_ID_PRIMARY, pkg -> mPackageData);
+ }
+
+ @After
+ public void tearDown() {
+ LocalServices.removeServiceForTest(UsageStatsManagerInternal.class);
+ }
+
+ @Test
+ public void testQueryNoEvents() {
+ assertFalse(mHelper.querySince(50L));
+ }
+
+ @Test
+ public void testQueryShortcutInvocationEvent() {
+ addUsageEvents(createShortcutInvocationEvent(100L));
+
+ assertTrue(mHelper.querySince(50L));
+ assertEquals(100L, mHelper.getLastEventTimestamp());
+ Event expectedEvent = new Event(100L, Event.TYPE_SHORTCUT_INVOCATION);
+ List<Event> events = mPackageData.mEventStore.mShortcutEventHistory.queryEvents(
+ Event.ALL_EVENT_TYPES, 0L, Long.MAX_VALUE);
+ assertEquals(1, events.size());
+ assertEquals(expectedEvent, events.get(0));
+ }
+
+ @Test
+ public void testQueryNotificationInterruptionEvent() {
+ addUsageEvents(createNotificationInterruptionEvent(100L));
+
+ assertTrue(mHelper.querySince(50L));
+ assertEquals(100L, mHelper.getLastEventTimestamp());
+ Event expectedEvent = new Event(100L, Event.TYPE_NOTIFICATION_POSTED);
+ List<Event> events = mPackageData.mEventStore.mShortcutEventHistory.queryEvents(
+ Event.ALL_EVENT_TYPES, 0L, Long.MAX_VALUE);
+ assertEquals(1, events.size());
+ assertEquals(expectedEvent, events.get(0));
+ }
+
+ @Test
+ public void testInAppConversationSwitch() {
+ addUsageEvents(
+ createLocusIdSetEvent(100_000L, LOCUS_ID_1.getId()),
+ createLocusIdSetEvent(110_000L, LOCUS_ID_2.getId()));
+
+ assertTrue(mHelper.querySince(50_000L));
+ assertEquals(110_000L, mHelper.getLastEventTimestamp());
+ List<Event> events = mPackageData.mEventStore.mLocusEventHistory.queryEvents(
+ Event.ALL_EVENT_TYPES, 0L, Long.MAX_VALUE);
+ assertEquals(1, events.size());
+ assertEquals(createInAppConversationEvent(100_000L, 10), events.get(0));
+ }
+
+ @Test
+ public void testInAppConversationExplicitlyEnd() {
+ addUsageEvents(
+ createLocusIdSetEvent(100_000L, LOCUS_ID_1.getId()),
+ createLocusIdSetEvent(110_000L, null));
+
+ assertTrue(mHelper.querySince(50_000L));
+ assertEquals(110_000L, mHelper.getLastEventTimestamp());
+ List<Event> events = mPackageData.mEventStore.mLocusEventHistory.queryEvents(
+ Event.ALL_EVENT_TYPES, 0L, Long.MAX_VALUE);
+ assertEquals(1, events.size());
+ assertEquals(createInAppConversationEvent(100_000L, 10), events.get(0));
+ }
+
+ @Test
+ public void testInAppConversationImplicitlyEnd() {
+ addUsageEvents(
+ createLocusIdSetEvent(100_000L, LOCUS_ID_1.getId()),
+ createActivityStoppedEvent(110_000L));
+
+ assertTrue(mHelper.querySince(50_000L));
+ assertEquals(110_000L, mHelper.getLastEventTimestamp());
+ List<Event> events = mPackageData.mEventStore.mLocusEventHistory.queryEvents(
+ Event.ALL_EVENT_TYPES, 0L, Long.MAX_VALUE);
+ assertEquals(1, events.size());
+ assertEquals(createInAppConversationEvent(100_000L, 10), events.get(0));
+ }
+
+ @Test
+ public void testMultipleInAppConversations() {
+ addUsageEvents(
+ createLocusIdSetEvent(100_000L, LOCUS_ID_1.getId()),
+ createLocusIdSetEvent(110_000L, LOCUS_ID_2.getId()),
+ createLocusIdSetEvent(130_000L, LOCUS_ID_1.getId()),
+ createActivityStoppedEvent(160_000L));
+
+ assertTrue(mHelper.querySince(50_000L));
+ assertEquals(160_000L, mHelper.getLastEventTimestamp());
+ List<Event> events = mPackageData.mEventStore.mLocusEventHistory.queryEvents(
+ Event.ALL_EVENT_TYPES, 0L, Long.MAX_VALUE);
+ assertEquals(3, events.size());
+ assertEquals(createInAppConversationEvent(100_000L, 10), events.get(0));
+ assertEquals(createInAppConversationEvent(110_000L, 20), events.get(1));
+ assertEquals(createInAppConversationEvent(130_000L, 30), events.get(2));
+ }
+
+ private void addUsageEvents(UsageEvents.Event ... events) {
+ UsageEvents usageEvents = new UsageEvents(Arrays.asList(events), new String[]{});
+ when(mUsageStatsManagerInternal.queryEventsForUser(anyInt(), anyLong(), anyLong(),
+ anyBoolean(), anyBoolean())).thenReturn(usageEvents);
+ }
+
+ private static <T> void addLocalServiceMock(Class<T> clazz, T mock) {
+ LocalServices.removeServiceForTest(clazz);
+ LocalServices.addService(clazz, mock);
+ }
+
+ private static UsageEvents.Event createShortcutInvocationEvent(long timestamp) {
+ UsageEvents.Event e = createUsageEvent(UsageEvents.Event.SHORTCUT_INVOCATION, timestamp);
+ e.mShortcutId = SHORTCUT_ID;
+ return e;
+ }
+
+ private static UsageEvents.Event createNotificationInterruptionEvent(long timestamp) {
+ UsageEvents.Event e = createUsageEvent(UsageEvents.Event.NOTIFICATION_INTERRUPTION,
+ timestamp);
+ e.mNotificationChannelId = NOTIFICATION_CHANNEL_ID;
+ return e;
+ }
+
+ private static UsageEvents.Event createLocusIdSetEvent(long timestamp, String locusId) {
+ UsageEvents.Event e = createUsageEvent(UsageEvents.Event.LOCUS_ID_SET, timestamp);
+ e.mClass = ACTIVITY_NAME;
+ e.mLocusId = locusId;
+ return e;
+ }
+
+ private static UsageEvents.Event createActivityStoppedEvent(long timestamp) {
+ UsageEvents.Event e = createUsageEvent(UsageEvents.Event.ACTIVITY_STOPPED, timestamp);
+ e.mClass = ACTIVITY_NAME;
+ return e;
+ }
+
+ private static UsageEvents.Event createUsageEvent(int eventType, long timestamp) {
+ UsageEvents.Event e = new UsageEvents.Event(eventType, timestamp);
+ e.mPackage = PKG_NAME;
+ return e;
+ }
+
+ private static Event createInAppConversationEvent(long timestamp, int durationSeconds) {
+ return new Event.Builder(timestamp, Event.TYPE_IN_APP_CONVERSATION)
+ .setDurationSeconds(durationSeconds)
+ .build();
+ }
+
+ private static class TestConversationStore extends ConversationStore {
+
+ private ConversationInfo mConversationInfo;
+
+ @Override
+ @Nullable
+ ConversationInfo getConversation(@Nullable String shortcutId) {
+ return mConversationInfo;
+ }
+ }
+
+ private static class TestPackageData extends PackageData {
+
+ private final TestConversationStore mConversationStore = new TestConversationStore();
+ private final TestEventStore mEventStore = new TestEventStore();
+
+ TestPackageData(@NonNull String packageName, @UserIdInt int userId,
+ @NonNull Predicate<String> isDefaultDialerPredicate,
+ @NonNull Predicate<String> isDefaultSmsAppPredicate) {
+ super(packageName, userId, isDefaultDialerPredicate, isDefaultSmsAppPredicate);
+ }
+
+ @Override
+ @NonNull
+ ConversationStore getConversationStore() {
+ return mConversationStore;
+ }
+
+ @Override
+ @NonNull
+ EventStore getEventStore() {
+ return mEventStore;
+ }
+ }
+
+ private static class TestEventStore extends EventStore {
+
+ private final EventHistoryImpl mShortcutEventHistory = new TestEventHistoryImpl();
+ private final EventHistoryImpl mLocusEventHistory = new TestEventHistoryImpl();
+
+ @Override
+ @NonNull
+ EventHistoryImpl getOrCreateShortcutEventHistory(String shortcutId) {
+ return mShortcutEventHistory;
+ }
+
+ @Override
+ @NonNull
+ EventHistoryImpl getOrCreateLocusEventHistory(LocusId locusId) {
+ return mLocusEventHistory;
+ }
+ }
+
+ private static class TestEventHistoryImpl extends EventHistoryImpl {
+
+ private final List<Event> mEvents = new ArrayList<>();
+
+ @Override
+ @NonNull
+ public List<Event> queryEvents(Set<Integer> eventTypes, long startTime, long endTime) {
+ return mEvents;
+ }
+
+ @Override
+ void addEvent(Event event) {
+ mEvents.add(event);
+ }
+ }
+}
diff --git a/services/tests/servicestests/src/com/android/server/people/prediction/ShareTargetPredictorTest.java b/services/tests/servicestests/src/com/android/server/people/prediction/ShareTargetPredictorTest.java
new file mode 100644
index 000000000000..808906e3a06a
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/people/prediction/ShareTargetPredictorTest.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.people.prediction;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.app.prediction.AppPredictionContext;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ShortcutInfo;
+import android.content.pm.ShortcutManager.ShareShortcutInfo;
+import android.os.Bundle;
+import android.os.UserHandle;
+
+import com.android.server.people.data.ConversationInfo;
+import com.android.server.people.data.DataManager;
+import com.android.server.people.data.EventHistory;
+import com.android.server.people.data.PackageData;
+import com.android.server.people.prediction.ShareTargetPredictor.ShareTarget;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(JUnit4.class)
+public final class ShareTargetPredictorTest {
+
+ private static final String UI_SURFACE_SHARE = "share";
+ private static final int NUM_PREDICTED_TARGETS = 5;
+ private static final int USER_ID = 0;
+ private static final String PACKAGE_1 = "pkg1";
+ private static final String CLASS_1 = "cls1";
+ private static final String PACKAGE_2 = "pkg2";
+ private static final String CLASS_2 = "cls2";
+
+ @Mock private Context mContext;
+ @Mock private DataManager mDataManager;
+ @Mock private PackageData mPackageData1;
+ @Mock private PackageData mPackageData2;
+
+ private List<ShareShortcutInfo> mShareShortcuts = new ArrayList<>();
+
+ private ShareTargetPredictor mPredictor;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ when(mDataManager.getShareShortcuts(any())).thenReturn(mShareShortcuts);
+ when(mDataManager.getPackage(PACKAGE_1, USER_ID)).thenReturn(mPackageData1);
+ when(mDataManager.getPackage(PACKAGE_2, USER_ID)).thenReturn(mPackageData2);
+
+ AppPredictionContext predictionContext = new AppPredictionContext.Builder(mContext)
+ .setUiSurface(UI_SURFACE_SHARE)
+ .setPredictedTargetCount(NUM_PREDICTED_TARGETS)
+ .setExtras(new Bundle())
+ .build();
+ mPredictor = new ShareTargetPredictor(predictionContext, targets -> { }, mDataManager);
+ }
+
+ @Test
+ public void testGetShareTargets() {
+ mShareShortcuts.add(buildShareShortcut(PACKAGE_1, CLASS_1, "sc1"));
+ mShareShortcuts.add(buildShareShortcut(PACKAGE_1, CLASS_1, "sc2"));
+ mShareShortcuts.add(buildShareShortcut(PACKAGE_2, CLASS_2, "sc3"));
+ mShareShortcuts.add(buildShareShortcut(PACKAGE_2, CLASS_2, "sc4"));
+
+ when(mPackageData1.getConversationInfo("sc1")).thenReturn(mock(ConversationInfo.class));
+ when(mPackageData1.getConversationInfo("sc2")).thenReturn(mock(ConversationInfo.class));
+ when(mPackageData2.getConversationInfo("sc3")).thenReturn(mock(ConversationInfo.class));
+ // "sc4" does not have a ConversationInfo.
+
+ when(mPackageData1.getEventHistory(anyString())).thenReturn(mock(EventHistory.class));
+ when(mPackageData2.getEventHistory(anyString())).thenReturn(mock(EventHistory.class));
+
+ List<ShareTarget> shareTargets = mPredictor.getShareTargets();
+
+ assertEquals(4, shareTargets.size());
+
+ assertEquals("sc1", shareTargets.get(0).getShareShortcutInfo().getShortcutInfo().getId());
+ assertNotNull(shareTargets.get(0).getConversationData());
+
+ assertEquals("sc2", shareTargets.get(1).getShareShortcutInfo().getShortcutInfo().getId());
+ assertNotNull(shareTargets.get(1).getConversationData());
+
+ assertEquals("sc3", shareTargets.get(2).getShareShortcutInfo().getShortcutInfo().getId());
+ assertNotNull(shareTargets.get(2).getConversationData());
+
+ assertEquals("sc4", shareTargets.get(3).getShareShortcutInfo().getShortcutInfo().getId());
+ assertNull(shareTargets.get(3).getConversationData());
+ }
+
+ private ShareShortcutInfo buildShareShortcut(
+ String packageName, String className, String shortcutId) {
+ ShortcutInfo shortcutInfo = buildShortcut(packageName, shortcutId);
+ ComponentName componentName = new ComponentName(packageName, className);
+ return new ShareShortcutInfo(shortcutInfo, componentName);
+ }
+
+ private ShortcutInfo buildShortcut(String packageName, String shortcutId) {
+ Context mockContext = mock(Context.class);
+ when(mockContext.getPackageName()).thenReturn(packageName);
+ when(mockContext.getUserId()).thenReturn(USER_ID);
+ when(mockContext.getUser()).thenReturn(UserHandle.of(USER_ID));
+ ShortcutInfo.Builder builder = new ShortcutInfo.Builder(mockContext, shortcutId)
+ .setShortLabel(shortcutId)
+ .setIntent(new Intent("TestIntent"));
+ return builder.build();
+ }
+}
diff --git a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java
index 41416f1352a8..3d190be8888b 100644
--- a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java
@@ -52,6 +52,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentSender;
+import android.content.LocusId;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.ILauncherApps;
@@ -1600,6 +1601,22 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase {
}
/**
+ * Make a shortcut with an ID and a locus ID.
+ */
+ protected ShortcutInfo makeShortcutWithLocusId(String id, LocusId locusId) {
+ final ShortcutInfo.Builder b = new ShortcutInfo.Builder(mClientContext, id)
+ .setActivity(new ComponentName(mClientContext.getPackageName(), "main"))
+ .setShortLabel("title-" + id)
+ .setIntent(makeIntent(Intent.ACTION_VIEW, ShortcutActivity.class))
+ .setLocusId(locusId);
+ final ShortcutInfo s = b.build();
+
+ s.setTimestamp(mInjectedCurrentTimeMillis); // HACK
+
+ return s;
+ }
+
+ /**
* Make an intent.
*/
protected Intent makeIntent(String action, Class<?> clazz, Object... bundleKeysAndValues) {
@@ -1618,6 +1635,13 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase {
}
/**
+ * Make a LocusId.
+ */
+ protected LocusId makeLocusId(String id) {
+ return new LocusId(id);
+ }
+
+ /**
* Make an component name, with the client context.
*/
@NonNull
@@ -1955,16 +1979,17 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase {
protected static ShortcutQuery buildQuery(long changedSince,
String packageName, ComponentName componentName,
/* @ShortcutQuery.QueryFlags */ int flags) {
- return buildQuery(changedSince, packageName, null, componentName, flags);
+ return buildQuery(changedSince, packageName, null, null, componentName, flags);
}
protected static ShortcutQuery buildQuery(long changedSince,
- String packageName, List<String> shortcutIds, ComponentName componentName,
- /* @ShortcutQuery.QueryFlags */ int flags) {
+ String packageName, List<String> shortcutIds, List<LocusId> locusIds,
+ ComponentName componentName, /* @ShortcutQuery.QueryFlags */ int flags) {
final ShortcutQuery q = new ShortcutQuery();
q.setChangedSince(changedSince);
q.setPackage(packageName);
q.setShortcutIds(shortcutIds);
+ q.setLocusIds(locusIds);
q.setActivity(componentName);
q.setQueryFlags(flags);
return q;
diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageInstallerSessionTest.java b/services/tests/servicestests/src/com/android/server/pm/PackageInstallerSessionTest.java
index bfe0c15ef6e8..d4edab44bae3 100644
--- a/services/tests/servicestests/src/com/android/server/pm/PackageInstallerSessionTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/PackageInstallerSessionTest.java
@@ -24,6 +24,7 @@ import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
import static org.xmlpull.v1.XmlPullParser.START_TAG;
import android.content.pm.PackageInstaller;
+import android.platform.test.annotations.Presubmit;
import android.util.AtomicFile;
import android.util.Slog;
import android.util.Xml;
@@ -57,6 +58,7 @@ import java.util.Arrays;
import java.util.List;
@RunWith(AndroidJUnit4.class)
+@Presubmit
public class PackageInstallerSessionTest {
@Rule
public TemporaryFolder mTemporaryFolder = new TemporaryFolder();
diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
index 798420ee0137..63da5fbab122 100644
--- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
+++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java
@@ -1372,7 +1372,7 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest {
setCaller(CALLING_PACKAGE_1);
final ShortcutInfo s1_1 = makeShortcut("s1");
- final ShortcutInfo s1_2 = makeShortcut("s2");
+ final ShortcutInfo s1_2 = makeShortcutWithLocusId("s2", makeLocusId("l1"));
assertTrue(mManager.setDynamicShortcuts(list(s1_1, s1_2)));
@@ -1394,7 +1394,7 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest {
getCallerShortcut("s4").setTimestamp(500);
setCaller(CALLING_PACKAGE_3);
- final ShortcutInfo s3_2 = makeShortcut("s3");
+ final ShortcutInfo s3_2 = makeShortcutWithLocusId("s3", makeLocusId("l2"));
assertTrue(mManager.setDynamicShortcuts(list(s3_2)));
getCallerShortcut("s3").setTimestamp(START_TIME + 5000);
@@ -1446,7 +1446,7 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest {
// With ID.
assertAllDynamic(assertAllNotHaveTitle(assertAllNotHaveIntents(assertShortcutIds(
assertAllKeyFieldsOnly(mLauncherApps.getShortcuts(buildQuery(
- /* time =*/ 1000, CALLING_PACKAGE_2, list("s3"),
+ /* time =*/ 1000, CALLING_PACKAGE_2, list("s3"), /* locusIds =*/ null,
/* activity =*/ null,
ShortcutQuery.FLAG_GET_DYNAMIC | ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY),
getCallingUser())),
@@ -1454,20 +1454,51 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest {
assertAllDynamic(assertAllNotHaveTitle(assertAllNotHaveIntents(assertShortcutIds(
assertAllKeyFieldsOnly(mLauncherApps.getShortcuts(buildQuery(
/* time =*/ 1000, CALLING_PACKAGE_2, list("s3", "s2", "ss"),
- /* activity =*/ null,
+ /* locusIds =*/ null, /* activity =*/ null,
ShortcutQuery.FLAG_GET_DYNAMIC | ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY),
getCallingUser())),
"s2", "s3"))));
assertAllDynamic(assertAllNotHaveTitle(assertAllNotHaveIntents(assertShortcutIds(
assertAllKeyFieldsOnly(mLauncherApps.getShortcuts(buildQuery(
/* time =*/ 1000, CALLING_PACKAGE_2, list("s3x", "s2x"),
+ /* locusIds =*/ null, /* activity =*/ null,
+ ShortcutQuery.FLAG_GET_DYNAMIC | ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY),
+ getCallingUser()))
+ /* empty */))));
+ assertAllDynamic(assertAllNotHaveTitle(assertAllNotHaveIntents(assertShortcutIds(
+ assertAllKeyFieldsOnly(mLauncherApps.getShortcuts(buildQuery(
+ /* time =*/ 1000, CALLING_PACKAGE_2, list(), /* locusIds =*/ null,
+ /* activity =*/ null,
+ ShortcutQuery.FLAG_GET_DYNAMIC | ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY),
+ getCallingUser()))
+ /* empty */))));
+
+ // With locus ID.
+ assertAllDynamic(assertAllNotHaveTitle(assertAllNotHaveIntents(assertShortcutIds(
+ assertAllKeyFieldsOnly(mLauncherApps.getShortcuts(buildQuery(
+ /* time =*/ 1000, CALLING_PACKAGE_3, /* shortcutIds =*/ null,
+ list(makeLocusId("l2")), /* activity =*/ null,
+ ShortcutQuery.FLAG_GET_DYNAMIC | ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY),
+ getCallingUser())),
+ "s3"))));
+ assertAllDynamic(assertAllNotHaveTitle(assertAllNotHaveIntents(assertShortcutIds(
+ assertAllKeyFieldsOnly(mLauncherApps.getShortcuts(buildQuery(
+ /* time =*/ 1000, CALLING_PACKAGE_1, /* shortcutIds =*/ null,
+ list(makeLocusId("l1"), makeLocusId("l2"), makeLocusId("l3")),
/* activity =*/ null,
ShortcutQuery.FLAG_GET_DYNAMIC | ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY),
+ getCallingUser())),
+ "s2"))));
+ assertAllDynamic(assertAllNotHaveTitle(assertAllNotHaveIntents(assertShortcutIds(
+ assertAllKeyFieldsOnly(mLauncherApps.getShortcuts(buildQuery(
+ /* time =*/ 1000, CALLING_PACKAGE_1, /* shortcutIds =*/ null,
+ list(makeLocusId("lx1"), makeLocusId("lx2")), /* activity =*/ null,
+ ShortcutQuery.FLAG_GET_DYNAMIC | ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY),
getCallingUser()))
/* empty */))));
assertAllDynamic(assertAllNotHaveTitle(assertAllNotHaveIntents(assertShortcutIds(
assertAllKeyFieldsOnly(mLauncherApps.getShortcuts(buildQuery(
- /* time =*/ 1000, CALLING_PACKAGE_2, list(),
+ /* time =*/ 1000, CALLING_PACKAGE_3, /* shortcutIds =*/ null, list(),
/* activity =*/ null,
ShortcutQuery.FLAG_GET_DYNAMIC | ShortcutQuery.FLAG_GET_KEY_FIELDS_ONLY),
getCallingUser()))
@@ -1498,7 +1529,7 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest {
assertExpectException(
IllegalArgumentException.class, "package name must also be set", () -> {
mLauncherApps.getShortcuts(buildQuery(
- /* time =*/ 0, /* package= */ null, list("id"),
+ /* time =*/ 0, /* package= */ null, list("id"), /* locusIds =*/ null,
/* activity =*/ null, /* flags */ 0), getCallingUser());
});
@@ -1537,7 +1568,7 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest {
assertExpectException(
IllegalArgumentException.class, "package name must also be set", () -> {
mLauncherApps.getShortcuts(buildQuery(
- /* time =*/ 0, /* package= */ null, list("id"),
+ /* time =*/ 0, /* package= */ null, list("id"), /* locusIds= */ null,
/* activity =*/ null, /* flags */ 0), getCallingUser());
});
diff --git a/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java
index 2469cec5766e..118c540a4131 100644
--- a/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java
@@ -336,9 +336,6 @@ public final class UserManagerTest {
assertThat(userInfo).isNotNull();
final int userId = userInfo.id;
- UserManager userManagerForUser = (UserManager) mContext.createPackageContextAsUser(
- "android", 0, asHandle(userId)).getSystemService(Context.USER_SERVICE);
-
assertThat(mUserManager.hasBadge(userId)).isEqualTo(userTypeDetails.hasBadge());
assertThat(mUserManager.getUserIconBadgeResId(userId))
.isEqualTo(userTypeDetails.getIconBadge());
@@ -346,17 +343,18 @@ public final class UserManagerTest {
.isEqualTo(userTypeDetails.getBadgePlain());
assertThat(mUserManager.getUserBadgeNoBackgroundResId(userId))
.isEqualTo(userTypeDetails.getBadgeNoBackground());
- assertThat(mUserManager.isUserOfType(asHandle(userId), userTypeDetails.getName()))
- .isTrue();
- assertThat(userManagerForUser.isProfile()).isEqualTo(userTypeDetails.isProfile());
- assertThat(userManagerForUser.isUserOfType(asHandle(userId), userTypeDetails.getName()))
- .isTrue();
final int badgeIndex = userInfo.profileBadge;
assertThat(mUserManager.getUserBadgeColor(userId)).isEqualTo(
Resources.getSystem().getColor(userTypeDetails.getBadgeColor(badgeIndex), null));
assertThat(mUserManager.getBadgedLabelForUser("Test", asHandle(userId))).isEqualTo(
Resources.getSystem().getString(userTypeDetails.getBadgeLabel(badgeIndex), "Test"));
+
+ // Test @UserHandleAware methods
+ final UserManager userManagerForUser = UserManager.get(mContext.createPackageContextAsUser(
+ "android", 0, asHandle(userId)));
+ assertThat(userManagerForUser.isUserOfType(userTypeDetails.getName())).isTrue();
+ assertThat(userManagerForUser.isProfile()).isEqualTo(userTypeDetails.isProfile());
}
// Make sure only max managed profiles can be created
diff --git a/services/tests/servicestests/src/com/android/server/rollback/RollbackStoreTest.java b/services/tests/servicestests/src/com/android/server/rollback/RollbackStoreTest.java
index d0d2edc59861..64d05f07e64e 100644
--- a/services/tests/servicestests/src/com/android/server/rollback/RollbackStoreTest.java
+++ b/services/tests/servicestests/src/com/android/server/rollback/RollbackStoreTest.java
@@ -119,7 +119,7 @@ public class RollbackStoreTest {
@Test
public void createNonStaged() {
- Rollback rollback = mRollbackStore.createNonStagedRollback(ID, USER, INSTALLER);
+ Rollback rollback = mRollbackStore.createNonStagedRollback(ID, USER, INSTALLER, null);
assertThat(rollback.getBackupDir().getAbsolutePath())
.isEqualTo(mFolder.getRoot().getAbsolutePath() + "/" + ID);
@@ -132,7 +132,7 @@ public class RollbackStoreTest {
@Test
public void createStaged() {
- Rollback rollback = mRollbackStore.createStagedRollback(ID, 897, USER, INSTALLER);
+ Rollback rollback = mRollbackStore.createStagedRollback(ID, 897, USER, INSTALLER, null);
assertThat(rollback.getBackupDir().getAbsolutePath())
.isEqualTo(mFolder.getRoot().getAbsolutePath() + "/" + ID);
@@ -147,7 +147,7 @@ public class RollbackStoreTest {
@Test
public void saveAndLoadRollback() {
- Rollback origRb = mRollbackStore.createNonStagedRollback(ID, USER, INSTALLER);
+ Rollback origRb = mRollbackStore.createNonStagedRollback(ID, USER, INSTALLER, null);
origRb.setRestoreUserDataInProgress(true);
origRb.info.getCausePackages().add(new VersionedPackage("com.made.up", 2));
@@ -197,7 +197,7 @@ public class RollbackStoreTest {
@Test
public void loadFromJson() throws Exception {
- Rollback expectedRb = mRollbackStore.createNonStagedRollback(ID, USER, INSTALLER);
+ Rollback expectedRb = mRollbackStore.createNonStagedRollback(ID, USER, INSTALLER, null);
expectedRb.setTimestamp(Instant.parse("2019-10-01T12:29:08.855Z"));
expectedRb.setRestoreUserDataInProgress(true);
@@ -246,7 +246,7 @@ public class RollbackStoreTest {
@Test
public void saveAndDelete() {
- Rollback rollback = mRollbackStore.createNonStagedRollback(ID, USER, INSTALLER);
+ Rollback rollback = mRollbackStore.createNonStagedRollback(ID, USER, INSTALLER, null);
RollbackStore.saveRollback(rollback);
diff --git a/services/tests/servicestests/src/com/android/server/rollback/RollbackUnitTest.java b/services/tests/servicestests/src/com/android/server/rollback/RollbackUnitTest.java
index 164c88382828..804c1b9e09fd 100644
--- a/services/tests/servicestests/src/com/android/server/rollback/RollbackUnitTest.java
+++ b/services/tests/servicestests/src/com/android/server/rollback/RollbackUnitTest.java
@@ -291,6 +291,33 @@ public class RollbackUnitTest {
verify(mMockDataHelper).restoreAppData(123, pkgInfo1, 7, 333, "blah");
}
+ @Test
+ public void notifySessionWithSuccess() {
+ int[] sessionIds = new int[]{ 7777, 8888 };
+ Rollback rollback = new Rollback(123, new File("/test/testing"), -1, USER, INSTALLER,
+ sessionIds);
+ // The 1st invocation returns false because not all child sessions are notified.
+ assertThat(rollback.notifySessionWithSuccess()).isFalse();
+ // The 2nd invocation returns true because now all child sessions are notified.
+ assertThat(rollback.notifySessionWithSuccess()).isTrue();
+ }
+
+ @Test
+ public void allPackagesEnabled() {
+ int[] sessionIds = new int[]{ 7777, 8888 };
+ Rollback rollback = new Rollback(123, new File("/test/testing"), -1, USER, INSTALLER,
+ sessionIds);
+ // #allPackagesEnabled returns false when 1 out of 2 packages is enabled.
+ rollback.info.getPackages().add(newPkgInfoFor(PKG_1, 12, 10, false));
+ assertThat(rollback.allPackagesEnabled()).isFalse();
+ // #allPackagesEnabled returns false for ApkInApex doesn't count.
+ rollback.info.getPackages().add(newPkgInfoForApkInApex(PKG_3, 157, 156));
+ assertThat(rollback.allPackagesEnabled()).isFalse();
+ // #allPackagesEnabled returns true when 2 out of 2 packages are enabled.
+ rollback.info.getPackages().add(newPkgInfoFor(PKG_2, 18, 12, true));
+ assertThat(rollback.allPackagesEnabled()).isTrue();
+ }
+
private static PackageRollbackInfo newPkgInfoFor(
String packageName, long fromVersion, long toVersion, boolean isApex) {
return new PackageRollbackInfo(new VersionedPackage(packageName, fromVersion),
@@ -299,6 +326,20 @@ public class RollbackUnitTest {
new SparseLongArray());
}
+ /**
+ * TODO: merge newPkgInfoFor and newPkgInfoForApkInApex by using enums to specify
+ * 1. IS_APK
+ * 2. IS_APEX
+ * 3. IS_APK_IN_APEX
+ */
+ private static PackageRollbackInfo newPkgInfoForApkInApex(
+ String packageName, long fromVersion, long toVersion) {
+ return new PackageRollbackInfo(new VersionedPackage(packageName, fromVersion),
+ new VersionedPackage(packageName, toVersion),
+ new IntArray(), new ArrayList<>(), false, true, new IntArray(),
+ new SparseLongArray());
+ }
+
private static class PackageRollbackInfoForPackage implements
ArgumentMatcher<PackageRollbackInfo> {
private final String mPkg;
diff --git a/services/tests/servicestests/src/com/android/server/rollback/WatchdogRollbackLoggerTest.java b/services/tests/servicestests/src/com/android/server/rollback/WatchdogRollbackLoggerTest.java
new file mode 100644
index 000000000000..ba493d4f9646
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/rollback/WatchdogRollbackLoggerTest.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.rollback;
+
+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.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageInstaller;
+import android.content.pm.PackageManager;
+import android.content.pm.VersionedPackage;
+import android.os.Bundle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+@RunWith(JUnit4.class)
+public class WatchdogRollbackLoggerTest {
+
+ private static final VersionedPackage sTestPackageV1 = new VersionedPackage("test.package", 1);
+ private Context mMockContext = mock(Context.class);
+ private PackageManager mMockPm;
+ private ApplicationInfo mApplicationInfo;
+ private PackageInfo mPackageInfo;
+
+ private static final String LOGGING_PARENT_KEY = "android.content.pm.LOGGING_PARENT";
+
+ @Before
+ public void setUp() {
+ mApplicationInfo = new ApplicationInfo();
+ mMockPm = mock(PackageManager.class);
+ when(mMockContext.getPackageManager()).thenReturn(mMockPm);
+ PackageInstaller mockPi = mock(PackageInstaller.class);
+ when(mMockPm.getPackageInstaller()).thenReturn(mockPi);
+ PackageInstaller.SessionInfo mockSessionInfo = mock(PackageInstaller.SessionInfo.class);
+ when(mockPi.getSessionInfo(anyInt())).thenReturn(mockSessionInfo);
+ mPackageInfo = new PackageInfo();
+ }
+
+ /**
+ * Ensures that null is returned if the application info has no metadata.
+ */
+ @Test
+ public void testLogPackageHasNoMetadata() throws Exception {
+ when(mMockPm.getApplicationInfo(anyString(), anyInt())).thenReturn(mApplicationInfo);
+ VersionedPackage logPackage = WatchdogRollbackLogger.getLogPackage(mMockContext,
+ sTestPackageV1);
+ assertThat(logPackage).isNull();
+ }
+
+ /**
+ * Ensures that null is returned if the application info does not contain a logging
+ * parent key.
+ */
+ @Test
+ public void testLogPackageParentKeyIsNull() throws Exception {
+ when(mMockPm.getApplicationInfo(anyString(), anyInt())).thenReturn(mApplicationInfo);
+ Bundle bundle = new Bundle();
+ bundle.putString(LOGGING_PARENT_KEY, null);
+ VersionedPackage logPackage = WatchdogRollbackLogger.getLogPackage(mMockContext,
+ sTestPackageV1);
+ assertThat(logPackage).isNull();
+ }
+
+ /**
+ * Ensures that the logging parent is returned as the logging package, if it exists.
+ */
+ @Test
+ public void testLogPackageHasParentKey() throws Exception {
+ Bundle bundle = new Bundle();
+ bundle.putString(LOGGING_PARENT_KEY, "logging.parent");
+ mApplicationInfo.metaData = bundle;
+ mPackageInfo.setLongVersionCode(12345L);
+ when(mMockPm.getApplicationInfo(anyString(), anyInt())).thenReturn(mApplicationInfo);
+ when(mMockPm.getPackageInfo(anyString(), anyInt())).thenReturn(mPackageInfo);
+ VersionedPackage logPackage = WatchdogRollbackLogger.getLogPackage(mMockContext,
+ sTestPackageV1);
+ VersionedPackage expectedLogPackage = new VersionedPackage("logging.parent", 12345);
+ assertThat(logPackage).isEqualTo(expectedLogPackage);
+ }
+
+ /**
+ * Ensures that null is returned if Package Manager does not know about the logging parent.
+ */
+ @Test
+ public void testLogPackageNameNotFound() throws Exception {
+ Bundle bundle = new Bundle();
+ bundle.putString("android.content.pm.LOGGING_PARENT", "logging.parent");
+ mApplicationInfo.metaData = bundle;
+ when(mMockPm.getPackageInfo(anyString(), anyInt())).thenThrow(
+ new PackageManager.NameNotFoundException());
+ VersionedPackage logPackage = WatchdogRollbackLogger.getLogPackage(mMockContext,
+ sTestPackageV1);
+ assertThat(logPackage).isNull();
+ }
+}
diff --git a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java b/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java
index ae5369204428..2eeeb3ebaa2a 100644
--- a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java
@@ -30,17 +30,16 @@ import static org.mockito.Mockito.when;
import android.app.timedetector.ManualTimeSuggestion;
import android.app.timedetector.NetworkTimeSuggestion;
-import android.app.timedetector.PhoneTimeSuggestion;
+import android.app.timedetector.TelephonyTimeSuggestion;
import android.content.Context;
import android.content.pm.PackageManager;
-import android.os.Handler;
import android.os.HandlerThread;
-import android.os.Looper;
-import android.os.Message;
import android.os.TimestampedValue;
import androidx.test.runner.AndroidJUnit4;
+import com.android.server.timezonedetector.TestHandler;
+
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -81,35 +80,35 @@ public class TimeDetectorServiceTest {
}
@Test(expected = SecurityException.class)
- public void testSuggestPhoneTime_withoutPermission() {
+ public void testSuggestTelephonyTime_withoutPermission() {
doThrow(new SecurityException("Mock"))
.when(mMockContext).enforceCallingPermission(anyString(), any());
- PhoneTimeSuggestion phoneTimeSuggestion = createPhoneTimeSuggestion();
+ TelephonyTimeSuggestion timeSuggestion = createTelephonyTimeSuggestion();
try {
- mTimeDetectorService.suggestPhoneTime(phoneTimeSuggestion);
+ mTimeDetectorService.suggestTelephonyTime(timeSuggestion);
fail();
} finally {
verify(mMockContext).enforceCallingPermission(
- eq(android.Manifest.permission.SUGGEST_PHONE_TIME_AND_ZONE),
+ eq(android.Manifest.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE),
anyString());
}
}
@Test
- public void testSuggestPhoneTime() throws Exception {
+ public void testSuggestTelephonyTime() throws Exception {
doNothing().when(mMockContext).enforceCallingPermission(anyString(), any());
- PhoneTimeSuggestion phoneTimeSuggestion = createPhoneTimeSuggestion();
- mTimeDetectorService.suggestPhoneTime(phoneTimeSuggestion);
+ TelephonyTimeSuggestion timeSuggestion = createTelephonyTimeSuggestion();
+ mTimeDetectorService.suggestTelephonyTime(timeSuggestion);
mTestHandler.assertTotalMessagesEnqueued(1);
verify(mMockContext).enforceCallingPermission(
- eq(android.Manifest.permission.SUGGEST_PHONE_TIME_AND_ZONE),
+ eq(android.Manifest.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE),
anyString());
- mTestHandler.waitForEmptyQueue();
- mStubbedTimeDetectorStrategy.verifySuggestPhoneTimeCalled(phoneTimeSuggestion);
+ mTestHandler.waitForMessagesToBeProcessed();
+ mStubbedTimeDetectorStrategy.verifySuggestTelephonyTimeCalled(timeSuggestion);
}
@Test(expected = SecurityException.class)
@@ -140,7 +139,7 @@ public class TimeDetectorServiceTest {
eq(android.Manifest.permission.SUGGEST_MANUAL_TIME_AND_ZONE),
anyString());
- mTestHandler.waitForEmptyQueue();
+ mTestHandler.waitForMessagesToBeProcessed();
mStubbedTimeDetectorStrategy.verifySuggestManualTimeCalled(manualTimeSuggestion);
}
@@ -170,7 +169,7 @@ public class TimeDetectorServiceTest {
verify(mMockContext).enforceCallingOrSelfPermission(
eq(android.Manifest.permission.SET_TIME), anyString());
- mTestHandler.waitForEmptyQueue();
+ mTestHandler.waitForMessagesToBeProcessed();
mStubbedTimeDetectorStrategy.verifySuggestNetworkTimeCalled(NetworkTimeSuggestion);
}
@@ -187,21 +186,23 @@ public class TimeDetectorServiceTest {
@Test
public void testAutoTimeDetectionToggle() throws Exception {
- mTimeDetectorService.handleAutoTimeDetectionToggle();
+ mTimeDetectorService.handleAutoTimeDetectionChanged();
mTestHandler.assertTotalMessagesEnqueued(1);
- mTestHandler.waitForEmptyQueue();
- mStubbedTimeDetectorStrategy.verifyHandleAutoTimeDetectionToggleCalled();
+ mTestHandler.waitForMessagesToBeProcessed();
+ mStubbedTimeDetectorStrategy.verifyHandleAutoTimeDetectionChangedCalled();
+
+ mStubbedTimeDetectorStrategy.resetCallTracking();
- mTimeDetectorService.handleAutoTimeDetectionToggle();
+ mTimeDetectorService.handleAutoTimeDetectionChanged();
mTestHandler.assertTotalMessagesEnqueued(2);
- mTestHandler.waitForEmptyQueue();
- mStubbedTimeDetectorStrategy.verifyHandleAutoTimeDetectionToggleCalled();
+ mTestHandler.waitForMessagesToBeProcessed();
+ mStubbedTimeDetectorStrategy.verifyHandleAutoTimeDetectionChangedCalled();
}
- private static PhoneTimeSuggestion createPhoneTimeSuggestion() {
- int phoneId = 1234;
+ private static TelephonyTimeSuggestion createTelephonyTimeSuggestion() {
+ int slotIndex = 1234;
TimestampedValue<Long> timeValue = new TimestampedValue<>(100L, 1_000_000L);
- return new PhoneTimeSuggestion.Builder(phoneId)
+ return new TelephonyTimeSuggestion.Builder(slotIndex)
.setUtcTime(timeValue)
.build();
}
@@ -219,10 +220,10 @@ public class TimeDetectorServiceTest {
private static class StubbedTimeDetectorStrategy implements TimeDetectorStrategy {
// Call tracking.
- private PhoneTimeSuggestion mLastPhoneSuggestion;
+ private TelephonyTimeSuggestion mLastTelephonySuggestion;
private ManualTimeSuggestion mLastManualSuggestion;
private NetworkTimeSuggestion mLastNetworkSuggestion;
- private boolean mLastAutoTimeDetectionToggleCalled;
+ private boolean mHandleAutoTimeDetectionChangedCalled;
private boolean mDumpCalled;
@Override
@@ -230,45 +231,40 @@ public class TimeDetectorServiceTest {
}
@Override
- public void suggestPhoneTime(PhoneTimeSuggestion timeSuggestion) {
- resetCallTracking();
- mLastPhoneSuggestion = timeSuggestion;
+ public void suggestTelephonyTime(TelephonyTimeSuggestion timeSuggestion) {
+ mLastTelephonySuggestion = timeSuggestion;
}
@Override
public void suggestManualTime(ManualTimeSuggestion timeSuggestion) {
- resetCallTracking();
mLastManualSuggestion = timeSuggestion;
}
@Override
public void suggestNetworkTime(NetworkTimeSuggestion timeSuggestion) {
- resetCallTracking();
mLastNetworkSuggestion = timeSuggestion;
}
@Override
public void handleAutoTimeDetectionChanged() {
- resetCallTracking();
- mLastAutoTimeDetectionToggleCalled = true;
+ mHandleAutoTimeDetectionChangedCalled = true;
}
@Override
public void dump(PrintWriter pw, String[] args) {
- resetCallTracking();
mDumpCalled = true;
}
void resetCallTracking() {
- mLastPhoneSuggestion = null;
+ mLastTelephonySuggestion = null;
mLastManualSuggestion = null;
mLastNetworkSuggestion = null;
- mLastAutoTimeDetectionToggleCalled = false;
+ mHandleAutoTimeDetectionChangedCalled = false;
mDumpCalled = false;
}
- void verifySuggestPhoneTimeCalled(PhoneTimeSuggestion expectedSuggestion) {
- assertEquals(expectedSuggestion, mLastPhoneSuggestion);
+ void verifySuggestTelephonyTimeCalled(TelephonyTimeSuggestion expectedSuggestion) {
+ assertEquals(expectedSuggestion, mLastTelephonySuggestion);
}
public void verifySuggestManualTimeCalled(ManualTimeSuggestion expectedSuggestion) {
@@ -279,45 +275,12 @@ public class TimeDetectorServiceTest {
assertEquals(expectedSuggestion, mLastNetworkSuggestion);
}
- void verifyHandleAutoTimeDetectionToggleCalled() {
- assertTrue(mLastAutoTimeDetectionToggleCalled);
+ void verifyHandleAutoTimeDetectionChangedCalled() {
+ assertTrue(mHandleAutoTimeDetectionChangedCalled);
}
void verifyDumpCalled() {
assertTrue(mDumpCalled);
}
}
-
- /**
- * A Handler that can track posts/sends and wait for work to be completed.
- */
- private static class TestHandler extends Handler {
-
- private int mMessagesSent;
-
- TestHandler(Looper looper) {
- super(looper);
- }
-
- @Override
- public boolean sendMessageAtTime(Message msg, long uptimeMillis) {
- mMessagesSent++;
- return super.sendMessageAtTime(msg, uptimeMillis);
- }
-
- /** Asserts the number of messages posted or sent is as expected. */
- void assertTotalMessagesEnqueued(int expected) {
- assertEquals(expected, mMessagesSent);
- }
-
- /**
- * Waits for all currently enqueued work due to be processed to be completed before
- * returning.
- */
- void waitForEmptyQueue() throws InterruptedException {
- while (!getLooper().getQueue().isIdle()) {
- Thread.sleep(100);
- }
- }
- }
}
diff --git a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorStrategyImplTest.java b/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorStrategyImplTest.java
index d940a6a320f2..803b245889e7 100644
--- a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorStrategyImplTest.java
+++ b/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorStrategyImplTest.java
@@ -24,7 +24,7 @@ import static org.junit.Assert.fail;
import android.app.timedetector.ManualTimeSuggestion;
import android.app.timedetector.NetworkTimeSuggestion;
-import android.app.timedetector.PhoneTimeSuggestion;
+import android.app.timedetector.TelephonyTimeSuggestion;
import android.icu.util.Calendar;
import android.icu.util.GregorianCalendar;
import android.icu.util.TimeZone;
@@ -52,7 +52,7 @@ public class TimeDetectorStrategyImplTest {
*/
private static final long ARBITRARY_TEST_TIME_MILLIS = createUtcTime(2018, 1, 1, 12, 0, 0);
- private static final int ARBITRARY_PHONE_ID = 123456;
+ private static final int ARBITRARY_SLOT_INDEX = 123456;
private Script mScript;
@@ -62,51 +62,51 @@ public class TimeDetectorStrategyImplTest {
}
@Test
- public void testSuggestPhoneTime_autoTimeEnabled() {
+ public void testSuggestTelephonyTime_autoTimeEnabled() {
mScript.pokeFakeClocks(ARBITRARY_CLOCK_INITIALIZATION_INFO)
.pokeAutoTimeDetectionEnabled(true);
- int phoneId = ARBITRARY_PHONE_ID;
+ int slotIndex = ARBITRARY_SLOT_INDEX;
long testTimeMillis = ARBITRARY_TEST_TIME_MILLIS;
- PhoneTimeSuggestion timeSuggestion =
- mScript.generatePhoneTimeSuggestion(phoneId, testTimeMillis);
+ TelephonyTimeSuggestion timeSuggestion =
+ mScript.generateTelephonyTimeSuggestion(slotIndex, testTimeMillis);
mScript.simulateTimePassing()
- .simulatePhoneTimeSuggestion(timeSuggestion);
+ .simulateTelephonyTimeSuggestion(timeSuggestion);
long expectedSystemClockMillis =
mScript.calculateTimeInMillisForNow(timeSuggestion.getUtcTime());
mScript.verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis)
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion);
}
@Test
- public void testSuggestPhoneTime_emptySuggestionIgnored() {
+ public void testSuggestTelephonyTime_emptySuggestionIgnored() {
mScript.pokeFakeClocks(ARBITRARY_CLOCK_INITIALIZATION_INFO)
.pokeAutoTimeDetectionEnabled(true);
- int phoneId = ARBITRARY_PHONE_ID;
- PhoneTimeSuggestion timeSuggestion =
- mScript.generatePhoneTimeSuggestion(phoneId, null);
- mScript.simulatePhoneTimeSuggestion(timeSuggestion)
+ int slotIndex = ARBITRARY_SLOT_INDEX;
+ TelephonyTimeSuggestion timeSuggestion =
+ mScript.generateTelephonyTimeSuggestion(slotIndex, null);
+ mScript.simulateTelephonyTimeSuggestion(timeSuggestion)
.verifySystemClockWasNotSetAndResetCallTracking()
- .assertLatestPhoneSuggestion(phoneId, null);
+ .assertLatestTelephonySuggestion(slotIndex, null);
}
@Test
- public void testSuggestPhoneTime_systemClockThreshold() {
+ public void testSuggestTelephonyTime_systemClockThreshold() {
final int systemClockUpdateThresholdMillis = 1000;
final int clockIncrementMillis = 100;
mScript.pokeFakeClocks(ARBITRARY_CLOCK_INITIALIZATION_INFO)
.pokeThresholds(systemClockUpdateThresholdMillis)
.pokeAutoTimeDetectionEnabled(true);
- int phoneId = ARBITRARY_PHONE_ID;
+ int slotIndex = ARBITRARY_SLOT_INDEX;
// Send the first time signal. It should be used.
{
- PhoneTimeSuggestion timeSuggestion1 =
- mScript.generatePhoneTimeSuggestion(phoneId, ARBITRARY_TEST_TIME_MILLIS);
+ TelephonyTimeSuggestion timeSuggestion1 =
+ mScript.generateTelephonyTimeSuggestion(slotIndex, ARBITRARY_TEST_TIME_MILLIS);
// Increment the the device clocks to simulate the passage of time.
mScript.simulateTimePassing(clockIncrementMillis);
@@ -114,151 +114,151 @@ public class TimeDetectorStrategyImplTest {
long expectedSystemClockMillis1 =
mScript.calculateTimeInMillisForNow(timeSuggestion1.getUtcTime());
- mScript.simulatePhoneTimeSuggestion(timeSuggestion1)
+ mScript.simulateTelephonyTimeSuggestion(timeSuggestion1)
.verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis1)
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion1);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion1);
}
// Now send another time signal, but one that is too similar to the last one and should be
// stored, but not used to set the system clock.
{
int underThresholdMillis = systemClockUpdateThresholdMillis - 1;
- PhoneTimeSuggestion timeSuggestion2 = mScript.generatePhoneTimeSuggestion(
- phoneId, mScript.peekSystemClockMillis() + underThresholdMillis);
+ TelephonyTimeSuggestion timeSuggestion2 = mScript.generateTelephonyTimeSuggestion(
+ slotIndex, mScript.peekSystemClockMillis() + underThresholdMillis);
mScript.simulateTimePassing(clockIncrementMillis)
- .simulatePhoneTimeSuggestion(timeSuggestion2)
+ .simulateTelephonyTimeSuggestion(timeSuggestion2)
.verifySystemClockWasNotSetAndResetCallTracking()
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion2);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion2);
}
// Now send another time signal, but one that is on the threshold and so should be used.
{
- PhoneTimeSuggestion timeSuggestion3 = mScript.generatePhoneTimeSuggestion(
- phoneId,
+ TelephonyTimeSuggestion timeSuggestion3 = mScript.generateTelephonyTimeSuggestion(
+ slotIndex,
mScript.peekSystemClockMillis() + systemClockUpdateThresholdMillis);
mScript.simulateTimePassing(clockIncrementMillis);
long expectedSystemClockMillis3 =
mScript.calculateTimeInMillisForNow(timeSuggestion3.getUtcTime());
- mScript.simulatePhoneTimeSuggestion(timeSuggestion3)
+ mScript.simulateTelephonyTimeSuggestion(timeSuggestion3)
.verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis3)
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion3);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion3);
}
}
@Test
- public void testSuggestPhoneTime_multiplePhoneIdsAndBucketing() {
+ public void testSuggestTelephonyTime_multipleSlotIndexsAndBucketing() {
mScript.pokeFakeClocks(ARBITRARY_CLOCK_INITIALIZATION_INFO)
.pokeAutoTimeDetectionEnabled(true);
- // There are 2 phones in this test. Phone 2 has a different idea of the current time.
- // phone1Id < phone2Id (which is important because the strategy uses the lowest ID when
- // multiple phone suggestions are available.
- int phone1Id = ARBITRARY_PHONE_ID;
- int phone2Id = ARBITRARY_PHONE_ID + 1;
- long phone1TimeMillis = ARBITRARY_TEST_TIME_MILLIS;
- long phone2TimeMillis = ARBITRARY_TEST_TIME_MILLIS + Duration.ofDays(1).toMillis();
+ // There are 2 slotIndexes in this test. slotIndex1 and slotIndex2 have different opinions
+ // about the current time. slotIndex1 < slotIndex2 (which is important because the strategy
+ // uses the lowest slotIndex when multiple telephony suggestions are available.
+ int slotIndex1 = ARBITRARY_SLOT_INDEX;
+ int slotIndex2 = ARBITRARY_SLOT_INDEX + 1;
+ long slotIndex1TimeMillis = ARBITRARY_TEST_TIME_MILLIS;
+ long slotIndex2TimeMillis = ARBITRARY_TEST_TIME_MILLIS + Duration.ofDays(1).toMillis();
- // Make a suggestion with phone2Id.
+ // Make a suggestion with slotIndex2.
{
- PhoneTimeSuggestion phone2TimeSuggestion =
- mScript.generatePhoneTimeSuggestion(phone2Id, phone2TimeMillis);
+ TelephonyTimeSuggestion slotIndex2TimeSuggestion =
+ mScript.generateTelephonyTimeSuggestion(slotIndex2, slotIndex2TimeMillis);
mScript.simulateTimePassing();
long expectedSystemClockMillis =
- mScript.calculateTimeInMillisForNow(phone2TimeSuggestion.getUtcTime());
+ mScript.calculateTimeInMillisForNow(slotIndex2TimeSuggestion.getUtcTime());
- mScript.simulatePhoneTimeSuggestion(phone2TimeSuggestion)
+ mScript.simulateTelephonyTimeSuggestion(slotIndex2TimeSuggestion)
.verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis)
- .assertLatestPhoneSuggestion(phone1Id, null)
- .assertLatestPhoneSuggestion(phone2Id, phone2TimeSuggestion);
+ .assertLatestTelephonySuggestion(slotIndex1, null)
+ .assertLatestTelephonySuggestion(slotIndex2, slotIndex2TimeSuggestion);
}
mScript.simulateTimePassing();
- // Now make a different suggestion with phone1Id.
+ // Now make a different suggestion with slotIndex1.
{
- PhoneTimeSuggestion phone1TimeSuggestion =
- mScript.generatePhoneTimeSuggestion(phone1Id, phone1TimeMillis);
+ TelephonyTimeSuggestion slotIndex1TimeSuggestion =
+ mScript.generateTelephonyTimeSuggestion(slotIndex1, slotIndex1TimeMillis);
mScript.simulateTimePassing();
long expectedSystemClockMillis =
- mScript.calculateTimeInMillisForNow(phone1TimeSuggestion.getUtcTime());
+ mScript.calculateTimeInMillisForNow(slotIndex1TimeSuggestion.getUtcTime());
- mScript.simulatePhoneTimeSuggestion(phone1TimeSuggestion)
+ mScript.simulateTelephonyTimeSuggestion(slotIndex1TimeSuggestion)
.verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis)
- .assertLatestPhoneSuggestion(phone1Id, phone1TimeSuggestion);
+ .assertLatestTelephonySuggestion(slotIndex1, slotIndex1TimeSuggestion);
}
mScript.simulateTimePassing();
- // Make another suggestion with phone2Id. It should be stored but not used because the
- // phone1Id suggestion will still "win".
+ // Make another suggestion with slotIndex2. It should be stored but not used because the
+ // slotIndex1 suggestion will still "win".
{
- PhoneTimeSuggestion phone2TimeSuggestion =
- mScript.generatePhoneTimeSuggestion(phone2Id, phone2TimeMillis);
+ TelephonyTimeSuggestion slotIndex2TimeSuggestion =
+ mScript.generateTelephonyTimeSuggestion(slotIndex2, slotIndex2TimeMillis);
mScript.simulateTimePassing();
- mScript.simulatePhoneTimeSuggestion(phone2TimeSuggestion)
+ mScript.simulateTelephonyTimeSuggestion(slotIndex2TimeSuggestion)
.verifySystemClockWasNotSetAndResetCallTracking()
- .assertLatestPhoneSuggestion(phone2Id, phone2TimeSuggestion);
+ .assertLatestTelephonySuggestion(slotIndex2, slotIndex2TimeSuggestion);
}
- // Let enough time pass that phone1Id's suggestion should now be too old.
- mScript.simulateTimePassing(TimeDetectorStrategyImpl.PHONE_BUCKET_SIZE_MILLIS);
+ // Let enough time pass that slotIndex1's suggestion should now be too old.
+ mScript.simulateTimePassing(TimeDetectorStrategyImpl.TELEPHONY_BUCKET_SIZE_MILLIS);
- // Make another suggestion with phone2Id. It should be used because the phoneId1
+ // Make another suggestion with slotIndex2. It should be used because the slotIndex1
// is in an older "bucket".
{
- PhoneTimeSuggestion phone2TimeSuggestion =
- mScript.generatePhoneTimeSuggestion(phone2Id, phone2TimeMillis);
+ TelephonyTimeSuggestion slotIndex2TimeSuggestion =
+ mScript.generateTelephonyTimeSuggestion(slotIndex2, slotIndex2TimeMillis);
mScript.simulateTimePassing();
long expectedSystemClockMillis =
- mScript.calculateTimeInMillisForNow(phone2TimeSuggestion.getUtcTime());
+ mScript.calculateTimeInMillisForNow(slotIndex2TimeSuggestion.getUtcTime());
- mScript.simulatePhoneTimeSuggestion(phone2TimeSuggestion)
+ mScript.simulateTelephonyTimeSuggestion(slotIndex2TimeSuggestion)
.verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis)
- .assertLatestPhoneSuggestion(phone2Id, phone2TimeSuggestion);
+ .assertLatestTelephonySuggestion(slotIndex2, slotIndex2TimeSuggestion);
}
}
@Test
- public void testSuggestPhoneTime_autoTimeDisabled() {
+ public void testSuggestTelephonyTime_autoTimeDisabled() {
mScript.pokeFakeClocks(ARBITRARY_CLOCK_INITIALIZATION_INFO)
.pokeAutoTimeDetectionEnabled(false);
- int phoneId = ARBITRARY_PHONE_ID;
- PhoneTimeSuggestion timeSuggestion =
- mScript.generatePhoneTimeSuggestion(phoneId, ARBITRARY_TEST_TIME_MILLIS);
+ int slotIndex = ARBITRARY_SLOT_INDEX;
+ TelephonyTimeSuggestion timeSuggestion =
+ mScript.generateTelephonyTimeSuggestion(slotIndex, ARBITRARY_TEST_TIME_MILLIS);
mScript.simulateTimePassing()
- .simulatePhoneTimeSuggestion(timeSuggestion)
+ .simulateTelephonyTimeSuggestion(timeSuggestion)
.verifySystemClockWasNotSetAndResetCallTracking()
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion);
}
@Test
- public void testSuggestPhoneTime_invalidNitzReferenceTimesIgnored() {
+ public void testSuggestTelephonyTime_invalidNitzReferenceTimesIgnored() {
final int systemClockUpdateThreshold = 2000;
mScript.pokeFakeClocks(ARBITRARY_CLOCK_INITIALIZATION_INFO)
.pokeThresholds(systemClockUpdateThreshold)
.pokeAutoTimeDetectionEnabled(true);
long testTimeMillis = ARBITRARY_TEST_TIME_MILLIS;
- int phoneId = ARBITRARY_PHONE_ID;
+ int slotIndex = ARBITRARY_SLOT_INDEX;
- PhoneTimeSuggestion timeSuggestion1 =
- mScript.generatePhoneTimeSuggestion(phoneId, testTimeMillis);
+ TelephonyTimeSuggestion timeSuggestion1 =
+ mScript.generateTelephonyTimeSuggestion(slotIndex, testTimeMillis);
TimestampedValue<Long> utcTime1 = timeSuggestion1.getUtcTime();
- // Initialize the strategy / device with a time set from a phone suggestion.
+ // Initialize the strategy / device with a time set from a telephony suggestion.
mScript.simulateTimePassing();
long expectedSystemClockMillis1 = mScript.calculateTimeInMillisForNow(utcTime1);
- mScript.simulatePhoneTimeSuggestion(timeSuggestion1)
+ mScript.simulateTelephonyTimeSuggestion(timeSuggestion1)
.verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis1)
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion1);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion1);
// The UTC time increment should be larger than the system clock update threshold so we
// know it shouldn't be ignored for other reasons.
@@ -269,11 +269,11 @@ public class TimeDetectorStrategyImplTest {
long referenceTimeBeforeLastSignalMillis = utcTime1.getReferenceTimeMillis() - 1;
TimestampedValue<Long> utcTime2 = new TimestampedValue<>(
referenceTimeBeforeLastSignalMillis, validUtcTimeMillis);
- PhoneTimeSuggestion timeSuggestion2 =
- createPhoneTimeSuggestion(phoneId, utcTime2);
- mScript.simulatePhoneTimeSuggestion(timeSuggestion2)
+ TelephonyTimeSuggestion timeSuggestion2 =
+ createTelephonyTimeSuggestion(slotIndex, utcTime2);
+ mScript.simulateTelephonyTimeSuggestion(timeSuggestion2)
.verifySystemClockWasNotSetAndResetCallTracking()
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion1);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion1);
// Now supply a new signal that has an obviously bogus reference time : substantially in the
// future.
@@ -281,36 +281,36 @@ public class TimeDetectorStrategyImplTest {
utcTime1.getReferenceTimeMillis() + Integer.MAX_VALUE + 1;
TimestampedValue<Long> utcTime3 = new TimestampedValue<>(
referenceTimeInFutureMillis, validUtcTimeMillis);
- PhoneTimeSuggestion timeSuggestion3 =
- createPhoneTimeSuggestion(phoneId, utcTime3);
- mScript.simulatePhoneTimeSuggestion(timeSuggestion3)
+ TelephonyTimeSuggestion timeSuggestion3 =
+ createTelephonyTimeSuggestion(slotIndex, utcTime3);
+ mScript.simulateTelephonyTimeSuggestion(timeSuggestion3)
.verifySystemClockWasNotSetAndResetCallTracking()
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion1);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion1);
// Just to prove validUtcTimeMillis is valid.
long validReferenceTimeMillis = utcTime1.getReferenceTimeMillis() + 100;
TimestampedValue<Long> utcTime4 = new TimestampedValue<>(
validReferenceTimeMillis, validUtcTimeMillis);
long expectedSystemClockMillis4 = mScript.calculateTimeInMillisForNow(utcTime4);
- PhoneTimeSuggestion timeSuggestion4 =
- createPhoneTimeSuggestion(phoneId, utcTime4);
- mScript.simulatePhoneTimeSuggestion(timeSuggestion4)
+ TelephonyTimeSuggestion timeSuggestion4 =
+ createTelephonyTimeSuggestion(slotIndex, utcTime4);
+ mScript.simulateTelephonyTimeSuggestion(timeSuggestion4)
.verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis4)
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion4);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion4);
}
@Test
- public void testSuggestPhoneTime_timeDetectionToggled() {
+ public void testSuggestTelephonyTime_timeDetectionToggled() {
final int clockIncrementMillis = 100;
final int systemClockUpdateThreshold = 2000;
mScript.pokeFakeClocks(ARBITRARY_CLOCK_INITIALIZATION_INFO)
.pokeThresholds(systemClockUpdateThreshold)
.pokeAutoTimeDetectionEnabled(false);
- int phoneId = ARBITRARY_PHONE_ID;
+ int slotIndex = ARBITRARY_SLOT_INDEX;
long testTimeMillis = ARBITRARY_TEST_TIME_MILLIS;
- PhoneTimeSuggestion timeSuggestion1 =
- mScript.generatePhoneTimeSuggestion(phoneId, testTimeMillis);
+ TelephonyTimeSuggestion timeSuggestion1 =
+ mScript.generateTelephonyTimeSuggestion(slotIndex, testTimeMillis);
TimestampedValue<Long> utcTime1 = timeSuggestion1.getUtcTime();
// Simulate time passing.
@@ -318,9 +318,9 @@ public class TimeDetectorStrategyImplTest {
// Simulate the time signal being received. It should not be used because auto time
// detection is off but it should be recorded.
- mScript.simulatePhoneTimeSuggestion(timeSuggestion1)
+ mScript.simulateTelephonyTimeSuggestion(timeSuggestion1)
.verifySystemClockWasNotSetAndResetCallTracking()
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion1);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion1);
// Simulate more time passing.
mScript.simulateTimePassing(clockIncrementMillis);
@@ -330,17 +330,17 @@ public class TimeDetectorStrategyImplTest {
// Turn on auto time detection.
mScript.simulateAutoTimeDetectionToggle()
.verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis1)
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion1);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion1);
// Turn off auto time detection.
mScript.simulateAutoTimeDetectionToggle()
.verifySystemClockWasNotSetAndResetCallTracking()
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion1);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion1);
// Receive another valid time signal.
// It should be on the threshold and accounting for the clock increments.
- PhoneTimeSuggestion timeSuggestion2 = mScript.generatePhoneTimeSuggestion(
- phoneId, mScript.peekSystemClockMillis() + systemClockUpdateThreshold);
+ TelephonyTimeSuggestion timeSuggestion2 = mScript.generateTelephonyTimeSuggestion(
+ slotIndex, mScript.peekSystemClockMillis() + systemClockUpdateThreshold);
// Simulate more time passing.
mScript.simulateTimePassing(clockIncrementMillis);
@@ -350,45 +350,45 @@ public class TimeDetectorStrategyImplTest {
// The new time, though valid, should not be set in the system clock because auto time is
// disabled.
- mScript.simulatePhoneTimeSuggestion(timeSuggestion2)
+ mScript.simulateTelephonyTimeSuggestion(timeSuggestion2)
.verifySystemClockWasNotSetAndResetCallTracking()
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion2);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion2);
// Turn on auto time detection.
mScript.simulateAutoTimeDetectionToggle()
.verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis2)
- .assertLatestPhoneSuggestion(phoneId, timeSuggestion2);
+ .assertLatestTelephonySuggestion(slotIndex, timeSuggestion2);
}
@Test
- public void testSuggestPhoneTime_maxSuggestionAge() {
+ public void testSuggestTelephonyTime_maxSuggestionAge() {
mScript.pokeFakeClocks(ARBITRARY_CLOCK_INITIALIZATION_INFO)
.pokeAutoTimeDetectionEnabled(true);
- int phoneId = ARBITRARY_PHONE_ID;
+ int slotIndex = ARBITRARY_SLOT_INDEX;
long testTimeMillis = ARBITRARY_TEST_TIME_MILLIS;
- PhoneTimeSuggestion phoneSuggestion =
- mScript.generatePhoneTimeSuggestion(phoneId, testTimeMillis);
+ TelephonyTimeSuggestion telephonySuggestion =
+ mScript.generateTelephonyTimeSuggestion(slotIndex, testTimeMillis);
mScript.simulateTimePassing();
long expectedSystemClockMillis =
- mScript.calculateTimeInMillisForNow(phoneSuggestion.getUtcTime());
- mScript.simulatePhoneTimeSuggestion(phoneSuggestion)
+ mScript.calculateTimeInMillisForNow(telephonySuggestion.getUtcTime());
+ mScript.simulateTelephonyTimeSuggestion(telephonySuggestion)
.verifySystemClockWasSetAndResetCallTracking(
expectedSystemClockMillis /* expectedNetworkBroadcast */)
- .assertLatestPhoneSuggestion(phoneId, phoneSuggestion);
+ .assertLatestTelephonySuggestion(slotIndex, telephonySuggestion);
- // Look inside and check what the strategy considers the current best phone suggestion.
- assertEquals(phoneSuggestion, mScript.peekBestPhoneSuggestion());
+ // Look inside and check what the strategy considers the current best telephony suggestion.
+ assertEquals(telephonySuggestion, mScript.peekBestTelephonySuggestion());
- // Simulate time passing, long enough that phoneSuggestion is now too old.
+ // Simulate time passing, long enough that telephonySuggestion is now too old.
mScript.simulateTimePassing(TimeDetectorStrategyImpl.MAX_UTC_TIME_AGE_MILLIS);
- // Look inside and check what the strategy considers the current best phone suggestion. It
- // should still be the, it's just no longer used.
- assertNull(mScript.peekBestPhoneSuggestion());
- mScript.assertLatestPhoneSuggestion(phoneId, phoneSuggestion);
+ // Look inside and check what the strategy considers the current best telephony suggestion.
+ // It should still be the, it's just no longer used.
+ assertNull(mScript.peekBestTelephonySuggestion());
+ mScript.assertLatestTelephonySuggestion(slotIndex, telephonySuggestion);
}
@Test
@@ -413,21 +413,21 @@ public class TimeDetectorStrategyImplTest {
mScript.pokeFakeClocks(ARBITRARY_CLOCK_INITIALIZATION_INFO)
.pokeAutoTimeDetectionEnabled(true);
- int phoneId = ARBITRARY_PHONE_ID;
+ int slotIndex = ARBITRARY_SLOT_INDEX;
- // Simulate a phone suggestion.
+ // Simulate a telephony suggestion.
long testTimeMillis = ARBITRARY_TEST_TIME_MILLIS;
- PhoneTimeSuggestion phoneTimeSuggestion =
- mScript.generatePhoneTimeSuggestion(phoneId, testTimeMillis);
+ TelephonyTimeSuggestion telephonyTimeSuggestion =
+ mScript.generateTelephonyTimeSuggestion(slotIndex, testTimeMillis);
// Simulate the passage of time.
mScript.simulateTimePassing();
long expectedAutoClockMillis =
- mScript.calculateTimeInMillisForNow(phoneTimeSuggestion.getUtcTime());
- mScript.simulatePhoneTimeSuggestion(phoneTimeSuggestion)
+ mScript.calculateTimeInMillisForNow(telephonyTimeSuggestion.getUtcTime());
+ mScript.simulateTelephonyTimeSuggestion(telephonyTimeSuggestion)
.verifySystemClockWasSetAndResetCallTracking(expectedAutoClockMillis)
- .assertLatestPhoneSuggestion(phoneId, phoneTimeSuggestion);
+ .assertLatestTelephonySuggestion(slotIndex, telephonyTimeSuggestion);
// Simulate the passage of time.
mScript.simulateTimePassing();
@@ -435,7 +435,7 @@ public class TimeDetectorStrategyImplTest {
// Switch to manual.
mScript.simulateAutoTimeDetectionToggle()
.verifySystemClockWasNotSetAndResetCallTracking()
- .assertLatestPhoneSuggestion(phoneId, phoneTimeSuggestion);
+ .assertLatestTelephonySuggestion(slotIndex, telephonyTimeSuggestion);
// Simulate the passage of time.
mScript.simulateTimePassing();
@@ -450,7 +450,7 @@ public class TimeDetectorStrategyImplTest {
mScript.calculateTimeInMillisForNow(manualTimeSuggestion.getUtcTime());
mScript.simulateManualTimeSuggestion(manualTimeSuggestion)
.verifySystemClockWasSetAndResetCallTracking(expectedManualClockMillis)
- .assertLatestPhoneSuggestion(phoneId, phoneTimeSuggestion);
+ .assertLatestTelephonySuggestion(slotIndex, telephonyTimeSuggestion);
// Simulate the passage of time.
mScript.simulateTimePassing();
@@ -459,14 +459,14 @@ public class TimeDetectorStrategyImplTest {
mScript.simulateAutoTimeDetectionToggle();
expectedAutoClockMillis =
- mScript.calculateTimeInMillisForNow(phoneTimeSuggestion.getUtcTime());
+ mScript.calculateTimeInMillisForNow(telephonyTimeSuggestion.getUtcTime());
mScript.verifySystemClockWasSetAndResetCallTracking(expectedAutoClockMillis)
- .assertLatestPhoneSuggestion(phoneId, phoneTimeSuggestion);
+ .assertLatestTelephonySuggestion(slotIndex, telephonyTimeSuggestion);
// Switch back to manual - nothing should happen to the clock.
mScript.simulateAutoTimeDetectionToggle()
.verifySystemClockWasNotSetAndResetCallTracking()
- .assertLatestPhoneSuggestion(phoneId, phoneTimeSuggestion);
+ .assertLatestTelephonySuggestion(slotIndex, telephonyTimeSuggestion);
}
/**
@@ -515,19 +515,19 @@ public class TimeDetectorStrategyImplTest {
}
@Test
- public void testSuggestNetworkTime_phoneSuggestionsBeatNetworkSuggestions() {
+ public void testSuggestNetworkTime_telephonySuggestionsBeatNetworkSuggestions() {
mScript.pokeFakeClocks(ARBITRARY_CLOCK_INITIALIZATION_INFO)
.pokeAutoTimeDetectionEnabled(true);
// Three obviously different times that could not be mistaken for each other.
long networkTimeMillis1 = ARBITRARY_TEST_TIME_MILLIS;
long networkTimeMillis2 = ARBITRARY_TEST_TIME_MILLIS + Duration.ofDays(30).toMillis();
- long phoneTimeMillis = ARBITRARY_TEST_TIME_MILLIS + Duration.ofDays(60).toMillis();
+ long telephonyTimeMillis = ARBITRARY_TEST_TIME_MILLIS + Duration.ofDays(60).toMillis();
// A small increment used to simulate the passage of time, but not enough to interfere with
// macro-level time changes associated with suggestion age.
final long smallTimeIncrementMillis = 101;
- // A network suggestion is made. It should be used because there is no phone suggestion.
+ // A network suggestion is made. It should be used because there is no telephony suggestion.
NetworkTimeSuggestion networkTimeSuggestion1 =
mScript.generateNetworkTimeSuggestion(networkTimeMillis1);
mScript.simulateTimePassing(smallTimeIncrementMillis)
@@ -536,37 +536,37 @@ public class TimeDetectorStrategyImplTest {
mScript.calculateTimeInMillisForNow(networkTimeSuggestion1.getUtcTime()));
// Check internal state.
- mScript.assertLatestPhoneSuggestion(ARBITRARY_PHONE_ID, null)
+ mScript.assertLatestTelephonySuggestion(ARBITRARY_SLOT_INDEX, null)
.assertLatestNetworkSuggestion(networkTimeSuggestion1);
assertEquals(networkTimeSuggestion1, mScript.peekLatestValidNetworkSuggestion());
- assertNull(mScript.peekBestPhoneSuggestion());
+ assertNull(mScript.peekBestTelephonySuggestion());
// Simulate a little time passing.
mScript.simulateTimePassing(smallTimeIncrementMillis)
.verifySystemClockWasNotSetAndResetCallTracking();
- // Now a phone suggestion is made. Phone suggestions are prioritized over network
+ // Now a telephony suggestion is made. Telephony suggestions are prioritized over network
// suggestions so it should "win".
- PhoneTimeSuggestion phoneTimeSuggestion =
- mScript.generatePhoneTimeSuggestion(ARBITRARY_PHONE_ID, phoneTimeMillis);
+ TelephonyTimeSuggestion telephonyTimeSuggestion =
+ mScript.generateTelephonyTimeSuggestion(ARBITRARY_SLOT_INDEX, telephonyTimeMillis);
mScript.simulateTimePassing(smallTimeIncrementMillis)
- .simulatePhoneTimeSuggestion(phoneTimeSuggestion)
+ .simulateTelephonyTimeSuggestion(telephonyTimeSuggestion)
.verifySystemClockWasSetAndResetCallTracking(
- mScript.calculateTimeInMillisForNow(phoneTimeSuggestion.getUtcTime()));
+ mScript.calculateTimeInMillisForNow(telephonyTimeSuggestion.getUtcTime()));
// Check internal state.
- mScript.assertLatestPhoneSuggestion(ARBITRARY_PHONE_ID, phoneTimeSuggestion)
+ mScript.assertLatestTelephonySuggestion(ARBITRARY_SLOT_INDEX, telephonyTimeSuggestion)
.assertLatestNetworkSuggestion(networkTimeSuggestion1);
assertEquals(networkTimeSuggestion1, mScript.peekLatestValidNetworkSuggestion());
- assertEquals(phoneTimeSuggestion, mScript.peekBestPhoneSuggestion());
+ assertEquals(telephonyTimeSuggestion, mScript.peekBestTelephonySuggestion());
// Simulate some significant time passing: half the time allowed before a time signal
// becomes "too old to use".
mScript.simulateTimePassing(TimeDetectorStrategyImpl.MAX_UTC_TIME_AGE_MILLIS / 2)
.verifySystemClockWasNotSetAndResetCallTracking();
- // Now another network suggestion is made. Phone suggestions are prioritized over network
- // suggestions so the latest phone suggestion should still "win".
+ // Now another network suggestion is made. Telephony suggestions are prioritized over
+ // network suggestions so the latest telephony suggestion should still "win".
NetworkTimeSuggestion networkTimeSuggestion2 =
mScript.generateNetworkTimeSuggestion(networkTimeMillis2);
mScript.simulateTimePassing(smallTimeIncrementMillis)
@@ -574,14 +574,14 @@ public class TimeDetectorStrategyImplTest {
.verifySystemClockWasNotSetAndResetCallTracking();
// Check internal state.
- mScript.assertLatestPhoneSuggestion(ARBITRARY_PHONE_ID, phoneTimeSuggestion)
+ mScript.assertLatestTelephonySuggestion(ARBITRARY_SLOT_INDEX, telephonyTimeSuggestion)
.assertLatestNetworkSuggestion(networkTimeSuggestion2);
assertEquals(networkTimeSuggestion2, mScript.peekLatestValidNetworkSuggestion());
- assertEquals(phoneTimeSuggestion, mScript.peekBestPhoneSuggestion());
+ assertEquals(telephonyTimeSuggestion, mScript.peekBestTelephonySuggestion());
// Simulate some significant time passing: half the time allowed before a time signal
- // becomes "too old to use". This should mean that phoneTimeSuggestion is now too old to be
- // used but networkTimeSuggestion2 is not.
+ // becomes "too old to use". This should mean that telephonyTimeSuggestion is now too old to
+ // be used but networkTimeSuggestion2 is not.
mScript.simulateTimePassing(TimeDetectorStrategyImpl.MAX_UTC_TIME_AGE_MILLIS / 2);
// NOTE: The TimeDetectorStrategyImpl doesn't set an alarm for the point when the last
@@ -591,10 +591,10 @@ public class TimeDetectorStrategyImplTest {
mScript.verifySystemClockWasNotSetAndResetCallTracking();
// Check internal state.
- mScript.assertLatestPhoneSuggestion(ARBITRARY_PHONE_ID, phoneTimeSuggestion)
+ mScript.assertLatestTelephonySuggestion(ARBITRARY_SLOT_INDEX, telephonyTimeSuggestion)
.assertLatestNetworkSuggestion(networkTimeSuggestion2);
assertEquals(networkTimeSuggestion2, mScript.peekLatestValidNetworkSuggestion());
- assertNull(mScript.peekBestPhoneSuggestion());
+ assertNull(mScript.peekBestTelephonySuggestion());
// Toggle auto-time off and on to force the detection logic to run.
mScript.simulateAutoTimeDetectionToggle()
@@ -606,10 +606,10 @@ public class TimeDetectorStrategyImplTest {
mScript.calculateTimeInMillisForNow(networkTimeSuggestion2.getUtcTime()));
// Check internal state.
- mScript.assertLatestPhoneSuggestion(ARBITRARY_PHONE_ID, phoneTimeSuggestion)
+ mScript.assertLatestTelephonySuggestion(ARBITRARY_SLOT_INDEX, telephonyTimeSuggestion)
.assertLatestNetworkSuggestion(networkTimeSuggestion2);
assertEquals(networkTimeSuggestion2, mScript.peekLatestValidNetworkSuggestion());
- assertNull(mScript.peekBestPhoneSuggestion());
+ assertNull(mScript.peekBestTelephonySuggestion());
}
/**
@@ -760,8 +760,8 @@ public class TimeDetectorStrategyImplTest {
return mFakeCallback.peekSystemClockMillis();
}
- Script simulatePhoneTimeSuggestion(PhoneTimeSuggestion timeSuggestion) {
- mTimeDetectorStrategy.suggestPhoneTime(timeSuggestion);
+ Script simulateTelephonyTimeSuggestion(TelephonyTimeSuggestion timeSuggestion) {
+ mTimeDetectorStrategy.suggestTelephonyTime(timeSuggestion);
return this;
}
@@ -806,10 +806,10 @@ public class TimeDetectorStrategyImplTest {
}
/**
- * White box test info: Asserts the latest suggestion for the phone ID is as expected.
+ * White box test info: Asserts the latest suggestion for the slotIndex is as expected.
*/
- Script assertLatestPhoneSuggestion(int phoneId, PhoneTimeSuggestion expected) {
- assertEquals(expected, mTimeDetectorStrategy.getLatestPhoneSuggestion(phoneId));
+ Script assertLatestTelephonySuggestion(int slotIndex, TelephonyTimeSuggestion expected) {
+ assertEquals(expected, mTimeDetectorStrategy.getLatestTelephonySuggestion(slotIndex));
return this;
}
@@ -822,11 +822,11 @@ public class TimeDetectorStrategyImplTest {
}
/**
- * White box test info: Returns the phone suggestion that would be used, if any, given the
- * current elapsed real time clock and regardless of origin prioritization.
+ * White box test info: Returns the telephony suggestion that would be used, if any, given
+ * the current elapsed real time clock and regardless of origin prioritization.
*/
- PhoneTimeSuggestion peekBestPhoneSuggestion() {
- return mTimeDetectorStrategy.findBestPhoneSuggestionForTests();
+ TelephonyTimeSuggestion peekBestTelephonySuggestion() {
+ return mTimeDetectorStrategy.findBestTelephonySuggestionForTests();
}
/**
@@ -848,15 +848,15 @@ public class TimeDetectorStrategyImplTest {
}
/**
- * Generates a PhoneTimeSuggestion using the current elapsed realtime clock for the
- * reference time.
+ * Generates a {@link TelephonyTimeSuggestion} using the current elapsed realtime clock for
+ * the reference time.
*/
- PhoneTimeSuggestion generatePhoneTimeSuggestion(int phoneId, Long timeMillis) {
+ TelephonyTimeSuggestion generateTelephonyTimeSuggestion(int slotIndex, Long timeMillis) {
TimestampedValue<Long> time = null;
if (timeMillis != null) {
time = new TimestampedValue<>(peekElapsedRealtimeMillis(), timeMillis);
}
- return createPhoneTimeSuggestion(phoneId, time);
+ return createTelephonyTimeSuggestion(slotIndex, time);
}
/**
@@ -878,9 +878,9 @@ public class TimeDetectorStrategyImplTest {
}
}
- private static PhoneTimeSuggestion createPhoneTimeSuggestion(int phoneId,
+ private static TelephonyTimeSuggestion createTelephonyTimeSuggestion(int slotIndex,
TimestampedValue<Long> utcTime) {
- return new PhoneTimeSuggestion.Builder(phoneId)
+ return new TelephonyTimeSuggestion.Builder(slotIndex)
.setUtcTime(utcTime)
.build();
}
diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TestHandler.java b/services/tests/servicestests/src/com/android/server/timezonedetector/TestHandler.java
new file mode 100644
index 000000000000..21c9685b05d2
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/timezonedetector/TestHandler.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.server.timezonedetector;
+
+import static org.junit.Assert.assertEquals;
+
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+
+/**
+ * A Handler that can track posts/sends and wait for them to be completed.
+ */
+public class TestHandler extends Handler {
+
+ private final Object mMonitor = new Object();
+ private int mMessagesProcessed = 0;
+ private int mMessagesSent = 0;
+
+ public TestHandler(Looper looper) {
+ super(looper);
+ }
+
+ @Override
+ public boolean sendMessageAtTime(Message msg, long uptimeMillis) {
+ synchronized (mMonitor) {
+ mMessagesSent++;
+ }
+
+ Runnable callback = msg.getCallback();
+ // Have the callback increment the mMessagesProcessed when it is done. It will notify
+ // any threads waiting for all messages to be processed if appropriate.
+ Runnable newCallback = () -> {
+ callback.run();
+ synchronized (mMonitor) {
+ mMessagesProcessed++;
+ if (mMessagesSent == mMessagesProcessed) {
+ mMonitor.notifyAll();
+ }
+ }
+ };
+ msg.setCallback(newCallback);
+ return super.sendMessageAtTime(msg, uptimeMillis);
+ }
+
+ /** Asserts the number of messages posted or sent is as expected. */
+ public void assertTotalMessagesEnqueued(int expected) {
+ synchronized (mMonitor) {
+ assertEquals(expected, mMessagesSent);
+ }
+ }
+
+ /**
+ * Waits for all enqueued work to be completed before returning.
+ */
+ public void waitForMessagesToBeProcessed() throws InterruptedException {
+ synchronized (mMonitor) {
+ if (mMessagesSent != mMessagesProcessed) {
+ mMonitor.wait();
+ }
+ }
+ }
+}
diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorServiceTest.java b/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorServiceTest.java
new file mode 100644
index 000000000000..039c2b4933e9
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorServiceTest.java
@@ -0,0 +1,233 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.timezonedetector;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.timezonedetector.ManualTimeZoneSuggestion;
+import android.app.timezonedetector.TelephonyTimeZoneSuggestion;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.HandlerThread;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.PrintWriter;
+
+@RunWith(AndroidJUnit4.class)
+public class TimeZoneDetectorServiceTest {
+
+ private Context mMockContext;
+ private StubbedTimeZoneDetectorStrategy mStubbedTimeZoneDetectorStrategy;
+
+ private TimeZoneDetectorService mTimeZoneDetectorService;
+ private HandlerThread mHandlerThread;
+ private TestHandler mTestHandler;
+
+
+ @Before
+ public void setUp() {
+ mMockContext = mock(Context.class);
+
+ // Create a thread + handler for processing the work that the service posts.
+ mHandlerThread = new HandlerThread("TimeZoneDetectorServiceTest");
+ mHandlerThread.start();
+ mTestHandler = new TestHandler(mHandlerThread.getLooper());
+
+ mStubbedTimeZoneDetectorStrategy = new StubbedTimeZoneDetectorStrategy();
+
+ mTimeZoneDetectorService = new TimeZoneDetectorService(
+ mMockContext, mTestHandler, mStubbedTimeZoneDetectorStrategy);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ mHandlerThread.quit();
+ mHandlerThread.join();
+ }
+
+ @Test(expected = SecurityException.class)
+ public void testSuggestTelephonyTime_withoutPermission() {
+ doThrow(new SecurityException("Mock"))
+ .when(mMockContext).enforceCallingPermission(anyString(), any());
+ TelephonyTimeZoneSuggestion timeZoneSuggestion = createTelephonyTimeZoneSuggestion();
+
+ try {
+ mTimeZoneDetectorService.suggestTelephonyTimeZone(timeZoneSuggestion);
+ fail();
+ } finally {
+ verify(mMockContext).enforceCallingPermission(
+ eq(android.Manifest.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE),
+ anyString());
+ }
+ }
+
+ @Test
+ public void testSuggestTelephonyTimeZone() throws Exception {
+ doNothing().when(mMockContext).enforceCallingPermission(anyString(), any());
+
+ TelephonyTimeZoneSuggestion timeZoneSuggestion = createTelephonyTimeZoneSuggestion();
+ mTimeZoneDetectorService.suggestTelephonyTimeZone(timeZoneSuggestion);
+ mTestHandler.assertTotalMessagesEnqueued(1);
+
+ verify(mMockContext).enforceCallingPermission(
+ eq(android.Manifest.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE),
+ anyString());
+
+ mTestHandler.waitForMessagesToBeProcessed();
+ mStubbedTimeZoneDetectorStrategy.verifySuggestTelephonyTimeZoneCalled(timeZoneSuggestion);
+ }
+
+ @Test(expected = SecurityException.class)
+ public void testSuggestManualTime_withoutPermission() {
+ doThrow(new SecurityException("Mock"))
+ .when(mMockContext).enforceCallingOrSelfPermission(anyString(), any());
+ ManualTimeZoneSuggestion timeZoneSuggestion = createManualTimeZoneSuggestion();
+
+ try {
+ mTimeZoneDetectorService.suggestManualTimeZone(timeZoneSuggestion);
+ fail();
+ } finally {
+ verify(mMockContext).enforceCallingOrSelfPermission(
+ eq(android.Manifest.permission.SUGGEST_MANUAL_TIME_AND_ZONE),
+ anyString());
+ }
+ }
+
+ @Test
+ public void testSuggestManualTimeZone() throws Exception {
+ doNothing().when(mMockContext).enforceCallingOrSelfPermission(anyString(), any());
+
+ ManualTimeZoneSuggestion timeZoneSuggestion = createManualTimeZoneSuggestion();
+ mTimeZoneDetectorService.suggestManualTimeZone(timeZoneSuggestion);
+ mTestHandler.assertTotalMessagesEnqueued(1);
+
+ verify(mMockContext).enforceCallingOrSelfPermission(
+ eq(android.Manifest.permission.SUGGEST_MANUAL_TIME_AND_ZONE),
+ anyString());
+
+ mTestHandler.waitForMessagesToBeProcessed();
+ mStubbedTimeZoneDetectorStrategy.verifySuggestManualTimeZoneCalled(timeZoneSuggestion);
+ }
+
+ @Test
+ public void testDump() {
+ when(mMockContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP))
+ .thenReturn(PackageManager.PERMISSION_GRANTED);
+
+ mTimeZoneDetectorService.dump(null, null, null);
+
+ verify(mMockContext).checkCallingOrSelfPermission(eq(android.Manifest.permission.DUMP));
+ mStubbedTimeZoneDetectorStrategy.verifyDumpCalled();
+ }
+
+ @Test
+ public void testAutoTimeZoneDetectionChanged() throws Exception {
+ mTimeZoneDetectorService.handleAutoTimeZoneDetectionChanged();
+ mTestHandler.assertTotalMessagesEnqueued(1);
+ mTestHandler.waitForMessagesToBeProcessed();
+ mStubbedTimeZoneDetectorStrategy.verifyHandleAutoTimeZoneDetectionChangedCalled();
+
+ mStubbedTimeZoneDetectorStrategy.resetCallTracking();
+
+ mTimeZoneDetectorService.handleAutoTimeZoneDetectionChanged();
+ mTestHandler.assertTotalMessagesEnqueued(2);
+ mTestHandler.waitForMessagesToBeProcessed();
+ mStubbedTimeZoneDetectorStrategy.verifyHandleAutoTimeZoneDetectionChangedCalled();
+ }
+
+ private static TelephonyTimeZoneSuggestion createTelephonyTimeZoneSuggestion() {
+ int slotIndex = 1234;
+ return new TelephonyTimeZoneSuggestion.Builder(slotIndex)
+ .setZoneId("TestZoneId")
+ .setMatchType(TelephonyTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET)
+ .setQuality(TelephonyTimeZoneSuggestion.QUALITY_SINGLE_ZONE)
+ .build();
+ }
+
+ private static ManualTimeZoneSuggestion createManualTimeZoneSuggestion() {
+ return new ManualTimeZoneSuggestion("TestZoneId");
+ }
+
+ private static class StubbedTimeZoneDetectorStrategy implements TimeZoneDetectorStrategy {
+
+ // Call tracking.
+ private TelephonyTimeZoneSuggestion mLastTelephonySuggestion;
+ private ManualTimeZoneSuggestion mLastManualSuggestion;
+ private boolean mHandleAutoTimeZoneDetectionChangedCalled;
+ private boolean mDumpCalled;
+
+ @Override
+ public void suggestTelephonyTimeZone(TelephonyTimeZoneSuggestion timeZoneSuggestion) {
+ mLastTelephonySuggestion = timeZoneSuggestion;
+ }
+
+ @Override
+ public void suggestManualTimeZone(ManualTimeZoneSuggestion timeZoneSuggestion) {
+ mLastManualSuggestion = timeZoneSuggestion;
+ }
+
+ @Override
+ public void handleAutoTimeZoneDetectionChanged() {
+ mHandleAutoTimeZoneDetectionChangedCalled = true;
+ }
+
+ @Override
+ public void dump(PrintWriter pw, String[] args) {
+ mDumpCalled = true;
+ }
+
+ void resetCallTracking() {
+ mLastTelephonySuggestion = null;
+ mLastManualSuggestion = null;
+ mHandleAutoTimeZoneDetectionChangedCalled = false;
+ mDumpCalled = false;
+ }
+
+ void verifySuggestTelephonyTimeZoneCalled(TelephonyTimeZoneSuggestion expectedSuggestion) {
+ assertEquals(expectedSuggestion, mLastTelephonySuggestion);
+ }
+
+ public void verifySuggestManualTimeZoneCalled(ManualTimeZoneSuggestion expectedSuggestion) {
+ assertEquals(expectedSuggestion, mLastManualSuggestion);
+ }
+
+ void verifyHandleAutoTimeZoneDetectionChangedCalled() {
+ assertTrue(mHandleAutoTimeZoneDetectionChangedCalled);
+ }
+
+ void verifyDumpCalled() {
+ assertTrue(mDumpCalled);
+ }
+ }
+
+}
diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyTest.java b/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyImplTest.java
index 2429cfc1bcd0..ba309679e47a 100644
--- a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyTest.java
+++ b/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyImplTest.java
@@ -16,20 +16,20 @@
package com.android.server.timezonedetector;
-import static android.app.timezonedetector.PhoneTimeZoneSuggestion.MATCH_TYPE_EMULATOR_ZONE_ID;
-import static android.app.timezonedetector.PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET;
-import static android.app.timezonedetector.PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY;
-import static android.app.timezonedetector.PhoneTimeZoneSuggestion.MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY;
-import static android.app.timezonedetector.PhoneTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS;
-import static android.app.timezonedetector.PhoneTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET;
-import static android.app.timezonedetector.PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE;
-
-import static com.android.server.timezonedetector.TimeZoneDetectorStrategy.PHONE_SCORE_HIGH;
-import static com.android.server.timezonedetector.TimeZoneDetectorStrategy.PHONE_SCORE_HIGHEST;
-import static com.android.server.timezonedetector.TimeZoneDetectorStrategy.PHONE_SCORE_LOW;
-import static com.android.server.timezonedetector.TimeZoneDetectorStrategy.PHONE_SCORE_MEDIUM;
-import static com.android.server.timezonedetector.TimeZoneDetectorStrategy.PHONE_SCORE_NONE;
-import static com.android.server.timezonedetector.TimeZoneDetectorStrategy.PHONE_SCORE_USAGE_THRESHOLD;
+import static android.app.timezonedetector.TelephonyTimeZoneSuggestion.MATCH_TYPE_EMULATOR_ZONE_ID;
+import static android.app.timezonedetector.TelephonyTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET;
+import static android.app.timezonedetector.TelephonyTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY;
+import static android.app.timezonedetector.TelephonyTimeZoneSuggestion.MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY;
+import static android.app.timezonedetector.TelephonyTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS;
+import static android.app.timezonedetector.TelephonyTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET;
+import static android.app.timezonedetector.TelephonyTimeZoneSuggestion.QUALITY_SINGLE_ZONE;
+
+import static com.android.server.timezonedetector.TimeZoneDetectorStrategyImpl.TELEPHONY_SCORE_HIGH;
+import static com.android.server.timezonedetector.TimeZoneDetectorStrategyImpl.TELEPHONY_SCORE_HIGHEST;
+import static com.android.server.timezonedetector.TimeZoneDetectorStrategyImpl.TELEPHONY_SCORE_LOW;
+import static com.android.server.timezonedetector.TimeZoneDetectorStrategyImpl.TELEPHONY_SCORE_MEDIUM;
+import static com.android.server.timezonedetector.TimeZoneDetectorStrategyImpl.TELEPHONY_SCORE_NONE;
+import static com.android.server.timezonedetector.TimeZoneDetectorStrategyImpl.TELEPHONY_SCORE_USAGE_THRESHOLD;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -37,11 +37,11 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import android.app.timezonedetector.ManualTimeZoneSuggestion;
-import android.app.timezonedetector.PhoneTimeZoneSuggestion;
-import android.app.timezonedetector.PhoneTimeZoneSuggestion.MatchType;
-import android.app.timezonedetector.PhoneTimeZoneSuggestion.Quality;
+import android.app.timezonedetector.TelephonyTimeZoneSuggestion;
+import android.app.timezonedetector.TelephonyTimeZoneSuggestion.MatchType;
+import android.app.timezonedetector.TelephonyTimeZoneSuggestion.Quality;
-import com.android.server.timezonedetector.TimeZoneDetectorStrategy.QualifiedPhoneTimeZoneSuggestion;
+import com.android.server.timezonedetector.TimeZoneDetectorStrategyImpl.QualifiedTelephonyTimeZoneSuggestion;
import org.junit.Before;
import org.junit.Test;
@@ -52,113 +52,119 @@ import java.util.Collections;
import java.util.LinkedList;
/**
- * White-box unit tests for {@link TimeZoneDetectorStrategy}.
+ * White-box unit tests for {@link TimeZoneDetectorStrategyImpl}.
*/
-public class TimeZoneDetectorStrategyTest {
+public class TimeZoneDetectorStrategyImplTest {
/** A time zone used for initialization that does not occur elsewhere in tests. */
private static final String ARBITRARY_TIME_ZONE_ID = "Etc/UTC";
- private static final int PHONE1_ID = 10000;
- private static final int PHONE2_ID = 20000;
+ private static final int SLOT_INDEX1 = 10000;
+ private static final int SLOT_INDEX2 = 20000;
// Suggestion test cases are ordered so that each successive one is of the same or higher score
// than the previous.
private static final SuggestionTestCase[] TEST_CASES = new SuggestionTestCase[] {
newTestCase(MATCH_TYPE_NETWORK_COUNTRY_ONLY,
- QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS, PHONE_SCORE_LOW),
+ QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS, TELEPHONY_SCORE_LOW),
newTestCase(MATCH_TYPE_NETWORK_COUNTRY_ONLY, QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET,
- PHONE_SCORE_MEDIUM),
+ TELEPHONY_SCORE_MEDIUM),
newTestCase(MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET,
- QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET, PHONE_SCORE_MEDIUM),
- newTestCase(MATCH_TYPE_NETWORK_COUNTRY_ONLY, QUALITY_SINGLE_ZONE, PHONE_SCORE_HIGH),
+ QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET, TELEPHONY_SCORE_MEDIUM),
+ newTestCase(MATCH_TYPE_NETWORK_COUNTRY_ONLY, QUALITY_SINGLE_ZONE, TELEPHONY_SCORE_HIGH),
newTestCase(MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET, QUALITY_SINGLE_ZONE,
- PHONE_SCORE_HIGH),
+ TELEPHONY_SCORE_HIGH),
newTestCase(MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY,
- QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET, PHONE_SCORE_HIGHEST),
- newTestCase(MATCH_TYPE_EMULATOR_ZONE_ID, QUALITY_SINGLE_ZONE, PHONE_SCORE_HIGHEST),
+ QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET, TELEPHONY_SCORE_HIGHEST),
+ newTestCase(MATCH_TYPE_EMULATOR_ZONE_ID, QUALITY_SINGLE_ZONE, TELEPHONY_SCORE_HIGHEST),
};
- private TimeZoneDetectorStrategy mTimeZoneDetectorStrategy;
+ private TimeZoneDetectorStrategyImpl mTimeZoneDetectorStrategy;
private FakeTimeZoneDetectorStrategyCallback mFakeTimeZoneDetectorStrategyCallback;
@Before
public void setUp() {
mFakeTimeZoneDetectorStrategyCallback = new FakeTimeZoneDetectorStrategyCallback();
mTimeZoneDetectorStrategy =
- new TimeZoneDetectorStrategy(mFakeTimeZoneDetectorStrategyCallback);
+ new TimeZoneDetectorStrategyImpl(mFakeTimeZoneDetectorStrategyCallback);
}
@Test
- public void testEmptyPhoneSuggestions() {
- PhoneTimeZoneSuggestion phone1TimeZoneSuggestion = createEmptyPhone1Suggestion();
- PhoneTimeZoneSuggestion phone2TimeZoneSuggestion = createEmptyPhone2Suggestion();
+ public void testEmptyTelephonySuggestions() {
+ TelephonyTimeZoneSuggestion slotIndex1TimeZoneSuggestion =
+ createEmptySlotIndex1Suggestion();
+ TelephonyTimeZoneSuggestion slotIndex2TimeZoneSuggestion =
+ createEmptySlotIndex2Suggestion();
Script script = new Script()
.initializeAutoTimeZoneDetection(true)
.initializeTimeZoneSetting(ARBITRARY_TIME_ZONE_ID);
- script.suggestPhoneTimeZone(phone1TimeZoneSuggestion)
+ script.suggestTelephonyTimeZone(slotIndex1TimeZoneSuggestion)
.verifyTimeZoneNotSet();
// Assert internal service state.
- QualifiedPhoneTimeZoneSuggestion expectedPhone1ScoredSuggestion =
- new QualifiedPhoneTimeZoneSuggestion(phone1TimeZoneSuggestion, PHONE_SCORE_NONE);
- assertEquals(expectedPhone1ScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
- assertNull(mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE2_ID));
- assertEquals(expectedPhone1ScoredSuggestion,
- mTimeZoneDetectorStrategy.findBestPhoneSuggestionForTests());
-
- script.suggestPhoneTimeZone(phone2TimeZoneSuggestion)
+ QualifiedTelephonyTimeZoneSuggestion expectedSlotIndex1ScoredSuggestion =
+ new QualifiedTelephonyTimeZoneSuggestion(slotIndex1TimeZoneSuggestion,
+ TELEPHONY_SCORE_NONE);
+ assertEquals(expectedSlotIndex1ScoredSuggestion,
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
+ assertNull(mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX2));
+ assertEquals(expectedSlotIndex1ScoredSuggestion,
+ mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
+
+ script.suggestTelephonyTimeZone(slotIndex2TimeZoneSuggestion)
.verifyTimeZoneNotSet();
// Assert internal service state.
- QualifiedPhoneTimeZoneSuggestion expectedPhone2ScoredSuggestion =
- new QualifiedPhoneTimeZoneSuggestion(phone2TimeZoneSuggestion, PHONE_SCORE_NONE);
- assertEquals(expectedPhone1ScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
- assertEquals(expectedPhone2ScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE2_ID));
- // Phone 1 should always beat phone 2, all other things being equal.
- assertEquals(expectedPhone1ScoredSuggestion,
- mTimeZoneDetectorStrategy.findBestPhoneSuggestionForTests());
+ QualifiedTelephonyTimeZoneSuggestion expectedSlotIndex2ScoredSuggestion =
+ new QualifiedTelephonyTimeZoneSuggestion(slotIndex2TimeZoneSuggestion,
+ TELEPHONY_SCORE_NONE);
+ assertEquals(expectedSlotIndex1ScoredSuggestion,
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
+ assertEquals(expectedSlotIndex2ScoredSuggestion,
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX2));
+ // SlotIndex1 should always beat slotIndex2, all other things being equal.
+ assertEquals(expectedSlotIndex1ScoredSuggestion,
+ mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
}
@Test
- public void testFirstPlausiblePhoneSuggestionAcceptedWhenTimeZoneUninitialized() {
+ public void testFirstPlausibleTelephonySuggestionAcceptedWhenTimeZoneUninitialized() {
SuggestionTestCase testCase = newTestCase(MATCH_TYPE_NETWORK_COUNTRY_ONLY,
- QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS, PHONE_SCORE_LOW);
- PhoneTimeZoneSuggestion lowQualitySuggestion =
- testCase.createSuggestion(PHONE1_ID, "America/New_York");
+ QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS, TELEPHONY_SCORE_LOW);
+ TelephonyTimeZoneSuggestion lowQualitySuggestion =
+ testCase.createSuggestion(SLOT_INDEX1, "America/New_York");
// The device time zone setting is left uninitialized.
Script script = new Script()
.initializeAutoTimeZoneDetection(true);
// The very first suggestion will be taken.
- script.suggestPhoneTimeZone(lowQualitySuggestion)
+ script.suggestTelephonyTimeZone(lowQualitySuggestion)
.verifyTimeZoneSetAndReset(lowQualitySuggestion);
// Assert internal service state.
- QualifiedPhoneTimeZoneSuggestion expectedScoredSuggestion =
- new QualifiedPhoneTimeZoneSuggestion(lowQualitySuggestion, testCase.expectedScore);
+ QualifiedTelephonyTimeZoneSuggestion expectedScoredSuggestion =
+ new QualifiedTelephonyTimeZoneSuggestion(
+ lowQualitySuggestion, testCase.expectedScore);
assertEquals(expectedScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
assertEquals(expectedScoredSuggestion,
- mTimeZoneDetectorStrategy.findBestPhoneSuggestionForTests());
+ mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
// Another low quality suggestion will be ignored now that the setting is initialized.
- PhoneTimeZoneSuggestion lowQualitySuggestion2 =
- testCase.createSuggestion(PHONE1_ID, "America/Los_Angeles");
- script.suggestPhoneTimeZone(lowQualitySuggestion2)
+ TelephonyTimeZoneSuggestion lowQualitySuggestion2 =
+ testCase.createSuggestion(SLOT_INDEX1, "America/Los_Angeles");
+ script.suggestTelephonyTimeZone(lowQualitySuggestion2)
.verifyTimeZoneNotSet();
// Assert internal service state.
- QualifiedPhoneTimeZoneSuggestion expectedScoredSuggestion2 =
- new QualifiedPhoneTimeZoneSuggestion(lowQualitySuggestion2, testCase.expectedScore);
+ QualifiedTelephonyTimeZoneSuggestion expectedScoredSuggestion2 =
+ new QualifiedTelephonyTimeZoneSuggestion(
+ lowQualitySuggestion2, testCase.expectedScore);
assertEquals(expectedScoredSuggestion2,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
assertEquals(expectedScoredSuggestion2,
- mTimeZoneDetectorStrategy.findBestPhoneSuggestionForTests());
+ mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
}
/**
@@ -174,28 +180,28 @@ public class TimeZoneDetectorStrategyTest {
script.initializeAutoTimeZoneDetection(false)
.initializeTimeZoneSetting(ARBITRARY_TIME_ZONE_ID);
- PhoneTimeZoneSuggestion suggestion =
- testCase.createSuggestion(PHONE1_ID, "Europe/London");
- script.suggestPhoneTimeZone(suggestion);
+ TelephonyTimeZoneSuggestion suggestion =
+ testCase.createSuggestion(SLOT_INDEX1, "Europe/London");
+ script.suggestTelephonyTimeZone(suggestion);
// When time zone detection is not enabled, the time zone suggestion will not be set
// regardless of the score.
script.verifyTimeZoneNotSet();
// Assert internal service state.
- QualifiedPhoneTimeZoneSuggestion expectedScoredSuggestion =
- new QualifiedPhoneTimeZoneSuggestion(suggestion, testCase.expectedScore);
+ QualifiedTelephonyTimeZoneSuggestion expectedScoredSuggestion =
+ new QualifiedTelephonyTimeZoneSuggestion(suggestion, testCase.expectedScore);
assertEquals(expectedScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
assertEquals(expectedScoredSuggestion,
- mTimeZoneDetectorStrategy.findBestPhoneSuggestionForTests());
+ mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
// Toggling the time zone setting on should cause the device setting to be set.
script.autoTimeZoneDetectionEnabled(true);
// When time zone detection is already enabled the suggestion (if it scores highly
// enough) should be set immediately.
- if (testCase.expectedScore >= PHONE_SCORE_USAGE_THRESHOLD) {
+ if (testCase.expectedScore >= TELEPHONY_SCORE_USAGE_THRESHOLD) {
script.verifyTimeZoneSetAndReset(suggestion);
} else {
script.verifyTimeZoneNotSet();
@@ -203,9 +209,9 @@ public class TimeZoneDetectorStrategyTest {
// Assert internal service state.
assertEquals(expectedScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
assertEquals(expectedScoredSuggestion,
- mTimeZoneDetectorStrategy.findBestPhoneSuggestionForTests());
+ mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
// Toggling the time zone setting should off should do nothing.
script.autoTimeZoneDetectionEnabled(false)
@@ -213,20 +219,20 @@ public class TimeZoneDetectorStrategyTest {
// Assert internal service state.
assertEquals(expectedScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
assertEquals(expectedScoredSuggestion,
- mTimeZoneDetectorStrategy.findBestPhoneSuggestionForTests());
+ mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
}
}
@Test
- public void testPhoneSuggestionsSinglePhone() {
+ public void testTelephonySuggestionsSingleSlotId() {
Script script = new Script()
.initializeAutoTimeZoneDetection(true)
.initializeTimeZoneSetting(ARBITRARY_TIME_ZONE_ID);
for (SuggestionTestCase testCase : TEST_CASES) {
- makePhone1SuggestionAndCheckState(script, testCase);
+ makeSlotIndex1SuggestionAndCheckState(script, testCase);
}
/*
@@ -241,130 +247,133 @@ public class TimeZoneDetectorStrategyTest {
Collections.reverse(descendingCasesByScore);
for (SuggestionTestCase testCase : descendingCasesByScore) {
- makePhone1SuggestionAndCheckState(script, testCase);
+ makeSlotIndex1SuggestionAndCheckState(script, testCase);
}
}
- private void makePhone1SuggestionAndCheckState(Script script, SuggestionTestCase testCase) {
+ private void makeSlotIndex1SuggestionAndCheckState(Script script, SuggestionTestCase testCase) {
// Give the next suggestion a different zone from the currently set device time zone;
String currentZoneId = mFakeTimeZoneDetectorStrategyCallback.getDeviceTimeZone();
String suggestionZoneId =
"Europe/London".equals(currentZoneId) ? "Europe/Paris" : "Europe/London";
- PhoneTimeZoneSuggestion zonePhone1Suggestion =
- testCase.createSuggestion(PHONE1_ID, suggestionZoneId);
- QualifiedPhoneTimeZoneSuggestion expectedZonePhone1ScoredSuggestion =
- new QualifiedPhoneTimeZoneSuggestion(zonePhone1Suggestion, testCase.expectedScore);
-
- script.suggestPhoneTimeZone(zonePhone1Suggestion);
- if (testCase.expectedScore >= PHONE_SCORE_USAGE_THRESHOLD) {
- script.verifyTimeZoneSetAndReset(zonePhone1Suggestion);
+ TelephonyTimeZoneSuggestion zoneSlotIndex1Suggestion =
+ testCase.createSuggestion(SLOT_INDEX1, suggestionZoneId);
+ QualifiedTelephonyTimeZoneSuggestion expectedZoneSlotIndex1ScoredSuggestion =
+ new QualifiedTelephonyTimeZoneSuggestion(
+ zoneSlotIndex1Suggestion, testCase.expectedScore);
+
+ script.suggestTelephonyTimeZone(zoneSlotIndex1Suggestion);
+ if (testCase.expectedScore >= TELEPHONY_SCORE_USAGE_THRESHOLD) {
+ script.verifyTimeZoneSetAndReset(zoneSlotIndex1Suggestion);
} else {
script.verifyTimeZoneNotSet();
}
// Assert internal service state.
- assertEquals(expectedZonePhone1ScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
- assertEquals(expectedZonePhone1ScoredSuggestion,
- mTimeZoneDetectorStrategy.findBestPhoneSuggestionForTests());
+ assertEquals(expectedZoneSlotIndex1ScoredSuggestion,
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
+ assertEquals(expectedZoneSlotIndex1ScoredSuggestion,
+ mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
}
/**
- * Tries a set of test cases to see if the phone with the lowest ID is given preference. This
- * test also confirms that the time zone setting would only be set if a suggestion is of
- * sufficient quality.
+ * Tries a set of test cases to see if the slotIndex with the lowest numeric value is given
+ * preference. This test also confirms that the time zone setting would only be set if a
+ * suggestion is of sufficient quality.
*/
@Test
- public void testMultiplePhoneSuggestionScoringAndPhoneIdBias() {
+ public void testMultipleSlotIndexSuggestionScoringAndSlotIndexBias() {
String[] zoneIds = { "Europe/London", "Europe/Paris" };
- PhoneTimeZoneSuggestion emptyPhone1Suggestion = createEmptyPhone1Suggestion();
- PhoneTimeZoneSuggestion emptyPhone2Suggestion = createEmptyPhone2Suggestion();
- QualifiedPhoneTimeZoneSuggestion expectedEmptyPhone1ScoredSuggestion =
- new QualifiedPhoneTimeZoneSuggestion(emptyPhone1Suggestion, PHONE_SCORE_NONE);
- QualifiedPhoneTimeZoneSuggestion expectedEmptyPhone2ScoredSuggestion =
- new QualifiedPhoneTimeZoneSuggestion(emptyPhone2Suggestion, PHONE_SCORE_NONE);
+ TelephonyTimeZoneSuggestion emptySlotIndex1Suggestion = createEmptySlotIndex1Suggestion();
+ TelephonyTimeZoneSuggestion emptySlotIndex2Suggestion = createEmptySlotIndex2Suggestion();
+ QualifiedTelephonyTimeZoneSuggestion expectedEmptySlotIndex1ScoredSuggestion =
+ new QualifiedTelephonyTimeZoneSuggestion(emptySlotIndex1Suggestion,
+ TELEPHONY_SCORE_NONE);
+ QualifiedTelephonyTimeZoneSuggestion expectedEmptySlotIndex2ScoredSuggestion =
+ new QualifiedTelephonyTimeZoneSuggestion(emptySlotIndex2Suggestion,
+ TELEPHONY_SCORE_NONE);
Script script = new Script()
.initializeAutoTimeZoneDetection(true)
.initializeTimeZoneSetting(ARBITRARY_TIME_ZONE_ID)
// Initialize the latest suggestions as empty so we don't need to worry about nulls
// below for the first loop.
- .suggestPhoneTimeZone(emptyPhone1Suggestion)
- .suggestPhoneTimeZone(emptyPhone2Suggestion)
+ .suggestTelephonyTimeZone(emptySlotIndex1Suggestion)
+ .suggestTelephonyTimeZone(emptySlotIndex2Suggestion)
.resetState();
for (SuggestionTestCase testCase : TEST_CASES) {
- PhoneTimeZoneSuggestion zonePhone1Suggestion =
- testCase.createSuggestion(PHONE1_ID, zoneIds[0]);
- PhoneTimeZoneSuggestion zonePhone2Suggestion =
- testCase.createSuggestion(PHONE2_ID, zoneIds[1]);
- QualifiedPhoneTimeZoneSuggestion expectedZonePhone1ScoredSuggestion =
- new QualifiedPhoneTimeZoneSuggestion(zonePhone1Suggestion,
+ TelephonyTimeZoneSuggestion zoneSlotIndex1Suggestion =
+ testCase.createSuggestion(SLOT_INDEX1, zoneIds[0]);
+ TelephonyTimeZoneSuggestion zoneSlotIndex2Suggestion =
+ testCase.createSuggestion(SLOT_INDEX2, zoneIds[1]);
+ QualifiedTelephonyTimeZoneSuggestion expectedZoneSlotIndex1ScoredSuggestion =
+ new QualifiedTelephonyTimeZoneSuggestion(zoneSlotIndex1Suggestion,
testCase.expectedScore);
- QualifiedPhoneTimeZoneSuggestion expectedZonePhone2ScoredSuggestion =
- new QualifiedPhoneTimeZoneSuggestion(zonePhone2Suggestion,
+ QualifiedTelephonyTimeZoneSuggestion expectedZoneSlotIndex2ScoredSuggestion =
+ new QualifiedTelephonyTimeZoneSuggestion(zoneSlotIndex2Suggestion,
testCase.expectedScore);
- // Start the test by making a suggestion for phone 1.
- script.suggestPhoneTimeZone(zonePhone1Suggestion);
- if (testCase.expectedScore >= PHONE_SCORE_USAGE_THRESHOLD) {
- script.verifyTimeZoneSetAndReset(zonePhone1Suggestion);
+ // Start the test by making a suggestion for slotIndex1.
+ script.suggestTelephonyTimeZone(zoneSlotIndex1Suggestion);
+ if (testCase.expectedScore >= TELEPHONY_SCORE_USAGE_THRESHOLD) {
+ script.verifyTimeZoneSetAndReset(zoneSlotIndex1Suggestion);
} else {
script.verifyTimeZoneNotSet();
}
// Assert internal service state.
- assertEquals(expectedZonePhone1ScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
- assertEquals(expectedEmptyPhone2ScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE2_ID));
- assertEquals(expectedZonePhone1ScoredSuggestion,
- mTimeZoneDetectorStrategy.findBestPhoneSuggestionForTests());
-
- // Phone 2 then makes an alternative suggestion with an identical score. Phone 1's
+ assertEquals(expectedZoneSlotIndex1ScoredSuggestion,
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
+ assertEquals(expectedEmptySlotIndex2ScoredSuggestion,
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX2));
+ assertEquals(expectedZoneSlotIndex1ScoredSuggestion,
+ mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
+
+ // SlotIndex2 then makes an alternative suggestion with an identical score. SlotIndex1's
// suggestion should still "win" if it is above the required threshold.
- script.suggestPhoneTimeZone(zonePhone2Suggestion);
+ script.suggestTelephonyTimeZone(zoneSlotIndex2Suggestion);
script.verifyTimeZoneNotSet();
// Assert internal service state.
- assertEquals(expectedZonePhone1ScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
- assertEquals(expectedZonePhone2ScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE2_ID));
- // Phone 1 should always beat phone 2, all other things being equal.
- assertEquals(expectedZonePhone1ScoredSuggestion,
- mTimeZoneDetectorStrategy.findBestPhoneSuggestionForTests());
-
- // Withdrawing phone 1's suggestion should leave phone 2 as the new winner. Since the
- // zoneId is different, the time zone setting should be updated if the score is high
+ assertEquals(expectedZoneSlotIndex1ScoredSuggestion,
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
+ assertEquals(expectedZoneSlotIndex2ScoredSuggestion,
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX2));
+ // SlotIndex1 should always beat slotIndex2, all other things being equal.
+ assertEquals(expectedZoneSlotIndex1ScoredSuggestion,
+ mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
+
+ // Withdrawing slotIndex1's suggestion should leave slotIndex2 as the new winner. Since
+ // the zoneId is different, the time zone setting should be updated if the score is high
// enough.
- script.suggestPhoneTimeZone(emptyPhone1Suggestion);
- if (testCase.expectedScore >= PHONE_SCORE_USAGE_THRESHOLD) {
- script.verifyTimeZoneSetAndReset(zonePhone2Suggestion);
+ script.suggestTelephonyTimeZone(emptySlotIndex1Suggestion);
+ if (testCase.expectedScore >= TELEPHONY_SCORE_USAGE_THRESHOLD) {
+ script.verifyTimeZoneSetAndReset(zoneSlotIndex2Suggestion);
} else {
script.verifyTimeZoneNotSet();
}
// Assert internal service state.
- assertEquals(expectedEmptyPhone1ScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
- assertEquals(expectedZonePhone2ScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE2_ID));
- assertEquals(expectedZonePhone2ScoredSuggestion,
- mTimeZoneDetectorStrategy.findBestPhoneSuggestionForTests());
+ assertEquals(expectedEmptySlotIndex1ScoredSuggestion,
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
+ assertEquals(expectedZoneSlotIndex2ScoredSuggestion,
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX2));
+ assertEquals(expectedZoneSlotIndex2ScoredSuggestion,
+ mTimeZoneDetectorStrategy.findBestTelephonySuggestionForTests());
// Reset the state for the next loop.
- script.suggestPhoneTimeZone(emptyPhone2Suggestion)
+ script.suggestTelephonyTimeZone(emptySlotIndex2Suggestion)
.verifyTimeZoneNotSet();
- assertEquals(expectedEmptyPhone1ScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
- assertEquals(expectedEmptyPhone2ScoredSuggestion,
- mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE2_ID));
+ assertEquals(expectedEmptySlotIndex1ScoredSuggestion,
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX1));
+ assertEquals(expectedEmptySlotIndex2ScoredSuggestion,
+ mTimeZoneDetectorStrategy.getLatestTelephonySuggestion(SLOT_INDEX2));
}
}
/**
- * The {@link TimeZoneDetectorStrategy.Callback} is left to detect whether changing the time
+ * The {@link TimeZoneDetectorStrategyImpl.Callback} is left to detect whether changing the time
* zone is actually necessary. This test proves that the service doesn't assume it knows the
* current setting.
*/
@@ -375,21 +384,21 @@ public class TimeZoneDetectorStrategyTest {
SuggestionTestCase testCase =
newTestCase(MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET, QUALITY_SINGLE_ZONE,
- PHONE_SCORE_HIGH);
- PhoneTimeZoneSuggestion losAngelesSuggestion =
- testCase.createSuggestion(PHONE1_ID, "America/Los_Angeles");
- PhoneTimeZoneSuggestion newYorkSuggestion =
- testCase.createSuggestion(PHONE1_ID, "America/New_York");
+ TELEPHONY_SCORE_HIGH);
+ TelephonyTimeZoneSuggestion losAngelesSuggestion =
+ testCase.createSuggestion(SLOT_INDEX1, "America/Los_Angeles");
+ TelephonyTimeZoneSuggestion newYorkSuggestion =
+ testCase.createSuggestion(SLOT_INDEX1, "America/New_York");
// Initialization.
- script.suggestPhoneTimeZone(losAngelesSuggestion)
+ script.suggestTelephonyTimeZone(losAngelesSuggestion)
.verifyTimeZoneSetAndReset(losAngelesSuggestion);
// Suggest it again - it should not be set because it is already set.
- script.suggestPhoneTimeZone(losAngelesSuggestion)
+ script.suggestTelephonyTimeZone(losAngelesSuggestion)
.verifyTimeZoneNotSet();
// Toggling time zone detection should set the device time zone only if the current setting
- // value is different from the most recent phone suggestion.
+ // value is different from the most recent telephony suggestion.
script.autoTimeZoneDetectionEnabled(false)
.verifyTimeZoneNotSet()
.autoTimeZoneDetectionEnabled(true)
@@ -398,7 +407,7 @@ public class TimeZoneDetectorStrategyTest {
// Simulate a user turning auto detection off, a new suggestion being made while auto
// detection is off, and the user turning it on again.
script.autoTimeZoneDetectionEnabled(false)
- .suggestPhoneTimeZone(newYorkSuggestion)
+ .suggestTelephonyTimeZone(newYorkSuggestion)
.verifyTimeZoneNotSet();
// Latest suggestion should be used.
script.autoTimeZoneDetectionEnabled(true)
@@ -433,15 +442,16 @@ public class TimeZoneDetectorStrategyTest {
return new ManualTimeZoneSuggestion(zoneId);
}
- private static PhoneTimeZoneSuggestion createEmptyPhone1Suggestion() {
- return new PhoneTimeZoneSuggestion.Builder(PHONE1_ID).build();
+ private static TelephonyTimeZoneSuggestion createEmptySlotIndex1Suggestion() {
+ return new TelephonyTimeZoneSuggestion.Builder(SLOT_INDEX1).build();
}
- private static PhoneTimeZoneSuggestion createEmptyPhone2Suggestion() {
- return new PhoneTimeZoneSuggestion.Builder(PHONE2_ID).build();
+ private static TelephonyTimeZoneSuggestion createEmptySlotIndex2Suggestion() {
+ return new TelephonyTimeZoneSuggestion.Builder(SLOT_INDEX2).build();
}
- static class FakeTimeZoneDetectorStrategyCallback implements TimeZoneDetectorStrategy.Callback {
+ static class FakeTimeZoneDetectorStrategyCallback
+ implements TimeZoneDetectorStrategyImpl.Callback {
private boolean mAutoTimeZoneDetectionEnabled;
private TestState<String> mTimeZoneId = new TestState<>();
@@ -560,13 +570,15 @@ public class TimeZoneDetectorStrategyTest {
Script autoTimeZoneDetectionEnabled(boolean enabled) {
mFakeTimeZoneDetectorStrategyCallback.setAutoTimeZoneDetectionEnabled(enabled);
- mTimeZoneDetectorStrategy.handleAutoTimeZoneDetectionChange();
+ mTimeZoneDetectorStrategy.handleAutoTimeZoneDetectionChanged();
return this;
}
- /** Simulates the time zone detection strategy receiving a phone-originated suggestion. */
- Script suggestPhoneTimeZone(PhoneTimeZoneSuggestion phoneTimeZoneSuggestion) {
- mTimeZoneDetectorStrategy.suggestPhoneTimeZone(phoneTimeZoneSuggestion);
+ /**
+ * Simulates the time zone detection strategy receiving a telephony-originated suggestion.
+ */
+ Script suggestTelephonyTimeZone(TelephonyTimeZoneSuggestion timeZoneSuggestion) {
+ mTimeZoneDetectorStrategy.suggestTelephonyTimeZone(timeZoneSuggestion);
return this;
}
@@ -581,7 +593,7 @@ public class TimeZoneDetectorStrategyTest {
return this;
}
- Script verifyTimeZoneSetAndReset(PhoneTimeZoneSuggestion suggestion) {
+ Script verifyTimeZoneSetAndReset(TelephonyTimeZoneSuggestion suggestion) {
mFakeTimeZoneDetectorStrategyCallback.assertTimeZoneSet(suggestion.getZoneId());
mFakeTimeZoneDetectorStrategyCallback.commitAllChanges();
return this;
@@ -610,8 +622,8 @@ public class TimeZoneDetectorStrategyTest {
this.expectedScore = expectedScore;
}
- private PhoneTimeZoneSuggestion createSuggestion(int phoneId, String zoneId) {
- return new PhoneTimeZoneSuggestion.Builder(phoneId)
+ private TelephonyTimeZoneSuggestion createSuggestion(int slotIndex, String zoneId) {
+ return new TelephonyTimeZoneSuggestion.Builder(slotIndex)
.setZoneId(zoneId)
.setMatchType(matchType)
.setQuality(quality)
diff --git a/services/tests/uiservicestests/AndroidManifest.xml b/services/tests/uiservicestests/AndroidManifest.xml
index 180deb5c4dcc..dab0a5f0e279 100644
--- a/services/tests/uiservicestests/AndroidManifest.xml
+++ b/services/tests/uiservicestests/AndroidManifest.xml
@@ -28,6 +28,8 @@
<uses-permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE" />
<uses-permission android:name="android.permission.DEVICE_POWER" />
<uses-permission android:name="android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY" />
+ <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE"/>
+ <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.OBSERVE_ROLE_HOLDERS" />
<uses-permission android:name="android.permission.GET_INTENT_SENDER_INTENT"/>
diff --git a/core/java/com/android/internal/logging/testing/InstanceIdSequenceFake.java b/services/tests/uiservicestests/src/com/android/internal/logging/InstanceIdSequenceFake.java
index 0fd40b9ceb06..1629ef00b65a 100644
--- a/core/java/com/android/internal/logging/testing/InstanceIdSequenceFake.java
+++ b/services/tests/uiservicestests/src/com/android/internal/logging/InstanceIdSequenceFake.java
@@ -14,12 +14,7 @@
* limitations under the License.
*/
-package com.android.internal.logging.testing;
-
-import android.annotation.SuppressLint;
-
-import com.android.internal.logging.InstanceId;
-import com.android.internal.logging.InstanceIdSequence;
+package com.android.internal.logging;
/**
* A fake implementation of InstanceIdSequence that returns 0, 1, 2, ...
@@ -30,27 +25,15 @@ public class InstanceIdSequenceFake extends InstanceIdSequence {
super(instanceIdMax);
}
- /**
- * Extend InstanceId to add a constructor we can call, strictly for testing purposes.
- * Public so that tests can check whether the InstanceIds they see are fake.
- */
- public static class InstanceIdFake extends InstanceId {
- @SuppressLint("VisibleForTests") // This is test infrastructure, which ought to count
- InstanceIdFake(int id) {
- super(id);
- }
- }
-
private int mNextId = 0;
@Override
public InstanceId newInstanceId() {
synchronized (this) {
- ++mNextId;
if (mNextId >= mInstanceIdMax) {
mNextId = 0;
}
- return new InstanceIdFake(mNextId);
+ return newInstanceIdInternal(mNextId++);
}
}
}
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java b/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java
index 651ad40a4781..f029bc80480a 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/BuzzBeepBlinkTest.java
@@ -72,6 +72,8 @@ import android.view.accessibility.IAccessibilityManagerClient;
import androidx.test.runner.AndroidJUnit4;
+import com.android.internal.logging.InstanceIdSequence;
+import com.android.internal.logging.InstanceIdSequenceFake;
import com.android.internal.util.IntPair;
import com.android.server.UiServiceTestCase;
import com.android.server.lights.LogicalLight;
@@ -99,6 +101,8 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
@Mock
IAccessibilityManager mAccessibilityService;
NotificationRecordLoggerFake mNotificationRecordLogger = new NotificationRecordLoggerFake();
+ private InstanceIdSequence mNotificationInstanceIdSequence = new InstanceIdSequenceFake(
+ 1 << 30);
private NotificationManagerService mService;
private String mPkg = "com.android.server.notification";
@@ -149,7 +153,8 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
verify(mAccessibilityService).addClient(any(IAccessibilityManagerClient.class), anyInt());
assertTrue(accessibilityManager.isEnabled());
- mService = spy(new NotificationManagerService(getContext(), mNotificationRecordLogger));
+ mService = spy(new NotificationManagerService(getContext(), mNotificationRecordLogger,
+ mNotificationInstanceIdSequence));
mService.setAudioManager(mAudioManager);
mService.setVibrator(mVibrator);
mService.setSystemReady(true);
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 d16c232afea9..47ad83147262 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelExtractorTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationChannelExtractorTest.java
@@ -97,7 +97,7 @@ public class NotificationChannelExtractorTest extends UiServiceTestCase {
NotificationChannel updatedChannel =
new NotificationChannel("a", "", IMPORTANCE_HIGH);
when(mConfig.getConversationNotificationChannel(
- any(), anyInt(), eq("a"), eq(r.sbn.getShortcutId(mContext)), eq(true), eq(false)))
+ any(), anyInt(), eq("a"), eq(r.getSbn().getShortcutId(mContext)), eq(true), eq(false)))
.thenReturn(updatedChannel);
assertNull(extractor.process(r));
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 768b4721a1ee..e0ee3ce3aa57 100755
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -30,6 +30,9 @@ import static android.app.NotificationManager.IMPORTANCE_LOW;
import static android.app.NotificationManager.IMPORTANCE_MAX;
import static android.app.NotificationManager.IMPORTANCE_NONE;
import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
+import static android.app.NotificationManager.Policy.PRIORITY_CATEGORY_CALLS;
+import static android.app.NotificationManager.Policy.PRIORITY_CATEGORY_CONVERSATIONS;
+import static android.app.NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES;
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_AMBIENT;
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_BADGE;
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_FULL_SCREEN_INTENT;
@@ -67,6 +70,7 @@ import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
@@ -148,6 +152,8 @@ import androidx.test.InstrumentationRegistry;
import com.android.internal.R;
import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
+import com.android.internal.logging.InstanceIdSequence;
+import com.android.internal.logging.InstanceIdSequenceFake;
import com.android.internal.statusbar.NotificationVisibility;
import com.android.internal.util.FastXmlSerializer;
import com.android.server.LocalServices;
@@ -157,6 +163,7 @@ import com.android.server.lights.LightsManager;
import com.android.server.lights.LogicalLight;
import com.android.server.notification.NotificationManagerService.NotificationAssistants;
import com.android.server.notification.NotificationManagerService.NotificationListeners;
+import com.android.server.statusbar.StatusBarManagerInternal;
import com.android.server.uri.UriGrantsManagerInternal;
import com.android.server.wm.WindowManagerInternal;
@@ -257,7 +264,10 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Mock
NotificationHistoryManager mHistoryManager;
NotificationRecordLoggerFake mNotificationRecordLogger = new NotificationRecordLoggerFake();
-
+ private InstanceIdSequence mNotificationInstanceIdSequence = new InstanceIdSequenceFake(
+ 1 << 30);
+ @Mock
+ StatusBarManagerInternal mStatusBar;
// Use a Testable subclass so we can simulate calls from the system without failing.
private static class TestableNotificationManagerService extends NotificationManagerService {
@@ -267,8 +277,9 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Nullable
NotificationAssistantAccessGrantedCallback mNotificationAssistantAccessGrantedCallback;
- TestableNotificationManagerService(Context context, NotificationRecordLogger logger) {
- super(context, logger);
+ TestableNotificationManagerService(Context context, NotificationRecordLogger logger,
+ InstanceIdSequence notificationInstanceIdSequence) {
+ super(context, logger, notificationInstanceIdSequence);
}
@Override
@@ -352,10 +363,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
LocalServices.addService(UriGrantsManagerInternal.class, mUgmInternal);
LocalServices.removeServiceForTest(WindowManagerInternal.class);
LocalServices.addService(WindowManagerInternal.class, mWindowManagerInternal);
+ LocalServices.removeServiceForTest(StatusBarManagerInternal.class);
+ LocalServices.addService(StatusBarManagerInternal.class, mStatusBar);
doNothing().when(mContext).sendBroadcastAsUser(any(), any(), any());
- mService = new TestableNotificationManagerService(mContext, mNotificationRecordLogger);
+ mService = new TestableNotificationManagerService(mContext, mNotificationRecordLogger,
+ mNotificationInstanceIdSequence);
// Use this testable looper.
mTestableLooper = TestableLooper.get(this);
@@ -674,8 +688,9 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nrBubble = generateMessageBubbleNotifRecord(true /* addMetadata */,
mTestNotificationChannel, 1 /* id */, "tag", groupKey, false /* isSummary */);
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nrBubble.sbn.getTag(),
- nrBubble.sbn.getId(), nrBubble.sbn.getNotification(), nrBubble.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nrBubble.getSbn().getTag(),
+ nrBubble.getSbn().getId(), nrBubble.getSbn().getNotification(),
+ nrBubble.getSbn().getUserId());
waitForIdle();
// Make sure we are a bubble
@@ -687,8 +702,9 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nrPlain = generateMessageBubbleNotifRecord(false /* addMetadata */,
mTestNotificationChannel, 2 /* id */, "tag", groupKey, false /* isSummary */);
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nrPlain.sbn.getTag(),
- nrPlain.sbn.getId(), nrPlain.sbn.getNotification(), nrPlain.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nrPlain.getSbn().getTag(),
+ nrPlain.getSbn().getId(), nrPlain.getSbn().getNotification(),
+ nrPlain.getSbn().getUserId());
waitForIdle();
notifsAfter = mBinderService.getActiveNotifications(PKG);
@@ -701,8 +717,9 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
if (summaryAutoCancel) {
nrSummary.getNotification().flags |= FLAG_AUTO_CANCEL;
}
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nrSummary.sbn.getTag(),
- nrSummary.sbn.getId(), nrSummary.sbn.getNotification(), nrSummary.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nrSummary.getSbn().getTag(),
+ nrSummary.getSbn().getId(), nrSummary.getSbn().getNotification(),
+ nrSummary.getSbn().getUserId());
waitForIdle();
notifsAfter = mBinderService.getActiveNotifications(PKG);
@@ -881,7 +898,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mBinderService.createNotificationChannels(
PKG, new ParceledListSlice(Arrays.asList(channel)));
- final StatusBarNotification sbn = generateNotificationRecord(channel).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(channel).getSbn();
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testBlockedNotifications_blockedChannel",
sbn.getId(), sbn.getNotification(), sbn.getUserId());
@@ -899,7 +916,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mBinderService.createNotificationChannels(
PKG, new ParceledListSlice(Arrays.asList(channel)));
- final StatusBarNotification sbn = generateNotificationRecord(channel).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(channel).getSbn();
sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
mBinderService.enqueueNotificationWithTag(PKG, PKG, sbn.getTag(),
sbn.getId(), sbn.getNotification(), sbn.getUserId());
@@ -928,7 +945,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
assertEquals(IMPORTANCE_NONE, mBinderService.getNotificationChannel(
PKG, mContext.getUserId(), PKG, channel.getId()).getImportance());
- StatusBarNotification sbn = generateNotificationRecord(channel).sbn;
+ StatusBarNotification sbn = generateNotificationRecord(channel).getSbn();
sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
mBinderService.enqueueNotificationWithTag(PKG, PKG, sbn.getTag(),
sbn.getId(), sbn.getNotification(), sbn.getUserId());
@@ -950,7 +967,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
assertEquals(IMPORTANCE_NONE, mBinderService.getNotificationChannel(
PKG, mContext.getUserId(), PKG, channel.getId()).getImportance());
- sbn = generateNotificationRecord(channel).sbn;
+ sbn = generateNotificationRecord(channel).getSbn();
sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testEnqueuedBlockedNotifications_userBlockedChannelForegroundService",
@@ -984,7 +1001,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mBinderService.setNotificationsEnabledForPackage(PKG, mUid, false);
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testEnqueuedBlockedNotifications_blockedApp",
sbn.getId(), sbn.getNotification(), sbn.getUserId());
@@ -998,7 +1015,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mBinderService.setNotificationsEnabledForPackage(PKG, mUid, false);
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testEnqueuedBlockedNotifications_blockedAppForegroundService",
@@ -1021,7 +1038,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
int id = 0;
for (String category: categories) {
final StatusBarNotification sbn =
- generateNotificationRecord(mTestNotificationChannel, ++id, "", false).sbn;
+ generateNotificationRecord(mTestNotificationChannel, ++id, "", false).getSbn();
sbn.getNotification().category = category;
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testEnqueuedRestrictedNotifications_asSystem",
@@ -1046,7 +1063,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
int id = 0;
for (String category: categories) {
final StatusBarNotification sbn =
- generateNotificationRecord(mTestNotificationChannel, ++id, "", false).sbn;
+ generateNotificationRecord(mTestNotificationChannel, ++id, "", false).getSbn();
sbn.getNotification().category = category;
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testEnqueuedRestrictedNotifications_notAutomotive",
@@ -1069,7 +1086,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
Notification.CATEGORY_CAR_WARNING,
Notification.CATEGORY_CAR_INFORMATION);
for (String category: categories) {
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
sbn.getNotification().category = category;
try {
mBinderService.enqueueNotificationWithTag(PKG, PKG,
@@ -1097,7 +1114,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
Bundle bundle = new Bundle();
bundle.putInt(KEY_IMPORTANCE, IMPORTANCE_NONE);
Adjustment adjustment = new Adjustment(
- r.sbn.getPackageName(), r.getKey(), bundle, "", r.getUser().getIdentifier());
+ r.getSbn().getPackageName(), r.getKey(), bundle, "", r.getUser().getIdentifier());
mBinderService.applyEnqueuedAdjustmentFromAssistant(null, adjustment);
NotificationManagerService.PostNotificationRunnable runnable =
@@ -1132,9 +1149,11 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
assertNull(call.old);
assertEquals(0, call.position);
assertEquals(0, call.buzzBeepBlink);
- assertEquals(PKG, call.r.sbn.getPackageName());
- assertEquals(0, call.r.sbn.getId());
- assertEquals(tag, call.r.sbn.getTag());
+ assertEquals(PKG, call.r.getSbn().getPackageName());
+ assertEquals(0, call.r.getSbn().getId());
+ assertEquals(tag, call.r.getSbn().getTag());
+ assertNotNull(call.r.getSbn().getInstanceId());
+ assertEquals(0, call.r.getSbn().getInstanceId().getId());
}
@Test
@@ -1151,14 +1170,19 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mBinderService.enqueueNotificationWithTag(PKG, PKG, tag, 0, update, 0);
waitForIdle();
assertEquals(2, mNotificationRecordLogger.getCalls().size());
+
assertTrue(mNotificationRecordLogger.get(0).shouldLog());
assertEquals(
NotificationRecordLogger.NotificationReportedEvents.NOTIFICATION_POSTED,
mNotificationRecordLogger.get(0).getUiEvent());
+ assertEquals(0, mNotificationRecordLogger.get(0).r.getSbn().getInstanceId().getId());
+
+ assertTrue(mNotificationRecordLogger.get(1).shouldLog());
assertEquals(
NotificationRecordLogger.NotificationReportedEvents.NOTIFICATION_UPDATED,
mNotificationRecordLogger.get(1).getUiEvent());
- assertTrue(mNotificationRecordLogger.get(1).shouldLog());
+ // Instance ID doesn't change on update of an active notification
+ assertEquals(0, mNotificationRecordLogger.get(1).r.getSbn().getInstanceId().getId());
}
@Test
@@ -1175,6 +1199,34 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
@Test
+ public void testEnqueueNotificationWithTag_LogsAgainAfterCancel() throws Exception {
+ final String tag = "testEnqueueNotificationWithTag_LogsAgainAfterCancel";
+ Notification notification = new Notification.Builder(mContext,
+ mTestNotificationChannel.getId())
+ .setSmallIcon(android.R.drawable.sym_def_app_icon).build();
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, tag, 0, notification, 0);
+ waitForIdle();
+ mBinderService.cancelNotificationWithTag(PKG, PKG, tag, 0, 0);
+ waitForIdle();
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, tag, 0, notification, 0);
+ waitForIdle();
+ assertEquals(2, mNotificationRecordLogger.getCalls().size());
+
+ assertTrue(mNotificationRecordLogger.get(0).shouldLog());
+ assertEquals(
+ NotificationRecordLogger.NotificationReportedEvents.NOTIFICATION_POSTED,
+ mNotificationRecordLogger.get(0).getUiEvent());
+ assertEquals(0, mNotificationRecordLogger.get(0).r.getSbn().getInstanceId().getId());
+
+ assertTrue(mNotificationRecordLogger.get(1).shouldLog());
+ assertEquals(
+ NotificationRecordLogger.NotificationReportedEvents.NOTIFICATION_POSTED,
+ mNotificationRecordLogger.get(1).getUiEvent());
+ // New instance ID because notification was canceled before re-post
+ assertEquals(1, mNotificationRecordLogger.get(1).r.getSbn().getInstanceId().getId());
+ }
+
+ @Test
public void testCancelNotificationImmediatelyAfterEnqueue() throws Exception {
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testCancelNotificationImmediatelyAfterEnqueue", 0,
@@ -1212,7 +1264,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Test
public void testCancelNotificationsFromListenerImmediatelyAfterEnqueue() throws Exception {
NotificationRecord r = generateNotificationRecord(null);
- final StatusBarNotification sbn = r.sbn;
+ final StatusBarNotification sbn = r.getSbn();
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testCancelNotificationsFromListenerImmediatelyAfterEnqueue",
sbn.getId(), sbn.getNotification(), sbn.getUserId());
@@ -1226,7 +1278,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Test
public void testCancelAllNotificationsImmediatelyAfterEnqueue() throws Exception {
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testCancelAllNotificationsImmediatelyAfterEnqueue",
sbn.getId(), sbn.getNotification(), sbn.getUserId());
@@ -1241,7 +1293,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Test
public void testCancelImmediatelyAfterEnqueueNotifiesListeners_ForegroundServiceFlag()
throws Exception {
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
sbn.getNotification().flags =
Notification.FLAG_ONGOING_EVENT | FLAG_FOREGROUND_SERVICE;
mBinderService.enqueueNotificationWithTag(PKG, PKG, "tag",
@@ -1259,14 +1311,14 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testUserInitiatedClearAll_noLeak",
- n.sbn.getId(), n.sbn.getNotification(), n.sbn.getUserId());
+ n.getSbn().getId(), n.getSbn().getNotification(), n.getSbn().getUserId());
waitForIdle();
mService.mNotificationDelegate.onClearAll(mUid, Binder.getCallingPid(),
n.getUserId());
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(n.sbn.getPackageName());
+ mBinderService.getActiveNotifications(n.getSbn().getPackageName());
assertEquals(0, notifs.length);
assertEquals(0, mService.getNotificationRecordCount());
ArgumentCaptor<NotificationStats> captor = ArgumentCaptor.forClass(NotificationStats.class);
@@ -1283,20 +1335,22 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testCancelAllNotificationsCancelsChildren",
- parent.sbn.getId(), parent.sbn.getNotification(), parent.sbn.getUserId());
+ parent.getSbn().getId(), parent.getSbn().getNotification(),
+ parent.getSbn().getUserId());
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testCancelAllNotificationsCancelsChildren",
- child.sbn.getId(), child.sbn.getNotification(), child.sbn.getUserId());
+ child.getSbn().getId(), child.getSbn().getNotification(),
+ child.getSbn().getUserId());
waitForIdle();
- mBinderService.cancelAllNotifications(PKG, parent.sbn.getUserId());
+ mBinderService.cancelAllNotifications(PKG, parent.getSbn().getUserId());
waitForIdle();
assertEquals(0, mService.getNotificationRecordCount());
}
@Test
public void testCancelAllNotificationsMultipleEnqueuedDoesNotCrash() throws Exception {
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
for (int i = 0; i < 10; i++) {
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testCancelAllNotificationsMultipleEnqueuedDoesNotCrash",
@@ -1320,20 +1374,22 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
// fully post parent notification
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testCancelGroupSummaryMultipleEnqueuedChildrenDoesNotCrash",
- parent.sbn.getId(), parent.sbn.getNotification(), parent.sbn.getUserId());
+ parent.getSbn().getId(), parent.getSbn().getNotification(),
+ parent.getSbn().getUserId());
waitForIdle();
// enqueue the child several times
for (int i = 0; i < 10; i++) {
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testCancelGroupSummaryMultipleEnqueuedChildrenDoesNotCrash",
- child.sbn.getId(), child.sbn.getNotification(), child.sbn.getUserId());
+ child.getSbn().getId(), child.getSbn().getNotification(),
+ child.getSbn().getUserId());
}
// make the parent a child, which will cancel the child notification
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testCancelGroupSummaryMultipleEnqueuedChildrenDoesNotCrash",
- parentAsChild.sbn.getId(), parentAsChild.sbn.getNotification(),
- parentAsChild.sbn.getUserId());
+ parentAsChild.getSbn().getId(), parentAsChild.getSbn().getNotification(),
+ parentAsChild.getSbn().getUserId());
waitForIdle();
assertEquals(0, mService.getNotificationRecordCount());
@@ -1350,7 +1406,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.mAutobundledSummaries.get(0).put("pkg", summary.getKey());
mService.updateAutobundledSummaryFlags(0, "pkg", true, false);
- assertTrue(summary.sbn.isOngoing());
+ assertTrue(summary.getSbn().isOngoing());
}
@Test
@@ -1366,12 +1422,12 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.updateAutobundledSummaryFlags(0, "pkg", false, false);
- assertFalse(summary.sbn.isOngoing());
+ assertFalse(summary.getSbn().isOngoing());
}
@Test
public void testCancelAllNotifications_IgnoreForegroundService() throws Exception {
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testCancelAllNotifications_IgnoreForegroundService",
@@ -1386,7 +1442,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Test
public void testCancelAllNotifications_IgnoreOtherPackages() throws Exception {
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testCancelAllNotifications_IgnoreOtherPackages",
@@ -1401,7 +1457,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Test
public void testCancelAllNotifications_NullPkgRemovesAll() throws Exception {
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testCancelAllNotifications_NullPkgRemovesAll",
sbn.getId(), sbn.getNotification(), sbn.getUserId());
@@ -1415,7 +1471,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Test
public void testCancelAllNotifications_NullPkgIgnoresUserAllNotifications() throws Exception {
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testCancelAllNotifications_NullPkgIgnoresUserAllNotifications",
sbn.getId(), sbn.getNotification(), UserHandle.USER_ALL);
@@ -1430,7 +1486,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Test
public void testAppInitiatedCancelAllNotifications_CancelsNoClearFlag() throws Exception {
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
sbn.getNotification().flags |= Notification.FLAG_NO_CLEAR;
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testAppInitiatedCancelAllNotifications_CancelsNoClearFlag",
@@ -1452,7 +1508,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
notif.getUserId(), 0, null);
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(notif.sbn.getPackageName());
+ mBinderService.getActiveNotifications(notif.getSbn().getPackageName());
assertEquals(0, notifs.length);
}
@@ -1467,7 +1523,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
notif.getUserId());
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(notif.sbn.getPackageName());
+ mBinderService.getActiveNotifications(notif.getSbn().getPackageName());
assertEquals(1, notifs.length);
}
@@ -1489,7 +1545,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.getBinderService().cancelNotificationsFromListener(null, null);
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(parent.sbn.getPackageName());
+ mBinderService.getActiveNotifications(parent.getSbn().getPackageName());
assertEquals(1, notifs.length);
}
@@ -1512,7 +1568,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
parent.getUserId());
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(parent.sbn.getPackageName());
+ mBinderService.getActiveNotifications(parent.getSbn().getPackageName());
assertEquals(1, notifs.length);
}
@@ -1537,7 +1593,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Test
public void testCancelAfterSecondEnqueueDoesNotSpecifyForegroundFlag() throws Exception {
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
sbn.getNotification().flags =
Notification.FLAG_ONGOING_EVENT | FLAG_FOREGROUND_SERVICE;
mBinderService.enqueueNotificationWithTag(PKG, PKG, sbn.getTag(),
@@ -1571,7 +1627,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.getBinderService().cancelNotificationsFromListener(null, null);
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(parent.sbn.getPackageName());
+ mBinderService.getActiveNotifications(parent.getSbn().getPackageName());
assertEquals(0, notifs.length);
}
@@ -1591,12 +1647,12 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.addNotification(child);
mService.addNotification(child2);
mService.addNotification(newGroup);
- String[] keys = {parent.sbn.getKey(), child.sbn.getKey(),
- child2.sbn.getKey(), newGroup.sbn.getKey()};
+ String[] keys = {parent.getSbn().getKey(), child.getSbn().getKey(),
+ child2.getSbn().getKey(), newGroup.getSbn().getKey()};
mService.getBinderService().cancelNotificationsFromListener(null, keys);
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(parent.sbn.getPackageName());
+ mBinderService.getActiveNotifications(parent.getSbn().getPackageName());
assertEquals(1, notifs.length);
}
@@ -1619,7 +1675,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
parent.getUserId());
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(parent.sbn.getPackageName());
+ mBinderService.getActiveNotifications(parent.getSbn().getPackageName());
assertEquals(0, notifs.length);
}
@@ -1635,31 +1691,33 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
final NotificationRecord group2 = generateNotificationRecord(
mTestNotificationChannel, 2, "group2", true);
mBinderService.enqueueNotificationWithTag(PKG, PKG, "testFindGroupNotificationsLocked",
- group2.sbn.getId(), group2.sbn.getNotification(), group2.sbn.getUserId());
+ group2.getSbn().getId(), group2.getSbn().getNotification(),
+ group2.getSbn().getUserId());
waitForIdle();
// should not be returned
final NotificationRecord nonGroup = generateNotificationRecord(
mTestNotificationChannel, 3, null, false);
mBinderService.enqueueNotificationWithTag(PKG, PKG, "testFindGroupNotificationsLocked",
- nonGroup.sbn.getId(), nonGroup.sbn.getNotification(), nonGroup.sbn.getUserId());
+ nonGroup.getSbn().getId(), nonGroup.getSbn().getNotification(),
+ nonGroup.getSbn().getUserId());
waitForIdle();
// same group, child, should be returned
final NotificationRecord group1Child = generateNotificationRecord(
mTestNotificationChannel, 4, "group1", false);
mBinderService.enqueueNotificationWithTag(PKG, PKG, "testFindGroupNotificationsLocked",
- group1Child.sbn.getId(),
- group1Child.sbn.getNotification(), group1Child.sbn.getUserId());
+ group1Child.getSbn().getId(),
+ group1Child.getSbn().getNotification(), group1Child.getSbn().getUserId());
waitForIdle();
List<NotificationRecord> inGroup1 =
mService.findGroupNotificationsLocked(PKG, group1.getGroupKey(),
- group1.sbn.getUserId());
+ group1.getSbn().getUserId());
assertEquals(3, inGroup1.size());
for (NotificationRecord record : inGroup1) {
assertTrue(record.getGroupKey().equals(group1.getGroupKey()));
- assertTrue(record.sbn.getId() == 1 || record.sbn.getId() == 4);
+ assertTrue(record.getSbn().getId() == 1 || record.getSbn().getId() == 4);
}
}
@@ -1673,7 +1731,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
Notification.FLAG_ONGOING_EVENT, true, notif.getUserId(), 0, null);
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(notif.sbn.getPackageName());
+ mBinderService.getActiveNotifications(notif.getSbn().getPackageName());
assertEquals(0, notifs.length);
}
@@ -1693,18 +1751,18 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.addNotification(child);
mService.addNotification(child2);
mService.addNotification(newGroup);
- String[] keys = {parent.sbn.getKey(), child.sbn.getKey(),
- child2.sbn.getKey(), newGroup.sbn.getKey()};
+ String[] keys = {parent.getSbn().getKey(), child.getSbn().getKey(),
+ child2.getSbn().getKey(), newGroup.getSbn().getKey()};
mService.getBinderService().cancelNotificationsFromListener(null, keys);
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(parent.sbn.getPackageName());
+ mBinderService.getActiveNotifications(parent.getSbn().getPackageName());
assertEquals(0, notifs.length);
}
@Test
public void testAppInitiatedCancelAllNotifications_CancelsOnGoingFlag() throws Exception {
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
sbn.getNotification().flags |= Notification.FLAG_ONGOING_EVENT;
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testAppInitiatedCancelAllNotifications_CancelsOnGoingFlag",
@@ -1726,7 +1784,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
notif.getUserId(), 0, null);
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(notif.sbn.getPackageName());
+ mBinderService.getActiveNotifications(notif.getSbn().getPackageName());
assertEquals(0, notifs.length);
}
@@ -1741,7 +1799,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
notif.getUserId());
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(notif.sbn.getPackageName());
+ mBinderService.getActiveNotifications(notif.getSbn().getPackageName());
assertEquals(1, notifs.length);
}
@@ -1763,7 +1821,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.getBinderService().cancelNotificationsFromListener(null, null);
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(parent.sbn.getPackageName());
+ mBinderService.getActiveNotifications(parent.getSbn().getPackageName());
assertEquals(1, notifs.length);
}
@@ -1783,12 +1841,12 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.addNotification(child);
mService.addNotification(child2);
mService.addNotification(newGroup);
- String[] keys = {parent.sbn.getKey(), child.sbn.getKey(),
- child2.sbn.getKey(), newGroup.sbn.getKey()};
+ String[] keys = {parent.getSbn().getKey(), child.getSbn().getKey(),
+ child2.getSbn().getKey(), newGroup.getSbn().getKey()};
mService.getBinderService().cancelNotificationsFromListener(null, keys);
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(parent.sbn.getPackageName());
+ mBinderService.getActiveNotifications(parent.getSbn().getPackageName());
assertEquals(0, notifs.length);
}
@@ -1811,7 +1869,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
parent.getUserId());
waitForIdle();
StatusBarNotification[] notifs =
- mBinderService.getActiveNotifications(parent.sbn.getPackageName());
+ mBinderService.getActiveNotifications(parent.getSbn().getPackageName());
assertEquals(1, notifs.length);
}
@@ -1945,7 +2003,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
public void testUpdateGroupNotifyCreatorBlock() throws Exception {
NotificationChannelGroup existing = new NotificationChannelGroup("id", "name");
mService.setPreferencesHelper(mPreferencesHelper);
- when(mPreferencesHelper.getNotificationChannelGroup(eq(existing.getId()), eq(PKG), anyInt()))
+ when(mPreferencesHelper.getNotificationChannelGroup(eq(existing.getId()),
+ eq(PKG), anyInt()))
.thenReturn(existing);
NotificationChannelGroup updated = new NotificationChannelGroup("id", "name");
@@ -1968,7 +2027,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationChannelGroup existing = new NotificationChannelGroup("id", "name");
existing.setBlocked(true);
mService.setPreferencesHelper(mPreferencesHelper);
- when(mPreferencesHelper.getNotificationChannelGroup(eq(existing.getId()), eq(PKG), anyInt()))
+ when(mPreferencesHelper.getNotificationChannelGroup(eq(existing.getId()),
+ eq(PKG), anyInt()))
.thenReturn(existing);
mBinderService.updateNotificationChannelGroupForPackage(
@@ -1988,7 +2048,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
public void testUpdateGroupNoNotifyCreatorOtherChanges() throws Exception {
NotificationChannelGroup existing = new NotificationChannelGroup("id", "name");
mService.setPreferencesHelper(mPreferencesHelper);
- when(mPreferencesHelper.getNotificationChannelGroup(eq(existing.getId()), eq(PKG), anyInt()))
+ when(mPreferencesHelper.getNotificationChannelGroup(
+ eq(existing.getId()), eq(PKG), anyInt()))
.thenReturn(existing);
mBinderService.updateNotificationChannelGroupForPackage(
@@ -2309,7 +2370,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Test
public void testHasCompanionDevice_noService() {
- mService = new TestableNotificationManagerService(mContext, mNotificationRecordLogger);
+ mService = new TestableNotificationManagerService(mContext, mNotificationRecordLogger,
+ mNotificationInstanceIdSequence);
assertFalse(mService.hasCompanionDevice(mListener));
}
@@ -2446,7 +2508,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
public void testSnoozeRunnable_snoozeGroupChild_onlyChildOfSummary() throws Exception {
final NotificationRecord parent = generateNotificationRecord(
mTestNotificationChannel, 1, "group", true);
- assertTrue(parent.sbn.getNotification().isGroupSummary());
+ assertTrue(parent.getSbn().getNotification().isGroupSummary());
final NotificationRecord child = generateNotificationRecord(
mTestNotificationChannel, 2, "group", false);
mService.addNotification(parent);
@@ -2482,7 +2544,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mTestNotificationChannel, 2, "group", false);
mBinderService.enqueueNotificationWithTag(PKG, PKG, "testPostNonGroup_noUnsnoozing",
- child.sbn.getId(), child.sbn.getNotification(), child.sbn.getUserId());
+ child.getSbn().getId(), child.getSbn().getNotification(),
+ child.getSbn().getUserId());
waitForIdle();
verify(mSnoozeHelper, times(1)).repostGroupSummary(
@@ -2495,7 +2558,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mTestNotificationChannel, 2, null, false);
mBinderService.enqueueNotificationWithTag(PKG, PKG, "testPostNonGroup_noUnsnoozing",
- record.sbn.getId(), record.sbn.getNotification(), record.sbn.getUserId());
+ record.getSbn().getId(), record.getSbn().getNotification(),
+ record.getSbn().getUserId());
waitForIdle();
verify(mSnoozeHelper, never()).repostGroupSummary(anyString(), anyInt(), anyString());
@@ -2507,7 +2571,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mTestNotificationChannel, 2, "group", true);
mBinderService.enqueueNotificationWithTag(PKG, PKG, "testPostGroupSummary_noUnsnoozing",
- parent.sbn.getId(), parent.sbn.getNotification(), parent.sbn.getUserId());
+ parent.getSbn().getId(), parent.getSbn().getNotification(),
+ parent.getSbn().getUserId());
waitForIdle();
verify(mSnoozeHelper, never()).repostGroupSummary(anyString(), anyInt(), anyString());
@@ -2926,11 +2991,11 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
mBinderService.enqueueNotificationWithTag(PKG, PKG, sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
NotificationRecord posted = mService.findNotificationLocked(
- PKG, nr.sbn.getTag(), nr.sbn.getId(), nr.sbn.getUserId());
+ PKG, nr.getSbn().getTag(), nr.getSbn().getId(), nr.getSbn().getUserId());
assertFalse(posted.getNotification().isColorized());
}
@@ -2949,7 +3014,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord r =
generateNotificationRecord(mTestNotificationChannel, i, null, false);
mService.addNotification(r);
- sampleTagToExclude = r.sbn.getTag();
+ sampleTagToExclude = r.getSbn().getTag();
sampleIdToExclude = i;
}
@@ -3185,7 +3250,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
StatusBarNotification sbn = new StatusBarNotification(preOPkg, preOPkg, 9,
"testBumpFGImportance_noChannelChangePreOApp",
- Binder.getCallingUid(), 0, nb.build(), new UserHandle(Binder.getCallingUid()), null, 0);
+ Binder.getCallingUid(), 0, nb.build(), new UserHandle(Binder.getCallingUid()), null,
+ 0);
mBinderService.enqueueNotificationWithTag(sbn.getPackageName(), sbn.getOpPkg(),
sbn.getTag(), sbn.getId(), sbn.getNotification(), sbn.getUserId());
@@ -3223,7 +3289,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.mNotificationDelegate.onNotificationDirectReplied(r.getKey());
assertTrue(mService.getNotificationRecord(r.getKey()).getStats().hasDirectReplied());
- verify(mAssistants).notifyAssistantNotificationDirectReplyLocked(eq(r.sbn));
+ verify(mAssistants).notifyAssistantNotificationDirectReplyLocked(eq(r.getSbn()));
}
@Test
@@ -3233,12 +3299,14 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.mNotificationDelegate.onNotificationExpansionChanged(r.getKey(), true, true,
NOTIFICATION_LOCATION_UNKNOWN);
- verify(mAssistants).notifyAssistantExpansionChangedLocked(eq(r.sbn), eq(true), eq((true)));
+ verify(mAssistants).notifyAssistantExpansionChangedLocked(eq(r.getSbn()), eq(true),
+ eq((true)));
assertTrue(mService.getNotificationRecord(r.getKey()).getStats().hasExpanded());
mService.mNotificationDelegate.onNotificationExpansionChanged(r.getKey(), true, false,
NOTIFICATION_LOCATION_UNKNOWN);
- verify(mAssistants).notifyAssistantExpansionChangedLocked(eq(r.sbn), eq(true), eq((false)));
+ verify(mAssistants).notifyAssistantExpansionChangedLocked(eq(r.getSbn()), eq(true),
+ eq((false)));
assertTrue(mService.getNotificationRecord(r.getKey()).getStats().hasExpanded());
}
@@ -3250,13 +3318,14 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.mNotificationDelegate.onNotificationExpansionChanged(r.getKey(), false, true,
NOTIFICATION_LOCATION_UNKNOWN);
assertFalse(mService.getNotificationRecord(r.getKey()).getStats().hasExpanded());
- verify(mAssistants).notifyAssistantExpansionChangedLocked(eq(r.sbn), eq(false), eq((true)));
+ verify(mAssistants).notifyAssistantExpansionChangedLocked(eq(r.getSbn()), eq(false),
+ eq((true)));
mService.mNotificationDelegate.onNotificationExpansionChanged(r.getKey(), false, false,
NOTIFICATION_LOCATION_UNKNOWN);
assertFalse(mService.getNotificationRecord(r.getKey()).getStats().hasExpanded());
verify(mAssistants).notifyAssistantExpansionChangedLocked(
- eq(r.sbn), eq(false), eq((false)));
+ eq(r.getSbn()), eq(false), eq((false)));
}
@Test
@@ -3276,11 +3345,11 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
final NotificationVisibility nv = NotificationVisibility.obtain(r.getKey(), 1, 2, true);
mService.mNotificationDelegate.onNotificationVisibilityChanged(
new NotificationVisibility[] {nv}, new NotificationVisibility[]{});
- verify(mAssistants).notifyAssistantVisibilityChangedLocked(eq(r.sbn), eq(true));
+ verify(mAssistants).notifyAssistantVisibilityChangedLocked(eq(r.getSbn()), eq(true));
assertTrue(mService.getNotificationRecord(r.getKey()).getStats().hasSeen());
mService.mNotificationDelegate.onNotificationVisibilityChanged(
new NotificationVisibility[] {}, new NotificationVisibility[]{nv});
- verify(mAssistants).notifyAssistantVisibilityChangedLocked(eq(r.sbn), eq(false));
+ verify(mAssistants).notifyAssistantVisibilityChangedLocked(eq(r.getSbn()), eq(false));
assertTrue(mService.getNotificationRecord(r.getKey()).getStats().hasSeen());
}
@@ -3290,8 +3359,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.addNotification(r);
final NotificationVisibility nv = NotificationVisibility.obtain(r.getKey(), 0, 1, true);
- mService.mNotificationDelegate.onNotificationClear(mUid, 0, PKG, r.sbn.getTag(),
- r.sbn.getId(), r.getUserId(), r.getKey(), NotificationStats.DISMISSAL_AOD,
+ mService.mNotificationDelegate.onNotificationClear(mUid, 0, PKG, r.getSbn().getTag(),
+ r.getSbn().getId(), r.getUserId(), r.getKey(), NotificationStats.DISMISSAL_AOD,
NotificationStats.DISMISS_SENTIMENT_POSITIVE, nv);
waitForIdle();
@@ -3304,8 +3373,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.addNotification(r);
final NotificationVisibility nv = NotificationVisibility.obtain(r.getKey(), 0, 1, true);
- mService.mNotificationDelegate.onNotificationClear(mUid, 0, PKG, r.sbn.getTag(),
- r.sbn.getId(), r.getUserId(), r.getKey(), NotificationStats.DISMISSAL_AOD,
+ mService.mNotificationDelegate.onNotificationClear(mUid, 0, PKG, r.getSbn().getTag(),
+ r.getSbn().getId(), r.getUserId(), r.getKey(), NotificationStats.DISMISSAL_AOD,
NotificationStats.DISMISS_SENTIMENT_NEGATIVE, nv);
waitForIdle();
@@ -3327,7 +3396,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
signals.putInt(Adjustment.KEY_USER_SENTIMENT,
USER_SENTIMENT_NEGATIVE);
Adjustment adjustment = new Adjustment(
- r.sbn.getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
+ r.getSbn().getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
mBinderService.applyAdjustmentFromAssistant(null, adjustment);
waitForIdle();
@@ -3346,7 +3415,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
Bundle signals = new Bundle();
signals.putInt(KEY_IMPORTANCE, IMPORTANCE_NONE);
Adjustment adjustment = new Adjustment(
- r.sbn.getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
+ r.getSbn().getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
when(mAssistants.isSameUser(any(), anyInt())).thenReturn(true);
mBinderService.applyAdjustmentFromAssistant(null, adjustment);
@@ -3369,7 +3438,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
signals.putInt(Adjustment.KEY_USER_SENTIMENT,
USER_SENTIMENT_NEGATIVE);
Adjustment adjustment = new Adjustment(
- r.sbn.getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
+ r.getSbn().getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
mBinderService.applyEnqueuedAdjustmentFromAssistant(null, adjustment);
assertEquals(USER_SENTIMENT_NEGATIVE, r.getUserSentiment());
@@ -3387,7 +3456,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
Bundle signals = new Bundle();
signals.putInt(KEY_IMPORTANCE, IMPORTANCE_LOW);
Adjustment adjustment = new Adjustment(
- r.sbn.getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
+ r.getSbn().getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
mBinderService.applyEnqueuedAdjustmentFromAssistant(null, adjustment);
assertEquals(IMPORTANCE_LOW, r.getImportance());
@@ -3406,7 +3475,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
signals.putInt(Adjustment.KEY_USER_SENTIMENT,
USER_SENTIMENT_NEGATIVE);
Adjustment adjustment = new Adjustment(
- r.sbn.getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
+ r.getSbn().getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
mBinderService.applyEnqueuedAdjustmentFromAssistant(null, adjustment);
assertEquals(USER_SENTIMENT_NEUTRAL, r.getUserSentiment());
@@ -3426,7 +3495,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
signals.putInt(Adjustment.KEY_USER_SENTIMENT,
USER_SENTIMENT_NEGATIVE);
Adjustment adjustment = new Adjustment(
- r.sbn.getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
+ r.getSbn().getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
mBinderService.applyAdjustmentFromAssistant(null, adjustment);
waitForIdle();
@@ -3444,7 +3513,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
signals.putInt(Adjustment.KEY_USER_SENTIMENT,
USER_SENTIMENT_NEGATIVE);
Adjustment adjustment = new Adjustment(
- r.sbn.getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
+ r.getSbn().getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
mBinderService.applyEnqueuedAdjustmentFromAssistant(null, adjustment);
waitForIdle();
@@ -3462,7 +3531,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
signals.putInt(Adjustment.KEY_USER_SENTIMENT,
USER_SENTIMENT_NEGATIVE);
Adjustment adjustment = new Adjustment(
- r.sbn.getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
+ r.getSbn().getPackageName(), r.getKey(), signals, "", r.getUser().getIdentifier());
mBinderService.applyEnqueuedAdjustmentFromAssistant(null, adjustment);
assertEquals(USER_SENTIMENT_NEGATIVE, r.getUserSentiment());
@@ -3576,6 +3645,33 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
@Test
+ public void updateUriPermissions_posterDoesNotOwnUri() throws Exception {
+ NotificationChannel c = new NotificationChannel(
+ TEST_CHANNEL_ID, TEST_CHANNEL_ID, IMPORTANCE_DEFAULT);
+ c.setSound(null, Notification.AUDIO_ATTRIBUTES_DEFAULT);
+ Message message1 = new Message("", 0, "");
+ message1.setData("",
+ ContentUris.withAppendedId(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 1));
+
+ Notification.Builder nbA = new Notification.Builder(mContext, c.getId())
+ .setContentTitle("foo")
+ .setSmallIcon(android.R.drawable.sym_def_app_icon)
+ .setStyle(new Notification.MessagingStyle("")
+ .addMessage(message1));
+ NotificationRecord recordA = new NotificationRecord(mContext, new StatusBarNotification(
+ PKG, PKG, 0, "tag", mUid, 0, nbA.build(), new UserHandle(mUid), null, 0), c);
+
+ doThrow(new SecurityException("no access")).when(mUgm)
+ .grantUriPermissionFromOwner(
+ any(), anyInt(), any(), any(), anyInt(), anyInt(), anyInt());
+
+ when(mUgmInternal.newUriPermissionOwner(any())).thenReturn(new Binder());
+ mService.updateUriPermissions(recordA, null, mContext.getPackageName(), USER_SYSTEM);
+
+ // yay, no crash
+ }
+
+ @Test
public void testVisitUris() throws Exception {
final Uri audioContents = Uri.parse("content://com.example/audio");
final Uri backgroundImage = Uri.parse("content://com.example/background");
@@ -4032,7 +4128,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
ArgumentCaptor<List<NotificationRecord>> captorHide = ArgumentCaptor.forClass(List.class);
verify(mListeners, times(1)).notifyHiddenLocked(captorHide.capture());
assertEquals(1, captorHide.getValue().size());
- assertEquals("a", captorHide.getValue().get(0).sbn.getPackageName());
+ assertEquals("a", captorHide.getValue().get(0).getSbn().getPackageName());
// on broadcast, unhide the package
mService.simulatePackageDistractionBroadcast(
@@ -4040,7 +4136,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
ArgumentCaptor<List<NotificationRecord>> captorUnhide = ArgumentCaptor.forClass(List.class);
verify(mListeners, times(1)).notifyUnhiddenLocked(captorUnhide.capture());
assertEquals(1, captorUnhide.getValue().size());
- assertEquals("a", captorUnhide.getValue().get(0).sbn.getPackageName());
+ assertEquals("a", captorUnhide.getValue().get(0).getSbn().getPackageName());
}
@Test
@@ -4061,8 +4157,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
// should be called only once.
verify(mListeners, times(1)).notifyHiddenLocked(captorHide.capture());
assertEquals(2, captorHide.getValue().size());
- assertEquals("a", captorHide.getValue().get(0).sbn.getPackageName());
- assertEquals("b", captorHide.getValue().get(1).sbn.getPackageName());
+ assertEquals("a", captorHide.getValue().get(0).getSbn().getPackageName());
+ assertEquals("b", captorHide.getValue().get(1).getSbn().getPackageName());
// on broadcast, unhide the package
mService.simulatePackageDistractionBroadcast(
@@ -4072,8 +4168,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
// should be called only once.
verify(mListeners, times(1)).notifyUnhiddenLocked(captorUnhide.capture());
assertEquals(2, captorUnhide.getValue().size());
- assertEquals("a", captorUnhide.getValue().get(0).sbn.getPackageName());
- assertEquals("b", captorUnhide.getValue().get(1).sbn.getPackageName());
+ assertEquals("a", captorUnhide.getValue().get(0).getSbn().getPackageName());
+ assertEquals("b", captorUnhide.getValue().get(1).getSbn().getPackageName());
}
@Test
@@ -4359,7 +4455,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
ai.uid = -1;
when(mPackageManager.getApplicationInfo(anyString(), anyInt(), anyInt())).thenReturn(ai);
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
try {
mInternalService.enqueueNotification(notReal, "android", 0, 0,
"testPostFromAndroidForNonExistentPackage",
@@ -4380,7 +4476,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
when(mPackageManager.getApplicationInfo(anyString(), anyInt(), anyInt())).thenReturn(ai);
// unlike the post case, ignore instead of throwing
- final StatusBarNotification sbn = generateNotificationRecord(null).sbn;
+ final StatusBarNotification sbn = generateNotificationRecord(null).getSbn();
mInternalService.cancelNotification(notReal, "android", 0, 0, "tag",
sbn.getId(), sbn.getUserId());
@@ -4411,7 +4507,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.addEnqueuedNotification(r);
mInternalService.removeForegroundServiceFlagFromNotification(
- PKG, r.sbn.getId(), r.sbn.getUserId());
+ PKG, r.getSbn().getId(), r.getSbn().getUserId());
waitForIdle();
@@ -4430,7 +4526,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.addNotification(r);
mInternalService.removeForegroundServiceFlagFromNotification(
- PKG, r.sbn.getId(), r.sbn.getUserId());
+ PKG, r.getSbn().getId(), r.getSbn().getUserId());
waitForIdle();
@@ -4442,7 +4538,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
@Test
- public void testAllowForegroundToasts() throws Exception {
+ public void testAllowForegroundCustomToasts() throws Exception {
final String testPackage = "testPackageName";
assertEquals(0, mService.mToastQueue.size());
mService.isSystemUid = false;
@@ -4465,6 +4561,79 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
@Test
+ public void testDisallowBackgroundCustomToasts() throws Exception {
+ final String testPackage = "testPackageName";
+ assertEquals(0, mService.mToastQueue.size());
+ mService.isSystemUid = false;
+
+ // package is not suspended
+ when(mPackageManager.isPackageSuspendedForUser(testPackage, UserHandle.getUserId(mUid)))
+ .thenReturn(false);
+
+ // this app is NOT in the foreground
+ when(mActivityManager.getUidImportance(mUid)).thenReturn(IMPORTANCE_NONE);
+
+ // enqueue toast -> no toasts enqueued
+ ((INotificationManager) mService.mService).enqueueToast(testPackage, new Binder(),
+ new TestableToastCallback(), 2000, 0);
+ assertEquals(0, mService.mToastQueue.size());
+ }
+
+ @Test
+ public void testAllowForegroundTextToasts() throws Exception {
+ final String testPackage = "testPackageName";
+ assertEquals(0, mService.mToastQueue.size());
+ mService.isSystemUid = false;
+
+ // package is not suspended
+ when(mPackageManager.isPackageSuspendedForUser(testPackage, UserHandle.getUserId(mUid)))
+ .thenReturn(false);
+
+ // this app is in the foreground
+ when(mActivityManager.getUidImportance(mUid)).thenReturn(IMPORTANCE_FOREGROUND);
+
+ // enqueue toast -> toast should still enqueue
+ ((INotificationManager) mService.mService).enqueueTextToast(testPackage, new Binder(),
+ "Text", 2000, 0, null);
+ assertEquals(1, mService.mToastQueue.size());
+ }
+
+ @Test
+ public void testAllowBackgroundTextToasts() throws Exception {
+ final String testPackage = "testPackageName";
+ assertEquals(0, mService.mToastQueue.size());
+ mService.isSystemUid = false;
+
+ // package is not suspended
+ when(mPackageManager.isPackageSuspendedForUser(testPackage, UserHandle.getUserId(mUid)))
+ .thenReturn(false);
+
+ // this app is NOT in the foreground
+ when(mActivityManager.getUidImportance(mUid)).thenReturn(IMPORTANCE_NONE);
+
+ // enqueue toast -> toast should still enqueue
+ ((INotificationManager) mService.mService).enqueueTextToast(testPackage, new Binder(),
+ "Text", 2000, 0, null);
+ assertEquals(1, mService.mToastQueue.size());
+ }
+
+ @Test
+ public void testTextToastsCallStatusBar() throws Exception {
+ final String testPackage = "testPackageName";
+ assertEquals(0, mService.mToastQueue.size());
+ mService.isSystemUid = false;
+
+ // package is not suspended
+ when(mPackageManager.isPackageSuspendedForUser(testPackage, UserHandle.getUserId(mUid)))
+ .thenReturn(false);
+
+ // enqueue toast -> no toasts enqueued
+ ((INotificationManager) mService.mService).enqueueTextToast(testPackage, new Binder(),
+ "Text", 2000, 0, null);
+ verify(mStatusBar).showToast(any(), any(), any(), any(), anyInt(), any());
+ }
+
+ @Test
public void testDisallowToastsFromSuspendedPackages() throws Exception {
final String testPackage = "testPackageName";
assertEquals(0, mService.mToastQueue.size());
@@ -4555,7 +4724,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
r.getKey(), replyIndex, reply, NOTIFICATION_LOCATION_UNKNOWN,
modifiedBeforeSending);
verify(mAssistants).notifyAssistantSuggestedReplySent(
- eq(r.sbn), eq(reply), eq(generatedByAssistant));
+ eq(r.getSbn()), eq(reply), eq(generatedByAssistant));
}
@Test
@@ -4574,7 +4743,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
10, 10, r.getKey(), actionIndex, action, notificationVisibility,
generatedByAssistant);
verify(mAssistants).notifyAssistantActionClicked(
- eq(r.sbn), eq(actionIndex), eq(action), eq(generatedByAssistant));
+ eq(r.getSbn()), eq(actionIndex), eq(action), eq(generatedByAssistant));
}
@Test
@@ -4647,13 +4816,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord r = generateNotificationRecord(mTestNotificationChannel);
mService.addNotification(r);
- StatusBarNotification sbn = new StatusBarNotification(PKG, PKG, r.sbn.getId(),
- r.sbn.getTag(), mUid, 0,
+ StatusBarNotification sbn = new StatusBarNotification(PKG, PKG, r.getSbn().getId(),
+ r.getSbn().getTag(), mUid, 0,
new Notification.Builder(mContext, mTestNotificationChannel.getId()).build(),
new UserHandle(mUid), null, 0);
NotificationRecord update = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
mService.addEnqueuedNotification(update);
- assertNull(update.sbn.getNotification().getSmallIcon());
+ assertNull(update.getSbn().getNotification().getSmallIcon());
NotificationManagerService.PostNotificationRunnable runnable =
mService.new PostNotificationRunnable(update.getKey());
@@ -4679,8 +4848,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
// cross user, with permission, no problem
- TestablePermissions perms = mContext.getTestablePermissions();
- perms.setPermission(android.Manifest.permission.INTERACT_ACROSS_USERS, PERMISSION_GRANTED);
+ enableInteractAcrossUsers();
mBinderService.canNotifyAsPackage("src", "target", mContext.getUserId() + 1);
}
@@ -4698,8 +4866,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
// cross user, with permission, no problem
- TestablePermissions perms = mContext.getTestablePermissions();
- perms.setPermission(android.Manifest.permission.INTERACT_ACROSS_USERS, PERMISSION_GRANTED);
+ enableInteractAcrossUsers();
mBinderService.getNotificationChannels("src", "target", mContext.getUserId() + 1);
}
@@ -4827,15 +4994,15 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr =
generateMessageBubbleNotifRecord(mTestNotificationChannel, "testFlagBubble");
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
StatusBarNotification[] notifs = mBinderService.getActiveNotifications(PKG);
assertEquals(1, notifs.length);
assertTrue((notifs[0].getNotification().flags & FLAG_BUBBLE) != 0);
assertTrue(mService.getNotificationRecord(
- nr.sbn.getKey()).getNotification().isBubbleNotification());
+ nr.getSbn().getKey()).getNotification().isBubbleNotification());
}
@Test
@@ -4846,15 +5013,15 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr = generateMessageBubbleNotifRecord(mTestNotificationChannel,
"testFlagBubble_noFlag_appNotAllowed");
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
StatusBarNotification[] notifs = mBinderService.getActiveNotifications(PKG);
assertEquals(1, notifs.length);
assertEquals((notifs[0].getNotification().flags & FLAG_BUBBLE), 0);
assertFalse(mService.getNotificationRecord(
- nr.sbn.getKey()).getNotification().isBubbleNotification());
+ nr.getSbn().getKey()).getNotification().isBubbleNotification());
}
@Test
@@ -4873,16 +5040,16 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
// Say we're foreground
- when(mActivityManager.getPackageImportance(nr.sbn.getPackageName())).thenReturn(
+ when(mActivityManager.getPackageImportance(nr.getSbn().getPackageName())).thenReturn(
IMPORTANCE_FOREGROUND);
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// if notif isn't configured properly it doesn't get to bubble just because app is
// foreground.
assertFalse(mService.getNotificationRecord(
- nr.sbn.getKey()).getNotification().isBubbleNotification());
+ nr.getSbn().getKey()).getNotification().isBubbleNotification());
}
@Test
@@ -4893,13 +5060,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr = generateMessageBubbleNotifRecord(mTestNotificationChannel,
"testFlagBubbleNotifs_flag_messaging");
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// yes allowed, yes messaging, yes bubble
assertTrue(mService.getNotificationRecord(
- nr.sbn.getKey()).getNotification().isBubbleNotification());
+ nr.getSbn().getKey()).getNotification().isBubbleNotification());
}
@Test
@@ -4929,8 +5096,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
NotificationRecord nr = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// yes phone call, yes person, yes foreground service, yes bubble
@@ -4962,8 +5129,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
nb.build(), new UserHandle(mUid), null, 0);
NotificationRecord nr = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// yes phone call, yes person, NO foreground service, no bubble
@@ -4993,8 +5160,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
NotificationRecord nr = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// yes phone call, yes foreground service, BUT NO person, no bubble
@@ -5028,8 +5195,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
sbn.getNotification().flags |= FLAG_FOREGROUND_SERVICE;
NotificationRecord nr = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// yes person, yes foreground service, BUT NO call, no bubble
@@ -5046,13 +5213,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
"testFlagBubbleNotifs_noFlag_messaging_appNotAllowed");
// Post the notification
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// not allowed, no bubble
assertFalse(mService.getNotificationRecord(
- nr.sbn.getKey()).getNotification().isBubbleNotification());
+ nr.getSbn().getKey()).getNotification().isBubbleNotification());
}
@Test
@@ -5070,13 +5237,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
// Post the notification
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// no bubble metadata, no bubble
assertFalse(mService.getNotificationRecord(
- nr.sbn.getKey()).getNotification().isBubbleNotification());
+ nr.getSbn().getKey()).getNotification().isBubbleNotification());
}
@Test
@@ -5088,13 +5255,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
"testFlagBubbleNotifs_noFlag_messaging_channelNotAllowed");
// Post the notification
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// channel not allowed, no bubble
assertFalse(mService.getNotificationRecord(
- nr.sbn.getKey()).getNotification().isBubbleNotification());
+ nr.getSbn().getKey()).getNotification().isBubbleNotification());
}
@Test
@@ -5160,7 +5327,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
mBinderService.enqueueNotificationWithTag(PKG, PKG, sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// yes phone call, yes person, yes foreground service, but channel not allowed, no bubble
@@ -5171,10 +5338,10 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Test
public void testCancelAllNotifications_cancelsBubble() throws Exception {
final NotificationRecord nr = generateNotificationRecord(mTestNotificationChannel);
- nr.sbn.getNotification().flags |= FLAG_BUBBLE;
+ nr.getSbn().getNotification().flags |= FLAG_BUBBLE;
mService.addNotification(nr);
- mBinderService.cancelAllNotifications(PKG, nr.sbn.getUserId());
+ mBinderService.cancelAllNotifications(PKG, nr.getSbn().getUserId());
waitForIdle();
StatusBarNotification[] notifs = mBinderService.getActiveNotifications(PKG);
@@ -5185,12 +5352,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Test
public void testAppCancelNotifications_cancelsBubbles() throws Exception {
final NotificationRecord nrBubble = generateNotificationRecord(mTestNotificationChannel);
- nrBubble.sbn.getNotification().flags |= FLAG_BUBBLE;
+ nrBubble.getSbn().getNotification().flags |= FLAG_BUBBLE;
// Post the notification
mBinderService.enqueueNotificationWithTag(PKG, PKG,
"testAppCancelNotifications_cancelsBubbles",
- nrBubble.sbn.getId(), nrBubble.sbn.getNotification(), nrBubble.sbn.getUserId());
+ nrBubble.getSbn().getId(), nrBubble.getSbn().getNotification(),
+ nrBubble.getSbn().getUserId());
waitForIdle();
StatusBarNotification[] notifs = mBinderService.getActiveNotifications(PKG);
@@ -5198,8 +5366,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
assertEquals(1, mService.getNotificationRecordCount());
mBinderService.cancelNotificationWithTag(PKG, PKG,
- "testAppCancelNotifications_cancelsBubbles", nrBubble.sbn.getId(),
- nrBubble.sbn.getUserId());
+ "testAppCancelNotifications_cancelsBubbles", nrBubble.getSbn().getId(),
+ nrBubble.getSbn().getUserId());
waitForIdle();
StatusBarNotification[] notifs2 = mBinderService.getActiveNotifications(PKG);
@@ -5211,7 +5379,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
public void testCancelAllNotificationsFromListener_ignoresBubbles() throws Exception {
final NotificationRecord nrNormal = generateNotificationRecord(mTestNotificationChannel);
final NotificationRecord nrBubble = generateNotificationRecord(mTestNotificationChannel);
- nrBubble.sbn.getNotification().flags |= FLAG_BUBBLE;
+ nrBubble.getSbn().getNotification().flags |= FLAG_BUBBLE;
mService.addNotification(nrNormal);
mService.addNotification(nrBubble);
@@ -5228,12 +5396,12 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
public void testCancelNotificationsFromListener_ignoresBubbles() throws Exception {
final NotificationRecord nrNormal = generateNotificationRecord(mTestNotificationChannel);
final NotificationRecord nrBubble = generateNotificationRecord(mTestNotificationChannel);
- nrBubble.sbn.getNotification().flags |= FLAG_BUBBLE;
+ nrBubble.getSbn().getNotification().flags |= FLAG_BUBBLE;
mService.addNotification(nrNormal);
mService.addNotification(nrBubble);
- String[] keys = {nrNormal.sbn.getKey(), nrBubble.sbn.getKey()};
+ String[] keys = {nrNormal.getSbn().getKey(), nrBubble.getSbn().getKey()};
mService.getBinderService().cancelNotificationsFromListener(null, keys);
waitForIdle();
@@ -5269,7 +5437,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
Bundle signals = new Bundle();
signals.putInt(KEY_IMPORTANCE, IMPORTANCE_LOW);
signals.putInt(KEY_USER_SENTIMENT, USER_SENTIMENT_NEGATIVE);
- Adjustment adjustment = new Adjustment(r.sbn.getPackageName(), r.getKey(), signals,
+ Adjustment adjustment = new Adjustment(r.getSbn().getPackageName(), r.getKey(), signals,
"", r.getUser().getIdentifier());
mBinderService.applyAdjustmentFromAssistant(null, adjustment);
@@ -5317,8 +5485,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
// cross user, with permission, no problem
- TestablePermissions perms = mContext.getTestablePermissions();
- perms.setPermission(android.Manifest.permission.INTERACT_ACROSS_USERS, PERMISSION_GRANTED);
+ enableInteractAcrossUsers();
mBinderService.areNotificationsEnabledForPackage(mContext.getPackageName(),
mUid + UserHandle.PER_USER_RANGE);
}
@@ -5334,12 +5501,16 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
// cross user, with permission, no problem
- TestablePermissions perms = mContext.getTestablePermissions();
- perms.setPermission(android.Manifest.permission.INTERACT_ACROSS_USERS, PERMISSION_GRANTED);
+ enableInteractAcrossUsers();
mBinderService.areBubblesAllowedForPackage(mContext.getPackageName(),
mUid + UserHandle.PER_USER_RANGE);
}
+ private void enableInteractAcrossUsers() {
+ TestablePermissions perms = mContext.getTestablePermissions();
+ perms.setPermission(android.Manifest.permission.INTERACT_ACROSS_USERS, PERMISSION_GRANTED);
+ }
+
@Test
public void testNotificationBubbleChanged_false() throws Exception {
// Bubbles are allowed!
@@ -5349,8 +5520,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr = generateMessageBubbleNotifRecord(mTestNotificationChannel,
"testNotificationBubbleChanged_false");
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// Reset as this is called when the notif is first sent
@@ -5379,8 +5550,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
// Notif that is not a bubble
NotificationRecord nr = generateNotificationRecord(mTestNotificationChannel,
1, null, false);
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// Would be a normal notification because wouldn't have met requirements to bubble
@@ -5390,9 +5561,9 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
// Update the notification to be message style / meet bubble requirements
NotificationRecord nr2 = generateMessageBubbleNotifRecord(mTestNotificationChannel,
- nr.sbn.getTag());
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr2.sbn.getTag(),
- nr2.sbn.getId(), nr2.sbn.getNotification(), nr2.sbn.getUserId());
+ nr.getSbn().getTag());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr2.getSbn().getTag(),
+ nr2.getSbn().getId(), nr2.getSbn().getNotification(), nr2.getSbn().getUserId());
waitForIdle();
// Reset as this is called when the notif is first sent
@@ -5415,8 +5586,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
// Notif that is not a bubble
NotificationRecord nr = generateNotificationRecord(mTestNotificationChannel);
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// Reset as this is called when the notif is first sent
@@ -5443,11 +5614,11 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr = generateMessageBubbleNotifRecord(mTestNotificationChannel, "tag");
// Bubbles are allowed!
- setUpPrefsForBubbles(PKG, nr.sbn.getUserId(), true /* global */,
+ setUpPrefsForBubbles(PKG, nr.getSbn().getUserId(), true /* global */,
true /* app */, true /* channel */);
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// NOT suppressed
@@ -5481,7 +5652,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
public void testGrantInlineReplyUriPermission_recordExists() throws Exception {
NotificationRecord nr = generateNotificationRecord(mTestNotificationChannel, 0);
mBinderService.enqueueNotificationWithTag(PKG, PKG, "tag",
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// A notification exists for the given record
@@ -5493,12 +5664,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
Uri uri = ContentUris.withAppendedId(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 1);
mService.mNotificationDelegate.grantInlineReplyUriPermission(
- nr.getKey(), uri, nr.sbn.getUser(), nr.sbn.getPackageName(), nr.sbn.getUid());
+ nr.getKey(), uri, nr.getSbn().getUser(), nr.getSbn().getPackageName(),
+ nr.getSbn().getUid());
// Grant permission called for the UID of SystemUI under the target user ID
verify(mUgm, times(1)).grantUriPermissionFromOwner(any(),
- eq(nr.sbn.getUid()), eq(nr.sbn.getPackageName()), eq(uri), anyInt(), anyInt(),
- eq(nr.sbn.getUserId()));
+ eq(nr.getSbn().getUid()), eq(nr.getSbn().getPackageName()), eq(uri), anyInt(),
+ anyInt(), eq(nr.getSbn().getUserId()));
}
@Test
@@ -5514,12 +5686,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
int uid = 0; // sysui on primary user
mService.mNotificationDelegate.grantInlineReplyUriPermission(
- nr.getKey(), uri, nr.sbn.getUser(), nr.sbn.getPackageName(), nr.sbn.getUid());
+ nr.getKey(), uri, nr.getSbn().getUser(), nr.getSbn().getPackageName(),
+ nr.getSbn().getUid());
// Grant permission still called if no NotificationRecord exists for the given key
verify(mUgm, times(1)).grantUriPermissionFromOwner(any(),
- eq(nr.sbn.getUid()), eq(nr.sbn.getPackageName()), eq(uri), anyInt(), anyInt(),
- eq(nr.sbn.getUserId()));
+ eq(nr.getSbn().getUid()), eq(nr.getSbn().getPackageName()), eq(uri), anyInt(),
+ anyInt(), eq(nr.getSbn().getUserId()));
}
@Test
@@ -5528,7 +5701,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr =
generateNotificationRecord(mTestNotificationChannel, UserHandle.USER_ALL);
mBinderService.enqueueNotificationWithTag(PKG, PKG, "tag",
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// A notification exists for the given record
@@ -5540,12 +5713,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
Uri uri = ContentUris.withAppendedId(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 1);
mService.mNotificationDelegate.grantInlineReplyUriPermission(
- nr.getKey(), uri, nr.sbn.getUser(), nr.sbn.getPackageName(), nr.sbn.getUid());
+ nr.getKey(), uri, nr.getSbn().getUser(), nr.getSbn().getPackageName(),
+ nr.getSbn().getUid());
// Target user for the grant is USER_ALL instead of USER_SYSTEM
verify(mUgm, times(1)).grantUriPermissionFromOwner(any(),
- eq(nr.sbn.getUid()), eq(nr.sbn.getPackageName()), eq(uri), anyInt(), anyInt(),
- eq(UserHandle.USER_SYSTEM));
+ eq(nr.getSbn().getUid()), eq(nr.getSbn().getPackageName()), eq(uri), anyInt(),
+ anyInt(), eq(UserHandle.USER_SYSTEM));
}
@Test
@@ -5555,7 +5729,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr =
generateNotificationRecord(mTestNotificationChannel, otherUserId);
mBinderService.enqueueNotificationWithTag(PKG, PKG, "tag",
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// A notification exists for the given record
@@ -5578,11 +5752,11 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
.thenReturn(otherUserUid);
mService.mNotificationDelegate.grantInlineReplyUriPermission(
- nr.getKey(), uri, nr.sbn.getUser(), nr.sbn.getPackageName(), uid);
+ nr.getKey(), uri, nr.getSbn().getUser(), nr.getSbn().getPackageName(), uid);
// Target user for the grant is USER_ALL instead of USER_SYSTEM
verify(mUgm, times(1)).grantUriPermissionFromOwner(any(),
- eq(otherUserUid), eq(nr.sbn.getPackageName()), eq(uri), anyInt(), anyInt(),
+ eq(otherUserUid), eq(nr.getSbn().getPackageName()), eq(uri), anyInt(), anyInt(),
eq(otherUserId));
}
@@ -5596,15 +5770,18 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
// create an inline record with two uris in it
mService.mNotificationDelegate.grantInlineReplyUriPermission(
- nr.getKey(), uri1, nr.sbn.getUser(), nr.sbn.getPackageName(), nr.sbn.getUid());
+ nr.getKey(), uri1, nr.getSbn().getUser(), nr.getSbn().getPackageName(),
+ nr.getSbn().getUid());
mService.mNotificationDelegate.grantInlineReplyUriPermission(
- nr.getKey(), uri2, nr.sbn.getUser(), nr.sbn.getPackageName(), nr.sbn.getUid());
+ nr.getKey(), uri2, nr.getSbn().getUser(), nr.getSbn().getPackageName(),
+ nr.getSbn().getUid());
InlineReplyUriRecord record = mService.mInlineReplyRecordsByKey.get(nr.getKey());
assertNotNull(record); // record exists
assertEquals(record.getUris().size(), 2); // record has two uris in it
- mService.mNotificationDelegate.clearInlineReplyUriPermissions(nr.getKey(), nr.sbn.getUid());
+ mService.mNotificationDelegate.clearInlineReplyUriPermissions(nr.getKey(),
+ nr.getSbn().getUid());
// permissionOwner destroyed
verify(mUgmInternal, times(1)).revokeUriPermissionFromOwner(
@@ -5617,7 +5794,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr = generateNotificationRecord(mTestNotificationChannel, 0);
reset(mPackageManager);
- mService.mNotificationDelegate.clearInlineReplyUriPermissions(nr.getKey(), nr.sbn.getUid());
+ mService.mNotificationDelegate.clearInlineReplyUriPermissions(nr.getKey(),
+ nr.getSbn().getUid());
// no permissionOwner destroyed
verify(mUgmInternal, times(0)).revokeUriPermissionFromOwner(
@@ -5635,12 +5813,14 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
// create an inline record a uri in it
mService.mNotificationDelegate.grantInlineReplyUriPermission(
- nr.getKey(), uri1, nr.sbn.getUser(), nr.sbn.getPackageName(), nr.sbn.getUid());
+ nr.getKey(), uri1, nr.getSbn().getUser(), nr.getSbn().getPackageName(),
+ nr.getSbn().getUid());
InlineReplyUriRecord record = mService.mInlineReplyRecordsByKey.get(nr.getKey());
assertNotNull(record); // record exists
- mService.mNotificationDelegate.clearInlineReplyUriPermissions(nr.getKey(), nr.sbn.getUid());
+ mService.mNotificationDelegate.clearInlineReplyUriPermissions(
+ nr.getKey(), nr.getSbn().getUid());
// permissionOwner destroyed for USER_SYSTEM, not USER_ALL
verify(mUgmInternal, times(1)).revokeUriPermissionFromOwner(
@@ -5658,8 +5838,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
// Notification that would typically bubble
NotificationRecord nr = generateMessageBubbleNotifRecord(mTestNotificationChannel,
"testNotificationBubbles_disabled_lowRamDevice");
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// But we wouldn't be a bubble because the device is low ram & all bubbles are disabled.
@@ -5739,20 +5919,20 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr = generateMessageBubbleNotifRecord(mTestNotificationChannel,
"testNotificationBubbles_flagAutoExpandForeground_fails_notForeground");
// Modify metadata flags
- nr.sbn.getNotification().getBubbleMetadata().setFlags(
+ nr.getSbn().getNotification().getBubbleMetadata().setFlags(
Notification.BubbleMetadata.FLAG_AUTO_EXPAND_BUBBLE
| Notification.BubbleMetadata.FLAG_SUPPRESS_NOTIFICATION);
// Ensure we're not foreground
- when(mActivityManager.getPackageImportance(nr.sbn.getPackageName())).thenReturn(
+ when(mActivityManager.getPackageImportance(nr.getSbn().getPackageName())).thenReturn(
IMPORTANCE_VISIBLE);
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// yes allowed, yes messaging, yes bubble
- Notification notif = mService.getNotificationRecord(nr.sbn.getKey()).getNotification();
+ Notification notif = mService.getNotificationRecord(nr.getSbn().getKey()).getNotification();
assertTrue(notif.isBubbleNotification());
// Our flags should have failed since we're not foreground
@@ -5769,20 +5949,20 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord nr = generateMessageBubbleNotifRecord(mTestNotificationChannel,
"testNotificationBubbles_flagAutoExpandForeground_succeeds_foreground");
// Modify metadata flags
- nr.sbn.getNotification().getBubbleMetadata().setFlags(
+ nr.getSbn().getNotification().getBubbleMetadata().setFlags(
Notification.BubbleMetadata.FLAG_AUTO_EXPAND_BUBBLE
| Notification.BubbleMetadata.FLAG_SUPPRESS_NOTIFICATION);
// Ensure we are in the foreground
- when(mActivityManager.getPackageImportance(nr.sbn.getPackageName())).thenReturn(
+ when(mActivityManager.getPackageImportance(nr.getSbn().getPackageName())).thenReturn(
IMPORTANCE_FOREGROUND);
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// yes allowed, yes messaging, yes bubble
- Notification notif = mService.getNotificationRecord(nr.sbn.getKey()).getNotification();
+ Notification notif = mService.getNotificationRecord(nr.getSbn().getKey()).getNotification();
assertTrue(notif.isBubbleNotification());
// Our flags should have passed since we are foreground
@@ -5815,8 +5995,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
when(mLauncherApps.getShortcuts(any(), any())).thenReturn(shortcutInfos);
// Test: Send the bubble notification
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
// Verify:
@@ -5825,7 +6005,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
verify(mLauncherApps, times(1)).registerCallback(launcherAppsCallback.capture(), any());
// yes allowed, yes messaging w/shortcut, yes bubble
- Notification notif = mService.getNotificationRecord(nr.sbn.getKey()).getNotification();
+ Notification notif = mService.getNotificationRecord(nr.getSbn().getKey()).getNotification();
assertTrue(notif.isBubbleNotification());
// Test: Remove the shortcut
@@ -5838,7 +6018,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
verify(mLauncherApps, times(1)).unregisterCallback(launcherAppsCallback.getValue());
// We're no longer a bubble
- Notification notif2 = mService.getNotificationRecord(nr.sbn.getKey()).getNotification();
+ Notification notif2 = mService.getNotificationRecord(nr.getSbn().getKey()).getNotification();
assertFalse(notif2.isBubbleNotification());
}
@@ -5854,8 +6034,9 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
// Dismiss summary
final NotificationVisibility nv = NotificationVisibility.obtain(nrSummary.getKey(), 1, 2,
true);
- mService.mNotificationDelegate.onNotificationClear(mUid, 0, PKG, nrSummary.sbn.getTag(),
- nrSummary.sbn.getId(), nrSummary.getUserId(), nrSummary.getKey(),
+ mService.mNotificationDelegate.onNotificationClear(mUid, 0, PKG,
+ nrSummary.getSbn().getTag(),
+ nrSummary.getSbn().getId(), nrSummary.getUserId(), nrSummary.getKey(),
NotificationStats.DISMISSAL_SHADE,
NotificationStats.DISMISS_SENTIMENT_NEUTRAL, nv);
waitForIdle();
@@ -5965,8 +6146,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
public void testNotificationHistory_addNoisyNotification() throws Exception {
NotificationRecord nr = generateNotificationRecord(mTestNotificationChannel,
null /* tvExtender */);
- mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.sbn.getTag(),
- nr.sbn.getId(), nr.sbn.getNotification(), nr.sbn.getUserId());
+ mBinderService.enqueueNotificationWithTag(PKG, PKG, nr.getSbn().getTag(),
+ nr.getSbn().getId(), nr.getSbn().getNotification(), nr.getSbn().getUserId());
waitForIdle();
verify(mHistoryManager, times(1)).addNotification(any());
@@ -6048,4 +6229,48 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
assertNull(mBinderService.getConversationNotificationChannel(
PKG, 0, PKG, callsParent.getId(), false, conversationId));
}
+
+ @Test
+ public void testCorrectCategory_systemOn_appCannotTurnOff() {
+ int requested = 0;
+ int system = PRIORITY_CATEGORY_CALLS | PRIORITY_CATEGORY_CONVERSATIONS;
+
+ int actual = mService.correctCategory(requested, PRIORITY_CATEGORY_CONVERSATIONS,
+ system);
+
+ assertEquals(PRIORITY_CATEGORY_CONVERSATIONS, actual);
+ }
+
+ @Test
+ public void testCorrectCategory_systemOff_appTurnOff_noChanges() {
+ int requested = PRIORITY_CATEGORY_CALLS;
+ int system = PRIORITY_CATEGORY_CALLS;
+
+ int actual = mService.correctCategory(requested, PRIORITY_CATEGORY_CONVERSATIONS,
+ system);
+
+ assertEquals(PRIORITY_CATEGORY_CALLS, actual);
+ }
+
+ @Test
+ public void testCorrectCategory_systemOn_appTurnOn_noChanges() {
+ int requested = PRIORITY_CATEGORY_CALLS | PRIORITY_CATEGORY_CONVERSATIONS;
+ int system = PRIORITY_CATEGORY_CALLS | PRIORITY_CATEGORY_CONVERSATIONS;
+
+ int actual = mService.correctCategory(requested, PRIORITY_CATEGORY_CONVERSATIONS,
+ system);
+
+ assertEquals(PRIORITY_CATEGORY_CALLS | PRIORITY_CATEGORY_CONVERSATIONS, actual);
+ }
+
+ @Test
+ public void testCorrectCategory_systemOff_appCannotTurnOn() {
+ int requested = PRIORITY_CATEGORY_CALLS | PRIORITY_CATEGORY_CONVERSATIONS;
+ int system = PRIORITY_CATEGORY_CALLS;
+
+ int actual = mService.correctCategory(requested, PRIORITY_CATEGORY_CONVERSATIONS,
+ system);
+
+ assertEquals(PRIORITY_CATEGORY_CALLS, actual);
+ }
}
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordLoggerFake.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordLoggerFake.java
index 11972fd6a8dc..5c1487f0fdf6 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordLoggerFake.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordLoggerFake.java
@@ -23,7 +23,7 @@ import java.util.List;
* Fake implementation of NotificationRecordLogger, for testing.
*/
class NotificationRecordLoggerFake implements NotificationRecordLogger {
- class CallRecord extends NotificationRecordPair {
+ static class CallRecord extends NotificationRecordPair {
public int position, buzzBeepBlink;
CallRecord(NotificationRecord r, NotificationRecord old, int position,
int buzzBeepBlink) {
@@ -35,7 +35,7 @@ class NotificationRecordLoggerFake implements NotificationRecordLogger {
return shouldLog(buzzBeepBlink);
}
}
- List<CallRecord> mCalls = new ArrayList<CallRecord>();
+ private List<CallRecord> mCalls = new ArrayList<CallRecord>();
List<CallRecord> getCalls() {
return mCalls;
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 c1c74da50c7c..bb84b04361ea 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/PreferencesHelperTest.java
@@ -171,7 +171,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
.thenReturn(SOUND_URI);
mTestNotificationPolicy = new NotificationManager.Policy(0, 0, 0, 0,
- NotificationManager.Policy.STATE_CHANNELS_BYPASSING_DND);
+ NotificationManager.Policy.STATE_CHANNELS_BYPASSING_DND, 0);
when(mMockZenModeHelper.getNotificationPolicy()).thenReturn(mTestNotificationPolicy);
mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
resetZenModeHelper();
@@ -1430,7 +1430,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
// start notification policy off with mAreChannelsBypassingDnd = true, but
// RankingHelper should change to false
mTestNotificationPolicy = new NotificationManager.Policy(0, 0, 0, 0,
- NotificationManager.Policy.STATE_CHANNELS_BYPASSING_DND);
+ NotificationManager.Policy.STATE_CHANNELS_BYPASSING_DND, 0);
when(mMockZenModeHelper.getNotificationPolicy()).thenReturn(mTestNotificationPolicy);
mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
assertFalse(mHelper.areChannelsBypassingDnd());
@@ -1441,7 +1441,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
@Test
public void testSetupNewZenModeHelper_cannotBypass() {
// start notification policy off with mAreChannelsBypassingDnd = false
- mTestNotificationPolicy = new NotificationManager.Policy(0, 0, 0, 0, 0);
+ mTestNotificationPolicy = new NotificationManager.Policy(0, 0, 0, 0, 0, 0);
when(mMockZenModeHelper.getNotificationPolicy()).thenReturn(mTestNotificationPolicy);
mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
assertFalse(mHelper.areChannelsBypassingDnd());
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/RankingHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/RankingHelperTest.java
index 8774b639b554..5018166d9ef1 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/RankingHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/RankingHelperTest.java
@@ -140,7 +140,7 @@ public class RankingHelperTest extends UiServiceTestCase {
.thenReturn(SOUND_URI);
mTestNotificationPolicy = new NotificationManager.Policy(0, 0, 0, 0,
- NotificationManager.Policy.STATE_CHANNELS_BYPASSING_DND);
+ NotificationManager.Policy.STATE_CHANNELS_BYPASSING_DND, 0);
when(mMockZenModeHelper.getNotificationPolicy()).thenReturn(mTestNotificationPolicy);
mHelper = new RankingHelper(getContext(), mHandler, mConfig, mMockZenModeHelper,
mUsageStats, new String[] {ImportanceExtractor.class.getName()});
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/RoleObserverTest.java b/services/tests/uiservicestests/src/com/android/server/notification/RoleObserverTest.java
index e18c8919b645..64a980484539 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/RoleObserverTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/RoleObserverTest.java
@@ -54,6 +54,8 @@ import android.util.ArraySet;
import android.util.AtomicFile;
import android.util.Pair;
+import com.android.internal.logging.InstanceIdSequence;
+import com.android.internal.logging.InstanceIdSequenceFake;
import com.android.server.LocalServices;
import com.android.server.UiServiceTestCase;
import com.android.server.lights.LightsManager;
@@ -92,12 +94,15 @@ public class RoleObserverTest extends UiServiceTestCase {
@Mock
private RoleManager mRoleManager;
NotificationRecordLoggerFake mNotificationRecordLogger = new NotificationRecordLoggerFake();
-
+ private InstanceIdSequence mNotificationInstanceIdSequence = new InstanceIdSequenceFake(
+ 1 << 30);
private List<UserInfo> mUsers;
private static class TestableNotificationManagerService extends NotificationManagerService {
- TestableNotificationManagerService(Context context, NotificationRecordLogger logger) {
- super(context, logger);
+ TestableNotificationManagerService(Context context,
+ NotificationRecordLogger logger,
+ InstanceIdSequence notificationInstanceIdSequence) {
+ super(context, logger, notificationInstanceIdSequence);
}
@Override
@@ -120,7 +125,8 @@ public class RoleObserverTest extends UiServiceTestCase {
mUsers.add(new UserInfo(10, "second", 0));
when(mUm.getUsers()).thenReturn(mUsers);
- mService = new TestableNotificationManagerService(mContext, mNotificationRecordLogger);
+ mService = new TestableNotificationManagerService(mContext, mNotificationRecordLogger,
+ mNotificationInstanceIdSequence);
mRoleObserver = mService.new RoleObserver(mRoleManager, mPm, mExecutor);
try {
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java
index 5841e59ab3a0..3186d539b817 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java
@@ -169,11 +169,11 @@ public class SnoozeHelperTest extends UiServiceTestCase {
public void testCleanupContextShouldRemovePersistedRecord() {
NotificationRecord r = getNotificationRecord("pkg", 1, "one", UserHandle.SYSTEM);
mSnoozeHelper.snooze(r, "context");
- mSnoozeHelper.cleanupPersistedContext(r.sbn.getKey());
+ mSnoozeHelper.cleanupPersistedContext(r.getSbn().getKey());
assertNull(mSnoozeHelper.getSnoozeContextForUnpostedNotification(
r.getUser().getIdentifier(),
- r.sbn.getPackageName(),
- r.sbn.getKey()
+ r.getSbn().getPackageName(),
+ r.getSbn().getKey()
));
}
@@ -201,7 +201,7 @@ public class SnoozeHelperTest extends UiServiceTestCase {
long actualSnoozedUntilDuration = captor.getValue() - SystemClock.elapsedRealtime();
assertTrue(Math.abs(actualSnoozedUntilDuration - 1000) < 250);
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
}
@Test
@@ -211,7 +211,7 @@ public class SnoozeHelperTest extends UiServiceTestCase {
verify(mAm, never()).setExactAndAllowWhileIdle(
anyInt(), anyLong(), any(PendingIntent.class));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
}
@Test
@@ -221,17 +221,17 @@ public class SnoozeHelperTest extends UiServiceTestCase {
mSnoozeHelper.snooze(r, 1000);
mSnoozeHelper.snooze(r2 , 1000);
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r2.sbn.getPackageName(), r2.getKey()));
+ UserHandle.USER_SYSTEM, r2.getSbn().getPackageName(), r2.getKey()));
- mSnoozeHelper.cancel(UserHandle.USER_SYSTEM, r.sbn.getPackageName(), "one", 1);
+ mSnoozeHelper.cancel(UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), "one", 1);
// 2 = one for each snooze, above, zero for the cancel.
verify(mAm, times(2)).cancel(any(PendingIntent.class));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r2.sbn.getPackageName(), r2.getKey()));
+ UserHandle.USER_SYSTEM, r2.getSbn().getPackageName(), r2.getKey()));
}
@Test
@@ -243,21 +243,21 @@ public class SnoozeHelperTest extends UiServiceTestCase {
mSnoozeHelper.snooze(r2, 1000);
mSnoozeHelper.snooze(r3, 1000);
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r2.sbn.getPackageName(), r2.getKey()));
+ UserHandle.USER_SYSTEM, r2.getSbn().getPackageName(), r2.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_ALL, r3.sbn.getPackageName(), r3.getKey()));
+ UserHandle.USER_ALL, r3.getSbn().getPackageName(), r3.getKey()));
mSnoozeHelper.cancel(UserHandle.USER_SYSTEM, false);
// 3 = once for each snooze above (3), only.
verify(mAm, times(3)).cancel(any(PendingIntent.class));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r2.sbn.getPackageName(), r2.getKey()));
+ UserHandle.USER_SYSTEM, r2.getSbn().getPackageName(), r2.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_ALL, r3.sbn.getPackageName(), r3.getKey()));
+ UserHandle.USER_ALL, r3.getSbn().getPackageName(), r3.getKey()));
}
@Test
@@ -269,21 +269,21 @@ public class SnoozeHelperTest extends UiServiceTestCase {
mSnoozeHelper.snooze(r2, 1000);
mSnoozeHelper.snooze(r3, 1000);
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r2.sbn.getPackageName(), r2.getKey()));
+ UserHandle.USER_SYSTEM, r2.getSbn().getPackageName(), r2.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r3.sbn.getPackageName(), r3.getKey()));
+ UserHandle.USER_SYSTEM, r3.getSbn().getPackageName(), r3.getKey()));
mSnoozeHelper.cancel(UserHandle.USER_SYSTEM, "pkg2");
// 3 = once for each snooze above (3), only.
verify(mAm, times(3)).cancel(any(PendingIntent.class));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r2.sbn.getPackageName(), r2.getKey()));
+ UserHandle.USER_SYSTEM, r2.getSbn().getPackageName(), r2.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r3.sbn.getPackageName(), r3.getKey()));
+ UserHandle.USER_SYSTEM, r3.getSbn().getPackageName(), r3.getKey()));
}
@Test
@@ -291,12 +291,12 @@ public class SnoozeHelperTest extends UiServiceTestCase {
NotificationRecord r = getNotificationRecord("pkg", 1, "one", UserHandle.SYSTEM);
mSnoozeHelper.snooze(r, 1000);
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
- mSnoozeHelper.cancel(UserHandle.USER_SYSTEM, r.sbn.getPackageName(), "one", 1);
+ mSnoozeHelper.cancel(UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), "one", 1);
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
}
@Test
@@ -306,11 +306,11 @@ public class SnoozeHelperTest extends UiServiceTestCase {
mSnoozeHelper.snooze(r, 1000);
mSnoozeHelper.snooze(r2 , 1000);
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r2.sbn.getPackageName(), r2.getKey()));
+ UserHandle.USER_SYSTEM, r2.getSbn().getPackageName(), r2.getKey()));
- mSnoozeHelper.cancel(UserHandle.USER_SYSTEM, r.sbn.getPackageName(), "one", 1);
+ mSnoozeHelper.cancel(UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), "one", 1);
mSnoozeHelper.repost(r.getKey(), UserHandle.USER_SYSTEM);
verify(mCallback, never()).repost(UserHandle.USER_SYSTEM, r);
@@ -507,18 +507,18 @@ public class SnoozeHelperTest extends UiServiceTestCase {
mSnoozeHelper.snooze(r, 1000);
mSnoozeHelper.snooze(r2, 1000);
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r2.sbn.getPackageName(), r2.getKey()));
+ UserHandle.USER_SYSTEM, r2.getSbn().getPackageName(), r2.getKey()));
// clear data
mSnoozeHelper.clearData(UserHandle.USER_SYSTEM, "pkg");
// nothing snoozed; alarms canceled
assertFalse(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
assertFalse(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r2.sbn.getPackageName(), r2.getKey()));
+ UserHandle.USER_SYSTEM, r2.getSbn().getPackageName(), r2.getKey()));
// twice for initial snooze, twice for canceling the snooze
verify(mAm, times(4)).cancel(any(PendingIntent.class));
}
@@ -533,21 +533,21 @@ public class SnoozeHelperTest extends UiServiceTestCase {
mSnoozeHelper.snooze(r2, 1000);
mSnoozeHelper.snooze(r3, 1000);
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_ALL, r2.sbn.getPackageName(), r2.getKey()));
+ UserHandle.USER_ALL, r2.getSbn().getPackageName(), r2.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r3.sbn.getPackageName(), r3.getKey()));
+ UserHandle.USER_SYSTEM, r3.getSbn().getPackageName(), r3.getKey()));
// clear data
mSnoozeHelper.clearData(UserHandle.USER_SYSTEM, "pkg");
assertFalse(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r.sbn.getPackageName(), r.getKey()));
+ UserHandle.USER_SYSTEM, r.getSbn().getPackageName(), r.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_ALL, r2.sbn.getPackageName(), r2.getKey()));
+ UserHandle.USER_ALL, r2.getSbn().getPackageName(), r2.getKey()));
assertTrue(mSnoozeHelper.isSnoozed(
- UserHandle.USER_SYSTEM, r3.sbn.getPackageName(), r3.getKey()));
+ UserHandle.USER_SYSTEM, r3.getSbn().getPackageName(), r3.getKey()));
// once for each initial snooze, once for canceling one snooze
verify(mAm, times(4)).cancel(any(PendingIntent.class));
}
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java
index b65476470773..f7b435ed937b 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java
@@ -91,6 +91,7 @@ public class ZenModeConfigTest extends UiServiceTestCase {
int priorityCategories = originalPolicy.priorityCategories;
int priorityCallSenders = originalPolicy.priorityCallSenders;
int priorityMessageSenders = originalPolicy.priorityMessageSenders;
+ int priorityConversationsSenders = originalPolicy.priorityConversationSenders;
int suppressedVisualEffects = originalPolicy.suppressedVisualEffects;
priorityCategories |= Policy.PRIORITY_CATEGORY_ALARMS;
priorityCategories |= Policy.PRIORITY_CATEGORY_REMINDERS;
@@ -99,7 +100,7 @@ public class ZenModeConfigTest extends UiServiceTestCase {
suppressedVisualEffects |= Policy.SUPPRESSED_EFFECT_AMBIENT;
Policy expectedPolicy = new Policy(priorityCategories, priorityCallSenders,
- priorityMessageSenders, suppressedVisualEffects, 0);
+ priorityMessageSenders, suppressedVisualEffects, 0, priorityConversationsSenders);
assertEquals(expectedPolicy, config.toNotificationPolicy(zenPolicy));
}
@@ -235,6 +236,8 @@ public class ZenModeConfigTest extends UiServiceTestCase {
config.areChannelsBypassingDnd = false;
config.allowCallsFrom = ZenModeConfig.SOURCE_ANYONE;
config.allowMessagesFrom = ZenModeConfig.SOURCE_ANYONE;
+ config.allowConversations = true;
+ config.allowConversationsFrom = ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
config.suppressedVisualEffects = 0;
return config;
@@ -252,6 +255,8 @@ public class ZenModeConfigTest extends UiServiceTestCase {
config.allowReminders = false;
config.allowEvents = false;
config.areChannelsBypassingDnd = false;
+ config.allowConversations = false;
+ config.allowConversationsFrom = ZenPolicy.CONVERSATION_SENDERS_NONE;
config.suppressedVisualEffects = 0;
return config;
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeFilteringTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeFilteringTest.java
index 32f389a4fa2d..fb1508842c9d 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeFilteringTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeFilteringTest.java
@@ -16,6 +16,16 @@
package com.android.server.notification;
+import static android.app.Notification.CATEGORY_CALL;
+import static android.app.Notification.CATEGORY_MESSAGE;
+import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
+import static android.app.NotificationManager.Policy.CONVERSATION_SENDERS_ANYONE;
+import static android.app.NotificationManager.Policy.CONVERSATION_SENDERS_IMPORTANT;
+import static android.app.NotificationManager.Policy.CONVERSATION_SENDERS_NONE;
+import static android.app.NotificationManager.Policy.PRIORITY_CATEGORY_CALLS;
+import static android.app.NotificationManager.Policy.PRIORITY_CATEGORY_CONVERSATIONS;
+import static android.app.NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES;
+import static android.app.NotificationManager.Policy.PRIORITY_SENDERS_ANY;
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_STATUS_BAR;
import static android.provider.Settings.Global.ZEN_MODE_ALARMS;
import static android.provider.Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
@@ -31,11 +41,10 @@ import static org.mockito.Mockito.when;
import android.app.Notification;
import android.app.NotificationChannel;
-import android.app.NotificationManager;
import android.app.NotificationManager.Policy;
import android.media.AudioAttributes;
+import android.os.UserHandle;
import android.service.notification.StatusBarNotification;
-import android.service.notification.ZenModeConfig;
import android.test.suitebuilder.annotation.SmallTest;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
@@ -76,6 +85,16 @@ public class ZenModeFilteringTest extends UiServiceTestCase {
return new NotificationRecord(mContext, sbn, c);
}
+ private NotificationRecord getConversationRecord(NotificationChannel c,
+ StatusBarNotification sbn) {
+ NotificationRecord r = mock(NotificationRecord.class);
+ when(r.getCriticality()).thenReturn(CriticalNotificationExtractor.NORMAL);
+ when(r.getSbn()).thenReturn(sbn);
+ when(r.getChannel()).thenReturn(c);
+ when(r.isConversation()).thenReturn(true);
+ return r;
+ }
+
@Test
public void testIsMessage() {
NotificationRecord r = getNotificationRecord();
@@ -97,14 +116,14 @@ public class ZenModeFilteringTest extends UiServiceTestCase {
assertTrue(mZenModeFiltering.isAlarm(r));
r = getNotificationRecord();
- r.sbn.getNotification().category = Notification.CATEGORY_ALARM;
+ r.getSbn().getNotification().category = Notification.CATEGORY_ALARM;
assertTrue(mZenModeFiltering.isAlarm(r));
}
@Test
public void testIsAlarm_wrongCategory() {
NotificationRecord r = getNotificationRecord();
- r.sbn.getNotification().category = Notification.CATEGORY_CALL;
+ r.getSbn().getNotification().category = CATEGORY_CALL;
assertFalse(mZenModeFiltering.isAlarm(r));
}
@@ -121,10 +140,10 @@ public class ZenModeFilteringTest extends UiServiceTestCase {
@Test
public void testSuppressDNDInfo_yes_VisEffectsAllowed() {
NotificationRecord r = getNotificationRecord();
- when(r.sbn.getPackageName()).thenReturn("android");
- when(r.sbn.getId()).thenReturn(SystemMessage.NOTE_ZEN_UPGRADE);
+ when(r.getSbn().getPackageName()).thenReturn("android");
+ when(r.getSbn().getId()).thenReturn(SystemMessage.NOTE_ZEN_UPGRADE);
Policy policy = new Policy(0, 0, 0, Policy.getAllSuppressedVisualEffects()
- - SUPPRESSED_EFFECT_STATUS_BAR);
+ - SUPPRESSED_EFFECT_STATUS_BAR, 0);
assertTrue(mZenModeFiltering.shouldIntercept(ZEN_MODE_IMPORTANT_INTERRUPTIONS, policy, r));
}
@@ -132,9 +151,9 @@ public class ZenModeFilteringTest extends UiServiceTestCase {
@Test
public void testSuppressDNDInfo_yes_WrongId() {
NotificationRecord r = getNotificationRecord();
- when(r.sbn.getPackageName()).thenReturn("android");
- when(r.sbn.getId()).thenReturn(SystemMessage.NOTE_ACCOUNT_CREDENTIAL_PERMISSION);
- Policy policy = new Policy(0, 0, 0, Policy.getAllSuppressedVisualEffects());
+ when(r.getSbn().getPackageName()).thenReturn("android");
+ when(r.getSbn().getId()).thenReturn(SystemMessage.NOTE_ACCOUNT_CREDENTIAL_PERMISSION);
+ Policy policy = new Policy(0, 0, 0, Policy.getAllSuppressedVisualEffects(), 0);
assertTrue(mZenModeFiltering.shouldIntercept(ZEN_MODE_IMPORTANT_INTERRUPTIONS, policy, r));
}
@@ -142,9 +161,9 @@ public class ZenModeFilteringTest extends UiServiceTestCase {
@Test
public void testSuppressDNDInfo_yes_WrongPackage() {
NotificationRecord r = getNotificationRecord();
- when(r.sbn.getPackageName()).thenReturn("android2");
- when(r.sbn.getId()).thenReturn(SystemMessage.NOTE_ZEN_UPGRADE);
- Policy policy = new Policy(0, 0, 0, Policy.getAllSuppressedVisualEffects());
+ when(r.getSbn().getPackageName()).thenReturn("android2");
+ when(r.getSbn().getId()).thenReturn(SystemMessage.NOTE_ZEN_UPGRADE);
+ Policy policy = new Policy(0, 0, 0, Policy.getAllSuppressedVisualEffects(), 0);
assertTrue(mZenModeFiltering.shouldIntercept(ZEN_MODE_IMPORTANT_INTERRUPTIONS, policy, r));
}
@@ -152,9 +171,9 @@ public class ZenModeFilteringTest extends UiServiceTestCase {
@Test
public void testSuppressDNDInfo_no() {
NotificationRecord r = getNotificationRecord();
- when(r.sbn.getPackageName()).thenReturn("android");
- when(r.sbn.getId()).thenReturn(SystemMessage.NOTE_ZEN_UPGRADE);
- Policy policy = new Policy(0, 0, 0, Policy.getAllSuppressedVisualEffects());
+ when(r.getSbn().getPackageName()).thenReturn("android");
+ when(r.getSbn().getId()).thenReturn(SystemMessage.NOTE_ZEN_UPGRADE);
+ Policy policy = new Policy(0, 0, 0, Policy.getAllSuppressedVisualEffects(), 0);
assertFalse(mZenModeFiltering.shouldIntercept(ZEN_MODE_IMPORTANT_INTERRUPTIONS, policy, r));
assertFalse(mZenModeFiltering.shouldIntercept(ZEN_MODE_ALARMS, policy, r));
@@ -164,7 +183,7 @@ public class ZenModeFilteringTest extends UiServiceTestCase {
@Test
public void testSuppressAnything_yes_ZenModeOff() {
NotificationRecord r = getNotificationRecord();
- when(r.sbn.getPackageName()).thenReturn("bananas");
+ when(r.getSbn().getPackageName()).thenReturn("bananas");
Policy policy = new Policy(0, 0, 0, Policy.getAllSuppressedVisualEffects());
assertFalse(mZenModeFiltering.shouldIntercept(ZEN_MODE_OFF, policy, r));
@@ -174,12 +193,120 @@ public class ZenModeFilteringTest extends UiServiceTestCase {
public void testSuppressAnything_bypass_ZenModeOn() {
NotificationRecord r = getNotificationRecord();
r.setCriticality(CriticalNotificationExtractor.CRITICAL);
- when(r.sbn.getPackageName()).thenReturn("bananas");
- Policy policy = new Policy(0, 0, 0, Policy.getAllSuppressedVisualEffects());
+ when(r.getSbn().getPackageName()).thenReturn("bananas");
+ Policy policy = new Policy(0, 0, 0, Policy.getAllSuppressedVisualEffects(), 0);
assertFalse(mZenModeFiltering.shouldIntercept(ZEN_MODE_NO_INTERRUPTIONS, policy, r));
r.setCriticality(CriticalNotificationExtractor.CRITICAL_LOW);
assertFalse(mZenModeFiltering.shouldIntercept(ZEN_MODE_NO_INTERRUPTIONS, policy, r));
}
+
+ @Test
+ public void testConversation_allAllowed() {
+ Notification n = new Notification.Builder(mContext, "a").build();
+ StatusBarNotification sbn = new StatusBarNotification("pkg", "pkg", 0, "tag", 0, 0, n,
+ UserHandle.SYSTEM, null, 0);
+
+ NotificationChannel channel = new NotificationChannel("a", "a", IMPORTANCE_DEFAULT);
+ channel.setConversationId("parent", "me, work");
+
+ NotificationRecord r = getConversationRecord(channel, sbn);
+ when(r.isConversation()).thenReturn(true);
+
+ Policy policy = new Policy(
+ PRIORITY_CATEGORY_CONVERSATIONS, 0, 0, 0, CONVERSATION_SENDERS_ANYONE);
+
+ assertFalse(mZenModeFiltering.shouldIntercept(ZEN_MODE_IMPORTANT_INTERRUPTIONS, policy, r));
+ }
+
+ @Test
+ public void testConversation_importantAllowed_isImportant() {
+ Notification n = new Notification.Builder(mContext, "a").build();
+ StatusBarNotification sbn = new StatusBarNotification("pkg", "pkg", 0, "tag", 0, 0, n,
+ UserHandle.SYSTEM, null, 0);
+
+ NotificationChannel channel = new NotificationChannel("a", "a", IMPORTANCE_DEFAULT);
+ channel.setConversationId("parent", "me, work");
+ channel.setImportantConversation(true);
+
+ NotificationRecord r = getConversationRecord(channel, sbn);
+
+ Policy policy = new Policy(
+ PRIORITY_CATEGORY_CONVERSATIONS, 0, 0, 0, CONVERSATION_SENDERS_IMPORTANT);
+
+ assertFalse(mZenModeFiltering.shouldIntercept(ZEN_MODE_IMPORTANT_INTERRUPTIONS, policy, r));
+ }
+
+ @Test
+ public void testConversation_importantAllowed_isNotImportant() {
+ Notification n = new Notification.Builder(mContext, "a").build();
+ StatusBarNotification sbn = new StatusBarNotification("pkg", "pkg", 0, "tag", 0, 0, n,
+ UserHandle.SYSTEM, null, 0);
+
+ NotificationChannel channel = new NotificationChannel("a", "a", IMPORTANCE_DEFAULT);
+ channel.setConversationId("parent", "me, work");
+
+ NotificationRecord r = getConversationRecord(channel, sbn);
+
+ Policy policy = new Policy(
+ PRIORITY_CATEGORY_CONVERSATIONS, 0, 0, 0, CONVERSATION_SENDERS_IMPORTANT);
+
+ assertTrue(mZenModeFiltering.shouldIntercept(ZEN_MODE_IMPORTANT_INTERRUPTIONS, policy, r));
+ }
+
+ @Test
+ public void testConversation_noneAllowed_notCallOrMsg() {
+ Notification n = new Notification.Builder(mContext, "a").build();
+ StatusBarNotification sbn = new StatusBarNotification("pkg", "pkg", 0, "tag", 0, 0, n,
+ UserHandle.SYSTEM, null, 0);
+
+ NotificationChannel channel = new NotificationChannel("a", "a", IMPORTANCE_DEFAULT);
+ channel.setConversationId("parent", "me, work");
+
+ NotificationRecord r = getConversationRecord(channel, sbn);
+
+ Policy policy =
+ new Policy(PRIORITY_CATEGORY_CONVERSATIONS, 0, 0, 0, CONVERSATION_SENDERS_NONE);
+
+ assertTrue(mZenModeFiltering.shouldIntercept(ZEN_MODE_IMPORTANT_INTERRUPTIONS, policy, r));
+ }
+
+ @Test
+ public void testConversation_noneAllowed_callAllowed() {
+ Notification n = new Notification.Builder(mContext, "a").build();
+ StatusBarNotification sbn = new StatusBarNotification("pkg", "pkg", 0, "tag", 0, 0, n,
+ UserHandle.SYSTEM, null, 0);
+
+ NotificationChannel channel = new NotificationChannel("a", "a", IMPORTANCE_DEFAULT);
+ channel.setConversationId("parent", "me, work");
+
+ NotificationRecord r = getConversationRecord(channel, sbn);
+ when(r.isCategory(CATEGORY_CALL)).thenReturn(true);
+
+ Policy policy =
+ new Policy(PRIORITY_CATEGORY_CALLS,
+ PRIORITY_SENDERS_ANY, 0, 0, CONVERSATION_SENDERS_NONE);
+
+ assertFalse(mZenModeFiltering.shouldIntercept(ZEN_MODE_IMPORTANT_INTERRUPTIONS, policy, r));
+ }
+
+ @Test
+ public void testConversation_noneAllowed_msgAllowed() {
+ when(mMessagingUtil.isMessaging(any())).thenReturn(true);
+ Notification n = new Notification.Builder(mContext, "a").build();
+ StatusBarNotification sbn = new StatusBarNotification("pkg", "pkg", 0, "tag", 0, 0, n,
+ UserHandle.SYSTEM, null, 0);
+
+ NotificationChannel channel = new NotificationChannel("a", "a", IMPORTANCE_DEFAULT);
+ channel.setConversationId("parent", "me, work");
+
+ NotificationRecord r = getConversationRecord(channel, sbn);
+
+ Policy policy =
+ new Policy(PRIORITY_CATEGORY_MESSAGES,
+ 0, PRIORITY_SENDERS_ANY, 0, CONVERSATION_SENDERS_NONE);
+
+ assertFalse(mZenModeFiltering.shouldIntercept(ZEN_MODE_IMPORTANT_INTERRUPTIONS, policy, r));
+ }
}
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java
index 99771b91ee2a..bc2766c8f92f 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeHelperTest.java
@@ -142,7 +142,8 @@ public class ZenModeHelperTest extends UiServiceTestCase {
+ "<allow calls=\"false\" repeatCallers=\"false\" messages=\"true\" "
+ "reminders=\"false\" events=\"false\" callsFrom=\"1\" messagesFrom=\"2\" "
+ "visualScreenOff=\"true\" alarms=\"true\" "
- + "media=\"true\" system=\"false\" />\n"
+ + "media=\"true\" system=\"false\" conversations=\"true\""
+ + " conversationsFrom=\"2\"/>\n"
+ "<automatic ruleId=\"" + EVENTS_DEFAULT_RULE_ID
+ "\" enabled=\"false\" snoozing=\"false\""
+ " name=\"Event\" zen=\"1\""
@@ -218,7 +219,7 @@ public class ZenModeHelperTest extends UiServiceTestCase {
public void testZenOff_NoMuteApplied() {
mZenModeHelperSpy.mZenMode = Settings.Global.ZEN_MODE_OFF;
mZenModeHelperSpy.mConsolidatedPolicy = new Policy(Policy.PRIORITY_CATEGORY_ALARMS |
- Policy.PRIORITY_CATEGORY_MEDIA, 0, 0, 0, 0);
+ Policy.PRIORITY_CATEGORY_MEDIA, 0, 0, 0, 0, 0);
mZenModeHelperSpy.applyRestrictions();
doNothing().when(mZenModeHelperSpy).applyRestrictions(eq(false), anyBoolean(), anyInt());
@@ -232,7 +233,7 @@ public class ZenModeHelperTest extends UiServiceTestCase {
public void testZenOn_AllowAlarmsMedia_NoAlarmMediaMuteApplied() {
mZenModeHelperSpy.mZenMode = Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
mZenModeHelperSpy.mConsolidatedPolicy = new Policy(Policy.PRIORITY_CATEGORY_ALARMS |
- Policy.PRIORITY_CATEGORY_MEDIA, 0, 0, 0, 0);
+ Policy.PRIORITY_CATEGORY_MEDIA, 0, 0, 0, 0, 0);
mZenModeHelperSpy.applyRestrictions();
verify(mZenModeHelperSpy, atLeastOnce()).applyRestrictions(true, false,
@@ -244,7 +245,7 @@ public class ZenModeHelperTest extends UiServiceTestCase {
@Test
public void testZenOn_DisallowAlarmsMedia_AlarmMediaMuteApplied() {
mZenModeHelperSpy.mZenMode = Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
- mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0);
+ mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0, 0);
mZenModeHelperSpy.applyRestrictions();
verify(mZenModeHelperSpy, atLeastOnce()).applyRestrictions(true, true,
AudioAttributes.USAGE_ALARM);
@@ -260,7 +261,7 @@ public class ZenModeHelperTest extends UiServiceTestCase {
public void testTotalSilence() {
mZenModeHelperSpy.mZenMode = Settings.Global.ZEN_MODE_NO_INTERRUPTIONS;
mZenModeHelperSpy.mConsolidatedPolicy = new Policy(Policy.PRIORITY_CATEGORY_ALARMS |
- Policy.PRIORITY_CATEGORY_MEDIA, 0, 0, 0, 0);
+ Policy.PRIORITY_CATEGORY_MEDIA, 0, 0, 0, 0, 0);
mZenModeHelperSpy.applyRestrictions();
// Total silence will silence alarms, media and system noises (but not vibrations)
@@ -281,7 +282,7 @@ public class ZenModeHelperTest extends UiServiceTestCase {
@Test
public void testAlarmsOnly_alarmMediaMuteNotApplied() {
mZenModeHelperSpy.mZenMode = Settings.Global.ZEN_MODE_ALARMS;
- mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0);
+ mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0, 0);
mZenModeHelperSpy.applyRestrictions();
// Alarms only mode will not silence alarms
@@ -304,7 +305,7 @@ public class ZenModeHelperTest extends UiServiceTestCase {
@Test
public void testAlarmsOnly_callsMuteApplied() {
mZenModeHelperSpy.mZenMode = Settings.Global.ZEN_MODE_ALARMS;
- mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0);
+ mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0, 0);
mZenModeHelperSpy.applyRestrictions();
// Alarms only mode will silence calls despite priority-mode config
@@ -318,7 +319,7 @@ public class ZenModeHelperTest extends UiServiceTestCase {
public void testAlarmsOnly_allZenConfigToggledCannotBypass_alarmMuteNotApplied() {
// Only audio attributes with SUPPRESIBLE_NEVER can bypass
mZenModeHelperSpy.mZenMode = Settings.Global.ZEN_MODE_ALARMS;
- mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0);
+ mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0, 0);
mZenModeHelperSpy.applyRestrictions();
verify(mZenModeHelperSpy, atLeastOnce()).applyRestrictions(false, false,
@@ -330,7 +331,7 @@ public class ZenModeHelperTest extends UiServiceTestCase {
// Only audio attributes with SUPPRESIBLE_NEVER can bypass
// with special case USAGE_ASSISTANCE_SONIFICATION
mZenModeHelperSpy.mZenMode = Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
- mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0);
+ mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0, 0);
mZenModeHelperSpy.applyRestrictions();
for (int usage : AudioAttributes.SDK_USAGES) {
@@ -352,7 +353,7 @@ public class ZenModeHelperTest extends UiServiceTestCase {
public void testApplyRestrictions_whitelist_priorityOnlyMode() {
mZenModeHelperSpy.setPriorityOnlyDndExemptPackages(new String[] {PKG_O});
mZenModeHelperSpy.mZenMode = Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
- mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0);
+ mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0, 0);
mZenModeHelperSpy.applyRestrictions();
for (int usage : AudioAttributes.SDK_USAGES) {
@@ -367,7 +368,7 @@ public class ZenModeHelperTest extends UiServiceTestCase {
public void testApplyRestrictions_whitelist_alarmsOnlyMode() {
mZenModeHelperSpy.setPriorityOnlyDndExemptPackages(new String[] {PKG_O});
mZenModeHelperSpy.mZenMode = Global.ZEN_MODE_ALARMS;
- mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0);
+ mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0, 0);
mZenModeHelperSpy.applyRestrictions();
for (int usage : AudioAttributes.SDK_USAGES) {
@@ -382,7 +383,7 @@ public class ZenModeHelperTest extends UiServiceTestCase {
public void testApplyRestrictions_whitelist_totalSilenceMode() {
mZenModeHelperSpy.setPriorityOnlyDndExemptPackages(new String[] {PKG_O});
mZenModeHelperSpy.mZenMode = Global.ZEN_MODE_NO_INTERRUPTIONS;
- mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0);
+ mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0, 0);
mZenModeHelperSpy.applyRestrictions();
for (int usage : AudioAttributes.SDK_USAGES) {
@@ -401,7 +402,7 @@ public class ZenModeHelperTest extends UiServiceTestCase {
Settings.Secure.putInt(mContentResolver, Settings.Secure.SHOW_ZEN_UPGRADE_NOTIFICATION, 1);
Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_SETTINGS_UPDATED, 0);
mZenModeHelperSpy.mIsBootComplete = true;
- mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0);
+ mZenModeHelperSpy.mConsolidatedPolicy = new Policy(0, 0, 0, 0, 0, 0);
mZenModeHelperSpy.setZenModeSetting(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
verify(mZenModeHelperSpy, times(1)).createZenUpgradeNotification();
@@ -452,7 +453,8 @@ public class ZenModeHelperTest extends UiServiceTestCase {
mZenModeHelperSpy.mConfig.allowCalls = false;
mZenModeHelperSpy.mConfig.allowMessages = false;
mZenModeHelperSpy.mConfig.allowEvents = false;
- mZenModeHelperSpy.mConfig.allowRepeatCallers= false;
+ mZenModeHelperSpy.mConfig.allowRepeatCallers = false;
+ mZenModeHelperSpy.mConfig.allowConversations = false;
// 2. apply priority only zen - verify ringer is unchanged
mZenModeHelperSpy.applyZenToRingerMode();
@@ -509,7 +511,8 @@ public class ZenModeHelperTest extends UiServiceTestCase {
mZenModeHelperSpy.mConfig.allowCalls = false;
mZenModeHelperSpy.mConfig.allowMessages = false;
mZenModeHelperSpy.mConfig.allowEvents = false;
- mZenModeHelperSpy.mConfig.allowRepeatCallers= false;
+ mZenModeHelperSpy.mConfig.allowRepeatCallers = false;
+ mZenModeHelperSpy.mConfig.allowConversations = false;
ZenModeHelper.RingerModeDelegate ringerModeDelegateRingerNotMuted =
mZenModeHelperSpy.new RingerModeDelegate();
@@ -694,7 +697,9 @@ public class ZenModeHelperTest extends UiServiceTestCase {
mZenModeHelperSpy.mConfig.allowCalls = true;
mZenModeHelperSpy.mConfig.allowMessages = true;
mZenModeHelperSpy.mConfig.allowEvents = true;
- mZenModeHelperSpy.mConfig.allowRepeatCallers= true;
+ mZenModeHelperSpy.mConfig.allowRepeatCallers = true;
+ mZenModeHelperSpy.mConfig.allowConversations = true;
+ mZenModeHelperSpy.mConfig.allowConversationsFrom = ZenPolicy.CONVERSATION_SENDERS_ANYONE;
mZenModeHelperSpy.mConfig.suppressedVisualEffects = SUPPRESSED_EFFECT_BADGE;
mZenModeHelperSpy.mConfig.manualRule = new ZenModeConfig.ZenRule();
mZenModeHelperSpy.mConfig.manualRule.component = new ComponentName("a", "a");
@@ -716,7 +721,9 @@ public class ZenModeHelperTest extends UiServiceTestCase {
mZenModeHelperSpy.mConfig.allowCalls = true;
mZenModeHelperSpy.mConfig.allowMessages = true;
mZenModeHelperSpy.mConfig.allowEvents = true;
- mZenModeHelperSpy.mConfig.allowRepeatCallers= true;
+ mZenModeHelperSpy.mConfig.allowRepeatCallers = true;
+ mZenModeHelperSpy.mConfig.allowConversations = true;
+ mZenModeHelperSpy.mConfig.allowConversationsFrom = ZenPolicy.CONVERSATION_SENDERS_ANYONE;
mZenModeHelperSpy.mConfig.suppressedVisualEffects = SUPPRESSED_EFFECT_BADGE;
mZenModeHelperSpy.mConfig.manualRule = new ZenModeConfig.ZenRule();
mZenModeHelperSpy.mConfig.manualRule.zenMode =
diff --git a/services/tests/wmtests/AndroidManifest.xml b/services/tests/wmtests/AndroidManifest.xml
index 8c4544249b5c..123bb079dbbb 100644
--- a/services/tests/wmtests/AndroidManifest.xml
+++ b/services/tests/wmtests/AndroidManifest.xml
@@ -37,6 +37,7 @@
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
+ <uses-permission android:name="android.permission.STATUS_BAR" />
<!-- TODO: Remove largeHeap hack when memory leak is fixed (b/123984854) -->
<application android:debuggable="true"
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStartInterceptorTest.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStartInterceptorTest.java
index 399cf49ac06f..135d00586329 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStartInterceptorTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStartInterceptorTest.java
@@ -16,6 +16,7 @@
package com.android.server.wm;
+import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_DEFAULT;
import static android.content.pm.ApplicationInfo.FLAG_SUSPENDED;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
@@ -44,6 +45,7 @@ import android.testing.DexmakerShareClassLoaderRule;
import androidx.test.filters.SmallTest;
+import com.android.internal.app.BlockedAppActivity;
import com.android.internal.app.HarmfulAppWarningActivity;
import com.android.internal.app.SuspendedAppActivity;
import com.android.internal.app.UnlaunchableAppActivity;
@@ -105,6 +107,8 @@ public class ActivityStartInterceptorTest {
private PackageManagerService mPackageManager;
@Mock
private ActivityManagerInternal mAmInternal;
+ @Mock
+ private LockTaskController mLockTaskController;
private ActivityStartInterceptor mInterceptor;
private ActivityInfo mAInfo = new ActivityInfo();
@@ -145,6 +149,13 @@ public class ActivityStartInterceptorTest {
when(mPackageManager.getHarmfulAppWarning(TEST_PACKAGE_NAME, TEST_USER_ID))
.thenReturn(null);
+ // Mock LockTaskController
+ mAInfo.lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_DEFAULT;
+ when(mService.getLockTaskController()).thenReturn(mLockTaskController);
+ when(mLockTaskController.isActivityAllowed(
+ TEST_USER_ID, TEST_PACKAGE_NAME, LOCK_TASK_LAUNCH_MODE_DEFAULT))
+ .thenReturn(true);
+
// Initialise activity info
mAInfo.applicationInfo = new ApplicationInfo();
mAInfo.packageName = mAInfo.applicationInfo.packageName = TEST_PACKAGE_NAME;
@@ -196,6 +207,18 @@ public class ActivityStartInterceptorTest {
}
@Test
+ public void testInterceptLockTaskModeViolationPackage() {
+ when(mLockTaskController.isActivityAllowed(
+ TEST_USER_ID, TEST_PACKAGE_NAME, LOCK_TASK_LAUNCH_MODE_DEFAULT))
+ .thenReturn(false);
+
+ assertTrue(mInterceptor.intercept(null, null, mAInfo, null, null, 0, 0, null));
+
+ assertTrue(BlockedAppActivity.createIntent(TEST_USER_ID, TEST_PACKAGE_NAME)
+ .filterEquals(mInterceptor.mIntent));
+ }
+
+ @Test
public void testInterceptQuietProfile() {
// GIVEN that the user the activity is starting as is currently in quiet mode
when(mUserManager.isQuietModeEnabled(eq(UserHandle.of(TEST_USER_ID)))).thenReturn(true);
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityTaskManagerServiceTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityTaskManagerServiceTests.java
index d22502db69e4..4532400e3b34 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityTaskManagerServiceTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityTaskManagerServiceTests.java
@@ -16,9 +16,6 @@
package com.android.server.wm;
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
-import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
-
import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
@@ -27,17 +24,14 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSess
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
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.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.when;
import android.app.Activity;
-import android.app.ActivityManager;
import android.app.PictureInPictureParams;
import android.app.servertransaction.ClientTransaction;
import android.app.servertransaction.EnterPipRequestedItem;
@@ -46,7 +40,6 @@ import android.graphics.Rect;
import android.os.IBinder;
import android.os.RemoteException;
import android.view.IDisplayWindowListener;
-import android.view.WindowContainerTransaction;
import androidx.test.filters.MediumTest;
@@ -126,47 +119,6 @@ public class ActivityTaskManagerServiceTests extends ActivityTestsBase {
}
@Test
- public void testTaskTransaction() {
- removeGlobalMinSizeRestriction();
- final ActivityStack stack = new StackBuilder(mRootWindowContainer)
- .setWindowingMode(WINDOWING_MODE_FREEFORM).build();
- final Task task = stack.getTopMostTask();
- WindowContainerTransaction t = new WindowContainerTransaction();
- Rect newBounds = new Rect(10, 10, 100, 100);
- t.setBounds(task.mRemoteToken, new Rect(10, 10, 100, 100));
- mService.applyContainerTransaction(t);
- assertEquals(newBounds, task.getBounds());
- }
-
- @Test
- public void testStackTransaction() {
- removeGlobalMinSizeRestriction();
- final ActivityStack stack = new StackBuilder(mRootWindowContainer)
- .setWindowingMode(WINDOWING_MODE_FREEFORM).build();
- ActivityManager.StackInfo info =
- mService.getStackInfo(WINDOWING_MODE_FREEFORM, ACTIVITY_TYPE_STANDARD);
- WindowContainerTransaction t = new WindowContainerTransaction();
- assertEquals(stack.mRemoteToken, info.stackToken);
- Rect newBounds = new Rect(10, 10, 100, 100);
- t.setBounds(info.stackToken, new Rect(10, 10, 100, 100));
- mService.applyContainerTransaction(t);
- assertEquals(newBounds, stack.getBounds());
- }
-
- @Test
- public void testContainerChanges() {
- removeGlobalMinSizeRestriction();
- final ActivityStack stack = new StackBuilder(mRootWindowContainer)
- .setWindowingMode(WINDOWING_MODE_FREEFORM).build();
- final Task task = stack.getTopMostTask();
- WindowContainerTransaction t = new WindowContainerTransaction();
- assertTrue(task.isFocusable());
- t.setFocusable(stack.mRemoteToken, false);
- mService.applyContainerTransaction(t);
- assertFalse(task.isFocusable());
- }
-
- @Test
public void testDisplayWindowListener() {
final ArrayList<Integer> added = new ArrayList<>();
final ArrayList<Integer> changed = new ArrayList<>();
diff --git a/services/tests/wmtests/src/com/android/server/wm/AnimatingActivityRegistryTest.java b/services/tests/wmtests/src/com/android/server/wm/AnimatingActivityRegistryTest.java
index 71390dbbe4a3..0f5489575ee0 100644
--- a/services/tests/wmtests/src/com/android/server/wm/AnimatingActivityRegistryTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/AnimatingActivityRegistryTest.java
@@ -21,6 +21,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
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;
@@ -69,8 +70,10 @@ public class AnimatingActivityRegistryTest extends WindowTestsBase {
final AnimatingActivityRegistry registry =
activity1.getStack().getAnimatingActivityRegistry();
- activity1.startAnimation(activity1.getPendingTransaction(), mAdapter, false /* hidden */);
- activity2.startAnimation(activity1.getPendingTransaction(), mAdapter, false /* hidden */);
+ 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));
@@ -91,8 +94,10 @@ public class AnimatingActivityRegistryTest extends WindowTestsBase {
final AnimatingActivityRegistry registry =
window1.getStack().getAnimatingActivityRegistry();
- window1.startAnimation(window1.getPendingTransaction(), mAdapter, false /* hidden */);
- window2.startAnimation(window1.getPendingTransaction(), mAdapter, false /* hidden */);
+ 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));
diff --git a/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenAnimationTests.java b/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenAnimationTests.java
index b0f3b42271de..6e78a271458a 100644
--- a/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenAnimationTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/AppWindowTokenAnimationTests.java
@@ -20,6 +20,7 @@ import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
import static com.google.common.truth.Truth.assertThat;
@@ -70,7 +71,8 @@ public class AppWindowTokenAnimationTests extends WindowTestsBase {
public void clipAfterAnim_boundsLayerIsCreated() {
mActivity.mNeedsAnimationBoundsLayer = true;
- mActivity.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */);
+ mActivity.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */,
+ ANIMATION_TYPE_APP_TRANSITION);
verify(mTransaction).reparent(eq(mActivity.getSurfaceControl()),
eq(mActivity.mSurfaceAnimator.mLeash));
verify(mTransaction).reparent(eq(mActivity.mSurfaceAnimator.mLeash),
@@ -82,7 +84,8 @@ public class AppWindowTokenAnimationTests extends WindowTestsBase {
mActivity.mNeedsAnimationBoundsLayer = true;
mActivity.mNeedsZBoost = true;
- mActivity.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */);
+ mActivity.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */,
+ ANIMATION_TYPE_APP_TRANSITION);
verify(mTransaction).setLayer(eq(mActivity.mAnimationBoundsLayer),
intThat(layer -> layer >= ActivityRecord.Z_BOOST_BASE));
}
@@ -91,15 +94,18 @@ public class AppWindowTokenAnimationTests extends WindowTestsBase {
@FlakyTest(bugId = 131005232)
public void clipAfterAnim_boundsLayerIsDestroyed() {
mActivity.mNeedsAnimationBoundsLayer = true;
- mActivity.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */);
+ mActivity.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */,
+ ANIMATION_TYPE_APP_TRANSITION);
final SurfaceControl leash = mActivity.mSurfaceAnimator.mLeash;
final SurfaceControl animationBoundsLayer = mActivity.mAnimationBoundsLayer;
final ArgumentCaptor<SurfaceAnimator.OnAnimationFinishedCallback> callbackCaptor =
ArgumentCaptor.forClass(
SurfaceAnimator.OnAnimationFinishedCallback.class);
- verify(mSpec).startAnimation(any(), any(), callbackCaptor.capture());
+ verify(mSpec).startAnimation(any(), any(), eq(ANIMATION_TYPE_APP_TRANSITION),
+ callbackCaptor.capture());
- callbackCaptor.getValue().onAnimationFinished(mSpec);
+ callbackCaptor.getValue().onAnimationFinished(
+ ANIMATION_TYPE_APP_TRANSITION, mSpec);
verify(mTransaction).remove(eq(leash));
verify(mTransaction).remove(eq(animationBoundsLayer));
assertThat(mActivity.mNeedsAnimationBoundsLayer).isFalse();
@@ -108,7 +114,8 @@ public class AppWindowTokenAnimationTests extends WindowTestsBase {
@Test
public void clipAfterAnimCancelled_boundsLayerIsDestroyed() {
mActivity.mNeedsAnimationBoundsLayer = true;
- mActivity.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */);
+ mActivity.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */,
+ ANIMATION_TYPE_APP_TRANSITION);
final SurfaceControl leash = mActivity.mSurfaceAnimator.mLeash;
final SurfaceControl animationBoundsLayer = mActivity.mAnimationBoundsLayer;
@@ -123,7 +130,8 @@ public class AppWindowTokenAnimationTests extends WindowTestsBase {
public void clipNoneAnim_boundsLayerIsNotCreated() {
mActivity.mNeedsAnimationBoundsLayer = false;
- mActivity.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */);
+ mActivity.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */,
+ ANIMATION_TYPE_APP_TRANSITION);
verify(mTransaction).reparent(eq(mActivity.getSurfaceControl()),
eq(mActivity.mSurfaceAnimator.mLeash));
assertThat(mActivity.mAnimationBoundsLayer).isNull();
diff --git a/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java b/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java
index 7344fa42016c..77ceeedae1ac 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DimmerTests.java
@@ -22,11 +22,13 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.reset;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_DIMMER;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.when;
@@ -37,6 +39,9 @@ import android.platform.test.annotations.Presubmit;
import android.view.SurfaceControl;
import android.view.SurfaceSession;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
+import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -114,11 +119,11 @@ public class DimmerTests extends WindowTestsBase {
private static class SurfaceAnimatorStarterImpl implements Dimmer.SurfaceAnimatorStarter {
@Override
public void startAnimation(SurfaceAnimator surfaceAnimator, SurfaceControl.Transaction t,
- AnimationAdapter anim, boolean hidden,
- @Nullable Runnable animationFinishedCallback) {
- surfaceAnimator.mStaticAnimationFinishedCallback.run();
+ AnimationAdapter anim, boolean hidden, @AnimationType int type,
+ @Nullable OnAnimationFinishedCallback animationFinishedCallback) {
+ surfaceAnimator.mStaticAnimationFinishedCallback.onAnimationFinished(type, anim);
if (animationFinishedCallback != null) {
- animationFinishedCallback.run();
+ animationFinishedCallback.onAnimationFinished(type, anim);
}
}
}
@@ -224,7 +229,7 @@ public class DimmerTests extends WindowTestsBase {
mDimmer.updateDims(mTransaction, new Rect());
verify(mSurfaceAnimatorStarter).startAnimation(any(SurfaceAnimator.class), any(
SurfaceControl.Transaction.class), any(AnimationAdapter.class), anyBoolean(),
- isNull());
+ eq(ANIMATION_TYPE_DIMMER), isNull());
verify(mHost.getPendingTransaction()).remove(dimLayer);
}
@@ -282,7 +287,7 @@ public class DimmerTests extends WindowTestsBase {
mDimmer.updateDims(mTransaction, new Rect());
verify(mSurfaceAnimatorStarter, never()).startAnimation(any(SurfaceAnimator.class), any(
SurfaceControl.Transaction.class), any(AnimationAdapter.class), anyBoolean(),
- isNull());
+ eq(ANIMATION_TYPE_DIMMER), isNull());
verify(mTransaction).remove(dimLayer);
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayAreaTest.java b/services/tests/wmtests/src/com/android/server/wm/DisplayAreaTest.java
new file mode 100644
index 000000000000..618e6086b582
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayAreaTest.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
+import static android.view.WindowManager.LayoutParams.TYPE_PRESENTATION;
+import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
+
+import static com.android.server.wm.DisplayArea.Type.ABOVE_TASKS;
+import static com.android.server.wm.DisplayArea.Type.ANY;
+import static com.android.server.wm.DisplayArea.Type.BELOW_TASKS;
+import static com.android.server.wm.DisplayArea.Type.checkChild;
+import static com.android.server.wm.DisplayArea.Type.checkSiblings;
+import static com.android.server.wm.DisplayArea.Type.typeOf;
+import static com.android.server.wm.testing.Assert.assertThrows;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+
+import android.os.Binder;
+import android.platform.test.annotations.Presubmit;
+import android.view.SurfaceControl;
+
+import org.junit.Rule;
+import org.junit.Test;
+
+@Presubmit
+public class DisplayAreaTest {
+
+ @Rule
+ public SystemServicesTestRule mWmsRule = new SystemServicesTestRule();
+
+ @Test
+ public void testDisplayArea_positionChanged_throwsIfIncompatibleChild() {
+ WindowManagerService wms = mWmsRule.getWindowManagerService();
+ DisplayArea<WindowContainer> parent = new DisplayArea<>(wms, BELOW_TASKS, "Parent");
+ DisplayArea<WindowContainer> child = new DisplayArea<>(wms, ANY, "Child");
+
+ assertThrows(IllegalStateException.class, () -> parent.addChild(child, 0));
+ }
+
+ @Test
+ public void testDisplayArea_positionChanged_throwsIfIncompatibleSibling() {
+ WindowManagerService wms = mWmsRule.getWindowManagerService();
+ DisplayArea<WindowContainer> parent = new SurfacelessDisplayArea<>(wms, ANY, "Parent");
+ DisplayArea<WindowContainer> child1 = new DisplayArea<>(wms, ANY, "Child1");
+ DisplayArea<WindowContainer> child2 = new DisplayArea<>(wms, ANY, "Child2");
+
+ parent.addChild(child1, 0);
+ assertThrows(IllegalStateException.class, () -> parent.addChild(child2, 0));
+ }
+
+ @Test
+ public void testType_typeOf() {
+ WindowManagerService wms = mWmsRule.getWindowManagerService();
+
+ assertEquals(ABOVE_TASKS, typeOf(new DisplayArea<>(wms, ABOVE_TASKS, "test")));
+ assertEquals(ANY, typeOf(new DisplayArea<>(wms, ANY, "test")));
+ assertEquals(BELOW_TASKS, typeOf(new DisplayArea<>(wms, BELOW_TASKS, "test")));
+
+ assertEquals(ABOVE_TASKS, typeOf(createWindowToken(TYPE_APPLICATION_OVERLAY)));
+ assertEquals(ABOVE_TASKS, typeOf(createWindowToken(TYPE_PRESENTATION)));
+ assertEquals(BELOW_TASKS, typeOf(createWindowToken(TYPE_WALLPAPER)));
+
+ assertThrows(IllegalArgumentException.class, () -> typeOf(mock(ActivityRecord.class)));
+ assertThrows(IllegalArgumentException.class, () -> typeOf(mock(WindowContainer.class)));
+ }
+
+ @Test
+ public void testType_checkSiblings() {
+ checkSiblings(BELOW_TASKS, BELOW_TASKS);
+ checkSiblings(BELOW_TASKS, ANY);
+ checkSiblings(BELOW_TASKS, ABOVE_TASKS);
+ checkSiblings(ANY, ABOVE_TASKS);
+ checkSiblings(ABOVE_TASKS, ABOVE_TASKS);
+
+ assertThrows(IllegalStateException.class, () -> checkSiblings(ABOVE_TASKS, BELOW_TASKS));
+ assertThrows(IllegalStateException.class, () -> checkSiblings(ABOVE_TASKS, ANY));
+ assertThrows(IllegalStateException.class, () -> checkSiblings(ANY, ANY));
+ assertThrows(IllegalStateException.class, () -> checkSiblings(ANY, BELOW_TASKS));
+ }
+
+ @Test
+ public void testType_checkChild() {
+ checkChild(ANY, ANY);
+ checkChild(ANY, ABOVE_TASKS);
+ checkChild(ANY, BELOW_TASKS);
+ checkChild(ABOVE_TASKS, ABOVE_TASKS);
+ checkChild(BELOW_TASKS, BELOW_TASKS);
+
+ assertThrows(IllegalStateException.class, () -> checkChild(ABOVE_TASKS, BELOW_TASKS));
+ assertThrows(IllegalStateException.class, () -> checkChild(ABOVE_TASKS, ANY));
+ assertThrows(IllegalStateException.class, () -> checkChild(BELOW_TASKS, ABOVE_TASKS));
+ assertThrows(IllegalStateException.class, () -> checkChild(BELOW_TASKS, ANY));
+ }
+
+ private WindowToken createWindowToken(int type) {
+ return new WindowToken(mWmsRule.getWindowManagerService(), new Binder(),
+ type, false /* persist */, null /* displayContent */,
+ false /* canManageTokens */);
+ }
+
+ private static class SurfacelessDisplayArea<T extends WindowContainer> extends DisplayArea<T> {
+
+ SurfacelessDisplayArea(WindowManagerService wms, Type type, String name) {
+ super(wms, type, name);
+ }
+
+ @Override
+ SurfaceControl.Builder makeChildSurface(WindowContainer child) {
+ return new MockSurfaceControlBuilder();
+ }
+ }
+}
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 1637370df0f7..2ea00cec3f2e 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
@@ -139,11 +139,11 @@ public class DisplayContentTests extends WindowTestsBase {
mAppWindow,
mChildAppWindowAbove,
mDockedDividerWindow,
+ mImeWindow,
+ mImeDialogWindow,
mStatusBarWindow,
mNotificationShadeWindow,
- mNavBarWindow,
- mImeWindow,
- mImeDialogWindow));
+ mNavBarWindow));
}
@Test
@@ -232,11 +232,11 @@ public class DisplayContentTests extends WindowTestsBase {
mChildAppWindowAbove,
mDockedDividerWindow,
voiceInteractionWindow,
+ mImeWindow,
+ mImeDialogWindow,
mStatusBarWindow,
mNotificationShadeWindow,
- mNavBarWindow,
- mImeWindow,
- mImeDialogWindow));
+ mNavBarWindow));
}
@Test
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyLayoutTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyLayoutTests.java
index 5ba676d1c544..9dbaa4c9ca82 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyLayoutTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayPolicyLayoutTests.java
@@ -73,6 +73,9 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
/**
* Tests for the {@link DisplayPolicy} class.
*
@@ -122,9 +125,13 @@ public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
}
private void updateDisplayFrames() {
+ mFrames = createDisplayFrames();
+ }
+
+ private DisplayFrames createDisplayFrames() {
final Pair<DisplayInfo, WmDisplayCutout> info = displayInfoAndCutoutForRotation(mRotation,
mHasDisplayCutout);
- mFrames = new DisplayFrames(mDisplayContent.getDisplayId(), info.first, info.second);
+ return new DisplayFrames(mDisplayContent.getDisplayId(), info.first, info.second);
}
@Test
@@ -824,6 +831,49 @@ public class DisplayPolicyLayoutTests extends DisplayPolicyTestsBase {
assertThat(outDisplayCutout, is(new DisplayCutout.ParcelableWrapper()));
}
+ /**
+ * Verify that {@link DisplayPolicy#simulateLayoutDisplay} outputs the same display frames as
+ * {@link DisplayPolicy#beginLayoutLw}.
+ */
+ @Test
+ public void testSimulateLayoutDisplay() {
+ assertSimulateLayoutSameDisplayFrames();
+ setRotation(ROTATION_90);
+ assertSimulateLayoutSameDisplayFrames();
+ addDisplayCutout();
+ assertSimulateLayoutSameDisplayFrames();
+ }
+
+ private void assertSimulateLayoutSameDisplayFrames() {
+ final int uiMode = 0;
+ final String prefix = "";
+ final InsetsState simulatedInsetsState = new InsetsState();
+ final DisplayFrames simulatedDisplayFrames = createDisplayFrames();
+ mDisplayContent.mDisplayFrames = mFrames;
+ mDisplayPolicy.beginLayoutLw(mFrames, uiMode);
+ mDisplayContent.getInsetsStateController().onPostLayout();
+ mDisplayPolicy.simulateLayoutDisplay(simulatedDisplayFrames, simulatedInsetsState, uiMode);
+
+ final StringWriter realFramesDump = new StringWriter();
+ mFrames.dump(prefix, new PrintWriter(realFramesDump));
+ final StringWriter simulatedFramesDump = new StringWriter();
+ simulatedDisplayFrames.dump(prefix, new PrintWriter(simulatedFramesDump));
+
+ assertEquals(realFramesDump.toString(), simulatedFramesDump.toString());
+
+ final StringWriter realInsetsDump = new StringWriter();
+ final InsetsState realInsetsState = new InsetsState(
+ mDisplayContent.getInsetsStateController().getRawInsetsState());
+ // Exclude comparing IME insets because currently the simulated layout only focuses on the
+ // insets from status bar and navigation bar.
+ realInsetsState.removeSource(InsetsState.ITYPE_IME);
+ realInsetsState.dump(prefix, new PrintWriter(realInsetsDump));
+ final StringWriter simulatedInsetsDump = new StringWriter();
+ simulatedInsetsState.dump(prefix, new PrintWriter(simulatedInsetsDump));
+
+ assertEquals(realInsetsDump.toString(), simulatedInsetsDump.toString());
+ }
+
@Test
public void forceShowSystemBars_clearsSystemUIFlags() {
mDisplayPolicy.mLastSystemUiFlags |= SYSTEM_UI_FLAG_FULLSCREEN;
diff --git a/services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java
index 5acc0f273554..956c200022e9 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DragDropControllerTests.java
@@ -126,7 +126,8 @@ public class DragDropControllerTests extends WindowTestsBase {
mTarget = new TestDragDropController(mWm, mWm.mH.getLooper());
mWindow = createDropTargetWindow("Drag test window", 0);
doReturn(mWindow).when(mDisplayContent).getTouchableWinAtPointLocked(0, 0);
- when(mWm.mInputManager.transferTouchFocus(any(), any())).thenReturn(true);
+ when(mWm.mInputManager.transferTouchFocus(any(InputChannel.class),
+ any(InputChannel.class))).thenReturn(true);
mWm.mWindowMap.put(mWindow.mClient.asBinder(), mWindow);
}
@@ -176,7 +177,8 @@ public class DragDropControllerTests extends WindowTestsBase {
.setFormat(PixelFormat.TRANSLUCENT)
.build();
- assertTrue(mWm.mInputManager.transferTouchFocus(null, null));
+ assertTrue(mWm.mInputManager.transferTouchFocus(new InputChannel(),
+ new InputChannel()));
mToken = mTarget.performDrag(
new SurfaceSession(), 0, 0, mWindow.mClient, flag, surface, 0, 0, 0, 0, 0,
data);
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 c3bead7162e6..e71225579989 100644
--- a/services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/InsetsPolicyTest.java
@@ -119,18 +119,6 @@ public class InsetsPolicyTest extends WindowTestsBase {
assertNull(controls);
}
- @Test
- public void testControlsForDispatch_keyguard() {
- addWindow(TYPE_NOTIFICATION_SHADE, "notificationShade");
- addWindow(TYPE_NAVIGATION_BAR, "navBar");
- mockKeyguardShowing();
-
- final InsetsSourceControl[] controls = addAppWindowAndGetControlsForDispatch();
- // The app must not control the top bar.
- assertNotNull(controls);
- assertEquals(1, controls.length);
- }
-
// TODO: adjust this test if we pretend to the app that it's still able to control it.
@Test
public void testControlsForDispatch_forceStatusBarVisible() {
@@ -159,6 +147,21 @@ public class InsetsPolicyTest extends WindowTestsBase {
}
@Test
+ public void testControlsForDispatch_statusBarForceShowNavigation_butFocusedAnyways() {
+ WindowState notifShade = addWindow(TYPE_NOTIFICATION_SHADE, "notificationShade");
+ notifShade.mAttrs.privateFlags |= PRIVATE_FLAG_STATUS_FORCE_SHOW_NAVIGATION;
+ addWindow(TYPE_NAVIGATION_BAR, "navBar");
+
+ mDisplayContent.getInsetsPolicy().updateBarControlTarget(notifShade);
+ InsetsSourceControl[] controls
+ = mDisplayContent.getInsetsStateController().getControlsForDispatch(notifShade);
+
+ // The app controls the navigation bar.
+ assertNotNull(controls);
+ assertEquals(1, controls.length);
+ }
+
+ @Test
public void testShowTransientBars_bothCanBeTransient_appGetsBothFakeControls() {
addWindow(TYPE_STATUS_BAR, "statusBar")
.getControllableInsetProvider().getSource().setVisible(false);
@@ -260,10 +263,4 @@ public class InsetsPolicyTest extends WindowTestsBase {
mDisplayContent.getInsetsPolicy().updateBarControlTarget(win);
return mDisplayContent.getInsetsStateController().getControlsForDispatch(win);
}
-
- private void mockKeyguardShowing() {
- final DisplayPolicy displayPolicy = mDisplayContent.getDisplayPolicy();
- spyOn(displayPolicy);
- doReturn(true).when(displayPolicy).isKeyguardShowing();
- }
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java
index 039ff604f3f1..a137cde2d351 100644
--- a/services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/LockTaskControllerTest.java
@@ -25,10 +25,14 @@ import static android.app.StatusBarManager.DISABLE2_NOTIFICATION_SHADE;
import static android.app.StatusBarManager.DISABLE_HOME;
import static android.app.StatusBarManager.DISABLE_NOTIFICATION_ALERTS;
import static android.app.StatusBarManager.DISABLE_NOTIFICATION_ICONS;
+import static android.app.admin.DevicePolicyManager.LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK;
import static android.app.admin.DevicePolicyManager.LOCK_TASK_FEATURE_HOME;
import static android.app.admin.DevicePolicyManager.LOCK_TASK_FEATURE_KEYGUARD;
import static android.app.admin.DevicePolicyManager.LOCK_TASK_FEATURE_NONE;
import static android.app.admin.DevicePolicyManager.LOCK_TASK_FEATURE_NOTIFICATIONS;
+import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_ALWAYS;
+import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_DEFAULT;
+import static android.content.pm.ActivityInfo.LOCK_TASK_LAUNCH_MODE_NEVER;
import static android.os.Process.SYSTEM_UID;
import static android.telecom.TelecomManager.EMERGENCY_DIALER_COMPONENT;
@@ -693,6 +697,45 @@ public class LockTaskControllerTest {
assertTrue((StatusBarManager.DISABLE2_QUICK_SETTINGS & flags.second) != 0);
}
+ @Test
+ public void testIsActivityAllowed() {
+ // WHEN lock task mode is not enabled
+ assertTrue(mLockTaskController.isActivityAllowed(
+ TEST_USER_ID, TEST_PACKAGE_NAME, LOCK_TASK_LAUNCH_MODE_DEFAULT));
+
+ // Start lock task mode
+ Task tr = getTask(Task.LOCK_TASK_AUTH_WHITELISTED);
+ mLockTaskController.startLockTaskMode(tr, false, TEST_UID);
+
+ // WHEN LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK is not enabled
+ assertTrue(mLockTaskController.isActivityAllowed(
+ TEST_USER_ID, TEST_PACKAGE_NAME, LOCK_TASK_LAUNCH_MODE_DEFAULT));
+
+ // Enable LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK feature
+ mLockTaskController.updateLockTaskFeatures(
+ TEST_USER_ID, LOCK_TASK_FEATURE_BLOCK_ACTIVITY_START_IN_TASK);
+
+ // package with LOCK_TASK_LAUNCH_MODE_ALWAYS should always be allowed
+ assertTrue(mLockTaskController.isActivityAllowed(
+ TEST_USER_ID, TEST_PACKAGE_NAME, LOCK_TASK_LAUNCH_MODE_ALWAYS));
+
+ // unwhitelisted package should not be allowed
+ assertFalse(mLockTaskController.isActivityAllowed(
+ TEST_USER_ID, TEST_PACKAGE_NAME, LOCK_TASK_LAUNCH_MODE_DEFAULT));
+
+ // update the whitelist
+ String[] whitelist = new String[] { TEST_PACKAGE_NAME };
+ mLockTaskController.updateLockTaskPackages(TEST_USER_ID, whitelist);
+
+ // whitelisted package should be allowed
+ assertTrue(mLockTaskController.isActivityAllowed(
+ TEST_USER_ID, TEST_PACKAGE_NAME, LOCK_TASK_LAUNCH_MODE_DEFAULT));
+
+ // package with LOCK_TASK_LAUNCH_MODE_NEVER should never be allowed
+ assertFalse(mLockTaskController.isActivityAllowed(
+ TEST_USER_ID, TEST_PACKAGE_NAME, LOCK_TASK_LAUNCH_MODE_NEVER));
+ }
+
private Task getTask(int lockTaskAuth) {
return getTask(TEST_PACKAGE_NAME, lockTaskAuth);
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
index 945928d1b967..7753a32d8ca0 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentsAnimationControllerTest.java
@@ -37,6 +37,7 @@ import static com.android.server.wm.ActivityStackSupervisor.ON_TOP;
import static com.android.server.wm.RecentsAnimationController.REORDER_KEEP_IN_PLACE;
import static com.android.server.wm.RecentsAnimationController.REORDER_MOVE_TO_ORIGINAL_POSITION;
import static com.android.server.wm.RecentsAnimationController.REORDER_MOVE_TO_TOP;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_RECENTS;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -103,14 +104,15 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
AnimationAdapter adapter = mController.addAnimation(activity.getTask(),
false /* isRecentTaskInvisible */);
- adapter.startAnimation(mMockLeash, mMockTransaction, mFinishedCallback);
+ adapter.startAnimation(mMockLeash, mMockTransaction, ANIMATION_TYPE_RECENTS,
+ mFinishedCallback);
// Remove the app window so that the animation target can not be created
activity.removeImmediately();
mController.startAnimation();
// Verify that the finish callback to reparent the leash is called
- verify(mFinishedCallback).onAnimationFinished(eq(adapter));
+ verify(mFinishedCallback).onAnimationFinished(eq(ANIMATION_TYPE_RECENTS), eq(adapter));
// Verify the animation canceled callback to the app was made
verify(mMockRunner).onAnimationCanceled(null /* taskSnapshot */);
verifyNoMoreInteractionsExceptAsBinder(mMockRunner);
@@ -122,7 +124,8 @@ public class RecentsAnimationControllerTest extends WindowTestsBase {
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD);
AnimationAdapter adapter = mController.addAnimation(activity.getTask(),
false /* isRecentTaskInvisible */);
- adapter.startAnimation(mMockLeash, mMockTransaction, mFinishedCallback);
+ adapter.startAnimation(mMockLeash, mMockTransaction, ANIMATION_TYPE_RECENTS,
+ mFinishedCallback);
// Remove the app window so that the animation target can not be created
activity.removeImmediately();
diff --git a/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java b/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java
index a23425f2510c..be2559719438 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RefreshRatePolicyTest.java
@@ -18,6 +18,8 @@ package com.android.server.wm;
import static android.view.WindowManager.LayoutParams.TYPE_BASE_APPLICATION;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
+
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -108,7 +110,7 @@ public class RefreshRatePolicyTest extends WindowTestsBase {
overrideWindow.mAttrs.preferredDisplayModeId = LOW_MODE_ID;
overrideWindow.mActivityRecord.mSurfaceAnimator.startAnimation(
overrideWindow.getPendingTransaction(), mock(AnimationAdapter.class),
- false /* hidden */);
+ false /* hidden */, ANIMATION_TYPE_APP_TRANSITION);
mPolicy.addNonHighRefreshRatePackage("com.android.test");
assertEquals(0, mPolicy.getPreferredModeId(overrideWindow));
}
@@ -124,7 +126,7 @@ public class RefreshRatePolicyTest extends WindowTestsBase {
cameraUsingWindow.mActivityRecord.mSurfaceAnimator.startAnimation(
cameraUsingWindow.getPendingTransaction(), mock(AnimationAdapter.class),
- false /* hidden */);
+ false /* hidden */, ANIMATION_TYPE_APP_TRANSITION);
assertEquals(0, mPolicy.getPreferredModeId(cameraUsingWindow));
}
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/RemoteAnimationControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/RemoteAnimationControllerTest.java
index 1a575962b961..3a724a140ffb 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RemoteAnimationControllerTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RemoteAnimationControllerTest.java
@@ -25,6 +25,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.verifyNoMoreInteractions;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+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.assertNotNull;
@@ -97,7 +99,8 @@ public class RemoteAnimationControllerTest extends WindowTestsBase {
try {
final AnimationAdapter adapter = mController.createRemoteAnimationRecord(win.mActivityRecord,
new Point(50, 100), new Rect(50, 100, 150, 150), null).mAdapter;
- adapter.startAnimation(mMockLeash, mMockTransaction, mFinishedCallback);
+ adapter.startAnimation(mMockLeash, mMockTransaction, ANIMATION_TYPE_APP_TRANSITION,
+ mFinishedCallback);
mController.goodToGo();
mWm.mAnimator.executeAfterPrepareSurfacesRunnables();
final ArgumentCaptor<RemoteAnimationTarget[]> appsCaptor =
@@ -122,7 +125,8 @@ public class RemoteAnimationControllerTest extends WindowTestsBase {
verify(mMockTransaction).setWindowCrop(mMockLeash, 100, 50);
finishedCaptor.getValue().onAnimationFinished();
- verify(mFinishedCallback).onAnimationFinished(eq(adapter));
+ verify(mFinishedCallback).onAnimationFinished(eq(ANIMATION_TYPE_APP_TRANSITION),
+ eq(adapter));
} finally {
mDisplayContent.mOpeningApps.clear();
}
@@ -133,7 +137,8 @@ public class RemoteAnimationControllerTest extends WindowTestsBase {
final WindowState win = createWindow(null /* parent */, TYPE_BASE_APPLICATION, "testWin");
final AnimationAdapter adapter = mController.createRemoteAnimationRecord(win.mActivityRecord,
new Point(50, 100), new Rect(50, 100, 150, 150), null).mAdapter;
- adapter.startAnimation(mMockLeash, mMockTransaction, mFinishedCallback);
+ adapter.startAnimation(mMockLeash, mMockTransaction, ANIMATION_TYPE_APP_TRANSITION,
+ mFinishedCallback);
mController.goodToGo();
adapter.onAnimationCancelled(mMockLeash);
@@ -146,14 +151,16 @@ public class RemoteAnimationControllerTest extends WindowTestsBase {
final WindowState win = createWindow(null /* parent */, TYPE_BASE_APPLICATION, "testWin");
final AnimationAdapter adapter = mController.createRemoteAnimationRecord(win.mActivityRecord,
new Point(50, 100), new Rect(50, 100, 150, 150), null).mAdapter;
- adapter.startAnimation(mMockLeash, mMockTransaction, mFinishedCallback);
+ adapter.startAnimation(mMockLeash, mMockTransaction, ANIMATION_TYPE_APP_TRANSITION,
+ mFinishedCallback);
mController.goodToGo();
mClock.fastForward(2500);
mHandler.timeAdvance();
verify(mMockRunner).onAnimationCancelled();
- verify(mFinishedCallback).onAnimationFinished(eq(adapter));
+ verify(mFinishedCallback).onAnimationFinished(eq(ANIMATION_TYPE_APP_TRANSITION),
+ eq(adapter));
}
@Test
@@ -164,7 +171,8 @@ public class RemoteAnimationControllerTest extends WindowTestsBase {
"testWin");
final AnimationAdapter adapter = mController.createRemoteAnimationRecord(
win.mActivityRecord, new Point(50, 100), new Rect(50, 100, 150, 150), null).mAdapter;
- adapter.startAnimation(mMockLeash, mMockTransaction, mFinishedCallback);
+ adapter.startAnimation(mMockLeash, mMockTransaction, ANIMATION_TYPE_APP_TRANSITION,
+ mFinishedCallback);
mController.goodToGo();
mClock.fastForward(2500);
@@ -176,7 +184,8 @@ public class RemoteAnimationControllerTest extends WindowTestsBase {
mHandler.timeAdvance();
verify(mMockRunner).onAnimationCancelled();
- verify(mFinishedCallback).onAnimationFinished(eq(adapter));
+ verify(mFinishedCallback).onAnimationFinished(eq(ANIMATION_TYPE_APP_TRANSITION),
+ eq(adapter));
} finally {
mWm.setAnimationScale(2, 1.0f);
}
@@ -205,7 +214,8 @@ public class RemoteAnimationControllerTest extends WindowTestsBase {
new Point(50, 100), new Rect(50, 100, 150, 150), null);
final AnimationAdapter adapter = mController.createRemoteAnimationRecord(win2.mActivityRecord,
new Point(50, 100), new Rect(50, 100, 150, 150), null).mAdapter;
- adapter.startAnimation(mMockLeash, mMockTransaction, mFinishedCallback);
+ adapter.startAnimation(mMockLeash, mMockTransaction, ANIMATION_TYPE_APP_TRANSITION,
+ mFinishedCallback);
mController.goodToGo();
mWm.mAnimator.executeAfterPrepareSurfacesRunnables();
final ArgumentCaptor<RemoteAnimationTarget[]> appsCaptor =
@@ -225,11 +235,13 @@ public class RemoteAnimationControllerTest extends WindowTestsBase {
final WindowState win = createWindow(null /* parent */, TYPE_BASE_APPLICATION, "testWin");
final AnimationAdapter adapter = mController.createRemoteAnimationRecord(win.mActivityRecord,
new Point(50, 100), new Rect(50, 100, 150, 150), null).mAdapter;
- adapter.startAnimation(mMockLeash, mMockTransaction, mFinishedCallback);
+ adapter.startAnimation(mMockLeash, mMockTransaction, ANIMATION_TYPE_APP_TRANSITION,
+ mFinishedCallback);
win.mActivityRecord.removeImmediately();
mController.goodToGo();
verifyNoMoreInteractionsExceptAsBinder(mMockRunner);
- verify(mFinishedCallback).onAnimationFinished(eq(adapter));
+ verify(mFinishedCallback).onAnimationFinished(eq(ANIMATION_TYPE_APP_TRANSITION),
+ eq(adapter));
}
@Test
@@ -242,9 +254,10 @@ public class RemoteAnimationControllerTest extends WindowTestsBase {
new Rect(0, 0, 200, 200));
assertNotNull(record.mThumbnailAdapter);
((AnimationAdapter) record.mAdapter)
- .startAnimation(mMockLeash, mMockTransaction, mFinishedCallback);
+ .startAnimation(mMockLeash, mMockTransaction, ANIMATION_TYPE_WINDOW_ANIMATION,
+ mFinishedCallback);
((AnimationAdapter) record.mThumbnailAdapter).startAnimation(mMockThumbnailLeash,
- mMockTransaction, mThumbnailFinishedCallback);
+ mMockTransaction, ANIMATION_TYPE_WINDOW_ANIMATION, mThumbnailFinishedCallback);
mController.goodToGo();
mWm.mAnimator.executeAfterPrepareSurfacesRunnables();
final ArgumentCaptor<RemoteAnimationTarget[]> appsCaptor =
@@ -272,8 +285,10 @@ public class RemoteAnimationControllerTest extends WindowTestsBase {
verify(mMockTransaction).setPosition(mMockThumbnailLeash, 0, 0);
finishedCaptor.getValue().onAnimationFinished();
- verify(mFinishedCallback).onAnimationFinished(eq(record.mAdapter));
- verify(mThumbnailFinishedCallback).onAnimationFinished(eq(record.mThumbnailAdapter));
+ verify(mFinishedCallback).onAnimationFinished(eq(ANIMATION_TYPE_WINDOW_ANIMATION),
+ eq(record.mAdapter));
+ verify(mThumbnailFinishedCallback).onAnimationFinished(
+ eq(ANIMATION_TYPE_WINDOW_ANIMATION), eq(record.mThumbnailAdapter));
} finally {
mDisplayContent.mChangingApps.clear();
}
@@ -290,7 +305,8 @@ public class RemoteAnimationControllerTest extends WindowTestsBase {
try {
final AnimationAdapter adapter = mController.createRemoteAnimationRecord(win.mActivityRecord,
new Point(50, 100), new Rect(50, 100, 150, 150), null).mAdapter;
- adapter.startAnimation(mMockLeash, mMockTransaction, mFinishedCallback);
+ adapter.startAnimation(mMockLeash, mMockTransaction, ANIMATION_TYPE_APP_TRANSITION,
+ mFinishedCallback);
mController.goodToGo();
mWm.mAnimator.executeAfterPrepareSurfacesRunnables();
final ArgumentCaptor<RemoteAnimationTarget[]> appsCaptor =
@@ -318,7 +334,8 @@ public class RemoteAnimationControllerTest extends WindowTestsBase {
try {
final AnimationAdapter adapter = mController.createRemoteAnimationRecord(win.mActivityRecord,
new Point(50, 100), new Rect(50, 100, 150, 150), null).mAdapter;
- adapter.startAnimation(mMockLeash, mMockTransaction, mFinishedCallback);
+ adapter.startAnimation(mMockLeash, mMockTransaction, ANIMATION_TYPE_APP_TRANSITION,
+ mFinishedCallback);
mController.goodToGo();
mWm.mAnimator.executeAfterPrepareSurfacesRunnables();
final ArgumentCaptor<RemoteAnimationTarget[]> appsCaptor =
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 2894241356f7..552c476613b2 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,8 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
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.verifyZeroInteractions;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_RECENTS;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -39,6 +41,7 @@ import android.view.SurfaceSession;
import androidx.test.filters.SmallTest;
import com.android.server.wm.SurfaceAnimator.Animatable;
+import com.android.server.wm.SurfaceAnimator.AnimationType;
import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
import org.junit.After;
@@ -89,25 +92,30 @@ public class SurfaceAnimatorTest extends WindowTestsBase {
@Test
public void testRunAnimation() {
- mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */);
+ mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */,
+ ANIMATION_TYPE_RECENTS);
final ArgumentCaptor<OnAnimationFinishedCallback> callbackCaptor = ArgumentCaptor.forClass(
OnAnimationFinishedCallback.class);
assertAnimating(mAnimatable);
verify(mTransaction).reparent(eq(mAnimatable.mSurface), eq(mAnimatable.mLeash));
- verify(mSpec).startAnimation(any(), any(), callbackCaptor.capture());
+ verify(mSpec).startAnimation(any(), any(), eq(ANIMATION_TYPE_RECENTS),
+ callbackCaptor.capture());
- callbackCaptor.getValue().onAnimationFinished(mSpec);
+ callbackCaptor.getValue().onAnimationFinished(ANIMATION_TYPE_RECENTS, mSpec);
assertNotAnimating(mAnimatable);
assertTrue(mAnimatable.mFinishedCallbackCalled);
+ assertEquals(ANIMATION_TYPE_RECENTS, mAnimatable.mFinishedAnimationType);
verify(mTransaction).remove(eq(mAnimatable.mLeash));
// TODO: Verify reparenting once we use mPendingTransaction to reparent it back
}
@Test
public void testOverrideAnimation() {
- mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */);
+ mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */,
+ ANIMATION_TYPE_APP_TRANSITION);
final SurfaceControl firstLeash = mAnimatable.mLeash;
- mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec2, true /* hidden */);
+ mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec2, true /* hidden */,
+ ANIMATION_TYPE_APP_TRANSITION);
verify(mTransaction).remove(eq(firstLeash));
assertFalse(mAnimatable.mFinishedCallbackCalled);
@@ -115,34 +123,40 @@ public class SurfaceAnimatorTest extends WindowTestsBase {
final ArgumentCaptor<OnAnimationFinishedCallback> callbackCaptor = ArgumentCaptor.forClass(
OnAnimationFinishedCallback.class);
assertAnimating(mAnimatable);
- verify(mSpec).startAnimation(any(), any(), callbackCaptor.capture());
+ verify(mSpec).startAnimation(any(), any(), eq(ANIMATION_TYPE_APP_TRANSITION),
+ callbackCaptor.capture());
// First animation was finished, but this shouldn't cancel the second animation
- callbackCaptor.getValue().onAnimationFinished(mSpec);
+ callbackCaptor.getValue().onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION, mSpec);
assertTrue(mAnimatable.mSurfaceAnimator.isAnimating());
// Second animation was finished
- verify(mSpec2).startAnimation(any(), any(), callbackCaptor.capture());
- callbackCaptor.getValue().onAnimationFinished(mSpec2);
+ verify(mSpec2).startAnimation(any(), any(), eq(ANIMATION_TYPE_APP_TRANSITION),
+ callbackCaptor.capture());
+ callbackCaptor.getValue().onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION, mSpec2);
assertNotAnimating(mAnimatable);
assertTrue(mAnimatable.mFinishedCallbackCalled);
+ assertEquals(ANIMATION_TYPE_APP_TRANSITION, mAnimatable.mFinishedAnimationType);
}
@Test
public void testCancelAnimation() {
- mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */);
+ mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */,
+ ANIMATION_TYPE_APP_TRANSITION);
assertAnimating(mAnimatable);
mAnimatable.mSurfaceAnimator.cancelAnimation();
assertNotAnimating(mAnimatable);
verify(mSpec).onAnimationCancelled(any());
assertTrue(mAnimatable.mFinishedCallbackCalled);
+ assertEquals(ANIMATION_TYPE_APP_TRANSITION, mAnimatable.mFinishedAnimationType);
verify(mTransaction).remove(eq(mAnimatable.mLeash));
}
@Test
public void testCancelWithNullFinishCallbackAnimation() {
SurfaceAnimator animator = new SurfaceAnimator(mAnimatable, null, mWm);
- animator.startAnimation(mTransaction, mSpec, true /* hidden */);
+ animator.startAnimation(mTransaction, mSpec, true /* hidden */,
+ ANIMATION_TYPE_APP_TRANSITION);
assertTrue(animator.isAnimating());
assertNotNull(animator.getAnimation());
animator.cancelAnimation();
@@ -155,32 +169,37 @@ public class SurfaceAnimatorTest extends WindowTestsBase {
@Test
public void testDelayingAnimationStart() {
mAnimatable.mSurfaceAnimator.startDelayingAnimationStart();
- mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */);
+ mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */,
+ ANIMATION_TYPE_APP_TRANSITION);
verifyZeroInteractions(mSpec);
assertAnimating(mAnimatable);
assertTrue(mAnimatable.mSurfaceAnimator.isAnimationStartDelayed());
mAnimatable.mSurfaceAnimator.endDelayingAnimationStart();
- verify(mSpec).startAnimation(any(), any(), any());
+ verify(mSpec).startAnimation(any(), any(), eq(ANIMATION_TYPE_APP_TRANSITION), any());
}
@Test
public void testDelayingAnimationStartAndCancelled() {
mAnimatable.mSurfaceAnimator.startDelayingAnimationStart();
- mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */);
+ mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */,
+ ANIMATION_TYPE_APP_TRANSITION);
mAnimatable.mSurfaceAnimator.cancelAnimation();
verifyZeroInteractions(mSpec);
assertNotAnimating(mAnimatable);
assertTrue(mAnimatable.mFinishedCallbackCalled);
+ assertEquals(ANIMATION_TYPE_APP_TRANSITION, mAnimatable.mFinishedAnimationType);
verify(mTransaction).remove(eq(mAnimatable.mLeash));
}
@Test
public void testTransferAnimation() {
- mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */);
+ mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */,
+ ANIMATION_TYPE_APP_TRANSITION);
final ArgumentCaptor<OnAnimationFinishedCallback> callbackCaptor = ArgumentCaptor.forClass(
OnAnimationFinishedCallback.class);
- verify(mSpec).startAnimation(any(), any(), callbackCaptor.capture());
+ verify(mSpec).startAnimation(any(), any(), eq(ANIMATION_TYPE_APP_TRANSITION),
+ callbackCaptor.capture());
final SurfaceControl leash = mAnimatable.mLeash;
mAnimatable2.mSurfaceAnimator.transferAnimation(mAnimatable.mSurfaceAnimator);
@@ -188,15 +207,17 @@ public class SurfaceAnimatorTest extends WindowTestsBase {
assertAnimating(mAnimatable2);
assertEquals(leash, mAnimatable2.mSurfaceAnimator.mLeash);
verify(mTransaction, never()).remove(eq(leash));
- callbackCaptor.getValue().onAnimationFinished(mSpec);
+ callbackCaptor.getValue().onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION, mSpec);
assertNotAnimating(mAnimatable2);
assertTrue(mAnimatable2.mFinishedCallbackCalled);
+ assertEquals(ANIMATION_TYPE_APP_TRANSITION, mAnimatable.mFinishedAnimationType);
verify(mTransaction).remove(eq(leash));
}
@Test
public void testOnAnimationLeashLostWhenAnimatableParentSurfaceControlNull() {
- mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */);
+ mAnimatable.mSurfaceAnimator.startAnimation(mTransaction, mSpec, true /* hidden */,
+ ANIMATION_TYPE_APP_TRANSITION);
spyOn(mAnimatable);
// Verify onAnimationLeashLost will be called even animatable's parent surface control lost.
@@ -215,13 +236,14 @@ public class SurfaceAnimatorTest extends WindowTestsBase {
final OnAnimationFinishedCallback onFinishedCallback = startDeferFinishAnimatable(mSpec);
// Finish the animation but then make sure we are deferring.
- onFinishedCallback.onAnimationFinished(mSpec);
+ 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));
}
@@ -229,7 +251,7 @@ public class SurfaceAnimatorTest extends WindowTestsBase {
public void testDeferFinishDoNotFinishNextAnimation() {
// Start the first animation.
final OnAnimationFinishedCallback onFinishedCallback = startDeferFinishAnimatable(mSpec);
- onFinishedCallback.onAnimationFinished(mSpec);
+ onFinishedCallback.onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION, mSpec);
// The callback is the resetAndInvokeFinish in {@link SurfaceAnimator#getFinishedCallback}.
final Runnable firstDeferFinishCallback = mDeferFinishAnimatable.mEndDeferFinishCallback;
@@ -247,11 +269,12 @@ public class SurfaceAnimatorTest extends WindowTestsBase {
private OnAnimationFinishedCallback startDeferFinishAnimatable(AnimationAdapter anim) {
mDeferFinishAnimatable.mSurfaceAnimator.startAnimation(mTransaction, anim,
- true /* hidden */);
+ true /* hidden */, ANIMATION_TYPE_APP_TRANSITION);
final ArgumentCaptor<OnAnimationFinishedCallback> callbackCaptor = ArgumentCaptor.forClass(
OnAnimationFinishedCallback.class);
assertAnimating(mDeferFinishAnimatable);
- verify(anim).startAnimation(any(), any(), callbackCaptor.capture());
+ verify(anim).startAnimation(any(), any(), eq(ANIMATION_TYPE_APP_TRANSITION),
+ callbackCaptor.capture());
return callbackCaptor.getValue();
}
@@ -274,6 +297,7 @@ public class SurfaceAnimatorTest extends WindowTestsBase {
final SurfaceAnimator mSurfaceAnimator;
SurfaceControl mLeash;
boolean mFinishedCallbackCalled;
+ @AnimationType int mFinishedAnimationType;
MyAnimatable(WindowManagerService wm, SurfaceSession session, Transaction transaction) {
mSession = session;
@@ -343,7 +367,11 @@ public class SurfaceAnimatorTest extends WindowTestsBase {
return 1;
}
- private final Runnable mFinishedCallback = () -> mFinishedCallbackCalled = true;
+ private final SurfaceAnimator.OnAnimationFinishedCallback mFinishedCallback = (
+ type, anim) -> {
+ mFinishedCallbackCalled = true;
+ mFinishedAnimationType = type;
+ };
}
private static class DeferFinishAnimatable extends MyAnimatable {
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java
index c9fd79fb4e39..7172a1b14244 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskOrganizerTests.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,45 +16,53 @@
package com.android.server.wm;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
+import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
+import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
+import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
+import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
-import android.graphics.Point;
+import android.app.ActivityManager.RunningTaskInfo;
+import android.app.ActivityManager.StackInfo;
+import android.content.res.Configuration;
import android.graphics.Rect;
-import android.platform.test.annotations.Presubmit;
import android.os.Binder;
import android.os.RemoteException;
+import android.platform.test.annotations.Presubmit;
+import android.view.Display;
import android.view.ITaskOrganizer;
+import android.view.IWindowContainer;
import android.view.SurfaceControl;
-import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
+import android.view.WindowContainerTransaction;
import androidx.test.filters.SmallTest;
import org.junit.Test;
import org.junit.runner.RunWith;
+import java.util.ArrayList;
+import java.util.List;
+
/**
- * Test class for {@link TaskOrganizer}.
+ * Test class for {@link ITaskOrganizer} and {@link android.app.ITaskOrganizerController}.
*
* Build/Install/Run:
* atest WmTests:TaskOrganizerTests
@@ -63,23 +71,28 @@ import org.junit.runner.RunWith;
@Presubmit
@RunWith(WindowTestRunner.class)
public class TaskOrganizerTests extends WindowTestsBase {
- private ITaskOrganizer makeAndRegisterMockOrganizer() {
+ private ITaskOrganizer registerMockOrganizer(int windowingMode) {
final ITaskOrganizer organizer = mock(ITaskOrganizer.class);
when(organizer.asBinder()).thenReturn(new Binder());
- mWm.mAtmService.registerTaskOrganizer(organizer, WINDOWING_MODE_PINNED);
+ mWm.mAtmService.mTaskOrganizerController.registerTaskOrganizer(
+ organizer, windowingMode);
return organizer;
}
+ private ITaskOrganizer registerMockOrganizer() {
+ return registerMockOrganizer(WINDOWING_MODE_MULTI_WINDOW);
+ }
+
@Test
public void testAppearVanish() throws RemoteException {
final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
final Task task = createTaskInStack(stack, 0 /* userId */);
- final ITaskOrganizer organizer = makeAndRegisterMockOrganizer();
+ final ITaskOrganizer organizer = registerMockOrganizer();
task.setTaskOrganizer(organizer);
- verify(organizer).taskAppeared(any(), any());
+ verify(organizer).taskAppeared(any());
task.removeImmediately();
verify(organizer).taskVanished(any());
@@ -89,24 +102,38 @@ public class TaskOrganizerTests extends WindowTestsBase {
public void testSwapOrganizer() throws RemoteException {
final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
final Task task = createTaskInStack(stack, 0 /* userId */);
- final ITaskOrganizer organizer = makeAndRegisterMockOrganizer();
- final ITaskOrganizer organizer2 = makeAndRegisterMockOrganizer();
+ final ITaskOrganizer organizer = registerMockOrganizer(WINDOWING_MODE_MULTI_WINDOW);
+ final ITaskOrganizer organizer2 = registerMockOrganizer(WINDOWING_MODE_PINNED);
task.setTaskOrganizer(organizer);
- verify(organizer).taskAppeared(any(), any());
+ verify(organizer).taskAppeared(any());
task.setTaskOrganizer(organizer2);
verify(organizer).taskVanished(any());
- verify(organizer2).taskAppeared(any(), any());
+ verify(organizer2).taskAppeared(any());
+ }
+
+ @Test
+ public void testSwapWindowingModes() throws RemoteException {
+ final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
+ final Task task = createTaskInStack(stack, 0 /* userId */);
+ final ITaskOrganizer organizer = registerMockOrganizer(WINDOWING_MODE_MULTI_WINDOW);
+ final ITaskOrganizer organizer2 = registerMockOrganizer(WINDOWING_MODE_PINNED);
+
+ stack.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+ verify(organizer).taskAppeared(any());
+ stack.setWindowingMode(WINDOWING_MODE_PINNED);
+ verify(organizer).taskVanished(any());
+ verify(organizer2).taskAppeared(any());
}
@Test
public void testClearOrganizer() throws RemoteException {
final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
final Task task = createTaskInStack(stack, 0 /* userId */);
- final ITaskOrganizer organizer = makeAndRegisterMockOrganizer();
+ final ITaskOrganizer organizer = registerMockOrganizer();
stack.setTaskOrganizer(organizer);
- verify(organizer).taskAppeared(any(), any());
+ verify(organizer).taskAppeared(any());
assertTrue(stack.isControlledByTaskOrganizer());
stack.setTaskOrganizer(null);
@@ -115,16 +142,271 @@ public class TaskOrganizerTests extends WindowTestsBase {
}
@Test
+ public void testUnregisterOrganizer() throws RemoteException {
+ final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
+ final Task task = createTaskInStack(stack, 0 /* userId */);
+ final ITaskOrganizer organizer = registerMockOrganizer();
+
+ stack.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+ verify(organizer).taskAppeared(any());
+ assertTrue(stack.isControlledByTaskOrganizer());
+
+ mWm.mAtmService.mTaskOrganizerController.unregisterTaskOrganizer(organizer);
+ verify(organizer).taskVanished(any());
+ assertFalse(stack.isControlledByTaskOrganizer());
+ }
+
+ @Test
+ public void testUnregisterOrganizerReturnsRegistrationToPrevious() throws RemoteException {
+ final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
+ final Task task = createTaskInStack(stack, 0 /* userId */);
+ final ActivityStack stack2 = createTaskStackOnDisplay(mDisplayContent);
+ final Task task2 = createTaskInStack(stack2, 0 /* userId */);
+ final ActivityStack stack3 = createTaskStackOnDisplay(mDisplayContent);
+ final Task task3 = createTaskInStack(stack3, 0 /* userId */);
+ final ITaskOrganizer organizer = registerMockOrganizer(WINDOWING_MODE_MULTI_WINDOW);
+
+ // First organizer is registered, verify a task appears when changing windowing mode
+ stack.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+ verify(organizer, times(1)).taskAppeared(any());
+ assertTrue(stack.isControlledByTaskOrganizer());
+
+ // Now we replace the registration and1 verify the new organizer receives tasks
+ // newly entering the windowing mode.
+ final ITaskOrganizer organizer2 = registerMockOrganizer(WINDOWING_MODE_MULTI_WINDOW);
+ stack2.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+ verify(organizer2).taskAppeared(any());
+ assertTrue(stack2.isControlledByTaskOrganizer());
+
+ // Now we unregister the second one, the first one should automatically be reregistered
+ // so we verify that it's now seeing changes.
+ mWm.mAtmService.mTaskOrganizerController.unregisterTaskOrganizer(organizer2);
+
+ stack3.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+ verify(organizer, times(2)).taskAppeared(any());
+ assertTrue(stack3.isControlledByTaskOrganizer());
+ }
+
+ @Test
public void testRegisterTaskOrganizerStackWindowingModeChanges() throws RemoteException {
- final ITaskOrganizer organizer = makeAndRegisterMockOrganizer();
+ final ITaskOrganizer organizer = registerMockOrganizer(WINDOWING_MODE_PINNED);
final ActivityStack stack = createTaskStackOnDisplay(mDisplayContent);
final Task task = createTaskInStack(stack, 0 /* userId */);
final Task task2 = createTaskInStack(stack, 0 /* userId */);
stack.setWindowingMode(WINDOWING_MODE_PINNED);
- verify(organizer, times(1)).taskAppeared(any(), any());
+ verify(organizer, times(1)).taskAppeared(any());
stack.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
verify(organizer, times(1)).taskVanished(any());
}
+
+ @Test
+ public void testTaskTransaction() {
+ removeGlobalMinSizeRestriction();
+ final ActivityStack stack = new ActivityTestsBase.StackBuilder(mWm.mRoot)
+ .setWindowingMode(WINDOWING_MODE_FREEFORM).build();
+ final Task task = stack.getTopMostTask();
+ WindowContainerTransaction t = new WindowContainerTransaction();
+ Rect newBounds = new Rect(10, 10, 100, 100);
+ t.setBounds(task.mRemoteToken, new Rect(10, 10, 100, 100));
+ mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+ assertEquals(newBounds, task.getBounds());
+ }
+
+ @Test
+ public void testStackTransaction() {
+ removeGlobalMinSizeRestriction();
+ final ActivityStack stack = new ActivityTestsBase.StackBuilder(mWm.mRoot)
+ .setWindowingMode(WINDOWING_MODE_FREEFORM).build();
+ StackInfo info =
+ mWm.mAtmService.getStackInfo(WINDOWING_MODE_FREEFORM, ACTIVITY_TYPE_STANDARD);
+ WindowContainerTransaction t = new WindowContainerTransaction();
+ assertEquals(stack.mRemoteToken, info.stackToken);
+ Rect newBounds = new Rect(10, 10, 100, 100);
+ t.setBounds(info.stackToken, new Rect(10, 10, 100, 100));
+ mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+ assertEquals(newBounds, stack.getBounds());
+ }
+
+ @Test
+ public void testContainerChanges() {
+ removeGlobalMinSizeRestriction();
+ final ActivityStack stack = new ActivityTestsBase.StackBuilder(mWm.mRoot)
+ .setWindowingMode(WINDOWING_MODE_FREEFORM).build();
+ final Task task = stack.getTopMostTask();
+ WindowContainerTransaction t = new WindowContainerTransaction();
+ assertTrue(task.isFocusable());
+ t.setFocusable(stack.mRemoteToken, false);
+ mWm.mAtmService.mTaskOrganizerController.applyContainerTransaction(t, null);
+ assertFalse(task.isFocusable());
+ }
+
+ @Test
+ public void testCreateDeleteRootTasks() {
+ RunningTaskInfo info1 = mWm.mAtmService.mTaskOrganizerController.createRootTask(
+ Display.DEFAULT_DISPLAY,
+ WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
+ assertEquals(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY,
+ info1.configuration.windowConfiguration.getWindowingMode());
+ assertEquals(ACTIVITY_TYPE_UNDEFINED, info1.topActivityType);
+
+ RunningTaskInfo info2 = mWm.mAtmService.mTaskOrganizerController.createRootTask(
+ Display.DEFAULT_DISPLAY,
+ WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
+ assertEquals(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY,
+ info2.configuration.windowConfiguration.getWindowingMode());
+ assertEquals(ACTIVITY_TYPE_UNDEFINED, info2.topActivityType);
+
+ DisplayContent dc = mWm.mRoot.getDisplayContent(Display.DEFAULT_DISPLAY);
+ List<TaskTile> infos = getTaskTiles(dc);
+ assertEquals(2, infos.size());
+
+ assertTrue(mWm.mAtmService.mTaskOrganizerController.deleteRootTask(info1.token));
+ infos = getTaskTiles(dc);
+ assertEquals(1, infos.size());
+ assertEquals(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY, infos.get(0).getWindowingMode());
+ }
+
+ @Test
+ public void testTileAddRemoveChild() {
+ RunningTaskInfo info1 = mWm.mAtmService.mTaskOrganizerController.createRootTask(
+ mDisplayContent.mDisplayId, WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
+
+ final ActivityStack stack = createTaskStackOnDisplay(
+ WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_STANDARD, mDisplayContent);
+ assertEquals(mDisplayContent.getWindowingMode(), stack.getWindowingMode());
+ TaskTile tile1 = TaskTile.forToken(info1.token.asBinder());
+ tile1.addChild(stack, 0 /* index */);
+ assertEquals(info1.configuration.windowConfiguration.getWindowingMode(),
+ stack.getWindowingMode());
+
+ // Info should reflect new membership
+ List<TaskTile> tiles = getTaskTiles(mDisplayContent);
+ info1 = new RunningTaskInfo();
+ tiles.get(0).fillTaskInfo(info1);
+ assertEquals(ACTIVITY_TYPE_STANDARD, info1.topActivityType);
+
+ // Children inherit configuration
+ Rect newSize = new Rect(10, 10, 300, 300);
+ Configuration c = new Configuration(tile1.getRequestedOverrideConfiguration());
+ c.windowConfiguration.setBounds(newSize);
+ tile1.onRequestedOverrideConfigurationChanged(c);
+ assertEquals(newSize, stack.getBounds());
+
+ tile1.removeChild(stack);
+ assertEquals(mDisplayContent.getWindowingMode(), stack.getWindowingMode());
+ info1 = new RunningTaskInfo();
+ tiles = getTaskTiles(mDisplayContent);
+ tiles.get(0).fillTaskInfo(info1);
+ assertEquals(ACTIVITY_TYPE_UNDEFINED, info1.topActivityType);
+ }
+
+ @Test
+ public void testTaskInfoCallback() {
+ final ArrayList<RunningTaskInfo> lastReportedTiles = new ArrayList<>();
+ final boolean[] called = {false};
+ ITaskOrganizer listener = new ITaskOrganizer.Stub() {
+ @Override
+ public void taskAppeared(RunningTaskInfo taskInfo) { }
+
+ @Override
+ public void taskVanished(IWindowContainer container) { }
+
+ @Override
+ public void transactionReady(int id, SurfaceControl.Transaction t) { }
+
+ @Override
+ public void onTaskInfoChanged(RunningTaskInfo info) throws RemoteException {
+ lastReportedTiles.add(info);
+ called[0] = true;
+ }
+ };
+ mWm.mAtmService.mTaskOrganizerController.registerTaskOrganizer(listener,
+ WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
+ RunningTaskInfo info1 = mWm.mAtmService.mTaskOrganizerController.createRootTask(
+ mDisplayContent.mDisplayId, WINDOWING_MODE_SPLIT_SCREEN_SECONDARY);
+ lastReportedTiles.clear();
+ called[0] = false;
+
+ final ActivityStack stack = createTaskStackOnDisplay(
+ WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_STANDARD, mDisplayContent);
+ TaskTile tile1 = TaskTile.forToken(info1.token.asBinder());
+ tile1.addChild(stack, 0 /* index */);
+ assertTrue(called[0]);
+ assertEquals(ACTIVITY_TYPE_STANDARD, lastReportedTiles.get(0).topActivityType);
+
+ lastReportedTiles.clear();
+ called[0] = false;
+ final ActivityStack stack2 = createTaskStackOnDisplay(
+ WINDOWING_MODE_UNDEFINED, ACTIVITY_TYPE_HOME, mDisplayContent);
+ tile1.addChild(stack2, 0 /* index */);
+ assertTrue(called[0]);
+ assertEquals(ACTIVITY_TYPE_HOME, lastReportedTiles.get(0).topActivityType);
+
+ lastReportedTiles.clear();
+ called[0] = false;
+ mDisplayContent.positionStackAtTop(stack, false /* includingParents */);
+ assertTrue(called[0]);
+ assertEquals(ACTIVITY_TYPE_STANDARD, lastReportedTiles.get(0).topActivityType);
+
+ lastReportedTiles.clear();
+ called[0] = false;
+ tile1.removeAllChildren();
+ assertTrue(called[0]);
+ assertEquals(ACTIVITY_TYPE_UNDEFINED, lastReportedTiles.get(0).topActivityType);
+ }
+
+ private List<TaskTile> getTaskTiles(DisplayContent dc) {
+ ArrayList<TaskTile> out = new ArrayList<>();
+ for (int i = dc.getStackCount() - 1; i >= 0; --i) {
+ final Task t = dc.getStackAt(i);
+ if (t instanceof TaskTile) {
+ out.add((TaskTile) t);
+ }
+ }
+ return out;
+ }
+
+ @Test
+ public void testTrivialBLASTCallback() throws RemoteException {
+ final ActivityStack stackController1 = createTaskStackOnDisplay(mDisplayContent);
+ final Task task = createTaskInStack(stackController1, 0 /* userId */);
+ final ITaskOrganizer organizer = registerMockOrganizer();
+
+ BLASTSyncEngine bse = new BLASTSyncEngine();
+
+ BLASTSyncEngine.TransactionReadyListener transactionListener =
+ mock(BLASTSyncEngine.TransactionReadyListener.class);
+
+ int id = bse.startSyncSet(transactionListener);
+ bse.addToSyncSet(id, task);
+ bse.setReady(id);
+ // Since this task has no windows the sync is trivial and completes immediately.
+ verify(transactionListener)
+ .transactionReady(anyInt(), any());
+ }
+
+ @Test
+ public void testBLASTCallbackWithWindow() {
+ final ActivityStack stackController1 = createTaskStackOnDisplay(mDisplayContent);
+ final Task task = createTaskInStack(stackController1, 0 /* userId */);
+ final ITaskOrganizer organizer = registerMockOrganizer();
+ final WindowState w = createAppWindow(task, TYPE_APPLICATION, "Enlightened Window");
+
+ BLASTSyncEngine bse = new BLASTSyncEngine();
+
+ BLASTSyncEngine.TransactionReadyListener transactionListener =
+ mock(BLASTSyncEngine.TransactionReadyListener.class);
+
+ int id = bse.startSyncSet(transactionListener);
+ bse.addToSyncSet(id, task);
+ bse.setReady(id);
+ // Since we have a window we have to wait for it to draw to finish sync.
+ verify(transactionListener, never())
+ .transactionReady(anyInt(), any());
+ w.finishDrawing(null);
+ verify(transactionListener)
+ .transactionReady(anyInt(), any());
+ }
}
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 05d048d360ea..4a87701e3c4b 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowContainerTests.java
@@ -34,6 +34,7 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION;
import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN;
import static com.android.server.wm.WindowContainer.AnimationFlags.PARENTS;
import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION;
@@ -61,6 +62,8 @@ import android.view.SurfaceSession;
import androidx.test.filters.SmallTest;
+import com.android.server.wm.SurfaceAnimator.OnAnimationFinishedCallback;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
@@ -829,7 +832,8 @@ public class WindowContainerTests extends WindowTestsBase {
wc.getDisplayContent().mAppTransition.overridePendingAppTransitionRemote(adapter);
spyOn(wc);
doReturn(true).when(wc).okToAnimate();
- final Runnable onAnimationFinishedCallback = mock(Runnable.class);
+ final OnAnimationFinishedCallback onAnimationFinishedCallback =
+ mock(OnAnimationFinishedCallback.class);
// Make sure animating state is as expected after applied animation.
assertTrue(wc.applyAnimation(null, TRANSIT_TASK_OPEN, true, false,
@@ -837,16 +841,18 @@ public class WindowContainerTests extends WindowTestsBase {
assertEquals(wc.getTopMostActivity(), act);
assertTrue(wc.isAnimating());
assertTrue(act.isAnimating(PARENTS));
- verify(onAnimationFinishedCallback, times(0)).run();
+ verify(onAnimationFinishedCallback, times(0)).onAnimationFinished(
+ eq(ANIMATION_TYPE_APP_TRANSITION), any());
// Make sure animation finish callback will be received and reset animating state after
// animation finish.
wc.getDisplayContent().mAppTransition.goodToGo(TRANSIT_TASK_OPEN, act,
mDisplayContent.mOpeningApps);
- verify(wc).onAnimationFinished();
+ verify(wc).onAnimationFinished(eq(ANIMATION_TYPE_APP_TRANSITION), any());
assertFalse(wc.isAnimating());
assertFalse(act.isAnimating(PARENTS));
- verify(onAnimationFinishedCallback, times(1)).run();
+ verify(onAnimationFinishedCallback, times(1)).onAnimationFinished(
+ eq(ANIMATION_TYPE_APP_TRANSITION), any());
}
/* Used so we can gain access to some protected members of the {@link WindowContainer} class */
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java
new file mode 100644
index 000000000000..35723abb4310
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import android.content.pm.PackageManager;
+import android.platform.test.annotations.Presubmit;
+
+import androidx.test.filters.SmallTest;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+
+@SmallTest
+@Presubmit
+@RunWith(WindowTestRunner.class)
+public class WindowManagerServiceTests extends WindowTestsBase {
+ @Rule
+ public ExpectedException mExpectedException = ExpectedException.none();
+
+ @Test
+ public void testForceShowSystemBarsThrowsExceptionForNonAutomotive() {
+ if (!isAutomotive()) {
+ mExpectedException.expect(UnsupportedOperationException.class);
+
+ mWm.setForceShowSystemBars(true);
+ }
+ }
+
+ @Test
+ public void testForceShowSystemBarsDoesNotThrowExceptionForAutomotiveWithStatusBarPermission() {
+ if (isAutomotive()) {
+ mExpectedException.none();
+
+ mWm.setForceShowSystemBars(true);
+ }
+ }
+
+ private boolean isAutomotive() {
+ return getInstrumentation().getTargetContext().getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_AUTOMOTIVE);
+ }
+}
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 20eab5a45ff1..1ca2e318b0d7 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
@@ -40,6 +40,7 @@ import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentat
import static org.mockito.Mockito.mock;
import android.content.Context;
+import android.content.Intent;
import android.util.Log;
import android.view.Display;
import android.view.DisplayInfo;
@@ -110,7 +111,7 @@ class WindowTestsBase extends SystemServiceTestsBase {
beforeCreateDisplay();
context.getDisplay().getDisplayInfo(mDisplayInfo);
- mDisplayContent = createNewDisplay();
+ mDisplayContent = createNewDisplay(true /* supportIme */);
// Set-up some common windows.
mCommonWindows = new HashSet<>();
@@ -340,6 +341,7 @@ class WindowTestsBase extends SystemServiceTestsBase {
.setWindowingMode(windowingMode)
.setActivityType(activityType)
.setCreateActivity(false)
+ .setIntent(new Intent())
.build();
}
}
@@ -349,16 +351,29 @@ class WindowTestsBase extends SystemServiceTestsBase {
return WindowTestUtils.createTaskInStack(mWm, stack, userId);
}
- /** Creates a {@link DisplayContent} and adds it to the system. */
+ /** Creates a {@link DisplayContent} that supports IME and adds it to the system. */
DisplayContent createNewDisplay() {
- return createNewDisplay(mDisplayInfo);
+ return createNewDisplay(true /* supportIme */);
}
/** Creates a {@link DisplayContent} and adds it to the system. */
+ private DisplayContent createNewDisplay(boolean supportIme) {
+ return createNewDisplay(mDisplayInfo, supportIme);
+ }
+
+ /** Creates a {@link DisplayContent} that supports IME and adds it to the system. */
DisplayContent createNewDisplay(DisplayInfo info) {
+ return createNewDisplay(info, true /* supportIme */);
+ }
+
+ /** Creates a {@link DisplayContent} and adds it to the system. */
+ private DisplayContent createNewDisplay(DisplayInfo info, boolean supportIme) {
final DisplayContent display =
new TestDisplayContent.Builder(mWm.mAtmService, info).build();
- return display.mDisplayContent;
+ final DisplayContent dc = display.mDisplayContent;
+ // this display can show IME.
+ dc.mWmService.mDisplayWindowSettings.setShouldShowImeLocked(dc, supportIme);
+ return dc;
}
/**
@@ -372,7 +387,7 @@ class WindowTestsBase extends SystemServiceTestsBase {
DisplayInfo displayInfo = new DisplayInfo();
displayInfo.copyFrom(mDisplayInfo);
displayInfo.state = displayState;
- return createNewDisplay(displayInfo);
+ return createNewDisplay(displayInfo, true /* supportIme */);
}
/** Creates a {@link com.android.server.wm.WindowTestUtils.TestWindowState} */
@@ -389,7 +404,7 @@ class WindowTestsBase extends SystemServiceTestsBase {
displayInfo.copyFrom(mDisplayInfo);
displayInfo.type = Display.TYPE_VIRTUAL;
displayInfo.ownerUid = SYSTEM_UID;
- return createNewDisplay(displayInfo);
+ return createNewDisplay(displayInfo, false /* supportIme */);
}
/** Sets the default minimum task size to 1 so that tests can use small task sizes */
diff --git a/services/tests/wmtests/src/com/android/server/wm/testing/Assert.java b/services/tests/wmtests/src/com/android/server/wm/testing/Assert.java
new file mode 100644
index 000000000000..1e98277f0f96
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/testing/Assert.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm.testing;
+
+/**
+ * Assertions for WM tests.
+ */
+public class Assert {
+
+ /**
+ * Runs {@code r} and asserts that an exception of type {@code expectedThrowable} is thrown.
+ * @param expectedThrowable the type of throwable that is expected to be thrown
+ * @param r the {@link Runnable} which is run and expected to throw.
+ * @throws AssertionError if {@code r} does not throw, or throws a runnable that is not an
+ * instance of {@code expectedThrowable}.
+ */
+ // TODO: remove once Android migrates to JUnit 4.13, which provides assertThrows
+ public static void assertThrows(Class<? extends Throwable> expectedThrowable, Runnable r) {
+ try {
+ r.run();
+ } catch (Throwable t) {
+ if (expectedThrowable.isInstance(t)) {
+ return;
+ } else if (t instanceof Exception) {
+ throw new AssertionError("Expected " + expectedThrowable
+ + ", but got " + t.getClass(), t);
+ } else {
+ // Re-throw Errors and other non-Exception throwables.
+ throw t;
+ }
+ }
+ throw new AssertionError("Expected " + expectedThrowable + ", but nothing was thrown");
+ }
+}
diff --git a/services/tests/wmtests/src/com/android/server/wm/testing/AssertTest.java b/services/tests/wmtests/src/com/android/server/wm/testing/AssertTest.java
new file mode 100644
index 000000000000..df1276123c5c
--- /dev/null
+++ b/services/tests/wmtests/src/com/android/server/wm/testing/AssertTest.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm.testing;
+
+import static com.android.server.wm.testing.Assert.assertThrows;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+public class AssertTest {
+
+ @Rule
+ public ExpectedException mExpectedException = ExpectedException.none();
+
+ @Test
+ public void assertThrows_runsRunnable() {
+ boolean[] ran = new boolean[] { false };
+ assertThrows(TestException.class, () -> {
+ ran[0] = true;
+ throw new TestException();
+ });
+ assertTrue(ran[0]);
+ }
+
+ @Test
+ public void assertThrows_failsIfNothingThrown() {
+ mExpectedException.expect(AssertionError.class);
+ assertThrows(TestException.class, () -> {
+ });
+ }
+
+ @Test
+ public void assertThrows_failsIfWrongExceptionThrown() {
+ mExpectedException.expect(AssertionError.class);
+ assertThrows(TestException.class, () -> {
+ throw new RuntimeException();
+ });
+ }
+
+ @Test
+ public void assertThrows_succeedsIfGivenExceptionThrown() {
+ assertThrows(TestException.class, () -> {
+ throw new TestException();
+ });
+ }
+
+ @Test
+ public void assertThrows_succeedsIfSubExceptionThrown() {
+ assertThrows(RuntimeException.class, () -> {
+ throw new TestException();
+ });
+ }
+
+ @Test
+ public void assertThrows_rethrowsUnexpectedErrors() {
+ mExpectedException.expect(TestError.class);
+ assertThrows(TestException.class, () -> {
+ throw new TestError();
+ });
+ }
+
+ static class TestException extends RuntimeException {
+ }
+
+ static class TestError extends Error {
+ }
+
+}
diff --git a/services/tests/wmtests/src/com/android/server/wm/utils/WmDisplayCutoutTest.java b/services/tests/wmtests/src/com/android/server/wm/utils/WmDisplayCutoutTest.java
index fb8ba7bffd4c..a283476bfdf0 100644
--- a/services/tests/wmtests/src/com/android/server/wm/utils/WmDisplayCutoutTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/utils/WmDisplayCutoutTest.java
@@ -47,6 +47,7 @@ import org.junit.Test;
@SmallTest
@Presubmit
public class WmDisplayCutoutTest {
+ private static final Rect ZERO_RECT = new Rect();
private final DisplayCutout mCutoutTop = new DisplayCutout(
Insets.of(0, 100, 0, 0),
null /* boundLeft */, new Rect(50, 0, 75, 100) /* boundTop */,
@@ -99,41 +100,204 @@ public class WmDisplayCutoutTest {
}
@Test
- public void computeSafeInsets_top() {
+ public void computeSafeInsets_cutoutTop() {
WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
- fromBoundingRect(0, 0, 100, 20, BOUNDS_POSITION_TOP), 200, 400);
+ fromBoundingRect(80, 0, 120, 20, BOUNDS_POSITION_TOP), 200, 400);
assertEquals(new Rect(0, 20, 0, 0), cutout.getDisplayCutout().getSafeInsets());
}
@Test
- public void computeSafeInsets_left() {
+ public void computeSafeInsets_cutoutLeft() {
WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
- fromBoundingRect(0, 0, 20, 100, BOUNDS_POSITION_LEFT), 400, 200);
+ fromBoundingRect(0, 180, 20, 220, BOUNDS_POSITION_LEFT), 200, 400);
assertEquals(new Rect(20, 0, 0, 0), cutout.getDisplayCutout().getSafeInsets());
}
@Test
- public void computeSafeInsets_bottom() {
+ public void computeSafeInsets_cutoutBottom() {
WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
- fromBoundingRect(0, 180, 100, 200, BOUNDS_POSITION_BOTTOM), 100, 200);
+ fromBoundingRect(80, 380, 120, 400, BOUNDS_POSITION_BOTTOM), 200, 400);
assertEquals(new Rect(0, 0, 0, 20), cutout.getDisplayCutout().getSafeInsets());
}
@Test
- public void computeSafeInsets_right() {
+ public void computeSafeInsets_cutoutRight() {
WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
- fromBoundingRect(180, 0, 200, 100, BOUNDS_POSITION_RIGHT), 200, 100);
+ fromBoundingRect(180, 180, 200, 220, BOUNDS_POSITION_RIGHT), 200, 400);
assertEquals(new Rect(0, 0, 20, 0), cutout.getDisplayCutout().getSafeInsets());
}
@Test
+ public void computeSafeInsets_topLeftCornerCutout_portrait() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ fromBoundingRect(0, 0, 20, 20, BOUNDS_POSITION_TOP), 200, 400);
+
+ assertEquals(new Rect(0, 20, 0, 0), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_topRightCornerCutout_portrait() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ fromBoundingRect(180, 0, 200, 20, BOUNDS_POSITION_TOP), 200, 400);
+
+ assertEquals(new Rect(0, 20, 0, 0), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_bottomLeftCornerCutout_portrait() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ fromBoundingRect(0, 380, 20, 400, BOUNDS_POSITION_BOTTOM), 200, 400);
+
+ assertEquals(new Rect(0, 0, 0, 20), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_bottomRightCornerCutout_portrait() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ fromBoundingRect(180, 380, 200, 400, BOUNDS_POSITION_BOTTOM), 200, 400);
+
+ assertEquals(new Rect(0, 0, 0, 20), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_topLeftCornerCutout_landscape() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ fromBoundingRect(0, 0, 20, 20, BOUNDS_POSITION_LEFT), 400, 200);
+
+ assertEquals(new Rect(20, 0, 0, 0), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_topRightCornerCutout_landscape() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ fromBoundingRect(380, 0, 400, 20, BOUNDS_POSITION_RIGHT), 400, 200);
+
+ assertEquals(new Rect(0, 0, 20, 0), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_bottomLeftCornerCutout_landscape() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ fromBoundingRect(0, 180, 20, 200, BOUNDS_POSITION_LEFT), 400, 200);
+
+ assertEquals(new Rect(20, 0, 0, 0), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_bottomRightCornerCutout_landscape() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ fromBoundingRect(380, 180, 400, 200, BOUNDS_POSITION_RIGHT), 400, 200);
+
+ assertEquals(new Rect(0, 0, 20, 0), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_waterfall() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ DisplayCutout.fromBoundsAndWaterfall(
+ new Rect[] {ZERO_RECT, ZERO_RECT, ZERO_RECT, ZERO_RECT},
+ Insets.of(1, 2, 3, 4)),
+ 200, 400);
+
+ assertEquals(new Rect(1, 2, 3, 4), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_cutoutTop_greaterThan_waterfallTop() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ DisplayCutout.fromBoundsAndWaterfall(
+ new Rect[] {ZERO_RECT, new Rect(80, 0, 120, 30), ZERO_RECT, ZERO_RECT},
+ Insets.of(0, 20, 0, 0)),
+ 200, 400);
+
+ assertEquals(new Rect(0, 30, 0, 0), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_cutoutTop_lessThan_waterfallTop() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ DisplayCutout.fromBoundsAndWaterfall(
+ new Rect[] {ZERO_RECT, new Rect(80, 0, 120, 30), ZERO_RECT, ZERO_RECT},
+ Insets.of(0, 40, 0, 0)),
+ 200, 400);
+
+ assertEquals(new Rect(0, 40, 0, 0), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_cutoutLeft_greaterThan_waterfallLeft() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ DisplayCutout.fromBoundsAndWaterfall(
+ new Rect[] {new Rect(0, 180, 30, 220), ZERO_RECT, ZERO_RECT, ZERO_RECT},
+ Insets.of(20, 0, 0, 0)),
+ 200, 400);
+
+ assertEquals(new Rect(30, 0, 0, 0), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_cutoutLeft_lessThan_waterfallLeft() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ DisplayCutout.fromBoundsAndWaterfall(
+ new Rect[] {new Rect(0, 180, 30, 220), ZERO_RECT, ZERO_RECT, ZERO_RECT},
+ Insets.of(40, 0, 0, 0)),
+ 200, 400);
+
+ assertEquals(new Rect(40, 0, 0, 0), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_cutoutBottom_greaterThan_waterfallBottom() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ DisplayCutout.fromBoundsAndWaterfall(
+ new Rect[] {ZERO_RECT, ZERO_RECT, ZERO_RECT, new Rect(80, 370, 120, 400)},
+ Insets.of(0, 0, 0, 20)),
+ 200, 400);
+
+ assertEquals(new Rect(0, 0, 0, 30), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_cutoutBottom_lessThan_waterfallBottom() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ DisplayCutout.fromBoundsAndWaterfall(
+ new Rect[] {ZERO_RECT, ZERO_RECT, ZERO_RECT, new Rect(80, 370, 120, 400)},
+ Insets.of(0, 0, 0, 40)),
+ 200, 400);
+
+ assertEquals(new Rect(0, 0, 0, 40), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_cutoutRight_greaterThan_waterfallRight() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ DisplayCutout.fromBoundsAndWaterfall(
+ new Rect[] {ZERO_RECT, ZERO_RECT, new Rect(170, 180, 200, 220), ZERO_RECT},
+ Insets.of(0, 0, 20, 0)),
+ 200, 400);
+
+ assertEquals(new Rect(0, 0, 30, 0), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
+ public void computeSafeInsets_cutoutRight_lessThan_waterfallRight() {
+ WmDisplayCutout cutout = WmDisplayCutout.computeSafeInsets(
+ DisplayCutout.fromBoundsAndWaterfall(
+ new Rect[] {ZERO_RECT, ZERO_RECT, new Rect(170, 180, 200, 220), ZERO_RECT},
+ Insets.of(0, 0, 40, 0)),
+ 200, 400);
+
+ assertEquals(new Rect(0, 0, 40, 0), cutout.getDisplayCutout().getSafeInsets());
+ }
+
+ @Test
public void computeSafeInsets_bounds() {
- DisplayCutout cutout = WmDisplayCutout.computeSafeInsets(mCutoutTop, 1000,
- 2000).getDisplayCutout();
+ DisplayCutout cutout =
+ WmDisplayCutout.computeSafeInsets(mCutoutTop, 1000, 2000).getDisplayCutout();
assertEquals(mCutoutTop.getBoundingRects(), cutout.getBoundingRects());
}
diff --git a/services/usage/java/com/android/server/usage/TEST_MAPPING b/services/usage/java/com/android/server/usage/TEST_MAPPING
index 7b53d09fdbef..523d5f95c6f3 100644
--- a/services/usage/java/com/android/server/usage/TEST_MAPPING
+++ b/services/usage/java/com/android/server/usage/TEST_MAPPING
@@ -28,6 +28,14 @@
"include-filter": "android.app.usage.cts.UsageStatsTest"
}
]
+ },
+ {
+ "name": "CtsShortcutManagerTestCases",
+ "options": [
+ {
+ "include-filter": "android.content.pm.cts.shortcutmanager.ShortcutManagerUsageTest"
+ }
+ ]
}
]
}
diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java
index 9a18f8cd3a46..48b6e2aaad5c 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsService.java
@@ -60,6 +60,7 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManagerInternal;
import android.content.pm.ParceledListSlice;
+import android.content.pm.ShortcutServiceInternal;
import android.content.pm.UserInfo;
import android.content.res.Configuration;
import android.os.Binder;
@@ -156,6 +157,8 @@ public class UsageStatsService extends SystemService implements
PackageManagerInternal mPackageManagerInternal;
// Do not use directly. Call getDpmInternal() instead
DevicePolicyManagerInternal mDpmInternal;
+ // Do not use directly. Call getShortcutServiceInternal() instead
+ ShortcutServiceInternal mShortcutServiceInternal;
private final SparseArray<UserUsageStatsService> mUserState = new SparseArray<>();
private final SparseBooleanArray mUserUnlockedStates = new SparseBooleanArray();
@@ -267,6 +270,8 @@ public class UsageStatsService extends SystemService implements
if (phase == PHASE_SYSTEM_SERVICES_READY) {
// initialize mDpmInternal
getDpmInternal();
+ // initialize mShortcutServiceInternal
+ getShortcutServiceInternal();
if (ENABLE_KERNEL_UPDATES && KERNEL_COUNTER_FILE.exists()) {
try {
@@ -400,6 +405,13 @@ public class UsageStatsService extends SystemService implements
return mDpmInternal;
}
+ private ShortcutServiceInternal getShortcutServiceInternal() {
+ if (mShortcutServiceInternal == null) {
+ mShortcutServiceInternal = LocalServices.getService(ShortcutServiceInternal.class);
+ }
+ return mShortcutServiceInternal;
+ }
+
private void readUsageSourceSetting() {
synchronized (mLock) {
mUsageSource = Settings.Global.getInt(getContext().getContentResolver(),
@@ -469,6 +481,16 @@ public class UsageStatsService extends SystemService implements
return !mPackageManagerInternal.canAccessInstantApps(callingUid, userId);
}
+ private boolean shouldHideShortcutInvocationEvents(int userId, String callingPackage,
+ int callingPid, int callingUid) {
+ final ShortcutServiceInternal shortcutServiceInternal = getShortcutServiceInternal();
+ if (shortcutServiceInternal != null) {
+ return !shortcutServiceInternal.hasShortcutHostPermission(userId, callingPackage,
+ callingPid, callingUid);
+ }
+ return true; // hide by default if we can't verify visibility
+ }
+
private static void deleteRecursively(File f) {
File[] files = f.listFiles();
if (files != null) {
@@ -1008,7 +1030,7 @@ public class UsageStatsService extends SystemService implements
* Called by the Binder stub.
*/
UsageEvents queryEvents(int userId, long beginTime, long endTime,
- boolean shouldObfuscateInstantApps) {
+ boolean shouldObfuscateInstantApps, boolean shouldHideShortcutInvocationEvents) {
synchronized (mLock) {
if (!mUserUnlockedStates.get(userId)) {
Slog.w(TAG, "Failed to query events for locked user " + userId);
@@ -1019,7 +1041,8 @@ public class UsageStatsService extends SystemService implements
if (service == null) {
return null; // user was stopped or removed
}
- return service.queryEvents(beginTime, endTime, shouldObfuscateInstantApps);
+ return service.queryEvents(beginTime, endTime, shouldObfuscateInstantApps,
+ shouldHideShortcutInvocationEvents);
}
}
@@ -1418,14 +1441,18 @@ public class UsageStatsService extends SystemService implements
return null;
}
+ final int userId = UserHandle.getCallingUserId();
+ final int callingUid = Binder.getCallingUid();
+ final int callingPid = Binder.getCallingPid();
final boolean obfuscateInstantApps = shouldObfuscateInstantAppsForCaller(
- Binder.getCallingUid(), UserHandle.getCallingUserId());
+ callingUid, userId);
- final int userId = UserHandle.getCallingUserId();
final long token = Binder.clearCallingIdentity();
try {
+ final boolean hideShortcutInvocationEvents = shouldHideShortcutInvocationEvents(
+ userId, callingPackage, callingPid, callingUid);
return UsageStatsService.this.queryEvents(userId, beginTime, endTime,
- obfuscateInstantApps);
+ obfuscateInstantApps, hideShortcutInvocationEvents);
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -1456,19 +1483,24 @@ public class UsageStatsService extends SystemService implements
return null;
}
- if (userId != UserHandle.getCallingUserId()) {
+ final int callingUserId = UserHandle.getCallingUserId();
+ if (userId != callingUserId) {
getContext().enforceCallingPermission(
Manifest.permission.INTERACT_ACROSS_USERS_FULL,
"No permission to query usage stats for this user");
}
+ final int callingUid = Binder.getCallingUid();
+ final int callingPid = Binder.getCallingPid();
final boolean obfuscateInstantApps = shouldObfuscateInstantAppsForCaller(
- Binder.getCallingUid(), UserHandle.getCallingUserId());
+ callingUid, callingUserId);
final long token = Binder.clearCallingIdentity();
try {
+ final boolean hideShortcutInvocationEvents = shouldHideShortcutInvocationEvents(
+ userId, callingPackage, callingPid, callingUid);
return UsageStatsService.this.queryEvents(userId, beginTime, endTime,
- obfuscateInstantApps);
+ obfuscateInstantApps, hideShortcutInvocationEvents);
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -2085,9 +2117,9 @@ public class UsageStatsService extends SystemService implements
@Override
public UsageEvents queryEventsForUser(int userId, long beginTime, long endTime,
- boolean shouldObfuscateInstantApps) {
+ boolean obfuscateInstantApps, boolean hideShortcutInvocationEvents) {
return UsageStatsService.this.queryEvents(
- userId, beginTime, endTime, shouldObfuscateInstantApps);
+ userId, beginTime, endTime, obfuscateInstantApps, hideShortcutInvocationEvents);
}
@Override
diff --git a/services/usage/java/com/android/server/usage/UserUsageStatsService.java b/services/usage/java/com/android/server/usage/UserUsageStatsService.java
index 179b6490a7fd..4d711128da76 100644
--- a/services/usage/java/com/android/server/usage/UserUsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UserUsageStatsService.java
@@ -482,7 +482,7 @@ class UserUsageStatsService {
}
UsageEvents queryEvents(final long beginTime, final long endTime,
- boolean obfuscateInstantApps) {
+ boolean obfuscateInstantApps, boolean hideShortcutInvocationEvents) {
if (!validRange(checkAndGetTimeLocked(), beginTime, endTime)) {
return null;
}
@@ -500,6 +500,10 @@ class UserUsageStatsService {
}
Event event = stats.events.get(i);
+ if (hideShortcutInvocationEvents
+ && event.mEventType == Event.SHORTCUT_INVOCATION) {
+ continue;
+ }
if (obfuscateInstantApps) {
event = event.getObfuscatedIfInstantApp();
}
diff --git a/services/usb/java/com/android/server/usb/UsbHostManager.java b/services/usb/java/com/android/server/usb/UsbHostManager.java
index 9967bebf20b8..140a95d61100 100644
--- a/services/usb/java/com/android/server/usb/UsbHostManager.java
+++ b/services/usb/java/com/android/server/usb/UsbHostManager.java
@@ -34,9 +34,9 @@ import android.service.usb.UsbIsHeadsetProto;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.Slog;
-import android.util.StatsLog;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.dump.DualDumpOutputStream;
import com.android.server.usb.descriptors.UsbDescriptor;
@@ -418,10 +418,11 @@ public class UsbHostManager {
parser.getRawDescriptors());
// Stats collection
- StatsLog.write(StatsLog.USB_DEVICE_ATTACHED, newDevice.getVendorId(),
- newDevice.getProductId(), parser.hasAudioInterface(),
- parser.hasHIDInterface(), parser.hasStorageInterface(),
- StatsLog.USB_DEVICE_ATTACHED__STATE__STATE_CONNECTED, 0);
+ FrameworkStatsLog.write(FrameworkStatsLog.USB_DEVICE_ATTACHED,
+ newDevice.getVendorId(), newDevice.getProductId(),
+ parser.hasAudioInterface(), parser.hasHIDInterface(),
+ parser.hasStorageInterface(),
+ FrameworkStatsLog.USB_DEVICE_ATTACHED__STATE__STATE_CONNECTED, 0);
}
}
@@ -454,10 +455,10 @@ public class UsbHostManager {
UsbDescriptorParser parser = new UsbDescriptorParser(deviceAddress,
current.mDescriptors);
// Stats collection
- StatsLog.write(StatsLog.USB_DEVICE_ATTACHED, device.getVendorId(),
- device.getProductId(), parser.hasAudioInterface(),
+ FrameworkStatsLog.write(FrameworkStatsLog.USB_DEVICE_ATTACHED,
+ device.getVendorId(), device.getProductId(), parser.hasAudioInterface(),
parser.hasHIDInterface(), parser.hasStorageInterface(),
- StatsLog.USB_DEVICE_ATTACHED__STATE__STATE_DISCONNECTED,
+ FrameworkStatsLog.USB_DEVICE_ATTACHED__STATE__STATE_DISCONNECTED,
System.currentTimeMillis() - current.mTimestamp);
}
} else {
diff --git a/services/usb/java/com/android/server/usb/UsbPortManager.java b/services/usb/java/com/android/server/usb/UsbPortManager.java
index c3e2013eff10..1025bf5d67b0 100644
--- a/services/usb/java/com/android/server/usb/UsbPortManager.java
+++ b/services/usb/java/com/android/server/usb/UsbPortManager.java
@@ -66,11 +66,11 @@ import android.service.usb.UsbServiceProto;
import android.util.ArrayMap;
import android.util.Log;
import android.util.Slog;
-import android.util.StatsLog;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
import com.android.internal.notification.SystemNotificationChannels;
+import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.dump.DualDumpOutputStream;
import com.android.server.FgThread;
@@ -1040,8 +1040,9 @@ public class UsbPortManager {
if (mConnected.containsKey(portInfo.mUsbPort.getId())) {
//Previous logged a connected. Set it to disconnected.
if (mConnected.get(portInfo.mUsbPort.getId())) {
- StatsLog.write(StatsLog.USB_CONNECTOR_STATE_CHANGED,
- StatsLog.USB_CONNECTOR_STATE_CHANGED__STATE__STATE_DISCONNECTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.USB_CONNECTOR_STATE_CHANGED,
+ FrameworkStatsLog
+ .USB_CONNECTOR_STATE_CHANGED__STATE__STATE_DISCONNECTED,
portInfo.mUsbPort.getId(), portInfo.mLastConnectDurationMillis);
}
mConnected.remove(portInfo.mUsbPort.getId());
@@ -1051,7 +1052,7 @@ public class UsbPortManager {
//Previous logged a contaminant detected. Set it to not detected.
if ((mContaminantStatus.get(portInfo.mUsbPort.getId())
== UsbPortStatus.CONTAMINANT_DETECTION_DETECTED)) {
- StatsLog.write(StatsLog.USB_CONTAMINANT_REPORTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.USB_CONTAMINANT_REPORTED,
portInfo.mUsbPort.getId(),
convertContaminantDetectionStatusToProto(
UsbPortStatus.CONTAMINANT_DETECTION_NOT_DETECTED));
@@ -1065,10 +1066,10 @@ public class UsbPortManager {
|| (mConnected.get(portInfo.mUsbPort.getId())
!= portInfo.mUsbPortStatus.isConnected())) {
mConnected.put(portInfo.mUsbPort.getId(), portInfo.mUsbPortStatus.isConnected());
- StatsLog.write(StatsLog.USB_CONNECTOR_STATE_CHANGED,
+ FrameworkStatsLog.write(FrameworkStatsLog.USB_CONNECTOR_STATE_CHANGED,
portInfo.mUsbPortStatus.isConnected()
- ? StatsLog.USB_CONNECTOR_STATE_CHANGED__STATE__STATE_CONNECTED :
- StatsLog.USB_CONNECTOR_STATE_CHANGED__STATE__STATE_DISCONNECTED,
+ ? FrameworkStatsLog.USB_CONNECTOR_STATE_CHANGED__STATE__STATE_CONNECTED :
+ FrameworkStatsLog.USB_CONNECTOR_STATE_CHANGED__STATE__STATE_DISCONNECTED,
portInfo.mUsbPort.getId(), portInfo.mLastConnectDurationMillis);
}
@@ -1077,7 +1078,7 @@ public class UsbPortManager {
!= portInfo.mUsbPortStatus.getContaminantDetectionStatus())) {
mContaminantStatus.put(portInfo.mUsbPort.getId(),
portInfo.mUsbPortStatus.getContaminantDetectionStatus());
- StatsLog.write(StatsLog.USB_CONTAMINANT_REPORTED,
+ FrameworkStatsLog.write(FrameworkStatsLog.USB_CONTAMINANT_REPORTED,
portInfo.mUsbPort.getId(),
convertContaminantDetectionStatusToProto(
portInfo.mUsbPortStatus.getContaminantDetectionStatus()));
diff --git a/telephony/java/android/service/carrier/CarrierIdentifier.java b/telephony/java/android/service/carrier/CarrierIdentifier.java
index 7957c258b54f..bc0f909e1331 100644
--- a/telephony/java/android/service/carrier/CarrierIdentifier.java
+++ b/telephony/java/android/service/carrier/CarrierIdentifier.java
@@ -20,10 +20,10 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.os.Parcel;
import android.os.Parcelable;
-import com.android.telephony.Rlog;
import android.telephony.TelephonyManager;
import com.android.internal.telephony.uicc.IccUtils;
+import com.android.telephony.Rlog;
import java.util.Objects;
diff --git a/telephony/java/android/telephony/AnomalyReporter.java b/telephony/java/android/telephony/AnomalyReporter.java
index 097041f672ac..ffdb23f98fb8 100644
--- a/telephony/java/android/telephony/AnomalyReporter.java
+++ b/telephony/java/android/telephony/AnomalyReporter.java
@@ -16,8 +16,6 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.NonNull;
import android.annotation.RequiresPermission;
import android.content.Context;
@@ -27,6 +25,7 @@ import android.content.pm.ResolveInfo;
import android.os.ParcelUuid;
import com.android.internal.util.IndentingPrintWriter;
+import com.android.telephony.Rlog;
import java.io.FileDescriptor;
import java.io.PrintWriter;
diff --git a/telephony/java/android/telephony/BarringInfo.java b/telephony/java/android/telephony/BarringInfo.java
index 5419c3c3d5c4..92423a2f2218 100644
--- a/telephony/java/android/telephony/BarringInfo.java
+++ b/telephony/java/android/telephony/BarringInfo.java
@@ -62,38 +62,38 @@ public final class BarringInfo implements Parcelable {
/* Applicabe to UTRAN */
/** Barring indicator for circuit-switched service; applicable to UTRAN */
public static final int BARRING_SERVICE_TYPE_CS_SERVICE =
- android.hardware.radio.V1_5.BarringServiceType.CS_SERVICE;
+ android.hardware.radio.V1_5.BarringInfo.ServiceType.CS_SERVICE;
/** Barring indicator for packet-switched service; applicable to UTRAN */
public static final int BARRING_SERVICE_TYPE_PS_SERVICE =
- android.hardware.radio.V1_5.BarringServiceType.PS_SERVICE;
+ android.hardware.radio.V1_5.BarringInfo.ServiceType.PS_SERVICE;
/** Barring indicator for circuit-switched voice service; applicable to UTRAN */
public static final int BARRING_SERVICE_TYPE_CS_VOICE =
- android.hardware.radio.V1_5.BarringServiceType.CS_VOICE;
+ android.hardware.radio.V1_5.BarringInfo.ServiceType.CS_VOICE;
/* Applicable to EUTRAN, NGRAN */
/** Barring indicator for mobile-originated signalling; applicable to EUTRAN and NGRAN */
public static final int BARRING_SERVICE_TYPE_MO_SIGNALLING =
- android.hardware.radio.V1_5.BarringServiceType.MO_SIGNALLING;
+ android.hardware.radio.V1_5.BarringInfo.ServiceType.MO_SIGNALLING;
/** Barring indicator for mobile-originated data traffic; applicable to EUTRAN and NGRAN */
public static final int BARRING_SERVICE_TYPE_MO_DATA =
- android.hardware.radio.V1_5.BarringServiceType.MO_DATA;
+ android.hardware.radio.V1_5.BarringInfo.ServiceType.MO_DATA;
/** Barring indicator for circuit-switched fallback for voice; applicable to EUTRAN and NGRAN */
public static final int BARRING_SERVICE_TYPE_CS_FALLBACK =
- android.hardware.radio.V1_5.BarringServiceType.CS_FALLBACK;
+ android.hardware.radio.V1_5.BarringInfo.ServiceType.CS_FALLBACK;
/** Barring indicator for MMTEL (IMS) voice; applicable to EUTRAN and NGRAN */
public static final int BARRING_SERVICE_TYPE_MMTEL_VOICE =
- android.hardware.radio.V1_5.BarringServiceType.MMTEL_VOICE;
+ android.hardware.radio.V1_5.BarringInfo.ServiceType.MMTEL_VOICE;
/** Barring indicator for MMTEL (IMS) video; applicable to EUTRAN and NGRAN */
public static final int BARRING_SERVICE_TYPE_MMTEL_VIDEO =
- android.hardware.radio.V1_5.BarringServiceType.MMTEL_VIDEO;
+ android.hardware.radio.V1_5.BarringInfo.ServiceType.MMTEL_VIDEO;
/* Applicable to UTRAN, EUTRAN, NGRAN */
/** Barring indicator for emergency services; applicable to UTRAN, EUTRAN, and NGRAN */
public static final int BARRING_SERVICE_TYPE_EMERGENCY =
- android.hardware.radio.V1_5.BarringServiceType.EMERGENCY;
+ android.hardware.radio.V1_5.BarringInfo.ServiceType.EMERGENCY;
/** Barring indicator for SMS sending; applicable to UTRAN, EUTRAN, and NGRAN */
public static final int BARRING_SERVICE_TYPE_SMS =
- android.hardware.radio.V1_5.BarringServiceType.SMS;
+ android.hardware.radio.V1_5.BarringInfo.ServiceType.SMS;
//TODO: add barring constants for Operator-Specific barring codes
@@ -112,13 +112,14 @@ public final class BarringInfo implements Parcelable {
public @interface BarringType {}
/** Barring is inactive */
- public static final int BARRING_TYPE_NONE = android.hardware.radio.V1_5.BarringType.NONE;
+ public static final int BARRING_TYPE_NONE =
+ android.hardware.radio.V1_5.BarringInfo.BarringType.NONE;
/** The service is barred */
public static final int BARRING_TYPE_UNCONDITIONAL =
- android.hardware.radio.V1_5.BarringType.UNCONDITIONAL;
+ android.hardware.radio.V1_5.BarringInfo.BarringType.UNCONDITIONAL;
/** The service may be barred based on additional factors */
public static final int BARRING_TYPE_CONDITIONAL =
- android.hardware.radio.V1_5.BarringType.CONDITIONAL;
+ android.hardware.radio.V1_5.BarringInfo.BarringType.CONDITIONAL;
/** If a modem does not report barring info, then the barring type will be UNKNOWN */
public static final int BARRING_TYPE_UNKNOWN = -1;
@@ -238,6 +239,12 @@ public final class BarringInfo implements Parcelable {
}
}
+ private static final BarringServiceInfo BARRING_SERVICE_INFO_UNKNOWN =
+ new BarringServiceInfo(BarringServiceInfo.BARRING_TYPE_UNKNOWN);
+
+ private static final BarringServiceInfo BARRING_SERVICE_INFO_UNBARRED =
+ new BarringServiceInfo(BarringServiceInfo.BARRING_TYPE_NONE);
+
private CellIdentity mCellIdentity;
// A SparseArray potentially mapping each BarringService type to a BarringServiceInfo config
@@ -271,44 +278,35 @@ public final class BarringInfo implements Parcelable {
SparseArray<BarringServiceInfo> serviceInfos = new SparseArray<>();
for (android.hardware.radio.V1_5.BarringInfo halBarringInfo : halBarringInfos) {
- if (halBarringInfo.type == android.hardware.radio.V1_5.BarringType.CONDITIONAL) {
- if (halBarringInfo.typeSpecificInfo.getDiscriminator()
- != android.hardware.radio.V1_5.BarringTypeSpecificInfo
- .hidl_discriminator.conditionalBarringInfo) {
+ if (halBarringInfo.barringType
+ == android.hardware.radio.V1_5.BarringInfo.BarringType.CONDITIONAL) {
+ if (halBarringInfo.barringTypeSpecificInfo.getDiscriminator()
+ != android.hardware.radio.V1_5.BarringInfo.BarringTypeSpecificInfo
+ .hidl_discriminator.conditional) {
// this is an error case where the barring info is conditional but the
// conditional barring fields weren't included
continue;
}
- android.hardware.radio.V1_5.ConditionalBarringInfo conditionalInfo =
- halBarringInfo.typeSpecificInfo.conditionalBarringInfo();
+ android.hardware.radio.V1_5.BarringInfo.BarringTypeSpecificInfo
+ .Conditional conditionalInfo =
+ halBarringInfo.barringTypeSpecificInfo.conditional();
serviceInfos.put(
- halBarringInfo.service, new BarringServiceInfo(
- halBarringInfo.type, // will always be CONDITIONAL here
+ halBarringInfo.serviceType, new BarringServiceInfo(
+ halBarringInfo.barringType, // will always be CONDITIONAL here
conditionalInfo.isBarred,
- conditionalInfo.barringFactor,
- conditionalInfo.barringTimeSeconds));
+ conditionalInfo.factor,
+ conditionalInfo.timeSeconds));
} else {
// Barring type is either NONE or UNCONDITIONAL
serviceInfos.put(
- halBarringInfo.service, new BarringServiceInfo(halBarringInfo.type,
- false, 0, 0));
+ halBarringInfo.serviceType, new BarringServiceInfo(
+ halBarringInfo.barringType, false, 0, 0));
}
}
return new BarringInfo(ci, serviceInfos);
}
/**
- * Return whether a service is currently barred based on the BarringInfo
- *
- * @param service the service to be checked.
- * @return true if the service is currently being barred, otherwise false
- */
- public boolean isServiceBarred(@BarringServiceType int service) {
- BarringServiceInfo bsi = mBarringServiceInfos.get(service);
- return bsi != null && (bsi.isBarred());
- }
-
- /**
* Get the BarringServiceInfo for a specified service.
*
* @return a BarringServiceInfo struct describing the current barring status for a service
@@ -319,14 +317,16 @@ public final class BarringInfo implements Parcelable {
// type as UNKNOWN; if the modem reports barring info but doesn't report for a particular
// service then we can safely assume that the service isn't barred (for instance because
// that particular service isn't applicable to the current RAN).
- return (bsi != null) ? bsi : new BarringServiceInfo(
- mBarringServiceInfos.size() > 0 ? BarringServiceInfo.BARRING_TYPE_NONE :
- BarringServiceInfo.BARRING_TYPE_UNKNOWN);
+ return (bsi != null) ? bsi : mBarringServiceInfos.size() > 0
+ ? BARRING_SERVICE_INFO_UNBARRED : BARRING_SERVICE_INFO_UNKNOWN;
}
/** @hide */
@SystemApi
public @NonNull BarringInfo createLocationInfoSanitizedCopy() {
+ // The only thing that would need sanitizing is the CellIdentity
+ if (mCellIdentity == null) return this;
+
return new BarringInfo(mCellIdentity.sanitizeLocationInfo(), mBarringServiceInfos);
}
diff --git a/telephony/java/android/telephony/CbGeoUtils.java b/telephony/java/android/telephony/CbGeoUtils.java
index 719ba8d98773..c0ae99e89cb3 100644
--- a/telephony/java/android/telephony/CbGeoUtils.java
+++ b/telephony/java/android/telephony/CbGeoUtils.java
@@ -16,13 +16,12 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.text.TextUtils;
import com.android.internal.telephony.util.TelephonyUtils;
+import com.android.telephony.Rlog;
import java.util.ArrayList;
import java.util.List;
diff --git a/telephony/java/android/telephony/CellInfoCdma.java b/telephony/java/android/telephony/CellInfoCdma.java
index acb21f450243..0edb4a4eed9b 100644
--- a/telephony/java/android/telephony/CellInfoCdma.java
+++ b/telephony/java/android/telephony/CellInfoCdma.java
@@ -16,14 +16,14 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.NonNull;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
+import com.android.telephony.Rlog;
+
/**
* A {@link CellInfo} representing a CDMA cell that provides identity and measurement info.
*/
diff --git a/telephony/java/android/telephony/CellInfoGsm.java b/telephony/java/android/telephony/CellInfoGsm.java
index 79a9d44f36a2..2dddd3f935cd 100644
--- a/telephony/java/android/telephony/CellInfoGsm.java
+++ b/telephony/java/android/telephony/CellInfoGsm.java
@@ -16,13 +16,13 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.NonNull;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Parcel;
import android.os.Parcelable;
+import com.android.telephony.Rlog;
+
/**
* A {@link CellInfo} representing a GSM cell that provides identity and measurement info.
*/
diff --git a/telephony/java/android/telephony/CellInfoLte.java b/telephony/java/android/telephony/CellInfoLte.java
index fed3ebf4af03..a57c7cd136db 100644
--- a/telephony/java/android/telephony/CellInfoLte.java
+++ b/telephony/java/android/telephony/CellInfoLte.java
@@ -16,14 +16,14 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.NonNull;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
+import com.android.telephony.Rlog;
+
import java.util.Objects;
/**
diff --git a/telephony/java/android/telephony/CellInfoTdscdma.java b/telephony/java/android/telephony/CellInfoTdscdma.java
index 58ff8c9558d9..d2cc9c6ce422 100644
--- a/telephony/java/android/telephony/CellInfoTdscdma.java
+++ b/telephony/java/android/telephony/CellInfoTdscdma.java
@@ -16,12 +16,12 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.NonNull;
import android.os.Parcel;
import android.os.Parcelable;
+import com.android.telephony.Rlog;
+
import java.util.Objects;
/**
diff --git a/telephony/java/android/telephony/CellInfoWcdma.java b/telephony/java/android/telephony/CellInfoWcdma.java
index 33f6a555414c..3f792d17b8ef 100644
--- a/telephony/java/android/telephony/CellInfoWcdma.java
+++ b/telephony/java/android/telephony/CellInfoWcdma.java
@@ -18,6 +18,7 @@ package android.telephony;
import android.os.Parcel;
import android.os.Parcelable;
+
import com.android.telephony.Rlog;
import java.util.Objects;
diff --git a/telephony/java/android/telephony/CellSignalStrengthCdma.java b/telephony/java/android/telephony/CellSignalStrengthCdma.java
index cab3b0cd3c47..1c92705b9422 100644
--- a/telephony/java/android/telephony/CellSignalStrengthCdma.java
+++ b/telephony/java/android/telephony/CellSignalStrengthCdma.java
@@ -20,6 +20,7 @@ import android.annotation.IntRange;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.PersistableBundle;
+
import com.android.telephony.Rlog;
import java.util.Objects;
diff --git a/telephony/java/android/telephony/CellSignalStrengthGsm.java b/telephony/java/android/telephony/CellSignalStrengthGsm.java
index 28052aa93486..76d2df918423 100644
--- a/telephony/java/android/telephony/CellSignalStrengthGsm.java
+++ b/telephony/java/android/telephony/CellSignalStrengthGsm.java
@@ -16,8 +16,6 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.IntRange;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Build;
@@ -25,6 +23,8 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.os.PersistableBundle;
+import com.android.telephony.Rlog;
+
import java.util.Objects;
/**
diff --git a/telephony/java/android/telephony/CellSignalStrengthLte.java b/telephony/java/android/telephony/CellSignalStrengthLte.java
index 2ef2a52977ff..6d6eaa4677f0 100644
--- a/telephony/java/android/telephony/CellSignalStrengthLte.java
+++ b/telephony/java/android/telephony/CellSignalStrengthLte.java
@@ -16,14 +16,14 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.IntRange;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.PersistableBundle;
+import com.android.telephony.Rlog;
+
import java.util.Arrays;
import java.util.Objects;
diff --git a/telephony/java/android/telephony/CellSignalStrengthNr.java b/telephony/java/android/telephony/CellSignalStrengthNr.java
index f4c13fff9943..e3d03a38b6b0 100644
--- a/telephony/java/android/telephony/CellSignalStrengthNr.java
+++ b/telephony/java/android/telephony/CellSignalStrengthNr.java
@@ -16,14 +16,14 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.IntDef;
import android.annotation.IntRange;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.PersistableBundle;
+import com.android.telephony.Rlog;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Arrays;
diff --git a/telephony/java/android/telephony/CellSignalStrengthTdscdma.java b/telephony/java/android/telephony/CellSignalStrengthTdscdma.java
index 3bd9d5810136..e96f200280b6 100644
--- a/telephony/java/android/telephony/CellSignalStrengthTdscdma.java
+++ b/telephony/java/android/telephony/CellSignalStrengthTdscdma.java
@@ -16,14 +16,14 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.PersistableBundle;
+import com.android.telephony.Rlog;
+
import java.util.Objects;
/**
diff --git a/telephony/java/android/telephony/CellSignalStrengthWcdma.java b/telephony/java/android/telephony/CellSignalStrengthWcdma.java
index 535e9520074d..8b14b7490679 100644
--- a/telephony/java/android/telephony/CellSignalStrengthWcdma.java
+++ b/telephony/java/android/telephony/CellSignalStrengthWcdma.java
@@ -16,8 +16,6 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.IntRange;
import android.annotation.StringDef;
import android.compat.annotation.UnsupportedAppUsage;
@@ -26,6 +24,8 @@ import android.os.Parcelable;
import android.os.PersistableBundle;
import android.text.TextUtils;
+import com.android.telephony.Rlog;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Objects;
diff --git a/telephony/java/android/telephony/NetworkScan.java b/telephony/java/android/telephony/NetworkScan.java
index a6dedf761636..adf31ed45c9a 100644
--- a/telephony/java/android/telephony/NetworkScan.java
+++ b/telephony/java/android/telephony/NetworkScan.java
@@ -16,12 +16,11 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.IntDef;
import android.os.RemoteException;
import com.android.internal.telephony.ITelephony;
+import com.android.telephony.Rlog;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/telephony/java/android/telephony/NetworkService.java b/telephony/java/android/telephony/NetworkService.java
index 844289ce75d4..87d94bfda662 100644
--- a/telephony/java/android/telephony/NetworkService.java
+++ b/telephony/java/android/telephony/NetworkService.java
@@ -16,8 +16,6 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SdkConstant;
@@ -34,6 +32,7 @@ import android.telephony.NetworkRegistrationInfo.Domain;
import android.util.SparseArray;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.telephony.Rlog;
import java.util.ArrayList;
import java.util.List;
diff --git a/telephony/java/android/telephony/NetworkServiceCallback.java b/telephony/java/android/telephony/NetworkServiceCallback.java
index 214ab41ae4f2..e8e73ee86f58 100644
--- a/telephony/java/android/telephony/NetworkServiceCallback.java
+++ b/telephony/java/android/telephony/NetworkServiceCallback.java
@@ -16,14 +16,14 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.IntDef;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.os.RemoteException;
import android.telephony.NetworkService.NetworkServiceProvider;
+import com.android.telephony.Rlog;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java
index 0074772a221d..ec9940836afe 100644
--- a/telephony/java/android/telephony/PhoneNumberUtils.java
+++ b/telephony/java/android/telephony/PhoneNumberUtils.java
@@ -16,8 +16,6 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -45,6 +43,7 @@ import com.android.i18n.phonenumbers.NumberParseException;
import com.android.i18n.phonenumbers.PhoneNumberUtil;
import com.android.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberFormat;
import com.android.i18n.phonenumbers.Phonenumber.PhoneNumber;
+import com.android.telephony.Rlog;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/telephony/java/android/telephony/PreciseDataConnectionState.java b/telephony/java/android/telephony/PreciseDataConnectionState.java
index 094b8b0d1631..708adebb6db3 100644
--- a/telephony/java/android/telephony/PreciseDataConnectionState.java
+++ b/telephony/java/android/telephony/PreciseDataConnectionState.java
@@ -135,11 +135,12 @@ public final class PreciseDataConnectionState implements Parcelable {
}
/**
- * To check the SDK version for {@code PreciseDataConnectionState#getDataConnectionState}.
+ * Used for checking if the SDK version for
+ * {@code PreciseDataConnectionState#getDataConnectionState} is above Q.
*/
@ChangeId
@EnabledAfter(targetSdkVersion = Build.VERSION_CODES.Q)
- private static final long GET_DATA_CONNECTION_STATE_CODE_CHANGE = 147600208L;
+ private static final long GET_DATA_CONNECTION_STATE_R_VERSION = 148535736L;
/**
* Returns the state of data connection that supported the apn types returned by
@@ -152,7 +153,7 @@ public final class PreciseDataConnectionState implements Parcelable {
@SystemApi
public @DataState int getDataConnectionState() {
if (mState == TelephonyManager.DATA_DISCONNECTING
- && !Compatibility.isChangeEnabled(GET_DATA_CONNECTION_STATE_CODE_CHANGE)) {
+ && !Compatibility.isChangeEnabled(GET_DATA_CONNECTION_STATE_R_VERSION)) {
return TelephonyManager.DATA_CONNECTED;
}
@@ -264,10 +265,10 @@ public final class PreciseDataConnectionState implements Parcelable {
/**
* Return the APN Settings for this data connection.
*
- * Returns the ApnSetting that was used to configure this data connection.
+ * @return the ApnSetting that was used to configure this data connection.
*/
// FIXME: This shouldn't be nullable; update once the ApnSetting is supplied correctly
- @Nullable ApnSetting getApnSetting() {
+ public @Nullable ApnSetting getApnSetting() {
return mApnSetting;
}
diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java
index 5b09cd9e6caa..a5a1ebc10139 100644
--- a/telephony/java/android/telephony/ServiceState.java
+++ b/telephony/java/android/telephony/ServiceState.java
@@ -1925,6 +1925,8 @@ public class ServiceState implements Parcelable {
/**
* Get the network registration state for the transport type and network domain.
+ * If multiple domains are in the input bitmask, only the first one from
+ * networkRegistrationInfo.getDomain() will be returned.
*
* @param domain The network {@link NetworkRegistrationInfo.Domain domain}
* @param transportType The transport type
@@ -2072,11 +2074,18 @@ public class ServiceState implements Parcelable {
public boolean isIwlanPreferred() {
return mIsIwlanPreferred;
}
- /**
- * @return {@code true}Returns True whenever the modem is searching for service.
- * To check both CS and PS domain
- */
+ /**
+ * This indicates whether the device is searching for service.
+ *
+ * This API reports the modem searching status for
+ * {@link AccessNetworkConstants#TRANSPORT_TYPE_WWAN} (cellular) service in either
+ * {@link NetworkRegistrationInfo#DOMAIN_CS} or {@link NetworkRegistrationInfo#DOMAIN_PS}.
+ * This API will not report searching status for
+ * {@link AccessNetworkConstants#TRANSPORT_TYPE_WLAN}.
+ *
+ * @return {@code true} whenever the modem is searching for service.
+ */
public boolean isSearching() {
NetworkRegistrationInfo psRegState = getNetworkRegistrationInfo(
NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
diff --git a/telephony/java/android/telephony/SmsCbMessage.java b/telephony/java/android/telephony/SmsCbMessage.java
index c0dfec9a1172..752707e5a5dc 100644
--- a/telephony/java/android/telephony/SmsCbMessage.java
+++ b/telephony/java/android/telephony/SmsCbMessage.java
@@ -586,6 +586,7 @@ public final class SmsCbMessage implements Parcelable {
cv.put(CellBroadcasts.SERIAL_NUMBER, getSerialNumber());
cv.put(CellBroadcasts.SERVICE_CATEGORY, getServiceCategory());
cv.put(CellBroadcasts.LANGUAGE_CODE, getLanguageCode());
+ cv.put(CellBroadcasts.DATA_CODING_SCHEME, getDataCodingScheme());
cv.put(CellBroadcasts.MESSAGE_BODY, getMessageBody());
cv.put(CellBroadcasts.MESSAGE_FORMAT, getMessageFormat());
cv.put(CellBroadcasts.MESSAGE_PRIORITY, getMessagePriority());
diff --git a/telephony/java/android/telephony/SmsMessage.java b/telephony/java/android/telephony/SmsMessage.java
index 7a30f143a3a4..6d82e51c14af 100644
--- a/telephony/java/android/telephony/SmsMessage.java
+++ b/telephony/java/android/telephony/SmsMessage.java
@@ -16,8 +16,6 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import static android.telephony.TelephonyManager.PHONE_TYPE_CDMA;
import android.Manifest;
@@ -40,13 +38,13 @@ import com.android.internal.telephony.SmsHeader;
import com.android.internal.telephony.SmsMessageBase;
import com.android.internal.telephony.SmsMessageBase.SubmitPduBase;
import com.android.internal.telephony.cdma.sms.UserData;
+import com.android.telephony.Rlog;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Arrays;
-
/**
* A Short Message Service message.
* @see android.provider.Telephony.Sms.Intents#getMessagesFromIntent
diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java
index c24eeb74f6cd..832771daa409 100644
--- a/telephony/java/android/telephony/SubscriptionInfo.java
+++ b/telephony/java/android/telephony/SubscriptionInfo.java
@@ -16,8 +16,6 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.compat.annotation.UnsupportedAppUsage;
@@ -40,6 +38,7 @@ import android.util.DisplayMetrics;
import android.util.Log;
import com.android.internal.telephony.util.TelephonyUtils;
+import com.android.telephony.Rlog;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index 7406c8d5a33c..97f50fd314b8 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -55,7 +55,6 @@ import android.os.RemoteException;
import android.provider.Telephony.SimInfo;
import android.telephony.euicc.EuiccManager;
import android.telephony.ims.ImsMmTelManager;
-import android.util.DisplayMetrics;
import android.util.Log;
import android.util.Pair;
@@ -2500,23 +2499,24 @@ public class SubscriptionManager {
final SubscriptionInfo subInfo =
SubscriptionManager.from(context).getActiveSubscriptionInfo(subId);
- Configuration config = context.getResources().getConfiguration();
- Configuration newConfig = new Configuration();
- newConfig.setTo(config);
+ Configuration overrideConfig = new Configuration();
if (subInfo != null) {
- newConfig.mcc = subInfo.getMcc();
- newConfig.mnc = subInfo.getMnc();
- if (newConfig.mnc == 0) newConfig.mnc = Configuration.MNC_ZERO;
+ overrideConfig.mcc = subInfo.getMcc();
+ overrideConfig.mnc = subInfo.getMnc();
+ if (overrideConfig.mnc == 0) overrideConfig.mnc = Configuration.MNC_ZERO;
}
if (useRootLocale) {
- newConfig.setLocale(Locale.ROOT);
+ overrideConfig.setLocale(Locale.ROOT);
}
- DisplayMetrics metrics = context.getResources().getDisplayMetrics();
- DisplayMetrics newMetrics = new DisplayMetrics();
- newMetrics.setTo(metrics);
- Resources res = new Resources(context.getResources().getAssets(), newMetrics, newConfig);
+ // Create new context with new configuration so that we can avoid modifying the passed in
+ // context.
+ // Note that if the original context configuration changes, the resources here will also
+ // change for all values except those overridden by newConfig (e.g. if the device has an
+ // orientation change).
+ Context newContext = context.createConfigurationContext(overrideConfig);
+ Resources res = newContext.getResources();
if (cacheKey != null) {
// Save the newly created Resources in the resource cache.
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 26dc5f01e67b..e520a02c2721 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -5562,11 +5562,11 @@ public class TelephonyManager {
public static final int DATA_DISCONNECTING = 4;
/**
- * To check the SDK version for {@link TelephonyManager#getDataState}.
+ * Used for checking if the SDK version for {@link TelephonyManager#getDataState} is above Q.
*/
@ChangeId
@EnabledAfter(targetSdkVersion = Build.VERSION_CODES.Q)
- private static final long GET_DATA_STATE_CODE_CHANGE = 147600208L;
+ private static final long GET_DATA_STATE_R_VERSION = 148534348L;
/**
* Returns a constant indicating the current data connection state
@@ -5586,7 +5586,7 @@ public class TelephonyManager {
int state = telephony.getDataStateForSubId(
getSubId(SubscriptionManager.getActiveDataSubscriptionId()));
if (state == TelephonyManager.DATA_DISCONNECTING
- && !Compatibility.isChangeEnabled(GET_DATA_STATE_CODE_CHANGE)) {
+ && !Compatibility.isChangeEnabled(GET_DATA_STATE_R_VERSION)) {
return TelephonyManager.DATA_CONNECTED;
}
@@ -7761,9 +7761,8 @@ public class TelephonyManager {
*
* @hide
*/
- @SystemApi
public static final int DEFAULT_PREFERRED_NETWORK_MODE =
- RILConstants.DEFAULT_PREFERRED_NETWORK_MODE;
+ RILConstants.PREFERRED_NETWORK_MODE;
/**
* Get the preferred network type.
@@ -11290,14 +11289,6 @@ public class TelephonyManager {
*/
public static final int INDICATION_UPDATE_MODE_IGNORE_SCREEN_OFF = 2;
- /** @hide */
- @IntDef(prefix = { "INDICATION_UPDATE_MODE_" }, value = {
- INDICATION_UPDATE_MODE_NORMAL,
- INDICATION_UPDATE_MODE_IGNORE_SCREEN_OFF
- })
- @Retention(RetentionPolicy.SOURCE)
- public @interface IndicationUpdateMode{}
-
/**
* The indication for signal strength update.
* @hide
@@ -11328,51 +11319,6 @@ public class TelephonyManager {
*/
public static final int INDICATION_FILTER_PHYSICAL_CHANNEL_CONFIG = 0x10;
- /** @hide */
- @IntDef(flag = true, prefix = { "INDICATION_FILTER_" }, value = {
- INDICATION_FILTER_SIGNAL_STRENGTH,
- INDICATION_FILTER_FULL_NETWORK_STATE,
- INDICATION_FILTER_DATA_CALL_DORMANCY_CHANGED,
- INDICATION_FILTER_LINK_CAPACITY_ESTIMATE,
- INDICATION_FILTER_PHYSICAL_CHANNEL_CONFIG
- })
- @Retention(RetentionPolicy.SOURCE)
- public @interface IndicationFilters{}
-
- /**
- * Sets radio indication update mode. This can be used to control the behavior of indication
- * update from modem to Android frameworks. For example, by default several indication updates
- * are turned off when screen is off, but in some special cases (e.g. carkit is connected but
- * screen is off) we want to turn on those indications even when the screen is off.
- *
- * <p>Requires Permission:
- * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
- *
- * @param filters Indication filters. Should be a bitmask of INDICATION_FILTER_XXX.
- * @see #INDICATION_FILTER_SIGNAL_STRENGTH
- * @see #INDICATION_FILTER_FULL_NETWORK_STATE
- * @see #INDICATION_FILTER_DATA_CALL_DORMANCY_CHANGED
- * @param updateMode The voice activation state
- * @see #INDICATION_UPDATE_MODE_NORMAL
- * @see #INDICATION_UPDATE_MODE_IGNORE_SCREEN_OFF
- * @hide
- */
- @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
- public void setRadioIndicationUpdateMode(@IndicationFilters int filters,
- @IndicationUpdateMode int updateMode) {
- try {
- ITelephony telephony = getITelephony();
- if (telephony != null) {
- telephony.setRadioIndicationUpdateMode(getSubId(), filters, updateMode);
- }
- } catch (RemoteException ex) {
- // This could happen if binder process crashes.
- if (!isSystemProcess()) {
- ex.rethrowAsRuntimeException();
- }
- }
- }
-
/**
* A test API to override carrier information including mccmnc, imsi, iccid, gid1, gid2,
* plmn and spn. This would be handy for, eg, forcing a particular carrier id, carrier's config
diff --git a/telephony/java/android/telephony/TelephonyScanManager.java b/telephony/java/android/telephony/TelephonyScanManager.java
index a1d40e85fb10..cdff651c9c3d 100644
--- a/telephony/java/android/telephony/TelephonyScanManager.java
+++ b/telephony/java/android/telephony/TelephonyScanManager.java
@@ -16,8 +16,6 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import static com.android.internal.util.Preconditions.checkNotNull;
import android.annotation.Nullable;
@@ -33,6 +31,7 @@ import android.os.RemoteException;
import android.util.SparseArray;
import com.android.internal.telephony.ITelephony;
+import com.android.telephony.Rlog;
import java.util.Arrays;
import java.util.List;
diff --git a/telephony/java/android/telephony/UiccAccessRule.java b/telephony/java/android/telephony/UiccAccessRule.java
index 81a09c645070..3e948fc75d00 100644
--- a/telephony/java/android/telephony/UiccAccessRule.java
+++ b/telephony/java/android/telephony/UiccAccessRule.java
@@ -15,8 +15,6 @@
*/
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
@@ -28,6 +26,7 @@ import android.os.Parcelable;
import android.text.TextUtils;
import com.android.internal.telephony.uicc.IccUtils;
+import com.android.telephony.Rlog;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
diff --git a/telephony/java/android/telephony/VoLteServiceState.java b/telephony/java/android/telephony/VoLteServiceState.java
index d4a27d925208..27187e68d5cc 100644
--- a/telephony/java/android/telephony/VoLteServiceState.java
+++ b/telephony/java/android/telephony/VoLteServiceState.java
@@ -16,14 +16,14 @@
package android.telephony;
-import com.android.telephony.Rlog;
-
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Build;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
+import com.android.telephony.Rlog;
+
/**
* Contains LTE network state related information.
* @deprecated Only contains SRVCC state, which isn't specific to LTE handovers. For SRVCC
diff --git a/telephony/java/android/telephony/data/DataService.java b/telephony/java/android/telephony/data/DataService.java
index bff12b624ae8..6c4e7ce51ebf 100644
--- a/telephony/java/android/telephony/data/DataService.java
+++ b/telephony/java/android/telephony/data/DataService.java
@@ -31,10 +31,10 @@ import android.os.Looper;
import android.os.Message;
import android.os.RemoteException;
import android.telephony.AccessNetworkConstants;
-import com.android.telephony.Rlog;
import android.util.SparseArray;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.telephony.Rlog;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/telephony/java/android/telephony/data/DataServiceCallback.java b/telephony/java/android/telephony/data/DataServiceCallback.java
index d33d3f9a5eee..72b68e4645c9 100644
--- a/telephony/java/android/telephony/data/DataServiceCallback.java
+++ b/telephony/java/android/telephony/data/DataServiceCallback.java
@@ -22,9 +22,10 @@ import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.net.LinkProperties;
import android.os.RemoteException;
-import com.android.telephony.Rlog;
import android.telephony.data.DataService.DataServiceProvider;
+import com.android.telephony.Rlog;
+
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.List;
diff --git a/telephony/java/android/telephony/data/QualifiedNetworksService.java b/telephony/java/android/telephony/data/QualifiedNetworksService.java
index 8220b16500de..05971c4d2e70 100644
--- a/telephony/java/android/telephony/data/QualifiedNetworksService.java
+++ b/telephony/java/android/telephony/data/QualifiedNetworksService.java
@@ -28,10 +28,10 @@ import android.os.Message;
import android.os.RemoteException;
import android.telephony.AccessNetworkConstants.AccessNetworkType;
import android.telephony.Annotation.ApnType;
-import com.android.telephony.Rlog;
import android.util.SparseArray;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.telephony.Rlog;
import java.util.List;
diff --git a/telephony/java/android/telephony/emergency/EmergencyNumber.java b/telephony/java/android/telephony/emergency/EmergencyNumber.java
index cd3fc953f9d2..d9d5c14735ea 100644
--- a/telephony/java/android/telephony/emergency/EmergencyNumber.java
+++ b/telephony/java/android/telephony/emergency/EmergencyNumber.java
@@ -25,6 +25,7 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.telephony.CarrierConfigManager;
import android.telephony.PhoneNumberUtils;
+
import com.android.telephony.Rlog;
import java.lang.annotation.Retention;
diff --git a/telephony/java/android/telephony/ims/ImsConferenceState.java b/telephony/java/android/telephony/ims/ImsConferenceState.java
index abfee61930ed..21bef001efae 100644
--- a/telephony/java/android/telephony/ims/ImsConferenceState.java
+++ b/telephony/java/android/telephony/ims/ImsConferenceState.java
@@ -24,8 +24,8 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.telecom.Call;
import android.telecom.Connection;
+
import com.android.telephony.Rlog;
-import android.util.Log;
import java.util.HashMap;
import java.util.Iterator;
diff --git a/telephony/java/android/telephony/ims/ImsExternalCallState.java b/telephony/java/android/telephony/ims/ImsExternalCallState.java
index 136a83e2eec9..7d73165d4540 100644
--- a/telephony/java/android/telephony/ims/ImsExternalCallState.java
+++ b/telephony/java/android/telephony/ims/ImsExternalCallState.java
@@ -24,6 +24,7 @@ import android.annotation.TestApi;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
+
import com.android.telephony.Rlog;
import java.lang.annotation.Retention;
diff --git a/telephony/java/android/telephony/ims/ImsSsData.java b/telephony/java/android/telephony/ims/ImsSsData.java
index 2d2e63812fad..70bf0c57366d 100644
--- a/telephony/java/android/telephony/ims/ImsSsData.java
+++ b/telephony/java/android/telephony/ims/ImsSsData.java
@@ -22,6 +22,7 @@ import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.os.Parcel;
import android.os.Parcelable;
+
import com.android.telephony.Rlog;
import java.lang.annotation.Retention;
diff --git a/telephony/java/com/android/ims/ImsConfig.java b/telephony/java/com/android/ims/ImsConfig.java
index 0f6ce13a6ce4..96f77d809183 100644
--- a/telephony/java/com/android/ims/ImsConfig.java
+++ b/telephony/java/com/android/ims/ImsConfig.java
@@ -19,13 +19,13 @@ package com.android.ims;
import android.os.Handler;
import android.os.Looper;
import android.os.RemoteException;
-import com.android.telephony.Rlog;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.ProvisioningManager;
import android.telephony.ims.aidl.IImsConfig;
import android.telephony.ims.aidl.IImsConfigCallback;
import com.android.internal.telephony.util.HandlerExecutor;
+import com.android.telephony.Rlog;
import java.util.concurrent.Executor;
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index beb3c8cac41e..168c8b64c194 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -1827,14 +1827,6 @@ interface ITelephony {
boolean switchSlots(in int[] physicalSlots);
/**
- * Sets radio indication update mode. This can be used to control the behavior of indication
- * update from modem to Android frameworks. For example, by default several indication updates
- * are turned off when screen is off, but in some special cases (e.g. carkit is connected but
- * screen is off) we want to turn on those indications even when the screen is off.
- */
- void setRadioIndicationUpdateMode(int subId, int filters, int mode);
-
- /**
* Returns whether mobile data roaming is enabled on the subscription with id {@code subId}.
*
* @param subId the subscription id
diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java
index 9ac8cb136c6b..c40573b25068 100644
--- a/telephony/java/com/android/internal/telephony/RILConstants.java
+++ b/telephony/java/com/android/internal/telephony/RILConstants.java
@@ -233,14 +233,11 @@ public interface RILConstants {
/** NR 5G, LTE, TD-SCDMA, CDMA, EVDO, GSM and WCDMA */
int NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 33;
- /** Default preferred network mode */
- int DEFAULT_PREFERRED_NETWORK_MODE = NETWORK_MODE_WCDMA_PREF;
-
@UnsupportedAppUsage
int PREFERRED_NETWORK_MODE = Optional.of(TelephonyProperties.default_network())
.filter(list -> !list.isEmpty())
.map(list -> list.get(0))
- .orElse(DEFAULT_PREFERRED_NETWORK_MODE);
+ .orElse(NETWORK_MODE_WCDMA_PREF);
int BAND_MODE_UNSPECIFIED = 0; //"unspecified" (selected by baseband automatically)
int BAND_MODE_EURO = 1; //"EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000)
diff --git a/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java b/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java
index 8e86ff788a08..3bd8cdd23df3 100644
--- a/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java
+++ b/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java
@@ -19,12 +19,12 @@ package com.android.internal.telephony;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
-import com.android.telephony.Rlog;
import android.util.SparseIntArray;
import com.android.internal.telephony.cdma.sms.UserData;
import com.android.internal.telephony.util.TelephonyUtils;
import com.android.internal.telephony.util.XmlUtils;
+import com.android.telephony.Rlog;
public class Sms7BitEncodingTranslator {
private static final String TAG = "Sms7BitEncodingTranslator";
diff --git a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java
index d0c8024c56fe..6ed0be24a0f1 100644
--- a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java
+++ b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java
@@ -20,7 +20,6 @@ import android.compat.annotation.UnsupportedAppUsage;
import android.content.res.Resources;
import android.sysprop.TelephonyProperties;
import android.telephony.PhoneNumberUtils;
-import com.android.telephony.Rlog;
import android.telephony.SmsCbLocation;
import android.telephony.SmsCbMessage;
import android.telephony.cdma.CdmaSmsCbProgramData;
@@ -41,6 +40,7 @@ import com.android.internal.telephony.cdma.sms.UserData;
import com.android.internal.telephony.uicc.IccUtils;
import com.android.internal.util.BitwiseInputStream;
import com.android.internal.util.HexDump;
+import com.android.telephony.Rlog;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
diff --git a/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java b/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java
index 6ad6dd119f50..6dc1e0e2c8e4 100644
--- a/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java
+++ b/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java
@@ -18,7 +18,6 @@ package com.android.internal.telephony.cdma.sms;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.res.Resources;
-import com.android.telephony.Rlog;
import android.telephony.SmsCbCmasInfo;
import android.telephony.cdma.CdmaSmsCbProgramData;
import android.telephony.cdma.CdmaSmsCbProgramResults;
@@ -31,6 +30,7 @@ import com.android.internal.telephony.SmsMessageBase;
import com.android.internal.telephony.uicc.IccUtils;
import com.android.internal.util.BitwiseInputStream;
import com.android.internal.util.BitwiseOutputStream;
+import com.android.telephony.Rlog;
import java.io.ByteArrayOutputStream;
import java.time.Instant;
diff --git a/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java b/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java
index c91ea696ec29..08580012ad17 100644
--- a/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java
+++ b/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java
@@ -28,7 +28,6 @@ import static com.android.internal.telephony.SmsConstants.MessageClass;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.res.Resources;
import android.telephony.PhoneNumberUtils;
-import com.android.telephony.Rlog;
import android.text.TextUtils;
import com.android.internal.telephony.EncodeException;
@@ -38,6 +37,7 @@ import com.android.internal.telephony.Sms7BitEncodingTranslator;
import com.android.internal.telephony.SmsHeader;
import com.android.internal.telephony.SmsMessageBase;
import com.android.internal.telephony.uicc.IccUtils;
+import com.android.telephony.Rlog;
import java.io.ByteArrayOutputStream;
import java.io.UnsupportedEncodingException;
diff --git a/telephony/java/com/android/internal/telephony/uicc/IccUtils.java b/telephony/java/com/android/internal/telephony/uicc/IccUtils.java
index 0dc740194034..1d136924aa2c 100644
--- a/telephony/java/com/android/internal/telephony/uicc/IccUtils.java
+++ b/telephony/java/com/android/internal/telephony/uicc/IccUtils.java
@@ -21,10 +21,10 @@ import android.content.res.Resources;
import android.content.res.Resources.NotFoundException;
import android.graphics.Bitmap;
import android.graphics.Color;
-import com.android.telephony.Rlog;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.GsmAlphabet;
+import com.android.telephony.Rlog;
import java.io.UnsupportedEncodingException;
import java.util.List;
diff --git a/test-mock/src/android/test/mock/MockContext.java b/test-mock/src/android/test/mock/MockContext.java
index 36074edd187e..359c44849634 100644
--- a/test-mock/src/android/test/mock/MockContext.java
+++ b/test-mock/src/android/test/mock/MockContext.java
@@ -812,7 +812,7 @@ public class MockContext extends Context {
}
@Override
- public @NonNull Context createWindowContext(int type) {
+ public @NonNull Context createWindowContext(int type, Bundle options) {
throw new UnsupportedOperationException();
}
diff --git a/test-mock/src/android/test/mock/MockPackageManager.java b/test-mock/src/android/test/mock/MockPackageManager.java
index 14b847fa9ff6..5f95bc124de6 100644
--- a/test-mock/src/android/test/mock/MockPackageManager.java
+++ b/test-mock/src/android/test/mock/MockPackageManager.java
@@ -1249,12 +1249,4 @@ public class MockPackageManager extends PackageManager {
int uid, byte[] certificate, @PackageManager.CertificateInputType int type) {
throw new UnsupportedOperationException();
}
-
- /**
- * @hide
- */
- @Override
- public String getSystemTextClassifierPackageName() {
- throw new UnsupportedOperationException();
- }
}
diff --git a/test-runner/src/android/test/TouchUtils.java b/test-runner/src/android/test/TouchUtils.java
index 28dc7b2f900c..bb4e00ba1ef9 100644
--- a/test-runner/src/android/test/TouchUtils.java
+++ b/test-runner/src/android/test/TouchUtils.java
@@ -222,7 +222,8 @@ public class TouchUtils {
*/
public static void dragViewToBottom(InstrumentationTestCase test, Activity activity, View v,
int stepCount) {
- int screenHeight = activity.getWindowManager().getDefaultDisplay().getHeight();
+ int screenHeight =
+ activity.getWindowManager().getCurrentWindowMetrics().getSize().getHeight();
int[] xy = new int[2];
v.getLocationOnScreen(xy);
diff --git a/tests/BlobStoreTestUtils/Android.bp b/tests/BlobStoreTestUtils/Android.bp
new file mode 100644
index 000000000000..edd2b435f1da
--- /dev/null
+++ b/tests/BlobStoreTestUtils/Android.bp
@@ -0,0 +1,20 @@
+// Copyright (C) 2020 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+java_library {
+ name: "BlobStoreTestUtils",
+ srcs: ["src/**/*.java"],
+ static_libs: ["truth-prebuilt"],
+ platform_apis: true
+} \ No newline at end of file
diff --git a/tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java b/tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java
new file mode 100644
index 000000000000..f96766a1d3ad
--- /dev/null
+++ b/tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java
@@ -0,0 +1,227 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.utils.blob;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.blob.BlobHandle;
+import android.app.blob.BlobStoreManager;
+import android.content.Context;
+import android.os.FileUtils;
+import android.os.ParcelFileDescriptor;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileDescriptor;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.RandomAccessFile;
+import java.nio.file.Files;
+import java.security.MessageDigest;
+import java.util.Random;
+import java.util.concurrent.TimeUnit;
+
+public class DummyBlobData {
+ private static final long DEFAULT_SIZE_BYTES = 10 * 1024L * 1024L;
+ private static final int BUFFER_SIZE_BYTES = 16 * 1024;
+
+ private final Context mContext;
+ private final Random mRandom;
+ private final File mFile;
+ private final long mFileSize;
+ private final String mLabel;
+
+ byte[] mFileDigest;
+ long mExpiryTimeMs;
+
+ public DummyBlobData(Context context) {
+ this(context, new Random(0), "blob_" + System.nanoTime());
+ }
+
+ public DummyBlobData(Context context, long fileSize) {
+ this(context, fileSize, new Random(0), "blob_" + System.nanoTime(), "Test label");
+ }
+
+ public DummyBlobData(Context context, Random random, String fileName) {
+ this(context, DEFAULT_SIZE_BYTES, random, fileName, "Test label");
+ }
+
+ public DummyBlobData(Context context, Random random, String fileName, String label) {
+ this(context, DEFAULT_SIZE_BYTES, random, fileName, label);
+ }
+
+ public DummyBlobData(Context context, long fileSize, Random random, String fileName,
+ String label) {
+ mContext = context;
+ mRandom = random;
+ mFile = new File(mContext.getFilesDir(), fileName);
+ mFileSize = fileSize;
+ mLabel = label;
+ }
+
+ public void prepare() throws Exception {
+ try (RandomAccessFile file = new RandomAccessFile(mFile, "rw")) {
+ writeRandomData(file, mFileSize);
+ }
+ mFileDigest = FileUtils.digest(mFile, "SHA-256");
+ mExpiryTimeMs = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(1);
+ }
+
+ public BlobHandle getBlobHandle() throws Exception {
+ return BlobHandle.createWithSha256(createSha256Digest(mFile), mLabel,
+ mExpiryTimeMs, "test_tag");
+ }
+
+ public long getFileSize() throws Exception {
+ return mFileSize;
+ }
+
+ public long getExpiryTimeMillis() {
+ return mExpiryTimeMs;
+ }
+
+ public void delete() {
+ mFile.delete();
+ }
+
+ public void writeToSession(BlobStoreManager.Session session) throws Exception {
+ writeToSession(session, 0, mFileSize);
+ }
+
+ public void writeToSession(BlobStoreManager.Session session,
+ long offsetBytes, long lengthBytes) throws Exception {
+ try (FileInputStream in = new FileInputStream(mFile)) {
+ in.getChannel().position(offsetBytes);
+ try (FileOutputStream out = new ParcelFileDescriptor.AutoCloseOutputStream(
+ session.openWrite(offsetBytes, lengthBytes))) {
+ copy(in, out, lengthBytes);
+ }
+ }
+ }
+
+ public void writeToFd(FileDescriptor fd, long offsetBytes, long lengthBytes) throws Exception {
+ try (FileInputStream in = new FileInputStream(mFile)) {
+ in.getChannel().position(offsetBytes);
+ try (FileOutputStream out = new FileOutputStream(fd)) {
+ copy(in, out, lengthBytes);
+ }
+ }
+ }
+
+ private void copy(InputStream in, OutputStream out, long lengthBytes) throws Exception {
+ final byte[] buffer = new byte[BUFFER_SIZE_BYTES];
+ long bytesWrittern = 0;
+ while (bytesWrittern < lengthBytes) {
+ final int toWrite = (bytesWrittern + buffer.length <= lengthBytes)
+ ? buffer.length : (int) (lengthBytes - bytesWrittern);
+ in.read(buffer, 0, toWrite);
+ out.write(buffer, 0, toWrite);
+ bytesWrittern += toWrite;
+ }
+ }
+
+ public void readFromSessionAndVerifyBytes(BlobStoreManager.Session session,
+ long offsetBytes, int lengthBytes) throws Exception {
+ final byte[] expectedBytes = new byte[lengthBytes];
+ try (FileInputStream in = new FileInputStream(mFile)) {
+ read(in, expectedBytes, offsetBytes, lengthBytes);
+ }
+
+ final byte[] actualBytes = new byte[lengthBytes];
+ try (FileInputStream in = new ParcelFileDescriptor.AutoCloseInputStream(
+ session.openWrite(0L, 0L))) {
+ read(in, actualBytes, offsetBytes, lengthBytes);
+ }
+
+ assertThat(actualBytes).isEqualTo(expectedBytes);
+
+ }
+
+ private void read(FileInputStream in, byte[] buffer,
+ long offsetBytes, int lengthBytes) throws Exception {
+ in.getChannel().position(offsetBytes);
+ in.read(buffer, 0, lengthBytes);
+ }
+
+ public void readFromSessionAndVerifyDigest(BlobStoreManager.Session session)
+ throws Exception {
+ readFromSessionAndVerifyDigest(session, 0, mFile.length());
+ }
+
+ public void readFromSessionAndVerifyDigest(BlobStoreManager.Session session,
+ long offsetBytes, long lengthBytes) throws Exception {
+ final byte[] actualDigest;
+ try (FileInputStream in = new ParcelFileDescriptor.AutoCloseInputStream(
+ session.openWrite(0L, 0L))) {
+ actualDigest = createSha256Digest(in, offsetBytes, lengthBytes);
+ }
+
+ assertThat(actualDigest).isEqualTo(mFileDigest);
+ }
+
+ public void verifyBlob(ParcelFileDescriptor pfd) throws Exception {
+ final byte[] actualDigest;
+ try (FileInputStream in = new ParcelFileDescriptor.AutoCloseInputStream(pfd)) {
+ actualDigest = FileUtils.digest(in, "SHA-256");
+ }
+ assertThat(actualDigest).isEqualTo(mFileDigest);
+ }
+
+ private byte[] createSha256Digest(FileInputStream in, long offsetBytes, long lengthBytes)
+ throws Exception {
+ final MessageDigest digest = MessageDigest.getInstance("SHA-256");
+ in.getChannel().position(offsetBytes);
+ final byte[] buffer = new byte[BUFFER_SIZE_BYTES];
+ long bytesRead = 0;
+ while (bytesRead < lengthBytes) {
+ int toRead = (bytesRead + buffer.length <= lengthBytes)
+ ? buffer.length : (int) (lengthBytes - bytesRead);
+ toRead = in.read(buffer, 0, toRead);
+ digest.update(buffer, 0, toRead);
+ bytesRead += toRead;
+ }
+ return digest.digest();
+ }
+
+ private byte[] createSha256Digest(File file) throws Exception {
+ final MessageDigest digest = MessageDigest.getInstance("SHA-256");
+ try (BufferedInputStream in = new BufferedInputStream(
+ Files.newInputStream(file.toPath()))) {
+ final byte[] buffer = new byte[BUFFER_SIZE_BYTES];
+ int bytesRead;
+ while ((bytesRead = in.read(buffer)) > 0) {
+ digest.update(buffer, 0, bytesRead);
+ }
+ }
+ return digest.digest();
+ }
+
+ private void writeRandomData(RandomAccessFile file, long fileSize)
+ throws Exception {
+ long bytesWritten = 0;
+ final byte[] buffer = new byte[BUFFER_SIZE_BYTES];
+ while (bytesWritten < fileSize) {
+ mRandom.nextBytes(buffer);
+ final int toWrite = (bytesWritten + buffer.length <= fileSize)
+ ? buffer.length : (int) (fileSize - bytesWritten);
+ file.seek(bytesWritten);
+ file.write(buffer, 0, toWrite);
+ bytesWritten += toWrite;
+ }
+ }
+}
diff --git a/tests/GamePerformance/src/android/gameperformance/BaseTest.java b/tests/GamePerformance/src/android/gameperformance/BaseTest.java
index b0640b444914..e7057565499c 100644
--- a/tests/GamePerformance/src/android/gameperformance/BaseTest.java
+++ b/tests/GamePerformance/src/android/gameperformance/BaseTest.java
@@ -21,7 +21,6 @@ import java.util.concurrent.TimeUnit;
import android.annotation.NonNull;
import android.content.Context;
import android.util.Log;
-import android.view.WindowManager;
/**
* Base class for a test that performs bisection to determine maximum
@@ -55,9 +54,7 @@ public abstract class BaseTest {
public BaseTest(@NonNull GamePerformanceActivity activity) {
mActivity = activity;
- final WindowManager windowManager =
- (WindowManager)getContext().getSystemService(Context.WINDOW_SERVICE);
- mRefreshRate = windowManager.getDefaultDisplay().getRefreshRate();
+ mRefreshRate = activity.getDisplay().getRefreshRate();
}
@NonNull
diff --git a/tests/GamePerformance/src/android/gameperformance/CustomControlView.java b/tests/GamePerformance/src/android/gameperformance/CustomControlView.java
index 219085a83b2c..e63736b9ee61 100644
--- a/tests/GamePerformance/src/android/gameperformance/CustomControlView.java
+++ b/tests/GamePerformance/src/android/gameperformance/CustomControlView.java
@@ -25,18 +25,16 @@ import android.annotation.WorkerThread;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
+import android.graphics.Point;
import android.graphics.drawable.AnimationDrawable;
-import android.util.Log;
-import android.view.WindowManager;
import android.widget.AbsoluteLayout;
import android.widget.ImageView;
-import android.widget.RelativeLayout;
/**
* View that holds requested number of UI controls as ImageView with an infinite animation.
*/
public class CustomControlView extends AbsoluteLayout {
- private final static int CONTROL_DIMENTION = 48;
+ private final static int CONTROL_DIMENSION = 48;
private final int mPerRowControlCount;
private List<Long> mFrameTimes = new ArrayList<>();
@@ -44,8 +42,9 @@ public class CustomControlView extends AbsoluteLayout {
public CustomControlView(@NonNull Context context) {
super(context);
- final WindowManager windowManager = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
- mPerRowControlCount = windowManager.getDefaultDisplay().getWidth() / CONTROL_DIMENTION;
+ final Point size = new Point();
+ context.getDisplay().getSize(size);
+ mPerRowControlCount = size.x / CONTROL_DIMENSION;
}
/**
@@ -76,11 +75,11 @@ public class CustomControlView extends AbsoluteLayout {
for (int i = 0; i < controlCount; ++i) {
final ImageView image = (i == 0) ?
new ReferenceImageView(activity) : new ImageView(activity);
- final int x = (i % mPerRowControlCount) * CONTROL_DIMENTION;
- final int y = (i / mPerRowControlCount) * CONTROL_DIMENTION;
+ final int x = (i % mPerRowControlCount) * CONTROL_DIMENSION;
+ final int y = (i / mPerRowControlCount) * CONTROL_DIMENSION;
final AbsoluteLayout.LayoutParams layoutParams =
new AbsoluteLayout.LayoutParams(
- CONTROL_DIMENTION, CONTROL_DIMENTION, x, y);
+ CONTROL_DIMENSION, CONTROL_DIMENSION, x, y);
image.setLayoutParams(layoutParams);
image.setBackgroundResource(R.drawable.animation);
final AnimationDrawable animation =
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/TextureViewActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/TextureViewActivity.java
index 0f4c66817a05..6d8c43c00acf 100644
--- a/tests/HwAccelerationTest/src/com/android/test/hwui/TextureViewActivity.java
+++ b/tests/HwAccelerationTest/src/com/android/test/hwui/TextureViewActivity.java
@@ -122,7 +122,7 @@ public class TextureViewActivity extends Activity implements TextureView.Surface
if (info.facing == Camera.CameraInfo.CAMERA_FACING_BACK) break;
}
- int rotation = getWindowManager().getDefaultDisplay().getRotation();
+ int rotation = getDisplay().getRotation();
int degrees = 0;
switch (rotation) {
diff --git a/tests/MirrorSurfaceTest/src/com/google/android/test/mirrorsurface/MirrorSurfaceActivity.java b/tests/MirrorSurfaceTest/src/com/google/android/test/mirrorsurface/MirrorSurfaceActivity.java
index b863713df15b..e255ce234c65 100644
--- a/tests/MirrorSurfaceTest/src/com/google/android/test/mirrorsurface/MirrorSurfaceActivity.java
+++ b/tests/MirrorSurfaceTest/src/com/google/android/test/mirrorsurface/MirrorSurfaceActivity.java
@@ -16,6 +16,7 @@
package com.google.android.test.mirrorsurface;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
import android.app.Activity;
import android.graphics.Canvas;
@@ -26,7 +27,7 @@ import android.graphics.Rect;
import android.os.Bundle;
import android.os.Handler;
import android.os.RemoteException;
-import android.util.DisplayMetrics;
+import android.util.Size;
import android.view.Gravity;
import android.view.IWindowManager;
import android.view.MotionEvent;
@@ -48,6 +49,8 @@ public class MirrorSurfaceActivity extends Activity implements View.OnClickListe
private static final int MOVE_FRAME_AMOUNT = 20;
private IWindowManager mIWm;
+ // An instance of WindowManager that is adjusted for adding windows with type
+ // TYPE_APPLICATION_OVERLAY.
private WindowManager mWm;
private SurfaceControl mSurfaceControl = new SurfaceControl();
@@ -57,7 +60,7 @@ public class MirrorSurfaceActivity extends Activity implements View.OnClickListe
private View mOverlayView;
private View mArrowOverlay;
- private Rect mDisplayBounds = new Rect();
+ private Rect mWindowBounds = new Rect();
private EditText mScaleText;
private EditText mDisplayFrameText;
@@ -83,21 +86,21 @@ public class MirrorSurfaceActivity extends Activity implements View.OnClickListe
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mirror_surface);
- mWm = (WindowManager) getSystemService(WINDOW_SERVICE);
+ mWm = createWindowContext(TYPE_APPLICATION_OVERLAY, null /* options */)
+ .getSystemService(WindowManager.class);
mIWm = WindowManagerGlobal.getWindowManagerService();
- DisplayMetrics displayMetrics = new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
- mDisplayBounds.set(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels);
+ Size windowSize = mWm.getCurrentWindowMetrics().getSize();
+ mWindowBounds.set(0, 0, windowSize.getWidth(), windowSize.getHeight());
mScaleText = findViewById(R.id.scale);
mDisplayFrameText = findViewById(R.id.displayFrame);
mSourcePositionText = findViewById(R.id.sourcePosition);
- mCurrFrame.set(0, 0, mDisplayBounds.width() / 2, mDisplayBounds.height() / 2);
+ mCurrFrame.set(0, 0, mWindowBounds.width() / 2, mWindowBounds.height() / 2);
mCurrScale = DEFAULT_SCALE;
- mDisplayId = getWindowManager().getDefaultDisplay().getDisplayId();
+ mDisplayId = getDisplay().getDisplayId();
updateEditTexts();
findViewById(R.id.mirror_button).setOnClickListener(view -> {
@@ -194,8 +197,8 @@ public class MirrorSurfaceActivity extends Activity implements View.OnClickListe
private void createMirrorOverlay() {
mOverlayView = new LinearLayout(this);
- WindowManager.LayoutParams params = new WindowManager.LayoutParams(mDisplayBounds.width(),
- mDisplayBounds.height(),
+ WindowManager.LayoutParams params = new WindowManager.LayoutParams(mWindowBounds.width(),
+ mWindowBounds.height(),
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
@@ -290,7 +293,7 @@ public class MirrorSurfaceActivity extends Activity implements View.OnClickListe
private void updateMirror(Rect displayFrame, float scale) {
if (displayFrame.isEmpty()) {
- Rect bounds = mDisplayBounds;
+ Rect bounds = mWindowBounds;
int defaultCropW = Math.round(bounds.width() / 2);
int defaultCropH = Math.round(bounds.height() / 2);
displayFrame.set(0, 0, defaultCropW, defaultCropH);
diff --git a/tests/PlatformCompatGating/Android.bp b/tests/PlatformCompatGating/Android.bp
index 609896ea9e95..74dfde848191 100644
--- a/tests/PlatformCompatGating/Android.bp
+++ b/tests/PlatformCompatGating/Android.bp
@@ -18,13 +18,11 @@ android_test {
name: "PlatformCompatGating",
// Only compile source java files in this apk.
srcs: ["src/**/*.java"],
- libs: [
- "android.test.runner",
- "android.test.base",
- ],
static_libs: [
"junit",
- "android-support-test",
+ "androidx.test.runner",
+ "androidx.test.core",
+ "androidx.test.ext.junit",
"mockito-target-minus-junit4",
"truth-prebuilt",
"platform-compat-test-rules"
diff --git a/tests/PlatformCompatGating/AndroidManifest.xml b/tests/PlatformCompatGating/AndroidManifest.xml
index 7f14b83fbc75..c24dc31b7bf3 100644
--- a/tests/PlatformCompatGating/AndroidManifest.xml
+++ b/tests/PlatformCompatGating/AndroidManifest.xml
@@ -6,6 +6,6 @@
<uses-library android:name="android.test.runner" />
</application>
- <instrumentation android:name="android.support.test.runner.AndroidJUnitRunner"
+ <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
android:targetPackage="com.android.tests.gating"/>
</manifest>
diff --git a/tests/PlatformCompatGating/AndroidTest.xml b/tests/PlatformCompatGating/AndroidTest.xml
index c62684837332..0c7485b27fb8 100644
--- a/tests/PlatformCompatGating/AndroidTest.xml
+++ b/tests/PlatformCompatGating/AndroidTest.xml
@@ -24,7 +24,6 @@
<test class="com.android.tradefed.testtype.AndroidJUnitTest">
<option name="package" value="com.android.tests.gating"/>
- <option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/>
<option name="hidden-api-checks" value="false"/>
</test>
</configuration>
diff --git a/tests/PlatformCompatGating/src/com/android/tests/gating/PlatformCompatGatingTest.java b/tests/PlatformCompatGating/src/com/android/tests/gating/PlatformCompatGatingTest.java
index dc317f1941c7..c1ce0e99640c 100644
--- a/tests/PlatformCompatGating/src/com/android/tests/gating/PlatformCompatGatingTest.java
+++ b/tests/PlatformCompatGating/src/com/android/tests/gating/PlatformCompatGatingTest.java
@@ -18,8 +18,9 @@ package com.android.tests.gating;
import static com.google.common.truth.Truth.assertThat;
import android.compat.testing.PlatformCompatChangeRule;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
import com.android.compat.testing.DummyApi;
@@ -81,14 +82,14 @@ public class PlatformCompatGatingTest {
@Test
@EnableCompatChanges({DummyApi.CHANGE_SYSTEM_SERVER})
public void testDummyGatingPositiveSystemServer() {
- assertThat(
- DummyApi.dummySystemServer(InstrumentationRegistry.getTargetContext())).isTrue();
+ assertThat(DummyApi.dummySystemServer(
+ InstrumentationRegistry.getInstrumentation().getTargetContext())).isTrue();
}
@Test
@DisableCompatChanges({DummyApi.CHANGE_SYSTEM_SERVER})
public void testDummyGatingNegativeSystemServer() {
- assertThat(
- DummyApi.dummySystemServer(InstrumentationRegistry.getTargetContext())).isFalse();
+ assertThat(DummyApi.dummySystemServer(
+ InstrumentationRegistry.getInstrumentation().getTargetContext())).isFalse();
}
}
diff --git a/tests/PlatformCompatGating/src/com/android/tests/gating/PlatformCompatPermissionsTest.java b/tests/PlatformCompatGating/src/com/android/tests/gating/PlatformCompatPermissionsTest.java
new file mode 100644
index 000000000000..9b9e5815a588
--- /dev/null
+++ b/tests/PlatformCompatGating/src/com/android/tests/gating/PlatformCompatPermissionsTest.java
@@ -0,0 +1,319 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.tests.gating;
+
+import static android.Manifest.permission.LOG_COMPAT_CHANGE;
+import static android.Manifest.permission.OVERRIDE_COMPAT_CHANGE_CONFIG;
+import static android.Manifest.permission.READ_COMPAT_CHANGE_CONFIG;
+
+import android.app.Instrumentation;
+import android.app.UiAutomation;
+import android.compat.Compatibility.ChangeConfig;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.Process;
+import android.os.ServiceManager;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import com.android.internal.compat.CompatibilityChangeConfig;
+import com.android.internal.compat.IPlatformCompat;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import java.util.HashSet;
+import java.util.Set;
+
+@RunWith(JUnit4.class)
+public final class PlatformCompatPermissionsTest {
+
+ // private Context mContext;
+ private IPlatformCompat mPlatformCompat;
+
+ @Rule
+ public final ExpectedException thrown = ExpectedException.none();
+ private Context mContext;
+ private UiAutomation mUiAutomation;
+ private PackageManager mPackageManager;
+
+ @Before
+ public void setUp() {
+ // mContext;
+ mPlatformCompat = IPlatformCompat.Stub
+ .asInterface(ServiceManager.getService(Context.PLATFORM_COMPAT_SERVICE));
+ Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
+ mUiAutomation = instrumentation.getUiAutomation();
+ mContext = instrumentation.getTargetContext();
+
+ mPackageManager = mContext.getPackageManager();
+ }
+
+ @After
+ public void tearDown() {
+
+ mUiAutomation.dropShellPermissionIdentity();
+ }
+
+ @Test
+ public void reportChange_noLogCompatChangePermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+ final String packageName = mContext.getPackageName();
+
+ mPlatformCompat.reportChange(1, mPackageManager.getApplicationInfo(packageName, 0));
+ }
+
+ @Test
+ public void reportChange_logCompatChangePermission_noThrow()
+ throws Throwable {
+ mUiAutomation.adoptShellPermissionIdentity(LOG_COMPAT_CHANGE);
+ final String packageName = mContext.getPackageName();
+
+ mPlatformCompat.reportChange(1, mPackageManager.getApplicationInfo(packageName, 0));
+ }
+
+ @Test
+ public void reportChangeByPackageName_noLogCompatChangePermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+ final String packageName = mContext.getPackageName();
+
+ mPlatformCompat.reportChangeByPackageName(1, packageName, 0);
+ }
+
+ @Test
+ public void reportChangeByPackageName_logCompatChangePermission_noThrow()
+ throws Throwable {
+ mUiAutomation.adoptShellPermissionIdentity(LOG_COMPAT_CHANGE);
+ final String packageName = mContext.getPackageName();
+
+ mPlatformCompat.reportChangeByPackageName(1, packageName, 0);
+ }
+
+ @Test
+ public void reportChangeByUid_noLogCompatChangePermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+
+ mPlatformCompat.reportChangeByUid(1, Process.myUid());
+ }
+
+ @Test
+ public void reportChangeByUid_logCompatChangePermission_noThrow()
+ throws Throwable {
+ mUiAutomation.adoptShellPermissionIdentity(LOG_COMPAT_CHANGE);
+
+ mPlatformCompat.reportChangeByUid(1, Process.myUid());
+ }
+
+ @Test
+ public void isChangeEnabled_noReadCompatConfigPermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+ final String packageName = mContext.getPackageName();
+
+ mPlatformCompat.isChangeEnabled(1, mPackageManager.getApplicationInfo(packageName, 0));
+ }
+
+ @Test
+ public void isChangeEnabled_noLogCompatChangeConfigPermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+ mUiAutomation.adoptShellPermissionIdentity(READ_COMPAT_CHANGE_CONFIG);
+ final String packageName = mContext.getPackageName();
+
+ mPlatformCompat.isChangeEnabled(1, mPackageManager.getApplicationInfo(packageName, 0));
+ }
+
+ @Test
+ public void isChangeEnabled_readAndLogCompatChangeConfigPermission_noThrow()
+ throws Throwable {
+ mUiAutomation.adoptShellPermissionIdentity(READ_COMPAT_CHANGE_CONFIG, LOG_COMPAT_CHANGE);
+ final String packageName = mContext.getPackageName();
+
+ mPlatformCompat.isChangeEnabled(1, mPackageManager.getApplicationInfo(packageName, 0));
+ }
+
+ @Test
+ public void isChangeEnabledByPackageName_noReadCompatConfigPermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+ final String packageName = mContext.getPackageName();
+
+ mPlatformCompat.isChangeEnabledByPackageName(1, packageName, 0);
+ }
+
+ @Test
+ public void isChangeEnabledByPackageName_noLogompatConfigPermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+ mUiAutomation.adoptShellPermissionIdentity(READ_COMPAT_CHANGE_CONFIG);
+ final String packageName = mContext.getPackageName();
+
+ mPlatformCompat.isChangeEnabledByPackageName(1, packageName, 0);
+ }
+
+ @Test
+ public void isChangeEnabledByPackageName_readAndLogCompatChangeConfigPermission_noThrow()
+ throws Throwable {
+ mUiAutomation.adoptShellPermissionIdentity(READ_COMPAT_CHANGE_CONFIG, LOG_COMPAT_CHANGE);
+ final String packageName = mContext.getPackageName();
+
+ mPlatformCompat.isChangeEnabledByPackageName(1, packageName, 0);
+ }
+
+ @Test
+ public void isChangeEnabledByUid_noReadCompatConfigPermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+
+ mPlatformCompat.isChangeEnabledByUid(1, Process.myUid());
+ }
+
+ @Test
+ public void isChangeEnabledByUid_noLogCompatChangePermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+ mUiAutomation.adoptShellPermissionIdentity(READ_COMPAT_CHANGE_CONFIG);
+
+ mPlatformCompat.isChangeEnabledByUid(1, Process.myUid());
+ }
+
+ @Test
+ public void isChangeEnabledByUid_readAndLogCompatChangeConfigPermission_noThrow()
+ throws Throwable {
+ mUiAutomation.adoptShellPermissionIdentity(READ_COMPAT_CHANGE_CONFIG, LOG_COMPAT_CHANGE);
+
+ mPlatformCompat.isChangeEnabledByUid(1, Process.myUid());
+ }
+
+ @Test
+ public void setOverrides_noOverridesPermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+ Set<Long> enabled = new HashSet<>();
+ Set<Long> disabled = new HashSet<>();
+ ChangeConfig changeConfig = new ChangeConfig(enabled, disabled);
+ CompatibilityChangeConfig compatibilityChangeConfig =
+ new CompatibilityChangeConfig(changeConfig);
+
+ mPlatformCompat.setOverrides(compatibilityChangeConfig, "foo.bar");
+ }
+ @Test
+ public void setOverrides_overridesPermission_noThrow()
+ throws Throwable {
+ mUiAutomation.adoptShellPermissionIdentity(OVERRIDE_COMPAT_CHANGE_CONFIG);
+ Set<Long> enabled = new HashSet<>();
+ Set<Long> disabled = new HashSet<>();
+ ChangeConfig changeConfig = new ChangeConfig(enabled, disabled);
+ CompatibilityChangeConfig compatibilityChangeConfig =
+ new CompatibilityChangeConfig(changeConfig);
+
+ mPlatformCompat.setOverrides(compatibilityChangeConfig, "foo.bar");
+ }
+
+ @Test
+ public void setOverridesForTest_noOverridesPermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+ Set<Long> enabled = new HashSet<>();
+ Set<Long> disabled = new HashSet<>();
+ ChangeConfig changeConfig = new ChangeConfig(enabled, disabled);
+ CompatibilityChangeConfig compatibilityChangeConfig =
+ new CompatibilityChangeConfig(changeConfig);
+
+ mPlatformCompat.setOverridesForTest(compatibilityChangeConfig, "foo.bar");
+ }
+ @Test
+ public void setOverridesForTest_overridesPermission_noThrow()
+ throws Throwable {
+ mUiAutomation.adoptShellPermissionIdentity(OVERRIDE_COMPAT_CHANGE_CONFIG);
+ Set<Long> enabled = new HashSet<>();
+ Set<Long> disabled = new HashSet<>();
+ ChangeConfig changeConfig = new ChangeConfig(enabled, disabled);
+ CompatibilityChangeConfig compatibilityChangeConfig =
+ new CompatibilityChangeConfig(changeConfig);
+
+ mPlatformCompat.setOverridesForTest(compatibilityChangeConfig, "foo.bar");
+ }
+
+ @Test
+ public void clearOverrides_noOverridesPermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+
+ mPlatformCompat.clearOverrides("foo.bar");
+ }
+ @Test
+ public void clearOverrides_overridesPermission_noThrow()
+ throws Throwable {
+ mUiAutomation.adoptShellPermissionIdentity(OVERRIDE_COMPAT_CHANGE_CONFIG);
+
+ mPlatformCompat.clearOverrides("foo.bar");
+ }
+
+ @Test
+ public void clearOverridesForTest_noOverridesPermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+
+ mPlatformCompat.clearOverridesForTest("foo.bar");
+ }
+ @Test
+ public void clearOverridesForTest_overridesPermission_noThrow()
+ throws Throwable {
+ mUiAutomation.adoptShellPermissionIdentity(OVERRIDE_COMPAT_CHANGE_CONFIG);
+
+ mPlatformCompat.clearOverridesForTest("foo.bar");
+ }
+
+ @Test
+ public void clearOverride_noOverridesPermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+
+ mPlatformCompat.clearOverride(1, "foo.bar");
+ }
+ @Test
+ public void clearOverride_overridesPermission_noThrow()
+ throws Throwable {
+ mUiAutomation.adoptShellPermissionIdentity(OVERRIDE_COMPAT_CHANGE_CONFIG);
+
+ mPlatformCompat.clearOverride(1, "foo.bar");
+ }
+
+ @Test
+ public void listAllChanges_noReadCompatConfigPermission_throwsSecurityException()
+ throws Throwable {
+ thrown.expect(SecurityException.class);
+
+ mPlatformCompat.listAllChanges();
+ }
+ @Test
+ public void listAllChanges_readCompatConfigPermission_noThrow()
+ throws Throwable {
+ mUiAutomation.adoptShellPermissionIdentity(READ_COMPAT_CHANGE_CONFIG);
+
+ mPlatformCompat.listAllChanges();
+ }
+}
diff --git a/tests/PlatformCompatGating/test-rules/Android.bp b/tests/PlatformCompatGating/test-rules/Android.bp
index 8211ef523ee7..10fa2dc0d7c6 100644
--- a/tests/PlatformCompatGating/test-rules/Android.bp
+++ b/tests/PlatformCompatGating/test-rules/Android.bp
@@ -19,7 +19,7 @@ java_library {
srcs: ["src/**/*.java"],
static_libs: [
"junit",
- "android-support-test",
+ "androidx.test.core",
"truth-prebuilt",
"core-compat-test-rules"
],
diff --git a/tests/PlatformCompatGating/test-rules/src/android/compat/testing/PlatformCompatChangeRule.java b/tests/PlatformCompatGating/test-rules/src/android/compat/testing/PlatformCompatChangeRule.java
index c00aa2ac25b3..d6846faa5c00 100644
--- a/tests/PlatformCompatGating/test-rules/src/android/compat/testing/PlatformCompatChangeRule.java
+++ b/tests/PlatformCompatGating/test-rules/src/android/compat/testing/PlatformCompatChangeRule.java
@@ -24,7 +24,9 @@ import android.compat.Compatibility.ChangeConfig;
import android.content.Context;
import android.os.RemoteException;
import android.os.ServiceManager;
-import android.support.test.InstrumentationRegistry;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+
import com.android.internal.compat.CompatibilityChangeConfig;
import com.android.internal.compat.IPlatformCompat;
@@ -93,8 +95,9 @@ public class PlatformCompatChangeRule extends CoreCompatChangeRule {
throw new IllegalStateException("Could not get IPlatformCompat service!");
}
uiAutomation.adoptShellPermissionIdentity(
- Manifest.permission.READ_COMPAT_CHANGE_CONFIG,
- Manifest.permission.OVERRIDE_COMPAT_CHANGE_CONFIG);
+ Manifest.permission.LOG_COMPAT_CHANGE,
+ Manifest.permission.OVERRIDE_COMPAT_CHANGE_CONFIG,
+ Manifest.permission.READ_COMPAT_CHANGE_CONFIG);
Compatibility.setOverrides(mConfig);
try {
platformCompat.setOverridesForTest(new CompatibilityChangeConfig(mConfig),
diff --git a/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java b/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java
index ce2f7c50e581..032f18240a55 100644
--- a/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java
+++ b/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java
@@ -23,6 +23,8 @@ import static org.junit.Assume.assumeTrue;
import static org.testng.Assert.assertThrows;
import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
+import com.android.tradefed.device.LogcatReceiver;
+import com.android.tradefed.result.InputStreamSource;
import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
import com.android.tradefed.testtype.junit4.BaseHostJUnit4Test;
@@ -31,11 +33,18 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import java.io.BufferedReader;
import java.io.File;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* Runs the staged rollback tests.
+ *
+ * TODO(gavincorkery): Support the verification of logging parents in Watchdog metrics.
*/
@RunWith(DeviceJUnit4ClassRunner.class)
public class StagedRollbackTest extends BaseHostJUnit4Test {
@@ -54,6 +63,7 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
}
private static final String APK_IN_APEX_TESTAPEX_NAME = "com.android.apex.apkrollback.test";
+ private static final String TESTAPP_A = "com.android.cts.install.lib.testapp.A";
private static final String TEST_SUBDIR = "/subdir/";
@@ -66,8 +76,19 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
private static final String TEST_FILENAME_4 = "one_more.test";
private static final String TEST_STRING_4 = "once more unto the test";
+ private static final String REASON_APP_CRASH = "REASON_APP_CRASH";
+ private static final String REASON_NATIVE_CRASH = "REASON_NATIVE_CRASH";
+ private static final String REASON_EXPLICIT_HEALTH_CHECK = "REASON_EXPLICIT_HEALTH_CHECK";
+
+ private static final String ROLLBACK_INITIATE = "ROLLBACK_INITIATE";
+ private static final String ROLLBACK_BOOT_TRIGGERED = "ROLLBACK_BOOT_TRIGGERED";
+
+ private LogcatReceiver mReceiver;
+
@Before
public void setUp() throws Exception {
+ mReceiver = new LogcatReceiver(getDevice(), "logcat -s WatchdogRollbackLogger",
+ getDevice().getOptions().getMaxLogcatDataSize(), 0);
if (!getDevice().isAdbRoot()) {
getDevice().enableAdbRoot();
}
@@ -77,10 +98,13 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
+ "/data/apex/active/" + APK_IN_APEX_TESTAPEX_NAME + "*.apex");
getDevice().reboot();
runPhase("testCleanUp");
+ mReceiver.start();
}
@After
public void tearDown() throws Exception {
+ mReceiver.stop();
+ mReceiver.clear();
runPhase("testCleanUp");
if (!getDevice().isAdbRoot()) {
@@ -110,6 +134,16 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
getDevice().waitForDeviceAvailable();
runPhase("testBadApkOnly_Phase4");
+ InputStreamSource logcatStream = mReceiver.getLogcatData();
+ try {
+ List<String> watchdogEvents = getWatchdogLoggingEvents(logcatStream);
+ assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_INITIATE, null,
+ REASON_APP_CRASH, TESTAPP_A));
+ assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_BOOT_TRIGGERED, null,
+ null, null));
+ } finally {
+ logcatStream.close();
+ }
}
@Test
@@ -137,6 +171,16 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
// verify rollback committed
runPhase("testNativeWatchdogTriggersRollback_Phase3");
+ InputStreamSource logcatStream = mReceiver.getLogcatData();
+ try {
+ List<String> watchdogEvents = getWatchdogLoggingEvents(logcatStream);
+ assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_INITIATE, null,
+ REASON_NATIVE_CRASH, null));
+ assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_BOOT_TRIGGERED, null,
+ null, null));
+ } finally {
+ logcatStream.close();
+ }
}
@Test
@@ -171,6 +215,16 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
// verify all available rollbacks have been committed
runPhase("testNativeWatchdogTriggersRollbackForAll_Phase4");
+ InputStreamSource logcatStream = mReceiver.getLogcatData();
+ try {
+ List<String> watchdogEvents = getWatchdogLoggingEvents(logcatStream);
+ assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_INITIATE, null,
+ REASON_NATIVE_CRASH, null));
+ assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_BOOT_TRIGGERED, null,
+ null, null));
+ } finally {
+ logcatStream.close();
+ }
}
/**
@@ -194,6 +248,16 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
getDevice().waitForDeviceAvailable();
// Verify rollback was executed after health check deadline
runPhase("testNetworkFailedRollback_Phase4");
+ InputStreamSource logcatStream = mReceiver.getLogcatData();
+ try {
+ List<String> watchdogEvents = getWatchdogLoggingEvents(logcatStream);
+ assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_INITIATE, null,
+ REASON_EXPLICIT_HEALTH_CHECK, null));
+ assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_BOOT_TRIGGERED, null,
+ null, null));
+ } finally {
+ logcatStream.close();
+ }
} finally {
// Reconnect internet again so we won't break tests which assume internet available
getDevice().executeShellCommand("svc wifi enable");
@@ -223,6 +287,15 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
// Verify rollback was not executed after health check deadline
runPhase("testNetworkPassedDoesNotRollback_Phase3");
+ InputStreamSource logcatStream = mReceiver.getLogcatData();
+ try {
+ List<String> watchdogEvents = getWatchdogLoggingEvents(logcatStream);
+ assertEquals(watchdogEventOccurred(watchdogEvents, null, null,
+ REASON_EXPLICIT_HEALTH_CHECK, null), false);
+ } finally {
+ logcatStream.close();
+ }
+
}
/**
@@ -288,6 +361,16 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
getDevice().waitForDeviceAvailable();
// Verify rollback occurred due to crash of apk-in-apex
runPhase("testRollbackApexWithApkCrashing_Phase3");
+ InputStreamSource logcatStream = mReceiver.getLogcatData();
+ try {
+ List<String> watchdogEvents = getWatchdogLoggingEvents(logcatStream);
+ assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_INITIATE, null,
+ REASON_APP_CRASH, TESTAPP_A));
+ assertTrue(watchdogEventOccurred(watchdogEvents, ROLLBACK_BOOT_TRIGGERED, null,
+ null, null));
+ } finally {
+ logcatStream.close();
+ }
}
/**
@@ -329,6 +412,46 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
}
/**
+ * Tests that data in DE (user) apex data directory is restored when apex is rolled back.
+ */
+ @Test
+ public void testRollbackApexDataDirectories_DeUser() throws Exception {
+ pushTestApex();
+
+ // Push files to apex data directory
+ String oldFilePath1 = apexDataDirDeUser(
+ APK_IN_APEX_TESTAPEX_NAME, 0) + "/" + TEST_FILENAME_1;
+ String oldFilePath2 =
+ apexDataDirDeUser(APK_IN_APEX_TESTAPEX_NAME, 0) + TEST_SUBDIR + TEST_FILENAME_2;
+ assertTrue(getDevice().pushString(TEST_STRING_1, oldFilePath1));
+ assertTrue(getDevice().pushString(TEST_STRING_2, oldFilePath2));
+
+ // Install new version of the APEX with rollback enabled
+ runPhase("testRollbackApexDataDirectories_Phase1");
+ getDevice().reboot();
+
+ // Replace files in data directory
+ getDevice().deleteFile(oldFilePath1);
+ getDevice().deleteFile(oldFilePath2);
+ String newFilePath3 =
+ apexDataDirDeUser(APK_IN_APEX_TESTAPEX_NAME, 0) + "/" + TEST_FILENAME_3;
+ String newFilePath4 =
+ apexDataDirDeUser(APK_IN_APEX_TESTAPEX_NAME, 0) + TEST_SUBDIR + TEST_FILENAME_4;
+ assertTrue(getDevice().pushString(TEST_STRING_3, newFilePath3));
+ assertTrue(getDevice().pushString(TEST_STRING_4, newFilePath4));
+
+ // Roll back the APEX
+ runPhase("testRollbackApexDataDirectories_Phase2");
+ getDevice().reboot();
+
+ // Verify that old files have been restored and new files are gone
+ assertEquals(TEST_STRING_1, getDevice().pullFileContents(oldFilePath1));
+ assertEquals(TEST_STRING_2, getDevice().pullFileContents(oldFilePath2));
+ assertNull(getDevice().pullFile(newFilePath3));
+ assertNull(getDevice().pullFile(newFilePath4));
+ }
+
+ /**
* Tests that data in CE apex data directory is restored when apex is rolled back.
*/
@Test
@@ -382,6 +505,10 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
return String.format("/data/misc/apexdata/%s", apexName);
}
+ private static String apexDataDirDeUser(String apexName, int userId) {
+ return String.format("/data/misc_de/%d/apexdata/%s", userId, apexName);
+ }
+
private static String apexDataDirCe(String apexName, int userId) {
return String.format("/data/misc_ce/%d/apexdata/%s", userId, apexName);
}
@@ -413,4 +540,57 @@ public class StagedRollbackTest extends BaseHostJUnit4Test {
return false;
}
}
+
+ /**
+ * Returns a list of all Watchdog logging events which have occurred.
+ */
+ private List<String> getWatchdogLoggingEvents(InputStreamSource inputStreamSource)
+ throws Exception {
+ List<String> watchdogEvents = new ArrayList<>();
+ InputStream inputStream = inputStreamSource.createInputStream();
+ BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
+ String line;
+ while ((line = reader.readLine()) != null) {
+ if (line.contains("Watchdog event occurred")) {
+ watchdogEvents.add(line);
+ }
+ }
+ return watchdogEvents;
+ }
+
+ /**
+ * Returns whether a Watchdog event has occurred that matches the given criteria.
+ *
+ * Check the value of all non-null parameters against the list of Watchdog events that have
+ * occurred, and return {@code true} if an event exists which matches all criteria.
+ */
+ private boolean watchdogEventOccurred(List<String> loggingEvents,
+ String type, String logPackage,
+ String rollbackReason, String failedPackageName) throws Exception {
+ List<String> eventCriteria = new ArrayList<>();
+ if (type != null) {
+ eventCriteria.add("type: " + type);
+ }
+ if (logPackage != null) {
+ eventCriteria.add("logPackage: " + logPackage);
+ }
+ if (rollbackReason != null) {
+ eventCriteria.add("rollbackReason: " + rollbackReason);
+ }
+ if (failedPackageName != null) {
+ eventCriteria.add("failedPackageName: " + failedPackageName);
+ }
+ for (String loggingEvent: loggingEvents) {
+ boolean matchesCriteria = true;
+ for (String criterion: eventCriteria) {
+ if (!loggingEvent.contains(criterion)) {
+ matchesCriteria = false;
+ }
+ }
+ if (matchesCriteria) {
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/tests/SurfaceComposition/src/android/surfacecomposition/SurfaceCompositionMeasuringActivity.java b/tests/SurfaceComposition/src/android/surfacecomposition/SurfaceCompositionMeasuringActivity.java
index 4771b6cfc750..e0a96689c191 100644
--- a/tests/SurfaceComposition/src/android/surfacecomposition/SurfaceCompositionMeasuringActivity.java
+++ b/tests/SurfaceComposition/src/android/surfacecomposition/SurfaceCompositionMeasuringActivity.java
@@ -23,7 +23,6 @@ import android.app.ActionBar;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.MemoryInfo;
-import android.content.Context;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.graphics.PixelFormat;
@@ -531,8 +530,7 @@ public class SurfaceCompositionMeasuringActivity extends Activity implements OnC
}
private void detectRefreshRate() {
- WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
- mRefreshRate = wm.getDefaultDisplay().getRefreshRate();
+ mRefreshRate = getDisplay().getRefreshRate();
if (mRefreshRate < MIN_REFRESH_RATE_SUPPORTED)
throw new RuntimeException("Unsupported display refresh rate: " + mRefreshRate);
mTargetFPS = mRefreshRate - 2.0f;
diff --git a/tests/TaskOrganizerTest/AndroidManifest.xml b/tests/TaskOrganizerTest/AndroidManifest.xml
index 0cb6c10a7ff5..a77d7ee80242 100644
--- a/tests/TaskOrganizerTest/AndroidManifest.xml
+++ b/tests/TaskOrganizerTest/AndroidManifest.xml
@@ -19,5 +19,11 @@
<service android:name=".TaskOrganizerPipTest"
android:exported="true">
</service>
+ <activity android:name="TaskOrganizerMultiWindowTest" android:label="TaskOrganizer MW Test">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="android.intent.category.LAUNCHER"/>
+ </intent-filter>
+ </activity>
</application>
</manifest>
diff --git a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java
new file mode 100644
index 000000000000..3fb0050d0c55
--- /dev/null
+++ b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerMultiWindowTest.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.test.taskembed;
+
+import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW;
+
+import android.app.ActivityManager;
+import android.app.Activity;
+import android.app.ActivityOptions;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Rect;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.view.ITaskOrganizer;
+import android.view.IWindowContainer;
+import android.view.SurfaceControl;
+import android.view.SurfaceHolder;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+
+public class TaskOrganizerMultiWindowTest extends Activity {
+ class TaskLaunchingView extends TaskView {
+ TaskLaunchingView(Context c, ITaskOrganizer o, int windowingMode) {
+ super(c, o, windowingMode);
+ }
+
+ @Override
+ public void surfaceChanged(SurfaceHolder h, int format, int width, int height) {
+ startCalculatorActivity(width, height);
+ }
+ }
+ TaskView mView;
+
+ class Organizer extends ITaskOrganizer.Stub {
+ @Override
+ public void taskAppeared(ActivityManager.RunningTaskInfo ti) {
+ mView.reparentTask(ti.token);
+ }
+ public void taskVanished(IWindowContainer wc) {
+ }
+ public void transactionReady(int id, SurfaceControl.Transaction t) {
+ }
+ @Override
+ public void onTaskInfoChanged(ActivityManager.RunningTaskInfo info) {
+ }
+ }
+
+ Organizer mOrganizer = new Organizer();
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ mView = new TaskLaunchingView(this, mOrganizer, WINDOWING_MODE_MULTI_WINDOW);
+ setContentView(mView);
+ }
+
+ Intent makeCalculatorIntent() {
+ Intent intent = new Intent();
+ intent.setAction(Intent.ACTION_MAIN);
+ intent.addCategory(Intent.CATEGORY_APP_CALCULATOR);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ return intent;
+ }
+
+ Bundle makeLaunchOptions(int width, int height) {
+ ActivityOptions o = ActivityOptions.makeBasic();
+ o.setLaunchWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
+ o.setLaunchBounds(new Rect(0, 0, width, height));
+ return o.toBundle();
+ }
+
+ void startCalculatorActivity(int width, int height) {
+ startActivity(makeCalculatorIntent(), makeLaunchOptions(width, height));
+ }
+}
diff --git a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java
index 6ffa19d4ec98..bdfaaa8f11ea 100644
--- a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java
+++ b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskOrganizerPipTest.java
@@ -16,21 +16,19 @@
package com.android.test.taskembed;
+import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
+
import android.app.ActivityManager;
import android.app.ActivityTaskManager;
import android.app.Service;
-import android.app.WindowConfiguration;
-import android.content.Context;
import android.content.Intent;
import android.graphics.Rect;
import android.os.IBinder;
import android.view.ITaskOrganizer;
import android.view.IWindowContainer;
-import android.view.WindowContainerTransaction;
import android.view.SurfaceControl;
-import android.view.SurfaceHolder;
-import android.view.SurfaceView;
import android.view.ViewGroup;
+import android.view.WindowContainerTransaction;
import android.view.WindowManager;
import android.widget.FrameLayout;
@@ -38,53 +36,16 @@ public class TaskOrganizerPipTest extends Service {
static final int PIP_WIDTH = 640;
static final int PIP_HEIGHT = 360;
- class PipOrgView extends SurfaceView implements SurfaceHolder.Callback {
- PipOrgView(Context c) {
- super(c);
- getHolder().addCallback(this);
- setZOrderOnTop(true);
- }
- @Override
- public void surfaceCreated(SurfaceHolder holder) {
- try {
- ActivityTaskManager.getService().registerTaskOrganizer(mOrganizer,
- WindowConfiguration.WINDOWING_MODE_PINNED);
- } catch (Exception e) {
- }
- }
-
- @Override
- public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
- }
-
- @Override
- public void surfaceDestroyed(SurfaceHolder holder) {
- }
-
- void reparentTask(IWindowContainer wc) {
- SurfaceControl.Transaction t = new SurfaceControl.Transaction();
- SurfaceControl leash = null;
- try {
- leash = wc.getLeash();
- } catch (Exception e) {
- // System server died.. oh well
- }
- t.reparent(leash, getSurfaceControl())
- .setPosition(leash, 0, 0)
- .apply();
- }
- }
-
- PipOrgView mPipView;
+ TaskView mTaskView;
class Organizer extends ITaskOrganizer.Stub {
- public void taskAppeared(IWindowContainer wc, ActivityManager.RunningTaskInfo ti) {
- mPipView.reparentTask(wc);
+ public void taskAppeared(ActivityManager.RunningTaskInfo ti) {
+ mTaskView.reparentTask(ti.token);
final WindowContainerTransaction wct = new WindowContainerTransaction();
- wct.scheduleFinishEnterPip(wc, new Rect(0, 0, PIP_WIDTH, PIP_HEIGHT));
+ wct.scheduleFinishEnterPip(ti.token, new Rect(0, 0, PIP_WIDTH, PIP_HEIGHT));
try {
- ActivityTaskManager.getService().applyContainerTransaction(wct);
+ ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(wct, null);
} catch (Exception e) {
}
}
@@ -92,6 +53,8 @@ public class TaskOrganizerPipTest extends Service {
}
public void transactionReady(int id, SurfaceControl.Transaction t) {
}
+ public void onTaskInfoChanged(ActivityManager.RunningTaskInfo info) {
+ }
}
Organizer mOrganizer = new Organizer();
@@ -113,8 +76,8 @@ public class TaskOrganizerPipTest extends Service {
FrameLayout layout = new FrameLayout(this);
ViewGroup.LayoutParams lp =
new ViewGroup.LayoutParams(PIP_WIDTH, PIP_HEIGHT);
- mPipView = new PipOrgView(this);
- layout.addView(mPipView, lp);
+ mTaskView = new TaskView(this, mOrganizer, WINDOWING_MODE_PINNED);
+ layout.addView(mTaskView, lp);
WindowManager wm = getSystemService(WindowManager.class);
wm.addView(layout, wlp);
diff --git a/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskView.java b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskView.java
new file mode 100644
index 000000000000..9f32bb8a0bf7
--- /dev/null
+++ b/tests/TaskOrganizerTest/src/com/android/test/taskembed/TaskView.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.test.taskembed;
+
+import android.app.ActivityTaskManager;
+import android.content.Context;
+import android.view.ITaskOrganizer;
+import android.view.IWindowContainer;
+import android.view.SurfaceControl;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+
+/**
+ * Simple SurfaceView wrapper which registers a TaskOrganizer
+ * after it's Surface is ready.
+ */
+class TaskView extends SurfaceView implements SurfaceHolder.Callback {
+ final ITaskOrganizer mTaskOrganizer;
+ final int mWindowingMode;
+
+ TaskView(Context c, ITaskOrganizer o, int windowingMode) {
+ super(c);
+ getHolder().addCallback(this);
+ setZOrderOnTop(true);
+
+ mTaskOrganizer = o;
+ mWindowingMode = windowingMode;
+ }
+
+ @Override
+ public void surfaceCreated(SurfaceHolder holder) {
+ try {
+ ActivityTaskManager.getTaskOrganizerController().registerTaskOrganizer(mTaskOrganizer,
+ mWindowingMode);
+ } catch (Exception e) {
+ }
+ }
+
+ @Override
+ public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
+ }
+
+ @Override
+ public void surfaceDestroyed(SurfaceHolder holder) {
+ }
+
+ void reparentTask(IWindowContainer wc) {
+ SurfaceControl.Transaction t = new SurfaceControl.Transaction();
+ SurfaceControl leash = null;
+ try {
+ leash = wc.getLeash();
+ } catch (Exception e) {
+ // System server died.. oh well
+ }
+ t.reparent(leash, getSurfaceControl())
+ .setPosition(leash, 0, 0)
+ .apply();
+ }
+}
diff --git a/tests/net/TEST_MAPPING b/tests/net/TEST_MAPPING
index a7853b68c1c1..005cbe9ffdc4 100644
--- a/tests/net/TEST_MAPPING
+++ b/tests/net/TEST_MAPPING
@@ -1,7 +1,12 @@
{
- "postsubmit": [
+ "presubmit": [
{
"name": "FrameworksNetIntegrationTests"
}
+ ],
+ "postsubmit": [
+ {
+ "name": "FrameworksNetDeflakeTest"
+ }
]
} \ No newline at end of file
diff --git a/tests/net/common/java/android/net/NetworkCapabilitiesTest.java b/tests/net/common/java/android/net/NetworkCapabilitiesTest.java
index 3e4f3d818840..efea91ab91f0 100644
--- a/tests/net/common/java/android/net/NetworkCapabilitiesTest.java
+++ b/tests/net/common/java/android/net/NetworkCapabilitiesTest.java
@@ -272,10 +272,24 @@ public class NetworkCapabilitiesTest {
netCap.setOwnerUid(123);
assertParcelingIsLossless(netCap);
netCap.setSSID(TEST_SSID);
- assertParcelSane(netCap, 13);
+ assertParcelSane(netCap, 15);
}
@Test
+ public void testParcelNetworkCapabilitiesWithRequestorUidAndPackageName() {
+ final NetworkCapabilities netCap = new NetworkCapabilities()
+ .addCapability(NET_CAPABILITY_INTERNET)
+ .setRequestorUid(9304)
+ .setRequestorPackageName("com.android.test")
+ .addCapability(NET_CAPABILITY_EIMS)
+ .addCapability(NET_CAPABILITY_NOT_METERED);
+ assertParcelingIsLossless(netCap);
+ netCap.setSSID(TEST_SSID);
+ assertParcelSane(netCap, 15);
+ }
+
+
+ @Test
public void testOemPaid() {
NetworkCapabilities nc = new NetworkCapabilities();
// By default OEM_PAID is neither in the unwanted or required lists and the network is not
diff --git a/tests/net/common/java/android/net/NetworkScoreTest.kt b/tests/net/common/java/android/net/NetworkScoreTest.kt
index 30836b7c9be1..a63d58d5a0f6 100644
--- a/tests/net/common/java/android/net/NetworkScoreTest.kt
+++ b/tests/net/common/java/android/net/NetworkScoreTest.kt
@@ -16,7 +16,7 @@
package android.net
-import android.os.Parcelable
+import android.net.NetworkScore.Metrics.BANDWIDTH_UNKNOWN
import androidx.test.filters.SmallTest
import androidx.test.runner.AndroidJUnit4
import com.android.testutils.assertParcelSane
@@ -28,77 +28,49 @@ import org.junit.Test
import org.junit.runner.RunWith
private const val TEST_SCORE = 80
-private const val KEY_DEFAULT_CAPABILITIES = "DEFAULT_CAPABILITIES"
@RunWith(AndroidJUnit4::class)
@SmallTest
class NetworkScoreTest {
@Test
fun testParcelNetworkScore() {
- val networkScore = NetworkScore()
val defaultCap = NetworkCapabilities()
- networkScore.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap)
- assertEquals(defaultCap, networkScore.getExtension(KEY_DEFAULT_CAPABILITIES))
- networkScore.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE)
- assertEquals(TEST_SCORE, networkScore.getIntExtension(NetworkScore.LEGACY_SCORE))
- assertParcelSane(networkScore, 1)
- }
+ val builder = NetworkScore.Builder().setLegacyScore(TEST_SCORE)
+ assertEquals(TEST_SCORE, builder.build().getLegacyScore())
+ assertParcelSane(builder.build(), 7)
- @Test
- fun testNullKeyAndValue() {
- val networkScore = NetworkScore()
- val defaultCap = NetworkCapabilities()
- networkScore.putIntExtension(null, TEST_SCORE)
- assertEquals(TEST_SCORE, networkScore.getIntExtension(null))
- networkScore.putExtension(null, defaultCap)
- assertEquals(defaultCap, networkScore.getExtension(null))
- networkScore.putExtension(null, null)
- val result: Parcelable? = networkScore.getExtension(null)
- assertEquals(null, result)
- }
+ builder.addPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI)
+ .addPolicy(NetworkScore.POLICY_DEFAULT_SUBSCRIPTION)
+ .setLinkLayerMetrics(NetworkScore.Metrics(44 /* latency */,
+ 380 /* downlinkBandwidth */, BANDWIDTH_UNKNOWN /* uplinkBandwidth */))
+ .setEndToEndMetrics(NetworkScore.Metrics(11 /* latency */,
+ BANDWIDTH_UNKNOWN /* downlinkBandwidth */, 100_000 /* uplinkBandwidth */))
+ .setRange(NetworkScore.RANGE_MEDIUM)
+ assertParcelSane(builder.build(), 7)
+ builder.clearPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI)
+ val ns = builder.build()
+ assertParcelSane(ns, 7)
+ assertFalse(ns.hasPolicy(NetworkScore.POLICY_IGNORE_ON_WIFI))
+ assertTrue(ns.hasPolicy(NetworkScore.POLICY_DEFAULT_SUBSCRIPTION))
- @Test
- fun testRemoveExtension() {
- val networkScore = NetworkScore()
- val defaultCap = NetworkCapabilities()
- networkScore.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap)
- networkScore.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE)
- assertEquals(defaultCap, networkScore.getExtension(KEY_DEFAULT_CAPABILITIES))
- assertEquals(TEST_SCORE, networkScore.getIntExtension(NetworkScore.LEGACY_SCORE))
- networkScore.removeExtension(KEY_DEFAULT_CAPABILITIES)
- networkScore.removeExtension(NetworkScore.LEGACY_SCORE)
- val result: Parcelable? = networkScore.getExtension(KEY_DEFAULT_CAPABILITIES)
- assertEquals(null, result)
- assertEquals(0, networkScore.getIntExtension(NetworkScore.LEGACY_SCORE))
+ val exitingNs = ns.withExiting(true)
+ assertNotEquals(ns.isExiting, exitingNs.isExiting)
+ assertNotEquals(ns, exitingNs)
+ assertParcelSane(exitingNs, 7)
}
@Test
fun testEqualsNetworkScore() {
- val ns1 = NetworkScore()
- val ns2 = NetworkScore()
- assertTrue(ns1.equals(ns2))
- assertEquals(ns1.hashCode(), ns2.hashCode())
-
- ns1.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE)
- assertFalse(ns1.equals(ns2))
- assertNotEquals(ns1.hashCode(), ns2.hashCode())
- ns2.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE)
- assertTrue(ns1.equals(ns2))
- assertEquals(ns1.hashCode(), ns2.hashCode())
-
- val defaultCap = NetworkCapabilities()
- ns1.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap)
- assertFalse(ns1.equals(ns2))
- assertNotEquals(ns1.hashCode(), ns2.hashCode())
- ns2.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap)
- assertTrue(ns1.equals(ns2))
- assertEquals(ns1.hashCode(), ns2.hashCode())
+ val builder1 = NetworkScore.Builder()
+ val builder2 = NetworkScore.Builder()
+ assertTrue(builder1.build().equals(builder2.build()))
+ assertEquals(builder1.build().hashCode(), builder2.build().hashCode())
- ns1.putIntExtension(null, 10)
- assertFalse(ns1.equals(ns2))
- assertNotEquals(ns1.hashCode(), ns2.hashCode())
- ns2.putIntExtension(null, 10)
- assertTrue(ns1.equals(ns2))
- assertEquals(ns1.hashCode(), ns2.hashCode())
+ builder1.setLegacyScore(TEST_SCORE)
+ assertFalse(builder1.build().equals(builder2.build()))
+ assertNotEquals(builder1.hashCode(), builder2.hashCode())
+ builder2.setLegacyScore(TEST_SCORE)
+ assertTrue(builder1.build().equals(builder2.build()))
+ assertEquals(builder1.build().hashCode(), builder2.build().hashCode())
}
}
diff --git a/tests/net/deflake/Android.bp b/tests/net/deflake/Android.bp
index 1c48c749aacc..b1b017131c64 100644
--- a/tests/net/deflake/Android.bp
+++ b/tests/net/deflake/Android.bp
@@ -26,4 +26,5 @@ java_test_host {
"net-host-tests-utils",
],
data: [":FrameworksNetTests"],
-} \ No newline at end of file
+ test_suites: ["device-tests"],
+}
diff --git a/tests/net/integration/util/com/android/server/NetworkAgentWrapper.java b/tests/net/integration/util/com/android/server/NetworkAgentWrapper.java
index a35fb407bca9..7ae9e95a520f 100644
--- a/tests/net/integration/util/com/android/server/NetworkAgentWrapper.java
+++ b/tests/net/integration/util/com/android/server/NetworkAgentWrapper.java
@@ -40,6 +40,7 @@ import android.net.NetworkAgentConfig;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.net.NetworkProvider;
+import android.net.NetworkScore;
import android.net.NetworkSpecifier;
import android.net.SocketKeepalive;
import android.net.UidRange;
@@ -155,9 +156,13 @@ public class NetworkAgentWrapper implements TestableNetworkCallback.HasNetwork {
}
}
+ private NetworkScore makeNetworkScore(final int legacyScore) {
+ return new NetworkScore.Builder().setLegacyScore(legacyScore).build();
+ }
+
public void adjustScore(int change) {
mScore += change;
- mNetworkAgent.sendNetworkScore(mScore);
+ mNetworkAgent.sendNetworkScore(makeNetworkScore(mScore));
}
public int getScore() {
diff --git a/tests/net/java/android/net/ConnectivityDiagnosticsManagerTest.java b/tests/net/java/android/net/ConnectivityDiagnosticsManagerTest.java
index 7ab4b56fae80..0628691c3345 100644
--- a/tests/net/java/android/net/ConnectivityDiagnosticsManagerTest.java
+++ b/tests/net/java/android/net/ConnectivityDiagnosticsManagerTest.java
@@ -27,12 +27,20 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import android.content.Context;
import android.os.PersistableBundle;
+import androidx.test.InstrumentationRegistry;
+
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -52,15 +60,32 @@ public class ConnectivityDiagnosticsManagerTest {
private static final Executor INLINE_EXECUTOR = x -> x.run();
+ @Mock private IConnectivityManager mService;
@Mock private ConnectivityDiagnosticsCallback mCb;
+ private Context mContext;
private ConnectivityDiagnosticsBinder mBinder;
+ private ConnectivityDiagnosticsManager mManager;
+
+ private String mPackageName;
@Before
public void setUp() {
+ mContext = InstrumentationRegistry.getContext();
+
+ mService = mock(IConnectivityManager.class);
mCb = mock(ConnectivityDiagnosticsCallback.class);
mBinder = new ConnectivityDiagnosticsBinder(mCb, INLINE_EXECUTOR);
+ mManager = new ConnectivityDiagnosticsManager(mContext, mService);
+
+ mPackageName = mContext.getOpPackageName();
+ }
+
+ @After
+ public void tearDown() {
+ // clear ConnectivityDiagnosticsManager callbacks map
+ ConnectivityDiagnosticsManager.sCallbacks.clear();
}
private ConnectivityReport createSampleConnectivityReport() {
@@ -245,4 +270,53 @@ public class ConnectivityDiagnosticsManagerTest {
// latch without waiting.
verify(mCb).onNetworkConnectivityReported(eq(n), eq(connectivity));
}
+
+ @Test
+ public void testRegisterConnectivityDiagnosticsCallback() throws Exception {
+ final NetworkRequest request = new NetworkRequest.Builder().build();
+
+ mManager.registerConnectivityDiagnosticsCallback(request, INLINE_EXECUTOR, mCb);
+
+ verify(mService).registerConnectivityDiagnosticsCallback(
+ any(ConnectivityDiagnosticsBinder.class), eq(request), eq(mPackageName));
+ assertTrue(ConnectivityDiagnosticsManager.sCallbacks.containsKey(mCb));
+ }
+
+ @Test
+ public void testRegisterDuplicateConnectivityDiagnosticsCallback() throws Exception {
+ final NetworkRequest request = new NetworkRequest.Builder().build();
+
+ mManager.registerConnectivityDiagnosticsCallback(request, INLINE_EXECUTOR, mCb);
+
+ try {
+ mManager.registerConnectivityDiagnosticsCallback(request, INLINE_EXECUTOR, mCb);
+ fail("Duplicate callback registration should fail");
+ } catch (IllegalArgumentException expected) {
+ }
+ }
+
+ @Test
+ public void testUnregisterConnectivityDiagnosticsCallback() throws Exception {
+ final NetworkRequest request = new NetworkRequest.Builder().build();
+ mManager.registerConnectivityDiagnosticsCallback(request, INLINE_EXECUTOR, mCb);
+
+ mManager.unregisterConnectivityDiagnosticsCallback(mCb);
+
+ verify(mService).unregisterConnectivityDiagnosticsCallback(
+ any(ConnectivityDiagnosticsBinder.class));
+ assertFalse(ConnectivityDiagnosticsManager.sCallbacks.containsKey(mCb));
+
+ // verify that re-registering is successful
+ mManager.registerConnectivityDiagnosticsCallback(request, INLINE_EXECUTOR, mCb);
+ verify(mService, times(2)).registerConnectivityDiagnosticsCallback(
+ any(ConnectivityDiagnosticsBinder.class), eq(request), eq(mPackageName));
+ assertTrue(ConnectivityDiagnosticsManager.sCallbacks.containsKey(mCb));
+ }
+
+ @Test
+ public void testUnregisterUnknownConnectivityDiagnosticsCallback() throws Exception {
+ mManager.unregisterConnectivityDiagnosticsCallback(mCb);
+
+ verifyNoMoreInteractions(mService);
+ }
}
diff --git a/tests/net/java/android/net/ConnectivityManagerTest.java b/tests/net/java/android/net/ConnectivityManagerTest.java
index 7ede14428a4f..d6bf334ee56a 100644
--- a/tests/net/java/android/net/ConnectivityManagerTest.java
+++ b/tests/net/java/android/net/ConnectivityManagerTest.java
@@ -212,7 +212,8 @@ public class ConnectivityManagerTest {
ArgumentCaptor<Messenger> captor = ArgumentCaptor.forClass(Messenger.class);
// register callback
- when(mService.requestNetwork(any(), captor.capture(), anyInt(), any(), anyInt()))
+ when(mService.requestNetwork(
+ any(), captor.capture(), anyInt(), any(), anyInt(), any()))
.thenReturn(request);
manager.requestNetwork(request, callback, handler);
@@ -240,7 +241,8 @@ public class ConnectivityManagerTest {
ArgumentCaptor<Messenger> captor = ArgumentCaptor.forClass(Messenger.class);
// register callback
- when(mService.requestNetwork(any(), captor.capture(), anyInt(), any(), anyInt()))
+ when(mService.requestNetwork(
+ any(), captor.capture(), anyInt(), any(), anyInt(), any()))
.thenReturn(req1);
manager.requestNetwork(req1, callback, handler);
@@ -258,7 +260,8 @@ public class ConnectivityManagerTest {
verify(callback, timeout(100).times(0)).onLosing(any(), anyInt());
// callback can be registered again
- when(mService.requestNetwork(any(), captor.capture(), anyInt(), any(), anyInt()))
+ when(mService.requestNetwork(
+ any(), captor.capture(), anyInt(), any(), anyInt(), any()))
.thenReturn(req2);
manager.requestNetwork(req2, callback, handler);
@@ -282,7 +285,8 @@ public class ConnectivityManagerTest {
info.targetSdkVersion = VERSION_CODES.N_MR1 + 1;
when(mCtx.getApplicationInfo()).thenReturn(info);
- when(mService.requestNetwork(any(), any(), anyInt(), any(), anyInt())).thenReturn(request);
+ when(mService.requestNetwork(any(), any(), anyInt(), any(), anyInt(), any()))
+ .thenReturn(request);
Handler handler = new Handler(Looper.getMainLooper());
manager.requestNetwork(request, callback, handler);
diff --git a/tests/net/java/android/net/VpnManagerTest.java b/tests/net/java/android/net/VpnManagerTest.java
index 655c4d118592..95a794235a2e 100644
--- a/tests/net/java/android/net/VpnManagerTest.java
+++ b/tests/net/java/android/net/VpnManagerTest.java
@@ -16,13 +16,24 @@
package android.net;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import android.content.ComponentName;
+import android.content.Intent;
import android.test.mock.MockContext;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
+import com.android.internal.net.VpnProfile;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -31,7 +42,12 @@ import org.junit.runner.RunWith;
@SmallTest
@RunWith(AndroidJUnit4.class)
public class VpnManagerTest {
- private static final String VPN_PROFILE_KEY = "KEY";
+ private static final String PKG_NAME = "fooPackage";
+
+ private static final String SESSION_NAME_STRING = "testSession";
+ private static final String SERVER_ADDR_STRING = "1.2.3.4";
+ private static final String IDENTITY_STRING = "Identity";
+ private static final byte[] PSK_BYTES = "preSharedKey".getBytes();
private IConnectivityManager mMockCs;
private VpnManager mVpnManager;
@@ -39,7 +55,7 @@ public class VpnManagerTest {
new MockContext() {
@Override
public String getOpPackageName() {
- return "fooPackage";
+ return PKG_NAME;
}
};
@@ -50,34 +66,55 @@ public class VpnManagerTest {
}
@Test
- public void testProvisionVpnProfile() throws Exception {
- try {
- mVpnManager.provisionVpnProfile(mock(PlatformVpnProfile.class));
- } catch (UnsupportedOperationException expected) {
- }
+ public void testProvisionVpnProfilePreconsented() throws Exception {
+ final PlatformVpnProfile profile = getPlatformVpnProfile();
+ when(mMockCs.provisionVpnProfile(any(VpnProfile.class), eq(PKG_NAME))).thenReturn(true);
+
+ // Expect there to be no intent returned, as consent has already been granted.
+ assertNull(mVpnManager.provisionVpnProfile(profile));
+ verify(mMockCs).provisionVpnProfile(eq(profile.toVpnProfile()), eq(PKG_NAME));
+ }
+
+ @Test
+ public void testProvisionVpnProfileNeedsConsent() throws Exception {
+ final PlatformVpnProfile profile = getPlatformVpnProfile();
+ when(mMockCs.provisionVpnProfile(any(VpnProfile.class), eq(PKG_NAME))).thenReturn(false);
+
+ // Expect intent to be returned, as consent has not already been granted.
+ final Intent intent = mVpnManager.provisionVpnProfile(profile);
+ assertNotNull(intent);
+
+ final ComponentName expectedComponentName =
+ ComponentName.unflattenFromString(
+ "com.android.vpndialogs/com.android.vpndialogs.PlatformVpnConfirmDialog");
+ assertEquals(expectedComponentName, intent.getComponent());
+ verify(mMockCs).provisionVpnProfile(eq(profile.toVpnProfile()), eq(PKG_NAME));
}
@Test
public void testDeleteProvisionedVpnProfile() throws Exception {
- try {
- mVpnManager.deleteProvisionedVpnProfile();
- } catch (UnsupportedOperationException expected) {
- }
+ mVpnManager.deleteProvisionedVpnProfile();
+ verify(mMockCs).deleteVpnProfile(eq(PKG_NAME));
}
@Test
public void testStartProvisionedVpnProfile() throws Exception {
- try {
- mVpnManager.startProvisionedVpnProfile();
- } catch (UnsupportedOperationException expected) {
- }
+ mVpnManager.startProvisionedVpnProfile();
+ verify(mMockCs).startVpnProfile(eq(PKG_NAME));
}
@Test
public void testStopProvisionedVpnProfile() throws Exception {
- try {
- mVpnManager.stopProvisionedVpnProfile();
- } catch (UnsupportedOperationException expected) {
- }
+ mVpnManager.stopProvisionedVpnProfile();
+ verify(mMockCs).stopVpnProfile(eq(PKG_NAME));
+ }
+
+ private Ikev2VpnProfile getPlatformVpnProfile() throws Exception {
+ return new Ikev2VpnProfile.Builder(SERVER_ADDR_STRING, IDENTITY_STRING)
+ .setBypassable(true)
+ .setMaxMtu(1300)
+ .setMetered(true)
+ .setAuthPsk(PSK_BYTES)
+ .build();
}
}
diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java
index a0a1352a6330..968f5523d818 100644
--- a/tests/net/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java
@@ -23,6 +23,8 @@ import static android.content.pm.PackageManager.GET_PERMISSIONS;
import static android.content.pm.PackageManager.MATCH_ANY_USER;
import static android.content.pm.PackageManager.PERMISSION_DENIED;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+import static android.net.ConnectivityDiagnosticsManager.ConnectivityReport;
+import static android.net.ConnectivityDiagnosticsManager.DataStallReport;
import static android.net.ConnectivityManager.ACTION_CAPTIVE_PORTAL_SIGN_IN;
import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
import static android.net.ConnectivityManager.CONNECTIVITY_ACTION_SUPL;
@@ -105,6 +107,7 @@ import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -119,6 +122,7 @@ import static org.mockito.Mockito.when;
import android.Manifest;
import android.annotation.NonNull;
import android.app.AlarmManager;
+import android.app.AppOpsManager;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
@@ -132,6 +136,7 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.content.res.Resources;
+import android.location.LocationManager;
import android.net.CaptivePortalData;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
@@ -139,6 +144,7 @@ import android.net.ConnectivityManager.PacketKeepalive;
import android.net.ConnectivityManager.PacketKeepaliveCallback;
import android.net.ConnectivityManager.TooManyRequestsException;
import android.net.ConnectivityThread;
+import android.net.IConnectivityDiagnosticsCallback;
import android.net.IDnsResolver;
import android.net.IIpConnectivityMetrics;
import android.net.INetd;
@@ -176,15 +182,18 @@ import android.net.shared.PrivateDnsConfig;
import android.net.util.MultinetworkPolicyTracker;
import android.os.BadParcelableException;
import android.os.Binder;
+import android.os.Build;
import android.os.Bundle;
import android.os.ConditionVariable;
import android.os.Handler;
import android.os.HandlerThread;
+import android.os.IBinder;
import android.os.INetworkManagementService;
import android.os.Looper;
import android.os.Parcel;
import android.os.ParcelFileDescriptor;
import android.os.Parcelable;
+import android.os.PersistableBundle;
import android.os.Process;
import android.os.RemoteException;
import android.os.SystemClock;
@@ -210,11 +219,13 @@ import com.android.internal.util.ArrayUtils;
import com.android.internal.util.WakeupMessage;
import com.android.internal.util.test.BroadcastInterceptingContext;
import com.android.internal.util.test.FakeSettingsProvider;
+import com.android.server.ConnectivityService.ConnectivityDiagnosticsCallbackInfo;
import com.android.server.connectivity.ConnectivityConstants;
import com.android.server.connectivity.DefaultNetworkMetrics;
import com.android.server.connectivity.IpConnectivityMetrics;
import com.android.server.connectivity.MockableSystemProperties;
import com.android.server.connectivity.Nat464Xlat;
+import com.android.server.connectivity.NetworkAgentInfo;
import com.android.server.connectivity.NetworkNotificationManager.NotificationType;
import com.android.server.connectivity.ProxyTracker;
import com.android.server.connectivity.Vpn;
@@ -289,10 +300,13 @@ public class ConnectivityServiceTest {
private static final int UNREASONABLY_LONG_ALARM_WAIT_MS = 1000;
+ private static final long TIMESTAMP = 1234L;
+
private static final String CLAT_PREFIX = "v4-";
private static final String MOBILE_IFNAME = "test_rmnet_data0";
private static final String WIFI_IFNAME = "test_wlan0";
private static final String WIFI_WOL_IFNAME = "test_wlan_wol";
+ private static final String TEST_PACKAGE_NAME = "com.android.test.package";
private static final String[] EMPTY_STRING_ARRAY = new String[0];
private MockContext mServiceContext;
@@ -322,6 +336,10 @@ public class ConnectivityServiceTest {
@Mock UserManager mUserManager;
@Mock NotificationManager mNotificationManager;
@Mock AlarmManager mAlarmManager;
+ @Mock IConnectivityDiagnosticsCallback mConnectivityDiagnosticsCallback;
+ @Mock IBinder mIBinder;
+ @Mock LocationManager mLocationManager;
+ @Mock AppOpsManager mAppOpsManager;
private ArgumentCaptor<ResolverParamsParcel> mResolverParamsParcelCaptor =
ArgumentCaptor.forClass(ResolverParamsParcel.class);
@@ -407,6 +425,8 @@ public class ConnectivityServiceTest {
if (Context.NETWORK_STACK_SERVICE.equals(name)) return mNetworkStack;
if (Context.USER_SERVICE.equals(name)) return mUserManager;
if (Context.ALARM_SERVICE.equals(name)) return mAlarmManager;
+ if (Context.LOCATION_SERVICE.equals(name)) return mLocationManager;
+ if (Context.APP_OPS_SERVICE.equals(name)) return mAppOpsManager;
return super.getSystemService(name);
}
@@ -553,12 +573,17 @@ public class ConnectivityServiceTest {
| NETWORK_VALIDATION_RESULT_PARTIAL;
private static final int VALIDATION_RESULT_INVALID = 0;
+ private static final long DATA_STALL_TIMESTAMP = 10L;
+ private static final int DATA_STALL_DETECTION_METHOD = 1;
+
private INetworkMonitor mNetworkMonitor;
private INetworkMonitorCallbacks mNmCallbacks;
private int mNmValidationResult = VALIDATION_RESULT_BASE;
private int mProbesCompleted;
private int mProbesSucceeded;
private String mNmValidationRedirectUrl = null;
+ private PersistableBundle mValidationExtras = PersistableBundle.EMPTY;
+ private PersistableBundle mDataStallExtras = PersistableBundle.EMPTY;
private boolean mNmProvNotificationRequested = false;
private final ConditionVariable mNetworkStatusReceived = new ConditionVariable();
@@ -626,12 +651,12 @@ public class ConnectivityServiceTest {
}
mNmCallbacks.notifyProbeStatusChanged(mProbesCompleted, mProbesSucceeded);
- mNmCallbacks.notifyNetworkTested(
- mNmValidationResult, mNmValidationRedirectUrl);
+ mNmCallbacks.notifyNetworkTestedWithExtras(
+ mNmValidationResult, mNmValidationRedirectUrl, TIMESTAMP, mValidationExtras);
if (mNmValidationRedirectUrl != null) {
mNmCallbacks.showProvisioningNotification(
- "test_provisioning_notif_action", "com.android.test.package");
+ "test_provisioning_notif_action", TEST_PACKAGE_NAME);
mNmProvNotificationRequested = true;
}
}
@@ -786,6 +811,11 @@ public class ConnectivityServiceTest {
public void expectPreventReconnectReceived() {
expectPreventReconnectReceived(TIMEOUT_MS);
}
+
+ void notifyDataStallSuspected() throws Exception {
+ mNmCallbacks.notifyDataStallSuspected(
+ DATA_STALL_TIMESTAMP, DATA_STALL_DETECTION_METHOD, mDataStallExtras);
+ }
}
/**
@@ -965,6 +995,8 @@ public class ConnectivityServiceTest {
// not inherit from NetworkAgent.
private TestNetworkAgentWrapper mMockNetworkAgent;
+ private VpnInfo mVpnInfo;
+
public MockVpn(int userId) {
super(startHandlerThreadAndReturnLooper(), mServiceContext, mNetworkManagementService,
userId);
@@ -1036,6 +1068,17 @@ public class ConnectivityServiceTest {
mConnected = false;
mConfig = null;
}
+
+ @Override
+ public synchronized VpnInfo getVpnInfo() {
+ if (mVpnInfo != null) return mVpnInfo;
+
+ return super.getVpnInfo();
+ }
+
+ private void setVpnInfo(VpnInfo vpnInfo) {
+ mVpnInfo = vpnInfo;
+ }
}
private void mockVpn(int uid) {
@@ -2931,7 +2974,7 @@ public class ConnectivityServiceTest {
networkCapabilities.addTransportType(TRANSPORT_WIFI)
.setNetworkSpecifier(new MatchAllNetworkSpecifier());
mService.requestNetwork(networkCapabilities, null, 0, null,
- ConnectivityManager.TYPE_WIFI);
+ ConnectivityManager.TYPE_WIFI, TEST_PACKAGE_NAME);
});
class NonParcelableSpecifier extends NetworkSpecifier {
@@ -2970,31 +3013,12 @@ public class ConnectivityServiceTest {
}
@Test
- public void testNetworkSpecifierUidSpoofSecurityException() throws Exception {
- class UidAwareNetworkSpecifier extends NetworkSpecifier implements Parcelable {
- @Override
- public boolean satisfiedBy(NetworkSpecifier other) {
- return true;
- }
-
- @Override
- public void assertValidFromUid(int requestorUid) {
- throw new SecurityException("failure");
- }
-
- @Override
- public int describeContents() { return 0; }
- @Override
- public void writeToParcel(Parcel dest, int flags) {}
- }
-
+ public void testNetworkRequestUidSpoofSecurityException() throws Exception {
mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
mWiFiNetworkAgent.connect(false);
-
- UidAwareNetworkSpecifier networkSpecifier = new UidAwareNetworkSpecifier();
- NetworkRequest networkRequest = newWifiRequestBuilder().setNetworkSpecifier(
- networkSpecifier).build();
+ NetworkRequest networkRequest = newWifiRequestBuilder().build();
TestNetworkCallback networkCallback = new TestNetworkCallback();
+ doThrow(new SecurityException()).when(mAppOpsManager).checkPackage(anyInt(), anyString());
assertThrows(SecurityException.class, () -> {
mCm.requestNetwork(networkRequest, networkCallback);
});
@@ -5736,6 +5760,38 @@ public class ConnectivityServiceTest {
mCm.unregisterNetworkCallback(defaultCallback);
}
+ @Test
+ public final void testLoseTrusted() throws Exception {
+ final NetworkRequest trustedRequest = new NetworkRequest.Builder()
+ .addCapability(NET_CAPABILITY_TRUSTED)
+ .build();
+ final TestNetworkCallback trustedCallback = new TestNetworkCallback();
+ mCm.requestNetwork(trustedRequest, trustedCallback);
+
+ mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
+ mCellNetworkAgent.connect(true);
+ trustedCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
+ verify(mNetworkManagementService).setDefaultNetId(eq(mCellNetworkAgent.getNetwork().netId));
+ reset(mNetworkManagementService);
+
+ mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
+ mWiFiNetworkAgent.connect(true);
+ trustedCallback.expectAvailableDoubleValidatedCallbacks(mWiFiNetworkAgent);
+ verify(mNetworkManagementService).setDefaultNetId(eq(mWiFiNetworkAgent.getNetwork().netId));
+ reset(mNetworkManagementService);
+
+ mWiFiNetworkAgent.removeCapability(NET_CAPABILITY_TRUSTED);
+ trustedCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
+ verify(mNetworkManagementService).setDefaultNetId(eq(mCellNetworkAgent.getNetwork().netId));
+ reset(mNetworkManagementService);
+
+ mCellNetworkAgent.removeCapability(NET_CAPABILITY_TRUSTED);
+ trustedCallback.expectCallback(CallbackEntry.LOST, mCellNetworkAgent);
+ verify(mNetworkManagementService).clearDefaultNetId();
+
+ mCm.unregisterNetworkCallback(trustedCallback);
+ }
+
@Ignore // 40%+ flakiness : figure out why and re-enable.
@Test
public final void testBatteryStatsNetworkType() throws Exception {
@@ -6355,4 +6411,263 @@ public class ConnectivityServiceTest {
UserHandle.getAppId(uid));
return packageInfo;
}
+
+ @Test
+ public void testRegisterConnectivityDiagnosticsCallbackInvalidRequest() throws Exception {
+ final NetworkRequest request =
+ new NetworkRequest(
+ new NetworkCapabilities(), TYPE_ETHERNET, 0, NetworkRequest.Type.NONE);
+ try {
+ mService.registerConnectivityDiagnosticsCallback(
+ mConnectivityDiagnosticsCallback, request, mContext.getPackageName());
+ fail("registerConnectivityDiagnosticsCallback should throw on invalid NetworkRequest");
+ } catch (IllegalArgumentException expected) {
+ }
+ }
+
+ @Test
+ public void testRegisterUnregisterConnectivityDiagnosticsCallback() throws Exception {
+ final NetworkRequest wifiRequest =
+ new NetworkRequest.Builder().addTransportType(TRANSPORT_WIFI).build();
+ when(mConnectivityDiagnosticsCallback.asBinder()).thenReturn(mIBinder);
+
+ mService.registerConnectivityDiagnosticsCallback(
+ mConnectivityDiagnosticsCallback, wifiRequest, mContext.getPackageName());
+
+ // Block until all other events are done processing.
+ HandlerUtilsKt.waitForIdle(mCsHandlerThread, TIMEOUT_MS);
+
+ verify(mIBinder).linkToDeath(any(ConnectivityDiagnosticsCallbackInfo.class), anyInt());
+ verify(mConnectivityDiagnosticsCallback).asBinder();
+ assertTrue(
+ mService.mConnectivityDiagnosticsCallbacks.containsKey(
+ mConnectivityDiagnosticsCallback));
+
+ mService.unregisterConnectivityDiagnosticsCallback(mConnectivityDiagnosticsCallback);
+ verify(mIBinder, timeout(TIMEOUT_MS))
+ .unlinkToDeath(any(ConnectivityDiagnosticsCallbackInfo.class), anyInt());
+ assertFalse(
+ mService.mConnectivityDiagnosticsCallbacks.containsKey(
+ mConnectivityDiagnosticsCallback));
+ verify(mConnectivityDiagnosticsCallback, atLeastOnce()).asBinder();
+ }
+
+ @Test
+ public void testRegisterDuplicateConnectivityDiagnosticsCallback() throws Exception {
+ final NetworkRequest wifiRequest =
+ new NetworkRequest.Builder().addTransportType(TRANSPORT_WIFI).build();
+ when(mConnectivityDiagnosticsCallback.asBinder()).thenReturn(mIBinder);
+
+ mService.registerConnectivityDiagnosticsCallback(
+ mConnectivityDiagnosticsCallback, wifiRequest, mContext.getPackageName());
+
+ // Block until all other events are done processing.
+ HandlerUtilsKt.waitForIdle(mCsHandlerThread, TIMEOUT_MS);
+
+ verify(mIBinder).linkToDeath(any(ConnectivityDiagnosticsCallbackInfo.class), anyInt());
+ verify(mConnectivityDiagnosticsCallback).asBinder();
+ assertTrue(
+ mService.mConnectivityDiagnosticsCallbacks.containsKey(
+ mConnectivityDiagnosticsCallback));
+
+ // Register the same callback again
+ mService.registerConnectivityDiagnosticsCallback(
+ mConnectivityDiagnosticsCallback, wifiRequest, mContext.getPackageName());
+
+ // Block until all other events are done processing.
+ HandlerUtilsKt.waitForIdle(mCsHandlerThread, TIMEOUT_MS);
+
+ assertTrue(
+ mService.mConnectivityDiagnosticsCallbacks.containsKey(
+ mConnectivityDiagnosticsCallback));
+ }
+
+ @Test
+ public void testCheckConnectivityDiagnosticsPermissionsNetworkStack() throws Exception {
+ final NetworkAgentInfo naiWithoutUid =
+ new NetworkAgentInfo(
+ null, null, null, null, null, new NetworkCapabilities(), null,
+ mServiceContext, null, null, mService, null, null, null, 0);
+
+ mServiceContext.setPermission(
+ android.Manifest.permission.NETWORK_STACK, PERMISSION_GRANTED);
+ assertTrue(
+ "NetworkStack permission not applied",
+ mService.checkConnectivityDiagnosticsPermissions(
+ Process.myPid(), Process.myUid(), naiWithoutUid,
+ mContext.getOpPackageName()));
+ }
+
+ @Test
+ public void testCheckConnectivityDiagnosticsPermissionsNoLocationPermission() throws Exception {
+ final NetworkAgentInfo naiWithoutUid =
+ new NetworkAgentInfo(
+ null, null, null, null, null, new NetworkCapabilities(), null,
+ mServiceContext, null, null, mService, null, null, null, 0);
+
+ mServiceContext.setPermission(android.Manifest.permission.NETWORK_STACK, PERMISSION_DENIED);
+
+ assertFalse(
+ "ACCESS_FINE_LOCATION permission necessary for Connectivity Diagnostics",
+ mService.checkConnectivityDiagnosticsPermissions(
+ Process.myPid(), Process.myUid(), naiWithoutUid,
+ mContext.getOpPackageName()));
+ }
+
+ @Test
+ public void testCheckConnectivityDiagnosticsPermissionsActiveVpn() throws Exception {
+ final NetworkAgentInfo naiWithoutUid =
+ new NetworkAgentInfo(
+ null, null, null, null, null, new NetworkCapabilities(), null,
+ mServiceContext, null, null, mService, null, null, null, 0);
+
+ setupLocationPermissions(Build.VERSION_CODES.Q, true, AppOpsManager.OPSTR_FINE_LOCATION,
+ Manifest.permission.ACCESS_FINE_LOCATION);
+ mServiceContext.setPermission(android.Manifest.permission.NETWORK_STACK, PERMISSION_DENIED);
+
+ // setUp() calls mockVpn() which adds a VPN with the Test Runner's uid. Configure it to be
+ // active
+ final VpnInfo info = new VpnInfo();
+ info.ownerUid = Process.myUid();
+ info.vpnIface = "interface";
+ mMockVpn.setVpnInfo(info);
+ assertTrue(
+ "Active VPN permission not applied",
+ mService.checkConnectivityDiagnosticsPermissions(
+ Process.myPid(), Process.myUid(), naiWithoutUid,
+ mContext.getOpPackageName()));
+ }
+
+ @Test
+ public void testCheckConnectivityDiagnosticsPermissionsNetworkAdministrator() throws Exception {
+ final NetworkCapabilities nc = new NetworkCapabilities();
+ nc.setAdministratorUids(Arrays.asList(Process.myUid()));
+ final NetworkAgentInfo naiWithUid =
+ new NetworkAgentInfo(
+ null, null, null, null, null, nc, null, mServiceContext, null, null,
+ mService, null, null, null, 0);
+
+ setupLocationPermissions(Build.VERSION_CODES.Q, true, AppOpsManager.OPSTR_FINE_LOCATION,
+ Manifest.permission.ACCESS_FINE_LOCATION);
+ mServiceContext.setPermission(android.Manifest.permission.NETWORK_STACK, PERMISSION_DENIED);
+
+ // Disconnect mock vpn so the uid check on NetworkAgentInfo is tested
+ mMockVpn.disconnect();
+ assertTrue(
+ "NetworkCapabilities administrator uid permission not applied",
+ mService.checkConnectivityDiagnosticsPermissions(
+ Process.myPid(), Process.myUid(), naiWithUid, mContext.getOpPackageName()));
+ }
+
+ @Test
+ public void testCheckConnectivityDiagnosticsPermissionsFails() throws Exception {
+ final NetworkCapabilities nc = new NetworkCapabilities();
+ nc.setOwnerUid(Process.myUid());
+ nc.setAdministratorUids(Arrays.asList(Process.myUid()));
+ final NetworkAgentInfo naiWithUid =
+ new NetworkAgentInfo(
+ null, null, null, null, null, nc, null, mServiceContext, null, null,
+ mService, null, null, null, 0);
+
+ setupLocationPermissions(Build.VERSION_CODES.Q, true, AppOpsManager.OPSTR_FINE_LOCATION,
+ Manifest.permission.ACCESS_FINE_LOCATION);
+ mServiceContext.setPermission(android.Manifest.permission.NETWORK_STACK, PERMISSION_DENIED);
+
+ // Use wrong pid and uid
+ assertFalse(
+ "Permissions allowed when they shouldn't be granted",
+ mService.checkConnectivityDiagnosticsPermissions(
+ Process.myPid() + 1, Process.myUid() + 1, naiWithUid,
+ mContext.getOpPackageName()));
+ }
+
+ private void setupLocationPermissions(
+ int targetSdk, boolean locationToggle, String op, String perm) throws Exception {
+ final ApplicationInfo applicationInfo = new ApplicationInfo();
+ applicationInfo.targetSdkVersion = targetSdk;
+ when(mPackageManager.getApplicationInfoAsUser(anyString(), anyInt(), any()))
+ .thenReturn(applicationInfo);
+
+ when(mLocationManager.isLocationEnabledForUser(any())).thenReturn(locationToggle);
+
+ when(mAppOpsManager.noteOp(eq(op), eq(Process.myUid()), eq(mContext.getPackageName())))
+ .thenReturn(AppOpsManager.MODE_ALLOWED);
+
+ mServiceContext.setPermission(perm, PERMISSION_GRANTED);
+ }
+
+ private void setUpConnectivityDiagnosticsCallback() throws Exception {
+ final NetworkRequest request = new NetworkRequest.Builder().build();
+ when(mConnectivityDiagnosticsCallback.asBinder()).thenReturn(mIBinder);
+
+ mServiceContext.setPermission(
+ android.Manifest.permission.NETWORK_STACK, PERMISSION_GRANTED);
+
+ mService.registerConnectivityDiagnosticsCallback(
+ mConnectivityDiagnosticsCallback, request, mContext.getPackageName());
+
+ // Block until all other events are done processing.
+ HandlerUtilsKt.waitForIdle(mCsHandlerThread, TIMEOUT_MS);
+
+ // Connect the cell agent verify that it notifies TestNetworkCallback that it is available
+ final TestNetworkCallback callback = new TestNetworkCallback();
+ mCm.registerDefaultNetworkCallback(callback);
+ mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
+ mCellNetworkAgent.connect(true);
+ callback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
+ callback.assertNoCallback();
+ }
+
+ @Test
+ public void testConnectivityDiagnosticsCallbackOnConnectivityReport() throws Exception {
+ setUpConnectivityDiagnosticsCallback();
+
+ // Block until all other events are done processing.
+ HandlerUtilsKt.waitForIdle(mCsHandlerThread, TIMEOUT_MS);
+
+ // Verify onConnectivityReport fired
+ verify(mConnectivityDiagnosticsCallback)
+ .onConnectivityReport(any(ConnectivityReport.class));
+ }
+
+ @Test
+ public void testConnectivityDiagnosticsCallbackOnDataStallSuspected() throws Exception {
+ setUpConnectivityDiagnosticsCallback();
+
+ // Trigger notifyDataStallSuspected() on the INetworkMonitorCallbacks instance in the
+ // cellular network agent
+ mCellNetworkAgent.notifyDataStallSuspected();
+
+ // Block until all other events are done processing.
+ HandlerUtilsKt.waitForIdle(mCsHandlerThread, TIMEOUT_MS);
+
+ // Verify onDataStallSuspected fired
+ verify(mConnectivityDiagnosticsCallback).onDataStallSuspected(any(DataStallReport.class));
+ }
+
+ @Test
+ public void testConnectivityDiagnosticsCallbackOnConnectivityReported() throws Exception {
+ setUpConnectivityDiagnosticsCallback();
+
+ final Network n = mCellNetworkAgent.getNetwork();
+ final boolean hasConnectivity = true;
+ mService.reportNetworkConnectivity(n, hasConnectivity);
+
+ // Block until all other events are done processing.
+ HandlerUtilsKt.waitForIdle(mCsHandlerThread, TIMEOUT_MS);
+
+ // Verify onNetworkConnectivityReported fired
+ verify(mConnectivityDiagnosticsCallback)
+ .onNetworkConnectivityReported(eq(n), eq(hasConnectivity));
+
+ final boolean noConnectivity = false;
+ mService.reportNetworkConnectivity(n, noConnectivity);
+
+ // Block until all other events are done processing.
+ HandlerUtilsKt.waitForIdle(mCsHandlerThread, TIMEOUT_MS);
+
+ // Wait for onNetworkConnectivityReported to fire
+ verify(mConnectivityDiagnosticsCallback)
+ .onNetworkConnectivityReported(eq(n), eq(noConnectivity));
+ }
}
diff --git a/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java b/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java
index e863266c4b49..25e9057fd13c 100644
--- a/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java
+++ b/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java
@@ -353,8 +353,7 @@ public class LingerMonitorTest {
NetworkCapabilities caps = new NetworkCapabilities();
caps.addCapability(0);
caps.addTransportType(transport);
- NetworkScore ns = new NetworkScore();
- ns.putIntExtension(NetworkScore.LEGACY_SCORE, 50);
+ NetworkScore ns = new NetworkScore.Builder().setLegacyScore(50).build();
NetworkAgentInfo nai = new NetworkAgentInfo(null, null, new Network(netId), info, null,
caps, ns, mCtx, null, null /* config */, mConnService, mNetd, mDnsResolver, mNMS,
NetworkProvider.ID_NONE);
diff --git a/tests/net/java/com/android/server/connectivity/VpnTest.java b/tests/net/java/com/android/server/connectivity/VpnTest.java
index ce50bef53d75..155c61f3f8c7 100644
--- a/tests/net/java/com/android/server/connectivity/VpnTest.java
+++ b/tests/net/java/com/android/server/connectivity/VpnTest.java
@@ -28,11 +28,11 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING;
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
import static android.net.NetworkCapabilities.TRANSPORT_VPN;
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
-import static android.net.RouteInfo.RTN_UNREACHABLE;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import static org.mockito.AdditionalMatchers.aryEq;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
@@ -43,6 +43,7 @@ import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -58,21 +59,21 @@ import android.content.pm.ServiceInfo;
import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.net.ConnectivityManager;
-import android.net.IpPrefix;
-import android.net.LinkProperties;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo.DetailedState;
-import android.net.RouteInfo;
import android.net.UidRange;
+import android.net.VpnManager;
import android.net.VpnService;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.os.INetworkManagementService;
import android.os.Looper;
-import android.os.SystemClock;
+import android.os.Process;
import android.os.UserHandle;
import android.os.UserManager;
+import android.security.Credentials;
+import android.security.KeyStore;
import android.util.ArrayMap;
import android.util.ArraySet;
@@ -81,6 +82,7 @@ import androidx.test.runner.AndroidJUnit4;
import com.android.internal.R;
import com.android.internal.net.VpnConfig;
+import com.android.internal.net.VpnProfile;
import org.junit.Before;
import org.junit.Test;
@@ -90,9 +92,6 @@ import org.mockito.InOrder;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import java.net.Inet4Address;
-import java.net.Inet6Address;
-import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -124,6 +123,8 @@ public class VpnTest {
managedProfileA.profileGroupId = primaryUser.id;
}
+ static final String TEST_VPN_PKG = "com.dummy.vpn";
+
/**
* Names and UIDs for some fake packages. Important points:
* - UID is ordered increasing.
@@ -148,6 +149,8 @@ public class VpnTest {
@Mock private NotificationManager mNotificationManager;
@Mock private Vpn.SystemServices mSystemServices;
@Mock private ConnectivityManager mConnectivityManager;
+ @Mock private KeyStore mKeyStore;
+ private final VpnProfile mVpnProfile = new VpnProfile("key");
@Before
public void setUp() throws Exception {
@@ -166,6 +169,7 @@ public class VpnTest {
when(mContext.getString(R.string.config_customVpnAlwaysOnDisconnectedDialogComponent))
.thenReturn(Resources.getSystem().getString(
R.string.config_customVpnAlwaysOnDisconnectedDialogComponent));
+ when(mSystemServices.isCallerSystem()).thenReturn(true);
// Used by {@link Notification.Builder}
ApplicationInfo applicationInfo = new ApplicationInfo();
@@ -175,6 +179,10 @@ public class VpnTest {
.thenReturn(applicationInfo);
doNothing().when(mNetService).registerObserver(any());
+
+ // Deny all appops by default.
+ when(mAppOps.noteOpNoThrow(anyInt(), anyInt(), anyString()))
+ .thenReturn(AppOpsManager.MODE_IGNORED);
}
@Test
@@ -464,12 +472,12 @@ public class VpnTest {
order.verify(mNetService).setAllowOnlyVpnForUids(eq(true), aryEq(entireUser));
// When a new VPN package is set the rules should change to cover that package.
- vpn.prepare(null, PKGS[0]);
+ vpn.prepare(null, PKGS[0], VpnManager.TYPE_VPN_SERVICE);
order.verify(mNetService).setAllowOnlyVpnForUids(eq(false), aryEq(entireUser));
order.verify(mNetService).setAllowOnlyVpnForUids(eq(true), aryEq(exceptPkg0));
// When that VPN package is unset, everything should be undone again in reverse.
- vpn.prepare(null, VpnConfig.LEGACY_VPN);
+ vpn.prepare(null, VpnConfig.LEGACY_VPN, VpnManager.TYPE_VPN_SERVICE);
order.verify(mNetService).setAllowOnlyVpnForUids(eq(false), aryEq(exceptPkg0));
order.verify(mNetService).setAllowOnlyVpnForUids(eq(true), aryEq(entireUser));
}
@@ -632,6 +640,230 @@ public class VpnTest {
}
/**
+ * The profile name should NOT change between releases for backwards compatibility
+ *
+ * <p>If this is changed between releases, the {@link Vpn#getVpnProfilePrivileged()} method MUST
+ * be updated to ensure backward compatibility.
+ */
+ @Test
+ public void testGetProfileNameForPackage() throws Exception {
+ final Vpn vpn = createVpn(primaryUser.id);
+ setMockedUsers(primaryUser);
+
+ final String expected = Credentials.PLATFORM_VPN + primaryUser.id + "_" + TEST_VPN_PKG;
+ assertEquals(expected, vpn.getProfileNameForPackage(TEST_VPN_PKG));
+ }
+
+ private Vpn createVpnAndSetupUidChecks(int... grantedOps) throws Exception {
+ final Vpn vpn = createVpn(primaryUser.id);
+ setMockedUsers(primaryUser);
+
+ when(mPackageManager.getPackageUidAsUser(eq(TEST_VPN_PKG), anyInt()))
+ .thenReturn(Process.myUid());
+
+ for (final int op : grantedOps) {
+ when(mAppOps.noteOpNoThrow(op, Process.myUid(), TEST_VPN_PKG))
+ .thenReturn(AppOpsManager.MODE_ALLOWED);
+ }
+
+ return vpn;
+ }
+
+ private void checkProvisionVpnProfile(Vpn vpn, boolean expectedResult, int... checkedOps) {
+ assertEquals(expectedResult, vpn.provisionVpnProfile(TEST_VPN_PKG, mVpnProfile, mKeyStore));
+
+ // The profile should always be stored, whether or not consent has been previously granted.
+ verify(mKeyStore)
+ .put(
+ eq(vpn.getProfileNameForPackage(TEST_VPN_PKG)),
+ eq(mVpnProfile.encode()),
+ eq(Process.SYSTEM_UID),
+ eq(0));
+
+ for (final int checkedOp : checkedOps) {
+ verify(mAppOps).noteOpNoThrow(checkedOp, Process.myUid(), TEST_VPN_PKG);
+ }
+ }
+
+ @Test
+ public void testProvisionVpnProfilePreconsented() throws Exception {
+ final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN);
+
+ checkProvisionVpnProfile(
+ vpn, true /* expectedResult */, AppOpsManager.OP_ACTIVATE_PLATFORM_VPN);
+ }
+
+ @Test
+ public void testProvisionVpnProfileNotPreconsented() throws Exception {
+ final Vpn vpn = createVpnAndSetupUidChecks();
+
+ // Expect that both the ACTIVATE_VPN and ACTIVATE_PLATFORM_VPN were tried, but the caller
+ // had neither.
+ checkProvisionVpnProfile(vpn, false /* expectedResult */,
+ AppOpsManager.OP_ACTIVATE_PLATFORM_VPN, AppOpsManager.OP_ACTIVATE_VPN);
+ }
+
+ @Test
+ public void testProvisionVpnProfileVpnServicePreconsented() throws Exception {
+ final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_VPN);
+
+ checkProvisionVpnProfile(vpn, true /* expectedResult */, AppOpsManager.OP_ACTIVATE_VPN);
+ }
+
+ @Test
+ public void testProvisionVpnProfileTooLarge() throws Exception {
+ final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN);
+
+ final VpnProfile bigProfile = new VpnProfile("");
+ bigProfile.name = new String(new byte[Vpn.MAX_VPN_PROFILE_SIZE_BYTES + 1]);
+
+ try {
+ vpn.provisionVpnProfile(TEST_VPN_PKG, bigProfile, mKeyStore);
+ fail("Expected IAE due to profile size");
+ } catch (IllegalArgumentException expected) {
+ }
+ }
+
+ @Test
+ public void testDeleteVpnProfile() throws Exception {
+ final Vpn vpn = createVpnAndSetupUidChecks();
+
+ vpn.deleteVpnProfile(TEST_VPN_PKG, mKeyStore);
+
+ verify(mKeyStore)
+ .delete(eq(vpn.getProfileNameForPackage(TEST_VPN_PKG)), eq(Process.SYSTEM_UID));
+ }
+
+ @Test
+ public void testGetVpnProfilePrivileged() throws Exception {
+ final Vpn vpn = createVpnAndSetupUidChecks();
+
+ when(mKeyStore.get(vpn.getProfileNameForPackage(TEST_VPN_PKG)))
+ .thenReturn(new VpnProfile("").encode());
+
+ vpn.getVpnProfilePrivileged(TEST_VPN_PKG, mKeyStore);
+
+ verify(mKeyStore).get(eq(vpn.getProfileNameForPackage(TEST_VPN_PKG)));
+ }
+
+ @Test
+ public void testStartVpnProfile() throws Exception {
+ final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN);
+
+ when(mKeyStore.get(vpn.getProfileNameForPackage(TEST_VPN_PKG)))
+ .thenReturn(mVpnProfile.encode());
+
+ vpn.startVpnProfile(TEST_VPN_PKG, mKeyStore);
+
+ verify(mKeyStore).get(eq(vpn.getProfileNameForPackage(TEST_VPN_PKG)));
+ verify(mAppOps)
+ .noteOpNoThrow(
+ eq(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN),
+ eq(Process.myUid()),
+ eq(TEST_VPN_PKG));
+ }
+
+ @Test
+ public void testStartVpnProfileVpnServicePreconsented() throws Exception {
+ final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_VPN);
+
+ when(mKeyStore.get(vpn.getProfileNameForPackage(TEST_VPN_PKG)))
+ .thenReturn(mVpnProfile.encode());
+
+ vpn.startVpnProfile(TEST_VPN_PKG, mKeyStore);
+
+ // Verify that the the ACTIVATE_VPN appop was checked, but no error was thrown.
+ verify(mAppOps).noteOpNoThrow(AppOpsManager.OP_ACTIVATE_VPN, Process.myUid(), TEST_VPN_PKG);
+ }
+
+ @Test
+ public void testStartVpnProfileNotConsented() throws Exception {
+ final Vpn vpn = createVpnAndSetupUidChecks();
+
+ try {
+ vpn.startVpnProfile(TEST_VPN_PKG, mKeyStore);
+ fail("Expected failure due to no user consent");
+ } catch (SecurityException expected) {
+ }
+
+ // Verify both appops were checked.
+ verify(mAppOps)
+ .noteOpNoThrow(
+ eq(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN),
+ eq(Process.myUid()),
+ eq(TEST_VPN_PKG));
+ verify(mAppOps).noteOpNoThrow(AppOpsManager.OP_ACTIVATE_VPN, Process.myUid(), TEST_VPN_PKG);
+
+ // Keystore should never have been accessed.
+ verify(mKeyStore, never()).get(any());
+ }
+
+ @Test
+ public void testStartVpnProfileMissingProfile() throws Exception {
+ final Vpn vpn = createVpnAndSetupUidChecks(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN);
+
+ when(mKeyStore.get(vpn.getProfileNameForPackage(TEST_VPN_PKG))).thenReturn(null);
+
+ try {
+ vpn.startVpnProfile(TEST_VPN_PKG, mKeyStore);
+ fail("Expected failure due to missing profile");
+ } catch (IllegalArgumentException expected) {
+ }
+
+ verify(mKeyStore).get(vpn.getProfileNameForPackage(TEST_VPN_PKG));
+ verify(mAppOps)
+ .noteOpNoThrow(
+ eq(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN),
+ eq(Process.myUid()),
+ eq(TEST_VPN_PKG));
+ }
+
+ @Test
+ public void testSetPackageAuthorizationVpnService() throws Exception {
+ final Vpn vpn = createVpnAndSetupUidChecks();
+
+ assertTrue(vpn.setPackageAuthorization(TEST_VPN_PKG, VpnManager.TYPE_VPN_SERVICE));
+ verify(mAppOps)
+ .setMode(
+ eq(AppOpsManager.OP_ACTIVATE_VPN),
+ eq(Process.myUid()),
+ eq(TEST_VPN_PKG),
+ eq(AppOpsManager.MODE_ALLOWED));
+ }
+
+ @Test
+ public void testSetPackageAuthorizationPlatformVpn() throws Exception {
+ final Vpn vpn = createVpnAndSetupUidChecks();
+
+ assertTrue(vpn.setPackageAuthorization(TEST_VPN_PKG, VpnManager.TYPE_VPN_PLATFORM));
+ verify(mAppOps)
+ .setMode(
+ eq(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN),
+ eq(Process.myUid()),
+ eq(TEST_VPN_PKG),
+ eq(AppOpsManager.MODE_ALLOWED));
+ }
+
+ @Test
+ public void testSetPackageAuthorizationRevokeAuthorization() throws Exception {
+ final Vpn vpn = createVpnAndSetupUidChecks();
+
+ assertTrue(vpn.setPackageAuthorization(TEST_VPN_PKG, VpnManager.TYPE_VPN_NONE));
+ verify(mAppOps)
+ .setMode(
+ eq(AppOpsManager.OP_ACTIVATE_VPN),
+ eq(Process.myUid()),
+ eq(TEST_VPN_PKG),
+ eq(AppOpsManager.MODE_IGNORED));
+ verify(mAppOps)
+ .setMode(
+ eq(AppOpsManager.OP_ACTIVATE_PLATFORM_VPN),
+ eq(Process.myUid()),
+ eq(TEST_VPN_PKG),
+ eq(AppOpsManager.MODE_IGNORED));
+ }
+
+ /**
* Mock some methods of vpn object.
*/
private Vpn createVpn(@UserIdInt int userId) {
diff --git a/tools/aapt2/link/ManifestFixer.cpp b/tools/aapt2/link/ManifestFixer.cpp
index 954d4010d181..2af118c40138 100644
--- a/tools/aapt2/link/ManifestFixer.cpp
+++ b/tools/aapt2/link/ManifestFixer.cpp
@@ -428,6 +428,12 @@ bool ManifestFixer::BuildRules(xml::XmlActionExecutor* executor,
application_action["meta-data"] = meta_data_action;
+ application_action["processes"];
+ application_action["processes"]["deny-permission"];
+ application_action["processes"]["allow-permission"];
+ application_action["processes"]["process"]["deny-permission"];
+ application_action["processes"]["process"]["allow-permission"];
+
application_action["activity"] = component_action;
application_action["activity"]["layout"];
diff --git a/tools/hiddenapi/Android.bp b/tools/hiddenapi/Android.bp
new file mode 100644
index 000000000000..e0eb06cbea7f
--- /dev/null
+++ b/tools/hiddenapi/Android.bp
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+python_binary_host {
+ name: "merge_csv",
+ main: "merge_csv.py",
+ srcs: ["merge_csv.py"],
+ version: {
+ py2: {
+ enabled: false,
+ },
+ py3: {
+ enabled: true,
+ embedded_launcher: true
+ },
+ },
+}
diff --git a/tools/hiddenapi/merge_csv.py b/tools/hiddenapi/merge_csv.py
index 48c07553ffef..96619273af8d 100755
--- a/tools/hiddenapi/merge_csv.py
+++ b/tools/hiddenapi/merge_csv.py
@@ -21,20 +21,19 @@ import csv
import sys
csv_readers = [
- csv.DictReader(open(csv_file, 'rb'), delimiter=',', quotechar='|')
+ csv.DictReader(open(csv_file, 'r'), delimiter=',', quotechar='|')
for csv_file in sys.argv[1:]
]
# Build union of all columns from source files:
headers = set()
for reader in csv_readers:
- headers = headers.union(reader.fieldnames)
+ headers = headers.union(reader.fieldnames)
# Concatenate all files to output:
-out = csv.DictWriter(sys.stdout, delimiter=',', quotechar='|', fieldnames = sorted(headers))
+out = csv.DictWriter(sys.stdout, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL,
+ dialect='unix', fieldnames=sorted(headers))
out.writeheader()
for reader in csv_readers:
- for row in reader:
- out.writerow(row)
-
-
+ for row in reader:
+ out.writerow(row)
diff --git a/tools/stats_log_api_gen/Android.bp b/tools/stats_log_api_gen/Android.bp
index d3958a65c704..a251c053e004 100644
--- a/tools/stats_log_api_gen/Android.bp
+++ b/tools/stats_log_api_gen/Android.bp
@@ -30,7 +30,7 @@ cc_binary_host {
"utils.cpp",
],
cflags: [
- "-DSTATS_SCHEMA_LEGACY",
+ //"-DSTATS_SCHEMA_LEGACY",
"-Wall",
"-Werror",
],
diff --git a/tools/stats_log_api_gen/Collation.cpp b/tools/stats_log_api_gen/Collation.cpp
index d290acae1967..8bccd7150050 100644
--- a/tools/stats_log_api_gen/Collation.cpp
+++ b/tools/stats_log_api_gen/Collation.cpp
@@ -40,18 +40,21 @@ AtomDecl::AtomDecl()
{
}
-AtomDecl::AtomDecl(const AtomDecl& that)
- : code(that.code),
- name(that.name),
- message(that.message),
- fields(that.fields),
- primaryFields(that.primaryFields),
- exclusiveField(that.exclusiveField),
- uidField(that.uidField),
- whitelisted(that.whitelisted),
- binaryFields(that.binaryFields),
- hasModule(that.hasModule),
- moduleName(that.moduleName) {}
+AtomDecl::AtomDecl(const AtomDecl &that)
+ : code(that.code),
+ name(that.name),
+ message(that.message),
+ fields(that.fields),
+ primaryFields(that.primaryFields),
+ exclusiveField(that.exclusiveField),
+ defaultState(that.defaultState),
+ resetState(that.resetState),
+ nested(that.nested),
+ uidField(that.uidField),
+ whitelisted(that.whitelisted),
+ binaryFields(that.binaryFields),
+ hasModule(that.hasModule),
+ moduleName(that.moduleName) {}
AtomDecl::AtomDecl(int c, const string& n, const string& m)
:code(c),
@@ -281,7 +284,7 @@ int collate_atom(const Descriptor *atom, AtomDecl *atomDecl,
atomDecl->fields.push_back(atField);
if (field->options().GetExtension(os::statsd::state_field_option).option() ==
- os::statsd::StateField::PRIMARY) {
+ os::statsd::StateField::PRIMARY_FIELD) {
if (javaType == JAVA_TYPE_UNKNOWN ||
javaType == JAVA_TYPE_ATTRIBUTION_CHAIN ||
javaType == JAVA_TYPE_OBJECT || javaType == JAVA_TYPE_BYTE_ARRAY) {
@@ -300,7 +303,7 @@ int collate_atom(const Descriptor *atom, AtomDecl *atomDecl,
}
if (field->options().GetExtension(os::statsd::state_field_option).option() ==
- os::statsd::StateField::EXCLUSIVE) {
+ os::statsd::StateField::EXCLUSIVE_STATE) {
if (javaType == JAVA_TYPE_UNKNOWN ||
javaType == JAVA_TYPE_ATTRIBUTION_CHAIN ||
javaType == JAVA_TYPE_OBJECT || javaType == JAVA_TYPE_BYTE_ARRAY) {
@@ -312,6 +315,21 @@ int collate_atom(const Descriptor *atom, AtomDecl *atomDecl,
} else {
errorCount++;
}
+
+ if (field->options()
+ .GetExtension(os::statsd::state_field_option)
+ .has_default_state_value()) {
+ atomDecl->defaultState = field->options()
+ .GetExtension(os::statsd::state_field_option)
+ .default_state_value();
+ }
+
+ if (field->options().GetExtension(os::statsd::state_field_option).has_reset_state_value()) {
+ atomDecl->resetState = field->options()
+ .GetExtension(os::statsd::state_field_option)
+ .reset_state_value();
+ }
+ atomDecl->nested = field->options().GetExtension(os::statsd::state_field_option).nested();
}
if (field->options().GetExtension(os::statsd::is_uid) == true) {
diff --git a/tools/stats_log_api_gen/Collation.h b/tools/stats_log_api_gen/Collation.h
index 87d4d5db0cee..65d8e3efee5b 100644
--- a/tools/stats_log_api_gen/Collation.h
+++ b/tools/stats_log_api_gen/Collation.h
@@ -88,6 +88,9 @@ struct AtomDecl {
vector<int> primaryFields;
int exclusiveField = 0;
+ int defaultState = INT_MAX;
+ int resetState = INT_MAX;
+ bool nested;
int uidField = 0;
diff --git a/tools/stats_log_api_gen/atoms_info_writer.cpp b/tools/stats_log_api_gen/atoms_info_writer.cpp
index 66ae96401974..984c929f63bd 100644
--- a/tools/stats_log_api_gen/atoms_info_writer.cpp
+++ b/tools/stats_log_api_gen/atoms_info_writer.cpp
@@ -25,11 +25,15 @@ namespace android {
namespace stats_log_api_gen {
static void write_atoms_info_header_body(FILE* out, const Atoms& atoms) {
+ fprintf(out, "static int UNSET_VALUE = INT_MAX;\n");
fprintf(out, "static int FIRST_UID_IN_CHAIN = 0;\n");
fprintf(out, "struct StateAtomFieldOptions {\n");
fprintf(out, " std::vector<int> primaryFields;\n");
fprintf(out, " int exclusiveField;\n");
+ fprintf(out, " int defaultState = UNSET_VALUE;\n");
+ fprintf(out, " int resetState = UNSET_VALUE;\n");
+ fprintf(out, " bool nested;\n");
fprintf(out, "};\n");
fprintf(out, "\n");
@@ -126,7 +130,7 @@ static void write_atoms_info_cpp_body(FILE* out, const Atoms& atoms) {
"static std::map<int, StateAtomFieldOptions> "
"getStateAtomFieldOptions() {\n");
fprintf(out, " std::map<int, StateAtomFieldOptions> options;\n");
- fprintf(out, " StateAtomFieldOptions opt;\n");
+ fprintf(out, " StateAtomFieldOptions* opt;\n");
for (set<AtomDecl>::const_iterator atom = atoms.decls.begin();
atom != atoms.decls.end(); atom++) {
if (atom->primaryFields.size() == 0 && atom->exclusiveField == 0) {
@@ -136,14 +140,26 @@ static void write_atoms_info_cpp_body(FILE* out, const Atoms& atoms) {
"\n // Adding primary and exclusive fields for atom "
"(%d)%s\n",
atom->code, atom->name.c_str());
- fprintf(out, " opt.primaryFields.clear();\n");
+ fprintf(out, " opt = &(options[static_cast<int>(%s)]);\n",
+ make_constant_name(atom->name).c_str());
+ fprintf(out, " opt->primaryFields.reserve(%lu);\n", atom->primaryFields.size());
for (const auto& field : atom->primaryFields) {
- fprintf(out, " opt.primaryFields.push_back(%d);\n", field);
+ fprintf(out, " opt->primaryFields.push_back(%d);\n", field);
}
- fprintf(out, " opt.exclusiveField = %d;\n", atom->exclusiveField);
- fprintf(out, " options[static_cast<int>(%s)] = opt;\n",
- make_constant_name(atom->name).c_str());
+ fprintf(out, " opt->exclusiveField = %d;\n", atom->exclusiveField);
+ if (atom->defaultState != INT_MAX) {
+ fprintf(out, " opt->defaultState = %d;\n", atom->defaultState);
+ } else {
+ fprintf(out, " opt->defaultState = UNSET_VALUE;\n");
+ }
+
+ if (atom->resetState != INT_MAX) {
+ fprintf(out, " opt->resetState = %d;\n", atom->resetState);
+ } else {
+ fprintf(out, " opt->resetState = UNSET_VALUE;\n");
+ }
+ fprintf(out, " opt->nested = %d;\n", atom->nested);
}
fprintf(out, " return options;\n");
diff --git a/tools/stats_log_api_gen/java_writer_q.cpp b/tools/stats_log_api_gen/java_writer_q.cpp
index 1259a68e9624..12c050d8ef8d 100644
--- a/tools/stats_log_api_gen/java_writer_q.cpp
+++ b/tools/stats_log_api_gen/java_writer_q.cpp
@@ -175,9 +175,7 @@ int write_java_methods_q_schema(
indent.c_str());
fprintf(out,
"%s android.util.SparseArray<Float> floatMap = null;\n", indent.c_str());
- fprintf(out,
- "%s int keyValuePairSize = LIST_TYPE_OVERHEAD * 5;\n",
- indent.c_str());
+ fprintf(out, "%s int keyValuePairSize = LIST_TYPE_OVERHEAD;\n", indent.c_str());
fprintf(out,
"%s for (int i = 0; i < count; i++) {\n", indent.c_str());
fprintf(out,
@@ -360,8 +358,9 @@ int write_java_methods_q_schema(
requiredHelpers |= JAVA_MODULE_REQUIRES_FLOAT;
requiredHelpers |= JAVA_MODULE_REQUIRES_KEY_VALUE_PAIRS;
fprintf(out,
- "%s writeKeyValuePairs(buff, pos, intMap, longMap, stringMap, "
- "floatMap);\n", indent.c_str());
+ "%s writeKeyValuePairs(buff, pos, (byte) count, intMap, longMap, "
+ "stringMap, floatMap);\n",
+ indent.c_str());
fprintf(out, "%s pos += keyValuePairSize;\n", indent.c_str());
break;
default:
@@ -472,7 +471,8 @@ void write_java_helpers_for_q_schema_methods(
}
if (requiredHelpers & JAVA_MODULE_REQUIRES_KEY_VALUE_PAIRS) {
- fprintf(out, "%sprivate static void writeKeyValuePairs(byte[] buff, int pos,\n",
+ fprintf(out,
+ "%sprivate static void writeKeyValuePairs(byte[] buff, int pos, byte numPairs,\n",
indent.c_str());
fprintf(out, "%s final android.util.SparseIntArray intMap,\n", indent.c_str());
fprintf(out, "%s final android.util.SparseLongArray longMap,\n", indent.c_str());
@@ -483,15 +483,12 @@ void write_java_helpers_for_q_schema_methods(
// Start list of lists.
fprintf(out, "%s buff[pos] = LIST_TYPE;\n", indent.c_str());
- fprintf(out, "%s buff[pos + 1] = (byte) 4;\n", indent.c_str());
+ fprintf(out, "%s buff[pos + 1] = (byte) numPairs;\n", indent.c_str());
fprintf(out, "%s pos += LIST_TYPE_OVERHEAD;\n", indent.c_str());
// Write integers.
fprintf(out, "%s final int intMapSize = null == intMap ? 0 : intMap.size();\n",
indent.c_str());
- fprintf(out, "%s buff[pos] = LIST_TYPE;\n", indent.c_str());
- fprintf(out, "%s buff[pos + 1] = (byte) intMapSize;\n", indent.c_str());
- fprintf(out, "%s pos += LIST_TYPE_OVERHEAD;\n", indent.c_str());
fprintf(out, "%s for (int i = 0; i < intMapSize; i++) {\n", indent.c_str());
fprintf(out, "%s buff[pos] = LIST_TYPE;\n", indent.c_str());
fprintf(out, "%s buff[pos + 1] = (byte) 2;\n", indent.c_str());
@@ -509,9 +506,6 @@ void write_java_helpers_for_q_schema_methods(
// Write longs.
fprintf(out, "%s final int longMapSize = null == longMap ? 0 : longMap.size();\n",
indent.c_str());
- fprintf(out, "%s buff[pos] = LIST_TYPE;\n", indent.c_str());
- fprintf(out, "%s buff[pos + 1] = (byte) longMapSize;\n", indent.c_str());
- fprintf(out, "%s pos += LIST_TYPE_OVERHEAD;\n", indent.c_str());
fprintf(out, "%s for (int i = 0; i < longMapSize; i++) {\n", indent.c_str());
fprintf(out, "%s buff[pos] = LIST_TYPE;\n", indent.c_str());
fprintf(out, "%s buff[pos + 1] = (byte) 2;\n", indent.c_str());
@@ -529,9 +523,6 @@ void write_java_helpers_for_q_schema_methods(
// Write Strings.
fprintf(out, "%s final int stringMapSize = null == stringMap ? 0 : stringMap.size();\n",
indent.c_str());
- fprintf(out, "%s buff[pos] = LIST_TYPE;\n", indent.c_str());
- fprintf(out, "%s buff[pos + 1] = (byte) stringMapSize;\n", indent.c_str());
- fprintf(out, "%s pos += LIST_TYPE_OVERHEAD;\n", indent.c_str());
fprintf(out, "%s for (int i = 0; i < stringMapSize; i++) {\n", indent.c_str());
fprintf(out, "%s buff[pos] = LIST_TYPE;\n", indent.c_str());
fprintf(out, "%s buff[pos + 1] = (byte) 2;\n", indent.c_str());
@@ -556,9 +547,6 @@ void write_java_helpers_for_q_schema_methods(
// Write floats.
fprintf(out, "%s final int floatMapSize = null == floatMap ? 0 : floatMap.size();\n",
indent.c_str());
- fprintf(out, "%s buff[pos] = LIST_TYPE;\n", indent.c_str());
- fprintf(out, "%s buff[pos + 1] = (byte) floatMapSize;\n", indent.c_str());
- fprintf(out, "%s pos += LIST_TYPE_OVERHEAD;\n", indent.c_str());
fprintf(out, "%s for (int i = 0; i < floatMapSize; i++) {\n", indent.c_str());
fprintf(out, "%s buff[pos] = LIST_TYPE;\n", indent.c_str());
fprintf(out, "%s buff[pos + 1] = (byte) 2;\n", indent.c_str());
@@ -577,6 +565,50 @@ void write_java_helpers_for_q_schema_methods(
}
}
+// This method is called in main.cpp to generate StatsLog for modules that's compatible with
+// Q at compile-time.
+int write_stats_log_java_q_for_module(FILE* out, const Atoms& atoms,
+ const AtomDecl &attributionDecl, const string& moduleName,
+ const string& javaClass, const string& javaPackage,
+ const bool supportWorkSource) {
+ // Print prelude
+ fprintf(out, "// This file is autogenerated\n");
+ fprintf(out, "\n");
+ fprintf(out, "package %s;\n", javaPackage.c_str());
+ fprintf(out, "\n");
+ fprintf(out, "import static java.nio.charset.StandardCharsets.UTF_8;\n");
+ fprintf(out, "\n");
+ fprintf(out, "import android.util.StatsLog;\n");
+ fprintf(out, "import android.os.SystemClock;\n");
+ fprintf(out, "\n");
+ fprintf(out, "\n");
+ fprintf(out, "/**\n");
+ fprintf(out, " * Utility class for logging statistics events.\n");
+ fprintf(out, " */\n");
+ fprintf(out, "public class %s {\n", javaClass.c_str());
+
+ write_java_q_logging_constants(out, " ");
+
+ write_java_atom_codes(out, atoms, moduleName);
+
+ write_java_enum_values(out, atoms, moduleName);
+
+ int errors = 0;
+ // Print write methods
+ fprintf(out, " // Write methods\n");
+ errors += write_java_methods_q_schema(out, atoms.signatures_to_modules, attributionDecl,
+ moduleName, " ");
+ errors += write_java_non_chained_methods(out, atoms.non_chained_signatures_to_modules,
+ moduleName);
+ if (supportWorkSource) {
+ errors += write_java_work_source_methods(out, atoms.signatures_to_modules, moduleName);
+ }
+
+ fprintf(out, "}\n");
+
+ return errors;
+}
+
#if defined(STATS_SCHEMA_LEGACY)
static void write_java_method(
FILE* out,
@@ -639,48 +671,6 @@ int write_stats_log_java_q(FILE* out, const Atoms& atoms, const AtomDecl &attrib
return 0;
}
-
-int write_stats_log_java_q_for_module(FILE* out, const Atoms& atoms,
- const AtomDecl &attributionDecl, const string& moduleName,
- const string& javaClass, const string& javaPackage,
- const bool supportWorkSource) {
- // Print prelude
- fprintf(out, "// This file is autogenerated\n");
- fprintf(out, "\n");
- fprintf(out, "package %s;\n", javaPackage.c_str());
- fprintf(out, "\n");
- fprintf(out, "import static java.nio.charset.StandardCharsets.UTF_8;\n");
- fprintf(out, "\n");
- fprintf(out, "import android.util.StatsLog;\n");
- fprintf(out, "import android.os.SystemClock;\n");
- fprintf(out, "\n");
- fprintf(out, "\n");
- fprintf(out, "/**\n");
- fprintf(out, " * Utility class for logging statistics events.\n");
- fprintf(out, " */\n");
- fprintf(out, "public class %s {\n", javaClass.c_str());
-
- write_java_q_logging_constants(out, " ");
-
- write_java_atom_codes(out, atoms, moduleName);
-
- write_java_enum_values(out, atoms, moduleName);
-
- int errors = 0;
- // Print write methods
- fprintf(out, " // Write methods\n");
- errors += write_java_methods_q_schema(out, atoms.signatures_to_modules, attributionDecl,
- moduleName, " ");
- errors += write_java_non_chained_methods(out, atoms.non_chained_signatures_to_modules,
- moduleName);
- if (supportWorkSource) {
- errors += write_java_work_source_methods(out, atoms.signatures_to_modules, moduleName);
- }
-
- fprintf(out, "}\n");
-
- return errors;
-}
#endif
} // namespace stats_log_api_gen
diff --git a/tools/stats_log_api_gen/java_writer_q.h b/tools/stats_log_api_gen/java_writer_q.h
index 36df1d8edbee..7d734df1e118 100644
--- a/tools/stats_log_api_gen/java_writer_q.h
+++ b/tools/stats_log_api_gen/java_writer_q.h
@@ -45,13 +45,13 @@ void write_java_helpers_for_q_schema_methods(
const int requiredHelpers,
const string& indent);
-#if defined(STATS_SCHEMA_LEGACY)
-int write_stats_log_java_q(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl,
- const bool supportWorkSource);
-
int write_stats_log_java_q_for_module(FILE* out, const Atoms& atoms,
const AtomDecl &attributionDecl, const string& moduleName, const string& javaClass,
const string& javaPackage, const bool supportWorkSource);
+
+#if defined(STATS_SCHEMA_LEGACY)
+int write_stats_log_java_q(FILE* out, const Atoms& atoms, const AtomDecl &attributionDecl,
+ const bool supportWorkSource);
#endif
} // namespace stats_log_api_gen
} // namespace android
diff --git a/tools/stats_log_api_gen/main.cpp b/tools/stats_log_api_gen/main.cpp
index 6089532e1ca4..ddbf22c7f12a 100644
--- a/tools/stats_log_api_gen/main.cpp
+++ b/tools/stats_log_api_gen/main.cpp
@@ -511,8 +511,10 @@ print_usage()
fprintf(stderr, " --javaClass CLASS the class name of the java class.\n");
fprintf(stderr, " Optional for Java with module.\n");
fprintf(stderr, " Default is \"StatsLogInternal\"\n");
- fprintf(stderr, " --supportQ Include support for Android Q.\n");
+ fprintf(stderr, " --supportQ Include runtime support for Android Q.\n");
fprintf(stderr, " --worksource Include support for logging WorkSource objects.\n");
+ fprintf(stderr, " --compileQ Include compile-time support for Android Q "
+ "(Java only).\n");
}
/**
@@ -536,6 +538,7 @@ run(int argc, char const*const* argv)
string javaClass = DEFAULT_JAVA_CLASS;
bool supportQ = false;
bool supportWorkSource = false;
+ bool compileQ = false;
int index = 1;
while (index < argc) {
@@ -630,6 +633,8 @@ run(int argc, char const*const* argv)
supportQ = true;
} else if (0 == strcmp("--worksource", argv[index])) {
supportWorkSource = true;
+ } else if (0 == strcmp("--compileQ", argv[index])) {
+ compileQ = true;
}
index++;
@@ -645,12 +650,18 @@ run(int argc, char const*const* argv)
return 1;
}
- if (DEFAULT_MODULE_NAME == moduleName && supportQ) {
+ if (DEFAULT_MODULE_NAME == moduleName && (supportQ || compileQ)) {
// Support for Q schema is not needed for default module.
fprintf(stderr, "%s cannot support Q schema\n", moduleName.c_str());
return 1;
}
+ if (supportQ && compileQ) {
+ // Runtime Q support is redundant if compile-time Q support is required.
+ fprintf(stderr, "Cannot specify compileQ and supportQ simultaneously.\n");
+ return 1;
+ }
+
// Collate the parameters
Atoms atoms;
int errorCount = collate_atoms(Atom::descriptor(), &atoms);
@@ -748,9 +759,15 @@ run(int argc, char const*const* argv)
javaClass = "StatsLogInternal";
javaPackage = "android.util";
}
- errorCount = android::stats_log_api_gen::write_stats_log_java(
- out, atoms, attributionDecl, moduleName, javaClass, javaPackage, supportQ,
- supportWorkSource);
+ if (compileQ) {
+ errorCount = android::stats_log_api_gen::write_stats_log_java_q_for_module(
+ out, atoms, attributionDecl, moduleName, javaClass, javaPackage,
+ supportWorkSource);
+ } else {
+ errorCount = android::stats_log_api_gen::write_stats_log_java(
+ out, atoms, attributionDecl, moduleName, javaClass, javaPackage, supportQ,
+ supportWorkSource);
+ }
#endif
fclose(out);
diff --git a/tools/stats_log_api_gen/native_writer.cpp b/tools/stats_log_api_gen/native_writer.cpp
index c7a34feff94b..285514df5ff3 100644
--- a/tools/stats_log_api_gen/native_writer.cpp
+++ b/tools/stats_log_api_gen/native_writer.cpp
@@ -22,15 +22,6 @@ namespace android {
namespace stats_log_api_gen {
#if !defined(STATS_SCHEMA_LEGACY)
-static void write_native_key_value_pairs_for_type(FILE* out, const int argIndex,
- const int typeIndex, const string& type, const string& valueFieldName) {
- fprintf(out, " for (const auto& it : arg%d_%d) {\n", argIndex, typeIndex);
- fprintf(out, " pairs.push_back("
- "{ .key = it.first, .valueType = %s, .%s = it.second });\n",
- type.c_str(), valueFieldName.c_str());
- fprintf(out, " }\n");
-
-}
static int write_native_stats_write_methods(FILE* out, const Atoms& atoms,
const AtomDecl& attributionDecl, const string& moduleName, const bool supportQ) {
@@ -41,7 +32,10 @@ static int write_native_stats_write_methods(FILE* out, const Atoms& atoms,
continue;
}
vector<java_type_t> signature = signature_to_modules_it->first;
-
+ // Key value pairs not supported in native.
+ if (find(signature.begin(), signature.end(), JAVA_TYPE_KEY_VALUE_PAIR) != signature.end()) {
+ continue;
+ }
write_native_method_signature(out, "int stats_write", signature,
attributionDecl, " {");
@@ -59,11 +53,6 @@ static int write_native_stats_write_methods(FILE* out, const Atoms& atoms,
uidName, uidName, tagName);
break;
}
- case JAVA_TYPE_KEY_VALUE_PAIR:
- fprintf(out, " event.writeKeyValuePairs("
- "arg%d_1, arg%d_2, arg%d_3, arg%d_4);\n",
- argIndex, argIndex, argIndex, argIndex);
- break;
case JAVA_TYPE_BYTE_ARRAY:
fprintf(out, " event.writeByteArray(arg%d.arg, arg%d.arg_length);\n",
argIndex, argIndex);
@@ -85,7 +74,7 @@ static int write_native_stats_write_methods(FILE* out, const Atoms& atoms,
fprintf(out, " event.writeString(arg%d);\n", argIndex);
break;
default:
- // Unsupported types: OBJECT, DOUBLE.
+ // Unsupported types: OBJECT, DOUBLE, KEY_VALUE_PAIRS.
fprintf(stderr, "Encountered unsupported type.");
return 1;
}
@@ -93,8 +82,8 @@ static int write_native_stats_write_methods(FILE* out, const Atoms& atoms,
}
fprintf(out, " return event.writeToSocket();\n");
} else {
- fprintf(out, " struct stats_event* event = stats_event_obtain();\n");
- fprintf(out, " stats_event_set_atom_id(event, code);\n");
+ fprintf(out, " AStatsEvent* event = AStatsEvent_obtain();\n");
+ fprintf(out, " AStatsEvent_setAtomId(event, code);\n");
for (vector<java_type_t>::const_iterator arg = signature.begin();
arg != signature.end(); arg++) {
switch (*arg) {
@@ -102,57 +91,43 @@ static int write_native_stats_write_methods(FILE* out, const Atoms& atoms,
const char* uidName = attributionDecl.fields.front().name.c_str();
const char* tagName = attributionDecl.fields.back().name.c_str();
fprintf(out,
- " stats_event_write_attribution_chain(event, "
+ " AStatsEvent_writeAttributionChain(event, "
"reinterpret_cast<const uint32_t*>(%s), %s.data(), "
"static_cast<uint8_t>(%s_length));\n",
uidName, tagName, uidName);
break;
}
- case JAVA_TYPE_KEY_VALUE_PAIR:
- fprintf(out, " std::vector<key_value_pair> pairs;\n");
- write_native_key_value_pairs_for_type(
- out, argIndex, 1, "INT32_TYPE", "int32Value");
- write_native_key_value_pairs_for_type(
- out, argIndex, 2, "INT64_TYPE", "int64Value");
- write_native_key_value_pairs_for_type(
- out, argIndex, 3, "STRING_TYPE", "stringValue");
- write_native_key_value_pairs_for_type(
- out, argIndex, 4, "FLOAT_TYPE", "floatValue");
- fprintf(out,
- " stats_event_write_key_value_pairs(event, pairs.data(), "
- "static_cast<uint8_t>(pairs.size()));\n");
- break;
case JAVA_TYPE_BYTE_ARRAY:
fprintf(out,
- " stats_event_write_byte_array(event, "
+ " AStatsEvent_writeByteArray(event, "
"reinterpret_cast<const uint8_t*>(arg%d.arg), arg%d.arg_length);\n",
argIndex, argIndex);
break;
case JAVA_TYPE_BOOLEAN:
- fprintf(out, " stats_event_write_bool(event, arg%d);\n", argIndex);
+ fprintf(out, " AStatsEvent_writeBool(event, arg%d);\n", argIndex);
break;
case JAVA_TYPE_INT: // Fall through.
case JAVA_TYPE_ENUM:
- fprintf(out, " stats_event_write_int32(event, arg%d);\n", argIndex);
+ fprintf(out, " AStatsEvent_writeInt32(event, arg%d);\n", argIndex);
break;
case JAVA_TYPE_FLOAT:
- fprintf(out, " stats_event_write_float(event, arg%d);\n", argIndex);
+ fprintf(out, " AStatsEvent_writeFloat(event, arg%d);\n", argIndex);
break;
case JAVA_TYPE_LONG:
- fprintf(out, " stats_event_write_int64(event, arg%d);\n", argIndex);
+ fprintf(out, " AStatsEvent_writeInt64(event, arg%d);\n", argIndex);
break;
case JAVA_TYPE_STRING:
- fprintf(out, " stats_event_write_string8(event, arg%d);\n", argIndex);
+ fprintf(out, " AStatsEvent_writeString(event, arg%d);\n", argIndex);
break;
default:
- // Unsupported types: OBJECT, DOUBLE.
+ // Unsupported types: OBJECT, DOUBLE, KEY_VALUE_PAIRS
fprintf(stderr, "Encountered unsupported type.");
return 1;
}
argIndex++;
}
- fprintf(out, " const int ret = stats_event_write(event);\n");
- fprintf(out, " stats_event_release(event);\n");
+ fprintf(out, " const int ret = AStatsEvent_write(event);\n");
+ fprintf(out, " AStatsEvent_release(event);\n");
fprintf(out, " return ret;\n");
}
fprintf(out, "}\n\n");
@@ -169,6 +144,10 @@ static void write_native_stats_write_non_chained_methods(FILE* out, const Atoms&
continue;
}
vector<java_type_t> signature = signature_it->first;
+ // Key value pairs not supported in native.
+ if (find(signature.begin(), signature.end(), JAVA_TYPE_KEY_VALUE_PAIR) != signature.end()) {
+ continue;
+ }
write_native_method_signature(out, "int stats_write_non_chained", signature,
attributionDecl, " {");
@@ -210,8 +189,14 @@ static void write_native_method_header(
if (!signature_needed_for_module(signature_to_modules_it->second, moduleName)) {
continue;
}
-
vector<java_type_t> signature = signature_to_modules_it->first;
+
+#if !defined(STATS_SCHEMA_LEGACY)
+ // Key value pairs not supported in native.
+ if (find(signature.begin(), signature.end(), JAVA_TYPE_KEY_VALUE_PAIR) != signature.end()) {
+ continue;
+ }
+#endif
write_native_method_signature(out, methodName, signature, attributionDecl, ";");
}
}
diff --git a/tools/stats_log_api_gen/test.proto b/tools/stats_log_api_gen/test.proto
index c9a47632b4bb..b892194410ae 100644
--- a/tools/stats_log_api_gen/test.proto
+++ b/tools/stats_log_api_gen/test.proto
@@ -148,53 +148,42 @@ message GoodStateAtoms {
// The atom has only primary field but no exclusive state field.
message BadStateAtom1 {
- optional int32 uid = 1
- [(android.os.statsd.state_field_option).option = PRIMARY];
+ optional int32 uid = 1 [(android.os.statsd.state_field_option).option = PRIMARY_FIELD];
}
// Only primative types can be annotated.
message BadStateAtom2 {
repeated android.os.statsd.AttributionNode attribution = 1
- [(android.os.statsd.state_field_option).option = PRIMARY];
- optional int32 state = 2
- [(android.os.statsd.state_field_option).option = EXCLUSIVE];
+ [(android.os.statsd.state_field_option).option = PRIMARY_FIELD];
+ optional int32 state = 2 [(android.os.statsd.state_field_option).option = EXCLUSIVE_STATE];
}
// Having 2 exclusive state field in the atom means the atom is badly designed.
// E.g., putting bluetooth state and wifi state in the same atom.
message BadStateAtom3 {
- optional int32 uid = 1
- [(android.os.statsd.state_field_option).option = PRIMARY];
- optional int32 state = 2
- [(android.os.statsd.state_field_option).option = EXCLUSIVE];
- optional int32 state2 = 3
- [(android.os.statsd.state_field_option).option = EXCLUSIVE];
+ optional int32 uid = 1 [(android.os.statsd.state_field_option).option = PRIMARY_FIELD];
+ optional int32 state = 2 [(android.os.statsd.state_field_option).option = EXCLUSIVE_STATE];
+ optional int32 state2 = 3 [(android.os.statsd.state_field_option).option = EXCLUSIVE_STATE];
}
message GoodStateAtom1 {
- optional int32 uid = 1
- [(android.os.statsd.state_field_option).option = PRIMARY];
- optional int32 state = 2
- [(android.os.statsd.state_field_option).option = EXCLUSIVE];
+ optional int32 uid = 1 [(android.os.statsd.state_field_option).option = PRIMARY_FIELD];
+ optional int32 state = 2 [(android.os.statsd.state_field_option).option = EXCLUSIVE_STATE];
}
// Atoms can have exclusive state field, but no primary field. That means
// the state is globally exclusive (e.g., DisplayState).
message GoodStateAtom2 {
optional int32 uid = 1;
- optional int32 state = 2
- [(android.os.statsd.state_field_option).option = EXCLUSIVE];
+ optional int32 state = 2 [(android.os.statsd.state_field_option).option = EXCLUSIVE_STATE];
}
// We can have more than one primary fields. That means their combination is a
// primary key.
message GoodStateAtom3 {
- optional int32 uid = 1
- [(android.os.statsd.state_field_option).option = PRIMARY];
- optional int32 tid = 2
- [(android.os.statsd.state_field_option).option = PRIMARY];
- optional int32 state = 3
- [(android.os.statsd.state_field_option).option = EXCLUSIVE];
+ optional int32 uid = 1 [(android.os.statsd.state_field_option).option = PRIMARY_FIELD];
+ optional int32 tid = 2 [(android.os.statsd.state_field_option).option = PRIMARY_FIELD];
+ optional int32 state = 3 [(android.os.statsd.state_field_option).option = EXCLUSIVE_STATE];
}
message WhitelistedAtom {
diff --git a/tools/streaming_proto/cpp/main.cpp b/tools/streaming_proto/cpp/main.cpp
index d6b9d81137ac..fe9a438d81d7 100644
--- a/tools/streaming_proto/cpp/main.cpp
+++ b/tools/streaming_proto/cpp/main.cpp
@@ -33,13 +33,13 @@ write_enum(stringstream& text, const EnumDescriptorProto& enu, const string& ind
if (GENERATE_MAPPING) {
string name = make_constant_name(enu.name());
string prefix = name + "_";
- text << indent << "const int _ENUM_" << name << "_COUNT = " << N << ";" << endl;
- text << indent << "const char* _ENUM_" << name << "_NAMES[" << N << "] = {" << endl;
+ text << indent << "static const int _ENUM_" << name << "_COUNT = " << N << ";" << endl;
+ text << indent << "static const char* _ENUM_" << name << "_NAMES[" << N << "] = {" << endl;
for (int i=0; i<N; i++) {
text << indent << INDENT << "\"" << stripPrefix(enu.value(i).name(), prefix) << "\"," << endl;
}
text << indent << "};" << endl;
- text << indent << "const int _ENUM_" << name << "_VALUES[" << N << "] = {" << endl;
+ text << indent << "static const int _ENUM_" << name << "_VALUES[" << N << "] = {" << endl;
for (int i=0; i<N; i++) {
text << indent << INDENT << make_constant_name(enu.value(i).name()) << "," << endl;
}
@@ -102,13 +102,13 @@ write_message(stringstream& text, const DescriptorProto& message, const string&
if (GENERATE_MAPPING) {
N = message.field_size();
- text << indented << "const int _FIELD_COUNT = " << N << ";" << endl;
- text << indented << "const char* _FIELD_NAMES[" << N << "] = {" << endl;
+ text << indented << "static const int _FIELD_COUNT = " << N << ";" << endl;
+ text << indented << "static const char* _FIELD_NAMES[" << N << "] = {" << endl;
for (int i=0; i<N; i++) {
text << indented << INDENT << "\"" << message.field(i).name() << "\"," << endl;
}
text << indented << "};" << endl;
- text << indented << "const uint64_t _FIELD_IDS[" << N << "] = {" << endl;
+ text << indented << "static const uint64_t _FIELD_IDS[" << N << "] = {" << endl;
for (int i=0; i<N; i++) {
text << indented << INDENT << make_constant_name(message.field(i).name()) << "," << endl;
}
@@ -152,7 +152,7 @@ write_header_file(CodeGeneratorResponse* response, const FileDescriptorProto& fi
write_message(text, file_descriptor.message_type(i), "");
}
- for (vector<string>::iterator it = namespaces.begin(); it != namespaces.end(); it++) {
+ for (vector<string>::reverse_iterator it = namespaces.rbegin(); it != namespaces.rend(); it++) {
text << "} // " << *it << endl;
}
diff --git a/wifi/Android.bp b/wifi/Android.bp
index dae04c6c3a25..6a29b1c36052 100644
--- a/wifi/Android.bp
+++ b/wifi/Android.bp
@@ -63,7 +63,6 @@ test_access_hidden_api_whitelist = [
"//frameworks/base/wifi/tests",
"//frameworks/opt/net/wifi/tests/wifitests:__subpackages__",
- "//frameworks/opt/net/wifi/libs/WifiTrackerLib/tests",
"//external/robolectric-shadows:__subpackages__",
"//frameworks/base/packages/SettingsLib/tests/integ",
"//external/sl4a:__subpackages__",
diff --git a/wifi/java/android/net/wifi/IScoreChangeCallback.aidl b/wifi/java/android/net/wifi/IScoreChangeCallback.aidl
index fd236107bc6e..462a97844d76 100644
--- a/wifi/java/android/net/wifi/IScoreChangeCallback.aidl
+++ b/wifi/java/android/net/wifi/IScoreChangeCallback.aidl
@@ -16,6 +16,8 @@
package android.net.wifi;
+import android.net.NetworkScore;
+
/**
* Interface for Wi-Fi network score callback.
*
@@ -23,7 +25,7 @@ package android.net.wifi;
*/
oneway interface IScoreChangeCallback
{
- void onStatusChange(int sessionId, boolean exiting);
+ void onScoreChange(int sessionId, in NetworkScore score);
void onTriggerUpdateOfWifiUsabilityStats(int sessionId);
}
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index 0ef224a5f8ee..7c3d0b92dd0a 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -373,6 +373,7 @@ public class WifiConfiguration implements Parcelable {
* ECDHE_ECDSA
* ECDHE_RSA
* </pre>
+ * @hide
*/
public static class SuiteBCipher {
private SuiteBCipher() { }
@@ -567,14 +568,12 @@ public class WifiConfiguration implements Parcelable {
* 2GHz band.
* @hide
*/
- @SystemApi
public static final int AP_BAND_2GHZ = 0;
/**
* 5GHz band.
* @hide
*/
- @SystemApi
public static final int AP_BAND_5GHZ = 1;
/**
@@ -582,7 +581,6 @@ public class WifiConfiguration implements Parcelable {
* operating country code and current radio conditions.
* @hide
*/
- @SystemApi
public static final int AP_BAND_ANY = -1;
/**
@@ -592,7 +590,7 @@ public class WifiConfiguration implements Parcelable {
*
* @hide
*/
- @SystemApi
+ @UnsupportedAppUsage
@ApBand
public int apBand = AP_BAND_2GHZ;
@@ -715,8 +713,8 @@ public class WifiConfiguration implements Parcelable {
public BitSet allowedGroupManagementCiphers;
/**
* The set of SuiteB ciphers supported by this configuration.
- * To be used for WPA3-Enterprise mode.
- * See {@link SuiteBCipher} for descriptions of the values.
+ * To be used for WPA3-Enterprise mode. Set automatically by the framework based on the
+ * certificate type that is used in this configuration.
*/
@NonNull
public BitSet allowedSuiteBCiphers;
@@ -1251,8 +1249,8 @@ public class WifiConfiguration implements Parcelable {
/** @hide */
@Retention(RetentionPolicy.SOURCE)
- @IntDef(value = {
- NETWORK_SELECTION_ENABLE,
+ @IntDef(prefix = "DISABLED_", value = {
+ DISABLED_NONE,
DISABLED_ASSOCIATION_REJECTION,
DISABLED_AUTHENTICATION_FAILURE,
DISABLED_DHCP_FAILURE,
@@ -1266,7 +1264,7 @@ public class WifiConfiguration implements Parcelable {
// Quality Network disabled reasons
/** Default value. Means not disabled. */
- public static final int NETWORK_SELECTION_ENABLE = 0;
+ public static final int DISABLED_NONE = 0;
/**
* The starting index for network selection disabled reasons.
* @hide
@@ -1303,10 +1301,34 @@ public class WifiConfiguration implements Parcelable {
public static final int DISABLED_BY_WRONG_PASSWORD = 8;
/** This network is disabled because service is not subscribed. */
public static final int DISABLED_AUTHENTICATION_NO_SUBSCRIPTION = 9;
- /** All other disable reasons should be strictly less than this value. */
+ /**
+ * All other disable reasons should be strictly less than this value.
+ * @hide
+ */
public static final int NETWORK_SELECTION_DISABLED_MAX = 10;
/**
+ * Get an integer that is equal to the maximum integer value of all the
+ * DISABLED_* reasons
+ * e.g. {@link #DISABLED_NONE}, {@link #DISABLED_ASSOCIATION_REJECTION}, etc.
+ *
+ * All DISABLED_* constants will be contiguous in the range
+ * 0, 1, 2, 3, ..., getMaxNetworkSelectionDisableReasons()
+ *
+ * <br />
+ * For example, this can be used to iterate through all the network selection
+ * disable reasons like so:
+ * <pre>{@code
+ * for (int reason = 0; reason <= getMaxNetworkSelectionDisableReasons(); reason++) {
+ * ...
+ * }
+ * }</pre>
+ */
+ public static int getMaxNetworkSelectionDisableReason() {
+ return NETWORK_SELECTION_DISABLED_MAX - 1;
+ }
+
+ /**
* Contains info about disable reasons.
* @hide
*/
@@ -1355,7 +1377,7 @@ public class WifiConfiguration implements Parcelable {
private static SparseArray<DisableReasonInfo> buildDisableReasonInfos() {
SparseArray<DisableReasonInfo> reasons = new SparseArray<>();
- reasons.append(NETWORK_SELECTION_ENABLE,
+ reasons.append(DISABLED_NONE,
new DisableReasonInfo(
// Note that these strings are persisted in
// XmlUtil.NetworkSelectionStatusXmlUtil#writeToXml,
@@ -1609,7 +1631,7 @@ public class WifiConfiguration implements Parcelable {
}
/** True if the device has ever connected to this network, false otherwise. */
- public boolean getHasEverConnected() {
+ public boolean hasEverConnected() {
return mHasEverConnected;
}
@@ -1649,7 +1671,7 @@ public class WifiConfiguration implements Parcelable {
/**
*
* Set the current network's disable reason.
- * One of the {@link #NETWORK_SELECTION_ENABLE} or DISABLED_* constants.
+ * One of the {@link #DISABLED_NONE} or DISABLED_* constants.
* e.g. {@link #DISABLED_ASSOCIATION_REJECTION}.
* @see NetworkSelectionStatus#getNetworkSelectionDisableReason()
*/
@@ -1673,7 +1695,7 @@ public class WifiConfiguration implements Parcelable {
/**
* Get the network disable reason string for a reason code (for debugging).
- * @param reason specific error reason. One of the {@link #NETWORK_SELECTION_ENABLE} or
+ * @param reason specific error reason. One of the {@link #DISABLED_NONE} or
* DISABLED_* constants e.g. {@link #DISABLED_ASSOCIATION_REJECTION}.
* @return network disable reason string, or null if the reason is invalid.
*/
@@ -1708,7 +1730,10 @@ public class WifiConfiguration implements Parcelable {
return mStatus;
}
- /** True if the current network is enabled to join network selection, false otherwise. */
+ /**
+ * True if the current network is enabled to join network selection, false otherwise.
+ * @hide
+ */
public boolean isNetworkEnabled() {
return mStatus == NETWORK_SELECTION_ENABLED;
}
@@ -1721,7 +1746,10 @@ public class WifiConfiguration implements Parcelable {
return mStatus == NETWORK_SELECTION_TEMPORARY_DISABLED;
}
- /** True if the current network is permanently disabled, false otherwise. */
+ /**
+ * True if the current network is permanently disabled, false otherwise.
+ * @hide
+ */
public boolean isNetworkPermanentlyDisabled() {
return mStatus == NETWORK_SELECTION_PERMANENTLY_DISABLED;
}
@@ -1739,7 +1767,7 @@ public class WifiConfiguration implements Parcelable {
/**
* Returns the current network's disable reason.
- * One of the {@link #NETWORK_SELECTION_ENABLE} or DISABLED_* constants
+ * One of the {@link #DISABLED_NONE} or DISABLED_* constants
* e.g. {@link #DISABLED_ASSOCIATION_REJECTION}.
*/
@NetworkSelectionDisableReason
@@ -1779,13 +1807,13 @@ public class WifiConfiguration implements Parcelable {
/**
* Get the disable counter of a specific reason.
- * @param reason specific failure reason. One of the {@link #NETWORK_SELECTION_ENABLE} or
+ * @param reason specific failure reason. One of the {@link #DISABLED_NONE} or
* DISABLED_* constants e.g. {@link #DISABLED_ASSOCIATION_REJECTION}.
* @exception IllegalArgumentException for invalid reason
* @return counter number for specific error reason.
*/
public int getDisableReasonCounter(@NetworkSelectionDisableReason int reason) {
- if (reason >= NETWORK_SELECTION_ENABLE && reason < NETWORK_SELECTION_DISABLED_MAX) {
+ if (reason >= DISABLED_NONE && reason < NETWORK_SELECTION_DISABLED_MAX) {
return mNetworkSeclectionDisableCounter[reason];
} else {
throw new IllegalArgumentException("Illegal reason value: " + reason);
@@ -1800,7 +1828,7 @@ public class WifiConfiguration implements Parcelable {
* @hide
*/
public void setDisableReasonCounter(int reason, int value) {
- if (reason >= NETWORK_SELECTION_ENABLE && reason < NETWORK_SELECTION_DISABLED_MAX) {
+ if (reason >= DISABLED_NONE && reason < NETWORK_SELECTION_DISABLED_MAX) {
mNetworkSeclectionDisableCounter[reason] = value;
} else {
throw new IllegalArgumentException("Illegal reason value: " + reason);
@@ -1814,7 +1842,7 @@ public class WifiConfiguration implements Parcelable {
* @hide
*/
public void incrementDisableReasonCounter(int reason) {
- if (reason >= NETWORK_SELECTION_ENABLE && reason < NETWORK_SELECTION_DISABLED_MAX) {
+ if (reason >= DISABLED_NONE && reason < NETWORK_SELECTION_DISABLED_MAX) {
mNetworkSeclectionDisableCounter[reason]++;
} else {
throw new IllegalArgumentException("Illegal reason value: " + reason);
@@ -1828,8 +1856,8 @@ public class WifiConfiguration implements Parcelable {
* @hide
*/
public void clearDisableReasonCounter(int reason) {
- if (reason >= NETWORK_SELECTION_ENABLE && reason < NETWORK_SELECTION_DISABLED_MAX) {
- mNetworkSeclectionDisableCounter[reason] = NETWORK_SELECTION_ENABLE;
+ if (reason >= DISABLED_NONE && reason < NETWORK_SELECTION_DISABLED_MAX) {
+ mNetworkSeclectionDisableCounter[reason] = DISABLED_NONE;
} else {
throw new IllegalArgumentException("Illegal reason value: " + reason);
}
@@ -1840,7 +1868,7 @@ public class WifiConfiguration implements Parcelable {
* @hide
*/
public void clearDisableReasonCounter() {
- Arrays.fill(mNetworkSeclectionDisableCounter, NETWORK_SELECTION_ENABLE);
+ Arrays.fill(mNetworkSeclectionDisableCounter, DISABLED_NONE);
}
/**
@@ -1870,7 +1898,7 @@ public class WifiConfiguration implements Parcelable {
public void copy(NetworkSelectionStatus source) {
mStatus = source.mStatus;
mNetworkSelectionDisableReason = source.mNetworkSelectionDisableReason;
- for (int index = NETWORK_SELECTION_ENABLE; index < NETWORK_SELECTION_DISABLED_MAX;
+ for (int index = DISABLED_NONE; index < NETWORK_SELECTION_DISABLED_MAX;
index++) {
mNetworkSeclectionDisableCounter[index] =
source.mNetworkSeclectionDisableCounter[index];
@@ -1881,14 +1909,14 @@ public class WifiConfiguration implements Parcelable {
setCandidate(source.getCandidate());
setCandidateScore(source.getCandidateScore());
setConnectChoice(source.getConnectChoice());
- setHasEverConnected(source.getHasEverConnected());
+ setHasEverConnected(source.hasEverConnected());
}
/** @hide */
public void writeToParcel(Parcel dest) {
dest.writeInt(getNetworkSelectionStatus());
dest.writeInt(getNetworkSelectionDisableReason());
- for (int index = NETWORK_SELECTION_ENABLE; index < NETWORK_SELECTION_DISABLED_MAX;
+ for (int index = DISABLED_NONE; index < NETWORK_SELECTION_DISABLED_MAX;
index++) {
dest.writeInt(getDisableReasonCounter(index));
}
@@ -1900,14 +1928,14 @@ public class WifiConfiguration implements Parcelable {
} else {
dest.writeInt(CONNECT_CHOICE_NOT_EXISTS);
}
- dest.writeInt(getHasEverConnected() ? 1 : 0);
+ dest.writeInt(hasEverConnected() ? 1 : 0);
}
/** @hide */
public void readFromParcel(Parcel in) {
setNetworkSelectionStatus(in.readInt());
setNetworkSelectionDisableReason(in.readInt());
- for (int index = NETWORK_SELECTION_ENABLE; index < NETWORK_SELECTION_DISABLED_MAX;
+ for (int index = DISABLED_NONE; index < NETWORK_SELECTION_DISABLED_MAX;
index++) {
setDisableReasonCounter(index, in.readInt());
}
@@ -1929,54 +1957,38 @@ public class WifiConfiguration implements Parcelable {
private NetworkSelectionStatus mNetworkSelectionStatus = new NetworkSelectionStatus();
/**
- * @hide
* This class is intended to store extra failure reason information for the most recent
* connection attempt, so that it may be surfaced to the settings UI
+ * @hide
*/
- @SystemApi
+ // TODO(b/148626966): called by SUW via reflection, remove once SUW is updated
public static class RecentFailure {
private RecentFailure() {}
- /** @hide */
- @Retention(RetentionPolicy.SOURCE)
- @IntDef(value = {NONE, STATUS_AP_UNABLE_TO_HANDLE_NEW_STA})
- public @interface AssociationStatus {}
-
- /**
- * No recent failure, or no specific reason given for the recent connection failure
- */
- public static final int NONE = 0;
- /**
- * Connection to this network recently failed due to Association Rejection Status 17
- * (AP is full)
- */
- public static final int STATUS_AP_UNABLE_TO_HANDLE_NEW_STA = 17;
/**
* Association Rejection Status code (NONE for success/non-association-rejection-fail)
*/
- @AssociationStatus
- private int mAssociationStatus = NONE;
+ @RecentFailureReason
+ private int mAssociationStatus = RECENT_FAILURE_NONE;
/**
* @param status the association status code for the recent failure
- * @hide
*/
- public void setAssociationStatus(@AssociationStatus int status) {
+ public void setAssociationStatus(@RecentFailureReason int status) {
mAssociationStatus = status;
}
/**
* Sets the RecentFailure to NONE
- * @hide
*/
public void clear() {
- mAssociationStatus = NONE;
+ mAssociationStatus = RECENT_FAILURE_NONE;
}
/**
- * Get the recent failure code. One of {@link #NONE} or
- * {@link #STATUS_AP_UNABLE_TO_HANDLE_NEW_STA}.
+ * Get the recent failure code. One of {@link #RECENT_FAILURE_NONE} or
+ * {@link #RECENT_FAILURE_AP_UNABLE_TO_HANDLE_NEW_STA}.
*/
- @AssociationStatus
+ @RecentFailureReason
public int getAssociationStatus() {
return mAssociationStatus;
}
@@ -1986,10 +1998,47 @@ public class WifiConfiguration implements Parcelable {
* RecentFailure member
* @hide
*/
+ // TODO(b/148626966): called by SUW via reflection, once SUW is updated, make private and
+ // rename to mRecentFailure
@NonNull
- @SystemApi
public final RecentFailure recentFailure = new RecentFailure();
+ /** @hide */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef(prefix = "RECENT_FAILURE_", value = {
+ RECENT_FAILURE_NONE,
+ RECENT_FAILURE_AP_UNABLE_TO_HANDLE_NEW_STA})
+ public @interface RecentFailureReason {}
+
+ /**
+ * No recent failure, or no specific reason given for the recent connection failure
+ * @hide
+ */
+ @SystemApi
+ public static final int RECENT_FAILURE_NONE = 0;
+ /**
+ * Connection to this network recently failed due to Association Rejection Status 17
+ * (AP is full)
+ * @hide
+ */
+ @SystemApi
+ public static final int RECENT_FAILURE_AP_UNABLE_TO_HANDLE_NEW_STA = 17;
+
+ /**
+ * Get the failure reason for the most recent connection attempt, or
+ * {@link #RECENT_FAILURE_NONE} if there was no failure.
+ *
+ * Failure reasons include:
+ * {@link #RECENT_FAILURE_AP_UNABLE_TO_HANDLE_NEW_STA}
+ *
+ * @hide
+ */
+ @RecentFailureReason
+ @SystemApi
+ public int getRecentFailureReason() {
+ return recentFailure.getAssociationStatus();
+ }
+
/**
* Get the network selection status.
* @hide
@@ -2129,8 +2178,8 @@ public class WifiConfiguration implements Parcelable {
sbuf.append(" mNetworkSelectionDisableReason ")
.append(mNetworkSelectionStatus.getNetworkDisableReasonString() + "\n");
- for (int index = mNetworkSelectionStatus.NETWORK_SELECTION_ENABLE;
- index < mNetworkSelectionStatus.NETWORK_SELECTION_DISABLED_MAX; index++) {
+ for (int index = NetworkSelectionStatus.DISABLED_NONE;
+ index < NetworkSelectionStatus.NETWORK_SELECTION_DISABLED_MAX; index++) {
if (mNetworkSelectionStatus.getDisableReasonCounter(index) != 0) {
sbuf.append(NetworkSelectionStatus.getNetworkDisableReasonString(index)
+ " counter:" + mNetworkSelectionStatus.getDisableReasonCounter(index)
@@ -2142,7 +2191,7 @@ public class WifiConfiguration implements Parcelable {
sbuf.append(" connect choice: ").append(mNetworkSelectionStatus.getConnectChoice());
}
sbuf.append(" hasEverConnected: ")
- .append(mNetworkSelectionStatus.getHasEverConnected()).append("\n");
+ .append(mNetworkSelectionStatus.hasEverConnected()).append("\n");
if (this.numAssociation > 0) {
sbuf.append(" numAssociation ").append(this.numAssociation).append("\n");
@@ -2511,7 +2560,7 @@ public class WifiConfiguration implements Parcelable {
* @hide
*/
@Nullable
- @SystemApi
+ @UnsupportedAppUsage
public StaticIpConfiguration getStaticIpConfiguration() {
return mIpConfiguration.getStaticIpConfiguration();
}
@@ -2527,7 +2576,7 @@ public class WifiConfiguration implements Parcelable {
* @hide
*/
@NonNull
- @SystemApi
+ @UnsupportedAppUsage
public IpConfiguration.IpAssignment getIpAssignment() {
return mIpConfiguration.getIpAssignment();
}
@@ -2543,7 +2592,7 @@ public class WifiConfiguration implements Parcelable {
* @hide
*/
@NonNull
- @SystemApi
+ @UnsupportedAppUsage
public IpConfiguration.ProxySettings getProxySettings() {
return mIpConfiguration.getProxySettings();
}
@@ -2606,7 +2655,7 @@ public class WifiConfiguration implements Parcelable {
* Set the {@link ProxySettings} and {@link ProxyInfo} for this network.
* @hide
*/
- @SystemApi
+ @UnsupportedAppUsage
public void setProxy(@NonNull ProxySettings settings, @NonNull ProxyInfo proxy) {
mIpConfiguration.setProxySettings(settings);
mIpConfiguration.setHttpProxy(proxy);
diff --git a/wifi/java/android/net/wifi/WifiEnterpriseConfig.java b/wifi/java/android/net/wifi/WifiEnterpriseConfig.java
index 04016b606b96..db0d36e5c086 100644
--- a/wifi/java/android/net/wifi/WifiEnterpriseConfig.java
+++ b/wifi/java/android/net/wifi/WifiEnterpriseConfig.java
@@ -60,13 +60,13 @@ public class WifiEnterpriseConfig implements Parcelable {
"android.net.wifi.extra.WAPI_AS_CERTIFICATE_DATA";
/**
- * Intent extra: name for WAPI AS certificates
+ * Intent extra: name for WAPI USER certificates
*/
public static final String EXTRA_WAPI_USER_CERTIFICATE_NAME =
"android.net.wifi.extra.WAPI_USER_CERTIFICATE_NAME";
/**
- * Intent extra: data for WAPI AS certificates
+ * Intent extra: data for WAPI USER certificates
*/
public static final String EXTRA_WAPI_USER_CERTIFICATE_DATA =
"android.net.wifi.extra.WAPI_USER_CERTIFICATE_DATA";
diff --git a/wifi/java/android/net/wifi/WifiFrameworkInitializer.java b/wifi/java/android/net/wifi/WifiFrameworkInitializer.java
index 002820b1bcc8..1507199b0264 100644
--- a/wifi/java/android/net/wifi/WifiFrameworkInitializer.java
+++ b/wifi/java/android/net/wifi/WifiFrameworkInitializer.java
@@ -102,15 +102,6 @@ public class WifiFrameworkInitializer {
}
);
SystemServiceRegistry.registerContextAwareService(
- Context.WIFI_RTT_SERVICE,
- RttManager.class,
- (context, serviceBinder) -> {
- IWifiRttManager service = IWifiRttManager.Stub.asInterface(serviceBinder);
- WifiRttManager wifiRttManager = new WifiRttManager(context, service);
- return new RttManager(context, wifiRttManager);
- }
- );
- SystemServiceRegistry.registerContextAwareService(
Context.WIFI_RTT_RANGING_SERVICE,
WifiRttManager.class,
(context, serviceBinder) -> {
@@ -118,5 +109,13 @@ public class WifiFrameworkInitializer {
return new WifiRttManager(context, service);
}
);
+ SystemServiceRegistry.registerContextAwareService(
+ Context.WIFI_RTT_SERVICE,
+ RttManager.class,
+ context -> {
+ WifiRttManager wifiRttManager = context.getSystemService(WifiRttManager.class);
+ return new RttManager(context, wifiRttManager);
+ }
+ );
}
}
diff --git a/wifi/java/android/net/wifi/WifiInfo.java b/wifi/java/android/net/wifi/WifiInfo.java
index 7c031eaaeaf4..24b2a8e8994f 100644
--- a/wifi/java/android/net/wifi/WifiInfo.java
+++ b/wifi/java/android/net/wifi/WifiInfo.java
@@ -449,9 +449,8 @@ public class WifiInfo implements Parcelable {
* <p>
* If the SSID can be decoded as UTF-8, it will be returned surrounded by double
* quotation marks. Otherwise, it is returned as a string of hex digits.
- * The SSID may be
- * <lt>&lt;unknown ssid&gt;, if there is no network currently connected or if the caller has
- * insufficient permissions to access the SSID.<lt>
+ * The SSID may be {@link WifiManager#UNKNOWN_SSID}, if there is no network currently connected
+ * or if the caller has insufficient permissions to access the SSID.
* </p>
* <p>
* Prior to {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}, this method
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index 76f97164032c..a3cce7c00b3a 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -38,6 +38,7 @@ import android.net.ConnectivityManager;
import android.net.DhcpInfo;
import android.net.MacAddress;
import android.net.Network;
+import android.net.NetworkScore;
import android.net.NetworkStack;
import android.net.wifi.hotspot2.IProvisioningCallback;
import android.net.wifi.hotspot2.OsuProvider;
@@ -256,12 +257,12 @@ public class WifiManager {
* - {@link #EXTRA_SCAN_AVAILABLE}
*/
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
- public static final String ACTION_WIFI_SCAN_AVAILABLE =
- "android.net.wifi.action.WIFI_SCAN_AVAILABLE";
+ public static final String ACTION_WIFI_SCAN_AVAILABILITY_CHANGED =
+ "android.net.wifi.action.WIFI_SCAN_AVAILABILITY_CHANGED";
/**
* A boolean extra indicating whether scanning is currently available.
- * Sent in the broadcast {@link #ACTION_WIFI_SCAN_AVAILABLE}.
+ * Sent in the broadcast {@link #ACTION_WIFI_SCAN_AVAILABILITY_CHANGED}.
* Its value is true if scanning is currently available, false otherwise.
*/
public static final String EXTRA_SCAN_AVAILABLE = "android.net.wifi.extra.SCAN_AVAILABLE";
@@ -2624,8 +2625,8 @@ public class WifiManager {
public void getWifiActivityEnergyInfoAsync(
@NonNull @CallbackExecutor Executor executor,
@NonNull OnWifiActivityEnergyInfoListener listener) {
- if (executor == null) throw new IllegalArgumentException("executor cannot be null");
- if (listener == null) throw new IllegalArgumentException("listener cannot be null");
+ Objects.requireNonNull(executor, "executor cannot be null");
+ Objects.requireNonNull(listener, "listener cannot be null");
try {
mService.getWifiActivityEnergyInfoAsync(
new OnWifiActivityEnergyInfoProxy(executor, listener));
@@ -4308,16 +4309,16 @@ public class WifiManager {
}
/**
- * Allows the OEM to enable/disable auto-join globally.
+ * Enable/disable auto-join globally.
*
- * @param choice true to allow autojoin, false to disallow autojoin
+ * @param allowAutojoin true to allow auto-join, false to disallow auto-join
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
- public void allowAutojoinGlobal(boolean choice) {
+ public void allowAutojoinGlobal(boolean allowAutojoin) {
try {
- mService.allowAutojoinGlobal(choice);
+ mService.allowAutojoinGlobal(allowAutojoin);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -4329,15 +4330,15 @@ public class WifiManager {
* The updated choice will be made available through the updated config supplied by the
* CONFIGURED_NETWORKS_CHANGED broadcast.
*
- * @param netId the id of the network to allow/disallow autojoin for.
- * @param choice true to allow autojoin, false to disallow autojoin
+ * @param netId the id of the network to allow/disallow auto-join for.
+ * @param allowAutojoin true to allow auto-join, false to disallow auto-join
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
- public void allowAutojoin(int netId, boolean choice) {
+ public void allowAutojoin(int netId, boolean allowAutojoin) {
try {
- mService.allowAutojoin(netId, choice);
+ mService.allowAutojoin(netId, allowAutojoin);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -4347,14 +4348,14 @@ public class WifiManager {
* Configure auto-join settings for a Passpoint profile.
*
* @param fqdn the FQDN (fully qualified domain name) of the passpoint profile.
- * @param enableAutoJoin true to enable autojoin, false to disable autojoin.
+ * @param allowAutojoin true to enable auto-join, false to disable auto-join.
* @hide
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
- public void allowAutojoinPasspoint(@NonNull String fqdn, boolean enableAutoJoin) {
+ public void allowAutojoinPasspoint(@NonNull String fqdn, boolean allowAutojoin) {
try {
- mService.allowAutojoinPasspoint(fqdn, enableAutoJoin);
+ mService.allowAutojoinPasspoint(fqdn, allowAutojoin);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -5948,10 +5949,11 @@ public class WifiManager {
*
* @param sessionId The ID to indicate current Wi-Fi network connection obtained from
* {@link WifiConnectedNetworkScorer#start(int)}.
- * @param isUsable The bit to indicate whether current Wi-Fi network is usable or not.
- * Populated by connected network scorer in applications.
+ * @param score The {@link android.net.NetworkScore} object representing the
+ * characteristics of current Wi-Fi network. Populated by connected network
+ * scorer in applications.
*/
- void onStatusChange(int sessionId, boolean isUsable);
+ void onScoreChange(int sessionId, @NonNull NetworkScore score);
/**
* Called by applications to trigger an update of {@link WifiUsabilityStatsEntry}.
@@ -5977,9 +5979,9 @@ public class WifiManager {
}
@Override
- public void onStatusChange(int sessionId, boolean isUsable) {
+ public void onScoreChange(int sessionId, @NonNull NetworkScore score) {
try {
- mScoreChangeCallback.onStatusChange(sessionId, isUsable);
+ mScoreChangeCallback.onScoreChange(sessionId, score);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
diff --git a/wifi/java/android/net/wifi/WifiNetworkAgentSpecifier.java b/wifi/java/android/net/wifi/WifiNetworkAgentSpecifier.java
index 04d2e1a8b5dd..6632c162fcf9 100644
--- a/wifi/java/android/net/wifi/WifiNetworkAgentSpecifier.java
+++ b/wifi/java/android/net/wifi/WifiNetworkAgentSpecifier.java
@@ -27,7 +27,6 @@ import android.net.NetworkRequest;
import android.net.NetworkSpecifier;
import android.os.Parcel;
import android.os.Parcelable;
-import android.text.TextUtils;
import java.util.Objects;
@@ -41,33 +40,10 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
*/
private final WifiConfiguration mWifiConfiguration;
- /**
- * The UID of the app that requested a specific wifi network using {@link WifiNetworkSpecifier}.
- *
- * Will only be filled when the device connects to a wifi network as a result of a
- * {@link NetworkRequest} with {@link WifiNetworkSpecifier}. Will be set to -1 if the device
- * auto-connected to a wifi network.
- */
- private final int mOriginalRequestorUid;
-
- /**
- * The package name of the app that requested a specific wifi network using
- * {@link WifiNetworkSpecifier}.
- *
- * Will only be filled when the device connects to a wifi network as a result of a
- * {@link NetworkRequest} with {@link WifiNetworkSpecifier}. Will be set to null if the device
- * auto-connected to a wifi network.
- */
- private final String mOriginalRequestorPackageName;
-
- public WifiNetworkAgentSpecifier(@NonNull WifiConfiguration wifiConfiguration,
- int originalRequestorUid,
- @Nullable String originalRequestorPackageName) {
+ public WifiNetworkAgentSpecifier(@NonNull WifiConfiguration wifiConfiguration) {
checkNotNull(wifiConfiguration);
mWifiConfiguration = wifiConfiguration;
- mOriginalRequestorUid = originalRequestorUid;
- mOriginalRequestorPackageName = originalRequestorPackageName;
}
/**
@@ -78,10 +54,7 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
@Override
public WifiNetworkAgentSpecifier createFromParcel(@NonNull Parcel in) {
WifiConfiguration wifiConfiguration = in.readParcelable(null);
- int originalRequestorUid = in.readInt();
- String originalRequestorPackageName = in.readString();
- return new WifiNetworkAgentSpecifier(
- wifiConfiguration, originalRequestorUid, originalRequestorPackageName);
+ return new WifiNetworkAgentSpecifier(wifiConfiguration);
}
@Override
@@ -98,8 +71,6 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeParcelable(mWifiConfiguration, flags);
- dest.writeInt(mOriginalRequestorUid);
- dest.writeString(mOriginalRequestorPackageName);
}
@Override
@@ -149,12 +120,6 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
this.mWifiConfiguration.allowedKeyManagement)) {
return false;
}
- if (ns.requestorUid != this.mOriginalRequestorUid) {
- return false;
- }
- if (!TextUtils.equals(ns.requestorPackageName, this.mOriginalRequestorPackageName)) {
- return false;
- }
return true;
}
@@ -163,9 +128,7 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
return Objects.hash(
mWifiConfiguration.SSID,
mWifiConfiguration.BSSID,
- mWifiConfiguration.allowedKeyManagement,
- mOriginalRequestorUid,
- mOriginalRequestorPackageName);
+ mWifiConfiguration.allowedKeyManagement);
}
@Override
@@ -180,10 +143,7 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
return Objects.equals(this.mWifiConfiguration.SSID, lhs.mWifiConfiguration.SSID)
&& Objects.equals(this.mWifiConfiguration.BSSID, lhs.mWifiConfiguration.BSSID)
&& Objects.equals(this.mWifiConfiguration.allowedKeyManagement,
- lhs.mWifiConfiguration.allowedKeyManagement)
- && mOriginalRequestorUid == lhs.mOriginalRequestorUid
- && TextUtils.equals(mOriginalRequestorPackageName,
- lhs.mOriginalRequestorPackageName);
+ lhs.mWifiConfiguration.allowedKeyManagement);
}
@Override
@@ -192,19 +152,11 @@ public final class WifiNetworkAgentSpecifier extends NetworkSpecifier implements
sb.append("WifiConfiguration=")
.append(", SSID=").append(mWifiConfiguration.SSID)
.append(", BSSID=").append(mWifiConfiguration.BSSID)
- .append(", mOriginalRequestorUid=").append(mOriginalRequestorUid)
- .append(", mOriginalRequestorPackageName=").append(mOriginalRequestorPackageName)
.append("]");
return sb.toString();
}
@Override
- public void assertValidFromUid(int requestorUid) {
- throw new IllegalStateException("WifiNetworkAgentSpecifier should never be used "
- + "for requests.");
- }
-
- @Override
public NetworkSpecifier redact() {
return null;
}
diff --git a/wifi/java/android/net/wifi/WifiNetworkSpecifier.java b/wifi/java/android/net/wifi/WifiNetworkSpecifier.java
index 444e1ef041e8..3d946c9f887d 100644
--- a/wifi/java/android/net/wifi/WifiNetworkSpecifier.java
+++ b/wifi/java/android/net/wifi/WifiNetworkSpecifier.java
@@ -20,7 +20,6 @@ import static com.android.internal.util.Preconditions.checkNotNull;
import android.annotation.NonNull;
import android.annotation.Nullable;
-import android.app.Application;
import android.net.MacAddress;
import android.net.MatchAllNetworkSpecifier;
import android.net.NetworkRequest;
@@ -28,13 +27,9 @@ import android.net.NetworkSpecifier;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.PatternMatcher;
-import android.os.Process;
import android.text.TextUtils;
-import android.util.Log;
import android.util.Pair;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.nio.charset.CharsetEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Objects;
@@ -438,24 +433,7 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
return new WifiNetworkSpecifier(
mSsidPatternMatcher,
mBssidPatternMatcher,
- buildWifiConfiguration(),
- Process.myUid(),
- getCurrentApplicationReflectively().getApplicationContext().getOpPackageName());
- }
-
- // TODO(b/144102365): Remove once refactor is complete
- private static Application getCurrentApplicationReflectively() {
- try {
- // reflection for static method android.app.ActivityThread#currentApplication()
- Class<?> klass = Class.forName("android.app.ActivityThread");
- Method currentApplicationMethod = klass.getDeclaredMethod("currentApplication");
- Object result = currentApplicationMethod.invoke(null);
- return (Application) result;
- } catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException
- | InvocationTargetException e) {
- Log.e(TAG, "Failed to call ActivityThread#currentApplication() reflectively!", e);
- throw new RuntimeException(e);
- }
+ buildWifiConfiguration());
}
}
@@ -483,20 +461,6 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
*/
public final WifiConfiguration wifiConfiguration;
- /**
- * The UID of the process initializing this network specifier. Validated by receiver using
- * checkUidIfNecessary() and is used by satisfiedBy() to determine whether the specifier
- * matches the offered network.
- * @hide
- */
- public final int requestorUid;
-
- /**
- * The package name of the app initializing this network specifier.
- * @hide
- */
- public final String requestorPackageName;
-
/** @hide */
public WifiNetworkSpecifier() throws IllegalAccessException {
throw new IllegalAccessException("Use the builder to create an instance");
@@ -505,18 +469,14 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
/** @hide */
public WifiNetworkSpecifier(@NonNull PatternMatcher ssidPatternMatcher,
@NonNull Pair<MacAddress, MacAddress> bssidPatternMatcher,
- @NonNull WifiConfiguration wifiConfiguration,
- int requestorUid, @NonNull String requestorPackageName) {
+ @NonNull WifiConfiguration wifiConfiguration) {
checkNotNull(ssidPatternMatcher);
checkNotNull(bssidPatternMatcher);
checkNotNull(wifiConfiguration);
- checkNotNull(requestorPackageName);
this.ssidPatternMatcher = ssidPatternMatcher;
this.bssidPatternMatcher = bssidPatternMatcher;
this.wifiConfiguration = wifiConfiguration;
- this.requestorUid = requestorUid;
- this.requestorPackageName = requestorPackageName;
}
public static final @NonNull Creator<WifiNetworkSpecifier> CREATOR =
@@ -529,10 +489,8 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
Pair<MacAddress, MacAddress> bssidPatternMatcher =
Pair.create(baseAddress, mask);
WifiConfiguration wifiConfiguration = in.readParcelable(null);
- int requestorUid = in.readInt();
- String requestorPackageName = in.readString();
return new WifiNetworkSpecifier(ssidPatternMatcher, bssidPatternMatcher,
- wifiConfiguration, requestorUid, requestorPackageName);
+ wifiConfiguration);
}
@Override
@@ -552,18 +510,13 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
dest.writeParcelable(bssidPatternMatcher.first, flags);
dest.writeParcelable(bssidPatternMatcher.second, flags);
dest.writeParcelable(wifiConfiguration, flags);
- dest.writeInt(requestorUid);
- dest.writeString(requestorPackageName);
}
@Override
public int hashCode() {
return Objects.hash(
- ssidPatternMatcher.getPath(),
- ssidPatternMatcher.getType(),
- bssidPatternMatcher,
- wifiConfiguration.allowedKeyManagement,
- requestorUid, requestorPackageName);
+ ssidPatternMatcher.getPath(), ssidPatternMatcher.getType(), bssidPatternMatcher,
+ wifiConfiguration.allowedKeyManagement);
}
@Override
@@ -582,9 +535,7 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
&& Objects.equals(this.bssidPatternMatcher,
lhs.bssidPatternMatcher)
&& Objects.equals(this.wifiConfiguration.allowedKeyManagement,
- lhs.wifiConfiguration.allowedKeyManagement)
- && requestorUid == lhs.requestorUid
- && TextUtils.equals(requestorPackageName, lhs.requestorPackageName);
+ lhs.wifiConfiguration.allowedKeyManagement);
}
@Override
@@ -595,8 +546,6 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
.append(", BSSID Match pattern=").append(bssidPatternMatcher)
.append(", SSID=").append(wifiConfiguration.SSID)
.append(", BSSID=").append(wifiConfiguration.BSSID)
- .append(", requestorUid=").append(requestorUid)
- .append(", requestorPackageName=").append(requestorPackageName)
.append("]")
.toString();
}
@@ -618,12 +567,4 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc
// not make much sense!
return equals(other);
}
-
- /** @hide */
- @Override
- public void assertValidFromUid(int requestorUid) {
- if (this.requestorUid != requestorUid) {
- throw new SecurityException("mismatched UIDs");
- }
- }
}
diff --git a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
index 6085eae252ef..720149695abc 100644
--- a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
+++ b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
@@ -126,7 +126,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
/**
* Whether this network is initialized with auto-join enabled (the default) or not.
*/
- private boolean mIsInitialAutoJoinEnabled;
+ private boolean mIsInitialAutojoinEnabled;
/**
* Pre-shared key for use with WAPI-PSK networks.
@@ -159,7 +159,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
mIsMetered = false;
mIsSharedWithUser = true;
mIsSharedWithUserSet = false;
- mIsInitialAutoJoinEnabled = true;
+ mIsInitialAutojoinEnabled = true;
mPriority = UNASSIGNED_PRIORITY;
mCarrierId = TelephonyManager.UNKNOWN_CARRIER_ID;
mWapiPskPassphrase = null;
@@ -467,10 +467,10 @@ public final class WifiNetworkSuggestion implements Parcelable {
*
* @param enabled true for initializing with auto-join enabled (the default), false to
* initializing with auto-join disabled.
- * @return Instance of (@link {@link Builder} to enable chaining of the builder method.
+ * @return Instance of {@link Builder} to enable chaining of the builder method.
*/
- public @NonNull Builder setIsInitialAutoJoinEnabled(boolean enabled) {
- mIsInitialAutoJoinEnabled = enabled;
+ public @NonNull Builder setIsInitialAutojoinEnabled(boolean enabled) {
+ mIsInitialAutojoinEnabled = enabled;
return this;
}
@@ -664,10 +664,10 @@ public final class WifiNetworkSuggestion implements Parcelable {
mIsSharedWithUser = false;
}
}
- if (!mIsSharedWithUser && !mIsInitialAutoJoinEnabled) {
+ if (!mIsSharedWithUser && !mIsInitialAutojoinEnabled) {
throw new IllegalStateException("Should have not a network with both "
+ "setCredentialSharedWithUser and "
- + "setIsAutoJoinEnabled set to false");
+ + "setIsAutojoinEnabled set to false");
}
if (mIsNetworkUntrusted) {
if (mIsSharedWithUserSet && mIsSharedWithUser) {
@@ -683,7 +683,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
mIsAppInteractionRequired,
mIsUserInteractionRequired,
mIsSharedWithUser,
- mIsInitialAutoJoinEnabled,
+ mIsInitialAutojoinEnabled,
mIsNetworkUntrusted);
}
}
@@ -774,7 +774,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
in.readBoolean(), // isAppInteractionRequired
in.readBoolean(), // isUserInteractionRequired
in.readBoolean(), // isSharedCredentialWithUser
- in.readBoolean(), // isAutoJoinEnabled
+ in.readBoolean(), // isAutojoinEnabled
in.readBoolean()
);
}
diff --git a/wifi/java/android/net/wifi/WifiScanner.java b/wifi/java/android/net/wifi/WifiScanner.java
index 6f01350d8af4..b4eb30b8cfe6 100644
--- a/wifi/java/android/net/wifi/WifiScanner.java
+++ b/wifi/java/android/net/wifi/WifiScanner.java
@@ -293,26 +293,34 @@ public class WifiScanner {
public final List<HiddenNetwork> hiddenNetworks = new ArrayList<>();
/**
* period of background scan; in millisecond, 0 => single shot scan
- * @deprecated Background scan support is removed.
+ * @deprecated Background scan support has always been hardware vendor dependent. This
+ * support may not be present on newer devices. Use {@link #startScan(ScanSettings,
+ * ScanListener)} instead for single scans.
*/
@Deprecated
public int periodInMs;
/**
* must have a valid REPORT_EVENT value
- * @deprecated Background scan support is removed.
+ * @deprecated Background scan support has always been hardware vendor dependent. This
+ * support may not be present on newer devices. Use {@link #startScan(ScanSettings,
+ * ScanListener)} instead for single scans.
*/
@Deprecated
public int reportEvents;
/**
* defines number of bssids to cache from each scan
- * @deprecated Background scan support is removed.
+ * @deprecated Background scan support has always been hardware vendor dependent. This
+ * support may not be present on newer devices. Use {@link #startScan(ScanSettings,
+ * ScanListener)} instead for single scans.
*/
@Deprecated
public int numBssidsPerScan;
/**
* defines number of scans to cache; use it with REPORT_EVENT_AFTER_BUFFER_FULL
* to wake up at fixed interval
- * @deprecated Background scan support is removed.
+ * @deprecated Background scan support has always been hardware vendor dependent. This
+ * support may not be present on newer devices. Use {@link #startScan(ScanSettings,
+ * ScanListener)} instead for single scans.
*/
@Deprecated
public int maxScansToCache;
@@ -321,14 +329,18 @@ public class WifiScanner {
* a truncated binary exponential backoff bucket and the scan period will grow
* exponentially as per formula: actual_period(N) = period * (2 ^ (N/stepCount))
* to maxPeriodInMs
- * @deprecated Background scan support is removed.
+ * @deprecated Background scan support has always been hardware vendor dependent. This
+ * support may not be present on newer devices. Use {@link #startScan(ScanSettings,
+ * ScanListener)} instead for single scans.
*/
@Deprecated
public int maxPeriodInMs;
/**
* for truncated binary exponential back off bucket, number of scans to perform
* for a given period
- * @deprecated Background scan support is removed.
+ * @deprecated Background scan support has always been hardware vendor dependent. This
+ * support may not be present on newer devices. Use {@link #startScan(ScanSettings,
+ * ScanListener)} instead for single scans.
*/
@Deprecated
public int stepCount;
@@ -806,7 +818,9 @@ public class WifiScanner {
/**
* Framework co-ordinates scans across multiple apps; so it may not give exactly the
* same period requested. If period of a scan is changed; it is reported by this event.
- * @deprecated Background scan support is removed.
+ * @deprecated Background scan support has always been hardware vendor dependent. This
+ * support may not be present on newer devices. Use {@link #startScan(ScanSettings,
+ * ScanListener)} instead for single scans.
*/
@Deprecated
public void onPeriodChanged(int periodInMs);
@@ -836,6 +850,8 @@ public class WifiScanner {
* Enable/Disable wifi scanning.
*
* @param enable set to true to enable scanning, set to false to disable all types of scanning.
+ *
+ * @see WifiManager#ACTION_WIFI_SCAN_AVAILABILITY_CHANGED
* {@hide}
*/
@SystemApi
@@ -911,7 +927,9 @@ public class WifiScanner {
* @param listener specifies the object to report events to. This object is also treated as a
* key for this scan, and must also be specified to cancel the scan. Multiple
* scans should also not share this object.
- * @deprecated Background scan support is removed.
+ * @deprecated Background scan support has always been hardware vendor dependent. This support
+ * may not be present on newer devices. Use {@link #startScan(ScanSettings, ScanListener)}
+ * instead for single scans.
*/
@Deprecated
@RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE)
@@ -933,7 +951,9 @@ public class WifiScanner {
* stop an ongoing wifi scan
* @param listener specifies which scan to cancel; must be same object as passed in {@link
* #startBackgroundScan}
- * @deprecated Background scan support is removed.
+ * @deprecated Background scan support has always been hardware vendor dependent. This support
+ * may not be present on newer devices. Use {@link #startScan(ScanSettings, ScanListener)}
+ * instead for single scans.
*/
@Deprecated
@RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE)
@@ -951,7 +971,9 @@ public class WifiScanner {
/**
* reports currently available scan results on appropriate listeners
* @return true if all scan results were reported correctly
- * @deprecated Background scan support is removed.
+ * @deprecated Background scan support has always been hardware vendor dependent. This support
+ * may not be present on newer devices. Use {@link #startScan(ScanSettings, ScanListener)}
+ * instead for single scans.
*/
@Deprecated
@RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE)
diff --git a/wifi/java/android/net/wifi/aware/WifiAwareAgentNetworkSpecifier.java b/wifi/java/android/net/wifi/aware/WifiAwareAgentNetworkSpecifier.java
index c66733472d0e..a4b3e86398a8 100644
--- a/wifi/java/android/net/wifi/aware/WifiAwareAgentNetworkSpecifier.java
+++ b/wifi/java/android/net/wifi/aware/WifiAwareAgentNetworkSpecifier.java
@@ -143,12 +143,6 @@ public class WifiAwareAgentNetworkSpecifier extends NetworkSpecifier implements
}
@Override
- public void assertValidFromUid(int requestorUid) {
- throw new SecurityException(
- "WifiAwareAgentNetworkSpecifier should not be used in network requests");
- }
-
- @Override
public NetworkSpecifier redact() {
return null;
}
diff --git a/wifi/java/android/net/wifi/aware/WifiAwareManager.java b/wifi/java/android/net/wifi/aware/WifiAwareManager.java
index 81bf81e40199..2ebaa1805b2b 100644
--- a/wifi/java/android/net/wifi/aware/WifiAwareManager.java
+++ b/wifi/java/android/net/wifi/aware/WifiAwareManager.java
@@ -34,7 +34,6 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
-import android.os.Process;
import android.os.RemoteException;
import android.util.Log;
@@ -447,8 +446,7 @@ public class WifiAwareManager {
pmk,
passphrase,
0, // no port info for deprecated IB APIs
- -1, // no transport info for deprecated IB APIs
- Process.myUid());
+ -1); // no transport info for deprecated IB APIs
}
/** @hide */
@@ -488,8 +486,7 @@ public class WifiAwareManager {
pmk,
passphrase,
0, // no port info for OOB APIs
- -1, // no transport protocol info for OOB APIs
- Process.myUid());
+ -1); // no transport protocol info for OOB APIs
}
private static class WifiAwareEventCallbackProxy extends IWifiAwareEventCallback.Stub {
diff --git a/wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java b/wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java
index 5a4ed3c2f5e3..65ac1ab26064 100644
--- a/wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java
+++ b/wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java
@@ -23,7 +23,6 @@ import android.annotation.NonNull;
import android.net.NetworkSpecifier;
import android.os.Parcel;
import android.os.Parcelable;
-import android.os.Process;
import android.text.TextUtils;
import java.util.Arrays;
@@ -144,19 +143,9 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
*/
public final int transportProtocol;
- /**
- * The UID of the process initializing this network specifier. Validated by receiver using
- * checkUidIfNecessary() and is used by satisfiedBy() to determine whether matches the
- * offered network.
- *
- * @hide
- */
- public final int requestorUid;
-
/** @hide */
public WifiAwareNetworkSpecifier(int type, int role, int clientId, int sessionId, int peerId,
- byte[] peerMac, byte[] pmk, String passphrase, int port, int transportProtocol,
- int requestorUid) {
+ byte[] peerMac, byte[] pmk, String passphrase, int port, int transportProtocol) {
this.type = type;
this.role = role;
this.clientId = clientId;
@@ -167,7 +156,6 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
this.passphrase = passphrase;
this.port = port;
this.transportProtocol = transportProtocol;
- this.requestorUid = requestorUid;
}
public static final @android.annotation.NonNull Creator<WifiAwareNetworkSpecifier> CREATOR =
@@ -184,8 +172,7 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
in.createByteArray(), // pmk
in.readString(), // passphrase
in.readInt(), // port
- in.readInt(), // transportProtocol
- in.readInt()); // requestorUid
+ in.readInt()); // transportProtocol
}
@Override
@@ -221,7 +208,6 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
dest.writeString(passphrase);
dest.writeInt(port);
dest.writeInt(transportProtocol);
- dest.writeInt(requestorUid);
}
/** @hide */
@@ -238,7 +224,7 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
@Override
public int hashCode() {
return Objects.hash(type, role, clientId, sessionId, peerId, Arrays.hashCode(peerMac),
- Arrays.hashCode(pmk), passphrase, port, transportProtocol, requestorUid);
+ Arrays.hashCode(pmk), passphrase, port, transportProtocol);
}
/** @hide */
@@ -263,8 +249,7 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
&& Arrays.equals(pmk, lhs.pmk)
&& Objects.equals(passphrase, lhs.passphrase)
&& port == lhs.port
- && transportProtocol == lhs.transportProtocol
- && requestorUid == lhs.requestorUid;
+ && transportProtocol == lhs.transportProtocol;
}
/** @hide */
@@ -283,19 +268,11 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
// masking PII
.append(", passphrase=").append((passphrase == null) ? "<null>" : "<non-null>")
.append(", port=").append(port).append(", transportProtocol=")
- .append(transportProtocol).append(", requestorUid=").append(requestorUid)
+ .append(transportProtocol)
.append("]");
return sb.toString();
}
- /** @hide */
- @Override
- public void assertValidFromUid(int requestorUid) {
- if (this.requestorUid != requestorUid) {
- throw new SecurityException("mismatched UIDs");
- }
- }
-
/**
* A builder class for a Wi-Fi Aware network specifier to set up an Aware connection with a
* peer.
@@ -463,7 +440,7 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements
return new WifiAwareNetworkSpecifier(
WifiAwareNetworkSpecifier.NETWORK_SPECIFIER_TYPE_IB, role,
mDiscoverySession.mClientId, mDiscoverySession.mSessionId, mPeerHandle.peerId,
- null, mPmk, mPskPassphrase, mPort, mTransportProtocol, Process.myUid());
+ null, mPmk, mPskPassphrase, mPort, mTransportProtocol);
}
}
}
diff --git a/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java b/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java
index 3a0d080594c8..615331f65258 100644
--- a/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java
+++ b/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java
@@ -19,6 +19,7 @@ package android.net.wifi.hotspot2;
import static android.net.wifi.WifiConfiguration.METERED_OVERRIDE_NONE;
import static android.net.wifi.WifiConfiguration.MeteredOverride;
+import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.net.wifi.hotspot2.pps.Credential;
@@ -431,7 +432,7 @@ public final class PasspointConfiguration implements Parcelable {
* considered for auto-connection. If true then yes, if false then it isn't considered as part
* of auto-connection - but can still be manually connected to.
*/
- private boolean mIsAutoJoinEnabled = true;
+ private boolean mIsAutojoinEnabled = true;
/**
* The mac randomization setting specifies whether a randomized or device MAC address will
@@ -458,11 +459,11 @@ public final class PasspointConfiguration implements Parcelable {
* indicates that only manual connection will work - the framework will not auto-associate to
* this Passpoint network.
*
- * @param autoJoinEnabled true to be considered for framework auto-connection, false otherwise.
+ * @param autojoinEnabled true to be considered for framework auto-connection, false otherwise.
* @hide
*/
- public void setAutoJoinEnabled(boolean autoJoinEnabled) {
- mIsAutoJoinEnabled = autoJoinEnabled;
+ public void setAutojoinEnabled(boolean autojoinEnabled) {
+ mIsAutojoinEnabled = autojoinEnabled;
}
/**
@@ -498,8 +499,8 @@ public final class PasspointConfiguration implements Parcelable {
* @hide
*/
@SystemApi
- public boolean isAutoJoinEnabled() {
- return mIsAutoJoinEnabled;
+ public boolean isAutojoinEnabled() {
+ return mIsAutojoinEnabled;
}
/**
@@ -569,7 +570,7 @@ public final class PasspointConfiguration implements Parcelable {
mServiceFriendlyNames = source.mServiceFriendlyNames;
mAaaServerTrustedNames = source.mAaaServerTrustedNames;
mCarrierId = source.mCarrierId;
- mIsAutoJoinEnabled = source.mIsAutoJoinEnabled;
+ mIsAutojoinEnabled = source.mIsAutojoinEnabled;
mIsMacRandomizationEnabled = source.mIsMacRandomizationEnabled;
mMeteredOverride = source.mMeteredOverride;
}
@@ -601,7 +602,7 @@ public final class PasspointConfiguration implements Parcelable {
(HashMap<String, String>) mServiceFriendlyNames);
dest.writeBundle(bundle);
dest.writeInt(mCarrierId);
- dest.writeBoolean(mIsAutoJoinEnabled);
+ dest.writeBoolean(mIsAutojoinEnabled);
dest.writeBoolean(mIsMacRandomizationEnabled);
dest.writeInt(mMeteredOverride);
}
@@ -634,7 +635,7 @@ public final class PasspointConfiguration implements Parcelable {
&& mUsageLimitDataLimit == that.mUsageLimitDataLimit
&& mUsageLimitTimeLimitInMinutes == that.mUsageLimitTimeLimitInMinutes
&& mCarrierId == that.mCarrierId
- && mIsAutoJoinEnabled == that.mIsAutoJoinEnabled
+ && mIsAutojoinEnabled == that.mIsAutojoinEnabled
&& mIsMacRandomizationEnabled == that.mIsMacRandomizationEnabled
&& mMeteredOverride == that.mMeteredOverride
&& (mServiceFriendlyNames == null ? that.mServiceFriendlyNames == null
@@ -647,7 +648,7 @@ public final class PasspointConfiguration implements Parcelable {
mUpdateIdentifier, mCredentialPriority, mSubscriptionCreationTimeInMillis,
mSubscriptionExpirationTimeInMillis, mUsageLimitUsageTimePeriodInMinutes,
mUsageLimitStartTimeInMillis, mUsageLimitDataLimit, mUsageLimitTimeLimitInMinutes,
- mServiceFriendlyNames, mCarrierId, mIsAutoJoinEnabled, mIsMacRandomizationEnabled,
+ mServiceFriendlyNames, mCarrierId, mIsAutojoinEnabled, mIsMacRandomizationEnabled,
mMeteredOverride);
}
@@ -702,7 +703,7 @@ public final class PasspointConfiguration implements Parcelable {
builder.append("ServiceFriendlyNames: ").append(mServiceFriendlyNames);
}
builder.append("CarrierId:" + mCarrierId);
- builder.append("IsAutoJoinEnabled:" + mIsAutoJoinEnabled);
+ builder.append("IsAutojoinEnabled:" + mIsAutojoinEnabled);
builder.append("mIsMacRandomizationEnabled:" + mIsMacRandomizationEnabled);
builder.append("mMeteredOverride:" + mMeteredOverride);
return builder.toString();
@@ -810,7 +811,7 @@ public final class PasspointConfiguration implements Parcelable {
"serviceFriendlyNames");
config.setServiceFriendlyNames(friendlyNamesMap);
config.mCarrierId = in.readInt();
- config.mIsAutoJoinEnabled = in.readBoolean();
+ config.mIsAutojoinEnabled = in.readBoolean();
config.mIsMacRandomizationEnabled = in.readBoolean();
config.mMeteredOverride = in.readInt();
return config;
@@ -895,4 +896,18 @@ public final class PasspointConfiguration implements Parcelable {
public boolean isOsuProvisioned() {
return getUpdateIdentifier() != Integer.MIN_VALUE;
}
+
+ /**
+ * Get a unique identifier for a PasspointConfiguration object.
+ *
+ * @return A unique identifier
+ * @throws IllegalStateException if Credential or HomeSP nodes are not initialized
+ */
+ public @NonNull String getUniqueId() throws IllegalStateException {
+ if (mCredential == null || mHomeSp == null || TextUtils.isEmpty(mHomeSp.getFqdn())) {
+ throw new IllegalStateException("Credential or HomeSP are not initialized");
+ }
+
+ return mHomeSp.getFqdn();
+ }
}
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java b/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java
index 9562f95ac162..36c7213b3799 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java
@@ -137,12 +137,12 @@ public class WifiP2pConfig implements Parcelable {
/** @hide */
@UnsupportedAppUsage
- public int netId = WifiP2pGroup.PERSISTENT_NET_ID;
+ public int netId = WifiP2pGroup.NETWORK_ID_PERSISTENT;
/**
* Get the network ID of this P2P configuration.
- * @return either a non-negative network ID, or one of {@link WifiP2pGroup#PERSISTENT_NET_ID} or
- * {@link WifiP2pGroup#TEMPORARY_NET_ID}.
+ * @return either a non-negative network ID, or one of
+ * {@link WifiP2pGroup#NETWORK_ID_PERSISTENT} or {@link WifiP2pGroup#NETWORK_ID_TEMPORARY}.
*/
public int getNetworkId() {
return netId;
@@ -280,7 +280,7 @@ public class WifiP2pConfig implements Parcelable {
private String mPassphrase = "";
private int mGroupOperatingBand = GROUP_OWNER_BAND_AUTO;
private int mGroupOperatingFrequency = GROUP_OWNER_BAND_AUTO;
- private int mNetId = WifiP2pGroup.TEMPORARY_NET_ID;
+ private int mNetId = WifiP2pGroup.NETWORK_ID_TEMPORARY;
/**
* Specify the peer's MAC address. If not set, the device will
@@ -460,9 +460,9 @@ public class WifiP2pConfig implements Parcelable {
*/
public @NonNull Builder enablePersistentMode(boolean persistent) {
if (persistent) {
- mNetId = WifiP2pGroup.PERSISTENT_NET_ID;
+ mNetId = WifiP2pGroup.NETWORK_ID_PERSISTENT;
} else {
- mNetId = WifiP2pGroup.TEMPORARY_NET_ID;
+ mNetId = WifiP2pGroup.NETWORK_ID_TEMPORARY;
}
return this;
}
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java b/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java
index 21f6704be0bb..e497b22d7769 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java
@@ -41,7 +41,15 @@ public class WifiP2pGroup implements Parcelable {
* The temporary network id.
* @see #getNetworkId()
*/
- public static final int TEMPORARY_NET_ID = -1;
+ public static final int NETWORK_ID_TEMPORARY = -1;
+
+ /**
+ * The temporary network id.
+ *
+ * @hide
+ */
+ @UnsupportedAppUsage
+ public static final int TEMPORARY_NET_ID = NETWORK_ID_TEMPORARY;
/**
* The persistent network id.
@@ -49,7 +57,7 @@ public class WifiP2pGroup implements Parcelable {
* Otherwise, create a new persistent profile.
* @see #getNetworkId()
*/
- public static final int PERSISTENT_NET_ID = -2;
+ public static final int NETWORK_ID_PERSISTENT = -2;
/** The network name */
private String mNetworkName;
@@ -130,13 +138,13 @@ public class WifiP2pGroup implements Parcelable {
mPassphrase = match.group(4);
mOwner = new WifiP2pDevice(match.group(5));
if (match.group(6) != null) {
- mNetId = PERSISTENT_NET_ID;
+ mNetId = NETWORK_ID_PERSISTENT;
} else {
- mNetId = TEMPORARY_NET_ID;
+ mNetId = NETWORK_ID_TEMPORARY;
}
} else if (tokens[0].equals("P2P-INVITATION-RECEIVED")) {
String sa = null;
- mNetId = PERSISTENT_NET_ID;
+ mNetId = NETWORK_ID_PERSISTENT;
for (String token : tokens) {
String[] nameValue = token.split("=");
if (nameValue.length != 2) continue;
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pManager.java b/wifi/java/android/net/wifi/p2p/WifiP2pManager.java
index 3459c9496595..0fe06756a969 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pManager.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pManager.java
@@ -1293,7 +1293,7 @@ public class WifiP2pManager {
@RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION)
public void createGroup(Channel c, ActionListener listener) {
checkChannel(c);
- c.mAsyncChannel.sendMessage(CREATE_GROUP, WifiP2pGroup.PERSISTENT_NET_ID,
+ c.mAsyncChannel.sendMessage(CREATE_GROUP, WifiP2pGroup.NETWORK_ID_PERSISTENT,
c.putListener(listener));
}
diff --git a/wifi/java/android/net/wifi/wificond/NativeScanResult.java b/wifi/java/android/net/wifi/wificond/NativeScanResult.java
index 6ed17081bdb5..7cc617d61b00 100644
--- a/wifi/java/android/net/wifi/wificond/NativeScanResult.java
+++ b/wifi/java/android/net/wifi/wificond/NativeScanResult.java
@@ -24,7 +24,6 @@ import android.os.Parcelable;
import com.android.internal.annotations.VisibleForTesting;
import java.util.ArrayList;
-import java.util.BitSet;
import java.util.List;
/**
@@ -34,8 +33,6 @@ import java.util.List;
*/
@SystemApi
public final class NativeScanResult implements Parcelable {
- private static final int CAPABILITY_SIZE = 16;
-
/** @hide */
@VisibleForTesting
public byte[] ssid;
@@ -56,7 +53,7 @@ public final class NativeScanResult implements Parcelable {
public long tsf;
/** @hide */
@VisibleForTesting
- public BitSet capability;
+ public int capability;
/** @hide */
@VisibleForTesting
public boolean associated;
@@ -134,7 +131,7 @@ public final class NativeScanResult implements Parcelable {
* Returns the capabilities of the AP repseresented by this scan result as advertised in the
* received probe response or beacon.
*
- * This is a bit mask describing the capabilities of a BSS. See IEEE Std 802.11: 8.4.1.4:
+ * This is a bit mask describing the capabilities of a BSS. See IEEE Std 802.11: 9.4.1.4:
* Bit 0 - ESS
* Bit 1 - IBSS
* Bit 2 - CF Pollable
@@ -143,7 +140,7 @@ public final class NativeScanResult implements Parcelable {
* Bit 5 - Short Preamble
* Bit 6 - PBCC
* Bit 7 - Channel Agility
- * Bit 8 - Spectrum Mgmt
+ * Bit 8 - Spectrum Management
* Bit 9 - QoS
* Bit 10 - Short Slot Time
* Bit 11 - APSD
@@ -154,7 +151,7 @@ public final class NativeScanResult implements Parcelable {
*
* @return a bit mask of capabilities.
*/
- @NonNull public BitSet getCapabilities() {
+ @NonNull public int getCapabilities() {
return capability;
}
@@ -169,7 +166,7 @@ public final class NativeScanResult implements Parcelable {
}
/**
- * @hide
+ * Construct an empty native scan result.
*/
public NativeScanResult() { }
@@ -188,13 +185,7 @@ public final class NativeScanResult implements Parcelable {
out.writeInt(frequency);
out.writeInt(signalMbm);
out.writeLong(tsf);
- int capabilityInt = 0;
- for (int i = 0; i < CAPABILITY_SIZE; i++) {
- if (capability.get(i)) {
- capabilityInt |= 1 << i;
- }
- }
- out.writeInt(capabilityInt);
+ out.writeInt(capability);
out.writeInt(associated ? 1 : 0);
out.writeTypedList(radioChainInfos);
}
@@ -220,13 +211,7 @@ public final class NativeScanResult implements Parcelable {
result.frequency = in.readInt();
result.signalMbm = in.readInt();
result.tsf = in.readLong();
- int capabilityInt = in.readInt();
- result.capability = new BitSet(CAPABILITY_SIZE);
- for (int i = 0; i < CAPABILITY_SIZE; i++) {
- if ((capabilityInt & (1 << i)) != 0) {
- result.capability.set(i);
- }
- }
+ result.capability = in.readInt();
result.associated = (in.readInt() != 0);
result.radioChainInfos = new ArrayList<>();
in.readTypedList(result.radioChainInfos, RadioChainInfo.CREATOR);
diff --git a/wifi/java/android/net/wifi/wificond/NativeWifiClient.java b/wifi/java/android/net/wifi/wificond/NativeWifiClient.java
index 554f9295ef0d..916c11579075 100644
--- a/wifi/java/android/net/wifi/wificond/NativeWifiClient.java
+++ b/wifi/java/android/net/wifi/wificond/NativeWifiClient.java
@@ -36,8 +36,7 @@ public final class NativeWifiClient implements Parcelable {
@NonNull public final byte[] macAddress;
/**
- * public constructor
- * @hide
+ * Construct a native Wi-Fi client.
*/
public NativeWifiClient(@NonNull byte[] macAddress) {
this.macAddress = macAddress;
diff --git a/wifi/java/android/net/wifi/wificond/PnoSettings.java b/wifi/java/android/net/wifi/wificond/PnoSettings.java
index 57c9ca5fd302..533d37d3a23a 100644
--- a/wifi/java/android/net/wifi/wificond/PnoSettings.java
+++ b/wifi/java/android/net/wifi/wificond/PnoSettings.java
@@ -16,6 +16,7 @@
package android.net.wifi.wificond;
+import android.annotation.DurationMillisLong;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.os.Parcel;
@@ -33,7 +34,7 @@ import java.util.Objects;
*/
@SystemApi
public final class PnoSettings implements Parcelable {
- private int mIntervalMs;
+ private long mIntervalMs;
private int mMin2gRssi;
private int mMin5gRssi;
private int mMin6gRssi;
@@ -47,17 +48,17 @@ public final class PnoSettings implements Parcelable {
*
* @return An interval in milliseconds.
*/
- public int getIntervalMillis() {
+ public @DurationMillisLong long getIntervalMillis() {
return mIntervalMs;
}
/**
* Set the requested PNO scan interval in milliseconds.
*
- * @param intervalMs An interval in milliseconds.
+ * @param intervalMillis An interval in milliseconds.
*/
- public void setIntervalMillis(int intervalMs) {
- this.mIntervalMs = intervalMs;
+ public void setIntervalMillis(@DurationMillisLong long intervalMillis) {
+ this.mIntervalMs = intervalMillis;
}
/**
@@ -176,7 +177,7 @@ public final class PnoSettings implements Parcelable {
**/
@Override
public void writeToParcel(@NonNull Parcel out, int flags) {
- out.writeInt(mIntervalMs);
+ out.writeLong(mIntervalMs);
out.writeInt(mMin2gRssi);
out.writeInt(mMin5gRssi);
out.writeInt(mMin6gRssi);
@@ -189,7 +190,7 @@ public final class PnoSettings implements Parcelable {
@Override
public PnoSettings createFromParcel(Parcel in) {
PnoSettings result = new PnoSettings();
- result.mIntervalMs = in.readInt();
+ result.mIntervalMs = in.readLong();
result.mMin2gRssi = in.readInt();
result.mMin5gRssi = in.readInt();
result.mMin6gRssi = in.readInt();
diff --git a/wifi/java/android/net/wifi/wificond/RadioChainInfo.java b/wifi/java/android/net/wifi/wificond/RadioChainInfo.java
index 64102dde94c0..97c0ee9d1c2c 100644
--- a/wifi/java/android/net/wifi/wificond/RadioChainInfo.java
+++ b/wifi/java/android/net/wifi/wificond/RadioChainInfo.java
@@ -61,7 +61,9 @@ public final class RadioChainInfo implements Parcelable {
return level;
}
- /** @hide */
+ /**
+ * Construct a RadioChainInfo.
+ */
public RadioChainInfo(int chainId, int level) {
this.chainId = chainId;
this.level = level;
diff --git a/wifi/java/android/net/wifi/wificond/WifiCondManager.java b/wifi/java/android/net/wifi/wificond/WifiCondManager.java
index 4847640b1418..7a31a5afab05 100644
--- a/wifi/java/android/net/wifi/wificond/WifiCondManager.java
+++ b/wifi/java/android/net/wifi/wificond/WifiCondManager.java
@@ -41,16 +41,19 @@ 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.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.stream.Collectors;
/**
- * This class encapsulates the interface the wificond daemon presents to the Wi-Fi framework. The
- * interface is only for use by the Wi-Fi framework and access is protected by SELinux permissions.
+ * This class encapsulates the interface the wificond (Wi-Fi Conductor) daemon presents to the
+ * Wi-Fi framework. The interface is only for use by the Wi-Fi framework and access is protected
+ * by SELinux permissions: only the system server and wpa_supplicant can use WifiCondManager.
*
* @hide
*/
@@ -493,22 +496,17 @@ public class WifiCondManager {
}
/**
- * Initializes WifiCondManager & registers a death notification for the WifiCondManager which
- * acts as a proxy for the wificond daemon (i.e. the death listener will be called when and if
- * the wificond daemon dies).
- *
- * Note: This method clears any existing state in wificond daemon.
+ * Register a death notification for the WifiCondManager which acts as a proxy for the
+ * wificond daemon (i.e. the death listener will be called when and if the wificond daemon
+ * dies).
*
* @param deathEventHandler A {@link Runnable} to be called whenever the wificond daemon dies.
- * @return Returns true on success.
*/
- public boolean initialize(@NonNull Runnable deathEventHandler) {
+ public void setOnServiceDeadCallback(@NonNull Runnable deathEventHandler) {
if (mDeathEventHandler != null) {
Log.e(TAG, "Death handler already present");
}
mDeathEventHandler = deathEventHandler;
- tearDownInterfaces();
- return true;
}
/**
@@ -600,11 +598,12 @@ public class WifiCondManager {
}
/**
- * Tear down a specific client (STA) interface, initially configured using
+ * Tear down a specific client (STA) interface configured using
* {@link #setupInterfaceForClientMode(String, Executor, ScanEventCallback, ScanEventCallback)}.
*
* @param ifaceName Name of the interface to tear down.
- * @return Returns true on success.
+ * @return Returns true on success, false on failure (e.g. when called before an interface was
+ * set up).
*/
public boolean tearDownClientInterface(@NonNull String ifaceName) {
if (getClientInterface(ifaceName) == null) {
@@ -678,11 +677,12 @@ public class WifiCondManager {
}
/**
- * Tear down a Soft AP interface initially configured using
+ * Tear down a Soft AP interface configured using
* {@link #setupInterfaceForSoftApMode(String)}.
*
* @param ifaceName Name of the interface to tear down.
- * @return Returns true on success.
+ * @return Returns true on success, false on failure (e.g. when called before an interface was
+ * set up).
*/
public boolean tearDownSoftApInterface(@NonNull String ifaceName) {
if (getApInterface(ifaceName) == null) {
@@ -747,9 +747,13 @@ public class WifiCondManager {
/**
* Request signal polling.
*
- * @param ifaceName Name of the interface on which to poll.
+ * @param ifaceName Name of the interface on which to poll. The interface must have been
+ * already set up using
+ *{@link #setupInterfaceForClientMode(String, Executor, ScanEventCallback, ScanEventCallback)}
+ * or {@link #setupInterfaceForSoftApMode(String)}.
+ *
* @return A {@link SignalPollResult} object containing interface statistics, or a null on
- * error.
+ * error (e.g. the interface hasn't been set up yet).
*/
@Nullable public SignalPollResult signalPoll(@NonNull String ifaceName) {
IClientInterface iface = getClientInterface(ifaceName);
@@ -773,10 +777,14 @@ public class WifiCondManager {
}
/**
- * Get current transmit (Tx) packet counters of the specified interface.
+ * Get current transmit (Tx) packet counters of the specified interface. The interface must
+ * have been already set up using
+ * {@link #setupInterfaceForClientMode(String, Executor, ScanEventCallback, ScanEventCallback)}
+ * or {@link #setupInterfaceForSoftApMode(String)}.
*
* @param ifaceName Name of the interface.
- * @return {@link TxPacketCounters} of the current interface or null on error.
+ * @return {@link TxPacketCounters} of the current interface or null on error (e.g. when
+ * called before the interface has been set up).
*/
@Nullable public TxPacketCounters getTxPacketCounters(@NonNull String ifaceName) {
IClientInterface iface = getClientInterface(ifaceName);
@@ -810,10 +818,15 @@ public class WifiCondManager {
* be done using {@link #startScan(String, int, Set, List)} or
* {@link #startPnoScan(String, PnoSettings, Executor, PnoScanRequestCallback)}.
*
+ * Note: The interface must have been already set up using
+ * {@link #setupInterfaceForClientMode(String, Executor, ScanEventCallback, ScanEventCallback)}
+ * or {@link #setupInterfaceForSoftApMode(String)}.
+ *
* @param ifaceName Name of the interface.
* @param scanType The type of scan result to be returned, can be
* {@link #SCAN_TYPE_SINGLE_SCAN} or {@link #SCAN_TYPE_PNO_SCAN}.
- * @return Returns an array of {@link NativeScanResult} or an empty array on failure.
+ * @return Returns an array of {@link NativeScanResult} or an empty array on failure (e.g. when
+ * called before the interface has been set up).
*/
@NonNull public List<NativeScanResult> getScanResults(@NonNull String ifaceName,
@ScanResultType int scanType) {
@@ -866,13 +879,19 @@ public class WifiCondManager {
* The latest scans can be obtained using {@link #getScanResults(String, int)} and using a
* {@link #SCAN_TYPE_SINGLE_SCAN} for the {@code scanType}.
*
+ * Note: The interface must have been already set up using
+ * {@link #setupInterfaceForClientMode(String, Executor, ScanEventCallback, ScanEventCallback)}
+ * or {@link #setupInterfaceForSoftApMode(String)}.
+ *
* @param ifaceName Name of the interface on which to initiate the scan.
* @param scanType Type of scan to perform, can be any of
* {@link WifiScanner#SCAN_TYPE_HIGH_ACCURACY}, {@link WifiScanner#SCAN_TYPE_LOW_POWER}, or
* {@link WifiScanner#SCAN_TYPE_LOW_LATENCY}.
* @param freqs list of frequencies to scan for, if null scan all supported channels.
- * @param hiddenNetworkSSIDs List of hidden networks to be scanned for.
- * @return Returns true on success.
+ * @param hiddenNetworkSSIDs List of hidden networks to be scanned for, a null indicates that
+ * no hidden frequencies will be scanned for.
+ * @return Returns true on success, false on failure (e.g. when called before the interface
+ * has been set up).
*/
public boolean startScan(@NonNull String ifaceName, @WifiAnnotations.ScanType int scanType,
@Nullable Set<Integer> freqs, @Nullable List<byte[]> hiddenNetworkSSIDs) {
@@ -928,11 +947,16 @@ public class WifiCondManager {
* The latest PNO scans can be obtained using {@link #getScanResults(String, int)} with the
* {@code scanType} set to {@link #SCAN_TYPE_PNO_SCAN}.
*
+ * Note: The interface must have been already set up using
+ * {@link #setupInterfaceForClientMode(String, Executor, ScanEventCallback, ScanEventCallback)}
+ * or {@link #setupInterfaceForSoftApMode(String)}.
+ *
* @param ifaceName Name of the interface on which to request a PNO.
* @param pnoSettings PNO scan configuration.
* @param executor The Executor on which to execute the callback.
* @param callback Callback for the results of the offload request.
- * @return true on success.
+ * @return true on success, false on failure (e.g. when called before the interface has been set
+ * up).
*/
public boolean startPnoScan(@NonNull String ifaceName, @NonNull PnoSettings pnoSettings,
@NonNull @CallbackExecutor Executor executor,
@@ -966,8 +990,13 @@ public class WifiCondManager {
* Stop PNO scan configured with
* {@link #startPnoScan(String, PnoSettings, Executor, PnoScanRequestCallback)}.
*
+ * Note: The interface must have been already set up using
+ * {@link #setupInterfaceForClientMode(String, Executor, ScanEventCallback, ScanEventCallback)}
+ * or {@link #setupInterfaceForSoftApMode(String)}.
+ *
* @param ifaceName Name of the interface on which the PNO scan was configured.
- * @return true on success.
+ * @return true on success, false on failure (e.g. when called before the interface has been
+ * set up).
*/
public boolean stopPnoScan(@NonNull String ifaceName) {
IWifiScannerImpl scannerImpl = getScannerImpl(ifaceName);
@@ -984,7 +1013,13 @@ public class WifiCondManager {
}
/**
- * Abort ongoing single scan started with {@link #startScan(String, int, Set, List)}.
+ * Abort ongoing single scan started with {@link #startScan(String, int, Set, List)}. No failure
+ * callback, e.g. {@link ScanEventCallback#onScanFailed()}, is triggered by this operation.
+ *
+ * Note: The interface must have been already set up using
+ * {@link #setupInterfaceForClientMode(String, Executor, ScanEventCallback, ScanEventCallback)}
+ * or {@link #setupInterfaceForSoftApMode(String)}. If the interface has not been set up then
+ * this method has no impact.
*
* @param ifaceName Name of the interface on which the scan was started.
*/
@@ -1011,13 +1046,13 @@ public class WifiCondManager {
* WifiScanner.WIFI_BAND_5_GHZ
* WifiScanner.WIFI_BAND_5_GHZ_DFS_ONLY
* WifiScanner.WIFI_BAND_6_GHZ
- * @return frequencies vector of valid frequencies (MHz), or an empty array for error.
+ * @return frequencies List of valid frequencies (MHz), or an empty list for error.
* @throws IllegalArgumentException if band is not recognized.
*/
- public @NonNull int[] getChannelsMhzForBand(@WifiAnnotations.WifiBandBasic int band) {
+ public @NonNull List<Integer> getChannelsMhzForBand(@WifiAnnotations.WifiBandBasic int band) {
if (mWificond == null) {
Log.e(TAG, "No valid wificond scanner interface handler");
- return new int[0];
+ return Collections.emptyList();
}
int[] result = null;
try {
@@ -1041,9 +1076,9 @@ public class WifiCondManager {
Log.e(TAG, "Failed to request getChannelsForBand due to remote exception");
}
if (result == null) {
- result = new int[0];
+ return Collections.emptyList();
}
- return result;
+ return Arrays.stream(result).boxed().collect(Collectors.toList());
}
/** Helper function to look up the interface handle using name */
@@ -1052,7 +1087,14 @@ public class WifiCondManager {
}
/**
- * Get the device phy capabilities for a given interface
+ * Get the device phy capabilities for a given interface.
+ *
+ * Note: The interface must have been already set up using
+ * {@link #setupInterfaceForClientMode(String, Executor, ScanEventCallback, ScanEventCallback)}
+ * or {@link #setupInterfaceForSoftApMode(String)}.
+ *
+ * @return DeviceWiphyCapabilities or null on error (e.g. when called on an interface which has
+ * not been set up).
*/
@Nullable public DeviceWiphyCapabilities getDeviceWiphyCapabilities(@NonNull String ifaceName) {
if (mWificond == null) {
@@ -1068,13 +1110,19 @@ public class WifiCondManager {
}
/**
- * Register the provided callback handler for SoftAp events. Note that the Soft AP itself is
- * configured using {@link #setupInterfaceForSoftApMode(String)}.
+ * Register the provided callback handler for SoftAp events. The interface must first be created
+ * using {@link #setupInterfaceForSoftApMode(String)}. The callback registration is valid until
+ * the interface is deleted using {@link #tearDownSoftApInterface(String)} (no deregistration
+ * method is provided).
+ * <p>
+ * Note that only one callback can be registered at a time - any registration overrides previous
+ * registrations.
*
* @param ifaceName Name of the interface on which to register the callback.
* @param executor The Executor on which to execute the callbacks.
* @param callback Callback for AP events.
- * @return true on success, false otherwise.
+ * @return true on success, false on failure (e.g. when called on an interface which has not
+ * been set up).
*/
public boolean registerApCallback(@NonNull String ifaceName,
@NonNull @CallbackExecutor Executor executor,
@@ -1110,6 +1158,10 @@ public class WifiCondManager {
* Send a management frame on the specified interface at the specified rate. Useful for probing
* the link with arbitrary frames.
*
+ * Note: The interface must have been already set up using
+ * {@link #setupInterfaceForClientMode(String, Executor, ScanEventCallback, ScanEventCallback)}
+ * or {@link #setupInterfaceForSoftApMode(String)}.
+ *
* @param ifaceName The interface on which to send the frame.
* @param frame The raw byte array of the management frame to tramit.
* @param mcs The MCS (modulation and coding scheme), i.e. rate, at which to transmit the
diff --git a/wifi/java/com/android/server/wifi/BaseWifiService.java b/wifi/java/com/android/server/wifi/BaseWifiService.java
deleted file mode 100644
index 060c85cac209..000000000000
--- a/wifi/java/com/android/server/wifi/BaseWifiService.java
+++ /dev/null
@@ -1,641 +0,0 @@
-/**
- * Copyright (c) 2018, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License") {
- * throw new UnsupportedOperationException();
- }
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.wifi;
-
-import android.content.pm.ParceledListSlice;
-import android.net.DhcpInfo;
-import android.net.Network;
-import android.net.wifi.IActionListener;
-import android.net.wifi.IDppCallback;
-import android.net.wifi.ILocalOnlyHotspotCallback;
-import android.net.wifi.INetworkRequestMatchCallback;
-import android.net.wifi.IOnWifiActivityEnergyInfoListener;
-import android.net.wifi.IOnWifiUsabilityStatsListener;
-import android.net.wifi.IScanResultsCallback;
-import android.net.wifi.ISoftApCallback;
-import android.net.wifi.ISuggestionConnectionStatusListener;
-import android.net.wifi.ITrafficStateCallback;
-import android.net.wifi.ITxPacketCountListener;
-import android.net.wifi.IWifiConnectedNetworkScorer;
-import android.net.wifi.IWifiManager;
-import android.net.wifi.ScanResult;
-import android.net.wifi.SoftApConfiguration;
-import android.net.wifi.WifiConfiguration;
-import android.net.wifi.WifiInfo;
-import android.net.wifi.WifiManager;
-import android.net.wifi.WifiNetworkSuggestion;
-import android.net.wifi.hotspot2.IProvisioningCallback;
-import android.net.wifi.hotspot2.OsuProvider;
-import android.net.wifi.hotspot2.PasspointConfiguration;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.os.ResultReceiver;
-import android.os.WorkSource;
-import android.os.connectivity.WifiActivityEnergyInfo;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * Empty concrete class implementing IWifiManager with stub methods throwing runtime exceptions.
- *
- * This class is meant to be extended by real implementations of IWifiManager in order to facilitate
- * cross-repo changes to WiFi internal APIs, including the introduction of new APIs, the removal of
- * deprecated APIs, or the migration of existing API signatures.
- *
- * When an existing API is scheduled for removal, it can be removed from IWifiManager.aidl
- * immediately and marked as @Deprecated first in this class. Children inheriting this class are
- * then given a short grace period to update themselves before the @Deprecated stub is removed for
- * good. If the API scheduled for removal has a replacement or an overload (signature change),
- * these should be introduced before the stub is removed to allow children to migrate.
- *
- * When a new API is added to IWifiManager.aidl, a stub should be added in BaseWifiService as
- * well otherwise compilation will fail.
- */
-public class BaseWifiService extends IWifiManager.Stub {
-
- private static final String TAG = BaseWifiService.class.getSimpleName();
-
- @Override
- public long getSupportedFeatures() {
- throw new UnsupportedOperationException();
- }
-
- /** @deprecated use {@link #getWifiActivityEnergyInfoAsync} instead */
- @Deprecated
- public WifiActivityEnergyInfo reportActivityInfo() {
- throw new UnsupportedOperationException();
- }
-
- /** @deprecated use {@link #getWifiActivityEnergyInfoAsync} instead */
- @Deprecated
- public void requestActivityInfo(ResultReceiver result) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void getWifiActivityEnergyInfoAsync(IOnWifiActivityEnergyInfoListener listener) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public ParceledListSlice getConfiguredNetworks(String packageName, String featureId) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public ParceledListSlice getPrivilegedConfiguredNetworks(String packageName, String featureId) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Map<String, Map<Integer, List<ScanResult>>> getAllMatchingFqdnsForScanResults(
- List<ScanResult> scanResults) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Map<OsuProvider, List<ScanResult>> getMatchingOsuProviders(
- List<ScanResult> scanResults) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Map<OsuProvider, PasspointConfiguration> getMatchingPasspointConfigsForOsuProviders(
- List<OsuProvider> osuProviders) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int addOrUpdateNetwork(WifiConfiguration config, String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean addOrUpdatePasspointConfiguration(
- PasspointConfiguration config, String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean removePasspointConfiguration(String fqdn, String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public List<PasspointConfiguration> getPasspointConfigurations(String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public List<WifiConfiguration> getWifiConfigsForPasspointProfiles(List<String> fqdnList) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void queryPasspointIcon(long bssid, String fileName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int matchProviderWithCurrentNetwork(String fqdn) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void deauthenticateNetwork(long holdoff, boolean ess) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean removeNetwork(int netId, String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean enableNetwork(int netId, boolean disableOthers, String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean disableNetwork(int netId, String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void allowAutojoinGlobal(boolean choice) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void allowAutojoin(int netId, boolean choice) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void allowAutojoinPasspoint(String fqdn, boolean enableAutoJoin) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setMacRandomizationSettingPasspointEnabled(String fqdn, boolean enable) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setMeteredOverridePasspoint(String fqdn, int meteredOverride) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean startScan(String packageName, String featureId) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public List<ScanResult> getScanResults(String callingPackage, String callingFeatureId) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean disconnect(String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean reconnect(String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean reassociate(String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public WifiInfo getConnectionInfo(String callingPackage, String callingFeatureId) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean setWifiEnabled(String packageName, boolean enable) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int getWifiEnabledState() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getCountryCode() {
- throw new UnsupportedOperationException();
- }
-
- /** @deprecated use {@link #is5GHzBandSupported} instead */
- @Deprecated
- public boolean isDualBandSupported() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean is5GHzBandSupported() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean is6GHzBandSupported() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isWifiStandardSupported(int standard) {
- throw new UnsupportedOperationException();
- }
-
- /** @deprecated use {@link WifiManager#isStaApConcurrencySupported()} */
- @Deprecated
- public boolean needs5GHzToAnyApBandConversion() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public DhcpInfo getDhcpInfo() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isScanAlwaysAvailable() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean acquireWifiLock(IBinder lock, int lockType, String tag, WorkSource ws) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void updateWifiLockWorkSource(IBinder lock, WorkSource ws) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean releaseWifiLock(IBinder lock) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void initializeMulticastFiltering() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isMulticastEnabled() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void acquireMulticastLock(IBinder binder, String tag) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void releaseMulticastLock(String tag) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void updateInterfaceIpState(String ifaceName, int mode) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean startSoftAp(WifiConfiguration wifiConfig) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean startTetheredHotspot(SoftApConfiguration softApConfig) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean stopSoftAp() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int startLocalOnlyHotspot(ILocalOnlyHotspotCallback callback, String packageName,
- String featureId, SoftApConfiguration customConfig) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void stopLocalOnlyHotspot() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void startWatchLocalOnlyHotspot(ILocalOnlyHotspotCallback callback) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void stopWatchLocalOnlyHotspot() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int getWifiApEnabledState() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public WifiConfiguration getWifiApConfiguration() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public SoftApConfiguration getSoftApConfiguration() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean setWifiApConfiguration(WifiConfiguration wifiConfig, String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean setSoftApConfiguration(SoftApConfiguration softApConfig, String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void notifyUserOfApBandConversion(String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void enableTdls(String remoteIPAddress, boolean enable) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void enableTdlsWithMacAddress(String remoteMacAddress, boolean enable) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getCurrentNetworkWpsNfcConfigurationToken() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void enableVerboseLogging(int verbose) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int getVerboseLoggingLevel() {
- throw new UnsupportedOperationException();
- }
-
- /** @deprecated use {@link #allowAutojoinGlobal(boolean)} instead */
- @Deprecated
- public void enableWifiConnectivityManager(boolean enabled) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void disableEphemeralNetwork(String SSID, String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void factoryReset(String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Network getCurrentNetwork() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public byte[] retrieveBackupData() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void restoreBackupData(byte[] data) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public byte[] retrieveSoftApBackupData() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public SoftApConfiguration restoreSoftApBackupData(byte[] data) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void restoreSupplicantBackupData(byte[] supplicantData, byte[] ipConfigData) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void startSubscriptionProvisioning(
- OsuProvider provider, IProvisioningCallback callback) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void registerSoftApCallback(
- IBinder binder, ISoftApCallback callback, int callbackIdentifier) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void unregisterSoftApCallback(int callbackIdentifier) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void registerTrafficStateCallback(
- IBinder binder, ITrafficStateCallback callback, int callbackIdentifier) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void unregisterTrafficStateCallback(int callbackIdentifier) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void registerNetworkRequestMatchCallback(
- IBinder binder, INetworkRequestMatchCallback callback, int callbackIdentifier) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void unregisterNetworkRequestMatchCallback(int callbackIdentifier) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int addNetworkSuggestions(
- List<WifiNetworkSuggestion> networkSuggestions, String callingPackageName,
- String callingFeatureId) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int removeNetworkSuggestions(
- List<WifiNetworkSuggestion> networkSuggestions, String callingPackageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public List<WifiNetworkSuggestion> getNetworkSuggestions(String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String[] getFactoryMacAddresses() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setDeviceMobilityState(int state) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void startDppAsConfiguratorInitiator(IBinder binder, String enrolleeUri,
- int selectedNetworkId, int netRole, IDppCallback callback) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void startDppAsEnrolleeInitiator(IBinder binder, String configuratorUri,
- IDppCallback callback) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void stopDppSession() throws RemoteException {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void addOnWifiUsabilityStatsListener(
- IBinder binder, IOnWifiUsabilityStatsListener listener, int listenerIdentifier) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void removeOnWifiUsabilityStatsListener(int listenerIdentifier) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void updateWifiUsabilityScore(int seqNum, int score, int predictionHorizonSec) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void connect(WifiConfiguration config, int netId, IBinder binder,
- IActionListener callback, int callbackIdentifier) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void save(WifiConfiguration config, IBinder binder, IActionListener callback,
- int callbackIdentifier) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void forget(int netId, IBinder binder, IActionListener callback,
- int callbackIdentifier) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void getTxPacketCount(String packageName, IBinder binder,
- ITxPacketCountListener callback, int callbackIdentifier) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void registerScanResultsCallback(IScanResultsCallback callback) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void unregisterScanResultsCallback(IScanResultsCallback callback) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void registerSuggestionConnectionStatusListener(IBinder binder,
- ISuggestionConnectionStatusListener listener,
- int listenerIdentifier, String packageName, String featureId) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void unregisterSuggestionConnectionStatusListener(int listenerIdentifier,
- String packageName) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int calculateSignalLevel(int rssi) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public List<WifiConfiguration> getWifiConfigForMatchedNetworkSuggestionsSharedWithUser(
- List<ScanResult> scanResults) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean setWifiConnectedNetworkScorer(IBinder binder,
- IWifiConnectedNetworkScorer scorer) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void clearWifiConnectedNetworkScorer() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Map<WifiNetworkSuggestion, List<ScanResult>> getMatchingScanResults(
- List<WifiNetworkSuggestion> networkSuggestions,
- List<ScanResult> scanResults,
- String callingPackage, String callingFeatureId) {
- throw new UnsupportedOperationException();
- }
-}
diff --git a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
index 8023160a811e..05a3dce44022 100644
--- a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
@@ -336,6 +336,20 @@ public class WifiConfigurationTest {
}
/**
+ * Ensure that {@link NetworkSelectionStatus#getMaxNetworkSelectionDisableReason()} returns
+ * the maximum disable reason.
+ */
+ @Test
+ public void testNetworkSelectionGetMaxNetworkSelectionDisableReason() {
+ int maxReason = Integer.MIN_VALUE;
+ for (int i = 0; i < NetworkSelectionStatus.DISABLE_REASON_INFOS.size(); i++) {
+ int reason = NetworkSelectionStatus.DISABLE_REASON_INFOS.keyAt(i);
+ maxReason = Math.max(maxReason, reason);
+ }
+ assertEquals(maxReason, NetworkSelectionStatus.getMaxNetworkSelectionDisableReason());
+ }
+
+ /**
* Ensure that {@link WifiConfiguration#setSecurityParams(int)} sets up the
* {@link WifiConfiguration} object correctly for SAE security type.
* @throws Exception
diff --git a/wifi/tests/src/android/net/wifi/WifiManagerTest.java b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
index a189d507a32a..6320f85eb974 100644
--- a/wifi/tests/src/android/net/wifi/WifiManagerTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
@@ -1867,7 +1867,7 @@ public class WifiManagerTest {
* Tests that passing a null Executor to {@link WifiManager#getWifiActivityEnergyInfoAsync}
* throws an exception.
*/
- @Test(expected = IllegalArgumentException.class)
+ @Test(expected = NullPointerException.class)
public void testGetWifiActivityInfoNullExecutor() throws Exception {
mWifiManager.getWifiActivityEnergyInfoAsync(null, mOnWifiActivityEnergyInfoListener);
}
@@ -1876,7 +1876,7 @@ public class WifiManagerTest {
* Tests that passing a null listener to {@link WifiManager#getWifiActivityEnergyInfoAsync}
* throws an exception.
*/
- @Test(expected = IllegalArgumentException.class)
+ @Test(expected = NullPointerException.class)
public void testGetWifiActivityInfoNullListener() throws Exception {
mWifiManager.getWifiActivityEnergyInfoAsync(mExecutor, null);
}
diff --git a/wifi/tests/src/android/net/wifi/WifiNetworkAgentSpecifierTest.java b/wifi/tests/src/android/net/wifi/WifiNetworkAgentSpecifierTest.java
index adc41f0df4b4..0233ee2e2785 100644
--- a/wifi/tests/src/android/net/wifi/WifiNetworkAgentSpecifierTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiNetworkAgentSpecifierTest.java
@@ -22,7 +22,6 @@ import static org.junit.Assert.assertTrue;
import android.net.MacAddress;
import android.net.MatchAllNetworkSpecifier;
-import android.net.NetworkRequest;
import android.os.Parcel;
import android.os.PatternMatcher;
import android.util.Pair;
@@ -36,10 +35,6 @@ import org.junit.Test;
*/
@SmallTest
public class WifiNetworkAgentSpecifierTest {
- private static final int TEST_UID = 5;
- private static final int TEST_UID_1 = 8;
- private static final String TEST_PACKAGE = "com.test";
- private static final String TEST_PACKAGE_1 = "com.test.1";
private static final String TEST_SSID = "Test123";
private static final String TEST_SSID_PATTERN = "Test";
private static final String TEST_SSID_1 = "456test";
@@ -71,16 +66,6 @@ public class WifiNetworkAgentSpecifierTest {
}
/**
- * Validate that the NetworkAgentSpecifier cannot be used in a {@link NetworkRequest} by apps.
- */
- @Test(expected = IllegalStateException.class)
- public void testWifiNetworkAgentSpecifierNotUsedInNetworkRequest() {
- WifiNetworkAgentSpecifier specifier = createDefaultNetworkAgentSpecifier();
-
- specifier.assertValidFromUid(TEST_UID);
- }
-
- /**
* Validate NetworkAgentSpecifier equals with itself.
* a) Create network agent specifier 1 for WPA_PSK network
* b) Create network agent specifier 2 with the same params as specifier 1.
@@ -105,15 +90,13 @@ public class WifiNetworkAgentSpecifierTest {
WifiConfiguration wifiConfiguration1 = createDefaultWifiConfiguration();
WifiNetworkAgentSpecifier specifier1 =
new WifiNetworkAgentSpecifier(
- wifiConfiguration1,
- TEST_UID, TEST_PACKAGE);
+ wifiConfiguration1);
WifiConfiguration wifiConfiguration2 = new WifiConfiguration(wifiConfiguration1);
wifiConfiguration2.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
WifiNetworkAgentSpecifier specifier2 =
new WifiNetworkAgentSpecifier(
- wifiConfiguration2,
- TEST_UID, TEST_PACKAGE);
+ wifiConfiguration2);
assertFalse(specifier2.equals(specifier1));
}
@@ -129,15 +112,13 @@ public class WifiNetworkAgentSpecifierTest {
WifiConfiguration wifiConfiguration1 = createDefaultWifiConfiguration();
WifiNetworkAgentSpecifier specifier1 =
new WifiNetworkAgentSpecifier(
- wifiConfiguration1,
- TEST_UID, TEST_PACKAGE);
+ wifiConfiguration1);
WifiConfiguration wifiConfiguration2 = new WifiConfiguration(wifiConfiguration1);
wifiConfiguration2.SSID = TEST_SSID_1;
WifiNetworkAgentSpecifier specifier2 =
new WifiNetworkAgentSpecifier(
- wifiConfiguration2,
- TEST_UID, TEST_PACKAGE);
+ wifiConfiguration2);
assertFalse(specifier2.equals(specifier1));
}
@@ -153,15 +134,13 @@ public class WifiNetworkAgentSpecifierTest {
WifiConfiguration wifiConfiguration1 = createDefaultWifiConfiguration();
WifiNetworkAgentSpecifier specifier1 =
new WifiNetworkAgentSpecifier(
- wifiConfiguration1,
- TEST_UID, TEST_PACKAGE);
+ wifiConfiguration1);
WifiConfiguration wifiConfiguration2 = new WifiConfiguration(wifiConfiguration1);
wifiConfiguration2.BSSID = TEST_BSSID_1;
WifiNetworkAgentSpecifier specifier2 =
new WifiNetworkAgentSpecifier(
- wifiConfiguration2,
- TEST_UID, TEST_PACKAGE);
+ wifiConfiguration2);
assertFalse(specifier2.equals(specifier1));
}
@@ -215,8 +194,7 @@ public class WifiNetworkAgentSpecifierTest {
WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
ssidPattern,
bssidPattern,
- wificonfigurationNetworkSpecifier,
- TEST_UID, TEST_PACKAGE);
+ wificonfigurationNetworkSpecifier);
assertTrue(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
assertTrue(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
@@ -244,8 +222,7 @@ public class WifiNetworkAgentSpecifierTest {
WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
ssidPattern,
bssidPattern,
- wificonfigurationNetworkSpecifier,
- TEST_UID, TEST_PACKAGE);
+ wificonfigurationNetworkSpecifier);
assertTrue(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
assertTrue(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
@@ -273,8 +250,7 @@ public class WifiNetworkAgentSpecifierTest {
WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
ssidPattern,
bssidPattern,
- wificonfigurationNetworkSpecifier,
- TEST_UID, TEST_PACKAGE);
+ wificonfigurationNetworkSpecifier);
assertTrue(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
assertTrue(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
@@ -293,8 +269,7 @@ public class WifiNetworkAgentSpecifierTest {
wifiConfigurationNetworkAgent.SSID = "\"" + TEST_SSID_1 + "\"";
WifiNetworkAgentSpecifier wifiNetworkAgentSpecifier =
new WifiNetworkAgentSpecifier(
- wifiConfigurationNetworkAgent,
- TEST_UID, TEST_PACKAGE);
+ wifiConfigurationNetworkAgent);
PatternMatcher ssidPattern =
new PatternMatcher(TEST_SSID_PATTERN, PatternMatcher.PATTERN_PREFIX);
@@ -306,8 +281,7 @@ public class WifiNetworkAgentSpecifierTest {
WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
ssidPattern,
bssidPattern,
- wificonfigurationNetworkSpecifier,
- TEST_UID, TEST_PACKAGE);
+ wificonfigurationNetworkSpecifier);
assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
@@ -326,8 +300,7 @@ public class WifiNetworkAgentSpecifierTest {
wifiConfigurationNetworkAgent.BSSID = TEST_BSSID_1;
WifiNetworkAgentSpecifier wifiNetworkAgentSpecifier =
new WifiNetworkAgentSpecifier(
- wifiConfigurationNetworkAgent,
- TEST_UID, TEST_PACKAGE);
+ wifiConfigurationNetworkAgent);
PatternMatcher ssidPattern =
new PatternMatcher(".*", PatternMatcher.PATTERN_SIMPLE_GLOB);
@@ -340,8 +313,7 @@ public class WifiNetworkAgentSpecifierTest {
WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
ssidPattern,
bssidPattern,
- wificonfigurationNetworkSpecifier,
- TEST_UID, TEST_PACKAGE);
+ wificonfigurationNetworkSpecifier);
assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
@@ -360,8 +332,7 @@ public class WifiNetworkAgentSpecifierTest {
wifiConfigurationNetworkAgent.BSSID = TEST_BSSID_1;
WifiNetworkAgentSpecifier wifiNetworkAgentSpecifier =
new WifiNetworkAgentSpecifier(
- wifiConfigurationNetworkAgent,
- TEST_UID, TEST_PACKAGE);
+ wifiConfigurationNetworkAgent);
PatternMatcher ssidPattern =
new PatternMatcher(TEST_SSID_PATTERN, PatternMatcher.PATTERN_PREFIX);
@@ -374,8 +345,7 @@ public class WifiNetworkAgentSpecifierTest {
WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
ssidPattern,
bssidPattern,
- wificonfigurationNetworkSpecifier,
- TEST_UID, TEST_PACKAGE);
+ wificonfigurationNetworkSpecifier);
assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
@@ -402,41 +372,12 @@ public class WifiNetworkAgentSpecifierTest {
WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
ssidPattern,
bssidPattern,
- wificonfigurationNetworkSpecifier,
- TEST_UID, TEST_PACKAGE);
+ wificonfigurationNetworkSpecifier);
assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
}
- /**
- * Validate {@link WifiNetworkAgentSpecifier} with {@link WifiNetworkSpecifier} matching.
- * a) Create network agent specifier for WPA_PSK network
- * b) Create network specifier with matching SSID and BSSID pattern, but different UID.
- * c) Ensure that the agent specifier is not satisfied by specifier.
- */
- @Test
- public void
- testWifiNetworkAgentSpecifierDoesNotSatisfyNetworkSpecifierWithDifferentUid() {
- WifiNetworkAgentSpecifier wifiNetworkAgentSpecifier = createDefaultNetworkAgentSpecifier();
-
- PatternMatcher ssidPattern =
- new PatternMatcher(TEST_SSID_PATTERN, PatternMatcher.PATTERN_PREFIX);
- Pair<MacAddress, MacAddress> bssidPattern =
- Pair.create(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
- MacAddress.fromString(TEST_BSSID_OUI_MASK));
- WifiConfiguration wificonfigurationNetworkSpecifier = new WifiConfiguration();
- wificonfigurationNetworkSpecifier.allowedKeyManagement
- .set(WifiConfiguration.KeyMgmt.WPA_PSK);
- WifiNetworkSpecifier wifiNetworkSpecifier = new WifiNetworkSpecifier(
- ssidPattern,
- bssidPattern,
- wificonfigurationNetworkSpecifier,
- TEST_UID_1, TEST_PACKAGE_1);
-
- assertFalse(wifiNetworkSpecifier.satisfiedBy(wifiNetworkAgentSpecifier));
- assertFalse(wifiNetworkAgentSpecifier.satisfiedBy(wifiNetworkSpecifier));
- }
private WifiConfiguration createDefaultWifiConfiguration() {
WifiConfiguration wifiConfiguration = new WifiConfiguration();
@@ -448,8 +389,7 @@ public class WifiNetworkAgentSpecifierTest {
}
private WifiNetworkAgentSpecifier createDefaultNetworkAgentSpecifier() {
- return new WifiNetworkAgentSpecifier(createDefaultWifiConfiguration(), TEST_UID,
- TEST_PACKAGE);
+ return new WifiNetworkAgentSpecifier(createDefaultWifiConfiguration());
}
}
diff --git a/wifi/tests/src/android/net/wifi/WifiNetworkSpecifierTest.java b/wifi/tests/src/android/net/wifi/WifiNetworkSpecifierTest.java
index 16197443b9d9..3b6723613c50 100644
--- a/wifi/tests/src/android/net/wifi/WifiNetworkSpecifierTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiNetworkSpecifierTest.java
@@ -29,7 +29,6 @@ import android.net.MatchAllNetworkSpecifier;
import android.net.NetworkSpecifier;
import android.os.Parcel;
import android.os.PatternMatcher;
-import android.os.Process;
import android.util.Pair;
import androidx.test.filters.SmallTest;
@@ -41,8 +40,6 @@ import org.junit.Test;
*/
@SmallTest
public class WifiNetworkSpecifierTest {
- private static final int TEST_UID = 5;
- private static final String TEST_PACKAGE_NAME = "com.test";
private static final String TEST_SSID = "Test123";
private static final String TEST_BSSID_OUI_BASE_ADDRESS = "12:12:12:00:00:00";
private static final String TEST_BSSID_OUI_MASK = "ff:ff:ff:00:00:00";
@@ -62,7 +59,6 @@ public class WifiNetworkSpecifierTest {
assertTrue(specifier instanceof WifiNetworkSpecifier);
WifiNetworkSpecifier wifiNetworkSpecifier = (WifiNetworkSpecifier) specifier;
- assertEquals(Process.myUid(), wifiNetworkSpecifier.requestorUid);
assertEquals(TEST_SSID, wifiNetworkSpecifier.ssidPatternMatcher.getPath());
assertEquals(PATTERN_PREFIX, wifiNetworkSpecifier.ssidPatternMatcher.getType());
assertEquals(WifiManager.ALL_ZEROS_MAC_ADDRESS,
@@ -367,8 +363,7 @@ public class WifiNetworkSpecifierTest {
new WifiNetworkSpecifier(new PatternMatcher(TEST_SSID, PATTERN_LITERAL),
Pair.create(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
MacAddress.fromString(TEST_BSSID_OUI_MASK)),
- wifiConfiguration,
- TEST_UID, TEST_PACKAGE_NAME);
+ wifiConfiguration);
Parcel parcelW = Parcel.obtain();
specifier.writeToParcel(parcelW, 0);
@@ -399,8 +394,7 @@ public class WifiNetworkSpecifierTest {
new WifiNetworkSpecifier(new PatternMatcher(TEST_SSID, PATTERN_LITERAL),
Pair.create(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
MacAddress.fromString(TEST_BSSID_OUI_MASK)),
- wifiConfiguration,
- TEST_UID, TEST_PACKAGE_NAME);
+ wifiConfiguration);
assertTrue(specifier.satisfiedBy(null));
assertTrue(specifier.satisfiedBy(new MatchAllNetworkSpecifier()));
@@ -422,15 +416,13 @@ public class WifiNetworkSpecifierTest {
new WifiNetworkSpecifier(new PatternMatcher(TEST_SSID, PATTERN_LITERAL),
Pair.create(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
MacAddress.fromString(TEST_BSSID_OUI_MASK)),
- wifiConfiguration,
- TEST_UID, TEST_PACKAGE_NAME);
+ wifiConfiguration);
WifiNetworkSpecifier specifier2 =
new WifiNetworkSpecifier(new PatternMatcher(TEST_SSID, PATTERN_LITERAL),
Pair.create(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
MacAddress.fromString(TEST_BSSID_OUI_MASK)),
- wifiConfiguration,
- TEST_UID, TEST_PACKAGE_NAME);
+ wifiConfiguration);
assertTrue(specifier2.satisfiedBy(specifier1));
}
@@ -451,8 +443,7 @@ public class WifiNetworkSpecifierTest {
new WifiNetworkSpecifier(new PatternMatcher(TEST_SSID, PATTERN_LITERAL),
Pair.create(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
MacAddress.fromString(TEST_BSSID_OUI_MASK)),
- wifiConfiguration1,
- TEST_UID, TEST_PACKAGE_NAME);
+ wifiConfiguration1);
WifiConfiguration wifiConfiguration2 = new WifiConfiguration();
wifiConfiguration2.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
@@ -460,8 +451,7 @@ public class WifiNetworkSpecifierTest {
new WifiNetworkSpecifier(new PatternMatcher(TEST_SSID, PATTERN_LITERAL),
Pair.create(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
MacAddress.fromString(TEST_BSSID_OUI_MASK)),
- wifiConfiguration2,
- TEST_UID, TEST_PACKAGE_NAME);
+ wifiConfiguration2);
assertFalse(specifier2.satisfiedBy(specifier1));
}
@@ -482,15 +472,13 @@ public class WifiNetworkSpecifierTest {
new WifiNetworkSpecifier(new PatternMatcher("", PATTERN_LITERAL),
Pair.create(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
MacAddress.fromString(TEST_BSSID_OUI_MASK)),
- wifiConfiguration,
- TEST_UID, TEST_PACKAGE_NAME);
+ wifiConfiguration);
WifiNetworkSpecifier specifier2 =
new WifiNetworkSpecifier(new PatternMatcher(TEST_SSID, PATTERN_LITERAL),
Pair.create(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
MacAddress.fromString(TEST_BSSID_OUI_MASK)),
- wifiConfiguration,
- TEST_UID, TEST_PACKAGE_NAME);
+ wifiConfiguration);
assertFalse(specifier2.satisfiedBy(specifier1));
}
@@ -511,44 +499,13 @@ public class WifiNetworkSpecifierTest {
new WifiNetworkSpecifier(new PatternMatcher(TEST_SSID, PATTERN_LITERAL),
Pair.create(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
MacAddress.fromString(TEST_BSSID_OUI_MASK)),
- wifiConfiguration,
- TEST_UID, TEST_PACKAGE_NAME);
+ wifiConfiguration);
WifiNetworkSpecifier specifier2 =
new WifiNetworkSpecifier(new PatternMatcher(TEST_SSID, PATTERN_LITERAL),
Pair.create(WifiManager.ALL_ZEROS_MAC_ADDRESS,
WifiManager.ALL_ZEROS_MAC_ADDRESS),
- wifiConfiguration,
- TEST_UID, TEST_PACKAGE_NAME);
-
- assertFalse(specifier2.satisfiedBy(specifier1));
- }
-
- /**
- * Validate NetworkSpecifier matching.
- * a) Create network specifier 1 for WPA_PSK network
- * b) Create network specifier 2 with different package name .
- * c) Ensure that the specifier 2 is not satisfied by specifier 1.
- */
- @Test
- public void testWifiNetworkSpecifierDoesNotSatisfyWhenPackageNameDifferent() {
- WifiConfiguration wifiConfiguration = new WifiConfiguration();
- wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
- wifiConfiguration.preSharedKey = TEST_PRESHARED_KEY;
-
- WifiNetworkSpecifier specifier1 =
- new WifiNetworkSpecifier(new PatternMatcher(TEST_SSID, PATTERN_LITERAL),
- Pair.create(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
- MacAddress.fromString(TEST_BSSID_OUI_MASK)),
- wifiConfiguration,
- TEST_UID, TEST_PACKAGE_NAME);
-
- WifiNetworkSpecifier specifier2 =
- new WifiNetworkSpecifier(new PatternMatcher(TEST_SSID, PATTERN_LITERAL),
- Pair.create(MacAddress.fromString(TEST_BSSID_OUI_BASE_ADDRESS),
- MacAddress.fromString(TEST_BSSID_OUI_MASK)),
- wifiConfiguration,
- TEST_UID, TEST_PACKAGE_NAME + "blah");
+ wifiConfiguration);
assertFalse(specifier2.satisfiedBy(specifier1));
}
diff --git a/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java b/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java
index 15accc337429..af6fb5c1cd22 100644
--- a/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java
@@ -105,7 +105,7 @@ public class WifiNetworkSuggestionTest {
.setSsid(TEST_SSID)
.setWpa2Passphrase(TEST_PRESHARED_KEY)
.setIsUserInteractionRequired(true)
- .setIsInitialAutoJoinEnabled(false)
+ .setIsInitialAutojoinEnabled(false)
.setIsMetered(true)
.build();
@@ -155,7 +155,7 @@ public class WifiNetworkSuggestionTest {
.setSsid(TEST_SSID)
.setWpa3Passphrase(TEST_PRESHARED_KEY)
.setCredentialSharedWithUser(true)
- .setIsInitialAutoJoinEnabled(false)
+ .setIsInitialAutojoinEnabled(false)
.build();
assertEquals("\"" + TEST_SSID + "\"", suggestion.wifiConfiguration.SSID);
@@ -732,20 +732,20 @@ public class WifiNetworkSuggestionTest {
/**
* Ensure {@link WifiNetworkSuggestion.Builder#build()} throws an exception
- * when {@link WifiNetworkSuggestion.Builder#setIsInitialAutoJoinEnabled(boolean)} to
+ * when {@link WifiNetworkSuggestion.Builder#setIsInitialAutojoinEnabled(boolean)} to
* false on a open network suggestion.
*/
@Test(expected = IllegalStateException.class)
public void testSetIsAutoJoinDisabledWithOpenNetwork() {
new WifiNetworkSuggestion.Builder()
.setSsid(TEST_SSID)
- .setIsInitialAutoJoinEnabled(false)
+ .setIsInitialAutojoinEnabled(false)
.build();
}
/**
* Ensure {@link WifiNetworkSuggestion.Builder#build()} throws an exception
- * when set both {@link WifiNetworkSuggestion.Builder#setIsInitialAutoJoinEnabled(boolean)}
+ * when set both {@link WifiNetworkSuggestion.Builder#setIsInitialAutojoinEnabled(boolean)}
* and {@link WifiNetworkSuggestion.Builder#setCredentialSharedWithUser(boolean)} (boolean)}
* to false on a network suggestion.
*/
@@ -755,7 +755,7 @@ public class WifiNetworkSuggestionTest {
.setSsid(TEST_SSID)
.setWpa2Passphrase(TEST_PRESHARED_KEY)
.setCredentialSharedWithUser(false)
- .setIsInitialAutoJoinEnabled(false)
+ .setIsInitialAutojoinEnabled(false)
.build();
}
@@ -808,7 +808,7 @@ public class WifiNetworkSuggestionTest {
/**
* Ensure {@link WifiNetworkSuggestion.Builder#build()} throws an exception
- * when set both {@link WifiNetworkSuggestion.Builder#setIsInitialAutoJoinEnabled(boolean)}
+ * when set both {@link WifiNetworkSuggestion.Builder#setIsInitialAutojoinEnabled(boolean)}
* and {@link WifiNetworkSuggestion.Builder#setCredentialSharedWithUser(boolean)} (boolean)}
* to false on a passpoint suggestion.
*/
@@ -818,7 +818,7 @@ public class WifiNetworkSuggestionTest {
new WifiNetworkSuggestion.Builder()
.setPasspointConfig(passpointConfiguration)
.setCredentialSharedWithUser(false)
- .setIsInitialAutoJoinEnabled(false)
+ .setIsInitialAutojoinEnabled(false)
.build();
}
}
diff --git a/wifi/tests/src/android/net/wifi/aware/WifiAwareAgentNetworkSpecifierTest.java b/wifi/tests/src/android/net/wifi/aware/WifiAwareAgentNetworkSpecifierTest.java
index c3b62854f12c..81b02fa5f801 100644
--- a/wifi/tests/src/android/net/wifi/aware/WifiAwareAgentNetworkSpecifierTest.java
+++ b/wifi/tests/src/android/net/wifi/aware/WifiAwareAgentNetworkSpecifierTest.java
@@ -162,17 +162,6 @@ public class WifiAwareAgentNetworkSpecifierTest {
collector.checkThat("Match unexpected", oldNs.satisfiedBy(newNs), equalTo(false));
}
- /**
- * Validate that agent network specifier cannot be used as in network requests - i.e. that
- * throws an exception when queried for UID validity.
- */
- @Test(expected = SecurityException.class)
- public void testNoUsageInRequest() {
- WifiAwareAgentNetworkSpecifier dut = new WifiAwareAgentNetworkSpecifier();
-
- dut.assertValidFromUid(0);
- }
-
// utilities
/**
@@ -182,6 +171,6 @@ public class WifiAwareAgentNetworkSpecifierTest {
WifiAwareNetworkSpecifier getDummyNetworkSpecifier(int clientId) {
return new WifiAwareNetworkSpecifier(WifiAwareNetworkSpecifier.NETWORK_SPECIFIER_TYPE_OOB,
WifiAwareManager.WIFI_AWARE_DATA_PATH_ROLE_INITIATOR, clientId, 0, 0, new byte[6],
- null, null, 10, 5, 0);
+ null, null, 10, 5);
}
}
diff --git a/wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java b/wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java
index 65fbf5b099d4..c5f98045082b 100644
--- a/wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java
+++ b/wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java
@@ -1564,7 +1564,7 @@ public class WifiAwareManagerTest {
WifiAwareNetworkSpecifier ns = new WifiAwareNetworkSpecifier(NETWORK_SPECIFIER_TYPE_IB,
WifiAwareManager.WIFI_AWARE_DATA_PATH_ROLE_RESPONDER, 5, 568, 334,
HexEncoding.decode("000102030405".toCharArray(), false),
- "01234567890123456789012345678901".getBytes(), "blah blah", 666, 4, 10001);
+ "01234567890123456789012345678901".getBytes(), "blah blah", 666, 4);
Parcel parcelW = Parcel.obtain();
ns.writeToParcel(parcelW, 0);
diff --git a/wifi/tests/src/android/net/wifi/hotspot2/PasspointConfigurationTest.java b/wifi/tests/src/android/net/wifi/hotspot2/PasspointConfigurationTest.java
index 654154d77b0d..ce542c2bc4e9 100644
--- a/wifi/tests/src/android/net/wifi/hotspot2/PasspointConfigurationTest.java
+++ b/wifi/tests/src/android/net/wifi/hotspot2/PasspointConfigurationTest.java
@@ -18,6 +18,7 @@ package android.net.wifi.hotspot2;
import static android.net.wifi.WifiConfiguration.METERED_OVERRIDE_NONE;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -173,7 +174,7 @@ public class PasspointConfigurationTest {
assertFalse(config.validate());
assertFalse(config.validateForR2());
- assertTrue(config.isAutoJoinEnabled());
+ assertTrue(config.isAutojoinEnabled());
assertTrue(config.isMacRandomizationEnabled());
assertTrue(config.getMeteredOverride() == METERED_OVERRIDE_NONE);
}
@@ -364,4 +365,54 @@ public class PasspointConfigurationTest {
assertTrue(config.validateForR2());
assertTrue(config.isOsuProvisioned());
}
+
+ /**
+ * Verify that the unique identifier generated is correct.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void validateUniqueId() throws Exception {
+ PasspointConfiguration config = PasspointTestUtils.createConfig();
+ String uniqueId;
+ uniqueId = config.getUniqueId();
+ assertEquals(uniqueId, config.getHomeSp().getFqdn());
+ }
+
+ /**
+ * Verify that the unique identifier API generates an exception if HomeSP is not initialized.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void validateUniqueIdExceptionWithEmptyHomeSp() throws Exception {
+ PasspointConfiguration config = PasspointTestUtils.createConfig();
+ config.setHomeSp(null);
+ boolean exceptionCaught = false;
+ try {
+ String uniqueId = config.getUniqueId();
+ } catch (IllegalStateException e) {
+ exceptionCaught = true;
+ }
+ assertTrue(exceptionCaught);
+ }
+
+ /**
+ * Verify that the unique identifier API generates an exception if Credential is not
+ * initialized.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void validateUniqueIdExceptionWithEmptyCredential() throws Exception {
+ PasspointConfiguration config = PasspointTestUtils.createConfig();
+ config.setCredential(null);
+ boolean exceptionCaught = false;
+ try {
+ String uniqueId = config.getUniqueId();
+ } catch (IllegalStateException e) {
+ exceptionCaught = true;
+ }
+ assertTrue(exceptionCaught);
+ }
}
diff --git a/wifi/tests/src/android/net/wifi/wificond/NativeScanResultTest.java b/wifi/tests/src/android/net/wifi/wificond/NativeScanResultTest.java
index 06f12f7f37ea..0df170f8786c 100644
--- a/wifi/tests/src/android/net/wifi/wificond/NativeScanResultTest.java
+++ b/wifi/tests/src/android/net/wifi/wificond/NativeScanResultTest.java
@@ -28,7 +28,6 @@ import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.BitSet;
/**
* Unit tests for {@link android.net.wifi.wificond.NativeScanResult}.
@@ -46,7 +45,7 @@ public class NativeScanResultTest {
private static final int TEST_FREQUENCY = 2456;
private static final int TEST_SIGNAL_MBM = -45;
private static final long TEST_TSF = 34455441;
- private static final BitSet TEST_CAPABILITY = new BitSet(16) {{ set(2); set(5); }};
+ private static final int TEST_CAPABILITY = (0x1 << 2) | (0x1 << 5);
private static final boolean TEST_ASSOCIATED = true;
private static final int[] RADIO_CHAIN_IDS = { 0, 1 };
private static final int[] RADIO_CHAIN_LEVELS = { -56, -65 };
diff --git a/wifi/tests/src/android/net/wifi/wificond/WifiCondManagerTest.java b/wifi/tests/src/android/net/wifi/wificond/WifiCondManagerTest.java
index f262268d7179..32105be6ae4c 100644
--- a/wifi/tests/src/android/net/wifi/wificond/WifiCondManagerTest.java
+++ b/wifi/tests/src/android/net/wifi/wificond/WifiCondManagerTest.java
@@ -65,6 +65,8 @@ import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -718,8 +720,7 @@ public class WifiCondManagerTest {
@Test
public void testRegisterDeathHandler() throws Exception {
Runnable deathHandler = mock(Runnable.class);
- assertTrue(mWificondControl.initialize(deathHandler));
- verify(mWificond).tearDownInterfaces();
+ mWificondControl.setOnServiceDeadCallback(deathHandler);
mWificondControl.binderDied();
mLooper.dispatchAll();
verify(deathHandler).run();
@@ -732,7 +733,7 @@ public class WifiCondManagerTest {
@Test
public void testDeathHandling() throws Exception {
Runnable deathHandler = mock(Runnable.class);
- assertTrue(mWificondControl.initialize(deathHandler));
+ mWificondControl.setOnServiceDeadCallback(deathHandler);
testSetupInterfaceForClientMode();
@@ -741,11 +742,43 @@ public class WifiCondManagerTest {
verify(deathHandler).run();
// The handles should be cleared after death.
- assertEquals(0, mWificondControl.getChannelsMhzForBand(WifiScanner.WIFI_BAND_5_GHZ).length);
+ assertEquals(0, mWificondControl.getChannelsMhzForBand(WifiScanner.WIFI_BAND_5_GHZ).size());
verify(mWificond, never()).getAvailable5gNonDFSChannels();
}
/**
+ * Verify primitive array to list translation of channel API.
+ */
+ @Test
+ public void testGetChannels() throws Exception {
+ int[] resultsEmpty = new int[0];
+ int[] resultsSingle = new int[]{100};
+ int[] resultsMore = new int[]{100, 200};
+
+ List<Integer> emptyList = Collections.emptyList();
+ List<Integer> singleList = Arrays.asList(100);
+ List<Integer> moreList = Arrays.asList(100, 200);
+
+ when(mWificond.getAvailable2gChannels()).thenReturn(null);
+ assertEquals(mWificondControl.getChannelsMhzForBand(WifiScanner.WIFI_BAND_24_GHZ),
+ emptyList);
+ assertEquals(mWificondControl.getChannelsMhzForBand(WifiScanner.WIFI_BAND_5_GHZ),
+ emptyList);
+
+ when(mWificond.getAvailable2gChannels()).thenReturn(resultsEmpty);
+ assertEquals(mWificondControl.getChannelsMhzForBand(WifiScanner.WIFI_BAND_24_GHZ),
+ emptyList);
+
+ when(mWificond.getAvailable2gChannels()).thenReturn(resultsSingle);
+ assertEquals(mWificondControl.getChannelsMhzForBand(WifiScanner.WIFI_BAND_24_GHZ),
+ singleList);
+
+ when(mWificond.getAvailable2gChannels()).thenReturn(resultsMore);
+ assertEquals(mWificondControl.getChannelsMhzForBand(WifiScanner.WIFI_BAND_24_GHZ),
+ moreList);
+ }
+
+ /**
* sendMgmtFrame() should fail if a null callback is passed in.
*/
@Test